diff --git a/src/main/java/de/dennisguse/opentracks/settings/SettingsActivity.java b/src/main/java/de/dennisguse/opentracks/settings/SettingsActivity.java
index 8182d1a07..9a2d49788 100644
--- a/src/main/java/de/dennisguse/opentracks/settings/SettingsActivity.java
+++ b/src/main/java/de/dennisguse/opentracks/settings/SettingsActivity.java
@@ -18,10 +18,12 @@ import androidx.preference.ListPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
+import java.time.Duration;
import java.util.Locale;
import de.dennisguse.opentracks.AbstractActivity;
import de.dennisguse.opentracks.R;
+import de.dennisguse.opentracks.content.data.Distance;
import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment;
import de.dennisguse.opentracks.io.file.TrackFileFormat;
import de.dennisguse.opentracks.services.TrackRecordingService;
@@ -173,6 +175,38 @@ public class SettingsActivity extends AbstractActivity implements ChooseActivity
return directory != null ? directory.getName() : getString(R.string.not_set);
});
+ findPreference(getString(R.string.recording_distance_interval_key))
+ .setSummaryProvider(
+ preference -> {
+ boolean metricUnits = PreferencesUtils.isMetricUnits(sharedPreferences, getActivity());
+ Distance distance = PreferencesUtils.getRecordingDistanceInterval(sharedPreferences, getContext());
+ return getString(R.string.settings_recording_location_frequency_summary, StringUtils.formatDistance(getContext(), distance, metricUnits));
+ }
+ );
+ findPreference(getString(R.string.max_recording_distance_key))
+ .setSummaryProvider(
+ preference -> {
+ boolean metricUnits = PreferencesUtils.isMetricUnits(sharedPreferences, getActivity());
+ Distance distance = PreferencesUtils.getMaxRecordingDistance(sharedPreferences, getContext());
+ return getString(R.string.settings_recording_max_recording_distance_summary, StringUtils.formatDistance(getContext(), distance, metricUnits));
+ }
+ );
+ findPreference(getString(R.string.recording_gps_accuracy_key))
+ .setSummaryProvider(
+ preference -> {
+ boolean metricUnits = PreferencesUtils.isMetricUnits(sharedPreferences, getActivity());
+ Distance distance = PreferencesUtils.getThresholdHorizontalAccuracy(sharedPreferences, getContext());
+ return getString(R.string.settings_recording_min_required_accuracy_summary, StringUtils.formatDistance(getContext(), distance, metricUnits));
+ }
+ );
+ findPreference(getString(R.string.min_recording_interval_key))
+ .setSummaryProvider(
+ preference -> {
+ Duration interval = Duration.ofSeconds(PreferencesUtils.getMinRecordingInterval(sharedPreferences, getContext()));
+ return getString(R.string.settings_recording_location_frequency_summary, getString(R.string.value_integer_second, interval.getSeconds()));
+ }
+ );
+
announcementsFrequency = findPreference(getString(R.string.voice_frequency_key));
announcementsSpeed = findPreference(getString(R.string.voice_speed_rate_key));
updateVoiceAnnouncements();
diff --git a/src/main/res/xml/settings.xml b/src/main/res/xml/settings.xml
index 63a01149c..8bc6938f1 100644
--- a/src/main/res/xml/settings.xml
+++ b/src/main/res/xml/settings.xml
@@ -107,26 +107,22 @@ limitations under the License.
android:defaultValue="@string/min_recording_interval_default"
android:entryValues="@array/min_recording_interval_values"
android:key="@string/min_recording_interval_key"
- android:title="@string/settings_recording_min_recording_interval_title"
- app:useSimpleSummaryProvider="true" />
+ android:title="@string/settings_recording_min_recording_interval_title" />
+ android:title="@string/settings_recording_min_recording_distance_title" />
+ android:title="@string/settings_recording_max_recording_distance_title" />
+ android:title="@string/settings_recording_min_required_accuracy_title" />