diff options
| author | 2025-01-14 18:29:49 -0500 | |
|---|---|---|
| committer | 2025-01-15 09:56:03 -0500 | |
| commit | 886b887a850c2090b983eea0171f3a873a96e2ad (patch) | |
| tree | 9697fc14dcd20540d0c97d4ff8778ad9d3e70daf /libs/androidfw/Util.cpp | |
| parent | 7beb61d1a1de63c9ebd22a6da8d355c33899ec4f (diff) | |
Directly startTransition in KeyguardDismissTransitionInteractor.
Logs from some flaky presubmit runs showed that in some race conditions, the keyguard dismiss interactor would ask a specific From*TransitionInteractor to start a transition, but by the time it ran the coroutine that calls startTransitionTo, a transition to another state has started. The dismiss transition is then ignored, because the from state is invalid.
With the new approach, a coroutine is launched which then starts a transition from whatever state we're now currently in to GONE.
We also accept a callback to call if, by the time the coroutine runs, we're already GONE. This allows us to end the animation instead of waiting for it to time out. This should be safe, since worst case, if this callback is called erroneously due to another race condition, the remote animation will just short-circuit and end.
Bug: 278086361
Flag: com.android.systemui.keyguard_wm_state_refactor
Test: atest KeyguardTests
Test: abtd de-flake, manually
Change-Id: I286496295c9364c2a5c42e0f0efc386c0eee3383
Diffstat (limited to 'libs/androidfw/Util.cpp')
0 files changed, 0 insertions, 0 deletions