package com.caij.emore.present.imp;
import com.caij.emore.api.ex.ResponseSubscriber;
import com.caij.emore.bean.Attitude;
import com.caij.emore.bean.response.AttitudeResponse;
import com.caij.emore.data.local.NotifyManager;
import com.caij.emore.database.bean.UnReadMessage;
import com.caij.emore.present.RefreshListPresent;
import com.caij.emore.data.remote.AttitudeApi;
import com.caij.emore.data.remote.NotifyApi;
import com.caij.emore.ui.view.RefreshListView;
import com.caij.emore.api.ex.ErrorCheckerTransformer;
import com.caij.emore.api.ex.SchedulerTransformer;
import com.caij.emore.utils.weibo.MessageUtil;
import java.util.ArrayList;
import java.util.List;
import rx.Observable;
import rx.Subscription;
import rx.functions.Func1;
/**
* Created by Caij on 2016/7/4.
*/
public class AttitudesToMePresentImp extends AbsBasePresent implements RefreshListPresent {
private static final int COUNT = 20;
private long mUid;
private RefreshListView<Attitude> mView;
private List<Attitude> mAttitudes;
private AttitudeApi mAttitudeApi;
private NotifyApi mNotifyApi;
private NotifyManager mNotifyManager;
private int mPage;
public AttitudesToMePresentImp(long uid, AttitudeApi attitudeApi,
NotifyApi notifyApi, NotifyManager notifyManager,
RefreshListView<Attitude> view) {
super();
mUid = uid;
mAttitudeApi = attitudeApi;
mView = view;
mNotifyApi = notifyApi;
mNotifyManager = notifyManager;
mAttitudes = new ArrayList<>();
}
@Override
public void onCreate() {
refresh();
}
@Override
public void userFirstVisible() {
}
@Override
public void refresh() {
Subscription su = createGetAttitudeObservable(1, true)
.subscribe(new ResponseSubscriber<List<Attitude>>(mView) {
@Override
protected void onFail(Throwable e) {
mView.onRefreshComplete();
}
@Override
public void onNext(List<Attitude> attitudes) {
mAttitudes.clear();
mAttitudes.addAll(attitudes);
mView.notifyItemChanged(mAttitudes);
mView.onRefreshComplete();
mView.onLoadComplete(attitudes.size() > 0);
MessageUtil.resetUnReadMessage(UnReadMessage.TYPE_ATTITUDE, mUid, mNotifyApi, mNotifyManager);
mPage = 2;
}
});
addSubscription(su);
}
@Override
public void loadMore() {
Subscription su = createGetAttitudeObservable(mPage, false)
.subscribe(new ResponseSubscriber<List<Attitude>>(mView) {
@Override
protected void onFail(Throwable e) {
mView.onLoadComplete(true);
}
@Override
public void onCompleted() {
}
@Override
public void onNext(List<Attitude> attitudes) {
mAttitudes.addAll(attitudes);
mView.notifyItemRangeInserted(mAttitudes, mAttitudes.size() - attitudes.size(),
attitudes.size());
mView.onLoadComplete(attitudes.size() > 0);
mPage ++;
}
});
addSubscription(su);
}
private Observable<List<Attitude>> createGetAttitudeObservable(int page, final boolean isRefresh) {
return mAttitudeApi.getToMeAttitudes(0, 0, page, COUNT)
.compose(new ErrorCheckerTransformer<AttitudeResponse>())
.flatMap(new Func1<AttitudeResponse, Observable<Attitude>>() {
@Override
public Observable<Attitude> call(AttitudeResponse queryWeiboAttitudeResponse) {
return Observable.from(queryWeiboAttitudeResponse.getAttitudes());
}
})
.filter(new Func1<Attitude, Boolean>() {
@Override
public Boolean call(Attitude attitude) {
return !mAttitudes.contains(attitude) || isRefresh;
}
})
.toList()
.compose(new SchedulerTransformer<List<Attitude>>());
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
bygzvr.zip_C#_according174_create33w_unusual9i1
共5个文件
java:5个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 133 浏览量
2022-09-23
03:46:47
上传
评论
收藏 3KB ZIP 举报
温馨提示
简单的OA协同办公系统,简单的实现了用户管理、部门管理、岗位管理以及论坛相关的功能.
资源推荐
资源详情
资源评论
收起资源包目录
bygzvr.zip (5个子文件)
CircleView.java 2KB
DBManager.java 1KB
UserStatusPresent.java 174B
AttitudesToMePresentImp.java 4KB
SplashPresent.java 178B
共 5 条
- 1
资源评论
alvarocfc
- 粉丝: 105
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功