Show time zone standard name in FixedOffsetPreferenceController

- Among all fixed offset time zone, only Etc/UTC has a time zone
standard name. The name should be shown in both picker and preference's
secondary text (summary).

Bug: 74338688
Test: m RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.datetime.timezone
Change-Id: I10c140f6054ab9acf6e0fb44528adef8b28fa23c
This commit is contained in:
Victor Chang
2018-03-08 15:05:14 +00:00
parent 3c5aeac39f
commit d251a10cd6
2 changed files with 30 additions and 5 deletions

View File

@@ -17,7 +17,8 @@
package com.android.settings.datetime.timezone;
import android.content.Context;
import android.support.v7.preference.Preference;
import com.android.settings.R;
public class FixedOffsetPreferenceController extends BaseTimeZonePreferenceController {
@@ -31,8 +32,18 @@ public class FixedOffsetPreferenceController extends BaseTimeZonePreferenceContr
@Override
public CharSequence getSummary() {
// This is a Spannable object, which contains TTS span. It shouldn't be converted to String.
return mTimeZoneInfo == null ? "" : mTimeZoneInfo.getGmtOffset();
if (mTimeZoneInfo == null) {
return "";
}
String standardName = mTimeZoneInfo.getStandardName();
if (standardName == null) {
return mTimeZoneInfo.getGmtOffset();
} else {
// GmtOffset is Spannable, which contains TTS span. It shouldn't be converted to String.
return SpannableUtil.getResourcesText(mContext.getResources(),
R.string.zone_info_offset_and_name, mTimeZoneInfo.getGmtOffset(), standardName);
}
}
public void setTimeZoneInfo(TimeZoneInfo timeZoneInfo) {