diff options
author | Adam Powell <adamp@google.com> | 2012-08-10 14:39:28 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-08-10 14:39:28 -0700 |
commit | c47f80f1ae96e3c8b6a750d68cc12dfbbca97254 (patch) | |
tree | 29c06be48fe4da125aa8aaffdcf241e03e9dbd60 | |
parent | f5fd82acc3a7e87c8901e7ab3d5c4f28648c149f (diff) | |
parent | c1b07211b8a2a1eebefa8e5403ca7b2c6ccdccc6 (diff) | |
download | frameworks_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.java | 12 |
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(); + } } } |