diff --git a/src/com/android/settings/datetime/timezone/RegionPreferenceController.java b/src/com/android/settings/datetime/timezone/RegionPreferenceController.java index 53959a69514..c4b47b9eef7 100644 --- a/src/com/android/settings/datetime/timezone/RegionPreferenceController.java +++ b/src/com/android/settings/datetime/timezone/RegionPreferenceController.java @@ -15,6 +15,8 @@ */ package com.android.settings.datetime.timezone; +import static com.android.settingslib.datetime.ZoneGetter.capitalizeForStandaloneDisplay; + import android.content.Context; import android.icu.text.LocaleDisplayNames; @@ -23,19 +25,21 @@ import java.util.Locale; public class RegionPreferenceController extends BaseTimeZonePreferenceController { private static final String PREFERENCE_KEY = "region"; + private final Locale mLocale; private final LocaleDisplayNames mLocaleDisplayNames; private String mRegionId = ""; public RegionPreferenceController(Context context) { super(context, PREFERENCE_KEY); Locale locale = context.getResources().getConfiguration().getLocales().get(0); + mLocale = locale; mLocaleDisplayNames = LocaleDisplayNames.getInstance(locale); - } @Override public CharSequence getSummary() { - return mLocaleDisplayNames.regionDisplayName(mRegionId); + return capitalizeForStandaloneDisplay(mLocale, + mLocaleDisplayNames.regionDisplayName(mRegionId)); } public void setRegionId(String regionId) { diff --git a/src/com/android/settings/datetime/timezone/RegionSearchPicker.java b/src/com/android/settings/datetime/timezone/RegionSearchPicker.java index 85d5d705b49..3977aa9010c 100644 --- a/src/com/android/settings/datetime/timezone/RegionSearchPicker.java +++ b/src/com/android/settings/datetime/timezone/RegionSearchPicker.java @@ -16,6 +16,8 @@ package com.android.settings.datetime.timezone; +import static com.android.settingslib.datetime.ZoneGetter.capitalizeForStandaloneDisplay; + import android.app.Activity; import android.app.settings.SettingsEnums; import android.content.Intent; @@ -116,7 +118,8 @@ public class RegionSearchPicker extends BaseTimeZonePicker { final LocaleDisplayNames localeDisplayNames = LocaleDisplayNames.getInstance(getLocale()); long i = 0; for (String regionId : regionIds) { - String name = localeDisplayNames.regionDisplayName(regionId); + String name = capitalizeForStandaloneDisplay( + mLocale, localeDisplayNames.regionDisplayName(regionId)); items.add(new RegionItem(i++, regionId, name)); } return new ArrayList<>(items); diff --git a/src/com/android/settings/datetime/timezone/RegionZonePicker.java b/src/com/android/settings/datetime/timezone/RegionZonePicker.java index 7f988cd0ef0..1bc68a10d4c 100644 --- a/src/com/android/settings/datetime/timezone/RegionZonePicker.java +++ b/src/com/android/settings/datetime/timezone/RegionZonePicker.java @@ -16,6 +16,8 @@ package com.android.settings.datetime.timezone; +import static com.android.settingslib.datetime.ZoneGetter.capitalizeForStandaloneDisplay; + import android.app.settings.SettingsEnums; import android.content.Intent; import android.icu.text.Collator; @@ -65,7 +67,8 @@ public class RegionZonePicker extends BaseTimeZoneInfoPicker { final LocaleDisplayNames localeDisplayNames = LocaleDisplayNames.getInstance(getLocale()); final String regionId = getArguments() == null ? null : getArguments().getString(EXTRA_REGION_ID); - mRegionName = regionId == null ? null : localeDisplayNames.regionDisplayName(regionId); + mRegionName = regionId == null ? null : capitalizeForStandaloneDisplay( + mLocale, localeDisplayNames.regionDisplayName(regionId)); } @Override diff --git a/src/com/android/settings/datetime/timezone/TimeZoneInfo.java b/src/com/android/settings/datetime/timezone/TimeZoneInfo.java index f9e819c4179..5076f72014a 100644 --- a/src/com/android/settings/datetime/timezone/TimeZoneInfo.java +++ b/src/com/android/settings/datetime/timezone/TimeZoneInfo.java @@ -15,6 +15,8 @@ */ package com.android.settings.datetime.timezone; +import static com.android.settingslib.datetime.ZoneGetter.capitalizeForStandaloneDisplay; + import android.icu.text.TimeZoneFormat; import android.icu.text.TimeZoneNames; import android.icu.util.TimeZone; @@ -152,19 +154,29 @@ public class TimeZoneInfo { String canonicalZoneId = getCanonicalZoneId(timeZone); final TimeZoneNames timeZoneNames = mTimeZoneFormat.getTimeZoneNames(); final java.util.TimeZone javaTimeZone = toJavaTimeZone(canonicalZoneId); - final CharSequence gmtOffset = ZoneGetter.getGmtOffsetText(mTimeZoneFormat, mLocale, - javaTimeZone, mNow); + final CharSequence gmtOffset = + ZoneGetter.getGmtOffsetText(mTimeZoneFormat, mLocale, javaTimeZone, mNow); return new TimeZoneInfo.Builder(timeZone) - .setGenericName(timeZoneNames.getDisplayName(canonicalZoneId, - TimeZoneNames.NameType.LONG_GENERIC, mNow.getTime())) - .setStandardName(timeZoneNames.getDisplayName(canonicalZoneId, - TimeZoneNames.NameType.LONG_STANDARD, mNow.getTime())) - .setDaylightName(timeZoneNames.getDisplayName(canonicalZoneId, - TimeZoneNames.NameType.LONG_DAYLIGHT, mNow.getTime())) - .setExemplarLocation(timeZoneNames.getExemplarLocationName(canonicalZoneId)) + .setGenericName(getTzNameForListDisplay(mLocale, timeZoneNames, + canonicalZoneId, mNow, TimeZoneNames.NameType.LONG_GENERIC)) + .setStandardName(getTzNameForListDisplay(mLocale, timeZoneNames, + canonicalZoneId, mNow, TimeZoneNames.NameType.LONG_STANDARD)) + .setDaylightName(getTzNameForListDisplay(mLocale, timeZoneNames, + canonicalZoneId, mNow, TimeZoneNames.NameType.LONG_DAYLIGHT)) + .setExemplarLocation(capitalizeForStandaloneDisplay(mLocale, + timeZoneNames.getExemplarLocationName(canonicalZoneId))) .setGmtOffset(gmtOffset) .build(); } + + private static String getTzNameForListDisplay( + Locale locale, TimeZoneNames timeZoneNames, String canonicalZoneId, Date now, + TimeZoneNames.NameType nameType) { + long nowEpochMillis = now.getTime(); + String displayName = timeZoneNames.getDisplayName( + canonicalZoneId, nameType, nowEpochMillis); + return capitalizeForStandaloneDisplay(locale, displayName); + } } /* package-private */ java.util.TimeZone getJavaTimeZone() {