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

Commit 78f88d10 authored by Matthew Ng's avatar Matthew Ng
Browse files

Disable quick step when notification is open

When notification shade is open, any swipe gestures should only affect
the notification shade. When the shade is gone, users should be able to
interact with quick step again.

Change-Id: I18bede697ae81b8010f10bf5e538d3142b39c86f
Fixes: 72185561
Test: manual
parent 2e7de8ce
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -224,7 +224,7 @@ public class NavigationBarFragment extends Fragment implements Callbacks {
        mNavigationBarView = (NavigationBarView) view;

        mNavigationBarView.setDisabledFlags(mDisabledFlags1);
        mNavigationBarView.setComponents(mRecents, mDivider);
        mNavigationBarView.setComponents(mRecents, mDivider, mStatusBar.getPanel());
        mNavigationBarView.setOnVerticalChangedListener(this::onVerticalChanged);
        mNavigationBarView.setOnTouchListener(this::onNavigationTouch);
        if (savedInstanceState != null) {
+7 −2
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import com.android.systemui.Dependency;
import com.android.systemui.OverviewProxyService;
import com.android.systemui.R;
import com.android.systemui.RecentsComponent;
import com.android.systemui.SysUiServiceProvider;
import com.android.systemui.plugins.statusbar.phone.NavGesture.GestureHelper;
import com.android.systemui.shared.recents.IOverviewProxy;
import com.android.systemui.shared.recents.utilities.Utilities;
@@ -78,6 +79,7 @@ public class NavigationBarGestureHelper implements TunerService.Tunable, Gesture
    private final int mScrollTouchSlop;
    private final Matrix mTransformGlobalMatrix = new Matrix();
    private final Matrix mTransformLocalMatrix = new Matrix();
    private final StatusBar mStatusBar;
    private int mTouchDownX;
    private int mTouchDownY;
    private boolean mDownOnRecents;
@@ -90,6 +92,7 @@ public class NavigationBarGestureHelper implements TunerService.Tunable, Gesture

    public NavigationBarGestureHelper(Context context) {
        mContext = context;
        mStatusBar = SysUiServiceProvider.getComponent(context, StatusBar.class);
        Resources r = context.getResources();
        mScrollTouchSlop = r.getDimensionPixelSize(R.dimen.navigation_bar_min_swipe_distance);
        mQuickScrubController = new QuickScrubController(context);
@@ -146,7 +149,8 @@ public class NavigationBarGestureHelper implements TunerService.Tunable, Gesture
                break;
            }
        }
        if (!mQuickScrubController.onInterceptTouchEvent(event)) {
        if (mStatusBar.isPresenterFullyCollapsed()
                && !mQuickScrubController.onInterceptTouchEvent(event)) {
            proxyMotionEvents(event);
            return false;
        }
@@ -304,7 +308,8 @@ public class NavigationBarGestureHelper implements TunerService.Tunable, Gesture
    }

    public boolean onTouchEvent(MotionEvent event) {
        boolean result = mQuickScrubController.onTouchEvent(event) || proxyMotionEvents(event);
        boolean result = mStatusBar.isPresenterFullyCollapsed()
                && (mQuickScrubController.onTouchEvent(event) || proxyMotionEvents(event));
        if (mDockWindowEnabled) {
            result |= handleDockWindowEvent(event);
        }
+13 −2
Original line number Diff line number Diff line
@@ -126,6 +126,7 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
    private RecentsComponent mRecentsComponent;
    private Divider mDivider;
    private SwipeUpOnboarding mSwipeUpOnboarding;
    private NotificationPanelView mPanelView;

    private class NavTransitionListener implements TransitionListener {
        private boolean mBackTransitioning;
@@ -206,7 +207,7 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
    }

    private final OverviewProxyListener mOverviewProxyListener = isConnected -> {
        setSlippery(!isConnected);
        updateSlippery();
        setDisabledFlags(mDisabledFlags, true);
        setUpSwipeUpOnboarding(isConnected);
    };
@@ -251,9 +252,11 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
        return mBarTransitions.getLightTransitionsController();
    }

    public void setComponents(RecentsComponent recentsComponent, Divider divider) {
    public void setComponents(RecentsComponent recentsComponent, Divider divider,
            NotificationPanelView panel) {
        mRecentsComponent = recentsComponent;
        mDivider = divider;
        mPanelView = panel;
        if (mGestureHelper instanceof NavigationBarGestureHelper) {
            ((NavigationBarGestureHelper) mGestureHelper).setComponents(
                    recentsComponent, divider, this);
@@ -571,6 +574,14 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
        }
    }

    public void onPanelExpandedChange(boolean expanded) {
        updateSlippery();
    }

    private void updateSlippery() {
        setSlippery(mOverviewProxyService.getProxy() != null && mPanelView.isFullyExpanded());
    }

    private void setSlippery(boolean slippery) {
        boolean changed = false;
        final ViewGroup navbarView = ((ViewGroup) getParent());
+3 −0
Original line number Diff line number Diff line
@@ -250,6 +250,9 @@ public class PhoneStatusBarView extends PanelBar {
        super.panelExpansionChanged(frac, expanded);
        mPanelFraction = frac;
        updateScrimFraction();
        if ((frac == 0 || frac == 1) && mBar.getNavigationBarView() != null) {
            mBar.getNavigationBarView().onPanelExpandedChange(expanded);
        }
    }

    private void updateScrimFraction() {