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