Merge branch 'master' of ssh://github.com/osmandapp/Osmand into sasha_pasha_branch

This commit is contained in:
Alexander Sytnyk 2017-08-30 10:35:50 +03:00
commit a64f4d1d3f
27 changed files with 201 additions and 63 deletions

View file

@ -81,8 +81,8 @@ public class BinaryInspector {
// "-vstreets", "-vbuildings", "-vintersections",
// "-lang=ru",
// "-bbox=30.4981,50.4424,30.5195,50.4351",
"-osm="+System.getProperty("maps.dir")+"/map_full.obf.osm",
System.getProperty("maps.dir")+"/2017_08_24_15_00.obf"
// "-osm="+System.getProperty("maps.dir")+"/map_full.obf.osm",
System.getProperty("maps.dir")+"/diff/2017_08_28_01_00.obf"
// System.getProperty("maps.dir")+"../temp/kiev/Ukraine_kiev-city_europe_17_06_05.obf",
// System.getProperty("maps.dir")+"Ukraine_kiev-city_europe_2.obf",
});

View file

@ -202,6 +202,12 @@ public class BinaryMapDataObject {
&& this.area == thatObj.area
&& Arrays.equals(this.polygonInnerCoordinates, thatObj.polygonInnerCoordinates)
&& Arrays.equals(this.coordinates, thatObj.coordinates) ) {
if(mapIndex == null) {
throw new IllegalStateException("Illegal binary object: " + id);
}
if(thatObj.mapIndex == null) {
throw new IllegalStateException("Illegal binary object: " + thatObj.id);
}
boolean equals = true;
if(equals) {
if(types == null || thatObj.types == null) {

View file

@ -1735,6 +1735,9 @@ public class BinaryMapIndexReader {
public TIntHashSet positiveLayers = new TIntHashSet(2);
public TIntHashSet negativeLayers = new TIntHashSet(2);
// to speed up comparision
private MapIndex referenceMapIndex;
public Integer getRule(String t, String v) {
Map<String, Integer> m = encodingRules.get(t);
if (m != null) {
@ -1835,12 +1838,13 @@ public class BinaryMapIndexReader {
}
public BinaryMapDataObject adoptMapObject(BinaryMapDataObject o) {
if(o.mapIndex == this) {
if(o.mapIndex == this || o.mapIndex == referenceMapIndex) {
return o;
}
if(encodingRules.isEmpty()) {
encodingRules.putAll(o.mapIndex.encodingRules);
decodingRules.putAll(o.mapIndex.decodingRules);
referenceMapIndex = o.mapIndex;
return o;
}
TIntArrayList types = new TIntArrayList();
@ -1852,8 +1856,8 @@ public class BinaryMapIndexReader {
if(r != null) {
types.add(r);
} else {
int nid = decodingRules.size();
initMapEncodingRule(tp.additionalAttribute, decodingRules.size(), tp.tag, tp.value);
int nid = decodingRules.size() + 1;
initMapEncodingRule(tp.additionalAttribute, nid, tp.tag, tp.value);
types.add(nid);
}
}
@ -1865,8 +1869,8 @@ public class BinaryMapIndexReader {
if(r != null) {
additionalTypes.add(r);
} else {
int nid = decodingRules.size();
initMapEncodingRule(tp.additionalAttribute, decodingRules.size(), tp.tag, tp.value);
int nid = decodingRules.size() + 1;
initMapEncodingRule(tp.additionalAttribute, nid, tp.tag, tp.value);
additionalTypes.add(nid);
}
}
@ -1887,8 +1891,8 @@ public class BinaryMapIndexReader {
bm.namesOrder.add(r);
bm.objectNames.put(r, name);
} else {
int nid = decodingRules.size();
initMapEncodingRule(tp.additionalAttribute, decodingRules.size(), tp.tag, tp.value);
int nid = decodingRules.size() + 1;
initMapEncodingRule(tp.additionalAttribute, nid, tp.tag, tp.value);
additionalTypes.add(nid);
bm.objectNames.put(nid, name);
}

View file

@ -2808,4 +2808,6 @@ U vypadku, kali vy lubіcie OsmAnd і OSM і chočacie padtrymać jaho, heta іd
<string name="add_segment_to_the_track">Dadać u GPX-slied</string>
<string name="keep_showing_on_map">Praciahvać pakazvać na mapie</string>
<string name="exit_without_saving">Vyjsci biez zachavannia?</string>
<string name="do_not_use_animations">Nie ŭžyvać animacyju</string>
<string name="do_not_use_animations_descr">Heta adkliučaje animacyju ŭ prahramie</string>
</resources>

View file

@ -1791,7 +1791,7 @@
<string name="general_settings_2">Агульныя налады</string>
<string name="shared_string_clear_all">Ачысьціць ўсё</string>
<string name="shared_string_collapse">Згарнуць</string>
<string name="shared_string_my_location">Маё месцазнаходжаньне</string>
<string name="shared_string_my_location">Маё месцазнаходжанне</string>
<string name="shared_string_my_tracks">Мае сьляды</string>
<string name="shared_string_currently_recording_track">Сьлед, які цяпер запісваецца</string>
<string name="plugin_touringview_name">Турыстычная мапа</string>
@ -2386,7 +2386,7 @@
<string name="no_update_info_desc">Не правяраць абнаўленні версій і зніжкі ад OsmAnd</string>
<string name="no_update_info">Не паказваць абнаўленні</string>
<string name="skip_map_downloading">Прапусьціць сьцягванне мапаў</string>
<string name="skip_map_downloading_desc">У вас няма загружаных мапаў. Вы можаце выбраць мапу са сьпісу або сьцягнуць яе пазьней праз мэню - %1$s.</string>
<string name="skip_map_downloading_desc">У вас няма загружаных мапаў. Вы можаце выбраць мапу са спісу або сцягнуць яе пазней праз меню - %1$s.</string>
<string name="search_another_country">Абраць іншы рэгіён</string>
<string name="search_map">Пошук мапаў…</string>
<string name="first_usage_wizard_desc">OsmAnd вызначыць ваша месцазнаходжанне і прапануе спампаваць мапы для гэтага рэгіёну.</string>
@ -2857,4 +2857,6 @@
<string name="add_segment_to_the_track">Дадаць у GPX-след</string>
<string name="keep_showing_on_map">Працягваць паказваць на мапе</string>
<string name="exit_without_saving">Выйсці без захавання?</string>
<string name="do_not_use_animations">Не ўжываць анімацыю</string>
<string name="do_not_use_animations_descr">Гэта адключае анімацыю ў праграме</string>
</resources>

View file

@ -890,14 +890,14 @@ Memòria proporcional %4$s MB (límit de l\'Android %5$s MB, Dalvik %6$s MB).</s
<string name="background_service_wait_int_descr">Estableix el temps màxim d\'espera per a cada correcció de la posició en segon pla</string>
<string name="background_service_wait_int">Espera màxima per corregir</string>
<string name="local_indexes_cat_av">Dades d\'àudio/vídeo</string>
<string name="stop_routing_confirm">Esteu segurs de què voleu parar la navegació?</string>
<string name="clear_dest_confirm">"N\'esteu segurs que voleu eliminar la vostra destinació (i les vostres fites)?"</string>
<string name="stop_routing_confirm">Esteu segur què voleu aturar la navegació?</string>
<string name="clear_dest_confirm">"N\'esteu segur que voleu eliminar la vostra destinació (i les vostres fites)?"</string>
<string name="recording_context_menu_show">Mostra</string>
<string name="recording_photo_description">Fotografia %1$s %2$s</string>
<string name="av_def_action_picture">Fes una fotografia</string>
<string name="recording_context_menu_precord">Fes una fotografia</string>
<string name="download_hillshade_maps">Ombres de relleu</string>
<string name="precise_routing_mode_descr">Activeu per calcular itineraris precisos sense errades. Encara és lent i de distància limitada.</string>
<string name="precise_routing_mode_descr">Activeu per calcular itineraris precisos sense discontinuïtats. De moment és lent i de distància limitada.</string>
<string name="precise_routing_mode">Encaminament precís (alfa)</string>
<string name="intermediate_point">Punt de pas %1$s</string>
<string name="support_new_features_descr">Feu un donatiu per veure noves funcionalitats implementades a l\'aplicació</string>
@ -2610,4 +2610,6 @@ Abasta l\'àrea: %1$s x %2$s</string>
<string name="add_segment_to_the_track">Afegeix a una traça GPX</string>
<string name="keep_showing_on_map">Continua mostrant al mapa</string>
<string name="exit_without_saving">Voleu sortir sense desar?</string>
<string name="do_not_use_animations">Sense ús d\'animacions</string>
<string name="do_not_use_animations_descr">Això desactiva les animacions a l\'aplicació</string>
</resources>

View file

@ -2857,4 +2857,8 @@ Tidligere destination bliver sidste mellemliggende punkt.</string>
<string name="import_track_desc">Filen %1$s indeholder ingen rutepunkter, importer den som et spor?</string>
<string name="move_point">Flyt punkt</string>
<string name="add_segment_to_the_track">Tilføj til et GPX-spor</string>
</resources>
<string name="keep_showing_on_map">Fortsæt med at vise på kortet</string>
<string name="exit_without_saving">Afslut uden at gemme?</string>
<string name="do_not_use_animations">Brug ikke animationer</string>
<string name="do_not_use_animations_descr">Deaktiverer animationer i programmet</string>
</resources>

View file

@ -1409,7 +1409,7 @@ Se aprecia la participación activa, y las contribuciones pueden hacerse directa
<string name="rotate_map_to_bearing">Orientación del mapa</string>
<string name="show_route">Detalle de la ruta</string>
<string name="fav_imported_sucessfully">Favoritos importados correctamente</string>
<string name="import_file_favourites">¿Guardar datos en un archivo GPX o importar puntos a Favoritos?</string>
<string name="import_file_favourites">¿Guardar datos en un archivo GPX o importar puntos de referencia a Favoritos?</string>
<string name="fav_file_to_load_not_found">El archivo GPX de favoritos no se encontró en {0}</string>
<string name="fav_saved_sucessfully">Los puntos favoritos se guardaron correctamente en {0}</string>
<string name="no_fav_to_save">Sin puntos favoritos que guardar</string>
@ -2734,5 +2734,7 @@ Proporciona un código completo</string>
<string name="move_point">Mover punto</string>
<string name="add_segment_to_the_track">Añadir a una traza GPX</string>
<string name="keep_showing_on_map">Mantener en el mapa</string>
<string name="exit_without_saving">Salir sin guardar?</string>
<string name="exit_without_saving">¿Salir sin guardar?</string>
<string name="do_not_use_animations">No usar animaciones</string>
<string name="do_not_use_animations_descr">Desactiva las animaciones en la aplicación</string>
</resources>

View file

@ -1409,7 +1409,7 @@ Se aprecia la participación activa, y las contribuciones pueden hacerse directa
<string name="rotate_map_to_bearing">Orientación del mapa</string>
<string name="show_route">Detalle de la ruta</string>
<string name="fav_imported_sucessfully">Favoritos importados correctamente</string>
<string name="import_file_favourites">¿Guardar datos en un archivo GPX o importar puntos a Favoritos?</string>
<string name="import_file_favourites">¿Guardar datos en un archivo GPX o importar puntos de referencia a Favoritos?</string>
<string name="fav_file_to_load_not_found">El archivo GPX de favoritos no se encontró en {0}</string>
<string name="fav_saved_sucessfully">Los puntos favoritos se guardaron correctamente en {0}</string>
<string name="no_fav_to_save">Sin puntos favoritos que guardar</string>
@ -2735,5 +2735,7 @@ Proporciona un código completo</string>
<string name="move_point">Mover punto</string>
<string name="add_segment_to_the_track">Añadir a una traza GPX</string>
<string name="keep_showing_on_map">Mantener en el mapa</string>
<string name="exit_without_saving">Salir sin guardar?</string>
<string name="exit_without_saving">¿Salir sin guardar?</string>
<string name="do_not_use_animations">No usar animaciones</string>
<string name="do_not_use_animations_descr">Desactiva las animaciones en la aplicación</string>
</resources>

View file

@ -94,7 +94,7 @@ El espacio de almacenamiento usado es {1} MB.
<string name="city_type_village">Pueblo</string>
<string name="city_type_town">Ciudad pequeña</string>
<string name="city_type_city">Ciudad</string>
<string name="animate_route_off">Detener simulación</string>
<string name="animate_route_off">Parar simulación</string>
<string name="animate_route">Iniciar simulación</string>
<string name="file_can_not_be_renamed">El archivo no se puede renombrar.</string>
<string name="file_with_name_already_exists">Ya existe un archivo con ese nombre.</string>
@ -117,7 +117,7 @@ El espacio de almacenamiento usado es {1} MB.
<string name="search_position_map_view">Centro del mapa actual</string>
<string name="select_search_position">Origen:</string>
<string name="context_menu_item_search">Buscar cerca</string>
<string name="shared_string_save_as_gpx">Guardar como traza GPX</string>
<string name="shared_string_save_as_gpx">Guardar como nueva traza GPX</string>
<string name="route_successfully_saved_at">Ruta guardada correctamente como «%1$s».</string>
<string name="filename_input">Nombre de archivo: </string>
<string name="file_with_name_already_exist">Ya existe un archivo con el mismo nombre.</string>
@ -225,9 +225,9 @@ El espacio de almacenamiento usado es {1} MB.
<string name="send_location_email_pattern">Para ver la ubicación sigue el enlace del navegador %1$s o el enlace interno de Android %2$s</string>
<string name="send_location">Enviar ubicación</string>
<string name="context_menu_item_share_location">Compartir ubicación</string>
<string name="add_waypoint_dialog_added">El punto de ruta GPX «{0}» fue añadido correctamente</string>
<string name="add_waypoint_dialog_title">Añadir el punto de ruta a la traza GPX grabada</string>
<string name="context_menu_item_add_waypoint">Añadir punto de ruta GPX</string>
<string name="add_waypoint_dialog_added">El punto GPX «{0}» fue añadido correctamente</string>
<string name="add_waypoint_dialog_title">Añadir el punto de referencia a la traza GPX grabada</string>
<string name="context_menu_item_add_waypoint">Añadir punto GPX</string>
<string name="amenity_type_administrative">Administrativo</string>
<string name="amenity_type_barrier">Barrera</string>
<string name="amenity_type_education">Educación</string>
@ -237,8 +237,8 @@ El espacio de almacenamiento usado es {1} MB.
<string name="amenity_type_geocache">Geo-caché</string>
<string name="amenity_type_healthcare">Salud</string>
<string name="amenity_type_historic">Histórico</string>
<string name="amenity_type_landuse">Uso de Suelo</string>
<string name="amenity_type_leisure">Placer</string>
<string name="amenity_type_landuse">Uso del suelo</string>
<string name="amenity_type_leisure">Ocio</string>
<string name="amenity_type_man_made">Artificial</string>
<string name="amenity_type_military">Militar</string>
<string name="amenity_type_natural">Naturaleza</string>
@ -1040,7 +1040,7 @@ Tanto la ubicación como el tiempo de estacionamiento se muestran en el panel de
<string name="speak_cameras">Radares</string>
<string name="speak_traffic_warnings">Avisos de tráfico</string>
<string name="osb_author_dialog_password">Contraseña OSM (opcional)</string>
<string name="announce_gpx_waypoints">Puntos de ruta GPX</string>
<string name="announce_gpx_waypoints">Puntos GPX</string>
<string name="speak_title">Anunciar…</string>
<string name="speak_descr">Configura el anuncio de nombres de calles, advertencias de tráfico (paradas, badenes), advertencias de radares de velocidad, límites de velocidad</string>
<string name="speak_street_names">Nombres de calles (TTS)</string>
@ -1091,7 +1091,7 @@ Tanto la ubicación como el tiempo de estacionamiento se muestran en el panel de
<string name="animate_routing_route">Simular, utilizando la ruta calculada</string>
<string name="animate_routing_gpx">Simular, utilizando la traza GPX</string>
<string name="app_mode_hiking">Senderismo</string>
<string name="app_mode_motorcycle">Moto</string>
<string name="app_mode_motorcycle">Motocicleta</string>
<string name="app_mode_boat">Barco</string>
<string name="app_mode_aircraft">Avión</string>
<string name="local_osm_changes_delete_all_confirm">Borrará %1$d cambio(s) de OSM. ¿Está seguro?</string>
@ -1271,7 +1271,7 @@ Tanto la ubicación como el tiempo de estacionamiento se muestran en el panel de
<string name="osmo_session_token">Token de sesión: %1$s</string>
<string name="osmo_mode_restart">Reiniciar sesión OsMo</string>
<string name="osmo_settings_debug">Información de depuración</string>
<string name="import_file_favourites">"¿Guardar datos como archivo GPX o importar los puntos de ruta a Favoritos?"</string>
<string name="import_file_favourites">¿Guardar datos como archivo GPX o importar los puntos de referencia a Favoritos?</string>
<string name="osmo_follow">Seguir</string>
<string name="osmo_sign_in">Ingresar</string>
<string name="osmo_create_groups_confirm">Con el fin de crear grupos es necesario ser usuario registrado de OsMo.</string>
@ -1308,7 +1308,7 @@ Tanto la ubicación como el tiempo de estacionamiento se muestran en el panel de
<string name="shared_string_selected_lowercase">seleccionado</string>
<string name="gpx_split_interval">Intervalo de división</string>
<string name="gpx_info_subtracks">Subtrazas: %1$s</string>
<string name="gpx_info_waypoints">Puntos de ruta: %1$s</string>
<string name="gpx_info_waypoints">Puntos de referencia: %1$s</string>
<string name="gpx_info_distance">Distancia: %1$s (%2$s puntos) </string>
<string name="gpx_info_start_time">Hora inicio: %1$tF, %1$tT</string>
<string name="gpx_info_end_time">Hora fin: %1$tF, %1$tT</string>
@ -1318,7 +1318,7 @@ Tanto la ubicación como el tiempo de estacionamiento se muestran en el panel de
<string name="gpx_info_diff_altitude">Rango de altitud: %1$s</string>
<string name="gpx_info_asc_altitude">Descenso/ascenso: %1$s</string>
<string name="map_widget_plain_time">Tiempo actual</string>
<string name="gpx_wpt">Punto de ruta</string>
<string name="gpx_wpt">Punto de referencia</string>
<string name="select_destination_and_intermediate_points">Marque los destinos</string>
<string name="layer_amenity_label">Etiquetas de los puntos</string>
<string name="save_as_favorites_points">Guardar como grupo de favoritos</string>
@ -1412,7 +1412,7 @@ Tanto la ubicación como el tiempo de estacionamiento se muestran en el panel de
<string name="rendering_value_pedestrian_name">Peatón</string>
<string name="shared_string_more">Más…</string>
<string name="download_additional_maps">¿Descargar los mapas que faltan %1$s (%2$d MB)?</string>
<string name="waypoints">Puntos de ruta</string>
<string name="waypoints">Puntos de referencia</string>
<string name="targets">Destinos</string>
<string name="way_alarms">Advertencias de tráfico</string>
<string name="speak_favorites">Favoritos cercanos</string>
@ -1880,8 +1880,8 @@ Lon %2$s</string>
<string name="save_poi_without_poi_type_message">¿Realmente quieres guardar el PDI sin especificar el tipo?</string>
<string name="shared_string_location">Ubicación</string>
<string name="poi_context_menu_modify_osm_change">Modificar cambio OSM</string>
<string name="context_menu_item_delete_waypoint">¿Borrar punto de ruta GPX?</string>
<string name="context_menu_item_edit_waypoint">Editar punto de ruta GPX</string>
<string name="context_menu_item_delete_waypoint">¿Borrar punto GPX?</string>
<string name="context_menu_item_edit_waypoint">Editar punto GPX</string>
<string name="context_menu_item_open_note">Abrir nota OSM</string>
<string name="osm_edit_reopened_note">Nota OSM reabierta</string>
@ -2086,7 +2086,7 @@ El espacio de almacenamiento usado es {3} MB temporalmente y {1} MB permanenteme
<string name="open_street_map_login_and_pass">Usuario y contraseña de OpenStreetMap</string>
<string name="report">Informe</string>
<string name="no_map_markers_found">Por favor, añade marcadores a través del mapa</string>
<string name="no_waypoints_found">No se han encontrado puntos de ruta</string>
<string name="no_waypoints_found">No se han encontrado puntos de referencia</string>
<string name="file_name_containes_illegal_char">El nombre de archivo contiene caracteres ilegales</string>
<string name="map_mode">Modo del mapa</string>
<string name="number_of_gpx_files_selected_pattern">%s archivos GPX seleccionados</string>
@ -2101,7 +2101,7 @@ El espacio de almacenamiento usado es {3} MB temporalmente y {1} MB permanenteme
<string name="access_smart_autoannounce_descr">Sólo notifica cuando se cambia la dirección al punto de destino</string>
<string name="access_autoannounce_period">"Período de autoanuncio"</string>
<string name="access_autoannounce_period_descr">Intervalo mínimo de tiempo entre anuncios</string>
<string name="access_default_color">Color por defecto</string>
<string name="access_default_color">Color predefinido</string>
<string name="access_category_choice">Elegir categoría</string>
<string name="access_hint_enter_name">Introducir nombre</string>
<string name="access_hint_enter_category">Introducir categoría</string>
@ -2302,7 +2302,7 @@ El espacio de almacenamiento usado es {3} MB temporalmente y {1} MB permanenteme
<string name="quick_action_navigation_voice">Voz sí/no</string>
<string name="quick_action_navigation_voice_off">La voz está apagada</string>
<string name="quick_action_navigation_voice_on">La voz está encendida</string>
<string name="quick_action_add_gpx">Añadir punto de ruta GPX</string>
<string name="quick_action_add_gpx">Añadir punto GPX</string>
<string name="quick_action_add_parking">Añadir lugar de estacionamiento</string>
<string name="quick_action_new_action">Añadir acción</string>
<string name="quick_action_edit_action">Editar acción</string>
@ -2506,7 +2506,7 @@ Por favor proporciona un código completo</string>
<string name="change_color">Cambiar color</string>
<string name="edit_name">Editar nombre</string>
<string name="animate_my_location">Animar mi ubicación</string>
<string name="animate_my_location_desc">Activa la animación de mi ubicación durante la navegación</string>
<string name="animate_my_location_desc">Activa la ubicación panorámica animada del mapa durante la navegación</string>
<string name="shared_string_overview">Resumen</string>
<string name="osmand_plus_extended_description_part2">"Navegación GPS
\n • Funciona en línea (rápido) o sin conexión (sin cargos de roaming al viajar al extranjero)
@ -2644,9 +2644,34 @@ Por favor proporciona un código completo</string>
<string name="mappilary_no_internet_desc">Debes tener conexión a Internet para ver fotos de Mapillary</string>
<string name="retry">Reintentar</string>
<string name="add_route_point">Añadir punto de ruta</string>
<string name="add_waypoint">Añadir punto de ruta</string>
<string name="save_gpx_waypoint">Guardar punto de ruta GPX</string>
<string name="add_waypoint">Añadir punto de referencia</string>
<string name="save_gpx_waypoint">Guardar punto GPX</string>
<string name="save_route_point">Guardar punto de ruta</string>
<string name="route_point_one">Punto de ruta 1</string>
<string name="waypoint_one">Punto de ruta 1</string>
</resources>
<string name="waypoint_one">Punto de referencia 1</string>
<string name="do_not_use_animations">No usar animaciones</string>
<string name="do_not_use_animations_descr">Desactiva las animaciones en la aplicación</string>
<string name="keep_showing_on_map">Mantener en el mapa</string>
<string name="exit_without_saving">¿Salir sin guardar?</string>
<string name="line">Línea</string>
<string name="save_as_route_point">Guardar como puntos de ruta</string>
<string name="save_as_line">Guardar como línea</string>
<string name="route_point">Punto de ruta</string>
<string name="edit_line">Editar línea</string>
<string name="add_point_before">Añadir punto anterior</string>
<string name="add_point_after">Añadir punto posterior</string>
<string name="shared_string_options">Opciones</string>
<string name="measurement_tool_snap_to_road_descr">OsmAnd añadirá puntos adicionales, según el tipo de navegación utilizado.</string>
<string name="measurement_tool_save_as_new_track_descr">Puede guardar los puntos, ya sea como puntos de ruta o como una línea.</string>
<string name="choose_navigation_type">Elegir tipo de navegación</string>
<string name="add_route_points">Añadir puntos de ruta</string>
<string name="add_line">Añadir línea</string>
<string name="empty_state_my_tracks">Añadir y grabar trazas</string>
<string name="empty_state_my_tracks_desc">Graba o importa trazas para visualizar</string>
<string name="empty_state_favourites">Añadir favoritos</string>
<string name="empty_state_favourites_desc">Añade favoritos al mapa o importa luego desde el sistema de archivos</string>
<string name="import_track">Importar traza</string>
<string name="import_track_desc">El archivo «%1$s» no contiene puntos de referencia, ¿Quiere importarlo como una traza?</string>
<string name="move_point">Mover punto</string>
<string name="add_segment_to_the_track">Añadir a una traza GPX</string>
</resources>

View file

@ -2902,4 +2902,8 @@ Fonctionnalités principales :
<string name="import_track_desc">Le fichier %1$s ne contient aucune étape, l\'importer comme trace ?</string>
<string name="move_point">Déplacer le point</string>
<string name="add_segment_to_the_track">Ajouter à une trace GPX</string>
</resources>
<string name="keep_showing_on_map">Toujours afficher sur la carte</string>
<string name="exit_without_saving">Quitter sans enregistrer ?</string>
<string name="do_not_use_animations">Ne pas utiliser les animations</string>
<string name="do_not_use_animations_descr">Désactive les animations dans l\'application</string>
</resources>

View file

@ -2885,4 +2885,5 @@ Copertura e qualità approssimativamente:
<string name="measurement_tool_snap_to_road_descr">OsmAnd aggiungerà dei punti, in base al tipo di navigazione.</string>
<string name="measurement_tool_save_as_new_track_descr">Puoi salvare i punti sia come punti di un percorso che come linea.</string>
<string name="choose_navigation_type">Scegli la modalità di navigazione</string>
<string name="exit_without_saving">Uscire senza salvare?</string>
</resources>

View file

@ -2831,4 +2831,6 @@ Reprezentuje obszar: %1$s x %2$s</string>
<string name="import_track_desc">Plik %1$s nie zawiera punktów trasy, czy zaimportować go jako ślad?</string>
<string name="move_point">Przesuń punkt</string>
<string name="add_segment_to_the_track">Dodaj do śladu GPX</string>
</resources>
<string name="keep_showing_on_map">Wciąż wyświetlaj na mapie</string>
<string name="exit_without_saving">Czy wyjść bez zapisywania?</string>
</resources>

View file

@ -2758,4 +2758,6 @@ Pro praghere iscrie su còdighe intreu</string>
<string name="add_segment_to_the_track">Annanghe a una rasta GPX</string>
<string name="keep_showing_on_map">Sighi a l\'ammustrare in sa mapa</string>
<string name="exit_without_saving">Essire chene sarvare?</string>
<string name="do_not_use_animations">No imprees sas animatziones</string>
<string name="do_not_use_animations_descr">Disabilitat sas animatziones in s\'aplicatzione</string>
</resources>

View file

@ -2990,4 +2990,6 @@
<string name="import_track_desc">Файл %1$s не містить шляхових точок, імпортувати його в якості треку?</string>
<string name="move_point">Перемістити точку</string>
<string name="add_segment_to_the_track">Додати до GPX-треку</string>
</resources>
<string name="keep_showing_on_map">Продовжувати показувати на мапі</string>
<string name="exit_without_saving">Вийти без збереження?</string>
</resources>

View file

@ -2841,4 +2841,6 @@ OsmAnd (Automated Navigation Directions) 是一個地圖和導航的應用程式
<string name="add_segment_to_the_track">增加到 GPX 軌跡</string>
<string name="keep_showing_on_map">在地圖上維持著顯示</string>
<string name="exit_without_saving">離開而不儲存嗎?</string>
<string name="do_not_use_animations">不使用動畫</string>
<string name="do_not_use_animations_descr">這會停用在應用程式中的動畫</string>
</resources>

View file

@ -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="do_not_use_animations">Do not use animations</string>
<string name="do_not_use_animations_descr">It disables animations in app</string>
<string name="keep_showing_on_map">Keep showing on map</string>
<string name="exit_without_saving">Exit without saving?</string>
<string name="line">Line</string>

View file

@ -262,6 +262,14 @@
<item name="android:textColorSecondary">@color/color_white</item>
</style>
<style name="OsmandDarkTheme.NoAnimation">
<item name="alertDialogTheme">@style/Theme.AppCompat.Dialog.Alert.NoAnimation</item>
</style>
<style name="OsmandLightTheme.NoAnimation">
<item name="alertDialogTheme">@style/Theme.AppCompat.Light.Dialog.Alert.NoAnimation</item>
</style>
<style name="OsmandDarkTheme" parent="Theme.AppCompat">
<item name="mapBackground">@color/map_background_color_dark</item>
<item name="chart_marker_background">@drawable/chart_marker_background_dark</item>
@ -339,6 +347,14 @@
<item name="android:textColor">@color/color_white</item>
</style>
<style name="Theme.AppCompat.Dialog.Alert.NoAnimation">
<item name="android:windowAnimationStyle">@null</item>
</style>
<style name="Theme.AppCompat.Light.Dialog.Alert.NoAnimation">
<item name="android:windowAnimationStyle">@null</item>
</style>
<!-- Standard action bar override -->
<style name="Widget.Styled.ActionBarDark" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="background">@color/actionbar_dark_color</item>
@ -374,6 +390,11 @@
<!-- Dialog popup -->
<style name="Animations"/>
<style name="Animations.NoAnimation">
<item name="@android:windowEnterAnimation">@null</item>
<item name="@android:windowExitAnimation">@null</item>
</style>
<!-- PopDownMenu -->
<style name="Animations.PopDownMenu"/>

View file

@ -694,10 +694,19 @@ public class OsmandApplication extends MultiDexApplication {
public void applyTheme(Context c) {
int t = R.style.OsmandDarkTheme;
boolean doNotUseAnimations = osmandSettings.DO_NOT_USE_ANIMATIONS.get();
if (osmandSettings.OSMAND_THEME.get() == OsmandSettings.OSMAND_DARK_THEME) {
t = R.style.OsmandDarkTheme;
if (doNotUseAnimations) {
t = R.style.OsmandDarkTheme_NoAnimation;
} else {
t = R.style.OsmandDarkTheme;
}
} else if (osmandSettings.OSMAND_THEME.get() == OsmandSettings.OSMAND_LIGHT_THEME) {
t = R.style.OsmandLightTheme;
if (doNotUseAnimations) {
t = R.style.OsmandLightTheme_NoAnimation;
} else {
t = R.style.OsmandLightTheme;
}
}
setLanguage(c);
c.setTheme(t);

View file

@ -885,6 +885,7 @@ public class OsmandSettings {
public final OsmandPreference<Boolean> USE_KALMAN_FILTER_FOR_COMPASS = new BooleanPreference("use_kalman_filter_compass", true).makeGlobal().cache();
public final OsmandPreference<Boolean> DO_NOT_SHOW_STARTUP_MESSAGES = new BooleanPreference("do_not_show_startup_messages", false).makeGlobal().cache();
public final OsmandPreference<Boolean> DO_NOT_USE_ANIMATIONS = new BooleanPreference("do_not_use_animations", false).makeGlobal().cache();
public final OsmandPreference<Boolean> DO_NOT_SEND_ANONYMOUS_APP_USAGE = new BooleanPreference("do_not_send_anonymous_app_usage", false).makeGlobal().cache();

View file

@ -11,6 +11,7 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.graphics.Rect;
import android.media.AudioManager;
import android.net.Uri;
import android.os.AsyncTask;
@ -39,6 +40,7 @@ import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import net.osmand.AndroidUtils;
import net.osmand.Location;
import net.osmand.PlatformUtil;
import net.osmand.SecondSplashScreenFragment;
@ -200,7 +202,6 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
@Override
public void onCreate(Bundle savedInstanceState) {
setRequestedOrientation(AndroidUiHelper.getScreenOrientation(this));
overridePendingTransition(0, 0);
long tm = System.currentTimeMillis();
app = getMyApplication();
settings = app.getSettings();
@ -1404,11 +1405,15 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
public void openDrawer() {
mapActions.updateDrawerMenu();
drawerLayout.openDrawer(Gravity.LEFT);
boolean animate = !settings.DO_NOT_USE_ANIMATIONS.get();
drawerLayout.openDrawer(Gravity.LEFT, animate);
}
public void disableDrawer() {
drawerDisabled = true;
if (settings.DO_NOT_USE_ANIMATIONS.get()) {
closeDrawer();
}
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
}
@ -1421,8 +1426,25 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
return drawerDisabled;
}
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
if (settings.DO_NOT_USE_ANIMATIONS.get()) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (drawerLayout.isDrawerOpen(Gravity.LEFT)) {
int width = AndroidUtils.dpToPx(this, 280);
if (event.getRawX() > width) {
closeDrawer();
}
}
}
}
return super.dispatchTouchEvent(event);
}
public void closeDrawer() {
drawerLayout.closeDrawer(Gravity.LEFT);
boolean animate = !settings.DO_NOT_USE_ANIMATIONS.get();
drawerLayout.closeDrawer(Gravity.LEFT, animate);
}
public void toggleDrawer() {

View file

@ -478,6 +478,7 @@ public class SettingsGeneralActivity extends SettingsBaseActivity implements OnR
misc.addPreference(createCheckBoxPreference(settings.DO_NOT_SEND_ANONYMOUS_APP_USAGE, R.string.do_not_send_anonymous_app_usage, R.string.do_not_send_anonymous_app_usage_desc));
}
misc.addPreference(createCheckBoxPreference(settings.DO_NOT_SHOW_STARTUP_MESSAGES, R.string.do_not_show_startup_messages, R.string.do_not_show_startup_messages_desc));
misc.addPreference(createCheckBoxPreference(settings.DO_NOT_USE_ANIMATIONS, R.string.do_not_use_animations, R.string.do_not_use_animations_descr));
}
@ -518,6 +519,8 @@ public class SettingsGeneralActivity extends SettingsBaseActivity implements OnR
restartApp();
} else if (id.equals(settings.METRIC_SYSTEM.getId())) {
settings.METRIC_SYSTEM_CHANGED_MANUALLY.set(true);
} else if (id.equals(settings.DO_NOT_USE_ANIMATIONS.getId())) {
restartApp();
} else {
updateAllSettings();
}

View file

@ -29,7 +29,9 @@ public abstract class BottomSheetDialogFragment extends DialogFragment {
final Dialog dialog = new Dialog(getActivity(), themeId);
dialog.setCanceledOnTouchOutside(true);
dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
dialog.getWindow().getAttributes().windowAnimations = R.style.Animations_PopUpMenu_Bottom;
if (!getMyApplication().getSettings().DO_NOT_USE_ANIMATIONS.get()) {
dialog.getWindow().getAttributes().windowAnimations = R.style.Animations_PopUpMenu_Bottom;
}
dialog.setCanceledOnTouchOutside(true);
return dialog;
}

View file

@ -757,7 +757,8 @@ public class DashboardOnMap implements ObservableScrollViewCallbacks, DynamicLis
}
public void setDashboardVisibility(boolean visible, DashboardType type) {
setDashboardVisibility(visible, type, this.visible ? visibleType : null, true);
boolean animate = !getMyApplication().getSettings().DO_NOT_USE_ANIMATIONS.get();
setDashboardVisibility(visible, type, this.visible ? visibleType : null, animate);
}
public void setDashboardVisibility(boolean visible, DashboardType type, boolean animation) {
@ -1187,7 +1188,8 @@ public class DashboardOnMap implements ObservableScrollViewCallbacks, DynamicLis
mapActivity.getMapViewTrackingUtilities().switchToRoutePlanningMode();
mapActivity.refreshMap();
}
hideDashboard(true);
boolean animate = !getMyApplication().getSettings().DO_NOT_USE_ANIMATIONS.get();
hideDashboard(animate);
}

View file

@ -4,6 +4,7 @@ import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -94,10 +95,15 @@ public class MapRouteInfoMenuFragment extends Fragment {
}
public void show(MapActivity mapActivity) {
int slideInAnim = R.anim.slide_in_bottom;
int slideOutAnim = R.anim.slide_out_bottom;
int slideInAnim = 0;
int slideOutAnim = 0;
if (!mapActivity.getMyApplication().getSettings().DO_NOT_USE_ANIMATIONS.get()) {
slideInAnim = R.anim.slide_in_bottom;
slideOutAnim = R.anim.slide_out_bottom;
}
mapActivity.getSupportFragmentManager().beginTransaction()
mapActivity.getSupportFragmentManager()
.beginTransaction()
.setCustomAnimations(slideInAnim, slideOutAnim, slideInAnim, slideOutAnim)
.add(R.id.routeMenuContainer, this, TAG)
.addToBackStack(TAG)
@ -165,10 +171,10 @@ public class MapRouteInfoMenuFragment extends Fragment {
}
public static boolean showInstance(final MapActivity mapActivity) {
try {
boolean portrait = AndroidUiHelper.isOrientationPortrait(mapActivity);
int slideInAnim;
int slideOutAnim;
boolean portrait = AndroidUiHelper.isOrientationPortrait(mapActivity);
int slideInAnim = 0;
int slideOutAnim = 0;
if (!mapActivity.getMyApplication().getSettings().DO_NOT_USE_ANIMATIONS.get()) {
if (portrait) {
slideInAnim = R.anim.slide_in_bottom;
slideOutAnim = R.anim.slide_out_bottom;
@ -176,14 +182,18 @@ public class MapRouteInfoMenuFragment extends Fragment {
slideInAnim = R.anim.slide_in_left;
slideOutAnim = R.anim.slide_out_left;
}
}
try {
mapActivity.getContextMenu().hideMenues();
MapRouteInfoMenuFragment fragment = new MapRouteInfoMenuFragment();
mapActivity.getSupportFragmentManager().beginTransaction()
mapActivity.getSupportFragmentManager()
.beginTransaction()
.setCustomAnimations(slideInAnim, slideOutAnim, slideInAnim, slideOutAnim)
.add(R.id.routeMenuContainer, fragment, TAG)
.addToBackStack(TAG).commitAllowingStateLoss();
.addToBackStack(TAG)
.commitAllowingStateLoss();
return true;

View file

@ -820,7 +820,7 @@ public class MeasurementToolFragment extends Fragment {
gpxFile = result[0];
SelectedGpxFile selectedGpxFile = mapActivity.getMyApplication().getSelectedGpxHelper().getSelectedFileByPath(gpxFile.path);
boolean showOnMap = selectedGpxFile != null;
saveExistingGpx(gpxFile, showOnMap, null, false);
saveExistingGpx(gpxFile, showOnMap, ActionType.ADD_SEGMENT, false);
}
return true;
}

View file

@ -11,6 +11,7 @@ import android.view.ContextThemeWrapper;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.animation.Animation;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
@ -43,6 +44,9 @@ public class SnapToRoadBottomSheetDialogFragment extends android.support.design.
@Override
public void setupDialog(Dialog dialog, int style) {
super.setupDialog(dialog, style);
if (getMyApplication().getSettings().DO_NOT_USE_ANIMATIONS.get()) {
dialog.getWindow().setWindowAnimations(R.style.Animations_NoAnimation);
}
nightMode = getMyApplication().getDaynightHelper().isNightModeForMapControls();
portrait = AndroidUiHelper.isOrientationPortrait(getActivity());