diff --git a/.idea/misc.xml b/.idea/misc.xml index 860da66a5..b8f888114 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,5 +1,12 @@ + + + diff --git a/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderActivity.kt b/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderActivity.kt index b8c0aafe1..ec6655951 100644 --- a/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderActivity.kt @@ -124,11 +124,6 @@ class ReaderActivity : BaseFullscreenActivity(), } } - override fun onPause() { - viewModel.saveCurrentState(reader?.getCurrentState()) - super.onPause() - } - override fun onCreateOptionsMenu(menu: Menu?): Boolean { menuInflater.inflate(R.menu.opt_reader_top, menu) return super.onCreateOptionsMenu(menu) diff --git a/app/src/main/java/org/koitharu/kotatsu/reader/ui/pager/BaseReader.kt b/app/src/main/java/org/koitharu/kotatsu/reader/ui/pager/BaseReader.kt index 8d9fde1b1..236603f69 100644 --- a/app/src/main/java/org/koitharu/kotatsu/reader/ui/pager/BaseReader.kt +++ b/app/src/main/java/org/koitharu/kotatsu/reader/ui/pager/BaseReader.kt @@ -18,29 +18,34 @@ abstract class BaseReader : BaseFragment() { protected val loader by lazy(LazyThreadSafetyMode.NONE) { PageLoader(lifecycleScope, get(), get()) } - private var lastReaderState: ReaderState? = null + private var stateToSave: ReaderState? = null override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - lastReaderState = savedInstanceState?.getParcelable(KEY_STATE) ?: lastReaderState + var restoredState = savedInstanceState?.getParcelable(KEY_STATE) viewModel.content.observe(viewLifecycleOwner) { - onPagesChanged(it.pages, lastReaderState ?: it.state) - lastReaderState = null + onPagesChanged(it.pages, restoredState ?: it.state) + restoredState = null } } + override fun onPause() { + super.onPause() + viewModel.saveCurrentState(getCurrentState()) + } + override fun onDestroyView() { - lastReaderState = getCurrentState() + stateToSave = getCurrentState() super.onDestroyView() } override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) getCurrentState()?.let { - lastReaderState = it + stateToSave = it } - outState.putParcelable(KEY_STATE, lastReaderState) + outState.putParcelable(KEY_STATE, stateToSave) } override fun onWindowInsetsChanged(insets: Insets) = Unit