Room Flowable транзакции событий - PullRequest
0 голосов
/ 15 ноября 2018

Я связал свой адаптер с комнатными-дБ Flowables

db.myDao().loadByTrackId(tracksId)
                .observeOn(AndroidSchedulers.mainThread())
                .subscribeOn(Schedulers.io())
                .subscribe({ comments ->
                    Timber.d("setDataAD " + comments.size())
                    adapter.setData(comments.toMutableList())
                }, ...
                ) 

откуда-то я обновляю базу данных комнат

db.myDao().updateComments(pair.first.data, pair.second.data)

dao:

@Transaction
fun updateComments(commentOrigin: List<Comment>, commentNew: List<Comment>) {
    delete(commentOrigin)
    insertAll(commentNew)
}

@Delete
fun delete(comments: List<Comment>)

@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insertAll(comments: List<Comment>)

Когда сейчас3 удаляются, а 3 вставляются, и, используя метод @Transaction, я предполагал одно событие с Flowable, но я измерил фейерверк Flowables

setDataAD 0
setDataAD 3
setDataAD 3
setDataAD 0
setDataAD 0
setDataAD 3
setDataAD 0
setDataAD 0
setDataAD 3
setDataAD 0
setDataAD 3
setDataAD 0
setDataAD 0
setDataAD 3
setDataAD 3
setDataAD 0
setDataAD 0
setDataAD 3
setDataAD 0
setDataAD 3
setDataAD 0
setDataAD 0
setDataAD 3
setDataAD 0
setDataAD 3
setDataAD 3

Как можно решить, чтобы получить только одинсобытие / текучая?Или другими словами: как я могу предотвратить некоторые обновления БД, отраженные Flowables

...