Save current chapter progress when navigating to adjacent chapters
Fixes #9295
(cherry picked from commit 776d36caf1
)
This commit is contained in:
parent
10973bf3cd
commit
4dd67e4348
2 changed files with 15 additions and 18 deletions
|
@ -99,10 +99,6 @@ import uy.kohesive.injekt.injectLazy
|
|||
import kotlin.math.abs
|
||||
import kotlin.math.max
|
||||
|
||||
/**
|
||||
* Activity containing the reader of Tachiyomi. This activity is mostly a container of the
|
||||
* viewers, to which calls from the presenter or UI events are delegated.
|
||||
*/
|
||||
class ReaderActivity : BaseActivity() {
|
||||
|
||||
companion object {
|
||||
|
@ -661,7 +657,7 @@ class ReaderActivity : BaseActivity() {
|
|||
* Called from the presenter when a manga is ready. Used to instantiate the appropriate viewer
|
||||
* and the toolbar title.
|
||||
*/
|
||||
fun setManga(manga: Manga) {
|
||||
private fun setManga(manga: Manga) {
|
||||
val prevViewer = viewer
|
||||
|
||||
val viewerMode = ReadingModeType.fromPreference(viewModel.getMangaReadingMode(resolveDefault = false))
|
||||
|
@ -776,7 +772,7 @@ class ReaderActivity : BaseActivity() {
|
|||
* Called from the presenter if the initial load couldn't load the pages of the chapter. In
|
||||
* this case the activity is closed and a toast is shown to the user.
|
||||
*/
|
||||
fun setInitialChapterError(error: Throwable) {
|
||||
private fun setInitialChapterError(error: Throwable) {
|
||||
logcat(LogPriority.ERROR, error)
|
||||
finish()
|
||||
toast(error.message)
|
||||
|
|
|
@ -201,17 +201,6 @@ class ReaderViewModel(
|
|||
|
||||
private val incognitoMode = preferences.incognitoMode().get()
|
||||
|
||||
override fun onCleared() {
|
||||
val currentChapters = state.value.viewerChapters
|
||||
if (currentChapters != null) {
|
||||
currentChapters.unref()
|
||||
saveReadingProgress(currentChapters.currChapter)
|
||||
chapterToDownload?.let {
|
||||
downloadManager.addDownloadsToStartOfQueue(listOf(it))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
init {
|
||||
// To save state
|
||||
state.map { it.viewerChapters?.currChapter }
|
||||
|
@ -226,6 +215,17 @@ class ReaderViewModel(
|
|||
.launchIn(viewModelScope)
|
||||
}
|
||||
|
||||
override fun onCleared() {
|
||||
val currentChapters = state.value.viewerChapters
|
||||
if (currentChapters != null) {
|
||||
currentChapters.unref()
|
||||
saveReadingProgress(currentChapters.currChapter)
|
||||
chapterToDownload?.let {
|
||||
downloadManager.addDownloadsToStartOfQueue(listOf(it))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the user pressed the back button and is going to leave the reader. Used to
|
||||
* trigger deletion of the downloaded chapters.
|
||||
|
@ -338,10 +338,11 @@ class ReaderViewModel(
|
|||
}
|
||||
|
||||
/**
|
||||
* Called when the user is going to load the prev/next chapter through the menu button.
|
||||
* Called when the user is going to load the prev/next chapter through the toolbar buttons.
|
||||
*/
|
||||
private suspend fun loadAdjacent(chapter: ReaderChapter) {
|
||||
val loader = loader ?: return
|
||||
saveCurrentChapterReadingProgress()
|
||||
|
||||
logcat { "Loading adjacent ${chapter.chapter.url}" }
|
||||
|
||||
|
|
Reference in a new issue