[PR #6651] [MERGED] [PM-33561] debt: Wire CipherManager and cipher ViewModel error handlers #93330

Closed
opened 2026-05-27 12:15:35 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/bitwarden/android/pull/6651
Author: @SaintPatrck
Created: 3/12/2026
Status: Merged
Merged: 3/13/2026
Merged by: @SaintPatrck

Base: mainHead: fix/PM-33394-cipher-error-handlers


📝 Commits (3)

  • 8cd25ef [PM-33394] tech: Wire CipherManager and cipher ViewModel error handlers
  • b7d8237 Default errorMessage to error.userFriendlyMessage in result types
  • ff0a5e5 Remove default value from error parameter in result types

📊 Changes

25 files changed (+1019 additions, -35 deletions)

View changed files

📝 app/src/main/kotlin/com/x8bit/bitwarden/data/vault/datasource/sdk/model/Fido2CredentialStoreImpl.kt (+4 -1)
📝 app/src/main/kotlin/com/x8bit/bitwarden/data/vault/manager/CipherManagerImpl.kt (+10 -11)
📝 app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/model/ArchiveCipherResult.kt (+3 -1)
📝 app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/model/CreateCipherResult.kt (+6 -1)
📝 app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/model/DeleteAttachmentResult.kt (+3 -1)
📝 app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/model/DeleteCipherResult.kt (+3 -1)
📝 app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/model/RestoreCipherResult.kt (+3 -1)
📝 app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/model/ShareCipherResult.kt (+3 -1)
📝 app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/model/UnarchiveCipherResult.kt (+3 -1)
📝 app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/model/UpdateCipherResult.kt (+6 -1)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/SearchViewModel.kt (+4 -2)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditViewModel.kt (+6 -3)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/attachments/AttachmentsViewModel.kt (+4 -1)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemViewModel.kt (+8 -4)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingViewModel.kt (+4 -2)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/movetoorganization/VaultMoveToOrganizationViewModel.kt (+4 -1)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultViewModel.kt (+4 -2)
📝 app/src/test/kotlin/com/x8bit/bitwarden/data/vault/manager/CipherManagerTest.kt (+109 -0)
📝 app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/SearchViewModelTest.kt (+80 -0)
📝 app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditViewModelTest.kt (+253 -0)

...and 5 more files

📄 Description

🎟️ Tracking

https://bitwarden.atlassian.net/browse/PM-33561

📔 Objective

Wire userFriendlyMessage through CipherManager fold(onFailure) blocks and update all cipher-related ViewModel error handlers to prefer errorMessage over generic defaults.

This is part of the PM-33394 series to surface CookieRedirectException user-friendly messages through result types to ViewModels. The foundation (userFriendlyMessage extension and errorMessage on result types) was merged in #6642.

Changes:

  • Wire userFriendlyMessage in CipherManager for delete, restore, share, archive, unarchive, and attachment operations
  • Update VaultItemViewModel, VaultAddEditViewModel, AttachmentsViewModel, VaultMoveToOrganizationViewModel, SearchViewModel, VaultItemListingViewModel, and VaultViewModel error handlers
  • Add CipherManager tests for CookieRedirectException error message propagation
  • Add ViewModel tests for non-null errorMessage display

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/bitwarden/android/pull/6651 **Author:** [@SaintPatrck](https://github.com/SaintPatrck) **Created:** 3/12/2026 **Status:** ✅ Merged **Merged:** 3/13/2026 **Merged by:** [@SaintPatrck](https://github.com/SaintPatrck) **Base:** `main` ← **Head:** `fix/PM-33394-cipher-error-handlers` --- ### 📝 Commits (3) - [`8cd25ef`](https://github.com/bitwarden/android/commit/8cd25ef820e0a1dd7fba4fb9e399f095a7545a3a) [PM-33394] tech: Wire CipherManager and cipher ViewModel error handlers - [`b7d8237`](https://github.com/bitwarden/android/commit/b7d8237dde42f580e65f0c2496cd1516c6b90f92) Default errorMessage to error.userFriendlyMessage in result types - [`ff0a5e5`](https://github.com/bitwarden/android/commit/ff0a5e531d6e6032f98c1ddb73b1bf5ca935375c) Remove default value from error parameter in result types ### 📊 Changes **25 files changed** (+1019 additions, -35 deletions) <details> <summary>View changed files</summary> 📝 `app/src/main/kotlin/com/x8bit/bitwarden/data/vault/datasource/sdk/model/Fido2CredentialStoreImpl.kt` (+4 -1) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/data/vault/manager/CipherManagerImpl.kt` (+10 -11) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/model/ArchiveCipherResult.kt` (+3 -1) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/model/CreateCipherResult.kt` (+6 -1) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/model/DeleteAttachmentResult.kt` (+3 -1) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/model/DeleteCipherResult.kt` (+3 -1) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/model/RestoreCipherResult.kt` (+3 -1) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/model/ShareCipherResult.kt` (+3 -1) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/model/UnarchiveCipherResult.kt` (+3 -1) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/model/UpdateCipherResult.kt` (+6 -1) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/SearchViewModel.kt` (+4 -2) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditViewModel.kt` (+6 -3) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/attachments/AttachmentsViewModel.kt` (+4 -1) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemViewModel.kt` (+8 -4) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingViewModel.kt` (+4 -2) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/movetoorganization/VaultMoveToOrganizationViewModel.kt` (+4 -1) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultViewModel.kt` (+4 -2) 📝 `app/src/test/kotlin/com/x8bit/bitwarden/data/vault/manager/CipherManagerTest.kt` (+109 -0) 📝 `app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/search/SearchViewModelTest.kt` (+80 -0) 📝 `app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditViewModelTest.kt` (+253 -0) _...and 5 more files_ </details> ### 📄 Description ## 🎟️ Tracking https://bitwarden.atlassian.net/browse/PM-33561 ## 📔 Objective Wire `userFriendlyMessage` through CipherManager `fold(onFailure)` blocks and update all cipher-related ViewModel error handlers to prefer `errorMessage` over generic defaults. This is part of the PM-33394 series to surface `CookieRedirectException` user-friendly messages through result types to ViewModels. The foundation (`userFriendlyMessage` extension and `errorMessage` on result types) was merged in #6642. **Changes:** - Wire `userFriendlyMessage` in CipherManager for delete, restore, share, archive, unarchive, and attachment operations - Update VaultItemViewModel, VaultAddEditViewModel, AttachmentsViewModel, VaultMoveToOrganizationViewModel, SearchViewModel, VaultItemListingViewModel, and VaultViewModel error handlers - Add CipherManager tests for CookieRedirectException error message propagation - Add ViewModel tests for non-null errorMessage display --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-05-27 12:15:35 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/android#93330