From 5a66ddbd6f399e5413bc058ce12cb1646e4e3903 Mon Sep 17 00:00:00 2001 From: Doris Ling Date: Wed, 1 Nov 2017 12:54:29 -0700 Subject: [PATCH] Add screen resource for Colors setting. - each preference fragment should have its own preference screen layout in order to show the title correctly. Adding the missing data for ColorModePreferenceFragment. Change-Id: I172429dc957f94351456d4bc829897a578d7dbf9 Fixes: 68763217 Test: make RunSettingsRoboTests --- res/xml/color_mode_settings.xml | 21 ++++++++++++++++ .../display/ColorModePreferenceFragment.java | 5 ++++ .../widget/RadioButtonPickerFragment.java | 3 +++ .../DefaultAppPickerFragmentTest.java | 5 ++++ .../ColorModePreferenceFragmentTest.java | 24 ++++++++++++++++--- .../widget/RadioButtonPickerFragmentTest.java | 5 ++++ 6 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 res/xml/color_mode_settings.xml diff --git a/res/xml/color_mode_settings.xml b/res/xml/color_mode_settings.xml new file mode 100644 index 00000000000..b7f58d2ea08 --- /dev/null +++ b/res/xml/color_mode_settings.xml @@ -0,0 +1,21 @@ + + + + diff --git a/src/com/android/settings/display/ColorModePreferenceFragment.java b/src/com/android/settings/display/ColorModePreferenceFragment.java index 07cf82e7901..9f18fd8423b 100644 --- a/src/com/android/settings/display/ColorModePreferenceFragment.java +++ b/src/com/android/settings/display/ColorModePreferenceFragment.java @@ -44,6 +44,11 @@ public class ColorModePreferenceFragment extends RadioButtonPickerFragment { mController = new NightDisplayController(context); } + @Override + protected int getPreferenceScreenResId() { + return R.xml.color_mode_settings; + } + @Override protected List getCandidates() { Context c = getContext(); diff --git a/src/com/android/settings/widget/RadioButtonPickerFragment.java b/src/com/android/settings/widget/RadioButtonPickerFragment.java index 7489a772c5c..c7689090959 100644 --- a/src/com/android/settings/widget/RadioButtonPickerFragment.java +++ b/src/com/android/settings/widget/RadioButtonPickerFragment.java @@ -82,6 +82,9 @@ public abstract class RadioButtonPickerFragment extends InstrumentedPreferenceFr return view; } + @Override + protected abstract int getPreferenceScreenResId(); + @Override public void onRadioButtonClicked(RadioButtonPreference selected) { final String selectedKey = selected.getKey(); diff --git a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragmentTest.java b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragmentTest.java index 3621edd3645..42a62254a0a 100644 --- a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragmentTest.java +++ b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragmentTest.java @@ -114,6 +114,11 @@ public class DefaultAppPickerFragmentTest { return 0; } + @Override + protected int getPreferenceScreenResId() { + return 0; + } + @Override protected List getCandidates() { return new ArrayList<>(); diff --git a/tests/robotests/src/com/android/settings/display/ColorModePreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/display/ColorModePreferenceFragmentTest.java index 9ee79ffe545..fb9bb9f490b 100644 --- a/tests/robotests/src/com/android/settings/display/ColorModePreferenceFragmentTest.java +++ b/tests/robotests/src/com/android/settings/display/ColorModePreferenceFragmentTest.java @@ -16,11 +16,18 @@ package com.android.settings.display; import static com.google.common.truth.Truth.assertThat; + +import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import android.os.Bundle; + import com.android.internal.app.NightDisplayController; import com.android.internal.logging.nano.MetricsProto; +import com.android.settings.R; import com.android.settings.TestConfig; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.SettingsShadowSystemProperties; @@ -111,20 +118,31 @@ public class ColorModePreferenceFragmentTest { @Test public void setKey_natural() { mFragment.setDefaultKey(ColorModePreferenceFragment.KEY_COLOR_MODE_NATURAL); - Mockito.verify(mController).setColorMode(NightDisplayController.COLOR_MODE_NATURAL); + verify(mController).setColorMode(NightDisplayController.COLOR_MODE_NATURAL); } @Config(shadows = {SettingsShadowSystemProperties.class}) @Test public void setKey_boosted() { mFragment.setDefaultKey(ColorModePreferenceFragment.KEY_COLOR_MODE_BOOSTED); - Mockito.verify(mController).setColorMode(NightDisplayController.COLOR_MODE_BOOSTED); + verify(mController).setColorMode(NightDisplayController.COLOR_MODE_BOOSTED); } @Config(shadows = {SettingsShadowSystemProperties.class}) @Test public void setKey_saturated() { mFragment.setDefaultKey(ColorModePreferenceFragment.KEY_COLOR_MODE_SATURATED); - Mockito.verify(mController).setColorMode(NightDisplayController.COLOR_MODE_SATURATED); + verify(mController).setColorMode(NightDisplayController.COLOR_MODE_SATURATED); } + + @Test + public void onCreatePreferences_useNewTitle_shouldAddColorModePreferences() { + doNothing().when(mFragment).addPreferencesFromResource(anyInt()); + doNothing().when(mFragment).updateCandidates(); + + mFragment.onCreatePreferences(Bundle.EMPTY, null /* rootKey */); + + verify(mFragment).addPreferencesFromResource(R.xml.color_mode_settings); + } + } diff --git a/tests/robotests/src/com/android/settings/widget/RadioButtonPickerFragmentTest.java b/tests/robotests/src/com/android/settings/widget/RadioButtonPickerFragmentTest.java index 40d73eb327a..8ca68ae50b7 100644 --- a/tests/robotests/src/com/android/settings/widget/RadioButtonPickerFragmentTest.java +++ b/tests/robotests/src/com/android/settings/widget/RadioButtonPickerFragmentTest.java @@ -113,6 +113,11 @@ public class RadioButtonPickerFragmentTest { return 0; } + @Override + protected int getPreferenceScreenResId() { + return 0; + } + @Override protected List getCandidates() { return new ArrayList<>();