From 4c25d444e666a43c64fa110869b7b6a4690733e9 Mon Sep 17 00:00:00 2001 From: Rehan Date: Thu, 18 May 2023 14:33:07 +0500 Subject: [PATCH 1/3] feat: dismiss in-app message --- android/gradle.properties | 2 +- .../reactnative/sdk/RNCIOInAppMessaging.kt | 14 ++++++++++++++ ios/CustomerioInAppMessaging.m | 2 ++ ios/CustomerioInAppMessaging.swift | 8 ++++++++ src/CustomerIOInAppMessaging.tsx | 7 +++++++ 5 files changed, 32 insertions(+), 1 deletion(-) diff --git a/android/gradle.properties b/android/gradle.properties index f890fdbc..85350dd2 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -2,4 +2,4 @@ customerio.reactnative.kotlinVersion=1.7.21 customerio.reactnative.compileSdkVersion=30 customerio.reactnative.targetSdkVersion=30 customerio.reactnative.minSdkVersion=21 -customerio.reactnative.cioSDKVersionAndroid=[3.4.1,4.0) +customerio.reactnative.cioSDKVersionAndroid=shahroz-inapp-dismiss-SNAPSHOT diff --git a/android/src/main/java/io/customer/reactnative/sdk/RNCIOInAppMessaging.kt b/android/src/main/java/io/customer/reactnative/sdk/RNCIOInAppMessaging.kt index 3c0038fc..53926293 100644 --- a/android/src/main/java/io/customer/reactnative/sdk/RNCIOInAppMessaging.kt +++ b/android/src/main/java/io/customer/reactnative/sdk/RNCIOInAppMessaging.kt @@ -5,8 +5,11 @@ import com.facebook.react.bridge.ReactApplicationContext import com.facebook.react.bridge.ReactContextBaseJavaModule import com.facebook.react.bridge.ReactMethod import com.facebook.react.modules.core.DeviceEventManagerModule +import io.customer.messaginginapp.ModuleMessagingInApp +import io.customer.messaginginapp.di.inAppMessaging import io.customer.messaginginapp.type.InAppEventListener import io.customer.messaginginapp.type.InAppMessage +import io.customer.sdk.CustomerIO /** * ReactNative module to hold in-app messages features in a single place to bridge with native code. @@ -16,6 +19,9 @@ class RNCIOInAppMessaging( ) : ReactContextBaseJavaModule(reactContext), InAppEventListener { private var listenerCount = 0 + private val inAppMessagingModule: ModuleMessagingInApp + get() = CustomerIO.instance().inAppMessaging() + @ReactMethod fun addListener(eventName: String) { listenerCount++ @@ -26,6 +32,14 @@ class RNCIOInAppMessaging( listenerCount -= count } + /** + * Dismisses any currently displayed in-app message + */ + @ReactMethod + fun dismissMessage() { + inAppMessagingModule.dismissMessage() + } + /** * Sends event to JS Callback. All events are sent under one name so it easier for customers to * listen on multiple linked events. The [eventType], [message] values and [extras] are merged diff --git a/ios/CustomerioInAppMessaging.m b/ios/CustomerioInAppMessaging.m index 175b5ab1..0eb4d759 100644 --- a/ios/CustomerioInAppMessaging.m +++ b/ios/CustomerioInAppMessaging.m @@ -4,4 +4,6 @@ @interface RCT_EXTERN_MODULE(CustomerioInAppMessaging, RCTEventEmitter) RCT_EXTERN_METHOD(supportedEvents) +RCT_EXTERN_METHOD(dismissMessage) + @end diff --git a/ios/CustomerioInAppMessaging.swift b/ios/CustomerioInAppMessaging.swift index 08b7ed23..1fcfa058 100644 --- a/ios/CustomerioInAppMessaging.swift +++ b/ios/CustomerioInAppMessaging.swift @@ -22,4 +22,12 @@ class CustomerioInAppMessaging: RCTEventEmitter { open override func supportedEvents() -> [String]! { return [ "InAppEventListener" ] } + + /** + * Dismisses any currently displayed in-app message + */ + @objc(dismissMessage) + func dismissMessage() { + MessagingInApp.shared.dismissMessage() + } } diff --git a/src/CustomerIOInAppMessaging.tsx b/src/CustomerIOInAppMessaging.tsx index 227f3dd9..67849d3d 100644 --- a/src/CustomerIOInAppMessaging.tsx +++ b/src/CustomerIOInAppMessaging.tsx @@ -47,6 +47,13 @@ class CustomerIOInAppMessaging { } ); } + + /** + * Dismisses any currently displayed in-app message + */ + dismissMessage() { + InAppMessagingNative.dismissMessage(); + } } /** From 08a1c6dee9043506db229967e2d1fb6e6e8bc0c0 Mon Sep 17 00:00:00 2001 From: Rehan Date: Mon, 29 May 2023 13:49:52 +0500 Subject: [PATCH 2/3] updated android sdk version --- android/gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/gradle.properties b/android/gradle.properties index 85350dd2..5f34ed7e 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -2,4 +2,4 @@ customerio.reactnative.kotlinVersion=1.7.21 customerio.reactnative.compileSdkVersion=30 customerio.reactnative.targetSdkVersion=30 customerio.reactnative.minSdkVersion=21 -customerio.reactnative.cioSDKVersionAndroid=shahroz-inapp-dismiss-SNAPSHOT +customerio.reactnative.cioSDKVersionAndroid=[3.5.0,4.0) From 3f967dc270c12907cbce7010b0b321e9d6abdc69 Mon Sep 17 00:00:00 2001 From: Rehan Date: Tue, 30 May 2023 18:30:29 +0500 Subject: [PATCH 3/3] add ios import --- ios/CustomerioInAppMessaging.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/ios/CustomerioInAppMessaging.swift b/ios/CustomerioInAppMessaging.swift index 1fcfa058..e7be3fd7 100644 --- a/ios/CustomerioInAppMessaging.swift +++ b/ios/CustomerioInAppMessaging.swift @@ -1,5 +1,6 @@ import Foundation import React +import CioMessagingInApp @objc(CustomerioInAppMessaging) class CustomerioInAppMessaging: RCTEventEmitter {