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.
61 lines
2.4 KiB
61 lines
2.4 KiB
package com.community.pocket.ui.register;
|
|
|
|
import androidx.lifecycle.MutableLiveData;
|
|
import androidx.lifecycle.ViewModel;
|
|
|
|
import com.community.pocket.R;
|
|
import com.community.pocket.data.register.RegisterRequest;
|
|
import com.community.pocket.util.ValidUtil;
|
|
|
|
/**
|
|
* 管理注册UI相关数据
|
|
*/
|
|
class RegisterViewModel extends ViewModel {
|
|
|
|
//注册表单校验信息
|
|
private MutableLiveData<RegisterFormState> registerFormState = new MutableLiveData<>();
|
|
//注册结果
|
|
private MutableLiveData<RegisterResponse> registerResult = new MutableLiveData<>();
|
|
|
|
//注册请求
|
|
private RegisterRequest registerRequest;
|
|
|
|
RegisterViewModel(RegisterRequest registerRequest) {
|
|
this.registerRequest = registerRequest;
|
|
}
|
|
|
|
MutableLiveData<RegisterFormState> getRegisterFormState() {
|
|
return registerFormState;
|
|
}
|
|
|
|
MutableLiveData<RegisterResponse> getRegisterResult() {
|
|
return registerResult;
|
|
}
|
|
|
|
//注册
|
|
void register(String username, String password, String mobilePhone, String email) {
|
|
registerRequest.register(registerResult, username, password, mobilePhone, email);
|
|
}
|
|
|
|
//监听注册表单数据变化触发数据校验
|
|
void registerDataChanged(String username, String password, String confirmPassword, String mobilePhone, String email) {
|
|
if (!ValidUtil.usernamevalid(username)) {
|
|
registerFormState.setValue(new RegisterFormState(R.string.invalid_username, null, null, null, null));
|
|
} else if (!ValidUtil.passwordvalid(password)) {
|
|
registerFormState.setValue(new RegisterFormState(null, R.string.invalid_password, null, null, null));
|
|
} else if (!ValidUtil.passwordvalid(confirmPassword)) {
|
|
registerFormState.setValue(new RegisterFormState(null, null, R.string.invalid_password, null, null));
|
|
} else if (!confirmPassword.equals(password)) {
|
|
registerFormState.setValue(new RegisterFormState(null, null, R.string.invalid_confirm_password, null, null));
|
|
} else if (!ValidUtil.mobilePhoneValid(mobilePhone)) {
|
|
registerFormState.setValue(new RegisterFormState(null, null, null, R.string.invalid_mobiephone, null));
|
|
} else if (!ValidUtil.emailValid(email)) {
|
|
registerFormState.setValue(new RegisterFormState(null, null, null, null, R.string.invalid_email));
|
|
} else {
|
|
registerFormState.setValue(new RegisterFormState(true));
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|