diff options
| author | Adam Powell <adamp@google.com> | 2010-10-24 16:45:44 -0700 |
|---|---|---|
| committer | Adam Powell <adamp@google.com> | 2010-10-24 16:47:34 -0700 |
| commit | bf5f2b3ffebcf4201f228b73137f32486638775f (patch) | |
| tree | 5f8d9b0867a692cbc0f930aaaadb8548921586fd /core | |
| parent | a8cbdb9a9ccb4cd6409be6caa47f810f1c2b6f4b (diff) | |
| download | frameworks_base-bf5f2b3ffebcf4201f228b73137f32486638775f.zip frameworks_base-bf5f2b3ffebcf4201f228b73137f32486638775f.tar.gz frameworks_base-bf5f2b3ffebcf4201f228b73137f32486638775f.tar.bz2 | |
Fix bug 3005359 - onListItemClick and ActionMode conflict
CHOICE_MODE_MULTIPLE_MODAL should not dispatch item click events
when in selection mode.
Change-Id: I664fdd01e5c5691ea6ad071bc36a9497fd97ce4d
Diffstat (limited to 'core')
| -rw-r--r-- | core/java/android/widget/AbsListView.java | 6 |
1 files changed, 5 insertions, 1 deletions
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<ListAdapter> 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<ListAdapter> 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<ListAdapter> implements Te requestLayout(); } - handled |= super.performItemClick(view, position, id); + if (dispatchItemClick) { + handled |= super.performItemClick(view, position, id); + } return handled; } |
