[PR #5868] [PM-25663] Introduce CredentialExchangeImporter #6107

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

Original Pull Request: https://github.com/bitwarden/android/pull/5868

State: closed
Merged: Yes


🎟️ Tracking

PM-25663

📔 Objective

This change introduces the CredentialExchangeImporter interface and its default implementation CredentialExchangeImporterImpl. This component is responsible for handling the import of credentials from other credential providers using the AndroidX Credentials Provider Events API.

Key changes:

  • Added CredentialExchangeImporter interface defining the contract for importing credentials.
  • Added CredentialExchangeImporterImpl as the default implementation, utilizing ProviderEventsManager for the import flow.
  • Added ImportCredentialsSelectionResult sealed class to represent the different outcomes of the import selection process (Success, Cancelled, Failure).
  • Added credentialExchangeImporter DSL function and CredentialExchangeImporterBuilder for easy instantiation and configuration of the importer.
  • Added unit tests for CredentialExchangeImporterImpl to cover success, cancellation, and failure scenarios.
  • Added LocalCredentialExchangeImporterProvider to provide access to the CredentialExchangeImporter throughout the app using a CompositionLocal.

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
**Original Pull Request:** https://github.com/bitwarden/android/pull/5868 **State:** closed **Merged:** Yes --- ## 🎟️ Tracking PM-25663 ## 📔 Objective This change introduces the `CredentialExchangeImporter` interface and its default implementation `CredentialExchangeImporterImpl`. This component is responsible for handling the import of credentials from other credential providers using the AndroidX Credentials Provider Events API. Key changes: - Added `CredentialExchangeImporter` interface defining the contract for importing credentials. - Added `CredentialExchangeImporterImpl` as the default implementation, utilizing `ProviderEventsManager` for the import flow. - Added `ImportCredentialsSelectionResult` sealed class to represent the different outcomes of the import selection process (Success, Cancelled, Failure). - Added `credentialExchangeImporter` DSL function and `CredentialExchangeImporterBuilder` for easy instantiation and configuration of the importer. - Added unit tests for `CredentialExchangeImporterImpl` to cover success, cancellation, and failure scenarios. - Added `LocalCredentialExchangeImporterProvider` to provide access to the `CredentialExchangeImporter` throughout the app using a CompositionLocal. ## ⏰ 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
GiteaMirror added the pull-request label 2025-11-27 00:19:50 -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#6107