mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 08:08:55 +01:00 
			
		
		
		
	Filter out non-downloaded chapters in reader when Downloaded Only is enabled (#9568)
* FIxed Issue #5463 - DownloadedOnly Bug * Changes according to Feedback * Changes according to Feedback --------- Co-authored-by: AlphiGhost <71730726+AlphiGhost@users.noreply.github.com>
This commit is contained in:
		@@ -34,6 +34,7 @@ import eu.kanade.tachiyomi.ui.reader.setting.OrientationType
 | 
			
		||||
import eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences
 | 
			
		||||
import eu.kanade.tachiyomi.ui.reader.setting.ReadingModeType
 | 
			
		||||
import eu.kanade.tachiyomi.ui.reader.viewer.Viewer
 | 
			
		||||
import eu.kanade.tachiyomi.util.chapter.filterDownloaded
 | 
			
		||||
import eu.kanade.tachiyomi.util.chapter.removeDuplicates
 | 
			
		||||
import eu.kanade.tachiyomi.util.editCover
 | 
			
		||||
import eu.kanade.tachiyomi.util.lang.byteSize
 | 
			
		||||
@@ -91,6 +92,7 @@ class ReaderViewModel(
 | 
			
		||||
    private val downloadProvider: DownloadProvider = Injekt.get(),
 | 
			
		||||
    private val imageSaver: ImageSaver = Injekt.get(),
 | 
			
		||||
    preferences: BasePreferences = Injekt.get(),
 | 
			
		||||
    private val basePreferences: BasePreferences = Injekt.get(),
 | 
			
		||||
    private val downloadPreferences: DownloadPreferences = Injekt.get(),
 | 
			
		||||
    private val readerPreferences: ReaderPreferences = Injekt.get(),
 | 
			
		||||
    private val trackPreferences: TrackPreferences = Injekt.get(),
 | 
			
		||||
@@ -184,6 +186,13 @@ class ReaderViewModel(
 | 
			
		||||
                    this
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            .run {
 | 
			
		||||
                if (basePreferences.downloadedOnly().get()) {
 | 
			
		||||
                    filterDownloaded(manga)
 | 
			
		||||
                } else {
 | 
			
		||||
                    this
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            .map { it.toDbChapter() }
 | 
			
		||||
            .map(::ReaderChapter)
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,16 @@
 | 
			
		||||
package eu.kanade.tachiyomi.util.chapter
 | 
			
		||||
 | 
			
		||||
import eu.kanade.tachiyomi.data.download.DownloadCache
 | 
			
		||||
import tachiyomi.domain.chapter.model.Chapter
 | 
			
		||||
import tachiyomi.domain.manga.model.Manga
 | 
			
		||||
import uy.kohesive.injekt.Injekt
 | 
			
		||||
import uy.kohesive.injekt.api.get
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns a copy of the list with not downloaded chapters removed
 | 
			
		||||
 */
 | 
			
		||||
fun List<Chapter>.filterDownloaded(manga: Manga): List<Chapter> {
 | 
			
		||||
    val downloadCache: DownloadCache = Injekt.get()
 | 
			
		||||
 | 
			
		||||
    return filter { downloadCache.isChapterDownloaded(it.name, it.scanlator, manga.title, manga.source, false) }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user