Save current page state on configuration change
Fixes #8881 The actual issue is that the ViewModel migration actually differs between what the current `init` block and previous `onSave` methods did; where the `init` block does not get triggered on saving the instance on config changes. Not entirely sure why onSaveInstanceState was explicitly avoided for config changes before, but we just do it all the time now and end up updating the requestedPage with the current page.
This commit is contained in:
parent
e28b015580
commit
2ebc8d9ae5
2 changed files with 4 additions and 5 deletions
|
@ -269,9 +269,7 @@ class ReaderActivity : BaseActivity() {
|
|||
*/
|
||||
override fun onSaveInstanceState(outState: Bundle) {
|
||||
outState.putBoolean(::menuVisible.name, menuVisible)
|
||||
if (!isChangingConfigurations) {
|
||||
viewModel.onSaveInstanceStateNonConfigurationChange()
|
||||
}
|
||||
viewModel.onSaveInstanceState()
|
||||
super.onSaveInstanceState(outState)
|
||||
}
|
||||
|
||||
|
|
|
@ -232,10 +232,10 @@ class ReaderViewModel(
|
|||
}
|
||||
|
||||
/**
|
||||
* Called when the activity is saved and not changing configurations. It updates the database
|
||||
* Called when the activity is saved. It updates the database
|
||||
* to persist the current progress of the active chapter.
|
||||
*/
|
||||
fun onSaveInstanceStateNonConfigurationChange() {
|
||||
fun onSaveInstanceState() {
|
||||
val currentChapter = getCurrentChapter() ?: return
|
||||
viewModelScope.launchNonCancellable {
|
||||
saveChapterProgress(currentChapter)
|
||||
|
@ -512,6 +512,7 @@ class ReaderViewModel(
|
|||
private suspend fun saveChapterProgress(readerChapter: ReaderChapter) {
|
||||
if (!incognitoMode || hasTrackers) {
|
||||
val chapter = readerChapter.chapter
|
||||
getCurrentChapter()?.requestedPage = chapter.last_page_read
|
||||
updateChapter.await(
|
||||
ChapterUpdate(
|
||||
id = chapter.id!!,
|
||||
|
|
Reference in a new issue