diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/doze/DozeScreenBrightness.java | 13 | ||||
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenBrightnessTest.java | 16 |
2 files changed, 27 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeScreenBrightness.java b/packages/SystemUI/src/com/android/systemui/doze/DozeScreenBrightness.java index 4bb4e79c91f6..36b234704592 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeScreenBrightness.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeScreenBrightness.java @@ -23,6 +23,8 @@ import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Handler; import android.os.Trace; +import android.os.UserHandle; +import android.provider.Settings; import com.android.internal.annotations.VisibleForTesting; @@ -111,7 +113,7 @@ public class DozeScreenBrightness implements DozeMachine.Part, SensorEventListen int brightness = computeBrightness(mLastSensorValue); boolean brightnessReady = brightness > 0; if (brightnessReady) { - mDozeService.setDozeScreenBrightness(brightness); + mDozeService.setDozeScreenBrightness(clampToUserSetting(brightness)); } int scrimOpacity = -1; @@ -150,10 +152,17 @@ public class DozeScreenBrightness implements DozeMachine.Part, SensorEventListen } private void resetBrightnessToDefault() { - mDozeService.setDozeScreenBrightness(mDefaultDozeBrightness); + mDozeService.setDozeScreenBrightness(clampToUserSetting(mDefaultDozeBrightness)); mDozeHost.setAodDimmingScrim(0f); } + private int clampToUserSetting(int brightness) { + int userSetting = Settings.System.getIntForUser(mContext.getContentResolver(), + Settings.System.SCREEN_BRIGHTNESS, Integer.MAX_VALUE, + UserHandle.USER_CURRENT); + return Math.min(brightness, userSetting); + } + private void setLightSensorEnabled(boolean enabled) { if (enabled && !mRegistered && mLightSensor != null) { // Wait until we get an event from the sensor until indicating ready. diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenBrightnessTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenBrightnessTest.java index 5e12781399e5..eaa0dcf88588 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenBrightnessTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenBrightnessTest.java @@ -34,6 +34,8 @@ import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; import android.os.PowerManager; +import android.os.UserHandle; +import android.provider.Settings; import android.support.test.filters.SmallTest; import android.support.test.runner.AndroidJUnit4; @@ -60,6 +62,9 @@ public class DozeScreenBrightnessTest extends SysuiTestCase { @Before public void setUp() throws Exception { + Settings.System.putIntForUser(mContext.getContentResolver(), + Settings.System.SCREEN_BRIGHTNESS, DEFAULT_BRIGHTNESS, + UserHandle.USER_CURRENT); mServiceFake = new DozeServiceFake(); mHostFake = new DozeHostFake(); mSensorManager = new FakeSensorManager(mContext); @@ -88,6 +93,17 @@ public class DozeScreenBrightnessTest extends SysuiTestCase { } @Test + public void testAod_usesLightSensorRespectingUserSetting() throws Exception { + int maxBrightness = 3; + Settings.System.putIntForUser(mContext.getContentResolver(), + Settings.System.SCREEN_BRIGHTNESS, maxBrightness, + UserHandle.USER_CURRENT); + + mScreen.transitionTo(UNINITIALIZED, INITIALIZED); + assertEquals(maxBrightness, mServiceFake.screenBrightness); + } + + @Test public void testPausingAod_doesntPauseLightSensor() throws Exception { mScreen.transitionTo(UNINITIALIZED, INITIALIZED); mScreen.transitionTo(INITIALIZED, DOZE_AOD); |