Emit each item from Flowable Room ORM

Viewed 3626

I have a list of items in the Room ORM which I would like to display in a Recycler view. The data is being added from the network to the db. The problem is I am getting every time the whole list emited from the Flowable and not each item. I have tried with .distinctUntilChanged with no difference.

@Query("SELECT * FROM items")
Flowable<List<Item>> getItems();

I have tried also to return only a single item which loads only the first one that is the db.

3 Answers

You can use flatMap and Flowable.fromIterable() to map to Flowable which will emit all items one by one

getItems()
    .flatMap(Flowable::fromIterable)
    .subscribe(item -> {

    });

That's it. Short and clean code, without casting toArray

Related