diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt index d33792319..8e90f20b7 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt @@ -467,7 +467,9 @@ class ReaderActivity : BaseActivity() { } override fun onPause() { - viewModel.flushReadTimer() + lifecycleScope.launchNonCancellable { + viewModel.updateHistory() + } super.onPause() } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt index 6008118b2..be1ef2fc0 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt @@ -487,7 +487,7 @@ class ReaderViewModel @JvmOverloads constructor( viewModelScope.launchIO { logcat { "Loading ${chapter.chapter.url}" } - flushReadTimer() + updateHistory() restartReadTimer() try { @@ -784,26 +784,20 @@ class ReaderViewModel @JvmOverloads constructor( chapterReadStartTime = Instant.now().toEpochMilli() } - fun flushReadTimer() { - getCurrentChapter()?.let { - viewModelScope.launchNonCancellable { - updateHistory(it) - } - } - } - /** * Saves the chapter last read history if incognito mode isn't on. */ - private suspend fun updateHistory(readerChapter: ReaderChapter) { - if (incognitoMode) return + suspend fun updateHistory() { + getCurrentChapter()?.let { readerChapter -> + if (incognitoMode) return@let - val chapterId = readerChapter.chapter.id!! - val endTime = Date() - val sessionReadDuration = chapterReadStartTime?.let { endTime.time - it } ?: 0 + val chapterId = readerChapter.chapter.id!! + val endTime = Date() + val sessionReadDuration = chapterReadStartTime?.let { endTime.time - it } ?: 0 - upsertHistory.await(HistoryUpdate(chapterId, endTime, sessionReadDuration)) - chapterReadStartTime = null + upsertHistory.await(HistoryUpdate(chapterId, endTime, sessionReadDuration)) + chapterReadStartTime = null + } } /**