Loading core/proto/android/server/activitymanagerservice.proto +3 −1 Original line number Diff line number Diff line Loading @@ -118,13 +118,15 @@ message TaskRecordProto { message ActivityRecordProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1; // To be removed soon. optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1 [deprecated=true]; optional .com.android.server.wm.IdentifierProto identifier = 2; optional string state = 3; optional bool visible = 4; optional bool front_of_task = 5; optional int32 proc_id = 6; optional bool translucent = 7; optional .com.android.server.wm.AppWindowTokenProto app_window_token = 8; } message KeyguardControllerProto { Loading data/etc/services.core.protolog.json +6 −6 Original line number Diff line number Diff line Loading @@ -823,6 +823,12 @@ "group": "WM_DEBUG_ORIENTATION", "at": "com\/android\/server\/wm\/DisplayRotation.java" }, "-415912575": { "message": "setTask: %s at top.", "level": "VERBOSE", "group": "WM_DEBUG_ADD_REMOVE", "at": "com\/android\/server\/wm\/ActivityRecord.java" }, "-415865166": { "message": "findFocusedWindow: Found new focus @ %s", "level": "VERBOSE", Loading Loading @@ -925,12 +931,6 @@ "group": "WM_DEBUG_APP_TRANSITIONS", "at": "com\/android\/server\/wm\/WindowState.java" }, "-117925665": { "message": "addAppToken: %s task=%s at %d", "level": "VERBOSE", "group": "WM_DEBUG_ADD_REMOVE", "at": "com\/android\/server\/wm\/ActivityRecord.java" }, "-116086365": { "message": "******************** ENABLING SCREEN!", "level": "INFO", Loading services/core/java/com/android/server/wm/ActivityRecord.java +151 −457 File changed.Preview size limit exceeded, changes collapsed. Show changes services/core/java/com/android/server/wm/ActivityStack.java +15 −23 Original line number Diff line number Diff line Loading @@ -1896,7 +1896,7 @@ class ActivityStack extends ConfigurationContainer { continue; } if (r.fullscreen || r.hasWallpaper) { if (r.occludesParent() || r.hasWallpaper) { // Stack isn't translucent if it has at least one fullscreen activity // that is visible. return false; Loading Loading @@ -2259,8 +2259,7 @@ class ActivityStack extends ConfigurationContainer { .isKeyguardOrAodShowing(displayId); final boolean keyguardLocked = mStackSupervisor.getKeyguardController().isKeyguardLocked(); final boolean showWhenLocked = r.canShowWhenLocked(); final boolean dismissKeyguard = r.mAppWindowToken != null && r.mAppWindowToken.containsDismissKeyguardWindow(); final boolean dismissKeyguard = r.containsDismissKeyguardWindow(); if (shouldBeVisible) { if (dismissKeyguard && mTopDismissingKeyguardActivity == null) { mTopDismissingKeyguardActivity = r; Loading Loading @@ -2329,7 +2328,7 @@ class ActivityStack extends ConfigurationContainer { // get it started and resume if no other stack in this stack is resumed. if (DEBUG_VISIBILITY) Slog.v(TAG_VISIBILITY, "Start and freeze screen for " + r); if (r != starting) { r.startFreezingScreenLocked(r.app, configChanges); r.startFreezingScreenLocked(configChanges); } if (!r.visible || r.mLaunchTaskBehind) { if (DEBUG_VISIBILITY) Slog.v(TAG_VISIBILITY, "Starting and making visible: " + r); Loading @@ -2345,7 +2344,7 @@ class ActivityStack extends ConfigurationContainer { private boolean updateBehindFullscreen(boolean stackInvisible, boolean behindFullscreenActivity, ActivityRecord r) { if (r.fullscreen) { if (r.occludesParent()) { if (DEBUG_VISIBILITY) Slog.v(TAG_VISIBILITY, "Fullscreen: at " + r + " stackInvisible=" + stackInvisible + " behindFullscreenActivity=" + behindFullscreenActivity); Loading Loading @@ -2431,12 +2430,12 @@ class ActivityStack extends ConfigurationContainer { if (r == topActivity) { aboveTop = false; } behindFullscreenActivity |= r.fullscreen; behindFullscreenActivity |= r.occludesParent(); continue; } r.removeOrphanedStartingWindow(behindFullscreenActivity); behindFullscreenActivity |= r.fullscreen; behindFullscreenActivity |= r.occludesParent(); } } } Loading Loading @@ -2566,8 +2565,7 @@ class ActivityStack extends ConfigurationContainer { final boolean canShowWhenLocked = !mTopActivityOccludesKeyguard && next.canShowWhenLocked(); final boolean mayDismissKeyguard = mTopDismissingKeyguardActivity != next && next.mAppWindowToken != null && next.mAppWindowToken.containsDismissKeyguardWindow(); && next.containsDismissKeyguardWindow(); if (canShowWhenLocked || mayDismissKeyguard) { ensureActivitiesVisibleLocked(null /* starting */, 0 /* configChanges */, Loading Loading @@ -2776,7 +2774,7 @@ class ActivityStack extends ConfigurationContainer { final boolean lastActivityTranslucent = lastFocusedStack != null && (lastFocusedStack.inMultiWindowMode() || (lastFocusedStack.mLastPausedActivity != null && !lastFocusedStack.mLastPausedActivity.fullscreen)); && !lastFocusedStack.mLastPausedActivity.occludesParent())); // This activity is now becoming visible. if (!next.visible || next.stopped || lastActivityTranslucent) { Loading Loading @@ -3055,7 +3053,7 @@ class ActivityStack extends ConfigurationContainer { if (!startIt) { if (DEBUG_ADD_REMOVE) Slog.i(TAG, "Adding activity " + r + " to task " + task, new RuntimeException("here").fillInStackTrace()); r.createAppWindowToken(); r.setTask(rTask); ActivityOptions.abort(options); return; } Loading @@ -3082,12 +3080,7 @@ class ActivityStack extends ConfigurationContainer { // Slot the activity into the history stack and proceed if (DEBUG_ADD_REMOVE) Slog.i(TAG, "Adding activity " + r + " to stack to task " + task, new RuntimeException("here").fillInStackTrace()); // TODO: Need to investigate if it is okay for the controller to already be created by the // time we get to this point. I think it is, but need to double check. // Use test in b/34179495 to trace the call path. if (r.mAppWindowToken == null) { r.createAppWindowToken(); } r.setTask(task); // The transition animation and starting window are not needed if {@code allowMoveToFront} // is false, because the activity won't be visible. Loading Loading @@ -3944,7 +3937,7 @@ class ActivityStack extends ConfigurationContainer { if (r.finishing) { continue; } if (r.fullscreen) { if (r.occludesParent()) { lastIsOpaque = true; } if (owner != null && r.app != owner) { Loading Loading @@ -4335,7 +4328,7 @@ class ActivityStack extends ConfigurationContainer { final ActivityRecord r = activities.get(activityIndex); updatedConfig |= r.ensureActivityConfiguration(0 /* globalChanges */, preserveWindow); if (r.fullscreen) { if (r.occludesParent()) { behindFullscreen = true; break; } Loading Loading @@ -4438,7 +4431,7 @@ class ActivityStack extends ConfigurationContainer { if (r.appToken == token) { return true; } if (r.fullscreen && !r.finishing) { if (r.occludesParent() && !r.finishing) { return false; } } Loading Loading @@ -4718,8 +4711,7 @@ class ActivityStack extends ConfigurationContainer { if (a.info.packageName.equals(packageName)) { a.forceNewConfig = true; if (starting != null && a == starting && a.visible) { a.startFreezingScreenLocked(starting.app, CONFIG_SCREEN_LAYOUT); a.startFreezingScreenLocked(CONFIG_SCREEN_LAYOUT); } } } Loading Loading @@ -4950,7 +4942,7 @@ class ActivityStack extends ConfigurationContainer { if (top != null && !top.isConfigurationCompatible(parentConfig)) { // The final orientation of this activity will change after moving to full screen. // Start freezing screen here to prevent showing a temporary full screen window. top.startFreezingScreenLocked(top.app, CONFIG_SCREEN_LAYOUT); top.startFreezingScreenLocked(CONFIG_SCREEN_LAYOUT); mService.moveTasksToFullscreenStack(mStackId, true /* onTop */); return; } Loading services/core/java/com/android/server/wm/ActivityStackSupervisor.java +4 −5 Original line number Diff line number Diff line Loading @@ -1901,7 +1901,7 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { "Added restored task=" + task + " to stack=" + stack); final ArrayList<ActivityRecord> activities = task.mActivities; for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) { activities.get(activityNdx).createAppWindowToken(); activities.get(activityNdx).setTask(task); } return true; } Loading Loading @@ -2123,6 +2123,7 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { return false; } // TODO: Change method name to reflect what it actually does. final ArrayList<ActivityRecord> processStoppingActivitiesLocked(ActivityRecord idleActivity, boolean remove, boolean processPausingActivities) { ArrayList<ActivityRecord> stops = null; Loading @@ -2131,7 +2132,7 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { for (int activityNdx = mStoppingActivities.size() - 1; activityNdx >= 0; --activityNdx) { ActivityRecord s = mStoppingActivities.get(activityNdx); final boolean animating = s.mAppWindowToken.isSelfAnimating(); final boolean animating = s.isSelfAnimating(); if (DEBUG_STATES) Slog.v(TAG, "Stopping " + s + ": nowVisible=" + nowVisible + " animating=" + animating + " finishing=" + s.finishing); Loading Loading @@ -2482,9 +2483,7 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { void activityRelaunchedLocked(IBinder token) { final ActivityRecord r = ActivityRecord.isInStackLocked(token); if (r != null) { if (r.mAppWindowToken != null) { r.mAppWindowToken.finishRelaunching(); } r.finishRelaunching(); if (r.getActivityStack().shouldSleepOrShutDownActivities()) { r.setSleeping(true, true); } Loading Loading
core/proto/android/server/activitymanagerservice.proto +3 −1 Original line number Diff line number Diff line Loading @@ -118,13 +118,15 @@ message TaskRecordProto { message ActivityRecordProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1; // To be removed soon. optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1 [deprecated=true]; optional .com.android.server.wm.IdentifierProto identifier = 2; optional string state = 3; optional bool visible = 4; optional bool front_of_task = 5; optional int32 proc_id = 6; optional bool translucent = 7; optional .com.android.server.wm.AppWindowTokenProto app_window_token = 8; } message KeyguardControllerProto { Loading
data/etc/services.core.protolog.json +6 −6 Original line number Diff line number Diff line Loading @@ -823,6 +823,12 @@ "group": "WM_DEBUG_ORIENTATION", "at": "com\/android\/server\/wm\/DisplayRotation.java" }, "-415912575": { "message": "setTask: %s at top.", "level": "VERBOSE", "group": "WM_DEBUG_ADD_REMOVE", "at": "com\/android\/server\/wm\/ActivityRecord.java" }, "-415865166": { "message": "findFocusedWindow: Found new focus @ %s", "level": "VERBOSE", Loading Loading @@ -925,12 +931,6 @@ "group": "WM_DEBUG_APP_TRANSITIONS", "at": "com\/android\/server\/wm\/WindowState.java" }, "-117925665": { "message": "addAppToken: %s task=%s at %d", "level": "VERBOSE", "group": "WM_DEBUG_ADD_REMOVE", "at": "com\/android\/server\/wm\/ActivityRecord.java" }, "-116086365": { "message": "******************** ENABLING SCREEN!", "level": "INFO", Loading
services/core/java/com/android/server/wm/ActivityRecord.java +151 −457 File changed.Preview size limit exceeded, changes collapsed. Show changes
services/core/java/com/android/server/wm/ActivityStack.java +15 −23 Original line number Diff line number Diff line Loading @@ -1896,7 +1896,7 @@ class ActivityStack extends ConfigurationContainer { continue; } if (r.fullscreen || r.hasWallpaper) { if (r.occludesParent() || r.hasWallpaper) { // Stack isn't translucent if it has at least one fullscreen activity // that is visible. return false; Loading Loading @@ -2259,8 +2259,7 @@ class ActivityStack extends ConfigurationContainer { .isKeyguardOrAodShowing(displayId); final boolean keyguardLocked = mStackSupervisor.getKeyguardController().isKeyguardLocked(); final boolean showWhenLocked = r.canShowWhenLocked(); final boolean dismissKeyguard = r.mAppWindowToken != null && r.mAppWindowToken.containsDismissKeyguardWindow(); final boolean dismissKeyguard = r.containsDismissKeyguardWindow(); if (shouldBeVisible) { if (dismissKeyguard && mTopDismissingKeyguardActivity == null) { mTopDismissingKeyguardActivity = r; Loading Loading @@ -2329,7 +2328,7 @@ class ActivityStack extends ConfigurationContainer { // get it started and resume if no other stack in this stack is resumed. if (DEBUG_VISIBILITY) Slog.v(TAG_VISIBILITY, "Start and freeze screen for " + r); if (r != starting) { r.startFreezingScreenLocked(r.app, configChanges); r.startFreezingScreenLocked(configChanges); } if (!r.visible || r.mLaunchTaskBehind) { if (DEBUG_VISIBILITY) Slog.v(TAG_VISIBILITY, "Starting and making visible: " + r); Loading @@ -2345,7 +2344,7 @@ class ActivityStack extends ConfigurationContainer { private boolean updateBehindFullscreen(boolean stackInvisible, boolean behindFullscreenActivity, ActivityRecord r) { if (r.fullscreen) { if (r.occludesParent()) { if (DEBUG_VISIBILITY) Slog.v(TAG_VISIBILITY, "Fullscreen: at " + r + " stackInvisible=" + stackInvisible + " behindFullscreenActivity=" + behindFullscreenActivity); Loading Loading @@ -2431,12 +2430,12 @@ class ActivityStack extends ConfigurationContainer { if (r == topActivity) { aboveTop = false; } behindFullscreenActivity |= r.fullscreen; behindFullscreenActivity |= r.occludesParent(); continue; } r.removeOrphanedStartingWindow(behindFullscreenActivity); behindFullscreenActivity |= r.fullscreen; behindFullscreenActivity |= r.occludesParent(); } } } Loading Loading @@ -2566,8 +2565,7 @@ class ActivityStack extends ConfigurationContainer { final boolean canShowWhenLocked = !mTopActivityOccludesKeyguard && next.canShowWhenLocked(); final boolean mayDismissKeyguard = mTopDismissingKeyguardActivity != next && next.mAppWindowToken != null && next.mAppWindowToken.containsDismissKeyguardWindow(); && next.containsDismissKeyguardWindow(); if (canShowWhenLocked || mayDismissKeyguard) { ensureActivitiesVisibleLocked(null /* starting */, 0 /* configChanges */, Loading Loading @@ -2776,7 +2774,7 @@ class ActivityStack extends ConfigurationContainer { final boolean lastActivityTranslucent = lastFocusedStack != null && (lastFocusedStack.inMultiWindowMode() || (lastFocusedStack.mLastPausedActivity != null && !lastFocusedStack.mLastPausedActivity.fullscreen)); && !lastFocusedStack.mLastPausedActivity.occludesParent())); // This activity is now becoming visible. if (!next.visible || next.stopped || lastActivityTranslucent) { Loading Loading @@ -3055,7 +3053,7 @@ class ActivityStack extends ConfigurationContainer { if (!startIt) { if (DEBUG_ADD_REMOVE) Slog.i(TAG, "Adding activity " + r + " to task " + task, new RuntimeException("here").fillInStackTrace()); r.createAppWindowToken(); r.setTask(rTask); ActivityOptions.abort(options); return; } Loading @@ -3082,12 +3080,7 @@ class ActivityStack extends ConfigurationContainer { // Slot the activity into the history stack and proceed if (DEBUG_ADD_REMOVE) Slog.i(TAG, "Adding activity " + r + " to stack to task " + task, new RuntimeException("here").fillInStackTrace()); // TODO: Need to investigate if it is okay for the controller to already be created by the // time we get to this point. I think it is, but need to double check. // Use test in b/34179495 to trace the call path. if (r.mAppWindowToken == null) { r.createAppWindowToken(); } r.setTask(task); // The transition animation and starting window are not needed if {@code allowMoveToFront} // is false, because the activity won't be visible. Loading Loading @@ -3944,7 +3937,7 @@ class ActivityStack extends ConfigurationContainer { if (r.finishing) { continue; } if (r.fullscreen) { if (r.occludesParent()) { lastIsOpaque = true; } if (owner != null && r.app != owner) { Loading Loading @@ -4335,7 +4328,7 @@ class ActivityStack extends ConfigurationContainer { final ActivityRecord r = activities.get(activityIndex); updatedConfig |= r.ensureActivityConfiguration(0 /* globalChanges */, preserveWindow); if (r.fullscreen) { if (r.occludesParent()) { behindFullscreen = true; break; } Loading Loading @@ -4438,7 +4431,7 @@ class ActivityStack extends ConfigurationContainer { if (r.appToken == token) { return true; } if (r.fullscreen && !r.finishing) { if (r.occludesParent() && !r.finishing) { return false; } } Loading Loading @@ -4718,8 +4711,7 @@ class ActivityStack extends ConfigurationContainer { if (a.info.packageName.equals(packageName)) { a.forceNewConfig = true; if (starting != null && a == starting && a.visible) { a.startFreezingScreenLocked(starting.app, CONFIG_SCREEN_LAYOUT); a.startFreezingScreenLocked(CONFIG_SCREEN_LAYOUT); } } } Loading Loading @@ -4950,7 +4942,7 @@ class ActivityStack extends ConfigurationContainer { if (top != null && !top.isConfigurationCompatible(parentConfig)) { // The final orientation of this activity will change after moving to full screen. // Start freezing screen here to prevent showing a temporary full screen window. top.startFreezingScreenLocked(top.app, CONFIG_SCREEN_LAYOUT); top.startFreezingScreenLocked(CONFIG_SCREEN_LAYOUT); mService.moveTasksToFullscreenStack(mStackId, true /* onTop */); return; } Loading
services/core/java/com/android/server/wm/ActivityStackSupervisor.java +4 −5 Original line number Diff line number Diff line Loading @@ -1901,7 +1901,7 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { "Added restored task=" + task + " to stack=" + stack); final ArrayList<ActivityRecord> activities = task.mActivities; for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) { activities.get(activityNdx).createAppWindowToken(); activities.get(activityNdx).setTask(task); } return true; } Loading Loading @@ -2123,6 +2123,7 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { return false; } // TODO: Change method name to reflect what it actually does. final ArrayList<ActivityRecord> processStoppingActivitiesLocked(ActivityRecord idleActivity, boolean remove, boolean processPausingActivities) { ArrayList<ActivityRecord> stops = null; Loading @@ -2131,7 +2132,7 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { for (int activityNdx = mStoppingActivities.size() - 1; activityNdx >= 0; --activityNdx) { ActivityRecord s = mStoppingActivities.get(activityNdx); final boolean animating = s.mAppWindowToken.isSelfAnimating(); final boolean animating = s.isSelfAnimating(); if (DEBUG_STATES) Slog.v(TAG, "Stopping " + s + ": nowVisible=" + nowVisible + " animating=" + animating + " finishing=" + s.finishing); Loading Loading @@ -2482,9 +2483,7 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { void activityRelaunchedLocked(IBinder token) { final ActivityRecord r = ActivityRecord.isInStackLocked(token); if (r != null) { if (r.mAppWindowToken != null) { r.mAppWindowToken.finishRelaunching(); } r.finishRelaunching(); if (r.getActivityStack().shouldSleepOrShutDownActivities()) { r.setSleeping(true, true); } Loading