Merging stylus click logic in longpress helper for better state-management
Bug: 150825081
Change-Id: I7c507c41e67c09bff5a4ad3abc7a7a62fecf910e
diff --git a/src/com/android/launcher3/BubbleTextView.java b/src/com/android/launcher3/BubbleTextView.java
index 21a8fd4..c8e73ba 100644
--- a/src/com/android/launcher3/BubbleTextView.java
+++ b/src/com/android/launcher3/BubbleTextView.java
@@ -39,7 +39,6 @@
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
-import android.view.ViewConfiguration;
import android.view.ViewDebug;
import android.widget.TextView;
@@ -109,8 +108,6 @@
private final int mDisplay;
private final CheckLongPressHelper mLongPressHelper;
- private final StylusEventHelper mStylusEventHelper;
- private final float mSlop;
private final boolean mLayoutHorizontal;
private final int mIconSize;
@@ -137,9 +134,6 @@
@ViewDebug.ExportedProperty(category = "launcher")
private boolean mDisableRelayout = false;
- @ViewDebug.ExportedProperty(category = "launcher")
- private final boolean mIgnorePaddingTouch;
-
private IconLoadRequest mIconLoadRequest;
public BubbleTextView(Context context) {
@@ -153,7 +147,6 @@
public BubbleTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
mActivity = ActivityContext.lookupContext(context);
- mSlop = ViewConfiguration.get(getContext()).getScaledTouchSlop();
TypedArray a = context.obtainStyledAttributes(attrs,
R.styleable.BubbleTextView, defStyle, 0);
@@ -166,23 +159,19 @@
setTextSize(TypedValue.COMPLEX_UNIT_PX, grid.iconTextSizePx);
setCompoundDrawablePadding(grid.iconDrawablePaddingPx);
defaultIconSize = grid.iconSizePx;
- mIgnorePaddingTouch = true;
} else if (mDisplay == DISPLAY_ALL_APPS) {
DeviceProfile grid = mActivity.getDeviceProfile();
setTextSize(TypedValue.COMPLEX_UNIT_PX, grid.allAppsIconTextSizePx);
setCompoundDrawablePadding(grid.allAppsIconDrawablePaddingPx);
defaultIconSize = grid.allAppsIconSizePx;
- mIgnorePaddingTouch = true;
} else if (mDisplay == DISPLAY_FOLDER) {
DeviceProfile grid = mActivity.getDeviceProfile();
setTextSize(TypedValue.COMPLEX_UNIT_PX, grid.folderChildTextSizePx);
setCompoundDrawablePadding(grid.folderChildDrawablePaddingPx);
defaultIconSize = grid.folderChildIconSizePx;
- mIgnorePaddingTouch = true;
} else {
// widget_selection or shortcut_popup
defaultIconSize = mActivity.getDeviceProfile().iconSizePx;
- mIgnorePaddingTouch = false;
}
mCenterVertically = a.getBoolean(R.styleable.BubbleTextView_centerVertically, false);
@@ -192,7 +181,6 @@
a.recycle();
mLongPressHelper = new CheckLongPressHelper(this);
- mStylusEventHelper = new StylusEventHelper(new SimpleOnStylusPressListener(this), this);
mDotParams = new DotRenderer.DrawParams();
@@ -333,42 +321,21 @@
@Override
public boolean onTouchEvent(MotionEvent event) {
// ignore events if they happen in padding area
- if (event.getAction() == MotionEvent.ACTION_DOWN && mIgnorePaddingTouch
+ if (event.getAction() == MotionEvent.ACTION_DOWN
&& (event.getY() < getPaddingTop()
|| event.getX() < getPaddingLeft()
|| event.getY() > getHeight() - getPaddingBottom()
|| event.getX() > getWidth() - getPaddingRight())) {
return false;
}
-
- // Call the superclass onTouchEvent first, because sometimes it changes the state to
- // isPressed() on an ACTION_UP
- boolean result = super.onTouchEvent(event);
-
- // Check for a stylus button press, if it occurs cancel any long press checks.
- if (mStylusEventHelper.onMotionEvent(event)) {
- mLongPressHelper.cancelLongPress();
- result = true;
+ if (isLongClickable()) {
+ super.onTouchEvent(event);
+ mLongPressHelper.onTouchEvent(event);
+ // Keep receiving the rest of the events
+ return true;
+ } else {
+ return super.onTouchEvent(event);
}
-
- switch (event.getAction()) {
- case MotionEvent.ACTION_DOWN:
- // If we're in a stylus button press, don't check for long press.
- if (!mStylusEventHelper.inStylusButtonPressed()) {
- mLongPressHelper.postCheckForLongPress();
- }
- break;
- case MotionEvent.ACTION_CANCEL:
- case MotionEvent.ACTION_UP:
- mLongPressHelper.cancelLongPress();
- break;
- case MotionEvent.ACTION_MOVE:
- if (!Utilities.pointInView(this, event.getX(), event.getY(), mSlop)) {
- mLongPressHelper.cancelLongPress();
- }
- break;
- }
- return result;
}
void setStayPressed(boolean stayPressed) {
@@ -531,7 +498,6 @@
@Override
public void cancelLongPress() {
super.cancelLongPress();
-
mLongPressHelper.cancelLongPress();
}