# HG changeset patch # User Da Risk # Date 1239059899 -7200 # Node ID 144e837ee4a60ad068b63690da240c21dc3545a6 # Parent b2500e2392f7268552304ec98de891d8c5a4f3b9 fix some synchronisation problem with the server diff -r b2500e2392f7 -r 144e837ee4a6 src/com/beem/project/beem/BeemApplication.java --- 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(); + } } /** diff -r b2500e2392f7 -r 144e837ee4a6 src/com/beem/project/beem/service/XmppConnectionAdapter.java --- 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++) { diff -r b2500e2392f7 -r 144e837ee4a6 src/com/beem/project/beem/ui/ContactList.java --- 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();