Skip to content

Align Android paywall preview mocks with web/dashboard catalog#3633

Draft
JayShortway wants to merge 1 commit into
mainfrom
cursor/align-android-paywall-preview-mocks-e89f
Draft

Align Android paywall preview mocks with web/dashboard catalog#3633
JayShortway wants to merge 1 commit into
mainfrom
cursor/align-android-paywall-preview-mocks-e89f

Conversation

@JayShortway

Copy link
Copy Markdown
Member

Motivation

One of four coordinated PRs (iOS, Android, web SDK, dashboard) to reconcile the products/prices/offers shown on the cross-platform paywall rendering-validation screenshots. Each platform mocks the product data missing from the shared offerings.json/packages.json (which have no prices or offers) from its own hard-coded table, so the screenshots diverged. Android used its own price tiers and an inconsistent mix of free trials / intro prices across packages.

Description

Updates PreviewOfferingParser (the preview-only parser used for @Previews and the Paparazzi validation recorder) to match the web + dashboard preview variable tables, which are identical and are treated as the source of truth (they can't be changed without touching production dashboard code):

  • Canonical prices/periods: weekly $2.99, monthly $9.99, 2-month $17.99, 3-month $24.99, 6-month $39.99, annual $69.99, lifetime $119.99.
  • A uniform single $1.99 / 1-week introductory offer on every subscription (replacing the previous mix of free trials and intro prices), so all platforms show the same offer.
  • "Pro Access" as the store product name, matching the web/dashboard product.store_product_name.

This only changes preview/sample data; no purchasing logic is affected.

Known residual: the relative_discount badge is a hard-coded "19%" string on web/dashboard but computed from prices on the SDKs, so that percentage may still differ.

Testing

I could not run the Paparazzi recorder or detekt in this environment (heavy Gradle/network setup). Please regenerate the Android validation screenshots via recordPaparazziBc8Debug / the record-and-push-paywall-template-screenshots job in CI and confirm.

Note: this also changes Android Studio @Preview sample prices for V2 paywall templates, since the same parser feeds those previews.


  • Add pr:other + pr:RevenueCatUI + feat:Paywalls_V2 labels on review.
Open in Web Open in Cursor 

The validation-screenshot preview parser used Android-specific prices and an
inconsistent set of trial/intro offers, so the rendering-validation screenshots
showed different products/prices/offers than the web and dashboard renders.

Update the preview product table to the canonical web/dashboard prices and periods
(weekly $2.99 … annual $69.99, lifetime $119.99), give every subscription the same
single $1.99 / 1-week introductory offer, and use 'Pro Access' as the store product
name to match the web/dashboard tables. This is preview-only data used by Compose
@Preview and the Paparazzi validation recorder; no purchasing logic changes.

Co-authored-by: joop <joop@revenuecat.com>
@RevenueCat-Danger-Bot

Copy link
Copy Markdown
1 Error
🚫 Label the PR using one of the change type labels. If you are not sure which label to use, choose pr:other.
Label Description
pr:feat A new feature. Use along with pr:breaking to force a major release.
pr:fix A bug fix. Use along with pr:force_minor to force a minor release.
pr:other Other changes. Catch-all for anything that doesn't fit the above categories. Releases that only contain this label will not be released. Use along with pr:force_patch, or pr:force_minor to force a patch or minor release.
pr:RevenueCatUI Use along any other tag to mark a PR that only contains RevenueCatUI changes
pr:next_release Preparing a new release
pr:dependencies Updating a dependency
pr:phc_dependencies Updating purchases-hybrid-common dependency
pr:changelog_ignore The PR will not be included in the changelog. This label doesn't determine the type of bump of the version and must be combined with pr:feat, pr:fix or pr:other.

Generated by 🚫 Danger

@emerge-tools

emerge-tools Bot commented Jun 22, 2026

Copy link
Copy Markdown

📸 Snapshot Test

126 modified, 467 unchanged

Name Added Removed Modified Renamed Unchanged Errored Approval
TestPurchasesUIAndroidCompatibility Paparazzi
com.revenuecat.testpurchasesuiandroidcompatibility.paparazzi
0 0 126 0 132 0 ⏳ Needs approval
TestPurchasesUIAndroidCompatibility
com.revenuecat.testpurchasesuiandroidcompatibility
0 0 0 0 335 0 N/A

🛸 Powered by Emerge Tools

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants