From fb68ff77818002fe78b9fb3e524c05bb5d7fafc3 Mon Sep 17 00:00:00 2001 From: nv08 Date: Wed, 29 Oct 2025 11:19:29 +0530 Subject: [PATCH 1/2] add closeChat and logout --- android/build.gradle | 2 +- .../VerloopFlutterSdkPlugin.kt | 36 +++++++++++++++++++ .../SwiftVerloopFlutterSdkPlugin.swift | 9 +++++ lib/verloop_flutter_sdk.dart | 8 +++++ lib/verloop_flutter_sdk_method_channel.dart | 18 ++++++++++ ...erloop_flutter_sdk_platform_interface.dart | 7 ++++ 6 files changed, 79 insertions(+), 1 deletion(-) diff --git a/android/build.gradle b/android/build.gradle index 512e08f..d2db09a 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -48,5 +48,5 @@ android { dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" - implementation 'com.github.verloop:android-sdk:1.1.16' + implementation 'com.github.verloop:android-sdk:1.1.19-rc.5' } diff --git a/android/src/main/kotlin/io/verloop/verloop_flutter_sdk/VerloopFlutterSdkPlugin.kt b/android/src/main/kotlin/io/verloop/verloop_flutter_sdk/VerloopFlutterSdkPlugin.kt index 9b96115..ead1b2f 100644 --- a/android/src/main/kotlin/io/verloop/verloop_flutter_sdk/VerloopFlutterSdkPlugin.kt +++ b/android/src/main/kotlin/io/verloop/verloop_flutter_sdk/VerloopFlutterSdkPlugin.kt @@ -354,6 +354,42 @@ class VerloopFlutterSdkPlugin : FlutterPlugin, MethodCallHandler, ActivityAware return } + "logout" -> { + if (verloop == null) { + result.error( + ERROR_101, + "verloop object null", + "buildVerloop is not called before calling logout" + ) + return + } + verloop!!.logout() + configBuilder = null + verloop = null + config = null + clientId = null + buttonClickHandler = ButtonClickHandler() + buttonCallbackChannel.setStreamHandler(buttonClickHandler) + urlClickHandler = UrlClickHandler() + urlCallbackChannel.setStreamHandler(urlClickHandler) + result.success(1) + return + } + + "closeChat" -> { + if (verloop == null) { + result.error( + ERROR_101, + "verloop object null", + "buildVerloop is not called before calling closeChat" + ) + return + } + verloop!!.closeChat() + result.success(1) + return + } + else -> { result.notImplemented() } diff --git a/ios/Classes/SwiftVerloopFlutterSdkPlugin.swift b/ios/Classes/SwiftVerloopFlutterSdkPlugin.swift index 9cc7b50..b5b4a67 100644 --- a/ios/Classes/SwiftVerloopFlutterSdkPlugin.swift +++ b/ios/Classes/SwiftVerloopFlutterSdkPlugin.swift @@ -187,6 +187,15 @@ public class SwiftVerloopFlutterSdkPlugin: NSObject, FlutterPlugin, VLEventDeleg self.viewController = nil // Clear the reference after dismissing }) result(1) + + case "logout": + config?.logout() + result(1) + + case "closeChat": + config?.close() + result(1) + default: result(FlutterMethodNotImplemented) } diff --git a/lib/verloop_flutter_sdk.dart b/lib/verloop_flutter_sdk.dart index 04a8fe6..3fab434 100644 --- a/lib/verloop_flutter_sdk.dart +++ b/lib/verloop_flutter_sdk.dart @@ -207,4 +207,12 @@ class VerloopSdk { Future dismissChat() async { return await VerloopFlutterSdkPlatform.instance.dismissChat(); } + + Future logout() async { + return await VerloopFlutterSdkPlatform.instance.logout(); + } + + Future closeChat() async { + return await VerloopFlutterSdkPlatform.instance.closeChat(); + } } diff --git a/lib/verloop_flutter_sdk_method_channel.dart b/lib/verloop_flutter_sdk_method_channel.dart index 3339e69..3e477f9 100644 --- a/lib/verloop_flutter_sdk_method_channel.dart +++ b/lib/verloop_flutter_sdk_method_channel.dart @@ -168,4 +168,22 @@ class MethodChannelVerloopFlutterSdk extends VerloopFlutterSdkPlatform { log("Failed to load widget: '${e.message}'."); } } + + @override + Future logout() async { + try { + await verloopMethods.invokeMethod('logout'); + } on PlatformException catch (e) { + log("Failed to logout: '${e.message}'."); + } + } + + @override + Future closeChat() async { + try { + await verloopMethods.invokeMethod('closeChat'); + } on PlatformException catch (e) { + log("Failed to close chat: '${e.message}'."); + } + } } diff --git a/lib/verloop_flutter_sdk_platform_interface.dart b/lib/verloop_flutter_sdk_platform_interface.dart index 68a8052..2bd51f5 100644 --- a/lib/verloop_flutter_sdk_platform_interface.dart +++ b/lib/verloop_flutter_sdk_platform_interface.dart @@ -90,4 +90,11 @@ abstract class VerloopFlutterSdkPlatform extends PlatformInterface { throw UnimplementedError('dismissChat() has not been implemented.'); } + Future logout() async { + throw UnimplementedError('logout() has not been implemented.'); + } + + Future closeChat() async { + throw UnimplementedError('closeChat() has not been implemented.'); + } } From f96f996a41b4a6c530e8855e2403c64626615aa4 Mon Sep 17 00:00:00 2001 From: nv08 Date: Wed, 29 Oct 2025 11:20:18 +0530 Subject: [PATCH 2/2] update podspec --- ios/verloop_flutter_sdk.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ios/verloop_flutter_sdk.podspec b/ios/verloop_flutter_sdk.podspec index 87d96d7..ea005e9 100644 --- a/ios/verloop_flutter_sdk.podspec +++ b/ios/verloop_flutter_sdk.podspec @@ -15,7 +15,7 @@ This is a wrapper over native SDK for flutter app s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency "VerloopSDKiOS", "0.2.16" + s.dependency "VerloopSDKiOS", "0.2.19-rc.1" s.platform = :ios, '12.0' # Flutter.framework does not contain a i386 slice.