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:
@@ -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) {
|
||||
|
@@ -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();
|
||||
@@ -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)");
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user