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

Commit 748afbec authored by Samuel Fufa's avatar Samuel Fufa
Browse files

Prevent hotseat touch hijack

Bug: 148639821
Test: Manual
Change-Id: Ia08af6b243a3492a898371b7bc66158df49d2427
parent 38f68a14
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -98,8 +98,8 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo
    protected boolean mUsingTabs;
    private boolean mSearchModeWhileUsingTabs = false;

    private RecyclerViewFastScroller mTouchHandler;
    private final Point mFastScrollerOffset = new Point();
    protected RecyclerViewFastScroller mTouchHandler;
    protected final Point mFastScrollerOffset = new Point();

    private final MultiValueAlpha mMultiValueAlpha;

@@ -238,6 +238,16 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo

    @Override
    public boolean onTouchEvent(MotionEvent ev) {
        if (ev.getAction() == MotionEvent.ACTION_DOWN) {
            AllAppsRecyclerView rv = getActiveRecyclerView();
            if (rv != null && rv.getScrollbar().isHitInParent(ev.getX(), ev.getY(),
                    mFastScrollerOffset)) {
                mTouchHandler = rv.getScrollbar();
            } else {
                mTouchHandler = null;

            }
        }
        if (mTouchHandler != null) {
            mTouchHandler.handleTouchEvent(ev, mFastScrollerOffset);
            return true;
+4 −1
Original line number Diff line number Diff line
@@ -51,7 +51,10 @@ public class LauncherAllAppsContainerView extends AllAppsContainerView {
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        // The AllAppsContainerView houses the QSB and is hence visible from the Workspace
        // Overview states. We shouldn't intercept for the scrubber in these cases.
        if (!mLauncher.isInState(LauncherState.ALL_APPS)) return false;
        if (!mLauncher.isInState(LauncherState.ALL_APPS)) {
            mTouchHandler = null;
            return false;
        }

        return super.onInterceptTouchEvent(ev);
    }