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

Commit 52f5c3a0 authored by Matt Pietal's avatar Matt Pietal Committed by Android (Google) Code Review
Browse files

Merge "Enable super smooth GONE->AOD (canceled)->LOCKSCREEN transitions" into main

parents 56ca5447 eeb8a309
Loading
Loading
Loading
Loading
+10 −15
Original line number Original line Diff line number Diff line
@@ -64,26 +64,21 @@ constructor(


    /** Ensure alpha is set to be visible */
    /** Ensure alpha is set to be visible */
    fun lockscreenAlpha(viewState: ViewStateAccessor): Flow<Float> {
    fun lockscreenAlpha(viewState: ViewStateAccessor): Flow<Float> {
        var startAlpha: Float? = null
        var startAlpha = 1f
        return transitionAnimation.sharedFlow(
        return transitionAnimation.sharedFlow(
            duration = 500.milliseconds,
            duration = 500.milliseconds,
            onStep = {
            onStart = { startAlpha = viewState.alpha() },
                if (startAlpha == null) {
            onStep = { MathUtils.lerp(startAlpha, 1f, it) },
                    startAlpha = viewState.alpha()
                }
                MathUtils.lerp(startAlpha!!, 1f, it)
            },
            onFinish = {
                startAlpha = null
                1f
            },
            onCancel = {
                startAlpha = null
                1f
            },
        )
        )
    }
    }


    val notificationAlpha: Flow<Float> =
        transitionAnimation.sharedFlow(
            duration = 500.milliseconds,
            onStep = { it },
            onCancel = { 1f },
        )

    val shortcutsAlpha: Flow<Float> =
    val shortcutsAlpha: Flow<Float> =
        transitionAnimation.sharedFlow(
        transitionAnimation.sharedFlow(
            duration = 167.milliseconds,
            duration = 167.milliseconds,
+8 −2
Original line number Original line Diff line number Diff line
@@ -55,11 +55,18 @@ constructor(
            duration = 500.milliseconds,
            duration = 500.milliseconds,
            onStep = { translatePx + it * -translatePx },
            onStep = { translatePx + it * -translatePx },
            onFinish = { 0f },
            onFinish = { 0f },
            onCancel = { 0f },
            interpolator = EMPHASIZED_DECELERATE,
            interpolator = EMPHASIZED_DECELERATE,
        )
        )
    }
    }


    val notificationAlpha: Flow<Float> =
        transitionAnimation.sharedFlow(
            duration = 200.milliseconds,
            onStep = { 1f - it },
            // Needs to be 1f in order for HUNs to appear on AOD
            onFinish = { 1f },
        )

    /** alpha animation upon entering AOD */
    /** alpha animation upon entering AOD */
    val enterFromTopAnimationAlpha: Flow<Float> =
    val enterFromTopAnimationAlpha: Flow<Float> =
        transitionAnimation.sharedFlow(
        transitionAnimation.sharedFlow(
@@ -67,7 +74,6 @@ constructor(
            duration = 400.milliseconds,
            duration = 400.milliseconds,
            onStep = { it },
            onStep = { it },
            onFinish = { 1f },
            onFinish = { 1f },
            onCancel = { 1f },
        )
        )
    val deviceEntryBackgroundViewAlpha: Flow<Float> =
    val deviceEntryBackgroundViewAlpha: Flow<Float> =
        transitionAnimation.immediatelyTransitionTo(0f)
        transitionAnimation.immediatelyTransitionTo(0f)
+5 −15
Original line number Original line Diff line number Diff line
@@ -55,23 +55,13 @@ constructor(
        )
        )


    fun lockscreenAlpha(viewState: ViewStateAccessor): Flow<Float> {
    fun lockscreenAlpha(viewState: ViewStateAccessor): Flow<Float> {
        var startAlpha: Float? = null
        var startAlpha = 1f
        return transitionAnimation.sharedFlow(
        return transitionAnimation.sharedFlow(
            duration = 200.milliseconds,
            duration = 200.milliseconds,
            onStep = {
            onStart = { startAlpha = viewState.alpha() },
                if (startAlpha == null) {
            onStep = { MathUtils.lerp(startAlpha, 0f, it) },
                    startAlpha = viewState.alpha()
            onFinish = { 0f },
                }
            onCancel = { 1f },
                MathUtils.lerp(startAlpha!!, 0f, it)
            },
            onFinish = {
                startAlpha = null
                0f
            },
            onCancel = {
                startAlpha = null
                1f
            },
        )
        )
    }
    }


+4 −1
Original line number Original line Diff line number Diff line
@@ -45,6 +45,7 @@ import com.android.systemui.keyguard.ui.viewmodel.BurnInParameters
import com.android.systemui.keyguard.ui.viewmodel.DozingToLockscreenTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.DozingToLockscreenTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.DreamingToLockscreenTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.DreamingToLockscreenTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.GlanceableHubToLockscreenTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.GlanceableHubToLockscreenTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.GoneToAodTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.GoneToDozingTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.GoneToDozingTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.GoneToDreamingTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.GoneToDreamingTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.LockscreenToDreamingTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.LockscreenToDreamingTransitionViewModel
@@ -98,6 +99,7 @@ constructor(
    private val dreamingToLockscreenTransitionViewModel: DreamingToLockscreenTransitionViewModel,
    private val dreamingToLockscreenTransitionViewModel: DreamingToLockscreenTransitionViewModel,
    private val glanceableHubToLockscreenTransitionViewModel:
    private val glanceableHubToLockscreenTransitionViewModel:
        GlanceableHubToLockscreenTransitionViewModel,
        GlanceableHubToLockscreenTransitionViewModel,
    private val goneToAodTransitionViewModel: GoneToAodTransitionViewModel,
    private val goneToDozingTransitionViewModel: GoneToDozingTransitionViewModel,
    private val goneToDozingTransitionViewModel: GoneToDozingTransitionViewModel,
    private val goneToDreamingTransitionViewModel: GoneToDreamingTransitionViewModel,
    private val goneToDreamingTransitionViewModel: GoneToDreamingTransitionViewModel,
    private val lockscreenToDreamingTransitionViewModel: LockscreenToDreamingTransitionViewModel,
    private val lockscreenToDreamingTransitionViewModel: LockscreenToDreamingTransitionViewModel,
@@ -304,9 +306,10 @@ constructor(
        val alphaTransitions =
        val alphaTransitions =
            merge(
            merge(
                alternateBouncerToGoneTransitionViewModel.lockscreenAlpha,
                alternateBouncerToGoneTransitionViewModel.lockscreenAlpha,
                aodToLockscreenTransitionViewModel.lockscreenAlpha(viewState),
                aodToLockscreenTransitionViewModel.notificationAlpha,
                dozingToLockscreenTransitionViewModel.lockscreenAlpha,
                dozingToLockscreenTransitionViewModel.lockscreenAlpha,
                dreamingToLockscreenTransitionViewModel.lockscreenAlpha,
                dreamingToLockscreenTransitionViewModel.lockscreenAlpha,
                goneToAodTransitionViewModel.notificationAlpha,
                goneToDreamingTransitionViewModel.lockscreenAlpha,
                goneToDreamingTransitionViewModel.lockscreenAlpha,
                goneToDozingTransitionViewModel.lockscreenAlpha,
                goneToDozingTransitionViewModel.lockscreenAlpha,
                lockscreenToDreamingTransitionViewModel.lockscreenAlpha,
                lockscreenToDreamingTransitionViewModel.lockscreenAlpha,
+4 −0
Original line number Original line Diff line number Diff line
@@ -25,6 +25,7 @@ import com.android.systemui.keyguard.ui.viewmodel.aodToLockscreenTransitionViewM
import com.android.systemui.keyguard.ui.viewmodel.dozingToLockscreenTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.dozingToLockscreenTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.dreamingToLockscreenTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.dreamingToLockscreenTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.glanceableHubToLockscreenTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.glanceableHubToLockscreenTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.goneToAodTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.goneToDozingTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.goneToDozingTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.goneToDreamingTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.goneToDreamingTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.lockscreenToDreamingTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.lockscreenToDreamingTransitionViewModel
@@ -41,7 +42,9 @@ import com.android.systemui.kosmos.Kosmos.Fixture
import com.android.systemui.kosmos.applicationCoroutineScope
import com.android.systemui.kosmos.applicationCoroutineScope
import com.android.systemui.shade.domain.interactor.shadeInteractor
import com.android.systemui.shade.domain.interactor.shadeInteractor
import com.android.systemui.statusbar.notification.stack.domain.interactor.sharedNotificationContainerInteractor
import com.android.systemui.statusbar.notification.stack.domain.interactor.sharedNotificationContainerInteractor
import kotlinx.coroutines.ExperimentalCoroutinesApi


@OptIn(ExperimentalCoroutinesApi::class)
val Kosmos.sharedNotificationContainerViewModel by Fixture {
val Kosmos.sharedNotificationContainerViewModel by Fixture {
    SharedNotificationContainerViewModel(
    SharedNotificationContainerViewModel(
        interactor = sharedNotificationContainerInteractor,
        interactor = sharedNotificationContainerInteractor,
@@ -54,6 +57,7 @@ val Kosmos.sharedNotificationContainerViewModel by Fixture {
        aodToLockscreenTransitionViewModel = aodToLockscreenTransitionViewModel,
        aodToLockscreenTransitionViewModel = aodToLockscreenTransitionViewModel,
        dozingToLockscreenTransitionViewModel = dozingToLockscreenTransitionViewModel,
        dozingToLockscreenTransitionViewModel = dozingToLockscreenTransitionViewModel,
        dreamingToLockscreenTransitionViewModel = dreamingToLockscreenTransitionViewModel,
        dreamingToLockscreenTransitionViewModel = dreamingToLockscreenTransitionViewModel,
        goneToAodTransitionViewModel = goneToAodTransitionViewModel,
        goneToDozingTransitionViewModel = goneToDozingTransitionViewModel,
        goneToDozingTransitionViewModel = goneToDozingTransitionViewModel,
        goneToDreamingTransitionViewModel = goneToDreamingTransitionViewModel,
        goneToDreamingTransitionViewModel = goneToDreamingTransitionViewModel,
        glanceableHubToLockscreenTransitionViewModel = glanceableHubToLockscreenTransitionViewModel,
        glanceableHubToLockscreenTransitionViewModel = glanceableHubToLockscreenTransitionViewModel,