summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorMaria Garcia Puyol <mariagpuyol@google.com>2016-03-08 21:04:25 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2016-03-08 21:04:27 +0000
commiteff0a83a23d1c34ea8a330e461a5660f7de1d768 (patch)
treecc643c6534a589f5e1165bb6ebc9c40d24f9524f /core/java/android
parentd1631dcd2ef451543013b363a076cdae6f708288 (diff)
parent3dc88c8f1434cfacc8103e2ee7e1b54573bc27b9 (diff)
Merge "Fix bug in setText" into nyc-dev
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/preference/EditTextPreference.java20
1 files changed, 11 insertions, 9 deletions
diff --git a/core/java/android/preference/EditTextPreference.java b/core/java/android/preference/EditTextPreference.java
index ff370422e5a1..9467c228bb9c 100644
--- a/core/java/android/preference/EditTextPreference.java
+++ b/core/java/android/preference/EditTextPreference.java
@@ -49,6 +49,7 @@ public class EditTextPreference extends DialogPreference {
private EditText mEditText;
private String mText;
+ private boolean mTextSet;
public EditTextPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
@@ -85,15 +86,16 @@ public class EditTextPreference extends DialogPreference {
* @param text The text to save
*/
public void setText(String text) {
- final boolean wasBlocking = shouldDisableDependents();
-
- mText = text;
-
- persistString(text);
-
- final boolean isBlocking = shouldDisableDependents();
- if (isBlocking != wasBlocking) {
- notifyDependencyChange(isBlocking);
+ // Always persist/notify the first time.
+ final boolean changed = !TextUtils.equals(mText, text);
+ if (changed || !mTextSet) {
+ mText = text;
+ mTextSet = true;
+ persistString(text);
+ if(changed) {
+ notifyDependencyChange(shouldDisableDependents());
+ notifyChanged();
+ }
}
}