Added tunnel preferences handlers
This commit is contained in:
parent
6cfe459818
commit
c5d1b92b2a
5 changed files with 79 additions and 4 deletions
|
@ -16,7 +16,7 @@
|
|||
<item>@string/tunnel_mode_entry_value_disabled</item>
|
||||
<item >@string/tunnel_mode_entry_value_3G_only</item>
|
||||
<item>@string/tunnel_mode_entry_value_always</item>
|
||||
<item>@string/tunnel_mode_entry_value_auto</item>
|
||||
<item>@string/tunnel_mode_entry_value_auto</item>
|
||||
</string-array>
|
||||
<string name="pref_tunnel_host_key">pref_tunnel_host_key</string>
|
||||
<string name="pref_tunnel_port_key">pref_tunnel_port_key</string>
|
||||
|
|
|
@ -23,7 +23,8 @@
|
|||
|
||||
<EditTextPreference
|
||||
android:title="@string/pref_tunnel_port"
|
||||
android:key="@string/pref_tunnel_port_key"/>
|
||||
android:key="@string/pref_tunnel_port_key"
|
||||
android:numeric="integer"/>
|
||||
|
||||
<ListPreference
|
||||
android:title="@string/pref_tunnel_mode"
|
||||
|
|
|
@ -139,6 +139,7 @@ public class LinphoneManager implements LinphoneCoreListener {
|
|||
private static boolean sExited;
|
||||
private boolean mAudioFocused;
|
||||
private boolean isNetworkReachable;
|
||||
private ConnectivityManager mConnectivityManager;
|
||||
|
||||
private WakeLock mIncallWakeLock;
|
||||
|
||||
|
@ -178,6 +179,7 @@ public class LinphoneManager implements LinphoneCoreListener {
|
|||
mAudioManager = ((AudioManager) c.getSystemService(Context.AUDIO_SERVICE));
|
||||
mVibrator = (Vibrator) c.getSystemService(Context.VIBRATOR_SERVICE);
|
||||
mPowerManager = (PowerManager) c.getSystemService(Context.POWER_SERVICE);
|
||||
mConnectivityManager = (ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||
mR = c.getResources();
|
||||
}
|
||||
|
||||
|
@ -483,6 +485,17 @@ public class LinphoneManager implements LinphoneCoreListener {
|
|||
}
|
||||
}
|
||||
|
||||
private void initTunnelFromConf() {
|
||||
if (!mLc.isTunnelAvailable())
|
||||
return;
|
||||
|
||||
NetworkInfo info = mConnectivityManager.getActiveNetworkInfo();
|
||||
mLc.tunnelCleanServers();
|
||||
String host = mPrefs.getTunnelHost();
|
||||
int port = mPrefs.getTunnelPort();
|
||||
mLc.tunnelAddServerAndMirror(host, port, 12345, 500);
|
||||
manageTunnelServer(info);
|
||||
}
|
||||
|
||||
private boolean isTunnelNeeded(NetworkInfo info) {
|
||||
if (info == null) {
|
||||
|
@ -505,7 +518,7 @@ public class LinphoneManager implements LinphoneCoreListener {
|
|||
return false;
|
||||
}
|
||||
|
||||
public void manageTunnelServer(NetworkInfo info) {
|
||||
private void manageTunnelServer(NetworkInfo info) {
|
||||
if (mLc == null) return;
|
||||
if (!mLc.isTunnelAvailable()) return;
|
||||
|
||||
|
@ -597,6 +610,8 @@ public class LinphoneManager implements LinphoneCoreListener {
|
|||
camId = androidCamera.id;
|
||||
}
|
||||
LinphoneManager.getLc().setVideoDevice(camId);
|
||||
|
||||
initTunnelFromConf();
|
||||
|
||||
TimerTask lTask = new TimerTask() {
|
||||
@Override
|
||||
|
|
|
@ -769,7 +769,27 @@ public class LinphonePreferences {
|
|||
|
||||
// Tunnel settings
|
||||
public String getTunnelMode() {
|
||||
return null; //TODO
|
||||
return getConfig().getString("app", "tunnel", getString(R.string.default_tunnel_mode_entry_value));
|
||||
}
|
||||
|
||||
public void setTunnelMode(String mode) {
|
||||
getConfig().setString("app", "tunnel", mode);
|
||||
}
|
||||
|
||||
public String getTunnelHost() {
|
||||
return getConfig().getString("tunnel", "host", getString(R.string.tunnel_host));
|
||||
}
|
||||
|
||||
public void setTunnelHost(String host) {
|
||||
getConfig().setString("tunnel", "host", host);
|
||||
}
|
||||
|
||||
public int getTunnelPort() {
|
||||
return getConfig().getInt("tunnel", "port", 443);
|
||||
}
|
||||
|
||||
public void setTunnelPort(int port) {
|
||||
getConfig().setInt("tunnel", "port", port);
|
||||
}
|
||||
// End of tunnel settings
|
||||
}
|
||||
|
|
|
@ -77,6 +77,7 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
|||
private void initSettings() {
|
||||
//Init accounts on Resume instead of on Create to update the account list when coming back from wizard
|
||||
|
||||
initTunnelSettings();
|
||||
initAudioSettings();
|
||||
initVideoSettings();
|
||||
initCallSettings();
|
||||
|
@ -106,6 +107,7 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
|||
|
||||
// Sets listener for each preference to update the matching value in linphonecore
|
||||
private void setListeners() {
|
||||
setTunnelPreferencesListener();
|
||||
setAudioPreferencesListener();
|
||||
setVideoPreferencesListener();
|
||||
setCallPreferencesListener();
|
||||
|
@ -225,6 +227,43 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
|||
findPreference(getString(pref)).setSummary(value);
|
||||
}
|
||||
|
||||
private void initTunnelSettings() {
|
||||
setPreferenceDefaultValueAndSummary(R.string.pref_tunnel_host_key, mPrefs.getTunnelHost());
|
||||
setPreferenceDefaultValueAndSummary(R.string.pref_tunnel_port_key, mPrefs.getTunnelHost());
|
||||
setPreferenceDefaultValueAndSummary(R.string.pref_tunnel_mode_key, mPrefs.getTunnelMode());
|
||||
}
|
||||
|
||||
private void setTunnelPreferencesListener() {
|
||||
findPreference(getString(R.string.pref_tunnel_host_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
String host = newValue.toString();
|
||||
mPrefs.setTunnelHost(host);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
findPreference(getString(R.string.pref_tunnel_port_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
try {
|
||||
int port = Integer.parseInt(newValue.toString());
|
||||
mPrefs.setTunnelPort(port);
|
||||
return true;
|
||||
} catch (NumberFormatException nfe) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
findPreference(getString(R.string.pref_tunnel_mode_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
String mode = newValue.toString();
|
||||
mPrefs.setTunnelMode(mode);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void initAccounts() {
|
||||
PreferenceCategory accounts = (PreferenceCategory) findPreference(getString(R.string.pref_sipaccounts_key));
|
||||
accounts.removeAll();
|
||||
|
|
Loading…
Reference in a new issue