From 82905401fd00fdbf46269505d57990a213b15447 Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Tue, 5 Mar 2013 16:36:49 +0100 Subject: [PATCH] add userid +upnp settings --- res/values/non_localizable_defaults.xml | 1 + res/values/non_localizable_strings.xml | 2 ++ res/values/strings.xml | 6 ++++ res/xml/account_preferences.xml | 3 ++ res/xml/preferences.xml | 5 +++- .../linphone/AccountPreferencesFragment.java | 13 +++++++-- src/org/linphone/LinphoneManager.java | 29 ++++++++++++++----- src/org/linphone/PreferencesFragment.java | 24 +++++++++++++++ submodules/belle-sip | 2 +- submodules/linphone | 2 +- 10 files changed, 74 insertions(+), 13 deletions(-) diff --git a/res/values/non_localizable_defaults.xml b/res/values/non_localizable_defaults.xml index 1b5bd2618..89378bde6 100644 --- a/res/values/non_localizable_defaults.xml +++ b/res/values/non_localizable_defaults.xml @@ -36,6 +36,7 @@ false stun.linphone.org false + false true 5060 @string/pref_transport_udp_key diff --git a/res/values/non_localizable_strings.xml b/res/values/non_localizable_strings.xml index cf20690e0..9391b5e81 100644 --- a/res/values/non_localizable_strings.xml +++ b/res/values/non_localizable_strings.xml @@ -49,6 +49,7 @@ pref_domain_key pref_passwd_key pref_username_key + pref_auth_userid_key pref_wizard_key pref_activated_key pref_debug_key @@ -112,4 +113,5 @@ pref_rfc2833_dtmf_key pref_sipinfo_dtmf_key + pref_upnp_enable_key diff --git a/res/values/strings.xml b/res/values/strings.xml index 26560350a..76189a5a6 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -422,4 +422,10 @@ Incoming Background mode + + Auth userid* + + Enter authentication userid (optionnal) + + Enable UPNP diff --git a/res/xml/account_preferences.xml b/res/xml/account_preferences.xml index 2c23bfeb1..7fff9fedd 100644 --- a/res/xml/account_preferences.xml +++ b/res/xml/account_preferences.xml @@ -7,6 +7,9 @@ + android:defaultValue="@bool/pref_ice_enabled_default"/> 0 && password != null) { - LinphoneAuthInfo lAuthInfo = LinphoneCoreFactory.instance().createAuthInfo(username, password, null); + LinphoneAuthInfo lAuthInfo = LinphoneCoreFactory.instance().createAuthInfo(username + , userid + , password + , null + ,null); mLc.addAuthInfo(lAuthInfo); if (domain != null && domain.length() > 0) { @@ -812,9 +818,16 @@ public final class LinphoneManager implements LinphoneCoreListener { //stun server String lStun = getPrefString(R.string.pref_stun_server_key, getString(R.string.default_stun)); boolean useICE = getPrefBoolean(R.string.pref_ice_enable_key, mR.getBoolean(R.bool.pref_ice_enabled_default)); + boolean useUpnp = getPrefBoolean(R.string.pref_upnp_enable_key, mR.getBoolean(R.bool.pref_upnp_enabled_default)); + mLc.setStunServer(lStun); - if (lStun!=null && lStun.length()>0) { - mLc.setFirewallPolicy(useICE ? FirewallPolicy.UseIce : FirewallPolicy.UseStun); + if (lStun!=null && lStun.length()>0 && useICE) { + mLc.setFirewallPolicy(FirewallPolicy.UseIce); + if (useUpnp) Log.e("Cannot have both ice and upnp enabled, disabling upnp"); + } if (useUpnp) { + mLc.setFirewallPolicy(FirewallPolicy.UseUpnp); + } else if (lStun!=null && lStun.length()>0){ + mLc.setFirewallPolicy(FirewallPolicy.UseStun); } else { mLc.setFirewallPolicy(FirewallPolicy.NoFirewall); } diff --git a/src/org/linphone/PreferencesFragment.java b/src/org/linphone/PreferencesFragment.java index 95720c3ad..daf98c696 100644 --- a/src/org/linphone/PreferencesFragment.java +++ b/src/org/linphone/PreferencesFragment.java @@ -247,6 +247,30 @@ public class PreferencesFragment extends PreferencesListFragment implements EcCa } }); + final CheckBoxPreference useIce = (CheckBoxPreference) findPreference(R.string.pref_ice_enable_key); + final CheckBoxPreference useUpnp = (CheckBoxPreference) findPreference(R.string.pref_upnp_enable_key); + + useIce.setEnabled(!useUpnp.isChecked()); + LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull(); + useUpnp.setEnabled(lc.upnpAvailable() && !useIce.isChecked()); + + useIce.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + boolean isChecked = (Boolean) newValue; + useUpnp.setEnabled(!isChecked); + return true; + } + }); + useUpnp.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + boolean isChecked = (Boolean) newValue; + useIce.setEnabled(!isChecked); + return true; + } + }); + if (getResources().getBoolean(R.bool.disable_every_log)) { uncheckDisableAndHideCheckbox(R.string.pref_debug_key); } diff --git a/submodules/belle-sip b/submodules/belle-sip index 6b058ba83..3b347644c 160000 --- a/submodules/belle-sip +++ b/submodules/belle-sip @@ -1 +1 @@ -Subproject commit 6b058ba830644578da70c9bb85a41acdb06c03dd +Subproject commit 3b347644ce220d97b08112a9fd835194c64000e5 diff --git a/submodules/linphone b/submodules/linphone index 9d3f8f7d9..018fbdb7f 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 9d3f8f7d94080f4dd293bca53b4bcf9afac88d78 +Subproject commit 018fbdb7f1dbb634eb99c01c6fa9cc663147dae8