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

Commit 563178b1 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Do a full touch dispach when proxying touch" into ub-launcher3-qt-dev

parents 5e29395e d158097c
Loading
Loading
Loading
Loading
+2 −6
Original line number Diff line number Diff line
@@ -136,17 +136,13 @@ public class OverviewInputConsumer<T extends BaseDraggingActivity>
    }

    private void sendEvent(MotionEvent ev) {
        if (mInvalidated || !mTarget.verifyTouchDispatch(this, ev)) {
            mInvalidated = true;
        if (mInvalidated) {
            return;
        }
        int flags = ev.getEdgeFlags();
        ev.setEdgeFlags(flags | Utilities.EDGE_NAV_BAR);
        ev.offsetLocation(-mLocationOnScreen[0], -mLocationOnScreen[1]);
        if (ev.getAction() == ACTION_DOWN) {
            mTarget.onInterceptTouchEvent(ev);
        }
        mTarget.onTouchEvent(ev);
        mInvalidated = !mTarget.dispatchTouchEvent(this, ev);
        ev.offsetLocation(mLocationOnScreen[0], mLocationOnScreen[1]);
        ev.setEdgeFlags(flags);
    }
+7 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.content.Context;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewDebug;
import android.view.ViewGroup;
@@ -98,4 +99,10 @@ public class Hotseat extends CellLayout implements LogContainerProvider, Insetta
        setLayoutParams(lp);
        InsettableFrameLayout.dispatchInsets(this, insets);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        // Don't let if follow through to workspace
        return true;
    }
}
+0 −1
Original line number Diff line number Diff line
@@ -974,7 +974,6 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns,
        mDropTargetBar.setup(mDragController);

        mAllAppsController.setupViews(mAppsView);
        mHotseat.setOnInterceptTouchListener(mWorkspace::onInterceptHotseatTouch);
    }

    /**
+0 −7
Original line number Diff line number Diff line
@@ -475,13 +475,6 @@ public class Workspace extends PagedView<WorkspacePageIndicator>
        super.onViewAdded(child);
    }

    protected boolean onInterceptHotseatTouch(View v, MotionEvent ev) {
        // We don't want any clicks to go through to the hotseat unless the workspace is in
        // the normal state or an accessible drag is in progress.
        return !workspaceIconsCanBeDragged()
                && !mLauncher.getAccessibilityDelegate().isInAccessibleDrag();
    }

    /**
     * Initializes and binds the first page
     * @param qsb an existing qsb to recycle or null.
+6 −2
Original line number Diff line number Diff line
@@ -223,14 +223,18 @@ public abstract class BaseDragLayer<T extends Context & ActivityContext>

    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        return verifyTouchDispatch(this, ev) && super.dispatchTouchEvent(ev);
        return dispatchTouchEvent(this, ev);
    }

    public boolean dispatchTouchEvent(Object caller, MotionEvent ev) {
        return verifyTouchDispatch(caller, ev) && super.dispatchTouchEvent(ev);
    }

    /**
     * Returns true if the {@param caller} is allowed to dispatch {@param ev} on this view,
     * false otherwise.
     */
    public boolean verifyTouchDispatch(Object caller, MotionEvent ev) {
    private boolean verifyTouchDispatch(Object caller, MotionEvent ev) {
        int action = ev.getAction();
        if (action == ACTION_DOWN) {
            if (mCurrentTouchOwner != null) {