[PM-35455] feat: Wire premium subscription data into Plan screen#6819
Draft
SaintPatrck wants to merge 4 commits intopremium-upgrade/PM-35454-subscription-backendfrom
Draft
Conversation
Contributor
|
Great job! No new security vulnerabilities introduced in this pull request |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## premium-upgrade/PM-35454-subscription-backend #6819 +/- ##
=================================================================================
- Coverage 85.46% 85.04% -0.43%
=================================================================================
Files 834 834
Lines 61582 62036 +454
Branches 8597 8636 +39
=================================================================================
+ Hits 52632 52757 +125
- Misses 5985 6300 +315
- Partials 2965 2979 +14
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
c3887d5 to
915e983
Compare
cbf4111 to
0cb83ba
Compare
915e983 to
5230d82
Compare
Fixed height 24dp, 12dp corner radius, and 4dp vertical inner padding match the Status Badges component's published dimensions.
Renders a premium user's actual billed rate, storage cost, discount, estimated tax, and next-charge summary in the Plan screen, along with the subscription status badge and the existing Manage plan / Cancel Premium actions. Line items default to a "--" placeholder while the subscription fetch is loading and for any field that resolves to null or 0.00.
Renders the paused status as a warning badge with a generic resume message and swaps the Plan screen's currency formatting helpers off Double now that SubscriptionInfo is BigDecimal-backed.
5230d82 to
06622de
Compare
SaintPatrck
commented
Apr 23, 2026
| <string name="subscription_canceled_description">Your subscription was canceled on %1$s. Resubscribe to continue using premium features.</string> | ||
| <string name="subscription_overdue_description">We couldn’t process your payment. Update your payment before your subscription ends on %1$s.</string> | ||
| <string name="subscription_past_due_description">You have a grace period of %1$d days from your subscription expiration date. Please resolve the past due amount by %2$s.</string> | ||
| <string name="subscription_paused_description">Your subscription is paused. Resume it to continue using premium features.</string> |
Contributor
Author
There was a problem hiding this comment.
@RishikaSG-28 is this ok for the "Paused" status message?
There was a problem hiding this comment.
@SaintPatrck For the paused state, here's the copy:
Badge: "Paused" (orange/warning)
Message: "Your subscription is paused. Resume to continue using premium features."
Backfill the Compose UI tests for the premium subscription card, status badge variants, line items, action buttons, and portal/subscription dialog states that Codecov flagged as uncovered.
0a18f8a to
049e150
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

🎟️ 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 or0.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