[PR #5867] [MERGED] [PM-25662] Add CredentialExchangeCompletionManager #85944

Closed
opened 2026-05-22 22:53:44 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/bitwarden/android/pull/5867
Author: @SaintPatrck
Created: 9/11/2025
Status: Merged
Merged: 9/15/2025
Merged by: @SaintPatrck

Base: mainHead: cxf/cx-completion-manager


📝 Commits (8)

  • 8bb6b35 [PM-26537] Add CXF module for Credential Exchange support
  • 40c231d Add ProviderEvents API for credential import/export
  • 92dd848 Add CredentialExchangeCompletionManager
  • 341caf5 Merge branch 'main' into cxf/cx-completion-manager
  • db7df78 Annotate CredentialExchangeCompletionManagerBuilder.kt with @OmitFromCoverage
  • a7f4f40 Add OmitFromCoverage to CXF UI and Manager
  • 88082a0 Refactor CredentialExchangeCompletionManagerBuilder
  • 0cccd1f Formatting

📊 Changes

6 files changed (+230 additions, -0 deletions)

View changed files

cxf/src/main/kotlin/com/bitwarden/cxf/manager/CredentialExchangeCompletionManager.kt (+16 -0)
cxf/src/main/kotlin/com/bitwarden/cxf/manager/CredentialExchangeCompletionManagerImpl.kt (+41 -0)
cxf/src/main/kotlin/com/bitwarden/cxf/manager/dsl/CredentialExchangeCompletionManagerBuilder.kt (+54 -0)
cxf/src/main/kotlin/com/bitwarden/cxf/manager/model/ExportCredentialsResult.kt (+20 -0)
cxf/src/main/kotlin/com/bitwarden/cxf/ui/composition/LocalCredentialExchangeCompletionManagerProvider.kt (+17 -0)
cxf/src/test/kotlin/com/bitwarden/cxf/manager/CredentialExchangeCompletionManagerTest.kt (+82 -0)

📄 Description

🎟️ Tracking

PM-25662

📔 Objective

This change introduces the CredentialExchangeCompletionManager and its implementation, CredentialExchangeCompletionManagerImpl, to handle the completion of credential exchange flows.

Key additions include:

  • CredentialExchangeCompletionManager interface defining the contract for completing credential export.
  • CredentialExchangeCompletionManagerImpl providing the concrete implementation, which sets the appropriate result (success or failure) on the calling Activity and finishes it.
  • ExportCredentialsResult sealed class to represent the outcome of the credential export process (Success or Failure).
  • CredentialExchangeCompletionManagerBuilder and a DSL function credentialExchangeCompletionManager for easy construction of the manager.
  • LocalCredentialExchangeCompletionManager for providing the manager via CompositionLocal.
  • Unit tests for CredentialExchangeCompletionManagerImpl to verify its behavior on success and failure scenarios.

📸 Screenshots

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

  • 👍 (:+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

🔄 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/5867 **Author:** [@SaintPatrck](https://github.com/SaintPatrck) **Created:** 9/11/2025 **Status:** ✅ Merged **Merged:** 9/15/2025 **Merged by:** [@SaintPatrck](https://github.com/SaintPatrck) **Base:** `main` ← **Head:** `cxf/cx-completion-manager` --- ### 📝 Commits (8) - [`8bb6b35`](https://github.com/bitwarden/android/commit/8bb6b35f436bb3ceda37917abf5d3e36e2b87016) [PM-26537] Add CXF module for Credential Exchange support - [`40c231d`](https://github.com/bitwarden/android/commit/40c231d91169872b93a14c1687ac224073d71102) Add ProviderEvents API for credential import/export - [`92dd848`](https://github.com/bitwarden/android/commit/92dd848047f3471f7c3ca07b0ec53eeecdd936fd) Add CredentialExchangeCompletionManager - [`341caf5`](https://github.com/bitwarden/android/commit/341caf5b72f64f5f84b1447e86670148d7b9005c) Merge branch 'main' into cxf/cx-completion-manager - [`db7df78`](https://github.com/bitwarden/android/commit/db7df787a4ef608b6286ebda00fe6eefe1d974b5) Annotate CredentialExchangeCompletionManagerBuilder.kt with @OmitFromCoverage - [`a7f4f40`](https://github.com/bitwarden/android/commit/a7f4f4019eadd0297ad5f6f629a4d81f669496a3) Add OmitFromCoverage to CXF UI and Manager - [`88082a0`](https://github.com/bitwarden/android/commit/88082a06df8b6f8ecde2bab5920ebe21a8fac867) Refactor CredentialExchangeCompletionManagerBuilder - [`0cccd1f`](https://github.com/bitwarden/android/commit/0cccd1f0841d2ec5859bbd39e2fc6df6fc2b1184) Formatting ### 📊 Changes **6 files changed** (+230 additions, -0 deletions) <details> <summary>View changed files</summary> ➕ `cxf/src/main/kotlin/com/bitwarden/cxf/manager/CredentialExchangeCompletionManager.kt` (+16 -0) ➕ `cxf/src/main/kotlin/com/bitwarden/cxf/manager/CredentialExchangeCompletionManagerImpl.kt` (+41 -0) ➕ `cxf/src/main/kotlin/com/bitwarden/cxf/manager/dsl/CredentialExchangeCompletionManagerBuilder.kt` (+54 -0) ➕ `cxf/src/main/kotlin/com/bitwarden/cxf/manager/model/ExportCredentialsResult.kt` (+20 -0) ➕ `cxf/src/main/kotlin/com/bitwarden/cxf/ui/composition/LocalCredentialExchangeCompletionManagerProvider.kt` (+17 -0) ➕ `cxf/src/test/kotlin/com/bitwarden/cxf/manager/CredentialExchangeCompletionManagerTest.kt` (+82 -0) </details> ### 📄 Description ## 🎟️ Tracking PM-25662 ## 📔 Objective This change introduces the `CredentialExchangeCompletionManager` and its implementation, `CredentialExchangeCompletionManagerImpl`, to handle the completion of credential exchange flows. Key additions include: - `CredentialExchangeCompletionManager` interface defining the contract for completing credential export. - `CredentialExchangeCompletionManagerImpl` providing the concrete implementation, which sets the appropriate result (success or failure) on the calling `Activity` and finishes it. - `ExportCredentialsResult` sealed class to represent the outcome of the credential export process (Success or Failure). - `CredentialExchangeCompletionManagerBuilder` and a DSL function `credentialExchangeCompletionManager` for easy construction of the manager. - `LocalCredentialExchangeCompletionManager` for providing the manager via CompositionLocal. - Unit tests for `CredentialExchangeCompletionManagerImpl` to verify its behavior on success and failure scenarios. ## 📸 Screenshots <!-- Required for any UI changes; delete if not applicable. Use fixed width images for better display. --> ## ⏰ 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 2026-05-22 22:53:44 -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#85944