forked from upstream-mirrors/OpenTracks
78d2a0722a
Fixes of #1187.
86 lines
3.8 KiB
Java
86 lines
3.8 KiB
Java
package de.dennisguse.opentracks.settings;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import androidx.preference.ListPreference;
|
|
import androidx.preference.PreferenceFragmentCompat;
|
|
|
|
import java.time.Duration;
|
|
|
|
import de.dennisguse.opentracks.R;
|
|
import de.dennisguse.opentracks.data.models.Distance;
|
|
import de.dennisguse.opentracks.data.models.DistanceFormatter;
|
|
|
|
public class GpsSettingsFragment extends PreferenceFragmentCompat {
|
|
|
|
@Override
|
|
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
|
addPreferencesFromResource(R.xml.settings_gps);
|
|
|
|
UnitSystem unitSystem = PreferencesUtils.getUnitSystem();
|
|
|
|
final DistanceFormatter formatter = DistanceFormatter.Builder()
|
|
.setDecimalCount(0)
|
|
.setUnit(unitSystem)
|
|
.build(getContext());
|
|
|
|
findPreference(getString(R.string.recording_distance_interval_key))
|
|
.setSummaryProvider(
|
|
preference -> {
|
|
Distance distance = PreferencesUtils.getRecordingDistanceInterval();
|
|
return getString(R.string.settings_recording_location_frequency_summary, formatter.formatDistance(distance));
|
|
}
|
|
);
|
|
|
|
findPreference(getString(R.string.max_recording_distance_key))
|
|
.setSummaryProvider(
|
|
preference -> {
|
|
Distance distance = PreferencesUtils.getMaxRecordingDistance();
|
|
return getString(R.string.settings_recording_max_recording_distance_summary, formatter.formatDistance(distance));
|
|
}
|
|
);
|
|
|
|
findPreference(getString(R.string.recording_gps_accuracy_key))
|
|
.setSummaryProvider(
|
|
preference -> {
|
|
Distance distance = PreferencesUtils.getThresholdHorizontalAccuracy();
|
|
return getString(R.string.settings_recording_min_required_accuracy_summary, formatter.formatDistance(distance));
|
|
}
|
|
);
|
|
|
|
findPreference(getString(R.string.min_recording_interval_key))
|
|
.setSummaryProvider(
|
|
preference -> {
|
|
Duration interval = PreferencesUtils.getMinRecordingInterval();
|
|
return getString(R.string.settings_recording_location_frequency_summary, getString(R.string.value_integer_second, interval.getSeconds()));
|
|
}
|
|
);
|
|
}
|
|
|
|
@Override
|
|
public void onStart() {
|
|
super.onStart();
|
|
((SettingsActivity) getActivity()).getSupportActionBar().setTitle(R.string.settings_gps_title);
|
|
}
|
|
|
|
@Override
|
|
public void onResume() {
|
|
super.onResume();
|
|
|
|
ListPreference minRecordingInterval = findPreference(getString(R.string.min_recording_interval_key));
|
|
minRecordingInterval.setEntries(PreferencesUtils.getMinRecordingIntervalEntries());
|
|
|
|
ListPreference recordingDistanceInterval = findPreference(getString(R.string.recording_distance_interval_key));
|
|
recordingDistanceInterval.setEntries(PreferencesUtils.getRecordingDistanceIntervalEntries());
|
|
|
|
ListPreference maxRecordingDistance = findPreference(getString(R.string.max_recording_distance_key));
|
|
maxRecordingDistance.setEntries(PreferencesUtils.getMaxRecordingDistanceEntries());
|
|
|
|
ListPreference recordingGpsAccuracy = findPreference(getString(R.string.recording_gps_accuracy_key));
|
|
recordingGpsAccuracy.setEntries(PreferencesUtils.getThresholdHorizontalAccuracyEntries());
|
|
|
|
ListPreference idleDuration = findPreference(getString(R.string.idle_duration_key));
|
|
idleDuration.setEntries(PreferencesUtils.getIdleDurationEntries());
|
|
}
|
|
}
|