# HG changeset patch # User Marseille # Date 1246828940 -7200 # Node ID 4dbd2caf2a6e49b54d99b5498158cecfb02bf245 # Parent 13ec0e7745242941195b7f0765319139729293a9 GRos bug de la mort qui tue dans smack ... Ma fois cest un probleme imaginaire alors je commit diff -r 13ec0e774524 -r 4dbd2caf2a6e src/com/beem/project/beem/ui/AddContact.java --- a/src/com/beem/project/beem/ui/AddContact.java Sun Jul 05 21:45:02 2009 +0200 +++ b/src/com/beem/project/beem/ui/AddContact.java Sun Jul 05 23:22:20 2009 +0200 @@ -14,6 +14,7 @@ import android.os.Bundle; import android.os.IBinder; import android.os.RemoteException; +import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; @@ -30,8 +31,6 @@ public class AddContact extends Activity { protected static final String TAG = "AddContact"; - private String mLogin; - private String mAlias; private final List mGroup = new ArrayList(); private IXmppFacade xmppFacade; private final ServiceConnection mServConn = new BeemServiceConnection(); @@ -73,40 +72,39 @@ @Override public void onClick(View v) { - boolean valid = true; - mLogin = getWidgetText(R.id.addc_login); - boolean isEmail = Pattern.matches("[a-zA-Z0-9._%+-]+@(?:[a-zA-Z0-9-]+.)+[a-zA-Z]{2,4}", mLogin); + String login; + login = getWidgetText(R.id.addc_login); + if (login.length() == 0) { + Toast.makeText(AddContact.this, getString(R.string.AddCBadForm), Toast.LENGTH_SHORT).show(); + return; + } + boolean isEmail = Pattern.matches("[a-zA-Z0-9._%+-]+@(?:[a-zA-Z0-9-]+.)+[a-zA-Z]{2,4}", login); if (!isEmail) { Toast.makeText(AddContact.this, getString(R.string.AddCContactAddedLoginError), Toast.LENGTH_SHORT) .show(); return; } - mAlias = getWidgetText(R.id.addc_alias); - if (mLogin.length() == 0) - valid = false; + String alias; + alias = getWidgetText(R.id.addc_alias); if (getWidgetText(R.id.addc_group).length() != 0) mGroup.add(getWidgetText(R.id.addc_group)); - if (valid) { - try { - if (xmppFacade.getRoster().getContact(mLogin) != null) - mGroup.addAll(xmppFacade.getRoster().getContact(mLogin).getGroups()); - if (xmppFacade.getRoster().addContact(mLogin, mAlias, mGroup.toArray(new String[mGroup.size()])) == null) { + try { + if (xmppFacade != null) { + if (xmppFacade.getRoster().getContact(login) != null) + mGroup.addAll(xmppFacade.getRoster().getContact(login).getGroups()); + if (xmppFacade.getRoster().addContact(login, alias, mGroup.toArray(new String[mGroup.size()])) == null) { Toast.makeText(AddContact.this, getString(R.string.AddCContactAddedError), Toast.LENGTH_SHORT) .show(); return; } else { Toast.makeText(AddContact.this, getString(R.string.AddCContactAdded), Toast.LENGTH_SHORT) .show(); + finish(); } - finish(); - } catch (RemoteException e) { - Toast.makeText(AddContact.this, e.getMessage(), Toast.LENGTH_SHORT).show(); - e.printStackTrace(); } - setResult(RESULT_OK); - } else { - Toast.makeText(AddContact.this, getString(R.string.AddCBadForm), Toast.LENGTH_SHORT).show(); - setResult(RESULT_CANCELED); + } catch (RemoteException e) { + Toast.makeText(AddContact.this, e.getMessage(), Toast.LENGTH_SHORT).show(); + Log.e(TAG, "Problem adding contact", e); } } diff -r 13ec0e774524 -r 4dbd2caf2a6e src/com/beem/project/beem/ui/ContactList.java --- a/src/com/beem/project/beem/ui/ContactList.java Sun Jul 05 21:45:02 2009 +0200 +++ b/src/com/beem/project/beem/ui/ContactList.java Sun Jul 05 23:22:20 2009 +0200 @@ -115,6 +115,7 @@ @Override protected void onStop() { + Log.e(TAG, "UNBINSERVICE"); super.onStop(); unbindService(mServConn); groupName.clear(); diff -r 13ec0e774524 -r 4dbd2caf2a6e src/com/beem/project/beem/ui/Login.java --- a/src/com/beem/project/beem/ui/Login.java Sun Jul 05 21:45:02 2009 +0200 +++ b/src/com/beem/project/beem/ui/Login.java Sun Jul 05 23:22:20 2009 +0200 @@ -138,19 +138,28 @@ @Override public void connectionClosed() throws RemoteException { Log.e("Login", "CONNECTIONCLOSED"); + mIsConnected = false; + if (xmppFacade != null) { + Login.this.unbindService(mServConn); + Login.this.stopService(SERVICE_INTENT); + xmppFacade = null; + } } @Override public void connectionClosedOnError() throws RemoteException { Log.e("Login", "CONNECTIONCLOSEONERROR"); + } @Override public void connectionFailed(String errorMsg) throws RemoteException { + Log.e("Login", "CONNECTIONFAILLED"); mIsConnected = false; if (xmppFacade != null) { Login.this.unbindService(mServConn); Login.this.stopService(SERVICE_INTENT); + xmppFacade = null; } connectionHandler.post(new ErrorRunnable(errorMsg)); dismissProgressDialog();