Refactor force visible nav bar into new secure setting.

Decouples force visible from kids mode setting.

Bug: 217668440
Test: manual
Change-Id: Ia8a2b30eab7633e3b686c9afebd7e683ef984deb
This commit is contained in:
Pat Manning
2022-02-28 14:55:47 +00:00
parent 82166fa6d8
commit 2da28dcdc9
2 changed files with 9 additions and 2 deletions
@@ -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.
*
@@ -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() {