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

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));
}
}
}