Skip to content

Commit 8e6cdf1

Browse files
committed
refactor: enhance RNIterableAPIModule implementation by integrating RNIterableAPIModuleImpl for improved modularity and API method handling
1 parent ced2234 commit 8e6cdf1

2 files changed

Lines changed: 58 additions & 52 deletions

File tree

android/src/main/java/com/iterable/reactnative/RNIterableAPIModuleImpl.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import com.facebook.react.bridge.Promise;
1212
import com.facebook.react.bridge.Arguments;
1313
import com.facebook.react.bridge.Callback;
14-
import com.facebook.react.bridge.Promise;
1514
import com.facebook.react.bridge.ReactApplicationContext;
1615
import com.facebook.react.bridge.ReactContextBaseJavaModule;
1716
import com.facebook.react.bridge.ReactMethod;
@@ -43,16 +42,21 @@
4342
import com.iterable.iterableapi.RNIterableInternal;
4443
import com.iterable.reactnative.Serialization;
4544

45+
import org.json.JSONArray;
46+
import org.json.JSONException;
47+
import org.json.JSONObject;
48+
4649
import java.util.Map;
4750
import java.util.HashMap;
4851
import java.util.List;
4952
import java.util.concurrent.CountDownLatch;
5053
import java.util.concurrent.TimeUnit;
5154

52-
public class RNIterableAPIModuleImpl {
55+
public class RNIterableAPIModuleImpl implements IterableUrlHandler, IterableCustomActionHandler, IterableInAppHandler, IterableAuthHandler, IterableInAppManager.Listener {
5356
public static final String NAME = "RNIterableAPI";
5457

5558
private static String TAG = "RNIterableAPIModule";
59+
private final ReactApplicationContext reactContext;
5660

5761
private IterableInAppHandler.InAppResponse inAppResponse = IterableInAppHandler.InAppResponse.SHOW;
5862

@@ -64,6 +68,9 @@ public class RNIterableAPIModuleImpl {
6468

6569
private final InboxSessionManager sessionManager = new InboxSessionManager();
6670

71+
public RNIterableAPIModuleImpl(ReactApplicationContext reactContext) {
72+
this.reactContext = reactContext;
73+
}
6774

6875
public void initializeWithApiKey(String apiKey, ReadableMap configReadableMap, String version, Promise promise) {
6976
IterableLogger.d(TAG, "initializeWithApiKey: " + apiKey);
@@ -592,12 +599,6 @@ public void removeListeners(double count) {
592599
// Keep: Required for RN built in Event Emitter Calls.
593600
}
594601

595-
// ---------------------------------------------------------------------------------------
596-
// endregion
597-
598-
// ---------------------------------------------------------------------------------------
599-
// region Misc Bridge Functions
600-
601602
public void passAlongAuthToken(String authToken) {
602603
passedAuthToken = authToken;
603604

Lines changed: 49 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,29 @@
11
package com.iterable.reactnative;
22

33
import androidx.annotation.NonNull;
4+
import androidx.annotation.Nullable;
5+
import com.facebook.react.bridge.Callback;
46
import com.facebook.react.bridge.NativeModule;
57
import com.facebook.react.bridge.Promise;
68
import com.facebook.react.bridge.ReactApplicationContext;
79
import com.facebook.react.bridge.ReactContext;
810
import com.facebook.react.bridge.ReactContextBaseJavaModule;
911
import com.facebook.react.bridge.ReactMethod;
12+
import com.facebook.react.bridge.ReadableArray;
13+
import com.facebook.react.bridge.ReadableMap;
1014
import java.util.Map;
1115
import java.util.HashMap;
1216

1317
public class RNIterableAPIModule extends NativeRNIterableAPISpec {
1418
private final ReactApplicationContext reactContext;
19+
private static RNIterableAPIModuleImpl moduleImpl;
1520

1621
RNIterableAPIModule(ReactApplicationContext context) {
1722
super(context);
1823
this.reactContext = context;
24+
if (moduleImpl == null) {
25+
moduleImpl = new RNIterableAPIModuleImpl(reactContext);
26+
}
1927
}
2028

2129
@Override
@@ -26,206 +34,203 @@ public String getName() {
2634

2735
@Override
2836
public void initializeWithApiKey(String apiKey, ReadableMap configReadableMap, String version, Promise promise) {
29-
RNIterableAPIModuleImpl.initializeWithApiKey(apiKey, configReadableMap, version, promise);
37+
moduleImpl.initializeWithApiKey(apiKey, configReadableMap, version, promise);
3038
}
3139

3240
@Override
3341
public void initialize2WithApiKey(String apiKey, ReadableMap configReadableMap, String apiEndPointOverride, String version, Promise promise) {
34-
RNIterableAPIModuleImpl.initialize2WithApiKey(apiKey, configReadableMap, apiEndPointOverride, version, promise);
42+
moduleImpl.initialize2WithApiKey(apiKey, configReadableMap, apiEndPointOverride, version, promise);
3543
}
3644

3745
@Override
3846
public void setEmail(@Nullable String email, @Nullable String authToken) {
39-
RNIterableAPIModuleImpl.setEmail(email, authToken);
47+
moduleImpl.setEmail(email, authToken);
4048
}
4149

4250
@Override
4351
public void updateEmail(String email, @Nullable String authToken) {
44-
RNIterableAPIModuleImpl.updateEmail(email, authToken);
52+
moduleImpl.updateEmail(email, authToken);
4553
}
4654

4755
@Override
4856
public void getEmail(Promise promise) {
49-
RNIterableAPIModuleImpl.getEmail(promise);
57+
moduleImpl.getEmail(promise);
5058
}
5159

52-
@Override
5360
public void sampleMethod(String stringArgument, int numberArgument, Callback callback) {
54-
RNIterableAPIModuleImpl.sampleMethod(stringArgument, numberArgument, callback);
61+
moduleImpl.sampleMethod(stringArgument, numberArgument, callback);
5562
}
5663

5764
@Override
5865
public void setUserId(@Nullable String userId, @Nullable String authToken) {
59-
RNIterableAPIModuleImpl.setUserId(userId, authToken);
66+
moduleImpl.setUserId(userId, authToken);
6067
}
6168

6269
@Override
6370
public void updateUser(ReadableMap dataFields, boolean mergeNestedObjects) {
64-
RNIterableAPIModuleImpl.updateUser(dataFields, mergeNestedObjects);
71+
moduleImpl.updateUser(dataFields, mergeNestedObjects);
6572
}
6673

6774
@Override
6875
public void getUserId(Promise promise) {
69-
RNIterableAPIModuleImpl.getUserId(promise);
76+
moduleImpl.getUserId(promise);
7077
}
7178

7279
@Override
7380
public void trackEvent(String name, ReadableMap dataFields) {
74-
RNIterableAPIModuleImpl.trackEvent(name, dataFields);
81+
moduleImpl.trackEvent(name, dataFields);
7582
}
7683

7784
@Override
7885
public void updateCart(ReadableArray items) {
79-
RNIterableAPIModuleImpl.updateCart(items);
86+
moduleImpl.updateCart(items);
8087
}
8188

8289
@Override
8390
public void trackPurchase(double total, ReadableArray items, ReadableMap dataFields) {
84-
RNIterableAPIModuleImpl.trackPurchase(total, items, dataFields);
91+
moduleImpl.trackPurchase(total, items, dataFields);
8592
}
8693

8794
@Override
8895
public void trackPushOpenWithCampaignId(double campaignId, Double templateId, String messageId, boolean appAlreadyRunning, ReadableMap dataFields) {
89-
RNIterableAPIModuleImpl.trackPushOpenWithCampaignId(campaignId, templateId, messageId, appAlreadyRunning, dataFields);
96+
moduleImpl.trackPushOpenWithCampaignId(campaignId, templateId, messageId, appAlreadyRunning, dataFields);
9097
}
9198

9299
@Override
93100
public void updateSubscriptions(ReadableArray emailListIds, ReadableArray unsubscribedChannelIds, ReadableArray unsubscribedMessageTypeIds, ReadableArray subscribedMessageTypeIds, double campaignId, double templateId) {
94-
RNIterableAPIModuleImpl.updateSubscriptions(emailListIds, unsubscribedChannelIds, unsubscribedMessageTypeIds, subscribedMessageTypeIds, campaignId, templateId);
101+
moduleImpl.updateSubscriptions(emailListIds, unsubscribedChannelIds, unsubscribedMessageTypeIds, subscribedMessageTypeIds, campaignId, templateId);
95102
}
96103

97104
@Override
98105
public void showMessage(String messageId, boolean consume, final Promise promise) {
99-
RNIterableAPIModuleImpl.showMessage(messageId, consume, promise);
106+
moduleImpl.showMessage(messageId, consume, promise);
100107
}
101108

102109
@Override
103110
public void setReadForMessage(String messageId, boolean read) {
104-
RNIterableAPIModuleImpl.setReadForMessage(messageId, read);
111+
moduleImpl.setReadForMessage(messageId, read);
105112
}
106113

107114
@Override
108115
public void removeMessage(String messageId, double location, double deleteSource) {
109-
RNIterableAPIModuleImpl.removeMessage(messageId, location, deleteSource);
116+
moduleImpl.removeMessage(messageId, location, deleteSource);
110117
}
111118

112119
@Override
113120
public void getHtmlInAppContentForMessage(String messageId, final Promise promise) {
114-
RNIterableAPIModuleImpl.getHtmlInAppContentForMessage(messageId, promise);
121+
moduleImpl.getHtmlInAppContentForMessage(messageId, promise);
115122
}
116123

117124
@Override
118125
public void getAttributionInfo(Promise promise) {
119-
RNIterableAPIModuleImpl.getAttributionInfo(promise);
126+
moduleImpl.getAttributionInfo(promise);
120127
}
121128

122129
@Override
123130
public void setAttributionInfo(ReadableMap attributionInfoReadableMap) {
124-
RNIterableAPIModuleImpl.setAttributionInfo(attributionInfoReadableMap);
131+
moduleImpl.setAttributionInfo(attributionInfoReadableMap);
125132
}
126133

127134
@Override
128135
public void getLastPushPayload(Promise promise) {
129-
RNIterableAPIModuleImpl.getLastPushPayload(promise);
136+
moduleImpl.getLastPushPayload(promise);
130137
}
131138

132139
@Override
133140
public void disableDeviceForCurrentUser() {
134-
RNIterableAPIModuleImpl.disableDeviceForCurrentUser();
141+
moduleImpl.disableDeviceForCurrentUser();
135142
}
136143

137144
@Override
138145
public void handleAppLink(String uri, Promise promise) {
139-
RNIterableAPIModuleImpl.handleAppLink(uri, promise);
146+
moduleImpl.handleAppLink(uri, promise);
140147
}
141148

142149
@Override
143150
public void trackInAppOpen(String messageId, double location) {
144-
RNIterableAPIModuleImpl.trackInAppOpen(messageId, location);
151+
moduleImpl.trackInAppOpen(messageId, location);
145152
}
146153

147154
@Override
148155
public void trackInAppClick(String messageId, double location, String clickedUrl) {
149-
RNIterableAPIModuleImpl.trackInAppClick(messageId, location, clickedUrl);
156+
moduleImpl.trackInAppClick(messageId, location, clickedUrl);
150157
}
151158

152159
@Override
153160
public void trackInAppClose(String messageId, double location, double source, @Nullable String clickedUrl) {
154-
RNIterableAPIModuleImpl.trackInAppClose(messageId, location, source, clickedUrl);
161+
moduleImpl.trackInAppClose(messageId, location, source, clickedUrl);
155162
}
156163

157164
@Override
158165
public void inAppConsume(String messageId, double location, double source) {
159-
RNIterableAPIModuleImpl.inAppConsume(messageId, location, source);
166+
moduleImpl.inAppConsume(messageId, location, source);
160167
}
161168

162169
@Override
163170
public void getInAppMessages(Promise promise) {
164-
RNIterableAPIModuleImpl.getInAppMessages(promise);
171+
moduleImpl.getInAppMessages(promise);
165172
}
166173

167174
@Override
168175
public void getInboxMessages(Promise promise) {
169-
RNIterableAPIModuleImpl.getInboxMessages(promise);
176+
moduleImpl.getInboxMessages(promise);
170177
}
171178

172179
@Override
173180
public void getUnreadInboxMessagesCount(Promise promise) {
174-
RNIterableAPIModuleImpl.getUnreadInboxMessagesCount(promise);
181+
moduleImpl.getUnreadInboxMessagesCount(promise);
175182
}
176183

177184
@Override
178185
public void setInAppShowResponse(double number) {
179-
RNIterableAPIModuleImpl.setInAppShowResponse(number);
186+
moduleImpl.setInAppShowResponse(number);
180187
}
181188

182189
@Override
183190
public void setAutoDisplayPaused(final boolean paused) {
184-
RNIterableAPIModuleImpl.setAutoDisplayPaused(paused);
191+
moduleImpl.setAutoDisplayPaused(paused);
185192
}
186193

187194
@Override
188195
public void wakeApp() {
189-
RNIterableAPIModuleImpl.wakeApp();
196+
moduleImpl.wakeApp();
190197
}
191198

192199
@Override
193200
public void startSession(ReadableArray visibleRows) {
194-
RNIterableAPIModuleImpl.startSession(visibleRows);
201+
moduleImpl.startSession(visibleRows);
195202
}
196203

197204
@Override
198205
public void endSession() {
199-
RNIterableAPIModuleImpl.endSession();
206+
moduleImpl.endSession();
200207
}
201208

202209
@Override
203210
public void updateVisibleRows(ReadableArray visibleRows) {
204-
RNIterableAPIModuleImpl.updateVisibleRows(visibleRows);
211+
moduleImpl.updateVisibleRows(visibleRows);
205212
}
206213

207214
@Override
208215
public void addListener(String eventName) {
209-
RNIterableAPIModuleImpl.addListener(eventName);
216+
moduleImpl.addListener(eventName);
210217
}
211218

212219
@Override
213220
public void removeListeners(double count) {
214-
RNIterableAPIModuleImpl.removeListeners(count);
221+
moduleImpl.removeListeners(count);
215222
}
216223

217224
@Override
218225
public void passAlongAuthToken(String authToken) {
219-
RNIterableAPIModuleImpl.passAlongAuthToken(authToken);
226+
moduleImpl.passAlongAuthToken(authToken);
220227
}
221228

222-
@Override
223229
public void sendEvent(@NonNull String eventName, @Nullable Object eventData) {
224-
RNIterableAPIModuleImpl.sendEvent(eventName, eventData);
230+
moduleImpl.sendEvent(eventName, eventData);
225231
}
226232

227-
@Override
228233
public void onInboxUpdated() {
229-
RNIterableAPIModuleImpl.onInboxUpdated();
234+
moduleImpl.onInboxUpdated();
230235
}
231236
}

0 commit comments

Comments
 (0)