Fix download status not updated properly after starting batch download (#5348)

This commit is contained in:
Ivan Iskandar 2021-06-08 22:18:56 +07:00 committed by GitHub
parent fb8aafb69f
commit 31d96c2bf0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 5 additions and 6 deletions

View file

@ -359,7 +359,7 @@ class MangaPresenter(
observeDownloadsStatusSubscription?.let { remove(it) } observeDownloadsStatusSubscription?.let { remove(it) }
observeDownloadsStatusSubscription = downloadManager.queue.getStatusObservable() observeDownloadsStatusSubscription = downloadManager.queue.getStatusObservable()
.observeOn(Schedulers.io()) .observeOn(Schedulers.io())
.onBackpressureLatest() .onBackpressureBuffer()
.filter { download -> download.manga.id == manga.id } .filter { download -> download.manga.id == manga.id }
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribeLatestCache( .subscribeLatestCache(
@ -375,7 +375,7 @@ class MangaPresenter(
observeDownloadsPageSubscription?.let { remove(it) } observeDownloadsPageSubscription?.let { remove(it) }
observeDownloadsPageSubscription = downloadManager.queue.getProgressObservable() observeDownloadsPageSubscription = downloadManager.queue.getProgressObservable()
.observeOn(Schedulers.io()) .observeOn(Schedulers.io())
.onBackpressureLatest() .onBackpressureBuffer()
.filter { download -> download.manga.id == manga.id } .filter { download -> download.manga.id == manga.id }
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribeLatestCache(MangaController::onChapterDownloadUpdate) { _, error -> .subscribeLatestCache(MangaController::onChapterDownloadUpdate) { _, error ->

View file

@ -48,8 +48,6 @@ class ChapterDownloadView @JvmOverloads constructor(context: Context, attrs: Att
state == Download.State.NOT_DOWNLOADED || state == Download.State.QUEUE state == Download.State.NOT_DOWNLOADED || state == Download.State.QUEUE
if (shouldBeVisible) { if (shouldBeVisible) {
hideAnimationBehavior = BaseProgressIndicator.HIDE_NONE hideAnimationBehavior = BaseProgressIndicator.HIDE_NONE
show()
if (state == Download.State.NOT_DOWNLOADED || state == Download.State.QUEUE) { if (state == Download.State.NOT_DOWNLOADED || state == Download.State.QUEUE) {
trackThickness = 2.dpToPx trackThickness = 2.dpToPx
setIndicatorColor(context.getThemeColor(android.R.attr.textColorHint)) setIndicatorColor(context.getThemeColor(android.R.attr.textColorHint))
@ -72,6 +70,7 @@ class ChapterDownloadView @JvmOverloads constructor(context: Context, attrs: Att
setIndicatorColor(context.getThemeColor(android.R.attr.textColorPrimary)) setIndicatorColor(context.getThemeColor(android.R.attr.textColorPrimary))
setProgressCompat(progress, true) setProgressCompat(progress, true)
} }
show()
} else { } else {
hideAnimationBehavior = BaseProgressIndicator.HIDE_OUTWARD hideAnimationBehavior = BaseProgressIndicator.HIDE_OUTWARD
hide() hide()

View file

@ -41,7 +41,7 @@ class UpdatesPresenter(
downloadManager.queue.getStatusObservable() downloadManager.queue.getStatusObservable()
.observeOn(Schedulers.io()) .observeOn(Schedulers.io())
.onBackpressureLatest() .onBackpressureBuffer()
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribeLatestCache( .subscribeLatestCache(
{ view, it -> { view, it ->
@ -55,7 +55,7 @@ class UpdatesPresenter(
downloadManager.queue.getProgressObservable() downloadManager.queue.getProgressObservable()
.observeOn(Schedulers.io()) .observeOn(Schedulers.io())
.onBackpressureLatest() .onBackpressureBuffer()
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribeLatestCache(UpdatesController::onChapterDownloadUpdate) { _, error -> .subscribeLatestCache(UpdatesController::onChapterDownloadUpdate) { _, error ->
Timber.e(error) Timber.e(error)