From 5ea84ae5f64f4d8591bee4c29d1c1f0cd15dc67b Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandre.savard@savoirfairelinux.com>
Date: Wed, 31 Oct 2012 16:41:44 -0400
Subject: [PATCH] #17159: Update AccountSelectionButton on dialog selection

---
 .../sflphone/client/AccountSelectionDialog.java    |  7 ++++++-
 .../sflphone/client/ContactListFragment.java       | 14 +-------------
 .../sflphone/utils/AccountSelectionButton.java     |  3 ++-
 3 files changed, 9 insertions(+), 15 deletions(-)

diff --git a/src/com/savoirfairelinux/sflphone/client/AccountSelectionDialog.java b/src/com/savoirfairelinux/sflphone/client/AccountSelectionDialog.java
index 838c352a7..f2c13c85b 100644
--- a/src/com/savoirfairelinux/sflphone/client/AccountSelectionDialog.java
+++ b/src/com/savoirfairelinux/sflphone/client/AccountSelectionDialog.java
@@ -44,6 +44,8 @@ import android.widget.TextView;
 
 import java.util.ArrayList;
 
+import com.savoirfairelinux.sflphone.utils.AccountSelectionButton;
+
 public class AccountSelectionDialog extends AlertDialog
 {
     private static final String TAG = "AccountSelectionDialog";
@@ -51,12 +53,14 @@ public class AccountSelectionDialog extends AlertDialog
     ListView mListView;
     ArrayAdapter mListAdapter;
     ArrayList<String> mItems;
+    AccountSelectionButton mButton;
 
-    public AccountSelectionDialog(Context context, ArrayList<String> items)
+    public AccountSelectionDialog(Context context, ArrayList<String> items, AccountSelectionButton b)
     {
         super(context);
         mContext = context;
         mItems = items;
+        mButton = b;
     } 
 
     private AdapterView.OnItemClickListener onClick = new AdapterView.OnItemClickListener() 
@@ -64,6 +68,7 @@ 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());
         }
     };
 
diff --git a/src/com/savoirfairelinux/sflphone/client/ContactListFragment.java b/src/com/savoirfairelinux/sflphone/client/ContactListFragment.java
index b3e57ec53..d705ccb2e 100644
--- a/src/com/savoirfairelinux/sflphone/client/ContactListFragment.java
+++ b/src/com/savoirfairelinux/sflphone/client/ContactListFragment.java
@@ -269,19 +269,7 @@ public class ContactListFragment extends ListFragment implements OnQueryTextList
     {
         View inflatedView = inflater.inflate(R.layout.call_element_list, container, false);
 
-        Button accountSelectionButton = (Button) inflatedView.findViewById(R.id.account_selection_button);
-        accountSelectionButton.setOnClickListener(new View.OnClickListener() {
-            public void onClick(View v) {
-                try {
-                    ArrayList<String> list = (ArrayList<String>)service.getAccountList();
-                    AccountSelectionDialog accountSelectionDialog = new AccountSelectionDialog(getActivity(), list);
-                    accountSelectionDialog.show();
-                }
-                catch (RemoteException e) {
-                    Log.e(TAG, "Remote exception", e);
-                }
-            }
-        });
+        // Button accountSelectionButton = (Button) inflatedView.findViewById(R.id.account_selection_button);
 
         return inflatedView;
     }
diff --git a/src/com/savoirfairelinux/sflphone/utils/AccountSelectionButton.java b/src/com/savoirfairelinux/sflphone/utils/AccountSelectionButton.java
index 782853dd1..69a074191 100644
--- a/src/com/savoirfairelinux/sflphone/utils/AccountSelectionButton.java
+++ b/src/com/savoirfairelinux/sflphone/utils/AccountSelectionButton.java
@@ -63,12 +63,13 @@ public class AccountSelectionButton extends Button
     public void setSipService(ISipService service, Context context) {
         mService = service;
         mContext = context;
+        final AccountSelectionButton b = this;
 
         setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {
                 try {
                     ArrayList<String> list = (ArrayList<String>)mService.getAccountList();
-                    AccountSelectionDialog accountSelectionDialog = new AccountSelectionDialog(mContext, list);
+                    AccountSelectionDialog accountSelectionDialog = new AccountSelectionDialog(mContext, list, b);
                     accountSelectionDialog.show();
                 }
                 catch (RemoteException e) {
-- 
GitLab