blob: 7194096a5d34fe4aab1b0dbf441cfe9519b97c8c [file] [log] [blame]
package com.savoirfairelinux.sflphone.loaders;
import java.util.ArrayList;
import java.util.HashMap;
import android.content.AsyncTaskLoader;
import android.content.Context;
import android.os.RemoteException;
import android.util.Log;
import com.savoirfairelinux.sflphone.account.AccountDetailAdvanced;
import com.savoirfairelinux.sflphone.account.AccountDetailBasic;
import com.savoirfairelinux.sflphone.model.Account;
import com.savoirfairelinux.sflphone.service.ISipService;
public class AccountsLoader extends AsyncTaskLoader<ArrayList<Account>> {
private static final String TAG = AccountsLoader.class.getSimpleName();
ISipService service;
public AccountsLoader(Context context, ISipService ref) {
super(context);
service = ref;
}
@Override
public ArrayList<Account> loadInBackground() {
ArrayList<Account> result = new ArrayList<Account>();
Account.AccountBuilder builder = Account.AccountBuilder.getInstance();
ArrayList<String> accountIDs;
HashMap<String, String> details;
try {
accountIDs = (ArrayList<String>) service.getAccountList();
for (String id : accountIDs) {
if(id.contentEquals("IP2IP")){
continue;
}
details = (HashMap<String, String>) service.getAccountDetails(id);
builder.setAccountID(id).setAlias(details.get(AccountDetailBasic.CONFIG_ACCOUNT_ALIAS))
.setHost(details.get(AccountDetailBasic.CONFIG_ACCOUNT_HOSTNAME))
.setRegisteredState(details.get(AccountDetailAdvanced.CONFIG_ACCOUNT_REGISTRATION_STATUS));
try {
result.add(builder.build());
} catch (Exception e) {
Log.e(TAG, e.toString());
}
}
} catch (RemoteException e) {
Log.e(TAG, e.toString());
}
return result;
}
}