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_disabled</item>
|
||||||
<item >@string/tunnel_mode_entry_value_3G_only</item>
|
<item >@string/tunnel_mode_entry_value_3G_only</item>
|
||||||
<item>@string/tunnel_mode_entry_value_always</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-array>
|
||||||
<string name="pref_tunnel_host_key">pref_tunnel_host_key</string>
|
<string name="pref_tunnel_host_key">pref_tunnel_host_key</string>
|
||||||
<string name="pref_tunnel_port_key">pref_tunnel_port_key</string>
|
<string name="pref_tunnel_port_key">pref_tunnel_port_key</string>
|
||||||
|
|
|
@ -23,7 +23,8 @@
|
||||||
|
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:title="@string/pref_tunnel_port"
|
android:title="@string/pref_tunnel_port"
|
||||||
android:key="@string/pref_tunnel_port_key"/>
|
android:key="@string/pref_tunnel_port_key"
|
||||||
|
android:numeric="integer"/>
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
android:title="@string/pref_tunnel_mode"
|
android:title="@string/pref_tunnel_mode"
|
||||||
|
|
|
@ -139,6 +139,7 @@ public class LinphoneManager implements LinphoneCoreListener {
|
||||||
private static boolean sExited;
|
private static boolean sExited;
|
||||||
private boolean mAudioFocused;
|
private boolean mAudioFocused;
|
||||||
private boolean isNetworkReachable;
|
private boolean isNetworkReachable;
|
||||||
|
private ConnectivityManager mConnectivityManager;
|
||||||
|
|
||||||
private WakeLock mIncallWakeLock;
|
private WakeLock mIncallWakeLock;
|
||||||
|
|
||||||
|
@ -178,6 +179,7 @@ public class LinphoneManager implements LinphoneCoreListener {
|
||||||
mAudioManager = ((AudioManager) c.getSystemService(Context.AUDIO_SERVICE));
|
mAudioManager = ((AudioManager) c.getSystemService(Context.AUDIO_SERVICE));
|
||||||
mVibrator = (Vibrator) c.getSystemService(Context.VIBRATOR_SERVICE);
|
mVibrator = (Vibrator) c.getSystemService(Context.VIBRATOR_SERVICE);
|
||||||
mPowerManager = (PowerManager) c.getSystemService(Context.POWER_SERVICE);
|
mPowerManager = (PowerManager) c.getSystemService(Context.POWER_SERVICE);
|
||||||
|
mConnectivityManager = (ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||||
mR = c.getResources();
|
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) {
|
private boolean isTunnelNeeded(NetworkInfo info) {
|
||||||
if (info == null) {
|
if (info == null) {
|
||||||
|
@ -505,7 +518,7 @@ public class LinphoneManager implements LinphoneCoreListener {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void manageTunnelServer(NetworkInfo info) {
|
private void manageTunnelServer(NetworkInfo info) {
|
||||||
if (mLc == null) return;
|
if (mLc == null) return;
|
||||||
if (!mLc.isTunnelAvailable()) return;
|
if (!mLc.isTunnelAvailable()) return;
|
||||||
|
|
||||||
|
@ -598,6 +611,8 @@ public class LinphoneManager implements LinphoneCoreListener {
|
||||||
}
|
}
|
||||||
LinphoneManager.getLc().setVideoDevice(camId);
|
LinphoneManager.getLc().setVideoDevice(camId);
|
||||||
|
|
||||||
|
initTunnelFromConf();
|
||||||
|
|
||||||
TimerTask lTask = new TimerTask() {
|
TimerTask lTask = new TimerTask() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
|
|
@ -769,7 +769,27 @@ public class LinphonePreferences {
|
||||||
|
|
||||||
// Tunnel settings
|
// Tunnel settings
|
||||||
public String getTunnelMode() {
|
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
|
// End of tunnel settings
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,6 +77,7 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
||||||
private void initSettings() {
|
private void initSettings() {
|
||||||
//Init accounts on Resume instead of on Create to update the account list when coming back from wizard
|
//Init accounts on Resume instead of on Create to update the account list when coming back from wizard
|
||||||
|
|
||||||
|
initTunnelSettings();
|
||||||
initAudioSettings();
|
initAudioSettings();
|
||||||
initVideoSettings();
|
initVideoSettings();
|
||||||
initCallSettings();
|
initCallSettings();
|
||||||
|
@ -106,6 +107,7 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
||||||
|
|
||||||
// Sets listener for each preference to update the matching value in linphonecore
|
// Sets listener for each preference to update the matching value in linphonecore
|
||||||
private void setListeners() {
|
private void setListeners() {
|
||||||
|
setTunnelPreferencesListener();
|
||||||
setAudioPreferencesListener();
|
setAudioPreferencesListener();
|
||||||
setVideoPreferencesListener();
|
setVideoPreferencesListener();
|
||||||
setCallPreferencesListener();
|
setCallPreferencesListener();
|
||||||
|
@ -225,6 +227,43 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
||||||
findPreference(getString(pref)).setSummary(value);
|
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() {
|
private void initAccounts() {
|
||||||
PreferenceCategory accounts = (PreferenceCategory) findPreference(getString(R.string.pref_sipaccounts_key));
|
PreferenceCategory accounts = (PreferenceCategory) findPreference(getString(R.string.pref_sipaccounts_key));
|
||||||
accounts.removeAll();
|
accounts.removeAll();
|
||||||
|
|
Loading…
Reference in a new issue