From ce260ab8fc946cbe66023e2fa0a0e9cf3e915902 Mon Sep 17 00:00:00 2001 From: Nancy Chen Date: Tue, 23 Sep 2014 16:00:09 -0700 Subject: Drag and drop for PhoneFavoriteTileView but not when dialpad is open Drag actions were disabled for PhoneFavoriteTileView when fixing a bug that caused dragging when the dialpad was up. This CL restores the original functionality while fixing the dialpad bug. Bug: 17626737 Change-Id: I3a352088ff44c81230677d771479e367c9fe7856 --- src/com/android/dialer/list/PhoneFavoriteListView.java | 3 ++- src/com/android/dialer/list/PhoneFavoriteTileView.java | 9 +++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/com/android/dialer/list/PhoneFavoriteListView.java b/src/com/android/dialer/list/PhoneFavoriteListView.java index 667681e01..ec31bd31f 100644 --- a/src/com/android/dialer/list/PhoneFavoriteListView.java +++ b/src/com/android/dialer/list/PhoneFavoriteListView.java @@ -23,6 +23,7 @@ import android.content.Context; import android.content.res.Configuration; import android.graphics.Bitmap; import android.os.Handler; +import android.text.TextUtils; import android.util.AttributeSet; import android.util.Log; import android.view.DragEvent; @@ -149,7 +150,7 @@ public class PhoneFavoriteListView extends GridView implements OnDragDropListene final int eY = (int) event.getY(); switch (action) { case DragEvent.ACTION_DRAG_STARTED: { - if (PhoneFavoriteTileView.EMPTY_CLIP_DATA != event.getClipData()) { + if (!PhoneFavoriteTileView.DRAG_PHONE_FAVORITE_TILE.equals(event.getLocalState())) { // Ignore any drag events that were not propagated by long pressing // on a {@link PhoneFavoriteTileView} return false; diff --git a/src/com/android/dialer/list/PhoneFavoriteTileView.java b/src/com/android/dialer/list/PhoneFavoriteTileView.java index 2aedd9479..56d0b5d22 100644 --- a/src/com/android/dialer/list/PhoneFavoriteTileView.java +++ b/src/com/android/dialer/list/PhoneFavoriteTileView.java @@ -56,7 +56,11 @@ public abstract class PhoneFavoriteTileView extends ContactTileView { // Dummy clip data object that is attached to drag shadows so that text views // don't crash with an NPE if the drag shadow is released in their bounds - static final ClipData EMPTY_CLIP_DATA = ClipData.newPlainText("", ""); + private static final ClipData EMPTY_CLIP_DATA = ClipData.newPlainText("", ""); + + // Constant to pass to the drag event so that the drag action only happens when a phone favorite + // tile is long pressed. + static final String DRAG_PHONE_FAVORITE_TILE = "PHONE_FAVORITE_TILE"; public PhoneFavoriteTileView(Context context, AttributeSet attrs) { super(context, attrs); @@ -72,7 +76,8 @@ public abstract class PhoneFavoriteTileView extends ContactTileView { public boolean onLongClick(View v) { final PhoneFavoriteTileView view = (PhoneFavoriteTileView) v; // NOTE The drag shadow is handled in the ListView. - view.startDrag(EMPTY_CLIP_DATA, new View.DragShadowBuilder(), null, 0); + view.startDrag(EMPTY_CLIP_DATA, new View.DragShadowBuilder(), + DRAG_PHONE_FAVORITE_TILE, 0); return true; } }); -- cgit v1.2.3