У меня есть наблюдаемое, которое не ждет результата от сервера. Как заставить его ждать, пока не будет введен правильный ввод, прежде чем он начнет проверять вещи?
код:
Активность:
public void updatePhoneNumber(){
spinner.setVisibility(View.VISIBLE);
String phoneNumber = countryCodeSpinner.getSelectedItem().toString() + phoneNumberText.getText().toString();
final MutableLiveData<DataWrapper<Boolean>> phoneObserver = profileViewModel.updatePhoneNumber(phoneNumber, isPrimaryNumber);
if (phoneObserver != null && !phoneObserver.hasObservers()) {
phoneObserver.observe(this, result -> {
phoneObserver.removeObservers(this);
if (result.getError() != null) {
if(result.getData()!= null){
new AlertDialog.Builder(this)
.setTitle(getString(R.string.recently_sent_code))
.setMessage(result.getError().getMessage())
.setPositiveButton(android.R.string.ok, (dialog, which) -> {
goToVerificationActivity(phoneNumber);
}).show();
}else{
App.logToFirebaseAndSentryBreadcrumbs(LoggingKeys.on_profile_change_phone_number_verified_failed);
showGenericErrorDialog(getString(R.string.error), result.getError().getMessage(), DialogAction.DoNothing);
}
} else {
App.logToFirebaseAndSentryBreadcrumbs(LoggingKeys.on_profile_change_phone_number);
goToVerificationActivity(phoneNumber);
}
spinner.setVisibility(View.GONE);
});
}
}