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

Commit 4a28ebe8 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Setup initial device entry alpha based on curr keyguard state" into main

parents 15723602 b998c752
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ import com.android.systemui.keyguard.ui.viewmodel.LockscreenToOccludedTransition
import com.android.systemui.keyguard.ui.viewmodel.LockscreenToPrimaryBouncerTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.OccludedToAodTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.OccludedToLockscreenTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.OffToLockscreenTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.PrimaryBouncerToAodTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.PrimaryBouncerToDozingTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.PrimaryBouncerToLockscreenTransitionViewModel
@@ -194,6 +195,12 @@ abstract class DeviceEntryIconTransitionModule {
        impl: OccludedToLockscreenTransitionViewModel
    ): DeviceEntryIconTransition

    @Binds
    @IntoSet
    abstract fun offToLockscreen(
        impl: OffToLockscreenTransitionViewModel
    ): DeviceEntryIconTransition

    @Binds
    @IntoSet
    abstract fun primaryBouncerToAod(
+34 −12
Original line number Diff line number Diff line
@@ -84,6 +84,7 @@ constructor(
            .map { it.deviceEntryParentViewAlpha }
            .merge()
            .shareIn(scope, SharingStarted.WhileSubscribed())
            .onStart { emit(initialAlphaFromKeyguardState(transitionInteractor.getCurrentState())) }
    private val alphaMultiplierFromShadeExpansion: Flow<Float> =
        combine(
                showingAlternateBouncer,
@@ -97,6 +98,7 @@ constructor(
                    (1f - shadeExpansion) * (1f - interpolatedQsProgress)
                }
            }
            .onStart { emit(1f) }
    // Burn-in offsets in AOD
    private val nonAnimatedBurnInOffsets: Flow<BurnInOffsets> =
        combine(
@@ -122,14 +124,34 @@ constructor(
            )
        }

    val deviceEntryViewAlpha: StateFlow<Float> =
    val deviceEntryViewAlpha: Flow<Float> =
        combine(
                transitionAlpha,
                alphaMultiplierFromShadeExpansion,
            ) { alpha, alphaMultiplier ->
                alpha * alphaMultiplier
            }
            .stateIn(scope = scope, started = SharingStarted.WhileSubscribed(), initialValue = 0f)
            .stateIn(
                scope = scope,
                started = SharingStarted.WhileSubscribed(),
                initialValue = 0f,
            )

    private fun initialAlphaFromKeyguardState(keyguardState: KeyguardState): Float {
        return when (keyguardState) {
            KeyguardState.OFF,
            KeyguardState.PRIMARY_BOUNCER,
            KeyguardState.DOZING,
            KeyguardState.DREAMING,
            KeyguardState.GLANCEABLE_HUB,
            KeyguardState.GONE,
            KeyguardState.OCCLUDED,
            KeyguardState.DREAMING_LOCKSCREEN_HOSTED, -> 0f
            KeyguardState.AOD,
            KeyguardState.ALTERNATE_BOUNCER,
            KeyguardState.LOCKSCREEN -> 1f
        }
    }
    val useBackgroundProtection: StateFlow<Boolean> = isUdfpsSupported
    val burnInOffsets: Flow<BurnInOffsets> =
        deviceEntryUdfpsInteractor.isUdfpsEnrolledAndEnabled
+5 −1
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.systemui.keyguard.ui.viewmodel
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.keyguard.shared.model.KeyguardState
import com.android.systemui.keyguard.ui.KeyguardTransitionAnimationFlow
import com.android.systemui.keyguard.ui.transitions.DeviceEntryIconTransition
import javax.inject.Inject
import kotlin.time.Duration.Companion.milliseconds
import kotlinx.coroutines.flow.Flow
@@ -28,7 +29,7 @@ class OffToLockscreenTransitionViewModel
@Inject
constructor(
    animationFlow: KeyguardTransitionAnimationFlow,
) {
) : DeviceEntryIconTransition {

    private val transitionAnimation =
        animationFlow.setup(
@@ -43,4 +44,7 @@ constructor(
            onStep = { it },
            onCancel = { 0f },
        )

    override val deviceEntryParentViewAlpha: Flow<Float> =
        transitionAnimation.immediatelyTransitionTo(1f)
}