Skip to content

Commit be7a4ab

Browse files
updated version to 4.5.0
1 parent a7f9fd4 commit be7a4ab

7 files changed

Lines changed: 195 additions & 131 deletions

File tree

android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,6 @@ android {
4949

5050
dependencies {
5151
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
52-
implementation ('com.metamap:android-sdk:3.42.6') {
52+
implementation ('com.metamap:android-sdk:3.42.8') {
5353
exclude group: "com.airbnb.android", module: "lottie-compose"}
5454
}

android/src/main/kotlin/com/getmati/metamap_plugin_flutter/MatiPluginFlutterPlugin.kt

Lines changed: 78 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -16,89 +16,97 @@ import io.flutter.plugin.common.MethodChannel.MethodCallHandler
1616
import io.flutter.plugin.common.MethodChannel.Result
1717

1818
class MatiPluginFlutterPlugin : FlutterPlugin, MethodCallHandler, ActivityAware {
19-
private lateinit var channel: MethodChannel
19+
private lateinit var channel: MethodChannel
2020

21-
private var activity: Activity? = null
21+
private var activity: Activity? = null
2222

23-
override fun onAttachedToEngine(@NonNull flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) {
24-
channel = MethodChannel(flutterPluginBinding.binaryMessenger, "mati_flutter")
25-
channel.setMethodCallHandler(this)
26-
}
23+
override fun onAttachedToEngine(@NonNull flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) {
24+
channel = MethodChannel(flutterPluginBinding.binaryMessenger, "mati_flutter")
25+
channel.setMethodCallHandler(this)
26+
}
2727

28-
override fun onAttachedToActivity(binding: ActivityPluginBinding) {
29-
binding.addActivityResultListener { requestCode, resultCode, data ->
30-
if (requestCode == MetamapSdk.DEFAULT_REQUEST_CODE) {
31-
val intent = data
32-
if (resultCode == Activity.RESULT_OK && intent != null) {
33-
val result =
34-
intent.getStringExtra("ARG_VERIFICATION_ID") + " " + intent.getStringExtra("ARG_IDENTITY_ID")
35-
channel.invokeMethod("success", result)
36-
} else {
37-
channel.invokeMethod("cancelled", null)
28+
override fun onAttachedToActivity(binding: ActivityPluginBinding) {
29+
binding.addActivityResultListener { requestCode, resultCode, data ->
30+
if (requestCode == MetamapSdk.DEFAULT_REQUEST_CODE) {
31+
val intent = data
32+
if (resultCode == Activity.RESULT_OK && intent != null) {
33+
val result =
34+
intent.getStringExtra("ARG_VERIFICATION_ID") + " " + intent.getStringExtra("ARG_IDENTITY_ID")
35+
channel.invokeMethod("success", result)
36+
} else {
37+
channel.invokeMethod("cancelled", null)
38+
}
39+
true
40+
}
41+
false
3842
}
39-
true
40-
}
41-
false
43+
activity = binding.activity
44+
}
45+
46+
override fun onDetachedFromActivityForConfigChanges() {
47+
activity = null
4248
}
43-
activity = binding.activity
44-
}
4549

46-
override fun onDetachedFromActivityForConfigChanges() {
47-
activity = null
48-
}
50+
override fun onReattachedToActivityForConfigChanges(binding: ActivityPluginBinding) {
51+
activity = binding.activity
52+
}
4953

50-
override fun onReattachedToActivityForConfigChanges(binding: ActivityPluginBinding) {
51-
activity = binding.activity
52-
}
54+
override fun onDetachedFromActivity() {
55+
activity = null
56+
}
5357

54-
override fun onDetachedFromActivity() {
55-
activity = null
56-
}
58+
private var clientId: String = ""
59+
private var flowId: String? = null
60+
private var metadata: Map<String, Any>? = null
61+
private var encryptionConfigurationId: String? = null
62+
private var configurationId: String? = null
5763

58-
private var clientId: String = ""
59-
private var flowId: String? = null
60-
private var metadata: Map<String, Any>? = null
61-
private var encryptionConfigurationId: String? = null
62-
private var configurationId: String? = null
64+
override fun onMethodCall(@NonNull call: MethodCall, @NonNull result: Result) {
65+
when (call.method) {
66+
"showMatiFlow" -> {
67+
clientId = call.argument("clientId")!!
68+
flowId = call.argument("flowId")
69+
metadata = call.argument("metadata")
70+
encryptionConfigurationId = call.argument("encryptionConfigurationId")
71+
configurationId = call.argument("configurationId")
6372

64-
override fun onMethodCall(@NonNull call: MethodCall, @NonNull result: Result) {
65-
when (call.method) {
66-
"showMatiFlow" -> {
67-
clientId = call.argument("clientId")!!
68-
flowId = call.argument("flowId")
69-
metadata = call.argument("metadata")
70-
encryptionConfigurationId = call.argument("encryptionConfigurationId")
71-
configurationId = call.argument("configurationId")
73+
activity?.let { activity ->
74+
val metadataBuilder = Metadata.Builder().apply {
75+
metadata?.entries?.forEach {
76+
this.with(
77+
it.key, if (it.key in arrayOf("buttonColor", "buttonTextColor")) {
78+
Color.parseColor(it.value as String)
79+
} else {
80+
it.value
81+
}
82+
)
83+
}
84+
}
7285

73-
activity?.let { activity ->
74-
val metadata = Metadata.Builder().apply {
75-
metadata?.entries?.forEach {
76-
this.with(
77-
it.key, if (it.key in arrayOf("buttonColor", "buttonTextColor")) {
78-
Color.parseColor(it.value as String)
79-
} else {
80-
it.value
81-
}
82-
)
86+
MetamapSdk.startFlow(
87+
activity = activity,
88+
clientId = clientId,
89+
flowId = flowId,
90+
metadata = metadataBuilder.build(),
91+
requestCode = 2576,
92+
configurationId = configurationId,
93+
encryptionConfigurationId = encryptionConfigurationId,
94+
verificationStarted = { identityId, verificationId ->
95+
val resultData = "${verificationId.orEmpty()} ${identityId.orEmpty()}"
96+
Handler(Looper.getMainLooper()).post {
97+
channel.invokeMethod("created", resultData)
98+
}
99+
}
100+
)
101+
result.success("showMatiFlow ${android.os.Build.VERSION.RELEASE}")
102+
} ?: result.error("NO_ACTIVITY", "Activity is null", null)
83103
}
84-
}
85-
MetamapSdk.startFlow(
86-
activity,
87-
clientId,
88-
flowId,
89-
metadata.build(),
90-
2576,
91-
configurationId,
92-
encryptionConfigurationId
93-
)
94-
result.success("showMatiFlow ${android.os.Build.VERSION.RELEASE}")
104+
105+
else -> result.notImplemented()
95106
}
96-
}
97-
else -> result.notImplemented()
98107
}
99-
}
100108

101-
override fun onDetachedFromEngine(@NonNull binding: FlutterPlugin.FlutterPluginBinding) {
102-
channel.setMethodCallHandler(null)
103-
}
109+
override fun onDetachedFromEngine(@NonNull binding: FlutterPlugin.FlutterPluginBinding) {
110+
channel.setMethodCallHandler(null)
111+
}
104112
}

ios/Classes/SwiftMetaMapPluginFlutterPlugin.swift

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,47 +3,60 @@ import UIKit
33
import MetaMapSDK
44

55
public class SwiftMetaMapPluginFlutterPlugin: NSObject, FlutterPlugin, MetaMapButtonResultDelegate {
6-
6+
77
let channel: FlutterMethodChannel
8-
8+
99
init(_ channel: FlutterMethodChannel) {
1010
self.channel = channel
1111
}
12-
12+
1313
public static func register(with registrar: FlutterPluginRegistrar) {
1414
let channel = FlutterMethodChannel(name: "mati_flutter", binaryMessenger: registrar.messenger())
1515
let instance = SwiftMetaMapPluginFlutterPlugin(channel)
1616
registrar.addMethodCallDelegate(instance, channel: channel)
1717
}
18-
18+
1919
public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
2020
if (call.method == "showMatiFlow") {
21-
let arguments = (call.arguments as! [String: Any])
21+
print("📲 Received 'showMatiFlow' call from Flutter")
22+
23+
let arguments = (call.arguments as! [String: Any])
2224
let clientId = arguments["clientId"] as! String
2325
let flowId = arguments["flowId"] as? String
2426
let configurationId = arguments["configurationId"] as? String
2527
let encryptionConfigurationId = arguments["encryptionConfigurationId"] as? String
2628
let metadata = arguments["metadata"] as? [String : Any]
2729

30+
print("🧾 Parsed arguments: clientId=\(clientId), flowId=\(flowId ?? "nil")")
31+
2832
MetaMap.shared.showMetaMapFlow(clientId: clientId,
29-
flowId: flowId,
30-
configurationId: configurationId,
31-
encryptionConfigurationId: encryptionConfigurationId,
32-
metadata: metadata)
33+
flowId: flowId,
34+
configurationId: configurationId,
35+
encryptionConfigurationId: encryptionConfigurationId,
36+
metadata: metadata)
3337

3438
MetaMapButtonResult.shared.delegate = self
39+
print("✅ Set MetaMapButtonResult delegate")
3540

3641
result("startVerification: " + UIDevice.current.systemVersion)
3742
} else {
43+
print("⚠️ Received unknown method: \(call.method)")
3844
result("otherMethod: " + UIDevice.current.systemVersion)
3945
}
4046
}
41-
42-
public func verificationSuccess(identityId: String?, verificationID: String?) {
43-
self.channel.invokeMethod("success", arguments: (verificationID ?? "") + " " + (identityId ?? ""))
44-
}
45-
47+
48+
public func verificationSuccess(identityId: String?, verificationID: String?) {
49+
print("🎉 verificationSuccess called with identityId=\(identityId ?? "nil"), verificationID=\(verificationID ?? "nil")")
50+
self.channel.invokeMethod("success", arguments: (verificationID ?? "") + " " + (identityId ?? ""))
51+
}
52+
4653
public func verificationCancelled(identityId: String?, verificationID: String?) {
47-
self.channel.invokeMethod("cancelled", arguments: (verificationID ?? "") + " " + (identityId ?? ""))
54+
print("❌ verificationCancelled called with identityId=\(identityId ?? "nil"), verificationID=\(verificationID ?? "nil")")
55+
self.channel.invokeMethod("cancelled", arguments: (verificationID ?? "") + " " + (identityId ?? ""))
56+
}
57+
58+
public func verificationCreated(identityId: String?, verificationID: String?) {
59+
print("🆕 verificationCreated called with identityId=\(identityId ?? "nil"), verificationID=\(verificationID ?? "nil")")
60+
self.channel.invokeMethod("created", arguments: (verificationID ?? "") + " " + (identityId ?? ""))
4861
}
4962
}

ios/metamap_plugin_flutter.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Flutter plugin for Mati SDK
1313
s.dependency 'Flutter'
1414
s.platform = :ios, '13'
1515
s.static_framework = true
16-
s.dependency 'MetaMapSDK', "3.22.7"
16+
s.dependency 'MetaMapSDK', "3.22.9"
1717
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' }
1818
s.swift_version = '5.0'
1919
end

lib/Result.dart

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
abstract class Result {}
2+
3+
class ResultSuccess extends Result {
4+
final String verificationId;
5+
final String identityId;
6+
ResultSuccess(this.verificationId, this.identityId);
7+
}
8+
9+
class ResultCancelled extends Result {
10+
final String verificationId;
11+
final String identityId;
12+
ResultCancelled(this.verificationId, this.identityId);
13+
}
14+
15+
class ResultCreated extends Result {
16+
final String verificationId;
17+
final String identityId;
18+
ResultCreated(this.verificationId, this.identityId);
19+
}

0 commit comments

Comments
 (0)