diff options
author | Tony Wickham <twickham@google.com> | 2016-08-15 23:15:27 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-08-15 23:15:27 +0000 |
commit | 6bb6711f4e043151b2aa9ade69e2ac7de102e203 (patch) | |
tree | c823e6a57197d64a591ae9762d1a90460ad10dcd | |
parent | c9a0a7c62f92bf54f5d63202fd85f1125d72df21 (diff) | |
parent | e04a07f6acecc1565d037f62b0b109e0b8a243d4 (diff) | |
download | android_packages_apps_Trebuchet-6bb6711f4e043151b2aa9ade69e2ac7de102e203.tar.gz android_packages_apps_Trebuchet-6bb6711f4e043151b2aa9ade69e2ac7de102e203.tar.bz2 android_packages_apps_Trebuchet-6bb6711f4e043151b2aa9ade69e2ac7de102e203.zip |
Ignore clicks on shortcuts' drag handles.
am: e04a07f6ac
Change-Id: I96360a63524edeff3e2aa9b21707c1c81a79012f
-rw-r--r-- | res/values/dimens.xml | 2 | ||||
-rw-r--r-- | src/com/android/launcher3/shortcuts/DeepShortcutTextView.java | 37 |
2 files changed, 38 insertions, 1 deletions
diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 3f2d18672..87ef78b2e 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -161,7 +161,7 @@ <dimen name="deep_shortcuts_spacing">4dp</dimen> <dimen name="deep_shortcuts_drag_view_scale">6dp</dimen> <!-- an icon with shortcuts must be dragged this far before the container is removed. --> - <dimen name="deep_shortcuts_start_drag_threshold">12dp</dimen> + <dimen name="deep_shortcuts_start_drag_threshold">16dp</dimen> <dimen name="deep_shortcut_icon_size">36dp</dimen> <dimen name="deep_shortcut_padding_start">6dp</dimen> <dimen name="deep_shortcut_padding_end">16dp</dimen> diff --git a/src/com/android/launcher3/shortcuts/DeepShortcutTextView.java b/src/com/android/launcher3/shortcuts/DeepShortcutTextView.java index 450d36da5..42086fcb5 100644 --- a/src/com/android/launcher3/shortcuts/DeepShortcutTextView.java +++ b/src/com/android/launcher3/shortcuts/DeepShortcutTextView.java @@ -17,15 +17,23 @@ package com.android.launcher3.shortcuts; import android.content.Context; +import android.content.res.Resources; +import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.util.AttributeSet; +import android.view.MotionEvent; import com.android.launcher3.BubbleTextView; +import com.android.launcher3.R; +import com.android.launcher3.Utilities; /** * A {@link BubbleTextView} that has the shortcut icon on the left and drag handle on the right. */ public class DeepShortcutTextView extends BubbleTextView { + private final Rect mDragHandleBounds = new Rect(); + private final int mDragHandleWidth; + private boolean mShouldPerformClick = true; public DeepShortcutTextView(Context context) { this(context, null, 0); @@ -37,10 +45,39 @@ public class DeepShortcutTextView extends BubbleTextView { public DeepShortcutTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); + + Resources resources = getResources(); + mDragHandleWidth = resources.getDimensionPixelSize(R.dimen.deep_shortcut_padding_end) + + resources.getDimensionPixelSize(R.dimen.deep_shortcut_drag_handle_size) + + resources.getDimensionPixelSize(R.dimen.deep_shortcut_drawable_padding) / 2; + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + + mDragHandleBounds.set(0, 0, mDragHandleWidth, getMeasuredHeight()); + if (!Utilities.isRtl(getResources())) { + mDragHandleBounds.offset(getMeasuredWidth() - mDragHandleBounds.width(), 0); + } } @Override protected void applyCompoundDrawables(Drawable icon) { // The icon is drawn in a separate view. } + + @Override + public boolean onTouchEvent(MotionEvent ev) { + if (ev.getAction() == MotionEvent.ACTION_DOWN) { + // Ignore clicks on the drag handle (long clicks still start the drag). + mShouldPerformClick = !mDragHandleBounds.contains((int) ev.getX(), (int) ev.getY()); + } + return super.onTouchEvent(ev); + } + + @Override + public boolean performClick() { + return mShouldPerformClick && super.performClick(); + } } |