From c750e3d3aa3a12a97081531d2c46a111fc76b89a Mon Sep 17 00:00:00 2001 From: Vinit Nayak Date: Wed, 23 Mar 2022 14:09:25 -0700 Subject: [PATCH] Hide taskbar when launcher receives nav and keyguard showing * On large screen we receive notification shade expanded signals even on keyguard. * Add a check to not show taskbar if keyguard is showing Fixes: 223465924 Test: Taskbar doesn't show on 3 button nav except on bouncer, as expected. Change-Id: I4a7ea14422eda13ae8571793ed7ba1a1964072d6 --- .../taskbar/NavbarButtonsViewController.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java index 7ab59b8d9b..ca0767b642 100644 --- a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java @@ -194,8 +194,7 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT && (flags & FLAG_SCREEN_PINNING_ACTIVE) == 0)); mPropertyHolders.add(new StatePropertyHolder(mControllers.taskbarDragLayerController - .getKeyguardBgTaskbar(), - flags -> (flags & FLAG_KEYGUARD_VISIBLE) == 0, AnimatedFloat.VALUE, 1, 0)); + .getKeyguardBgTaskbar(), flags -> (flags & FLAG_KEYGUARD_VISIBLE) == 0)); // Force nav buttons (specifically back button) to be visible during setup wizard. boolean isInSetup = !mContext.isUserSetupComplete(); @@ -297,12 +296,14 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT mNavButtonContainer.requestLayout(); } - // Animate taskbar background when any of these flags are enabled - int flagsToShowBg = FLAG_ONLY_BACK_FOR_BOUNCER_VISIBLE - | FLAG_NOTIFICATION_SHADE_EXPANDED; + // Animate taskbar background when either.. + // notification shade expanded AND not on keyguard + // back is visible for bouncer mPropertyHolders.add(new StatePropertyHolder( mControllers.taskbarDragLayerController.getNavbarBackgroundAlpha(), - flags -> (flags & flagsToShowBg) != 0, AnimatedFloat.VALUE, 1, 0)); + flags -> ((flags & FLAG_NOTIFICATION_SHADE_EXPANDED) != 0 + && (flags & FLAG_KEYGUARD_VISIBLE) == 0) + || (flags & FLAG_ONLY_BACK_FOR_BOUNCER_VISIBLE) != 0)); // Rotation button RotationButton rotationButton = new RotationButtonImpl( @@ -816,6 +817,10 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT this(alphaProperty, enableCondition, MultiValueAlpha.VALUE, 1, 0); } + StatePropertyHolder(AnimatedFloat animatedFloat, IntPredicate enableCondition) { + this(animatedFloat, enableCondition, AnimatedFloat.VALUE, 1, 0); + } + StatePropertyHolder(T target, IntPredicate enabledCondition, Property property, float enabledValue, float disabledValue) { mEnableCondition = enabledCondition;