Flowable To LiveData через LiveDataReactiveStreams не работает - PullRequest
0 голосов
/ 29 января 2020

Я использую комнату и хочу синхронизировать LiveData с результатом запроса БД. Я делаю это:

dao

    @Query("SELECT Pet.* FROM Pet WHERE user_Id = :userId " +
            "UNION " +
            "SELECT Pet.* FROM PetFeeders INNER JOIN Pet ON PetFeeders.pet_Id = Pet.pet_id " +
            "WHERE PetFeeders.user_Id = :userId")
    Flowable<List<Pet>> getAllUserPetsByUserId(Long userId);

хранилище

    private LiveData<List<Pet>> userPets;

    public void setUserPets(LiveData<List<Pet>> userPets) {
        this.userPets = userPets;
    }

    @Override
    public Flowable<List<Pet>> getAllUserPetsByUserId(Long userId) {
        Log.d(TAG, "getAllUserPetsByUserId(" + userId + ")");
        return petFoodingControlDatabase.getPetDao().getAllUserPetsByUserId(userId)
                .subscribeOn(Schedulers.newThread())
                .observeOn(AndroidSchedulers.mainThread());
    }

service

    @Override
    public void setUserPets(User user) {
        pfcRepository.setUserPets(LiveDataReactiveStreams
                .fromPublisher(pfcRepository.getAllUserPetsByUserId(user.getUserId())));
    }

Запрос работает правильно, но LiveData никогда не передается. Что я делаю не так?

...