diff --git a/OsmAnd-telegram/res/values-da/strings.xml b/OsmAnd-telegram/res/values-da/strings.xml index caefa87b94..7430554a21 100644 --- a/OsmAnd-telegram/res/values-da/strings.xml +++ b/OsmAnd-telegram/res/values-da/strings.xml @@ -20,7 +20,7 @@ Tilføj enhed Del placering som Kontakter og grupper som der deles placering med. - "Bekræft log af OsmAnd Tracker, der kan ikke deles placering eller se placering af andre\?" + Bekræft log af OsmAnd Tracker, der kan ikke deles placering eller se placering af andre\? Log ud af OsmAnd Tracker\? Navn Efter afstand @@ -142,9 +142,7 @@ t min sek - - OsmAnd Tracker giver mulighed for at dele placering og se placering af andre i OsmAnd.
-
Programmet bruger Telegram API, så der skal bruges en Telegram konto.
+ OsmAnd Tracker giver mulighed for at dele placering og se placering af andre i OsmAnd.

Programmet bruger Telegram API, så der skal bruges en Telegram konto.
Placering Sidste ajourførte placering: Sendt korrekt og opdateret diff --git a/OsmAnd/AndroidManifest.xml b/OsmAnd/AndroidManifest.xml index 85235f8647..b18c61d0c8 100644 --- a/OsmAnd/AndroidManifest.xml +++ b/OsmAnd/AndroidManifest.xml @@ -1053,7 +1053,6 @@ android:label="@string/process_downloading_service" android:stopWithTask="false" /> - diff --git a/OsmAnd/res/drawable/ic_action_trail_overview.xml b/OsmAnd/res/drawable/ic_action_trail_overview.xml new file mode 100644 index 0000000000..edc76c092c --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_trail_overview.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/OsmAnd/res/drawable/warnings_railways_ca.xml b/OsmAnd/res/drawable/warnings_railways_ca.xml new file mode 100644 index 0000000000..c6c219c5d8 --- /dev/null +++ b/OsmAnd/res/drawable/warnings_railways_ca.xml @@ -0,0 +1,17 @@ + + + + + diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index f2ce63b2ed..67eea68da9 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -289,7 +289,7 @@ فرز من الباب إلى الباب الرجاء الانتظار حتى انتهاء المهمة الحالية توفر %1$d ملفات للتحميل - إلغاء مسار + رفض المسار؟ تسجيل المسار قم بضبط كيفية تسجيل الرحلات. تحديد سمة للتطبيق: ليلي، نهاري. @@ -3990,4 +3990,17 @@ الألمانية (تقليدية) يمكنك استخدام بيانات الارتفاع للنظر في الصعود / الهبوط لرحلتك طائرة + ربط الأجزاء + تقسيم قبل + تقسيم بعد + إضافة شريحة جديدة + • خيار مضاف لتصدير واستيراد جميع البيانات بما في ذلك الإعدادات والموارد والأماكن الخاصة بي +\n +\n • مخطط الطريق: الرسوم البيانية للأجزاء مع المسار ، إضافة القدرة على إنشاء وتحرير مسارات مقطع مضاعفة +\n +\n • تمت إضافة طريقة مصادقة OAuth لـ OpenStreetMap ، واجهة مستخدم محسنة لمربعات حوار OSM +\n +\n • ألوان مخصصة للمفضلة والمسارات نقاط الطريق +\n +\n \ No newline at end of file diff --git a/OsmAnd/res/values-ca/phrases.xml b/OsmAnd/res/values-ca/phrases.xml index 5a20a8aa4c..ba7df293dd 100644 --- a/OsmAnd/res/values-ca/phrases.xml +++ b/OsmAnd/res/values-ca/phrases.xml @@ -2883,4 +2883,9 @@ Accés d\'autobús Accés de caravana Accés per a autocaravanes + Serralleria + Material elèctric + Cajun + Burritos + Gofres \ No newline at end of file diff --git a/OsmAnd/res/values-ca/strings.xml b/OsmAnd/res/values-ca/strings.xml index 2132e2152a..1e6d6cfef8 100644 --- a/OsmAnd/res/values-ca/strings.xml +++ b/OsmAnd/res/values-ca/strings.xml @@ -233,7 +233,7 @@ Velocitat de simulació de la ruta: Mitjà de transport: Edició fora de línia - "En desconnexió la edició està activada però llavors els canvis es desen d\'entrada localment i es pujaran quan es demani; altrament els canvis s\'actualitzen immediatament." + En desconnexió la edició està activada, però llavors els canvis es desen localment primer i ja es pujaran quan es demani; altrament els canvis s\'actualitzen immediatament. Edició asincrònica de l\'OSM: Activa les funcions per a usuaris amb discapacitats. Els canvis realitzats en els PDI a l\'aplicació no afecten els fitxers de mapa baixats, els canvis es desen en un fitxer local. @@ -941,7 +941,7 @@ Queden %1$d fitxers %1$d fitxers pendents de baixar Versió completa - Descarta la ruta + Voleu descartar la ruta\? Atura la navegació Neteja la destinació No esteu connectats amb Wi-Fi. Voleu utilitzar la connexió a Internet actual per les baixades? @@ -3903,4 +3903,12 @@ \nWeb / Wikimedia: fotos dels PDIs especificats a les dades d\'OpenStreetMap. %1$s * %2$s Equipament + Podeu utilitzar les dades d’elevació per tenir en compte l\'ascens / descens de la vostra ruta + Avioneta + \"Identificable\" vol dir que la traça es mostrarà públicament a les vostres traces GPS i als llistats públics de traces GPS, és a dir, els altres usuaris la podran baixar en brut i associada al vostre usuari. Les dades cronològiques de pas per les fites de l’API GPS que es publiquen mitjançant l’API de fites faran referència a la pàgina de la vostra traça original. + \"Privada\" vol dir que la traça no es mostra a cap llistat públic, però les fites que conté estan disponibles a través de l\'API pública GPS, desordenades i sense enregistraments temporals. + Uneix segments + Separa abans + Separa després + Afegeix un segment nou \ No newline at end of file diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml index 1267fcdc3e..15b39592a9 100644 --- a/OsmAnd/res/values-da/strings.xml +++ b/OsmAnd/res/values-da/strings.xml @@ -3146,7 +3146,7 @@ \n \n Person transport - Monowheel + Monohjul Scooter Vandret nøjagtighed: %1$s, lodret: %2$s Vandret præcision: %s @@ -3863,4 +3863,10 @@ Brug dev.openstreetmap.org Kan ikke overføre billedet, prøv igen senere Vælg billede + Tysk (uformel) + MGRS + Hvad er nyt + Til kørsel med snescooter med dedikerede veje og spor. + MGRS + OsmAnd bruger MGRS, som svarer til UTM NATO-formatet. \ No newline at end of file diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index 7bac4c4162..6793df84f2 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -1048,7 +1048,7 @@ Es können noch %1$d Dateien heruntergeladen werden Vollversion Navigation stoppen - Route verwerfen + Route verwerfen\? Kompass-Rauschreduzierung (erhöht die Kompassträgheit etwas). Kalman-Filter verwenden Für den Kompass Magnetsensor statt Lagesensor verwenden. diff --git a/OsmAnd/res/values-eo/phrases.xml b/OsmAnd/res/values-eo/phrases.xml index fb0ab54dc6..54cb470b7e 100644 --- a/OsmAnd/res/values-eo/phrases.xml +++ b/OsmAnd/res/values-eo/phrases.xml @@ -3618,7 +3618,7 @@ Aliro por veturiloj: nur armeaj Aliro por veturiloj: nur liverado Aliro por veturiloj: nur arbara servo - Aliro por aŭtoj: + Aliro por aŭtoj: jes Aliro por aŭtoj: nur laŭ privata permeso Aliro por aŭtoj: ne Aliro por aŭtoj: nur al celo @@ -3873,4 +3873,8 @@ jes subŝtata/provinca oficejo reprezenta oficejo + Alarmsireno + Flegist(in)o + Agentejo de poŝtelefonaj pagoj + Bazo de akvaj savistoj \ No newline at end of file diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml index eeaea93c09..217c78aa25 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -915,7 +915,7 @@ Ankoraŭ %1$d dosieroj %1$d dosieroj pli por elŝuti Plena versio - Forĵeti kurson + Ĉu rezigni kurson\? Ĉesigi navigadon Forviŝi celpunkton Strat-nomo @@ -4000,4 +4000,19 @@ Elektu bildon %1$s * %2$s Germana (ordinara) + Vi povas uzi datumojn pri altitudo por kalkuli suprenirojn/malsuprenirojn de via kurso + Malpeza aviadilo + Kunigi segmentojn + Dividi antaŭ + Dividi post + Aldoni novan segmenton + • aldonita agordo por el-/en-porti ĉiujn datumojn, inkluzivante agordojn, map‑datumojn kaj miajn lokojn +\n +\n • plani kurson: diagramoj por segmentoj kun la kurso, aldonita eblo por krei kaj redakti plurajn segmentojn de kurso +\n +\n • aldonita aŭtentiga metodo OAuth por OpenStreetMap, plibonigita fasado de OSM‑rilataj dialogujoj +\n +\n • propraj koloroj por ŝatataj ejoj kaj navigadpunktoj de spuro +\n +\n \ No newline at end of file diff --git a/OsmAnd/res/values-es-rAR/phrases.xml b/OsmAnd/res/values-es-rAR/phrases.xml index cdb42f90dd..8bac002d00 100644 --- a/OsmAnd/res/values-es-rAR/phrases.xml +++ b/OsmAnd/res/values-es-rAR/phrases.xml @@ -3632,7 +3632,7 @@ Acceso para vehículos: militar Acceso para vehículos: entregas Acceso para vehículos: forestal - Acceso para automóviles: + Acceso para automóviles: sí Acceso para automóviles: privado Acceso para automóviles: no Acceso para automóviles: destino @@ -3890,4 +3890,5 @@ Sirena Enfermera Agente de dinero móvil + Base de salvavidas \ No newline at end of file diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml index a23b608939..a06faa2b1f 100644 --- a/OsmAnd/res/values-es-rAR/strings.xml +++ b/OsmAnd/res/values-es-rAR/strings.xml @@ -602,7 +602,7 @@ Quedan %1$d archivos Faltan descargar %1$d archivos Versión completa - Descartar ruta + ¿Descartar ruta\? Parar navegación Limpiar destino No está conectado a una red Wi-Fi. ¿Usar la conexión actual a Internet para descargar? @@ -4008,4 +4008,17 @@ %1$s * %2$s Puedes usar los datos de elevación para considerar el ascenso o descenso de su viaje Avión ligero + Unir segmentos + Dividir antes + Dividir después + Añadir nuevo segmento + • Se ha añadido la opción de exportar e importar todos los datos, incluyendo los ajustes, los recursos y «Mis sitios» +\n +\n • Planificar ruta: se añadieron gráficos para los segmentos con la ruta y capacidad de crear o editar trazas de segmentos múltiples +\n +\n • Se ha añadido el método de autenticación OAuth para OpenStreetMap y se ha mejorado la interfaz de usuario de los diálogos de OSM +\n +\n • Se añadieron colores personalizados para los favoritos y los puntos de referencia de la traza +\n +\n \ No newline at end of file diff --git a/OsmAnd/res/values-es-rUS/phrases.xml b/OsmAnd/res/values-es-rUS/phrases.xml index 9980bdccd7..0438edd1c5 100644 --- a/OsmAnd/res/values-es-rUS/phrases.xml +++ b/OsmAnd/res/values-es-rUS/phrases.xml @@ -3632,7 +3632,7 @@ Acceso para vehículos: militar Acceso para vehículos: entregas Acceso para vehículos: forestal - Acceso para automóviles: + Acceso para automóviles: sí Acceso para automóviles: privado Acceso para automóviles: no Acceso para automóviles: destino @@ -3887,4 +3887,8 @@ Consulado general Oficina consular Agencia consular + Base de salvavidas + Sirena + Enfermera + Agente de dinero móvil \ No newline at end of file diff --git a/OsmAnd/res/values-es-rUS/strings.xml b/OsmAnd/res/values-es-rUS/strings.xml index 6e8220cde8..d8cadef2b0 100644 --- a/OsmAnd/res/values-es-rUS/strings.xml +++ b/OsmAnd/res/values-es-rUS/strings.xml @@ -602,7 +602,7 @@ Quedan %1$d archivos Faltan descargar %1$d archivos Versión completa - Descartar ruta + ¿Descartar ruta\? Parar navegación Limpiar destino No está conectado a una red Wi-Fi. ¿Usar la conexión actual a Internet para descargar? @@ -4001,4 +4001,21 @@ Marca los grupos que serán importados. No se puede subir la imagen, inténtalo más tarde Separador + • Se ha añadido la opción de exportar e importar todos los datos, incluyendo los ajustes, los recursos y «Mis sitios» +\n +\n • Planificar ruta: se añadieron gráficos para los segmentos con la ruta y capacidad de crear o editar trazas de segmentos múltiples +\n +\n • Se ha añadido el método de autenticación OAuth para OpenStreetMap y se ha mejorado la interfaz de usuario de los diálogos de OSM +\n +\n • Se añadieron colores personalizados para los favoritos y los puntos de referencia de la traza +\n +\n + Dividir antes + Dividir después + Unir segmentos + Añadir nuevo segmento + %1$s * %2$s + Alemán (casual) + Puedes usar los datos de elevación para considerar el ascenso o descenso del viaje + Avión ligero \ No newline at end of file diff --git a/OsmAnd/res/values-es/strings.xml b/OsmAnd/res/values-es/strings.xml index c4f61547c4..2424d7dddc 100644 --- a/OsmAnd/res/values-es/strings.xml +++ b/OsmAnd/res/values-es/strings.xml @@ -3941,4 +3941,13 @@ Seleccione los datos para exportar al fichero. Necesario para importar No hay espacio suficiente + • Se ha añadido la opción de exportar e importar todos los datos, incluyendo los ajustes, los recursos y «Mis sitios» +\n +\n • Planificar ruta: se añadieron gráficos para los segmentos con la ruta y capacidad de crear o editar trazas de segmentos múltiples +\n +\n • Se ha añadido el método de autenticación OAuth para OpenStreetMap y se ha mejorado la interfaz de usuario de los diálogos de OSM +\n +\n • Se añadieron colores personalizados para los favoritos y los puntos de referencia de la traza +\n +\n \ No newline at end of file diff --git a/OsmAnd/res/values-fr/phrases.xml b/OsmAnd/res/values-fr/phrases.xml index 3afde7dc60..a18a6a1d92 100644 --- a/OsmAnd/res/values-fr/phrases.xml +++ b/OsmAnd/res/values-fr/phrases.xml @@ -3633,7 +3633,7 @@ Indiqué Oui suspendu - accès-voiture : + Accès véhicules : oui accès-voiture : privé accès-voiture : impossible accès-voiture : possible @@ -3873,4 +3873,16 @@ Parking couvert Parking en terrasse Point GPX + Base de sauveteur + Sirène + Infirmier + Agent de monnaie mobile + Infranational + Section intérêts + Succursale + Magasin de noix + Services aux citoyens + Visas d\'immigrant + Visas pour non-immigrants + Liaison diplomatique \ No newline at end of file diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 771d0674f6..efad296888 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -964,7 +964,7 @@ Modifications OSM Autres actions Le WiFi n\'est pas activé. Voulez-vous effectuer le téléchargement avec la connexion Internet actuelle ? - Arrêter la navigation + Arrêter la navigation \? Arrêter la navigation Supprimer l\'arrivée Autre @@ -3408,7 +3408,7 @@ Nom d\'utilisateur et mot de passe Les paramètres du greffon sont globaux et s\'appliquent à tous les profils Édition OSM - Vous pouvez consulter vos modifications et vos bugs OSM non envoyés dans %1$s. Les points envoyés ne s\'affichentr plus dans OsmAnd. + Vous pouvez consulter vos modifications et vos bugs OSM non envoyés dans %1$s. Les points envoyés ne sont plus affichés dans OsmAnd. OSM Icône affiché pendant la navigation ou en déplacement. Icône affiché à l\'arrêt. @@ -3978,4 +3978,20 @@ %1$s * %2$s Allemand (courant) Aviation légère + Vous pouvez utiliser l\'altitude pour prendre en compte les dénivellés sur votre itinéraire + « Traçable » signifie que la trace ne s\'affichera pas dans les listes publiques, mais que les points de cheminement horodatés qu\'elle contient seront téléchargeables depuis l\'API GPS publique (ces points sont traités afin de n\'avoir aucun lien direct avec vous). + • Ajout d\'une option pour exporter et importer toutes les données, y compris les paramètres, les ressources, mes lieux +\n +\n • Planifier l\'itinéraire : graphiques pour les segments avec l\'itinéraire, ajout de la possibilité de créer et de modifier des pistes à segments multiples +\n +\n • Ajout de la méthode d\'authentification OAuth pour OpenStreetMap, amélioration de l\'interface utilisateur des boîtes de dialogue OSM +\n +\n • Couleurs personnalisées pour les favoris et les points de passage +\n +\n + Joindre les segments + Couper avant + Couper après + Ajouter un nouveau segment + « Identifiable » siginifie que la trace sera affichée publiquement dans « Vos traces GPS » ainsi que dans les listes de traces GPS publiques. Ceci signifie que les autres utilisateurs peuvent télécharger la trace brute et l\'associer avec votre nom d\'utilisateur. Quand ils sont servis par l\'API de point de cheminement, les données de points de trace horodatés provenant de l\'API GPS publique feront référence à la page de votre trace originelle. \ No newline at end of file diff --git a/OsmAnd/res/values-gl/phrases.xml b/OsmAnd/res/values-gl/phrases.xml index 1b72fedd88..8a8c18e087 100644 --- a/OsmAnd/res/values-gl/phrases.xml +++ b/OsmAnd/res/values-gl/phrases.xml @@ -3873,4 +3873,7 @@ Ligazón Consulado Embaixada + Serea + Enfermeira + Axente de diñeiro móbil \ No newline at end of file diff --git a/OsmAnd/res/values-gl/strings.xml b/OsmAnd/res/values-gl/strings.xml index 42fb8639e7..6a334c14d7 100644 --- a/OsmAnd/res/values-gl/strings.xml +++ b/OsmAnd/res/values-gl/strings.xml @@ -339,7 +339,7 @@ Faltan %1$d ficheiros Aínda faltan %1$d ficheiros para baixar Versión completa - Rexeitar rota + Rexeitar rota\? Deter a navegación Limpar o destino Non estás conectado a unha rede Wi-Fi. Empregar a conexión actual á Internet para baixar\? diff --git a/OsmAnd/res/values-hu/phrases.xml b/OsmAnd/res/values-hu/phrases.xml index 5385b21b40..06fec48153 100644 --- a/OsmAnd/res/values-hu/phrases.xml +++ b/OsmAnd/res/values-hu/phrases.xml @@ -3660,7 +3660,7 @@ Járművel katonai célra használható Járművel áruszállításra használható Járművel erdészeti célra használható - Személyautóval használható: + Személyautóval használható Személyautóval a tulajdonos engedélyével használható Személyautóval nem használható Személyautóval célforgalomra használható @@ -3875,4 +3875,5 @@ Ápoló Sziréna Mobilpénzfizetési iroda + Vízimentő-támaszpont \ No newline at end of file diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index 34b05bcc92..e431f5ba01 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -966,7 +966,7 @@ OSM-módosítások További műveletek Jelenleg nincs Wi-Fi kapcsolat. Szeretnéd a jelenlegi internetkapcsolatot használni a letöltéshez? - Útvonal elvetése + Elveti az útvonalat\? Navigáció megállítása Célpont törlése Egyéb @@ -3994,4 +3994,17 @@ %1$s * %2$s A magassági adatokat az utazás során előforduló emelkedés/lejtés megfontolásához használhatja Könnyű légi jármű + Elvágás előtte + Elvágás utána + Szakaszok egyesítése + Új szakasz hozzáadása + "• Lehetőség az összes adat – többek között beállítások, erőforrások és helyek – exportálására és importálására +\n +\n • Útvonaltervezés: grafikonok az útvonalat tartalmazó szegmensekhez, útszakasznyomvonalak létrehozása és szerkesztése +\n +\n • OAuth hitelesítési módszer az OpenStreetMap-hez, javított felhasználói felület az OSM-párbeszédpanelekhez +\n +\n • Egyéni színek a kedvencekhez és az útvonalak útpontjaihoz +\n +\n" \ No newline at end of file diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml index cd7ba3fc5b..7116cf48e9 100644 --- a/OsmAnd/res/values-it/strings.xml +++ b/OsmAnd/res/values-it/strings.xml @@ -931,7 +931,7 @@ Seleziona Preferito Modifiche OSM Non connesso al Wi-Fi. Usare la connessione a Internet attuale per il download\? - Cancella il percorso + Cancellare il percorso\? Interrompere la navigazione Cancella la destinazione Altra diff --git a/OsmAnd/res/values-iw/strings.xml b/OsmAnd/res/values-iw/strings.xml index ef3ad7571e..31489ef758 100644 --- a/OsmAnd/res/values-iw/strings.xml +++ b/OsmAnd/res/values-iw/strings.xml @@ -970,7 +970,7 @@ שינויים ב־OSM פעולות אחרות אין חיבור לרשת אלחוטית כרגע. להשתמש בחיבור האינטרנט הנוכחי להורדה? - התעלמות מהמסלול + להתעלם מהמסלול\? הפסקת הניווט מחיקת היעד אחר @@ -4005,4 +4005,8 @@ ‏%1$s‏ * %2$s אפשר להשתמש בנתוני רום לצורך התחשבות בעליה / ירידה במהלך הטיול כלי טיס קל + צירוף מקטעים + לפצל לפני + לפצל אחרי + הוספת מקטע חדש \ No newline at end of file diff --git a/OsmAnd/res/values-nb/strings.xml b/OsmAnd/res/values-nb/strings.xml index e0c2624bce..584299e186 100644 --- a/OsmAnd/res/values-nb/strings.xml +++ b/OsmAnd/res/values-nb/strings.xml @@ -2159,7 +2159,7 @@ Lag audio/foto/video-notater på en tur, enten ved bruk av en knapp på kartet eller posisjon-kontekstmeny. Gjennomsnitt %1$d av %2$d - Stigning/fall + Stigning/nedstigning Tid i bevegelse Maks./min. Min./maks. @@ -3856,7 +3856,7 @@ Er du sikker på at du vil slette %d hurtighandlinger for godt\? Skjermtidsavbrudd Forvalgt skjermtidsavbrudd - Gatenivåbildedata + Bilder på gatenivå Beskjær før Beskjær før Utvikling @@ -3924,4 +3924,11 @@ Legg til i Mapillary Legg til i OpenPlaceReviews Bruk dev.openstreetmap.org + OsmAnd viser bilder fra flere kilder: +\nOpenPlaceReviews - interessepunktbilder; +\nMapillary - bilder på gatenivå; +\nWeb / Wikimedia - interessepunktbilder spesifisert i OpenStreetMap-data. + Du kan bruke høydedata for å ta i betraktning stigning/nedstigning på turen din + Småfly + %1$s * %2$s \ No newline at end of file diff --git a/OsmAnd/res/values-pl/strings.xml b/OsmAnd/res/values-pl/strings.xml index dc8809751f..b572932d6a 100644 --- a/OsmAnd/res/values-pl/strings.xml +++ b/OsmAnd/res/values-pl/strings.xml @@ -972,7 +972,7 @@ Brak połączenia z Wi-Fi. Użyć do pobierania obecnego połączenia z Internetem? Usuń cel trasy Zakończ nawigację - Odrzucenie trasy + Odrzucić trasę\? Pełna wersja Inna Pozostało %1$d plików @@ -4005,4 +4005,6 @@ Nie można przesłać obrazu, spróbuj ponownie później %1$s * %2$s Niemiecki (styl potoczny) + \"Publiczny\" oznacza, że ślad jest pokazywany publicznie w śladach GPS i na publicznych listach śladów GPS oraz na publicznej liście śladów z surowymi znacznikami czasowymi. Dane obsługiwane przez API nie odnoszą się do strony śladów. Znaczniki czasu punktów śladowych nie są dostępne za pośrednictwem publicznego API GPS, a punkty śladowe nie są uporządkowane chronologicznie. + Lekki samolot \ No newline at end of file diff --git a/OsmAnd/res/values-pt-rBR/phrases.xml b/OsmAnd/res/values-pt-rBR/phrases.xml index 42c3d92278..5797b56235 100644 --- a/OsmAnd/res/values-pt-rBR/phrases.xml +++ b/OsmAnd/res/values-pt-rBR/phrases.xml @@ -3626,7 +3626,7 @@ Acesso de veículos: militar Acesso de veículos: entrega Acesso de veículos: florestal - Acesso de automóveis: + Acesso de automóveis: sim Acesso de automóveis: privado Acesso de automóveis: não Acesso de automóveis: para trânsito local @@ -3883,4 +3883,5 @@ Sereia Enfermaria Agente de dinheiro móvel + Base do salva-vidas \ No newline at end of file diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index 9e353d63cb..ebc9a5c228 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -641,7 +641,7 @@ Restando %1$d arquivos %1$d arquivos restantes para download Versão completa - Descartar rota + Descartar rota\? Parar navegação Apagar destino Não conectado ao Wi-Fi. Use a conexão atual com a Internet para baixar\? @@ -3998,4 +3998,17 @@ Alemão (casual) Você pode usar os dados de elevação para consideração de subida / descida para sua viagem Avião leve + "• Adicionada opção para exportar e importar todos os dados, incluindo configurações, recursos, meus lugares +\n +\n • Planejar rota: gráficos para segmentos com a rota, adicionada a capacidade de criar e editar faixas de múltiplos segmentos +\n +\n • Método de autenticação OAuth adicionado para OpenStreetMap, interface de usuário aprimorada de caixas de diálogo OSM +\n +\n • Cores personalizadas para favoritos e rastreia pontos de referência +\n +\n" + Unir segmentos + Dividir antes + Dividir depois + Adicionar novo segmento \ No newline at end of file diff --git a/OsmAnd/res/values-pt/phrases.xml b/OsmAnd/res/values-pt/phrases.xml index 0795fa347c..900b1b946f 100644 --- a/OsmAnd/res/values-pt/phrases.xml +++ b/OsmAnd/res/values-pt/phrases.xml @@ -3610,7 +3610,7 @@ Acesso de veículos: militar Acesso de veículos: entrega Acesso de veículos: florestal - Acesso de automóveis: + Acesso de automóveis: sim Acesso de automóveis: privado Acesso de automóveis: não Acesso de automóveis: para trânsito local @@ -3865,4 +3865,8 @@ Ligação Consulado Embaixada + Sereia + Enfermeira + Agente de dinheiro móvel + Base de salva-vidas \ No newline at end of file diff --git a/OsmAnd/res/values-pt/strings.xml b/OsmAnd/res/values-pt/strings.xml index 539a28aacc..64de702a5d 100644 --- a/OsmAnd/res/values-pt/strings.xml +++ b/OsmAnd/res/values-pt/strings.xml @@ -949,7 +949,7 @@ Restando %1$d ficheiros Faltam %1$d ficheiros para descarregar Versão completa - Descartar rota + Descartar a rota\? Parar navegação Ficheiro de alterações OSM gerado %1$s Não foi possível fazer backup das alterações do OSM. @@ -4005,4 +4005,17 @@ Alemão (casual) Pode usar os dados de elevação para considerar a ascensão / descida na sua viagem Aeronaves ligeiras + Unir segmentos + Dividir antes + Dividir após + Adicionar novo segmento + • Opção de exportar e importar todos os dados adicionada, que inclui configurações, recursos, meus lugares +\n +\n• Planear rota: gráficos para segmentos com a rota, adicionado a capacidade de criar e editar trilhos de segmentos múltiplos +\n +\n• Método de autenticação OAuth para OpenStreetMap adicionado, melhor IU dos diálogos OSM +\n +\n• Cores personalizadas para favoritos e pontos de rotas de trilhos +\n +\n \ No newline at end of file diff --git a/OsmAnd/res/values-ru/phrases.xml b/OsmAnd/res/values-ru/phrases.xml index c3980aa38b..0bfeda0e63 100644 --- a/OsmAnd/res/values-ru/phrases.xml +++ b/OsmAnd/res/values-ru/phrases.xml @@ -3572,7 +3572,7 @@ Доступ для транспортных средств: военные Доступ для транспортных средств: курьеры/доставка Доступ для транспортных средств: лесное хозяйство - Доступ для автомобилей: + Доступ для автомобилей: да Доступ для автомобилей: частный Доступ для автомобилей: нет Доступ для автомобилей: пункт назначения @@ -3869,5 +3869,4 @@ Раздел интересов Консульство Сирена - \ No newline at end of file diff --git a/OsmAnd/res/values-sc/strings.xml b/OsmAnd/res/values-sc/strings.xml index 82d6e3dbdd..456371cc4b 100644 --- a/OsmAnd/res/values-sc/strings.xml +++ b/OsmAnd/res/values-sc/strings.xml @@ -199,7 +199,7 @@ tenes galu %1$d documentos %1$d documentos galu de iscarrigare Versione cumprida - Iscantzella s’àndala + Iscantzellare s’àndala\? Firma sa navigatzione Iscantzella sa destinatzione Non ses connessu a su WiFi. Boles sighire a iscarrigare impreende sa connessione a ìnternet atuale? @@ -3998,6 +3998,6 @@ Ischerta un\'immàgine %1$s * %2$s Tedescu (informale) - Podes impreare sos datos de s\'artària pro pigare in cunsideru s\'Artziada / Achirrada pro su biàgiu tuo + Podes impreare sos datos de s\'artària pro valutare s\'Artziada / Achirrada pro su biàgiu tuo Aèreu lèbiu \ No newline at end of file diff --git a/OsmAnd/res/values-sk/phrases.xml b/OsmAnd/res/values-sk/phrases.xml index 3a141ef175..15b02dfcb2 100644 --- a/OsmAnd/res/values-sk/phrases.xml +++ b/OsmAnd/res/values-sk/phrases.xml @@ -3364,7 +3364,7 @@ Prístup autobusom Prístup karavanom Prístup obytným autom - Prístup s autom s prívesom + Prístup s prívesom Prístup motocyklom Prístup mopedom Prístup malým motocyklom @@ -3397,7 +3397,7 @@ Prístup vozidiel: vojenské Prístup vozidiel: zásobovanie Prístup vozidiel: lesnícke - Prístup áut: + Prístup áut: áno Prístup áut: súkromný Prístup áut: nie Prístup áut: návštevníci cieľa @@ -3441,7 +3441,7 @@ Prístup chodcov: zákazníci Prístup karavanov: nie Prístup obytných vozidiel: nie - Prístup ťahačov: nie + Prístup s prívesom: nie Prístup vozidiel verejnej prepravy osôb: áno Prístup vozidiel verejnej prepravy osôb: určený Prístup vozidiel verejnej prepravy osôb: nie diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml index 54f7a87f39..de5058e7c2 100644 --- a/OsmAnd/res/values-sk/strings.xml +++ b/OsmAnd/res/values-sk/strings.xml @@ -934,7 +934,7 @@ Vybrať Obľúbený bod OSM úpravy Nie je pripojenie na Wi-Fi. Použiť aktuálne pripojenie na Internet pre sťahovanie? - Zrušiť cestu + Zrušiť cestu\? Zastaviť navigáciu Zmazať cieľ Iné @@ -3997,4 +3997,10 @@ Zvoľte obrázok Nemecky (Deutsch) úsporne %1$s * %2$s + \"Identifikovateľná\" znamená, že trasa sa zobrazí verejne vo vašich GPS stopách, vo verejných zoznamoch GPS stôp a v zozname verejných trás s časovými pečiatkami v nespracovanej forme. Údaje poskytované cez rozhranie (API) nebudú odkazovať na vašu pôvodnú stránku s trasou. Časové pečiatky bodov trasy nebudú dostupné cez verejné GPS rozhranie (API) a body trasy nebudú v chronologickom poradí. + \"Súkromná\" znamená, že trasa sa nezobrazí vo verejných zoznamoch, ale body trasy z nej v budú dostupné v neusporiadanom poradí cez verejné GPS rozhranie (API) bez časových pečiatok. + \"Identifikovateľná\" znamená, že trasa sa zobrazí verejne vo vašich GPS stopách a vo verejných zoznamoch GPS stôp, tzn. iní používatelia budú môcť stiahnuť nespracovanú trasu a prepojiť su s vašim používateľkým menom. Verejné body trasy s časovými pečiatkami poskytované cez GPS rozhranie (API) budú odkazovať na vašu pôvodnú stránku s trasou. + \"Sledovateľná\" znamená, že trasa sa nezobrazí vo verejných zoznamoch, ale spracované body trasy s časovými pečiatkami (ktoré nie je možné spojiť s vami), budú dostupné na stiahnutie cez verejné GPS rozhranie (API). + Môžete použiť údaje nadmorskej výšky pre zohľadnenie výstupu / zostupu na vašom výlete + Ľahké lietadlo \ No newline at end of file diff --git a/OsmAnd/res/values-sr/phrases.xml b/OsmAnd/res/values-sr/phrases.xml index e511263c30..2bc955c449 100644 --- a/OsmAnd/res/values-sr/phrases.xml +++ b/OsmAnd/res/values-sr/phrases.xml @@ -2525,7 +2525,7 @@ Приступ возилом: војни Приступ возилом: достава Приступ возилом: шумски саобраћај - Приступ моторним аутом: + Приступ моторним аутом: да Приступ моторним аутом: приватни Приступ моторним аутом: не Приступ моторним аутом: само до одредишта @@ -3862,4 +3862,8 @@ Амбасада Табла Доливање воде за пиће + База спасиоца + Сирена + Медицинска сестра + Мобилни агент за новац \ No newline at end of file diff --git a/OsmAnd/res/values-sr/strings.xml b/OsmAnd/res/values-sr/strings.xml index 5b5058fea5..6e7307ece2 100644 --- a/OsmAnd/res/values-sr/strings.xml +++ b/OsmAnd/res/values-sr/strings.xml @@ -888,7 +888,7 @@ Сличице тачака од интереса Месец и држава: Седмично - Откажи путању + Одбаци путању\? Опције приступачности GPS подаци Отворене карте ЕУ-а @@ -3994,4 +3994,19 @@ Употреби dev.openstreetmap.org %1$s * %2$s Немачки (говорни) + Податке о надморској висини можете користити за разматрање успона / спуштања за ваше путовање + Лака летелица + Споји сегменте + Подели пре + После подели + Додајте нови сегмент + • Додата је опција за извоз и увоз свих података, укључујући подешавања, ресурсе, моја места +\n +\n • Планирање руте: графикони за сегменте са рутом, додата је могућност креирања и уређивања вишеструких сегмената стаза +\n +\n • Додан је метод аутентификације ОАут за ОпенСтритМап, побољшан кориснички интерфејс ОСМ дијалога +\n +\n • Прилагођене боје за омиљене и путне тачаке стаза +\n +\n \ No newline at end of file diff --git a/OsmAnd/res/values-tr/strings.xml b/OsmAnd/res/values-tr/strings.xml index 97c1941ddd..05bf9a4770 100644 --- a/OsmAnd/res/values-tr/strings.xml +++ b/OsmAnd/res/values-tr/strings.xml @@ -700,7 +700,7 @@ Manyetik sensörü kullan Diğer Tam sürüm - Rotaya son ver + Rotaya son verilsin mi\? Navigasyonu durdur Varış noktasını temizle Kablosuz ağa bağlı değil. İndirmek için şimdiki İnternet bağlantısı kullanılsın mı\? @@ -1638,7 +1638,7 @@ İndirme bulunamadı, lütfen internet bağlantınızı gözden geçirin. Önce uzun dokunarak bir GPX dosyası belirtin. Bir izlenen yol seçin - Bölünmüş aralık + Bölme aralığı Navigasyon sırasında yakınlaştırma düğmelerini göster. Yakınlaştırma düğmelerini göster Sık Kullanılanlar grubu olarak kaydet @@ -2757,7 +2757,7 @@ \nLütfen tam bir kod girin Geçerli tam OLC \nTemsil ettiği alan: %1$s x %2$s - Boşluktan sonra kayıtları otomatik bölme + Boşluktan sonra kayıtları otomatik böl 6 dakikalık aralıktan sonra yeni segmenti, 2 saatlik aralıktan sonra yeni izlenen yolu veya tarih değiştiyse daha uzun aralıktan sonra yeni dosyayı başlatın. Eş derinlik eğrilerini ve noktalarını göster. Bu rotadan geçmek için döner @@ -3337,7 +3337,7 @@ Eklenti tarafından eklenen profiller Kapat Yeni eklenti eklendi - Segmentleri birleştir + Bölümleri birleştir \'%1$s\' yeni profil eklensin mi\? Başlığı dahil et Kayıt sırasında her izleme noktasına başlığı kaydet. @@ -3958,4 +3958,17 @@ %1$s * %2$s Yolculuğunuzun Çıkış / İniş değerleri için Yükseklik verilerini kullanabilirsiniz Hafif uçak + Bölümleri birleştir + Önce böl + Sonra böl + Yeni bölüm ekle + • Ayarlar, kaynaklar, yerlerim dahil tüm verileri dışa ve içe aktarma seçeneği eklendi +\n +\n • Güzergah Planla: güzergahla birlikte bölümler için grafikler, birden çok bölüm izi oluşturma ve düzenleme yeteneği eklendi +\n +\n • OpenStreetMap için OAuth kimlik doğrulama yöntemi eklendi, OSM iletişim kutularının kullanıcı arayüzü iyileştirildi +\n +\n • Sık kullanılanlar ve yol ara noktaları için özel renkler +\n +\n \ No newline at end of file diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index 40c02a5830..8cb9561f9a 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -994,7 +994,7 @@ Завершити редагування Очистити всі точки Відкрити збережений GPX-файл - Відхилити маршрут + Відхилити маршрут\? Шукати вулицю в навколишніх містах Оптимальний порядок проміжних точок на шляху до пункту призначення. Впорядкувати від дверей до дверей @@ -2045,7 +2045,7 @@ У Вас немає завантажених мап. Ви можете вибрати мапу зі списку або завантажити її пізніше за допомогою меню — %1$s. Виберіть інший регіон Пошук мапи… - OsmAnd визначить ваше місце розташування і запропонує завантажити мапи для цього регіону. + OsmAnd визначить ваше розташування і запропонує завантажити мапи для цього регіону. Неможливо визначити місце розташування З’єднання з Інтернетом відсутнє Необхідно завантажити мапи. diff --git a/OsmAnd/res/values-zh-rTW/phrases.xml b/OsmAnd/res/values-zh-rTW/phrases.xml index 0ff79b64b8..49c4923944 100644 --- a/OsmAnd/res/values-zh-rTW/phrases.xml +++ b/OsmAnd/res/values-zh-rTW/phrases.xml @@ -3624,7 +3624,7 @@ 車輛進入:軍事 車輛進入:送貨 車輛進入:林業 - 汽車進入: + 汽車進入:是 汽車進入:私人 汽車進入:否 汽車進入:目的地 @@ -3882,4 +3882,5 @@ 警報器 護理師 行動貨幣代理商 + 救生員基地 \ No newline at end of file diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml index bd6e77050f..2374a22ebc 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -863,7 +863,7 @@ 使用磁性感應器 其它 完整版 - 排除路線 + 排除路線? 停止導航 清除目的地 並未連線至 Wi-Fi。使用目前的連線進行下載嗎? @@ -3998,4 +3998,17 @@ %1$s * %2$s 您可以將海拔資料用於您旅程的上升與下降 輕型飛機 + 加入線段 + 分離前 + 分離後 + 加入新線段 + • 新增匯出與匯入所有資料(包含設定、資源與我的位置)的選項 +\n +\n • 路線計畫:有路線的線段圖,並有建立與編輯多個線段軌跡的功能 +\n +\n • 加入 OpenStreetMap 的 OAuth 驗證方式,改善 OSM 對話框的使用者介面 +\n +\n • 自訂最愛與軌跡航點的顏色 +\n +\n \ No newline at end of file diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 22a74625cc..1d9bb60dba 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -13,18 +13,18 @@ --> • Added option to export and import all data including settings, resources, my places\n\n - • Plan Route: graphs for segments with the route, added the ability to create and edit multiply segment tracks\n\n - • Added OAuth authentication method for OpenStreetMap, improved UI of OSM dialogs \n\n - • Custom colors for favorites and tracks waypoints\n\n + • Plan Route: graphs for track segments with route, and added the ability to create and edit multiple track segments\n\n + • Added OAuth authentication method for OpenStreetMap, improved UI of OSM dialogs\n\n + • Support custom colors for favorites and track waypoints\n\n - Add new segment + Add a new segment Split after Split before Join segments Light aircraft - You can use Elevation data for consideration of Ascent / Descent for your trip + You can use elevation data to account for ascent/descent of your trip %1$s * %2$s - OsmAnd shows photos from several sources:\nOpenPlaceReviews - POI photos;\nMapillary - street-level imagery;\nWeb / Wikimedia - POI photos specified in OpenStreetMap data. + OsmAnd shows photos from several sources:\nOpenPlaceReviews - POI photos;\nMapillary - street-level imagery;\nWeb / Wikimedia - POI photos as per OpenStreetMap data. Use dev.openstreetmap.org Switch to use "dev.openstreetmap.org" instead of "openstreetmap.org" to testing uploading OSM Note / POI / GPX. Add to OpenPlaceReviews @@ -32,7 +32,7 @@ Select items that will be imported. Select groups that will be imported. There is not enough space - Your device only has %1$s free. Please free up some space or unselect some items to export. + Your device only has %1$s free. Please free up some space or deselect some items to export. Needed for import Select the data to be exported to the file. Approximate file size @@ -44,14 +44,14 @@ Search history I already have an account Create new account - Photos are provided by open data project OpenPlaceReviews.org. In order to upload your photos you need to sign up on website. + Photos are provided by the OpenPlaceReviews.org open data project. In order to upload your photos you need to sign up on their website. Register on\nOpenPlaceReviews.org Add photo You can log in using the safe OAuth method or use your login and password. Comment OSM Note Close OSM Note \"Trackable\" means the trace does not show up in any public listings, but processed trackpoints with timestamps from it (that can\'t be associated with you directly) do through downloads from the public GPS API. - \"Identifiable\" means that the trace will be shown publicly in Your GPS traces and in public GPS trace listings, i.e. other users will be able to download the raw trace and associate it with your username. Public timestamped tracepoint data from the GPS API served via the trackpoints API will reference your original trace page. + \"Identifiable\" means that the trace will be shown publicly in your GPS traces and in public GPS trace listings, i.e. other users will be able to download the raw trace and associate it with your username. Public timestamped tracepoint data from the GPS API served via the trackpoints API will reference your original trace page. \"Private\" means the trace does not show up in any public listings, but trackpoints from it in unchronological order are available through the public GPS API without timestamps. \"Public\" means the trace is shown publicly in your GPS traces and in public GPS trace listings, and in the public trace list with timestamps in raw form. Data served via the API does not reference your trace page. Tracepoint timestamps are not available through the public GPS API, and tracepoints are not chronologically ordered. Enter tags separated by comma. @@ -60,7 +60,7 @@ OsmAnd Live subscription is on hold OsmAnd Live subscription has been paused OsmAnd Live subscription has been expired - There is a problem with your subscription. Click the button to go to the Google Play subscription settings to fix your payment method. + There is a problem with your subscription. Tap the button to go to the Google Play subscription settings to fix your payment method. Manage subscription Login Password @@ -71,8 +71,8 @@ Sign in with OpenStreetMap Login to OpenStreetMap.org Login to OpenStreetMap - These plugin setting are global, and apply to all profiles - You need to add at least two points + These plugin settings are global, and apply to all profiles + Add at least two points Travel Emergency Sport @@ -84,8 +84,8 @@ Gap %1$s — %2$s Local maps - Wait for the route recalculation.\nGraph will be available after recalculation. - %1$s data available only on the roads, you need to calculate a route using “Route between points” to get it. + Please wait.\nGraph will be available after route recalculation. + %1$s data available only on roads, calculate a route using “Route between points” to see graphs. Graph Use 2-phase A* routing algorithm File is already imported in OsmAnd @@ -93,9 +93,9 @@ Clear OpenStreetMap OAuth token Log in via OAuth Log in with OAuth to use osmedit features - Switch to Java (safe) Public Transport routing calculation + Switch to Java (safe) Public Transport route calculation Native Public Transport development - Recalculates only the initial part of the route. Can be used for long trips. + Recalculates only the initial part of the route, useful for long trips. Two-phase routing for car navigation. OsmAnd Live data OsmAnd Live data diff --git a/OsmAnd/src/net/osmand/plus/AppInitializer.java b/OsmAnd/src/net/osmand/plus/AppInitializer.java index e6271f4509..0afa87c32a 100644 --- a/OsmAnd/src/net/osmand/plus/AppInitializer.java +++ b/OsmAnd/src/net/osmand/plus/AppInitializer.java @@ -760,8 +760,7 @@ public class AppInitializer implements IProgress { } } if(app.getSettings().SAVE_GLOBAL_TRACK_TO_GPX.get() && OsmandPlugin.getEnabledPlugin(OsmandMonitoringPlugin.class) != null){ - int interval = app.getSettings().SAVE_GLOBAL_TRACK_INTERVAL.get(); - app.startNavigationService(NavigationService.USED_BY_GPX, app.navigationServiceGpsInterval(interval)); + app.startNavigationService(NavigationService.USED_BY_GPX); } } diff --git a/OsmAnd/src/net/osmand/plus/NavigationService.java b/OsmAnd/src/net/osmand/plus/NavigationService.java index b1acef28ad..3a824f937e 100644 --- a/OsmAnd/src/net/osmand/plus/NavigationService.java +++ b/OsmAnd/src/net/osmand/plus/NavigationService.java @@ -1,9 +1,6 @@ package net.osmand.plus; -import android.annotation.SuppressLint; -import android.app.AlarmManager; import android.app.Notification; -import android.app.PendingIntent; import android.app.Service; import android.content.Context; import android.content.Intent; @@ -11,13 +8,8 @@ import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Binder; -import android.os.Build; import android.os.Bundle; -import android.os.Handler; import android.os.IBinder; -import android.os.PowerManager; -import android.os.PowerManager.WakeLock; -import android.os.SystemClock; import android.util.Log; import android.widget.Toast; @@ -28,26 +20,17 @@ import net.osmand.plus.settings.backend.OsmandSettings; public class NavigationService extends Service implements LocationListener { public static class NavigationServiceBinder extends Binder { - } // global id don't conflict with others public static int USED_BY_NAVIGATION = 1; public static int USED_BY_GPX = 2; public final static String USAGE_INTENT = "SERVICE_USED_BY"; - public final static String USAGE_OFF_INTERVAL = "SERVICE_OFF_INTERVAL"; private final NavigationServiceBinder binder = new NavigationServiceBinder(); - private int serviceOffInterval; private String serviceOffProvider; - private int serviceErrorTimeout; - private long nextManualWakeup; private OsmandSettings settings; - private Handler handler; - - private static WakeLock lockStatic; - private PendingIntent pendingIntent; protected int usedBy = 0; private OsmAndLocationProvider locationProvider; @@ -57,26 +40,6 @@ public class NavigationService extends Service implements LocationListener { return binder; } - protected synchronized static PowerManager.WakeLock getLock(Context context) { - if (lockStatic == null) { - PowerManager mgr = (PowerManager) context.getSystemService(Context.POWER_SERVICE); - lockStatic = mgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "OsmAnd:NavigationServiceLock"); - } - return lockStatic; - } - - public long getNextManualWakeup() { - return nextManualWakeup; - } - - public void setNextManualWakeup(long value) { - nextManualWakeup = value; - } - - public int getServiceOffInterval() { - return serviceOffInterval; - } - public int getUsedBy() { return usedBy; } @@ -97,24 +60,7 @@ public class NavigationService extends Service implements LocationListener { final Intent serviceIntent = new Intent(ctx, NavigationService.class); ctx.stopService(serviceIntent); } else { - // Issue #3604 final OsmandApplication app = (OsmandApplication) getApplication(); - if ((usedBy == USED_BY_GPX) && (app.navigationServiceGpsInterval(app.getSettings().SAVE_GLOBAL_TRACK_INTERVAL.get()) != 0) && (serviceOffInterval == 0)) { - serviceOffInterval = app.getSettings().SAVE_GLOBAL_TRACK_INTERVAL.get(); - setupServiceErrorTimeout(); - app.setNavigationService(this); - AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); - pendingIntent = PendingIntent.getBroadcast(this, 0, new Intent(this, OnNavigationServiceAlarmReceiver.class), PendingIntent.FLAG_UPDATE_CURRENT); - nextManualWakeup = SystemClock.elapsedRealtime() + serviceOffInterval; - if (Build.VERSION.SDK_INT >= 23) { - alarmManager.setExactAndAllowWhileIdle(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 500, pendingIntent); - } else if (Build.VERSION.SDK_INT >= 19) { - // setRepeating() became inexact starting with SDK 19 - alarmManager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 500, pendingIntent); - } else { - alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 500, serviceOffInterval, pendingIntent); - } - } app.getNotificationHelper().updateTopNotification(); app.getNotificationHelper().refreshNotifications(); } @@ -122,46 +68,25 @@ public class NavigationService extends Service implements LocationListener { @Override public int onStartCommand(Intent intent, int flags, int startId) { - handler = new Handler(); final OsmandApplication app = (OsmandApplication) getApplication(); settings = app.getSettings(); usedBy = intent.getIntExtra(USAGE_INTENT, 0); - serviceOffInterval = intent.getIntExtra(USAGE_OFF_INTERVAL, 0); - if ((usedBy & USED_BY_NAVIGATION) != 0) { - serviceOffInterval = 0; - } + // use only gps provider serviceOffProvider = LocationManager.GPS_PROVIDER; - setupServiceErrorTimeout(); - locationProvider = app.getLocationProvider(); app.setNavigationService(this); - // requesting - if (isContinuous()) { - // request location updates - LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); - try { - locationManager.requestLocationUpdates(serviceOffProvider, 0, 0, NavigationService.this); - } catch (SecurityException e) { - Toast.makeText(this, R.string.no_location_permission, Toast.LENGTH_LONG).show(); - Log.d(PlatformUtil.TAG, "Location service permission not granted"); //$NON-NLS-1$ - } catch (IllegalArgumentException e) { - Toast.makeText(this, R.string.gps_not_available, Toast.LENGTH_LONG).show(); - Log.d(PlatformUtil.TAG, "GPS location provider not available"); //$NON-NLS-1$ - } - } else { - AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); - pendingIntent = PendingIntent.getBroadcast(this, 0, new Intent(this, OnNavigationServiceAlarmReceiver.class), PendingIntent.FLAG_UPDATE_CURRENT); - nextManualWakeup = SystemClock.elapsedRealtime() + serviceOffInterval; - if (Build.VERSION.SDK_INT >= 23) { - alarmManager.setExactAndAllowWhileIdle(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 500, pendingIntent); - } else if (Build.VERSION.SDK_INT >= 19) { - // setRepeating() became inexact starting with SDK 19 - alarmManager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 500, pendingIntent); - } else { - alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 500, serviceOffInterval, pendingIntent); - } + // request location updates + LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); + try { + locationManager.requestLocationUpdates(serviceOffProvider, 0, 0, NavigationService.this); + } catch (SecurityException e) { + Toast.makeText(this, R.string.no_location_permission, Toast.LENGTH_LONG).show(); + Log.d(PlatformUtil.TAG, "Location service permission not granted"); //$NON-NLS-1$ + } catch (IllegalArgumentException e) { + Toast.makeText(this, R.string.gps_not_available, Toast.LENGTH_LONG).show(); + Log.d(PlatformUtil.TAG, "GPS location provider not available"); //$NON-NLS-1$ } // registering icon at top level @@ -185,20 +110,6 @@ public class NavigationService extends Service implements LocationListener { // initializing variables } - private boolean isContinuous() { - return serviceOffInterval == 0; - } - - private void setupServiceErrorTimeout() { - serviceErrorTimeout = serviceOffInterval / 5; - // 1. not more than 12 mins - serviceErrorTimeout = Math.min(serviceErrorTimeout, 12 * 60 * 1000); - // 2. not less than 30 seconds - serviceErrorTimeout = Math.max(serviceErrorTimeout, 30 * 1000); - // 3. not more than serviceOffInterval - serviceErrorTimeout = Math.min(serviceErrorTimeout, serviceOffInterval); - } - @Override public void onDestroy() { super.onDestroy(); @@ -212,20 +123,6 @@ public class NavigationService extends Service implements LocationListener { } catch (SecurityException e) { Log.d(PlatformUtil.TAG, "Location service permission not granted"); //$NON-NLS-1$ } - - if (!isContinuous()) { - WakeLock lock = getLock(this); - if (lock.isHeld()) { - lock.release(); - } - } - - if (pendingIntent != null) { - // remove alarm - AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); - alarmManager.cancel(pendingIntent); - } - // remove notification stopForeground(Boolean.TRUE); app.getNotificationHelper().updateTopNotification(); @@ -237,47 +134,11 @@ public class NavigationService extends Service implements LocationListener { }, 500); } - @SuppressLint("MissingPermission") - public void onWakeUp() { - // request location updates - final LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); - try { - locationManager.requestLocationUpdates(serviceOffProvider, 0, 0, this); - if (serviceOffInterval > serviceErrorTimeout) { - handler.postDelayed(new Runnable() { - @Override - public void run() { - WakeLock lock = getLock(NavigationService.this); - if (lock.isHeld()) { - lock.release(); - locationManager.removeUpdates(NavigationService.this); - } - } - }, serviceErrorTimeout); - } - } catch (RuntimeException e) { - // ignore - } - } - @Override public void onLocationChanged(Location l) { if (l != null && !settings.MAP_ACTIVITY_ENABLED.get()) { net.osmand.Location location = OsmAndLocationProvider.convertLocation(l, (OsmandApplication) getApplication()); - if (!isContinuous()) { - // unregister listener and wait next time - LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); - try { - locationManager.removeUpdates(this); - } catch (SecurityException e) { - Log.d(PlatformUtil.TAG, "Location service permission not granted"); //$NON-NLS-1$ - } - WakeLock lock = getLock(this); - if (lock.isHeld()) { - lock.release(); - } - } - locationProvider.setLocationFromService(location, isContinuous()); + locationProvider.setLocationFromService(location); } } diff --git a/OsmAnd/src/net/osmand/plus/OnNavigationServiceAlarmReceiver.java b/OsmAnd/src/net/osmand/plus/OnNavigationServiceAlarmReceiver.java deleted file mode 100644 index f9ae1debec..0000000000 --- a/OsmAnd/src/net/osmand/plus/OnNavigationServiceAlarmReceiver.java +++ /dev/null @@ -1,51 +0,0 @@ -package net.osmand.plus; - -import android.annotation.SuppressLint; -import android.app.AlarmManager; -import android.app.PendingIntent; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.os.Build; -import android.os.PowerManager.WakeLock; -import android.os.SystemClock; - -public class OnNavigationServiceAlarmReceiver extends BroadcastReceiver { - @SuppressLint("WakelockTimeout") - @Override - public void onReceive(Context context, Intent intent) { - final WakeLock lock = NavigationService.getLock(context); - final NavigationService service = ((OsmandApplication) context.getApplicationContext()).getNavigationService(); - - // do not do nothing - if (service == null) { - return; - } else if (lock.isHeld()) { - rescheduleAlarm(context, service); - return; - } - - lock.acquire(); - rescheduleAlarm(context, service); - service.onWakeUp(); - } - - private void rescheduleAlarm(Context context, NavigationService service) { - //Unless setRepeating was used, manually re-schedule service to the next measurement point in the future - int serviceOffInterval = service.getServiceOffInterval(); - if (Build.VERSION.SDK_INT >= 19 && serviceOffInterval > 0) { - // Avoid drift - while ((service.getNextManualWakeup() - SystemClock.elapsedRealtime()) < 0) { - service.setNextManualWakeup(service.getNextManualWakeup() + serviceOffInterval); - } - AlarmManager alarmManager = (AlarmManager) service.getSystemService(Context.ALARM_SERVICE); - PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 1, new Intent(context, OnNavigationServiceAlarmReceiver.class), PendingIntent.FLAG_UPDATE_CURRENT); - if (Build.VERSION.SDK_INT >= 23) { - alarmManager.setExactAndAllowWhileIdle(AlarmManager.ELAPSED_REALTIME_WAKEUP, service.getNextManualWakeup(), pendingIntent); - } else { - alarmManager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, service.getNextManualWakeup(), pendingIntent); - } - } - } -} diff --git a/OsmAnd/src/net/osmand/plus/OsmAndLocationProvider.java b/OsmAnd/src/net/osmand/plus/OsmAndLocationProvider.java index 577258a5f4..c465ce2f77 100644 --- a/OsmAnd/src/net/osmand/plus/OsmAndLocationProvider.java +++ b/OsmAnd/src/net/osmand/plus/OsmAndLocationProvider.java @@ -791,19 +791,17 @@ public class OsmAndLocationProvider implements SensorEventListener { } } } - - - public void setLocationFromService(net.osmand.Location location, boolean continuous) { + + public void setLocationFromService(net.osmand.Location location) { if (locationSimulation.isRouteAnimating()) { return; } if (location != null) { notifyGpsLocationRecovered(); } - // if continuous notify about lost location - if (continuous) { - scheduleCheckIfGpsLost(location); - } + // notify about lost location + scheduleCheckIfGpsLost(location); + app.getSavingTrackHelper().updateLocation(location, heading); OsmandPlugin.updateLocationPlugins(location); app.getRoutingHelper().updateLocation(location); diff --git a/OsmAnd/src/net/osmand/plus/OsmandApplication.java b/OsmAnd/src/net/osmand/plus/OsmandApplication.java index bbe45aab51..36c566a7a6 100644 --- a/OsmAnd/src/net/osmand/plus/OsmandApplication.java +++ b/OsmAnd/src/net/osmand/plus/OsmandApplication.java @@ -945,34 +945,14 @@ public class OsmandApplication extends MultiDexApplication { } } - - public int navigationServiceGpsInterval(int interval) { - // Issue 5632 Workaround: Keep GPS always on instead of using AlarmManager, as API>=19 restricts repeated AlarmManager reception - // Maybe do not apply to API=19 devices, many still behave acceptably (often restriction not worse than 1/min) - if ((Build.VERSION.SDK_INT > 19) && (getSettings().SAVE_GLOBAL_TRACK_INTERVAL.get() < 5 * 60000)) { - return 0; - } - // Default: Save battery power by turning off GPS between measurements - if (interval >= 30000) { - return interval; - // GPS continuous - } else { - return 0; - } - } - - - public void startNavigationService(int intent, int interval) { + public void startNavigationService(int intent) { final Intent serviceIntent = new Intent(this, NavigationService.class); - if (getNavigationService() != null) { intent |= getNavigationService().getUsedBy(); - interval = Math.min(getNavigationService().getServiceOffInterval(), interval); getNavigationService().stopSelf(); } serviceIntent.putExtra(NavigationService.USAGE_INTENT, intent); - serviceIntent.putExtra(NavigationService.USAGE_OFF_INTERVAL, interval); if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { startForegroundService(serviceIntent); } else { diff --git a/OsmAnd/src/net/osmand/plus/measurementtool/command/ReversePointsCommand.java b/OsmAnd/src/net/osmand/plus/measurementtool/command/ReversePointsCommand.java index 364556635c..3c17998f3c 100644 --- a/OsmAnd/src/net/osmand/plus/measurementtool/command/ReversePointsCommand.java +++ b/OsmAnd/src/net/osmand/plus/measurementtool/command/ReversePointsCommand.java @@ -32,8 +32,22 @@ public class ReversePointsCommand extends MeasurementModeCommand { MeasurementEditingContext editingCtx = getEditingCtx(); oldPoints = new ArrayList<>(editingCtx.getPoints()); oldRoadSegmentData = editingCtx.getRoadSegmentData(); - newPoints = new ArrayList<>(oldPoints); - Collections.reverse(newPoints); + newPoints = new ArrayList<>(oldPoints.size()); + for (int i = oldPoints.size() - 1; i >= 0; i--) { + WptPt point = oldPoints.get(i); + WptPt prevPoint = i > 0 ? oldPoints.get(i - 1) : null; + WptPt newPoint = new WptPt(point); + newPoint.copyExtensions(point); + if (prevPoint != null) { + String profileType = prevPoint.getProfileType(); + if (profileType != null) { + newPoint.setProfileType(profileType); + } else { + newPoint.removeProfileType(); + } + } + newPoints.add(newPoint); + } executeCommand(); return true; } diff --git a/OsmAnd/src/net/osmand/plus/monitoring/OsmandMonitoringPlugin.java b/OsmAnd/src/net/osmand/plus/monitoring/OsmandMonitoringPlugin.java index 26d186782d..7429caadd6 100644 --- a/OsmAnd/src/net/osmand/plus/monitoring/OsmandMonitoringPlugin.java +++ b/OsmAnd/src/net/osmand/plus/monitoring/OsmandMonitoringPlugin.java @@ -500,8 +500,7 @@ public class OsmandMonitoringPlugin extends OsmandPlugin { settings.SAVE_GLOBAL_TRACK_INTERVAL.set(vs.value); settings.SAVE_GLOBAL_TRACK_TO_GPX.set(true); settings.SAVE_GLOBAL_TRACK_REMEMBER.set(choice.value); - int interval = settings.SAVE_GLOBAL_TRACK_INTERVAL.get(); - app.startNavigationService(NavigationService.USED_BY_GPX, app.navigationServiceGpsInterval(interval)); + app.startNavigationService(NavigationService.USED_BY_GPX); } }; if (choice.value || map == null) { diff --git a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java index e92c8c0504..49b8babdc8 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java +++ b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java @@ -164,7 +164,7 @@ public class RoutingHelper { app.getNotificationHelper().refreshNotifications(); } } else { - app.startNavigationService(NavigationService.USED_BY_NAVIGATION, 0); + app.startNavigationService(NavigationService.USED_BY_NAVIGATION); } } @@ -183,7 +183,7 @@ public class RoutingHelper { app.getNotificationHelper().refreshNotifications(); } } else { - app.startNavigationService(NavigationService.USED_BY_NAVIGATION, 0); + app.startNavigationService(NavigationService.USED_BY_NAVIGATION); } } diff --git a/OsmAnd/src/net/osmand/plus/views/mapwidgets/widgets/AlarmWidget.java b/OsmAnd/src/net/osmand/plus/views/mapwidgets/widgets/AlarmWidget.java index 2dc092139e..9862993386 100644 --- a/OsmAnd/src/net/osmand/plus/views/mapwidgets/widgets/AlarmWidget.java +++ b/OsmAnd/src/net/osmand/plus/views/mapwidgets/widgets/AlarmWidget.java @@ -116,7 +116,9 @@ public class AlarmWidget { } else if (alarm.getType() == AlarmInfo.AlarmInfoType.STOP) { locimgId = R.drawable.warnings_stop; } else if (alarm.getType() == AlarmInfo.AlarmInfoType.RAILWAY) { - if (americanType) { + if (isCanadianRegion) { + locimgId = R.drawable.warnings_railways_ca; + } else if (americanType) { locimgId = R.drawable.warnings_railways_us; } else { locimgId = R.drawable.warnings_railways;