blob: a257d81567d16fe957524dce855c5ee348c6da3b [file] [log] [blame]
Alexandre Savard2b370f02012-09-06 16:06:01 -04001/*
2 * Copyright (C) 2004-2012 Savoir-Faire Linux Inc.
3 *
4 * Author: Alexandre Savard <alexandre.savard@savoirfairelinux.com>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 *
20 * Additional permission under GNU GPL version 3 section 7:
21 *
22 * If you modify this program, or any covered work, by linking or
23 * combining it with the OpenSSL project's OpenSSL library (or a
24 * modified version of that library), containing parts covered by the
25 * terms of the OpenSSL or SSLeay licenses, Savoir-Faire Linux Inc.
26 * grants you additional permission to convey the resulting work.
27 * Corresponding Source for a non-source form of such a combination
28 * shall include the source code for the parts of OpenSSL used as well
29 * as that of the covered work.
30 */
31
alisionf76de3b2013-04-16 15:35:22 -040032package com.savoirfairelinux.sflphone.fragments;
33
34import java.util.ArrayList;
35import java.util.HashMap;
alisionf76de3b2013-04-16 15:35:22 -040036import java.util.Set;
Alexandre Savard2b370f02012-09-06 16:06:01 -040037
Alexandre Savard9a93f062012-09-11 10:42:43 -040038import android.app.Activity;
Alexandre Savard4f11d7a2012-10-18 13:15:36 -040039import android.content.BroadcastReceiver;
Alexandre Savardae992932012-10-17 10:26:12 -040040import android.content.Context;
Alexandre Savard53d2ddd2012-09-30 22:04:40 -040041import android.content.Intent;
Alexandre Savard4f11d7a2012-10-18 13:15:36 -040042import android.content.IntentFilter;
alisionf76de3b2013-04-16 15:35:22 -040043import android.os.Bundle;
alision04a00182013-05-10 17:05:29 -040044import android.os.Environment;
alisionf76de3b2013-04-16 15:35:22 -040045import android.os.RemoteException;
Alexandre Savard9a93f062012-09-11 10:42:43 -040046import android.preference.Preference;
47import android.preference.PreferenceCategory;
48import android.preference.PreferenceFragment;
49import android.preference.PreferenceScreen;
Alexandre Savard4f11d7a2012-10-18 13:15:36 -040050import android.support.v4.content.LocalBroadcastManager;
Alexandre Savard2b370f02012-09-06 16:06:01 -040051import android.util.Log;
Alexandre Savard2b370f02012-09-06 16:06:01 -040052
53import com.savoirfairelinux.sflphone.R;
alisionf76de3b2013-04-16 15:35:22 -040054import com.savoirfairelinux.sflphone.account.AccountDetail;
55import com.savoirfairelinux.sflphone.account.AccountDetailAdvanced;
56import com.savoirfairelinux.sflphone.account.AccountDetailBasic;
57import com.savoirfairelinux.sflphone.account.AccountDetailSrtp;
58import com.savoirfairelinux.sflphone.account.AccountDetailTls;
Alexandre Savard68838112012-10-30 11:34:43 -040059import com.savoirfairelinux.sflphone.client.AccountPreferenceActivity;
alisionf76de3b2013-04-16 15:35:22 -040060import com.savoirfairelinux.sflphone.client.SFLPhonePreferenceActivity;
61import com.savoirfairelinux.sflphone.client.SFLphoneApplication;
alisiond9e29442013-04-17 16:10:18 -040062import com.savoirfairelinux.sflphone.service.ConfigurationManagerCallback;
alisionf76de3b2013-04-16 15:35:22 -040063import com.savoirfairelinux.sflphone.service.ISipService;
alisioncc7bb422013-06-06 15:31:39 -040064import com.savoirfairelinux.sflphone.service.ServiceConstants;
Alexandre Savard2b370f02012-09-06 16:06:01 -040065
alisiond9e29442013-04-17 16:10:18 -040066public class AccountManagementFragment extends PreferenceFragment {
Alexandre Savard2b370f02012-09-06 16:06:01 -040067 static final String TAG = "AccountManagementFragment";
Alexandre Savarda6c0d992012-09-28 09:24:13 -040068 static final String DEFAULT_ACCOUNT_ID = "IP2IP";
Alexandre Savard53d2ddd2012-09-30 22:04:40 -040069 static final int ACCOUNT_CREATE_REQUEST = 1;
Alexandre Savard68838112012-10-30 11:34:43 -040070 static final int ACCOUNT_EDIT_REQUEST = 2;
Emeric Vigier1f1ced32012-11-02 16:56:32 -040071 private SFLPhonePreferenceActivity sflphonePreferenceActivity;
Emeric Vigier0038a612012-11-06 18:51:19 -050072 private ISipService service = null;
Alexandre Savardae992932012-10-17 10:26:12 -040073
Alexandre Savard5195d922012-10-30 16:58:50 -040074 ArrayList<AccountDetail.PreferenceEntry> basicDetailKeys = null;
75 ArrayList<AccountDetail.PreferenceEntry> advancedDetailKeys = null;
76 ArrayList<AccountDetail.PreferenceEntry> srtpDetailKeys = null;
77 ArrayList<AccountDetail.PreferenceEntry> tlsDetailKeys = null;
78 HashMap<String, Preference> accountPreferenceHashMap = null;
Alexandre Savard68838112012-10-30 11:34:43 -040079 PreferenceScreen mRoot = null;
Alexandre Savardae992932012-10-17 10:26:12 -040080
Emeric Vigier1f1ced32012-11-02 16:56:32 -040081 @Override
82 public void onAttach(Activity activity) {
83 super.onAttach(activity);
84 sflphonePreferenceActivity = (SFLPhonePreferenceActivity) activity;
85 service = sflphonePreferenceActivity.getSipService();
Emeric Vigier364499e2012-11-06 19:15:45 -050086 Log.w(TAG, "onAttach() service=" + service);
Emeric Vigier1f1ced32012-11-02 16:56:32 -040087 }
Alexandre Savard12dc3ac2012-09-27 11:17:39 -040088
alisiond9e29442013-04-17 16:10:18 -040089 public AccountManagementFragment() {
90 basicDetailKeys = AccountDetailBasic.getPreferenceEntries();
Alexandre Savardae992932012-10-17 10:26:12 -040091 advancedDetailKeys = AccountDetailAdvanced.getPreferenceEntries();
Alexandre Savardc63f54b2012-10-17 10:39:40 -040092 srtpDetailKeys = AccountDetailSrtp.getPreferenceEntries();
93 tlsDetailKeys = AccountDetailTls.getPreferenceEntries();
Alexandre Savard5195d922012-10-30 16:58:50 -040094
95 accountPreferenceHashMap = new HashMap<String, Preference>();
alisiond9e29442013-04-17 16:10:18 -040096 }
Alexandre Savard2b370f02012-09-06 16:06:01 -040097
98 @Override
alisiond9e29442013-04-17 16:10:18 -040099 public void onCreate(Bundle savedInstanceState) {
Alexandre Savard2b370f02012-09-06 16:06:01 -0400100 super.onCreate(savedInstanceState);
101
Alexandre Savard9a93f062012-09-11 10:42:43 -0400102 Log.i(TAG, "Create Account Management Fragment");
Alexandre Savard2b370f02012-09-06 16:06:01 -0400103
Emeric Vigier0038a612012-11-06 18:51:19 -0500104 /*
alisiond9e29442013-04-17 16:10:18 -0400105 * FIXME if service cannot be obtained from SFLPhonePreferenceActivity, then get it from Application
Emeric Vigier0038a612012-11-06 18:51:19 -0500106 */
107 service = sflphonePreferenceActivity.getSipService();
108 if (service == null) {
alisiond9e29442013-04-17 16:10:18 -0400109 service = ((SFLphoneApplication) sflphonePreferenceActivity.getApplication()).getSipService();
Emeric Vigier0038a612012-11-06 18:51:19 -0500110 if (service == null) {
111 Log.e(TAG, "onCreate() service=" + service);
112 }
113 }
114 Log.w(TAG, "onCreate() service=" + service);
115
Alexandre Savard70982012012-09-27 17:15:50 -0400116 setPreferenceScreen(getAccountListPreferenceScreen());
Alexandre Savard4f11d7a2012-10-18 13:15:36 -0400117
alision73424b62013-04-26 11:49:18 -0400118 LocalBroadcastManager.getInstance(getActivity()).registerReceiver(mMessageReceiver,
119 new IntentFilter(ConfigurationManagerCallback.ACCOUNTS_CHANGED));
Alexandre Savard2b370f02012-09-06 16:06:01 -0400120 }
121
Alexandre Savard8b7d4332012-09-30 20:02:11 -0400122 @Override
alisiond9e29442013-04-17 16:10:18 -0400123 public void onStop() {
Alexandre Savard8b7d4332012-09-30 20:02:11 -0400124 super.onStop();
125 Log.i(TAG, "onStop");
Alexandre Savard8b7d4332012-09-30 20:02:11 -0400126 }
127
128 @Override
alisiond9e29442013-04-17 16:10:18 -0400129 public void onDestroy() {
Alexandre Savard4f11d7a2012-10-18 13:15:36 -0400130 LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(mMessageReceiver);
Alexandre Savard8b7d4332012-09-30 20:02:11 -0400131 super.onDestroy();
132 Log.i(TAG, "onDestroy");
Alexandre Savard8b7d4332012-09-30 20:02:11 -0400133 }
134
Alexandre Savard53d2ddd2012-09-30 22:04:40 -0400135 @Override
136 public void onActivityResult(int requestCode, int resultCode, Intent data) {
alisiond9e29442013-04-17 16:10:18 -0400137 switch (requestCode) {
138 case ACCOUNT_CREATE_REQUEST:
139 if (resultCode == AccountPreferenceActivity.result.ACCOUNT_CREATED) {
140 Bundle bundle = data.getExtras();
141 Log.i(TAG, "Create account settings");
142 HashMap<String, String> accountDetails = new HashMap<String, String>();
143 accountDetails = (HashMap<String, String>) bundle.getSerializable(AccountDetail.TAG);
144 createNewAccount(accountDetails);
145 }
146 break;
147 case ACCOUNT_EDIT_REQUEST:
148 if (resultCode == AccountPreferenceActivity.result.ACCOUNT_MODIFIED) {
149 Bundle bundle = data.getExtras();
150 String accountID = bundle.getString("AccountID");
151 Log.i(TAG, "Update account settings for " + accountID);
Alexandre Savard833616f2012-10-30 16:02:30 -0400152
alisiond9e29442013-04-17 16:10:18 -0400153 HashMap<String, String> accountDetails = new HashMap<String, String>();
154 accountDetails = (HashMap<String, String>) bundle.getSerializable(AccountDetail.TAG);
alisioncc7bb422013-06-06 15:31:39 -0400155
156 Log.w(TAG,"realm "+accountDetails.get(ServiceConstants.CONFIG_ACCOUNT_REALM));
157
alisiond9e29442013-04-17 16:10:18 -0400158 Preference accountScreen = accountPreferenceHashMap.get(accountID);
159 mRoot.removePreference(accountScreen);
160 accountPreferenceHashMap.remove(accountID);
161 setAccountDetails(accountID, accountDetails);
alision73424b62013-04-26 11:49:18 -0400162
alisiond9e29442013-04-17 16:10:18 -0400163 } else if (resultCode == AccountPreferenceActivity.result.ACCOUNT_DELETED) {
164 Bundle bundle = data.getExtras();
165 String accountID = bundle.getString("AccountID");
Alexandre Savard833616f2012-10-30 16:02:30 -0400166
alisiond9e29442013-04-17 16:10:18 -0400167 Log.i(TAG, "Remove account " + accountID);
168 deleteSelectedAccount(accountID);
169 Preference accountScreen = accountPreferenceHashMap.get(accountID);
170 mRoot.removePreference(accountScreen);
171 accountPreferenceHashMap.remove(accountID);
172 } else {
173 Log.i(TAG, "Edition canceled");
174 }
175 break;
176 default:
177 break;
Alexandre Savard53d2ddd2012-09-30 22:04:40 -0400178 }
179 }
180
alisiond9e29442013-04-17 16:10:18 -0400181 private void createNewAccount(HashMap<String, String> accountDetails) {
182 try {
183 Log.i(TAG, "ADD ACCOUNT");
184 service.addAccount(accountDetails);
185 } catch (RemoteException e) {
186 Log.e(TAG, "Cannot call service method", e);
187 }
alisiond9e29442013-04-17 16:10:18 -0400188 }
alision73424b62013-04-26 11:49:18 -0400189
alisiona4325152013-04-19 11:10:03 -0400190 private void setAccountDetails(String accountID, HashMap<String, String> accountDetails) {
191 try {
192 service.setAccountDetails(accountID, accountDetails);
193 } catch (RemoteException e) {
194 Log.e(TAG, "Cannot call service method", e);
195 }
196 }
alision73424b62013-04-26 11:49:18 -0400197
alisiona4325152013-04-19 11:10:03 -0400198 private void deleteSelectedAccount(String accountID) {
199 Log.i(TAG, "DeleteSelectedAccount");
200 try {
201 service.removeAccount(accountID);
202 } catch (RemoteException e) {
203 Log.e(TAG, "Cannot call service method", e);
204 }
205 };
alisiond9e29442013-04-17 16:10:18 -0400206
Alexandre Savard4f11d7a2012-10-18 13:15:36 -0400207 private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
208 @Override
209 public void onReceive(Context context, Intent intent) {
Alexandre Savard4f11d7a2012-10-18 13:15:36 -0400210 ArrayList<String> newList = (ArrayList<String>) getAccountList();
Alexandre Savard5195d922012-10-30 16:58:50 -0400211 Set<String> currentList = (Set<String>) accountPreferenceHashMap.keySet();
alisiond9e29442013-04-17 16:10:18 -0400212 if (newList.size() > currentList.size()) {
213 for (String s : newList) {
214 if (!currentList.contains(s)) {
Alexandre Savard5195d922012-10-30 16:58:50 -0400215 Preference accountScreen = createAccountPreferenceScreen(s);
216 mRoot.addPreference(accountScreen);
217 accountPreferenceHashMap.put(s, accountScreen);
Alexandre Savardc7d22332012-10-18 16:54:17 -0400218 }
Alexandre Savard4f11d7a2012-10-18 13:15:36 -0400219 }
220 }
Alexandre Savard8ef37c52012-10-01 10:48:14 -0400221 }
222 };
Alexandre Savard9a93f062012-09-11 10:42:43 -0400223
Alexandre Savard53d2ddd2012-09-30 22:04:40 -0400224 Preference.OnPreferenceClickListener launchAccountCreationOnClick = new Preference.OnPreferenceClickListener() {
Alexandre Savard9a93f062012-09-11 10:42:43 -0400225 public boolean onPreferenceClick(Preference preference) {
alisiond9e29442013-04-17 16:10:18 -0400226 if (preference.getTitle() == "Create New Account") {
Alexandre Savard68838112012-10-30 11:34:43 -0400227 launchAccountCreationActivity(preference);
Alexandre Savard53d2ddd2012-09-30 22:04:40 -0400228 }
229 return true;
Alexandre Savard9a93f062012-09-11 10:42:43 -0400230 }
231 };
232
Alexandre Savard68838112012-10-30 11:34:43 -0400233 Preference.OnPreferenceClickListener launchAccountEditOnClick = new Preference.OnPreferenceClickListener() {
234 public boolean onPreferenceClick(Preference preference) {
235 launchAccountEditActivity(preference);
236 return true;
237 }
238 };
239
Alexandre Savardc7d22332012-10-18 16:54:17 -0400240 Preference.OnPreferenceClickListener removeSelectedAccountOnClick = new Preference.OnPreferenceClickListener() {
241 public boolean onPreferenceClick(Preference preference) {
alisiond9e29442013-04-17 16:10:18 -0400242 if (preference.getTitle() == "Delete Account") {
Alexandre Savardc7d22332012-10-18 16:54:17 -0400243 deleteSelectedAccount(preference.getKey());
244 }
245 return true;
246 }
247 };
248
alisiond9e29442013-04-17 16:10:18 -0400249 private void launchAccountCreationActivity(Preference preference) {
Alexandre Savard68838112012-10-30 11:34:43 -0400250 Log.i(TAG, "Launch account creation activity");
Alexandre Savardd5babe52012-10-01 08:52:44 -0400251 Intent intent = preference.getIntent();
alisiond9e29442013-04-17 16:10:18 -0400252 intent.putExtra(AccountPreferenceActivity.KEY_MODE, AccountPreferenceActivity.mode.CREATION_MODE);
Alexandre Savard53d2ddd2012-09-30 22:04:40 -0400253 startActivityForResult(intent, ACCOUNT_CREATE_REQUEST);
Alexandre Savardc7d22332012-10-18 16:54:17 -0400254 }
255
alisiond9e29442013-04-17 16:10:18 -0400256 private void launchAccountEditActivity(Preference preference) {
Alexandre Savard68838112012-10-30 11:34:43 -0400257 Log.i(TAG, "Launch account edit activity");
258 Intent intent = preference.getIntent();
alisiond9e29442013-04-17 16:10:18 -0400259 intent.putExtra(AccountPreferenceActivity.KEY_MODE, AccountPreferenceActivity.mode.EDITION_MODE);
Alexandre Savard833616f2012-10-30 16:02:30 -0400260 Bundle bundle = intent.getExtras();
261 String accountID = bundle.getString("AccountID");
262
263 HashMap<String, String> preferenceMap = getAccountDetails(accountID);
264
265 AccountDetailBasic basicDetails = new AccountDetailBasic(preferenceMap);
266 AccountDetailAdvanced advancedDetails = new AccountDetailAdvanced(preferenceMap);
267 AccountDetailSrtp srtpDetails = new AccountDetailSrtp(preferenceMap);
268 AccountDetailTls tlsDetails = new AccountDetailTls(preferenceMap);
269
270 bundle.putStringArrayList(AccountDetailBasic.BUNDLE_TAG, basicDetails.getValuesOnly());
271 bundle.putStringArrayList(AccountDetailAdvanced.BUNDLE_TAG, advancedDetails.getValuesOnly());
272 bundle.putStringArrayList(AccountDetailSrtp.BUNDLE_TAG, srtpDetails.getValuesOnly());
273 bundle.putStringArrayList(AccountDetailTls.BUNDLE_TAG, tlsDetails.getValuesOnly());
274
275 intent.putExtras(bundle);
276
Alexandre Savard68838112012-10-30 11:34:43 -0400277 startActivityForResult(intent, ACCOUNT_EDIT_REQUEST);
278 }
279
alisiond9e29442013-04-17 16:10:18 -0400280 private ArrayList<String> getAccountList() {
Alexandre Savard52a72522012-09-27 16:40:13 -0400281 ArrayList<String> accountList = null;
282 try {
alisiond9e29442013-04-17 16:10:18 -0400283 accountList = (ArrayList<String>) service.getAccountList();
Alexandre Savard52a72522012-09-27 16:40:13 -0400284 } catch (RemoteException e) {
alisiond9e29442013-04-17 16:10:18 -0400285 Log.e(TAG, "Cannot call service method", e);
Alexandre Savard52a72522012-09-27 16:40:13 -0400286 }
287
Alexandre Savarda6c0d992012-09-28 09:24:13 -0400288 // Remove the default account from list
289 accountList.remove(DEFAULT_ACCOUNT_ID);
290
Alexandre Savard52a72522012-09-27 16:40:13 -0400291 return accountList;
292 }
293
alisiond9e29442013-04-17 16:10:18 -0400294 private HashMap<String, String> getAccountDetails(String accountID) {
alisionf76de3b2013-04-16 15:35:22 -0400295 HashMap<String, String> accountDetails = null;
Alexandre Savard12dc3ac2012-09-27 11:17:39 -0400296 try {
alisionf76de3b2013-04-16 15:35:22 -0400297 accountDetails = (HashMap<String, String>) service.getAccountDetails(accountID);
alisiond295ec22013-05-17 10:12:13 -0400298 ArrayList<Integer> tmp = (ArrayList<Integer>) service.getAudioCodecList(accountID);
299 for(Integer i : tmp){
300 Log.w(TAG,"Codec : "+i);
301 }
alision73424b62013-04-26 11:49:18 -0400302
303 if (accountDetails.containsKey("TLS.negotiationTimeoutSec"))
304 Log.i(TAG, "localinterface existe");
Alexandre Savard12dc3ac2012-09-27 11:17:39 -0400305 } catch (RemoteException e) {
306 Log.e(TAG, "Cannot call service method", e);
307 }
Alexandre Savard9a93f062012-09-11 10:42:43 -0400308
309 return accountDetails;
310 }
311
alisiond9e29442013-04-17 16:10:18 -0400312 public PreferenceScreen getAccountListPreferenceScreen() {
Alexandre Savard9a93f062012-09-11 10:42:43 -0400313 Activity currentContext = getActivity();
Alexandre Savard52a72522012-09-27 16:40:13 -0400314
Alexandre Savard4f11d7a2012-10-18 13:15:36 -0400315 mRoot = getPreferenceManager().createPreferenceScreen(currentContext);
Alexandre Savard70982012012-09-27 17:15:50 -0400316
Alexandre Savarda6c0d992012-09-28 09:24:13 -0400317 // Default account category
Alexandre Savard70982012012-09-27 17:15:50 -0400318 PreferenceCategory defaultAccountCat = new PreferenceCategory(currentContext);
Alexandre Savarda6c0d992012-09-28 09:24:13 -0400319 defaultAccountCat.setTitle(R.string.default_account_category);
Alexandre Savard4f11d7a2012-10-18 13:15:36 -0400320 mRoot.addPreference(defaultAccountCat);
Alexandre Savard70982012012-09-27 17:15:50 -0400321
Alexandre Savard68838112012-10-30 11:34:43 -0400322 mRoot.addPreference(createAccountPreferenceScreen(DEFAULT_ACCOUNT_ID));
Alexandre Savard70982012012-09-27 17:15:50 -0400323
Alexandre Savarda6c0d992012-09-28 09:24:13 -0400324 // Account list category
Alexandre Savard70982012012-09-27 17:15:50 -0400325 PreferenceCategory accountListCat = new PreferenceCategory(currentContext);
Alexandre Savarda6c0d992012-09-28 09:24:13 -0400326 accountListCat.setTitle(R.string.default_account_category);
Alexandre Savard4f11d7a2012-10-18 13:15:36 -0400327 mRoot.addPreference(accountListCat);
Alexandre Savard70982012012-09-27 17:15:50 -0400328
Alexandre Savard53d2ddd2012-09-30 22:04:40 -0400329 Preference createNewAccount = new Preference(currentContext);
Alexandre Savardcf7e95a2012-10-18 18:03:06 -0400330 createNewAccount.setTitle("Create New Account");
Alexandre Savard53d2ddd2012-09-30 22:04:40 -0400331 createNewAccount.setOnPreferenceClickListener(launchAccountCreationOnClick);
alisiond9e29442013-04-17 16:10:18 -0400332 createNewAccount.setIntent(new Intent().setClass(getActivity(), AccountPreferenceActivity.class));
Alexandre Savard4f11d7a2012-10-18 13:15:36 -0400333 mRoot.addPreference(createNewAccount);
Alexandre Savard3a46d922012-09-30 20:42:51 -0400334
Alexandre Savard833616f2012-10-30 16:02:30 -0400335 ArrayList<String> accountList = getAccountList();
alisiond9e29442013-04-17 16:10:18 -0400336 for (String s : accountList) {
Alexandre Savard5195d922012-10-30 16:58:50 -0400337 Preference accountScreen = createAccountPreferenceScreen(s);
338 mRoot.addPreference(accountScreen);
alisiond9e29442013-04-17 16:10:18 -0400339 accountPreferenceHashMap.put(s, accountScreen);
Alexandre Savarde990d052012-10-18 14:43:09 -0400340 }
alisiond9e29442013-04-17 16:10:18 -0400341
Alexandre Savard4f11d7a2012-10-18 13:15:36 -0400342 return mRoot;
Alexandre Savard70982012012-09-27 17:15:50 -0400343 }
344
Alexandre Savard68838112012-10-30 11:34:43 -0400345 Preference createAccountPreferenceScreen(String accountID) {
346
alisionf76de3b2013-04-16 15:35:22 -0400347 HashMap<String, String> details = getAccountDetails(accountID);
alisiond9e29442013-04-17 16:10:18 -0400348 // Set<String> keys = details.keySet();
349 // Iterator<String> ite = keys.iterator();
350 // while(ite.hasNext()){
351 // Log.i(TAG,"key : "+ ite.next());
352 // }
Alexandre Savard68838112012-10-30 11:34:43 -0400353 Bundle bundle = new Bundle();
354 bundle.putString("AccountID", accountID);
Alexandre Savard68838112012-10-30 11:34:43 -0400355
alisiond9e29442013-04-17 16:10:18 -0400356 Intent intent = new Intent().setClass(getActivity(), AccountPreferenceActivity.class);
Alexandre Savard68838112012-10-30 11:34:43 -0400357 intent.putExtras(bundle);
358
359 Preference editAccount = new Preference(getActivity());
alisionf76de3b2013-04-16 15:35:22 -0400360 editAccount.setTitle(details.get(AccountDetailBasic.CONFIG_ACCOUNT_ALIAS));
361 editAccount.setSummary(details.get(AccountDetailBasic.CONFIG_ACCOUNT_HOSTNAME));
Alexandre Savard68838112012-10-30 11:34:43 -0400362 editAccount.setOnPreferenceClickListener(launchAccountEditOnClick);
363 editAccount.setIntent(intent);
alisiond9e29442013-04-17 16:10:18 -0400364
Alexandre Savard68838112012-10-30 11:34:43 -0400365 return editAccount;
366 }
Alexandre Savard2b370f02012-09-06 16:06:01 -0400367}