Распространение данных из хранилища - PullRequest
0 голосов
/ 03 мая 2020

Я пытаюсь сделать процесс реестра, вызывающий API отдыха с модификацией. Я использую шаблон MVVM, где вызов дооснащения находится в UserRepository. Я пытаюсь получить ответ API на View для вывода сообщения в зависимости от ответа представления. Я пытаюсь проверить эту ссылку для справки: Как связать ViewModel с репозиторием, чтобы данные передавались в представление (MVVM, Livedata)

Но безуспешно, я не получаю никаких ссылок sh на наблюдателя.

Есть код:

Репозиторий

     MutableLiveData<Response<ResponseBody>> registryResponse = new MutableLiveData<>();

public LiveData<Response<ResponseBody>> registerUser(User user) {
        Call<ResponseBody> call = ServiceGenerator.getServiceInstance().getHomelancerApi().registerUser(user);
        String url = call.request().url().toString();



        call.enqueue(new Callback<ResponseBody>() {
            @Override
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
               // String text = response.body().toString();

               Log.println(Log.VERBOSE,"TESTE-IN",response.message());

                registryResponse.setValue(response);

            }

            @Override
            public void onFailure(Call<ResponseBody> call, Throwable t) {
                Log.println(Log.VERBOSE,"TESTE-ERROR",t.getMessage());
                System.out.println("TESTEFAIL:"+t);


            }
        });


        return registryResponse;


        }

ViewModel

    private LiveData<Response<ResponseBody>> responseMessage = new MutableLiveData<>();

   public void onRegisterClick(View view)  {
        User user = new User(email.getValue(), password.getValue(), name.getValue(), false, city.getValue());
        System.out.println(user.getUserName());


        responseMessage = userRepository.registerUser(user);


     }

 public LiveData<Response<ResponseBody>> getResponseLiveData(){
        return responseMessage;
    }

Просмотр

      registerViewModel.getResponseLiveData().observe(this, new Observer<Response<ResponseBody>>() {
            @Override
            public void onChanged(Response<ResponseBody> responseBodyResponse) {
                if(responseBodyResponse.code()==200){

                    Toast.makeText(RegisterActivity.this,"Registration Successful, Please Check your email to verify your account!",Toast.LENGTH_LONG).show();
                }
            }
        });

С уважением и благодарностью

...