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

Commit b063775e authored by Miranda Kephart's avatar Miranda Kephart
Browse files

Pass in fling velocity for gesture progress

Calls SystemUIProxy.onGestureCompletion for a completed gesture
(either drag or fling) and passes in the velocity (0 for drags).

Bug: 132356358
Test: manual

Change-Id: I080adc401e19a6141627d1806b425056f7eefcbd
parent 418b9bc5
Loading
Loading
Loading
Loading
+37 −22
Original line number Diff line number Diff line
@@ -218,32 +218,36 @@ public class AssistantTouchConsumer extends DelegateInputConsumer
    private void updateAssistantProgress() {
        if (!mLaunchedAssistant) {
            mLastProgress = Math.min(mDistance * 1f / mDistThreshold, 1) * mTimeFraction;
            updateAssistant(SWIPE);
            try {
                if (mDistance >= mDistThreshold && mTimeFraction >= 1) {
                    mSysUiProxy.onAssistantGestureCompletion(0);
                    startAssistantInternal(SWIPE);

                    Bundle args = new Bundle();
                    args.putInt(INVOCATION_TYPE_KEY, INVOCATION_TYPE_GESTURE);
                    mSysUiProxy.startAssistant(args);
                    mLaunchedAssistant = true;
                } else {
                    mSysUiProxy.onAssistantProgress(mLastProgress);
                }
            } catch (RemoteException e) {
                Log.w(TAG, "Failed to send SysUI start/send assistant progress: " + mLastProgress,
                    e);
            }
        }
    }

    private void updateAssistant(int gestureType) {
        try {
            mSysUiProxy.onAssistantProgress(mLastProgress);
            if (gestureType == FLING || (mDistance >= mDistThreshold && mTimeFraction >= 1)) {
    private void startAssistantInternal(int gestureType) {
        UserEventDispatcher.newInstance(mContext)
            .logActionOnContainer(gestureType, mDirection, NAVBAR);
                Bundle args = new Bundle();
                args.putInt(INVOCATION_TYPE_KEY, INVOCATION_TYPE_GESTURE);

                BaseDraggingActivity launcherActivity = mActivityControlHelper.getCreatedActivity();
        BaseDraggingActivity launcherActivity = mActivityControlHelper
            .getCreatedActivity();
        if (launcherActivity != null) {
            launcherActivity.getRootView().performHapticFeedback(
                13, // HapticFeedbackConstants.GESTURE_END
                HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING);
        }

                mSysUiProxy.startAssistant(args);
                mLaunchedAssistant = true;
            }
        } catch (RemoteException e) {
            Log.w(TAG, "Failed to send SysUI start/send assistant progress: " + mLastProgress, e);
        }
    }

    public static boolean withinTouchRegion(Context context, MotionEvent ev) {
@@ -268,7 +272,18 @@ public class AssistantTouchConsumer extends DelegateInputConsumer
    public void onDragEnd(float velocity, boolean fling) {
        if (fling && !mLaunchedAssistant) {
            mLastProgress = 1;
            updateAssistant(FLING);
            try {
                mSysUiProxy.onAssistantGestureCompletion(velocity);
                startAssistantInternal(FLING);

                Bundle args = new Bundle();
                args.putInt(INVOCATION_TYPE_KEY, INVOCATION_TYPE_GESTURE);
                mSysUiProxy.startAssistant(args);
                mLaunchedAssistant = true;
            } catch (RemoteException e) {
                Log.w(TAG, "Failed to send SysUI start/send assistant progress: " + mLastProgress,
                    e);
            }
        }
    }
}