Update view when chapters read status has changed
This commit is contained in:
parent
35ef07d720
commit
b803dbe3af
@ -99,10 +99,18 @@ class MangaAllInOnePresenter(
|
|||||||
|
|
||||||
// Listen for download status changes
|
// Listen for download status changes
|
||||||
observeDownloads()
|
observeDownloads()
|
||||||
|
|
||||||
|
add(
|
||||||
|
db.getChapters(manga).asRxObservable().subscribe {
|
||||||
|
scope.launch(Dispatchers.IO) {
|
||||||
|
updateChaptersView(updateInfo = true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateChapters() {
|
private suspend fun updateChapters() {
|
||||||
val chapters = db.getChapters(manga).executeAsBlocking().map { it.toModel() }
|
val chapters = db.getChapters(manga).await().map { it.toModel() }
|
||||||
|
|
||||||
// Find downloaded chapters
|
// Find downloaded chapters
|
||||||
setDownloadedChapters(chapters)
|
setDownloadedChapters(chapters)
|
||||||
@ -136,9 +144,12 @@ class MangaAllInOnePresenter(
|
|||||||
this.chapters = applyChapterFilters(chapters)
|
this.chapters = applyChapterFilters(chapters)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateChaptersView() {
|
private fun updateChaptersView(updateInfo: Boolean = false) {
|
||||||
scope.launch(Dispatchers.IO) {
|
scope.launch(Dispatchers.IO) {
|
||||||
updateChapters()
|
updateChapters()
|
||||||
|
if (updateInfo) {
|
||||||
|
updateChapterInfo()
|
||||||
|
}
|
||||||
withContext(Dispatchers.Main) {
|
withContext(Dispatchers.Main) {
|
||||||
Observable.just(manga)
|
Observable.just(manga)
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
@ -161,7 +172,7 @@ class MangaAllInOnePresenter(
|
|||||||
scope.launch(Dispatchers.IO) {
|
scope.launch(Dispatchers.IO) {
|
||||||
var manga2: Manga? = null
|
var manga2: Manga? = null
|
||||||
if (updateInfo) {
|
if (updateInfo) {
|
||||||
manga2 = db.getManga(manga.url, manga.source).executeAsBlocking()
|
manga2 = db.getManga(manga.url, manga.source).await()
|
||||||
updateChapters()
|
updateChapters()
|
||||||
updateChapterInfo()
|
updateChapterInfo()
|
||||||
}
|
}
|
||||||
@ -197,7 +208,7 @@ class MangaAllInOnePresenter(
|
|||||||
manga.prepUpdateCover(coverCache, networkManga, manualFetch)
|
manga.prepUpdateCover(coverCache, networkManga, manualFetch)
|
||||||
manga.copyFrom(networkManga)
|
manga.copyFrom(networkManga)
|
||||||
manga.initialized = true
|
manga.initialized = true
|
||||||
db.insertManga(manga).executeAsBlocking()
|
db.insertManga(manga).await()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var chapters: List<SChapter> = listOf()
|
var chapters: List<SChapter> = listOf()
|
||||||
@ -483,6 +494,11 @@ class MangaAllInOnePresenter(
|
|||||||
}
|
}
|
||||||
.toList()
|
.toList()
|
||||||
.flatMap { db.updateChaptersProgress(it).asRxObservable() }
|
.flatMap { db.updateChaptersProgress(it).asRxObservable() }
|
||||||
|
.doOnNext {
|
||||||
|
scope.launch {
|
||||||
|
updateChaptersView()
|
||||||
|
}
|
||||||
|
}
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
.subscribe()
|
.subscribe()
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user