package com.xiaomai.geek.presenter.github;
import com.xiaomai.geek.data.api.AccountApi;
import com.xiaomai.geek.data.module.User;
import com.xiaomai.geek.data.net.response.BaseResponseObserver;
import com.xiaomai.geek.presenter.BaseRxPresenter;
import com.xiaomai.geek.view.ILoginView;
import javax.inject.Inject;
import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Action0;
import rx.schedulers.Schedulers;
/**
* Created by XiaoMai on 2017/4/26.
*/
public class LoginPresenter extends BaseRxPresenter<ILoginView> {
private final AccountApi accountApi;
@Inject
public LoginPresenter(AccountApi accountApi) {
this.accountApi = accountApi;
}
public void login(String userName, String password) {
mCompositeSubscription.add(
accountApi.login(userName, password)
.subscribeOn(Schedulers.io())
.doOnSubscribe(new Action0() {
@Override
public void call() {
getMvpView().showLoading();
}
})
.doOnTerminate(new Action0() {
@Override
public void call() {
getMvpView().dismissLoading();
}
})
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseResponseObserver<User>() {
@Override
public void onSuccess(User user) {
if (user != null) {
getMvpView().loginSuccess(user);
} else {
getMvpView().error(new Throwable("登录失败!"));
}
}
@Override
public void onError(Throwable e) {
getMvpView().error(e);
}
})
);
}
}