You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
1.7 KiB

4 years ago
package com.community.pocket.ui.login;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import com.community.pocket.R;
import com.community.pocket.data.login.LoginRequest;
import com.community.pocket.ui.main.ui.share.BaseViewModel;
import com.community.pocket.util.ValidUtil;
4 years ago
/**
* 管理 登陆UI 相关数据
*/
public class LoginViewModel extends BaseViewModel<LoginRequest> {
4 years ago
//登陆表单校验信息
4 years ago
private MutableLiveData<LoginFormState> loginFormState = new MutableLiveData<>();
//登陆结果
private MutableLiveData<LoginResponse> loginResult = new MutableLiveData<>();
//检查token结果
private MutableLiveData<LoginResponse> checkToken = new MutableLiveData<>();
4 years ago
LiveData<LoginFormState> getLoginFormState() {
return loginFormState;
}
LiveData<LoginResponse> getLoginResult() {
4 years ago
return loginResult;
}
public MutableLiveData<LoginResponse> getCheckToken() {
return checkToken;
}
//登陆
4 years ago
public void login(String username, String password) {
getRequest().login(loginResult, username, password);
4 years ago
}
//登陆表单数据变化触发数据校验
void loginDataChanged(String username, String password) {
if (!ValidUtil.usernamevalid(username)) {
4 years ago
loginFormState.setValue(new LoginFormState(R.string.invalid_username, null));
} else if (!ValidUtil.passwordvalid(password)) {
4 years ago
loginFormState.setValue(new LoginFormState(null, R.string.invalid_password));
} else {
loginFormState.setValue(new LoginFormState(true));
}
}
@Override
protected LoginRequest getRequest() {
return LoginRequest.getInstance();
}
4 years ago
}