From 5bb4e29aba21bf52873bc242102cdfabd9ec4aaa Mon Sep 17 00:00:00 2001 From: Fabrice Di Meglio Date: Tue, 2 Oct 2012 15:53:00 -0700 Subject: Fix bug #7274075 Non-functional CheckedTextView on Nexus 7 Jelly Bean 4.1.1 This regression has been introduced by this Change: Ia846de16bbc54f0729608259aa4b530da9404245 - in CHOICE_MODE_SINGLE you need to clear the checked states before doing anything - rename variables for better readability too Change-Id: I89b4390e5ebb192ca280fea2c06f991b537a2870 --- core/java/android/widget/AbsListView.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index 7f0af09fca01..871f7527c51f 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -1055,30 +1055,30 @@ public abstract class AbsListView extends AdapterView implements Te if (mChoiceMode == CHOICE_MODE_MULTIPLE || (mChoiceMode == CHOICE_MODE_MULTIPLE_MODAL && mChoiceActionMode != null)) { - boolean newValue = !mCheckStates.get(position, false); - mCheckStates.put(position, newValue); + boolean checked = !mCheckStates.get(position, false); + mCheckStates.put(position, checked); if (mCheckedIdStates != null && mAdapter.hasStableIds()) { - if (newValue) { + if (checked) { mCheckedIdStates.put(mAdapter.getItemId(position), position); } else { mCheckedIdStates.delete(mAdapter.getItemId(position)); } } - if (newValue) { + if (checked) { mCheckedItemCount++; } else { mCheckedItemCount--; } if (mChoiceActionMode != null) { mMultiChoiceModeCallback.onItemCheckedStateChanged(mChoiceActionMode, - position, id, newValue); + position, id, checked); dispatchItemClick = false; } checkedStateChanged = true; } else if (mChoiceMode == CHOICE_MODE_SINGLE) { - boolean newValue = !mCheckStates.get(position, false); - if (newValue) { - mCheckStates.clear(); + boolean checked = !mCheckStates.get(position, false); + mCheckStates.clear(); + if (checked) { mCheckStates.put(position, true); if (mCheckedIdStates != null && mAdapter.hasStableIds()) { mCheckedIdStates.clear(); -- cgit v1.2.3-59-g8ed1b