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

Commit 0aa581ca authored by Matt Pietal's avatar Matt Pietal
Browse files

Don't delay keyguard animations

Continue on the main immediate dispatcher

Bug: 326719188
Test: manual
Flag: N/A
Change-Id: I4c2638058e926d800cf4a9306fdfe1a83f4d8212
parent 31930017
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -17,10 +17,10 @@ package com.android.systemui.keyguard.ui

import android.view.animation.Interpolator
import com.android.app.animation.Interpolators.LINEAR
import com.android.app.tracing.coroutines.launch
import com.android.keyguard.logging.KeyguardTransitionAnimationLogger
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor
import com.android.systemui.keyguard.shared.model.Edge
import com.android.systemui.keyguard.shared.model.KeyguardState
@@ -35,6 +35,7 @@ import kotlin.math.max
import kotlin.math.min
import kotlin.time.Duration
import kotlin.time.Duration.Companion.milliseconds
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.channels.BufferOverflow
import kotlinx.coroutines.flow.Flow
@@ -42,6 +43,7 @@ import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.mapNotNull
import kotlinx.coroutines.launch

/**
 * Assists in creating sub-flows for a KeyguardTransition. Call [setup] once for a transition, and
@@ -52,13 +54,14 @@ class KeyguardTransitionAnimationFlow
@Inject
constructor(
    @Application private val scope: CoroutineScope,
    @Main private val mainDispatcher: CoroutineDispatcher,
    private val transitionInteractor: KeyguardTransitionInteractor,
    private val logger: KeyguardTransitionAnimationLogger,
) {
    private val transitionMap = mutableMapOf<Edge, MutableSharedFlow<TransitionStep>>()

    init {
        scope.launch("KeyguardTransitionAnimationFlow") {
        scope.launch(mainDispatcher) {
            transitionInteractor.transitions.collect {
                // FROM->TO
                transitionMap[Edge(it.from, it.to)]?.emit(it)
+2 −0
Original line number Diff line number Diff line
@@ -23,11 +23,13 @@ import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInterac
import com.android.systemui.kosmos.Kosmos
import com.android.systemui.kosmos.Kosmos.Fixture
import com.android.systemui.kosmos.applicationCoroutineScope
import com.android.systemui.kosmos.testDispatcher
import kotlinx.coroutines.ExperimentalCoroutinesApi

val Kosmos.keyguardTransitionAnimationFlow by Fixture {
    KeyguardTransitionAnimationFlow(
        scope = applicationCoroutineScope,
        mainDispatcher = testDispatcher,
        transitionInteractor = keyguardTransitionInteractor,
        logger = keyguardTransitionAnimationLogger,
    )