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

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

Merge "Fix issue where pointer id was being used to set as action index" into ub-launcher3-master

parents bb248848 6b82a084
Loading
Loading
Loading
Loading
+11 −7
Original line number Diff line number Diff line
@@ -82,7 +82,7 @@ public class TouchEventTranslator {
    public void dispatchDownEvents(MotionEvent ev) {
        for(int i = 0; i < ev.getPointerCount() && i < mDownEvents.size(); i++) {
            int pid = ev.getPointerId(i);
            put(pid, ev.getX(i), 0, mDownEvents.get(i).timeStamp, ev);
            put(pid, i, ev.getX(i), 0, mDownEvents.get(i).timeStamp, ev);
        }
    }

@@ -103,7 +103,7 @@ public class TouchEventTranslator {
                    }
                    generateEvent(ev.getAction(), ev);
                } else {
                    put(pid, x, y, ev);
                    put(pid, index, x, y, ev);
                }
                break;
            case MotionEvent.ACTION_MOVE:
@@ -128,11 +128,11 @@ public class TouchEventTranslator {
        }
    }

    private TouchEventTranslator put(int id, float x, float y, MotionEvent ev) {
        return put(id, x, y, ev.getEventTime(), ev);
    private TouchEventTranslator put(int id, int index, float x, float y, MotionEvent ev) {
        return put(id, index, x, y, ev.getEventTime(), ev);
    }

    private TouchEventTranslator put(int id, float x, float y, long ms, MotionEvent ev) {
    private TouchEventTranslator put(int id, int index, float x, float y, long ms, MotionEvent ev) {
        checkFingerExistence(id, false);
        boolean isInitialDown = (mFingers.size() == 0);

@@ -155,7 +155,7 @@ public class TouchEventTranslator {
        } else {
            action = MotionEvent.ACTION_POINTER_DOWN;
            // Set the id of the changed pointer.
            action |= id << MotionEvent.ACTION_POINTER_INDEX_SHIFT;
            action |= index << MotionEvent.ACTION_POINTER_INDEX_SHIFT;
        }
        generateEvent(action, ms, ev);
        return this;
@@ -209,7 +209,7 @@ public class TouchEventTranslator {
    public void printSamples(String msg, MotionEvent ev) {
        System.out.printf("%s %s", msg, MotionEvent.actionToString(ev.getActionMasked()));
        final int pointerCount = ev.getPointerCount();
        System.out.printf("#%d/%d", ev.getPointerId(ev.getActionIndex()), pointerCount);
        System.out.printf("#%d/%d", ev.getActionIndex(), pointerCount);
        System.out.printf(" t=%d:", ev.getEventTime());
        for (int p = 0; p < pointerCount; p++) {
            System.out.printf("  id=%d: (%f,%f)",
@@ -242,6 +242,10 @@ public class TouchEventTranslator {
        if (DEBUG) {
            printSamples(TAG + " generateEvent", event);
        }
        if (event.getPointerId(event.getActionIndex()) < 0) {
            printSamples(TAG + "generateEvent", event);
            throw new IllegalStateException(event.getActionIndex() + " not found in MotionEvent");
        }
        mListener.accept(event);
        event.recycle();
    }