Merge "Register for doze brightness as soon as we can" into sc-qpr1-dev am: 99efba6b99
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15742198 Change-Id: I2f565285260dd84147c6d3da1197aca31b117a0e
This commit is contained in:
@@ -197,11 +197,6 @@
|
||||
low powered state yet. -->
|
||||
<bool name="doze_long_press_uses_prox">true</bool>
|
||||
|
||||
<!-- Doze: whether the brightness sensor uses the proximity sensor.
|
||||
If both this parameter and doze_selectively_register_prox are true, registration for the
|
||||
brightness sensor won't occur when the display state is ON. -->
|
||||
<bool name="doze_brightness_uses_prox">true</bool>
|
||||
|
||||
<!-- Doze: should notifications be used as a pulse signal? -->
|
||||
<bool name="doze_pulse_on_notifications">true</bool>
|
||||
|
||||
|
||||
@@ -29,7 +29,6 @@ import android.os.SystemProperties;
|
||||
import android.os.Trace;
|
||||
import android.os.UserHandle;
|
||||
import android.provider.Settings;
|
||||
import android.view.Display;
|
||||
|
||||
import com.android.systemui.dock.DockManager;
|
||||
import com.android.systemui.doze.dagger.BrightnessSensor;
|
||||
@@ -111,7 +110,15 @@ public class DozeScreenBrightness extends BroadcastReceiver implements DozeMachi
|
||||
public void transitionTo(DozeMachine.State oldState, DozeMachine.State newState) {
|
||||
switch (newState) {
|
||||
case INITIALIZED:
|
||||
resetBrightnessToDefault();
|
||||
break;
|
||||
case DOZE_AOD:
|
||||
case DOZE_REQUEST_PULSE:
|
||||
case DOZE_AOD_DOCKED:
|
||||
setLightSensorEnabled(true);
|
||||
break;
|
||||
case DOZE:
|
||||
setLightSensorEnabled(false);
|
||||
resetBrightnessToDefault();
|
||||
break;
|
||||
case FINISH:
|
||||
@@ -124,22 +131,6 @@ public class DozeScreenBrightness extends BroadcastReceiver implements DozeMachi
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onScreenState(int state) {
|
||||
boolean isDockedScreenOn = state == Display.STATE_ON && mDockManager.isDocked();
|
||||
if (state == Display.STATE_DOZE || state == Display.STATE_DOZE_SUSPEND
|
||||
|| (isDockedScreenOn && shouldRegisterLightSensorWhenScreenOnDocked())) {
|
||||
setLightSensorEnabled(true);
|
||||
} else {
|
||||
setLightSensorEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean shouldRegisterLightSensorWhenScreenOnDocked() {
|
||||
return !mDozeParameters.brightnessUsesProx()
|
||||
|| !mDozeParameters.getSelectivelyRegisterSensorsUsingProx();
|
||||
}
|
||||
|
||||
private void onDestroy() {
|
||||
setLightSensorEnabled(false);
|
||||
}
|
||||
|
||||
@@ -269,13 +269,6 @@ public class DozeParameters implements
|
||||
return mResources.getBoolean(R.bool.doze_long_press_uses_prox);
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether the brightness sensor uses the proximity sensor.
|
||||
*/
|
||||
public boolean brightnessUsesProx() {
|
||||
return mResources.getBoolean(R.bool.doze_brightness_uses_prox);
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback to listen for DozeParameter changes.
|
||||
*/
|
||||
@@ -300,6 +293,7 @@ public class DozeParameters implements
|
||||
|
||||
@Override
|
||||
public void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter pw, @NonNull String[] args) {
|
||||
pw.print("getAlwaysOn(): "); pw.println(getAlwaysOn());
|
||||
pw.print("getDisplayStateSupported(): "); pw.println(getDisplayStateSupported());
|
||||
pw.print("getPulseDuration(): "); pw.println(getPulseDuration());
|
||||
pw.print("getPulseInDuration(): "); pw.println(getPulseInDuration());
|
||||
@@ -312,7 +306,6 @@ public class DozeParameters implements
|
||||
pw.print("getPickupVibrationThreshold(): "); pw.println(getPickupVibrationThreshold());
|
||||
pw.print("getSelectivelyRegisterSensorsUsingProx(): ");
|
||||
pw.println(getSelectivelyRegisterSensorsUsingProx());
|
||||
pw.print("brightnessUsesProx(): "); pw.println(brightnessUsesProx());
|
||||
}
|
||||
|
||||
interface Callback {
|
||||
|
||||
@@ -43,7 +43,6 @@ public class DozeConfigurationUtil {
|
||||
when(params.singleTapUsesProx()).thenReturn(true);
|
||||
when(params.longPressUsesProx()).thenReturn(true);
|
||||
when(params.getQuickPickupAodDuration()).thenReturn(500);
|
||||
when(params.brightnessUsesProx()).thenReturn(true);
|
||||
|
||||
doneHolder[0] = true;
|
||||
return params;
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.android.systemui.doze;
|
||||
|
||||
import static com.android.systemui.doze.DozeMachine.State.DOZE;
|
||||
import static com.android.systemui.doze.DozeMachine.State.DOZE_AOD;
|
||||
import static com.android.systemui.doze.DozeMachine.State.DOZE_AOD_DOCKED;
|
||||
import static com.android.systemui.doze.DozeMachine.State.DOZE_AOD_PAUSED;
|
||||
import static com.android.systemui.doze.DozeMachine.State.DOZE_AOD_PAUSING;
|
||||
import static com.android.systemui.doze.DozeMachine.State.DOZE_PULSE_DONE;
|
||||
@@ -43,7 +44,6 @@ import android.os.PowerManager;
|
||||
import android.os.UserHandle;
|
||||
import android.provider.Settings;
|
||||
import android.testing.AndroidTestingRunner;
|
||||
import android.view.Display;
|
||||
|
||||
import androidx.test.filters.SmallTest;
|
||||
|
||||
@@ -114,8 +114,6 @@ public class DozeScreenBrightnessTest extends SysuiTestCase {
|
||||
mScreen = new DozeScreenBrightness(mContext, mServiceFake, mSensorManager,
|
||||
Optional.of(mSensor.getSensor()), mDozeHost, null /* handler */,
|
||||
mAlwaysOnDisplayPolicy, mWakefulnessLifecycle, mDozeParameters, mDockManager);
|
||||
|
||||
mScreen.onScreenState(Display.STATE_ON);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -126,19 +124,10 @@ public class DozeScreenBrightnessTest extends SysuiTestCase {
|
||||
assertTrue(mServiceFake.screenBrightness <= PowerManager.BRIGHTNESS_ON);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAod_usesLightSensor() {
|
||||
mScreen.onScreenState(Display.STATE_DOZE);
|
||||
waitForSensorManager();
|
||||
|
||||
mSensor.sendSensorEvent(3);
|
||||
|
||||
assertEquals(3, mServiceFake.screenBrightness);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAod_usesDebugValue() throws Exception {
|
||||
mScreen.onScreenState(Display.STATE_DOZE);
|
||||
mScreen.transitionTo(UNINITIALIZED, INITIALIZED);
|
||||
mScreen.transitionTo(INITIALIZED, DOZE_AOD);
|
||||
waitForSensorManager();
|
||||
|
||||
Intent intent = new Intent(DozeScreenBrightness.ACTION_AOD_BRIGHTNESS);
|
||||
@@ -161,71 +150,53 @@ public class DozeScreenBrightnessTest extends SysuiTestCase {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAodDocked_doNotSelectivelyUseProx_usesLightSensor() {
|
||||
// GIVEN the device doesn't need to selectively register for prox sensors and
|
||||
// brightness sensor uses prox
|
||||
when(mDozeParameters.getSelectivelyRegisterSensorsUsingProx()).thenReturn(false);
|
||||
when(mDozeParameters.brightnessUsesProx()).thenReturn(true);
|
||||
|
||||
public void doze_doesNotUseLightSensor() {
|
||||
// GIVEN the device is docked and the display state changes to ON
|
||||
when(mDockManager.isDocked()).thenReturn(true);
|
||||
mScreen.onScreenState(Display.STATE_ON);
|
||||
mScreen.transitionTo(UNINITIALIZED, INITIALIZED);
|
||||
mScreen.transitionTo(INITIALIZED, DOZE);
|
||||
waitForSensorManager();
|
||||
|
||||
// WHEN new sensor event sent
|
||||
mSensor.sendSensorEvent(3);
|
||||
|
||||
// THEN brightness is updated
|
||||
assertEquals(3, mServiceFake.screenBrightness);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAodDocked_brightnessDoesNotUseProx_usesLightSensor() {
|
||||
// GIVEN the device doesn't need to selectively register for prox sensors but
|
||||
// the brightness sensor doesn't use prox
|
||||
when(mDozeParameters.getSelectivelyRegisterSensorsUsingProx()).thenReturn(true);
|
||||
when(mDozeParameters.brightnessUsesProx()).thenReturn(false);
|
||||
|
||||
// GIVEN the device is docked and the display state changes to ON
|
||||
when(mDockManager.isDocked()).thenReturn(true);
|
||||
mScreen.onScreenState(Display.STATE_ON);
|
||||
waitForSensorManager();
|
||||
|
||||
// WHEN new sensor event sent
|
||||
mSensor.sendSensorEvent(3);
|
||||
|
||||
// THEN brightness is updated
|
||||
assertEquals(3, mServiceFake.screenBrightness);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testAodDocked_noProx_brightnessUsesProx_doNotUseLightSensor() {
|
||||
final int startBrightness = mServiceFake.screenBrightness;
|
||||
|
||||
// GIVEN the device needs to selectively register for prox sensors and
|
||||
// the brightness sensor uses prox
|
||||
when(mDozeParameters.getSelectivelyRegisterSensorsUsingProx()).thenReturn(true);
|
||||
when(mDozeParameters.brightnessUsesProx()).thenReturn(true);
|
||||
|
||||
// GIVEN the device is docked and the display state is on
|
||||
when(mDockManager.isDocked()).thenReturn(true);
|
||||
mScreen.onScreenState(Display.STATE_ON);
|
||||
waitForSensorManager();
|
||||
|
||||
// WHEN new sensor event sent
|
||||
mSensor.sendSensorEvent(3);
|
||||
|
||||
// THEN brightness is NOT changed
|
||||
// THEN brightness is NOT changed, it's set to the default brightness
|
||||
assertNotSame(3, mServiceFake.screenBrightness);
|
||||
assertEquals(startBrightness, mServiceFake.screenBrightness);
|
||||
assertEquals(DEFAULT_BRIGHTNESS, mServiceFake.screenBrightness);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void aod_usesLightSensor() {
|
||||
// GIVEN the device is docked and the display state changes to ON
|
||||
mScreen.transitionTo(UNINITIALIZED, INITIALIZED);
|
||||
mScreen.transitionTo(INITIALIZED, DOZE_AOD);
|
||||
waitForSensorManager();
|
||||
|
||||
// WHEN new sensor event sent
|
||||
mSensor.sendSensorEvent(3);
|
||||
|
||||
// THEN brightness is updated
|
||||
assertEquals(3, mServiceFake.screenBrightness);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void docked_usesLightSensor() {
|
||||
// GIVEN the device is docked and the display state changes to ON
|
||||
mScreen.transitionTo(UNINITIALIZED, INITIALIZED);
|
||||
mScreen.transitionTo(INITIALIZED, DOZE_AOD);
|
||||
mScreen.transitionTo(DOZE_AOD, DOZE_AOD_DOCKED);
|
||||
waitForSensorManager();
|
||||
|
||||
// WHEN new sensor event sent
|
||||
mSensor.sendSensorEvent(3);
|
||||
|
||||
// THEN brightness is updated
|
||||
assertEquals(3, mServiceFake.screenBrightness);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPausingAod_doesNotResetBrightness() throws Exception {
|
||||
mScreen.transitionTo(UNINITIALIZED, INITIALIZED);
|
||||
mScreen.transitionTo(INITIALIZED, DOZE_AOD);
|
||||
mScreen.onScreenState(Display.STATE_DOZE);
|
||||
waitForSensorManager();
|
||||
|
||||
mSensor.sendSensorEvent(1);
|
||||
@@ -265,18 +236,6 @@ public class DozeScreenBrightnessTest extends SysuiTestCase {
|
||||
assertEquals(DEFAULT_BRIGHTNESS, mServiceFake.screenBrightness);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testOnScreenStateSetBeforeTransition_stillRegistersSensor() {
|
||||
mScreen.transitionTo(UNINITIALIZED, INITIALIZED);
|
||||
mScreen.onScreenState(Display.STATE_DOZE);
|
||||
mScreen.transitionTo(INITIALIZED, DOZE_AOD);
|
||||
waitForSensorManager();
|
||||
|
||||
mSensor.sendSensorEvent(1);
|
||||
|
||||
assertEquals(1, mServiceFake.screenBrightness);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNullSensor() throws Exception {
|
||||
mScreen = new DozeScreenBrightness(mContext, mServiceFake, mSensorManager,
|
||||
@@ -287,15 +246,12 @@ public class DozeScreenBrightnessTest extends SysuiTestCase {
|
||||
mScreen.transitionTo(INITIALIZED, DOZE_AOD);
|
||||
mScreen.transitionTo(DOZE_AOD, DOZE_AOD_PAUSING);
|
||||
mScreen.transitionTo(DOZE_AOD_PAUSING, DOZE_AOD_PAUSED);
|
||||
mScreen.onScreenState(Display.STATE_DOZE);
|
||||
mScreen.onScreenState(Display.STATE_OFF);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNoBrightnessDeliveredAfterFinish() throws Exception {
|
||||
mScreen.transitionTo(UNINITIALIZED, INITIALIZED);
|
||||
mScreen.transitionTo(INITIALIZED, DOZE_AOD);
|
||||
mScreen.onScreenState(Display.STATE_DOZE);
|
||||
mScreen.transitionTo(DOZE_AOD, FINISH);
|
||||
waitForSensorManager();
|
||||
|
||||
@@ -308,7 +264,6 @@ public class DozeScreenBrightnessTest extends SysuiTestCase {
|
||||
public void testNonPositiveBrightness_keepsPreviousBrightnessAndScrim() {
|
||||
mScreen.transitionTo(UNINITIALIZED, INITIALIZED);
|
||||
mScreen.transitionTo(INITIALIZED, DOZE_AOD);
|
||||
mScreen.onScreenState(Display.STATE_DOZE);
|
||||
waitForSensorManager();
|
||||
|
||||
mSensor.sendSensorEvent(1);
|
||||
@@ -322,7 +277,6 @@ public class DozeScreenBrightnessTest extends SysuiTestCase {
|
||||
public void pausingAod_unblanksAfterSensor() {
|
||||
mScreen.transitionTo(UNINITIALIZED, INITIALIZED);
|
||||
mScreen.transitionTo(INITIALIZED, DOZE_AOD);
|
||||
mScreen.onScreenState(Display.STATE_DOZE);
|
||||
waitForSensorManager();
|
||||
|
||||
mSensor.sendSensorEvent(2);
|
||||
@@ -334,7 +288,6 @@ public class DozeScreenBrightnessTest extends SysuiTestCase {
|
||||
|
||||
reset(mDozeHost);
|
||||
mScreen.transitionTo(DOZE_AOD_PAUSED, DOZE_AOD);
|
||||
mScreen.onScreenState(Display.STATE_DOZE);
|
||||
waitForSensorManager();
|
||||
mSensor.sendSensorEvent(2);
|
||||
verify(mDozeHost).setAodDimmingScrim(eq(0f));
|
||||
@@ -344,7 +297,6 @@ public class DozeScreenBrightnessTest extends SysuiTestCase {
|
||||
public void pausingAod_unblanksIfSensorWasAlwaysReady() throws Exception {
|
||||
mScreen.transitionTo(UNINITIALIZED, INITIALIZED);
|
||||
mScreen.transitionTo(INITIALIZED, DOZE_AOD);
|
||||
mScreen.onScreenState(Display.STATE_DOZE);
|
||||
waitForSensorManager();
|
||||
|
||||
mSensor.sendSensorEvent(2);
|
||||
|
||||
Reference in New Issue
Block a user