SipEditor: handle default display name.
Change-Id: Iaca0cc129d97503f4d21c7326a14609a95b56fab
diff --git a/src/com/android/phone/sip/SipEditor.java b/src/com/android/phone/sip/SipEditor.java
index 55cdcc6..8453a46 100644
--- a/src/com/android/phone/sip/SipEditor.java
+++ b/src/com/android/phone/sip/SipEditor.java
@@ -66,6 +66,7 @@
private PrimaryAccountSelector mPrimaryAccountSelector;
private AdvancedSettings mAdvancedSettings;
private SipSharedPreferences mSharedPreferences;
+ private boolean mDisplayNameSet;
enum PreferenceKey {
ProfileName(R.string.profile_name, EMPTY),
@@ -249,6 +250,16 @@
} else {
pref.setSummary(value);
}
+
+ if (pref instanceof EditTextPreference) {
+ ((EditTextPreference) pref).setText(value);
+ }
+
+ if (pref == PreferenceKey.DisplayName.preference) {
+ checkIfDisplayNameSet();
+ } else if (!mDisplayNameSet) {
+ setDisplayName();
+ }
return true;
}
@@ -294,6 +305,7 @@
: key.defaultValue);
}
}
+ checkIfDisplayNameSet();
}
private boolean isChecked(PreferenceKey key) {
@@ -345,6 +357,22 @@
}
}
+ private void checkIfDisplayNameSet() {
+ String displayName = getValue(PreferenceKey.DisplayName);
+ mDisplayNameSet = !TextUtils.isEmpty(displayName)
+ && !displayName.equals(getDefaultDisplayName());
+ }
+
+ private void setDisplayName() {
+ setValue(PreferenceKey.DisplayName, getDefaultDisplayName());
+ }
+
+ private String getDefaultDisplayName() {
+ String username = getValue(PreferenceKey.Username);
+ String domain = getValue(PreferenceKey.DomainAddress);
+ return username + "@" + domain;
+ }
+
private class PrimaryAccountSelector {
private CheckBoxPreference mCheckbox;