Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 10383655 authored by Matt Pietal's avatar Matt Pietal
Browse files

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
parent 600c1d8a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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(
+4 −0
Original line number Diff line number Diff line
@@ -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();
    }