Only clear shared starting data for starting window owner.
Issue symptom:
1. Start Activity A
2. A start Activity B, and both move to TaskFragment for AE.
3. Activity B start Activity C.
4. Activity C stopped before Activity A drawn. sharedStartingData being
removed due to C stopped.
5. Activity A report drawn, but it is unable to remove starting window.
The activity B should not clear mSharedStartingData, unless it is the
owner of startingData.
Bug: 330478990
Test: follow issue description.
Change-Id: I66e3d271c41019b4243ceda30ee0d9fe549335b0
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
index 2d2a88a86..deaec3d7 100644
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
@@ -2975,7 +2975,7 @@
void removeStartingWindowAnimation(boolean prepareAnimation) {
mTransferringSplashScreenState = TRANSFER_SPLASH_SCREEN_IDLE;
- if (task != null) {
+ if (mStartingData != null && task != null) {
task.mSharedStartingData = null;
}
if (mStartingWindow == null) {