mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 08:08:55 +01:00 
			
		
		
		
	Save current chapter progress when navigating to adjacent chapters
Fixes #9295
(cherry picked from commit 776d36caf1)
			
			
This commit is contained in:
		@@ -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 New Issue
	
	Block a user