Add canChildBeDraggable() method to SwipeHelper's callback

This callback checks the given child is actually draggable or not.
This method is need for ARC, since a child may not be draggable in
some cases.

FYI: ag/3244118 is the CL for NYC ARC.

Bug: 63874929
Bug: 62602530
Test: Compile and ran 'runtest systemui'
Change-Id: I085f1c1c72240529a19e0dcb1f543e7cb36899f0
This commit is contained in:
yoshiki iguchi
2018-01-15 11:14:25 +09:00
parent d6808dc0c0
commit 355692b0da

View File

@@ -21,6 +21,7 @@ import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.animation.ValueAnimator.AnimatorUpdateListener;
import android.annotation.NonNull;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.RectF;
@@ -316,10 +317,12 @@ public class SwipeHelper implements Gefingerpoken {
float deltaPerpendicular = perpendicularPos - mPerpendicularInitialTouchPos;
if (Math.abs(delta) > mPagingTouchSlop
&& Math.abs(delta) > Math.abs(deltaPerpendicular)) {
mCallback.onBeginDrag(mCurrView);
mDragging = true;
mInitialTouchPos = getPos(ev);
mTranslation = getTranslation(mCurrView);
if (mCallback.canChildBeDragged(mCurrView)) {
mCallback.onBeginDrag(mCurrView);
mDragging = true;
mInitialTouchPos = getPos(ev);
mTranslation = getTranslation(mCurrView);
}
cancelLongPress();
}
}
@@ -722,5 +725,10 @@ public class SwipeHelper implements Gefingerpoken {
* @return The factor the falsing threshold should be multiplied with
*/
float getFalsingThresholdFactor();
/**
* @return If true, the given view is draggable.
*/
default boolean canChildBeDragged(@NonNull View animView) { return true; }
}
}