Loading src/com/android/settings/display/ColorModePreferenceController.java +3 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,9 @@ public class ColorModePreferenceController extends BasePreferenceController { @Override public CharSequence getSummary() { final int colorMode = getColorDisplayController().getColorMode(); if (colorMode == ColorDisplayController.COLOR_MODE_AUTOMATIC) { return mContext.getText(R.string.color_mode_option_automatic); } if (colorMode == ColorDisplayController.COLOR_MODE_SATURATED) { return mContext.getText(R.string.color_mode_option_saturated); } Loading src/com/android/settings/display/ColorModePreferenceFragment.java +36 −11 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ import com.android.settings.R; import com.android.settings.widget.RadioButtonPickerFragment; import com.android.settingslib.widget.CandidateInfo; import java.util.Arrays; import java.util.ArrayList; import java.util.List; @SuppressWarnings("WeakerAccess") Loading @@ -39,6 +39,8 @@ public class ColorModePreferenceFragment extends RadioButtonPickerFragment static final String KEY_COLOR_MODE_BOOSTED = "color_mode_boosted"; @VisibleForTesting static final String KEY_COLOR_MODE_SATURATED = "color_mode_saturated"; @VisibleForTesting static final String KEY_COLOR_MODE_AUTOMATIC = "color_mode_automatic"; private ColorDisplayController mController; Loading Loading @@ -78,21 +80,41 @@ public class ColorModePreferenceFragment extends RadioButtonPickerFragment @Override protected List<? extends CandidateInfo> getCandidates() { Context c = getContext(); return Arrays.asList( new ColorModeCandidateInfo(c.getText(R.string.color_mode_option_natural), KEY_COLOR_MODE_NATURAL, true /* enabled */), new ColorModeCandidateInfo(c.getText(R.string.color_mode_option_boosted), KEY_COLOR_MODE_BOOSTED, true /* enabled */), new ColorModeCandidateInfo(c.getText(R.string.color_mode_option_saturated), KEY_COLOR_MODE_SATURATED, true /* enabled */) ); final Context c = getContext(); final int[] availableColorModes = c.getResources().getIntArray( com.android.internal.R.array.config_availableColorModes); List<ColorModeCandidateInfo> candidates = new ArrayList<ColorModeCandidateInfo>(); if (availableColorModes != null) { for (int colorMode : availableColorModes) { if (colorMode == ColorDisplayController.COLOR_MODE_NATURAL) { candidates.add(new ColorModeCandidateInfo( c.getText(R.string.color_mode_option_natural), KEY_COLOR_MODE_NATURAL, true /* enabled */)); } else if (colorMode == ColorDisplayController.COLOR_MODE_BOOSTED) { candidates.add(new ColorModeCandidateInfo( c.getText(R.string.color_mode_option_boosted), KEY_COLOR_MODE_BOOSTED, true /* enabled */)); } else if (colorMode == ColorDisplayController.COLOR_MODE_SATURATED) { candidates.add(new ColorModeCandidateInfo( c.getText(R.string.color_mode_option_saturated), KEY_COLOR_MODE_SATURATED, true /* enabled */)); } else if (colorMode == ColorDisplayController.COLOR_MODE_AUTOMATIC) { candidates.add(new ColorModeCandidateInfo( c.getText(R.string.color_mode_option_automatic), KEY_COLOR_MODE_AUTOMATIC, true /* enabled */)); } } } return candidates; } @Override protected String getDefaultKey() { final int colorMode = mController.getColorMode(); if (colorMode == ColorDisplayController.COLOR_MODE_SATURATED) { if (colorMode == ColorDisplayController.COLOR_MODE_AUTOMATIC) { return KEY_COLOR_MODE_AUTOMATIC; } else if (colorMode == ColorDisplayController.COLOR_MODE_SATURATED) { return KEY_COLOR_MODE_SATURATED; } else if (colorMode == ColorDisplayController.COLOR_MODE_BOOSTED) { return KEY_COLOR_MODE_BOOSTED; Loading @@ -112,6 +134,9 @@ public class ColorModePreferenceFragment extends RadioButtonPickerFragment case KEY_COLOR_MODE_SATURATED: mController.setColorMode(ColorDisplayController.COLOR_MODE_SATURATED); break; case KEY_COLOR_MODE_AUTOMATIC: mController.setColorMode(ColorDisplayController.COLOR_MODE_AUTOMATIC); break; } return true; } Loading tests/robotests/src/com/android/settings/display/ColorModePreferenceControllerTest.java +10 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,16 @@ public class ColorModePreferenceControllerTest { doReturn(mColorDisplayController).when(mController).getColorDisplayController(); } @Test public void updateState_colorModeAutomatic_shouldSetSummaryToAutomatic() { when(mColorDisplayController.getColorMode()) .thenReturn(ColorDisplayController.COLOR_MODE_AUTOMATIC); mController.updateState(mPreference); verify(mPreference).setSummary(mContext.getString(R.string.color_mode_option_automatic)); } @Test public void updateState_colorModeSaturated_shouldSetSummaryToSaturated() { when(mColorDisplayController.getColorMode()) Loading tests/robotests/src/com/android/settings/display/ColorModePreferenceFragmentTest.java +75 −1 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; import com.android.settings.applications.LayoutPreference; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.SettingsShadowResources; import com.android.settingslib.widget.CandidateInfo; import org.junit.Before; Loading @@ -43,11 +44,13 @@ import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import org.robolectric.util.ReflectionHelpers; import java.util.List; @RunWith(SettingsRobolectricTestRunner.class) @Config(shadows = SettingsShadowResources.class) public class ColorModePreferenceFragmentTest { private ColorModePreferenceFragment mFragment; Loading @@ -73,8 +76,64 @@ public class ColorModePreferenceFragmentTest { } @Test public void getCandidates() { public void getCandidates_all() { when(mFragment.getContext()).thenReturn(RuntimeEnvironment.application); SettingsShadowResources.overrideResource( com.android.internal.R.array.config_availableColorModes, new int[]{ ColorDisplayController.COLOR_MODE_NATURAL, ColorDisplayController.COLOR_MODE_BOOSTED, ColorDisplayController.COLOR_MODE_SATURATED, ColorDisplayController.COLOR_MODE_AUTOMATIC }); List<? extends CandidateInfo> candidates = mFragment.getCandidates(); assertThat(candidates.size()).isEqualTo(4); assertThat(candidates.get(0).getKey()) .isEqualTo(ColorModePreferenceFragment.KEY_COLOR_MODE_NATURAL); assertThat(candidates.get(1).getKey()) .isEqualTo(ColorModePreferenceFragment.KEY_COLOR_MODE_BOOSTED); assertThat(candidates.get(2).getKey()) .isEqualTo(ColorModePreferenceFragment.KEY_COLOR_MODE_SATURATED); assertThat(candidates.get(3).getKey()) .isEqualTo(ColorModePreferenceFragment.KEY_COLOR_MODE_AUTOMATIC); } @Test public void getCandidates_none() { when(mFragment.getContext()).thenReturn(RuntimeEnvironment.application); SettingsShadowResources.overrideResource( com.android.internal.R.array.config_availableColorModes, null); List<? extends CandidateInfo> candidates = mFragment.getCandidates(); assertThat(candidates.size()).isEqualTo(0); } @Test public void getCandidates_withAutomatic() { when(mFragment.getContext()).thenReturn(RuntimeEnvironment.application); SettingsShadowResources.overrideResource( com.android.internal.R.array.config_availableColorModes, new int[]{ ColorDisplayController.COLOR_MODE_NATURAL, ColorDisplayController.COLOR_MODE_AUTOMATIC }); List<? extends CandidateInfo> candidates = mFragment.getCandidates(); assertThat(candidates.size()).isEqualTo(2); assertThat(candidates.get(0).getKey()) .isEqualTo(ColorModePreferenceFragment.KEY_COLOR_MODE_NATURAL); assertThat(candidates.get(1).getKey()) .isEqualTo(ColorModePreferenceFragment.KEY_COLOR_MODE_AUTOMATIC); } @Test public void getCandidates_withoutAutomatic() { when(mFragment.getContext()).thenReturn(RuntimeEnvironment.application); SettingsShadowResources.overrideResource( com.android.internal.R.array.config_availableColorModes, new int[]{ ColorDisplayController.COLOR_MODE_NATURAL, ColorDisplayController.COLOR_MODE_BOOSTED, ColorDisplayController.COLOR_MODE_SATURATED, }); List<? extends CandidateInfo> candidates = mFragment.getCandidates(); assertThat(candidates.size()).isEqualTo(3); Loading Loading @@ -113,6 +172,15 @@ public class ColorModePreferenceFragmentTest { .isEqualTo(ColorModePreferenceFragment.KEY_COLOR_MODE_SATURATED); } @Test public void getKey_automatic() { when(mController.getColorMode()) .thenReturn(ColorDisplayController.COLOR_MODE_AUTOMATIC); assertThat(mFragment.getDefaultKey()) .isEqualTo(ColorModePreferenceFragment.KEY_COLOR_MODE_AUTOMATIC); } @Test public void setKey_natural() { mFragment.setDefaultKey(ColorModePreferenceFragment.KEY_COLOR_MODE_NATURAL); Loading @@ -131,6 +199,12 @@ public class ColorModePreferenceFragmentTest { verify(mController).setColorMode(ColorDisplayController.COLOR_MODE_SATURATED); } @Test public void setKey_automatic() { mFragment.setDefaultKey(ColorModePreferenceFragment.KEY_COLOR_MODE_AUTOMATIC); verify(mController).setColorMode(ColorDisplayController.COLOR_MODE_AUTOMATIC); } @Test public void onCreatePreferences_useNewTitle_shouldAddColorModePreferences() { doNothing().when(mFragment).addPreferencesFromResource(anyInt()); Loading tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java +8 −0 Original line number Diff line number Diff line Loading @@ -132,6 +132,14 @@ public class SettingsShadowResources extends ShadowResources { || id == com.android.settings.R.array.batterymeter_plus_points) { return new int[2]; } final Object override; synchronized (sResourceOverrides) { override = sResourceOverrides.get(id); } if (override instanceof int[]) { return (int[]) override; } return directlyOn(realResources, Resources.class).getIntArray(id); } Loading Loading
src/com/android/settings/display/ColorModePreferenceController.java +3 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,9 @@ public class ColorModePreferenceController extends BasePreferenceController { @Override public CharSequence getSummary() { final int colorMode = getColorDisplayController().getColorMode(); if (colorMode == ColorDisplayController.COLOR_MODE_AUTOMATIC) { return mContext.getText(R.string.color_mode_option_automatic); } if (colorMode == ColorDisplayController.COLOR_MODE_SATURATED) { return mContext.getText(R.string.color_mode_option_saturated); } Loading
src/com/android/settings/display/ColorModePreferenceFragment.java +36 −11 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ import com.android.settings.R; import com.android.settings.widget.RadioButtonPickerFragment; import com.android.settingslib.widget.CandidateInfo; import java.util.Arrays; import java.util.ArrayList; import java.util.List; @SuppressWarnings("WeakerAccess") Loading @@ -39,6 +39,8 @@ public class ColorModePreferenceFragment extends RadioButtonPickerFragment static final String KEY_COLOR_MODE_BOOSTED = "color_mode_boosted"; @VisibleForTesting static final String KEY_COLOR_MODE_SATURATED = "color_mode_saturated"; @VisibleForTesting static final String KEY_COLOR_MODE_AUTOMATIC = "color_mode_automatic"; private ColorDisplayController mController; Loading Loading @@ -78,21 +80,41 @@ public class ColorModePreferenceFragment extends RadioButtonPickerFragment @Override protected List<? extends CandidateInfo> getCandidates() { Context c = getContext(); return Arrays.asList( new ColorModeCandidateInfo(c.getText(R.string.color_mode_option_natural), KEY_COLOR_MODE_NATURAL, true /* enabled */), new ColorModeCandidateInfo(c.getText(R.string.color_mode_option_boosted), KEY_COLOR_MODE_BOOSTED, true /* enabled */), new ColorModeCandidateInfo(c.getText(R.string.color_mode_option_saturated), KEY_COLOR_MODE_SATURATED, true /* enabled */) ); final Context c = getContext(); final int[] availableColorModes = c.getResources().getIntArray( com.android.internal.R.array.config_availableColorModes); List<ColorModeCandidateInfo> candidates = new ArrayList<ColorModeCandidateInfo>(); if (availableColorModes != null) { for (int colorMode : availableColorModes) { if (colorMode == ColorDisplayController.COLOR_MODE_NATURAL) { candidates.add(new ColorModeCandidateInfo( c.getText(R.string.color_mode_option_natural), KEY_COLOR_MODE_NATURAL, true /* enabled */)); } else if (colorMode == ColorDisplayController.COLOR_MODE_BOOSTED) { candidates.add(new ColorModeCandidateInfo( c.getText(R.string.color_mode_option_boosted), KEY_COLOR_MODE_BOOSTED, true /* enabled */)); } else if (colorMode == ColorDisplayController.COLOR_MODE_SATURATED) { candidates.add(new ColorModeCandidateInfo( c.getText(R.string.color_mode_option_saturated), KEY_COLOR_MODE_SATURATED, true /* enabled */)); } else if (colorMode == ColorDisplayController.COLOR_MODE_AUTOMATIC) { candidates.add(new ColorModeCandidateInfo( c.getText(R.string.color_mode_option_automatic), KEY_COLOR_MODE_AUTOMATIC, true /* enabled */)); } } } return candidates; } @Override protected String getDefaultKey() { final int colorMode = mController.getColorMode(); if (colorMode == ColorDisplayController.COLOR_MODE_SATURATED) { if (colorMode == ColorDisplayController.COLOR_MODE_AUTOMATIC) { return KEY_COLOR_MODE_AUTOMATIC; } else if (colorMode == ColorDisplayController.COLOR_MODE_SATURATED) { return KEY_COLOR_MODE_SATURATED; } else if (colorMode == ColorDisplayController.COLOR_MODE_BOOSTED) { return KEY_COLOR_MODE_BOOSTED; Loading @@ -112,6 +134,9 @@ public class ColorModePreferenceFragment extends RadioButtonPickerFragment case KEY_COLOR_MODE_SATURATED: mController.setColorMode(ColorDisplayController.COLOR_MODE_SATURATED); break; case KEY_COLOR_MODE_AUTOMATIC: mController.setColorMode(ColorDisplayController.COLOR_MODE_AUTOMATIC); break; } return true; } Loading
tests/robotests/src/com/android/settings/display/ColorModePreferenceControllerTest.java +10 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,16 @@ public class ColorModePreferenceControllerTest { doReturn(mColorDisplayController).when(mController).getColorDisplayController(); } @Test public void updateState_colorModeAutomatic_shouldSetSummaryToAutomatic() { when(mColorDisplayController.getColorMode()) .thenReturn(ColorDisplayController.COLOR_MODE_AUTOMATIC); mController.updateState(mPreference); verify(mPreference).setSummary(mContext.getString(R.string.color_mode_option_automatic)); } @Test public void updateState_colorModeSaturated_shouldSetSummaryToSaturated() { when(mColorDisplayController.getColorMode()) Loading
tests/robotests/src/com/android/settings/display/ColorModePreferenceFragmentTest.java +75 −1 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; import com.android.settings.applications.LayoutPreference; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.SettingsShadowResources; import com.android.settingslib.widget.CandidateInfo; import org.junit.Before; Loading @@ -43,11 +44,13 @@ import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import org.robolectric.util.ReflectionHelpers; import java.util.List; @RunWith(SettingsRobolectricTestRunner.class) @Config(shadows = SettingsShadowResources.class) public class ColorModePreferenceFragmentTest { private ColorModePreferenceFragment mFragment; Loading @@ -73,8 +76,64 @@ public class ColorModePreferenceFragmentTest { } @Test public void getCandidates() { public void getCandidates_all() { when(mFragment.getContext()).thenReturn(RuntimeEnvironment.application); SettingsShadowResources.overrideResource( com.android.internal.R.array.config_availableColorModes, new int[]{ ColorDisplayController.COLOR_MODE_NATURAL, ColorDisplayController.COLOR_MODE_BOOSTED, ColorDisplayController.COLOR_MODE_SATURATED, ColorDisplayController.COLOR_MODE_AUTOMATIC }); List<? extends CandidateInfo> candidates = mFragment.getCandidates(); assertThat(candidates.size()).isEqualTo(4); assertThat(candidates.get(0).getKey()) .isEqualTo(ColorModePreferenceFragment.KEY_COLOR_MODE_NATURAL); assertThat(candidates.get(1).getKey()) .isEqualTo(ColorModePreferenceFragment.KEY_COLOR_MODE_BOOSTED); assertThat(candidates.get(2).getKey()) .isEqualTo(ColorModePreferenceFragment.KEY_COLOR_MODE_SATURATED); assertThat(candidates.get(3).getKey()) .isEqualTo(ColorModePreferenceFragment.KEY_COLOR_MODE_AUTOMATIC); } @Test public void getCandidates_none() { when(mFragment.getContext()).thenReturn(RuntimeEnvironment.application); SettingsShadowResources.overrideResource( com.android.internal.R.array.config_availableColorModes, null); List<? extends CandidateInfo> candidates = mFragment.getCandidates(); assertThat(candidates.size()).isEqualTo(0); } @Test public void getCandidates_withAutomatic() { when(mFragment.getContext()).thenReturn(RuntimeEnvironment.application); SettingsShadowResources.overrideResource( com.android.internal.R.array.config_availableColorModes, new int[]{ ColorDisplayController.COLOR_MODE_NATURAL, ColorDisplayController.COLOR_MODE_AUTOMATIC }); List<? extends CandidateInfo> candidates = mFragment.getCandidates(); assertThat(candidates.size()).isEqualTo(2); assertThat(candidates.get(0).getKey()) .isEqualTo(ColorModePreferenceFragment.KEY_COLOR_MODE_NATURAL); assertThat(candidates.get(1).getKey()) .isEqualTo(ColorModePreferenceFragment.KEY_COLOR_MODE_AUTOMATIC); } @Test public void getCandidates_withoutAutomatic() { when(mFragment.getContext()).thenReturn(RuntimeEnvironment.application); SettingsShadowResources.overrideResource( com.android.internal.R.array.config_availableColorModes, new int[]{ ColorDisplayController.COLOR_MODE_NATURAL, ColorDisplayController.COLOR_MODE_BOOSTED, ColorDisplayController.COLOR_MODE_SATURATED, }); List<? extends CandidateInfo> candidates = mFragment.getCandidates(); assertThat(candidates.size()).isEqualTo(3); Loading Loading @@ -113,6 +172,15 @@ public class ColorModePreferenceFragmentTest { .isEqualTo(ColorModePreferenceFragment.KEY_COLOR_MODE_SATURATED); } @Test public void getKey_automatic() { when(mController.getColorMode()) .thenReturn(ColorDisplayController.COLOR_MODE_AUTOMATIC); assertThat(mFragment.getDefaultKey()) .isEqualTo(ColorModePreferenceFragment.KEY_COLOR_MODE_AUTOMATIC); } @Test public void setKey_natural() { mFragment.setDefaultKey(ColorModePreferenceFragment.KEY_COLOR_MODE_NATURAL); Loading @@ -131,6 +199,12 @@ public class ColorModePreferenceFragmentTest { verify(mController).setColorMode(ColorDisplayController.COLOR_MODE_SATURATED); } @Test public void setKey_automatic() { mFragment.setDefaultKey(ColorModePreferenceFragment.KEY_COLOR_MODE_AUTOMATIC); verify(mController).setColorMode(ColorDisplayController.COLOR_MODE_AUTOMATIC); } @Test public void onCreatePreferences_useNewTitle_shouldAddColorModePreferences() { doNothing().when(mFragment).addPreferencesFromResource(anyInt()); Loading
tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java +8 −0 Original line number Diff line number Diff line Loading @@ -132,6 +132,14 @@ public class SettingsShadowResources extends ShadowResources { || id == com.android.settings.R.array.batterymeter_plus_points) { return new int[2]; } final Object override; synchronized (sResourceOverrides) { override = sResourceOverrides.get(id); } if (override instanceof int[]) { return (int[]) override; } return directlyOn(realResources, Resources.class).getIntArray(id); } Loading