Loading src/com/android/settings/display/ColorModePreferenceFragment.java +9 −97 Original line number Diff line number Diff line Loading @@ -13,18 +13,11 @@ */ package com.android.settings.display; import android.app.ActivityManager; import android.app.IActivityManager; import android.content.Context; import android.graphics.drawable.Drawable; import android.os.IBinder; import android.os.Parcel; import android.os.RemoteException; import android.os.ServiceManager; import android.os.SystemProperties; import android.support.annotation.VisibleForTesting; import android.util.Log; import com.android.internal.app.NightDisplayController; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; Loading @@ -35,20 +28,6 @@ import java.util.List; @SuppressWarnings("WeakerAccess") public class ColorModePreferenceFragment extends RadioButtonPickerFragment { private static final String TAG = "ColorModePreferenceFragment"; @VisibleForTesting static final float COLOR_SATURATION_NATURAL = 1.0f; @VisibleForTesting static final float COLOR_SATURATION_BOOSTED = 1.1f; private static final int SURFACE_FLINGER_TRANSACTION_SATURATION = 1022; private static final int SURFACE_FLINGER_TRANSACTION_NATIVE_MODE = 1023; @VisibleForTesting static final String PERSISTENT_PROPERTY_SATURATION = "persist.sys.sf.color_saturation"; @VisibleForTesting static final String PERSISTENT_PROPERTY_NATIVE_MODE = "persist.sys.sf.native_mode"; @VisibleForTesting static final String KEY_COLOR_MODE_NATURAL = "color_mode_natural"; Loading @@ -57,14 +36,12 @@ public class ColorModePreferenceFragment extends RadioButtonPickerFragment { @VisibleForTesting static final String KEY_COLOR_MODE_SATURATED = "color_mode_saturated"; private IBinder mSurfaceFlinger; private IActivityManager mActivityManager; private NightDisplayController mController; @Override public void onAttach(Context context) { super.onAttach(context); mSurfaceFlinger = ServiceManager.getService("SurfaceFlinger"); mActivityManager = ActivityManager.getService(); mController = new NightDisplayController(context); } @Override Loading @@ -82,10 +59,10 @@ public class ColorModePreferenceFragment extends RadioButtonPickerFragment { @Override protected String getDefaultKey() { if (isNativeModeEnabled()) { if (mController.getColorMode() == NightDisplayController.COLOR_MODE_SATURATED) { return KEY_COLOR_MODE_SATURATED; } if (getSaturationValue() > COLOR_SATURATION_NATURAL) { if (mController.getColorMode() == NightDisplayController.COLOR_MODE_BOOSTED) { return KEY_COLOR_MODE_BOOSTED; } return KEY_COLOR_MODE_NATURAL; Loading @@ -95,89 +72,23 @@ public class ColorModePreferenceFragment extends RadioButtonPickerFragment { protected boolean setDefaultKey(String key) { switch (key) { case KEY_COLOR_MODE_NATURAL: applySaturation(COLOR_SATURATION_NATURAL); setNativeMode(false); mController.setColorMode(NightDisplayController.COLOR_MODE_NATURAL); break; case KEY_COLOR_MODE_BOOSTED: applySaturation(COLOR_SATURATION_BOOSTED); setNativeMode(false); mController.setColorMode(NightDisplayController.COLOR_MODE_BOOSTED); break; case KEY_COLOR_MODE_SATURATED: applySaturation(COLOR_SATURATION_NATURAL); setNativeMode(true); mController.setColorMode(NightDisplayController.COLOR_MODE_SATURATED); break; } updateConfiguration(); return true; } @VisibleForTesting void updateConfiguration() { try { mActivityManager.updateConfiguration(null); } catch (RemoteException e) { Log.d(TAG, "Could not update configuration", e); } } @Override public int getMetricsCategory() { return MetricsProto.MetricsEvent.COLOR_MODE_SETTINGS; } /** * Propagates the provided saturation to the SurfaceFlinger. */ private void applySaturation(float saturation) { SystemProperties.set(PERSISTENT_PROPERTY_SATURATION, Float.toString(saturation)); if (mSurfaceFlinger != null) { final Parcel data = Parcel.obtain(); data.writeInterfaceToken("android.ui.ISurfaceComposer"); data.writeFloat(saturation); try { mSurfaceFlinger.transact(SURFACE_FLINGER_TRANSACTION_SATURATION, data, null, 0); } catch (RemoteException ex) { Log.e(TAG, "Failed to set saturation", ex); } finally { data.recycle(); } } } private static float getSaturationValue() { try { return Float.parseFloat(SystemProperties.get( PERSISTENT_PROPERTY_SATURATION, Float.toString(COLOR_SATURATION_NATURAL))); } catch (NumberFormatException e) { return COLOR_SATURATION_NATURAL; } } /** * Toggles native mode on/off in SurfaceFlinger. */ private void setNativeMode(boolean enabled) { SystemProperties.set(PERSISTENT_PROPERTY_NATIVE_MODE, enabled ? "1" : "0"); if (mSurfaceFlinger != null) { final Parcel data = Parcel.obtain(); data.writeInterfaceToken("android.ui.ISurfaceComposer"); data.writeInt(enabled ? 1 : 0); try { mSurfaceFlinger.transact(SURFACE_FLINGER_TRANSACTION_NATIVE_MODE, data, null, 0); } catch (RemoteException ex) { Log.e(TAG, "Failed to set native mode", ex); } finally { data.recycle(); } } } private static boolean isNativeModeEnabled() { return SystemProperties.getBoolean(PERSISTENT_PROPERTY_NATIVE_MODE, false); } @VisibleForTesting static class ColorModeCandidateInfo extends CandidateInfo { private final CharSequence mLabel; Loading @@ -204,4 +115,5 @@ public class ColorModePreferenceFragment extends RadioButtonPickerFragment { return mKey; } } } src/com/android/settings/display/NightDisplaySettings.java +1 −0 Original line number Diff line number Diff line Loading @@ -120,6 +120,7 @@ public class NightDisplaySettings extends SettingsPreferenceFragment onCustomStartTimeChanged(mController.getCustomStartTime()); onCustomEndTimeChanged(mController.getCustomEndTime()); onColorTemperatureChanged(mController.getColorTemperature()); onDisplayColorModeChanged(mController.getColorMode()); } @Override Loading tests/robotests/src/com/android/internal/app/NightDisplayController.java +18 −1 Original line number Diff line number Diff line Loading @@ -21,7 +21,24 @@ package com.android.internal.app; */ public class NightDisplayController { public interface Callback { public static final int AUTO_MODE_DISABLED = 0; public static final int AUTO_MODE_CUSTOM = 1; public static final int AUTO_MODE_TWILIGHT = 2; public static final int COLOR_MODE_NATURAL = 0; public static final int COLOR_MODE_BOOSTED = 1; public static final int COLOR_MODE_SATURATED = 2; private int mColorMode; public void setColorMode(int colorMode) { mColorMode = colorMode; } public int getColorMode() { return mColorMode; } public interface Callback { } } tests/robotests/src/com/android/settings/display/ColorModePreferenceFragmentTest.java +18 −58 Original line number Diff line number Diff line Loading @@ -16,18 +16,11 @@ package com.android.settings.display; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; import android.app.IActivityManager; import android.content.res.Configuration; import android.os.IBinder; import android.os.RemoteException; import com.android.internal.app.NightDisplayController; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.TestConfig; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.SettingsShadowSystemProperties; Loading @@ -37,6 +30,7 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; Loading @@ -47,24 +41,19 @@ import java.util.List; @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) public class ColorModePreferenceFragmentTest { @Mock private IBinder mSurfaceFlinger; @Mock private IActivityManager mActivityManager; private ColorModePreferenceFragment mFragment; @Mock private NightDisplayController mController; @Before public void setup() { MockitoAnnotations.initMocks(this); SettingsShadowSystemProperties.clear(); mFragment = spy(new ColorModePreferenceFragment()); doReturn(RuntimeEnvironment.application).when(mFragment).getContext(); doNothing().when(mFragment).updateConfiguration(); ReflectionHelpers.setField(mFragment, "mSurfaceFlinger", mSurfaceFlinger); ReflectionHelpers.setField(mFragment, "mActivityManager", mActivityManager); ReflectionHelpers.setField(mFragment, "mController", mController); } @Test Loading @@ -75,6 +64,7 @@ public class ColorModePreferenceFragmentTest { @Test public void getCandidates() { when(mFragment.getContext()).thenReturn(RuntimeEnvironment.application); List<? extends RadioButtonPickerFragment.CandidateInfo> candidates = mFragment.getCandidates(); Loading @@ -90,11 +80,8 @@ public class ColorModePreferenceFragmentTest { @Config(shadows = {SettingsShadowSystemProperties.class}) @Test public void getKey_natural() { SettingsShadowSystemProperties.set( ColorModePreferenceFragment.PERSISTENT_PROPERTY_SATURATION, Float.toString(ColorModePreferenceFragment.COLOR_SATURATION_NATURAL)); SettingsShadowSystemProperties.set( ColorModePreferenceFragment.PERSISTENT_PROPERTY_NATIVE_MODE, "0"); Mockito.when(mController.getColorMode()).thenReturn( NightDisplayController.COLOR_MODE_NATURAL); assertThat(mFragment.getDefaultKey()) .isEqualTo(ColorModePreferenceFragment.KEY_COLOR_MODE_NATURAL); Loading @@ -103,11 +90,8 @@ public class ColorModePreferenceFragmentTest { @Config(shadows = {SettingsShadowSystemProperties.class}) @Test public void getKey_boosted() { SettingsShadowSystemProperties.set( ColorModePreferenceFragment.PERSISTENT_PROPERTY_SATURATION, Float.toString(ColorModePreferenceFragment.COLOR_SATURATION_BOOSTED)); SettingsShadowSystemProperties.set( ColorModePreferenceFragment.PERSISTENT_PROPERTY_NATIVE_MODE, "0"); Mockito.when(mController.getColorMode()).thenReturn( NightDisplayController.COLOR_MODE_BOOSTED); assertThat(mFragment.getDefaultKey()) .isEqualTo(ColorModePreferenceFragment.KEY_COLOR_MODE_BOOSTED); Loading @@ -116,8 +100,8 @@ public class ColorModePreferenceFragmentTest { @Config(shadows = {SettingsShadowSystemProperties.class}) @Test public void getKey_saturated() { SettingsShadowSystemProperties.set( ColorModePreferenceFragment.PERSISTENT_PROPERTY_NATIVE_MODE, "1"); Mockito.when(mController.getColorMode()).thenReturn( NightDisplayController.COLOR_MODE_SATURATED); assertThat(mFragment.getDefaultKey()) .isEqualTo(ColorModePreferenceFragment.KEY_COLOR_MODE_SATURATED); Loading @@ -127,44 +111,20 @@ public class ColorModePreferenceFragmentTest { @Test public void setKey_natural() { mFragment.setDefaultKey(ColorModePreferenceFragment.KEY_COLOR_MODE_NATURAL); String saturation = SettingsShadowSystemProperties .get(ColorModePreferenceFragment.PERSISTENT_PROPERTY_SATURATION); assertThat(saturation) .isEqualTo(Float.toString(ColorModePreferenceFragment.COLOR_SATURATION_NATURAL)); String nativeMode = SettingsShadowSystemProperties .get(ColorModePreferenceFragment.PERSISTENT_PROPERTY_NATIVE_MODE); assertThat(nativeMode).isEqualTo("0"); Mockito.verify(mController).setColorMode(NightDisplayController.COLOR_MODE_NATURAL); } @Config(shadows = {SettingsShadowSystemProperties.class}) @Test public void setKey_boosted() { mFragment.setDefaultKey(ColorModePreferenceFragment.KEY_COLOR_MODE_BOOSTED); String saturation = SettingsShadowSystemProperties .get(ColorModePreferenceFragment.PERSISTENT_PROPERTY_SATURATION); assertThat(saturation) .isEqualTo(Float.toString(ColorModePreferenceFragment.COLOR_SATURATION_BOOSTED)); String nativeMode = SettingsShadowSystemProperties .get(ColorModePreferenceFragment.PERSISTENT_PROPERTY_NATIVE_MODE); assertThat(nativeMode).isEqualTo("0"); Mockito.verify(mController).setColorMode(NightDisplayController.COLOR_MODE_BOOSTED); } @Config(shadows = {SettingsShadowSystemProperties.class}) @Test public void setKey_saturated() { mFragment.setDefaultKey(ColorModePreferenceFragment.KEY_COLOR_MODE_SATURATED); String saturation = SettingsShadowSystemProperties .get(ColorModePreferenceFragment.PERSISTENT_PROPERTY_SATURATION); assertThat(saturation) .isEqualTo(Float.toString(ColorModePreferenceFragment.COLOR_SATURATION_NATURAL)); String nativeMode = SettingsShadowSystemProperties .get(ColorModePreferenceFragment.PERSISTENT_PROPERTY_NATIVE_MODE); assertThat(nativeMode).isEqualTo("1"); Mockito.verify(mController).setColorMode(NightDisplayController.COLOR_MODE_SATURATED); } } Loading
src/com/android/settings/display/ColorModePreferenceFragment.java +9 −97 Original line number Diff line number Diff line Loading @@ -13,18 +13,11 @@ */ package com.android.settings.display; import android.app.ActivityManager; import android.app.IActivityManager; import android.content.Context; import android.graphics.drawable.Drawable; import android.os.IBinder; import android.os.Parcel; import android.os.RemoteException; import android.os.ServiceManager; import android.os.SystemProperties; import android.support.annotation.VisibleForTesting; import android.util.Log; import com.android.internal.app.NightDisplayController; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; Loading @@ -35,20 +28,6 @@ import java.util.List; @SuppressWarnings("WeakerAccess") public class ColorModePreferenceFragment extends RadioButtonPickerFragment { private static final String TAG = "ColorModePreferenceFragment"; @VisibleForTesting static final float COLOR_SATURATION_NATURAL = 1.0f; @VisibleForTesting static final float COLOR_SATURATION_BOOSTED = 1.1f; private static final int SURFACE_FLINGER_TRANSACTION_SATURATION = 1022; private static final int SURFACE_FLINGER_TRANSACTION_NATIVE_MODE = 1023; @VisibleForTesting static final String PERSISTENT_PROPERTY_SATURATION = "persist.sys.sf.color_saturation"; @VisibleForTesting static final String PERSISTENT_PROPERTY_NATIVE_MODE = "persist.sys.sf.native_mode"; @VisibleForTesting static final String KEY_COLOR_MODE_NATURAL = "color_mode_natural"; Loading @@ -57,14 +36,12 @@ public class ColorModePreferenceFragment extends RadioButtonPickerFragment { @VisibleForTesting static final String KEY_COLOR_MODE_SATURATED = "color_mode_saturated"; private IBinder mSurfaceFlinger; private IActivityManager mActivityManager; private NightDisplayController mController; @Override public void onAttach(Context context) { super.onAttach(context); mSurfaceFlinger = ServiceManager.getService("SurfaceFlinger"); mActivityManager = ActivityManager.getService(); mController = new NightDisplayController(context); } @Override Loading @@ -82,10 +59,10 @@ public class ColorModePreferenceFragment extends RadioButtonPickerFragment { @Override protected String getDefaultKey() { if (isNativeModeEnabled()) { if (mController.getColorMode() == NightDisplayController.COLOR_MODE_SATURATED) { return KEY_COLOR_MODE_SATURATED; } if (getSaturationValue() > COLOR_SATURATION_NATURAL) { if (mController.getColorMode() == NightDisplayController.COLOR_MODE_BOOSTED) { return KEY_COLOR_MODE_BOOSTED; } return KEY_COLOR_MODE_NATURAL; Loading @@ -95,89 +72,23 @@ public class ColorModePreferenceFragment extends RadioButtonPickerFragment { protected boolean setDefaultKey(String key) { switch (key) { case KEY_COLOR_MODE_NATURAL: applySaturation(COLOR_SATURATION_NATURAL); setNativeMode(false); mController.setColorMode(NightDisplayController.COLOR_MODE_NATURAL); break; case KEY_COLOR_MODE_BOOSTED: applySaturation(COLOR_SATURATION_BOOSTED); setNativeMode(false); mController.setColorMode(NightDisplayController.COLOR_MODE_BOOSTED); break; case KEY_COLOR_MODE_SATURATED: applySaturation(COLOR_SATURATION_NATURAL); setNativeMode(true); mController.setColorMode(NightDisplayController.COLOR_MODE_SATURATED); break; } updateConfiguration(); return true; } @VisibleForTesting void updateConfiguration() { try { mActivityManager.updateConfiguration(null); } catch (RemoteException e) { Log.d(TAG, "Could not update configuration", e); } } @Override public int getMetricsCategory() { return MetricsProto.MetricsEvent.COLOR_MODE_SETTINGS; } /** * Propagates the provided saturation to the SurfaceFlinger. */ private void applySaturation(float saturation) { SystemProperties.set(PERSISTENT_PROPERTY_SATURATION, Float.toString(saturation)); if (mSurfaceFlinger != null) { final Parcel data = Parcel.obtain(); data.writeInterfaceToken("android.ui.ISurfaceComposer"); data.writeFloat(saturation); try { mSurfaceFlinger.transact(SURFACE_FLINGER_TRANSACTION_SATURATION, data, null, 0); } catch (RemoteException ex) { Log.e(TAG, "Failed to set saturation", ex); } finally { data.recycle(); } } } private static float getSaturationValue() { try { return Float.parseFloat(SystemProperties.get( PERSISTENT_PROPERTY_SATURATION, Float.toString(COLOR_SATURATION_NATURAL))); } catch (NumberFormatException e) { return COLOR_SATURATION_NATURAL; } } /** * Toggles native mode on/off in SurfaceFlinger. */ private void setNativeMode(boolean enabled) { SystemProperties.set(PERSISTENT_PROPERTY_NATIVE_MODE, enabled ? "1" : "0"); if (mSurfaceFlinger != null) { final Parcel data = Parcel.obtain(); data.writeInterfaceToken("android.ui.ISurfaceComposer"); data.writeInt(enabled ? 1 : 0); try { mSurfaceFlinger.transact(SURFACE_FLINGER_TRANSACTION_NATIVE_MODE, data, null, 0); } catch (RemoteException ex) { Log.e(TAG, "Failed to set native mode", ex); } finally { data.recycle(); } } } private static boolean isNativeModeEnabled() { return SystemProperties.getBoolean(PERSISTENT_PROPERTY_NATIVE_MODE, false); } @VisibleForTesting static class ColorModeCandidateInfo extends CandidateInfo { private final CharSequence mLabel; Loading @@ -204,4 +115,5 @@ public class ColorModePreferenceFragment extends RadioButtonPickerFragment { return mKey; } } }
src/com/android/settings/display/NightDisplaySettings.java +1 −0 Original line number Diff line number Diff line Loading @@ -120,6 +120,7 @@ public class NightDisplaySettings extends SettingsPreferenceFragment onCustomStartTimeChanged(mController.getCustomStartTime()); onCustomEndTimeChanged(mController.getCustomEndTime()); onColorTemperatureChanged(mController.getColorTemperature()); onDisplayColorModeChanged(mController.getColorMode()); } @Override Loading
tests/robotests/src/com/android/internal/app/NightDisplayController.java +18 −1 Original line number Diff line number Diff line Loading @@ -21,7 +21,24 @@ package com.android.internal.app; */ public class NightDisplayController { public interface Callback { public static final int AUTO_MODE_DISABLED = 0; public static final int AUTO_MODE_CUSTOM = 1; public static final int AUTO_MODE_TWILIGHT = 2; public static final int COLOR_MODE_NATURAL = 0; public static final int COLOR_MODE_BOOSTED = 1; public static final int COLOR_MODE_SATURATED = 2; private int mColorMode; public void setColorMode(int colorMode) { mColorMode = colorMode; } public int getColorMode() { return mColorMode; } public interface Callback { } }
tests/robotests/src/com/android/settings/display/ColorModePreferenceFragmentTest.java +18 −58 Original line number Diff line number Diff line Loading @@ -16,18 +16,11 @@ package com.android.settings.display; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; import android.app.IActivityManager; import android.content.res.Configuration; import android.os.IBinder; import android.os.RemoteException; import com.android.internal.app.NightDisplayController; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.TestConfig; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.SettingsShadowSystemProperties; Loading @@ -37,6 +30,7 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; Loading @@ -47,24 +41,19 @@ import java.util.List; @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) public class ColorModePreferenceFragmentTest { @Mock private IBinder mSurfaceFlinger; @Mock private IActivityManager mActivityManager; private ColorModePreferenceFragment mFragment; @Mock private NightDisplayController mController; @Before public void setup() { MockitoAnnotations.initMocks(this); SettingsShadowSystemProperties.clear(); mFragment = spy(new ColorModePreferenceFragment()); doReturn(RuntimeEnvironment.application).when(mFragment).getContext(); doNothing().when(mFragment).updateConfiguration(); ReflectionHelpers.setField(mFragment, "mSurfaceFlinger", mSurfaceFlinger); ReflectionHelpers.setField(mFragment, "mActivityManager", mActivityManager); ReflectionHelpers.setField(mFragment, "mController", mController); } @Test Loading @@ -75,6 +64,7 @@ public class ColorModePreferenceFragmentTest { @Test public void getCandidates() { when(mFragment.getContext()).thenReturn(RuntimeEnvironment.application); List<? extends RadioButtonPickerFragment.CandidateInfo> candidates = mFragment.getCandidates(); Loading @@ -90,11 +80,8 @@ public class ColorModePreferenceFragmentTest { @Config(shadows = {SettingsShadowSystemProperties.class}) @Test public void getKey_natural() { SettingsShadowSystemProperties.set( ColorModePreferenceFragment.PERSISTENT_PROPERTY_SATURATION, Float.toString(ColorModePreferenceFragment.COLOR_SATURATION_NATURAL)); SettingsShadowSystemProperties.set( ColorModePreferenceFragment.PERSISTENT_PROPERTY_NATIVE_MODE, "0"); Mockito.when(mController.getColorMode()).thenReturn( NightDisplayController.COLOR_MODE_NATURAL); assertThat(mFragment.getDefaultKey()) .isEqualTo(ColorModePreferenceFragment.KEY_COLOR_MODE_NATURAL); Loading @@ -103,11 +90,8 @@ public class ColorModePreferenceFragmentTest { @Config(shadows = {SettingsShadowSystemProperties.class}) @Test public void getKey_boosted() { SettingsShadowSystemProperties.set( ColorModePreferenceFragment.PERSISTENT_PROPERTY_SATURATION, Float.toString(ColorModePreferenceFragment.COLOR_SATURATION_BOOSTED)); SettingsShadowSystemProperties.set( ColorModePreferenceFragment.PERSISTENT_PROPERTY_NATIVE_MODE, "0"); Mockito.when(mController.getColorMode()).thenReturn( NightDisplayController.COLOR_MODE_BOOSTED); assertThat(mFragment.getDefaultKey()) .isEqualTo(ColorModePreferenceFragment.KEY_COLOR_MODE_BOOSTED); Loading @@ -116,8 +100,8 @@ public class ColorModePreferenceFragmentTest { @Config(shadows = {SettingsShadowSystemProperties.class}) @Test public void getKey_saturated() { SettingsShadowSystemProperties.set( ColorModePreferenceFragment.PERSISTENT_PROPERTY_NATIVE_MODE, "1"); Mockito.when(mController.getColorMode()).thenReturn( NightDisplayController.COLOR_MODE_SATURATED); assertThat(mFragment.getDefaultKey()) .isEqualTo(ColorModePreferenceFragment.KEY_COLOR_MODE_SATURATED); Loading @@ -127,44 +111,20 @@ public class ColorModePreferenceFragmentTest { @Test public void setKey_natural() { mFragment.setDefaultKey(ColorModePreferenceFragment.KEY_COLOR_MODE_NATURAL); String saturation = SettingsShadowSystemProperties .get(ColorModePreferenceFragment.PERSISTENT_PROPERTY_SATURATION); assertThat(saturation) .isEqualTo(Float.toString(ColorModePreferenceFragment.COLOR_SATURATION_NATURAL)); String nativeMode = SettingsShadowSystemProperties .get(ColorModePreferenceFragment.PERSISTENT_PROPERTY_NATIVE_MODE); assertThat(nativeMode).isEqualTo("0"); Mockito.verify(mController).setColorMode(NightDisplayController.COLOR_MODE_NATURAL); } @Config(shadows = {SettingsShadowSystemProperties.class}) @Test public void setKey_boosted() { mFragment.setDefaultKey(ColorModePreferenceFragment.KEY_COLOR_MODE_BOOSTED); String saturation = SettingsShadowSystemProperties .get(ColorModePreferenceFragment.PERSISTENT_PROPERTY_SATURATION); assertThat(saturation) .isEqualTo(Float.toString(ColorModePreferenceFragment.COLOR_SATURATION_BOOSTED)); String nativeMode = SettingsShadowSystemProperties .get(ColorModePreferenceFragment.PERSISTENT_PROPERTY_NATIVE_MODE); assertThat(nativeMode).isEqualTo("0"); Mockito.verify(mController).setColorMode(NightDisplayController.COLOR_MODE_BOOSTED); } @Config(shadows = {SettingsShadowSystemProperties.class}) @Test public void setKey_saturated() { mFragment.setDefaultKey(ColorModePreferenceFragment.KEY_COLOR_MODE_SATURATED); String saturation = SettingsShadowSystemProperties .get(ColorModePreferenceFragment.PERSISTENT_PROPERTY_SATURATION); assertThat(saturation) .isEqualTo(Float.toString(ColorModePreferenceFragment.COLOR_SATURATION_NATURAL)); String nativeMode = SettingsShadowSystemProperties .get(ColorModePreferenceFragment.PERSISTENT_PROPERTY_NATIVE_MODE); assertThat(nativeMode).isEqualTo("1"); Mockito.verify(mController).setColorMode(NightDisplayController.COLOR_MODE_SATURATED); } }