diff --git a/app/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/authenticator/AuthenticatorNavigation.kt b/app/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/authenticator/AuthenticatorNavigation.kt index 7ac0b84df8..9c42c789d8 100644 --- a/app/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/authenticator/AuthenticatorNavigation.kt +++ b/app/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/authenticator/AuthenticatorNavigation.kt @@ -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() } - ) } } diff --git a/app/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/itemlisting/ItemListingGraphNavigation.kt b/app/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/itemlisting/ItemListingGraphNavigation.kt index 1449b79e92..420d83e6ba 100644 --- a/app/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/itemlisting/ItemListingGraphNavigation.kt +++ b/app/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/itemlisting/ItemListingGraphNavigation.kt @@ -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, ) } diff --git a/app/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/navbar/AuthenticatorNavBarNavigation.kt b/app/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/navbar/AuthenticatorNavBarNavigation.kt index 66da473617..7c687ad2e0 100644 --- a/app/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/navbar/AuthenticatorNavBarNavigation.kt +++ b/app/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/navbar/AuthenticatorNavBarNavigation.kt @@ -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, ) } diff --git a/app/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/navbar/AuthenticatorNavBarScreen.kt b/app/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/navbar/AuthenticatorNavBarScreen.kt index 6be2d0c51e..be24b00e7e 100644 --- a/app/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/navbar/AuthenticatorNavBarScreen.kt +++ b/app/src/main/kotlin/com/bitwarden/authenticator/ui/authenticator/feature/navbar/AuthenticatorNavBarScreen.kt @@ -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" diff --git a/app/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/rootnav/RootNavViewModel.kt b/app/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/rootnav/RootNavViewModel.kt index 556190d4c6..ba106b2fc5 100644 --- a/app/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/rootnav/RootNavViewModel.kt +++ b/app/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/rootnav/RootNavViewModel.kt @@ -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() { diff --git a/app/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/settings/SettingsNavigation.kt b/app/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/settings/SettingsNavigation.kt index e35942f3dc..c131d13967 100644 --- a/app/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/settings/SettingsNavigation.kt +++ b/app/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/settings/SettingsNavigation.kt @@ -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() } ) diff --git a/app/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/tutorial/TutorialNavigation.kt b/app/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/tutorial/TutorialNavigation.kt index 0287315d50..78fc6fa6f0 100644 --- a/app/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/tutorial/TutorialNavigation.kt +++ b/app/src/main/kotlin/com/bitwarden/authenticator/ui/platform/feature/tutorial/TutorialNavigation.kt @@ -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) +}