Skip to content

Commit aaef7a9

Browse files
committed
fix: add proper guards around callbacks and handling of invalid values
1 parent 1f41263 commit aaef7a9

File tree

3 files changed

+180
-112
lines changed

3 files changed

+180
-112
lines changed

android/src/main/java/com/adjust/sdk/Adjust.java

Lines changed: 47 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -603,9 +603,15 @@ public void processDeeplink(final ReadableMap mapDeeplink) {
603603
@ReactMethod
604604
public void processAndResolveDeeplink(final ReadableMap mapDeeplink, final Callback callback) {
605605
if (mapDeeplink == null) {
606+
if (callback != null) {
607+
callback.invoke((String) null);
608+
}
606609
return;
607610
}
608611
if (!checkKey(mapDeeplink, "deeplink")) {
612+
if (callback != null) {
613+
callback.invoke((String) null);
614+
}
609615
return;
610616
}
611617

@@ -622,7 +628,9 @@ public void processAndResolveDeeplink(final ReadableMap mapDeeplink, final Callb
622628
new OnDeeplinkResolvedListener() {
623629
@Override
624630
public void onDeeplinkResolved(String resolvedLink) {
625-
callback.invoke(resolvedLink);
631+
if (callback != null) {
632+
callback.invoke(resolvedLink);
633+
}
626634
}
627635
});
628636
}
@@ -631,7 +639,7 @@ public void onDeeplinkResolved(String resolvedLink) {
631639
public void resolveLinkWithUrl(final String url, final ReadableArray resolveUrlSuffixArray, final Callback callback) {
632640
if (url == null) {
633641
if (callback != null) {
634-
callback.invoke("");
642+
callback.invoke((String) null);
635643
}
636644
return;
637645
}
@@ -649,8 +657,10 @@ public void resolveLinkWithUrl(final String url, final ReadableArray resolveUrlS
649657
new com.adjust.sdk.AdjustLinkResolution.AdjustLinkResolutionCallback() {
650658
@Override
651659
public void resolvedLinkCallback(Uri resolvedLink) {
652-
String resolvedUrl = resolvedLink != null ? resolvedLink.toString() : "";
653-
callback.invoke(resolvedUrl);
660+
if (callback != null) {
661+
String resolvedUrl = resolvedLink != null ? resolvedLink.toString() : null;
662+
callback.invoke(resolvedUrl);
663+
}
654664
}
655665
}
656666
);
@@ -743,7 +753,9 @@ public void isEnabled(final Callback callback) {
743753
new com.adjust.sdk.OnIsEnabledListener() {
744754
@Override
745755
public void onIsEnabledRead(boolean isEnabled) {
746-
callback.invoke(isEnabled);
756+
if (callback != null) {
757+
callback.invoke(isEnabled);
758+
}
747759
}
748760
});
749761
}
@@ -753,7 +765,9 @@ public void getAttribution(final Callback callback) {
753765
com.adjust.sdk.Adjust.getAttribution(new com.adjust.sdk.OnAttributionReadListener() {
754766
@Override
755767
public void onAttributionRead(AdjustAttribution attribution) {
756-
callback.invoke(AdjustUtil.attributionToMap(attribution));
768+
if (callback != null) {
769+
callback.invoke(AdjustUtil.attributionToMap(attribution));
770+
}
757771
}
758772
});
759773
}
@@ -763,7 +777,9 @@ public void getAdid(final Callback callback) {
763777
com.adjust.sdk.Adjust.getAdid(new com.adjust.sdk.OnAdidReadListener() {
764778
@Override
765779
public void onAdidRead(String adid) {
766-
callback.invoke(adid);
780+
if (callback != null) {
781+
callback.invoke(adid != null ? adid : null);
782+
}
767783
}
768784
});
769785
}
@@ -775,8 +791,10 @@ public void getLastDeeplink(final Callback callback) {
775791
new OnLastDeeplinkReadListener() {
776792
@Override
777793
public void onLastDeeplinkRead(Uri uri) {
778-
String strUri = (uri != null) ? uri.toString() : "";
779-
callback.invoke(strUri);
794+
if (callback != null) {
795+
String strUri = (uri != null) ? uri.toString() : null;
796+
callback.invoke(strUri);
797+
}
780798
}
781799
});
782800
}
@@ -786,10 +804,12 @@ public void getSdkVersion(final String sdkPrefix, final Callback callback) {
786804
com.adjust.sdk.Adjust.getSdkVersion(new com.adjust.sdk.OnSdkVersionReadListener() {
787805
@Override
788806
public void onSdkVersionRead(String sdkVersion) {
789-
if (sdkVersion == null) {
790-
callback.invoke("");
791-
} else {
792-
callback.invoke(sdkPrefix + "@" + sdkVersion);
807+
if (callback != null) {
808+
if (sdkVersion == null) {
809+
callback.invoke((String) null);
810+
} else {
811+
callback.invoke(sdkPrefix + "@" + sdkVersion);
812+
}
793813
}
794814
}
795815
});
@@ -918,6 +938,10 @@ public void trackPlayStoreSubscription(final ReadableMap mapEvent) {
918938
@ReactMethod
919939
public void verifyPlayStorePurchase(final ReadableMap mapEvent, final Callback callback) {
920940
if (mapEvent == null) {
941+
if (callback != null) {
942+
WritableMap map = Arguments.createMap();
943+
callback.invoke(map);
944+
}
921945
return;
922946
}
923947

@@ -963,6 +987,10 @@ public void onVerificationFinished(AdjustPurchaseVerificationResult verification
963987
@ReactMethod
964988
public void verifyAndTrackPlayStorePurchase(final ReadableMap mapEvent, final Callback callback) {
965989
if (mapEvent == null) {
990+
if (callback != null) {
991+
WritableMap map = Arguments.createMap();
992+
callback.invoke(map);
993+
}
966994
return;
967995
}
968996

@@ -1097,7 +1125,9 @@ public void getGoogleAdId(final Callback callback) {
10971125
new com.adjust.sdk.OnGoogleAdIdReadListener() {
10981126
@Override
10991127
public void onGoogleAdIdRead(String googleAdId) {
1100-
callback.invoke(googleAdId);
1128+
if (callback != null) {
1129+
callback.invoke(googleAdId);
1130+
}
11011131
}
11021132
});
11031133
}
@@ -1109,7 +1139,9 @@ public void getAmazonAdId(final Callback callback) {
11091139
new com.adjust.sdk.OnAmazonAdIdReadListener() {
11101140
@Override
11111141
public void onAmazonAdIdRead(String amazonAdId) {
1112-
callback.invoke(amazonAdId);
1142+
if (callback != null) {
1143+
callback.invoke(amazonAdId);
1144+
}
11131145
}
11141146
});
11151147
}

index.d.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -227,22 +227,22 @@ declare module 'react-native-adjust' {
227227
getIdfa: (callback: (idfa: string | null) => void) => void
228228
getIdfv: (callback: (idfv: string | null) => void) => void
229229
getGoogleAdId: (callback: (adid: string | null) => void) => void
230-
getAdid: (callback: (adid: string) => void) => void
230+
getAdid: (callback: (adid: string | null) => void) => void
231231
getAttribution: (callback: (attribution: AdjustAttribution) => void) => void
232232
getAmazonAdId: (callback: (adid: string | null) => void) => void
233-
getSdkVersion: (callback: (sdkVersion: string) => void) => void
233+
getSdkVersion: (callback: (sdkVersion: string | null) => void) => void
234234
requestAppTrackingAuthorization: (handler: (status: number) => void) => void
235235
updateSkanConversionValue: (conversionValue: number, coarseValue: string, lockWindow: boolean, callback: (error: string | null) => void) => void
236236
getAppTrackingAuthorizationStatus: (callback: (status: number) => void) => void
237237
trackThirdPartySharing: (adjustThirdPartySharing: AdjustThirdPartySharing) => void
238238
trackMeasurementConsent: (measurementConsent: boolean) => void
239-
getLastDeeplink: (callback: (lastDeeplink: string) => void) => void
239+
getLastDeeplink: (callback: (lastDeeplink: string | null) => void) => void
240240
verifyAppStorePurchase: (purchase: AdjustAppStorePurchase, callback: (verificationResult: AdjustPurchaseVerificationResult) => void) => void
241241
verifyAndTrackAppStorePurchase: (adjustEvent: AdjustEvent, callback: (verificationResult: AdjustPurchaseVerificationResult) => void) => void
242242
verifyPlayStorePurchase: (purchase: AdjustPlayStorePurchase, callback: (verificationResult: AdjustPurchaseVerificationResult) => void) => void
243243
verifyAndTrackPlayStorePurchase: (adjustEvent: AdjustEvent, callback: (verificationResult: AdjustPurchaseVerificationResult) => void) => void
244-
processAndResolveDeeplink: (adjustDeeplink: AdjustDeeplink, callback: (resolvedLink: string) => void) => void
245-
resolveLinkWithUrl: (url: string, resolveUrlSuffixArray: string[], callback: (resolvedLink: string) => void) => void
244+
processAndResolveDeeplink: (adjustDeeplink: AdjustDeeplink, callback: (resolvedLink: string | null) => void) => void
245+
resolveLinkWithUrl: (url: string, resolveUrlSuffixArray: string[], callback: (resolvedLink: string | null) => void) => void
246246
endFirstSessionDelay: () => void
247247
enableCoppaComplianceInDelay: () => void
248248
disableCoppaComplianceInDelay: () => void

0 commit comments

Comments
 (0)