From 38508fa787bfef81fc927b2248981fae3efbd822 Mon Sep 17 00:00:00 2001 From: Guillaume Beraudo Date: Fri, 11 May 2012 12:08:10 +0200 Subject: [PATCH] Add option to disable secondary accounts. Useful for testing only one account without loosing the others. --- res/values/non_localizable_strings.xml | 2 ++ res/values/strings.xml | 2 ++ src/org/linphone/LinphoneManager.java | 5 ++++- .../LinphonePreferencesSIPAccountActivity.java | 10 +++++++++- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/res/values/non_localizable_strings.xml b/res/values/non_localizable_strings.xml index 24b210f40..697366fce 100644 --- a/res/values/non_localizable_strings.xml +++ b/res/values/non_localizable_strings.xml @@ -2,6 +2,8 @@ + pref_disable_account_key + pref_tunnel_key pref_tunnel_mode_key disabled diff --git a/res/values/strings.xml b/res/values/strings.xml index 6405a08a8..b91b0bdaf 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1,6 +1,8 @@ + Disable + Tunnel Hostname Port diff --git a/src/org/linphone/LinphoneManager.java b/src/org/linphone/LinphoneManager.java index 3b6430508..e30111e5c 100644 --- a/src/org/linphone/LinphoneManager.java +++ b/src/org/linphone/LinphoneManager.java @@ -673,9 +673,12 @@ public final class LinphoneManager implements LinphoneCoreListener { lDefaultProxyConfig.enableRegister(true); lDefaultProxyConfig.done(); } - + // Extra accounts for (int i = 1; i < getPrefExtraAccountsNumber(); i++) { + if (getPrefBoolean(getString(R.string.pref_disable_account_key) + i, false)) { + continue; + } lUserName = getPrefString(getString(R.string.pref_username_key) + i, null); lPasswd = getPrefString(getString(R.string.pref_passwd_key) + i, null); if (lUserName != null && lUserName.length() > 0) { diff --git a/src/org/linphone/LinphonePreferencesSIPAccountActivity.java b/src/org/linphone/LinphonePreferencesSIPAccountActivity.java index 551e2ba4c..96f37b9ac 100644 --- a/src/org/linphone/LinphonePreferencesSIPAccountActivity.java +++ b/src/org/linphone/LinphonePreferencesSIPAccountActivity.java @@ -77,7 +77,12 @@ public class LinphonePreferencesSIPAccountActivity extends PreferenceActivity { outboundProxy.setTitle(getString(R.string.pref_enable_outbound_proxy)); outboundProxy.setPersistent(true); outboundProxy.setKey(getString(R.string.pref_enable_outbound_proxy_key) + getAccountNumber(n)); - + + CheckBoxPreference disable = new CheckBoxPreference(this); + disable.setTitle(getString(R.string.pref_disable_account)); + disable.setPersistent(true); + disable.setKey(getString(R.string.pref_disable_account_key) + getAccountNumber(n)); + final Preference delete = new Preference(this); delete.setTitle("Delete this account"); delete.setOnPreferenceClickListener(new OnPreferenceClickListener() { @@ -91,6 +96,7 @@ public class LinphonePreferencesSIPAccountActivity extends PreferenceActivity { editor.putString(getString(R.string.pref_domain_key) + i, prefs.getString(getString(R.string.pref_domain_key) + (i+1), null)); editor.putString(getString(R.string.pref_proxy_key) + i, prefs.getString(getString(R.string.pref_proxy_key) + (i+1), null)); editor.putBoolean(getString(R.string.pref_enable_outbound_proxy_key) + i, prefs.getBoolean(getString(R.string.pref_enable_outbound_proxy_key) + (i+1), false)); + editor.putBoolean(getString(R.string.pref_disable_account_key) + i, prefs.getBoolean(getString(R.string.pref_disable_account_key) + (i+1), false)); } int lastAccount = nbAccounts - 1; @@ -99,6 +105,7 @@ public class LinphonePreferencesSIPAccountActivity extends PreferenceActivity { editor.putString(getString(R.string.pref_domain_key) + lastAccount, null); editor.putString(getString(R.string.pref_proxy_key) + lastAccount, null); editor.putBoolean(getString(R.string.pref_enable_outbound_proxy_key) + lastAccount, false); + editor.putBoolean(getString(R.string.pref_disable_account_key) + lastAccount, false); int defaultAccount = prefs.getInt(getString(R.string.pref_default_account), 0); if (defaultAccount > n) { @@ -138,6 +145,7 @@ public class LinphonePreferencesSIPAccountActivity extends PreferenceActivity { category.addPreference(domain); category.addPreference(proxy); category.addPreference(outboundProxy); + category.addPreference(disable); category.addPreference(mainAccount); category.addPreference(delete); }