Merge "Transitions - Allow ->GONE to be canceled" into tm-qpr-dev

This commit is contained in:
Matt Pietal
2023-01-18 20:32:27 +00:00
committed by Android (Google) Code Review
2 changed files with 11 additions and 7 deletions

View File

@@ -31,8 +31,10 @@ import javax.inject.Inject
import kotlin.time.Duration
import kotlin.time.Duration.Companion.milliseconds
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.launch
@SysUISingleton
@@ -87,6 +89,9 @@ constructor(
private fun listenForDreamingToOccluded() {
scope.launch {
keyguardInteractor.isDreaming
// Add a slight delay, as dreaming and occluded events will arrive with a small gap
// in time. This prevents a transition to OCCLUSION happening prematurely.
.onEach { delay(50) }
.sample(
combine(
keyguardInteractor.isKeyguardOccluded,

View File

@@ -50,10 +50,9 @@ constructor(
private fun listenForGoneToDreaming() {
scope.launch {
keyguardInteractor.isAbleToDream
.sample(keyguardTransitionInteractor.finishedKeyguardState, ::Pair)
.collect { pair ->
val (isAbleToDream, keyguardState) = pair
if (isAbleToDream && keyguardState == KeyguardState.GONE) {
.sample(keyguardTransitionInteractor.startedKeyguardTransitionStep, ::Pair)
.collect { (isAbleToDream, lastStartedStep) ->
if (isAbleToDream && lastStartedStep.to == KeyguardState.GONE) {
keyguardTransitionRepository.startTransition(
TransitionInfo(
name,
@@ -72,15 +71,15 @@ constructor(
keyguardInteractor.wakefulnessModel
.sample(
combine(
keyguardTransitionInteractor.finishedKeyguardState,
keyguardTransitionInteractor.startedKeyguardTransitionStep,
keyguardInteractor.isAodAvailable,
::Pair
),
::toTriple
)
.collect { (wakefulnessState, keyguardState, isAodAvailable) ->
.collect { (wakefulnessState, lastStartedStep, isAodAvailable) ->
if (
keyguardState == KeyguardState.GONE &&
lastStartedStep.to == KeyguardState.GONE &&
wakefulnessState.state == WakefulnessState.STARTING_TO_SLEEP
) {
keyguardTransitionRepository.startTransition(