From 2da28dcdc9ab399f2a3d38a1c2cabc08473abe9d Mon Sep 17 00:00:00 2001 From: Pat Manning Date: Thu, 24 Feb 2022 13:33:20 +0000 Subject: [PATCH] Refactor force visible nav bar into new secure setting. Decouples force visible from kids mode setting. Bug: 217668440 Test: manual Change-Id: Ia8a2b30eab7633e3b686c9afebd7e683ef984deb --- .../android/launcher3/taskbar/TaskbarActivityContext.java | 7 +++++++ .../taskbar/TaskbarForceVisibleImmersiveController.java | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java index fe091efecd..3f0a754264 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java @@ -128,6 +128,7 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ private final boolean mIsSafeModeEnabled; private final boolean mIsUserSetupComplete; + private final boolean mIsNavBarForceVisible; private final boolean mIsNavBarKidsMode; private boolean mIsDestroyed = false; // The flag to know if the window is excluded from magnification region computation. @@ -150,6 +151,8 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ () -> getPackageManager().isSafeMode()); mIsUserSetupComplete = SettingsCache.INSTANCE.get(this).getValue( Settings.Secure.getUriFor(Settings.Secure.USER_SETUP_COMPLETE), 0); + mIsNavBarForceVisible = SettingsCache.INSTANCE.get(this).getValue( + Settings.Secure.getUriFor(Settings.Secure.NAV_BAR_FORCE_VISIBLE), 0); mIsNavBarKidsMode = SettingsCache.INSTANCE.get(this).getValue( Settings.Secure.getUriFor(Settings.Secure.NAV_BAR_KIDS_MODE), 0); @@ -732,6 +735,10 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ return mIsNavBarKidsMode && isThreeButtonNav(); } + protected boolean isNavBarForceVisible() { + return mIsNavBarForceVisible; + } + /** * Called when we determine the touchable region. * diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarForceVisibleImmersiveController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarForceVisibleImmersiveController.java index 385090f932..c99cebb1a7 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarForceVisibleImmersiveController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarForceVisibleImmersiveController.java @@ -71,7 +71,7 @@ public class TaskbarForceVisibleImmersiveController implements TouchController { /** Update values tracked via sysui flags. */ public void updateSysuiFlags(int sysuiFlags) { mIsImmersiveMode = (sysuiFlags & SYSUI_STATE_IMMERSIVE_MODE) != 0; - if (mContext.isNavBarKidsModeActive()) { + if (mContext.isNavBarForceVisible()) { if (mIsImmersiveMode) { startIconDimming(); } else { @@ -113,7 +113,7 @@ public class TaskbarForceVisibleImmersiveController implements TouchController { * Returns whether the taskbar is always visible in immersive mode. */ private boolean isNavbarShownInImmersiveMode() { - return mIsImmersiveMode && mContext.isNavBarKidsModeActive(); + return mIsImmersiveMode && mContext.isNavBarForceVisible(); } private void updateIconDimmingAlpha() {