Loading services/core/java/com/android/server/am/ActivityManagerService.java +3 −0 Original line number Diff line number Diff line Loading @@ -6430,6 +6430,9 @@ public final class ActivityManagerService extends ActivityManagerNative if (mLockScreenShown == LOCK_SCREEN_SHOWN) { mLockScreenShown = LOCK_SCREEN_HIDDEN; updateSleepIfNeededLocked(); // Some stack visibility might change (e.g. docked stack) mStackSupervisor.ensureActivitiesVisibleLocked(null, 0, !PRESERVE_WINDOWS); } } } finally { Loading services/core/java/com/android/server/policy/PhoneWindowManager.java +0 −1 Original line number Diff line number Diff line Loading @@ -2409,7 +2409,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { case TYPE_WALLPAPER: case TYPE_DREAM: case TYPE_KEYGUARD_SCRIM: case TYPE_DOCK_DIVIDER: return false; default: // Hide only windows below the keyguard host window. Loading services/core/java/com/android/server/wm/DockedStackDividerController.java +3 −1 Original line number Diff line number Diff line Loading @@ -102,7 +102,9 @@ public class DockedStackDividerController implements DimLayerUser { return; } TaskStack stack = mDisplayContent.mService.mStackIdToStack.get(DOCKED_STACK_ID); final boolean visible = stack != null && stack.isVisibleLocked(); // If the stack is invisible, we policy force hide it in WindowAnimator.shouldForceHide final boolean visible = stack != null; if (mLastVisibility == visible && !force) { return; } Loading services/core/java/com/android/server/wm/TaskStack.java +2 −1 Original line number Diff line number Diff line Loading @@ -898,7 +898,8 @@ public class TaskStack implements DimLayer.DimLayerUser, } boolean isVisibleLocked() { final boolean keyguardOn = mService.mPolicy.isKeyguardShowingOrOccluded(); final boolean keyguardOn = mService.mPolicy.isKeyguardShowingOrOccluded() && !mService.mAnimator.mKeyguardGoingAway; if (keyguardOn && !StackId.isAllowedOverLockscreen(mStackId)) { // The keyguard is showing and the stack shouldn't show on top of the keyguard. return false; Loading services/core/java/com/android/server/wm/WindowAnimator.java +5 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_KEYGUARD; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_SYSTEM_ERROR; import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING; import static android.view.WindowManager.LayoutParams.TYPE_DOCK_DIVIDER; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_ANIM; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_FOCUS_LIGHT; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_KEYGUARD; Loading Loading @@ -231,7 +232,10 @@ public class WindowAnimator { // Only hide windows if the keyguard is active and not animating away. boolean keyguardOn = mPolicy.isKeyguardShowingOrOccluded() && mForceHiding != KEYGUARD_ANIMATING_OUT; return keyguardOn && !allowWhenLocked && (win.getDisplayId() == Display.DEFAULT_DISPLAY); boolean hideDockDivider = win.mAttrs.type == TYPE_DOCK_DIVIDER && win.getDisplayContent().getDockedStackLocked() == null; return keyguardOn && !allowWhenLocked && (win.getDisplayId() == Display.DEFAULT_DISPLAY) || hideDockDivider; } private void updateWindowsLocked(final int displayId) { Loading Loading
services/core/java/com/android/server/am/ActivityManagerService.java +3 −0 Original line number Diff line number Diff line Loading @@ -6430,6 +6430,9 @@ public final class ActivityManagerService extends ActivityManagerNative if (mLockScreenShown == LOCK_SCREEN_SHOWN) { mLockScreenShown = LOCK_SCREEN_HIDDEN; updateSleepIfNeededLocked(); // Some stack visibility might change (e.g. docked stack) mStackSupervisor.ensureActivitiesVisibleLocked(null, 0, !PRESERVE_WINDOWS); } } } finally { Loading
services/core/java/com/android/server/policy/PhoneWindowManager.java +0 −1 Original line number Diff line number Diff line Loading @@ -2409,7 +2409,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { case TYPE_WALLPAPER: case TYPE_DREAM: case TYPE_KEYGUARD_SCRIM: case TYPE_DOCK_DIVIDER: return false; default: // Hide only windows below the keyguard host window. Loading
services/core/java/com/android/server/wm/DockedStackDividerController.java +3 −1 Original line number Diff line number Diff line Loading @@ -102,7 +102,9 @@ public class DockedStackDividerController implements DimLayerUser { return; } TaskStack stack = mDisplayContent.mService.mStackIdToStack.get(DOCKED_STACK_ID); final boolean visible = stack != null && stack.isVisibleLocked(); // If the stack is invisible, we policy force hide it in WindowAnimator.shouldForceHide final boolean visible = stack != null; if (mLastVisibility == visible && !force) { return; } Loading
services/core/java/com/android/server/wm/TaskStack.java +2 −1 Original line number Diff line number Diff line Loading @@ -898,7 +898,8 @@ public class TaskStack implements DimLayer.DimLayerUser, } boolean isVisibleLocked() { final boolean keyguardOn = mService.mPolicy.isKeyguardShowingOrOccluded(); final boolean keyguardOn = mService.mPolicy.isKeyguardShowingOrOccluded() && !mService.mAnimator.mKeyguardGoingAway; if (keyguardOn && !StackId.isAllowedOverLockscreen(mStackId)) { // The keyguard is showing and the stack shouldn't show on top of the keyguard. return false; Loading
services/core/java/com/android/server/wm/WindowAnimator.java +5 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_KEYGUARD; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_SYSTEM_ERROR; import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING; import static android.view.WindowManager.LayoutParams.TYPE_DOCK_DIVIDER; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_ANIM; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_FOCUS_LIGHT; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_KEYGUARD; Loading Loading @@ -231,7 +232,10 @@ public class WindowAnimator { // Only hide windows if the keyguard is active and not animating away. boolean keyguardOn = mPolicy.isKeyguardShowingOrOccluded() && mForceHiding != KEYGUARD_ANIMATING_OUT; return keyguardOn && !allowWhenLocked && (win.getDisplayId() == Display.DEFAULT_DISPLAY); boolean hideDockDivider = win.mAttrs.type == TYPE_DOCK_DIVIDER && win.getDisplayContent().getDockedStackLocked() == null; return keyguardOn && !allowWhenLocked && (win.getDisplayId() == Display.DEFAULT_DISPLAY) || hideDockDivider; } private void updateWindowsLocked(final int displayId) { Loading