Allow finishing activity to transfer starting window
Assume an application launches multiple activities consecutively
in the same task, given as A, B, C. A is an opaque activity that
will start B and finish. B is a translucent activity that will
start C and finish.
The starting window of A won't transfer to B because B is translucent.
Then when C is looking for if there is existing starting window to
reuse, A has become finishing so the starting window won't involve in
transition. So there may be more than one transition.
Also
- Wrap startActivities with defer/continue layout to avoid
applying intermediate states.
- Move post cleanup of transferring starting window back so the
visibility can transfer before resetting because the from-activity
was visible by previous transferring.
That makes the case can have an atomic-like transition so even the last
activity uses overridePendingTransition which may be redundant, the
previous active transition will ignore its request and the animation
will look smoother.
Fixes: 156298440
Test: atest AppWindowTokenTests# \
testTransferStartingWindowFromFinishingActivity
Test: Use a sample app to simulate above steps. There should not
have black screen when animating the last activity.
Change-Id: I54b7aa58a46a2f55d505904caa300fd44abd4d41
Loading
Please register or sign in to comment