Commit Graph
4183 Commits
Author SHA1 Message Date
anonymousanddasien 5d5cbdd178 fix: Address code review findings and add ViewModel tests
Code review fixes:
- Remove duplicate KeyConnectorUrl branch in InitUserCryptoMethodExtensions
- Fix CollectionManagerTest createCollection calls to include organizationUserId
- Prevent vault sync from overwriting user's in-progress edits in
  CollectionAddEditViewModel (early return if already in Content state)
- Add per-collection canManage permission check before allowing edit
  navigation, based on collection manage flag and org role
- Gitignore .claude/outputs/ to exclude plan documents from commits

New tests:
- CollectionsViewModelTest: 11 tests covering navigation, state updates,
  FAB visibility based on permissions, snackbar relay, and error states
- CollectionAddEditViewModelTest: 20 tests covering create/edit/delete
  flows, name validation, dialog states, snackbar relay, and the sync
  overwrite protection fix

Updated test fixtures:
- SyncResponseProfileUtil: add organizationUserId, limitCollectionCreation,
  limitCollectionDeletion fields
2026-03-25 14:02:03 -04:00
anonymousanddasien 5dcaf6e4a8 fix: Grant creating user manage access and fix permission checks
- Add organizationUserId to SyncResponseJson and Organization domain
  model to identify the current user's org membership ID
- Include creating user with manage access in collection create request,
  matching web client behavior
- Add limitCollectionCreation/limitCollectionDeletion to org model
- Fix FAB visibility: use canManageCollections computed property that
  checks role (Owner/Admin) in addition to permissions flags, matching
  web client logic: !limitCollectionCreation || isAdmin || permissions
2026-03-25 13:08:14 -04:00
Patrick Honkonen d0809a7c07 fix: Include access permissions in collection update request
The PUT endpoint for updating a collection requires groups and users
access permissions in the request body. Previously only the encrypted
name was sent, causing the server to reject the request with "At least
one member or group must have can manage permission."

The update flow now fetches collection details via the new /details
endpoint before sending the PUT request, echoing back existing groups,
users, and externalId. Also fixes collection edit screen passing
organizationName instead of organizationId and resolves compile errors
from new parameters across tests.
2026-03-24 16:44:16 -04:00
anonymousandPatrick Honkonen 27eab5570f fix: Adapt to local SDK API changes for local development
Add vaultUrl parameter to SsoCookieVendorConfig and handle new
KeyConnectorUrl variant in InitUserCryptoMethod when expressions.
These changes are required for compatibility with the latest
sdk-internal build used for local collection encryption testing.
2026-03-24 15:09:33 -04:00
anonymousandPatrick Honkonen f6435a0a1e feat: Replace encryptCollection stub with real SDK call
Remove the UnsupportedOperationException stub and delegate to the
actual SDK collections().encrypt() method. Requires SDK version with
collection encryption support (not yet in published 2.0.0-5451).
2026-03-24 15:09:33 -04:00
anonymousandPatrick Honkonen d3e4dc854b feat: Add collection management (create, edit, delete) to Settings > Vault
Add full CRUD support for managing collections on Android, accessible
via Settings > Vault > Collections. Collections are organization-scoped
vault items available on paid plans.

Changes include:
- Network layer: CollectionsApi, CollectionService, request/response models
- Data layer: CollectionManager with encrypt > API > disk > decrypt flow
- Permission model: expanded SyncResponseJson.Permissions and Organization
  with collection-specific permission fields
- UI: CollectionsScreen (list with org subtitles, permission-gated FAB),
  CollectionAddEditScreen (name field, save, delete with confirmation)
- Navigation: type-safe routes wired through VaultSettings entry point
- VaultDiskSource.deleteCollection and VaultSdkSource.encryptCollection stub

Note: encryptCollection is stubbed pending SDK release (SDK changes are
implemented but not yet published). Create/update will fail at runtime
until the SDK is updated.
2026-03-24 15:09:29 -04:00
David PerezandGitHub b4917ceb95 chore: Implement Folder Repo interface for Bitwarden SDK (#6691) 2026-03-24 17:39:47 +00:00
David PerezandGitHub 2b69753397 PM-29871: bug: Add more accessibility callouts for external links (#6708) 2026-03-23 20:06:16 +00:00
Patrick HonkonenandGitHub c786756f5b [PM-33999] chore: Standardize casing of Premium account status references (#6707) 2026-03-23 15:33:13 +00:00
078b4e6f1b PM-25654: feat: Preview attachment (#6675)
Co-authored-by: amrg101 <amr2018xo@gmail.com>
2026-03-23 14:07:50 +00:00
d2ca13f88b Crowdin Pull (#6705)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2026-03-23 12:39:27 +00:00
Patrick HonkonenandGitHub 2e29ab389d [PM-33515] feat: Render premium upgrade banner in Vault UI (#6698) 2026-03-20 21:27:18 +00:00
David PerezandGitHub 6c7348ebd4 misc: Update BitwardenButtonData for more usability (#6704) 2026-03-20 21:26:53 +00:00
David PerezandGitHub 6cf15fb792 chore: Remove unused how_to_manage_my_vault string (#6702) 2026-03-20 16:27:05 +00:00
Patrick HonkonenandGitHub 988a321944 [PM-33514] feat: Add premium upgrade banner visibility logic (#6696) 2026-03-20 15:58:47 +00:00
aj-rosadoandGitHub 044bfb1bb2 [PM-23560] bug: Added guard to ensure duplicate scan events are not fired (#6687) 2026-03-20 15:24:16 +00:00
David PerezandGitHub eab2720e3e PM-32721: bug: Add sorting to password history (#6700) 2026-03-20 14:30:08 +00:00
Patrick HonkonenandGitHub 4a069e9703 [PM-33513] feat: Add checkout callback deep link handling (#6692) 2026-03-20 14:16:43 +00:00
Patrick HonkonenandGitHub 12c96de168 chore: Reorganize imports in VaultViewModel (#6701) 2026-03-20 14:08:32 +00:00
David PerezandGitHub 4375782b09 PM-33913: bug: Remove org event to avoid duplicate entry (#6699) 2026-03-20 13:57:45 +00:00
David PerezandGitHub e969a42eff PM-33909: bug: Check the column index before querying for 3rd party autofill data (#6697) 2026-03-19 20:47:45 +00:00
David PerezandGitHub 68e2fe4dd7 PM-33907: bug: Handle exceptions thrown when querying the AutofillManager (#6695) 2026-03-19 20:25:00 +00:00
Patrick HonkonenandGitHub 37907cbe0c [PM-33512] feat: Add PremiumStateManager for upgrade banner eligibility (#6690) 2026-03-19 19:32:27 +00:00
Patrick HonkonenandGitHub c1d1de27f0 [PM-33510] feat: Add Play Billing Library dependency and PlayBillingManager (#6680) 2026-03-19 18:12:03 +00:00
David PerezandGitHub be8777cb8e PM-33893: bug: Crash caused by empty credential password (#6693) 2026-03-19 17:12:59 +00:00
Patrick HonkonenandGitHub 2b9e142107 [PM-33509] feat: Add BillingRepository and Hilt billing modules (#6674) 2026-03-18 19:31:50 +00:00
David PerezandGitHub 685493fde0 misc: Rename the VaultDiskSource Flows (#6689) 2026-03-18 18:59:20 +00:00
Patrick HonkonenandGitHub 6d04c04929 [PM-33508] feat: Add AuthenticatedBillingApi and BillingService network layer (#6668) 2026-03-18 16:23:09 +00:00
David PerezandGitHub 04c3147a56 misc: Add an error message to the DownloadAttachmentResult (#6688) 2026-03-18 16:22:54 +00:00
Patrick HonkonenandGitHub 44c22deb3a llm: Add /review-android command and align reviewing-changes skill with agent (#6665) 2026-03-18 06:51:03 +00:00
Patrick HonkonenandGitHub 6824af48e1 llm: Clarify @Suppress("MaxLineLength") usage in testing skill (#6685) 2026-03-18 06:50:00 +00:00
David PerezandGitHub 183255cbff PM-33160: Instantiate SDK client with Repositories class (#6681) 2026-03-17 20:28:14 +00:00
David PerezandGitHub 9d5a82e9ea Update app to use the latest version of Kotlin (#6684) 2026-03-17 20:27:09 +00:00
David PerezandGitHub 7046029a45 Update Androidx dependencies (#6683) 2026-03-17 20:26:50 +00:00
Patrick HonkonenandGitHub 4ed731706c [PM-33365] feat: Add GmsManager to gate CXP features on GMS Core version (#6678) 2026-03-17 20:21:53 +00:00
Patrick HonkonenandGitHub ec3c9001cf [PM-33553] fix: Remove "Why am I seeing this?" link from cookie sync screen (#6676) 2026-03-17 16:15:45 +00:00
David PerezandGitHub 7666fb82b8 misc: Add support for icons in buttons via BitwardenButtonData (#6682) 2026-03-17 16:12:48 +00:00
Álison FernandesandGitHub fcfa647806 [PM-18892] ci: Comment linked issues when a new GitHub Release is published (#6552) 2026-03-17 14:44:56 +00:00
Patrick HonkonenandGitHub e91797f86c Revert "Update SDK to 2.0.0-5676-14521973" (#6679) 2026-03-16 19:19:00 +00:00
André BispoandGitHub ad7dc3fb5d [PM-33356] feat: Sync when push notification policy changed is received (#6664) 2026-03-16 15:37:26 +00:00
bw-ghapp[bot]GitHubbw-ghapp[bot] <178206702+bw-ghapp[bot]@users.noreply.github.com>Patrick Honkonen
43bd83f883 Update SDK to 2.0.0-5676-14521973 (#6615)
Co-authored-by: bw-ghapp[bot] <178206702+bw-ghapp[bot]@users.noreply.github.com>
Co-authored-by: Patrick Honkonen <phonkonen@bitwarden.com>
2026-03-16 15:00:54 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
0b78fd0018 [deps]: Update actions/upload-artifact action to v7 (#6672)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-16 12:24:51 +00:00
aj-rosadoandGitHub 6888e676dc [PM-32663] feat: Update vault migration screens (#6660) 2026-03-16 12:19:16 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
c52d5efb46 [deps]: Lock file maintenance (#6673)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-16 11:58:46 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
4fb379911d [deps]: Update org.sonarqube to v7.2.3.7755 (#6671)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-16 11:57:31 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
8b5793734a [deps]: Update androidx.credentials:credentials to v1.6.0-rc02 (#6670)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-16 11:56:16 +00:00
d17617ee5a Crowdin Pull (#6669)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2026-03-16 11:53:20 +00:00
Patrick HonkonenandGitHub ae5a14e386 [PM-33511] feat: Add creationDate to UserState.Account (#6662) 2026-03-13 20:50:00 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
193ec12ebd [deps]: Lock file maintenance (#6604)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-13 19:37:15 +00:00
David PerezandGitHub 53afde1509 PM-25654: Update premium dialog for attachments (#6663) 2026-03-13 18:08:40 +00:00