diff options
| author | 2024-07-17 17:10:48 +0000 | |
|---|---|---|
| committer | 2024-07-18 12:59:31 +0000 | |
| commit | f3d44cbe8372efeac2b828bea41eccb5d8f17583 (patch) | |
| tree | 8dbe32ec31217878dc4bce9e2aa3e02b767a0338 | |
| parent | 1d3f49a30b74afb701990f68dc68825ddf821ef4 (diff) | |
Remove bad AOD->OCCLUDED transition
If a race condition occurs, such as launching navigation
in maps then immediately hitting the power button,
AOD->GONE was getting canceled incorrectly for OCCLUDED,
even though the device is asleep.
Fixes: 348583197
Flag: EXEMPT bugfix
Test: manual - this is a bad race condition when the
occluded signal comes in from WM. Steps to repro are
in the bug
Change-Id: Ic85e16faeb7b00257e5e617528255c7f90b8ded6
2 files changed, 2 insertions, 29 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromAodTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromAodTransitionInteractor.kt index 893835a38c53..59ec87a74980 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromAodTransitionInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromAodTransitionInteractor.kt @@ -17,6 +17,7 @@ package com.android.systemui.keyguard.domain.interactor import android.animation.ValueAnimator +import android.util.Log import com.android.app.animation.Interpolators import com.android.app.tracing.coroutines.launch import com.android.systemui.dagger.SysUISingleton @@ -184,11 +185,7 @@ constructor( .filterRelevantKeyguardStateAnd { isOccluded -> isOccluded } .collect { if (!maybeHandleInsecurePowerGesture()) { - startTransitionTo( - toState = KeyguardState.OCCLUDED, - modeOnCanceled = TransitionModeOnCanceled.RESET, - ownerReason = "isOccluded = true", - ) + Log.i(TAG, "Ignoring change to isOccluded to prevent errant AOD->OCCLUDED") } } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionScenariosTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionScenariosTest.kt index fc3b35d637f7..a3959d2109c8 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionScenariosTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionScenariosTest.kt @@ -1574,30 +1574,6 @@ class KeyguardTransitionScenariosTest(flags: FlagsParameterization?) : SysuiTest } @Test - @BrokenWithSceneContainer(339465026) - fun aodToOccluded() = - testScope.runTest { - // GIVEN a prior transition has run to AOD - runTransitionAndSetWakefulness(KeyguardState.LOCKSCREEN, KeyguardState.AOD) - runCurrent() - - // WHEN the keyguard is occluded - keyguardRepository.setKeyguardOccluded(true) - runCurrent() - - // THEN a transition to OCCLUDED should occur - assertThat(transitionRepository) - .startedTransition( - ownerName = "FromAodTransitionInteractor(isOccluded = true)", - from = KeyguardState.AOD, - to = KeyguardState.OCCLUDED, - animatorAssertion = { it.isNotNull() }, - ) - - coroutineContext.cancelChildren() - } - - @Test @DisableSceneContainer fun aodToPrimaryBouncer() = testScope.runTest { |