From c89dd5a82903a8633095c3551c624af80be441ec Mon Sep 17 00:00:00 2001 From: "bw-ghapp[bot]" <178206702+bw-ghapp[bot]@users.noreply.github.com> Date: Fri, 17 Jul 2026 13:09:11 -0500 Subject: [PATCH] Update SDK to 3.0.0-7824-f0ac1382 (#7145) Co-authored-by: bw-ghapp[bot] <178206702+bw-ghapp[bot]@users.noreply.github.com> --- .../util/VaultSdkCipherExtensions.kt | 11 ++++++++-- .../search/util/SearchTypeDataExtensions.kt | 2 +- .../util/VaultItemListingDataExtensions.kt | 4 ++-- .../feature/vault/util/VaultDataExtensions.kt | 2 +- .../util/CipherListViewTypeExtensions.kt | 2 +- .../util/VaultSdkCipherExtensionsTest.kt | 11 +++++++++- .../util/SearchTypeDataExtensionsTest.kt | 15 +++++++++++-- .../VaultItemListingDataExtensionsTest.kt | 8 ++++++- .../util/CipherListViewExtensionsTest.kt | 22 ++++++++++++++++--- .../vault/util/VaultDataExtensionsTest.kt | 22 ++++++++++++++++--- gradle/libs.versions.toml | 2 +- .../network/model/SyncResponseJson.kt | 4 ++-- 12 files changed, 85 insertions(+), 20 deletions(-) diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/util/VaultSdkCipherExtensions.kt b/app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/util/VaultSdkCipherExtensions.kt index 526b252575..226fa90e00 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/util/VaultSdkCipherExtensions.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/util/VaultSdkCipherExtensions.kt @@ -15,6 +15,7 @@ import com.bitwarden.network.model.SyncResponseJson import com.bitwarden.network.model.UriMatchTypeJson import com.bitwarden.vault.Attachment import com.bitwarden.vault.BankAccount +import com.bitwarden.vault.BankAccountListView import com.bitwarden.vault.Card import com.bitwarden.vault.CardListView import com.bitwarden.vault.Cipher @@ -844,14 +845,20 @@ fun Cipher.toFailureCipherListView(): CipherListView = CipherType.SECURE_NOTE -> CipherListViewType.SecureNote CipherType.CARD -> CipherListViewType.Card( - CardListView( + v1 = CardListView( brand = null, ), ) CipherType.IDENTITY -> CipherListViewType.Identity CipherType.SSH_KEY -> CipherListViewType.SshKey - CipherType.BANK_ACCOUNT -> CipherListViewType.BankAccount + CipherType.BANK_ACCOUNT -> CipherListViewType.BankAccount( + v1 = BankAccountListView( + accountNumber = null, + accountType = null, + ), + ) + CipherType.DRIVERS_LICENSE -> CipherListViewType.DriversLicense CipherType.PASSPORT -> CipherListViewType.Passport }, diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/util/SearchTypeDataExtensions.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/util/SearchTypeDataExtensions.kt index d9f8f358eb..6f0526c15f 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/util/SearchTypeDataExtensions.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/util/SearchTypeDataExtensions.kt @@ -281,7 +281,7 @@ private val CipherListViewType.iconRes: Int is CipherListViewType.Card -> BitwardenDrawable.ic_payment_card CipherListViewType.Identity -> BitwardenDrawable.ic_id_card CipherListViewType.SshKey -> BitwardenDrawable.ic_ssh_key - CipherListViewType.BankAccount -> BitwardenDrawable.ic_payment_card + is CipherListViewType.BankAccount -> BitwardenDrawable.ic_payment_card CipherListViewType.DriversLicense -> BitwardenDrawable.ic_note CipherListViewType.Passport -> BitwardenDrawable.ic_passport } diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/util/VaultItemListingDataExtensions.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/util/VaultItemListingDataExtensions.kt index 8e28f7d05f..76b81e88a8 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/util/VaultItemListingDataExtensions.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/util/VaultItemListingDataExtensions.kt @@ -570,7 +570,7 @@ private fun CipherListView.toIconTestTag(): String = is CipherListViewType.Card -> "CardCipherIcon" CipherListViewType.Identity -> "IdentityCipherIcon" CipherListViewType.SshKey -> "SshKeyCipherIcon" - CipherListViewType.BankAccount -> "BankAccountCipherIcon" + is CipherListViewType.BankAccount -> "BankAccountCipherIcon" CipherListViewType.DriversLicense -> "LicenseCipherIcon" CipherListViewType.Passport -> "PassportCipherIcon" } @@ -635,7 +635,7 @@ private val CipherListViewType.iconRes: Int is CipherListViewType.Card -> BitwardenDrawable.ic_payment_card CipherListViewType.Identity -> BitwardenDrawable.ic_id_card CipherListViewType.SshKey -> BitwardenDrawable.ic_ssh_key - CipherListViewType.BankAccount -> BitwardenDrawable.ic_payment_card + is CipherListViewType.BankAccount -> BitwardenDrawable.ic_payment_card CipherListViewType.DriversLicense -> BitwardenDrawable.ic_note CipherListViewType.Passport -> BitwardenDrawable.ic_passport } diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/util/VaultDataExtensions.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/util/VaultDataExtensions.kt index 9d2486d976..1882fbfcf9 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/util/VaultDataExtensions.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/util/VaultDataExtensions.kt @@ -372,7 +372,7 @@ private fun CipherListView.toVaultItemOrNull( hasDecryptionError = hasDecryptionError, ) - CipherListViewType.BankAccount -> VaultState.ViewState.VaultItem.BankAccount( + is CipherListViewType.BankAccount -> VaultState.ViewState.VaultItem.BankAccount( id = id, name = name.asText(), overflowOptions = toOverflowActions( diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/util/CipherListViewTypeExtensions.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/util/CipherListViewTypeExtensions.kt index 9ef1d137a2..9f00960212 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/util/CipherListViewTypeExtensions.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/util/CipherListViewTypeExtensions.kt @@ -13,7 +13,7 @@ fun CipherListViewType.toSdkCipherType(): CipherType = is CipherListViewType.Login -> CipherType.LOGIN CipherListViewType.SecureNote -> CipherType.SECURE_NOTE CipherListViewType.SshKey -> CipherType.SSH_KEY - CipherListViewType.BankAccount -> CipherType.BANK_ACCOUNT + is CipherListViewType.BankAccount -> CipherType.BANK_ACCOUNT CipherListViewType.DriversLicense -> CipherType.DRIVERS_LICENSE CipherListViewType.Passport -> CipherType.PASSPORT } diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/data/vault/repository/util/VaultSdkCipherExtensionsTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/data/vault/repository/util/VaultSdkCipherExtensionsTest.kt index 57ed13a68c..eb722158b8 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/data/vault/repository/util/VaultSdkCipherExtensionsTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/data/vault/repository/util/VaultSdkCipherExtensionsTest.kt @@ -20,6 +20,7 @@ import com.bitwarden.network.model.createMockPasswordHistory import com.bitwarden.network.model.createMockSecureNote import com.bitwarden.network.model.createMockSshKey import com.bitwarden.network.model.createMockUri +import com.bitwarden.vault.BankAccountListView import com.bitwarden.vault.CipherListViewType import com.bitwarden.vault.CipherRepromptType import com.bitwarden.vault.CipherType @@ -536,7 +537,15 @@ class VaultSdkCipherExtensionsTest { val result = cipher.toFailureCipherListView() - assertEquals(CipherListViewType.BankAccount, result.type) + assertEquals( + CipherListViewType.BankAccount( + v1 = BankAccountListView( + accountNumber = null, + accountType = null, + ), + ), + result.type, + ) } @Test diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/util/SearchTypeDataExtensionsTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/util/SearchTypeDataExtensionsTest.kt index f04f0a14d8..f5d978dc6c 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/util/SearchTypeDataExtensionsTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/util/SearchTypeDataExtensionsTest.kt @@ -7,6 +7,7 @@ import com.bitwarden.send.SendView import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.util.asText +import com.bitwarden.vault.BankAccountListView import com.bitwarden.vault.CipherListView import com.bitwarden.vault.CipherListViewType import com.bitwarden.vault.CipherRepromptType @@ -404,13 +405,23 @@ class SearchTypeDataExtensionsTest { fun `CipherViews filterAndOrganize should return list with only bank account items`() { val match1 = createMockCipherListView( number = 1, - type = CipherListViewType.BankAccount, + type = CipherListViewType.BankAccount( + v1 = BankAccountListView( + accountNumber = null, + accountType = null, + ), + ), name = "match1", ) val match2 = createMockCipherListView(number = 2, name = "match2") val match3 = createMockCipherListView( number = 3, - type = CipherListViewType.BankAccount, + type = CipherListViewType.BankAccount( + v1 = BankAccountListView( + accountNumber = null, + accountType = null, + ), + ), name = "match3", ) val ciphers = listOf(match1, match2, match3) diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/util/VaultItemListingDataExtensionsTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/util/VaultItemListingDataExtensionsTest.kt index 8d562bf2fb..15d1071f9b 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/util/VaultItemListingDataExtensionsTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/util/VaultItemListingDataExtensionsTest.kt @@ -14,6 +14,7 @@ import com.bitwarden.ui.platform.model.TotpData import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.util.asText +import com.bitwarden.vault.BankAccountListView import com.bitwarden.vault.CipherListViewType import com.bitwarden.vault.CipherRepromptType import com.bitwarden.vault.CipherType @@ -404,7 +405,12 @@ class VaultItemListingDataExtensionsTest { val cipherView = createMockCipherListView( number = 1, isDeleted = false, - type = CipherListViewType.BankAccount, + type = CipherListViewType.BankAccount( + v1 = BankAccountListView( + accountNumber = null, + accountType = null, + ), + ), ) mapOf( diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/util/CipherListViewExtensionsTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/util/CipherListViewExtensionsTest.kt index 3e73d0ad58..f0fe202d41 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/util/CipherListViewExtensionsTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/util/CipherListViewExtensionsTest.kt @@ -1,6 +1,7 @@ package com.x8bit.bitwarden.ui.vault.feature.util import com.bitwarden.ui.platform.components.icon.model.IconData +import com.bitwarden.vault.BankAccountListView import com.bitwarden.vault.CipherListViewType import com.bitwarden.vault.CipherType import com.bitwarden.vault.CopyableCipherFields @@ -365,7 +366,12 @@ class CipherListViewExtensionsTest { fun `toOverflowActions should return all copy actions for a bank account cipher`() { val cipher = createMockCipherListView( number = 1, - type = CipherListViewType.BankAccount, + type = CipherListViewType.BankAccount( + v1 = BankAccountListView( + accountNumber = null, + accountType = null, + ), + ), id = id, copyableFields = listOf( CopyableCipherFields.BANK_ACCOUNT_ACCOUNT_NUMBER, @@ -408,7 +414,12 @@ class CipherListViewExtensionsTest { fun `toOverflowActions should return only available copy actions for a bank account cipher`() { val cipher = createMockCipherListView( number = 1, - type = CipherListViewType.BankAccount, + type = CipherListViewType.BankAccount( + v1 = BankAccountListView( + accountNumber = null, + accountType = null, + ), + ), id = id, copyableFields = listOf( CopyableCipherFields.BANK_ACCOUNT_ACCOUNT_NUMBER, @@ -449,7 +460,12 @@ class CipherListViewExtensionsTest { id = id, isDeleted = true, isArchived = true, - type = CipherListViewType.BankAccount, + type = CipherListViewType.BankAccount( + v1 = BankAccountListView( + accountNumber = null, + accountType = null, + ), + ), ) val result = cipher.toOverflowActions( diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/util/VaultDataExtensionsTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/util/VaultDataExtensionsTest.kt index 371288cd15..8cce738c4b 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/util/VaultDataExtensionsTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/util/VaultDataExtensionsTest.kt @@ -7,6 +7,7 @@ import com.bitwarden.ui.platform.components.icon.model.IconData import com.bitwarden.ui.platform.resource.BitwardenDrawable import com.bitwarden.ui.platform.resource.BitwardenString import com.bitwarden.ui.util.asText +import com.bitwarden.vault.BankAccountListView import com.bitwarden.vault.CipherListViewType import com.bitwarden.vault.CipherRepromptType import com.bitwarden.vault.CipherType @@ -1390,19 +1391,34 @@ class VaultDataExtensionsTest { successes = listOf( createMockCipherListView( number = 1, - type = CipherListViewType.BankAccount, + type = CipherListViewType.BankAccount( + v1 = BankAccountListView( + accountNumber = null, + accountType = null, + ), + ), favorite = true, folderId = null, ), createMockCipherListView( number = 2, - type = CipherListViewType.BankAccount, + type = CipherListViewType.BankAccount( + v1 = BankAccountListView( + accountNumber = null, + accountType = null, + ), + ), reprompt = CipherRepromptType.PASSWORD, folderId = null, ), createMockCipherListView( number = 3, - type = CipherListViewType.BankAccount, + type = CipherListViewType.BankAccount( + v1 = BankAccountListView( + accountNumber = null, + accountType = null, + ), + ), folderId = null, ), ), diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 86e7eec175..37b10117e4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -29,7 +29,7 @@ androidxRoom = "2.8.4" androidxSecurityCrypto = "1.1.0" androidxSplash = "1.2.0" androidxWork = "2.11.2" -bitwardenSdk = "3.0.0-7673-101364a4" +bitwardenSdk = "3.0.0-7799-d2bd7a3e" crashlytics = "3.0.7" detekt = "1.23.8" firebaseBom = "34.15.0" diff --git a/network/src/main/kotlin/com/bitwarden/network/model/SyncResponseJson.kt b/network/src/main/kotlin/com/bitwarden/network/model/SyncResponseJson.kt index 5cad606c4a..f83ca1a8f0 100644 --- a/network/src/main/kotlin/com/bitwarden/network/model/SyncResponseJson.kt +++ b/network/src/main/kotlin/com/bitwarden/network/model/SyncResponseJson.kt @@ -1007,13 +1007,13 @@ data class SyncResponseJson( @Serializable data class SshKey( @SerialName("publicKey") - val publicKey: String, + val publicKey: String?, @SerialName("privateKey") val privateKey: String, @SerialName("keyFingerprint") - val keyFingerprint: String, + val keyFingerprint: String?, ) /**