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

Commit 60ed09f4 authored by Robin Lee's avatar Robin Lee
Browse files

Remove flicker when unlocking + turning off screen

As soon as the screen starts turning off, powerManager.isInteractive()
becomes false. This forces the home wallpaper leash back to completely
invisible again, which creates a noticeable flicker.

Since the wallpaper is controlled through a leash, we don't have a
problem leaving it at some intermediate opacity. It will get cleaned
up and removed later.

Test: manual (unlock, power off during unlock animation)
Change-Id: I8e8cf659b1f72dd183825f3f0d27c12ddf3c59b2
parent 6fa9219c
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -902,10 +902,7 @@ class KeyguardUnlockAnimationController @Inject constructor(
    }

    fun setWallpaperAppearAmount(amount: Float) {
        val animationAlpha = when {
            !powerManager.isInteractive -> 0f
            else -> amount
        }
        val animationAlpha = amount

        wallpaperTargets?.forEach { wallpaper ->
            // SyncRtSurfaceTransactionApplier cannot apply transaction when the target view is
+0 −2
Original line number Diff line number Diff line
@@ -343,8 +343,6 @@ class KeyguardUnlockAnimationControllerTest : SysuiTestCase() {
        // We expect that we've set the surface behind to alpha = 0f since we're not interactive.
        assertEquals(0f, params.alpha)
        assertTrue(params.matrix.isIdentity)
        assertEquals("Wallpaper surface was expected to have opacity 0",
                0f, captorWp.getLastValue().alpha)

        verifyNoMoreInteractions(surfaceTransactionApplier)
    }