Author: lindner
Date: Thu Jul  1 23:51:35 2010
New Revision: 959815

URL: http://svn.apache.org/viewvc?rev=959815&view=rev
Log:
SHINDIG-1329 | Updates to ActivityStream support

Added:
    
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActionLinkImpl.java
    
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/MediaLinkImpl.java
    
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActionLink.java
    
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/MediaLink.java
Removed:
    
shindig/trunk/content/samplecontainer/examples/ActivityStreams/OpenSocialAPI.js
Modified:
    
shindig/trunk/content/samplecontainer/examples/ActivityStreams/ActivityStreamGadget.xml
    
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActivityEntryImpl.java
    
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActivityObjectImpl.java
    
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityEntry.java
    
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityObject.java
    
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityStream.java
    
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/sample/ActivityStreamsJsonDbService.java

Modified: 
shindig/trunk/content/samplecontainer/examples/ActivityStreams/ActivityStreamGadget.xml
URL: 
http://svn.apache.org/viewvc/shindig/trunk/content/samplecontainer/examples/ActivityStreams/ActivityStreamGadget.xml?rev=959815&r1=959814&r2=959815&view=diff
==============================================================================
--- 
shindig/trunk/content/samplecontainer/examples/ActivityStreams/ActivityStreamGadget.xml
 (original)
+++ 
shindig/trunk/content/samplecontainer/examples/ActivityStreams/ActivityStreamGadget.xml
 Thu Jul  1 23:51:35 2010
@@ -25,115 +25,46 @@
        </ModulePrefs>
        
        <Content type="html">
-       <![CDATA[        
-               <script type="text/javascript" src="OpenSocialAPI.js"></script>
+       <![CDATA[
+               <script type="text/javascript" 
src="OpenSocialWrapper.js"></script>
+               <script type="text/javascript" 
src="ActivityStreamsRender.js"></script>
                
                <script type="text/javascript">
-                       // HTML for rendering
-                       var htmlWelcome = "";
-                       var htmlActivities = "";
-                       var htmlActivityEntries = "";
-                       var htmlCreateActivityEntry = "";
-                       var htmlDeleteActivityEntry = "";
-                       var htmlActivityEntryId = "";
+                       social = new OpenSocialWrapper();
+                       render = new ActivityStreamsRender();
                        
-                       var viewer = null;
-                       var owner = null;
-                       
-                       // ================= PEOPLE =================
-                       function displayWelcome() {
-                               OpenSocialAPI.loadPeople(function(response) {
-                                       viewer = response.viewer;
-                                       owner = response.owner;
-                                       var viewerFriends = 
response.viewerFriends;
-                                       var ownerFriends = 
response.ownerFriends;
-                                       
-                                       htmlWelcome = "<h1>Welcome " + 
viewer.name.formatted + "!</h1>";
-                                       htmlWelcome += "You are viewing " + 
owner.name.formatted + "'s data. <br><br>";
-                                       htmlWelcome += "Here is a list of your 
friends: <br>";
-                                       htmlWelcome += "<lu>";
-                                       for(i = 0; i < 
viewerFriends.list.length; i++) {
-                                               htmlWelcome += "<li>" + 
viewerFriends.list[i].name.formatted + "</li>";
-                                       }
-                                       htmlWelcome += "</lu>";
-                                       refreshHTML();
-                               });
+                       // TODO: move this stuff into ActivityStreamRender (if 
you can...)
+                       // Renders retrieval of an ActivityEntry by ID
+                       function renderActivityEntryId(div, callback) {
+                               var html = "<h2>Work with an 
ActivityEntry</h2>";
+                               html += "ActivityEntry ID: <input type='text' 
size=40 id='activityEntryId'>";
+                               html += "<input type='button' value='Retrieve' 
onclick='retrieveActivityEntryId()'>";
+                               html += "<input type='button' value='Delete' 
onclick='deleteActivityEntryId()'><br>";
+                               html += "Note: you must be the owner of the 
ActivityEntry to retrieve it.";
+                               html += "<textarea id='activityEntryText' 
cols=75 rows=10>No entry to display...</textarea><br>";
+                               document.getElementById(div).innerHTML = html;
+                               callback();
                        }
                        
-                       // ================= ACTIVITIES =================
-                       function displayActivities() {
-                               OpenSocialAPI.loadActivities(function(response) 
{
-                                       var viewerActivities = 
response.viewerActivities.list;
-                                       var ownerActivities = 
response.ownerActivities.list;
-                                       
-                                       htmlActivities = "<h1>Activities</h1>";
-                                       htmlActivities += "Demonstrates use of 
the Activities service in Apache Shindig.  The ActivityStreams service does not 
interfere with this service.<br><br>";
-                                       htmlActivities += "Activities for you 
and " + owner.name.formatted + ":<br>";
-                                       htmlActivities += "<table border='1'>";
-                                       htmlActivities += "<tr>";
-                                       htmlActivities += "<td>Name</td>";
-                                       htmlActivities += "<td>Title</td>";
-                                       htmlActivities += "<td>Body</td>";
-                                       htmlActivities += "<td>Images</td>";
-                                       htmlActivities += "</tr>"
-                                       processActivities(viewerActivities);
-                                       processActivities(ownerActivities);
-                                       htmlActivities += "</table>";
-                                       refreshHTML();
+                       // Deletes the activity entry
+                       function deleteActivityEntryId() {
+                               
social.deleteActivityEntryById(document.getElementById('activityEntryId').value,
 function(response) {
+                                       
document.getElementById('activityEntryText').value = 'No entry to display...';
+                                       
render.renderActivityEntries('activityEntryies', refresh);
                                });
                        }
-                       function processActivities(activities) {
-                               for(idx = 0; idx < activities.length; idx++) {
-                                       htmlActivities += "<tr>";
-                                       htmlActivities += "<td>" + 
activities[idx].userId + "</td>";
-                                       htmlActivities += "<td>" + 
activities[idx].title + "</td>";
-                                       htmlActivities += "<td>" + 
activities[idx].body + "</td>";
-                                       var mediaItems = 
activities[idx].mediaItems;
-                                       if(mediaItems != null) {
-                                               for(itemIdx = 0; itemIdx < 
mediaItems.length; itemIdx++) {
-                                                       
if(mediaItems[itemIdx].type == "image") {
-                                                               htmlActivities 
+= "<td><img src='" + mediaItems[itemIdx].url + "' width=150 height=150/></td>";
-                                                       }
-                                               }
-                                       }
-                                       htmlActivities += "</tr>";
-                               }
-                       }
                        
-                       // ================= ACTIVITYSTREAMS =================
-                       function displayActivityEntries() {
-                               
OpenSocialAPI.loadActivityEntries(function(response) {
-                                       viewerEntries = 
response.viewerEntries.list;
-                                       ownerEntries = 
response.ownerEntries.list;
-                                       htmlActivityEntries = 
"<h2>ActivityEntries</h2>";
-                                       processActivityEntries(viewerEntries);
-                                       processActivityEntries(ownerEntries);
-                                       if (viewerEntries.length + 
ownerEntries.length == 0) {
-                                               htmlActivityEntries += 
"<tr><td>No entries to show!</td></tr>";
-                                       }
-                                       htmlActivityEntries += 
"</table><br><br>";
-                                       refreshHTML();
+                       // Retrieves the activity entry
+                       function retrieveActivityEntryId() {
+                               
social.getActivityEntryById(document.getElementById('activityEntryId').value, 
function(response) {
+                                       
document.getElementById('activityEntryText').value = JSON.stringify(response);
                                });
                        }
-                       function processActivityEntries(entries) {
-                               for(idx = 0; idx < entries.length; idx++) {
-                                       if(entries[idx].permalink && 
entries[idx].permalink != "null") {
-                                               htmlActivityEntries += "<h3><a 
href='" + entries[idx].permalink + "'>" + entries[idx].title + "</a></h3>";
-                                       } else {
-                                               htmlActivityEntries += "<h3>" + 
entries[idx].title + "</h3>";
-                                       }
-                                       htmlActivityEntries += "ID: " + 
entries[idx].id + "<br>";
-                                       htmlActivityEntries += "Actor: " + 
entries[idx].actor.displayName + "<br>";
-                                       htmlActivityEntries += "Posted: " + 
entries[idx].postedTime + "<br>";
-                                       if(entries[idx].body && 
entries[idx].body != "null") {
-                                               htmlActivityEntries += "Body: " 
+ entries[idx].body + "<br>";
-                                       }
-                               }
-                       }
                        
-                       function displayCreateActivityEntry() {
-                               htmlCreateActivityEntry = 
"<h1>ActivityStreams</h1>";
-                               htmlCreateActivityEntry += "Demonstrates use of 
the ActivityStream service in Apache Shindig.  This implementation follows the 
current JSON draft specfication: 
http://activitystrea.ms/head/json-activity.html<br>";
+                       // Creation form for activity entry
+                       function renderCreateActivityEntry(div, callback) {
+                               var htmlCreateActivityEntry = 
"<h1>ActivityStreams</h1>";
+                               htmlCreateActivityEntry += "Demonstrates use of 
the ActivityStream service in Apache Shindig.  This implementation follows the 
JSON draft specfication: http://activitystrea.ms/head/json-activity.html<br>";
                                htmlCreateActivityEntry += "<h2>Create an 
ActivityEntry</h2>";
                                htmlCreateActivityEntry += "<table>";
                                htmlCreateActivityEntry += "<tr>";
@@ -145,12 +76,12 @@
                                htmlCreateActivityEntry += "<td><input 
type='text' size=50 id='activityEntryBody'></td>"
                                htmlCreateActivityEntry += "</tr>";
                                htmlCreateActivityEntry += "<tr>";
-                               htmlCreateActivityEntry += "<td>Permalink</td>";
-                               htmlCreateActivityEntry += "<td><input 
type='text' size=50 id='activityEntryPermalink'></td>"
+                               htmlCreateActivityEntry += "<td>Standard 
Link</td>";
+                               htmlCreateActivityEntry += "<td><input 
type='text' size=50 id='activityEntryStandardLink'></td>"
                                htmlCreateActivityEntry += "</tr>";
                                htmlCreateActivityEntry += "<tr>";
-                               htmlCreateActivityEntry += "<td>Object Display 
Name</td>";
-                               htmlCreateActivityEntry += "<td><input 
type='text' size=50 id='activityObjectDisplayName'></td>"
+                               htmlCreateActivityEntry += "<td>Object 
Name</td>";
+                               htmlCreateActivityEntry += "<td><input 
type='text' size=50 id='activityObjectName'></td>"
                                htmlCreateActivityEntry += "</tr>";
                                htmlCreateActivityEntry += "<tr>";
                                htmlCreateActivityEntry += "<td>Object 
Summary</td>";
@@ -207,6 +138,8 @@
                                htmlCreateActivityEntry += "</table>";
                                htmlCreateActivityEntry += "<input 
type='button' value='Submit' onclick='createActivityEntry()'>";
                                htmlCreateActivityEntry += "<br><br>";
+                               document.getElementById(div).innerHTML = 
htmlCreateActivityEntry;
+                               callback();
                        }
                        function createActivityEntry() {
                                // Gather selected verbs
@@ -233,62 +166,42 @@
                                
                                var title = 
blankToNull(document.getElementById('activityEntryTitle').value);
                                var body = 
blankToNull(document.getElementById('activityEntryBody').value)
-                               var permalink = 
blankToNull(document.getElementById('activityEntryPermalink').value);
-                               var objectDisplayName = 
blankToNull(document.getElementById('activityObjectDisplayName').value);
+                               var standardLink = 
blankToNull(document.getElementById('activityEntryStandardLink').value);
+                               var objectName = 
blankToNull(document.getElementById('activityObjectName').value);
                                var objectSummary = 
blankToNull(document.getElementById('activityObjectSummary').value);
                                var objectImage = 
blankToNull(document.getElementById('activityObjectImage').value);
                                var objectPermalink = 
blankToNull(document.getElementById('activityObjectPermalink').value);
-                               OpenSocialAPI.postActivityEntry(title, body, 
permalink, selVerbs, viewer.id, viewer.name.formatted,
-                                                                               
                objectDisplayName, objectSummary, objectImage, objectPermalink, 
selTypes,
+                               social.postActivityEntry(title, body, 
standardLink, selVerbs, viewer.id, viewer.name.formatted,
+                                                                               
                objectName, objectSummary, objectImage, objectPermalink, 
selTypes,
                                                                                
                function(response) {
-                                       displayActivityEntries();
+                                       
render.renderActivityEntries('activityEntries', refresh);
                                });
                        }
                        function blankToNull(str) {
                                return (str == '' ? null : str);
                        }
-                       
-                                               
-                       function displayActivityEntryId() {
-                               htmlActivityEntryId = "<h2>Work with an 
ActivityEntry</h2>";
-                               htmlActivityEntryId += "ActivityEntry ID: 
<input type='text' size=40 id='activityEntryId'>";
-                               htmlActivityEntryId += "<input type='button' 
value='Retrieve' onclick='retrieveActivityEntryId()'>";
-                               htmlActivityEntryId += "<input type='button' 
value='Delete' onclick='deleteActivityEntryId()'><br>";
-                               htmlActivityEntryId += "Note: you must be the 
owner of the ActivityEntry to retrieve it.";
-                               htmlActivityEntryId += "<textarea 
id='activityEntryText' cols=75 rows=10>No entry to display...</textarea><br>";
-                       }
-                       function deleteActivityEntryId() {
-                               
OpenSocialAPI.deleteActivityEntryById(document.getElementById('activityEntryId').value,
 function(response) {
-                                       displayActivityEntries();
-                                       
document.getElementById('activityEntryText').value = 'No entry to display...';
-                               });
-                       }
-                       function retrieveActivityEntryId() {
-                               
OpenSocialAPI.getActivityEntryById(document.getElementById('activityEntryId').value,
 function(response) {
-                                       
document.getElementById('activityEntryText').value = JSON.stringify(response);
-                               });
-                       }
                
-                       // ================= SET UP =================
-                       // Rewrites the HTML content
-                       function refreshHTML() {
-                               document.getElementById('message').innerHTML = 
htmlWelcome + htmlActivities + htmlCreateActivityEntry + htmlActivityEntryId + 
htmlActivityEntries;
+                       // Adjusts the window height
+                       function refresh() {
                                gadgets.window.adjustHeight();
                        }
                
                        // Initializes the gadget
                        function init() {
-                               displayWelcome();
-                               displayActivities();
-                               displayCreateActivityEntry();
-                               displayActivityEntryId();
-                               displayActivityEntries();
-                               refreshHTML();
+                               render.renderWelcome('welcome', refresh);
+                               render.renderActivities('activities', refresh);
+                               render.renderActivityEntries('activityEntries', 
refresh);
+                               renderActivityEntryId('htmlGetEntry', refresh);
+                               renderCreateActivityEntry('htmlCreateEntry', 
refresh);
                        }
                        
                        gadgets.util.registerOnLoadHandler(init);
                </script>
-               <div id='message'></div>
+               <div id='welcome'></div>
+               <div id='activities'></div>
+               <div id='htmlCreateEntry'></div>
+               <div id='htmlGetEntry'></div>
+               <div id='activityEntries'></div>
        ]]>
        </Content>
 </Module>
\ No newline at end of file

Added: 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActionLinkImpl.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActionLinkImpl.java?rev=959815&view=auto
==============================================================================
--- 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActionLinkImpl.java
 (added)
+++ 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActionLinkImpl.java
 Thu Jul  1 23:51:35 2010
@@ -0,0 +1,30 @@
+package org.apache.shindig.extras.as.core.model;
+
+import org.apache.shindig.extras.as.opensocial.model.ActionLink;
+
+public class ActionLinkImpl implements ActionLink {
+
+       private String target;
+       private String caption;
+       
+       public ActionLinkImpl() {
+               this.target = null;
+               this.caption = null;
+       }
+
+       public String getTarget() {
+               return target;
+       }
+
+       public void setTarget(String target) {
+               this.target = target;
+       }
+
+       public String getCaption() {
+               return caption;
+       }
+
+       public void setCaption(String caption) {
+               this.caption = caption;
+       }
+}

Modified: 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActivityEntryImpl.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActivityEntryImpl.java?rev=959815&r1=959814&r2=959815&view=diff
==============================================================================
--- 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActivityEntryImpl.java
 (original)
+++ 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActivityEntryImpl.java
 Thu Jul  1 23:51:35 2010
@@ -25,107 +25,117 @@ import org.apache.shindig.extras.as.open
 
 public class ActivityEntryImpl implements ActivityEntry {
 
-       private String id;
-       private String streamFavicon;
-       private String postedTime;
+       private String icon;
+       private String time;
        private ActivityObject actor;
        private List<String> verb;
        private ActivityObject object;
        private ActivityObject target;
-       private String permalink;
+       private ActivityObject generator;
+       private ActivityObject serviceProvider;
        private String title;
        private String body;
+       private List<String> standardLink;
        
        public ActivityEntryImpl() {
-               this.id = null;
-               this.streamFavicon = null;
-               this.postedTime = null;
+               this.icon = null;
+               this.time = null;
                this.actor = null;
                this.verb = null;
                this.object = null;
                this.target = null;
-               this.permalink = null;
+               this.generator = null;
+               this.serviceProvider = null;
                this.title = null;
                this.body = null;
+               this.standardLink = null;
        }
-       
-       public void setId(String id) {
-               this.id = id;
-       }
-       
-       public String getId() {
-               return id;
+
+       public String getIcon() {
+               return icon;
        }
-       
-       public void setStreamFavicon(String streamFavicon) {
-               this.streamFavicon = streamFavicon;
+
+       public void setIcon(String icon) {
+               this.icon = icon;
        }
-       
-       public String getStreamFavicon() {
-               return streamFavicon;
+
+       public String getTime() {
+               return time;
        }
-       
-       public void setPostedTime(String postedTime) {
-               this.postedTime = postedTime;
+
+       public void setTime(String time) {
+               this.time = time;
        }
-       
-       public String getPostedTime() {
-               return postedTime;
+
+       public ActivityObject getActor() {
+               return actor;
        }
-       
+
        public void setActor(ActivityObject actor) {
                this.actor = actor;
        }
-       
-       public ActivityObject getActor() {
-               return actor;
+
+       public List<String> getVerb() {
+               return verb;
        }
-       
+
        public void setVerb(List<String> verb) {
                this.verb = verb;
        }
-       
-       public List<String> getVerb() {
-               return verb;
+
+       public ActivityObject getObject() {
+               return object;
        }
-       
+
        public void setObject(ActivityObject object) {
                this.object = object;
        }
-       
-       public ActivityObject getObject() {
-               return object;
+
+       public ActivityObject getTarget() {
+               return target;
        }
-       
+
        public void setTarget(ActivityObject target) {
                this.target = target;
        }
-       
-       public ActivityObject getTarget() {
-               return target;
+
+       public ActivityObject getGenerator() {
+               return generator;
        }
-       
-       public void setPermalink(String permalink) {
-               this.permalink = permalink;
+
+       public void setGenerator(ActivityObject generator) {
+               this.generator = generator;
        }
-       
-       public String getPermalink() {
-               return permalink;
+
+       public ActivityObject getServiceProvider() {
+               return serviceProvider;
        }
-       
-       public void setTitle(String title) {
-               this.title = title;
+
+       public void setServiceProvider(ActivityObject serviceProvider) {
+               this.serviceProvider = serviceProvider;
        }
-       
+
        public String getTitle() {
                return title;
        }
-               
-       public void setBody(String body) {
-               this.body = body;
+
+       public void setTitle(String title) {
+               this.title = title;
        }
-       
+
        public String getBody() {
                return body;
        }
+
+       public void setBody(String body) {
+               this.body = body;
+       }
+
+       public List<String> getStandardLink() {
+               return standardLink;
+       }
+
+       public void setStandardLink(List<String> standardLink) {
+               this.standardLink = standardLink;
+       }
 }

Modified: 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActivityObjectImpl.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActivityObjectImpl.java?rev=959815&r1=959814&r2=959815&view=diff
==============================================================================
--- 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActivityObjectImpl.java
 (original)
+++ 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/ActivityObjectImpl.java
 Thu Jul  1 23:51:35 2010
@@ -20,46 +20,42 @@ package org.apache.shindig.extras.as.cor
 
 import java.util.List;
 
+import org.apache.shindig.extras.as.opensocial.model.ActionLink;
 import org.apache.shindig.extras.as.opensocial.model.ActivityObject;
+import org.apache.shindig.extras.as.opensocial.model.MediaLink;
 
 public class ActivityObjectImpl implements ActivityObject {
        
        private String id;
-       private String displayName;
+       private String name;
        private String summary;
+       private MediaLink media;
        private String permalink;
-       private String image;
-       private List<String> objectType;
-       private String content;
-       private String audioStream;
-       private String videoStream;
-       private String playerApplet;
-       private String bookmarkTarget;
-       private String thumbnail;
-       private String subject;
-       private String description;
-       private String rating;
-       private String icon;
+       private List<String> type;
        private ActivityObject inReplyTo;
+       private List<ActivityObject> attached;
+       private List<ActivityObject> reply;
+       private List<ActivityObject> reaction;
+       private ActionLink action;
+       private List<String> upstreamDuplicateId;
+       private List<String> downstreamDuplicateId;
+       private String standardLink;
        
        public ActivityObjectImpl() {
                this.id = null;
-               this.displayName = null;
+               this.name = null;
                this.summary = null;
+               this.media = null;
                this.permalink = null;
-               this.image = null;
-               this.content = null;
-               this.audioStream = null;
-               this.videoStream = null;
-               this.playerApplet = null;
-               this.bookmarkTarget = null;
-               this.thumbnail = null;
-               this.subject = null;
-               this.description = null;
-               this.rating = null;
-               this.icon = null;
-               this.objectType = null;
+               this.type = null;
                this.inReplyTo = null;
+               this.attached = null;
+               this.reply = null;
+               this.reaction = null;
+               this.action = null;
+               this.upstreamDuplicateId = null;
+               this.downstreamDuplicateId = null;
+               this.standardLink = null;
        }
 
        public String getId() {
@@ -70,12 +66,12 @@ public class ActivityObjectImpl implemen
                this.id = id;
        }
 
-       public String getDisplayName() {
-               return displayName;
+       public String getName() {
+               return name;
        }
 
-       public void setDisplayName(String displayName) {
-               this.displayName = displayName;
+       public void setName(String name) {
+               this.name = name;
        }
 
        public String getSummary() {
@@ -86,115 +82,91 @@ public class ActivityObjectImpl implemen
                this.summary = summary;
        }
 
-       public String getPermalink() {
-               return permalink;
-       }
-
-       public void setPermalink(String permalink) {
-               this.permalink = permalink;
-       }
-
-       public String getImage() {
-               return image;
-       }
-
-       public void setImage(String image) {
-               this.image = image;
-       }
-
-       public String getContent() {
-               return content;
-       }
-
-       public void setContent(String content) {
-               this.content = content;
+       public MediaLink getMedia() {
+               return media;
        }
 
-       public String getAudioStream() {
-               return audioStream;
+       public void setMedia(MediaLink media) {
+               this.media = media;
        }
 
-       public void setAudioStream(String audioStream) {
-               this.audioStream = audioStream;
-       }
-
-       public String getVideoStream() {
-               return videoStream;
+       public String getPermalink() {
+               return permalink;
        }
 
-       public void setVideoStream(String videoStream) {
-               this.videoStream = videoStream;
+       public void setPermalink(String permalink) {
+               this.permalink = permalink;
        }
 
-       public String getPlayerApplet() {
-               return playerApplet;
+       public List<String> getType() {
+               return type;
        }
 
-       public void setPlayerApplet(String playerApplet) {
-               this.playerApplet = playerApplet;
+       public void setType(List<String> type) {
+               this.type = type;
        }
 
-       public String getBookmarkTarget() {
-               return bookmarkTarget;
+       public ActivityObject getInReplyTo() {
+               return inReplyTo;
        }
 
-       public void setBookmarkTarget(String bookmarkTarget) {
-               this.bookmarkTarget = bookmarkTarget;
+       public void setInReplyTo(ActivityObject inReplyTo) {
+               this.inReplyTo = inReplyTo;
        }
 
-       public String getThumbnail() {
-               return thumbnail;
+       public List<ActivityObject> getAttached() {
+               return attached;
        }
 
-       public void setThumbnail(String thumbnail) {
-               this.thumbnail = thumbnail;
+       public void setAttached(List<ActivityObject> attached) {
+               this.attached = attached;
        }
 
-       public String getSubject() {
-               return subject;
+       public List<ActivityObject> getReply() {
+               return reply;
        }
 
-       public void setSubject(String subject) {
-               this.subject = subject;
+       public void setReply(List<ActivityObject> reply) {
+               this.reply = reply;
        }
 
-       public String getDescription() {
-               return description;
+       public List<ActivityObject> getReaction() {
+               return reaction;
        }
 
-       public void setDescription(String description) {
-               this.description = description;
+       public void setReaction(List<ActivityObject> reaction) {
+               this.reaction = reaction;
        }
 
-       public String getRating() {
-               return rating;
+       public ActionLink getAction() {
+               return action;
        }
 
-       public void setRating(String rating) {
-               this.rating = rating;
+       public void setAction(ActionLink action) {
+               this.action = action;
        }
 
-       public String getIcon() {
-               return icon;
+       public List<String> getUpstreamDuplicateId() {
+               return upstreamDuplicateId;
        }
 
-       public void setIcon(String icon) {
-               this.icon = icon;
+       public void setUpstreamDuplicateId(List<String> upstreamDuplicateId) {
+               this.upstreamDuplicateId = upstreamDuplicateId;
        }
 
-       public List<String> getObjectType() {
-               return objectType;
+       public List<String> getDownstreamDuplicateId() {
+               return downstreamDuplicateId;
        }
 
-       public void setObjectType(List<String> objectType) {
-               this.objectType = objectType;
+       public void setDownstreamDuplicateId(List<String> 
downstreamDuplicateId) {
+               this.downstreamDuplicateId = downstreamDuplicateId;
        }
 
-       public ActivityObject getInReplyTo() {
-               return inReplyTo;
+       public String getStandardLink() {
+               return standardLink;
        }
 
-       public void setInReplyTo(ActivityObject inReplyTo) {
-               this.inReplyTo = inReplyTo;
+       public void setStandardLink(String standardLink) {
+               this.standardLink = standardLink;
        }
 }

Added: 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/MediaLinkImpl.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/MediaLinkImpl.java?rev=959815&view=auto
==============================================================================
--- 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/MediaLinkImpl.java
 (added)
+++ 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/core/model/MediaLinkImpl.java
 Thu Jul  1 23:51:35 2010
@@ -0,0 +1,60 @@
+package org.apache.shindig.extras.as.core.model;
+
+import org.apache.shindig.extras.as.opensocial.model.MediaLink;
+
+public class MediaLinkImpl implements MediaLink {
+       
+       private String target;
+       private String type;
+       private String width;
+       private String height;
+       private String duration;
+       
+       public MediaLinkImpl() {
+               this.target = null;
+               this.type = null;
+               this.width = null;
+               this.height = null;
+               this.duration = null;
+       }
+
+       public String getTarget() {
+               return target;
+       }
+
+       public void setTarget(String target) {
+               this.target = target;
+       }
+
+       public String getType() {
+               return type;
+       }
+
+       public void setType(String type) {
+               this.type = type;
+       }
+
+       public String getWidth() {
+               return width;
+       }
+
+       public void setWidth(String width) {
+               this.width = width;
+       }
+
+       public String getHeight() {
+               return height;
+       }
+
+       public void setHeight(String height) {
+               this.height = height;
+       }
+
+       public String getDuration() {
+               return duration;
+       }
+
+       public void setDuration(String duration) {
+               this.duration = duration;
+       }
+}

Added: 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActionLink.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActionLink.java?rev=959815&view=auto
==============================================================================
--- 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActionLink.java
 (added)
+++ 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActionLink.java
 Thu Jul  1 23:51:35 2010
@@ -0,0 +1,53 @@
+package org.apache.shindig.extras.as.opensocial.model;
+
+import org.apache.shindig.protocol.model.Exportablebean;
+import org.apache.shindig.extras.as.core.model.ActionLinkImpl;
+
+import com.google.inject.ImplementedBy;
+
+/*
+ * TODO: comment this class.
+ */
+...@implementedby(ActionLinkImpl.class)
+...@exportablebean
+public interface ActionLink {
+       
+       /*
+        * Fields that represent JSON elements for an activity entry.
+        */
+       public static enum Field {
+               TARGET("target"),
+               CAPTION("caption");
+               
+               /*
+                * The name of the JSON element.
+                */
+               private final String jsonString;
+               
+               /*
+                * Constructs the field base for the JSON element.
+                * 
+                * @param jsonString the name of the element
+                */
+               private Field(String jsonString) {
+                       this.jsonString = jsonString;
+               }
+               
+               /*
+                * Returns the name of the JSON element.
+                * 
+                * @return String the name of the JSON element
+                */
+               public String toString() {
+                       return jsonString;
+               }
+       }
+       
+       String getTarget();
+
+       void setTarget(String target);
+
+       String getCaption();
+
+       void setCaption(String caption);
+}

Modified: 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityEntry.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityEntry.java?rev=959815&r1=959814&r2=959815&view=diff
==============================================================================
--- 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityEntry.java
 (original)
+++ 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityEntry.java
 Thu Jul  1 23:51:35 2010
@@ -25,6 +25,11 @@ import org.apache.shindig.extras.as.core
 
 import com.google.inject.ImplementedBy;
 
+/*
+ * TODO: comment a description for this class
+ * TODO: ensure verbs are up to date
+ * TODO: comment all classes
+ */
 @ImplementedBy(ActivityEntryImpl.class)
 @Exportablebean
 public interface ActivityEntry {
@@ -33,16 +38,17 @@ public interface ActivityEntry {
         * Fields that represent JSON elements for an activity entry.
         */
        public static enum Field {
-               ID("id"),
-               STREAM_FAVICON_("streamFavicon"),
-               POSTED_TIME("postedTime"),
+               ICON("icon"),
+               TIME("time"),
                ACTOR("actor"),
                VERB("verb"),
                OBJECT("object"),
                TARGET("target"),
-               PERMALINK_("permalink"),
+               GENERATOR("generator"),
+               SERVICE_PROVIDER("serviceProvider"),
                TITLE("title"),
-               BODY("body");
+               BODY("body"),
+               STANDARD_LINK("standardLink");
                
                /*
                 * The name of the JSON element.
@@ -108,43 +114,47 @@ public interface ActivityEntry {
                }
        }
        
-       void setId(String id);
-       
-       String getId();
-       
-       void setStreamFavicon(String streamFavicon);
-       
-       String getStreamFavicon();
-       
-       void setPostedTime(String postedTime);
-       
-       String getPostedTime();
-       
-       void setActor(ActivityObject actor);
-       
+       String getIcon();
+
+       void setIcon(String icon);
+
+       String getTime();
+
+       void setTime(String time);
+
        ActivityObject getActor();
-       
-       void setVerb(List<String> verb);
-       
+
+       void setActor(ActivityObject actor);
+
        List<String> getVerb();
-       
-       void setObject(ActivityObject object);
-       
+
+       void setVerb(List<String> verb);
+
        ActivityObject getObject();
-       
-       void setTarget(ActivityObject target);
+
+       void setObject(ActivityObject object);
        
        ActivityObject getTarget();
        
-       void setPermalink(String permalink);
-       
-       String getPermalink();
-       
-       void setTitle(String title);
+       void setTarget(ActivityObject target);
        
+       ActivityObject getGenerator();
+
+       void setGenerator(ActivityObject generator);
+
+       ActivityObject getServiceProvider();
+
+       void setServiceProvider(ActivityObject serviceProvider);
+
        String getTitle();
-       
-       void setBody(String body);
-       
+
+       void setTitle(String title);
+
        String getBody();
+
+       void setBody(String body);
+
+       List<String> getStandardLink();
+
+       void setStandardLink(List<String> standardLink);
 }
\ No newline at end of file

Modified: 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityObject.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityObject.java?rev=959815&r1=959814&r2=959815&view=diff
==============================================================================
--- 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityObject.java
 (original)
+++ 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityObject.java
 Thu Jul  1 23:51:35 2010
@@ -34,22 +34,19 @@ public interface ActivityObject {
         */
        public static enum Field {
                ID("id"),
-               DISPLAY_NAME("displayName"),
+               NAME("name"),
                SUMMARY("summary"),
+               MEDIA("media"),
                PERMALINK("permalink"),
-               IMAGE("image"),
-               CONTENT("content"),
-               AUDIO_STREAM("audioStream"),
-               VIDEO_STREAM("videoStream"),
-               PLAYER_APPLET("playerApplet"),
-               BOOKMARK_TARGET("bookmarkTarget"),
-               THUMBNAIL("thumbnail"),
-               SUBJECT("subject"),
-               DESCRIPTION("description"),
-               RATING("rating"),
-               ICON("icon"),
+               TYPE("type"),
                IN_REPLY_TO("inReplyTo"),
-               OBJECT_TYPE("objectType");
+               ATTACHED("attached"),
+               REPLY("reply"),
+               REACTION("reaction"),
+               ACTION("action"),
+               UPSTREAM_DUPLICATE_ID("upstreamDuplicateId"),
+               DOWNSTREAM_DUPLICATE_ID("downstreamDuplicateId"),
+               STANDARD_LINK("standardLink");
                
                /*
                 * The name of the JSON element.
@@ -79,67 +76,55 @@ public interface ActivityObject {
 
        void setId(String id);
 
-       String getDisplayName();
+       String getName();
 
-       void setDisplayName(String displayName);
+       void setName(String name);
 
        String getSummary();
 
        void setSummary(String summary);
 
-       String getPermalink();
-
-       void setPermalink(String permalink);
-
-       String getImage();
-
-       void setImage(String image);
-
-       String getContent();
-
-       void setContent(String content);
+       MediaLink getMedia();
 
-       String getAudioStream();
+       void setMedia(MediaLink media);
 
-       void setAudioStream(String audioStream);
+       String getPermalink();
 
-       String getVideoStream();
+       void setPermalink(String permalink);
 
-       void setVideoStream(String videoStream);
+       List<String> getType();
 
-       String getPlayerApplet();
+       void setType(List<String> type);
 
-       void setPlayerApplet(String playerApplet);
+       ActivityObject getInReplyTo();
 
-       String getBookmarkTarget();
+       void setInReplyTo(ActivityObject inReplyTo);
 
-       void setBookmarkTarget(String bookmarkTarget);
-       
-       String getThumbnail();
+       List<ActivityObject> getAttached();
 
-       void setThumbnail(String thumbnail);
+       void setAttached(List<ActivityObject> attached);
 
-       String getSubject();
+       List<ActivityObject> getReply();
 
-       void setSubject(String subject);
+       void setReply(List<ActivityObject> reply);
 
-       String getDescription();
+       List<ActivityObject> getReaction();
 
-       void setDescription(String description);
+       void setReaction(List<ActivityObject> reaction);
 
-       String getRating();
+       ActionLink getAction();
 
-       void setRating(String rating);
+       void setAction(ActionLink action);
 
-       String getIcon();
+       List<String> getUpstreamDuplicateId();
 
-       void setIcon(String icon);
+       void setUpstreamDuplicateId(List<String> upstreamDuplicateId);
 
-       List<String> getObjectType();
+       List<String> getDownstreamDuplicateId();
 
-       void setObjectType(List<String> objectType);
+       void setDownstreamDuplicateId(List<String> downstreamDuplicateId);
 
-       ActivityObject getInReplyTo();
+       String getStandardLink();
 
-       void setInReplyTo(ActivityObject inReplyTo);
+       void setStandardLink(String standardLink);
 }
\ No newline at end of file

Modified: 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityStream.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityStream.java?rev=959815&r1=959814&r2=959815&view=diff
==============================================================================
--- 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityStream.java
 (original)
+++ 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/ActivityStream.java
 Thu Jul  1 23:51:35 2010
@@ -15,14 +15,14 @@
  * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations under the License.
  */
-
 package org.apache.shindig.extras.as.opensocial.model;
 
 import java.util.List;
 
-import org.apache.shindig.protocol.model.Exportablebean;
 import org.apache.shindig.extras.as.core.model.ActivityStreamImpl;
 
+import org.apache.shindig.protocol.model.Exportablebean;
+
 import com.google.inject.ImplementedBy;
 
 /*

Added: 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/MediaLink.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/MediaLink.java?rev=959815&view=auto
==============================================================================
--- 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/MediaLink.java
 (added)
+++ 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/opensocial/model/MediaLink.java
 Thu Jul  1 23:51:35 2010
@@ -0,0 +1,67 @@
+package org.apache.shindig.extras.as.opensocial.model;
+
+import org.apache.shindig.protocol.model.Exportablebean;
+import org.apache.shindig.extras.as.core.model.MediaLinkImpl;
+import com.google.inject.ImplementedBy;
+
+/*
+ * TODO: comment this class.
+ */
+...@implementedby(MediaLinkImpl.class)
+...@exportablebean
+public interface MediaLink {
+
+       /*
+        * Fields that represent the JSON elements.
+        */
+       public static enum Field {
+               TARGET("target"),
+               TYPE("type"),
+               WIDTH("width"),
+               HEIGHT("height"),
+               DURATION("duration");
+               
+               /*
+                * The name of the JSON element.
+                */
+               private final String jsonString;
+               
+               /*
+                * Constructs the field base for the JSON element.
+                * 
+                * @param jsonString the name of the element
+                */
+               private Field(String jsonString) {
+                       this.jsonString = jsonString;
+               }
+               
+               /*
+                * Returns the name of the JSON element.
+                * 
+                * @return String the name of the JSON element
+                */
+               public String toString() {
+                       return jsonString;
+               }
+       }
+       
+       String getTarget();
+
+       void setTarget(String target);
+
+       String getType();
+
+       void setType(String type);
+
+       String getWidth();
+
+       void setWidth(String width);
+
+       String getHeight();
+
+       void setHeight(String height);
+
+       String getDuration();
+
+       void setDuration(String duration);
+}

Modified: 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/sample/ActivityStreamsJsonDbService.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/sample/ActivityStreamsJsonDbService.java?rev=959815&r1=959814&r2=959815&view=diff
==============================================================================
--- 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/sample/ActivityStreamsJsonDbService.java
 (original)
+++ 
shindig/trunk/extras/src/main/java/org/apache/shindig/extras/as/sample/ActivityStreamsJsonDbService.java
 Thu Jul  1 23:51:35 2010
@@ -66,9 +66,11 @@ public class ActivityStreamsJsonDbServic
   public Future<Void> createActivityEntry(UserId userId, GroupId groupId, 
String appId,
              Set<String> fields, ActivityEntry activityEntry, SecurityToken 
token) throws ProtocolException {
        try {
-         JSONObject jsonObject = convertFromActivityEntry(activityEntry, 
fields);
-         if (!jsonObject.has(ActivityEntry.Field.ID.toString())) {
-           jsonObject.put(ActivityEntry.Field.ID.toString(), 
System.currentTimeMillis());
+         JSONObject jsonEntry = convertFromActivityEntry(activityEntry, 
fields);
+         JSONObject jsonEntryObject = 
jsonEntry.getJSONObject(ActivityEntry.Field.OBJECT.toString());
+         if (!jsonEntryObject.has(ActivityObject.Field.ID.toString())) {
+                 jsonEntryObject.put(ActivityObject.Field.ID.toString(), 
System.currentTimeMillis());
+                 jsonEntry.put(ActivityEntry.Field.OBJECT.toString(), 
jsonEntryObject);
          }
 
          // TODO: bug fixed: jsonArray will not be null; will throw exception!
@@ -81,7 +83,7 @@ public class ActivityStreamsJsonDbServic
                  jsonArray = new JSONArray();
                  
db.getJSONObject(ACTIVITYSTREAMS_TABLE).put(userId.getUserId(token), jsonArray);
          }
-         jsonArray.put(jsonObject);
+         jsonArray.put(jsonEntry);
          return ImmediateFuture.newInstance(null);
        } catch (JSONException je) {
          throw new 
ProtocolException(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, je.getMessage(),
@@ -100,7 +102,7 @@ public class ActivityStreamsJsonDbServic
              JSONArray newList = new JSONArray();
              for (int i = 0; i < activityEntries.length(); i++) {
                JSONObject activityEntry = activityEntries.getJSONObject(i);
-               if 
(!activityIds.contains(activityEntry.getString(ActivityEntry.Field.ID.toString())))
 {
+               if 
(!activityIds.contains(activityEntry.getJSONObject(ActivityEntry.Field.OBJECT.toString()).getString(ActivityObject.Field.ID.toString())))
 {
                  newList.put(activityEntry);
                }
              }
@@ -123,16 +125,16 @@ public class ActivityStreamsJsonDbServic
   public Future<ActivityEntry> getActivityEntry(UserId userId, GroupId groupId,
                  String appId, Set<String> fields, String activityId, 
SecurityToken token)
                  throws ProtocolException {
-    try {
+    try {              
       String user = userId.getUserId(token);
       if (db.getJSONObject(ACTIVITYSTREAMS_TABLE).has(user)) {
         JSONArray activityEntries = 
db.getJSONObject(ACTIVITYSTREAMS_TABLE).getJSONArray(user);
         for (int i = 0; i < activityEntries.length(); i++) {
           JSONObject activityEntry = activityEntries.getJSONObject(i);
-          JSONObject actor = new 
JSONObject(activityEntry.get(ActivityEntry.Field.ACTOR.toString()).toString());
+          JSONObject actor = 
activityEntry.getJSONObject(ActivityEntry.Field.ACTOR.toString());
           String actorId = 
actor.get(ActivityObject.Field.ID.toString()).toString();
           if (actorId.equals(user)
-              && 
activityEntry.get(ActivityEntry.Field.ID.toString()).toString().equals(activityId))
 {
+              && 
activityEntry.getJSONObject(ActivityEntry.Field.OBJECT.toString()).get(ActivityObject.Field.ID.toString()).toString().equals(activityId))
 {
             return 
ImmediateFuture.newInstance(jsonDb.filterFields(activityEntry, fields, 
ActivityEntry.class));
          }
         }
@@ -144,13 +146,29 @@ public class ActivityStreamsJsonDbServic
           je);
     }
   }
-
+       
   public Future<RestfulCollection<ActivityEntry>> getActivityEntries(
                  Set<UserId> userIds, GroupId groupId, String appId, 
Set<String> fields,
                  CollectionOptions options, SecurityToken token)
                  throws ProtocolException {
       List<ActivityEntry> result = Lists.newArrayList();
-
+      
+//     // Retrieve activities from Lotus Connections
+//             FeedParser parser;
+//             try {
+//                     parser = new FeedParser();
+//                 ArrayList<JSONObject> activityEntries = 
parser.parseFeed("http://w3.ibm.com/connections/news/atom/stories/public";);
+//                 for(JSONObject activityEntry : activityEntries) {
+//                     result.add(jsonDb.filterFields(activityEntry, fields, 
ActivityEntry.class));
+//                 }
+//             } catch (ParserConfigurationException e) {
+//                     e.printStackTrace();
+//             } catch (SAXException e) {
+//                     e.printStackTrace();
+//             } catch (JSONException e) {
+//                     e.printStackTrace();
+//             }
+               
       try {
         Set<String> idSet = jsonDb.getIdSet(userIds, groupId, token);
         for (String id : idSet) {
@@ -161,9 +179,9 @@ public class ActivityStreamsJsonDbServic
               result.add(jsonDb.filterFields(activityEntry, fields, 
ActivityEntry.class));
               // TODO: ActivityStreams don't have appIds
 //                   if (appId == null || 
!activitystream.has(ActivityStream.Field.APP_ID.toString())) {
-//                     result.add(filterFields(activitystream, fields, 
ActivityStream.class));
+//                     result.add(jsonDb.filterFields(activitystream, fields, 
ActivityStream.class));
 //                   } else if 
(activitystream.get(ActivityStream.Field.APP_ID.toString()).equals(appId)) {
-//                     result.add(filterFields(activitystream, fields, 
ActivityStream.class));
+//                     result.add(jsonDb.filterFields(activitystream, fields, 
ActivityStream.class));
 //                   }
             }
           }
@@ -174,7 +192,7 @@ public class ActivityStreamsJsonDbServic
           je);
     }
   }
-
+       
   public Future<RestfulCollection<ActivityEntry>> getActivityEntries(
                  UserId userId, GroupId groupId, String appId, Set<String> 
fields,
                  CollectionOptions options, Set<String> activityIds, 
SecurityToken token)
@@ -189,7 +207,7 @@ public class ActivityStreamsJsonDbServic
             JSONObject actor = new 
JSONObject(activityEntry.get(ActivityEntry.Field.ACTOR.toString()));
             String actorId = 
actor.get(ActivityObject.Field.ID.toString()).toString();
             if (actorId.equals(user)
-              && 
activityIds.contains(activityEntry.getString(ActivityEntry.Field.ID.toString())))
 {
+              && 
activityIds.contains(activityEntry.getJSONObject(ActivityEntry.Field.OBJECT.toString()).getString(ActivityObject.Field.ID.toString()).toString()))
 {
             result.add(jsonDb.filterFields(activityEntry, fields, 
ActivityEntry.class));
           }
         }


Reply via email to