Merge "Ensure that brightness level is within 0-100%."

This commit is contained in:
TreeHugger Robot
2017-07-05 21:47:12 +00:00
committed by Android (Google) Code Review
2 changed files with 51 additions and 3 deletions

View File

@@ -143,7 +143,7 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr
final float value = Settings.System.getFloat(mContentResolver, final float value = Settings.System.getFloat(mContentResolver,
System.SCREEN_AUTO_BRIGHTNESS_ADJ, 0); System.SCREEN_AUTO_BRIGHTNESS_ADJ, 0);
// auto brightness is between -1 and 1 // auto brightness is between -1 and 1
return ((value + 1)) / 2; return getPercentage(value, -1, 1);
} }
final double value = Settings.System.getInt(mContentResolver, System.SCREEN_BRIGHTNESS, final double value = Settings.System.getInt(mContentResolver, System.SCREEN_BRIGHTNESS,
mMinBrightness); mMinBrightness);
@@ -151,6 +151,12 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr
} }
private double getPercentage(double value, int min, int max) { private double getPercentage(double value, int min, int max) {
if (value > max) {
return 1.0;
}
if (value < min) {
return 0.0;
}
return (value - min) / (max - min); return (value - min) / (max - min);
} }

View File

@@ -19,6 +19,7 @@ package com.android.settings.display;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@@ -130,7 +131,7 @@ public class BrightnessLevelPreferenceControllerTest {
} }
@Test @Test
public void updateState_autoBrightness_shouldSetSummaryToVrBrightness() { public void updateState_autoBrightness_shouldSetSummaryToAutoBrightness() {
doReturn(false).when(mController).isInVrMode(); doReturn(false).when(mController).isInVrMode();
System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_MODE, System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_MODE,
System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC); System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
@@ -143,7 +144,7 @@ public class BrightnessLevelPreferenceControllerTest {
} }
@Test @Test
public void updateState_manualBrightness_shouldSetSummaryToVrBrightness() { public void updateState_manualBrightness_shouldSetSummaryToScreenBrightness() {
doReturn(false).when(mController).isInVrMode(); doReturn(false).when(mController).isInVrMode();
System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_MODE, System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_MODE,
System.SCREEN_BRIGHTNESS_MODE_MANUAL); System.SCREEN_BRIGHTNESS_MODE_MANUAL);
@@ -154,4 +155,45 @@ public class BrightnessLevelPreferenceControllerTest {
verify(mPreference).setSummary("45%"); verify(mPreference).setSummary("45%");
} }
@Test
public void updateState_brightnessOutOfRange_shouldSetSummaryInRange() {
// VR mode
doReturn(true).when(mController).isInVrMode();
System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_FOR_VR, 105);
mController.updateState(mPreference);
verify(mPreference).setSummary("100%");
System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_FOR_VR, -20);
mController.updateState(mPreference);
verify(mPreference).setSummary("0%");
// Auto mode
doReturn(false).when(mController).isInVrMode();
System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_MODE,
System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
reset(mPreference);
System.putFloat(mContentResolver, System.SCREEN_AUTO_BRIGHTNESS_ADJ, 1.5f);
mController.updateState(mPreference);
verify(mPreference).setSummary("100%");
System.putFloat(mContentResolver, System.SCREEN_AUTO_BRIGHTNESS_ADJ, -1.5f);
mController.updateState(mPreference);
verify(mPreference).setSummary("0%");
// Manual mode
System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_MODE,
System.SCREEN_BRIGHTNESS_MODE_MANUAL);
reset(mPreference);
System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS, 115);
mController.updateState(mPreference);
verify(mPreference).setSummary("100%");
System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS, -10);
mController.updateState(mPreference);
verify(mPreference).setSummary("0%");
}
} }