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

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

Merge "Use motion event time instead of system time when detecting motion...

Merge "Use motion event time instead of system time when detecting motion pause" into ub-launcher3-master
parents 79c73fd2 1274c7a3
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.view.HapticFeedbackConstants;
import android.view.MotionEvent;

import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherState;
@@ -96,9 +97,9 @@ public class FlingAndHoldTouchController extends PortraitStatesTouchController {
    }

    @Override
    public boolean onDrag(float displacement) {
        mMotionPauseDetector.addPosition(displacement, 0);
        return super.onDrag(displacement);
    public boolean onDrag(float displacement, MotionEvent event) {
        mMotionPauseDetector.addPosition(displacement, 0, event.getEventTime());
        return super.onDrag(displacement, event);
    }

    @Override
+1 −1
Original line number Diff line number Diff line
@@ -170,7 +170,7 @@ public class AssistantTouchConsumer implements InputConsumer {
                    // Movement
                    mDistance = (float) Math.hypot(mLastPos.x - mStartDragPos.x,
                            mLastPos.y - mStartDragPos.y);
                    mMotionPauseDetector.addPosition(mDistance, 0);
                    mMotionPauseDetector.addPosition(mDistance, 0, ev.getEventTime());
                    if (mDistance >= 0) {
                        final long diff = SystemClock.uptimeMillis() - mDragTime;
                        mTimeFraction = Math.min(diff * 1f / mTimeThreshold, 1);
+2 −1
Original line number Diff line number Diff line
@@ -252,7 +252,8 @@ public class OtherActivityInputConsumer extends ContextWrapper implements InputC
                        float orthogonalDisplacement = !isLandscape
                                ? ev.getX() - mDownPos.x
                                : ev.getY() - mDownPos.y;
                        mMotionPauseDetector.addPosition(displacement, orthogonalDisplacement);
                        mMotionPauseDetector.addPosition(displacement, orthogonalDisplacement,
                                ev.getEventTime());
                    }
                }
                break;
+1 −3
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@ package com.android.quickstep.util;

import android.content.Context;
import android.content.res.Resources;
import android.os.SystemClock;
import android.view.MotionEvent;

import com.android.launcher3.Alarm;
@@ -80,7 +79,7 @@ public class MotionPauseDetector {
     *
     * TODO: Use historical positions as well, e.g. {@link MotionEvent#getHistoricalY(int, int)}.
     */
    public void addPosition(float position, float orthogonalPosition) {
    public void addPosition(float position, float orthogonalPosition, long time) {
        if (mFirstPosition == null) {
            mFirstPosition = position;
        }
@@ -88,7 +87,6 @@ public class MotionPauseDetector {
            mFirstOrthogonalPosition = orthogonalPosition;
        }
        mForcePauseTimeout.setAlarm(FORCE_PAUSE_TIMEOUT);
        long time = SystemClock.uptimeMillis();
        if (mPreviousTime != null && mPreviousPosition != null) {
            long changeInTime = Math.max(1, time - mPreviousTime);
            float changeInPosition = position - mPreviousPosition;
+7 −3
Original line number Diff line number Diff line
@@ -219,6 +219,10 @@ public class SwipeDetector {

        boolean onDrag(float displacement);

        default boolean onDrag(float displacement, MotionEvent event) {
            return onDrag(displacement);
        }

        void onDragEnd(float velocity, boolean fling);
    }

@@ -307,7 +311,7 @@ public class SwipeDetector {
                    setState(ScrollState.DRAGGING);
                }
                if (mState == ScrollState.DRAGGING) {
                    reportDragging();
                    reportDragging(ev);
                }
                mLastPos.set(ev.getX(pointerIndex), ev.getY(pointerIndex));
                break;
@@ -359,14 +363,14 @@ public class SwipeDetector {
        return mDir.isPositive(mSubtractDisplacement);
    }

    private boolean reportDragging() {
    private boolean reportDragging(MotionEvent event) {
        if (mDisplacement != mLastDisplacement) {
            if (DBG) {
                Log.d(TAG, String.format("onDrag disp=%.1f", mDisplacement));
            }

            mLastDisplacement = mDisplacement;
            return mListener.onDrag(mDisplacement - mSubtractDisplacement);
            return mListener.onDrag(mDisplacement - mSubtractDisplacement, event);
        }
        return true;
    }