OSDN Git Service

Canonicalize tz IDs when finding exemplar location
authorNeil Fuller <nfuller@google.com>
Wed, 5 Apr 2017 12:58:26 +0000 (13:58 +0100)
committerNeil Fuller <nfuller@google.com>
Wed, 5 Apr 2017 13:07:50 +0000 (14:07 +0100)
commitf92ad8a0190add07779ed454a0908dd3df83f4bd
tree53c00cd7ccbff5e2e93ea06e72a2ff061fb07eb3
parent06d6b4d9b0cc895c7d28e56019213800d4d522cf
Canonicalize tz IDs when finding exemplar location

Canonicalize time zone IDs when looking up exemplar location.

ICU's canonical IDs are not guaranteed the same as IANA's.
Various data files (e.g. timezones.xml, tzdata,
time_zones_by_country.xml) are using IANA IDs. ICU's IDs
are often the same, but because they are guaranteed not to
change and IANAs are not there is some drift.

This fixes an issue with the settings picker for ICU IDs:

America/Buenos_Aires
Asia/Rangoon
Asia/Katmandu
Asia/Calcutta

Which are IANA's:

America/Argentina/Buenos_Aires
Asia/Yangon
Asia/Kathmandu
Asia/Kolkata

introduced by commit b4d003da66.

It could also influence some display names for
automatically-selected time zones outside of this list.

The issues was particularly noticeable in locales that
use non-ASCII scripts; ICU performs a fallback if the ID
isn't canonical and would transform and return the last
part of the ID (e.g. Buenos Aires, Yangon, Kathmandu,
Kolkata).

Bug: 36469833
Test: Manual testing in Japanese
Change-Id: I2febdbee58e474d251d0a33f2c8335664a74581f
packages/SettingsLib/src/com/android/settingslib/datetime/ZoneGetter.java