From e62a1996b749f314644de43b362e1f51799e6131 Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Thu, 16 Dec 2021 06:27:52 +0000 Subject: [PATCH] Fix some small related to back button alpha - Skip updating nav button dark intensity if we're setting it manually while SUW is running - There should only be one alpha StatePropertyHolder for the same view otherwise when updating the properties it can clobber a previous state Bug: 204384193 Test: Disable dark mode on SUW and verify nav buttons show Change-Id: I450c3a5697954d9b464bdd622847beb2d01f3802 --- .../taskbar/NavbarButtonsViewController.java | 17 ++++++++++------- .../taskbar/TaskbarActivityContext.java | 3 +++ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java index 6de876c734..50637a12ce 100644 --- a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java @@ -87,7 +87,7 @@ public class NavbarButtonsViewController { private static final int FLAG_DISABLE_RECENTS = 1 << 8; private static final int FLAG_DISABLE_BACK = 1 << 9; private static final int FLAG_NOTIFICATION_SHADE_EXPANDED = 1 << 10; - private static final int FLAG_SCREEN_PINNING_ACTIVE = 1 << 10; + private static final int FLAG_SCREEN_PINNING_ACTIVE = 1 << 11; private static final int MASK_IME_SWITCHER_VISIBLE = FLAG_SWITCHER_SUPPORTED | FLAG_IME_VISIBLE; @@ -251,16 +251,19 @@ public class NavbarButtonsViewController { mBackButton = addButton(R.drawable.ic_sysbar_back, BUTTON_BACK, mNavButtonContainer, mControllers.navButtonController, R.id.back); mPropertyHolders.add(new StatePropertyHolder(mBackButton, - flags -> (flags & FLAG_DISABLE_BACK) == 0)); + flags -> { + // Show only if not disabled, and if not on the keyguard or otherwise only when + // the bouncer or a lockscreen app is showing above the keyguard + boolean showingOnKeyguard = (flags & FLAG_KEYGUARD_VISIBLE) == 0 || + (flags & FLAG_ONLY_BACK_FOR_BOUNCER_VISIBLE) != 0 || + (flags & FLAG_KEYGUARD_OCCLUDED) != 0; + return (flags & FLAG_DISABLE_BACK) == 0 + && ((flags & FLAG_KEYGUARD_VISIBLE) == 0 || showingOnKeyguard); + })); boolean isRtl = Utilities.isRtl(mContext.getResources()); mPropertyHolders.add(new StatePropertyHolder( mBackButton, flags -> (flags & FLAG_IME_VISIBLE) != 0, View.ROTATION, isRtl ? 90 : -90, 0)); - // Hide when keyguard is showing, show when bouncer or lock screen app is showing - mPropertyHolders.add(new StatePropertyHolder(mBackButton, - flags -> (flags & FLAG_KEYGUARD_VISIBLE) == 0 || - (flags & FLAG_ONLY_BACK_FOR_BOUNCER_VISIBLE) != 0 || - (flags & FLAG_KEYGUARD_OCCLUDED) != 0)); // Translate back button to be at end/start of other buttons for keyguard int navButtonSize = mContext.getResources().getDimensionPixelSize( R.dimen.taskbar_nav_buttons_size); diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java index 73c6579927..5308a8f3e8 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java @@ -403,6 +403,9 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ } public void onNavButtonsDarkIntensityChanged(float darkIntensity) { + if (!isUserSetupComplete()) { + return; + } mControllers.navbarButtonsViewController.getTaskbarNavButtonDarkIntensity() .updateValue(darkIntensity); }