History log of /system/timezone/tzlookup_generator/src/main/java/com/android/libcore/timezone/tzlookup/zonetree/ZoneOffsetPeriod.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
181282f9128922e72b0b7091a1ffe54d23e0a896 28-Mar-2018 Neil Fuller <nfuller@google.com> Remove more zones by improving algorithm

The zone tree algorithm that is used to generate
tzlookup.xml was not eliminating zones that have a
long period of no-DST until the specified end time.
This change improves the algorithm and thereby will
reduce the number of (unnecessarily) selectable zones
in the new time zone picker. This is a desirable
change.

The new picker removes some zones that were present
in the old picker (not all removed as part of this
change). These are:

(br) America/Recife
- Bahia used instead, and Fortaleza also has a higher
priority. Bahia as been the same as Recife since
2012-02-26T02:00:00Z and has a much larger population.
Fortaleza has been the same as Recife since
2000-10-22T02:00:00Z and has a higher city population
(but not if the area is expanded to the state).

(ru) Asia/Yakutsk
- Chita used instead. Has been the same as Yakutsk
since 2016-03-26T18:00:00Z, Chita has a larger
population.

(au) Australia/Hobart
- Sydney is available instead, and they have been the
same since 2007-10-27T16:00:00Z

This change removes the following zones from the new picker
that were previously visible only in the new picker:

(ar) America/Argentina/Mendoza
- Same as America/Argentina/Buenos_Aires since 2009-03-15T02:00:00Z

(au) Australia/Lindeman
- Same a Brisbane since 1994-03-05T16:00:00Z

(br) America/Belem
- Same as America/Fortaleza since 2002-02-17T02:00:00Z

(br) America/Fortaleza
- Same as America/Bahia since 2012-02-26T02:00:00Z

(br) America/Araguaina
- Same as America/Bahia since 2013-02-17T02:00:00Z

(br) America/Santarem
- Same as America/Fortaleza since 2008-06-24T04:00:00Z

(br) America/Porto_Velho
- Same as America/Manaus since 1994-02-20T03:00:00Z

(br) America/Boa_Vista
- Same as America/Manaus since 2000-10-15T03:00:00Z

(ca) America/Swift_Current
- Same as America/Regina since 1972-04-30T09:00:00Z

(ca) America/Creston
- Same as America/Dawson_Creek since 1972-08-30T09:00:00Z

(ca) America/Fort_Nelson
- Same as America/Dawson_Creek since 2015-03-08T10:00:00Z

(id) Asia/Pontianak
- Same as Asia/Jakarta since 1987-12-31T16:00:00Z

(kz) Asia/Qyzylorda
- Same as Asia/Almaty since 2004-10-30T21:00:00Z

(mh) Pacific/Kwajalein
- Same as Pacific/Majuro since 1993-08-20T12:00:00Z

(my) Asia/Kuching
- Same as Asia/Kuala_Lumpur since 1981-12-31T16:30:00Z

(ru) Asia/Yakutsk
- Same as Asia/Chita since 2016-03-26T18:00:00Z

(ru) Asia/Novokuznetsk
- Same as Asia/Krasnoyarsk since 2016-03-26T20:00:00Z

(ru) Asia/Tomsk
- Same as Asia/Barnaul since 2016-05-28T20:00:00Z

(ru) Europe/Ulyanovsk
- Same as Europe/Saratov since 2016-12-03T23:00:00Z

Other changes exist to "notafter" times but these
should have no effect on the new picker since they are
all in the past.

Bug: 77227594
Test: Ran tzlookup_generator tests
Test: Visual inspection in the picker
Merged-In: I0d2f32ae8c7cbb8e604962096b905940d27af414
Change-Id: I0d2f32ae8c7cbb8e604962096b905940d27af414
(cherry picked from commit 5f05dc20eba62dced6bdac5bac75ecaa60263b7b)
/system/timezone/tzlookup_generator/src/main/java/com/android/libcore/timezone/tzlookup/zonetree/ZoneOffsetPeriod.java
ffc430367ab3e24195476dc6499ea939b67d31f6 19-Mar-2018 Neil Fuller <nfuller@google.com> Tests and tidy up for the zonetrees code

Some logic has been tidied up, methods renamed
and responsibilities moved to enable easier
testing.

The tests revealed a bug that caused the first
time zone transition after 1970 to be skipped so
this has been fixed and the tzlookup.xml file
regenerated with update-tzdata.py.

Bug: 72142943
Test: ran all tests, see tzlookup_generator/README.android
Test: ran update-tzdata.py and looked at tzlookup.xml
Merged-In: Ia344cee9fe19628d798c055d01c776a5f8e0e272
Change-Id: Ia344cee9fe19628d798c055d01c776a5f8e0e272
(cherry picked from commit 0d8c2e75de6c30a5aa899b2c21f3e7cf9f1d2397)
/system/timezone/tzlookup_generator/src/main/java/com/android/libcore/timezone/tzlookup/zonetree/ZoneOffsetPeriod.java
1926bcbbf6843851f313c88c09f495b25bfacab0 09-Mar-2018 Neil Fuller <nfuller@google.com> Annotating zones that are not strictly necessary.

This change adds a host-side code to help reduce the
number of zones considered for a new time zone picker.
The TzLookupGenerator will now output additional
"notafter" attributes for zones that do not need
to be considered after a point in time.

The tool relies on data from ICU to establish zone
rules / naming information and the priority
information held in countryzones.txt. When two or
more zones are effectively identical for a period
the priority is used to decide which zone should
carry forward and which zone should have
"notafter" added.

Also included is a tool (UniqueZonesVisualizer)
to help debugging problems with zone prioritization
with tools like "dot".

This change contains an integration test
for TzLookupGenerator. zonetree classes are
currently lacking unit tests. This will be resolved
in a follow up commit when time allows.

Bug: 72142943
Test: Visual inspection of tzlookup.xml
Test: Ran tzlookup_generator/ tests, see README.android
Change-Id: I37568bc923bcaadb8b1305eec5dc1fea2ae3012b
Merged-In: I37568bc923bcaadb8b1305eec5dc1fea2ae3012b
(cherry picked from commit 73638ad4eebd581d3b96c7f6a7e0fad2e23bae7d)
/system/timezone/tzlookup_generator/src/main/java/com/android/libcore/timezone/tzlookup/zonetree/ZoneOffsetPeriod.java