Moved transport setting from network to account
This commit is contained in:
parent
999bae57cf
commit
6c3189f8eb
7 changed files with 184 additions and 134 deletions
|
@ -28,6 +28,10 @@
|
||||||
android:title="@string/pref_advanced"
|
android:title="@string/pref_advanced"
|
||||||
android:key="@string/pref_advanced_key">
|
android:key="@string/pref_advanced_key">
|
||||||
|
|
||||||
|
<ListPreference
|
||||||
|
android:title="@string/pref_transport"
|
||||||
|
android:key="@string/pref_transport_key"/>
|
||||||
|
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:title="@string/pref_proxy"
|
android:title="@string/pref_proxy"
|
||||||
android:summary="@string/pref_help_proxy"
|
android:summary="@string/pref_help_proxy"
|
||||||
|
|
|
@ -154,10 +154,6 @@
|
||||||
android:key="@string/pref_video_port_key"
|
android:key="@string/pref_video_port_key"
|
||||||
android:summary="@string/pref_video_port_description"
|
android:summary="@string/pref_video_port_description"
|
||||||
android:layout="@layout/hidden"/>
|
android:layout="@layout/hidden"/>
|
||||||
|
|
||||||
<ListPreference
|
|
||||||
android:title="@string/pref_transport"
|
|
||||||
android:key="@string/pref_transport_key"/>
|
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
android:title="@string/pref_media_encryption"
|
android:title="@string/pref_media_encryption"
|
||||||
|
|
|
@ -18,11 +18,15 @@ along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.linphone.ui.PreferencesListFragment;
|
import org.linphone.ui.PreferencesListFragment;
|
||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.preference.CheckBoxPreference;
|
import android.preference.CheckBoxPreference;
|
||||||
import android.preference.EditTextPreference;
|
import android.preference.EditTextPreference;
|
||||||
|
import android.preference.ListPreference;
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
import android.preference.Preference.OnPreferenceChangeListener;
|
import android.preference.Preference.OnPreferenceChangeListener;
|
||||||
import android.preference.Preference.OnPreferenceClickListener;
|
import android.preference.Preference.OnPreferenceClickListener;
|
||||||
|
@ -36,6 +40,8 @@ import android.text.InputType;
|
||||||
public class AccountPreferencesFragment extends PreferencesListFragment {
|
public class AccountPreferencesFragment extends PreferencesListFragment {
|
||||||
private int n;
|
private int n;
|
||||||
private LinphonePreferences mPrefs;
|
private LinphonePreferences mPrefs;
|
||||||
|
private EditTextPreference mProxyPreference;
|
||||||
|
private ListPreference mTransportPreference;
|
||||||
|
|
||||||
public AccountPreferencesFragment() {
|
public AccountPreferencesFragment() {
|
||||||
super(R.xml.account_preferences);
|
super(R.xml.account_preferences);
|
||||||
|
@ -91,8 +97,15 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
||||||
OnPreferenceChangeListener proxyChangedListener = new OnPreferenceChangeListener() {
|
OnPreferenceChangeListener proxyChangedListener = new OnPreferenceChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
mPrefs.setAccountProxy(n, newValue.toString());
|
String value = newValue.toString();
|
||||||
|
mPrefs.setAccountProxy(n, value);
|
||||||
preference.setSummary(mPrefs.getAccountProxy(n));
|
preference.setSummary(mPrefs.getAccountProxy(n));
|
||||||
|
|
||||||
|
if (mTransportPreference != null) {
|
||||||
|
mTransportPreference.setSummary(mPrefs.getAccountTransportString(n));
|
||||||
|
mTransportPreference.setValue(mPrefs.getAccountTransportKey(n));
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -136,6 +149,22 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
OnPreferenceChangeListener transportChangedListener = new OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
String key = newValue.toString();
|
||||||
|
mPrefs.setAccountTransport(n, key);
|
||||||
|
preference.setSummary(mPrefs.getAccountTransportString(n));
|
||||||
|
|
||||||
|
if (mProxyPreference != null) {
|
||||||
|
String newProxy = mPrefs.getAccountProxy(n);
|
||||||
|
mProxyPreference.setSummary(newProxy);
|
||||||
|
mProxyPreference.setText(newProxy);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
private void manageAccountPreferencesFields(PreferenceScreen parent) {
|
private void manageAccountPreferencesFields(PreferenceScreen parent) {
|
||||||
boolean isDefaultAccount = mPrefs.getDefaultAccountIndex() == n;
|
boolean isDefaultAccount = mPrefs.getDefaultAccountIndex() == n;
|
||||||
|
@ -165,28 +194,33 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
||||||
domain.setSummary(domain.getText());
|
domain.setSummary(domain.getText());
|
||||||
|
|
||||||
PreferenceCategory advanced = (PreferenceCategory) getPreferenceScreen().findPreference(getString(R.string.pref_advanced_key));
|
PreferenceCategory advanced = (PreferenceCategory) getPreferenceScreen().findPreference(getString(R.string.pref_advanced_key));
|
||||||
EditTextPreference proxy = (EditTextPreference) advanced.getPreference(0);
|
mTransportPreference = (ListPreference) advanced.getPreference(0);
|
||||||
proxy.setText(mPrefs.getAccountProxy(n));
|
initializeTransportPreference(mTransportPreference);
|
||||||
proxy.getEditText().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
|
mTransportPreference.setOnPreferenceChangeListener(transportChangedListener);
|
||||||
proxy.setOnPreferenceChangeListener(proxyChangedListener);
|
mTransportPreference.setSummary(mPrefs.getAccountTransportString(n));
|
||||||
proxy.setSummary("".equals(proxy.getText()) || (proxy.getText() == null) ? getString(R.string.pref_help_proxy) : proxy.getText());
|
|
||||||
|
mProxyPreference = (EditTextPreference) advanced.getPreference(1);
|
||||||
|
mProxyPreference.setText(mPrefs.getAccountProxy(n));
|
||||||
|
mProxyPreference.getEditText().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
|
||||||
|
mProxyPreference.setOnPreferenceChangeListener(proxyChangedListener);
|
||||||
|
mProxyPreference.setSummary("".equals(mProxyPreference.getText()) || (mProxyPreference.getText() == null) ? getString(R.string.pref_help_proxy) : mProxyPreference.getText());
|
||||||
|
|
||||||
CheckBoxPreference outboundProxy = (CheckBoxPreference) advanced.getPreference(1);
|
CheckBoxPreference outboundProxy = (CheckBoxPreference) advanced.getPreference(2);
|
||||||
outboundProxy.setChecked(mPrefs.isAccountOutboundProxySet(n));
|
outboundProxy.setChecked(mPrefs.isAccountOutboundProxySet(n));
|
||||||
outboundProxy.setOnPreferenceChangeListener(outboundProxyChangedListener);
|
outboundProxy.setOnPreferenceChangeListener(outboundProxyChangedListener);
|
||||||
|
|
||||||
EditTextPreference expires = (EditTextPreference) advanced.getPreference(2);
|
EditTextPreference expires = (EditTextPreference) advanced.getPreference(3);
|
||||||
expires.setText(mPrefs.getExpires(n));
|
expires.setText(mPrefs.getExpires(n));
|
||||||
expires.setOnPreferenceChangeListener(expiresChangedListener);
|
expires.setOnPreferenceChangeListener(expiresChangedListener);
|
||||||
expires.setSummary(mPrefs.getExpires(n));
|
expires.setSummary(mPrefs.getExpires(n));
|
||||||
|
|
||||||
EditTextPreference prefix = (EditTextPreference) advanced.getPreference(3);
|
EditTextPreference prefix = (EditTextPreference) advanced.getPreference(4);
|
||||||
String prefixValue = mPrefs.getPrefix(n);
|
String prefixValue = mPrefs.getPrefix(n);
|
||||||
prefix.setSummary(prefixValue);
|
prefix.setSummary(prefixValue);
|
||||||
prefix.setText(prefixValue);
|
prefix.setText(prefixValue);
|
||||||
prefix.setOnPreferenceChangeListener(prefixChangedListener);
|
prefix.setOnPreferenceChangeListener(prefixChangedListener);
|
||||||
|
|
||||||
CheckBoxPreference escape = (CheckBoxPreference) advanced.getPreference(4);
|
CheckBoxPreference escape = (CheckBoxPreference) advanced.getPreference(5);
|
||||||
escape.setChecked(mPrefs.getReplacePlusByZeroZero(n));
|
escape.setChecked(mPrefs.getReplacePlusByZeroZero(n));
|
||||||
escape.setOnPreferenceChangeListener(escapeChangedListener);
|
escape.setOnPreferenceChangeListener(escapeChangedListener);
|
||||||
|
|
||||||
|
@ -220,4 +254,31 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void initializeTransportPreference(ListPreference pref) {
|
||||||
|
List<CharSequence> entries = new ArrayList<CharSequence>();
|
||||||
|
List<CharSequence> values = new ArrayList<CharSequence>();
|
||||||
|
entries.add(getString(R.string.pref_transport_udp));
|
||||||
|
values.add(getString(R.string.pref_transport_udp_key));
|
||||||
|
entries.add(getString(R.string.pref_transport_tcp));
|
||||||
|
values.add(getString(R.string.pref_transport_tcp_key));
|
||||||
|
|
||||||
|
if (!getResources().getBoolean(R.bool.disable_all_security_features_for_markets)) {
|
||||||
|
entries.add(getString(R.string.pref_transport_tls));
|
||||||
|
values.add(getString(R.string.pref_transport_tls_key));
|
||||||
|
}
|
||||||
|
setListPreferenceValues(pref, entries, values);
|
||||||
|
|
||||||
|
pref.setSummary(mPrefs.getAccountTransportString(n));
|
||||||
|
pref.setDefaultValue(mPrefs.getAccountTransportKey(n));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void setListPreferenceValues(ListPreference pref, List<CharSequence> entries, List<CharSequence> values) {
|
||||||
|
CharSequence[] contents = new CharSequence[entries.size()];
|
||||||
|
entries.toArray(contents);
|
||||||
|
pref.setEntries(contents);
|
||||||
|
contents = new CharSequence[values.size()];
|
||||||
|
values.toArray(contents);
|
||||||
|
pref.setEntryValues(contents);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
import org.linphone.core.LinphoneAddress;
|
import org.linphone.core.LinphoneAddress;
|
||||||
import org.linphone.core.LinphoneAuthInfo;
|
import org.linphone.core.LinphoneAuthInfo;
|
||||||
import org.linphone.core.LinphoneCore;
|
import org.linphone.core.LinphoneCore;
|
||||||
|
import org.linphone.core.LinphoneAddress.TransportType;
|
||||||
import org.linphone.core.LinphoneCore.FirewallPolicy;
|
import org.linphone.core.LinphoneCore.FirewallPolicy;
|
||||||
import org.linphone.core.LinphoneCore.MediaEncryption;
|
import org.linphone.core.LinphoneCore.MediaEncryption;
|
||||||
import org.linphone.core.LinphoneCore.RegistrationState;
|
import org.linphone.core.LinphoneCore.RegistrationState;
|
||||||
|
@ -154,6 +155,7 @@ public class LinphonePreferences {
|
||||||
private boolean tempOutboundProxy;
|
private boolean tempOutboundProxy;
|
||||||
private String tempContactsParams;
|
private String tempContactsParams;
|
||||||
private String tempExpire;
|
private String tempExpire;
|
||||||
|
private TransportType tempTransport;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new account using values previously set using setNew* functions
|
* Creates a new account using values previously set using setNew* functions
|
||||||
|
@ -163,9 +165,15 @@ public class LinphonePreferences {
|
||||||
String identity = "sip:" + tempUsername + "@" + tempDomain;
|
String identity = "sip:" + tempUsername + "@" + tempDomain;
|
||||||
String proxy = "sip:";
|
String proxy = "sip:";
|
||||||
proxy += tempProxy == null ? tempDomain : tempProxy;
|
proxy += tempProxy == null ? tempDomain : tempProxy;
|
||||||
|
LinphoneAddress proxyAddr = LinphoneCoreFactory.instance().createLinphoneAddress(proxy);
|
||||||
String route = tempOutboundProxy ? tempProxy : null;
|
String route = tempOutboundProxy ? tempProxy : null;
|
||||||
|
|
||||||
LinphoneProxyConfig prxCfg = LinphoneCoreFactory.instance().createProxyConfig(identity, proxy, route, true);
|
if (tempTransport == null) {
|
||||||
|
tempTransport = TransportType.LinphoneTransportUdp;
|
||||||
|
}
|
||||||
|
proxyAddr.setTransport(tempTransport);
|
||||||
|
|
||||||
|
LinphoneProxyConfig prxCfg = LinphoneCoreFactory.instance().createProxyConfig(identity, proxyAddr.asStringUriOnly(), route, true);
|
||||||
if (tempContactsParams != null)
|
if (tempContactsParams != null)
|
||||||
prxCfg.setContactUriParameters(tempContactsParams);
|
prxCfg.setContactUriParameters(tempContactsParams);
|
||||||
if (tempExpire != null) {
|
if (tempExpire != null) {
|
||||||
|
@ -190,6 +198,80 @@ public class LinphonePreferences {
|
||||||
tempOutboundProxy = false;
|
tempOutboundProxy = false;
|
||||||
tempContactsParams = null;
|
tempContactsParams = null;
|
||||||
tempExpire = null;
|
tempExpire = null;
|
||||||
|
tempTransport = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNewAccountTransport(TransportType transport) {
|
||||||
|
tempTransport = transport;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAccountTransport(int n, String transport) {
|
||||||
|
LinphoneProxyConfig proxyConfig = getProxyConfig(n);
|
||||||
|
|
||||||
|
if (proxyConfig != null && transport != null) {
|
||||||
|
LinphoneAddress proxyAddr;
|
||||||
|
try {
|
||||||
|
proxyAddr = LinphoneCoreFactory.instance().createLinphoneAddress(proxyConfig.getProxy());
|
||||||
|
|
||||||
|
if (transport.equals(getString(R.string.pref_transport_udp_key))) {
|
||||||
|
proxyAddr.setTransport(TransportType.LinphoneTransportUdp);
|
||||||
|
} else if (transport.equals(getString(R.string.pref_transport_tcp_key))) {
|
||||||
|
proxyAddr.setTransport(TransportType.LinphoneTransportTcp);
|
||||||
|
} else if (transport.equals(getString(R.string.pref_transport_tls_key))) {
|
||||||
|
proxyAddr.setTransport(TransportType.LinphoneTransportTls);
|
||||||
|
}
|
||||||
|
|
||||||
|
LinphoneProxyConfig prxCfg = getProxyConfig(n);
|
||||||
|
prxCfg.setProxy(proxyAddr.asStringUriOnly());
|
||||||
|
prxCfg.done();
|
||||||
|
|
||||||
|
if (isAccountOutboundProxySet(n)) {
|
||||||
|
setAccountOutboundProxyEnabled(n, true);
|
||||||
|
}
|
||||||
|
} catch (LinphoneCoreException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TransportType getAccountTransport(int n) {
|
||||||
|
TransportType transport = null;
|
||||||
|
LinphoneProxyConfig proxyConfig = getProxyConfig(n);
|
||||||
|
|
||||||
|
if (proxyConfig != null) {
|
||||||
|
LinphoneAddress proxyAddr;
|
||||||
|
try {
|
||||||
|
proxyAddr = LinphoneCoreFactory.instance().createLinphoneAddress(proxyConfig.getProxy());
|
||||||
|
transport = proxyAddr.getTransport();
|
||||||
|
} catch (LinphoneCoreException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return transport;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAccountTransportKey(int n) {
|
||||||
|
TransportType transport = getAccountTransport(n);
|
||||||
|
String key = getString(R.string.pref_transport_udp_key);
|
||||||
|
|
||||||
|
if (transport != null && transport == TransportType.LinphoneTransportTcp)
|
||||||
|
key = getString(R.string.pref_transport_tcp_key);
|
||||||
|
else if (transport != null && transport == TransportType.LinphoneTransportTls)
|
||||||
|
key = getString(R.string.pref_transport_tls_key);
|
||||||
|
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAccountTransportString(int n) {
|
||||||
|
TransportType transport = getAccountTransport(n);
|
||||||
|
|
||||||
|
if (transport != null && transport == TransportType.LinphoneTransportTcp)
|
||||||
|
return getString(R.string.pref_transport_tcp);
|
||||||
|
else if (transport != null && transport == TransportType.LinphoneTransportTls)
|
||||||
|
return getString(R.string.pref_transport_tls);
|
||||||
|
|
||||||
|
return getString(R.string.pref_transport_udp);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNewAccountUsername(String username) {
|
public void setNewAccountUsername(String username) {
|
||||||
|
@ -278,14 +360,21 @@ public class LinphonePreferences {
|
||||||
if (proxy == null || proxy.length() <= 0) {
|
if (proxy == null || proxy.length() <= 0) {
|
||||||
proxy = getAccountDomain(n);
|
proxy = getAccountDomain(n);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!proxy.contains("sip:")) {
|
if (!proxy.contains("sip:")) {
|
||||||
proxy = "sip:" + proxy;
|
proxy = "sip:" + proxy;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
LinphoneAddress proxyAddr = LinphoneCoreFactory.instance().createLinphoneAddress(proxy);
|
||||||
|
if (!proxy.contains("transport=")) {
|
||||||
|
proxyAddr.setTransport(getAccountTransport(n));
|
||||||
|
}
|
||||||
|
|
||||||
LinphoneProxyConfig prxCfg = getProxyConfig(n);
|
LinphoneProxyConfig prxCfg = getProxyConfig(n);
|
||||||
prxCfg.setProxy(proxy);
|
prxCfg.setProxy(proxyAddr.asStringUriOnly());
|
||||||
prxCfg.done();
|
prxCfg.done();
|
||||||
|
|
||||||
if (isAccountOutboundProxySet(n)) {
|
if (isAccountOutboundProxySet(n)) {
|
||||||
setAccountOutboundProxyEnabled(n, true);
|
setAccountOutboundProxyEnabled(n, true);
|
||||||
}
|
}
|
||||||
|
@ -296,9 +385,6 @@ public class LinphonePreferences {
|
||||||
|
|
||||||
public String getAccountProxy(int n) {
|
public String getAccountProxy(int n) {
|
||||||
String proxy = getProxyConfig(n).getProxy();
|
String proxy = getProxyConfig(n).getProxy();
|
||||||
if (proxy != null && proxy.startsWith("sip:")) {
|
|
||||||
proxy = proxy.substring(4);
|
|
||||||
}
|
|
||||||
return proxy;
|
return proxy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -311,9 +397,6 @@ public class LinphonePreferences {
|
||||||
LinphoneProxyConfig prxCfg = getProxyConfig(n);
|
LinphoneProxyConfig prxCfg = getProxyConfig(n);
|
||||||
if (enabled) {
|
if (enabled) {
|
||||||
String route = prxCfg.getProxy();
|
String route = prxCfg.getProxy();
|
||||||
if (!route.contains("sip:")) {
|
|
||||||
route = "sip:" + route;
|
|
||||||
}
|
|
||||||
prxCfg.setRoute(route);
|
prxCfg.setRoute(route);
|
||||||
} else {
|
} else {
|
||||||
prxCfg.setRoute(null);
|
prxCfg.setRoute(null);
|
||||||
|
@ -568,14 +651,6 @@ public class LinphonePreferences {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isUpnpEnabled() {
|
|
||||||
return getLc().upnpAvailable() && getLc().getFirewallPolicy() == FirewallPolicy.UseUpnp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isIceEnabled() {
|
|
||||||
return getLc().getFirewallPolicy() == FirewallPolicy.UseIce;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void useRandomPort(boolean enabled) {
|
public void useRandomPort(boolean enabled) {
|
||||||
useRandomPort(enabled, true);
|
useRandomPort(enabled, true);
|
||||||
}
|
}
|
||||||
|
@ -586,92 +661,39 @@ public class LinphonePreferences {
|
||||||
if (enabled) {
|
if (enabled) {
|
||||||
setSipPort(LINPHONE_CORE_RANDOM_PORT);
|
setSipPort(LINPHONE_CORE_RANDOM_PORT);
|
||||||
} else {
|
} else {
|
||||||
if (getTransport().equals(getString(R.string.pref_transport_tls)))
|
setSipPort(5060);
|
||||||
setSipPort(5061);
|
|
||||||
else
|
|
||||||
setSipPort(5060);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isUsingRandomPort() {
|
public boolean isUsingRandomPort() {
|
||||||
return getConfig().getBool("app", "random_port", true);
|
return getConfig().getBool("app", "random_port", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getSipPort() {
|
public String getSipPort() {
|
||||||
Transports transports = getLc().getSignalingTransportPorts();
|
Transports transports = getLc().getSignalingTransportPorts();
|
||||||
int port;
|
int port;
|
||||||
if (transports.udp > 0)
|
if (transports.udp > 0)
|
||||||
port = transports.udp;
|
port = transports.udp;
|
||||||
else if (transports.tcp > 0)
|
|
||||||
port = transports.tcp;
|
|
||||||
else
|
else
|
||||||
port = transports.tls;
|
port = transports.tcp;
|
||||||
return String.valueOf(port);
|
return String.valueOf(port);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSipPort(int port) {
|
public void setSipPort(int port) {
|
||||||
Transports transports = getLc().getSignalingTransportPorts();
|
Transports transports = getLc().getSignalingTransportPorts();
|
||||||
if (transports.udp > 0)
|
transports.udp = port;
|
||||||
transports.udp = port;
|
transports.tcp = port;
|
||||||
else if (transports.tcp > 0)
|
transports.tls = LINPHONE_CORE_RANDOM_PORT;
|
||||||
transports.tcp = port;
|
|
||||||
else
|
|
||||||
transports.tls = port;
|
|
||||||
getLc().setSignalingTransportPorts(transports);
|
getLc().setSignalingTransportPorts(transports);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getTransportKey() {
|
public boolean isUpnpEnabled() {
|
||||||
Transports transports = getLc().getSignalingTransportPorts();
|
return getLc().upnpAvailable() && getLc().getFirewallPolicy() == FirewallPolicy.UseUpnp;
|
||||||
String transport = getString(R.string.pref_transport_udp_key);
|
|
||||||
if (transports.tcp > 0)
|
|
||||||
transport = getString(R.string.pref_transport_tcp_key);
|
|
||||||
else if (transports.tls > 0)
|
|
||||||
transport = getString(R.string.pref_transport_tls_key);
|
|
||||||
return transport;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getTransport() {
|
public boolean isIceEnabled() {
|
||||||
Transports transports = getLc().getSignalingTransportPorts();
|
return getLc().getFirewallPolicy() == FirewallPolicy.UseIce;
|
||||||
String transport = getString(R.string.pref_transport_udp);
|
|
||||||
if (transports.tcp > 0)
|
|
||||||
transport = getString(R.string.pref_transport_tcp);
|
|
||||||
else if (transports.tls > 0)
|
|
||||||
transport = getString(R.string.pref_transport_tls);
|
|
||||||
return transport;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTransport(String transportKey) {
|
|
||||||
if (transportKey == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
Transports transports = getLc().getSignalingTransportPorts();
|
|
||||||
if (transports.udp > 0) {
|
|
||||||
if (transportKey.equals(getString(R.string.pref_transport_tcp_key))) {
|
|
||||||
transports.tcp = transports.udp;
|
|
||||||
transports.udp = transports.tls;
|
|
||||||
} else if (transportKey.equals(getString(R.string.pref_transport_tls_key))) {
|
|
||||||
transports.tls = transports.udp;
|
|
||||||
transports.udp = transports.tcp;
|
|
||||||
}
|
|
||||||
} else if (transports.tcp > 0) {
|
|
||||||
if (transportKey.equals(getString(R.string.pref_transport_udp_key))) {
|
|
||||||
transports.udp = transports.tcp;
|
|
||||||
transports.tcp = transports.tls;
|
|
||||||
} else if (transportKey.equals(getString(R.string.pref_transport_tls_key))) {
|
|
||||||
transports.tls = transports.tcp;
|
|
||||||
transports.tcp = transports.udp;
|
|
||||||
}
|
|
||||||
} else if (transports.tls > 0) {
|
|
||||||
if (transportKey.equals(getString(R.string.pref_transport_udp_key))) {
|
|
||||||
transports.udp = transports.tls;
|
|
||||||
transports.tls = transports.tcp;
|
|
||||||
} else if (transportKey.equals(getString(R.string.pref_transport_tcp_key))) {
|
|
||||||
transports.tcp = transports.tls;
|
|
||||||
transports.tls = transports.udp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
getLc().setSignalingTransportPorts(transports);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public MediaEncryption getMediaEncryption() {
|
public MediaEncryption getMediaEncryption() {
|
||||||
|
|
|
@ -377,30 +377,6 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
||||||
key = getString(R.string.pref_media_encryption_key_zrtp);
|
key = getString(R.string.pref_media_encryption_key_zrtp);
|
||||||
pref.setDefaultValue(key);
|
pref.setDefaultValue(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initializeTransportPreferences(ListPreference pref) {
|
|
||||||
List<CharSequence> entries = new ArrayList<CharSequence>();
|
|
||||||
List<CharSequence> values = new ArrayList<CharSequence>();
|
|
||||||
entries.add(getString(R.string.pref_transport_udp));
|
|
||||||
values.add(getString(R.string.pref_transport_udp_key));
|
|
||||||
entries.add(getString(R.string.pref_transport_tcp));
|
|
||||||
values.add(getString(R.string.pref_transport_tcp_key));
|
|
||||||
|
|
||||||
if (!getResources().getBoolean(R.bool.disable_all_security_features_for_markets)) {
|
|
||||||
entries.add(getString(R.string.pref_transport_tls));
|
|
||||||
values.add(getString(R.string.pref_transport_tls_key));
|
|
||||||
}
|
|
||||||
setListPreferenceValues(pref, entries, values);
|
|
||||||
|
|
||||||
String value = mPrefs.getTransport();
|
|
||||||
pref.setSummary(value);
|
|
||||||
String key = getString(R.string.pref_transport_udp_key);
|
|
||||||
if (value.equals(getString(R.string.pref_transport_tcp)))
|
|
||||||
key = getString(R.string.pref_transport_tcp_key);
|
|
||||||
else if (value.equals(getString(R.string.pref_transport_tls)))
|
|
||||||
key = getString(R.string.pref_transport_tls_key);
|
|
||||||
pref.setDefaultValue(key);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initializePreferredVideoSizePreferences(ListPreference pref) {
|
private void initializePreferredVideoSizePreferences(ListPreference pref) {
|
||||||
List<CharSequence> entries = new ArrayList<CharSequence>();
|
List<CharSequence> entries = new ArrayList<CharSequence>();
|
||||||
|
@ -631,8 +607,7 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
||||||
|
|
||||||
private void initNetworkSettings() {
|
private void initNetworkSettings() {
|
||||||
initMediaEncryptionPreference((ListPreference) findPreference(getString(R.string.pref_media_encryption_key)));
|
initMediaEncryptionPreference((ListPreference) findPreference(getString(R.string.pref_media_encryption_key)));
|
||||||
initializeTransportPreferences((ListPreference) findPreference(getString(R.string.pref_transport_key)));
|
|
||||||
|
|
||||||
((CheckBoxPreference) findPreference(getString(R.string.pref_wifi_only_key))).setChecked(mPrefs.isWifiOnlyEnabled());
|
((CheckBoxPreference) findPreference(getString(R.string.pref_wifi_only_key))).setChecked(mPrefs.isWifiOnlyEnabled());
|
||||||
|
|
||||||
// Disable UPnP if ICE si enabled, or disable ICE if UPnP is enabled
|
// Disable UPnP if ICE si enabled, or disable ICE if UPnP is enabled
|
||||||
|
@ -731,15 +706,6 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
findPreference(getString(R.string.pref_transport_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
|
||||||
@Override
|
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
|
||||||
mPrefs.setTransport(newValue.toString());
|
|
||||||
preference.setSummary(mPrefs.getTransport());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
findPreference(getString(R.string.pref_media_encryption_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
findPreference(getString(R.string.pref_media_encryption_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
|
|
@ -21,6 +21,7 @@ import org.linphone.LinphoneManager;
|
||||||
import org.linphone.LinphonePreferences;
|
import org.linphone.LinphonePreferences;
|
||||||
import org.linphone.LinphoneSimpleListener.LinphoneOnRegistrationStateChangedListener;
|
import org.linphone.LinphoneSimpleListener.LinphoneOnRegistrationStateChangedListener;
|
||||||
import org.linphone.R;
|
import org.linphone.R;
|
||||||
|
import org.linphone.core.LinphoneAddress.TransportType;
|
||||||
import org.linphone.core.LinphoneCore.RegistrationState;
|
import org.linphone.core.LinphoneCore.RegistrationState;
|
||||||
import org.linphone.core.LinphoneCoreException;
|
import org.linphone.core.LinphoneCoreException;
|
||||||
|
|
||||||
|
@ -291,11 +292,11 @@ public class SetupActivity extends FragmentActivity implements OnClickListener {
|
||||||
if (isMainAccountLinphoneDotOrg && useLinphoneDotOrgCustomPorts) {
|
if (isMainAccountLinphoneDotOrg && useLinphoneDotOrgCustomPorts) {
|
||||||
if (getResources().getBoolean(R.bool.disable_all_security_features_for_markets)) {
|
if (getResources().getBoolean(R.bool.disable_all_security_features_for_markets)) {
|
||||||
mPrefs.setNewAccountProxy(domain + ":5228");
|
mPrefs.setNewAccountProxy(domain + ":5228");
|
||||||
mPrefs.setTransport(getString(R.string.pref_transport_tcp_key));
|
mPrefs.setNewAccountTransport(TransportType.LinphoneTransportTcp);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
mPrefs.setNewAccountProxy(domain + ":5223");
|
mPrefs.setNewAccountProxy(domain + ":5223");
|
||||||
mPrefs.setTransport(getString(R.string.pref_transport_tls_key));
|
mPrefs.setNewAccountTransport(TransportType.LinphoneTransportTls);
|
||||||
}
|
}
|
||||||
|
|
||||||
mPrefs.setNewAccountExpires("604800");
|
mPrefs.setNewAccountExpires("604800");
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 3e876562027c51f61e3fe32f37bc66075e0b7854
|
Subproject commit 7bfd12788a1753f17a2a054152addfc8d465ebc9
|
Loading…
Reference in a new issue