summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Hongwei Wang <hwwang@google.com> 2020-05-05 20:30:26 -0700
committer Hongwei Wang <hwwang@google.com> 2020-05-07 14:52:21 -0700
commit290ef34cb0d9e91e29b2e21cae69786997a3bd57 (patch)
treec59f176a89a13f025d508bf0ad499eca3192e7c3
parent4775628df9718759439674afa380d4276b0dfab2 (diff)
Fixes testResumedWhenRecreatedFromInNonFocusedStack
If the activity is in stopping or stopped state, for instance, it's in split screen task and not the top one, the last configuration it should keep is the one before multi-window mode change. Bug: 155691588 Test: atest --iteration 5 ActivityLifecycleSplitScreenTests Change-Id: I95e469798fe67ff75abef33b5e515a09c7e4731c
-rw-r--r--services/core/java/com/android/server/wm/ActivityRecord.java10
1 files changed, 8 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
index e08bfd55011f..ad806c2bcae7 100644
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
@@ -1160,8 +1160,14 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
} else {
mLastReportedMultiWindowMode = inMultiWindowMode;
computeConfigurationAfterMultiWindowModeChange();
- ensureActivityConfiguration(0 /* globalChanges */, PRESERVE_WINDOWS,
- true /* ignoreVisibility */);
+ // If the activity is in stopping or stopped state, for instance, it's in the
+ // split screen task and not the top one, the last configuration it should keep
+ // is the one before multi-window mode change.
+ final ActivityState state = getState();
+ if (state != STOPPED && state != STOPPING) {
+ ensureActivityConfiguration(0 /* globalChanges */, PRESERVE_WINDOWS,
+ true /* ignoreVisibility */);
+ }
}
}
}