Update TimezoneInfoPrefController to register in xml

Test: robotest
Bug: 77216595
Change-Id: I0fde4f8058a8be156dddb620a756254cd85f6a9f
This commit is contained in:
Fan Zhang
2018-03-29 14:29:54 -07:00
parent fc1590e901
commit 65983f71d5
6 changed files with 21 additions and 26 deletions

View File

@@ -16,6 +16,7 @@
<PreferenceScreen <PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res-auto"
android:key="time_zone_settings_screen" android:key="time_zone_settings_screen"
android:title="@string/date_time_set_timezone"> android:title="@string/date_time_set_timezone">
@@ -29,7 +30,9 @@
android:key="region_zone" android:key="region_zone"
android:title="@string/date_time_set_timezone_title" android:title="@string/date_time_set_timezone_title"
android:summary="@string/summary_placeholder" /> android:summary="@string/summary_placeholder" />
<com.android.settingslib.widget.FooterPreference/> <com.android.settingslib.widget.FooterPreference
android:key="footer_preference"
settings:controller="com.android.settings.datetime.timezone.TimeZoneInfoPreferenceController" />
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory <PreferenceCategory
@@ -37,6 +40,6 @@
<com.android.settingslib.RestrictedPreference <com.android.settingslib.RestrictedPreference
android:key="fixed_offset" android:key="fixed_offset"
android:title="@string/date_time_select_fixed_offset_time_zones" android:title="@string/date_time_select_fixed_offset_time_zones"
android:summary="@string/summary_placeholder"/> android:summary="@string/summary_placeholder" />
</PreferenceCategory> </PreferenceCategory>
</PreferenceScreen> </PreferenceScreen>

View File

@@ -33,22 +33,18 @@ import com.android.settingslib.widget.FooterPreference;
import java.util.Date; import java.util.Date;
public class TimeZoneInfoPreferenceController extends BaseTimeZonePreferenceController { public class TimeZoneInfoPreferenceController extends BaseTimeZonePreferenceController {
private static final String PREFERENCE_KEY = FooterPreference.KEY_FOOTER;
private static final String PREFERENCE_KEY = FooterPreference.KEY_FOOTER;
@VisibleForTesting
Date mDate;
private TimeZoneInfo mTimeZoneInfo; private TimeZoneInfo mTimeZoneInfo;
private final DateFormat mDateFormat; private final DateFormat mDateFormat;
private final Date mDate;
public TimeZoneInfoPreferenceController(Context context) { public TimeZoneInfoPreferenceController(Context context) {
this(context, new Date());
}
@VisibleForTesting
TimeZoneInfoPreferenceController(Context context, Date date) {
super(context, PREFERENCE_KEY); super(context, PREFERENCE_KEY);
mDateFormat = DateFormat.getDateInstance(SimpleDateFormat.LONG); mDateFormat = DateFormat.getDateInstance(SimpleDateFormat.LONG);
mDateFormat.setContext(DisplayContext.CAPITALIZATION_NONE); mDateFormat.setContext(DisplayContext.CAPITALIZATION_NONE);
mDate = date; mDate = new Date();
} }
@Override @Override

View File

@@ -102,15 +102,12 @@ public class TimeZoneSettings extends DashboardFragment {
RegionZonePreferenceController regionZonePreferenceController = RegionZonePreferenceController regionZonePreferenceController =
new RegionZonePreferenceController(context); new RegionZonePreferenceController(context);
regionZonePreferenceController.setOnClickListener(this::onRegionZonePreferenceClicked); regionZonePreferenceController.setOnClickListener(this::onRegionZonePreferenceClicked);
TimeZoneInfoPreferenceController timeZoneInfoPreferenceController =
new TimeZoneInfoPreferenceController(context);
FixedOffsetPreferenceController fixedOffsetPreferenceController = FixedOffsetPreferenceController fixedOffsetPreferenceController =
new FixedOffsetPreferenceController(context); new FixedOffsetPreferenceController(context);
fixedOffsetPreferenceController.setOnClickListener(this::startFixedOffsetPicker); fixedOffsetPreferenceController.setOnClickListener(this::startFixedOffsetPicker);
controllers.add(regionPreferenceController); controllers.add(regionPreferenceController);
controllers.add(regionZonePreferenceController); controllers.add(regionZonePreferenceController);
controllers.add(timeZoneInfoPreferenceController);
controllers.add(fixedOffsetPreferenceController); controllers.add(fixedOffsetPreferenceController);
return controllers; return controllers;
} }

View File

@@ -21,7 +21,6 @@ com.android.settings.bluetooth.BluetoothSwitchPreferenceController
com.android.settings.connecteddevice.ConnectedDeviceGroupController com.android.settings.connecteddevice.ConnectedDeviceGroupController
com.android.settings.connecteddevice.SavedDeviceGroupController com.android.settings.connecteddevice.SavedDeviceGroupController
com.android.settings.datausage.DataUsageSummaryPreferenceController com.android.settings.datausage.DataUsageSummaryPreferenceController
com.android.settings.datetime.timezone.TimeZoneInfoPreferenceController
com.android.settings.fuelgauge.RestrictAppPreferenceController com.android.settings.fuelgauge.RestrictAppPreferenceController
com.android.settings.fuelgauge.batterysaver.AutoBatterySeekBarPreferenceController com.android.settings.fuelgauge.batterysaver.AutoBatterySeekBarPreferenceController
com.android.settings.fuelgauge.batterysaver.BatterySaverButtonPreferenceController com.android.settings.fuelgauge.batterysaver.BatterySaverButtonPreferenceController

View File

@@ -16,6 +16,9 @@
package com.android.settings.datetime.timezone; package com.android.settings.datetime.timezone;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.spy;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import com.android.settings.datetime.timezone.TimeZoneInfo.Formatter; import com.android.settings.datetime.timezone.TimeZoneInfo.Formatter;
@@ -28,9 +31,6 @@ import org.robolectric.RuntimeEnvironment;
import java.util.Date; import java.util.Date;
import java.util.Locale; import java.util.Locale;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.spy;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
public class TimeZoneInfoPreferenceControllerTest { public class TimeZoneInfoPreferenceControllerTest {
@@ -41,12 +41,13 @@ public class TimeZoneInfoPreferenceControllerTest {
TimeZoneInfo timeZoneInfo = formatter.format("America/Los_Angeles"); TimeZoneInfo timeZoneInfo = formatter.format("America/Los_Angeles");
TimeZoneInfoPreferenceController controller = TimeZoneInfoPreferenceController controller =
new TimeZoneInfoPreferenceController(RuntimeEnvironment.application, now); new TimeZoneInfoPreferenceController(RuntimeEnvironment.application);
controller.mDate = now;
controller.setTimeZoneInfo(timeZoneInfo); controller.setTimeZoneInfo(timeZoneInfo);
Preference preference = spy(new Preference(RuntimeEnvironment.application)); Preference preference = spy(new Preference(RuntimeEnvironment.application));
controller.updateState(preference); controller.updateState(preference);
assertEquals("Uses Pacific Time (GMT-08:00). " assertEquals("Uses Pacific Time (GMT-08:00). "
+ "Pacific Daylight Time starts on April 26, 1970.", + "Pacific Daylight Time starts on April 26, 1970.",
preference.getTitle().toString()); preference.getTitle().toString());
} }
} }

View File

@@ -16,6 +16,10 @@
package com.android.settings.datetime.timezone; package com.android.settings.datetime.timezone;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import com.android.settings.datetime.timezone.model.TimeZoneData; import com.android.settings.datetime.timezone.model.TimeZoneData;
import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResources; import com.android.settings.testutils.shadow.SettingsShadowResources;
@@ -30,10 +34,6 @@ import java.util.Arrays;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
@Config(shadows = { @Config(shadows = {
SettingsShadowResources.class, SettingsShadowResources.class,
@@ -60,10 +60,9 @@ public class TimeZoneSettingsTest {
TimeZoneSettings settings = new TimeZoneSettings(); TimeZoneSettings settings = new TimeZoneSettings();
List<AbstractPreferenceController> controllers = List<AbstractPreferenceController> controllers =
settings.createPreferenceControllers(RuntimeEnvironment.application); settings.createPreferenceControllers(RuntimeEnvironment.application);
assertThat(controllers).hasSize(4); assertThat(controllers).hasSize(3);
assertThat(controllers.get(0)).isInstanceOf(RegionPreferenceController.class); assertThat(controllers.get(0)).isInstanceOf(RegionPreferenceController.class);
assertThat(controllers.get(1)).isInstanceOf(RegionZonePreferenceController.class); assertThat(controllers.get(1)).isInstanceOf(RegionZonePreferenceController.class);
assertThat(controllers.get(2)).isInstanceOf(TimeZoneInfoPreferenceController.class); assertThat(controllers.get(2)).isInstanceOf(FixedOffsetPreferenceController.class);
assertThat(controllers.get(3)).isInstanceOf(FixedOffsetPreferenceController.class);
} }
} }