ParseQuery<ParseObject> query = ParseQuery.getQuery("Activity"); query.whereEqualTo("type", "follow"); query.whereEqualTo("fromUser", ParseUser.getCurrentUser()); query.include("toUser"); query.setCachePolicy(ParseQuery.CachePolicy.NETWORK_ELSE_CACHE);
//images of whom i am following
ParseQuery<ParseObject> queryFollowed =ParseQuery.getQuery("Feed");
queryFollowed.whereMatchesKeyInQuery("user", "toUser", query);
//query.whereEqualTo("mediaType", "image");
//query.include("user");
// queryFollowed.whereExists("image");
// my images
ParseQuery<ParseObject> userParseObjects = ParseQuery.getQuery("Feed");
userParseObjects.whereEqualTo("user", ParseUser.getCurrentUser());
//query.whereEqualTo("mediaType", "image");
//query.include("user");
//userParseObjects.whereExists("image");
// combine both queries
List<ParseQuery<ParseObject>> queries = new ArrayList<ParseQuery<ParseObject>>();
queries.add(userParseObjects);
queries.add(queryFollowed);
ParseQuery<ParseObject> mainQuery = ParseQuery.or(queries);
mainQuery.include("user");
mainQuery.setLimit(downloadCount);
mainQuery.setSkip(skip);
//mainQuery.whereEqualTo("mediaType", "image");
mainQuery.orderByDescending("updatedAt");
Utilities.printLog("image above fing query");
Utilities.printLog("current user"+ParseUser.getCurrentUser());
mainQuery.findInBackground(new FindCallback<ParseObject>(){
@Override
public void done(List<ParseObject> object, ParseException e) {
// TODO Auto-generated method stub
if (object == null)
{
Utilities.printLog("error message"+e.getMessage());
}
else
{
if(object.size()==0)
{
dataRemaing=false;
Utilities.printLog("object data remaining"+dataRemaing);
}
Utilities.printLog("Size of Object"+object.size());
for(ParseObject aParseObject :object)
{
final RowItem map = new RowItem();
//Utilities.printLog("object size"+object.size());
/*final RowItem map = new RowItem();
ParseQuery<ParseObject> querylike = ParseQuery.getQuery("Activity");
querylike.whereEqualTo("type", "like");
querylike.whereEqualTo("Photo", aParseObject);
querylike.whereEqualTo("fromUser", ParseUser.getCurrentUser());
querylike.findInBackground(new FindCallback<ParseObject>(){
@Override
public void done(List<ParseObject> objectlike, ParseException e)
{
Utilities.printLog("objectlike"+objectlike.size());
Utilities.printLog("object of like"+objectlike);
if(objectlike.size()>0)
{
map.setLikecheck(true);
}
else{
map.setLikecheck(false);
}
}
});*/
if(aParseObject.getString("mediaLink")!=null)
{
map.setUserPosetedPic(aParseObject.getString("mediaLink"));
map.setImageId(aParseObject.getObjectId());
Utilities.printLog("objectid of selected pic in home"+aParseObject.getObjectId());
Date updatedAt = aParseObject.getUpdatedAt();
String commentdate=Utilities.timeForPost(updatedAt);
map.setUserPosetedPicTime(commentdate);
int likecount=aParseObject.getInt("likesCount");
map.setLikecount(likecount);
int commentcount=aParseObject.getInt("commentsCount");
map.setCommentCount(commentcount);
map.setMediaType(aParseObject.getString("mediaType"));
//Utilities.printLog("image link"+aParseObject.getString("mediaLink"));
if(aParseObject.get("user")!=null)
{
ParseUser user=(ParseUser)aParseObject.get("user");
map.setUserid(user.getObjectId());
Utilities.printLog("home user id"+user.getObjectId());
Utilities.printLog("user object id"+user.getObjectId());
Utilities.printLog("username"+user.getString("displayName"));
map.setUserName((String)user.getString("displayName"));
//Uri myprofilePicUri=Uri.parse();
ParseFile myprofilepic=user.getParseFile("profilePictureMedium");
map.setUserProfilepic(myprofilepic.getUrl());
}
}
RowItemlist.add(map);
//mAdapter.notifyDataSetChanged();
}
}
updateData();
if (progress!=null )
{
progress.cancel();
progress.dismiss();
}
}
});
i want to check in which post i have liked so that i can highlight the liked button . In for loop i am getting parseobject and the comment part is for checking whether the current post i have liked or not but getting some snchronization problem any help will appriciated
Thanks in Advance Roshani