From 36de70522441b23143a8d1604673d83edc92e207 Mon Sep 17 00:00:00 2001 From: Shashank Suhane Date: Tue, 31 Oct 2023 12:41:15 +0100 Subject: [PATCH 01/11] feat: update URL strategy CN having no fallback domains. --- .../src/main/java/com/adjust/sdk/network/UrlStrategy.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Adjust/sdk-core/src/main/java/com/adjust/sdk/network/UrlStrategy.java b/Adjust/sdk-core/src/main/java/com/adjust/sdk/network/UrlStrategy.java index 2ca24b4ee..ec4f4c40a 100644 --- a/Adjust/sdk-core/src/main/java/com/adjust/sdk/network/UrlStrategy.java +++ b/Adjust/sdk-core/src/main/java/com/adjust/sdk/network/UrlStrategy.java @@ -159,7 +159,7 @@ private static List baseUrlChoices(final String urlStrategy) { } else if (URL_STRATEGY_CHINA.equals(urlStrategy)) { return Arrays.asList(BASE_URL_CHINA, Constants.BASE_URL); } else if (URL_STRATEGY_CN.equals(urlStrategy)) { - return Arrays.asList(BASE_URL_CN, Constants.BASE_URL); + return Arrays.asList(BASE_URL_CN); } else if (DATA_RESIDENCY_EU.equals(urlStrategy)) { return Collections.singletonList(BASE_URL_EU); } else if (DATA_RESIDENCY_TR.equals(urlStrategy)) { @@ -176,7 +176,7 @@ private static List gdprUrlChoices(final String urlStrategy) { } else if (URL_STRATEGY_CHINA.equals(urlStrategy)) { return Arrays.asList(GDPR_URL_CHINA, Constants.GDPR_URL); } else if (URL_STRATEGY_CN.equals(urlStrategy)) { - return Arrays.asList(GDPR_URL_CN, Constants.GDPR_URL); + return Arrays.asList(GDPR_URL_CN); } else if (DATA_RESIDENCY_EU.equals(urlStrategy)) { return Collections.singletonList(GDPR_URL_EU); } else if (DATA_RESIDENCY_TR.equals(urlStrategy)) { @@ -193,7 +193,7 @@ private static List subscriptionUrlChoices(final String urlStrategy) { } else if (URL_STRATEGY_CHINA.equals(urlStrategy)) { return Arrays.asList(SUBSCRIPTION_URL_CHINA, Constants.SUBSCRIPTION_URL); } else if (URL_STRATEGY_CN.equals(urlStrategy)) { - return Arrays.asList(SUBSCRIPTION_URL_CN, Constants.SUBSCRIPTION_URL); + return Arrays.asList(SUBSCRIPTION_URL_CN); } else if (DATA_RESIDENCY_EU.equals(urlStrategy)) { return Collections.singletonList(SUBSCRIPTION_URL_EU); } else if (DATA_RESIDENCY_TR.equals(urlStrategy)) { @@ -212,7 +212,7 @@ private static List purchaseVerificationUrlChoices(final String urlStrat } else if (URL_STRATEGY_CHINA.equals(urlStrategy)) { return Arrays.asList(PURCHASE_VERIFICATION_URL_CHINA, Constants.PURCHASE_VERIFICATION_URL); } else if (URL_STRATEGY_CN.equals(urlStrategy)) { - return Arrays.asList(PURCHASE_VERIFICATION_URL_CN, Constants.PURCHASE_VERIFICATION_URL); + return Arrays.asList(PURCHASE_VERIFICATION_URL_CN); } else if (DATA_RESIDENCY_EU.equals(urlStrategy)) { return Collections.singletonList(PURCHASE_VERIFICATION_URL_EU); } else if (DATA_RESIDENCY_TR.equals(urlStrategy)) { From 88c7deeeaf0d93ba5849fdd890a23336f5fbfc3f Mon Sep 17 00:00:00 2001 From: Shashank Suhane Date: Fri, 3 Nov 2023 09:13:32 +0100 Subject: [PATCH 02/11] feat: add URL_STRATEGY_CN_ONLY --- .../src/main/java/com/adjust/sdk/AdjustConfig.java | 2 ++ .../main/java/com/adjust/sdk/network/UrlStrategy.java | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/Adjust/sdk-core/src/main/java/com/adjust/sdk/AdjustConfig.java b/Adjust/sdk-core/src/main/java/com/adjust/sdk/AdjustConfig.java index f8be241d2..174da7b20 100644 --- a/Adjust/sdk-core/src/main/java/com/adjust/sdk/AdjustConfig.java +++ b/Adjust/sdk-core/src/main/java/com/adjust/sdk/AdjustConfig.java @@ -53,6 +53,7 @@ public class AdjustConfig { public static final String URL_STRATEGY_INDIA = "url_strategy_india"; public static final String URL_STRATEGY_CHINA = "url_strategy_china"; public static final String URL_STRATEGY_CN = "url_strategy_cn"; + public static final String URL_STRATEGY_CN_ONLY = "url_strategy_cn_only"; public static final String DATA_RESIDENCY_EU = "data_residency_eu"; public static final String DATA_RESIDENCY_TR = "data_residency_tr"; public static final String DATA_RESIDENCY_US = "data_residency_us"; @@ -225,6 +226,7 @@ public void setUrlStrategy(String urlStrategy) { if (!urlStrategy.equals(URL_STRATEGY_INDIA) && !urlStrategy.equals(URL_STRATEGY_CHINA) && !urlStrategy.equals(URL_STRATEGY_CN) + && !urlStrategy.equals(URL_STRATEGY_CN_ONLY) && !urlStrategy.equals(DATA_RESIDENCY_EU) && !urlStrategy.equals(DATA_RESIDENCY_TR) && !urlStrategy.equals(DATA_RESIDENCY_US)) diff --git a/Adjust/sdk-core/src/main/java/com/adjust/sdk/network/UrlStrategy.java b/Adjust/sdk-core/src/main/java/com/adjust/sdk/network/UrlStrategy.java index ec4f4c40a..ae434da78 100644 --- a/Adjust/sdk-core/src/main/java/com/adjust/sdk/network/UrlStrategy.java +++ b/Adjust/sdk-core/src/main/java/com/adjust/sdk/network/UrlStrategy.java @@ -11,6 +11,7 @@ import static com.adjust.sdk.AdjustConfig.DATA_RESIDENCY_US; import static com.adjust.sdk.AdjustConfig.URL_STRATEGY_CHINA; import static com.adjust.sdk.AdjustConfig.URL_STRATEGY_CN; +import static com.adjust.sdk.AdjustConfig.URL_STRATEGY_CN_ONLY; import static com.adjust.sdk.AdjustConfig.URL_STRATEGY_INDIA; import static com.adjust.sdk.AdjustConfig.DATA_RESIDENCY_EU; @@ -159,6 +160,8 @@ private static List baseUrlChoices(final String urlStrategy) { } else if (URL_STRATEGY_CHINA.equals(urlStrategy)) { return Arrays.asList(BASE_URL_CHINA, Constants.BASE_URL); } else if (URL_STRATEGY_CN.equals(urlStrategy)) { + return Arrays.asList(BASE_URL_CN, Constants.BASE_URL); + } else if (URL_STRATEGY_CN_ONLY.equals(urlStrategy)) { return Arrays.asList(BASE_URL_CN); } else if (DATA_RESIDENCY_EU.equals(urlStrategy)) { return Collections.singletonList(BASE_URL_EU); @@ -176,6 +179,8 @@ private static List gdprUrlChoices(final String urlStrategy) { } else if (URL_STRATEGY_CHINA.equals(urlStrategy)) { return Arrays.asList(GDPR_URL_CHINA, Constants.GDPR_URL); } else if (URL_STRATEGY_CN.equals(urlStrategy)) { + return Arrays.asList(GDPR_URL_CN, Constants.GDPR_URL); + } else if (URL_STRATEGY_CN_ONLY.equals(urlStrategy)) { return Arrays.asList(GDPR_URL_CN); } else if (DATA_RESIDENCY_EU.equals(urlStrategy)) { return Collections.singletonList(GDPR_URL_EU); @@ -193,6 +198,8 @@ private static List subscriptionUrlChoices(final String urlStrategy) { } else if (URL_STRATEGY_CHINA.equals(urlStrategy)) { return Arrays.asList(SUBSCRIPTION_URL_CHINA, Constants.SUBSCRIPTION_URL); } else if (URL_STRATEGY_CN.equals(urlStrategy)) { + return Arrays.asList(SUBSCRIPTION_URL_CN, Constants.SUBSCRIPTION_URL); + } else if (URL_STRATEGY_CN_ONLY.equals(urlStrategy)) { return Arrays.asList(SUBSCRIPTION_URL_CN); } else if (DATA_RESIDENCY_EU.equals(urlStrategy)) { return Collections.singletonList(SUBSCRIPTION_URL_EU); @@ -212,6 +219,8 @@ private static List purchaseVerificationUrlChoices(final String urlStrat } else if (URL_STRATEGY_CHINA.equals(urlStrategy)) { return Arrays.asList(PURCHASE_VERIFICATION_URL_CHINA, Constants.PURCHASE_VERIFICATION_URL); } else if (URL_STRATEGY_CN.equals(urlStrategy)) { + return Arrays.asList(PURCHASE_VERIFICATION_URL_CN, Constants.PURCHASE_VERIFICATION_URL); + } else if (URL_STRATEGY_CN_ONLY.equals(urlStrategy)) { return Arrays.asList(PURCHASE_VERIFICATION_URL_CN); } else if (DATA_RESIDENCY_EU.equals(urlStrategy)) { return Collections.singletonList(PURCHASE_VERIFICATION_URL_EU); From a165e04bcc4b839896097b14f8335cba5d87133e Mon Sep 17 00:00:00 2001 From: Shashank Suhane Date: Fri, 3 Nov 2023 09:39:04 +0100 Subject: [PATCH 03/11] feat: add CN_ONLY url strategy to web bridge plugin --- Adjust/sdk-plugin-webbridge/src/main/assets/adjust_config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/Adjust/sdk-plugin-webbridge/src/main/assets/adjust_config.js b/Adjust/sdk-plugin-webbridge/src/main/assets/adjust_config.js index 968f8b2b0..38adb5b6e 100644 --- a/Adjust/sdk-plugin-webbridge/src/main/assets/adjust_config.js +++ b/Adjust/sdk-plugin-webbridge/src/main/assets/adjust_config.js @@ -65,6 +65,7 @@ AdjustConfig.EnvironmentProduction = 'production'; AdjustConfig.UrlStrategyIndia = "url_strategy_india"; AdjustConfig.UrlStrategyChina = "url_strategy_china"; AdjustConfig.UrlStrategyCn = "url_strategy_cn"; +AdjustConfig.UrlStrategyCnOnly = "url_strategy_cn_only"; AdjustConfig.DataResidencyEU = "data_residency_eu"; AdjustConfig.DataResidencyTR = "data_residency_tr"; AdjustConfig.DataResidencyUS = "data_residency_us"; From 5eb25f82803b77630b70b249b74ee5665c26c99c Mon Sep 17 00:00:00 2001 From: Shashank Suhane Date: Mon, 6 Nov 2023 17:24:23 +0100 Subject: [PATCH 04/11] feat: add opt-in config method for reading device info once --- .../java/com/adjust/sdk/AdjustConfig.java | 9 + .../main/java/com/adjust/sdk/DeviceInfo.java | 71 +++-- .../java/com/adjust/sdk/PackageBuilder.java | 245 +++++++++--------- 3 files changed, 183 insertions(+), 142 deletions(-) diff --git a/Adjust/sdk-core/src/main/java/com/adjust/sdk/AdjustConfig.java b/Adjust/sdk-core/src/main/java/com/adjust/sdk/AdjustConfig.java index 174da7b20..48aaf78e5 100644 --- a/Adjust/sdk-core/src/main/java/com/adjust/sdk/AdjustConfig.java +++ b/Adjust/sdk-core/src/main/java/com/adjust/sdk/AdjustConfig.java @@ -46,6 +46,7 @@ public class AdjustConfig { boolean coppaCompliantEnabled; boolean finalAttributionEnabled; String fbAppId; + boolean readDeviceInfoOnceEnabled; public static final String ENVIRONMENT_SANDBOX = "sandbox"; public static final String ENVIRONMENT_PRODUCTION = "production"; @@ -236,6 +237,10 @@ public void setUrlStrategy(String urlStrategy) { this.urlStrategy = urlStrategy; } + public void setReadDeviceInfoOnceEnabled(boolean readDeviceInfoOnceEnabled) { + this.readDeviceInfoOnceEnabled = readDeviceInfoOnceEnabled; + } + public String getBasePath() { return basePath; } @@ -388,6 +393,10 @@ public String getFbAppId() { return fbAppId; } + public boolean isReadDeviceInfoOnceEnabled() { + return readDeviceInfoOnceEnabled; + } + private void setLogLevel(LogLevel logLevel, String environment) { logger.setLogLevel(logLevel, AdjustConfig.ENVIRONMENT_PRODUCTION.equals(environment)); } diff --git a/Adjust/sdk-core/src/main/java/com/adjust/sdk/DeviceInfo.java b/Adjust/sdk-core/src/main/java/com/adjust/sdk/DeviceInfo.java index 0050b1b51..bbfcef6d8 100644 --- a/Adjust/sdk-core/src/main/java/com/adjust/sdk/DeviceInfo.java +++ b/Adjust/sdk-core/src/main/java/com/adjust/sdk/DeviceInfo.java @@ -15,6 +15,7 @@ import java.util.Date; import java.util.Locale; +import java.util.Map; import static android.content.res.Configuration.UI_MODE_TYPE_MASK; import static android.content.res.Configuration.UI_MODE_TYPE_TELEVISION; @@ -56,6 +57,8 @@ class DeviceInfo { int playAdIdAttempt = -1; Boolean isTrackingEnabled; private boolean nonGoogleIdsReadOnce = false; + private boolean playIdsReadOnce = false; + private boolean otherDeviceInfoParamsReadOnce = false; String androidId; String fbAttributionId; String clientSdk; @@ -83,17 +86,26 @@ class DeviceInfo { String appSetId; boolean isGooglePlayGamesForPC; + Map imeiParameters; + Map oaidParameters; + String fireAdId; + Boolean fireTrackingEnabled; + int connectivityType; + String mcc; + String mnc; + DeviceInfo(AdjustConfig adjustConfig) { Context context = adjustConfig.context; Resources resources = context.getResources(); DisplayMetrics displayMetrics = resources.getDisplayMetrics(); Configuration configuration = resources.getConfiguration(); Locale locale = Util.getLocale(configuration); + PackageInfo packageInfo = getPackageInfo(context); int screenLayout = configuration.screenLayout; isGooglePlayGamesForPC = Util.isGooglePlayGamesForPC(context); packageName = getPackageName(context); - appVersion = getAppVersion(context); + appVersion = getAppVersion(packageInfo); deviceType = getDeviceType(configuration); deviceName = getDeviceName(); deviceManufacturer = getDeviceManufacturer(); @@ -112,8 +124,8 @@ class DeviceInfo { hardwareName = getHardwareName(); abi = getABI(); buildName = getBuildName(); - appInstallTime = getAppInstallTime(context); - appUpdateTime = getAppUpdateTime(context); + appInstallTime = getAppInstallTime(packageInfo); + appUpdateTime = getAppUpdateTime(packageInfo); uiMode = getDeviceUiMode(configuration); if (Util.canReadPlayIds(adjustConfig)) { appSetId = Reflection.getAppSetId(context); @@ -125,6 +137,10 @@ void reloadPlayIds(final AdjustConfig adjustConfig) { return; } + if (playIdsReadOnce && adjustConfig.readDeviceInfoOnceEnabled) { + return; + } + Context context = adjustConfig.context; String previousPlayAdId = playAdId; Boolean previousIsTrackingEnabled = isTrackingEnabled; @@ -134,6 +150,7 @@ void reloadPlayIds(final AdjustConfig adjustConfig) { playAdIdSource = null; playAdIdAttempt = -1; + playIdsReadOnce = true; // attempt connecting to Google Play Service by own for (int serviceAttempt = 1; serviceAttempt <= 3; serviceAttempt += 1) { @@ -204,20 +221,44 @@ void reloadNonPlayIds(final AdjustConfig adjustConfig) { if (nonGoogleIdsReadOnce) { return; } + androidId = Util.getAndroidId(adjustConfig.context); nonGoogleIdsReadOnce = true; } + void reloadOtherDeviceInfoParams(final AdjustConfig adjustConfig, ILogger logger) { + if (adjustConfig.readDeviceInfoOnceEnabled && otherDeviceInfoParamsReadOnce) { + return; + } + + imeiParameters = Util.getImeiParameters(adjustConfig, logger); + oaidParameters = Util.getOaidParameters(adjustConfig, logger); + fireAdId = Util.getFireAdvertisingId(adjustConfig); + fireTrackingEnabled = Util.getFireTrackingEnabled(adjustConfig); + connectivityType = Util.getConnectivityType(adjustConfig.context); + mcc = Util.getMcc(adjustConfig.context); + mnc = Util.getMnc(adjustConfig.context); + + otherDeviceInfoParamsReadOnce = true; + } + private String getPackageName(Context context) { return context.getPackageName(); } - private String getAppVersion(Context context) { + private PackageInfo getPackageInfo(Context context) { try { PackageManager packageManager = context.getPackageManager(); String name = context.getPackageName(); - PackageInfo info = packageManager.getPackageInfo(name, 0); - return info.versionName; + return packageManager.getPackageInfo(name, PackageManager.GET_PERMISSIONS); + } catch (Exception e) { + return null; + } + } + + private String getAppVersion(PackageInfo packageInfo) { + try { + return packageInfo.versionName; } catch (Exception e) { return null; } @@ -406,27 +447,17 @@ private String getABI() { return SupportedABIS[0]; } - private String getAppInstallTime(Context context) { + private String getAppInstallTime(PackageInfo packageInfo) { try { - PackageManager packageManager = context.getPackageManager(); - PackageInfo packageInfo = packageManager.getPackageInfo(context.getPackageName(), PackageManager.GET_PERMISSIONS); - - String appInstallTime = Util.dateFormatter.format(new Date(packageInfo.firstInstallTime)); - - return appInstallTime; + return Util.dateFormatter.format(new Date(packageInfo.firstInstallTime)); } catch (Exception ex) { return null; } } - private String getAppUpdateTime(Context context) { + private String getAppUpdateTime(PackageInfo packageInfo) { try { - PackageManager packageManager = context.getPackageManager(); - PackageInfo packageInfo = packageManager.getPackageInfo(context.getPackageName(), PackageManager.GET_PERMISSIONS); - - String appInstallTime = Util.dateFormatter.format(new Date(packageInfo.lastUpdateTime)); - - return appInstallTime; + return Util.dateFormatter.format(new Date(packageInfo.lastUpdateTime)); } catch (Exception ex) { return null; } diff --git a/Adjust/sdk-core/src/main/java/com/adjust/sdk/PackageBuilder.java b/Adjust/sdk-core/src/main/java/com/adjust/sdk/PackageBuilder.java index 278fa5c75..4f9200b23 100644 --- a/Adjust/sdk-core/src/main/java/com/adjust/sdk/PackageBuilder.java +++ b/Adjust/sdk-core/src/main/java/com/adjust/sdk/PackageBuilder.java @@ -274,17 +274,17 @@ ActivityPackage buildVerificationPackage(AdjustPurchase purchase, OnPurchaseVeri private Map getSessionParameters(boolean isInDelay) { Map parameters = new HashMap(); - Map imeiParameters = Util.getImeiParameters(adjustConfig, logger); + + deviceInfo.reloadOtherDeviceInfoParams(adjustConfig, logger); // Check if plugin is used and if yes, add read parameters. - if (imeiParameters != null) { - parameters.putAll(imeiParameters); + if (deviceInfo.imeiParameters != null) { + parameters.putAll(deviceInfo.imeiParameters); } // Check if oaid plugin is used and if yes, add the parameter - Map oaidParameters = Util.getOaidParameters(adjustConfig, logger); - if (oaidParameters != null) { - parameters.putAll(oaidParameters); + if (deviceInfo.oaidParameters != null) { + parameters.putAll(deviceInfo.oaidParameters); } // Callback and partner parameters. @@ -300,8 +300,8 @@ private Map getSessionParameters(boolean isInDelay) { PackageBuilder.addLong(parameters, "gps_adid_attempt", deviceInfo.playAdIdAttempt); PackageBuilder.addString(parameters, "gps_adid_src", deviceInfo.playAdIdSource); PackageBuilder.addBoolean(parameters, "tracking_enabled", deviceInfo.isTrackingEnabled); - PackageBuilder.addString(parameters, "fire_adid", Util.getFireAdvertisingId(adjustConfig)); - PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", Util.getFireTrackingEnabled(adjustConfig)); + PackageBuilder.addString(parameters, "fire_adid", deviceInfo.fireAdId); + PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", deviceInfo.fireTrackingEnabled); PackageBuilder.addString(parameters, "google_app_set_id", deviceInfo.appSetId); if (!containsPlayIds(parameters) && !containsFireIds(parameters)) { @@ -317,7 +317,7 @@ private Map getSessionParameters(boolean isInDelay) { PackageBuilder.addString(parameters, "app_token", adjustConfig.appToken); PackageBuilder.addString(parameters, "app_version", deviceInfo.appVersion); PackageBuilder.addBoolean(parameters, "attribution_deeplink", true); - PackageBuilder.addLong(parameters, "connectivity_type", Util.getConnectivityType(adjustConfig.context)); + PackageBuilder.addLong(parameters, "connectivity_type", deviceInfo.connectivityType); PackageBuilder.addString(parameters, "country", deviceInfo.country); PackageBuilder.addString(parameters, "cpu_type", deviceInfo.abi); PackageBuilder.addDateInMilliseconds(parameters, "created_at", createdAt); @@ -338,8 +338,8 @@ private Map getSessionParameters(boolean isInDelay) { PackageBuilder.addString(parameters, "installed_at", deviceInfo.appInstallTime); PackageBuilder.addString(parameters, "language", deviceInfo.language); PackageBuilder.addDuration(parameters, "last_interval", activityStateCopy.lastInterval); - PackageBuilder.addString(parameters, "mcc", Util.getMcc(adjustConfig.context)); - PackageBuilder.addString(parameters, "mnc", Util.getMnc(adjustConfig.context)); + PackageBuilder.addString(parameters, "mcc", deviceInfo.mcc); + PackageBuilder.addString(parameters, "mnc", deviceInfo.mnc); PackageBuilder.addBoolean(parameters, "needs_response_details", true); PackageBuilder.addString(parameters, "os_build", deviceInfo.buildName); PackageBuilder.addString(parameters, "os_name", deviceInfo.osName); @@ -367,17 +367,17 @@ private Map getSessionParameters(boolean isInDelay) { public Map getEventParameters(AdjustEvent event, boolean isInDelay) { Map parameters = new HashMap(); - Map imeiParameters = Util.getImeiParameters(adjustConfig, logger); + + deviceInfo.reloadOtherDeviceInfoParams(adjustConfig, logger); // Check if plugin is used and if yes, add read parameters. - if (imeiParameters != null) { - parameters.putAll(imeiParameters); + if (deviceInfo.imeiParameters != null) { + parameters.putAll(deviceInfo.imeiParameters); } // Check if oaid plugin is used and if yes, add the parameter - Map oaidParameters = Util.getOaidParameters(adjustConfig, logger); - if (oaidParameters != null) { - parameters.putAll(oaidParameters); + if (deviceInfo.oaidParameters != null) { + parameters.putAll(deviceInfo.oaidParameters); } // Callback and partner parameters. @@ -393,8 +393,8 @@ public Map getEventParameters(AdjustEvent event, boolean isInDel PackageBuilder.addLong(parameters, "gps_adid_attempt", deviceInfo.playAdIdAttempt); PackageBuilder.addString(parameters, "gps_adid_src", deviceInfo.playAdIdSource); PackageBuilder.addBoolean(parameters, "tracking_enabled", deviceInfo.isTrackingEnabled); - PackageBuilder.addString(parameters, "fire_adid", Util.getFireAdvertisingId(adjustConfig)); - PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", Util.getFireTrackingEnabled(adjustConfig)); + PackageBuilder.addString(parameters, "fire_adid", deviceInfo.fireAdId); + PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", deviceInfo.fireTrackingEnabled); PackageBuilder.addString(parameters, "google_app_set_id", deviceInfo.appSetId); if (!containsPlayIds(parameters) && !containsFireIds(parameters)) { @@ -410,7 +410,7 @@ public Map getEventParameters(AdjustEvent event, boolean isInDel PackageBuilder.addString(parameters, "app_token", adjustConfig.appToken); PackageBuilder.addString(parameters, "app_version", deviceInfo.appVersion); PackageBuilder.addBoolean(parameters, "attribution_deeplink", true); - PackageBuilder.addLong(parameters, "connectivity_type", Util.getConnectivityType(adjustConfig.context)); + PackageBuilder.addLong(parameters, "connectivity_type", deviceInfo.connectivityType); PackageBuilder.addString(parameters, "country", deviceInfo.country); PackageBuilder.addString(parameters, "cpu_type", deviceInfo.abi); PackageBuilder.addDateInMilliseconds(parameters, "created_at", createdAt); @@ -432,8 +432,8 @@ public Map getEventParameters(AdjustEvent event, boolean isInDel PackageBuilder.addString(parameters, "fb_id", deviceInfo.fbAttributionId); PackageBuilder.addString(parameters, "hardware_name", deviceInfo.hardwareName); PackageBuilder.addString(parameters, "language", deviceInfo.language); - PackageBuilder.addString(parameters, "mcc", Util.getMcc(adjustConfig.context)); - PackageBuilder.addString(parameters, "mnc", Util.getMnc(adjustConfig.context)); + PackageBuilder.addString(parameters, "mcc", deviceInfo.mcc); + PackageBuilder.addString(parameters, "mnc", deviceInfo.mnc); PackageBuilder.addBoolean(parameters, "needs_response_details", true); PackageBuilder.addString(parameters, "os_build", deviceInfo.buildName); PackageBuilder.addString(parameters, "os_name", deviceInfo.osName); @@ -464,11 +464,12 @@ public Map getEventParameters(AdjustEvent event, boolean isInDel private Map getInfoParameters(String source) { Map parameters = new HashMap(); - Map imeiParameters = Util.getImeiParameters(adjustConfig, logger); + + deviceInfo.reloadOtherDeviceInfoParams(adjustConfig, logger); // Check if plugin is used and if yes, add read parameters. - if (imeiParameters != null) { - parameters.putAll(imeiParameters); + if (deviceInfo.imeiParameters != null) { + parameters.putAll(deviceInfo.imeiParameters); } // Check if oaid plugin is used and if yes, add the parameter @@ -484,8 +485,8 @@ private Map getInfoParameters(String source) { PackageBuilder.addLong(parameters, "gps_adid_attempt", deviceInfo.playAdIdAttempt); PackageBuilder.addString(parameters, "gps_adid_src", deviceInfo.playAdIdSource); PackageBuilder.addBoolean(parameters, "tracking_enabled", deviceInfo.isTrackingEnabled); - PackageBuilder.addString(parameters, "fire_adid", Util.getFireAdvertisingId(adjustConfig)); - PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", Util.getFireTrackingEnabled(adjustConfig)); + PackageBuilder.addString(parameters, "fire_adid", deviceInfo.fireAdId); + PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", deviceInfo.fireTrackingEnabled); PackageBuilder.addString(parameters, "google_app_set_id", deviceInfo.appSetId); if (!containsPlayIds(parameters) && !containsFireIds(parameters)) { @@ -521,17 +522,17 @@ private Map getInfoParameters(String source) { private Map getClickParameters(String source) { Map parameters = new HashMap(); - Map imeiParameters = Util.getImeiParameters(adjustConfig, logger); + + deviceInfo.reloadOtherDeviceInfoParams(adjustConfig, logger); // Check if plugin is used and if yes, add read parameters. - if (imeiParameters != null) { - parameters.putAll(imeiParameters); + if (deviceInfo.imeiParameters != null) { + parameters.putAll(deviceInfo.imeiParameters); } // Check if oaid plugin is used and if yes, add the parameter - Map oaidParameters = Util.getOaidParameters(adjustConfig, logger); - if (oaidParameters != null) { - parameters.putAll(oaidParameters); + if (deviceInfo.oaidParameters != null) { + parameters.putAll(deviceInfo.oaidParameters); } // Device identifiers. @@ -541,8 +542,8 @@ private Map getClickParameters(String source) { PackageBuilder.addLong(parameters, "gps_adid_attempt", deviceInfo.playAdIdAttempt); PackageBuilder.addString(parameters, "gps_adid_src", deviceInfo.playAdIdSource); PackageBuilder.addBoolean(parameters, "tracking_enabled", deviceInfo.isTrackingEnabled); - PackageBuilder.addString(parameters, "fire_adid", Util.getFireAdvertisingId(adjustConfig)); - PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", Util.getFireTrackingEnabled(adjustConfig)); + PackageBuilder.addString(parameters, "fire_adid", deviceInfo.fireAdId); + PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", deviceInfo.fireTrackingEnabled); PackageBuilder.addString(parameters, "google_app_set_id", deviceInfo.appSetId); if (!containsPlayIds(parameters) && !containsFireIds(parameters)) { @@ -570,7 +571,7 @@ private Map getClickParameters(String source) { PackageBuilder.addDateInMilliseconds(parameters, "click_time", clickTimeInMilliseconds); PackageBuilder.addDateInSeconds(parameters, "click_time", clickTimeInSeconds); PackageBuilder.addDateInSeconds(parameters, "click_time_server", clickTimeServerInSeconds); - PackageBuilder.addLong(parameters, "connectivity_type", Util.getConnectivityType(adjustConfig.context)); + PackageBuilder.addLong(parameters, "connectivity_type", deviceInfo.connectivityType); PackageBuilder.addString(parameters, "country", deviceInfo.country); PackageBuilder.addString(parameters, "cpu_type", deviceInfo.abi); PackageBuilder.addDateInMilliseconds(parameters, "created_at", createdAt); @@ -596,8 +597,8 @@ private Map getClickParameters(String source) { PackageBuilder.addString(parameters, "installed_at", deviceInfo.appInstallTime); PackageBuilder.addString(parameters, "language", deviceInfo.language); PackageBuilder.addDuration(parameters, "last_interval", activityStateCopy.lastInterval); - PackageBuilder.addString(parameters, "mcc", Util.getMcc(adjustConfig.context)); - PackageBuilder.addString(parameters, "mnc", Util.getMnc(adjustConfig.context)); + PackageBuilder.addString(parameters, "mcc", deviceInfo.mcc); + PackageBuilder.addString(parameters, "mnc", deviceInfo.mnc); PackageBuilder.addBoolean(parameters, "needs_response_details", true); PackageBuilder.addString(parameters, "os_build", deviceInfo.buildName); PackageBuilder.addString(parameters, "os_name", deviceInfo.osName); @@ -634,17 +635,17 @@ private Map getClickParameters(String source) { private Map getAttributionParameters(String initiatedBy) { Map parameters = new HashMap(); - Map imeiParameters = Util.getImeiParameters(adjustConfig, logger); + + deviceInfo.reloadOtherDeviceInfoParams(adjustConfig, logger); // Check if plugin is used and if yes, add read parameters. - if (imeiParameters != null) { - parameters.putAll(imeiParameters); + if (deviceInfo.imeiParameters != null) { + parameters.putAll(deviceInfo.imeiParameters); } // Check if oaid plugin is used and if yes, add the parameter - Map oaidParameters = Util.getOaidParameters(adjustConfig, logger); - if (oaidParameters != null) { - parameters.putAll(oaidParameters); + if (deviceInfo.oaidParameters != null) { + parameters.putAll(deviceInfo.oaidParameters); } // Device identifiers. @@ -654,8 +655,8 @@ private Map getAttributionParameters(String initiatedBy) { PackageBuilder.addLong(parameters, "gps_adid_attempt", deviceInfo.playAdIdAttempt); PackageBuilder.addString(parameters, "gps_adid_src", deviceInfo.playAdIdSource); PackageBuilder.addBoolean(parameters, "tracking_enabled", deviceInfo.isTrackingEnabled); - PackageBuilder.addString(parameters, "fire_adid", Util.getFireAdvertisingId(adjustConfig)); - PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", Util.getFireTrackingEnabled(adjustConfig)); + PackageBuilder.addString(parameters, "fire_adid", deviceInfo.fireAdId); + PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", deviceInfo.fireTrackingEnabled); PackageBuilder.addString(parameters, "google_app_set_id", deviceInfo.appSetId); if (!containsPlayIds(parameters) && !containsFireIds(parameters)) { @@ -699,17 +700,17 @@ private Map getAttributionParameters(String initiatedBy) { private Map getGdprParameters() { Map parameters = new HashMap(); - Map imeiParameters = Util.getImeiParameters(adjustConfig, logger); + + deviceInfo.reloadOtherDeviceInfoParams(adjustConfig, logger); // Check if plugin is used and if yes, add read parameters. - if (imeiParameters != null) { - parameters.putAll(imeiParameters); + if (deviceInfo.imeiParameters != null) { + parameters.putAll(deviceInfo.imeiParameters); } // Check if oaid plugin is used and if yes, add the parameter - Map oaidParameters = Util.getOaidParameters(adjustConfig, logger); - if (oaidParameters != null) { - parameters.putAll(oaidParameters); + if (deviceInfo.oaidParameters != null) { + parameters.putAll(deviceInfo.oaidParameters); } // Device identifiers. @@ -719,8 +720,8 @@ private Map getGdprParameters() { PackageBuilder.addLong(parameters, "gps_adid_attempt", deviceInfo.playAdIdAttempt); PackageBuilder.addString(parameters, "gps_adid_src", deviceInfo.playAdIdSource); PackageBuilder.addBoolean(parameters, "tracking_enabled", deviceInfo.isTrackingEnabled); - PackageBuilder.addString(parameters, "fire_adid", Util.getFireAdvertisingId(adjustConfig)); - PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", Util.getFireTrackingEnabled(adjustConfig)); + PackageBuilder.addString(parameters, "fire_adid", deviceInfo.fireAdId); + PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", deviceInfo.fireTrackingEnabled); PackageBuilder.addString(parameters, "google_app_set_id", deviceInfo.appSetId); if (!containsPlayIds(parameters) && !containsFireIds(parameters)) { @@ -763,17 +764,17 @@ private Map getGdprParameters() { private Map getDisableThirdPartySharingParameters() { Map parameters = new HashMap(); - Map imeiParameters = Util.getImeiParameters(adjustConfig, logger); + + deviceInfo.reloadOtherDeviceInfoParams(adjustConfig, logger); // Check if plugin is used and if yes, add read parameters. - if (imeiParameters != null) { - parameters.putAll(imeiParameters); + if (deviceInfo.imeiParameters != null) { + parameters.putAll(deviceInfo.imeiParameters); } // Check if oaid plugin is used and if yes, add the parameter - Map oaidParameters = Util.getOaidParameters(adjustConfig, logger); - if (oaidParameters != null) { - parameters.putAll(oaidParameters); + if (deviceInfo.oaidParameters != null) { + parameters.putAll(deviceInfo.oaidParameters); } // Device identifiers. @@ -783,8 +784,8 @@ private Map getDisableThirdPartySharingParameters() { PackageBuilder.addLong(parameters, "gps_adid_attempt", deviceInfo.playAdIdAttempt); PackageBuilder.addString(parameters, "gps_adid_src", deviceInfo.playAdIdSource); PackageBuilder.addBoolean(parameters, "tracking_enabled", deviceInfo.isTrackingEnabled); - PackageBuilder.addString(parameters, "fire_adid", Util.getFireAdvertisingId(adjustConfig)); - PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", Util.getFireTrackingEnabled(adjustConfig)); + PackageBuilder.addString(parameters, "fire_adid", deviceInfo.fireAdId); + PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", deviceInfo.fireTrackingEnabled); PackageBuilder.addString(parameters, "google_app_set_id", deviceInfo.appSetId); if (!containsPlayIds(parameters) && !containsFireIds(parameters)) { @@ -829,17 +830,17 @@ private Map getDisableThirdPartySharingParameters() { (final AdjustThirdPartySharing adjustThirdPartySharing) { Map parameters = new HashMap(); - Map imeiParameters = Util.getImeiParameters(adjustConfig, logger); + + deviceInfo.reloadOtherDeviceInfoParams(adjustConfig, logger); // Check if plugin is used and if yes, add read parameters. - if (imeiParameters != null) { - parameters.putAll(imeiParameters); + if (deviceInfo.imeiParameters != null) { + parameters.putAll(deviceInfo.imeiParameters); } // Check if oaid plugin is used and if yes, add the parameter - Map oaidParameters = Util.getOaidParameters(adjustConfig, logger); - if (oaidParameters != null) { - parameters.putAll(oaidParameters); + if (deviceInfo.oaidParameters != null) { + parameters.putAll(deviceInfo.oaidParameters); } // Third Party Sharing @@ -861,8 +862,8 @@ private Map getDisableThirdPartySharingParameters() { PackageBuilder.addLong(parameters, "gps_adid_attempt", deviceInfo.playAdIdAttempt); PackageBuilder.addString(parameters, "gps_adid_src", deviceInfo.playAdIdSource); PackageBuilder.addBoolean(parameters, "tracking_enabled", deviceInfo.isTrackingEnabled); - PackageBuilder.addString(parameters, "fire_adid", Util.getFireAdvertisingId(adjustConfig)); - PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", Util.getFireTrackingEnabled(adjustConfig)); + PackageBuilder.addString(parameters, "fire_adid", deviceInfo.fireAdId); + PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", deviceInfo.fireTrackingEnabled); PackageBuilder.addString(parameters, "google_app_set_id", deviceInfo.appSetId); if (!containsPlayIds(parameters) && !containsFireIds(parameters)) { @@ -906,17 +907,17 @@ private Map getMeasurementConsentParameters( final boolean consentMeasurement) { Map parameters = new HashMap(); - Map imeiParameters = Util.getImeiParameters(adjustConfig, logger); + + deviceInfo.reloadOtherDeviceInfoParams(adjustConfig, logger); // Check if plugin is used and if yes, add read parameters. - if (imeiParameters != null) { - parameters.putAll(imeiParameters); + if (deviceInfo.imeiParameters != null) { + parameters.putAll(deviceInfo.imeiParameters); } // Check if oaid plugin is used and if yes, add the parameter - Map oaidParameters = Util.getOaidParameters(adjustConfig, logger); - if (oaidParameters != null) { - parameters.putAll(oaidParameters); + if (deviceInfo.oaidParameters != null) { + parameters.putAll(deviceInfo.oaidParameters); } // Measurement Consent @@ -930,8 +931,8 @@ private Map getMeasurementConsentParameters( PackageBuilder.addLong(parameters, "gps_adid_attempt", deviceInfo.playAdIdAttempt); PackageBuilder.addString(parameters, "gps_adid_src", deviceInfo.playAdIdSource); PackageBuilder.addBoolean(parameters, "tracking_enabled", deviceInfo.isTrackingEnabled); - PackageBuilder.addString(parameters, "fire_adid", Util.getFireAdvertisingId(adjustConfig)); - PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", Util.getFireTrackingEnabled(adjustConfig)); + PackageBuilder.addString(parameters, "fire_adid", deviceInfo.fireAdId); + PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", deviceInfo.fireTrackingEnabled); PackageBuilder.addString(parameters, "google_app_set_id", deviceInfo.appSetId); if (!containsPlayIds(parameters) && !containsFireIds(parameters)) { @@ -973,17 +974,17 @@ private Map getMeasurementConsentParameters( private Map getAdRevenueParameters(String source, JSONObject adRevenueJson) { Map parameters = new HashMap(); - Map imeiParameters = Util.getImeiParameters(adjustConfig, logger); + + deviceInfo.reloadOtherDeviceInfoParams(adjustConfig, logger); // Check if plugin is used and if yes, add read parameters. - if (imeiParameters != null) { - parameters.putAll(imeiParameters); + if (deviceInfo.imeiParameters != null) { + parameters.putAll(deviceInfo.imeiParameters); } // Check if oaid plugin is used and if yes, add the parameter - Map oaidParameters = Util.getOaidParameters(adjustConfig, logger); - if (oaidParameters != null) { - parameters.putAll(oaidParameters); + if (deviceInfo.oaidParameters != null) { + parameters.putAll(deviceInfo.oaidParameters); } // Device identifiers. @@ -993,8 +994,8 @@ private Map getAdRevenueParameters(String source, JSONObject adR PackageBuilder.addLong(parameters, "gps_adid_attempt", deviceInfo.playAdIdAttempt); PackageBuilder.addString(parameters, "gps_adid_src", deviceInfo.playAdIdSource); PackageBuilder.addBoolean(parameters, "tracking_enabled", deviceInfo.isTrackingEnabled); - PackageBuilder.addString(parameters, "fire_adid", Util.getFireAdvertisingId(adjustConfig)); - PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", Util.getFireTrackingEnabled(adjustConfig)); + PackageBuilder.addString(parameters, "fire_adid", deviceInfo.fireAdId); + PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", deviceInfo.fireTrackingEnabled); PackageBuilder.addString(parameters, "google_app_set_id", deviceInfo.appSetId); if (!containsPlayIds(parameters) && !containsFireIds(parameters)) { @@ -1010,7 +1011,7 @@ private Map getAdRevenueParameters(String source, JSONObject adR PackageBuilder.addString(parameters, "app_token", adjustConfig.appToken); PackageBuilder.addString(parameters, "app_version", deviceInfo.appVersion); PackageBuilder.addBoolean(parameters, "attribution_deeplink", true); - PackageBuilder.addLong(parameters, "connectivity_type", Util.getConnectivityType(adjustConfig.context)); + PackageBuilder.addLong(parameters, "connectivity_type", deviceInfo.connectivityType); PackageBuilder.addString(parameters, "country", deviceInfo.country); PackageBuilder.addString(parameters, "cpu_type", deviceInfo.abi); PackageBuilder.addDateInMilliseconds(parameters, "created_at", createdAt); @@ -1031,8 +1032,8 @@ private Map getAdRevenueParameters(String source, JSONObject adR PackageBuilder.addString(parameters, "installed_at", deviceInfo.appInstallTime); PackageBuilder.addString(parameters, "language", deviceInfo.language); PackageBuilder.addDuration(parameters, "last_interval", activityStateCopy.lastInterval); - PackageBuilder.addString(parameters, "mcc", Util.getMcc(adjustConfig.context)); - PackageBuilder.addString(parameters, "mnc", Util.getMnc(adjustConfig.context)); + PackageBuilder.addString(parameters, "mcc", deviceInfo.mcc); + PackageBuilder.addString(parameters, "mnc", deviceInfo.mnc); PackageBuilder.addBoolean(parameters, "needs_response_details", true); PackageBuilder.addString(parameters, "os_build", deviceInfo.buildName); PackageBuilder.addString(parameters, "os_name", deviceInfo.osName); @@ -1062,17 +1063,17 @@ private Map getAdRevenueParameters(String source, JSONObject adR private Map getAdRevenueParameters(AdjustAdRevenue adjustAdRevenue, boolean isInDelay) { Map parameters = new HashMap(); - Map imeiParameters = Util.getImeiParameters(adjustConfig, logger); + + deviceInfo.reloadOtherDeviceInfoParams(adjustConfig, logger); // Check if plugin is used and if yes, add read parameters. - if (imeiParameters != null) { - parameters.putAll(imeiParameters); + if (deviceInfo.imeiParameters != null) { + parameters.putAll(deviceInfo.imeiParameters); } // Check if oaid plugin is used and if yes, add the parameter - Map oaidParameters = Util.getOaidParameters(adjustConfig, logger); - if (oaidParameters != null) { - parameters.putAll(oaidParameters); + if (deviceInfo.oaidParameters != null) { + parameters.putAll(deviceInfo.oaidParameters); } // Callback and partner parameters. @@ -1088,8 +1089,8 @@ private Map getAdRevenueParameters(AdjustAdRevenue adjustAdReven PackageBuilder.addLong(parameters, "gps_adid_attempt", deviceInfo.playAdIdAttempt); PackageBuilder.addString(parameters, "gps_adid_src", deviceInfo.playAdIdSource); PackageBuilder.addBoolean(parameters, "tracking_enabled", deviceInfo.isTrackingEnabled); - PackageBuilder.addString(parameters, "fire_adid", Util.getFireAdvertisingId(adjustConfig)); - PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", Util.getFireTrackingEnabled(adjustConfig)); + PackageBuilder.addString(parameters, "fire_adid", deviceInfo.fireAdId); + PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", deviceInfo.fireTrackingEnabled); PackageBuilder.addString(parameters, "google_app_set_id", deviceInfo.appSetId); if (!containsPlayIds(parameters) && !containsFireIds(parameters)) { @@ -1105,7 +1106,7 @@ private Map getAdRevenueParameters(AdjustAdRevenue adjustAdReven PackageBuilder.addString(parameters, "app_token", adjustConfig.appToken); PackageBuilder.addString(parameters, "app_version", deviceInfo.appVersion); PackageBuilder.addBoolean(parameters, "attribution_deeplink", true); - PackageBuilder.addLong(parameters, "connectivity_type", Util.getConnectivityType(adjustConfig.context)); + PackageBuilder.addLong(parameters, "connectivity_type", deviceInfo.connectivityType); PackageBuilder.addString(parameters, "country", deviceInfo.country); PackageBuilder.addString(parameters, "cpu_type", deviceInfo.abi); PackageBuilder.addDateInMilliseconds(parameters, "created_at", createdAt); @@ -1126,8 +1127,8 @@ private Map getAdRevenueParameters(AdjustAdRevenue adjustAdReven PackageBuilder.addString(parameters, "installed_at", deviceInfo.appInstallTime); PackageBuilder.addString(parameters, "language", deviceInfo.language); PackageBuilder.addDuration(parameters, "last_interval", activityStateCopy.lastInterval); - PackageBuilder.addString(parameters, "mcc", Util.getMcc(adjustConfig.context)); - PackageBuilder.addString(parameters, "mnc", Util.getMnc(adjustConfig.context)); + PackageBuilder.addString(parameters, "mcc", deviceInfo.mcc); + PackageBuilder.addString(parameters, "mnc", deviceInfo.mnc); PackageBuilder.addBoolean(parameters, "needs_response_details", true); PackageBuilder.addString(parameters, "os_build", deviceInfo.buildName); PackageBuilder.addString(parameters, "os_name", deviceInfo.osName); @@ -1162,17 +1163,17 @@ private Map getAdRevenueParameters(AdjustAdRevenue adjustAdReven private Map getSubscriptionParameters(AdjustPlayStoreSubscription subscription, boolean isInDelay) { Map parameters = new HashMap(); - Map imeiParameters = Util.getImeiParameters(adjustConfig, logger); + + deviceInfo.reloadOtherDeviceInfoParams(adjustConfig, logger); // Check if plugin is used and if yes, add read parameters. - if (imeiParameters != null) { - parameters.putAll(imeiParameters); + if (deviceInfo.imeiParameters != null) { + parameters.putAll(deviceInfo.imeiParameters); } // Check if oaid plugin is used and if yes, add the parameter - Map oaidParameters = Util.getOaidParameters(adjustConfig, logger); - if (oaidParameters != null) { - parameters.putAll(oaidParameters); + if (deviceInfo.oaidParameters != null) { + parameters.putAll(deviceInfo.oaidParameters); } // Device identifiers. @@ -1182,8 +1183,8 @@ private Map getSubscriptionParameters(AdjustPlayStoreSubscriptio PackageBuilder.addLong(parameters, "gps_adid_attempt", deviceInfo.playAdIdAttempt); PackageBuilder.addString(parameters, "gps_adid_src", deviceInfo.playAdIdSource); PackageBuilder.addBoolean(parameters, "tracking_enabled", deviceInfo.isTrackingEnabled); - PackageBuilder.addString(parameters, "fire_adid", Util.getFireAdvertisingId(adjustConfig)); - PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", Util.getFireTrackingEnabled(adjustConfig)); + PackageBuilder.addString(parameters, "fire_adid", deviceInfo.fireAdId); + PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", deviceInfo.fireTrackingEnabled); PackageBuilder.addString(parameters, "google_app_set_id", deviceInfo.appSetId); if (!containsPlayIds(parameters) && !containsFireIds(parameters)) { @@ -1205,7 +1206,7 @@ private Map getSubscriptionParameters(AdjustPlayStoreSubscriptio PackageBuilder.addString(parameters, "app_token", adjustConfig.appToken); PackageBuilder.addString(parameters, "app_version", deviceInfo.appVersion); PackageBuilder.addBoolean(parameters, "attribution_deeplink", true); - PackageBuilder.addLong(parameters, "connectivity_type", Util.getConnectivityType(adjustConfig.context)); + PackageBuilder.addLong(parameters, "connectivity_type", deviceInfo.connectivityType); PackageBuilder.addString(parameters, "country", deviceInfo.country); PackageBuilder.addString(parameters, "cpu_type", deviceInfo.abi); PackageBuilder.addDateInMilliseconds(parameters, "created_at", createdAt); @@ -1226,8 +1227,8 @@ private Map getSubscriptionParameters(AdjustPlayStoreSubscriptio PackageBuilder.addString(parameters, "installed_at", deviceInfo.appInstallTime); PackageBuilder.addString(parameters, "language", deviceInfo.language); PackageBuilder.addDuration(parameters, "last_interval", activityStateCopy.lastInterval); - PackageBuilder.addString(parameters, "mcc", Util.getMcc(adjustConfig.context)); - PackageBuilder.addString(parameters, "mnc", Util.getMnc(adjustConfig.context)); + PackageBuilder.addString(parameters, "mcc", deviceInfo.mcc); + PackageBuilder.addString(parameters, "mnc", deviceInfo.mnc); PackageBuilder.addBoolean(parameters, "needs_response_details", true); PackageBuilder.addString(parameters, "os_build", deviceInfo.buildName); PackageBuilder.addString(parameters, "os_name", deviceInfo.osName); @@ -1265,17 +1266,17 @@ private Map getSubscriptionParameters(AdjustPlayStoreSubscriptio private Map getVerificationParameters(AdjustPurchase purchase) { Map parameters = new HashMap(); - Map imeiParameters = Util.getImeiParameters(adjustConfig, logger); + + deviceInfo.reloadOtherDeviceInfoParams(adjustConfig, logger); // Check if plugin is used and if yes, add read parameters. - if (imeiParameters != null) { - parameters.putAll(imeiParameters); + if (deviceInfo.imeiParameters != null) { + parameters.putAll(deviceInfo.imeiParameters); } // Check if oaid plugin is used and if yes, add the parameter - Map oaidParameters = Util.getOaidParameters(adjustConfig, logger); - if (oaidParameters != null) { - parameters.putAll(oaidParameters); + if (deviceInfo.oaidParameters != null) { + parameters.putAll(deviceInfo.oaidParameters); } // Device identifiers. @@ -1285,8 +1286,8 @@ private Map getVerificationParameters(AdjustPurchase purchase) { PackageBuilder.addLong(parameters, "gps_adid_attempt", deviceInfo.playAdIdAttempt); PackageBuilder.addString(parameters, "gps_adid_src", deviceInfo.playAdIdSource); PackageBuilder.addBoolean(parameters, "tracking_enabled", deviceInfo.isTrackingEnabled); - PackageBuilder.addString(parameters, "fire_adid", Util.getFireAdvertisingId(adjustConfig)); - PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", Util.getFireTrackingEnabled(adjustConfig)); + PackageBuilder.addString(parameters, "fire_adid", deviceInfo.fireAdId); + PackageBuilder.addBoolean(parameters, "fire_tracking_enabled", deviceInfo.fireTrackingEnabled); if (!containsPlayIds(parameters) && !containsFireIds(parameters)) { logger.warn("Google Advertising ID or Fire Advertising ID not detected, " + @@ -1301,7 +1302,7 @@ private Map getVerificationParameters(AdjustPurchase purchase) { PackageBuilder.addString(parameters, "app_token", adjustConfig.appToken); PackageBuilder.addString(parameters, "app_version", deviceInfo.appVersion); PackageBuilder.addBoolean(parameters, "attribution_deeplink", true); - PackageBuilder.addLong(parameters, "connectivity_type", Util.getConnectivityType(adjustConfig.context)); + PackageBuilder.addLong(parameters, "connectivity_type", deviceInfo.connectivityType); PackageBuilder.addString(parameters, "country", deviceInfo.country); PackageBuilder.addString(parameters, "cpu_type", deviceInfo.abi); PackageBuilder.addDateInMilliseconds(parameters, "created_at", createdAt); @@ -1322,8 +1323,8 @@ private Map getVerificationParameters(AdjustPurchase purchase) { PackageBuilder.addString(parameters, "installed_at", deviceInfo.appInstallTime); PackageBuilder.addString(parameters, "language", deviceInfo.language); PackageBuilder.addDuration(parameters, "last_interval", activityStateCopy.lastInterval); - PackageBuilder.addString(parameters, "mcc", Util.getMcc(adjustConfig.context)); - PackageBuilder.addString(parameters, "mnc", Util.getMnc(adjustConfig.context)); + PackageBuilder.addString(parameters, "mcc", deviceInfo.mcc); + PackageBuilder.addString(parameters, "mnc", deviceInfo.mnc); PackageBuilder.addBoolean(parameters, "needs_response_details", true); PackageBuilder.addString(parameters, "os_build", deviceInfo.buildName); PackageBuilder.addString(parameters, "os_name", deviceInfo.osName); From d532cc0e8fbbbe8a6c1fa04018f338c02e443dae Mon Sep 17 00:00:00 2001 From: Shashank Suhane Date: Tue, 7 Nov 2023 13:08:33 +0100 Subject: [PATCH 05/11] feat: update boolean indicating play id read once only after it has been attempted --- Adjust/sdk-core/src/main/java/com/adjust/sdk/DeviceInfo.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Adjust/sdk-core/src/main/java/com/adjust/sdk/DeviceInfo.java b/Adjust/sdk-core/src/main/java/com/adjust/sdk/DeviceInfo.java index bbfcef6d8..bd23b9f40 100644 --- a/Adjust/sdk-core/src/main/java/com/adjust/sdk/DeviceInfo.java +++ b/Adjust/sdk-core/src/main/java/com/adjust/sdk/DeviceInfo.java @@ -150,8 +150,6 @@ void reloadPlayIds(final AdjustConfig adjustConfig) { playAdIdSource = null; playAdIdAttempt = -1; - playIdsReadOnce = true; - // attempt connecting to Google Play Service by own for (int serviceAttempt = 1; serviceAttempt <= 3; serviceAttempt += 1) { try { @@ -163,6 +161,7 @@ void reloadPlayIds(final AdjustConfig adjustConfig) { timeoutServiceMilli); if (playAdId == null) { playAdId = gpsInfo.getGpsAdid(); + playIdsReadOnce = true; } if (isTrackingEnabled == null) { isTrackingEnabled = gpsInfo.isTrackingEnabled(); @@ -190,6 +189,7 @@ void reloadPlayIds(final AdjustConfig adjustConfig) { // just needs a short timeout since it should be just accessing a POJO playAdId = Util.getPlayAdId( context, advertisingInfoObject, Constants.ONE_SECOND); + playIdsReadOnce = true; } if (isTrackingEnabled == null) { // just needs a short timeout since it should be just accessing a POJO @@ -207,6 +207,7 @@ void reloadPlayIds(final AdjustConfig adjustConfig) { // if both weren't found, use previous values if (playAdId == null) { playAdId = previousPlayAdId; + playIdsReadOnce = true; } if (isTrackingEnabled == null) { isTrackingEnabled = previousIsTrackingEnabled; From 668b7bf39faaec9ff4a32662d1d32544a0720cbf Mon Sep 17 00:00:00 2001 From: nonelse Date: Tue, 7 Nov 2023 15:02:06 +0100 Subject: [PATCH 06/11] Refac: Move used once util methods to device info Also fixes forgotten access to device info without cache check --- .../src/main/java/com/adjust/sdk/Adjust.java | 2 +- .../main/java/com/adjust/sdk/DeviceInfo.java | 176 +++++++++++++++++- .../java/com/adjust/sdk/PackageBuilder.java | 5 +- .../src/main/java/com/adjust/sdk/Util.java | 163 +--------------- 4 files changed, 174 insertions(+), 172 deletions(-) diff --git a/Adjust/sdk-core/src/main/java/com/adjust/sdk/Adjust.java b/Adjust/sdk-core/src/main/java/com/adjust/sdk/Adjust.java index b6b95911e..c80f39c97 100644 --- a/Adjust/sdk-core/src/main/java/com/adjust/sdk/Adjust.java +++ b/Adjust/sdk-core/src/main/java/com/adjust/sdk/Adjust.java @@ -327,7 +327,7 @@ public static void getGoogleAdId(Context context, OnDeviceIdsRead onDeviceIdRead public static String getAmazonAdId(final Context context) { Context appContext = extractApplicationContext(context); if (appContext != null) { - return Util.getFireAdvertisingId(appContext.getContentResolver()); + return DeviceInfo.getFireAdvertisingIdBypassConditions(appContext.getContentResolver()); } return null; diff --git a/Adjust/sdk-core/src/main/java/com/adjust/sdk/DeviceInfo.java b/Adjust/sdk-core/src/main/java/com/adjust/sdk/DeviceInfo.java index bd23b9f40..9c2b554df 100644 --- a/Adjust/sdk-core/src/main/java/com/adjust/sdk/DeviceInfo.java +++ b/Adjust/sdk-core/src/main/java/com/adjust/sdk/DeviceInfo.java @@ -9,8 +9,15 @@ import android.content.res.Configuration; import android.content.res.Resources; import android.database.Cursor; +import android.net.ConnectivityManager; +import android.net.Network; +import android.net.NetworkCapabilities; +import android.net.NetworkInfo; import android.net.Uri; import android.os.Build; +import android.provider.Settings; +import android.telephony.TelephonyManager; +import android.text.TextUtils; import android.util.DisplayMetrics; import java.util.Date; @@ -227,21 +234,24 @@ void reloadNonPlayIds(final AdjustConfig adjustConfig) { nonGoogleIdsReadOnce = true; } - void reloadOtherDeviceInfoParams(final AdjustConfig adjustConfig, ILogger logger) { + void reloadOtherDeviceInfoParams(final AdjustConfig adjustConfig, final ILogger logger) { if (adjustConfig.readDeviceInfoOnceEnabled && otherDeviceInfoParamsReadOnce) { return; } - imeiParameters = Util.getImeiParameters(adjustConfig, logger); - oaidParameters = Util.getOaidParameters(adjustConfig, logger); - fireAdId = Util.getFireAdvertisingId(adjustConfig); - fireTrackingEnabled = Util.getFireTrackingEnabled(adjustConfig); - connectivityType = Util.getConnectivityType(adjustConfig.context); - mcc = Util.getMcc(adjustConfig.context); - mnc = Util.getMnc(adjustConfig.context); + imeiParameters = UtilDeviceIds.getImeiParameters(adjustConfig, logger); + oaidParameters = UtilDeviceIds.getOaidParameters(adjustConfig, logger); + fireAdId = UtilDeviceIds.getFireAdvertisingId(adjustConfig); + fireTrackingEnabled = UtilDeviceIds.getFireTrackingEnabled(adjustConfig); + connectivityType = UtilDeviceIds.getConnectivityType(adjustConfig.context, logger); + mcc = UtilDeviceIds.getMcc(adjustConfig.context, logger); + mnc = UtilDeviceIds.getMnc(adjustConfig.context, logger); otherDeviceInfoParamsReadOnce = true; } + public static String getFireAdvertisingIdBypassConditions(ContentResolver contentResolver) { + return UtilDeviceIds.getFireAdvertisingId(contentResolver); + } private String getPackageName(Context context) { return context.getPackageName(); @@ -464,5 +474,155 @@ private String getAppUpdateTime(PackageInfo packageInfo) { } } + private static class UtilDeviceIds { + private static Map getImeiParameters(final AdjustConfig adjustConfig, + final ILogger logger) + { + if (adjustConfig.coppaCompliantEnabled) { + return null; + } + + return Reflection.getImeiParameters(adjustConfig.context, logger); + } + private static Map getOaidParameters(final AdjustConfig adjustConfig, + final ILogger logger) + { + if (adjustConfig.coppaCompliantEnabled) { + return null; + } + + return Reflection.getOaidParameters(adjustConfig.context, logger); + } + private static String getFireAdvertisingId(final AdjustConfig adjustConfig) { + if (adjustConfig.coppaCompliantEnabled) { + return null; + } + + return getFireAdvertisingId(adjustConfig.context.getContentResolver()); + } + private static String getFireAdvertisingId(final ContentResolver contentResolver) { + if (contentResolver == null) { + return null; + } + try { + // get advertising + return Settings.Secure.getString(contentResolver, "advertising_id"); + } catch (Exception ex) { + // not supported + } + return null; + } + private static Boolean getFireTrackingEnabled(final AdjustConfig adjustConfig) { + if (adjustConfig.coppaCompliantEnabled) { + return null; + } + + return getFireTrackingEnabled(adjustConfig.context.getContentResolver()); + } + private static Boolean getFireTrackingEnabled(final ContentResolver contentResolver) { + try { + // get user's tracking preference + return Settings.Secure.getInt(contentResolver, "limit_ad_tracking") == 0; + } catch (Exception ex) { + // not supported + } + return null; + } + private static int getConnectivityType(final Context context, final ILogger logger) { + try { + ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); + + if (cm == null) { + return -1; + } + + // for api 22 or lower, still need to get raw type + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { + NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); + return activeNetwork.getType(); + } + + // .getActiveNetwork() is only available from api 23 + Network activeNetwork = cm.getActiveNetwork(); + if (activeNetwork == null) { + return -1; + } + + NetworkCapabilities activeNetworkCapabilities = cm.getNetworkCapabilities(activeNetwork); + if (activeNetworkCapabilities == null) { + return -1; + } + + // check each network capability available from api 23 + if (activeNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) { + return NetworkCapabilities.TRANSPORT_WIFI; + } + if (activeNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) { + return NetworkCapabilities.TRANSPORT_CELLULAR; + } + if (activeNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET)) { + return NetworkCapabilities.TRANSPORT_ETHERNET; + } + if (activeNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_VPN)) { + return NetworkCapabilities.TRANSPORT_VPN; + } + if (activeNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_BLUETOOTH)) { + return NetworkCapabilities.TRANSPORT_BLUETOOTH; + } + // only after api 26, that more transport capabilities were added + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { + return -1; + } + + if (activeNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI_AWARE)) { + return NetworkCapabilities.TRANSPORT_WIFI_AWARE; + } + + // and then after api 27, that more transport capabilities were added + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O_MR1) { + return -1; + } + + if (activeNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_LOWPAN)) { + return NetworkCapabilities.TRANSPORT_LOWPAN; + } + } catch (Exception e) { + logger.warn("Couldn't read connectivity type (%s)", e.getMessage()); + } + + return -1; + } + public static String getMcc(final Context context, final ILogger logger) { + try { + TelephonyManager tel = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); + String networkOperator = tel.getNetworkOperator(); + + if (TextUtils.isEmpty(networkOperator)) { + AdjustFactory.getLogger().warn("Couldn't receive networkOperator string to read MCC"); + return null; + } + return networkOperator.substring(0, 3); + } catch (Exception ex) { + AdjustFactory.getLogger().warn("Couldn't return mcc"); + return null; + } + } + + private static String getMnc(final Context context, final ILogger logger) { + try { + TelephonyManager tel = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); + String networkOperator = tel.getNetworkOperator(); + + if (TextUtils.isEmpty(networkOperator)) { + AdjustFactory.getLogger().warn("Couldn't receive networkOperator string to read MNC"); + return null; + } + return networkOperator.substring(3); + } catch (Exception ex) { + logger.warn("Couldn't return mnc"); + return null; + } + } + } } diff --git a/Adjust/sdk-core/src/main/java/com/adjust/sdk/PackageBuilder.java b/Adjust/sdk-core/src/main/java/com/adjust/sdk/PackageBuilder.java index 4f9200b23..be02ce9b1 100644 --- a/Adjust/sdk-core/src/main/java/com/adjust/sdk/PackageBuilder.java +++ b/Adjust/sdk-core/src/main/java/com/adjust/sdk/PackageBuilder.java @@ -473,9 +473,8 @@ private Map getInfoParameters(String source) { } // Check if oaid plugin is used and if yes, add the parameter - Map oaidParameters = Util.getOaidParameters(adjustConfig, logger); - if (oaidParameters != null) { - parameters.putAll(oaidParameters); + if (deviceInfo.oaidParameters != null) { + parameters.putAll(deviceInfo.oaidParameters); } // Device identifiers. diff --git a/Adjust/sdk-core/src/main/java/com/adjust/sdk/Util.java b/Adjust/sdk-core/src/main/java/com/adjust/sdk/Util.java index 530adf0d5..aa5ca7d07 100644 --- a/Adjust/sdk-core/src/main/java/com/adjust/sdk/Util.java +++ b/Adjust/sdk-core/src/main/java/com/adjust/sdk/Util.java @@ -9,20 +9,15 @@ package com.adjust.sdk; -import android.content.ContentResolver; +import static com.adjust.sdk.Constants.ENCODING; +import static com.adjust.sdk.Constants.SHA256; + import android.content.Context; import android.content.pm.PackageManager; import android.content.res.Configuration; -import android.net.ConnectivityManager; -import android.net.Network; -import android.net.NetworkCapabilities; -import android.net.NetworkInfo; import android.net.Uri; import android.os.Build; import android.os.LocaleList; -import android.provider.Settings.Secure; -import android.telephony.TelephonyManager; -import android.text.TextUtils; import com.adjust.sdk.scheduler.AsyncTaskExecutor; import com.adjust.sdk.scheduler.SingleThreadFutureScheduler; @@ -57,9 +52,6 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import static com.adjust.sdk.Constants.ENCODING; -import static com.adjust.sdk.Constants.SHA256; - /** * Collects utility functions used by Adjust. */ @@ -531,127 +523,6 @@ public static Locale getLocale(Configuration configuration) { return null; } - public static String getFireAdvertisingId(ContentResolver contentResolver) { - if (contentResolver == null) { - return null; - } - try { - // get advertising - return Secure.getString(contentResolver, "advertising_id"); - } catch (Exception ex) { - // not supported - } - return null; - } - - public static Boolean getFireTrackingEnabled(ContentResolver contentResolver) { - try { - // get user's tracking preference - return Secure.getInt(contentResolver, "limit_ad_tracking") == 0; - } catch (Exception ex) { - // not supported - } - return null; - } - - public static int getConnectivityType(Context context) { - try { - ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - - if (cm == null) { - return -1; - } - - // for api 22 or lower, still need to get raw type - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { - NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); - return activeNetwork.getType(); - } - - // .getActiveNetwork() is only available from api 23 - Network activeNetwork = cm.getActiveNetwork(); - if (activeNetwork == null) { - return -1; - } - - NetworkCapabilities activeNetworkCapabilities = cm.getNetworkCapabilities(activeNetwork); - if (activeNetworkCapabilities == null) { - return -1; - } - - // check each network capability available from api 23 - if (activeNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) { - return NetworkCapabilities.TRANSPORT_WIFI; - } - if (activeNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) { - return NetworkCapabilities.TRANSPORT_CELLULAR; - } - if (activeNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET)) { - return NetworkCapabilities.TRANSPORT_ETHERNET; - } - if (activeNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_VPN)) { - return NetworkCapabilities.TRANSPORT_VPN; - } - if (activeNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_BLUETOOTH)) { - return NetworkCapabilities.TRANSPORT_BLUETOOTH; - } - - // only after api 26, that more transport capabilities were added - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { - return -1; - } - - if (activeNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI_AWARE)) { - return NetworkCapabilities.TRANSPORT_WIFI_AWARE; - } - - // and then after api 27, that more transport capabilities were added - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O_MR1) { - return -1; - } - - if (activeNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_LOWPAN)) { - return NetworkCapabilities.TRANSPORT_LOWPAN; - } - } catch (Exception e) { - getLogger().warn("Couldn't read connectivity type (%s)", e.getMessage()); - } - - return -1; - } - - public static String getMcc(Context context) { - try { - TelephonyManager tel = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); - String networkOperator = tel.getNetworkOperator(); - - if (TextUtils.isEmpty(networkOperator)) { - AdjustFactory.getLogger().warn("Couldn't receive networkOperator string to read MCC"); - return null; - } - return networkOperator.substring(0, 3); - } catch (Exception ex) { - AdjustFactory.getLogger().warn("Couldn't return mcc"); - return null; - } - } - - public static String getMnc(Context context) { - try { - TelephonyManager tel = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); - String networkOperator = tel.getNetworkOperator(); - - if (TextUtils.isEmpty(networkOperator)) { - AdjustFactory.getLogger().warn("Couldn't receive networkOperator string to read MNC"); - return null; - } - return networkOperator.substring(3); - } catch (Exception ex) { - AdjustFactory.getLogger().warn("Couldn't return mnc"); - return null; - } - } - public static String formatString(String format, Object... args) { return String.format(Locale.US, format, args); } @@ -796,37 +667,9 @@ public static boolean canReadNonPlayIds(final AdjustConfig adjustConfig) { return true; } - public static Map getImeiParameters(final AdjustConfig adjustConfig, ILogger logger) { - if (adjustConfig.coppaCompliantEnabled) { - return null; - } - - return Reflection.getImeiParameters(adjustConfig.context, logger); - } - - public static Map getOaidParameters(final AdjustConfig adjustConfig, ILogger logger) { - if (adjustConfig.coppaCompliantEnabled) { - return null; - } - - return Reflection.getOaidParameters(adjustConfig.context, logger); - } - - public static String getFireAdvertisingId(final AdjustConfig adjustConfig) { - if (adjustConfig.coppaCompliantEnabled) { - return null; - } - return getFireAdvertisingId(adjustConfig.context.getContentResolver()); - } - public static Boolean getFireTrackingEnabled(final AdjustConfig adjustConfig) { - if (adjustConfig.coppaCompliantEnabled) { - return null; - } - return getFireTrackingEnabled(adjustConfig.context.getContentResolver()); - } public static boolean isGooglePlayGamesForPC(final Context context) { PackageManager pm = context.getPackageManager(); From a6ed0401a9452c34b6bb5a00f328fee79f39e865 Mon Sep 17 00:00:00 2001 From: Shashank Suhane Date: Wed, 8 Nov 2023 12:01:53 +0100 Subject: [PATCH 07/11] feat: udpate version 4.36.1 --- Adjust/build.gradle | 2 +- Adjust/sdk-core/src/main/java/com/adjust/sdk/Adjust.java | 2 +- Adjust/sdk-core/src/main/java/com/adjust/sdk/Constants.java | 2 +- Adjust/sdk-plugin-criteo/build.gradle | 2 +- Adjust/sdk-plugin-imei/build.gradle | 2 +- Adjust/sdk-plugin-oaid/build.gradle | 2 +- Adjust/sdk-plugin-samsung-referrer/build.gradle | 2 +- Adjust/sdk-plugin-sociomantic/build.gradle | 2 +- Adjust/sdk-plugin-trademob/build.gradle | 2 +- Adjust/sdk-plugin-vivo-referrer/build.gradle | 2 +- Adjust/sdk-plugin-webbridge/build.gradle | 2 +- Adjust/sdk-plugin-webbridge/src/main/assets/adjust.js | 2 +- Adjust/sdk-plugin-xiaomi-referrer/build.gradle | 2 +- .../androidTest/java/com/adjust/sdk/TestActivityPackage.java | 2 +- VERSION | 2 +- 15 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Adjust/build.gradle b/Adjust/build.gradle index 9ed7978b3..7bb5c8349 100644 --- a/Adjust/build.gradle +++ b/Adjust/build.gradle @@ -9,7 +9,7 @@ ext { coreMinSdkVersion = 9 coreCompileSdkVersion = 33 coreTargetSdkVersion = 33 - coreVersionName = '4.36.0' + coreVersionName = '4.36.1' defaultVersionCode = 1 webbridgeMinSdkVersion = 17 samsungReferrerMinSdkVersion = 18 diff --git a/Adjust/sdk-core/src/main/java/com/adjust/sdk/Adjust.java b/Adjust/sdk-core/src/main/java/com/adjust/sdk/Adjust.java index c80f39c97..d41feb43d 100644 --- a/Adjust/sdk-core/src/main/java/com/adjust/sdk/Adjust.java +++ b/Adjust/sdk-core/src/main/java/com/adjust/sdk/Adjust.java @@ -34,7 +34,7 @@ private Adjust() { */ public static synchronized AdjustInstance getDefaultInstance() { @SuppressWarnings("unused") - String VERSION = "!SDK-VERSION-STRING!:com.adjust.sdk:adjust-android:4.36.0"; + String VERSION = "!SDK-VERSION-STRING!:com.adjust.sdk:adjust-android:4.36.1"; if (defaultInstance == null) { defaultInstance = new AdjustInstance(); diff --git a/Adjust/sdk-core/src/main/java/com/adjust/sdk/Constants.java b/Adjust/sdk-core/src/main/java/com/adjust/sdk/Constants.java index 08cd6fda9..30d9fedee 100644 --- a/Adjust/sdk-core/src/main/java/com/adjust/sdk/Constants.java +++ b/Adjust/sdk-core/src/main/java/com/adjust/sdk/Constants.java @@ -30,7 +30,7 @@ public interface Constants { String SCHEME = "https"; String AUTHORITY = "app.adjust.com"; - String CLIENT_SDK = "android4.36.0"; + String CLIENT_SDK = "android4.36.1"; String LOGTAG = "Adjust"; String REFTAG = "reftag"; String INSTALL_REFERRER = "install_referrer"; diff --git a/Adjust/sdk-plugin-criteo/build.gradle b/Adjust/sdk-plugin-criteo/build.gradle index 8c64b270c..1db2d9d9c 100644 --- a/Adjust/sdk-plugin-criteo/build.gradle +++ b/Adjust/sdk-plugin-criteo/build.gradle @@ -30,7 +30,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.36.0' + // implementation 'com.adjust.sdk:adjust-android:4.36.1' } // read local properties diff --git a/Adjust/sdk-plugin-imei/build.gradle b/Adjust/sdk-plugin-imei/build.gradle index 90d367693..54f07e21a 100644 --- a/Adjust/sdk-plugin-imei/build.gradle +++ b/Adjust/sdk-plugin-imei/build.gradle @@ -30,7 +30,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.36.0' + // implementation 'com.adjust.sdk:adjust-android:4.36.1' } // read local properties diff --git a/Adjust/sdk-plugin-oaid/build.gradle b/Adjust/sdk-plugin-oaid/build.gradle index acfc85bbc..887a0e9ee 100644 --- a/Adjust/sdk-plugin-oaid/build.gradle +++ b/Adjust/sdk-plugin-oaid/build.gradle @@ -33,7 +33,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.36.0' + // implementation 'com.adjust.sdk:adjust-android:4.36.1' implementation 'com.huawei.hms:ads-identifier:3.4.56.300' } diff --git a/Adjust/sdk-plugin-samsung-referrer/build.gradle b/Adjust/sdk-plugin-samsung-referrer/build.gradle index ed94d410a..ef46fd210 100644 --- a/Adjust/sdk-plugin-samsung-referrer/build.gradle +++ b/Adjust/sdk-plugin-samsung-referrer/build.gradle @@ -27,7 +27,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.36.0' + // implementation 'com.adjust.sdk:adjust-android:4.36.1' // Add Samsung referrer lib via Maven. implementation 'store.galaxy.samsung.installreferrer:samsung_galaxystore_install_referrer:3.0.1' diff --git a/Adjust/sdk-plugin-sociomantic/build.gradle b/Adjust/sdk-plugin-sociomantic/build.gradle index 5fce05f0a..312cff5c9 100644 --- a/Adjust/sdk-plugin-sociomantic/build.gradle +++ b/Adjust/sdk-plugin-sociomantic/build.gradle @@ -28,7 +28,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.36.0' + // implementation 'com.adjust.sdk:adjust-android:4.36.1' } // read local properties diff --git a/Adjust/sdk-plugin-trademob/build.gradle b/Adjust/sdk-plugin-trademob/build.gradle index 6c62797a0..07eabcc20 100644 --- a/Adjust/sdk-plugin-trademob/build.gradle +++ b/Adjust/sdk-plugin-trademob/build.gradle @@ -28,7 +28,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.36.0' + // implementation 'com.adjust.sdk:adjust-android:4.36.1' } // read local properties diff --git a/Adjust/sdk-plugin-vivo-referrer/build.gradle b/Adjust/sdk-plugin-vivo-referrer/build.gradle index 40ed11c3a..84048be20 100644 --- a/Adjust/sdk-plugin-vivo-referrer/build.gradle +++ b/Adjust/sdk-plugin-vivo-referrer/build.gradle @@ -30,7 +30,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.36.0' + // implementation 'com.adjust.sdk:adjust-android:4.36.1' } // read local properties diff --git a/Adjust/sdk-plugin-webbridge/build.gradle b/Adjust/sdk-plugin-webbridge/build.gradle index b5eb8770b..c140a382e 100644 --- a/Adjust/sdk-plugin-webbridge/build.gradle +++ b/Adjust/sdk-plugin-webbridge/build.gradle @@ -30,7 +30,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.36.0' + // implementation 'com.adjust.sdk:adjust-android:4.36.1' } // read local properties diff --git a/Adjust/sdk-plugin-webbridge/src/main/assets/adjust.js b/Adjust/sdk-plugin-webbridge/src/main/assets/adjust.js index 4ac611110..71f4dc9d8 100644 --- a/Adjust/sdk-plugin-webbridge/src/main/assets/adjust.js +++ b/Adjust/sdk-plugin-webbridge/src/main/assets/adjust.js @@ -211,7 +211,7 @@ var Adjust = { if (this.adjustConfig) { return this.adjustConfig.getSdkPrefix(); } else { - return 'web-bridge4.36.0'; + return 'web-bridge4.36.1'; } }, diff --git a/Adjust/sdk-plugin-xiaomi-referrer/build.gradle b/Adjust/sdk-plugin-xiaomi-referrer/build.gradle index 83b6d18cd..929fa8b8a 100644 --- a/Adjust/sdk-plugin-xiaomi-referrer/build.gradle +++ b/Adjust/sdk-plugin-xiaomi-referrer/build.gradle @@ -31,7 +31,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.36.0' + // implementation 'com.adjust.sdk:adjust-android:4.36.1' // Add xiaomi referrer lib via Maven. implementation 'com.miui.referrer:homereferrer:1.0.0.6' diff --git a/Adjust/test-unit/src/androidTest/java/com/adjust/sdk/TestActivityPackage.java b/Adjust/test-unit/src/androidTest/java/com/adjust/sdk/TestActivityPackage.java index 752a3b8de..8a7632074 100644 --- a/Adjust/test-unit/src/androidTest/java/com/adjust/sdk/TestActivityPackage.java +++ b/Adjust/test-unit/src/androidTest/java/com/adjust/sdk/TestActivityPackage.java @@ -53,7 +53,7 @@ public TestActivityPackage(ActivityPackage activityPackage) { // default values appToken = "123456789012"; environment = "sandbox"; - clientSdk = "android4.36.0"; + clientSdk = "android4.36.1"; suffix = ""; attribution = new AdjustAttribution(); playServices = true; diff --git a/VERSION b/VERSION index 05ca23e88..f584d6c66 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -4.36.0 +4.36.1 From d05c09add16ed0b0d8f8ed753c3687c62ec5e039 Mon Sep 17 00:00:00 2001 From: Shashank Suhane Date: Wed, 8 Nov 2023 12:16:48 +0100 Subject: [PATCH 08/11] feat: update CHANGELOG --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d180ca66c..27079aade 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +### Version 4.36.1 (8th November 2023) +#### Added +- Added support for setting a new China Url Strategy with no fallback domain. You can choose this setting by calling `setUrlStrategy` method of `AdjustConfig` instance with `AdjustConfig.URL_STRATEGY_CN_ONLY` parameter. +- Added `setReadDeviceInfoOnceEnabled(boolean)` method to `AdjustConfig` to indicate if device info to be read only once. + +--- + ### Version 4.36.0 (19th October 2023) #### Added - Added support for Meta install referrer. From 9c81e4bbb3ca7d9e95c4c8de2aea5830aa03f7c1 Mon Sep 17 00:00:00 2001 From: Shashank Suhane Date: Wed, 8 Nov 2023 14:55:05 +0100 Subject: [PATCH 09/11] feat: add opt-in config method for reading device info once in web bridge plugin --- .../sdk-plugin-webbridge/src/main/assets/adjust_config.js | 5 +++++ .../com/adjust/sdk/webbridge/AdjustBridgeInstance.java | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/Adjust/sdk-plugin-webbridge/src/main/assets/adjust_config.js b/Adjust/sdk-plugin-webbridge/src/main/assets/adjust_config.js index 38adb5b6e..6a98021e1 100644 --- a/Adjust/sdk-plugin-webbridge/src/main/assets/adjust_config.js +++ b/Adjust/sdk-plugin-webbridge/src/main/assets/adjust_config.js @@ -57,6 +57,7 @@ function AdjustConfig(appToken, environment, legacy) { this.coppaCompliantEnabled = null; this.finalAttributionEnabled = null; this.fbAppId = null; + this.readDeviceInfoOnceEnabled = null; } AdjustConfig.EnvironmentSandbox = 'sandbox'; @@ -270,3 +271,7 @@ AdjustConfig.prototype.setFinalAttributionEnabled = function(isEnabled) { AdjustConfig.prototype.setFbAppId = function(fbAppId) { this.fbAppId = fbAppId; }; + +AdjustConfig.prototype.setReadDeviceInfoOnceEnabled = function(isEnabled) { + this.readDeviceInfoOnceEnabled = isEnabled; +}; diff --git a/Adjust/sdk-plugin-webbridge/src/main/java/com/adjust/sdk/webbridge/AdjustBridgeInstance.java b/Adjust/sdk-plugin-webbridge/src/main/java/com/adjust/sdk/webbridge/AdjustBridgeInstance.java index cd8f6def2..4b26d0dfe 100644 --- a/Adjust/sdk-plugin-webbridge/src/main/java/com/adjust/sdk/webbridge/AdjustBridgeInstance.java +++ b/Adjust/sdk-plugin-webbridge/src/main/java/com/adjust/sdk/webbridge/AdjustBridgeInstance.java @@ -176,6 +176,7 @@ public void onCreate(String adjustConfigString) { Object coppaCompliantEnabledField = jsonAdjustConfig.get("coppaCompliantEnabled"); Object finalAttributionEnabledField = jsonAdjustConfig.get("finalAttributionEnabled"); Object fbAppIdField = jsonAdjustConfig.get("fbAppId"); + Object readDeviceInfoOnceEnabledField = jsonAdjustConfig.get("readDeviceInfoOnceEnabled"); String appToken = AdjustBridgeUtil.fieldToString(appTokenField); String environment = AdjustBridgeUtil.fieldToString(environmentField); @@ -415,6 +416,12 @@ public boolean launchReceivedDeeplink(Uri deeplink) { adjustConfig.setFbAppId(fbAppId); } + // read device info once + Boolean readDeviceInfoOnceEnabled = AdjustBridgeUtil.fieldToBoolean(readDeviceInfoOnceEnabledField); + if (readDeviceInfoOnceEnabled != null) { + adjustConfig.setReadDeviceInfoOnceEnabled(readDeviceInfoOnceEnabled); + } + // Manually call onResume() because web view initialisation will happen a bit delayed. // With this delay, it will miss lifecycle callback onResume() initial firing. Adjust.onCreate(adjustConfig); From c57229a065f151f1dc3028dad5af82cfae19fd32 Mon Sep 17 00:00:00 2001 From: Shashank Suhane Date: Wed, 8 Nov 2023 14:57:02 +0100 Subject: [PATCH 10/11] feat: update version number 4.37.0 --- Adjust/build.gradle | 2 +- Adjust/sdk-core/src/main/java/com/adjust/sdk/Adjust.java | 2 +- Adjust/sdk-core/src/main/java/com/adjust/sdk/Constants.java | 2 +- Adjust/sdk-plugin-criteo/build.gradle | 2 +- Adjust/sdk-plugin-imei/build.gradle | 2 +- Adjust/sdk-plugin-oaid/build.gradle | 2 +- Adjust/sdk-plugin-samsung-referrer/build.gradle | 2 +- Adjust/sdk-plugin-sociomantic/build.gradle | 2 +- Adjust/sdk-plugin-trademob/build.gradle | 2 +- Adjust/sdk-plugin-vivo-referrer/build.gradle | 2 +- Adjust/sdk-plugin-webbridge/build.gradle | 2 +- Adjust/sdk-plugin-webbridge/src/main/assets/adjust.js | 2 +- Adjust/sdk-plugin-xiaomi-referrer/build.gradle | 2 +- .../androidTest/java/com/adjust/sdk/TestActivityPackage.java | 2 +- VERSION | 2 +- 15 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Adjust/build.gradle b/Adjust/build.gradle index 7bb5c8349..68ba2c3fa 100644 --- a/Adjust/build.gradle +++ b/Adjust/build.gradle @@ -9,7 +9,7 @@ ext { coreMinSdkVersion = 9 coreCompileSdkVersion = 33 coreTargetSdkVersion = 33 - coreVersionName = '4.36.1' + coreVersionName = '4.37.0' defaultVersionCode = 1 webbridgeMinSdkVersion = 17 samsungReferrerMinSdkVersion = 18 diff --git a/Adjust/sdk-core/src/main/java/com/adjust/sdk/Adjust.java b/Adjust/sdk-core/src/main/java/com/adjust/sdk/Adjust.java index d41feb43d..8698635b3 100644 --- a/Adjust/sdk-core/src/main/java/com/adjust/sdk/Adjust.java +++ b/Adjust/sdk-core/src/main/java/com/adjust/sdk/Adjust.java @@ -34,7 +34,7 @@ private Adjust() { */ public static synchronized AdjustInstance getDefaultInstance() { @SuppressWarnings("unused") - String VERSION = "!SDK-VERSION-STRING!:com.adjust.sdk:adjust-android:4.36.1"; + String VERSION = "!SDK-VERSION-STRING!:com.adjust.sdk:adjust-android:4.37.0"; if (defaultInstance == null) { defaultInstance = new AdjustInstance(); diff --git a/Adjust/sdk-core/src/main/java/com/adjust/sdk/Constants.java b/Adjust/sdk-core/src/main/java/com/adjust/sdk/Constants.java index 30d9fedee..6a41a9426 100644 --- a/Adjust/sdk-core/src/main/java/com/adjust/sdk/Constants.java +++ b/Adjust/sdk-core/src/main/java/com/adjust/sdk/Constants.java @@ -30,7 +30,7 @@ public interface Constants { String SCHEME = "https"; String AUTHORITY = "app.adjust.com"; - String CLIENT_SDK = "android4.36.1"; + String CLIENT_SDK = "android4.37.0"; String LOGTAG = "Adjust"; String REFTAG = "reftag"; String INSTALL_REFERRER = "install_referrer"; diff --git a/Adjust/sdk-plugin-criteo/build.gradle b/Adjust/sdk-plugin-criteo/build.gradle index 1db2d9d9c..df025e418 100644 --- a/Adjust/sdk-plugin-criteo/build.gradle +++ b/Adjust/sdk-plugin-criteo/build.gradle @@ -30,7 +30,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.36.1' + // implementation 'com.adjust.sdk:adjust-android:4.37.0' } // read local properties diff --git a/Adjust/sdk-plugin-imei/build.gradle b/Adjust/sdk-plugin-imei/build.gradle index 54f07e21a..2ca5f21e2 100644 --- a/Adjust/sdk-plugin-imei/build.gradle +++ b/Adjust/sdk-plugin-imei/build.gradle @@ -30,7 +30,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.36.1' + // implementation 'com.adjust.sdk:adjust-android:4.37.0' } // read local properties diff --git a/Adjust/sdk-plugin-oaid/build.gradle b/Adjust/sdk-plugin-oaid/build.gradle index 887a0e9ee..5d39d917b 100644 --- a/Adjust/sdk-plugin-oaid/build.gradle +++ b/Adjust/sdk-plugin-oaid/build.gradle @@ -33,7 +33,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.36.1' + // implementation 'com.adjust.sdk:adjust-android:4.37.0' implementation 'com.huawei.hms:ads-identifier:3.4.56.300' } diff --git a/Adjust/sdk-plugin-samsung-referrer/build.gradle b/Adjust/sdk-plugin-samsung-referrer/build.gradle index ef46fd210..23bf3845b 100644 --- a/Adjust/sdk-plugin-samsung-referrer/build.gradle +++ b/Adjust/sdk-plugin-samsung-referrer/build.gradle @@ -27,7 +27,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.36.1' + // implementation 'com.adjust.sdk:adjust-android:4.37.0' // Add Samsung referrer lib via Maven. implementation 'store.galaxy.samsung.installreferrer:samsung_galaxystore_install_referrer:3.0.1' diff --git a/Adjust/sdk-plugin-sociomantic/build.gradle b/Adjust/sdk-plugin-sociomantic/build.gradle index 312cff5c9..48cb258e7 100644 --- a/Adjust/sdk-plugin-sociomantic/build.gradle +++ b/Adjust/sdk-plugin-sociomantic/build.gradle @@ -28,7 +28,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.36.1' + // implementation 'com.adjust.sdk:adjust-android:4.37.0' } // read local properties diff --git a/Adjust/sdk-plugin-trademob/build.gradle b/Adjust/sdk-plugin-trademob/build.gradle index 07eabcc20..ebab86734 100644 --- a/Adjust/sdk-plugin-trademob/build.gradle +++ b/Adjust/sdk-plugin-trademob/build.gradle @@ -28,7 +28,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.36.1' + // implementation 'com.adjust.sdk:adjust-android:4.37.0' } // read local properties diff --git a/Adjust/sdk-plugin-vivo-referrer/build.gradle b/Adjust/sdk-plugin-vivo-referrer/build.gradle index 84048be20..b64c696da 100644 --- a/Adjust/sdk-plugin-vivo-referrer/build.gradle +++ b/Adjust/sdk-plugin-vivo-referrer/build.gradle @@ -30,7 +30,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.36.1' + // implementation 'com.adjust.sdk:adjust-android:4.37.0' } // read local properties diff --git a/Adjust/sdk-plugin-webbridge/build.gradle b/Adjust/sdk-plugin-webbridge/build.gradle index c140a382e..651acdd9c 100644 --- a/Adjust/sdk-plugin-webbridge/build.gradle +++ b/Adjust/sdk-plugin-webbridge/build.gradle @@ -30,7 +30,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.36.1' + // implementation 'com.adjust.sdk:adjust-android:4.37.0' } // read local properties diff --git a/Adjust/sdk-plugin-webbridge/src/main/assets/adjust.js b/Adjust/sdk-plugin-webbridge/src/main/assets/adjust.js index 71f4dc9d8..05b7b4983 100644 --- a/Adjust/sdk-plugin-webbridge/src/main/assets/adjust.js +++ b/Adjust/sdk-plugin-webbridge/src/main/assets/adjust.js @@ -211,7 +211,7 @@ var Adjust = { if (this.adjustConfig) { return this.adjustConfig.getSdkPrefix(); } else { - return 'web-bridge4.36.1'; + return 'web-bridge4.37.0'; } }, diff --git a/Adjust/sdk-plugin-xiaomi-referrer/build.gradle b/Adjust/sdk-plugin-xiaomi-referrer/build.gradle index 929fa8b8a..9e3bb5cf2 100644 --- a/Adjust/sdk-plugin-xiaomi-referrer/build.gradle +++ b/Adjust/sdk-plugin-xiaomi-referrer/build.gradle @@ -31,7 +31,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.36.1' + // implementation 'com.adjust.sdk:adjust-android:4.37.0' // Add xiaomi referrer lib via Maven. implementation 'com.miui.referrer:homereferrer:1.0.0.6' diff --git a/Adjust/test-unit/src/androidTest/java/com/adjust/sdk/TestActivityPackage.java b/Adjust/test-unit/src/androidTest/java/com/adjust/sdk/TestActivityPackage.java index 8a7632074..50b7d4620 100644 --- a/Adjust/test-unit/src/androidTest/java/com/adjust/sdk/TestActivityPackage.java +++ b/Adjust/test-unit/src/androidTest/java/com/adjust/sdk/TestActivityPackage.java @@ -53,7 +53,7 @@ public TestActivityPackage(ActivityPackage activityPackage) { // default values appToken = "123456789012"; environment = "sandbox"; - clientSdk = "android4.36.1"; + clientSdk = "android4.37.0"; suffix = ""; attribution = new AdjustAttribution(); playServices = true; diff --git a/VERSION b/VERSION index f584d6c66..69c427627 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -4.36.1 +4.37.0 From cfa428ef497893ffdf6e7f80db3e1658e73cbb2f Mon Sep 17 00:00:00 2001 From: Shashank Suhane Date: Wed, 8 Nov 2023 15:01:24 +0100 Subject: [PATCH 11/11] feat: update CHANGELOG --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 27079aade..9c75a1701 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ -### Version 4.36.1 (8th November 2023) +### Version 4.37.0 (8th November 2023) #### Added -- Added support for setting a new China Url Strategy with no fallback domain. You can choose this setting by calling `setUrlStrategy` method of `AdjustConfig` instance with `AdjustConfig.URL_STRATEGY_CN_ONLY` parameter. +- Added a new type of URL strategy called `AdjustConfig.URL_STRATEGY_CN_ONLY`. This URL strategy represents `AdjustConfig.URL_STRATEGY_CN` strategy, but without fallback domains. - Added `setReadDeviceInfoOnceEnabled(boolean)` method to `AdjustConfig` to indicate if device info to be read only once. ---