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

Commit c2e683bb authored by Tiger's avatar Tiger
Browse files

Fix DisplayPolicy#isOverlappingWithNavBar

The function name didn't match its logic. It only worked when
win.mActivityRecord is not null.

This CL fixes the logic and make the dimming window and the window with
TYPE_VOICE_INTERACTION be able to be mNavBarColorWindowCandidate.

Fix: 270298341
Test: atest DisplayPolicyTests
Change-Id: If216cf2f73615d82129e51fbacc326fd02cbb8f8
parent da896af6
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -1364,9 +1364,8 @@ public class DisplayPolicy {
        applyKeyguardPolicy(win, imeTarget);

        // Check if the freeform window overlaps with the navigation bar area.
        final boolean isOverlappingWithNavBar = isOverlappingWithNavBar(win);
        if (isOverlappingWithNavBar && !mIsFreeformWindowOverlappingWithNavBar
                && win.inFreeformWindowingMode()) {
        if (!mIsFreeformWindowOverlappingWithNavBar && win.inFreeformWindowingMode()
                && win.mActivityRecord != null && isOverlappingWithNavBar(win)) {
            mIsFreeformWindowOverlappingWithNavBar = true;
        }

@@ -1454,7 +1453,7 @@ public class DisplayPolicy {
            // mode; if it's in gesture navigation mode, the navigation bar will be
            // NAV_BAR_FORCE_TRANSPARENT and its appearance won't be decided by overlapping
            // windows.
            if (isOverlappingWithNavBar) {
            if (isOverlappingWithNavBar(win)) {
                if (mNavBarColorWindowCandidate == null) {
                    mNavBarColorWindowCandidate = win;
                    addSystemBarColorApp(win);
@@ -1482,7 +1481,7 @@ public class DisplayPolicy {
                    addSystemBarColorApp(win);
                }
            }
            if (isOverlappingWithNavBar && mNavBarColorWindowCandidate == null) {
            if (isOverlappingWithNavBar(win) && mNavBarColorWindowCandidate == null) {
                mNavBarColorWindowCandidate = win;
            }
        }
@@ -2645,7 +2644,7 @@ public class DisplayPolicy {

    @VisibleForTesting
    static boolean isOverlappingWithNavBar(@NonNull WindowState win) {
        if (win.mActivityRecord == null || !win.isVisible()) {
        if (!win.isVisible()) {
            return false;
        }