package com.jaydenxiao.androidfire.ui.zone.presenter;
import android.view.View;
import com.alibaba.fastjson.JSON;
import com.aspsine.irecyclerview.bean.PageBean;
import com.jaydenxiao.androidfire.R;
import com.jaydenxiao.androidfire.app.AppConstant;
import com.jaydenxiao.androidfire.bean.Result;
import com.jaydenxiao.androidfire.ui.zone.DatasUtil;
import com.jaydenxiao.androidfire.ui.zone.bean.CircleItem;
import com.jaydenxiao.androidfire.ui.zone.bean.CommentConfig;
import com.jaydenxiao.androidfire.ui.zone.bean.CommentItem;
import com.jaydenxiao.androidfire.ui.zone.bean.FavortItem;
import com.jaydenxiao.androidfire.ui.zone.contract.CircleZoneContract;
import com.jaydenxiao.androidfire.ui.zone.widget.GoodView;
import com.jaydenxiao.common.baseapp.AppCache;
import com.jaydenxiao.common.commonutils.JsonUtils;
import com.jaydenxiao.common.commonutils.LogUtils;
import com.jaydenxiao.common.commonutils.ToastUitl;
import com.wevey.selector.dialog.DialogOnClickListener;
import com.wevey.selector.dialog.MDAlertDialog;
import java.util.List;
import java.util.Random;
import rx.Subscriber;
import rx.functions.Action1;
/**
* des:朋友圈presenter
* Created by xsf
* on 2016.07.15:57
*/
public class CircleZonePresenter extends CircleZoneContract.Presenter {
//点赞效果
private GoodView mGoodView;
/**
* 监听
*/
@Override
public void onStart() {
super.onStart();
LogUtils.logd("dfsdfsd");
//新增说说监听
mRxManage.on(AppConstant.ZONE_PUBLISH_ADD, new Action1<CircleItem>() {
@Override
public void call(CircleItem circleItem) {
if (circleItem != null) {
mView.setOnePublishData(circleItem);
}
}
});
}
/**
* 获取未读总数
*/
@Override
public void getNotReadNewsCount() {
mRxManage.add(mModel.getZoneNotReadNews().subscribe(new Subscriber<String>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(String icon) {
mView.updateNotReadNewsCount(10, icon);
}
}));
}
/**
* 获取列表
*/
@Override
public void getListData(String type, String userId, final int page, int rows) {
//加载更多不显示加载条
if (page <= 1)
mView.showLoading("加载中...");
mRxManage.add(mModel.getListDatas(type, userId, page, rows).subscribe(new Subscriber<Result>() {
@Override
public void onCompleted() {
mView.stopLoading();
}
@Override
public void onError(Throwable e) {
mView.showErrorTip("" + e.getMessage());
}
@Override
public void onNext(Result result) {
if (result != null) {
try {
List<CircleItem> circleItems = JSON.parseArray(JsonUtils.getValue(result.getMsg(), "list"), CircleItem.class);
for (int i = 0; i < circleItems.size(); i++) {
circleItems.get(i).setPictures(DatasUtil.getRandomPhotoUrlString(new Random().nextInt(9)));
}
PageBean pageBean = JSON.parseObject(JsonUtils.getValue(result.getMsg(), "page"), PageBean.class);
mView.setListData(circleItems, pageBean);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}));
}
/**
* 删除朋友圈
*
* @param circleId
*/
MDAlertDialog mdAlertDialog;
@Override
public void deleteCircle(final String circleId, final int position) {
mdAlertDialog = new MDAlertDialog.Builder(mContext)
.setHeight(0.25f) //屏幕高度*0.3
.setWidth(0.7f) //屏幕宽度*0.7
.setTitleVisible(true)
.setTitleText("温馨提示")
.setTitleTextColor(R.color.black_light)
.setContentText("确定删除该条说说吗?")
.setContentTextColor(R.color.black_light)
.setLeftButtonText("不删除")
.setLeftButtonTextColor(R.color.black_light)
.setRightButtonText("删除")
.setRightButtonTextColor(R.color.gray)
.setTitleTextSize(16)
.setContentTextSize(14)
.setButtonTextSize(14)
.setOnclickListener(new DialogOnClickListener() {
@Override
public void clickLeftButton(View view) {
mdAlertDialog.dismiss();
}
@Override
public void clickRightButton(View view) {
mdAlertDialog.dismiss();
mView.startProgressDialog();
mRxManage.add(mModel.deleteCircle(circleId, position).subscribe(new Subscriber<Result>() {
@Override
public void onCompleted() {
mView.stopProgressDialog();
}
@Override
public void onError(Throwable e) {
mView.startProgressDialog();
ToastUitl.showToastWithImg(mContext.getString(R.string.net_error), R.drawable.ic_wrong);
}
@Override
public void onNext(Result result) {
mView.update2DeleteCircle(circleId, position);
}
}));
}
})
.build();
mdAlertDialog.show();
}
/**
* 点赞
*
* @param circlePosition
*/
@Override
public void addFavort(final String publishId, final String publishUserId, final int circlePosition, final View view) {
mView.startProgressDialog();
mRxManage.add(mModel.addFavort(publishId, publishUserId).subscribe(new Subscriber<Result>() {
@Override
public void onCompleted() {
mView.stopProgressDialog();
}
@Override
public void onError(Throwable e) {
ToastUitl.showToastWithImg(mContext.getString(R.string.net_error), R.drawable.ic_wrong);
}
@Override
public void onNext(Result result) {
if (result != null) {
if (mGoodView == null) {
mGoodView = new GoodView(mContext);
}
//mGoodView.setTextInfo("点赞成功", ContextCompat.getColor(mContext, R.color.main_color), 12);
mGoodView.setImage(R.drawable.dianzan);
mGoodView.show(view);
FavortItem item = new FavortItem(publishId, AppCache.getInstance().getUserId(), "jayden");
mView.update2AddFavorite(circlePosition, item);
}
}
}));
}
/**
* 取消点赞
*
* @param circlePosition
*/
@Override
public void deleteFavort(final String publishId, final String publishUserId, final int circlePosition) {
mView.startProgressDialog();
mRxManage.add(mModel.deleteFavort(publishId, publishUserId).subscribe(new Subscriber<Result>() {
@Override
public void onCompleted() {
mView.stopProgressDialog();
}
@Override
public void onError(Throwable e) {
ToastUitl.showToastWithImg(mContext.getString(R.string.net_error), R.drawable.ic_wrong);
}
@Override
public void onNext(Result result) {
if (result != null) {
mView.update2DeleteFavort(circlePosition, AppCache.getInstance().getUserId());
}
}
}));
}
/**
* 增加评论
*
* @param content
* @param config
*/
@Override
public void addComment(final String content, final CommentConfig config) {
if (config == null) {
return;
}
mView.startProgressDialog();
mRxManage.add(mModel.addComment(config.getPublishUserId(), new CommentItem(config.getName(), config.getId(), content, config.getPublishId(), AppCache.getInstance().getUserId(), "jayden")).subscribe(new Subscriber<Result>() {
@Override
public void onCompleted() {
mView.stopProgressDialog();
}
@Override
public void onError(Throwable e) {
mView.stopProgressDialog();
ToastUitl.showToastWithImg(mContext.getString(R.string.net_error), R.drawable.ic_wrong);
}
@Override
public void onNext(Result result) {
if (result != null) {
mView.update2AddComment(config.circlePosition, new CommentItem(config.getName(), config.getId(), content, config.getPublishId(), AppCache.getInstance().getUserId(), "锋"));
}
}
}));
}
/**
* 删除评论
*
* @param circlePosition
* @param commentId
*/
@Override
public void deleteComment(final int circlePosition, final String commentId, final int commentPosition) {
mView.startProgressDialog();
mRxManage.add(mModel.deleteComment(commentId).subscribe(new Subscriber<Result>() {
@Override
public void onCompleted() {
mView.stopProgressDialog();
}
@Override
public void onError(Throwable e) {
mView.stopProgressDialog();
ToastUitl.showToastWithImg(mContext.getString(R.string.net_error), R.drawable.ic_wrong);
}
@Override
public void onNext(Result result) {
mView.update2DeleteComment(circlePosition, commentId, commentPosition);
}
}));
}
/**
* 显示输入框
*
* @param commentConfig
*/
@Override
public void showEditTextBody(CommentConfig commentConfig) {
mView.updateEditTextBodyVisible(View.VISIBLE, commentConfig);
}
}