Use latest surface of parent for finish transaction on failure
For example:
(1) A transition is playing.
Its finish transaction contains the restore operations.
(2) SystemUI died/crashed
(3) Update new surface for organized DisplayArea
DisplayAreaOrganizerController.DeathRecipient#binderDied
DisplayAreaOrganizerState#destroy
setOrganizer(null)
sendDisplayAreaVanished
migrateToNewSurfaceControl
(4) Update new surface for organized Task
TaskOrganizerController#DeathRecipient.binderDied
TaskOrganizerState#dispose
removeTask
migrateToNewSurfaceControl
(5) Cleanup playing transition
TransitionController.TransitionPlayerRecord#mDeath
unregisterTransitionPlayer
flushRunningTransitions
cleanUpOnFailure
mFinishTransaction.apply()
^ old surfaces were removed by (3) and (4).
Then the transition targets become off-screen.
Bug: 420956820
Flag: EXEMPT bugfix
Test: Enlarge transition animation scale to 5x.
Trigger a display transition (e.g. resize,rotate).
Kill SystemUI before the transition is finished.
After SystemUI restarted, the screen should not be blank.
Change-Id: I13441d0ffd366ac3eb20fc5983fc821f1d81a61d
Loading
Please register or sign in to comment