forked from upstream-mirrors/OpenTracks
Idle: TrackRecordingManager creates IDLE TrackPoints (configurable timeout).
Fixes of #1187.
This commit is contained in:
+1
-1
@@ -88,7 +88,7 @@ public class TrackRecordingServiceRecordingTest {
|
||||
contentProviderUtils = new ContentProviderUtils(context);
|
||||
|
||||
PreferencesUtils.setString(R.string.recording_distance_interval_key, R.string.recording_distance_interval_default);
|
||||
PreferencesUtils.setString(R.string.idle_speed_key, R.string.idle_speed_default);
|
||||
PreferencesUtils.setString(R.string.idle_duration_key, R.string.idle_duration_default);
|
||||
|
||||
service = startService();
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package de.dennisguse.opentracks.data.models;
|
||||
|
||||
import java.time.Duration;
|
||||
|
||||
import de.dennisguse.opentracks.settings.PreferencesUtils;
|
||||
import de.dennisguse.opentracks.settings.UnitSystem;
|
||||
|
||||
public record Speed(double speed_mps) {
|
||||
@@ -56,10 +55,6 @@ public record Speed(double speed_mps) {
|
||||
return Double.isNaN(speed_mps) || Double.isInfinite(speed_mps);
|
||||
}
|
||||
|
||||
public boolean isMoving() {
|
||||
return !isInvalid() && greaterThan(PreferencesUtils.getIdleSpeed());
|
||||
}
|
||||
|
||||
public boolean lessThan(Speed speed) {
|
||||
return !greaterThan(speed);
|
||||
}
|
||||
|
||||
@@ -34,8 +34,6 @@ public class TrackRecordingManager implements SharedPreferences.OnSharedPreferen
|
||||
|
||||
private static final String TAG = TrackRecordingManager.class.getSimpleName();
|
||||
|
||||
private static final Duration IDLE_TIMEOUT = Duration.ofSeconds(30);
|
||||
|
||||
private static final AltitudeCorrectionManager ALTITUDE_CORRECTION_MANAGER = new AltitudeCorrectionManager();
|
||||
|
||||
private final Runnable ON_IDLE = this::onIdle;
|
||||
@@ -49,6 +47,7 @@ public class TrackRecordingManager implements SharedPreferences.OnSharedPreferen
|
||||
|
||||
private Distance recordingDistanceInterval;
|
||||
private Distance maxRecordingDistance;
|
||||
private Duration idleDuration;
|
||||
|
||||
private Track.Id trackId;
|
||||
private TrackStatisticsUpdater trackStatisticsUpdater;
|
||||
@@ -69,7 +68,7 @@ public class TrackRecordingManager implements SharedPreferences.OnSharedPreferen
|
||||
|
||||
Track.Id startNewTrack() {
|
||||
TrackPoint segmentStartTrackPoint = trackPointCreator.createSegmentStartManual();
|
||||
// Create new track
|
||||
|
||||
ZoneOffset zoneOffset = ZoneOffset.systemDefault().getRules().getOffset(segmentStartTrackPoint.getTime());
|
||||
Track track = new Track(zoneOffset);
|
||||
trackId = contentProviderUtils.insertTrack(track);
|
||||
@@ -83,7 +82,6 @@ public class TrackRecordingManager implements SharedPreferences.OnSharedPreferen
|
||||
track.setActivityTypeLocalized(activityTypeLocalized);
|
||||
track.setActivityType(ActivityType.findByLocalizedString(context, activityTypeLocalized));
|
||||
track.setTrackStatistics(trackStatisticsUpdater.getTrackStatistics());
|
||||
//TODO Pass TrackPoint
|
||||
track.setName(TrackNameUtils.getTrackName(context, trackId, track.getStartTime()));
|
||||
contentProviderUtils.updateTrack(track);
|
||||
|
||||
@@ -109,7 +107,7 @@ public class TrackRecordingManager implements SharedPreferences.OnSharedPreferen
|
||||
return true;
|
||||
}
|
||||
|
||||
void end() {
|
||||
void endCurrentTrack() {
|
||||
TrackPoint segmentEnd = trackPointCreator.createSegmentEnd();
|
||||
insertTrackPoint(segmentEnd, true);
|
||||
|
||||
@@ -223,7 +221,7 @@ public class TrackRecordingManager implements SharedPreferences.OnSharedPreferen
|
||||
insertTrackPoint(trackPoint, true);
|
||||
|
||||
handler.removeCallbacks(ON_IDLE);
|
||||
handler.postDelayed(ON_IDLE, IDLE_TIMEOUT.toMillis());
|
||||
handler.postDelayed(ON_IDLE, idleDuration.toMillis());
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -231,7 +229,7 @@ public class TrackRecordingManager implements SharedPreferences.OnSharedPreferen
|
||||
insertTrackPoint(trackPoint, false);
|
||||
|
||||
handler.removeCallbacks(ON_IDLE);
|
||||
handler.postDelayed(ON_IDLE, IDLE_TIMEOUT.toMillis());
|
||||
handler.postDelayed(ON_IDLE, idleDuration.toMillis());
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -297,5 +295,8 @@ public class TrackRecordingManager implements SharedPreferences.OnSharedPreferen
|
||||
if (PreferencesUtils.isKey(R.string.max_recording_distance_key, key)) {
|
||||
maxRecordingDistance = PreferencesUtils.getMaxRecordingDistance();
|
||||
}
|
||||
if (PreferencesUtils.isKey(R.string.idle_duration_key, key)) {
|
||||
idleDuration = PreferencesUtils.getIdleDurationTimeout();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -214,7 +214,7 @@ public class TrackRecordingService extends Service implements TrackPointCreator.
|
||||
// Set recording status
|
||||
updateRecordingStatus(STATUS_DEFAULT);
|
||||
|
||||
trackRecordingManager.end();
|
||||
trackRecordingManager.endCurrentTrack();
|
||||
|
||||
stopUpdateRecordingData();
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ public class GpsSettingsFragment extends PreferenceFragmentCompat {
|
||||
ListPreference recordingGpsAccuracy = findPreference(getString(R.string.recording_gps_accuracy_key));
|
||||
recordingGpsAccuracy.setEntries(PreferencesUtils.getThresholdHorizontalAccuracyEntries());
|
||||
|
||||
ListPreference idleSpeed = findPreference(getString(R.string.idle_speed_key));
|
||||
idleSpeed.setEntries(PreferencesUtils.getIdleSpeedEntries());
|
||||
ListPreference idleDuration = findPreference(getString(R.string.idle_duration_key));
|
||||
idleDuration.setEntries(PreferencesUtils.getIdleDurationEntries());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,6 @@ import de.dennisguse.opentracks.data.models.Distance;
|
||||
import de.dennisguse.opentracks.data.models.DistanceFormatter;
|
||||
import de.dennisguse.opentracks.data.models.HeartRate;
|
||||
import de.dennisguse.opentracks.data.models.HeartRateZones;
|
||||
import de.dennisguse.opentracks.data.models.Speed;
|
||||
import de.dennisguse.opentracks.data.models.Track;
|
||||
import de.dennisguse.opentracks.io.file.TrackFileFormat;
|
||||
import de.dennisguse.opentracks.io.file.TrackFilenameGenerator;
|
||||
@@ -530,11 +529,12 @@ public class PreferencesUtils {
|
||||
|
||||
static String[] getMinRecordingIntervalEntries() {
|
||||
String[] entryValues = resources.getStringArray(R.array.min_recording_interval_values);
|
||||
long recommended = PreferencesUtils.getMinRecordingIntervalDefault().getSeconds();
|
||||
String[] entries = new String[entryValues.length];
|
||||
for (int i = 0; i < entryValues.length; i++) {
|
||||
int value = Integer.parseInt(entryValues[i]);
|
||||
|
||||
if (value == PreferencesUtils.getMinRecordingIntervalDefault().getSeconds()) {
|
||||
if (value == recommended) {
|
||||
entries[i] = resources.getString(R.string.value_smallest_recommended);
|
||||
} else {
|
||||
entries[i] = value < 60 ? resources.getString(R.string.value_integer_second, value) : resources.getString(R.string.value_integer_minute, value / 60);
|
||||
@@ -598,49 +598,25 @@ public class PreferencesUtils {
|
||||
return entries;
|
||||
}
|
||||
|
||||
|
||||
public static Speed getIdleSpeed() {
|
||||
final float DEFAULT = Float.parseFloat(resources.getString(R.string.idle_speed_default));
|
||||
float value = getFloat(R.string.idle_speed_key, DEFAULT);
|
||||
return Speed.ofKMH(value);
|
||||
public static Duration getIdleDurationTimeout() {
|
||||
final int DEFAULT = Integer.parseInt(resources.getString(R.string.idle_duration_default));
|
||||
int value = getInt(R.string.idle_duration_key, DEFAULT);
|
||||
return Duration.ofSeconds(value);
|
||||
}
|
||||
|
||||
static String[] getIdleSpeedEntries() {
|
||||
String[] entryValues = resources.getStringArray(R.array.idle_speed_values);
|
||||
static String[] getIdleDurationEntries() {
|
||||
String[] entryValues = resources.getStringArray(R.array.idle_duration_values);
|
||||
String[] entries = new String[entryValues.length];
|
||||
|
||||
final float idleSpeedDefault = Float.parseFloat(resources.getString(R.string.idle_speed_default));
|
||||
|
||||
UnitSystem unitSystem = getUnitSystem();
|
||||
final int idleDurationDefault = Integer.parseInt(resources.getString(R.string.idle_duration_default));
|
||||
|
||||
for (int i = 0; i < entryValues.length; i++) {
|
||||
float value = Float.parseFloat(entryValues[i]);
|
||||
int value = Integer.parseInt(entryValues[i]);
|
||||
|
||||
switch (unitSystem) {
|
||||
case METRIC -> {
|
||||
if (value == idleSpeedDefault) {
|
||||
entries[i] = resources.getString(R.string.value_float_kilometer_hour_recommended, value);
|
||||
} else {
|
||||
entries[i] = resources.getString(R.string.value_float_kilometer_hour, value);
|
||||
}
|
||||
}
|
||||
case IMPERIAL_FEET, IMPERIAL_METER -> {
|
||||
double valueMPH = Speed.ofKMH(value).toMPH();
|
||||
if (value == idleSpeedDefault) {
|
||||
entries[i] = resources.getString(R.string.value_float_mile_hour_recommended, valueMPH);
|
||||
} else {
|
||||
entries[i] = resources.getString(R.string.value_float_mile_hour, valueMPH);
|
||||
}
|
||||
}
|
||||
case NAUTICAL_IMPERIAL -> {
|
||||
double valueKnots = Speed.ofKMH(value).toKnots();
|
||||
if (value == idleSpeedDefault) {
|
||||
entries[i] = resources.getString(R.string.value_float_knots_recommended, valueKnots);
|
||||
} else {
|
||||
entries[i] = resources.getString(R.string.value_float_knots, valueKnots);
|
||||
}
|
||||
}
|
||||
default -> throw new RuntimeException("Not implemented");
|
||||
if (value == idleDurationDefault) {
|
||||
entries[i] = resources.getString(R.string.value_int_seconds, value);
|
||||
} else {
|
||||
entries[i] = value < 60 ? resources.getString(R.string.value_integer_second, value) : resources.getString(R.string.value_integer_minute, value / 60);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -429,7 +429,6 @@
|
||||
<string name="settings_announcements_summary">Tiempo, Distancia, Velocidad de la voz</string>
|
||||
<string name="settings_import_export_summary">Importar, Exportar, Autoexportar</string>
|
||||
<string name="settings_units_category">Unidades</string>
|
||||
<string name="settings_recording_idle_speed_title">Umbral de velocidad de ralentí</string>
|
||||
<string name="custom_layout_select_layout">Seleccionar diseño</string>
|
||||
<string name="stats_custom_layout_default_layout">Diseño predeterminado</string>
|
||||
<string name="settings_generic_sensor">Genérico</string>
|
||||
|
||||
@@ -477,7 +477,6 @@ limitations under the License.
|
||||
<string name="permission_bluetooth_failed_rejected">V nastavení systému je třeba ručně povolit aplikaci OpenTracks přístup k blízkým zařízením.</string>
|
||||
<string name="value_float_mile_hour">%1$.1f mi/h</string>
|
||||
<string name="value_float_mile_hour_recommended">%1$.1f mil/h (doporučeno)</string>
|
||||
<string name="settings_recording_idle_speed_title">Rychlost pro autopausu</string>
|
||||
<string name="value_float_kilometer_hour">%1$.1f km/h</string>
|
||||
<string name="value_float_kilometer_hour_recommended">%1$.1f km/h (doporučeno)</string>
|
||||
<string name="stats_clock">Hodiny</string>
|
||||
|
||||
@@ -487,7 +487,6 @@ Hvis GPS-enheden rapporterer unøjagtige data (f.eks. Placering, hastighed, høj
|
||||
<string name="settings_import_section">Importere</string>
|
||||
<string name="settings_export_section">Eksport</string>
|
||||
<string name="stats_clock">Klokken</string>
|
||||
<string name="settings_recording_idle_speed_title">Tærskel for tomgangshastighed</string>
|
||||
<string name="value_float_mile_hour_recommended">%1$.1f mi/h (anbefalet)</string>
|
||||
<string name="value_float_mile_hour">%1$.1f mi/h</string>
|
||||
<string name="generic_to">Til</string>
|
||||
|
||||
@@ -496,7 +496,6 @@ Meldet das GPS-Gerät ungenaue Daten (z.B. Standort, Geschwindigkeit, Höhe), ka
|
||||
<string name="description_speed_source_gps">GPS</string>
|
||||
<string name="menu_select_layout">Wähle Layout</string>
|
||||
<string name="generic_choose_an_option">Wähle eine Option</string>
|
||||
<string name="settings_recording_idle_speed_title">Inaktivitätsgeschwindigkeit</string>
|
||||
<string name="settings_gps_title">GPS</string>
|
||||
<string name="settings_import_export_title">Import/Export</string>
|
||||
<string name="settings_sensors_title">Bluetooth Sensoren</string>
|
||||
|
||||
@@ -507,7 +507,6 @@ limitations under the License.
|
||||
<string name="value_float_kilometer_hour">%1$.1f km/h</string>
|
||||
<string name="value_float_mile_hour">%1$.1f mi/h</string>
|
||||
<string name="value_float_mile_hour_recommended">%1$.1f mi/h (recomendado)</string>
|
||||
<string name="settings_recording_idle_speed_title">Umbral de velocidad de ralentí</string>
|
||||
<string name="stats_clock">Reloj</string>
|
||||
<string name="value_float_kilometer_hour_recommended">%1$.1f km/h (recomendado)</string>
|
||||
<string name="settings_generic_sensor">Genérico</string>
|
||||
|
||||
@@ -450,7 +450,6 @@ limitations under the License.
|
||||
<string name="stats_clock">Kell</string>
|
||||
<string name="value_float_kilometer_hour_recommended">%1$.1f km/h (soovitatav)</string>
|
||||
<string name="value_float_kilometer_hour">%1$.1f km/h</string>
|
||||
<string name="settings_recording_idle_speed_title">Tühikäigu kiiruse lävi</string>
|
||||
<string name="settings_announcements_distance_frequency">Vahemaa intervall</string>
|
||||
<string name="description_speed_source_gps">GPS</string>
|
||||
<string name="settings_cycling_sensor">Jalgrattasõit</string>
|
||||
|
||||
@@ -485,7 +485,6 @@ GPS gailuak datu okerrak salatzen baditu (adibidez, kokapena, abiadura, kota), O
|
||||
<string name="settings_sensors_summary">Txirrindularitza Sentsoreak, Gurpila Zirkunferentzia, Sentsore Exekutatzen</string>
|
||||
<string name="settings_recording_customize_layout_select_columns">Datu-eremuak errenkadako</string>
|
||||
<string name="settings_recording_customize_layout_title">Pertsonalizatu zure grabazioaren diseinua</string>
|
||||
<string name="settings_recording_idle_speed_title">Inaktibitatearen abiaduraren muga</string>
|
||||
<string name="settings_announcements_totaltime_frequency">Denbora-tartea</string>
|
||||
<string name="settings_announcements_distance_frequency">Distantzia tartea</string>
|
||||
<string name="settings_running_sensor">Exekutatzen</string>
|
||||
|
||||
@@ -521,7 +521,6 @@ limitations under the License.
|
||||
<string name="settings_public_api_dashboard_enabled_title">Automaattinen tiedonsiirto</string>
|
||||
<string name="settings_public_api_dashboard_enabled_summary_on">Tallennuksen aloittanut sovellus voi myös käyttää tallennettuja tietoja.</string>
|
||||
<string name="menu_filter">Suodatin</string>
|
||||
<string name="settings_recording_idle_speed_title">Joutokäyntinopeuden kynnysarvo</string>
|
||||
<string name="stats_sensors_cadence">Kadenssi</string>
|
||||
<string name="stats_clock">Kello</string>
|
||||
<string name="current_heart_rate">Nykyinen syke</string>
|
||||
|
||||
@@ -511,7 +511,6 @@ Si le dispositif GPS signale des données inexactes (par exemple, la localisatio
|
||||
<string name="value_float_kilometer_hour_recommended">%1$.1f km/h (recommandé)</string>
|
||||
<string name="value_float_mile_hour">%1$.1f mi/h</string>
|
||||
<string name="value_float_mile_hour_recommended">%1$.1f mi/h (recommandé)</string>
|
||||
<string name="settings_recording_idle_speed_title">Seuil de vitesse au ralenti</string>
|
||||
<string name="stats_clock">Horloge</string>
|
||||
<string name="value_float_kilometer_hour">%1$.1f km/h</string>
|
||||
<string name="settings_generic_sensor">Générique</string>
|
||||
|
||||
@@ -238,7 +238,6 @@
|
||||
<string name="settings_recording_track_name_date_local_option">Dáta (áitiúil)</string>
|
||||
<string name="settings_recording_track_name_number_option">Uimhir</string>
|
||||
<string name="settings_recording_track_name_title">Ainm rian réamhshocraithe</string>
|
||||
<string name="settings_recording_idle_speed_title">Tairseach luais díomhaoin</string>
|
||||
<string name="settings_night_mode_title">Téama Chomhéadain</string>
|
||||
<string name="settings_night_mode_option_system">Córas</string>
|
||||
<string name="settings_night_mode_option_day">Lá</string>
|
||||
|
||||
@@ -477,7 +477,6 @@ Se o GPS informa sobre datos pouco precisos (ex.: localización, velocidade, ele
|
||||
<string name="settings_announcements_distance_frequency">Intervalo de distancia</string>
|
||||
<string name="permission_bluetooth_failed">OpenTracks require permiso para usar o Bluetooth.</string>
|
||||
<string name="permission_bluetooth_failed_rejected">Tes que permitirlle a OpenTracks nos axustes do sistema que acceda a Dispositivos Próximos.</string>
|
||||
<string name="settings_recording_idle_speed_title">Limiar detección movemento</string>
|
||||
<string name="value_float_kilometer_hour">%1$.1f km/h</string>
|
||||
<string name="value_float_mile_hour">%1$.1f km/h</string>
|
||||
<string name="value_float_mile_hour_recommended">%1$.1f km/h (recomendado)</string>
|
||||
|
||||
@@ -474,7 +474,6 @@ limitations under the License.
|
||||
<string name="stats_sensors_cadence">Ütem</string>
|
||||
<string name="settings_all_reset">Visszaállítás</string>
|
||||
<string name="settings_layout_reset_confirm_message">Minden elrendezési beállítás visszaáll az alapértelmezett értékekre. Ez nem törli az eszközön lévő zeneszámokat.</string>
|
||||
<string name="settings_recording_idle_speed_title">Alapjárati fordulatszám-küszöbérték</string>
|
||||
<string name="custom_layout_list_title">Elrendezések</string>
|
||||
<string name="custom_layout_list_edit_name">Írja be az elrendezés nevét a hozzáadáshoz</string>
|
||||
<string name="aggregated_stats_filter_no_results">A megadott szűrőhöz nincsenek tevékenységek</string>
|
||||
|
||||
@@ -456,7 +456,6 @@ Infatti, un\'applicazione deve supportare <i>ACTION_VIEW</i> con MIME <i>applica
|
||||
<string name="settings_sensor_running_speed_and_cadence">Distanza, Velocità e Cadenza</string>
|
||||
<string name="stats_clock">Orologio</string>
|
||||
<string name="settings_announcements_totaltime_frequency">Intervallo di tempo</string>
|
||||
<string name="settings_recording_idle_speed_title">Soglia velocità di movimento</string>
|
||||
<string name="settings_announcements_distance_frequency">Intervallo di distanza</string>
|
||||
<string name="location_latitude_longitude">%1$s, %2$s</string>
|
||||
<string name="location_coordinate">%1$s°</string>
|
||||
|
||||
@@ -472,7 +472,6 @@ limitations under the License.
|
||||
<string name="settings_export_section">Eksport</string>
|
||||
<string name="value_float_kilometer_hour">%1$.1f km/t</string>
|
||||
<string name="value_float_kilometer_hour_recommended">%1$.1f km/t (anbefales)</string>
|
||||
<string name="settings_recording_idle_speed_title">Terskel for tomgangshastighet</string>
|
||||
<string name="value_float_mile_hour">%1$.1f mi/h</string>
|
||||
<string name="value_float_mile_hour_recommended">%1$.1f mi/h (anbefales)</string>
|
||||
<string name="stats_clock">Klokke</string>
|
||||
|
||||
@@ -458,7 +458,6 @@ Als het GPS-apparaat onnauwkeurige gegevens rapporteert (bijv. locatie, snelheid
|
||||
<string name="settings_ui_title">User Interface</string>
|
||||
<string name="stats_coordinates">Coördinaten</string>
|
||||
<string name="settings_announcements_distance_frequency">Afstandsinterval</string>
|
||||
<string name="settings_recording_idle_speed_title">Drempelwaarde stationair</string>
|
||||
<string name="value_float_kilometer_hour">%1$.1f km/u</string>
|
||||
<string name="settings_api_title">Publieke API</string>
|
||||
<string name="settings_public_api_enabled_title">Public API</string>
|
||||
|
||||
@@ -456,7 +456,6 @@ limitations under the License.
|
||||
<string name="stats_sensors_heart_rate">Częstość akcji serca</string>
|
||||
<string name="stats_clock">Zegar</string>
|
||||
<string name="settings_announcements_distance_frequency">Przedział dystansu</string>
|
||||
<string name="settings_recording_idle_speed_title">Próg prędkości bezobciążeń</string>
|
||||
<string name="settings_layout_reset_confirm_title">Zresetować twoje układy\?</string>
|
||||
<string name="settings_cycling_sensor">Kolarstwo</string>
|
||||
<string name="settings_running_sensor">Bieganie</string>
|
||||
|
||||
@@ -427,7 +427,6 @@
|
||||
<string name="settings_export_section">Exportar</string>
|
||||
<string name="value_float_kilometer_hour">%1$.1f km/h</string>
|
||||
<string name="value_float_kilometer_hour_recommended">%1$.1f km/h (Recomendado)</string>
|
||||
<string name="settings_recording_idle_speed_title">Limite de velocidade de marcha lenta</string>
|
||||
<string name="stats_clock">Relógio</string>
|
||||
<string name="settings_announcements_title">Anúncios de voz</string>
|
||||
<string name="settings_sensors_summary">Voice announcements</string>
|
||||
|
||||
@@ -438,7 +438,6 @@
|
||||
<string name="settings_recording_keep_screen_on_while_recording_title">Mantenha o ecrã ligada</string>
|
||||
<string name="settings_recording_fullscreen_on_while_recording_summary">Durante a gravação, apresente em ecrã inteiro.</string>
|
||||
<string name="settings_recording_keep_screen_on_while_recording_summary">Durante a gravação, mantenha o ecrã ligado.</string>
|
||||
<string name="settings_recording_idle_speed_title">Limite de velocidade de marcha lenta</string>
|
||||
<string name="settings_night_mode_title">Tema UI</string>
|
||||
<string name="settings_night_mode_option_system">Sistema</string>
|
||||
<string name="settings_night_mode_option_night">Noite</string>
|
||||
|
||||
@@ -465,7 +465,6 @@ limitations under the License.
|
||||
<string name="settings_import_export_title">Importar/Exportar</string>
|
||||
<string name="settings_import_export_summary">Importar, Exportar, Auto Export</string>
|
||||
<string name="settings_units_category">Unidades</string>
|
||||
<string name="settings_recording_idle_speed_title">Limite de velocidade de marcha lenta</string>
|
||||
<string name="settings_night_mode_title">Tema UI</string>
|
||||
<string name="settings_layout_reset_confirm_message">Todas as configurações de layout serão revertidas para os valores padrão. Isso não excluirá nenhuma trilha do aparelho.</string>
|
||||
<string name="settings_all_reset">Redefinir</string>
|
||||
|
||||
@@ -457,7 +457,6 @@ limitations under the License.
|
||||
<string name="custom_layout_list_edit_already_exists">Numele Layout-ului există deja</string>
|
||||
<string name="custom_layout_list_title">Machete</string>
|
||||
<string name="custom_layout_list_edit_name">Tastați numele layout pentru a adăuga</string>
|
||||
<string name="settings_recording_idle_speed_title">Pragul de viteză la ralanti</string>
|
||||
<string name="generic_filter">Filtru</string>
|
||||
<string name="menu_select_layout">Selectați Layout</string>
|
||||
<string name="settings_import_export_title">Importație/Export</string>
|
||||
|
||||
@@ -490,7 +490,6 @@ limitations under the License.
|
||||
<string name="stats_clock">Часы</string>
|
||||
<string name="settings_activity_defaults_category">Настройки активности</string>
|
||||
<string name="settings_reset_summary">Сбросить настройки</string>
|
||||
<string name="settings_recording_idle_speed_title">Порог скорости холостого хода</string>
|
||||
<string name="settings_generic_sensor">Обычные</string>
|
||||
<string name="custom_layout_select_layout">Выбрать раскладку</string>
|
||||
<string name="stats_custom_layout_default_layout">Раскладка по умолчанию</string>
|
||||
|
||||
@@ -427,7 +427,6 @@ limitations under the License.
|
||||
<string name="settings_recording_show_on_lockscreen_while_recording_summary">Počas nahrávania zobrazte štatistiky bez odomknutia zariadenia.</string>
|
||||
<string name="settings_recording_show_on_lockscreen_while_recording_title">Zobrazenie štatistík na uzamknutej obrazovke</string>
|
||||
<string name="settings_generic_sensor">Všeobecné</string>
|
||||
<string name="settings_recording_idle_speed_title">Prahová hodnota voľnobehu</string>
|
||||
<string name="value_float_mile_hour">%1$.1f mi/h</string>
|
||||
<string name="settings_default_export_uri_title">Adresár pre export stôp</string>
|
||||
<string name="instant_export_enabled_title">Okamžitý export po tréningu</string>
|
||||
|
||||
@@ -448,7 +448,6 @@ limitations under the License.
|
||||
<string name="settings_all_reset">Ponastavitev</string>
|
||||
<string name="settings_sensor_running_speed_and_cadence">Razdalja, hitrost in kadenca</string>
|
||||
<string name="settings_sensor_wheel_circumference">Obod kolesa (mm)</string>
|
||||
<string name="settings_recording_idle_speed_title">Prag prostega teka</string>
|
||||
<string name="settings_night_mode_option_system">Sistem</string>
|
||||
<string name="settings_public_api_disabled_toast">OpenTracks Public API je onemogočen: omogočite ga lahko v nastavitvah.</string>
|
||||
<string name="current_heart_rate">Trenutni srčni utrip</string>
|
||||
|
||||
@@ -453,7 +453,6 @@ limitations under the License.
|
||||
<string name="settings_recording_show_on_lockscreen_while_recording_title">Kilit ekranında istatistikleri göster</string>
|
||||
<string name="settings_recording_keep_screen_on_while_recording_summary">Kayıt esnasında ekranı açık tutar.</string>
|
||||
<string name="settings_recording_fullscreen_on_while_recording_summary">Kayıt esnasında tam ekranda sunar.</string>
|
||||
<string name="settings_recording_idle_speed_title">Boşta hız eşiği</string>
|
||||
<string name="settings_night_mode_title">Kullanıcı arayüzü teması</string>
|
||||
<string name="settings_night_mode_option_system">Sistem</string>
|
||||
<string name="settings_night_mode_option_night">Gece</string>
|
||||
|
||||
@@ -475,7 +475,6 @@ limitations under the License.
|
||||
<string name="custom_layout_list_edit_name">Введіть ім\'я макета для додавання</string>
|
||||
<string name="settings_announcements_distance_frequency">Інтервал відстаней</string>
|
||||
<string name="settings_announcements_totaltime_frequency">Часовий інтервал</string>
|
||||
<string name="settings_recording_idle_speed_title">Поріг холостого ходу</string>
|
||||
<string name="settings_running_sensor">Рухомий</string>
|
||||
<string name="settings_generic_sensor">Загальний</string>
|
||||
<string name="settings_layout_reset_confirm_title">Скинути ваші макети\?</string>
|
||||
|
||||
@@ -469,7 +469,6 @@ limitations under the License.
|
||||
<string name="settings_import_section">Nhập</string>
|
||||
<string name="settings_export_section">Xuất</string>
|
||||
<string name="settings_generic_sensor">Chung chung</string>
|
||||
<string name="settings_recording_idle_speed_title">Tốc độ ngưỡng</string>
|
||||
<string name="value_float_mile_hour">%1$.1f mi/h</string>
|
||||
<string name="value_float_mile_hour_recommended">%1$.1f mi/h (khuyến khích)</string>
|
||||
<string name="value_float_kilometer_hour">%1$.1f km/h</string>
|
||||
|
||||
@@ -366,7 +366,6 @@ limitations under the License.
|
||||
<string name="settings_recording_track_name_date_local_option">日期 (當地)</string>
|
||||
<string name="settings_recording_track_name_number_option">數字</string>
|
||||
<string name="settings_recording_track_name_title">預設蹤跡名稱</string>
|
||||
<string name="settings_recording_idle_speed_title">怠速閾值</string>
|
||||
<string name="settings_night_mode_title">界面主題</string>
|
||||
<string name="settings_night_mode_option_system">系統</string>
|
||||
<string name="settings_night_mode_option_day">日</string>
|
||||
|
||||
@@ -430,7 +430,6 @@ limitations under the License.
|
||||
\n 方法二:通过一个正常的地图应用(例如 <a href="http://osmand.net/">OsmAnd</a> 和 <a href="https://maps.me/">MAPS.ME</a>)。这些应用需要支持 KMZ 文件格式(只包含位置和时间戳)。事实上,应用需要支持 <i>application/vnd.google-earth.kmz</i> MIME 类型的 <i>ACTION_VIEW</i> 操作。 </string>
|
||||
<string name="export_progress_summary_errors_msg">错误</string>
|
||||
<string name="permission_gps_failed">OpenTracks 需要使用 GPS 的权限。</string>
|
||||
<string name="settings_recording_idle_speed_title">静止速度阈值</string>
|
||||
<string name="custom_layout_list_title">布局</string>
|
||||
<string name="image_discard">丢弃</string>
|
||||
<string name="import_thread_interrupted">线程被中断</string>
|
||||
|
||||
@@ -123,19 +123,16 @@
|
||||
<item>@string/recording_gps_accuracy_poor</item>
|
||||
</string-array>
|
||||
|
||||
<string name="idle_speed_key" translatable="false">idleSpeed</string>
|
||||
<string name="idle_speed_default" translatable="false">0.5</string>
|
||||
<string-array name="idle_speed_values">
|
||||
<item>0.3</item>
|
||||
<item>@string/idle_speed_default</item>
|
||||
<item>1</item>
|
||||
<item>1.5</item>
|
||||
<item>2</item>
|
||||
<item>2.5</item>
|
||||
<item>3</item>
|
||||
<item>3.5</item>
|
||||
<item>4</item>
|
||||
<string name="idle_duration_key" translatable="false">idleSpeedDuration</string>
|
||||
<string name="idle_duration_default" translatable="false">10</string>
|
||||
<string-array name="idle_duration_values">
|
||||
<item>5</item>
|
||||
<item>@string/idle_duration_default</item>
|
||||
<item>15</item>
|
||||
<item>30</item>
|
||||
<item>45</item>
|
||||
<item>60</item>
|
||||
<item>120</item>
|
||||
</string-array>
|
||||
|
||||
<string name="stats_rate_key" translatable="false">statsRate</string>
|
||||
|
||||
@@ -395,7 +395,7 @@ limitations under the License.
|
||||
<string name="settings_recording_track_name_date_local_option">Date (local)</string>
|
||||
<string name="settings_recording_track_name_number_option">Number</string>
|
||||
<string name="settings_recording_track_name_title">Default track name</string>
|
||||
<string name="settings_recording_idle_speed_title">Idle speed threshold</string>
|
||||
<string name="settings_recording_idle_timeout_title">Idle threshold</string>
|
||||
<string name="settings_night_mode_title">UI Theme</string>
|
||||
<string name="settings_night_mode_option_system">System</string>
|
||||
<string name="settings_night_mode_option_day">Day</string>
|
||||
@@ -557,6 +557,7 @@ limitations under the License.
|
||||
<string name="value_none">None</string>
|
||||
<string name="value_off">Off</string>
|
||||
<string name="value_smallest_recommended">Smallest (recommended)</string>
|
||||
<string name="value_int_seconds">%1$d s (recommended)</string>
|
||||
<string name="voiceHoursPlural">
|
||||
{n, plural,
|
||||
=1 {1 hour}
|
||||
|
||||
@@ -29,10 +29,10 @@
|
||||
android:title="@string/settings_recording_min_required_accuracy_title" />
|
||||
|
||||
<ListPreference
|
||||
android:defaultValue="@string/idle_speed_default"
|
||||
android:entryValues="@array/idle_speed_values"
|
||||
android:key="@string/idle_speed_key"
|
||||
android:title="@string/settings_recording_idle_speed_title"
|
||||
android:defaultValue="@string/idle_duration_default"
|
||||
android:entryValues="@array/idle_duration_values"
|
||||
android:key="@string/idle_duration_key"
|
||||
android:title="@string/settings_recording_idle_timeout_title"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
</PreferenceScreen>
|
||||
Reference in New Issue
Block a user