[PR #5579] [MERGED] [PM-24148] add credential manager provider for create passwords #5884

Closed
opened 2025-11-27 00:16:19 -06:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/bitwarden/android/pull/5579
Author: @Nailik
Created: 7/24/2025
Status: Merged
Merged: 11/19/2025
Merged by: @SaintPatrck

Base: mainHead: feature/add-password-credential-manager-provider-create


📝 Commits (10+)

  • 8e6d5e4 add capability TYPE_PASSWORD_CREDENTIAL
  • 07e8a53 handle BeginCreatePasswordCredentialRequest in CredentialProvider
  • 6f67403 rename CredentialProvider Passkey/Fido2 intent and functions to more universal Credential intent and functions
  • 8c83375 remove filter BeginGetPublicKeyCredentialOption in order to also handle password requests
  • 3d44349 create CredentialEntry list for CredentialManager request for Passwords
  • f277f02 wip
  • 715ffdf wip
  • ddde493 build password credential entry list
  • 8c14fd5 enable autofill of passwords
  • d91d653 cleanup

📊 Changes

30 files changed (+882 additions, -339 deletions)

View changed files

📝 app/build.gradle.kts (+3 -3)
📝 app/src/main/AndroidManifest.xml (+1 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/data/credentials/manager/CredentialManagerPendingIntentManager.kt (+7 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/data/credentials/manager/CredentialManagerPendingIntentManagerImpl.kt (+19 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/data/credentials/model/CreateCredentialRequest.kt (+10 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/data/credentials/processor/CredentialProviderProcessorImpl.kt (+61 -17)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/credentials/manager/CredentialProviderCompletionManager.kt (+4 -4)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/credentials/manager/CredentialProviderCompletionManagerImpl.kt (+14 -5)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/credentials/manager/CredentialProviderCompletionManagerUnsupportedApiImpl.kt (+2 -2)
app/src/main/kotlin/com/x8bit/bitwarden/ui/credentials/manager/model/CreateCredentialResult.kt (+34 -0)
app/src/main/kotlin/com/x8bit/bitwarden/ui/credentials/manager/model/RegisterFido2CredentialResult.kt (+0 -23)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/components/dialog/BitwardenOverwriteCredentialConfirmationDialog.kt (+6 -5)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/rootnav/RootNavScreen.kt (+13 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/rootnav/RootNavViewModel.kt (+41 -5)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreen.kt (+19 -9)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditViewModel.kt (+105 -101)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/util/CreateCredentialRequestExtensions.kt (+9 -2)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreen.kt (+10 -4)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingViewModel.kt (+73 -20)
📝 app/src/test/kotlin/com/x8bit/bitwarden/data/credentials/model/CreateCredentialRequestUtil.kt (+1 -1)

...and 10 more files

📄 Description

🎟️ Tracking

https://github.com/bitwarden/android/issues/4100

📔 Objective

Currently there is only an implementation to provide or save Fido2 credentials via the CredentialManager.
The objective is to add the possibility to save and create Passwords.

Credential Manager usage: https://developer.android.com/identity/sign-in/credential-manager
Credential Provider to provide Credential Manager: https://developer.android.com/identity/sign-in/credential-provider
Example Project: https://github.com/android/identity-samples/tree/main/CredentialManager

Save was already done in https://github.com/bitwarden/android/pull/4110 , therefore this PR is for creating or updating password entries.

📸 Screenshots

## 📋 Pull Request Information **Original PR:** https://github.com/bitwarden/android/pull/5579 **Author:** [@Nailik](https://github.com/Nailik) **Created:** 7/24/2025 **Status:** ✅ Merged **Merged:** 11/19/2025 **Merged by:** [@SaintPatrck](https://github.com/SaintPatrck) **Base:** `main` ← **Head:** `feature/add-password-credential-manager-provider-create` --- ### 📝 Commits (10+) - [`8e6d5e4`](https://github.com/bitwarden/android/commit/8e6d5e43e66fd429f24a683d28cece612a596761) add capability TYPE_PASSWORD_CREDENTIAL - [`07e8a53`](https://github.com/bitwarden/android/commit/07e8a538d4d68936e81d4be98cbf755a12974475) handle BeginCreatePasswordCredentialRequest in CredentialProvider - [`6f67403`](https://github.com/bitwarden/android/commit/6f6740395af539eddfebe10f623ebb875b7fdf35) rename CredentialProvider Passkey/Fido2 intent and functions to more universal Credential intent and functions - [`8c83375`](https://github.com/bitwarden/android/commit/8c83375e3ee8262311f0857444f6330c9c5fa6bb) remove filter BeginGetPublicKeyCredentialOption in order to also handle password requests - [`3d44349`](https://github.com/bitwarden/android/commit/3d44349cb80311c1581d528b6b986c42f863452b) create CredentialEntry list for CredentialManager request for Passwords - [`f277f02`](https://github.com/bitwarden/android/commit/f277f02a24ab6b5de684bb9db67a28c20c12ea87) wip - [`715ffdf`](https://github.com/bitwarden/android/commit/715ffdfd3c56794b7f86449acbf799e5dac1275e) wip - [`ddde493`](https://github.com/bitwarden/android/commit/ddde4936af036617cb1493c8378e868df85c1606) build password credential entry list - [`8c14fd5`](https://github.com/bitwarden/android/commit/8c14fd5e0442f54ffc399aeceac1bdbb3e30ae51) enable autofill of passwords - [`d91d653`](https://github.com/bitwarden/android/commit/d91d653f24ec679e19d5b556a28da8cb106e0550) cleanup ### 📊 Changes **30 files changed** (+882 additions, -339 deletions) <details> <summary>View changed files</summary> 📝 `app/build.gradle.kts` (+3 -3) 📝 `app/src/main/AndroidManifest.xml` (+1 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/data/credentials/manager/CredentialManagerPendingIntentManager.kt` (+7 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/data/credentials/manager/CredentialManagerPendingIntentManagerImpl.kt` (+19 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/data/credentials/model/CreateCredentialRequest.kt` (+10 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/data/credentials/processor/CredentialProviderProcessorImpl.kt` (+61 -17) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/credentials/manager/CredentialProviderCompletionManager.kt` (+4 -4) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/credentials/manager/CredentialProviderCompletionManagerImpl.kt` (+14 -5) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/credentials/manager/CredentialProviderCompletionManagerUnsupportedApiImpl.kt` (+2 -2) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/ui/credentials/manager/model/CreateCredentialResult.kt` (+34 -0) ➖ `app/src/main/kotlin/com/x8bit/bitwarden/ui/credentials/manager/model/RegisterFido2CredentialResult.kt` (+0 -23) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/components/dialog/BitwardenOverwriteCredentialConfirmationDialog.kt` (+6 -5) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/rootnav/RootNavScreen.kt` (+13 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/rootnav/RootNavViewModel.kt` (+41 -5) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreen.kt` (+19 -9) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditViewModel.kt` (+105 -101) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/util/CreateCredentialRequestExtensions.kt` (+9 -2) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreen.kt` (+10 -4) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingViewModel.kt` (+73 -20) 📝 `app/src/test/kotlin/com/x8bit/bitwarden/data/credentials/model/CreateCredentialRequestUtil.kt` (+1 -1) _...and 10 more files_ </details> ### 📄 Description ## 🎟️ Tracking https://github.com/bitwarden/android/issues/4100 ## 📔 Objective Currently there is only an implementation to provide or save Fido2 credentials via the CredentialManager. The objective is to add the possibility to save and create Passwords. Credential Manager usage: https://developer.android.com/identity/sign-in/credential-manager Credential Provider to provide Credential Manager: https://developer.android.com/identity/sign-in/credential-provider Example Project: https://github.com/android/identity-samples/tree/main/CredentialManager Save was already done in https://github.com/bitwarden/android/pull/4110 , therefore this PR is for creating or updating password entries. ## 📸 Screenshots <video src="https://github.com/user-attachments/assets/d60a5ff8-c6cd-4fa3-b0a0-5e73429cc079" width="365" /> ## ⏰ Reminders before review - Contributor guidelines followed - All formatters and local linters executed and passed - Written new unit and / or integration tests where applicable - Protected functional changes with optionality (feature flags) - Used internationalization (i18n) for all UI strings - CI builds passed - Communicated to DevOps any deployment requirements - Updated any necessary documentation (Confluence, contributing docs) or informed the documentation team ## 🦮 Reviewer guidelines <!-- Suggested interactions but feel free to use (or not) as you desire! --> - 👍 (`:+1:`) or similar for great changes - 📝 (`:memo:`) or ℹ️ (`:information_source:`) for notes or general info - ❓ (`:question:`) for questions - 🤔 (`:thinking:`) or 💭 (`:thought_balloon:`) for more open inquiry that's not quite a confirmed issue and could potentially benefit from discussion - 🎨 (`:art:`) for suggestions / improvements - ❌ (`:x:`) or ⚠️ (`:warning:`) for more significant problems or concerns needing attention - 🌱 (`:seedling:`) or ♻️ (`:recycle:`) for future improvements or indications of technical debt - ⛏ (`:pick:`) for minor or nitpick changes --- <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 2025-11-27 00:16:19 -06:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/android#5884