#17195: Add AccountList class to manage account list and propagate account status
diff --git a/src/com/savoirfairelinux/sflphone/client/CallElementList.java b/src/com/savoirfairelinux/sflphone/client/CallElementList.java
index e36882b..cb2f249 100644
--- a/src/com/savoirfairelinux/sflphone/client/CallElementList.java
+++ b/src/com/savoirfairelinux/sflphone/client/CallElementList.java
@@ -68,6 +68,7 @@
import com.savoirfairelinux.sflphone.R;
import com.savoirfairelinux.sflphone.service.ISipService;
import com.savoirfairelinux.sflphone.utils.AccountSelectionButton;
+import com.savoirfairelinux.sflphone.utils.AccountList;
/**
* Main list of Call Elements.
@@ -83,6 +84,7 @@
private SFLPhoneHome sflphoneHome;
private ISipService service;
private AccountSelectionButton mAccountSelectionButton;
+ private AccountList mAccountList;
static final String[] CONTACTS_SUMMARY_PROJECTION = new String[] { Contacts._ID, Contacts.DISPLAY_NAME,
Contacts.PHOTO_ID, Contacts.LOOKUP_KEY };
@@ -246,7 +248,10 @@
public void setService(ISipService s)
{
service = s;
- mAccountSelectionButton.setSipService(service, (Context)getActivity());
+ }
+
+ public void setAccountList(AccountList accountList) {
+ mAccountList = accountList;
}
public void addCall(SipCall c)
@@ -333,6 +338,7 @@
View inflatedView = inflater.inflate(R.layout.call_element_list, container, false);
mAccountSelectionButton = (AccountSelectionButton) inflatedView.findViewById(R.id.account_selection_button);
+ mAccountList.addManagementUI(mAccountSelectionButton);
return inflatedView;
}
diff --git a/src/com/savoirfairelinux/sflphone/client/ContactListFragment.java b/src/com/savoirfairelinux/sflphone/client/ContactListFragment.java
index d705ccb..2e870b9 100644
--- a/src/com/savoirfairelinux/sflphone/client/ContactListFragment.java
+++ b/src/com/savoirfairelinux/sflphone/client/ContactListFragment.java
@@ -78,6 +78,8 @@
import com.savoirfairelinux.sflphone.R;
import com.savoirfairelinux.sflphone.service.ISipService;
+import com.savoirfairelinux.sflphone.utils.AccountList;
+import com.savoirfairelinux.sflphone.utils.AccountSelectionButton;
public class ContactListFragment extends ListFragment implements OnQueryTextListener, LoaderManager.LoaderCallbacks<Cursor>
{
@@ -86,6 +88,8 @@
Context mContext;
String mCurFilter;
private ISipService service;
+ private AccountSelectionButton mAccountSelectionButton;
+ private AccountList mAccountList;
// These are the Contacts rows that we will retrieve.
static final String[] CONTACTS_SUMMARY_PROJECTION = new String[] { Contacts._ID, Contacts.DISPLAY_NAME,
@@ -192,6 +196,10 @@
service = s;
}
+ public void setAccountList(AccountList accountList) {
+ mAccountList = accountList;
+ }
+
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
@@ -270,6 +278,8 @@
View inflatedView = inflater.inflate(R.layout.call_element_list, container, false);
// Button accountSelectionButton = (Button) inflatedView.findViewById(R.id.account_selection_button);
+ mAccountSelectionButton = (AccountSelectionButton) inflatedView.findViewById(R.id.account_selection_button);
+ mAccountList.addManagementUI(mAccountSelectionButton);
return inflatedView;
}
diff --git a/src/com/savoirfairelinux/sflphone/client/SFLPhoneHome.java b/src/com/savoirfairelinux/sflphone/client/SFLPhoneHome.java
index a3ead4b..8de08a2 100644
--- a/src/com/savoirfairelinux/sflphone/client/SFLPhoneHome.java
+++ b/src/com/savoirfairelinux/sflphone/client/SFLPhoneHome.java
@@ -72,6 +72,7 @@
import com.savoirfairelinux.sflphone.service.SipService;
import com.savoirfairelinux.sflphone.utils.AccountList;
import com.savoirfairelinux.sflphone.utils.CallList;
+import com.savoirfairelinux.sflphone.utils.AccountList;
import java.util.HashMap;
@@ -177,6 +178,9 @@
LocalBroadcastManager.getInstance(this).registerReceiver(mCallList, new IntentFilter("call-state-changed"));
LocalBroadcastManager.getInstance(this).registerReceiver(mCallList, new IntentFilter("incoming-call"));
+ LocalBroadcastManager.getInstance(this).registerReceiver(mAccountList, new IntentFilter("accounts-changed"));
+ LocalBroadcastManager.getInstance(this).registerReceiver(mAccountList, new IntentFilter("account-state-changed"));
+
SipCall.setSFLPhoneHomeContext(this);
}
@@ -236,6 +240,7 @@
mBound = true;
mContactListFragment.setService(service);
mCallElementList.setService(service);
+ mAccountList.setSipService(service);
Log.d(TAG, "Service connected");
}
@@ -357,11 +362,13 @@
switch (i) {
case 0:
mContactListFragment = new ContactListFragment(service);
+ mContactListFragment.setAccountList(mAccountList);
fragment = mContactListFragment;
break;
case 1:
mCallElementList = new CallElementList(service, mHome);
SipCall.setCallElementList(mCallElementList);
+ mCallElementList.setAccountList(mAccountList);
fragment = mCallElementList;
break;
case 2: