Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit babab5cd authored by Neil Fuller's avatar Neil Fuller
Browse files

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: Ib615976fae76ceb98873a33e1e995542e691c9d0
parent 3628bb3a
Loading
Loading
Loading
Loading
+18 −1
Original line number Diff line number Diff line
@@ -34,11 +34,14 @@ import androidx.core.text.TextDirectionHeuristicsCompat;

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 @@ public class ZoneGetter {

        @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);
        }
    }
}