#16702: Use AccountDetailXXX in AccountManagementFragment
diff --git a/src/com/savoirfairelinux/sflphone/client/AccountManagementFragment.java b/src/com/savoirfairelinux/sflphone/client/AccountManagementFragment.java
index 4059f5b..2238994 100644
--- a/src/com/savoirfairelinux/sflphone/client/AccountManagementFragment.java
+++ b/src/com/savoirfairelinux/sflphone/client/AccountManagementFragment.java
@@ -32,6 +32,7 @@
 package com.savoirfairelinux.sflphone.client;
 
 import android.app.Activity;
+import android.content.Context;
 import android.content.Intent;
 import android.preference.EditTextPreference;
 import android.preference.Preference;
@@ -52,7 +53,12 @@
 import com.savoirfairelinux.sflphone.service.ISipService;
 import com.savoirfairelinux.sflphone.service.SipService;
 import com.savoirfairelinux.sflphone.service.ServiceConstants;
+import com.savoirfairelinux.sflphone.utils.AccountDetail;
 import com.savoirfairelinux.sflphone.utils.AccountDetailsHandler;
+import com.savoirfairelinux.sflphone.utils.AccountDetailBasic;
+import com.savoirfairelinux.sflphone.utils.AccountDetailAdvanced;
+import com.savoirfairelinux.sflphone.utils.AccountDetailSrtp;
+import com.savoirfairelinux.sflphone.utils.AccountDetailTls;
 
 public class AccountManagementFragment extends PreferenceFragment
 {
@@ -60,20 +66,30 @@
     static final String DEFAULT_ACCOUNT_ID = "IP2IP";
     static final int ACCOUNT_CREATE_REQUEST = 1;
     private ISipService service;
-    // HashMap<String, String> mAccountDetails = null;
-    // ArrayList<String> mAccountList = null;
+
     HashMap<String,HashMap<String,String>> mAccountList = new HashMap<String,HashMap<String,String>>();
-    ArrayList<AccountDetailsHandler.PreferenceEntry> basicDetailKeys;
-    ArrayList<AccountDetailsHandler.PreferenceEntry> advancedDetailKeys;
+    ArrayList<AccountDetail.PreferenceEntry> basicDetailKeys;
+    ArrayList<AccountDetail.PreferenceEntry> advancedDetailKeys;
+    ArrayList<AccountDetail.PreferenceEntry> srtpDetailKeys;
+    ArrayList<AccountDetail.PreferenceEntry> tlsDetailKeys;
+    AccountDetailBasic basicDetails;
+    AccountDetailAdvanced advancedDetails;
+    AccountDetailSrtp srtpDetails;
+    AccountDetailTls tlsDetails;
+
     Activity context = getActivity();
-    
 
     public AccountManagementFragment(ISipService s)
     {
         service = s;
 
-        basicDetailKeys =  AccountDetailsHandler.getBasicDetailsKeys();
-        advancedDetailKeys = AccountDetailsHandler.getAdvancedDetailsKeys();
+        basicDetailKeys =  AccountDetailBasic.getPreferenceEntries();
+        advancedDetailKeys = AccountDetailAdvanced.getPreferenceEntries();
+
+        basicDetails = new AccountDetailBasic();
+        advancedDetails = new AccountDetailAdvanced();
+        srtpDetails = new AccountDetailSrtp();
+        tlsDetails = new AccountDetailTls();   
     } 
 
     @Override
@@ -83,7 +99,6 @@
 
         Log.i(TAG, "Create Account Management Fragment");
 
-        // setPreferenceScreen(getAccountPreferenceScreen());
         setPreferenceScreen(getAccountListPreferenceScreen());
     }
 
@@ -225,6 +240,29 @@
         return root;
     }
 
+    public PreferenceCategory createPreferenceSection(PreferenceScreen root, Context context, int titleId, ArrayList<AccountDetail.PreferenceEntry> detailEntries, 
+                                                                                                                      String accountID, HashMap<String, String> map)
+    {
+        // Inline preference
+        PreferenceCategory accountPrefCat = new PreferenceCategory(context);
+        accountPrefCat.setTitle(titleId);
+        root.addPreference(accountPrefCat);
+
+        for(AccountDetail.PreferenceEntry entry : detailEntries)
+        {
+            EditTextPreference accountPref = new EditTextPreference(context);
+            accountPref.setDialogTitle(entry.mLabelId);
+            accountPref.setPersistent(false);
+            accountPref.setTitle(entry.mLabelId);
+            accountPref.setSummary(getString(R.string.account_current_value_label) + map.get(entry.mKey));
+            accountPref.setOnPreferenceChangeListener(changeBasicTextEditListener);
+            accountPref.setKey(accountID);
+            accountPrefCat.addPreference(accountPref);
+        }
+
+        return accountPrefCat;
+    }
+
     public PreferenceScreen getAccountPreferenceScreen(String accountID)
     {
         Activity currentContext = getActivity();
@@ -235,12 +273,15 @@
         PreferenceScreen root = getPreferenceManager().createPreferenceScreen(currentContext);
         root.setTitle(map.get(ServiceConstants.CONFIG_ACCOUNT_ALIAS));
 
+        createPreferenceSection(root, currentContext, R.string.account_preferences_basic, basicDetailKeys, accountID, map);
+        createPreferenceSection(root, currentContext, R.string.account_preferences_advanced, advancedDetailKeys, accountID, map);
+/*
         // Inline preference
         PreferenceCategory accountBasicPrefCat = new PreferenceCategory(currentContext);
         accountBasicPrefCat.setTitle(R.string.account_preferences_basic);
         root.addPreference(accountBasicPrefCat);
 
-        for(AccountDetailsHandler.PreferenceEntry entry : basicDetailKeys)
+        for(AccountDetail.PreferenceEntry entry : basicDetailKeys)
         {
             EditTextPreference accountPref = new EditTextPreference(currentContext);
             accountPref.setDialogTitle(entry.mLabelId);
@@ -256,7 +297,7 @@
         accountAdvancedPrefCat.setTitle(R.string.account_preferences_advanced);
         root.addPreference(accountAdvancedPrefCat);
 
-        for(AccountDetailsHandler.PreferenceEntry entry : advancedDetailKeys)
+        for(AccountDetail.PreferenceEntry entry : advancedDetailKeys)
         {
             EditTextPreference accountPref = new EditTextPreference(currentContext);
             accountPref.setDialogTitle(entry.mLabelId);
@@ -267,6 +308,8 @@
             accountPref.setKey(accountID);
             accountAdvancedPrefCat.addPreference(accountPref);
         }
+*/
+
 
         return root;
     }