[PR #6944] [MERGED] [PM-37076] fix: Manage Plan launches web vault subscription URL #93571

Closed
opened 2026-05-27 12:46:23 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/bitwarden/android/pull/6944
Author: @SaintPatrck
Created: 5/19/2026
Status: Merged
Merged: 5/20/2026
Merged by: @SaintPatrck

Base: mainHead: premium-upgrade/pm-37076-manage-plan-web-vault


📝 Commits (2)

  • 6e36506 PM-37076 fix: Manage Plan launches web vault subscription URL
  • 8713bf7 Add dedicated RetryPortalClick for portal error retry

📊 Changes

6 files changed (+223 additions, -46 deletions)

View changed files

📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/premium/plan/PlanScreen.kt (+26 -2)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/premium/plan/PlanViewModel.kt (+23 -1)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/premium/plan/handlers/PlanHandlers.kt (+4 -0)
📝 app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/premium/plan/PlanScreenTest.kt (+86 -4)
📝 app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/premium/plan/PlanViewModelTest.kt (+83 -39)
📝 ui/src/main/res/values/strings.xml (+1 -0)

📄 Description

🎟️ Tracking

PM-37076
PM-37803

📔 Objective

Manage Plan on the Premium screen previously fetched and launched the Stripe customer portal — the same destination Cancel Premium uses — which is not where users go to manage their subscription. Per product, Manage Plan should send users to the web vault's subscription settings on their configured environment.

Manage Plan now emits PlanEvent.LaunchUri(\"{webVaultBaseUrl}/#/settings/subscription/premium\"), composing the URL from EnvironmentRepository (falls back to base when webVault is unset for custom self-hosted environments). Cancel Premium continues to use the Stripe portal, which is the expected flow.

📸 Screenshots

https://github.com/user-attachments/assets/adbbf452-8f5f-4c39-aa20-c043c8e6030e


🔄 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/6944 **Author:** [@SaintPatrck](https://github.com/SaintPatrck) **Created:** 5/19/2026 **Status:** ✅ Merged **Merged:** 5/20/2026 **Merged by:** [@SaintPatrck](https://github.com/SaintPatrck) **Base:** `main` ← **Head:** `premium-upgrade/pm-37076-manage-plan-web-vault` --- ### 📝 Commits (2) - [`6e36506`](https://github.com/bitwarden/android/commit/6e365061f8679d465b0259236a0aca6b4b198279) [PM-37076] fix: Manage Plan launches web vault subscription URL - [`8713bf7`](https://github.com/bitwarden/android/commit/8713bf7545fc5519323f8305f9c02d2c56ce4641) Add dedicated RetryPortalClick for portal error retry ### 📊 Changes **6 files changed** (+223 additions, -46 deletions) <details> <summary>View changed files</summary> 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/premium/plan/PlanScreen.kt` (+26 -2) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/premium/plan/PlanViewModel.kt` (+23 -1) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/premium/plan/handlers/PlanHandlers.kt` (+4 -0) 📝 `app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/premium/plan/PlanScreenTest.kt` (+86 -4) 📝 `app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/premium/plan/PlanViewModelTest.kt` (+83 -39) 📝 `ui/src/main/res/values/strings.xml` (+1 -0) </details> ### 📄 Description ## 🎟️ Tracking [PM-37076](https://bitwarden.atlassian.net/browse/PM-37076) [PM-37803](https://bitwarden.atlassian.net/browse/PM-37803) ## 📔 Objective Manage Plan on the Premium screen previously fetched and launched the Stripe customer portal — the same destination Cancel Premium uses — which is not where users go to manage their subscription. Per product, Manage Plan should send users to the web vault's subscription settings on their configured environment. Manage Plan now emits `PlanEvent.LaunchUri(\"{webVaultBaseUrl}/#/settings/subscription/premium\")`, composing the URL from `EnvironmentRepository` (falls back to `base` when `webVault` is unset for custom self-hosted environments). Cancel Premium continues to use the Stripe portal, which is the expected flow. ## 📸 Screenshots https://github.com/user-attachments/assets/adbbf452-8f5f-4c39-aa20-c043c8e6030e [PM-37076]: https://bitwarden.atlassian.net/browse/PM-37076?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ [PM-37803]: https://bitwarden.atlassian.net/browse/PM-37803?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ --- <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:46:23 -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#93571