Merge "Fix to recognize FINISHING state as paused completed" into rvc-dev am: c049fb4189
Change-Id: I040517eb967b0c3345e6ba9a46c1b5ba2c6f568a
This commit is contained in:
@@ -42,6 +42,7 @@ import static android.view.WindowManager.TRANSIT_SHOW_SINGLE_TASK_DISPLAY;
|
|||||||
|
|
||||||
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_LAYOUT;
|
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_LAYOUT;
|
||||||
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
|
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
|
||||||
|
import static com.android.server.wm.ActivityStack.ActivityState.FINISHING;
|
||||||
import static com.android.server.wm.ActivityStack.ActivityState.PAUSED;
|
import static com.android.server.wm.ActivityStack.ActivityState.PAUSED;
|
||||||
import static com.android.server.wm.ActivityStack.ActivityState.RESUMED;
|
import static com.android.server.wm.ActivityStack.ActivityState.RESUMED;
|
||||||
import static com.android.server.wm.ActivityStack.ActivityState.STOPPED;
|
import static com.android.server.wm.ActivityStack.ActivityState.STOPPED;
|
||||||
@@ -3324,7 +3325,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
|
|||||||
for (int sNdx = taskDisplayArea.getStackCount() - 1; sNdx >= 0; --sNdx) {
|
for (int sNdx = taskDisplayArea.getStackCount() - 1; sNdx >= 0; --sNdx) {
|
||||||
final ActivityStack stack = taskDisplayArea.getStackAt(sNdx);
|
final ActivityStack stack = taskDisplayArea.getStackAt(sNdx);
|
||||||
final ActivityRecord r = stack.mPausingActivity;
|
final ActivityRecord r = stack.mPausingActivity;
|
||||||
if (r != null && !r.isState(PAUSED, STOPPED, STOPPING)) {
|
if (r != null && !r.isState(PAUSED, STOPPED, STOPPING, FINISHING)) {
|
||||||
if (DEBUG_STATES) {
|
if (DEBUG_STATES) {
|
||||||
Slog.d(TAG_STATES, "allPausedActivitiesComplete: r=" + r
|
Slog.d(TAG_STATES, "allPausedActivitiesComplete: r=" + r
|
||||||
+ " state=" + r.getState());
|
+ " state=" + r.getState());
|
||||||
|
|||||||
@@ -16,12 +16,23 @@
|
|||||||
|
|
||||||
package com.android.server.wm;
|
package com.android.server.wm;
|
||||||
|
|
||||||
|
import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
|
||||||
|
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
|
||||||
|
import static android.view.Display.DEFAULT_DISPLAY;
|
||||||
import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
|
import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
|
||||||
import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING;
|
import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING;
|
||||||
import static android.view.WindowManager.LayoutParams.TYPE_NOTIFICATION_SHADE;
|
import static android.view.WindowManager.LayoutParams.TYPE_NOTIFICATION_SHADE;
|
||||||
import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR;
|
import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR;
|
||||||
import static android.view.WindowManager.LayoutParams.TYPE_TOAST;
|
import static android.view.WindowManager.LayoutParams.TYPE_TOAST;
|
||||||
|
|
||||||
|
import static com.android.server.wm.ActivityStack.ActivityState.FINISHING;
|
||||||
|
import static com.android.server.wm.ActivityStack.ActivityState.PAUSED;
|
||||||
|
import static com.android.server.wm.ActivityStack.ActivityState.PAUSING;
|
||||||
|
import static com.android.server.wm.ActivityStack.ActivityState.STOPPED;
|
||||||
|
import static com.android.server.wm.ActivityStack.ActivityState.STOPPING;
|
||||||
|
|
||||||
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
@@ -133,5 +144,30 @@ public class RootWindowContainerTests extends WindowTestsBase {
|
|||||||
assertEquals(activity, mWm.mRoot.findActivity(activity.intent, activity.info,
|
assertEquals(activity, mWm.mRoot.findActivity(activity.intent, activity.info,
|
||||||
false /* compareIntentFilters */));
|
false /* compareIntentFilters */));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testAllPausedActivitiesComplete() {
|
||||||
|
DisplayContent displayContent = mWm.mRoot.getDisplayContent(DEFAULT_DISPLAY);
|
||||||
|
TaskDisplayArea taskDisplayArea = displayContent.getTaskDisplayAreaAt(0);
|
||||||
|
ActivityStack stack = taskDisplayArea.getStackAt(0);
|
||||||
|
ActivityRecord activity = createActivityRecord(displayContent,
|
||||||
|
WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
|
||||||
|
stack.mPausingActivity = activity;
|
||||||
|
|
||||||
|
activity.setState(PAUSING, "test PAUSING");
|
||||||
|
assertThat(mWm.mRoot.allPausedActivitiesComplete()).isFalse();
|
||||||
|
|
||||||
|
activity.setState(PAUSED, "test PAUSED");
|
||||||
|
assertThat(mWm.mRoot.allPausedActivitiesComplete()).isTrue();
|
||||||
|
|
||||||
|
activity.setState(STOPPED, "test STOPPED");
|
||||||
|
assertThat(mWm.mRoot.allPausedActivitiesComplete()).isTrue();
|
||||||
|
|
||||||
|
activity.setState(STOPPING, "test STOPPING");
|
||||||
|
assertThat(mWm.mRoot.allPausedActivitiesComplete()).isTrue();
|
||||||
|
|
||||||
|
activity.setState(FINISHING, "test FINISHING");
|
||||||
|
assertThat(mWm.mRoot.allPausedActivitiesComplete()).isTrue();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user