Check resumed state of activity before skipping resuming

The activity may be paused state for pre-Q apps with 2
activities on different display. When touching the display
to switch focus, it relied on setFoucusedTask to be resumed.

Bug: 275508603
Test: MultiDisplayPolicyTests#testPreQTopProcessResumedDisplayMoved
Change-Id: Ic84aaa5f4cdaa818805452333b69052760ffd2a8
This commit is contained in:
Riddle Hsu
2023-03-31 14:24:08 +08:00
parent 5318b9dba8
commit d8e1d912cb

View File

@@ -100,6 +100,7 @@ import static com.android.server.wm.ActivityInterceptorCallback.MAINLINE_LAST_OR
import static com.android.server.wm.ActivityInterceptorCallback.SYSTEM_FIRST_ORDERED_ID;
import static com.android.server.wm.ActivityInterceptorCallback.SYSTEM_LAST_ORDERED_ID;
import static com.android.server.wm.ActivityRecord.State.PAUSING;
import static com.android.server.wm.ActivityRecord.State.RESUMED;
import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_ALL;
import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_ROOT_TASK;
import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_SWITCH;
@@ -2011,7 +2012,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
return;
}
if (r == mRootWindowContainer.getTopResumedActivity()) {
if (r.isState(RESUMED) && r == mRootWindowContainer.getTopResumedActivity()) {
setLastResumedActivityUncheckLocked(r, "setFocusedTask-alreadyTop");
return;
}