summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Bryce Lee <brycelee@google.com> 2017-08-29 17:13:58 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2017-08-29 17:13:58 +0000
commit02584a23b36f10f14dc1d3d188c0be942cd7e3dd (patch)
tree862ee62ae6ff27d0ed1d74dc644aa7391d049f06
parenta7e34096af429a6eb22b970c607273763a117e82 (diff)
parent29a649da5f8097efdb28d6982edbe43091eda44f (diff)
Merge "Remove activity from stopping activities once resumed." into oc-mr1-dev
-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 d2fa538f7bdc..54bb526b745b 100644
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -3302,6 +3302,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 4ad92c7ec14e..c03a95789be4 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) {
+ }
}
/**