@@ -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