mirror of
https://github.com/bitwarden/android.git
synced 2025-03-15 10:48:47 +03:00
Use default value when navigating to Add Send as root (#693)
This commit is contained in:
parent
a877897a19
commit
687455279b
2 changed files with 16 additions and 23 deletions
|
@ -14,8 +14,7 @@ import com.x8bit.bitwarden.ui.tools.feature.generator.generatorModalDestination
|
|||
import com.x8bit.bitwarden.ui.tools.feature.generator.navigateToGeneratorModal
|
||||
import com.x8bit.bitwarden.ui.tools.feature.generator.passwordhistory.navigateToPasswordHistory
|
||||
import com.x8bit.bitwarden.ui.tools.feature.generator.passwordhistory.passwordHistoryDestination
|
||||
import com.x8bit.bitwarden.ui.tools.feature.send.addsend.ADD_SEND_AS_ROOT_ROUTE
|
||||
import com.x8bit.bitwarden.ui.tools.feature.send.addsend.addSendAsRootDestination
|
||||
import com.x8bit.bitwarden.ui.tools.feature.send.addsend.ADD_SEND_ROUTE
|
||||
import com.x8bit.bitwarden.ui.tools.feature.send.addsend.addSendDestination
|
||||
import com.x8bit.bitwarden.ui.tools.feature.send.addsend.model.AddSendType
|
||||
import com.x8bit.bitwarden.ui.tools.feature.send.addsend.navigateToAddSend
|
||||
|
@ -125,9 +124,12 @@ fun NavGraphBuilder.vaultUnlockedGraphForNewSend(
|
|||
navController: NavController,
|
||||
) {
|
||||
navigation(
|
||||
startDestination = ADD_SEND_AS_ROOT_ROUTE,
|
||||
startDestination = ADD_SEND_ROUTE,
|
||||
route = VAULT_UNLOCKED_FOR_NEW_SEND_GRAPH_ROUTE,
|
||||
) {
|
||||
addSendAsRootDestination(onNavigateBack = { navController.popBackStack() })
|
||||
addSendDestination(
|
||||
defaultType = AddSendType.AddItem,
|
||||
onNavigateBack = { navController.popBackStack() },
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,11 +17,9 @@ private const val EDIT_ITEM_ID: String = "edit_send_id"
|
|||
private const val ADD_SEND_ITEM_PREFIX: String = "add_send_item"
|
||||
private const val ADD_SEND_ITEM_TYPE: String = "add_send_item_type"
|
||||
|
||||
private const val ADD_SEND_ROUTE: String =
|
||||
const val ADD_SEND_ROUTE: String =
|
||||
"$ADD_SEND_ITEM_PREFIX/{$ADD_SEND_ITEM_TYPE}?$EDIT_ITEM_ID={$EDIT_ITEM_ID}"
|
||||
|
||||
const val ADD_SEND_AS_ROOT_ROUTE: String = ADD_SEND_ITEM_PREFIX
|
||||
|
||||
/**
|
||||
* Class to retrieve send add & edit arguments from the [SavedStateHandle].
|
||||
*/
|
||||
|
@ -30,10 +28,9 @@ data class AddSendArgs(
|
|||
val sendAddType: AddSendType,
|
||||
) {
|
||||
constructor(savedStateHandle: SavedStateHandle) : this(
|
||||
sendAddType = when (savedStateHandle.get<String>(ADD_SEND_ITEM_TYPE)) {
|
||||
sendAddType = when (requireNotNull(savedStateHandle.get<String>(ADD_SEND_ITEM_TYPE))) {
|
||||
ADD_TYPE -> AddSendType.AddItem
|
||||
EDIT_TYPE -> AddSendType.EditItem(requireNotNull(savedStateHandle[EDIT_ITEM_ID]))
|
||||
null -> AddSendType.AddItem
|
||||
else -> throw IllegalStateException("Unknown VaultAddEditType.")
|
||||
},
|
||||
)
|
||||
|
@ -41,33 +38,27 @@ data class AddSendArgs(
|
|||
|
||||
/**
|
||||
* Add the new send screen to the nav graph.
|
||||
*
|
||||
* The [defaultType] will be relevant in cases where the Add Send screen needs to be added as a
|
||||
* start destination of a graph.
|
||||
*/
|
||||
fun NavGraphBuilder.addSendDestination(
|
||||
onNavigateBack: () -> Unit,
|
||||
defaultType: AddSendType = AddSendType.AddItem,
|
||||
) {
|
||||
composableWithSlideTransitions(
|
||||
route = ADD_SEND_ROUTE,
|
||||
arguments = listOf(
|
||||
navArgument(ADD_SEND_ITEM_TYPE) { type = NavType.StringType },
|
||||
navArgument(ADD_SEND_ITEM_TYPE) {
|
||||
type = NavType.StringType
|
||||
defaultValue = defaultType.toTypeString()
|
||||
},
|
||||
),
|
||||
) {
|
||||
AddSendScreen(onNavigateBack = onNavigateBack)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the new send screen to the nav graph as a root destination for a nested graph.
|
||||
*/
|
||||
fun NavGraphBuilder.addSendAsRootDestination(
|
||||
onNavigateBack: () -> Unit,
|
||||
) {
|
||||
composableWithSlideTransitions(
|
||||
route = ADD_SEND_AS_ROOT_ROUTE,
|
||||
) {
|
||||
AddSendScreen(onNavigateBack = onNavigateBack)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Navigate to the new send screen.
|
||||
*/
|
||||
|
|
Loading…
Add table
Reference in a new issue