diff --git a/OsmAnd-java/src/net/osmand/binary/BinaryInspector.java b/OsmAnd-java/src/net/osmand/binary/BinaryInspector.java
index b52e20c3b7..4fb72e4f4d 100644
--- a/OsmAnd-java/src/net/osmand/binary/BinaryInspector.java
+++ b/OsmAnd-java/src/net/osmand/binary/BinaryInspector.java
@@ -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",
});
diff --git a/OsmAnd-java/src/net/osmand/binary/BinaryMapDataObject.java b/OsmAnd-java/src/net/osmand/binary/BinaryMapDataObject.java
index f6a2fe2640..23866e8f82 100644
--- a/OsmAnd-java/src/net/osmand/binary/BinaryMapDataObject.java
+++ b/OsmAnd-java/src/net/osmand/binary/BinaryMapDataObject.java
@@ -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) {
diff --git a/OsmAnd-java/src/net/osmand/binary/BinaryMapIndexReader.java b/OsmAnd-java/src/net/osmand/binary/BinaryMapIndexReader.java
index 1c87fef158..35f6b11a7d 100644
--- a/OsmAnd-java/src/net/osmand/binary/BinaryMapIndexReader.java
+++ b/OsmAnd-java/src/net/osmand/binary/BinaryMapIndexReader.java
@@ -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 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);
}
diff --git a/OsmAnd/res/values-be-rBY/strings.xml b/OsmAnd/res/values-be-rBY/strings.xml
index a9356de1fc..74f2b40073 100644
--- a/OsmAnd/res/values-be-rBY/strings.xml
+++ b/OsmAnd/res/values-be-rBY/strings.xml
@@ -2808,4 +2808,6 @@ U vypadku, kali vy lubіcie OsmAnd і OSM і chočacie padtrymać jaho, heta іd
Dadać u GPX-slied
Praciahvać pakazvać na mapie
Vyjsci biez zachavannia?
+ Nie ŭžyvać animacyju
+ Heta adkliučaje animacyju ŭ prahramie
diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml
index 6c8a5fe3aa..8e3d31e47a 100644
--- a/OsmAnd/res/values-be/strings.xml
+++ b/OsmAnd/res/values-be/strings.xml
@@ -1791,7 +1791,7 @@
Агульныя налады
Ачысьціць ўсё
Згарнуць
- Маё месцазнаходжаньне
+ Маё месцазнаходжанне
Мае сьляды
Сьлед, які цяпер запісваецца
Турыстычная мапа
@@ -2386,7 +2386,7 @@
Не правяраць абнаўленні версій і зніжкі ад OsmAnd
Не паказваць абнаўленні
Прапусьціць сьцягванне мапаў
- У вас няма загружаных мапаў. Вы можаце выбраць мапу са сьпісу або сьцягнуць яе пазьней праз мэню - %1$s.
+ У вас няма загружаных мапаў. Вы можаце выбраць мапу са спісу або сцягнуць яе пазней праз меню - %1$s.
Абраць іншы рэгіён
Пошук мапаў…
OsmAnd вызначыць ваша месцазнаходжанне і прапануе спампаваць мапы для гэтага рэгіёну.
@@ -2857,4 +2857,6 @@
Дадаць у GPX-след
Працягваць паказваць на мапе
Выйсці без захавання?
+ Не ўжываць анімацыю
+ Гэта адключае анімацыю ў праграме
diff --git a/OsmAnd/res/values-ca/strings.xml b/OsmAnd/res/values-ca/strings.xml
index 81183dfe6a..07839a9b2b 100644
--- a/OsmAnd/res/values-ca/strings.xml
+++ b/OsmAnd/res/values-ca/strings.xml
@@ -890,14 +890,14 @@ Memòria proporcional %4$s MB (límit de l\'Android %5$s MB, Dalvik %6$s MB).Estableix el temps màxim d\'espera per a cada correcció de la posició en segon pla
Espera màxima per corregir
Dades d\'àudio/vídeo
- Esteu segurs de què voleu parar la navegació?
- "N\'esteu segurs que voleu eliminar la vostra destinació (i les vostres fites)?"
+ Esteu segur què voleu aturar la navegació?
+ "N\'esteu segur que voleu eliminar la vostra destinació (i les vostres fites)?"
Mostra
Fotografia %1$s %2$s
Fes una fotografia
Fes una fotografia
Ombres de relleu
- Activeu per calcular itineraris precisos sense errades. Encara és lent i de distància limitada.
+ Activeu per calcular itineraris precisos sense discontinuïtats. De moment és lent i de distància limitada.
Encaminament precís (alfa)
Punt de pas %1$s
Feu un donatiu per veure noves funcionalitats implementades a l\'aplicació
@@ -2610,4 +2610,6 @@ Abasta l\'àrea: %1$s x %2$s
Afegeix a una traça GPX
Continua mostrant al mapa
Voleu sortir sense desar?
+ Sense ús d\'animacions
+ Això desactiva les animacions a l\'aplicació
diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml
index 108e3cb495..ac41382e61 100644
--- a/OsmAnd/res/values-da/strings.xml
+++ b/OsmAnd/res/values-da/strings.xml
@@ -2857,4 +2857,8 @@ Tidligere destination bliver sidste mellemliggende punkt.
Filen %1$s indeholder ingen rutepunkter, importer den som et spor?
Flyt punkt
Tilføj til et GPX-spor
-
+Fortsæt med at vise på kortet
+ Afslut uden at gemme?
+ Brug ikke animationer
+ Deaktiverer animationer i programmet
+
diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml
index e5a64185a6..b9e8500e02 100644
--- a/OsmAnd/res/values-es-rAR/strings.xml
+++ b/OsmAnd/res/values-es-rAR/strings.xml
@@ -1409,7 +1409,7 @@ Se aprecia la participación activa, y las contribuciones pueden hacerse directa
Orientación del mapa
Detalle de la ruta
Favoritos importados correctamente
- ¿Guardar datos en un archivo GPX o importar puntos a Favoritos?
+ ¿Guardar datos en un archivo GPX o importar puntos de referencia a Favoritos?
El archivo GPX de favoritos no se encontró en {0}
Los puntos favoritos se guardaron correctamente en {0}
Sin puntos favoritos que guardar
@@ -2734,5 +2734,7 @@ Proporciona un código completo
Mover punto
Añadir a una traza GPX
Mantener en el mapa
- Salir sin guardar?
+ ¿Salir sin guardar?
+ No usar animaciones
+ Desactiva las animaciones en la aplicación
diff --git a/OsmAnd/res/values-es-rUS/strings.xml b/OsmAnd/res/values-es-rUS/strings.xml
index 0661b8b066..5e1c5e1148 100644
--- a/OsmAnd/res/values-es-rUS/strings.xml
+++ b/OsmAnd/res/values-es-rUS/strings.xml
@@ -1409,7 +1409,7 @@ Se aprecia la participación activa, y las contribuciones pueden hacerse directa
Orientación del mapa
Detalle de la ruta
Favoritos importados correctamente
- ¿Guardar datos en un archivo GPX o importar puntos a Favoritos?
+ ¿Guardar datos en un archivo GPX o importar puntos de referencia a Favoritos?
El archivo GPX de favoritos no se encontró en {0}
Los puntos favoritos se guardaron correctamente en {0}
Sin puntos favoritos que guardar
@@ -2735,5 +2735,7 @@ Proporciona un código completo
Mover punto
Añadir a una traza GPX
Mantener en el mapa
- Salir sin guardar?
+ ¿Salir sin guardar?
+ No usar animaciones
+ Desactiva las animaciones en la aplicación
diff --git a/OsmAnd/res/values-es/strings.xml b/OsmAnd/res/values-es/strings.xml
index 9c7ec5e846..2224905b2b 100644
--- a/OsmAnd/res/values-es/strings.xml
+++ b/OsmAnd/res/values-es/strings.xml
@@ -94,7 +94,7 @@ El espacio de almacenamiento usado es {1} MB.
Pueblo
Ciudad pequeña
Ciudad
- Detener simulación
+ Parar simulación
Iniciar simulación
El archivo no se puede renombrar.
Ya existe un archivo con ese nombre.
@@ -117,7 +117,7 @@ El espacio de almacenamiento usado es {1} MB.
Centro del mapa actual
Origen:
Buscar cerca
- Guardar como traza GPX
+ Guardar como nueva traza GPX
Ruta guardada correctamente como «%1$s».
Nombre de archivo:
Ya existe un archivo con el mismo nombre.
@@ -225,9 +225,9 @@ El espacio de almacenamiento usado es {1} MB.
Para ver la ubicación sigue el enlace del navegador %1$s o el enlace interno de Android %2$s
Enviar ubicación
Compartir ubicación
- El punto de ruta GPX «{0}» fue añadido correctamente
- Añadir el punto de ruta a la traza GPX grabada
- Añadir punto de ruta GPX
+ El punto GPX «{0}» fue añadido correctamente
+ Añadir el punto de referencia a la traza GPX grabada
+ Añadir punto GPX
Administrativo
Barrera
Educación
@@ -237,8 +237,8 @@ El espacio de almacenamiento usado es {1} MB.
Geo-caché
Salud
Histórico
- Uso de Suelo
- Placer
+ Uso del suelo
+ Ocio
Artificial
Militar
Naturaleza
@@ -1040,7 +1040,7 @@ Tanto la ubicación como el tiempo de estacionamiento se muestran en el panel de
Radares
Avisos de tráfico
Contraseña OSM (opcional)
- Puntos de ruta GPX
+ Puntos GPX
Anunciar…
Configura el anuncio de nombres de calles, advertencias de tráfico (paradas, badenes), advertencias de radares de velocidad, límites de velocidad
Nombres de calles (TTS)
@@ -1091,7 +1091,7 @@ Tanto la ubicación como el tiempo de estacionamiento se muestran en el panel de
Simular, utilizando la ruta calculada
Simular, utilizando la traza GPX
Senderismo
- Moto
+ Motocicleta
Barco
Avión
Borrará %1$d cambio(s) de OSM. ¿Está seguro?
@@ -1271,7 +1271,7 @@ Tanto la ubicación como el tiempo de estacionamiento se muestran en el panel de
Token de sesión: %1$s
Reiniciar sesión OsMo
Información de depuración
- "¿Guardar datos como archivo GPX o importar los puntos de ruta a Favoritos?"
+ ¿Guardar datos como archivo GPX o importar los puntos de referencia a Favoritos?
Seguir
Ingresar
Con el fin de crear grupos es necesario ser usuario registrado de OsMo.
@@ -1308,7 +1308,7 @@ Tanto la ubicación como el tiempo de estacionamiento se muestran en el panel de
seleccionado
Intervalo de división
Subtrazas: %1$s
- Puntos de ruta: %1$s
+ Puntos de referencia: %1$s
Distancia: %1$s (%2$s puntos)
Hora inicio: %1$tF, %1$tT
Hora fin: %1$tF, %1$tT
@@ -1318,7 +1318,7 @@ Tanto la ubicación como el tiempo de estacionamiento se muestran en el panel de
Rango de altitud: %1$s
Descenso/ascenso: %1$s
Tiempo actual
- Punto de ruta
+ Punto de referencia
Marque los destinos
Etiquetas de los puntos
Guardar como grupo de favoritos
@@ -1412,7 +1412,7 @@ Tanto la ubicación como el tiempo de estacionamiento se muestran en el panel de
Peatón
Más…
¿Descargar los mapas que faltan %1$s (%2$d MB)?
- Puntos de ruta
+ Puntos de referencia
Destinos
Advertencias de tráfico
Favoritos cercanos
@@ -1880,8 +1880,8 @@ Lon %2$s
¿Realmente quieres guardar el PDI sin especificar el tipo?
Ubicación
Modificar cambio OSM
- ¿Borrar punto de ruta GPX?
- Editar punto de ruta GPX
+ ¿Borrar punto GPX?
+ Editar punto GPX
Abrir nota OSM
Nota OSM reabierta
@@ -2086,7 +2086,7 @@ El espacio de almacenamiento usado es {3} MB temporalmente y {1} MB permanenteme
Usuario y contraseña de OpenStreetMap
Informe
Por favor, añade marcadores a través del mapa
- No se han encontrado puntos de ruta
+ No se han encontrado puntos de referencia
El nombre de archivo contiene caracteres ilegales
Modo del mapa
%s archivos GPX seleccionados
@@ -2101,7 +2101,7 @@ El espacio de almacenamiento usado es {3} MB temporalmente y {1} MB permanenteme
Sólo notifica cuando se cambia la dirección al punto de destino
"Período de autoanuncio"
Intervalo mínimo de tiempo entre anuncios
- Color por defecto
+ Color predefinido
Elegir categoría
Introducir nombre
Introducir categoría
@@ -2302,7 +2302,7 @@ El espacio de almacenamiento usado es {3} MB temporalmente y {1} MB permanenteme
Voz sí/no
La voz está apagada
La voz está encendida
- Añadir punto de ruta GPX
+ Añadir punto GPX
Añadir lugar de estacionamiento
Añadir acción
Editar acción
@@ -2506,7 +2506,7 @@ Por favor proporciona un código completo
Cambiar color
Editar nombre
Animar mi ubicación
- Activa la animación de mi ubicación durante la navegación
+ Activa la ubicación panorámica animada del mapa durante la navegación
Resumen
"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
Debes tener conexión a Internet para ver fotos de Mapillary
Reintentar
Añadir punto de ruta
- Añadir punto de ruta
- Guardar punto de ruta GPX
+ Añadir punto de referencia
+ Guardar punto GPX
Guardar punto de ruta
Punto de ruta 1
-Punto de ruta 1
-
+Punto de referencia 1
+ No usar animaciones
+ Desactiva las animaciones en la aplicación
+ Mantener en el mapa
+ ¿Salir sin guardar?
+ Línea
+ Guardar como puntos de ruta
+ Guardar como línea
+ Punto de ruta
+ Editar línea
+ Añadir punto anterior
+ Añadir punto posterior
+ Opciones
+ OsmAnd añadirá puntos adicionales, según el tipo de navegación utilizado.
+ Puede guardar los puntos, ya sea como puntos de ruta o como una línea.
+ Elegir tipo de navegación
+ Añadir puntos de ruta
+ Añadir línea
+ Añadir y grabar trazas
+ Graba o importa trazas para visualizar
+ Añadir favoritos
+ Añade favoritos al mapa o importa luego desde el sistema de archivos
+ Importar traza
+ El archivo «%1$s» no contiene puntos de referencia, ¿Quiere importarlo como una traza?
+ Mover punto
+ Añadir a una traza GPX
+
diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml
index de4f86a57f..312a657935 100644
--- a/OsmAnd/res/values-fr/strings.xml
+++ b/OsmAnd/res/values-fr/strings.xml
@@ -2902,4 +2902,8 @@ Fonctionnalités principales :
Le fichier %1$s ne contient aucune étape, l\'importer comme trace ?
Déplacer le point
Ajouter à une trace GPX
-
+Toujours afficher sur la carte
+ Quitter sans enregistrer ?
+ Ne pas utiliser les animations
+ Désactive les animations dans l\'application
+
diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml
index 512c73f1fc..1fe1528c6b 100644
--- a/OsmAnd/res/values-it/strings.xml
+++ b/OsmAnd/res/values-it/strings.xml
@@ -2885,4 +2885,5 @@ Copertura e qualità approssimativamente:
OsmAnd aggiungerà dei punti, in base al tipo di navigazione.
Puoi salvare i punti sia come punti di un percorso che come linea.
Scegli la modalità di navigazione
+ Uscire senza salvare?
diff --git a/OsmAnd/res/values-pl/strings.xml b/OsmAnd/res/values-pl/strings.xml
index 659c13eb67..215c2577a3 100644
--- a/OsmAnd/res/values-pl/strings.xml
+++ b/OsmAnd/res/values-pl/strings.xml
@@ -2831,4 +2831,6 @@ Reprezentuje obszar: %1$s x %2$s
Plik %1$s nie zawiera punktów trasy, czy zaimportować go jako ślad?
Przesuń punkt
Dodaj do śladu GPX
-
+Wciąż wyświetlaj na mapie
+ Czy wyjść bez zapisywania?
+
diff --git a/OsmAnd/res/values-sc/strings.xml b/OsmAnd/res/values-sc/strings.xml
index a41c06c215..f4805427d6 100644
--- a/OsmAnd/res/values-sc/strings.xml
+++ b/OsmAnd/res/values-sc/strings.xml
@@ -2758,4 +2758,6 @@ Pro praghere iscrie su còdighe intreu
Annanghe a una rasta GPX
Sighi a l\'ammustrare in sa mapa
Essire chene sarvare?
+ No imprees sas animatziones
+ Disabilitat sas animatziones in s\'aplicatzione
diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml
index 6fd9803f33..395e08b105 100644
--- a/OsmAnd/res/values-uk/strings.xml
+++ b/OsmAnd/res/values-uk/strings.xml
@@ -2990,4 +2990,6 @@
Файл %1$s не містить шляхових точок, імпортувати його в якості треку?
Перемістити точку
Додати до GPX-треку
-
+Продовжувати показувати на мапі
+ Вийти без збереження?
+
diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml
index 3fb03a242c..30e72e8267 100644
--- a/OsmAnd/res/values-zh-rTW/strings.xml
+++ b/OsmAnd/res/values-zh-rTW/strings.xml
@@ -2841,4 +2841,6 @@ OsmAnd (Automated Navigation Directions) 是一個地圖和導航的應用程式
增加到 GPX 軌跡
在地圖上維持著顯示
離開而不儲存嗎?
+ 不使用動畫
+ 這會停用在應用程式中的動畫
diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml
index 352d6b9ce4..4933b7ca6b 100644
--- a/OsmAnd/res/values/strings.xml
+++ b/OsmAnd/res/values/strings.xml
@@ -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
-->
+ Do not use animations
+ It disables animations in app
Keep showing on map
Exit without saving?
Line
diff --git a/OsmAnd/res/values/styles.xml b/OsmAnd/res/values/styles.xml
index 816136016b..6c312fb8a1 100644
--- a/OsmAnd/res/values/styles.xml
+++ b/OsmAnd/res/values/styles.xml
@@ -262,6 +262,14 @@
- @color/color_white
+
+
+
+
+
+
+
+
diff --git a/OsmAnd/src/net/osmand/plus/OsmandApplication.java b/OsmAnd/src/net/osmand/plus/OsmandApplication.java
index f23d2bd064..ca3046da0a 100644
--- a/OsmAnd/src/net/osmand/plus/OsmandApplication.java
+++ b/OsmAnd/src/net/osmand/plus/OsmandApplication.java
@@ -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);
diff --git a/OsmAnd/src/net/osmand/plus/OsmandSettings.java b/OsmAnd/src/net/osmand/plus/OsmandSettings.java
index d7f0a3d237..e79fc369e2 100644
--- a/OsmAnd/src/net/osmand/plus/OsmandSettings.java
+++ b/OsmAnd/src/net/osmand/plus/OsmandSettings.java
@@ -885,6 +885,7 @@ public class OsmandSettings {
public final OsmandPreference USE_KALMAN_FILTER_FOR_COMPASS = new BooleanPreference("use_kalman_filter_compass", true).makeGlobal().cache();
public final OsmandPreference DO_NOT_SHOW_STARTUP_MESSAGES = new BooleanPreference("do_not_show_startup_messages", false).makeGlobal().cache();
+ public final OsmandPreference DO_NOT_USE_ANIMATIONS = new BooleanPreference("do_not_use_animations", false).makeGlobal().cache();
public final OsmandPreference DO_NOT_SEND_ANONYMOUS_APP_USAGE = new BooleanPreference("do_not_send_anonymous_app_usage", false).makeGlobal().cache();
diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java
index 9feb1be7e1..e07721d14b 100644
--- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java
+++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java
@@ -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() {
diff --git a/OsmAnd/src/net/osmand/plus/activities/SettingsGeneralActivity.java b/OsmAnd/src/net/osmand/plus/activities/SettingsGeneralActivity.java
index b07ab4427d..3fa6974167 100644
--- a/OsmAnd/src/net/osmand/plus/activities/SettingsGeneralActivity.java
+++ b/OsmAnd/src/net/osmand/plus/activities/SettingsGeneralActivity.java
@@ -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();
}
diff --git a/OsmAnd/src/net/osmand/plus/base/BottomSheetDialogFragment.java b/OsmAnd/src/net/osmand/plus/base/BottomSheetDialogFragment.java
index d799a04fb0..887bc70323 100644
--- a/OsmAnd/src/net/osmand/plus/base/BottomSheetDialogFragment.java
+++ b/OsmAnd/src/net/osmand/plus/base/BottomSheetDialogFragment.java
@@ -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;
}
diff --git a/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java b/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java
index fd744f9503..e841306037 100644
--- a/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java
+++ b/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java
@@ -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);
}
diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoMenuFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoMenuFragment.java
index 2843321757..6ebf0ee420 100644
--- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoMenuFragment.java
+++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/other/MapRouteInfoMenuFragment.java
@@ -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;
diff --git a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java
index 36b7f92c5b..d5b5d9a0d8 100644
--- a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java
+++ b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java
@@ -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;
}
diff --git a/OsmAnd/src/net/osmand/plus/measurementtool/SnapToRoadBottomSheetDialogFragment.java b/OsmAnd/src/net/osmand/plus/measurementtool/SnapToRoadBottomSheetDialogFragment.java
index 9b8084ad99..1ab369ba18 100644
--- a/OsmAnd/src/net/osmand/plus/measurementtool/SnapToRoadBottomSheetDialogFragment.java
+++ b/OsmAnd/src/net/osmand/plus/measurementtool/SnapToRoadBottomSheetDialogFragment.java
@@ -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());