Merge "Migrate resuming/pausing activity to TaskFragment" into sc-v2-dev am: 3b0a062f7a
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14775350 Change-Id: I2cc8c8a56b4ac0064e208d2a1280e8bc280b0581
This commit is contained in:
@@ -103,6 +103,12 @@
|
||||
"group": "WM_DEBUG_REMOTE_ANIMATIONS",
|
||||
"at": "com\/android\/server\/wm\/RemoteAnimationController.java"
|
||||
},
|
||||
"-2010331310": {
|
||||
"message": "resumeTopActivity: Top activity resumed (dontWaitForPause) %s",
|
||||
"level": "DEBUG",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/TaskFragment.java"
|
||||
},
|
||||
"-2006946193": {
|
||||
"message": "setClientVisible: %s clientVisible=%b Callers=%s",
|
||||
"level": "VERBOSE",
|
||||
@@ -211,6 +217,12 @@
|
||||
"group": "WM_DEBUG_WINDOW_ORGANIZER",
|
||||
"at": "com\/android\/server\/wm\/TaskOrganizerController.java"
|
||||
},
|
||||
"-1886145147": {
|
||||
"message": "resumeTopActivity: Going to sleep and all paused",
|
||||
"level": "DEBUG",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/TaskFragment.java"
|
||||
},
|
||||
"-1884933373": {
|
||||
"message": "enableScreenAfterBoot: mDisplayEnabled=%b mForceDisplayEnabled=%b mShowingBootMessages=%b mSystemBooted=%b. %s",
|
||||
"level": "INFO",
|
||||
@@ -247,12 +259,6 @@
|
||||
"group": "WM_DEBUG_APP_TRANSITIONS_ANIM",
|
||||
"at": "com\/android\/server\/wm\/AppTransition.java"
|
||||
},
|
||||
"-1861864501": {
|
||||
"message": "resumeTopActivityLocked: Going to sleep and all paused",
|
||||
"level": "DEBUG",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
},
|
||||
"-1844540996": {
|
||||
"message": " Initial targets: %s",
|
||||
"level": "VERBOSE",
|
||||
@@ -325,12 +331,6 @@
|
||||
"group": "WM_DEBUG_RECENTS_ANIMATIONS",
|
||||
"at": "com\/android\/server\/wm\/RecentsAnimationController.java"
|
||||
},
|
||||
"-1768090656": {
|
||||
"message": "Re-launching after pause: %s",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
},
|
||||
"-1750384749": {
|
||||
"message": "Launch on display check: allow launch on public display",
|
||||
"level": "DEBUG",
|
||||
@@ -415,12 +415,6 @@
|
||||
"group": "WM_ERROR",
|
||||
"at": "com\/android\/server\/wm\/WindowManagerService.java"
|
||||
},
|
||||
"-1655805455": {
|
||||
"message": "Enqueue pending stop if needed: %s wasStopping=%b visibleRequested=%b",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
},
|
||||
"-1647332198": {
|
||||
"message": "remove RecentTask %s when finishing user %d",
|
||||
"level": "INFO",
|
||||
@@ -433,6 +427,12 @@
|
||||
"group": "WM_DEBUG_ADD_REMOVE",
|
||||
"at": "com\/android\/server\/wm\/ResetTargetTaskHelper.java"
|
||||
},
|
||||
"-1633115609": {
|
||||
"message": "Key dispatch not paused for screen off",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/TaskFragment.java"
|
||||
},
|
||||
"-1632122349": {
|
||||
"message": "Changing surface while display frozen: %s",
|
||||
"level": "VERBOSE",
|
||||
@@ -487,6 +487,12 @@
|
||||
"group": "WM_DEBUG_WINDOW_TRANSITIONS",
|
||||
"at": "com\/android\/server\/wm\/Transition.java"
|
||||
},
|
||||
"-1564228464": {
|
||||
"message": "App died while pausing: %s",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/TaskFragment.java"
|
||||
},
|
||||
"-1559645910": {
|
||||
"message": "Looking for task of type=%s, taskAffinity=%s, intent=%s, info=%s, preferredTDA=%s",
|
||||
"level": "DEBUG",
|
||||
@@ -565,12 +571,6 @@
|
||||
"group": "WM_DEBUG_CONFIGURATION",
|
||||
"at": "com\/android\/server\/wm\/ActivityStarter.java"
|
||||
},
|
||||
"-1492696222": {
|
||||
"message": "App died during pause, not stopping: %s",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
},
|
||||
"-1480772131": {
|
||||
"message": "No app or window is requesting an orientation, return %d for display id=%d",
|
||||
"level": "VERBOSE",
|
||||
@@ -637,12 +637,24 @@
|
||||
"group": "WM_DEBUG_ADD_REMOVE",
|
||||
"at": "com\/android\/server\/wm\/WindowManagerService.java"
|
||||
},
|
||||
"-1421296808": {
|
||||
"message": "Moving to RESUMED: %s (in existing)",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/TaskFragment.java"
|
||||
},
|
||||
"-1419762046": {
|
||||
"message": "moveRootTaskToDisplay: moving taskId=%d to displayId=%d",
|
||||
"level": "DEBUG",
|
||||
"group": "WM_DEBUG_TASKS",
|
||||
"at": "com\/android\/server\/wm\/ActivityTaskManagerService.java"
|
||||
},
|
||||
"-1419461256": {
|
||||
"message": "resumeTopActivity: Resumed %s",
|
||||
"level": "DEBUG",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/TaskFragment.java"
|
||||
},
|
||||
"-1413901262": {
|
||||
"message": "startRecentsActivity(): intent=%s",
|
||||
"level": "DEBUG",
|
||||
@@ -805,6 +817,12 @@
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/ActivityRecord.java"
|
||||
},
|
||||
"-1187377055": {
|
||||
"message": "Enqueue pending stop if needed: %s wasStopping=%b visibleRequested=%b",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/TaskFragment.java"
|
||||
},
|
||||
"-1176488860": {
|
||||
"message": "SURFACE isSecure=%b: %s",
|
||||
"level": "INFO",
|
||||
@@ -919,12 +937,6 @@
|
||||
"group": "WM_DEBUG_RECENTS_ANIMATIONS",
|
||||
"at": "com\/android\/server\/wm\/RecentsAnimation.java"
|
||||
},
|
||||
"-1066383762": {
|
||||
"message": "Sleep still waiting to pause %s",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
},
|
||||
"-1060365734": {
|
||||
"message": "Attempted to add QS dialog window with bad token %s. Aborting.",
|
||||
"level": "WARN",
|
||||
@@ -979,6 +991,12 @@
|
||||
"group": "WM_DEBUG_STARTING_WINDOW",
|
||||
"at": "com\/android\/server\/wm\/WindowState.java"
|
||||
},
|
||||
"-957060823": {
|
||||
"message": "Moving to PAUSING: %s",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/TaskFragment.java"
|
||||
},
|
||||
"-951939129": {
|
||||
"message": "Unregister task organizer=%s uid=%d",
|
||||
"level": "VERBOSE",
|
||||
@@ -1231,12 +1249,6 @@
|
||||
"group": "WM_DEBUG_WINDOW_TRANSITIONS",
|
||||
"at": "com\/android\/server\/wm\/Transition.java"
|
||||
},
|
||||
"-672228342": {
|
||||
"message": "resumeTopActivityLocked: Top activity resumed %s",
|
||||
"level": "DEBUG",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
},
|
||||
"-668956537": {
|
||||
"message": " THUMBNAIL %s: CREATE",
|
||||
"level": "INFO",
|
||||
@@ -1261,11 +1273,11 @@
|
||||
"group": "WM_DEBUG_REMOTE_ANIMATIONS",
|
||||
"at": "com\/android\/server\/wm\/RemoteAnimationController.java"
|
||||
},
|
||||
"-650261962": {
|
||||
"message": "Sleep needs to pause %s",
|
||||
"-648891906": {
|
||||
"message": "Activity not running or entered PiP, resuming next.",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
"at": "com\/android\/server\/wm\/TaskFragment.java"
|
||||
},
|
||||
"-641258376": {
|
||||
"message": "realStartActivityLocked: Skipping start of r=%s some activities pausing...",
|
||||
@@ -1303,12 +1315,6 @@
|
||||
"group": "WM_DEBUG_BOOT",
|
||||
"at": "com\/android\/server\/wm\/WindowManagerService.java"
|
||||
},
|
||||
"-606328116": {
|
||||
"message": "resumeTopActivityLocked: Top activity resumed (dontWaitForPause) %s",
|
||||
"level": "DEBUG",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
},
|
||||
"-597091183": {
|
||||
"message": "Delete TaskDisplayArea uid=%d",
|
||||
"level": "VERBOSE",
|
||||
@@ -1369,23 +1375,17 @@
|
||||
"group": "WM_SHOW_TRANSACTIONS",
|
||||
"at": "com\/android\/server\/wm\/WindowAnimator.java"
|
||||
},
|
||||
"-533690126": {
|
||||
"message": "resumeTopActivityLocked: Resumed %s",
|
||||
"level": "DEBUG",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
},
|
||||
"-532081937": {
|
||||
"message": " Commit activity becoming invisible: %s",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_WINDOW_TRANSITIONS",
|
||||
"at": "com\/android\/server\/wm\/Transition.java"
|
||||
},
|
||||
"-527683022": {
|
||||
"message": "resumeTopActivityLocked: Skip resume: some activity pausing.",
|
||||
"-521613870": {
|
||||
"message": "App died during pause, not stopping: %s",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
"at": "com\/android\/server\/wm\/TaskFragment.java"
|
||||
},
|
||||
"-519504830": {
|
||||
"message": "applyAnimation: anim=%s nextAppTransition=ANIM_CUSTOM transit=%s isEntrance=%b Callers=%s",
|
||||
@@ -1471,18 +1471,6 @@
|
||||
"group": "WM_DEBUG_ORIENTATION",
|
||||
"at": "com\/android\/server\/wm\/DisplayRotation.java"
|
||||
},
|
||||
"-427457280": {
|
||||
"message": "App died while pausing: %s",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
},
|
||||
"-417514857": {
|
||||
"message": "Key dispatch not paused for screen off",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
},
|
||||
"-415865166": {
|
||||
"message": "findFocusedWindow: Found new focus @ %s",
|
||||
"level": "VERBOSE",
|
||||
@@ -1591,11 +1579,17 @@
|
||||
"group": "WM_DEBUG_LOCKTASK",
|
||||
"at": "com\/android\/server\/wm\/LockTaskController.java"
|
||||
},
|
||||
"-303497363": {
|
||||
"message": "reparent: moving activity=%s to task=%d at %d",
|
||||
"-312353598": {
|
||||
"message": "Executing finish of activity: %s",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/TaskFragment.java"
|
||||
},
|
||||
"-310337305": {
|
||||
"message": "Activity config changed during resume: %s, new next: %s",
|
||||
"level": "INFO",
|
||||
"group": "WM_DEBUG_ADD_REMOVE",
|
||||
"at": "com\/android\/server\/wm\/ActivityRecord.java"
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/TaskFragment.java"
|
||||
},
|
||||
"-302468788": {
|
||||
"message": "Expected target rootTask=%s to be top most but found rootTask=%s",
|
||||
@@ -1615,12 +1609,6 @@
|
||||
"group": "WM_ERROR",
|
||||
"at": "com\/android\/server\/wm\/WindowManagerService.java"
|
||||
},
|
||||
"-279436615": {
|
||||
"message": "Moving to PAUSING: %s",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
},
|
||||
"-262984451": {
|
||||
"message": "Relaunch failed %s",
|
||||
"level": "INFO",
|
||||
@@ -1645,12 +1633,6 @@
|
||||
"group": "WM_DEBUG_CONFIGURATION",
|
||||
"at": "com\/android\/server\/wm\/ActivityRecord.java"
|
||||
},
|
||||
"-234244777": {
|
||||
"message": "Activity config changed during resume: %s, new next: %s",
|
||||
"level": "INFO",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
},
|
||||
"-230587670": {
|
||||
"message": "SyncGroup %d: Unfinished container: %s",
|
||||
"level": "VERBOSE",
|
||||
@@ -1717,12 +1699,6 @@
|
||||
"group": "WM_DEBUG_STARTING_WINDOW",
|
||||
"at": "com\/android\/server\/wm\/ActivityRecord.java"
|
||||
},
|
||||
"-118786523": {
|
||||
"message": "Resume failed; resetting state to %s: %s",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
},
|
||||
"-116086365": {
|
||||
"message": "******************** ENABLING SCREEN!",
|
||||
"level": "INFO",
|
||||
@@ -1771,6 +1747,12 @@
|
||||
"group": "WM_SHOW_TRANSACTIONS",
|
||||
"at": "com\/android\/server\/wm\/Session.java"
|
||||
},
|
||||
"-80004683": {
|
||||
"message": "Resume failed; resetting state to %s: %s",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/TaskFragment.java"
|
||||
},
|
||||
"-50336993": {
|
||||
"message": "moveFocusableActivityToTop: activity=%s",
|
||||
"level": "DEBUG",
|
||||
@@ -1903,12 +1885,6 @@
|
||||
"group": "WM_ERROR",
|
||||
"at": "com\/android\/server\/wm\/WindowContextListenerController.java"
|
||||
},
|
||||
"94402792": {
|
||||
"message": "Moving to RESUMED: %s (in existing)",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
},
|
||||
"95216706": {
|
||||
"message": "hideIme target: %s ",
|
||||
"level": "DEBUG",
|
||||
@@ -1927,6 +1903,12 @@
|
||||
"group": "WM_DEBUG_APP_TRANSITIONS",
|
||||
"at": "com\/android\/server\/wm\/AppTransitionController.java"
|
||||
},
|
||||
"102618780": {
|
||||
"message": "resumeTopActivity: Pausing %s",
|
||||
"level": "DEBUG",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/TaskFragment.java"
|
||||
},
|
||||
"108170907": {
|
||||
"message": "Add starting %s: startingData=%s",
|
||||
"level": "VERBOSE",
|
||||
@@ -2167,6 +2149,18 @@
|
||||
"group": "WM_ERROR",
|
||||
"at": "com\/android\/server\/wm\/WindowManagerService.java"
|
||||
},
|
||||
"327461496": {
|
||||
"message": "Complete pause: %s",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/TaskFragment.java"
|
||||
},
|
||||
"341055768": {
|
||||
"message": "resumeTopActivity: Skip resume: need to start pausing",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/TaskFragment.java"
|
||||
},
|
||||
"342460966": {
|
||||
"message": "DRAG %s: pos=(%d,%d)",
|
||||
"level": "INFO",
|
||||
@@ -2221,11 +2215,11 @@
|
||||
"group": "WM_DEBUG_BOOT",
|
||||
"at": "com\/android\/server\/wm\/WindowManagerService.java"
|
||||
},
|
||||
"391189028": {
|
||||
"message": "pauseBackTasks: task=%s mResumedActivity=%s",
|
||||
"level": "DEBUG",
|
||||
"378825104": {
|
||||
"message": "Enqueueing pending pause: %s",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/TaskDisplayArea.java"
|
||||
"at": "com\/android\/server\/wm\/TaskFragment.java"
|
||||
},
|
||||
"397105698": {
|
||||
"message": "grantEmbeddedWindowFocus remove request for win=%s dropped since no candidate was found",
|
||||
@@ -2359,6 +2353,12 @@
|
||||
"group": "WM_SHOW_TRANSACTIONS",
|
||||
"at": "com\/android\/server\/wm\/WindowSurfaceController.java"
|
||||
},
|
||||
"573582981": {
|
||||
"message": "reparent: moving activity=%s to new task fragment in task=%d at %d",
|
||||
"level": "INFO",
|
||||
"group": "WM_DEBUG_ADD_REMOVE",
|
||||
"at": "com\/android\/server\/wm\/ActivityRecord.java"
|
||||
},
|
||||
"579298675": {
|
||||
"message": "Moving to DESTROYED: %s (removed from history)",
|
||||
"level": "VERBOSE",
|
||||
@@ -2461,6 +2461,12 @@
|
||||
"group": "WM_ERROR",
|
||||
"at": "com\/android\/server\/wm\/WindowManagerService.java"
|
||||
},
|
||||
"660908897": {
|
||||
"message": "Auto-PIP allowed, entering PIP mode directly: %s",
|
||||
"level": "DEBUG",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/TaskFragment.java"
|
||||
},
|
||||
"662572728": {
|
||||
"message": "Attempted to add a toast window with bad token %s. Aborting.",
|
||||
"level": "WARN",
|
||||
@@ -2479,12 +2485,24 @@
|
||||
"group": "WM_ERROR",
|
||||
"at": "com\/android\/server\/wm\/WindowManagerService.java"
|
||||
},
|
||||
"669361121": {
|
||||
"message": "Sleep still need to stop %d activities",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/TaskFragment.java"
|
||||
},
|
||||
"674932310": {
|
||||
"message": "Setting Intent of %s to target %s",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_TASKS",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
},
|
||||
"675705156": {
|
||||
"message": "resumeTopActivity: Top activity resumed %s",
|
||||
"level": "DEBUG",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/TaskFragment.java"
|
||||
},
|
||||
"685047360": {
|
||||
"message": "Resizing window %s",
|
||||
"level": "VERBOSE",
|
||||
@@ -2515,12 +2533,6 @@
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/ActivityTaskSupervisor.java"
|
||||
},
|
||||
"709500946": {
|
||||
"message": "resumeTopActivityLocked: Skip resume: need to start pausing",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
},
|
||||
"715749922": {
|
||||
"message": "Allowlisting %d:%s",
|
||||
"level": "WARN",
|
||||
@@ -2623,12 +2635,6 @@
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/RootWindowContainer.java"
|
||||
},
|
||||
"897964776": {
|
||||
"message": "Complete pause: %s",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
},
|
||||
"898863925": {
|
||||
"message": "Attempted to add QS dialog window with unknown token %s. Aborting.",
|
||||
"level": "WARN",
|
||||
@@ -2653,6 +2659,12 @@
|
||||
"group": "WM_DEBUG_ORIENTATION",
|
||||
"at": "com\/android\/server\/wm\/WindowStateAnimator.java"
|
||||
},
|
||||
"935418348": {
|
||||
"message": "resumeTopActivity: Skip resume: some activity pausing.",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/TaskFragment.java"
|
||||
},
|
||||
"950074526": {
|
||||
"message": "setLockTaskMode: Can't lock due to auth",
|
||||
"level": "WARN",
|
||||
@@ -2701,11 +2713,11 @@
|
||||
"group": "WM_DEBUG_TASKS",
|
||||
"at": "com\/android\/server\/wm\/ActivityTaskSupervisor.java"
|
||||
},
|
||||
"988389910": {
|
||||
"message": "resumeTopActivityLocked: Pausing %s",
|
||||
"level": "DEBUG",
|
||||
"987903142": {
|
||||
"message": "Sleep needs to pause %s",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
"at": "com\/android\/server\/wm\/TaskFragment.java"
|
||||
},
|
||||
"996960396": {
|
||||
"message": "Starting Transition %d",
|
||||
@@ -2713,18 +2725,18 @@
|
||||
"group": "WM_DEBUG_WINDOW_TRANSITIONS",
|
||||
"at": "com\/android\/server\/wm\/Transition.java"
|
||||
},
|
||||
"1001509841": {
|
||||
"message": "Auto-PIP allowed, entering PIP mode directly: %s",
|
||||
"level": "DEBUG",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
},
|
||||
"1001904964": {
|
||||
"message": "***** BOOT TIMEOUT: forcing display enabled",
|
||||
"level": "WARN",
|
||||
"group": "WM_ERROR",
|
||||
"at": "com\/android\/server\/wm\/WindowManagerService.java"
|
||||
},
|
||||
"1011462000": {
|
||||
"message": "Re-launching after pause: %s",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/TaskFragment.java"
|
||||
},
|
||||
"1023413388": {
|
||||
"message": "Finish waiting for pause of: %s",
|
||||
"level": "VERBOSE",
|
||||
@@ -3157,12 +3169,6 @@
|
||||
"group": "WM_DEBUG_APP_TRANSITIONS_ANIM",
|
||||
"at": "com\/android\/server\/wm\/WindowContainer.java"
|
||||
},
|
||||
"1585450696": {
|
||||
"message": "resumeTopActivityLocked: Restarting %s",
|
||||
"level": "DEBUG",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
},
|
||||
"1589610525": {
|
||||
"message": "applyAnimation NEXT_TRANSIT_TYPE_OPEN_CROSS_PROFILE_APPS: anim=%s transit=%s isEntrance=true Callers=%s",
|
||||
"level": "VERBOSE",
|
||||
@@ -3337,6 +3343,12 @@
|
||||
"group": "WM_DEBUG_APP_TRANSITIONS",
|
||||
"at": "com\/android\/server\/wm\/ActivityRecord.java"
|
||||
},
|
||||
"1814259538": {
|
||||
"message": "pauseBackTasks: taskFrag=%s mResumedActivity=%s",
|
||||
"level": "DEBUG",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/TaskDisplayArea.java"
|
||||
},
|
||||
"1822314934": {
|
||||
"message": "Expected target rootTask=%s to restored behind rootTask=%s but it is behind rootTask=%s",
|
||||
"level": "WARN",
|
||||
@@ -3379,18 +3391,6 @@
|
||||
"group": "WM_DEBUG_ORIENTATION",
|
||||
"at": "com\/android\/server\/wm\/ActivityRecord.java"
|
||||
},
|
||||
"1837992242": {
|
||||
"message": "Executing finish of activity: %s",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
},
|
||||
"1847414670": {
|
||||
"message": "Activity not running or entered PiP, resuming next.",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
},
|
||||
"1853793312": {
|
||||
"message": "Notify removed startingWindow %s",
|
||||
"level": "VERBOSE",
|
||||
@@ -3403,6 +3403,12 @@
|
||||
"group": "WM_DEBUG_FOCUS",
|
||||
"at": "com\/android\/server\/wm\/ActivityRecord.java"
|
||||
},
|
||||
"1856783490": {
|
||||
"message": "resumeTopActivity: Restarting %s",
|
||||
"level": "DEBUG",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/TaskFragment.java"
|
||||
},
|
||||
"1865125884": {
|
||||
"message": "finishScreenTurningOn: mAwake=%b, mScreenOnEarly=%b, mScreenOnFully=%b, mKeyguardDrawComplete=%b, mWindowManagerDrawComplete=%b",
|
||||
"level": "DEBUG",
|
||||
@@ -3415,30 +3421,24 @@
|
||||
"group": "WM_ERROR",
|
||||
"at": "com\/android\/server\/wm\/WindowManagerService.java"
|
||||
},
|
||||
"1884961873": {
|
||||
"message": "Sleep still need to stop %d activities",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
},
|
||||
"1891501279": {
|
||||
"message": "cancelAnimation(): reason=%s",
|
||||
"level": "DEBUG",
|
||||
"group": "WM_DEBUG_REMOTE_ANIMATIONS",
|
||||
"at": "com\/android\/server\/wm\/RemoteAnimationController.java"
|
||||
},
|
||||
"1894239744": {
|
||||
"message": "Enqueueing pending pause: %s",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/Task.java"
|
||||
},
|
||||
"1903353011": {
|
||||
"message": "notifyAppStopped: %s",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_ADD_REMOVE",
|
||||
"at": "com\/android\/server\/wm\/ActivityRecord.java"
|
||||
},
|
||||
"1912291550": {
|
||||
"message": "Sleep still waiting to pause %s",
|
||||
"level": "VERBOSE",
|
||||
"group": "WM_DEBUG_STATES",
|
||||
"at": "com\/android\/server\/wm\/TaskFragment.java"
|
||||
},
|
||||
"1918448345": {
|
||||
"message": "Task appeared taskId=%d",
|
||||
"level": "VERBOSE",
|
||||
|
||||
@@ -1284,10 +1284,16 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
||||
return task;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
TaskFragment getTaskFragment() {
|
||||
WindowContainer parent = getParent();
|
||||
return parent != null ? parent.asTaskFragment() : null;
|
||||
}
|
||||
|
||||
@Override
|
||||
void onParentChanged(ConfigurationContainer newParent, ConfigurationContainer oldParent) {
|
||||
final Task oldTask = oldParent != null ? (Task) oldParent : null;
|
||||
final Task newTask = newParent != null ? (Task) newParent : null;
|
||||
final Task oldTask = oldParent != null ? ((TaskFragment) oldParent).getTask() : null;
|
||||
final Task newTask = newParent != null ? ((TaskFragment) newParent).getTask() : null;
|
||||
this.task = newTask;
|
||||
|
||||
super.onParentChanged(newParent, oldParent);
|
||||
@@ -1345,11 +1351,12 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
||||
|
||||
updateColorTransform();
|
||||
|
||||
if (oldTask != null) {
|
||||
oldTask.cleanUpActivityReferences(this);
|
||||
if (oldParent != null) {
|
||||
((TaskFragment) oldParent).cleanUpActivityReferences(this);
|
||||
}
|
||||
if (newTask != null && isState(RESUMED)) {
|
||||
newTask.setResumedActivity(this, "onParentChanged");
|
||||
|
||||
if (newParent != null && isState(RESUMED)) {
|
||||
((TaskFragment) newParent).setResumedActivity(this, "onParentChanged");
|
||||
}
|
||||
|
||||
if (rootTask != null && rootTask.topRunningActivity() == this) {
|
||||
@@ -2278,23 +2285,24 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
||||
}
|
||||
|
||||
/**
|
||||
* Reparents this activity into {@param newTask} at the provided {@param position}. The caller
|
||||
* should ensure that the {@param newTask} is not already the parent of this activity.
|
||||
* Reparents this activity into {@param newTaskFrag} at the provided {@param position}. The
|
||||
* caller should ensure that the {@param newTaskFrag} is not already the parent of this
|
||||
* activity.
|
||||
*/
|
||||
void reparent(Task newTask, int position, String reason) {
|
||||
void reparent(TaskFragment newTaskFrag, int position, String reason) {
|
||||
if (getParent() == null) {
|
||||
Slog.w(TAG, "reparent: Attempted to reparent non-existing app token: " + appToken);
|
||||
return;
|
||||
}
|
||||
final Task prevTask = task;
|
||||
if (prevTask == newTask) {
|
||||
throw new IllegalArgumentException(reason + ": task=" + newTask
|
||||
final TaskFragment prevTaskFrag = getTaskFragment();
|
||||
if (prevTaskFrag == newTaskFrag) {
|
||||
throw new IllegalArgumentException(reason + ": task fragment =" + newTaskFrag
|
||||
+ " is already the parent of r=" + this);
|
||||
}
|
||||
|
||||
ProtoLog.i(WM_DEBUG_ADD_REMOVE, "reparent: moving activity=%s"
|
||||
+ " to task=%d at %d", this, task.mTaskId, position);
|
||||
reparent(newTask, position);
|
||||
+ " to new task fragment in task=%d at %d", this, task.mTaskId, position);
|
||||
reparent(newTaskFrag, position);
|
||||
}
|
||||
|
||||
private boolean isHomeIntent(Intent intent) {
|
||||
@@ -2860,7 +2868,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
||||
}
|
||||
|
||||
final Task rootTask = getRootTask();
|
||||
final boolean mayAdjustTop = (isState(RESUMED) || rootTask.getResumedActivity() == null)
|
||||
final boolean mayAdjustTop = (isState(RESUMED) || rootTask.getTopResumedActivity() == null)
|
||||
&& rootTask.isFocusedRootTaskOnDisplay()
|
||||
// Do not adjust focus task because the task will be reused to launch new activity.
|
||||
&& !task.isClearingToReuseTask();
|
||||
@@ -2939,12 +2947,12 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
||||
// Tell window manager to prepare for this one to be removed.
|
||||
setVisibility(false);
|
||||
|
||||
if (task.getPausingActivity() == null) {
|
||||
if (task.getTopPausingActivity() == null) {
|
||||
ProtoLog.v(WM_DEBUG_STATES, "Finish needs to pause: %s", this);
|
||||
if (DEBUG_USER_LEAVING) {
|
||||
Slog.v(TAG_USER_LEAVING, "finish() => pause with userLeaving=false");
|
||||
}
|
||||
task.startPausingLocked(false /* userLeaving */, false /* uiSleeping */,
|
||||
task.startPausing(false /* userLeaving */, false /* uiSleeping */,
|
||||
null /* resuming */, "finish");
|
||||
}
|
||||
|
||||
@@ -3263,8 +3271,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
||||
if (DEBUG_SWITCH) {
|
||||
final Task task = getTask();
|
||||
Slog.v(TAG_SWITCH, "Safely destroying " + this + " in state " + getState()
|
||||
+ " resumed=" + task.getResumedActivity()
|
||||
+ " pausing=" + task.getPausingActivity()
|
||||
+ " resumed=" + task.getTopResumedActivity()
|
||||
+ " pausing=" + task.getTopPausingActivity()
|
||||
+ " for reason " + reason);
|
||||
}
|
||||
return destroyImmediately(reason);
|
||||
@@ -3343,7 +3351,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
||||
* Note: Call before {@link #removeFromHistory(String)}.
|
||||
*/
|
||||
void cleanUp(boolean cleanServices, boolean setState) {
|
||||
task.cleanUpActivityReferences(this);
|
||||
getTaskFragment().cleanUpActivityReferences(this);
|
||||
clearLastParentBeforePip();
|
||||
|
||||
deferRelaunchUntilPaused = false;
|
||||
@@ -4824,8 +4832,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
||||
|
||||
mState = state;
|
||||
|
||||
if (task != null) {
|
||||
task.onActivityStateChanged(this, state, reason);
|
||||
if (getTaskFragment() != null) {
|
||||
getTaskFragment().onActivityStateChanged(this, state, reason);
|
||||
}
|
||||
|
||||
// The WindowManager interprets the app stopping signal as
|
||||
@@ -5131,7 +5139,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
||||
// If the app is capable of entering PIP, we should try pausing it now
|
||||
// so it can PIP correctly.
|
||||
if (deferHidingClient) {
|
||||
task.startPausingLocked(false /* uiSleeping */,
|
||||
getTaskFragment().startPausing(false /* uiSleeping */,
|
||||
null /* resuming */, "makeInvisible");
|
||||
break;
|
||||
}
|
||||
@@ -5231,7 +5239,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
||||
*/
|
||||
private boolean shouldBeResumed(ActivityRecord activeActivity) {
|
||||
return shouldMakeActive(activeActivity) && isFocusable()
|
||||
&& getTask().getVisibility(activeActivity) == TASK_FRAGMENT_VISIBILITY_VISIBLE
|
||||
&& getTaskFragment().getVisibility(activeActivity)
|
||||
== TASK_FRAGMENT_VISIBILITY_VISIBLE
|
||||
&& canResumeByCompat();
|
||||
}
|
||||
|
||||
@@ -5374,16 +5383,17 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
||||
ProtoLog.v(WM_DEBUG_STATES, "Activity paused: token=%s, timeout=%b", appToken,
|
||||
timeout);
|
||||
|
||||
if (task != null) {
|
||||
final TaskFragment taskFragment = getTaskFragment();
|
||||
if (taskFragment != null) {
|
||||
removePauseTimeout();
|
||||
|
||||
final ActivityRecord pausingActivity = task.getPausingActivity();
|
||||
final ActivityRecord pausingActivity = taskFragment.getPausingActivity();
|
||||
if (pausingActivity == this) {
|
||||
ProtoLog.v(WM_DEBUG_STATES, "Moving to PAUSED: %s %s", this,
|
||||
(timeout ? "(due to timeout)" : " (pause complete)"));
|
||||
mAtmService.deferWindowLayout();
|
||||
try {
|
||||
task.completePauseLocked(true /* resumeNext */, null /* resumingActivity */);
|
||||
taskFragment.completePause(true /* resumeNext */, null /* resumingActivity */);
|
||||
} finally {
|
||||
mAtmService.continueWindowLayout();
|
||||
}
|
||||
@@ -6032,9 +6042,9 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
||||
return this;
|
||||
}
|
||||
// Try to use the one which is closest to top.
|
||||
ActivityRecord r = rootTask.getResumedActivity();
|
||||
ActivityRecord r = rootTask.getTopResumedActivity();
|
||||
if (r == null) {
|
||||
r = rootTask.getPausingActivity();
|
||||
r = rootTask.getTopPausingActivity();
|
||||
}
|
||||
if (r != null) {
|
||||
return r;
|
||||
@@ -6112,7 +6122,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
||||
// This would be redundant.
|
||||
return false;
|
||||
}
|
||||
if (isState(RESUMED) || getRootTask() == null || this == task.getPausingActivity()
|
||||
if (isState(RESUMED) || getRootTask() == null
|
||||
|| this == getTaskFragment().getPausingActivity()
|
||||
|| !mHaveState || !stopped) {
|
||||
// We're not ready for this kind of thing.
|
||||
return false;
|
||||
|
||||
@@ -1204,8 +1204,8 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
|
||||
// If this is coming from the currently resumed activity, it is
|
||||
// effectively saying that app switches are allowed at this point.
|
||||
final Task topFocusedRootTask = getTopDisplayFocusedRootTask();
|
||||
if (topFocusedRootTask != null && topFocusedRootTask.getResumedActivity() != null
|
||||
&& topFocusedRootTask.getResumedActivity().info.applicationInfo.uid
|
||||
if (topFocusedRootTask != null && topFocusedRootTask.getTopResumedActivity() != null
|
||||
&& topFocusedRootTask.getTopResumedActivity().info.applicationInfo.uid
|
||||
== Binder.getCallingUid()) {
|
||||
mAppSwitchesAllowed = true;
|
||||
}
|
||||
|
||||
@@ -2064,7 +2064,7 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks {
|
||||
void updateTopResumedActivityIfNeeded() {
|
||||
final ActivityRecord prevTopActivity = mTopResumedActivity;
|
||||
final Task topRootTask = mRootWindowContainer.getTopDisplayFocusedRootTask();
|
||||
if (topRootTask == null || topRootTask.getResumedActivity() == prevTopActivity) {
|
||||
if (topRootTask == null || topRootTask.getTopResumedActivity() == prevTopActivity) {
|
||||
if (mService.isSleepingLocked()) {
|
||||
// There won't be a next resumed activity. The top process should still be updated
|
||||
// according to the current top focused activity.
|
||||
@@ -2086,7 +2086,7 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks {
|
||||
}
|
||||
|
||||
// Update the current top activity.
|
||||
mTopResumedActivity = topRootTask.getResumedActivity();
|
||||
mTopResumedActivity = topRootTask.getTopResumedActivity();
|
||||
scheduleTopResumedActivityStateIfNeeded();
|
||||
|
||||
mService.updateTopApp(mTopResumedActivity);
|
||||
|
||||
@@ -1859,7 +1859,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
|
||||
if (focusedRootTask == null) {
|
||||
return null;
|
||||
}
|
||||
final ActivityRecord resumedActivity = focusedRootTask.getResumedActivity();
|
||||
final ActivityRecord resumedActivity = focusedRootTask.getTopResumedActivity();
|
||||
if (resumedActivity != null && resumedActivity.app != null) {
|
||||
return resumedActivity;
|
||||
}
|
||||
@@ -1881,11 +1881,11 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
|
||||
// foreground.
|
||||
WindowProcessController fgApp = getItemFromRootTasks(rootTask -> {
|
||||
if (isTopDisplayFocusedRootTask(rootTask)) {
|
||||
final ActivityRecord resumedActivity = rootTask.getResumedActivity();
|
||||
final ActivityRecord resumedActivity = rootTask.getTopResumedActivity();
|
||||
if (resumedActivity != null) {
|
||||
return resumedActivity.app;
|
||||
} else if (rootTask.getPausingActivity() != null) {
|
||||
return rootTask.getPausingActivity().app;
|
||||
} else if (rootTask.getTopPausingActivity() != null) {
|
||||
return rootTask.getTopPausingActivity().app;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
@@ -2377,7 +2377,9 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
|
||||
if (displayShouldSleep) {
|
||||
rootTask.goToSleepIfPossible(false /* shuttingDown */);
|
||||
} else {
|
||||
rootTask.awakeFromSleepingLocked();
|
||||
rootTask.forAllLeafTaskFragments(
|
||||
taskFragment -> taskFragment.awakeFromSleeping(),
|
||||
true /* traverseTopToBottom */);
|
||||
if (rootTask.isFocusedRootTaskOnDisplay()
|
||||
&& !mTaskSupervisor.getKeyguardController()
|
||||
.isKeyguardOrAodShowing(display.mDisplayId)) {
|
||||
@@ -2737,8 +2739,8 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
|
||||
|
||||
if (DEBUG_SWITCH) {
|
||||
Slog.v(TAG_SWITCH, "Destroying " + r + " in state " + r.getState()
|
||||
+ " resumed=" + r.getTask().getResumedActivity() + " pausing="
|
||||
+ r.getTask().getPausingActivity() + " for reason "
|
||||
+ " resumed=" + r.getTask().getTopResumedActivity() + " pausing="
|
||||
+ r.getTask().getTopPausingActivity() + " for reason "
|
||||
+ mDestroyAllActivitiesReason);
|
||||
}
|
||||
|
||||
@@ -3325,7 +3327,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
|
||||
if (rootTask == null || !rootTask.hasActivity()) {
|
||||
continue;
|
||||
}
|
||||
final ActivityRecord resumedActivity = rootTask.getResumedActivity();
|
||||
final ActivityRecord resumedActivity = rootTask.getTopResumedActivity();
|
||||
if (resumedActivity == null || !resumedActivity.idle) {
|
||||
ProtoLog.d(WM_DEBUG_STATES, "allResumedActivitiesIdle: rootTask=%d %s "
|
||||
+ "not idle", rootTask.getRootTaskId(), resumedActivity);
|
||||
@@ -3340,7 +3342,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
|
||||
boolean allResumedActivitiesVisible() {
|
||||
boolean[] foundResumed = {false};
|
||||
final boolean foundInvisibleResumedActivity = forAllRootTasks(rootTask -> {
|
||||
final ActivityRecord r = rootTask.getResumedActivity();
|
||||
final ActivityRecord r = rootTask.getTopResumedActivity();
|
||||
if (r != null) {
|
||||
if (!r.nowVisible) {
|
||||
return true;
|
||||
@@ -3358,7 +3360,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
|
||||
boolean allPausedActivitiesComplete() {
|
||||
boolean[] pausing = {true};
|
||||
final boolean hasActivityNotCompleted = forAllLeafTasks(task -> {
|
||||
final ActivityRecord r = task.getPausingActivity();
|
||||
final ActivityRecord r = task.getTopPausingActivity();
|
||||
if (r != null && !r.isState(PAUSED, STOPPED, STOPPING, FINISHING)) {
|
||||
ProtoLog.d(WM_DEBUG_STATES, "allPausedActivitiesComplete: "
|
||||
+ "r=%s state=%s", r, r.getState());
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -467,7 +467,7 @@ final class TaskDisplayArea extends DisplayArea<WindowContainer> {
|
||||
// Update the top resumed activity because the preferred top focusable task may be changed.
|
||||
mAtmService.mTaskSupervisor.updateTopResumedActivityIfNeeded();
|
||||
|
||||
final ActivityRecord r = child.getResumedActivity();
|
||||
final ActivityRecord r = child.getTopResumedActivity();
|
||||
if (r != null && r == mRootWindowContainer.getTopResumedActivity()) {
|
||||
mAtmService.setResumedActivityUncheckLocked(r, "positionChildAt");
|
||||
}
|
||||
@@ -1373,11 +1373,11 @@ final class TaskDisplayArea extends DisplayArea<WindowContainer> {
|
||||
}
|
||||
// TODO(b/111541062): Move this into Task#getResumedActivity()
|
||||
// Check if the focused root task has the resumed activity
|
||||
ActivityRecord resumedActivity = focusedRootTask.getResumedActivity();
|
||||
ActivityRecord resumedActivity = focusedRootTask.getTopResumedActivity();
|
||||
if (resumedActivity == null || resumedActivity.app == null) {
|
||||
// If there is no registered resumed activity in the root task or it is not running -
|
||||
// try to use previously resumed one.
|
||||
resumedActivity = focusedRootTask.getPausingActivity();
|
||||
resumedActivity = focusedRootTask.getTopPausingActivity();
|
||||
if (resumedActivity == null || resumedActivity.app == null) {
|
||||
// If previously resumed activity doesn't work either - find the topmost running
|
||||
// activity that can be focused.
|
||||
@@ -1425,7 +1425,7 @@ final class TaskDisplayArea extends DisplayArea<WindowContainer> {
|
||||
continue;
|
||||
}
|
||||
|
||||
final ActivityRecord r = mChildren.get(i).asTask().getResumedActivity();
|
||||
final ActivityRecord r = mChildren.get(i).asTask().getTopResumedActivity();
|
||||
if (r != null && !r.isState(RESUMED)) {
|
||||
return false;
|
||||
}
|
||||
@@ -1451,14 +1451,14 @@ final class TaskDisplayArea extends DisplayArea<WindowContainer> {
|
||||
*/
|
||||
boolean pauseBackTasks(ActivityRecord resuming) {
|
||||
final int[] someActivityPaused = {0};
|
||||
forAllLeafTasks((task) -> {
|
||||
final ActivityRecord resumedActivity = task.getResumedActivity();
|
||||
forAllLeafTaskFragments((taskFragment) -> {
|
||||
final ActivityRecord resumedActivity = taskFragment.getResumedActivity();
|
||||
if (resumedActivity != null
|
||||
&& (task.getVisibility(resuming) != TASK_FRAGMENT_VISIBILITY_VISIBLE
|
||||
|| !task.isTopActivityFocusable())) {
|
||||
ProtoLog.d(WM_DEBUG_STATES, "pauseBackTasks: task=%s "
|
||||
+ "mResumedActivity=%s", task, resumedActivity);
|
||||
if (task.startPausingLocked(false /* uiSleeping*/,
|
||||
&& (taskFragment.getVisibility(resuming) != TASK_FRAGMENT_VISIBILITY_VISIBLE
|
||||
|| !taskFragment.isTopActivityFocusable())) {
|
||||
ProtoLog.d(WM_DEBUG_STATES, "pauseBackTasks: taskFrag=%s "
|
||||
+ "mResumedActivity=%s", taskFragment, resumedActivity);
|
||||
if (taskFragment.startPausing(false /* uiSleeping*/,
|
||||
resuming, "pauseBackTasks")) {
|
||||
someActivityPaused[0]++;
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1671,6 +1671,15 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean forAllLeafTaskFragments(Function<TaskFragment, Boolean> callback) {
|
||||
for (int i = mChildren.size() - 1; i >= 0; --i) {
|
||||
if (mChildren.get(i).forAllLeafTaskFragments(callback)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* For all root tasks at or below this container call the callback.
|
||||
*
|
||||
@@ -1739,6 +1748,19 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
|
||||
}
|
||||
}
|
||||
|
||||
void forAllLeafTaskFragments(Consumer<TaskFragment> callback, boolean traverseTopToBottom) {
|
||||
final int count = mChildren.size();
|
||||
if (traverseTopToBottom) {
|
||||
for (int i = count - 1; i >= 0; --i) {
|
||||
mChildren.get(i).forAllLeafTaskFragments(callback, traverseTopToBottom);
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < count; i++) {
|
||||
mChildren.get(i).forAllLeafTaskFragments(callback, traverseTopToBottom);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* For all root tasks at or below this container call the callback.
|
||||
*
|
||||
|
||||
@@ -735,10 +735,10 @@ public class WindowProcessController extends ConfigurationContainer<Configuratio
|
||||
if (canUpdate) {
|
||||
// Make sure the previous top activity in the process no longer be resumed.
|
||||
if (mPreQTopResumedActivity != null && mPreQTopResumedActivity.isState(RESUMED)) {
|
||||
final Task task = mPreQTopResumedActivity.getTask();
|
||||
if (task != null) {
|
||||
boolean userLeaving = task.shouldBeVisible(null);
|
||||
task.startPausingLocked(userLeaving, false /* uiSleeping */,
|
||||
final TaskFragment taskFrag = mPreQTopResumedActivity.getTaskFragment();
|
||||
if (taskFrag != null) {
|
||||
boolean userLeaving = taskFrag.shouldBeVisible(null);
|
||||
taskFrag.startPausing(userLeaving, false /* uiSleeping */,
|
||||
activity, "top-resumed-changed");
|
||||
}
|
||||
}
|
||||
@@ -1213,12 +1213,12 @@ public class WindowProcessController extends ConfigurationContainer<Configuratio
|
||||
hasVisibleActivities = true;
|
||||
}
|
||||
|
||||
final Task task = r.getTask();
|
||||
if (task != null) {
|
||||
final TaskFragment taskFragment = r.getTaskFragment();
|
||||
if (taskFragment != null) {
|
||||
// There may be a pausing activity that hasn't shown any window and was requested
|
||||
// to be hidden. But pausing is also a visible state, it should be regarded as
|
||||
// visible, so the caller can know the next activity should be resumed.
|
||||
hasVisibleActivities |= task.handleAppDied(this);
|
||||
hasVisibleActivities |= taskFragment.handleAppDied(this);
|
||||
}
|
||||
r.handleAppDied();
|
||||
}
|
||||
|
||||
@@ -1904,8 +1904,7 @@ public class ActivityRecordTests extends WindowTestsBase {
|
||||
assertTrue(wpc.registeredForActivityConfigChanges());
|
||||
|
||||
// Create a new task with custom config to reparent the activity to.
|
||||
final Task newTask =
|
||||
new TaskBuilder(mSupervisor).setParentTask(initialTask.getRootTask()).build();
|
||||
final Task newTask = new TaskBuilder(mSupervisor).build();
|
||||
final Configuration newConfig = newTask.getConfiguration();
|
||||
newConfig.densityDpi += 100;
|
||||
newTask.onRequestedOverrideConfigurationChanged(newConfig);
|
||||
@@ -1937,8 +1936,7 @@ public class ActivityRecordTests extends WindowTestsBase {
|
||||
.diff(wpc.getRequestedOverrideConfiguration()));
|
||||
|
||||
// Create a new task with custom config to reparent the second activity to.
|
||||
final Task newTask =
|
||||
new TaskBuilder(mSupervisor).setParentTask(initialTask.getRootTask()).build();
|
||||
final Task newTask = new TaskBuilder(mSupervisor).build();
|
||||
final Configuration newConfig = newTask.getConfiguration();
|
||||
newConfig.densityDpi += 100;
|
||||
newTask.onRequestedOverrideConfigurationChanged(newConfig);
|
||||
|
||||
@@ -280,11 +280,11 @@ public class RootTaskTests extends WindowTestsBase {
|
||||
public void testResumedActivity() {
|
||||
final ActivityRecord r = new ActivityBuilder(mAtm).setCreateTask(true).build();
|
||||
final Task task = r.getTask();
|
||||
assertNull(task.getResumedActivity());
|
||||
assertNull(task.getTopResumedActivity());
|
||||
r.setState(RESUMED, "testResumedActivity");
|
||||
assertEquals(r, task.getResumedActivity());
|
||||
assertEquals(r, task.getTopResumedActivity());
|
||||
r.setState(PAUSING, "testResumedActivity");
|
||||
assertNull(task.getResumedActivity());
|
||||
assertNull(task.getTopResumedActivity());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -295,15 +295,15 @@ public class RootTaskTests extends WindowTestsBase {
|
||||
final Task task = r.getTask();
|
||||
// Ensure moving task between two root tasks updates resumed activity
|
||||
r.setState(RESUMED, "testResumedActivityFromTaskReparenting");
|
||||
assertEquals(r, rootTask.getResumedActivity());
|
||||
assertEquals(r, rootTask.getTopResumedActivity());
|
||||
|
||||
final Task destRootTask = new TaskBuilder(mSupervisor).setOnTop(true).build();
|
||||
task.reparent(destRootTask, true /* toTop */, REPARENT_KEEP_ROOT_TASK_AT_FRONT,
|
||||
false /* animate */, true /* deferResume*/,
|
||||
"testResumedActivityFromTaskReparenting");
|
||||
|
||||
assertNull(rootTask.getResumedActivity());
|
||||
assertEquals(r, destRootTask.getResumedActivity());
|
||||
assertNull(rootTask.getTopResumedActivity());
|
||||
assertEquals(r, destRootTask.getTopResumedActivity());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -314,15 +314,15 @@ public class RootTaskTests extends WindowTestsBase {
|
||||
final Task task = r.getTask();
|
||||
// Ensure moving task between two root tasks updates resumed activity
|
||||
r.setState(RESUMED, "testResumedActivityFromActivityReparenting");
|
||||
assertEquals(r, rootTask.getResumedActivity());
|
||||
assertEquals(r, rootTask.getTopResumedActivity());
|
||||
|
||||
final Task destRootTask = new TaskBuilder(mSupervisor).setOnTop(true).build();
|
||||
task.reparent(destRootTask, true /*toTop*/, REPARENT_MOVE_ROOT_TASK_TO_FRONT,
|
||||
false /* animate */, false /* deferResume*/,
|
||||
"testResumedActivityFromActivityReparenting");
|
||||
|
||||
assertNull(rootTask.getResumedActivity());
|
||||
assertEquals(r, destRootTask.getResumedActivity());
|
||||
assertNull(rootTask.getTopResumedActivity());
|
||||
assertEquals(r, destRootTask.getTopResumedActivity());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -707,14 +707,15 @@ public class RootTaskTests extends WindowTestsBase {
|
||||
WINDOWING_MODE_UNDEFINED, ACTIVITY_TYPE_HOME, true /* onTop */);
|
||||
final Task splitPrimary = createTaskForShouldBeVisibleTest(mDefaultTaskDisplayArea,
|
||||
WINDOWING_MODE_SPLIT_SCREEN_PRIMARY, ACTIVITY_TYPE_UNDEFINED, true /* onTop */);
|
||||
// Creating as two-level tasks so home task can be reparented to split-secondary root task.
|
||||
final Task splitSecondary = createTaskForShouldBeVisibleTest(mDefaultTaskDisplayArea,
|
||||
WINDOWING_MODE_SPLIT_SCREEN_SECONDARY, ACTIVITY_TYPE_UNDEFINED, true /* onTop */);
|
||||
WINDOWING_MODE_SPLIT_SCREEN_SECONDARY, ACTIVITY_TYPE_UNDEFINED, true /* onTop */,
|
||||
true /* twoLevelTask */);
|
||||
|
||||
doReturn(false).when(homeRootTask).isTranslucent(any());
|
||||
doReturn(false).when(splitPrimary).isTranslucent(any());
|
||||
doReturn(false).when(splitSecondary).isTranslucent(any());
|
||||
|
||||
|
||||
// Re-parent home to split secondary.
|
||||
homeRootTask.reparent(splitSecondary, POSITION_TOP);
|
||||
// Current tasks should be visible.
|
||||
@@ -1152,12 +1153,12 @@ public class RootTaskTests extends WindowTestsBase {
|
||||
} else if (twoLevelTask) {
|
||||
task = new TaskBuilder(mSupervisor)
|
||||
.setTaskDisplayArea(taskDisplayArea)
|
||||
.setWindowingMode(windowingMode)
|
||||
.setActivityType(activityType)
|
||||
.setOnTop(onTop)
|
||||
.setCreateActivity(true)
|
||||
.setCreateParentTask(true)
|
||||
.build().getRootTask();
|
||||
task.setWindowingMode(windowingMode);
|
||||
} else {
|
||||
task = new TaskBuilder(mSupervisor)
|
||||
.setTaskDisplayArea(taskDisplayArea)
|
||||
@@ -1311,9 +1312,9 @@ public class RootTaskTests extends WindowTestsBase {
|
||||
final ActivityRecord topActivity = new ActivityBuilder(mAtm).setTask(task).build();
|
||||
topActivity.info.flags |= FLAG_RESUME_WHILE_PAUSING;
|
||||
|
||||
task.startPausingLocked(false /* uiSleeping */, topActivity,
|
||||
task.startPausing(false /* uiSleeping */, topActivity,
|
||||
"test");
|
||||
verify(task).completePauseLocked(anyBoolean(), eq(topActivity));
|
||||
verify(task).completePause(anyBoolean(), eq(topActivity));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -363,7 +363,7 @@ public class RootWindowContainerTests extends WindowTestsBase {
|
||||
TaskDisplayArea defaultTaskDisplayArea = display.getDefaultTaskDisplayArea();
|
||||
doReturn(isFocusedTask ? task : null).when(defaultTaskDisplayArea).getFocusedRootTask();
|
||||
mRootWindowContainer.applySleepTokens(true);
|
||||
verify(task, times(expectWakeFromSleep ? 1 : 0)).awakeFromSleepingLocked();
|
||||
verify(task, times(expectWakeFromSleep ? 1 : 0)).awakeFromSleeping();
|
||||
verify(task, times(expectResumeTopActivity ? 1 : 0)).resumeTopActivityUncheckedLocked(
|
||||
null /* target */, null /* targetOptions */);
|
||||
}
|
||||
|
||||
@@ -1254,7 +1254,8 @@ public class TaskTests extends WindowTestsBase {
|
||||
LaunchParamsPersister persister = mAtm.mTaskSupervisor.mLaunchParamsPersister;
|
||||
spyOn(persister);
|
||||
|
||||
final Task task = getTestTask();
|
||||
final Task task = new TaskBuilder(mSupervisor).setCreateActivity(true)
|
||||
.setCreateParentTask(true).build().getRootTask();
|
||||
task.setHasBeenVisible(false);
|
||||
task.getDisplayContent().setDisplayWindowingMode(WINDOWING_MODE_FREEFORM);
|
||||
task.getRootTask().setWindowingMode(WINDOWING_MODE_FULLSCREEN);
|
||||
|
||||
Reference in New Issue
Block a user