react-native-moengage-cards 2.1.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ReactNativeMoEngageCards.podspec +7 -1
- package/android/build.gradle +30 -4
- package/android/src/main/java/com/moengage/react/cards/{MoEngageCardsBridge.kt → MoEngageCardsBridgeHandler.kt} +16 -42
- package/android/src/main/java/com/moengage/react/cards/MoEngageCardsPackage.kt +27 -8
- package/android/src/newarch/java/com/moengage/react/cards/MoEngageCardsBridge.kt +97 -0
- package/android/src/oldarch/java/com/moengage/react/cards/MoEngageCardsBridge.kt +126 -0
- package/ios/MoEReactNativeCardsHandler.h +34 -0
- package/ios/MoEReactNativeCardsHandler.m +143 -0
- package/ios/MoEngageCardsBridge.h +11 -1
- package/ios/MoEngageCardsBridge.mm +102 -0
- package/ios/MoEngageCardsReactUtil.h +3 -1
- package/ios/MoEngageCardsReactUtil.m +0 -1
- package/package.json +10 -2
- package/src/NativeMoEngageCards.ts +141 -0
- package/src/internal/MoEngageCardHandler.ts +23 -20
- package/src/internal/utils/PayloadBuilder.ts +25 -15
- package/android/.gradle/8.2/checksums/checksums.lock +0 -0
- package/android/.gradle/8.2/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/8.2/checksums/sha1-checksums.bin +0 -0
- package/android/.gradle/8.2/dependencies-accessors/dependencies-accessors.lock +0 -0
- package/android/.gradle/8.2/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/8.2/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/8.2/fileChanges/last-build.bin +0 -0
- package/android/.gradle/8.2/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/8.2/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/ios/Cards.xcworkspace/xcuserdata/rakshitha.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/ios/MoEngageCardsBridge.m +0 -149
- package/src/internal/utils/PlatformPayloadBuilder.ts +0 -81
|
@@ -19,7 +19,13 @@ Pod::Spec.new do |s|
|
|
|
19
19
|
s.source_files = "ios/**/*.{h,m,mm,swift}"
|
|
20
20
|
s.dependency 'React'
|
|
21
21
|
|
|
22
|
-
#Note update dependency
|
|
23
22
|
s.dependency 'MoEngagePluginCards','>= 1.5.0','< 1.6.0'
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
if defined?(install_modules_dependencies()) != nil
|
|
26
|
+
install_modules_dependencies(s);
|
|
27
|
+
else
|
|
28
|
+
s.dependency "React-Core"
|
|
29
|
+
end
|
|
24
30
|
end
|
|
25
31
|
|
package/android/build.gradle
CHANGED
|
@@ -14,9 +14,17 @@ buildscript {
|
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
ext {
|
|
18
|
+
//dependency version
|
|
19
|
+
moengageCoreVersion = "13.00.03"
|
|
20
|
+
moengageCardsCoreVersion = "2.0.2"
|
|
21
|
+
pluginBaseCardVersion = "2.0.0"
|
|
22
|
+
}
|
|
23
|
+
|
|
17
24
|
apply plugin: 'com.android.library'
|
|
18
25
|
apply plugin: 'kotlin-android'
|
|
19
26
|
apply plugin: "org.jlleitschuh.gradle.ktlint"
|
|
27
|
+
apply plugin: 'com.facebook.react'
|
|
20
28
|
|
|
21
29
|
android {
|
|
22
30
|
compileSdk 33
|
|
@@ -25,6 +33,8 @@ android {
|
|
|
25
33
|
minSdk 21
|
|
26
34
|
versionCode 1
|
|
27
35
|
versionName "1.0"
|
|
36
|
+
|
|
37
|
+
buildConfigField("boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString())
|
|
28
38
|
}
|
|
29
39
|
|
|
30
40
|
buildTypes {
|
|
@@ -43,6 +53,18 @@ android {
|
|
|
43
53
|
kotlinOptions {
|
|
44
54
|
freeCompilerArgs = ['-Xjvm-default=all']
|
|
45
55
|
}
|
|
56
|
+
buildFeatures {
|
|
57
|
+
buildConfig true
|
|
58
|
+
}
|
|
59
|
+
sourceSets {
|
|
60
|
+
main {
|
|
61
|
+
if (isNewArchitectureEnabled()) {
|
|
62
|
+
java.srcDirs += ['src/newarch']
|
|
63
|
+
} else {
|
|
64
|
+
java.srcDirs += ['src/oldarch']
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
46
68
|
}
|
|
47
69
|
|
|
48
70
|
repositories {
|
|
@@ -53,9 +75,13 @@ repositories {
|
|
|
53
75
|
|
|
54
76
|
dependencies {
|
|
55
77
|
// noinspection GradleDynamicVersion
|
|
56
|
-
compileOnly
|
|
78
|
+
compileOnly('com.facebook.react:react-native')
|
|
57
79
|
compileOnly "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
|
|
58
|
-
compileOnly("com.moengage:moe-android-sdk
|
|
59
|
-
|
|
60
|
-
implementation("com.moengage:plugin-base-cards
|
|
80
|
+
compileOnly("com.moengage:moe-android-sdk:$moengageCoreVersion")
|
|
81
|
+
api("com.moengage:cards-core:$moengageCardsCoreVersion")
|
|
82
|
+
implementation("com.moengage:plugin-base-cards:$pluginBaseCardVersion")
|
|
61
83
|
}
|
|
84
|
+
|
|
85
|
+
def isNewArchitectureEnabled() {
|
|
86
|
+
return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
|
|
87
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c) 2014-
|
|
2
|
+
* Copyright (c) 2014-2024 MoEngage Inc.
|
|
3
3
|
*
|
|
4
4
|
* All rights reserved.
|
|
5
5
|
*
|
|
@@ -10,14 +10,12 @@
|
|
|
10
10
|
*
|
|
11
11
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
12
12
|
*/
|
|
13
|
-
|
|
13
|
+
|
|
14
14
|
package com.moengage.react.cards
|
|
15
15
|
|
|
16
16
|
import android.content.Context
|
|
17
17
|
import com.facebook.react.bridge.Promise
|
|
18
18
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
19
|
-
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
20
|
-
import com.facebook.react.bridge.ReactMethod
|
|
21
19
|
import com.moengage.core.LogLevel
|
|
22
20
|
import com.moengage.core.internal.logger.Logger
|
|
23
21
|
import com.moengage.plugin.base.cards.CardsPluginHelper
|
|
@@ -26,34 +24,20 @@ import com.moengage.plugin.base.cards.internal.setCardsEventEmitter
|
|
|
26
24
|
import org.json.JSONObject
|
|
27
25
|
|
|
28
26
|
/**
|
|
29
|
-
*
|
|
27
|
+
* Class to handle all the request from the [MoEngageCardsBridge] from both old and new arch
|
|
30
28
|
*
|
|
31
29
|
* @author Abhishek Kumar
|
|
32
|
-
* @since
|
|
30
|
+
* @since Todo: Add Version
|
|
33
31
|
*/
|
|
34
|
-
class
|
|
35
|
-
ReactContextBaseJavaModule(reactContext) {
|
|
32
|
+
internal class MoEngageCardsBridgeHandler(private val reactContext: ReactApplicationContext) {
|
|
36
33
|
|
|
37
|
-
private val tag = "${MODULE_TAG}
|
|
34
|
+
private val tag = "${MODULE_TAG}MoEngageCardsBridgeHandler"
|
|
38
35
|
|
|
39
36
|
private val context: Context = reactContext.applicationContext
|
|
40
37
|
private val cardsPluginHelper = CardsPluginHelper()
|
|
41
38
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
@ReactMethod
|
|
47
|
-
fun addListener(eventName: String) {
|
|
48
|
-
// Keep: Required for RN built in Event Emitter Calls.
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
@ReactMethod
|
|
52
|
-
fun removeListeners(count: Int) {
|
|
53
|
-
// Keep: Required for RN built in Event Emitter Calls.
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
@ReactMethod
|
|
39
|
+
fun getName() = NAME
|
|
40
|
+
|
|
57
41
|
fun initialize(payload: String) {
|
|
58
42
|
try {
|
|
59
43
|
Logger.print { "$tag initialize() : $payload" }
|
|
@@ -64,7 +48,6 @@ class MoEngageCardsBridge(private val reactContext: ReactApplicationContext) :
|
|
|
64
48
|
}
|
|
65
49
|
}
|
|
66
50
|
|
|
67
|
-
@ReactMethod
|
|
68
51
|
fun refreshCards(payload: String) {
|
|
69
52
|
try {
|
|
70
53
|
Logger.print { "$tag refreshCards() : $payload" }
|
|
@@ -74,7 +57,6 @@ class MoEngageCardsBridge(private val reactContext: ReactApplicationContext) :
|
|
|
74
57
|
}
|
|
75
58
|
}
|
|
76
59
|
|
|
77
|
-
@ReactMethod
|
|
78
60
|
fun onCardSectionLoaded(payload: String) {
|
|
79
61
|
try {
|
|
80
62
|
Logger.print { "$tag onCardSectionLoaded() : $payload" }
|
|
@@ -84,7 +66,6 @@ class MoEngageCardsBridge(private val reactContext: ReactApplicationContext) :
|
|
|
84
66
|
}
|
|
85
67
|
}
|
|
86
68
|
|
|
87
|
-
@ReactMethod
|
|
88
69
|
fun onCardSectionUnLoaded(payload: String) {
|
|
89
70
|
try {
|
|
90
71
|
Logger.print { "$tag onCardSectionUnLoaded() : $payload" }
|
|
@@ -93,8 +74,7 @@ class MoEngageCardsBridge(private val reactContext: ReactApplicationContext) :
|
|
|
93
74
|
Logger.print(LogLevel.ERROR, t) { "$tag onCardSectionUnLoaded() : " }
|
|
94
75
|
}
|
|
95
76
|
}
|
|
96
|
-
|
|
97
|
-
@ReactMethod
|
|
77
|
+
|
|
98
78
|
fun getCardsCategories(payload: String, promise: Promise) {
|
|
99
79
|
try {
|
|
100
80
|
Logger.print { "$tag getCardsCategories() : $payload" }
|
|
@@ -105,8 +85,7 @@ class MoEngageCardsBridge(private val reactContext: ReactApplicationContext) :
|
|
|
105
85
|
promise.reject(t)
|
|
106
86
|
}
|
|
107
87
|
}
|
|
108
|
-
|
|
109
|
-
@ReactMethod
|
|
88
|
+
|
|
110
89
|
fun getCardsInfo(payload: String, promise: Promise) {
|
|
111
90
|
try {
|
|
112
91
|
Logger.print { "$tag getCardsInfo() : $payload" }
|
|
@@ -118,7 +97,6 @@ class MoEngageCardsBridge(private val reactContext: ReactApplicationContext) :
|
|
|
118
97
|
}
|
|
119
98
|
}
|
|
120
99
|
|
|
121
|
-
@ReactMethod
|
|
122
100
|
fun cardClicked(payload: String) {
|
|
123
101
|
try {
|
|
124
102
|
Logger.print { "$tag cardClicked() : $payload" }
|
|
@@ -128,7 +106,6 @@ class MoEngageCardsBridge(private val reactContext: ReactApplicationContext) :
|
|
|
128
106
|
}
|
|
129
107
|
}
|
|
130
108
|
|
|
131
|
-
@ReactMethod
|
|
132
109
|
fun cardDelivered(payload: String) {
|
|
133
110
|
try {
|
|
134
111
|
Logger.print { "$tag cardDelivered() : $payload" }
|
|
@@ -138,7 +115,6 @@ class MoEngageCardsBridge(private val reactContext: ReactApplicationContext) :
|
|
|
138
115
|
}
|
|
139
116
|
}
|
|
140
117
|
|
|
141
|
-
@ReactMethod
|
|
142
118
|
fun cardShown(payload: String) {
|
|
143
119
|
try {
|
|
144
120
|
Logger.print { "$tag cardShown() : $payload" }
|
|
@@ -147,8 +123,7 @@ class MoEngageCardsBridge(private val reactContext: ReactApplicationContext) :
|
|
|
147
123
|
Logger.print(LogLevel.ERROR, t) { "$tag cardShown() : " }
|
|
148
124
|
}
|
|
149
125
|
}
|
|
150
|
-
|
|
151
|
-
@ReactMethod
|
|
126
|
+
|
|
152
127
|
fun getCardsForCategory(payload: String, promise: Promise) {
|
|
153
128
|
try {
|
|
154
129
|
Logger.print { "$tag getCardsForCategory() : $payload" }
|
|
@@ -160,7 +135,6 @@ class MoEngageCardsBridge(private val reactContext: ReactApplicationContext) :
|
|
|
160
135
|
}
|
|
161
136
|
}
|
|
162
137
|
|
|
163
|
-
@ReactMethod
|
|
164
138
|
fun deleteCards(payload: String) {
|
|
165
139
|
try {
|
|
166
140
|
Logger.print { "$tag deleteCards() : $payload" }
|
|
@@ -170,7 +144,6 @@ class MoEngageCardsBridge(private val reactContext: ReactApplicationContext) :
|
|
|
170
144
|
}
|
|
171
145
|
}
|
|
172
146
|
|
|
173
|
-
@ReactMethod
|
|
174
147
|
fun isAllCategoryEnabled(payload: String, promise: Promise) {
|
|
175
148
|
try {
|
|
176
149
|
Logger.print { "$tag isAllCategoryEnabled() : $payload" }
|
|
@@ -181,8 +154,7 @@ class MoEngageCardsBridge(private val reactContext: ReactApplicationContext) :
|
|
|
181
154
|
promise.reject(t)
|
|
182
155
|
}
|
|
183
156
|
}
|
|
184
|
-
|
|
185
|
-
@ReactMethod
|
|
157
|
+
|
|
186
158
|
fun getNewCardsCount(payload: String, promise: Promise) {
|
|
187
159
|
try {
|
|
188
160
|
Logger.print { "$tag getNewCardsCount() : $payload" }
|
|
@@ -194,7 +166,6 @@ class MoEngageCardsBridge(private val reactContext: ReactApplicationContext) :
|
|
|
194
166
|
}
|
|
195
167
|
}
|
|
196
168
|
|
|
197
|
-
@ReactMethod
|
|
198
169
|
fun getUnClickedCardsCount(payload: String, promise: Promise) {
|
|
199
170
|
try {
|
|
200
171
|
Logger.print { "$tag getUnClickedCardsCount() : $payload" }
|
|
@@ -206,7 +177,6 @@ class MoEngageCardsBridge(private val reactContext: ReactApplicationContext) :
|
|
|
206
177
|
}
|
|
207
178
|
}
|
|
208
179
|
|
|
209
|
-
@ReactMethod
|
|
210
180
|
fun fetchCards(payload: String, promise: Promise) {
|
|
211
181
|
try {
|
|
212
182
|
Logger.print { "$tag fetchCards() : $payload" }
|
|
@@ -225,4 +195,8 @@ class MoEngageCardsBridge(private val reactContext: ReactApplicationContext) :
|
|
|
225
195
|
promise.reject(t)
|
|
226
196
|
}
|
|
227
197
|
}
|
|
198
|
+
|
|
199
|
+
companion object {
|
|
200
|
+
const val NAME = "MoEngageCardsBridge"
|
|
201
|
+
}
|
|
228
202
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c) 2014-
|
|
2
|
+
* Copyright (c) 2014-2024 MoEngage Inc.
|
|
3
3
|
*
|
|
4
4
|
* All rights reserved.
|
|
5
5
|
*
|
|
@@ -13,10 +13,11 @@
|
|
|
13
13
|
|
|
14
14
|
package com.moengage.react.cards
|
|
15
15
|
|
|
16
|
-
import com.facebook.react.
|
|
16
|
+
import com.facebook.react.TurboReactPackage
|
|
17
17
|
import com.facebook.react.bridge.NativeModule
|
|
18
18
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
19
|
-
import com.facebook.react.
|
|
19
|
+
import com.facebook.react.module.model.ReactModuleInfo
|
|
20
|
+
import com.facebook.react.module.model.ReactModuleInfoProvider
|
|
20
21
|
|
|
21
22
|
/**
|
|
22
23
|
* MoEngage Card Plugin React-Native Package
|
|
@@ -24,12 +25,30 @@ import com.facebook.react.uimanager.ViewManager
|
|
|
24
25
|
* @author Abhishek Kumar
|
|
25
26
|
* @since 1.0.0
|
|
26
27
|
*/
|
|
27
|
-
class MoEngageCardsPackage :
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
class MoEngageCardsPackage : TurboReactPackage() {
|
|
29
|
+
|
|
30
|
+
override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? {
|
|
31
|
+
return if (name == MoEngageCardsBridgeHandler.NAME) {
|
|
32
|
+
MoEngageCardsBridge(reactContext)
|
|
33
|
+
} else {
|
|
34
|
+
null
|
|
35
|
+
}
|
|
30
36
|
}
|
|
31
37
|
|
|
32
|
-
override fun
|
|
33
|
-
return
|
|
38
|
+
override fun getReactModuleInfoProvider(): ReactModuleInfoProvider {
|
|
39
|
+
return ReactModuleInfoProvider {
|
|
40
|
+
val moduleInfos: MutableMap<String, ReactModuleInfo> = HashMap()
|
|
41
|
+
val isTurboModule = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED
|
|
42
|
+
moduleInfos[MoEngageCardsBridgeHandler.NAME] = ReactModuleInfo(
|
|
43
|
+
MoEngageCardsBridgeHandler.NAME,
|
|
44
|
+
MoEngageCardsBridgeHandler.NAME,
|
|
45
|
+
false, // canOverrideExistingModule
|
|
46
|
+
false, // needsEagerInit
|
|
47
|
+
true, // hasConstants
|
|
48
|
+
false, // isCxxModule
|
|
49
|
+
isTurboModule // isTurboModule
|
|
50
|
+
)
|
|
51
|
+
moduleInfos
|
|
52
|
+
}
|
|
34
53
|
}
|
|
35
54
|
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2014-2024 MoEngage Inc.
|
|
3
|
+
*
|
|
4
|
+
* All rights reserved.
|
|
5
|
+
*
|
|
6
|
+
* Use of source code or binaries contained within MoEngage SDK is permitted only to enable use of the MoEngage platform by customers of MoEngage.
|
|
7
|
+
* Modification of source code and inclusion in mobile apps is explicitly allowed provided that all other conditions are met.
|
|
8
|
+
* Neither the name of MoEngage nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
|
9
|
+
* Redistribution of source code or binaries is disallowed except with specific prior written permission. Any such redistribution must retain the above copyright notice, this list of conditions and the following disclaimer.
|
|
10
|
+
*
|
|
11
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
package com.moengage.react.cards
|
|
15
|
+
|
|
16
|
+
import com.facebook.react.bridge.Promise
|
|
17
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Bridge to communicate with React-Native Cards Plugin in new arch
|
|
21
|
+
*
|
|
22
|
+
* @author Abhishek Kumar
|
|
23
|
+
* @since Todo: Add Version
|
|
24
|
+
*/
|
|
25
|
+
class MoEngageCardsBridge(reactContext: ReactApplicationContext) :
|
|
26
|
+
NativeMoEngageCardsSpec(reactContext) {
|
|
27
|
+
|
|
28
|
+
private val bridgeHandler = MoEngageCardsBridgeHandler(reactContext)
|
|
29
|
+
|
|
30
|
+
override fun getName() = bridgeHandler.getName()
|
|
31
|
+
|
|
32
|
+
override fun addListener(eventName: String) {
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
override fun removeListeners(count: Double) {
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
override fun initialize(payload: String) {
|
|
39
|
+
bridgeHandler.initialize(payload)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
override fun refreshCards(payload: String) {
|
|
43
|
+
bridgeHandler.refreshCards(payload)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
override fun onCardSectionLoaded(payload: String) {
|
|
47
|
+
bridgeHandler.onCardSectionLoaded(payload)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
override fun onCardSectionUnLoaded(payload: String) {
|
|
51
|
+
bridgeHandler.onCardSectionUnLoaded(payload)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
override fun getCardsCategories(payload: String, promise: Promise) {
|
|
55
|
+
bridgeHandler.getCardsCategories(payload, promise)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
override fun getCardsInfo(payload: String, promise: Promise) {
|
|
59
|
+
bridgeHandler.getCardsInfo(payload, promise)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
override fun cardClicked(payload: String) {
|
|
63
|
+
bridgeHandler.cardClicked(payload)
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
override fun cardDelivered(payload: String) {
|
|
67
|
+
bridgeHandler.cardDelivered(payload)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
override fun cardShown(payload: String) {
|
|
71
|
+
bridgeHandler.cardShown(payload)
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
override fun getCardsForCategory(payload: String, promise: Promise) {
|
|
75
|
+
bridgeHandler.getCardsForCategory(payload, promise)
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
override fun deleteCards(payload: String) {
|
|
79
|
+
bridgeHandler.deleteCards(payload)
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
override fun isAllCategoryEnabled(payload: String, promise: Promise) {
|
|
83
|
+
bridgeHandler.isAllCategoryEnabled(payload, promise)
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
override fun getNewCardsCount(payload: String, promise: Promise) {
|
|
87
|
+
bridgeHandler.getNewCardsCount(payload, promise)
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
override fun getUnClickedCardsCount(payload: String, promise: Promise) {
|
|
91
|
+
bridgeHandler.getUnClickedCardsCount(payload, promise)
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
override fun fetchCards(payload: String, promise: Promise) {
|
|
95
|
+
bridgeHandler.fetchCards(payload, promise)
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2014-2024 MoEngage Inc.
|
|
3
|
+
*
|
|
4
|
+
* All rights reserved.
|
|
5
|
+
*
|
|
6
|
+
* Use of source code or binaries contained within MoEngage SDK is permitted only to enable use of the MoEngage platform by customers of MoEngage.
|
|
7
|
+
* Modification of source code and inclusion in mobile apps is explicitly allowed provided that all other conditions are met.
|
|
8
|
+
* Neither the name of MoEngage nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
|
9
|
+
* Redistribution of source code or binaries is disallowed except with specific prior written permission. Any such redistribution must retain the above copyright notice, this list of conditions and the following disclaimer.
|
|
10
|
+
*
|
|
11
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
package com.moengage.react.cards
|
|
15
|
+
|
|
16
|
+
import android.content.Context
|
|
17
|
+
import com.facebook.react.bridge.Promise
|
|
18
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
19
|
+
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
20
|
+
import com.facebook.react.bridge.ReactMethod
|
|
21
|
+
import com.moengage.core.LogLevel
|
|
22
|
+
import com.moengage.core.internal.logger.Logger
|
|
23
|
+
import com.moengage.plugin.base.cards.CardsPluginHelper
|
|
24
|
+
import com.moengage.plugin.base.cards.internal.cardListToJson
|
|
25
|
+
import com.moengage.plugin.base.cards.internal.setCardsEventEmitter
|
|
26
|
+
import org.json.JSONObject
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Bridge to communicate with React-Native Cards Plugin in old arch
|
|
30
|
+
*
|
|
31
|
+
* @author Abhishek Kumar
|
|
32
|
+
* @since Todo: Add Version
|
|
33
|
+
*/
|
|
34
|
+
class MoEngageCardsBridge(
|
|
35
|
+
private val reactContext: ReactApplicationContext
|
|
36
|
+
) : ReactContextBaseJavaModule(reactContext) {
|
|
37
|
+
|
|
38
|
+
private val bridgeHandler = MoEngageCardsBridgeHandler(reactContext)
|
|
39
|
+
|
|
40
|
+
override fun getName() = bridgeHandler.getName()
|
|
41
|
+
|
|
42
|
+
@ReactMethod
|
|
43
|
+
fun addListener(eventName: String) {
|
|
44
|
+
// Keep: Required for RN built in Event Emitter Calls.
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
@ReactMethod
|
|
48
|
+
fun removeListeners(count: Int) {
|
|
49
|
+
// Keep: Required for RN built in Event Emitter Calls.
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@ReactMethod
|
|
53
|
+
fun initialize(payload: String) {
|
|
54
|
+
bridgeHandler.initialize(payload)
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@ReactMethod
|
|
58
|
+
fun refreshCards(payload: String) {
|
|
59
|
+
bridgeHandler.refreshCards(payload)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
@ReactMethod
|
|
63
|
+
fun onCardSectionLoaded(payload: String) {
|
|
64
|
+
bridgeHandler.onCardSectionLoaded(payload)
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
@ReactMethod
|
|
68
|
+
fun onCardSectionUnLoaded(payload: String) {
|
|
69
|
+
bridgeHandler.onCardSectionUnLoaded(payload)
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
@ReactMethod
|
|
73
|
+
fun getCardsCategories(payload: String, promise: Promise) {
|
|
74
|
+
bridgeHandler.getCardsCategories(payload, promise)
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@ReactMethod
|
|
78
|
+
fun getCardsInfo(payload: String, promise: Promise) {
|
|
79
|
+
bridgeHandler.getCardsInfo(payload, promise)
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
@ReactMethod
|
|
83
|
+
fun cardClicked(payload: String) {
|
|
84
|
+
bridgeHandler.cardClicked(payload)
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
@ReactMethod
|
|
88
|
+
fun cardDelivered(payload: String) {
|
|
89
|
+
bridgeHandler.cardDelivered(payload)
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
@ReactMethod
|
|
93
|
+
fun cardShown(payload: String) {
|
|
94
|
+
bridgeHandler.cardShown(payload)
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
@ReactMethod
|
|
98
|
+
fun getCardsForCategory(payload: String, promise: Promise) {
|
|
99
|
+
bridgeHandler.getCardsForCategory(payload, promise)
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
@ReactMethod
|
|
103
|
+
fun deleteCards(payload: String) {
|
|
104
|
+
bridgeHandler.deleteCards(payload)
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
@ReactMethod
|
|
108
|
+
fun isAllCategoryEnabled(payload: String, promise: Promise) {
|
|
109
|
+
bridgeHandler.isAllCategoryEnabled(payload, promise)
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
@ReactMethod
|
|
113
|
+
fun getNewCardsCount(payload: String, promise: Promise) {
|
|
114
|
+
bridgeHandler.getNewCardsCount(payload, promise)
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
@ReactMethod
|
|
118
|
+
fun getUnClickedCardsCount(payload: String, promise: Promise) {
|
|
119
|
+
bridgeHandler.getUnClickedCardsCount(payload, promise)
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
@ReactMethod
|
|
123
|
+
fun fetchCards(payload: String, promise: Promise) {
|
|
124
|
+
bridgeHandler.fetchCards(payload, promise)
|
|
125
|
+
}
|
|
126
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MoEReactNativeCardsHandler.h
|
|
3
|
+
// Pods
|
|
4
|
+
//
|
|
5
|
+
// Created by Rakshitha on 15/03/24.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import <Foundation/Foundation.h>
|
|
9
|
+
#import <UIKit/UIKit.h>
|
|
10
|
+
#import <React/RCTEventEmitter.h>
|
|
11
|
+
|
|
12
|
+
@interface MoEReactNativeCardsHandler : NSObject
|
|
13
|
+
+(instancetype)sharedInstance;
|
|
14
|
+
|
|
15
|
+
@property (nonatomic, weak) RCTEventEmitter *eventEmitter;
|
|
16
|
+
|
|
17
|
+
-(void)initialize:(NSString*)payload;
|
|
18
|
+
|
|
19
|
+
-(void)isAllCategoryEnabled:(NSString *) payload resolve:(RCTPromiseResolveBlock) resolve reject:(RCTPromiseRejectBlock)reject;
|
|
20
|
+
-(void)getCardsCategories:(NSString *) payload resolve:(RCTPromiseResolveBlock) resolve reject:(RCTPromiseRejectBlock)reject;
|
|
21
|
+
-(void)getCardsInfo:(NSString *) payload resolve:(RCTPromiseResolveBlock) resolve reject:(RCTPromiseRejectBlock)reject;
|
|
22
|
+
-(void)getCardsForCategory:(NSString *) payload resolve:(RCTPromiseResolveBlock) resolve reject:(RCTPromiseRejectBlock)reject;
|
|
23
|
+
-(void)fetchCards:(NSString *) payload resolve:(RCTPromiseResolveBlock) resolve reject:(RCTPromiseRejectBlock)reject;
|
|
24
|
+
-(void)getNewCardsCount:(NSString *) payload resolve:(RCTPromiseResolveBlock) resolve reject:(RCTPromiseRejectBlock)reject;
|
|
25
|
+
-(void)getUnClickedCardsCount:(NSString *) payload resolve:(RCTPromiseResolveBlock) resolve reject:(RCTPromiseRejectBlock)reject;
|
|
26
|
+
|
|
27
|
+
-(void)refreshCards:(NSString *) payload;
|
|
28
|
+
-(void)onCardSectionLoaded:(NSString *) payload;
|
|
29
|
+
-(void)onCardSectionUnLoaded:(NSString *) payload;
|
|
30
|
+
-(void)cardClicked:(NSString *) payload;
|
|
31
|
+
-(void)cardDelivered:(NSString *) payload;
|
|
32
|
+
-(void)cardShown:(NSString *) payload;
|
|
33
|
+
-(void)deleteCards:(NSString *) payload;
|
|
34
|
+
@end
|