blob: e6f2a5d5d92159b1ff53f6a8b44c286e4e953acd [file] [log] [blame]
Alexandre Savard2b370f02012-09-06 16:06:01 -04001/*
alision5cfc35d2013-07-11 15:11:39 -04002 * Copyright (C) 2004-2013 Savoir-Faire Linux Inc.
Alexandre Savard2b370f02012-09-06 16:06:01 -04003 *
4 * Author: Alexandre Savard <alexandre.savard@savoirfairelinux.com>
alision5cfc35d2013-07-11 15:11:39 -04005 * Alexandre Lision <alexandre.lision@savoirfairelinux.com>
Alexandre Savard2b370f02012-09-06 16:06:01 -04006 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 *
21 * Additional permission under GNU GPL version 3 section 7:
22 *
23 * If you modify this program, or any covered work, by linking or
24 * combining it with the OpenSSL project's OpenSSL library (or a
25 * modified version of that library), containing parts covered by the
26 * terms of the OpenSSL or SSLeay licenses, Savoir-Faire Linux Inc.
27 * grants you additional permission to convey the resulting work.
28 * Corresponding Source for a non-source form of such a combination
29 * shall include the source code for the parts of OpenSSL used as well
30 * as that of the covered work.
31 */
32
Alexandre Lision064e1e02013-10-01 16:18:42 -040033package org.sflphone.fragments;
alisionf76de3b2013-04-16 15:35:22 -040034
35import java.util.ArrayList;
36import java.util.HashMap;
alisionf76de3b2013-04-16 15:35:22 -040037import java.util.Set;
Alexandre Savard2b370f02012-09-06 16:06:01 -040038
Alexandre Lision064e1e02013-10-01 16:18:42 -040039import org.sflphone.R;
40import org.sflphone.account.AccountDetail;
41import org.sflphone.account.AccountDetailAdvanced;
42import org.sflphone.account.AccountDetailBasic;
43import org.sflphone.account.AccountDetailSrtp;
44import org.sflphone.account.AccountDetailTls;
Alexandre Lision8b9d8e82013-10-04 09:21:27 -040045import org.sflphone.client.AccountEditionActivity;
Alexandre Lision064e1e02013-10-01 16:18:42 -040046import org.sflphone.client.AccountWizard;
47import org.sflphone.client.SFLPhonePreferenceActivity;
48import org.sflphone.client.SFLphoneApplication;
49import org.sflphone.model.Account;
50import org.sflphone.service.ConfigurationManagerCallback;
51import org.sflphone.service.ISipService;
52
Alexandre Savard9a93f062012-09-11 10:42:43 -040053import android.app.Activity;
Alexandre Savard4f11d7a2012-10-18 13:15:36 -040054import android.content.BroadcastReceiver;
Alexandre Savardae992932012-10-17 10:26:12 -040055import android.content.Context;
Alexandre Savard53d2ddd2012-09-30 22:04:40 -040056import android.content.Intent;
Alexandre Savard4f11d7a2012-10-18 13:15:36 -040057import android.content.IntentFilter;
alisionf76de3b2013-04-16 15:35:22 -040058import android.os.Bundle;
59import android.os.RemoteException;
Alexandre Savard9a93f062012-09-11 10:42:43 -040060import android.preference.Preference;
Alexandre Savard9a93f062012-09-11 10:42:43 -040061import android.preference.PreferenceFragment;
62import android.preference.PreferenceScreen;
Alexandre Savard4f11d7a2012-10-18 13:15:36 -040063import android.support.v4.content.LocalBroadcastManager;
Alexandre Savard2b370f02012-09-06 16:06:01 -040064import android.util.Log;
Alexandre Lisiona764c682013-09-09 10:02:07 -040065import android.view.Menu;
66import android.view.MenuInflater;
67import android.view.MenuItem;
Alexandre Savard2b370f02012-09-06 16:06:01 -040068
alisiond9e29442013-04-17 16:10:18 -040069public class AccountManagementFragment extends PreferenceFragment {
Alexandre Savard2b370f02012-09-06 16:06:01 -040070 static final String TAG = "AccountManagementFragment";
Alexandre Savarda6c0d992012-09-28 09:24:13 -040071 static final String DEFAULT_ACCOUNT_ID = "IP2IP";
Alexandre Savard53d2ddd2012-09-30 22:04:40 -040072 static final int ACCOUNT_CREATE_REQUEST = 1;
Alexandre Savard68838112012-10-30 11:34:43 -040073 static final int ACCOUNT_EDIT_REQUEST = 2;
Emeric Vigier1f1ced32012-11-02 16:56:32 -040074 private SFLPhonePreferenceActivity sflphonePreferenceActivity;
Emeric Vigier0038a612012-11-06 18:51:19 -050075 private ISipService service = null;
Alexandre Savardae992932012-10-17 10:26:12 -040076
alision5cfc35d2013-07-11 15:11:39 -040077 // ArrayList<AccountDetail.PreferenceEntry> basicDetailKeys = null;
78 // ArrayList<AccountDetail.PreferenceEntry> advancedDetailKeys = null;
79 // ArrayList<AccountDetail.PreferenceEntry> srtpDetailKeys = null;
80 // ArrayList<AccountDetail.PreferenceEntry> tlsDetailKeys = null;
Alexandre Savard5195d922012-10-30 16:58:50 -040081 HashMap<String, Preference> accountPreferenceHashMap = null;
Alexandre Savard68838112012-10-30 11:34:43 -040082 PreferenceScreen mRoot = null;
Alexandre Savardae992932012-10-17 10:26:12 -040083
Emeric Vigier1f1ced32012-11-02 16:56:32 -040084 @Override
85 public void onAttach(Activity activity) {
86 super.onAttach(activity);
87 sflphonePreferenceActivity = (SFLPhonePreferenceActivity) activity;
88 service = sflphonePreferenceActivity.getSipService();
Emeric Vigier364499e2012-11-06 19:15:45 -050089 Log.w(TAG, "onAttach() service=" + service);
Emeric Vigier1f1ced32012-11-02 16:56:32 -040090 }
Alexandre Savard12dc3ac2012-09-27 11:17:39 -040091
alisiond9e29442013-04-17 16:10:18 -040092 public AccountManagementFragment() {
alision5cfc35d2013-07-11 15:11:39 -040093 // basicDetailKeys = AccountDetailBasic.getPreferenceEntries();
94 // advancedDetailKeys = AccountDetailAdvanced.getPreferenceEntries();
95 // srtpDetailKeys = AccountDetailSrtp.getPreferenceEntries();
96 // tlsDetailKeys = AccountDetailTls.getPreferenceEntries();
Alexandre Savard5195d922012-10-30 16:58:50 -040097
98 accountPreferenceHashMap = new HashMap<String, Preference>();
alisiond9e29442013-04-17 16:10:18 -040099 }
Alexandre Savard2b370f02012-09-06 16:06:01 -0400100
101 @Override
alisiond9e29442013-04-17 16:10:18 -0400102 public void onCreate(Bundle savedInstanceState) {
Alexandre Savard2b370f02012-09-06 16:06:01 -0400103 super.onCreate(savedInstanceState);
104
Alexandre Savard9a93f062012-09-11 10:42:43 -0400105 Log.i(TAG, "Create Account Management Fragment");
Alexandre Savard2b370f02012-09-06 16:06:01 -0400106
Alexandre Lisiona764c682013-09-09 10:02:07 -0400107 this.setHasOptionsMenu(true);
108
Emeric Vigier0038a612012-11-06 18:51:19 -0500109 /*
alisiond9e29442013-04-17 16:10:18 -0400110 * FIXME if service cannot be obtained from SFLPhonePreferenceActivity, then get it from Application
Emeric Vigier0038a612012-11-06 18:51:19 -0500111 */
112 service = sflphonePreferenceActivity.getSipService();
113 if (service == null) {
alisiond9e29442013-04-17 16:10:18 -0400114 service = ((SFLphoneApplication) sflphonePreferenceActivity.getApplication()).getSipService();
Emeric Vigier0038a612012-11-06 18:51:19 -0500115 if (service == null) {
116 Log.e(TAG, "onCreate() service=" + service);
117 }
118 }
Emeric Vigier0038a612012-11-06 18:51:19 -0500119
Alexandre Savard70982012012-09-27 17:15:50 -0400120 setPreferenceScreen(getAccountListPreferenceScreen());
Alexandre Savard4f11d7a2012-10-18 13:15:36 -0400121
alision73424b62013-04-26 11:49:18 -0400122 LocalBroadcastManager.getInstance(getActivity()).registerReceiver(mMessageReceiver,
123 new IntentFilter(ConfigurationManagerCallback.ACCOUNTS_CHANGED));
Alexandre Savard2b370f02012-09-06 16:06:01 -0400124 }
125
Alexandre Savard8b7d4332012-09-30 20:02:11 -0400126 @Override
alisiond9e29442013-04-17 16:10:18 -0400127 public void onStop() {
Alexandre Savard8b7d4332012-09-30 20:02:11 -0400128 super.onStop();
129 Log.i(TAG, "onStop");
Alexandre Savard8b7d4332012-09-30 20:02:11 -0400130 }
131
132 @Override
alisiond9e29442013-04-17 16:10:18 -0400133 public void onDestroy() {
Alexandre Savard4f11d7a2012-10-18 13:15:36 -0400134 LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(mMessageReceiver);
Alexandre Savard8b7d4332012-09-30 20:02:11 -0400135 super.onDestroy();
136 Log.i(TAG, "onDestroy");
Alexandre Savard8b7d4332012-09-30 20:02:11 -0400137 }
138
Alexandre Lision6e8931e2013-09-19 16:49:34 -0400139 @SuppressWarnings("unchecked") // No proper solution with HashMap runtime cast
Alexandre Savard53d2ddd2012-09-30 22:04:40 -0400140 @Override
141 public void onActivityResult(int requestCode, int resultCode, Intent data) {
alisiond9e29442013-04-17 16:10:18 -0400142 switch (requestCode) {
143 case ACCOUNT_CREATE_REQUEST:
alision5cfc35d2013-07-11 15:11:39 -0400144 if (resultCode == AccountWizard.ACCOUNT_CREATED) {
alisiond9e29442013-04-17 16:10:18 -0400145 Bundle bundle = data.getExtras();
146 Log.i(TAG, "Create account settings");
147 HashMap<String, String> accountDetails = new HashMap<String, String>();
148 accountDetails = (HashMap<String, String>) bundle.getSerializable(AccountDetail.TAG);
Alexandre Lisiona764c682013-09-09 10:02:07 -0400149 // if(accountDetails == null){
150 // Toast.makeText(getActivity(), "NUUUUL", Toast.LENGTH_SHORT).show();
151 // } else
152 // Toast.makeText(getActivity(), "OKKKK", Toast.LENGTH_SHORT).show();
alisiond9e29442013-04-17 16:10:18 -0400153 createNewAccount(accountDetails);
154 }
155 break;
156 case ACCOUNT_EDIT_REQUEST:
Alexandre Lision8b9d8e82013-10-04 09:21:27 -0400157 if (resultCode == AccountEditionActivity.result.ACCOUNT_MODIFIED) {
alisiond9e29442013-04-17 16:10:18 -0400158 Bundle bundle = data.getExtras();
159 String accountID = bundle.getString("AccountID");
160 Log.i(TAG, "Update account settings for " + accountID);
Alexandre Savard833616f2012-10-30 16:02:30 -0400161
alisiond9e29442013-04-17 16:10:18 -0400162 HashMap<String, String> accountDetails = new HashMap<String, String>();
163 accountDetails = (HashMap<String, String>) bundle.getSerializable(AccountDetail.TAG);
alision5cfc35d2013-07-11 15:11:39 -0400164
alisiond9e29442013-04-17 16:10:18 -0400165 Preference accountScreen = accountPreferenceHashMap.get(accountID);
166 mRoot.removePreference(accountScreen);
167 accountPreferenceHashMap.remove(accountID);
168 setAccountDetails(accountID, accountDetails);
alision73424b62013-04-26 11:49:18 -0400169
Alexandre Lision8b9d8e82013-10-04 09:21:27 -0400170 } else if (resultCode == AccountEditionActivity.result.ACCOUNT_DELETED) {
alisiond9e29442013-04-17 16:10:18 -0400171 Bundle bundle = data.getExtras();
172 String accountID = bundle.getString("AccountID");
Alexandre Savard833616f2012-10-30 16:02:30 -0400173
alisiond9e29442013-04-17 16:10:18 -0400174 Log.i(TAG, "Remove account " + accountID);
175 deleteSelectedAccount(accountID);
176 Preference accountScreen = accountPreferenceHashMap.get(accountID);
177 mRoot.removePreference(accountScreen);
178 accountPreferenceHashMap.remove(accountID);
179 } else {
180 Log.i(TAG, "Edition canceled");
181 }
182 break;
183 default:
184 break;
Alexandre Savard53d2ddd2012-09-30 22:04:40 -0400185 }
186 }
187
alisiond9e29442013-04-17 16:10:18 -0400188 private void createNewAccount(HashMap<String, String> accountDetails) {
189 try {
190 Log.i(TAG, "ADD ACCOUNT");
191 service.addAccount(accountDetails);
192 } catch (RemoteException e) {
193 Log.e(TAG, "Cannot call service method", e);
194 }
alisiond9e29442013-04-17 16:10:18 -0400195 }
alision73424b62013-04-26 11:49:18 -0400196
alisiona4325152013-04-19 11:10:03 -0400197 private void setAccountDetails(String accountID, HashMap<String, String> accountDetails) {
198 try {
199 service.setAccountDetails(accountID, accountDetails);
200 } catch (RemoteException e) {
201 Log.e(TAG, "Cannot call service method", e);
202 }
203 }
alision73424b62013-04-26 11:49:18 -0400204
alisiona4325152013-04-19 11:10:03 -0400205 private void deleteSelectedAccount(String accountID) {
206 Log.i(TAG, "DeleteSelectedAccount");
207 try {
208 service.removeAccount(accountID);
209 } catch (RemoteException e) {
210 Log.e(TAG, "Cannot call service method", e);
211 }
212 };
alisiond9e29442013-04-17 16:10:18 -0400213
Alexandre Savard4f11d7a2012-10-18 13:15:36 -0400214 private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
215 @Override
216 public void onReceive(Context context, Intent intent) {
Alexandre Savard4f11d7a2012-10-18 13:15:36 -0400217 ArrayList<String> newList = (ArrayList<String>) getAccountList();
Alexandre Savard5195d922012-10-30 16:58:50 -0400218 Set<String> currentList = (Set<String>) accountPreferenceHashMap.keySet();
alisiond9e29442013-04-17 16:10:18 -0400219 if (newList.size() > currentList.size()) {
220 for (String s : newList) {
221 if (!currentList.contains(s)) {
Alexandre Savard5195d922012-10-30 16:58:50 -0400222 Preference accountScreen = createAccountPreferenceScreen(s);
223 mRoot.addPreference(accountScreen);
224 accountPreferenceHashMap.put(s, accountScreen);
Alexandre Savardc7d22332012-10-18 16:54:17 -0400225 }
Alexandre Savard4f11d7a2012-10-18 13:15:36 -0400226 }
227 }
Alexandre Savard8ef37c52012-10-01 10:48:14 -0400228 }
229 };
Alexandre Savard9a93f062012-09-11 10:42:43 -0400230
Alexandre Savard53d2ddd2012-09-30 22:04:40 -0400231 Preference.OnPreferenceClickListener launchAccountCreationOnClick = new Preference.OnPreferenceClickListener() {
Alexandre Savard9a93f062012-09-11 10:42:43 -0400232 public boolean onPreferenceClick(Preference preference) {
Alexandre Lisiona764c682013-09-09 10:02:07 -0400233 launchAccountCreationActivity(preference);
Alexandre Savard53d2ddd2012-09-30 22:04:40 -0400234 return true;
Alexandre Savard9a93f062012-09-11 10:42:43 -0400235 }
236 };
237
Alexandre Savard68838112012-10-30 11:34:43 -0400238 Preference.OnPreferenceClickListener launchAccountEditOnClick = new Preference.OnPreferenceClickListener() {
239 public boolean onPreferenceClick(Preference preference) {
240 launchAccountEditActivity(preference);
241 return true;
242 }
243 };
244
Alexandre Savardc7d22332012-10-18 16:54:17 -0400245 Preference.OnPreferenceClickListener removeSelectedAccountOnClick = new Preference.OnPreferenceClickListener() {
246 public boolean onPreferenceClick(Preference preference) {
alisiond9e29442013-04-17 16:10:18 -0400247 if (preference.getTitle() == "Delete Account") {
Alexandre Savardc7d22332012-10-18 16:54:17 -0400248 deleteSelectedAccount(preference.getKey());
249 }
250 return true;
251 }
252 };
253
Alexandre Lisiona764c682013-09-09 10:02:07 -0400254 @Override
255 public void onCreateOptionsMenu(Menu m, MenuInflater inf) {
256 super.onCreateOptionsMenu(m, inf);
257 inf.inflate(R.menu.account_creation, m);
258 }
259
260 @Override
261 public boolean onOptionsItemSelected(MenuItem item) {
262 super.onOptionsItemSelected(item);
263 switch (item.getItemId()) {
264 case R.id.menuitem_create:
265 Intent intent = new Intent().setClass(getActivity(), AccountWizard.class);
266 startActivityForResult(intent, ACCOUNT_CREATE_REQUEST);
267 break;
268 }
269
270 return true;
271 }
272
alisiond9e29442013-04-17 16:10:18 -0400273 private void launchAccountCreationActivity(Preference preference) {
Alexandre Savard68838112012-10-30 11:34:43 -0400274 Log.i(TAG, "Launch account creation activity");
Alexandre Savardd5babe52012-10-01 08:52:44 -0400275 Intent intent = preference.getIntent();
Alexandre Savard53d2ddd2012-09-30 22:04:40 -0400276 startActivityForResult(intent, ACCOUNT_CREATE_REQUEST);
Alexandre Savardc7d22332012-10-18 16:54:17 -0400277 }
278
alisiond9e29442013-04-17 16:10:18 -0400279 private void launchAccountEditActivity(Preference preference) {
Alexandre Savard68838112012-10-30 11:34:43 -0400280 Log.i(TAG, "Launch account edit activity");
281 Intent intent = preference.getIntent();
Alexandre Savard833616f2012-10-30 16:02:30 -0400282 Bundle bundle = intent.getExtras();
283 String accountID = bundle.getString("AccountID");
284
285 HashMap<String, String> preferenceMap = getAccountDetails(accountID);
286
alision5cfc35d2013-07-11 15:11:39 -0400287 Account d = new Account(accountID, preferenceMap);
Alexandre Savard833616f2012-10-30 16:02:30 -0400288
alision5cfc35d2013-07-11 15:11:39 -0400289 bundle.putStringArrayList(AccountDetailBasic.BUNDLE_TAG, d.getBasicDetails().getValuesOnly());
290 bundle.putStringArrayList(AccountDetailAdvanced.BUNDLE_TAG, d.getAdvancedDetails().getValuesOnly());
291 bundle.putStringArrayList(AccountDetailSrtp.BUNDLE_TAG, d.getSrtpDetails().getValuesOnly());
292 bundle.putStringArrayList(AccountDetailTls.BUNDLE_TAG, d.getTlsDetails().getValuesOnly());
Alexandre Savard833616f2012-10-30 16:02:30 -0400293
294 intent.putExtras(bundle);
295
Alexandre Savard68838112012-10-30 11:34:43 -0400296 startActivityForResult(intent, ACCOUNT_EDIT_REQUEST);
297 }
298
Alexandre Lision6e8931e2013-09-19 16:49:34 -0400299 @SuppressWarnings("unchecked") // No proper solution with HashMap runtime cast
alisiond9e29442013-04-17 16:10:18 -0400300 private ArrayList<String> getAccountList() {
Alexandre Savard52a72522012-09-27 16:40:13 -0400301 ArrayList<String> accountList = null;
302 try {
alisiond9e29442013-04-17 16:10:18 -0400303 accountList = (ArrayList<String>) service.getAccountList();
Alexandre Savard52a72522012-09-27 16:40:13 -0400304 } catch (RemoteException e) {
alisiond9e29442013-04-17 16:10:18 -0400305 Log.e(TAG, "Cannot call service method", e);
Alexandre Savard52a72522012-09-27 16:40:13 -0400306 }
307
Alexandre Savarda6c0d992012-09-28 09:24:13 -0400308 // Remove the default account from list
309 accountList.remove(DEFAULT_ACCOUNT_ID);
310
Alexandre Savard52a72522012-09-27 16:40:13 -0400311 return accountList;
312 }
313
Alexandre Lision6e8931e2013-09-19 16:49:34 -0400314 @SuppressWarnings("unchecked") // No proper solution with HashMap runtime cast
alisiond9e29442013-04-17 16:10:18 -0400315 private HashMap<String, String> getAccountDetails(String accountID) {
alisionf76de3b2013-04-16 15:35:22 -0400316 HashMap<String, String> accountDetails = null;
Alexandre Savard12dc3ac2012-09-27 11:17:39 -0400317 try {
alisionf76de3b2013-04-16 15:35:22 -0400318 accountDetails = (HashMap<String, String>) service.getAccountDetails(accountID);
Alexandre Savard12dc3ac2012-09-27 11:17:39 -0400319 } catch (RemoteException e) {
320 Log.e(TAG, "Cannot call service method", e);
321 }
Alexandre Savard9a93f062012-09-11 10:42:43 -0400322
323 return accountDetails;
324 }
325
alisiond9e29442013-04-17 16:10:18 -0400326 public PreferenceScreen getAccountListPreferenceScreen() {
Alexandre Savard9a93f062012-09-11 10:42:43 -0400327 Activity currentContext = getActivity();
Alexandre Savard52a72522012-09-27 16:40:13 -0400328
Alexandre Savard4f11d7a2012-10-18 13:15:36 -0400329 mRoot = getPreferenceManager().createPreferenceScreen(currentContext);
Alexandre Savard70982012012-09-27 17:15:50 -0400330
Alexandre Savarda6c0d992012-09-28 09:24:13 -0400331 // Default account category
alision5cfc35d2013-07-11 15:11:39 -0400332 // PreferenceCategory defaultAccountCat = new PreferenceCategory(currentContext);
333 // defaultAccountCat.setTitle(R.string.default_account_category);
334 // mRoot.addPreference(defaultAccountCat);
335 //
336 // mRoot.addPreference(createAccountPreferenceScreen(DEFAULT_ACCOUNT_ID));
Alexandre Savard70982012012-09-27 17:15:50 -0400337
Alexandre Savarda6c0d992012-09-28 09:24:13 -0400338 // Account list category
Alexandre Lisiona764c682013-09-09 10:02:07 -0400339 // PreferenceCategory accountListCat = new PreferenceCategory(currentContext);
340 // accountListCat.setTitle(R.string.default_account_category);
341 // mRoot.addPreference(accountListCat);
Alexandre Savard3a46d922012-09-30 20:42:51 -0400342
Alexandre Savard833616f2012-10-30 16:02:30 -0400343 ArrayList<String> accountList = getAccountList();
Alexandre Lisiona764c682013-09-09 10:02:07 -0400344
alisiond9e29442013-04-17 16:10:18 -0400345 for (String s : accountList) {
Alexandre Savard5195d922012-10-30 16:58:50 -0400346 Preference accountScreen = createAccountPreferenceScreen(s);
347 mRoot.addPreference(accountScreen);
alisiond9e29442013-04-17 16:10:18 -0400348 accountPreferenceHashMap.put(s, accountScreen);
Alexandre Savarde990d052012-10-18 14:43:09 -0400349 }
alisiond9e29442013-04-17 16:10:18 -0400350
Alexandre Savard4f11d7a2012-10-18 13:15:36 -0400351 return mRoot;
Alexandre Savard70982012012-09-27 17:15:50 -0400352 }
353
Alexandre Savard68838112012-10-30 11:34:43 -0400354 Preference createAccountPreferenceScreen(String accountID) {
355
alisionf76de3b2013-04-16 15:35:22 -0400356 HashMap<String, String> details = getAccountDetails(accountID);
alisiond9e29442013-04-17 16:10:18 -0400357 // Set<String> keys = details.keySet();
358 // Iterator<String> ite = keys.iterator();
359 // while(ite.hasNext()){
360 // Log.i(TAG,"key : "+ ite.next());
361 // }
Alexandre Savard68838112012-10-30 11:34:43 -0400362 Bundle bundle = new Bundle();
363 bundle.putString("AccountID", accountID);
Alexandre Savard68838112012-10-30 11:34:43 -0400364
Alexandre Lision8b9d8e82013-10-04 09:21:27 -0400365 Intent intent = new Intent().setClass(getActivity(), AccountEditionActivity.class);
Alexandre Savard68838112012-10-30 11:34:43 -0400366 intent.putExtras(bundle);
367
368 Preference editAccount = new Preference(getActivity());
alisionf76de3b2013-04-16 15:35:22 -0400369 editAccount.setTitle(details.get(AccountDetailBasic.CONFIG_ACCOUNT_ALIAS));
370 editAccount.setSummary(details.get(AccountDetailBasic.CONFIG_ACCOUNT_HOSTNAME));
Alexandre Savard68838112012-10-30 11:34:43 -0400371 editAccount.setOnPreferenceClickListener(launchAccountEditOnClick);
372 editAccount.setIntent(intent);
alisiond9e29442013-04-17 16:10:18 -0400373
Alexandre Savard68838112012-10-30 11:34:43 -0400374 return editAccount;
375 }
Alexandre Savard2b370f02012-09-06 16:06:01 -0400376}