Loading services/core/java/com/android/server/wm/ActivityRecord.java +9 −9 Original line number Diff line number Diff line Loading @@ -5524,8 +5524,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A } /** @return {@code true} if this activity should be made visible. */ private boolean shouldBeVisible(boolean behindFullscreenActivity, boolean ignoringKeyguard) { updateVisibilityIgnoringKeyguard(behindFullscreenActivity); private boolean shouldBeVisible(boolean behindOccludedContainer, boolean ignoringKeyguard) { updateVisibilityIgnoringKeyguard(behindOccludedContainer); if (ignoringKeyguard) { return visibleIgnoringKeyguard; Loading Loading @@ -5583,20 +5583,20 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A return differentUidOverlayActivity != null; } void updateVisibilityIgnoringKeyguard(boolean behindFullscreenActivity) { visibleIgnoringKeyguard = (!behindFullscreenActivity || mLaunchTaskBehind) void updateVisibilityIgnoringKeyguard(boolean behindOccludedContainer) { visibleIgnoringKeyguard = (!behindOccludedContainer || mLaunchTaskBehind) && showToCurrentUser(); } boolean shouldBeVisible() { final Task rootTask = getRootTask(); if (rootTask == null) { final Task task = getTask(); if (task == null) { return false; } final boolean behindFullscreenActivity = !rootTask.shouldBeVisible(null /* starting */) || rootTask.getOccludingActivityAbove(this) != null; return shouldBeVisible(behindFullscreenActivity, false /* ignoringKeyguard */); final boolean behindOccludedContainer = !task.shouldBeVisible(null /* starting */) || task.getOccludingActivityAbove(this) != null; return shouldBeVisible(behindOccludedContainer, false /* ignoringKeyguard */); } void makeVisibleIfNeeded(ActivityRecord starting, boolean reportToClient) { Loading services/core/java/com/android/server/wm/Task.java +4 −18 Original line number Diff line number Diff line Loading @@ -5053,22 +5053,10 @@ class Task extends TaskFragment { positionChildAtTop(rTask); } Task task = null; if (!newTask && isOrhasTask) { // Starting activity cannot be occluding activity, otherwise starting window could be // remove immediately without transferring to starting activity. final ActivityRecord occludingActivity = getOccludingActivityAbove(r); if (occludingActivity != null) { // Here it is! Now, if this is not yet visible (occluded by another task) to the // user, then just add it without starting; it will get started when the user // navigates back to it. ProtoLog.i(WM_DEBUG_ADD_REMOVE, "Adding activity %s to task %s " + "callers: %s", r, task, new RuntimeException("here").fillInStackTrace()); rTask.positionChildAtTop(r); if (!newTask && isOrhasTask && !r.shouldBeVisible()) { ActivityOptions.abort(options); return; } } // Place a new activity at top of root task, so it is next to interact with the user. Loading Loading @@ -5697,9 +5685,7 @@ class Task extends TaskFragment { return false; } // See if there is an occluding activity on-top of this one. final ActivityRecord occludingActivity = getOccludingActivityAbove(r); if (occludingActivity != null) return false; if (!r.shouldBeVisible()) return false; if (r.finishing) Slog.e(TAG, "willActivityBeVisible: Returning false," + " would have returned true for r=" + r); Loading Loading
services/core/java/com/android/server/wm/ActivityRecord.java +9 −9 Original line number Diff line number Diff line Loading @@ -5524,8 +5524,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A } /** @return {@code true} if this activity should be made visible. */ private boolean shouldBeVisible(boolean behindFullscreenActivity, boolean ignoringKeyguard) { updateVisibilityIgnoringKeyguard(behindFullscreenActivity); private boolean shouldBeVisible(boolean behindOccludedContainer, boolean ignoringKeyguard) { updateVisibilityIgnoringKeyguard(behindOccludedContainer); if (ignoringKeyguard) { return visibleIgnoringKeyguard; Loading Loading @@ -5583,20 +5583,20 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A return differentUidOverlayActivity != null; } void updateVisibilityIgnoringKeyguard(boolean behindFullscreenActivity) { visibleIgnoringKeyguard = (!behindFullscreenActivity || mLaunchTaskBehind) void updateVisibilityIgnoringKeyguard(boolean behindOccludedContainer) { visibleIgnoringKeyguard = (!behindOccludedContainer || mLaunchTaskBehind) && showToCurrentUser(); } boolean shouldBeVisible() { final Task rootTask = getRootTask(); if (rootTask == null) { final Task task = getTask(); if (task == null) { return false; } final boolean behindFullscreenActivity = !rootTask.shouldBeVisible(null /* starting */) || rootTask.getOccludingActivityAbove(this) != null; return shouldBeVisible(behindFullscreenActivity, false /* ignoringKeyguard */); final boolean behindOccludedContainer = !task.shouldBeVisible(null /* starting */) || task.getOccludingActivityAbove(this) != null; return shouldBeVisible(behindOccludedContainer, false /* ignoringKeyguard */); } void makeVisibleIfNeeded(ActivityRecord starting, boolean reportToClient) { Loading
services/core/java/com/android/server/wm/Task.java +4 −18 Original line number Diff line number Diff line Loading @@ -5053,22 +5053,10 @@ class Task extends TaskFragment { positionChildAtTop(rTask); } Task task = null; if (!newTask && isOrhasTask) { // Starting activity cannot be occluding activity, otherwise starting window could be // remove immediately without transferring to starting activity. final ActivityRecord occludingActivity = getOccludingActivityAbove(r); if (occludingActivity != null) { // Here it is! Now, if this is not yet visible (occluded by another task) to the // user, then just add it without starting; it will get started when the user // navigates back to it. ProtoLog.i(WM_DEBUG_ADD_REMOVE, "Adding activity %s to task %s " + "callers: %s", r, task, new RuntimeException("here").fillInStackTrace()); rTask.positionChildAtTop(r); if (!newTask && isOrhasTask && !r.shouldBeVisible()) { ActivityOptions.abort(options); return; } } // Place a new activity at top of root task, so it is next to interact with the user. Loading Loading @@ -5697,9 +5685,7 @@ class Task extends TaskFragment { return false; } // See if there is an occluding activity on-top of this one. final ActivityRecord occludingActivity = getOccludingActivityAbove(r); if (occludingActivity != null) return false; if (!r.shouldBeVisible()) return false; if (r.finishing) Slog.e(TAG, "willActivityBeVisible: Returning false," + " would have returned true for r=" + r); Loading