From 4edad610ee68508db6211688c9ab47b49b1450aa Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Tue, 6 Aug 2019 20:06:57 +0200 Subject: [PATCH] Moved SensorSettingsActivity into SettingsActivity. --- src/main/AndroidManifest.xml | 1 - .../settings/SensorSettingsActivity.java | 94 ------------------- .../opentracks/settings/SettingsActivity.java | 48 +++++++++- .../opentracks/util/PreferencesUtils.java | 1 - src/main/res/xml/settings.xml | 36 +++++-- src/main/res/xml/settings_sensors.xml | 33 ------- 6 files changed, 73 insertions(+), 140 deletions(-) delete mode 100644 src/main/java/de/dennisguse/opentracks/settings/SensorSettingsActivity.java delete mode 100644 src/main/res/xml/settings_sensors.xml diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index e78630b58..b7776547d 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -130,7 +130,6 @@ limitations under the License. - devicesNameList = new ArrayList<>(); - List devicesAddressList = new ArrayList<>(); - BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); - if (bluetoothAdapter != null) { - BluetoothDeviceUtils.populateDeviceLists(bluetoothAdapter, devicesNameList, devicesAddressList); - } - - // Was the previously configured device unpaired? Then forget it. - if (!devicesAddressList.contains(value)) { - value = PreferencesUtils.BLUETOOTH_SENSOR_DEFAULT; - PreferencesUtils.setString(this, R.string.bluetooth_sensor_key, value); - } - - devicesNameList.add(0, getString(R.string.value_none)); - devicesAddressList.add(0, PreferencesUtils.BLUETOOTH_SENSOR_DEFAULT); - - String[] values = devicesAddressList.toArray(new String[0]); - preference.setEntryValues(values); - - String[] options = devicesNameList.toArray(new String[0]); - preference.setEntries(options); - } -} diff --git a/src/main/java/de/dennisguse/opentracks/settings/SettingsActivity.java b/src/main/java/de/dennisguse/opentracks/settings/SettingsActivity.java index f4ad7de16..1e633f390 100644 --- a/src/main/java/de/dennisguse/opentracks/settings/SettingsActivity.java +++ b/src/main/java/de/dennisguse/opentracks/settings/SettingsActivity.java @@ -16,14 +16,21 @@ package de.dennisguse.opentracks.settings; +import android.bluetooth.BluetoothAdapter; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; +import android.preference.ListPreference; import android.preference.Preference; import android.preference.Preference.OnPreferenceClickListener; import android.preference.PreferenceActivity; +import android.provider.Settings; + +import java.util.ArrayList; +import java.util.List; import de.dennisguse.opentracks.R; +import de.dennisguse.opentracks.util.BluetoothDeviceUtils; import de.dennisguse.opentracks.util.IntentUtils; import de.dennisguse.opentracks.util.PreferencesUtils; @@ -65,7 +72,15 @@ public class SettingsActivity extends PreferenceActivity { configPreference(R.string.settings_stats_key, StatsSettingsActivity.class); configPreference(R.string.settings_recording_key, RecordingSettingsActivity.class); - configPreference(R.string.settings_sensor_key, SensorSettingsActivity.class); + + findPreference(getString(R.string.settings_sensor_bluetooth_pairing_key)) + .setOnPreferenceClickListener(new OnPreferenceClickListener() { + public boolean onPreferenceClick(Preference preference) { + Intent settingsIntent = new Intent(Settings.ACTION_BLUETOOTH_SETTINGS); + startActivity(settingsIntent); + return true; + } + }); } @Override @@ -74,6 +89,8 @@ public class SettingsActivity extends PreferenceActivity { PreferencesUtils.getSharedPreferences(this).registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener); recordingTrackId = PreferencesUtils.getLong(this, R.string.recording_track_id_key); updateUI(); + + configBluetoothSensor(); } @Override @@ -100,6 +117,35 @@ public class SettingsActivity extends PreferenceActivity { }); } + /** + * Configures the bluetooth sensor. + */ + private void configBluetoothSensor() { + ListPreference preference = (ListPreference) findPreference(getString(R.string.bluetooth_sensor_key)); + String value = PreferencesUtils.getString(this, R.string.bluetooth_sensor_key, PreferencesUtils.BLUETOOTH_SENSOR_DEFAULT); + List devicesNameList = new ArrayList<>(); + List devicesAddressList = new ArrayList<>(); + BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); + if (bluetoothAdapter != null) { + BluetoothDeviceUtils.populateDeviceLists(bluetoothAdapter, devicesNameList, devicesAddressList); + } + + // Was the previously configured device unpaired? Then forget it. + if (!devicesAddressList.contains(value)) { + value = PreferencesUtils.BLUETOOTH_SENSOR_DEFAULT; + PreferencesUtils.setString(this, R.string.bluetooth_sensor_key, value); + } + + devicesNameList.add(0, getString(R.string.value_none)); + devicesAddressList.add(0, PreferencesUtils.BLUETOOTH_SENSOR_DEFAULT); + + String[] values = devicesAddressList.toArray(new String[0]); + preference.setEntryValues(values); + + String[] options = devicesNameList.toArray(new String[0]); + preference.setEntries(options); + } + private void updateUI() { //TODO Remove the following if recordingTrackId is replaced by direct communication rather than via preferences. boolean isRecording = recordingTrackId != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT; diff --git a/src/main/java/de/dennisguse/opentracks/util/PreferencesUtils.java b/src/main/java/de/dennisguse/opentracks/util/PreferencesUtils.java index be6ea9281..d165db764 100644 --- a/src/main/java/de/dennisguse/opentracks/util/PreferencesUtils.java +++ b/src/main/java/de/dennisguse/opentracks/util/PreferencesUtils.java @@ -251,7 +251,6 @@ public class PreferencesUtils { public static void resetPreferences(Context context, boolean readAgain) { PreferenceManager.setDefaultValues(context, R.xml.settings, readAgain); PreferenceManager.setDefaultValues(context, R.xml.settings_recording, readAgain); - PreferenceManager.setDefaultValues(context, R.xml.settings_sensors, readAgain); PreferenceManager.setDefaultValues(context, R.xml.settings_statistics, readAgain); } } diff --git a/src/main/res/xml/settings.xml b/src/main/res/xml/settings.xml index a8cda46de..d14b29c6a 100644 --- a/src/main/res/xml/settings.xml +++ b/src/main/res/xml/settings.xml @@ -18,10 +18,10 @@ limitations under the License. + - + + + + + + + + - + + android:targetClass="de.dennisguse.opentracks.AboutActivity" + android:targetPackage="@string/applicationId" /> \ No newline at end of file diff --git a/src/main/res/xml/settings_sensors.xml b/src/main/res/xml/settings_sensors.xml deleted file mode 100644 index b6a39e8fa..000000000 --- a/src/main/res/xml/settings_sensors.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - \ No newline at end of file