package com.wenming.weiswift.mvp.model.imp;
import android.content.Context;
import com.sina.weibo.sdk.exception.WeiboException;
import com.sina.weibo.sdk.net.RequestListener;
import com.wenming.weiswift.api.StatusesAPI;
import com.wenming.weiswift.entity.Status;
import com.wenming.weiswift.entity.list.StatusList;
import com.wenming.weiswift.mvp.model.HotWeiBoModel;
import com.wenming.weiswift.ui.common.NewFeature;
import com.wenming.weiswift.ui.common.login.AccessTokenKeeper;
import com.wenming.weiswift.ui.common.login.Constants;
import com.wenming.weiswift.utils.ToastUtil;
import com.wenming.weiswift.widget.toast.LoadedToast;
import java.util.ArrayList;
/**
* Created by wenmingvs on 16/5/16.
*/
public class HotWeiBoModelImp implements HotWeiBoModel {
private ArrayList<Status> mStatusList = new ArrayList<>();
@Override
public void getHotWeiBo(final Context context, final OnDataFinishedListener onDataFinishedListener) {
getPublicWeiBo(context, onDataFinishedListener);
}
@Override
public void getHotWeiBoNextPage(Context context, OnDataFinishedListener onDataFinishedListener) {
getPublicWeiBo(context, onDataFinishedListener);
}
private void getPublicWeiBo(final Context context, final OnDataFinishedListener onDataFinishedListener) {
StatusesAPI mStatusesAPI = new StatusesAPI(context, Constants.APP_KEY, AccessTokenKeeper.readAccessToken(context));
mStatusesAPI.publicTimeline(NewFeature.LOAD_PUBLICWEIBO_ITEM, 1, false, new RequestListener() {
@Override
public void onComplete(String response) {
ArrayList<Status> temp = StatusList.parse(response).statuses;
LoadedToast.showToast(context, temp.size() + "条新微博");
if (temp != null && temp.size() > 0) {
mStatusList.addAll(temp);
onDataFinishedListener.onDataFinish(mStatusList);
} else {
onDataFinishedListener.noMoreDate();
}
}
@Override
public void onWeiboException(WeiboException e) {
ToastUtil.showShort(context, e.getMessage());
onDataFinishedListener.onError(e.getMessage());
}
});
}
}