In the following code saveBufferoos is called even when data is retrieved from cache (db)....for relatively large amounts of data this can be pretty time consuming.
override fun getBufferoos(): Flowable<List<Bufferoo>> {
return factory.retrieveCacheDataStore().isCached()
.flatMapPublisher {
factory.retrieveDataStore(it).getBufferoos()
}
.flatMap {
Flowable.just(it.map { bufferooMapper.mapFromEntity(it) })
}
.flatMap {
saveBufferoos(it).toSingle { it }.toFlowable()
}
}