package com.yuyh.sprintnba.ui.presenter.impl;
import android.content.Context;
import android.text.TextUtils;
import com.yuyh.library.utils.toast.ToastUtils;
import com.yuyh.sprintnba.http.api.RequestCallback;
import com.yuyh.sprintnba.http.api.hupu.forum.HupuForumService;
import com.yuyh.sprintnba.http.bean.forum.ThreadsSchemaInfoData;
import com.yuyh.sprintnba.ui.presenter.Presenter;
import com.yuyh.sprintnba.ui.view.ThreadDetailView;
import com.yuyh.sprintnba.utils.ShareUtils;
import java.util.ArrayList;
import java.util.List;
/**
* @author yuyh.
* @date 16/6/25.
*/
public class ThreadDetailPresenterImpl implements Presenter {
private Context context;
private ThreadDetailView detailView;
private String tid;
private String fid;
private String pid;
private int page;
private int totalPage;
private int currentPage = 1;
private List<String> urls = new ArrayList<>();
private boolean isCollected;
private String title;
private String shareText;
public ThreadDetailPresenterImpl(Context context, ThreadDetailView detailView) {
this.context = context;
this.detailView = detailView;
}
public void setParams(String tid, String fid, int page, String pid) {
this.tid = tid;
this.fid = fid;
this.pid = pid;
this.page = page;
}
@Override
public void initialized() {
HupuForumService.getThreadInfo(tid, fid, page, pid, new RequestCallback<ThreadsSchemaInfoData>() {
@Override
public void onSuccess(ThreadsSchemaInfoData threadSchemaInfo) {
if (threadSchemaInfo != null) {
totalPage = threadSchemaInfo.pageSize;
currentPage = threadSchemaInfo.page;
urls = createPageList(threadSchemaInfo.url, threadSchemaInfo.page, threadSchemaInfo.pageSize);
shareText = threadSchemaInfo.share.weibo;
title = threadSchemaInfo.share.wechat_moments;
detailView.loadContent(page, urls);
isCollected = threadSchemaInfo.isCollected == 1;
detailView.isCollected(isCollected);
} else {
detailView.showError("加载失败");
}
}
@Override
public void onFailure(String message) {
}
});
}
private List<String> createPageList(String url, int page, int pageSize) {
List<String> urls = new ArrayList<>();
for (int i = 1; i <= pageSize; i++) {
String newUrl = url.replace("page=" + page, "page=" + i);
urls.add(newUrl);
}
return urls;
}
public void updatePage(int page) {
currentPage = page;
}
public void onPageNext() {
currentPage++;
if (currentPage >= totalPage) {
currentPage = totalPage;
}
detailView.loadContent(currentPage, urls);
}
public void onPagePre() {
currentPage--;
if (currentPage <= 1) {
currentPage = 1;
}
detailView.loadContent(currentPage, urls);
}
public void onCommendClick() {
detailView.goPost(title);
detailView.onToggleFloatingMenu();
}
public void onShareClick() {
if (!TextUtils.isEmpty(shareText)) {
ShareUtils.share(context, shareText);
}
detailView.onToggleFloatingMenu();
}
public void onReportClick() {
detailView.goReport();
detailView.onToggleFloatingMenu();
}
public void onCollectClick() {
ToastUtils.showSingleToast("暂不支持哦~");
// TODO 收藏/取消收藏
detailView.onToggleFloatingMenu();
}
}