--- a/src/com/beem/project/beem/BeemApplication.java Mon Apr 06 21:52:03 2009 +0200
+++ b/src/com/beem/project/beem/BeemApplication.java Tue Apr 07 01:18:19 2009 +0200
@@ -68,12 +68,6 @@
// TODO Auto-generated catch block
e.printStackTrace();
}
- synchronized (mQueue) {
- for (Message msg : mQueue) {
- msg.sendToTarget();
- }
- mQueue.clear();
- }
}
};
@@ -81,7 +75,7 @@
* Constructor.
*/
public BeemApplication() {
- // TODO Auto-generated constructor stub
+ mIsConnected = false;
}
/**
@@ -135,13 +129,13 @@
}
/**
- * Add a methode to execute when the application is connected to the Beem service.
+ * Add a methode to execute when the application is connected to the server.
* @param target the handler which will execute the callback
* @param callback the callback to execute
*/
- public void callWhenServiceConnected(Handler target, Runnable callback) {
+ public void callWhenConnectedToServer(Handler target, Runnable callback) {
Message msg = Message.obtain(target, callback);
- if (!mIsConnected) {
+ if (mIsConnected) {
msg.sendToTarget();
} else {
startBeemService();
@@ -198,6 +192,12 @@
// TODO Auto-generated method stub
mProgressDialog.dismiss();
mFacade.changeStatus();
+ synchronized (mQueue) {
+ for (Message msg : mQueue) {
+ msg.sendToTarget();
+ }
+ mQueue.clear();
+ }
}
/**
--- a/src/com/beem/project/beem/service/XmppConnectionAdapter.java Mon Apr 06 21:52:03 2009 +0200
+++ b/src/com/beem/project/beem/service/XmppConnectionAdapter.java Tue Apr 07 01:18:19 2009 +0200
@@ -73,20 +73,20 @@
*/
@Override
public boolean connectSync() throws RemoteException {
- try {
- mAdaptee.connect();
- mAdaptee.addConnectionListener(mConListener);
- mAdaptee.login(mLogin, mPassword, "BEEM");
- mChatManager = new BeemChatManager(mAdaptee.getChatManager());
- // TODO find why this cause a null pointer exception
- // this.initFeatures(); // pour declarer les features xmpp qu'on supporte
- mLastException = null;
- triggerAsynchronousConnectEvent();
- return true;
- } catch (XMPPException e) {
- mLastException = new BeemException(e);
- }
- return false;
+ try {
+ mAdaptee.connect();
+ mAdaptee.addConnectionListener(mConListener);
+ mAdaptee.login(mLogin, mPassword, "BEEM");
+ mChatManager = new BeemChatManager(mAdaptee.getChatManager());
+ // TODO find why this cause a null pointer exception
+ // this.initFeatures(); // pour declarer les features xmpp qu'on supporte
+ mLastException = null;
+ triggerAsynchronousConnectEvent();
+ return true;
+ } catch (XMPPException e) {
+ mLastException = new BeemException(e);
+ }
+ return false;
}
/**
@@ -106,10 +106,10 @@
public IRoster getRoster() throws RemoteException {
if (mRoster != null)
return mRoster;
- Roster adap = mAdaptee.getRoster();
- if (adap == null)
- return null;
- mRoster = new RosterAdapter(adap);
+ Roster adap = mAdaptee.getRoster();
+ if (adap == null)
+ return null;
+ mRoster = new RosterAdapter(adap);
return mRoster;
}
@@ -213,6 +213,7 @@
*/
@Override
public void connectionClosed() {
+ mRoster = null;
final int n = mRemoteConnListeners.beginBroadcast();
for (int i = 0; i < n; i++) {
@@ -233,6 +234,7 @@
*/
@Override
public void connectionClosedOnError(Exception arg0) {
+ mRoster = null;
final int n = mRemoteConnListeners.beginBroadcast();
for (int i = 0; i < n; i++) {
--- a/src/com/beem/project/beem/ui/ContactList.java Mon Apr 06 21:52:03 2009 +0200
+++ b/src/com/beem/project/beem/ui/ContactList.java Tue Apr 07 01:18:19 2009 +0200
@@ -88,7 +88,7 @@
protected void onStart() {
super.onStart();
Log.i(TAG, "onStart");
- //mBeemApplication.startBeemService();
+ mBeemApplication.startBeemService();
}
@Override
@@ -98,12 +98,8 @@
* @TODO: A ameliorer apres listener de nikita
*/
Log.i(TAG, "onResume");
- if (!mBeemApplication.isConnected())
- mBeemApplication.startBeemService();
- else {
- callbackShowContactList();
- }
- mBeemApplication.callWhenServiceConnected(mHandler, new Runnable() {
+ mBeemApplication.startBeemService();
+ mBeemApplication.callWhenConnectedToServer(mHandler, new Runnable() {
@Override
public void run() {
callbackShowContactList();