forked from upstream-mirrors/OpenTracks
Settings: moved setup into helper.
This commit is contained in:
@@ -0,0 +1,212 @@
|
|||||||
|
package de.dennisguse.opentracks.settings;
|
||||||
|
|
||||||
|
import android.bluetooth.BluetoothAdapter;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.preference.ListPreference;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import de.dennisguse.opentracks.R;
|
||||||
|
import de.dennisguse.opentracks.util.BluetoothDeviceUtils;
|
||||||
|
import de.dennisguse.opentracks.util.PreferencesUtils;
|
||||||
|
import de.dennisguse.opentracks.util.UnitConversions;
|
||||||
|
|
||||||
|
final class PreferenceHelper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the min recording interval options.
|
||||||
|
*
|
||||||
|
* @param options the options
|
||||||
|
* @param values the values
|
||||||
|
*/
|
||||||
|
static void setMinRecordingIntervalOptions(Context context, String[] options, String[] values) {
|
||||||
|
for (int i = 0; i < values.length; i++) {
|
||||||
|
int value = Integer.parseInt(values[i]);
|
||||||
|
switch (value) {
|
||||||
|
case PreferencesUtils.MIN_RECORDING_INTERVAL_ADAPT_BATTERY_LIFE:
|
||||||
|
options[i] = context.getString(R.string.value_adapt_battery_life);
|
||||||
|
break;
|
||||||
|
case PreferencesUtils.MIN_RECORDING_INTERVAL_ADAPT_ACCURACY:
|
||||||
|
options[i] = context.getString(R.string.value_adapt_accuracy);
|
||||||
|
break;
|
||||||
|
case PreferencesUtils.MIN_RECORDING_INTERVAL_DEFAULT:
|
||||||
|
options[i] = context.getString(R.string.value_smallest_recommended);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
options[i] = value < 60 ? context.getString(R.string.value_integer_second, value) : context.getString(R.string.value_integer_minute, value / 60);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the recording distance interval options.
|
||||||
|
*
|
||||||
|
* @param options the options
|
||||||
|
* @param values the values
|
||||||
|
* @param metricUnits true for metric units
|
||||||
|
*/
|
||||||
|
static void setRecordingDistanceIntervalOptions(Context context, String[] options, String[] values, boolean metricUnits) {
|
||||||
|
for (int i = 0; i < values.length; i++) {
|
||||||
|
int value = Integer.parseInt(values[i]);
|
||||||
|
String displayValue;
|
||||||
|
if (metricUnits) {
|
||||||
|
displayValue = context.getString(R.string.value_integer_meter, value);
|
||||||
|
if (value == PreferencesUtils.RECORDING_DISTANCE_INTERVAL_DEFAULT) {
|
||||||
|
options[i] = context.getString(R.string.value_integer_meter_recommended, value);
|
||||||
|
} else {
|
||||||
|
options[i] = displayValue;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
int feet = (int) (value * UnitConversions.M_TO_FT);
|
||||||
|
displayValue = context.getString(R.string.value_integer_feet, feet);
|
||||||
|
if (value == PreferencesUtils.RECORDING_DISTANCE_INTERVAL_DEFAULT) {
|
||||||
|
options[i] = context.getString(R.string.value_integer_feet_recommended, feet);
|
||||||
|
} else {
|
||||||
|
options[i] = displayValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the max recording distance options.
|
||||||
|
*
|
||||||
|
* @param options the options
|
||||||
|
* @param values the values
|
||||||
|
* @param metricUnits true for metric units
|
||||||
|
*/
|
||||||
|
static void setMaxRecordingDistanceOptions(Context context, String[] options, String[] values, boolean metricUnits) {
|
||||||
|
for (int i = 0; i < values.length; i++) {
|
||||||
|
int value = Integer.parseInt(values[i]);
|
||||||
|
String displayValue;
|
||||||
|
if (metricUnits) {
|
||||||
|
displayValue = context.getString(R.string.value_integer_meter, value);
|
||||||
|
if (value == PreferencesUtils.MAX_RECORDING_DISTANCE_DEFAULT) {
|
||||||
|
options[i] = context.getString(R.string.value_integer_meter_recommended, value);
|
||||||
|
} else {
|
||||||
|
options[i] = displayValue;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
int feet = (int) (value * UnitConversions.M_TO_FT);
|
||||||
|
if (feet < 2000) {
|
||||||
|
displayValue = context.getString(R.string.value_integer_feet, feet);
|
||||||
|
if (value == PreferencesUtils.MAX_RECORDING_DISTANCE_DEFAULT) {
|
||||||
|
options[i] = context.getString(R.string.value_integer_feet_recommended, feet);
|
||||||
|
} else {
|
||||||
|
options[i] = displayValue;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
double mile = feet * UnitConversions.FT_TO_MI;
|
||||||
|
displayValue = context.getString(R.string.value_float_mile, mile);
|
||||||
|
options[i] = displayValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the recording gps accuracy options.
|
||||||
|
*
|
||||||
|
* @param options the options
|
||||||
|
* @param values the values
|
||||||
|
* @param metricUnits true for metric units
|
||||||
|
*/
|
||||||
|
static void setRecordingGpsAccuracyOptions(Context context, String[] options, String[] values, boolean metricUnits) {
|
||||||
|
for (int i = 0; i < values.length; i++) {
|
||||||
|
int value = Integer.parseInt(values[i]);
|
||||||
|
String displayValue;
|
||||||
|
if (metricUnits) {
|
||||||
|
displayValue = context.getString(R.string.value_integer_meter, value);
|
||||||
|
switch (value) {
|
||||||
|
case PreferencesUtils.RECORDING_GPS_ACCURACY_DEFAULT:
|
||||||
|
options[i] = context.getString(R.string.value_integer_meter_recommended, value);
|
||||||
|
break;
|
||||||
|
case PreferencesUtils.RECORDING_GPS_ACCURACY_EXCELLENT:
|
||||||
|
options[i] = context.getString(R.string.value_integer_meter_excellent_gps, value);
|
||||||
|
break;
|
||||||
|
case PreferencesUtils.RECORDING_GPS_ACCURACY_POOR:
|
||||||
|
options[i] = context.getString(R.string.value_integer_meter_poor_gps, value);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
options[i] = displayValue;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
int feet = (int) (value * UnitConversions.M_TO_FT);
|
||||||
|
if (feet < 2000) {
|
||||||
|
displayValue = context.getString(R.string.value_integer_feet, feet);
|
||||||
|
switch (value) {
|
||||||
|
case PreferencesUtils.RECORDING_GPS_ACCURACY_DEFAULT:
|
||||||
|
options[i] = context.getString(R.string.value_integer_feet_recommended, feet);
|
||||||
|
break;
|
||||||
|
case PreferencesUtils.RECORDING_GPS_ACCURACY_EXCELLENT:
|
||||||
|
options[i] = context.getString(R.string.value_integer_feet_excellent_gps, feet);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
options[i] = displayValue;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
double mile = feet * UnitConversions.FT_TO_MI;
|
||||||
|
displayValue = context.getString(R.string.value_float_mile, mile);
|
||||||
|
if (value == PreferencesUtils.RECORDING_GPS_ACCURACY_POOR) {
|
||||||
|
options[i] = context.getString(R.string.value_float_mile_poor_gps, mile);
|
||||||
|
} else {
|
||||||
|
options[i] = displayValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the auto resume track timeout options.
|
||||||
|
*
|
||||||
|
* @param options the options
|
||||||
|
* @param values the values
|
||||||
|
*/
|
||||||
|
static void setAutoResumeTrackTimeoutOptions(Context context, String[] options, String[] values) {
|
||||||
|
for (int i = 0; i < values.length; i++) {
|
||||||
|
int value = Integer.parseInt(values[i]);
|
||||||
|
switch (value) {
|
||||||
|
case PreferencesUtils.AUTO_RESUME_TRACK_TIMEOUT_NEVER:
|
||||||
|
options[i] = context.getString(R.string.value_never);
|
||||||
|
break;
|
||||||
|
case PreferencesUtils.AUTO_RESUME_TRACK_TIMEOUT_ALWAYS:
|
||||||
|
options[i] = context.getString(R.string.value_always);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
options[i] = context.getString(R.string.value_integer_minute, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configures the bluetooth sensor.
|
||||||
|
*/
|
||||||
|
static void configBluetoothSensor(ListPreference preference) {
|
||||||
|
Context context = preference.getContext();
|
||||||
|
|
||||||
|
String value = PreferencesUtils.getString(context, R.string.bluetooth_sensor_key, PreferencesUtils.BLUETOOTH_SENSOR_DEFAULT);
|
||||||
|
List<String> devicesNameList = new ArrayList<>();
|
||||||
|
List<String> 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(context, R.string.bluetooth_sensor_key, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
devicesNameList.add(0, context.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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -26,7 +26,6 @@ import de.dennisguse.opentracks.R;
|
|||||||
import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment.ChooseActivityTypeCaller;
|
import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment.ChooseActivityTypeCaller;
|
||||||
import de.dennisguse.opentracks.util.PreferencesUtils;
|
import de.dennisguse.opentracks.util.PreferencesUtils;
|
||||||
import de.dennisguse.opentracks.util.StringUtils;
|
import de.dennisguse.opentracks.util.StringUtils;
|
||||||
import de.dennisguse.opentracks.util.UnitConversions;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An activity for accessing recording settings.
|
* An activity for accessing recording settings.
|
||||||
@@ -87,19 +86,19 @@ public class RecordingSettingsActivity extends PreferenceActivity implements Cho
|
|||||||
String[] options = new String[values.length];
|
String[] options = new String[values.length];
|
||||||
switch (key) {
|
switch (key) {
|
||||||
case R.string.min_recording_interval_key:
|
case R.string.min_recording_interval_key:
|
||||||
setMinRecordingIntervalOptions(options, values);
|
PreferenceHelper.setMinRecordingIntervalOptions(this, options, values);
|
||||||
break;
|
break;
|
||||||
case R.string.recording_distance_interval_key:
|
case R.string.recording_distance_interval_key:
|
||||||
setRecordingDistanceIntervalOptions(options, values, metricUnits);
|
PreferenceHelper.setRecordingDistanceIntervalOptions(this, options, values, metricUnits);
|
||||||
break;
|
break;
|
||||||
case R.string.max_recording_distance_key:
|
case R.string.max_recording_distance_key:
|
||||||
setMaxRecordingDistanceOptions(options, values, metricUnits);
|
PreferenceHelper.setMaxRecordingDistanceOptions(this, options, values, metricUnits);
|
||||||
break;
|
break;
|
||||||
case R.string.recording_gps_accuracy_key:
|
case R.string.recording_gps_accuracy_key:
|
||||||
setRecordingGpsAccuracyOptions(options, values, metricUnits);
|
PreferenceHelper.setRecordingGpsAccuracyOptions(this, options, values, metricUnits);
|
||||||
break;
|
break;
|
||||||
case R.string.auto_resume_track_timeout_key:
|
case R.string.auto_resume_track_timeout_key:
|
||||||
setAutoResumeTrackTimeoutOptions(options, values);
|
PreferenceHelper.setAutoResumeTrackTimeoutOptions(this, options, values);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
@@ -108,172 +107,6 @@ public class RecordingSettingsActivity extends PreferenceActivity implements Cho
|
|||||||
preference.setEntries(options);
|
preference.setEntries(options);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the min recording interval options.
|
|
||||||
*
|
|
||||||
* @param options the options
|
|
||||||
* @param values the values
|
|
||||||
*/
|
|
||||||
private void setMinRecordingIntervalOptions(String[] options, String[] values) {
|
|
||||||
for (int i = 0; i < values.length; i++) {
|
|
||||||
int value = Integer.parseInt(values[i]);
|
|
||||||
switch (value) {
|
|
||||||
case PreferencesUtils.MIN_RECORDING_INTERVAL_ADAPT_BATTERY_LIFE:
|
|
||||||
options[i] = getString(R.string.value_adapt_battery_life);
|
|
||||||
break;
|
|
||||||
case PreferencesUtils.MIN_RECORDING_INTERVAL_ADAPT_ACCURACY:
|
|
||||||
options[i] = getString(R.string.value_adapt_accuracy);
|
|
||||||
break;
|
|
||||||
case PreferencesUtils.MIN_RECORDING_INTERVAL_DEFAULT:
|
|
||||||
options[i] = getString(R.string.value_smallest_recommended);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
options[i] = value < 60 ? getString(R.string.value_integer_second, value)
|
|
||||||
: getString(R.string.value_integer_minute, value / 60);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the recording distance interval options.
|
|
||||||
*
|
|
||||||
* @param options the options
|
|
||||||
* @param values the values
|
|
||||||
* @param metricUnits true for metric units
|
|
||||||
*/
|
|
||||||
private void setRecordingDistanceIntervalOptions(String[] options, String[] values, boolean metricUnits) {
|
|
||||||
for (int i = 0; i < values.length; i++) {
|
|
||||||
int value = Integer.parseInt(values[i]);
|
|
||||||
String displayValue;
|
|
||||||
if (metricUnits) {
|
|
||||||
displayValue = getString(R.string.value_integer_meter, value);
|
|
||||||
if (value == PreferencesUtils.RECORDING_DISTANCE_INTERVAL_DEFAULT) {
|
|
||||||
options[i] = getString(R.string.value_integer_meter_recommended, value);
|
|
||||||
} else {
|
|
||||||
options[i] = displayValue;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
int feet = (int) (value * UnitConversions.M_TO_FT);
|
|
||||||
displayValue = getString(R.string.value_integer_feet, feet);
|
|
||||||
if (value == PreferencesUtils.RECORDING_DISTANCE_INTERVAL_DEFAULT) {
|
|
||||||
options[i] = getString(R.string.value_integer_feet_recommended, feet);
|
|
||||||
} else {
|
|
||||||
options[i] = displayValue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the max recording distance options.
|
|
||||||
*
|
|
||||||
* @param options the options
|
|
||||||
* @param values the values
|
|
||||||
* @param metricUnits true for metric units
|
|
||||||
*/
|
|
||||||
private void setMaxRecordingDistanceOptions(String[] options, String[] values, boolean metricUnits) {
|
|
||||||
for (int i = 0; i < values.length; i++) {
|
|
||||||
int value = Integer.parseInt(values[i]);
|
|
||||||
String displayValue;
|
|
||||||
if (metricUnits) {
|
|
||||||
displayValue = getString(R.string.value_integer_meter, value);
|
|
||||||
if (value == PreferencesUtils.MAX_RECORDING_DISTANCE_DEFAULT) {
|
|
||||||
options[i] = getString(R.string.value_integer_meter_recommended, value);
|
|
||||||
} else {
|
|
||||||
options[i] = displayValue;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
int feet = (int) (value * UnitConversions.M_TO_FT);
|
|
||||||
if (feet < 2000) {
|
|
||||||
displayValue = getString(R.string.value_integer_feet, feet);
|
|
||||||
if (value == PreferencesUtils.MAX_RECORDING_DISTANCE_DEFAULT) {
|
|
||||||
options[i] = getString(R.string.value_integer_feet_recommended, feet);
|
|
||||||
} else {
|
|
||||||
options[i] = displayValue;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
double mile = feet * UnitConversions.FT_TO_MI;
|
|
||||||
displayValue = getString(R.string.value_float_mile, mile);
|
|
||||||
options[i] = displayValue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the recording gps accuracy options.
|
|
||||||
*
|
|
||||||
* @param options the options
|
|
||||||
* @param values the values
|
|
||||||
* @param metricUnits true for metric units
|
|
||||||
*/
|
|
||||||
private void setRecordingGpsAccuracyOptions(String[] options, String[] values, boolean metricUnits) {
|
|
||||||
for (int i = 0; i < values.length; i++) {
|
|
||||||
int value = Integer.parseInt(values[i]);
|
|
||||||
String displayValue;
|
|
||||||
if (metricUnits) {
|
|
||||||
displayValue = getString(R.string.value_integer_meter, value);
|
|
||||||
switch (value) {
|
|
||||||
case PreferencesUtils.RECORDING_GPS_ACCURACY_DEFAULT:
|
|
||||||
options[i] = getString(R.string.value_integer_meter_recommended, value);
|
|
||||||
break;
|
|
||||||
case PreferencesUtils.RECORDING_GPS_ACCURACY_EXCELLENT:
|
|
||||||
options[i] = getString(R.string.value_integer_meter_excellent_gps, value);
|
|
||||||
break;
|
|
||||||
case PreferencesUtils.RECORDING_GPS_ACCURACY_POOR:
|
|
||||||
options[i] = getString(R.string.value_integer_meter_poor_gps, value);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
options[i] = displayValue;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
int feet = (int) (value * UnitConversions.M_TO_FT);
|
|
||||||
if (feet < 2000) {
|
|
||||||
displayValue = getString(R.string.value_integer_feet, feet);
|
|
||||||
switch (value) {
|
|
||||||
case PreferencesUtils.RECORDING_GPS_ACCURACY_DEFAULT:
|
|
||||||
options[i] = getString(R.string.value_integer_feet_recommended, feet);
|
|
||||||
break;
|
|
||||||
case PreferencesUtils.RECORDING_GPS_ACCURACY_EXCELLENT:
|
|
||||||
options[i] = getString(R.string.value_integer_feet_excellent_gps, feet);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
options[i] = displayValue;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
double mile = feet * UnitConversions.FT_TO_MI;
|
|
||||||
displayValue = getString(R.string.value_float_mile, mile);
|
|
||||||
if (value == PreferencesUtils.RECORDING_GPS_ACCURACY_POOR) {
|
|
||||||
options[i] = getString(R.string.value_float_mile_poor_gps, mile);
|
|
||||||
} else {
|
|
||||||
options[i] = displayValue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the auto resume track timeout options.
|
|
||||||
*
|
|
||||||
* @param options the options
|
|
||||||
* @param values the values
|
|
||||||
*/
|
|
||||||
private void setAutoResumeTrackTimeoutOptions(String[] options, String[] values) {
|
|
||||||
for (int i = 0; i < values.length; i++) {
|
|
||||||
int value = Integer.parseInt(values[i]);
|
|
||||||
switch (value) {
|
|
||||||
case PreferencesUtils.AUTO_RESUME_TRACK_TIMEOUT_NEVER:
|
|
||||||
options[i] = getString(R.string.value_never);
|
|
||||||
break;
|
|
||||||
case PreferencesUtils.AUTO_RESUME_TRACK_TIMEOUT_ALWAYS:
|
|
||||||
options[i] = getString(R.string.value_always);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
options[i] = getString(R.string.value_integer_minute, value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void showChooseActivityTypeDialog() {
|
public void showChooseActivityTypeDialog() {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
package de.dennisguse.opentracks.settings;
|
package de.dennisguse.opentracks.settings;
|
||||||
|
|
||||||
import android.bluetooth.BluetoothAdapter;
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@@ -26,11 +25,7 @@ import android.preference.Preference.OnPreferenceClickListener;
|
|||||||
import android.preference.PreferenceActivity;
|
import android.preference.PreferenceActivity;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import de.dennisguse.opentracks.R;
|
import de.dennisguse.opentracks.R;
|
||||||
import de.dennisguse.opentracks.util.BluetoothDeviceUtils;
|
|
||||||
import de.dennisguse.opentracks.util.IntentUtils;
|
import de.dennisguse.opentracks.util.IntentUtils;
|
||||||
import de.dennisguse.opentracks.util.PreferencesUtils;
|
import de.dennisguse.opentracks.util.PreferencesUtils;
|
||||||
|
|
||||||
@@ -71,7 +66,7 @@ public class SettingsActivity extends PreferenceActivity {
|
|||||||
addPreferencesFromResource(R.xml.settings);
|
addPreferencesFromResource(R.xml.settings);
|
||||||
|
|
||||||
configPreference(R.string.settings_stats_key, StatsSettingsActivity.class);
|
configPreference(R.string.settings_stats_key, StatsSettingsActivity.class);
|
||||||
configPreference(R.string.settings_recording_key, RecordingSettingsActivity.class);
|
configPreference(R.string.settings_recording_key, NewSettingsActivity.class);
|
||||||
|
|
||||||
findPreference(getString(R.string.settings_sensor_bluetooth_pairing_key))
|
findPreference(getString(R.string.settings_sensor_bluetooth_pairing_key))
|
||||||
.setOnPreferenceClickListener(new OnPreferenceClickListener() {
|
.setOnPreferenceClickListener(new OnPreferenceClickListener() {
|
||||||
@@ -90,7 +85,8 @@ public class SettingsActivity extends PreferenceActivity {
|
|||||||
recordingTrackId = PreferencesUtils.getLong(this, R.string.recording_track_id_key);
|
recordingTrackId = PreferencesUtils.getLong(this, R.string.recording_track_id_key);
|
||||||
updateUI();
|
updateUI();
|
||||||
|
|
||||||
configBluetoothSensor();
|
ListPreference preference = (ListPreference) findPreference(getString(R.string.bluetooth_sensor_key));
|
||||||
|
PreferenceHelper.configBluetoothSensor(preference);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -117,35 +113,6 @@ 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<String> devicesNameList = new ArrayList<>();
|
|
||||||
List<String> 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() {
|
private void updateUI() {
|
||||||
//TODO Remove the following if recordingTrackId is replaced by direct communication rather than via preferences.
|
//TODO Remove the following if recordingTrackId is replaced by direct communication rather than via preferences.
|
||||||
boolean isRecording = recordingTrackId != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
|
boolean isRecording = recordingTrackId != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
|
||||||
|
|||||||
Reference in New Issue
Block a user