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

Commit 608406db authored by Tiger Huang's avatar Tiger Huang Committed by Automerger Merge Worker
Browse files

Merge "Force consuming system bars if nav bar is shown forcibly" into udc-dev am: 495953ea

parents 25e512a7 495953ea
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -177,7 +177,8 @@ public class InsetsState implements Parcelable {
        if ((legacyWindowFlags & FLAG_FULLSCREEN) != 0) {
            compatInsetsTypes &= ~statusBars();
        }
        if (clearsCompatInsets(windowType, legacyWindowFlags, windowingMode)) {
        if (clearsCompatInsets(windowType, legacyWindowFlags, windowingMode)
                && !alwaysConsumeSystemBars) {
            compatInsetsTypes = 0;
        }

+7 −3
Original line number Diff line number Diff line
@@ -1111,8 +1111,13 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind
                    : controller.getSystemBarsAppearance();

            if (insets != null) {
                final boolean clearsCompatInsets = clearsCompatInsets(attrs.type, attrs.flags,
                        getResources().getConfiguration().windowConfiguration.getWindowingMode());
                mLastShouldAlwaysConsumeSystemBars = insets.shouldAlwaysConsumeSystemBars();

                final boolean clearsCompatInsets =
                        clearsCompatInsets(attrs.type, attrs.flags,
                                getResources().getConfiguration().windowConfiguration
                                        .getWindowingMode())
                        && !mLastShouldAlwaysConsumeSystemBars;
                final Insets stableBarInsets = insets.getInsetsIgnoringVisibility(
                        WindowInsets.Type.systemBars());
                final Insets systemInsets = clearsCompatInsets
@@ -1143,7 +1148,6 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind
                disallowAnimate |= (hasLeftStableInset != mLastHasLeftStableInset);
                mLastHasLeftStableInset = hasLeftStableInset;

                mLastShouldAlwaysConsumeSystemBars = insets.shouldAlwaysConsumeSystemBars();
                mLastSuppressScrimTypes = insets.getSuppressScrimTypes();
            }

+2 −1
Original line number Diff line number Diff line
@@ -2368,7 +2368,8 @@ public class DisplayPolicy {
        // We need to force the consumption of the system bars if they are force shown or if they
        // are controlled by a remote insets controller.
        mForceConsumeSystemBars = mForceShowSystemBars
                || mDisplayContent.getInsetsPolicy().remoteInsetsControllerControlsSystemBars(win);
                || getInsetsPolicy().remoteInsetsControllerControlsSystemBars(win)
                || getInsetsPolicy().forcesShowingNavigationBars(win);
        mDisplayContent.getInsetsPolicy().updateBarControlTarget(win);

        final boolean topAppHidesStatusBar = topAppHidesSystemBar(Type.statusBars());
+6 −2
Original line number Diff line number Diff line
@@ -567,8 +567,7 @@ class InsetsPolicy {
                return focusedWin;
            }
        }
        if (mPolicy.isForceShowNavigationBarEnabled() && focusedWin != null
                && focusedWin.getActivityType() == ACTIVITY_TYPE_STANDARD) {
        if (forcesShowingNavigationBars(focusedWin)) {
            // When "force show navigation bar" is enabled, it means both force visible is true, and
            // we are in 3-button navigation. In this mode, the navigation bar is forcibly shown
            // when activity type is ACTIVITY_TYPE_STANDARD which means Launcher or Recent could
@@ -604,6 +603,11 @@ class InsetsPolicy {
        return focusedWin;
    }

    boolean forcesShowingNavigationBars(WindowState win) {
        return mPolicy.isForceShowNavigationBarEnabled() && win != null
                && win.getActivityType() == ACTIVITY_TYPE_STANDARD;
    }

    /**
     * Determines whether the remote insets controller should take control of system bars for all
     * windows.