Merge "Capitalize TZ display name strings"

This commit is contained in:
Neil Fuller
2022-05-03 19:22:03 +00:00
committed by Gerrit Code Review
4 changed files with 35 additions and 13 deletions

View File

@@ -15,6 +15,8 @@
*/ */
package com.android.settings.datetime.timezone; package com.android.settings.datetime.timezone;
import static com.android.settingslib.datetime.ZoneGetter.capitalizeForStandaloneDisplay;
import android.content.Context; import android.content.Context;
import android.icu.text.LocaleDisplayNames; import android.icu.text.LocaleDisplayNames;
@@ -23,19 +25,21 @@ import java.util.Locale;
public class RegionPreferenceController extends BaseTimeZonePreferenceController { public class RegionPreferenceController extends BaseTimeZonePreferenceController {
private static final String PREFERENCE_KEY = "region"; private static final String PREFERENCE_KEY = "region";
private final Locale mLocale;
private final LocaleDisplayNames mLocaleDisplayNames; private final LocaleDisplayNames mLocaleDisplayNames;
private String mRegionId = ""; private String mRegionId = "";
public RegionPreferenceController(Context context) { public RegionPreferenceController(Context context) {
super(context, PREFERENCE_KEY); super(context, PREFERENCE_KEY);
Locale locale = context.getResources().getConfiguration().getLocales().get(0); Locale locale = context.getResources().getConfiguration().getLocales().get(0);
mLocale = locale;
mLocaleDisplayNames = LocaleDisplayNames.getInstance(locale); mLocaleDisplayNames = LocaleDisplayNames.getInstance(locale);
} }
@Override @Override
public CharSequence getSummary() { public CharSequence getSummary() {
return mLocaleDisplayNames.regionDisplayName(mRegionId); return capitalizeForStandaloneDisplay(mLocale,
mLocaleDisplayNames.regionDisplayName(mRegionId));
} }
public void setRegionId(String regionId) { public void setRegionId(String regionId) {

View File

@@ -16,6 +16,8 @@
package com.android.settings.datetime.timezone; package com.android.settings.datetime.timezone;
import static com.android.settingslib.datetime.ZoneGetter.capitalizeForStandaloneDisplay;
import android.app.Activity; import android.app.Activity;
import android.app.settings.SettingsEnums; import android.app.settings.SettingsEnums;
import android.content.Intent; import android.content.Intent;
@@ -116,7 +118,8 @@ public class RegionSearchPicker extends BaseTimeZonePicker {
final LocaleDisplayNames localeDisplayNames = LocaleDisplayNames.getInstance(getLocale()); final LocaleDisplayNames localeDisplayNames = LocaleDisplayNames.getInstance(getLocale());
long i = 0; long i = 0;
for (String regionId : regionIds) { for (String regionId : regionIds) {
String name = localeDisplayNames.regionDisplayName(regionId); String name = capitalizeForStandaloneDisplay(
mLocale, localeDisplayNames.regionDisplayName(regionId));
items.add(new RegionItem(i++, regionId, name)); items.add(new RegionItem(i++, regionId, name));
} }
return new ArrayList<>(items); return new ArrayList<>(items);

View File

@@ -16,6 +16,8 @@
package com.android.settings.datetime.timezone; package com.android.settings.datetime.timezone;
import static com.android.settingslib.datetime.ZoneGetter.capitalizeForStandaloneDisplay;
import android.app.settings.SettingsEnums; import android.app.settings.SettingsEnums;
import android.content.Intent; import android.content.Intent;
import android.icu.text.Collator; import android.icu.text.Collator;
@@ -65,7 +67,8 @@ public class RegionZonePicker extends BaseTimeZoneInfoPicker {
final LocaleDisplayNames localeDisplayNames = LocaleDisplayNames.getInstance(getLocale()); final LocaleDisplayNames localeDisplayNames = LocaleDisplayNames.getInstance(getLocale());
final String regionId = final String regionId =
getArguments() == null ? null : getArguments().getString(EXTRA_REGION_ID); 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 @Override

View File

@@ -15,6 +15,8 @@
*/ */
package com.android.settings.datetime.timezone; package com.android.settings.datetime.timezone;
import static com.android.settingslib.datetime.ZoneGetter.capitalizeForStandaloneDisplay;
import android.icu.text.TimeZoneFormat; import android.icu.text.TimeZoneFormat;
import android.icu.text.TimeZoneNames; import android.icu.text.TimeZoneNames;
import android.icu.util.TimeZone; import android.icu.util.TimeZone;
@@ -152,19 +154,29 @@ public class TimeZoneInfo {
String canonicalZoneId = getCanonicalZoneId(timeZone); String canonicalZoneId = getCanonicalZoneId(timeZone);
final TimeZoneNames timeZoneNames = mTimeZoneFormat.getTimeZoneNames(); final TimeZoneNames timeZoneNames = mTimeZoneFormat.getTimeZoneNames();
final java.util.TimeZone javaTimeZone = toJavaTimeZone(canonicalZoneId); final java.util.TimeZone javaTimeZone = toJavaTimeZone(canonicalZoneId);
final CharSequence gmtOffset = ZoneGetter.getGmtOffsetText(mTimeZoneFormat, mLocale, final CharSequence gmtOffset =
javaTimeZone, mNow); ZoneGetter.getGmtOffsetText(mTimeZoneFormat, mLocale, javaTimeZone, mNow);
return new TimeZoneInfo.Builder(timeZone) return new TimeZoneInfo.Builder(timeZone)
.setGenericName(timeZoneNames.getDisplayName(canonicalZoneId, .setGenericName(getTzNameForListDisplay(mLocale, timeZoneNames,
TimeZoneNames.NameType.LONG_GENERIC, mNow.getTime())) canonicalZoneId, mNow, TimeZoneNames.NameType.LONG_GENERIC))
.setStandardName(timeZoneNames.getDisplayName(canonicalZoneId, .setStandardName(getTzNameForListDisplay(mLocale, timeZoneNames,
TimeZoneNames.NameType.LONG_STANDARD, mNow.getTime())) canonicalZoneId, mNow, TimeZoneNames.NameType.LONG_STANDARD))
.setDaylightName(timeZoneNames.getDisplayName(canonicalZoneId, .setDaylightName(getTzNameForListDisplay(mLocale, timeZoneNames,
TimeZoneNames.NameType.LONG_DAYLIGHT, mNow.getTime())) canonicalZoneId, mNow, TimeZoneNames.NameType.LONG_DAYLIGHT))
.setExemplarLocation(timeZoneNames.getExemplarLocationName(canonicalZoneId)) .setExemplarLocation(capitalizeForStandaloneDisplay(mLocale,
timeZoneNames.getExemplarLocationName(canonicalZoneId)))
.setGmtOffset(gmtOffset) .setGmtOffset(gmtOffset)
.build(); .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() { /* package-private */ java.util.TimeZone getJavaTimeZone() {