summaryrefslogtreecommitdiff
path: root/libs/WindowManager
diff options
context:
space:
mode:
author Louis Chang <louischang@google.com> 2022-06-20 09:05:51 +0000
committer Louis Chang <louischang@google.com> 2022-06-21 09:19:05 +0000
commitb6297b6a46a4bb7498e0bb4ccccfc57c3f2dc22f (patch)
treef3154b417f8e39816a46edf2013183e068d3ebc7 /libs/WindowManager
parent1c6de844ce343d0e519277f896c13cb9aea2cc0e (diff)
Do nothing when a finishing Activity configuration changed
Primary Activity and secondary Activity were both finished while starting another Activity with FLAG_ACTIVITY_CLEAR_TASK flag. The secondary container was then removed and the primary container was resized to fullscreen while the organizer gets the secondary TaskFragment info-changed event. And the primary container was removed by primary TaskFragment info-changed event afterward. Since the primary Activity was resized before completely being destroyed. The organizer got an onActivityConfigurationChanged c allback and resulted in another placeholder activity being launched. Bug: 236272623 Test: making Duo calls Change-Id: I851828f739a4937725510d99cbdfae9ed212a023
Diffstat (limited to 'libs/WindowManager')
-rw-r--r--libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java
index 0ed23cb9ba6d..8ffe0c12f8ca 100644
--- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java
+++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java
@@ -642,6 +642,11 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen
}
private void onActivityConfigurationChanged(@NonNull Activity activity) {
+ if (activity.isFinishing()) {
+ // Do nothing if the activity is currently finishing.
+ return;
+ }
+
if (isInPictureInPicture(activity)) {
// We don't embed activity when it is in PIP.
return;
@@ -1115,6 +1120,10 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen
}
boolean launchPlaceholderIfNecessary(@NonNull Activity activity, boolean isOnCreated) {
+ if (activity.isFinishing()) {
+ return false;
+ }
+
final TaskFragmentContainer container = getContainerWithActivity(activity);
// Don't launch placeholder if the container is occluded.
if (container != null && container != getTopActiveContainer(container.getTaskId())) {