Skip to content

Commit

Permalink
Merge pull request #252 from adjust/v4320
Browse files Browse the repository at this point in the history
Version 4.32.0
  • Loading branch information
uerceg authored Sep 15, 2022
2 parents 977bbfb + cb5051f commit 32381d6
Show file tree
Hide file tree
Showing 28 changed files with 190 additions and 24 deletions.
13 changes: 12 additions & 1 deletion Assets/Adjust/Android/AdjustAndroid.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ namespace com.adjust.sdk
#if UNITY_ANDROID
public class AdjustAndroid
{
private const string sdkPrefix = "unity4.31.0";
private const string sdkPrefix = "unity4.32.0";
private static bool launchDeferredDeeplink = true;
private static AndroidJavaClass ajcAdjust = new AndroidJavaClass("com.adjust.sdk.Adjust");
private static AndroidJavaObject ajoCurrentActivity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");
Expand Down Expand Up @@ -581,6 +581,17 @@ public static void TrackThirdPartySharing(AdjustThirdPartySharing thirdPartyShar
}
}

if (thirdPartySharing.partnerSharingSettings != null)
{
foreach (KeyValuePair<string, List<string>> entry in thirdPartySharing.partnerSharingSettings)
{
for (int i = 0; i < entry.Value.Count;)
{
ajoAdjustThirdPartySharing.Call("addPartnerSharingSetting", entry.Key, entry.Value[i++], bool.Parse(entry.Value[i++]));
}
}
}

ajcAdjust.CallStatic("trackThirdPartySharing", ajoAdjustThirdPartySharing);
}

Expand Down
1 change: 1 addition & 0 deletions Assets/Adjust/Android/AdjustAndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />

<application
android:theme="@style/UnityThemeSelector"
Expand Down
Binary file modified Assets/Adjust/Android/Test/adjust-test-library.aar
Binary file not shown.
Binary file modified Assets/Adjust/Android/Test/adjust-test-options.aar
Binary file not shown.
Binary file modified Assets/Adjust/Android/adjust-android.jar
Binary file not shown.
2 changes: 1 addition & 1 deletion Assets/Adjust/Editor/AdjustSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public class AdjustSettings : ScriptableObject
[SerializeField]
private bool _androidPermissionInstallReferrerService = true;
[SerializeField]
private bool _androidPermissionAdId = false;
private bool _androidPermissionAdId = true;
[SerializeField]
private bool _androidPermissionAccessNetworkState = false;
[SerializeField]
Expand Down
23 changes: 23 additions & 0 deletions Assets/Adjust/Test/CommandExecutor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ public void ExecuteCommand(Command command)
case "thirdPartySharing": ThirdPartySharing(); break;
case "measurementConsent": MeasurementConsent(); break;
case "trackAdRevenueV2": TrackAdRevenueV2(); break;
case "getLastDeeplink": GetLastDeeplink(); break;
default: CommandNotFound(_command.ClassName, _command.MethodName); break;
}
}
Expand Down Expand Up @@ -864,6 +865,18 @@ private void ThirdPartySharing()
}
}

if (_command.ContainsParameter("partnerSharingSettings"))
{
var partnerSharingSettings = _command.Parameters["partnerSharingSettings"];
for (var i = 0; i < partnerSharingSettings.Count; i += 3)
{
var partnerName = partnerSharingSettings[i];
var key = partnerSharingSettings[i+1];
var value = partnerSharingSettings[i+2];
adjustThirdPartySharing.addPartnerSharingSetting(partnerName, key, bool.Parse(value));
}
}

Adjust.trackThirdPartySharing(adjustThirdPartySharing);
}

Expand Down Expand Up @@ -935,6 +948,16 @@ private void TrackAdRevenueV2()
Adjust.trackAdRevenue(adRevenue);
}

private void GetLastDeeplink()
{
#if UNITY_IOS
string localExtraPath = ExtraPath;
string lastDeeplink = Adjust.getLastDeeplink();
_testLibrary.AddInfoToSend("last_deeplink", lastDeeplink);
_testLibrary.SendInfoToServer(localExtraPath);
#endif
}

private void CommandNotFound(string className, string methodName)
{
TestApp.Log("Adjust Test: Method '" + methodName + "' not found for class '" + className + "'");
Expand Down
6 changes: 3 additions & 3 deletions Assets/Adjust/Test/TestApp.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ public class TestApp : MonoBehaviour
#if UNITY_ANDROID
private const string PORT = ":8443";
private const string PROTOCOL = "https://";
private const string IP = "192.168.86.43";
private const string IP = "192.168.86.44";
#elif UNITY_IOS
private const string PORT = ":8080";
private const string PROTOCOL = "http://";
private const string IP = "192.168.86.43";
private const string IP = "192.168.86.44";
private TestLibraryiOS _testLibraryiOS;
#else
private const string PORT = ":8080";
Expand Down Expand Up @@ -46,7 +46,7 @@ private void StartTestSession()
// testLibrary.AddTest("current/eventBuffering/Test_EventBuffering_sensitive_packets");
// testLibrary.AddTest("Test_AdRevenue_ad_revenue_v2");
// testLibrary.AddTest("Test_AdRevenue_ad_revenue_v2_invalid");
// testLibrary.AddTestDirectory ("current/deeplink-deferred");
// testLibrary.AddTestDirectory ("third-party-sharing");

Log("Starting test session.");
testLibrary.StartTestSession();
Expand Down
21 changes: 21 additions & 0 deletions Assets/Adjust/Unity/Adjust.cs
Original file line number Diff line number Diff line change
Expand Up @@ -818,6 +818,27 @@ public static string getAmazonAdId()
#endif
}

public static string getLastDeeplink()
{
if (IsEditor())
{
return string.Empty;
}

#if UNITY_IOS
return AdjustiOS.GetLastDeeplink();
#elif UNITY_ANDROID
Debug.Log("[Adjust]: Error! Last deeplink getter is not available on Android platform.");
return string.Empty;
#elif (UNITY_WSA || UNITY_WP8)
Debug.Log("[Adjust]: Error! Last deeplink getter is not available on Windows platform.");
return string.Empty;
#else
Debug.Log(errorMsgPlatform);
return string.Empty;
#endif
}

#if UNITY_IOS
public void GetNativeAttribution(string attributionData)
{
Expand Down
1 change: 1 addition & 0 deletions Assets/Adjust/Unity/AdjustConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ public class AdjustConfig
public const string AdjustAdRevenueSourceAdmost = "admost_sdk";
public const string AdjustAdRevenueSourceUnity = "unity_sdk";
public const string AdjustAdRevenueSourceHeliumChartboost = "helium_chartboost_sdk";
public const string AdjustAdRevenueSourcePublisher = "publisher_sdk";

internal string appToken;
internal string sceneName;
Expand Down
25 changes: 25 additions & 0 deletions Assets/Adjust/Unity/AdjustThirdPartySharing.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,13 @@ public class AdjustThirdPartySharing
{
internal bool? isEnabled;
internal Dictionary<string, List<string>> granularOptions;
internal Dictionary<string, List<string>> partnerSharingSettings;

public AdjustThirdPartySharing(bool? isEnabled)
{
this.isEnabled = isEnabled;
this.granularOptions = new Dictionary<string, List<string>>();
this.partnerSharingSettings = new Dictionary<string, List<string>>();
}

public void addGranularOption(string partnerName, string key, string value)
Expand All @@ -36,5 +38,28 @@ public void addGranularOption(string partnerName, string key, string value)
partnerOptions.Add(key);
partnerOptions.Add(value);
}

public void addPartnerSharingSetting(string partnerName, string key, bool value)
{
// TODO: consider to add some logs about the error case
if (partnerName == null || key == null)
{
return;
}

List<string> partnerSharingSetting;
if (partnerSharingSettings.ContainsKey(partnerName))
{
partnerSharingSetting = partnerSharingSettings[partnerName];
}
else
{
partnerSharingSetting = new List<string>();
partnerSharingSettings.Add(partnerName, partnerSharingSetting);
}

partnerSharingSetting.Add(key);
partnerSharingSetting.Add(value.ToString());
}
}
}
2 changes: 1 addition & 1 deletion Assets/Adjust/Windows/AdjustWindows.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ namespace com.adjust.sdk
{
public class AdjustWindows
{
private const string sdkPrefix = "unity4.31.0";
private const string sdkPrefix = "unity4.32.0";
private static bool appLaunched = false;

public static void Start(AdjustConfig adjustConfig)
Expand Down
9 changes: 7 additions & 2 deletions Assets/Adjust/iOS/ADJThirdPartySharing.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,19 @@

@interface ADJThirdPartySharing : NSObject

@property (nonatomic, nullable, readonly, strong) NSNumber *enabled;
@property (nonatomic, nonnull, readonly, strong) NSMutableDictionary *granularOptions;
@property (nonatomic, nonnull, readonly, strong) NSMutableDictionary *partnerSharingSettings;

- (nullable id)initWithIsEnabledNumberBool:(nullable NSNumber *)isEnabledNumberBool;

- (void)addGranularOption:(nonnull NSString *)partnerName
key:(nonnull NSString *)key
value:(nonnull NSString *)value;

@property (nonatomic, nullable, readonly, strong) NSNumber *enabled;
@property (nonatomic, nonnull, readonly, strong) NSMutableDictionary *granularOptions;
- (void)addPartnerSharingSetting:(nonnull NSString *)partnerName
key:(nonnull NSString *)key
value:(BOOL)value;

@end

13 changes: 11 additions & 2 deletions Assets/Adjust/iOS/Adjust.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// Adjust.h
// Adjust SDK
//
// V4.31.0
// V4.32.0
// Created by Christian Wellenbrock (@wellle) on 23rd July 2013.
// Copyright (c) 2012-2021 Adjust GmbH. All rights reserved.
//
Expand Down Expand Up @@ -308,7 +308,7 @@ extern NSString * __nonnull const ADJDataResidencyUS;
/**
* @brief Getter for app tracking authorization status.
*
* return Value of app tracking authorization status.
* @return Value of app tracking authorization status.
*/
+ (int)appTrackingAuthorizationStatus;

Expand All @@ -324,6 +324,13 @@ extern NSString * __nonnull const ADJDataResidencyUS;
*/
+ (void)checkForNewAttStatus;

/**
* @brief Get the last deep link which has opened the app.
*
* @return Last deep link which has opened the app.
*/
+ (nullable NSURL *)lastDeeplink;

/**
* @brief Method used for internal testing only. Don't use it in production.
*/
Expand Down Expand Up @@ -400,4 +407,6 @@ extern NSString * __nonnull const ADJDataResidencyUS;

- (void)checkForNewAttStatus;

- (nullable NSURL *)lastDeeplink;

@end
Binary file modified Assets/Adjust/iOS/AdjustSdk.a
Binary file not shown.
45 changes: 42 additions & 3 deletions Assets/Adjust/iOS/AdjustUnity.mm
Original file line number Diff line number Diff line change
Expand Up @@ -662,7 +662,7 @@ void _AdjustTrackAppStoreSubscription(const char* price,
[Adjust trackSubscription:subscription];
}

void _AdjustTrackThirdPartySharing(int enabled, const char* jsonGranularOptions) {
void _AdjustTrackThirdPartySharing(int enabled, const char* jsonGranularOptions, const char* jsonPartnerSharingSettings) {
NSNumber *nEnabled = enabled >= 0 ? [NSNumber numberWithInt:enabled] : nil;
ADJThirdPartySharing *adjustThirdPartySharing = [[ADJThirdPartySharing alloc] initWithIsEnabledNumberBool:nEnabled];

Expand All @@ -680,8 +680,29 @@ void _AdjustTrackThirdPartySharing(int enabled, const char* jsonGranularOptions)
// in here we have partner and key-value pair for it
for (int j = 0; j < [partnerGranularOptions count];) {
[adjustThirdPartySharing addGranularOption:partnerName
key:partnerGranularOptions[j++]
value:partnerGranularOptions[j++]];
key:partnerGranularOptions[j++]
value:partnerGranularOptions[j++]];
}
}
}
}
}
NSArray *arrayPartnerSharingSettings = convertArrayParameters(jsonPartnerSharingSettings);
if (arrayPartnerSharingSettings != nil) {
NSUInteger count = [arrayPartnerSharingSettings count];
for (int i = 0; i < count;) {
NSString *partnerName = arrayPartnerSharingSettings[i++];
NSString *sharingSettings = arrayPartnerSharingSettings[i++];
// sharingSettings is now NSString which pretty much contains array of partner key-value pairs
if (sharingSettings != nil) {
NSData *dataJson = [sharingSettings dataUsingEncoding:NSUTF8StringEncoding];
NSArray *partnerSharingSettings = [NSJSONSerialization JSONObjectWithData:dataJson options:0 error:nil];
if (partnerSharingSettings != nil) {
// in here we have partner and key-value pair for it
for (int j = 0; j < [partnerSharingSettings count];) {
[adjustThirdPartySharing addPartnerSharingSetting:partnerName
key:partnerSharingSettings[j++]
value:[partnerSharingSettings[j++] boolValue]];
}
}
}
Expand Down Expand Up @@ -721,6 +742,24 @@ int _AdjustGetAppTrackingAuthorizationStatus() {
return [Adjust appTrackingAuthorizationStatus];
}

char* _AdjustGetLastDeeplink() {
NSURL *lastDeeplink = [Adjust lastDeeplink];
if (nil == lastDeeplink) {
return NULL;
}
NSString *lastDeeplinkString = [lastDeeplink absoluteString];
if (nil == lastDeeplinkString) {
return NULL;
}
const char* lastDeeplinkCString = [lastDeeplinkString UTF8String];
if (NULL == lastDeeplinkCString) {
return NULL;
}

char* lastDeeplinkCStringCopy = strdup(lastDeeplinkCString);
return lastDeeplinkCStringCopy;
}

void _AdjustSetTestOptions(const char* baseUrl,
const char* gdprUrl,
const char* subscriptionUrl,
Expand Down
20 changes: 17 additions & 3 deletions Assets/Adjust/iOS/AdjustiOS.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ namespace com.adjust.sdk
#if UNITY_IOS
public class AdjustiOS
{
private const string sdkPrefix = "unity4.31.0";
private const string sdkPrefix = "unity4.32.0";

[DllImport("__Internal")]
private static extern void _AdjustLaunchApp(
Expand Down Expand Up @@ -141,7 +141,7 @@ private static extern void _AdjustTrackAppStoreSubscription(
string jsonPartnerParameters);

[DllImport("__Internal")]
private static extern void _AdjustTrackThirdPartySharing(int enabled, string jsonGranularOptions);
private static extern void _AdjustTrackThirdPartySharing(int enabled, string jsonGranularOptions, string jsonPartnerSharingSettings);

[DllImport("__Internal")]
private static extern void _AdjustTrackMeasurementConsent(int enabled);
Expand Down Expand Up @@ -180,6 +180,9 @@ private static extern void _AdjustSetTestOptions(
[DllImport("__Internal")]
private static extern void _AdjustTrackSubsessionEnd();

[DllImport("__Internal")]
private static extern string _AdjustGetLastDeeplink();

public AdjustiOS() {}

public static void Start(AdjustConfig adjustConfig)
Expand Down Expand Up @@ -388,8 +391,14 @@ public static void TrackThirdPartySharing(AdjustThirdPartySharing thirdPartyShar
jsonGranularOptions.Add(entry.Key);
jsonGranularOptions.Add(AdjustUtils.ConvertListToJson(entry.Value));
}
List<string> jsonPartnerSharingSettings = new List<string>();
foreach (KeyValuePair<string, List<string>> entry in thirdPartySharing.partnerSharingSettings)
{
jsonPartnerSharingSettings.Add(entry.Key);
jsonPartnerSharingSettings.Add(AdjustUtils.ConvertListToJson(entry.Value));
}

_AdjustTrackThirdPartySharing(enabled, AdjustUtils.ConvertListToJson(jsonGranularOptions));
_AdjustTrackThirdPartySharing(enabled, AdjustUtils.ConvertListToJson(jsonGranularOptions), AdjustUtils.ConvertListToJson(jsonPartnerSharingSettings));
}

public static void TrackMeasurementConsent(bool enabled)
Expand Down Expand Up @@ -460,6 +469,11 @@ public static AdjustAttribution GetAttribution()
return attribution;
}

public static string GetLastDeeplink()
{
return _AdjustGetLastDeeplink();
}

// Used for testing only.
public static void SetTestOptions(Dictionary<string, string> testOptions)
{
Expand Down
Binary file modified Assets/Adjust/iOS/Test/AdjustTestLibrary.a
Binary file not shown.
Binary file modified Assets/AdjustOaid/Android/adjust-android-oaid.jar
Binary file not shown.
Loading

0 comments on commit 32381d6

Please sign in to comment.