From af0f3c684c2d865e08bc92f4d714241a0c80437c Mon Sep 17 00:00:00 2001 From: Alexandre Savard <alexandre.savard@savoirfairelinux.com> Date: Thu, 1 Nov 2012 18:35:56 -0400 Subject: [PATCH] #17195: Propagate account selection to other AccountManagementUI --- .../sflphone/client/AccountSelectionDialog.java | 3 ++- .../sflphone/client/CallElementList.java | 1 + .../sflphone/client/ContactListFragment.java | 1 + .../sflphone/utils/AccountList.java | 11 ++++++++--- .../sflphone/utils/AccountManagementUI.java | 8 ++++++++ .../sflphone/utils/AccountSelectionButton.java | 15 +++++++++++++++ 6 files changed, 35 insertions(+), 4 deletions(-) diff --git a/src/com/savoirfairelinux/sflphone/client/AccountSelectionDialog.java b/src/com/savoirfairelinux/sflphone/client/AccountSelectionDialog.java index f2c13c85b..32d8a1b86 100644 --- a/src/com/savoirfairelinux/sflphone/client/AccountSelectionDialog.java +++ b/src/com/savoirfairelinux/sflphone/client/AccountSelectionDialog.java @@ -68,7 +68,8 @@ public class AccountSelectionDialog extends AlertDialog // public void onClick(DialogInterface dialog, int which) { public void onItemClick (AdapterView<?> parent, View view, int position, long id) { Log.i(TAG, "Selected Account: " + ((TextView)view).getText()); - mButton.setText(((TextView)view).getText()); + // mButton.setText(((TextView)view).getText()); + mButton.accountSelectedNotifyAccountList(((TextView)view).getText().toString()); } }; diff --git a/src/com/savoirfairelinux/sflphone/client/CallElementList.java b/src/com/savoirfairelinux/sflphone/client/CallElementList.java index cb2f24979..687059e5c 100644 --- a/src/com/savoirfairelinux/sflphone/client/CallElementList.java +++ b/src/com/savoirfairelinux/sflphone/client/CallElementList.java @@ -339,6 +339,7 @@ public class CallElementList extends ListFragment implements LoaderManager.Loade mAccountSelectionButton = (AccountSelectionButton) inflatedView.findViewById(R.id.account_selection_button); mAccountList.addManagementUI(mAccountSelectionButton); + mAccountSelectionButton.setAccountList(mAccountList); return inflatedView; } diff --git a/src/com/savoirfairelinux/sflphone/client/ContactListFragment.java b/src/com/savoirfairelinux/sflphone/client/ContactListFragment.java index 2e870b969..0996cb24c 100644 --- a/src/com/savoirfairelinux/sflphone/client/ContactListFragment.java +++ b/src/com/savoirfairelinux/sflphone/client/ContactListFragment.java @@ -280,6 +280,7 @@ public class ContactListFragment extends ListFragment implements OnQueryTextList // Button accountSelectionButton = (Button) inflatedView.findViewById(R.id.account_selection_button); mAccountSelectionButton = (AccountSelectionButton) inflatedView.findViewById(R.id.account_selection_button); mAccountList.addManagementUI(mAccountSelectionButton); + mAccountSelectionButton.setAccountList(mAccountList); return inflatedView; } diff --git a/src/com/savoirfairelinux/sflphone/utils/AccountList.java b/src/com/savoirfairelinux/sflphone/utils/AccountList.java index 016c049c0..441f149a2 100644 --- a/src/com/savoirfairelinux/sflphone/utils/AccountList.java +++ b/src/com/savoirfairelinux/sflphone/utils/AccountList.java @@ -66,6 +66,14 @@ public class AccountList extends BroadcastReceiver mUserInterfaceList.add(ui); } + public void accountSelected(String accountID, AccountManagementUI userInterface) { + if(!mUserInterfaceList.isEmpty()) { + for(AccountManagementUI ui : mUserInterfaceList) { + ui.setSelectedAccount(accountID); + } + } + } + @Override public void onReceive(Context context, Intent intent) { @@ -106,12 +114,9 @@ public class AccountList extends BroadcastReceiver if(newList.size() > mList.size()) { for(AccountManagementUI ui : mUserInterfaceList) { - Log.i(TAG, "UPDATE UI"); ui.accountAdded(newList); } } - } else { - Log.i(TAG, "UI LIST IS EMPTY"); } mList = newList; diff --git a/src/com/savoirfairelinux/sflphone/utils/AccountManagementUI.java b/src/com/savoirfairelinux/sflphone/utils/AccountManagementUI.java index 289c0a65e..c6ec2179b 100644 --- a/src/com/savoirfairelinux/sflphone/utils/AccountManagementUI.java +++ b/src/com/savoirfairelinux/sflphone/utils/AccountManagementUI.java @@ -32,8 +32,16 @@ package com.savoirfairelinux.sflphone.utils; import java.util.ArrayList; +import com.savoirfairelinux.sflphone.utils.AccountList; + public interface AccountManagementUI { + public void setAccountList(AccountList accountList); + + public void accountSelectedNotifyAccountList(String accountID); + + public void setSelectedAccount(String accountID); + public void accountAdded(ArrayList<String> newList); public void accountRemoved(); diff --git a/src/com/savoirfairelinux/sflphone/utils/AccountSelectionButton.java b/src/com/savoirfairelinux/sflphone/utils/AccountSelectionButton.java index 1049ed81e..2ba03dea0 100644 --- a/src/com/savoirfairelinux/sflphone/utils/AccountSelectionButton.java +++ b/src/com/savoirfairelinux/sflphone/utils/AccountSelectionButton.java @@ -48,6 +48,7 @@ public class AccountSelectionButton extends Button implements AccountManagementU private ISipService mService; private Context mContext; private ArrayList<String> mList = new ArrayList<String>(); + private AccountList mAccountList = null; public AccountSelectionButton(Context context) { super(context); @@ -78,6 +79,20 @@ public class AccountSelectionButton extends Button implements AccountManagementU }); } + public void setAccountList(AccountList accountList) { + mAccountList = accountList; + } + + public void accountSelectedNotifyAccountList(String accountID) { + if(mAccountList != null) { + mAccountList.accountSelected(accountID, this); + } + } + + public void setSelectedAccount(String accountID) { + setText(accountID); + } + public void accountAdded(ArrayList<String> newList) { Log.i(TAG, "Account added"); mList = newList; -- GitLab