From 1e83b3e6ab69456db5d308c12e367a5d7166610d Mon Sep 17 00:00:00 2001 From: Adam Powell Date: Tue, 13 Sep 2011 18:09:21 -0700 Subject: [PATCH] Fix bug 5312352 - ListView modal multi-select mode bugs When the provided callback returned false for creating the mode, the item was still getting checked and the bar was flickering. Don't do that. Change-Id: I384962742edeac0c43aec6f7898bd50dab064738 --- core/java/android/widget/AbsListView.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index 353d83c49672a..5642b7b6b861b 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -2576,13 +2576,11 @@ public abstract class AbsListView extends AdapterView implements Te final int longPressPosition, final long longPressId) { // CHOICE_MODE_MULTIPLE_MODAL takes over long press. if (mChoiceMode == CHOICE_MODE_MULTIPLE_MODAL) { - if (mChoiceActionMode == null) { - mChoiceActionMode = startActionMode(mMultiChoiceModeCallback); + if (mChoiceActionMode == null && + (mChoiceActionMode = startActionMode(mMultiChoiceModeCallback)) != null) { setItemChecked(longPressPosition, true); + performHapticFeedback(HapticFeedbackConstants.LONG_PRESS); } - // TODO Should we select the long pressed item if we were already in - // selection mode? (i.e. treat it like an item click?) - performHapticFeedback(HapticFeedbackConstants.LONG_PRESS); return true; }