Заставьте Observable ждать результата - PullRequest
0 голосов
/ 19 марта 2020

У меня есть наблюдаемое, которое не ждет результата от сервера. Как заставить его ждать, пока не будет введен правильный ввод, прежде чем он начнет проверять вещи?

код:

Активность:

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