Loading services/core/java/com/android/server/wm/ActivityDisplay.java +9 −0 Original line number Diff line number Diff line Loading @@ -1267,6 +1267,15 @@ class ActivityDisplay extends ConfigurationContainer<ActivityStack> positionChildAt(stack, Math.max(0, insertIndex)); } void ensureActivitiesVisible(ActivityRecord starting, int configChanges, boolean preserveWindows, boolean notifyClients) { for (int stackNdx = getChildCount() - 1; stackNdx >= 0; --stackNdx) { final ActivityStack stack = getChildAt(stackNdx); stack.ensureActivitiesVisibleLocked(starting, configChanges, preserveWindows, notifyClients); } } void moveHomeStackToFront(String reason) { if (mHomeStack != null) { mHomeStack.moveToFront(reason); Loading services/core/java/com/android/server/wm/ActivityRecord.java +10 −0 Original line number Diff line number Diff line Loading @@ -3401,6 +3401,16 @@ final class ActivityRecord extends ConfigurationContainer { stack.checkKeyguardVisibility(this, true /* shouldBeVisible */, true /* isTop */); } /** * Check if this activity is able to resume. For pre-Q apps, only the topmost activities of each * process are allowed to be resumed. * * @return true if this activity can be resumed. */ boolean canResumeByCompat() { return app == null || app.updateTopResumingActivityInProcessIfNeeded(this); } boolean getTurnScreenOnFlag() { return mTurnScreenOn; } Loading services/core/java/com/android/server/wm/ActivityStack.java +4 −0 Original line number Diff line number Diff line Loading @@ -2597,6 +2597,10 @@ class ActivityStack extends ConfigurationContainer { return false; } if (!next.canResumeByCompat()) { return false; } // If we are sleeping, and there is no resumed activity, and the top // activity is paused, well that is the state we want. if (shouldSleepOrShutDownActivities() Loading services/core/java/com/android/server/wm/ActivityStackSupervisor.java +5 −0 Original line number Diff line number Diff line Loading @@ -720,6 +720,11 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { r.setProcess(proc); // Ensure activity is allowed to be resumed after process has set. if (andResume && !r.canResumeByCompat()) { andResume = false; } if (getKeyguardController().isKeyguardLocked()) { r.notifyUnknownVisibilityLaunched(); } Loading services/core/java/com/android/server/wm/RootActivityContainer.java +2 −5 Original line number Diff line number Diff line Loading @@ -777,12 +777,9 @@ class RootActivityContainer extends ConfigurationContainer // First the front stacks. In case any are not fullscreen and are in front of home. for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) { final ActivityDisplay display = mActivityDisplays.get(displayNdx); for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) { final ActivityStack stack = display.getChildAt(stackNdx); stack.ensureActivitiesVisibleLocked(starting, configChanges, preserveWindows, display.ensureActivitiesVisible(starting, configChanges, preserveWindows, notifyClients); } } } finally { mStackSupervisor.getKeyguardController().endActivityVisibilityUpdate(); } Loading Loading
services/core/java/com/android/server/wm/ActivityDisplay.java +9 −0 Original line number Diff line number Diff line Loading @@ -1267,6 +1267,15 @@ class ActivityDisplay extends ConfigurationContainer<ActivityStack> positionChildAt(stack, Math.max(0, insertIndex)); } void ensureActivitiesVisible(ActivityRecord starting, int configChanges, boolean preserveWindows, boolean notifyClients) { for (int stackNdx = getChildCount() - 1; stackNdx >= 0; --stackNdx) { final ActivityStack stack = getChildAt(stackNdx); stack.ensureActivitiesVisibleLocked(starting, configChanges, preserveWindows, notifyClients); } } void moveHomeStackToFront(String reason) { if (mHomeStack != null) { mHomeStack.moveToFront(reason); Loading
services/core/java/com/android/server/wm/ActivityRecord.java +10 −0 Original line number Diff line number Diff line Loading @@ -3401,6 +3401,16 @@ final class ActivityRecord extends ConfigurationContainer { stack.checkKeyguardVisibility(this, true /* shouldBeVisible */, true /* isTop */); } /** * Check if this activity is able to resume. For pre-Q apps, only the topmost activities of each * process are allowed to be resumed. * * @return true if this activity can be resumed. */ boolean canResumeByCompat() { return app == null || app.updateTopResumingActivityInProcessIfNeeded(this); } boolean getTurnScreenOnFlag() { return mTurnScreenOn; } Loading
services/core/java/com/android/server/wm/ActivityStack.java +4 −0 Original line number Diff line number Diff line Loading @@ -2597,6 +2597,10 @@ class ActivityStack extends ConfigurationContainer { return false; } if (!next.canResumeByCompat()) { return false; } // If we are sleeping, and there is no resumed activity, and the top // activity is paused, well that is the state we want. if (shouldSleepOrShutDownActivities() Loading
services/core/java/com/android/server/wm/ActivityStackSupervisor.java +5 −0 Original line number Diff line number Diff line Loading @@ -720,6 +720,11 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { r.setProcess(proc); // Ensure activity is allowed to be resumed after process has set. if (andResume && !r.canResumeByCompat()) { andResume = false; } if (getKeyguardController().isKeyguardLocked()) { r.notifyUnknownVisibilityLaunched(); } Loading
services/core/java/com/android/server/wm/RootActivityContainer.java +2 −5 Original line number Diff line number Diff line Loading @@ -777,12 +777,9 @@ class RootActivityContainer extends ConfigurationContainer // First the front stacks. In case any are not fullscreen and are in front of home. for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) { final ActivityDisplay display = mActivityDisplays.get(displayNdx); for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) { final ActivityStack stack = display.getChildAt(stackNdx); stack.ensureActivitiesVisibleLocked(starting, configChanges, preserveWindows, display.ensureActivitiesVisible(starting, configChanges, preserveWindows, notifyClients); } } } finally { mStackSupervisor.getKeyguardController().endActivityVisibilityUpdate(); } Loading