package org.aisen.weibo.sina.ui.fragment.mention;
import org.aisen.android.network.http.Params;
import org.aisen.android.network.task.TaskException;
import org.aisen.android.ui.fragment.ATabsFragment;
import org.aisen.weibo.sina.R;
import org.aisen.weibo.sina.base.AppContext;
import org.aisen.weibo.sina.base.AppSettings;
import org.aisen.weibo.sina.sinasdk.SinaSDK;
import org.aisen.weibo.sina.sinasdk.bean.StatusContents;
import org.aisen.weibo.sina.support.utils.AisenUtils;
import org.aisen.weibo.sina.ui.fragment.base.BizFragment;
import org.aisen.weibo.sina.ui.fragment.timeline.ATimelineFragment;
/**
* 提及的微博
*
* Created by wangdan on 15/4/15.
*/
public class MentionTimelineFragment extends ATimelineFragment implements ATabsFragment.ITabInitData {
public static MentionTimelineFragment newInstance() {
MentionTimelineFragment fragment = new MentionTimelineFragment();
return fragment;
}
@Override
public void requestData(RefreshMode mode) {
boolean load = true;
// 如果还没有加载过数据,切且显示的是当前的页面
if (getTaskCount(PAGING_TASK_ID) == 0) {
load = AisenUtils.checkTabsFragmentCanRequestData(this);
}
if (load) {
new MentionTimelineTask(mode).execute();
}
}
@Override
public void onTabRequestData() {
// 如果还没有加载过数据,就开始加载
if (getTaskCount(PAGING_TASK_ID) == 0) {
requestData(RefreshMode.reset);
}
}
class MentionTimelineTask extends ATimelineTask {
public MentionTimelineTask(RefreshMode mode) {
super(mode);
}
@Override
public StatusContents getStatusContents(Params params) throws TaskException {
// 全部的提及微博
params.addParameter("filter_by_author", "0");
return SinaSDK.getInstance(AppContext.getAccount().getAccessToken(), getTaskCacheMode(this)).statusesMentions(params);
}
@Override
protected void onSuccess(StatusContents result) {
super.onSuccess(result);
// 如果是缓存,发现有未读提及微博提醒,刷新列表
try {
if (AppContext.getAccount().getUnreadCount() != null && AppContext.getAccount().getUnreadCount().getMention_status() > 0
&& result.fromCache()) {
requestDataDelaySetRefreshing(AppSettings.REQUEST_DATA_DELAY);
BizFragment.createBizFragment(MentionTimelineFragment.this).remindSetCount(BizFragment.RemindType.mention_status);
}
} catch (Exception e) {
}
}
}
@Override
public boolean onToolbarDoubleClick() {
if (AisenUtils.checkTabsFragmentCanRequestData(this)) {
requestDataDelaySetRefreshing(AppSettings.REQUEST_DATA_DELAY);
getRefreshView().scrollToPosition(0);
return true;
}
return false;
}
}