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

Commit 838ba119 authored by Wale Ogunwale's avatar Wale Ogunwale
Browse files

Only request traversals if status bar visibility changed on reevaluation

Reduces the amount of churn in the system.

Change-Id: Ic1e93f1ed511fe95c551c08a06e239f0e5de93a0
parent cccaa51f
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -9140,9 +9140,9 @@ public class WindowManagerService extends IWindowManager.Stub
    }

    // TOOD(multidisplay): StatusBar on multiple screens?
    void updateStatusBarVisibilityLocked(int visibility) {
    boolean updateStatusBarVisibilityLocked(int visibility) {
        if (mLastDispatchedSystemUiVisibility == visibility) {
            return;
            return false;
        }
        final int globalDiff = (visibility ^ mLastDispatchedSystemUiVisibility)
                // We are only interested in differences of one of the
@@ -9173,16 +9173,18 @@ public class WindowManagerService extends IWindowManager.Stub
                // so sorry
            }
        }
        return true;
    }

    @Override
    public void reevaluateStatusBarVisibility() {
        synchronized (mWindowMap) {
            int visibility = mPolicy.adjustSystemUiVisibilityLw(mLastStatusBarVisibility);
            updateStatusBarVisibilityLocked(visibility);
            if (updateStatusBarVisibilityLocked(visibility)) {
                mWindowPlacerLocked.requestTraversal();
            }
        }
    }

    @Override
    public InputConsumerImpl addInputConsumer(Looper looper,