summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Powell <adamp@google.com>2012-08-10 14:39:28 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-08-10 14:39:28 -0700
commitc47f80f1ae96e3c8b6a750d68cc12dfbbca97254 (patch)
tree29c06be48fe4da125aa8aaffdcf241e03e9dbd60
parentf5fd82acc3a7e87c8901e7ab3d5c4f28648c149f (diff)
parentc1b07211b8a2a1eebefa8e5403ca7b2c6ccdccc6 (diff)
downloadframeworks_base-c47f80f1ae96e3c8b6a750d68cc12dfbbca97254.zip
frameworks_base-c47f80f1ae96e3c8b6a750d68cc12dfbbca97254.tar.gz
frameworks_base-c47f80f1ae96e3c8b6a750d68cc12dfbbca97254.tar.bz2
Merge "Don't assume a default of 'false' for TwoStatePreference" into jb-mr1-dev
-rw-r--r--core/java/android/preference/TwoStatePreference.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/core/java/android/preference/TwoStatePreference.java b/core/java/android/preference/TwoStatePreference.java
index d186b20..c649879 100644
--- a/core/java/android/preference/TwoStatePreference.java
+++ b/core/java/android/preference/TwoStatePreference.java
@@ -37,6 +37,7 @@ public abstract class TwoStatePreference extends Preference {
private CharSequence mSummaryOn;
private CharSequence mSummaryOff;
boolean mChecked;
+ private boolean mCheckedSet;
private boolean mSendClickAccessibilityEvent;
private boolean mDisableDependentsState;
@@ -74,11 +75,16 @@ public abstract class TwoStatePreference extends Preference {
* @param checked The checked state.
*/
public void setChecked(boolean checked) {
- if (mChecked != checked) {
+ // Always persist/notify the first time; don't assume the field's default of false.
+ final boolean changed = mChecked != checked;
+ if (changed || !mCheckedSet) {
mChecked = checked;
+ mCheckedSet = true;
persistBoolean(checked);
- notifyDependencyChange(shouldDisableDependents());
- notifyChanged();
+ if (changed) {
+ notifyDependencyChange(shouldDisableDependents());
+ notifyChanged();
+ }
}
}