From 01bc7b466842644c9f0845e9320d19b2ed3546f4 Mon Sep 17 00:00:00 2001 From: Ian Rumac Date: Tue, 13 Jan 2026 13:47:32 +0100 Subject: [PATCH 1/2] Fix issues with redeeming + add microphone permission type --- CHANGELOG.md | 8 ++++++++ .../com/superwall/sdk/models/internal/WebRedemption.kt | 8 ++++++-- .../java/com/superwall/sdk/permissions/PermissionType.kt | 2 ++ version.env | 2 +- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 35f06598..5f3ace85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,14 @@ The changelog for `Superwall`. Also see the [releases](https://github.com/superwall/Superwall-Android/releases) on GitHub. +## 2.6.8 + +### Enhancements +- Adds microphone permission + +### Fixes +- Fixes error when redeeming external purchases + ## 2.6.7 ### Enhancements diff --git a/superwall/src/main/java/com/superwall/sdk/models/internal/WebRedemption.kt b/superwall/src/main/java/com/superwall/sdk/models/internal/WebRedemption.kt index 0b9f6a69..5b921dec 100644 --- a/superwall/src/main/java/com/superwall/sdk/models/internal/WebRedemption.kt +++ b/superwall/src/main/java/com/superwall/sdk/models/internal/WebRedemption.kt @@ -287,7 +287,11 @@ object DirectSuccessSerializer : KSerializer { val jsonDecoder = decoder as? JsonDecoder ?: throw SerializationException("Expected JSON decoder") - + val json = + Json { + encodeDefaults = true + ignoreUnknownKeys = true + } // Get the input JSON object directly val jsonObject = jsonDecoder.decodeJsonElement().jsonObject @@ -303,7 +307,7 @@ object DirectSuccessSerializer : KSerializer { // Then parse it with the RedemptionInfo serializer val redemptionInfo = - Json.decodeFromJsonElement( + json.decodeFromJsonElement( RedemptionInfo.serializer(), redemptionInfoJson, ) diff --git a/superwall/src/main/java/com/superwall/sdk/permissions/PermissionType.kt b/superwall/src/main/java/com/superwall/sdk/permissions/PermissionType.kt index 76c3a32f..c83b3b10 100644 --- a/superwall/src/main/java/com/superwall/sdk/permissions/PermissionType.kt +++ b/superwall/src/main/java/com/superwall/sdk/permissions/PermissionType.kt @@ -17,6 +17,7 @@ enum class PermissionType( CONTACTS("contacts"), READ_VIDEO("read_video"), CAMERA("camera"), + MICROPHONE("microphone"), ; /** @@ -52,6 +53,7 @@ enum class PermissionType( Manifest.permission.READ_EXTERNAL_STORAGE } CAMERA -> Manifest.permission.CAMERA + MICROPHONE -> Manifest.permission.RECORD_AUDIO } companion object { diff --git a/version.env b/version.env index dc137465..aaff5611 100644 --- a/version.env +++ b/version.env @@ -1 +1 @@ -SUPERWALL_VERSION=2.6.7 +SUPERWALL_VERSION=2.6.8 From 9430f45655a859bc0289d5d837623da79aad1ff4 Mon Sep 17 00:00:00 2001 From: Ian Rumac Date: Tue, 13 Jan 2026 15:19:27 +0100 Subject: [PATCH 2/2] Update manifest, add microphone case handle --- app/src/main/AndroidManifest.xml | 1 + .../java/com/superwall/sdk/permissions/UserPermissionsImpl.kt | 2 ++ 2 files changed, 3 insertions(+) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index eb4c16a2..c06b25b7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,7 @@ + diff --git a/superwall/src/main/java/com/superwall/sdk/permissions/UserPermissionsImpl.kt b/superwall/src/main/java/com/superwall/sdk/permissions/UserPermissionsImpl.kt index f4bc19ad..11c01b62 100644 --- a/superwall/src/main/java/com/superwall/sdk/permissions/UserPermissionsImpl.kt +++ b/superwall/src/main/java/com/superwall/sdk/permissions/UserPermissionsImpl.kt @@ -27,6 +27,7 @@ internal class UserPermissionsImpl( PermissionType.CONTACTS, PermissionType.READ_VIDEO, PermissionType.CAMERA, + PermissionType.MICROPHONE, -> checkRuntimePermission(permission) PermissionType.BACKGROUND_LOCATION -> checkBackgroundLocationPermission() } @@ -103,6 +104,7 @@ internal class UserPermissionsImpl( PermissionType.CONTACTS, PermissionType.READ_VIDEO, PermissionType.CAMERA, + PermissionType.MICROPHONE, -> requestStandardPermission(activity, permission) }