Directly pass read chapter when updating tracker
This commit is contained in:
parent
c7356a977d
commit
3d3d9b3a12
1 changed files with 5 additions and 15 deletions
|
@ -329,7 +329,7 @@ class ReaderPresenter(
|
||||||
selectedChapter.chapter.last_page_read = page.index
|
selectedChapter.chapter.last_page_read = page.index
|
||||||
if (selectedChapter.pages?.lastIndex == page.index) {
|
if (selectedChapter.pages?.lastIndex == page.index) {
|
||||||
selectedChapter.chapter.read = true
|
selectedChapter.chapter.read = true
|
||||||
updateTrackLastChapterRead()
|
updateTrackChapterRead(selectedChapter)
|
||||||
enqueueDeleteReadChapters(selectedChapter)
|
enqueueDeleteReadChapters(selectedChapter)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -565,21 +565,11 @@ class ReaderPresenter(
|
||||||
* Starts the service that updates the last chapter read in sync services. This operation
|
* Starts the service that updates the last chapter read in sync services. This operation
|
||||||
* will run in a background thread and errors are ignored.
|
* will run in a background thread and errors are ignored.
|
||||||
*/
|
*/
|
||||||
private fun updateTrackLastChapterRead() {
|
private fun updateTrackChapterRead(readerChapter: ReaderChapter) {
|
||||||
if (!preferences.autoUpdateTrack()) return
|
if (!preferences.autoUpdateTrack()) return
|
||||||
val viewerChapters = viewerChaptersRelay.value ?: return
|
|
||||||
val manga = manga ?: return
|
val manga = manga ?: return
|
||||||
|
|
||||||
val currChapter = viewerChapters.currChapter.chapter
|
val chapterRead = readerChapter.chapter.chapter_number.toInt()
|
||||||
val prevChapter = viewerChapters.prevChapter?.chapter
|
|
||||||
|
|
||||||
// Get the last chapter read from the reader.
|
|
||||||
val lastChapterRead = if (currChapter.read)
|
|
||||||
currChapter.chapter_number.toInt()
|
|
||||||
else if (prevChapter != null && prevChapter.read)
|
|
||||||
prevChapter.chapter_number.toInt()
|
|
||||||
else
|
|
||||||
return
|
|
||||||
|
|
||||||
val trackManager = Injekt.get<TrackManager>()
|
val trackManager = Injekt.get<TrackManager>()
|
||||||
|
|
||||||
|
@ -587,8 +577,8 @@ class ReaderPresenter(
|
||||||
.flatMapCompletable { trackList ->
|
.flatMapCompletable { trackList ->
|
||||||
Completable.concat(trackList.map { track ->
|
Completable.concat(trackList.map { track ->
|
||||||
val service = trackManager.getService(track.sync_id)
|
val service = trackManager.getService(track.sync_id)
|
||||||
if (service != null && service.isLogged && lastChapterRead > track.last_chapter_read) {
|
if (service != null && service.isLogged && chapterRead > track.last_chapter_read) {
|
||||||
track.last_chapter_read = lastChapterRead
|
track.last_chapter_read = chapterRead
|
||||||
|
|
||||||
// We wan't these to execute even if the presenter is destroyed and leaks
|
// We wan't these to execute even if the presenter is destroyed and leaks
|
||||||
// for a while. The view can still be garbage collected.
|
// for a while. The view can still be garbage collected.
|
||||||
|
|
Reference in a new issue