From 44a3b2030d00e8076efc8bd38544f771fab0b207 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Thu, 9 Jul 2020 08:27:06 -0700 Subject: [PATCH] Fixing shortcut popop non-clicable on the icon Bug: 160819504 Change-Id: I182399aa271a2ad290c33fb39356f8f2c99e105f --- src/com/android/launcher3/BubbleTextView.java | 15 +++++++++++---- .../launcher3/shortcuts/DeepShortcutTextView.java | 13 ++++++------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/com/android/launcher3/BubbleTextView.java b/src/com/android/launcher3/BubbleTextView.java index 60b6da67f9..48819cbfa0 100644 --- a/src/com/android/launcher3/BubbleTextView.java +++ b/src/com/android/launcher3/BubbleTextView.java @@ -331,10 +331,7 @@ public class BubbleTextView extends TextView implements ItemInfoUpdateReceiver, public boolean onTouchEvent(MotionEvent event) { // ignore events if they happen in padding area if (event.getAction() == MotionEvent.ACTION_DOWN - && (event.getY() < getPaddingTop() - || event.getX() < getPaddingLeft() - || event.getY() > getHeight() - getPaddingBottom() - || event.getX() > getWidth() - getPaddingRight())) { + && shouldIgnoreTouchDown(event.getX(), event.getY())) { return false; } if (isLongClickable()) { @@ -347,6 +344,16 @@ public class BubbleTextView extends TextView implements ItemInfoUpdateReceiver, } } + /** + * Returns true if the touch down at the provided position be ignored + */ + protected boolean shouldIgnoreTouchDown(float x, float y) { + return y < getPaddingTop() + || x < getPaddingLeft() + || y > getHeight() - getPaddingBottom() + || x > getWidth() - getPaddingRight(); + } + void setStayPressed(boolean stayPressed) { mStayPressed = stayPressed; refreshDrawableState(); diff --git a/src/com/android/launcher3/shortcuts/DeepShortcutTextView.java b/src/com/android/launcher3/shortcuts/DeepShortcutTextView.java index 2daa2fe78e..eb685921d9 100644 --- a/src/com/android/launcher3/shortcuts/DeepShortcutTextView.java +++ b/src/com/android/launcher3/shortcuts/DeepShortcutTextView.java @@ -23,7 +23,6 @@ import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.text.TextUtils; import android.util.AttributeSet; -import android.view.MotionEvent; import android.widget.Toast; import com.android.launcher3.BubbleTextView; @@ -106,12 +105,12 @@ public class DeepShortcutTextView extends BubbleTextView { } @Override - public boolean onTouchEvent(MotionEvent ev) { - if (ev.getAction() == MotionEvent.ACTION_DOWN) { - // Show toast if user touches the drag handle (long clicks still start the drag). - mShowInstructionToast = mDragHandleBounds.contains((int) ev.getX(), (int) ev.getY()); - } - return super.onTouchEvent(ev); + protected boolean shouldIgnoreTouchDown(float x, float y) { + // Show toast if user touches the drag handle (long clicks still start the drag). + mShowInstructionToast = mDragHandleBounds.contains((int) x, (int) y); + + // assume the whole view as clickable + return false; } @Override