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

Commit 3d8e98f7 authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Make mStatusBar and mNavigationBar thread-safe in DisplayPolicy" into rvc-dev am: 7b558f74

Change-Id: I31bd1ff01dfc91874d3cb4c2d519dd41eb5481db
parents 89c87058 7b558f74
Loading
Loading
Loading
Loading
+62 −54
Original line number Diff line number Diff line
@@ -440,11 +440,13 @@ public class DisplayPolicy {
                    updateDreamingSleepToken(msg.arg1 != 0);
                    break;
                case MSG_REQUEST_TRANSIENT_BARS:
                    synchronized (mLock) {
                        WindowState targetBar = (msg.arg1 == MSG_REQUEST_TRANSIENT_BARS_ARG_STATUS)
                                ? mStatusBar : mNavigationBar;
                        if (targetBar != null) {
                            requestTransientBars(targetBar);
                        }
                    }
                    break;
                case MSG_DISPOSE_INPUT_CONSUMER:
                    disposeInputConsumer((InputConsumer) msg.obj);
@@ -499,17 +501,22 @@ public class DisplayPolicy {
                new SystemGesturesPointerEventListener.Callbacks() {
                    @Override
                    public void onSwipeFromTop() {
                        synchronized (mLock) {
                            if (mStatusBar != null) {
                                requestTransientBars(mStatusBar);
                            }
                        }
                    }

                    @Override
                    public void onSwipeFromBottom() {
                        if (mNavigationBar != null && mNavigationBarPosition == NAV_BAR_BOTTOM) {
                        synchronized (mLock) {
                            if (mNavigationBar != null
                                    && mNavigationBarPosition == NAV_BAR_BOTTOM) {
                                requestTransientBars(mNavigationBar);
                            }
                        }
                    }

                    @Override
                    public void onSwipeFromRight() {
@@ -517,13 +524,14 @@ public class DisplayPolicy {
                        synchronized (mLock) {
                            mDisplayContent.calculateSystemGestureExclusion(
                                    excludedRegion, null /* outUnrestricted */);
                        }
                            final boolean sideAllowed = mNavigationBarAlwaysShowOnSideGesture
                                    || mNavigationBarPosition == NAV_BAR_RIGHT;
                            if (mNavigationBar != null && sideAllowed
                                && !mSystemGestures.currentGestureStartedInRegion(excludedRegion)) {
                                    && !mSystemGestures.currentGestureStartedInRegion(
                                            excludedRegion)) {
                                requestTransientBars(mNavigationBar);
                            }
                        }
                        excludedRegion.recycle();
                    }

@@ -533,13 +541,14 @@ public class DisplayPolicy {
                        synchronized (mLock) {
                            mDisplayContent.calculateSystemGestureExclusion(
                                    excludedRegion, null /* outUnrestricted */);
                        }
                            final boolean sideAllowed = mNavigationBarAlwaysShowOnSideGesture
                                    || mNavigationBarPosition == NAV_BAR_LEFT;
                            if (mNavigationBar != null && sideAllowed
                                && !mSystemGestures.currentGestureStartedInRegion(excludedRegion)) {
                                    && !mSystemGestures.currentGestureStartedInRegion(
                                            excludedRegion)) {
                                requestTransientBars(mNavigationBar);
                            }
                        }
                        excludedRegion.recycle();
                    }

@@ -3156,7 +3165,6 @@ public class DisplayPolicy {
    }

    private void requestTransientBars(WindowState swipeTarget) {
        synchronized (mLock) {
        if (!mService.mPolicy.isUserSetupComplete()) {
            // Swipe-up for navigation bar is disabled during setup
            return;
@@ -3167,8 +3175,9 @@ public class DisplayPolicy {
                // Don't show status bar when swiping on already visible navigation bar
                return;
            }
                final InsetsControlTarget controlTarget =
                        swipeTarget.getControllableInsetProvider().getControlTarget();
            final InsetsSourceProvider provider = swipeTarget.getControllableInsetProvider();
            final InsetsControlTarget controlTarget = provider != null
                    ? provider.getControlTarget() : null;

            // No transient mode on lockscreen (in notification shade window).
            if (controlTarget == null || controlTarget == getNotificationShade()) {
@@ -3197,7 +3206,6 @@ public class DisplayPolicy {
        }
        mImmersiveModeConfirmation.confirmCurrentPrompt();
    }
    }

    private void disposeInputConsumer(InputConsumer inputConsumer) {
        if (inputConsumer != null) {