summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/doze/DozeScreenBrightness.java13
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenBrightnessTest.java16
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);