Loading src/com/android/settings/datetime/timezone/FixedOffsetPreferenceController.java +14 −3 Original line number Diff line number Diff line Loading @@ -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 { Loading @@ -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) { Loading tests/robotests/src/com/android/settings/datetime/timezone/FixedOffsetPreferenceControllerTest.java +16 −2 Original line number Diff line number Diff line Loading @@ -40,10 +40,9 @@ public class FixedOffsetPreferenceControllerTest { } @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(); Loading @@ -52,6 +51,21 @@ public class FixedOffsetPreferenceControllerTest { 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)"); } } Loading
src/com/android/settings/datetime/timezone/FixedOffsetPreferenceController.java +14 −3 Original line number Diff line number Diff line Loading @@ -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 { Loading @@ -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) { Loading
tests/robotests/src/com/android/settings/datetime/timezone/FixedOffsetPreferenceControllerTest.java +16 −2 Original line number Diff line number Diff line Loading @@ -40,10 +40,9 @@ public class FixedOffsetPreferenceControllerTest { } @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(); Loading @@ -52,6 +51,21 @@ public class FixedOffsetPreferenceControllerTest { 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)"); } }