Skip to content

Commit ac2d107

Browse files
authored
Merge pull request #343 from adjust/v542
Version 5.4.2
2 parents ed567bf + eb1ac78 commit ac2d107

File tree

14 files changed

+96
-35
lines changed

14 files changed

+96
-35
lines changed
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<dependencies>
33
<androidPackages>
4-
<androidPackage spec="com.adjust.sdk:adjust-android:5.4.1">
4+
<androidPackage spec="com.adjust.sdk:adjust-android:5.4.2">
55
</androidPackage>
66
<androidPackage spec="com.android.installreferrer:installreferrer:2.2">
77
</androidPackage>
88
</androidPackages>
99
<iosPods>
10-
<iosPod name="Adjust" version="5.4.1" minTargetSdk="12.0"/>
10+
<iosPod name="Adjust" version="5.4.3" minTargetSdk="12.0"/>
1111
</iosPods>
1212
</dependencies>

Assets/Adjust/Native/iOS/AdjustUnity.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ typedef void (*AdjustDelegateIdfvGetter)(const char* idfv);
2020
typedef void (*AdjustDelegateLastDeeplinkGetter)(const char* lastDeeplink);
2121
typedef void (*AdjustDelegateSdkVersionGetter)(const char* sdkVersion);
2222
typedef void (*AdjustDelegateAttCallback)(int status);
23-
typedef void (*AdjustDelegatePurchaseVerificationCallback)(const char* verificationResult);
24-
typedef void (*AdjustDelegateVerifyAndTrackCallback)(const char* verificationResult);
23+
typedef void (*AdjustDelegatePurchaseVerificationCallback)(const char* verificationResult, int callbackId);
24+
typedef void (*AdjustDelegateVerifyAndTrackCallback)(const char* verificationResult, int callbackId);
2525
typedef void (*AdjustDelegateResolvedDeeplinkCallback)(const char* deeplink);
2626
typedef void (*AdjustDelegateSkanErrorCallback)(const char* error);
2727

Assets/Adjust/Native/iOS/AdjustUnity.mm

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ void _AdjustInitSdk(
100100
int isSendingInBackgroundEnabled,
101101
int isAdServicesEnabled,
102102
int isIdfaReadingEnabled,
103+
int isIdfvReadingEnabled,
103104
int isSkanAttributionEnabled,
104105
int isLinkMeEnabled,
105106
int isCostDataInAttributionEnabled,
@@ -195,6 +196,13 @@ void _AdjustInitSdk(
195196
}
196197
}
197198

199+
// IDFV reading
200+
if (isIdfvReadingEnabled != -1) {
201+
if ((BOOL)isIdfvReadingEnabled == NO) {
202+
[adjustConfig disableIdfvReading];
203+
}
204+
}
205+
198206
// LinkMe
199207
if (isLinkMeEnabled != -1) {
200208
if ((BOOL)isLinkMeEnabled == YES) {
@@ -712,6 +720,7 @@ int _AdjustGetAppTrackingAuthorizationStatus() {
712720

713721
void _AdjustVerifyAppStorePurchase(const char* transactionId,
714722
const char* productId,
723+
int callbackId,
715724
AdjustDelegatePurchaseVerificationCallback callback) {
716725
NSString *strTransactionId;
717726
NSString *strProductId;
@@ -746,7 +755,7 @@ void _AdjustVerifyAppStorePurchase(const char* transactionId,
746755
length:[dataVerificationInfo length]
747756
encoding:NSUTF8StringEncoding];
748757
const char* verificationInfoCString = [strVerificationInfo UTF8String];
749-
callback(verificationInfoCString);
758+
callback(verificationInfoCString, callbackId);
750759
}];
751760
}
752761

@@ -773,6 +782,7 @@ void _AdjustVerifyAndTrackAppStorePurchase(
773782
const char* deduplicationId,
774783
const char* jsonCallbackParameters,
775784
const char* jsonPartnerParameters,
785+
int verificationCallbackId,
776786
AdjustDelegateVerifyAndTrackCallback callback) {
777787
NSString *strEventToken = isStringValid(eventToken) == true ? [NSString stringWithUTF8String:eventToken] : nil;
778788
ADJEvent *event = [[ADJEvent alloc] initWithEventToken:strEventToken];
@@ -844,7 +854,7 @@ void _AdjustVerifyAndTrackAppStorePurchase(
844854
length:[dataVerificationInfo length]
845855
encoding:NSUTF8StringEncoding];
846856
const char* verificationInfoCString = [strVerificationInfo UTF8String];
847-
callback(verificationInfoCString);
857+
callback(verificationInfoCString, verificationCallbackId);
848858
}];
849859
}
850860

Assets/Adjust/Scripts/AdjustAndroid.cs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace AdjustSdk
88
#if UNITY_ANDROID
99
public class AdjustAndroid
1010
{
11-
private const string sdkPrefix = "unity5.4.1";
11+
private const string sdkPrefix = "unity5.4.2";
1212
private static bool isDeferredDeeplinkOpeningEnabled = true;
1313
private static AndroidJavaClass ajcAdjust = new AndroidJavaClass("com.adjust.sdk.Adjust");
1414
private static AndroidJavaObject ajoCurrentActivity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");
@@ -18,8 +18,7 @@ public class AdjustAndroid
1818
private static EventTrackingSucceededListener onEventTrackingSucceededListener;
1919
private static SessionTrackingFailedListener onSessionTrackingFailedListener;
2020
private static SessionTrackingSucceededListener onSessionTrackingSucceededListener;
21-
private static VerificationResultListener onVerificationResultListener;
22-
private static VerificationResultListener onVerifyAndTrackListener;
21+
2322
private static DeeplinkResolutionListener onDeeplinkResolvedListener;
2423

2524
public static void InitSdk(AdjustConfig adjustConfig)
@@ -645,12 +644,12 @@ public static void VerifyPlayStorePurchase(
645644
AdjustPlayStorePurchase purchase,
646645
Action<AdjustPurchaseVerificationResult> verificationInfoCallback)
647646
{
648-
onVerificationResultListener = new VerificationResultListener(verificationInfoCallback);
647+
VerificationResultListener verificationResultListener = new VerificationResultListener(verificationInfoCallback);
649648
using (AndroidJavaObject ajoPurchase = new AndroidJavaObject("com.adjust.sdk.AdjustPlayStorePurchase",
650649
purchase.ProductId,
651650
purchase.PurchaseToken))
652651
{
653-
ajcAdjust.CallStatic("verifyPlayStorePurchase", ajoPurchase, onVerificationResultListener);
652+
ajcAdjust.CallStatic("verifyPlayStorePurchase", ajoPurchase, verificationResultListener);
654653
}
655654
}
656655

@@ -681,7 +680,7 @@ public static void VerifyAndTrackPlayStorePurchase(
681680
AdjustEvent adjustEvent,
682681
Action<AdjustPurchaseVerificationResult> verificationInfoCallback)
683682
{
684-
onVerifyAndTrackListener = new VerificationResultListener(verificationInfoCallback);
683+
VerificationResultListener verifyAndTrackListener = new VerificationResultListener(verificationInfoCallback);
685684
using (AndroidJavaObject ajoAdjustEvent =
686685
new AndroidJavaObject("com.adjust.sdk.AdjustEvent", adjustEvent.EventToken))
687686
{
@@ -737,7 +736,7 @@ public static void VerifyAndTrackPlayStorePurchase(
737736
ajoAdjustEvent.Call("setPurchaseToken", adjustEvent.PurchaseToken);
738737
}
739738

740-
ajcAdjust.CallStatic("verifyAndTrackPlayStorePurchase", ajoAdjustEvent, onVerifyAndTrackListener);
739+
ajcAdjust.CallStatic("verifyAndTrackPlayStorePurchase", ajoAdjustEvent, verifyAndTrackListener);
741740
}
742741
}
743742

Assets/Adjust/Scripts/AdjustConfig.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ public class AdjustConfig
3434
// iOS specific
3535
public bool? IsAdServicesEnabled { get; set; }
3636
public bool? IsIdfaReadingEnabled { get; set; }
37+
public bool? IsIdfvReadingEnabled { get; set; }
3738
public bool? IsSkanAttributionEnabled { get; set; }
3839
public bool? IsLinkMeEnabled { get; set; }
3940
public int? AttConsentWaitingInterval { get; set; }

Assets/Adjust/Scripts/AdjustiOS.cs

Lines changed: 51 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace AdjustSdk
88
#if UNITY_IOS
99
public class AdjustiOS
1010
{
11-
private const string sdkPrefix = "unity5.4.1";
11+
private const string sdkPrefix = "unity5.4.2";
1212

1313
// app callbacks as method parameters
1414
private static List<Action<bool>> appIsEnabledGetterCallbacks;
@@ -19,8 +19,10 @@ public class AdjustiOS
1919
private static List<Action<string>> appLastDeeplinkGetterCallbacks;
2020
private static List<Action<string>> appSdkVersionGetterCallbacks;
2121
private static List<Action<int>> appAttCallbacks;
22-
private static Action<AdjustPurchaseVerificationResult> appPurchaseVerificationCallback;
23-
private static Action<AdjustPurchaseVerificationResult> appVerifyAndTrackCallback;
22+
private static Dictionary<int, Action<AdjustPurchaseVerificationResult>> appPurchaseVerificationCallbacks;
23+
private static Dictionary<int, Action<AdjustPurchaseVerificationResult>> appVerifyAndTrackCallbacks;
24+
private static int nextPurchaseVerificationCallbackId = 0;
25+
private static int nextVerifyAndTrackCallbackId = 0;
2426
private static Action<string> appResolvedDeeplinkCallback;
2527
private static Action<string> appSkanErrorCallback;
2628

@@ -61,6 +63,7 @@ private static extern void _AdjustInitSdk(
6163
int isSendingInBackgroundEnabled,
6264
int isAdServicesEnabled,
6365
int isIdfaReadingEnabled,
66+
int isIdfvReadingEnabled,
6467
int isSkanAttributionEnabled,
6568
int isLinkMeEnabled,
6669
int isCostDataInAttributionEnabled,
@@ -228,14 +231,15 @@ private static extern void _AdjustUpdateSkanConversionValue(
228231
[DllImport("__Internal")]
229232
private static extern void _AdjustTrackSubsessionEnd();
230233

231-
private delegate void AdjustDelegatePurchaseVerificationCallback(string verificationResult);
234+
private delegate void AdjustDelegatePurchaseVerificationCallback(string verificationResult, int callbackId);
232235
[DllImport("__Internal")]
233236
private static extern void _AdjustVerifyAppStorePurchase(
234237
string transactionId,
235238
string productId,
239+
int callbackId,
236240
AdjustDelegatePurchaseVerificationCallback callback);
237241

238-
private delegate void AdjustDelegateVerifyAndTrackCallback(string verificationResult);
242+
private delegate void AdjustDelegateVerifyAndTrackCallback(string verificationResult, int callbackId);
239243
[DllImport("__Internal")]
240244
private static extern void _AdjustVerifyAndTrackAppStorePurchase(
241245
string eventToken,
@@ -247,7 +251,8 @@ private static extern void _AdjustVerifyAndTrackAppStorePurchase(
247251
string deduplicationId,
248252
string jsonCallbackParameters,
249253
string jsonPartnerParameters,
250-
AdjustDelegatePurchaseVerificationCallback callback);
254+
int verificationCallbackId,
255+
AdjustDelegateVerifyAndTrackCallback callback);
251256

252257
[DllImport("__Internal")]
253258
private static extern void _AdjustEndFirstSessionDelay();
@@ -286,6 +291,7 @@ public static void InitSdk(AdjustConfig adjustConfig)
286291
int isSendingInBackgroundEnabled = AdjustUtils.ConvertBool(adjustConfig.IsSendingInBackgroundEnabled);
287292
int isAdServicesEnabled = AdjustUtils.ConvertBool(adjustConfig.IsAdServicesEnabled);
288293
int isIdfaReadingEnabled = AdjustUtils.ConvertBool(adjustConfig.IsIdfaReadingEnabled);
294+
int isIdfvReadingEnabled = AdjustUtils.ConvertBool(adjustConfig.IsIdfvReadingEnabled);
289295
int allowSuppressLogLevel = AdjustUtils.ConvertBool(adjustConfig.AllowSuppressLogLevel);
290296
int isDeferredDeeplinkOpeningEnabled = AdjustUtils.ConvertBool(adjustConfig.IsDeferredDeeplinkOpeningEnabled);
291297
int isSkanAttributionEnabled = AdjustUtils.ConvertBool(adjustConfig.IsSkanAttributionEnabled);
@@ -323,6 +329,7 @@ public static void InitSdk(AdjustConfig adjustConfig)
323329
isSendingInBackgroundEnabled,
324330
isAdServicesEnabled,
325331
isIdfaReadingEnabled,
332+
isIdfvReadingEnabled,
326333
isSkanAttributionEnabled,
327334
isLinkMeEnabled,
328335
isCostDataInAttributionEnabled,
@@ -595,11 +602,19 @@ public static void VerifyAppStorePurchase(
595602
{
596603
string transactionId = purchase.TransactionId;
597604
string productId = purchase.ProductId;
598-
appPurchaseVerificationCallback = callback;
605+
606+
if (appPurchaseVerificationCallbacks == null)
607+
{
608+
appPurchaseVerificationCallbacks = new Dictionary<int, Action<AdjustPurchaseVerificationResult>>();
609+
}
610+
611+
int callbackId = ++nextPurchaseVerificationCallbackId;
612+
appPurchaseVerificationCallbacks[callbackId] = callback;
599613

600614
_AdjustVerifyAppStorePurchase(
601615
transactionId,
602616
productId,
617+
callbackId,
603618
PurchaseVerificationCallbackMonoPInvoke);
604619
}
605620

@@ -622,7 +637,14 @@ public static void VerifyAndTrackAppStorePurchase(
622637
string deduplicationId = adjustEvent.DeduplicationId;
623638
string stringJsonCallbackParameters = AdjustUtils.ConvertReadOnlyCollectionOfPairsToJson(adjustEvent.CallbackParameters);
624639
string stringJsonPartnerParameters = AdjustUtils.ConvertReadOnlyCollectionOfPairsToJson(adjustEvent.PartnerParameters);
625-
appVerifyAndTrackCallback = callback;
640+
641+
if (appVerifyAndTrackCallbacks == null)
642+
{
643+
appVerifyAndTrackCallbacks = new Dictionary<int, Action<AdjustPurchaseVerificationResult>>();
644+
}
645+
646+
int verificationCallbackId = ++nextVerifyAndTrackCallbackId;
647+
appVerifyAndTrackCallbacks[verificationCallbackId] = callback;
626648

627649
_AdjustVerifyAndTrackAppStorePurchase(
628650
eventToken,
@@ -634,6 +656,7 @@ public static void VerifyAndTrackAppStorePurchase(
634656
deduplicationId,
635657
stringJsonCallbackParameters,
636658
stringJsonPartnerParameters,
659+
verificationCallbackId,
637660
VerifyAndTrackCallbackMonoPInvoke);
638661
}
639662

@@ -911,37 +934,47 @@ private static void AttCallbackMonoPInvoke(int status)
911934
}
912935

913936
[AOT.MonoPInvokeCallback(typeof(AdjustDelegatePurchaseVerificationCallback))]
914-
private static void PurchaseVerificationCallbackMonoPInvoke(string verificationResult)
937+
private static void PurchaseVerificationCallbackMonoPInvoke(string verificationResult, int callbackId)
915938
{
916-
if (appPurchaseVerificationCallback == null)
939+
if (appPurchaseVerificationCallbacks == null || !appPurchaseVerificationCallbacks.ContainsKey(callbackId))
917940
{
918941
return;
919942
}
920943

921944
AdjustThreadDispatcher.RunOnMainThread(() =>
922945
{
923-
if (appPurchaseVerificationCallback != null)
946+
if (appPurchaseVerificationCallbacks != null && appPurchaseVerificationCallbacks.ContainsKey(callbackId))
924947
{
925-
appPurchaseVerificationCallback.Invoke(new AdjustPurchaseVerificationResult(verificationResult));
926-
appPurchaseVerificationCallback = null;
948+
Action<AdjustPurchaseVerificationResult> callback = appPurchaseVerificationCallbacks[callbackId];
949+
appPurchaseVerificationCallbacks.Remove(callbackId);
950+
951+
if (callback != null)
952+
{
953+
callback.Invoke(new AdjustPurchaseVerificationResult(verificationResult));
954+
}
927955
}
928956
});
929957
}
930958

931959
[AOT.MonoPInvokeCallback(typeof(AdjustDelegateVerifyAndTrackCallback))]
932-
private static void VerifyAndTrackCallbackMonoPInvoke(string verificationResult)
960+
private static void VerifyAndTrackCallbackMonoPInvoke(string verificationResult, int callbackId)
933961
{
934-
if (appVerifyAndTrackCallback == null)
962+
if (appVerifyAndTrackCallbacks == null || !appVerifyAndTrackCallbacks.ContainsKey(callbackId))
935963
{
936964
return;
937965
}
938966

939967
AdjustThreadDispatcher.RunOnMainThread(() =>
940968
{
941-
if (appVerifyAndTrackCallback != null)
969+
if (appVerifyAndTrackCallbacks != null && appVerifyAndTrackCallbacks.ContainsKey(callbackId))
942970
{
943-
appVerifyAndTrackCallback.Invoke(new AdjustPurchaseVerificationResult(verificationResult));
944-
appVerifyAndTrackCallback = null;
971+
Action<AdjustPurchaseVerificationResult> callback = appVerifyAndTrackCallbacks[callbackId];
972+
appVerifyAndTrackCallbacks.Remove(callbackId);
973+
974+
if (callback != null)
975+
{
976+
callback.Invoke(new AdjustPurchaseVerificationResult(verificationResult));
977+
}
945978
}
946979
});
947980
}

Assets/Adjust/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "com.adjust.sdk",
3-
"version": "5.4.1",
3+
"version": "5.4.2",
44
"unity": "2019.4",
55
"displayName": "Adjust",
66
"license": "MIT",
Binary file not shown.
1.66 KB
Binary file not shown.

Assets/Test/Scripts/CommandExecutor.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1072,6 +1072,8 @@ private void VerifyAndTrack()
10721072
_testLibrary.SendInfoToServer(localExtraPath);
10731073
});
10741074
#endif
1075+
1076+
_savedEvents.Remove(0);
10751077
}
10761078

10771079
private void EndFirstSessionDelay()

0 commit comments

Comments
 (0)