multi account
author"Vincent Veronis"
Sun, 20 Mar 2011 13:05:31 +0100
changeset 878 1860ce45ce09
parent 877 56a04fcdd3fd
child 879 4ab7484af7cb
multi account problem when you want to acces another account, the contact list doenst refresh
AndroidManifest.xml
src/com/beem/project/beem/BeemService.java
src/com/beem/project/beem/service/XmppConnectionAdapter.java
src/com/beem/project/beem/ui/ContactList.java
--- a/AndroidManifest.xml	Sun Mar 20 04:57:15 2011 +0100
+++ b/AndroidManifest.xml	Sun Mar 20 13:05:31 2011 +0100
@@ -91,8 +91,6 @@
 			android:label="Beem Service" android:permission="com.beem.project.beem.BEEM_SERVICE">
 			<intent-filter>
 				<action android:name="com.beem.project.beem.BeemService"></action>
-				<action android:name="android.intent.action.SCREEN_OFF"></action>
-				<action android:name="android.intent.action.SCREEN_ON"></action>
 			</intent-filter>
 		</service>
 	</application>
--- a/src/com/beem/project/beem/BeemService.java	Sun Mar 20 04:57:15 2011 +0100
+++ b/src/com/beem/project/beem/BeemService.java	Sun Mar 20 13:05:31 2011 +0100
@@ -123,8 +123,15 @@
     @Override
     public IBinder onBind(Intent intent) {
 	Log.d(TAG, "ONBIND()");
-	Log.e(TAG, intent.getStringExtra("account_name"));
-	return (IBinder) mBind.get(intent.getStringExtra("account_name"));
+	String accountName = intent.getStringExtra("account_name");
+	Log.e(TAG, accountName);
+	try {
+	    for (XmppConnectionAdapter connection : mConnection.values())
+		connection.connect();
+	} catch (RemoteException e) {
+	    Log.w(TAG, "Error while connecting", e);
+	}
+	return (IBinder) mBind.get(accountName);
     }
 
     @Override
--- a/src/com/beem/project/beem/service/XmppConnectionAdapter.java	Sun Mar 20 04:57:15 2011 +0100
+++ b/src/com/beem/project/beem/service/XmppConnectionAdapter.java	Sun Mar 20 13:05:31 2011 +0100
@@ -43,6 +43,8 @@
 */
 package com.beem.project.beem.service;
 
+import java.util.Iterator;
+
 import org.jivesoftware.smack.ConnectionConfiguration;
 import org.jivesoftware.smack.ConnectionListener;
 import org.jivesoftware.smack.PacketListener;
@@ -67,22 +69,20 @@
 import android.os.RemoteException;
 import android.util.Log;
 
-import java.util.Iterator;
-
+import com.beem.project.beem.BeemApplication;
 import com.beem.project.beem.BeemService;
 import com.beem.project.beem.R;
-import com.beem.project.beem.BeemApplication;
 import com.beem.project.beem.service.aidl.IBeemConnectionListener;
 import com.beem.project.beem.service.aidl.IChatManager;
 import com.beem.project.beem.service.aidl.IRoster;
 import com.beem.project.beem.service.aidl.IXmppConnection;
+import com.beem.project.beem.smack.avatar.AvatarCache;
+import com.beem.project.beem.smack.avatar.AvatarManager;
+import com.beem.project.beem.smack.pep.PepSubManager;
 import com.beem.project.beem.ui.ChangeStatus;
 import com.beem.project.beem.ui.Subscription;
 import com.beem.project.beem.utils.BeemBroadcastReceiver;
 import com.beem.project.beem.utils.Status;
-import com.beem.project.beem.smack.pep.PepSubManager;
-import com.beem.project.beem.smack.avatar.AvatarCache;
-import com.beem.project.beem.smack.avatar.AvatarManager;
 
 /**
  * This class implements an adapter for XMPPConnection.
@@ -234,7 +234,7 @@
 	    };
 
 	    mAdaptee.addPacketListener(mSubscribePacketListener, filter);
-
+	    Log.e(TAG, mLogin + mPassword + mResource);
 	    mAdaptee.login(mLogin, mPassword, mResource);
 	    mChatManager = new BeemChatManager(mAdaptee.getChatManager(), mService);
 	    //nikita: I commented this line because of the logs provided in http://www.beem-project.com/issues/321
--- a/src/com/beem/project/beem/ui/ContactList.java	Sun Mar 20 04:57:15 2011 +0100
+++ b/src/com/beem/project/beem/ui/ContactList.java	Sun Mar 20 13:05:31 2011 +0100
@@ -42,6 +42,8 @@
  */
 package com.beem.project.beem.ui;
 
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
@@ -49,8 +51,6 @@
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
-import java.io.InputStream;
-import java.io.IOException;
 
 import org.jivesoftware.smack.util.StringUtils;
 
@@ -61,6 +61,8 @@
 import android.content.IntentFilter;
 import android.content.ServiceConnection;
 import android.content.SharedPreferences;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.LayerDrawable;
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.Handler;
@@ -77,8 +79,6 @@
 import android.view.ViewGroup;
 import android.view.ViewStub;
 import android.widget.AdapterView;
-import android.widget.AdapterView.AdapterContextMenuInfo;
-import android.widget.AdapterView.OnItemClickListener;
 import android.widget.BaseAdapter;
 import android.widget.Filter;
 import android.widget.Filterable;
@@ -87,8 +87,8 @@
 import android.widget.LinearLayout;
 import android.widget.ListView;
 import android.widget.TextView;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.LayerDrawable;
+import android.widget.AdapterView.AdapterContextMenuInfo;
+import android.widget.AdapterView.OnItemClickListener;
 
 import com.beem.project.beem.R;
 import com.beem.project.beem.providers.AvatarProvider;
@@ -284,8 +284,6 @@
 	mSettings = PreferenceManager.getDefaultSharedPreferences(this);
 	setContentView(R.layout.contactlist);
 
-	mAccountName = getIntent().getStringExtra("account_name");
-
 	this.registerReceiver(mReceiver, new IntentFilter(BeemBroadcastReceiver.BEEM_CONNECTION_CLOSED));
 
 	mInflater = getLayoutInflater();
@@ -305,6 +303,7 @@
 	    Log.e(TAG, "ON RESUME");
 	    Intent i = new Intent(SERVICE_INTENT);
 	    i.putExtras(getIntent());
+	    mAccountName = i.getStringExtra("account_name");
 	    Log.e(TAG, i.getStringExtra("account_name"));
 	    mBinded = bindService(i, mServConn, BIND_AUTO_CREATE);
 	}
@@ -800,8 +799,7 @@
 	    mXmppFacade = IXmppFacade.Stub.asInterface(service);
 	    try {
 		mRoster = mXmppFacade.getRoster();
-		if (mRoster != null) {
-		    Log.e(TAG, "ROSTER");
+		//if (mRoster != null) {
 
 		    List<String> tmpGroupList = mRoster.getGroupsNames();
 		    for (String string : tmpGroupList) {
@@ -823,7 +821,7 @@
 		    mRoster.addRosterListener(mBeemRosterListener);
 		    Log.d(TAG, "add roster listener");
 		    mChatManager = mXmppFacade.getChatManager();
-		}
+		//}
 	    } catch (RemoteException e) {
 		e.printStackTrace();
 	    }
@@ -885,6 +883,7 @@
 	private void makeSortedList(Map<String, List<Contact>> map) {
 	    for (Map.Entry<String, List<Contact>> entry : map.entrySet()) {
 		List<Contact> l = entry.getValue();
+		Log.e(TAG, "SORTED LIST" + entry.getValue());
 		entry.setValue(new SortedList<Contact>(l, mComparator));
 	    }
 	}