Skip to content

[PM-32808] feat: Add Driver's License vault, listing, and search surfaces#6909

Merged
SaintPatrck merged 2 commits into
mainfrom
new-item-types/PM-32808_drivers-license-vault-integration
May 13, 2026
Merged

[PM-32808] feat: Add Driver's License vault, listing, and search surfaces#6909
SaintPatrck merged 2 commits into
mainfrom
new-item-types/PM-32808_drivers-license-vault-integration

Conversation

@SaintPatrck
Copy link
Copy Markdown
Contributor

@SaintPatrck SaintPatrck commented May 11, 2026

🎟️ Tracking

📔 Objective

Integrates the Driver's License cipher type into the broader vault surfaces so users can discover and act on license entries outside of direct navigation. Adds the License section on the vault landing (count + tappable row using the Identity icon), enables the Licenses listing screen, surfaces licenses in vault search results, and emits the "Copy license number" quick action in the listing-row overflow menu (driven by CopyableCipherFields.DRIVERS_LICENSE_LICENSE_NUMBER).

📸 Screenshots

@SaintPatrck SaintPatrck added the ai-review-vnext Request a Claude code review using the vNext workflow label May 11, 2026
@github-actions github-actions Bot added app:password-manager Bitwarden Password Manager app context app:authenticator Bitwarden Authenticator app context t:feature Change Type - Feature Development labels May 11, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 11, 2026

Bitwarden Claude Code Review

Overall Assessment: APPROVE

This PR integrates the Driver's License cipher type across the vault landing page, item listing screens, search surfaces, and the listing-row overflow menu (copy license number). The implementation mirrors the established Bank Account integration pattern across every touched layer (state, view, navigation, search, overflow actions, and tests). All three prior review threads on this PR have been addressed — the obsolete ic_drivers_license.xml drawable concern is now moot (file no longer present), and parity test coverage was added for CipherListViewExtensions.toOverflowActions, the Search/VaultItemListing overflow handlers, and the VaultViewModel.handleCopyLicenseNumberClick handler in the latest commit.

Code Review Details

No new findings. The change is consistent with the sibling Bank Account pattern, the license group visibility is correctly gated on isNewItemTypesEnabled, and handleCopyLicenseNumberClick uses the same getCipherForCopyOrNull / blank-guard / toastDescriptorOverride flow as handleCopyRoutingNumberClick.

PR Metadata Assessment

  • QUESTION: The PR description's screenshots section is a placeholder noting they will be added before the PR moves out of draft, but the PR is no longer in draft. Consider attaching the License vault row, listing screen, and overflow-menu screenshots before merge.

Comment on lines +1 to +10
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M20,4H4C2.9,4 2,4.9 2,6V18C2,19.1 2.9,20 4,20H20C21.1,20 22,19.1 22,18V6C22,4.9 21.1,4 20,4ZM20,18H4V6H20V18ZM8,12C9.1,12 10,11.1 10,10C10,8.9 9.1,8 8,8C6.9,8 6,8.9 6,10C6,11.1 6.9,12 8,12ZM8,9.5C8.28,9.5 8.5,9.72 8.5,10C8.5,10.28 8.28,10.5 8,10.5C7.72,10.5 7.5,10.28 7.5,10C7.5,9.72 7.72,9.5 8,9.5ZM4,16.5V15C4,13.67 6.67,13 8,13C9.33,13 12,13.67 12,15V16.5H4ZM5.85,15H10.15C9.61,14.57 8.62,14.5 8,14.5C7.38,14.5 6.39,14.57 5.85,15ZM13,9H18V10.5H13V9ZM13,12H17V13.5H13V12Z"
android:fillColor="#175DDC"
android:fillType="evenOdd"/>
</vector>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ DEBT: New drawable is unused — driver's license rows are rendered with BitwardenDrawable.ic_id_card.

Details

VaultContent.kt:303-305 uses BitwardenDrawable.ic_id_card for the driver's license group icon (consistent with the PR description: "tappable row using the Identity icon"), and a repo-wide search finds no other references to ic_drivers_license. The new resource ships in the APK without being rendered anywhere.

Additionally, the asset hard-codes android:fillColor="#175DDC" rather than using the themed tint that sibling icons like ic_id_card rely on, so even if it were wired in it would not theme correctly across light/dark modes.

Either remove the drawable, or wire it into the driver's license group (VaultContent.kt) plus any other surfaces that should distinguish licenses from identities, and convert the fill to a theme attribute.

@codecov
Copy link
Copy Markdown

codecov Bot commented May 11, 2026

Codecov Report

❌ Patch coverage is 73.52941% with 27 lines in your changes missing coverage. Please review.
✅ Project coverage is 86.11%. Comparing base (ecc4fa6) to head (e8f5dfe).

Files with missing lines Patch % Lines
...rden/ui/platform/feature/search/SearchViewModel.kt 57.14% 2 Missing and 4 partials ⚠️
...t/feature/itemlisting/VaultItemListingViewModel.kt 60.00% 1 Missing and 5 partials ⚠️
...ure/itemlisting/model/ListingItemOverflowAction.kt 0.00% 6 Missing ⚠️
...bitwarden/ui/vault/feature/vault/VaultViewModel.kt 75.00% 0 Missing and 4 partials ⚠️
...itemlisting/util/VaultItemListingDataExtensions.kt 70.00% 1 Missing and 2 partials ⚠️
...rm/feature/search/util/SearchTypeDataExtensions.kt 66.66% 0 Missing and 1 partial ⚠️
...t/bitwarden/ui/vault/model/VaultItemListingType.kt 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #6909      +/-   ##
==========================================
+ Coverage   86.07%   86.11%   +0.04%     
==========================================
  Files         857      857              
  Lines       61557    61617      +60     
  Branches     8948     8982      +34     
==========================================
+ Hits        52986    53064      +78     
+ Misses       5504     5471      -33     
- Partials     3067     3082      +15     
Flag Coverage Δ
app-data 17.31% <0.00%> (-0.03%) ⬇️
app-ui-auth-tools 19.57% <0.00%> (-0.04%) ⬇️
app-ui-platform 15.49% <16.84%> (+<0.01%) ⬆️
app-ui-vault 27.35% <65.26%> (+0.06%) ⬆️
authenticator 6.41% <0.00%> (+0.02%) ⬆️
lib-core-network-bridge 4.12% <0.00%> (-0.03%) ⬇️
lib-data-ui 1.14% <0.00%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@SaintPatrck SaintPatrck force-pushed the new-item-types/PM-32808_drivers-license-vault-integration branch from 3d25b0c to 1b2216c Compare May 11, 2026 21:20
@SaintPatrck SaintPatrck force-pushed the new-item-types/PM-32808_drivers-license-add-edit branch from 82a1975 to 1eeba27 Compare May 11, 2026 21:20
@SaintPatrck SaintPatrck force-pushed the new-item-types/PM-32808_drivers-license-add-edit branch from 1eeba27 to d4c07be Compare May 12, 2026 13:53
@SaintPatrck SaintPatrck force-pushed the new-item-types/PM-32808_drivers-license-vault-integration branch from 1b2216c to 8d936e5 Compare May 12, 2026 13:53
@SaintPatrck SaintPatrck force-pushed the new-item-types/PM-32808_drivers-license-add-edit branch 3 times, most recently from 02b74aa to 890aad2 Compare May 12, 2026 20:35
Base automatically changed from new-item-types/PM-32808_drivers-license-add-edit to main May 13, 2026 14:35
Make License a first-class item type so users can browse licenses
from the vault group, scope item-listing screens to licenses, search
licenses in isolation, and quick-copy the license number from
overflow menus.
@SaintPatrck SaintPatrck force-pushed the new-item-types/PM-32808_drivers-license-vault-integration branch from 8d936e5 to 0fae7af Compare May 13, 2026 18:45
@SaintPatrck SaintPatrck force-pushed the new-item-types/PM-32808_drivers-license-vault-integration branch from 1d52bc2 to e8f5dfe Compare May 13, 2026 19:03
@SaintPatrck SaintPatrck marked this pull request as ready for review May 13, 2026 19:03
@SaintPatrck SaintPatrck requested review from a team and david-livefront as code owners May 13, 2026 19:03
@SaintPatrck
Copy link
Copy Markdown
Contributor Author

Thanks @david-livefront

@SaintPatrck SaintPatrck added this pull request to the merge queue May 13, 2026
Merged via the queue into main with commit 8fe23ad May 13, 2026
24 checks passed
@SaintPatrck SaintPatrck deleted the new-item-types/PM-32808_drivers-license-vault-integration branch May 13, 2026 19:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-review-vnext Request a Claude code review using the vNext workflow app:authenticator Bitwarden Authenticator app context app:password-manager Bitwarden Password Manager app context t:feature Change Type - Feature Development

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants