diff --git a/app/build.gradle b/app/build.gradle index 1c9c204..60620b5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,13 +1,13 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 32 + compileSdkVersion 33 defaultConfig { applicationId "com.blackboxembedded.wunderlinqgopro" minSdkVersion 23 - targetSdkVersion 32 - versionCode 4 - versionName "1.3" + targetSdkVersion 33 + versionCode 5 + versionName "1.4" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { @@ -21,9 +21,9 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation 'androidx.appcompat:appcompat:1.5.1' + implementation 'androidx.appcompat:appcompat:1.6.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' - implementation 'com.google.android.material:material:1.7.0' + implementation 'com.google.android.material:material:1.8.0' implementation 'com.pes.materialcolorpicker:library:1.2.5' implementation 'androidx.preference:preference:1.2.0' implementation 'com.rarepebble:colorpicker:3.0.1' diff --git a/app/src/main/java/com/blackboxembedded/wunderlinqgopro/DeviceScanActivity.java b/app/src/main/java/com/blackboxembedded/wunderlinqgopro/DeviceScanActivity.java index e1cbfb1..7887ded 100644 --- a/app/src/main/java/com/blackboxembedded/wunderlinqgopro/DeviceScanActivity.java +++ b/app/src/main/java/com/blackboxembedded/wunderlinqgopro/DeviceScanActivity.java @@ -242,39 +242,41 @@ private void scanLeDevice(final boolean enable) { (ActivityCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.BLUETOOTH_CONNECT) == PackageManager.PERMISSION_GRANTED)) { bluetoothLeScanner = mBluetoothAdapter.getBluetoothLeScanner(); - ScanSettings bleScanSettings = new ScanSettings.Builder() - .setScanMode(ScanSettings.SCAN_MODE_BALANCED) - .setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES) - .build(); - // devices UUID service mask - ParcelUuid parcelUuidMask = new ParcelUuid(UUID.fromString("0000FFFF-0000-0000-0000-000000000000")); - - List bleScanFilter = new ArrayList<>(); - ScanFilter.Builder builder = new ScanFilter.Builder().setServiceUuid(new ParcelUuid(UUIDDatabase.UUID_GOPRO_CONTROL_SERVICE), parcelUuidMask); - bleScanFilter.add(builder.build()); - if (enable) { - // Stops scanning after a pre-defined scan period. - mHandler.postDelayed(new Runnable() { - @Override - public void run() { - if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.S || - (ActivityCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.BLUETOOTH_CONNECT) == PackageManager.PERMISSION_GRANTED)) { - mScanning = false; - bluetoothLeScanner.stopScan(mLeScanCallback); - startTimer(); + if (bluetoothLeScanner != null) { + ScanSettings bleScanSettings = new ScanSettings.Builder() + .setScanMode(ScanSettings.SCAN_MODE_BALANCED) + .setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES) + .build(); + // devices UUID service mask + ParcelUuid parcelUuidMask = new ParcelUuid(UUID.fromString("0000FFFF-0000-0000-0000-000000000000")); + + List bleScanFilter = new ArrayList<>(); + ScanFilter.Builder builder = new ScanFilter.Builder().setServiceUuid(new ParcelUuid(UUIDDatabase.UUID_GOPRO_CONTROL_SERVICE), parcelUuidMask); + bleScanFilter.add(builder.build()); + if (enable) { + // Stops scanning after a pre-defined scan period. + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.S || + (ActivityCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.BLUETOOTH_CONNECT) == PackageManager.PERMISSION_GRANTED)) { + mScanning = false; + bluetoothLeScanner.stopScan(mLeScanCallback); + startTimer(); + } } - } - }, SCAN_PERIOD); + }, SCAN_PERIOD); - mScanning = true; - bluetoothLeScanner.startScan(bleScanFilter, bleScanSettings, mLeScanCallback); - if (cTimer != null){ - cancelTimer(); + mScanning = true; + bluetoothLeScanner.startScan(bleScanFilter, bleScanSettings, mLeScanCallback); + if (cTimer != null) { + cancelTimer(); + } + } else { + mScanning = false; + bluetoothLeScanner.stopScan(mLeScanCallback); + startTimer(); } - } else { - mScanning = false; - bluetoothLeScanner.stopScan(mLeScanCallback); - startTimer(); } } } diff --git a/build.gradle b/build.gradle index bf25312..9be431a 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:7.3.1' + classpath 'com.android.tools.build:gradle:7.4.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files