package com.abewy.android.apps.klyph.messenger.facebook.request;
import java.util.ArrayList;
import org.json.JSONArray;
import android.util.Log;
import com.abewy.android.apps.klyph.core.graph.GraphObject;
import com.abewy.android.apps.klyph.core.fql.serializer.UnifiedThreadDeserializer;
import com.abewy.android.apps.klyph.messenger.KlyphMessenger;
public class UnifiedThreadRequest extends KlyphQuery
{
@Override
public boolean isMultiQuery()
{
return true;
}
@Override
public String getQuery(String id, String offset)
{
String query1 = "SELECT action_id, admin_snippet, archived, auto_mute, can_reply, folder, "
+ "former_participants, has_attachments, is_group_conversation, is_named_conversation, is_subscribed, last_visible_add_action_id, "
+ "link, mute, name, num_messages, num_unread, object_participants, participants, pic_hash,"
+ " read_receipts, senders, single_recipient, snippet, snippet_message_has_attachment, snippet_message_id, "
+ "snippet_sender, subject, tags, thread_and_participants_name, thread_fbid, thread_id, thread_participants, "
+ "timestamp, title, unread, unseen"
+ " FROM unified_thread"
+ " WHERE folder = \"inbox\"";
if (offset != null && offset.length() > 0)
query1 += " AND timestamp < " + offset;
query1 += " ORDER BY timestamp DESC LIMIT 20";
Log.d("Threads", query1);
String query2 = "SELECT id, url from square_profile_pic WHERE id IN (SELECT participants.user_id FROM #query1) AND size = "
+ KlyphMessenger.getStandardImageSizeForRequest() * 2;
return multiQuery(query1, query2);
}
@Override
public ArrayList<GraphObject> handleResult(JSONArray[] result)
{
JSONArray data = result[0];
JSONArray user_pics = result[1];
//assocData3(data, user_pics, "recipients", "id", "recipients_friends");
UnifiedThreadDeserializer deserializer = new UnifiedThreadDeserializer();
ArrayList<GraphObject> mts = (ArrayList<GraphObject>) deserializer.deserializeArray(data);
//Collections.reverse(mts);
setHasMoreData(mts.size() >= 15);
return mts;
}
}