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 Álison Fernandes
parent bd5e00e27a
commit 8d6e492473
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 ->