--- /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