#16682: Manage checkbox preference in account creation method
diff --git a/src/com/savoirfairelinux/sflphone/client/AccountCreationActivity.java b/src/com/savoirfairelinux/sflphone/client/AccountCreationActivity.java
index 35b9dbe..eb51690 100644
--- a/src/com/savoirfairelinux/sflphone/client/AccountCreationActivity.java
+++ b/src/com/savoirfairelinux/sflphone/client/AccountCreationActivity.java
@@ -207,7 +207,7 @@
Log.i(TAG, "onStop: Unbinding service...");
unbindService(mConnection);
mBound = false;
- }
+ }
}
@Override
@@ -219,10 +219,31 @@
// super.onBackPressed();
}
+ private void updateAccountDetails(HashMap<String, String> accountDetails, AccountDetail det) {
+ for(AccountDetail.PreferenceEntry p : det.getDetailValues()) {
+ Preference pref = mPreferenceManager.findPreference(p.mKey);
+ if(pref != null) {
+ if(p.isTwoState) {
+ CheckBoxPreference boxPref = (CheckBoxPreference) pref;
+ accountDetails.put(p.mKey, boxPref.isChecked() ? "true" : "false");
+ }
+ else {
+ EditTextPreference textPref = (EditTextPreference) pref;
+ accountDetails.put(p.mKey, textPref.getText());
+ }
+ }
+ }
+ }
+
private void createNewAccount() {
HashMap<String, String> accountDetails = new HashMap<String, String>();
+ updateAccountDetails(accountDetails, basicDetails);
+ updateAccountDetails(accountDetails, advancedDetails);
+ updateAccountDetails(accountDetails, srtpDetails);
+ updateAccountDetails(accountDetails, tlsDetails);
+/*
for(String s : basicDetails.getDetailKeys()) {
EditTextPreference pref = (EditTextPreference) mPreferenceManager.findPreference(s);
if(pref != null) {
@@ -254,6 +275,7 @@
accountDetails.put(s, pref.getText());
}
}
+*/
try {
Log.i(TAG, "ADD ACCOUNT");
diff --git a/src/com/savoirfairelinux/sflphone/utils/AccountDetailAdvanced.java b/src/com/savoirfairelinux/sflphone/utils/AccountDetailAdvanced.java
index f6098da..79250c0 100644
--- a/src/com/savoirfairelinux/sflphone/utils/AccountDetailAdvanced.java
+++ b/src/com/savoirfairelinux/sflphone/utils/AccountDetailAdvanced.java
@@ -102,7 +102,7 @@
privateMap.put(CONFIG_STUN_SERVER,
new PreferenceEntry(CONFIG_STUN_SERVER, R.string.account_stun_server_label));
privateMap.put(CONFIG_STUN_ENABLE,
- new PreferenceEntry(CONFIG_STUN_ENABLE, R.string.account_stun_enable_label));
+ new PreferenceEntry(CONFIG_STUN_ENABLE, R.string.account_stun_enable_label, true));
}
public Set<String> getDetailKeys()