summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorFabrice Di Meglio <fdimeglio@google.com>2012-10-02 15:53:00 -0700
committerFabrice Di Meglio <fdimeglio@google.com>2012-10-02 15:53:00 -0700
commit5bb4e29aba21bf52873bc242102cdfabd9ec4aaa (patch)
treeb54a0eff9a75256db3941a6b46f81d696cac4364 /core/java/android
parent217ca3b0d310472e4df1aa4af72769d7c7a5becb (diff)
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
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/widget/AbsListView.java16
1 files 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<ListAdapter> 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();