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

Commit bc45fd23 authored by Tiger Huang's avatar Tiger Huang
Browse files

Fix ScreenDecorWindowTests on devices without nav bar

Navigation bar and screen decor windows would comsume the restricted
frame. By the current logic, only when the device has navigation bar,
app windows with SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION can extend to
the unrestricted frame. So, if the device doesn't have navigation bar,
app windows can never extend to the unrestricted frame (the insets
won't be affected by screen decor windows).

This CL removes the check about the existence of navigation bar.

Bug: 119084635
Test: atest ScreenDecorWindowTests com.android.server.policy
Change-Id: Ia7de52beb5b639c0c6a246bb1dfa16518c7509b1
parent 72951882
Loading
Loading
Loading
Loading
+4 −8
Original line number Diff line number Diff line
@@ -2152,8 +2152,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
    }

    /**
     * @return whether the navigation bar can be hidden, e.g. the device has a
     *         navigation bar and touch exploration is not enabled
     * @return whether the navigation bar can be hidden, e.g. the device has a navigation bar
     */
    private boolean canHideNavigationBar() {
        return mDefaultDisplayPolicy.hasNavigationBar();
@@ -4251,8 +4250,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
        final boolean screenDecor = (pfl & PRIVATE_FLAG_IS_SCREEN_DECOR) != 0;

        if (layoutInScreenAndInsetDecor && !screenDecor) {
            if (canHideNavigationBar() &&
                    (sysUiVis & View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) != 0) {
            if ((sysUiVis & View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) != 0) {
                outFrame.set(displayFrames.mUnrestricted);
            } else {
                outFrame.set(displayFrames.mRestricted);
@@ -4911,8 +4909,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                        of.set(displayFrames.mOverscan);
                        df.set(displayFrames.mOverscan);
                        pf.set(displayFrames.mOverscan);
                    } else if (canHideNavigationBar()
                            && (sysUiFl & View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) != 0
                    } else if ((sysUiFl & View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) != 0
                            && (type >= FIRST_APPLICATION_WINDOW && type <= LAST_SUB_WINDOW
                            || type == TYPE_VOLUME_OVERLAY)) {
                        // Asking for layout as if the nav bar is hidden, lets the application
@@ -5008,8 +5005,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                    of.set(displayFrames.mOverscan);
                    df.set(displayFrames.mOverscan);
                    pf.set(displayFrames.mOverscan);
                } else if (canHideNavigationBar()
                        && (sysUiFl & View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) != 0
                } else if ((sysUiFl & View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) != 0
                        && (type == TYPE_STATUS_BAR
                            || type == TYPE_TOAST
                            || type == TYPE_DOCK_DIVIDER