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
diff --git a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java
index 7ab59b8..ca0767b 100644
--- a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java
@@ -194,8 +194,7 @@
&& (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 @@
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 @@
this(alphaProperty, enableCondition, MultiValueAlpha.VALUE, 1, 0);
}
+ StatePropertyHolder(AnimatedFloat animatedFloat, IntPredicate enableCondition) {
+ this(animatedFloat, enableCondition, AnimatedFloat.VALUE, 1, 0);
+ }
+
<T> StatePropertyHolder(T target, IntPredicate enabledCondition,
Property<T, Float> property, float enabledValue, float disabledValue) {
mEnableCondition = enabledCondition;