From 1bd75754e4948949154481b791134a0a5baf30f1 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Wed, 27 Dec 2023 11:32:56 +0100 Subject: [PATCH] Bluetooth sensor settings: show sensor name in addition (if cached via Android OS). Fixes #508. --- .../bluetooth/BluetoothLeSensorPreference.java | 13 +++++++++++++ src/main/res/values/strings.xml | 1 + 2 files changed, 14 insertions(+) diff --git a/src/main/java/de/dennisguse/opentracks/settings/bluetooth/BluetoothLeSensorPreference.java b/src/main/java/de/dennisguse/opentracks/settings/bluetooth/BluetoothLeSensorPreference.java index fc0ed34ef..e84f55849 100644 --- a/src/main/java/de/dennisguse/opentracks/settings/bluetooth/BluetoothLeSensorPreference.java +++ b/src/main/java/de/dennisguse/opentracks/settings/bluetooth/BluetoothLeSensorPreference.java @@ -1,6 +1,8 @@ package de.dennisguse.opentracks.settings.bluetooth; +import android.annotation.SuppressLint; import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothDevice; import android.bluetooth.le.BluetoothLeScanner; import android.bluetooth.le.ScanCallback; import android.bluetooth.le.ScanFilter; @@ -35,6 +37,7 @@ import de.dennisguse.opentracks.util.PermissionRequester; * Preference to select a discoverable Bluetooth LE device. * Based upon ListPreference. */ +@SuppressLint("MissingPermission") public abstract class BluetoothLeSensorPreference extends DialogPreference { private static final String TAG = BluetoothLeSensorPreference.class.getSimpleName(); @@ -89,6 +92,16 @@ public abstract class BluetoothLeSensorPreference extends DialogPreference { return getContext().getString(DEVICE_NONE_RESOURCEID); } + BluetoothAdapter bluetoothAdapter = BluetoothUtils.getAdapter(getContext()); + if (bluetoothAdapter == null) { + Log.w(TAG, "No Bluetooth adapter present"); + return getValue(); + } + + BluetoothDevice device = bluetoothAdapter.getRemoteDevice(getValue()); + if (device != null && device.getName() != null) { + return getContext().getString(R.string.bluetooth_sensor_summary, device.getAddress(), device.getName()); + } return getValue(); } diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 87f05af4f..02bdf8955 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -336,6 +336,7 @@ limitations under the License. W Could not scan for Bluetooth devices (error %1$i). Please enable Bluetooth. + %1$s (%2$s) All About OpenTracks Project