У меня есть запрос к комнате 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
- как будто ничего не произошло.