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:
@@ -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; }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user