From bf5f2b3ffebcf4201f228b73137f32486638775f Mon Sep 17 00:00:00 2001 From: Adam Powell Date: Sun, 24 Oct 2010 16:45:44 -0700 Subject: Fix bug 3005359 - onListItemClick and ActionMode conflict CHOICE_MODE_MULTIPLE_MODAL should not dispatch item click events when in selection mode. Change-Id: I664fdd01e5c5691ea6ad071bc36a9497fd97ce4d --- core/java/android/widget/AbsListView.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'core') diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index 9e7cc44..740521b 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -856,6 +856,7 @@ public abstract class AbsListView extends AdapterView implements Te @Override public boolean performItemClick(View view, int position, long id) { boolean handled = false; + boolean dispatchItemClick = true; if (mChoiceMode != CHOICE_MODE_NONE) { handled = true; @@ -879,6 +880,7 @@ public abstract class AbsListView extends AdapterView implements Te if (mChoiceActionMode != null) { mMultiChoiceModeCallback.onItemCheckedStateChanged(mChoiceActionMode, position, id, newValue); + dispatchItemClick = false; } } else if (mChoiceMode == CHOICE_MODE_SINGLE) { boolean newValue = !mCheckStates.get(position, false); @@ -900,7 +902,9 @@ public abstract class AbsListView extends AdapterView implements Te requestLayout(); } - handled |= super.performItemClick(view, position, id); + if (dispatchItemClick) { + handled |= super.performItemClick(view, position, id); + } return handled; } -- cgit v1.1