diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourceController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourceController.kt index 2f341184f..1c9051367 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourceController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourceController.kt @@ -317,7 +317,9 @@ class SourceController(bundle: Bundle? = null) : * Opens a catalogue with the given controller. */ private fun openSource(source: CatalogueSource, controller: BrowseSourceController) { - preferences.lastUsedSource().set(source.id) + if (!preferences.incognitoMode().get()) { + preferences.lastUsedSource().set(source.id) + } parentController!!.router.pushController(controller.withFadeTransaction()) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt index c1c8a01ec..3fda60f36 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt @@ -167,6 +167,13 @@ class ReaderPresenter( }.map(::ReaderChapter) } + private var hasTrackers: Boolean = false + private val checkTrackers: (Manga) -> Unit = { manga -> + val tracks = db.getTracks(manga).executeAsBlocking() + + hasTrackers = tracks.size > 0 + } + /** * Called when the presenter is created. It retrieves the saved active chapter if the process * was restored. @@ -273,6 +280,8 @@ class ReaderPresenter( // SY <-- if (chapterId == -1L) chapterId = initialChapterId + checkTrackers(manga) + val context = Injekt.get() val source = sourceManager.getOrStub(manga.source) val mergedReferences = if (source is MergedSource) db.getMergedMangaReferences(manga.id!!).executeAsBlocking() else emptyList() @@ -437,7 +446,8 @@ class ReaderPresenter( // Save last page read and mark as read if needed selectedChapter.chapter.last_page_read = page.index - if (selectedChapter.pages?.lastIndex == page.index) { + val shouldTrack = !preferences.incognitoMode().get() || hasTrackers + if (selectedChapter.pages?.lastIndex == page.index && shouldTrack) { selectedChapter.chapter.read = true // SY --> if (manga?.source == EH_SOURCE_ID || manga?.source == EXH_SOURCE_ID) { @@ -506,16 +516,19 @@ class ReaderPresenter( /** * Saves this [chapter] progress (last read page and whether it's read). + * If incognito mode isn't on or has at least 1 tracker */ private fun saveChapterProgress(chapter: ReaderChapter) { - db.updateChapterProgress(chapter.chapter).asRxCompletable() - .onErrorComplete() - .subscribeOn(Schedulers.io()) - .subscribe() + if (!preferences.incognitoMode().get() || hasTrackers) { + db.updateChapterProgress(chapter.chapter).asRxCompletable() + .onErrorComplete() + .subscribeOn(Schedulers.io()) + .subscribe() + } } /** - * Saves this [chapter] last read history. + * Saves this [chapter] last read history if incognito mode isn't on. */ private fun saveChapterHistory(chapter: ReaderChapter) { if (!preferences.incognitoMode().get()) {