package com.thankcreate.care.tool.fetcher;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONObject;
import android.os.Bundle;
import com.renren.api.connect.android.AsyncRenren;
import com.renren.api.connect.android.exception.RenrenError;
import com.thankcreate.care.App;
import com.thankcreate.care.tool.converter.RenrenConverter;
import com.thankcreate.care.tool.fetcher.BaseFetcher.CommentMan;
import com.thankcreate.care.tool.fetcher.BaseFetcher.FetchCompleteListener;
import com.thankcreate.care.tool.misc.MiscTool;
import com.thankcreate.care.tool.misc.StringTool;
import com.thankcreate.care.tool.misc.TaskHelper;
import com.thankcreate.care.tool.ui.ToastHelper;
import com.thankcreate.care.viewmodel.EntryType;
import com.thankcreate.care.viewmodel.ItemViewModel;
public class RenrenFetcher extends BaseFetcher {
List<CommentMan> finalList;
private String herID;
private String myID;
private FetchCompleteListener mFetchCompleteListener;
@Override
public void fetch(FetchCompleteListener listener) {
if(listener == null)
return;
finalList = new ArrayList<CommentMan>();
finalList.clear();
mFetchCompleteListener = listener;
herID = MiscTool.getHerID(EntryType.Renren);
myID = MiscTool.getMyID(EntryType.Renren);
if(StringTool.isNullOrEmpty(herID) || StringTool.isNullOrEmpty(myID))
{
listener.fetchComplete(finalList);
return;
}
AsyncRenren asyncRenren = new AsyncRenren(App.getRenren());
Bundle bd = new Bundle();
bd.putString("method", "feed.get");
bd.putString("type", "10,30,32");
bd.putString("uid", herID);
bd.putString("count", "50");
asyncRenren.requestJSON(bd, mRenrenUserTimeLineListener);
}
private com.renren.api.connect.android.RequestListener mRenrenUserTimeLineListener = new com.renren.api.connect.android.RequestListener() {
@Override
public void onRenrenError(RenrenError renrenError) {
if(mFetchCompleteListener != null)
{
mFetchCompleteListener.fetchComplete(finalList);
}
}
@Override
public void onFault(Throwable fault) {
if(mFetchCompleteListener != null)
{
mFetchCompleteListener.fetchComplete(finalList);
}
}
@Override
public void onComplete(String response) {
try {
JSONArray statuses = new JSONArray(response);
if(statuses != null)
{
for(int i = 0; i < statuses.length(); i++)
{
JSONObject ob = statuses.getJSONObject(i);
handleStatus(ob);
}
}
if(mFetchCompleteListener != null)
{
mFetchCompleteListener.fetchComplete(finalList);
}
} catch (Exception e) {
if(mFetchCompleteListener != null)
{
mFetchCompleteListener.fetchComplete(finalList);
}
}
}
};
private void handleStatus(JSONObject status)
{
if(status == null)
return;
JSONObject commentsWrapper = status.optJSONObject("comments");
if(commentsWrapper == null)
return;
JSONArray commentArray = commentsWrapper.optJSONArray("comment");
if(commentArray == null || commentArray.length() == 0)
return;
for(int i = 0; i < commentArray.length(); ++i)
{
JSONObject comment = commentArray.optJSONObject(i);
if(comment == null)
return;
String id = comment.optString("uid");
String name = comment.optString("name");
if(!id.equals(myID) && !id.equals(herID))
{
CommentMan man = new CommentMan();
man.id = id;
man.name = name;
finalList.add(man);
}
}
}
}