mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-22 12:03:09 -04:00
Improved the retrieving of savedStateHandle
.
This commit is contained in:
parent
8fa15c12bd
commit
40b8222308
@ -36,6 +36,7 @@ import org.kiwix.kiwixmobile.core.base.FragmentActivityExtensions.Super
|
||||
import org.kiwix.kiwixmobile.core.base.FragmentActivityExtensions.Super.ShouldCall
|
||||
import org.kiwix.kiwixmobile.core.downloader.downloadManager.ZERO
|
||||
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.consumeObservable
|
||||
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.getObservableNavigationResult
|
||||
import org.kiwix.kiwixmobile.core.extensions.isFileExist
|
||||
import org.kiwix.kiwixmobile.core.extensions.snack
|
||||
import org.kiwix.kiwixmobile.core.extensions.toast
|
||||
@ -89,11 +90,9 @@ class KiwixReaderFragment : CoreReaderFragment() {
|
||||
private fun openPageInBookFromNavigationArguments() {
|
||||
showProgressBarWithProgress(30)
|
||||
val kiwixMainActivity = activity as? KiwixMainActivity
|
||||
val savedStateHandle = kiwixMainActivity?.navController?.currentBackStackEntry?.savedStateHandle
|
||||
|
||||
val zimFileUri = savedStateHandle?.get<String>(ZIM_FILE_URI_KEY).orEmpty()
|
||||
val pageUrl = savedStateHandle?.get<String>(PAGE_URL_KEY).orEmpty()
|
||||
val searchItemTitle = savedStateHandle?.get<String>(SEARCH_ITEM_TITLE_KEY).orEmpty()
|
||||
val zimFileUri = getNavigationResult(ZIM_FILE_URI_KEY, kiwixMainActivity)
|
||||
val pageUrl = getNavigationResult(PAGE_URL_KEY, kiwixMainActivity)
|
||||
val searchItemTitle = getNavigationResult(SEARCH_ITEM_TITLE_KEY, kiwixMainActivity)
|
||||
coreReaderLifeCycleScope?.launch {
|
||||
if (pageUrl.isNotEmpty()) {
|
||||
if (zimFileUri.isNotEmpty()) {
|
||||
@ -125,6 +124,9 @@ class KiwixReaderFragment : CoreReaderFragment() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun getNavigationResult(key: String, kiwixMainActivity: KiwixMainActivity?) =
|
||||
kiwixMainActivity?.getObservableNavigationResult<String>(key)?.value.orEmpty()
|
||||
|
||||
private suspend fun tryOpeningZimFile(zimFileUri: String) {
|
||||
// Stop any ongoing WebView loading and clear the WebView list
|
||||
// before setting a new ZIM file to the reader. This helps prevent native crashes.
|
||||
|
@ -101,7 +101,7 @@ object ActivityExtensions {
|
||||
coreMainActivity.navController.popBackStack()
|
||||
}
|
||||
|
||||
private fun <T> Activity.getObservableNavigationResult(key: String = "result") =
|
||||
fun <T> Activity.getObservableNavigationResult(key: String = "result") =
|
||||
if (coreMainActivity.isNavControllerInitialized) {
|
||||
coreMainActivity.navController.currentBackStackEntry?.savedStateHandle
|
||||
?.getLiveData<T>(key)
|
||||
|
@ -33,6 +33,7 @@ import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.kiwix.kiwixmobile.core.base.BaseActivity
|
||||
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.consumeObservable
|
||||
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.getObservableNavigationResult
|
||||
import org.kiwix.kiwixmobile.core.extensions.browserIntent
|
||||
import org.kiwix.kiwixmobile.core.extensions.isFileExist
|
||||
import org.kiwix.kiwixmobile.core.extensions.update
|
||||
@ -176,9 +177,8 @@ class CustomReaderFragment : CoreReaderFragment() {
|
||||
|
||||
private fun loadPageFromNavigationArguments() {
|
||||
val customMainActivity = activity as? CustomMainActivity
|
||||
val savedStateHandle =
|
||||
customMainActivity?.navController?.currentBackStackEntry?.savedStateHandle
|
||||
val pageUrl = savedStateHandle?.get<String>(PAGE_URL_KEY).orEmpty()
|
||||
val pageUrl =
|
||||
customMainActivity?.getObservableNavigationResult<String>(PAGE_URL_KEY)?.value.orEmpty()
|
||||
if (pageUrl.isNotEmpty()) {
|
||||
loadUrlWithCurrentWebview(pageUrl)
|
||||
// Setup bookmark for current book
|
||||
|
Loading…
x
Reference in New Issue
Block a user