merging
This commit is contained in:
commit
fe9b0189c1
39 changed files with 930 additions and 212 deletions
2
LICENSE
2
LICENSE
|
@ -4,6 +4,8 @@
|
|||
|
||||
The code in that repository is mainly covered by *GPLv3*, except some 3rd party libs and resources.
|
||||
ATTENTION: please be aware that some artwork has proprietary license.
|
||||
EXCEPTION of GPLv3 :
|
||||
* Publishing applications using the OsmAnd GPLv3 code to Google Play, Amazon Market or Apple Store should be done with written permission*
|
||||
|
||||
Main AUTHORS (more detailed list in AUTHORS):
|
||||
Victor Shcherb – all parts of the project, originator
|
||||
|
|
|
@ -170,10 +170,45 @@
|
|||
</intent-filter>
|
||||
<intent-filter>
|
||||
<data android:scheme="http" android:host="maps.google.com" />
|
||||
<data android:scheme="https" android:host="maps.google.com" />
|
||||
<data android:scheme="http" android:host="maps.yandex.ru" />
|
||||
<data android:scheme="https" android:host="maps.yandex.ru" />
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<data android:scheme="http" android:host="www.google.com" android:pathPrefix="/maps" />
|
||||
<data android:scheme="https" android:host="www.google.com" android:pathPrefix="/maps" />
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<data android:scheme="http" android:host="www.openstreetmap.org" />
|
||||
<data android:scheme="https" android:host="www.openstreetmap.org" />
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<data android:scheme="http" android:host="openstreetmap.de" android:pathPrefix="/karte" />
|
||||
<data android:scheme="https" android:host="openstreetmap.de" android:pathPrefix="/karte" />
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<data android:scheme="http" android:host="download.osmand.net" android:pathPrefix="/go" />
|
||||
<data android:scheme="http" android:host="download.osmand.net" android:pathPrefix="go" />
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
<category android:name="android.intent.category.APP_MAPS" />
|
||||
<category android:name="android.intent.category.CAR_MODE" />
|
||||
<category android:name="android.intent.category.CAR_DOCK" />
|
||||
<category android:name="android.intent.category.DESK_DOCK" />
|
||||
</intent-filter>
|
||||
<!-- requires read permission -->
|
||||
<!--
|
||||
<intent-filter android:label="OsmAnd">
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
<ImageButton android:id="@+id/all_points"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/more"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:visibility="gone"
|
||||
style="@style/Widget.Sherlock.ActionButton"
|
||||
|
@ -34,6 +35,7 @@
|
|||
<ImageButton android:id="@+id/info_close"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/close"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginRight="4dp"
|
||||
style="@style/Widget.Sherlock.ActionButton"
|
||||
|
|
|
@ -1454,7 +1454,7 @@
|
|||
<string name="select_gpx">Selecciona una traça GPX …</string>
|
||||
<string name="route_descr_select_destination">Selecciona un destí</string>
|
||||
<string name="route_descr_select_on_map">Selecciona al mapa …</string>
|
||||
<string name="route_descr_favorite">Preferida…</string>
|
||||
<string name="route_descr_favorite">Preferida …</string>
|
||||
<string name="route_preferences">Preferències de ruta</string>
|
||||
<string name="route_info">Informació de ruta</string>
|
||||
<string name="tip_recent_changes_1_3_t">Canvis a la 1.3:
|
||||
|
@ -1492,7 +1492,7 @@
|
|||
\n\t* Moltes millores a la Interfície d\'Usuari i correccions d\'usabilitat
|
||||
\n\t* Configuració de accessibilitat en la velocitat de pronuncia
|
||||
</string>
|
||||
<string name="index_item_nation_addresses">adreces del mateix país</string>
|
||||
<string name="index_item_nation_addresses">adreces per tot el país</string>
|
||||
<string name="index_item_world_altitude_correction">Correcció d\'altitud mundial</string>
|
||||
<string name="index_item_world_bitcoin_payments">Llocs amb pagament bitcoin al món</string>
|
||||
<string name="index_item_world_basemap">Mapa general del món</string>
|
||||
|
@ -1746,16 +1746,16 @@ La llista de països inclosos (bàsicament tot el món!): Afganistan, Albània,
|
|||
<string name="osmo_auto_send_locations_descr">Inici automàtic del registre de la traça i del enviament de les posicions tot just iniciar l\'aplicació</string>
|
||||
<string name="osmo_auto_send_locations">Inici automàtic del registre de la traça</string>
|
||||
<string name="osmo_tracker_id">Identificació personal del traçador</string>
|
||||
<string name="osmo_tracker_id_descr">Prem per veure o compartir la identificació del traçador Utilitzant la identificació del traçador altres dispositius connectats podran monitoritzar tots els moviments d\'aquest aparell. Per desconnectar seleccioni l\'opció Regenerar.</string>
|
||||
<string name="osmo_tracker_id_descr">Prem per veure o compartir la identificació del traçador. Utilitzant la identificació del traçador altres dispositius connectats podran monitoritzar tots els moviments d\'aquest aparell. Per desconnectar seleccioni l\'opció Regenerar.</string>
|
||||
<string name="osmo_session_token">Testimoni de la sessió: %1$s</string>
|
||||
<string name="osmo_auth_pending">S\'està esperant l\'autorització…</string>
|
||||
<string name="osmo_locations_sent">"%1$d ubicacions enviades (%2$d a la memòria intermèdia) "</string>
|
||||
<string name="osmo_conn_successfull">"S\'ha establert la connexió: %1$s "</string>
|
||||
<string name="osmo_mode_restart">Reinicia la sessió a OsMo</string>
|
||||
<string name="osmo_settings_debug">Informació de depuració</string>
|
||||
<string name="hours_ago">hores fa</string>
|
||||
<string name="minutes_ago">minuts fa</string>
|
||||
<string name="seconds_ago">segons fa</string>
|
||||
<string name="hours_ago">hores abans</string>
|
||||
<string name="minutes_ago">minuts abans</string>
|
||||
<string name="seconds_ago">segons abans</string>
|
||||
<string name="osmo_connect_to_device_name">Nom d\'usuari</string>
|
||||
<string name="osmo_connect_to_device_tracker_id">Identificador de la traça</string>
|
||||
<string name="osmo_connect_to_device">Enllaça amb el dispositiu</string>
|
||||
|
@ -1938,4 +1938,5 @@ La llista de països inclosos (bàsicament tot el món!): Afganistan, Albània,
|
|||
<string name="rendering_value_car_name">Cotxe</string>
|
||||
<string name="rendering_value_bicycle_name">Bicicleta</string>
|
||||
<string name="rendering_value_pedestrian_name">Vianant</string>
|
||||
<string name="more">Més…</string>
|
||||
</resources>
|
||||
|
|
|
@ -1481,7 +1481,7 @@ s často kladenými otázkami.</string>
|
|||
<string name="voice_pref_title">Hlas</string>
|
||||
<string name="always_center_position_on_map">Zobrazit pozici vždy uprostřed</string>
|
||||
<string name="osmo_plugin_name">OsMo</string>
|
||||
<string name="osmo_settings">OpenStreetMap Monitorování</string>
|
||||
<string name="osmo_settings">OpenStreetMap sledování</string>
|
||||
<string name="osmo_settings_descr">Konfigurovat sledování a nastavit osobní monitorovací kanál</string>
|
||||
<string name="osmo_settings_debug">Informace ladění</string>
|
||||
<string name="osmo_mode_restart">Restartovat OsMo relaci</string>
|
||||
|
@ -1533,7 +1533,7 @@ s často kladenými otázkami.</string>
|
|||
<string name="osmo_connect">Připojit k</string>
|
||||
<string name="osmo_create_group">Vytvořit skupinu</string>
|
||||
<string name="osmo_server_operation_failed">Chyba operace na serveru OsMo</string>
|
||||
<string name="osmo_activity">OpenStreetMap-Monitorování</string>
|
||||
<string name="osmo_activity">OpenStreetMap sledování</string>
|
||||
<string name="osmo_enable_tracker">Odesílat mé pozice</string>
|
||||
<string name="osmo_control">OsMo rychlý přístup</string>
|
||||
<string name="hours_ago">hodin dozadu</string>
|
||||
|
@ -1702,4 +1702,10 @@ s často kladenými otázkami.</string>
|
|||
<string name="av_camera_pic_size_descr">Vyberte velikost obrázku interního fotoaparátu</string>
|
||||
<string name="hide_all_waypoints">Odstranit všechny</string>
|
||||
<string name="announce_nearby_favorites">Oznamovat oblíbená místa v blízkosti</string>
|
||||
</resources>
|
||||
<string name="more">Více...</string>
|
||||
<string name="rendering_value_browse_map_name">Standardní</string>
|
||||
<string name="rendering_value_car_name">Automobil</string>
|
||||
<string name="rendering_value_bicycle_name">Jízdní kolo</string>
|
||||
<string name="rendering_value_pedestrian_name">Chodec</string>
|
||||
<string name="download_additional_maps">Stáhnout chybějící mapy %1$s (%2$d MB)?</string>
|
||||
</resources>
|
||||
|
|
|
@ -1753,7 +1753,7 @@ Afghanistan, Albanien, Algeriet, Andorra, Angola, Anguilla, Antigua og Barbuda,
|
|||
<string name="osmo_settings_descr">Konfigurer indstillinger for overvågning og opsætning af personlig overvågningskanal</string>
|
||||
<string name="osmo_plugin_description">"OpenStreetMap - avanceret live overvågning, se http://osmo.mobi. Spor andre enheder og bliv selv sporet. Opret anonyme grupper, del hinandens placering og kommuniker. Har forskellige indstillinger for session sporing eller permanent sporing. Anonyme grupper er begrænset til et antal dage og nogle funktioner, dvs der er ingen fjernkontrol og gruppeadministrator. Fuldt funktionelle grupper bør oprettes på hjemmesiden og kun registrerede brugere har adgang til dem. "</string>
|
||||
<string name="osmo_plugin_name">OsMo (avanceret live overvågning)</string>
|
||||
<string name="osmo_settings">OsMo OpenStreetMap overvågning (beta)</string>
|
||||
<string name="osmo_settings">OpenStreetMap overvågning</string>
|
||||
<string name="keep_informing_never">Aldrig</string>
|
||||
<string name="keep_informing_descr">Gentag navigationsinstruktioner med jævne mellemrum</string>
|
||||
<string name="keep_informing">Gentag navigationsinstruktioner</string>
|
||||
|
@ -1963,4 +1963,6 @@ Afghanistan, Albanien, Algeriet, Andorra, Angola, Anguilla, Antigua og Barbuda,
|
|||
<string name="rendering_value_bicycle_name">Cykel</string>
|
||||
<string name="rendering_value_pedestrian_name">Fodgænger</string>
|
||||
<string name="rendering_value_browse_map_name">Gennemse kort</string>
|
||||
<string name="more">Mere…</string>
|
||||
<string name="download_additional_maps">Hent manglende kort %1$s (%2$d MB)?</string>
|
||||
</resources>
|
||||
|
|
|
@ -78,7 +78,7 @@
|
|||
<string name="routing_settings_descr">Especifica opciones de navegación</string>
|
||||
<string name="global_settings">Opciones Globales</string>
|
||||
<string name="index_settings">Gestionar mapas</string>
|
||||
<string name="index_settings_descr">Descargue y gestione mapas sin conexión almacenados en su dispositivo</string>
|
||||
<string name="index_settings_descr">Descarga y gestiona mapas sin conexión almacenados en tu dispositivo</string>
|
||||
<string name="general_settings">Opciones Generales</string>
|
||||
<string name="general_settings_descr">Configura la presentación y otras opciones globales</string>
|
||||
<string name="global_app_settings">Opciones Globales de la aplicación</string>
|
||||
|
@ -360,7 +360,7 @@
|
|||
<string name="poi_filter_for_tourists">Para turistas</string>
|
||||
<string name="poi_filter_fuel">Gasolinera</string>
|
||||
<string name="poi_filter_namefinder">Namefinder en línea</string>
|
||||
<string name="reading_cached_tiles">Leyendo teselas en caché…</string>
|
||||
<string name="reading_cached_tiles">Leyendo teselas guardadas…</string>
|
||||
<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 >20km</string>
|
||||
|
@ -448,7 +448,7 @@
|
|||
<string name="export_fav">Exportar</string>
|
||||
<string name="error_occurred_loading_gpx">Ocurrió un error al cargar el GPX</string>
|
||||
<string name="send_report">Enviar informe</string>
|
||||
<string name="none_region_found">No hay datos descargados para las regiones en la tarjeta SD. Descargue las regiones de Internet.</string>
|
||||
<string name="none_region_found">No hay datos descargados para las regiones en la tarjeta SD. Descarga las regiones de Internet.</string>
|
||||
<string name="poi_namefinder_query_empty">Escriba información para buscar el PDI</string>
|
||||
<string name="any_poi">Cualquiera</string>
|
||||
<string name="layer_transport_route">Ruta de transporte</string>
|
||||
|
@ -617,7 +617,7 @@ Para poder usar muchas características de la aplicación necesitas algunos dato
|
|||
<string name="download_indexes">Descargar datos</string>
|
||||
<string name="use_online_routing_descr">Usa Internet para calcular la ruta</string>
|
||||
<string name="use_online_routing">Usar ruteo en línea</string>
|
||||
<string name="osm_settings_descr">Especifique las opciones de Openstreetmap.org (OSM) necesarias para envíos a OSM</string>
|
||||
<string name="osm_settings_descr">Especifica las opciones de Openstreetmap.org (OSM) necesarias para envíos a OSM</string>
|
||||
<string name="data_settings_descr">Especifica idioma, descarga/recarga de datos</string>
|
||||
<string name="data_settings">Datos</string>
|
||||
<string name="map_preferences_descr">Especificar opciones del mapa: fuente de datos, rotación, marcador de posición, orientación de pantalla</string>
|
||||
|
@ -655,7 +655,7 @@ Para poder usar muchas características de la aplicación necesitas algunos dato
|
|||
<string name="map_view_3d">Visión 3D del mapa</string>
|
||||
<string name="show_poi_over_map_description">Muestra PDI sobre el mapa (usando el último filtro seleccionado)</string>
|
||||
<string name="show_poi_over_map">Mostrar PDI</string>
|
||||
<string name="map_tile_source_descr">Elige la fuente del mapa de teselas online o de caché</string>
|
||||
<string name="map_tile_source_descr">Elige la fuente de teselas del mapa, online o guardadas</string>
|
||||
<string name="map_tile_source">Fuente de teselas de mapa</string>
|
||||
<string name="map_source">Fuente de mapa</string>
|
||||
<string name="use_internet">Usar Internet</string>
|
||||
|
@ -771,12 +771,12 @@ Para poder usar muchas características de la aplicación necesitas algunos dato
|
|||
<string name="map_online_data">Mapas Online (teselas)</string>
|
||||
<string name="map_online_data_descr">Usa mapas online (descarga y guarda teselas en la tarjeta SD)</string>
|
||||
<string name="online_map_settings">Mapas Online</string>
|
||||
<string name="online_map_settings_descr">Configurar fuentes de teselas de mapa online o guardadas</string>
|
||||
<string name="online_map_settings_descr">Configura fuentes de teselas de mapa online o guardadas</string>
|
||||
<string name="map_settings">Configuraciones de Mapa</string>
|
||||
<string name="map_settings_descr">Configurar la pantalla del mapa</string>
|
||||
<string name="osmand_rastermaps_plugin_description">Muestra opciones para configurar diversos mapas teselados, online o guardados, como mapa base o como mapa superpuesto / subyacente. Estos mapas también se pueden preparar offline y copiarlos en la carpeta de OsmAnd.</string>
|
||||
<string name="osmand_background_plugin_description">Muestra configuraciones para habilitar el seguimiento y la navegación en modo suspensión (pantalla apagada) activando periódicamente el dispositivo GPS.</string>
|
||||
<string name="osmand_accessibility_description">Mostrar configuraciones para características especiales de accesibilidad.</string>
|
||||
<string name="osmand_accessibility_description">Muestra configuraciones para características especiales de accesibilidad.</string>
|
||||
<string name="extra_settings">Configuraciones avanzadas</string>
|
||||
<string name="osmand_monitoring_description">Este agregado facilita el registro de sus excursiones a un fichero GPX o en directo usando un servicio web.</string>
|
||||
<string name="osmand_extra_settings_description">Muestra opciones para configuraciones avanzadas de mapa (como aumentar detalles del mapa) y algunas especificas de dispositivos.</string>
|
||||
|
@ -802,7 +802,7 @@ Para poder usar muchas características de la aplicación necesitas algunos dato
|
|||
<string name="gpx_visibility_txt">Visibilidad</string>
|
||||
<string name="gpx_tags_txt">Etiquetas</string>
|
||||
<string name="gpx_description_txt">Descripción</string>
|
||||
<string name="validate_gpx_upload_name_pwd">Por favor, especifique usuario y contraseña de OSM para subir ficheros GPX.</string>
|
||||
<string name="validate_gpx_upload_name_pwd">Por favor, especifica usuario y contraseña de OSM para subir ficheros GPX.</string>
|
||||
<string name="default_buttons_support">Soporte</string>
|
||||
<string name="support_new_features">Soporte de nuevas características</string>
|
||||
|
||||
|
@ -1410,18 +1410,17 @@ La lista de países incluídos (¡básicamente todo el mundo!): Afganistán, Alb
|
|||
\n\t* El estilo \'Vista de tour\', que contiene información detallada y adecuada para viajes y giras, incluyendo optimización para profesionales de la conducción (mayor contraste, carreteras distinguibles), opciones para ir de senderismo Alpino (escala SAC), rutas ciclistas, soporte para símbolos de senderismo, etc.
|
||||
\n\t* \'Carreteras de alto contraste\' muestra las carreteras en colores muy acentuados para situaciones con brillante iluminación ambiental
|
||||
\n\t* \'Invierno y esquí\' crea una vista del paisaje del invierno (nevado), y muestra pistas y remontes (en relación con la descarga del mapa \'Mundo de esquí\') "</string>
|
||||
<string name="tip_recent_changes_1_6_t">Cambios en 1.6:
|
||||
\n\t* Soporte de dispositivos Full HD
|
||||
\n\t* Soporte de fondo transparente
|
||||
\n\t* Descarga de mapas directamente mientras se visualiza
|
||||
\n\t* Curvas de nivel agrupados por país/región
|
||||
\n\t* Mapa mundial mejorado con vías principales, líneas de ferrocarril y bosques
|
||||
\n\t* Lupa (pulsación larga en el botón de zoom)
|
||||
\n\t* Permite definir y editar la fuente de teselas en línea (indicando fecha de caducidad)
|
||||
\n\t* Soporte de diferentes límites de velocidad en diferentes periodos (Paises Bajos)
|
||||
\n\t* Mejorada la búsqueda por dirección
|
||||
\n\t* Solucionados problemas con el cálculo de rutas y la visualización
|
||||
</string>
|
||||
<string name="tip_recent_changes_1_6_t">"Cambios en 1.6:
|
||||
\n\t* Soporte de dispositivos Full HD
|
||||
\n\t* Soporte de fondo transparente
|
||||
\n\t* Descarga de mapas directamente mientras se visualiza
|
||||
\n\t* Curvas de nivel agrupados por país/región
|
||||
\n\t* Mapa mundial mejorado con vías principales, líneas de ferrocarril y bosques
|
||||
\n\t* Lupa (pulsación larga en el botón de zoom)
|
||||
\n\t* Permite definir y editar la fuente de teselas en línea (indicando fecha de caducidad)
|
||||
\n\t* Soporte de diferentes límites de velocidad en diferentes periodos (Países Bajos)
|
||||
\n\t* Mejorada la búsqueda por dirección
|
||||
\n\t* Solucionados problemas con el cálculo de rutas y la visualización "</string>
|
||||
<string name="local_index_tile_data_zooms">Zooms descargados: %1$s</string>
|
||||
<string name="edit_tilesource_elliptic_tile">Mercator elíptica</string>
|
||||
<string name="map_widget_fps_info">Info depuración de FPS</string>
|
||||
|
@ -1639,7 +1638,7 @@ Afganistán, Albania, Alemania, Andorra, Angola, Anguila, Antigua y Barbuda, Ant
|
|||
<string name="osmo_settings_descr">Configurar opciones de monitorización y configurar canal de monitoreo</string>
|
||||
<string name="osmo_plugin_description">"OpenStreetMap-Monitoring - Monitorización avanzada en directo. Proporciona la posibilidad de seguir otros dispositivos y ser seguido. Crea grupos anónimos, comparte las localizaciones de cada uno y comuníquense. Tiene varias opciones para seguimiento por sesión o permanente. Los grupos anónimos están limitados a varios días y a algunas funcionalidades, p.e. no hay control remoto ni administrador de grupo. Los grupos completamente funcionales deben ser creados en la web y solo los usuarios registrados tienen acceso a ellos. Por favor, lee más en http://osmo.mobi. "</string>
|
||||
<string name="osmo_plugin_name">OsMo (Monitoreo avanzado en directo)</string>
|
||||
<string name="osmo_settings">OsMo OpenStreetMap Monitoring (beta)</string>
|
||||
<string name="osmo_settings">OpenStreetMap Monitoring</string>
|
||||
<string name="share_route_as_gpx">Compartir la ruta como archivo GPX</string>
|
||||
<string name="share_route_subject">Ruta compartida vía OsmAnd</string>
|
||||
<string name="navigation_intent_invalid">Formato inválido: %s</string>
|
||||
|
@ -1848,8 +1847,9 @@ Afganistán, Albania, Alemania, Andorra, Angola, Anguila, Antigua y Barbuda, Ant
|
|||
<string name="av_camera_pic_size">Tamaño de foto</string>
|
||||
<string name="av_camera_pic_size_descr">Selecciona el tamaño interno de la foto</string>
|
||||
<string name="announce_nearby_favorites">Anunciar favoritos cercanos</string>
|
||||
<string name="rendering_value_browse_map_name">Navegar en mapa</string>
|
||||
<string name="rendering_value_browse_map_name">Ver mapa</string>
|
||||
<string name="rendering_value_car_name">Coche</string>
|
||||
<string name="rendering_value_bicycle_name">Bicicleta</string>
|
||||
<string name="rendering_value_pedestrian_name">Peatón</string>
|
||||
<string name="more">Más...</string>
|
||||
</resources>
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1962,4 +1962,5 @@ Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestaz
|
|||
<string name="rendering_value_car_name">Automobile</string>
|
||||
<string name="rendering_value_bicycle_name">Bicicletta</string>
|
||||
<string name="rendering_value_pedestrian_name">Pedone</string>
|
||||
<string name="more">Altro...</string>
|
||||
</resources>
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
更新する(タイル)マップを選んでください</string>
|
||||
<string name="internet_not_available">操作に必要なインターネット接続が
|
||||
利用できません</string>
|
||||
<string name="install_more">インストールを続ける…</string>
|
||||
<string name="install_more">別のマップをインストールする…</string>
|
||||
|
||||
<string name="tip_update_index">オフラインマップの更新</string>
|
||||
<string name="tip_update_index_t">"最新のマップデータを持っていることは とても重要です。OsmAnd は利用できるオフラインデータの更新をチェックできる ダウンロードマネージャを提供しています。
|
||||
|
@ -725,7 +725,7 @@ POIの更新は利用できません</string>
|
|||
<string name="edit_tilesource_url_to_load">URL</string>
|
||||
<string name="edit_tilesource_choose_existing">既存のデータから選択…</string>
|
||||
<string name="edit_tilesource_name">名前</string>
|
||||
<string name="maps_define_edit">定義/編集…</string>
|
||||
<string name="maps_define_edit">マップの定義と編集…</string>
|
||||
<string name="map_widget_fps_info">FPS デバッグ情報</string>
|
||||
<string name="driving_region_descr">運転する地域の選択:米国、ヨーロッパ, イギリス, アジア, その他</string>
|
||||
<string name="driving_region">運転地域</string>
|
||||
|
@ -1064,10 +1064,10 @@ POIの更新は利用できません</string>
|
|||
<string name="download_link_and_local_description">オフラインマップをダウンロードしたり、更新するにはここをタップしてください。\n既存データの詳細を参照する場合はタップ、無効または削除するためにはロングタップ(長押し)して下さい。\nデバイスの空き容量(%1$s):</string>
|
||||
<string name="unknown_from_location">出発点は、まだ決定されていません</string>
|
||||
<string name="basemap_was_selected_to_download">ベースマップはアプリケーションを機能させるに必須なデータです、よってダウンロードすることが選択されます。</string>
|
||||
<string name="local_indexes_cat_tile">オンラインやタイルマップ</string>
|
||||
<string name="local_indexes_cat_tile">オンラインタイルマップを使用</string>
|
||||
<string name="local_indexes_cat_map">オフラインマップ(ベクター形式)</string>
|
||||
<string name="map_online_plugin_is_not_installed">別のマップソースを選択するためにオンライン地図プラグインを有効にする</string>
|
||||
<string name="map_online_data">オンラインやタイルマップ</string>
|
||||
<string name="map_online_data">オンラインタイルマップを使用</string>
|
||||
<string name="online_map_settings">オンラインマップ</string>
|
||||
<string name="online_map_settings_descr">オンラインまたはキャッシュされたタイルマップソースを設定</string>
|
||||
<string name="map_settings">マップ設定</string>
|
||||
|
|
|
@ -59,7 +59,7 @@
|
|||
|
||||
<string name="rendering_out_of_memory">선택 영역을 표시할 충분한 프로세스 메모리가 없습니다</string>
|
||||
<string name="use_fluorescent_overlays">형광색상 중첩(오버레이)</string>
|
||||
<string name="use_fluorescent_overlays_descr">트랙과 루트를 표시하기 위해 형광색상을 사용합니다</string>
|
||||
<string name="use_fluorescent_overlays_descr">트랙과 경로를 표시하기 위해 형광색상을 사용합니다</string>
|
||||
<string name="offline_edition">오프라인 편집</string>
|
||||
<string name="offline_edition_descr">오프라인 편집을 항상 사용합니다</string>
|
||||
|
||||
|
@ -607,7 +607,7 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
|
|||
|
||||
<string name="context_menu_item_search_poi">POI 검색</string>
|
||||
|
||||
<string name="use_trackball_descr">맵을 이동하는 데 트랙볼을 사용합니다</string>
|
||||
<string name="use_trackball_descr">지도를 이동하는데 트랙볼을 사용합니다</string>
|
||||
<string name="use_trackball">트랙볼 사용</string>
|
||||
<string name="background_service_wait_int_descr">위치를 찾는 최대 대기시간을 설정합니다</string>
|
||||
<string name="background_service_wait_int">최대 대기시간</string>
|
||||
|
@ -773,7 +773,7 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
|
|||
<string name="additional_settings">추가 설정</string>
|
||||
<string name="settings">설정</string>
|
||||
<string name="save_current_track_descr">현재의 GPX트랙을 SD 카드에 저장합니다</string>
|
||||
<string name="save_current_track">현재의 GPX트랙을 저장합니다</string>
|
||||
<string name="save_current_track">현재의 GPX트랙을 저장</string>
|
||||
<string name="save_track_interval_descr">GPX트랙을 저장하는 시간 주기를 선택합니다</string>
|
||||
<string name="save_track_interval">트랙로깅 간격</string>
|
||||
<string name="save_track_to_gpx_descrp">경로는 날짜 단위로 구분된 폴더에 저장됩니다</string>
|
||||
|
@ -1062,7 +1062,7 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
|
|||
<string name="lang_pt">포르투갈어</string>
|
||||
<string name="lang_sl">슬로베니아어</string>
|
||||
<string name="lang_cy">웨일스어</string>
|
||||
<string name="route_preferences">경로 선호도</string>
|
||||
<string name="route_preferences">경로 기본 설정</string>
|
||||
<string name="guidance_preferences_descr">경로탐색 선호도</string>
|
||||
<string name="disable_complex_routing_descr">자동차 경로탐색에 대한 2길 라우팅 사용불능</string>
|
||||
<string name="app_modes_choose_descr">앱에서 볼 수있는 사용자 프로필를 선택합니다</string>
|
||||
|
@ -1154,7 +1154,7 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
|
|||
\n\t* 지도 화면에서 좌상단 버튼는 메뉴버튼을 대체
|
||||
</string>
|
||||
<string name="monitoring_settings">로깅 서비스</string>
|
||||
<string name="monitoring_settings_descr">트랙을 기록하는 방법을 구성합니다</string>
|
||||
<string name="monitoring_settings_descr">여행을 기록하는 방법을 구성합니다</string>
|
||||
<string name="osmand_monitoring_plugin_description">절전모드(스크린 끄기)에서 트래킹 및 경로탐색 활성화, 주기적으로 GPS 장치가 작동중일 때 . 표시 설정은 로컬 GPX 파일이나 웹 서비스를 사용하는 온라인에 트랙을 기록하는 설비 가능.</string>
|
||||
<string name="osmand_monitoring_plugin_name">로깅 서비스</string>
|
||||
<string name="osmand_background_plugin_description">주기적으로 GPS 장치를 깨어 절전모드(스크린 끄기)에서 트래킹 및 경로탐색을 가능하게 하는 설정 표시.</string>
|
||||
|
@ -1610,10 +1610,10 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
|
|||
<string name="tip_recent_changes_1_7_1_t">"Changes in 1.7:
|
||||
\n\t* 중요한 지도는 2014년 2월 보다 새로운 지도 이어야 한다.
|
||||
\n\t* 완전히 업데이트된 길찾기(빠르고 정확하게).
|
||||
\n\t* 루트 플래닝에서 새로운 화면(더 직관적이고 더 강력하게).
|
||||
\n\t* 주의! GPS 루트파일은 루트 설정 버튼으로 이용할 수 있다.
|
||||
\n\t* 경로 플래닝에서 새로운 화면(더 직관적이고 더 강력하게).
|
||||
\n\t* 주의! GPS 경로파일은 경로설정 버튼으로 이용할 수 있다.
|
||||
\n\t* 길안내모드에서 자동 숨김 버튼.
|
||||
\n\t* GPX 루트파일의 첫 포인트에서 오프라인 루트를 계산.
|
||||
\n\t* GPX 경로파일의 첫 포인트에서 오프라인 경로를 계산.
|
||||
\n\t* 터널에서 시뮬레이션 활성화.
|
||||
\n\t* 많은 UX 개선 및 사용성 고정.
|
||||
\n\t* 음성 속도 접근성 설정. "</string>
|
||||
|
@ -1852,9 +1852,7 @@ Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Z
|
|||
[지도 소스] 아래에 미리 로드된 오프라인 벡터 지도를 사용하여 선택할 수 있다.
|
||||
OsmAnd 는 또한 사용자 지도를 지원한다.
|
||||
</string>
|
||||
<string name="tip_app_mode_t_v2">OsmAnd 는 다른 사용 사례에 대해 서로 다른 (사용자 정의) 애플리케이션 프로파일을 지원합니다.
|
||||
당신은 지도 화면 (아이콘 자동차, 자전거 또는 보행자 )의 왼쪽 하단 모서리에 있는 프로필 버튼을 통해 프로필을 변경하거나 루트(\'전송 모드\')을 만들 때 할 수 있습니다.
|
||||
</string>
|
||||
<string name="tip_app_mode_t_v2">"OsmAnd 는 다른 사용 사례에 대해 서로 다른 (사용자 정의) 앱 프로필을 지원합니다. 지도 화면 (아이콘 자동차, 자전거 또는 보행자 )의 왼쪽 하단 모서리에 있는 프로필 버튼을 통해 프로필을 변경하거나 경로(\'전송 모드\')을 만들 때 할 수 있습니다. "</string>
|
||||
<string name="tip_search_t">[위치사용->가까운 장소 검색] 메뉴를 통해서 지도에서 장소를 직접 검색할 수 있습니다. 또는 [메뉴->검색]을 통해서 화면에서 검색할 수 도 있습니다.
|
||||
\n\n검색화면은 검색을 위한 템플릿을 제공합니다
|
||||
\n\t* 주소로
|
||||
|
@ -1968,7 +1966,7 @@ Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Z
|
|||
<string name="my_favorites">내 즐겨찾기</string>
|
||||
<string name="my_data_Button">내 장소</string>
|
||||
<string name="my_data_activity">내 장소</string>
|
||||
<string name="gpx_info_subtracks">하위트랙 : %1$s </string>
|
||||
<string name="gpx_info_subtracks">"서브트랙 : %1$s "</string>
|
||||
<string name="gpx_info_distance">거리: %1$s (%2$s points) </string>
|
||||
<string name="gpx_info_start_time">시작 시간: %1$tF, %1$tR </string>
|
||||
<string name="gpx_info_end_time">종료 시간: %1$tF, %1$tR </string>
|
||||
|
@ -1982,7 +1980,8 @@ Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Z
|
|||
<string name="gpx_selection_number_of_points"> %1$s 포인트</string>
|
||||
<string name="gpx_selection_point">포인트 %1$s</string>
|
||||
<string name="gpx_selection_current_track">기록</string>
|
||||
<string name="gpx_selection_route_points">%1$s \n 루트 포인트 %2$s</string>
|
||||
<string name="gpx_selection_route_points">%1$s
|
||||
\n 경로 포인트 %2$s</string>
|
||||
<string name="gpx_selection_points">%1$s\n 포인트</string>
|
||||
<string name="gpx_selection_track">%1$s\n GPX트랙 %2$s</string>
|
||||
<string name="gpx_available_current_track">현재 기록중인 GPX트랙</string>
|
||||
|
@ -2011,7 +2010,7 @@ Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Z
|
|||
<string name="osmo_auth_error_short">인증 실패</string>
|
||||
<string name="osmo_auth_error">OsMo 인증 오류가 발생 했습니다: %1$s.\n임시로 서비스가 다운되었거나 또는 등록 만료가 되었습니다.\n신규 등록을 진행 하시겠습니까?</string>
|
||||
<string name="osmo_group_by_invite">메시지를 입력하세요</string>
|
||||
<string name="osmo_group_information_desc">" -모든 그룹은 공용입니다! 익명으로 하려면 트랙커 id 통해 직접 장치를 연결 합니다.\n -그룹는 16 명까지 등록 할 수 있습니다.\n -비활동적인 그룹이나 또는 2 주 동안 단 1 사람만 활동한 경우, 그룹는 삭제 됩니다.\n -컨트롤 그룹으로 그룹 입구를 제한할 수 있습니다. 관리 콘솔에 가는 것이 필요합니다.
|
||||
<string name="osmo_group_information_desc">" -모든 그룹은 공용입니다! 익명으로 하려면 트랙커 id 통해 직접 장치를 연결 합니다.\n -그룹는 16 명까지 등록 할 수 있습니다.\n -비활동적인 그룹이나 또는 2 주 동안 단 1 사람만 활동한 경우, 그룹는 삭제 됩니다.\n -컨트롤 그룹으로 그룹 입장을 제한할 수 있습니다. 관리 콘솔에 가는 것이 필요합니다.
|
||||
\n -그룹을 만들고 싶으면 http://osmo.mobi 에 접속하세요"</string>
|
||||
<string name="osmo_group_information">그룹을 만들기 전에 읽어 보시기 바랍니다!</string>
|
||||
<string name="osmo_not_signed_in">OsMo 로그인 실패</string>
|
||||
|
@ -2082,4 +2081,6 @@ Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Z
|
|||
<string name="rendering_value_car_name">자동차</string>
|
||||
<string name="rendering_value_bicycle_name">자전거</string>
|
||||
<string name="rendering_value_pedestrian_name">보행자</string>
|
||||
<string name="more">기타...</string>
|
||||
<string name="download_additional_maps">누락된 지도 %1$s (%2$d MB) 를 다운로드 할까요?</string>
|
||||
</resources>
|
||||
|
|
|
@ -1601,7 +1601,7 @@ OsmAnd yra aktyviai tobulinama ir mūsų projektas bei jo tolesnis progresas pri
|
|||
<string name="osmo_settings_descr">Konfigūruoti stebėjimo nustatymus ir nustatyti asmeninį stebėjimo kanalą</string>
|
||||
<string name="osmo_plugin_description">"OpenStreetMap-Monitoring - pažangus tiesioginis stebėjimas http://osmo.mobi. Suteikia daug galimybių būti stebimam ir stebėti kitus įrenginius. Susikurkite anonimines grupes, bendrinkite vienas kito vietą ir bendraukite. Ši paslauga turi įvairių nustatymų vienkartiniam ir pastoviam sekimui. Anoniminės grupės gyvuoja tik kelias dienas su ribotomis funkcijomis, t.y. nėra nuotolinio valdymo ar grupės administratoriaus. Viso funkcionalumo grupes galima susikurti interneto svetainėje ir tik registruoti vartotojai galės prie jų prieiti. "</string>
|
||||
<string name="osmo_plugin_name">OsMo (Pažangus tiesioginis stebėjimas)</string>
|
||||
<string name="osmo_settings">OsMo OpenStreetMap stebėjimas (beta)</string>
|
||||
<string name="osmo_settings">OpenStreetMap stebėjimas</string>
|
||||
<string name="keep_informing_never">Niekada</string>
|
||||
<string name="keep_informing_descr">Maršruto instrukcijas pakartotinai pranešinėti reguliariais intervalais</string>
|
||||
<string name="keep_informing">Pakartoti maršruto instrukcijas</string>
|
||||
|
@ -1813,4 +1813,6 @@ OsmAnd yra aktyviai tobulinama ir mūsų projektas bei jo tolesnis progresas pri
|
|||
<string name="rendering_value_car_name">Automobilis</string>
|
||||
<string name="rendering_value_bicycle_name">Dviratis</string>
|
||||
<string name="rendering_value_pedestrian_name">Pėstysis</string>
|
||||
<string name="more">Dar…</string>
|
||||
<string name="download_additional_maps">Atsiųsti trūkstamus žemėlapius %1$s (%2$d MB)?</string>
|
||||
</resources>
|
||||
|
|
|
@ -1726,7 +1726,7 @@ Afghanistan, Albanie, Algerije, Andorra, Angola, Anguilla, Antigua en Barbuda, A
|
|||
<string name="osmo_settings_descr">Configureer monitor instellingen en maak een persoonlijk monitor-kanaal</string>
|
||||
<string name="osmo_plugin_description">"Geavanceerde live monitoring - zie http://osmo.mobi. Volg andere toestellen en laat jezelf volgen. Maak anonieme groepen, deel je positie en communiceer. Er zijn verschillende instellingen voor het permanent of tijdelijk volgen. Anonieme groepen kunnen maar een beperkt aantal dagen gebruikt worden en zijn beperkt in de mogelijkheden: zoals het ontbreken van beheer op afstand en een groepsbeheerder. Volledig functionele groepen moeten worden aangemaakt op de website en alleen geregistreerde gebruikers kunnen ze gebruiken. "</string>
|
||||
<string name="osmo_plugin_name">OsMo (geavanceerde live monitoring)</string>
|
||||
<string name="osmo_settings">OsMo OpenStreetMap Monitoring (beta)</string>
|
||||
<string name="osmo_settings">OpenStreetMap Monitoring (OsMo)</string>
|
||||
<string name="keep_informing_never">Niet herhalen</string>
|
||||
<string name="keep_informing_descr">Herhaal de aanwijzingen regelmatig</string>
|
||||
<string name="keep_informing">Herhaal de aanwijzingen</string>
|
||||
|
@ -1944,4 +1944,5 @@ Afghanistan, Albanie, Algerije, Andorra, Angola, Anguilla, Antigua en Barbuda, A
|
|||
<string name="rendering_value_car_name">Auto</string>
|
||||
<string name="rendering_value_bicycle_name">Fiets</string>
|
||||
<string name="rendering_value_pedestrian_name">Voetganger</string>
|
||||
<string name="more">Meer…</string>
|
||||
</resources>
|
||||
|
|
|
@ -1636,7 +1636,7 @@ OsmAnd - открытый источник и активно развается.
|
|||
<string name="osmo_track_interval">Интервал отправки</string>
|
||||
<string name="osmo_group">Группа OsMo</string>
|
||||
<string name="osmo_track_interval_descr">Выберите временной интервал для отправки местоположения</string>
|
||||
<string name="osmo_activity">OpenStreetMap-Мониторинг</string>
|
||||
<string name="osmo_activity">OpenStreetMap Мониторинг</string>
|
||||
<string name="osmo_share_current_session">Поделиться текущей сессией в браузере</string>
|
||||
<string name="osmo_share_session">Поделиться сессией</string>
|
||||
<string name="osmo_session_id_share">URL сессии для отслеживания устройства (%1$s)</string>
|
||||
|
@ -1796,4 +1796,6 @@ OsmAnd - открытый источник и активно развается.
|
|||
<string name="rendering_value_car_name">Автомобиль</string>
|
||||
<string name="rendering_value_bicycle_name">Велосипед</string>
|
||||
<string name="rendering_value_pedestrian_name">Пешеход</string>
|
||||
<string name="download_additional_maps">Скачать недостающие карты %1$s (%2$d MB)?</string>
|
||||
<string name="more">Более...</string>
|
||||
</resources>
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1747,7 +1747,7 @@ Afganistan, Albánsko, Alžírsko, Andora, Angola, Anguilla, Antigua a Barbuda,
|
|||
<string name="osmo_settings_descr">Zmeniť nastavenia monitorovania a nastaviť osobný monitorovací kanál</string>
|
||||
<string name="osmo_plugin_description">"OpenStreetMap pokročilé sledovanie naživo, pozrite http://osmo.mobi. Ponúka možnosti sledovania iných zariadení a byť sledovaný. Vytvorte anonymné skupiny, zdieľajte vzájomne polohu a komunikujte. Rôzne možnosti nastavenia krátkodobého a dlhodobého sledovania. Anonymné skupiny sú obmedzené na počet dní a pre niektoré funkcie nie je diaľkové ovládanie ani administrátor skupiny. Plne funkčné skupiny sa vytvárajú na webstránke a sú prístupné len registrovaným používateľom. "</string>
|
||||
<string name="osmo_plugin_name">OsMo</string>
|
||||
<string name="osmo_settings">sledovanie OpenStreetMap</string>
|
||||
<string name="osmo_settings">OpenStreetMap sledovanie</string>
|
||||
<string name="keep_informing_never">Nikdy</string>
|
||||
<string name="keep_informing_descr">Opakuj navigačné pokyny v pravidelných intervaloch</string>
|
||||
<string name="keep_informing">Opakuj navigačné pokyny</string>
|
||||
|
@ -1965,4 +1965,6 @@ Afganistan, Albánsko, Alžírsko, Andora, Angola, Anguilla, Antigua a Barbuda,
|
|||
<string name="rendering_value_car_name">Automobil</string>
|
||||
<string name="rendering_value_bicycle_name">Bicykel</string>
|
||||
<string name="rendering_value_pedestrian_name">Chodec</string>
|
||||
<string name="download_additional_maps">Stiahnuť chýbajúce mapy %1$s (%2$d MB)?</string>
|
||||
<string name="more">Viac...</string>
|
||||
</resources>
|
||||
|
|
|
@ -1902,4 +1902,9 @@ Seznam držav (praktično ves svet!): Afganistan, Albanija, Alžirija, Andora, A
|
|||
<string name="av_camera_pic_size">Velikost fotografije</string>
|
||||
<string name="av_camera_pic_size_descr">Izberite velikost posnetkov vgrajenega fotoaparata</string>
|
||||
<string name="announce_nearby_favorites">Najavi bližino priljubljenih krajev</string>
|
||||
</resources>
|
||||
<string name="download_additional_maps">Prenos manjkajočih zemljevidov %1$s (%2$d MB)?</string>
|
||||
<string name="more">Več...</string>
|
||||
<string name="rendering_value_car_name">Avtomobil</string>
|
||||
<string name="rendering_value_bicycle_name">Kolo</string>
|
||||
<string name="rendering_value_pedestrian_name">Pešec</string>
|
||||
</resources>
|
||||
|
|
|
@ -1449,7 +1449,7 @@
|
|||
<string name="osmo_settings_uuid">Unikt enhets-id</string>
|
||||
<string name="osmo_settings_descr">Konfigurera inställningar för övervakning och ställ in personlig övervakningskanal</string>
|
||||
<string name="osmo_plugin_name">OSMo (Avancerad live-spårning)</string>
|
||||
<string name="osmo_settings">OSMo OpenStreetMap-övervakning (beta)</string>
|
||||
<string name="osmo_settings">OpenStreetMap-övervakning</string>
|
||||
<string name="osmo_plugin_description">"OpenStreetMap- avancerad direktspårning, se http://osmo.mobi. Spåra andra enheter och bli spårad själv. Skapa anonyma grupper, dela ut varandras platser och kommunicera. Det finns olika inställningar för sessionsspårning eller permanent spårning. Anonyma grupper är begränsade till ett antal dagar och för vissa funktioner finns ingen fjärrkontroll eller gruppadministratör. Helt fungerande grupper bör skapas på webbplatsen och endast registrerade användare har tillgång till dem. "</string>
|
||||
<string name="interrupt_music_descr">Avbryt musik vid meddelanden</string>
|
||||
<string name="interrupt_music">Avbryt musik</string>
|
||||
|
@ -1667,4 +1667,6 @@
|
|||
<string name="rendering_value_bicycle_name">Cykel</string>
|
||||
<string name="rendering_value_pedestrian_name">Fotgängare</string>
|
||||
<string name="rendering_value_browse_map_name">Titta på karta</string>
|
||||
<string name="more">Mer …</string>
|
||||
<string name="download_additional_maps">Ladda ner kartor som saknas %1$s (%2$d MB)?</string>
|
||||
</resources>
|
||||
|
|
|
@ -489,7 +489,7 @@
|
|||
<string name="local_index_items_backuped">%2$d 項中的 %1$d 項已順利停用。</string>
|
||||
<string name="local_index_items_deleted">%2$d 項中的 %1$d 項已順利刪除。</string>
|
||||
<string name="local_index_items_restored">%2$d 項中的 %1$d 項已順利啟動。</string>
|
||||
<string name="local_index_action_do">您即將 %1$s %2$s 項目,要繼續嗎?</string>
|
||||
<string name="local_index_action_do">您即將 %2$s 個項目 %1$s,要繼續嗎?</string>
|
||||
<string name="local_index_descr_title">管理地圖檔案</string>
|
||||
<string name="local_index_mi_restore">啟用</string>
|
||||
<string name="local_index_mi_backup">停用</string>
|
||||
|
@ -1729,9 +1729,9 @@ OsmAnd 是開放原始碼,而且正在積極的開發。應用程式從報告
|
|||
<string name="navigation_intent_invalid">無效的格式:%s</string>
|
||||
<string name="osmo_settings_uuid">專有的裝置 ID</string>
|
||||
<string name="osmo_plugin_name">OsMo (進階即時監視)</string>
|
||||
<string name="osmo_settings">OsMo OpenStreetMap 監視(測試版)</string>
|
||||
<string name="osmo_settings_descr">組態監視設定值和設定個人監視頻道</string>
|
||||
<string name="osmo_plugin_description">"OpenStreetMap 進階即時監視,跟蹤其它裝置並進行追蹤,請參閱 http://osmo.mobi。建立匿名群組,分享彼此的位置和交流。它具有各種設定用於連線階段追蹤或持續的追蹤。匿名群組是有限制天數和一些功能,也就是沒有遠端控制和群組管理員。完整的功能需在網站上建立群組,並且只有已註冊的使用者才能進入他們。 "</string>
|
||||
<string name="osmo_settings">OpenStreetMap 監控</string>
|
||||
<string name="osmo_settings_descr">組態監控設定值和安裝個人監控頻道</string>
|
||||
<string name="osmo_plugin_description">"OpenStreetMap 進階即時監控,跟蹤其它裝置並進行追蹤,請參閱 http://osmo.mobi。建立匿名群組,分享彼此的位置和交流。它具有各種設定用於連線階段追蹤或持續的追蹤。匿名群組是有限制天數和一些功能,也就是沒有遠端控制和群組管理員。完整的功能需在網站上建立群組,並且只有已註冊的使用者才能進入他們。 "</string>
|
||||
<string name="keep_informing_never">永不</string>
|
||||
<string name="keep_informing_descr">按照定期間隔重新通報導航指示</string>
|
||||
<string name="keep_informing">重複導航指示</string>
|
||||
|
@ -1943,4 +1943,6 @@ OsmAnd 是開放原始碼,而且正在積極的開發。應用程式從報告
|
|||
<string name="rendering_value_car_name">汽車</string>
|
||||
<string name="rendering_value_bicycle_name">自行車</string>
|
||||
<string name="rendering_value_pedestrian_name">步行</string>
|
||||
<string name="more">更多...</string>
|
||||
<string name="download_additional_maps">要下載缺少的地圖 %1$ s (%2$ d MB) 嗎?</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<resources>
|
||||
<string name="show_waypoint_information">About waypoint</string>
|
||||
<string name="sherpafy_public_access">Public access</string>
|
||||
<string name="start_new_stage">Do you want to interrupt current stage and start new ?</string>
|
||||
<string name="enter_access_code">Enter access code to see if you are entitled for a specific tour (optional)</string>
|
||||
<string name="enter_access_code">Enter access code for a specific tour (optional)</string>
|
||||
<string name="sherpafy_stage_tab_fav">Fav</string>
|
||||
<string name="sherpafy_stage_tab_target">Target</string>
|
||||
<string name="sherpafy_stage_tab_route">Route</string>
|
||||
|
|
|
@ -9,6 +9,8 @@
|
|||
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="download_additional_maps">Download missing maps %1$s (%2$d MB)?</string>
|
||||
<string name="more">More...</string>
|
||||
<string name="rendering_value_browse_map_name">Browse map</string>
|
||||
<string name="rendering_value_car_name">Car</string>
|
||||
<string name="rendering_value_bicycle_name">Bicycle</string>
|
||||
|
@ -201,7 +203,7 @@
|
|||
<string name="osmo_mode_off">Start OsMo session</string>
|
||||
<string name="osmo_settings_debug">Debug information</string>
|
||||
<string name="osmo_settings_descr">Configure monitoring settings and setup personal monitoring channel</string>
|
||||
<string name="osmo_settings">OsMo OpenStreetMap Monitoring (beta)</string>
|
||||
<string name="osmo_settings">OpenStreetMap Monitoring</string>
|
||||
<string name="osmo_plugin_description">OpenStreetMap advanced live monitoring, see http://osmo.mobi. Track other devices and be tracked.
|
||||
Create anonymous groups, share each other\'s location, and communicate. Has various settings for session tracking or permanent tracking.
|
||||
Anonymous groups are limited for a number of days and for some feature, i.e. there is no remote control and group administrator.
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
package net.osmand.access;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.view.MotionEvent;
|
||||
|
||||
import com.actionbarsherlock.app.SherlockActivity;
|
||||
import com.actionbarsherlock.app.SherlockFragmentActivity;
|
||||
|
||||
// Provide some additional accessibility means for activity view elements.
|
||||
//
|
||||
|
@ -11,7 +10,7 @@ import com.actionbarsherlock.app.SherlockActivity;
|
|||
// and then add view elements you wish to be accessible
|
||||
// to the accessibleContent list.
|
||||
//
|
||||
public class AccessibleActivity extends Activity implements AccessibleContent.Callback {
|
||||
public class AccessibleActivity extends SherlockFragmentActivity implements AccessibleContent.Callback {
|
||||
|
||||
// List of accessible views. Use accessibleContent.add(element)
|
||||
// to add element to it.
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
package net.osmand.plus;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import net.osmand.IProgress;
|
||||
import net.osmand.IndexConstants;
|
||||
import net.osmand.data.FavouritePoint;
|
||||
import net.osmand.data.LocationPoint;
|
||||
import net.osmand.plus.activities.DownloadIndexActivity;
|
||||
import net.osmand.plus.activities.FavouritesActivity;
|
||||
import net.osmand.plus.activities.LocalIndexesActivity;
|
||||
|
@ -15,12 +16,13 @@ import net.osmand.plus.activities.MapActivity;
|
|||
import net.osmand.plus.activities.PluginsActivity;
|
||||
import net.osmand.plus.activities.SettingsActivity;
|
||||
import net.osmand.plus.activities.search.SearchActivity;
|
||||
import net.osmand.plus.api.SettingsAPI;
|
||||
import net.osmand.plus.api.SettingsAPIImpl;
|
||||
import net.osmand.plus.download.DownloadActivityType;
|
||||
import net.osmand.plus.views.OsmandMapTileView;
|
||||
import android.app.Activity;
|
||||
import android.view.Window;
|
||||
import android.widget.ArrayAdapter;
|
||||
|
||||
import com.actionbarsherlock.app.ActionBar;
|
||||
import com.actionbarsherlock.app.ActionBar.OnNavigationListener;
|
||||
|
||||
public class OsmAndAppCustomization {
|
||||
|
||||
|
@ -107,4 +109,36 @@ public class OsmAndAppCustomization {
|
|||
public List<FavouritePoint> getFavorites() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getIndexesUrl() {
|
||||
return "http://"+IndexConstants.INDEX_DOWNLOAD_DOMAIN+"/get_indexes?gzip&" + Version.getVersionAsURLParam(app); //$NON-NLS-1$;
|
||||
}
|
||||
|
||||
public void preDownloadActivity(final DownloadIndexActivity da, final List<DownloadActivityType> downloadTypes, ActionBar actionBar ) {
|
||||
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
|
||||
ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(actionBar.getThemedContext(), R.layout.sherlock_spinner_item,
|
||||
toString(downloadTypes)
|
||||
);
|
||||
spinnerAdapter.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item);
|
||||
actionBar.setListNavigationCallbacks(spinnerAdapter, new OnNavigationListener() {
|
||||
|
||||
@Override
|
||||
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
|
||||
da.changeType(downloadTypes.get(itemPosition));
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private List<String> toString(List<DownloadActivityType> t) {
|
||||
ArrayList<String> items = new ArrayList<String>();
|
||||
for(DownloadActivityType ts : t) {
|
||||
items.add(ts.getString(app));
|
||||
}
|
||||
return items;
|
||||
}
|
||||
|
||||
public boolean showDownloadExtraActions() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@ import net.osmand.access.AccessibleAlertBuilder;
|
|||
import net.osmand.access.AccessibleToast;
|
||||
import net.osmand.plus.access.AccessibilityMode;
|
||||
import net.osmand.plus.activities.DayNightHelper;
|
||||
import net.osmand.plus.activities.DownloadIndexActivity;
|
||||
import net.osmand.plus.activities.MapActivity;
|
||||
import net.osmand.plus.activities.SavingTrackHelper;
|
||||
import net.osmand.plus.activities.SettingsActivity;
|
||||
|
@ -59,6 +60,7 @@ import android.graphics.drawable.BitmapDrawable;
|
|||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import android.support.v4.app.NavUtils;
|
||||
import android.text.format.DateFormat;
|
||||
import android.util.TypedValue;
|
||||
import android.view.accessibility.AccessibilityManager;
|
||||
|
@ -114,6 +116,8 @@ public class OsmandApplication extends Application {
|
|||
BRouterServiceConnection bRouterServiceConnection;
|
||||
|
||||
MapActivity mapActivity;
|
||||
DownloadIndexActivity downloadActivity;
|
||||
|
||||
@Override
|
||||
public void onCreate() {
|
||||
long timeToStart = System.currentTimeMillis();
|
||||
|
@ -476,8 +480,7 @@ public class OsmandApplication extends Application {
|
|||
|
||||
if (getNavigationService() == null) {
|
||||
fullExit();
|
||||
}
|
||||
else if (disableService) {
|
||||
} else if (disableService) {
|
||||
final Intent serviceIntent = new Intent(this, NavigationService.class);
|
||||
stopService(serviceIntent);
|
||||
|
||||
|
@ -862,4 +865,12 @@ public class OsmandApplication extends Application {
|
|||
public void setMapActivity(MapActivity mapActivity) {
|
||||
this.mapActivity = mapActivity;
|
||||
}
|
||||
|
||||
public void setDownloadActivity(DownloadIndexActivity downloadActivity) {
|
||||
this.downloadActivity = downloadActivity;
|
||||
}
|
||||
|
||||
public DownloadIndexActivity getDownloadActivity() {
|
||||
return downloadActivity;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1298,7 +1298,9 @@ public class OsmandSettings {
|
|||
|
||||
public final static String POINT_NAVIGATE_LAT = "point_navigate_lat"; //$NON-NLS-1$
|
||||
public final static String POINT_NAVIGATE_LON = "point_navigate_lon"; //$NON-NLS-1$
|
||||
public final static String POINT_NAVIGATE_ROUTE = "point_navigate_route"; //$NON-NLS-1$
|
||||
public final static String POINT_NAVIGATE_ROUTE = "point_navigate_route_int"; //$NON-NLS-1$
|
||||
public final static int NAVIGATE_CURRENT_GPX = 2;
|
||||
public final static int NAVIGATE = 1;
|
||||
public final static String POINT_NAVIGATE_DESCRIPTION = "point_navigate_description"; //$NON-NLS-1$
|
||||
public final static String START_POINT_LAT = "start_point_lat"; //$NON-NLS-1$
|
||||
public final static String START_POINT_LON = "start_point_lon"; //$NON-NLS-1$
|
||||
|
@ -1334,12 +1336,15 @@ public class OsmandSettings {
|
|||
}
|
||||
|
||||
|
||||
public boolean isRouteToPointNavigateAndClear(){
|
||||
boolean t = settingsAPI.contains(globalPreferences,POINT_NAVIGATE_ROUTE);
|
||||
settingsAPI.edit(globalPreferences).remove(POINT_NAVIGATE_ROUTE).commit();
|
||||
return t;
|
||||
public int isRouteToPointNavigateAndClear() {
|
||||
int vl = settingsAPI.getInt(globalPreferences, POINT_NAVIGATE_ROUTE, 0);
|
||||
if(vl != 0) {
|
||||
settingsAPI.edit(globalPreferences).remove(POINT_NAVIGATE_ROUTE).commit();
|
||||
}
|
||||
return vl;
|
||||
}
|
||||
|
||||
|
||||
public boolean clearIntermediatePoints() {
|
||||
return settingsAPI.edit(globalPreferences).remove(INTERMEDIATE_POINTS).remove(INTERMEDIATE_POINTS_DESCRIPTION).commit();
|
||||
}
|
||||
|
@ -1451,7 +1456,11 @@ public class OsmandSettings {
|
|||
public boolean navigateDialog() {
|
||||
return settingsAPI.edit(globalPreferences).putString(POINT_NAVIGATE_ROUTE, "true").commit();
|
||||
}
|
||||
|
||||
|
||||
public boolean navigateDialog(boolean gpx) {
|
||||
return settingsAPI.edit(globalPreferences).putInt(POINT_NAVIGATE_ROUTE, gpx ? NAVIGATE_CURRENT_GPX : NAVIGATE).commit();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* the location of a parked car
|
||||
|
|
|
@ -5,6 +5,7 @@ import java.io.File;
|
|||
import java.io.FilenameFilter;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -40,7 +41,6 @@ import android.os.Bundle;
|
|||
import android.text.Editable;
|
||||
import android.text.TextWatcher;
|
||||
import android.view.View;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.Button;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.EditText;
|
||||
|
@ -51,8 +51,6 @@ import android.widget.ProgressBar;
|
|||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.actionbarsherlock.app.ActionBar;
|
||||
import com.actionbarsherlock.app.ActionBar.OnNavigationListener;
|
||||
import com.actionbarsherlock.view.Menu;
|
||||
import com.actionbarsherlock.view.MenuItem;
|
||||
import com.actionbarsherlock.view.SubMenu;
|
||||
|
@ -69,7 +67,7 @@ public class DownloadIndexActivity extends OsmandExpandableListActivity {
|
|||
public static final String FILTER_KEY = "filter";
|
||||
public static final String FILTER_CAT = "filter_cat";
|
||||
|
||||
private static DownloadIndexesThread downloadListIndexThread;
|
||||
public static DownloadIndexesThread downloadListIndexThread;
|
||||
private DownloadActivityType type = DownloadActivityType.NORMAL_FILE;
|
||||
public static final int MAXIMUM_AVAILABLE_FREE_DOWNLOADS = 10;
|
||||
|
||||
|
@ -111,9 +109,8 @@ public class DownloadIndexActivity extends OsmandExpandableListActivity {
|
|||
makeSureUserCancelDownload();
|
||||
}
|
||||
});
|
||||
getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
|
||||
getSupportActionBar().setTitle(R.string.local_index_download);
|
||||
// recreation upon rotation is prevented in manifest file
|
||||
// recreation upon rotation is pgetaprevented in manifest file
|
||||
findViewById(R.id.DownloadButton).setOnClickListener(new View.OnClickListener(){
|
||||
|
||||
@Override
|
||||
|
@ -181,18 +178,7 @@ public class DownloadIndexActivity extends OsmandExpandableListActivity {
|
|||
showDialogOfFreeDownloadsIfNeeded();
|
||||
}
|
||||
|
||||
ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(getSupportActionBar().getThemedContext(), R.layout.sherlock_spinner_item,
|
||||
toString(downloadTypes)
|
||||
);
|
||||
spinnerAdapter.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item);
|
||||
getSupportActionBar().setListNavigationCallbacks(spinnerAdapter, new OnNavigationListener() {
|
||||
|
||||
@Override
|
||||
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
|
||||
changeType(downloadTypes.get(itemPosition));
|
||||
return true;
|
||||
}
|
||||
});
|
||||
getMyApplication().getAppCustomization().preDownloadActivity(this, downloadTypes, getSupportActionBar());
|
||||
if (Build.VERSION.SDK_INT >= OsmandSettings.VERSION_DEFAULTLOCATION_CHANGED) {
|
||||
final String currentStorage = settings.getExternalStorageDirectory().getAbsolutePath();
|
||||
String primaryStorage = settings.getDefaultExternalStorageLocation();
|
||||
|
@ -249,6 +235,7 @@ public class DownloadIndexActivity extends OsmandExpandableListActivity {
|
|||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
getMyApplication().setDownloadActivity(this);
|
||||
BasicProgressAsyncTask<?, ?, ?> t = downloadListIndexThread.getCurrentRunningTask();
|
||||
updateProgress(false);
|
||||
if(t instanceof DownloadIndexesThread.DownloadIndexesAsyncTask) {
|
||||
|
@ -258,6 +245,47 @@ public class DownloadIndexActivity extends OsmandExpandableListActivity {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
getMyApplication().setDownloadActivity(null);
|
||||
}
|
||||
|
||||
public void showDialogToDownloadMaps(Collection<String> maps) {
|
||||
int count = 0;
|
||||
int sz = 0;
|
||||
String s = "";
|
||||
for (IndexItem i : downloadListIndexThread.getCachedIndexFiles()) {
|
||||
for (String map : maps) {
|
||||
if (i.getFileName().equals(map + ".obf.zip") && i.getType() == DownloadActivityType.NORMAL_FILE) {
|
||||
final List<DownloadEntry> de = i.createDownloadEntry(getMyApplication(), i.getType(), new ArrayList<DownloadEntry>(1));
|
||||
for(DownloadEntry d : de ) {
|
||||
count++;
|
||||
sz += d.sizeMB;
|
||||
}
|
||||
if(s.length() > 0) {
|
||||
s +=", ";
|
||||
}
|
||||
s += i.getVisibleName(getMyApplication(), getMyApplication().getResourceManager().getOsmandRegions());
|
||||
getEntriesToDownload().put(i, de);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(count > 0){
|
||||
Builder builder = new AlertDialog.Builder(this);
|
||||
builder.setMessage(getString(R.string.download_additional_maps, s, sz));
|
||||
builder.setPositiveButton(R.string.default_buttons_yes, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
downloadFilesCheckInternet();
|
||||
}
|
||||
});
|
||||
builder.setNegativeButton(R.string.default_buttons_no, null);
|
||||
builder.show();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void showDialogOfFreeDownloadsIfNeeded() {
|
||||
|
@ -306,14 +334,17 @@ public class DownloadIndexActivity extends OsmandExpandableListActivity {
|
|||
}
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
SubMenu s = menu.addSubMenu(0, MORE_ID, 0, R.string.default_buttons_other_actions);
|
||||
s.add(0, RELOAD_ID, 0, R.string.update_downlod_list);
|
||||
s.add(0, FILTER_EXISTING_REGIONS, 0, R.string.filter_existing_indexes);
|
||||
s.add(0, SELECT_ALL_ID, 0, R.string.select_all);
|
||||
s.add(0, DESELECT_ALL_ID, 0, R.string.deselect_all);
|
||||
|
||||
s.setIcon(isLightActionBar() ? R.drawable.abs__ic_menu_moreoverflow_holo_light : R.drawable.abs__ic_menu_moreoverflow_holo_dark);
|
||||
s.getItem().setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
|
||||
if (getMyApplication().getAppCustomization().showDownloadExtraActions()) {
|
||||
SubMenu s = menu.addSubMenu(0, MORE_ID, 0, R.string.default_buttons_other_actions);
|
||||
s.add(0, RELOAD_ID, 0, R.string.update_downlod_list);
|
||||
s.add(0, FILTER_EXISTING_REGIONS, 0, R.string.filter_existing_indexes);
|
||||
s.add(0, SELECT_ALL_ID, 0, R.string.select_all);
|
||||
s.add(0, DESELECT_ALL_ID, 0, R.string.deselect_all);
|
||||
|
||||
s.setIcon(isLightActionBar() ? R.drawable.abs__ic_menu_moreoverflow_holo_light
|
||||
: R.drawable.abs__ic_menu_moreoverflow_holo_dark);
|
||||
s.getItem().setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
|
||||
}
|
||||
return super.onCreateOptionsMenu(menu);
|
||||
}
|
||||
|
||||
|
@ -412,13 +443,6 @@ public class DownloadIndexActivity extends OsmandExpandableListActivity {
|
|||
}
|
||||
|
||||
|
||||
private List<String> toString(List<DownloadActivityType> t) {
|
||||
ArrayList<String> items = new ArrayList<String>();
|
||||
for(DownloadActivityType ts : t) {
|
||||
items.add(ts.getString(getMyApplication()));
|
||||
}
|
||||
return items;
|
||||
}
|
||||
|
||||
private List<DownloadActivityType> getDownloadTypes() {
|
||||
List<DownloadActivityType> items = new ArrayList<DownloadActivityType>();
|
||||
|
|
|
@ -195,13 +195,6 @@ public class MainMenuActivity extends Activity {
|
|||
protected void onCreate(Bundle savedInstanceState) {
|
||||
getMyApplication().applyTheme(this);
|
||||
super.onCreate(savedInstanceState);
|
||||
if(Version.isSherpafy(getMyApplication())) {
|
||||
final Intent mapIntent = new Intent(this, TourViewActivity.class);
|
||||
startActivity(mapIntent);
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
|
||||
if(getIntent() != null){
|
||||
Intent intent = getIntent();
|
||||
if(intent.getExtras() != null && intent.getExtras().containsKey(APP_EXIT_KEY)){
|
||||
|
@ -209,6 +202,12 @@ public class MainMenuActivity extends Activity {
|
|||
return;
|
||||
}
|
||||
}
|
||||
if(Version.isSherpafy(getMyApplication())) {
|
||||
final Intent mapIntent = new Intent(this, TourViewActivity.class);
|
||||
startActivity(mapIntent);
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
|
||||
requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||
setContentView(R.layout.menu);
|
||||
|
|
|
@ -235,7 +235,7 @@ public class MapActivity extends AccessibleActivity {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Object onRetainNonConfigurationInstance() {
|
||||
public Object onRetainCustomNonConfigurationInstance() {
|
||||
LinkedHashMap<String, Object> l = new LinkedHashMap<String, Object>();
|
||||
for(OsmandMapLayer ml : mapView.getLayers() ) {
|
||||
ml.onRetainNonConfigurationInstance(l);
|
||||
|
@ -309,12 +309,13 @@ public class MapActivity extends AccessibleActivity {
|
|||
LatLon latLonToShow = settings.getAndClearMapLocationToShow();
|
||||
String mapLabelToShow = settings.getAndClearMapLabelToShow();
|
||||
Object toShow = settings.getAndClearObjectToShow();
|
||||
if(settings.isRouteToPointNavigateAndClear()){
|
||||
int status = settings.isRouteToPointNavigateAndClear();
|
||||
if(status != 0){
|
||||
// always enable and follow and let calculate it (i.e.GPS is not accessible in a garage)
|
||||
Location loc = new Location("map");
|
||||
loc.setLatitude(mapView.getLatitude());
|
||||
loc.setLongitude(mapView.getLongitude());
|
||||
getMapActions().enterRoutePlanningMode(null, null);
|
||||
getMapActions().enterRoutePlanningMode(null, null, status == OsmandSettings.NAVIGATE_CURRENT_GPX);
|
||||
}
|
||||
if(mapLabelToShow != null && latLonToShow != null){
|
||||
mapLayers.getContextMenuLayer().setSelectedObject(toShow);
|
||||
|
@ -351,7 +352,7 @@ public class MapActivity extends AccessibleActivity {
|
|||
final double lon = Double.valueOf(matcher.group(2));
|
||||
|
||||
getMyApplication().getTargetPointsHelper().navigateToPoint(new LatLon(lat, lon), false, -1);
|
||||
getMapActions().enterRoutePlanningMode(null, null);
|
||||
getMapActions().enterRoutePlanningMode(null, null, false);
|
||||
} catch (NumberFormatException e) {
|
||||
AccessibleToast.makeText(this, getString(R.string.navigation_intent_invalid, schemeSpecificPart), Toast.LENGTH_LONG).show(); //$NON-NLS-1$
|
||||
}
|
||||
|
|
|
@ -525,10 +525,10 @@ public class MapActivityActions implements DialogProvider {
|
|||
} else if (standardId == R.string.context_menu_item_directions_to) {
|
||||
String name = mapActivity.getMapLayers().getContextMenuLayer().getSelectedObjectName();
|
||||
targets.navigateToPoint(new LatLon(latitude, longitude), true, -1, name);
|
||||
enterRoutePlanningMode(null, null);
|
||||
enterRoutePlanningMode(null, null, false);
|
||||
} else if (standardId == R.string.context_menu_item_directions_from) {
|
||||
String name = mapActivity.getMapLayers().getContextMenuLayer().getSelectedObjectName();
|
||||
enterRoutePlanningMode(new LatLon(latitude, longitude), name);
|
||||
enterRoutePlanningMode(new LatLon(latitude, longitude), name, false);
|
||||
} else if (standardId == R.string.context_menu_item_intermediate_point ||
|
||||
standardId == R.string.context_menu_item_destination_point) {
|
||||
boolean dest = standardId == R.string.context_menu_item_destination_point;
|
||||
|
@ -580,20 +580,21 @@ public class MapActivityActions implements DialogProvider {
|
|||
}
|
||||
}
|
||||
|
||||
public void enterRoutePlanningMode(final LatLon from, final String fromName) {
|
||||
List<SelectedGpxFile> selectedGPXFiles = mapActivity.getMyApplication().getSelectedGpxHelper().getSelectedGPXFiles();
|
||||
public void enterRoutePlanningMode(final LatLon from, final String fromName, boolean useCurrentGPX) {
|
||||
List<SelectedGpxFile> selectedGPXFiles = mapActivity.getMyApplication().getSelectedGpxHelper()
|
||||
.getSelectedGPXFiles();
|
||||
GPXFile gpxFile = null;
|
||||
for (SelectedGpxFile gs : selectedGPXFiles) {
|
||||
if (!gs.isShowCurrentTrack() &&
|
||||
!gs.notShowNavigationDialog) {
|
||||
if(gs.getGpxFile().hasRtePt() || gs.getGpxFile().hasTrkpt()) {
|
||||
if (!gs.isShowCurrentTrack() && !gs.notShowNavigationDialog) {
|
||||
if (gs.getGpxFile().hasRtePt() || gs.getGpxFile().hasTrkpt()) {
|
||||
gpxFile = gs.getGpxFile();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(gpxFile != null) {
|
||||
final GPXFile f = gpxFile;
|
||||
final GPXFile f = gpxFile;
|
||||
if (gpxFile != null && !useCurrentGPX) {
|
||||
|
||||
Builder bld = new AlertDialog.Builder(mapActivity);
|
||||
bld.setMessage(R.string.use_displayed_track_for_navigation);
|
||||
bld.setPositiveButton(R.string.default_buttons_yes, new DialogInterface.OnClickListener() {
|
||||
|
@ -610,7 +611,7 @@ public class MapActivityActions implements DialogProvider {
|
|||
});
|
||||
bld.show();
|
||||
} else {
|
||||
enterRoutePlanningModeImpl(null, from, fromName);
|
||||
enterRoutePlanningModeImpl(useCurrentGPX ? f : null, from, fromName);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -803,7 +804,7 @@ public class MapActivityActions implements DialogProvider {
|
|||
.listen(new OnContextMenuClick() {
|
||||
@Override
|
||||
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||
enterRoutePlanningMode(null, null);
|
||||
enterRoutePlanningMode(null, null, false);
|
||||
}
|
||||
}).reg();
|
||||
} else if(routingHelper.isRouteCalculated()) {
|
||||
|
|
|
@ -239,8 +239,127 @@ public class GeoIntentActivity extends OsmandListActivity {
|
|||
*/
|
||||
private MyService extract(final String scheme, final Uri data)
|
||||
{
|
||||
if ("http".equals(scheme))
|
||||
{
|
||||
if ("http".equals(scheme) || "https".equals(scheme)) {
|
||||
|
||||
final String schemeSpecific = data.getSchemeSpecificPart();
|
||||
|
||||
if (schemeSpecific == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
final String[] osmandNetSite = {
|
||||
"//download.osmand.net/go?"
|
||||
};
|
||||
|
||||
final String[] osmandNetPattern = {
|
||||
"lat=(-?\\d{1,3}.\\d+)&lon=(-?\\d{1,3}.\\d+)&z=(\\d{1,2})"
|
||||
};
|
||||
|
||||
final String[] openstreetmapOrgSite = {
|
||||
"//openstreetmap.org/",
|
||||
"//www.openstreetmap.org/"
|
||||
};
|
||||
|
||||
final String[] openstreetmapOrgPattern = {
|
||||
"(?:.*)(?:map=)(\\d{1,2})/(-?\\d{1,3}.\\d+)/(-?\\d{1,3}.\\d+)(?:.*)"
|
||||
};
|
||||
|
||||
final String[] openstreetmapDeSite = {
|
||||
"//openstreetmap.de/",
|
||||
"//www.openstreetmap.de/"
|
||||
};
|
||||
|
||||
final String[] openstreetmapDePattern = {
|
||||
"(?:.*)zoom=(\\d{1,2})&lat=(-?\\d{1,3}.\\d+)&lon=(-?\\d{1,3}.\\d+)(?:.*)",
|
||||
"(?:.*)lat=(-?\\d{1,3}.\\d+)&lon=(-?\\d{1,3}.\\d+)&z(?:oom)?=(\\d{1,2})(?:.*)"
|
||||
};
|
||||
|
||||
final String[] googleComSite = {
|
||||
"//www.google.com/maps/",
|
||||
"//maps.google.com/maps"
|
||||
};
|
||||
|
||||
final String[] googleComPattern = {
|
||||
"(?:.*)@(-?\\d{1,3}.\\d+),(-?\\d{1,3}.\\d+),(\\d{1,2})z(?:.*)",
|
||||
"(?:.*)ll=(-?\\d{1,3}.\\d+),(-?\\d{1,3}.\\d+)(?:.+)z=(\\d{1,2})(?:.*)",
|
||||
"(?:.*)q=([\\-+]?\\d{1,3}.\\d+),([\\-+]?\\d{1,3}.\\d+)(?:.*)&z=(\\d{1,2})",
|
||||
"(?:.*)q=loc:(-?\\d{1,3}.\\d+),(-?\\d{1,3}.\\d+)&z=(\\d{1,2})(?:.*)"
|
||||
};
|
||||
|
||||
final String[] yandexRuSite = {
|
||||
"//maps.yandex.ru/"
|
||||
};
|
||||
|
||||
final String[] yandexRuPattern = {
|
||||
"(?:.*)ll=(-?\\d{1,3}.\\d+),(-?\\d{1,3}.\\d+)(?:.+)z=(\\d{1,2})(?:.*)"
|
||||
};
|
||||
|
||||
final String sites[][] = {
|
||||
osmandNetSite,
|
||||
openstreetmapOrgSite,
|
||||
openstreetmapDeSite,
|
||||
googleComSite,
|
||||
yandexRuSite
|
||||
};
|
||||
|
||||
final String patterns[][] = {
|
||||
osmandNetPattern,
|
||||
openstreetmapOrgPattern,
|
||||
openstreetmapDePattern,
|
||||
googleComPattern,
|
||||
yandexRuPattern
|
||||
};
|
||||
|
||||
for (int s = 0; s < sites.length; s++)
|
||||
{
|
||||
for (int si = 0; si < sites[s].length; si++)
|
||||
{
|
||||
if (schemeSpecific.startsWith(sites[s][si])) {
|
||||
for (int p = 0; p < patterns[s].length; p++)
|
||||
{
|
||||
String subString = schemeSpecific.substring(sites[s][si].length());
|
||||
|
||||
if (subString.equals(""))
|
||||
{
|
||||
subString = data.getFragment();
|
||||
}
|
||||
|
||||
final Matcher matcher = Pattern.compile(patterns[s][p]).matcher(subString);
|
||||
|
||||
if (matcher.matches()) {
|
||||
try {
|
||||
|
||||
final double lat;
|
||||
final double lon;
|
||||
final int zoom;
|
||||
|
||||
//check sequence of values
|
||||
if (!matcher.group(3).contains("."))
|
||||
{
|
||||
lat = Double.valueOf(matcher.group(1));
|
||||
lon = Double.valueOf(matcher.group(2));
|
||||
zoom = Integer.valueOf(matcher.group(3));
|
||||
}
|
||||
else
|
||||
{
|
||||
zoom = Integer.valueOf(matcher.group(1));
|
||||
lat = Double.valueOf(matcher.group(2));
|
||||
lon = Double.valueOf(matcher.group(3));
|
||||
}
|
||||
|
||||
return new GeoPointSearch(lat, lon, zoom);
|
||||
}
|
||||
catch (NumberFormatException e)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
String q = null;
|
||||
String parameter = data.getQueryParameter("q");
|
||||
if (parameter == null)
|
||||
|
|
|
@ -68,6 +68,10 @@ public class DownloadIndexesThread {
|
|||
dateFormat = app.getResourceManager().getDateFormat();
|
||||
}
|
||||
|
||||
public void clear() {
|
||||
indexFiles = null;
|
||||
}
|
||||
|
||||
public void setUiActivity(DownloadIndexActivity uiActivity) {
|
||||
this.uiActivity = uiActivity;
|
||||
}
|
||||
|
@ -273,14 +277,13 @@ public class DownloadIndexesThread {
|
|||
|
||||
private String reindexFiles(List<File> filesToReindex) {
|
||||
boolean vectorMapsToReindex = false;
|
||||
// reindex vector maps all at one time
|
||||
ResourceManager manager = app.getResourceManager();
|
||||
for (File f : filesToReindex) {
|
||||
if (f.getName().endsWith(IndexConstants.BINARY_MAP_INDEX_EXT)) {
|
||||
vectorMapsToReindex = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
// reindex vector maps all at one time
|
||||
ResourceManager manager = app.getResourceManager();
|
||||
List<String> warnings = new ArrayList<String>();
|
||||
manager.indexVoiceFiles(this);
|
||||
if (vectorMapsToReindex) {
|
||||
|
|
|
@ -4,8 +4,6 @@ import java.io.File;
|
|||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.URL;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -16,8 +14,6 @@ import net.osmand.IndexConstants;
|
|||
import net.osmand.PlatformUtil;
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.OsmandSettings;
|
||||
import net.osmand.plus.Version;
|
||||
import net.osmand.plus.sherpafy.TourDownloadType;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
|
@ -29,7 +25,6 @@ import android.content.pm.ApplicationInfo;
|
|||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.PackageManager.NameNotFoundException;
|
||||
import android.content.res.AssetManager;
|
||||
import android.text.format.DateFormat;
|
||||
|
||||
public class DownloadOsmandIndexesHelper {
|
||||
private final static Log log = PlatformUtil.getLog(DownloadOsmandIndexesHelper.class);
|
||||
|
@ -38,8 +33,7 @@ public class DownloadOsmandIndexesHelper {
|
|||
public static IndexFileList getIndexesList(Context ctx) {
|
||||
PackageManager pm =ctx.getPackageManager();
|
||||
AssetManager amanager = ctx.getAssets();
|
||||
String versionUrlParam = Version.getVersionAsURLParam(((OsmandApplication) ctx.getApplicationContext()));
|
||||
IndexFileList result = downloadIndexesListFromInternet(ctx, versionUrlParam);
|
||||
IndexFileList result = downloadIndexesListFromInternet((OsmandApplication) ctx.getApplicationContext());
|
||||
if (result == null) {
|
||||
result = new IndexFileList();
|
||||
} else {
|
||||
|
@ -115,12 +109,13 @@ public class DownloadOsmandIndexesHelper {
|
|||
}
|
||||
|
||||
|
||||
private static IndexFileList downloadIndexesListFromInternet(Context ctx, String versionAsUrl){
|
||||
private static IndexFileList downloadIndexesListFromInternet(OsmandApplication ctx){
|
||||
try {
|
||||
IndexFileList result = new IndexFileList();
|
||||
log.debug("Start loading list of index files"); //$NON-NLS-1$
|
||||
try {
|
||||
String strUrl = "http://"+IndexConstants.INDEX_DOWNLOAD_DOMAIN+"/get_indexes?gzip&" + versionAsUrl; //$NON-NLS-1$
|
||||
String strUrl = ctx.getAppCustomization().getIndexesUrl();
|
||||
|
||||
log.info(strUrl);
|
||||
URL url = new URL(strUrl );
|
||||
XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser();
|
||||
|
|
|
@ -69,7 +69,7 @@ public class WaypointDialogHelper {
|
|||
|
||||
updatePointInfoView(closePointDialog, point);
|
||||
closePointDialog.setBackgroundColor(mapActivity.getResources().getColor(R.color.color_black));
|
||||
((TextView)closePointDialog.findViewById(R.id.waypoint_text)).setTextColor(Color.WHITE);
|
||||
((TextView) closePointDialog.findViewById(R.id.waypoint_text)).setTextColor(Color.WHITE);
|
||||
View all = closePointDialog.findViewById(R.id.all_points);
|
||||
all.setVisibility(vlp.size() <= 1 ? View.GONE : View.VISIBLE);
|
||||
all.setOnClickListener(new View.OnClickListener() {
|
||||
|
|
|
@ -5,6 +5,7 @@ import java.io.IOException;
|
|||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.TreeSet;
|
||||
|
@ -12,11 +13,13 @@ import java.util.TreeSet;
|
|||
import net.osmand.IProgress;
|
||||
import net.osmand.data.FavouritePoint;
|
||||
import net.osmand.plus.ContextMenuAdapter;
|
||||
import net.osmand.plus.ContextMenuAdapter.OnContextMenuClick;
|
||||
import net.osmand.plus.GPXUtilities;
|
||||
import net.osmand.plus.OsmAndAppCustomization;
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.OsmandSettings.CommonPreference;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.Version;
|
||||
import net.osmand.plus.activities.DownloadIndexActivity;
|
||||
import net.osmand.plus.activities.MapActivity;
|
||||
import net.osmand.plus.activities.MapActivityLayers;
|
||||
|
@ -25,21 +28,31 @@ import net.osmand.plus.api.SettingsAPI;
|
|||
import net.osmand.plus.download.DownloadActivityType;
|
||||
import net.osmand.plus.sherpafy.TourInformation.StageFavorite;
|
||||
import net.osmand.plus.sherpafy.TourInformation.StageInformation;
|
||||
import net.osmand.util.Algorithms;
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.AlertDialog.Builder;
|
||||
import android.app.Dialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.DialogFragment;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.actionbarsherlock.app.ActionBar;
|
||||
|
||||
public class SherpafyCustomization extends OsmAndAppCustomization {
|
||||
|
||||
private static final String SELECTED_TOUR = "selected_tour";
|
||||
private static final String ACCESS_CODE = "access_code";
|
||||
private static final String SELECTED_STAGE = "selected_stage";
|
||||
|
||||
private static final String SELECTED_STAGE = "selected_stage_int";
|
||||
private static final String VISITED_STAGES = "visited_stages_int";
|
||||
private CommonPreference<String> selectedTourPref;
|
||||
private CommonPreference<String> selectedStagePref;
|
||||
private CommonPreference<Integer> selectedStagePref;
|
||||
private CommonPreference<Integer> visitedStagesPref;
|
||||
private boolean toursIndexed;
|
||||
private List<TourInformation> tourPresent = new ArrayList<TourInformation>();
|
||||
private StageInformation selectedStage = null;
|
||||
private TourInformation selectedTour = null;
|
||||
|
@ -47,6 +60,7 @@ public class SherpafyCustomization extends OsmAndAppCustomization {
|
|||
private CommonPreference<String> accessCodePref;
|
||||
private List<FavouritePoint> cachedFavorites = new ArrayList<FavouritePoint>();
|
||||
private SettingsAPI originalApi;
|
||||
public static final String TOUR_SERVER = "download.osmand.net";
|
||||
|
||||
@Override
|
||||
public void setup(OsmandApplication app) {
|
||||
|
@ -59,7 +73,10 @@ public class SherpafyCustomization extends OsmAndAppCustomization {
|
|||
|
||||
public boolean setAccessCode(String acCode) {
|
||||
acCode = acCode.toUpperCase();
|
||||
if(validate(acCode)) {
|
||||
if(DownloadIndexActivity.downloadListIndexThread != null) {
|
||||
DownloadIndexActivity.downloadListIndexThread.clear();
|
||||
}
|
||||
if(validate(acCode) || Algorithms.isEmpty(acCode)) {
|
||||
accessCodePref.set(acCode);
|
||||
return true;
|
||||
}
|
||||
|
@ -139,13 +156,13 @@ public class SherpafyCustomization extends OsmAndAppCustomization {
|
|||
ArrayList<TourInformation> tourPresent = new ArrayList<TourInformation>();
|
||||
List<String> warns = new ArrayList<String>();
|
||||
selectedTour = null;
|
||||
final HashSet<String> suggestToDownloadMap = new HashSet<String>();
|
||||
if(toursFolder.exists()) {
|
||||
File[] availableTours = toursFolder.listFiles();
|
||||
if(availableTours != null) {
|
||||
String selectedName = selectedTourPref.get();
|
||||
for(File tr : availableTours) {
|
||||
if (tr.isDirectory()) {
|
||||
boolean selected = selectedName != null && selectedName.equals(tr.getName());
|
||||
String date = app.getResourceManager().getDateFormat()
|
||||
.format(new Date(DownloadIndexActivity.findFileInDir(tr).lastModified()));
|
||||
indexFileNames.put(tr.getName(), date);
|
||||
|
@ -156,6 +173,15 @@ public class SherpafyCustomization extends OsmAndAppCustomization {
|
|||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
// check that tour was downloaded
|
||||
if(toursIndexed) {
|
||||
for (String map : tourInformation.getMaps()) {
|
||||
if (!new File(toursFolder.getParentFile(), map + ".obf").exists()) {
|
||||
suggestToDownloadMap.add(map);
|
||||
}
|
||||
}
|
||||
}
|
||||
boolean selected = selectedName != null && selectedName.equals(tourInformation.getName());
|
||||
if (selected) {
|
||||
reloadSelectedTour(progress, tourInformation);
|
||||
}
|
||||
|
@ -165,8 +191,22 @@ public class SherpafyCustomization extends OsmAndAppCustomization {
|
|||
app.getSettings().setSettingsAPI(originalApi);
|
||||
}
|
||||
}
|
||||
toursIndexed = true;
|
||||
}
|
||||
this.tourPresent = tourPresent;
|
||||
if(!suggestToDownloadMap.isEmpty()) {
|
||||
final DownloadIndexActivity da = app.getDownloadActivity();
|
||||
if (da != null) {
|
||||
app.runInUIThread(new Runnable() {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
da.showDialogToDownloadMaps(suggestToDownloadMap);
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
return warns;
|
||||
}
|
||||
|
||||
|
@ -193,8 +233,21 @@ public class SherpafyCustomization extends OsmAndAppCustomization {
|
|||
} catch (IOException e) {
|
||||
app.showToastMessage(R.string.settings_file_create_error);
|
||||
}
|
||||
selectedStagePref = app.getSettings().registerStringPreference(SELECTED_STAGE, null).makeGlobal();
|
||||
selectedStagePref = app.getSettings().registerIntPreference(SELECTED_STAGE, -1).makeGlobal();
|
||||
visitedStagesPref = app.getSettings().registerIntPreference(VISITED_STAGES, 0).makeGlobal();
|
||||
selectedTour = tourInformation;
|
||||
Integer it = selectedStagePref.get();
|
||||
while(it >= 0 && isStageVisited(it) ){
|
||||
it++;
|
||||
}
|
||||
if(it >= 0 && it < tourInformation.getStageInformation().size()) {
|
||||
selectedStage = tourInformation.getStageInformation().get(it);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isStageVisited(int stageOrder) {
|
||||
Integer gi = visitedStagesPref.get();
|
||||
return (gi & (1 << stageOrder)) > 0;
|
||||
}
|
||||
|
||||
public StageInformation getSelectedStage() {
|
||||
|
@ -203,10 +256,10 @@ public class SherpafyCustomization extends OsmAndAppCustomization {
|
|||
|
||||
public void selectStage(StageInformation stage, IProgress progress) {
|
||||
if(stage == null) {
|
||||
selectedStagePref.set(null);
|
||||
selectedStagePref.set(-1);
|
||||
selectedStage = null;
|
||||
} else {
|
||||
selectedStagePref.set(stage.getName());
|
||||
selectedStagePref.set(stage.getOrder());
|
||||
selectedStage = stage;
|
||||
}
|
||||
loadSelectedStage();
|
||||
|
@ -252,43 +305,86 @@ public class SherpafyCustomization extends OsmAndAppCustomization {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void prepareLocationMenu(MapActivity mapActivity, ContextMenuAdapter adapter) {
|
||||
public void prepareLocationMenu(final MapActivity mapActivity, ContextMenuAdapter adapter) {
|
||||
filter(adapter, R.string.pause_navigation, R.string.continue_navigation, R.string.context_menu_item_directions_to,
|
||||
R.string.context_menu_item_destination_point, R.string.context_menu_item_search,
|
||||
R.string.context_menu_item_share_location, R.string.context_menu_item_add_favorite);
|
||||
R.string.context_menu_item_share_location/*, R.string.context_menu_item_add_favorite*/);
|
||||
MapActivityLayers layers = mapActivity.getMapLayers();
|
||||
if(layers.getContextMenuLayer().getFirstSelectedObject() instanceof FavouritePoint) {
|
||||
FavouritePoint fp = ((FavouritePoint)layers.getContextMenuLayer().getFirstSelectedObject());
|
||||
final FavouritePoint fp = ((FavouritePoint)layers.getContextMenuLayer().getFirstSelectedObject());
|
||||
if(fp.getExtraParam() >= 0 && selectedStage != null) {
|
||||
StageFavorite sf = (StageFavorite) selectedStage.getFavorites().get(fp.getExtraParam());
|
||||
showFavoriteDialog(mapActivity, selectedStage, sf);
|
||||
adapter.item(R.string.show_waypoint_information).icons(R.drawable.ic_action_info_dark, R.drawable.ic_action_info_light ).position(0)
|
||||
.listen(new OnContextMenuClick() {
|
||||
@Override
|
||||
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||
StageFavorite sf = (StageFavorite) selectedStage.getFavorites().get(fp.getExtraParam());
|
||||
showFavoriteDialog(mapActivity, selectedStage, sf);
|
||||
}
|
||||
}).reg();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void showFavoriteDialog(MapActivity mapActivity, StageInformation stage, StageFavorite sf) {
|
||||
public void showFavoriteDialog(MapActivity mapActivity, StageInformation stage, StageFavorite sf) {
|
||||
SherpafyFavoriteFragment fragment = new SherpafyFavoriteFragment();
|
||||
Bundle bl = new Bundle();
|
||||
bl.putInt(SherpafyFavoriteFragment.STAGE_PARAM, stage.getOrder());
|
||||
bl.putString(SherpafyFavoriteFragment.TOUR_PARAM, stage.getTour().getId());
|
||||
bl.putInt(SherpafyFavoriteFragment.FAV_PARAM, sf.getOrder());
|
||||
fragment.setArguments(bl);
|
||||
Builder bld = new AlertDialog.Builder(mapActivity);
|
||||
bld.setTitle(sf.getName() + " TODO ");
|
||||
bld.setPositiveButton(R.string.default_buttons_ok, null);
|
||||
// TODO
|
||||
// Builder bld = new AlertDialog.Builder(mapActivity);
|
||||
// FragmentManager fragmentManager = mapActivity.getSupportFragmentManager();
|
||||
FragmentManager fragmentManager = mapActivity.getSupportFragmentManager();
|
||||
new FavoriteDialogFragment(fragment).show(fragmentManager.beginTransaction(), "DialogFragment");
|
||||
}
|
||||
|
||||
public static class FavoriteDialogFragment extends DialogFragment {
|
||||
SherpafyFavoriteFragment fragment;
|
||||
public FavoriteDialogFragment(SherpafyFavoriteFragment fragment) {
|
||||
this.fragment = fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(Bundle arg0) {
|
||||
super.onActivityCreated(arg0);
|
||||
getFragmentManager().beginTransaction().replace(R.id.content_frame, fragment).commit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||
View view = new View(getActivity());
|
||||
view.setId(R.id.content_frame);
|
||||
AlertDialog dlg = new AlertDialog.Builder(getActivity())
|
||||
.setView(view)
|
||||
.setPositiveButton(R.string.default_buttons_ok,
|
||||
new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int whichButton) {
|
||||
}
|
||||
}
|
||||
)
|
||||
.create();
|
||||
return dlg;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void prepareOptionsMenu(MapActivity mapActivity, ContextMenuAdapter adapter) {
|
||||
public void prepareOptionsMenu(final MapActivity mapActivity, ContextMenuAdapter adapter) {
|
||||
|
||||
filter(adapter, R.string.exit_Button, R.string.menu_layers,
|
||||
R.string.pause_navigation, R.string.continue_navigation,
|
||||
R.string.cancel_navigation, R.string.cancel_route, R.string.clear_destination,
|
||||
R.string.get_directions,
|
||||
R.string.menu_mute_on, R.string.menu_mute_off,
|
||||
R.string.where_am_i);
|
||||
adapter.item(R.string.sherpafy_tour_info_txt).icons(R.drawable.ic_action_info_dark, R.drawable.ic_action_info_light ).position(adapter.length() - 1)
|
||||
.listen(new OnContextMenuClick() {
|
||||
@Override
|
||||
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||
Intent newIntent = new Intent(mapActivity, TourViewActivity.class);
|
||||
// newIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||
mapActivity.startActivity(newIntent);
|
||||
}
|
||||
}).reg();
|
||||
}
|
||||
|
||||
public void filter(ContextMenuAdapter a, Integer... ids) {
|
||||
|
@ -310,4 +406,22 @@ public class SherpafyCustomization extends OsmAndAppCustomization {
|
|||
public List<FavouritePoint> getFavorites() {
|
||||
return cachedFavorites;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getIndexesUrl() {
|
||||
String s = "http://"+TOUR_SERVER+"/tours.php?gzip&" + Version.getVersionAsURLParam(app);
|
||||
if(!Algorithms.isEmpty(accessCodePref.get())) {
|
||||
s += "&code="+accessCodePref.get();
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
public void preDownloadActivity(final DownloadIndexActivity da, final List<DownloadActivityType> downloadTypes, ActionBar actionBar) {
|
||||
actionBar.setTitle(TourDownloadType.TOUR.getString(da));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean showDownloadExtraActions() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,7 +24,9 @@ public class SherpafyFavoriteFragment extends SherpafyStageInfoFragment {
|
|||
int k = getArguments().getInt(FAV_PARAM);
|
||||
if(stage != null) {
|
||||
fav = (StageFavorite) stage.getFavorites().get(k);
|
||||
getSherlockActivity().getSupportActionBar().setTitle(fav.getName());
|
||||
if(getSherlockActivity().getSupportActionBar() != null) {
|
||||
getSherlockActivity().getSupportActionBar().setTitle(fav.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2,18 +2,14 @@ package net.osmand.plus.sherpafy;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import net.osmand.IProgress;
|
||||
import net.osmand.AndroidUtils;
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.activities.DownloadIndexActivity;
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.AlertDialog.Builder;
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Typeface;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.text.SpannableString;
|
||||
import android.text.method.LinkMovementMethod;
|
||||
|
@ -50,9 +46,12 @@ public class SherpafySelectToursFragment extends SherlockListFragment {
|
|||
super.onAttach(activity);
|
||||
app = (OsmandApplication) getSherlockActivity().getApplication();
|
||||
custom = (SherpafyCustomization) app.getAppCustomization();
|
||||
TourAdapter tourAdapter = new TourAdapter(custom.getTourInformations());
|
||||
setListAdapter(tourAdapter);
|
||||
setHasOptionsMenu(true);
|
||||
refreshAdapter();
|
||||
}
|
||||
|
||||
public void refreshAdapter() {
|
||||
setListAdapter(new TourAdapter(custom.getTourInformations()));
|
||||
}
|
||||
|
||||
|
||||
|
@ -95,9 +94,17 @@ public class SherpafySelectToursFragment extends SherlockListFragment {
|
|||
LinearLayout ll = new LinearLayout(getActivity());
|
||||
ll.setPadding(5, 3, 5, 0);
|
||||
ll.addView(editText, new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
|
||||
AndroidUtils.softKeyboardDelayed(editText);
|
||||
builder.setView(ll);
|
||||
builder.setNegativeButton(R.string.default_buttons_cancel, null);
|
||||
builder.setPositiveButton(R.string.default_buttons_yes, new DialogInterface.OnClickListener() {
|
||||
builder.setNegativeButton(R.string.sherpafy_public_access, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
custom.setAccessCode("");
|
||||
((TourViewActivity) getActivity()).startDownloadActivity();
|
||||
}
|
||||
});
|
||||
|
||||
builder.setPositiveButton(R.string.default_buttons_ok, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
String acCode = editText.getText().toString();
|
||||
|
|
|
@ -6,8 +6,10 @@ import net.osmand.IndexConstants;
|
|||
import net.osmand.map.OsmandRegions;
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.Version;
|
||||
import net.osmand.plus.download.DownloadActivityType;
|
||||
import net.osmand.plus.download.IndexItem;
|
||||
import net.osmand.util.Algorithms;
|
||||
import android.content.Context;
|
||||
|
||||
public class TourDownloadType extends DownloadActivityType {
|
||||
|
@ -42,8 +44,17 @@ public class TourDownloadType extends DownloadActivityType {
|
|||
return "";
|
||||
}
|
||||
|
||||
public String getBaseUrl(OsmandApplication ctx, String fileName) {
|
||||
return "http://" + SherpafyCustomization.TOUR_SERVER + "/download_tour.php?event=2&"
|
||||
+ Version.getVersionAsURLParam(ctx) + "&file=" + fileName;
|
||||
}
|
||||
|
||||
public String getUrlSuffix(OsmandApplication ctx) {
|
||||
return "&tour=yes";
|
||||
String accessCode = "";
|
||||
if (ctx.getAppCustomization() instanceof SherpafyCustomization) {
|
||||
accessCode = ((SherpafyCustomization) ctx.getAppCustomization()).getAccessCode();
|
||||
}
|
||||
return "&tour=yes" + (Algorithms.isEmpty(accessCode) ? "" : "&code=" + accessCode);
|
||||
}
|
||||
|
||||
public String getVisibleDescription(IndexItem indexItem, Context ctx) {
|
||||
|
|
|
@ -35,6 +35,8 @@ public class TourInformation {
|
|||
private String instructions = "";
|
||||
private File imgFile;
|
||||
private List<StageInformation> stageInformation = new ArrayList<TourInformation.StageInformation>();
|
||||
private List<String> maps =new ArrayList<String>();
|
||||
private String mode;
|
||||
|
||||
public TourInformation(File f) {
|
||||
this.folder = f;
|
||||
|
@ -49,6 +51,10 @@ public class TourInformation {
|
|||
return instructions;
|
||||
}
|
||||
|
||||
public List<String> getMaps() {
|
||||
return maps;
|
||||
}
|
||||
|
||||
private static WeakHashMap<File, Bitmap> androidBitmaps = new WeakHashMap<File, Bitmap>();
|
||||
private static Bitmap decodeImage(File f) {
|
||||
if(!androidBitmaps.containsKey(f)) {
|
||||
|
@ -93,11 +99,17 @@ public class TourInformation {
|
|||
String tag = parser.getName();
|
||||
if(tag.equals("tour")) {
|
||||
name = getDefAttribute(parser, "name", name);
|
||||
mode = getDefAttribute(parser, "mode", "");
|
||||
homeUrl = getDefAttribute(parser, "url", "");
|
||||
} else if (tag.equals("stage")) {
|
||||
String name = getDefAttribute(parser, "name", "");
|
||||
stage = new StageInformation(this, stageInformation.size());
|
||||
stage.name = name;
|
||||
stage.name = getDefAttribute(parser, "name", "");
|
||||
stage.mode = getDefAttribute(parser, "mode", "");
|
||||
} else if (tag.equals("prerequisite")) {
|
||||
String map = getDefAttribute(parser, "map", "");
|
||||
if(!Algorithms.isEmpty(map)) {
|
||||
maps .add(map);
|
||||
}
|
||||
} else if (tag.equals("itinerary") && stage != null){
|
||||
String img = getDefAttribute(parser, "image", "");
|
||||
stage.distance = Double.parseDouble(getDefAttribute(parser, "distance", "0"));
|
||||
|
@ -323,6 +335,7 @@ public class TourInformation {
|
|||
File itineraryFile;
|
||||
double distance;
|
||||
LatLon startPoint = null;
|
||||
String mode;
|
||||
List<Object> favorites = new ArrayList<Object>();
|
||||
|
||||
TourInformation tour;
|
||||
|
@ -343,6 +356,13 @@ public class TourInformation {
|
|||
return null;
|
||||
}
|
||||
|
||||
public String getMode() {
|
||||
if(Algorithms.isEmpty(mode)) {
|
||||
return tour.mode;
|
||||
}
|
||||
return mode;
|
||||
}
|
||||
|
||||
public LatLon getStartPoint() {
|
||||
return startPoint;
|
||||
}
|
||||
|
@ -445,4 +465,8 @@ public class TourInformation {
|
|||
return homeUrl;
|
||||
}
|
||||
|
||||
public String getMode() {
|
||||
return mode;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -3,19 +3,19 @@ package net.osmand.plus.sherpafy;
|
|||
import java.util.List;
|
||||
import java.util.WeakHashMap;
|
||||
|
||||
import android.view.KeyEvent;
|
||||
import android.widget.*;
|
||||
import net.osmand.IProgress;
|
||||
import net.osmand.data.LatLon;
|
||||
import net.osmand.plus.GPXUtilities.GPXFile;
|
||||
import net.osmand.plus.GPXUtilities.WptPt;
|
||||
import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile;
|
||||
import net.osmand.plus.ApplicationMode;
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.TargetPointsHelper;
|
||||
import net.osmand.plus.activities.DownloadIndexActivity;
|
||||
import net.osmand.plus.sherpafy.TourInformation.StageFavorite;
|
||||
import net.osmand.plus.sherpafy.TourInformation.StageInformation;
|
||||
import net.osmand.util.Algorithms;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.AlertDialog.Builder;
|
||||
import android.content.DialogInterface;
|
||||
|
@ -23,7 +23,6 @@ import android.content.DialogInterface.OnClickListener;
|
|||
import android.content.Intent;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.Point;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.ActionBarDrawerToggle;
|
||||
import android.support.v4.app.Fragment;
|
||||
|
@ -32,7 +31,12 @@ import android.support.v4.view.GravityCompat;
|
|||
import android.support.v4.widget.DrawerLayout;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.AdapterView.OnItemClickListener;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ListView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.actionbarsherlock.app.SherlockFragmentActivity;
|
||||
import com.actionbarsherlock.view.Menu;
|
||||
|
@ -57,12 +61,12 @@ public class TourViewActivity extends SherlockFragmentActivity {
|
|||
|
||||
|
||||
private SherpafyCustomization customization;
|
||||
private Point displaySize;
|
||||
private ActionBarDrawerToggle mDrawerToggle;
|
||||
private DrawerLayout mDrawerLayout;
|
||||
private ListView mDrawerList;
|
||||
private ArrayAdapter<Object> drawerAdapter;
|
||||
private WeakHashMap<Object, Fragment> fragments = new WeakHashMap<Object, Fragment>();
|
||||
private boolean refreshListAfterDownload;
|
||||
private static Object selectedItem;
|
||||
|
||||
@Override
|
||||
|
@ -108,7 +112,6 @@ public class TourViewActivity extends SherlockFragmentActivity {
|
|||
}
|
||||
});
|
||||
|
||||
displaySize = new Point(getWindowManager().getDefaultDisplay().getWidth(), getWindowManager().getDefaultDisplay().getHeight());
|
||||
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.drawable.ic_navigation_drawer_light,
|
||||
R.string.default_buttons_other_actions, R.string.close);
|
||||
if (getMyApplication().isApplicationInitializing()) {
|
||||
|
@ -168,8 +171,10 @@ public class TourViewActivity extends SherlockFragmentActivity {
|
|||
} else if (selectedItem == it) {
|
||||
imView.setImageResource(R.drawable.ic_action_ok_light);
|
||||
} else {
|
||||
boolean visited = customization.isStageVisited(((StageInformation) it).getOrder());
|
||||
imView.setImageDrawable(
|
||||
new StageImageDrawable(TourViewActivity.this, StageImageDrawable.MENU_COLOR,
|
||||
new StageImageDrawable(TourViewActivity.this,
|
||||
visited ? StageImageDrawable.INFO_COLOR : StageImageDrawable.MENU_COLOR,
|
||||
(((StageInformation) it).getOrder() + 1) + "", 0));
|
||||
}
|
||||
tv.setText(((StageInformation) it).getName());
|
||||
|
@ -218,6 +223,10 @@ public class TourViewActivity extends SherlockFragmentActivity {
|
|||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
if(refreshListAfterDownload){
|
||||
refreshListAfterDownload = false;
|
||||
selectMenu(selectedItem == null ? R.string.sherpafy_tours : selectedItem);
|
||||
}
|
||||
}
|
||||
|
||||
public MenuItem createMenuItem(Menu m, int id, int titleRes, int iconLight, int iconDark, int menuItemType,
|
||||
|
@ -256,6 +265,8 @@ public class TourViewActivity extends SherlockFragmentActivity {
|
|||
if (fragment == null) {
|
||||
fragment = new SherpafySelectToursFragment();
|
||||
fragments.put(item, fragment);
|
||||
} else {
|
||||
((SherpafySelectToursFragment) fragment).refreshAdapter();
|
||||
}
|
||||
state = STATE_SELECT_TOUR;
|
||||
setDrawerIndicatorVisible(true);
|
||||
|
@ -371,6 +382,7 @@ public class TourViewActivity extends SherlockFragmentActivity {
|
|||
public void startDownloadActivity() {
|
||||
final Intent download = new Intent(this, DownloadIndexActivity.class);
|
||||
download.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
|
||||
refreshListAfterDownload = true;
|
||||
startActivity(download);
|
||||
}
|
||||
|
||||
|
@ -435,6 +447,7 @@ public class TourViewActivity extends SherlockFragmentActivity {
|
|||
WptPt point = null;
|
||||
GPXFile gpx = null;
|
||||
customization.selectTour(tour, IProgress.EMPTY_PROGRESS);
|
||||
|
||||
customization.selectStage(stage, IProgress.EMPTY_PROGRESS);
|
||||
if (customization.getSelectedStage() != null) {
|
||||
gpx = customization.getSelectedStage().getGpx();
|
||||
|
@ -453,8 +466,17 @@ public class TourViewActivity extends SherlockFragmentActivity {
|
|||
if (lp != null) {
|
||||
TargetPointsHelper targetPointsHelper = getMyApplication().getTargetPointsHelper();
|
||||
targetPointsHelper.navigateToPoint(new LatLon(lp.lat, lp.lon), true, -1, lp.name);
|
||||
getMyApplication().getSettings().navigateDialog();
|
||||
getMyApplication().getSettings().navigateDialog(true);
|
||||
}
|
||||
String mode = stage != null ? stage.getMode() : tour.getMode();
|
||||
if (!Algorithms.isEmpty(mode)) {
|
||||
final ApplicationMode def = getMyApplication().getSettings().getApplicationMode();
|
||||
ApplicationMode am = ApplicationMode.valueOfStringKey(mode, def);
|
||||
if (am != def) {
|
||||
getMyApplication().getSettings().APPLICATION_MODE.set(am);
|
||||
}
|
||||
}
|
||||
getMyApplication().getSettings().SHOW_FAVORITES.set(true);
|
||||
if (startOver && point != null) {
|
||||
goToMap(new LatLon(point.lat, point.lon));
|
||||
} else {
|
||||
|
|
Loading…
Reference in a new issue