Merge "Don't assume a default of 'false' for TwoStatePreference" into jb-mr1-dev

This commit is contained in:
Adam Powell
2012-08-10 14:39:28 -07:00
committed by Android (Google) Code Review

View File

@@ -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();
}
}
}