This commit is contained in:
GaidamakUA 2015-10-30 10:03:47 +02:00
commit 8380d52ada
51 changed files with 1189 additions and 652 deletions

View file

@ -0,0 +1,119 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="?attr/bottom_menu_view_bg"
xmlns:tools="http://schemas.android.com/tools">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="56dp"
android:layout_height="match_parent">
<ImageView
android:id="@+id/titleIconImageView"
android:layout_width="56dp"
android:layout_height="56dp"
android:scaleType="center"
tools:background="@color/color_warning"
tools:src="@drawable/ic_map"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/titleTextView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginTop="16dp"
android:layout_marginLeft="8dp"
android:paddingRight="8dp"
android:text="@string/index_item_world_basemap"
android:textColor="?android:textColorPrimary"
android:textSize="@dimen/dialog_header_text_size"/>
<ImageButton
android:id="@+id/closeImageButton"
android:layout_width="44dp"
android:layout_height="44dp"
android:layout_gravity="center"
style="@style/Widget.AppCompat.Button.Borderless"
tools:background="@color/color_warning"
android:src="@drawable/ic_action_remove_dark"/>
</LinearLayout>
<TextView
android:id="@+id/descriptionTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginLeft="8dp"
android:paddingRight="8dp"
android:text="@string/world_map_download_descr"
android:textColor="?android:textColorSecondary"
android:textSize="@dimen/default_list_text_size"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:orientation="horizontal">
<Button
android:id="@+id/actionButtonOk"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="8dp"
android:paddingRight="8dp"
style="@style/Widget.AppCompat.Button.Borderless"
android:textColor="?attr/contextMenuButtonColor"
tools:background="@color/color_warning"
android:text="@string/shared_string_download"/>
<Button
android:id="@+id/actionButtonCancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:paddingLeft="8dp"
android:paddingRight="8dp"
style="@style/Widget.AppCompat.Button.Borderless"
tools:background="@color/color_warning"
android:text="@string/later"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</FrameLayout>

View file

@ -81,20 +81,6 @@
android:textColor="?android:textColorSecondary"
android:textSize="@dimen/default_desc_text_size"/>
<Button
android:id="@+id/title_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:gravity="left|center_vertical"
android:text="@string/osmand_parking_delete"
android:background="?android:selectableItemBackground"
android:textColor="?attr/contextMenuButtonColor"
android:textSize="@dimen/default_desc_text_size"/>
</LinearLayout>
<LinearLayout
@ -107,6 +93,41 @@
</LinearLayout>
<LinearLayout
android:id="@+id/title_button_container"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="44dp"
android:layout_marginRight="2dp"
android:layout_marginTop="-16dp"
android:layout_marginBottom="4dp"
android:orientation="horizontal">
<Button
android:id="@+id/title_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?android:selectableItemBackground"
android:gravity="left|center_vertical"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="@string/osmand_parking_delete"
android:textColor="?attr/contextMenuButtonColor"
android:textSize="@dimen/default_desc_text_size"/>
<TextView
android:id="@+id/title_button_right_text"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="center_vertical"
android:clickable="true"
android:textColor="?android:textColorSecondary"
android:textSize="@dimen/default_desc_text_size"
android:text="— 00:26"/>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
@ -201,15 +222,15 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/context_menu_fab_view"
android:layout_width="@dimen/fab_size_with_shadow"
android:layout_height="@dimen/fab_size_with_shadow"
android:layout_gravity="right"
android:layout_marginRight="12dp"
android:background="@drawable/fab_background_style"
android:scaleType="center"
android:src="@drawable/map_directions"/>
<ImageView
android:id="@+id/context_menu_fab_view"
android:layout_width="@dimen/fab_size_with_shadow"
android:layout_height="@dimen/fab_size_with_shadow"
android:layout_gravity="right"
android:layout_marginRight="12dp"
android:background="@drawable/fab_background_style"
android:scaleType="center"
android:src="@drawable/map_directions"/>
</FrameLayout>

View file

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><resources><string name="auto_zoom_none">Без аўтаматычнага маштабаваньня</string>
<?xml version='1.0' encoding='utf-8'?>
<resources><string name="auto_zoom_none">Без аўтаматычнага маштабаваньня</string>
<string name="auto_zoom_close">Буйней</string>
<string name="auto_zoom_far">Для сярэдняга маштаба</string>
<string name="auto_zoom_farthest">Драбней</string>
@ -1967,4 +1968,6 @@
<string name="share_geo">geo:</string>
<string name="show_on_start_description">OsmAnd будзе пачынацца экранам з мапай</string>
<string name="simulate_initial_startup">Імітаваць першы старт праграмы</string>
</resources>
<string name="shared_string_qr_code">QR-код</string>
<string name="map_downloaded">Мапа сьцягнутая</string>
</resources>

View file

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><resources><string name="show_warnings_title">Mostra els missatges d\'avís…</string>
<?xml version='1.0' encoding='utf-8'?>
<resources><string name="show_warnings_title">Mostra els missatges d\'avís…</string>
<string name="map_widget_fluorescent">Rutes amb fluorescència</string>
<string name="map_widget_show_ruler">Mostra el regle</string>
<string name="map_widget_transparent">Aparença amb transparència</string>
@ -89,8 +90,8 @@
<string name="offline_navigation_not_available">La navegació fora de línia de l\'OsmAnd no està disponible temporalment.</string>
<string name="confirm_interrupt_download">Voleu interrompre la baixada del fitxer?</string>
<string name="select_index_file_to_download">No s\'ha trobat res. Si no trobeu la vostra regió, podeu crear-la vosaltres mateixos (vegeu http://osmand.net).</string>
<string name="local_indexes_cat_tile">Mapes en línia (tessel·les)</string>
<string name="local_indexes_cat_map">Mapes fora de línia (vectors)</string>
<string name="local_indexes_cat_tile">Mapes de tessel·les en línia i cau</string>
<string name="local_indexes_cat_map">Mapes estàndards (vectorials)</string>
<string name="map_online_plugin_is_not_installed">Activeu el connector Mapes en línia per poder seleccionar diferents fonts de mapes</string>
<string name="map_online_data">Mapes en línia (tessel·les)</string>
<string name="map_online_data_descr">Utilitzeu mapes en línia (les tessel·les es baixen i es desen a la memòria cau de la targeta SD)</string>
@ -313,8 +314,8 @@
<string name="local_index_transport_data">Dades de transports públics</string>
<string name="local_index_map_data">Dades de mapes</string>
<string name="local_indexes_cat_backup">Desactivat</string>
<string name="local_indexes_cat_tts">Dades de veu (TTS)</string>
<string name="local_indexes_cat_voice">Dades de veu (gravades)</string>
<string name="local_indexes_cat_tts">Indicacions de veu (TTS)</string>
<string name="local_indexes_cat_voice">Indicacions de veu (gravades)</string>
<string name="local_indexes_cat_poi">Dades dels PDI</string>
<string name="ttsvoice">Veu sintetitzada TTS</string>
@ -913,7 +914,7 @@
<string name="download_select_map_types">Altres mapes</string>
<string name="rendering_attr_noAdminboundaries_name">Amaga els límits administratius</string>
<string name="download_roads_only_maps">Mapes de només carreteres</string>
<string name="download_roads_only_maps">Mapa només de carreteres</string>
<string name="safe_mode">Mode segur</string>
<string name="background_service_is_enabled_question">El mode en segon pla encara s\'està executant. També el voleu interrompre?</string>
@ -993,7 +994,7 @@
<string name="save_track_to_gpx">Desa la traça en un fitxer GPX durant la navegació</string>
<string name="use_english_names_descr">Escolliu entre noms nadius i noms anglesos</string>
<string name="srtm_plugin_description">"Aquest connector proporciona tant corbes de nivell superposades com una capa d\'ombres amb efecte relleu per posar a sobre els mapes locals de OsmAnd. Corredors, ciclistes, excursionistes i qualsevol interessat en el perfil de relleu del terreny ho agrairan força.\n\nLes dades globals (entre 70 graus nord i 70 graus sud) estan basades en mesures del SRTM (Shuttle Radar Topography Mission) i del ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), un instrument de generació d\'imatges a bord de Terra, el satèl·lit insígnia del Sistema d\'Observació de la Terra de la NASA. ASTER és un esforç de col·laboració entre la NASA, el Ministeri d\'Economia i Comerç del Japó (METI) i la fundació Japan Space Systems (J-spacesystems). "</string>
<string name="srtm_plugin_description">"Aquest connector proporciona tant corbes de nivell superposades com una capa d\'ombres amb efecte relleu per superposar als mapes de OsmAnd. Corredors, ciclistes, excursionistes i qualsevol interessat en el perfil de relleu del terreny ho agrairan força.\n\nLes dades globals (entre 70 graus nord i 70 graus sud) estan basades en mesures del SRTM (Shuttle Radar Topography Mission) i del ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), un instrument de generació d\'imatges a bord de Terra, el satèl·lit insígnia del Sistema d\'Observació de la Terra de la NASA. ASTER és un esforç de col·laboració entre la NASA, el Ministeri d\'Economia i Comerç del Japó (METI) i la fundació Japan Space Systems (J-spacesystems). "</string>
<string name="rendering_attr_showRoadMaps_description">Indiqueu quan mostrar mapes de només carreteres:</string>
<string name="auto_announce_on">Inicia els anuncis automàtics</string>
@ -1017,7 +1018,7 @@
<string name="av_def_action_picture">Fes una fotografia</string>
<string name="recording_context_menu_precord">Fes una fotografia</string>
<string name="download_hillshade_maps">Mapes de relleu</string>
<string name="download_hillshade_maps">Ombres de relleu</string>
<string name="precise_routing_mode_descr">Activeu per calcular itineraris precisos sense errades. Encara és lent i de distància limitada.</string>
<string name="precise_routing_mode">Encaminament precís (alfa)</string>
@ -1080,7 +1081,7 @@
<string name="prefer_in_routing_title">Preferències…</string>
<string name="prefer_in_routing_descr">Millor autopistes</string>
<string name="max_speed_none">cap</string>
<string name="local_indexes_cat_srtm">Dades de les corbes de nivell</string>
<string name="local_indexes_cat_srtm">Corbes de nivell</string>
<string name="monitoring_settings_descr">Configureu com enregistrar els vostres recorreguts</string>
<string name="av_use_external_camera_descr">Usa l\\\'aplicació del sistema per a les fotografies</string>
@ -1257,7 +1258,7 @@
<string name="route_info">Informació de ruta</string>
<string name="osmand_srtm_long_description_1000_chars">"Aquest connector proporciona tant corbes de nivell superposades com una capa d\'ombres amb efecte relleu per posar a sobre els mapes locals de OsmAnd. Corredors, ciclistes, excursionistes i qualsevol interessat en el perfil de relleu del terreny ho agrairan força.\n\nLes dades globals (entre 70 graus nord i 70 graus sud) estan basades en mesures del SRTM (Shuttle Radar Topography Mission) i del ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), un instrument de generació d\'imatges a bord de Terra, el satèl·lit insígnia del Sistema d\'Observació de la Terra de la NASA. ASTER és un esforç de col·laboració entre la NASA, el Ministeri d\'Economia i Comerç del Japó (METI) i la fundació Japan Space Systems (J-spacesystems). "</string>
<string name="osmand_srtm_long_description_1000_chars">"Aquest connector proporciona tant corbes de nivell superposades com una capa d\'ombres amb efecte relleu per superposar als mapes de OsmAnd. Corredors, ciclistes, excursionistes i qualsevol interessat en el perfil de relleu del terreny ho agrairan força.\n\nLes dades globals (entre 70 graus nord i 70 graus sud) estan basades en mesures del SRTM (Shuttle Radar Topography Mission) i del ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), un instrument de generació d\'imatges a bord de Terra, el satèl·lit insígnia del Sistema d\'Observació de la Terra de la NASA. ASTER és un esforç de col·laboració entre la NASA, el Ministeri d\'Economia i Comerç del Japó (METI) i la fundació Japan Space Systems (J-spacesystems). "</string>
<string name="keep_and_add_destination_point">Afegeix com a punt de destinació</string>
<string name="calculate_osmand_route_without_internet">Calcula un segment de ruta a l\'OsmAnd sense Internet</string>
<string name="gpx_option_calculate_first_last_segment">Calcula una ruta a l\'OsmAnd pels seus segments primer i darrer</string>
@ -1668,7 +1669,7 @@
<string name="proxy_port_descr">Configureu el número de port del vostre servidor intermediari (p.ex. 8118)</string>
<string name="points">Punts</string>
<string name="shared_string_my_location">La vostra posició</string>
<string name="shared_string_my_location">La meva posició</string>
<string name="version_settings_descr">Baixada de les darreres versions</string>
<string name="version_settings">Versions</string>
@ -1956,7 +1957,7 @@ Per retornar a l\'estil habitual dels mapes d\'OsmAnd, només cal desactivar aqu
<string name="buy">Compra</string>
<string name="regions">Regions</string>
<string name="region_maps">Mapes de regió</string>
<string name="region_maps">Mapes de regions</string>
<string name="world_maps">Mapes del món</string>
<string name="later">Mes tard</string>
@ -1973,11 +1974,18 @@ Per retornar a l\'estil habitual dels mapes d\'OsmAnd, només cal desactivar aqu
<string name="update_all">Actualitzeu tot (%1$s MB)</string>
<string name="free_downloads_used">Baixades gratuïtes realitzades</string>
<string name="free_downloads_used_description">Podeu veure quantes baixades gratuïtes heu fet</string>
<string name="simulate_initial_startup_descr">Restaura el senyalitzador de primera engegada, mantenint altres paràmetres en l\'estat original</string>
<string name="simulate_initial_startup">Simula engegada inicial</string>
<string name="simulate_initial_startup_descr">Configura el senyalitzador de primera engegada de l\'aplicació, mantenint la resta de paràmetres sense canvis</string>
<string name="simulate_initial_startup">Simula l\'engegada inicial de l\'aplicació</string>
<string name="share_geo">geo:</string>
<string name="share_menu_location">Comparteix la posició</string>
<string name="shared_string_send">Envia</string>
<string name="hello_blank_fragment">Hola fragment buit</string>
<string name="application_dir_description">Trieu on voleu desar els fitxers de mapes.</string>
</resources>
<string name="shared_string_qr_code">Codi QR</string>
<string name="map_downloaded">Mapa baixat</string>
<string name="map_downloaded_descr">S\'ha baixat el mapa de %1$s. Torneu al mapa per començar a utilitzar-lo.</string>
<string name="go_to_map">Vés al mapa</string>
<string name="world_map_download_descr">El mapa base mundial (que abasta el món sencer però amb poca ampliació) no es troba o està malmès. Considereu baixar-lo per una operació completa.</string>
<string name="show_on_start_description">Si es desactiva s\'engega amb la pantalla del mapa</string>
<string name="enter_country_name">Indiqueu el nom del país</string>
</resources>

View file

@ -2389,8 +2389,10 @@
<string name="poi_club_scout">Spejdergruppe</string>
<string name="poi_historic_threshing_floor">Historisk tærskegulv</string>
<string name="poi_historic_threshing_floor">Historisk tærskeplads</string>
<string name="poi_historic_gallows">Historisk galge</string>
<string name="poi_historic_railway">Historisk jernbane</string>
<string name="poi_square">Torv</string>
</resources>

View file

@ -284,7 +284,7 @@
<string name="modify_transparency">Ændre gennemsigtighed (0 - gennemsigtig, 255 - ugennemsigtig)</string>
<string name="confirm_interrupt_download">Afbryd hentning af fil?</string>
<string name="first_time_msg">Til mange af funktionerne i programmet skal der bruges nogle regionale offline data som kan hentes via \'Indstillinger\' → \'Administrer kortfiler\'. Bagefter kan man se kort, søge adresser, finde interessepunkter (IP) og kolllektivtrafik.</string>
<string name="basemap_was_selected_to_download">Basiskort er nødvendig for korrekt programfunktion og blev automatisk valgt.</string>
<string name="basemap_was_selected_to_download">Grundkort er nødvendige for korrekt programfunktion og blev automatisk valgt.</string>
<string name="select_index_file_to_download">Fandt intet. Hvis man ikke kan finde sin region kan man lave den selv (se http://osmand.net).</string>
<string name="local_indexes_cat_tile">Onlinekort og cachelagrede kortfliser</string>
<string name="local_indexes_cat_map">Standardkort (vektor)</string>
@ -531,7 +531,7 @@
<string name="show_more_map_detail_descr">Vis nogle vektor-kortdetaljer (f.eks. veje) allerede ved lavere zoom</string>
<string name="favourites_delete_multiple_succesful">Favoritter er slettet.</string>
<string name="favorite_delete_multiple">%1$d favoritter og %2$d favoritgrupper slettes. Forsæt?</string>
<string name="basemap_missing">Basis verdenskort (dækker hele verden ved lav zoom) mangler. Overvej at hente World_basemap_x.obf for et komplet kortmiljø.</string>
<string name="basemap_missing">Verdensgrundkort (dækker hele verden ved lave zoomniveauer) mangler. Overvej at hente World_basemap_x.obf for et komplet kortmiljø.</string>
<string name="vector_data_missing">Offline-data mangler på SD-kort. Overvej at hente for at kunne bruge kort offline.</string>
@ -2000,4 +2000,5 @@
<string name="go_to_map">Gå til kortet</string>
<string name="shared_string_qr_code">QR kode</string>
<string name="enter_country_name">Indtast landenavn</string>
</resources>
<string name="world_map_download_descr">Verdensgrundkort (dækker hele verden ved lave zoomniveauer) mangler eller er forældet. Overvej at hente verdensgrundkort for et komplet miljø.</string>
</resources>

View file

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><resources><string name="rendering_attr_hideHouseNumbers_name">Ocultar números de casa</string>
<?xml version='1.0' encoding='utf-8'?>
<resources><string name="rendering_attr_hideHouseNumbers_name">Ocultar números de casa</string>
<string name="copying_osmand_file_failed">Falló al copiar archivos</string>
<string name="storage_directory_external">Almacenamiento externo</string>
<string name="storage_directory_multiuser">Almacenamiento multiusuario</string>
@ -1988,4 +1989,7 @@
<string name="map_downloaded">Mapa descargado</string>
<string name="map_downloaded_descr">Se descargó el mapa de %1$s. Vuelve al mapa para empezar a usarlo.</string>
<string name="go_to_map">Ir al mapa</string>
</resources>
<string name="shared_string_qr_code">Código QR</string>
<string name="enter_country_name">Escriba el nombre del país</string>
<string name="world_map_download_descr">El mapa base mundial (abarca todo el mundo en acercamientos pequeños), falta o está desactualizado. Considere descargarlo para un entorno completo.</string>
</resources>

View file

@ -3,9 +3,9 @@
<string name="poi_shop_food">Alimentación</string>
<string name="poi_emergency">Emergencia</string>
<string name="poi_transportation">Transporte</string>
<string name="poi_road_obstacle">Obstáculo del camino</string>
<string name="poi_road_obstacle">Obstáculo de carretera</string>
<string name="poi_filling_station">Estación de servicio</string>
<string name="poi_personal_transport">Transporte particular</string>
<string name="poi_personal_transport">Transporte personal</string>
<string name="poi_public_transport">Transporte público</string>
<string name="poi_air_transport">Transporte aéreo</string>
<string name="poi_water_transport">Transporte fluvial</string>
@ -44,9 +44,9 @@
<string name="poi_bakery">Panadería</string>
<string name="poi_alcohol">Licorería</string>
<string name="poi_convenience">Almacén</string>
<string name="poi_convenience">Tienda</string>
<string name="poi_mall">Centro comercial</string>
<string name="poi_beverages">Venta de bebidas</string>
<string name="poi_beverages">Tienda de bebidas</string>
<string name="poi_butcher">Carnicería</string>
<string name="poi_deli">Delicatessen</string>
<string name="poi_seafood">Pescadería</string>
@ -55,16 +55,16 @@
<string name="poi_tea">Casa de té</string>
<string name="poi_wine">Vinoteca</string>
<string name="poi_books">Librería (libros)</string>
<string name="poi_books">Librería</string>
<string name="poi_antiques">Antigüedades</string>
<string name="poi_art">Venta de arte</string>
<string name="poi_art">Tienda de arte</string>
<string name="poi_baby_goods">Artículos para bebés</string>
<string name="poi_computer">Computadoras</string>
<string name="poi_florist">Florería</string>
<string name="poi_furniture">Mueblería</string>
<string name="poi_garden_centre">Vivero</string>
<string name="poi_gas">Gas líquido</string>
<string name="poi_general">Pulpería</string>
<string name="poi_general">Tienda general</string>
<string name="poi_gift">Regalería</string>
<string name="poi_glaziery">Vidriería</string>
<string name="poi_herbalist">Herboristería</string>
@ -75,26 +75,26 @@
<string name="poi_kitchen">Muebles de cocina</string>
<string name="poi_medical_supply">Artículos médicos</string>
<string name="poi_mobile_phone">Telefonía celular</string>
<string name="poi_motorcycle">Motos</string>
<string name="poi_motorcycle">Motocicletas</string>
<string name="poi_musical_instrument">Instrumentos musicales</string>
<string name="poi_newsagent">Diariería</string>
<string name="poi_newsagent">Agencia de noticias</string>
<string name="poi_optician">Óptica</string>
<string name="poi_organic">Comida orgánica</string>
<string name="poi_outdoor">Tienda de actividades al aire libre</string>
<string name="poi_paint">Pinturería</string>
<string name="poi_pet">Mascotas</string>
<string name="poi_photo">Servicio fotográfico</string>
<string name="poi_second_hand">Local de segunda mano</string>
<string name="poi_second_hand">Tienda de segunda mano</string>
<string name="poi_sports">Artículos deportivos</string>
<string name="poi_stationery">Librería</string>
<string name="poi_stationery">Papelería</string>
<string name="poi_ticket">Boletería</string>
<string name="poi_toys">Juguetería</string>
<string name="poi_trade">Corralón</string>
<string name="poi_variety_store">Todo por $2</string>
<string name="poi_trade">Puesto comercial</string>
<string name="poi_variety_store">Bazar</string>
<string name="poi_video">Videoclub</string>
<string name="poi_department_store">Grandes almacenes</string>
<string name="poi_electronics">Electrónicos</string>
<string name="poi_car">Concesionario de autos</string>
<string name="poi_car">Concesionario de automóviles</string>
<string name="poi_car_parts">Autopartes</string>
<string name="poi_cosmetics">Cosméticos</string>
<string name="poi_marketplace">Mercado</string>
@ -105,7 +105,7 @@
<string name="poi_fire_extinguisher">Extintor de incendios</string>
<string name="poi_fire_hose">Manguera de incendio</string>
<string name="poi_ambulance_station">Estación de ambulancias</string>
<string name="poi_ses_station">Defensa Civil</string>
<string name="poi_ses_station">Defensa Civil (SES)</string>
<string name="poi_emergency_access_point">Punto de acceso de emergencia</string>
<string name="poi_mountain_pass_yes">Paso de montaña</string>
@ -114,13 +114,13 @@
<string name="poi_lift_gate">Barrera levadiza</string>
<string name="poi_toll_booth">Peaje</string>
<string name="poi_border_control">Control fronterizo</string>
<string name="poi_traffic_calming_bump">Lomo de burro</string>
<string name="poi_traffic_calming_bump">Protuberancia</string>
<string name="poi_traffic_signals">Semáforo</string>
<string name="poi_car_repair">Taller mecánico</string>
<string name="poi_vehicle_inspection">Inspección de vehículos</string>
<string name="poi_car_wash">Lavadero de autos</string>
<string name="poi_fuel">Estación de servicio</string>
<string name="poi_car_wash">Lavadero de automóviles</string>
<string name="poi_fuel">Gasolinera</string>
<string name="poi_fuel_diesel">Diésel</string>
<string name="poi_fuel_gtl_diesel">Diésel GTL</string>
<string name="poi_fuel_biodiesel">Biodiésel</string>
@ -131,20 +131,20 @@
<string name="poi_charging_station">Estación de carga</string>
<string name="poi_vehicle_ramp">Rampa de vehículos</string>
<string name="poi_compressed_air">Aire comprimido</string>
<string name="poi_parking">Estacionamiento</string>
<string name="poi_motorcycle_parking">Estacionamiento de motos</string>
<string name="poi_parking">Aparcamiento</string>
<string name="poi_motorcycle_parking">Aparcamiento de motocicletas</string>
<string name="poi_public_transport_platform">Andén de transporte público</string>
<string name="poi_public_transport_platform_bus">Andén de colectivo</string>
<string name="poi_public_transport_platform_bus">Andén de autobús</string>
<string name="poi_public_transport_platform_trolleybus">Andén de trolebús</string>
<string name="poi_bus_stop">Parada de colectivo</string>
<string name="poi_bus_stop">Parada de autobús</string>
<string name="poi_public_transport_platform_tram">Andén de tranvía</string>
<string name="poi_tram_stop">Parada de tranvía</string>
<string name="poi_public_transport_station">Estación de transporte público</string>
<string name="poi_bus_station">Estación de colectivo</string>
<string name="poi_bus_station">Estación de autobús</string>
<string name="poi_railway_station">Estación de tren</string>
<string name="poi_halt">Parada de tren</string>
<string name="poi_railway_subway_entrance">Entrada de subte</string>
<string name="poi_subway_station">Estación de subte</string>
<string name="poi_railway_subway_entrance">Entrada de metro</string>
<string name="poi_subway_station">Estación de metro</string>
<string name="poi_aerodrome">Aeropuerto</string>
<string name="poi_helipad">Helipuerto</string>
<string name="poi_taxi">Parada de taxi</string>
@ -202,23 +202,23 @@
<string name="poi_university">Universidad</string>
<string name="poi_courthouse">Juzgado</string>
<string name="poi_prison">Cárcel</string>
<string name="poi_prison">Prisión</string>
<string name="poi_embassy">Embajada</string>
<string name="poi_migration">Migración</string>
<string name="poi_office_administrative">Oficina administrativa</string>
<string name="poi_city">Ciudad</string>
<string name="poi_town">Pueblo</string>
<string name="poi_village">Pueblito</string>
<string name="poi_village">Villa</string>
<string name="poi_hamlet">Aldea</string>
<string name="poi_suburb">Barrio</string>
<string name="poi_neighbourhood">Vecindario</string>
<string name="poi_locality">Paraje</string>
<string name="poi_suburb">Suburbio</string>
<string name="poi_neighbourhood">Barrio</string>
<string name="poi_locality">Localidad</string>
<string name="poi_place_farm">Granja</string>
<string name="poi_residential">Área residencial</string>
<string name="poi_pharmacy">Farmacia</string>
<string name="poi_hospital">Hospital</string>
<string name="poi_doctors">Médicos</string>
<string name="poi_doctors">Doctor</string>
<string name="poi_clinic">Clínica</string>
<string name="poi_dentist">Dentista</string>
<string name="poi_veterinary">Veterinaria</string>
@ -241,9 +241,9 @@
<string name="poi_american_football">Fútbol americano</string>
<string name="poi_australian_football">Fútbol australiano</string>
<string name="poi_baseball">Béisbol</string>
<string name="poi_basketball">Basquet</string>
<string name="poi_basketball">Baloncesto</string>
<string name="poi_bmx">BMX</string>
<string name="poi_bowls">Bolos</string>
<string name="poi_bowls">Bolera</string>
<string name="poi_canadian_football">Fútbol canadiense</string>
<string name="poi_canoe">Canoa</string>
<string name="poi_chess">Ajedrez</string>
@ -301,7 +301,7 @@
<string name="poi_travel_agent">Agente de viajes</string>
<string name="poi_viewpoint">Mirador</string>
<string name="poi_camp_site">Campamento</string>
<string name="poi_picnic_site">Área de picnic</string>
<string name="poi_picnic_site">Merendero</string>
<string name="poi_cemetery">Cementerio</string>
<string name="poi_tomb">Tumba</string>
<string name="poi_shelter">Refugio</string>
@ -320,16 +320,16 @@
<string name="poi_social_centre">Centro social</string>
<string name="poi_theatre">Teatro</string>
<string name="poi_circus">Circo</string>
<string name="poi_nightclub">Boliche</string>
<string name="poi_nightclub">Club nocturno</string>
<string name="poi_stripclub">Club de striptease</string>
<string name="poi_dog_park">Parque canino</string>
<string name="poi_leisure_fishing">Lugar de pesca</string>
<string name="poi_harbour">Puerto</string>
<string name="poi_marina">Marina</string>
<string name="poi_miniature_golf">Minigolf</string>
<string name="poi_bench">"Banco (asiento) "</string>
<string name="poi_bench">Banco (asiento)</string>
<string name="poi_water_park">Parque acuático</string>
<string name="poi_park">Parque / Plaza</string>
<string name="poi_park">Parque/Plaza</string>
<string name="poi_recreation_ground">Zona recreativa</string>
<string name="poi_cafe">Cafetería</string>
<string name="poi_restaurant">Restaurante</string>
@ -350,14 +350,14 @@
<string name="poi_craft_painter">Pintor</string>
<string name="poi_craft_photographer">Fotógrafo</string>
<string name="poi_craft_photographic_laboratory">Laboratorio fotográfico</string>
<string name="poi_craft_plumber">Plomero</string>
<string name="poi_craft_plumber">Plomero/Fontanero</string>
<string name="poi_craft_sculptor">Escultor</string>
<string name="poi_beauty">Salón de belleza</string>
<string name="poi_hairdresser">Peluquería</string>
<string name="poi_massage">Salón de masajes</string>
<string name="poi_tattoo">Salón de tatuajes</string>
<string name="poi_laundry">Lavandería</string>
<string name="poi_car_rental">Alquiler de autos</string>
<string name="poi_car_rental">Alquiler de coches</string>
<string name="poi_sauna">Sauna</string>
<string name="poi_brothel">Burdel</string>
<string name="poi_smoking_area">Área de fumadores</string>
@ -365,7 +365,7 @@
<string name="poi_crematorium">Crematorio</string>
<string name="poi_bank">Banco</string>
<string name="poi_atm">Cajero automático</string>
<string name="poi_accountant">Contador</string>
<string name="poi_accountant">Contable/Contador</string>
<string name="poi_cave_entrance">Entrada a cueva</string>
<string name="poi_volcano">Volcán</string>
<string name="poi_crater">Cráter</string>
@ -383,16 +383,16 @@
<string name="poi_anime">Tienda de anime</string>
<string name="poi_boutique">Boutique de moda</string>
<string name="poi_dive">Equipo de buceo</string>
<string name="poi_erotic">Sexshop</string>
<string name="poi_erotic">Tienda erótica</string>
<string name="poi_bathroom_furnishing">Muebles de baño</string>
<string name="poi_carpet">Alfombras</string>
<string name="poi_charity">Negocio benéfico</string>
<string name="poi_charity">Tienda benéfica</string>
<string name="poi_confectionery">Dulcería</string>
<string name="poi_clothes">Negocio de ropa</string>
<string name="poi_clothes">Tienda de ropa</string>
<string name="poi_clothes_children">Ropa infantil</string>
<string name="poi_shoes">Zapatería</string>
<string name="poi_copyshop">Fotocopiadora</string>
<string name="poi_curtain">Blanquería</string>
<string name="poi_copyshop">Tienda de fotocopiado</string>
<string name="poi_curtain">Cortinas</string>
<string name="poi_doityourself">Mejoras para el hogar</string>
<string name="poi_fishing">Equipos de pesca</string>
<string name="poi_frame">Tienda de marcos</string>
@ -418,7 +418,7 @@
<string name="poi_fuel_octane_100">100 octanos</string>
<string name="poi_fuel_1_25">Combustible 1:25</string>
<string name="poi_fuel_ethanol">Etanol</string>
<string name="poi_parking_entrance">Entrada de estacionamiento</string>
<string name="poi_parking_entrance">Entrada del aparcamiento</string>
<string name="poi_garages">Garajes</string>
<string name="poi_public_transport_stop_position">Punto de detención de transporte público</string>
@ -437,7 +437,7 @@
<string name="poi_water_well">Pozo de agua</string>
<string name="poi_bag">Venta de bolsos</string>
<string name="poi_bed">Colchonería</string>
<string name="poi_bed">Muebles de dormitorio</string>
<string name="poi_fabric">Mercería</string>
<string name="poi_bedding">Tienda de ropa de cama</string>
<string name="poi_ship_chandler">Proveedor naval</string>
@ -475,7 +475,7 @@
<string name="poi_telephone_exchange">Central telefónica</string>
<string name="poi_landfill">Basural</string>
<string name="poi_landfill">Vertedero/Basural</string>
<string name="poi_waste_basket">Cesto de basura</string>
<string name="poi_quarry">Cantera</string>
@ -499,17 +499,17 @@
<string name="poi_register_office">Registro civil</string>
<string name="poi_government">Gubernamental</string>
<string name="poi_prosecutor">Fiscal</string>
<string name="poi_pension_fund">Seguridad social</string>
<string name="poi_tax_inspection">Fiscalización (AFIP)</string>
<string name="poi_pension_fund">Fondo de pensiones</string>
<string name="poi_tax_inspection">Inspecciones fiscales</string>
<string name="poi_customs">Aduanas</string>
<string name="poi_isolated_dwelling">Vivienda aislada</string>
<string name="poi_place_allotments">Parcelas</string>
<string name="poi_first_aid">Primeros auxilios</string>
<string name="poi_nursing_home">Geriátrico</string>
<string name="poi_audiologist">Otorrinolaringólogo</string>
<string name="poi_nursing_home">Residencia de ancianos</string>
<string name="poi_audiologist">Audiólogo</string>
<string name="poi_midwife">Partera</string>
<string name="poi_occupational_therapist">Terapeuta ocupacional</string>
<string name="poi_optometrist">Oftalmólogo</string>
<string name="poi_optometrist">Optometrista</string>
<string name="poi_physiotherapist">Fisioterapeuta</string>
<string name="poi_podiatrist">Podólogo</string>
<string name="poi_psychotherapist">Psicoterapeuta</string>
@ -550,16 +550,16 @@
<string name="poi_city_gate">Puerta de ciudad</string>
<string name="poi_fort">Fuerte</string>
<string name="poi_rune_stone">Piedra rúnica</string>
<string name="poi_wreck">Naufragio</string>
<string name="poi_wreck">Pecio</string>
<string name="poi_attraction_animal">Animal (atracción)</string>
<string name="poi_attraction_carousel">Calesita</string>
<string name="poi_attraction_carousel">Carrusel</string>
<string name="poi_attraction_maze">Laberinto</string>
<string name="poi_attraction_water_slide">Tobogán de agua</string>
<string name="poi_lodging">Alojamiento</string>
<string name="poi_wilderness_hut">Cabaña aislada</string>
<string name="poi_religion_muslim">Islámismo</string>
<string name="poi_religion_muslim">Islamismo</string>
<string name="poi_religion_sikh">Sijismo</string>
<string name="poi_religion_buddhist">Budismo</string>
<string name="poi_religion_hindu">Hinduismo</string>
@ -623,7 +623,7 @@
<string name="poi_craft_tailor">Sastre</string>
<string name="poi_craft_tinsmith">Hojalatero</string>
<string name="poi_craft_upholsterer">Tapicero</string>
<string name="poi_craft_watchmaker">Relojero (watchmaker)</string>
<string name="poi_craft_watchmaker">Relojero</string>
<string name="poi_beauty_salon_nails">Salón de manicura</string>
<string name="poi_dry_cleaning">Tintorería</string>
<string name="poi_car_sharing">Coche compartido</string>
@ -639,7 +639,7 @@
<string name="poi_bitcoin_yes">Pago de Bitcoin</string>
<string name="poi_peak">Pico de montaña</string>
<string name="poi_sinkhole">Dolina</string>
<string name="poi_sinkhole">Sima</string>
<string name="poi_waterfall">Cascada</string>
<string name="poi_bay">Bahía</string>
<string name="poi_fjord">Fiordo</string>
@ -672,12 +672,12 @@
<string name="poi_seamark_harbour">Puerto</string>
<string name="poi_baby_hatch">Escotilla de bebé</string>
<string name="poi_speech_therapist">Fonoaudiólogo</string>
<string name="poi_newspaper">Oficina de diario</string>
<string name="poi_newspaper">Oficina de periódico</string>
<string name="poi_bookmaker">Casa de apuestas</string>
<string name="poi_leisure_track">Pista deportiva</string>
<string name="poi_9pin">Bowling de 9 pinos</string>
<string name="poi_10pin">Bowling de 10 pinos</string>
<string name="poi_9pin">Bolera de 9 pinos</string>
<string name="poi_10pin">Bolera de 10 pinos</string>
<string name="poi_boules">Bolos</string>
<string name="poi_cricket">Críquet</string>
<string name="poi_scuba_diving">Submarinismo</string>
@ -690,8 +690,8 @@
<string name="poi_korfbal">Balonkorf</string>
<string name="poi_boundary_stone">Mojón</string>
<string name="poi_attraction_amusement_ride">Atracción de feria</string>
<string name="poi_attraction_big_wheel">Rueda de la fortuna</string>
<string name="poi_attraction_swing_carousel">Sillas voladoras</string>
<string name="poi_attraction_big_wheel">Noria</string>
<string name="poi_attraction_swing_carousel">Carrusel de oscilación</string>
<string name="poi_religion_jewish">Judaísmo</string>
<string name="poi_internet_access_service">Servicio de Internet</string>
@ -708,8 +708,8 @@
<string name="poi_beacon_special_purpose">Baliza de propósito especial</string>
<string name="poi_seamark_building">Edificio náutico</string>
<string name="poi_quarter">Distrito</string>
<string name="poi_attraction_summer_toboggan">Tobogán de agua</string>
<string name="poi_internet_access_terminal">PC con Internet</string>
<string name="poi_attraction_summer_toboggan">Tobogán de verano</string>
<string name="poi_internet_access_terminal">Terminal con Internet</string>
<string name="poi_caravan_site">Campamento de caravanas</string>
<string name="poi_hot_spring">Fuente termal</string>
<string name="poi_resort">Complejo turístico</string>
@ -726,10 +726,10 @@
<string name="poi_craft_stand_builder">Diseño de stands</string>
<string name="poi_craft_sun_protection">Fábrica de toldos</string>
<string name="poi_craft_sweep">Deshollinador</string>
<string name="poi_craft_tiler">Albañil (azulejos)</string>
<string name="poi_craft_window_construction">Fábrica de aberturas</string>
<string name="poi_craft_tiler">Alicatador</string>
<string name="poi_craft_window_construction">Fábrica de ventanas</string>
<string name="poi_craft_computer">Armado de PCs</string>
<string name="poi_craft_computer">Montaje de computadoras</string>
<string name="poi_saddle">Collado</string>
<string name="poi_cape">Cabo</string>
<string name="poi_anchor_berth">Fondeadero</string>
@ -774,11 +774,11 @@
<string name="poi_cabin">Cabaña</string>
<string name="poi_lean_to">Cobertizo</string>
<string name="poi_picnic_table">Mesa de picnic</string>
<string name="poi_wine_cellar">Cava</string>
<string name="poi_wine_cellar">Bodega</string>
<string name="poi_winery">Bodega</string>
<string name="poi_gallery">Galería de arte</string>
<string name="poi_hunting_lodge">Pabellón de caza</string>
<string name="poi_hunting_lodge">Refugio de caza</string>
<string name="poi_hanami">Hanami</string>
<string name="poi_trail_riding_station">Estación de equitación</string>
@ -835,18 +835,18 @@
<string name="poi_coffee">Tienda de café</string>
<string name="poi_pasta">Fábrica de pastas</string>
<string name="poi_pastry">Pastelería</string>
<string name="poi_candles">Velas</string>
<string name="poi_candles">Tienda de velas</string>
<string name="poi_fashion">Tienda de modas</string>
<string name="poi_free_flying">Artículos de paracaidismo</string>
<string name="poi_furnace">Artículos de calefacción</string>
<string name="poi_garden_furniture">Almacén de jardinería</string>
<string name="poi_furnace">Tienda de calefactores</string>
<string name="poi_garden_furniture">Tienda de muebles de jardín</string>
<string name="poi_leather">Marroquinería</string>
<string name="poi_music">Disquería</string>
<string name="poi_scuba_diving_shop">Artículos de buceo</string>
<string name="poi_tyres">Neumáticos</string>
<string name="poi_energy">Almacén de energía</string>
<string name="poi_watches">Relojería</string>
<string name="poi_swimming_pool_shop">Artículos para natación</string>
<string name="poi_energy">Acumulador de energía</string>
<string name="poi_watches">Tienda de relojes pulsera</string>
<string name="poi_swimming_pool_shop">Artículos de piscina</string>
<string name="poi_games">Juegos</string>
<string name="poi_model">Modelos a escala</string>
<string name="poi_trophy">Trofeos, premios</string>
@ -859,16 +859,16 @@
<string name="poi_wiki_lang_vo">Wikipedia Volapük</string>
<string name="poi_bollard">Bolardo</string>
<string name="poi_cycle_barrier">Barrera para bicicletas</string>
<string name="poi_motorcycle_barrier">Barrera para Motos</string>
<string name="poi_motorcycle_barrier">Barrera para motocicletas</string>
<string name="poi_block">Bloque</string>
<string name="poi_bus_trap">Trampa para colectivos</string>
<string name="poi_cattle_grid">Paso canadiense</string>
<string name="poi_full_height_turnstile">Molinete de altura total</string>
<string name="poi_bus_trap">Trampa de autobús</string>
<string name="poi_cattle_grid">Rejilla para ganado</string>
<string name="poi_full_height_turnstile">Molinete de altura completa</string>
<string name="poi_bump_gate">Portón rural</string>
<string name="poi_general_barrier">Barrera general</string>
<string name="poi_stile">Escalera de paso</string>
<string name="poi_height_restrictor">Limitador de altura</string>
<string name="poi_swing_gate">Barrera giratoria</string>
<string name="poi_swing_gate">Puerta de oscilación</string>
<string name="poi_turnstile">Molinete</string>
<string name="poi_barrier_entrance">Pasaje hueco en una pared o valla</string>
<string name="poi_entrance_main">Entrada principal</string>
@ -953,7 +953,7 @@
<string name="poi_email">Email</string>
<string name="poi_fax">Fax</string>
<string name="poi_facebook">Facebook</string>
<string name="poi_mobile">Celular</string>
<string name="poi_mobile">Móvil</string>
<string name="poi_animal_shelter_dog">Refugio canino</string>
<string name="poi_animal_shelter_cat">Refugio gatuno</string>
<string name="poi_animal_shelter_dog_cat">Refugio canino y gatuno</string>
@ -1059,7 +1059,7 @@
<string name="poi_association">Asociación</string>
<string name="poi_financial">Oficina financiera</string>
<string name="poi_political_party">Partido político</string>
<string name="poi_notary">Escribano</string>
<string name="poi_notary">Escribano/notario</string>
<string name="poi_foundation">Fundación</string>
<string name="poi_tax_advisor">Asesor fiscal</string>
@ -1073,7 +1073,7 @@
<string name="poi_religion_scientologist">Cienciologísmo</string>
<string name="poi_religion_pagan">Paganismo</string>
<string name="poi_religion_tenrikyo">Tenrikyō</string>
<string name="poi_religion_zoroastrian">Zoroástrismo</string>
<string name="poi_religion_zoroastrian">Zoroastrismo</string>
<string name="poi_denomination_catholic">Católica</string>
<string name="poi_denomination_baptist">Bautista</string>
@ -1111,7 +1111,7 @@
<string name="poi_denomination_congregational">Congregacional</string>
<string name="poi_denomination_old_believers">Antiguos creyentes</string>
<string name="poi_denomination_serbian_orthodox">Ortodoxa Serbia</string>
<string name="poi_denomination_spiritist">Espírita</string>
<string name="poi_denomination_spiritist">Espiritista</string>
<string name="poi_denomination_armenian_apostolic">Apostólico armenio</string>
<string name="poi_denomination_dutch_reformed">Holandés reformado</string>
<string name="poi_denomination_apostolic">Apostólica</string>
@ -1130,13 +1130,13 @@
<string name="poi_denomination_reformed">Reformado</string>
<string name="poi_denomination_united">Unido</string>
<string name="poi_denomination_united_reformed">Reformada unida</string>
<string name="poi_denomination_united_reformed">Unidos reformado</string>
<string name="poi_denomination_uniting">Uniendo</string>
<string name="poi_denomination_quaker">Cuáquero</string>
<string name="poi_denomination_shaktism">Shaktismo</string>
<string name="poi_denomination_wesleyan">Wesleyan</string>
<string name="poi_denomination_shingon_shu">Budismo shingon</string>
<string name="poi_landfill_waste_nuclear">Desperdicios nucleares</string>
<string name="poi_landfill_waste_nuclear">Reciduos nucleares</string>
<string name="poi_bunker_silo">Silo bunker</string>
<string name="poi_start_date">Fecha de inicio</string>
<string name="poi_wheelchair">Adaptado para silla de rueda</string>
@ -1158,21 +1158,21 @@
<string name="poi_content_salt">Contenido: Sal</string>
<string name="poi_content_grain">Contenido: Granos</string>
<string name="poi_brownfield">Suelo abandonado urbanizable</string>
<string name="poi_brownfield">Terreno abandonado urbanizable</string>
<string name="poi_greenfield">Suelo urbanizable</string>
<string name="poi_wholesale">Venta mayorista</string>
<string name="poi_trade_building_supplies">Materiales de construcción</string>
<string name="poi_trade_plumbing">Suministros de plomería</string>
<string name="poi_trade_plumbing">Herramientas de fontanería/plomería</string>
<string name="poi_trade_wood">Venta de madera</string>
<string name="poi_trade_agricultural_supplies">Suministros agrícolas</string>
<string name="poi_trade_tile">Venta de azulejos</string>
<string name="poi_trade_agricultural_supplies">Insumos agrícolas</string>
<string name="poi_trade_tile">Azulejos</string>
<string name="poi_population">Población</string>
<string name="poi_parking_underground">Subterráneo</string>
<string name="poi_parking_multi_storey">Varios pisos</string>
<string name="poi_bicycle_parking_stands">Anclajes</string>
<string name="poi_bicycle_parking_stands">Soportes</string>
<string name="poi_leaf_type_broadleaved">Hoja ancha</string>
<string name="poi_leaf_type_needleleaved">Hoja acicular</string>
<string name="poi_leaf_type_mixed">Mixto</string>
@ -1183,14 +1183,14 @@
<string name="poi_trees_oil">Aceite de palma</string>
<string name="poi_trees_orange">Naranjo</string>
<string name="poi_trees_almond">Almendro</string>
<string name="poi_trees_banana">Banano</string>
<string name="poi_trees_banana">Banano/Plátano</string>
<string name="poi_trees_hazel">Avellano</string>
<string name="poi_trees_coconut">Cocotero</string>
<string name="poi_trees_coconut">Cocotéro</string>
<string name="poi_trees_persimmon">Caqui</string>
<string name="poi_trees_cherry">Cerezo</string>
<string name="poi_trees_walnut">Nogal</string>
<string name="poi_trees_plum">Ciruelo</string>
<string name="poi_trees_peach">Duraznero</string>
<string name="poi_trees_peach">Melocotón</string>
<string name="poi_trees_tea"></string>
<string name="poi_trees_coca">Coca</string>
<string name="poi_trees_kiwi">Kiwi</string>
@ -1207,7 +1207,7 @@
<string name="poi_nudism_permissive">Nudismo permisivo</string>
<string name="poi_bicycle_parking_wall_loops">Anclajes de pared</string>
<string name="poi_bicycle_parking_rack">Bastidor</string>
<string name="poi_bicycle_parking_rack">Bastidores</string>
<string name="poi_bicycle_parking_building">Edificio especial</string>
<string name="poi_bicycle_parking_shed">Caseta</string>
<string name="poi_bicycle_parking_bollard">Bolardo</string>
@ -1258,9 +1258,9 @@
<string name="poi_pump_powered">Bomba automática</string>
<string name="poi_pump_no">Sin bomba</string>
<string name="poi_water_characteristic_mineral">Característica de agua: Mineralizada</string>
<string name="poi_water_characteristic_mud">Característica de agua: Lodosa</string>
<string name="poi_water_characteristic_sulfuric">Característica de agua: Sulfúrica</string>
<string name="poi_water_characteristic_mineral">Característica del agua: Mineralizada</string>
<string name="poi_water_characteristic_mud">Característica del agua: Lodosa</string>
<string name="poi_water_characteristic_sulfuric">Característica del agua: Sulfúrica</string>
<string name="poi_water_point">Toma de agua</string>
@ -1299,16 +1299,16 @@
<string name="poi_fireplace_no">Sin chimenea</string>
<string name="poi_covered_yes">Cubierto</string>
<string name="poi_covered_no">Sin cobertura</string>
<string name="poi_covered_no">No cubierto</string>
<string name="poi_smoking_no">No fumar</string>
<string name="poi_smoking_outside">Permitido fumar afuera</string>
<string name="poi_smoking_outside">Sólo permitido fumar afuera</string>
<string name="poi_smoking_yes">Permitido fumar</string>
<string name="poi_smoking_separated">Permitido fumar en habitación separada</string>
<string name="poi_smoking_isolated">Permitido fumar en habitación aislada</string>
<string name="poi_smoking_separated">Permitido fumar en sala separada</string>
<string name="poi_smoking_isolated">Permitido fumar en sala aislada</string>
<string name="poi_smoking_dedicated">Solo fumadores</string>
<string name="poi_toll_no">Sin Peaje</string>
<string name="poi_toll_no">Sin peaje</string>
<string name="poi_toll_yes">Peaje</string>
<string name="poi_tactile_paving_yes">Con pavimento táctil</string>
<string name="poi_tactile_paving_no">Sin pavimento táctil</string>
@ -1316,9 +1316,9 @@
<string name="poi_traffic_signals_sound_no">Sin sonido</string>
<string name="poi_traffic_signals_sound_walk">Sonoro cuando se permite caminar</string>
<string name="poi_information_guidepost">Poste guía</string>
<string name="poi_information_guidepost">Poste indicador</string>
<string name="poi_toll_hgv_yes">Peaje para camiones</string>
<string name="poi_information_trail_blaze">Marcador en el camino</string>
<string name="poi_information_trail_blaze">Marca de camino</string>
<string name="poi_doors">Puertas</string>
<string name="poi_bicycle_parking_anchors">Anclajes</string>
<string name="poi_rescue_station">Estación de rescate</string>
@ -1396,19 +1396,19 @@
<string name="poi_aerialway_bubble_yes">Burbuja</string>
<string name="poi_aerialway_bubble_no">Sin burbuja</string>
<string name="poi_aerialway_heating_yes">Calefaccionado</string>
<string name="poi_aerialway_heating_no">Sin colefacción</string>
<string name="poi_aerialway_bicycle_yes">Bicicletas permitidas</string>
<string name="poi_aerialway_bicycle_no">Bicicletas no permitidas</string>
<string name="poi_aerialway_bicycle_summer">Bicicletas permitidas sólo en verano</string>
<string name="poi_aerialway_heating_no">Sin calefacción</string>
<string name="poi_aerialway_bicycle_yes">Bicicletas: permitido</string>
<string name="poi_aerialway_bicycle_no">Bicicletas: no permitido</string>
<string name="poi_aerialway_bicycle_summer">Bicicletas: permitido sólo en verano</string>
<string name="poi_aerialway_access_entry">Sólo entrada</string>
<string name="poi_aerialway_access_exit">Sólo salida</string>
<string name="poi_aerialway_access_both">Entrada y salida</string>
<string name="poi_aerialway_summer_access_entry">Sólo acceso de entrada en verano</string>
<string name="poi_aerialway_summer_access_exit">Sólo acceso de salida en verano</string>
<string name="poi_aerialway_summer_access_both">Acesso de entrada y salida en verano</string>
<string name="poi_aerialway_summer_access_both">Acceso de entrada y salida en verano</string>
<string name="poi_wheelchair_no">No adaptado para silla de ruedas</string>
<string name="poi_wheelchair_limited">Adaptación para silla de ruedas limitada</string>
<string name="poi_wheelchair_limited">Adaptación limitada para silla de ruedas</string>
<string name="poi_stars_1">Estrellas: 1 (Turista)</string>
<string name="poi_stars_1s">Estrellas: 1S (Turista Superior)</string>
<string name="poi_stars_2">Estrellas: 2 (Estándar)</string>
@ -1423,8 +1423,8 @@
<string name="poi_stars_7">Estrellas: 7</string>
<string name="poi_rooms">Habitaciones</string>
<string name="poi_garden_style_rosarium">Jardín rosedal</string>
<string name="poi_love_hotel">Telo</string>
<string name="poi_garden_style_rosarium">Jardín rosaleda</string>
<string name="poi_love_hotel">Albergue transitorio</string>
<string name="poi_internet_access_yes">Con acceso a Internet</string>
<string name="poi_internet_access_no">Sin acceso a Internet</string>
@ -1441,8 +1441,8 @@
<string name="poi_payment_notes_no">No acepta billetes</string>
<string name="poi_payment_electronic_purses_yes">Acepta monederos electrónicos</string>
<string name="poi_payment_electronic_purses_no">No acepta monederos electrónicos</string>
<string name="poi_payment_cash_yes">Acepta dinero</string>
<string name="poi_payment_cash_no">No acepta dinero</string>
<string name="poi_payment_cash_yes">Acepta efectivo</string>
<string name="poi_payment_cash_no">No acepta efectivo</string>
<string name="poi_payment_debit_cards_yes">Acepta tarjetas de débito</string>
<string name="poi_payment_debit_cards_no">No acepta tarjetas de débito</string>
<string name="poi_payment_bitcoin_yes">Acepta Bitcoin</string>
@ -1665,7 +1665,7 @@
<string name="poi_vending_cigarettes">Cigarrillos</string>
<string name="poi_vending_drinks">Bebidas</string>
<string name="poi_vending_condoms">Condones</string>
<string name="poi_vending_condoms">Preservativos</string>
<string name="poi_vending_stamps">Sellos</string>
<string name="poi_vending_food">Comida</string>
<string name="poi_vending_drinks_food">Bebidas y comidas</string>
@ -1673,7 +1673,7 @@
<string name="poi_vending_bread">Pan</string>
<string name="poi_vending_chewing_gums">Chicles</string>
<string name="poi_vending_coffee">Café</string>
<string name="poi_vending_animal_food">Comida animal</string>
<string name="poi_vending_animal_food">Comida para animales</string>
<string name="poi_vending_drinks_sweets">Bebidas y dulces</string>
<string name="poi_vending_dvd">DVD</string>
<string name="poi_vending_candles">Velas</string>

View file

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><resources>
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="layer_map_appearance">Configurar pantalla</string>
<string name="show_lanes">Mostrar carriles</string>
@ -17,8 +18,8 @@
<string name="use_fluorescent_overlays">Utilizar superpuestos fluorescentes</string>
<string name="use_fluorescent_overlays_descr">Usa colores fluorescentes para mostrar trazas y rutas</string>
<string name="offline_edition">Edición fuera de línea</string>
<string name="offline_edition_descr">Utilizar siempre edición fuera de línea</string>
<string name="offline_edition">Edición sin conexión</string>
<string name="offline_edition_descr">Utilizar siempre edición sin conexión</string>
<string name="update_poi_does_not_change_indexes">Los cambios a PDIs (puntos de interés) dentro de la aplicación no afectan a los archivos de mapas descargados, los cambios se guardan en un archivo local.</string>
<string name="local_openstreetmap_uploading">Enviando …</string>
@ -39,7 +40,7 @@
<string name="gpx_monitoring_disabled_warn">Registra trazas utilizando el control GPX o mediante la opción \'Grabar viaje\'.</string>
<string name="show_current_gpx_title">Mostrar traza actual</string>
<string name="free_version_message">Esta versión libre de OsmAnd está limitada a %1$s descargas y no soporta artículos wikipedia fuera de línea.</string>
<string name="free_version_message">Esta versión libre de OsmAnd está limitada a %1$s descargas y no soporta artículos de Wikipedia sin conexión.</string>
<string name="free_version_title">Versión libre</string>
<string name="poi_context_menu_showdescription">Mostrar descripción</string>
<string name="index_name_north_america">Norteamérica</string>
@ -55,9 +56,9 @@
<string name="index_name_oceania">Australia y Oceanía</string>
<string name="index_name_other">Mapas del mundo y temáticos</string>
<string name="index_name_wiki">Wikipedia mundial</string>
<string name="index_name_voice">Mensajes de voz (grabado, funciones limitadas)</string>
<string name="index_name_tts_voice">Mensajes de voz (sintetizado TTS, preferido)</string>
<string name="amenity_type_osmwiki">Wikipedia (fuera de línea)</string>
<string name="index_name_voice">Avisos de voz (grabado, funciones limitadas)</string>
<string name="index_name_tts_voice">Avisos de voz (sintetizado TTS, preferido)</string>
<string name="amenity_type_osmwiki">Wikipedia (sin conexión)</string>
<string name="amenity_type_user_defined">Definido por el usuario</string>
<string name="fav_export_confirmation">Ya existe un archivo anterior con favoritos exportados. ¿Quiere sustituirlo?</string>
<string name="profile_settings">Ajustes específicos por perfil</string>
@ -69,7 +70,7 @@
<string name="routing_settings_descr">Opciones específicas para la navegación</string>
<string name="global_settings">Ajustes globales</string>
<string name="index_settings">Gestionar archivos de mapas</string>
<string name="index_settings_descr">Descarga y gestiona mapas fuera de línea almacenados en su dispositivo</string>
<string name="index_settings_descr">Descarga y gestiona mapas sin conexión, almacenados en su dispositivo</string>
<string name="general_settings">General</string>
<string name="general_settings_descr">Configura la presentación y otros ajustes comunes para la aplicación</string>
<string name="global_app_settings">Ajustes globales de la aplicación</string>
@ -81,7 +82,7 @@
<string name="osmand_service_descr">OsmAnd se ejecuta en segundo plano mientras la pantalla está apagada</string>
<string name="switch_to_raster_map_to_see">No hay ningún mapa vectorial fuera de línea presente para esta ubicación. Puede descargar uno en Ajustes (Gestionar mapas), o cambiar al mapa en línea (para esto active el complemento mapas en línea).</string>
<string name="switch_to_raster_map_to_see">No hay ningún mapa vectorial presente descargado para esta ubicación. Puede descargar uno en Ajustes (Gestionar mapas), o cambiar al mapa en línea (para esto active el complemento mapas en línea).</string>
@ -161,7 +162,7 @@
<string name="favourites_edit_dialog_category">Categoría</string>
<string name="shared_string_no_thanks">No, gracias</string>
<string name="basemap_missing">El mapa mundial base (cubriendo todo el mundo a niveles de acercamiento pequeños) no está disponible. Por favor, considere descargar World_basemap_x.obf para tener un entorno completo.</string>
<string name="vector_data_missing">No hay datos (\'fuera de línea\') en la tarjeta SD. Considere descargarlos para utilizar mapas fuera de línea.</string>
<string name="vector_data_missing">No hay datos (\'descargados\') en la tarjeta SD. Considere descargarlos para utilizar los mapas sin conexión.</string>
<string name="local_index_gpx_info_show">\n\nMantenga pulsado para opciones</string>
@ -184,7 +185,7 @@
<string name="local_index_transport_data">Datos de transporte público</string>
<string name="local_index_map_data">Datos de mapa</string>
<string name="local_indexes_cat_backup">Desactivado</string>
<string name="local_indexes_cat_tts">Avisos de voz (sintetizado)</string>
<string name="local_indexes_cat_tts">Avisos de voz (sintetizado TTS)</string>
<string name="local_indexes_cat_voice">Avisos de voz (grabado)</string>
<string name="local_indexes_cat_tile">Mapas de teselas en línea y en caché</string>
@ -209,10 +210,10 @@
<string name="gpx_option_reverse_route">Invertir dirección GPX</string>
<string name="gpx_option_destination_point">Utilizar destino actual</string>
<string name="gpx_option_from_start_point">Pasar a lo largo de la traza completa</string>
<string name="switch_to_vector_map_to_see">Mapa vectorial fuera de línea presente para esta ubicación.
\n\nPara utilizar active en \'Menú\' → \'Configurar mapa\' → \'Fuente del mapa…\' → \'Mapas vectoriales fuera de línea\'.</string>
<string name="choose_audio_stream">Salida de indicaciones de voz</string>
<string name="choose_audio_stream_descr">Elige el canal para reproducir indicaciones de voz (dependiente del sistema)</string>
<string name="switch_to_vector_map_to_see">Mapa vectorial sin conexión presente para esta ubicación.
\n\nPara utilizarlo, activarlo en \'Menú\' → \'Configurar mapa\' → \'Fuente del mapa…\' → \'Mapas vectoriales sin conexión\'.</string>
<string name="choose_audio_stream">Salida de los avisos de voz</string>
<string name="choose_audio_stream_descr">Elige el canal para reproducir los avisos de voz (dependiente del sistema)</string>
<string name="voice_stream_voice_call">Audio de llamada de voz</string>
<string name="voice_stream_notification">Notificación auditiva</string>
<string name="voice_stream_music">Audio de Media/música</string>
@ -242,7 +243,7 @@
<string name="create_poi_link_to_osm_doc"><u>OSM en línea</u> clasificación de mapa con imágenes</string>
<string name="error_doing_search">Se produjo un error en la búsqueda fuera de línea</string>
<string name="error_doing_search">Se produjo un error en la búsqueda sin conexión</string>
<string name="search_offline_geo_error">No se pudo analizar el geo intento \'%s\'</string>
<string name="search_osm_offline">Buscar ubicación geográfica</string>
<string name="system_locale">Sistema</string>
@ -320,8 +321,8 @@
<string name="version_index_is_big_for_memory">La versión \'\'{0}\'\' de índices no cabe en memoria</string>
<string name="version_index_is_not_supported">No se soporta la versión \'\'{0}\'\' de índices</string>
<string name="use_osmand_routing_service">Navegación OsmAnd &gt;20km</string>
<string name="use_osmand_routing_service_descr">El uso de la navegación fuera de línea OsmAnd se aplica solo a rutas &gt; 20 km (experimental)</string>
<string name="osmand_routing_experimental">La navegación fuera de línea OsmAnd es una característica experimental y no funciona para distancias de más de unos 20 km.\n\nEl servicio de navegación se cambia temporalmente al servicio con conexión CloudMade.</string>
<string name="use_osmand_routing_service_descr">El uso de la navegación sin conexión de OsmAnd, se aplica solo a rutas mayores a 20 km (experimental)</string>
<string name="osmand_routing_experimental">La navegación sin conexión de OsmAnd, es una característica experimental y no funciona para distancias mayores a 20 km.\n\nEl servicio de navegación, se cambió temporalmente al servicio en línea CloudMade.</string>
<string name="specified_dir_doesnt_exist">No se puede encontrar la carpeta especificada.</string>
<string name="application_dir">Carpeta de almacenamiento de datos</string>
@ -334,8 +335,8 @@
<string name="select_build_to_install">Seleccione una de las compilaciones OsmAnd a instalar</string>
<string name="contribution_activity">Instalar compilación</string>
<string name="gps_status_app_not_found">La aplicación GPS status no está instalada. ¿Buscar en la tienda de aplicaciones?</string>
<string name="voice_is_not_available_msg">Las indicaciones de voz no están disponibles, vaya a \'Ajustes\' → \'General\' → \'Indicaciones de voz\' y elija o descargue un paquete de mensajes de voz.</string>
<string name="voice_is_not_available_title">No se han seleccionado indicaciones de voz</string>
<string name="voice_is_not_available_msg">Los avisos de voz, no están disponibles. Vaya a \'Ajustes\' → \'General\' → \'Avisos de voz\' y elija o descargue un paquete de avisos de voz.</string>
<string name="voice_is_not_available_title">No se han seleccionado avisos de voz</string>
<string name="daynight_mode_day">Día</string>
<string name="daynight_mode_night">Noche</string>
<string name="daynight_mode_auto">Alba/Ocaso</string>
@ -384,7 +385,7 @@
<string name="gpx_files_not_found">No se encontró archivos GPX en la carpeta de trazas</string>
<string name="layer_gpx_layer">Trazas GPX…</string>
<string name="error_reading_gpx">Error leyendo datos GPX</string>
<string name="vector_data">Mapas vectoriales fuera de línea</string>
<string name="vector_data">Mapas vectoriales sin conexión</string>
<string name="transport_context_menu">Buscar transporte en parada</string>
<string name="osb_bug_name">Nota</string>
@ -404,7 +405,7 @@
<string name="error_occurred_loading_gpx">Se produjo un error al cargar el GPX</string>
<string name="send_report">Enviar informe</string>
<string name="none_region_found">No hay datos fuera de línea para las regiones en la tarjeta SD. Descargue las regiones desde Internet.</string>
<string name="none_region_found">No hay datos de regiones descargados en la tarjeta SD. Descargue las regiones desde Internet.</string>
<string name="poi_namefinder_query_empty">Introduzca la consulta para buscar el PDI</string>
<string name="any_poi">Cualquiera</string>
<string name="layer_transport_route">Ruta de transporte</string>
@ -442,8 +443,8 @@
<string name="search_poi_filter">Filtro</string>
<string name="menu_mute_off">Sonido on</string>
<string name="menu_mute_on">Sonido off</string>
<string name="voice_provider_descr">Selecciona indicaciones de voz para la navegación</string>
<string name="voice_provider">Indicaciones de voz</string>
<string name="voice_provider_descr">Selecciona el aviso de voz para la navegación</string>
<string name="voice_provider">Avisos de voz</string>
<string name="voice_data_initializing">Inicializando datos de voz…</string>
<string name="voice_data_not_supported">Versión no soportada de datos de voz</string>
<string name="voice_data_corrupted">El dato de voz especificado está corrupto</string>
@ -462,7 +463,7 @@
<string name="route_head">Partida</string>
<string name="first_time_continue">Después</string>
<string name="first_time_download">Descargar regiones</string>
<string name="first_time_msg">Gracias por utilizar OsmAnd. Para muchas características de esta aplicación necesita algunos datos regionales fuera de línea que puede descargar a través de \'Ajustes\' → \'Gestionar mapas\'. Después será capaz de ver los mapas, ubicar direcciones, buscar PDIs (puntos de interés) y encontrar el transporte público.</string>
<string name="first_time_msg">Gracias por utilizar OsmAnd. Para muchas características de esta aplicación, necesita algunos datos regionales que puede descargar a través de \'Ajustes\' → \'Gestionar mapas\'. Después será capaz de ver los mapas, ubicar direcciones, buscar PDIs (puntos de interés) y encontrar el transporte público.</string>
<string name="search_poi_location">Buscando señal…</string>
<string name="search_near_map">Buscar cerca del centro del mapa</string>
<string name="search_nearby">Buscar cercanos</string>
@ -492,7 +493,7 @@
<string name="update_poi_success">Los datos del PDI fueron correctamente actualizados (fueron cargados {0})</string>
<string name="update_poi_error_local">Error al actualizar la lista de PDIs locales</string>
<string name="update_poi_error_loading">Error durante la descarga de datos del servidor</string>
<string name="update_poi_no_offline_poi_index">No hay datos del PDI fuera de línea para esta área</string>
<string name="update_poi_no_offline_poi_index">No hay datos descargados del PDI, para esta área</string>
<string name="update_poi_is_not_available_for_zoom">No está disponible la actualización de PDIs para niveles de acercamiento pequeños</string>
<string name="context_menu_item_update_poi">Actualizar PDI</string>
<string name="context_menu_item_update_map_confirm">¿Actualizar datos locales vía Internet?</string>
@ -510,7 +511,7 @@
<string name="searching_address">Buscando dirección…</string>
<string name="search_osm_nominatim">Buscar en línea utilizando OSM Nominatim</string>
<string name="hint_search_online">Búsqueda en línea: Número de casa, calle, ciudad</string>
<string name="search_offline_address">Búsqueda fuera de línea</string>
<string name="search_offline_address">Búsqueda sin conexión</string>
<string name="search_online_address">Búsqueda en línea</string>
<string name="max_level_download_tile">Máx. acercamiento con conexión</string>
<string name="max_level_download_tile_descr">Elige el nivel de acercamiento máximo para descargar teselas de mapas con conexión</string>
@ -519,7 +520,7 @@
<string name="router_service">Servicio de navegación</string>
<string name="sd_dir_not_accessible">¡No se puede acceder a la carpeta de almacenamiento en la tarjeta SD!</string>
<string name="download_question">¿Descargar {0} - {1} ?</string>
<string name="download_question_exist">Ya existen datos fuera de línea ({1}) para {0}. ¿Quiere actualizarlos ({2})?</string>
<string name="download_question_exist">Ya existen datos descargados ({1}) para {0}. ¿Quiere actualizarlos ({2})?</string>
<string name="address">Dirección</string>
<string name="shared_string_download_successful">Descarga correcta</string>
@ -714,7 +715,7 @@
<string name="edit_filter_delete_message">Se borró el filtro {0}</string>
<string name="edit_filter_create_message">Se creó el filtro {0}</string>
<string name="offline_navigation_not_available">La navegación fuera de línea OSMAnd no está disponible temporalmente.</string>
<string name="offline_navigation_not_available">La navegación desconectada de OsmAnd, no está disponible temporalmente.</string>
<string name="left_side_navigation">Conducción por la izquierda</string>
<string name="left_side_navigation_descr">Seleccione en países con tráfico por la izquierda</string>
@ -730,14 +731,14 @@
<string name="osmand_rastermaps_plugin_description">"Con este complemento puede acceder a muchos tipos de mapas en línea (llamados de teselas o ráster), desde teselas de OpenStreetMap predefinidas (como Mapnik) a imágenes de satélite y capas de propósito especial como mapas del tiempo, mapas del clima, mapas geológicos, capas de sombreado, etc.
\n\nCualquiera de estos mapas se puede utilizado como el mapa (base) principal que se mostrará en la pantalla del mapa de OsmAnd, o como una superposición o subyacente de otro mapa base (como los mapas normales de OsmAnd en línea). Para hacer cualquier mapa subyacente más visible, ciertos elementos de los mapas vectoriales OsmAnd se pueden ocultar fácilmente a través del menú \'Configurar mapa\' cuando desee.
\n\nLas teselas de mapas se pueden obtener directamente a través de fuentes en línea, o se pueden preparar para su uso fuera de línea (y copiar manualmente en la carpeta de datos OsmAnd) como una base de datos sqlite que puede ser producida por una variedad de herramientas de preparación de mapas de terceros. "</string>
\n\nCualquiera de estos mapas se puede utilizar como el mapa (base) principal, que se mostrará en la pantalla del mapa de OsmAnd, o como una superposición o subyacente de otro mapa base (como los mapas estándares en línea de OsmAnd). Para hacer cualquier mapa subyacente más visible, ciertos elementos de los mapas vectoriales de OsmAnd, se pueden ocultar fácilmente a través del menú \'Configurar mapa\' cuando desee.
\n\nLas teselas de mapas, se pueden obtener directamente a través de fuentes en línea o pueden prepararse para su uso sin conexión (y copiarse manualmente en la carpeta de datos de OsmAnd) como una base de datos SQLite, que puede ser producida por una variedad de herramientas de preparación de mapas de terceros. "</string>
<string name="osmand_background_plugin_description">Muestra los ajustes para habilitar el seguimiento y la navegación en segundo plano (pantalla apagada) activando periódicamente el dispositivo GPS.</string>
<string name="osmand_accessibility_description">Este complemento habilita las características de accesibilidad del dispositivo directamente en OsmAnd. Facilita, por ejemplo, el ajuste de la velocidad de la voz para voces TTS, la configuración de navegación de pantalla con el panel direccional, utilizando la bola de desplazamiento para el control de acercamiento, o el uso de comentarios de conversión de texto a voz, o para el anuncio automático de su posición.</string>
<string name="osmand_development_plugin_description">Este complemento muestra los ajustes de características de desarrollo y depuración para probar la simulación de rutas, el rendimiento del renderizado en pantalla, o mensajes de voz.
<string name="osmand_development_plugin_description">Este complemento muestra los ajustes de características de desarrollo y depuración para probar la simulación de rutas, el rendimiento del renderizado en pantalla, o los avisos de voz.
\n\nEstos ajustes están destinados para los desarrolladores y no son necesarios para el usuario general.</string>
<string name="plugins_screen">Complementos</string>
@ -752,7 +753,7 @@
<string name="debugging_and_development">Desarrollo de OsmAnd</string>
<string name="native_rendering">Dibujo nativo</string>
<string name="test_voice_prompts">Prueba mensajes de voz</string>
<string name="test_voice_prompts">Probar avisos de voz</string>
<string name="send_files_to_osm">¿Enviar archivos GPX a OSM?</string>
<string name="gpx_visibility_txt">Visibilidad</string>
@ -935,14 +936,14 @@
<string name="osmand_short_description_80_chars">Visor y navegador de mapas móvil global para mapas OSM fuera y en línea</string>
<string name="osmand_long_description_1000_chars">" OsmAnd (OSM Automated Navigation Directions, Guía de Navegación Automatizada)
\n\nOsmAnd es una aplicación de navegación de código abierto con acceso a una amplia variedad de datos OpenStreetMap (OSM) globales. Todos los datos del mapa (mapas vectoriales y teselas) pueden ser almacenados en la memoria del teléfono para su uso fuera de línea. OsmAnd también ofrece funcionalidad de navegación fuera y en línea incluyendo indicaciones giro-a-giro mediante voz.
\n\nOsmAnd es una aplicación de navegación de código abierto con acceso a una amplia variedad de datos OpenStreetMap (OSM) globales. Todos los datos del mapa (vectoriales y teselas), pueden ser almacenados en la memoria del teléfono para su uso sin conexión. OsmAnd también ofrece funcionalidad de navegación con y sin conexión, incluyendo indicaciones giro-a-giro mediante voz.
\n\nAlgunas de las características fundamentales:
\n\n\t- Completa funcionalidad fuera de línea (almacena los mapas vectoriales o teselas descargados en el almacenamiento del dispositivo)
\n\n\t- Completa funcionalidad sin conexión (almacena los mapas vectoriales o teselas descargados en el almacenamiento del dispositivo)
\n\t- Mapas vectoriales compactos disponibles de todo el planeta
\n\t- Descarga de mapas por país o región directamente desde la aplicación
\n\t- Posibilidad de superponer varias capas de mapa, como GPX o rutas de navegación, puntos de interés (PDI), favoritos, curvas de nivel, paradas de transporte público, mapas adicionales con transparencia personalizable
\n\t- Búsqueda fuera de línea de direcciones y lugares (PDIs)
\n\t- Navegación fuera de línea para distancias cortas (experimental)
\n\t- Búsqueda sin conexión de direcciones y lugares (PDIs)
\n\t- Navegación sin conexión para distancias cortas (experimental)
\n\t- Modo automóvil, bicicleta, y peatón con:
\n\t\t- opción de cambio automático de vista diurna/nocturna
\n\t\t- opción de acercamiento dependiente de la velocidad
@ -1027,8 +1028,8 @@
<string name="download_srtm_maps">Curvas de nivel</string>
<string name="audionotes_plugin_description">Este complemento de notas de audio/vídeo proporciona la funcionalidad para tomar notas de audio/fotografía/vídeo durante un viaje, utilizando un botón en la pantalla del mapa, o directamente en el menú contextual para cualquier posición en el mapa.</string>
<string name="audionotes_plugin_name">Notas de audio/vídeo</string>
<string name="audionotes_plugin_description">Este complemento, proporciona la funcionalidad para tomar notas de audio/fotografía/vídeo durante un viaje, utilizando un botón en la pantalla del mapa, o directamente en el menú contextual para cualquier posición en el mapa.</string>
<string name="audionotes_plugin_name">Notas multimedia</string>
<string name="osmand_srtm_short_description_80_chars">Complemento OsmAnd para curvas de nivel en línea</string>
<string name="osmand_srtm_long_description_1000_chars">"Este complemento proporciona una capa superpuesta de curvas de nivel y una capa (de relieve) sombreada que se pueden visualizar sobre los mapas descargados de OsmAnd. Esta funcionalidad será muy apreciada por atletas, caminantes, excursionistas, y cualquiera interesado en la estructura de relieve de un paisaje.
\n\nLos datos globales (entre 70 grados norte y 70 grados sur) se basan en mediciones de SRTM (Shuttle Radar Topography Mission, o en español Misión de Topografía por Radar desde Transbordador) y ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer, o en español Radiómetro Espacial Avanzado de Emisión Térmica y Reflexión), un instrumento de captura de imágenes a bordo de Terra, el satélite insignia del Sistema de Observación de la Tierra de la NASA. ASTER es un esfuerzo cooperativo entre la NASA, el Ministerio de Economía, Comercio e Industria de Japón (METI) y Sistemas Espaciales de Japón (J-spacesystems). "</string>
@ -1052,7 +1053,7 @@
<string name="recording_default_name">Grabación</string>
<string name="shared_string_control_stop">Parar</string>
<string name="shared_string_control_start">Iniciar</string>
<string name="map_widget_av_notes">Notas de audio</string>
<string name="map_widget_av_notes">Notas multimedia</string>
<string name="av_def_action_video">Grabar vídeo</string>
<string name="av_def_action_audio">Grabar audio</string>
<string name="av_widget_action">Acción del control predeterminado</string>
@ -1070,7 +1071,7 @@
<string name="recording_description">Grabado %1$s %3$s %2$s</string>
<string name="srtm_paid_version_msg">Considere la compra del complemento curvas de nivel en la tienda de aplicaciones para apoyar desarrollos adicionales.</string>
<string name="srtm_paid_version_title">Complemento curvas de nivel</string>
<string name="dropbox_plugin_description">El complemento Dropbox permite sincronizar trazas y notas de audio/vídeo con su cuenta de dropbox.</string>
<string name="dropbox_plugin_description">El complemento Dropbox, permite sincronizar trazas y notas multimedia con su cuenta de Dropbox.</string>
<string name="dropbox_plugin_name">Complemento Dropbox</string>
<string name="intermediate_points_change_order">Cambiar orden</string>
@ -1082,7 +1083,7 @@
<string name="clear_dest_confirm">¿Seguro que quiere borrar su punto de destino (y puntos de ruta)?</string>
<string name="precise_routing_mode_descr">Habilitar para calcular 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="local_indexes_cat_av">Datos de Audio/Vídeo</string>
<string name="local_indexes_cat_av">Datos multimedia</string>
<string name="support_new_features_descr">Dona para ver nuevas características implementadas en la aplicación</string>
@ -1101,32 +1102,32 @@
<string name="item_unchecked">desmarcado</string>
<string name="shared_string_map">Mapa</string>
<string name="access_arrival_time">Hora de llegada</string>
<string name="osmand_extended_description_4000_chars">" OsmAnd (OSM Automated Navigation Directions, o traducido al español, Guía de navegación automatizada OSM) es un mapa y una aplicación de navegación con acceso a datos de todo el mundo, de alta calidad y gratuitos de OpenStreetMap (OSM). Todos los datos de los mapas se pueden almacenar en la tarjeta de memoria del dispositivo para su uso fuera de línea. A través del GPS de su dispositivo, OsmAnd ofrece indicaciones de navegación, visuales y de voz, para automóvil, bicicleta y peatonal. Todas las funciones principales funcionan tanto en línea como fuera de línea (no necesita Internet).
<string name="osmand_extended_description_4000_chars">" OsmAnd (OSM Automated Navigation Directions, o traducido al español, Guía de navegación automatizada OSM) es un mapa y una aplicación de navegación con acceso a datos de todo el mundo, de alta calidad y gratuitos de OpenStreetMap (OSM). Todos los datos de los mapas se pueden almacenar en la tarjeta de memoria del dispositivo para su uso sin conexión. A través del GPS de su dispositivo, OsmAnd ofrece avisos de navegación, visuales y de voz, para el automóvil, bicicleta y el peatón. Todas las funciones principales funcionan tanto conectado como desconectado (no necesita Internet).
\n\nOsmAnd+ es la versión de pago de la aplicación. Comprándola da soporte al proyecto, financia el desarrollo de nueva características y obtiene las últimas actualizaciones. Puede probar la aplicación antes de comprarla instalando la versión libre llamada OsmAnd.
\n\n Algunas de las características principales:
\n\n* Navegación:
\n\n- Funciona en línea (rápido) o fuera de línea (sin cargos de roaming cuando está en el extranjero)
\n- Indicaciones por voz giro-a-giro (grabadas y voces sintetizadas)
\n\n- Funciona en línea (rápido) o sin conexión (sin cargos de roaming cuando está en el extranjero)
\n- Avisos por voz giro-a-giro (grabadas y voces sintetizadas)
\n- Indicaciones de carril opcional, mostrado de nombre de las calles y tiempo estimado de llegada
\n- Soporta puntos intermedios en su itinerario (ruta)
\n- Recalcula automáticamente la ruta cada vez que se desvía
\n- Búsqueda de lugares por dirección, por tipo (por ejemplo: restaurante, hotel, gasolinera, museo), o mediante coordenadas geográficas
\n- Busca lugares por dirección, por tipo (p.e: restaurante, hotel, gasolinera, museo), o mediante coordenadas geográficas
\n\n* Visualización:
\n\n- Muestra su posición y orientación en el mapa
\n- Opcionalmente orienta el mapa según la brújula o el sentido del movimiento
\n- Orienta el mapa según la brújula o el sentido del movimiento
\n- Guarda sus lugares más importantes como favoritos
\n- Muestra PDIs (puntos de interés) a su alrededor
\n- Puede mostrar mapas especializados en línea
\n- Puede mostrar imágenes de satélite (de Bing)
\n- Puede mostrar superposiciones diferentes como trazas GPX de navegación/turismo y mapas adicionales con transparencia personalizable
\n- Opcionalmente muestra los nombres de los lugares en inglés, idioma local o transcripción fonética
\n- Muestra los nombres de los lugares en inglés, idioma local o transcripción fonética
\n\nUso de datos de OpenStreetMap y Wikipedia:
\n\n- Información de alta calidad a partir de los mejores proyectos colaborativos del mundo
\n- Mapas globales de OpenStreetMap, disponibles según el país o región
\n- Dispone de mapas globales de OpenStreetMap, según el país o región
\n- Puntos de interés de Wikipedia, ideal para hacer visitas turísticas
\n- Descarga ilimitada gratuita, directamente desde la aplicación
\n- Mapas siempre actualizados (al menos una vez al mes)
\n- Mapas vectoriales compactos fuera de línea
\n- Mapas vectoriales compactos sin conexión
\n- Selección entre mapas completos o sólo la red de carreteras (ejemplo: el mapa completo de Japón es de 700 MB y sólo 200 MB para la red de carreteras)
\n- También admite teselas de mapas en línea o almacenadas localmente\n\nCaracterísticas de seguridad:
\n\n- Conmutación automática de la vista día/noche
@ -1142,7 +1143,7 @@
\n- Muestra curvas de nivel y relieve sombreado (a través de un complemento adicional)
\n\nContribuir directamente a OpenStreetMap:\n\n- Informar de los errores del mapa
\n- Subir rutas GPX a OSM directamente desde la aplicación
\n- Añadir puntos de interés y subirlos directamente a OSM (o posteriormente si está fuera de línea)
\n- Añadir puntos de interés y subirlos directamente a OSM (o posteriormente si está desconectado)
\n- Grabación de viaje opcional también en segundo plano (mientras el dispositivo está en modo reposo)
\n\nOsmAnd es código abierto y se es desarrollado activamente. Todo el mundo puede contribuir a la aplicación informando de fallos, mejorando las traducciones, o codificación nuevas características. El proyecto se encuentra en un estado muy animado con mejoras continuas gracias a todas estas formas de interacción entre usuarios y desarrolladores. El avance del proyecto también necesita de contribuciones financieras para pagar el desarrollo, codificación y pruebas de nuevas funcionalidades. Al comprar OsmAnd+ está ayudando a que la aplicación sea aún más impresionante! También es posible financiar nuevas características específicas, o hacer una donación general a osmand.net.
\n\nCobertura y calidad aproximadas del mapa:
@ -1235,14 +1236,14 @@
<string name="av_camera_focus_continuous">La camera intenta enfocar continuamente</string>
<string name="av_photo_play_sound">Sonido al hacer fotos</string>
<string name="av_photo_play_sound_descr">Elige si reproducir un sonido al hacer fotos</string>
<string name="context_menu_item_directions_from">Cómo llegar desde</string>
<string name="context_menu_item_directions_from">Ir desde aquí</string>
<string name="route_via">Vía:</string>
<string name="route_from">Desde:</string>
<string name="speak_speed_limit">Límites de velocidad</string>
<string name="speak_cameras">Radares</string>
<string name="speak_traffic_warnings">Advertencias de tráfico</string>
<string name="speak_traffic_warnings">Avisos de tráfico</string>
<string name="osb_author_dialog_password">Contraseña OSM (opcional)</string>
@ -1255,7 +1256,7 @@
<string name="clear_intermediate_points">Borrar puntos intermedios</string>
<string name="keep_intermediate_points">Mantener puntos intermedios</string>
<string name="new_directions_point_dialog">Ya tiene puntos intermedios definidos.</string>
<string name="context_menu_item_directions_to">Cómo llegar a</string>
<string name="context_menu_item_directions_to">Llegar hasta aquí</string>
<string name="route_descr_map_location">Mapa: </string>
<string name="route_to">Hacia:</string>
<string name="about_version">Versión:</string>
@ -1289,12 +1290,12 @@
<string name="edit_tilesource_elliptic_tile">Mercator elíptica</string>
<string name="map_widget_fps_info">Info depuración de FPS</string>
<string name="base_world_map">Mapa base mundial</string>
<string name="osmand_plus_extended_description_4000_chars">" OsmAnd (OSM Automated Navigation Directions, o traducido al español, Guía de navegación automatizada OSM) es un mapa y una aplicación de navegación con acceso a datos de todo el mundo, de alta calidad y gratuitos de OpenStreetMap (OSM). Todos los datos de los mapas se pueden almacenar en la tarjeta de memoria del dispositivo para su uso fuera de línea. A través del GPS de su dispositivo, OsmAnd ofrece indicaciones de navegación, visuales y de voz, para automóvil, bicicleta y peatonal. Todas las funciones principales funcionan tanto en línea como fuera de línea (no necesita Internet).
<string name="osmand_plus_extended_description_4000_chars">" OsmAnd (OSM Automated Navigation Directions, o traducido al español, Guía de navegación automatizada OSM) es un mapa y una aplicación de navegación con acceso a datos de todo el mundo, de alta calidad y gratuitos de OpenStreetMap (OSM). Todos los datos de los mapas se pueden almacenar en la tarjeta de memoria del dispositivo para su uso fuera de línea. A través del GPS de su dispositivo, OsmAnd ofrece avisos de navegación, visuales y de voz, para el automóvil, bicicleta y el peatón. Todas las funciones principales funcionan tanto en línea como fuera de línea (no necesita Internet).
\n\nOsmAnd+ es la versión de pago de la aplicación. Comprándola da soporte al proyecto, financia el desarrollo de nueva características y obtiene las últimas actualizaciones. Puede probar la aplicación antes de comprarla instalando la versión libre llamada OsmAnd.
\n\n Algunas de las características principales:
\n\n* Navegación:
\n\n- Funciona en línea (rápido) o fuera de línea (sin cargos de roaming cuando está en el extranjero)
\n- Indicaciones por voz giro-a-giro (grabadas y voces sintetizadas)
\n- Avisos por voz giro-a-giro (grabadas y voces sintetizadas)
\n- Indicaciones de carril opcional, mostrado de nombre de las calles y tiempo estimado de llegada
\n- Soporta puntos intermedios en su itinerario (ruta)
\n- Recalcula automáticamente la ruta cada vez que se desvía
@ -1347,7 +1348,7 @@
\n\nLa lista de países incluidos (¡prácticamente todo el mundo!):
\n\nAfganistán, Albania, Alemania, Andorra, Angola, Anguila, Antigua y Barbuda, Antillas Holandesas, Arabia Saudita, Argelia, Argentina, Armenia, Aruba, Australia, Austria, Azerbaiyán, Bahamas, Bahrein, Bangladesh, Barbados, Bélgica, Belice, Benín, Bermuda, Bielorrusia, Bolivia, Bonaire, Bosnia y Herzegovina, Botswana, Brasil, Brunei, Bulgaria, Burkina Faso, Burundi, Bután, Cabo Verde, Camboya, Camerún, Canadá, Chad, Chile, China, Chipre, Colombia, Comoras, Congo, Corea del Norte, Corea del Sur, Costa de Marfil, Costa Rica, Croacia, Cuba, Curazao, Dinamarca, Djibouti, Dominica, Ecuador, Egipto, El Salvador, El Vaticano, Emiratos Árabes Unidos, Eritrea, Eslovaquia, Eslovenia, España, Estados Unidos de América, Estonia, Etiopía, Fiji, Filipinas, Finlandia, Francia, Gabón, Gambia, Georgia, Georgia del Sur, Ghana, Gibraltar, Granada, Grecia, Groenlandia, Guadalupe, Guam, Guatemala, Guayana Francesa, Guernsey, Guinea, Guinea-Bissau, Guinea Ecuatorial, Guyana, Haití, Honduras, Hong Kong, Hungría, India, Indonesia, Irán, Iraq, Irlanda, Isla de Man, Islandia, Islas Vírgenes Británicas, Israel, Italia, Jamaica, Japón, Jersey, Jordania, Kazajstán, Kenya, Kirguistán, Kiribati, Kuwait, Laos, Lesotho, Letonia, Líbano, Liberia, Libia, Liechtenstein, Lituania, Luxemburgo, Macao, Macedonia, Madagascar, Malasia, Malawi, Maldivas, Malí, Malta, Marruecos, Martinica, Mauricio, Mauritania, Mayotte, México, Micronesia, Moldavia, Mónaco, Mongolia, Montenegro, Montserrat, Mozambique, Myanmar, Namibia, Nauru, Nepal, Nicaragua, Níger, Nigeria, Noruega, Nueva Caledonia, Nueva Zelanda, Omán, Países Bajos, Pakistán, Palau, Panamá, Papúa Nueva Guinea, Paraguay, Perú, Polinesia Francesa, Polonia, Portugal, Puerto Rico, Qatar, Reino Unido, República Centroafricana, República Checa, República Dominicana, Ruanda, Rumanía, Rusia, Sahara Occidental, Saint-Barthelemy, Saint Helena, Saint Kitts y Nevis, Samoa, San Marino, San Martin, San Pedro y Miquelón, Santa Lucía, San Vicente y las Granadinas, Senegal, Serbia, Seychelles, Sierra Leona, Singapur, Siria, Somalia, Sri Lanka, Sudáfrica, Sudán, Sudán del Sur, Suecia, Suiza, Suriname, Swazilandia, Tailandia, Taiwán, Tanzania, Tayikistán, Territorio Palestino, Timor Oriental, Togo, Tokelau, Tonga, Trinidad y Tobago, Túnez, Turkmenistán, Turquía, Tuvalu, Ucrania, Uganda, Uruguay, Uzbekistán, Vanuatu, Venezuela, Vietnam, Wallis y Futuna, Yemen, Zambia, Zimbabwe. "</string>
<string name="map_magnifier">Ampliar el mapa</string>
<string name="route_is_too_long">El cálculo de la ruta de OsmAnd fuera de línea puede tardar mucho tiempo (o a veces no funcionar) para puntos separados a más de 200km. Tal vez quiera añadir puntos de ruta intermedios para un mejor rendimiento.</string>
<string name="route_is_too_long">El cálculo de la ruta de OsmAnd sin conexión, puede tardar mucho tiempo (o a veces no funcionar) para puntos separados a más de 200km. Tal vez quiera añadir puntos de ruta intermedios para un mejor rendimiento.</string>
<string name="auto_zoom_none">Sin acercamiento automático</string>
<string name="shared_string_remember_my_choice">Recordar mi elección</string>
@ -1385,7 +1386,7 @@
<string name="complex_route_calculation_failed">Fallo en el cálculo rápido de la ruta (%s), regresando a cálculo lento.</string>
<string name="disable_complex_routing_descr">Deshabilitar la planificación de ruta de dos fases para la navegación con automóvil</string>
<string name="disable_complex_routing">Deshabilitar navegación compleja</string>
<string name="calculate_osmand_route_gpx">Calcular ruta OsmAnd fuera de línea</string>
<string name="calculate_osmand_route_gpx">Calcular la ruta OsmAnd sin conexión</string>
<string name="routing_attr_prefer_motorway_name">Preferir autopistas</string>
<string name="routing_attr_prefer_motorway_description">Preferir autopistas</string>
@ -1462,7 +1463,7 @@
<string name="index_item_world_seamarks">Náutico mundial</string>
<string name="index_item_world_bitcoin_payments">Pagos bitcoin mundiales</string>
<string name="index_item_world_basemap">Mapa mundial general</string>
<string name="index_item_world_ski">Mapa de esquí mundial</string>
<string name="index_item_world_ski">Mapa mundial de esquí</string>
<string name="lang_hr">Croata</string>
<string name="lang_zh">Chino</string>
<string name="lang_pt_br">Portugués (Brasil)</string>
@ -1788,8 +1789,8 @@
<string name="map_locale">Idioma del mapa</string>
<string name="rendering_attr_transportStops_name">Paradas de transporte</string>
<string name="navigate_point_zone">Zona</string>
<string name="voices">Mensajes de voz</string>
<string name="dash_download_msg_none">¿Quiere descargar los mapas fuera de línea?</string>
<string name="voices">Avisos de voz</string>
<string name="dash_download_msg_none">¿Quiere descargar los mapas sin conexión?</string>
<string name="rendering_attr_roadStyle_name">Estilo de carretera</string>
<string name="rendering_value_default_name">Predefinido</string>
<string name="rendering_value_orange_name">Naranja</string>
@ -1834,10 +1835,10 @@
<string name="edit_group">Editar grupo</string>
<string name="plugin_install_needs_network">Necesita una conexión a Internet para instalar este complemento.</string>
<string name="plugin_ski_name">Mapa vista esquí</string>
<string name="plugin_nautical_name">Mapa vista náutica</string>
<string name="world_ski_missing">Para mostrar mapas de esquí, necesita ser descargado el mapa especial fuera de línea</string>
<string name="nautical_maps_missing">Para mostrar mapas náuticos, necesita ser descargado el mapa especial fuera de línea</string>
<string name="plugin_ski_name">Vista invernal</string>
<string name="plugin_nautical_name">Vista náutica</string>
<string name="world_ski_missing">Para mostrar mapas de esquí, necesita ser descargado el mapa especial sin conexión</string>
<string name="nautical_maps_missing">Para mostrar los mapas náuticos, necesita ser descargado el mapa especial sin conexión</string>
<string name="shared_string_enable">Activar</string>
<string name="shared_string_disable">Desactivar</string>
<string name="get_plugin">Obtener</string>
@ -1855,10 +1856,10 @@
<string name="plugin_nautical_descr">"Este complemento enriquece el mapa y la navegación de OsmAnd al producir también mapas náuticos para el canotaje, vela y otros tipos de deportes acuáticos.
\n\nUn mapa especial complementado para OsmAnd proporciona toda las marcas de navegación náutica y símbolos cartográficos, para el interior así como para la navegación cerca de la costa. La descripción de cada marca de navegación proporciona los datos necesarios para su identificación y su significado (categoría, forma, color, número, referencia, etc.).
\n\nUn mapa especial complementado para OsmAnd que proporciona toda las marcas de navegación náutica y símbolos cartográficos, para el interior, así como para la navegación cerca de la costa. La descripción de cada marca de navegación proporciona los datos necesarios para su identificación y su significado (categoría, forma, color, número, referencia, etc.).
\n\nPara volver a uno de los estilos de mapas convencionales de OsmAnd, simplemente desactive este complemento de nuevo, o cambie el \'Estilo del mapa\' en \'Configurar mapa\' cuando desee. "</string>
<string name="plugin_ski_descr">"Este complemento para OsmAnd pone a su alcance detalles sobre pistas de esquí de descenso, de travesía, rutas de esquí alpino, teleféricos y remontes a nivel mundial. Las rutas y pistas se muestran por código de color en función de su dificultad, y representados con un estilo del mapa especial \'Invierno\' que lo asemeja a un paisaje invernal nevado.
\n\nActivando esta vista cambia el estilo del mapa a \'Invierno y esquí\', mostrando las características del terreno en condiciones invernales. Esta vista puede ser revertida desactivando de nuevo aquí, o cambiando el \'Estilo del mapa\' en \'Configurar mapa\' cuando desee. "</string>
\n\nActivando esta vista cambia el estilo del mapa a \'Invernal\', mostrando las características del terreno en condiciones invernales. Esta vista puede ser revertida desactivando de nuevo aquí, o cambiando el \'Estilo del mapa\' en \'Configurar mapa\' cuando desee. "</string>
<string name="plugin_touringview_descr">"Activando esta vista cambia el estilo del mapa OSMAnd a la \'Vista turística\', que es una vista de alto detalle especial para viajeros y conductores profesionales.
\n\nEsta vista proporciona, en cualquier nivel de acercamiento del mapa, la máxima cantidad de detalles de viaje disponible en los datos del mapa (especialmente carreteras, senderos, caminos y marcas de orientación).
\n\nTambién representa claramente todos los tipos de carreteras sin ambigüedades por códigos de color, que es útil, por ejemplo, cuando se conducen vehículos grandes.\n\nY proporciona opciones especiales de turismo como mostrar las rutas de bicicleta o rutas de montaña alpina.\n\nNo es necesario descargar un mapa especial, la vista es creada a partir de nuestros mapas estándar.
@ -1914,7 +1915,7 @@
<string name="welcome_select_region">Para reflejar correctamente las señales y normas de tráfico, seleccione su región de conducción:</string>
<string name="welcome_header">Bienvenido</string>
<string name="current_route">Ruta actual</string>
<string name="welcome_text">¡OsmAnd proporciona visualización de mapas mundiales y navegación mundial fuera de línea!</string>
<string name="welcome_text">¡OsmAnd proporciona visualización y navegación mundial de mapas descargados!</string>
<string name="confirm_usage_speed_cameras">En muchos países (Alemania, Francia, Italia y otros) el uso de advertencias de radares no está permitido por ley. OsmAnd no asume ninguna responsabilidad si usted viola la ley. Haga clic en si, sólo si es elegible para utilizar esta característica.</string>
<string name="agps_info">Información A-GPS</string>
<string name="shared_string_message">Mensaje</string>
@ -1992,7 +1993,7 @@
<string name="lang_et">Estonio</string>
<string name="lang_ceb">Cebuano</string>
<string name="archive_wikipedia_data">Tienes datos descargados de Wikipedia que son antiguos e incompatibles. ¿Deseas archivarlos?</string>
<string name="download_wikipedia_files">¿Deseas descargar datos adicionales de la Wikipedia (%1$s MB)?</string>
<string name="download_wikipedia_files">¿Deseas descargar datos adicionales de Wikipedia (%1$s MB)?</string>
<string name="lang_bpy">Bishnupriya</string>
<string name="lang_ml">Malayalam</string>
<string name="lang_os">Osetio</string>
@ -2041,7 +2042,7 @@
<string name="shared_string_undo">Deshacer</string>
<string name="shared_string_skip">Omitir</string>
<string name="app_name_osmand">OsmAnd</string>
<string name="offline_maps_and_navigation">Mapas y navegación\nfuera de línea</string>
<string name="offline_maps_and_navigation">Mapas y navegación\nsin conexión</string>
<string name="commit_poi">Enviar PDI</string>
<string name="routing_attr_avoid_shuttle_train_name">Evitar tren de enlace</string>
<string name="routing_attr_avoid_shuttle_train_description">Evite tomar trenes de enlace</string>
@ -2076,7 +2077,7 @@
<string name="unsaved_changes_will_be_lost">Se perderán los cambios no guardados. ¿Continuar?</string>
<string name="simulate_your_location_stop_descr">Parar simulación de posición</string>
<string name="simulate_your_location_descr">Simular utilizando una ruta calculada o una grabación GPX</string>
<string name="downloads_left_template">Quedan %$1s descargas</string>
<string name="downloads_left_template">Quedan %1$s descargas</string>
<string name="default_speed_system_descr">Define el sistema de medición de velocidad</string>
<string name="default_speed_system">Medición de la velocidad</string>
<string name="nm">nm</string>
@ -2136,4 +2137,7 @@
<string name="map_downloaded">Mapa descargado</string>
<string name="map_downloaded_descr">Se descargó el mapa de %1$ s. Vuelve al mapa para empezar a usarlo.</string>
<string name="go_to_map">Ir al mapa</string>
</resources>
<string name="shared_string_qr_code">Código QR</string>
<string name="enter_country_name">Ingrese nombre del país</string>
<string name="world_map_download_descr">El mapa base mundial (abarca todo el mundo en acercamientos pequeños), falta o está desactualizado. Considere descargarlo para un entorno completo.</string>
</resources>

View file

@ -2076,4 +2076,5 @@ Afghanistan, Albanie, Algérie, Allemagne, Andorre, Angola, Anguilla, Antigua-et
<string name="map_downloaded_descr">La carte %1$s a été téléchargée. Allez à la carte pour lutiliser.</string>
<string name="shared_string_qr_code">QR-code</string>
<string name="enter_country_name">Saisissez le pays</string>
</resources>
<string name="world_map_download_descr">La carte mondiale de base est manquante ou périmée. Merci de télécharger la carte mondiale de base afin que l\'application puisse fonctionner.</string>
</resources>

View file

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><resources>
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="send_files_to_osm">GPX fájl küldése OSM-re?</string>
<string name="gpx_visibility_txt">Láthatóság</string>
<string name="gpx_tags_txt">Címkék</string>
@ -240,7 +241,7 @@
<string name="local_indexes_cat_backup">Deaktivált</string>
<string name="local_indexes_cat_tts">Gépi hang (TTS)</string>
<string name="local_indexes_cat_voice">Beszédadat (felvett)</string>
<string name="local_indexes_cat_voice">Beszédhang (felvett)</string>
<string name="local_indexes_cat_tile">Online és gyorsítótárazott térképcsempék</string>
<string name="local_indexes_cat_map">Normál térképek (vektoros)</string>
@ -1920,7 +1921,7 @@
<string name="saved_at_time">Sikeresen mentve ekkor: %1$s</string>
<string name="regions">Régiók</string>
<string name="region_maps">Régiótérképek</string>
<string name="region_maps">Régiószintű térképek</string>
<string name="world_maps">Világtérképek</string>
<string name="hillshade_layer_disabled">Domborzatárnyékolás letiltva</string>
@ -1979,9 +1980,17 @@
<string name="update_all">Összes frissítése (%1$s MB)</string>
<string name="free_downloads_used">Elhasznált ingyenes letöltés</string>
<string name="free_downloads_used_description">Beállíthatod, mennyi ingyenes letöltést használtál</string>
<string name="simulate_initial_startup_descr">Az első indítást jelző flag visszaállítása, a többi beállítás megmaradt</string>
<string name="simulate_initial_startup_descr">Az első indítást jelző flag beállítása, a többi beállítás változatlan marad</string>
<string name="simulate_initial_startup">Alkalmazás első indításának szimulálása</string>
<string name="share_geo">geo:</string>
<string name="share_menu_location">Pozíció megosztása</string>
<string name="shared_string_send">Küldés</string>
</resources>
<string name="world_map_download_descr">A Föld alaptérképed (az egész Földet lefedi alacsony felbontással) hiányzik vagy elavult. A teljes funkcionalitáshoz javasoljuk a Föld alaptérkép letöltését.</string>
<string name="shared_string_qr_code">QR-kód</string>
<string name="map_downloaded">Térkép letöltve</string>
<string name="map_downloaded_descr">%1$s térképe letöltődött. A használatához menj vissza a térképre.</string>
<string name="go_to_map">Tovább a térképre</string>
<string name="application_dir_description">Válaszd ki, hova szeretnéd menteni a térképfájlokat.</string>
<string name="show_on_start_description">Kikapcsolva közvetlenül a térkép képernyőt indítja</string>
<string name="enter_country_name">Add meg az ország nevét</string>
</resources>

View file

@ -203,4 +203,9 @@
<string name="poi_capital">Hovedstad</string>
<string name="poi_residential">Boligområde</string>
</resources>
<string name="poi_historic_farm">Historisk gårdsbruk</string>
<string name="poi_historic_railway_station">Historisk jernbanestasjon</string>
<string name="poi_historic_railway">Historisk jernbane</string>
</resources>

View file

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><resources><string name="rendering_attr_roadColors_description">Velg fargeskjema for veier:</string>
<?xml version='1.0' encoding='utf-8'?>
<resources><string name="rendering_attr_roadColors_description">Velg fargeskjema for veier:</string>
<string name="rendering_attr_roadColors_name">Veifargeskjema</string>
<string name="map_widget_show_destination_arrow">Vis retning til målet</string>
<string name="gps_not_available">Aktiver GPS i innstillingene</string>
@ -272,7 +273,7 @@
<string name="favourites_edit_dialog_name">Navn</string>
<string name="favourites_edit_dialog_category">Kategori</string>
<string name="shared_string_no_thanks">Nei takk</string>
<string name="basemap_missing">Basis-verdenskart (som dekker hele verden ved lav zoom) mangler. Vurder å laste ned World_basemap_x.obf for et komplett miljø.</string>
<string name="basemap_missing">Basiskart verden (som dekker hele verden ved lav zoom) mangler. Vurder å laste ned World_basemap_x.obf for et komplett miljø.</string>
<string name="local_index_gpx_info_show">\n\nTrykk og hold for alternativer</string>
<string name="local_index_descr_title">Karthåndtering</string>
<string name="local_index_mi_restore">Aktiver</string>
@ -648,7 +649,7 @@
<string name="auto_zoom_far">Middels hold</string>
<string name="auto_zoom_farthest">Langt hold</string>
<string name="map_magnifier">Kartforstørrelse</string>
<string name="base_world_map">Grunnkart verden</string>
<string name="base_world_map">Basiskart verden</string>
<string name="amenity_type_seamark">Sjømerke</string>
<string name="app_modes_choose">Programprofiler</string>
<string name="map_widget_map_rendering">Kartopptegning</string>
@ -1408,4 +1409,21 @@
<string name="hillshade_layer_disabled">Relieffskyggelag deaktivert</string>
<string name="share_menu_location">Del posisjon</string>
<string name="shared_string_send">Send</string>
</resources>
<string name="map_downloaded">Kart lastet ned</string>
<string name="map_downloaded_descr">Kart over %1$s har blitt lastet ned. Gå tilbake til kartet for å begynne å bruke det.</string>
<string name="go_to_map">Gå til kartet</string>
<string name="downloads">Nedlastinger</string>
<string name="value_downloaded_from_max">%1$.1f av %2$.1f MB</string>
<string name="file_size_in_mb">%.1f MB</string>
<string name="update_all">Oppdater alle (%1$s MB)</string>
<string name="free_downloads_used">Gratis nedlastinger brukt</string>
<string name="application_dir_description">Velg hvor du vil lagre kartfiler.</string>
<string name="enter_country_name">Oppfør navn på land</string>
<string name="world_map_download_descr">Basiskart verden (som dekker hele verden ved lav zoom) mangler eller er utdatert. Vurder å laste ned Basiskart verden for et komplett miljø.</string>
<string name="shared_string_qr_code">QR-kode</string>
<string name="basemap_was_selected_to_download">Basiskart er nødvendig for at programmet skal fungere riktig og ble valgt for å laste ned.</string>
<string name="get_full_version">Fullversjon</string>
<string name="confirm_download_roadmaps">Er du sikker på at du vil laste ned veikart, selv om du har fullstendig kart?</string>
<string name="later">Senere</string>
<string name="activate_srtm_plugin">Aktiver programtillegg SRTM</string>
</resources>

View file

@ -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_transparent_map_theme">Przezroczysty styl</string>
<string name="native_library_not_supported">To urządzenie nie obsługuje biblioteki renderowania natywnego.</string>
@ -90,7 +91,7 @@
<string name="local_index_map_data">Dane mapy</string>
<string name="local_indexes_cat_backup">Kopia zapasowa</string>
<string name="local_indexes_cat_tts">Komunikaty głosowe (TTS)</string>
<string name="local_indexes_cat_voice">Komunikaty głosowe (media)</string>
<string name="local_indexes_cat_voice">Komunikaty głosowe (nagrane)</string>
<string name="local_indexes_cat_tile">Mapy online i kafelki</string>
<string name="local_indexes_cat_map">Mapy offline (wektorowe)</string>
@ -1108,7 +1109,7 @@
<string name="available_downloads_left">%1$d dostępnych plików do pobrania</string>
<string name="use_magnetic_sensor_descr">Użyj czujnika pola magnetycznego, aby określić kierunek kompasu</string>
<string name="use_magnetic_sensor">Użyj czujnika magnetycznego (kompas)</string>
<string name="local_indexes_cat_srtm">Dane poziomic</string>
<string name="local_indexes_cat_srtm">Poziomice</string>
<string name="use_kalman_filter_compass_descr">Redukuje szumy w odczytach kompasu, ale zwiększa bezwładność</string>
<string name="use_kalman_filter_compass">Używanie filtra Kalmana</string>
<string name="access_mark_final_location_first">Tryb ułatwień dostępu: wybierz najpierw punkt docelowy</string>
@ -2124,4 +2125,6 @@ Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Ant
<string name="free_downloads_used">Wykorzystano darmowe pobrania</string>
<string name="application_dir_description">Proszę wybrać położenie zapisywania plików map.</string>
<string name="value_downloaded_from_max">%1$.1f z %2$.1f MB</string>
</resources>
<string name="shared_string_qr_code">Kod QR</string>
<string name="enter_country_name">Wpisz nazwę kraju</string>
</resources>

View file

@ -2341,5 +2341,6 @@
<string name="poi_historic_gallows">Историческая виселица</string>
<string name="poi_historic_railway">Историческая железная дорога</string>
<string name="poi_square">Площадь</string>
</resources>

View file

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><resources><string name="always_center_position_on_map">Ammustra sa positzione semper a su tzentru</string>
<?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>
<string name="localization_pref_title">Localizatzione</string>
@ -1968,4 +1969,6 @@
<string name="map_downloaded">Mapa iscarrigada</string>
<string name="map_downloaded_descr">Sa mapa de %1$s est istada iscarrigada. Torra a sa mapa pro incumintzare a limpreare.</string>
<string name="go_to_map">Bae a sa mapa</string>
</resources>
<string name="shared_string_qr_code">Còdighe QR</string>
<string name="enter_country_name">Inserta su nùmene de s\'istadu</string>
</resources>

View file

@ -1973,5 +1973,6 @@
<string name="map_downloaded_descr">已下載了 %1$s 地圖。回到地圖以開始使用。</string>
<string name="go_to_map">返回地圖</string>
<string name="shared_string_qr_code">QR 碼</string>
<string name="enter_country_name">輸入國家名稱</string>
</resources>
<string name="enter_country_name">輸入國家/地區名稱</string>
<string name="world_map_download_descr">全球底圖 (涵蓋在整個縮小的世界) 丟失或過時。請考量一下為了完整的環境,下載全球底圖。</string>
</resources>

View file

@ -2345,4 +2345,6 @@
<string name="poi_historic_gallows">Historic gallows</string>
<string name="poi_historic_railway">Historic railway</string>
<string name="poi_square">Square</string>
</resources>

View file

@ -9,6 +9,7 @@
3. All your modified/created strings are in the top of the file (to make easier find what\'s translated).
PLEASE: Have a look at http://code.google.com/p/osmand/wiki/UIConsistency, it may really improve your and our work :-) Thx - Hardy
-->
<string name="world_map_download_descr">World basemap (covering the whole world at small zooms) is missing or outdated. Please consider downloading World basemap for a complete environment.</string>
<string name="shared_string_qr_code">QR-code</string>
<string name="map_downloaded">Map downloaded</string>
<string name="map_downloaded_descr">Map of %1$s has been downloaded. Go back to the map to start using it.</string>

View file

@ -1,10 +1,7 @@
package net.osmand.data;
import java.io.Serializable;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.Locale;
import java.util.StringTokenizer;
import android.content.Context;
import android.support.annotation.NonNull;
import com.jwetherell.openmap.common.LatLonPoint;
import com.jwetherell.openmap.common.UTMPoint;
@ -13,10 +10,13 @@ import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R;
import net.osmand.util.Algorithms;
import android.content.Context;
import android.support.annotation.NonNull;
public class PointDescription implements Serializable {
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.Locale;
import java.util.StringTokenizer;
public class PointDescription {
private String type = "";
private String name = "";
private String typeName;
@ -24,8 +24,6 @@ public class PointDescription implements Serializable {
private double lat = 0;
private double lon = 0;
private static final long serialVersionUID = 4078409090417168638L;
public static final String POINT_TYPE_FAVORITE = "favorite";
public static final String POINT_TYPE_WPT = "wpt";
public static final String POINT_TYPE_POI = "poi";

View file

@ -16,6 +16,7 @@ import android.webkit.WebViewClient;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
import net.osmand.plus.Version;
import net.osmand.plus.dialogs.helpscreen.HelpScreenDialogFragment;
import net.osmand.plus.helpers.AndroidUiHelper;
@ -47,7 +48,7 @@ public class HelpActivity extends OsmandActionBarActivity {
}
super.onCreate(savedInstanceState);
String title = getString(R.string.shared_string_help);
String title = getString(R.string.shared_string_help) + " (" + Version.getFullVersion(getMyApplication()) + ")";
String url = "index.html";
if (getIntent() != null) {
String tl = getIntent().getStringExtra(TITLE);

View file

@ -98,6 +98,7 @@ public class MapActivity extends AccessibleActivity {
private static final Log LOG = PlatformUtil.getLog(MapActivity.class);
private static MapViewTrackingUtilities mapViewTrackingUtilities;
private static MapContextMenu mapContextMenu = new MapContextMenu();
/**
* Called when the activity is first created.
@ -129,7 +130,6 @@ public class MapActivity extends AccessibleActivity {
private boolean intentLocation = false;
private DashboardOnMap dashboardOnMap = new DashboardOnMap(this);
private MapContextMenu contextMenuOnMap;
private FavoritePointEditor favoritePointEditor;
private AppInitializeListener initListener;
private IMapDownloaderCallback downloaderCallback;
@ -161,8 +161,8 @@ public class MapActivity extends AccessibleActivity {
app = getMyApplication();
settings = app.getSettings();
app.applyTheme(this);
contextMenuOnMap = new MapContextMenu(this);
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
mapContextMenu.setMapActivity(this);
super.onCreate(savedInstanceState);
// Full screen is not used here
// getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
@ -529,9 +529,9 @@ public class MapActivity extends AccessibleActivity {
dashboardOnMap.hideDashboard();
}
if (mapLabelToShow != null) {
contextMenuOnMap.setMapCenter(latLonToShow);
contextMenuOnMap.setMapPosition(mapView.getMapPosition());
contextMenuOnMap.show(latLonToShow, mapLabelToShow, toShow);
mapContextMenu.setMapCenter(latLonToShow);
mapContextMenu.setMapPosition(mapView.getMapPosition());
mapContextMenu.show(latLonToShow, mapLabelToShow, toShow);
}
if (!latLonToShow.equals(cur)) {
mapView.getAnimatedDraggingThread().startMoving(latLonToShow.getLatitude(),
@ -967,7 +967,7 @@ public class MapActivity extends AccessibleActivity {
}
public MapContextMenu getContextMenu() {
return contextMenuOnMap;
return mapContextMenu;
}
public FavoritePointEditor getFavoritePointEditor() {

View file

@ -1,6 +1,15 @@
package net.osmand.plus.audionotes;
import java.util.List;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.PointF;
import android.widget.ArrayAdapter;
import net.osmand.access.AccessibleAlertBuilder;
import net.osmand.data.DataTileManager;
@ -16,16 +25,8 @@ import net.osmand.plus.audionotes.AudioVideoNotesPlugin.Recording;
import net.osmand.plus.views.ContextMenuLayer.IContextMenuProvider;
import net.osmand.plus.views.OsmandMapLayer;
import net.osmand.plus.views.OsmandMapTileView;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.PointF;
import android.widget.ArrayAdapter;
import java.util.List;
public class AudioNotesLayer extends OsmandMapLayer implements IContextMenuProvider {
@ -118,10 +119,7 @@ public class AudioNotesLayer extends OsmandMapLayer implements IContextMenuProvi
OnContextMenuClick listener = new ContextMenuAdapter.OnContextMenuClick() {
@Override
public boolean onContextMenuClick(ArrayAdapter<?> adapter, int itemId, int pos, boolean isChecked) {
if (itemId == R.string.recording_context_menu_play ||
itemId == R.string.recording_context_menu_show) {
plugin.playRecording(view.getContext(), r);
} else if (itemId == R.string.recording_context_menu_delete) {
if (itemId == R.string.recording_context_menu_delete) {
deleteRecording(r);
}
return true;
@ -129,13 +127,6 @@ public class AudioNotesLayer extends OsmandMapLayer implements IContextMenuProvi
};
if(r.isPhoto()) {
adapter.item(R.string.recording_context_menu_show).iconColor(
R.drawable.ic_action_view).listen(listener).reg();
} else {
adapter.item(R.string.recording_context_menu_play).iconColor(
R.drawable.ic_action_play_dark).listen(listener).reg();
}
adapter.item(R.string.recording_context_menu_delete).iconColor(R.drawable.ic_action_delete_dark
).listen(listener).reg();
}

View file

@ -361,6 +361,16 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
}
public String getPlainDuration() {
updateInternalDescription();
if (duration > 0) {
int d = (int) (duration / 1000);
return Algorithms.formatDuration(d);
} else {
return "";
}
}
private String getDuration(Context ctx) {
String additional = "";
if (duration > 0) {

View file

@ -1,19 +1,6 @@
package net.osmand.plus.development;
import java.text.SimpleDateFormat;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import net.osmand.plus.ApplicationMode;
import net.osmand.plus.OsmAndLocationSimulation;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
import net.osmand.plus.Version;
import net.osmand.plus.activities.SettingsBaseActivity;
import net.osmand.plus.activities.actions.AppModeDialog;
import net.osmand.util.SunriseSunset;
import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
@ -24,9 +11,24 @@ import android.os.Debug.MemoryInfo;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceCategory;
import android.preference.PreferenceScreen;
import android.view.View;
import net.osmand.plus.ApplicationMode;
import net.osmand.plus.OsmAndLocationSimulation;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
import net.osmand.plus.Version;
import net.osmand.plus.activities.SettingsBaseActivity;
import net.osmand.plus.activities.actions.AppModeDialog;
import net.osmand.util.SunriseSunset;
import java.text.SimpleDateFormat;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
//import net.osmand.plus.development.OsmandDevelopmentPlugin;
public class SettingsDevelopmentActivity extends SettingsBaseActivity {
@ -132,6 +134,10 @@ public class SettingsDevelopmentActivity extends SettingsBaseActivity {
});
cat.addPreference(pref);
PreferenceCategory info = new PreferenceCategory(this);
info.setTitle(R.string.info_button);
cat.addPreference(info);
pref = new Preference(this);
pref.setTitle(R.string.global_app_allocated_memory);
@ -142,7 +148,7 @@ public class SettingsDevelopmentActivity extends SettingsBaseActivity {
pref.setSelectable(false);
//setEnabled(false) creates bad readability on some devices
//pref.setEnabled(false);
cat.addPreference(pref);
info.addPreference(pref);
// ActivityManager activityManager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
// ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();
@ -158,7 +164,7 @@ public class SettingsDevelopmentActivity extends SettingsBaseActivity {
pref.setSelectable(false);
//setEnabled(false) creates bad readability on some devices
//pref.setEnabled(false);
cat.addPreference(pref);
info.addPreference(pref);
final Preference agpspref = new Preference(this);
agpspref.setTitle(R.string.agps_info);
@ -182,7 +188,7 @@ public class SettingsDevelopmentActivity extends SettingsBaseActivity {
return true;
}
});
cat.addPreference(agpspref);
info.addPreference(agpspref);
SunriseSunset sunriseSunset = getMyApplication().getDaynightHelper().getSunriseSunset();
pref = new Preference(this);
@ -197,9 +203,9 @@ public class SettingsDevelopmentActivity extends SettingsBaseActivity {
pref.setSelectable(false);
//setEnabled(false) creates bad readability on some devices
//pref.setEnabled(false);
cat.addPreference(pref);
info.addPreference(pref);
}
protected void availableProfileDialog() {
Builder b = new AlertDialog.Builder(this);
final List<ApplicationMode> modes = ApplicationMode.allPossibleValues();

View file

@ -35,13 +35,13 @@ import net.osmand.plus.activities.LocalIndexInfo;
import net.osmand.plus.activities.TabActivity;
import net.osmand.plus.base.BasicProgressAsyncTask;
import net.osmand.plus.download.DownloadIndexesThread.DownloadEvents;
import net.osmand.plus.download.DownloadResourceGroup.DownloadResourceGroupType;
import net.osmand.plus.download.ui.ActiveDownloadsDialogFragment;
import net.osmand.plus.download.ui.DataStoragePlaceDialogFragment;
import net.osmand.plus.download.ui.DownloadResourceGroupFragment;
import net.osmand.plus.download.ui.GoToMapFragment;
import net.osmand.plus.download.ui.LocalIndexesFragment;
import net.osmand.plus.download.ui.UpdatesIndexFragment;
import net.osmand.plus.download.ui.popups.AskMapDownloadFragment;
import net.osmand.plus.download.ui.popups.DownloadResourceGroupFragment;
import net.osmand.plus.download.ui.popups.GoToMapFragment;
import net.osmand.plus.openseamapsplugin.NauticalMapsPlugin;
import net.osmand.plus.srtmplugin.SRTMPlugin;
import net.osmand.plus.views.controls.PagerSlidingTabStrip;
@ -559,25 +559,12 @@ public class DownloadActivity extends ActionBarProgressActivity implements Downl
if(getDownloadThread().getCurrentDownloadingItem() == null) {
return;
}
DownloadResourceGroup worldMaps = getDownloadThread().getIndexes().
getSubGroupById(DownloadResourceGroupType.WORLD_MAPS.getDefaultId());
IndexItem worldMap = null;
List<IndexItem> list = worldMaps.getIndividualResources();
if(list != null) {
for(IndexItem ii : list) {
if(ii.getBasename().equalsIgnoreCase(WorldRegion.WORLD_BASEMAP)) {
worldMap = ii;
break;
}
}
}
if(!SUGGESTED_TO_DOWNLOAD_BASEMAP && worldMap != null && (!worldMap.isDownloaded() || worldMap.isOutdated()) &&
IndexItem worldMap = getDownloadThread().getIndexes().getWorldBaseMapItem();
if(!SUGGESTED_TO_DOWNLOAD_BASEMAP && worldMap != null && (!worldMap.isDownloaded() || worldMap.isOutdated()) &&
!getDownloadThread().isDownloading(worldMap)) {
SUGGESTED_TO_DOWNLOAD_BASEMAP = true;
// TODO Show dialog Download world map with 2 buttons to download it or no
AskMapDownloadFragment.showInstance(worldMap, this);
}
}
private void showFirstTimeExternalStorage() {

View file

@ -1,5 +1,11 @@
package net.osmand.plus.download;
import net.osmand.IndexConstants;
import net.osmand.map.OsmandRegions;
import net.osmand.map.WorldRegion;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.download.DownloadOsmandIndexesHelper.AssetIndexItem;
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
@ -11,12 +17,6 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import net.osmand.IndexConstants;
import net.osmand.map.OsmandRegions;
import net.osmand.map.WorldRegion;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.download.DownloadOsmandIndexesHelper.AssetIndexItem;
public class DownloadResources extends DownloadResourceGroup {
public boolean isDownloadedFromInternet = false;
public boolean mapVersionIsIncreased = false;
@ -25,7 +25,6 @@ public class DownloadResources extends DownloadResourceGroup {
private Map<String, String> indexActivatedFileNames = new LinkedHashMap<>();
private List<IndexItem> rawResources;
private List<IndexItem> itemsToUpdate = new ArrayList<>();
//public static final String WORLD_BASEMAP_KEY = "world_basemap.obf.zip";
public static final String WORLD_SEAMARKS_KEY = "world_seamarks_basemap";
@ -39,6 +38,32 @@ public class DownloadResources extends DownloadResourceGroup {
return itemsToUpdate;
}
public IndexItem getWorldBaseMapItem() {
DownloadResourceGroup worldMaps = getSubGroupById(DownloadResourceGroupType.WORLD_MAPS.getDefaultId());
IndexItem worldMap = null;
List<IndexItem> list = worldMaps.getIndividualResources();
if(list != null) {
for(IndexItem ii : list) {
if(ii.getBasename().equalsIgnoreCase(WorldRegion.WORLD_BASEMAP)) {
worldMap = ii;
break;
}
}
}
return worldMap;
}
public IndexItem getIndexItem(String fileName) {
IndexItem res = null;
for (IndexItem item : rawResources) {
if (fileName.equals(item.getFileName())) {
res = item;
break;
}
}
return res;
}
public void updateLoadedFiles() {
initAlreadyLoadedFiles();
prepareFilesToUpdate();

View file

@ -1,26 +1,5 @@
package net.osmand.plus.download.ui;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;
import net.osmand.Collator;
import net.osmand.OsmAndCollator;
import net.osmand.map.OsmandRegions;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R;
import net.osmand.plus.download.DownloadActivity;
import net.osmand.plus.download.DownloadActivity.BannerAndDownloadFreeVersion;
import net.osmand.plus.download.DownloadActivityType;
import net.osmand.plus.download.DownloadIndexesThread.DownloadEvents;
import net.osmand.plus.download.DownloadResourceGroup;
import net.osmand.plus.download.DownloadResourceGroup.DownloadResourceGroupType;
import net.osmand.plus.download.DownloadResources;
import net.osmand.plus.download.IndexItem;
import net.osmand.util.Algorithms;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
@ -40,6 +19,29 @@ import android.widget.RelativeLayout;
import android.widget.RelativeLayout.LayoutParams;
import android.widget.SearchView;
import net.osmand.Collator;
import net.osmand.OsmAndCollator;
import net.osmand.map.OsmandRegions;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R;
import net.osmand.plus.download.DownloadActivity;
import net.osmand.plus.download.DownloadActivity.BannerAndDownloadFreeVersion;
import net.osmand.plus.download.DownloadActivityType;
import net.osmand.plus.download.DownloadIndexesThread.DownloadEvents;
import net.osmand.plus.download.DownloadResourceGroup;
import net.osmand.plus.download.DownloadResourceGroup.DownloadResourceGroupType;
import net.osmand.plus.download.DownloadResources;
import net.osmand.plus.download.IndexItem;
import net.osmand.plus.download.ui.popups.DownloadResourceGroupFragment;
import net.osmand.util.Algorithms;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;
public class SearchDialogFragment extends DialogFragment implements DownloadEvents, OnItemClickListener {
public static final String TAG = "SearchDialogFragment";

View file

@ -0,0 +1,151 @@
package net.osmand.plus.download.ui.popups;
import android.app.Dialog;
import android.app.DialogFragment;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.annotation.ColorRes;
import android.support.annotation.DrawableRes;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import net.osmand.map.WorldRegion;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R;
import net.osmand.plus.download.DownloadActivity;
import net.osmand.plus.download.IndexItem;
public class AskMapDownloadFragment extends DialogFragment {
public static final String TAG = "AskMapDownloadFragment";
private static final String KEY_ASK_MAP_DOWNLOAD_ITEM_FILENAME = "key_ask_map_download_item_filename";
private IndexItem indexItem;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
boolean isLightTheme = getMyApplication()
.getSettings().OSMAND_THEME.get() == OsmandSettings.OSMAND_LIGHT_THEME;
int themeId = isLightTheme ? R.style.OsmandLightTheme_BottomSheet
: R.style.OsmandDarkTheme_BottomSheet;
final Dialog dialog = new Dialog(getActivity(), themeId);
dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
dialog.getWindow().getAttributes().windowAnimations = R.style.Animations_PopUpMenu_Bottom;
return dialog;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (savedInstanceState != null) {
String itemFileName = savedInstanceState.getString(KEY_ASK_MAP_DOWNLOAD_ITEM_FILENAME);
if (itemFileName != null) {
indexItem = getMyApplication().getDownloadThread().getIndexes().getIndexItem(itemFileName);
}
}
View view = inflater.inflate(R.layout.ask_map_download_fragment, container, false);
((ImageView) view.findViewById(R.id.titleIconImageView))
.setImageDrawable(getIcon(R.drawable.ic_map, R.color.osmand_orange));
Button actionButtonOk = (Button) view.findViewById(R.id.actionButtonOk);
String titleText = null;
String descriptionText = null;
if (indexItem != null) {
if (indexItem.getBasename().equalsIgnoreCase(WorldRegion.WORLD_BASEMAP)) {
titleText = getString(R.string.index_item_world_basemap);
descriptionText = getString(R.string.world_map_download_descr);
}
actionButtonOk.setText(getString(R.string.shared_string_download) + " (" + indexItem.getSizeDescription(getActivity()) + ")");
}
if (titleText != null) {
((TextView) view.findViewById(R.id.titleTextView))
.setText(titleText);
}
if (descriptionText != null) {
((TextView) view.findViewById(R.id.descriptionTextView))
.setText(descriptionText);
}
final ImageButton closeImageButton = (ImageButton) view.findViewById(R.id.closeImageButton);
closeImageButton.setImageDrawable(getContentIcon(R.drawable.ic_action_remove_dark));
closeImageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
}
});
actionButtonOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (indexItem != null) {
((DownloadActivity) getActivity()).startDownload(indexItem);
dismiss();
}
}
});
view.findViewById(R.id.actionButtonCancel)
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
}
});
return view;
}
@Override
public void onStart() {
super.onStart();
final Window window = getDialog().getWindow();
WindowManager.LayoutParams params = window.getAttributes();
params.height = ViewGroup.LayoutParams.WRAP_CONTENT;
params.gravity = Gravity.BOTTOM;
params.width = ViewGroup.LayoutParams.MATCH_PARENT;
window.setAttributes(params);
}
@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
if (indexItem != null) {
outState.putString(KEY_ASK_MAP_DOWNLOAD_ITEM_FILENAME, indexItem.getFileName());
}
}
private OsmandApplication getMyApplication() {
return (OsmandApplication) getActivity().getApplication();
}
private Drawable getIcon(@DrawableRes int drawableRes, @ColorRes int color) {
return getMyApplication().getIconsCache().getIcon(drawableRes, color);
}
private Drawable getContentIcon(@DrawableRes int drawableRes) {
return getMyApplication().getIconsCache().getContentIcon(drawableRes);
}
public static void showInstance(IndexItem indexItem, DownloadActivity activity) {
AskMapDownloadFragment fragment = new AskMapDownloadFragment();
fragment.indexItem = indexItem;
fragment.show(activity.getFragmentManager(), TAG);
}
}

View file

@ -1,4 +1,4 @@
package net.osmand.plus.download.ui;
package net.osmand.plus.download.ui.popups;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
@ -31,6 +31,8 @@ import net.osmand.plus.download.DownloadResourceGroup;
import net.osmand.plus.download.DownloadResourceGroup.DownloadResourceGroupType;
import net.osmand.plus.download.DownloadResources;
import net.osmand.plus.download.IndexItem;
import net.osmand.plus.download.ui.ItemViewHolder;
import net.osmand.plus.download.ui.SearchDialogFragment;
import net.osmand.util.Algorithms;
import java.util.ArrayList;

View file

@ -1,4 +1,4 @@
package net.osmand.plus.download.ui;
package net.osmand.plus.download.ui.popups;
import android.app.Dialog;
import android.app.DialogFragment;

View file

@ -8,7 +8,6 @@ import net.osmand.plus.api.SQLiteAPI.SQLiteConnection;
import net.osmand.plus.api.SQLiteAPI.SQLiteCursor;
import net.osmand.util.Algorithms;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
@ -51,7 +50,7 @@ public class SearchHistoryHelper {
}
};
public static class HistoryEntry implements Serializable {
public static class HistoryEntry {
double lat;
double lon;
PointDescription name;

View file

@ -1,6 +1,7 @@
package net.osmand.plus.mapcontextmenu;
import android.graphics.drawable.Drawable;
import android.util.TypedValue;
import net.osmand.plus.IconsCache;
import net.osmand.plus.R;
@ -59,12 +60,31 @@ public abstract class BaseMenuController {
}
}
protected Drawable getIconOrig(int iconId) {
IconsCache iconsCache = getMapActivity().getMyApplication().getIconsCache();
return iconsCache.getIcon(iconId, 0, 0f);
}
protected Drawable getIcon(int iconId) {
return getIcon(iconId, R.color.icon_color, R.color.icon_color_light);
}
protected Drawable getIcon(int iconId, int colorId) {
IconsCache iconsCache = getMapActivity().getMyApplication().getIconsCache();
return iconsCache.getIcon(iconId, colorId);
}
protected Drawable getIcon(int iconId, int colorLightId, int colorDarkId) {
IconsCache iconsCache = getMapActivity().getMyApplication().getIconsCache();
return iconsCache.getIcon(iconId, isLight() ? colorLightId : colorDarkId);
}
protected int getResIdFromAttribute(final int attr) {
if (attr == 0)
return 0;
final TypedValue typedvalueattr = new TypedValue();
getMapActivity().getTheme().resolveAttribute(attr, typedvalueattr, true);
return typedvalueattr.resourceId;
}
}

View file

@ -1,6 +1,5 @@
package net.osmand.plus.mapcontextmenu;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.View;
@ -10,13 +9,14 @@ import net.osmand.data.PointDescription;
import net.osmand.plus.ContextMenuAdapter;
import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.mapcontextmenu.MenuController.TitleButtonController;
import net.osmand.plus.mapcontextmenu.other.ShareMenu;
import net.osmand.plus.views.ContextMenuLayer;
import net.osmand.plus.views.OsmandMapLayer;
public class MapContextMenu extends MenuTitleController {
private final MapActivity mapActivity;
private MapActivity mapActivity;
private boolean active;
private LatLon latLon;
@ -29,22 +29,20 @@ public class MapContextMenu extends MenuTitleController {
private int favActionIconId;
private static final String KEY_CTX_MENU_OBJECT = "key_ctx_menu_object";
private static final String KEY_CTX_MENU_ACTIVE = "key_ctx_menu_active";
private static final String KEY_CTX_MENU_LATLON = "key_ctx_menu_latlon";
private static final String KEY_CTX_MENU_POINT_DESC = "key_ctx_menu_point_desc";
private static final String KEY_CTX_MENU_NAME_STR = "key_ctx_menu_name_str";
private static final String KEY_CTX_MENU_TYPE_STR = "key_ctx_menu_type_str";
private static final String KEY_CTX_MENU_STREET_STR = "key_ctx_menu_street_str";
private static final String KEY_CTX_MENU_ADDR_UNKNOWN = "key_ctx_menu_addr_unknown";
private static final String KEY_CTX_MENU_MAP_CENTER = "key_ctx_menu_map_center";
private static final String KEY_CTX_MENU_MAP_POSITION = "key_ctx_menu_map_position";
@Override
public MapActivity getMapActivity() {
return mapActivity;
}
public void setMapActivity(MapActivity mapActivity) {
this.mapActivity = mapActivity;
if (active) {
acquireMenuController();
} else {
menuController = null;
}
}
public boolean isActive() {
return active;
}
@ -89,16 +87,15 @@ public class MapContextMenu extends MenuTitleController {
return menuController;
}
public MapContextMenu(MapActivity mapActivity) {
this.mapActivity = mapActivity;
public MapContextMenu() {
}
public boolean init(LatLon latLon, PointDescription pointDescription, Object object) {
return init(latLon, pointDescription, object, false);
}
public boolean init(LatLon latLon, PointDescription pointDescription, Object object, boolean reload) {
if (!reload && isVisible()) {
public boolean init(LatLon latLon, PointDescription pointDescription, Object object, boolean update) {
if (!update && isVisible()) {
if (this.object == null || !this.object.equals(object)) {
hide();
} else {
@ -109,6 +106,7 @@ public class MapContextMenu extends MenuTitleController {
if (this.object != null) {
clearSelectedObject(this.object);
}
setSelectedObject(object);
if (pointDescription == null) {
this.pointDescription = new PointDescription(latLon.getLatitude(), latLon.getLongitude());
@ -149,7 +147,7 @@ public class MapContextMenu extends MenuTitleController {
}
}
public void refreshMenu(LatLon latLon, PointDescription pointDescription, Object object) {
public void update(LatLon latLon, PointDescription pointDescription, Object object) {
MapContextMenuFragment fragment = findMenuFragment();
if (fragment != null) {
init(latLon, pointDescription, object, true);
@ -157,6 +155,14 @@ public class MapContextMenu extends MenuTitleController {
}
}
public void showOrUpdate(LatLon latLon, PointDescription pointDescription, Object object) {
if (isVisible() && this.object != null && this.object.equals(object)) {
update(latLon, pointDescription, object);
} else {
show(latLon, pointDescription, object);
}
}
public void close() {
active = false;
hide();
@ -175,6 +181,21 @@ public class MapContextMenu extends MenuTitleController {
}
private void clearSelectedObject(Object object) {
if (object != null) {
for (OsmandMapLayer l : mapActivity.getMapView().getLayers()) {
if (l instanceof ContextMenuLayer.IContextMenuProvider) {
PointDescription pointDescription = ((ContextMenuLayer.IContextMenuProvider) l).getObjectName(object);
if (pointDescription != null) {
if (l instanceof ContextMenuLayer.IContextMenuProviderSelection) {
((ContextMenuLayer.IContextMenuProviderSelection) l).clearSelectedObject();
}
}
}
}
}
}
private void setSelectedObject(Object object) {
if (object != null) {
for (OsmandMapLayer l : mapActivity.getMapView().getLayers()) {
if (l instanceof ContextMenuLayer.IContextMenuProvider) {
@ -267,56 +288,6 @@ public class MapContextMenu extends MenuTitleController {
mapActivity.getMapActions().contextMenuPoint(latLon.getLatitude(), latLon.getLongitude(), menuAdapter, object);
}
public void saveMenuState(Bundle bundle) {
if (menuController != null) {
menuController.saveEntityState(bundle, KEY_CTX_MENU_OBJECT);
}
bundle.putString(KEY_CTX_MENU_ACTIVE, Boolean.toString(active));
bundle.putSerializable(KEY_CTX_MENU_LATLON, latLon);
bundle.putSerializable(KEY_CTX_MENU_POINT_DESC, pointDescription);
bundle.putString(KEY_CTX_MENU_NAME_STR, nameStr);
bundle.putString(KEY_CTX_MENU_TYPE_STR, typeStr);
bundle.putString(KEY_CTX_MENU_STREET_STR, streetStr);
bundle.putString(KEY_CTX_MENU_ADDR_UNKNOWN, Boolean.toString(addressUnknown));
bundle.putSerializable(KEY_CTX_MENU_MAP_CENTER, mapCenter);
bundle.putInt(KEY_CTX_MENU_MAP_POSITION, mapPosition);
}
public void restoreMenuState(Bundle bundle) {
object = bundle.getSerializable(KEY_CTX_MENU_OBJECT);
Object pDescObj = bundle.getSerializable(KEY_CTX_MENU_POINT_DESC);
if (pDescObj != null) {
pointDescription = (PointDescription) pDescObj;
}
active = Boolean.parseBoolean(bundle.getString(KEY_CTX_MENU_ACTIVE));
Object latLonObj = bundle.getSerializable(KEY_CTX_MENU_LATLON);
if (latLonObj != null) {
latLon = (LatLon) latLonObj;
} else {
active = false;
}
acquireMenuController();
Object mapCenterObj = bundle.getSerializable(KEY_CTX_MENU_MAP_CENTER);
if (mapCenterObj != null) {
mapCenter = (LatLon) mapCenterObj;
}
nameStr = bundle.getString(KEY_CTX_MENU_NAME_STR);
typeStr = bundle.getString(KEY_CTX_MENU_TYPE_STR);
streetStr = bundle.getString(KEY_CTX_MENU_STREET_STR);
addressUnknown = Boolean.parseBoolean(bundle.getString(KEY_CTX_MENU_ADDR_UNKNOWN));
mapPosition = bundle.getInt(KEY_CTX_MENU_MAP_POSITION, 0);
acquireIcons();
if (menuController != null) {
menuController.addPlainMenuItems(typeStr, pointDescription, latLon);
}
}
public void setBaseFragmentVisibility(boolean visible) {
MapContextMenuFragment menuFragment = findMenuFragment();
if (menuFragment != null) {
@ -382,21 +353,11 @@ public class MapContextMenu extends MenuTitleController {
}
}
public boolean hasTitleButton() {
return menuController != null && menuController.hasTitleButton();
}
public String getTitleButtonCaption() {
public TitleButtonController getTitleButtonController() {
if (menuController != null) {
return menuController.getTitleButtonCaption();
return menuController.getTitleButtonController();
} else {
return "";
}
}
public void titleButtonPressed() {
if (menuController != null) {
menuController.titleButtonPressed();
return null;
}
}
}

View file

@ -36,6 +36,7 @@ import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.mapcontextmenu.MenuController.TitleButtonController;
import net.osmand.plus.views.AnimateDraggingMapThread;
import net.osmand.plus.views.OsmandMapTileView;
@ -56,7 +57,8 @@ public class MapContextMenuFragment extends Fragment {
private View mainView;
ImageView fabView;
MapContextMenu menu;
private MapContextMenu menu;
private TitleButtonController titleButtonController;
private int menuTopViewHeight;
private int menuTopShadowHeight;
@ -111,12 +113,6 @@ public class MapContextMenuFragment extends Fragment {
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
menu.saveMenuState(outState);
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
@ -127,9 +123,7 @@ public class MapContextMenuFragment extends Fragment {
markerPaddingXPx = dpToPx(MARKER_PADDING_X_DP);
menu = getMapActivity().getContextMenu();
if (savedInstanceState != null) {
menu.restoreMenuState(savedInstanceState);
}
titleButtonController = menu.getTitleButtonController();
map = getMapActivity().getMapView();
RotatedTileBox box = map.getCurrentRotatedTileBox().copy();
@ -150,18 +144,36 @@ public class MapContextMenuFragment extends Fragment {
view = inflater.inflate(R.layout.map_context_menu_fragment, container, false);
mainView = view.findViewById(R.id.context_menu_main);
Button titleButton = (Button) view.findViewById(R.id.title_button);
titleButton.setVisibility(menu.hasTitleButton() ? View.VISIBLE : View.GONE);
if (menu.hasTitleButton()) {
titleButton.setText(menu.getTitleButtonCaption());
// Title button
final View titleButtonContainer = view.findViewById(R.id.title_button_container);
if (titleButtonController != null) {
titleButtonContainer.setVisibility(View.VISIBLE);
final Button titleButton = (Button) view.findViewById(R.id.title_button);
titleButton.setText(titleButtonController.getCaption());
Drawable leftIcon = titleButtonController.getLeftIcon();
if (leftIcon != null) {
titleButton.setCompoundDrawablesWithIntrinsicBounds(leftIcon, null, null, null);
titleButton.setCompoundDrawablePadding(dpToPx(8f));
}
titleButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
menu.titleButtonPressed();
titleButtonController.buttonPressed();
}
});
final TextView titleButtonRightText = (TextView) view.findViewById(R.id.title_button_right_text);
titleButtonRightText.setVisibility(titleButtonController.isNeedRightText() ? View.VISIBLE : View.GONE);
if (titleButtonController.isNeedRightText()) {
titleButtonRightText.setText(titleButtonController.getRightTextCaption());
}
} else {
titleButtonContainer.setVisibility(View.GONE);
}
if (menu.isLandscapeLayout()) {
mainView.setLayoutParams(new FrameLayout.LayoutParams(dpToPx(menu.getLandscapeWidthDp()),
ViewGroup.LayoutParams.MATCH_PARENT));

View file

@ -1,7 +1,6 @@
package net.osmand.plus.mapcontextmenu;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import net.osmand.data.Amenity;
@ -10,14 +9,20 @@ import net.osmand.data.LatLon;
import net.osmand.data.PointDescription;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
import net.osmand.plus.TargetPointsHelper.TargetPoint;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.audionotes.AudioVideoNotesPlugin.Recording;
import net.osmand.plus.helpers.SearchHistoryHelper;
import net.osmand.plus.mapcontextmenu.details.AmenityMenuController;
import net.osmand.plus.mapcontextmenu.details.FavouritePointMenuController;
import net.osmand.plus.mapcontextmenu.details.HistoryMenuController;
import net.osmand.plus.mapcontextmenu.details.MyLocationMenuController;
import net.osmand.plus.mapcontextmenu.details.ParkingPositionController;
import net.osmand.plus.mapcontextmenu.details.PointDescriptionMenuController;
import net.osmand.plus.mapcontextmenu.controllers.AmenityMenuController;
import net.osmand.plus.mapcontextmenu.controllers.FavouritePointMenuController;
import net.osmand.plus.mapcontextmenu.controllers.HistoryMenuController;
import net.osmand.plus.mapcontextmenu.controllers.MyLocationMenuController;
import net.osmand.plus.mapcontextmenu.controllers.OsMoMenuController;
import net.osmand.plus.mapcontextmenu.controllers.ParkingPositionMenuController;
import net.osmand.plus.mapcontextmenu.controllers.PointDescriptionMenuController;
import net.osmand.plus.mapcontextmenu.controllers.RecordingItemMenuController;
import net.osmand.plus.mapcontextmenu.controllers.TargetPointMenuController;
import net.osmand.plus.osmo.OsMoGroupsStorage.OsMoDevice;
public abstract class MenuController extends BaseMenuController {
@ -30,6 +35,38 @@ public abstract class MenuController extends BaseMenuController {
private MenuBuilder builder;
private int currentMenuState;
protected TitleButtonController titleButtonController;
public abstract class TitleButtonController {
public String caption = "";
public int leftIconId = 0;
public boolean needRightText = false;
public String rightTextCaption = "";
public String getCaption() {
return caption;
}
public boolean isNeedRightText() {
return needRightText;
}
public String getRightTextCaption() {
return rightTextCaption;
}
public Drawable getLeftIcon() {
if (leftIconId != 0) {
return getIcon(leftIconId, getResIdFromAttribute(R.attr.contextMenuButtonColor));
} else {
return null;
}
}
public abstract void buttonPressed();
}
public MenuController(MenuBuilder builder, MapActivity mapActivity) {
super(mapActivity);
this.builder = builder;
@ -51,11 +88,17 @@ public abstract class MenuController extends BaseMenuController {
menuController = new FavouritePointMenuController(app, mapActivity, (FavouritePoint) object);
} else if (object instanceof SearchHistoryHelper.HistoryEntry) {
menuController = new HistoryMenuController(app, mapActivity, (SearchHistoryHelper.HistoryEntry) object);
} else if (object instanceof TargetPoint) {
menuController = new TargetPointMenuController(app, mapActivity, (TargetPoint) object);
} else if (object instanceof OsMoDevice) {
menuController = new OsMoMenuController(app, mapActivity, (OsMoDevice) object);
} else if (object instanceof Recording) {
menuController = new RecordingItemMenuController(app, mapActivity, (Recording) object);
} else if (object instanceof LatLon) {
if (pointDescription.isParking()) {
menuController = new ParkingPositionController(app, mapActivity, pointDescription, (LatLon) object);
menuController = new ParkingPositionMenuController(app, mapActivity, pointDescription);
} else if (pointDescription.isMyLocation()) {
menuController = new MyLocationMenuController(app, mapActivity, pointDescription, (LatLon) object);
menuController = new MyLocationMenuController(app, mapActivity, pointDescription);
}
}
} else {
@ -135,15 +178,8 @@ public abstract class MenuController extends BaseMenuController {
this.currentMenuState = currentMenuState;
}
public boolean hasTitleButton() {
return false;
}
public String getTitleButtonCaption() {
return "";
}
public void titleButtonPressed() {
public TitleButtonController getTitleButtonController() {
return titleButtonController;
}
public boolean shouldShowButtons() {
@ -162,6 +198,10 @@ public abstract class MenuController extends BaseMenuController {
return false;
}
public boolean displayStreetNameinTitle() {
return false;
}
public int getLeftIconId() { return 0; }
public Drawable getLeftIcon() { return null; }
@ -173,6 +213,4 @@ public abstract class MenuController extends BaseMenuController {
public String getTypeStr() { return ""; }
public String getNameStr() { return ""; }
public abstract void saveEntityState(Bundle bundle, String key);
}

View file

@ -139,7 +139,8 @@ public abstract class MenuTitleController {
object.getRef(), object.getDestinationName(settings.MAP_PREFERRED_LOCALE.get()));
if (!Algorithms.isEmpty(streetStr)) {
if (getObject() == null) {
MenuController menuController = getMenuController();
if (menuController == null || menuController.displayStreetNameinTitle()) {
nameStr = streetStr;
addressUnknown = false;
streetStr = "";

View file

@ -1,4 +1,4 @@
package net.osmand.plus.mapcontextmenu.details;
package net.osmand.plus.mapcontextmenu.builders;
import android.graphics.drawable.Drawable;
import android.text.Html;

View file

@ -1,4 +1,4 @@
package net.osmand.plus.mapcontextmenu.details;
package net.osmand.plus.mapcontextmenu.builders;
import android.view.View;

View file

@ -1,6 +1,4 @@
package net.osmand.plus.mapcontextmenu.details;
import android.os.Bundle;
package net.osmand.plus.mapcontextmenu.controllers;
import net.osmand.data.Amenity;
import net.osmand.data.LatLon;
@ -11,6 +9,7 @@ import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.mapcontextmenu.MenuController;
import net.osmand.plus.mapcontextmenu.builders.AmenityMenuBuilder;
import net.osmand.plus.render.RenderingIcons;
import net.osmand.util.Algorithms;
@ -23,11 +22,6 @@ public class AmenityMenuController extends MenuController {
this.amenity = amenity;
}
@Override
protected int getInitialMenuStatePortrait() {
return MenuState.HEADER_ONLY;
}
@Override
protected int getSupportedMenuStatesPortrait() {
return MenuState.HEADER_ONLY | MenuState.HALF_SCREEN | MenuState.FULL_SCREEN;
@ -86,9 +80,4 @@ public class AmenityMenuController extends MenuController {
public String getNameStr() {
return amenity.getName(getMapActivity().getMyApplication().getSettings().MAP_PREFERRED_LOCALE.get());
}
@Override
public void saveEntityState(Bundle bundle, String key) {
bundle.putSerializable(key, amenity);
}
}

View file

@ -1,7 +1,6 @@
package net.osmand.plus.mapcontextmenu.details;
package net.osmand.plus.mapcontextmenu.controllers;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import net.osmand.data.FavouritePoint;
@ -10,6 +9,7 @@ import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.base.FavoriteImageDrawable;
import net.osmand.plus.mapcontextmenu.MenuController;
import net.osmand.plus.mapcontextmenu.builders.FavouritePointMenuBuilder;
import net.osmand.plus.mapcontextmenu.editors.FavoritePointEditor;
import net.osmand.plus.mapcontextmenu.editors.FavoritePointEditorFragment;
@ -22,11 +22,6 @@ public class FavouritePointMenuController extends MenuController {
this.fav = fav;
}
@Override
protected int getInitialMenuStatePortrait() {
return MenuState.HEADER_ONLY;
}
@Override
protected int getSupportedMenuStatesPortrait() {
return MenuState.HEADER_ONLY | MenuState.HALF_SCREEN | MenuState.FULL_SCREEN;
@ -77,10 +72,4 @@ public class FavouritePointMenuController extends MenuController {
public String getNameStr() {
return fav.getName();
}
@Override
public void saveEntityState(Bundle bundle, String key) {
bundle.putSerializable(key, fav);
}
}

View file

@ -1,7 +1,6 @@
package net.osmand.plus.mapcontextmenu.details;
package net.osmand.plus.mapcontextmenu.controllers;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
@ -20,14 +19,9 @@ public class HistoryMenuController extends MenuController {
this.entry = entry;
}
@Override
protected int getInitialMenuStatePortrait() {
return MenuState.HEADER_ONLY;
}
@Override
protected int getSupportedMenuStatesPortrait() {
return MenuState.HEADER_ONLY | MenuState.HALF_SCREEN | MenuState.FULL_SCREEN;
return MenuState.HEADER_ONLY | MenuState.HALF_SCREEN;
}
@Override
@ -68,9 +62,4 @@ public class HistoryMenuController extends MenuController {
public boolean needStreetName() {
return !entry.getName().isAddress();
}
@Override
public void saveEntityState(Bundle bundle, String key) {
bundle.putSerializable(key, entry);
}
}

View file

@ -1,9 +1,7 @@
package net.osmand.plus.mapcontextmenu.details;
package net.osmand.plus.mapcontextmenu.controllers;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import net.osmand.data.LatLon;
import net.osmand.data.PointDescription;
import net.osmand.plus.ApplicationMode;
import net.osmand.plus.OsmandApplication;
@ -13,18 +11,11 @@ import net.osmand.plus.mapcontextmenu.MenuController;
public class MyLocationMenuController extends MenuController {
private LatLon latLon;
private PointDescription pointDescription;
public MyLocationMenuController(OsmandApplication app, MapActivity mapActivity, final PointDescription pointDescription, LatLon latLon) {
public MyLocationMenuController(OsmandApplication app, MapActivity mapActivity, final PointDescription pointDescription) {
super(new MenuBuilder(app), mapActivity);
this.pointDescription = pointDescription;
this.latLon = latLon;
}
@Override
protected int getInitialMenuStatePortrait() {
return MenuState.HEADER_ONLY;
}
@Override
@ -42,9 +33,4 @@ public class MyLocationMenuController extends MenuController {
public String getNameStr() {
return pointDescription.getTypeName();
}
@Override
public void saveEntityState(Bundle bundle, String key) {
bundle.putSerializable(key, latLon);
}
}

View file

@ -0,0 +1,68 @@
package net.osmand.plus.mapcontextmenu.controllers;
import android.graphics.drawable.Drawable;
import net.osmand.Location;
import net.osmand.plus.OsmAndFormatter;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.mapcontextmenu.MenuBuilder;
import net.osmand.plus.mapcontextmenu.MenuController;
import net.osmand.plus.osmo.OsMoGroupsStorage.OsMoDevice;
public class OsMoMenuController extends MenuController {
private OsMoDevice device;
public OsMoMenuController(OsmandApplication app, MapActivity mapActivity, final OsMoDevice device) {
super(new MenuBuilder(app), mapActivity);
this.device = device;
}
@Override
protected int getSupportedMenuStatesPortrait() {
return MenuState.HEADER_ONLY | MenuState.HALF_SCREEN;
}
@Override
public boolean needTypeStr() {
return true;
}
@Override
public Drawable getLeftIcon() {
if (isLight()) {
return getIconOrig(R.drawable.widget_osmo_connected_location_day);
} else {
return getIconOrig(R.drawable.widget_osmo_connected_location_night);
}
}
@Override
public String getNameStr() {
return device.getVisibleName();
}
@Override
public String getTypeStr() {
OsmandApplication app = getMapActivity().getMyApplication();
StringBuilder sb = new StringBuilder();
final Location l = device.getLastLocation();
if(l != null && l.hasSpeed()) {
sb.append(OsmAndFormatter.getFormattedSpeed(l.getSpeed(), app));
sb.append("");
}
Location myLocation = app.getLocationProvider().getLastKnownLocation();
if (myLocation != null) {
float dist = myLocation.distanceTo(l);
sb.append(OsmAndFormatter.getFormattedDistance(dist, app));
}
return sb.toString();
}
@Override
public boolean needStreetName() {
return false;
}
}

View file

@ -1,9 +1,7 @@
package net.osmand.plus.mapcontextmenu.details;
package net.osmand.plus.mapcontextmenu.controllers;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import net.osmand.data.LatLon;
import net.osmand.data.PointDescription;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin;
@ -14,17 +12,15 @@ import net.osmand.plus.mapcontextmenu.MenuController;
import net.osmand.plus.parkingpoint.ParkingPositionPlugin;
import net.osmand.util.Algorithms;
public class ParkingPositionController extends MenuController {
public class ParkingPositionMenuController extends MenuController {
private PointDescription pointDescription;
private LatLon latLon;
ParkingPositionPlugin plugin;
String parkingDescription = "";
public ParkingPositionController(OsmandApplication app, MapActivity mapActivity, final PointDescription pointDescription, LatLon latLon) {
public ParkingPositionMenuController(OsmandApplication app, MapActivity mapActivity, final PointDescription pointDescription) {
super(new MenuBuilder(app), mapActivity);
this.pointDescription = pointDescription;
this.latLon = latLon;
plugin = OsmandPlugin.getPlugin(ParkingPositionPlugin.class);
if (plugin != null) {
StringBuilder sb = new StringBuilder();
@ -35,11 +31,15 @@ public class ParkingPositionController extends MenuController {
}
parkingDescription = sb.toString();
}
}
@Override
protected int getInitialMenuStatePortrait() {
return MenuState.HEADER_ONLY;
titleButtonController = new TitleButtonController() {
@Override
public void buttonPressed() {
if (plugin != null) {
plugin.showDeleteDialog(getMapActivity());
}
}
};
titleButtonController.caption = getMapActivity().getString(R.string.osmand_parking_delete);
}
@Override
@ -67,30 +67,8 @@ public class ParkingPositionController extends MenuController {
return parkingDescription;
}
@Override
public boolean hasTitleButton() {
return true;
}
@Override
public String getTitleButtonCaption() {
return getMapActivity().getString(R.string.osmand_parking_delete);
}
@Override
public void titleButtonPressed() {
if (plugin != null) {
plugin.showDeleteDialog(getMapActivity());
}
}
@Override
public boolean needStreetName() {
return false;
}
@Override
public void saveEntityState(Bundle bundle, String key) {
bundle.putSerializable(key, latLon);
}
}

View file

@ -1,7 +1,6 @@
package net.osmand.plus.mapcontextmenu.details;
package net.osmand.plus.mapcontextmenu.controllers;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import net.osmand.data.PointDescription;
import net.osmand.plus.OsmandApplication;
@ -20,11 +19,6 @@ public class PointDescriptionMenuController extends MenuController {
this.pointDescription = pointDescription;
}
@Override
protected int getInitialMenuStatePortrait() {
return MenuState.HEADER_ONLY;
}
@Override
protected int getSupportedMenuStatesPortrait() {
return MenuState.HEADER_ONLY | MenuState.HALF_SCREEN | MenuState.FULL_SCREEN;
@ -36,6 +30,11 @@ public class PointDescriptionMenuController extends MenuController {
return (typeName != null && !typeName.isEmpty());
}
@Override
public boolean displayStreetNameinTitle() {
return true;
}
@Override
public Drawable getLeftIcon() {
return getIcon(SearchHistoryFragment.getItemIcon(pointDescription));
@ -68,8 +67,4 @@ public class PointDescriptionMenuController extends MenuController {
public boolean needStreetName() {
return !pointDescription.isAddress();
}
@Override
public void saveEntityState(Bundle bundle, String key) {
}
}

View file

@ -0,0 +1,79 @@
package net.osmand.plus.mapcontextmenu.controllers;
import android.graphics.drawable.Drawable;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.audionotes.AudioVideoNotesPlugin;
import net.osmand.plus.audionotes.AudioVideoNotesPlugin.Recording;
import net.osmand.plus.mapcontextmenu.MenuBuilder;
import net.osmand.plus.mapcontextmenu.MenuController;
import java.io.File;
import java.text.DateFormat;
import java.util.Date;
public class RecordingItemMenuController extends MenuController {
private Recording recording;
private DateFormat dateFormat;
private AudioVideoNotesPlugin plugin;
public RecordingItemMenuController(OsmandApplication app, MapActivity mapActivity, final Recording recording) {
super(new MenuBuilder(app), mapActivity);
this.recording = recording;
plugin = OsmandPlugin.getPlugin(AudioVideoNotesPlugin.class);
dateFormat = android.text.format.DateFormat.getMediumDateFormat(mapActivity);
titleButtonController = new TitleButtonController() {
@Override
public void buttonPressed() {
if (plugin != null) {
plugin.playRecording(getMapActivity(), recording);
}
}
};
if (!recording.isPhoto()) {
titleButtonController.caption = getMapActivity().getString(R.string.recording_context_menu_play);
titleButtonController.leftIconId = R.drawable.ic_play_dark;
String durationStr = recording.getPlainDuration();
titleButtonController.needRightText = true;
titleButtonController.rightTextCaption = "" + durationStr;
} else {
titleButtonController.caption = getMapActivity().getString(R.string.recording_context_menu_show);
}
}
@Override
protected int getSupportedMenuStatesPortrait() {
return MenuState.HEADER_ONLY | MenuState.HALF_SCREEN | MenuState.FULL_SCREEN;
}
@Override
public Drawable getLeftIcon() {
if (recording.isPhoto()) {
return getIcon(R.drawable.ic_action_photo_dark, R.color.osmand_orange_dark, R.color.osmand_orange);
} else if (recording.isAudio()) {
return getIcon(R.drawable.ic_action_micro_dark, R.color.osmand_orange_dark, R.color.osmand_orange);
} else {
return getIcon(R.drawable.ic_action_video_dark, R.color.osmand_orange_dark, R.color.osmand_orange);
}
}
@Override
public String getNameStr() {
File file = recording.getFile();
if (file != null) {
Date date = new Date(recording.getFile().lastModified());
return dateFormat.format(date);
} else {
return recording.getName(getMapActivity());
}
}
@Override
public boolean needStreetName() {
return false;
}
}

View file

@ -0,0 +1,85 @@
package net.osmand.plus.mapcontextmenu.controllers;
import android.graphics.drawable.Drawable;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
import net.osmand.plus.TargetPointsHelper;
import net.osmand.plus.TargetPointsHelper.TargetPoint;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.mapcontextmenu.MenuBuilder;
import net.osmand.plus.mapcontextmenu.MenuController;
public class TargetPointMenuController extends MenuController {
private TargetPoint targetPoint;
public TargetPointMenuController(OsmandApplication app, MapActivity mapActivity, final TargetPoint targetPoint) {
super(new MenuBuilder(app), mapActivity);
this.targetPoint = targetPoint;
titleButtonController = new TitleButtonController() {
@Override
public void buttonPressed() {
TargetPointsHelper targetPointsHelper = getMapActivity().getMyApplication().getTargetPointsHelper();
if(targetPoint.intermediate) {
targetPointsHelper.removeWayPoint(true, targetPoint.index);
} else {
targetPointsHelper.removeWayPoint(true, -1);
}
getMapActivity().getContextMenu().close();
}
};
titleButtonController.caption = getMapActivity().getString(R.string.delete_target_point);
}
@Override
protected int getSupportedMenuStatesPortrait() {
return MenuState.HEADER_ONLY | MenuState.HALF_SCREEN;
}
@Override
public boolean needTypeStr() {
return true;
}
@Override
public Drawable getLeftIcon() {
if (!targetPoint.intermediate) {
if (isLight()) {
return getIconOrig(R.drawable.widget_target_day);
} else {
return getIconOrig(R.drawable.widget_target_night);
}
} else {
if (isLight()) {
return getIconOrig(R.drawable.widget_intermediate_day);
} else {
return getIconOrig(R.drawable.widget_intermediate_night);
}
}
}
@Override
public String getNameStr() {
if (targetPoint.getOriginalPointDescription() != null) {
return targetPoint.getOriginalPointDescription().getSimpleName(getMapActivity(), false);
} else {
return targetPoint.getOnlyName();
}
}
@Override
public String getTypeStr() {
return targetPoint.getOnlyName();
}
@Override
public boolean displayStreetNameinTitle() {
return true;
}
@Override
public boolean needStreetName() {
return true;
}
}

View file

@ -6,7 +6,6 @@ import android.content.DialogInterface;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -156,7 +155,7 @@ public class FavoritePointEditorFragment extends PointEditorFragment {
PointDescription pointDescription = favorite.getPointDescription();
pointDescription.setLat(favorite.getLatitude());
pointDescription.setLon(favorite.getLongitude());
menu.refreshMenu(latLon, pointDescription, favorite);
menu.update(latLon, pointDescription, favorite);
}
}

View file

@ -1,13 +1,20 @@
package net.osmand.plus.osmo;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.concurrent.ConcurrentLinkedQueue;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Align;
import android.graphics.Paint.Cap;
import android.graphics.Paint.Join;
import android.graphics.Paint.Style;
import android.graphics.Path;
import android.graphics.PointF;
import android.os.Handler;
import android.util.DisplayMetrics;
import android.view.WindowManager;
import net.osmand.Location;
import net.osmand.access.AccessibleToast;
import net.osmand.data.LatLon;
import net.osmand.data.PointDescription;
import net.osmand.data.RotatedTileBox;
@ -25,20 +32,11 @@ import net.osmand.plus.views.OsmandMapLayer;
import net.osmand.plus.views.OsmandMapTileView;
import net.osmand.util.Algorithms;
import net.osmand.util.MapUtils;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Align;
import android.graphics.Paint.Cap;
import android.graphics.Paint.Join;
import android.graphics.Paint.Style;
import android.graphics.Path;
import android.graphics.PointF;
import android.os.Handler;
import android.util.DisplayMetrics;
import android.view.WindowManager;
import android.widget.Toast;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.concurrent.ConcurrentLinkedQueue;
/**
* Class represents a layer for osmo positions
@ -349,7 +347,8 @@ public class OsMoPositionLayer extends OsmandMapLayer implements ContextMenuLaye
ContextMenuLayer cl = map.getMapLayers().getContextMenuLayer();
final boolean sameObject;
if (map.getContextMenu().getObject() instanceof OsMoDevice && cl.isVisible()) {
sameObject = Algorithms.objectEquals(device.trackerId, ((OsMoDevice) map.getContextMenu().getObject()).trackerId);
sameObject = Algorithms.objectEquals(device.trackerId,
((OsMoDevice) map.getContextMenu().getObject()).trackerId);
} else {
sameObject = false;
}
@ -374,13 +373,14 @@ public class OsMoPositionLayer extends OsmandMapLayer implements ContextMenuLaye
schedule = false;
if (sameObject) {
Location l = device.getLastLocation();
map.getContextMenu().show(new LatLon(l.getLatitude(), l.getLongitude()), getObjectName(device), device);
//cl.setLocation(new LatLon(l.getLatitude(), l.getLongitude()), getObjectDescription(device));
//cl.setSelectedObject(device);
if (centered) {
map.getContextMenu().setMapCenter(loc);
}
map.getContextMenu().showOrUpdate(new LatLon(l.getLatitude(), l.getLongitude()),
getObjectName(device), device);
}
if (centered) {
map.getMapView().setLatLon(loc.getLatitude(),
loc.getLongitude());
map.getMapView().setLatLon(loc.getLatitude(), loc.getLongitude());
}
map.getMapView().refreshMap();
}

View file

@ -1,18 +1,5 @@
package net.osmand.plus.views;
import java.util.List;
import net.osmand.data.LatLon;
import net.osmand.data.PointDescription;
import net.osmand.data.QuadPoint;
import net.osmand.data.RotatedTileBox;
import net.osmand.plus.ContextMenuAdapter;
import net.osmand.plus.ContextMenuAdapter.OnContextMenuClick;
import net.osmand.plus.R;
import net.osmand.plus.TargetPointsHelper;
import net.osmand.plus.TargetPointsHelper.TargetPoint;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.views.ContextMenuLayer.IContextMenuProvider;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@ -21,7 +8,18 @@ import android.graphics.Paint;
import android.graphics.Paint.Align;
import android.graphics.Paint.Style;
import android.graphics.PointF;
import android.widget.ArrayAdapter;
import net.osmand.data.LatLon;
import net.osmand.data.PointDescription;
import net.osmand.data.QuadPoint;
import net.osmand.data.RotatedTileBox;
import net.osmand.plus.R;
import net.osmand.plus.TargetPointsHelper;
import net.osmand.plus.TargetPointsHelper.TargetPoint;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.views.ContextMenuLayer.IContextMenuProvider;
import java.util.List;
public class PointNavigationLayer extends OsmandMapLayer implements IContextMenuProvider {
protected final static int DIST_TO_SHOW = 80;
@ -216,32 +214,4 @@ public class PointNavigationLayer extends OsmandMapLayer implements IContextMenu
}
return null;
}
@Override
public void populateObjectContextMenu(Object o, ContextMenuAdapter adapter) {
if(o instanceof TargetPoint) {
final TargetPoint a = (TargetPoint) o;
OnContextMenuClick listener = new ContextMenuAdapter.OnContextMenuClick() {
@Override
public boolean onContextMenuClick(ArrayAdapter<?> adapter, int itemId, int pos, boolean isChecked) {
if (itemId == R.string.delete_target_point) {
TargetPointsHelper targetPointsHelper = map.getMyApplication().getTargetPointsHelper();
if(a.intermediate) {
targetPointsHelper.removeWayPoint(true, a.index);
} else {
targetPointsHelper.removeWayPoint(true, -1);
}
}
map.getContextMenu().close();
return true;
}
};
adapter.item(R.string.delete_target_point)
.iconColor( R.drawable.ic_action_remove_dark).listen(listener).reg();
}
}
}