Fixed server side verification

DreamingCodes committed Aug 6, 2024 at 01:14 UTC a699d57d1baa87258266fde093615a1bfccc320d
3 files changed +20 -7
android/src/main/java/AdmobPlugin.kt
+7 -1
@@ -38,11 +38,17 @@ class InvokeArgs {
38 val tagForChildDirectedTreatment: Boolean? = null
39 val tagForUnderAgeOfConsent: Boolean? = null
40 val testDeviceIds: List<String?>? = null
41 - val serverSideVerification: JSObject? = null
41 + val serverSideVerification: ServerSideVerification? = null
42 val customData: String? = null
43 val userId: String? = null
44 }
45
46 +@InvokeArg
47 +class ServerSideVerification {
48 + var userId: String? = null
49 + var customData: String? = null
50 +}
51 +
52 @TauriPlugin
53 class AdmobPlugin(var activity: Activity) : Plugin(activity) {
54 private lateinit var consentInformation: ConsentInformation
android/src/main/java/ExecuteContext.kt
+4
@@ -61,6 +61,10 @@ class ExecuteContext internal constructor(private val call: Invoke) : Context {
61 }
62 }
63
64 + override fun getInvokeArgs(): InvokeArgs {
65 + return getData()
66 + }
67 +
68 override fun has(name: String): Boolean {
69 println("has: $name, ${getProperty(getData(), name)}")
70 return getProperty(getData(), name) != null
android/src/main/java/core/Context.kt
+9 -6
@@ -7,6 +7,7 @@ import com.google.android.gms.ads.LoadAdError
7 import com.google.android.gms.ads.MobileAds
8 import com.google.android.gms.ads.RequestConfiguration
9 import com.google.android.gms.ads.rewarded.ServerSideVerificationOptions
10 +import com.plugin.admob.InvokeArgs
11 import org.json.JSONObject
12 import java.util.Objects
13
@@ -19,6 +20,8 @@ interface Context {
20 return optDouble(name) ?: return defaultValue
21 }
22
23 + fun getInvokeArgs(): InvokeArgs
24 +
25 fun optFloat(name: String): Float? {
26 val v = optDouble(name) ?: return null
27 return v.toFloat()
@@ -113,14 +116,14 @@ interface Context {
116 }
117
118 fun optServerSideVerificationOptions(): ServerSideVerificationOptions? {
116 - val param = "serverSideVerification"
117 - val serverSideVerification = optObject(param) ?: return null
119 + val param = this.getInvokeArgs();
120 + val serverSideVerification = param.serverSideVerification ?: return null
121 val builder = ServerSideVerificationOptions.Builder()
119 - if (serverSideVerification.has("customData")) {
120 - builder.setCustomData(serverSideVerification.optString("customData"))
122 + if (serverSideVerification.customData != null) {
123 + builder.setCustomData(serverSideVerification.customData!!)
124 }
122 - if (serverSideVerification.has("userId")) {
123 - builder.setUserId(serverSideVerification.optString("userId"))
125 + if (serverSideVerification.userId != null) {
126 + builder.setUserId(serverSideVerification.userId!!)
127 }
128 return builder.build()
129 }