| | |
| | | package com.application.zhangshi_app_android.ui.login; |
| | | |
| | | import static com.android.app_base.base.BaseConfig.CODE_SUCCESS; |
| | | |
| | | import android.app.Application; |
| | | import android.text.TextUtils; |
| | | |
| | | import androidx.annotation.NonNull; |
| | | import androidx.lifecycle.MutableLiveData; |
| | | |
| | | import com.android.app_base.base.StateViewEnum; |
| | | import com.android.app_base.base.viewmodel.BaseViewModel; |
| | | import com.android.app_base.http.ResultData; |
| | | import com.android.app_base.manager.AppManager; |
| | | import com.android.app_base.manager.UserManager; |
| | | import com.android.app_base.utils.RxUtils; |
| | | import com.android.app_base.utils.ToastUtils; |
| | | import com.application.zhangshi_app_android.bean.CaptchaImageBean; |
| | | import com.application.zhangshi_app_android.bean.LoginRequestBean; |
| | | import com.application.zhangshi_app_android.bean.LoginResponseBean; |
| | | import com.application.zhangshi_app_android.data.DataRepository; |
| | | import com.application.zhangshi_app_android.ui.main.MainActivity; |
| | | |
| | | import java.util.Objects; |
| | | |
| | | import io.reactivex.Observer; |
| | | import io.reactivex.disposables.Disposable; |
| | | |
| | | /** |
| | | * @author Ljj |
| | |
| | | * @desc 登录注册ViewModel |
| | | */ |
| | | public class LoginActivityViewModel extends BaseViewModel<DataRepository> { |
| | | private MutableLiveData<CaptchaImageBean> captchaImageLiveData = new MutableLiveData<>(); |
| | | private MutableLiveData<String> username = new MutableLiveData<>(); |
| | | private MutableLiveData<String> password = new MutableLiveData<>(); |
| | | private MutableLiveData<String> againPassword = new MutableLiveData<>(); |
| | | private MutableLiveData<Boolean> passwordVisibility = new MutableLiveData<>(); |
| | | private MutableLiveData<Boolean> againPasswordVisibility = new MutableLiveData<>(); |
| | | |
| | | private MutableLiveData<String> value = new MutableLiveData<>(); |
| | | public LoginActivityViewModel(@NonNull Application application) { |
| | | super(application); |
| | | passwordVisibility.postValue(true); |
| | | againPasswordVisibility.postValue(true); |
| | | } |
| | | |
| | | @Override |
| | | protected DataRepository initModel() { |
| | | return DataRepository.getInstance(); |
| | | } |
| | | |
| | | public void getCaptchaImage(){ |
| | | model.getCaptchaImage() |
| | | .compose(RxUtils.schedulersTransformer()) |
| | | .subscribe(new Observer<ResultData<CaptchaImageBean>>() { |
| | | @Override |
| | | public void onSubscribe(Disposable d) { |
| | | addSubscribe(d); |
| | | } |
| | | |
| | | @Override |
| | | public void onNext(ResultData<CaptchaImageBean> captchaImageBeanResultData) { |
| | | if (captchaImageBeanResultData.getCode() == CODE_SUCCESS){ |
| | | captchaImageLiveData.postValue(captchaImageBeanResultData.getData()); |
| | | }else { |
| | | changeStateView(StateViewEnum.DATA_ERROR); |
| | | messageLiveData.postValue(captchaImageBeanResultData.getMsg()); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onError(Throwable e) { |
| | | messageLiveData.postValue(e.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public void onComplete() { |
| | | |
| | | } |
| | | }); |
| | | } |
| | | |
| | | public void login(){ |
| | | if (TextUtils.isEmpty(username.getValue()) || TextUtils.isEmpty(password.getValue())||TextUtils.isEmpty(password.getValue())){ |
| | | ToastUtils.showShort("请输入账号密码"); |
| | | return; |
| | | } |
| | | if (TextUtils.isEmpty(value.getValue())){ |
| | | ToastUtils.showShort("请输入验证码"); |
| | | return; |
| | | } |
| | | if (captchaImageLiveData.getValue() != null){ |
| | | model.login(new LoginRequestBean(username.getValue(),password.getValue(),captchaImageLiveData.getValue().getValue(),captchaImageLiveData.getValue().getUuid())) |
| | | .compose(RxUtils.schedulersTransformer()) |
| | | .subscribe(new Observer<ResultData<LoginResponseBean>>() { |
| | | @Override |
| | | public void onSubscribe(Disposable d) { |
| | | addSubscribe(d); |
| | | } |
| | | |
| | | @Override |
| | | public void onNext(ResultData<LoginResponseBean> loginResponseBeanResultData) { |
| | | if (loginResponseBeanResultData.getCode() == CODE_SUCCESS){ |
| | | String token = loginResponseBeanResultData.getData().getToken(); |
| | | UserManager.getInstance().setToken(token); |
| | | ToastUtils.showShort("登陆成功"); |
| | | AppManager.getAppManager().startActivity(MainActivity.class); |
| | | }else { |
| | | changeStateView(StateViewEnum.DATA_ERROR); |
| | | messageLiveData.postValue(loginResponseBeanResultData.getMsg()); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onError(Throwable e) { |
| | | messageLiveData.postValue(e.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public void onComplete() { |
| | | |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | public void register(){ |
| | | if (TextUtils.isEmpty(username.getValue()) || TextUtils.isEmpty(password.getValue())||TextUtils.isEmpty(password.getValue())){ |
| | | ToastUtils.showShort("请输入账号密码"); |
| | | return; |
| | | } |
| | | if (TextUtils.isEmpty(value.getValue())){ |
| | | ToastUtils.showShort("请输入验证码"); |
| | | return; |
| | | } |
| | | if (!Objects.equals(password.getValue(), againPassword.getValue())){ |
| | | ToastUtils.showShort("两次密码输入不一致"); |
| | | return; |
| | | } |
| | | if (captchaImageLiveData.getValue() != null){ |
| | | model.register(new LoginRequestBean(username.getValue(),password.getValue(),captchaImageLiveData.getValue().getValue(),captchaImageLiveData.getValue().getUuid())) |
| | | .compose(RxUtils.schedulersTransformer()) |
| | | .subscribe(new Observer<ResultData<String>>() { |
| | | @Override |
| | | public void onSubscribe(Disposable d) { |
| | | addSubscribe(d); |
| | | } |
| | | |
| | | @Override |
| | | public void onNext(ResultData<String> stringResultData) { |
| | | if (stringResultData.getCode() == CODE_SUCCESS){ |
| | | ToastUtils.showShort("注册成功"); |
| | | AppManager.getAppManager().finishCurrentActivity(); |
| | | }else { |
| | | changeStateView(StateViewEnum.DATA_ERROR); |
| | | messageLiveData.postValue(stringResultData.getMsg()); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onError(Throwable e) { |
| | | messageLiveData.postValue(e.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public void onComplete() { |
| | | |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | public MutableLiveData<CaptchaImageBean> getCaptchaImageLiveData() { |
| | | return captchaImageLiveData; |
| | | } |
| | | |
| | | public void setCaptchaImageLiveData(MutableLiveData<CaptchaImageBean> captchaImageLiveData) { |
| | | this.captchaImageLiveData = captchaImageLiveData; |
| | | } |
| | | |
| | | public MutableLiveData<String> getUsername() { |
| | | return username; |
| | | } |
| | | |
| | | public void setUsername(MutableLiveData<String> username) { |
| | | this.username = username; |
| | | } |
| | | |
| | | public MutableLiveData<String> getPassword() { |
| | | return password; |
| | | } |
| | | |
| | | public MutableLiveData<String> getAgainPassword() { |
| | | return againPassword; |
| | | } |
| | | |
| | | public void setAgainPassword(MutableLiveData<String> againPassword) { |
| | | this.againPassword = againPassword; |
| | | } |
| | | |
| | | public void setPassword(MutableLiveData<String> password) { |
| | | this.password = password; |
| | | } |
| | | |
| | | public MutableLiveData<Boolean> getPasswordVisibility() { |
| | | return passwordVisibility; |
| | | } |
| | | |
| | | public void setPasswordVisibility(MutableLiveData<Boolean> passwordVisibility) { |
| | | this.passwordVisibility = passwordVisibility; |
| | | } |
| | | |
| | | public MutableLiveData<Boolean> getAgainPasswordVisibility() { |
| | | return againPasswordVisibility; |
| | | } |
| | | |
| | | public void setAgainPasswordVisibility(MutableLiveData<Boolean> againPasswordVisibility) { |
| | | this.againPasswordVisibility = againPasswordVisibility; |
| | | } |
| | | |
| | | public MutableLiveData<String> getValue() { |
| | | return value; |
| | | } |
| | | |
| | | public void setValue(MutableLiveData<String> value) { |
| | | this.value = value; |
| | | } |
| | | } |