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

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

Merge "Transitions: Limit how to LOCKSCREEN can be interrupted" into udc-dev

parents 0d800228 f087f94e
Loading
Loading
Loading
Loading
+15 −8
Original line number Diff line number Diff line
@@ -59,16 +59,23 @@ constructor(
    }

    private fun listenForLockscreenToDreaming() {
        val invalidFromStates = setOf(KeyguardState.AOD, KeyguardState.DOZING)
        scope.launch {
            keyguardInteractor.isAbleToDream
                .sample(keyguardTransitionInteractor.startedKeyguardTransitionStep, ::Pair)
                .collect { pair ->
                    val (isAbleToDream, lastStartedTransition) = pair
                    if (
                        isAbleToDream &&
                .sample(
                    combine(
                        keyguardTransitionInteractor.startedKeyguardTransitionStep,
                        keyguardTransitionInteractor.finishedKeyguardState,
                        ::Pair
                    ),
                    ::toTriple
                )
                .collect { (isAbleToDream, lastStartedTransition, finishedKeyguardState) ->
                    val isOnLockscreen = finishedKeyguardState == KeyguardState.LOCKSCREEN
                    val isTransitionInterruptible =
                        lastStartedTransition.to == KeyguardState.LOCKSCREEN &&
                            lastStartedTransition.from != KeyguardState.AOD
                    ) {
                            !invalidFromStates.contains(lastStartedTransition.from)
                    if (isAbleToDream && (isOnLockscreen || isTransitionInterruptible)) {
                        keyguardTransitionRepository.startTransition(
                            TransitionInfo(
                                name,
+84 −337

File changed.

Preview size limit exceeded, changes collapsed.