Обратный вызов Flowable не срабатывает, когда я удаляю последнюю строку в Room DB - PullRequest
0 голосов
/ 26 июня 2018

У меня есть запрос к комнате DB:

@Query("SELECT SUM(count*amount) FROM basket_items")
Flowable<Long> totalSum();

Этот запрос возвращает общую сумму всех строк. И я показываю это значение в TextView.

Flowable<Long> totalSumData = basketRepository.getTotalSum();
        disposable = totalSumData.observeOn(AndroidSchedulers.mainThread())
                .subscribe(total -> {
                    if (total == null) {
                        totalSum = BigDecimal.ZERO;
                    } else {
                        totalSum = new BigDecimal(total).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP);
                    }
                    callView(view -> view.setTotal(formatToLocaleString(totalSum)));
                });

Когда я удаляю одну строку из таблицы - срабатывает Flowable и значение total обновляется. Но когда я удаляю последнюю строку в таблице и таблица становится понятной - Total Flowable не срабатывает, как будто ничего не произошло. И я не могу обновить общий textView с новым значением (ноль). Мне нужно получить нулевое или 0 в обратном вызове Flowable, когда я удаляю последнюю строку в таблице

P.S Когда я использую LiveData вместо Flowable - я получаю null, когда удаляю последнюю строку в таблице, но с Flowable - как будто ничего не произошло.

...