in android/src/main/kotlin/com/example/confidence_flutter_sdk/ConfidenceFlutterSdkPlugin.kt [38:125]
override fun onMethodCall(call: MethodCall, result: Result) {
when(call.method) {
"flush" -> {
confidence.flush()
}
"setup" -> {
val apiKey = call.arguments as String
confidence = ConfidenceFactory.create(
context,
apiKey,
sdk = SdkMetadata("SDK_ID_FLUTTER_ANDROID_CONFIDENCE", "0.0.1")
)
result.success(null)
}
"fetchAndActivate" -> {
coroutineScope.launch {
confidence.fetchAndActivate()
result.success(null)
}
}
"activateAndFetchAsync" -> {
coroutineScope.launch {
confidence.activate()
confidence.asyncFetch()
result.success(null)
}
}
"isStorageEmpty" -> {
val isEmpty = confidence.isStorageEmpty()
result.success(isEmpty)
}
"getString" -> {
val key = call.argument<String>("key")!!
val defaultValue = call.argument<String>("defaultValue")
val value = confidence.getValue(key, defaultValue)
result.success(value)
}
"getDouble" -> {
val key = call.argument<String>("key")!!
val defaultValue = call.argument<Double>("defaultValue")
val value = confidence.getValue(key, defaultValue)
result.success(value)
}
"getBool" -> {
val key = call.argument<String>("key")!!
val defaultValue = call.argument<Boolean>("defaultValue")
val value = confidence.getValue(key, defaultValue)
result.success(value)
}
"getInt" -> {
val key = call.argument<String>("key")!!
val defaultValue = call.argument<Int>("defaultValue")
val value = confidence.getValue(key, defaultValue)
result.success(value)
}
"getObject" -> {
val key = call.argument<String>("key")!!
val wrappedDefaultValue = call.argument<Map<String, Map<String, Any>>>("defaultValue")!!
val defaultValue: ConfidenceValue.Struct = ConfidenceValue.Struct(wrappedDefaultValue.mapValues { (_, value) -> value.convert() })
val value = confidence.getValue(key, defaultValue)
result.success(Json.encodeToString(NetworkConfidenceValueSerializer, value))
}
"readAllFlags" -> {
val flags = readAllFlags()
val map = flags.flags.associateBy({ it.flag }, { ConfidenceValue.Struct(it.value) })
result.success(Json.encodeToString(NetworkConfidenceValueSerializer, ConfidenceValue.Struct(map)))
}
"putContext" -> {
val key = call.argument<String>("key")!!
val value = call.argument<Map<String, Any>>("value")!!.convert()
confidence.putContext(key, value)
result.success(null)
}
"putAllContext" -> {
val wrappedContext = call.argument<Map<String, Map<String, Any>>>("context")!!
val context: Map<String, ConfidenceValue> = wrappedContext.mapValues { (_, value) -> value.convert() }
confidence.putContext(context)
result.success(null)
}
"track" -> {
val eventName = call.argument<String>("eventName")!!
val wrappedData = call.argument<Map<String, Map<String, Any>>>("data")!!
val data: Map<String, ConfidenceValue> = wrappedData.mapValues { (_, value) -> value.convert() }
confidence.track(eventName, data)
}
else -> result.notImplemented()
}
}