blob: 9b9bad308634896e0ed9e47dea7b17fceab8047a [file] [log] [blame]
alisiona4325152013-04-19 11:10:03 -04001package com.savoirfairelinux.sflphone.adapters;
2
3import java.util.ArrayList;
alisiona4325152013-04-19 11:10:03 -04004
alisiona4325152013-04-19 11:10:03 -04005import android.content.Context;
alisiona4325152013-04-19 11:10:03 -04006import android.view.LayoutInflater;
7import android.view.View;
8import android.view.ViewGroup;
9import android.widget.BaseAdapter;
10import android.widget.RadioButton;
11import android.widget.TextView;
12
13import com.savoirfairelinux.sflphone.R;
alision11e8e162013-05-28 10:33:14 -040014import com.savoirfairelinux.sflphone.model.Account;
alisiona4325152013-04-19 11:10:03 -040015import com.savoirfairelinux.sflphone.service.ISipService;
16
17public class AccountSelectionAdapter extends BaseAdapter {
18
19 private static final String TAG = AccountSelectionAdapter.class.getSimpleName();
20
alision11e8e162013-05-28 10:33:14 -040021 ArrayList<Account> accounts;
alisiona4325152013-04-19 11:10:03 -040022 Context mContext;
alisiona4325152013-04-19 11:10:03 -040023 ISipService service;
24 int selectedAccount = 0;
25
alision11e8e162013-05-28 10:33:14 -040026 public AccountSelectionAdapter(Context cont, ISipService s, ArrayList<Account> newList) {
alisiona4325152013-04-19 11:10:03 -040027 super();
alision11e8e162013-05-28 10:33:14 -040028 accounts = newList;
alisiona4325152013-04-19 11:10:03 -040029 mContext = cont;
30 service = s;
alisiona4325152013-04-19 11:10:03 -040031 }
32
33 @Override
34 public int getCount() {
alision11e8e162013-05-28 10:33:14 -040035 return accounts.size();
alisiona4325152013-04-19 11:10:03 -040036 }
37
38 @Override
alision11e8e162013-05-28 10:33:14 -040039 public Account getItem(int pos) {
40 return accounts.get(pos);
alisiona4325152013-04-19 11:10:03 -040041 }
42
43 @Override
44 public long getItemId(int pos) {
45 return 0;
46 }
47
48 @Override
49 public View getView(int pos, View convertView, ViewGroup parent) {
50 View rowView = convertView;
51 AccountView entryView = null;
52
53 if (rowView == null) {
54 LayoutInflater inflater = LayoutInflater.from(mContext);
55 rowView = inflater.inflate(R.layout.item_account, null);
56
57 entryView = new AccountView();
58 entryView.alias = (TextView) rowView.findViewById(R.id.account_alias);
59 entryView.host = (TextView) rowView.findViewById(R.id.account_host);
60 entryView.select = (RadioButton) rowView.findViewById(R.id.account_checked);
61 rowView.setTag(entryView);
62 } else {
63 entryView = (AccountView) rowView.getTag();
64 }
65
alision11e8e162013-05-28 10:33:14 -040066 entryView.alias.setText(accounts.get(pos).getAlias());
67 entryView.host.setText(accounts.get(pos).getHost() + " - " + accounts.get(pos).getRegistered_state());
68 // accManager.displayAccountDetails(accounts.get(pos), entryView);
69 if (pos == selectedAccount) {
alisiona4325152013-04-19 11:10:03 -040070 entryView.select.setChecked(true);
71 }
72
73 return rowView;
74 }
75
76 /*********************
77 * ViewHolder Pattern
78 *********************/
79 public class AccountView {
80 public TextView alias;
81 public TextView host;
82 public RadioButton select;
83 }
84
alisionfde875f2013-05-28 17:01:54 -040085
alisiona4325152013-04-19 11:10:03 -040086 public void setSelectedAccount(int pos) {
alision11e8e162013-05-28 10:33:14 -040087 selectedAccount = pos;
alisiona4325152013-04-19 11:10:03 -040088 }
89
alision11e8e162013-05-28 10:33:14 -040090 public Account getSelectedAccount() {
91 return accounts.get(selectedAccount);
92 }
93
94 public void removeAll() {
95 accounts.clear();
96 notifyDataSetChanged();
97
98 }
99
100 public void addAll(ArrayList<Account> results) {
101 accounts.addAll(results);
102 notifyDataSetChanged();
alision371b77e2013-04-23 14:51:26 -0400103 }
104
alisiona4325152013-04-19 11:10:03 -0400105}