Add select option for title in identity creation (#506)

This commit is contained in:
Ramsey Smith
2024-01-05 15:36:17 -07:00
committed by GitHub
parent f5ddb3cba1
commit 62e82dec1f
5 changed files with 13 additions and 5 deletions

View File

@@ -1108,7 +1108,7 @@ data class VaultAddEditState(
*/
@Parcelize
data class Identity(
val selectedTitle: VaultIdentityTitle = VaultIdentityTitle.MR,
val selectedTitle: VaultIdentityTitle = VaultIdentityTitle.SELECT,
val firstName: String = "",
val middleName: String = "",
val lastName: String = "",

View File

@@ -106,7 +106,7 @@ private fun String?.toTitleOrDefault(): VaultIdentityTitle =
VaultIdentityTitle
.entries
.find { it.name == this }
?: VaultIdentityTitle.MR
?: VaultIdentityTitle.SELECT
private fun String?.toBrandOrDefault(): VaultCardBrand =
VaultCardBrand

View File

@@ -16,6 +16,7 @@ import com.x8bit.bitwarden.ui.platform.base.util.orNullIfBlank
import com.x8bit.bitwarden.ui.vault.feature.addedit.VaultAddEditState
import com.x8bit.bitwarden.ui.vault.model.VaultCardBrand
import com.x8bit.bitwarden.ui.vault.model.VaultCardExpirationMonth
import com.x8bit.bitwarden.ui.vault.model.VaultIdentityTitle
import java.time.Instant
/**
@@ -89,7 +90,12 @@ private fun VaultAddEditState.ViewState.Content.ItemType.toCardView(): CardView?
private fun VaultAddEditState.ViewState.Content.ItemType.toIdentityView(): IdentityView? =
(this as? VaultAddEditState.ViewState.Content.ItemType.Identity)?.let {
IdentityView(
title = it.selectedTitle.name,
title = it
.selectedTitle
.takeUnless { title ->
title == VaultIdentityTitle.SELECT
}
?.name,
firstName = it.firstName.orNullIfBlank(),
lastName = it.lastName.orNullIfBlank(),
middleName = it.middleName.orNullIfBlank(),

View File

@@ -3,11 +3,13 @@ package com.x8bit.bitwarden.ui.vault.model
import com.x8bit.bitwarden.R
import com.x8bit.bitwarden.ui.platform.base.util.Text
import com.x8bit.bitwarden.ui.platform.base.util.asText
import com.x8bit.bitwarden.ui.vault.feature.addedit.util.SELECT_TEXT
/**
* Defines all available title options for identities.
*/
enum class VaultIdentityTitle(val value: Text) {
SELECT(value = SELECT_TEXT),
MR(value = R.string.mr.asText()),
MRS(value = R.string.mrs.asText()),
MS(value = R.string.ms.asText()),

View File

@@ -625,7 +625,7 @@ class VaultAddEditScreenTest : BaseComposeTest() {
mutableStateFlow.value = DEFAULT_STATE_IDENTITY
// Opens the menu
composeTestRule
.onNodeWithContentDescriptionAfterScroll(label = "Title, Mr")
.onNodeWithContentDescriptionAfterScroll(label = "Title, -- Select --")
.performClick()
// Choose the option from the menu
@@ -648,7 +648,7 @@ class VaultAddEditScreenTest : BaseComposeTest() {
fun `in ItemType_Identity the Title should display the selected title from the state`() {
mutableStateFlow.value = DEFAULT_STATE_IDENTITY
composeTestRule
.onNodeWithContentDescriptionAfterScroll(label = "Title, Mr")
.onNodeWithContentDescriptionAfterScroll(label = "Title, -- Select --")
.assertIsDisplayed()
mutableStateFlow.update { currentState ->