Added custom adapter for AccountSelectionSpinner and async details loading
diff --git a/src/com/savoirfairelinux/sflphone/account/AccountSelectionSpinner.java b/src/com/savoirfairelinux/sflphone/account/AccountSelectionSpinner.java
index 9642fdf..f0f63cc 100644
--- a/src/com/savoirfairelinux/sflphone/account/AccountSelectionSpinner.java
+++ b/src/com/savoirfairelinux/sflphone/account/AccountSelectionSpinner.java
@@ -32,23 +32,26 @@
import java.util.ArrayList;
-import com.savoirfairelinux.sflphone.client.receiver.AccountListReceiver;
-
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
+import android.widget.RadioButton;
import android.widget.Spinner;
-import android.widget.TextView;
+
+import com.savoirfairelinux.sflphone.R;
+import com.savoirfairelinux.sflphone.adapters.AccountSelectionAdapter;
+import com.savoirfairelinux.sflphone.client.receiver.AccountListReceiver;
+import com.savoirfairelinux.sflphone.service.ISipService;
public class AccountSelectionSpinner extends Spinner implements AccountManagementUI {
- private static final String TAG = "AccountSelectionButton";
+ private static final String TAG = AccountSelectionSpinner.class.getSimpleName();
+ public static final String DEFAULT_ACCOUNT_ID = "IP2IP";
private Context mContext;
- private ArrayList<String> mList = new ArrayList<String>();
private AccountListReceiver mAccountList = null;
- ArrayAdapter mListAdapter;
+ AccountSelectionAdapter mAdapter;
+ ISipService serviceRef;
public AccountSelectionSpinner(Context context) {
super(context);
@@ -60,27 +63,26 @@
super(context, attrs);
mContext = context;
-
}
public AccountSelectionSpinner(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
mContext = context;
- mListAdapter = new ArrayAdapter(mContext, android.R.layout.simple_expandable_list_item_1, mList.toArray());
- setOnItemSelectedListener(onClick);
- setAdapter(mListAdapter);
}
private AdapterView.OnItemSelectedListener onClick = new AdapterView.OnItemSelectedListener() {
@Override
- public void onItemSelected(AdapterView<?> arg0, View view, int arg2, long arg3) {
+ public void onItemSelected(AdapterView<?> arg0, View view, int pos, long arg3) {
// public void onClick(DialogInterface dialog, int which) {
- Log.i(TAG, "Selected Account: " + ((TextView) view).getText());
- // mButton.setText(((TextView)view).getText());
- accountSelectedNotifyAccountList(((TextView) view).getText().toString());
+ Log.i(TAG, "Selected Account: " + mAdapter.getItem(pos));
+ if (null != view) {
+ ((RadioButton) view.findViewById(R.id.account_checked)).toggle();
+ }
+ mAdapter.setSelectedAccount(pos);
+ accountSelectedNotifyAccountList(mAdapter.getItem(pos));
// setSelection(cursor.getPosition(),true);
}
@@ -93,16 +95,23 @@
};
+ public void populate(ISipService service, ArrayList<String> accountList) {
+ Log.i(TAG, "populate");
+ serviceRef = service;
+ mAdapter = new AccountSelectionAdapter(mContext, serviceRef, accountList);
+ setOnItemSelectedListener(onClick);
+ setAdapter(mAdapter);
+ }
/****************************************
* AccountManagementUI Interface
****************************************/
-
+
@Override
public void setAccountList(AccountListReceiver accountList) {
- Log.i(TAG,"setAccountList");
+ Log.i(TAG, "setAccountList");
mAccountList = accountList;
-
+
}
@Override
@@ -115,16 +124,15 @@
@Override
public void setSelectedAccount(String accountID) {
- Log.i(TAG,"Account Selected");
+ Log.i(TAG, "Account Selected");
// setText(accountID);
}
@Override
public void accountAdded(ArrayList<String> newList) {
- mListAdapter = new ArrayAdapter(mContext, android.R.layout.simple_expandable_list_item_1, newList.toArray());
-
+ mAdapter = new AccountSelectionAdapter(mContext, serviceRef, newList);
setOnItemSelectedListener(onClick);
- setAdapter(mListAdapter);
+ setAdapter(mAdapter);
// Log.i(TAG, "Account added");
// mList = newList;
//
@@ -135,11 +143,12 @@
@Override
public void accountRemoved() {
- Log.i(TAG,"Account Removed");
+ Log.i(TAG, "Account Removed");
}
@Override
public void accountUpdated() {
- Log.i(TAG,"Account Updated");
+ Log.i(TAG, "Account Updated");
}
+
}