[PR #6819] [PM-35455] feat: Wire premium subscription data into Plan screen #43984

Open
opened 2026-04-23 22:39:28 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/bitwarden/android/pull/6819
Author: @SaintPatrck
Created: 4/21/2026
Status: 🔄 Open

Base: premium-upgrade/PM-35454-subscription-backendHead: premium-upgrade/PM-35455-plan-premium-wiring


📝 Commits (4)

  • 0a18f8a Conform BitwardenStatusBadge layout to Figma spec
  • 0ce7164 [PM-35455] feat: Wire premium subscription data into Plan screen
  • 06622de Handle PAUSED status and BigDecimal currency in PlanScreen
  • f383be5 Add PlanScreen premium flow test coverage

📊 Changes

7 files changed (+1558 additions, -82 deletions)

View changed files

📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/premium/plan/PlanScreen.kt (+319 -16)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/premium/plan/PlanViewModel.kt (+374 -56)
📝 app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/premium/plan/handlers/PlanHandlers.kt (+23 -0)
📝 app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/premium/plan/PlanScreenTest.kt (+506 -0)
📝 app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/premium/plan/PlanViewModelTest.kt (+304 -8)
📝 ui/src/main/kotlin/com/bitwarden/ui/platform/components/badge/BitwardenStatusBadge.kt (+4 -2)
📝 ui/src/main/res/values/strings.xml (+28 -0)

📄 Description

🎟️ Tracking

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

📔 Objective

Wires premium subscription data into the Plan screen so premium users see their actual billed rate, storage cost, discount, estimated tax, and next-charge summary — plus a status badge reflecting their current subscription state.

Stacks on PM-35454. Line items default to a "--" placeholder while the subscription fetch is loading and for any field that resolves to null or 0.00 (e.g. no additional storage, no discount, no tax). Currency is hardcoded to USD for now.

The existing Manage plan / Cancel Premium flows (via the Stripe customer portal) are surfaced here; the cancel button is hidden when status is already CANCELED.

📸 Screenshots


🔄 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/6819 **Author:** [@SaintPatrck](https://github.com/SaintPatrck) **Created:** 4/21/2026 **Status:** 🔄 Open **Base:** `premium-upgrade/PM-35454-subscription-backend` ← **Head:** `premium-upgrade/PM-35455-plan-premium-wiring` --- ### 📝 Commits (4) - [`0a18f8a`](https://github.com/bitwarden/android/commit/0a18f8acb2613e2c8e2ac9016575d52f7d46701b) Conform BitwardenStatusBadge layout to Figma spec - [`0ce7164`](https://github.com/bitwarden/android/commit/0ce7164b329a7dad21205fdfa57bd76c21d5eccf) [PM-35455] feat: Wire premium subscription data into Plan screen - [`06622de`](https://github.com/bitwarden/android/commit/06622de143c674c7a2b86a926a1c648054d814c1) Handle PAUSED status and BigDecimal currency in PlanScreen - [`f383be5`](https://github.com/bitwarden/android/commit/f383be5274578f003d50401aaf248f7d9a37cf98) Add PlanScreen premium flow test coverage ### 📊 Changes **7 files changed** (+1558 additions, -82 deletions) <details> <summary>View changed files</summary> 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/premium/plan/PlanScreen.kt` (+319 -16) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/premium/plan/PlanViewModel.kt` (+374 -56) 📝 `app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/premium/plan/handlers/PlanHandlers.kt` (+23 -0) 📝 `app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/premium/plan/PlanScreenTest.kt` (+506 -0) 📝 `app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/premium/plan/PlanViewModelTest.kt` (+304 -8) 📝 `ui/src/main/kotlin/com/bitwarden/ui/platform/components/badge/BitwardenStatusBadge.kt` (+4 -2) 📝 `ui/src/main/res/values/strings.xml` (+28 -0) </details> ### 📄 Description ## 🎟️ Tracking https://bitwarden.atlassian.net/browse/PM-35455 ## 📔 Objective Wires premium subscription data into the Plan screen so premium users see their actual billed rate, storage cost, discount, estimated tax, and next-charge summary — plus a status badge reflecting their current subscription state. Stacks on [PM-35454]. Line items default to a `"--"` placeholder while the subscription fetch is loading and for any field that resolves to null or `0.00` (e.g. no additional storage, no discount, no tax). Currency is hardcoded to USD for now. The existing Manage plan / Cancel Premium flows (via the Stripe customer portal) are surfaced here; the cancel button is hidden when status is already CANCELED. [PM-35454]: https://bitwarden.atlassian.net/browse/PM-35454 ## 📸 Screenshots <img width="365" src="https://github.com/user-attachments/assets/be2bb846-7f28-41f3-989e-ee970b94bcc2" /> --- <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-04-23 22:39:28 -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#43984