Skip to content

Commit d02ed46

Browse files
Merge pull request #61 from NordicSemiconductor/develop
Version 1.4.2
2 parents 8655cc3 + f965636 commit d02ed46

17 files changed

+50
-81
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ The compat library may be found on jcenter repository. Add it to your project by
2828
following dependency:
2929

3030
```Groovy
31-
implementation 'no.nordicsemi.android.support.v18:scanner:1.4.1'
31+
implementation 'no.nordicsemi.android.support.v18:scanner:1.4.2'
3232
```
3333

3434
Projects not migrated to Android Jetpack should use version 1.3.1, which is feature-equal to 1.4.0.

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
android.enableJetifier=true
2020
android.useAndroidX=true
2121

22-
VERSION_NAME=1.4.1
22+
VERSION_NAME=1.4.2
2323
GROUP=no.nordicsemi.android.support.v18
2424

2525
POM_DESCRIPTION=Android Bluetooth LE Scanner Compat library

gradle/gradle-bintray-push.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,15 +89,15 @@ properties.load(project.rootProject.file('local.properties').newDataInputStream(
8989

9090
bintray {
9191
user = properties.getProperty("BINTRAY_USER")
92-
key = properties.getProperty("APIKEY")
92+
key = properties.getProperty("BINTRAY_APIKEY")
9393

9494
configurations = ['archives']
9595
pkg {
9696
name = GROUP + ":" + POM_ARTIFACT_ID
9797
desc = POM_DESCRIPTION
9898

9999
userOrg = properties.getProperty("BINTRAY_USER_ORG")
100-
repo = properties.getProperty("REPO")
100+
repo = properties.getProperty("BINTRAY_REPO")
101101

102102
websiteUrl = POM_URL
103103
issueTrackerUrl = POM_URL + "/issues"

scanner/src/main/java/no/nordicsemi/android/support/v18/scanner/BluetoothLeScannerCompat.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,6 @@
2929
import android.os.Handler;
3030
import android.os.Looper;
3131
import android.os.SystemClock;
32-
import androidx.annotation.NonNull;
33-
import androidx.annotation.Nullable;
34-
import androidx.annotation.RequiresPermission;
3532

3633
import java.util.ArrayList;
3734
import java.util.Collections;
@@ -42,6 +39,10 @@
4239
import java.util.Map;
4340
import java.util.Set;
4441

42+
import androidx.annotation.NonNull;
43+
import androidx.annotation.Nullable;
44+
import androidx.annotation.RequiresPermission;
45+
4546
/**
4647
* This class provides methods to perform scan related operations for Bluetooth LE devices. An
4748
* application can scan for a particular type of Bluetooth LE devices using {@link ScanFilter}. It

scanner/src/main/java/no/nordicsemi/android/support/v18/scanner/BluetoothLeScannerImplJB.java

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,17 @@
3131
import android.os.Handler;
3232
import android.os.HandlerThread;
3333
import android.os.SystemClock;
34-
import androidx.annotation.NonNull;
35-
import androidx.annotation.Nullable;
36-
import androidx.annotation.RequiresPermission;
3734

3835
import java.util.ArrayList;
3936
import java.util.Collection;
4037
import java.util.HashMap;
4138
import java.util.List;
4239
import java.util.Map;
4340

41+
import androidx.annotation.NonNull;
42+
import androidx.annotation.Nullable;
43+
import androidx.annotation.RequiresPermission;
44+
4445

4546
@SuppressWarnings("deprecation")
4647
/* package */ class BluetoothLeScannerImplJB extends BluetoothLeScannerCompat {
@@ -90,7 +91,6 @@ public void run() {
9091
@NonNull final ScanCallback callback,
9192
@NonNull final Handler handler) {
9293
final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
93-
BluetoothLeUtils.checkAdapterStateOn(adapter);
9494

9595
boolean shouldStart;
9696

@@ -122,7 +122,6 @@ public void run() {
122122
@RequiresPermission(allOf = {Manifest.permission.BLUETOOTH_ADMIN, Manifest.permission.BLUETOOTH})
123123
/* package */ void stopScanInternal(@NonNull final ScanCallback callback) {
124124
final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
125-
BluetoothLeUtils.checkAdapterStateOn(adapter);
126125

127126
boolean shouldStop;
128127
ScanCallbackWrapper wrapper;
@@ -157,9 +156,6 @@ public void run() {
157156
@NonNull final ScanSettings settings,
158157
@NonNull final Context context,
159158
@NonNull final PendingIntent callbackIntent) {
160-
final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
161-
BluetoothLeUtils.checkAdapterStateOn(adapter);
162-
163159
final Intent service = new Intent(context, ScannerService.class);
164160
service.putParcelableArrayListExtra(ScannerService.EXTRA_FILTERS, new ArrayList<>(filters));
165161
service.putExtra(ScannerService.EXTRA_SETTINGS, settings);
@@ -172,9 +168,6 @@ public void run() {
172168
@RequiresPermission(allOf = {Manifest.permission.BLUETOOTH_ADMIN, Manifest.permission.BLUETOOTH})
173169
/* package */ void stopScanInternal(@NonNull final Context context,
174170
@NonNull final PendingIntent callbackIntent) {
175-
final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
176-
BluetoothLeUtils.checkAdapterStateOn(adapter);
177-
178171
final Intent service = new Intent(context, ScannerService.class);
179172
service.putExtra(ScannerService.EXTRA_PENDING_INTENT, callbackIntent);
180173
service.putExtra(ScannerService.EXTRA_START, false);
@@ -184,8 +177,6 @@ public void run() {
184177
@Override
185178
@RequiresPermission(Manifest.permission.BLUETOOTH)
186179
public void flushPendingScanResults(@NonNull final ScanCallback callback) {
187-
final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
188-
BluetoothLeUtils.checkAdapterStateOn(adapter);
189180
//noinspection ConstantConditions
190181
if (callback == null) {
191182
throw new IllegalArgumentException("callback cannot be null!");

scanner/src/main/java/no/nordicsemi/android/support/v18/scanner/BluetoothLeScannerImplLollipop.java

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,15 @@
3232
import android.os.Build;
3333
import android.os.Handler;
3434
import android.os.SystemClock;
35-
import androidx.annotation.NonNull;
36-
import androidx.annotation.RequiresPermission;
3735

3836
import java.util.ArrayList;
3937
import java.util.HashMap;
4038
import java.util.List;
4139
import java.util.Map;
4240

41+
import androidx.annotation.NonNull;
42+
import androidx.annotation.RequiresPermission;
43+
4344
@SuppressWarnings({"deprecation", "WeakerAccess"})
4445
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
4546
/* package */ class BluetoothLeScannerImplLollipop extends BluetoothLeScannerCompat {
@@ -55,8 +56,6 @@
5556
@NonNull final ScanCallback callback,
5657
@NonNull final Handler handler) {
5758
final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
58-
BluetoothLeUtils.checkAdapterStateOn(adapter);
59-
6059
final BluetoothLeScanner scanner = adapter.getBluetoothLeScanner();
6160
if (scanner == null)
6261
throw new IllegalStateException("BT le scanner not available");
@@ -86,13 +85,6 @@
8685
@Override
8786
@RequiresPermission(allOf = {Manifest.permission.BLUETOOTH_ADMIN, Manifest.permission.BLUETOOTH})
8887
/* package */ void stopScanInternal(@NonNull final ScanCallback callback) {
89-
final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
90-
BluetoothLeUtils.checkAdapterStateOn(adapter);
91-
92-
final BluetoothLeScanner scanner = adapter.getBluetoothLeScanner();
93-
if (scanner == null)
94-
throw new IllegalStateException("BT le scanner not available");
95-
9688
ScanCallbackWrapperLollipop wrapper;
9789
synchronized (wrappers) {
9890
wrapper = wrappers.remove(callback);
@@ -102,7 +94,12 @@
10294

10395
wrapper.close();
10496

105-
scanner.stopScan(wrapper.nativeCallback);
97+
final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
98+
if (adapter != null) {
99+
final BluetoothLeScanner scanner = adapter.getBluetoothLeScanner();
100+
if (scanner != null)
101+
scanner.stopScan(wrapper.nativeCallback);
102+
}
106103
}
107104

108105
@Override
@@ -112,8 +109,6 @@
112109
@NonNull final Context context,
113110
@NonNull final PendingIntent callbackIntent) {
114111
final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
115-
BluetoothLeUtils.checkAdapterStateOn(adapter);
116-
117112
final BluetoothLeScanner scanner = adapter.getBluetoothLeScanner();
118113
if (scanner == null)
119114
throw new IllegalStateException("BT le scanner not available");
@@ -130,13 +125,6 @@
130125
@RequiresPermission(allOf = {Manifest.permission.BLUETOOTH_ADMIN, Manifest.permission.BLUETOOTH})
131126
/* package */ void stopScanInternal(@NonNull final Context context,
132127
@NonNull final PendingIntent callbackIntent) {
133-
final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
134-
BluetoothLeUtils.checkAdapterStateOn(adapter);
135-
136-
final BluetoothLeScanner scanner = adapter.getBluetoothLeScanner();
137-
if (scanner == null)
138-
throw new IllegalStateException("BT le scanner not available");
139-
140128
final Intent service = new Intent(context, ScannerService.class);
141129
service.putExtra(ScannerService.EXTRA_PENDING_INTENT, callbackIntent);
142130
service.putExtra(ScannerService.EXTRA_START, false);
@@ -147,7 +135,6 @@
147135
@RequiresPermission(Manifest.permission.BLUETOOTH)
148136
public void flushPendingScanResults(@NonNull final ScanCallback callback) {
149137
final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
150-
BluetoothLeUtils.checkAdapterStateOn(adapter);
151138
//noinspection ConstantConditions
152139
if (callback == null) {
153140
throw new IllegalArgumentException("callback cannot be null!");

scanner/src/main/java/no/nordicsemi/android/support/v18/scanner/BluetoothLeScannerImplMarshmallow.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import android.annotation.TargetApi;
2626
import android.bluetooth.BluetoothAdapter;
2727
import android.os.Build;
28+
2829
import androidx.annotation.NonNull;
2930

3031
@TargetApi(Build.VERSION_CODES.M)

scanner/src/main/java/no/nordicsemi/android/support/v18/scanner/BluetoothLeScannerImplOreo.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,16 @@
3131
import android.content.Intent;
3232
import android.os.Build;
3333
import android.os.Handler;
34-
import androidx.annotation.NonNull;
35-
import androidx.annotation.Nullable;
36-
import androidx.annotation.RequiresPermission;
3734

3835
import java.util.ArrayList;
3936
import java.util.Collections;
4037
import java.util.HashMap;
4138
import java.util.List;
4239

40+
import androidx.annotation.NonNull;
41+
import androidx.annotation.Nullable;
42+
import androidx.annotation.RequiresPermission;
43+
4344
@TargetApi(Build.VERSION_CODES.O)
4445
/* package */ class BluetoothLeScannerImplOreo extends BluetoothLeScannerImplMarshmallow {
4546

@@ -88,8 +89,6 @@
8889
@NonNull final Context context,
8990
@NonNull final PendingIntent callbackIntent) {
9091
final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
91-
BluetoothLeUtils.checkAdapterStateOn(adapter);
92-
9392
final BluetoothLeScanner scanner = adapter.getBluetoothLeScanner();
9493
if (scanner == null)
9594
throw new IllegalStateException("BT le scanner not available");
@@ -117,8 +116,6 @@
117116
/* package */ void stopScanInternal(@NonNull final Context context,
118117
@NonNull final PendingIntent callbackIntent) {
119118
final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
120-
BluetoothLeUtils.checkAdapterStateOn(adapter);
121-
122119
final BluetoothLeScanner scanner = adapter.getBluetoothLeScanner();
123120
if (scanner == null)
124121
throw new IllegalStateException("BT le scanner not available");

scanner/src/main/java/no/nordicsemi/android/support/v18/scanner/BluetoothLeUtils.java

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,15 @@
1616

1717
package no.nordicsemi.android.support.v18.scanner;
1818

19-
import android.Manifest;
20-
import android.bluetooth.BluetoothAdapter;
21-
import androidx.annotation.Nullable;
22-
import androidx.annotation.RequiresPermission;
2319
import android.util.SparseArray;
2420

2521
import java.util.Arrays;
2622
import java.util.Iterator;
2723
import java.util.Map;
2824
import java.util.Set;
2925

26+
import androidx.annotation.Nullable;
27+
3028
/**
3129
* Helper class for Bluetooth LE utils.
3230
*/
@@ -128,17 +126,4 @@ static <T> boolean equals(@Nullable final Map<T, byte[]> map, Map<T, byte[]> oth
128126
return true;
129127
}
130128

131-
/**
132-
* Ensure Bluetooth is turned on.
133-
*
134-
* @throws IllegalStateException If {@code adapter} is null or Bluetooth state is not
135-
* {@link BluetoothAdapter#STATE_ON}.
136-
*/
137-
@RequiresPermission(Manifest.permission.BLUETOOTH)
138-
static void checkAdapterStateOn(@Nullable final BluetoothAdapter adapter) {
139-
if (adapter == null || adapter.getState() != BluetoothAdapter.STATE_ON) {
140-
throw new IllegalStateException("BT Adapter is not turned ON");
141-
}
142-
}
143-
144129
}

scanner/src/main/java/no/nordicsemi/android/support/v18/scanner/PendingIntentExecutor.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,14 @@
66
import android.content.Intent;
77
import android.os.Parcelable;
88
import android.os.SystemClock;
9-
import androidx.annotation.NonNull;
10-
import androidx.annotation.Nullable;
119

1210
import java.util.ArrayList;
1311
import java.util.Collections;
1412
import java.util.List;
1513

14+
import androidx.annotation.NonNull;
15+
import androidx.annotation.Nullable;
16+
1617
/**
1718
* A ScanCallback that will send a {@link PendingIntent} when callback's methods are called.
1819
*/

scanner/src/main/java/no/nordicsemi/android/support/v18/scanner/PendingIntentReceiver.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,12 @@
77
import android.content.Context;
88
import android.content.Intent;
99
import android.os.Build;
10-
import androidx.annotation.RequiresApi;
1110

1211
import java.util.ArrayList;
1312
import java.util.List;
1413

14+
import androidx.annotation.RequiresApi;
15+
1516
/**
1617
* This receiver, registered in AndroidManifest, will translate received
1718
* {@link android.bluetooth.le.ScanResult}s into compat {@link ScanResult}s and will send

scanner/src/main/java/no/nordicsemi/android/support/v18/scanner/ScanCallback.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@
2222

2323
package no.nordicsemi.android.support.v18.scanner;
2424

25-
import androidx.annotation.NonNull;
26-
2725
import java.util.List;
2826

27+
import androidx.annotation.NonNull;
28+
2929
/**
3030
* Bluetooth LE scan callbacks. Scan results are reported using these callbacks.
3131
*

scanner/src/main/java/no/nordicsemi/android/support/v18/scanner/ScanFilter.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,14 @@
2727
import android.os.Parcel;
2828
import android.os.ParcelUuid;
2929
import android.os.Parcelable;
30-
import androidx.annotation.NonNull;
31-
import androidx.annotation.Nullable;
3230

3331
import java.util.Arrays;
3432
import java.util.List;
3533
import java.util.UUID;
3634

35+
import androidx.annotation.NonNull;
36+
import androidx.annotation.Nullable;
37+
3738
/**
3839
* Criteria for filtering result from Bluetooth LE scans. A {@link ScanFilter} allows clients to
3940
* restrict scan results to only those that are of interest to them.

scanner/src/main/java/no/nordicsemi/android/support/v18/scanner/ScanRecord.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@
2424
package no.nordicsemi.android.support.v18.scanner;
2525

2626
import android.os.ParcelUuid;
27-
import androidx.annotation.NonNull;
28-
import androidx.annotation.Nullable;
2927
import android.util.Log;
3028
import android.util.SparseArray;
3129

@@ -35,6 +33,9 @@
3533
import java.util.List;
3634
import java.util.Map;
3735

36+
import androidx.annotation.NonNull;
37+
import androidx.annotation.Nullable;
38+
3839
/**
3940
* Represents a scan record from Bluetooth LE scan.
4041
*/

scanner/src/main/java/no/nordicsemi/android/support/v18/scanner/ScanResult.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import android.bluetooth.BluetoothDevice;
2626
import android.os.Parcel;
2727
import android.os.Parcelable;
28+
2829
import androidx.annotation.NonNull;
2930
import androidx.annotation.Nullable;
3031

scanner/src/main/java/no/nordicsemi/android/support/v18/scanner/ScanSettings.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,11 @@
2525
import android.bluetooth.BluetoothDevice;
2626
import android.os.Parcel;
2727
import android.os.Parcelable;
28-
import androidx.annotation.NonNull;
2928

3029
import java.util.List;
3130

31+
import androidx.annotation.NonNull;
32+
3233
/**
3334
* Bluetooth LE scan settings are passed to {@link BluetoothLeScannerCompat#startScan} to define the
3435
* parameters for the scan.

0 commit comments

Comments
 (0)