blob: be144888037894076b5db08e805872bb7bc15c84 [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
11import com.savoirfairelinux.sflphone.account.AccountDetailAdvanced;
12import com.savoirfairelinux.sflphone.account.AccountDetailBasic;
13import com.savoirfairelinux.sflphone.model.Account;
14import com.savoirfairelinux.sflphone.service.ISipService;
15
16public class AccountsLoader extends AsyncTaskLoader<ArrayList<Account>> {
17
18 private static final String TAG = AccountsLoader.class.getSimpleName();
19
20 ISipService service;
21
22 public AccountsLoader(Context context, ISipService ref) {
23 super(context);
24 service = ref;
25 }
26
27 @Override
28 public ArrayList<Account> loadInBackground() {
29
30
31 ArrayList<Account> result = new ArrayList<Account>();
32 Account.AccountBuilder builder = Account.AccountBuilder.getInstance();
33
34 ArrayList<String> accountIDs;
35 HashMap<String, String> details;
36 try {
37 accountIDs = (ArrayList<String>) service.getAccountList();
38 for (String id : accountIDs) {
39
40 if(id.contentEquals("IP2IP")){
41 continue;
42 }
43 details = (HashMap<String, String>) service.getAccountDetails(id);
44
45 builder.setAccountID(id).setAlias(details.get(AccountDetailBasic.CONFIG_ACCOUNT_ALIAS))
46 .setHost(details.get(AccountDetailBasic.CONFIG_ACCOUNT_HOSTNAME))
47 .setRegisteredState(details.get(AccountDetailAdvanced.CONFIG_ACCOUNT_REGISTRATION_STATUS));
48
49 try {
50 result.add(builder.build());
51 } catch (Exception e) {
52 Log.e(TAG, e.toString());
53 }
54
55 }
56 } catch (RemoteException e) {
57 Log.e(TAG, e.toString());
alisiondf1dac92013-06-27 17:35:53 -040058 } catch (NullPointerException e1){
59 Log.e(TAG, e1.toString());
alision11e8e162013-05-28 10:33:14 -040060 }
61
62 return result;
63 }
64
65}