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:
Matt Pietal
2023-03-03 19:28:16 +00:00
parent 600c1d8a5f
commit 10383655a4
2 changed files with 5 additions and 1 deletions

View File

@@ -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(

View File

@@ -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();
}