Merge "Remove activity from stopping activities once resumed." into oc-mr1-dev

This commit is contained in:
Bryce Lee
2017-08-29 17:13:58 +00:00
committed by Android (Google) Code Review
3 changed files with 25 additions and 0 deletions

View File

@@ -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);

View File

@@ -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));
}
}

View File

@@ -145,6 +145,10 @@ public class ActivityTestsBase {
protected ActivityStackSupervisor createStackSupervisor() {
return new TestActivityStackSupervisor(this, mHandlerThread.getLooper());
}
@Override
void updateUsageStats(ActivityRecord component, boolean resumed) {
}
}
/**