Add some adapter for smack classes
authorDa Risk <darisk972@gmail.com>
Thu, 19 Mar 2009 22:23:18 +0100
changeset 30 7057a9d3657a
parent 29 a49d1556772c
child 31 85faac00d92c
Add some adapter for smack classes
src/com/beem/project/beem/service/RosterAdapter.java
src/com/beem/project/beem/service/RosterEntryAdapter.java
src/com/beem/project/beem/service/XMPPConnectionAdapter.java
src/com/beem/project/beem/service/aidl/IRoster.aidl
src/com/beem/project/beem/service/aidl/IRosterEntry.aidl
src/com/beem/project/beem/service/aidl/IXMPPConnection.aidl
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/com/beem/project/beem/service/RosterAdapter.java	Thu Mar 19 22:23:18 2009 +0100
@@ -0,0 +1,61 @@
+/**
+ * 
+ */
+package com.beem.project.beem.service;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.jivesoftware.smack.Roster;
+import org.jivesoftware.smack.RosterEntry;
+import org.jivesoftware.smack.XMPPException;
+
+import android.os.RemoteException;
+
+import com.beem.project.beem.service.aidl.IRosterEntry;
+import com.beem.project.beem.service.aidl.IRoster.Stub;
+
+/**
+ * @author darisk
+ *
+ */
+public class RosterAdapter extends com.beem.project.beem.service.aidl.IRoster.Stub {
+
+    private Roster adaptee;
+    
+    public RosterAdapter(Roster roster) {
+	adaptee = roster;
+    }
+    
+    @Override
+    public IRosterEntry createEntry(String user, String name, String[] groups)
+	    throws RemoteException {
+	try {
+	    adaptee.createEntry(user, name, groups);
+	} catch (XMPPException e) {
+	    // TODO Auto-generated catch block
+	    e.printStackTrace();
+	}
+	return null;
+    }
+
+    @Override
+    public void createGroup(String groupname) throws RemoteException {
+	// TODO Auto-generated method stub
+	adaptee.createGroup(groupname);
+    }
+
+    @Override
+    public List getEntries() throws RemoteException {
+	// TODO Auto-generated method stub
+	Collection<RosterEntry> col = adaptee.getEntries();
+	ArrayList<IRosterEntry> result = new ArrayList<IRosterEntry>(col.size());
+	for (RosterEntry rosterEntry : col ) {
+	    result.add(new RosterEntryAdapter(rosterEntry));
+	}
+	return result;
+    }
+    
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/com/beem/project/beem/service/RosterEntryAdapter.java	Thu Mar 19 22:23:18 2009 +0100
@@ -0,0 +1,42 @@
+/**
+ * 
+ */
+package com.beem.project.beem.service;
+
+import org.jivesoftware.smack.RosterEntry;
+import org.jivesoftware.smack.XMPPConnection;
+import org.jivesoftware.smack.packet.RosterPacket.ItemStatus;
+import org.jivesoftware.smack.packet.RosterPacket.ItemType;
+
+import android.os.IBinder;
+import android.os.RemoteException;
+
+import com.beem.project.beem.service.aidl.IRosterEntry;
+
+/**
+ * @author darisk
+ *
+ */
+public class RosterEntryAdapter extends IRosterEntry.Stub {
+
+    private RosterEntry adaptee;
+    
+    public RosterEntryAdapter(RosterEntry entry) {
+	adaptee = entry;
+    }
+
+    @Override
+    public String getName() throws RemoteException {
+	return adaptee.getName();
+    }
+
+    @Override
+    public String getUser() throws RemoteException {
+	return adaptee.getUser();
+    }
+
+    @Override
+    public void setName(String name) throws RemoteException {
+	adaptee.setName(name);
+    }
+}
--- a/src/com/beem/project/beem/service/XMPPConnectionAdapter.java	Thu Mar 19 21:31:20 2009 +0100
+++ b/src/com/beem/project/beem/service/XMPPConnectionAdapter.java	Thu Mar 19 22:23:18 2009 +0100
@@ -7,7 +7,10 @@
 import org.jivesoftware.smack.XMPPConnection;
 import org.jivesoftware.smack.XMPPException;
 
+import android.os.RemoteException;
+
 import com.beem.project.beem.BeemException;
+import com.beem.project.beem.service.aidl.IRoster;
 import com.beem.project.beem.service.aidl.IXMPPConnection;
 
 /**
@@ -15,6 +18,7 @@
  *
  */
 public class XMPPConnectionAdapter extends IXMPPConnection.Stub {
+  
     private XMPPConnection adaptee;
     private BeemException lastException;
     
@@ -57,4 +61,9 @@
 	}
 	return false;
     }
+
+    @Override
+    public IRoster getRoster() throws RemoteException {
+	return new RosterAdapter(adaptee.getRoster());
+    }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/com/beem/project/beem/service/aidl/IRoster.aidl	Thu Mar 19 22:23:18 2009 +0100
@@ -0,0 +1,14 @@
+package com.beem.project.beem.service.aidl;
+
+import com.beem.project.beem.service.aidl.IRosterEntry;
+
+interface IRoster {
+    
+    IRosterEntry createEntry(in String user, in String name, in String[] groups);
+    
+    void createGroup(in String groupname);
+    
+    // List<IRosterEntry>
+    List getEntries(); 
+
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/com/beem/project/beem/service/aidl/IRosterEntry.aidl	Thu Mar 19 22:23:18 2009 +0100
@@ -0,0 +1,12 @@
+package com.beem.project.beem.service.aidl;
+
+interface IRosterEntry {
+      
+    String getName(); 
+    String getUser();
+    void setName(in String name);
+    //TODO
+    // getStatus() 
+    // getType
+
+}
\ No newline at end of file
--- a/src/com/beem/project/beem/service/aidl/IXMPPConnection.aidl	Thu Mar 19 21:31:20 2009 +0100
+++ b/src/com/beem/project/beem/service/aidl/IXMPPConnection.aidl	Thu Mar 19 22:23:18 2009 +0100
@@ -1,5 +1,7 @@
 package com.beem.project.beem.service.aidl;
 
+import  com.beem.project.beem.service.aidl.IRoster;
+
 interface IXMPPConnection {
     
     boolean connect();
@@ -8,4 +10,7 @@
     
     boolean login(in String username, in String password, in String resource);
   //  void login(String username, String password, String resource);
+      
+    IRoster getRoster();
+
 }
\ No newline at end of file