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

Skip to content
Commit 7b4379f0 authored by Riddle Hsu's avatar Riddle Hsu
Browse files

Consider transient-hide tasks in waiting transitions

This restores the partial deletion in isTransientHide by [1].
That misunderstood the waiting transition has not been started yet.
But it is actually waiting to play.

Without considering the waiting transitions, it may hit:
1. Start recents (transition=R)
 Add task X to transient-hide
 BLASTSyncEngine.mActiveSyncs[0]=R

2. Start activity on X (transition=A)
 createAndStartCollecting
   > mWaitingTransitions.add(mCollectingTransition)
     (R is mCollectingTransition)
 BLASTSyncEngine.mActiveSyncs[1]=A
 Moves task X to front

3. (R) plays, pops (R) from mWaitingTransitions
4. (A) plays ~ finishes
5. (R) finishes and its finishTransaction sets Task X to invisible
-> Black screen because X is moved top

With considering the waiting transitions, the step 2 won't move
the task to front by checking isTransientHide in ActivityStarter
#startActivityInner. Then the end state is consistent with the
operation of recent transition: return to home.

[1]: I15c32fa4fa06f175e0cfd430dbc5ae806c599e52

Fix: 321102873
Test: TransitionTests#testTransientWithParallelLaunch
Change-Id: Icaa21a6be8a28bfa5369b954e645f72cd47c937c
parent 02b61abc
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment