package com.mathiasluo.designer.presenter;
import android.app.Activity;
import com.mathiasluo.designer.app.APP;
import com.mathiasluo.designer.bean.User;
import com.mathiasluo.designer.model.IModel.UserModel;
import com.mathiasluo.designer.model.UserModelImpl;
import com.mathiasluo.designer.model.service.ServiceAPI;
import com.mathiasluo.designer.model.service.ServiceAPIModel;
import com.mathiasluo.designer.utils.LogUtils;
import com.mathiasluo.designer.utils.SPUtil;
import com.mathiasluo.designer.view.activity.LoginActivity;
import rx.Observable;
import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Action1;
import rx.functions.Func1;
import rx.schedulers.Schedulers;
/**
* Created by MathiasLuo on 2016/3/4.
*/
public class LoginPresenter extends BasePresenter<LoginActivity> {
ServiceAPI serviceAPI;
private String accessToken;
private UserModel mUserModel;
@Override
public void OnViewResume() {
super.OnViewResume();
serviceAPI = ServiceAPIModel.provideServiceAPI(ServiceAPIModel.provideOkHttpClient());
mUserModel = UserModelImpl.getInstance();
}
public void getAccesToken(final String athuCode) {
mUserModel.Login2GetAccessToken(athuCode)
.flatMap(new Func1<String, Observable<User>>() {
@Override
public Observable<User> call(String s) {
accessToken = s;
SPUtil.putAccesToken(APP.getInstance(), s);
return mUserModel.getUseWithAccessToken(s);
}
})
.subscribeOn(Schedulers.newThread())
.map(new Func1<User, User>() {
@Override
public User call(User user) {
user.setAccessToken(accessToken);
mUserModel.saveUserToReaml(user);
return user;
}
})
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<User>() {
@Override
public void call(User user) {
getView().setResult(Activity.RESULT_OK);
getView().finish();
}
}, new Action1<Throwable>() {
@Override
public void call(Throwable throwable) {
LogUtils.e("又是在这里出现了问题呀----->" + throwable.toString());
}
});
}
}