Update brightness sensor registration on AOD_PAUSED changes
So that the binned brightness sensor immediately updates the brightness rather than using its 2-3 second debouncing logic. This prevents a delay in reporting brightness updates when the device's proximity sensor stops being covered. Test: atest DozeScreenBrightnessTest Fixes: 200768925 Change-Id: Ib1158894d4f7b303247feacd24664f628663d733
This commit is contained in:
@@ -147,6 +147,7 @@ public class DozeScreenBrightness extends BroadcastReceiver implements DozeMachi
|
||||
setLightSensorEnabled(true);
|
||||
break;
|
||||
case DOZE:
|
||||
case DOZE_AOD_PAUSED:
|
||||
setLightSensorEnabled(false);
|
||||
resetBrightnessToDefault();
|
||||
break;
|
||||
|
||||
@@ -210,20 +210,6 @@ public class DozeScreenBrightnessTest extends SysuiTestCase {
|
||||
assertEquals(3, mServiceFake.screenBrightness);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPausingAod_doesNotResetBrightness() throws Exception {
|
||||
mScreen.transitionTo(UNINITIALIZED, INITIALIZED);
|
||||
mScreen.transitionTo(INITIALIZED, DOZE_AOD);
|
||||
waitForSensorManager();
|
||||
|
||||
mSensor.sendSensorEvent(1);
|
||||
|
||||
mScreen.transitionTo(DOZE_AOD, DOZE_AOD_PAUSING);
|
||||
mScreen.transitionTo(DOZE_AOD_PAUSING, DOZE_AOD_PAUSED);
|
||||
|
||||
assertEquals(1, mServiceFake.screenBrightness);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPulsing_withoutLightSensor_setsAoDDimmingScrimTransparent() throws Exception {
|
||||
mScreen = new DozeScreenBrightness(
|
||||
@@ -431,37 +417,18 @@ public class DozeScreenBrightnessTest extends SysuiTestCase {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void pausingAod_unblanksAfterSensor() {
|
||||
public void pausingAod_unblanksAfterSensorEvent() {
|
||||
mScreen.transitionTo(UNINITIALIZED, INITIALIZED);
|
||||
mScreen.transitionTo(INITIALIZED, DOZE_AOD);
|
||||
waitForSensorManager();
|
||||
|
||||
mSensor.sendSensorEvent(2);
|
||||
|
||||
mScreen.transitionTo(DOZE_AOD, DOZE_AOD_PAUSING);
|
||||
mScreen.transitionTo(DOZE_AOD_PAUSING, DOZE_AOD_PAUSED);
|
||||
|
||||
mSensor.sendSensorEvent(0);
|
||||
|
||||
reset(mDozeHost);
|
||||
mScreen.transitionTo(DOZE_AOD_PAUSED, DOZE_AOD);
|
||||
waitForSensorManager();
|
||||
mSensor.sendSensorEvent(2);
|
||||
verify(mDozeHost).setAodDimmingScrim(eq(0f));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void pausingAod_unblanksIfSensorWasAlwaysReady() throws Exception {
|
||||
mScreen.transitionTo(UNINITIALIZED, INITIALIZED);
|
||||
mScreen.transitionTo(INITIALIZED, DOZE_AOD);
|
||||
waitForSensorManager();
|
||||
|
||||
mSensor.sendSensorEvent(2);
|
||||
mScreen.transitionTo(DOZE_AOD, DOZE_AOD_PAUSING);
|
||||
mScreen.transitionTo(DOZE_AOD_PAUSING, DOZE_AOD_PAUSED);
|
||||
|
||||
reset(mDozeHost);
|
||||
mScreen.transitionTo(DOZE_AOD_PAUSED, DOZE_AOD);
|
||||
waitForSensorManager();
|
||||
mSensor.sendSensorEvent(2);
|
||||
verify(mDozeHost).setAodDimmingScrim(eq(0f));
|
||||
}
|
||||
|
||||
@@ -538,6 +505,44 @@ public class DozeScreenBrightnessTest extends SysuiTestCase {
|
||||
assertEquals(mServiceFake.screenBrightness, DEFAULT_BRIGHTNESS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void transitionToAodPaused_resetsToDefaultBrightness_lightSensorDisabled() {
|
||||
// GIVEN AOD
|
||||
mScreen.transitionTo(UNINITIALIZED, INITIALIZED);
|
||||
mScreen.transitionTo(INITIALIZED, DOZE_AOD);
|
||||
|
||||
// WHEN AOD is paused
|
||||
mScreen.transitionTo(DOZE_AOD, DOZE_AOD_PAUSING);
|
||||
mScreen.transitionTo(DOZE_AOD, DOZE_AOD_PAUSED);
|
||||
waitForSensorManager();
|
||||
|
||||
// THEN brightness is reset and light sensor is unregistered
|
||||
assertEquals(mServiceFake.screenBrightness, DEFAULT_BRIGHTNESS);
|
||||
|
||||
// THEN new light events don't update brightness since the light sensor was unregistered
|
||||
mSensor.sendSensorEvent(1);
|
||||
assertEquals(mServiceFake.screenBrightness, DEFAULT_BRIGHTNESS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void transitionFromAodPausedToAod_lightSensorEnabled() {
|
||||
// GIVEN AOD paused
|
||||
mScreen.transitionTo(UNINITIALIZED, INITIALIZED);
|
||||
mScreen.transitionTo(INITIALIZED, DOZE_AOD);
|
||||
mScreen.transitionTo(DOZE_AOD, DOZE_AOD_PAUSING);
|
||||
mScreen.transitionTo(DOZE_AOD, DOZE_AOD_PAUSED);
|
||||
|
||||
// WHEN device transitions back to AOD
|
||||
mScreen.transitionTo(DOZE_AOD_PAUSED, DOZE_AOD);
|
||||
waitForSensorManager();
|
||||
|
||||
// WHEN there are brightness changes
|
||||
mSensor.sendSensorEvent(1);
|
||||
|
||||
// THEN aod brightness is updated
|
||||
assertEquals(mServiceFake.screenBrightness, 1);
|
||||
}
|
||||
|
||||
private void waitForSensorManager() {
|
||||
mFakeExecutor.runAllReady();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user