Add navigation routing for the VaultEditItemScreen (#328)

This commit is contained in:
David Perez
2023-12-06 09:35:36 -06:00
committed by Álison Fernandes
parent b61c796f7b
commit 96866ee540
11 changed files with 71 additions and 14 deletions

View File

@@ -10,10 +10,12 @@ import com.x8bit.bitwarden.ui.platform.feature.vaultunlockednavbar.VAULT_UNLOCKE
import com.x8bit.bitwarden.ui.platform.feature.vaultunlockednavbar.vaultUnlockedNavBarDestination
import com.x8bit.bitwarden.ui.tools.feature.send.navigateToNewSend
import com.x8bit.bitwarden.ui.tools.feature.send.newSendDestination
import com.x8bit.bitwarden.ui.vault.feature.item.navigateToVaultItem
import com.x8bit.bitwarden.ui.vault.feature.item.vaultItemDestination
import com.x8bit.bitwarden.ui.vault.feature.additem.navigateToVaultAddItem
import com.x8bit.bitwarden.ui.vault.feature.additem.vaultAddItemDestination
import com.x8bit.bitwarden.ui.vault.feature.edit.navigateToVaultEditItem
import com.x8bit.bitwarden.ui.vault.feature.edit.vaultEditItemDestination
import com.x8bit.bitwarden.ui.vault.feature.item.navigateToVaultItem
import com.x8bit.bitwarden.ui.vault.feature.item.vaultItemDestination
const val VAULT_UNLOCKED_GRAPH_ROUTE: String = "vault_unlocked_graph"
@@ -37,12 +39,17 @@ fun NavGraphBuilder.vaultUnlockedGraph(
vaultUnlockedNavBarDestination(
onNavigateToVaultAddItem = { navController.navigateToVaultAddItem() },
onNavigateToVaultItem = { navController.navigateToVaultItem(it) },
onNavigateToVaultEditItem = { navController.navigateToVaultEditItem(it) },
onNavigateToNewSend = { navController.navigateToNewSend() },
onNavigateToDeleteAccount = { navController.navigateToDeleteAccount() },
)
deleteAccountDestination(onNavigateBack = { navController.popBackStack() })
vaultAddItemDestination(onNavigateBack = { navController.popBackStack() })
vaultItemDestination(onNavigateBack = { navController.popBackStack() })
vaultItemDestination(
onNavigateBack = { navController.popBackStack() },
onNavigateToVaultEditItem = { navController.navigateToVaultEditItem(it) },
)
vaultEditItemDestination(onNavigateBack = { navController.popBackStack() })
newSendDestination(onNavigateBack = { navController.popBackStack() })
}
}

View File

@@ -24,6 +24,7 @@ fun NavController.navigateToVaultUnlockedNavBar(navOptions: NavOptions? = null)
fun NavGraphBuilder.vaultUnlockedNavBarDestination(
onNavigateToVaultAddItem: () -> Unit,
onNavigateToVaultItem: (vaultItemId: String) -> Unit,
onNavigateToVaultEditItem: (vaultItemId: String) -> Unit,
onNavigateToNewSend: () -> Unit,
onNavigateToDeleteAccount: () -> Unit,
) {
@@ -37,6 +38,7 @@ fun NavGraphBuilder.vaultUnlockedNavBarDestination(
VaultUnlockedNavBarScreen(
onNavigateToVaultAddItem = onNavigateToVaultAddItem,
onNavigateToVaultItem = onNavigateToVaultItem,
onNavigateToVaultEditItem = onNavigateToVaultEditItem,
onNavigateToNewSend = onNavigateToNewSend,
onNavigateToDeleteAccount = onNavigateToDeleteAccount,
)

View File

@@ -67,6 +67,7 @@ fun VaultUnlockedNavBarScreen(
navController: NavHostController = rememberNavController(),
onNavigateToVaultAddItem: () -> Unit,
onNavigateToVaultItem: (vaultItemId: String) -> Unit,
onNavigateToVaultEditItem: (vaultItemId: String) -> Unit,
onNavigateToNewSend: () -> Unit,
onNavigateToDeleteAccount: () -> Unit,
) {
@@ -95,6 +96,7 @@ fun VaultUnlockedNavBarScreen(
VaultUnlockedNavBarScaffold(
navController = navController,
onNavigateToVaultItem = onNavigateToVaultItem,
onNavigateToVaultEditItem = onNavigateToVaultEditItem,
navigateToVaultAddItem = onNavigateToVaultAddItem,
navigateToNewSend = onNavigateToNewSend,
navigateToDeleteAccount = onNavigateToDeleteAccount,
@@ -126,6 +128,7 @@ private fun VaultUnlockedNavBarScaffold(
settingsTabClickedAction: () -> Unit,
navigateToVaultAddItem: () -> Unit,
onNavigateToVaultItem: (vaultItemId: String) -> Unit,
onNavigateToVaultEditItem: (vaultItemId: String) -> Unit,
navigateToNewSend: () -> Unit,
navigateToDeleteAccount: () -> Unit,
) {
@@ -182,6 +185,7 @@ private fun VaultUnlockedNavBarScaffold(
navigateToVaultAddItem()
},
onNavigateToVaultItemScreen = onNavigateToVaultItem,
onNavigateToVaultEditItemScreen = onNavigateToVaultEditItem,
onDimBottomNavBarRequest = { shouldDim ->
shouldDimNavBar = shouldDim
},

View File

@@ -27,6 +27,7 @@ class VaultItemArgs(val vaultItemId: String) {
*/
fun NavGraphBuilder.vaultItemDestination(
onNavigateBack: () -> Unit,
onNavigateToVaultEditItem: (vaultItemId: String) -> Unit,
) {
composable(
route = VAULT_ITEM_ROUTE,
@@ -34,11 +35,14 @@ fun NavGraphBuilder.vaultItemDestination(
navArgument(VAULT_ITEM_ID) { type = NavType.StringType },
),
enterTransition = TransitionProviders.Enter.slideUp,
exitTransition = TransitionProviders.Exit.slideDown,
popEnterTransition = TransitionProviders.Enter.slideUp,
exitTransition = TransitionProviders.Exit.stay,
popEnterTransition = TransitionProviders.Enter.stay,
popExitTransition = TransitionProviders.Exit.slideDown,
) {
VaultItemScreen(onNavigateBack = onNavigateBack)
VaultItemScreen(
onNavigateBack = onNavigateBack,
onNavigateToVaultEditItem = onNavigateToVaultEditItem,
)
}
}

View File

@@ -49,6 +49,7 @@ fun VaultItemScreen(
clipboardManager: ClipboardManager = LocalClipboardManager.current,
intentHandler: IntentHandler = IntentHandler(context = LocalContext.current),
onNavigateBack: () -> Unit,
onNavigateToVaultEditItem: (vaultItemId: String) -> Unit,
) {
val state by viewModel.stateFlow.collectAsStateWithLifecycle()
val context = LocalContext.current
@@ -61,9 +62,7 @@ fun VaultItemScreen(
VaultItemEvent.NavigateBack -> onNavigateBack()
is VaultItemEvent.NavigateToEdit -> {
Toast.makeText(context, "Not yet implemented.", Toast.LENGTH_SHORT).show()
}
is VaultItemEvent.NavigateToEdit -> onNavigateToVaultEditItem(event.itemId)
is VaultItemEvent.NavigateToPasswordHistory -> {
Toast.makeText(context, "Not yet implemented.", Toast.LENGTH_SHORT).show()

View File

@@ -13,12 +13,14 @@ const val VAULT_ROUTE: String = "vault"
fun NavGraphBuilder.vaultDestination(
onNavigateToVaultAddItemScreen: () -> Unit,
onNavigateToVaultItemScreen: (vaultItemId: String) -> Unit,
onNavigateToVaultEditItemScreen: (vaultItemId: String) -> Unit,
onDimBottomNavBarRequest: (shouldDim: Boolean) -> Unit,
) {
composable(VAULT_ROUTE) {
VaultScreen(
onNavigateToVaultAddItemScreen = onNavigateToVaultAddItemScreen,
onNavigateToVaultItemScreen = onNavigateToVaultItemScreen,
onNavigateToVaultEditItemScreen = onNavigateToVaultEditItemScreen,
onDimBottomNavBarRequest = onDimBottomNavBarRequest,
)
}

View File

@@ -46,6 +46,7 @@ fun VaultScreen(
viewModel: VaultViewModel = hiltViewModel(),
onNavigateToVaultAddItemScreen: () -> Unit,
onNavigateToVaultItemScreen: (vaultItemId: String) -> Unit,
onNavigateToVaultEditItemScreen: (vaultItemId: String) -> Unit,
onDimBottomNavBarRequest: (shouldDim: Boolean) -> Unit,
) {
val context = LocalContext.current
@@ -62,6 +63,8 @@ fun VaultScreen(
is VaultEvent.NavigateToVaultItem -> onNavigateToVaultItemScreen(event.itemId)
is VaultEvent.NavigateToEditVaultItem -> onNavigateToVaultEditItemScreen(event.itemId)
VaultEvent.NavigateToCardGroup -> {
Toast
.makeText(context, "Navigate to card type screen.", Toast.LENGTH_SHORT)

View File

@@ -419,6 +419,13 @@ sealed class VaultEvent {
val itemId: String,
) : VaultEvent()
/**
* Navigate to the item edit screen.
*/
data class NavigateToEditVaultItem(
val itemId: String,
) : VaultEvent()
/**
* Navigate to the card group screen.
*/