mirror of
https://github.com/bitwarden/android.git
synced 2026-03-25 15:51:22 -05:00
Fix routing on tutorial completion (#51)
This commit is contained in:
@@ -12,8 +12,6 @@ import com.bitwarden.authenticator.ui.authenticator.feature.navbar.authenticator
|
||||
import com.bitwarden.authenticator.ui.authenticator.feature.qrcodescan.navigateToQrCodeScanScreen
|
||||
import com.bitwarden.authenticator.ui.authenticator.feature.search.navigateToSearch
|
||||
import com.bitwarden.authenticator.ui.platform.feature.settings.export.navigateToExport
|
||||
import com.bitwarden.authenticator.ui.platform.feature.tutorial.navigateToTutorial
|
||||
import com.bitwarden.authenticator.ui.platform.feature.tutorial.tutorialDestination
|
||||
|
||||
const val AUTHENTICATOR_GRAPH_ROUTE = "authenticator_graph"
|
||||
|
||||
@@ -41,7 +39,6 @@ fun NavGraphBuilder.authenticatorGraph(
|
||||
onNavigateToQrCodeScanner = { navController.navigateToQrCodeScanScreen() },
|
||||
onNavigateToManualKeyEntry = { navController.navigateToManualCodeEntryScreen() },
|
||||
onNavigateToEditItem = { navController.navigateToEditItem(itemId = it) },
|
||||
onNavigateToTutorial = { navController.navigateToTutorial() },
|
||||
onNavigateToExport = { navController.navigateToExport() },
|
||||
)
|
||||
itemListingGraph(
|
||||
@@ -59,11 +56,7 @@ fun NavGraphBuilder.authenticatorGraph(
|
||||
navigateToEditItem = {
|
||||
navController.navigateToEditItem(itemId = it)
|
||||
},
|
||||
navigateToTutorial = { navController.navigateToTutorial() },
|
||||
navigateToExport = { navController.navigateToExport() },
|
||||
)
|
||||
tutorialDestination(
|
||||
onTutorialFinished = { navController.popBackStack() }
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,6 @@ fun NavGraphBuilder.itemListingGraph(
|
||||
navigateToQrCodeScanner: () -> Unit,
|
||||
navigateToManualKeyEntry: () -> Unit,
|
||||
navigateToEditItem: (String) -> Unit,
|
||||
navigateToTutorial: () -> Unit,
|
||||
navigateToExport: () -> Unit,
|
||||
) {
|
||||
navigation(
|
||||
@@ -60,7 +59,6 @@ fun NavGraphBuilder.itemListingGraph(
|
||||
)
|
||||
settingsGraph(
|
||||
navController = navController,
|
||||
onNavigateToTutorial = navigateToTutorial,
|
||||
onNavigateToExport = navigateToExport,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ fun NavGraphBuilder.authenticatorNavBarDestination(
|
||||
onNavigateToQrCodeScanner: () -> Unit,
|
||||
onNavigateToManualKeyEntry: () -> Unit,
|
||||
onNavigateToEditItem: (itemId: String) -> Unit,
|
||||
onNavigateToTutorial: () -> Unit,
|
||||
onNavigateToExport: () -> Unit,
|
||||
) {
|
||||
composableWithStayTransitions(
|
||||
@@ -22,11 +21,10 @@ fun NavGraphBuilder.authenticatorNavBarDestination(
|
||||
) {
|
||||
AuthenticatorNavBarScreen(
|
||||
onNavigateBack = onNavigateBack,
|
||||
onNavigateToSearch = onNavigateToSearch,
|
||||
onNavigateToQrCodeScanner = onNavigateToQrCodeScanner,
|
||||
onNavigateToManualKeyEntry = onNavigateToManualKeyEntry,
|
||||
onNavigateToEditItem = onNavigateToEditItem,
|
||||
onNavigateToSearch = onNavigateToSearch,
|
||||
onNavigateToTutorial = onNavigateToTutorial,
|
||||
onNavigateToExport = onNavigateToExport,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.bitwarden.authenticator.ui.authenticator.feature.navbar
|
||||
|
||||
import android.os.Parcelable
|
||||
import android.widget.Toast
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.WindowInsets
|
||||
import androidx.compose.foundation.layout.consumeWindowInsets
|
||||
@@ -72,7 +71,6 @@ fun AuthenticatorNavBarScreen(
|
||||
onNavigateToQrCodeScanner: () -> Unit,
|
||||
onNavigateToManualKeyEntry: () -> Unit,
|
||||
onNavigateToEditItem: (itemId: String) -> Unit,
|
||||
onNavigateToTutorial: () -> Unit,
|
||||
onNavigateToExport: () -> Unit,
|
||||
) {
|
||||
EventsEffect(viewModel = viewModel) { event ->
|
||||
@@ -112,7 +110,6 @@ fun AuthenticatorNavBarScreen(
|
||||
navigateToQrCodeScanner = onNavigateToQrCodeScanner,
|
||||
navigateToManualKeyEntry = onNavigateToManualKeyEntry,
|
||||
navigateToEditItem = onNavigateToEditItem,
|
||||
navigateToTutorial = onNavigateToTutorial,
|
||||
navigateToExport = onNavigateToExport,
|
||||
)
|
||||
}
|
||||
@@ -128,7 +125,6 @@ private fun AuthenticatorNavBarScaffold(
|
||||
navigateToQrCodeScanner: () -> Unit,
|
||||
navigateToManualKeyEntry: () -> Unit,
|
||||
navigateToEditItem: (itemId: String) -> Unit,
|
||||
navigateToTutorial: () -> Unit,
|
||||
navigateToExport: () -> Unit,
|
||||
) {
|
||||
BitwardenScaffold(
|
||||
@@ -176,7 +172,6 @@ private fun AuthenticatorNavBarScaffold(
|
||||
navigateToQrCodeScanner = navigateToQrCodeScanner,
|
||||
navigateToManualKeyEntry = navigateToManualKeyEntry,
|
||||
navigateToEditItem = navigateToEditItem,
|
||||
navigateToTutorial = navigateToTutorial,
|
||||
navigateToExport = navigateToExport,
|
||||
)
|
||||
}
|
||||
@@ -318,6 +313,7 @@ private sealed class AuthenticatorNavBarTab : Parcelable {
|
||||
override val iconRes get() = R.drawable.ic_settings
|
||||
override val labelRes get() = R.string.settings
|
||||
override val contentDescriptionRes get() = R.string.settings
|
||||
|
||||
// TODO: Replace with constant when settings screen is complete.
|
||||
override val route get() = SETTINGS_GRAPH_ROUTE
|
||||
override val testTag get() = "SettingsTab"
|
||||
|
||||
@@ -54,6 +54,7 @@ class RootNavViewModel @Inject constructor(
|
||||
|
||||
private fun handleTutorialFinished() {
|
||||
settingsRepository.hasSeenWelcomeTutorial = true
|
||||
mutableStateFlow.update { it.copy(navState = RootNavState.NavState.ItemListing) }
|
||||
}
|
||||
|
||||
private fun handleSplashScreenDismissed() {
|
||||
|
||||
@@ -6,6 +6,8 @@ import androidx.navigation.NavOptions
|
||||
import androidx.navigation.navigation
|
||||
import com.bitwarden.authenticator.ui.platform.base.util.composableWithRootPushTransitions
|
||||
import com.bitwarden.authenticator.ui.platform.feature.settings.export.exportDestination
|
||||
import com.bitwarden.authenticator.ui.platform.feature.tutorial.navigateToSettingsTutorial
|
||||
import com.bitwarden.authenticator.ui.platform.feature.tutorial.tutorialSettingsDestination
|
||||
|
||||
const val SETTINGS_GRAPH_ROUTE = "settings_graph"
|
||||
private const val SETTINGS_ROUTE = "settings"
|
||||
@@ -15,7 +17,6 @@ private const val SETTINGS_ROUTE = "settings"
|
||||
*/
|
||||
fun NavGraphBuilder.settingsGraph(
|
||||
navController: NavController,
|
||||
onNavigateToTutorial: () -> Unit,
|
||||
onNavigateToExport: () -> Unit,
|
||||
) {
|
||||
navigation(
|
||||
@@ -26,10 +27,13 @@ fun NavGraphBuilder.settingsGraph(
|
||||
route = SETTINGS_ROUTE
|
||||
) {
|
||||
SettingsScreen(
|
||||
onNavigateToTutorial = onNavigateToTutorial,
|
||||
onNavigateToTutorial = { navController.navigateToSettingsTutorial() },
|
||||
onNavigateToExport = onNavigateToExport,
|
||||
)
|
||||
}
|
||||
tutorialSettingsDestination(
|
||||
onTutorialFinished = { navController.popBackStack() }
|
||||
)
|
||||
exportDestination(
|
||||
onNavigateBack = { navController.popBackStack() }
|
||||
)
|
||||
|
||||
@@ -6,6 +6,7 @@ import androidx.navigation.NavOptions
|
||||
import androidx.navigation.compose.composable
|
||||
|
||||
const val TUTORIAL_ROUTE = "tutorial"
|
||||
const val SETTINGS_TUTORIAL_ROUTE = "settings/tutorial"
|
||||
|
||||
fun NavGraphBuilder.tutorialDestination(onTutorialFinished: () -> Unit) {
|
||||
composable(TUTORIAL_ROUTE) {
|
||||
@@ -15,6 +16,18 @@ fun NavGraphBuilder.tutorialDestination(onTutorialFinished: () -> Unit) {
|
||||
}
|
||||
}
|
||||
|
||||
fun NavGraphBuilder.tutorialSettingsDestination(onTutorialFinished: () -> Unit) {
|
||||
composable(SETTINGS_TUTORIAL_ROUTE) {
|
||||
TutorialScreen(
|
||||
onTutorialFinished = onTutorialFinished,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
fun NavController.navigateToTutorial(navOptions: NavOptions? = null) {
|
||||
navigate(route = TUTORIAL_ROUTE, navOptions = navOptions)
|
||||
}
|
||||
|
||||
fun NavController.navigateToSettingsTutorial(navOptions: NavOptions? = null) {
|
||||
navigate(route = SETTINGS_TUTORIAL_ROUTE, navOptions)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user