GRos bug de la mort qui tue dans smack ...
Ma fois cest un probleme imaginaire alors je commit
--- 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<String> mGroup = new ArrayList<String>();
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);
}
}
--- 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();
--- 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();