@@ -338,13 +338,21 @@ public void setEmail(String email, String emailAuthToken, final Callback callbac
338338 OneSignal .setEmail (email , emailAuthToken , new EmailUpdateHandler () {
339339 @ Override
340340 public void onSuccess () {
341- callback .invoke ();
341+ Callback callbackCopy = callback ;
342+ if (callbackCopy != null ) {
343+ callbackCopy .invoke ();
344+ callbackCopy = null ;
345+ }
342346 }
343347
344348 @ Override
345349 public void onFailure (EmailUpdateError error ) {
346350 try {
347- callback .invoke (RNUtils .jsonToWritableMap (jsonFromErrorMessageString (error .getMessage ())));
351+ Callback callbackCopy = callback ;
352+ if (callbackCopy != null ) {
353+ callbackCopy .invoke (RNUtils .jsonToWritableMap (jsonFromErrorMessageString (error .getMessage ())));
354+ callbackCopy = null ;
355+ }
348356 } catch (JSONException exception ) {
349357 exception .printStackTrace ();
350358 }
@@ -357,13 +365,21 @@ public void logoutEmail(final Callback callback) {
357365 OneSignal .logoutEmail (new EmailUpdateHandler () {
358366 @ Override
359367 public void onSuccess () {
360- callback .invoke ();
368+ Callback callbackCopy = callback ;
369+ if (callbackCopy != null ) {
370+ callbackCopy .invoke ();
371+ callbackCopy = null ;
372+ }
361373 }
362374
363375 @ Override
364376 public void onFailure (EmailUpdateError error ) {
365377 try {
366- callback .invoke (RNUtils .jsonToWritableMap (jsonFromErrorMessageString (error .getMessage ())));
378+ Callback callbackCopy = callback ;
379+ if (callbackCopy != null ) {
380+ callbackCopy .invoke (RNUtils .jsonToWritableMap (jsonFromErrorMessageString (error .getMessage ())));
381+ callbackCopy = null ;
382+ }
367383 } catch (JSONException exception ) {
368384 exception .printStackTrace ();
369385 }
@@ -376,13 +392,21 @@ public void setSMSNumber(String smsNumber, String smsAuthToken, final Callback c
376392 OneSignal .setSMSNumber (smsNumber , smsAuthToken , new OneSignal .OSSMSUpdateHandler () {
377393 @ Override
378394 public void onSuccess (JSONObject result ) {
379- callback .invoke (RNUtils .jsonToWritableMap (result ));
395+ Callback callbackCopy = callback ;
396+ if (callbackCopy != null ) {
397+ callbackCopy .invoke (RNUtils .jsonToWritableMap (result ));
398+ callbackCopy = null ;
399+ }
380400 }
381401
382402 @ Override
383403 public void onFailure (OneSignal .OSSMSUpdateError error ) {
384404 try {
385- callback .invoke (RNUtils .jsonToWritableMap (jsonFromErrorMessageString (error .getMessage ())));
405+ Callback callbackCopy = callback ;
406+ if (callbackCopy != null ) {
407+ callbackCopy .invoke (RNUtils .jsonToWritableMap (jsonFromErrorMessageString (error .getMessage ())));
408+ callbackCopy = null ;
409+ }
386410 } catch (JSONException exception ) {
387411 exception .printStackTrace ();
388412 }
@@ -395,13 +419,21 @@ public void logoutSMSNumber(final Callback callback) {
395419 OneSignal .logoutSMSNumber (new OneSignal .OSSMSUpdateHandler () {
396420 @ Override
397421 public void onSuccess (JSONObject result ) {
398- callback .invoke (RNUtils .jsonToWritableMap (result ));
422+ Callback callbackCopy = callback ;
423+ if (callbackCopy != null ) {
424+ callbackCopy .invoke (RNUtils .jsonToWritableMap (result ));
425+ callbackCopy = null ;
426+ }
399427 }
400428
401429 @ Override
402430 public void onFailure (OneSignal .OSSMSUpdateError error ) {
403431 try {
404- callback .invoke (RNUtils .jsonToWritableMap (jsonFromErrorMessageString (error .getMessage ())));
432+ Callback callbackCopy = callback ;
433+ if (callbackCopy != null ) {
434+ callbackCopy .invoke (RNUtils .jsonToWritableMap (jsonFromErrorMessageString (error .getMessage ())));
435+ callbackCopy = null ;
436+ }
405437 } catch (JSONException exception ) {
406438 exception .printStackTrace ();
407439 }
@@ -491,14 +523,20 @@ public void setExternalUserId(final String externalId, final String authHashToke
491523 public void onSuccess (JSONObject results ) {
492524 Log .i ("OneSignal" , "Completed setting external user id: " + externalId + "with results: " + results .toString ());
493525
494- if (callback != null )
495- callback .invoke (RNUtils .jsonToWritableMap (results ));
526+ Callback callbackCopy = callback ;
527+ if (callbackCopy != null ) {
528+ callbackCopy .invoke (RNUtils .jsonToWritableMap (results ));
529+ callbackCopy = null ;
530+ }
496531 }
497532
498533 @ Override
499534 public void onFailure (OneSignal .ExternalIdError error ) {
500- if (callback != null )
501- callback .invoke (error .getMessage ());
535+ Callback callbackCopy = callback ;
536+ if (callbackCopy != null ) {
537+ callbackCopy .invoke (error .getMessage ());
538+ callbackCopy = null ;
539+ }
502540 }
503541 });
504542 }
@@ -510,14 +548,20 @@ public void removeExternalUserId(final Callback callback) {
510548 public void onSuccess (JSONObject results ) {
511549 Log .i ("OneSignal" , "Completed removing external user id with results: " + results .toString ());
512550
513- if (callback != null )
514- callback .invoke (RNUtils .jsonToWritableMap (results ));
551+ Callback callbackCopy = callback ;
552+ if (callbackCopy != null ) {
553+ callbackCopy .invoke (RNUtils .jsonToWritableMap (results ));
554+ callbackCopy = null ;
555+ }
515556 }
516557
517558 @ Override
518559 public void onFailure (OneSignal .ExternalIdError error ) {
519- if (callback != null )
520- callback .invoke (error .getMessage ());
560+ Callback callbackCopy = callback ;
561+ if (callbackCopy != null ) {
562+ callbackCopy .invoke (error .getMessage ());
563+ callbackCopy = null ;
564+ }
521565 }
522566 });
523567 }
@@ -636,7 +680,7 @@ public void inAppMessageClicked(OSInAppMessageAction result) {
636680 }
637681 this .sendEvent ("OneSignal-inAppMessageClicked" , RNUtils .jsonToWritableMap (result .toJSONObject ()));
638682 }
639-
683+
640684 /* in app message lifecycle */
641685
642686 @ ReactMethod
0 commit comments