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

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

Merge "Don't delay keyguard animations" into main

parents 46d317c1 0aa581ca
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,
    )