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