diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestLooper.java b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestLooper.java
index 2ea29eeb6..30a208e7c 100644
--- a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestLooper.java
+++ b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestLooper.java
@@ -107,34 +107,6 @@ public class TrackRecordingServiceTestLooper {
fullRecordingSession();
}
- @MediumTest
- @Test
- public void testWithProperties_voiceFrequencyDefault() throws TimeoutException {
- SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
- editor.putInt(context.getString(R.string.voice_frequency_key), Integer.parseInt(context.getResources().getString(R.string.voice_frequency_default)));
- editor.commit();
- fullRecordingSession();
- }
-
- @MediumTest
- @Test
- public void testWithProperties_voiceFrequencyByDistance() throws TimeoutException {
- SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
- editor.putInt(context.getString(R.string.voice_frequency_key), -1);
- editor.commit();
- fullRecordingSession();
- }
-
- @MediumTest
- @Test
- public void testWithProperties_voiceFrequencyByTime() throws TimeoutException {
- SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
- editor.putInt(context.getString(R.string.voice_frequency_key), 1);
- editor.commit();
- fullRecordingSession();
- }
-
-
@MediumTest
@Test
public void testWithProperties_maxRecordingDistanceDefault() throws TimeoutException {
diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/tasks/VoiceAnnouncementManagerTest.java b/src/androidTest/java/de/dennisguse/opentracks/services/tasks/VoiceAnnouncementManagerTest.java
index 582c55986..06d1898f4 100644
--- a/src/androidTest/java/de/dennisguse/opentracks/services/tasks/VoiceAnnouncementManagerTest.java
+++ b/src/androidTest/java/de/dennisguse/opentracks/services/tasks/VoiceAnnouncementManagerTest.java
@@ -15,6 +15,7 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
+import java.time.Duration;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
@@ -54,16 +55,37 @@ public class VoiceAnnouncementManagerTest {
.getService();
VoiceAnnouncementManager voiceAnnouncementManager = new VoiceAnnouncementManager(service);
- voiceAnnouncementManager.setMetricUnits(true);
- voiceAnnouncementManager.setTaskFrequency(-5);
+ voiceAnnouncementManager.setFrequency(Distance.ofKilometer(5));
// when
TrackStatistics statistics = new TrackStatistics();
- statistics.setTotalDistance(Distance.of(13000));
- assertEquals(Distance.of(15000), voiceAnnouncementManager.calculateNextTaskDistance(statistics));
+ statistics.setTotalDistance(Distance.ofKilometer(13));
+ voiceAnnouncementManager.restore(statistics);
+ assertEquals(Distance.of(15000), voiceAnnouncementManager.getNextTotalDistance());
statistics.setTotalDistance(Distance.of(15100));
- assertEquals(Distance.of(20000), voiceAnnouncementManager.calculateNextTaskDistance(statistics));
+ voiceAnnouncementManager.restore(statistics);
+ assertEquals(Distance.of(20000), voiceAnnouncementManager.getNextTotalDistance());
+ }
+
+ @Test
+ public void calculateNextTotalTime() throws TimeoutException {
+ // given
+ TrackRecordingService service = ((TrackRecordingService.Binder) mServiceRule.bindService(new Intent(context, TrackRecordingService.class)))
+ .getService();
+
+ VoiceAnnouncementManager voiceAnnouncementManager = new VoiceAnnouncementManager(service);
+ voiceAnnouncementManager.setFrequency(Duration.ofSeconds(5));
+
+ // when
+ TrackStatistics statistics = new TrackStatistics();
+ statistics.setTotalTime(Duration.ofSeconds(91));
+ voiceAnnouncementManager.restore(statistics);
+ assertEquals(Duration.ofSeconds(95), voiceAnnouncementManager.getNextTotalTime());
+
+ statistics.setTotalTime(Duration.ofSeconds(95));
+ voiceAnnouncementManager.restore(statistics);
+ assertEquals(Duration.ofSeconds(100), voiceAnnouncementManager.getNextTotalTime());
}
}
\ No newline at end of file
diff --git a/src/main/java/de/dennisguse/opentracks/TrackListActivity.java b/src/main/java/de/dennisguse/opentracks/TrackListActivity.java
index b16a3b07e..71527b080 100644
--- a/src/main/java/de/dennisguse/opentracks/TrackListActivity.java
+++ b/src/main/java/de/dennisguse/opentracks/TrackListActivity.java
@@ -77,7 +77,7 @@ public class TrackListActivity extends AbstractTrackDeleteActivity implements Co
private static final String TAG = TrackListActivity.class.getSimpleName();
- // The following are set in onCreate
+ // The following are setFrequency in onCreate
private SharedPreferences sharedPreferences;
private TrackRecordingServiceConnection trackRecordingServiceConnection;
private ResourceCursorAdapter resourceCursorAdapter;
diff --git a/src/main/java/de/dennisguse/opentracks/TrackRecordedActivity.java b/src/main/java/de/dennisguse/opentracks/TrackRecordedActivity.java
index f832e46d4..9c15a7152 100644
--- a/src/main/java/de/dennisguse/opentracks/TrackRecordedActivity.java
+++ b/src/main/java/de/dennisguse/opentracks/TrackRecordedActivity.java
@@ -66,7 +66,7 @@ public class TrackRecordedActivity extends AbstractTrackDeleteActivity implement
private static final String CURRENT_TAB_TAG_KEY = "current_tab_tag_key";
- // The following are set in onCreate.
+ // The following are setFrequency in onCreate.
private ContentProviderUtils contentProviderUtils;
private SharedPreferences sharedPreferences;
private TrackDataHub trackDataHub;
diff --git a/src/main/java/de/dennisguse/opentracks/TrackRecordingActivity.java b/src/main/java/de/dennisguse/opentracks/TrackRecordingActivity.java
index 29faca1a8..b042c53b6 100644
--- a/src/main/java/de/dennisguse/opentracks/TrackRecordingActivity.java
+++ b/src/main/java/de/dennisguse/opentracks/TrackRecordingActivity.java
@@ -51,7 +51,7 @@ public class TrackRecordingActivity extends AbstractActivity implements ChooseAc
private static final String CURRENT_TAB_TAG_KEY = "current_tab_tag_key";
- // The following are set in onCreate
+ // The following are setFrequency in onCreate
private ContentProviderUtils contentProviderUtils;
private SharedPreferences sharedPreferences;
private TrackRecordingServiceConnection trackRecordingServiceConnection;
diff --git a/src/main/java/de/dennisguse/opentracks/fragments/ChartFragment.java b/src/main/java/de/dennisguse/opentracks/fragments/ChartFragment.java
index 775c0ee8c..38172c201 100644
--- a/src/main/java/de/dennisguse/opentracks/fragments/ChartFragment.java
+++ b/src/main/java/de/dennisguse/opentracks/fragments/ChartFragment.java
@@ -108,7 +108,7 @@ public class ChartFragment extends Fragment implements TrackDataListener {
};
/**
- * A runnable that will set the orange pointer as appropriate and redraw.
+ * A runnable that will setFrequency the orange pointer as appropriate and redraw.
*/
private final Runnable updateChart = new Runnable() {
@Override
diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java
index d3e84f47f..bc29f8e80 100644
--- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java
+++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java
@@ -73,7 +73,7 @@ public class TrackRecordingService extends Service implements TrackPointCreator.
public static final RecordingData NOT_RECORDING = new RecordingData(null, null, null);
public static final GpsStatusValue STATUS_GPS_DEFAULT = GpsStatusValue.GPS_NONE;
- // The following variables are set in onCreate:
+ // The following variables are setFrequency in onCreate:
private VoiceAnnouncementManager voiceAnnouncementManager;
private TrackRecordingServiceNotificationManager notificationManager;
@@ -104,20 +104,21 @@ public class TrackRecordingService extends Service implements TrackPointCreator.
Context context = TrackRecordingService.this;
if (PreferencesUtils.isKey(context, R.string.stats_units_key, key)) {
boolean metricUnits = PreferencesUtils.isMetricUnits(sharedPreferences, context);
- voiceAnnouncementManager.setMetricUnits(metricUnits);
notificationManager.setMetricUnits(metricUnits);
}
- if (PreferencesUtils.isKey(context, R.string.voice_frequency_key, key)) {
- voiceAnnouncementManager.setTaskFrequency(PreferencesUtils.getVoiceFrequency(sharedPreferences, context));
+ if (PreferencesUtils.isKey(context, R.string.voice_announcement_frequency_key, key)) {
+ voiceAnnouncementManager.setFrequency(PreferencesUtils.getVoiceAnnouncementFrequency(sharedPreferences, context));
+ }
+ if (PreferencesUtils.isKey(context, new int[]{R.string.voice_announcement_distance_key, R.string.stats_units_key}, key)) {
+ voiceAnnouncementManager.setFrequency(PreferencesUtils.getVoiceAnnouncementDistance(sharedPreferences, context));
}
-
trackPointCreator.onSharedPreferenceChanged(sharedPreferences, key);
trackRecordingManager.onSharedPreferenceChanged(sharedPreferences, key);
}
};
- // The following variables are set when recording:
+ // The following variables are setFrequency when recording:
private WakeLock wakeLock;
private final Binder binder = new Binder();
diff --git a/src/main/java/de/dennisguse/opentracks/services/tasks/VoiceAnnouncementManager.java b/src/main/java/de/dennisguse/opentracks/services/tasks/VoiceAnnouncementManager.java
index 64e90ed30..b9fa9f920 100644
--- a/src/main/java/de/dennisguse/opentracks/services/tasks/VoiceAnnouncementManager.java
+++ b/src/main/java/de/dennisguse/opentracks/services/tasks/VoiceAnnouncementManager.java
@@ -40,48 +40,35 @@ public class VoiceAnnouncementManager {
private final TrackRecordingService trackRecordingService;
- private final int TASK_FREQUENCY_OFF;
- /**
- * The task frequency.
- * A positive value is a time frequency (minutes).
- * A negative value is a distance frequency (km or mi).
- * A zero value is to turn off periodic task.
- */
- private int taskFrequency;
-
private VoiceAnnouncement voiceAnnouncement;
- private boolean metricUnits;
-
private TrackStatistics trackStatistics;
private static final Distance DISTANCE_OFF = Distance.of(Double.MAX_VALUE);
+ private Distance distanceFrequency = DISTANCE_OFF;
+ @NonNull
private Distance nextTotalDistance = DISTANCE_OFF;
private static final Duration TOTALTIME_OFF = Duration.ofMillis(Long.MAX_VALUE);
+ private Duration totalTimeFrequency = TOTALTIME_OFF;
+ @NonNull
private Duration nextTotalTime = TOTALTIME_OFF;
public VoiceAnnouncementManager(@NonNull TrackRecordingService trackRecordingService) {
this.trackRecordingService = trackRecordingService;
-
- TASK_FREQUENCY_OFF = Integer.parseInt(trackRecordingService.getString(R.string.frequency_off));
- taskFrequency = TASK_FREQUENCY_OFF;
}
public void restore(@Nullable TrackStatistics trackStatistics) {
- if (taskFrequency == TASK_FREQUENCY_OFF) {
- Log.d(TAG, "Task frequency is off.");
- return;
- }
-
voiceAnnouncement = new VoiceAnnouncement(trackRecordingService);
voiceAnnouncement.start();
- if (isTimeFrequency()) {
- nextTotalTime = trackStatistics != null ? calculateNextDuration(trackStatistics) : TOTALTIME_OFF;
- } else {
- // For distance periodic task
- updateNextTaskDistance(trackStatistics);
+ this.trackStatistics = trackStatistics;
+
+ if (!totalTimeFrequency.isZero()) {
+ nextTotalTime = calculateNextDuration();
+ }
+ if (!distanceFrequency.isZero()) {
+ nextTotalDistance = calculateNextTaskDistance();
}
}
@@ -90,14 +77,15 @@ public class VoiceAnnouncementManager {
Log.e(TAG, "Cannot update when in status shutdown.");
return;
}
+
boolean announce = false;
this.trackStatistics = track.getTrackStatistics();
if (trackStatistics.getTotalDistance().greaterThan(nextTotalDistance)) {
- updateNextTaskDistance(trackStatistics);
+ nextTotalDistance = calculateNextTaskDistance();
announce = true;
}
if (!trackStatistics.getTotalTime().minus(nextTotalTime).isNegative()) {
- nextTotalTime = calculateNextDuration(trackStatistics);
+ nextTotalTime = calculateNextDuration();
announce = true;
}
@@ -113,59 +101,48 @@ public class VoiceAnnouncementManager {
}
}
- public void setTaskFrequency(int taskFrequency) {
- this.taskFrequency = taskFrequency;
+ public void setFrequency(Duration frequency) {
+ this.totalTimeFrequency = frequency;
restore(this.trackStatistics);
}
- public void setMetricUnits(boolean metricUnits) {
- this.metricUnits = metricUnits;
- updateNextTaskDistance(this.trackStatistics);
- }
-
- private void updateNextTaskDistance(TrackStatistics trackStatistics) {
- if (!isDistanceFrequency()) {
- nextTotalDistance = DISTANCE_OFF;
- Log.d(TAG, "SplitManager: Distance splits disabled.");
- return;
- }
-
- if (trackStatistics == null) {
- return;
- }
-
- nextTotalDistance = calculateNextTaskDistance(trackStatistics);
+ public void setFrequency(Distance frequency) {
+ this.distanceFrequency = frequency;
+ restore(this.trackStatistics);
}
@VisibleForTesting
- public Distance calculateNextTaskDistance(@NonNull TrackStatistics trackStatistics) {
+ public Distance calculateNextTaskDistance() {
+ if (trackStatistics == null) {
+ return DISTANCE_OFF;
+ }
+
Distance distance = trackStatistics.getTotalDistance();
- Distance announcementInterval = Distance.one(metricUnits).multipliedBy(Math.abs(taskFrequency));
- int index = (int) (distance.dividedBy(announcementInterval));
- return announcementInterval.multipliedBy(index + 1);
+ int index = (int) (distance.dividedBy(distanceFrequency));
+ return distanceFrequency.multipliedBy(index + 1);
}
- private Duration calculateNextDuration(@Nullable TrackStatistics trackStatistics) {
+ private Duration calculateNextDuration() {
if (trackStatistics == null) {
- return null;
+ return TOTALTIME_OFF;
}
- if (!isTimeFrequency()) {
- throw new RuntimeException("Using distance frequency as time frequency is impossible.");
- }
Duration totalTime = trackStatistics.getTotalTime();
- Duration interval = Duration.ofMinutes(taskFrequency);
- Duration intervalMod = Duration.ofMillis(trackStatistics.getTotalTime().toMillis() % interval.toMillis());
+ Duration intervalMod = Duration.ofMillis(trackStatistics.getTotalTime().toMillis() % totalTimeFrequency.toMillis());
- return totalTime.plus(interval.minus(intervalMod));
+ return totalTime.plus(totalTimeFrequency.minus(intervalMod));
}
- private boolean isTimeFrequency() {
- return taskFrequency > 0;
+ @VisibleForTesting
+ @NonNull
+ public Duration getNextTotalTime() {
+ return nextTotalTime;
}
- private boolean isDistanceFrequency() {
- return taskFrequency < 0;
+ @VisibleForTesting
+ @NonNull
+ public Distance getNextTotalDistance() {
+ return nextTotalDistance;
}
}
diff --git a/src/main/java/de/dennisguse/opentracks/settings/SettingsActivity.java b/src/main/java/de/dennisguse/opentracks/settings/SettingsActivity.java
index df4311c88..0d07447ba 100644
--- a/src/main/java/de/dennisguse/opentracks/settings/SettingsActivity.java
+++ b/src/main/java/de/dennisguse/opentracks/settings/SettingsActivity.java
@@ -3,12 +3,10 @@ package de.dennisguse.opentracks.settings;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
-import android.speech.tts.TextToSpeech;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
-import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.Toolbar;
import androidx.documentfile.provider.DocumentFile;
@@ -286,8 +284,11 @@ public class SettingsActivity extends AbstractActivity implements ChooseActivity
private void updateUnits() {
boolean metricUnits = PreferencesUtils.isMetricUnits(sharedPreferences, getActivity());
- ListPreference voiceFrequency = findPreference(getString(R.string.voice_frequency_key));
- voiceFrequency.setEntries(StringUtils.getFrequencyOptions(getActivity(), metricUnits));
+ ListPreference voiceFrequency = findPreference(getString(R.string.voice_announcement_frequency_key));
+ voiceFrequency.setEntries(StringUtils.getAnnouncementFrequency(getActivity()));
+
+ ListPreference voiceDistance = findPreference(getString(R.string.voice_announcement_distance_key));
+ voiceDistance.setEntries(StringUtils.getAnnouncementDistance(getActivity(), metricUnits));
ListPreference minRecordingInterval = findPreference(getString(R.string.min_recording_interval_key));
minRecordingInterval.setEntries(PreferenceHelper.getMinRecordingIntervalEntries(getActivity()));
diff --git a/src/main/java/de/dennisguse/opentracks/util/PreferencesUtils.java b/src/main/java/de/dennisguse/opentracks/util/PreferencesUtils.java
index 89ee40110..792e59532 100644
--- a/src/main/java/de/dennisguse/opentracks/util/PreferencesUtils.java
+++ b/src/main/java/de/dennisguse/opentracks/util/PreferencesUtils.java
@@ -90,6 +90,15 @@ public class PreferencesUtils {
return key == null || key.equals(getKey(context, keyId));
}
+ public static boolean isKey(Context context, int[] keyIds, String key) {
+ for(int keyId : keyIds) {
+ if (isKey(context, keyId, key)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
private static boolean getBoolean(SharedPreferences sharedPreferences, Context context, int keyId, boolean defaultValue) {
return sharedPreferences.getBoolean(getKey(context, keyId), defaultValue);
}
@@ -216,13 +225,23 @@ public class PreferencesUtils {
return getBoolean(sharedPreferences, context, R.string.stats_fullscreen_while_recording_key, DEFAULT);
}
- public static int getVoiceFrequency(SharedPreferences sharedPreferences, Context context) {
- final int VOICE_FREQUENCY_DEFAULT = Integer.parseInt(context.getResources().getString(R.string.voice_frequency_default));
- return getInt(sharedPreferences, context, R.string.voice_frequency_key, VOICE_FREQUENCY_DEFAULT);
+ public static Duration getVoiceAnnouncementFrequency(SharedPreferences sharedPreferences, Context context) {
+ final int DEFAULT = Integer.parseInt(context.getResources().getString(R.string.voice_announcement_frequency_default));
+ int value = getInt(sharedPreferences, context, R.string.voice_announcement_frequency_key, DEFAULT);
+ return Duration.ofSeconds(value);
+ }
+
+ /**
+ * @return Result depends on isMetricUnits
+ */
+ public static Distance getVoiceAnnouncementDistance(SharedPreferences sharedPreferences, Context context) {
+ final float DEFAULT = Integer.parseInt(context.getResources().getString(R.string.voice_announcement_distance_default));
+ float value = getFloat(sharedPreferences, context, R.string.voice_announcement_distance_key, DEFAULT);
+ return Distance.one(isMetricUnits(sharedPreferences, context)).multipliedBy(value);
}
public static float getVoiceSpeedRate(SharedPreferences sharedPreferences, Context context) {
- final float DEFAULT = Float.parseFloat(context.getResources().getString(R.string.voice_frequency_default));
+ final float DEFAULT = Float.parseFloat(context.getResources().getString(R.string.voice_speed_rate_default));
return getFloat(sharedPreferences, context, R.string.voice_speed_rate_key, DEFAULT);
}
diff --git a/src/main/java/de/dennisguse/opentracks/util/StringUtils.java b/src/main/java/de/dennisguse/opentracks/util/StringUtils.java
index 6a4b1e697..9fd5dd3e5 100644
--- a/src/main/java/de/dennisguse/opentracks/util/StringUtils.java
+++ b/src/main/java/de/dennisguse/opentracks/util/StringUtils.java
@@ -292,28 +292,34 @@ public class StringUtils {
}
}
- /**
- * Gets the frequency display options.
- *
- * @param context the context
- * @param metricUnits true to display in metric units
- */
- public static String[] getFrequencyOptions(Context context, boolean metricUnits) {
- String[] values = context.getResources().getStringArray(R.array.frequency_values);
+ public static String[] getAnnouncementFrequency(Context context) {
+ String[] values = context.getResources().getStringArray(R.array.voice_announcement_frequency_values);
String[] options = new String[values.length];
for (int i = 0; i < values.length; i++) {
- int value = Integer.parseInt(values[i]);
- if (context.getString(R.string.frequency_off).equals(values[i])) {
+ if (context.getString(R.string.announcement_off).equals(values[i])) {
options[i] = context.getString(R.string.value_off);
- } else if (value < 0) {
- options[i] = context.getString(metricUnits ? R.string.value_integer_kilometer : R.string.value_integer_mile, Math.abs(value));
} else {
+ int value = Integer.parseInt(values[i]);
options[i] = context.getString(R.string.value_integer_minute, value);
}
}
return options;
}
+ public static String[] getAnnouncementDistance(Context context, boolean metricUnits) {
+ String[] values = context.getResources().getStringArray(R.array.voice_announcement_distance_values);
+ String[] options = new String[values.length];
+ for (int i = 0; i < values.length; i++) {
+ if (context.getString(R.string.announcement_off).equals(values[i])) {
+ options[i] = context.getString(R.string.value_off);
+ } else {
+ int value = Integer.parseInt(values[i]);
+ options[i] = context.getString(metricUnits ? R.string.value_integer_kilometer : R.string.value_integer_mile, value);
+ }
+ }
+ return options;
+ }
+
/**
* @return the formatted altitude_m (or null) and it's unit as {@link Pair}
*/
diff --git a/src/main/res/values-ar/strings.xml b/src/main/res/values-ar/strings.xml
index 87e731fc6..c228de41a 100644
--- a/src/main/res/values-ar/strings.xml
+++ b/src/main/res/values-ar/strings.xml
@@ -177,7 +177,6 @@ limitations under the License.
إظهار على الخريطة
بدء GPS
إيقاف GPS
- معدل الصوت
خدمة التسجيل
diff --git a/src/main/res/values-b+en+001/strings.xml b/src/main/res/values-b+en+001/strings.xml
index 0a5bb4d62..d8815bc5f 100644
--- a/src/main/res/values-b+en+001/strings.xml
+++ b/src/main/res/values-b+en+001/strings.xml
@@ -144,7 +144,6 @@
Show on map
Start GPS
Stop GPS
- Voice frequency
Recording service
Battery level
Cadence
diff --git a/src/main/res/values-b+es+419/strings.xml b/src/main/res/values-b+es+419/strings.xml
index a7c6c65f3..0ee5e028f 100644
--- a/src/main/res/values-b+es+419/strings.xml
+++ b/src/main/res/values-b+es+419/strings.xml
@@ -145,7 +145,6 @@
Mostrar en el mapa
Iniciar GPS
Detener GPS
- Frecuencia de voz
Reanudar ruta
Servicio de grabación
Nivel de la batería
diff --git a/src/main/res/values-bg/strings.xml b/src/main/res/values-bg/strings.xml
index fc4be18b3..7c3269548 100644
--- a/src/main/res/values-bg/strings.xml
+++ b/src/main/res/values-bg/strings.xml
@@ -173,7 +173,6 @@ limitations under the License.
Показване на картата
Стартиране на GPS
Спиране на GPS
- Честота на гласа
Услуга за запис
diff --git a/src/main/res/values-ca/strings.xml b/src/main/res/values-ca/strings.xml
index a4e580874..c2f1a4465 100644
--- a/src/main/res/values-ca/strings.xml
+++ b/src/main/res/values-ca/strings.xml
@@ -173,7 +173,6 @@ limitations under the License.
Mostra-ho al mapa
Activa el GPS
Desactiva el GPS
- Freqüència de veu
Servei d\'enregistrament
diff --git a/src/main/res/values-cs/strings.xml b/src/main/res/values-cs/strings.xml
index a5edad5fc..92182988c 100644
--- a/src/main/res/values-cs/strings.xml
+++ b/src/main/res/values-cs/strings.xml
@@ -227,7 +227,6 @@ Pokud zařízení GPS hlásí nepřesná data (např. Polohu, rychlost, nadmořs
Zobrazit na mapě
Spustit GPS
Ukončit GPS
- Frekvence hlasových oznámení
Obnovit měření
Služba pro záznam
diff --git a/src/main/res/values-da/strings.xml b/src/main/res/values-da/strings.xml
index 76564e94e..3d941c9a9 100644
--- a/src/main/res/values-da/strings.xml
+++ b/src/main/res/values-da/strings.xml
@@ -229,7 +229,6 @@ Hvis GPS-enheden rapporterer unøjagtige data (f.eks. Placering, hastighed, høj
Vis på kort
Start GPS
Stop GPS
- Stemmefrekvens
Genoptag sporet
Registreringstjeneste
diff --git a/src/main/res/values-de/strings.xml b/src/main/res/values-de/strings.xml
index c15917bd0..70ae8a8af 100644
--- a/src/main/res/values-de/strings.xml
+++ b/src/main/res/values-de/strings.xml
@@ -230,7 +230,6 @@ Meldet das GPS-Gerät ungenaue Daten (z.B. Standort, Geschwindigkeit, Höhe), ka
Auf Karte anzeigen
GPS aktivieren
GPS deaktivieren
- Ansagehäufigkeit
Track fortsetzen
Dienst für Aufzeichnung
diff --git a/src/main/res/values-el/strings.xml b/src/main/res/values-el/strings.xml
index 3f2344860..798078ff7 100644
--- a/src/main/res/values-el/strings.xml
+++ b/src/main/res/values-el/strings.xml
@@ -173,7 +173,6 @@ limitations under the License.
Εμφάνιση στον χάρτη
Έναρξη GPS
Διακοπή GPS
- Συχνότητα ανακοινώσεων
Υπηρεσία καταγραφής
diff --git a/src/main/res/values-es/strings.xml b/src/main/res/values-es/strings.xml
index 8312f8e4e..dc0cfeb21 100644
--- a/src/main/res/values-es/strings.xml
+++ b/src/main/res/values-es/strings.xml
@@ -226,7 +226,6 @@ Si el dispositivo GPS reporta datos inexactos (por ejemplo, ubicación, velocida
Mostrar en el mapa
Iniciar GPS
Detener GPS
- Frecuencia de voz
Reanudar ruta
Servicio de grabación
diff --git a/src/main/res/values-et/strings.xml b/src/main/res/values-et/strings.xml
index 4f485f1ed..888082982 100644
--- a/src/main/res/values-et/strings.xml
+++ b/src/main/res/values-et/strings.xml
@@ -226,7 +226,6 @@ Kui GPS-seade teatab ebatäpsetest andmetest (nt asukoht, kiirus, kõrgus), ei s
Kuva kaardil
Käivita GPS
Peata GPS
- Häälteadete sagedus
Jätka pala
Salvestamisteenus
diff --git a/src/main/res/values-eu/strings.xml b/src/main/res/values-eu/strings.xml
index b0481c948..0da70fb66 100644
--- a/src/main/res/values-eu/strings.xml
+++ b/src/main/res/values-eu/strings.xml
@@ -227,7 +227,6 @@ GPS gailuak datu okerrak salatzen baditu (adibidez, kokapena, abiadura, kota), O
Erakutsi mapan
Hasi GPSa
Gelditu GPSa
- Ahotsaren frekuentzia
Jarraitu pista
Grabaketa-zerbitzua
diff --git a/src/main/res/values-fa/strings.xml b/src/main/res/values-fa/strings.xml
index f4d69a333..d159a3bdb 100644
--- a/src/main/res/values-fa/strings.xml
+++ b/src/main/res/values-fa/strings.xml
@@ -173,7 +173,6 @@ limitations under the License.
نمایش روی نقشه
شروع GPS
توقف GPS
- بسامد اعلان صوتی
خدمات ضبط
diff --git a/src/main/res/values-fi/strings.xml b/src/main/res/values-fi/strings.xml
index d141f12d2..70aaac401 100644
--- a/src/main/res/values-fi/strings.xml
+++ b/src/main/res/values-fi/strings.xml
@@ -230,7 +230,6 @@ limitations under the License.
Näytä kartalta
Käynnistä GPS
Pysäytä GPS
- Ilmoitustiheys
Jatka reittiä
Tallennuspalvelu
diff --git a/src/main/res/values-fr-rCA/strings.xml b/src/main/res/values-fr-rCA/strings.xml
index 71f8f9e8c..e75c3a7f5 100644
--- a/src/main/res/values-fr-rCA/strings.xml
+++ b/src/main/res/values-fr-rCA/strings.xml
@@ -144,7 +144,6 @@
Afficher sur une carte
Démarrer le GPS
Arrêter le GPS
- Fréquence vocale
Service d\'enregistrement
Niveau de charge de la pile
Cadence
diff --git a/src/main/res/values-fr-rCH/strings.xml b/src/main/res/values-fr-rCH/strings.xml
index 09bcd5c92..3dad1d1c0 100644
--- a/src/main/res/values-fr-rCH/strings.xml
+++ b/src/main/res/values-fr-rCH/strings.xml
@@ -144,7 +144,6 @@
Afficher sur la carte
Démarrer le GPS
Arrêter le GPS
- Fréquence vocale
Service enregistrement
Niveau de la batterie
Cadence
diff --git a/src/main/res/values-fr/strings.xml b/src/main/res/values-fr/strings.xml
index 4d6a09fd8..33ffba3d6 100644
--- a/src/main/res/values-fr/strings.xml
+++ b/src/main/res/values-fr/strings.xml
@@ -226,7 +226,6 @@ Si le dispositif GPS signale des données inexactes (par exemple, la localisatio
Afficher sur la carte
Démarrer le GPS
Arrêter le GPS
- Fréquence vocale
Reprendre la trace
Service enregistrement
diff --git a/src/main/res/values-gl/strings.xml b/src/main/res/values-gl/strings.xml
index 073fe7282..ad769c477 100644
--- a/src/main/res/values-gl/strings.xml
+++ b/src/main/res/values-gl/strings.xml
@@ -237,7 +237,6 @@ Se te detés ou estás en interiores, non se gardarán datos do sensor (mais ser
Amosar no mapa
Iniciar GPS
Desactivar GPS
- Frecuencia da voz
Retomar gravación
Servizo de gravación
diff --git a/src/main/res/values-hi/strings.xml b/src/main/res/values-hi/strings.xml
index 0a89eaa3c..692103c6c 100644
--- a/src/main/res/values-hi/strings.xml
+++ b/src/main/res/values-hi/strings.xml
@@ -173,7 +173,6 @@ limitations under the License.
नक्शे पर दिखाएं
GPS प्रारंभ करें
GPS बंद करें
- ध्वनि आवृत्ति
रिकॉर्डिंग सेवा
diff --git a/src/main/res/values-hr/strings.xml b/src/main/res/values-hr/strings.xml
index 6672f4887..3232a3049 100644
--- a/src/main/res/values-hr/strings.xml
+++ b/src/main/res/values-hr/strings.xml
@@ -174,7 +174,6 @@ limitations under the License.
Prikaži na karti
Pokreni GPS
Zaustavi GPS
- Učest. glas. objava
Usluga snimanja
diff --git a/src/main/res/values-hu/strings.xml b/src/main/res/values-hu/strings.xml
index 9754d7a65..3b76d4410 100644
--- a/src/main/res/values-hu/strings.xml
+++ b/src/main/res/values-hu/strings.xml
@@ -173,7 +173,6 @@ limitations under the License.
Megjelenítés a térképen
GPS indítása
GPS leállítása
- Utasítások gyakorisága
Rögzítőszolgáltatás
diff --git a/src/main/res/values-in/strings.xml b/src/main/res/values-in/strings.xml
index cd631a1b2..bb24333c1 100644
--- a/src/main/res/values-in/strings.xml
+++ b/src/main/res/values-in/strings.xml
@@ -143,7 +143,6 @@
Tampilkan di peta
Nyalakan GPS
Matikan GPS
- Kerapatan suara
Layanan perekaman
Level baterai
Tempo
diff --git a/src/main/res/values-it/strings.xml b/src/main/res/values-it/strings.xml
index 42d99eeda..75941b818 100644
--- a/src/main/res/values-it/strings.xml
+++ b/src/main/res/values-it/strings.xml
@@ -215,7 +215,6 @@ Infatti, un\'applicazione deve supportare ACTION_VIEW con MIME applica
Visualizza su mappa
Accendi GPS
Spegni GPS
- Frequenza voce
Servizio di registrazione
diff --git a/src/main/res/values-iw/strings.xml b/src/main/res/values-iw/strings.xml
index 6af0b6b01..995fa33e1 100644
--- a/src/main/res/values-iw/strings.xml
+++ b/src/main/res/values-iw/strings.xml
@@ -146,7 +146,6 @@
הצג במפה
הפעל GPS
עצור GPS
- תדירות הודעות קוליות
שירות הקלטה
טעינת סוללה
קצב
diff --git a/src/main/res/values-ja/strings.xml b/src/main/res/values-ja/strings.xml
index dc77bcecc..b666387ef 100644
--- a/src/main/res/values-ja/strings.xml
+++ b/src/main/res/values-ja/strings.xml
@@ -172,7 +172,6 @@ limitations under the License.
地図で見る
GPSを開始
GPSを停止
- 音声アナウンスの頻度
記録サービス
diff --git a/src/main/res/values-ko/strings.xml b/src/main/res/values-ko/strings.xml
index a6a2b44cc..102ce7799 100644
--- a/src/main/res/values-ko/strings.xml
+++ b/src/main/res/values-ko/strings.xml
@@ -172,7 +172,6 @@ limitations under the License.
지도에 표시
GPS 시작
GPS 중지
- 음성 안내 빈도
기록 서비스
diff --git a/src/main/res/values-lt/strings.xml b/src/main/res/values-lt/strings.xml
index 2723da282..5c4f452a9 100644
--- a/src/main/res/values-lt/strings.xml
+++ b/src/main/res/values-lt/strings.xml
@@ -174,7 +174,6 @@ limitations under the License.
Rodyti žemėlapyje
Įjungti GPS
Išjungti GPS
- Balso dažnumas
Įrašymo paslauga
diff --git a/src/main/res/values-lv/strings.xml b/src/main/res/values-lv/strings.xml
index 96c6c7939..38f6a9966 100644
--- a/src/main/res/values-lv/strings.xml
+++ b/src/main/res/values-lv/strings.xml
@@ -174,7 +174,6 @@ limitations under the License.
Rādīt kartē
Palaist GPS
Apturēt GPS
- Balss ziņas
Ierakstīšanas pakalpojums
diff --git a/src/main/res/values-mo/strings.xml b/src/main/res/values-mo/strings.xml
index bd32c139d..507b6e381 100644
--- a/src/main/res/values-mo/strings.xml
+++ b/src/main/res/values-mo/strings.xml
@@ -145,7 +145,6 @@
Afișați pe hartă
Porniți GPS
Opriți GPS
- Frecvența vocii
Serviciu de înregistrare
Nivelul bateriei
Cadenţă
diff --git a/src/main/res/values-ms/strings.xml b/src/main/res/values-ms/strings.xml
index dd9964b9a..3fa4273e3 100644
--- a/src/main/res/values-ms/strings.xml
+++ b/src/main/res/values-ms/strings.xml
@@ -172,7 +172,6 @@ limitations under the License.
Tunjukkan pada peta
Mulakan GPS
Hentikan GPS
- Kekerapan suara
Khidmat rakaman
diff --git a/src/main/res/values-nb/strings.xml b/src/main/res/values-nb/strings.xml
index 3d9d4d343..abc83c23e 100644
--- a/src/main/res/values-nb/strings.xml
+++ b/src/main/res/values-nb/strings.xml
@@ -173,7 +173,6 @@ limitations under the License.
Vis på kart
Start GPS
Stopp GPS
- Talefrekvens
Opptakstjeneste
diff --git a/src/main/res/values-nl/strings.xml b/src/main/res/values-nl/strings.xml
index 4731a1a34..5872d6bf9 100644
--- a/src/main/res/values-nl/strings.xml
+++ b/src/main/res/values-nl/strings.xml
@@ -226,7 +226,6 @@ Als het GPS-apparaat onnauwkeurige gegevens rapporteert (bijv. locatie, snelheid
Weergeven op kaart
GPS starten
GPS stoppen
- Frequentie voor gesproken berichten
Hervat spoor
Opnameservice
diff --git a/src/main/res/values-pl/strings.xml b/src/main/res/values-pl/strings.xml
index 055eaa51d..6c59dff09 100644
--- a/src/main/res/values-pl/strings.xml
+++ b/src/main/res/values-pl/strings.xml
@@ -186,7 +186,6 @@ limitations under the License.
Pokaż na mapie
Uruchom GPS
Zatrzymaj GPS
- Częstość powiadomień
Kontynuuj trasę
Usługa rejestrowania
diff --git a/src/main/res/values-pt-rBR/strings.xml b/src/main/res/values-pt-rBR/strings.xml
index 67610006d..b368a5120 100644
--- a/src/main/res/values-pt-rBR/strings.xml
+++ b/src/main/res/values-pt-rBR/strings.xml
@@ -144,7 +144,6 @@
Mostrar no mapa
Iniciar GPS
Parar GPS
- Frequência da voz
Serviço de gravação
Nível da bateria
Cadência
diff --git a/src/main/res/values-pt-rPT/strings.xml b/src/main/res/values-pt-rPT/strings.xml
index 26470a287..b80378f0f 100644
--- a/src/main/res/values-pt-rPT/strings.xml
+++ b/src/main/res/values-pt-rPT/strings.xml
@@ -144,7 +144,6 @@
Mostrar no mapa
Ligar GPS
Desligar GPS
- Frequência de voz
Serviço de gravação
Nível da bateria
Cadência
diff --git a/src/main/res/values-pt/strings.xml b/src/main/res/values-pt/strings.xml
index 051952e24..345c55122 100644
--- a/src/main/res/values-pt/strings.xml
+++ b/src/main/res/values-pt/strings.xml
@@ -173,7 +173,6 @@ limitations under the License.
Mostrar no mapa
Iniciar GPS
Parar GPS
- Frequência da voz
Serviço de gravação
diff --git a/src/main/res/values-ro/strings.xml b/src/main/res/values-ro/strings.xml
index 89db1e4ef..9201b94d7 100644
--- a/src/main/res/values-ro/strings.xml
+++ b/src/main/res/values-ro/strings.xml
@@ -174,7 +174,6 @@ limitations under the License.
Afișați pe hartă
Porniți GPS
Opriți GPS
- Frecvența vocii
Serviciu de înregistrare
diff --git a/src/main/res/values-ru/strings.xml b/src/main/res/values-ru/strings.xml
index 567811e4a..aaf72228e 100644
--- a/src/main/res/values-ru/strings.xml
+++ b/src/main/res/values-ru/strings.xml
@@ -175,7 +175,6 @@ limitations under the License.
Показать на карте
Включить GPS
Отключить GPS
- Голосовые оповещения
Служба записи треков
diff --git a/src/main/res/values-sk/strings.xml b/src/main/res/values-sk/strings.xml
index 3d3d231f9..3b61bdb3a 100644
--- a/src/main/res/values-sk/strings.xml
+++ b/src/main/res/values-sk/strings.xml
@@ -174,7 +174,6 @@ limitations under the License.
Zobraziť na mape
Aktivovať GPS
Deaktivovať GPS
- Hlasová frekvencia
Služba na záznam
diff --git a/src/main/res/values-sl/strings.xml b/src/main/res/values-sl/strings.xml
index ee838309a..6f1553b9a 100644
--- a/src/main/res/values-sl/strings.xml
+++ b/src/main/res/values-sl/strings.xml
@@ -175,7 +175,6 @@ limitations under the License.
Pokaži na zemljevidu
Zaženi GPS
Ustavi GPS
- Pogostost glas. obv.
Storitev snemanja
diff --git a/src/main/res/values-sr/strings.xml b/src/main/res/values-sr/strings.xml
index ce227b1e5..f363aa446 100644
--- a/src/main/res/values-sr/strings.xml
+++ b/src/main/res/values-sr/strings.xml
@@ -174,7 +174,6 @@ limitations under the License.
Прикажи на мапи
Покрени GPS
Заустави GPS
- Учесталост гласа
Услуга бележења
diff --git a/src/main/res/values-sv/strings.xml b/src/main/res/values-sv/strings.xml
index da3cb7c13..ef6e8053b 100644
--- a/src/main/res/values-sv/strings.xml
+++ b/src/main/res/values-sv/strings.xml
@@ -173,7 +173,6 @@ limitations under the License.
Visa på karta
Starta GPS
Stoppa GPS
- Röstfrekvens
Inspelningstjänst
diff --git a/src/main/res/values-th/strings.xml b/src/main/res/values-th/strings.xml
index 1e00a73ef..540e2203c 100644
--- a/src/main/res/values-th/strings.xml
+++ b/src/main/res/values-th/strings.xml
@@ -172,7 +172,6 @@ limitations under the License.
แสดงบนแผนที่
เริ่ม GPS
หยุด GPS
- ความถี่เสียง
บริการการบันทึก
diff --git a/src/main/res/values-tl/strings.xml b/src/main/res/values-tl/strings.xml
index 400d6419f..4816eecc7 100644
--- a/src/main/res/values-tl/strings.xml
+++ b/src/main/res/values-tl/strings.xml
@@ -173,7 +173,6 @@ limitations under the License.
Ipakita sa mapa
Simulan ang GPS
Itigil ang GPS
- Dalas ng voice
Serbisyo ng pagrerekord
diff --git a/src/main/res/values-tr/strings.xml b/src/main/res/values-tr/strings.xml
index 2e9583957..f479c593c 100644
--- a/src/main/res/values-tr/strings.xml
+++ b/src/main/res/values-tr/strings.xml
@@ -173,7 +173,6 @@ limitations under the License.
Haritada göster
GPS\'i aç
GPS\'i kapat
- Ses sıklığı
Kayıt hizmeti
diff --git a/src/main/res/values-uk/strings.xml b/src/main/res/values-uk/strings.xml
index 3f9de88cb..97e37afb3 100644
--- a/src/main/res/values-uk/strings.xml
+++ b/src/main/res/values-uk/strings.xml
@@ -175,7 +175,6 @@ limitations under the License.
Показати на карті
Увімкнути GPS
Вимкнути GPS
- Голосові сповіщення
Служба запису
diff --git a/src/main/res/values-vi/strings.xml b/src/main/res/values-vi/strings.xml
index f9f6b57b7..accd168f7 100644
--- a/src/main/res/values-vi/strings.xml
+++ b/src/main/res/values-vi/strings.xml
@@ -172,7 +172,6 @@ limitations under the License.
Hiển thị trên bản đồ
Bắt đầu GPS
Dừng GPS
- Tần suất giọng nói
Dịch vụ ghi
diff --git a/src/main/res/values-zh-rHK/strings.xml b/src/main/res/values-zh-rHK/strings.xml
index a634e471b..877d0f435 100644
--- a/src/main/res/values-zh-rHK/strings.xml
+++ b/src/main/res/values-zh-rHK/strings.xml
@@ -143,7 +143,6 @@
在地圖上顯示
啟動 GPS
關閉 GPS
- 語音播報頻率
記錄服務
電池電量
轉速
diff --git a/src/main/res/values-zh-rTW/strings.xml b/src/main/res/values-zh-rTW/strings.xml
index b65e89f29..66ff6b08f 100644
--- a/src/main/res/values-zh-rTW/strings.xml
+++ b/src/main/res/values-zh-rTW/strings.xml
@@ -143,7 +143,6 @@
在地圖上顯示
啟動 GPS
關閉 GPS
- 語音播報頻率
記錄服務
電池電量
轉速
diff --git a/src/main/res/values-zh/strings.xml b/src/main/res/values-zh/strings.xml
index e8d195d9e..99cb9504a 100644
--- a/src/main/res/values-zh/strings.xml
+++ b/src/main/res/values-zh/strings.xml
@@ -172,7 +172,6 @@ limitations under the License.
在地图上显示
启动 GPS
关闭 GPS
- 语音提示频率
语音提示速率
继续
diff --git a/src/main/res/values/settings.xml b/src/main/res/values/settings.xml
index b5fa76834..92b6d2b48 100644
--- a/src/main/res/values/settings.xml
+++ b/src/main/res/values/settings.xml
@@ -211,24 +211,29 @@
- @string/settings_recording_track_name_number_option
- voiceFrequency
- @string/frequency_off
- 0
-
- - @string/frequency_off
+ 0
+ voiceFrequencyV2
+ @string/announcement_off
+
+ - @string/voice_announcement_frequency_default
+ - 60
+ - 120
+ - 300
+ - 600
+ - 900
+ - 1800
+ - 3600
+
+ voiceDistance
+ @string/announcement_off
+
+ - @string/voice_announcement_distance_default
- 1
- - 2
- 5
- 10
- - 15
- - 30
- - 60
- - -1
- - -5
- - -10
- - -25
- - -50
- - -100
+ - 25
+ - 50
+ - 100
voiceSpeedRate
0.9
diff --git a/src/main/res/values/settings_deprecated.xml b/src/main/res/values/settings_deprecated.xml
index 2906d2113..ef307431f 100644
--- a/src/main/res/values/settings_deprecated.xml
+++ b/src/main/res/values/settings_deprecated.xml
@@ -17,7 +17,6 @@
splitFrequency
- @string/frequency_off
chartShowCadence
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index 562f573b2..86ecfa06a 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -302,7 +302,6 @@ limitations under the License.
Show on map
Start GPS
Stop GPS
- Voice frequency
Voice speed
Resume track
@@ -361,7 +360,10 @@ limitations under the License.
Day
Night
-
+ Announcements
+ Time interval
+ Distance interval
+
Reset
Reset Custom Layout
diff --git a/src/main/res/xml/settings.xml b/src/main/res/xml/settings.xml
index 6560e18e1..01610a2e2 100644
--- a/src/main/res/xml/settings.xml
+++ b/src/main/res/xml/settings.xml
@@ -74,19 +74,6 @@ limitations under the License.
android:key="@string/stats_fullscreen_while_recording_key"
android:summary="@string/settings_recording_fullscreen_on_while_recording_summary"
android:title="@string/settings_recording_fullscreen_on_while_recording_title" />
-
-
+
+
+
+
+
+