package com.abewy.android.apps.klyph.facebook.request;
import java.util.ArrayList;
import org.json.JSONArray;
import com.abewy.android.apps.klyph.Klyph;
import com.abewy.android.apps.klyph.core.fql.serializer.VideoDeserializer;
import com.abewy.android.apps.klyph.core.graph.GraphObject;
public class VideoRequest extends KlyphQuery
{
@Override
public boolean isMultiQuery()
{
return true;
}
@Override
public String getQuery(String id, String offset)
{
String query1 = "SELECT album_id, created_time, description, format, length, link, owner, src, src_hq, thumbnail_link, title, updated_time, vid";
query1 += " FROM video WHERE vid = \"" + id + "\"";
String query2 = "SELECT id, name FROM�profile WHERE�id IN (SELECT�owner FROM�#query1)";
String query3 = "SELECT�aid, name FROM�album WHERE�object_id IN (SELECT�album_id FROM�#query1 )";
// Get profile pics
String query4 = "SELECT id, url FROM square_profile_pic "
+ "WHERE id IN (SELECT owner FROM #query1) "
+ "AND size = "
+ Klyph.getStandardImageSizeForRequest();
return multiQuery(query1, query2, query3, query4);
}
@Override
public ArrayList<GraphObject> handleResult(JSONArray[] result)
{
JSONArray video = result[0];
JSONArray owner = result[1];
JSONArray album = result[2];
JSONArray pics = result[3];
assocData(video, owner, "owner", "id", "owner_name", "name");
assocData(video, album, "album_object_id", "object_id", "album_name", "name");
assocData(video, pics, "owner", "id", "owner_pic", "url");
VideoDeserializer deserializer = new VideoDeserializer();
ArrayList<GraphObject> list = (ArrayList<GraphObject>) deserializer.deserializeArray(video);
setHasMoreData(false);
return list;
}
}