3849 Commits

Author SHA1 Message Date
Patrick Honkonen
e059c3a499
Implement initialization and logic for MigrateToMyItemsViewModel
Update the `MigrateToMyItemsViewModel` to replace placeholder data with actual repository logic, state persistence, and dialog management.

The view model now initializes by fetching the active organization details related to the personal ownership policy. It handles the "Continue" action by displaying a loading state (simulated for now) and processing the result to either navigate to the vault or show an error. Additionally, the help link now points to the correct documentation URL.

- Inject `AuthRepository`, `PolicyManager`, and `SavedStateHandle` into `MigrateToMyItemsViewModel`.
- Initialize `MigrateToMyItemsState` by resolving the `organizationId` via `PolicyManager` and retrieving the corresponding organization name from `AuthRepository` user state.
- Implement state persistence using `SavedStateHandle`.
- Refactor `MigrateToMyItemsState` to include a nested `ViewState` and a `DialogState` sealed class (supporting `Loading` and `Error` states).
- Update `handleContinueClicked` to set the dialog state to `Loading` and initiate a coroutine that currently simulates migration delay.
- Add `Internal` action handling to process migration results:
    - On success: Clears the dialog and triggers navigation to the vault.
    - On failure: Updates the dialog state to show an error message.
- Update `handleHelpLinkClicked` to launch the specific "transfer-ownership" help URI.
- Add new string resources `migrating_items_to_x` and `failed_to_migrate_items_to_x` for the new dialog states.
2025-12-09 14:23:26 -05:00
Patrick Honkonen
7fa3f50f51
Rename VaultTakeover feature to MigrateToMyItems
Renames the VaultTakeover screen, ViewModel, and related classes to MigrateToMyItems to better reflect the feature's purpose. This includes:

- Renamed package from vaulttakeover to migratetomyitems
- Updated all class names: VaultTakeoverScreen -> MigrateToMyItemsScreen, VaultTakeoverViewModel -> MigrateToMyItemsViewModel, etc.
- Renamed sealed classes for State, Event, and Action
- Updated all navigation functions and routes
- Renamed drawable resource from ill_organization_takeover to ill_migrate_to_my_items
- Updated all test files to match new naming

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-09 13:35:17 -05:00
Patrick Honkonen
2908fc2527
Update TODOs for VaultTakeoverViewModel
Add placeholder TODO comments to the `VaultTakeoverViewModel` for future implementation work.

This commit clarifies upcoming tasks by:
- Adding a reference to a ticket (PM-28468) for fetching the organization name.
- Noting that the help link URL needs to be updated once it becomes available.
- Performing minor code formatting for better readability.
2025-12-09 13:35:17 -05:00
Patrick Honkonen
341a693555
Update Vault Takeover screen illustration
Replace the generic passkey icon with a specific organization takeover illustration in the Vault Takeover screen.

- Add `ill_organization_takeover.xml` vector drawable.
- Update `VaultTakeoverHeader` in `VaultTakeoverScreen.kt` to use the new illustration.
- Adjust layout modifiers by moving horizontal alignment to the parent Column, adding standard horizontal margins, and setting the content scale.
2025-12-09 13:35:17 -05:00
Patrick Honkonen
9bf3d2bd14
Remove duplicate continue_label string resource
Use existing continue_text resource instead of duplicate continue_label.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-09 13:35:17 -05:00
Patrick Honkonen
2f81483db3
Add VaultTakeover tests
Create comprehensive unit tests for VaultTakeover feature:

VaultTakeoverViewModelTest:
- Test ContinueClicked sends NavigateToVault event
- Test DeclineAndLeaveClicked sends NavigateToLeaveOrganization event
- Test HelpLinkClicked sends LaunchUri event with help URL

VaultTakeoverScreenTest:
- Test title displays with organization name
- Test description text is displayed correctly
- Test Continue button sends ContinueClicked action
- Test Decline and leave button sends DeclineAndLeaveClicked action
- Test Help link sends HelpLinkClicked action
- Test navigation events trigger callbacks

Tests follow established patterns using BitwardenComposeTest and BaseViewModelTest.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-09 13:35:17 -05:00
Patrick Honkonen
67bea18a84
Add VaultTakeover navigation
Create VaultTakeoverNavigation with type-safe routing:

- VaultTakeoverRoute: Serializable data object for type-safe navigation
- navigateToVaultTakeover(): NavController extension for navigation
- vaultTakeoverDestination(): NavGraphBuilder extension to register screen

Uses composableWithSlideTransitions for consistent navigation animations.
Follows established navigation patterns in the codebase.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-09 13:35:17 -05:00
Patrick Honkonen
430baa2ff8
Add VaultTakeoverScreen and ViewModel
Create the VaultTakeoverScreen composable and ViewModel following MVVM + UDF architecture:

- VaultTakeoverViewModel: Handles user actions (Continue, Decline, Help) and emits navigation events
- VaultTakeoverScreen: Full-screen informational UI with organization transfer messaging
- VaultTakeoverState: Holds organization name (stubbed with TODO)
- VaultTakeoverEvent: Navigation events for vault, leave org, and help URI
- VaultTakeoverAction: User action types

Screen UI includes:
- Placeholder illustration (using ic_bw_passkey temporarily)
- Title and description text with org name placeholders
- Continue button (primary action)
- Decline and leave button (secondary action)
- Help link ("Why am I seeing this?")
- Proper spacing and scrollable layout
- Extracted text and action components for code length compliance

Also fixed: Renamed 'continue' string resource to 'continue_label' to avoid Java keyword conflict.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-09 13:35:17 -05:00
Patrick Honkonen
e11f20c466
Add string resources for VaultTakeoverScreen
Add five new string resources required for the vault takeover screen:
- transfer_items_to_org: Title with organization name placeholder
- transfer_items_description: Body text explaining the takeover
- continue: Primary action button label
- decline_and_leave: Secondary action button label
- why_am_i_seeing_this: Help link text

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-09 13:35:17 -05:00
aj-rosado
4a874668f2
[PM-28468] Added service methods to migration to MyItems validation (#6248) 2025-12-09 15:58:23 +00:00
David Perez
cd27fe339d
Move BiometricsEncryptionManager into the AuthRepository (#6249) 2025-12-09 15:32:25 +00:00
David Perez
2eb8ad4221
PM-28355: Clear pin data on hard-logout or security stamp (#6232) 2025-12-08 16:51:18 +00:00
renovate[bot]
28db795790
[deps]: Update actions/checkout action to v6 (#6247)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-08 14:34:31 +00:00
David Perez
8c6782dcb1
Move MissingPropertyException to common location (#6237) 2025-12-05 19:08:39 +00:00
David Perez
127809b8df
Address several small lint warning throughout the app (#6233) 2025-12-05 17:47:52 +00:00
aj-rosado
ca13e615ec
[PM-28442] Added feature flag for migrate myvault to myitems (#6235) 2025-12-05 16:50:30 +00:00
bw-ghapp[bot]
5e3e8a04aa
Crowdin Pull (#6234)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2025-12-05 14:53:29 +00:00
Patrick Honkonen
8077895eb8
Update ZXing library version (#6230) 2025-12-04 19:52:24 +00:00
Patrick Honkonen
33e9313c6c
Update SonarQube plugin version (#6231) 2025-12-04 19:19:54 +00:00
Patrick Honkonen
593bfbf8cf
[PM-28352] Add logging to Credential Manager and Origin Manager flows (#6229) 2025-12-04 18:22:45 +00:00
Patrick Honkonen
4905358adb
[PM-28467] Add revisionDate to policy JSON model (#6228) 2025-12-04 18:22:23 +00:00
renovate[bot]
02733f785b
[deps]: Lock file maintenance (#6197)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-04 18:01:23 +00:00
Patrick Honkonen
8baa4bf041
[PM-29096] Update Fastlane and Gemfile dependencies (#6216) 2025-12-04 16:20:21 +00:00
David Perez
4d20453d0f
PM-25632: Ensure that we use lowercase email addresses when creating a fingerprint (#6227) 2025-12-04 15:34:17 +00:00
David Perez
4b951a1df2
PM-28634: Update Autofill terms to support other languages better (#6226) 2025-12-04 14:55:23 +00:00
André Bispo
9349b235bc
[PM-27290] Remove password unlock method (#6176) 2025-12-04 10:53:40 +00:00
Patrick Honkonen
e9ab5f2def
[PM-29097] Fix privacy statement alignment in landscape mode (#6225) 2025-12-03 22:10:58 +00:00
David Perez
3bef282426
Update Androidx dependencies to the latest versions (#6224) 2025-12-03 21:25:50 +00:00
Patrick Honkonen
e1bb3a4b5d
[PM-27118] Restrict Credential Exchange import based on Personal Ownership policy (#6220) 2025-12-03 20:15:53 +00:00
David Perez
1904c4ffb9
PM-28522: Update the LoginWithDevice ui (#6221) 2025-12-03 19:41:34 +00:00
aj-rosado
26e7178300
[PM-28835] Added validations to prevent duplicate press on buttons (#6209) 2025-12-03 17:46:03 +00:00
David Perez
2c01abda46
[deps]: Update ksp (#6217) 2025-12-02 18:20:51 +00:00
bw-ghapp[bot]
b86cbfcd87
Update SDK to 1.0.0-3958-7f09fd2f (#6213)
Co-authored-by: bw-ghapp[bot] <178206702+bw-ghapp[bot]@users.noreply.github.com>
2025-12-02 14:57:18 +00:00
aj-rosado
3f303d3f39
[BWA-179] Added clarification of functionality on Authenticator's ExportScreen (#6190) 2025-12-02 10:01:00 +00:00
David Perez
ca7a65fc95
PM-28522: Update the Login With Device Screen (#6184) 2025-12-01 16:25:30 +00:00
bw-ghapp[bot]
f02b374e98
Update SDK to 1.0.0-3928-2cca3d46 (#6205)
Co-authored-by: bw-ghapp[bot] <178206702+bw-ghapp[bot]@users.noreply.github.com>
2025-12-01 14:26:56 +00:00
bw-ghapp[bot]
1a90860080
Crowdin Pull (#6206)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2025-12-01 14:16:24 +00:00
Patrick Honkonen
adf83cd315
[PM-28157] Revert "Add string extension to prefix URIs with www" (#6192)
Co-authored-by: Álison Fernandes <vvolkgang@users.noreply.github.com>
2025-12-01 14:12:14 +00:00
Patrick Honkonen
489c0ea8d6
Enhance code review skill documentation with TOCs and missing severity categories (#6186)
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-27 19:31:25 +00:00
bw-ghapp[bot]
9831358a8b
Update SDK to 1.0.0-3908-4b0d1280 (#6201)
Co-authored-by: bw-ghapp[bot] <178206702+bw-ghapp[bot]@users.noreply.github.com>
2025-11-26 23:55:56 +00:00
bw-ghapp[bot]
8bdbccd8de
Update SDK to 1.0.0-3896-f75a58cd (#6198)
Co-authored-by: bw-ghapp[bot] <178206702+bw-ghapp[bot]@users.noreply.github.com>
2025-11-25 00:57:36 +00:00
bw-ghapp[bot]
a75d904317
Update SDK to 1.0.0-3674-c60a5d79 (#6064)
Co-authored-by: bw-ghapp[bot] <178206702+bw-ghapp[bot]@users.noreply.github.com>
Co-authored-by: Patrick Honkonen <phonkonen@bitwarden.com>
Co-authored-by: Carlos Gonçalves <cgoncalves@bitwarden.com>
2025-11-21 22:07:08 +00:00
Patrick Honkonen
a395f28eba
[PM-28086] Add testharness for Credential Manager and Autofill testing (#6159)
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-21 19:56:24 +00:00
bw-ghapp[bot]
53e358d7b3
Crowdin Pull (#6189)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2025-11-21 13:16:39 +00:00
David Perez
663eb3641f
PM-28545: Remove the compatibility mode toggle from the Autofill screen (#6188) 2025-11-21 13:15:40 +00:00
David Perez
ab305b2631
PM-28525: Update the LoginApprovalScreen ui (#6187) 2025-11-20 22:34:36 +00:00
aj-rosado
946b0784e0
[PM-27816] Not clearing the fingerprint on requests that don't return fingerprint on LoginWithDevice (#6185) 2025-11-20 19:57:04 +00:00
Patrick Honkonen
167a46a073
[PM-21391] Remove debug credential provider configuration (#6182)
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-20 19:15:35 +00:00
Patrick Honkonen
7b491d3c3c
[PM-28157] Add string extension to prefix URIs with www (#6183)
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-20 15:32:54 +00:00
David Perez
7918abdccf
PM-28492: Replace Authenticator Toasts with Snackbars (#6180) 2025-11-19 22:04:28 +00:00