Minor fixes on SipEditor
+ show "optional" in Outbound proxy address's summary
+ show "same as username" in Display name's summary
+ move default values to xml files and revise the code accordingly
Change-Id: I2d33ad1b70b1ae0a67f4dfbb7e9ff233d0570969
diff --git a/res/values/strings.xml b/res/values/strings.xml
index f3928ed..06bb9f3 100755
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1280,8 +1280,6 @@
<!-- Title of the sip editor screen. [CHAR LIMIT=NONE] -->
<string name="sip_edit_new_title">Edit new SIP account</string>
- <!-- Initial status of the preferences is '<Not set>'. [CHAR LIMIT=NONE] -->
- <string name="initial_preference_summary"><Not set></string>
<!-- Text of the sip profile name preference. [CHAR LIMIT=NONE] -->
<string name="profile_name_title">Name</string>
<!-- Text of the domain address preference. [CHAR LIMIT=NONE] -->
@@ -1292,16 +1290,12 @@
<string name="password_title">Password</string>
<!-- Text of the display name preference. [CHAR LIMIT=NONE] -->
<string name="display_name_title">Display name</string>
- <!-- Text of the default display name preference summary. [CHAR LIMIT=NONE] -->
- <string name="display_name_summary"><Same as username></string>
<!-- Text of the outbound proxy address preference. [CHAR LIMIT=NONE] -->
- <string name="proxy_address_title">Outbound Proxy address</string>
+ <string name="proxy_address_title">Outbound proxy address</string>
<!-- Text of the sip server/proxy port number. [CHAR LIMIT=NONE] -->
- <string name="port_title">Port Number</string>
- <!-- Text of the default sip server/proxy port number. [CHAR LIMIT=NONE] -->
- <string name="port_summary">5060</string>
+ <string name="port_title">Port number</string>
<!-- Text of the transport type preference. [CHAR LIMIT=NONE] -->
- <string name="transport_title">Transport Type</string>
+ <string name="transport_title">Transport type</string>
<!-- Text of the keepalive preference. [CHAR LIMIT=NONE] -->
<string name="send_keepalive_title">Send keep-alive</string>
<!-- Text of the keepalive preference summary. [CHAR LIMIT=NONE] -->
@@ -1317,6 +1311,17 @@
<!-- Text of the advanced settings section. [CHAR LIMIT=NONE] -->
<string name="advanced_settings">Optional settings</string>
+ <!-- Initial status of the preferences is '<Not set>'. [CHAR LIMIT=NONE] -->
+ <string name="default_preference_summary"><Not set></string>
+ <!-- Default value for the display-name preference summary. [CHAR LIMIT=NONE] -->
+ <string name="display_name_summary"><Same as username></string>
+ <!-- Default value for the outbound-proxy-address preference summary. [CHAR LIMIT=NONE] -->
+ <string name="optional_summary"><Optional></string>
+ <!-- Default sip server/proxy port number. [CHAR LIMIT=NONE] -->
+ <string name="default_port">5060</string>
+ <!-- Default sip server/proxy transport protocol. [CHAR LIMIT=NONE] -->
+ <string name="default_transport">UDP</string>
+
<!-- Hint to show the advanced settings section. [CHAR LIMIT=NONE] -->
<string name="advanced_settings_show">▷ Select to show all</string>
<!-- Hint to hide the advanced settings section. [CHAR LIMIT=NONE] -->
diff --git a/res/xml/sip_advanced_edit.xml b/res/xml/sip_advanced_edit.xml
index 81ae359..e068339 100644
--- a/res/xml/sip_advanced_edit.xml
+++ b/res/xml/sip_advanced_edit.xml
@@ -25,6 +25,7 @@
android:key="@string/display_name"
android:title="@string/display_name_title"
android:dialogTitle="@string/display_name_title"
+ android:summary="@string/display_name_summary"
android:persistent="false"
android:singleLine="true"/>
@@ -32,14 +33,16 @@
android:key="@string/proxy_address"
android:title="@string/proxy_address_title"
android:dialogTitle="@string/proxy_address_title"
+ android:summary="@string/optional_summary"
+ android:defaultValue=""
android:persistent="false"
android:singleLine="true"/>
<EditTextPreference
android:key="@string/port"
android:title="@string/port_title"
- android:defaultValue="@string/port_summary"
- android:summary="@string/port_summary"
+ android:defaultValue="@string/default_port"
+ android:summary="@string/default_port"
android:dialogTitle="@string/port_title"
android:persistent="false"
android:singleLine="true"/>
@@ -49,6 +52,7 @@
android:title="@string/transport_title"
android:entries="@array/transport_types"
android:entryValues="@array/transport_types"
+ android:summary="@string/default_transport"
android:persistent="false"
android:dialogTitle="@string/transport_title"/>
diff --git a/res/xml/sip_edit.xml b/res/xml/sip_edit.xml
index 0e76c5a..6ecc6a9 100644
--- a/res/xml/sip_edit.xml
+++ b/res/xml/sip_edit.xml
@@ -22,6 +22,8 @@
android:key="@string/profile_name"
android:title="@string/profile_name_title"
android:dialogTitle="@string/profile_name_title"
+ android:defaultValue=""
+ android:summary="@string/default_preference_summary"
android:persistent="false"
android:singleLine="true"/>
@@ -29,6 +31,8 @@
android:key="@string/username"
android:title="@string/username_title"
android:dialogTitle="@string/username_title"
+ android:defaultValue=""
+ android:summary="@string/default_preference_summary"
android:persistent="false"
android:singleLine="true"/>
@@ -36,6 +40,8 @@
android:key="@string/domain_address"
android:title="@string/domain_address_title"
android:dialogTitle="@string/domain_address_title"
+ android:defaultValue=""
+ android:summary="@string/default_preference_summary"
android:persistent="false"
android:singleLine="true"/>
@@ -44,6 +50,8 @@
android:title="@string/password_title"
android:dialogTitle="@string/password_title"
android:password="true"
+ android:defaultValue=""
+ android:summary="@string/default_preference_summary"
android:persistent="false"
android:singleLine="true"/>
diff --git a/src/com/android/phone/sip/SipEditor.java b/src/com/android/phone/sip/SipEditor.java
index bdff215..2c9c5d3 100644
--- a/src/com/android/phone/sip/SipEditor.java
+++ b/src/com/android/phone/sip/SipEditor.java
@@ -57,12 +57,9 @@
private static final String TAG = SipEditor.class.getSimpleName();
private static final String KEY_PROFILE = "profile";
- private static final String EMPTY = "";
- private static final String LEAVE_AS_IS = null;
- private static final String DEFAULT_SIP_PORT = "5060";
- private static final String DEFAULT_PROTOCOL = "UDP";
private static final String GET_METHOD_PREFIX = "get";
private static final char SCRAMBLED = '*';
+ private static final int NA = 0;
private PrimaryAccountSelector mPrimaryAccountSelector;
private AdvancedSettings mAdvancedSettings;
@@ -70,27 +67,27 @@
private boolean mDisplayNameSet;
enum PreferenceKey {
- ProfileName(R.string.profile_name, EMPTY),
- DomainAddress(R.string.domain_address, EMPTY),
- Username(R.string.username, EMPTY),
- Password(R.string.password, EMPTY),
- DisplayName(R.string.display_name, LEAVE_AS_IS),
- ProxyAddress(R.string.proxy_address, EMPTY),
- Port(R.string.port, DEFAULT_SIP_PORT),
- Transport(R.string.transport, DEFAULT_PROTOCOL),
- SendKeepAlive(R.string.send_keepalive, LEAVE_AS_IS);
+ ProfileName(R.string.profile_name, R.string.default_preference_summary),
+ DomainAddress(R.string.domain_address, R.string.default_preference_summary),
+ Username(R.string.username, R.string.default_preference_summary),
+ Password(R.string.password, R.string.default_preference_summary),
+ DisplayName(R.string.display_name, R.string.display_name_summary),
+ ProxyAddress(R.string.proxy_address, R.string.optional_summary),
+ Port(R.string.port, NA),
+ Transport(R.string.transport, NA),
+ SendKeepAlive(R.string.send_keepalive, NA);
/**
* @param key The key name of the preference.
* @param defaultValue The default value of the preference.
*/
- PreferenceKey(int text, String defaultValue) {
+ PreferenceKey(int text, int defaultValue) {
this.text = text;
this.defaultValue = defaultValue;
}
final int text;
- final String defaultValue;
+ final int defaultValue;
Preference preference;
}
@@ -197,21 +194,17 @@
private boolean validateAndSetResult() {
for (PreferenceKey key : PreferenceKey.values()) {
Preference pref = key.preference;
- String value = EMPTY;
- if (pref instanceof ListPreference) {
- value = ((ListPreference)pref).getValue();
- } else if (pref instanceof EditTextPreference) {
+ if (pref instanceof EditTextPreference) {
// use default value if display name is empty
if (pref == PreferenceKey.DisplayName.preference) continue;
- value = ((EditTextPreference)pref).getText();
- } else if (pref instanceof CheckBoxPreference) {
- continue;
- }
- if (TextUtils.isEmpty(value) &&
- (key != PreferenceKey.ProxyAddress)) {
- showAlert(pref.getTitle() + " "
- + getString(R.string.empty_alert));
- return false;
+ if (pref == PreferenceKey.ProxyAddress.preference) continue;
+
+ String value = ((EditTextPreference) pref).getText();
+ if (TextUtils.isEmpty(value)) {
+ showAlert(pref.getTitle() + " "
+ + getString(R.string.empty_alert));
+ return false;
+ }
}
}
try {
@@ -241,7 +234,7 @@
? getValue(PreferenceKey.DisplayName)
: getDefaultDisplayName())
.setPort(Integer.parseInt(getValue(PreferenceKey.Port)))
- .setSendKeepAlive(isChecked(PreferenceKey.SendKeepAlive))
+ .setSendKeepAlive(isAlwaysSendKeepAlive())
.setAutoRegistration(
mSharedPreferences.isReceivingCallsEnabled())
.build();
@@ -249,24 +242,29 @@
public boolean onPreferenceChange(Preference pref, Object newValue) {
if (pref instanceof CheckBoxPreference) return true;
- String value = (String) newValue;
- if (value == null) value = EMPTY;
- if (pref == PreferenceKey.Password.preference) {
- pref.setSummary(scramble(newValue.toString()));
+ String value = (newValue == null) ? "" : newValue.toString();
+ if (TextUtils.isEmpty(value)) {
+ pref.setSummary(getPreferenceKey(pref).defaultValue);
+ } else if (pref == PreferenceKey.Password.preference) {
+ pref.setSummary(scramble(value));
} else {
pref.setSummary(value);
}
- if (pref instanceof EditTextPreference) {
- ((EditTextPreference) pref).setText(value);
- }
-
if (pref == PreferenceKey.DisplayName.preference) {
+ ((EditTextPreference) pref).setText(value);
checkIfDisplayNameSet();
}
return true;
}
+ private PreferenceKey getPreferenceKey(Preference pref) {
+ for (PreferenceKey key : PreferenceKey.values()) {
+ if (key.preference == pref) return key;
+ }
+ throw new RuntimeException("not possible to reach here");
+ }
+
private void loadPreferencesFromProfile(SipProfile p) {
if (p != null) {
Log.v(TAG, "Edit the existing profile : " + p.getProfileName());
@@ -275,17 +273,15 @@
for (PreferenceKey key : PreferenceKey.values()) {
Method meth = profileClass.getMethod(GET_METHOD_PREFIX
+ getString(key.text), (Class[])null);
- if (key == PreferenceKey.Port) {
- setValue(key,
- String.valueOf(meth.invoke(p, (Object[])null)));
- } else if (key == PreferenceKey.SendKeepAlive) {
+ if (key == PreferenceKey.SendKeepAlive) {
boolean value = ((Boolean)
meth.invoke(p, (Object[]) null)).booleanValue();
setValue(key, getString(value
? R.string.sip_always_send_keepalive
: R.string.sip_system_decide));
} else {
- setValue(key, (String) meth.invoke(p, (Object[])null));
+ setValue(key,
+ String.valueOf(meth.invoke(p, (Object[])null)));
}
}
checkIfDisplayNameSet();
@@ -295,27 +291,16 @@
} else {
Log.v(TAG, "Edit a new profile");
for (PreferenceKey key : PreferenceKey.values()) {
- if (key.defaultValue == LEAVE_AS_IS) continue;
Preference pref = key.preference;
pref.setOnPreferenceChangeListener(this);
- if (pref instanceof EditTextPreference) {
- ((EditTextPreference) pref).setText(key.defaultValue);
- } else if (pref instanceof ListPreference) {
- ((ListPreference) pref).setValue(key.defaultValue);
- } else {
- continue;
- }
- pref.setSummary((EMPTY == key.defaultValue)
- ? getString(R.string.initial_preference_summary)
- : key.defaultValue);
}
mDisplayNameSet = false;
}
}
- private boolean isChecked(PreferenceKey key) {
- // must be PreferenceKey.SendKeepAlive
- ListPreference pref = (ListPreference) key.preference;
+ private boolean isAlwaysSendKeepAlive() {
+ ListPreference pref = (ListPreference)
+ PreferenceKey.SendKeepAlive.preference;
return getString(R.string.sip_always_send_keepalive).equals(
pref.getValue());
}
@@ -344,9 +329,12 @@
}
if (TextUtils.isEmpty(value)) {
- pref.setSummary(getString(R.string.initial_preference_summary));
+ pref.setSummary(getString(key.defaultValue));
} else if (key == PreferenceKey.Password) {
pref.setSummary(scramble(value));
+ } else if ((key == PreferenceKey.DisplayName)
+ && value.equals(getDefaultDisplayName())) {
+ pref.setSummary(getString(key.defaultValue));
} else {
pref.setSummary(value);
}
@@ -372,8 +360,6 @@
PreferenceKey.DisplayName.preference.setSummary(displayName);
} else {
setValue(PreferenceKey.DisplayName, "");
- PreferenceKey.DisplayName.preference.setSummary(
- getString(R.string.display_name_summary));
}
}