summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Android Build Merger (Role) <android-build-merger@google.com> 2017-08-29 17:39:47 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2017-08-29 17:39:47 +0000
commit38cdf114751c43e97cc44c48a4356964ad2cbe9d (patch)
treef7be69fab988eaf4cf21bf4b835dcb51aa735948
parent3ffd206bf58ce73169966a730b541fc5ed892012 (diff)
parent31ff78bc5ad6e68a42e267eb3f1727d035a92839 (diff)
Merge "Merge "Remove activity from stopping activities once resumed." into oc-mr1-dev am: 02584a23b3 am: a35cbafe23"
-rw-r--r--services/core/java/com/android/server/am/ActivityStackSupervisor.java3
-rw-r--r--services/tests/servicestests/src/com/android/server/am/ActivityStackSupervisorTests.java18
-rw-r--r--services/tests/servicestests/src/com/android/server/am/ActivityTestsBase.java4
3 files changed, 25 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
index 16591dab0c91..6ae07d4e6766 100644
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -3235,6 +3235,9 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D
}
boolean reportResumedActivityLocked(ActivityRecord r) {
+ // A resumed activity cannot be stopping. remove from list
+ mStoppingActivities.remove(r);
+
final ActivityStack stack = r.getStack();
if (isFocusedStack(stack)) {
mService.updateUsageStats(r, true);
diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityStackSupervisorTests.java b/services/tests/servicestests/src/com/android/server/am/ActivityStackSupervisorTests.java
index fc9ab9635c57..661dd4fc828c 100644
--- a/services/tests/servicestests/src/com/android/server/am/ActivityStackSupervisorTests.java
+++ b/services/tests/servicestests/src/com/android/server/am/ActivityStackSupervisorTests.java
@@ -21,6 +21,7 @@ import static android.app.ActivityManager.StackId.PINNED_STACK_ID;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertFalse;
import android.content.ComponentName;
import android.graphics.Rect;
@@ -117,4 +118,21 @@ public class ActivityStackSupervisorTests extends ActivityTestsBase {
assertTrue(stackTasks.contains(task));
}
}
+
+ /**
+ * Ensures that an activity is removed from the stopping activities list once it is resumed.
+ */
+ @Test
+ public void testStoppingActivityRemovedWhenResumed() throws Exception {
+ final ActivityManagerService service = createActivityManagerService();
+ final TaskRecord firstTask = createTask(service, testActivityComponent,
+ FULLSCREEN_WORKSPACE_STACK_ID);
+ final ActivityRecord firstActivity = createActivity(service, testActivityComponent,
+ firstTask);
+ service.mStackSupervisor.mStoppingActivities.add(firstActivity);
+
+ firstActivity.completeResumeLocked();
+
+ assertFalse(service.mStackSupervisor.mStoppingActivities.contains(firstActivity));
+ }
}
diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityTestsBase.java b/services/tests/servicestests/src/com/android/server/am/ActivityTestsBase.java
index 55a1c2a0e837..55ecd7ade878 100644
--- a/services/tests/servicestests/src/com/android/server/am/ActivityTestsBase.java
+++ b/services/tests/servicestests/src/com/android/server/am/ActivityTestsBase.java
@@ -145,6 +145,10 @@ public class ActivityTestsBase {
protected ActivityStackSupervisor createStackSupervisor() {
return new TestActivityStackSupervisor(this, mHandlerThread.getLooper());
}
+
+ @Override
+ void updateUsageStats(ActivityRecord component, boolean resumed) {
+ }
}
/**