-
- Downloads
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
Showing
- services/core/java/com/android/server/wm/ActivityRecord.java 3 additions, 2 deletionsservices/core/java/com/android/server/wm/ActivityRecord.java
- services/core/java/com/android/server/wm/ActivityStack.java 1 addition, 1 deletionservices/core/java/com/android/server/wm/ActivityStack.java
- services/core/java/com/android/server/wm/ActivityStartController.java 24 additions, 19 deletions...e/java/com/android/server/wm/ActivityStartController.java
- services/core/java/com/android/server/wm/Task.java 2 additions, 2 deletionsservices/core/java/com/android/server/wm/Task.java
- services/tests/wmtests/src/com/android/server/wm/AppWindowTokenTests.java 42 additions, 0 deletions...mtests/src/com/android/server/wm/AppWindowTokenTests.java
Loading
Please register or sign in to comment