diff options
2 files changed, 19 insertions, 3 deletions
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/transitions/FromLockscreenToBouncerTransition.kt b/packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/transitions/FromLockscreenToBouncerTransition.kt index 1fee8741fe48..022eb1f5ef77 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/transitions/FromLockscreenToBouncerTransition.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/scene/ui/composable/transitions/FromLockscreenToBouncerTransition.kt @@ -5,10 +5,16 @@ import androidx.compose.ui.unit.dp import com.android.compose.animation.scene.TransitionBuilder import com.android.systemui.bouncer.ui.composable.Bouncer +const val FROM_LOCK_SCREEN_TO_BOUNCER_FADE_FRACTION = 0.5f + fun TransitionBuilder.lockscreenToBouncerTransition() { spec = tween(durationMillis = 500) translate(Bouncer.Elements.Content, y = 300.dp) - fractionRange(end = 0.5f) { fade(Bouncer.Elements.Background) } - fractionRange(start = 0.5f) { fade(Bouncer.Elements.Content) } + fractionRange(end = FROM_LOCK_SCREEN_TO_BOUNCER_FADE_FRACTION) { + fade(Bouncer.Elements.Background) + } + fractionRange(start = FROM_LOCK_SCREEN_TO_BOUNCER_FADE_FRACTION) { + fade(Bouncer.Elements.Content) + } } diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenToPrimaryBouncerTransitionViewModel.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenToPrimaryBouncerTransitionViewModel.kt index e64c61490204..c0b9efaaec01 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenToPrimaryBouncerTransitionViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenToPrimaryBouncerTransitionViewModel.kt @@ -23,7 +23,9 @@ import com.android.systemui.keyguard.shared.model.KeyguardState.LOCKSCREEN import com.android.systemui.keyguard.shared.model.KeyguardState.PRIMARY_BOUNCER import com.android.systemui.keyguard.ui.KeyguardTransitionAnimationFlow import com.android.systemui.keyguard.ui.transitions.DeviceEntryIconTransition +import com.android.systemui.scene.shared.flag.SceneContainerFlag import com.android.systemui.scene.shared.model.Scenes +import com.android.systemui.scene.ui.composable.transitions.FROM_LOCK_SCREEN_TO_BOUNCER_FADE_FRACTION import javax.inject.Inject import kotlin.time.Duration.Companion.milliseconds import kotlinx.coroutines.ExperimentalCoroutinesApi @@ -51,10 +53,18 @@ constructor( edge = Edge.create(from = LOCKSCREEN, to = PRIMARY_BOUNCER), ) + private val alphaForAnimationStep: (Float) -> Float = + when { + SceneContainerFlag.isEnabled -> { step -> + 1f - Math.min((step / FROM_LOCK_SCREEN_TO_BOUNCER_FADE_FRACTION), 1f) + } + else -> { step -> 1f - step } + } + val shortcutsAlpha: Flow<Float> = transitionAnimation.sharedFlow( duration = FromLockscreenTransitionInteractor.TO_PRIMARY_BOUNCER_DURATION, - onStep = { 1f - it } + onStep = alphaForAnimationStep ) val lockscreenAlpha: Flow<Float> = shortcutsAlpha |