Fixes start new showWhenLocked activity will stuck on DreamActivity.
1. Update the isTopNonPinnedStack when check visibility for next
activity, otherwise even when DreamActivity is finishing but still on
top, there would still though next activity is not top non-pinned
stack.
2. If we start next activity while isDreaming, we will set
launchTaskBehind for the next activity, which will cause the new
activity stay in unknown apps because client will go through onStart ->
onResume -> onPaused directly, in this case ATMS will receive relayout
before activityResumed. To prevent the app transition hanging there, go
to waiting for relayout directly if we know that activity was set
launchTaskBehind.
Bug: 162190413
Test: atest PinnedStackTests ActivityLifecyclePipTests
Test: atest UnknownAppVisibilityControllerTest
Test: Set crediential and alarm, enable dream, wait to see that alarm
activity should unlock DreamActivity before transition timeout.
Change-Id: I8ef5c5e0424c925fdaccda6baff496302a0ff3ba
4 files changed