package com.ui.user;
import com.C;
import com.DbFactory;
import com.EventTags;
import com.app.annotation.apt.InstanceFactory;
import com.app.annotation.javassist.Bus;
import com.app.annotation.javassist.BusRegister;
import com.app.annotation.javassist.BusUnRegister;
import com.apt.ApiFactory;
import com.base.adapter.AdapterPresenter;
import com.base.entity.Face;
import com.base.entity.Pointer;
import com.base.event.OkBus;
import com.base.util.SpUtil;
import com.google.gson.Gson;
import com.model._User;
import java.io.File;
import okhttp3.MediaType;
import okhttp3.RequestBody;
/**
* Created by baixiaokang on 16/5/5.
*/
@InstanceFactory
public class UserPresenter extends UserContract.Presenter {
@Override
public void upLoadFace(File file) {
mView.showMsg("正在上传!");
mCompositeSubscription.add(
ApiFactory.upFile(file.getName(),
RequestBody.create(MediaType.parse("image/*"), file))
.subscribe(
res -> upUserInfo(res.url),
e -> mView.showMsg("上传失败!")));
}
@Override
public void upUserInfo(String face) {
_User user = SpUtil.getUser();
user.face = face;
mCompositeSubscription.add(
ApiFactory.upUser(
user.sessionToken, user.objectId,
new Face(user.face))
.subscribe(
res -> {
SpUtil.setUser(user);
OkBus.getInstance().onEvent(EventTags.ON_USER_LOGIN, user);
mView.showMsg("更新成功!");
},
e -> mView.showMsg("更新失败!")));
}
@Override
public void initAdapterPresenter(AdapterPresenter mAdapterPresenter, _User user) {
String creater = new Gson().toJson(new Pointer(_User.class.getSimpleName(), user.objectId));
mAdapterPresenter.setNetRepository(ApiFactory::getCommentList)
.setDbRepository(DbFactory::getUserCommentList)
.setParam(C.OBJECT_ID, user.objectId)
.setParam(C.INCLUDE, C.ARTICLE)
.setParam(C.CREATER, creater)
.fetch();
}
@BusRegister
public void onAttached() {
}
@Bus(EventTags.ON_USER_LOGIN)
public void OnLogin(_User user) {
mView.initUser(user);
}
@BusUnRegister
public void onDetached() {
super.onDetached();
}
}