[PR #6829] [CLOSED] [PM-32009] feat: Add add/edit and view UI for new cipher types #55117

Closed
opened 2026-05-01 21:04:34 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/bitwarden/android/pull/6829
Author: @SaintPatrck
Created: 4/23/2026
Status: Closed

Base: new-item-types/phase-01-04_infrastructureHead: new-item-types/phase-05-07_cipher-type-ui


📝 Commits (6)

  • 0ad22d2 PM-32009 feat: Add infrastructure for new vault item types
  • 5f659d4 Address review findings: feature flag gating, logging, save guard
  • 8fcedf6 PM-32009 feat: Add UI screens for Bank Account, Driver's License, and Passport cipher types
  • 6983d2d Address review findings: apostrophes, imports, docs, and tests
  • ab6f7fe Address Phase 5-7 review findings: imports, documentation, tests
  • acd414c Add missing tests and restore month/year string resources

📊 Changes

44 files changed (+4480 additions, -5 deletions)

View changed files

📝 app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/util/VaultSdkCipherExtensions.kt (+16 -1)
📝 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 (+242 -0)
app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditDriversLicenseItems.kt (+208 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditItemContent.kt (+30 -0)
app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditPassportItems.kt (+304 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreen.kt (+18 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditViewModel.kt (+554 -0)
app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/handlers/VaultAddEditBankAccountTypeHandlers.kt (+111 -0)
app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/handlers/VaultAddEditDriversLicenseTypeHandlers.kt (+89 -0)
app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/handlers/VaultAddEditPassportTypeHandlers.kt (+118 -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/VaultAddEditExtensions.kt (+6 -0)
app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemBankAccountContent.kt (+329 -0)
app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemDriversLicenseContent.kt (+196 -0)
app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemPassportContent.kt (+249 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreen.kt (+48 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemViewModel.kt (+233 -0)
app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/handlers/VaultBankAccountItemTypeHandlers.kt (+62 -0)

...and 24 more files

📄 Description

🎟️ Tracking

PM-32009

📔 Objective

Second of three stacked PRs. Builds the Compose add/edit forms, view screens, and associated handlers for Bank Account, Driver's License, and Passport on top of the infrastructure landed in #6828.

Kept separate from the vault-integration PR so reviewers can focus on screen-level concerns — field layouts, masking, handlers, and ViewModel state — without also triaging listing/search/navigation changes.

Why it looks the way it does

  • Bank Account account number and PIN default to hidden with reveal controls, matching the existing Card type's treatment of sensitive fields. Copy actions are wired through the same handler pattern so future auditing and analytics stay consistent.
  • Driver's License and Passport use month/year pickers (rather than a free-form date field) because issuance/expiration at the document level is typically known only to month precision, and this avoids introducing a day-level schema the server doesn't track.
  • Per-type handler classes (Vault…TypeHandlers) isolate each new type's action plumbing from VaultAddEditViewModel and VaultItemViewModel, which already carry significant complexity for Login/Card/Identity/SecureNote. Keeping new surface area out of those files reduces merge risk with parallel cipher-type work.
  • Nothing is user-visible yet: the feature flag from #6828 still gates entry points. This PR can merge independently of the vault-integration PR.

Stacked on: #6828
Followed by: new-item-types/phase-08-11_vault-integration (vault listing, search, item-type selection)

📸 Screenshots

To be added before marking ready for review.


🔄 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/6829 **Author:** [@SaintPatrck](https://github.com/SaintPatrck) **Created:** 4/23/2026 **Status:** ❌ Closed **Base:** `new-item-types/phase-01-04_infrastructure` ← **Head:** `new-item-types/phase-05-07_cipher-type-ui` --- ### 📝 Commits (6) - [`0ad22d2`](https://github.com/bitwarden/android/commit/0ad22d2fc29c2a04d16345cf95d5534197e1e7ed) [PM-32009] feat: Add infrastructure for new vault item types - [`5f659d4`](https://github.com/bitwarden/android/commit/5f659d47f5ceb9c37c20251003993e91b61daa29) Address review findings: feature flag gating, logging, save guard - [`8fcedf6`](https://github.com/bitwarden/android/commit/8fcedf6866a212cd2a8d6a3037667b549aae29c0) [PM-32009] feat: Add UI screens for Bank Account, Driver's License, and Passport cipher types - [`6983d2d`](https://github.com/bitwarden/android/commit/6983d2de9543a59670654bc0f47f7d3d241aea6a) Address review findings: apostrophes, imports, docs, and tests - [`ab6f7fe`](https://github.com/bitwarden/android/commit/ab6f7fe0f1dfc431e0f30d9c6c79623a19998bcf) Address Phase 5-7 review findings: imports, documentation, tests - [`acd414c`](https://github.com/bitwarden/android/commit/acd414c1ec20d852d612ac9f2b762af8af558a72) Add missing tests and restore month/year string resources ### 📊 Changes **44 files changed** (+4480 additions, -5 deletions) <details> <summary>View changed files</summary> 📝 `app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/util/VaultSdkCipherExtensions.kt` (+16 -1) 📝 `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` (+242 -0) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditDriversLicenseItems.kt` (+208 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditItemContent.kt` (+30 -0) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditPassportItems.kt` (+304 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreen.kt` (+18 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditViewModel.kt` (+554 -0) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/handlers/VaultAddEditBankAccountTypeHandlers.kt` (+111 -0) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/handlers/VaultAddEditDriversLicenseTypeHandlers.kt` (+89 -0) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/handlers/VaultAddEditPassportTypeHandlers.kt` (+118 -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/VaultAddEditExtensions.kt` (+6 -0) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemBankAccountContent.kt` (+329 -0) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemDriversLicenseContent.kt` (+196 -0) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemPassportContent.kt` (+249 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreen.kt` (+48 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemViewModel.kt` (+233 -0) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/handlers/VaultBankAccountItemTypeHandlers.kt` (+62 -0) _...and 24 more files_ </details> ### 📄 Description ## 🎟️ Tracking [PM-32009](https://bitwarden.atlassian.net/browse/PM-32009) ## 📔 Objective Second of three stacked PRs. Builds the Compose add/edit forms, view screens, and associated handlers for Bank Account, Driver's License, and Passport on top of the infrastructure landed in #6828. Kept separate from the vault-integration PR so reviewers can focus on screen-level concerns — field layouts, masking, handlers, and ViewModel state — without also triaging listing/search/navigation changes. **Why it looks the way it does** - **Bank Account account number and PIN default to hidden with reveal controls**, matching the existing Card type's treatment of sensitive fields. Copy actions are wired through the same handler pattern so future auditing and analytics stay consistent. - **Driver's License and Passport use month/year pickers** (rather than a free-form date field) because issuance/expiration at the document level is typically known only to month precision, and this avoids introducing a day-level schema the server doesn't track. - **Per-type handler classes (`Vault…TypeHandlers`)** isolate each new type's action plumbing from `VaultAddEditViewModel` and `VaultItemViewModel`, which already carry significant complexity for Login/Card/Identity/SecureNote. Keeping new surface area out of those files reduces merge risk with parallel cipher-type work. - **Nothing is user-visible yet:** the feature flag from #6828 still gates entry points. This PR can merge independently of the vault-integration PR. **Stacked on:** #6828 **Followed by:** `new-item-types/phase-08-11_vault-integration` (vault listing, search, item-type selection) ## 📸 Screenshots _To be added before marking ready for review._ [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:04:34 -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#55117