Skip to content

Commit d00e31d

Browse files
committed
refactor: split packages between old and new architecture
1 parent 1086a77 commit d00e31d

3 files changed

Lines changed: 270 additions & 12 deletions

File tree

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

Lines changed: 34 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,49 @@
33
import java.util.ArrayList;
44
import java.util.Arrays;
55
import java.util.Collections;
6+
import java.util.HashMap;
67
import java.util.List;
8+
import java.util.Map;
79

8-
import com.facebook.react.ReactPackage;
10+
import androidx.annotation.Nullable;
11+
import com.facebook.react.bridge.JavaScriptModule; // TODO: instructrions says to remove
912
import com.facebook.react.bridge.NativeModule;
1013
import com.facebook.react.bridge.ReactApplicationContext;
14+
import com.facebook.react.module.model.ReactModuleInfo;
15+
import com.facebook.react.module.model.ReactModuleInfoProvider;
16+
import com.facebook.react.ReactPackage; // TODO: instructrions says to remove
17+
import com.facebook.react.TurboReactPackage;
1118
import com.facebook.react.uimanager.ViewManager;
12-
import com.facebook.react.bridge.JavaScriptModule;
1319

14-
public class RNIterableAPIPackage implements ReactPackage {
15-
@Override
16-
public List<NativeModule> createNativeModules(
17-
ReactApplicationContext reactContext) {
18-
List<NativeModule> modules = new ArrayList<>();
19-
20-
modules.add(new RNIterableAPIModule(reactContext));
2120

22-
return modules;
21+
public class RNIterableAPIPackage extends TurboReactPackage {
22+
@Nullable
23+
@Override
24+
public NativeModule getModule(String name, ReactApplicationContext reactContext) {
25+
if (name.equals(RNIterableAPIModuleImpl.NAME)) {
26+
return new RNIterableAPIModule(reactContext);
27+
} else {
28+
return null;
29+
}
2330
}
2431

2532
@Override
26-
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
27-
return Collections.emptyList();
33+
public ReactModuleInfoProvider getReactModuleInfoProvider() {
34+
return () -> {
35+
final Map<String, ReactModuleInfo> moduleInfos = new HashMap<>();
36+
boolean isTurboModule = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
37+
moduleInfos.put(
38+
RNIterableAPIModuleImpl.NAME,
39+
new ReactModuleInfo(
40+
RNIterableAPIModuleImpl.NAME,
41+
RNIterableAPIModuleImpl.NAME,
42+
false, // canOverrideExistingModule
43+
false, // needsEagerInit
44+
true, // hasConstants
45+
false, // isCxxModule
46+
isTurboModule // isTurboModule
47+
));
48+
return moduleInfos;
49+
};
2850
}
2951
}
Lines changed: 236 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,236 @@
1+
package com.iterable.reactnative;
2+
3+
import androidx.annotation.NonNull;
4+
import androidx.annotation.Nullable;
5+
import com.facebook.react.bridge.Callback;
6+
import com.facebook.react.bridge.NativeModule;
7+
import com.facebook.react.bridge.Promise;
8+
import com.facebook.react.bridge.ReactApplicationContext;
9+
import com.facebook.react.bridge.ReactContext;
10+
import com.facebook.react.bridge.ReactContextBaseJavaModule;
11+
import com.facebook.react.bridge.ReactMethod;
12+
import com.facebook.react.bridge.ReadableArray;
13+
import com.facebook.react.bridge.ReadableMap;
14+
import java.util.Map;
15+
import java.util.HashMap;
16+
17+
public class RNIterableAPIModule extends NativeRNIterableAPISpec {
18+
private final ReactApplicationContext reactContext;
19+
private static RNIterableAPIModuleImpl moduleImpl;
20+
21+
RNIterableAPIModule(ReactApplicationContext context) {
22+
super(context);
23+
this.reactContext = context;
24+
if (moduleImpl == null) {
25+
moduleImpl = new RNIterableAPIModuleImpl(reactContext);
26+
}
27+
}
28+
29+
@Override
30+
@NonNull
31+
public String getName() {
32+
return RNIterableAPIModuleImpl.NAME;
33+
}
34+
35+
@Override
36+
public void initializeWithApiKey(String apiKey, ReadableMap configReadableMap, String version, Promise promise) {
37+
moduleImpl.initializeWithApiKey(apiKey, configReadableMap, version, promise);
38+
}
39+
40+
@Override
41+
public void initialize2WithApiKey(String apiKey, ReadableMap configReadableMap, String apiEndPointOverride, String version, Promise promise) {
42+
moduleImpl.initialize2WithApiKey(apiKey, configReadableMap, apiEndPointOverride, version, promise);
43+
}
44+
45+
@Override
46+
public void setEmail(@Nullable String email, @Nullable String authToken) {
47+
moduleImpl.setEmail(email, authToken);
48+
}
49+
50+
@Override
51+
public void updateEmail(String email, @Nullable String authToken) {
52+
moduleImpl.updateEmail(email, authToken);
53+
}
54+
55+
@Override
56+
public void getEmail(Promise promise) {
57+
moduleImpl.getEmail(promise);
58+
}
59+
60+
public void sampleMethod(String stringArgument, int numberArgument, Callback callback) {
61+
moduleImpl.sampleMethod(stringArgument, numberArgument, callback);
62+
}
63+
64+
@Override
65+
public void setUserId(@Nullable String userId, @Nullable String authToken) {
66+
moduleImpl.setUserId(userId, authToken);
67+
}
68+
69+
@Override
70+
public void updateUser(ReadableMap dataFields, boolean mergeNestedObjects) {
71+
moduleImpl.updateUser(dataFields, mergeNestedObjects);
72+
}
73+
74+
@Override
75+
public void getUserId(Promise promise) {
76+
moduleImpl.getUserId(promise);
77+
}
78+
79+
@Override
80+
public void trackEvent(String name, ReadableMap dataFields) {
81+
moduleImpl.trackEvent(name, dataFields);
82+
}
83+
84+
@Override
85+
public void updateCart(ReadableArray items) {
86+
moduleImpl.updateCart(items);
87+
}
88+
89+
@Override
90+
public void trackPurchase(double total, ReadableArray items, ReadableMap dataFields) {
91+
moduleImpl.trackPurchase(total, items, dataFields);
92+
}
93+
94+
@Override
95+
public void trackPushOpenWithCampaignId(double campaignId, Double templateId, String messageId, boolean appAlreadyRunning, ReadableMap dataFields) {
96+
moduleImpl.trackPushOpenWithCampaignId(campaignId, templateId, messageId, appAlreadyRunning, dataFields);
97+
}
98+
99+
@Override
100+
public void updateSubscriptions(ReadableArray emailListIds, ReadableArray unsubscribedChannelIds, ReadableArray unsubscribedMessageTypeIds, ReadableArray subscribedMessageTypeIds, double campaignId, double templateId) {
101+
moduleImpl.updateSubscriptions(emailListIds, unsubscribedChannelIds, unsubscribedMessageTypeIds, subscribedMessageTypeIds, campaignId, templateId);
102+
}
103+
104+
@Override
105+
public void showMessage(String messageId, boolean consume, final Promise promise) {
106+
moduleImpl.showMessage(messageId, consume, promise);
107+
}
108+
109+
@Override
110+
public void setReadForMessage(String messageId, boolean read) {
111+
moduleImpl.setReadForMessage(messageId, read);
112+
}
113+
114+
@Override
115+
public void removeMessage(String messageId, double location, double deleteSource) {
116+
moduleImpl.removeMessage(messageId, location, deleteSource);
117+
}
118+
119+
@Override
120+
public void getHtmlInAppContentForMessage(String messageId, final Promise promise) {
121+
moduleImpl.getHtmlInAppContentForMessage(messageId, promise);
122+
}
123+
124+
@Override
125+
public void getAttributionInfo(Promise promise) {
126+
moduleImpl.getAttributionInfo(promise);
127+
}
128+
129+
@Override
130+
public void setAttributionInfo(ReadableMap attributionInfoReadableMap) {
131+
moduleImpl.setAttributionInfo(attributionInfoReadableMap);
132+
}
133+
134+
@Override
135+
public void getLastPushPayload(Promise promise) {
136+
moduleImpl.getLastPushPayload(promise);
137+
}
138+
139+
@Override
140+
public void disableDeviceForCurrentUser() {
141+
moduleImpl.disableDeviceForCurrentUser();
142+
}
143+
144+
@Override
145+
public void handleAppLink(String uri, Promise promise) {
146+
moduleImpl.handleAppLink(uri, promise);
147+
}
148+
149+
@Override
150+
public void trackInAppOpen(String messageId, double location) {
151+
moduleImpl.trackInAppOpen(messageId, location);
152+
}
153+
154+
@Override
155+
public void trackInAppClick(String messageId, double location, String clickedUrl) {
156+
moduleImpl.trackInAppClick(messageId, location, clickedUrl);
157+
}
158+
159+
@Override
160+
public void trackInAppClose(String messageId, double location, double source, @Nullable String clickedUrl) {
161+
moduleImpl.trackInAppClose(messageId, location, source, clickedUrl);
162+
}
163+
164+
@Override
165+
public void inAppConsume(String messageId, double location, double source) {
166+
moduleImpl.inAppConsume(messageId, location, source);
167+
}
168+
169+
@Override
170+
public void getInAppMessages(Promise promise) {
171+
moduleImpl.getInAppMessages(promise);
172+
}
173+
174+
@Override
175+
public void getInboxMessages(Promise promise) {
176+
moduleImpl.getInboxMessages(promise);
177+
}
178+
179+
@Override
180+
public void getUnreadInboxMessagesCount(Promise promise) {
181+
moduleImpl.getUnreadInboxMessagesCount(promise);
182+
}
183+
184+
@Override
185+
public void setInAppShowResponse(double number) {
186+
moduleImpl.setInAppShowResponse(number);
187+
}
188+
189+
@Override
190+
public void setAutoDisplayPaused(final boolean paused) {
191+
moduleImpl.setAutoDisplayPaused(paused);
192+
}
193+
194+
@Override
195+
public void wakeApp() {
196+
moduleImpl.wakeApp();
197+
}
198+
199+
@Override
200+
public void startSession(ReadableArray visibleRows) {
201+
moduleImpl.startSession(visibleRows);
202+
}
203+
204+
@Override
205+
public void endSession() {
206+
moduleImpl.endSession();
207+
}
208+
209+
@Override
210+
public void updateVisibleRows(ReadableArray visibleRows) {
211+
moduleImpl.updateVisibleRows(visibleRows);
212+
}
213+
214+
@Override
215+
public void addListener(String eventName) {
216+
moduleImpl.addListener(eventName);
217+
}
218+
219+
@Override
220+
public void removeListeners(double count) {
221+
moduleImpl.removeListeners(count);
222+
}
223+
224+
@Override
225+
public void passAlongAuthToken(String authToken) {
226+
moduleImpl.passAlongAuthToken(authToken);
227+
}
228+
229+
public void sendEvent(@NonNull String eventName, @Nullable Object eventData) {
230+
moduleImpl.sendEvent(eventName, eventData);
231+
}
232+
233+
public void onInboxUpdated() {
234+
moduleImpl.onInboxUpdated();
235+
}
236+
}

android/src/main/java/com/iterable/reactnative/RNIterableAPIModule.java renamed to android/src/oldarch/java/com/reactnative/RNIterableAPIModule.java

File renamed without changes.

0 commit comments

Comments
 (0)