Skip to content

Conversation

@SaintPatrck
Copy link
Contributor

🎟️ Tracking

PM-26111

📔 Objective

This commit introduces the "Review Export" screen and its associated navigation logic within the export items flow.

This screen displays a snapshot of the types of credentials being exported, along with an expected count of each type. From here, the user can continue to Import credentials from Bitwarden or Cancel.

Key changes include:

  • Added ReviewExportScreen.kt to display a summary of items to be exported.
  • Added ReviewExportViewModel.kt to manage the state and logic for the review screen.
  • Added ReviewExportHandlers.kt to manage user interactions on the review screen.
  • Added ReviewExportNavigation.kt to define the navigation route and destination for the review screen.
  • Integrated the review export screen into the exportItemsGraph.
  • Added new string resources for the review export screen.
  • Added unit tests for ReviewExportScreen, ReviewExportViewModel.
  • Fixed a typo in LocalCredentialExchangeCompletionManagerProvider.kt.
  • Updated RootNavScreenTest.kt to use ExportItemsGraphRoute.

📸 Screenshots

Coming soon!

⏰ 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

@github-actions
Copy link
Contributor

github-actions bot commented Sep 26, 2025

Logo
Checkmarx One – Scan Summary & Detailsfca36f72-3d98-40d9-9be8-a609d6431085

Great job! No new security vulnerabilities introduced in this pull request

@SaintPatrck SaintPatrck force-pushed the cxf/app/export-overview branch from 1e8dc37 to c34d27b Compare September 26, 2025 19:10
val LocalCredentialExchangeCompletionManager: ProvidableCompositionLocal<CredentialExchangeCompletionManager> =
compositionLocalOf {
error("CompositionLocal LocalPermissionsManager not present")
error("CompositionLocal LocalCredentialExchangeCompletionManager not present")
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Fixed this minor copy/paste typo.

@OmitFromCoverage
@Serializable
data object ExportItemsRoute
data object ExportItemsGraphRoute
Copy link
Collaborator

Choose a reason for hiding this comment

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

👍


@Preview(showBackground = true, name = "Review Export Content")
@Composable
private fun ReviewExportContentPreview_WithData() {
Copy link
Collaborator

Choose a reason for hiding this comment

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

Can we change this function name to match the pattern. ReviewExportContentWithData_preview

),
),
)
val handler = ReviewExportHandlers(
Copy link
Collaborator

Choose a reason for hiding this comment

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

Can we just define these inline?

@codecov
Copy link

codecov bot commented Sep 26, 2025

Codecov Report

❌ Patch coverage is 89.77636% with 32 lines in your changes missing coverage. Please review.
✅ Project coverage is 84.40%. Comparing base (fd555e9) to head (3caf083).
⚠️ Report is 9 commits behind head on main.

Files with missing lines Patch % Lines
.../exportitems/reviewexport/ReviewExportViewModel.kt 84.66% 9 Missing and 16 partials ⚠️
...ure/exportitems/reviewexport/ReviewExportScreen.kt 96.29% 2 Missing and 3 partials ⚠️
...tems/reviewexport/handlers/ReviewExportHandlers.kt 85.71% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #5946      +/-   ##
==========================================
+ Coverage   84.36%   84.40%   +0.04%     
==========================================
  Files         737      719      -18     
  Lines       54827    54764      -63     
  Branches     7487     7528      +41     
==========================================
- Hits        46257    46226      -31     
+ Misses       5954     5897      -57     
- Partials     2616     2641      +25     

☔ 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 cxf/app/export-overview branch 2 times, most recently from 56b6839 to e4a7188 Compare September 29, 2025 13:14
@SaintPatrck SaintPatrck marked this pull request as ready for review September 29, 2025 13:14
@SaintPatrck SaintPatrck requested review from a team and brian-livefront as code owners September 29, 2025 13:14
/**
* Defines events that the [ReviewExportViewModel] can send to the UI.
*/
@Stable
Copy link
Collaborator

Choose a reason for hiding this comment

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

Do we need this annotation?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Nope

This commit introduces the "Review Export" screen and its associated navigation logic within the export items flow.

This screen displays a snapshot of the types of credentials being exported, along with an expected count of each type. From here, the user can continue to Import credentials from Bitwarden or Cancel.

Key changes include:
- Added `ReviewExportScreen.kt` to display a summary of items to be exported.
- Added `ReviewExportViewModel.kt` to manage the state and logic for the review screen.
- Added `ReviewExportHandlers.kt` to manage user interactions on the review screen.
- Added `ReviewExportNavigation.kt` to define the navigation route and destination for the review screen.
- Integrated the review export screen into the `exportItemsGraph`.
- Added new string resources for the review export screen.
- Added unit tests for `ReviewExportScreen`, `ReviewExportViewModel`.
- Fixed a typo in `LocalCredentialExchangeCompletionManagerProvider.kt`.
- Updated `RootNavScreenTest.kt` to use `ExportItemsGraphRoute`.
@SaintPatrck SaintPatrck force-pushed the cxf/app/export-overview branch from a2f333a to 3caf083 Compare September 29, 2025 20:38
@SaintPatrck
Copy link
Contributor Author

Thanks @david-livefront

@SaintPatrck SaintPatrck added this pull request to the merge queue Sep 29, 2025
Merged via the queue into main with commit 81245cf Sep 29, 2025
9 checks passed
@SaintPatrck SaintPatrck deleted the cxf/app/export-overview branch September 29, 2025 21:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants