[PR #6852] [PM-32808] feat: Add Driver's License item type #55136

Open
opened 2026-05-01 21:05:48 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/bitwarden/android/pull/6852
Author: @SaintPatrck
Created: 4/29/2026
Status: 🔄 Open

Base: mainHead: new-item-types/PM-32808_drivers-license


📝 Commits (10+)

  • c29d33a PM-32009 feat: Add infrastructure for new vault item types
  • 46c416e Address review findings: feature flag gating, logging, save guard
  • d5d752e Address review feedback: enumerate bank account type and add SDK mapping
  • c9f1030 Add test coverage for new vault item type infrastructure
  • 8309266 Fix rebase resolution: restore PremiumStateManager logic and dedupe bankAccount fixtures
  • ffff3d3 Fix test fixture cascade by defaulting new cipher type fields to null
  • 1d865d1 Address review feedback for new item type infrastructure
  • 30b7b1d Revert createMockSdkCipher bankAccount default to null
  • 6fe7fba Default bankAccount fixtures to populated mocks for symmetry
  • 599f7d0 Drop redundant bankAccount overrides now that fixtures default to populated mocks

📊 Changes

74 files changed (+5029 additions, -62 deletions)

View changed files

📝 app/src/main/kotlin/com/x8bit/bitwarden/data/platform/util/CipherViewExtensions.kt (+1 -2)
📝 app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/util/VaultSdkCipherExtensions.kt (+49 -3)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/SearchNavigation.kt (+8 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/SearchViewModel.kt (+77 -1)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/model/SearchType.kt (+10 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/util/SearchTypeDataExtensions.kt (+14 -1)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/util/SearchTypeExtensions.kt (+2 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/components/model/CreateVaultItemType.kt (+15 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/components/util/CreateVaultItemTypeExtensions.kt (+3 -0)
app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditBankAccountItems.kt (+205 -0)
app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditDriversLicenseItems.kt (+190 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditItemContent.kt (+23 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreen.kt (+12 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditViewModel.kt (+366 -0)
app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/handlers/VaultAddEditBankAccountTypeHandlers.kt (+131 -0)
app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/handlers/VaultAddEditDriversLicenseTypeHandlers.kt (+119 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/model/CustomFieldType.kt (+3 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/util/CipherViewExtensions.kt (+16 -1)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/util/VaultAddEditExtensions.kt (+9 -0)
app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemBankAccountContent.kt (+338 -0)

...and 54 more files

📄 Description

🎟️ Tracking

PM-32808 — second Android Story under epic PM-32009 (New Item Types).

Stacked on #6851 (PM-32810 Bank Account). Review and merge order: PM-32810 → PM-32808 → PM-32806 → PM-34123 → PM-35396.

📔 Objective

Second vertical slice of the New Item Types epic for Android. Adds the Driver's License cipher type's Add/Edit form, View screen, vault listing entry, search support, and a single quick-copy overflow action ("Copy license number") on top of the Bank Account slice.

The vault list trailing action is a single quick-copy button gated on the SDK's CopyableCipherFields.DRIVERS_LICENSE_* flag (TODO(PM-32009) until the SDK exposes it). The vault list row subtitle is intentionally not formatted client-side — CipherListView.subtitle stays SDK-owned.

This Android slice consumes the canonical phase-01-04 data model with split fields (firstName/middleName/lastName, separate expirationMonth/Day/Year, issuingCountry/issuingState).

SDK dependency

The Bitwarden SDK (currently 2.0.0-6484-a19b6544) does not yet expose CipherType.DRIVERS_LICENSE, CipherListViewType.DriversLicense, or CopyableCipherFields.DRIVERS_LICENSE_*. Affected sites carry TODO(PM-32009) markers documenting the additions required before this Story can ship to production. AddEdit form, View screen, ViewModel actions, search/listing wiring, and the overflow action data class are live today and exercised by tests against synthetic state.

📸 Screenshots

UI screenshots will be added before this PR is moved out of draft.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/bitwarden/android/pull/6852 **Author:** [@SaintPatrck](https://github.com/SaintPatrck) **Created:** 4/29/2026 **Status:** 🔄 Open **Base:** `main` ← **Head:** `new-item-types/PM-32808_drivers-license` --- ### 📝 Commits (10+) - [`c29d33a`](https://github.com/bitwarden/android/commit/c29d33aead4f4e9e284ba20152e04d49147b4270) [PM-32009] feat: Add infrastructure for new vault item types - [`46c416e`](https://github.com/bitwarden/android/commit/46c416ea734009169338dd30ddf7de8cc5c34192) Address review findings: feature flag gating, logging, save guard - [`d5d752e`](https://github.com/bitwarden/android/commit/d5d752e5db8a65dec3513983d6fa8cbc0f2ca415) Address review feedback: enumerate bank account type and add SDK mapping - [`c9f1030`](https://github.com/bitwarden/android/commit/c9f1030927638f753b1ade9d29f57c2918345385) Add test coverage for new vault item type infrastructure - [`8309266`](https://github.com/bitwarden/android/commit/83092666c45ed1289269ff6e98a4bf612405fd77) Fix rebase resolution: restore PremiumStateManager logic and dedupe bankAccount fixtures - [`ffff3d3`](https://github.com/bitwarden/android/commit/ffff3d3272d13700bb75d377699bc58876e9f5ee) Fix test fixture cascade by defaulting new cipher type fields to null - [`1d865d1`](https://github.com/bitwarden/android/commit/1d865d1b454fb0a3b15b151dccccf993202870d6) Address review feedback for new item type infrastructure - [`30b7b1d`](https://github.com/bitwarden/android/commit/30b7b1d36c3dc3afeaf6c9d6b3a8974d1bd613be) Revert createMockSdkCipher bankAccount default to null - [`6fe7fba`](https://github.com/bitwarden/android/commit/6fe7fbaa7858432a9a08af115da96575f4e8a7c3) Default bankAccount fixtures to populated mocks for symmetry - [`599f7d0`](https://github.com/bitwarden/android/commit/599f7d0ba870b28cab07bdad5a60584f201b5ea1) Drop redundant bankAccount overrides now that fixtures default to populated mocks ### 📊 Changes **74 files changed** (+5029 additions, -62 deletions) <details> <summary>View changed files</summary> 📝 `app/src/main/kotlin/com/x8bit/bitwarden/data/platform/util/CipherViewExtensions.kt` (+1 -2) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/util/VaultSdkCipherExtensions.kt` (+49 -3) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/SearchNavigation.kt` (+8 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/SearchViewModel.kt` (+77 -1) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/model/SearchType.kt` (+10 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/util/SearchTypeDataExtensions.kt` (+14 -1) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/util/SearchTypeExtensions.kt` (+2 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/components/model/CreateVaultItemType.kt` (+15 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/components/util/CreateVaultItemTypeExtensions.kt` (+3 -0) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditBankAccountItems.kt` (+205 -0) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditDriversLicenseItems.kt` (+190 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditItemContent.kt` (+23 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreen.kt` (+12 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditViewModel.kt` (+366 -0) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/handlers/VaultAddEditBankAccountTypeHandlers.kt` (+131 -0) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/handlers/VaultAddEditDriversLicenseTypeHandlers.kt` (+119 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/model/CustomFieldType.kt` (+3 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/util/CipherViewExtensions.kt` (+16 -1) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/util/VaultAddEditExtensions.kt` (+9 -0) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemBankAccountContent.kt` (+338 -0) _...and 54 more files_ </details> ### 📄 Description ## 🎟️ Tracking [PM-32808](https://bitwarden.atlassian.net/browse/PM-32808) — second Android Story under epic [PM-32009](https://bitwarden.atlassian.net/browse/PM-32009) (New Item Types). > Stacked on [#6851 (PM-32810 Bank Account)](https://github.com/bitwarden/android/pull/6851). Review and merge order: PM-32810 → **PM-32808** → PM-32806 → PM-34123 → PM-35396. ## 📔 Objective Second vertical slice of the New Item Types epic for Android. Adds the Driver's License cipher type's Add/Edit form, View screen, vault listing entry, search support, and a single quick-copy overflow action ("Copy license number") on top of the Bank Account slice. The vault list trailing action is a single quick-copy button gated on the SDK's `CopyableCipherFields.DRIVERS_LICENSE_*` flag (`TODO(PM-32009)` until the SDK exposes it). The vault list row subtitle is intentionally not formatted client-side — `CipherListView.subtitle` stays SDK-owned. This Android slice consumes the canonical phase-01-04 data model with split fields (`firstName`/`middleName`/`lastName`, separate `expirationMonth`/`Day`/`Year`, `issuingCountry`/`issuingState`). ## SDK dependency The Bitwarden SDK (currently `2.0.0-6484-a19b6544`) does not yet expose `CipherType.DRIVERS_LICENSE`, `CipherListViewType.DriversLicense`, or `CopyableCipherFields.DRIVERS_LICENSE_*`. Affected sites carry `TODO(PM-32009)` markers documenting the additions required before this Story can ship to production. AddEdit form, View screen, ViewModel actions, search/listing wiring, and the overflow action data class are live today and exercised by tests against synthetic state. ## 📸 Screenshots UI screenshots will be added before this PR is moved out of draft. [PM-32808]: https://bitwarden.atlassian.net/browse/PM-32808?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ [PM-32009]: https://bitwarden.atlassian.net/browse/PM-32009?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-05-01 21:05:48 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/android#55136