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 {
@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) {
}
@Test
- public void updateState_matchTimeZoneSummary() {
+ public void updateState_GmtMinus8_matchTimeZoneSummary() {
TimeZoneInfo fixedOffsetZone = new TimeZoneInfo.Builder(
TimeZone.getFrozenTimeZone("Etc/GMT-8"))
- .setExemplarLocation("Los Angeles")
.setGmtOffset("GMT-08:00")
.setItemId(0)
.build();
controller.setTimeZoneInfo(fixedOffsetZone);
controller.updateState(preference);
assertThat(preference.getSummary()).isEqualTo("GMT-08:00");
+ }
+ @Test
+ public void updateState_Utc_matchTimeZoneSummary() {
+ TimeZoneInfo fixedOffsetZone = new TimeZoneInfo.Builder(
+ TimeZone.getFrozenTimeZone("Etc/UTC"))
+ .setStandardName("Coordinated Universal Time")
+ .setGmtOffset("GMT+00:00")
+ .setItemId(0)
+ .build();
+ Preference preference = new Preference(mActivity);
+ FixedOffsetPreferenceController controller = new FixedOffsetPreferenceController(mActivity);
+ controller.setTimeZoneInfo(fixedOffsetZone);
+ controller.updateState(preference);
+ assertThat(preference.getSummary().toString())
+ .isEqualTo("Coordinated Universal Time (GMT+00:00)");
}
}