diff --git a/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java b/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java index c2b961646e..1d1b1da020 100644 --- a/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java +++ b/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java @@ -55,7 +55,7 @@ public class GPXUtilities { private static final String GAP_PROFILE_TYPE = "gap"; private static final String TRKPT_INDEX_EXTENSION = "trkpt_idx"; - private final static String GPX_TIME_FORMAT = "yyyy-MM-dd'T'HH:mm:ss'Z'"; //$NON-NLS-1$ + public final static String GPX_TIME_FORMAT = "yyyy-MM-dd'T'HH:mm:ss'Z'"; //$NON-NLS-1$ private final static String GPX_TIME_FORMAT_MILLIS = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"; //$NON-NLS-1$ private final static NumberFormat latLonFormat = new DecimalFormat("0.00#####", new DecimalFormatSymbols( diff --git a/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java b/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java index a5c68f1938..b0fe44ecfb 100644 --- a/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java +++ b/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java @@ -134,7 +134,7 @@ public class Amenity extends MapObject { } this.additionalInfo.put(tag, value); if (OPENING_HOURS.equals(tag)) { - this.openingHours = value; + this.openingHours = unzipContent(value); } } } diff --git a/OsmAnd-java/src/main/java/net/osmand/data/City.java b/OsmAnd-java/src/main/java/net/osmand/data/City.java index f8faef5f67..a29dc3b741 100644 --- a/OsmAnd-java/src/main/java/net/osmand/data/City.java +++ b/OsmAnd-java/src/main/java/net/osmand/data/City.java @@ -24,6 +24,10 @@ public class City extends MapObject { public double getRadius() { return radius; } + + public boolean storedAsSeparateAdminEntity() { + return this != DISTRICT && this != NEIGHBOURHOOD && this != BOROUGH; + } public static String valueToString(CityType t) { return t.toString().toLowerCase(); diff --git a/OsmAnd-telegram/res/values-ca/strings.xml b/OsmAnd-telegram/res/values-ca/strings.xml index 9264c35526..26e15f88a1 100644 --- a/OsmAnd-telegram/res/values-ca/strings.xml +++ b/OsmAnd-telegram/res/values-ca/strings.xml @@ -131,7 +131,7 @@ Envia la meva ubicació Ubicació Temps de compartició - "Expiració: " + Finalitza Obre l\'OsmAnd En directe Bot @@ -267,4 +267,8 @@ Darrera resposta: fa %1$s fa %1$s ERR + Exporta + Memòria intermèdia del Logcat + Valida i comparteix enregistraments detallats de l\'aplicació + Envia un informe \ No newline at end of file diff --git a/OsmAnd-telegram/res/values-is/strings.xml b/OsmAnd-telegram/res/values-is/strings.xml index 94bb15851c..cec2f5ca37 100644 --- a/OsmAnd-telegram/res/values-is/strings.xml +++ b/OsmAnd-telegram/res/values-is/strings.xml @@ -1,6 +1,6 @@ - Einingar og snið þeirra + Einingar og snið Setja upp OsmAnd Lykilorð Meðalhæð @@ -44,7 +44,7 @@ Síðasta uppfærsla frá Telegram: Fyrir %1$s síðan Vöktun er óvirk Staða OsmAnd-rekjara - OsmAnd rekjari + OsmAnd-rekjari Hópur mín/ml Netþjónn @@ -208,4 +208,17 @@ Lokadagsetning Bakgrunnshamur OsmAnd-rakning keyrir í bakgrunni á meðan slökkt er á skjá. + Ekki fundist ennþá + Móttók GPX-punkta: %1$s + Deili staðsetningu + Hvernig á að slökkva á OsmAnd-rekjaranum úr Telegram + Ekki sent ennþá + OsmAnd nettengdur GPS-rekjari + Skrá út úr OsmAnd-rekjara\? + Kveikt er á deilingu (slökkva) + Hvernig á að slökkva á OsmAnd-rekjaranum úr Telegram + Virkjaðu \"Staðsetning\" í stillingunum stýrikerfisins + Tengiliðir og hópar sem deila staðsetningu til þín. + Tengstu við internetið til að geta skráð þig til fulls út úr Telegram. + Með því að smella á \'Halda áfram\', samþykkir þú ákvæði og skilyrði varðandi gagnaleynd hjá Telegram og OsmAnd. \ No newline at end of file diff --git a/OsmAnd/res/drawable/ic_action_route_start_destination.xml b/OsmAnd/res/drawable/ic_action_route_start_destination.xml new file mode 100644 index 0000000000..b658f465fc --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_route_start_destination.xml @@ -0,0 +1,27 @@ + + + + + + + diff --git a/OsmAnd/res/values-ar/phrases.xml b/OsmAnd/res/values-ar/phrases.xml index 691a54e02e..f3159cda50 100644 --- a/OsmAnd/res/values-ar/phrases.xml +++ b/OsmAnd/res/values-ar/phrases.xml @@ -1755,4 +1755,11 @@ ‮‮نبع الرافضية ملحق ملاصق للمبنى + حاجز دراجات + ويكي أستور وليوني + جنوب مين ويكي + ويكي الصربية الكرواتية + منخفض ساكسون ويكي + ويكي المالايالامية + فريسك ويكي \ No newline at end of file diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index 76ee8ba0cd..fe77e8fa18 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -3934,7 +3934,7 @@ النظام المرجعي للشبكة العسكرية النظام المرجعي للشبكة العسكرية OsmAnd يستخدم MGRS، وهو مشابه لتنسيق UTM NATO . - يجب عليك إضافة نقطتين على الأقل. + تحتاج إلى إضافة نقطتين على الأقل إدارة الاشتراك هناك مشكلة في اشتراكك. انقر الزر للانتقال إلى إعدادات اشتراك Google Play لإصلاح طريقة الدفع الخاصة بك. انتهت صلاحية اشتراك OsmAnd Live @@ -3949,4 +3949,10 @@ استخدام تسجيل الدخول وكلمة المرور الحساب تسجيل الدخول + إمكانية التتبع تعني أن التتبع لن يظهر في أي قوائم عامة ولكن ستظل نقاط التتبع الصادرة عنه متاحة من خلال واجهة برمجة تطبيقات GPS API العامة مع طوابع زمنية. سيتمكن المستخدمون الآخرون فقط من تنزيل نقاط التتبع المعالجة من التتبع الخاص بك والتي لا يمكن ربطها بك مباشرةً. + سجل تاريخ العلامات + أرسل ملف GPX إلى OpenStreetMap + أدخل العلامات مفصولة بفاصلة. + \"خاص\"يعني أن التتبع لن يظهر في أي قوائم عامة ، ولكن نقاط التتبع الصادرة عنه ستظل متاحة من خلال واجهة برمجة تطبيقات GPS API العامة بدون طوابع زمنية ولكن لن يتم ترتيبها ترتيبًا زمنيًا. + قم بتسجيل الدخول باستخدام OpenStreetMap \ No newline at end of file diff --git a/OsmAnd/res/values-ca/phrases.xml b/OsmAnd/res/values-ca/phrases.xml index a4680c3831..126959dfec 100644 --- a/OsmAnd/res/values-ca/phrases.xml +++ b/OsmAnd/res/values-ca/phrases.xml @@ -699,7 +699,7 @@ Neteja en sec Cotxe multiusuari Vaixell multiusuari - Vàter públic + Bany; Lavabos Bordell Àrea de fumadors Ciberlocal @@ -769,8 +769,8 @@ Wiki en letó Wiki en malai Wiki en newar - "Wiki en holandès" - "Wiki en noruec (nynorsk)" + Wiki en holandès + Wiki en noruec (nynorsk) Wiki en noruec Wiki en polonès Wiki en portuguès @@ -2181,8 +2181,8 @@ Benzinera per avions Benzinera per embarcacions Hoquei sobre gel - Accés a Internet - de pagament - Accés a Internet - de franc + Accés a Internet: de pagament + Accés a Internet: de franc Lògia maçònica Club nàutic Club d\'escoltes diff --git a/OsmAnd/res/values-ca/strings.xml b/OsmAnd/res/values-ca/strings.xml index 04ad6f0150..364f03abaf 100644 --- a/OsmAnd/res/values-ca/strings.xml +++ b/OsmAnd/res/values-ca/strings.xml @@ -3406,7 +3406,7 @@ Abasta l\'àrea: %1$s x %2$s Al prémer \'Aplica\', s\'esborraran definitivament els perfils suprimits. Perfil principal Seleccioneu el color - Els perfils predeterminats de l\'OsmAnd no no poden ser esborrats, però podeu desactivar-los (a la pantalla anterior), o ordenar-los cap a la part inferior. + Els perfils predeterminats de l\'OsmAnd no es poden esborrar però si desactivar-se (a la pantalla anterior) o reordenar-se cap al el final. Edita els perfils El \'tipus de navegació\' determina com es calculen les rutes. Aparença del perfil @@ -3442,7 +3442,7 @@ Abasta l\'àrea: %1$s x %2$s Recàlcul de la ruta Anunci Nom d\'usuari i contrasenya - Aquesta configuració afecta tots els perfils. + Aquest paràmetre de connectors és global i afecta tots els perfils. Edició OSM Consulteu les vostres edicions o errors OSM encara no pujats a %1$s. Els punts enviats ja no es veuran més. La icona es mostra mentre navegueu o us mogueu. @@ -3714,9 +3714,7 @@ Abasta l\'àrea: %1$s x %2$s Mostra icones d\'inici i final Triar amplària Trieu un arxiu de ruta al qual s\'afegirà un nou segment. - Per usar aquesta opció OsmAnd ha d\'ajustar la seua ruta a les vies del mapa. -\n -\nEn el pas següent cal que elegiu el perfil de navegació per detectar vies permeses i el llindar de distància per aproximar la ruta a les vies. + Desprès, ajusteu la traçada a la carretera permesa més propera amb un dels vostres perfils de navegació per utilitzar aquesta opció. Trieu com connectar els punts, amb una línia recta, o calcular la ruta entre ells segons s\'indica a continuació. Trieu l\'interval a què les marques de distància o temps sobre la ruta es mostraran. Personalitzat @@ -3881,4 +3879,6 @@ Abasta l\'àrea: %1$s x %2$s Emergència Desenvolupament local de Transport Public Discontinu + Proporcioneu la llargada del vostre vehicle, pot haver-hi rutes restringides als vehicles llargs. + No s\'ha generat correctament l\'arxiu GPX. Indiqueu-ho a l\'equip de suport per continuar investigant. \ No newline at end of file diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index 2ab3c403fc..e06fe65fc8 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -313,7 +313,7 @@ Globale Einstellungen OSM-Benutzername Benötigt für openstreetmap.org-Beiträge. - OSM-Passwort + Passwort Hintergrundmodus OsmAnd läuft bei ausgeschaltetem Bildschirm im Hintergrund. Speicherplatz (frei: %2$s MB) reicht nicht aus, um %1$s MB herunterzuladen. @@ -3439,7 +3439,7 @@ Die Datei \'%1$s\' enthält keine Routing-Regeln. Bitte eine andere Datei wählen. Dies ist ein Filter, welcher Punkte unter einer gewissen Geschwindigkeit nicht aufzeichnet. Dadurch können aufgezeichnete Tracks auf der Karte gleichmäßiger aussehen. Nebeneffekt: Auf Ihrer Strecke fehlen alle Abschnitte, in denen das Mindestgeschwindigkeitskriterium nicht erfüllt wurde (z. B., wenn Sie Ihr Fahrrad einen steilen Hügel hinaufschieben). Außerdem wird es keine Informationen über Ruhezeiten wie Pausen geben. Dies hat Auswirkungen auf jede Analyse oder Nachbearbeitung, z. B., wenn Sie versuchen, die Gesamtlänge Ihrer Reise, die Zeit in Bewegung oder Ihre Durchschnittsgeschwindigkeit zu bestimmen. - Diese Einstellungen gelten für alle Profile. + Diese Modul-Einstellungen sind global und gelten für alle Profile Zeitpuffer Aufzeichnungsintervall Webadresse @@ -3520,7 +3520,7 @@ Das importierte Profil enthält zusätzliche Daten. Klicken Sie auf \"Importieren\", um nur Profildaten zu importieren, oder wählen Sie zusätzliche Daten aus. Sie können zusätzliche Daten zum Exportieren zusammen mit dem Profil auswählen. Antarktis - Sie finden Ihre noch nicht übertragenen Änderungen oder OSM-Fehler in %1$s. Hochgeladene Punkte werden nicht mehr angezeigt. + Sie können alle Ihre noch nicht hochgeladenen Bearbeitungen oder OSM-Fehlermeldungen in %1$s anzeigen. Hochgeladene Punkte werden in OsmAnd nicht angezeigt. Empfehlung: Versuchen Sie zunächst, die Bewegungserkennung über den Filter zur Mindestabstandsmessung (B) zu verwenden. Das kann zu besseren Ergebnissen führen und Sie werden weniger Daten verlieren. Sollten Ihre Tracks bei niedrigen Geschwindigkeiten ungenau bleiben, versuchen Sie hier Werte ungleich Null. Bitte beachten Sie, dass einige Messungen (einige netzwerkbasierte Methoden) möglicherweise überhaupt keine Geschwindigkeitswerte anzeigen. In diesem Fall wird nichts aufgezeichnet. Es werden nur Punkte aufgezeichnet, die mit der gewählten Mindestgenauigkeit bestimmt wurden (in Metern/Fuß, wie von Android je nach Chipsatz bereitgestellt). Die Genauigkeit beschreibt die Nähe der Messungen zur wahren Position und steht nicht unmittelbar in Bezug zur Präzision, der Streuung wiederholter Messungen. Bemerkung: Wenn das GPS unmittelbar vor einer Aufzeichnung ausgeschaltet war, kann der erste gemessene Punkt eine verminderte Genauigkeit haben, sodass wir in unserem Code vielleicht eine Sekunde oder so warten wollen, bevor ein Punkt (oder der beste von 3 aufeinanderfolgenden Punkten usw.) aufgezeichnet wird. Das ist aber noch nicht implementiert. @@ -3951,10 +3951,26 @@ Symbole Lokale Karten Spezial - Sie müssen mindestens zwei Punkte hinzufügen. + Sie müssen mindestens zwei Punkte hinzufügen Abonnement verwalten Es gibt ein Problem mit Ihrem Abonnement. Klicken Sie auf die Schaltfläche, um zu den Einstellungen des Google Play Abonnements zu gelangen und Ihre Zahlungsmethode zu überprüfen. OsmAnd Live Abonnement ist abgelaufen OsmAnd Live Abonnement wurde ausgesetzt OsmAnd Live Abonnement liegt auf Eis + Anmeldung bei OpenStreetMap + Anmeldung bei OpenStreetMap.org + Anmelden mit OpenStreetMap + Sie müssen sich anmelden, um Änderungen hochzuladen. +\n +\nSie können sich mit der sicheren OAuth-Methode anmelden oder Ihren Benutzernamen und Ihr Passwort verwenden. + Benutzername und Passwort verwenden + Konto + Login + Historie der Marker + GPX-Datei an OpenStreetMap senden + Geben Sie durch Komma getrennte Tags ein. + Öffentlich bedeutet, dass der Track in Ihren GPS-Tracks und in GPS-Track Verzeichnissen öffentlich angezeigt wird. Die über die API bereitgestellten Daten verweisen nicht auf Ihre Track-Seite. Die Zeitstempel der Trackpunkte sind nicht über die öffentliche GPS-API verfügbar, und die Punkte sind nicht chronologisch geordnet. Andere Benutzer können jedoch nach wie vor den Rohtrack aus der öffentlichen Trackliste und alle darin enthaltenen Zeitstempel herunterladen. + Identifizierbar bedeutet, dass der Track in Ihren GPS-Tracks und in öffentlichen GPS-Track Verzeichnissen angezeigt wird. Andere Benutzer können den Rohtrack herunterladen und mit Ihrem Benutzernamen verknüpfen. Daten, die über die Trackpunkte-API geliefert werden, verweisen auf Ihre ursprüngliche Track-Seite. Die Zeitstempel der Trackpunkte sind über die öffentliche GPS-API verfügbar. + Privat bedeutet, dass der Track nicht in öffentlichen Verzeichnissen auftaucht. Punkte des Tracks werden weiterhin über die öffentliche GPS-API ohne Zeitstempel verfügbar sein, aber nicht chronologisch geordnet. + Verfolgbar bedeutet, dass der Track in keiner öffentlichen Auflistung auftaucht, aber Trackpunkte weiterhin über die öffentliche GPS API mit Zeitstempel verfügbar sein werden. Andere Benutzer werden nur verarbeitete Trackpunkte Ihres Tracks herunterladen können, die nicht direkt mit Ihnen in Verbindung gebracht werden können. \ No newline at end of file diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml index f6594182cd..8c8dd3f2c4 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -1324,7 +1324,7 @@ Ĝeneralaj agordoj de aplikaĵo Via OSM-uzantnomo Bezonata por sendoj al openstreetmap.org. - Via OSM-pasvorto + Pasvorto Fona reĝimo OsmAnd funkcias fone kiam la ekrano estas malaktiva. Vilaĝo @@ -3424,9 +3424,9 @@ Taksi Anonco Uzantnomo kaj pasvorto - Tiuj ĉi agordoj influas al ĉiuj profiloj. + Tiuj ĉi agordoj pri kromprogramoj aplikos al ĉiuj profiloj OSM‑redaktilo - Montri ĉiujn nesenditajn redaktojn kaj rimarkojn ĉe %1$s. Senditaj puntoj malaperos de tie ĉi. + Vi povas vidigi ĉiujn viajn nepublikigitajn redaktojn aŭ rimarkojn ĉe %1$s. Punktoj alŝutitaj al OSM ne estos videblaj en OsmAnd. OSM Emblemo montrata dum navigi aŭ moviĝi. Montri emblemon dum restado. @@ -3946,10 +3946,26 @@ MGRS MGRS OsmAnd uzas MGRS, kiu estas simila al la formo UTM NATO. - Aldonu almenaŭ du punktojn. + Aldonu almenaŭ du punktojn Administri abonon Okazis problemo pri via abono. Premu la butonon por iri al agordoj pri abonoj ĉe Google Play por korekti vian pagmanieron. Abono OsmAnd Live senvalidiĝis Abono OsmAnd Live estas paŭziigita Abono OsmAnd Live estas ĉesigita + Ensaluti al OpenStreetMap + Ensaluti al OpenStreetMap.org + Ensaluti per OpenStreetMap + Vi devas ensaluti por alŝuti novajn aŭ modifitajn ŝanĝojn. +\n +\nVi povas ensaluti per la sekura metodo OAuth aŭ per enigi uzantnomon kaj pasvorton. + Uzi uzantnomon kaj pasvorton + Konto + Uzantnomo + Historio de markoj + Sendi GPX‑dosieron al OpenStreetMap + Enigu etikedojn disigitajn per komo (,). + “Publika” signifas, ke la GPX‑spuro estos publika videbla en “miaj spuroj” kaj en la publika listo de spuro (GPS‑spuroj). Datumoj liverataj per la API ne ligos al paĝo de via spuro. Tempindikoj de punktoj ne estos akireblaj per la publika API GPS, kaj la punktoj ne estos ordigitaj laŭtempe. Tamen aliaj uzantoj plue povos elŝuti la nepritraktitan spuron el la publika listo de spuroj kune kun ĉiuj ampleksitaj tempindikoj. + “Privata” signifas, ke la GPX‑spuro montriĝos en neniu publika listo, sed ĝiaj punktoj plue estos akireblaj per la publika API GPS sen tempindikoj, sed tiuj punktoj estos ordigitaj laŭtempe. + “Identigebla” signifas, ke la GPX‑spuro estos publike videbla en “miaj spuroj” kaj en la publika listo de spuroj (GPS‑spuroj), aliaj uzantoj povos elŝuti vian nepritraktitan spuron kaj ligi ĝin al via uzantnomo. Datumoj liveritaj per la API de spuroj ligos al originala paĝo de via spuro. Tempindikoj de la spuro estos akireblaj per la publika API GPS. + “Spurebla” signifas, ke la GPX‑spuro ne estos montrata en publikaj listoj, sed punktoj el ĝi plue estos akireblaj per la publika API GPS kune kun tempindikoj. Aliaj uzantoj povos elŝuti nur pritraktitajn punktojn el via spuro, kiuj ne povos esti senpere ligitaj al vi. \ 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 87ae4731c0..27fb360c0e 100644 --- a/OsmAnd/res/values-es-rAR/strings.xml +++ b/OsmAnd/res/values-es-rAR/strings.xml @@ -3951,7 +3951,7 @@ MGRS MGRS OsmAnd usa MGRS, similar al formato UTM de la OTAN. - Debes añadir al menos dos puntos. + Debes añadir al menos dos puntos Gestionar suscripción Hay un problema con la suscripción. Pulsa el botón para ir a los ajustes de la suscripción de Google Play y corregir el método de pago. La suscripción a OsmAnd Live ha caducado @@ -3966,4 +3966,12 @@ Utilice nombre de usuario y contraseña Cuenta Iniciar sesión + Ingresar con OpenStreetMap + Historial de marcadores + Enviar archivo GPX a OpenStreetMap + Ingresa etiquetas separadas por comas. + Trazable significa que la traza no aparecerá en ninguna lista pública pero el conjunto de puntos estarán disponibles a través de la API pública de GPS y con marcas de tiempo. Otros usuarios sólo podrán descargar el conjunto de puntos procesados de su traza que no se pueden asociar directamente con usted. + Privado significa que la traza no aparecerá en ninguna lista pública, pero el conjunto de puntos seguirá estando disponible en orden cronológico a través de la API pública de GPS y sin marcas de tiempo. + Público significa que la traza se mostrará públicamente en tu listado de trazas y en los listados de trazas GPS públicas. Los datos servidos a través de la API no harán referencia a su página de trazas. Las marcas de tiempo de los puntos de la traza no estarán disponible a través de la API pública de GPS, aunque los puntos se ordenan cronológicamente. Sin embargo, otros usuarios podrán descargar la traza en bruto de la lista de trazas públicas y las marcas de tiempo que contiene. + Identificable significa que la traza se mostrará públicamente en tu listado de trazas y en el listado de trazas GPS públicas, es decir que otros usuarios podrán descargar la traza en bruto y asociarla con su nombre de usuario. Los datos servidos a través de la API de conjunto de puntos hará referencia a la página original de la traza. Las marcas de tiempo de los puntos de la traza estarán disponibles a través de la API pública de GPS. \ 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 746343005d..4543d260c6 100644 --- a/OsmAnd/res/values-es-rUS/strings.xml +++ b/OsmAnd/res/values-es-rUS/strings.xml @@ -600,7 +600,7 @@ Usar sensor magnético Otra Quedan %1$d archivos - %1$d archivos para descargar + Faltan descargar %1$d archivos Versión completa Descartar ruta Parar navegación @@ -1033,7 +1033,7 @@ Ajustes globales de la aplicación Nombre de usuario de OSM Necesario para envíos a OpenStreetMap.org. - Contraseña de OSM + Contraseña Modo reposo OsmAnd se ejecuta en modo reposo con la pantalla apagada. Sin espacio suficiente para descargar %1$s MB (disponible: %2$s). @@ -3121,22 +3121,24 @@ Error OsmAnd falló la última vez. Por favor, ayúdanos a mejorar OsmAnd compartiendo el mensaje de error. OVNI - • Perfiles de aplicación: crea un perfil personalizado según tus necesidades, con un icono y color personalizado -\n + • Perfiles de aplicación: crea un perfil personalizado según tus necesidades, con un icono y color personalizado. +\n \n • Ahora puedes personalizar las velocidades predefinidas, máximas y mínimas de cualquier perfil -\n +\n \n • Se ha añadido un widget para las coordenadas actuales -\n +\n \n • Se añadieron opciones para mostrar la brújula y una regla radial en el mapa -\n +\n \n • Se ha corregido la grabación de trazas en segundo plano -\n +\n \n • Se mejoraron las descargas de mapas en segundo plano -\n +\n +\n • Se ha vuelto a añadir la opción «Encender pantalla» +\n \n • Se ha corregido la selección de idioma de Wikipedia -\n +\n \n • Se ha corregido el comportamiento de los botones de la brújula durante la navegación -\n +\n \n • Otras correcciones de errores \n \n @@ -3428,7 +3430,7 @@ Recálculo de la ruta Anunciar Nombre de usuario y contraseña - Estos ajustes se aplican a todos los perfiles. + Los ajustes de este complemento son globales y se aplican a todos los perfiles Edición de OSM Puedes ver todas tus ediciones no subidas o errores de OSM en «%1$s». Los puntos subidos no se muestran en OsmAnd. OSM @@ -3946,4 +3948,26 @@ Emergencia Comodidad El archivo ya fue importado en OsmAnd + Iniciar sesión + Utilice nombre de usuario y contraseña + Hay un problema con la suscripción. Pulsa el botón para ir a los ajustes de la suscripción de Google Play y corregir el método de pago. + La suscripción a OsmAnd Live se ha pausado + La suscripción a OsmAnd Live está en espera + La suscripción a OsmAnd Live ha caducado + Ingresar con OpenStreetMap + Enviar archivo GPX a OpenStreetMap + Necesitas iniciar sesión para subir cambios nuevos o modificados. +\n +\nPuedes ingresar usando el método seguro de OAuth o usar el nombre de usuario y contraseña. + Debes añadir al menos dos puntos + Historial de marcadores + Gestionar suscripción + Ingresar a OpenStreetMap.org + Iniciar sesión en OpenStreetMap + Cuenta + Trazable significa que la traza no aparecerá en ninguna lista pública pero el conjunto de puntos estarán disponibles a través de la API pública de GPS y con marcas de tiempo. Otros usuarios sólo podrán descargar el conjunto de puntos procesados de su traza que no se pueden asociar directamente con usted. + Público significa que la traza se mostrará públicamente en tu listado de trazas y en los listados de trazas GPS públicas. Los datos servidos a través de la API no harán referencia a su página de trazas. Las marcas de tiempo de los puntos de la traza no estarán disponible a través de la API pública de GPS, aunque los puntos se ordenan cronológicamente. Sin embargo, otros usuarios podrán descargar la traza en bruto de la lista de trazas públicas y las marcas de tiempo que contiene. + Privado significa que la traza no aparecerá en ninguna lista pública, pero el conjunto de puntos seguirá estando disponible en orden cronológico a través de la API pública de GPS y sin marcas de tiempo. + Identificable significa que la traza se mostrará públicamente en tu listado de trazas y en el listado de trazas GPS públicas, es decir que otros usuarios podrán descargar la traza en bruto y asociarla con su nombre de usuario. Los datos servidos a través de la API de conjunto de puntos hará referencia a la página original de la traza. Las marcas de tiempo de los puntos de la traza estarán disponibles a través de la API pública de GPS. + Ingresa etiquetas separadas por comas. \ No newline at end of file diff --git a/OsmAnd/res/values-et/strings.xml b/OsmAnd/res/values-et/strings.xml index c6bb81ed40..97aeb80035 100644 --- a/OsmAnd/res/values-et/strings.xml +++ b/OsmAnd/res/values-et/strings.xml @@ -3798,7 +3798,7 @@ OsmAnd kasutab MGRS-vormingut, mis on sarnane NATO UTM-vormingule. MGRS MGRS - Graafiku joonistamiseks pead lisama vähemalt kaks punkti. + Graafiku joonistamiseks peaksid lisama vähemalt kaks punkti OsmAnd Live tellimus on ootel OsmAnd Live tellimus on peatatud OsmAnd Live tellimus on aegunud @@ -3811,4 +3811,5 @@ \n \nSa võid selleks kasutada mõnd turvalust OAuth võimalust või oma kasutajanime ning salasõna. Kasutajakonto + Saada GPX fail OpenStreetMappi \ No newline at end of file diff --git a/OsmAnd/res/values-fa/strings.xml b/OsmAnd/res/values-fa/strings.xml index 46a00d0720..f08461e509 100644 --- a/OsmAnd/res/values-fa/strings.xml +++ b/OsmAnd/res/values-fa/strings.xml @@ -357,7 +357,7 @@ تنظیمات کلی برنامه نام کاربری OSM شما برای ارسال داده به سایت openstreetmap.org لازم است. - گذرواژهٔ OSM شما + گذرواژه غرب-جنوب‌غرب غرب غرب-شمال‌غرب @@ -2361,7 +2361,7 @@ بربری بربری حذف ویرایش OSM - خروج + ثبت خروج کنش {0} ویرایش یادداشت ناموفق بود. اصلاح یادداشت @@ -3412,7 +3412,7 @@ %1$s • %2$s %1$s،‏ %2$s شخصی - در حال بارگیری %s + در حال دانلود %s ضخیم برای بیابان‌ها و سایر نواحی با جمعیت پراکنده. جزئیات بیشتری دارد. پروفایل تازهٔ «%1$s» اضافه شود؟ @@ -3456,7 +3456,7 @@ امتیاز بدهید ناوبری، صحت ردنگاری اندازهٔ عکس، کیفیت صدا و ویدئو - ورود، گذرواژه، ویرایش آفلاین + ثبت ورود، گذرواژه، ویرایش آفلاین انتخاب نماد، رنگ و نام ردیابی آنلاین صحت ردنگاری @@ -3464,7 +3464,7 @@ یادداشت‌های عکسی محاسبهٔ مجدد مسیر نام کاربری و گذرواژه - این تنظیمات روی همهٔ پروفایل‌ها به کار گرفته می‌شود. + این تنظیمات افزونه، سراسری است و روی همهٔ پروفایل‌ها به کار گرفته می‌شود. ویرایش OSM OSM نمادی که هنگام حرکت یا ناوبری نمایش داده می‌شود. @@ -3481,7 +3481,7 @@ اجازه می‌دهد موقعیت کنونی با استفاده از ضبط سفر هم‌رسانی شود. ردهای ضبط‌شدهٔ شما در %1$s یا در پوشهٔ OsmAnd قرار دارند. یادداشت‌های OSMای شما در %1$s قرار دارند. - ویرایش‌ها یا یادداشت‌های OSMای خود که هنوز بارگذاری نشده‌اند را در %1$s ببینید. نقاط بارگذاری‌شده را دیگر نمی‌بینید. + می‌توانید همهٔ ویرایش‌ها یا یادداشت‌های OSMای خود را که آپلود کرده‌اید در %1$s ببینید. نقاط آپلودشده را دیگر در OsmAnd نمی‌بینید. لاگ‌های جزئی برنامه را بررسی و هم‌رسانی کنید استفاده از برنامهٔ سیستم صدای شاتر دوربین @@ -3950,4 +3950,34 @@ ورزش اورژانس سفر + تازه‌ها + برای استفاده از قابلیت‌های ویرایشی، از طریق OAuth ثبت ورود کنید + ثبت ورود از طریق OAuth + پاک‌سازی توکن OAuth اوپن‌استریت‌مپ + ثبت خروج موفقیت‌آمیز بود + فایل قبلاً در OsmAnd درون‌برد شده است + استفاده از الگوریتم مسیریابی دومرحله‌ای A*‎ + نمودار + دادهٔ %1$s فقط در جاده ارائه می‌شود. برای اینکه آن را داشته باشید با استفاده از «مسیریابی بین نقطه‌ها» مسیری محاسبه کنید. + منتظر بمانید تا مسیر دوباره محاسبه شود. +\nنمودار پس از بازمحاسبه در دسترس قرار خواهد گرفت. + %1$s — %2$s + دست‌کم باید دو نقطه اضافه کنید + ثبت ورود در اوپن‌استریت‌مپ + ثبت ورود در OpenStreetMap.org + ثبت ورود از طریق اوپن‌استریت‌مپ + برای آپلود تغییرات جدید باید ثبت ورود (login) کنید. +\n +\nبرای ثبت ورود می‌توانید از روش امن OAuth یا روش نام کاربری و گذرواژه استفاده کنید. + استفاده از نام کاربری و گذرواژه + حساب + ثبت ورود + مدیریت اشتراک + در رابطه با اشتراک شما مشکلی وجود دارد. روی دکمه کلیک کنید تا به تنظیمات اشتراک گوگل‌پلی بروید و شیوهٔ پرداخت خود را اصلاح نمایید. + تاریخچهٔ نشانه‌ها + ارسال فایل GPX به اوپن‌استریت‌مپ + عمومی یا Public به این معنی است که رد به‌صورت عمومی در ردهای جی‌پی‌اس شما و لیست ردهای عمومی جی‌پی‌اس نمایش داده می‌شود. دادهٔ نقاط رد که از طریق API در دسترس قرار می‌گیرد، به صفحهٔ ردهای شما ارجاع نمی‌دهد. مهر زمان نقاط رد از طریق API جی‌پی‌اس‌های عمومی دست‌یافتنی نیست و نقاط رد بر اساس زمان مرتب نیستند. به هر حال، سایر کاربران هنوز می‌توانند فایل رد خام را از لیست ردهای عمومی دانلود کنند و این فایل مهر زمان نقاط را هم دارد. + خصوصی یا Private به این معنی است که رد در هیچ‌یک از لیست‌های عمومی نشان داده نمی‌شود اما نقاط رد از طریق API جی‌پی‌اس‌های عمومی بدون مهر زمان و بدون ترتیب زمانی دست‌یافتنی است. + قابل‌شناسایی یا Identifiable به این معنی است که رد به‌صورت عمومی در لیست ردهای جی‌پی‌اس شما و لیست عمومی ردهای جی‌پی‌اس نمایش داده می‌شود، یعنی سایر کاربران می‌توانند رد خام را دانلود کنند و بدانند که مربوط به نام کاربری شماست. دادهٔ نقاط رد که از طریق API در دسترس قرار می‌گیرد، به صفحهٔ ردهای شما ارجاع می‌دهد. مهر زمان نقاط رد از طریق API جی‌پی‌اس‌های عمومی دست‌یافتنی است. + قابل‌ردیابی یا Trackable به این معنی است که رد در هیچ‌یک از لیست‌های عمومی نشان داده نمی‌شود اما نقاط رد + مهر زمان نقاط از طریق API جی‌پی‌اس‌های عمومی دست‌یافتنی است. سایر کاربران فقط می‌توانند نقاط پردازش‌شدهٔ رد شما را دانلود کنند که مستقیماً امکان ارجاع به نام کاربری شما را ندارد. \ No newline at end of file diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index debdabd062..8184a784a1 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -3926,7 +3926,7 @@ OsmAnd utilise le système de référence MDRS de l\'OTAN dérivé des formats UTM et UPS. MGRS MGRS - Vous devez, au moins, ajouter deux points. + Vous devez, au moins, ajouter deux points L\'abonnement OsmAnd Live est en attente L’abonnement OsmAnd Live a expiré L\'abonnement OsmAnd Live a été suspendu @@ -3937,4 +3937,8 @@ Utiliser un identifiant et un mot de passe Compte Gérer l\'abonnement + Se connecter avec OpenStreetMap + Historique des marqueurs + Envoyer un fichier GPX vers OpenStreetMap + Saisissez les étiquettes séparées par des virgules. \ No newline at end of file diff --git a/OsmAnd/res/values-gl/strings.xml b/OsmAnd/res/values-gl/strings.xml index 2bff3c9301..f0d735e36c 100644 --- a/OsmAnd/res/values-gl/strings.xml +++ b/OsmAnd/res/values-gl/strings.xml @@ -800,7 +800,7 @@ Axustes globais da aplicación O teu nome de usuario no OSM Precísase para os envíos ó openstreetmap.org. - O teu contrasinal en OSM + Contrasinal Modo en segundo plano O OsmAnd execútase en segundo plano coa pantalla apagada. Non fica moito espazo libre para baixar %1$s MB (libre: %2$s). @@ -3448,9 +3448,9 @@ Lon %2$s Recálculo da ruta Anuncio Nome de usuario e contrasinal - Estes axustes aplícanse a todos os perfís. + Os axustes deste complemento son globais e aplícanse a todos os perfís Edición do OSM - Ollar as túas edicións ou erros do OSM aínda non subidos en %1$s. Os puntos subidos xa non se amosarán. + Podes ollar todas as túas edición non subidas ou erros do OSM en %1$s. Os puntos subidos non se amosan no OsmAnd. OSM A icona amósase mentres se navega ou se move pola pantalla. A icona amósase en asueto. @@ -3971,10 +3971,26 @@ Lon %2$s Deporte Emerxencia Viaxe - Tes que engadir polo menos dous puntos. + Tes que engadir polo menos dous puntos Xestionar subscrición Hai un problema coa túa subscrición. Preme no botón para ir ós axustes de subscrición da Google Play e corrixir o teu método de pagamento. A subscrición do OsmAnd Live expirou A subscrición do OsmAnd Live foi detida A subscrición do OsmAnd Live está en espera + Público significa que a pista amosarase de xeito público na túa listaxe de pistas e nas listaxes de pistas GPS públicas. Os datos servidos a través da API non farán referencia á túa páxina de pistas. As marcaxes de tempo dos puntos da pista non estarán dispoñíbeis a través da API pública de GPS, aínda que os puntos ordénanse de xeito cronolóxico. Porén, outros usuarios poderán baixar a pista en bruto da listaxe de pistas públicas e as marcaxes de tempo que contén. + Iniciar sesión no OpenStreetMap + Entrar ó OpenStreetMap.org + Entrar co OpenStreetMap + Precisas iniciar sesión para subir modificacións novas. +\n +\nPodes iniciar sesión empregando o método seguro de OAuth ou empregar o nome de usuario e contrasinal. + Empregar nome de usuario e contrasinal + Conta + Iniciar sesión + Historial de marcaxes + Enviar ficheiro GPX ó OpenStreetMap + Insire etiquetas separadas por comas. + Privado significa que a pista non aparecerá en ningunha listaxe pública, mais o conxunto de puntos seguirá estando dispoñíbel en orde cronolóxica a través da API pública de GPS e sen marcaxes de tempo. + Rastrexábel (ou trazábel) significa que a pista non aparecerá en ningunha listaxe pública pero o conxunto de puntos estarán dispoñíbeis a través da API pública de GPS e con marcaxes de tempo. Outros usuarios só poderán baixar o conxunto de puntos procesados da túa pista que non se poden asociar directamente contigo. + Identificábel significa que a pista amosarase de xeito público na túa listaxe de pistas e na listaxe de pistas GPS públicas, é dicir que outros usuarios poderán baixar a pista en bruto e asociala co teu nome de usuario. Os datos servidos a través da API de conxunto de puntos fará referencia á páxina orixinal da pista. As marcaxes de tempo dos puntos da traza estarán dispoñíbeis a través da API pública de GPS. \ No newline at end of file diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index 007f5b576c..1345c4356c 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -3938,6 +3938,26 @@ MGRS MGRS Az OsmAnd a NATO által is használt MGRS (Military Grid Reference System) koordinátákat alkamazza, amely hasonlít az UTM-formátumhoz. - Legalább két pontot kell hozzáadnia. + Legalább két pontot kell hozzáadnia Előfizetés kezelése + A követhetőség azt jelenti, hogy a nyomvonal semmilyen nyilvános listában nem jelenik meg, de a nyomvonalpontok az időbélyegekkel együtt továbbra is elérhetők lesznek a nyilvános GPS API-n keresztül. Más felhasználók csak a feldolgozott nyomvonalpontokat tölthetik le az Ön nyomvonalából, amelyek közvetlenül nem társítható Önhöz. + Az azonosítható azt jelenti, hogy a nyomvonal nyilvánosan megjelenik az Ön GPS-nyomvonalai között és a GPS-nyomvonalak nyilvános listáin, vagyis más felhasználók letölthetik a nyers nyomvonalat, és társíthatják azt a felhasználónévvel. A nyomvonalpont-API-n keresztül szolgáltatott adatok hivatkozni fognak az Ön eredeti nyomvonaloldalára. A nyomvonalpontok időbélyegei elérhetők a nyilvános GPS API-n keresztül. + A nyilvános azt jelenti, hogy a nyomvonal nyilvánosan megjelenik az Ön GPS-nyomvonalai között és a GPS-nyomvonalak nyilvános listáin. Az API-n keresztül szolgáltatott adatok nem hivatkoznak az Ön nyomvonaloldalára. A nyomvonalpontok időbélyegei nem érhetők el a nyilvános GPS API-n keresztül, és a pontok nincsenek időrend szerint sorba állítva. Más felhasználók azonban továbbra is letölthetik a nyers nyomvonalat (a benne található időbélyegeket) a nyilvános nyomvonallistáról. + A privát azt jelenti, hogy a nyomvonal semmilyen nyilvános listán nem jelenik meg, de az abból származó nyomvonalpontok továbbra is elérhetők lesznek a nyilvános GPS API-n időbélyegzők nélkül, nem időrend szerint sorba állítva. + A címkéket vesszővel elválasztva írja be. + GPX-fájl küldése az OpenStreetMapre + Jelölők előzményei + Az OsmAnd-előfizetés fel van függesztve + Az OsmAnd Live-előfizetés szünetel + Az OsmAnd Live-előfizetés lejárt + Probléma van az előfizetésével. A fizetési mód kijavítása érdekében kattintson a gombra a Google Play előfizetési beállításaihoz történő ugráshoz. + Bejelentkezés + Fiók + Fióknév és jelszó használata + Az új vagy módosított szerkesztések feltöltéséhez be kell jelentkeznie. +\n +\nBejelentkezhet a biztonságos OAuth-módszerrel vagy használhatja fióknevét és jelszavát. + Bejelentkezés OpenStreetMap-fiókkal + Bejelentkezés az OpenStreetMapre + Bejelentkezés az OpenStreetMap.org-ra \ No newline at end of file diff --git a/OsmAnd/res/values-is/phrases.xml b/OsmAnd/res/values-is/phrases.xml index 564d5dfea5..f90741b80d 100644 --- a/OsmAnd/res/values-is/phrases.xml +++ b/OsmAnd/res/values-is/phrases.xml @@ -3834,4 +3834,5 @@ Skýli Á þaki GPX-punktur + Radarturn \ No newline at end of file diff --git a/OsmAnd/res/values-is/strings.xml b/OsmAnd/res/values-is/strings.xml index 0682b0030e..00458a4f90 100644 --- a/OsmAnd/res/values-is/strings.xml +++ b/OsmAnd/res/values-is/strings.xml @@ -887,7 +887,7 @@ Sýsla með kortaskrár Víðværar stillingar forrits OSM-notandanafnið þitt - OSM-lykilorðið þitt + Lykilorð Gegnsætt þema Yfirlag / Undirlag Skrá með sama heiti er þegar til. @@ -3429,7 +3429,7 @@ Rakning með netstuðningi Nákvæmni skráninga Endurreikningur leiðar - Þessar stillingar eiga við um öll snið. + Þessar stillingar eru víðværar og eiga við um öll snið OSM-breytingar OSM Táknið birtist þegar leiðsögn er í gangi eða á meðan verið er á ferðinni. @@ -3459,7 +3459,7 @@ Hljóð við myndatöku Heimild fékkst Veljið studda %1$s kerfisviðaukaskrá í staðinn. - Skoðaðu breytingarnar þínar eða villur í OSM sem ekki hafa enn verið sendar inn í %1$s. Innsendir punktar verða ekki lengur birtir. + Þú getur skoðað allar óinnsendar breytingar þínar eða villur í OSM í %1$s. Innsendir punktar eru ekki birtir í OsmAnd. Aukaverkanir: Ferilinn þinn mun vanta alla þá hluta þar sem kröfur um lágmarkshraða voru ekki uppfylltar (t.d. þar sem þú ert að ýta hjólinu þínu upp bratta brekku). Að auki verða engar upplýsingar um kyrrstöður, eins og t.d. hvíldarstaði. Þetta hefur áhrif á alla greiningu eða eftirvinnslu, eins og þegar verið er að skilgreina heildarlengd ferðar, tíma á ferðinni eða meðalhraða þinn. Ábending: Reyndu fyrst að nota hreyfiskynjun í gegnum síuna sem mælis skráða lágmarkshliðrun (B), hún gæti gefið betri niðurstöður og þú tapar minna af gögnum. Ef ferlarnir þínir eru áfram loðnir við lágan hraða, skaltu prófa hér gildi sem ekki eru núll. Athugaðu að sumar mælingar gætu gefið gildi án hraða (sumar mæliaðferðir sem byggjast á netkerfum), í þeim tilfellum myndi ekkert vera skráð. Athugaðu: ef hraði > 0 skoðaðu: Flest GPS kubbasett gefa aðeins upp hraðagildi ef reikniritið ákvarðar að tækið sé á hreyfingu, en gefa ekki neitt gildi ef svo er ekki. Þar af leiðir að sé notuð stillingin > 0 í þessari síu má segja að sé verið að nota hreyfiskynjunina í GPS kubbasettinu. En jafnvel þó þetta sé ekki síað á meðan skráningu stendur, þá notum við samt þennan eiginleika í greiningu okkar á GPX-ferlinum til að ákvarða leiðrétta vegalengd, þ.e.a.s. gildið sem birtist í þeim reit er einmitt skráð vegalengd á meðan verið er á ferðinni. @@ -3954,4 +3954,25 @@ Íþróttir Neyðartilfelli Ferðalög + Þú þarft að skrá þig inn til að geta sent inn ný atriði eða breytingar. +\n +\nÞú getur skráð þig inn með öruggu OAuth-aðferðinni eða notað notandanafn og lykilorð innskráningar. + Það er vandamál með áskriftina þína. Smelltu á hnappinn til að fara í stillingar Google Play áskriftarinnar og laga þar greiðslumátann. + Nota notandanafn og lykilorð + Skrá inn á OpenStreetMap + Innskrá + Settu inn merki aðskilin með kommu. + Senda GPX-skrá til OpenStreetMap + Áskrift að OsmAnd Live er útrunnin + Skrá inn með OpenStreetMap + Áskrift að OsmAnd Live er í biðstöðu + Notandaaðgangur + Skrá inn á OpenStreetMap.org + Vinnsluferill kortamerkja + Þú þarft að bæta við a.m.k. tveimur punktum + MGRS + Áskrift að OsmAnd Live hefur verið sett í bið + OsmAnd notar MGRS, sem er svipað og UTM-snið NATO. + Sýsla með áskrift + MGRS \ No newline at end of file diff --git a/OsmAnd/res/values-iw/strings.xml b/OsmAnd/res/values-iw/strings.xml index 2c978cb344..737fe1842e 100644 --- a/OsmAnd/res/values-iw/strings.xml +++ b/OsmAnd/res/values-iw/strings.xml @@ -3966,4 +3966,6 @@ \nניתן להיכנס בשיטת OAuth המאובטחת או להשתמש בשם הכניסה והססמה שלך. יש בעיה עם המינוי שלך. יש ללחוץ על הכפתור כדי לגשת להגדרות המינוי של Google Play ולתקן את שיטת התשלום שלך. המינוי ל־OsmAnd Live מוחזק + היסטוריית סמנים + שליחת קובץ GPX ל־OpenStreetMap \ No newline at end of file diff --git a/OsmAnd/res/values-ja/strings.xml b/OsmAnd/res/values-ja/strings.xml index ab453f2545..298cc0af34 100644 --- a/OsmAnd/res/values-ja/strings.xml +++ b/OsmAnd/res/values-ja/strings.xml @@ -358,7 +358,7 @@ POIの更新は利用できません 終了 ルート計算にインターネットを使用します オンラインルーティングを使用 - OSM パスワード + パスワード Openstreetmap.org (OSM)にデータを提出する際に必要な項目の設定をおこないます。 言語、データのダウンロード/リロードを指定します データ @@ -3443,9 +3443,9 @@ POIの更新は利用できません ルート再計算 案内 ユーザー名とパスワード - 以下設定はすべてのプロファイル共通で使用されます。 + これらの設定はアプリ全般に関するもので、すべてのプロファイルに適用されます OSM編集 - %1$sにまだアップロードされていない編集内容やOSMバグを表示します。アップロード後には表示されなくなります。 + まだアップロードしていない編集やOSMバグを%1$sで表示できます。アップロードされた後にはOsmAndに表示されません。 OSM ナビゲーションまたは移動中に表示されるアイコンです。 静止時に表示されるアイコンです。 @@ -3914,4 +3914,36 @@ POIの更新は利用できません カーナビゲーション向けの2段階ルート計算です。 2段階 A*ルーティングアルゴリズムを使用 ファイルはすでにOsmAndにインポートされています + 公共施設 + ローカルマップ + %1$s — %2$s + 特殊 + 公共交通機関 + サービス + シンボル・道標 + スポーツ + 緊急 + 旅行 + 少なくとも2つの地点を追加する必要があります + OpenStreetMapにログイン + OpenStreetMap.orgにログイン + OpenStreetMapに登録 + 変更をアップロードするには、ログインする必要があります。 +\n +\n安全なOAuth方式を使用してログイン、または通常のユーザー名とパスワード方式が選択できます。 + ユーザー名とパスワードを使用する + ログイン + サブスクリプションの管理 + サブスクリプションに際し問題が発生しています。ボタンをタップしてGooglePlayサブスクリプション設定に移動し、お支払い方法を確認してください。 + OsmAndLiveサブスクリプションの有効期限が切れました + OsmAndLiveサブスクリプションが一時停止されました + OsmAndLiveサブスクリプションは保留中です + マーカーの履歴 + GPXファイルをOpenStreetMapに送信 + タグはカンマで区切って入力してください。 + パブリック状態は、経路がGPS経路およびGPS経路リストに公開を目的として表示されることを示唆しています。 APIを介して提供されるデータは、経路ページを参照していません。経路ポイントのタイムスタンプは、パブリックGPS APIからは入手できず、各地点は時系列で並べられることはありません。ただし他のユーザーは、公開経路リストとその中のタイムスタンプから生の経路データをダウンロードすることができます。 + 識別可能状態は、経路がGPS経路およびパブリックGPS経路リストに表示されることを示唆しています。他のユーザーは現在の経路をダウンロードして、ユーザー名とリンクできます。 trackpoints APIを介して配信されるデータは、元の経路追跡ページを参照します。経路ポイントのタイムスタンプは、パブリックGPSAPIを介して入手できます。 + プライベート状態は、経路がパブリックリストに表示されないことを示唆しています。経路ポイントは、タイムスタンプなしでパブリックGPS APIを介して引き続き利用できますが、時系列で並べられることはありません。 + 追跡可能状態にある場合は経路が公開リストに表示されないことを示唆していますが、経路ポイントは自体はタイムスタンプ付きの公開GPSAPIを介して引き続き利用できます。他のユーザーからはあなたに直接関連付けることはできず、自身の処理済み経路ポイントのみをダウンロードできます。 + アカウント \ No newline at end of file diff --git a/OsmAnd/res/values-nb/strings.xml b/OsmAnd/res/values-nb/strings.xml index 599ebaebc6..846447cad1 100644 --- a/OsmAnd/res/values-nb/strings.xml +++ b/OsmAnd/res/values-nb/strings.xml @@ -3887,4 +3887,9 @@ Nødsfall Reise Du må legge til minst to punkter. + + Logg inn med OpenStreetMap + Bruk innlogging og passord + Konto + Send GPX-fil til OpenStreetMap \ No newline at end of file diff --git a/OsmAnd/res/values-pl/strings.xml b/OsmAnd/res/values-pl/strings.xml index 67afa977f2..7d00fc8cd1 100644 --- a/OsmAnd/res/values-pl/strings.xml +++ b/OsmAnd/res/values-pl/strings.xml @@ -3955,7 +3955,7 @@ Subskrypcja OsmAnd Live wygasła Subskrypcja OsmAnd Live została wstrzymana Do jazdy skuterem śnieżnym z wyznaczonymi drogami i torami. - Należy dodać co najmniej dwa punkty. + Musisz dodać co najmniej dwa punkty Wystąpił problem z Twoją subskrypcją. Kliknij przycisk, aby przejść do ustawień subskrypcji Google Play i naprawić metodę płatności. Subskrypcja OsmAnd Live jest wstrzymana Login diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index af75050e02..2fb7f1350d 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -3941,7 +3941,7 @@ MGRS MGRS OsmAnd usa MGRS, que é semelhante ao formato UTM NATO. - Você deve adicionar pelo menos dois pontos. + Você precisa adicionar pelo menos dois pontos Gerenciar assinatura Há um problema com sua assinatura. Clique no botão para ir para as configurações de assinatura do Google Play para corrigir sua forma de pagamento. A assinatura do OsmAnd Live expirou @@ -3957,4 +3957,12 @@ Usar a entrada e senha Conta Entrar + Entrar com o OpenStreetMap + Histórico de marcadores + Enviar arquivo GPX para OpenStreetMap + Insira as etiquetas separadas por vírgula. + Público significa que o traçado será mostrado publicamente em Seus traços de GPS e em listas públicas de traços de GPS. Os dados fornecidos por meio da API não fazem referência à sua página de rastreamento. Os carimbos de data/hora dos pontos de rastreamento não estão disponíveis por meio da API GPS pública e os pontos não são ordenados cronologicamente. No entanto, outros usuários ainda podem fazer o download do rastreamento bruto da lista pública de rastreamento e de quaisquer carimbos de data/hora contidos nela. + Privado significa que o rastreamento não aparecerá em nenhuma lista pública, mas os pontos de trilha dele ainda estarão disponíveis por meio da API GPS pública sem carimbos de data/hora, mas não serão ordenados cronologicamente. + Identificável significa que o traço será mostrado publicamente em Seus traços de GPS e em listas públicas de traços de GPS, ou seja, outros usuários poderão fazer download do traço bruto e associá-lo ao seu nome de usuário. Os dados fornecidos por meio da API de pontos de trilha farão referência à sua página de rastreamento original. Os carimbos de data/hora dos pontos de rastreamento estão disponíveis por meio da API GPS pública. + Rastreável significa que o rastreamento não aparecerá em nenhuma lista pública, mas os pontos de trilha dele ainda estarão disponíveis por meio da API GPS pública com carimbos de data/hora. Outros usuários só poderão baixar pontos de trilha processados de seu trace, que não podem ser associados a você diretamente. \ No newline at end of file diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml index 4f4c65f71f..d66ed3713d 100644 --- a/OsmAnd/res/values-ru/strings.xml +++ b/OsmAnd/res/values-ru/strings.xml @@ -3503,9 +3503,9 @@ Фотозаметки Пересчёт маршрута Имя пользователя и пароль - Эти настройки применяются ко всем профилям. + Эти настройки плагина применяются ко всем профилям Редактирование OSM - Ваши правки и баги OSM, ещё не отправленные в %1$s. Отправленные точки больше не будут отображаться. + Здесь отображаются ваши правки и ошибки OSM, ещё не отправленные в %1$s. Отправленные точки не будут отображаться. OSM Значок, отображаемый во время навигации или движения. Значок, отображаемый в состоянии покоя. @@ -3941,5 +3941,9 @@ MGRS OsmAnd использует MGRS, который похож на формат UTM NATO. Развитие местного общественного транспорта - Нужно добавить не менее двух точек. + Нужно добавить не менее двух точек + Данные %1$s доступны только для дорог, нужно рассчитать маршрут с помощью «Маршрут между точками». + Вводите теги через запятую. + Перейти на расчет маршрутов общественного транспорта с помощью Java (safe) + Использовать 2-фазный алгоритм A* \ No newline at end of file diff --git a/OsmAnd/res/values-tr/strings.xml b/OsmAnd/res/values-tr/strings.xml index 3a664f5aaa..adbdfda3dc 100644 --- a/OsmAnd/res/values-tr/strings.xml +++ b/OsmAnd/res/values-tr/strings.xml @@ -3902,7 +3902,7 @@ Spor Acil Seyahat - En az iki nokta eklemelisiniz. + En az iki nokta eklemelisiniz OpenStreetMap\'te oturum aç OpenStreetMap.org\'da oturum aç OpenStreetMap ile giriş yap @@ -3917,4 +3917,8 @@ OsmAnd Live aboneliğinin süresi doldu OsmAnd Live aboneliği duraklatıldı OsmAnd Live aboneliği beklemede + OpenStreetMap ile oturum aç + İşaretleyiciler geçmişi + GPX dosyasını OpenStreetMap\'e gönder + Virgülle ayrılmış etiketleri girin. \ No newline at end of file diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index 96a5a994c9..009e55ad9e 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -3943,7 +3943,7 @@ MGRS MGRS OsmAnd використовує MGRS, який подібний формату UTM NATO. - Додайте принаймні дві точки. + Додайте принаймні дві точки Керувати передплатою Виникла проблема з передплатою. Натисніть кнопку, щоб перейти до налаштувань передплати у Google Play, щоб виправити спосіб оплати. Термін дії передплати OsmAnd Live закінчився @@ -3958,4 +3958,12 @@ Використовувати ім\'я і пароль Обліковий запис Ім\'я користувача + Увійти за допомогою OpenStreetMap + Історія маркерів + Надіслати файл GPX на OpenStreetMap + Введіть мітки через коми. + Загальнодоступне означає, що трасування буде показано загальнодоступно у ваших GPS-трасуваннях та у загальнодоступних списках GPS-трасування. Дані, що подаються через API, не посилаються на вашу сторінку трасування. Мітки часу точок трасування недоступні через загальнодоступний API GPS і не впорядковані хронологічно. Однак інші користувачі все ще можуть завантажувати необроблену трасування із загальнодоступного списку трасування та будь-які часові позначки, що містяться всередині. + Приватне означає, що трасування не з\'являтиметься в жодному загальнодоступному списку, але контрольні точки з нього все одно будуть доступні через загальнодоступний API GPS без позначок часу та не впорядковані за хронологією. + Ідентифікований означає, що трасування буде показано публічно у вашому трасуванні GPS і в загальнодоступних списках трасування GPS, тобто інші користувачі зможуть завантажити необроблене трасування та пов\'язати його з вашим ім\'ям користувача. Дані, подані за допомогою API точок відстеження, посилаються на вихідну сторінку трасування. Позначки часу точок трасування доступні через загальнодоступний GPS API. + Відстежуваний означає, що трасування не з\'явиться в жодному загальнодоступному списку, але точки від нього все одно будуть доступні через загальнодоступний API GPS із позначками часу. Інші користувачі зможуть завантажувати лише оброблені контрольні точки з вашого трасування, які не можуть бути безпосередньо пов’язані з вами. \ 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 00f0afe23d..56054994be 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -3942,7 +3942,7 @@ MGRS MGRS OsmAnd 使用 MGRS,其類似於 UTM NATO 格式。 - 您必須新增至少兩個點。 + 您必須新增至少兩個點 管理訂閱 您的訂閱似乎有點問題。點擊按鈕以跳到 Google Play 訂閱設定以修復您的付款方式。 OsmAnd Live 訂閱已過期 @@ -3957,4 +3957,12 @@ 使用登入與密碼 帳號 登入 + 使用 OpenStreetMap 登入 + 標記歷史 + 傳送 GPX 檔案到 OpenStreetMap + 輸入以逗號分隔的標籤。 + 公開代表軌跡將會公開顯示在您的 GPS 軌跡與公開的 GPS 軌跡清單中。透過 API 取得的 API 不會參考您的軌跡頁面。軌跡點的時間戳不會透過公開的 GPS API 提供,也不會按時間排序。不過,其他使用者仍可以從公開的軌跡清單下載原始軌跡與任何其中包含的時間戳。 + 私有代表了軌跡不會顯示在任何公開的清單中,但其軌跡點仍可透過公開的 GPS API 取得,但沒有時間戳,也不會按時間順序排列。 + 可識別代表軌跡將會在您的 GPS 軌跡與公開 GPS 軌跡清單中顯示,亦即其他使用者將可以下載原始軌跡並將其與您的使用者名稱相關聯。透過軌跡點 API 提供的資料將會參考您的原始軌跡頁面。軌跡點的時間戳可透過公開的 GPS API 取得。 + 可追蹤代表軌跡不會顯示在任何公開的清單中,但其追蹤點仍可以透過帶有時間戳的公開 GPS API 使用。其他使用者將只能從您的軌跡中下載處理過的追蹤點,但這些追蹤點無法直接與與您相關聯。 \ No newline at end of file diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 9fab85bfcb..c38633f955 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -3165,7 +3165,7 @@ Fluorescent overlays Use fluorescent colors to display tracks and routes. Offline editing - Always use offline editing. + If offline editing is enabled, then changes will be saved locally first and uploaded by request, otherwise changes will be uploaded immediately. POI changes inside app do not affect downloaded map files, changes are saved as a file on your device instead. Uploading… {0} POI/notes were uploaded diff --git a/OsmAnd/src/net/osmand/plus/AppInitializer.java b/OsmAnd/src/net/osmand/plus/AppInitializer.java index b172d08242..d89238f4f3 100644 --- a/OsmAnd/src/net/osmand/plus/AppInitializer.java +++ b/OsmAnd/src/net/osmand/plus/AppInitializer.java @@ -85,6 +85,7 @@ import java.util.Map; import java.util.Random; import btools.routingapp.BRouterServiceConnection; +import btools.routingapp.IBRouterService; import static net.osmand.plus.AppVersionUpgradeOnInit.LAST_APP_VERSION; import static net.osmand.plus.liveupdates.LiveUpdatesHelper.getPendingIntent; @@ -422,13 +423,9 @@ public class AppInitializer implements IProgress { osmandSettings.APPLICATION_MODE.set(osmandSettings.DEFAULT_APPLICATION_MODE.get()); } startTime = System.currentTimeMillis(); - try { - app.bRouterServiceConnection = startupInit(BRouterServiceConnection.connect(app), BRouterServiceConnection.class); - } catch (Exception e) { - e.printStackTrace(); - } getLazyRoutingConfig(); app.applyTheme(app); + startupInit(app.reconnectToBRouter(), IBRouterService.class); app.inAppPurchaseHelper = startupInit(new InAppPurchaseHelperImpl(app), InAppPurchaseHelperImpl.class); app.poiTypes = startupInit(MapPoiTypes.getDefaultNoInit(), MapPoiTypes.class); app.transportRoutingHelper = startupInit(new TransportRoutingHelper(app), TransportRoutingHelper.class); diff --git a/OsmAnd/src/net/osmand/plus/NavigationService.java b/OsmAnd/src/net/osmand/plus/NavigationService.java index 23ddc99d2a..b1acef28ad 100644 --- a/OsmAnd/src/net/osmand/plus/NavigationService.java +++ b/OsmAnd/src/net/osmand/plus/NavigationService.java @@ -1,5 +1,6 @@ package net.osmand.plus; +import android.annotation.SuppressLint; import android.app.AlarmManager; import android.app.Notification; import android.app.PendingIntent; @@ -33,16 +34,14 @@ public class NavigationService extends Service implements LocationListener { // global id don't conflict with others public static int USED_BY_NAVIGATION = 1; public static int USED_BY_GPX = 2; - public static int USED_BY_LIVE = 4; public final static String USAGE_INTENT = "SERVICE_USED_BY"; public final static String USAGE_OFF_INTERVAL = "SERVICE_OFF_INTERVAL"; - private NavigationServiceBinder binder = new NavigationServiceBinder(); - + private final NavigationServiceBinder binder = new NavigationServiceBinder(); private int serviceOffInterval; private String serviceOffProvider; - private int serviceError; + private int serviceErrorTimeout; private long nextManualWakeup; private OsmandSettings settings; private Handler handler; @@ -61,19 +60,11 @@ public class NavigationService extends Service implements LocationListener { 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, "OsmandServiceLock"); + lockStatic = mgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "OsmAnd:NavigationServiceLock"); } return lockStatic; } - protected Handler getHandler() { - return handler; - } - - public int getServiceError() { - return serviceError; - } - public long getNextManualWakeup() { return nextManualWakeup; } @@ -90,10 +81,6 @@ public class NavigationService extends Service implements LocationListener { return usedBy; } - public String getServiceOffProvider() { - return serviceOffProvider; - } - public boolean isUsed() { return usedBy != 0; } @@ -112,13 +99,9 @@ public class NavigationService extends Service implements LocationListener { } else { // Issue #3604 final OsmandApplication app = (OsmandApplication) getApplication(); - if ((usedBy == 2) && (app.navigationServiceGpsInterval(app.getSettings().SAVE_GLOBAL_TRACK_INTERVAL.get()) != 0) && (serviceOffInterval == 0)) { + 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(); - // From onStartCommand: - serviceError = serviceOffInterval / 5; - serviceError = Math.min(serviceError, 12 * 60 * 1000); - serviceError = Math.max(serviceError, 30 * 1000); - serviceError = Math.min(serviceError, serviceOffInterval); + setupServiceErrorTimeout(); app.setNavigationService(this); AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); pendingIntent = PendingIntent.getBroadcast(this, 0, new Intent(this, OnNavigationServiceAlarmReceiver.class), PendingIntent.FLAG_UPDATE_CURRENT); @@ -132,7 +115,6 @@ public class NavigationService extends Service implements LocationListener { alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 500, serviceOffInterval, pendingIntent); } } - app.getNotificationHelper().updateTopNotification(); app.getNotificationHelper().refreshNotifications(); } @@ -150,14 +132,7 @@ public class NavigationService extends Service implements LocationListener { } // use only gps provider serviceOffProvider = LocationManager.GPS_PROVIDER; - serviceError = serviceOffInterval / 5; - // 1. not more than 12 mins - serviceError = Math.min(serviceError, 12 * 60 * 1000); - // 2. not less than 30 seconds - serviceError = Math.max(serviceError, 30 * 1000); - // 3. not more than serviceOffInterval - serviceError = Math.min(serviceError, serviceOffInterval); - + setupServiceErrorTimeout(); locationProvider = app.getLocationProvider(); app.setNavigationService(this); @@ -204,7 +179,6 @@ public class NavigationService extends Service implements LocationListener { } } - @Override public void onCreate() { super.onCreate(); @@ -215,6 +189,15 @@ public class NavigationService extends Service implements LocationListener { 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() { @@ -254,6 +237,29 @@ 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()) { @@ -273,7 +279,6 @@ public class NavigationService extends Service implements LocationListener { } locationProvider.setLocationFromService(location, isContinuous()); } - } @Override diff --git a/OsmAnd/src/net/osmand/plus/OnNavigationServiceAlarmReceiver.java b/OsmAnd/src/net/osmand/plus/OnNavigationServiceAlarmReceiver.java index 5701f7ba39..f9ae1debec 100644 --- a/OsmAnd/src/net/osmand/plus/OnNavigationServiceAlarmReceiver.java +++ b/OsmAnd/src/net/osmand/plus/OnNavigationServiceAlarmReceiver.java @@ -1,17 +1,18 @@ 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.location.LocationManager; 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); @@ -25,29 +26,9 @@ public class OnNavigationServiceAlarmReceiver extends BroadcastReceiver { return; } - // lock.acquire(); rescheduleAlarm(context, service); - - // request location updates - final LocationManager locationManager = (LocationManager) service.getSystemService(Context.LOCATION_SERVICE); - try { - locationManager.requestLocationUpdates(service.getServiceOffProvider(), 0, 0, service); - if (service.getServiceOffInterval() > service.getServiceError()) { - service.getHandler().postDelayed(new Runnable() { - @Override - public void run() { - // if lock is not anymore held - if (lock.isHeld()) { - lock.release(); - locationManager.removeUpdates(service); - } - } - }, service.getServiceError()); - } - } catch (RuntimeException e) { - // ignore - } + service.onWakeUp(); } private void rescheduleAlarm(Context context, NavigationService service) { @@ -67,5 +48,4 @@ public class OnNavigationServiceAlarmReceiver extends BroadcastReceiver { } } } - } diff --git a/OsmAnd/src/net/osmand/plus/OsmandApplication.java b/OsmAnd/src/net/osmand/plus/OsmandApplication.java index 539db520ae..42a227ebcf 100644 --- a/OsmAnd/src/net/osmand/plus/OsmandApplication.java +++ b/OsmAnd/src/net/osmand/plus/OsmandApplication.java @@ -109,17 +109,16 @@ public class OsmandApplication extends MultiDexApplication { private static final org.apache.commons.logging.Log LOG = PlatformUtil.getLog(OsmandApplication.class); final AppInitializer appInitializer = new AppInitializer(this); - OsmandSettings osmandSettings = null; + Handler uiHandler; + OsmandSettings osmandSettings; OsmAndAppCustomization appCustomization; + NavigationService navigationService; + DownloadService downloadService; + OsmandAidlApi aidlApi; + private final SQLiteAPI sqliteAPI = new SQLiteAPIImpl(this); private final OsmAndTaskManager taskManager = new OsmAndTaskManager(this); private final UiUtilities iconsCache = new UiUtilities(this); - Handler uiHandler; - - NavigationService navigationService; - DownloadService downloadService; - - OsmandAidlApi aidlApi; // start variables ResourceManager resourceManager; @@ -157,10 +156,8 @@ public class OsmandApplication extends MultiDexApplication { QuickActionRegistry quickActionRegistry; private Resources localizedResources; - private Map customRoutingConfigs = new ConcurrentHashMap<>(); - - private Locale preferredLocale = null; + private Locale preferredLocale; private Locale defaultLocale; private File externalStorageDirectory; private boolean externalStorageDirectoryReadOnly; @@ -591,8 +588,7 @@ public class OsmandApplication extends MultiDexApplication { while (getNavigationService() != null) { try { Thread.sleep(100); - } - catch (InterruptedException e) { + } catch (InterruptedException e) { } } @@ -782,12 +778,28 @@ public class OsmandApplication extends MultiDexApplication { setLanguage(c); c.setTheme(themeResId); } - + + IBRouterService reconnectToBRouter() { + try { + bRouterServiceConnection = BRouterServiceConnection.connect(this); + if (bRouterServiceConnection != null) { + return bRouterServiceConnection.getBrouterService(); + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + public IBRouterService getBRouterService() { - if(bRouterServiceConnection == null) { + if (bRouterServiceConnection == null) { return null; } - return bRouterServiceConnection.getBrouterService(); + IBRouterService s = bRouterServiceConnection.getBrouterService(); + if (s != null && !s.asBinder().isBinderAlive()) { + s = reconnectToBRouter(); + } + return s; } public void setLanguage(Context context) { diff --git a/OsmAnd/src/net/osmand/plus/activities/SavingTrackHelper.java b/OsmAnd/src/net/osmand/plus/activities/SavingTrackHelper.java index 143ada1ae6..5bf6c2b0a1 100644 --- a/OsmAnd/src/net/osmand/plus/activities/SavingTrackHelper.java +++ b/OsmAnd/src/net/osmand/plus/activities/SavingTrackHelper.java @@ -488,7 +488,6 @@ public class SavingTrackHelper extends SQLiteOpenHelper { private void addTrackPoint(WptPt pt, boolean newSegment, long time) { List points = currentTrack.getModifiablePointsToDisplay(); Track track = currentTrack.getModifiableGpxFile().tracks.get(0); - assert track.segments.size() == points.size(); if (points.size() == 0 || newSegment) { points.add(new TrkSegment()); } diff --git a/OsmAnd/src/net/osmand/plus/mapmarkers/MapMarkersHelper.java b/OsmAnd/src/net/osmand/plus/mapmarkers/MapMarkersHelper.java index b0a13d8e44..9839ccffda 100644 --- a/OsmAnd/src/net/osmand/plus/mapmarkers/MapMarkersHelper.java +++ b/OsmAnd/src/net/osmand/plus/mapmarkers/MapMarkersHelper.java @@ -35,17 +35,23 @@ import org.apache.commons.logging.Log; import java.io.File; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; +import java.util.Date; import java.util.HashSet; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Set; +import java.util.TimeZone; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import static net.osmand.GPXUtilities.GPX_TIME_FORMAT; import static net.osmand.data.PointDescription.POINT_TYPE_MAP_MARKER; public class MapMarkersHelper { @@ -1005,6 +1011,20 @@ public class MapMarkersHelper { }); } + public List getMapMarkersFromDefaultGroups(boolean history) { + List mapMarkers = new ArrayList<>(); + for (MapMarkersGroup group : mapMarkersGroups) { + if (group.getType() == MapMarkersGroup.ANY_TYPE) { + for (MapMarker marker : group.getMarkers()) { + if (history && marker.history || !history && !marker.history) { + mapMarkers.add(marker); + } + } + } + } + return mapMarkers; + } + public String saveMarkersToFile(String fileName) { GPXFile gpxFile = generateGpx(); String dirName = IndexConstants.GPX_INDEX_DIR + IndexConstants.MAP_MARKERS_INDEX_DIR; @@ -1024,6 +1044,9 @@ public class MapMarkersHelper { } public GPXFile generateGpx(List markers, boolean completeBackup) { + SimpleDateFormat format = new SimpleDateFormat(GPX_TIME_FORMAT, Locale.US); + format.setTimeZone(TimeZone.getTimeZone("UTC")); + GPXFile gpxFile = new GPXFile(Version.getFullVersion(ctx)); for (MapMarker marker : markers) { WptPt wpt = new WptPt(); @@ -1033,10 +1056,10 @@ public class MapMarkersHelper { wpt.setColor(ContextCompat.getColor(ctx, MapMarker.getColorId(marker.colorIndex))); if (completeBackup) { if (marker.creationDate != 0) { - wpt.getExtensionsToWrite().put(CREATION_DATE, String.valueOf(marker.creationDate)); + wpt.getExtensionsToWrite().put(CREATION_DATE, format.format(new Date(marker.creationDate))); } if (marker.visitedDate != 0) { - wpt.getExtensionsToWrite().put(VISITED_DATE, String.valueOf(marker.visitedDate)); + wpt.getExtensionsToWrite().put(VISITED_DATE, format.format(new Date(marker.visitedDate))); } } gpxFile.addPoint(wpt); @@ -1045,6 +1068,9 @@ public class MapMarkersHelper { } public List readMarkersFromGpx(GPXFile gpxFile, boolean history) { + SimpleDateFormat format = new SimpleDateFormat(GPX_TIME_FORMAT, Locale.US); + format.setTimeZone(TimeZone.getTimeZone("UTC")); + List mapMarkers = new ArrayList<>(); for (WptPt point : gpxFile.getPoints()) { LatLon latLon = new LatLon(point.lat, point.lon); @@ -1055,8 +1081,8 @@ public class MapMarkersHelper { String visitedDateStr = point.getExtensionsToRead().get(VISITED_DATE); String creationDateStr = point.getExtensionsToRead().get(CREATION_DATE); - marker.visitedDate = Algorithms.parseLongSilently(visitedDateStr, 0); - marker.creationDate = Algorithms.parseLongSilently(creationDateStr, 0); + marker.visitedDate = parseTime(visitedDateStr, format); + marker.creationDate = parseTime(creationDateStr, format); marker.nextKey = history ? MapMarkersDbHelper.HISTORY_NEXT_VALUE : MapMarkersDbHelper.TAIL_NEXT_VALUE; mapMarkers.add(marker); @@ -1064,6 +1090,18 @@ public class MapMarkersHelper { return mapMarkers; } + private static long parseTime(String text, SimpleDateFormat format) { + long time = 0; + if (text != null) { + try { + time = format.parse(text).getTime(); + } catch (ParseException e) { + LOG.error(e); + } + } + return time; + } + // --------------------------------------------------------------------------------------------- // accessors to active markers: diff --git a/OsmAnd/src/net/osmand/plus/settings/backend/backup/HistoryMarkersSettingsItem.java b/OsmAnd/src/net/osmand/plus/settings/backend/backup/HistoryMarkersSettingsItem.java index a07aeb07ea..cc152f7ad3 100644 --- a/OsmAnd/src/net/osmand/plus/settings/backend/backup/HistoryMarkersSettingsItem.java +++ b/OsmAnd/src/net/osmand/plus/settings/backend/backup/HistoryMarkersSettingsItem.java @@ -46,7 +46,7 @@ public class HistoryMarkersSettingsItem extends CollectionSettingsItem(markersHelper.getMapMarkersHistory()); + existingItems = new ArrayList<>(markersHelper.getMapMarkersFromDefaultGroups(true)); } @NonNull diff --git a/OsmAnd/src/net/osmand/plus/settings/backend/backup/MarkersSettingsItem.java b/OsmAnd/src/net/osmand/plus/settings/backend/backup/MarkersSettingsItem.java index 3fea648619..ed0a072c2e 100644 --- a/OsmAnd/src/net/osmand/plus/settings/backend/backup/MarkersSettingsItem.java +++ b/OsmAnd/src/net/osmand/plus/settings/backend/backup/MarkersSettingsItem.java @@ -46,7 +46,7 @@ public class MarkersSettingsItem extends CollectionSettingsItem { protected void init() { super.init(); markersHelper = app.getMapMarkersHelper(); - existingItems = new ArrayList<>(markersHelper.getMapMarkers()); + existingItems = new ArrayList<>(markersHelper.getMapMarkersFromDefaultGroups(false)); } @NonNull diff --git a/OsmAnd/src/net/osmand/plus/settings/backend/backup/SettingsHelper.java b/OsmAnd/src/net/osmand/plus/settings/backend/backup/SettingsHelper.java index 35f85b8ee8..c974e72686 100644 --- a/OsmAnd/src/net/osmand/plus/settings/backend/backup/SettingsHelper.java +++ b/OsmAnd/src/net/osmand/plus/settings/backend/backup/SettingsHelper.java @@ -597,7 +597,7 @@ public class SettingsHelper { if (!files.isEmpty()) { dataList.put(ExportSettingsType.VOICE, files); } - List mapMarkers = app.getMapMarkersHelper().getMapMarkers(); + List mapMarkers = app.getMapMarkersHelper().getMapMarkersFromDefaultGroups(false); if (!mapMarkers.isEmpty()) { String name = app.getString(R.string.map_markers); String groupId = ExportSettingsType.ACTIVE_MARKERS.name(); @@ -605,7 +605,7 @@ public class SettingsHelper { markersGroup.setMarkers(mapMarkers); dataList.put(ExportSettingsType.ACTIVE_MARKERS, Collections.singletonList(markersGroup)); } - List markersHistory = app.getMapMarkersHelper().getMapMarkersHistory(); + List markersHistory = app.getMapMarkersHelper().getMapMarkersFromDefaultGroups(true); if (!markersHistory.isEmpty()) { String name = app.getString(R.string.shared_string_history); String groupId = ExportSettingsType.HISTORY_MARKERS.name(); diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/ImportSettingsFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/ImportSettingsFragment.java index 48b8e7a6ee..443cd583f0 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/ImportSettingsFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/ImportSettingsFragment.java @@ -141,7 +141,7 @@ public class ImportSettingsFragment extends BaseOsmAndFragment { progressBar = root.findViewById(R.id.progress_bar); setupToolbar(toolbar); ViewCompat.setNestedScrollingEnabled(expandableList, true); - View header = inflater.inflate(R.layout.list_item_description_header, container, false); + View header = inflater.inflate(R.layout.list_item_description_header, null); description = header.findViewById(R.id.description); description.setText(R.string.select_data_to_import); expandableList.addHeaderView(header);