[PR #5611] [MERGED] [PM-18210] Cipher key encryption error handling #5908

Closed
opened 2025-11-27 00:16:45 -06:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/bitwarden/android/pull/5611
Author: @andrebispo5
Created: 7/29/2025
Status: Merged
Merged: 8/27/2025
Merged by: @SaintPatrck

Base: mainHead: pm-18210/handle-cipher-decryption-errors


📝 Commits (10+)

  • 93747e7 [PM-18210] Add new strings for feature
  • c5a5325 [PM-18210] Update Vault and VaultItemListing data extensions to use cipher decryption failures.
  • 8c25747 [PM-18210] Add cipher failures to listings UI, add alert and share option when clicking a failed cipher.
  • a6c3ab2 Merge branch 'main' into pm-18210/handle-cipher-decryption-errors
  • e3b8b64 [PM-18210] Change resource loading to BitwardenString
  • 16e892d [PM-18210] Remove unnecessary code
  • cde8281 [PM-18210] Update resources for plurals
  • 374123f [PM-18210] Fix VaultItemListing decryption errors in folders
  • 57d256a [PM-18210] Add decryption error cell to favorites
  • 608026c [PM-18210] Add decryption error share sheet to vault handlers

📊 Changes

20 files changed (+1247 additions, -84 deletions)

View changed files

📝 app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/VaultRepositoryImpl.kt (+0 -1)
📝 app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/util/VaultSdkCipherExtensions.kt (+54 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingContent.kt (+1 -1)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreen.kt (+22 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingViewModel.kt (+57 -1)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/util/VaultItemListingDataExtensions.kt (+81 -24)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultScreen.kt (+39 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultViewModel.kt (+136 -5)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/handlers/VaultHandlers.kt (+14 -0)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/util/VaultDataExtensions.kt (+120 -36)
📝 app/src/test/kotlin/com/x8bit/bitwarden/data/vault/repository/util/VaultSdkCipherExtensionsTest.kt (+64 -0)
📝 app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreenTest.kt (+92 -2)
📝 app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingViewModelTest.kt (+39 -0)
📝 app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/util/VaultItemListingDataExtensionsTest.kt (+21 -0)
📝 app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/util/VaultItemListingDataUtil.kt (+37 -7)
📝 app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultScreenTest.kt (+227 -0)
📝 app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultViewModelTest.kt (+204 -2)
📝 app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/util/VaultDataExtensionsTest.kt (+27 -5)
📝 ui/src/main/kotlin/com/bitwarden/ui/platform/resource/BitwardenResources.kt (+5 -0)
📝 ui/src/main/res/values/strings.xml (+7 -0)

📄 Description

🎟️ Tracking

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

📔 Objective

After the user navigates to their vault view

If there is a corrupt cipher:

  • replace cipher name with “[error: failed to decrypt]”
  • show dialog alert with share option

If user selects the corrupt cipher

  • reopen the simple dialog alert with share option for the selected cipher

📸 Screenshots

https://github.com/user-attachments/assets/13b3744e-9eb4-46f9-9118-9636ef5bbb0d

https://github.com/user-attachments/assets/e60b2f7b-2440-458f-9d70-5d4562efab04

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

🔄 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/5611 **Author:** [@andrebispo5](https://github.com/andrebispo5) **Created:** 7/29/2025 **Status:** ✅ Merged **Merged:** 8/27/2025 **Merged by:** [@SaintPatrck](https://github.com/SaintPatrck) **Base:** `main` ← **Head:** `pm-18210/handle-cipher-decryption-errors` --- ### 📝 Commits (10+) - [`93747e7`](https://github.com/bitwarden/android/commit/93747e7095ed351d86590874792ca4154bac894e) [PM-18210] Add new strings for feature - [`c5a5325`](https://github.com/bitwarden/android/commit/c5a5325b724171c351aac1962c9ecb6cedb55d79) [PM-18210] Update Vault and VaultItemListing data extensions to use cipher decryption failures. - [`8c25747`](https://github.com/bitwarden/android/commit/8c257476bb0de97e3ff4cbe1791267c3689a5fc0) [PM-18210] Add cipher failures to listings UI, add alert and share option when clicking a failed cipher. - [`a6c3ab2`](https://github.com/bitwarden/android/commit/a6c3ab2e4d41929dc2ac6a811467a955c98e62fd) Merge branch 'main' into pm-18210/handle-cipher-decryption-errors - [`e3b8b64`](https://github.com/bitwarden/android/commit/e3b8b64847eb813f1d54ea7f61b00959fa5ac14f) [PM-18210] Change resource loading to BitwardenString - [`16e892d`](https://github.com/bitwarden/android/commit/16e892d519a53215520dba9414237861a61b88c0) [PM-18210] Remove unnecessary code - [`cde8281`](https://github.com/bitwarden/android/commit/cde82815c2630e52dadcd2f3ee1e5d6f56dcfd50) [PM-18210] Update resources for plurals - [`374123f`](https://github.com/bitwarden/android/commit/374123f278ba8e145ec299e38abf414aa44d41a5) [PM-18210] Fix VaultItemListing decryption errors in folders - [`57d256a`](https://github.com/bitwarden/android/commit/57d256a3989fe1d71218aa12510dc3e4177ee3aa) [PM-18210] Add decryption error cell to favorites - [`608026c`](https://github.com/bitwarden/android/commit/608026c97601ef9988f59abf110ef5abf5c7ea23) [PM-18210] Add decryption error share sheet to vault handlers ### 📊 Changes **20 files changed** (+1247 additions, -84 deletions) <details> <summary>View changed files</summary> 📝 `app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/VaultRepositoryImpl.kt` (+0 -1) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/data/vault/repository/util/VaultSdkCipherExtensions.kt` (+54 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingContent.kt` (+1 -1) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreen.kt` (+22 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingViewModel.kt` (+57 -1) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/util/VaultItemListingDataExtensions.kt` (+81 -24) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultScreen.kt` (+39 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultViewModel.kt` (+136 -5) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/handlers/VaultHandlers.kt` (+14 -0) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/util/VaultDataExtensions.kt` (+120 -36) 📝 `app/src/test/kotlin/com/x8bit/bitwarden/data/vault/repository/util/VaultSdkCipherExtensionsTest.kt` (+64 -0) 📝 `app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreenTest.kt` (+92 -2) 📝 `app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingViewModelTest.kt` (+39 -0) 📝 `app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/util/VaultItemListingDataExtensionsTest.kt` (+21 -0) 📝 `app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/itemlisting/util/VaultItemListingDataUtil.kt` (+37 -7) 📝 `app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultScreenTest.kt` (+227 -0) 📝 `app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/VaultViewModelTest.kt` (+204 -2) 📝 `app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/vault/util/VaultDataExtensionsTest.kt` (+27 -5) 📝 `ui/src/main/kotlin/com/bitwarden/ui/platform/resource/BitwardenResources.kt` (+5 -0) 📝 `ui/src/main/res/values/strings.xml` (+7 -0) </details> ### 📄 Description ## 🎟️ Tracking <!-- Paste the link to the Jira or GitHub issue or otherwise describe / point to where this change is coming from. --> https://bitwarden.atlassian.net/browse/PM-18210 ## 📔 Objective <!-- Describe what the purpose of this PR is, for example what bug you're fixing or new feature you're adding. --> **After the user navigates to their vault view** If there is a corrupt cipher: - replace cipher name with “[error: failed to decrypt]” - show dialog alert with share option If user selects the corrupt cipher - reopen the simple dialog alert with share option for the selected cipher ## 📸 Screenshots <!-- Required for any UI changes; delete if not applicable. Use fixed width images for better display. --> https://github.com/user-attachments/assets/13b3744e-9eb4-46f9-9118-9636ef5bbb0d https://github.com/user-attachments/assets/e60b2f7b-2440-458f-9d70-5d4562efab04 ## ⏰ 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 <!-- Suggested interactions but feel free to use (or not) as you desire! --> - 👍 (`:+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 --- <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 2025-11-27 00:16:46 -06:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/android#5908