Skip to content

Commit 3f3668e

Browse files
committed
refactor: streamline RNIterableAPIModule by utilizing a singleton instance of RNIterableAPIModuleImpl for API method calls
1 parent 0a050d8 commit 3f3668e

1 file changed

Lines changed: 50 additions & 42 deletions

File tree

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

3+
import androidx.annotation.NonNull;
4+
import androidx.annotation.Nullable;
5+
import com.facebook.react.bridge.Callback;
36
import com.facebook.react.bridge.NativeModule;
47
import com.facebook.react.bridge.Promise;
58
import com.facebook.react.bridge.ReactApplicationContext;
69
import com.facebook.react.bridge.ReactContext;
710
import com.facebook.react.bridge.ReactContextBaseJavaModule;
811
import com.facebook.react.bridge.ReactMethod;
12+
import com.facebook.react.bridge.ReadableArray;
13+
import com.facebook.react.bridge.ReadableMap;
914
import java.util.Map;
1015
import java.util.HashMap;
1116

1217
public class RNIterableAPIModule extends ReactContextBaseJavaModule {
1318
private final ReactApplicationContext reactContext;
19+
private static RNIterableAPIModuleImpl moduleImpl;
1420

1521
RNIterableAPIModule(ReactApplicationContext context) {
1622
super(context);
1723
this.reactContext = context;
24+
if (moduleImpl == null) {
25+
moduleImpl = new RNIterableAPIModuleImpl(reactContext);
26+
}
1827
}
1928

2029
@Override
@@ -24,206 +33,205 @@ public String getName() {
2433

2534
@ReactMethod
2635
public void initializeWithApiKey(String apiKey, ReadableMap configReadableMap, String version, Promise promise) {
27-
RNIterableAPIModuleImpl.initializeWithApiKey(apiKey, configReadableMap, version, promise);
36+
moduleImpl.initializeWithApiKey(apiKey, configReadableMap, version, promise);
2837
}
2938

3039
@ReactMethod
3140
public void initialize2WithApiKey(String apiKey, ReadableMap configReadableMap, String apiEndPointOverride, String version, Promise promise) {
32-
RNIterableAPIModuleImpl.initialize2WithApiKey(apiKey, configReadableMap, apiEndPointOverride, version, promise);
41+
moduleImpl.initialize2WithApiKey(apiKey, configReadableMap, apiEndPointOverride, version, promise);
3342
}
3443

3544
@ReactMethod
3645
public void setEmail(@Nullable String email, @Nullable String authToken) {
37-
RNIterableAPIModuleImpl.setEmail(email, authToken);
46+
moduleImpl.setEmail(email, authToken);
3847
}
3948

4049
@ReactMethod
4150
public void updateEmail(String email, @Nullable String authToken) {
42-
RNIterableAPIModuleImpl.updateEmail(email, authToken);
51+
moduleImpl.updateEmail(email, authToken);
4352
}
4453

4554
@ReactMethod
4655
public void getEmail(Promise promise) {
47-
RNIterableAPIModuleImpl.getEmail(promise);
56+
moduleImpl.getEmail(promise);
4857
}
4958

5059
@ReactMethod
5160
public void sampleMethod(String stringArgument, int numberArgument, Callback callback) {
52-
RNIterableAPIModuleImpl.sampleMethod(stringArgument, numberArgument, callback);
61+
moduleImpl.sampleMethod(stringArgument, numberArgument, callback);
5362
}
5463

5564
@ReactMethod
5665
public void setUserId(@Nullable String userId, @Nullable String authToken) {
57-
RNIterableAPIModuleImpl.setUserId(userId, authToken);
66+
moduleImpl.setUserId(userId, authToken);
5867
}
5968

6069
@ReactMethod
6170
public void updateUser(ReadableMap dataFields, boolean mergeNestedObjects) {
62-
RNIterableAPIModuleImpl.updateUser(dataFields, mergeNestedObjects);
71+
moduleImpl.updateUser(dataFields, mergeNestedObjects);
6372
}
6473

6574
@ReactMethod
6675
public void getUserId(Promise promise) {
67-
RNIterableAPIModuleImpl.getUserId(promise);
76+
moduleImpl.getUserId(promise);
6877
}
6978

7079
@ReactMethod
7180
public void trackEvent(String name, ReadableMap dataFields) {
72-
RNIterableAPIModuleImpl.trackEvent(name, dataFields);
81+
moduleImpl.trackEvent(name, dataFields);
7382
}
7483

7584
@ReactMethod
7685
public void updateCart(ReadableArray items) {
77-
RNIterableAPIModuleImpl.updateCart(items);
86+
moduleImpl.updateCart(items);
7887
}
7988

8089
@ReactMethod
8190
public void trackPurchase(double total, ReadableArray items, ReadableMap dataFields) {
82-
RNIterableAPIModuleImpl.trackPurchase(total, items, dataFields);
91+
moduleImpl.trackPurchase(total, items, dataFields);
8392
}
8493

8594
@ReactMethod
8695
public void trackPushOpenWithCampaignId(double campaignId, Double templateId, String messageId, boolean appAlreadyRunning, ReadableMap dataFields) {
87-
RNIterableAPIModuleImpl.trackPushOpenWithCampaignId(campaignId, templateId, messageId, appAlreadyRunning, dataFields);
96+
moduleImpl.trackPushOpenWithCampaignId(campaignId, templateId, messageId, appAlreadyRunning, dataFields);
8897
}
8998

9099
@ReactMethod
91100
public void updateSubscriptions(ReadableArray emailListIds, ReadableArray unsubscribedChannelIds, ReadableArray unsubscribedMessageTypeIds, ReadableArray subscribedMessageTypeIds, double campaignId, double templateId) {
92-
RNIterableAPIModuleImpl.updateSubscriptions(emailListIds, unsubscribedChannelIds, unsubscribedMessageTypeIds, subscribedMessageTypeIds, campaignId, templateId);
101+
moduleImpl.updateSubscriptions(emailListIds, unsubscribedChannelIds, unsubscribedMessageTypeIds, subscribedMessageTypeIds, campaignId, templateId);
93102
}
94103

95104
@ReactMethod
96105
public void showMessage(String messageId, boolean consume, final Promise promise) {
97-
RNIterableAPIModuleImpl.showMessage(messageId, consume, promise);
106+
moduleImpl.showMessage(messageId, consume, promise);
98107
}
99108

100109
@ReactMethod
101110
public void setReadForMessage(String messageId, boolean read) {
102-
RNIterableAPIModuleImpl.setReadForMessage(messageId, read);
111+
moduleImpl.setReadForMessage(messageId, read);
103112
}
104113

105114
@ReactMethod
106115
public void removeMessage(String messageId, double location, double deleteSource) {
107-
RNIterableAPIModuleImpl.removeMessage(messageId, location, deleteSource);
116+
moduleImpl.removeMessage(messageId, location, deleteSource);
108117
}
109118

110119
@ReactMethod
111120
public void getHtmlInAppContentForMessage(String messageId, final Promise promise) {
112-
RNIterableAPIModuleImpl.getHtmlInAppContentForMessage(messageId, promise);
121+
moduleImpl.getHtmlInAppContentForMessage(messageId, promise);
113122
}
114123

115124
@ReactMethod
116125
public void getAttributionInfo(Promise promise) {
117-
RNIterableAPIModuleImpl.getAttributionInfo(promise);
126+
moduleImpl.getAttributionInfo(promise);
118127
}
119128

120129
@ReactMethod
121130
public void setAttributionInfo(ReadableMap attributionInfoReadableMap) {
122-
RNIterableAPIModuleImpl.setAttributionInfo(attributionInfoReadableMap);
131+
moduleImpl.setAttributionInfo(attributionInfoReadableMap);
123132
}
124133

125134
@ReactMethod
126135
public void getLastPushPayload(Promise promise) {
127-
RNIterableAPIModuleImpl.getLastPushPayload(promise);
136+
moduleImpl.getLastPushPayload(promise);
128137
}
129138

130139
@ReactMethod
131140
public void disableDeviceForCurrentUser() {
132-
RNIterableAPIModuleImpl.disableDeviceForCurrentUser();
141+
moduleImpl.disableDeviceForCurrentUser();
133142
}
134143

135144
@ReactMethod
136145
public void handleAppLink(String uri, Promise promise) {
137-
RNIterableAPIModuleImpl.handleAppLink(uri, promise);
146+
moduleImpl.handleAppLink(uri, promise);
138147
}
139148

140149
@ReactMethod
141150
public void trackInAppOpen(String messageId, double location) {
142-
RNIterableAPIModuleImpl.trackInAppOpen(messageId, location);
151+
moduleImpl.trackInAppOpen(messageId, location);
143152
}
144153

145154
@ReactMethod
146155
public void trackInAppClick(String messageId, double location, String clickedUrl) {
147-
RNIterableAPIModuleImpl.trackInAppClick(messageId, location, clickedUrl);
156+
moduleImpl.trackInAppClick(messageId, location, clickedUrl);
148157
}
149158

150159
@ReactMethod
151160
public void trackInAppClose(String messageId, double location, double source, @Nullable String clickedUrl) {
152-
RNIterableAPIModuleImpl.trackInAppClose(messageId, location, source, clickedUrl);
161+
moduleImpl.trackInAppClose(messageId, location, source, clickedUrl);
153162
}
154163

155164
@ReactMethod
156165
public void inAppConsume(String messageId, double location, double source) {
157-
RNIterableAPIModuleImpl.inAppConsume(messageId, location, source);
166+
moduleImpl.inAppConsume(messageId, location, source);
158167
}
159168

160169
@ReactMethod
161170
public void getInAppMessages(Promise promise) {
162-
RNIterableAPIModuleImpl.getInAppMessages(promise);
171+
moduleImpl.getInAppMessages(promise);
163172
}
164173

165174
@ReactMethod
166175
public void getInboxMessages(Promise promise) {
167-
RNIterableAPIModuleImpl.getInboxMessages(promise);
176+
moduleImpl.getInboxMessages(promise);
168177
}
169178

170179
@ReactMethod
171180
public void getUnreadInboxMessagesCount(Promise promise) {
172-
RNIterableAPIModuleImpl.getUnreadInboxMessagesCount(promise);
181+
moduleImpl.getUnreadInboxMessagesCount(promise);
173182
}
174183

175184
@ReactMethod
176185
public void setInAppShowResponse(double number) {
177-
RNIterableAPIModuleImpl.setInAppShowResponse(number);
186+
moduleImpl.setInAppShowResponse(number);
178187
}
179188

180189
@ReactMethod
181190
public void setAutoDisplayPaused(final boolean paused) {
182-
RNIterableAPIModuleImpl.setAutoDisplayPaused(paused);
191+
moduleImpl.setAutoDisplayPaused(paused);
183192
}
184193

185194
@ReactMethod
186195
public void wakeApp() {
187-
RNIterableAPIModuleImpl.wakeApp();
196+
moduleImpl.wakeApp();
188197
}
189198

190199
@ReactMethod
191200
public void startSession(ReadableArray visibleRows) {
192-
RNIterableAPIModuleImpl.startSession(visibleRows);
201+
moduleImpl.startSession(visibleRows);
193202
}
194203

195204
@ReactMethod
196205
public void endSession() {
197-
RNIterableAPIModuleImpl.endSession();
206+
moduleImpl.endSession();
198207
}
199208

200209
@ReactMethod
201210
public void updateVisibleRows(ReadableArray visibleRows) {
202-
RNIterableAPIModuleImpl.updateVisibleRows(visibleRows);
211+
moduleImpl.updateVisibleRows(visibleRows);
203212
}
204213

205214
@ReactMethod
206215
public void addListener(String eventName) {
207-
RNIterableAPIModuleImpl.addListener(eventName);
216+
moduleImpl.addListener(eventName);
208217
}
209218

210219
@ReactMethod
211220
public void removeListeners(double count) {
212-
RNIterableAPIModuleImpl.removeListeners(count);
221+
moduleImpl.removeListeners(count);
213222
}
214223

215224
@ReactMethod
216225
public void passAlongAuthToken(String authToken) {
217-
RNIterableAPIModuleImpl.passAlongAuthToken(authToken);
226+
moduleImpl.passAlongAuthToken(authToken);
218227
}
219228

220229
@ReactMethod
221230
public void sendEvent(@NonNull String eventName, @Nullable Object eventData) {
222-
RNIterableAPIModuleImpl.sendEvent(eventName, eventData);
231+
moduleImpl.sendEvent(eventName, eventData);
223232
}
224233

225-
@Override
226234
public void onInboxUpdated() {
227-
RNIterableAPIModuleImpl.onInboxUpdated();
235+
moduleImpl.onInboxUpdated();
228236
}
229237
}

0 commit comments

Comments
 (0)