Loading packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractor.kt +73 −85 Original line number Diff line number Diff line Loading @@ -39,7 +39,6 @@ import com.android.systemui.power.shared.model.WakeSleepReason.FOLD import com.android.systemui.scene.shared.flag.SceneContainerFlag import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.shade.data.repository.ShadeRepository import com.android.systemui.util.kotlin.Utils.Companion.sample as sampleCombine import com.android.systemui.util.kotlin.sample import java.util.UUID import javax.inject.Inject Loading @@ -52,7 +51,6 @@ import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.filterNotNull import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.onStart import com.android.app.tracing.coroutines.launchTraced as launch @SysUISingleton class FromLockscreenTransitionInteractor Loading Loading @@ -176,20 +174,12 @@ constructor( if (SceneContainerFlag.isEnabled) return var transitionId: UUID? = null scope.launch("$TAG#listenForLockscreenToPrimaryBouncerDragging") { shadeRepository.legacyShadeExpansion .sampleCombine( transitionInteractor.startedKeyguardTransitionStep, keyguardInteractor.statusBarState, keyguardInteractor.isKeyguardDismissible, keyguardInteractor.isKeyguardOccluded, ) .collect { ( shadeExpansion, startedStep, statusBarState, isKeyguardUnlocked, isKeyguardOccluded) -> shadeRepository.legacyShadeExpansion.collect { shadeExpansion -> val statusBarState = keyguardInteractor.statusBarState.value val isKeyguardUnlocked = keyguardInteractor.isKeyguardDismissible.value val isKeyguardOccluded = keyguardInteractor.isKeyguardOccluded.value val startedStep = transitionInteractor.startedKeyguardTransitionStep.value val id = transitionId val currentTransitionInfo = internalTransitionInteractor.currentTransitionInfoInternal() Loading @@ -212,8 +202,7 @@ constructor( id, // This maps the shadeExpansion to a much faster curve, to match // the existing logic 1f - MathUtils.constrainedMap(0f, 1f, 0.95f, 1f, shadeExpansion), 1f - MathUtils.constrainedMap(0f, 1f, 0.95f, 1f, shadeExpansion), nextState, ) } Loading @@ -232,8 +221,7 @@ constructor( transitionRepository.startTransition( TransitionInfo( ownerName = "$name " + "(on behalf of FromPrimaryBouncerInteractor)", "$name " + "(on behalf of FromPrimaryBouncerInteractor)", from = KeyguardState.PRIMARY_BOUNCER, to = if (isKeyguardOccluded) KeyguardState.OCCLUDED Loading packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractor.kt +3 −5 Original line number Diff line number Diff line Loading @@ -284,7 +284,7 @@ constructor( } /** Observable for the [StatusBarState] */ val statusBarState: Flow<StatusBarState> = repository.statusBarState val statusBarState: StateFlow<StatusBarState> = repository.statusBarState /** Observable for [BiometricUnlockModel] when biometrics are used to unlock the device. */ val biometricUnlockState: StateFlow<BiometricUnlockModel> = repository.biometricUnlockState Loading Loading @@ -350,23 +350,21 @@ constructor( val dismissAlpha: Flow<Float> = shadeRepository.legacyShadeExpansion .sampleCombine( statusBarState, keyguardTransitionInteractor.currentKeyguardState, keyguardTransitionInteractor.transitionState, isKeyguardDismissible, keyguardTransitionInteractor.isFinishedIn(Scenes.Communal, GLANCEABLE_HUB), ) .filter { (_, _, _, step, _, _) -> !step.transitionState.isTransitioning() } .filter { (_, _, step, _, _) -> !step.transitionState.isTransitioning() } .transform { ( legacyShadeExpansion, statusBarState, currentKeyguardState, step, isKeyguardDismissible, onGlanceableHub) -> if ( statusBarState == StatusBarState.KEYGUARD && statusBarState.value == StatusBarState.KEYGUARD && isKeyguardDismissible && currentKeyguardState == LOCKSCREEN && legacyShadeExpansion != 1f Loading packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/SwipeToDismissInteractor.kt +10 −15 Original line number Diff line number Diff line Loading @@ -20,13 +20,13 @@ import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.keyguard.shared.model.StatusBarState import com.android.systemui.shade.data.repository.FlingInfo import com.android.systemui.shade.data.repository.ShadeRepository import com.android.systemui.util.kotlin.Utils.Companion.sample import javax.inject.Inject import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.filter import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.stateIn /** Loading @@ -39,8 +39,8 @@ class SwipeToDismissInteractor constructor( @Background backgroundScope: CoroutineScope, shadeRepository: ShadeRepository, transitionInteractor: KeyguardTransitionInteractor, keyguardInteractor: KeyguardInteractor, private val transitionInteractor: KeyguardTransitionInteractor, private val keyguardInteractor: KeyguardInteractor, ) { /** * Emits a [FlingInfo] whenever a swipe to dismiss gesture has started a fling animation on the Loading @@ -50,20 +50,15 @@ constructor( * LOCKSCREEN -> GONE, and by [KeyguardSurfaceBehindInteractor] to match the surface remote * animation's velocity to the fling velocity, if applicable. */ val dismissFling = val dismissFling: StateFlow<FlingInfo?> = shadeRepository.currentFling .sample( transitionInteractor.startedKeyguardTransitionStep, keyguardInteractor.isKeyguardDismissible, keyguardInteractor.statusBarState, ) .filter { (flingInfo, startedStep, keyguardDismissable, statusBarState) -> .filter { flingInfo -> flingInfo != null && !flingInfo.expand && statusBarState != StatusBarState.SHADE_LOCKED && startedStep.to == KeyguardState.LOCKSCREEN && keyguardDismissable keyguardInteractor.statusBarState.value != StatusBarState.SHADE_LOCKED && transitionInteractor.startedKeyguardTransitionStep.value.to == KeyguardState.LOCKSCREEN && keyguardInteractor.isKeyguardDismissible.value } .map { (flingInfo, _) -> flingInfo } .stateIn(backgroundScope, SharingStarted.Eagerly, null) } Loading
packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractor.kt +73 −85 Original line number Diff line number Diff line Loading @@ -39,7 +39,6 @@ import com.android.systemui.power.shared.model.WakeSleepReason.FOLD import com.android.systemui.scene.shared.flag.SceneContainerFlag import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.shade.data.repository.ShadeRepository import com.android.systemui.util.kotlin.Utils.Companion.sample as sampleCombine import com.android.systemui.util.kotlin.sample import java.util.UUID import javax.inject.Inject Loading @@ -52,7 +51,6 @@ import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.filterNotNull import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.onStart import com.android.app.tracing.coroutines.launchTraced as launch @SysUISingleton class FromLockscreenTransitionInteractor Loading Loading @@ -176,20 +174,12 @@ constructor( if (SceneContainerFlag.isEnabled) return var transitionId: UUID? = null scope.launch("$TAG#listenForLockscreenToPrimaryBouncerDragging") { shadeRepository.legacyShadeExpansion .sampleCombine( transitionInteractor.startedKeyguardTransitionStep, keyguardInteractor.statusBarState, keyguardInteractor.isKeyguardDismissible, keyguardInteractor.isKeyguardOccluded, ) .collect { ( shadeExpansion, startedStep, statusBarState, isKeyguardUnlocked, isKeyguardOccluded) -> shadeRepository.legacyShadeExpansion.collect { shadeExpansion -> val statusBarState = keyguardInteractor.statusBarState.value val isKeyguardUnlocked = keyguardInteractor.isKeyguardDismissible.value val isKeyguardOccluded = keyguardInteractor.isKeyguardOccluded.value val startedStep = transitionInteractor.startedKeyguardTransitionStep.value val id = transitionId val currentTransitionInfo = internalTransitionInteractor.currentTransitionInfoInternal() Loading @@ -212,8 +202,7 @@ constructor( id, // This maps the shadeExpansion to a much faster curve, to match // the existing logic 1f - MathUtils.constrainedMap(0f, 1f, 0.95f, 1f, shadeExpansion), 1f - MathUtils.constrainedMap(0f, 1f, 0.95f, 1f, shadeExpansion), nextState, ) } Loading @@ -232,8 +221,7 @@ constructor( transitionRepository.startTransition( TransitionInfo( ownerName = "$name " + "(on behalf of FromPrimaryBouncerInteractor)", "$name " + "(on behalf of FromPrimaryBouncerInteractor)", from = KeyguardState.PRIMARY_BOUNCER, to = if (isKeyguardOccluded) KeyguardState.OCCLUDED Loading
packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractor.kt +3 −5 Original line number Diff line number Diff line Loading @@ -284,7 +284,7 @@ constructor( } /** Observable for the [StatusBarState] */ val statusBarState: Flow<StatusBarState> = repository.statusBarState val statusBarState: StateFlow<StatusBarState> = repository.statusBarState /** Observable for [BiometricUnlockModel] when biometrics are used to unlock the device. */ val biometricUnlockState: StateFlow<BiometricUnlockModel> = repository.biometricUnlockState Loading Loading @@ -350,23 +350,21 @@ constructor( val dismissAlpha: Flow<Float> = shadeRepository.legacyShadeExpansion .sampleCombine( statusBarState, keyguardTransitionInteractor.currentKeyguardState, keyguardTransitionInteractor.transitionState, isKeyguardDismissible, keyguardTransitionInteractor.isFinishedIn(Scenes.Communal, GLANCEABLE_HUB), ) .filter { (_, _, _, step, _, _) -> !step.transitionState.isTransitioning() } .filter { (_, _, step, _, _) -> !step.transitionState.isTransitioning() } .transform { ( legacyShadeExpansion, statusBarState, currentKeyguardState, step, isKeyguardDismissible, onGlanceableHub) -> if ( statusBarState == StatusBarState.KEYGUARD && statusBarState.value == StatusBarState.KEYGUARD && isKeyguardDismissible && currentKeyguardState == LOCKSCREEN && legacyShadeExpansion != 1f Loading
packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/SwipeToDismissInteractor.kt +10 −15 Original line number Diff line number Diff line Loading @@ -20,13 +20,13 @@ import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.keyguard.shared.model.StatusBarState import com.android.systemui.shade.data.repository.FlingInfo import com.android.systemui.shade.data.repository.ShadeRepository import com.android.systemui.util.kotlin.Utils.Companion.sample import javax.inject.Inject import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.filter import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.stateIn /** Loading @@ -39,8 +39,8 @@ class SwipeToDismissInteractor constructor( @Background backgroundScope: CoroutineScope, shadeRepository: ShadeRepository, transitionInteractor: KeyguardTransitionInteractor, keyguardInteractor: KeyguardInteractor, private val transitionInteractor: KeyguardTransitionInteractor, private val keyguardInteractor: KeyguardInteractor, ) { /** * Emits a [FlingInfo] whenever a swipe to dismiss gesture has started a fling animation on the Loading @@ -50,20 +50,15 @@ constructor( * LOCKSCREEN -> GONE, and by [KeyguardSurfaceBehindInteractor] to match the surface remote * animation's velocity to the fling velocity, if applicable. */ val dismissFling = val dismissFling: StateFlow<FlingInfo?> = shadeRepository.currentFling .sample( transitionInteractor.startedKeyguardTransitionStep, keyguardInteractor.isKeyguardDismissible, keyguardInteractor.statusBarState, ) .filter { (flingInfo, startedStep, keyguardDismissable, statusBarState) -> .filter { flingInfo -> flingInfo != null && !flingInfo.expand && statusBarState != StatusBarState.SHADE_LOCKED && startedStep.to == KeyguardState.LOCKSCREEN && keyguardDismissable keyguardInteractor.statusBarState.value != StatusBarState.SHADE_LOCKED && transitionInteractor.startedKeyguardTransitionStep.value.to == KeyguardState.LOCKSCREEN && keyguardInteractor.isKeyguardDismissible.value } .map { (flingInfo, _) -> flingInfo } .stateIn(backgroundScope, SharingStarted.Eagerly, null) }