Skip to content

Commit f41c211

Browse files
authored
Merge pull request #548 from geektimecoil/get_tags_sync
Fix GetTags Sync Crash
2 parents 3772950 + 9b2674c commit f41c211

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

android/src/main/java/com/geektime/rnonesignalandroid/RNOneSignal.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ public class RNOneSignal extends ReactContextBaseJavaModule implements Lifecycle
5050
private boolean oneSignalInitDone;
5151
private static boolean registeredEvents = false;
5252

53+
//ensure only one callback exists at a given time due to react-native restriction
54+
private Callback pendingGetTagsCallback;
55+
5356
public RNOneSignal(ReactApplicationContext reactContext) {
5457
super(reactContext);
5558
mReactApplicationContext = reactContext;
@@ -142,10 +145,16 @@ public void sendTags(ReadableMap tags) {
142145

143146
@ReactMethod
144147
public void getTags(final Callback callback) {
148+
if (pendingGetTagsCallback == null)
149+
pendingGetTagsCallback = callback;
150+
145151
OneSignal.getTags(new OneSignal.GetTagsHandler() {
146152
@Override
147153
public void tagsAvailable(JSONObject tags) {
148-
callback.invoke(RNUtils.jsonToWritableMap(tags));
154+
if (pendingGetTagsCallback != null)
155+
pendingGetTagsCallback.invoke(RNUtils.jsonToWritableMap(tags));
156+
157+
pendingGetTagsCallback = null;
149158
}
150159
});
151160
}

0 commit comments

Comments
 (0)