#17037: Remove multi-level PreferenceScreen launch separate Activities instead
diff --git a/src/com/savoirfairelinux/sflphone/utils/AccountDetailSrtp.java b/src/com/savoirfairelinux/sflphone/utils/AccountDetailSrtp.java
index 1122924..d205419 100644
--- a/src/com/savoirfairelinux/sflphone/utils/AccountDetailSrtp.java
+++ b/src/com/savoirfairelinux/sflphone/utils/AccountDetailSrtp.java
@@ -24,6 +24,8 @@
import com.savoirfairelinux.sflphone.R;
import com.savoirfairelinux.sflphone.utils.AccountDetail;
+import android.util.Log;
+
import java.util.ArrayList;
import java.util.Collection;
import java.util.Set;
@@ -31,6 +33,9 @@
public class AccountDetailSrtp implements AccountDetail{
+ private static final String TAG = "AccountDetailSrtp";
+ public static final String BUNDLE_TAG = "SrtpPreferenceArrayList";
+
public static final String CONFIG_SRTP_ENABLE = "SRTP.enable";
public static final String CONFIG_SRTP_KEY_EXCHANGE = "SRTP.keyExchange";
public static final String CONFIG_SRTP_ENCRYPTION_ALGO = "SRTP.encryptionAlgorithm"; // Provided by ccRTP,0=NULL,1=AESCM,2=AESF8
@@ -40,7 +45,7 @@
public static final String CONFIG_ZRTP_NOT_SUPP_WARNING = "ZRTP.notSuppWarning";
public static final String CONFIG_ZRTP_DISPLAY_SAS_ONCE = "ZRTP.displaySasOnce";
- private HashMap<String, AccountDetail.PreferenceEntry> privateMap;
+ private ArrayList<AccountDetail.PreferenceEntry> privateArray;
public static ArrayList<AccountDetail.PreferenceEntry> getPreferenceEntries()
{
@@ -60,33 +65,66 @@
public AccountDetailSrtp()
{
- privateMap = new HashMap<String, AccountDetail.PreferenceEntry>();
-
- privateMap.put(CONFIG_SRTP_ENABLE,
- new PreferenceEntry(CONFIG_SRTP_ENABLE, R.string.account_srtp_enabled_label, true));
- privateMap.put(CONFIG_SRTP_KEY_EXCHANGE,
- new PreferenceEntry(CONFIG_SRTP_KEY_EXCHANGE, R.string.account_srtp_exchange_label, true));
- privateMap.put(CONFIG_SRTP_ENCRYPTION_ALGO,
- new PreferenceEntry(CONFIG_SRTP_ENCRYPTION_ALGO, R.string.account_encryption_algo_label, true));
- privateMap.put(CONFIG_SRTP_RTP_FALLBACK,
- new PreferenceEntry(CONFIG_SRTP_RTP_FALLBACK, R.string.account_srtp_fallback_label, true));
- privateMap.put(CONFIG_ZRTP_HELLO_HASH,
- new PreferenceEntry(CONFIG_ZRTP_HELLO_HASH, R.string.account_hello_hash_enable_label, true));
- privateMap.put(CONFIG_ZRTP_DISPLAY_SAS,
- new PreferenceEntry(CONFIG_ZRTP_DISPLAY_SAS, R.string.account_display_sas_label, true));
- privateMap.put(CONFIG_ZRTP_NOT_SUPP_WARNING,
- new PreferenceEntry(CONFIG_ZRTP_NOT_SUPP_WARNING, R.string.account_not_supported_warning_label, true));
- privateMap.put(CONFIG_ZRTP_DISPLAY_SAS_ONCE,
- new PreferenceEntry(CONFIG_ZRTP_DISPLAY_SAS_ONCE, R.string.account_display_sas_once_label, true));
+ privateArray = getPreferenceEntries();
}
- public Set<String> getDetailKeys()
+ public AccountDetailSrtp(HashMap<String, String> pref)
{
- return privateMap.keySet();
+ privateArray = getPreferenceEntries();
+
+ for(AccountDetail.PreferenceEntry p : privateArray) {
+ p.mValue = pref.get(p.mKey);
+ }
}
- public Collection<AccountDetail.PreferenceEntry> getDetailValues()
+ public AccountDetailSrtp(ArrayList<String> pref)
{
- return privateMap.values();
+ privateArray = getPreferenceEntries();
+
+ if(pref.size() != privateArray.size()) {
+ Log.i(TAG, "Error list are not of equal size");
+ }
+ else {
+ int index = 0;
+ for(String s : pref) {
+ privateArray.get(index).mValue = s;
+ index++;
+ }
+ }
+ }
+
+ public ArrayList<AccountDetail.PreferenceEntry> getDetailValues()
+ {
+ return privateArray;
+ }
+
+ public ArrayList<String> getValuesOnly()
+ {
+ ArrayList<String> valueList = new ArrayList<String>();
+
+ for(AccountDetail.PreferenceEntry p : privateArray) {
+ valueList.add(p.mValue);
+ }
+
+ return valueList;
+ }
+
+ public String getDetailString(String key)
+ {
+ String value = "";
+
+ for(AccountDetail.PreferenceEntry p : privateArray) {
+ if(p.mKey.equals(key)) {
+ value = p.mValue;
+ return value;
+ }
+ }
+
+ return value;
+ }
+
+ public boolean getDetailBoolean()
+ {
+ return true;
}
}