ajout de la gestion du resend de la subscription request
authornikita@nikita-lab
Fri, 22 May 2009 16:45:49 +0200
changeset 207 dbc0c467c3e6
parent 206 e707f2adc40a
child 208 6be326cfb621
ajout de la gestion du resend de la subscription request
src/com/beem/project/beem/service/RosterAdapter.java
src/com/beem/project/beem/service/XmppConnectionAdapter.java
src/com/beem/project/beem/ui/AddContact.java
src/com/beem/project/beem/ui/ContactDialog.java
src/com/beem/project/beem/ui/ContactList.java
--- a/src/com/beem/project/beem/service/RosterAdapter.java	Fri May 22 15:55:08 2009 +0200
+++ b/src/com/beem/project/beem/service/RosterAdapter.java	Fri May 22 16:45:49 2009 +0200
@@ -80,7 +80,7 @@
 	    Log.e(TAG, "Error while adding new contact", e);
 	    return null;
 	}
-    }
+    }    
 
     /**
      * {@inheritDoc}
--- a/src/com/beem/project/beem/service/XmppConnectionAdapter.java	Fri May 22 15:55:08 2009 +0200
+++ b/src/com/beem/project/beem/service/XmppConnectionAdapter.java	Fri May 22 16:45:49 2009 +0200
@@ -8,6 +8,7 @@
 import org.jivesoftware.smack.Roster;
 import org.jivesoftware.smack.XMPPConnection;
 import org.jivesoftware.smack.XMPPException;
+import org.jivesoftware.smack.packet.Presence;
 import org.jivesoftware.smackx.ChatStateManager;
 import org.jivesoftware.smackx.ServiceDiscoveryManager;
 import org.jivesoftware.smackx.jingle.JingleManager;
@@ -137,7 +138,7 @@
 	});
 	t.start();
     }
-
+    
     /**
      * {@inheritDoc}
      */
--- a/src/com/beem/project/beem/ui/AddContact.java	Fri May 22 15:55:08 2009 +0200
+++ b/src/com/beem/project/beem/ui/AddContact.java	Fri May 22 16:45:49 2009 +0200
@@ -36,7 +36,6 @@
 	super.onCreate(savedInstanceState);
 	setContentView(R.layout.addcontact);
 	Button ok = (Button) findViewById(R.id.addc_ok);
-	//mAccountManager = new AccountManager();
 	ok.setOnClickListener(mOkListener);
 	mService = BeemApplication.getApplication(this).getXmppFacade();
     }
--- a/src/com/beem/project/beem/ui/ContactDialog.java	Fri May 22 15:55:08 2009 +0200
+++ b/src/com/beem/project/beem/ui/ContactDialog.java	Fri May 22 16:45:49 2009 +0200
@@ -1,27 +1,36 @@
 package com.beem.project.beem.ui;
 
+import org.jivesoftware.smack.packet.Presence;
+
 import android.app.Activity;
 import android.app.Dialog;
 import android.content.Context;
 import android.content.Intent;
+import android.os.RemoteException;
+import android.util.Log;
 import android.view.View;
 import android.widget.Button;
-import android.widget.TextView;
 
+import com.beem.project.beem.BeemApplication;
 import com.beem.project.beem.R;
 import com.beem.project.beem.service.Contact;
+import com.beem.project.beem.service.PresenceAdapter;
+import com.beem.project.beem.service.aidl.IXmppFacade;
 
 public class ContactDialog extends Dialog {
 
+    public static final String TAG = "Option Dialog";
     private Contact mContact;
     private Context mContext;
+    private IXmppFacade mService;
 
     public ContactDialog(final Context context, Contact curContact) {
-	super(context);
-	mContext = context;
+	super(context);	
+	mContext = context;	
+	
 	setContentView(R.layout.contactdialog);
 	mContact = curContact;
-	setTitle(curContact.getJID());
+	setTitle(curContact.getJID());	
 
 	Button chat = (Button) findViewById(R.id.CDChat);
 	chat.setOnClickListener(new chatListener());
@@ -34,6 +43,10 @@
 	Button infos = (Button) findViewById(R.id.CDInfos);
 	infos.setOnClickListener(new infosListener());
     }
+    
+    public void initService() {
+	mService = BeemApplication.getApplication(ContactDialog.this.getOwnerActivity()).getXmppFacade();
+    }
 
     class chatListener implements View.OnClickListener {
 
@@ -55,9 +68,9 @@
 	    // TODO Auto-generated method stub
 	    dismiss();
 	}
-	
+
     }
-    
+
     class groupListener implements View.OnClickListener {
 
 	@Override
@@ -65,19 +78,25 @@
 	    // TODO Auto-generated method stub
 	    dismiss();
 	}
-	
+
     }
-    
+
     class resendListener implements View.OnClickListener {
 
 	@Override
 	public void onClick(View v) {
-	    // TODO Auto-generated method stub
+	    Presence presencePacket = new Presence(Presence.Type.subscribe);
+	    presencePacket.setTo(mContact.getJID());
+	    try {
+		mService.sendPresencePacket(new PresenceAdapter(presencePacket));
+	    } catch (RemoteException e) {
+		Log.e(TAG, "resend subscription error", e);
+	    }
 	    dismiss();
 	}
-	
+
     }
-    
+
     class infosListener implements View.OnClickListener {
 
 	@Override
@@ -85,7 +104,7 @@
 	    // TODO Auto-generated method stub
 	    dismiss();
 	}
-	
+
     }
 
 }
--- a/src/com/beem/project/beem/ui/ContactList.java	Fri May 22 15:55:08 2009 +0200
+++ b/src/com/beem/project/beem/ui/ContactList.java	Fri May 22 16:45:49 2009 +0200
@@ -225,8 +225,9 @@
 	}
 
 	void createDialog(Contact contact) {
-	    Dialog dialogContact= new ContactDialog(ContactList.this, contact);
+	    ContactDialog dialogContact= new ContactDialog(ContactList.this, contact);
 	    dialogContact.setOwnerActivity(ContactList.this);
+	    dialogContact.initService();
 	    dialogContact.show();
 	}