From c67f4ee3357609843992c3ebb00c42c0fa1a16ab Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 9 Sep 2019 13:15:24 +0200 Subject: [PATCH] Added back dual tunnel mode settings --- .../settings/LinphonePreferences.java | 47 +++++++++++++++++++ .../settings/TunnelSettingsFragment.java | 45 +++++++++++++++++- app/src/main/res/layout/settings_tunnel.xml | 21 +++++++++ app/src/main/res/values/strings.xml | 3 ++ 4 files changed, 115 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/linphone/settings/LinphonePreferences.java b/app/src/main/java/org/linphone/settings/LinphonePreferences.java index a60f87b92..ee16ab397 100644 --- a/app/src/main/java/org/linphone/settings/LinphonePreferences.java +++ b/app/src/main/java/org/linphone/settings/LinphonePreferences.java @@ -900,6 +900,53 @@ public class LinphonePreferences { } } + public String getTunnelHost2() { + TunnelConfig config = getTunnelConfig(); + if (config != null) { + return config.getHost2(); + } else { + return null; + } + } + + public void setTunnelHost2(String host) { + TunnelConfig config = getTunnelConfig(); + if (config != null) { + config.setHost2(host); + LinphoneManager.getInstance().initTunnelFromConf(); + } + } + + public int getTunnelPort2() { + TunnelConfig config = getTunnelConfig(); + if (config != null) { + return config.getPort2(); + } else { + return -1; + } + } + + public void setTunnelPort2(int port) { + TunnelConfig config = getTunnelConfig(); + if (config != null) { + config.setPort2(port); + LinphoneManager.getInstance().initTunnelFromConf(); + } + } + + public void enableTunnelDualMode(boolean enable) { + LinphoneManager.getInstance().initTunnelFromConf(); + getLc().getTunnel().enableDualMode(enable); + } + + public boolean isTunnelDualModeEnabled() { + Tunnel tunnel = getLc().getTunnel(); + if (tunnel != null) { + return tunnel.dualModeEnabled(); + } + return false; + } + public String getTunnelMode() { return getConfig().getString("app", "tunnel", null); } diff --git a/app/src/main/java/org/linphone/settings/TunnelSettingsFragment.java b/app/src/main/java/org/linphone/settings/TunnelSettingsFragment.java index 48efd473b..8d5150d61 100644 --- a/app/src/main/java/org/linphone/settings/TunnelSettingsFragment.java +++ b/app/src/main/java/org/linphone/settings/TunnelSettingsFragment.java @@ -29,13 +29,15 @@ import org.linphone.R; import org.linphone.core.tools.Log; import org.linphone.settings.widget.ListSetting; import org.linphone.settings.widget.SettingListenerBase; +import org.linphone.settings.widget.SwitchSetting; import org.linphone.settings.widget.TextSetting; public class TunnelSettingsFragment extends SettingsFragment { private View mRootView; private LinphonePreferences mPrefs; - private TextSetting mHost, mPort; + private TextSetting mHost, mPort, mHost2, mPort2; + private SwitchSetting mDualMode; private ListSetting mMode; @Nullable @@ -64,7 +66,14 @@ public class TunnelSettingsFragment extends SettingsFragment { mPort = mRootView.findViewById(R.id.pref_tunnel_port); mPort.setInputType(InputType.TYPE_CLASS_NUMBER); + mHost2 = mRootView.findViewById(R.id.pref_tunnel_host_2); + + mPort2 = mRootView.findViewById(R.id.pref_tunnel_port_2); + mPort2.setInputType(InputType.TYPE_CLASS_NUMBER); + mMode = mRootView.findViewById(R.id.pref_tunnel_mode); + + mDualMode = mRootView.findViewById(R.id.pref_tunnel_dual_mode); } private void setListeners() { @@ -88,6 +97,26 @@ public class TunnelSettingsFragment extends SettingsFragment { } }); + mHost2.setListener( + new SettingListenerBase() { + @Override + public void onTextValueChanged(String newValue) { + mPrefs.setTunnelHost2(newValue); + } + }); + + mPort2.setListener( + new SettingListenerBase() { + @Override + public void onTextValueChanged(String newValue) { + try { + mPrefs.setTunnelPort2(Integer.valueOf(newValue)); + } catch (NumberFormatException nfe) { + Log.e(nfe); + } + } + }); + mMode.setListener( new SettingListenerBase() { @Override @@ -95,6 +124,14 @@ public class TunnelSettingsFragment extends SettingsFragment { mPrefs.setTunnelMode(newValue); } }); + + mDualMode.setListener( + new SettingListenerBase() { + @Override + public void onBoolValueChanged(boolean newValue) { + mPrefs.enableTunnelDualMode(newValue); + } + }); } private void updateValues() { @@ -102,8 +139,14 @@ public class TunnelSettingsFragment extends SettingsFragment { mPort.setValue(mPrefs.getTunnelPort()); + mHost2.setValue(mPrefs.getTunnelHost2()); + + mPort2.setValue(mPrefs.getTunnelPort2()); + mMode.setValue(mPrefs.getTunnelMode()); + mDualMode.setChecked(mPrefs.isTunnelDualModeEnabled()); + setListeners(); } } diff --git a/app/src/main/res/layout/settings_tunnel.xml b/app/src/main/res/layout/settings_tunnel.xml index 434081d83..a7314bf95 100644 --- a/app/src/main/res/layout/settings_tunnel.xml +++ b/app/src/main/res/layout/settings_tunnel.xml @@ -25,6 +25,27 @@ linphone:hint="@string/pref_tunnel_port" linphone:title="@string/pref_tunnel_port" /> + + + + + + Tunnel Hostname Port + Enable dual mode + Hostname (2nd server for dual mode) + Port (2nd server for dual mode) Mode