Loading src/com/android/settings/display/DisplayWhiteBalancePreferenceController.java +14 −1 Original line number Diff line number Diff line Loading @@ -17,9 +17,11 @@ import android.content.Context; import android.hardware.display.ColorDisplayManager; import android.os.UserHandle; import android.provider.Settings.Secure; import com.android.internal.app.ColorDisplayController; import com.android.settings.core.TogglePreferenceController; public class DisplayWhiteBalancePreferenceController extends TogglePreferenceController { private ColorDisplayController mColorDisplayController; public DisplayWhiteBalancePreferenceController(Context context, String key) { super(context, key); Loading @@ -27,7 +29,11 @@ public class DisplayWhiteBalancePreferenceController extends TogglePreferenceCon @Override public int getAvailabilityStatus() { return ColorDisplayManager.isDisplayWhiteBalanceAvailable(mContext) ? // Display white balance is only valid in linear light space. COLOR_MODE_SATURATED implies // unmanaged color mode, and hence unknown color processing conditions. return ColorDisplayManager.isDisplayWhiteBalanceAvailable(mContext) && getColorDisplayController().getColorMode() != ColorDisplayController.COLOR_MODE_SATURATED ? AVAILABLE : DISABLED_FOR_USER; } Loading @@ -43,4 +49,11 @@ public class DisplayWhiteBalancePreferenceController extends TogglePreferenceCon isChecked ? 1 : 0, UserHandle.USER_CURRENT); return true; } ColorDisplayController getColorDisplayController() { if (mColorDisplayController == null) { mColorDisplayController = new ColorDisplayController(mContext); } return mColorDisplayController; } } tests/robotests/src/com/android/settings/display/DisplayWhiteBalancePreferenceControllerTest.java +29 −1 Original line number Diff line number Diff line package com.android.settings.display; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; import static com.google.common.truth.Truth.assertThat; import android.content.Context; import android.provider.Settings; import android.provider.Settings.Secure; import com.android.internal.app.ColorDisplayController; import com.android.settings.testutils.shadow.SettingsShadowResources; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; Loading @@ -23,6 +29,9 @@ public class DisplayWhiteBalancePreferenceControllerTest { private Context mContext; private DisplayWhiteBalancePreferenceController mController; @Mock private ColorDisplayController mColorDisplayController; @After public void tearDown() { SettingsShadowResources.reset(); Loading @@ -30,14 +39,19 @@ public class DisplayWhiteBalancePreferenceControllerTest { @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = RuntimeEnvironment.application; mController = new DisplayWhiteBalancePreferenceController(mContext, "display_white_balance"); mController = spy(new DisplayWhiteBalancePreferenceController(mContext, "display_white_balance")); doReturn(mColorDisplayController).when(mController).getColorDisplayController(); } @Test public void isAvailable_configuredAvailable() { SettingsShadowResources.overrideResource( com.android.internal.R.bool.config_displayWhiteBalanceAvailable, true); when(mColorDisplayController.getColorMode()) .thenReturn(ColorDisplayController.COLOR_MODE_NATURAL); assertThat(mController.isAvailable()).isTrue(); } Loading @@ -45,6 +59,20 @@ public class DisplayWhiteBalancePreferenceControllerTest { public void isAvailable_configuredUnavailable() { SettingsShadowResources.overrideResource( com.android.internal.R.bool.config_displayWhiteBalanceAvailable, false); when(mColorDisplayController.getColorMode()) .thenReturn(ColorDisplayController.COLOR_MODE_SATURATED); assertThat(mController.isAvailable()).isFalse(); SettingsShadowResources.overrideResource( com.android.internal.R.bool.config_displayWhiteBalanceAvailable, false); when(mColorDisplayController.getColorMode()) .thenReturn(ColorDisplayController.COLOR_MODE_NATURAL); assertThat(mController.isAvailable()).isFalse(); SettingsShadowResources.overrideResource( com.android.internal.R.bool.config_displayWhiteBalanceAvailable, true); when(mColorDisplayController.getColorMode()) .thenReturn(ColorDisplayController.COLOR_MODE_SATURATED); assertThat(mController.isAvailable()).isFalse(); } Loading Loading
src/com/android/settings/display/DisplayWhiteBalancePreferenceController.java +14 −1 Original line number Diff line number Diff line Loading @@ -17,9 +17,11 @@ import android.content.Context; import android.hardware.display.ColorDisplayManager; import android.os.UserHandle; import android.provider.Settings.Secure; import com.android.internal.app.ColorDisplayController; import com.android.settings.core.TogglePreferenceController; public class DisplayWhiteBalancePreferenceController extends TogglePreferenceController { private ColorDisplayController mColorDisplayController; public DisplayWhiteBalancePreferenceController(Context context, String key) { super(context, key); Loading @@ -27,7 +29,11 @@ public class DisplayWhiteBalancePreferenceController extends TogglePreferenceCon @Override public int getAvailabilityStatus() { return ColorDisplayManager.isDisplayWhiteBalanceAvailable(mContext) ? // Display white balance is only valid in linear light space. COLOR_MODE_SATURATED implies // unmanaged color mode, and hence unknown color processing conditions. return ColorDisplayManager.isDisplayWhiteBalanceAvailable(mContext) && getColorDisplayController().getColorMode() != ColorDisplayController.COLOR_MODE_SATURATED ? AVAILABLE : DISABLED_FOR_USER; } Loading @@ -43,4 +49,11 @@ public class DisplayWhiteBalancePreferenceController extends TogglePreferenceCon isChecked ? 1 : 0, UserHandle.USER_CURRENT); return true; } ColorDisplayController getColorDisplayController() { if (mColorDisplayController == null) { mColorDisplayController = new ColorDisplayController(mContext); } return mColorDisplayController; } }
tests/robotests/src/com/android/settings/display/DisplayWhiteBalancePreferenceControllerTest.java +29 −1 Original line number Diff line number Diff line package com.android.settings.display; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; import static com.google.common.truth.Truth.assertThat; import android.content.Context; import android.provider.Settings; import android.provider.Settings.Secure; import com.android.internal.app.ColorDisplayController; import com.android.settings.testutils.shadow.SettingsShadowResources; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; Loading @@ -23,6 +29,9 @@ public class DisplayWhiteBalancePreferenceControllerTest { private Context mContext; private DisplayWhiteBalancePreferenceController mController; @Mock private ColorDisplayController mColorDisplayController; @After public void tearDown() { SettingsShadowResources.reset(); Loading @@ -30,14 +39,19 @@ public class DisplayWhiteBalancePreferenceControllerTest { @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = RuntimeEnvironment.application; mController = new DisplayWhiteBalancePreferenceController(mContext, "display_white_balance"); mController = spy(new DisplayWhiteBalancePreferenceController(mContext, "display_white_balance")); doReturn(mColorDisplayController).when(mController).getColorDisplayController(); } @Test public void isAvailable_configuredAvailable() { SettingsShadowResources.overrideResource( com.android.internal.R.bool.config_displayWhiteBalanceAvailable, true); when(mColorDisplayController.getColorMode()) .thenReturn(ColorDisplayController.COLOR_MODE_NATURAL); assertThat(mController.isAvailable()).isTrue(); } Loading @@ -45,6 +59,20 @@ public class DisplayWhiteBalancePreferenceControllerTest { public void isAvailable_configuredUnavailable() { SettingsShadowResources.overrideResource( com.android.internal.R.bool.config_displayWhiteBalanceAvailable, false); when(mColorDisplayController.getColorMode()) .thenReturn(ColorDisplayController.COLOR_MODE_SATURATED); assertThat(mController.isAvailable()).isFalse(); SettingsShadowResources.overrideResource( com.android.internal.R.bool.config_displayWhiteBalanceAvailable, false); when(mColorDisplayController.getColorMode()) .thenReturn(ColorDisplayController.COLOR_MODE_NATURAL); assertThat(mController.isAvailable()).isFalse(); SettingsShadowResources.overrideResource( com.android.internal.R.bool.config_displayWhiteBalanceAvailable, true); when(mColorDisplayController.getColorMode()) .thenReturn(ColorDisplayController.COLOR_MODE_SATURATED); assertThat(mController.isAvailable()).isFalse(); } Loading