diff --git a/OsmAnd-telegram/res/values-nb/strings.xml b/OsmAnd-telegram/res/values-nb/strings.xml
index 8fd7b0eb17..5b6d88b4af 100644
--- a/OsmAnd-telegram/res/values-nb/strings.xml
+++ b/OsmAnd-telegram/res/values-nb/strings.xml
@@ -179,7 +179,7 @@
Oppsyn er påskruddOppsyn er ikke aktivertTid i bevegelse
- Gjennomsnittlig høyde
+ GjennomsnittshøydeGjennomsnittsfartVis i OsmAndSluttdato
diff --git a/OsmAnd/AndroidManifest.xml b/OsmAnd/AndroidManifest.xml
index f108fc7dd5..54442ccbf2 100644
--- a/OsmAnd/AndroidManifest.xml
+++ b/OsmAnd/AndroidManifest.xml
@@ -484,10 +484,6 @@
-
-
-
-
diff --git a/OsmAnd/res/layout/help_to_improve_item.xml b/OsmAnd/res/layout/help_to_improve_item.xml
index 795053dbbe..71f94da43d 100644
--- a/OsmAnd/res/layout/help_to_improve_item.xml
+++ b/OsmAnd/res/layout/help_to_improve_item.xml
@@ -1,51 +1,54 @@
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:paddingTop="16dp"
+ android:paddingBottom="16dp">
+ android:textColor="?android:textColorSecondary"
+ tools:drawableTop="@drawable/ic_action_message" />
+ android:background="?attr/divider_color" />
+ android:textColor="?android:textColorSecondary"
+ tools:drawableTop="@drawable/ic_action_message" />
+ android:background="?attr/divider_color" />
+ android:textColor="?android:textColorSecondary"
+ tools:drawableTop="@drawable/ic_crashlog" />
\ No newline at end of file
diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml
index b60654e873..ba6c35fc69 100644
--- a/OsmAnd/res/values-ar/strings.xml
+++ b/OsmAnd/res/values-ar/strings.xml
@@ -904,7 +904,7 @@
مساعد تخطيط OSMمعلومات A-GPSإدارة
- تعديل/حذف
+ تعديلأماكنبحثعرض الوصف.
@@ -1076,8 +1076,8 @@
سمات أخرى للخريطةالعناصر الأخرىشريط المعلومات
- العدادات على اليمين
- العدادات على اليسار
+ العدادات على اليسار
+ العدادات على اليمينضمنمستخدم مجهولسجل الدخول ب %1$s
@@ -1153,7 +1153,7 @@
حذف إجراءالتعديلاتوقت وقوف السيارات يقتصر على
- تدلي
+ أقلقائمة منبسطةتعديل OSMفارغ %1$s
@@ -1483,7 +1483,7 @@
التنبيه الآلي الذكيالإشعار فقط عند تغير الوجهة نحو نقطة الهدف.مهلة التنبيه الآلي
- أقل مهلة بين الاخطارات.
+ أقل مهلة بين الإشعارات.الخريطة مرتبطة بالموقععريضالمستخدم المجهول لا يمكنه :
@@ -1658,7 +1658,7 @@
منح الوصول إلى بيانات الموقع.مسارات الخيولإخفاء
- أقل جودة
+ جودة أقلأعلى جودةتم النسخ في الحافظةفتح ملاحظة OSM
@@ -1838,7 +1838,7 @@
لا يمكن إضافة تعليق.تقديمحذف إحداثية GPX ؟
- تعديل/حذف
+ تعديلألمانية منخفضةاللغة الفريزيةالأشياء المقترحة
@@ -1996,7 +1996,7 @@
أشياء فوق سطح الأرضتغييرابدأ
- طريق أقل استهلاكا للوقود
+ طريق أقل استهلاكاً للوقوداستخدم طريق أقل استهلاكا للوقود (عادة أقصر).هل تريد استبدال المفضلة %1$s؟حذف جميع الطبقات
@@ -2249,7 +2249,7 @@
قم بتشغيل التكبير التلقائيإيقاف التكبير التلقائيإضافة وجهة وسطى
- تحليل على الخريطة
+ تحليلالمعروضة على الخريطةاسترجاع الشراءلا ترسل إحصاءات مجهولة عن استخدام التطبيق
@@ -2302,7 +2302,7 @@
محيطات الأعماق البحريةأوسماند يقوم بجمع معلومات حول أجزاء من التطبيقات التي تفتحها. الموقع الخاص بك لا يرسل ابدأ، ولا أي شيء تقوم بإدخاله في التطبيق أو أي تفاصيل لمناطق رأيتها ، بحثت عنها أو نزلتها.عرض خصومات التطبيق ورسائل الأحداث المحلية الخاصة.
- أقل تضاريس
+ تضاريس أقلمسطحمتوازنالتضاريس المفضلة : مسطحة أو تلال.
@@ -2730,7 +2730,7 @@
إضافة نقطةحفظ كمسارأنت بحاجة %1$s نقاط. اكتب اسم ملف واضغط \"حفظ\".
- يرجى إرسال لقطة شاشة من هذا الإخطار إلى support@osmand.net
+ يرجى إرسال لقطة شاشة من هذا الإشعار إلى support@osmand.netتعديل الإجراءاحصل على أوسماند لايف لإلغاء قفل جميع الميزات: تحديثات الخرائط اليومية مع تنزيلات غير محدودة، وجميع الإضافات المدفوعة والمجانية ، ويكيبيديا، ويكي الرحلات وأكثر.الاشتراكات
@@ -3101,7 +3101,7 @@
لينةمتانة السطح%s تم الحفظ
- مسار مفتوح
+ فتح المسارالمسار %s تم حفظربط الأجزاءالعربه
@@ -3223,7 +3223,7 @@
الطرق الوعرهإعداد الوضعيحتفظ الوضع بإعداداتك
- حدد خيارات الخريطة للملف الشخصي
+ حدد خيارات الخريطة للوضعحدد خيارات الشاشة للوضعحدد إعدادات الملاحة للوضعحدد الحد الأعلى للتغييرات
@@ -3387,7 +3387,7 @@
الوضع المحددبالضغط على %1$s، ستفقد كل تغييراتك.سيتم إعادة ضبط جميع إعدادات الوضع إلى الحالة الافتراضية بعد التثبيت.
- استعادة الضبط الافتراضي؟
+ استعادة الضبط الافتراضي لكل الأوضاع؟%2$s %1$s%2$s :%1$s\'%1$s\' لا يحتوي الملف على قواعد توجيه ،يرجى اختيار ملف آخر.
@@ -3489,7 +3489,7 @@
نسخ الإحداثياتمباشر إلى نقطةالفرز حسب الفئة
- يرجى اعطاء اسم للملف الشخصي
+ يرجى إدخال اسم للوضعافتح الإعداداتالملحق مُعطلالقائمة
@@ -3732,7 +3732,7 @@
\nشهر واحد هو 43 829 دقيقة.اختر كيفية تخزين الطبقات المنزلة.مهلة الشاشة الافتراضية
- يمكنك تصدير أو استيراد إجراءات سريعة باستخدام ملفات بروفايل التطبيق .
+ يمكنك تصدير أو استيراد إجراءات سريعة باستخدام أوضاع التطبيق .حذف الكل؟هل أنت متأكد من رغبتك في حذف الاختصارات السريعة %d نهائيًا؟مهلة الشاشة
@@ -3765,13 +3765,13 @@
%1$s محذوفةإعادة التشغيل مطلوبة لحذف بيانات كاميرا السرعة بالكامل.إلغاء التثبيت وإعادة التشغيل
- في بعض البلدان أو المناطق، يحظر القانون استخدام تطبيقات التحذير من كاميرا السرعة.
+ في بعض البلدان أو المناطق، يحظر القانون استخدام تطبيقات التحذير من كاميرا السرعة.
\n
-\nعليك أن تختار اعتمادا على قانون بلدك.
+\nعليك أن تختار اعتمادا على قانون بلدك.
\n
-\nحدد %1$s وستتلقى تنبيهات وتحذيرات حول كاميرات السرعة.
+\nحدد %1$s وستتلقى تنبيهات وتحذيرات حول كاميرات السرعة.
\n
-\nحدد %2$s. جميع البيانات المتعلقة كاميرات السرعة: التنبيهات، والإخطارات، سيتم حذف نقاط الاهتمام حتى يتم إعادة تثبيت أوسماند تماما.
+\nحدد %2$s. جميع البيانات المتعلقة كاميرات السرعة: التنبيهات، والإشعارات، سيتم حذف نقاط الاهتمام حتى يتم إعادة تثبيت أوسماند تماما.تحديد الارتفاع الأعلى المسموح به على الطرق.حد الطولهذا الجهاز لا يملك كاميرات السرعة.
@@ -3909,7 +3909,7 @@
التوجيه على مرحلتين لملاحة السيارة.تطوير النقل العام المحليقم بالتبديل إلى Java (الآمن) حساب توجيه النقل العام
- قم بإجراء تسجيل دخول إلى OAuth لاستخدام ميزات osmedit
+ قم بتسجيل الدخول إلى OAuth لاستخدام ميزات osmeditتسجيل الدخول عبر OAuthمسح رمز OpenStreetMap OAuthتسجيل الخروج بنجاح
@@ -3920,4 +3920,6 @@
\nسيتوفر الرسم البياني بعد إعادة الحساب.
للقيادة على الجليد مع طرق ومسارات مخصصة.رسم بياني
+ %2$s — %1$s
+ فجوة
\ No newline at end of file
diff --git a/OsmAnd/res/values-ca/strings.xml b/OsmAnd/res/values-ca/strings.xml
index 79432f1703..eb412908d1 100644
--- a/OsmAnd/res/values-ca/strings.xml
+++ b/OsmAnd/res/values-ca/strings.xml
@@ -1553,7 +1553,7 @@ Per retornar a l\'estil habitual dels mapes d\'OsmAnd, només cal desactivar aqu
Límit d\'alçadaIndiqueu l\'alçada del vehicle que les rutes han d\'admetre.Recàlcul intel·ligent de la ruta
- En viatges llargs, només actualitzis la part inicial de la ruta.
+ Actualitza només la part inicial de la ruta. Pot ser usat per a viatges llargs.SurtDesactivatAcoloreix segons el tipus de xarxa
@@ -3589,10 +3589,10 @@ Abasta l\'àrea: %1$s x %2$s
Les pistes es mostren sobre el terreny i amb colors.PistesConnector d\'OsmAnd adaptat
- Substitueix un altre punt per aquest
+ Substitueix un altre punt per aquest.S\'han fet els canvis al perfil \'%1$s\'.No s\'ha pogut llegir des de \'%1$s\'.
- No s\'ha pogut escriure %1$s.
+ No s\'ha pogut escriure a \'%1$s\'.No s\'ha pogut importar des de \'%1$s\'.Seleccioneu fitxer de la traçaIdiomes
@@ -3619,7 +3619,7 @@ Abasta l\'àrea: %1$s x %2$s
AragonèsLlombardColor personalitzat
- Seleccioneu els idiomes de la Viquipèdia en que es veuran els articles al mapa. Mentre llegiu un article podeu modificar la llengua entre les disponibles.
+ Seleccioneu els idiomes per als articles de Viquipèdia al mapa. Canvieu la llengua entre les disponibles mentre llegiu un article.Alguns articles de la Viquipèdia podrien no estar disponibles en el vostre idioma.CantonèsMin nan
@@ -3672,11 +3672,11 @@ Abasta l\'àrea: %1$s x %2$s
Llargada màximaTrajectòriaS\'ha esborrat %1$s
- Cal reiniciar per esborrar totalment les dades de les càmeres de radar.
+ Reinicia l\'aplicació per esborrar totes les dades de les càmeres de radar.Desinstal·la i ReiniciaAquest dispositiu no inclou les càmeres de radar.Patins en línia
- Activeu per controlar el nivell d\'ampliació del mapa amb els botons del volum del dispositiu.
+ Controla el nivell d\'ampliació del mapa fent servir els botons del volum del dispositiu.Botons de volum pel zoomEsteu segur que voleu suprimir definitivament %d dreceres\?Podeu exportar o importar les dreceres amb els perfils de les aplicacions.
@@ -3686,7 +3686,7 @@ Abasta l\'àrea: %1$s x %2$s
Si està activat \"%1$s\" el temps d\'activitat quedarà afectat.tonesmetres
- Suprimeix la propera fita
+ Suprimeix la fita més properaProporcioneu un nom per al puntLa propera fita de la ruta s\'esborrarà. Si es tractés de la Destinació final, la navegació s\'aturaria.Baixa mapes de la Viquipèdia
@@ -3850,4 +3850,13 @@ Abasta l\'àrea: %1$s x %2$s
\n • S\'han corregit problemes en la importació/exportació de la configuració dels perfils
\n
\n
+ Mostra el transport públic
+ Afegeix un perfil
+ Canvia el perfil de l\'aplicació
+ Mapa general del món (detallat)
+ Tipus no suportat
+ Sempre
+ Control de pantalla
+ Desenvolupament
+ %1$s — %2$s
\ No newline at end of file
diff --git a/OsmAnd/res/values-cs/phrases.xml b/OsmAnd/res/values-cs/phrases.xml
index 8d64234b3a..b64efe0702 100644
--- a/OsmAnd/res/values-cs/phrases.xml
+++ b/OsmAnd/res/values-cs/phrases.xml
@@ -3588,20 +3588,20 @@
KompenzačníKompresníMěřicí
- н/к
- н/к*
+ n/c
+ n/c*1А1А*
- 1Б
- 1Б*
- 2А
- 2А*
- 2Б
- 2Б*
- 3А
- 3А*
- 3Б
- 3Б*
+ 1B
+ 1B*
+ 2A
+ 2A*
+ 2B
+ 2B*
+ 3A
+ 3A*
+ 3B
+ 3B*Přístup sněžným skútrůmPřístup autobusůmPřístup karavanům
@@ -3827,7 +3827,7 @@
Pod tlakemPodzemní vodaRoura
- Internetový přístup: zdarma pro zákazníky
+ Internetový přístup: zákazníciTyp klášteru: řeholnickýTyp klášteru: poustevnickýTyp klášteru: kanovnický
@@ -3845,4 +3845,8 @@
VibraceTlakZkapalněný zemní plyn
+ Podél silnice
+ Přístřešky
+ Střešní
+ Bod GPX
\ No newline at end of file
diff --git a/OsmAnd/res/values-cs/strings.xml b/OsmAnd/res/values-cs/strings.xml
index 59b0baf68d..67044dc34e 100644
--- a/OsmAnd/res/values-cs/strings.xml
+++ b/OsmAnd/res/values-cs/strings.xml
@@ -3578,4 +3578,15 @@ Zobrazená oblast: %1$s x %2$s
Název: A – ZIkony startu/cíleDěkujeme za zakoupení modulu \'Vrstevnice\'
+ Přihlásit se pomocí OAuth pro použití funkcí editace OSM
+ Přihlásit pomocí OAuth
+ Vymazat OpenStreetMap OAuth token
+ Odhlášení úspěšné
+ Soubor je již importovaný v OsmAnd
+ Použít dvoufázový algoritmus A* pro výpočet trasy
+ Graf
+ Údaje %1$s jsou dostupné pouze na cestách, pro jejich získání musíte vypočítat trasu pomocí “Trasa medzi body”.
+ Počkejte na přepočet trasy.
+\nGraf bude dostupný po přepočtu.
+ %1$s — %2$s
\ No newline at end of file
diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml
index 0e05949cf0..3943611228 100644
--- a/OsmAnd/res/values-da/strings.xml
+++ b/OsmAnd/res/values-da/strings.xml
@@ -3788,4 +3788,6 @@
Alle efterfølgende segmenter genberegnes ved hjælp af den valgte profil.Alle tidligere segmenter genberegnes ved hjælp af den valgte profil.Start-/slutikoner
+ %1$s — %2$s
+ Hul
\ No newline at end of file
diff --git a/OsmAnd/res/values-de/phrases.xml b/OsmAnd/res/values-de/phrases.xml
index d40597ca63..011706fbf0 100644
--- a/OsmAnd/res/values-de/phrases.xml
+++ b/OsmAnd/res/values-de/phrases.xml
@@ -3848,4 +3848,8 @@
Kleine ElektrogeräteNussladenFlüssigerdgas
+ Parken in Parallelstraße
+ Überdachter Parkplatz
+ Dachparkplätze
+ GPX-Wegpunkt
\ No newline at end of file
diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml
index dec24d8f5d..697326c31c 100644
--- a/OsmAnd/res/values-de/strings.xml
+++ b/OsmAnd/res/values-de/strings.xml
@@ -3652,9 +3652,9 @@
%1$s / %2$sDie Bezahlung wird Ihrem Google Play-Konto bei der Bestätigung des Kaufs belastet.
\n
-\n Das Abonnement verlängert sich automatisch, sofern es nicht vor dem Verlängerungsdatum gekündigt wird. Ihr Konto wird für den Verlängerungszeitraum (Monat / drei Monate / Jahr) nur am Verlängerungsdatum belastet.
+\nDas Abonnement verlängert sich automatisch, sofern es nicht vor dem Verlängerungsdatum gekündigt wird. Ihr Konto wird für den Verlängerungszeitraum (Monat / drei Monate / Jahr) nur am Verlängerungsdatum belastet.
\n
-\n Sie können Ihre Abonnements verwalten und kündigen, indem Sie zu Ihren Google Play-Einstellungen gehen.
+\nSie können Ihre Abonnements verwalten und kündigen, indem Sie zu Ihren Google Play-Einstellungen gehen.
Suche nach POI-TypenKombinieren Sie POI-Typen aus verschiedenen Kategorien. Tippen Sie auf den Schalter, um alle auszuwählen, tippen Sie auf die linke Seite zur Kategorieauswahl.Trenner
@@ -3913,9 +3913,9 @@
Das Abonnement wird pro ausgewähltem Zeitraum berechnet. Sie können das Abonnement jederzeit über die AppGallery kündigen.Die Bezahlung wird Ihrem AppGallery-Konto bei der Bestätigung des Kaufs belastet.
\n
-\n Das Abonnement verlängert sich automatisch, sofern es nicht vor dem Verlängerungsdatum gekündigt wird. Ihr Konto wird für den Verlängerungszeitraum (Monat / drei Monate / Jahr) nur am Verlängerungsdatum belastet.
+\nDas Abonnement verlängert sich automatisch, sofern es nicht vor dem Verlängerungsdatum gekündigt wird. Ihr Konto wird für den Verlängerungszeitraum (Monat / drei Monate / Jahr) nur am Verlängerungsdatum belastet.
\n
-\n Sie können Ihre Abonnements verwalten und kündigen, indem Sie zu Ihren AppGallery-Einstellungen gehen.
+\nSie können Ihre Abonnements verwalten und kündigen, indem Sie zu Ihren AppGallery-Einstellungen gehen.
Vermeidet FußwegeKeine FußwegeEntwicklung
@@ -3929,4 +3929,8 @@
Datei wurde bereits in OsmAnd importiertAnmelden über OAuthOpenStreetMap OAuth-Token löschen
+ Was ist neu
+ Für das Schneemobilfahren mit speziellen Straßen und Tracks.
+ Durchführen eines OAuth-Logins zur Nutzung der osmedit-Funktionen
+ 2-Phasen-A*-Routing-Algorithmus verwenden
\ No newline at end of file
diff --git a/OsmAnd/res/values-eo/phrases.xml b/OsmAnd/res/values-eo/phrases.xml
index df01830535..2eae52044b 100644
--- a/OsmAnd/res/values-eo/phrases.xml
+++ b/OsmAnd/res/values-eo/phrases.xml
@@ -3838,4 +3838,8 @@
Tabulo de forveturojPlenigi per trinkebla akvotergaso likva (LNG)
+ laŭlonge de strato
+ privataj garaĝ-budoj
+ tegmento
+ GPX-punkto
\ 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 b68eaba5e1..4da8d4966b 100644
--- a/OsmAnd/res/values-es-rAR/strings.xml
+++ b/OsmAnd/res/values-es-rAR/strings.xml
@@ -3931,9 +3931,10 @@
Sesión finalizadaPara caminos y senderos exclusivos de motos de nieve.El archivo ya fue importado en OsmAnd
- Usar el algoritmo de enrutamiento A* de 2 fases
+ Usar el algoritmo de navegación A* bifásicaGráfico%1$s datos disponibles sólo en los caminos, necesitas calcular una ruta usando «Ruta entre puntos» para obtenerla.Espera el recálculo de la ruta.
\nEl gráfico estará disponible después del recálculo.
+ %1$s — %2$s
\ No newline at end of file
diff --git a/OsmAnd/res/values-et/phrases.xml b/OsmAnd/res/values-et/phrases.xml
index daafc22ac5..4e06dceeb0 100644
--- a/OsmAnd/res/values-et/phrases.xml
+++ b/OsmAnd/res/values-et/phrases.xml
@@ -3774,7 +3774,7 @@
EbaõigeKontrastneAinult kui jalakäijatele lubatud
- Tasuline internetipunkt
+ Tasuline internetipunkt klientideleEiJahKioski tüüp
@@ -3827,4 +3827,8 @@
MesitaruPähklipoodVeeldatud maagaas
+ GPX sõlm
+ Parkla kiirtee ääres
+ Parkimine varjualustes
+ Parkla katusel
\ No newline at end of file
diff --git a/OsmAnd/res/values-et/strings.xml b/OsmAnd/res/values-et/strings.xml
index 8ccdb58038..3930c5b18f 100644
--- a/OsmAnd/res/values-et/strings.xml
+++ b/OsmAnd/res/values-et/strings.xml
@@ -3782,4 +3782,8 @@
Meie uudisedKasuta kahefaasilist A-klassi teekonna koostamise algoritmiSee fail on juba OsmAnd\'i imporditud
+ OsmAnd andmed reaalajas
+ OsmAnd andmed reaalajas
+ Mootorsaanide sõitmine eraldi määratud teedel ja radadel.
+ %1$s — %2$s
\ No newline at end of file
diff --git a/OsmAnd/res/values-fr/phrases.xml b/OsmAnd/res/values-fr/phrases.xml
index 1196bb8b8b..2141c47b39 100644
--- a/OsmAnd/res/values-fr/phrases.xml
+++ b/OsmAnd/res/values-fr/phrases.xml
@@ -1050,7 +1050,7 @@
InterditObligatoirePopulation
- Parking : sous-terrain
+ Parking : souterrainOlivierPommierPalmier
diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml
index 04e329659a..2a4458f148 100644
--- a/OsmAnd/res/values-fr/strings.xml
+++ b/OsmAnd/res/values-fr/strings.xml
@@ -3845,7 +3845,7 @@
Trace simplifiéeNom de fichierPar défaut
- Ouvrir une trace enregistrée
+ Ouvrir la trace enregistréea été enregistréVeuillez ajouter au moins deux points.Sélectionnez le fichier de trace à suivre ou importez-le depuis votre appareil.
@@ -3912,4 +3912,6 @@
\nLe graphique sera disponible à l\'issue du calcul.
Pour la conduite en motoneige avec des routes et des pistes dédiées.Graphique
+ Écart
+ %1$s - %2$s
\ No newline at end of file
diff --git a/OsmAnd/res/values-gl/strings.xml b/OsmAnd/res/values-gl/strings.xml
index 0a65bf9b5a..447bdc7bbf 100644
--- a/OsmAnd/res/values-gl/strings.xml
+++ b/OsmAnd/res/values-gl/strings.xml
@@ -3950,4 +3950,9 @@ Lon %2$s
Entrar polo OAuthLimpar token do OpenStreetMap OAuthSesión rematada
+ Para estradas e pistas exclusivas de motos de neve.
+ O ficheiro xa foi importado no OsmAnd
+ Usar algoritmo de enrutamento A* de 2 fases
+ Gráfica
+ %1$s — %2$s
\ No newline at end of file
diff --git a/OsmAnd/res/values-hu/phrases.xml b/OsmAnd/res/values-hu/phrases.xml
index eb5f1ef453..99f11bb034 100644
--- a/OsmAnd/res/values-hu/phrases.xml
+++ b/OsmAnd/res/values-hu/phrases.xml
@@ -454,7 +454,7 @@
Vonat (látványosság)Vízi csúszdaVadászház
- Internetcsatlakozás: WLAN
+ Internetcsatlakozás: WLAN (wifi)Internetcsatlakozás: munkaállomásInternetcsatlakozás: kábelInternetcsatlakozás: nyilvános
@@ -836,7 +836,7 @@
Grúz ortodoxRomán ortodoxKopt ortodox
- Internetcsatlakozás
+ Internetcsatlakozás vanInternetcsatlakozás nincsTánctérNight club; Diszkó
@@ -1547,7 +1547,7 @@
Wi-FiMunkaállomásVezetékes
- Nyilvános
+ Internetcsatlakozás: nyilvánosSegítenekInternetcsatlakozás nincsInternetcsatlakozás van
@@ -3836,4 +3836,8 @@
Mag- és aszaltgyümölcsboltMéhkaptárLNG (cseppfolyósított földgáz)
+ Út mellett parkolósáv (UK)
+ Fedett parkolóhely
+ Tető
+ Internetcsatlakozás: ügyfeleknek
\ No newline at end of file
diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml
index ac040cd72f..9ae52a9644 100644
--- a/OsmAnd/res/values-hu/strings.xml
+++ b/OsmAnd/res/values-hu/strings.xml
@@ -3509,7 +3509,7 @@
Rögzített adatok törléseEngedélyezésével domborzatárnyékolás vagy lejtőtérkép jeleníthető meg. Ezekről a térképfajtákról többet olvashat a honlapunkon.Túrasízés
- Motoros hószán
+ Motoros szánEgyéni OsmAnd bővítménySikertelen olvasás innen: \'%1$s\'.Sikertelen írás ide: \'%1$s\'.
@@ -3920,4 +3920,10 @@
Sikeresen kijelentkezettKétszakaszos A* útvonaltervezési algoritmus használataA fájl már importálva van az OsmAndba
+ %1$s - %2$s
+ Motorosszánutakhoz kifejezetten motoros szán számára kijelölt utakon.
+ Grafikon
+ %1$s adatok csak az utakról állnak rendelkezésre. Használja az „Útvonal tervezése pontok között” funkciót.
+ Várja meg az útvonal újraszámítását.
+\nAz ábra az újraszámítás után lesz látható.
\ No newline at end of file
diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml
index 86af4a4f07..7b4c8ad764 100644
--- a/OsmAnd/res/values-it/strings.xml
+++ b/OsmAnd/res/values-it/strings.xml
@@ -3905,4 +3905,32 @@
Nome: A – ZIcona Partenza/ArrivoGrazie per l\'acquisto del \'Plugin delle curve di livello\'
+ Novità
+ Per slitte a motore con strade e sentieri dedicati.
+ Sottoscrizione addebitata per il periodo selezionato. Cancellala nell\'AppGallery in ogni momento.
+ Il pagamento sarà addebitato nella tuo account AppGallery alla conferma dell\'acquisto.
+\n
+\nLe sottoscrizioni si rinnovano automaticamente finché non vengono cancellate prima della date del rinnovo. Il tuo account sarà addebitato per i rinnovi periodici solo (mensile/trimestrale/annuale) solo alla data di rinnovo.
+\n
+\nPuoi gestire le tue sottoscrizioni nelle impostazioni della tua AppGallery.
+ Evita i marciapiedi
+ Evita i marciapiedi
+ Sviluppo
+ Dati OsmAnd Live
+ Dati OsmAnd Live
+ Calcolo del percorso in due fasi per la navigazione in auto.
+ Sviluppo Trasporto Pubblico nativo
+ Cambia a Java (safe) calcolo del percorso su Trasporto Pubblico
+ Effettua una connessione OAuth per usare le funzionalità osmedit
+ Connettiti via OAuth
+ Cancella il token OAuth OpenStreetMap
+ Disconnessione effettuata
+ Il file è già importato in OsmAnd
+ Utilizza l\'algoritmo di calcolo a 2-fasi A*
+ Grafico
+ %1$s dati disponibili solo per le strade, necessiti di calcolare un percorso utilizzando \"Percorso fra punti\" per ottenerlo.
+ Attendi per il ricalcolo del percorso.
+\nIl grafico sarà disponibile dopo il ricalcolo.
+ %1$s — %2$s
+ Buco
\ No newline at end of file
diff --git a/OsmAnd/res/values-iw/strings.xml b/OsmAnd/res/values-iw/strings.xml
index efe9cb3b27..7334c5dbb9 100644
--- a/OsmAnd/res/values-iw/strings.xml
+++ b/OsmAnd/res/values-iw/strings.xml
@@ -3938,4 +3938,5 @@
תרשיםנא להמתין לחישוב המסלול מחדש.
\nהתרשים יהיה זמין לאחר החישוב מחדש.
+ %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 85bfc9b423..85f13702a1 100644
--- a/OsmAnd/res/values-nb/strings.xml
+++ b/OsmAnd/res/values-nb/strings.xml
@@ -17,10 +17,10 @@
Du har allerede angitt et reisemål:ReisemålMellomliggende reisemål %1$s er for langt fra den nærmeste veien.
- Ankommet mellomliggende reisemål
+ Mellomliggende reisemål er nåddLegg til som mellomliggende reisemålMellomliggende reisemål
- Sluttpunkt for langt fra nærmeste vei.
+ Endepunkt for langt fra nærmeste vei.Legg til merkeAvansert modus…Parkering
@@ -259,7 +259,7 @@
Interessepunkt-dataTTS-taleNytt søk
- Navnetekststørrelse på kartet:
+ Tekststørrelse for navn på kartet:Skriftstørrelse for kartNettbasert navigering fungerer ikke frakoblet.Språk ikke støttet
@@ -406,7 +406,7 @@
Total distanse %1$s, reisetid %2$d t %3$d min.Nettbasert eller frakoblet navigeringstjeneste.Navigeringstjeneste
- Datalagringsmappen på minnekortet er ikke tilgjengelig!
+ Lagringsmappen på minnekortet er ikke tilgjengelig!Laste ned {0} - {1} \?Nettfrakoblede data for {0} finnes allerede ({1}). Oppdater ({2})\?Adresse
@@ -456,7 +456,7 @@
SøkSøkVelg interessepunkt
- Finn mer
+ Finn flereSøk etter by trinnvisSøk etter gate trinnvisSøk etter bygning trinnvis
@@ -472,8 +472,8 @@
Angi bredde- og lengdegrad i det valgte formatet (G - grader, M - minutter, S - sekunder)BreddegradLengdegrad
- DDD.DDDDD
- DDD MM,MMM
+ GGG.GGGGG
+ GGG MM,MMMGGG MM SS,SAdresseRegion
@@ -522,7 +522,7 @@
Tilpass programutseende.USACanada
- Europa, Asia, Latin-Amerika & lignende
+ Europa, Asia, Latin-Amerika og lignendeStorbritannia, India og lignendeVelg bilkjøringssted: USA, Europa, Storbritannia, Asia og andre.Japan
@@ -603,7 +603,7 @@
LatviskLitauiskMarathi
- Norsk Bokmål
+ Norsk bokmålPolskPortugisiskRumensk
@@ -637,7 +637,7 @@
Vis sykkelruterVis zoom-knapper under navigering.Vis zoom-knapper
- Nåtid
+ Gjeldende tidVisningsfargeSentrer posisjon på kartNavigeringsinnstillinger
@@ -675,7 +675,7 @@
Andre kartattributterBuss-, trolleybuss-, skyttelbussruterTrikk- og togruter
- Undergrunnsruter
+ T-bane-ruterTogruterTrikkeruterTrolleybussruter
@@ -721,7 +721,7 @@
AlbanskArabiskPersisk
- Sardinsk
+ SardiskVelg reisemålForetrekk motorveierForetrekk motorveier
@@ -1103,7 +1103,7 @@
Merk for å sletteA-GPS-infoMelding
- A-GPS-data sist nedlastet: %1$s
+ A-GPS-data nedlastet: %1$sOsmAnd tilbyr global nettfrakoblet kartlesing og navigering.Gjeldende ruteStart
@@ -1257,7 +1257,7 @@
KategorinavnLegg til ny kategoriRegioner
- Regionkart
+ Regionale kartVerdenskartRelieffskyggelag deaktivertDel posisjon
@@ -1271,7 +1271,7 @@
Oppdater alle (%1$s MB)Gratis nedlastinger bruktVelg hvor du vil lagre kart og andre datafiler.
- Oppgi navn på land
+ Angi navn på landBasiskart verden (som dekker hele verden ved lavt zoomnivå) mangler eller er utdatert. Vurder å laste det ned for en global oversikt.QR-kodeBasiskart velges for nedlasting slik at programmet fungerer.
@@ -1455,7 +1455,7 @@
slettI/O-feil under utførelse av handlingen {0}.Fortell oss hvorfor.
- Klarte ikke å laste opp
+ Kunne ikke laste oppKjøpOfte stilte spørsmålAntall redigeringer
@@ -1482,7 +1482,7 @@
OsmAnd Live-navigeringReisemål er ikke angittNaviger opp
- OpenStreetMap-brukernavn og passord
+ OSM-brukernavn og passordOsmAnd Live-abonnementIkke vis mitt navn i rapporterKjøp først et OsmAnd Live-abonnement
@@ -1564,7 +1564,7 @@
Aktuelle sporVis aktuelle sporGPX-bredde
- OsmAnds datalagring (for kart, GPX-filer, osv.): %1$s.
+ OsmAnds datalagring (for kart, sporfiler, etc.): %1$s.Få anvisninger og oppdag nye steder uten å ha internettforbindelseOppdater alle kart nå\?Abonnementsavgift belastes månedsvis. Avbryt det på Google Play når som helst.
@@ -1694,7 +1694,7 @@
Last opp ditt OSM-notat anonymt eller ved å bruke din profil hos OpenStreetMap.org.Du har ingen GPX-filer endaDu kan også legge til GPX-filer i mappen
- Legg til mer…
+ Legg til flere…Skru på hurtigopptakVis et systemvarsel som kan starte turopptak.Minimumshastighet for logging
@@ -1801,7 +1801,7 @@
Koble tilIngen trapperUnngår trapper
- Angi talehastigheten for TTS.
+ Angi talehastigheten for tekst-til-tale.TalehastighetRask ruteberegning mislyktes (%s), faller tilbake på treg beregning.Slå av to-fase ruteplanlegging for bilnavigering.
@@ -1856,7 +1856,7 @@
Nepal bhasaCebuanoAsturiansk
- Øvervendisk
+ OversorbiskKabylskKinesisk (Hongkong)Bruk vist spor for navigering\?
@@ -1932,7 +1932,7 @@
Legg til overleggKartoverlegg er endret til \"%s\".Punkt(er) slettet.
- ER du sikker på at du vil slette %1$d punkt(er)\?
+ Er du sikker på at du vil slette %1$d punkt(er)\?GjennomsnittsfartVelg mappe for GPX-filOsmAnd (OSM Automated Navigation Directions) er et kart- og navigeringsprogram med tilgang til gratis, verdensomspennende og høykvalitets data fra OpenStreetMap (OSM).
@@ -2003,7 +2003,7 @@
FallStigningHøydeintervall
- Gjennomsnittlig høyde
+ GjennomsnittshøydeFølgHandlingsnavnVisningszoomnivå: %1$s
@@ -2025,7 +2025,7 @@
Ta hensyn til terrenghøyde (data fra SRTM, ASTER og EU-DEM).MeldingTillatelser
- Kunne ikke importere filen. Kontroller at OsmAnd kan lese den.
+ Kunne ikke importere filen. Kontroller at OsmAnd har tillatelse til å lese den.Korrigert avstandLast på nyttFeil brukernavn
@@ -2053,7 +2053,7 @@
Navigering: sett på pause/gjenopptaKnapp for å ta en pause i eller gjenoppta navigeringen.Høyrekjøring
- Trykk på denne knappen for å starte eller avslutte navigeringen.
+ Knapp for å starte eller avslutte navigering.Lagre spor som er tatt opp i månedlige mapperLagre spor som er tatt opp, i undermapper per opptaksmåned (f.eks. 2018-01).Last kartfliser på nytt for å se oppdaterte data.
@@ -2085,7 +2085,7 @@
Mapillary-bildeÅpne MapillaryInstaller
- Forbedre billeddekningen med Mapillary
+ Forbedre bildedekningen med MapillaryNettbaserte bilderLegg til bilderIngen bilder her.
@@ -2097,7 +2097,7 @@
SjøkartGjenopprett kjøpIkke send anonym bruksstatistikk
- Parkeringsalternativer
+ ParkeringsmuligheterTakk for at du kjøpte betalingsversjonen av OsmAnd.Kortere ruterBalansert
@@ -2137,7 +2137,7 @@
ListeSist brukt: %1$sFiltrer bilder etter innsender, dato eller type. Kun aktivt på nærgående forstørrelsesnivå.
- Installer Mapillary for å legge til et eller flere bilder til denne kartposisjonen.
+ Installer Mapillary for å legge til bilder i denne kartposisjonen.Foto på gatenivå for alle. Oppdag plasser, samarbeid, fang inn verden.Vis/skjul OSM-notaterVis OSM-notater
@@ -2147,7 +2147,7 @@
HavdybdekonturerHavdybdekonturerSvinger å passere langs ruten
- Vis havdybdekonturer og punkter.
+ Vis dybdekonturer og punkter.HavdybdekonturerDel opp opptak automatisk etter avbruddStart nytt segment etter et avbrudd på 6 min., nytt spor etter avbrudd på 2 timer, eller ny fil etter et lengre avbrudd hvis datoen er endret.
@@ -2156,7 +2156,7 @@
\n- Synkronisere grupper og enheter med tjeneren;
\n- Behandle grupper og enheter i et personlig dashbord på nettstedet.Simuler første programstart
- Programtillegget for Audio/video-notater tilbyr funksjoner for å ta lyd/video/bilde-notater på en tur, enten ved bruk av en knapp på kartet, eller direkte i kontekstmenyen for enhver posisjon på kartet.
+ Lag audio/foto/video-notater på en tur, enten ved bruk av en knapp på kartet eller posisjon-kontekstmeny.Gjennomsnitt%1$d av %2$dStigning/fall
@@ -2177,7 +2177,7 @@
Sorter etter:KartorienteringsterskelVelg hastighet for skifte av kartorientering fra \'Bevegelsesretning\' til \'Kompassretning\' nedenfor.
- Kjøp og installer \"Koter\"-programtillegget for å vise loddrett skyggelegging.
+ Kjøp og installer \"Koter\"-tillegget for å vise graderte vertikale områder.Totalt innebygget minneStartpunkt for langt fra nærmeste vei.Delt posisjon
@@ -2213,7 +2213,7 @@
Kunne ikke tegne valgt område.Kartgenerator lastetKunne ikke lese GPX-data.
- Hvilke som helst
+ AlleTakk til Yandex for trafikkinfo.Yandex-trafikkStedsbestemmelsestjeneste
@@ -2238,7 +2238,7 @@
Smart omberegning av ruteVurder dette programmetGi OsmAnd en poengsum på Google Play
- Fortell oss hva du ønsker å endre i dette programmet.
+ Gi oss beskjed om forslag.Kortet ble skjultAntall linjerModifiser OSM-endring
@@ -2370,7 +2370,7 @@
Skriv for å finne interessepunktSetter høyeste tillatte ventetid for hver bakgrunns-posisjonsbestemmelse.Maksimal ventetid for posisjonsbestemmelse
- Vekkingsintervall brukt av bakgrunnstjeneste:
+ Vekkingsintervall brukt av bakgrunnstjenesten:Stedsbestemmelsesmetode brukt av bakgrunnstjeneste:Etterfølgende ruteTidligere rute
@@ -2437,8 +2437,8 @@
Sted å assosiere med notatet er ikke definert ennå. \"Bruk posisjon…\" for å tilordne et notat til det angitte stedet.Legg til rutepunkt i innspilt GPX-sporTaleveiledning er ikke tilgjengelig, gå til \'Innstillinger\' → \'Navigeringsinnstillinger\' , velg profilen → \'Taleveiledning\' og velg eller last ned en talemeldingspakke.
- For lange turer, beregn på nytt bare den første delen av ruten.
- Nautisk
+ Beregner på nytt bare den første delen av ruten. Kan brukes for lange turer.
+ Maritimtstengt (fridag)Kopier sted/interessepunkt-navnSted uten navn
@@ -3679,7 +3679,7 @@
Nåværende målpunkt på ruten vil slettes. Hvis det er målet, vil navigasjonen stoppe.RullestolGokart
- Planlegg en rute
+ RuteplanleggingDu får tilgang til disse handlingene ved å trykke på knappen “%1$s”.Styr zoomnivået på kartet med enhetens volumknapper.Det tillagte punktet vil ikke være synlig på kartet, siden den valgte gruppen er skjult, du kan finne det i \"%s\".
@@ -3823,7 +3823,7 @@
Kun rutelinjen vil lagres, rutepunktene vil slettes.Legg til spor-rutepunktLegg til spor-rutepunkt
- To-delt ruting for bilkjøring.
+ To-fase-ruting for bilnavigering.Abonnement påløper per valgte periode. Avbryt det når som helst fra programgalleriet.Følg veierMinimumsforskyvning
@@ -3868,4 +3868,8 @@
UtloggetBruk 2-stegs A*-rutingsalgoritmeFilen er allerede importert i OsmAnd
+ Vent på omberegning av ruten.
+\nGraf vil være tilgjengelig etter omberegning.
+ %1$s — %2$s
+ Graf
\ No newline at end of file
diff --git a/OsmAnd/res/values-nl/strings.xml b/OsmAnd/res/values-nl/strings.xml
index 575016f2f6..54c11b5a67 100644
--- a/OsmAnd/res/values-nl/strings.xml
+++ b/OsmAnd/res/values-nl/strings.xml
@@ -30,7 +30,7 @@
Terug naar locatieToegankelijkheidsmodusZet toegankelijkheidsmodus aan.
- Gelijk aan systeeminstelling
+ Gelijk aan de Android systeeminstellingTerug naar menuZoom uitZoom in
@@ -251,8 +251,8 @@
Fout bij offline zoeken.Zoek adres in de offline kaartenSysteem
- App menu-taal (OsmAnd dient opnieuw gestart).
- Taal
+ App toon talen (OsmAnd dient opnieuw gestart).
+ Toon talenWijzig de eenheid van afstand voor metingen.Afstand eenhedenMijlen/voeten
@@ -636,10 +636,10 @@
Gebruik online kaarten (download en bewaar deze op SD-kaart).Online kaartenConfigureer online of bewaarde kaarttegels.
- Geeft toegang tot vele soorten online (zogenaamde tile of raster) kaarten, van vooraf gedefinieerde OSM tiles (zoals Mapnik) tot satellietbeelden en lagen voor speciale doeleinden zoals weerkaarten, klimaatkaarten, geologische kaarten, reliëfschaduwlagen, enz.
-\n
-\nAl deze kaarten kunnen worden gebruikt als de hoofd(basis)kaart, of als een extra laag of een achtergrondlaag bij een andere basiskaart (zoals de normale offline kaarten van OsmAnd). Om een achtergrondlaag beter te kunnen zien, kunt u elementen van de OsmAnd vectorkaarten eenvoudig verbergen via het menu \'Kaart instellen\'.
-\n
+ Geeft toegang tot vele soorten online (zogenaamde tile of raster) kaarten, van vooraf gedefinieerde OSM tiles (zoals Mapnik) tot satellietbeelden en lagen voor speciale doeleinden zoals weerkaarten, klimaatkaarten, geologische kaarten, reliëfschaduwlagen, enz.
+\n
+\nAl deze kaarten kunnen worden gebruikt als de hoofd(basis)kaart, of als een extra laag of een achtergrondlaag bij een andere basiskaart (zoals de normale offline kaarten van OsmAnd). Om een achtergrondlaag beter te kunnen zien, kunt u elementen van de OsmAnd vectorkaarten eenvoudig verbergen via het menu \'Kaart instellen\'.
+\n
\nRasterkaarten zijn direct via online bronnen verkrijgbaar of kunnen voor offline gebruik gereedgemaakt worden (en handmatig gekopieerd naar de OsmAnd gegevensmap) als SQLite database door diverse hulpprogramma\'s van derden.Instellingen om tracking en navigatie te kunnen gebruiken met het scherm uit (schakelt de GPS periodiek in)."Maakt de toegankelijkheidsopties van het toestel rechtstreeks beschikbaar in OsmAnd. Hiermee kan o.a. de spreeksnelheid van tekst-naar-spraak-stemmen aangepast worden, D-pad schermnavigatie geconfigureerd worden, een trackball gebruikt worden voor de zoomregeling, of het gebruiken van meldingen via tekst-naar-spraak, bijvoorbeeld het automatisch melden van de positie."
@@ -824,7 +824,7 @@
Tussenpunt %1$sSchakel GPS in via de instellingenRichting van de bestemming tonen
- Activeer de GPX-Track opnemen- Plugin om de afgelegde weg vast te leggen (GPX-track, online tracking)
+ Activeer de \"GPX-Track opnemen\" Plug-in om de afgelegde weg vast te leggen (GPX-track, online tracking)Bereken mogelijk niet-optimale route voor lange afstandenKies kleurschema voor wegen:Kleurschema voor wegen
@@ -921,7 +921,7 @@
OsmAnd Kaarten & NavigatieOsmAnd+ Kaarten & NavigatieHuisnummer
- GPX-track
+ Track opnemenStel in hoe uw trips op te nemen.StraatnaamAanpassen van app uitzicht aan uw wensen.
@@ -952,8 +952,8 @@
PuntGPX-bestandsnaamGPX-bestand succesvol opgeslagen als {0}
- Deze plug-in voorziet een kaart-widget waarmee u een route kan ontwerpen door op de kaart te tikken, of gebruik te maken (of wijzigen) van bestaande GPX-bestanden. Plan zo een reis en bereken de afstand tussen punten. Het resultaat kan worden bewaard als GPX-bestand, om later te gebruiken als navigatieroute.
- Afstand meten en Route plannen
+ Maak paden door op de kaart te tikken of door bestaande GPX-bestanden te gebruiken of te wijzigen om een reis te plannen en de afstand tussen punten te meten. Het resultaat kan worden opgeslagen als een GPX-bestand om later als richtlijn te gebruiken.
+ Afstandscalculator en planningstool* Tik om een punt te markeren.
\n* Druk lang op de kaart om het vorige punt te verwijderen.
\n* Druk lang en houd vast op een punt om de beschrijving te zien en toe te voegen.
@@ -1247,7 +1247,7 @@
Dichtbij POIAllesReizen
- GPX-track opnemen
+ Track opnemenu.DuurAfstand
@@ -1462,7 +1462,7 @@
GeluidVideoFoto
- Kies de wachttijd in om op het route-planning scherm te blijven.
+ Geef de wachttijd op om op het route-planning scherm te blijven.Start begeleiding na…StartActietoets aanmaken
@@ -1639,7 +1639,7 @@
min/mmin/kmm/s
- GPX-Track opnemen
+ Track opnemenNavigatieInformatie over favorietPositiesimulatie beëindigen.
@@ -2058,7 +2058,7 @@
Meer toevoegen…WeergaveSnelle opname activeren
- Toon systeemmelding waarmee ritopname toegestaan wordt.
+ Toon systeemmelding waarmee track opname toegestaan wordt.MeldingenRoute berekeningFijn
@@ -2359,10 +2359,10 @@
InstalleerVerbeter de fotocollectie van MapillaryInstalleer Mapillary om foto\'s aan deze kaartlocatie toe te voegen.
- Deel uw straatniveau uitzicht via Mapillary.
+ Deel uw weergave op straatniveau via Mapillary.Snel bijdragen aan Mapillary.
- Foto\'s van buiten voor iedereen. Ondek plaatsen, werk samen, en leg de wereld vast.
- Foto\'s van buiten voor iedereen. Ondek plaatsen, werk samen, en leg de wereld vast.
+ Online foto\'s op straatniveau voor iedereen. Ontdek plaatsen, werk samen, leg de wereld vast.
+ Foto\'s op straatniveau voor iedereen. Ontdek plaatsen, werk samen, leg de wereld vast.RechtenKan bestand niet importeren. Controleer of OsmAnd rechten heeft om het bestand te lezen.Gecorrigeerde afstand
@@ -3297,7 +3297,7 @@
Door plug-in toegevoegde profielenUitschakelenNieuwe plug-in toegevoegd
- verbind segmenten
+ Segmenten samenvoegen• App profiles: Create a custom profile for your own needs, with a custom icon and color
\n
\n • Nu aan te passen standaard en min / max snelheden voor elk profiel
@@ -3356,7 +3356,7 @@
Afbeeldingsgrootte, geluids- en videokwaliteitLogin, wachtwoord, offline bewerkenKies icoon, kleur en naam
- Laat u toe uw positie te delen dankzij reisopname.
+ Laat u toe uw positie te delen dankzij track opname.Online volgenOpnamenauwkeurigheidDe opgenomen tracks zijn opgeslagen in %1$s, of in de OsmAnd-map.
@@ -3406,8 +3406,8 @@
Zonsopkomst om %1$sToegankelijkheidsmodus is uitgeschakeld in de Android systeeminstellingen.Gebruik de scherm time-out van het systeem
- Standaard niet actief: Wanneer OsmAnd in de voorgrond actief is zal het scherm niet uitschakelen.
-\n
+ Standaard niet actief: Wanneer OsmAnd in de voorgrond actief is zal het scherm niet uitschakelen.
+\n
\nBij activatie zal OsmAnd de time-out instellingen van het systeem volgen.Verwijder opgenomen gegevensKopieer coördinaten
@@ -3530,7 +3530,7 @@
TerreinHelling gebruikt kleuren om de steilheid van het terrein te visualiseren.Stel de minimale en maximale zoomniveaus in waarbij de laag wordt weergegeven.
- Om Hellingen te tonen zijn extra kaarten nodig.
+ Om hellingen te tonen zijn extra kaarten nodig.Meer over Hellingen in %1$s.TransparantieZoomniveaus
@@ -3666,7 +3666,7 @@
LegaalSnelheidscamera’s als POI’sDe reliëfschaduwkaart maakt gebruik van donkere schaduwen om hellingen, bergtoppen en valleien te visualiseren.
- Om Reliëfschaduw te tonen zijn extra kaarten nodig.
+ Om reliëfschaduw te tonen zijn extra kaarten nodig.ReliëfschaduwSelecteer deze optie om een reliëfschaduw- of hellingskaart te tonen. Op onze site staat meer informatie over deze kaarttypes.Heeft invloed op de weergave bij gebruik als kaart of als extra kaartlaag/achtergrondlaag.
@@ -3696,4 +3696,79 @@
Rolstoel vooraanzichtOpgeloste OSM-opmerkingKart
+ Track opnemen
+ Specificeer het registratie-interval voor de algemene trackregistratie (ingeschakeld via de track-widget op de kaart).
+ Pauzeer track opname
+ Hervat track opnemen
+ Beelden op srraatniveau
+ Selecteer dikte
+ Toon start en aankomst pictogrammen
+ Richtingaanwijzers
+ Het toegevoegde punt zal niet zichtbaar zijn op de kaart, aangezien de geselecteerde groep verborgen is, je kan het vinden in \"%s\".
+ Standaard
+ Route tussen punten
+ "Vervolgens, zet uw track vast op de dichtstbijzijnde toegestane weg met een van uw navigatieprofielen om deze optie te gebruiken."
+ %1$s gegevens alleen beschikbaar op de wegen, u moet een route berekenen met behulp van \"Route tussen punten\" om deze te krijgen.
+ Selecteer hoe de punten verbonden worden, via een rechte lijn, of een route berekenen tussen de punten zoals hieronder aangegeven.
+ Alleen het volgende segment wordt opnieuw berekend met het geselecteerde profiel.
+ Volgende segment
+ Alle volgende segmenten
+ Alle volgende segmenten worden opnieuw berekend met het geselecteerde profiel.
+ De ganse track
+ De ganse track wordt herberekend volgens het geselecteerde profiel.
+ Punt van de track om te navigeren
+ Bewaar als nieuw trackbestand
+ Bewaar als nieuwe track
+ Nieuwe offline pistekaarten
+\n
+\n • Volledige aanpassing van favorieten en GPX-waypoints - aangepaste kleuren, pictogrammen, vormen
+\n
+\n • Pas de volgorde van items aan in \"Contextmenu\", \"Configureer kaart\" en \"........\"
+\n
+\n •Wikipedia als een afzonderlijke laag in Kaart configureren, selecteer alleen de benodigde talen
+\n
+\n • Creëer uw eigen POI-filter / kaarten met totale flexibiliteit
+\n
+\n • Opties toegevoegd om instellingen voor aangepaste profielen te herstellen
+\n
+\n • Volledige GPX-routes van navigatieondersteunende rijstroken en volledige afslaginstructies
+\n
+\n •Verbeterde UI-formaten op tablets
+\n
+\n •Herstel bugs met RTL
+\n
+\n
+ Voeg toe aan een track
+ Voeg toe aan een trackbestand
+ Vereenvoudigde track
+ Alleen de routelijn wordt opgeslagen, de waypoints worden verwijderd.
+ Bewaar
+ Route omkeren
+ "Selecteer een track waaraan je een nieuw segment wil toevoegen."
+ Selecteer een trackbestand om te openen.
+ Weet u zeker dat u alle wijzigingen in de geplande route wilt annuleren door deze te sluiten\?
+ Opsmukken voor
+ Opsmukken na
+ Wijzig het routetype voor
+ Wijzig het routetype na
+ • Bijgewerkt Plan een route functie: maakt het mogelijk om verschillende navigatietypes per segment te gebruiken en tracks op te nemen
+\n
+\n • Nieuw menu voor tracks: selecteer kleur, dikte, weergeven van richtingspijlen, start / finish-pictogrammen.
+\n
+\n • Verbeterde zichtbaarheid van fietsknooppunten.
+\n
+\n • Tracks kun je nu aantikken en hebben een contextmenu met basisinformatie.
+\n
+\n • Verbeterde zoekalgoritmen.
+\n
+\n • Verbeterde volg track-opties bij navigatie
+\n
+\n • Problemen opgelost met het importeren / exporteren van profielinstellingen
+\n
+\n
+ Importeer track
+ Laatst bewerkt
+ Maak een nieuwe route
+ Open een bestaande track
+ Plan een route
\ No newline at end of file
diff --git a/OsmAnd/res/values-pl/strings.xml b/OsmAnd/res/values-pl/strings.xml
index c94fb854dc..13ddd2c001 100644
--- a/OsmAnd/res/values-pl/strings.xml
+++ b/OsmAnd/res/values-pl/strings.xml
@@ -3265,7 +3265,7 @@
Język i wyjścieUstawienia wtyczkiDomyślnie
- Pobierz szczegółową mapę %S, aby zobaczyć ten obszar.
+ Pobierz szczegółową mapę %s, aby zobaczyć ten obszar.Przenieść pliki danych OsmAnd do nowego położenia\?
\n%1$s > %2$sProszę wprowadzić ścieżkę do katalogu
@@ -3769,11 +3769,11 @@
Odinstaluj fotoradaryPrawnyPunkty fotoradarów
- W niektórych krajachi regionach uzywanie aplikacji ostrzegających o fotoradarach jest zabronione przez prawo.
+ W niektórych krajach i regionach używanie aplikacji ostrzegających o fotoradarach jest zabronione przez prawo.
\n
-\nMusisz dokonać wyboru w zależności od prawa danego kraju.
+\nMusisz dokonać wyboru w zależności od prawa danego kraju.
\n
-\nWybierz %1$S i będziesz otrzymywać powiadomienia i ostrzeżenia o fotoradarach.
+\nWybierz %1$s i będziesz otrzymywać powiadomienia i ostrzeżenia o fotoradarach.
\n
\nWybierz %2$s. Wszystkie dane o fotoradarach: ostrzeżenia, powiadomienia, miejsca użyteczne zostaną usunięte, aż OsmAnd zostanie zainstalowany ponownie.Nie wyłączaj
@@ -3814,7 +3814,7 @@
Wybierz żądaną opcję podziału: według czasu lub odległości.StałeOsmAnd GPX nie jest dobrze uformowany, prosimy o kontakt z zespołem wsparcia technicznego w celu dalszego zbadania sprawy.
- Wybierz limit czasu ekranu po przebudzeniu. (\"%1$s\" nie powoduje przekroczenia limitu czasu).
+ Wybierz limit czasu ekranu po przebudzeniu. (\"%1$s\" nie powoduje przekroczenia limitu czasu.)Pokaż ikony początku i końcaWybierz przedział czasowy, w którym będą wyświetlane znaki z odległością lub czasem na torze.Dostosowany
@@ -3891,7 +3891,7 @@
Otwórz zapisaną ścieżkęjest zapisywanyNależy dodać co najmniej dwa punkty.
- Wstrzyma rejestrowanie ścieżki, gdy aplikacja zostanie zabita (za pośrednictwem ostatnich aplikacji). (Wskazanie tła OsmAnd znika z paska powiadomień Androida).
+ Wstrzyma rejestrowanie ścieżki, gdy aplikacja zostanie zabita (za pośrednictwem ostatnich aplikacji). (Wskazanie tła OsmAnd znika z paska powiadomień Androida.)Ponów• Zaktualizowana funkcja planu trasy: umożliwia korzystanie z różnych typów nawigacji na segment i dołączanie ścieżek
\n
@@ -3933,4 +3933,6 @@
Zaloguj się przez OAuthWyczyść token OpenStreetMap OAuthWylogowanie powiodło się
+ Plik jest już zaimportowany do OsmAnd
+ %1$s — %2$s
\ 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 bcb7d4a63f..068381b014 100644
--- a/OsmAnd/res/values-pt-rBR/phrases.xml
+++ b/OsmAnd/res/values-pt-rBR/phrases.xml
@@ -3800,7 +3800,7 @@
Tipo de cabineSimNão
- Sinal para encontrar o poste
+ Acesso à Internet: clientesSomente quando andar é permitidoContrastadoPrimitivo
@@ -3845,4 +3845,6 @@
ColmeiaLoja de nozesGNL
+ Galpões
+ Ponto GPX
\ 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 1ea7427da0..43ef613eb1 100644
--- a/OsmAnd/res/values-pt-rBR/strings.xml
+++ b/OsmAnd/res/values-pt-rBR/strings.xml
@@ -3928,4 +3928,5 @@
Dados de %1$s disponíveis apenas nas estradas, você precisa calcular uma rota usando “Rota entre pontos” para obtê-la.Aguarde o recálculo da rota.
\nO gráfico estará disponível após o recálculo.
+ %1$s — %2$s
\ No newline at end of file
diff --git a/OsmAnd/res/values-pt/strings.xml b/OsmAnd/res/values-pt/strings.xml
index 8179f41893..23fbc0cbcc 100644
--- a/OsmAnd/res/values-pt/strings.xml
+++ b/OsmAnd/res/values-pt/strings.xml
@@ -3935,4 +3935,6 @@
%1$s dados disponíveis apenas nas estradas, precisa calcular uma rota a usar \"Rota entre pontos\" para obtê-la.Espere pelo recalculo da rota.
\nO gráfico estará disponível após o recalculo.
+ %1$s — %2$s
+ Lacuna
\ No newline at end of file
diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml
index 1e5b9b274d..145cd10775 100644
--- a/OsmAnd/res/values-ru/strings.xml
+++ b/OsmAnd/res/values-ru/strings.xml
@@ -1974,7 +1974,7 @@
ЗагрузкиПоказывать баннер бесплатной версииПоказывать баннер бесплатной версии даже в платной версии.
- В карте дорог не необходимости, так как у вас уже есть стандартная (полная) карта. Загрузить в любом случае?
+ В карте дорог нет необходимости, так как у вас уже есть стандартная (полная) карта. Загрузить в любом случае?%1$.1f из %2$.1f МБ%.1f МБОбновить все (%1$s МБ)
diff --git a/OsmAnd/res/values-sc/phrases.xml b/OsmAnd/res/values-sc/phrases.xml
index e0a15ffcdb..2c62c095ff 100644
--- a/OsmAnd/res/values-sc/phrases.xml
+++ b/OsmAnd/res/values-sc/phrases.xml
@@ -3796,7 +3796,7 @@
Casta de cabinaEjaNono
- Sinnale pro agatare su palu
+ Atzessu a ìnternet: clientesPetzi cando si podet camminareCuntrastaduPrimitivu
@@ -3841,4 +3841,8 @@
Tabellone de sas tzucadasRicàrriga de abba potàbileGNL (LNG)
+ Ispiatzu (layby)
+ Cabannas
+ Cobertura
+ Puntu GPX
\ No newline at end of file
diff --git a/OsmAnd/res/values-sc/strings.xml b/OsmAnd/res/values-sc/strings.xml
index 4a3d545b47..8c9aa3a3ec 100644
--- a/OsmAnd/res/values-sc/strings.xml
+++ b/OsmAnd/res/values-sc/strings.xml
@@ -3931,4 +3931,5 @@
GràficuIseta su càrculu nou de s\'àndala.
\nSu gràficu at a èssere a disponimentu a pustis de su càrculu.
+ %1$s — %2$s
\ No newline at end of file
diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml
index 6575698d3a..9f57bcf8fd 100644
--- a/OsmAnd/res/values-sk/strings.xml
+++ b/OsmAnd/res/values-sk/strings.xml
@@ -3933,4 +3933,6 @@
Údaje %1$s sú dostupné len na cestách, pre ich získanie musíte vypočítať trasu pomocou “Trasa medzi bodmi”.Počkajte na prepočet trasy.
\nGraf bude dostupný po prepočte.
+ %1$s — %2$s
+ Medzera
\ No newline at end of file
diff --git a/OsmAnd/res/values-uk/phrases.xml b/OsmAnd/res/values-uk/phrases.xml
index 493e631c02..0faed8c3ad 100644
--- a/OsmAnd/res/values-uk/phrases.xml
+++ b/OsmAnd/res/values-uk/phrases.xml
@@ -3788,7 +3788,7 @@
Вид стендаТакНі
- Сигнал, щоб знайти полюс
+ Доступ до Інтернету: клієнтиДопускається лише при ходінніКонтрастнийПримітивний
@@ -3833,4 +3833,8 @@
ВуликНасіннєвий магазинСПГ
+ Придорожня стоянка
+ Навіси
+ Дах
+ Точка GPX
\ No newline at end of file
diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml
index f93a7c0156..aec06b50db 100644
--- a/OsmAnd/res/values-uk/strings.xml
+++ b/OsmAnd/res/values-uk/strings.xml
@@ -3929,4 +3929,6 @@
%1$s дані доступні лише для доріг, вам потрібно обчислити маршрут за допомогою «Маршрут між точками», щоб отримати його.Дочекайтеся переобчислення маршруту.
\nГрафік буде доступний після переобчислення.
+ Розрив
+ %1$s — %2$s
\ No newline at end of file
diff --git a/OsmAnd/res/values-zh-rTW/phrases.xml b/OsmAnd/res/values-zh-rTW/phrases.xml
index add05fe4a7..10415b42a8 100644
--- a/OsmAnd/res/values-zh-rTW/phrases.xml
+++ b/OsmAnd/res/values-zh-rTW/phrases.xml
@@ -3799,7 +3799,7 @@
亭類型是否
- 找到極點的訊號
+ 網際網路存取:顧客僅在步行時允許對比粗糙
@@ -3844,4 +3844,8 @@
蜂箱堅果店LNG
+ 停車區
+ 車棚
+ 屋頂
+ GPX 點
\ 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 d84b6fcd82..e01741d9c3 100644
--- a/OsmAnd/res/values-zh-rTW/strings.xml
+++ b/OsmAnd/res/values-zh-rTW/strings.xml
@@ -3928,4 +3928,6 @@
%1$s 資料僅供道路使用,您需要使用「兩點間的路線」來計算路線。等待路線重新計算。
\n重新計算後即可使用圖表。
+ %1$s — %2$s
+ 分隔
\ No newline at end of file
diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml
index 3132eb5971..1905c224db 100644
--- a/OsmAnd/res/values/strings.xml
+++ b/OsmAnd/res/values/strings.xml
@@ -11,6 +11,14 @@
Thx - Hardy
-->
+ Travel
+ Emergency
+ Sport
+ Symbols
+ Service
+ Transport
+ Special
+ AmenityGap%1$s — %2$sWait for the route recalculation.\nGraph will be available after recalculation.
@@ -105,7 +113,7 @@
Next, snap your track to the nearest allowed road with one of your navigation profiles to use this option.Next segmentWhole track
- Select how to connect points, by a straight line, or calculate a route between them as specified below.
+ Choose how to connect the points, by a straight line, or calculate a route between them as specified below.Only the next segment will be recalculated using the selected profile.The whole track will be recalculated using the selected profile.Reverse route
diff --git a/OsmAnd/res/xml/general_settings.xml b/OsmAnd/res/xml/general_settings.xml
deleted file mode 100644
index 6060bcc19c..0000000000
--- a/OsmAnd/res/xml/general_settings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/OsmAnd/res/xml/navigation_settings.xml b/OsmAnd/res/xml/navigation_settings.xml
deleted file mode 100644
index 9931f48368..0000000000
--- a/OsmAnd/res/xml/navigation_settings.xml
+++ /dev/null
@@ -1,106 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/OsmAnd/res/xml/settings_main_screen.xml b/OsmAnd/res/xml/settings_main_screen.xml
index e2a2a5be80..ba31622bf4 100644
--- a/OsmAnd/res/xml/settings_main_screen.xml
+++ b/OsmAnd/res/xml/settings_main_screen.xml
@@ -53,6 +53,13 @@
android:title="@string/import_profile"
tools:icon="@drawable/ic_action_import" />
+
+
-
-
-
-
-
-
-
diff --git a/OsmAnd/src/net/osmand/AndroidUtils.java b/OsmAnd/src/net/osmand/AndroidUtils.java
index 0efdd133f3..40ea9cfb98 100644
--- a/OsmAnd/src/net/osmand/AndroidUtils.java
+++ b/OsmAnd/src/net/osmand/AndroidUtils.java
@@ -67,6 +67,7 @@ import net.osmand.plus.R;
import net.osmand.util.Algorithms;
import java.io.File;
+import java.lang.reflect.Field;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Collections;
@@ -884,4 +885,65 @@ public class AndroidUtils {
}
return builder;
}
+
+ public static String getRoutingStringPropertyName(Context ctx, String propertyName, String defValue) {
+ String value = getStringByProperty(ctx, "routing_attr_" + propertyName + "_name");
+ return value != null ? value : defValue;
+ }
+
+ public static String getRoutingStringPropertyDescription(Context ctx, String propertyName, String defValue) {
+ String value = getStringByProperty(ctx, "routing_attr_" + propertyName + "_description");
+ return value != null ? value : defValue;
+ }
+
+ public static String getRenderingStringPropertyName(Context ctx, String propertyName, String defValue) {
+ String value = getStringByProperty(ctx, "rendering_attr_" + propertyName + "_name");
+ return value != null ? value : defValue;
+ }
+
+ public static String getRenderingStringPropertyDescription(Context ctx, String propertyName, String defValue) {
+ String value = getStringByProperty(ctx, "rendering_attr_" + propertyName + "_description");
+ return value != null ? value : defValue;
+ }
+
+ public static String getIconStringPropertyName(Context ctx, String propertyName) {
+ String value = getStringByProperty(ctx, "icon_group_" + propertyName);
+ return value != null ? value : propertyName;
+ }
+
+ public static String getRenderingStringPropertyValue(Context ctx, String propertyValue) {
+ if (propertyValue == null) {
+ return "";
+ }
+ String propertyValueReplaced = propertyValue.replaceAll("\\s+", "_");
+ String value = getStringByProperty(ctx, "rendering_value_" + propertyValueReplaced + "_name");
+ return value != null ? value : propertyValue;
+ }
+
+ public static String getStringRouteInfoPropertyValue(Context ctx, String propertyValue) {
+ if (propertyValue == null) {
+ return "";
+ }
+ String propertyValueReplaced = propertyValue.replaceAll("\\s+", "_");
+ String value = getStringByProperty(ctx, "routeInfo_" + propertyValueReplaced + "_name");
+ return value != null ? value : propertyValue;
+ }
+
+ private static String getStringByProperty(@NonNull Context ctx, @NonNull String property) {
+ try {
+ Field field = R.string.class.getField(property);
+ return getStringForField(ctx, field);
+ } catch (Exception e) {
+ System.err.println(e.getMessage());
+ }
+ return null;
+ }
+
+ private static String getStringForField(@NonNull Context ctx, @Nullable Field field) throws IllegalAccessException {
+ if (field != null) {
+ Integer in = (Integer) field.get(null);
+ return ctx.getString(in);
+ }
+ return null;
+ }
}
\ No newline at end of file
diff --git a/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java b/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java
index 21ed74a437..ec3a9c1e10 100644
--- a/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java
+++ b/OsmAnd/src/net/osmand/aidl/OsmandAidlApi.java
@@ -2312,7 +2312,7 @@ public class OsmandAidlApi {
File exportDir = app.getSettings().getExternalStorageDirectory();
String fileName = appMode.toHumanString();
SettingsHelper settingsHelper = app.getSettingsHelper();
- settingsItems.addAll(settingsHelper.getFilteredSettingsItems(settingsHelper.getAdditionalData(), settingsTypes));
+ settingsItems.addAll(settingsHelper.getFilteredSettingsItems(settingsHelper.getAdditionalData(false), settingsTypes));
settingsHelper.exportSettings(exportDir, fileName, null, settingsItems, true);
return true;
}
diff --git a/OsmAnd/src/net/osmand/plus/activities/ActionBarPreferenceActivity.java b/OsmAnd/src/net/osmand/plus/activities/ActionBarPreferenceActivity.java
deleted file mode 100644
index 02ed96daba..0000000000
--- a/OsmAnd/src/net/osmand/plus/activities/ActionBarPreferenceActivity.java
+++ /dev/null
@@ -1,119 +0,0 @@
-package net.osmand.plus.activities;
-
-import android.app.Activity;
-import android.graphics.drawable.Drawable;
-import android.os.Build.VERSION;
-import android.os.Build.VERSION_CODES;
-import android.os.Bundle;
-import android.util.TypedValue;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.Spinner;
-import android.widget.TextView;
-
-import androidx.appcompat.widget.Toolbar;
-import androidx.core.view.ViewCompat;
-
-import net.osmand.AndroidUtils;
-import net.osmand.plus.OsmandApplication;
-import net.osmand.plus.settings.backend.OsmandSettings;
-import net.osmand.plus.R;
-
-public abstract class ActionBarPreferenceActivity extends AppCompatPreferenceActivity {
- private Toolbar tb;
- private View shadowView;
-
- public Toolbar getToolbar() {
- return tb;
- }
-
- @Override
- protected void onCreate(final Bundle savedInstanceState) {
- //settings needed it's own theme because of check boxes not styled properly
- OsmandSettings settings = ((OsmandApplication) getApplication()).getSettings();
- int t = settings.isLightContent()
- ? R.style.OsmandLightTheme_NoActionbar_Preferences
- : R.style.OsmandDarkTheme_NoActionbar_Preferences;
- setTheme(t);
- super.onCreate(savedInstanceState);
- boolean lightTheme = settings.isLightContent();
- setContentView(R.layout.preference_activity);
- tb = (Toolbar) findViewById(R.id.toolbar);
- if (VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP) {
- shadowView = findViewById(R.id.shadowView);
- final ViewGroup parent = (ViewGroup) shadowView.getParent();
- parent.removeView(shadowView);
- shadowView = null;
- }
- tb.setClickable(true);
- int activeButtonsAndLinksTextColorResId = lightTheme ? R.color.active_buttons_and_links_text_light : R.color.active_buttons_and_links_text_dark;
- int navigationIconResId = AndroidUtils.getNavigationIconResId(getApplication());
- Drawable icBack = ((OsmandApplication) getApplication()).getUIUtilities().getIcon(navigationIconResId, activeButtonsAndLinksTextColorResId);
- tb.setNavigationIcon(icBack);
- tb.setNavigationContentDescription(R.string.access_shared_string_navigate_up);
- tb.setBackgroundColor(getResources().getColor(getResIdFromAttribute(this, R.attr.pstsTabBackground)));
- tb.setTitleTextColor(getResources().getColor(getResIdFromAttribute(this, R.attr.pstsTextColor)));
- tb.setNavigationOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(final View v) {
- finish();
- }
- });
-
- getSpinner().setVisibility(View.GONE);
- getTypeButton().setVisibility(View.GONE);
- setProgressVisibility(false);
- }
-
- static int getResIdFromAttribute(final Activity activity, final int attr) {
- if (attr == 0)
- return 0;
- final TypedValue typedvalueattr = new TypedValue();
- activity.getTheme().resolveAttribute(attr, typedvalueattr, true);
- return typedvalueattr.resourceId;
- }
-
- protected void setEnabledActionBarShadow(final boolean enable) {
- if (VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP) {
- ViewCompat.setElevation(tb, enable ? 4 : 0);
- } else {
- if (shadowView == null)
- shadowView = findViewById(R.id.shadowView);
- shadowView.setVisibility(enable ? View.VISIBLE : View.GONE);
- }
- }
-
- protected Spinner getSpinner() {
- return (Spinner) findViewById(R.id.spinner_nav);
- }
-
- protected LinearLayout getTypeButton() {
- return (LinearLayout) findViewById(R.id.type_selection_button);
- }
-
- protected TextView getModeTitleTV() {
- return (TextView) findViewById(R.id.mode_title);
- }
-
- protected TextView getModeSubTitleTV() {
- return (TextView) findViewById(R.id.mode_subtitle);
- }
-
- protected ImageView getModeIconIV() {
- return (ImageView) findViewById(R.id.mode_icon);
- }
- protected ImageView getDropDownArrow() {
- return (ImageView) findViewById(R.id.type_down_arrow);
- }
-
- protected void setProgressVisibility(boolean visibility) {
- if (visibility) {
- findViewById(R.id.ProgressBar).setVisibility(View.VISIBLE);
- } else {
- findViewById(R.id.ProgressBar).setVisibility(View.GONE);
- }
-
- }
-}
\ No newline at end of file
diff --git a/OsmAnd/src/net/osmand/plus/activities/AppCompatPreferenceActivity.java b/OsmAnd/src/net/osmand/plus/activities/AppCompatPreferenceActivity.java
deleted file mode 100644
index 84b60b56e8..0000000000
--- a/OsmAnd/src/net/osmand/plus/activities/AppCompatPreferenceActivity.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.osmand.plus.activities;
-
-import android.content.res.Configuration;
-import android.os.Bundle;
-import android.preference.PreferenceActivity;
-import android.view.MenuInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import androidx.annotation.LayoutRes;
-import androidx.annotation.Nullable;
-import androidx.appcompat.app.ActionBar;
-import androidx.appcompat.app.AppCompatDelegate;
-import androidx.appcompat.widget.Toolbar;
-/**
- * A {@link android.preference.PreferenceActivity} which implements and proxies the necessary calls
- * to be used with AppCompat.
- *
- * This technique can be used with an {@link android.app.Activity} class, not just
- * {@link android.preference.PreferenceActivity}.
- */
-public abstract class AppCompatPreferenceActivity extends PreferenceActivity {
- private AppCompatDelegate mDelegate;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- getDelegate().installViewFactory();
- getDelegate().onCreate(savedInstanceState);
- super.onCreate(savedInstanceState);
- }
- @Override
- protected void onPostCreate(Bundle savedInstanceState) {
- super.onPostCreate(savedInstanceState);
- getDelegate().onPostCreate(savedInstanceState);
- }
- public ActionBar getSupportActionBar() {
- return getDelegate().getSupportActionBar();
- }
- public void setSupportActionBar(@Nullable Toolbar toolbar) {
- getDelegate().setSupportActionBar(toolbar);
- }
- @Override
- public MenuInflater getMenuInflater() {
- return getDelegate().getMenuInflater();
- }
- @Override
- public void setContentView(@LayoutRes int layoutResID) {
- getDelegate().setContentView(layoutResID);
- }
- @Override
- public void setContentView(View view) {
- getDelegate().setContentView(view);
- }
- @Override
- public void setContentView(View view, ViewGroup.LayoutParams params) {
- getDelegate().setContentView(view, params);
- }
- @Override
- public void addContentView(View view, ViewGroup.LayoutParams params) {
- getDelegate().addContentView(view, params);
- }
- @Override
- protected void onPostResume() {
- super.onPostResume();
- getDelegate().onPostResume();
- }
- @Override
- protected void onTitleChanged(CharSequence title, int color) {
- super.onTitleChanged(title, color);
- getDelegate().setTitle(title);
- }
- @Override
- public void onConfigurationChanged(Configuration newConfig) {
- super.onConfigurationChanged(newConfig);
- getDelegate().onConfigurationChanged(newConfig);
- }
- @Override
- protected void onStop() {
- super.onStop();
- getDelegate().onStop();
- }
- @Override
- protected void onDestroy() {
- super.onDestroy();
- getDelegate().onDestroy();
- }
- public void invalidateOptionsMenu() {
- getDelegate().invalidateOptionsMenu();
- }
- private AppCompatDelegate getDelegate() {
- if (mDelegate == null) {
- mDelegate = AppCompatDelegate.create(this, null);
- }
- return mDelegate;
- }
-}
\ No newline at end of file
diff --git a/OsmAnd/src/net/osmand/plus/activities/SettingsActivity.java b/OsmAnd/src/net/osmand/plus/activities/SettingsActivity.java
deleted file mode 100644
index 3509f99d65..0000000000
--- a/OsmAnd/src/net/osmand/plus/activities/SettingsActivity.java
+++ /dev/null
@@ -1,101 +0,0 @@
-package net.osmand.plus.activities;
-
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.preference.Preference;
-import android.preference.PreferenceCategory;
-import android.preference.PreferenceScreen;
-
-import net.osmand.plus.OsmandApplication;
-import net.osmand.plus.OsmandPlugin;
-import net.osmand.plus.R;
-import net.osmand.plus.Version;
-import net.osmand.plus.liveupdates.OsmLiveActivity;
-
-public class SettingsActivity extends SettingsBaseActivity {
-
- public static final String INTENT_KEY_SETTINGS_SCREEN = "INTENT_KEY_SETTINGS_SCREEN";
- public static final int SCREEN_GENERAL_SETTINGS = 1;
- public static final int SCREEN_NAVIGATION_SETTINGS = 2;
-
- private static final int PLUGINS_SELECTION_REQUEST = 1;
- private static final String CONTRIBUTION_VERSION_FLAG = "CONTRIBUTION_VERSION_FLAG";
-
-
- private Preference general;
- private Preference routing;
- private Preference subscription;
- private Preference privacy;
-
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- ((OsmandApplication) getApplication()).applyTheme(this);
- super.onCreate(savedInstanceState);
- addPreferencesFromResource(R.xml.settings_pref);
- PreferenceScreen screen = getPreferenceScreen();
- general = (Preference) screen.findPreference("general_settings");
- general.setOnPreferenceClickListener(this);
- routing = (Preference) screen.findPreference("routing_settings");
- routing.setOnPreferenceClickListener(this);
- subscription = (Preference) screen.findPreference("subscription_settings");
- subscription.setOnPreferenceClickListener(this);
- privacy = (Preference) screen.findPreference("privacy_and_security");
- privacy.setOnPreferenceClickListener(this);
-
- getToolbar().setTitle(Version.getFullVersion(getMyApplication()));
-
- Intent intent = getIntent();
- if(intent != null && intent.getIntExtra(INTENT_KEY_SETTINGS_SCREEN, 0) != 0){
- int s = intent.getIntExtra(INTENT_KEY_SETTINGS_SCREEN, 0);
- if(s == SCREEN_GENERAL_SETTINGS){
- startActivity(new Intent(this, SettingsGeneralActivity.class));
- } else if(s == SCREEN_NAVIGATION_SETTINGS){
- startActivity(new Intent(this, SettingsNavigationActivity.class));
- }
- }
- PreferenceCategory plugins = (PreferenceCategory) screen.findPreference("plugin_settings");
- for(OsmandPlugin op : OsmandPlugin.getEnabledPlugins()) {
-// final Class extends Activity> sa = op.getSettingsActivity();
-// if(sa != null) {
-// Preference preference = new Preference(this);
-// preference.setTitle(op.getName());
-// preference.setKey(op.getId());
-// preference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
-//
-// @Override
-// public boolean onPreferenceClick(Preference preference) {
-// startActivity(new Intent(SettingsActivity.this, sa));
-// return false;
-// }
-// });
-// plugins.addPreference(preference);
-// }
- }
- }
-
- @Override
- public boolean onPreferenceClick(Preference preference) {
- if (preference == general) {
- startActivity(new Intent(this, SettingsGeneralActivity.class));
- return true;
- } else if (preference == routing) {
- startActivity(new Intent(this, SettingsNavigationActivity.class));
- return true;
- } else if (preference == subscription) {
- Intent intent = new Intent(this, OsmLiveActivity.class);
- intent.putExtra(OsmLiveActivity.SHOW_SETTINGS_ONLY_INTENT_PARAM, true);
- startActivity(intent);
- return true;
- } else if (preference == privacy) {
- Intent intent = new Intent(this, PrivacyAndSecurityActivity.class);
- startActivity(intent);
- return true;
- } else {
- super.onPreferenceClick(preference);
- }
- return false;
- }
-
-}
diff --git a/OsmAnd/src/net/osmand/plus/activities/SettingsBaseActivity.java b/OsmAnd/src/net/osmand/plus/activities/SettingsBaseActivity.java
index 316de777b0..e69de29bb2 100644
--- a/OsmAnd/src/net/osmand/plus/activities/SettingsBaseActivity.java
+++ b/OsmAnd/src/net/osmand/plus/activities/SettingsBaseActivity.java
@@ -1,610 +0,0 @@
-package net.osmand.plus.activities;
-
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.DialogInterface.OnClickListener;
-import android.content.DialogInterface.OnDismissListener;
-import android.content.DialogInterface.OnMultiChoiceClickListener;
-import android.os.Bundle;
-import android.preference.CheckBoxPreference;
-import android.preference.EditTextPreference;
-import android.preference.ListPreference;
-import android.preference.Preference;
-import android.preference.Preference.OnPreferenceChangeListener;
-import android.preference.Preference.OnPreferenceClickListener;
-import android.preference.PreferenceGroup;
-import android.preference.PreferenceScreen;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.Toast;
-
-import androidx.appcompat.app.AlertDialog;
-import androidx.appcompat.app.AlertDialog.Builder;
-
-import net.osmand.AndroidUtils;
-import net.osmand.PlatformUtil;
-import net.osmand.plus.OsmAndFormatter;
-import net.osmand.plus.OsmandApplication;
-import net.osmand.plus.settings.backend.OsmandSettings;
-import net.osmand.plus.settings.backend.CommonPreference;
-import net.osmand.plus.settings.backend.OsmandPreference;
-import net.osmand.plus.R;
-import net.osmand.plus.profiles.AppProfileArrayAdapter;
-import net.osmand.plus.profiles.ProfileDataObject;
-import net.osmand.plus.settings.backend.ApplicationMode;
-
-import org.apache.commons.logging.Log;
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-
-
-public abstract class SettingsBaseActivity extends ActionBarPreferenceActivity
- implements OnPreferenceChangeListener, OnPreferenceClickListener {
-
- private static final Log LOG = PlatformUtil.getLog(SettingsBaseActivity.class);
- public static final String INTENT_APP_MODE = "INTENT_APP_MODE";
- private static final String PREV_MODE_KEY = "previous_mode";
- private static final String SELECTED_MODE_KEY = "selected_mode";
-
- protected OsmandSettings settings;
- protected final boolean profileSettings;
- protected List modes = new ArrayList();
- private ApplicationMode previousAppMode;
- protected ApplicationMode selectedAppMode;
-
- private Map screenPreferences = new LinkedHashMap();
- private Map> booleanPreferences = new LinkedHashMap>();
- private Map> listPreferences = new LinkedHashMap>();
- private Map> editTextPreferences = new LinkedHashMap>();
-
- private Map> listPrefValues = new LinkedHashMap>();
-
- public SettingsBaseActivity() {
- this(false);
- }
-
- private boolean isModeSelected = false;
-
- public SettingsBaseActivity(boolean profile) {
- profileSettings = profile;
- }
-
- public CheckBoxPreference registerBooleanPreference(OsmandPreference b, PreferenceGroup screen) {
- CheckBoxPreference p = (CheckBoxPreference) screen.findPreference(b.getId());
- p.setOnPreferenceChangeListener(this);
- screenPreferences.put(b.getId(), p);
- booleanPreferences.put(b.getId(), b);
- return p;
- }
-
-
- public CheckBoxPreference createCheckBoxPreference(OsmandPreference b, int title, int summary) {
- CheckBoxPreference p = new CheckBoxPreference(this);
- p.setTitle(title);
- p.setKey(b.getId());
- p.setSummary(summary);
- p.setOnPreferenceChangeListener(this);
- screenPreferences.put(b.getId(), p);
- booleanPreferences.put(b.getId(), b);
- return p;
- }
-
- public CheckBoxPreference createCheckBoxPreference(OsmandPreference b, String title, String summary) {
- CheckBoxPreference p = new CheckBoxPreference(this);
- p.setTitle(title);
- p.setKey(b.getId());
- p.setSummary(summary);
- p.setOnPreferenceChangeListener(this);
- screenPreferences.put(b.getId(), p);
- booleanPreferences.put(b.getId(), b);
- return p;
- }
-
- public CheckBoxPreference createCheckBoxPreference(OsmandPreference b) {
- CheckBoxPreference p = new CheckBoxPreference(this);
- p.setKey(b.getId());
- p.setOnPreferenceChangeListener(this);
- screenPreferences.put(b.getId(), p);
- booleanPreferences.put(b.getId(), b);
- return p;
- }
-
- public static String getRoutingStringPropertyName(Context ctx, String propertyName, String defValue) {
- try {
- Field f = R.string.class.getField("routing_attr_" + propertyName + "_name");
- if (f != null) {
- Integer in = (Integer) f.get(null);
- return ctx.getString(in);
- }
- } catch (Exception e) {
- System.err.println(e.getMessage());
- }
- return defValue;
- }
-
- public static String getRoutingStringPropertyDescription(Context ctx, String propertyName, String defValue) {
- try {
- Field f = R.string.class.getField("routing_attr_" + propertyName + "_description");
- if (f != null) {
- Integer in = (Integer) f.get(null);
- return ctx.getString(in);
- }
- } catch (Exception e) {
- System.err.println(e.getMessage());
- }
- return defValue;
- }
-
- public static String getStringPropertyName(Context ctx, String propertyName, String defValue) {
- try {
- Field f = R.string.class.getField("rendering_attr_" + propertyName + "_name");
- if (f != null) {
- Integer in = (Integer) f.get(null);
- return ctx.getString(in);
- }
- } catch (Exception e) {
- System.err.println(e.getMessage());
- }
- return defValue;
- }
-
- public static String getStringPropertyDescription(Context ctx, String propertyName, String defValue) {
- try {
- Field f = R.string.class.getField("rendering_attr_" + propertyName + "_description");
- if (f != null) {
- Integer in = (Integer) f.get(null);
- return ctx.getString(in);
- }
- } catch (Exception e) {
- //e.printStackTrace();
- System.err.println(e.getMessage());
- }
- return defValue;
- }
-
- public static String getStringPropertyValue(Context ctx, String propertyValue) {
- try {
- if(propertyValue == null) {
- return "";
- }
- final String propertyValueReplaced = propertyValue.replaceAll("\\s+","_");
- Field f = R.string.class.getField("rendering_value_" + propertyValueReplaced + "_name");
- if (f != null) {
- Integer in = (Integer) f.get(null);
- return ctx.getString(in);
- }
- } catch (Exception e) {
- System.err.println(e.getMessage());
- }
- return propertyValue;
- }
-
- public static String getStringRouteInfoPropertyValue(Context ctx, String propertyValue) {
- try {
- if(propertyValue == null) {
- return "";
- }
- final String propertyValueReplaced = propertyValue.replaceAll("\\s+","_");
- Field f = R.string.class.getField("routeInfo_" + propertyValueReplaced + "_name");
- if (f != null) {
- Integer in = (Integer) f.get(null);
- return ctx.getString(in);
- }
- } catch (Exception e) {
- System.err.println(e.getMessage());
- }
- return propertyValue;
- }
-
- public void registerListPreference(OsmandPreference b, PreferenceGroup screen, String[] names, T[] values) {
- ListPreference p = (ListPreference) screen.findPreference(b.getId());
- prepareListPreference(b, names, values, p);
- }
-
- public ListPreference createListPreference(OsmandPreference b, String[] names, T[] values, int title, int summary) {
- ListPreference p = new ListPreference(this);
- p.setTitle(title);
- p.setKey(b.getId());
- p.setDialogTitle(title);
- p.setSummary(summary);
- prepareListPreference(b, names, values, p);
- return p;
- }
-
- public ListPreference createListPreference(OsmandPreference b, String[] names, T[] values, String title, String summary) {
- ListPreference p = new ListPreference(this);
- p.setTitle(title);
- p.setKey(b.getId());
- p.setDialogTitle(title);
- p.setSummary(summary);
- prepareListPreference(b, names, values, p);
- return p;
- }
-
- public ListPreference createListPreference(OsmandPreference b, String[] names, T[] values) {
- ListPreference p = new ListPreference(this);
- p.setKey(b.getId());
- prepareListPreference(b, names, values, p);
- return p;
- }
-
- private void prepareListPreference(OsmandPreference b, String[] names, T[] values, ListPreference p) {
- p.setOnPreferenceChangeListener(this);
- LinkedHashMap vals = new LinkedHashMap();
- screenPreferences.put(b.getId(), p);
- listPreferences.put(b.getId(), b);
- listPrefValues.put(b.getId(), vals);
- assert names.length == values.length;
- for (int i = 0; i < names.length; i++) {
- vals.put(names[i], values[i]);
- }
- }
-
- private void registerDisablePreference(OsmandPreference p, String value, OsmandPreference disable) {
- LinkedHashMap vals = (LinkedHashMap) listPrefValues.get(p.getId());
- vals.put(value, disable);
- }
-
- public void registerEditTextPreference(OsmandPreference b, PreferenceScreen screen) {
- EditTextPreference p = (EditTextPreference) screen.findPreference(b.getId());
- p.setOnPreferenceChangeListener(this);
- screenPreferences.put(b.getId(), p);
- editTextPreferences.put(b.getId(), b);
- }
-
- public EditTextPreference createEditTextPreference(OsmandPreference b, int title, int summary) {
- EditTextPreference p = new EditTextPreference(this);
- p.setTitle(title);
- p.setKey(b.getId());
- p.setDialogTitle(title);
- p.setSummary(summary);
- p.setOnPreferenceChangeListener(this);
- screenPreferences.put(b.getId(), p);
- editTextPreferences.put(b.getId(), b);
- return p;
- }
-
- public void registerTimeListPreference(OsmandPreference b, PreferenceScreen screen, int[] seconds, int[] minutes, int coeff) {
- int minutesLength = minutes == null ? 0 : minutes.length;
- int secondsLength = seconds == null ? 0 : seconds.length;
- Integer[] ints = new Integer[secondsLength + minutesLength];
- String[] intDescriptions = new String[ints.length];
- for (int i = 0; i < secondsLength; i++) {
- ints[i] = seconds[i] * coeff;
- intDescriptions[i] = seconds[i] + " " + getString(R.string.int_seconds); //$NON-NLS-1$
- }
- for (int i = 0; i < minutesLength; i++) {
- ints[secondsLength + i] = (minutes[i] * 60) * coeff;
- intDescriptions[secondsLength + i] = minutes[i] + " " + getString(R.string.int_min); //$NON-NLS-1$
- }
- registerListPreference(b, screen, intDescriptions, ints);
- }
-
- public ListPreference createTimeListPreference(OsmandPreference b, int[] seconds, int[] minutes, int coeff, int title, int summary) {
- return createTimeListPreference(b, seconds, minutes, coeff, null, title, summary);
- }
-
- public ListPreference createTimeListPreference(OsmandPreference b, int[] seconds, int[] minutes,
- int coeff, CommonPreference disable, int title, int summary) {
- int minutesLength = minutes == null ? 0 : minutes.length;
- int secondsLength = seconds == null ? 0 : seconds.length;
- Integer[] ints = new Integer[secondsLength + minutesLength];
- String[] intDescriptions = new String[ints.length];
- int k = 0;
- for (int i = 0; i < secondsLength; i++) {
- ints[k] = seconds[i] * coeff;
- intDescriptions[k] = seconds[i] + " " + getString(R.string.int_seconds); //$NON-NLS-1$
- k++;
- }
- OsmandApplication app = getMyApplication();
- for (int i = 0; i < minutesLength; i++) {
- ints[k] = (minutes[i] * 60) * coeff;
- intDescriptions[k] = OsmAndFormatter.getFormattedDuration(minutes[i] * 60, app);
- k++;
- }
- ListPreference lp = createListPreference(b, intDescriptions, ints, title, summary);
- if (disable != null) {
- registerDisablePreference(b, getString(R.string.confirm_every_run), disable);
- }
- return lp;
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- int itemId = item.getItemId();
- switch (itemId) {
- case android.R.id.home:
- finish();
- return true;
-
- }
- return false;
- }
-
- @SuppressWarnings("deprecation")
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- OsmandApplication app = getMyApplication();
- settings = app.getSettings();
- getToolbar().setTitle(R.string.shared_string_settings);
-
- if (profileSettings) {
- modes.clear();
- findViewById(R.id.selector_shadow).setVisibility(View.VISIBLE);
- if (this instanceof SettingsNavigationActivity) {
- for (ApplicationMode a : ApplicationMode.values(app)) {
- if (a != ApplicationMode.DEFAULT) {
- modes.add(a);
- }
- }
- } else {
- modes.addAll(ApplicationMode.values(app));
- }
-
- getTypeButton().setVisibility(View.VISIBLE);
- getTypeButton().setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- selectAppModeDialog().show();
- }
- });
-
- }
- setPreferenceScreen(getPreferenceManager().createPreferenceScreen(this));
- }
-
- protected AlertDialog.Builder selectAppModeDialog() {
- AlertDialog.Builder singleSelectDialogBuilder = new Builder(SettingsBaseActivity.this);
- singleSelectDialogBuilder.setTitle(R.string.profile_settings);
-
- final List activeModes = new ArrayList<>();
- for (ApplicationMode am : ApplicationMode.values(getMyApplication())) {
- boolean isSelected = am == selectedAppMode;
-
- if (am != ApplicationMode.DEFAULT || !(this instanceof SettingsNavigationActivity)) {
- activeModes.add(new ProfileDataObject(
- am.toHumanString(),
- getAppModeDescription(am),
- am.getStringKey(),
- am.getIconRes(),
- isSelected,
- am.getIconColorInfo()
- ));
- }
- }
-
- final AppProfileArrayAdapter modeNames = new AppProfileArrayAdapter(
- SettingsBaseActivity.this, R.layout.bottom_sheet_item_with_descr_and_radio_btn, activeModes, isModeSelected);
-
- singleSelectDialogBuilder.setNegativeButton(R.string.shared_string_cancel,
- new OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- dialog.dismiss();
- }
- });
- singleSelectDialogBuilder.setOnDismissListener(new OnDismissListener() {
- @Override
- public void onDismiss(DialogInterface dialog) {
- if (!isModeSelected) {
- List m = ApplicationMode.values(getMyApplication());
- setSelectedAppMode(m.get(m.size() > 1 ? 1 : 0));
- }
- }
- });
- singleSelectDialogBuilder.setAdapter(modeNames, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- settings.APPLICATION_MODE.set(modes.get(which));
- updateModeButton(modes.get(which));
- updateAllSettings();
- }
- });
- return singleSelectDialogBuilder;
- }
-
- void updateModeButton(ApplicationMode mode) {
- OsmandApplication app = getMyApplication();
- boolean nightMode = !app.getSettings().isLightContent();
- String title = mode.toHumanString();
-
- getModeTitleTV().setText(title);
- getModeSubTitleTV().setText(getAppModeDescription(mode));
- settings.APPLICATION_MODE.set(mode);
- selectedAppMode = mode;
- getModeIconIV().setImageDrawable(getMyApplication().getUIUtilities().getIcon(mode.getIconRes(),
- mode.getIconColorInfo().getColor(nightMode)));
- getDropDownArrow().setImageDrawable(app.getUIUtilities().getIcon(R.drawable.ic_action_arrow_drop_down, !nightMode));
- isModeSelected = true;
- updateAllSettings();
- }
-
- private String getAppModeDescription(ApplicationMode mode) {
- String descr;
- if (!mode.isCustomProfile()) {
- descr = getString(R.string.profile_type_base_string);
- } else {
- descr = String.format(getString(R.string.profile_type_descr_string),
- mode.getParent().toHumanString());
- if (mode.getRoutingProfile() != null && mode.getRoutingProfile().contains("/")) {
- descr = descr.concat(", " + mode.getRoutingProfile()
- .substring(0, mode.getRoutingProfile().indexOf("/")));
- }
- }
- return descr;
- }
-
- @Override
- protected void onResume() {
- super.onResume();
- if (profileSettings) {
- if (previousAppMode == null) {
- previousAppMode = settings.getApplicationMode();
- }
- if (getIntent() != null && getIntent().hasExtra(INTENT_APP_MODE)) {
- String modeStr = getIntent().getStringExtra(INTENT_APP_MODE);
- ApplicationMode mode = ApplicationMode.valueOfStringKey(modeStr, previousAppMode);
- setSelectedAppMode(mode);
- } else {
- setSelectedAppMode(selectedAppMode);
- }
- } else {
- updateAllSettings();
- }
- }
-
- protected void setSelectedAppMode(ApplicationMode am) {
- for (ApplicationMode a : modes) {
- if (am != null && am == a) {
- updateModeButton(a);
- break;
- }
- }
- }
-
- @Override
- protected void onPause() {
- super.onPause();
- if(profileSettings) {
- settings.APPLICATION_MODE.set(previousAppMode);
- }
- }
-
- @Override
- protected void onSaveInstanceState(Bundle outState) {
- super.onSaveInstanceState(outState);
- if (profileSettings) {
- if (previousAppMode != null) {
- outState.putString(PREV_MODE_KEY, previousAppMode.getStringKey());
- }
- if (selectedAppMode != null) {
- outState.putString(SELECTED_MODE_KEY, selectedAppMode.getStringKey());
- }
- }
- }
-
- @Override
- protected void onRestoreInstanceState(Bundle state) {
- super.onRestoreInstanceState(state);
- if (state != null) {
- if (profileSettings && state.containsKey(SELECTED_MODE_KEY) && state.containsKey(PREV_MODE_KEY)) {
- for (ApplicationMode am : ApplicationMode.values(getMyApplication())) {
- if (am.getStringKey() == state.get(SELECTED_MODE_KEY)) {
- setSelectedAppMode(am);
- }
- if (am.getStringKey() == state.get(PREV_MODE_KEY)) {
- previousAppMode = am;
- }
- }
- }
- }
- }
-
- public void updateAllSettings() {
- for (OsmandPreference b : booleanPreferences.values()) {
- CheckBoxPreference pref = (CheckBoxPreference) screenPreferences.get(b.getId());
- pref.setChecked(b.get());
- }
-
- for (OsmandPreference> p : listPreferences.values()) {
- ListPreference listPref = (ListPreference) screenPreferences.get(p.getId());
- Map prefValues = listPrefValues.get(p.getId());
- String[] entryValues = new String[prefValues.size()];
- String[] entries = new String[prefValues.size()];
- int i = 0;
- for (Entry e : prefValues.entrySet()) {
- entries[i] = e.getKey();
- entryValues[i] = e.getValue() + ""; // case of null
- i++;
- }
- listPref.setEntries(entries);
- listPref.setEntryValues(entryValues);
- listPref.setValue(p.get() + "");
- }
-
- for (OsmandPreference s : editTextPreferences.values()) {
- EditTextPreference pref = (EditTextPreference) screenPreferences.get(s.getId());
- pref.setText(s.get());
- }
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
- // handle boolean preferences
- OsmandPreference boolPref = booleanPreferences.get(preference.getKey());
- OsmandPreference