package com.abewy.android.apps.klyph.facebook.request; import java.util.ArrayList; import org.json.JSONArray; import com.abewy.android.apps.klyph.core.fql.serializer.GroupDeserializer; import com.abewy.android.apps.klyph.core.graph.GraphObject; public class GroupsRequest extends KlyphQuery { @Override public boolean isMultiQuery() { return true; } @Override public String getQuery(String id, String offset) { String query1 = "SELECT administrator, bookmark_order, gid, positions, uid, unread " + "FROM group_member " + "WHERE uid = me() ORDER BY bookmark_order " + "LIMIT " + getOffset(offset, "0") + ", 50"; String query2 = "SELECT gid, name, description, pic_cover, pic_big " + "FROM group " + "WHERE gid IN (SELECT gid FROM #query1)"; return multiQuery(query1, query2); } @Override public ArrayList<GraphObject> handleResult(JSONArray[] result) { JSONArray group_member = result[0]; JSONArray groups_data = result[1]; assocData(groups_data, group_member, "gid", "gid", "unread", "unread"); assocData(groups_data, group_member, "gid", "gid", "administrator", "administrator"); assocData(groups_data, group_member, "gid", "gid", "positions", "positions"); GroupDeserializer deserializer = new GroupDeserializer(); ArrayList<GraphObject> groups = (ArrayList<GraphObject>) deserializer.deserializeArray(groups_data); setHasMoreData(groups.size() >= 50); return groups; } }