blob: 40af292798241ec386d24869e3fdef2539982b18 [file] [log] [blame]
alision11e8e162013-05-28 10:33:14 -04001package com.savoirfairelinux.sflphone.loaders;
2
3import java.util.ArrayList;
4import java.util.HashMap;
5
6import android.content.AsyncTaskLoader;
7import android.content.Context;
8import android.os.RemoteException;
9import android.util.Log;
10
alision11e8e162013-05-28 10:33:14 -040011import com.savoirfairelinux.sflphone.model.Account;
12import com.savoirfairelinux.sflphone.service.ISipService;
13
14public class AccountsLoader extends AsyncTaskLoader<ArrayList<Account>> {
15
16 private static final String TAG = AccountsLoader.class.getSimpleName();
17
18 ISipService service;
19
20 public AccountsLoader(Context context, ISipService ref) {
21 super(context);
22 service = ref;
23 }
24
Alexandre Lision6e8931e2013-09-19 16:49:34 -040025 @SuppressWarnings("unchecked") // Hashmap runtime cast
alision11e8e162013-05-28 10:33:14 -040026 @Override
27 public ArrayList<Account> loadInBackground() {
alision5cfc35d2013-07-11 15:11:39 -040028
alision11e8e162013-05-28 10:33:14 -040029 ArrayList<Account> result = new ArrayList<Account>();
alision11e8e162013-05-28 10:33:14 -040030
31 ArrayList<String> accountIDs;
32 HashMap<String, String> details;
33 try {
34 accountIDs = (ArrayList<String>) service.getAccountList();
35 for (String id : accountIDs) {
alision5cfc35d2013-07-11 15:11:39 -040036
37 if (id.contentEquals("IP2IP")) {
alision11e8e162013-05-28 10:33:14 -040038 continue;
39 }
40 details = (HashMap<String, String>) service.getAccountDetails(id);
alision5cfc35d2013-07-11 15:11:39 -040041 result.add(new Account(id, details));
alision11e8e162013-05-28 10:33:14 -040042
43 }
44 } catch (RemoteException e) {
45 Log.e(TAG, e.toString());
alision5cfc35d2013-07-11 15:11:39 -040046 } catch (NullPointerException e1) {
alisiondf1dac92013-06-27 17:35:53 -040047 Log.e(TAG, e1.toString());
alision11e8e162013-05-28 10:33:14 -040048 }
49
50 return result;
51 }
52
53}