[PR #6853] [PM-32806] feat: Add Passport item type #55137

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

📋 Pull Request Information

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

Base: new-item-types/PM-32808_drivers-licenseHead: new-item-types/PM-32806_passport


📝 Commits (1)

📊 Changes

34 files changed (+1756 additions, -5 deletions)

View changed files

📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/SearchNavigation.kt (+4 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/SearchViewModel.kt (+23 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/model/SearchType.kt (+5 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/util/SearchTypeDataExtensions.kt (+8 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/util/SearchTypeExtensions.kt (+1 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditItemContent.kt (+8 -1)
app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditPassportItems.kt (+271 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreen.kt (+6 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditViewModel.kt (+181 -0)
app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/handlers/VaultAddEditPassportTypeHandlers.kt (+173 -0)
app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemPassportContent.kt (+408 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreen.kt (+8 -4)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemViewModel.kt (+54 -0)
app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/handlers/VaultPassportItemTypeHandlers.kt (+32 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingNavigation.kt (+5 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingViewModel.kt (+24 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/model/ListingItemOverflowAction.kt (+13 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/util/VaultItemListingDataExtensions.kt (+18 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/util/VaultItemListingStateExtensions.kt (+8 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/util/VaultItemListingTypeExtensions.kt (+4 -0)

...and 14 more files

📄 Description

🎟️ Tracking

PM-32806 — third Android Story under epic PM-32009 (New Item Types).

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

📔 Objective

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

The View screen treats the passport number (national identification number) as a hidden-by-default field with reveal toggle and copy action, mirroring the Card item type's number/CVV UX. AddEdit follows the same Card pattern. Visibility is tracked via rememberSaveable since the canonical Passport state model uses plain String?.

The vault list trailing action is a single quick-copy button gated on the SDK's CopyableCipherFields.PASSPORT_* 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 Passport data model with split fields (surname/givenName, separate dobMonth/Day/Year, issueMonth/Day/Year, expirationMonth/Day/Year).

SDK dependency

The Bitwarden SDK does not yet expose CipherType.PASSPORT, CipherListViewType.Passport, PassportView on CipherView, or CopyableCipherFields.PASSPORT_*. Affected sites carry TODO(PM-32009) markers documenting the additions required:

  • SearchViewModel.kt:599 — passport number copy lookup
  • SearchTypeDataExtensions.kt:143 — search filter predicate
  • VaultItemListingViewModel.kt:1327 — listing copy lookup
  • VaultItemListingDataExtensions.kt:93 — listing filter predicate
  • CipherListViewExtensions.kt:104 — overflow emission
  • VaultViewModel.kt:867 — vault overview copy lookup
  • VaultDataExtensions.kt:158 — Passport count

The 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/6853 **Author:** [@SaintPatrck](https://github.com/SaintPatrck) **Created:** 4/29/2026 **Status:** 🔄 Open **Base:** `new-item-types/PM-32808_drivers-license` ← **Head:** `new-item-types/PM-32806_passport` --- ### 📝 Commits (1) - [`937920a`](https://github.com/bitwarden/android/commit/937920a35f335772a58b521dd2658790495a3ffb) [PM-32806] feat: Add Passport item type ### 📊 Changes **34 files changed** (+1756 additions, -5 deletions) <details> <summary>View changed files</summary> 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/SearchNavigation.kt` (+4 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/SearchViewModel.kt` (+23 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/model/SearchType.kt` (+5 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/util/SearchTypeDataExtensions.kt` (+8 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/util/SearchTypeExtensions.kt` (+1 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditItemContent.kt` (+8 -1) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditPassportItems.kt` (+271 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreen.kt` (+6 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditViewModel.kt` (+181 -0) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/handlers/VaultAddEditPassportTypeHandlers.kt` (+173 -0) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemPassportContent.kt` (+408 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreen.kt` (+8 -4) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemViewModel.kt` (+54 -0) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/handlers/VaultPassportItemTypeHandlers.kt` (+32 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingNavigation.kt` (+5 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingViewModel.kt` (+24 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/model/ListingItemOverflowAction.kt` (+13 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/util/VaultItemListingDataExtensions.kt` (+18 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/util/VaultItemListingStateExtensions.kt` (+8 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/util/VaultItemListingTypeExtensions.kt` (+4 -0) _...and 14 more files_ </details> ### 📄 Description ## 🎟️ Tracking [PM-32806](https://bitwarden.atlassian.net/browse/PM-32806) — third Android Story under epic [PM-32009](https://bitwarden.atlassian.net/browse/PM-32009) (New Item Types). > Stacked on [#6852 (PM-32808 Driver's License)](https://github.com/bitwarden/android/pull/6852) → [#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 Third vertical slice of the New Item Types epic for Android. Adds the Passport cipher type's Add/Edit form, View screen, vault listing entry, search support, and a single quick-copy overflow action ("Copy passport number") on top of the Driver's License slice. The View screen treats the **passport number (national identification number) as a hidden-by-default field** with reveal toggle and copy action, mirroring the Card item type's number/CVV UX. AddEdit follows the same Card pattern. Visibility is tracked via `rememberSaveable` since the canonical Passport state model uses plain `String?`. The vault list trailing action is a single quick-copy button gated on the SDK's `CopyableCipherFields.PASSPORT_*` 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 Passport data model with split fields (`surname`/`givenName`, separate `dobMonth`/`Day`/`Year`, `issueMonth`/`Day`/`Year`, `expirationMonth`/`Day`/`Year`). ## SDK dependency The Bitwarden SDK does not yet expose `CipherType.PASSPORT`, `CipherListViewType.Passport`, `PassportView` on `CipherView`, or `CopyableCipherFields.PASSPORT_*`. Affected sites carry `TODO(PM-32009)` markers documenting the additions required: - `SearchViewModel.kt:599` — passport number copy lookup - `SearchTypeDataExtensions.kt:143` — search filter predicate - `VaultItemListingViewModel.kt:1327` — listing copy lookup - `VaultItemListingDataExtensions.kt:93` — listing filter predicate - `CipherListViewExtensions.kt:104` — overflow emission - `VaultViewModel.kt:867` — vault overview copy lookup - `VaultDataExtensions.kt:158` — Passport count The 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-32806]: https://bitwarden.atlassian.net/browse/PM-32806?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:52 -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#55137