mirror of
https://github.com/bitwarden/android.git
synced 2026-10-21 18:42:48 -05:00
[PM-36379] fix: Show the item type in the save snackbar (#7308)
This commit is contained in:
1 parent
00066abde7
commit
5fdd0870d1
3 files changed
+105
-7
No files matched your search
+17
-2
@@ -2033,7 +2033,7 @@ class VaultAddEditViewModel @Inject constructor(
|
||||
sendEvent(event = VaultAddEditEvent.ExitApp)
|
||||
} else {
|
||||
snackbarRelayManager.sendSnackbarData(
|
||||
data = BitwardenSnackbarData(BitwardenString.new_item_created.asText()),
|
||||
data = BitwardenSnackbarData(state.savedSnackbarMessage),
|
||||
relay = SnackbarRelay.CIPHER_CREATED,
|
||||
)
|
||||
sendEvent(event = VaultAddEditEvent.NavigateBack)
|
||||
@@ -2066,7 +2066,7 @@ class VaultAddEditViewModel @Inject constructor(
|
||||
sendEvent(event = VaultAddEditEvent.ExitApp)
|
||||
} else {
|
||||
snackbarRelayManager.sendSnackbarData(
|
||||
data = BitwardenSnackbarData(BitwardenString.item_updated.asText()),
|
||||
data = BitwardenSnackbarData(state.savedSnackbarMessage),
|
||||
relay = SnackbarRelay.CIPHER_UPDATED,
|
||||
)
|
||||
sendEvent(event = VaultAddEditEvent.NavigateBack)
|
||||
@@ -2810,6 +2810,21 @@ data class VaultAddEditState(
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper to determine the snackbar message shown after the item is successfully saved.
|
||||
*/
|
||||
val savedSnackbarMessage: Text
|
||||
get() = when (cipherType) {
|
||||
VaultItemCipherType.LOGIN -> BitwardenString.login_saved.asText()
|
||||
VaultItemCipherType.CARD -> BitwardenString.card_saved.asText()
|
||||
VaultItemCipherType.IDENTITY -> BitwardenString.identity_saved.asText()
|
||||
VaultItemCipherType.SECURE_NOTE -> BitwardenString.secure_note_saved.asText()
|
||||
VaultItemCipherType.SSH_KEY -> BitwardenString.ssh_key_saved.asText()
|
||||
VaultItemCipherType.BANK_ACCOUNT -> BitwardenString.bank_account_saved.asText()
|
||||
VaultItemCipherType.DRIVERS_LICENSE -> BitwardenString.license_saved.asText()
|
||||
VaultItemCipherType.PASSPORT -> BitwardenString.passport_saved.asText()
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether the cipher is in a collection.
|
||||
*/
|
||||
|
||||
+80
-4
@@ -961,7 +961,7 @@ class VaultAddEditViewModelTest : BaseViewModelTest() {
|
||||
}
|
||||
verify(exactly = 1) {
|
||||
snackbarRelayManager.sendSnackbarData(
|
||||
data = BitwardenSnackbarData(BitwardenString.new_item_created.asText()),
|
||||
data = BitwardenSnackbarData(BitwardenString.login_saved.asText()),
|
||||
relay = SnackbarRelay.CIPHER_CREATED,
|
||||
)
|
||||
}
|
||||
@@ -1131,7 +1131,7 @@ class VaultAddEditViewModelTest : BaseViewModelTest() {
|
||||
assertNotNull(specialCircumstanceManager.specialCircumstance)
|
||||
verify(exactly = 1) {
|
||||
snackbarRelayManager.sendSnackbarData(
|
||||
data = BitwardenSnackbarData(BitwardenString.new_item_created.asText()),
|
||||
data = BitwardenSnackbarData(BitwardenString.login_saved.asText()),
|
||||
relay = SnackbarRelay.CIPHER_CREATED,
|
||||
)
|
||||
}
|
||||
@@ -1514,12 +1514,88 @@ class VaultAddEditViewModelTest : BaseViewModelTest() {
|
||||
}
|
||||
verify(exactly = 1) {
|
||||
snackbarRelayManager.sendSnackbarData(
|
||||
data = BitwardenSnackbarData(BitwardenString.new_item_created.asText()),
|
||||
data = BitwardenSnackbarData(BitwardenString.login_saved.asText()),
|
||||
relay = SnackbarRelay.CIPHER_CREATED,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@Suppress("MaxLineLength")
|
||||
@Test
|
||||
fun `in add mode with a card, createCipherInOrganization success should send the card saved snackbar`() =
|
||||
runTest {
|
||||
val stateWithName = createVaultAddItemState(
|
||||
vaultItemCipherType = VaultItemCipherType.CARD,
|
||||
commonContentViewState = createCommonContentViewState(
|
||||
name = "mockName-1",
|
||||
),
|
||||
typeContentViewState = VaultAddEditState.ViewState.Content.ItemType.Card(),
|
||||
)
|
||||
|
||||
mutableVaultDataFlow.value = DataState.Loaded(createVaultData())
|
||||
|
||||
val viewModel = createAddVaultItemViewModel(
|
||||
createSavedStateHandleWithState(
|
||||
state = stateWithName,
|
||||
vaultAddEditType = VaultAddEditType.AddItem,
|
||||
vaultItemCipherType = VaultItemCipherType.CARD,
|
||||
),
|
||||
)
|
||||
|
||||
coEvery {
|
||||
vaultRepository.createCipherInOrganization(any(), any())
|
||||
} returns CreateCipherResult.Success
|
||||
viewModel.eventFlow.test {
|
||||
viewModel.trySendAction(VaultAddEditAction.Common.SaveClick)
|
||||
assertEquals(VaultAddEditEvent.NavigateBack, awaitItem())
|
||||
}
|
||||
verify(exactly = 1) {
|
||||
snackbarRelayManager.sendSnackbarData(
|
||||
data = BitwardenSnackbarData(BitwardenString.card_saved.asText()),
|
||||
relay = SnackbarRelay.CIPHER_CREATED,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `in edit mode with a card, updateCipher success should send the card saved snackbar`() =
|
||||
runTest {
|
||||
val cipherView = createMockCipherListView(1)
|
||||
val stateWithName = createVaultAddItemState(
|
||||
vaultAddEditType = VaultAddEditType.EditItem(DEFAULT_EDIT_ITEM_ID),
|
||||
vaultItemCipherType = VaultItemCipherType.CARD,
|
||||
commonContentViewState = createCommonContentViewState(
|
||||
name = "mockName-1",
|
||||
),
|
||||
typeContentViewState = VaultAddEditState.ViewState.Content.ItemType.Card(),
|
||||
)
|
||||
|
||||
mutableVaultDataFlow.value =
|
||||
DataState.Loaded(createVaultData(cipherListView = cipherView))
|
||||
|
||||
val viewModel = createAddVaultItemViewModel(
|
||||
createSavedStateHandleWithState(
|
||||
state = stateWithName,
|
||||
vaultAddEditType = VaultAddEditType.EditItem(DEFAULT_EDIT_ITEM_ID),
|
||||
vaultItemCipherType = VaultItemCipherType.CARD,
|
||||
),
|
||||
)
|
||||
|
||||
coEvery {
|
||||
vaultRepository.updateCipher(any(), any())
|
||||
} returns UpdateCipherResult.Success
|
||||
viewModel.eventFlow.test {
|
||||
viewModel.trySendAction(VaultAddEditAction.Common.SaveClick)
|
||||
assertEquals(VaultAddEditEvent.NavigateBack, awaitItem())
|
||||
}
|
||||
verify(exactly = 1) {
|
||||
snackbarRelayManager.sendSnackbarData(
|
||||
data = BitwardenSnackbarData(BitwardenString.card_saved.asText()),
|
||||
relay = SnackbarRelay.CIPHER_UPDATED,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `in edit mode, canDelete should be true when cipher permission is true`() =
|
||||
runTest {
|
||||
@@ -1855,7 +1931,7 @@ class VaultAddEditViewModelTest : BaseViewModelTest() {
|
||||
}
|
||||
verify(exactly = 1) {
|
||||
snackbarRelayManager.sendSnackbarData(
|
||||
data = BitwardenSnackbarData(BitwardenString.item_updated.asText()),
|
||||
data = BitwardenSnackbarData(BitwardenString.login_saved.asText()),
|
||||
relay = SnackbarRelay.CIPHER_UPDATED,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -120,7 +120,6 @@
|
||||
<string name="min_numbers">Minimum numbers</string>
|
||||
<string name="min_special">Minimum special</string>
|
||||
<string name="never">Never</string>
|
||||
<string name="new_item_created">Item added</string>
|
||||
<string name="no_cards">There are no cards in your vault.</string>
|
||||
<string name="add_card">Add card</string>
|
||||
<string name="no_logins">There are no logins in your vault.</string>
|
||||
@@ -150,6 +149,14 @@
|
||||
<string name="select">Select</string>
|
||||
<string name="item_details">Item details</string>
|
||||
<string name="item_updated">Item saved</string>
|
||||
<string name="bank_account_saved">Bank account saved</string>
|
||||
<string name="card_saved">Card saved</string>
|
||||
<string name="identity_saved">Identity saved</string>
|
||||
<string name="license_saved">License saved</string>
|
||||
<string name="login_saved">Login saved</string>
|
||||
<string name="passport_saved">Passport saved</string>
|
||||
<string name="secure_note_saved">Secure note saved</string>
|
||||
<string name="ssh_key_saved">SSH key saved</string>
|
||||
<string name="submitting">Submitting…</string>
|
||||
<string name="syncing">Syncing…</string>
|
||||
<string name="syncing_complete">Syncing complete</string>
|
||||
|
||||
Reference in new issue
Block a user