From 01b32526edf24f937e8989f07f84ca6c5bf5b637 Mon Sep 17 00:00:00 2001 From: Shashank Suhane Date: Mon, 13 Feb 2023 10:42:33 +0100 Subject: [PATCH 1/4] fix: avoid npe when referrer is null --- .../java/com/adjust/sdk/samsung/SamsungReferrerClient.java | 1 - .../main/java/com/adjust/sdk/xiaomi/XiaomiReferrerClient.java | 3 --- 2 files changed, 4 deletions(-) diff --git a/Adjust/sdk-plugin-samsung-referrer/src/main/java/com/adjust/sdk/samsung/SamsungReferrerClient.java b/Adjust/sdk-plugin-samsung-referrer/src/main/java/com/adjust/sdk/samsung/SamsungReferrerClient.java index 309145087..cf4fe8066 100644 --- a/Adjust/sdk-plugin-samsung-referrer/src/main/java/com/adjust/sdk/samsung/SamsungReferrerClient.java +++ b/Adjust/sdk-plugin-samsung-referrer/src/main/java/com/adjust/sdk/samsung/SamsungReferrerClient.java @@ -26,7 +26,6 @@ public void onInstallReferrerSetupFinished(int responseCode) { referrerDetailsHolder.offer(details); } catch (Exception e) { logger.error("SamsungReferrer getInstallReferrer: " + e.getMessage()); - referrerDetailsHolder.offer(null); } finally { referrerClient.endConnection(); } diff --git a/Adjust/sdk-plugin-xiaomi-referrer/src/main/java/com/adjust/sdk/xiaomi/XiaomiReferrerClient.java b/Adjust/sdk-plugin-xiaomi-referrer/src/main/java/com/adjust/sdk/xiaomi/XiaomiReferrerClient.java index 51a17b070..7babd655b 100644 --- a/Adjust/sdk-plugin-xiaomi-referrer/src/main/java/com/adjust/sdk/xiaomi/XiaomiReferrerClient.java +++ b/Adjust/sdk-plugin-xiaomi-referrer/src/main/java/com/adjust/sdk/xiaomi/XiaomiReferrerClient.java @@ -27,16 +27,13 @@ public void onGetAppsReferrerSetupFinished(int responseCode) { referrerDetailsHolder.offer(getAppsReferrerDetails); } catch (Exception e) { logger.error("XiaomiReferrer getInstallReferrer: " + e.getMessage()); - referrerDetailsHolder.offer(null); } break; case GetAppsReferrerResponse.FEATURE_NOT_SUPPORTED: logger.info("XiaomiReferrer onGetAppsReferrerSetupFinished: FEATURE_NOT_SUPPORTED"); - referrerDetailsHolder.offer(null); break; case GetAppsReferrerResponse.SERVICE_UNAVAILABLE: logger.info("XiaomiReferrer onGetAppsReferrerSetupFinished: SERVICE_UNAVAILABLE"); - referrerDetailsHolder.offer(null); break; } } From 0af9dd67a88738c29b5897f83804acc290da156c Mon Sep 17 00:00:00 2001 From: Shashank Suhane Date: Mon, 13 Feb 2023 13:32:19 +0100 Subject: [PATCH 2/4] feat: catch exception thrown from install referrer service --- .../sdk/samsung/SamsungReferrerClient.java | 63 ++++++++++--------- .../sdk/xiaomi/XiaomiReferrerClient.java | 57 +++++++++-------- 2 files changed, 65 insertions(+), 55 deletions(-) diff --git a/Adjust/sdk-plugin-samsung-referrer/src/main/java/com/adjust/sdk/samsung/SamsungReferrerClient.java b/Adjust/sdk-plugin-samsung-referrer/src/main/java/com/adjust/sdk/samsung/SamsungReferrerClient.java index cf4fe8066..247d56b4c 100644 --- a/Adjust/sdk-plugin-samsung-referrer/src/main/java/com/adjust/sdk/samsung/SamsungReferrerClient.java +++ b/Adjust/sdk-plugin-samsung-referrer/src/main/java/com/adjust/sdk/samsung/SamsungReferrerClient.java @@ -14,41 +14,46 @@ public class SamsungReferrerClient { public static ReferrerDetails getReferrer(Context context, final ILogger logger, long maxWaitTimeInMilli) { - final InstallReferrerClient referrerClient = InstallReferrerClient.newBuilder(context).build(); - final BlockingQueue referrerDetailsHolder = new LinkedBlockingQueue(1); - referrerClient.startConnection(new InstallReferrerStateListener() { - @Override - public void onInstallReferrerSetupFinished(int responseCode) { - switch (responseCode) { - case InstallReferrerClient.InstallReferrerResponse.OK: - try { - ReferrerDetails details = referrerClient.getInstallReferrer(); - referrerDetailsHolder.offer(details); - } catch (Exception e) { - logger.error("SamsungReferrer getInstallReferrer: " + e.getMessage()); - } finally { - referrerClient.endConnection(); + try { + final InstallReferrerClient referrerClient = InstallReferrerClient.newBuilder(context).build(); + final BlockingQueue referrerDetailsHolder = new LinkedBlockingQueue(1); + referrerClient.startConnection(new InstallReferrerStateListener() { + @Override + public void onInstallReferrerSetupFinished(int responseCode) { + try { + switch (responseCode) { + case InstallReferrerClient.InstallReferrerResponse.OK: + try { + ReferrerDetails details = referrerClient.getInstallReferrer(); + referrerDetailsHolder.offer(details); + } catch (Exception e) { + logger.error("SamsungReferrer getInstallReferrer: " + e.getMessage()); + } finally { + referrerClient.endConnection(); + } + break; + case InstallReferrerClient.InstallReferrerResponse.FEATURE_NOT_SUPPORTED: + logger.info("SamsungReferrer onInstallReferrerSetupFinished: FEATURE_NOT_SUPPORTED"); + break; + case InstallReferrerClient.InstallReferrerResponse.SERVICE_UNAVAILABLE: + logger.info("SamsungReferrer onInstallReferrerSetupFinished: SERVICE_UNAVAILABLE"); + break; } - break; - case InstallReferrerClient.InstallReferrerResponse.FEATURE_NOT_SUPPORTED: - logger.info("SamsungReferrer onInstallReferrerSetupFinished: FEATURE_NOT_SUPPORTED"); - break; - case InstallReferrerClient.InstallReferrerResponse.SERVICE_UNAVAILABLE: - logger.info("SamsungReferrer onInstallReferrerSetupFinished: SERVICE_UNAVAILABLE"); - break; + } catch (Exception e) { + logger.error("SamsungReferrer onInstallReferrerSetupFinished: " + e.getMessage()); + } } - } - @Override - public void onInstallReferrerServiceDisconnected() { - referrerClient.endConnection(); - } - }); + @Override + public void onInstallReferrerServiceDisconnected() { + referrerClient.endConnection(); + } + }); - try { return referrerDetailsHolder.poll(maxWaitTimeInMilli, TimeUnit.MILLISECONDS); + } catch (Exception e) { - logger.error("Exception while waiting to get referrer: ", e.getMessage()); + logger.error("Exception while getting referrer: ", e.getMessage()); } return null; diff --git a/Adjust/sdk-plugin-xiaomi-referrer/src/main/java/com/adjust/sdk/xiaomi/XiaomiReferrerClient.java b/Adjust/sdk-plugin-xiaomi-referrer/src/main/java/com/adjust/sdk/xiaomi/XiaomiReferrerClient.java index 7babd655b..cbdbdfa07 100644 --- a/Adjust/sdk-plugin-xiaomi-referrer/src/main/java/com/adjust/sdk/xiaomi/XiaomiReferrerClient.java +++ b/Adjust/sdk-plugin-xiaomi-referrer/src/main/java/com/adjust/sdk/xiaomi/XiaomiReferrerClient.java @@ -15,38 +15,43 @@ public class XiaomiReferrerClient { public static GetAppsReferrerDetails getReferrer(Context context, final ILogger logger, long maxWaitTimeInMilli) { - final GetAppsReferrerClient referrerClient = new GetAppsReferrerClient.Builder(context).build(); - final BlockingQueue referrerDetailsHolder = new LinkedBlockingQueue(1); - referrerClient.startConnection(new GetAppsReferrerStateListener() { - @Override - public void onGetAppsReferrerSetupFinished(int responseCode) { - switch(responseCode) { - case GetAppsReferrerResponse.OK: - try { - GetAppsReferrerDetails getAppsReferrerDetails = referrerClient.getInstallReferrer(); - referrerDetailsHolder.offer(getAppsReferrerDetails); - } catch (Exception e) { - logger.error("XiaomiReferrer getInstallReferrer: " + e.getMessage()); + try { + final GetAppsReferrerClient referrerClient = new GetAppsReferrerClient.Builder(context).build(); + final BlockingQueue referrerDetailsHolder = new LinkedBlockingQueue(1); + referrerClient.startConnection(new GetAppsReferrerStateListener() { + @Override + public void onGetAppsReferrerSetupFinished(int responseCode) { + try { + switch (responseCode) { + case GetAppsReferrerResponse.OK: + try { + GetAppsReferrerDetails getAppsReferrerDetails = referrerClient.getInstallReferrer(); + referrerDetailsHolder.offer(getAppsReferrerDetails); + } catch (Exception e) { + logger.error("XiaomiReferrer getInstallReferrer: " + e.getMessage()); + } + break; + case GetAppsReferrerResponse.FEATURE_NOT_SUPPORTED: + logger.info("XiaomiReferrer onGetAppsReferrerSetupFinished: FEATURE_NOT_SUPPORTED"); + break; + case GetAppsReferrerResponse.SERVICE_UNAVAILABLE: + logger.info("XiaomiReferrer onGetAppsReferrerSetupFinished: SERVICE_UNAVAILABLE"); + break; } - break; - case GetAppsReferrerResponse.FEATURE_NOT_SUPPORTED: - logger.info("XiaomiReferrer onGetAppsReferrerSetupFinished: FEATURE_NOT_SUPPORTED"); - break; - case GetAppsReferrerResponse.SERVICE_UNAVAILABLE: - logger.info("XiaomiReferrer onGetAppsReferrerSetupFinished: SERVICE_UNAVAILABLE"); - break; + } catch (Exception e) { + logger.error("XiaomiReferrer onGetAppsReferrerSetupFinished: " + e.getMessage()); + } } - } - @Override - public void onGetAppsServiceDisconnected() { - } - }); + @Override + public void onGetAppsServiceDisconnected() { + } + }); - try { return referrerDetailsHolder.poll(maxWaitTimeInMilli, TimeUnit.MILLISECONDS); + } catch (Exception e) { - logger.error("Exception while waiting to get referrer: ", e.getMessage()); + logger.error("Exception while getting referrer: ", e.getMessage()); } return null; From 2d6876aa75dd014fbb2c166065b606e574a2090f Mon Sep 17 00:00:00 2001 From: Shashank Suhane Date: Thu, 16 Feb 2023 09:53:40 +0100 Subject: [PATCH 3/4] feat: update version number to 4.33.3 --- 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 669bc0010..c20ea5674 100644 --- a/Adjust/build.gradle +++ b/Adjust/build.gradle @@ -9,7 +9,7 @@ ext { coreMinSdkVersion = 9 coreCompileSdkVersion = 33 coreTargetSdkVersion = 33 - coreVersionName = '4.33.2' + coreVersionName = '4.33.3' 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 8fcc7f4d9..550d7803b 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.33.2"; + String VERSION = "!SDK-VERSION-STRING!:com.adjust.sdk:adjust-android:4.33.3"; 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 c4e8a1fd5..419201eb1 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 @@ -29,7 +29,7 @@ public interface Constants { String SCHEME = "https"; String AUTHORITY = "app.adjust.com"; - String CLIENT_SDK = "android4.33.2"; + String CLIENT_SDK = "android4.33.3"; 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 2901df00f..8db4f86c4 100644 --- a/Adjust/sdk-plugin-criteo/build.gradle +++ b/Adjust/sdk-plugin-criteo/build.gradle @@ -23,7 +23,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.33.2' + // implementation 'com.adjust.sdk:adjust-android:4.33.3' } // read local properties diff --git a/Adjust/sdk-plugin-imei/build.gradle b/Adjust/sdk-plugin-imei/build.gradle index 2d0fa44f6..4d19446e0 100644 --- a/Adjust/sdk-plugin-imei/build.gradle +++ b/Adjust/sdk-plugin-imei/build.gradle @@ -22,7 +22,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.33.2' + // implementation 'com.adjust.sdk:adjust-android:4.33.3' } // read local properties diff --git a/Adjust/sdk-plugin-oaid/build.gradle b/Adjust/sdk-plugin-oaid/build.gradle index 31dc13960..c0b1f66e6 100644 --- a/Adjust/sdk-plugin-oaid/build.gradle +++ b/Adjust/sdk-plugin-oaid/build.gradle @@ -25,7 +25,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.33.2' + // implementation 'com.adjust.sdk:adjust-android:4.33.3' 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 c5aa4f71b..7f9bbeba1 100644 --- a/Adjust/sdk-plugin-samsung-referrer/build.gradle +++ b/Adjust/sdk-plugin-samsung-referrer/build.gradle @@ -23,7 +23,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.33.2' + // implementation 'com.adjust.sdk:adjust-android:4.33.3' // Add Samsung referrer lib via Maven. } diff --git a/Adjust/sdk-plugin-sociomantic/build.gradle b/Adjust/sdk-plugin-sociomantic/build.gradle index 659a8f316..ee1f1ffa2 100644 --- a/Adjust/sdk-plugin-sociomantic/build.gradle +++ b/Adjust/sdk-plugin-sociomantic/build.gradle @@ -22,7 +22,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.33.2' + // implementation 'com.adjust.sdk:adjust-android:4.33.3' } // read local properties diff --git a/Adjust/sdk-plugin-trademob/build.gradle b/Adjust/sdk-plugin-trademob/build.gradle index 9ed579d66..523d911e5 100644 --- a/Adjust/sdk-plugin-trademob/build.gradle +++ b/Adjust/sdk-plugin-trademob/build.gradle @@ -22,7 +22,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.33.2' + // implementation 'com.adjust.sdk:adjust-android:4.33.3' } // read local properties diff --git a/Adjust/sdk-plugin-vivo-referrer/build.gradle b/Adjust/sdk-plugin-vivo-referrer/build.gradle index 118058837..e7da4e87d 100644 --- a/Adjust/sdk-plugin-vivo-referrer/build.gradle +++ b/Adjust/sdk-plugin-vivo-referrer/build.gradle @@ -23,7 +23,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.33.2' + // implementation 'com.adjust.sdk:adjust-android:4.33.3' } // read local properties diff --git a/Adjust/sdk-plugin-webbridge/build.gradle b/Adjust/sdk-plugin-webbridge/build.gradle index 8c46eb7e8..d9224cad5 100644 --- a/Adjust/sdk-plugin-webbridge/build.gradle +++ b/Adjust/sdk-plugin-webbridge/build.gradle @@ -22,7 +22,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.33.2' + // implementation 'com.adjust.sdk:adjust-android:4.33.3' } // 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 9c1f6e101..17cc50b53 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.33.2'; + return 'web-bridge4.33.3'; } }, diff --git a/Adjust/sdk-plugin-xiaomi-referrer/build.gradle b/Adjust/sdk-plugin-xiaomi-referrer/build.gradle index 5b3877a78..0fa917bc8 100644 --- a/Adjust/sdk-plugin-xiaomi-referrer/build.gradle +++ b/Adjust/sdk-plugin-xiaomi-referrer/build.gradle @@ -23,7 +23,7 @@ dependencies { // Add SDK via module. compileOnly project(':sdk-core') // Add SDK via Maven. - // implementation 'com.adjust.sdk:adjust-android:4.33.2' + // implementation 'com.adjust.sdk:adjust-android:4.33.3' // 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 db5a23bc7..7af9d2a9a 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.33.2"; + clientSdk = "android4.33.3"; suffix = ""; attribution = new AdjustAttribution(); playServices = true; diff --git a/VERSION b/VERSION index d8b0870c7..51e0a420d 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -4.33.2 +4.33.3 From f56e20acc01a40bf6b9c7b4b36ae7f5b2cbf66bf Mon Sep 17 00:00:00 2001 From: Shashank Suhane Date: Thu, 16 Feb 2023 10:01:47 +0100 Subject: [PATCH 4/4] docs: upate CHANGELOG --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 404995c60..28a2d7068 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +### Version 4.33.3 (16th February 2023) +#### Fixed +- Added catching of exceptions in referrer plugins when thrown anytime while retrieving referrer. + +--- + ### Version 4.33.2 (7th December 2022) #### Fixed - Fixed Duplicate class error caused by compiler generating package `a.a`.