Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2da28dcd authored by Pat Manning's avatar Pat Manning
Browse files

Refactor force visible nav bar into new secure setting.

Decouples force visible from kids mode setting.

Bug: 217668440
Test: manual
Change-Id: Ia8a2b30eab7633e3b686c9afebd7e683ef984deb
parent 82166fa6
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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.
     *
+2 −2
Original line number Diff line number Diff line
@@ -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() {