@@ -283,6 +283,14 @@ && checkKey(mapConfig, "isDataResidency")) {
283283 }
284284 }
285285
286+ // app set ID reading (Android only)
287+ if (checkKey (mapConfig , "isAppSetIdReadingEnabled" )) {
288+ boolean isAppSetIdReadingEnabled = mapConfig .getBoolean ("isAppSetIdReadingEnabled" );
289+ if (!isAppSetIdReadingEnabled ) {
290+ adjustConfig .disableAppSetIdReading ();
291+ }
292+ }
293+
286294 // store info
287295 if (checkKey (mapConfig , "storeInfo" )) {
288296 ReadableMap storeInfo = mapConfig .getMap ("storeInfo" );
@@ -603,9 +611,15 @@ public void processDeeplink(final ReadableMap mapDeeplink) {
603611 @ ReactMethod
604612 public void processAndResolveDeeplink (final ReadableMap mapDeeplink , final Callback callback ) {
605613 if (mapDeeplink == null ) {
614+ if (callback != null ) {
615+ callback .invoke ((String ) null );
616+ }
606617 return ;
607618 }
608619 if (!checkKey (mapDeeplink , "deeplink" )) {
620+ if (callback != null ) {
621+ callback .invoke ((String ) null );
622+ }
609623 return ;
610624 }
611625
@@ -622,11 +636,44 @@ public void processAndResolveDeeplink(final ReadableMap mapDeeplink, final Callb
622636 new OnDeeplinkResolvedListener () {
623637 @ Override
624638 public void onDeeplinkResolved (String resolvedLink ) {
625- callback .invoke (resolvedLink );
639+ if (callback != null ) {
640+ callback .invoke (resolvedLink );
641+ }
626642 }
627643 });
628644 }
629645
646+ @ ReactMethod
647+ public void resolveLinkWithUrl (final String url , final ReadableArray resolveUrlSuffixArray , final Callback callback ) {
648+ if (url == null ) {
649+ if (callback != null ) {
650+ callback .invoke ((String ) null );
651+ }
652+ return ;
653+ }
654+ String [] suffixArray = null ;
655+ if (resolveUrlSuffixArray != null && resolveUrlSuffixArray .size () > 0 ) {
656+ int n = resolveUrlSuffixArray .size ();
657+ suffixArray = new String [n ];
658+ for (int i = 0 ; i < n ; i ++) {
659+ suffixArray [i ] = resolveUrlSuffixArray .getString (i );
660+ }
661+ }
662+ com .adjust .sdk .AdjustLinkResolution .resolveLink (
663+ url ,
664+ suffixArray ,
665+ new com .adjust .sdk .AdjustLinkResolution .AdjustLinkResolutionCallback () {
666+ @ Override
667+ public void resolvedLinkCallback (Uri resolvedLink ) {
668+ if (callback != null ) {
669+ String resolvedUrl = resolvedLink != null ? resolvedLink .toString () : null ;
670+ callback .invoke (resolvedUrl );
671+ }
672+ }
673+ }
674+ );
675+ }
676+
630677 @ ReactMethod
631678 public void setPushToken (final String token ) {
632679 com .adjust .sdk .Adjust .setPushToken (token , getReactApplicationContext ());
@@ -714,7 +761,9 @@ public void isEnabled(final Callback callback) {
714761 new com .adjust .sdk .OnIsEnabledListener () {
715762 @ Override
716763 public void onIsEnabledRead (boolean isEnabled ) {
717- callback .invoke (isEnabled );
764+ if (callback != null ) {
765+ callback .invoke (isEnabled );
766+ }
718767 }
719768 });
720769 }
@@ -724,30 +773,104 @@ public void getAttribution(final Callback callback) {
724773 com .adjust .sdk .Adjust .getAttribution (new com .adjust .sdk .OnAttributionReadListener () {
725774 @ Override
726775 public void onAttributionRead (AdjustAttribution attribution ) {
727- callback .invoke (AdjustUtil .attributionToMap (attribution ));
776+ if (callback != null ) {
777+ callback .invoke (AdjustUtil .attributionToMap (attribution ));
778+ }
728779 }
729780 });
730781 }
731782
783+ @ ReactMethod
784+ public void getAttributionWithTimeout (final ReadableMap timeoutMap , final Callback callback ) {
785+ if (timeoutMap == null || !checkKey (timeoutMap , "timeoutInMilliseconds" )) {
786+ if (callback != null ) {
787+ callback .invoke ((WritableMap ) null );
788+ }
789+ return ;
790+ }
791+
792+ long timeoutInMilliseconds ;
793+ try {
794+ timeoutInMilliseconds = (long ) timeoutMap .getDouble ("timeoutInMilliseconds" );
795+ } catch (Exception e ) {
796+ if (callback != null ) {
797+ callback .invoke ((WritableMap ) null );
798+ }
799+ return ;
800+ }
801+
802+ com .adjust .sdk .Adjust .getAttributionWithTimeout (
803+ getReactApplicationContext (),
804+ timeoutInMilliseconds ,
805+ new com .adjust .sdk .OnAttributionReadListener () {
806+ @ Override
807+ public void onAttributionRead (AdjustAttribution attribution ) {
808+ if (callback != null ) {
809+ if (attribution == null ) {
810+ callback .invoke ((WritableMap ) null );
811+ } else {
812+ callback .invoke (AdjustUtil .attributionToMap (attribution ));
813+ }
814+ }
815+ }
816+ });
817+ }
818+
732819 @ ReactMethod
733820 public void getAdid (final Callback callback ) {
734821 com .adjust .sdk .Adjust .getAdid (new com .adjust .sdk .OnAdidReadListener () {
735822 @ Override
736823 public void onAdidRead (String adid ) {
737- callback .invoke (adid );
824+ if (callback != null ) {
825+ callback .invoke (adid != null ? adid : null );
826+ }
738827 }
739828 });
740829 }
741830
831+ @ ReactMethod
832+ public void getAdidWithTimeout (final ReadableMap timeoutMap , final Callback callback ) {
833+ if (timeoutMap == null || !checkKey (timeoutMap , "timeoutInMilliseconds" )) {
834+ if (callback != null ) {
835+ callback .invoke ((String ) null );
836+ }
837+ return ;
838+ }
839+
840+ long timeoutInMilliseconds ;
841+ try {
842+ timeoutInMilliseconds = (long ) timeoutMap .getDouble ("timeoutInMilliseconds" );
843+ } catch (Exception e ) {
844+ if (callback != null ) {
845+ callback .invoke ((String ) null );
846+ }
847+ return ;
848+ }
849+
850+ com .adjust .sdk .Adjust .getAdidWithTimeout (
851+ getReactApplicationContext (),
852+ timeoutInMilliseconds ,
853+ new com .adjust .sdk .OnAdidReadListener () {
854+ @ Override
855+ public void onAdidRead (String adid ) {
856+ if (callback != null ) {
857+ callback .invoke (adid != null ? adid : null );
858+ }
859+ }
860+ });
861+ }
862+
742863 @ ReactMethod
743864 public void getLastDeeplink (final Callback callback ) {
744865 com .adjust .sdk .Adjust .getLastDeeplink (
745866 getReactApplicationContext (),
746867 new OnLastDeeplinkReadListener () {
747868 @ Override
748869 public void onLastDeeplinkRead (Uri uri ) {
749- String strUri = (uri != null ) ? uri .toString () : "" ;
750- callback .invoke (strUri );
870+ if (callback != null ) {
871+ String strUri = (uri != null ) ? uri .toString () : null ;
872+ callback .invoke (strUri );
873+ }
751874 }
752875 });
753876 }
@@ -757,10 +880,12 @@ public void getSdkVersion(final String sdkPrefix, final Callback callback) {
757880 com .adjust .sdk .Adjust .getSdkVersion (new com .adjust .sdk .OnSdkVersionReadListener () {
758881 @ Override
759882 public void onSdkVersionRead (String sdkVersion ) {
760- if (sdkVersion == null ) {
761- callback .invoke ("" );
762- } else {
763- callback .invoke (sdkPrefix + "@" + sdkVersion );
883+ if (callback != null ) {
884+ if (sdkVersion == null ) {
885+ callback .invoke ((String ) null );
886+ } else {
887+ callback .invoke (sdkPrefix + "@" + sdkVersion );
888+ }
764889 }
765890 }
766891 });
@@ -889,6 +1014,10 @@ public void trackPlayStoreSubscription(final ReadableMap mapEvent) {
8891014 @ ReactMethod
8901015 public void verifyPlayStorePurchase (final ReadableMap mapEvent , final Callback callback ) {
8911016 if (mapEvent == null ) {
1017+ if (callback != null ) {
1018+ WritableMap map = Arguments .createMap ();
1019+ callback .invoke (map );
1020+ }
8921021 return ;
8931022 }
8941023
@@ -934,6 +1063,10 @@ public void onVerificationFinished(AdjustPurchaseVerificationResult verification
9341063 @ ReactMethod
9351064 public void verifyAndTrackPlayStorePurchase (final ReadableMap mapEvent , final Callback callback ) {
9361065 if (mapEvent == null ) {
1066+ if (callback != null ) {
1067+ WritableMap map = Arguments .createMap ();
1068+ callback .invoke (map );
1069+ }
9371070 return ;
9381071 }
9391072
@@ -1068,7 +1201,9 @@ public void getGoogleAdId(final Callback callback) {
10681201 new com .adjust .sdk .OnGoogleAdIdReadListener () {
10691202 @ Override
10701203 public void onGoogleAdIdRead (String googleAdId ) {
1071- callback .invoke (googleAdId );
1204+ if (callback != null ) {
1205+ callback .invoke (googleAdId );
1206+ }
10721207 }
10731208 });
10741209 }
@@ -1080,7 +1215,9 @@ public void getAmazonAdId(final Callback callback) {
10801215 new com .adjust .sdk .OnAmazonAdIdReadListener () {
10811216 @ Override
10821217 public void onAmazonAdIdRead (String amazonAdId ) {
1083- callback .invoke (amazonAdId );
1218+ if (callback != null ) {
1219+ callback .invoke (amazonAdId );
1220+ }
10841221 }
10851222 });
10861223 }
0 commit comments