From 3dc88c8f1434cfacc8103e2ee7e1b54573bc27b9 Mon Sep 17 00:00:00 2001 From: mariagpuyol Date: Tue, 8 Mar 2016 10:37:50 -0800 Subject: [PATCH] Fix bug in setText Bug:27547655 Change-Id: Ia15facda59fab9a8fe9b30f74ddd085bc26871af --- .../preference/EditTextPreference.java | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/core/java/android/preference/EditTextPreference.java b/core/java/android/preference/EditTextPreference.java index ff370422e5a1c..9467c228bb9c6 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(); + } } }