diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2016-07-25 13:32:24 -0700 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2016-07-25 13:33:44 -0700 |
commit | b0e80bcee7735589f5a11b1abc858acb6bf9d438 (patch) | |
tree | fd279419a43eee6ee08a0ab8ddf03bdf6dfebb04 | |
parent | 76acffce3d5ec3660203c6dbc316bb86c6c05135 (diff) | |
download | android_packages_apps_Trebuchet-b0e80bcee7735589f5a11b1abc858acb6bf9d438.tar.gz android_packages_apps_Trebuchet-b0e80bcee7735589f5a11b1abc858acb6bf9d438.tar.bz2 android_packages_apps_Trebuchet-b0e80bcee7735589f5a11b1abc858acb6bf9d438.zip |
Fixing missed events during motion interaction
> Only ignoring touch events during the start of the motion events
> Handling action_cancel
Bug: 30291280
Change-Id: I4aa791b30c65ebaff90bb2f232d77de62ab6a033
-rw-r--r-- | src/com/android/launcher3/shortcuts/DeepShortcutsContainer.java | 2 | ||||
-rw-r--r-- | src/com/android/launcher3/shortcuts/ShortcutsContainerListener.java | 17 |
2 files changed, 14 insertions, 5 deletions
diff --git a/src/com/android/launcher3/shortcuts/DeepShortcutsContainer.java b/src/com/android/launcher3/shortcuts/DeepShortcutsContainer.java index 809182559..c9eee81e4 100644 --- a/src/com/android/launcher3/shortcuts/DeepShortcutsContainer.java +++ b/src/com/android/launcher3/shortcuts/DeepShortcutsContainer.java @@ -388,6 +388,8 @@ public class DeepShortcutsContainer extends LinearLayout implements View.OnLongC break; } } + } else if (action == MotionEvent.ACTION_CANCEL) { + cleanupDeferredDrag(); } return true; } diff --git a/src/com/android/launcher3/shortcuts/ShortcutsContainerListener.java b/src/com/android/launcher3/shortcuts/ShortcutsContainerListener.java index 962fbac83..f3b0d0402 100644 --- a/src/com/android/launcher3/shortcuts/ShortcutsContainerListener.java +++ b/src/com/android/launcher3/shortcuts/ShortcutsContainerListener.java @@ -56,6 +56,9 @@ public class ShortcutsContainerListener implements View.OnTouchListener, private final int[] mTouchDown; private boolean mHasMappedTouchDownToContainerCoord; + /** If true, the gesture is not handled. The value is reset when next gesture starts. */ + private boolean mIgnoreCurrentGesture; + public ShortcutsContainerListener(BubbleTextView icon) { mSrcIcon = icon; mScaledTouchSlop = ViewConfiguration.get(icon.getContext()).getScaledTouchSlop(); @@ -72,18 +75,22 @@ public class ShortcutsContainerListener implements View.OnTouchListener, @Override public boolean onTouch(View v, MotionEvent event) { - if (mLauncher.getShortcutIdsForItem((ItemInfo) v.getTag()).isEmpty()) { - // There are no shortcuts associated with this item, so return to normal touch handling. - return false; - } - if (event.getAction() == MotionEvent.ACTION_DOWN) { + // There are no shortcuts associated with this item, + // so return to normal touch handling. + mIgnoreCurrentGesture = + (mLauncher.getShortcutIdsForItem((ItemInfo) v.getTag())).isEmpty(); + mTouchDown[0] = (int) event.getX(); mTouchDown[1] = (int) event.getY(); mDragLayer.getDescendantCoordRelativeToSelf(mSrcIcon, mTouchDown); mHasMappedTouchDownToContainerCoord = false; } + if (mIgnoreCurrentGesture) { + return false; + } + final boolean wasForwarding = mForwarding; final boolean forwarding; if (wasForwarding) { |