From 368d86e6e7cf3432568e43347e8f4f00b244dd10 Mon Sep 17 00:00:00 2001 From: Louis Chang Date: Tue, 20 Oct 2020 10:40:50 +0800 Subject: [PATCH] Skip notifying configuration changed for restarting activities Relaunching clients or scheduling configuration changes events were not necessary since the activity is currently being started. Bug: 170134300 Test: restart activity after process restarted and config changed Change-Id: I1072c951d1db91bb6c41d6f19fd5dad4f674f089 --- .../java/android/app/servertransaction/ClientTransaction.java | 2 ++ .../com/android/server/wm/ActivityTaskManagerService.java | 4 +++- services/core/java/com/android/server/wm/DisplayContent.java | 4 +++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/core/java/android/app/servertransaction/ClientTransaction.java b/core/java/android/app/servertransaction/ClientTransaction.java index 90890d58aaffb..fbb37db52014a 100644 --- a/core/java/android/app/servertransaction/ClientTransaction.java +++ b/core/java/android/app/servertransaction/ClientTransaction.java @@ -241,6 +241,8 @@ public class ClientTransaction implements Parcelable, ObjectPoolItem { int result = 17; result = 31 * result + Objects.hashCode(mActivityCallbacks); result = 31 * result + Objects.hashCode(mLifecycleStateRequest); + result = 31 * result + Objects.hashCode(mClient); + result = 31 * result + Objects.hashCode(mActivityToken); return result; } diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java index 99b017f0277f7..327f7900d454a 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java @@ -5136,7 +5136,9 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { deferResume); } - kept = ensureConfigAndVisibilityAfterUpdate(starting, changes); + if (!deferResume) { + kept = ensureConfigAndVisibilityAfterUpdate(starting, changes); + } } finally { continueWindowLayout(); } diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index 4a30ca96abb6f..35b1b5d0c1f80 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -5077,7 +5077,9 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp } } - kept = mAtmService.ensureConfigAndVisibilityAfterUpdate(starting, changes); + if (!deferResume) { + kept = mAtmService.ensureConfigAndVisibilityAfterUpdate(starting, changes); + } } finally { mAtmService.continueWindowLayout(); }