Improved account settings interface
This commit is contained in:
parent
480d6fc376
commit
f231c65bdd
4 changed files with 30 additions and 43 deletions
|
@ -1,4 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="fill_parent" android:layout_height="fill_parent" android:visibility="visible">
|
|
||||||
</LinearLayout>
|
|
|
@ -44,7 +44,6 @@
|
||||||
<string name="first_launch_suceeded_once_key">first_launch_suceeded_once_key</string>
|
<string name="first_launch_suceeded_once_key">first_launch_suceeded_once_key</string>
|
||||||
|
|
||||||
<string name="pref_wifi_only_key">pref_wifi_only_key</string>
|
<string name="pref_wifi_only_key">pref_wifi_only_key</string>
|
||||||
<string name="pref_advanced_key">pref_advanced_key</string>
|
|
||||||
|
|
||||||
<string name="pref_video_use_front_camera_key">pref_video_use_front_camera_key</string>
|
<string name="pref_video_use_front_camera_key">pref_video_use_front_camera_key</string>
|
||||||
<string name="pref_video_codec_h263_key">pref_video_codec_h263_key</string>
|
<string name="pref_video_codec_h263_key">pref_video_codec_h263_key</string>
|
||||||
|
|
|
@ -258,4 +258,7 @@
|
||||||
<string name="wizard_need_activation">You need to activate your account with the link that was send to your email.</string>
|
<string name="wizard_need_activation">You need to activate your account with the link that was send to your email.</string>
|
||||||
<string name="wizard_confirmation">Confirmation</string>
|
<string name="wizard_confirmation">Confirmation</string>
|
||||||
<string name="wizard_verify_account">Check</string>
|
<string name="wizard_verify_account">Check</string>
|
||||||
|
|
||||||
|
<string name="pref_help_proxy">Redirect registrar packets to this server</string>
|
||||||
|
<string name="pref_help_outbound_proxy">Redirect all traffic to proxy server</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -42,17 +42,24 @@ public class LinphonePreferencesSIPAccountActivity extends PreferenceActivity {
|
||||||
addExtraAccountPreferencesFields(screen, n);
|
addExtraAccountPreferencesFields(screen, n);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
OnPreferenceChangeListener preferenceChangedListener = new OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
preference.setSummary(newValue.toString());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
private void addExtraAccountPreferencesFields(PreferenceScreen parent, final int n) {
|
private void addExtraAccountPreferencesFields(PreferenceScreen parent, final int n) {
|
||||||
final SharedPreferences prefs = getPreferenceManager().getSharedPreferences();
|
final SharedPreferences prefs = getPreferenceManager().getSharedPreferences();
|
||||||
|
|
||||||
PreferenceCategory category = new PreferenceCategory(this);
|
|
||||||
category.setTitle(getString(R.string.pref_sipaccount));
|
|
||||||
|
|
||||||
EditTextPreference username = new EditTextPreference(this);
|
EditTextPreference username = new EditTextPreference(this);
|
||||||
username.getEditText().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
|
username.getEditText().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
|
||||||
username.setTitle(getString(R.string.pref_username));
|
username.setTitle(getString(R.string.pref_username));
|
||||||
username.setPersistent(true);
|
username.setPersistent(true);
|
||||||
|
username.setDialogMessage("Example: toto if your account is toto@sip.linphone.org");
|
||||||
username.setKey(getString(R.string.pref_username_key) + getAccountNumber(n));
|
username.setKey(getString(R.string.pref_username_key) + getAccountNumber(n));
|
||||||
|
username.setOnPreferenceChangeListener(preferenceChangedListener);
|
||||||
|
|
||||||
EditTextPreference password = new EditTextPreference(this);
|
EditTextPreference password = new EditTextPreference(this);
|
||||||
password.getEditText().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
|
password.getEditText().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
|
||||||
|
@ -64,36 +71,29 @@ public class LinphonePreferencesSIPAccountActivity extends PreferenceActivity {
|
||||||
domain.getEditText().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
|
domain.getEditText().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
|
||||||
domain.setTitle(getString(R.string.pref_domain));
|
domain.setTitle(getString(R.string.pref_domain));
|
||||||
domain.setPersistent(true);
|
domain.setPersistent(true);
|
||||||
|
domain.setDialogMessage("Example: sip.linphone.org if your account is toto@sip.linphone.org");
|
||||||
domain.setKey(getString(R.string.pref_domain_key) + getAccountNumber(n));
|
domain.setKey(getString(R.string.pref_domain_key) + getAccountNumber(n));
|
||||||
|
domain.setOnPreferenceChangeListener(preferenceChangedListener);
|
||||||
|
|
||||||
CheckBoxPreference advanced = new CheckBoxPreference(this);
|
EditTextPreference proxy = new EditTextPreference(this);
|
||||||
advanced.setTitle(getString(R.string.pref_advanced));
|
|
||||||
advanced.setTitle(getString(R.string.pref_advanced_key));
|
|
||||||
advanced.setDefaultValue(false);
|
|
||||||
domain.setPersistent(true);
|
|
||||||
|
|
||||||
final EditTextPreference proxy = new EditTextPreference(this);
|
|
||||||
proxy.getEditText().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
|
proxy.getEditText().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
|
||||||
proxy.setTitle(getString(R.string.pref_proxy));
|
proxy.setTitle(getString(R.string.pref_proxy));
|
||||||
proxy.setPersistent(true);
|
proxy.setPersistent(true);
|
||||||
proxy.setKey(getString(R.string.pref_proxy_key) + getAccountNumber(n));
|
proxy.setKey(getString(R.string.pref_proxy_key) + getAccountNumber(n));
|
||||||
proxy.setLayoutResource(R.layout.hidden);
|
proxy.setOnPreferenceChangeListener(preferenceChangedListener);
|
||||||
|
|
||||||
final CheckBoxPreference outboundProxy = new CheckBoxPreference(this);
|
CheckBoxPreference outboundProxy = new CheckBoxPreference(this);
|
||||||
outboundProxy.setTitle(getString(R.string.pref_enable_outbound_proxy));
|
outboundProxy.setTitle(getString(R.string.pref_enable_outbound_proxy));
|
||||||
outboundProxy.setPersistent(true);
|
outboundProxy.setPersistent(true);
|
||||||
outboundProxy.setKey(getString(R.string.pref_enable_outbound_proxy_key) + getAccountNumber(n));
|
outboundProxy.setKey(getString(R.string.pref_enable_outbound_proxy_key) + getAccountNumber(n));
|
||||||
outboundProxy.setLayoutResource(R.layout.hidden);
|
|
||||||
|
|
||||||
final CheckBoxPreference disable = new CheckBoxPreference(this);
|
final CheckBoxPreference disable = new CheckBoxPreference(this);
|
||||||
disable.setTitle(getString(R.string.pref_disable_account));
|
disable.setTitle(getString(R.string.pref_disable_account));
|
||||||
disable.setPersistent(true);
|
disable.setPersistent(true);
|
||||||
disable.setKey(getString(R.string.pref_disable_account_key) + getAccountNumber(n));
|
disable.setKey(getString(R.string.pref_disable_account_key) + getAccountNumber(n));
|
||||||
disable.setLayoutResource(R.layout.hidden);
|
|
||||||
|
|
||||||
final Preference delete = new Preference(this);
|
final Preference delete = new Preference(this);
|
||||||
delete.setTitle(R.string.pref_delete_account);
|
delete.setTitle(R.string.pref_delete_account);
|
||||||
delete.setLayoutResource(R.layout.hidden);
|
|
||||||
delete.setOnPreferenceClickListener(new OnPreferenceClickListener() {
|
delete.setOnPreferenceClickListener(new OnPreferenceClickListener() {
|
||||||
public boolean onPreferenceClick(Preference preference) {
|
public boolean onPreferenceClick(Preference preference) {
|
||||||
int nbAccounts = prefs.getInt(getString(R.string.pref_extra_accounts), 1);
|
int nbAccounts = prefs.getInt(getString(R.string.pref_extra_accounts), 1);
|
||||||
|
@ -128,8 +128,7 @@ public class LinphonePreferencesSIPAccountActivity extends PreferenceActivity {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
final CheckBoxPreference mainAccount = new CheckBoxPreference(this);
|
CheckBoxPreference mainAccount = new CheckBoxPreference(this);
|
||||||
mainAccount.setLayoutResource(R.layout.hidden);
|
|
||||||
mainAccount.setTitle(R.string.pref_default_account_title);
|
mainAccount.setTitle(R.string.pref_default_account_title);
|
||||||
mainAccount.setOnPreferenceClickListener(new OnPreferenceClickListener()
|
mainAccount.setOnPreferenceClickListener(new OnPreferenceClickListener()
|
||||||
{
|
{
|
||||||
|
@ -151,36 +150,26 @@ public class LinphonePreferencesSIPAccountActivity extends PreferenceActivity {
|
||||||
delete.setEnabled(prefs.getInt(getString(R.string.pref_default_account), 0) != n);
|
delete.setEnabled(prefs.getInt(getString(R.string.pref_default_account), 0) != n);
|
||||||
disable.setEnabled(prefs.getInt(getString(R.string.pref_default_account), 0) != n);
|
disable.setEnabled(prefs.getInt(getString(R.string.pref_default_account), 0) != n);
|
||||||
|
|
||||||
advanced.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
PreferenceCategory category = new PreferenceCategory(this);
|
||||||
public boolean onPreferenceChange(Preference p, Object value) {
|
category.setTitle(getString(R.string.pref_sipaccount));
|
||||||
boolean activated = (Boolean) value;
|
|
||||||
if (activated) {
|
|
||||||
proxy.setLayoutResource(R.layout.visible);
|
|
||||||
outboundProxy.setLayoutResource(R.layout.visible);
|
|
||||||
disable.setLayoutResource(R.layout.visible);
|
|
||||||
delete.setLayoutResource(R.layout.visible);
|
|
||||||
mainAccount.setLayoutResource(R.layout.visible);
|
|
||||||
} else {
|
|
||||||
proxy.setLayoutResource(R.layout.hidden);
|
|
||||||
outboundProxy.setLayoutResource(R.layout.hidden);
|
|
||||||
disable.setLayoutResource(R.layout.hidden);
|
|
||||||
delete.setLayoutResource(R.layout.hidden);
|
|
||||||
mainAccount.setLayoutResource(R.layout.hidden);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
parent.addPreference(category);
|
parent.addPreference(category);
|
||||||
category.addPreference(username);
|
category.addPreference(username);
|
||||||
category.addPreference(password);
|
category.addPreference(password);
|
||||||
category.addPreference(domain);
|
category.addPreference(domain);
|
||||||
category.addPreference(advanced);
|
|
||||||
|
category = new PreferenceCategory(this);
|
||||||
|
category.setTitle(getString(R.string.pref_advanced));
|
||||||
|
parent.addPreference(category);
|
||||||
category.addPreference(proxy);
|
category.addPreference(proxy);
|
||||||
category.addPreference(outboundProxy);
|
category.addPreference(outboundProxy);
|
||||||
category.addPreference(disable);
|
category.addPreference(disable);
|
||||||
category.addPreference(mainAccount);
|
category.addPreference(mainAccount);
|
||||||
category.addPreference(delete);
|
category.addPreference(delete);
|
||||||
|
|
||||||
|
username.setSummary(username.getText());
|
||||||
|
domain.setSummary(domain.getText());
|
||||||
|
proxy.setSummary("".equals(proxy.getText()) || (proxy.getText() == null) ? getString(R.string.pref_help_proxy) : proxy.getText());
|
||||||
|
outboundProxy.setSummary(getString(R.string.pref_help_outbound_proxy));
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getAccountNumber(int n) {
|
private String getAccountNumber(int n) {
|
||||||
|
|
Loading…
Reference in a new issue