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

Commit 52ecba88 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Pulse state should always show ambient wallpaper" into pi-dev

parents 908b548f 30c75471
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -69,7 +69,7 @@ public class DozeFactory {
                new DozeScreenState(wrappedService, handler, params, wakeLock),
                createDozeScreenBrightness(context, wrappedService, sensorManager, host, params,
                        handler),
                new DozeWallpaperState(context, params)
                new DozeWallpaperState(context)
        });

        return machine;
+8 −13
Original line number Diff line number Diff line
@@ -38,40 +38,33 @@ public class DozeWallpaperState implements DozeMachine.Part {
    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);

    private final IWallpaperManager mWallpaperManagerService;
    private boolean mKeyguardVisible;
    private boolean mIsAmbientMode;
    private final DozeParameters mDozeParameters;

    public DozeWallpaperState(Context context, DozeParameters dozeParameters) {
    public DozeWallpaperState(Context context) {
        this(IWallpaperManager.Stub.asInterface(
                ServiceManager.getService(Context.WALLPAPER_SERVICE)),
                dozeParameters, KeyguardUpdateMonitor.getInstance(context));
                DozeParameters.getInstance(context));
    }

    @VisibleForTesting
    DozeWallpaperState(IWallpaperManager wallpaperManagerService, DozeParameters parameters,
            KeyguardUpdateMonitor keyguardUpdateMonitor) {
    DozeWallpaperState(IWallpaperManager wallpaperManagerService, DozeParameters parameters) {
        mWallpaperManagerService = wallpaperManagerService;
        mDozeParameters = parameters;
        keyguardUpdateMonitor.registerCallback(new KeyguardUpdateMonitorCallback() {
            @Override
            public void onKeyguardVisibilityChanged(boolean showing) {
                mKeyguardVisible = showing;
            }
        });
    }

    @Override
    public void transitionTo(DozeMachine.State oldState, DozeMachine.State newState) {
        final boolean isAmbientMode;
        switch (newState) {
            case DOZE:
            case DOZE_AOD:
            case DOZE_AOD_PAUSING:
            case DOZE_AOD_PAUSED:
            case DOZE_REQUEST_PULSE:
            case DOZE_PULSING:
            case DOZE_PULSE_DONE:
                isAmbientMode = mDozeParameters.getAlwaysOn();
                isAmbientMode = true;
                break;
            default:
                isAmbientMode = false;
@@ -81,7 +74,9 @@ public class DozeWallpaperState implements DozeMachine.Part {
        if (isAmbientMode) {
            animated = mDozeParameters.shouldControlScreenOff();
        } else {
            animated = !mDozeParameters.getDisplayNeedsBlanking();
            boolean wakingUpFromPulse = oldState == DozeMachine.State.DOZE_PULSING
                    && newState == DozeMachine.State.FINISH;
            animated = !mDozeParameters.getDisplayNeedsBlanking() || wakingUpFromPulse;
        }

        if (isAmbientMode != mIsAmbientMode) {
+25 −3
Original line number Diff line number Diff line
@@ -45,13 +45,11 @@ public class DozeWallpaperStateTest extends SysuiTestCase {
    private DozeWallpaperState mDozeWallpaperState;
    @Mock IWallpaperManager mIWallpaperManager;
    @Mock DozeParameters mDozeParameters;
    @Mock KeyguardUpdateMonitor mKeyguardUpdateMonitor;

    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        mDozeWallpaperState = new DozeWallpaperState(mIWallpaperManager, mDozeParameters,
                mKeyguardUpdateMonitor);
        mDozeWallpaperState = new DozeWallpaperState(mIWallpaperManager, mDozeParameters);
    }

    @Test
@@ -100,4 +98,28 @@ public class DozeWallpaperStateTest extends SysuiTestCase {
        mDozeWallpaperState.transitionTo(DozeMachine.State.DOZE_AOD, DozeMachine.State.FINISH);
        verify(mIWallpaperManager).setInAmbientMode(eq(false), eq(false));
    }

    @Test
    public void testTransitionTo_requestPulseIsAmbientMode() throws RemoteException {
        mDozeWallpaperState.transitionTo(DozeMachine.State.DOZE,
                DozeMachine.State.DOZE_REQUEST_PULSE);
        verify(mIWallpaperManager).setInAmbientMode(eq(true), eq(false));
    }

    @Test
    public void testTransitionTo_pulseIsAmbientMode() throws RemoteException {
        mDozeWallpaperState.transitionTo(DozeMachine.State.DOZE_REQUEST_PULSE,
                DozeMachine.State.DOZE_PULSING);
        verify(mIWallpaperManager).setInAmbientMode(eq(true), eq(false));
    }

    @Test
    public void testTransitionTo_animatesWhenWakingUpFromPulse() throws RemoteException {
        mDozeWallpaperState.transitionTo(DozeMachine.State.DOZE_REQUEST_PULSE,
                DozeMachine.State.DOZE_PULSING);
        reset(mIWallpaperManager);
        mDozeWallpaperState.transitionTo(DozeMachine.State.DOZE_PULSING,
                DozeMachine.State.FINISH);
        verify(mIWallpaperManager).setInAmbientMode(eq(false), eq(true));
    }
}