package com.abewy.android.apps.klyph.messenger.facebook.request;
import java.util.ArrayList;
import org.json.JSONArray;
import com.abewy.android.apps.klyph.core.fql.MessageThread;
import com.abewy.android.apps.klyph.core.graph.GraphObject;
import com.abewy.android.apps.klyph.core.fql.serializer.MessageThreadDeserializer;
import com.abewy.android.apps.klyph.messenger.KlyphMessenger;
public class ThreadWithOneFriendRequest extends KlyphQuery
{
@Override
public boolean isMultiQuery()
{
return true;
}
@Override
public String getQuery(String id, String offset)
{
String query1 = "SELECT thread_id, subject, recipients, updated_time, parent_message_id, parent_thread_id, message_count, snippet, snippet_author, object_id, unread, viewer_id " +
"FROM thread " +
"WHERE (folder_id = 0 or folder_id = 1) " +
"AND�" + id + " IN recipients AND�" + id + " IN�recent_authors";
String query2 = "SELECT uid, name, first_name FROM user WHERE uid IN (SELECT recipients FROM #query1)";
String query3 = "SELECT id, url from square_profile_pic WHERE id IN (SELECT uid FROM #query2) AND size = " + KlyphMessenger.getStandardImageSizeForRequest() * 2;
return multiQuery(query1, query2, query3);
}
@Override
public ArrayList<GraphObject> handleResult(JSONArray[] result)
{
JSONArray data = result[0];
JSONArray recipients = result[1];
JSONArray user_pics = result[2];
assocData(recipients, user_pics, "uid", "id", "pic", "url");
assocData3(data, recipients, "recipients", "uid", "recipients_friends");
MessageThreadDeserializer deserializer = new MessageThreadDeserializer();
ArrayList<GraphObject> mts = (ArrayList<GraphObject>) deserializer.deserializeArray(data);
for (GraphObject graphObject : mts)
{
if (((MessageThread) graphObject).getRecipients().size() == 2)
{
mts = new ArrayList<GraphObject>();
mts.add(graphObject);
break;
}
}
if (mts.size() > 1)
mts = new ArrayList<GraphObject>();
setHasMoreData(false);
return mts;
}
}