diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/nav/destination/reader/ReaderRobot.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/nav/destination/reader/ReaderRobot.kt index 70989eae2..d1328c54f 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/nav/destination/reader/ReaderRobot.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/nav/destination/reader/ReaderRobot.kt @@ -30,6 +30,7 @@ fun reader(func: ReaderRobot.() -> Unit) = ReaderRobot().applyWithViewHierarchyP class ReaderRobot : BaseRobot() { fun assertReaderScreenDisplayed(composeTestRule: ComposeContentTestRule) { composeTestRule.apply { + waitForIdle() waitUntilTimeout() onNodeWithTag(READER_SCREEN_TESTING_TAG).assertExists() } diff --git a/app/src/main/java/org/kiwix/kiwixmobile/main/KiwixMainActivity.kt b/app/src/main/java/org/kiwix/kiwixmobile/main/KiwixMainActivity.kt index c9618433c..ee670a72c 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/main/KiwixMainActivity.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/main/KiwixMainActivity.kt @@ -47,6 +47,7 @@ import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import androidx.navigation.NavController import androidx.navigation.NavOptions +import androidx.navigation.NavGraph.Companion.findStartDestination import androidx.navigation.compose.rememberNavController import eu.mhutti1.utils.storage.StorageDevice import eu.mhutti1.utils.storage.StorageDeviceUtils @@ -268,7 +269,13 @@ class KiwixMainActivity : CoreMainActivity() { private fun handleGetContentIntent(intent: Intent?) { if (intent?.action == ACTION_GET_CONTENT) { - navigate(KiwixDestination.Downloads.route) + navigate(KiwixDestination.Downloads.route) { + launchSingleTop = true + popUpTo(navController.graph.findStartDestination().id) { + saveState = true + } + restoreState = true + } } } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreMainActivity.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreMainActivity.kt index f2a7f77b0..b22bd6307 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreMainActivity.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreMainActivity.kt @@ -37,6 +37,8 @@ import androidx.lifecycle.lifecycleScope import androidx.navigation.NavDirections import androidx.navigation.NavHostController import androidx.navigation.NavOptions +import androidx.navigation.NavOptionsBuilder +import androidx.navigation.navOptions import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -362,6 +364,10 @@ abstract class CoreMainActivity : BaseActivity(), WebViewProvider { navController.navigate(route, navOptions) } + fun navigate(route: String, builder: NavOptionsBuilder.() -> Unit) { + navigate(route, navOptions(builder)) + } + private fun openSettings() { handleDrawerOnNavigation() navigate(settingsFragmentRoute)