From 1f4259057e3b3320cb5f342aa5779dd3ea3e6ae5 Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Fri, 22 Jul 2016 10:37:50 -0700 Subject: [PATCH] Never show transient navigation bar when empty Prevents the status bar from showing in a transient way when it's empty and hidden by the focused window. Change-Id: Iaa191ed7b50cbc656a0a763b02b677d11759293e Fixes: 30283262 --- .../com/android/server/policy/PhoneWindowManager.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index 22521b916ba8b..0f3f2ace9a668 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -6142,7 +6142,9 @@ public class PhoneWindowManager implements WindowManagerPolicy { return; } mPendingPanicGestureUptime = SystemClock.uptimeMillis(); - mNavigationBarController.showTransient(); + if (!isNavBarEmpty(mLastSystemUiFlags)) { + mNavigationBarController.showTransient(); + } } } }; @@ -6154,7 +6156,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { return; } boolean sb = mStatusBarController.checkShowTransientBarLw(); - boolean nb = mNavigationBarController.checkShowTransientBarLw(); + boolean nb = mNavigationBarController.checkShowTransientBarLw() + && !isNavBarEmpty(mLastSystemUiFlags); if (sb || nb) { // Don't show status bar when swiping on already visible navigation bar if (!nb && swipeTarget == mNavigationBar) { @@ -7507,7 +7510,9 @@ public class PhoneWindowManager implements WindowManagerPolicy { // we're no longer on the Keyguard and the screen is ready. We can now request the bars. mPendingPanicGestureUptime = 0; mStatusBarController.showTransient(); - mNavigationBarController.showTransient(); + if (!isNavBarEmpty(vis)) { + mNavigationBarController.showTransient(); + } } final boolean denyTransientStatus = mStatusBarController.isTransientShowRequested()