Merge "Simplify APIs exposed for time zone lookups"
am: 19de70814a
Change-Id: I011145107f9b228272814bbdc73aa8fe35a0d984
diff --git a/packages/SettingsLib/src/com/android/settingslib/datetime/ZoneGetter.java b/packages/SettingsLib/src/com/android/settingslib/datetime/ZoneGetter.java
index 99d48d3..aac7fc3 100644
--- a/packages/SettingsLib/src/com/android/settingslib/datetime/ZoneGetter.java
+++ b/packages/SettingsLib/src/com/android/settingslib/datetime/ZoneGetter.java
@@ -34,11 +34,14 @@
import com.android.settingslib.R;
+import libcore.timezone.CountryTimeZones;
+import libcore.timezone.CountryTimeZones.TimeZoneMapping;
import libcore.timezone.TimeZoneFinder;
import org.xmlpull.v1.XmlPullParserException;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
@@ -387,7 +390,21 @@
@VisibleForTesting
public List<String> lookupTimeZoneIdsByCountry(String country) {
- return TimeZoneFinder.getInstance().lookupTimeZoneIdsByCountry(country);
+ final CountryTimeZones countryTimeZones =
+ TimeZoneFinder.getInstance().lookupCountryTimeZones(country);
+ if (countryTimeZones == null) {
+ return null;
+ }
+ final List<TimeZoneMapping> mappings = countryTimeZones.getTimeZoneMappings();
+ return extractTimeZoneIds(mappings);
+ }
+
+ private static List<String> extractTimeZoneIds(List<TimeZoneMapping> timeZoneMappings) {
+ final List<String> zoneIds = new ArrayList<>(timeZoneMappings.size());
+ for (TimeZoneMapping timeZoneMapping : timeZoneMappings) {
+ zoneIds.add(timeZoneMapping.timeZoneId);
+ }
+ return Collections.unmodifiableList(zoneIds);
}
}
}