diff --git a/README.md b/README.md index d3b29963..056afb39 100644 --- a/README.md +++ b/README.md @@ -22,11 +22,11 @@ for bidirectional text communication between devices. ### How to import to Android Studio The production version of nRF Toolbox depends on -[Android BLE Common Library](https://github.com/NordicSemiconductor/Android-BLE-Common-Library/) -(which depends on [Android BLE Library](https://github.com/NordicSemiconductor/Android-BLE-Library/)). -Both libraries are available on jcenter. +[Android BLE Library](https://github.com/NordicSemiconductor/Android-BLE-Library/) and demonstrates +use of the Android BLE Common Library (ble-common module), which provides parsers for common profiles +adopted by Bluetooth SIG. Both libraries are available on jcenter. -You may also include the BLE Library or BLE Common Library as modules. Clone the library project +You may also include the BLE Library and BLE Common Library as modules. Clone the library project to the same root folder. If you are having issue like [#40](https://github.com/NordicSemiconductor/Android-nRF-Toolbox/issues/40) @@ -66,7 +66,7 @@ different service implementation but still the `BleManager` is used to manage ea If the [useAutoConnect(boolean)](https://github.com/NordicSemiconductor/Android-BLE-Library/blob/e95a814f4c0ecd08a75e5f0e53c68e2b8dbdf70c/ble/src/main/java/no/nordicsemi/android/ble/ConnectRequest.java#L198) method returns `true` for a connection, the manager will try to reconnect automatically to the device if a link was lost. You will also be notified about a device that got away using -`onLinklossOccurred(BluetoothDevice)`. +`onDeviceDisconnected(ConnectionObserver.REASON_LINK_LOSS)`. The `BleMulticonnectProfileService` implementation, used by Proximity profile, does not save addresses of connected devices. When the service is killed it will not be able to reconnect to them after it's @@ -83,7 +83,8 @@ Such approach is not demonstrated in nRF Toolbox. At last, the `BleManager` can be accessed from a `ViewModel` (see [Architecture Components](https://developer.android.com/topic/libraries/architecture/index.html)). -Check out the [Android nRF Blinky](https://github.com/NordicSemiconductor/Android-nRF-Blinky) app for sample code. +Check out the [Android nRF Blinky](https://github.com/NordicSemiconductor/Android-nRF-Blinky) app +for sample code. ### Nordic UART Service diff --git a/app/build.gradle b/app/build.gradle index 1cd83615..64424bcc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,14 +2,14 @@ apply plugin: 'com.android.application' android { compileSdkVersion 29 - buildToolsVersion "29.0.2" + buildToolsVersion "29.0.3" defaultConfig { applicationId "no.nordicsemi.android.nrftoolbox" minSdkVersion 18 targetSdkVersion 29 - versionCode 76 - versionName "2.8.4" + versionCode 77 + versionName "2.9.0" resConfigs "en" vectorDrawables.useSupportLibrary = true @@ -42,15 +42,15 @@ dependencies { //noinspection GradleDependency implementation 'com.google.android.gms:play-services-wearable:10.2.0' - implementation 'androidx.appcompat:appcompat:1.2.0-alpha02' - implementation 'androidx.preference:preference:1.1.0' - implementation 'com.google.android.material:material:1.2.0-alpha04' + implementation 'androidx.appcompat:appcompat:1.3.0-alpha01' + implementation 'androidx.preference:preference:1.1.1' + implementation 'com.google.android.material:material:1.2.0-alpha06' implementation 'no.nordicsemi.android:log:2.2.0' implementation 'no.nordicsemi.android.support.v18:scanner:1.4.3' // The DFU Library is imported automatically from jcenter: - implementation 'no.nordicsemi.android:dfu:1.10.0' + implementation 'no.nordicsemi.android:dfu:1.10.3' // if you desire to build the DFU Library, clone the // https://github.com/NordicSemiconductor/Android-DFU-Library project into DFULibrary folder, // add it as a module into the project structure and uncomment the following line @@ -63,7 +63,7 @@ dependencies { // Import the BLE Common Library. // The BLE Common Library depends on BLE Library. It is enough to include the first one. - implementation 'no.nordicsemi.android:ble-common:2.2.0-alpha06' + implementation 'no.nordicsemi.android:ble-common:2.2.0' // The BLE Common Library may be included from jcenter. If you want to modify the code, // clone both projects from GitHub and replace the line above with the following // (and also the according lines in the settings.gradle): diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/battery/BatteryManager.java b/app/src/main/java/no/nordicsemi/android/nrftoolbox/battery/BatteryManager.java index e6ed2584..36cf52d5 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/battery/BatteryManager.java +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/battery/BatteryManager.java @@ -50,7 +50,7 @@ public abstract class BatteryManager extends @IntRange(from = 0, to = 100) final int batteryLevel) { log(LogContract.Log.Level.APPLICATION,"Battery Level received: " + batteryLevel + "%"); BatteryManager.this.batteryLevel = batteryLevel; - callbacks.onBatteryLevelChanged(device, batteryLevel); + mCallbacks.onBatteryLevelChanged(device, batteryLevel); } @Override diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/bpm/BPMActivity.java b/app/src/main/java/no/nordicsemi/android/nrftoolbox/bpm/BPMActivity.java index a7b68dd9..8290c12e 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/bpm/BPMActivity.java +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/bpm/BPMActivity.java @@ -92,7 +92,7 @@ public class BPMActivity extends BleProfileActivity implements BPMManagerCallbac @Override protected LoggableBleManager initializeManager() { final BPMManager manager = BPMManager.getBPMManager(getApplicationContext()); - manager.setManagerCallbacks(this); + manager.setGattCallbacks(this); return manager; } diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/bpm/BPMManager.java b/app/src/main/java/no/nordicsemi/android/nrftoolbox/bpm/BPMManager.java index 2edc8ab8..d452f9c7 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/bpm/BPMManager.java +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/bpm/BPMManager.java @@ -99,7 +99,7 @@ public class BPMManager extends BatteryManager { final float cuffPressure, final int unit, @Nullable final Float pulseRate, @Nullable final Integer userID, @Nullable final BPMStatus status, @Nullable final Calendar calendar) { - callbacks.onIntermediateCuffPressureReceived(device, cuffPressure, unit, pulseRate, userID, status, calendar); + mCallbacks.onIntermediateCuffPressureReceived(device, cuffPressure, unit, pulseRate, userID, status, calendar); } @Override @@ -123,7 +123,7 @@ public class BPMManager extends BatteryManager { final int unit, @Nullable final Float pulseRate, @Nullable final Integer userID, @Nullable final BPMStatus status, @Nullable final Calendar calendar) { - callbacks.onBloodPressureMeasurementReceived(device, systolic, diastolic, + mCallbacks.onBloodPressureMeasurementReceived(device, systolic, diastolic, meanArterialPressure, unit, pulseRate, userID, status, calendar); } diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/cgm/CGMManager.java b/app/src/main/java/no/nordicsemi/android/nrftoolbox/cgm/CGMManager.java index b49b6562..cd8bba53 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/cgm/CGMManager.java +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/cgm/CGMManager.java @@ -91,7 +91,7 @@ class CGMManager extends BatteryManager { } /** - * BluetoothGatt callbacks for connection/disconnection, service discovery, + * BluetoothGatt mCallbacks for connection/disconnection, service discovery, * receiving notification, etc. */ private class CGMManagerGattCallback extends BatteryManagerGattCallback { @@ -129,7 +129,7 @@ class CGMManager extends BatteryManager { .fail((device, status) -> log(Log.WARN, "Could not read CGM Status characteristic")) .enqueue(); - // Set notification and indication callbacks + // Set notification and indication mCallbacks setNotificationCallback(cgmMeasurementCharacteristic) .with(new ContinuousGlucoseMeasurementDataCallback() { @Override @@ -157,7 +157,7 @@ class CGMManager extends BatteryManager { final CGMRecord record = new CGMRecord(timeOffset, glucoseConcentration, timestamp); records.put(record.sequenceNumber, record); - callbacks.onCGMValueReceived(device, record); + mCallbacks.onCGMValueReceived(device, record); } @Override @@ -234,11 +234,11 @@ class CGMManager extends BatteryManager { //noinspection SwitchStatementWithTooFewBranches switch (requestCode) { case RACP_OP_CODE_ABORT_OPERATION: - callbacks.onOperationAborted(device); + mCallbacks.onOperationAborted(device); break; default: recordAccessRequestInProgress = false; - callbacks.onOperationCompleted(device); + mCallbacks.onOperationCompleted(device); break; } } @@ -247,12 +247,12 @@ class CGMManager extends BatteryManager { public void onRecordAccessOperationCompletedWithNoRecordsFound(@NonNull final BluetoothDevice device, @RACPOpCode final int requestCode) { recordAccessRequestInProgress = false; - callbacks.onOperationCompleted(device); + mCallbacks.onOperationCompleted(device); } @Override public void onNumberOfRecordsReceived(@NonNull final BluetoothDevice device, final int numberOfRecords) { - callbacks.onNumberOfRecordsRequested(device, numberOfRecords); + mCallbacks.onNumberOfRecordsRequested(device, numberOfRecords); if (numberOfRecords > 0) { if (records.size() > 0) { final int sequenceNumber = records.keyAt(records.size() - 1) + 1; @@ -266,7 +266,7 @@ class CGMManager extends BatteryManager { } } else { recordAccessRequestInProgress = false; - callbacks.onOperationCompleted(device); + mCallbacks.onOperationCompleted(device); } } @@ -276,9 +276,9 @@ class CGMManager extends BatteryManager { @RACPErrorCode final int errorCode) { log(Log.WARN, "Record Access operation failed (error " + errorCode + ")"); if (errorCode == RACP_ERROR_OP_CODE_NOT_SUPPORTED) { - callbacks.onOperationNotSupported(device); + mCallbacks.onOperationNotSupported(device); } else { - callbacks.onOperationFailed(device); + mCallbacks.onOperationFailed(device); } } }); @@ -341,7 +341,7 @@ class CGMManager extends BatteryManager { */ void clear() { records.clear(); - callbacks.onDataSetCleared(getBluetoothDevice()); + mCallbacks.onDataSetCleared(getBluetoothDevice()); } /** @@ -354,7 +354,7 @@ class CGMManager extends BatteryManager { return; clear(); - callbacks.onOperationStarted(getBluetoothDevice()); + mCallbacks.onOperationStarted(getBluetoothDevice()); recordAccessRequestInProgress = true; writeCharacteristic(recordAccessControlPointCharacteristic, RecordAccessControlPointData.reportLastStoredRecord()) .with((device, data) -> log(LogContract.Log.Level.APPLICATION, "\"" + RecordAccessControlPointParser.parse(data) + "\" sent")) @@ -371,7 +371,7 @@ class CGMManager extends BatteryManager { return; clear(); - callbacks.onOperationStarted(getBluetoothDevice()); + mCallbacks.onOperationStarted(getBluetoothDevice()); recordAccessRequestInProgress = true; writeCharacteristic(recordAccessControlPointCharacteristic, RecordAccessControlPointData.reportFirstStoredRecord()) .with((device, data) -> log(LogContract.Log.Level.APPLICATION, "\"" + RecordAccessControlPointParser.parse(data) + "\" sent")) @@ -401,7 +401,7 @@ class CGMManager extends BatteryManager { return; clear(); - callbacks.onOperationStarted(getBluetoothDevice()); + mCallbacks.onOperationStarted(getBluetoothDevice()); recordAccessRequestInProgress = true; writeCharacteristic(recordAccessControlPointCharacteristic, RecordAccessControlPointData.reportNumberOfAllStoredRecords()) .with((device, data) -> log(LogContract.Log.Level.APPLICATION, "\"" + RecordAccessControlPointParser.parse(data) + "\" sent")) @@ -421,7 +421,7 @@ class CGMManager extends BatteryManager { if (records.size() == 0) { getAllRecords(); } else { - callbacks.onOperationStarted(getBluetoothDevice()); + mCallbacks.onOperationStarted(getBluetoothDevice()); // Obtain the last sequence number final int sequenceNumber = records.keyAt(records.size() - 1) + 1; @@ -445,7 +445,7 @@ class CGMManager extends BatteryManager { return; clear(); - callbacks.onOperationStarted(getBluetoothDevice()); + mCallbacks.onOperationStarted(getBluetoothDevice()); writeCharacteristic(recordAccessControlPointCharacteristic, RecordAccessControlPointData.deleteAllStoredRecords()) .with((device, data) -> log(LogContract.Log.Level.APPLICATION, "\"" + RecordAccessControlPointParser.parse(data) + "\" sent")) .enqueue(); diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/csc/CSCManager.java b/app/src/main/java/no/nordicsemi/android/nrftoolbox/csc/CSCManager.java index 58aac074..239de234 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/csc/CSCManager.java +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/csc/CSCManager.java @@ -95,14 +95,14 @@ public class CSCManager extends BatteryManager { @FloatRange(from = 0) final float totalDistance, @FloatRange(from = 0) final float distance, @FloatRange(from = 0) final float speed) { - callbacks.onDistanceChanged(device, totalDistance, distance, speed); + mCallbacks.onDistanceChanged(device, totalDistance, distance, speed); } @Override public void onCrankDataChanged(@NonNull final BluetoothDevice device, @FloatRange(from = 0) final float crankCadence, final float gearRatio) { - callbacks.onCrankDataChanged(device, crankCadence, gearRatio); + mCallbacks.onCrankDataChanged(device, crankCadence, gearRatio); } @Override diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/csc/CSCService.java b/app/src/main/java/no/nordicsemi/android/nrftoolbox/csc/CSCService.java index e177a25c..8f57164c 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/csc/CSCService.java +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/csc/CSCService.java @@ -164,7 +164,7 @@ public class CSCService extends BleProfileService implements CSCManagerCallbacks private void startForegroundService(){ // when the activity closes we need to show the notification that user is connected to the peripheral sensor // We start the service as a foreground service as Android 8.0 (Oreo) onwards kills any running background services - final Notification notification = createNotification(R.string.uart_notification_connected_message, 0); + final Notification notification = createNotification(R.string.csc_notification_connected_message, 0); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { startForeground(NOTIFICATION_ID, notification); } else { diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/gls/GlucoseActivity.java b/app/src/main/java/no/nordicsemi/android/nrftoolbox/gls/GlucoseActivity.java index 238f650e..f9d90c3f 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/gls/GlucoseActivity.java +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/gls/GlucoseActivity.java @@ -82,7 +82,7 @@ public class GlucoseActivity extends BleProfileExpandableListActivity implements @Override protected LoggableBleManager initializeManager() { final GlucoseManager manager = glucoseManager = GlucoseManager.getGlucoseManager(getApplicationContext()); - manager.setManagerCallbacks(this); + manager.setGattCallbacks(this); return manager; } diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/gls/GlucoseManager.java b/app/src/main/java/no/nordicsemi/android/nrftoolbox/gls/GlucoseManager.java index 6ac2a3f9..66cf19cd 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/gls/GlucoseManager.java +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/gls/GlucoseManager.java @@ -147,7 +147,7 @@ public class GlucoseManager extends BatteryManager { // if there is no context information following the measurement data, // notify callback about the new record if (!contextInformationFollows) - callbacks.onDataSetChanged(device); + mCallbacks.onDataSetChanged(device); }); } }); @@ -189,7 +189,7 @@ public class GlucoseManager extends BatteryManager { handler.post(() -> { // notify callback about the new record - callbacks.onDataSetChanged(device); + mCallbacks.onDataSetChanged(device); }); } }); @@ -209,10 +209,10 @@ public class GlucoseManager extends BatteryManager { //noinspection SwitchStatementWithTooFewBranches switch (requestCode) { case RACP_OP_CODE_ABORT_OPERATION: - callbacks.onOperationAborted(device); + mCallbacks.onOperationAborted(device); break; default: - callbacks.onOperationCompleted(device); + mCallbacks.onOperationCompleted(device); break; } } @@ -220,12 +220,12 @@ public class GlucoseManager extends BatteryManager { @Override public void onRecordAccessOperationCompletedWithNoRecordsFound(@NonNull final BluetoothDevice device, @RACPOpCode final int requestCode) { - callbacks.onOperationCompleted(device); + mCallbacks.onOperationCompleted(device); } @Override public void onNumberOfRecordsReceived(@NonNull final BluetoothDevice device, final int numberOfRecords) { - callbacks.onNumberOfRecordsRequested(device, numberOfRecords); + mCallbacks.onNumberOfRecordsRequested(device, numberOfRecords); if (numberOfRecords > 0) { if (records.size() > 0) { final int sequenceNumber = records.keyAt(records.size() - 1) + 1; @@ -238,7 +238,7 @@ public class GlucoseManager extends BatteryManager { .enqueue(); } } else { - callbacks.onOperationCompleted(device); + mCallbacks.onOperationCompleted(device); } } @@ -248,9 +248,9 @@ public class GlucoseManager extends BatteryManager { @RACPErrorCode final int errorCode) { log(Log.WARN, "Record Access operation failed (error " + errorCode + ")"); if (errorCode == RACP_ERROR_OP_CODE_NOT_SUPPORTED) { - callbacks.onOperationNotSupported(device); + mCallbacks.onOperationNotSupported(device); } else { - callbacks.onOperationFailed(device); + mCallbacks.onOperationFailed(device); } } }); @@ -303,7 +303,7 @@ public class GlucoseManager extends BatteryManager { records.clear(); final BluetoothDevice target = getBluetoothDevice(); if (target != null) { - callbacks.onOperationCompleted(target); + mCallbacks.onOperationCompleted(target); } } @@ -320,7 +320,7 @@ public class GlucoseManager extends BatteryManager { return; clear(); - callbacks.onOperationStarted(target); + mCallbacks.onOperationStarted(target); writeCharacteristic(recordAccessControlPointCharacteristic, RecordAccessControlPointData.reportLastStoredRecord()) .with((device, data) -> log(LogContract.Log.Level.APPLICATION, "\"" + RecordAccessControlPointParser.parse(data) + "\" sent")) .enqueue(); @@ -339,7 +339,7 @@ public class GlucoseManager extends BatteryManager { return; clear(); - callbacks.onOperationStarted(target); + mCallbacks.onOperationStarted(target); writeCharacteristic(recordAccessControlPointCharacteristic, RecordAccessControlPointData.reportFirstStoredRecord()) .with((device, data) -> log(LogContract.Log.Level.APPLICATION, "\"" + RecordAccessControlPointParser.parse(data) + "\" sent")) .enqueue(); @@ -359,7 +359,7 @@ public class GlucoseManager extends BatteryManager { return; clear(); - callbacks.onOperationStarted(target); + mCallbacks.onOperationStarted(target); writeCharacteristic(recordAccessControlPointCharacteristic, RecordAccessControlPointData.reportNumberOfAllStoredRecords()) .with((device, data) -> log(LogContract.Log.Level.APPLICATION, "\"" + RecordAccessControlPointParser.parse(data) + "\" sent")) .enqueue(); @@ -385,7 +385,7 @@ public class GlucoseManager extends BatteryManager { if (records.size() == 0) { getAllRecords(); } else { - callbacks.onOperationStarted(target); + mCallbacks.onOperationStarted(target); // obtain the last sequence number final int sequenceNumber = records.keyAt(records.size() - 1) + 1; @@ -426,7 +426,7 @@ public class GlucoseManager extends BatteryManager { return; clear(); - callbacks.onOperationStarted(target); + mCallbacks.onOperationStarted(target); writeCharacteristic(recordAccessControlPointCharacteristic, RecordAccessControlPointData.deleteAllStoredRecords()) .with((device, data) -> log(LogContract.Log.Level.APPLICATION, "\"" + RecordAccessControlPointParser.parse(data) + "\" sent")) .enqueue(); diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/hr/HRActivity.java b/app/src/main/java/no/nordicsemi/android/nrftoolbox/hr/HRActivity.java index 69482a20..2ad3a50f 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/hr/HRActivity.java +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/hr/HRActivity.java @@ -183,7 +183,7 @@ public class HRActivity extends BleProfileActivity implements HRManagerCallbacks @Override protected LoggableBleManager initializeManager() { final HRManager manager = HRManager.getInstance(getApplicationContext()); - manager.setManagerCallbacks(this); + manager.setGattCallbacks(this); return manager; } diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/hr/HRManager.java b/app/src/main/java/no/nordicsemi/android/nrftoolbox/hr/HRManager.java index dda80186..f542a8b1 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/hr/HRManager.java +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/hr/HRManager.java @@ -99,7 +99,7 @@ public class HRManager extends BatteryManager { @Override public void onBodySensorLocationReceived(@NonNull final BluetoothDevice device, @BodySensorLocation final int sensorLocation) { - callbacks.onBodySensorLocationReceived(device, sensorLocation); + mCallbacks.onBodySensorLocationReceived(device, sensorLocation); } }) .fail((device, status) -> log(Log.WARN, "Body Sensor Location characteristic not found")) @@ -118,7 +118,7 @@ public class HRManager extends BatteryManager { @Nullable final Boolean contactDetected, @Nullable @IntRange(from = 0) final Integer energyExpanded, @Nullable final List rrIntervals) { - callbacks.onHeartRateMeasurementReceived(device, heartRate, contactDetected, energyExpanded, rrIntervals); + mCallbacks.onHeartRateMeasurementReceived(device, heartRate, contactDetected, energyExpanded, rrIntervals); } }); enableNotifications(heartRateCharacteristic).enqueue(); diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/ht/HTManager.java b/app/src/main/java/no/nordicsemi/android/nrftoolbox/ht/HTManager.java index 95831cb5..65d6818d 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/ht/HTManager.java +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/ht/HTManager.java @@ -87,7 +87,7 @@ public class HTManager extends BatteryManager { @TemperatureUnit final int unit, @Nullable final Calendar calendar, @Nullable @TemperatureType final Integer type) { - callbacks.onTemperatureMeasurementReceived(device, temperature, unit, calendar, type); + mCallbacks.onTemperatureMeasurementReceived(device, temperature, unit, calendar, type); } }); enableIndications(htCharacteristic).enqueue(); diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/ht/HTService.java b/app/src/main/java/no/nordicsemi/android/nrftoolbox/ht/HTService.java index 684e9afd..a87d5adf 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/ht/HTService.java +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/ht/HTService.java @@ -161,7 +161,7 @@ public class HTService extends BleProfileService implements HTManagerCallbacks { private void startForegroundService(){ // when the activity closes we need to show the notification that user is connected to the peripheral sensor // We start the service as a foreground service as Android 8.0 (Oreo) onwards kills any running background services - final Notification notification = createNotification(R.string.uart_notification_connected_message, 0); + final Notification notification = createNotification(R.string.hts_notification_connected_message, 0); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { startForeground(NOTIFICATION_ID, notification); } else { diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/profile/LoggableBleManager.java b/app/src/main/java/no/nordicsemi/android/nrftoolbox/profile/LoggableBleManager.java index 597f6e5b..2cd01d90 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/profile/LoggableBleManager.java +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/profile/LoggableBleManager.java @@ -1,12 +1,13 @@ package no.nordicsemi.android.nrftoolbox.profile; import android.content.Context; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import android.util.Log; -import no.nordicsemi.android.ble.BleManager; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + import no.nordicsemi.android.ble.BleManagerCallbacks; +import no.nordicsemi.android.ble.LegacyBleManager; import no.nordicsemi.android.log.ILogSession; import no.nordicsemi.android.log.LogContract; import no.nordicsemi.android.log.Logger; @@ -16,14 +17,14 @@ import no.nordicsemi.android.log.Logger; * * @param the callbacks class. */ -public abstract class LoggableBleManager extends BleManager { +public abstract class LoggableBleManager extends LegacyBleManager { private ILogSession logSession; /** * The manager constructor. *

* After constructing the manager, the callbacks object must be set with - * {@link #setManagerCallbacks(BleManagerCallbacks)}. + * {@link #setGattCallbacks(BleManagerCallbacks)}. * * @param context the context. */ diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/profile/multiconnect/BleMulticonnectProfileService.java b/app/src/main/java/no/nordicsemi/android/nrftoolbox/profile/multiconnect/BleMulticonnectProfileService.java index cd87cea6..a4f4a602 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/profile/multiconnect/BleMulticonnectProfileService.java +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/profile/multiconnect/BleMulticonnectProfileService.java @@ -141,7 +141,7 @@ public abstract class BleMulticonnectProfileService extends Service implements B LoggableBleManager manager = bleManagers.get(device); if (manager == null) { bleManagers.put(device, manager = initializeManager()); - manager.setManagerCallbacks(BleMulticonnectProfileService.this); + manager.setGattCallbacks(BleMulticonnectProfileService.this); } manager.setLogger(session); manager.connect(device) @@ -162,7 +162,7 @@ public abstract class BleMulticonnectProfileService extends Service implements B * @param device target device to disconnect and forget */ public void disconnect(final BluetoothDevice device) { - final BleManager manager = bleManagers.get(device); + final BleManager manager = bleManagers.get(device); if (manager != null && manager.isConnected()) { manager.disconnect().enqueue(); } @@ -175,7 +175,7 @@ public abstract class BleMulticonnectProfileService extends Service implements B * @return true if device is connected to the sensor, false otherwise */ public final boolean isConnected(final BluetoothDevice device) { - final BleManager manager = bleManagers.get(device); + final BleManager manager = bleManagers.get(device); return manager != null && manager.isConnected(); } @@ -186,7 +186,7 @@ public abstract class BleMulticonnectProfileService extends Service implements B * initializing. False otherwise. */ public final boolean isReady(final BluetoothDevice device) { - final BleManager manager = bleManagers.get(device); + final BleManager manager = bleManagers.get(device); return manager != null && manager.isReady(); } @@ -197,7 +197,7 @@ public abstract class BleMulticonnectProfileService extends Service implements B */ @SuppressWarnings("unused") public final int getConnectionState(final BluetoothDevice device) { - final BleManager manager = bleManagers.get(device); + final BleManager manager = bleManagers.get(device); return manager != null ? manager.getConnectionState() : BluetoothGatt.STATE_DISCONNECTED; } @@ -210,7 +210,7 @@ public abstract class BleMulticonnectProfileService extends Service implements B @SuppressWarnings("deprecation") @Deprecated public int getBatteryValue(final BluetoothDevice device) { - final BleManager manager = bleManagers.get(device); + final BleManager manager = bleManagers.get(device); if (manager != null) return manager.getBatteryValue(); return 0; @@ -228,27 +228,27 @@ public abstract class BleMulticonnectProfileService extends Service implements B @Override public void log(@NonNull final BluetoothDevice device, final int level, final String message) { - final BleManager manager = bleManagers.get(device); + final BleManager manager = bleManagers.get(device); if (manager != null) manager.log(level, message); } @Override public void log(@NonNull final BluetoothDevice device, final int level, @StringRes final int messageRes, final Object... params) { - final BleManager manager = bleManagers.get(device); + final BleManager manager = bleManagers.get(device); if (manager != null) manager.log(level, messageRes, params); } @Override public void log(final int level, @NonNull final String message) { - for (final BleManager manager : bleManagers.values()) + for (final BleManager manager : bleManagers.values()) manager.log(level, message); } @Override public void log(final int level, @StringRes final int messageRes, final Object... params) { - for (final BleManager manager : bleManagers.values()) + for (final BleManager manager : bleManagers.values()) manager.log(level, messageRes, params); } } @@ -405,7 +405,7 @@ public abstract class BleMulticonnectProfileService extends Service implements B unregisterReceiver(bluetoothStateBroadcastReceiver); // The managers map may not be empty if the service was killed by the system - for (final BleManager manager : bleManagers.values()) { + for (final BleManager manager : bleManagers.values()) { // Service is being destroyed, no need to disconnect manually. manager.close(); manager.log(Log.INFO, "Service destroyed"); @@ -432,7 +432,7 @@ public abstract class BleMulticonnectProfileService extends Service implements B */ protected void onBluetoothEnabled() { for (final BluetoothDevice device : managedDevices) { - final BleManager manager = bleManagers.get(device); + final BleManager manager = bleManagers.get(device); if (manager != null && !manager.isConnected()) manager.connect(device).enqueue(); } @@ -598,7 +598,7 @@ public abstract class BleMulticonnectProfileService extends Service implements B * @param device the target device * @return the BleManager or null */ - protected BleManager getBleManager(final BluetoothDevice device) { + protected BleManager getBleManager(final BluetoothDevice device) { return bleManagers.get(device); } @@ -617,7 +617,7 @@ public abstract class BleMulticonnectProfileService extends Service implements B protected List getConnectedDevices() { final List list = new ArrayList<>(); for (BluetoothDevice device : managedDevices) { - final BleManager manager = bleManagers.get(device); + final BleManager manager = bleManagers.get(device); if (manager != null && manager.isConnected()) list.add(device); } @@ -630,7 +630,7 @@ public abstract class BleMulticonnectProfileService extends Service implements B * @return true if device is connected to the sensor, false otherwise */ protected boolean isConnected(final BluetoothDevice device) { - final BleManager manager = bleManagers.get(device); + final BleManager manager = bleManagers.get(device); return manager != null && manager.isConnected(); } } diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/proximity/ProximityManager.java b/app/src/main/java/no/nordicsemi/android/nrftoolbox/proximity/ProximityManager.java index d44a7475..a1e1f791 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/proximity/ProximityManager.java +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/proximity/ProximityManager.java @@ -81,7 +81,7 @@ class ProximityManager extends BatteryManager { .with(new AlertLevelDataCallback() { @Override public void onAlertLevelChanged(@NonNull final BluetoothDevice device, final int level) { - callbacks.onLocalAlarmSwitched(device, level != ALERT_NONE); + mCallbacks.onLocalAlarmSwitched(device, level != ALERT_NONE); } }); // After connection, set the Link Loss behaviour on the tag. @@ -152,7 +152,7 @@ class ProximityManager extends BatteryManager { "\"" + AlertLevelParser.parse(data) + "\" sent")) .done(device -> { alertOn = on; - callbacks.onRemoteAlarmSwitched(device, on); + mCallbacks.onRemoteAlarmSwitched(device, on); }) .fail((device, status) -> log(Log.WARN, status == FailCallback.REASON_NULL_ATTRIBUTE ? diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/proximity/ProximityService.java b/app/src/main/java/no/nordicsemi/android/nrftoolbox/proximity/ProximityService.java index 330e8d44..34a9db25 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/proximity/ProximityService.java +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/proximity/ProximityService.java @@ -47,7 +47,7 @@ import androidx.core.app.NotificationCompat; import androidx.core.app.NotificationManagerCompat; import androidx.core.content.ContextCompat; import androidx.localbroadcastmanager.content.LocalBroadcastManager; -import no.nordicsemi.android.ble.BleServerManagerCallbacks; +import no.nordicsemi.android.ble.observer.ServerObserver; import no.nordicsemi.android.log.LogContract; import no.nordicsemi.android.nrftoolbox.FeaturesActivity; import no.nordicsemi.android.nrftoolbox.R; @@ -55,7 +55,7 @@ import no.nordicsemi.android.nrftoolbox.ToolboxApplication; import no.nordicsemi.android.nrftoolbox.profile.LoggableBleManager; import no.nordicsemi.android.nrftoolbox.profile.multiconnect.BleMulticonnectProfileService; -public class ProximityService extends BleMulticonnectProfileService implements ProximityManagerCallbacks, BleServerManagerCallbacks { +public class ProximityService extends BleMulticonnectProfileService implements ProximityManagerCallbacks, ServerObserver { @SuppressWarnings("unused") private static final String TAG = "ProximityService"; @@ -179,7 +179,7 @@ public class ProximityService extends BleMulticonnectProfileService implements P @Override protected void onServiceCreated() { serverManager = new ProximityServerManager(this); - serverManager.setManagerCallbacks(this); + serverManager.setServerObserver(this); initializeAlarm(); diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/rsc/RSCManager.java b/app/src/main/java/no/nordicsemi/android/nrftoolbox/rsc/RSCManager.java index 08f212be..90702d89 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/rsc/RSCManager.java +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/rsc/RSCManager.java @@ -78,7 +78,7 @@ public class RSCManager extends BatteryManager { final float instantaneousSpeed, final int instantaneousCadence, @Nullable final Integer strideLength, @Nullable final Long totalDistance) { - callbacks.onRSCMeasurementReceived(device, running, instantaneousSpeed, + mCallbacks.onRSCMeasurementReceived(device, running, instantaneousSpeed, instantaneousCadence, strideLength, totalDistance); } }); diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/rsc/RSCService.java b/app/src/main/java/no/nordicsemi/android/nrftoolbox/rsc/RSCService.java index 9de1959e..b21bbe52 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/rsc/RSCService.java +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/rsc/RSCService.java @@ -210,7 +210,7 @@ public class RSCService extends BleProfileService implements RSCManagerCallbacks private void startForegroundService(){ // when the activity closes we need to show the notification that user is connected to the peripheral sensor // We start the service as a foreground service as Android 8.0 (Oreo) onwards kills any running background services - final Notification notification = createNotification(R.string.uart_notification_connected_message, 0); + final Notification notification = createNotification(R.string.rsc_notification_connected_message, 0); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { startForeground(NOTIFICATION_ID, notification); } else { diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/template/TemplateManager.java b/app/src/main/java/no/nordicsemi/android/nrftoolbox/template/TemplateManager.java index 16e51f83..60b262cb 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/template/TemplateManager.java +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/template/TemplateManager.java @@ -123,7 +123,7 @@ public class TemplateManager extends BatteryManager { @Override public void onSampleValueReceived(@NonNull final BluetoothDevice device, final int value) { // Let's lass received data to the service - callbacks.onSampleValueReceived(device, value); + mCallbacks.onSampleValueReceived(device, value); } @Override diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/template/TemplateService.java b/app/src/main/java/no/nordicsemi/android/nrftoolbox/template/TemplateService.java index 65436804..e869c2ea 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/template/TemplateService.java +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/template/TemplateService.java @@ -137,7 +137,7 @@ public class TemplateService extends BleProfileService implements TemplateManage private void startForegroundService(){ // when the activity closes we need to show the notification that user is connected to the peripheral sensor // We start the service as a foreground service as Android 8.0 (Oreo) onwards kills any running background services - final Notification notification = createNotification(R.string.uart_notification_connected_message, 0); + final Notification notification = createNotification(R.string.template_notification_connected_message, 0); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { startForeground(NOTIFICATION_ID, notification); } else { diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/uart/UARTManager.java b/app/src/main/java/no/nordicsemi/android/nrftoolbox/uart/UARTManager.java index dcd3e54f..83b06008 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/uart/UARTManager.java +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/uart/UARTManager.java @@ -75,7 +75,7 @@ public class UARTManager extends LoggableBleManager { .with((device, data) -> { final String text = data.getStringValue(0); log(LogContract.Log.Level.APPLICATION, "\"" + text + "\" received"); - callbacks.onDataReceived(device, text); + mCallbacks.onDataReceived(device, text); }); requestMtu(260).enqueue(); enableNotifications(txCharacteristic).enqueue(); diff --git a/app/src/main/res/drawable-hdpi/ic_bpm_feature.png b/app/src/main/res/drawable-hdpi/ic_bpm_feature.png deleted file mode 100644 index 875f8a26..00000000 Binary files a/app/src/main/res/drawable-hdpi/ic_bpm_feature.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/ic_cgms_feature.png b/app/src/main/res/drawable-hdpi/ic_cgms_feature.png deleted file mode 100644 index 6e05b926..00000000 Binary files a/app/src/main/res/drawable-hdpi/ic_cgms_feature.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/ic_csc_feature.png b/app/src/main/res/drawable-hdpi/ic_csc_feature.png deleted file mode 100644 index 8a105bd0..00000000 Binary files a/app/src/main/res/drawable-hdpi/ic_csc_feature.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/ic_dfu_feature.png b/app/src/main/res/drawable-hdpi/ic_dfu_feature.png deleted file mode 100644 index db59fae8..00000000 Binary files a/app/src/main/res/drawable-hdpi/ic_dfu_feature.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/ic_glucose_feature.png b/app/src/main/res/drawable-hdpi/ic_glucose_feature.png deleted file mode 100644 index 9ea92439..00000000 Binary files a/app/src/main/res/drawable-hdpi/ic_glucose_feature.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/ic_hrs_feature.png b/app/src/main/res/drawable-hdpi/ic_hrs_feature.png deleted file mode 100644 index 650a4da6..00000000 Binary files a/app/src/main/res/drawable-hdpi/ic_hrs_feature.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/ic_hts_feature.png b/app/src/main/res/drawable-hdpi/ic_hts_feature.png deleted file mode 100644 index de2f119e..00000000 Binary files a/app/src/main/res/drawable-hdpi/ic_hts_feature.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/ic_proximity_feature.png b/app/src/main/res/drawable-hdpi/ic_proximity_feature.png deleted file mode 100644 index 5b80a881..00000000 Binary files a/app/src/main/res/drawable-hdpi/ic_proximity_feature.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/ic_rsc_feature.png b/app/src/main/res/drawable-hdpi/ic_rsc_feature.png deleted file mode 100644 index 8e45929e..00000000 Binary files a/app/src/main/res/drawable-hdpi/ic_rsc_feature.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/ic_template_feature.png b/app/src/main/res/drawable-hdpi/ic_template_feature.png deleted file mode 100644 index fef8a417..00000000 Binary files a/app/src/main/res/drawable-hdpi/ic_template_feature.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/proximity_lock_open.png b/app/src/main/res/drawable-hdpi/proximity_lock_open.png deleted file mode 100644 index e2c0f280..00000000 Binary files a/app/src/main/res/drawable-hdpi/proximity_lock_open.png and /dev/null differ diff --git a/app/src/main/res/drawable-v21/button.xml b/app/src/main/res/drawable-v21/button.xml deleted file mode 100644 index 4ce2cf21..00000000 --- a/app/src/main/res/drawable-v21/button.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable-v21/ic_feature_bg.xml b/app/src/main/res/drawable-v21/ic_feature_bg.xml index 28a32b0a..70b4c522 100644 --- a/app/src/main/res/drawable-v21/ic_feature_bg.xml +++ b/app/src/main/res/drawable-v21/ic_feature_bg.xml @@ -24,7 +24,7 @@ android:color="@color/featurePressedColor" > - + diff --git a/app/src/main/res/drawable-xhdpi/ic_bpm_feature.png b/app/src/main/res/drawable-xhdpi/ic_bpm_feature.png deleted file mode 100644 index 681e2617..00000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_bpm_feature.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_cgms_feature.png b/app/src/main/res/drawable-xhdpi/ic_cgms_feature.png deleted file mode 100644 index c18519d2..00000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_cgms_feature.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_csc_feature.png b/app/src/main/res/drawable-xhdpi/ic_csc_feature.png deleted file mode 100644 index ba5e6243..00000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_csc_feature.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_dfu_feature.png b/app/src/main/res/drawable-xhdpi/ic_dfu_feature.png deleted file mode 100644 index d7065e05..00000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_dfu_feature.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_glucose_feature.png b/app/src/main/res/drawable-xhdpi/ic_glucose_feature.png deleted file mode 100644 index 99ab2f53..00000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_glucose_feature.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_hrs_feature.png b/app/src/main/res/drawable-xhdpi/ic_hrs_feature.png deleted file mode 100644 index d28b50d4..00000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_hrs_feature.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_hts_feature.png b/app/src/main/res/drawable-xhdpi/ic_hts_feature.png deleted file mode 100644 index c86d7091..00000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_hts_feature.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_hts_feature_black.png b/app/src/main/res/drawable-xhdpi/ic_hts_feature_black.png deleted file mode 100644 index e4351f69..00000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_hts_feature_black.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_proximity_feature.png b/app/src/main/res/drawable-xhdpi/ic_proximity_feature.png deleted file mode 100644 index d0e7de15..00000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_proximity_feature.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_rsc_feature.png b/app/src/main/res/drawable-xhdpi/ic_rsc_feature.png deleted file mode 100644 index 3f81e0bb..00000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_rsc_feature.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_template_feature.png b/app/src/main/res/drawable-xhdpi/ic_template_feature.png deleted file mode 100644 index ac88d4a3..00000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_template_feature.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_uart_feature.png b/app/src/main/res/drawable-xhdpi/ic_uart_feature.png deleted file mode 100644 index f1739442..00000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_uart_feature.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/proximity_lock_open.png b/app/src/main/res/drawable-xhdpi/proximity_lock_open.png deleted file mode 100644 index d4000316..00000000 Binary files a/app/src/main/res/drawable-xhdpi/proximity_lock_open.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_bpm_feature.png b/app/src/main/res/drawable-xxxhdpi/ic_bpm_feature.png new file mode 100644 index 00000000..44bf3a8e Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_bpm_feature.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_cgms_feature.png b/app/src/main/res/drawable-xxxhdpi/ic_cgms_feature.png new file mode 100644 index 00000000..5dbfcf8b Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_cgms_feature.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_csc_feature.png b/app/src/main/res/drawable-xxxhdpi/ic_csc_feature.png new file mode 100644 index 00000000..5132dc84 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_csc_feature.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_dfu_feature.png b/app/src/main/res/drawable-xxxhdpi/ic_dfu_feature.png new file mode 100644 index 00000000..eab5d758 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_dfu_feature.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_glucose_feature.png b/app/src/main/res/drawable-xxxhdpi/ic_glucose_feature.png new file mode 100644 index 00000000..d87d8c11 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_glucose_feature.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_hrs_feature.png b/app/src/main/res/drawable-xxxhdpi/ic_hrs_feature.png new file mode 100644 index 00000000..3f255d0b Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_hrs_feature.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_hts_feature.png b/app/src/main/res/drawable-xxxhdpi/ic_hts_feature.png new file mode 100644 index 00000000..b79f88ce Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_hts_feature.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_proximity_feature.png b/app/src/main/res/drawable-xxxhdpi/ic_proximity_feature.png new file mode 100644 index 00000000..0a30e2da Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_proximity_feature.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_proximity_tag.png b/app/src/main/res/drawable-xxxhdpi/ic_proximity_tag.png deleted file mode 100644 index 501500ef..00000000 Binary files a/app/src/main/res/drawable-xxxhdpi/ic_proximity_tag.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_rsc_feature.png b/app/src/main/res/drawable-xxxhdpi/ic_rsc_feature.png new file mode 100644 index 00000000..4bd5b595 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_rsc_feature.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_template_feature.png b/app/src/main/res/drawable-xxxhdpi/ic_template_feature.png new file mode 100644 index 00000000..d742a85c Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_template_feature.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_uart_feature.png b/app/src/main/res/drawable-xxxhdpi/ic_uart_feature.png new file mode 100644 index 00000000..d49e65c7 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_uart_feature.png differ diff --git a/app/src/main/res/drawable/button.xml b/app/src/main/res/drawable/button.xml deleted file mode 100644 index fe223802..00000000 --- a/app/src/main/res/drawable/button.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - diff --git a/app/src/main/res/drawable/button_n.xml b/app/src/main/res/drawable/button_n.xml deleted file mode 100644 index 0b903215..00000000 --- a/app/src/main/res/drawable/button_n.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - diff --git a/app/src/main/res/drawable/button_p.xml b/app/src/main/res/drawable/button_p.xml deleted file mode 100644 index d79ca8aa..00000000 --- a/app/src/main/res/drawable/button_p.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - diff --git a/app/src/main/res/values/strings_dfu.xml b/app/src/main/res/values/strings_dfu.xml index 3d573593..0d2841de 100644 --- a/app/src/main/res/values/strings_dfu.xml +++ b/app/src/main/res/values/strings_dfu.xml @@ -24,7 +24,7 @@ DFU nRF Toolbox DFU Proxy DFU Settings - DFU Library version 1.10.0 + DFU Library version 1.10.3 DEVICE FIRMWARE UPDATE -186dp diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 02d8814b..b58562ea 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -62,14 +62,6 @@ false - -