Merge branch 'master' into trip_recording_graphs_dynamic_update

# Conflicts:
#	OsmAnd/src/net/osmand/plus/monitoring/TripRecordingBottomSheet.java
This commit is contained in:
Skalii 2021-03-26 11:21:25 +02:00
commit 5ea797aa7a
45 changed files with 1041 additions and 373 deletions

View file

@ -6,7 +6,6 @@ import net.osmand.NativeLibrary;
import net.osmand.PlatformUtil;
import net.osmand.ResultMatcher;
import net.osmand.binary.BinaryMapIndexReader;
import net.osmand.binary.BinaryMapRouteReaderAdapter;
import net.osmand.binary.BinaryMapRouteReaderAdapter.RouteRegion;
import net.osmand.binary.RouteDataObject;
import net.osmand.data.LatLon;
@ -689,15 +688,15 @@ public class RoutePlannerFrontEnd {
}
}
if (ctx.calculationMode == RouteCalculationMode.COMPLEX && routeDirection == null
&& maxDistance > ctx.config.DEVIATION_RADIUS * 6) {
&& maxDistance > RoutingConfiguration.DEVIATION_RADIUS * 6) {
ctx.calculationProgress.totalIterations++;
RoutingContext nctx = buildRoutingContext(ctx.config, ctx.nativeLib, ctx.getMaps(), RouteCalculationMode.BASE);
nctx.calculationProgress = ctx.calculationProgress;
List<RouteSegmentResult> ls = searchRoute(nctx, start, end, intermediates);
if(ls == null) {
if (ls == null) {
return null;
}
routeDirection = PrecalculatedRouteDirection.build(ls, ctx.config.DEVIATION_RADIUS, ctx.getRouter().getMaxSpeed());
routeDirection = PrecalculatedRouteDirection.build(ls, RoutingConfiguration.DEVIATION_RADIUS, ctx.getRouter().getMaxSpeed());
}
List<RouteSegmentResult> res ;
if (intermediatesEmpty && ctx.nativeLib != null) {

View file

@ -20,7 +20,7 @@ import java.util.Stack;
public class RoutingConfiguration {
public static final int DEFAULT_MEMORY_LIMIT = 30;
public final float DEVIATION_RADIUS = 3000;
public static final float DEVIATION_RADIUS = 3000;
public Map<String, String> attributes = new LinkedHashMap<String, String>();
// 1. parameters of routing and different tweaks

View file

@ -22,7 +22,7 @@
<string name="mile_per_hour">mph</string>
<string name="km_h">km/h</string>
<string name="m_s">m/s</string>
<string name="nm_h">di/h</string>
<string name="nm_h">M/h</string>
<string name="min_km">min/km</string>
<string name="min_mile">min/mi</string>
<string name="nm">di</string>
@ -43,7 +43,7 @@
<string name="sharing_location">Delar plats</string>
<string name="share_location">Dela plats</string>
<string name="shared_string_distance">Avstånd</string>
<string name="osmand_service_descr">OsmAnd Tracker körs i bakgrunden med skärmen av.</string>
<string name="osmand_service_descr">OsmAnd Tracker körs i bakgrunden medan skärmen är avstängd.</string>
<string name="osmand_service">Bakgrundsläge</string>
<string name="location_service_no_gps_available">Välj en av platsleverantörerna för att dela din plats.</string>
<string name="gps_not_available">Aktivera \"Plats\" i systeminställningarna</string>

View file

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="8dp"
android:layout_marginRight="-8dp"
android:layout_marginStart="8dp"
android:layout_marginEnd="-8dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:scaleType="centerInside"
android:duplicateParentState="true"/>

View file

@ -16,13 +16,12 @@
android:id="@+id/folderIconImageView"
android:layout_width="56dp"
android:layout_height="56dp"
android:layout_marginRight="@dimen/content_padding"
android:layout_marginTop="4dp"
android:layout_row="0"
android:layout_marginEnd="@dimen/content_padding"
android:layout_marginRight="@dimen/content_padding"
android:scaleType="center"
tools:background="@color/color_warning"
tools:src="@drawable/ic_action_folder"
android:layout_marginEnd="@dimen/content_padding" />
tools:src="@drawable/ic_action_folder" />
</LinearLayout>
@ -46,16 +45,16 @@
android:paddingTop="22dp"
android:text="@string/application_dir"
android:textColor="?android:attr/textColorPrimary"
android:textSize="@dimen/dialog_header_text_size"/>
android:textSize="@dimen/dialog_header_text_size" />
<ImageButton
android:id="@+id/closeImageButton"
android:contentDescription="@string/shared_string_close"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="44dp"
android:layout_height="44dp"
android:contentDescription="@string/shared_string_close"
osmand:srcCompat="@drawable/ic_action_remove_dark"
tools:background="@color/color_warning"/>
tools:background="@color/color_warning" />
</LinearLayout>
@ -64,11 +63,11 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="fill_horizontal"
android:layout_marginBottom="24dp"
android:layout_marginTop="4dp"
android:textColor="?android:textColorSecondary"
android:layout_marginBottom="24dp"
android:text="@string/application_dir_description"
android:textSize="16sp"/>
android:textColor="?android:textColorSecondary"
android:textSize="16sp" />
<ScrollView
android:layout_width="match_parent"
@ -90,11 +89,13 @@
android:id="@+id/deviceMemoryImageView"
android:layout_width="wrap_content"
android:layout_height="56dp"
android:paddingStart="@dimen/content_padding"
android:paddingLeft="@dimen/content_padding"
android:paddingEnd="@dimen/content_padding"
android:paddingRight="@dimen/content_padding"
android:scaleType="center"
osmand:srcCompat="@drawable/ic_action_phone"
tools:background="@color/color_warning"
android:paddingEnd="@dimen/content_padding" />
tools:background="@color/color_warning" />
<LinearLayout
android:layout_width="match_parent"
@ -106,19 +107,16 @@
android:id="@+id/deviceMemoryTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="fill_horizontal"
android:gravity="center_vertical"
android:text="@string/storage_directory_external"
android:textColor="?android:attr/textColorPrimary"
/>
android:textColor="?android:attr/textColorPrimary" />
<TextView
android:id="@+id/deviceMemoryDescription"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="fill_horizontal"
android:textColor="?android:attr/textColorSecondary"
tools:text="Free: 568 Mb"/>
tools:text="Free: 568 Mb" />
</LinearLayout>
@ -129,7 +127,7 @@
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_gravity="fill_horizontal"
android:background="@color/divider_color"/>
android:background="@color/divider_color" />
<LinearLayout
android:id="@+id/sharedMemoryRow"
@ -142,11 +140,13 @@
android:id="@+id/sharedMemoryImageView"
android:layout_width="wrap_content"
android:layout_height="56dp"
android:paddingStart="@dimen/content_padding"
android:paddingLeft="@dimen/content_padding"
android:paddingEnd="@dimen/content_padding"
android:paddingRight="@dimen/content_padding"
android:scaleType="center"
osmand:srcCompat="@drawable/ic_action_phone"
tools:background="@color/color_warning"
android:paddingEnd="@dimen/content_padding" />
tools:background="@color/color_warning" />
<LinearLayout
android:layout_width="match_parent"
@ -158,17 +158,15 @@
android:id="@+id/sharedMemoryTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="fill_horizontal"
android:text="@string/storage_directory_shared"
android:textColor="?android:attr/textColorPrimary"/>
android:textColor="?android:attr/textColorPrimary" />
<TextView
android:id="@+id/sharedMemoryDescription"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="fill_horizontal"
android:textColor="?android:attr/textColorSecondary"
tools:text="Free: 9 Gb"/>
tools:text="Free: 9 Gb" />
</LinearLayout>
</LinearLayout>
@ -178,7 +176,7 @@
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_gravity="fill_horizontal"
android:background="@color/divider_color"/>
android:background="@color/divider_color" />
<LinearLayout
android:id="@+id/memoryStickRow"
@ -191,11 +189,13 @@
android:id="@+id/memoryStickImageView"
android:layout_width="wrap_content"
android:layout_height="56dp"
android:paddingStart="@dimen/content_padding"
android:paddingLeft="@dimen/content_padding"
android:paddingEnd="@dimen/content_padding"
android:paddingRight="@dimen/content_padding"
android:scaleType="center"
osmand:srcCompat="@drawable/ic_sdcard"
tools:background="@color/color_warning"
android:paddingEnd="@dimen/content_padding" />
tools:background="@color/color_warning" />
<LinearLayout
android:layout_width="match_parent"
@ -207,17 +207,15 @@
android:id="@+id/memoryStickTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="fill_horizontal"
android:text="@string/storage_directory_card"
android:textColor="?android:attr/textColorPrimary"/>
android:textColor="?android:attr/textColorPrimary" />
<TextView
android:id="@+id/memoryStickDescription"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="fill_horizontal"
android:textColor="?android:attr/textColorSecondary"
tools:text="Free: 9 Gb"/>
tools:text="Free: 9 Gb" />
</LinearLayout>

View file

@ -18,6 +18,7 @@
android:paddingEnd="@dimen/content_padding"
android:paddingRight="@dimen/content_padding"
android:paddingBottom="@dimen/content_padding"
android:minHeight="@dimen/bottom_sheet_selected_item_title_height"
android:weightSum="2">
<net.osmand.plus.widgets.TextViewEx

View file

@ -4074,7 +4074,7 @@
<string name="activity_type_motorbike_name">دراجة نارية</string>
<string name="activity_type_car_name">سيارة</string>
<string name="copy_poi_name">نسخ اسم POI</string>
<string name="select_another_colorization">الرجاء اختيار أنواع أخرى من التلوين</string>
<string name="select_another_colorization">الرجاء اختيار أنواع أخرى من التلوين.</string>
<string name="snap_to_road_descr">سيتم التقاط الرمز إلى مسار التنقل الحالي</string>
<string name="select_segments">حدد الجزء</string>
<string name="select_segments_description">%1$s يحتوي على أكثر من مقطع ، تحتاج إلى تحديد الجزء المطلوب للتنقل.</string>
@ -4114,4 +4114,22 @@
<string name="track_has_no_speed">لا يحتوي المسار على بيانات السرعة.</string>
<string name="rendering_attr_noNatureReserveBoundaries_description">إخفاء المحميات الطبيعية والمناطق المحمية وحدود المتنزهات الوطنية</string>
<string name="rendering_attr_noNatureReserveBoundaries_name">حدود الطبيعة</string>
<string name="trip_recording_show_start_dialog_setting">إذا تم تعطيله، فسيبدأ التسجيل مباشرة بعد النقر على الويدجيت أو عنصر القائمة ، متخطيا لمربع حوار التأكيد.</string>
<string name="trip_recording_logging_interval_info">الفاصل الزمني للتسجيل يحدد الفترة الزمنية التي سيسأل فيها OsmAnd عن بيانات الموقع الحالي.</string>
<string name="lost_data_warning">سيتم فقدان كافة البيانات غير المحفوظة.</string>
<string name="show_start_dialog">إظهار مربع حوار البدء</string>
<string name="trip_recording_save_and_continue">حفظ ومتابعة</string>
<string name="customize_route_line">تخصيص خط المسار</string>
<string name="shared_string_route_line">خط المسار</string>
<string name="route_line_use_map_style_appearance">سيستخدم خط الطريق %1$s المحدد في نمط الخريطة المحدد: %2$s.</string>
<string name="specify_color_for_map_mode">حدد لونًا لوضع الخريطة: %1$s.</string>
<string name="release_4_0_beta">• تم نقل تحديثات OsmAnd Live إلى \"التنزيلات&gt; التحديثات\"
\n
\n • يمكن تلوين المسارات الآن حسب الارتفاع، السرعة أو المنحدر.
\n
\n • خيار مضاف لتغيير مظهر خط مسار الملاحة
\n
\n • تحديث مربع حوار \"تسجيل الرحلة\"
\n
\n</string>
</resources>

View file

@ -2258,4 +2258,20 @@
<string name="osm_live_subscription_desc">Абонаментът позволява почасови, ежедневни, седмични актуализации и неограничено изтегляне за всички карти в световен мащаб.</string>
<string name="select_wikipedia_article_langs">Изберете езиците на които Уикипедия публикациите ще се появяват на картата. Можете да превключвате между наличните езици докато четете публикацията.</string>
<string name="extra_maps_menu_group">Допълнителни карти</string>
<string name="opr_use_dev_url">Използване на test.openplacereviews.org</string>
<string name="login_open_place_reviews">Вход в OpenPlaceПрегледи</string>
<string name="open_place_reviews">OpenPlaceReviews</string>
<string name="activity_type_water_name">Вода</string>
<string name="activity_type_winter_name">Зима</string>
<string name="activity_type_snowmobile_name">Моторни шейни</string>
<string name="activity_type_riding_name">Езда</string>
<string name="activity_type_racing_name">Състезание</string>
<string name="activity_type_mountainbike_name">Планинско колоездене</string>
<string name="activity_type_cycling_name">Колоездене</string>
<string name="activity_type_hiking_name">Туризъм</string>
<string name="activity_type_running_name">Бягане</string>
<string name="activity_type_walking_name">Ходене</string>
<string name="activity_type_offroad_name">Офроуд</string>
<string name="activity_type_motorbike_name">Мотор</string>
<string name="activity_type_car_name">Автомобил</string>
</resources>

View file

@ -1195,7 +1195,7 @@
<string name="share_fav_subject">Oblíbené body sdílené přes OsmAnd</string>
<string name="navigation_intent_invalid">Neplatný formát: %s</string>
<string name="gpx_file_is_empty">Prázdný soubor GPX</string>
<string name="shared_string_tracks">Všechny trasy</string>
<string name="shared_string_tracks">Stopy</string>
<string name="shared_string_my_favorites">Oblíbené</string>
<string name="shared_string_my_places">Moje místa</string>
<string name="loading_smth">Načítání %1$s…</string>
@ -2174,7 +2174,7 @@
<string name="select_gpx_folder">Vyberte složku pro soubor GPX</string>
<string name="file_can_not_be_moved">Soubor se nepodařilo přesunout.</string>
<string name="shared_string_move">Přesunout</string>
<string name="shared_string_gpx_tracks">Trasy</string>
<string name="shared_string_gpx_tracks">Stopy</string>
<string name="shared_string_time_moving">Doba pohybu</string>
<string name="shared_string_time_span">Časový rozsah</string>
<string name="shared_string_max">Maximum</string>
@ -2267,7 +2267,7 @@
<string name="private_access_routing_req">Váš cíl se nachází v oblasti se soukromým přístupem. Povolit vstup na soukromé pozemky pro tuto cestu?</string>
<string name="restart_search">Spustit hledání znovu</string>
<string name="increase_search_radius">Zvětšit okruh hledání</string>
<string name="nothing_found">Nic nalezeno</string>
<string name="nothing_found">Nic nebylo nalezeno</string>
<string name="nothing_found_descr">Změňte vyhledávací dotaz nebo zvětšete okruh hledání.</string>
<string name="shared_string_permissions">Oprávnění</string>
<string name="import_gpx_failed_descr">Nepodařilo se naimportovat soubor. Prosím zkontrolujte, zda má OsmAnd oprávnění ke čtení souboru.</string>
@ -2496,8 +2496,8 @@
<string name="map_import_error">Chyba při importu mapy</string>
<string name="map_imported_successfully">Mapa byla importována</string>
<string name="shared_string_current">Aktuální</string>
<string name="last_intermediate_dest_description">Přidá poslední mezizastávku</string>
<string name="first_intermediate_dest_description">Přidá první mezizastávku</string>
<string name="last_intermediate_dest_description">Přidá poslední mezicíl</string>
<string name="first_intermediate_dest_description">Přidá první mezicíl</string>
<string name="subsequent_dest_description">Přesune cíl nahoru a vytvoří ho</string>
<string name="osmand_extended_description_part1">OsmAnd (OSM Automated Navigation Directions) je mapová a navigační aplikace s přístupem k volným a kvalitním celosvětovým údajům z OpenStreetMap (OSM).
\n
@ -2829,7 +2829,7 @@
<string name="routeInfo_smoothness_name">Hladkost povrchu</string>
<string name="routeInfo_steepness_name">Strmost</string>
<string name="show_more">Ukázat více</string>
<string name="tracks_on_map">Zobrazené trasy</string>
<string name="tracks_on_map">Zobrazené stopy</string>
<string name="time_of_day">Denní doba</string>
<string name="step_by_step">Krok za krokem</string>
<string name="routeInfo_road_types_name">Typy silnic</string>
@ -3853,7 +3853,7 @@
<string name="sunrise_at">Východ slunce v %1$s</string>
<string name="sunset_at">Západ slunce v %1$s</string>
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
<string name="profile_prefs_reset_successful">Všechna nastavení profilu obnovena do základního nastavení.</string>
<string name="profile_prefs_reset_successful">Všechna nastavení profilu obnovena do výchozího stavu.</string>
<string name="plugin_prefs_reset_successful">Všechna nastavení modulů obnovena do výchozího stavu.</string>
<string name="rendering_attr_streetLightingNight_name">Zobrazit pouze v noci</string>
<string name="add_custom_category">Přidat vlastní kategorii</string>
@ -4045,4 +4045,9 @@
<string name="select_another_colorization">Vyberte prosím jiný typ obarvení.</string>
<string name="rendering_attr_noNatureReserveBoundaries_description">Skrýt hranice přírodních rezervací, chráněných území a národních parků</string>
<string name="rendering_attr_noNatureReserveBoundaries_name">Hranice přírody</string>
<string name="trip_recording_logging_interval_info">Interval záznamu nastaví, jak často bude OsmAnd zjišťovat aktuální polohu.</string>
<string name="trip_recording_save_and_continue">Uložit a pokračovat</string>
<string name="lost_data_warning">Všechna neuložená data budou ztracena.</string>
<string name="show_start_dialog">Zobrazit úvodní okno</string>
<string name="trip_recording_show_start_dialog_setting">Pokud je vypnuto, záznam začne hned po klepnutí na nástroj nebo položku v menu, přeskočí tedy potvrzovací okno.</string>
</resources>

View file

@ -4050,4 +4050,20 @@
<string name="select_category_descr">Kategorie auswählen oder neue hinzufügen</string>
<string name="rendering_attr_noNatureReserveBoundaries_description">Grenzen von Naturschutzgebieten, Schutzgebieten und Nationalparks ausblenden</string>
<string name="rendering_attr_noNatureReserveBoundaries_name">Grenzen von Schutzgebieten</string>
<string name="trip_recording_save_and_continue">Speichern und fortfahren</string>
<string name="lost_data_warning">Alle nicht gespeicherten Daten gehen verloren.</string>
<string name="show_start_dialog">Startdialog anzeigen</string>
<string name="trip_recording_show_start_dialog_setting">Wenn deaktiviert, beginnt die Aufnahme direkt nach dem Tippen auf das Widget oder den Menüpunkt und überspringt den Bestätigungsdialog.</string>
<string name="customize_route_line">Routenlinie anpassen</string>
<string name="shared_string_route_line">Routenlinie</string>
<string name="specify_color_for_map_mode">Legen Sie die Farbe für den Kartenmodus fest: %1$s.</string>
<string name="release_4_0_beta">• OsmAnd Live-Updates nach \"Downloads &gt; Updates\" verschoben
\n
\n• Tracks können nun nach Höhe, Geschwindigkeit oder Steigung eingefärbt werden.
\n
\n• Option zugefügt, um das Aussehen der Navigationsrouten-Linie zu ändern
\n
\n• Dialog \"Streckenaufzeichnung\" aktualisiert
\n
\n</string>
</resources>

View file

@ -4048,4 +4048,19 @@
<string name="trip_recording_logging_interval_info">Agordita periodo de intertempo de registrado, dum kiu OsmAnd petos la nunajn poziciajn datumojn.</string>
<string name="lost_data_warning">Ĉiuj nekonservitaj datumoj perdiĝos.</string>
<string name="trip_recording_save_and_continue">Konservi kaj daŭrigi</string>
<string name="trip_recording_show_start_dialog_setting">Se malŝaltita, registrado komenciĝos tuj post frapeto sur la fenestraĵo aŭ menuero, preterlasante la konfirman dialogon.</string>
<string name="show_start_dialog">Montri komencan dialogon</string>
<string name="specify_color_for_map_mode">Elektu koloron por mapreĝimo: %1$s.</string>
<string name="customize_route_line">Alĝustigi linion de kurso</string>
<string name="shared_string_route_line">Linio de kurso</string>
<string name="route_line_use_map_style_appearance">Por la linio de kurso estos uzata %1$s difinita por la mapstilo: %2$s.</string>
<string name="release_4_0_beta">• ĝisdatigoj OsmAnd Live movitaj al “elŝutoj” → “ĝisdatigoj”
\n
\n• eblo kolorigi spurojn laŭ altitudo, rapido aŭ dekliveco
\n
\n• eblo ŝanĝi aspekton de linio de la navigata kurso
\n
\n• plibonigita ekrano “registri spuron”
\n
\n</string>
</resources>

View file

@ -4047,4 +4047,22 @@
<string name="select_another_colorization">Elige otro tipo de color.</string>
<string name="rendering_attr_noNatureReserveBoundaries_name">Fronteras naturales</string>
<string name="rendering_attr_noNatureReserveBoundaries_description">Oculta fronteras de reservas naturales, áreas protegidas y parques nacionales</string>
<string name="trip_recording_logging_interval_info">El intervalo de registro define el período de tiempo en el que OsmAnd pedirá los datos de la ubicación actual.</string>
<string name="trip_recording_save_and_continue">Guardar y continuar</string>
<string name="lost_data_warning">Se perderán todos los datos no guardados.</string>
<string name="show_start_dialog">Mostrar el diálogo inicial</string>
<string name="trip_recording_show_start_dialog_setting">Si se desactiva, la grabación será iniciada al pulsar el widget o el elemento del menú, saltándose el diálogo de confirmación.</string>
<string name="customize_route_line">Personalizar línea de ruta</string>
<string name="shared_string_route_line">Línea de ruta</string>
<string name="route_line_use_map_style_appearance">La línea de la ruta sería el uso %1$s especificado en el estilo de mapa seleccionado: %2$s.</string>
<string name="specify_color_for_map_mode">Define el color para el modo de mapa: %1$s.</string>
<string name="release_4_0_beta">• Las actualizaciones de OsmAnd Live se movieron a «Descargas &gt; Actualizaciones»
\n
\n • Las trazas ahora se pueden colorear por altitud, velocidad o pendiente.
\n
\n • Se añade opción para cambiar la apariencia de la línea de ruta de navegación
\n
\n • Se actualiza el cuadro de diálogo «Grabación de viaje»
\n
\n</string>
</resources>

View file

@ -3145,7 +3145,7 @@
<string name="poi_reservation_no">Reservación: no</string>
<string name="poi_reservation_members_only">Reservación: sólo miembros</string>
<string name="poi_beds">Camas</string>
<string name="poi_boat_rental_type">Barcos de alquiler</string>
<string name="poi_boat_rental_type">Barcos alquilados</string>
<string name="poi_boat_rental">Alquiler de barcos</string>
<string name="poi_boat_motorboat_rental_yes">Lanchas de motor: sí</string>
<string name="poi_boat_motorboat_rental_no">Lanchas de motor: no</string>

View file

@ -4047,4 +4047,9 @@
<string name="track_has_no_altitude">La traza no contiene datos de altitud.</string>
<string name="track_has_no_speed">La traza no contiene datos de velocidad.</string>
<string name="select_another_colorization">Elige otro tipo de color.</string>
<string name="trip_recording_logging_interval_info">El intervalo de registro define el período de tiempo en el que OsmAnd pedirá los datos de la ubicación actual.</string>
<string name="trip_recording_save_and_continue">Guardar y continuar</string>
<string name="lost_data_warning">Se perderán todos los datos no guardados.</string>
<string name="show_start_dialog">Mostrar el diálogo inicial</string>
<string name="trip_recording_show_start_dialog_setting">Si se desactiva, la grabación será iniciada al pulsar el widget o el elemento del menú, saltándose el diálogo de confirmación.</string>
</resources>

View file

@ -594,8 +594,8 @@
<string name="osm_settings">ویرایش OpenStreetMap</string>
<string name="save_current_track_descr">رد جاری را همین حالا در قالب فایل GPX ذخیره کن.</string>
<string name="save_current_track">ذخیرهٔ رد جاری</string>
<string name="save_track_interval">بازهٔ زمانی ثبت هنگام ناوبری</string>
<string name="save_track_interval_descr">مشخص کنید برای ضبط رد در هنگام ناوبری، فاصلهٔ زمانی ردنگاری چقدر باشد</string>
<string name="save_track_interval">تناوب ردنگاری هنگام ناوبری</string>
<string name="save_track_interval_descr">مشخص کنید برای ضبط رد در هنگام ناوبری، تناوب ردنگاری چقدر باشد</string>
<string name="save_track_to_gpx_descrp">هنگام ناوبری، یک رد GPX به‌صورت خودکار ضبط و در پوشهٔ ردها (tracks) ذخیره می‌شود.</string>
<string name="osm_settings_descr">تنظیمات لازم برای ارتباط با (OpenStreetMap.org (OSM را مشخص کنید.</string>
<string name="data_settings_descr">زبان را مشخص و داده را دانلود/دوباره بار کنید.</string>
@ -615,7 +615,7 @@
<string name="map_widget_lock_screen">قفل</string>
<string name="bg_service_screen_lock">قفل</string>
<string name="bg_service_screen_unlock">قفل‌گشایی</string>
<string name="bg_service_interval">تنظیم فواصل بیدارباش:</string>
<string name="bg_service_interval">تنظیم تناوب بیدارباش:</string>
<string name="select_animate_speedup">سرعت شبیه‌سازی مسیر:</string>
<string name="native_app_allocated_memory_descr">کل حافظهٔ native اختصاص‌یافته به برنامه %1$s مگابایت (دالویک %2$s مگابایت، بقیه %3$s مگابایت).
\nحافظهٔ proportional %4$s مگابایت (حد اندروید %5$s مگابایت، دالویک %6$s مگابایت).</string>
@ -835,8 +835,8 @@
<string name="sd_mounted_ro">کارت حافظه در حالت فقط‌خواندنی است.
\nفقط می‌توانید نقشه‌هایی را ببینید که قبلاً دریافت شده‌اند و نمی‌توانید مناطق جدیدی را دانلود کنید.</string>
<string name="process_navigation_service">خدمات ناوبری OsmAnd</string>
<string name="background_service_int_descr">بازهٔ بیدارباش سرویس پس‌زمینه:</string>
<string name="background_service_int">بازهٔ زمانی بیدارباش GPS</string>
<string name="background_service_int_descr">تناوب بیدارباش برای سرویس پس‌زمینه:</string>
<string name="background_service_int">تناوب بیدارباش GPS</string>
<string name="background_service_provider_descr">شیوهٔ موقعیت‌یابی سرویس پس‌زمینه:</string>
<string name="background_service_provider">ارائه‌دهندهٔ موقعیت</string>
<string name="background_router_service_descr">زمانی که صفحه خاموش است موقعیت شما را ردگیری می‌کند.</string>
@ -913,8 +913,8 @@
<string name="use_fluorescent_overlays">لایه‌های شب‌نما</string>
<string name="local_openstreetmap_settings">یادداشت‌ها یا POIهای OSMای ذخیره‌شده روی دستگاه</string>
<string name="local_openstreetmap_settings_descr">مشاهده و مدیریت POIها یا یادداشت‌های OSMای که روی دستگاه شما قرار دارند.</string>
<string name="live_monitoring_interval_descr">بازهٔ زمانی ردیابی آنلاین را مشخص کنید.</string>
<string name="live_monitoring_interval">بازهٔ زمانی ردیابی آنلاین</string>
<string name="live_monitoring_interval_descr">تناوب ردیابی آنلاین را مشخص کنید.</string>
<string name="live_monitoring_interval">تناوب ردیابی آنلاین</string>
<string name="osmand_long_description_1000_chars">برنامهٔ OsmAnd (مخفف OSM Automated Navigation Directions به‌معنی راهنمای خودکار ناوبری بر پایهٔ OSM) یک نرم‌افزار ناوبری متن‌باز است که به گسترهٔ وسیعی از دادهٔ جهانی OSM دسترسی دارد.
\n
\nتمام دادهٔ نقشه (بُرداری یا کاشی) را می‌توانید برای استفادهٔ آفلاین روی کارت حافظه ذخیره کنید.
@ -1198,7 +1198,7 @@
<string name="share_route_as_gpx">هم‌رسانی مسیر در قالب فایل GPX</string>
<string name="share_route_subject">مسیر از طریق OsmAnd هم‌رسانی شد</string>
<string name="keep_informing_never">دستی (روی فِلِش بزنید)</string>
<string name="keep_informing_descr">فرمان‌های ناوبری در بازه‌های منظم بازگو می‌شود.</string>
<string name="keep_informing_descr">فرمان‌های ناوبری در فاصله‌های زمانی منظم بازگو می‌شود.</string>
<string name="keep_informing">تکرار فرمان‌های ناوبری</string>
<string name="navigation_intent_invalid">قالب نامعتبر: %s</string>
<string name="arrival_distance">اعلام رسیدن</string>
@ -1258,7 +1258,7 @@
<string name="keep_navigation_service">نگه‌داشتن</string>
<string name="stop_navigation_service">توقف</string>
<string name="enable_sleep_mode">فعال‌کردن حالت پس‌زمینهٔ GPS</string>
<string name="gps_wake_up_timer">بازهٔ بیدارباش GPS</string>
<string name="gps_wake_up_timer">تناوب بیدارباش GPS</string>
<string name="sleep_mode_stop_dialog">حالت پس‌زمینهٔ GPS متوقف شود؟</string>
<string name="map_preferred_locale">زبان ارجح برای نقشه</string>
<string name="lang_sw">سواحیلی</string>
@ -1306,9 +1306,9 @@
<string name="rendering_attr_showSurfaceGrade_name">کیفیت راه</string>
<string name="rendering_attr_showSurfaces_name">سطح راه</string>
<string name="rendering_attr_showCycleRoutes_name">مسیرهای دوچرخه</string>
<string name="save_global_track_interval">بازهٔ زمانی ثبت (سراسری)</string>
<string name="save_global_track_interval">تناوب ردنگاری عمومی</string>
<string name="save_track_to_gpx_globally_descr">می‌توانید با استفاده از ابزارک ضبط GPX روی نقشه، ردنگاری در فایل GPX را خاموش یا روشن کنید.</string>
<string name="save_track_interval_globally">بازهٔ زمانی ثبت</string>
<string name="save_track_interval_globally">تناوب ردنگاری</string>
<string name="record_plugin_description">این افزونه یک ابزارک ضبط GPX روی نقشه اضافه می‌کند و با انتخاب آن می‌توانید رد خود را ضبط و در قالب فایل GPX ذخیره کنید. همچنین این امکان را فراهم می‌کند که هنگام مسیریابی، به‌طور خودکار این کار برای شما انجام شود.
\n
\nردهای ضبط‌شده را با دوستان یا برای استفاده در مشارکت‌های OSM هم‌رسانی کنید.
@ -1689,7 +1689,7 @@
<string name="access_smart_autoannounce">اعلام هوشمند خودکار</string>
<string name="access_smart_autoannounce_descr">فقط اگر جهتم از سمت نقطهٔ مقصد منحرف شد، اعلام شود.</string>
<string name="access_autoannounce_period">بازهٔ زمانی اعلام خودکار</string>
<string name="access_autoannounce_period_descr">بازهٔ زمانی کمینی بین اعلام پیام‌ها.</string>
<string name="access_autoannounce_period_descr">تناوب زمانی کمینی بین اعلام پیام‌ها.</string>
<string name="access_default_color">رنگ پیش‌فرض</string>
<string name="access_category_choice">انتخاب دسته</string>
<string name="access_hint_enter_name">نام</string>
@ -3374,7 +3374,7 @@
<string name="monitoring_min_distance_descr_side_effect">اثرات جانبی: بازه‌های توقف یا اصلاً ضبط نخواهند شد یا فقط یک نقطه به‌ازای هر کدام ضبط می‌شود. جابه‌جایی‌های واقعیِ کوچک احتمالاً حذف می‌شود. فایل نهایی اطلاعات کمتری برای پس‌پردازش خواهد داشت و همچنین با حذف نقاط زائد در هنگام ضبط و حفظ بالقوهٔ نقاط غیرواقعی (ناشی از گیرایی ضعیف یا اثرات چیپست GPS) اطلاعات آماریِ فایل بدتر می‌شود.</string>
<string name="monitoring_min_distance_descr_recommendation">توصیه: اگر به جزئیات بیشتر از ۵ متر نیاز ندارید و در زمان توقف نمی‌خواهید داده ضبط کنید، تنظیم حدود ۵ متر احتمالاً خوب جواب بدهد.</string>
<string name="live_monitoring_time_buffer">مدت حافظهٔ تأخیری</string>
<string name="live_monitoring_tracking_interval">بازهٔ زمانی ردیابی</string>
<string name="live_monitoring_tracking_interval">تناوب ردیابی</string>
<string name="live_monitoring_adress">نشانی وب</string>
<string name="live_monitoring_adress_descr">نشانی اینترنتی را با این پارامترها تعریف کنید:
\nlat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}</string>
@ -3813,7 +3813,7 @@
<string name="number_of_gpx_files_selected_pattern">%s فایل رد انتخاب شده است</string>
<string name="monitoring_control_start">ضبط</string>
<string name="disable_recording_once_app_killed_descrp">هنگامی که برنامه را از طریق برنامه‌های اخیر ببندید ضبط رد به‌طور موقت می‌ایستد. (نشانگر اجرای پس‌زمینه از نوار اعلان حذف می‌شود.)</string>
<string name="save_global_track_interval_descr">بازهٔ زمانی برای ضبط رد را انتخاب کنید (که از طریق ابزارک ضبط سفر روی نقشه روشن می‌شود).</string>
<string name="save_global_track_interval_descr">تناوب ردنگاری عمومی را انتخاب کنید (که از طریق ابزارک ضبط سفر روی نقشه روشن می‌شود).</string>
<string name="gpx_monitoring_stop">نگه‌داشتن ضبط سفر</string>
<string name="gpx_monitoring_start">ازسرگیری ضبط سفر</string>
<string name="app_mode_inline_skates">اسکیت این‌لاین</string>
@ -4061,7 +4061,7 @@
<string name="announcement_time_prepare">آمادگی</string>
<string name="announcement_time_off_route">خروج از مسیر</string>
<string name="announcement_time_arrive">رسیدن به مقصد</string>
<string name="announcement_time_intervals">بازه‌های زمانی و مسافتی</string>
<string name="announcement_time_intervals">تناوب زمانی و مسافتی</string>
<string name="announcement_time_descr">زمان اعلام پیام‌های گفتاری به نوع پیام، سرعت ناوبری جاری و سرعت ناوبری پیش‌فرض بستگی دارد.</string>
<string name="announcement_time_title">زمان اعلام پیام</string>
<string name="restart">شروع دوباره</string>
@ -4069,4 +4069,22 @@
<string name="quick_action_coordinates_widget_descr">دکمه‌ای برای آشکار یا پنهان کردن ابزارک مختصات روی نقشه.</string>
<string name="shared_string_interval">بازه</string>
<string name="map_widget_distance_by_tap">مسافت با لمس</string>
<string name="trip_recording_save_and_continue">ذخیره و ادامه</string>
<string name="show_start_dialog">نمایش کادر آغاز</string>
<string name="trip_recording_show_start_dialog_setting">اگر غیرفعال باشد، بلافاصله پس از لمس ابزارک یا آیتم منو، ضبط آغاز می‌شود و کادر تأیید ظاهر نمی‌شود.</string>
<string name="lost_data_warning">تمام دادهٔ ذخیره‌نشده از دست خواهد رفت.</string>
<string name="route_line_use_map_style_appearance">برای خط مسیر از %1$s استفاده می‌شود که در سبک انتخاب‌شده برای نقشه (%2$s) مشخص شده است.</string>
<string name="specify_color_for_map_mode">رنگ حالت نقشهٔ %1$s را مشخص کنید.</string>
<string name="trip_recording_logging_interval_info">تناوب ردنگاری مشخص می‌کند OsmAnd هر چند وقت یک بار دادهٔ مربوط به موقعیت جاری را درخواست کند.</string>
<string name="customize_route_line">سفارشی‌سازی خط مسیر</string>
<string name="shared_string_route_line">خط مسیر</string>
<string name="release_4_0_beta">• روزآمدسازه‌های OsmAnd Live منتقل شد به Downloads &gt; Updates
\n
\n• اکنون می‌توانید رنگ‌بندی ردها را بر اساس ارتفاع، سرعت یا شیب انجام دهید.
\n
\n• گزینه‌ای برای تغییر ظاهر خط مسیر هنگام ناوبری اضافه شد.
\n
\n• کادر «ضبط سفر» روزآمد شد.
\n
\n</string>
</resources>

View file

@ -4030,12 +4030,27 @@
<string name="routing_attr_short_way_description">Itinéraire court optimisé (plus économe en énergie)</string>
<string name="rendering_attr_noNatureReserveBoundaries_description">Masquer les limites des réserves naturelles, des zones protégées et des parcs nationaux</string>
<string name="rendering_attr_noNatureReserveBoundaries_name">Limites naturelles</string>
<string name="select_segments_description">%1$s contient plus d\'un segment, vous devez sélectionner le tronçon nécessaire à la navigation.</string>
<string name="routing_attr_driving_style_description">Sélectionnez le mode de conduite pour avoir l\'itinéraire le plus court, le plus rapide, ou le plus sûr</string>
<string name="quick_action_coordinates_widget_descr">Appuyer pour afficher ou cacher le widget Coordonnées sur la carte.</string>
<string name="snap_to_road_descr">Licône de localisation va se déplacer sur le trajet en cours.</string>
<string name="select_another_colorization">Veuillez sélectionner un autre type de colorisation.</string>
<string name="select_segments_description">%1$s contient plusieurs segments, vous devez sélectionner un tronçon pour la navigation.</string>
<string name="routing_attr_driving_style_description">Sélectionnez un mode de conduite pour calculer l\'itinéraire le plus court, le plus rapide ou le plus sûr.</string>
<string name="quick_action_coordinates_widget_descr">Appuyez pour afficher ou masquer le gadget Coordonnées sur la carte.</string>
<string name="snap_to_road_descr">Licône de positionnement se déplacera sur le trajet en cours.</string>
<string name="select_another_colorization">Veuillez sélectionner une autre coloration.</string>
<string name="trip_recording_logging_interval_info">L\'intervalle denregistrement définit la fréquence à laquelle OsmAnd récupérera les données de localisation.</string>
<string name="trip_recording_save_and_continue">Enregistrer et continuer</string>
<string name="lost_data_warning">Toutes les données non enregistrées seront perdues.</string>
<string name="show_start_dialog">Afficher la boîte de dialogue de démarrage</string>
<string name="trip_recording_show_start_dialog_setting">Si désactivé, l\'enregistrement débutera dès appui sur le gadget ou dans le menu (sans demande de confirmation).</string>
<string name="release_4_0_beta">- Les mises à jour d\'OsmAnd Live ont été déplacées vers \"Téléchargements &gt; Mises à jour\"
\n
\n - Les traces peuvent maintenant être colorées par altitude, vitesse ou pente.
\n
\n - Ajout d\'une option pour modifier l\'apparence de la ligne d\'itinéraire en navigation
\n
\n - Mise à jour de la fenêtre \"Enregistrement du trajet\".
\n
\n</string>
<string name="route_line_use_map_style_appearance">La ligne d\'itinéraire utilisera le %1$s pour le style de carte : %2$s.</string>
<string name="customize_route_line">Personnaliser la ligne d\'itinéraire</string>
<string name="shared_string_route_line">Ligne d\'itinéraire</string>
<string name="specify_color_for_map_mode">Définissez une couleur pour le mode de carte : %1$s.</string>
</resources>

View file

@ -4042,4 +4042,18 @@
<string name="trip_recording_logging_interval_info">A naplózási intervallum az az időköz, amelyben az OsmAnd lekéri az aktuális helyadatokat.</string>
<string name="trip_recording_save_and_continue">Mentés és folytatás</string>
<string name="lost_data_warning">Minden nem mentett adat törlődni fog.</string>
<string name="show_start_dialog">Kezdő párbeszéd megjelenítése</string>
<string name="trip_recording_show_start_dialog_setting">Ha le van tiltva, akkor a felvétel közvetlenül a widget vagy a menüelem megérintése után elindul, kihagyva a megerősítő párbeszédpanelt.</string>
<string name="release_4_0_beta">• Az OsmAnd Live frissítések átköltöztek a „Letöltések&gt; Frissítések” helyre
\n
\n• A nyomvonalak színezhetők magasság, sebesség vagy lejtés szerint.
\n
\n• Módoítható a navigációs útvonal megjelenése
\n
\n• Frissült az „Utazás felvétele” párbeszédpanel
\n
\n</string>
<string name="shared_string_route_line">Útvonal</string>
<string name="customize_route_line">Útvonal testreszabása</string>
<string name="specify_color_for_map_mode">Szín meghatározása a következő térképmódhoz: %1$s.</string>
</resources>

View file

@ -2163,7 +2163,6 @@
<string name="shared_string_time">Tempo</string>
<string name="total_distance">Distanza totale</string>
<string name="routing_attr_height_obstacles_name">Utilizza dati altitudine</string>
<string name="shared_string_time_span">Intervallo di tempo</string>
<string name="shared_string_max">Massimo</string>
<string name="shared_string_start_time">Ora d\'inizio</string>
@ -3930,4 +3929,112 @@
<string name="open_place_reviews">OpenPlaceReviews</string>
<string name="opr_use_dev_url">Usa test.openplacereviews.org</string>
<string name="login_open_place_reviews">Accedi a OpenPlaceReviews</string>
<string name="reverse_all_points">Inverti tutti i punti</string>
<string name="voice_prompts_timetable">Tempo degli avvisi vocali</string>
<string name="profile_type_osmand_string">Profilo OsmAnd</string>
<string name="profile_type_user_string">Profilo utente</string>
<string name="profile_by_default_description">Seleziona il profilo, sarà utilizzato all\'avvio dell\'app.</string>
<string name="shared_string_last_used">Ultimo utilizzato</string>
<string name="routing_attr_prefer_hiking_routes_description">Preferisci i percorsi escursionistici</string>
<string name="routing_attr_prefer_hiking_routes_name">Preferisci i percorsi escursionistici</string>
<string name="add_online_routing_engine">Aggiungi un motore di navigazione online</string>
<string name="edit_online_routing_engine">Modifica il motore di navigazione online</string>
<string name="shared_string_subtype">Sottocategoria</string>
<string name="shared_string_vehicle">Veicolo</string>
<string name="shared_string_api_key">Chiave API</string>
<string name="shared_string_server_url">URL del server</string>
<string name="shared_string_enter_param">Immetti un parametro</string>
<string name="keep_it_empty_if_not">"Mantienilo vuoto se non lo fosse"</string>
<string name="online_routing_example_hint">URL con tutti i parametri saranno come questo:</string>
<string name="test_route_calculation">Prova il calcolo del percorso</string>
<string name="routing_engine_vehicle_type_driving">Driving</string>
<string name="routing_engine_vehicle_type_foot">A piedi</string>
<string name="routing_engine_vehicle_type_bike">Bici</string>
<string name="routing_engine_vehicle_type_car">Auto</string>
<string name="copy_address">Copia l\'indirizzo</string>
<string name="online_routing_engine">Motori di navigazione online</string>
<string name="online_routing_engines">Motori di navigazione online</string>
<string name="shared_string_folders">Cartelle</string>
<string name="select_folder">Seleziona una cartella</string>
<string name="select_folder_descr">Seleziona una cartella o aggiungine una nuova</string>
<string name="shared_string_empty">Vuoto</string>
<string name="analyze_by_intervals">Analizza per intervalli</string>
<string name="upload_to_openstreetmap">Carica in OpenStreetMap</string>
<string name="edit_track">Modifica la traccia</string>
<string name="rename_track">Rinomina la traccia</string>
<string name="change_folder">Cambia cartella</string>
<string name="shared_string_sec">sec</string>
<string name="announcement_time_passing">Passing</string>
<string name="announcement_time_approach">Approach</string>
<string name="announcement_time_prepare_long">Long prepare</string>
<string name="announcement_time_prepare">Preparazione</string>
<string name="announcement_time_off_route">Fuoristrada</string>
<string name="announcement_time_intervals">Intervalli di tempo e distanza</string>
<string name="announcement_time_descr">Il tempo dell\'annuncio per i diversi avvisi dipende dal tipo di avviso, la velocità attuale e la velocità preimpostata.</string>
<string name="announcement_time_title">Tempo dell\'annuncio</string>
<string name="routing_engine_vehicle_type_cycling_electric">Bici elettrica</string>
<string name="routing_engine_vehicle_type_cycling_mountain">Mountain cycling</string>
<string name="routing_engine_vehicle_type_cycling_road">Bici da corsa</string>
<string name="routing_engine_vehicle_type_cycling_regular">Regular cycling</string>
<string name="routing_engine_vehicle_type_small_truck">Piccolo furgone</string>
<string name="context_menu_read_full">Leggi tutto</string>
<string name="select_segments">Seleziona segmenti</string>
<string name="select_segments_description">%1$s contiene più di un segmento, devi selezionare la parte necessaria per la navigazione.</string>
<string name="segments_count">Segmento %1$d</string>
<string name="activity_type_water_name">Water</string>
<string name="activity_type_winter_name">Winter</string>
<string name="activity_type_snowmobile_name">Gatto delle nevi</string>
<string name="activity_type_riding_name">Riding</string>
<string name="activity_type_racing_name">Racing</string>
<string name="activity_type_mountainbike_name">Mountainbike</string>
<string name="activity_type_cycling_name">Bici</string>
<string name="activity_type_hiking_name">Escursione</string>
<string name="activity_type_running_name">Corsa</string>
<string name="activity_type_walking_name">A piedi</string>
<string name="activity_type_offroad_name">Fuoristrada</string>
<string name="activity_type_motorbike_name">Moto</string>
<string name="activity_type_car_name">Auto</string>
<string name="temporary_conditional_routing_descr">Utilizza le restrizioni stradali che sono attive attualmente sulla mappa</string>
<string name="routing_attr_short_way_description">Percorso più breve ottimizzato (risparmio energia)</string>
<string name="routing_attr_driving_style_description">Scegli il tipo di guida per ottenere percorsi più brevi, veloci e sicuri</string>
<string name="snap_to_road_descr">L\'icona della localizzazione attuale sarà incollata al percorso corrente</string>
<string name="map_orientation_threshold_descr">Non ruotare la visualizzazione della mappa se la velocità è inferiore a un valore</string>
<string name="restart">Riavvia</string>
<string name="shared_strings_all_regions">Tutte le regioni</string>
<string name="delete_number_files_question">Cancellare %1$d file\?</string>
<string name="track_recording_stop_without_saving">Ferma senza salvare</string>
<string name="track_recording_save_and_stop">Salva e ferma la registrazione</string>
<string name="track_recording_title">Registrazione della traccia fermata</string>
<string name="track_recording_description">Confermi di volere fermare la registrazione\?
\nTutti i dati non salvati saranno persi.</string>
<string name="on_pause">In pausa</string>
<string name="app_restart_required">Il riavvio dell\'app è richiesto per applicare alcune impostazioni.</string>
<string name="routing_attr_height_obstacles_description">Il calcolo del percorso può evitare le salite ripide.</string>
<string name="quick_action_coordinates_widget_descr">Un interruttore per mostrare o nascondere il widget delle coordinate sulla mappa.</string>
<string name="map_widget_distance_by_tap">Distanza dal tocco</string>
<string name="latest_openstreetmap_update">Ultimo aggiornamento OpenStreetMap disponibile:</string>
<string name="updated">Aggiornamento: %s</string>
<string name="last_time_checked">Ultimo controllo: %s</string>
<string name="update_frequency">Frequenza di aggiornamento</string>
<string name="live_update_frequency_week_variant">Gli aggiornamenti della mappa saranno controllati ogni settimana. Il prossimo %1$s in %2$s.</string>
<string name="live_update_frequency_day_variant">Gli aggiornamenti della mappa saranno controllati ogni giorno. La prossima volta %1$s in %2$s.</string>
<string name="live_update_frequency_hour_variant">Gli aggiornamenti alla mappa saranno controllati ogni ora. Il prossimo alle %1$s in %2$s.</string>
<string name="delete_updates">Elimina aggiornamenti</string>
<string name="live_update_delete_updates_msg">Confermi di voler eliminare tutti %s gli aggiornamenti live\?</string>
<string name="purchases">Acquisti</string>
<string name="select_category_descr">Seleziona la categoria o aggiungine una nuova</string>
<string name="track_recording_will_be_continued">La registrazione sarà continuata.</string>
<string name="copy_poi_name">Copia il nome del PDI</string>
<string name="quick_action_show_hide_title">Mostra/nascondi</string>
<string name="shared_string_interval">Intervallo</string>
<string name="rendering_attr_noNatureReserveBoundaries_description">Nascondi i confini delle riserve naturali, delle aree protette e dei parchi naturali.</string>
<string name="rendering_attr_noNatureReserveBoundaries_name">Confini naturali</string>
<string name="track_has_no_altitude">La traccia non contiene i dati di altitudine.</string>
<string name="track_has_no_speed">La traccia non contiene i dati di velocità.</string>
<string name="select_another_colorization">Prego selezionare un altro tipo di colorazione.</string>
<string name="trip_recording_logging_interval_info">"L\'intervallo di registrazione imposta la frequenza con cui OsmAnd chiederà i dati della posizione attuale."</string>
<string name="trip_recording_save_and_continue">Salva e continua</string>
<string name="lost_data_warning">Tutti i dati non salvati andranno persi.</string>
<string name="show_start_dialog">Mostra la finestra di avvio</string>
<string name="trip_recording_show_start_dialog_setting">Se disabilitato, la registrazione inizierà appena tappato sul widget o sul menu, saltando la finestra di configurazione.</string>
</resources>

View file

@ -4051,4 +4051,18 @@
<string name="trip_recording_logging_interval_info">הגדרת הפרש קבוע בין הבקשות של OsmAnd לקבלת נתוני המיקום הנוכחיים.</string>
<string name="trip_recording_save_and_continue">לשמור ולהמשיך</string>
<string name="lost_data_warning">כל הנתונים שלא נשמרו יאבדו.</string>
<string name="show_start_dialog">להציג חלונית פתיחה</string>
<string name="trip_recording_show_start_dialog_setting">אם האפשרות מושבתת, ההקלטה תתחיל מיד לאחר הנגיעה בווידג׳ט או בפריט שבתפריט תוך דילוג על חלונית האישור.</string>
<string name="customize_route_line">להתאים קו מסלול אישית</string>
<string name="shared_string_route_line">קו מסלול</string>
<string name="specify_color_for_map_mode">לציין צבע למצב מפה: %1$s.</string>
<string name="release_4_0_beta">• העדכונים החיים של OsmAnd הועברו אל „הורדות &gt; עדכונים”
\n
\n • אפשר לצבוע מסלולים לפי גובה, מהירות או שיפוע.
\n
\n • נוספה אפשרות לשנות את מראה קו מסלול הניווט
\n
\n • החלונית „הקלטת מסלול” עודכנה
\n
\n</string>
</resources>

View file

@ -3082,7 +3082,7 @@ POIの更新は利用できません</string>
<string name="quick_action_need_to_add_item_to_list">『クイックアクション』のリストに最低ひとつは項目を設定する必要があります</string>
<string name="routing_attr_piste_type_downhill_name">アルペン/ダウンヒルスキー</string>
<string name="routing_attr_piste_type_downhill_description">アルペンスキーまたはダウンヒルスキーに用の斜面(ゲレンデ)やスキーリフトへの道</string>
<string name="routing_attr_piste_type_nordic_name">クロスカントリー/ノルディックスキー</string>
<string name="routing_attr_piste_type_nordic_name">クロスカントリースキーとノルディックスキー</string>
<string name="routing_attr_piste_type_nordic_description">ノルディックスキーやクロスカントリースキー用コースやそれらに用いられる小道などです。</string>
<string name="routing_attr_piste_type_skitour_name">スキーツーリング</string>
<string name="routing_attr_piste_type_skitour_description">スキーツーリング用ルートです。</string>
@ -3354,9 +3354,9 @@ POIの更新は利用できません</string>
<string name="route_recalculation">ルート再計算</string>
<string name="accessibility_announce">案内</string>
<string name="login_and_pass">ユーザー名とパスワード</string>
<string name="plugin_global_prefs_info">これらの設定はアプリ全般に関するもので、すべてのプロファイルに適用されます</string>
<string name="plugin_global_prefs_info">これらのプラグイン設定はアプリ全般に関するもので、すべてのプロファイルに適用されます</string>
<string name="osm_editing">OSM編集</string>
<string name="osm_edits_view_descr">まだアップロードしていない編集やOSMバグを%1$sで表示できます。アップロードされた後にはOsmAndに表示されません</string>
<string name="osm_edits_view_descr">まだアップロードしていない編集やOSMバグを%1$sで表示できます。アップロードされた変更部分は表示されなくなります</string>
<string name="app_mode_osm">OSM</string>
<string name="select_nav_icon_descr">ナビゲーションまたは移動中に表示されるアイコンです。</string>
<string name="select_map_icon_descr">静止時に表示されるアイコンです。</string>
@ -3799,8 +3799,8 @@ POIの更新は利用できません</string>
<string name="sort_last_modified">最終更新日</string>
<string name="sort_name_descending">名称: 降順(Z-A)</string>
<string name="sort_name_ascending">名称: 昇順(A-Z)</string>
<string name="use_native_pt_desc">Java(セーフモード)での公共交通機関ルーティング計算に切り替えます</string>
<string name="perform_oauth_authorization_description">OsmEdit機能を利用するには、OAuthでのログインが必要です。</string>
<string name="use_native_pt_desc">Java(セーフモード)での公共交通機関ルー計算に切り替えます</string>
<string name="perform_oauth_authorization_description">OsmEdit機能を利用するには、OAuth方式でのログインが必要です。</string>
<string name="perform_oauth_authorization">OAuthでログイン</string>
<string name="clear_osm_token">OpenStreetMapOAuthトークンを消去する</string>
<string name="osm_edit_logout_success">ログアウトしました</string>
@ -3832,20 +3832,20 @@ POIの更新は利用できません</string>
<string name="use_login_password">ユーザー名とパスワードを使用する</string>
<string name="user_login">ログイン</string>
<string name="manage_subscription">サブスクリプションの管理</string>
<string name="subscription_payment_issue_title">サブスクリプションに際し問題が発生しています。ボタンをタップしてGooglePlayサブスクリプション設定に移動し、お支払い方法を確認してください</string>
<string name="subscription_payment_issue_title">ボタンをタップしてGoogle Playで支払い方法を設定し、サブスクリプションを修正します</string>
<string name="subscription_expired_title">OsmAndLiveサブスクリプションの有効期限が切れました</string>
<string name="subscription_paused_title">OsmAndLiveサブスクリプションが一時停止されました</string>
<string name="subscription_on_hold_title">OsmAndLiveサブスクリプションは保留中です</string>
<string name="markers_history">マーカーの履歴</string>
<string name="send_files_to_openstreetmap">GPXファイルをOpenStreetMapに送信</string>
<string name="enter_text_separated">タグはカンマで区切って入力してください。</string>
<string name="gpx_upload_public_visibility_descr">パブリック状態は、経路がGPS経路およびGPS経路リストに公開を目的として表示されることを示唆しています。 APIを介して提供されるデータは、経路ページを参照していません。経路ポイントのタイムスタンプは、パブリックGPS APIからは入手できず、各地点は時系列で並べられることはありません。ただし他のユーザーは、公開経路リストとその中のタイムスタンプから生の経路データをダウンロードすることができます</string>
<string name="gpx_upload_identifiable_visibility_descr">識別可能状態は、経路がGPS経路およびパブリックGPS経路リストに表示されることを示唆しています。他のユーザーは現在の経路をダウンロードして、ユーザー名とリンクできます。 trackpoints APIを介して配信されるデータは、元の経路追跡ページを参照します。経路ポイントのタイムスタンプは、パブリックGPSAPIを介して入手できます。</string>
<string name="gpx_upload_private_visibility_descr">プライベート状態は、経路がパブリックリストに表示されないことを示唆しています。経路ポイントはタイムスタンプなしでパブリックGPS APIを介して引き続き利用できますが、時系列で並べられることはありません。</string>
<string name="gpx_upload_trackable_visibility_descr">追跡可能状態にある場合は経路が公開リストに表示されないことを示唆していますが、経路ポイントは自体はタイムスタンプ付きの公開GPSAPIを介して引き続き利用できます。他のユーザーからはあなたに直接関連付けることはできず、自身の処理済み経路ポイントのみをダウンロードできます。</string>
<string name="gpx_upload_public_visibility_descr">\"公開 \"状態は、追跡機能にてユーザーのGPS追跡、公開GPS追跡リスト、および生データのタイムスタンプ付き公開追跡リストに公開されることを意味します。APIを介して提供されるデータはユーザーの追跡ページを参照しません。追跡ポイントのタイムスタンプはパブリックGPS APIでは利用できず、また追跡ポイントは時系列に並んでいません</string>
<string name="gpx_upload_identifiable_visibility_descr">\"識別可能\"状態は、経路がGPS経路およびパブリックGPS経路リストに表示されることを示唆しています。他のユーザーは現在の経路をダウンロードして、ユーザー名とリンクできます。経路ポイント APIを介して配信されるデータは、元の経路追跡ページを参照します。経路ポイントのタイムスタンプは、公開されているGPS APIを通じて入手できます。</string>
<string name="gpx_upload_private_visibility_descr">\"プライベート\"状態は、経路が公開リストに表示されないことを示唆しています。経路ポイントはタイムスタンプなしでパブリックGPS APIを介して引き続き利用できますが、時系列で並べられることはありません。</string>
<string name="gpx_upload_trackable_visibility_descr">\"追跡可能\"状態は、経路が公開リストに表示されることはありませんが、公開されているGPS APIからのダウンロードを通じて、タイムスタンプ付きの経路ポイント(個人と直接関連付けることはできません)を処理出来ることを意味します。</string>
<string name="login_account">アカウント</string>
<string name="message_graph_will_be_available_after_recalculation">ルートが再計算されるのを待ちます
\nグラフは再計算後に利用できるようになります。</string>
<string name="message_graph_will_be_available_after_recalculation">しばらくお待ち下さい
\nグラフはルートが再計算された後に利用できるようになります。</string>
<string name="use_dev_url_descr">OSM通知/ POI / GPXのアップロードをテストする場合、openstreetmap.orgではなくdev.openstreetmap.orgを使用するよう切り替えます。</string>
<string name="use_dev_url">dev.openstreetmap.orgを使用</string>
<string name="announcement_time_prepare">次々回案内(中距離)</string>
@ -3953,4 +3953,103 @@ POIの更新は利用できません</string>
<string name="trip_recording_logging_interval_info">ログ記録間隔は、OsmAndが現在の位置データを要求する期間を設定します。</string>
<string name="trip_recording_save_and_continue">保存して続行</string>
<string name="lost_data_warning">保存されていないデータはすべて失われます。</string>
<string name="osm_edit_close_note">OSMメモを閉じる</string>
<string name="osm_edit_comment_note">OSMメモへのコメント</string>
<string name="osm_login_descr">安全なOAuth方式を使用してログインするか、アプリから直接ログインする方法を選べます。</string>
<string name="shared_string_add_photo">写真の追加</string>
<string name="register_on_openplacereviews">OpenPlaceReviews.orgに登録</string>
<string name="register_on_openplacereviews_desc">写真はOpenPlaceReviews.orgオープンデータプロジェクトを介して提供されています。そのため写真をアップロードするためには前述のウェブサイトにログインする必要があります。</string>
<string name="register_opr_create_new_account">新しいアカウントを作成</string>
<string name="register_opr_have_account">私はすでにアカウントを持っています</string>
<string name="shared_string_search_history">検索履歴</string>
<string name="app_mode_kayak">カヤック</string>
<string name="app_mode_motorboat">モーターボート</string>
<string name="cannot_upload_image">画像をアップロードできません。しばらくしてからもう一度お試しください</string>
<string name="select_picture">写真を選択</string>
<string name="shared_string_resources">リソース</string>
<string name="approximate_file_size">おおよそのファイルサイズ</string>
<string name="select_data_to_export">ファイルとしてエクスポートしたいデータを選択します。</string>
<string name="file_size_needed_for_import">インポートに必要</string>
<string name="export_not_enough_space_descr">お使いの端末には%1$sしか容量がありません。空き容量を確保するか、エクスポートするアイテムの選択を減らしてください。</string>
<string name="export_not_enough_space">十分な空き容量がありません</string>
<string name="select_groups_for_import">インポートするグループを選択します。</string>
<string name="select_items_for_import">インポートするアイテムを選択します。</string>
<string name="add_to_mapillary">Mapillaryに追加</string>
<string name="add_to_opr">OpenPlaceReviewsに追加</string>
<string name="add_photos_descr">OsmAndは、いくつかのソースからの写真を表示します:
\nOpenPlaceReviewsはPOIの写真;
\nMapillaryは投稿されたストリート画像;
\nWeb / WikimediaはOpenStreetMapデータのPOIの写真を利用しています。</string>
<string name="plan_route_split_before">この前で分割</string>
<string name="plan_route_split_after">この後で分割</string>
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
<string name="app_mode_light_aircraft">軽飛行機</string>
<string name="plan_route_join_segments">セグメントの結合</string>
<string name="plan_route_add_new_segment">新規セグメントの追加</string>
<string name="profile_type_osmand_string">OsmAndプロファイル</string>
<string name="profile_type_user_string">ユーザープロファイル</string>
<string name="release_3_9">• 設定、リソース、お気に入りを含むすべてのデータをエクスポートおよびインポートするオプションを追加
\n
\n• ルートの計画:ルートを含むトラックセグメントのグラフ、および複数のトラックセグメントを作成および編集する機能を追加
\n
\n• OpenStreetMapのOAuth認証方法を追加し、OSMダイアログのUIを改善
\n
\n• お気に入りのカスタムカラーのサポート、経由地点の追跡など
\n
\n</string>
<string name="reverse_all_points">すべての地点を逆転</string>
<string name="profile_by_default_description">アプリ起動時に適用されるプロファイルを選択します。</string>
<string name="shared_string_last_used">最後に利用</string>
<string name="routing_attr_prefer_hiking_routes_description">ハイキング向けのルートを選択します</string>
<string name="routing_attr_prefer_hiking_routes_name">ハイキングコースを優先</string>
<string name="routing_attr_allow_streams_description">小川と排水溝も水路とみなします</string>
<string name="routing_attr_allow_streams_name">小川と排水溝も許可</string>
<string name="routing_attr_allow_intermittent_name">常に水が流れているわけではない水路も許可</string>
<string name="routing_attr_allow_intermittent_description">常に水の流れがあるわけではない場所も水路として見なします</string>
<string name="add_online_routing_engine">オンラインルーティングエンジンの追加</string>
<string name="edit_online_routing_engine">オンラインルーティングエンジンの編集</string>
<string name="shared_string_subtype">サブタイプ</string>
<string name="shared_string_vehicle">車両</string>
<string name="shared_string_api_key">APIキー</string>
<string name="shared_string_server_url">サーバーURL</string>
<string name="shared_string_enter_param">パラメーターの入力</string>
<string name="keep_it_empty_if_not">APIキーがない場合は空白のままにします</string>
<string name="online_routing_example_hint">パラメータを含むURLは次のようになります:</string>
<string name="test_route_calculation">ルート計算のテスト</string>
<string name="routing_engine_vehicle_type_driving">ドライブ</string>
<string name="routing_engine_vehicle_type_foot">徒歩</string>
<string name="routing_engine_vehicle_type_bike">自転車</string>
<string name="routing_engine_vehicle_type_car"></string>
<string name="copy_address">住所をコピー</string>
<string name="online_routing_engine">オンラインルーティングエンジン</string>
<string name="online_routing_engines">オンラインルーティングエンジン</string>
<string name="shared_string_folders">フォルダー</string>
<string name="select_folder_descr">フォルダーを選択、または新しいフォルダを追加します</string>
<string name="select_folder">フォルダーの選択</string>
<string name="shared_string_empty"></string>
<string name="analyze_by_intervals">分割間隔を分析評価する</string>
<string name="upload_to_openstreetmap">OpenStreetMapにアップロード</string>
<string name="edit_track">経路の編集</string>
<string name="rename_track">経路名の変更</string>
<string name="change_folder">フォルダーの変更</string>
<string name="show_start_dialog">開始ダイアログを表示</string>
<string name="trip_recording_show_start_dialog_setting">無効にした場合、ウィジェットまたはメニュー項目をタップするとすぐに記録が始まり、確認のダイアログは表示されません。</string>
<string name="use_native_pt">ネイティブ公共交通機関モードの展開</string>
<string name="shared_string_graph">グラフ</string>
<string name="message_need_calculate_route_before_show_graph">%1$sデータは道路でのみ利用可能です。グラフを表示するには、\"地点間ルート\"を使用してルートを計算する必要があります。</string>
<string name="app_mode_gap">ギャップ</string>
<string name="voice_prompts_timetable">音声アナウンスの間隔</string>
<string name="customize_route_line">ルートラインのカスタマイズ</string>
<string name="shared_string_route_line">ルートライン</string>
<string name="route_line_use_map_style_appearance">ルートライン指定は%1$s、選択したマップスタイルは:%2$s</string>
<string name="specify_color_for_map_mode">マップモードの色指定: %1$s</string>
<string name="release_4_0_beta">• OsmAndLiveのアップデートは\"ダウンロード\"\"更新\"に移動
\n
\n• 経路は、高度、速度、または傾斜によって色付けされる可能性あり
\n
\n• ナビゲーションルートラインの外観を変更するオプションが追加
\n
\n• \"旅程記録\"ダイアログを更新
\n
\n</string>
</resources>

View file

@ -3941,4 +3941,8 @@
<string name="routing_attr_height_obstacles_description">Ruting kan unngå kraftige oppoverbakker.</string>
<string name="trip_recording_save_and_continue">Lagre og fortsett</string>
<string name="lost_data_warning">All ulagret data vil gå tapt.</string>
<string name="show_start_dialog">Vis startdialog</string>
<string name="customize_route_line">Tilpass rutelinje</string>
<string name="shared_string_route_line">Rutelinje</string>
<string name="specify_color_for_map_mode">Angi farge for kartmodus: %1$s.</string>
</resources>

View file

@ -4032,4 +4032,7 @@
<string name="track_has_no_altitude">De track bevat geen hoogtegegevens.</string>
<string name="track_has_no_speed">De track bevat geen snelheidsgegevens.</string>
<string name="select_another_colorization">Selecteer een ander inkleuring.</string>
<string name="trip_recording_show_start_dialog_setting">Indien uitgeschakeld zal de opname starten na een tik op de widget of het menu-item, waarbij er geen bevestiging zal worden gevraagd.</string>
<string name="trip_recording_save_and_continue">Opslaan en doorgaan</string>
<string name="lost_data_warning">Niet-opgeslagen gegevens zullen verloren gaan.</string>
</resources>

View file

@ -4042,4 +4042,20 @@
<string name="segments_count">Segmento %1$d</string>
<string name="trip_recording_save_and_continue">Salvar e continuar</string>
<string name="lost_data_warning">Todos os dados não salvos serão perdidos.</string>
<string name="trip_recording_logging_interval_info">O intervalo de registro define o período de tempo no qual OsmAnd solicitará os dados de posição de localização atual.</string>
<string name="show_start_dialog">Mostrar caixa de diálogo inicial</string>
<string name="trip_recording_show_start_dialog_setting">Se desativado, a gravação começará logo após tocar no widget ou item de menu, pulando a caixa de diálogo de confirmação.</string>
<string name="customize_route_line">Personalizar linha de rota</string>
<string name="shared_string_route_line">Linha de rota</string>
<string name="route_line_use_map_style_appearance">A linha de rota seria usada %1$s especificado no estilo de mapa selecionado: %2$s.</string>
<string name="specify_color_for_map_mode">Especifique a cor para o modo de mapa: %1$s.</string>
<string name="release_4_0_beta">"• As atualizações do OsmAnd Live foram movidas para \"Downloads &gt; Atualizações\"
\n
\n • As trilhas agora podem ser coloridas por altitude, velocidade ou inclinação.
\n
\n • Adicionada opção para alterar a aparência da linha da rota de navegação
\n
\n • Caixa de diálogo \"Gravação de viagem\" atualizada
\n
\n"</string>
</resources>

View file

@ -3886,4 +3886,7 @@
<string name="poi_piste_name">Название трассы</string>
<string name="poi_piste_ski_jump">Лыжный трамплин</string>
<string name="poi_gladed_yes">По лесу: да</string>
<string name="poi_wildlife_crossing_bat_tunnel">Туннель летучих мышей</string>
<string name="poi_wildlife_crossing_bat_bridge">Мост летучих мышей</string>
<string name="poi_conference_centre">Конференц-центр</string>
</resources>

View file

@ -597,7 +597,7 @@
<string name="reading_cached_tiles">Чтение кешированных растровых карт…</string>
<string name="version_index_is_big_for_memory">Недостаточно памяти для локальной карты «{0}»</string>
<string name="version_index_is_not_supported">Версия локальной карты «{0}» не поддерживается</string>
<string name="osmand_routing_experimental">Офлайн-навигация OsmAnd — это экспериментальная функция, и она не работает на дистанциях больше 20 км.
<string name="osmand_routing_experimental">Локальная навигация OsmAnd — это экспериментальная функция, и она не работает на дистанциях больше 20 км.
\n
\nНавигация временно переключена на онлайн-сервис CloudMade.</string>
<string name="specified_dir_doesnt_exist">Невозможно найти указанную папку.</string>
@ -1528,7 +1528,7 @@
<string name="rendering_attr_subwayMode_name">Линии метро</string>
<string name="continue_navigation">Продолжить навигацию</string>
<string name="pause_navigation">Приостановить навигацию</string>
<string name="rendering_attr_alpineHiking_description">Отрисовка дорог cогласно шкале SAC.</string>
<string name="rendering_attr_alpineHiking_description">Отрисовка дорог согласно шкале SAC.</string>
<string name="rendering_attr_hikingRoutesOSMC_description">Отрисовка дорог согласно трассам OSMC.</string>
<string name="arrival_distance_factor_early">Раннее</string>
<string name="arrival_distance_factor_normally">По умолчанию</string>
@ -1580,7 +1580,10 @@
<string name="text_size">Размер текста</string>
<string name="local_index_description">Нажмите на любой элемент списка для просмотра более подробной информации, долго удерживайте, чтобы поместить в архив или удалить. Текущие данные на устройстве (%1$s свободно):</string>
<string name="anonymous_user">Анонимный пользователь</string>
<string name="anonymous_user_hint">Анонимному пользователю недоступно:\n- создание групп;\n- синхронизация групп и устройств с сервером;\n- управление группами и устройствами в личном кабинете.</string>
<string name="anonymous_user_hint">Анонимному пользователю недоступно:
\n— создание групп;
\n— синхронизация групп и устройств с сервером;
\n— управление группами и устройствами в личном кабинете.</string>
<string name="logged_as">Вы вошли как %1$s</string>
<string name="rendering_category_routes">Маршруты</string>
<string name="rendering_category_details">Детали</string>
@ -1894,7 +1897,7 @@
<string name="shared_string_skip">Пропустить</string>
<string name="app_name_osmand">OsmAnd</string>
<string name="plugin_settings">Плагины</string>
<string name="offline_maps_and_navigation">Офлайн-карты
<string name="offline_maps_and_navigation">Локальные карты
\nи навигация</string>
<string name="building_number">Номер дома</string>
<string name="rendering_attr_pisteGrooming_name">Тип лыжной трассы</string>
@ -2385,7 +2388,7 @@
<string name="shared_string_road">Дорога</string>
<string name="show_guide_line">Показывать направляющие линии</string>
<string name="rendering_value_darkyellow_name">Тёмно-жёлтый</string>
<string name="osmand_extended_description_part8">OsmAnd — это активно развивающийся проект с открытым исходным кодом. Благодаря открытости, каждый может внести свой вклад в приложение, сообщая об ошибках, совершенствуя перевод или разрабатывая новые возможности. Кроме того, проект финансируется за счет денежных взносов с целью разработки и тестирования новых функций.
<string name="osmand_extended_description_part8">OsmAnd — это активно развивающийся проект с открытым исходным кодом. Благодаря открытости, каждый может внести свой вклад в приложение, сообщая об ошибках, совершенствуя перевод или разрабатывая новые возможности. Кроме того, проект финансируется за счёт денежных взносов с целью разработки и тестирования новых функций.
\nПримерное покрытие и качество карт:
\n • Западная Европа: ****
\n • Восточная Европа: ***
@ -2398,7 +2401,7 @@
\n • Африка: **
\n • Антарктида:
\nДля скачивания доступно большинство стран мира!
\n Получите надежный навигатор в своей стране — будь то Франция, Германия, Мексика, Великобритания, Испания, Нидерланды, США, Россия, Бразилия или любая другая.</string>
\n Получите надёжный навигатор в своей стране — будь то Франция, Германия, Мексика, Великобритания, Испания, Нидерланды, США, Россия, Бразилия или любая другая.</string>
<string name="osmand_plus_extended_description_part8">Примерная карта покрытия и качество:
\n • Западная Европа: ****
\n • Восточная Европа: ***
@ -2520,7 +2523,7 @@
\n• Функция записи GPX позволяет вам записывать ваше путешествие и делиться им
\n• Через приложение вы можете включить отображение контурных линий и затемнение рельефа</string>
<string name="osmand_extended_description_part6">Прогулки, пеший туризм, экскурсии
\n• Карта показывает пешеходные и треккинговые тропы
\n• Карта показывает пешеходные и трекинговые тропы
\n• Википедия на предпочитаемом вами языке может многое рассказать вам во время экскурсии по городу
\n• Остановки общественного транспорта (автобус, трамвай, поезд), включая названия маршрутов, помогут ориентироваться в новом городе
\n• GPS навигация в пешеходном режиме высчитывает маршрут, используя пешеходные тропы
@ -2944,7 +2947,7 @@
<string name="routing_attr_avoid_ferry_name">Без паромов</string>
<string name="routing_attr_avoid_ferry_description">Исключить паромы</string>
<string name="send_log">Отправить журнал</string>
<string name="public_transport_no_route_title">К сожалению OsmAnd не смог найти подходящий для вас маршрут.</string>
<string name="public_transport_no_route_title">К сожалению, OsmAnd не смог найти подходящий для вас маршрут.</string>
<string name="public_transport_try_ped">Попробуйте пройти навигацию пешком.</string>
<string name="public_transport_try_change_settings">Попробуйте изменить настройки.</string>
<string name="public_transport_calc_pedestrian">Рассчитать маршрут ходьбы</string>
@ -3772,7 +3775,7 @@
<string name="all_previous_segments_will_be_recalc">Все предыдущие сегменты будут пересчитаны с использованием выбранного профиля.</string>
<string name="open_saved_track">Открыть сохранённый трек</string>
<string name="disable_recording_once_app_killed_descrp">Остановка записи GPX при принудительном закрытии (через последние приложения). (Из панели уведомлений Android исчезнет значок фонового режима.)</string>
<string name="shared_string_is_saved">сохранен</string>
<string name="shared_string_is_saved">сохранён</string>
<string name="one_point_error">Добавьте хотя бы две точки.</string>
<string name="shared_string_redo">Повторить</string>
<string name="release_3_8">• Обновлённая функция планирования маршрута позволяет применять к сегментам разные режимы навигации и настраивать привязку к дорогам
@ -3794,7 +3797,7 @@
<string name="sort_name_descending">Имя: Я - А</string>
<string name="sort_name_ascending">Имя: А - Я</string>
<string name="start_finish_icons">Значки старта и финиша</string>
<string name="contour_lines_thanks">Спасибо за покупку \'Контурных линий\'</string>
<string name="contour_lines_thanks">Спасибо за покупку «Контурных линий»</string>
<string name="routing_attr_avoid_footways_description">Избегать пешеходных дорожек</string>
<string name="routing_attr_avoid_footways_name">Избегать пешеходных дорожек</string>
<string name="osm_live_payment_desc_hw">Подписка оплачивается за выбранный период. Отмените её в AppGallery в любое время.</string>
@ -3863,7 +3866,7 @@
<string name="add_to_opr">Добавить в OpenPlaceReviews</string>
<string name="add_to_mapillary">Добавить в Mapillary</string>
<string name="add_photos_descr">OsmAnd показывает фотографии из нескольких источников:
\nOpenPlaceReviews — фотогорафии POI;
\nOpenPlaceReviews — фотографии POI;
\nMapillary — изображения улиц;
\nWeb / Wikimedia — фотографии POI по данным OpenStreetMap.</string>
<string name="shared_string_resources">Ресурсы</string>
@ -3885,7 +3888,7 @@
<string name="app_mode_kayak">Каяк</string>
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
<string name="lang_de_casual">Немецкий (повседневный)</string>
<string name="app_mode_light_aircraft">Легкий самолет</string>
<string name="app_mode_light_aircraft">Лёгкий самолёт</string>
<string name="plan_route_add_new_segment">Добавить новый сегмент</string>
<string name="plan_route_join_segments">Объединить сегменты</string>
<string name="plan_route_split_before">Разделить до</string>
@ -3893,7 +3896,7 @@
<string name="profile_type_user_string">Профиль пользователя</string>
<string name="profile_type_osmand_string">Профиль OsmAnd</string>
<string name="profile_by_default_description">Выберите профиль, который будет использоваться при запуске приложения.</string>
<string name="shared_string_last_used">Последний раз использовалось</string>
<string name="shared_string_last_used">Последний используемый</string>
<string name="routing_attr_allow_intermittent_description">Разрешить прерывистые водные пути</string>
<string name="routing_attr_allow_intermittent_name">Разрешить прерывистые водные пути</string>
<string name="release_3_9">• Добавлена возможность экспорта и импорта всех данных, включая настройки, ресурсы, мои места.
@ -4008,7 +4011,7 @@
<string name="live_update_frequency_day_variant">Обновления карт будут проверяться каждый день. Следующий раз %1$s в %2$s.</string>
<string name="live_update_frequency_hour_variant">Обновления карт будут проверяться каждый час. Следующий раз %1$s в %2$s.</string>
<string name="delete_updates">Удалить обновления</string>
<string name="live_update_delete_updates_msg">Вы уверены, что хотите удалить все live обновления для %s\?</string>
<string name="live_update_delete_updates_msg">Вы уверены, что хотите удалить все live-обновления для %s\?</string>
<string name="purchases">Покупки</string>
<string name="quick_action_show_hide_title">Показать/скрыть</string>
<string name="rendering_attr_noNatureReserveBoundaries_name">Природные границы</string>
@ -4029,9 +4032,9 @@
<string name="track_recording_save_and_stop">Сохранить и остановить запись</string>
<string name="track_recording_title">Запись трека остановлена</string>
<string name="track_recording_description">Вы уверены, что хотите остановить запись\?
\nВсе несохраненные данные будут потеряны.</string>
\nВсе несохранённые данные будут потеряны.</string>
<string name="on_pause">На паузе</string>
<string name="routing_attr_height_obstacles_description">Позволяет избегать больших подъемов при навигации.</string>
<string name="routing_attr_height_obstacles_description">Позволяет избегать больших подъёмов при навигации.</string>
<string name="quick_action_coordinates_widget_descr">Переключатель для отображения или скрытия виджета координат.</string>
<string name="select_category_descr">Выберите категорию или добавьте новую</string>
<string name="copy_poi_name">Копировать имя POI</string>
@ -4043,4 +4046,9 @@
<string name="gpx_upload_private_visibility_descr">«Частный» означает, что трек не будет виден в любых общедоступных списках, но точки из него будут доступны через public GPS API без отметок времени.</string>
<string name="routing_attr_driving_style_description">Выберите цель, чтобы проложить к ней короткий, быстрый или безопасный маршрут</string>
<string name="delete_number_files_question">Удалить %1$d файлов\?</string>
<string name="trip_recording_save_and_continue">Сохранить и продолжить</string>
<string name="lost_data_warning">Все несохранённые данные будут потеряны.</string>
<string name="show_start_dialog">Показывать начальный диалог</string>
<string name="trip_recording_show_start_dialog_setting">Если выключено, запись начнётся сразу после нажатия на виджет или пункт меню, пропуская диалоговое окно подтверждения.</string>
<string name="trip_recording_logging_interval_info">Интервал записи трека указывает период времени, через который OsmAnd будет запрашивать данные о текущем местоположении.</string>
</resources>

View file

@ -4040,4 +4040,22 @@
<string name="routing_attr_short_way_description">Optimalizovaná kratšia trasa (úspora energie)</string>
<string name="snap_to_road_descr">Ikona aktuálnej polohy bude prichytená k navigačnej trase</string>
<string name="routing_attr_height_obstacles_description">Výpočet trasy sa môže vyhnúť strmým stúpaniam.</string>
<string name="trip_recording_logging_interval_info">Interval zaznamenávania nastaví ako často bude OsmAnd zisťovať aktuálnu polohu.</string>
<string name="trip_recording_save_and_continue">Uložiť a pokračovať</string>
<string name="lost_data_warning">Všetky neuložené údaje budú stratené.</string>
<string name="show_start_dialog">Zobraziť úvodné okno</string>
<string name="trip_recording_show_start_dialog_setting">Ak je vypnuté, záznam začne hneď po stlačení nástroja alebo položky v menu a preskočí okno nastavenia.</string>
<string name="release_4_0_beta">• Aktualizácie OsmAnd Live presunuté do \"Sťahovania &gt; Aktualizácie\"
\n
\n • Stopy je teraz možné vyfarbiť podľa nadmorskej výšky, rýchlosti alebo sklonu svahu.
\n
\n • Pridaná možnosť zmeny vzhľadu navigačnej trasy
\n
\n • Vylepšené okno \"Záznam výletu\"
\n
\n</string>
<string name="customize_route_line">Upraviť navigačnú trasu</string>
<string name="shared_string_route_line">Navigačná trasa</string>
<string name="route_line_use_map_style_appearance">Navigačná trasa použije %1$s, zadané na zvolenom štýle mapy: %2$s.</string>
<string name="specify_color_for_map_mode">Zadajte farbu pre režim mapy: %1$s.</string>
</resources>

View file

@ -2518,7 +2518,7 @@
<string name="poi_protection_object_water">Skyddsobjekt: vatten</string>
<string name="poi_nuclear_explosion_country">Explosion: land</string>
<string name="poi_nuclear_explosion_site">Kärnvapenexplosionplats</string>
<string name="poi_nuclear_explosion_type_underground_shaft">"Explosionstyp: underjord, schakcft "</string>
<string name="poi_nuclear_explosion_type_underground_shaft">Explosionstyp: underjord, schakt</string>
<string name="poi_nuclear_explosion_type_underground_tunnel">Explosionstyp: underjord, tunnel</string>
<string name="poi_nuclear_explosion_type_atmospheric">Explosionstyp: atmosfärisk</string>
<string name="poi_nuclear_explosion_type_atmospheric_airdrop">Explosionstyp: atmosfärisk, airdrop</string>
@ -2550,8 +2550,8 @@
<string name="poi_nuclear_explosion_height_of_burst">Explosionshöjd</string>
<string name="poi_nuclear_explosion_ground_zero_altitude">Nollnivå-punkt</string>
<string name="poi_nuclear_explosion_body_wave_magnitude">Kroppsvågsmagnitud</string>
<string name="poi_nuclear_explosion_salvo_first_detonation">"Explosionssalva: första detonationen av ett salvtest"</string>
<string name="poi_nuclear_explosion_salvo_second_or_later_detonation">"Explosionssalva: andra eller senare detonation av ett salvtest"</string>
<string name="poi_nuclear_explosion_salvo_first_detonation">Explosionssalva: första detonationen av ett salvtest</string>
<string name="poi_nuclear_explosion_salvo_second_or_later_detonation">Explosionssalva: andra eller senare detonation av ett salvtest</string>
<string name="poi_nuclear_explosion_crater_diameter">Explosionssalva: kraterdiameter</string>
<string name="poi_nuclear_explosion_warhead">Explosion: stridsspets</string>
<string name="poi_nuclear_explosion_device">Explosion: enhet</string>
@ -2938,7 +2938,7 @@
<string name="poi_cuisine_korean">Koreanskt</string>
<string name="poi_cuisine_mediterranean">Medelhavs</string>
<string name="poi_cuisine_bavarian">Bayerskt</string>
<string name="poi_cuisine_lebanese">"Libanesiskt "</string>
<string name="poi_cuisine_lebanese">Libanesiskt</string>
<string name="poi_cuisine_russian">Ryskt</string>
<string name="poi_cuisine_filipino">Filippinskt</string>
<string name="poi_cuisine_portuguese">Portugisiskt</string>
@ -2977,12 +2977,12 @@
<string name="poi_cuisine_afghan">Afghanskt</string>
<string name="poi_cuisine_belgian">Belgiskt</string>
<string name="poi_cuisine_basque">Baskiskt</string>
<string name="poi_cuisine_swiss">"Schweiziskt "</string>
<string name="poi_cuisine_swiss">Schweiziskt</string>
<string name="poi_cuisine_cantonese">Kantonesiskt</string>
<string name="poi_cuisine_swedish">Svenskt</string>
<string name="poi_cuisine_jamaican">Jamaicanskt</string>
<string name="poi_cuisine_armenian">Armeniskt</string>
<string name="poi_cuisine_hawaiian">"Hawaiianskt "</string>
<string name="poi_cuisine_hawaiian">Hawaiianskt</string>
<string name="poi_cuisine_english">Engelskt</string>
<string name="poi_cuisine_pakistani">Pakistanskt</string>
<string name="poi_cuisine_taiwanese">Taiwanesiskt</string>
@ -3329,4 +3329,68 @@
<string name="poi_location_outdoor">Plats: ute</string>
<string name="poi_location_rooftop">Plats: tak</string>
<string name="poi_location_roof">Plats: tak</string>
<string name="poi_socket_nema_5_15">Uttag: NEMA 5-15R</string>
<string name="poi_climbing_mixed_no">Blandad: nej</string>
<string name="poi_climbing_mixed_yes">Blandad: ja</string>
<string name="poi_climbing_ice_no">Is: nej</string>
<string name="poi_climbing_ice_yes">Is: ja</string>
<string name="poi_climbing_multipitch_no">\"Multi-pitch\"-väg: nej</string>
<string name="poi_climbing_multipitch_yes">\"Multi-pitch\"-väg: ja</string>
<string name="poi_climbing_trad_no">Traditionell: nej</string>
<string name="poi_climbing_trad_yes">Traditionell: ja</string>
<string name="poi_climbing_toprope_no">Topprep: nej</string>
<string name="poi_climbing_toprope_yes">Topprep: ja</string>
<string name="poi_climbing_boulder_no">Boldering: nej</string>
<string name="poi_climbing_boulder_yes">Bouldering: ja</string>
<string name="poi_climbing_sport_no">Sport: nej</string>
<string name="poi_climbing_sport_yes">Sport: ja</string>
<string name="poi_ref_post">Postnummer</string>
<string name="poi_money_transfer">Pengaöverföring</string>
<string name="poi_payment_centre">BEtalningscentral</string>
<string name="poi_post_flats">PLatt</string>
<string name="poi_post_housenumber">Husnummer</string>
<string name="poi_post_street">Gata</string>
<string name="poi_letter_box">Brevlåda</string>
<string name="poi_depot">Depå</string>
<string name="poi_charging_station">Laddningsstation</string>
<string name="poi_map_size_region">Kartstorlek: region</string>
<string name="poi_map_size_city">Kartstorlek: stad</string>
<string name="poi_map_size_site">Kartstorlek: plats</string>
<string name="poi_map_type_toposcope">Karttyp: toposkop</string>
<string name="poi_map_type_scheme">Karttyp: schema</string>
<string name="poi_map_type_street">Karttyp: gata</string>
<string name="poi_map_type_topo">Karttyp: topo</string>
<string name="poi_charging_station_output">Laddningsstations utgång</string>
<string name="poi_amperage">Strömstyrka</string>
<string name="poi_parking_fee">Parkeringsavgift</string>
<string name="poi_parking_fee_no">Parkeringsavgift: nej</string>
<string name="poi_parking_fee_yes">Parkeringsavgift: ja</string>
<string name="poi_truck_no">Lastbil: nej</string>
<string name="poi_truck_yes">Lastbil: ja</string>
<string name="poi_scooter_no">Scooter: nej</string>
<string name="poi_scooter_yes">Scooter: ja</string>
<string name="poi_bicycle_no">Cykel: nej</string>
<string name="poi_bicycle_yes">Cykel: ja</string>
<string name="poi_car_no">Bil: nej</string>
<string name="poi_car_yes">Bil: ja</string>
<string name="poi_socket_as3112_output">Uttag: AS/NZS 3112: utgång</string>
<string name="poi_socket_as3112_current">Uttag: AS/NZS 3112: ström</string>
<string name="poi_socket_as3112">Uttag: AS/NZS 3112</string>
<string name="poi_socket_bs1363_output">Uttag: BS 1363: utgång</string>
<string name="poi_socket_bs1363_current">Uttag: BS 1363: ström</string>
<string name="poi_socket_bs1363">Uttag: BS 1363</string>
<string name="poi_socket_schuko_output">Uttag: Schuko: utgång</string>
<string name="poi_socket_schuko_current">Uttag: Schuko: ström</string>
<string name="poi_socket_schuko">Uttag: Schuko</string>
<string name="poi_socket_nema_14_50_output">Uttag: NEMA 14-50: utgång</string>
<string name="poi_socket_nema_14_50_current">Uttag: NEMA 14-50: ström</string>
<string name="poi_socket_nema_14_50">Uttag: NEMA 14-50</string>
<string name="poi_socket_nema_14_30_output">Uttag: NEMA 14-30: ugång</string>
<string name="poi_socket_nema_14_30_current">Uttag: NEMA 14-30: ström</string>
<string name="poi_socket_nema_14_30">Uttag: NEMA 14-30</string>
<string name="poi_socket_nema_5_20_output">Uttag: NEMA 5-20: utgående</string>
<string name="poi_socket_nema_5_20_current">Uttag: NEMA 5-20: ström</string>
<string name="poi_socket_nema_5_20">Uttag: NEMA 5-20</string>
<string name="poi_socket_nema_5_15_output">Uttag: NEMA 5-15R: utgång</string>
<string name="poi_socket_nema_5_15_current">Uttag: NEMA 5-15R: ström</string>
</resources>

View file

@ -4047,4 +4047,19 @@
<string name="trip_recording_logging_interval_info">Інтервал журналювання встановлює проміжок часу, впродовж якого OsmAnd запитуватиме дані про поточне розташування.</string>
<string name="trip_recording_save_and_continue">Зберегти й продовжити</string>
<string name="lost_data_warning">Усі незбережені дані буде втрачено.</string>
<string name="show_start_dialog">Показати діалогове вікно запуску</string>
<string name="trip_recording_show_start_dialog_setting">Якщо вимкнено, запис почнеться відразу після торкання до віджета або пункту меню, пропускаючи діалогове вікно підтвердження.</string>
<string name="customize_route_line">Налаштувати лінію маршруту</string>
<string name="shared_string_route_line">Лінія маршруту</string>
<string name="route_line_use_map_style_appearance">Лінія маршруту застосовуватиме %1$s, вказаний у вибраному стилі мапи: %2$s.</string>
<string name="specify_color_for_map_mode">Вкажіть колір для режиму мапи: %1$s.</string>
<string name="release_4_0_beta">• Оновлення OsmAnd Live переміщено до «Завантаження &gt;Оновлення»
\n
\n• Тепер треки можуть бути забарвлені за висотою, швидкістю або нахилом.
\n
\n• Додано можливість зміни зовнішнього вигляду лінії навігації маршрутом
\n
\n• Оновлено діалогове вікно «Запис поїздки»
\n
\n</string>
</resources>

View file

@ -4041,4 +4041,19 @@
<string name="trip_recording_logging_interval_info">紀錄間隔設定的時段OsmAnd 將會要求目前位置的位置資料。</string>
<string name="trip_recording_save_and_continue">儲存並繼續</string>
<string name="lost_data_warning">所有未儲存的資料都將會遺失。</string>
<string name="show_start_dialog">顯示開始對話框</string>
<string name="trip_recording_show_start_dialog_setting">若停用,則在點擊小工具或選單項目後將跳過確認對話框,立刻開始。</string>
<string name="customize_route_line">自訂路線</string>
<string name="shared_string_route_line">路線</string>
<string name="route_line_use_map_style_appearance">路線將會使用 %1$s 在選定的地圖樣式上指定的:%2$s。</string>
<string name="specify_color_for_map_mode">指定地圖模式的顏色:%1$s。</string>
<string name="release_4_0_beta">• OsmAnd Live 更新移動至「下載 &gt; 更新」
\n
\n • 軌跡現在可以使用海拔、速度或坡度來填色
\n
\n • 新增了變更導航路線外觀的選項
\n
\n • 更新「旅程錄製」對話框
\n
\n</string>
</resources>

View file

@ -5,11 +5,13 @@ import android.app.Dialog;
import android.content.Context;
import android.content.res.ColorStateList;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.widget.CompoundButton;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
@ -168,7 +170,7 @@ public class TripRecordingBottomSheet extends MenuBottomSheetDialogFragment impl
ContextCompat.getColor(app, getActiveTextColorId(nightMode)));
CardView cardLeft = itemView.findViewById(R.id.button_left);
createItem(cardLeft, ItemType.CANCEL);
createItem(cardLeft, ItemType.CLOSE);
cardLeft.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@ -320,6 +322,9 @@ public class TripRecordingBottomSheet extends MenuBottomSheetDialogFragment impl
AndroidUiHelper.setVisibility(View.GONE, segmentView.findViewById(R.id.list_item_divider));
WrapContentHeightViewPager pager = segmentView.findViewById(R.id.pager);
PagerSlidingTabStrip tabLayout = segmentView.findViewById(R.id.sliding_tabs);
tabLayout.setDividerWidth(AndroidUtils.dpToPx(app, 1));
tabLayout.setDividerColor(ContextCompat.getColor(app, nightMode ?
R.color.stroked_buttons_and_links_outline_dark : R.color.stroked_buttons_and_links_outline_light));
tabLayout.setOnTabReselectedListener(new PagerSlidingTabStrip.OnTabReselectedListener() {
@Override
public void onTabSelected(int position) {
@ -336,6 +341,7 @@ public class TripRecordingBottomSheet extends MenuBottomSheetDialogFragment impl
graphsAdapter = new GPXItemPagerAdapter(app, GpxUiHelper.makeGpxDisplayItem(app, displayHelper.getGpx()),
displayHelper, nightMode, this, true);
graphsAdapter.setChartHMargin(getResources().getDimensionPixelSize(R.dimen.content_padding));
pager.setAdapter(graphsAdapter);
tabLayout.setViewPager(pager);
@ -475,6 +481,21 @@ public class TripRecordingBottomSheet extends MenuBottomSheetDialogFragment impl
setItemBackground(context, nightMode, view, enabled);
}
public static void createItemActive(Context context, boolean nightMode, View view, ItemType type) {
view.setTag(type);
AppCompatImageView icon = view.findViewById(R.id.icon);
if (icon != null) {
setTintedIconActive(context, icon, nightMode, type);
}
TextView title = view.findViewById(R.id.button_text);
Integer titleId = type.getTitleId();
if (title != null && titleId != null) {
title.setText(titleId);
setTextColorActive(context, title, nightMode, type);
}
setItemBackgroundActive(context, nightMode, view);
}
public static void setItemBackground(Context context, boolean nightMode, View view, boolean enabled) {
if (view instanceof CardView) {
int colorId = enabled ? getActiveTransparentColorId(nightMode) : getInactiveButtonColorId(nightMode);
@ -494,6 +515,12 @@ public class TripRecordingBottomSheet extends MenuBottomSheetDialogFragment impl
view.setBackgroundDrawable(background);
}
public static void setItemBackgroundActive(Context context, boolean nightMode, View view) {
if (view instanceof CardView) {
((CardView) view).setCardBackgroundColor(ContextCompat.getColor(context, getActiveTextColorId(nightMode)));
}
}
public enum ItemType {
SHOW_TRACK(R.string.shared_string_show_on_map, null),
APPEARANCE(null, null),
@ -508,8 +535,10 @@ public class TripRecordingBottomSheet extends MenuBottomSheetDialogFragment impl
STOP(R.string.shared_string_control_stop, R.drawable.ic_action_rec_stop),
STOP_AND_DISCARD(R.string.track_recording_stop_without_saving, R.drawable.ic_action_rec_stop),
STOP_AND_SAVE(R.string.track_recording_save_and_stop, R.drawable.ic_action_save_to_file),
STOP_ONLINE(R.string.live_monitoring_stop, R.drawable.ic_world_globe_dark),
START_ONLINE(R.string.live_monitoring_start, R.drawable.ic_world_globe_dark),
STOP_ONLINE(R.string.live_monitoring_stop, R.drawable.ic_action_offline),
CANCEL(R.string.shared_string_cancel, R.drawable.ic_action_close),
CLOSE(R.string.shared_string_close, R.drawable.ic_action_close),
START_RECORDING(R.string.shared_string_control_start, R.drawable.ic_action_direction_movement),
SETTINGS(R.string.shared_string_settings, R.drawable.ic_action_settings),
FINISH(R.string.shared_string_finish, R.drawable.ic_action_point_destination),
@ -519,7 +548,7 @@ public class TripRecordingBottomSheet extends MenuBottomSheetDialogFragment impl
private final Integer titleId;
@DrawableRes
private final Integer iconId;
private static final List<ItemType> negative = Arrays.asList(CLEAR_DATA, STOP_AND_DISCARD);
private static final List<ItemType> negative = Arrays.asList(CLEAR_DATA, STOP, STOP_AND_DISCARD);
ItemType(@Nullable @StringRes Integer titleId, @Nullable @DrawableRes Integer iconId) {
this.titleId = titleId;
@ -550,6 +579,12 @@ public class TripRecordingBottomSheet extends MenuBottomSheetDialogFragment impl
}
}
protected static void setTextColorActive(Context context, TextView tv, boolean nightMode, ItemType type) {
if (tv != null) {
tv.setTextColor(ContextCompat.getColor(context, getPressedColorId(nightMode)));
}
}
protected static void setTintedIcon(Context context, AppCompatImageView iv, boolean enabled, boolean nightMode, ItemType type) {
Integer iconId = type.getIconId();
if (iv != null && iconId != null) {
@ -572,6 +607,17 @@ public class TripRecordingBottomSheet extends MenuBottomSheetDialogFragment impl
}
}
protected static void setTintedIconActive(Context context, AppCompatImageView iv, boolean nightMode, ItemType type) {
Integer iconId = type.getIconId();
if (iv != null && iconId != null) {
Drawable icon = AppCompatResources.getDrawable(context, iconId);
if (icon != null) {
DrawableCompat.setTint(icon, ContextCompat.getColor(context, getPressedColorId(nightMode)));
}
iv.setImageDrawable(icon);
}
}
@Override
public void onPointSelected(TrkSegment segment, double lat, double lon) {
if (trackChartPoints == null) {
@ -671,6 +717,36 @@ public class TripRecordingBottomSheet extends MenuBottomSheetDialogFragment impl
return nightMode ? R.drawable.btn_background_inactive_dark : R.drawable.btn_background_inactive_light;
}
@Override
protected void setupHeightAndBackground(final View mainView) {
final Activity activity = getActivity();
if (activity == null) {
return;
}
if (AndroidUiHelper.isOrientationPortrait(activity)) {
super.setupHeightAndBackground(mainView);
return;
}
mainView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
ViewTreeObserver obs = mainView.getViewTreeObserver();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
obs.removeOnGlobalLayoutListener(this);
} else {
obs.removeGlobalOnLayoutListener(this);
}
final View contentView = mainView.findViewById(R.id.scroll_view);
contentView.getLayoutParams().height = ViewGroup.LayoutParams.MATCH_PARENT;
contentView.requestLayout();
boolean showTopShadow = AndroidUtils.getScreenHeight(activity) - AndroidUtils.getStatusBarHeight(activity)
- mainView.getHeight() >= AndroidUtils.dpToPx(activity, 8);
drawTopShadow(showTopShadow);
}
});
}
@Override
protected boolean hideButtonsContainer() {
return true;

View file

@ -42,13 +42,13 @@ public class TripRecordingDiscardBottomSheet extends MenuBottomSheetDialogFragme
LayoutInflater inflater = UiUtilities.getInflater(app, nightMode);
int verticalBig = getResources().getDimensionPixelSize(R.dimen.dialog_content_margin);
int verticalNormal = getResources().getDimensionPixelSize(R.dimen.content_padding);
final View buttonDiscard = createItem(inflater, ItemType.STOP_AND_DISCARD);
final View buttonDiscard = createItem(inflater, ItemType.STOP);
final View buttonCancel = createItem(inflater, ItemType.CANCEL);
items.add(new BottomSheetItemWithDescription.Builder()
.setDescription(getString(R.string.track_recording_description))
.setDescriptionColorId(getPrimaryTextColorId(nightMode))
.setTitle(app.getString(R.string.track_recording_title))
.setTitle(app.getString(R.string.track_recording_stop_without_saving))
.setLayoutId(R.layout.bottom_sheet_item_title_with_description)
.create());

View file

@ -53,8 +53,6 @@ public class TripRecordingOptionsBottomSheet extends MenuBottomSheetDialogFragme
private SelectedGpxFile selectedGpxFile;
private final Handler handler = new Handler();
private Runnable updatingTimeTrackSaved;
private int indexButtonOnline = -1;
private int indexButtonOnlineDivider = -1;
private GPXFile getGPXFile() {
return selectedGpxFile.getGpxFile();
@ -93,7 +91,8 @@ public class TripRecordingOptionsBottomSheet extends MenuBottomSheetDialogFragme
buttonClear = createItem(inflater, ItemType.CLEAR_DATA, hasDataToSave());
final View buttonDiscard = createItem(inflater, ItemType.STOP_AND_DISCARD);
final View buttonOnline = createItem(inflater, ItemType.STOP_ONLINE, hasDataToSave());
final View buttonOnline = createItem(inflater, settings.LIVE_MONITORING.get()
? ItemType.STOP_ONLINE : ItemType.START_ONLINE);
buttonSave = createItem(inflater, ItemType.SAVE, hasDataToSave());
final View buttonSegment = createItem(inflater, ItemType.START_NEW_SEGMENT, wasTrackMonitored());
@ -133,27 +132,19 @@ public class TripRecordingOptionsBottomSheet extends MenuBottomSheetDialogFragme
items.add(new DividerSpaceItem(app, dp36));
if (app.getLiveMonitoringHelper().isLiveMonitoringEnabled()) {
items.add(new BaseBottomSheetItem.Builder()
.setCustomView(buttonOnline)
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
settings.LIVE_MONITORING.set(false);
if (indexButtonOnline != -1) {
AndroidUiHelper.updateVisibility(items.get(indexButtonOnline).getView(), false);
}
if (indexButtonOnlineDivider != -1) {
AndroidUiHelper.updateVisibility(items.get(indexButtonOnlineDivider).getView(), false);
}
boolean wasOnlineMonitored = !settings.LIVE_MONITORING.get();
settings.LIVE_MONITORING.set(wasOnlineMonitored);
createItem(buttonOnline, wasOnlineMonitored ? ItemType.STOP_ONLINE : ItemType.START_ONLINE);
}
})
.create());
indexButtonOnline = items.size() - 1;
items.add(new DividerSpaceItem(app, dp36));
indexButtonOnlineDivider = items.size() - 1;
}
items.add(new BaseBottomSheetItem.Builder()
.setCustomView(buttonSave)
@ -183,17 +174,12 @@ public class TripRecordingOptionsBottomSheet extends MenuBottomSheetDialogFragme
.create());
items.add(new DividerSpaceItem(app, getResources().getDimensionPixelSize(R.dimen.content_padding_small)));
}
@Override
public void onResume() {
super.onResume();
runUpdatingTimeTrackSaved();
Fragment target = getTargetFragment();
if (target instanceof TripRecordingBottomSheet) {
((TripRecordingBottomSheet) target).hide();
}
}
@Override
@ -245,6 +231,10 @@ public class TripRecordingOptionsBottomSheet extends MenuBottomSheetDialogFragme
}
}
private void createItem(View view, ItemType type) {
TripRecordingBottomSheet.createItem(app, nightMode, view, type, true, null);
}
private View createItem(LayoutInflater inflater, ItemType type, boolean enabled) {
return TripRecordingBottomSheet.createItem(app, nightMode, inflater, type, enabled, null);
}

View file

@ -35,6 +35,7 @@ import net.osmand.plus.settings.fragments.BaseSettingsFragment.SettingsScreenTyp
import static net.osmand.plus.monitoring.OsmandMonitoringPlugin.MINUTES;
import static net.osmand.plus.monitoring.OsmandMonitoringPlugin.SECONDS;
import static net.osmand.plus.monitoring.TripRecordingBottomSheet.createItemActive;
import static net.osmand.plus.monitoring.TripRecordingBottomSheet.createItem;
import static net.osmand.plus.monitoring.TripRecordingBottomSheet.createShowTrackItem;
import static net.osmand.plus.monitoring.TripRecordingBottomSheet.updateTrackIcon;
@ -123,7 +124,7 @@ public class TripRecordingStartingBottomSheet extends MenuBottomSheetDialogFragm
});
CardView cardCenter = itemView.findViewById(R.id.button_center);
createItem(app, nightMode, cardCenter, ItemType.START_RECORDING, true, null);
createItemActive(app, nightMode, cardCenter, ItemType.START_RECORDING);
cardCenter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

View file

@ -24,6 +24,7 @@ import com.github.mikephil.charting.listener.ChartTouchListener.ChartGesture;
import com.github.mikephil.charting.listener.OnChartGestureListener;
import com.github.mikephil.charting.listener.OnChartValueSelectedListener;
import net.osmand.AndroidUtils;
import net.osmand.GPXUtilities;
import net.osmand.GPXUtilities.GPXFile;
import net.osmand.GPXUtilities.GPXTrackAnalysis;
@ -87,6 +88,11 @@ public class GPXItemPagerAdapter extends PagerAdapter implements CustomTabProvid
private boolean chartClicked;
private boolean nightMode;
private boolean onlyGraphs;
private int chartHMargin = 0;
public void setChartHMargin(int chartHMargin) {
this.chartHMargin = chartHMargin;
}
public void setGpxItem(GpxDisplayItem gpxItem) {
this.gpxItem = gpxItem;
@ -215,6 +221,8 @@ public class GPXItemPagerAdapter extends PagerAdapter implements CustomTabProvid
if (gpxFile != null && gpxItem != null) {
GPXTrackAnalysis analysis = gpxItem.analysis;
LineChart chart = view.findViewById(R.id.chart);
ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) chart.getLayoutParams();
AndroidUtils.setMargins(lp, chartHMargin, lp.topMargin, chartHMargin, lp.bottomMargin);
setupChart(view, chart);
switch (tabType) {
@ -450,8 +458,8 @@ public class GPXItemPagerAdapter extends PagerAdapter implements CustomTabProvid
view.findViewById(R.id.list_divider).setVisibility(View.GONE);
view.findViewById(R.id.bottom_line_blocks).setVisibility(View.GONE);
}
updateJoinGapsInfo(view, position);
if (!onlyGraphs) {
updateJoinGapsInfo(view, position);
view.findViewById(R.id.analyze_on_map).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

View file

@ -6,6 +6,7 @@ import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import net.osmand.AndroidUtils;
import net.osmand.plus.GpxSelectionHelper.GpxDisplayItem;

View file

@ -222,7 +222,8 @@ public class CreateEditActionDialog extends DialogFragment
if (savedInstanceState == null) {
String name = action.getName(getContext());
if (action.getActionNameRes() != 0) {
if (!action.isActionEditable() && action.getActionNameRes() != 0
&& !name.contains(getString(action.getActionNameRes()))) {
String actionName = getString(action.getActionNameRes());
nameEditText.setText(getString(R.string.ltr_or_rtl_combine_via_dash, actionName, name));
} else {

View file

@ -10,17 +10,20 @@ import net.osmand.util.Algorithms;
public class RouteLineDrawInfo {
private static final String LINE_COLOR = "line_color";
private static final String LINE_COLOR_DAY = "line_color_day";
private static final String LINE_COLOR_NIGHT = "line_color_night";
private static final String LINE_WIDTH = "line_width";
private static final String NAVIGATION_ICON_ID = "navigation_icon_id";
private static final String NAVIGATION_ICON_COLOR = "navigation_icon_color";
private static final String CENTER_X = "center_x";
private static final String CENTER_Y = "center_y";
private static final String SCREEN_HEIGHT = "screen_height";
private static final String USE_DEFAULT_COLOR = "use_default_color";
// parameters to save
@ColorInt
private Integer color;
private Integer colorDay;
private Integer colorNight;
private String width;
// temporally parameters to show in preview
@ -30,10 +33,13 @@ public class RouteLineDrawInfo {
private int centerX;
private int centerY;
private int screenHeight;
private boolean useDefaultColor;
public RouteLineDrawInfo(@Nullable @ColorInt Integer color,
public RouteLineDrawInfo(@Nullable @ColorInt Integer colorDay,
@Nullable @ColorInt Integer colorNight,
@Nullable String width) {
this.color = color;
this.colorDay = colorDay;
this.colorNight = colorNight;
this.width = width;
}
@ -42,17 +48,27 @@ public class RouteLineDrawInfo {
}
public RouteLineDrawInfo(@NonNull RouteLineDrawInfo existed) {
this.color = existed.color;
this.colorDay = existed.colorDay;
this.colorNight = existed.colorNight;
this.width = existed.width;
this.iconId = existed.iconId;
this.iconColor = existed.iconColor;
this.centerX = existed.centerX;
this.centerY = existed.centerY;
this.screenHeight = existed.screenHeight;
this.useDefaultColor = existed.useDefaultColor;
}
public void setColor(@Nullable Integer color) {
this.color = color;
public void setColor(@ColorInt int color, boolean nightMode) {
if (nightMode) {
colorNight = color;
} else {
colorDay = color;
}
}
public void setUseDefaultColor(boolean useDefaultColor) {
this.useDefaultColor = useDefaultColor;
}
public void setWidth(@Nullable String width) {
@ -80,8 +96,16 @@ public class RouteLineDrawInfo {
}
@Nullable
public Integer getColor() {
return color;
public Integer getColor(boolean nightMode) {
if (!useDefaultColor) {
return getColorIgnoreDefault(nightMode);
}
return null;
}
@Nullable
public Integer getColorIgnoreDefault(boolean nightMode) {
return nightMode ? colorNight : colorDay;
}
@Nullable
@ -111,8 +135,11 @@ public class RouteLineDrawInfo {
}
private void readBundle(@NonNull Bundle bundle) {
if (bundle.containsKey(LINE_COLOR)) {
color = bundle.getInt(LINE_COLOR);
if (bundle.containsKey(LINE_COLOR_DAY)) {
colorDay = bundle.getInt(LINE_COLOR_DAY);
}
if (bundle.containsKey(LINE_COLOR_NIGHT)) {
colorNight = bundle.getInt(LINE_COLOR_NIGHT);
}
width = bundle.getString(LINE_WIDTH);
iconId = bundle.getInt(NAVIGATION_ICON_ID);
@ -120,11 +147,15 @@ public class RouteLineDrawInfo {
centerX = bundle.getInt(CENTER_X);
centerY = bundle.getInt(CENTER_Y);
screenHeight = bundle.getInt(SCREEN_HEIGHT);
useDefaultColor = bundle.getBoolean(USE_DEFAULT_COLOR);
}
public void saveToBundle(@NonNull Bundle bundle) {
if (color != null) {
bundle.putInt(LINE_COLOR, color);
if (colorDay != null) {
bundle.putInt(LINE_COLOR_DAY, colorDay);
}
if (colorNight != null) {
bundle.putInt(LINE_COLOR_NIGHT, colorNight);
}
if (width != null) {
bundle.putString(LINE_WIDTH, width);
@ -134,6 +165,7 @@ public class RouteLineDrawInfo {
bundle.putInt(CENTER_X, centerX);
bundle.putInt(CENTER_Y, centerY);
bundle.putInt(SCREEN_HEIGHT, screenHeight);
bundle.putBoolean(USE_DEFAULT_COLOR, useDefaultColor);
}
@Override
@ -143,13 +175,15 @@ public class RouteLineDrawInfo {
RouteLineDrawInfo that = (RouteLineDrawInfo) o;
if (!Algorithms.objectEquals(getColor(), that.getColor())) return false;
return Algorithms.objectEquals(getWidth(), that.getWidth());
if (!Algorithms.objectEquals(colorDay, that.colorDay)) return false;
if (!Algorithms.objectEquals(colorNight, that.colorNight)) return false;
return Algorithms.objectEquals(width, that.width);
}
@Override
public int hashCode() {
int result = color != null ? color.hashCode() : 0;
int result = colorDay != null ? colorDay.hashCode() : 0;
result = 31 * result + (colorNight != null ? colorNight.hashCode() : 0);
result = 31 * result + (width != null ? width.hashCode() : 0);
return result;
}

View file

@ -10,6 +10,7 @@ import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.content.res.AppCompatResources;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
@ -22,7 +23,6 @@ import net.osmand.plus.UiUtilities;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.helpers.ColorDialogs;
import net.osmand.plus.helpers.enums.DayNightMode;
import net.osmand.plus.render.RendererRegistry;
import net.osmand.plus.routepreparationmenu.cards.BaseCard;
import net.osmand.plus.routepreparationmenu.cards.BaseCard.CardListener;
import net.osmand.plus.routing.RouteLineDrawInfo;
@ -110,7 +110,7 @@ public class RouteLineColorCard extends BaseCard implements CardListener, ColorP
}
private void initSelectedMode() {
selectedMode = routeLineDrawInfo.getColor() == null ? ColorMode.DEFAULT : ColorMode.CUSTOM;
selectedMode = getRouteLineColor() == null ? ColorMode.DEFAULT : ColorMode.CUSTOM;
modeChanged();
}
@ -118,13 +118,15 @@ public class RouteLineColorCard extends BaseCard implements CardListener, ColorP
if (selectedMode == ColorMode.DEFAULT) {
themeToggleContainer.setVisibility(View.GONE);
cardsContainer.setVisibility(View.GONE);
routeLineDrawInfo.setUseDefaultColor(true);
changeMapTheme(initMapTheme);
} else {
themeToggleContainer.setVisibility(View.VISIBLE);
cardsContainer.setVisibility(View.VISIBLE);
routeLineDrawInfo.setUseDefaultColor(false);
changeMapTheme(isNightMap() ? DayNightMode.NIGHT : DayNightMode.DAY);
}
updateSelectedColor();
updateColorItems();
updateDescription();
}
@ -156,6 +158,12 @@ public class RouteLineColorCard extends BaseCard implements CardListener, ColorP
if (targetFragment instanceof OnMapThemeUpdateListener) {
((OnMapThemeUpdateListener) targetFragment).onMapThemeUpdated(mapTheme);
}
if (selectedMode == ColorMode.CUSTOM) {
Integer color = getRouteLineColor();
if (color != null) {
colorsCard.setSelectedColor(color);
}
}
}
private void createColorSelector(ViewGroup container) {
@ -165,14 +173,9 @@ public class RouteLineColorCard extends BaseCard implements CardListener, ColorP
for (int color : ColorDialogs.pallette) {
colors.add(color);
}
Integer selectedColor = routeLineDrawInfo.getColor();
if (selectedColor != null) {
if (!ColorDialogs.isPaletteColor(selectedColor)) {
colors.add(selectedColor);
}
} else {
selectedColor = colors.get(0);
}
int selectedColorDay = getSelectedColorForTheme(colors, false);
int selectedColorNight = getSelectedColorForTheme(colors, true);
int selectedColor = isNightMap() ? selectedColorNight : selectedColorDay;
ListStringPreference preference = app.getSettings().CUSTOM_ROUTE_LINE_COLORS;
colorsCard = new ColorsCard(mapActivity, selectedColor, targetFragment, colors, preference, null);
colorsCard.setListener(this);
@ -180,26 +183,49 @@ public class RouteLineColorCard extends BaseCard implements CardListener, ColorP
}
}
private int getSelectedColorForTheme(List<Integer> colors, boolean nightMode) {
Integer color = routeLineDrawInfo.getColorIgnoreDefault(nightMode);
if (color != null) {
if (!ColorDialogs.isPaletteColor(color)) {
colors.add(color);
}
} else {
color = colors.get(0);
routeLineDrawInfo.setUseDefaultColor(true);
routeLineDrawInfo.setColor(color, nightMode);
}
return color;
}
@Override
public void onColorSelected(Integer prevColor, int newColor) {
colorsCard.onColorSelected(prevColor, newColor);
updateSelectedColor();
}
@Nullable
private Integer getRouteLineColor() {
return routeLineDrawInfo.getColor(isNightMap());
}
private void updateSelectedColor() {
Integer color = selectedMode == ColorMode.CUSTOM ? colorsCard.getSelectedColor() : null;
routeLineDrawInfo.setColor(color);
updateColorName();
int selectedColor = colorsCard.getSelectedColor();
routeLineDrawInfo.setColor(selectedColor, isNightMap());
updateColorItems();
}
private void updateColorItems() {
if (targetFragment instanceof OnSelectedColorChangeListener) {
((OnSelectedColorChangeListener) targetFragment).onSelectedColorChanged();
}
updateColorName();
}
private void updateColorName() {
if (selectedMode == ColorMode.DEFAULT) {
tvColorName.setText(app.getString(R.string.map_widget_renderer));
} else if (routeLineDrawInfo.getColor() != null) {
int colorNameId = ColorDialogs.getColorName(routeLineDrawInfo.getColor());
} else if (getRouteLineColor() != null) {
int colorNameId = ColorDialogs.getColorName(getRouteLineColor());
tvColorName.setText(app.getString(colorNameId));
}
}

View file

@ -24,7 +24,6 @@ import net.osmand.plus.R;
import net.osmand.plus.UiUtilities;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.helpers.AndroidUiHelper;
import net.osmand.plus.render.RendererRegistry;
import net.osmand.plus.routepreparationmenu.cards.BaseCard;
import net.osmand.plus.routing.RouteLineDrawInfo;
import net.osmand.plus.track.AppearanceViewHolder;
@ -201,6 +200,10 @@ public class RouteLineWidthCard extends BaseCard {
return WidthMode.DEFAULT;
}
private boolean isNightMode() {
return app.getDaynightHelper().isNightModeForMapControls();
}
private class WidthAdapter extends RecyclerView.Adapter<AppearanceViewHolder> {
private final List<WidthMode> items = Arrays.asList(WidthMode.values());
@ -268,13 +271,9 @@ public class RouteLineWidthCard extends BaseCard {
}
private int getIconColor(@NonNull WidthMode mode, @ColorInt int defaultColor) {
return mode.widthKey != null ? getRouteLineColor() : defaultColor;
}
private int getRouteLineColor() {
Integer color = routeLineDrawInfo.getColor();
return color != null ? color :
mapActivity.getMapLayers().getRouteLayer().getRouteLineColor(nightMode);
return mode.widthKey != null ?
mapActivity.getMapLayers().getRouteLayer().getRouteLineColor(isNightMode()) :
defaultColor;
}
private void updateButtonBg(AppearanceViewHolder holder, WidthMode item) {

View file

@ -2691,8 +2691,10 @@ public class OsmandSettings {
public final CommonPreference<Float> ROUTE_RECALCULATION_DISTANCE = new FloatPreference(this, "routing_recalc_distance", 0.f).makeProfile();
public final CommonPreference<Float> ROUTE_STRAIGHT_ANGLE = new FloatPreference(this, "routing_straight_angle", 30.f).makeProfile();
public final ListStringPreference CUSTOM_ROUTE_LINE_COLORS = (ListStringPreference) new ListStringPreference(this, "custom_route_line_colors", null, ",").makeShared().makeGlobal();
public final CommonPreference<Integer> ROUTE_LINE_COLOR = new IntPreference(this, "route_line_color", 0).makeProfile();
public final CommonPreference<Integer> ROUTE_LINE_COLOR_DAY = new IntPreference(this, "route_line_color", 0).cache().makeProfile();
public final CommonPreference<Integer> ROUTE_LINE_COLOR_NIGHT = new IntPreference(this, "route_line_color_night", 0).cache().makeProfile();
public final CommonPreference<String> ROUTE_LINE_WIDTH = new StringPreference(this, "route_line_width", null).makeProfile();
public final OsmandPreference<Boolean> USE_OSM_LIVE_FOR_ROUTING = new BooleanPreference(this, "enable_osmc_routing", true).makeProfile();

View file

@ -1019,23 +1019,35 @@ public class ProfileAppearanceFragment extends BaseSettingsFragment implements O
}
private RouteLineDrawInfo createRouteLineDrawInfo(@NonNull ApplicationMode appMode) {
int storedValue = settings.ROUTE_LINE_COLOR.getModeValue(appMode);
Integer color = storedValue != 0 ? storedValue : null;
Integer colorDay = getRouteLineColor(appMode, settings.ROUTE_LINE_COLOR_DAY);
Integer colorNight = getRouteLineColor(appMode, settings.ROUTE_LINE_COLOR_NIGHT);
String widthKey = settings.ROUTE_LINE_WIDTH.getModeValue(appMode);
return new RouteLineDrawInfo(color, widthKey);
return new RouteLineDrawInfo(colorDay, colorNight, widthKey);
}
private Integer getRouteLineColor(@NonNull ApplicationMode appMode,
@NonNull CommonPreference<Integer> preference) {
int storedValue = preference.getModeValue(appMode);
return storedValue != 0 ? storedValue : null;
}
private void saveRouteLineAppearance(@NonNull ApplicationMode appMode,
@NonNull RouteLineDrawInfo drawInfo) {
Integer color = drawInfo.getColor();
if (color != null) {
settings.ROUTE_LINE_COLOR.setModeValue(appMode, color);
} else {
settings.ROUTE_LINE_COLOR.resetModeToDefault(appMode);
}
saveRouteLineColor(appMode, settings.ROUTE_LINE_COLOR_DAY, drawInfo.getColor(false));
saveRouteLineColor(appMode, settings.ROUTE_LINE_COLOR_NIGHT, drawInfo.getColor(true));
settings.ROUTE_LINE_WIDTH.setModeValue(appMode, drawInfo.getWidth());
}
private void saveRouteLineColor(@NonNull ApplicationMode appMode,
@NonNull CommonPreference<Integer> preference,
@Nullable @ColorInt Integer color) {
if (color != null) {
preference.setModeValue(appMode, color);
} else {
preference.resetModeToDefault(appMode);
}
}
public static boolean showInstance(FragmentActivity activity, SettingsScreenType screenType, @Nullable String appMode, boolean imported) {
try {
Fragment fragment = Fragment.instantiate(activity, screenType.fragmentName);

View file

@ -385,6 +385,10 @@ public class RouteLineAppearanceFragment extends ContextMenuScrollFragment imple
@Override
public void onSelectedColorChanged() {
updateColorItems();
}
private void updateColorItems() {
if (widthCard != null) {
widthCard.updateItems();
}
@ -415,6 +419,7 @@ public class RouteLineAppearanceFragment extends ContextMenuScrollFragment imple
@Override
public void onMapThemeUpdated(@NonNull DayNightMode mapTheme) {
changeMapTheme(mapTheme);
updateColorItems();
}
private void changeMapTheme(@NonNull DayNightMode mapTheme) {

View file

@ -72,6 +72,7 @@ public class ColorsCard extends BaseCard implements ColorPickerListener {
public void setSelectedColor(int selectedColor) {
this.selectedColor = selectedColor;
updateContent();
}
@Override

View file

@ -129,7 +129,6 @@ public class PagerSlidingTabStrip extends HorizontalScrollView {
private int dividerWidth = 0;
private int dividerPadding = 0;
@ColorInt
private int dividerColor;
@ -183,7 +182,6 @@ public class PagerSlidingTabStrip extends HorizontalScrollView {
scrollOffset = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, scrollOffset, dm);
indicatorHeight = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, indicatorHeight, dm);
underlineHeight = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, underlineHeight, dm);
dividerPadding = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dividerPadding, dm);
tabPadding = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, tabPadding, dm);
dividerWidth = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dividerWidth, dm);
tabTextSize = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, tabTextSize, dm);
@ -214,7 +212,6 @@ public class PagerSlidingTabStrip extends HorizontalScrollView {
dividerWidth = a.getDimensionPixelSize(R.styleable.PagerSlidingTabStrip_pstsDividerWidth, dividerWidth);
indicatorHeight = a.getDimensionPixelSize(R.styleable.PagerSlidingTabStrip_pstsIndicatorHeight, indicatorHeight);
underlineHeight = a.getDimensionPixelSize(R.styleable.PagerSlidingTabStrip_pstsUnderlineHeight, underlineHeight);
dividerPadding = a.getDimensionPixelSize(R.styleable.PagerSlidingTabStrip_pstsDividerPadding, dividerPadding);
tabPadding = a.getDimensionPixelSize(R.styleable.PagerSlidingTabStrip_pstsTabPaddingLeftRight, tabPadding);
tabBackgroundResId = a.getResourceId(R.styleable.PagerSlidingTabStrip_pstsTabBackground, tabBackgroundResId);
indicatorBgColor = a.getColor(R.styleable.PagerSlidingTabStrip_pstsTabBackground, Color.TRANSPARENT);
@ -485,7 +482,7 @@ public class PagerSlidingTabStrip extends HorizontalScrollView {
dividerPaint.setColor(dividerColor);
for (int i = 0; i < tabCount - 1; i++) {
View tab = tabsContainer.getChildAt(i);
canvas.drawLine(tab.getRight(), dividerPadding, tab.getRight(), height - dividerPadding, dividerPaint);
canvas.drawLine(tab.getRight(), tabsContainer.getTop(), tab.getRight(), tabsContainer.getBottom(), dividerPaint);
}
}
}
@ -720,10 +717,6 @@ public class PagerSlidingTabStrip extends HorizontalScrollView {
return underlineHeight;
}
public int getDividerPadding() {
return dividerPadding;
}
public int getScrollOffset() {
return scrollOffset;
}
@ -826,11 +819,6 @@ public class PagerSlidingTabStrip extends HorizontalScrollView {
invalidate();
}
public void setDividerPadding(int dividerPaddingPx) {
this.dividerPadding = dividerPaddingPx;
invalidate();
}
public void setScrollOffset(int scrollOffsetPx) {
this.scrollOffset = scrollOffsetPx;
invalidate();

View file

@ -42,6 +42,7 @@ import net.osmand.plus.routing.RouteLineDrawInfo;
import net.osmand.plus.routing.RouteService;
import net.osmand.plus.routing.RoutingHelper;
import net.osmand.plus.routing.TransportRoutingHelper;
import net.osmand.plus.settings.backend.CommonPreference;
import net.osmand.plus.views.OsmandMapLayer;
import net.osmand.plus.views.OsmandMapTileView;
import net.osmand.plus.views.layers.geometry.PublicTransportGeometryWay;
@ -315,14 +316,16 @@ public class RouteLayer extends OsmandMapLayer implements ContextMenuLayer.ICont
QuadPoint c = tileBox.getCenterPixelPoint();
canvas.rotate(-angle, c.x, c.y);
drawRouteLinePreview(canvas, tileBox, routeLineDrawInfo);
drawRouteLinePreview(canvas, tileBox, settings, routeLineDrawInfo);
canvas.rotate(angle, c.x, c.y);
}
}
private void drawRouteLinePreview(Canvas canvas,
RotatedTileBox tileBox,
DrawSettings settings,
RouteLineDrawInfo drawInfo) {
updateAttrs(settings, tileBox);
paintRouteLinePreview.setColor(getRouteLineColor(nightMode));
paintRouteLinePreview.setStrokeWidth(getRouteLineWidth(tileBox));
@ -417,12 +420,14 @@ public class RouteLayer extends OsmandMapLayer implements ContextMenuLayer.ICont
public int getRouteLineColor(boolean night) {
Integer color;
if (routeLineDrawInfo != null) {
color = routeLineDrawInfo.getColor();
color = routeLineDrawInfo.getColor(night);
} else {
int storedValue = view.getSettings().ROUTE_LINE_COLOR.getModeValue(helper.getAppMode());
CommonPreference<Integer> colorPreference = night ?
view.getSettings().ROUTE_LINE_COLOR_NIGHT :
view.getSettings().ROUTE_LINE_COLOR_DAY;
int storedValue = colorPreference.getModeValue(helper.getAppMode());
color = storedValue != 0 ? storedValue : null;
}
if (color == null) {
updateAttrs(new DrawSettings(night), view.getCurrentRotatedTileBox());
color = attrs.paint.getColor();