Merge branch 'master' of git.savoirfairelinux.com:sflphone-android
diff --git a/src/com/savoirfairelinux/sflphone/client/AccountSelectionDialog.java b/src/com/savoirfairelinux/sflphone/client/AccountSelectionDialog.java
index f2c13c8..32d8a1b 100644
--- a/src/com/savoirfairelinux/sflphone/client/AccountSelectionDialog.java
+++ b/src/com/savoirfairelinux/sflphone/client/AccountSelectionDialog.java
@@ -68,7 +68,8 @@
         // 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 cb2f249..687059e 100644
--- a/src/com/savoirfairelinux/sflphone/client/CallElementList.java
+++ b/src/com/savoirfairelinux/sflphone/client/CallElementList.java
@@ -339,6 +339,7 @@
 
         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 2e870b9..0996cb2 100644
--- a/src/com/savoirfairelinux/sflphone/client/ContactListFragment.java
+++ b/src/com/savoirfairelinux/sflphone/client/ContactListFragment.java
@@ -280,6 +280,7 @@
         // 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 016c049..441f149 100644
--- a/src/com/savoirfairelinux/sflphone/utils/AccountList.java
+++ b/src/com/savoirfairelinux/sflphone/utils/AccountList.java
@@ -66,6 +66,14 @@
         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 @@
 
             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 289c0a6..c6ec217 100644
--- a/src/com/savoirfairelinux/sflphone/utils/AccountManagementUI.java
+++ b/src/com/savoirfairelinux/sflphone/utils/AccountManagementUI.java
@@ -32,8 +32,16 @@
 
 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 1049ed8..2ba03de 100644
--- a/src/com/savoirfairelinux/sflphone/utils/AccountSelectionButton.java
+++ b/src/com/savoirfairelinux/sflphone/utils/AccountSelectionButton.java
@@ -48,6 +48,7 @@
     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 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;