Merge "Let notification shade control system bar visibility" into tm-qpr-dev

This commit is contained in:
Tiger Huang
2022-08-19 09:30:59 +00:00
committed by Android (Google) Code Review

View File

@@ -2371,18 +2371,19 @@ public class DisplayPolicy {
return; return;
} }
// The immersive mode confirmation should never affect the system bar visibility, otherwise // Immersive mode confirmation should never affect the system bar visibility, otherwise
// it will unhide the navigation bar and hide itself. // it will unhide the navigation bar and hide itself.
if (winCandidate.getAttrs().token == mImmersiveModeConfirmation.getWindowToken()) { if (winCandidate.getAttrs().token == mImmersiveModeConfirmation.getWindowToken()) {
if (mNotificationShade != null && mNotificationShade.canReceiveKeys()) {
// The immersive mode confirmation took the focus from mLastFocusedWindow which was // Let notification shade control the system bar visibility.
// controlling the system ui visibility. So if mLastFocusedWindow can still receive winCandidate = mNotificationShade;
// keys, we let it keep controlling the visibility. } else if (mLastFocusedWindow != null && mLastFocusedWindow.canReceiveKeys()) {
final boolean lastFocusCanReceiveKeys = // Immersive mode confirmation took the focus from mLastFocusedWindow which was
(mLastFocusedWindow != null && mLastFocusedWindow.canReceiveKeys()); // controlling the system bar visibility. Let it keep controlling the visibility.
winCandidate = isKeyguardShowing() && !isKeyguardOccluded() ? mNotificationShade winCandidate = mLastFocusedWindow;
: lastFocusCanReceiveKeys ? mLastFocusedWindow } else {
: mTopFullscreenOpaqueWindowState; winCandidate = mTopFullscreenOpaqueWindowState;
}
if (winCandidate == null) { if (winCandidate == null) {
return; return;
} }