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;
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) {

View File

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

View File

@@ -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

View File

@@ -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() {