From 301a721329cfe16b5756673eb1cd633a0696b828 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Tue, 3 Dec 2019 19:53:14 +0100 Subject: [PATCH] Settings: localize no heart rate sensor selected. --- .../sensors/BluetoothRemoteSensorManager.java | 9 ++++----- .../opentracks/settings/BluetoothLePreference.java | 9 ++++++++- .../opentracks/util/PreferencesUtils.java | 14 ++++++++++---- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothRemoteSensorManager.java b/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothRemoteSensorManager.java index d7e7b1d21..1a1779335 100644 --- a/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothRemoteSensorManager.java +++ b/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothRemoteSensorManager.java @@ -86,11 +86,11 @@ public class BluetoothRemoteSensorManager { @Override public void onSharedPreferenceChanged(SharedPreferences preferences, String key) { if (bluetoothConnectionManager != null && PreferencesUtils.isKey(context, R.string.settings_sensor_bluetooth_heart_rate_key, key)) { - String address = PreferencesUtils.getBluetoothHeartRateSensorAddress(context); - if (address.equals(PreferencesUtils.BLUETOOTH_SENSOR_DEFAULT)) { + if (PreferencesUtils.isBluetoothHeartRateSensorAddressDefault(context)) { stop(); return; } + String address = PreferencesUtils.getBluetoothHeartRateSensorAddress(context); if (bluetoothConnectionManager.isSameBluetoothDevice(address)) { return; } @@ -145,12 +145,11 @@ public class BluetoothRemoteSensorManager { return; } -// String address = PreferencesUtils.getString(context, R.string.settings_sensor_bluetooth_heart_rate_key, PreferencesUtils.BLUETOOTH_SENSOR_DEFAULT); - String address = PreferencesUtils.getBluetoothHeartRateSensorAddress(context); - if (PreferencesUtils.BLUETOOTH_SENSOR_DEFAULT.equals(address)) { + if (PreferencesUtils.isBluetoothHeartRateSensorAddressDefault(context)) { Log.w(TAG, "No bluetooth address."); return; } + String address = PreferencesUtils.getBluetoothHeartRateSensorAddress(context); Log.i(TAG, "Connecting to bluetooth address: " + address); BluetoothDevice device; diff --git a/src/main/java/de/dennisguse/opentracks/settings/BluetoothLePreference.java b/src/main/java/de/dennisguse/opentracks/settings/BluetoothLePreference.java index 6a8846f23..460078cb5 100644 --- a/src/main/java/de/dennisguse/opentracks/settings/BluetoothLePreference.java +++ b/src/main/java/de/dennisguse/opentracks/settings/BluetoothLePreference.java @@ -24,6 +24,7 @@ import java.util.List; import de.dennisguse.opentracks.R; import de.dennisguse.opentracks.util.BluetoothUtils; +import de.dennisguse.opentracks.util.PreferencesUtils; /** * Preference to select a discoverable Bluetooth LE device. @@ -33,6 +34,8 @@ public class BluetoothLePreference extends DialogPreference { private final static String TAG = BluetoothLePreference.class.getSimpleName(); + private final static int DEVICE_NONE_RESOURCEID = R.string.value_none; + public BluetoothLePreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); } @@ -75,6 +78,10 @@ public class BluetoothLePreference extends DialogPreference { @Override public CharSequence getSummary() { + if (getValue() == null || PreferencesUtils.isBluetoothHeartRateSensorAddressDefault(getContext(), getValue())) { + return getContext().getString(DEVICE_NONE_RESOURCEID); + } + return getValue(); } @@ -142,7 +149,7 @@ public class BluetoothLePreference extends DialogPreference { } String deviceNone = getContext().getString(R.string.sensor_type_value_none); - listAdapter.add(getContext().getString(R.string.value_none), deviceNone); + listAdapter.add(getContext().getString(DEVICE_NONE_RESOURCEID), deviceNone); selectedEntryIndex = 0; BluetoothLePreference preference = (BluetoothLePreference) getPreference(); diff --git a/src/main/java/de/dennisguse/opentracks/util/PreferencesUtils.java b/src/main/java/de/dennisguse/opentracks/util/PreferencesUtils.java index df05dc5d2..6210ac9c3 100644 --- a/src/main/java/de/dennisguse/opentracks/util/PreferencesUtils.java +++ b/src/main/java/de/dennisguse/opentracks/util/PreferencesUtils.java @@ -32,8 +32,6 @@ import de.dennisguse.opentracks.R; */ public class PreferencesUtils { - public static final String BLUETOOTH_SENSOR_DEFAULT = ""; - private PreferencesUtils() { } @@ -251,12 +249,20 @@ public class PreferencesUtils { PreferencesUtils.setBoolean(context, R.string.recording_track_paused_key, RECORDING_TRACK_PAUSED); } + public static String getBluetoothHeartRateSensorAddressNone(Context context) { + return context.getString(R.string.sensor_type_value_none); + } + public static boolean isBluetoothHeartRateSensorAddressDefault(Context context) { - return PreferencesUtils.BLUETOOTH_SENSOR_DEFAULT.equals(getBluetoothHeartRateSensorAddress(context)); + return getBluetoothHeartRateSensorAddressNone(context).equals(getBluetoothHeartRateSensorAddress(context)); + } + + public static boolean isBluetoothHeartRateSensorAddressDefault(Context context, String currentValue) { + return getBluetoothHeartRateSensorAddressNone(context).equals(currentValue); } public static String getBluetoothHeartRateSensorAddress(Context context) { - return PreferencesUtils.getString(context, R.string.settings_sensor_bluetooth_heart_rate_key, PreferencesUtils.BLUETOOTH_SENSOR_DEFAULT); + return PreferencesUtils.getString(context, R.string.settings_sensor_bluetooth_heart_rate_key, getBluetoothHeartRateSensorAddressNone(context)); } public static boolean shouldChartShowCadence(Context context) {