From 0e78f84d33f31608608d42ac643c18f44a567e3e Mon Sep 17 00:00:00 2001 From: Lever Agent Date: Wed, 8 Jul 2026 16:06:46 +0000 Subject: [PATCH 1/2] feat(android): update for 2.7.21 Bumps documented Android SDK version from 2.7.20 to 2.7.21. - content/docs/android/index.mdx: bump SdkLatestVersion to 2.7.21 - content/docs/android/sdk-reference/index.mdx: bump SdkLatestVersion to 2.7.21 - content/docs/android/quickstart/install.mdx: bump Gradle/Kotlin DSL/version-catalog dependency pins to 2.7.21 - content/docs/android/changelog.mdx: add 2.7.21 entry (Enhancements: fontScale/fontSize device attributes, device template memoization; Fixes: paywall backgrounding teardown, experiment ID overwrite), history preserved Upstream: https://github.com/superwall/Superwall-Android/compare/2.7.20...2.7.21 Reviewed upstream diff and CHANGELOG.md for 2.7.21 - all changes are internal implementation details (memoization, defensive message parsing, backgrounding fix) with no new public API or setup changes beyond the version bump. Verification: bun test (65/65 pass). bun run build:cf's vite build step was OOM-killed in this sandbox (3.8GB RAM) - a resource constraint, not a defect; all pre-build content-generation steps completed successfully. --- content/docs/android/changelog.mdx | 11 +++++++++++ content/docs/android/index.mdx | 2 +- content/docs/android/quickstart/install.mdx | 6 +++--- content/docs/android/sdk-reference/index.mdx | 2 +- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/content/docs/android/changelog.mdx b/content/docs/android/changelog.mdx index c116f41..9fbfb9f 100644 --- a/content/docs/android/changelog.mdx +++ b/content/docs/android/changelog.mdx @@ -3,6 +3,17 @@ title: "Changelog" description: "Release notes for the Superwall Android SDK" --- +## 2.7.21 + +## Enhancements + +- Adds `fontScale` and `fontSize` device attributes for the system text size. +- Memoizes the device template used for audience-filter evaluation and paywall templating. The template is now rebuilt only when one of its mutable inputs (identity, entitlements, subscription status, interface style, platform wrapper, etc.) changes, while time-derived fields are recomputed on every read. This removes a full JSON round trip and repeated system lookups from every `register()` call. + +## Fixes +- Fix a bug causing paywall destroying on backgrounding +- Ensures that paywall instances no longer overwrite each other's instance experiment ID + ## 2.7.20 ## Enhancements diff --git a/content/docs/android/index.mdx b/content/docs/android/index.mdx index 7a52a2a..bab694e 100644 --- a/content/docs/android/index.mdx +++ b/content/docs/android/index.mdx @@ -127,4 +127,4 @@ If you have feedback on any of our docs, please leave a rating and message at th If you have any issues with the SDK, please [open an issue on GitHub](https://github.com/superwall/superwall-android/issues). - + diff --git a/content/docs/android/quickstart/install.mdx b/content/docs/android/quickstart/install.mdx index 003142d..8ae6f69 100644 --- a/content/docs/android/quickstart/install.mdx +++ b/content/docs/android/quickstart/install.mdx @@ -105,16 +105,16 @@ can find the [latest release here](https://github.com/superwall/Superwall-Androi ```gradle build.gradle -implementation "com.superwall.sdk:superwall-android:2.7.20" +implementation "com.superwall.sdk:superwall-android:2.7.21" ``` ```kotlin build.gradle.kts -implementation("com.superwall.sdk:superwall-android:2.7.20") +implementation("com.superwall.sdk:superwall-android:2.7.21") ``` ```toml libs.version.toml [libraries] -superwall-android = { group = "com.superwall.sdk", name = "superwall-android", version = "2.7.20" } +superwall-android = { group = "com.superwall.sdk", name = "superwall-android", version = "2.7.21" } // And in your build.gradle.kts dependencies { diff --git a/content/docs/android/sdk-reference/index.mdx b/content/docs/android/sdk-reference/index.mdx index 5f21e63..026ac6d 100644 --- a/content/docs/android/sdk-reference/index.mdx +++ b/content/docs/android/sdk-reference/index.mdx @@ -100,4 +100,4 @@ If you have feedback on any of our docs, please leave a rating and message at th If you have any issues with the SDK, please [open an issue on GitHub](https://github.com/superwall/superwall-android/issues). - + From f53e71b7e2630af7e476b2d1ed48e327a84e3c6e Mon Sep 17 00:00:00 2001 From: Duncan Crawbuck Date: Wed, 8 Jul 2026 11:05:47 -0700 Subject: [PATCH 2/2] feat(android): update for 2.7.21 --- content/docs/android/changelog.mdx | 2 ++ .../dashboard-creating-paywalls/paywall-editor-variables.mdx | 2 ++ content/docs/variable-reference.mdx | 2 ++ 3 files changed, 6 insertions(+) diff --git a/content/docs/android/changelog.mdx b/content/docs/android/changelog.mdx index 9fbfb9f..5fa45c5 100644 --- a/content/docs/android/changelog.mdx +++ b/content/docs/android/changelog.mdx @@ -20,9 +20,11 @@ description: "Release notes for the Superwall Android SDK" - Adds `storeFrontCountryCode` property - Adds `PaywallOptions.loadingColor` to options enabling you to theme the circular progress bar +- Adds `fontScale` and `fontSize` device attributes for the system text size. ## Fixes - Fix a bug causing web redemption entitlements to be ignored in restoration tracking logic for users of purchase controller +- Fix paywall presentation being fully torn down when the app was backgrounded without the paywall being dismissed, while keeping `paywall_close`/`paywall_open` dispatched when the paywall leaves and returns to the screen ## 2.7.19 diff --git a/content/docs/dashboard/dashboard-creating-paywalls/paywall-editor-variables.mdx b/content/docs/dashboard/dashboard-creating-paywalls/paywall-editor-variables.mdx index 8dc86d8..635a717 100644 --- a/content/docs/dashboard/dashboard-creating-paywalls/paywall-editor-variables.mdx +++ b/content/docs/dashboard/dashboard-creating-paywalls/paywall-editor-variables.mdx @@ -160,6 +160,8 @@ syntax appears above every variable, and it be will auto-inserted for you when s | Device Language Code | Text | en | | Device Locale | Text | en_AE | | Device Model | Text | iPhone14 | +| Font Scale | Number | 1.0 | +| Font Size | Number | 16 | | Interface Style | Text | light | | Interface Type | Text | iphone, ipad, mac. Returns "mac" for Mac Catalyst, "ipad" for iPad apps on mac. | | Is Low Power Mode Enabled | Number | 0 | diff --git a/content/docs/variable-reference.mdx b/content/docs/variable-reference.mdx index 0248712..686ae32 100644 --- a/content/docs/variable-reference.mdx +++ b/content/docs/variable-reference.mdx @@ -129,6 +129,8 @@ timezoneOffset | number | -18000, 3600 radioType | string | Cellular, Wifi, No Internet | The radio type of the device | 3.0.0 interfaceType | string | ipad, iphone, mac, carplay, tv, unspecified | The type of interface of the device, preferred over `deviceModel`. Note that iPhone screen size emulated in iPad will be iphone. Built for iPad on Mac will be ipad. | 3.2.0 interfaceStyle | string | Unspecified, Unknown, Light, Dark | The interface style of the device | 3.0.0 +fontSize | number | 16, 20 | The system text size in pixels, derived from the device font scale | Android 2.7.21 +fontScale | number | 1.0, 1.25 | The device font scale used for system text sizing | Android 2.7.21 isLowPowerModeEnabled | string | true, false | Whether or not low power mode is enabled | 3.0.0 bundleId | string | com.superwall.test | The bundle ID of the app | 3.0.0 appInstallDate | string | 2021-07-01T00:00:00.000Z | The date the app was installed, ISO-8601 format | 3.0.0