diff --git a/packages/SettingsLib/src/com/android/settingslib/datetime/ZoneGetter.java b/packages/SettingsLib/src/com/android/settingslib/datetime/ZoneGetter.java index 6157fec3441f7..f1e997bf5a1bd 100644 --- a/packages/SettingsLib/src/com/android/settingslib/datetime/ZoneGetter.java +++ b/packages/SettingsLib/src/com/android/settingslib/datetime/ZoneGetter.java @@ -33,11 +33,14 @@ import android.view.View; 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; @@ -386,7 +389,21 @@ public class ZoneGetter { @VisibleForTesting public List lookupTimeZoneIdsByCountry(String country) { - return TimeZoneFinder.getInstance().lookupTimeZoneIdsByCountry(country); + final CountryTimeZones countryTimeZones = + TimeZoneFinder.getInstance().lookupCountryTimeZones(country); + if (countryTimeZones == null) { + return null; + } + final List mappings = countryTimeZones.getTimeZoneMappings(); + return extractTimeZoneIds(mappings); + } + + private static List extractTimeZoneIds(List timeZoneMappings) { + final List zoneIds = new ArrayList<>(timeZoneMappings.size()); + for (TimeZoneMapping timeZoneMapping : timeZoneMappings) { + zoneIds.add(timeZoneMapping.timeZoneId); + } + return Collections.unmodifiableList(zoneIds); } } }