Commit Graph

4183 Commits

Author SHA1 Message Date
anonymous
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
anonymous
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
anonymous
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
anonymous
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
anonymous
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 Perez
b4917ceb95 chore: Implement Folder Repo interface for Bitwarden SDK (#6691) 2026-03-24 17:39:47 +00:00
David Perez
2b69753397 PM-29871: bug: Add more accessibility callouts for external links (#6708) 2026-03-23 20:06:16 +00:00
Patrick Honkonen
c786756f5b [PM-33999] chore: Standardize casing of Premium account status references (#6707) 2026-03-23 15:33:13 +00:00
David Perez
078b4e6f1b PM-25654: feat: Preview attachment (#6675)
Co-authored-by: amrg101 <amr2018xo@gmail.com>
2026-03-23 14:07:50 +00:00
bw-ghapp[bot]
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 Honkonen
2e29ab389d [PM-33515] feat: Render premium upgrade banner in Vault UI (#6698) 2026-03-20 21:27:18 +00:00
David Perez
6c7348ebd4 misc: Update BitwardenButtonData for more usability (#6704) 2026-03-20 21:26:53 +00:00
David Perez
6cf15fb792 chore: Remove unused how_to_manage_my_vault string (#6702) 2026-03-20 16:27:05 +00:00
Patrick Honkonen
988a321944 [PM-33514] feat: Add premium upgrade banner visibility logic (#6696) 2026-03-20 15:58:47 +00:00
aj-rosado
044bfb1bb2 [PM-23560] bug: Added guard to ensure duplicate scan events are not fired (#6687) 2026-03-20 15:24:16 +00:00
David Perez
eab2720e3e PM-32721: bug: Add sorting to password history (#6700) 2026-03-20 14:30:08 +00:00
Patrick Honkonen
4a069e9703 [PM-33513] feat: Add checkout callback deep link handling (#6692) 2026-03-20 14:16:43 +00:00
Patrick Honkonen
12c96de168 chore: Reorganize imports in VaultViewModel (#6701) 2026-03-20 14:08:32 +00:00
David Perez
4375782b09 PM-33913: bug: Remove org event to avoid duplicate entry (#6699) 2026-03-20 13:57:45 +00:00
David Perez
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 Perez
68e2fe4dd7 PM-33907: bug: Handle exceptions thrown when querying the AutofillManager (#6695) 2026-03-19 20:25:00 +00:00
Patrick Honkonen
37907cbe0c [PM-33512] feat: Add PremiumStateManager for upgrade banner eligibility (#6690) 2026-03-19 19:32:27 +00:00
Patrick Honkonen
c1d1de27f0 [PM-33510] feat: Add Play Billing Library dependency and PlayBillingManager (#6680) 2026-03-19 18:12:03 +00:00
David Perez
be8777cb8e PM-33893: bug: Crash caused by empty credential password (#6693) 2026-03-19 17:12:59 +00:00
Patrick Honkonen
2b9e142107 [PM-33509] feat: Add BillingRepository and Hilt billing modules (#6674) 2026-03-18 19:31:50 +00:00
David Perez
685493fde0 misc: Rename the VaultDiskSource Flows (#6689) 2026-03-18 18:59:20 +00:00
Patrick Honkonen
6d04c04929 [PM-33508] feat: Add AuthenticatedBillingApi and BillingService network layer (#6668) 2026-03-18 16:23:09 +00:00
David Perez
04c3147a56 misc: Add an error message to the DownloadAttachmentResult (#6688) 2026-03-18 16:22:54 +00:00
Patrick Honkonen
44c22deb3a llm: Add /review-android command and align reviewing-changes skill with agent (#6665) 2026-03-18 06:51:03 +00:00
Patrick Honkonen
6824af48e1 llm: Clarify @Suppress("MaxLineLength") usage in testing skill (#6685) 2026-03-18 06:50:00 +00:00
David Perez
183255cbff PM-33160: Instantiate SDK client with Repositories class (#6681) 2026-03-17 20:28:14 +00:00
David Perez
9d5a82e9ea Update app to use the latest version of Kotlin (#6684) 2026-03-17 20:27:09 +00:00
David Perez
7046029a45 Update Androidx dependencies (#6683) 2026-03-17 20:26:50 +00:00
Patrick Honkonen
4ed731706c [PM-33365] feat: Add GmsManager to gate CXP features on GMS Core version (#6678) 2026-03-17 20:21:53 +00:00
Patrick Honkonen
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 Perez
7666fb82b8 misc: Add support for icons in buttons via BitwardenButtonData (#6682) 2026-03-17 16:12:48 +00:00
Álison Fernandes
fcfa647806 [PM-18892] ci: Comment linked issues when a new GitHub Release is published (#6552) 2026-03-17 14:44:56 +00:00
Patrick Honkonen
e91797f86c Revert "Update SDK to 2.0.0-5676-14521973" (#6679) 2026-03-16 19:19:00 +00:00
André Bispo
ad7dc3fb5d [PM-33356] feat: Sync when push notification policy changed is received (#6664) 2026-03-16 15:37:26 +00:00
bw-ghapp[bot]
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]
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-rosado
6888e676dc [PM-32663] feat: Update vault migration screens (#6660) 2026-03-16 12:19:16 +00:00
renovate[bot]
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]
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]
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
bw-ghapp[bot]
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 Honkonen
ae5a14e386 [PM-33511] feat: Add creationDate to UserState.Account (#6662) 2026-03-13 20:50:00 +00:00
renovate[bot]
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 Perez
53afde1509 PM-25654: Update premium dialog for attachments (#6663) 2026-03-13 18:08:40 +00:00