Fix routing on tutorial completion (#51)

This commit is contained in:
Patrick Honkonen
2024-04-24 19:29:48 -04:00
committed by GitHub
parent f191f02296
commit 7e93c1a74b
7 changed files with 22 additions and 19 deletions

View File

@@ -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() }
)
}
}

View File

@@ -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,
)
}

View File

@@ -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,
)
}

View File

@@ -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"

View File

@@ -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() {

View File

@@ -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() }
)

View File

@@ -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)
}