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/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/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/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) } 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