More settings binded (advanced)
This commit is contained in:
parent
4ac142370a
commit
81a2b89243
9 changed files with 357 additions and 199 deletions
|
@ -37,6 +37,11 @@
|
||||||
android:summary="@string/pref_help_outbound_proxy"
|
android:summary="@string/pref_help_outbound_proxy"
|
||||||
android:persistent="true"/>
|
android:persistent="true"/>
|
||||||
|
|
||||||
|
<EditTextPreference
|
||||||
|
android:title="@string/pref_expire_title"
|
||||||
|
android:key="@string/pref_expire_key"
|
||||||
|
android:numeric="integer" />
|
||||||
|
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:title="@string/pref_disable_account"
|
android:title="@string/pref_disable_account"
|
||||||
android:persistent="true"/>
|
android:persistent="true"/>
|
||||||
|
|
|
@ -279,11 +279,6 @@
|
||||||
android:key="@string/pref_incoming_call_timeout_key"
|
android:key="@string/pref_incoming_call_timeout_key"
|
||||||
android:layout="@layout/hidden"/>
|
android:layout="@layout/hidden"/>
|
||||||
|
|
||||||
<EditTextPreference
|
|
||||||
android:title="@string/pref_expire_title"
|
|
||||||
android:key="@string/pref_expire_key"
|
|
||||||
android:numeric="integer" />
|
|
||||||
|
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:title="@string/pref_image_sharing_server_title"
|
android:title="@string/pref_image_sharing_server_title"
|
||||||
android:key="@string/pref_image_sharing_server_key"/>
|
android:key="@string/pref_image_sharing_server_key"/>
|
||||||
|
|
|
@ -96,6 +96,14 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
OnPreferenceChangeListener expiresChangedListener = new OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
LinphonePreferences.instance().setExpires(n, newValue.toString());
|
||||||
|
preference.setSummary(newValue.toString());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
};
|
||||||
OnPreferenceChangeListener disableChangedListener = new OnPreferenceChangeListener() {
|
OnPreferenceChangeListener disableChangedListener = new OnPreferenceChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
@ -148,22 +156,17 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
||||||
outboundProxy.setChecked(LinphonePreferences.instance().isAccountOutboundProxySet(n));
|
outboundProxy.setChecked(LinphonePreferences.instance().isAccountOutboundProxySet(n));
|
||||||
outboundProxy.setOnPreferenceChangeListener(outboundProxyChangedListener);
|
outboundProxy.setOnPreferenceChangeListener(outboundProxyChangedListener);
|
||||||
|
|
||||||
final CheckBoxPreference disable = (CheckBoxPreference) advanced.getPreference(2);
|
EditTextPreference expires = (EditTextPreference) advanced.getPreference(2);
|
||||||
|
expires.setText(LinphonePreferences.instance().getExpires(n));
|
||||||
|
expires.setOnPreferenceChangeListener(expiresChangedListener);
|
||||||
|
expires.setSummary(LinphonePreferences.instance().getExpires(n));
|
||||||
|
|
||||||
|
final CheckBoxPreference disable = (CheckBoxPreference) advanced.getPreference(3);
|
||||||
disable.setEnabled(true);
|
disable.setEnabled(true);
|
||||||
disable.setChecked(!LinphonePreferences.instance().isAccountEnabled(n));
|
disable.setChecked(!LinphonePreferences.instance().isAccountEnabled(n));
|
||||||
disable.setOnPreferenceChangeListener(disableChangedListener);
|
disable.setOnPreferenceChangeListener(disableChangedListener);
|
||||||
|
|
||||||
final Preference delete = advanced.getPreference(4);
|
CheckBoxPreference mainAccount = (CheckBoxPreference) advanced.getPreference(4);
|
||||||
delete.setEnabled(true);
|
|
||||||
delete.setOnPreferenceClickListener(new OnPreferenceClickListener() {
|
|
||||||
public boolean onPreferenceClick(Preference preference) {
|
|
||||||
LinphonePreferences.instance().deleteAccount(n);
|
|
||||||
LinphoneActivity.instance().displaySettings();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
CheckBoxPreference mainAccount = (CheckBoxPreference) advanced.getPreference(3);
|
|
||||||
mainAccount.setChecked(isDefaultAccount);
|
mainAccount.setChecked(isDefaultAccount);
|
||||||
mainAccount.setEnabled(!mainAccount.isChecked());
|
mainAccount.setEnabled(!mainAccount.isChecked());
|
||||||
mainAccount.setOnPreferenceClickListener(new OnPreferenceClickListener()
|
mainAccount.setOnPreferenceClickListener(new OnPreferenceClickListener()
|
||||||
|
@ -176,5 +179,15 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
final Preference delete = advanced.getPreference(5);
|
||||||
|
delete.setEnabled(true);
|
||||||
|
delete.setOnPreferenceClickListener(new OnPreferenceClickListener() {
|
||||||
|
public boolean onPreferenceClick(Preference preference) {
|
||||||
|
LinphonePreferences.instance().deleteAccount(n);
|
||||||
|
LinphoneActivity.instance().displaySettings();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -572,7 +572,7 @@ public class LinphoneManager implements LinphoneCoreListener {
|
||||||
|
|
||||||
mLc.setZrtpSecretsCache(basePath + "/zrtp_secrets");
|
mLc.setZrtpSecretsCache(basePath + "/zrtp_secrets");
|
||||||
|
|
||||||
mLc.setRing(null);
|
mLc.setRing(mPrefs.getRingtone(null));
|
||||||
mLc.setRootCA(mLinphoneRootCaFile);
|
mLc.setRootCA(mLinphoneRootCaFile);
|
||||||
mLc.setPlayFile(mPauseSoundFile);
|
mLc.setPlayFile(mPauseSoundFile);
|
||||||
mLc.setChatDatabasePath(mChatDatabaseFile);
|
mLc.setChatDatabasePath(mChatDatabaseFile);
|
||||||
|
|
|
@ -70,6 +70,7 @@ public class LinphonePreferences {
|
||||||
return LinphoneCoreFactory.instance().createLpConfig(LinphoneManager.getInstance().mLinphoneConfigFile);
|
return LinphoneCoreFactory.instance().createLpConfig(LinphoneManager.getInstance().mLinphoneConfigFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// App settings
|
||||||
public boolean isFirstLaunch() {
|
public boolean isFirstLaunch() {
|
||||||
return getConfig().getBool("app", "first_launch", true);
|
return getConfig().getBool("app", "first_launch", true);
|
||||||
}
|
}
|
||||||
|
@ -78,82 +79,6 @@ public class LinphonePreferences {
|
||||||
getConfig().setBool("app", "first_launch", false);
|
getConfig().setBool("app", "first_launch", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDebugEnabled(boolean enabled) {
|
|
||||||
getConfig().setBool("app", "debug", enabled);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isDebugEnabled() {
|
|
||||||
return getConfig().getBool("app", "debug", false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRemoteProvisioningUrl(String url) {
|
|
||||||
getConfig().setString("app", "remote_provisioning", url);
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getRemoteProvisioningUrl() {
|
|
||||||
return getConfig().getString("app", "remote_provisioning", null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTunnelMode() {
|
|
||||||
return null; //TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean useFrontCam() {
|
|
||||||
return false; //TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isVideoEnabled() {
|
|
||||||
return false; //TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean shouldInitiateVideoCall() {
|
|
||||||
return false; //TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean shouldAutomaticallyAcceptVideoRequests() {
|
|
||||||
return false; //TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isAutoStartEnabled() {
|
|
||||||
return getConfig().getBool("app", "auto_start", false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAutoStart(boolean autoStartEnabled) {
|
|
||||||
getConfig().setBool("app", "auto_start", autoStartEnabled);
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSharingPictureServerUrl() {
|
|
||||||
return getConfig().getString("app", "sharing_server", null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSharingPictureServerUrl(String url) {
|
|
||||||
getConfig().setString("app", "sharing_server", url);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAnimationsEnabled(boolean enabled) {
|
|
||||||
getConfig().setBool("app", "animations", enabled);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean areAnimationsEnabled() {
|
|
||||||
return getConfig().getBool("app", "animations", false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean shouldAutomaticallyAcceptFriendsRequests() {
|
|
||||||
return false; //TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBackgroundModeEnabled(boolean enabled) {
|
|
||||||
getConfig().setBool("app", "background_mode", enabled);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isBackgroundModeEnabled() {
|
|
||||||
return getConfig().getBool("app", "background_mode", true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean shouldUseSoftvolume() {
|
|
||||||
return false; //TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getRingtone(String defaultRingtone) {
|
public String getRingtone(String defaultRingtone) {
|
||||||
String ringtone = getLc().getRing();
|
String ringtone = getLc().getRing();
|
||||||
if (ringtone == null || ringtone.length() == 0)
|
if (ringtone == null || ringtone.length() == 0)
|
||||||
|
@ -165,7 +90,16 @@ public class LinphonePreferences {
|
||||||
getLc().setRing(ringtone);
|
getLc().setRing(ringtone);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Accounts
|
public boolean shouldAutomaticallyAcceptFriendsRequests() {
|
||||||
|
return false; //TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean shouldUseSoftvolume() {
|
||||||
|
return false; //TODO
|
||||||
|
}
|
||||||
|
// End of app settings
|
||||||
|
|
||||||
|
// Accounts settings
|
||||||
private LinphoneProxyConfig getProxyConfig(int n) {
|
private LinphoneProxyConfig getProxyConfig(int n) {
|
||||||
LinphoneProxyConfig[] prxCfgs = getLc().getProxyConfigList();
|
LinphoneProxyConfig[] prxCfgs = getLc().getProxyConfigList();
|
||||||
if (n < 0 || n >= prxCfgs.length)
|
if (n < 0 || n >= prxCfgs.length)
|
||||||
|
@ -187,6 +121,7 @@ public class LinphonePreferences {
|
||||||
private String tempProxy;
|
private String tempProxy;
|
||||||
private boolean tempOutboundProxy;
|
private boolean tempOutboundProxy;
|
||||||
private String tempContactsParams;
|
private String tempContactsParams;
|
||||||
|
private String tempExpire;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new account using values previously set using setNew* functions
|
* Creates a new account using values previously set using setNew* functions
|
||||||
|
@ -201,6 +136,11 @@ public class LinphonePreferences {
|
||||||
LinphoneProxyConfig prxCfg = LinphoneCoreFactory.instance().createProxyConfig(identity, proxy, route, true);
|
LinphoneProxyConfig prxCfg = LinphoneCoreFactory.instance().createProxyConfig(identity, proxy, route, true);
|
||||||
if (tempContactsParams != null)
|
if (tempContactsParams != null)
|
||||||
prxCfg.setContactParameters(tempContactsParams);
|
prxCfg.setContactParameters(tempContactsParams);
|
||||||
|
if (tempExpire != null) {
|
||||||
|
try {
|
||||||
|
prxCfg.setExpires(Integer.parseInt(tempExpire));
|
||||||
|
} catch (NumberFormatException nfe) { }
|
||||||
|
}
|
||||||
|
|
||||||
LinphoneAuthInfo authInfo = LinphoneCoreFactory.instance().createAuthInfo(tempUsername, tempUserId, tempPassword, null, null);
|
LinphoneAuthInfo authInfo = LinphoneCoreFactory.instance().createAuthInfo(tempUsername, tempUserId, tempPassword, null, null);
|
||||||
|
|
||||||
|
@ -217,6 +157,7 @@ public class LinphonePreferences {
|
||||||
tempProxy = null;
|
tempProxy = null;
|
||||||
tempOutboundProxy = false;
|
tempOutboundProxy = false;
|
||||||
tempContactsParams = null;
|
tempContactsParams = null;
|
||||||
|
tempExpire = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNewAccountUsername(String username) {
|
public void setNewAccountUsername(String username) {
|
||||||
|
@ -295,6 +236,20 @@ public class LinphonePreferences {
|
||||||
return getProxyConfig(n).getRoute() != null;
|
return getProxyConfig(n).getRoute() != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getExpires(int n) {
|
||||||
|
return String.valueOf(getProxyConfig(n).getExpires());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNewAccountExpires(String expire) {
|
||||||
|
tempExpire = expire;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setExpires(int n, String expire) {
|
||||||
|
try {
|
||||||
|
getProxyConfig(n).setExpires(Integer.parseInt(expire));
|
||||||
|
} catch (NumberFormatException nfe) { }
|
||||||
|
}
|
||||||
|
|
||||||
public void setDefaultAccount(int accountIndex) {
|
public void setDefaultAccount(int accountIndex) {
|
||||||
LinphoneProxyConfig[] prxCfgs = getLc().getProxyConfigList();
|
LinphoneProxyConfig[] prxCfgs = getLc().getProxyConfigList();
|
||||||
if (accountIndex >= 0 && accountIndex < prxCfgs.length)
|
if (accountIndex >= 0 && accountIndex < prxCfgs.length)
|
||||||
|
@ -341,19 +296,125 @@ public class LinphonePreferences {
|
||||||
if (authInfo != null)
|
if (authInfo != null)
|
||||||
getLc().removeAuthInfo(authInfo);
|
getLc().removeAuthInfo(authInfo);
|
||||||
}
|
}
|
||||||
// End of Accounts
|
// End of accounts settings
|
||||||
|
|
||||||
public MediaEncryption getMediaEncryption() {
|
// Audio settings
|
||||||
return getLc().getMediaEncryption();
|
|
||||||
|
// End of audio settings
|
||||||
|
|
||||||
|
// Video settings
|
||||||
|
public boolean useFrontCam() {
|
||||||
|
return false; //TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMediaEncryption(MediaEncryption menc) {
|
public boolean isVideoEnabled() {
|
||||||
if (menc == null)
|
return false; //TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean shouldInitiateVideoCall() {
|
||||||
|
return false; //TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean shouldAutomaticallyAcceptVideoRequests() {
|
||||||
|
return false; //TODO
|
||||||
|
}
|
||||||
|
// End of video settings
|
||||||
|
|
||||||
|
// Call settings
|
||||||
|
|
||||||
|
// End of call settings
|
||||||
|
|
||||||
|
// Network settings
|
||||||
|
public void setWifiOnlyEnabled(Boolean enable) {
|
||||||
|
getConfig().setBool("app", "wifi_only", enable);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isWifiOnlyEnabled() {
|
||||||
|
return getConfig().getBool("app", "wifi_only", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStunServer() {
|
||||||
|
return getLc().getStunServer();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStunServer(String stun) {
|
||||||
|
getLc().setStunServer(stun);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIceEnabled(boolean enabled) {
|
||||||
|
if (enabled) {
|
||||||
|
getLc().setFirewallPolicy(FirewallPolicy.UseIce);
|
||||||
|
} else {
|
||||||
|
String stun = getStunServer();
|
||||||
|
if (stun != null && stun.length() > 0) {
|
||||||
|
getLc().setFirewallPolicy(FirewallPolicy.UseStun);
|
||||||
|
} else {
|
||||||
|
getLc().setFirewallPolicy(FirewallPolicy.NoFirewall);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUpnpEnabled(boolean enabled) {
|
||||||
|
if (enabled) {
|
||||||
|
if (isIceEnabled()) {
|
||||||
|
Log.e("Cannot have both ice and upnp enabled, disabling upnp");
|
||||||
|
} else {
|
||||||
|
getLc().setFirewallPolicy(FirewallPolicy.UseUpnp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
String stun = getStunServer();
|
||||||
|
if (stun != null && stun.length() > 0) {
|
||||||
|
getLc().setFirewallPolicy(FirewallPolicy.UseStun);
|
||||||
|
} else {
|
||||||
|
getLc().setFirewallPolicy(FirewallPolicy.NoFirewall);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isUpnpEnabled() {
|
||||||
|
return getLc().upnpAvailable() && getLc().getFirewallPolicy() == FirewallPolicy.UseUpnp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isIceEnabled() {
|
||||||
|
return getLc().getFirewallPolicy() == FirewallPolicy.UseIce;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void useRandomPort(boolean enabled) {
|
||||||
|
getConfig().setBool("sip", "sip_random_port", enabled); //FIXME
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isUsingRandomPort() {
|
||||||
|
return getConfig().getBool("sip", "sip_random_port", true); //FIXME
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSipPort() {
|
||||||
|
Transports transports = getLc().getSignalingTransportPorts();
|
||||||
|
int port;
|
||||||
|
if (transports.udp > 0)
|
||||||
|
port = transports.udp;
|
||||||
|
else if (transports.tcp > 0)
|
||||||
|
port = transports.tcp;
|
||||||
|
else
|
||||||
|
port = transports.tls;
|
||||||
|
return String.valueOf(port);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSipPort(int port) {
|
||||||
|
if (port <= 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
getLc().setMediaEncryption(menc);
|
Transports transports = getLc().getSignalingTransportPorts();
|
||||||
|
if (transports.udp > 0)
|
||||||
|
transports.udp = port;
|
||||||
|
else if (transports.tcp > 0)
|
||||||
|
transports.tcp = port;
|
||||||
|
else
|
||||||
|
transports.tls = port;
|
||||||
|
getLc().setSignalingTransportPorts(transports);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public String getTransport() {
|
public String getTransport() {
|
||||||
Transports transports = getLc().getSignalingTransportPorts();
|
Transports transports = getLc().getSignalingTransportPorts();
|
||||||
String transport = getString(R.string.pref_transport_udp);
|
String transport = getString(R.string.pref_transport_udp);
|
||||||
|
@ -397,85 +458,15 @@ public class LinphonePreferences {
|
||||||
getLc().setSignalingTransportPorts(transports);
|
getLc().setSignalingTransportPorts(transports);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getStunServer() {
|
public MediaEncryption getMediaEncryption() {
|
||||||
return getLc().getStunServer();
|
return getLc().getMediaEncryption();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setStunServer(String stun) {
|
public void setMediaEncryption(MediaEncryption menc) {
|
||||||
getLc().setStunServer(stun);
|
if (menc == null)
|
||||||
}
|
|
||||||
|
|
||||||
public String getExpire() {
|
|
||||||
return null; //TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setExpire(String expire) {
|
|
||||||
//TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSipPortIfNotRandom() {
|
|
||||||
Transports transports = getLc().getSignalingTransportPorts();
|
|
||||||
int port;
|
|
||||||
if (transports.udp > 0)
|
|
||||||
port = transports.udp;
|
|
||||||
else if (transports.tcp > 0)
|
|
||||||
port = transports.tcp;
|
|
||||||
else
|
|
||||||
port = transports.tls;
|
|
||||||
return String.valueOf(port);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSipPortIfNotRandom(int port) {
|
|
||||||
if (port <= 0)
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Transports transports = getLc().getSignalingTransportPorts();
|
getLc().setMediaEncryption(menc);
|
||||||
if (transports.udp > 0)
|
|
||||||
transports.udp = port;
|
|
||||||
else if (transports.tcp > 0)
|
|
||||||
transports.tcp = port;
|
|
||||||
else
|
|
||||||
transports.udp = port;
|
|
||||||
getLc().setSignalingTransportPorts(transports);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIceEnabled(boolean enabled) {
|
|
||||||
if (enabled) {
|
|
||||||
getLc().setFirewallPolicy(FirewallPolicy.UseIce);
|
|
||||||
} else {
|
|
||||||
String stun = getStunServer();
|
|
||||||
if (stun != null && stun.length() > 0) {
|
|
||||||
getLc().setFirewallPolicy(FirewallPolicy.UseStun);
|
|
||||||
} else {
|
|
||||||
getLc().setFirewallPolicy(FirewallPolicy.NoFirewall);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isIceEnabled() {
|
|
||||||
return getLc().getFirewallPolicy() == FirewallPolicy.UseIce;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUpnpEnabled(boolean enabled) {
|
|
||||||
if (enabled) {
|
|
||||||
if (isIceEnabled()) {
|
|
||||||
Log.e("Cannot have both ice and upnp enabled, disabling upnp");
|
|
||||||
} else {
|
|
||||||
getLc().setFirewallPolicy(FirewallPolicy.UseUpnp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
String stun = getStunServer();
|
|
||||||
if (stun != null && stun.length() > 0) {
|
|
||||||
getLc().setFirewallPolicy(FirewallPolicy.UseStun);
|
|
||||||
} else {
|
|
||||||
getLc().setFirewallPolicy(FirewallPolicy.NoFirewall);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isUpnpEnabled() {
|
|
||||||
return getLc().upnpAvailable() && getLc().getFirewallPolicy() == FirewallPolicy.UseUpnp;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Push Notifications
|
// Push Notifications
|
||||||
|
@ -496,27 +487,86 @@ public class LinphonePreferences {
|
||||||
}
|
}
|
||||||
// End of Push Notifications
|
// End of Push Notifications
|
||||||
|
|
||||||
public void useRandomPort(boolean enabled) {
|
|
||||||
//TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isUsingRandomPort() {
|
|
||||||
return false; //TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
public void useIpv6(Boolean enable) {
|
public void useIpv6(Boolean enable) {
|
||||||
getLc().enableIpv6(enable);
|
getLc().enableIpv6(enable);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isUsingIpv6() {
|
public boolean isUsingIpv6() {
|
||||||
return false; //TODO
|
return getLc().isIpv6Enabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setWifiOnlyEnabled(Boolean enable) {
|
// End of network settings
|
||||||
getConfig().setBool("app", "wifi_only", enable);
|
|
||||||
|
// Advanced settings
|
||||||
|
public void setDebugEnabled(boolean enabled) {
|
||||||
|
getConfig().setBool("app", "debug", enabled);
|
||||||
|
LinphoneCoreFactory.instance().setDebugMode(enabled, getString(R.string.app_name));
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isWifiOnlyEnabled() {
|
public boolean isDebugEnabled() {
|
||||||
return getConfig().getBool("app", "wifi_only", false);
|
return getConfig().getBool("app", "debug", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setBackgroundModeEnabled(boolean enabled) {
|
||||||
|
getConfig().setBool("app", "background_mode", enabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isBackgroundModeEnabled() {
|
||||||
|
return getConfig().getBool("app", "background_mode", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAnimationsEnabled(boolean enabled) {
|
||||||
|
getConfig().setBool("app", "animations", enabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean areAnimationsEnabled() {
|
||||||
|
return getConfig().getBool("app", "animations", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isAutoStartEnabled() {
|
||||||
|
return getConfig().getBool("app", "auto_start", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAutoStart(boolean autoStartEnabled) {
|
||||||
|
getConfig().setBool("app", "auto_start", autoStartEnabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSharingPictureServerUrl() {
|
||||||
|
return getConfig().getString("app", "sharing_server", null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSharingPictureServerUrl(String url) {
|
||||||
|
getConfig().setString("app", "sharing_server", url);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRemoteProvisioningUrl(String url) {
|
||||||
|
getConfig().setString("app", "remote_provisioning", url);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRemoteProvisioningUrl() {
|
||||||
|
return getConfig().getString("app", "remote_provisioning", null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDefaultDisplayName(String displayName) {
|
||||||
|
getLc().setPrimaryContact(displayName, getDefaultUsername());
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDefaultDisplayName() {
|
||||||
|
return getLc().getPrimaryContactDisplayName();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDefaultUsername(String username) {
|
||||||
|
getLc().setPrimaryContact(getDefaultDisplayName(), username);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDefaultUsername() {
|
||||||
|
return getLc().getPrimaryContactUsername();
|
||||||
|
}
|
||||||
|
// End of advanced settings
|
||||||
|
|
||||||
|
// Tunnel settings
|
||||||
|
public String getTunnelMode() {
|
||||||
|
return null; //TODO
|
||||||
|
}
|
||||||
|
// End of tunnel settings
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,9 +50,7 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
||||||
initNetworkSettings();
|
initNetworkSettings();
|
||||||
initializePreferredVideoSizePreferences((ListPreference) findPreference(getString(R.string.pref_preferred_video_size_key)));
|
initializePreferredVideoSizePreferences((ListPreference) findPreference(getString(R.string.pref_preferred_video_size_key)));
|
||||||
|
|
||||||
findPreference(getString(R.string.pref_image_sharing_server_key)).setSummary(mPrefs.getSharingPictureServerUrl());
|
initAdvancedSettings();
|
||||||
findPreference(getString(R.string.pref_remote_provisioning_key)).setSummary(mPrefs.getRemoteProvisioningUrl());
|
|
||||||
findPreference(getString(R.string.pref_expire_key)).setSummary(mPrefs.getExpire());
|
|
||||||
|
|
||||||
// Add action on About button
|
// Add action on About button
|
||||||
findPreference(getString(R.string.menu_about_key)).setOnPreferenceClickListener(new OnPreferenceClickListener() {
|
findPreference(getString(R.string.menu_about_key)).setOnPreferenceClickListener(new OnPreferenceClickListener() {
|
||||||
|
@ -96,6 +94,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() {
|
||||||
setNetworkPreferencesListener();
|
setNetworkPreferencesListener();
|
||||||
|
setAdvancedPreferencesListener();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read the values set in resources and hides the settings accordingly
|
// Read the values set in resources and hides the settings accordingly
|
||||||
|
@ -205,6 +204,11 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
||||||
preference.setLayoutResource(R.layout.hidden);
|
preference.setLayoutResource(R.layout.hidden);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setPreferenceDefaultValueAndSummary(int pref, String value) {
|
||||||
|
findPreference(getString(pref)).setDefaultValue(value);
|
||||||
|
findPreference(getString(pref)).setSummary(value);
|
||||||
|
}
|
||||||
|
|
||||||
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();
|
||||||
|
@ -351,8 +355,8 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
||||||
// Disable sip port choice if port is random
|
// Disable sip port choice if port is random
|
||||||
Preference sipPort = findPreference(getString(R.string.pref_sip_port_key));
|
Preference sipPort = findPreference(getString(R.string.pref_sip_port_key));
|
||||||
sipPort.setEnabled(!randomPort.isChecked());
|
sipPort.setEnabled(!randomPort.isChecked());
|
||||||
sipPort.setSummary(mPrefs.getSipPortIfNotRandom());
|
sipPort.setSummary(mPrefs.getSipPort());
|
||||||
sipPort.setDefaultValue(mPrefs.getSipPortIfNotRandom());
|
sipPort.setDefaultValue(mPrefs.getSipPort());
|
||||||
|
|
||||||
Preference stun = findPreference(getString(R.string.pref_stun_server_key));
|
Preference stun = findPreference(getString(R.string.pref_stun_server_key));
|
||||||
stun.setSummary(mPrefs.getStunServer());
|
stun.setSummary(mPrefs.getStunServer());
|
||||||
|
@ -407,7 +411,9 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
||||||
findPreference(getString(R.string.pref_transport_use_random_ports_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
findPreference(getString(R.string.pref_transport_use_random_ports_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
boolean randomPort = (Boolean) newValue;
|
||||||
mPrefs.useRandomPort((Boolean) newValue);
|
mPrefs.useRandomPort((Boolean) newValue);
|
||||||
|
findPreference(getString(R.string.pref_sip_port_key)).setEnabled(!randomPort);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -415,7 +421,7 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
||||||
findPreference(getString(R.string.pref_sip_port_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
findPreference(getString(R.string.pref_sip_port_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
mPrefs.setSipPortIfNotRandom((Integer) newValue);
|
mPrefs.setSipPort((Integer) newValue);
|
||||||
preference.setSummary(newValue.toString());
|
preference.setSummary(newValue.toString());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -463,6 +469,95 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void initAdvancedSettings() {
|
||||||
|
((CheckBoxPreference)findPreference(getString(R.string.pref_debug_key))).setChecked(mPrefs.isDebugEnabled());
|
||||||
|
((CheckBoxPreference)findPreference(getString(R.string.pref_background_mode_key))).setChecked(mPrefs.isBackgroundModeEnabled());
|
||||||
|
((CheckBoxPreference)findPreference(getString(R.string.pref_animation_enable_key))).setChecked(mPrefs.areAnimationsEnabled());
|
||||||
|
((CheckBoxPreference)findPreference(getString(R.string.pref_autostart_key))).setChecked(mPrefs.isAutoStartEnabled());
|
||||||
|
setPreferenceDefaultValueAndSummary(R.string.pref_image_sharing_server_key, mPrefs.getSharingPictureServerUrl());
|
||||||
|
setPreferenceDefaultValueAndSummary(R.string.pref_remote_provisioning_key, mPrefs.getRemoteProvisioningUrl());
|
||||||
|
setPreferenceDefaultValueAndSummary(R.string.pref_display_name_key, mPrefs.getDefaultDisplayName());
|
||||||
|
setPreferenceDefaultValueAndSummary(R.string.pref_user_name_key, mPrefs.getDefaultUsername());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setAdvancedPreferencesListener() {
|
||||||
|
findPreference(getString(R.string.pref_debug_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
boolean value = (Boolean) newValue;
|
||||||
|
mPrefs.setDebugEnabled(value);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
findPreference(getString(R.string.pref_background_mode_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
boolean value = (Boolean) newValue;
|
||||||
|
mPrefs.setBackgroundModeEnabled(value);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
findPreference(getString(R.string.pref_animation_enable_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
boolean value = (Boolean) newValue;
|
||||||
|
mPrefs.setAnimationsEnabled(value);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
findPreference(getString(R.string.pref_autostart_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
boolean value = (Boolean) newValue;
|
||||||
|
mPrefs.setAutoStart(value);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
findPreference(getString(R.string.pref_image_sharing_server_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
String value = (String) newValue;
|
||||||
|
mPrefs.setSharingPictureServerUrl(value);
|
||||||
|
preference.setSummary(value);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
findPreference(getString(R.string.pref_remote_provisioning_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
String value = (String) newValue;
|
||||||
|
mPrefs.setRemoteProvisioningUrl(value);
|
||||||
|
preference.setSummary(value);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
findPreference(getString(R.string.pref_display_name_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
String value = (String) newValue;
|
||||||
|
mPrefs.setDefaultDisplayName(value);
|
||||||
|
preference.setSummary(value);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
findPreference(getString(R.string.pref_user_name_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
String value = (String) newValue;
|
||||||
|
mPrefs.setDefaultUsername(value);
|
||||||
|
preference.setSummary(value);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEcCalibrationStatus(EcCalibratorStatus status, int delayMs) {
|
public void onEcCalibrationStatus(EcCalibratorStatus status, int delayMs) {
|
||||||
|
|
||||||
|
|
|
@ -289,7 +289,7 @@ public class SetupActivity extends FragmentActivity implements OnClickListener {
|
||||||
mPrefs.setTransport(getString(R.string.pref_transport_tls_key));
|
mPrefs.setTransport(getString(R.string.pref_transport_tls_key));
|
||||||
}
|
}
|
||||||
|
|
||||||
mPrefs.setExpire("604800");
|
mPrefs.setNewAccountExpires("604800");
|
||||||
mPrefs.setNewAccountOutboundProxyEnabled(true);
|
mPrefs.setNewAccountOutboundProxyEnabled(true);
|
||||||
mPrefs.setStunServer(getString(R.string.default_stun));
|
mPrefs.setStunServer(getString(R.string.default_stun));
|
||||||
mPrefs.setIceEnabled(true);
|
mPrefs.setIceEnabled(true);
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 3184f1537672d54d16c219ba1351149ca7c2b104
|
Subproject commit a0b22b83b56385234d1facfd9fbd4a2a961668f2
|
|
@ -1 +1 @@
|
||||||
Subproject commit bcd22f8a741f83a78631b547c71ead9d26d065bb
|
Subproject commit fc61fbd1aab9d5cf715682bd16d30399df46da48
|
Loading…
Reference in a new issue