mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 16:18:55 +01:00 
			
		
		
		
	Directly pass read chapter when updating tracker
(cherry picked from commit b642e019e8)
			
			
This commit is contained in:
		@@ -319,7 +319,7 @@ class ReaderPresenter(
 | 
			
		||||
        selectedChapter.chapter.last_page_read = page.index
 | 
			
		||||
        if (selectedChapter.pages?.lastIndex == page.index) {
 | 
			
		||||
            selectedChapter.chapter.read = true
 | 
			
		||||
            updateTrackLastChapterRead()
 | 
			
		||||
            updateTrackChapterRead(selectedChapter)
 | 
			
		||||
            enqueueDeleteReadChapters(selectedChapter)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -554,21 +554,11 @@ class ReaderPresenter(
 | 
			
		||||
     * Starts the service that updates the last chapter read in sync services. This operation
 | 
			
		||||
     * will run in a background thread and errors are ignored.
 | 
			
		||||
     */
 | 
			
		||||
    private fun updateTrackLastChapterRead() {
 | 
			
		||||
    private fun updateTrackChapterRead(readerChapter: ReaderChapter) {
 | 
			
		||||
        if (!preferences.autoUpdateTrack()) return
 | 
			
		||||
        val viewerChapters = viewerChaptersRelay.value ?: return
 | 
			
		||||
        val manga = manga ?: return
 | 
			
		||||
 | 
			
		||||
        val currChapter = viewerChapters.currChapter.chapter
 | 
			
		||||
        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 chapterRead = readerChapter.chapter.chapter_number.toInt()
 | 
			
		||||
 | 
			
		||||
        val trackManager = Injekt.get<TrackManager>()
 | 
			
		||||
 | 
			
		||||
@@ -576,8 +566,8 @@ class ReaderPresenter(
 | 
			
		||||
                .flatMapCompletable { trackList ->
 | 
			
		||||
                    Completable.concat(trackList.map { track ->
 | 
			
		||||
                        val service = trackManager.getService(track.sync_id)
 | 
			
		||||
                        if (service != null && service.isLogged && lastChapterRead > track.last_chapter_read) {
 | 
			
		||||
                            track.last_chapter_read = lastChapterRead
 | 
			
		||||
                        if (service != null && service.isLogged && chapterRead > track.last_chapter_read) {
 | 
			
		||||
                            track.last_chapter_read = chapterRead
 | 
			
		||||
 | 
			
		||||
                            // We wan't these to execute even if the presenter is destroyed and leaks
 | 
			
		||||
                            // for a while. The view can still be garbage collected.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user