Notify ScreenOffController of battery saver change
It was previously listening for AOD setting changes only, and ingorning when the battery saver was disabling AOD. This caused animations to run (showAodUI) that put statusbarstate into a stuck KEYGUARD state when it should've been SHADE. Fixes: 270910479 Test: atest DozeParametersTest Test: manual, start with unfolded device, turn on batter saver, fold it, and then unlock Change-Id: Iae586f9a2b86f19502f3d66165b633b1c9fc5f7f
This commit is contained in:
@@ -429,7 +429,6 @@ public class DozeParameters implements
|
||||
}
|
||||
|
||||
dispatchAlwaysOnEvent();
|
||||
mScreenOffAnimationController.onAlwaysOnChanged(getAlwaysOn());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -469,6 +468,7 @@ public class DozeParameters implements
|
||||
for (Callback callback : mCallbacks) {
|
||||
callback.onAlwaysOnChange();
|
||||
}
|
||||
mScreenOffAnimationController.onAlwaysOnChanged(getAlwaysOn());
|
||||
}
|
||||
|
||||
private boolean getPostureSpecificBool(
|
||||
|
||||
@@ -180,6 +180,7 @@ public class DozeParametersTest extends SysuiTestCase {
|
||||
when(mAmbientDisplayConfiguration.alwaysOnEnabled(anyInt())).thenReturn(true);
|
||||
mDozeParameters.onTuningChanged(Settings.Secure.DOZE_ALWAYS_ON, "1");
|
||||
|
||||
verify(mScreenOffAnimationController).onAlwaysOnChanged(false);
|
||||
assertThat(mDozeParameters.getAlwaysOn()).isFalse();
|
||||
}
|
||||
|
||||
@@ -196,13 +197,16 @@ public class DozeParametersTest extends SysuiTestCase {
|
||||
mBatteryStateChangeCallback.getValue().onPowerSaveChanged(true);
|
||||
|
||||
verify(callback, times(2)).onAlwaysOnChange();
|
||||
verify(mScreenOffAnimationController, times(2)).onAlwaysOnChanged(false);
|
||||
assertThat(mDozeParameters.getAlwaysOn()).isFalse();
|
||||
|
||||
reset(mScreenOffAnimationController);
|
||||
reset(callback);
|
||||
when(mBatteryController.isAodPowerSave()).thenReturn(false);
|
||||
mBatteryStateChangeCallback.getValue().onPowerSaveChanged(true);
|
||||
|
||||
verify(callback).onAlwaysOnChange();
|
||||
verify(mScreenOffAnimationController).onAlwaysOnChanged(true);
|
||||
assertThat(mDozeParameters.getAlwaysOn()).isTrue();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user