More settings working (accounts and network mostly)
This commit is contained in:
parent
6eb333bcf6
commit
cbb8641c91
5 changed files with 261 additions and 83 deletions
|
@ -18,10 +18,10 @@ 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 org.linphone.compatibility.Compatibility;
|
|
||||||
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.EditTextPreference;
|
import android.preference.EditTextPreference;
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
import android.preference.Preference.OnPreferenceChangeListener;
|
import android.preference.Preference.OnPreferenceChangeListener;
|
||||||
|
@ -92,19 +92,27 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
||||||
OnPreferenceChangeListener outboundProxyChangedListener = new OnPreferenceChangeListener() {
|
OnPreferenceChangeListener outboundProxyChangedListener = new OnPreferenceChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
LinphonePreferences.instance().setAccountOutboundProxyEnabled(n, (Boolean)newValue);
|
LinphonePreferences.instance().setAccountOutboundProxyEnabled(n, (Boolean) newValue);
|
||||||
return true;
|
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) {
|
||||||
LinphonePreferences.instance().setAccountEnabled(n, (Boolean)newValue);
|
LinphonePreferences.instance().setAccountEnabled(n, (Boolean) newValue);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
OnPreferenceChangeListener deleteChangedListener = new OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private void manageAccountPreferencesFields(PreferenceScreen parent) {
|
private void manageAccountPreferencesFields(PreferenceScreen parent) {
|
||||||
|
boolean isDefaultAccount = LinphonePreferences.instance().getDefaultAccountIndex() == n;
|
||||||
|
|
||||||
PreferenceCategory account = (PreferenceCategory) getPreferenceScreen().getPreference(0);
|
PreferenceCategory account = (PreferenceCategory) getPreferenceScreen().getPreference(0);
|
||||||
EditTextPreference username = (EditTextPreference) account.getPreference(0);
|
EditTextPreference username = (EditTextPreference) account.getPreference(0);
|
||||||
username.setText(LinphonePreferences.instance().getAccountUsername(n));
|
username.setText(LinphonePreferences.instance().getAccountUsername(n));
|
||||||
|
@ -136,13 +144,14 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
||||||
proxy.setOnPreferenceChangeListener(proxyChangedListener);
|
proxy.setOnPreferenceChangeListener(proxyChangedListener);
|
||||||
proxy.setSummary("".equals(proxy.getText()) || (proxy.getText() == null) ? getString(R.string.pref_help_proxy) : proxy.getText());
|
proxy.setSummary("".equals(proxy.getText()) || (proxy.getText() == null) ? getString(R.string.pref_help_proxy) : proxy.getText());
|
||||||
|
|
||||||
Preference outboundProxy = advanced.getPreference(1);
|
CheckBoxPreference outboundProxy = (CheckBoxPreference) advanced.getPreference(1);
|
||||||
Compatibility.setPreferenceChecked(outboundProxy, LinphonePreferences.instance().isAccountOutboundProxySet(n));
|
outboundProxy.setChecked(LinphonePreferences.instance().isAccountOutboundProxySet(n));
|
||||||
outboundProxy.setOnPreferenceChangeListener(outboundProxyChangedListener);
|
outboundProxy.setOnPreferenceChangeListener(outboundProxyChangedListener);
|
||||||
|
|
||||||
final Preference disable = advanced.getPreference(2);
|
final CheckBoxPreference disable = (CheckBoxPreference) advanced.getPreference(2);
|
||||||
disable.setEnabled(true);
|
disable.setEnabled(true);
|
||||||
Compatibility.setPreferenceChecked(disable, !LinphonePreferences.instance().isAccountEnabled(n));
|
disable.setChecked(!LinphonePreferences.instance().isAccountEnabled(n));
|
||||||
|
disable.setOnPreferenceChangeListener(disableChangedListener);
|
||||||
|
|
||||||
final Preference delete = advanced.getPreference(4);
|
final Preference delete = advanced.getPreference(4);
|
||||||
delete.setEnabled(true);
|
delete.setEnabled(true);
|
||||||
|
@ -154,15 +163,15 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Preference mainAccount = advanced.getPreference(3);
|
CheckBoxPreference mainAccount = (CheckBoxPreference) advanced.getPreference(3);
|
||||||
Compatibility.setPreferenceChecked(mainAccount, LinphonePreferences.instance().getDefaultAccountIndex() == n);
|
mainAccount.setChecked(isDefaultAccount);
|
||||||
mainAccount.setEnabled(!Compatibility.isPreferenceChecked(mainAccount));
|
mainAccount.setEnabled(!mainAccount.isChecked());
|
||||||
mainAccount.setOnPreferenceClickListener(new OnPreferenceClickListener()
|
mainAccount.setOnPreferenceClickListener(new OnPreferenceClickListener()
|
||||||
{
|
{
|
||||||
public boolean onPreferenceClick(Preference preference) {
|
public boolean onPreferenceClick(Preference preference) {
|
||||||
LinphonePreferences.instance().setDefaultAccount(n);
|
LinphonePreferences.instance().setDefaultAccount(n);
|
||||||
disable.setEnabled(false);
|
disable.setEnabled(false);
|
||||||
Compatibility.setPreferenceChecked(disable, false);
|
disable.setChecked(false);
|
||||||
preference.setEnabled(false);
|
preference.setEnabled(false);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -600,7 +600,6 @@ public class LinphoneManager implements LinphoneCoreListener {
|
||||||
|
|
||||||
private void copyIfNotExist(int ressourceId,String target) throws IOException {
|
private void copyIfNotExist(int ressourceId,String target) throws IOException {
|
||||||
File lFileToCopy = new File(target);
|
File lFileToCopy = new File(target);
|
||||||
Log.w("File " + target + " exists ? " + lFileToCopy.exists());
|
|
||||||
if (!lFileToCopy.exists()) {
|
if (!lFileToCopy.exists()) {
|
||||||
copyFromPackage(ressourceId,lFileToCopy.getName());
|
copyFromPackage(ressourceId,lFileToCopy.getName());
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,14 +60,15 @@ public class LinphonePreferences {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isFirstLaunch() {
|
public boolean isFirstLaunch() {
|
||||||
return false;
|
return getLc().getConfig().getBool("app", "first_launch", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void firstLaunchSuccessful() {
|
public void firstLaunchSuccessful() {
|
||||||
|
getLc().getConfig().setBool("app", "first_launch", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isDebugEnabled() {
|
public boolean isDebugEnabled() {
|
||||||
return true;
|
return true; //TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRemoteProvisioningUrl(String url) {
|
public void setRemoteProvisioningUrl(String url) {
|
||||||
|
@ -79,31 +80,31 @@ public class LinphonePreferences {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getTunnelMode() {
|
public String getTunnelMode() {
|
||||||
return null;
|
return null; //TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean useFrontCam() {
|
public boolean useFrontCam() {
|
||||||
return false;
|
return false; //TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isVideoEnabled() {
|
public boolean isVideoEnabled() {
|
||||||
return false;
|
return false; //TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean shouldInitiateVideoCall() {
|
public boolean shouldInitiateVideoCall() {
|
||||||
return false;
|
return false; //TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean shouldAutomaticallyAcceptVideoRequests() {
|
public boolean shouldAutomaticallyAcceptVideoRequests() {
|
||||||
return false;
|
return false; //TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPushNotificationRegistrationID(String regId) {
|
public void setPushNotificationRegistrationID(String regId) {
|
||||||
|
//TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPushNotificationRegistrationID() {
|
public String getPushNotificationRegistrationID() {
|
||||||
return null;
|
return null; //TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isAutoStartEnabled() {
|
public boolean isAutoStartEnabled() {
|
||||||
|
@ -123,35 +124,35 @@ public class LinphonePreferences {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean shouldUseLinphoneToStoreChatHistory() {
|
public boolean shouldUseLinphoneToStoreChatHistory() {
|
||||||
return false;
|
return false; //TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean areAnimationsEnabled() {
|
public boolean areAnimationsEnabled() {
|
||||||
return false;
|
return false; //TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean shouldAutomaticallyAcceptFriendsRequests() {
|
public boolean shouldAutomaticallyAcceptFriendsRequests() {
|
||||||
return false;
|
return false; //TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isBackgroundModeEnabled() {
|
public boolean isBackgroundModeEnabled() {
|
||||||
return false;
|
return false; //TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean shouldOnlyRegisterOnWifiNetwork() {
|
public boolean shouldOnlyRegisterOnWifiNetwork() {
|
||||||
return false;
|
return false; //TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean shouldUseSoftvolume() {
|
public boolean shouldUseSoftvolume() {
|
||||||
return false;
|
return false; //TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getRingtone(String defaultRingtone) {
|
public String getRingtone(String defaultRingtone) {
|
||||||
return defaultRingtone;
|
return defaultRingtone; //TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRingtone(String ringtone) {
|
public void setRingtone(String ringtone) {
|
||||||
|
//TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
// Accounts
|
// Accounts
|
||||||
|
@ -177,7 +178,7 @@ public class LinphonePreferences {
|
||||||
private boolean tempOutboundProxy;
|
private boolean tempOutboundProxy;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Saves a created account or an edited account
|
* Creates a new account using values previously set using setNew* functions
|
||||||
* @throws LinphoneCoreException
|
* @throws LinphoneCoreException
|
||||||
*/
|
*/
|
||||||
public void saveNewAccount() throws LinphoneCoreException {
|
public void saveNewAccount() throws LinphoneCoreException {
|
||||||
|
@ -208,7 +209,7 @@ public class LinphonePreferences {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAccountUsername(int n, String username) {
|
public void setAccountUsername(int n, String username) {
|
||||||
|
getAuthInfo(n).setUsername(username);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getAccountUsername(int n) {
|
public String getAccountUsername(int n) {
|
||||||
|
@ -220,7 +221,7 @@ public class LinphonePreferences {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAccountUserId(int n, String userId) {
|
public void setAccountUserId(int n, String userId) {
|
||||||
|
getAuthInfo(n).setUserId(userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getAccountUserId(int n) {
|
public String getAccountUserId(int n) {
|
||||||
|
@ -232,7 +233,7 @@ public class LinphonePreferences {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAccountPassword(int n, String password) {
|
public void setAccountPassword(int n, String password) {
|
||||||
|
getAuthInfo(n).setPassword(password);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getAccountPassword(int n) {
|
public String getAccountPassword(int n) {
|
||||||
|
@ -244,7 +245,7 @@ public class LinphonePreferences {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAccountDomain(int n, String domain) {
|
public void setAccountDomain(int n, String domain) {
|
||||||
|
//TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getAccountDomain(int n) {
|
public String getAccountDomain(int n) {
|
||||||
|
@ -256,7 +257,7 @@ public class LinphonePreferences {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAccountProxy(int n, String proxy) {
|
public void setAccountProxy(int n, String proxy) {
|
||||||
|
//TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getAccountProxy(int n) {
|
public String getAccountProxy(int n) {
|
||||||
|
@ -268,17 +269,13 @@ public class LinphonePreferences {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAccountOutboundProxyEnabled(int n, boolean enabled) {
|
public void setAccountOutboundProxyEnabled(int n, boolean enabled) {
|
||||||
|
//TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isAccountOutboundProxySet(int n) {
|
public boolean isAccountOutboundProxySet(int n) {
|
||||||
return getProxyConfig(n).getRoute() != null;
|
return getProxyConfig(n).getRoute() != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAccountEnabled(int n, Boolean enabled) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
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)
|
||||||
|
@ -289,23 +286,33 @@ public class LinphonePreferences {
|
||||||
LinphoneProxyConfig defaultPrxCfg = getLc().getDefaultProxyConfig();
|
LinphoneProxyConfig defaultPrxCfg = getLc().getDefaultProxyConfig();
|
||||||
LinphoneProxyConfig[] prxCfgs = getLc().getProxyConfigList();
|
LinphoneProxyConfig[] prxCfgs = getLc().getProxyConfigList();
|
||||||
for (int i = 0; i < prxCfgs.length; i++) {
|
for (int i = 0; i < prxCfgs.length; i++) {
|
||||||
if (defaultPrxCfg.equals(prxCfgs[i])) {
|
if (defaultPrxCfg.getIdentity().equals(prxCfgs[i].getIdentity())) {
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return -1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getAccountCount() {
|
public int getAccountCount() {
|
||||||
return getLc().getProxyConfigList().length;
|
return getLc().getProxyConfigList().length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setAccountEnabled(int n, boolean disabled) {
|
||||||
|
LinphoneProxyConfig prxCfg = getProxyConfig(n);
|
||||||
|
try {
|
||||||
|
prxCfg.enableRegister(!disabled);
|
||||||
|
prxCfg.done();
|
||||||
|
} catch (LinphoneCoreException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isAccountEnabled(int n) {
|
public boolean isAccountEnabled(int n) {
|
||||||
return false;
|
return getProxyConfig(n).registerEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteAccount(int n) {
|
public void deleteAccount(int n) {
|
||||||
|
//TODO
|
||||||
}
|
}
|
||||||
// End of Accounts
|
// End of Accounts
|
||||||
|
|
||||||
|
@ -372,11 +379,11 @@ public class LinphonePreferences {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getExpire() {
|
public String getExpire() {
|
||||||
return null;
|
return null; //TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setExpire(String expire) {
|
public void setExpire(String expire) {
|
||||||
|
//TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getSipPortIfNotRandom() {
|
public String getSipPortIfNotRandom() {
|
||||||
|
@ -405,11 +412,51 @@ public class LinphonePreferences {
|
||||||
getLc().setSignalingTransportPorts(transports);
|
getLc().setSignalingTransportPorts(transports);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setIceEnabled(boolean b) {
|
public void setIceEnabled(boolean enabled) {
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isIceEnabled() {
|
||||||
|
return false; //TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUpnpEnabled(boolean enabled) {
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isUpnpEnabled() {
|
||||||
|
return false; //TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPushNotificationEnabled(boolean b) {
|
public void setPushNotificationEnabled(boolean b) {
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isPushNotificationEnabled() {
|
||||||
|
return false; //TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
public void useRandomPort(boolean enabled) {
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isUsingRandomPort() {
|
||||||
|
return false; //TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
public void useIpv6(Boolean newValue) {
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isUsingIpv6() {
|
||||||
|
return false; //TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWifiOnlyEnabled(Boolean newValue) {
|
||||||
|
//TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isWifiOnlyEnabled() {
|
||||||
|
return false; //TODO
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,11 +46,10 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
||||||
// Inits the values or the listener on some settings
|
// Inits the values or the listener on some settings
|
||||||
private void initSettings() {
|
private void initSettings() {
|
||||||
//initAccounts(); Init accounts on Resume instead of on Create to update the account list when coming back from wizard
|
//initAccounts(); Init accounts on Resume instead of on Create to update the account list when coming back from wizard
|
||||||
initMediaEncryptionPreference((ListPreference) findPreference(getString(R.string.pref_media_encryption_key)));
|
|
||||||
initializeTransportPreferences((ListPreference) findPreference(getString(R.string.pref_transport_key)));
|
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_stun_server_key)).setSummary(mPrefs.getStunServer());
|
|
||||||
findPreference(getString(R.string.pref_image_sharing_server_key)).setSummary(mPrefs.getSharingPictureServerUrl());
|
findPreference(getString(R.string.pref_image_sharing_server_key)).setSummary(mPrefs.getSharingPictureServerUrl());
|
||||||
findPreference(getString(R.string.pref_remote_provisioning_key)).setSummary(mPrefs.getRemoteProvisioningUrl());
|
findPreference(getString(R.string.pref_remote_provisioning_key)).setSummary(mPrefs.getRemoteProvisioningUrl());
|
||||||
findPreference(getString(R.string.pref_expire_key)).setSummary(mPrefs.getExpire());
|
findPreference(getString(R.string.pref_expire_key)).setSummary(mPrefs.getExpire());
|
||||||
|
@ -75,11 +74,6 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Disable sip port choice if port is random
|
|
||||||
Preference sipPort = findPreference(getString(R.string.pref_sip_port_key));
|
|
||||||
sipPort.setEnabled(!((CheckBoxPreference)findPreference(getString(R.string.pref_transport_use_random_ports_key))).isChecked());
|
|
||||||
sipPort.setSummary(mPrefs.getSipPortIfNotRandom());
|
|
||||||
|
|
||||||
if (getResources().getBoolean(R.bool.disable_all_patented_codecs_for_markets)) {
|
if (getResources().getBoolean(R.bool.disable_all_patented_codecs_for_markets)) {
|
||||||
Preference prefH264 = findPreference(getString(R.string.pref_video_codec_h264_key));
|
Preference prefH264 = findPreference(getString(R.string.pref_video_codec_h264_key));
|
||||||
prefH264.setEnabled(false);
|
prefH264.setEnabled(false);
|
||||||
|
@ -101,22 +95,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() {
|
||||||
findPreference(getString(R.string.pref_stun_server_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
setNetworkPreferencesListener();
|
||||||
@Override
|
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
|
||||||
mPrefs.setStunServer(newValue.toString());
|
|
||||||
preference.setSummary(newValue.toString());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read the values set in resources and hides the settings accordingly
|
// Read the values set in resources and hides the settings accordingly
|
||||||
|
@ -231,6 +210,7 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
||||||
accounts.removeAll();
|
accounts.removeAll();
|
||||||
|
|
||||||
// Get already configured extra accounts
|
// Get already configured extra accounts
|
||||||
|
int defaultAccountID = mPrefs.getDefaultAccountIndex();
|
||||||
int nbAccounts = mPrefs.getAccountCount();
|
int nbAccounts = mPrefs.getAccountCount();
|
||||||
for (int i = 0; i < nbAccounts; i++) {
|
for (int i = 0; i < nbAccounts; i++) {
|
||||||
final int accountId = i;
|
final int accountId = i;
|
||||||
|
@ -245,6 +225,10 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
||||||
account.setTitle(username + "@" + domain);
|
account.setTitle(username + "@" + domain);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (defaultAccountID == i) {
|
||||||
|
account.setSummary(R.string.pref_default_account);
|
||||||
|
}
|
||||||
|
|
||||||
account.setOnPreferenceClickListener(new OnPreferenceClickListener()
|
account.setOnPreferenceClickListener(new OnPreferenceClickListener()
|
||||||
{
|
{
|
||||||
public boolean onPreferenceClick(Preference preference) {
|
public boolean onPreferenceClick(Preference preference) {
|
||||||
|
@ -284,7 +268,15 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
||||||
setListPreferenceValues(pref, entries, values);
|
setListPreferenceValues(pref, entries, values);
|
||||||
}
|
}
|
||||||
|
|
||||||
pref.setSummary(mPrefs.getMediaEncryption().toString());
|
MediaEncryption value = mPrefs.getMediaEncryption();
|
||||||
|
pref.setSummary(value.toString());
|
||||||
|
|
||||||
|
String key = getString(R.string.pref_media_encryption_key_none);
|
||||||
|
if (value.toString().equals(getString(R.string.media_encryption_srtp)))
|
||||||
|
key = getString(R.string.pref_media_encryption_key_srtp);
|
||||||
|
else if (value.toString().equals(getString(R.string.media_encryption_zrtp)))
|
||||||
|
key = getString(R.string.pref_media_encryption_key_zrtp);
|
||||||
|
pref.setDefaultValue(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initializeTransportPreferences(ListPreference pref) {
|
private void initializeTransportPreferences(ListPreference pref) {
|
||||||
|
@ -300,7 +292,14 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
||||||
values.add(getString(R.string.pref_transport_tls_key));
|
values.add(getString(R.string.pref_transport_tls_key));
|
||||||
}
|
}
|
||||||
setListPreferenceValues(pref, entries, values);
|
setListPreferenceValues(pref, entries, values);
|
||||||
pref.setSummary(mPrefs.getTransport());
|
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) {
|
||||||
|
@ -327,6 +326,124 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
||||||
pref.setEntryValues(contents);
|
pref.setEntryValues(contents);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void initNetworkSettings() {
|
||||||
|
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_ice_enable_key))).setChecked(mPrefs.isIceEnabled());
|
||||||
|
((CheckBoxPreference) findPreference(getString(R.string.pref_upnp_enable_key))).setChecked(mPrefs.isUpnpEnabled());
|
||||||
|
|
||||||
|
CheckBoxPreference randomPort = (CheckBoxPreference) findPreference(getString(R.string.pref_transport_use_random_ports_key));
|
||||||
|
randomPort.setChecked(mPrefs.isUsingRandomPort());
|
||||||
|
|
||||||
|
// Disable sip port choice if port is random
|
||||||
|
Preference sipPort = findPreference(getString(R.string.pref_sip_port_key));
|
||||||
|
sipPort.setEnabled(!randomPort.isChecked());
|
||||||
|
sipPort.setSummary(mPrefs.getSipPortIfNotRandom());
|
||||||
|
sipPort.setDefaultValue(mPrefs.getSipPortIfNotRandom());
|
||||||
|
|
||||||
|
Preference stun = findPreference(getString(R.string.pref_stun_server_key));
|
||||||
|
stun.setSummary(mPrefs.getStunServer());
|
||||||
|
stun.setDefaultValue(mPrefs.getStunServer());
|
||||||
|
|
||||||
|
((CheckBoxPreference) findPreference(getString(R.string.pref_push_notification_key))).setChecked(mPrefs.isPushNotificationEnabled());
|
||||||
|
((CheckBoxPreference) findPreference(getString(R.string.pref_ipv6_key))).setChecked(mPrefs.isUsingIpv6());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setNetworkPreferencesListener() {
|
||||||
|
findPreference(getString(R.string.pref_wifi_only_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
mPrefs.setWifiOnlyEnabled((Boolean) newValue);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
findPreference(getString(R.string.pref_stun_server_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
mPrefs.setStunServer(newValue.toString());
|
||||||
|
preference.setSummary(newValue.toString());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
findPreference(getString(R.string.pref_ice_enable_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
mPrefs.setIceEnabled((Boolean) newValue);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
findPreference(getString(R.string.pref_upnp_enable_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
mPrefs.setUpnpEnabled((Boolean) newValue);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
findPreference(getString(R.string.pref_transport_use_random_ports_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
mPrefs.useRandomPort((Boolean) newValue);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
findPreference(getString(R.string.pref_sip_port_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
mPrefs.setSipPortIfNotRandom((Integer) newValue);
|
||||||
|
preference.setSummary(newValue.toString());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
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() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
String value = newValue.toString();
|
||||||
|
MediaEncryption menc = MediaEncryption.None;
|
||||||
|
if (value.equals(getString(R.string.pref_media_encryption_key_srtp)))
|
||||||
|
menc = MediaEncryption.SRTP;
|
||||||
|
else if (value.equals(getString(R.string.pref_media_encryption_key_zrtp)))
|
||||||
|
menc = MediaEncryption.ZRTP;
|
||||||
|
mPrefs.setMediaEncryption(menc);
|
||||||
|
|
||||||
|
preference.setSummary(mPrefs.getMediaEncryption().toString());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
findPreference(getString(R.string.pref_push_notification_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
mPrefs.setPushNotificationEnabled((Boolean) newValue);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
findPreference(getString(R.string.pref_ipv6_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
mPrefs.useIpv6((Boolean) newValue);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEcCalibrationStatus(EcCalibratorStatus status, int delayMs) {
|
public void onEcCalibrationStatus(EcCalibratorStatus status, int delayMs) {
|
||||||
|
|
||||||
|
|
|
@ -588,6 +588,11 @@ public class StatusFragment extends Fragment {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Force led if account is disabled
|
||||||
|
if (!LinphonePreferences.instance().isAccountEnabled(accountIndex)) {
|
||||||
|
status.setImageResource(getStatusIconResource(RegistrationState.RegistrationNone, false));
|
||||||
|
} else {
|
||||||
if (LinphonePreferences.instance().getDefaultAccountIndex() == accountIndex) {
|
if (LinphonePreferences.instance().getDefaultAccountIndex() == accountIndex) {
|
||||||
isDefault.setChecked(true);
|
isDefault.setChecked(true);
|
||||||
isDefault.setEnabled(false);
|
isDefault.setEnabled(false);
|
||||||
|
@ -595,6 +600,7 @@ public class StatusFragment extends Fragment {
|
||||||
} else {
|
} else {
|
||||||
status.setImageResource(getStatusIconResource(lpc.getState(), false));
|
status.setImageResource(getStatusIconResource(lpc.getState(), false));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
isDefault.setOnClickListener(defaultListener);
|
isDefault.setOnClickListener(defaultListener);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue