More settings working (accounts and network mostly)

This commit is contained in:
Sylvain Berfini 2013-10-10 15:56:06 +02:00
parent 6eb333bcf6
commit cbb8641c91
5 changed files with 261 additions and 83 deletions

View file

@ -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;
@ -103,8 +103,16 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
return true; return true;
} }
}; };
OnPreferenceChangeListener deleteChangedListener = new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
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;
} }

View file

@ -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());
} }

View file

@ -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
} }
} }

View file

@ -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) {

View file

@ -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);