From 670fd3f59160bdb81f38b6be2f176ba233915686 Mon Sep 17 00:00:00 2001 From: Yorke Lee Date: Tue, 3 Dec 2013 18:30:38 -0800 Subject: Temporarily stop UI refresh during drag and drop If the user is in the middle of a drag and drop operation, temporarily stop UI refreshes when a new cursor is delivered, to prevent UI inconsistencies. This CL only fixes the dragging/dropping case. Swiping is still buggy (the fix is more complicated/risky), and swiping might be removed altogether in the future. Bug: 11119329 Change-Id: I2939c915d4eb5d8f9de19a369b21c6c98806ba94 --- src/com/android/dialer/list/PhoneFavoritesTileAdapter.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/com/android') diff --git a/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java b/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java index 368075368..a85fc6a60 100644 --- a/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java +++ b/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java @@ -87,6 +87,7 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements private long mIdToKeepInPlace = -1; private boolean mAwaitingRemove = false; + private boolean mDelayCursorUpdates = false; private ContactPhotoManager mPhotoManager; protected int mNumFrequents; @@ -177,6 +178,7 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements * @param inDragging Boolean variable indicating whether there is a drag in process. */ public void setInDragging(boolean inDragging) { + mDelayCursorUpdates = inDragging; mInDragging = inDragging; } @@ -223,7 +225,7 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements * Else use {@link ContactTileLoaderFactory} */ public void setContactCursor(Cursor cursor) { - if (cursor != null && !cursor.isClosed()) { + if (!mDelayCursorUpdates && cursor != null && !cursor.isClosed()) { mNumStarred = getNumStarredContacts(cursor); if (mAwaitingRemove) { mDataSetChangedListener.cacheOffsetsForDatasetChange(); -- cgit v1.2.3