package com.yidianling.dynamic.trendsDetail; import androidx.appcompat.app.AppCompatActivity; import com.ydl.ydlcommon.data.http.BaseAPIResponse; import com.ydl.ydlcommon.data.http.BaseResponse; import com.ydl.ydlcommon.mvp.base.SimplePresenter; import com.ydl.ydlcommon.utils.UserInfoCache; import com.yidianling.common.tools.LogUtil; import com.yidianling.dynamic.bean.DynamicConstants; import com.yidianling.dynamic.common.net.DynamicApiUtils; import com.yidianling.dynamic.model.CommentBean; import com.yidianling.dynamic.model.ExpertBuild; import com.yidianling.dynamic.model.Focus; import com.yidianling.dynamic.model.Reply; import com.yidianling.dynamic.model.TrendsDetailInfoBean; import com.yidianling.dynamic.model.ZanResult; import com.yidianling.dynamic.router.DynamicIn; import java.util.List; /** * Created by Jim on 2017/10/10 0010. */ public class ITrendsDetailPresenterImpl extends SimplePresenter<ITrendsDetailView> implements ITrendsDetailPresenter, ITrendsDetailPresenter.OnTrendsDetailDataLoadFinishedListenner { private TrendsDetailInteractor mTrendsDetailInteractor; public ITrendsDetailPresenterImpl() { mTrendsDetailInteractor = new TrendsDetailInteractor(); mTrendsDetailInteractor.setCallBack(this); } public void fetchTrendsDetails(int id) { if (mView != null) { mView.showLoadingView(""); } mTrendsDetailInteractor.fetchTrendsDetails(id); } public void fetchCommentsDatas(int id, int page, int lastId, int direction) { mTrendsDetailInteractor.fetchCommentsDatas(id, page, lastId, direction); } public void fetchCommentsDatas(int page) { mTrendsDetailInteractor.fetchCommentsDatas(page); } /** * 点赞 */ public void doLikeAction(int type, int id) { mTrendsDetailInteractor.doLikeAction(type, id); } public void focus(String uid) { if (mView != null) { mView.showLoadingView(""); } mTrendsDetailInteractor.focus(uid); } /** * //获取举报的内容列表 */ public void fetchReportReasonContent(int answerId, String commentContent) { if (mView != null) { mView.showLoadingView(""); } mTrendsDetailInteractor.fetchReportReasonContent(answerId, commentContent); } //举报帖子评论 public void report(int trendId, int type, int reasonId, int answerId, String answerContent) { if (mView != null) { mView.showLoadingView(""); } mTrendsDetailInteractor.report(trendId, type, reasonId, answerId, answerContent); } /** * //删除帖子或评论 * * @param type 移除类型:1移除评论,2移除动态 * @param id 评论的id,动态id */ public void delTrendsReply(int type, int id, int position) { if (mView != null) { mView.showLoadingView(""); } mTrendsDetailInteractor.delTrendsReply(type, id, position); } public void getExpert(AppCompatActivity activity, String expertUid) { mTrendsDetailInteractor.getExpert(activity, expertUid); } public void commitOrReply(int type, String tid, String content, String replyContent, String toName) { if (mView != null) { mView.showLoadingView(""); } mTrendsDetailInteractor.commitOrReply(type, tid, content, replyContent, toName); } @Override public void onTrendsDetailFetched(BaseAPIResponse<TrendsDetailInfoBean> trendsDetailInfoBean) { mView.hideRefreshProgress(); mView.hideLoadingView(); if ("200".equals(trendsDetailInfoBean.code)) { mView.showTrendsBodyContent(trendsDetailInfoBean.data.active); mView.showZanList(trendsDetailInfoBean.data.members); mView.showAds(trendsDetailInfoBean.data.adsData); // mView.showCommentsList(trendsDetailInfoBean.data.comments); } else if ("-300011".equals(trendsDetailInfoBean.code)) { //帖子被删除 mView.showTrendsNotExsitView(); } else { mView.showToast(trendsDetailInfoBean.msg); } } @Override public void onTrendsDetailFetchFailed(Throwable e) { LogUtil.i("onTrendsDetailFetchFailed: " + e); mView.hideRefreshProgress(); mView.hideLoadingView(); mView.showTrendsLoadErrorView(); DynamicApiUtils.handleError((TrendsDetailActivity) mView, e); } @Override public void onCommentsListFetched(List<CommentBean> commentsBean) { mView.hideRefreshProgress(); mView.hideLoadingView(); mView.showCommentsList(commentsBean); } @Override public void onCommentsListFetchedFailed(Throwable e) { LogUtil.i("onCommentsListFetchedFailed: " + e); mView.hideRefreshProgress(); mView.showCommentsLoadError(); DynamicApiUtils.handleError((TrendsDetailActivity) mView, e); } @Override public void ondoLikeActionFetchedResult(BaseResponse<ZanResult> zanResultBaseBean, int type) { mView.hideLoadingView(); if (zanResultBaseBean.code == 0) { if (type == 2) { //帖子点赞 switch (zanResultBaseBean.data.status) { case 1: //已赞 LogUtil.d("like state 2"); mView.showLikedView(); break; case 2: //未赞 LogUtil.d("like state 2"); mView.showUnLikeView(); break; } } else if (type == 3) { //动态回复点赞 mView.showCommentsItemLikeStatus(zanResultBaseBean.data.status); } } else { mView.showToast(zanResultBaseBean.msg); } } @Override public void onFoucusActionSuccessed(BaseResponse<Focus> response) { if (response.code == 0) { mView.hideLoadingView(); mView.showFousChangeView(); } else { mView.hideLoadingView(); mView.showToast(response.msg); } } @Override public void onReportContentFetched(BaseResponse response, int answerId, String commentContent) { if (response.code == 0) { mView.hideLoadingView(); mView.showReportContentView(response, answerId, commentContent); } else { mView.showToast(response.msg); } } @Override public void onReportSuccessed(BaseResponse<Object> response) { mView.hideLoadingView(); if (response.code == 0) { mView.showToast("举报信息已提交 谢谢"); } else { mView.showToast(response.msg); } } @Override public void onGetExpertSuccesssed(BaseResponse<ExpertBuild> response) { if (response.code == 0 || response.code == 200) { ExpertBuild expert = response.data; UserInfoCache.getInstance().saveYDLUser(expert.shareData.toUid, expert.shareData.name, expert.shareData.cover); DynamicIn.INSTANCE.startChat((AppCompatActivity) mView, expert.shareData.toUid); } else { mView.showToast(response.msg); } } @Override public void onCommentOrReplySuccessed(BaseResponse<Reply> replyBaseResponse, int type, String content, String replyContent, String toName) { mView.hideLoadingView(); if (replyBaseResponse.code == 0) { mView.refreshCommentListAfterComment(replyBaseResponse, type, content, replyContent, toName); } else if (replyBaseResponse.code == DynamicConstants.SILENCED_CODE) { mView.showSilencedDialog(replyBaseResponse.data.tips, replyBaseResponse.data.url); } else { mView.showToast(replyBaseResponse.msg); } } @Override public void onDeleteSuccessed(BaseResponse<Object> response, int type, int position) { mView.hideLoadingView(); if (response.code == 0) { mView.showDeleteReplyOrTrendView(response, type, position); } else { mView.showToast(response.msg); } } @Override public void showDataLoadErrorView(Throwable e) { LogUtil.d("showDataLoadErrorView: " + e); mView.hideLoadingView(); mView.hideRefreshProgress(); DynamicApiUtils.handleError((TrendsDetailActivity) mView, e); } }