Fix issue where Assistant could be invoked at the same time as all apps

issue 132366412

-> First, we shouldn't accept flings when the delegate has intercepted. This prevents any situation
   where both are triggered.

-> Modified the slop to be the standard 8dp. This acts as a standalone fix because
   it means that there are no situations where we cross all apps slop before assistant slop.
   ie. in a purely vertical gesture from the corner, without this change, it's possible to trigger
   all apps instead of Assistant.

Change-Id: I39e3d8a525e165024399d9802d4cc1d7ae329ee6
This commit is contained in:
Adam Cohen
2019-05-21 15:45:43 -07:00
parent 4b41793155
commit 8f7d2b0dfd
@@ -41,6 +41,7 @@ import android.os.SystemClock;
import android.util.Log;
import android.view.HapticFeedbackConstants;
import android.view.MotionEvent;
import android.view.ViewConfiguration;
import com.android.launcher3.BaseDraggingActivity;
import com.android.launcher3.R;
@@ -97,7 +98,9 @@ public class AssistantTouchConsumer extends DelegateInputConsumer
mDistThreshold = res.getDimension(R.dimen.gestures_assistant_drag_threshold);
mTimeThreshold = res.getInteger(R.integer.assistant_gesture_min_time_threshold);
mAngleThreshold = res.getInteger(R.integer.assistant_gesture_corner_deg_threshold);
float slop = QuickStepContract.getQuickStepDragSlopPx();
float slop = ViewConfiguration.get(context).getScaledTouchSlop();
mSquaredSlop = slop * slop;
mActivityControlHelper = activityControlHelper;
mSwipeDetector = new SwipeDetector(mContext, this, SwipeDetector.VERTICAL);
@@ -273,7 +276,7 @@ public class AssistantTouchConsumer extends DelegateInputConsumer
@Override
public void onDragEnd(float velocity, boolean fling) {
if (fling && !mLaunchedAssistant) {
if (fling && !mLaunchedAssistant && mState != STATE_DELEGATE_ACTIVE) {
mLastProgress = 1;
try {
mSysUiProxy.onAssistantGestureCompletion(velocity);