Merge branch 'master' of ssh://github.com/osmandapp/Osmand into FavouritesBottomSheetMenu
get changes from master
This commit is contained in:
commit
fc5674c021
51 changed files with 759 additions and 197 deletions
|
@ -2,7 +2,6 @@ package net.osmand.util;
|
|||
|
||||
import net.osmand.IProgress;
|
||||
import net.osmand.PlatformUtil;
|
||||
import net.osmand.binary.BinaryMapIndexReader;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
|
||||
|
@ -21,10 +20,12 @@ import java.util.Collection;
|
|||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
|
||||
|
||||
/**
|
||||
|
@ -177,6 +178,24 @@ public class Algorithms {
|
|||
return "";
|
||||
}
|
||||
|
||||
public static Set<String> decodeStringSet(String s) {
|
||||
if (isEmpty(s)) {
|
||||
return Collections.emptySet();
|
||||
}
|
||||
return new HashSet<>(Arrays.asList(s.split(CHAR_TOSPLIT + "")));
|
||||
}
|
||||
|
||||
public static String encodeStringSet(Set<String> set) {
|
||||
if (set != null) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (String s : set) {
|
||||
sb.append(s).append(CHAR_TOSPLIT);
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public static int findFirstNumberEndIndex(String value) {
|
||||
int i = 0;
|
||||
boolean valid = false;
|
||||
|
|
BIN
OsmAnd/res/drawable-hdpi/ic_action_group_select_all.png
Normal file
BIN
OsmAnd/res/drawable-hdpi/ic_action_group_select_all.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
BIN
OsmAnd/res/drawable-mdpi/ic_action_group_select_all.png
Normal file
BIN
OsmAnd/res/drawable-mdpi/ic_action_group_select_all.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
BIN
OsmAnd/res/drawable-xhdpi/ic_action_group_select_all.png
Normal file
BIN
OsmAnd/res/drawable-xhdpi/ic_action_group_select_all.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
BIN
OsmAnd/res/drawable-xxhdpi/ic_action_group_select_all.png
Normal file
BIN
OsmAnd/res/drawable-xxhdpi/ic_action_group_select_all.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
|
@ -0,0 +1,60 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:gravity="center_vertical"
|
||||
android:minHeight="@dimen/bottom_sheet_selected_item_title_height"
|
||||
android:paddingLeft="@dimen/content_padding"
|
||||
android:paddingRight="@dimen/content_padding">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/icon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginEnd="@dimen/bottom_sheet_icon_margin"
|
||||
android:layout_marginRight="@dimen/bottom_sheet_icon_margin"
|
||||
tools:src="@drawable/list_destination"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_weight="1"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:textAppearance="@style/TextAppearance.ListItemTitle"
|
||||
tools:text="Some title"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/description"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="2"
|
||||
android:textAppearance="@style/TextAppearance.ContextMenuSubtitle"
|
||||
tools:text="Some description"/>
|
||||
</LinearLayout>
|
||||
|
||||
<android.support.v7.widget.AppCompatCheckBox
|
||||
android:id="@+id/compound_button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginLeft="@dimen/bottom_sheet_content_margin"
|
||||
android:layout_marginStart="@dimen/bottom_sheet_content_margin"
|
||||
android:background="@null"
|
||||
android:clickable="false"
|
||||
android:focusable="false"
|
||||
android:focusableInTouchMode="false"/>
|
||||
|
||||
</LinearLayout>
|
|
@ -1,6 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:osmand="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -13,7 +14,7 @@
|
|||
android:layout_height="wrap_content">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/items_container"
|
||||
android:id="@+id/scrollable_items_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
|
@ -21,29 +22,73 @@
|
|||
|
||||
</ScrollView>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/non_scrollable_items_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:visibility="gone"/>
|
||||
|
||||
<View
|
||||
android:id="@+id/close_row_divider"
|
||||
android:id="@+id/bottom_row_divider"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="?attr/dashboard_divider"/>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/close_row"
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/bottom_sheet_cancel_button_height"
|
||||
android:background="?attr/selectableItemBackground">
|
||||
android:layout_height="@dimen/bottom_sheet_cancel_button_height">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/close_row_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:textAllCaps="true"
|
||||
android:textColor="?attr/color_dialog_buttons"
|
||||
android:textSize="@dimen/default_desc_text_size"
|
||||
android:textStyle="bold"
|
||||
tools:text="@string/shared_string_cancel"/>
|
||||
<FrameLayout
|
||||
android:id="@+id/dismiss_button"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:background="?attr/selectableItemBackground">
|
||||
|
||||
</FrameLayout>
|
||||
<net.osmand.plus.widgets.TextViewEx
|
||||
android:id="@+id/dismiss_button_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:textAllCaps="true"
|
||||
android:textColor="?attr/color_dialog_buttons"
|
||||
android:textSize="@dimen/default_desc_text_size"
|
||||
osmand:typeface="@string/font_roboto_medium"
|
||||
tools:text="Cancel"/>
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<View
|
||||
android:id="@+id/bottom_buttons_divider"
|
||||
android:layout_width="1dp"
|
||||
android:layout_height="match_parent"
|
||||
android:background="?attr/dashboard_divider"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible"/>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/right_bottom_button"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible">
|
||||
|
||||
<net.osmand.plus.widgets.TextViewEx
|
||||
android:id="@+id/right_bottom_button_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:textAllCaps="true"
|
||||
android:textColor="?attr/color_dialog_buttons"
|
||||
android:textSize="@dimen/default_desc_text_size"
|
||||
osmand:typeface="@string/font_roboto_medium"
|
||||
tools:text="Some Action"/>
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
|
|
@ -1,41 +1,62 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/bottom_sheet_list_item_height"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:minHeight="@dimen/bottom_sheet_list_item_height"
|
||||
android:paddingEnd="@dimen/content_padding"
|
||||
android:paddingLeft="@dimen/content_padding"
|
||||
android:paddingRight="@dimen/content_padding"
|
||||
android:paddingStart="@dimen/content_padding"
|
||||
android:gravity="center_vertical">
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:osmand="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:gravity="center_vertical"
|
||||
android:minHeight="@dimen/bottom_sheet_selected_item_title_height"
|
||||
android:paddingLeft="@dimen/content_padding"
|
||||
android:paddingRight="@dimen/content_padding">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/icon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/bottom_sheet_icon_margin"
|
||||
android:layout_marginRight="@dimen/bottom_sheet_icon_margin"
|
||||
tools:src="@drawable/ic_action_polygom_dark"/>
|
||||
<ImageView
|
||||
android:id="@+id/icon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/bottom_sheet_icon_margin"
|
||||
android:layout_marginRight="@dimen/bottom_sheet_icon_margin"
|
||||
tools:src="@drawable/ic_action_polygom_dark"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/name_text"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:maxLines="1"
|
||||
android:ellipsize="end"
|
||||
tools:text="Berlin trip"
|
||||
android:textAppearance="@style/TextAppearance.ListItemTitle"/>
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_weight="1"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_marginLeft="@dimen/bottom_sheet_content_margin"
|
||||
android:layout_marginStart="@dimen/bottom_sheet_content_margin"
|
||||
android:id="@+id/number_count_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:maxLines="1"
|
||||
tools:text="25"
|
||||
android:textAppearance="@style/TextAppearance.ListItemTitle"/>
|
||||
</LinearLayout>
|
||||
<TextView
|
||||
android:id="@+id/name_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:textAppearance="@style/TextAppearance.ListItemTitle"
|
||||
tools:text="Some title"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/description_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:textAppearance="@style/TextAppearance.ContextMenuSubtitle"
|
||||
android:visibility="gone"
|
||||
tools:text="Some description"
|
||||
tools:visibility="visible"/>
|
||||
</LinearLayout>
|
||||
|
||||
<net.osmand.plus.widgets.TextViewEx
|
||||
android:id="@+id/number_count_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="@dimen/bottom_sheet_content_margin"
|
||||
android:layout_marginStart="@dimen/bottom_sheet_content_margin"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:textColor="?attr/color_dialog_buttons"
|
||||
android:textSize="@dimen/default_list_text_size"
|
||||
osmand:typeface="@string/font_roboto_medium"
|
||||
tools:text="25"/>
|
||||
</LinearLayout>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><resources>
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
|
||||
<string name="show_warnings_title">Mostra alertes…</string>
|
||||
<string name="map_widget_fluorescent">Rutes amb fluorescència</string>
|
||||
|
@ -2812,4 +2813,6 @@ Abasta l\'àrea: %1$s x %2$s</string>
|
|||
<string name="enter_the_file_name">Introduïu el nom del fitxer.</string>
|
||||
<string name="map_import_error">Error d\'importació del mapa</string>
|
||||
<string name="map_imported_successfully">Mapa importat correctament</string>
|
||||
</resources>
|
||||
<string name="clear_all_intermediates">Esborra tots els punts intermedis</string>
|
||||
<string name="group_deleted">S\'ha esborrat el grup</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><resources>
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
|
||||
<string name="switch_to_raster_map_to_see">Off-line vektorové mapy toto místo neobsahují. Mapová data můžete stáhnout v Nastavení (Stáhnout mapy), nebo se přepněte na on-line mapy (vyžaduje modul „On-line mapy“).</string>
|
||||
<string name="send_files_to_osm">Nahrát GPX soubory do OSM?</string>
|
||||
|
@ -1459,7 +1460,7 @@ Proporcionální paměť %4$s MB (limit Androidu %5$s MB, Dalvik %6$s MB).</stri
|
|||
<string name="configure_map">Nastavení mapy</string>
|
||||
<string name="rendering_category_others">Ostatní vlastnosti mapy</string>
|
||||
<string name="map_widget_appearance_rem">Zbývající prvky</string>
|
||||
<string name="search_radius_proximity">Uvnitř</string>
|
||||
<string name="search_radius_proximity">V okruhu</string>
|
||||
<string name="rendering_category_routes">Trasy</string>
|
||||
<string name="rendering_attr_trainLightrailRoutes_name">Vlakové linky</string>
|
||||
<string name="rendering_attr_tramRoutes_name">Tramvajové linky</string>
|
||||
|
@ -2839,4 +2840,5 @@ Zobrazená oblast: %1$s x %2$s</string>
|
|||
<string name="osmand_plus_extended_description_part7">Přispívejte přímo do OSM • Hlaste chyby v datech • Nahrávejte GPX trasy do OSM přímo z aplikace • Přidávejte body zájmu a rovnou je nahrávejte do OSM (nebo později, pokud jste zrovna offline) • Záznam trasy funguje také na pozadí (když je zařízení v režimu spánku) • OsmAnd je aktivně vyvíjený open-source software. Do aplikace může každý přispět hlášením chyb, vylepšováním překladů nebo programováním nových funkcí. Projekt je živý a neustále se vyvíjí díky této spolupráci mezi vývojáři a uživateli. Vývoj je také závislý na finančních příspěvcích pro programování a testování nových funkcí.</string>
|
||||
<string name="osmand_plus_extended_description_part8">Přibližné pokrytí a kvalita map: • Západní Evropa: **** • Východní Evropa: *** • Rusko: *** • Severní Amerika: *** • Jižní Amerika: ** • Asie: ** • Japonsko & Korea: *** • Střední Východ: ** • Afrika: ** • Antarktida: * Mapy většiny států na zeměkouli jsou dostupné ke stažení! Od Afghánistánu po Zimbabwe, od Austrálie po USA, Argentinu, Brazílii, Kanadu, Francii, Německo, Mexiko, Spojené království, Španělsko, …</string>
|
||||
<string name="group_deleted">Skupina smazána</string>
|
||||
</resources>
|
||||
<string name="clear_all_intermediates">Smazat všechny mezicíle</string>
|
||||
</resources>
|
||||
|
|
|
@ -3792,4 +3792,6 @@
|
|||
|
||||
<string name="poi_whitewater_rapid_name">Nomo de kaskado</string>
|
||||
|
||||
<string name="poi_outpost">Ricevejo de aĉetaĵoj</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -3838,4 +3838,6 @@
|
|||
|
||||
<string name="poi_whitewater_rapid_name">Nombre de los rápidos del río</string>
|
||||
|
||||
<string name="poi_outpost">Punto de entrega de la tienda</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><resources>
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
|
||||
<string name="rendering_attr_hideHouseNumbers_name">Números de casa</string>
|
||||
<string name="copying_osmand_file_failed">Falló al copiar archivos</string>
|
||||
|
@ -30,7 +31,7 @@
|
|||
<string name="mark_to_delete">Marcar para borrar</string>
|
||||
|
||||
<string name="local_osm_changes_upload_all_confirm">¿Quieres subir %1$d cambio(s) a OSM?</string>
|
||||
<string name="confirmation_to_clear_history">¿Quieres vaciar el historial?</string>
|
||||
<string name="confirmation_to_clear_history">¿Quieres limpiar el historial?</string>
|
||||
<string name="application_dir_change_warning3">¿Quieres que OsmAnd también copie los archivos de datos al nuevo destino?</string>
|
||||
<string name="storage_directory">Almacenamiento del mapa</string>
|
||||
<string name="shared_string_places">Lugares</string>
|
||||
|
@ -81,8 +82,8 @@ Lon %2$s</string>
|
|||
<string name="shared_string_select_all">Marcar todo</string>
|
||||
<string name="shared_string_deselect">Desmarcar</string>
|
||||
<string name="shared_string_deselect_all">Desmarcar todo</string>
|
||||
<string name="shared_string_clear">Borrar</string>
|
||||
<string name="shared_string_clear_all">Borrar todo</string>
|
||||
<string name="shared_string_clear">Limpiar</string>
|
||||
<string name="shared_string_clear_all">Limpiar todo</string>
|
||||
<string name="shared_string_save">Guardar</string>
|
||||
<string name="shared_string_save_as_gpx">Guardar como nueva traza GPX</string>
|
||||
<string name="shared_string_rename">Renombrar</string>
|
||||
|
@ -653,7 +654,7 @@ Tanto la ubicación como el tiempo del estacionamiento se muestran en el menú p
|
|||
<string name="speak_cameras">Radares de velocidad</string>
|
||||
<string name="speak_traffic_warnings">Avisos de tráfico</string>
|
||||
<string name="osb_author_or_password_not_specified">Indica el usuario y contraseña de OSM en los ajustes</string>
|
||||
<string name="clear_intermediate_points">Quitar destinos intermedios</string>
|
||||
<string name="clear_intermediate_points">Limpiar destinos intermedios</string>
|
||||
<string name="keep_intermediate_points">Mantener destinos intermedios</string>
|
||||
<string name="new_directions_point_dialog">Ya definió destinos intermedios.</string>
|
||||
<string name="context_menu_item_directions_to">Llegar hasta aquí</string>
|
||||
|
@ -692,7 +693,7 @@ Tanto la ubicación como el tiempo del estacionamiento se muestran en el menú p
|
|||
<string name="distance_measurement_start_editing">Comenzar edición</string>
|
||||
<string name="distance_measurement_finish_editing">Terminar edición</string>
|
||||
<string name="distance_measurement_finish_subtrack">Iniciar subtraza nueva</string>
|
||||
<string name="distance_measurement_clear_route">Quitar todos los puntos</string>
|
||||
<string name="distance_measurement_clear_route">Limpiar todos los puntos</string>
|
||||
<string name="distance_measurement_load_gpx">Abrir GPX existente</string>
|
||||
<string name="wait_current_task_finished">Espere hasta que termine la tarea actual</string>
|
||||
<string name="use_kalman_filter_compass_descr">Reduce el ruido en las lecturas de la brújula pero añade inercia.</string>
|
||||
|
@ -705,7 +706,7 @@ Tanto la ubicación como el tiempo del estacionamiento se muestran en el menú p
|
|||
<string name="install_paid">Versión completa</string>
|
||||
<string name="cancel_route">Descartar ruta</string>
|
||||
<string name="cancel_navigation">Parar navegación</string>
|
||||
<string name="clear_destination">Quitar destino</string>
|
||||
<string name="clear_destination">Limpiar destino</string>
|
||||
<string name="download_using_mobile_internet">El Wi-Fi no está conectado en este momento. ¿Usar la conexión actual a Internet para descargar?</string>
|
||||
<string name="street_name">Nombre de calle</string>
|
||||
<string name="hno">Número</string>
|
||||
|
@ -733,7 +734,7 @@ Tanto la ubicación como el tiempo del estacionamiento se muestran en el menú p
|
|||
<string name="local_indexes_cat_srtm">Curvas de nivel</string>
|
||||
<string name="local_indexes_cat_av">Datos multimedia</string>
|
||||
<string name="stop_routing_confirm">¿Quieres parar la navegación?</string>
|
||||
<string name="clear_dest_confirm">¿Quieres quitar el destino (y los destinos intermedios)?</string>
|
||||
<string name="clear_dest_confirm">¿Quieres limpiar el destino (y los destinos intermedios)?</string>
|
||||
<string name="precise_routing_mode_descr">Habilita el cálculo de rutas precisas sin interferencias. Aún está limitado por la distancia y es lento.</string>
|
||||
<string name="precise_routing_mode">Enrutado preciso (alfa)</string>
|
||||
<string name="recording_context_menu_show">Mostrar</string>
|
||||
|
@ -2021,7 +2022,7 @@ Tanto la ubicación como el tiempo del estacionamiento se muestran en el menú p
|
|||
|
||||
<string name="show_map_markers_description">Activar función de marcadores del mapa.</string>
|
||||
<string name="clear_active_markers_q">¿Quieres quitar todos los marcadores activos?</string>
|
||||
<string name="clear_markers_history_q">¿Quieres vaciar el historial de marcadores del mapa?</string>
|
||||
<string name="clear_markers_history_q">¿Quieres limpiar el historial de marcadores del mapa?</string>
|
||||
<string name="active_markers">Marcadores activos</string>
|
||||
<string name="map_markers">Marcadores del mapa</string>
|
||||
<string name="map_marker">Marcador del mapa</string>
|
||||
|
@ -2938,4 +2939,5 @@ Proporciona un código completo</string>
|
|||
<string name="distance_nearest">Distancia: más cerca primero</string>
|
||||
<string name="rendering_attr_whiteWaterSports_name">Deportes acuáticos</string>
|
||||
<string name="group_deleted">Grupo borrado</string>
|
||||
<string name="clear_all_intermediates">Limpiar todos los puntos intermedios</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><resources>
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
|
||||
<string name="rendering_attr_hideHouseNumbers_name">Números de casa</string>
|
||||
<string name="copying_osmand_file_failed">Falló al copiar archivos</string>
|
||||
|
@ -30,7 +31,7 @@
|
|||
<string name="mark_to_delete">Marcar para borrar</string>
|
||||
|
||||
<string name="local_osm_changes_upload_all_confirm">¿Quieres subir %1$d cambio(s) a OSM?</string>
|
||||
<string name="confirmation_to_clear_history">¿Quieres vaciar el historial?</string>
|
||||
<string name="confirmation_to_clear_history">¿Quieres limpiar el historial?</string>
|
||||
<string name="application_dir_change_warning3">¿Quieres que OsmAnd también copie los archivos de datos al nuevo destino?</string>
|
||||
<string name="storage_directory">Almacenamiento del mapa</string>
|
||||
<string name="shared_string_places">Lugares</string>
|
||||
|
@ -81,8 +82,8 @@ Lon %2$s</string>
|
|||
<string name="shared_string_select_all">Marcar todo</string>
|
||||
<string name="shared_string_deselect">Desmarcar</string>
|
||||
<string name="shared_string_deselect_all">Desmarcar todo</string>
|
||||
<string name="shared_string_clear">Borrar</string>
|
||||
<string name="shared_string_clear_all">Borrar todo</string>
|
||||
<string name="shared_string_clear">Limpiar</string>
|
||||
<string name="shared_string_clear_all">Limpiar todo</string>
|
||||
<string name="shared_string_save">Guardar</string>
|
||||
<string name="shared_string_save_as_gpx">Guardar como nueva traza GPX</string>
|
||||
<string name="shared_string_rename">Renombrar</string>
|
||||
|
@ -653,7 +654,7 @@ Tanto la ubicación como el tiempo del estacionamiento se muestran en el menú p
|
|||
<string name="speak_cameras">Radares de velocidad</string>
|
||||
<string name="speak_traffic_warnings">Avisos de tráfico</string>
|
||||
<string name="osb_author_or_password_not_specified">Indica el usuario y contraseña de OSM en los ajustes</string>
|
||||
<string name="clear_intermediate_points">Quitar destinos intermedios</string>
|
||||
<string name="clear_intermediate_points">Limpiar destinos intermedios</string>
|
||||
<string name="keep_intermediate_points">Mantener destinos intermedios</string>
|
||||
<string name="new_directions_point_dialog">Ya definió destinos intermedios.</string>
|
||||
<string name="context_menu_item_directions_to">Llegar hasta aquí</string>
|
||||
|
@ -692,7 +693,7 @@ Tanto la ubicación como el tiempo del estacionamiento se muestran en el menú p
|
|||
<string name="distance_measurement_start_editing">Comenzar edición</string>
|
||||
<string name="distance_measurement_finish_editing">Terminar edición</string>
|
||||
<string name="distance_measurement_finish_subtrack">Iniciar subtraza nueva</string>
|
||||
<string name="distance_measurement_clear_route">Quitar todos los puntos</string>
|
||||
<string name="distance_measurement_clear_route">Limpiar todos los puntos</string>
|
||||
<string name="distance_measurement_load_gpx">Abrir GPX existente</string>
|
||||
<string name="wait_current_task_finished">Espere hasta que termine la tarea actual</string>
|
||||
<string name="use_kalman_filter_compass_descr">Reduce el ruido en las lecturas de la brújula pero añade inercia.</string>
|
||||
|
@ -705,7 +706,7 @@ Tanto la ubicación como el tiempo del estacionamiento se muestran en el menú p
|
|||
<string name="install_paid">Versión completa</string>
|
||||
<string name="cancel_route">Descartar ruta</string>
|
||||
<string name="cancel_navigation">Parar navegación</string>
|
||||
<string name="clear_destination">Quitar destino</string>
|
||||
<string name="clear_destination">Limpiar destino</string>
|
||||
<string name="download_using_mobile_internet">El Wi-Fi no está conectado en este momento. ¿Usar la conexión actual a Internet para descargar?</string>
|
||||
<string name="street_name">Nombre de calle</string>
|
||||
<string name="hno">Número</string>
|
||||
|
@ -733,7 +734,7 @@ Tanto la ubicación como el tiempo del estacionamiento se muestran en el menú p
|
|||
<string name="local_indexes_cat_srtm">Curvas de nivel</string>
|
||||
<string name="local_indexes_cat_av">Datos multimedia</string>
|
||||
<string name="stop_routing_confirm">¿Quieres parar la navegación?</string>
|
||||
<string name="clear_dest_confirm">¿Quieres quitar el destino (y los destinos intermedios)?</string>
|
||||
<string name="clear_dest_confirm">¿Quieres limpiar el destino (y los destinos intermedios)?</string>
|
||||
<string name="precise_routing_mode_descr">Habilita el cálculo de rutas precisas sin interferencias. Aún está limitado por la distancia y es lento.</string>
|
||||
<string name="precise_routing_mode">Enrutado preciso (alfa)</string>
|
||||
<string name="recording_context_menu_show">Mostrar</string>
|
||||
|
@ -838,7 +839,7 @@ Tanto la ubicación como el tiempo del estacionamiento se muestran en el menú p
|
|||
<string name="poi_filter_for_tourists">Para turistas</string>
|
||||
<string name="poi_filter_fuel">Combustible</string>
|
||||
<string name="show_warnings_title">Mostrar alertas…</string>
|
||||
<string name="show_warnings_descr">Configura avisos de tráfico (límites de velocidad, paradas forzosas, badenes, túneles), radares de velocidad, e información de carriles.</string>
|
||||
<string name="show_warnings_descr">Configura avisos de tráfico (límites de velocidad, paradas forzosas, lomadas, túneles), radares de velocidad, e información de carriles.</string>
|
||||
<string name="use_compass_navigation_descr">Usa la brújula cuando no se detecta la dirección.</string>
|
||||
<string name="use_compass_navigation">Usar brújula</string>
|
||||
<string name="avoid_motorway">Evitar autopistas</string>
|
||||
|
@ -851,7 +852,7 @@ Tanto la ubicación como el tiempo del estacionamiento se muestran en el menú p
|
|||
<string name="osmand_play_title_30_chars">Navegación y Mapas OsmAnd</string>
|
||||
<string name="osmand_short_description_80_chars">Visor y navegador móvil global de mapas OSM con y sin conexión</string>
|
||||
<string name="osmand_long_description_1000_chars">"OsmAnd (OSM Automated Navigation Directions, y en español, Guía de Navegación Automatizada de OSM), es una aplicación de navegación de código abierto con acceso a una amplia variedad de datos globales de OpenStreetMap (OSM). Todos los datos del mapa (vectores y teselas) pueden ser almacenados en la memoria del teléfono para su uso sin conexión. OsmAnd también ofrece funcionalidad de rutas con y sin conexión, incluyendo indicaciones giro-a-giro por voz.
|
||||
\n
|
||||
\n
|
||||
\n Algunas de las funciones fundamentales:
|
||||
\n - Completa funcionalidad sin conexión (almacena los mapas vectoriales o teselas descargados en la memoria del dispositivo)
|
||||
\n - Mapas vectoriales compactos disponibles de todo el planeta
|
||||
|
@ -869,40 +870,27 @@ Tanto la ubicación como el tiempo del estacionamiento se muestran en el menú p
|
|||
\n Limitaciones de la versión gratuita de OsmAnd:
|
||||
\n - Límite del número de mapas descargados
|
||||
\n - Sin acceso a los PDI descargados de Wikipedia.
|
||||
\n
|
||||
\n
|
||||
\n OsmAnd está siendo desarrollado activamente. Nuestro proyecto y su progreso adicional se basa en contribuciones económicas para financiar el desarrollo y las pruebas de nuevas funcionalidades. Por favor, considera comprar OsmAnd+, financiar nuevas funciones o hacer una donación general en OsmAnd.net."</string>
|
||||
|
||||
<string name="osmand_plus_play_title_30_chars">Navegación y Mapas OsmAnd+</string>
|
||||
<string name="osmand_plus_short_description_80_chars">Visor y navegador móvil global de mapas OSM con y sin conexión</string>
|
||||
<string name="osmand_plus_long_description_1000_chars">"OsmAnd+ (OSM Automated Navigation Directions, y en español, Guía de Navegación Automatizada de OSM), es una aplicación de navegación de código abierto con acceso a una amplia variedad de datos globales de OpenStreetMap (OSM). Todos los datos del mapa (vectores y teselas), pueden ser almacenados en la memoria del teléfono para su uso sin conexión. OsmAnd también ofrece funcionalidad de rutas con y sin conexión con guía giro-a-giro por voz.
|
||||
\n
|
||||
\n
|
||||
\n OsmAnd+ es la versión de pago de la aplicación, comprándola das soporte al proyecto, financias el desarrollo de nuevas funciones, y recibes las últimas actualizaciones.
|
||||
\n
|
||||
\n
|
||||
\n Algunas de las funciones fundamentales:
|
||||
\n
|
||||
\n - Completa funcionalidad sin conexión (guarda los mapas vectoriales o teselas descargados en el almacenamiento del dispositivo)
|
||||
\n
|
||||
\n - Mapas mundiales vectoriales compactos disponibles
|
||||
\n
|
||||
\n - Descarga ilimitada de mapas de países o regiones directamente desde la aplicación
|
||||
\n
|
||||
\n - Posibilidad de superponer varias capas de mapa, como GPX o rutas de navegación, Puntos de Interés, favoritos, curvas de nivel, paradas de transporte público, mapas adicionales con transparencia personalizable
|
||||
\n
|
||||
\n - Búsqueda sin conexión de direcciones y lugares (PDI)
|
||||
\n
|
||||
\n - Rutas sin conexión para distancias de rango medio
|
||||
\n
|
||||
\n
|
||||
\n - Modos de automóvil, bicicleta y peatón con:
|
||||
\n
|
||||
\n - (Opcional) Cambio automático de vista día/noche
|
||||
\n
|
||||
\n - (Opcional) Ampliación del mapa según la velocidad
|
||||
\n
|
||||
\n - (Opcional) Alineación del mapa, según brújula o dirección del movimiento
|
||||
\n
|
||||
\n - (Opcional) Indicación de carriles, mostrar límites de velocidad, voces grabadas y sintetizadas"</string>
|
||||
|
||||
<string name="filterpoi_activity">Crear filtro PDI</string>
|
||||
|
@ -1103,13 +1091,13 @@ Tanto la ubicación como el tiempo del estacionamiento se muestran en el menú p
|
|||
<string name="offline_edition_descr">Usa siempre edición sin conexión.</string>
|
||||
<string name="update_poi_does_not_change_indexes">Los cambios de PDI dentro de la aplicación, no afectan a los archivos del mapa descargados. Estos se guardan en un archivo local.</string>
|
||||
<string name="local_openstreetmap_uploading">Subiendo…</string>
|
||||
<string name="local_openstreetmap_were_uploaded">{0} PDI/Notas de OSM subidas</string>
|
||||
<string name="local_openstreetmap_were_uploaded">{0} PDI/Notas de OSM subidos</string>
|
||||
<string name="local_openstreetmap_uploadall">Enviar todos</string>
|
||||
<string name="local_openstreetmap_upload">Enviar cambio a OSM</string>
|
||||
<string name="local_openstreetmap_delete">Quitar modificación</string>
|
||||
<string name="local_openstreetmap_descr_title">Edición asíncrona OSM:</string>
|
||||
<string name="local_openstreetmap_settings">PDI/Notas de OSM guardados localmente</string>
|
||||
<string name="local_openstreetmap_settings_descr">Muestra y gestiona PDI/notas de OSM guardados en la base de datos local.</string>
|
||||
<string name="local_openstreetmap_settings_descr">Muestra y gestiona PDI/notas de OSM guardadas en la base de datos local.</string>
|
||||
<string name="live_monitoring_interval_descr">Indica el intervalo de registro en vivo.</string>
|
||||
<string name="live_monitoring_interval">Intervalo de registro en vivo</string>
|
||||
<string name="live_monitoring_url_descr">Indica la dirección web con sintaxis de parámetros : lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}.</string>
|
||||
|
@ -1906,7 +1894,7 @@ Tanto la ubicación como el tiempo del estacionamiento se muestran en el menú p
|
|||
<string name="osm_edit_commented_note">Nota de OSM comentada</string>
|
||||
<string name="osm_edit_removed_note">Nota de OSM borrada</string>
|
||||
<string name="osm_edit_created_note">Nota de OSM creada</string>
|
||||
<string name="osn_bug_name">Notas de OSM</string>
|
||||
<string name="osn_bug_name">Nota de OSM</string>
|
||||
<string name="osn_add_dialog_title">Crear nota</string>
|
||||
<string name="osn_comment_dialog_title">Añadir comentario</string>
|
||||
<string name="osn_reopen_dialog_title">Reabrir nota</string>
|
||||
|
@ -2034,7 +2022,7 @@ Tanto la ubicación como el tiempo del estacionamiento se muestran en el menú p
|
|||
|
||||
<string name="show_map_markers_description">Activar función de marcadores del mapa.</string>
|
||||
<string name="clear_active_markers_q">¿Quieres quitar todos los marcadores activos?</string>
|
||||
<string name="clear_markers_history_q">¿Quieres vaciar el historial de marcadores del mapa?</string>
|
||||
<string name="clear_markers_history_q">¿Quieres limpiar el historial de marcadores del mapa?</string>
|
||||
<string name="active_markers">Marcadores activos</string>
|
||||
<string name="map_markers">Marcadores del mapa</string>
|
||||
<string name="map_marker">Marcador del mapa</string>
|
||||
|
@ -2196,7 +2184,7 @@ Si amas a OsmAnd, OSM y quieres apoyarlos, esta es una perfecta manera de hacerl
|
|||
<string name="route_stops_before">%1$s parada(s) anterior(es)</string>
|
||||
<string name="rendering_attr_hideOverground_name">Objetos en superficie</string>
|
||||
|
||||
<string name="routing_attr_short_way_name">Ruta de menor consumo (corta)</string>
|
||||
<string name="routing_attr_short_way_name">Ruta de bajo consumo (corta)</string>
|
||||
<string name="routing_attr_short_way_description">Usa la ruta de menor consumo en combustible (usualmente la más corta).</string>
|
||||
<string name="replace_favorite_confirmation">¿Quieres reemplazar el favorito «%1$s»?</string>
|
||||
<string name="shared_string_change">Cambiar</string>
|
||||
|
@ -2470,9 +2458,7 @@ Proporciona un código completo</string>
|
|||
<string name="routing_attr_relief_smoothness_factor_name">Elegir la fluctuación de elevación</string>
|
||||
<string name="right_side_navigation">Conducir por la derecha</string>
|
||||
<string name="driving_region_automatic">Automático</string>
|
||||
<string name="osmand_extended_description_part1">OsmAnd (OSM Automated Navigation Directions, y en español, Guía de Navegación Automatizada de OSM) es una aplicación de mapa y navegación con acceso a los datos libres de OpenStreetMap (OSM), en todo el mundo y de alta calidad.
|
||||
\n
|
||||
\n Disfruta del navegador por voz y óptico, la visualización de PDI (puntos de interés), la creación y gestión de trazas GPX, utiliza la información de visualización y la altitud de las curvas de nivel (mediante un complemento), elige entre modos de automóvil, bicicleta o peatón, edita en OSM y mucho más.</string>
|
||||
<string name="osmand_extended_description_part1">OsmAnd (OSM Automated Navigation Directions, y en español, Guía de Navegación Automatizada de OSM) es una aplicación de mapa y navegación con acceso a los datos libres de OpenStreetMap (OSM), en todo el mundo y de alta calidad. Disfruta del navegador por voz y óptico, la visualización de PDI (puntos de interés), la creación y gestión de trazas GPX, utiliza la información de visualización y la altitud de las curvas de nivel (mediante un complemento), elige entre modos de automóvil, bicicleta o peatón, edita en OSM y mucho más.</string>
|
||||
<string name="osmand_extended_description_part2">"Navegación GPS
|
||||
\n • Puedes eligir entre los modos sin conexión (sin cargos de roaming al viajar al extranjero) o en línea (rápido)
|
||||
\n • La guía por voz giro-a-giro lo guía a lo largo del camino (voces grabadas y sintetizadas)
|
||||
|
@ -2485,7 +2471,7 @@ Proporciona un código completo</string>
|
|||
\n • Soporta puntos intermedios en el itinerario
|
||||
\n • Puedes grabar tu viaje o subir una traza GPX y seguirla"</string>
|
||||
<string name="osmand_extended_description_part3">Mapa
|
||||
\n • Muestra PDI (puntos de interés) cercanos
|
||||
\n • Muestra de PDI (puntos de interés) cercanos
|
||||
\n • Ajusta el mapa a la dirección del movimiento (o brújula)
|
||||
\n • Muestra dónde estás y hacia dónde miras
|
||||
\n • Comparte la ubicación para que tus amigos te encuentren
|
||||
|
@ -2511,7 +2497,8 @@ Proporciona un código completo</string>
|
|||
\n • Medio Oriente: **
|
||||
\n • África: **
|
||||
\n • Antártida: *
|
||||
\n ¡Más países alrededor del globo están disponibles para descargar! Obtén un navegador confiable en tu país - ya sea Francia, Alemania, México, Reino Unido, España, Países bajos, Estados Unidos, Rusia, Brasil o cualquier otro.</string>
|
||||
\n ¡Más países alrededor del globo están disponibles para descargar!
|
||||
\n Obtén un navegador confiable en tu país - ya sea Francia, Alemania, México, Reino Unido, España, Países bajos, Estados Unidos, Rusia, Brasil o cualquier otro.</string>
|
||||
<string name="osmand_plus_extended_description_part2">"Navegación GPS
|
||||
\n • Funciona en línea (rápido) o sin conexión (sin cargos de roaming al viajar al extranjero)
|
||||
\n • Guía por voz giro-a-giro (voces grabadas y sintetizadas)
|
||||
|
@ -2524,7 +2511,7 @@ Proporciona un código completo</string>
|
|||
\n • Muestra tu ubicación y orientación
|
||||
\n • (Opcional) Ajusta el mapa a la dirección del movimiento (o brújula)
|
||||
\n • Guarda lugares importantes en Favoritos
|
||||
\n • Muestra PDI (puntos de interés) cercanos
|
||||
\n • Muestra de PDI (puntos de interés) cercanos
|
||||
\n • Muestra teselas en línea especiales, vista satelital (de Bing), diferentes superposiciones como trazas de travesía/navegación GPX y capas adicionales con transparencia personalizable
|
||||
\n • Permite elegir como mostrar los nombres en el mapa: en inglés, local, u ortografía fonética</string>
|
||||
<string name="osmand_plus_extended_description_part4">Uso de datos de OSM y Wikipedia
|
||||
|
@ -2622,7 +2609,7 @@ Proporciona un código completo</string>
|
|||
<string name="quick_action_showhide_osmbugs_title">Alternar vista de notas de OSM</string>
|
||||
<string name="quick_action_osmbugs_show">Mostrar notas de OSM</string>
|
||||
<string name="quick_action_osmbugs_hide">Ocultar notas de OSM</string>
|
||||
<string name="quick_action_showhide_osmbugs_descr">Al pulsar el botón de acción se mostrarán u ocultarán los notas de OSM en el mapa.</string>
|
||||
<string name="quick_action_showhide_osmbugs_descr">Al pulsar el botón de acción se mostrarán u ocultarán las notas de OSM en el mapa.</string>
|
||||
<string name="sorted_by_distance">Ordenados por distancia</string>
|
||||
<string name="search_favorites">Buscar favoritos</string>
|
||||
<string name="restart_search">Reiniciar búsqueda</string>
|
||||
|
@ -2659,7 +2646,7 @@ Proporciona un código completo</string>
|
|||
<string name="mapillary_menu_edit_text_hint">Escribir nombre de usuario</string>
|
||||
<string name="mapillary_menu_descr_username">Ver sólo imágenes añadidas por</string>
|
||||
<string name="mapillary_menu_title_username">Nombre de usuario</string>
|
||||
<string name="mapillary_menu_filter_description">Puedes filtrar imágenes por usuario o por fecha. Los filtros sólo aplican para los primeros acercamientos.</string>
|
||||
<string name="mapillary_menu_filter_description">Puedes filtrar imágenes por usuario o por fecha. Los filtros sólo aplican en los primeros acercamientos.</string>
|
||||
<string name="shared_string_reload">Recargar</string>
|
||||
<string name="mapillary_menu_descr_tile_cache">Recarga las teselas para ver la información actualizada.</string>
|
||||
<string name="mapillary_menu_title_tile_cache">Caché de teselas</string>
|
||||
|
@ -2846,7 +2833,7 @@ Proporciona un código completo</string>
|
|||
<string name="shared_string_more_without_dots">Más</string>
|
||||
<string name="empty_state_markers_history">\@string/shared_string_history</string>
|
||||
<string name="empty_state_osm_edits">Crear o modificar objetos OSM</string>
|
||||
<string name="empty_state_osm_edits_descr">Crea o modifica puntos de interés, abre o comenta problemas del mapa (notas de OSM), y contribuye con grabaciones GPX.</string>
|
||||
<string name="empty_state_osm_edits_descr">Crea o modifica puntos de interés, abre o comenta notas de OSM, y contribuye con grabaciones GPX.</string>
|
||||
<string name="shared_string_deleted">Borrado</string>
|
||||
<string name="shared_string_edited">Editado</string>
|
||||
<string name="shared_string_added">Añadido</string>
|
||||
|
@ -2906,7 +2893,7 @@ Proporciona un código completo</string>
|
|||
\n
|
||||
\n • El tiempo de caminata es consciente del terreno ascendente (regla de Naismith).
|
||||
\n</string>
|
||||
<string name="day_off_label">Cerrado (día libre)</string>
|
||||
<string name="day_off_label">cerrado (día libre)</string>
|
||||
<string name="winter_and_ski_renderer">Invierno y esquí</string>
|
||||
<string name="touring_view_renderer">Vista de Touring (contraste y detalles)</string>
|
||||
<string name="nautical_renderer">Náutico</string>
|
||||
|
@ -2928,7 +2915,7 @@ Proporciona un código completo</string>
|
|||
<string name="last_intermediate_dest_description">Añade la ubicación como último destino intermedio</string>
|
||||
<string name="first_intermediate_dest_description">Añade la ubicación como primer destino intermedio</string>
|
||||
<string name="subsequent_dest_description">Mueve el destino hacia arriba y crea un nuevo destino</string>
|
||||
<string name="make_as_start_point">Establecer como punto de inicio</string>
|
||||
<string name="make_as_start_point">Reemplazar punto de inicio</string>
|
||||
<string name="map_import_error">Error de importación del mapa</string>
|
||||
<string name="map_imported_successfully">Mapa importado correctamente</string>
|
||||
<string name="enter_the_file_name">Ingresa el nombre del archivo.</string>
|
||||
|
@ -2950,4 +2937,6 @@ Proporciona un código completo</string>
|
|||
<string name="north_abbreviation">N</string>
|
||||
<string name="optional_point_name">Nombre de punto opcional</string>
|
||||
<string name="rendering_attr_whiteWaterSports_name">Deportes acuáticos</string>
|
||||
</resources>
|
||||
<string name="clear_all_intermediates">Limpiar todos los puntos intermedios</string>
|
||||
<string name="group_deleted">Grupo borrado</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><resources>
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="local_index_tile_data_zooms">Deskargatutako zoomak: %1$s</string>
|
||||
<string name="local_index_tile_data_expire">Iraungitze epea (minutuak): %1$s</string>
|
||||
<string name="local_index_tile_data_downloadable">Deskargagarria: %1$s</string>
|
||||
|
@ -2968,4 +2969,5 @@ Area honi dagokio: %1$s x %2$s</string>
|
|||
<string name="optional_point_name">Aukerazko puntuaren izena</string>
|
||||
<string name="group_deleted">Taldea ezabatuta</string>
|
||||
<string name="rendering_attr_whiteWaterSports_name">Ur arinetako kirolak</string>
|
||||
<string name="clear_all_intermediates">Garbitu tarteko puntu guztiak</string>
|
||||
</resources>
|
||||
|
|
|
@ -3312,6 +3312,17 @@
|
|||
<string name="poi_health_facility_type_nursing_home">Type d\'établissement de santé : soins infirmiers à domicile</string>
|
||||
<string name="poi_health_facility_type_support_group_home">Type d\'établissement de santé : groupe de soutien à domicile</string>
|
||||
|
||||
<string name="poi_health_amenity_type_scales">Échelles publiques</string>
|
||||
<string name="poi_health_amenity_type_scales">Balances publiques</string>
|
||||
|
||||
</resources>
|
||||
<string name="poi_protection_object_historic">Objet de protection : historique</string>
|
||||
<string name="poi_protection_object_nature">Objet de protection : nature</string>
|
||||
<string name="poi_protection_object_habitat">Objet de protection : habitat</string>
|
||||
<string name="poi_protection_object_water">Objet de protection : eau</string>
|
||||
|
||||
<string name="poi_socket_nema_14_30_yes">NEMA 14-30</string>
|
||||
<string name="poi_socket_nema_14_50_yes">NEMA 14-50</string>
|
||||
<string name="poi_socket_schuko_yes">Schuko</string>
|
||||
<string name="poi_socket_bs1363_yes">BS 1363</string>
|
||||
<string name="poi_whitewater_rapid_name">Nom des rapides</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><resources>
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="offline_edition">Modifications hors-ligne</string>
|
||||
<string name="offline_edition_descr">Toujours utiliser l\'édition hors-ligne.</string>
|
||||
|
||||
|
@ -3103,4 +3104,5 @@ représentant la zone : %1$s x %2$s</string>
|
|||
<string name="distance_nearest">Distance : plus proche en premier</string>
|
||||
<string name="rendering_attr_whiteWaterSports_name">Sports d\'eau douce</string>
|
||||
<string name="group_deleted">Groupe supprimé</string>
|
||||
</resources>
|
||||
<string name="clear_all_intermediates">Effacer toutes les étapes</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><resources><string name="fav_point_dublicate_message">O nome do punto favorito xa está usado; foi cambiado a %1$s para evitar os duplicados.</string>
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources><string name="fav_point_dublicate_message">O nome do punto favorito xa está usado; foi cambiado a %1$s para evitar os duplicados.</string>
|
||||
<string name="text_size_descr">Configurar o tamaño da letra no mapa.</string>
|
||||
<string name="text_size">Tamaño da letra</string>
|
||||
<string name="traffic_warning_speed_limit">Límite de velocidade</string>
|
||||
|
@ -2638,4 +2639,83 @@ Pódese pechar esta vista desactivándoa aquí ou cambiando o «Estilo de mapa»
|
|||
<string name="shared_string_back">Atrás</string>
|
||||
<string name="view">Ver</string>
|
||||
<string name="wrong_format">Formato erróneo</string>
|
||||
</resources>
|
||||
<string name="clear_all_intermediates">Limpar todos os puntos intermedios</string>
|
||||
<string name="group_deleted">Grupo eliminado</string>
|
||||
<string name="rendering_attr_whiteWaterSports_name">Deportes de augas bravas</string>
|
||||
<string name="distance_farthest">Distancia: o máis distante primeiro</string>
|
||||
<string name="distance_nearest">Distancia: o máis próximo primeiro</string>
|
||||
<string name="enter_lon">Introduza a lonxitude</string>
|
||||
<string name="enter_lat">Introduza a latitude</string>
|
||||
<string name="enter_lat_and_lon">Introduza a latitude e a lonxitude</string>
|
||||
<string name="dd_mm_ss_format">GG°MM′SS″</string>
|
||||
<string name="dd_dddddd_format">GG,GGGGGG°</string>
|
||||
<string name="dd_ddddd_format">GG.GGGGG°</string>
|
||||
<string name="dd_mm_mmmm_format">GG°MM.MMMM′</string>
|
||||
<string name="dd_mm_mmm_format">GG°MM.MMM′</string>
|
||||
<string name="east_abbreviation">L</string>
|
||||
<string name="west_abbreviation">O</string>
|
||||
<string name="south_abbreviation">S</string>
|
||||
<string name="north_abbreviation">N</string>
|
||||
<string name="optional_point_name">Nome do punto opcional</string>
|
||||
<string name="transport_nearby_routes_within">Rutas a menos de</string>
|
||||
<string name="transport_nearby_routes">PRETO DE</string>
|
||||
<string name="enter_the_file_name">Introduza o nome do ficheiro.</string>
|
||||
<string name="map_import_error">Erro de importación de mapa</string>
|
||||
<string name="map_imported_successfully">Mapa importado correctamente</string>
|
||||
<string name="make_as_start_point">Tornalo en punto de partida</string>
|
||||
<string name="shared_string_current">Actual</string>
|
||||
<string name="last_intermediate_dest_description">Engade a última parada ao longo do percorrido</string>
|
||||
<string name="first_intermediate_dest_description">Engade a primeira parada do percorrido</string>
|
||||
<string name="subsequent_dest_description">Subir o destino e crear destino</string>
|
||||
<string name="switch_osm_notes_visibility_desc">Mostrar/Agochar as Notas de OSM no mapa.</string>
|
||||
<string name="gpx_file_desc">GPX - adecuado para exportar a JOSM ou outros editores de OSM.</string>
|
||||
<string name="osc_file_desc">OSC - adecuado para exportar a OpenStreetMap.</string>
|
||||
<string name="gpx_file">Ficheiro GPX</string>
|
||||
<string name="osc_file">Ficheiro OSC</string>
|
||||
<string name="choose_file_type">Escolla o tipo de ficheiro</string>
|
||||
<string name="osm_edits_export_desc">Seleccione o tipo de exportación: Notas de OSM, PdI ou ambos.</string>
|
||||
<string name="all_data">Todos os datos</string>
|
||||
<string name="osm_notes">Notas de OSM</string>
|
||||
<string name="will_open_tomorrow_at">Abrirá mañá ás</string>
|
||||
<string name="rendering_attr_hidePOILabels_name">Etiquetas de PdI</string>
|
||||
<string name="shared_string_without_name">Sen nome</string>
|
||||
<string name="what_is_here">O que hai aquí:</string>
|
||||
<string name="parked_at">aparcado en</string>
|
||||
<string name="pick_up_till">Recoller até ás</string>
|
||||
<string name="without_time_limit">Sen límite de tempo</string>
|
||||
<string name="context_menu_read_full_article">Lea o artigo completo</string>
|
||||
<string name="context_menu_read_article">Lea o artigo</string>
|
||||
<string name="context_menu_points_of_group">Todos os puntos do grupo</string>
|
||||
<string name="open_from">Aberto a partir das</string>
|
||||
<string name="open_till">Aberto até as</string>
|
||||
<string name="will_close_at">Fechará ás</string>
|
||||
<string name="will_open_at">Abrirá ás</string>
|
||||
<string name="will_open_on">Abrirá ás</string>
|
||||
<string name="additional_actions">Accións adicionais</string>
|
||||
<string name="av_locations_selected_desc">Ficheiro GPX con coordenadas e datos das notas seleccionadas.</string>
|
||||
<string name="av_locations_all_desc">Ficheiro GPX con coordenadas e datos de todas as notas.</string>
|
||||
<string name="modify_the_search_query">Modificar a consulta da busca.</string>
|
||||
<string name="shared_string_actions">Accións</string>
|
||||
<string name="shared_string_marker">Marcador</string>
|
||||
<string name="empty_state_osm_edits">Crear ou modificar obxectos de OSM</string>
|
||||
<string name="empty_state_osm_edits_descr">Crear ou modificar PdI de OSM, abrir ou comentar Notas de OSM e contribuír con ficheiros GPX gravados.</string>
|
||||
<string name="shared_string_deleted">Eliminado</string>
|
||||
<string name="shared_string_edited">Editado</string>
|
||||
<string name="shared_string_added">Engadido</string>
|
||||
<string name="marker_activated">Activouse o marcador %s</string>
|
||||
<string name="one_tap_active_descr">Toque nun marcador do mapa para subilo para a parte superior dos marcadores activos sen abrir o menú de contexto.</string>
|
||||
<string name="one_tap_active">Activar cun toque</string>
|
||||
<string name="empty_state_av_notes">Tome notas!</string>
|
||||
<string name="empty_state_av_notes_desc">Engada unha nota de son, vídeo ou foto a cada punto do mapa empregando o trebello ou o menú de contexto.</string>
|
||||
<string name="notes_by_date">Notas por data</string>
|
||||
<string name="by_date">Por data</string>
|
||||
<string name="by_type">Por tipo</string>
|
||||
<string name="looking_for_tracks_with_waypoints">Buscando pistas con puntos de pasaxe</string>
|
||||
<string name="shared_string_more_without_dots">Máis</string>
|
||||
<string name="add_favourites_group_to_markers_descr">Seleccione unha categoría favorita para engadir aos marcadores.</string>
|
||||
<string name="favourites_group">Categoría de favoritos</string>
|
||||
<string name="empty_state_markers_active">Cree marcadores de mapa!</string>
|
||||
<string name="empty_state_markers_history_desc">Os marcadores marcados como pasados aparecen nesta pantalla.</string>
|
||||
<string name="tap_on_map_to_hide_interface_descr">Un toque no mapa alterna entre os botóns de control e os trebellos.</string>
|
||||
<string name="mark_passed">Marcador pasado</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><resources>
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="use_fluorescent_overlays">Sovrapposizioni fluorescenti</string>
|
||||
<string name="use_fluorescent_overlays_descr">Usa colori fluorescenti per visualizzare tracce e percorsi.</string>
|
||||
<string name="offline_edition">Modifiche offline</string>
|
||||
|
@ -3065,4 +3066,6 @@ Rappresenta l\'area: %1$s x %2$s</string>
|
|||
<string name="winter_and_ski_renderer">Inverno e sci</string>
|
||||
<string name="touring_view_renderer">Vista turistica (contrasto e dettagli)</string>
|
||||
<string name="group_deleted">Gruppo cancellato</string>
|
||||
<string name="clear_all_intermediates">Cancella tutti i punti intermedi</string>
|
||||
<string name="osm_recipients_label">Riceventi OSM</string>
|
||||
</resources>
|
||||
|
|
|
@ -3741,4 +3741,6 @@
|
|||
|
||||
<string name="poi_whitewater_rapid_name">Название речного порога</string>
|
||||
|
||||
<string name="poi_outpost">Пункт выдачи заказов</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><resources>
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="av_locations_selected_desc">Файл GPX с координатами и данными выбранных заметок.</string>
|
||||
<string name="av_locations_all_desc">Файл GPX с координатами и данными всех заметок.</string>
|
||||
<string name="favorite_empty_place_name">Место</string>
|
||||
|
@ -2862,4 +2863,5 @@
|
|||
<string name="distance_farthest">Расстояние: сначала отдаленная</string>
|
||||
<string name="distance_nearest">Расстояние: сначала ближайшая</string>
|
||||
<string name="group_deleted">Группа удалена</string>
|
||||
<string name="clear_all_intermediates">Очистить все промежуточные точки</string>
|
||||
</resources>
|
||||
|
|
|
@ -2967,4 +2967,21 @@
|
|||
<string name="poi_climbing_trad_yes">Traditzionale: eja</string>
|
||||
<string name="poi_climbing_ice_yes">Astra: eja</string>
|
||||
<string name="poi_climbing_ice_no">Astra: nono</string>
|
||||
<string name="poi_fire_hydrant_type_dry_barrel">Barile sicu</string>
|
||||
<string name="poi_fire_hydrant_type_pond">Poju</string>
|
||||
<string name="poi_health_amenity_type_scales">Bilàntzias pùblicas</string>
|
||||
|
||||
<string name="poi_health_person_type_assistant">Ruolu de su traballadore sanitàriu: assistente</string>
|
||||
<string name="poi_health_person_type_healer">Ruolu de su traballadore sanitàriu: sanadore</string>
|
||||
<string name="poi_health_person_type_midwife">Ruolu de su traballadore sanitàriu: mastra de partu</string>
|
||||
<string name="poi_health_person_type_nurse">Ruolu de su traballadore sanitàriu: infermieri</string>
|
||||
<string name="poi_health_person_type_paramedic">Ruolu de su traballadore sanitàriu: paramèigu</string>
|
||||
<string name="poi_health_person_type_physician">Ruolu de su traballadore sanitàriu: mèigu (dutore)</string>
|
||||
<string name="poi_health_person_type_podologist">Ruolu de su traballadore sanitàriu: podòlogu</string>
|
||||
<string name="poi_health_person_type_psychologist">Ruolu de su traballadore sanitàriu: psicòlogu</string>
|
||||
<string name="poi_health_person_type_therapist">Ruolu de su traballadore sanitàriu: terapèuta</string>
|
||||
<string name="poi_health_person_type_physician_assitant">Ruolu de su traballadore sanitàriu: assitente de su mèigu</string>
|
||||
<string name="poi_health_person_type_technician">Ruolu de su traballadore sanitàriu: tècnicu</string>
|
||||
<string name="poi_health_person_type_witchdoctor">Ruolu de su traballadore sanitàriu: majàrgiu</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><resources>
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="always_center_position_on_map">Ammustra sa positzione semper a su tzentru</string>
|
||||
<string name="voice_pref_title">Boghe</string>
|
||||
<string name="misc_pref_title">Mistura</string>
|
||||
|
@ -2962,4 +2963,5 @@ Pro praghere iscrie su còdighe intreu</string>
|
|||
<string name="distance_nearest">Distàntzia: in antis sos prus a curtzu</string>
|
||||
<string name="rendering_attr_whiteWaterSports_name">Isports de abba durche</string>
|
||||
<string name="group_deleted">Grupu iscantzelladu</string>
|
||||
<string name="clear_all_intermediates">Iscantzella totu sos puntos de coladòrgiu</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><resources>
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="about_version">Верзија:</string>
|
||||
<string name="shared_string_about">Oko</string>
|
||||
<string name="about_settings_descr">Верзија инфо, лиценце, чланови пројекта</string>
|
||||
|
@ -277,7 +278,7 @@
|
|||
<string name="basemap_missing">Основна мапа света (која покрива цео свет на малом увеличању) недостаје. Молим, преузмите World_basemap_x.obf ради употпуњавање радне средине.</string>
|
||||
<string name="local_index_installed">Локално издање</string>
|
||||
<string name="local_index_no_items_to_do">Нема ставки за %1$s</string>
|
||||
<string name="local_index_descr_title">Управљајте датотекама мапа.</string>
|
||||
<string name="local_index_descr_title">Управљајте датотекама карата.</string>
|
||||
<string name="local_index_mi_restore">Покрени</string>
|
||||
<string name="local_index_mi_backup">Искључи</string>
|
||||
|
||||
|
@ -1400,7 +1401,7 @@
|
|||
<string name="shared_string_install">Угради</string>
|
||||
<string name="online_photos">Слике на мрежи</string>
|
||||
<string name="shared_string_add_photos">Додај слике</string>
|
||||
<string name="no_photos_descr">Нема слика овог положаја.</string>
|
||||
<string name="no_photos_descr">Нема слика овог положаја.\\</string>
|
||||
<string name="mapillary_action_descr">Учествујте својим прегледима на нивоу улица овог положаја са Мапиларом.</string>
|
||||
<string name="mapillary_widget">Справица Мапилара</string>
|
||||
<string name="mapillary_widget_descr">Омогућава брзи допринос Мапилару.</string>
|
||||
|
@ -2078,4 +2079,175 @@
|
|||
<string name="toast_empty_name_error">Положај нема име</string>
|
||||
<string name="tunnel_warning">Тунел испред</string>
|
||||
<string name="show_tunnels">Тунели</string>
|
||||
</resources>
|
||||
<string name="distance_farthest">Удаљеност: прво најудаљенији</string>
|
||||
<string name="distance_nearest">Удаљеност: прво најближи</string>
|
||||
<string name="enter_lon">Унесите географску дужину</string>
|
||||
<string name="enter_lat">Унесите географску ширину</string>
|
||||
<string name="enter_lat_and_lon">Унесите географску ширину и дужину</string>
|
||||
<string name="dd_mm_ss_format">DD°MM′SS″</string>
|
||||
<string name="dd_dddddd_format">DD.DDDDDD°</string>
|
||||
<string name="dd_ddddd_format">DD.DDDDD°</string>
|
||||
<string name="dd_mm_mmmm_format">DD°MM.MMMM′</string>
|
||||
<string name="dd_mm_mmm_format">DD°MM.MMM′</string>
|
||||
<string name="east_abbreviation">E</string>
|
||||
<string name="west_abbreviation">W</string>
|
||||
<string name="south_abbreviation">S</string>
|
||||
<string name="north_abbreviation">N</string>
|
||||
<string name="optional_point_name">Опционо име тачке</string>
|
||||
<string name="enter_the_file_name">Унесите име датотеке.</string>
|
||||
<string name="map_import_error">Грешка при увожењу карте</string>
|
||||
<string name="map_imported_successfully">Карта успешно увезена</string>
|
||||
<string name="download_using_mobile_internet">Бежична мрежа тренутно није доступна. Да ли желите да искористите тренутну интернет везу за преузимање?</string>
|
||||
<string name="auto_zoom_map">Аутоматско зумирање карте</string>
|
||||
<string name="snap_to_road_descr">Прилепи позицију за путеве приликом навођења.</string>
|
||||
<string name="snap_to_road">Прилепи на пут</string>
|
||||
<string name="starting_point_too_far">Полазна тачка је превише далеко од најближег пута.</string>
|
||||
<string name="rendering_attr_noPolygons_name">Полигони</string>
|
||||
<string name="rendering_attr_contourLines_name">Прикажи контурне линије</string>
|
||||
<string name="offline_navigation_not_available">OsmAnd навигација ван мреже је привремено недоступна.</string>
|
||||
<string name="maps_could_not_be_downloaded">Ова карта не може да се преузме</string>
|
||||
<string name="layer_gpx_layer">ГПИкс путања…</string>
|
||||
<string name="vector_data">Векторске карте ван мреже</string>
|
||||
<string name="rotate_map_compass_opt">Ка компасу</string>
|
||||
<string name="rotate_map_bearing_opt">Ка смеру кретања</string>
|
||||
<string name="thanks_yandex_traffic">Хвала Yandex-у за информације о саобраћају.</string>
|
||||
<string name="layer_yandex_traffic">Yandex саобраћај</string>
|
||||
<string name="menu_layers">Слојеви карте</string>
|
||||
<string name="hide_poi_filter">Сакриј филтер</string>
|
||||
<string name="show_poi_filter">Прикажи филтер</string>
|
||||
<string name="search_poi_filter">Филтер</string>
|
||||
<string name="menu_mute_off">Звук укључен</string>
|
||||
<string name="menu_mute_on">Звук искључен</string>
|
||||
<string name="unzipping_file">Отпакивање датотеке…</string>
|
||||
<string name="route_tr">Скрените десно и наставите</string>
|
||||
<string name="route_tshr">Скрените оштро десно и наставите</string>
|
||||
<string name="route_tslr">Скрените благо десно и наставите</string>
|
||||
<string name="route_tl">Скрените лево и наставите</string>
|
||||
<string name="route_tshl">Скрените оштро лево и наставите</string>
|
||||
<string name="route_tsll">Скрените благо лево и наставите</string>
|
||||
<string name="route_tu">Направите полукружно и наставите</string>
|
||||
<string name="first_time_continue">Касније</string>
|
||||
<string name="first_time_download">Скините регионе</string>
|
||||
<string name="map_orientation_default">Као и уређај</string>
|
||||
<string name="map_orientation_portrait">Портретна</string>
|
||||
<string name="map_orientation_landscape">Пејзажна</string>
|
||||
<string name="map_screen_orientation">Оријентација екрана</string>
|
||||
<string name="map_screen_orientation_descr">Портретна, пејзажна или као и уређај.</string>
|
||||
<string name="add_new_rule">Додај ново правило</string>
|
||||
<string name="show_transport_over_map_description">Прикажи станице јавног превоза на карти.</string>
|
||||
<string name="show_transport_over_map">Прикажи станице превоза</string>
|
||||
<string name="search_history_street">Улица: {0}, {1}</string>
|
||||
<string name="search_history_int_streets">Раскрсница: {0} x {1} у {2}</string>
|
||||
<string name="search_history_building">Зграда: {0}, {1}, {2}</string>
|
||||
<string name="favorite">Омиљени</string>
|
||||
<string name="uploading_data">Отпремам податке…</string>
|
||||
<string name="uploading">Отпремам…</string>
|
||||
<string name="search_nothing_found">Ништа није пронађено</string>
|
||||
<string name="downloading_list_indexes">Преузимам списак доступних региона…</string>
|
||||
<string name="list_index_files_was_not_loaded">Списак региона није скинута са сајта osmand.net.</string>
|
||||
<string name="fav_points_edited">Измењена омиљена тачка</string>
|
||||
<string name="fav_points_not_exist">Нема омиљених тачака</string>
|
||||
<string name="update_existing">Замени</string>
|
||||
<string name="follow">Покрени навођење</string>
|
||||
<string name="mark_final_location_first">Молимо прво одаберите одредиште</string>
|
||||
<string name="opening_hours">Радно време</string>
|
||||
<string name="loading_poi_obj">Учитавам тачке од интереса…</string>
|
||||
<string name="auth_failed">Провера овлашћења није успела</string>
|
||||
<string name="failed_op">није успела</string>
|
||||
<string name="converting_names">Претварање изворних/енглеских имена…</string>
|
||||
<string name="loading_streets_buildings">Учитавање улица/зграда…</string>
|
||||
<string name="loading_postcodes">Учитавање поштанских бројева…</string>
|
||||
<string name="loading_streets">Учитавање улица…</string>
|
||||
<string name="loading_cities">Учитавање градова…</string>
|
||||
<string name="poi">Тачке од интереса</string>
|
||||
<string name="error_occurred_saving_gpx">Десила се грешка при чувању ГПИкс датотеке</string>
|
||||
<string name="arrived_at_destination">Стигли сте на одредиште</string>
|
||||
<string name="invalid_locations">Координате нису исправне!</string>
|
||||
<string name="loading_data">Учитавање података…</string>
|
||||
<string name="reading_indexes">Читање локалних података…</string>
|
||||
<string name="finished_task">Готово</string>
|
||||
<string name="use_online_routing">Користите мрежно навођење</string>
|
||||
<string name="data_settings">Подаци</string>
|
||||
<string name="additional_settings">Додатне поставке</string>
|
||||
<string name="update_tile">Ажурирај карту</string>
|
||||
<string name="use_english_names_descr">Изаберите између изворних или енглеских имена.</string>
|
||||
<string name="use_english_names">Користи енглеска имена у картама</string>
|
||||
<string name="app_settings">Поставке апликације</string>
|
||||
<string name="map_view_3d_descr">Укључи 3D приказ карте.</string>
|
||||
<string name="map_view_3d">3D приказ карте</string>
|
||||
<string name="use_internet">Користи интернет</string>
|
||||
<string name="show_location">Прикажи Вашу позицију</string>
|
||||
<string name="show_gps_coordinates_text">Прикажи GPS координате на карти</string>
|
||||
<string name="app_mode_car">Аутомобил</string>
|
||||
<string name="app_mode_bicycle">Бицикл</string>
|
||||
<string name="app_mode_pedestrian">Пешак</string>
|
||||
<string name="navigate_point_latitude">Географска ширина</string>
|
||||
<string name="navigate_point_longitude">Географска дужина</string>
|
||||
<string name="navigate_point_format_DM">DDD MM.MM</string>
|
||||
<string name="navigate_point_format_DMS">DDD MM SS.SS</string>
|
||||
<string name="search_address_top_text">Изаберите адресу</string>
|
||||
<string name="search_address_region">Регион</string>
|
||||
<string name="search_address_city">Град</string>
|
||||
<string name="search_address_street">Улица</string>
|
||||
<string name="search_address_building">Зграда</string>
|
||||
<string name="search_address_building_option">Зграда</string>
|
||||
<string name="add_favorite_dialog_default_favourite_name">Омиљена</string>
|
||||
<string name="favourites_context_menu_add">Додај омиљену</string>
|
||||
<string name="favourites_context_menu_edit">Измени омиљену</string>
|
||||
<string name="favourites_context_menu_delete">Избриши омиљену</string>
|
||||
<string name="favourites_remove_dialog_msg">Избриши омиљену тачку \'%s\'?</string>
|
||||
<string name="favourites_remove_dialog_success">Омиљена тачка {0} је успешно избрисана.</string>
|
||||
<string name="poi_action_add">додај</string>
|
||||
<string name="poi_action_change">измени</string>
|
||||
<string name="poi_action_delete">обриши</string>
|
||||
<string name="poi_dialog_comment">Коментар</string>
|
||||
<string name="poi_dialog_reopen">Поново отвори</string>
|
||||
<string name="filter_current_poiButton">Филтер</string>
|
||||
<string name="edit_filter_save_as_menu_item">Сачувај као</string>
|
||||
<string name="email">Е-пошта</string>
|
||||
<string name="are_you_sure">Да ли сте сигурни?</string>
|
||||
<string name="unsaved_changes_will_be_lost">Све несачуване измене ће бити изгубљене. Да наставим?</string>
|
||||
<string name="downloads_left_template">%1$s преосталих скидања</string>
|
||||
<string name="roads">Путеви</string>
|
||||
<string name="later">Касније</string>
|
||||
<string name="downloads">Скидања</string>
|
||||
<string name="file_size_in_mb">%.1f MB</string>
|
||||
<string name="enter_country_name">Унесите име државе</string>
|
||||
<string name="new_version">Нова верзија</string>
|
||||
<string name="help_us_to_improve_menu_group">Помозите нам да побољшамо OsmAnd</string>
|
||||
<string name="first_usage_item">Прво коришћење</string>
|
||||
<string name="faq_item">ЧПП</string>
|
||||
<string name="faq_item_description">Често постављана питања</string>
|
||||
<string name="group_deleted">Група избрисана</string>
|
||||
<string name="rendering_attr_whiteWaterSports_name">Спортови на брзацима</string>
|
||||
<string name="complex_route_calculation_failed">Брзо израчунавање пута није успело (%s), пребацујем се на споро израчунавање.</string>
|
||||
<string name="local_index_tile_data_zooms">Скинутих зумирања: %1$s</string>
|
||||
<string name="driving_region_descr">"Одаберите регион "</string>
|
||||
<string name="layer_hillshade">Слој са осенченим рељефима</string>
|
||||
<string name="native_app_allocated_memory">Укупно меморије</string>
|
||||
<string name="osmand_parking_warning_text">Обавештење да преузмете кола је додато у Ваш календар. Остаће тамо док га ручно не избришете.</string>
|
||||
<string name="basemap_was_selected_to_download">Основна карта је потребна да би апликација исправно радила и зато је означена за преузимање.</string>
|
||||
<string name="index_settings_descr">Скидајте и управљајте картама ускладиштеним на Вашем уређају.</string>
|
||||
<string name="map_online_plugin_is_not_installed">Омогућите додатак за мрежне карте да одаберете различите изворе карата</string>
|
||||
<string name="map_online_data_descr">Користи мрежне карте (скидај и кеширај сличице на SD картицу).</string>
|
||||
<string name="online_map_settings_descr">Подеси мрежне или кеширане изворе сличица карата.</string>
|
||||
<string name="prefs_plugins_descr">Додаци активирају напредна подешавања и додатне функционалности.</string>
|
||||
<string name="vector_maps_may_display_faster_on_some_devices">Векторске карте се углавном брже приказују. То не значи да ће радити добро на свим уређајима.</string>
|
||||
<string name="play_commands_of_currently_selected_voice">Одаберите глас и пустите пример навођења да га тестирате</string>
|
||||
<string name="native_rendering">Уграђено исцртавање</string>
|
||||
<string name="test_voice_prompts">Тестирај гласовно навођење</string>
|
||||
<string name="switch_to_raster_map_to_see">Нема векторских карти за овај положај. Можете скинути неку у Подешавањима (Управљање датотекама карата) или се пребаците на мрежне карте (за ово морате да омогућите додатак за мрежне карте).</string>
|
||||
<string name="send_files_to_osm">Послати ГПИкс датотеке на ОСМ?</string>
|
||||
<string name="auto_announce_on">Започни аутоматско најављивање</string>
|
||||
<string name="auto_announce_off">Заустави аутоматско најављивање</string>
|
||||
<string name="rendering_out_of_memory">Недовољно меморије да се прикаже одабрано подручје</string>
|
||||
<string name="use_fluorescent_overlays_descr">Користи флуоресцентне боје за приказ путања и путева.</string>
|
||||
<string name="index_name_voice">Гласовна навођења (снимљена, ограничене функционалности)</string>
|
||||
<string name="index_name_tts_voice">Гласовна навођења (TTS, синтеза говора, преферирана)</string>
|
||||
<string name="amenity_type_user_defined">Кориснички одређено</string>
|
||||
<string name="fav_export_confirmation">Датотека са већ извезеним омиљеним тачкама већ постоји. Да ли желите да је препишете?</string>
|
||||
<string name="profile_settings">Поставке специфичне за профил</string>
|
||||
<string name="routing_settings_descr">Одаберите опције навођења.</string>
|
||||
<string name="index_settings">Управљање датотекама карата</string>
|
||||
<string name="general_settings_descr">Подесите приказ и опште подешавања апликације.</string>
|
||||
</resources>
|
||||
|
|
|
@ -3814,4 +3814,6 @@
|
|||
|
||||
<string name="poi_whitewater_rapid_name">激流河的名稱</string>
|
||||
|
||||
<string name="poi_outpost">商店的送貨點</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><resources>
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="rendering_attr_roadColors_description">選擇道路的色彩調配:</string>
|
||||
<string name="rendering_attr_roadColors_name">道路的色彩調配</string>
|
||||
<string name="map_widget_show_destination_arrow">顯示目的地方向</string>
|
||||
|
@ -2978,4 +2979,5 @@
|
|||
<string name="distance_nearest">距離:最近的第一個</string>
|
||||
<string name="rendering_attr_whiteWaterSports_name">激流運動</string>
|
||||
<string name="group_deleted">群組已刪除</string>
|
||||
</resources>
|
||||
<string name="clear_all_intermediates">清除所有中轉地點</string>
|
||||
</resources>
|
||||
|
|
|
@ -3761,4 +3761,6 @@
|
|||
|
||||
<string name="poi_whitewater_rapid_name">Name of the river rapids</string>
|
||||
|
||||
<string name="poi_outpost">Shop\'s delivery point</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -15,7 +15,7 @@ import java.util.List;
|
|||
public class GPXDatabase {
|
||||
|
||||
private static final String DB_NAME = "gpx_database";
|
||||
private static final int DB_VERSION = 6;
|
||||
private static final int DB_VERSION = 7;
|
||||
private static final String GPX_TABLE_NAME = "gpxTable";
|
||||
private static final String GPX_COL_NAME = "fileName";
|
||||
private static final String GPX_COL_DIR = "fileDir";
|
||||
|
@ -47,6 +47,8 @@ public class GPXDatabase {
|
|||
|
||||
private static final String GPX_COL_API_IMPORTED = "apiImported";
|
||||
|
||||
private static final String GPX_COL_WPT_CATEGORY_NAMES = "wptCategoryNames";
|
||||
|
||||
public static final int GPX_SPLIT_TYPE_NO_SPLIT = -1;
|
||||
public static final int GPX_SPLIT_TYPE_DISTANCE = 1;
|
||||
public static final int GPX_SPLIT_TYPE_TIME = 2;
|
||||
|
@ -77,7 +79,8 @@ public class GPXDatabase {
|
|||
GPX_COL_FILE_LAST_MODIFIED_TIME + " long, " +
|
||||
GPX_COL_SPLIT_TYPE + " int, " +
|
||||
GPX_COL_SPLIT_INTERVAL + " double, " +
|
||||
GPX_COL_API_IMPORTED + " int);"; // 1 = true, 0 = false
|
||||
GPX_COL_API_IMPORTED + " int, " + // 1 = true, 0 = false
|
||||
GPX_COL_WPT_CATEGORY_NAMES + " TEXT);";
|
||||
|
||||
private static final String GPX_TABLE_SELECT = "SELECT " +
|
||||
GPX_COL_NAME + ", " +
|
||||
|
@ -102,7 +105,8 @@ public class GPXDatabase {
|
|||
GPX_COL_FILE_LAST_MODIFIED_TIME + ", " +
|
||||
GPX_COL_SPLIT_TYPE + ", " +
|
||||
GPX_COL_SPLIT_INTERVAL + ", " +
|
||||
GPX_COL_API_IMPORTED +
|
||||
GPX_COL_API_IMPORTED + ", " +
|
||||
GPX_COL_WPT_CATEGORY_NAMES +
|
||||
" FROM " + GPX_TABLE_NAME;
|
||||
|
||||
private OsmandApplication context;
|
||||
|
@ -244,6 +248,10 @@ public class GPXDatabase {
|
|||
" SET " + GPX_COL_API_IMPORTED + " = ? " +
|
||||
"WHERE " + GPX_COL_API_IMPORTED + " IS NULL", new Object[]{0});
|
||||
}
|
||||
|
||||
if (oldVersion < 7) {
|
||||
db.execSQL("ALTER TABLE " + GPX_TABLE_NAME + " ADD " + GPX_COL_WPT_CATEGORY_NAMES + " TEXT");
|
||||
}
|
||||
}
|
||||
|
||||
private boolean updateLastModifiedTime(GpxDataItem item) {
|
||||
|
@ -382,11 +390,12 @@ public class GPXDatabase {
|
|||
}
|
||||
if (a != null) {
|
||||
db.execSQL(
|
||||
"INSERT INTO " + GPX_TABLE_NAME + " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
|
||||
"INSERT INTO " + GPX_TABLE_NAME + " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
|
||||
new Object[]{ fileName, fileDir, a.totalDistance, a.totalTracks, a.startTime, a.endTime,
|
||||
a.timeSpan, a.timeMoving, a.totalDistanceMoving, a.diffElevationUp, a.diffElevationDown,
|
||||
a.avgElevation, a.minElevation, a.maxElevation, a.maxSpeed, a.avgSpeed, a.points, a.wptPoints,
|
||||
color, item.file.lastModified(), item.splitType, item.splitInterval, item.apiImported ? 1 : 0});
|
||||
color, item.file.lastModified(), item.splitType, item.splitInterval, item.apiImported ? 1 : 0,
|
||||
Algorithms.encodeStringSet(item.analysis.wptCategoryNames)});
|
||||
} else {
|
||||
db.execSQL("INSERT INTO " + GPX_TABLE_NAME + "(" +
|
||||
GPX_COL_NAME + ", " +
|
||||
|
@ -424,13 +433,14 @@ public class GPXDatabase {
|
|||
GPX_COL_AVG_SPEED + " = ?, " +
|
||||
GPX_COL_POINTS + " = ?, " +
|
||||
GPX_COL_WPT_POINTS + " = ?, " +
|
||||
GPX_COL_FILE_LAST_MODIFIED_TIME + " = ? " +
|
||||
GPX_COL_FILE_LAST_MODIFIED_TIME + " = ?, " +
|
||||
GPX_COL_WPT_CATEGORY_NAMES + " = ? " +
|
||||
" WHERE " + GPX_COL_NAME + " = ? AND " + GPX_COL_DIR + " = ?",
|
||||
new Object[]{ a.totalDistance, a.totalTracks, a.startTime, a.endTime,
|
||||
a.timeSpan, a.timeMoving, a.totalDistanceMoving, a.diffElevationUp,
|
||||
a.diffElevationDown, a.avgElevation, a.minElevation, a.maxElevation,
|
||||
a.maxSpeed, a.avgSpeed, a.points, a.wptPoints, item.file.lastModified(),
|
||||
fileName, fileDir });
|
||||
Algorithms.encodeStringSet(a.wptCategoryNames), fileName, fileDir });
|
||||
} finally {
|
||||
db.close();
|
||||
}
|
||||
|
@ -463,6 +473,7 @@ public class GPXDatabase {
|
|||
int splitType = (int)query.getInt(20);
|
||||
double splitInterval = query.getDouble(21);
|
||||
boolean apiImported = query.getInt(22) == 1;
|
||||
String wptCategoryNames = query.getString(23);
|
||||
|
||||
GPXTrackAnalysis a = new GPXTrackAnalysis();
|
||||
a.totalDistance = totalDistance;
|
||||
|
@ -482,6 +493,9 @@ public class GPXDatabase {
|
|||
a.avgSpeed = avgSpeed;
|
||||
a.points = points;
|
||||
a.wptPoints = wptPoints;
|
||||
if (wptCategoryNames != null) {
|
||||
a.wptCategoryNames = Algorithms.decodeStringSet(wptCategoryNames);
|
||||
}
|
||||
|
||||
File dir;
|
||||
if (!Algorithms.isEmpty(fileDir)) {
|
||||
|
|
|
@ -42,10 +42,13 @@ import java.util.ArrayList;
|
|||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.Stack;
|
||||
import java.util.TimeZone;
|
||||
|
||||
|
@ -287,6 +290,8 @@ public class GPXUtilities {
|
|||
public int points;
|
||||
public int wptPoints = 0;
|
||||
|
||||
public Set<String> wptCategoryNames;
|
||||
|
||||
public double metricEnd;
|
||||
public double secondaryMetricEnd;
|
||||
public WptPt locationStart;
|
||||
|
@ -787,6 +792,22 @@ public class GPXUtilities {
|
|||
return Collections.unmodifiableList(points);
|
||||
}
|
||||
|
||||
public Map<String, List<WptPt>> getPointsByCategories() {
|
||||
Map<String, List<WptPt>> res = new HashMap<>();
|
||||
for (WptPt pt : points) {
|
||||
String category = pt.category == null ? "" : pt.category;
|
||||
List<WptPt> list = res.get(category);
|
||||
if (list != null) {
|
||||
list.add(pt);
|
||||
} else {
|
||||
list = new ArrayList<>();
|
||||
list.add(pt);
|
||||
res.put(category, list);
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
public boolean isPointsEmpty() {
|
||||
return points.isEmpty();
|
||||
}
|
||||
|
@ -868,6 +889,7 @@ public class GPXUtilities {
|
|||
public GPXTrackAnalysis getAnalysis(long fileTimestamp) {
|
||||
GPXTrackAnalysis g = new GPXTrackAnalysis();
|
||||
g.wptPoints = points.size();
|
||||
g.wptCategoryNames = getWaypointCategories(true);
|
||||
List<SplitSegment> splitSegments = new ArrayList<GPXUtilities.SplitSegment>();
|
||||
for (int i = 0; i < tracks.size(); i++) {
|
||||
Track subtrack = tracks.get(i);
|
||||
|
@ -1167,14 +1189,12 @@ public class GPXUtilities {
|
|||
return count;
|
||||
}
|
||||
|
||||
public List<String> getWaypointCategories() {
|
||||
List<String> categories = new ArrayList<>();
|
||||
public Set<String> getWaypointCategories(boolean withDefaultCategory) {
|
||||
Set<String> categories = new HashSet<>();
|
||||
for (WptPt pt : points) {
|
||||
String category = pt.category;
|
||||
if (!TextUtils.isEmpty(category)) {
|
||||
if (!categories.contains(category)) {
|
||||
categories.add(category);
|
||||
}
|
||||
String category = pt.category == null ? "" : pt.category;
|
||||
if (withDefaultCategory || !TextUtils.isEmpty(category)) {
|
||||
categories.add(category);
|
||||
}
|
||||
}
|
||||
return categories;
|
||||
|
|
|
@ -127,7 +127,7 @@ public class ItemMenuBottomSheetDialogFragment extends MenuBottomSheetDialogFrag
|
|||
}
|
||||
|
||||
@Override
|
||||
protected int getCloseRowTextId() {
|
||||
protected int getDismissButtonTextId() {
|
||||
return R.string.shared_string_close;
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import android.app.Activity;
|
|||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.ColorInt;
|
||||
import android.support.annotation.ColorRes;
|
||||
import android.support.annotation.DrawableRes;
|
||||
import android.support.annotation.Nullable;
|
||||
|
@ -61,25 +62,49 @@ public abstract class MenuBottomSheetDialogFragment extends BottomSheetDialogFra
|
|||
final int themeRes = nightMode ? R.style.OsmandDarkTheme : R.style.OsmandLightTheme;
|
||||
|
||||
View mainView = View.inflate(new ContextThemeWrapper(app, themeRes), R.layout.bottom_sheet_menu_base, null);
|
||||
itemsContainer = (LinearLayout) mainView.findViewById(R.id.items_container);
|
||||
if (useScrollableItemsContainer()) {
|
||||
itemsContainer = (LinearLayout) mainView.findViewById(R.id.scrollable_items_container);
|
||||
} else {
|
||||
mainView.findViewById(R.id.scroll_view).setVisibility(View.GONE);
|
||||
itemsContainer = (LinearLayout) mainView.findViewById(R.id.non_scrollable_items_container);
|
||||
itemsContainer.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
for (BaseBottomSheetItem item : items) {
|
||||
item.inflate(app, itemsContainer, nightMode);
|
||||
}
|
||||
|
||||
int closeRowDividerColorId = getCloseRowDividerColorId();
|
||||
if (closeRowDividerColorId != -1) {
|
||||
mainView.findViewById(R.id.close_row_divider)
|
||||
.setBackgroundColor(ContextCompat.getColor(getContext(), closeRowDividerColorId));
|
||||
int bottomDividerColorId = getBottomDividerColorId();
|
||||
if (bottomDividerColorId != -1) {
|
||||
mainView.findViewById(R.id.bottom_row_divider).setBackgroundColor(getResolvedColor(bottomDividerColorId));
|
||||
}
|
||||
mainView.findViewById(R.id.close_row).setOnClickListener(new View.OnClickListener() {
|
||||
|
||||
mainView.findViewById(R.id.dismiss_button).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
onCloseRowClickAction();
|
||||
onDismissButtonClickAction();
|
||||
dismiss();
|
||||
}
|
||||
});
|
||||
((TextView) mainView.findViewById(R.id.close_row_text)).setText(getCloseRowTextId());
|
||||
((TextView) mainView.findViewById(R.id.dismiss_button_text)).setText(getDismissButtonTextId());
|
||||
|
||||
int rightBottomButtonTextId = getRightBottomButtonTextId();
|
||||
if (rightBottomButtonTextId != -1) {
|
||||
View buttonsDivider = mainView.findViewById(R.id.bottom_buttons_divider);
|
||||
buttonsDivider.setVisibility(View.VISIBLE);
|
||||
if (bottomDividerColorId != -1) {
|
||||
buttonsDivider.setBackgroundColor(getResolvedColor(bottomDividerColorId));
|
||||
}
|
||||
View rightButton = mainView.findViewById(R.id.right_bottom_button);
|
||||
rightButton.setVisibility(View.VISIBLE);
|
||||
rightButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
onRightBottomButtonClick();
|
||||
}
|
||||
});
|
||||
((TextView) rightButton.findViewById(R.id.right_bottom_button_text)).setText(rightBottomButtonTextId);
|
||||
}
|
||||
|
||||
setupHeightAndBackground(mainView);
|
||||
|
||||
|
@ -123,23 +148,27 @@ public abstract class MenuBottomSheetDialogFragment extends BottomSheetDialogFra
|
|||
return getIcon(id, nightMode ? R.color.osmand_orange : R.color.color_myloc_distance);
|
||||
}
|
||||
|
||||
@ColorInt
|
||||
protected int getResolvedColor(@ColorRes int colorId) {
|
||||
return ContextCompat.getColor(getContext(), colorId);
|
||||
}
|
||||
|
||||
protected void setupHeightAndBackground(final View mainView) {
|
||||
final Activity activity = getActivity();
|
||||
|
||||
final int screenHeight = AndroidUtils.getScreenHeight(activity);
|
||||
final int statusBarHeight = AndroidUtils.getStatusBarHeight(activity);
|
||||
final int navBarHeight = AndroidUtils.getNavBarHeight(activity);
|
||||
final int availableHeight = screenHeight - statusBarHeight - AndroidUtils.getNavBarHeight(activity)
|
||||
- AndroidUtils.dpToPx(getContext(), 1) // divider height
|
||||
- getResources().getDimensionPixelSize(R.dimen.bottom_sheet_cancel_button_height); // bottom row height
|
||||
|
||||
mainView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
|
||||
@Override
|
||||
public void onGlobalLayout() {
|
||||
final View scrollView = mainView.findViewById(R.id.scroll_view);
|
||||
int scrollViewHeight = scrollView.getHeight();
|
||||
int dividerHeight = AndroidUtils.dpToPx(getContext(), 1);
|
||||
int cancelButtonHeight = getContext().getResources().getDimensionPixelSize(R.dimen.bottom_sheet_cancel_button_height);
|
||||
int spaceForScrollView = screenHeight - statusBarHeight - navBarHeight - dividerHeight - cancelButtonHeight;
|
||||
if (scrollViewHeight > spaceForScrollView) {
|
||||
scrollView.getLayoutParams().height = spaceForScrollView;
|
||||
scrollView.requestLayout();
|
||||
final View viewToAdjust = useScrollableItemsContainer() ? mainView.findViewById(R.id.scroll_view) : itemsContainer;
|
||||
if (viewToAdjust.getHeight() > availableHeight) {
|
||||
viewToAdjust.getLayoutParams().height = availableHeight;
|
||||
viewToAdjust.requestLayout();
|
||||
}
|
||||
|
||||
// 8dp is the shadow height
|
||||
|
@ -160,17 +189,30 @@ public abstract class MenuBottomSheetDialogFragment extends BottomSheetDialogFra
|
|||
});
|
||||
}
|
||||
|
||||
protected boolean useScrollableItemsContainer() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@ColorRes
|
||||
protected int getCloseRowDividerColorId() {
|
||||
protected int getBottomDividerColorId() {
|
||||
return -1;
|
||||
}
|
||||
|
||||
@StringRes
|
||||
protected int getCloseRowTextId() {
|
||||
protected int getDismissButtonTextId() {
|
||||
return R.string.shared_string_cancel;
|
||||
}
|
||||
|
||||
protected void onCloseRowClickAction() {
|
||||
protected void onDismissButtonClickAction() {
|
||||
|
||||
}
|
||||
|
||||
@StringRes
|
||||
protected int getRightBottomButtonTextId() {
|
||||
return -1;
|
||||
}
|
||||
|
||||
protected void onRightBottomButtonClick() {
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package net.osmand.plus.base.bottomsheetmenu;
|
|||
|
||||
import android.support.annotation.LayoutRes;
|
||||
import android.view.ContextThemeWrapper;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
|
@ -44,7 +45,7 @@ public class BaseBottomSheetItem {
|
|||
}
|
||||
|
||||
public void inflate(OsmandApplication app, ViewGroup container, boolean nightMode) {
|
||||
View view = getView(app, nightMode);
|
||||
View view = getView(app, container, nightMode);
|
||||
if (tag != null) {
|
||||
view.setTag(tag);
|
||||
}
|
||||
|
@ -61,13 +62,14 @@ public class BaseBottomSheetItem {
|
|||
}
|
||||
}
|
||||
|
||||
private View getView(OsmandApplication app, boolean nightMode) {
|
||||
private View getView(OsmandApplication app, ViewGroup parent, boolean nightMode) {
|
||||
if (view != null) {
|
||||
return view;
|
||||
}
|
||||
if (layoutId != INVALID_ID) {
|
||||
final int themeRes = nightMode ? R.style.OsmandDarkTheme : R.style.OsmandLightTheme;
|
||||
return view = View.inflate(new ContextThemeWrapper(app, themeRes), layoutId, null);
|
||||
return view = LayoutInflater.from(new ContextThemeWrapper(app, themeRes))
|
||||
.inflate(layoutId, parent, false);
|
||||
}
|
||||
throw new RuntimeException("BottomSheetItem must have specified view or layoutId.");
|
||||
}
|
||||
|
|
|
@ -17,6 +17,8 @@ public class BottomSheetItemWithCompoundButton extends BottomSheetItemWithDescri
|
|||
private boolean checked;
|
||||
private ColorStateList buttonTintList;
|
||||
|
||||
private CompoundButton compoundButton;
|
||||
|
||||
public BottomSheetItemWithCompoundButton(View customView,
|
||||
@LayoutRes int layoutId,
|
||||
Object tag,
|
||||
|
@ -45,10 +47,15 @@ public class BottomSheetItemWithCompoundButton extends BottomSheetItemWithDescri
|
|||
this.buttonTintList = buttonTintList;
|
||||
}
|
||||
|
||||
public void setChecked(boolean checked) {
|
||||
this.checked = checked;
|
||||
compoundButton.setChecked(checked);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void inflate(OsmandApplication app, ViewGroup container, boolean nightMode) {
|
||||
super.inflate(app, container, nightMode);
|
||||
CompoundButton compoundButton = (CompoundButton) view.findViewById(R.id.compound_button);
|
||||
compoundButton = (CompoundButton) view.findViewById(R.id.compound_button);
|
||||
compoundButton.setChecked(checked);
|
||||
CompoundButtonCompat.setButtonTintList(compoundButton, buttonTintList);
|
||||
}
|
||||
|
|
|
@ -75,7 +75,7 @@ public class AddWaypointBottomSheetDialogFragment extends MenuBottomSheetDialogF
|
|||
.create();
|
||||
items.add(replaceStartItem);
|
||||
|
||||
items.add(new DividerHalfItem(getContext(), getCloseRowDividerColorId()));
|
||||
items.add(new DividerHalfItem(getContext(), getBottomDividerColorId()));
|
||||
|
||||
BaseBottomSheetItem subsequentDestItem = new BottomSheetItemWithDescription.Builder()
|
||||
.setDescription(getString(R.string.subsequent_dest_description))
|
||||
|
@ -135,7 +135,7 @@ public class AddWaypointBottomSheetDialogFragment extends MenuBottomSheetDialogF
|
|||
}
|
||||
|
||||
@Override
|
||||
protected int getCloseRowDividerColorId() {
|
||||
protected int getBottomDividerColorId() {
|
||||
return nightMode ? R.color.route_info_bottom_view_bg_dark : -1;
|
||||
}
|
||||
|
||||
|
|
|
@ -659,7 +659,9 @@ public class ImportHelper {
|
|||
fragment.setFileName(fileName);
|
||||
fragment.setSave(save);
|
||||
fragment.setUseImportDir(useImportDir);
|
||||
fragment.show(activity.getSupportFragmentManager(), ImportGpxBottomSheetDialogFragment.TAG);
|
||||
activity.getSupportFragmentManager().beginTransaction()
|
||||
.add(fragment, ImportGpxBottomSheetDialogFragment.TAG)
|
||||
.commitAllowingStateLoss();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -788,10 +790,5 @@ public class ImportHelper {
|
|||
.create();
|
||||
items.add(asGpxItem);
|
||||
}
|
||||
|
||||
@ColorInt
|
||||
private int getResolvedColor(@ColorRes int colorId) {
|
||||
return ContextCompat.getColor(getContext(), colorId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1068,7 +1068,7 @@ public class WaypointDialogHelper {
|
|||
}
|
||||
|
||||
@Override
|
||||
protected int getCloseRowTextId() {
|
||||
protected int getDismissButtonTextId() {
|
||||
return R.string.shared_string_close;
|
||||
}
|
||||
|
||||
|
|
|
@ -20,11 +20,9 @@ import net.osmand.plus.IconsCache;
|
|||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.activities.MapActivity;
|
||||
import net.osmand.plus.quickaction.QuickAction;
|
||||
import net.osmand.plus.quickaction.QuickActionFactory;
|
||||
import net.osmand.plus.quickaction.QuickActionRegistry;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static android.util.TypedValue.COMPLEX_UNIT_DIP;
|
||||
|
||||
|
@ -69,7 +67,7 @@ public class SelectCategoryDialogFragment extends DialogFragment {
|
|||
|
||||
final FavouritesDbHelper helper = ((OsmandApplication) getActivity().getApplication()).getFavorites();
|
||||
if (gpxFile != null) {
|
||||
List<String> categories = gpxFile.getWaypointCategories();
|
||||
Set<String> categories = gpxFile.getWaypointCategories(false);
|
||||
for (final String category : categories) {
|
||||
addCategory(ll, category, 0);
|
||||
}
|
||||
|
|
|
@ -77,6 +77,11 @@ public abstract class AddGroupBottomSheetDialogFragment extends MenuBottomSheetD
|
|||
super.onDestroyView();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean useScrollableItemsContainer() {
|
||||
return false;
|
||||
}
|
||||
|
||||
private void showProgressBar() {
|
||||
mainView.findViewById(R.id.groups_recycler_view).setVisibility(View.GONE);
|
||||
mainView.findViewById(R.id.progress_bar).setVisibility(View.VISIBLE);
|
||||
|
|
|
@ -124,7 +124,9 @@ public class AddTracksGroupBottomSheetDialogFragment extends AddGroupBottomSheet
|
|||
processGPXFolder(gpxFile, sub);
|
||||
} else if (gpxFile.isFile() && gpxFile.getName().toLowerCase().endsWith(".gpx")) {
|
||||
GpxDataItem item = processedDataFiles.get(gpxFile);
|
||||
if (item == null || item.getFileLastModifiedTime() != gpxFile.lastModified()) {
|
||||
if (item == null
|
||||
|| item.getFileLastModifiedTime() != gpxFile.lastModified()
|
||||
|| item.getAnalysis().wptCategoryNames == null) {
|
||||
GPXFile f = GPXUtilities.loadGPXFile(app, gpxFile);
|
||||
GPXTrackAnalysis analysis = f.getAnalysis(gpxFile.lastModified());
|
||||
if (item == null) {
|
||||
|
|
|
@ -6,7 +6,6 @@ import android.graphics.drawable.Drawable;
|
|||
import android.os.Bundle;
|
||||
import android.support.annotation.ColorRes;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.view.View;
|
||||
|
||||
import net.osmand.plus.OsmandSettings;
|
||||
|
@ -122,7 +121,7 @@ public class CoordinateInputBottomSheetDialogFragment extends MenuBottomSheetDia
|
|||
BaseBottomSheetItem formatItem = new BottomSheetItemWithCompoundButton.Builder()
|
||||
.setChecked(selectedItem)
|
||||
.setButtonTintList(selectedItem
|
||||
? ColorStateList.valueOf(ContextCompat.getColor(context, getActiveColorId()))
|
||||
? ColorStateList.valueOf(getResolvedColor(getActiveColorId()))
|
||||
: null)
|
||||
.setIcon(selectedItem ? getActiveIcon(R.drawable.ic_action_coordinates_latitude) : formatIcon)
|
||||
.setTitle(CoordinateInputFormats.formatToHumanString(context, format))
|
||||
|
@ -142,7 +141,7 @@ public class CoordinateInputBottomSheetDialogFragment extends MenuBottomSheetDia
|
|||
}
|
||||
|
||||
@Override
|
||||
protected int getCloseRowTextId() {
|
||||
protected int getDismissButtonTextId() {
|
||||
return R.string.shared_string_close;
|
||||
}
|
||||
|
||||
|
|
|
@ -92,7 +92,7 @@ public class HistoryMarkerMenuBottomSheetDialogFragment extends MenuBottomSheetD
|
|||
}
|
||||
|
||||
@Override
|
||||
protected int getCloseRowTextId() {
|
||||
protected int getDismissButtonTextId() {
|
||||
return R.string.shared_string_close;
|
||||
}
|
||||
|
||||
|
|
|
@ -116,7 +116,7 @@ public class OrderByBottomSheetDialogFragment extends MenuBottomSheetDialogFragm
|
|||
}
|
||||
|
||||
@Override
|
||||
protected int getCloseRowTextId() {
|
||||
protected int getDismissButtonTextId() {
|
||||
return R.string.shared_string_close;
|
||||
}
|
||||
|
||||
|
|
|
@ -121,7 +121,7 @@ public class PlanRouteOptionsBottomSheetDialogFragment extends MenuBottomSheetDi
|
|||
}
|
||||
|
||||
@Override
|
||||
protected int getCloseRowTextId() {
|
||||
protected int getDismissButtonTextId() {
|
||||
return R.string.shared_string_close;
|
||||
}
|
||||
|
||||
|
|
|
@ -60,7 +60,7 @@ public class SelectionMarkersGroupBottomSheetDialogFragment extends MenuBottomSh
|
|||
}
|
||||
|
||||
@Override
|
||||
protected int getCloseRowTextId() {
|
||||
protected int getDismissButtonTextId() {
|
||||
return R.string.shared_string_close;
|
||||
}
|
||||
|
||||
|
|
|
@ -12,11 +12,13 @@ public class MapMarkersGroupViewHolder extends RecyclerView.ViewHolder {
|
|||
ImageView icon;
|
||||
TextView name;
|
||||
TextView numberCount;
|
||||
TextView description;
|
||||
|
||||
public MapMarkersGroupViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
icon = itemView.findViewById(R.id.icon);
|
||||
name = itemView.findViewById(R.id.name_text);
|
||||
numberCount = itemView.findViewById(R.id.number_count_text);
|
||||
description = itemView.findViewById(R.id.description_text);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,12 +1,16 @@
|
|||
package net.osmand.plus.mapmarkers.adapters;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
|
||||
import net.osmand.plus.GPXDatabase.GpxDataItem;
|
||||
import net.osmand.plus.R;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public class TracksGroupsAdapter extends GroupsAdapter {
|
||||
|
||||
|
@ -29,6 +33,9 @@ public class TracksGroupsAdapter extends GroupsAdapter {
|
|||
markersGroupViewHolder.icon.setImageDrawable(iconsCache.getThemedIcon(R.drawable.ic_action_polygom_dark));
|
||||
markersGroupViewHolder.name.setText(gpx.getFile().getName().replace(".gpx", "").replace("/", " ").replace("_", " "));
|
||||
markersGroupViewHolder.numberCount.setText(String.valueOf(gpx.getAnalysis().wptPoints));
|
||||
String description = getDescription(gpx);
|
||||
markersGroupViewHolder.description.setVisibility(description == null ? View.GONE : View.VISIBLE);
|
||||
markersGroupViewHolder.description.setText(description);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -37,6 +44,26 @@ public class TracksGroupsAdapter extends GroupsAdapter {
|
|||
return gpxFiles.size() + 1;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private String getDescription(GpxDataItem item) {
|
||||
Set<String> categories = item.getAnalysis().wptCategoryNames;
|
||||
if (categories != null && !categories.isEmpty() && !(categories.size() == 1 && categories.contains(""))) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
Iterator<String> it = categories.iterator();
|
||||
while (it.hasNext()) {
|
||||
String category = it.next();
|
||||
if (!category.equals("")) {
|
||||
sb.append(category);
|
||||
if (it.hasNext()) {
|
||||
sb.append(", ");
|
||||
}
|
||||
}
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private GpxDataItem getItem(int position) {
|
||||
return gpxFiles.get(position - 1);
|
||||
}
|
||||
|
|
|
@ -124,7 +124,7 @@ public class OptionsBottomSheetDialogFragment extends MenuBottomSheetDialogFragm
|
|||
}
|
||||
|
||||
@Override
|
||||
protected int getCloseRowTextId() {
|
||||
protected int getDismissButtonTextId() {
|
||||
return R.string.shared_string_close;
|
||||
}
|
||||
|
||||
|
|
|
@ -130,12 +130,12 @@ public class SelectedPointBottomSheetDialogFragment extends MenuBottomSheetDialo
|
|||
}
|
||||
|
||||
@Override
|
||||
protected int getCloseRowTextId() {
|
||||
protected int getDismissButtonTextId() {
|
||||
return R.string.shared_string_close;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCloseRowClickAction() {
|
||||
protected void onDismissButtonClickAction() {
|
||||
if (listener != null) {
|
||||
listener.onClearSelection();
|
||||
}
|
||||
|
|
|
@ -1582,7 +1582,9 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
|||
processGPXFolder(gpxFile, sub);
|
||||
} else if (gpxFile.isFile() && gpxFile.getName().toLowerCase().endsWith(".gpx")) {
|
||||
GpxDataItem item = processedDataFiles.get(gpxFile);
|
||||
if (item == null || item.getFileLastModifiedTime() != gpxFile.lastModified()) {
|
||||
if (item == null
|
||||
|| item.getFileLastModifiedTime() != gpxFile.lastModified()
|
||||
|| item.getAnalysis().wptCategoryNames == null) {
|
||||
GPXFile f = GPXUtilities.loadGPXFile(app, gpxFile);
|
||||
GPXTrackAnalysis analysis = f.getAnalysis(gpxFile.lastModified());
|
||||
if (item == null) {
|
||||
|
|
|
@ -119,7 +119,7 @@ public class OsmEditOptionsBottomSheetDialogFragment extends MenuBottomSheetDial
|
|||
}
|
||||
|
||||
@Override
|
||||
protected int getCloseRowTextId() {
|
||||
protected int getDismissButtonTextId() {
|
||||
return R.string.shared_string_close;
|
||||
}
|
||||
|
||||
|
|
|
@ -4,7 +4,6 @@ import android.app.Dialog;
|
|||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
|
||||
import net.osmand.data.LatLon;
|
||||
import net.osmand.plus.OsmandPlugin;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.activities.MapActivity;
|
||||
|
@ -23,6 +22,7 @@ public class ParkingTypeBottomSheetDialogFragment extends MenuBottomSheetDialogF
|
|||
@Override
|
||||
public void createMenuItems(Bundle savedInstanceState) {
|
||||
items.add(new TitleItem(getString(R.string.parking_options)));
|
||||
|
||||
BaseBottomSheetItem byTypeItem = new SimpleBottomSheetItem.Builder()
|
||||
.setIcon(getContentIcon(R.drawable.ic_action_time_start))
|
||||
.setTitle(getString(R.string.osmand_parking_no_lim_text))
|
||||
|
@ -47,17 +47,18 @@ public class ParkingTypeBottomSheetDialogFragment extends MenuBottomSheetDialogF
|
|||
}
|
||||
})
|
||||
.create();
|
||||
|
||||
items.add(byDateItem);
|
||||
}
|
||||
|
||||
private void addParkingPosition(boolean limited) {
|
||||
Bundle args = getArguments();
|
||||
double latitude = args.getDouble(LAT_KEY);
|
||||
double longitude = args.getDouble(LON_KEY);
|
||||
ParkingPositionPlugin plugin = OsmandPlugin.getEnabledPlugin(ParkingPositionPlugin.class);
|
||||
MapActivity mapActivity = (MapActivity) getActivity();
|
||||
|
||||
if (plugin != null) {
|
||||
MapActivity mapActivity = (MapActivity) getActivity();
|
||||
Bundle args = getArguments();
|
||||
double latitude = args.getDouble(LAT_KEY);
|
||||
double longitude = args.getDouble(LON_KEY);
|
||||
|
||||
if (plugin.isParkingEventAdded()) {
|
||||
plugin.showDeleteEventWarning(mapActivity);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue