From e6ee6e19738dcf37ef80955d4b42b3eb4b185425 Mon Sep 17 00:00:00 2001 From: Desu Sai Venkat Date: Thu, 7 Jul 2022 14:02:01 +0530 Subject: [PATCH 1/3] Made Bluetooth permission optional --- core/src/main/AndroidManifest.xml | 1 - .../android/sdk/core/RudderNetwork.java | 24 +++++++++++++++---- sample-kotlin/src/main/AndroidManifest.xml | 1 + 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/core/src/main/AndroidManifest.xml b/core/src/main/AndroidManifest.xml index 761ebe180..f08c2bfa6 100644 --- a/core/src/main/AndroidManifest.xml +++ b/core/src/main/AndroidManifest.xml @@ -1,7 +1,6 @@ - diff --git a/core/src/main/java/com/rudderstack/android/sdk/core/RudderNetwork.java b/core/src/main/java/com/rudderstack/android/sdk/core/RudderNetwork.java index 854383837..24ad492ec 100644 --- a/core/src/main/java/com/rudderstack/android/sdk/core/RudderNetwork.java +++ b/core/src/main/java/com/rudderstack/android/sdk/core/RudderNetwork.java @@ -1,11 +1,14 @@ package com.rudderstack.android.sdk.core; +import static android.Manifest.permission.BLUETOOTH; import static android.content.Context.TELEPHONY_SERVICE; import static com.rudderstack.android.sdk.core.util.Utils.isTv; +import android.annotation.SuppressLint; import android.app.Application; import android.bluetooth.BluetoothAdapter; import android.content.Context; +import android.content.pm.PackageManager; import android.net.wifi.WifiManager; import android.provider.Settings; import android.telephony.TelephonyManager; @@ -18,10 +21,11 @@ class RudderNetwork { @SerializedName("wifi") private boolean isWifiEnabled = false; @SerializedName("bluetooth") - private boolean isBluetoothEnabled = false; + private Boolean isBluetoothEnabled; @SerializedName("cellular") private boolean isCellularEnabled = false; + @SuppressLint("MissingPermission") RudderNetwork(Application application) { try { // carrier name @@ -35,10 +39,20 @@ class RudderNetwork { isWifiEnabled = wifi != null && wifi.isWifiEnabled(); // bluetooth - BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); - isBluetoothEnabled = bluetoothAdapter != null - && bluetoothAdapter.isEnabled() - && bluetoothAdapter.getState() == BluetoothAdapter.STATE_ON; + try { + Context context = application.getApplicationContext(); + if (context.checkCallingOrSelfPermission(BLUETOOTH) == PackageManager.PERMISSION_GRANTED) { + BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); + isBluetoothEnabled = bluetoothAdapter != null + && bluetoothAdapter.isEnabled() + && bluetoothAdapter.getState() == BluetoothAdapter.STATE_ON; + } else { + RudderLogger.logWarn("RudderNetwork: Cannot check bluetooth status as permission is absent"); + } + } catch (Exception e) { + RudderLogger.logError("RudderNetwork: Exception during bluetooth permission check"); + } + // cellular status TelephonyManager tm = (TelephonyManager) application.getSystemService(Context.TELEPHONY_SERVICE); diff --git a/sample-kotlin/src/main/AndroidManifest.xml b/sample-kotlin/src/main/AndroidManifest.xml index 86a8108be..194ab05a5 100644 --- a/sample-kotlin/src/main/AndroidManifest.xml +++ b/sample-kotlin/src/main/AndroidManifest.xml @@ -5,6 +5,7 @@ + Date: Thu, 7 Jul 2022 14:03:04 +0530 Subject: [PATCH 2/3] Bumped the version to 1.6.0 --- README.md | 2 +- core/build.gradle | 4 ++-- .../main/java/com/rudderstack/android/sdk/core/Constants.java | 2 +- .../com/rudderstack/android/sdk/core/RudderLibraryInfo.java | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index e5ca4edf5..0397a8b93 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ allprojects { ```groovy -implementation 'com.rudderstack.android.sdk:core:1.5.2' +implementation 'com.rudderstack.android.sdk:core:1.6.0' ``` ## Initializing ```RudderClient``` diff --git a/core/build.gradle b/core/build.gradle index 227461a9d..cfe93f211 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -7,7 +7,7 @@ android { minSdkVersion 19 targetSdkVersion 29 versionCode 1 - versionName '1.5.2' + versionName '1.6.0' consumerProguardFiles 'proguard-consumer-rules.pro' } @@ -54,7 +54,7 @@ dependencies { ext { PUBLISH_GROUP_ID = 'com.rudderstack.android.sdk' - PUBLISH_VERSION = '1.5.2' + PUBLISH_VERSION = '1.6.0' PUBLISH_ARTIFACT_ID = 'core' } diff --git a/core/src/main/java/com/rudderstack/android/sdk/core/Constants.java b/core/src/main/java/com/rudderstack/android/sdk/core/Constants.java index 612783483..ee9a9d321 100644 --- a/core/src/main/java/com/rudderstack/android/sdk/core/Constants.java +++ b/core/src/main/java/com/rudderstack/android/sdk/core/Constants.java @@ -33,5 +33,5 @@ class Constants { // whether we should record screen views automatically static final boolean RECORD_SCREEN_VIEWS = false; // current version of the library - static final String RUDDER_LIBRARY_VERSION = "1.5.2"; + static final String RUDDER_LIBRARY_VERSION = "1.6.0"; } diff --git a/core/src/main/java/com/rudderstack/android/sdk/core/RudderLibraryInfo.java b/core/src/main/java/com/rudderstack/android/sdk/core/RudderLibraryInfo.java index ed2fcd4c1..27c27565e 100644 --- a/core/src/main/java/com/rudderstack/android/sdk/core/RudderLibraryInfo.java +++ b/core/src/main/java/com/rudderstack/android/sdk/core/RudderLibraryInfo.java @@ -6,5 +6,5 @@ class RudderLibraryInfo { @SerializedName("name") private String name = BuildConfig.LIBRARY_PACKAGE_NAME; @SerializedName("version") - private String version = "1.5.2"; + private String version = "1.6.0"; } From 1c52127587bb33e6b8a6682b271f4ecadcab1960 Mon Sep 17 00:00:00 2001 From: Desu Sai Venkat Date: Mon, 11 Jul 2022 15:17:51 +0530 Subject: [PATCH 3/3] Updated CHANGELOG.md --- CHANGELOG.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6758026ad..14ad00199 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,4 +9,9 @@ All notable changes to this project will be documented in this file. - A new header `anonymousId` is added to the request to `data-plane` along with `writeKey` to handle sticky-session at the server. ### Changed - Package name is changed from `com.rudderlabs.android.sdk.core` to `com.rudderstack.android.sdk.core`. -- New field `userId` is supported to make it more compliant under `context->traits` for `identify` and all successive calls. Old filed for developer identification i.e. `id` is still supported. \ No newline at end of file +- New field `userId` is supported to make it more compliant under `context->traits` for `identify` and all successive calls. Old filed for developer identification i.e. `id` is still supported. + +## Version - 1.6.0 - 2022-07-11 + +## Changed +- Removed Bluetooth permission from the Core SDK and from now the bluetooth status would be collected and sent as a part of the payload only if bluetooth permission is included in the SDK, so that from now bluetooth permission is not necessarily needed to make use of the SDK. \ No newline at end of file