blob: 375a039b88bc3e0d8e929dcec86542ce29dab277 [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
25 @Override
26 public ArrayList<Account> loadInBackground() {
alision5cfc35d2013-07-11 15:11:39 -040027
alision11e8e162013-05-28 10:33:14 -040028 ArrayList<Account> result = new ArrayList<Account>();
alision11e8e162013-05-28 10:33:14 -040029
30 ArrayList<String> accountIDs;
31 HashMap<String, String> details;
32 try {
33 accountIDs = (ArrayList<String>) service.getAccountList();
34 for (String id : accountIDs) {
alision5cfc35d2013-07-11 15:11:39 -040035
36 if (id.contentEquals("IP2IP")) {
alision11e8e162013-05-28 10:33:14 -040037 continue;
38 }
39 details = (HashMap<String, String>) service.getAccountDetails(id);
alision5cfc35d2013-07-11 15:11:39 -040040 result.add(new Account(id, details));
alision11e8e162013-05-28 10:33:14 -040041
42 }
43 } catch (RemoteException e) {
44 Log.e(TAG, e.toString());
alision5cfc35d2013-07-11 15:11:39 -040045 } catch (NullPointerException e1) {
alisiondf1dac92013-06-27 17:35:53 -040046 Log.e(TAG, e1.toString());
alision11e8e162013-05-28 10:33:14 -040047 }
48
49 return result;
50 }
51
52}