From 21316e0b65a94f3c520769bb5af12d7e48bc5400 Mon Sep 17 00:00:00 2001 From: Neil Fuller Date: Mon, 19 Aug 2019 20:39:30 +0100 Subject: Simplify APIs exposed for time zone lookups The libcore.timezone APIs may form the basis for some new SystemApis. Before starting that process the API surface is being rationalized to establish the core use cases. Test: Treehugger Bug: 139091367 Change-Id: I6c8b791524d16223c414612913b22f4d70c27d61 Merged-In: I6c8b791524d16223c414612913b22f4d70c27d61 (cherry picked from commit 400efa36ef8666ad8341c36679a4f2cb9fd00f9f) --- core/java/android/util/TimeUtils.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/core/java/android/util/TimeUtils.java b/core/java/android/util/TimeUtils.java index f8b38e9d215d..07cecd38620d 100644 --- a/core/java/android/util/TimeUtils.java +++ b/core/java/android/util/TimeUtils.java @@ -62,9 +62,9 @@ public class TimeUtils { } /** - * Tries to return a frozen ICU time zone that would have had the specified offset - * and DST value at the specified moment in the specified country. - * Returns null if no suitable zone could be found. + * Returns a frozen ICU time zone that has / would have had the specified offset and DST value + * at the specified moment in the specified country. Returns null if no suitable zone could be + * found. */ private static android.icu.util.TimeZone getIcuTimeZone( int offset, boolean dst, long when, String country) { @@ -73,8 +73,15 @@ public class TimeUtils { } android.icu.util.TimeZone bias = android.icu.util.TimeZone.getDefault(); - return TimeZoneFinder.getInstance() - .lookupTimeZoneByCountryAndOffset(country, offset, dst, when, bias); + CountryTimeZones countryTimeZones = + TimeZoneFinder.getInstance().lookupCountryTimeZones(country); + if (countryTimeZones == null) { + return null; + } + + CountryTimeZones.OffsetResult offsetResult = + countryTimeZones.lookupByOffsetWithBias(offset, dst, when, bias); + return offsetResult != null ? offsetResult.mTimeZone : null; } /** -- cgit v1.2.3-59-g8ed1b