diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/util/CipherViewExtensions.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/util/CipherViewExtensions.kt index 8d36bb8ee..011088698 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/util/CipherViewExtensions.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/util/CipherViewExtensions.kt @@ -20,9 +20,9 @@ fun CipherView.toOverflowActions(): List<ListingItemOverflowAction.VaultAction> this.login?.username?.let { ListingItemOverflowAction.VaultAction.CopyUsernameClick(username = it) }, - this.login?.password?.let { - ListingItemOverflowAction.VaultAction.CopyPasswordClick(password = it) - }, + this.login?.password + ?.let { ListingItemOverflowAction.VaultAction.CopyPasswordClick(password = it) } + .takeIf { this.viewPassword }, this.login?.totp ?.let { ListingItemOverflowAction.VaultAction.CopyTotpClick(totpCode = it) } .takeIf { this.type == CipherType.LOGIN }, diff --git a/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/sdk/model/CipherViewUtil.kt b/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/sdk/model/CipherViewUtil.kt index 9541bf4ee..030d3c86a 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/sdk/model/CipherViewUtil.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/vault/datasource/sdk/model/CipherViewUtil.kt @@ -68,7 +68,7 @@ fun createMockCipherView( secureNote = createMockSecureNoteView().takeIf { cipherType == CipherType.SECURE_NOTE }, edit = false, organizationUseTotp = false, - viewPassword = false, + viewPassword = true, localData = null, ) diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditViewModelTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditViewModelTest.kt index cc53733e4..5797a8e74 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditViewModelTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditViewModelTest.kt @@ -475,7 +475,7 @@ class VaultAddEditViewModelTest : BaseViewModelTest() { password = "mockPassword-1", uri = listOf(UriItem("testId", "www.mockuri1.com", UriMatchType.HOST)), totpCode = "mockTotp-1", - canViewPassword = false, + canViewPassword = true, ) .copy(totp = "mockTotp-1"), ), diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/util/CipherViewExtensionsTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/util/CipherViewExtensionsTest.kt index 89e46737f..1767d9a52 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/util/CipherViewExtensionsTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/vault/feature/util/CipherViewExtensionsTest.kt @@ -46,6 +46,37 @@ class CipherViewExtensionsTest { ) } + @Suppress("MaxLineLength") + @Test + fun `toOverflowActions should return the correct actions when viewPassword is false for a login cipher`() { + val id = "mockId-1" + val username = "Bitwarden" + val password = "password" + val totpCode = "mockTotp-1" + val uri = "www.test.com" + val cipher = createMockCipherView(number = 1, cipherType = CipherType.LOGIN).copy( + id = id, + login = createMockLoginView(number = 1).copy( + username = username, + password = password, + uris = listOf(createMockUriView(number = 1).copy(uri = uri)), + ), + viewPassword = false, + ) + val result = cipher.toOverflowActions() + + assertEquals( + listOf( + ListingItemOverflowAction.VaultAction.ViewClick(cipherId = id), + ListingItemOverflowAction.VaultAction.EditClick(cipherId = id), + ListingItemOverflowAction.VaultAction.CopyUsernameClick(username = username), + ListingItemOverflowAction.VaultAction.CopyTotpClick(totpCode = totpCode), + ListingItemOverflowAction.VaultAction.LaunchClick(url = uri), + ), + result, + ) + } + @Test fun `toOverflowActions should return minimum actions for a login cipher`() { val id = "mockId-1"