diff --git a/OsmAnd-java/src/main/java/net/osmand/IndexConstants.java b/OsmAnd-java/src/main/java/net/osmand/IndexConstants.java
index 26a4e252ed..78216f3616 100644
--- a/OsmAnd-java/src/main/java/net/osmand/IndexConstants.java
+++ b/OsmAnd-java/src/main/java/net/osmand/IndexConstants.java
@@ -42,7 +42,7 @@ public class IndexConstants {
public static final String OSMAND_SETTINGS_FILE_EXT = ".osf";
- public static final String ROUTING_FILE_EXT = ".xml";
+ public static final String ROUTING_AND_RENDERING_FILE_EXT = ".xml";
public static final String RENDERER_INDEX_EXT = ".render.xml"; //$NON-NLS-1$
diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RoutingConfiguration.java b/OsmAnd-java/src/main/java/net/osmand/router/RoutingConfiguration.java
index fb3432d4aa..14f26123a5 100644
--- a/OsmAnd-java/src/main/java/net/osmand/router/RoutingConfiguration.java
+++ b/OsmAnd-java/src/main/java/net/osmand/router/RoutingConfiguration.java
@@ -236,9 +236,9 @@ public class RoutingConfiguration {
String id = parser.getAttributeValue("", "id");
String type = parser.getAttributeValue("", "type");
boolean defaultValue = Boolean.parseBoolean(parser.getAttributeValue("", "default"));
- if (type.equalsIgnoreCase("boolean")) {
+ if ("boolean".equalsIgnoreCase(type)) {
currentRouter.registerBooleanParameter(id, Algorithms.isEmpty(group) ? null : group, name, description, defaultValue);
- } else if(type.equalsIgnoreCase("numeric")) {
+ } else if ("numeric".equalsIgnoreCase(type)) {
String values = parser.getAttributeValue("", "values");
String valueDescriptions = parser.getAttributeValue("", "valueDescriptions");
String[] strValues = values.split(",");
@@ -292,7 +292,7 @@ public class RoutingConfiguration {
for (int i = 0; i < stack.size(); i++) {
addSubclause(stack.get(i), ctx);
}
- } else if(stack.size() > 0 && stack.peek().tagName.equals("select")) {
+ } else if (stack.size() > 0 && "select".equals(stack.peek().tagName)) {
addSubclause(rr, ctx);
}
stack.push(rr);
@@ -312,11 +312,11 @@ public class RoutingConfiguration {
if (!Algorithms.isEmpty(rr.t)) {
ctx.getLastRule().registerAndTagValueCondition(rr.t, Algorithms.isEmpty(rr.v) ? null : rr.v, not);
}
- if (rr.tagName.equals("gt")) {
+ if ("gt".equals(rr.tagName)) {
ctx.getLastRule().registerGreatCondition(rr.value1, rr.value2, rr.type);
- } else if (rr.tagName.equals("le")) {
+ } else if ("le".equals(rr.tagName)) {
ctx.getLastRule().registerLessCondition(rr.value1, rr.value2, rr.type);
- } else if (rr.tagName.equals("eq")) {
+ } else if ("eq".equals(rr.tagName)) {
ctx.getLastRule().registerEqualCondition(rr.value1, rr.value2, rr.type);
}
}
diff --git a/OsmAnd-telegram/res/values-ar/strings.xml b/OsmAnd-telegram/res/values-ar/strings.xml
index 66ee21d97e..11a6505fcb 100644
--- a/OsmAnd-telegram/res/values-ar/strings.xml
+++ b/OsmAnd-telegram/res/values-ar/strings.xml
@@ -13,7 +13,7 @@
حالة وضع السكون
ميل بحري
ميل بحري في الساعة (عقدة)
- كم ، متر
+ كم ، م
نهاية
الرسائل المحفوظة
تحديث
@@ -43,7 +43,7 @@
ياردة
قدم
ميل
- كلم
+ كم
م
ميل بحري
د/م
@@ -58,7 +58,7 @@
ميل ، قدم
ميل ، ياردة
ميل بحري
- ميل ، متر
+ ميل ، م
بحث
الارتفاع
تفعيل
@@ -252,7 +252,7 @@
الحد الأدنى لسرعة التسجيل
عامل التصفية: لا تسجيل أقل من السرعة المحددة
إعدادات GPX
- ليس لدينا بيانات تم جمعها لليوم المحدد
+ ليس لدينا بيانات مجمعة لليوم المحدد
لا توجد بيانات
تحديد وقت للعرض
تاريخ البدء — تاريخ الانتهاء
diff --git a/OsmAnd-telegram/res/values-ca/strings.xml b/OsmAnd-telegram/res/values-ca/strings.xml
index 3659310ef1..08e19f2b0a 100644
--- a/OsmAnd-telegram/res/values-ca/strings.xml
+++ b/OsmAnd-telegram/res/values-ca/strings.xml
@@ -241,7 +241,7 @@
Velocitat mínima de registre
Filtre: no s\'enregistra per sota de la velocitat seleccionada
Configuració GPX
- No hem recopilat dades per al dia seleccionat
+ No hem recopilat dades del dia seleccionat
No hi ha dades
Finalitza
Comença
diff --git a/OsmAnd-telegram/res/values-da/strings.xml b/OsmAnd-telegram/res/values-da/strings.xml
index af5f48e160..a6a4a396dc 100644
--- a/OsmAnd-telegram/res/values-da/strings.xml
+++ b/OsmAnd-telegram/res/values-da/strings.xml
@@ -268,4 +268,5 @@
Sidste opdatering fra Telegram: %1$s siden
Sidste svar: %1$s siden
%1$s siden
+ ERR
\ No newline at end of file
diff --git a/OsmAnd-telegram/res/values-fi/strings.xml b/OsmAnd-telegram/res/values-fi/strings.xml
index a6b3daec93..0347295cb7 100644
--- a/OsmAnd-telegram/res/values-fi/strings.xml
+++ b/OsmAnd-telegram/res/values-fi/strings.xml
@@ -1,2 +1,6 @@
-
\ No newline at end of file
+
+ Pois käytöstä
+ Tallenna
+ Lisää laite
+
\ No newline at end of file
diff --git a/OsmAnd/res/drawable/ic_speed_camera_disabled.xml b/OsmAnd/res/drawable/ic_speed_camera_disabled.xml
new file mode 100644
index 0000000000..1b72498755
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_speed_camera_disabled.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/OsmAnd/res/drawable/img_speed_camera_warning.xml b/OsmAnd/res/drawable/img_speed_camera_warning.xml
new file mode 100644
index 0000000000..aa5fb3bb5d
--- /dev/null
+++ b/OsmAnd/res/drawable/img_speed_camera_warning.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OsmAnd/res/layout/fragment_edit_poi.xml b/OsmAnd/res/layout/fragment_edit_poi.xml
index 1231503214..6a6cd6d9ad 100644
--- a/OsmAnd/res/layout/fragment_edit_poi.xml
+++ b/OsmAnd/res/layout/fragment_edit_poi.xml
@@ -19,10 +19,15 @@
app:contentInsetLeft="@dimen/settings_divider_margin_start"
app:contentInsetStart="@dimen/settings_divider_margin_start"/>
-
+
+
+ android:layout_marginStart="@dimen/settings_divider_margin_start"
+ android:layout_marginEnd="@dimen/content_padding">
+ android:layout_marginStart="24dp">
+ android:drawableEnd="@drawable/ic_action_arrow_drop_down" />
@@ -118,14 +123,12 @@
app:tabTextColor="@android:color/darker_gray"/>
-
-
-
-
+
+
+
+ android:layout_marginStart="@dimen/showAllButtonMarginRight" />
عبّارة
مصدر الطاقة: الكتلة الحيوية
موقع Reddit
+ اصطف واركب
+ فئة الصعوبة
+ تسلق الصخور
+ نعم
+ منفذ للحافلة
+ مدخل دراجات نارية
+ مدخل معاقين
+ سحب نقدي
\ No newline at end of file
diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml
index 713450fb51..4f1f51a680 100644
--- a/OsmAnd/res/values-ar/strings.xml
+++ b/OsmAnd/res/values-ar/strings.xml
@@ -6,7 +6,7 @@
تسجيل الصوت
استخدم مسجل النظام
إعدادات الصوت / الفيديو
- الكاميرا ليست متاحة
+ الكاميرا غير متاحة
البحث عن المزيد من القرى/الرمز البريدي
يرجى تمكين GPS
استبدالها بهذه الوجهة
@@ -48,7 +48,7 @@
بدء
إضافة أوسماند المحلي للخطوط المحيطية
قياس المسافة
- الصوت تلاحظ
+ الملاحظة صوتية
أجزاء
الخطوط المحيطية (الكنتورية)
الخطوط المحيطية
@@ -125,9 +125,9 @@
إحداثيات
بحث عن وسائل النقل العام
البحث في المفضلة
- ملاحة أوسماند غير متاحة مؤقتا.
+ الملاحة غير متاحة مؤقتاً.
نقطة الانطلاق لم تحدد بعد.
- الخرائط القياسية (ناقل)
+ خرائط التوجيه (المحملة)
تحميل وإدارة الخرائط غير المتصلة المخزنة على جهازك.
الملحقات
خيارات المطور
@@ -278,7 +278,7 @@
قابل للتحميل: %1$s
أقصى تكبير: %1$s
أدنى تكبير: %1$s
- تعريف/تعديل…
+ تعريف/تعديل
ضبط إعدادات نطق أسماء الشوارع، وتحذيرات المرور (توقيفات الإجبارية، ومطبات السرعة)، و تحذيرات كاميرات السرعة، و السرعة القصوى.
نطق أسماء الشوارع ( نطق آلي TTS )
السرعة القصوى
@@ -298,7 +298,7 @@
اختر مفضلة
تعديلات OSM
تغيير الفرز
- جاري تسجيل الصوت/الفيديو. لوقفه اضغط على ودجة AV.
+ جار تسجيل صوت/فيديو. لوقفه اضغط على ودجة AV.
افتح بمشغل خارجي
خذ ملاحظة صوتية
خذ ملاحظة فيديو
@@ -386,7 +386,7 @@
المنعطف الثاني
خريطة الطريق مصغرة
تعيين الفاصل الزمني للتنبيه:
- متابعة التوجيه السابق؟ (%1$sثانية)
+ متابعة التوجيه السابق؟ (%1$s ث)
سيعاد احتساب المسار حالما يتم العثور على الموقع
لقد أوقفت سيارتك عند
حدد سرعة محاكاة المسار:
@@ -432,7 +432,7 @@
بحث عن النقاط المهمة
القيادة بيد اليسار
حدد للبلدان التي فيها حركة المرور على اليسار.
- الموقف غير معروف بعد.
+ الموقع لم يحدد.
تعديل الشفافية (0 - شفاف ، 255 - معتم )
إلغاء التحميل؟
نشكرك على استخدام أوسماند. الكثير من مميزات هذا البرنامج بحاجة إلى بعض البيانات الإقليمية التي يمكنك تحميلها عبر \'إعدادات\'→ \'إدارة البيانات\'. بعد ذلك سوف تكون قادرا على عرض الخرائط، و تحديد العناوين ، والبحث عن النقاط المهمة ، والعثور على وسائل النقل العام .
@@ -441,7 +441,7 @@
إلى مدى قريب \"١٠٠م\"
بدون تكبير تلقائي
إلى مدى متوسط \"٢٠٠م\"
- خرائط متصلة بالإنترنت
+ خرائط الإنترنت
تمكين ملحق خرائط الإنترنت من تحديد مصادر مختلفة من الخرائط
خرائط من الإنترنت وتجانبية
استخدام الخرائط من الإنترنت (تحميل وحفظ التجانبيات منها على بطاقة SD).
@@ -509,7 +509,8 @@
بيانات الخطوط المحيطية
من فضلك فكر في شراء ملحق الخطوط المحيطية من Google Play لدعم المزيد من التطوير.
الخطوط المحيطية
- جاري تشغيل صوت من التّسجيل المحدد. %1$s
+ جار تشغيل صوت من التّسجيل المحدد.
+\n%1$s
برنامج ZXing للبحث عن الباركود غيرُ مثبّت. بحث في السّوق ؟
مستوى تكبير الخطوط المحيطية:
الأيسر الخلفي
@@ -669,7 +670,7 @@
غير محدد
مركز الخريطة الحالي
المنطلق:
- بحث بالقرب من هنا
+ بحث بالجوار
حفظ النقاط كمسار
تم حفظ المسار بنجاح ك \'%1$s\'.
اسم الملف:
@@ -747,7 +748,7 @@
سيمارك
متغير POI
الخريطة مثبتة بالفعل.
- اختر خرائط (التجانب) للتثبيت أو التحديث.
+ اختر خرائط (جزء محدد) للتثبيت أو التحديث.
لا يوجد اتصال بالإنترنت.
المزيد…
مستوى التقريب الأدنى لاستخدام خرائط التوجيه.
@@ -766,7 +767,7 @@
وحدات الطول
ميل ، قدم
ميل ، ياردة
- كم ، متر
+ كم ، م
ياردة
قدم
ميل ساعة
@@ -801,16 +802,16 @@
يفهرس العنوان…
يفهرس الخريطة…
يفهرس POI…
- جاري فهرسة وسائل النقل…
+ جار فهرسة وسائل النقل…
حدث خطا
- كلم
+ كم
كم/س
م
مهمل خريطة تنسيق البيانات \'\' {0} \'\' غير معتمد
أقرب POI
تصفية مخصصة
البحث عن الاسم في الإنترنت
- جاري قراءة التجانبيات المخزنة مؤقتا…
+ جار قراءة التجانبات المخزنة مؤقتاً…
الفهرس \"{0}\" كبير جدًّا على الذاكرة
إصدار الخريطة غير مدعوم
حدث خطأ غير متوقع أثناء ممارسة العمل {0}.
@@ -836,11 +837,11 @@
اﻷوكرانية
أميركا الشمالية - كندا
أوروبا - إيطاليا
- جاري نسخ ملفات أوسماند…
+ جار نسخ ملفات أوسماند…
تفضيلات الملاحة
قطع تشغيل الموسيقى عند ورود إعلان ما.
إيقاف الموسيقى
- جاري التحميل %1$s …
+ جار التحميل %1$s …
"
\n
\nاضغط مطولا للرؤية على الخريطة"
@@ -920,7 +921,7 @@
قواعد توجيه No v1.9
نحو الشمال
المنزل
- تنزيل بيانات A-GPS: %1$s
+ بيانات A-GPS المحملة: %1$s
أوسماند يوفر تصفح الخريطة العالمية دون اتصال والتنقل دون اتصال.
أهلا
الطريق الحالي
@@ -979,7 +980,7 @@
عرض أسماء المفضلة
المسارات المسجلة…
لغة الخريطة
- تفاصيل
+ التفاصيل
الوقت الحالي
اتجاه الخريطة
حسب اتجاه الحركة
@@ -992,7 +993,7 @@
موقف
مواقف
صوت
- المسار الجاري تسجيله
+ المسار الجار تسجيله
تسجيل المسار
اختر الفاصل الزمني لتسجيل المسار العام (مفعل عن طريق أداة تسجيل GPX على الخريطة).
اختر الفاصل الزمني لتسجيل المسار أثناء الملاحة
@@ -1030,7 +1031,7 @@
شارك ملاحظة
"الموقع : N %1$s E %2$s"
ملاحظات
- خريطة متصلة بالإنترنت
+ خريطة إنترنت
الطرق فقط
ذاكرة الجهاز
تعديل مجموعة
@@ -1074,7 +1075,7 @@
تجنب الطرق…
طرق السكك الحديدية
خطوط الترام
- طرق
+ الطرق
وسائل المواصلات
سمات أخرى للخريطة
العناصر المتبقية
@@ -1112,7 +1113,7 @@
الجولات
الكل
إحداثيات
- استعراض الخريطة
+ استعراض
سيارة
دراجة
مشي
@@ -1265,7 +1266,7 @@
تحتاج إلى اتصال إنترنت لثبيت الملحق.
صيغة خاطئة: %s
حدد حجم صورة الكاميرا الداخلية
- حجم صورة الكاميرا
+ حجم الصورة
الإجراء {0} تم بنجاح.
جار حفظ المسارات في الذاكرة…
ابحث عن المزيد
@@ -1274,7 +1275,7 @@
عرض الطريق
عنوان
خدمة الملاحة
- جاري الرفع…
+ جار الرفع…
مدينة: {0}
نقل
طرق
@@ -1293,7 +1294,7 @@
تشغيل أوسماند في الخلفية
مزود تحديد المواقع
اختر مزود تحديد المواقع لاستخدامه في الخلفية:
- ثانية
+ ث
د
GPS
شبكة
@@ -1335,13 +1336,13 @@
تحميل المناطق
إنهاء البحث
لا يوجد نتائج
- جاري البحث…
+ جار البحث…
بحث على الإنترنت
بحث بدون اتصال
اختر خدمة الملاحة عبر أو بدون ربط بالإنترنت.
لا يمكن الوصول لمجلد البيانات على الذاكرة!
حدد الوجهة أولاً
- جاري تحميل قائمة المناطق المتاحة…
+ جار تحميل قائمة المناطق المتاحة…
لم يتم تحميل قائمة المناطق من osmand.net.
خطأ أثناء حفظ GPX.
لا يمكن حساب الطريق.
@@ -1742,7 +1743,7 @@
عرض عالي الجودة
تعديل POI
تفكيك ظغط الملف …
- جاري البحث عن الإشارة …
+ جار البحث عن الإشارة …
الدخول عبر الخريطة
عرض عند البدء
التأثير النسبي
@@ -1888,7 +1889,7 @@
تقديم المسارات وفقاً لمقياس SAC.
غطاء رمز التنزه
تقديم المسارات وفقاً لآثار OSMC.
- انقر فوق أي عنصر لمعرفة المزيد من التفاصيل، اضغط وواصل الضغط للتعطيل أو الحذف. البيانات الحالية على الجهاز (%1$s متاحة):
+ انقر فوق أي عنصر لمعرفة المزيد من التفاصيل، اضغط وواصل الضغط للتعطيل أو الحذف. البيانات الحالية على الجهاز (%1$s متاح):
إعادة إعلان تعليمات الملاحة في فترات منتظمة.
أخرى
%1$s %2$s عنصر ؟
@@ -1896,12 +1897,12 @@
هذه الأداة المساعدة تفعل وظيفة تسجيل وحفظ المسارات الخاصة بك عبر الضغط على نافذة GPX على شاشة الخريطة، أو كذلك تسجيل كافة طرق الملاحة الخاص بك تلقائيا إلى ملف GPX.
\n
\nالمسارات المسجلة يمكن مشاركتها مع أصدقائك أو استخدامها كمساهمات ل OSM . الرياضيون يمكنهم استخدام المسارات المسجلة لمتابعة تدريباتهم. بعض تحليل المسار الابتدائية يمكن القيام بها مباشرة في التطبيق، مثل توقيت الدورات، ومتوسط السرعة...الخ، و يمكن أيضا تحليل المسارات باستعمال أدوات تحليل جانبية لاحقا.
- أوسماند ليس لديه إذن لاستخدام ذاكرة اس دي
+ أوسماند ليس لديه إذن لاستخدام ذاكرة البطاقة
هل تريد حقا حفظ POI بدون تحديد نوعه؟
هناك خيار جديد لتحكم بشكل مرن بالتطبيق عبر لوحة القياس أو القائمة الثابتة. اختيارك يمكن تغييره دائما في إعدادات لوحة القياس.
ملاحة أوسماند دون نت ميزة تجريبية وهي لا تعمل لمسافات تزيد عن 20 كم. خدمة الملاحة حولت مؤقتا إلى CloudMade على الإنترنت.
"إصدار {0} تثبيت بنجاح ({1})."
- جاري تحميل الإصدار…
+ جار تحميل الإصدار…
هل تريد تثبيت أوسماند - {0} من {1} {2} مب ؟
فشل في الحصول على قائمة إصدارات التطبيق
عملية تحميل إصدارات التطبيق جارية …
@@ -1939,7 +1940,7 @@
المسافة اللاحقة
محطات توقف لتجاوز
تم تحديث بيانات POI بنجاح ({0} تم تحميلها)
- لا توجد بيانات POI حالياً متاحة في هذه المنطقة
+ لا توجد بيانات POI متاحة حالياً في هذه المنطقة
تحديث POI غير متاح لمستويات الزوم الصغيرة
المبنى: {0}، {1}، {2}
التكبير الأقصى بالإنترنت
@@ -1970,7 +1971,8 @@
الانتظار الأقصى للإصلاح
إصدار غير معتمد من البيانات الصوتية
البيانات الصوتية المحددة تالفة
- بطاقة الذاكرة الرقمية غير متاحة. لن تكون قادرا على رؤية الخرائط أو العثور على الأشياء.
+ بطاقة الذاكرة غير متاحة.
+\nلن تكون قادرا على رؤية الخرائط أو العثور على أماكن.
بطاقة الذاكرة في وضع القراءة فقط. يمكنك فقط مشاهدة الخريطة المحملة مسبقا ولا يمكنك التحميل من الإنترنت.
انعطف يميناً بشكل حاد
انعطف يساراً بشكل حاد
@@ -1984,7 +1986,7 @@
إنشاء إحداثية POI
عدد الصفوف في الدفعة %1$s
سيتم حذف POI بمجرد إرسال التعديلات
- جاري التحميل - %1$d ملف
+ جار التحميل - %1$d ملف
يرجى تفعيل أداة المعالم البحرية
%1$.1f من %2$.1f مب
%.1f مب
@@ -2017,7 +2019,7 @@
تحصل عليه ب %1$s
الحصول على عدد غير محدود من تحميلات الخرائط والتحديثات في الشهر : أسبوعياً، يومياً أو كل ساعة.
نسخة كاملة من تطبيق أوسماند مع تحميل غير محدود وتحديثات شهرية للخرائط .
- ميل ، متر
+ ميل ، م
تحميل
رسوم الاشتراك ستفرض كل شهر. يمكنك إلغاء اشتراكك متى أردت عبر Google play.
التبرع لمجتمع OSM
@@ -2144,7 +2146,7 @@
مصدر الخريطة
مصدر الخريطة
إضافة مصدر خريطة
- تم تغيير مصدر الخريطة إلى \"%s\".
+ مصدر الخريطة تغير الى \"%s\".
تغيير موقع الزر
الضغط على زر الإجراء سيقوم بعرض أو إخفاء نقاطك المفضلة على الخريطة.
دع الحقل فارغا إن كنت ترغب في استعمال العنوان أو اسم المكان.
@@ -2504,7 +2506,7 @@
سيتم إزالة المجموعة بعد إعادة تشغيل التطبيق.
العلامات
نمط الإحداثيات
- استخدم لوحة مفاتيح النظام
+ لوحة مفاتيح النظام
اختر نسق إدخال الأحداثيات. يمكنك دائماً تغييره بالنقر على خيارات.
إدخال إحداثيات سريع
تجنب طرق الثلوج والطين
@@ -2599,7 +2601,7 @@
غ
ج
ش
- الاسم الاختياري للنقطة
+ اسم النقطة
الطرق القريبة التي في الداخل
أدخل اسم الملف.
خطأ أثناء استرجاع الخريطة
@@ -2993,15 +2995,15 @@
تضمين العنوان
حفظ الوجهة لكل نقطة متابعة خلال التسجيل.
يستخدم لتقدير وقت الوصول لنوع غير معروف من الطرق ولتقليل السرعة لجميع الطرق (قد يغير المسار)
- نقل ملفات بيانات أوسماند إلى الوجهة الجديدة؟
+ نقل البيانات إلى الموقع الجديد؟
\n%1$s > %2$s
%1$s • %2$s
- %1$s GB متاحة (من %2$s GB)
+ متاح GB%1$s (من GB%2$s)
إدخال مسار المجلد
المجلد…
لصق مسار مجلد بيانات أوسماند
- تغيير مجلد بيانات أوسماند؟
- الانتقال للوجهة الجديدة
+ تغيير مجلد البيانات ؟
+ نقل للموقع الجديد
تجنب بعض الطرق، أو بعض أنواع الطرق
جنباً إلى جنب
طريق تلفريك
@@ -3011,16 +3013,16 @@
طبقات
الخرائط
تيرا بايت %1$s TB
- قيقا بايت %1$s GB
- %1$s MB ميقا بايت
- %1$s kB كيلوا بايت
+ %1$s GB
+ %1$s MB
+ %1$s kB
مجلد تخزين المسار
المسارات يمكن أن تخزن في مجلد \'rec\' بشكل شهري أو مجلدات يومية.
تسجيل المسارات إلى مجلد \'rec\'
تسجل المسارات في المجلدات اليومية
سجل المسارات في مجلدات واجعل مسمياتها حسب التاريخ مثل 2018-01-01.
تم استخدام %1$s TB
- تم استخدام %1$s GB
+ المستخدم %1$s GB
تم استخدام %1$s MB
تم استخدام %1$s kB
الخطوط الكنتورية والتضاريس
@@ -3101,7 +3103,7 @@
يستخدم أوسماند تنسيق UTM وهو مشابه ولكن غير مطابق لتنسيق UTM الناتو.
مثال
معيار الإحداثيات
- فتح رمز الموقع
+ رمز موقع مفتوح
سيتم تطبيق التنسيق المحدد في كل أنحاء التطبيق.
يتم تحديد هذا الاعداد بشكل افتراضي لملفات التعريف: %s
تغيير الإعدادات
@@ -3118,15 +3120,15 @@
الإضافات المثبتة
تكوين الملاحة
ثيم التطبيق ، وحدات ، المنطقة
- تكوين ملف التعريف
+ إعداد ملف التعريف
تظهر التنبيهات في أسفل اليسار أثناء التنقل.
تبديل الملف الشخصي
اللغة والإخراج
إعادة التعيين إلى الافتراضي
إنشاء واستيراد وتحرير ملفات التعريف
إدارة ملفات تعريف التطبيق …
- فعالة للتطبيق بأكمله
- إعدادات أوسماند
+ لكامل التطبيق
+ الإعدادات
نسخة من ملف تعريف آخر
قم بتشغيل الشاشة
خريطة أثناء التنقل
@@ -3146,7 +3148,7 @@
بشكل افتراضي
قم بتنزيل خريطة مفصلة%s لعرض هذه المنطقة.
تخزين داخلي ، مخفي عن المستخدم والتطبيقات الأخرى ، يمكن الوصول إليه حصريا من أوسماند.
- تغيير مجلد تخزين البيانات
+ تغيير مجلد التخزين
حديقة التضاريس
زلاجة
تزلج
@@ -3253,7 +3255,7 @@
وضع المستخدم ، مشتق من:%s
تزلج
النوع:%s
- ملف التعريف الأساسي
+ ملف تعريف أساسي
حدد نوع الملاحة
يرجى تحديد نوع الملاحة لملف التعريف الجديد
أدخل اسم الملف الشخصي
@@ -3282,7 +3284,7 @@
توجيه خاص
توجيه جهة خارجية
حدد ملفات التعريف لتكون مرئية في التطبيق.
- تطبيق ملفات التعريف
+ ملفات تعريف التطبيق
أضف عنصرًا واحدًا على الأقل إلى القائمة في إعدادات \"الإجراء السريع\"
جبال الألب/التزلج علي المنحدرات
التزلج على جبال الألب أو الانحدار.
@@ -3319,8 +3321,8 @@
لوحة المفاتيح
وندرلينك
ببغاء
- المسار: المسافة%s ، وقت جهاز التوجيه%s
-\nالحساب:%.1f ثانية ،%d طرق ،%d تجانب)
+ المسار: المسافة%s، وقت التوجيه %s.
+\nالحساب: %.1f ث، %d طريق، %d تجانب)
الأوكيتانية
ثم %1$s
تطبيق فقط على \"%1$s\"
diff --git a/OsmAnd/res/values-ca/strings.xml b/OsmAnd/res/values-ca/strings.xml
index ec64d2c1f5..cdd95c908a 100644
--- a/OsmAnd/res/values-ca/strings.xml
+++ b/OsmAnd/res/values-ca/strings.xml
@@ -15,16 +15,16 @@
Radars
Notificacions de trànsit
En espera del posicionament per tornar a calcular la ruta
- El punt d\'inici és massa lluny de la carretera més propera.
+ El punt de sortida massa lluny de la carretera més propera.
Indica el temps límit d\'aparcament
- Tria el tipus d\'aparcament
+ Trieu el tipus de pàrquing
Evita les carreteres no pavimentades
Evita…
Sense interrupció
Configura la pantalla
Brúixola
Defineix el temps de despertament:
- Evita vies de peatge
+ Sense vies de peatge
Voleu continuar la navegació anterior que encara no havia finalitzat? (%1$s segons)
Hores
Minuts
@@ -36,13 +36,13 @@
Públic
Privat
Configura la pantalla
- Premeu la icona de bloqueig per desbloquejar la pantalla
- Bloqueja la pantalla
+ Premeu la icona de bloqueig per desblocar
+ Bloca
Proper gir
Proper gir (petit)
Segon gir proper
- Bloqueja la pantalla
- Desbloqueja la pantalla
+ Bloca
+ Desbloca
La pantalla està bloquejada
Memòria nativa total
Avís
@@ -70,17 +70,17 @@
Format
Coordenades
Cerca d\'adreces
- Cerca de transport públic
+ Cerca transport públic
Una manera de buscar Favorits
Conducció per l\'esquerra
Pels països on la gent condueix pel costat esquerre de la carretera.
- Punt d\'inici no determinat encara
- La posició encara no es coneix
- Modifica l\'opacitat (0 - transparent, 255 - opac)
+ Encara no s\'ha determinat el punt de sortida.
+ La posició encara no es coneix.
+ Establiu l\'opacitat (0 - transparent, 255 - opac)
Activa\n…el mode en segon pla
Atura\n…el mode en segon pla
La navegació fora de línia de l\'OsmAnd no està disponible temporalment.
- Voleu cancel·lar la baixada del fitxer?
+ Voleu cancel·lar la baixada\?
No s\'ha trobat res. Si no trobeu la vostra zona, la podeu fer vosaltres mateixos (consulteu https://osmand.net).
Mapes de tessel·les en línia i cau
Mapes estàndards (vectorials)
@@ -88,7 +88,7 @@
Mapes en línia (tessel·les)
Utilitza mapes en línia (les tessel·les es baixen i es desen a la tarja de memòria).
Mapes en línia
- Configureu les fonts de mapes de tessel·les en línia o desades a la memòria cau.
+ Seleccioneu les fonts de mapes de tessel·les en línia o a la memòria cau.
"Aquest connector fa disponible directament des OsmAnd les característiques d\'accessibilitat del dispositiu. Us permet, per exemple, ajustar la velocitat de la veu en la síntesi TTS , configurar la pantalla de navegació, utilitzar un ratolí de bola per controla el zoom o la veu sintetitzada, anunciant automàticament la vostra posició."
Gestor de connectors
Cerca de PDI (punt d\'interès)
@@ -111,21 +111,21 @@
Allunya
Apropa
nord
- nord-nord-est
+ nord-nord est
nord-est
- est-nord-est
+ est-nord est
est
- est-sud-est
+ est-sud est
sud-est
- sud-sud-est
+ sud-sud est
sud
- sud-sud-oest
- sud-oest
- oest-sud-oest
+ sud-sud oest
+ sud oest
+ oest-sud oest
oest
- oest-nord-oest
- nord-oest
- nord-nord-oest
+ oest-nord oest
+ nord oest
+ nord-nord oest
endavant
endavant a la dreta
a la dreta
@@ -152,8 +152,8 @@
Baixeu i gestioneu mapes fora de línia emmagatzemats al vostre dispositiu.
És probable que es mostrin els mapes de vectors més de pressa. Això pot no funcionar en alguns dispositius.
Desenvolupament de l\'OsmAnd
- Puja la modificació a OSM
- Esborra els canvis
+ Puja l\'edició a OSM
+ Esborra l\'edició
Penja-ho tot
Mostra la traça actual
Podeu baixar o actualitzar %1$s mapes.
@@ -165,7 +165,7 @@
Àfrica
Àsia
Austràlia i Oceania
- Indicadors de veu (enregistrats, funcionalitats limitades)
+ Indicacions de veu (enregistrades, funcionalitats limitades)
Viquipèdia (fora de línia)
Navegació
Especifiqueu les opcions de navegació.
@@ -180,19 +180,19 @@
Tema transparent
Traieu el cotxe de l\'aparcament
Optimitza el mapa per
- Selecciona una veu i comprova les indicacions en funcionament
+ Seleccioneu una veu i comproveu les seves indicacions:
Canvia el zoom del mapa seguint el desplaçament horitzontal del ratolí de bola.
Utilitza el ratolí de bola per controlar el zoom
- Es van penjar {0} PDI/notes
- PDIs/Notes d\'OSM desades al dispositiu
+ Es van pujar {0} PDI/notes
+ PDIs/notes d\'OSM desades al dispositiu
Mostra i gestiona els PDI/notes d\'OSM anotats a la base de dades del dispositiu.
Informació de dia/nit
Carrils
Evita els ferris
- S\'ha afegit una notificació a la vostra agenda perquè traieu el vostre cotxe. Hi seguirà fins que l\'elimineu manualment.
+ S\'ha afegit una notificació a la vostra agenda perquè traieu el vostre cotxe que es pot editar o treure allà mateix.
Mantingueu-vos a l\'esquerra i continueu
Mantingueu-vos a la dreta i continueu
- Prova els indicadors de veu
+ Prova dels indicadors de veu
Ajuda per a noves característiques
No hi ha prou memòria de procés per mostrar l\'àrea seleccionada
Especifiqueu l\'adreça de la pàgina web amb la sintaxi dels paràmetres: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}.
@@ -201,7 +201,7 @@
Amèrica Central
Amèrica del Sud
Europa
- Indicadors de veu (sintetitzats amb TTS, recomanat)
+ Indicacions de veu (TTS, recomanat)
La llibreria nadiua no s\'admet en aquest dispositiu.
S\'està inicialitzant la llibreria nativa…
Opcions específiques de renderització dels vectors
@@ -231,7 +231,7 @@
Atributs de renderització
Estil del mapa
Minimapa de ruta
- Selecciona l\'acceleració de la ruta animada
+ Velocitat de simulació de la ruta:
Seleccioneu el mitjà de transport
Edició fora de línia
Utilitza sempre l\'edició fora de línia.
@@ -240,8 +240,8 @@
Els canvis realitzats en els PDI a l\'aplicació no afecten els fitxers de mapa baixats, els canvis es desen en un fitxer local.
Memòria assignada %1$s MB (límit de l\'Android %2$s MB, Dalvik %3$s MB).
Memòria assignada
- Memòria nativa total assignada a l\'aplicació %1$s MB (Dalvik %2$s MB, altres %3$s MB).
-Memòria proporcional %4$s MB (límit de l\'Android %5$s MB, Dalvik %6$s MB).
+ Memòria nativa total assignada a l\'aplicació %1$s MB (Dalvik %2$s MB, altres %3$s MB).
+\nMemòria proporcional %4$s MB (límit de l\'Android %5$s MB, Dalvik %6$s MB).
No s\'ha trobat cap mapa de vectors fora de línia per aquesta localització. Baixeu-ne un a Configuració (\'Gestió de fitxers de mapes\') o canvieu al connector \'Mapes en línia\'.
Paràmetres globals de l\'aplicació
És necessari per a les trameses a openstreetmap.org.
@@ -413,7 +413,7 @@ Memòria proporcional %4$s MB (límit de l\'Android %5$s MB, Dalvik %6$s MB).Aquest connector mostra la configuració de característiques per al desenvolupament i depuració com la verificació o simulació de rutes, el rendiment del renderitzat o les indicacions de veu. Aquestes configuracions s\'adrecen a desenvolupadors i no són d\'utilitat per a un usuari normal.
En consonància amb la configuració del sistema Android
El nivell de zoom és
- Trieu l\'estil per indicar direccions relatives mentre s\'està en moviment.
+ Trieu l\'estil per indicar direccions relatives mentre s\'està en moviment
Mapes mundials i temàtics
Viquipèdia mundial
Configuració específica del perfil
@@ -2872,7 +2872,7 @@ Abasta l\'àrea: %1$s x %2$s
Renovació anual
%1$.2f %2$s
Cicle de pagament:
- Les donacions ajuden a finançar la cartografia d\'OpenStreetMap.
+ Les donacions ajuden a finançar la cartografia d\'OSM.
Per OsmAnd
Subscripcions
Només mostra imatges de 360º
@@ -2924,7 +2924,7 @@ Abasta l\'àrea: %1$s x %2$s
Tipus de carretera
Sortida a
Mostra/amaga traces GPX
- Un commutador per mostrar o amagar les traces GPX seleccionades al mapa.
+ Un botó per mostrar o amagar les traces GPX seleccionades al mapa.
Amaga les traces GPX
Mostra les traces GPX
Pugeu a la parada
@@ -3092,7 +3092,7 @@ Abasta l\'àrea: %1$s x %2$s
Seleccioneu el tipus de navegació
Cotxe, camió, motocicleta
Passejada, senderisme, cursa
- Qualsevol transport públic
+ Tipus de transport públic
Línia recta
Navegació OsmAnd
Perfil de navegació personalitzat
@@ -3260,7 +3260,7 @@ Abasta l\'àrea: %1$s x %2$s
Desplaça a la nova destinació
Evita determinades rutes i tipus de carretera
Emmagatzematge intern, amagat a l\'usuari i a les altres aplicacions i que només OsmAnd hi pot accedir
- Canvia la carpeta d\'emmagatzematge de dades
+ Canvia la carpeta d\'emmagatzematge
Pista de terra
Trineu
Costat a costat
@@ -3353,7 +3353,7 @@ Abasta l\'àrea: %1$s x %2$s
Connectors instal·lats
Configura la navegació
Tema de la aplicació, unitats, regió
- Les alertes es mostren a la part inferior esquerra mentre es navega.
+ Les alertes es mostren abaix a l\'esquerra mentre es navega.
Llengua i sortida
Reinicia els valors per defecte
Creació, importació i edició de perfils
@@ -3366,7 +3366,7 @@ Abasta l\'àrea: %1$s x %2$s
Mapa durant la navegació
Pes, alçada, velocitat
Paràmetres del vehicle
- Els anuncis de veu només es produeixen en la navegació.
+ Els missatges de veu només es produeixen navegant.
Instruccions de navegació i anuncis
Anuncis de veu
Alertes de pantalla
@@ -3545,4 +3545,9 @@ Abasta l\'àrea: %1$s x %2$s
\nSeleccioneu una opció.
Alguns elements ja existeixen
Seleccioneu les dades que voleu importar.
+ Ràtio
+ Vagó
+ Filtre de baixa velocitat que no deixa enregistrar punts per sota d\'una determinada velocitat. Així, les traces enregistrades no es veuen atapeïdes de punts al mapa.
+ Antàrtida
+ Estil de representació
\ No newline at end of file
diff --git a/OsmAnd/res/values-da/phrases.xml b/OsmAnd/res/values-da/phrases.xml
index b99dc924c5..0aad9dd01a 100644
--- a/OsmAnd/res/values-da/phrases.xml
+++ b/OsmAnd/res/values-da/phrases.xml
@@ -3799,4 +3799,5 @@
Bowlingcenter
Piste-referencenummer
Jagtbase
+ Scuba dykkercenter
\ No newline at end of file
diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml
index 36c7120fff..af7830d80e 100644
--- a/OsmAnd/res/values-da/strings.xml
+++ b/OsmAnd/res/values-da/strings.xml
@@ -3500,4 +3500,18 @@ Repræsenterer område: %1$s x %2$s
Medtag yderligere data
Vælg yderligere data, der skal eksporteres sammen med profilen.
Antarktis
+ Deaktiver genberegning
+ Brugerdefineret profil
+ Vinkel: %s°
+ Vinkel
+ Forbereder
+ IP typer
+ Intet valgt
+ Genveje
+ Profiler
+ Aktuelle poster erstattes med poster fra filen
+ Erstat alle
+ Behold begge
+ Renderingsstil
+ Den geografiske hensigt \'%s\' kunne ikke fortolkes.
\ No newline at end of file
diff --git a/OsmAnd/res/values-fa/strings.xml b/OsmAnd/res/values-fa/strings.xml
index c22f2314b5..515a1f51dc 100644
--- a/OsmAnd/res/values-fa/strings.xml
+++ b/OsmAnd/res/values-fa/strings.xml
@@ -358,7 +358,7 @@
تنظیمات کلی برنامه
نام کاربری OSM شما
برای ارسال دادهها به سایت openstreetmap.org لازم است.
- رمز عبور OSM شما
+ گذرواژهٔ OSM شما
غرب-جنوبغرب
غرب
غرب-شمالغرب
@@ -412,7 +412,7 @@
محرمانگی
برچسبها
توضیحات
- برای آپلودکردن فایلهای GPX لطفاً نام کاربری و رمز عبور OSM خود را وارد کنید.
+ برای آپلودکردن فایلهای GPX لطفاً نام کاربری و گذرواژهٔ OSM خود را وارد کنید.
حمایت
حمایت از قابلیتهای جدید
برای اینکه قابلیتهای جدیدی را در برنامه ببینید کمک مالی کنید.
@@ -716,7 +716,7 @@
دادهها وجود ندارد
برعکسکردن جهت GPX
از مقصد جاری استفاده کن
- از سرتاسر رد عبور کن
+ گذر از همهٔ رد
برای این محل نقشهٔ بُرداری آفلاین وجود دارد.
\n
\n\tفعالسازی:
@@ -1051,7 +1051,7 @@
DDD MM.MMM
DDD MM SS.S
نقطه پیدا نشد، یا مکان از چند نقطه تشکیل شده است که فعلاً پشتیبانی نمیشود.
- لطفاً نام کاربری و رمز عبورتان برای سایت OSM را در قسمت تنظیمات وارد کنید
+ لطفاً نام کاربری و گذرواژهتان برای سایت OSM را در قسمت تنظیمات وارد کنید
پاککردن مقصدهای میانی
نگهداشتن مقصدهای میانی
مقصدهای میانی را قبلاً چیدهاید.
@@ -1059,7 +1059,7 @@
مسیریابی از اینجا
نقشه:
به:
- رمز عبور OSM (اختیاری)
+ گذرواژهٔ OSM (اختیاری)
اعلامکردن…
پیکربندیهای مربوط به اعلام نام خیابانها، هشدارهای ترافیکی (مانند توقفهای اجباری، سرعتگیرها)، هشدار دوربینهای کنترل سرعت و محدودیتهای سرعت را انجام دهید.
نام خیابانها (موتور صوتی)
@@ -1739,7 +1739,7 @@
نوار بالا
گزارش کامل
پیداکردن مجدد مسیر
- نام کاربری و رمز عبورِ OSM
+ نام کاربری و گذرواژهٔ OSM
کمکهای مالی
تعداد گیرندگان
اصلاحات: %1$s، رتبه: %2$s، کل اصلاحات: %3$s
@@ -2600,7 +2600,7 @@
درونبرد فایل
با لمس نقشه، دکمهها و ابزارکها را پنهان/آشکار کنید.
حالت تمامصفحه
- از این عبور کردم
+ از این گذشتم
تغییر نام نشانه
تعداد رقمهای اعشاری
راست
@@ -2625,7 +2625,7 @@
مکانها را بهصورت کوتاه یا طولانی لمس کنید و سپس دکمهٔ پرچم را بزنید.
گروه درونبرد کنید
گروههای نقاط برگزیده یا نقاط بینراهی را در قالب نشانه درونبرد کنید.
- نشانههایی که بهعنوان عبورکرده مشخص شدهاند در این صفحه نشان داده میشوند.
+ نشانههایی که بهعنوان گذرانده مشخص شود در این صفحه نشان داده میشود.
بیشتر
در حال جستوجوی ردهای دارای نقطهٔ بینراهی
اشیای OSM را بسازید یا ویرایش کنید
@@ -2868,7 +2868,7 @@
جستوجوی خیابان
ابتدا شهر/محل را انتخاب کنید
بازیابی
- نشانههایی که در قالب گروهی از برگزیدهها یا نقاط بینراهی GPX وارد شدهاند و از آنها عبور کردهاید روی نقشه باقی میمانند. اگر گروه مربوط به آنها را غیرفعال کنید، نشانهها از روی نقشه محو میشوند.
+ نشانههایی که در قالب گروهی از برگزیدهها یا نقاط بینراهی GPX وارد شدهاند و از آنها گذشتهاید روی نقشه باقی میمانند. اگر گروه مربوط به آنها را غیرفعال کنید، نشانهها از روی نقشه محو میشوند.
نشانههای پشت سر گذاشته را روی نقشه نگه دار
نشانهٔ %s حذف شود؟
ویرایش نشانه
diff --git a/OsmAnd/res/values-fi/phrases.xml b/OsmAnd/res/values-fi/phrases.xml
index 11338dc6d4..df99b023e9 100644
--- a/OsmAnd/res/values-fi/phrases.xml
+++ b/OsmAnd/res/values-fi/phrases.xml
@@ -468,7 +468,7 @@
HiFi-kauppa
Metsästystarvikkeet
Soitinliike
- Luomuruokaa
+ Luomutuotteita
Ulkoilukauppa
Lemmikkieläinkauppa
Pölynimurikauppa
@@ -1082,9 +1082,50 @@
Vaara: miinakenttä
Vaara: saastuminen
Ajoneuvo pääsy: salliva
-
+
Salliva
Salliva
Salliva
Joki
+ Roskakori
+ Lentopallo
+ Puu
+ Luonnonsuojelualue
+ Oliivi
+ Omena
+ Palmuöljy
+ Appelsiini
+ Manteli
+ Banaani
+ kookospähkinä
+ Kirsikka
+ Luumu
+ Persikka
+ Tee
+ Kiivi
+ Mango
+ Kumi
+ Kahvi
+ Granaattiomena
+ kansainvälinen nimi
+ Kansallinen nimi
+ Alueellinen nimi
+ Paikallinen nimi
+ Vanha nimi
+ Vaihtoehtoinen nimi
+ Mineraali
+ Panimon nimi
+ Pesukone: ei
+ Virallinen nimi
+ Räjähdysaika (UTC)
+ Talon nimi
+ Terveyspalvelu: rokotus: kyllä
+ Terveyspalvelu: rokotus: ei
+ Terveyspalvelu: tuki: kyllä
+ Terveyspalvelu: tuki: ei
+ Perhe
+ URL
+ Tyyppi
+ Tila
+ Muta
\ No newline at end of file
diff --git a/OsmAnd/res/values-fi/strings.xml b/OsmAnd/res/values-fi/strings.xml
index a7a1a23115..c8df578184 100644
--- a/OsmAnd/res/values-fi/strings.xml
+++ b/OsmAnd/res/values-fi/strings.xml
@@ -826,7 +826,7 @@ Maailmanlaajuiset tiedot (välillä 70 astetta pohjoista ja 70 astetta eteläist
Näytä sijainti aina keskellä
Ääniohjausta ei ole saatavilla. Mene \\\'Asetukset\\\' → \\\'Yleiset asetukset\\\' → \'\\Ääniohjaus\\\' ja valitse tai lataa äänikehote.
etsi
- Etsi kaupunkia tai aluetta
+ Kaupunki tai alue
Poistu %1$d. liittymästä
Reitin laskenta
Sinulla ei ole vielä yhtään GPX-tiedostoa
@@ -979,7 +979,7 @@ Maailmanlaajuiset tiedot (välillä 70 astetta pohjoista ja 70 astetta eteläist
Sovelluksella on nyt lupa kirjoittaa ulkoiselle tallennusvälineelle. Uudelleenkäynnistys vaaditaan.
Yläpalkki
Koko raportti
- "OpenStreetMap-käyttäjätunnus ja -salasana"
+ OSM-käyttäjänimi ja -salasana
OSM Live -tilaus
Tukialue
Kuukausikustannus
@@ -1850,8 +1850,7 @@ Jos pidät OsmAndista ja OSMsta ja haluat tukea niitä, on tämä täydellinen t
Asenna lisää…
Käytä rasterikarttoja kaikkeen, joka ylittää tämän tason.
Pienin vektorien zoomaustaso
-
- Online OSM karttaluokittelu kuvilla.
+ Online OSM karttaluokittelu kuvilla.
Ei voitu suorittaa offline-hakua.
Järjestelmä
Sovelluksen näyttökieli (käytetään, kun OsmAnd käynnistetään uudelleen).
@@ -1955,8 +1954,8 @@ Jos pidät OsmAndista ja OSMsta ja haluat tukea niitä, on tämä täydellinen t
Koordinaattien muoto
Käytä järjestelmän näppäimistöä
Nopea koordinaattien syöttö
- Vältä jääteitä, kahlaamoja
- Vältä jääteitä ja kahlaamoja.
+ Ei jääteitä tai kahlaamoja
+ Välttää jääteitä ja kahlaamoja.
Käytä sijaintia
Lisää sijaintisi täydellisen reittisuunnitelmasi lähtöpisteeksi.
Sijaintini
@@ -1972,7 +1971,7 @@ Jos pidät OsmAndista ja OSMsta ja haluat tukea niitä, on tämä täydellinen t
Poista karttamarkkereista
laskeva
nouseva
- Päiväys lisätty
+ Lisätty
Järjestysperuste:
Kaikki karttamarkkerit siirretty historiaan
Karttamarkkeri siirretty historiaan
@@ -2018,7 +2017,7 @@ Jos pidät OsmAndista ja OSMsta ja haluat tukea niitä, on tämä täydellinen t
Asenna
Online-kuvat
Lisää kuviin
- Tästä sijainnista ei ole kuvia.
+ Täällä ei ole kuvia.
Mapillary
Käynnistä haku uudelleen
Mitään ei löytynyt
@@ -2108,7 +2107,7 @@ Jos pidät OsmAndista ja OSMsta ja haluat tukea niitä, on tämä täydellinen t
Lisää välipysähdys
Lisää ensimmäisen pysähdys
Näytä suljetut huomautukset
- Näytä/Piilota OSM-huomautukset kartalla.
+ Näytä/piilota OSM-huomautukset kartalla.
GPX - soveltuu vietäväksi JOSM:iin tai muihin OSM-editoreihin.
OSC - soveltuu vietäväksi OpenStreetMappiin.
GPX-tiedosto
@@ -2118,7 +2117,7 @@ Jos pidät OsmAndista ja OSMsta ja haluat tukea niitä, on tämä täydellinen t
Kaikki data
OSM-huomautukset
Aukeaa huomenna kello
- Ilman nimiä
+ Ilman nimeä
Täällä on:
pysäköity
Noudettava ennen
@@ -2193,7 +2192,7 @@ Jos pidät OsmAndista ja OSMsta ja haluat tukea niitä, on tämä täydellinen t
Reitti laskettu
Edestakainen matka
Sinun täytyy lisätä ainakin yksi markkeri käyttääksesti tätä toimintoa.
- Huomautusta ei voitu muokata
+ Huomautusta ei voitu muokata.
Valitse koordinaattien syöttömuoto. Voit aina vaihtaa sen tökkäämällä asetuksia.
Näytä suuntaviivat
Näytä ohitetut
@@ -2236,7 +2235,7 @@ Jos pidät OsmAndista ja OSMsta ja haluat tukea niitä, on tämä täydellinen t
Tämän toimintonappulan koskettaminen ottaa käyttöön/poistaa käytöstä nopeuteesi perustuvan kartan automaattisen tarkennuksen.
"Ota kartan automaattinen tarkennus käyttöön "
"Poista kartan automaattinen tarkennus käytöstä "
- Lisää määränpää
+ Aseta määränpää
Korvaa määränpää
Lisää ensimmäinen välietappi
Näpäyttämällä tätä toimintonäppäintä lisäät karttamarkerin sijaintiin ruudun keskellä.
@@ -2332,10 +2331,10 @@ Jos pidät OsmAndista ja OSMsta ja haluat tukea niitä, on tämä täydellinen t
Näytä/piilota rinnevarjostus
Vie profiili
OsmAnd profiili: %1$s
- Profiili \'%1$s\' on jo olemassa. Korvataanko\?
- Profiilin tuonti
+ \'%1$s\' on jo olemassa. Korvataanko\?
+ Tuo profiili
%1$s tuontivirhe: %2$s
- %1$s tuotu onnistuneesti.
+ %1$s tuotu.
Valkoinen
Vaihda %1$s ja %2$s
Lähtöpiste
@@ -2421,7 +2420,7 @@ Jos pidät OsmAndista ja OSMsta ja haluat tukea niitä, on tämä täydellinen t
Uudistuu kuukausittain
Uusitaan vuosittain
Maksuaika:
- Lahjoitukset auttavat rahoittamaan OpenStreetMap-kartografiaa.
+ Lahjoitukset auttavat rahoittamaan OSM-kartografiaa.
Käynnistä
Vuorokaudenaika
milliradiaanit
@@ -2444,7 +2443,7 @@ Jos pidät OsmAndista ja OSMsta ja haluat tukea niitä, on tämä täydellinen t
Auto, kuorma-auto, moottoripyörä
Maastopyörä, mopo, hevonen
Kävely, vaellus, juokseminen
- Kaikki julkisen liikenteen tyypit
+ Julkisen liikenteen tyypit
Laiva, soutu, purjehdus
Lentokone, riippuliito
Suora viiva
@@ -2469,7 +2468,7 @@ Jos pidät OsmAndista ja OSMsta ja haluat tukea niitä, on tämä täydellinen t
Leveysraja
Voit käyttää tätä muutosta kaikkiin profiileihin tai vain valittuna olevaan profiiliin.
Profiilia ei voitu viedä.
- Jos haluat tuoda profiilin, valitse sen tiedosto laitteella ja avaa se OsmAnd-sovelluksella.
+ Lisää profiili avaamalla sen tiedosto OsmAnd-sovelluksella.
Näytä ja hallitse OSM KP:ta/laitteesi tietokannassa olevia huomautuksia.
mph
Kirjoita löytääksesi KP:n
@@ -2501,4 +2500,32 @@ Jos pidät OsmAndista ja OSMsta ja haluat tukea niitä, on tämä täydellinen t
Uusi laajennus lisätty
Yhdistä segmentit
Lisää GPX-tiedostoon
+ %1$s / kuukausi
+ %1$.2f %2$s / kuukausi
+ Kuukausi
+ Kuukaudet
+ Kolme kuukautta
+ Ilmainen
+ Paksu
+ Kuvake, väri ja nimi
+ Valitse kuvake, väri ja nimi
+ Käyttäjänimi ja salasana
+ Saatavilla
+ Näytä vain yöllä
+ %1$s/%2$s
+ Auringonlasku klo %1$s
+ Auringonnousu klo %1$s
+ Tyhjennä tallennetut tiedot
+ Kopioi koordinaatit
+ Avaa asetukset
+ Valikko
+ Reititys
+ Kulma: %s°
+ Kulma
+ Valmistellaan
+ KP-tyypit
+ Pikatoiminnot
+ Profiilit
+ Korvaa kaikki
+ Pidä molemmat
\ No newline at end of file
diff --git a/OsmAnd/res/values-he/strings.xml b/OsmAnd/res/values-he/strings.xml
index 1f8a84b260..deb1f12168 100644
--- a/OsmAnd/res/values-he/strings.xml
+++ b/OsmAnd/res/values-he/strings.xml
@@ -3503,4 +3503,6 @@
לכלול נתונים נוספים
ניתן לבחור נתונים נוספים לייצוא יחד עם הפרופיל.
סגנון העיבוד
+ חלק מהפריטים קיימים
+ נא לבחור את הנתונים לייבוא.
\ No newline at end of file
diff --git a/OsmAnd/res/values-hr/strings.xml b/OsmAnd/res/values-hr/strings.xml
index 95395776cc..f388d5da82 100644
--- a/OsmAnd/res/values-hr/strings.xml
+++ b/OsmAnd/res/values-hr/strings.xml
@@ -1411,4 +1411,24 @@
Premjesti karte
Nemoj premjestiti
Tražim GPS
+ Izravno do točke
+ Navedite naziv profila
+ Otvaranje postavki
+ Dodatak onemogućen
+ izbornik
+ %1$s — %2$s — %3$s
+ Onemogući ponovni izračun
+ Prilagođeni profil
+ Kut: %s°
+ Kut
+ Priprema
+ Ništa nije odabrano
+ Brze akcije
+ Profili
+ Navedene %1$s, već postoje u OsmAnd.
+ Trenutne stavke bit će zamijenjene stavkama iz datoteke
+ Zamijeni sve
+ Zadrzi oboje
+ Neke stavke već postoje
+ Odaberite podatke koje želite uvesti.
\ No newline at end of file
diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml
index 142e226f56..3aaad4cfaf 100644
--- a/OsmAnd/res/values-it/strings.xml
+++ b/OsmAnd/res/values-it/strings.xml
@@ -1313,7 +1313,7 @@ Memoria in proporzione %4$s MB (limite di Android %5$s MB, Dalvik %6$s MB).Accendi lo schermo (se spento) all\'approssimarsi di una svolta.
%1$s necessita di questa autorizzazione per spegnere lo schermo per la funzionalità di risparmio energetico.
Coordinate
- Schermata iniziale
+ Casa
Ci sono aggiornamenti per %1$s mappe
Cerca
Nessuna alternativa trovata
@@ -2896,7 +2896,7 @@ Rappresenta l\'area: %1$s x %2$s
Stai utilizzando la mappa {0} che è sviluppata da OsmAnd. Vuoi lanciare la versione completa di OsmAnd\?
Lanciare OsmAnd\?
Percorsi precedenti
- Aggiungi home
+ Aggiungi casa
Svolta per svolta
Tipi di strade
Mostra di più
diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml
index 08991ed6fc..d81e2d307a 100644
--- a/OsmAnd/res/values-ru/strings.xml
+++ b/OsmAnd/res/values-ru/strings.xml
@@ -3435,7 +3435,7 @@
Очистить записанные данные
• Профили: теперь вы можете изменить порядок, установить значок для карты, изменить все настройки для базовых профилей и вернуть их к настройкам по умолчанию
\n
-\n• Добавлен номер выхода в навигации
+\n• Добавлен номер съезда в навигации
\n
\n• Переработаны настройки плагина
\n
diff --git a/OsmAnd/res/values-sk/phrases.xml b/OsmAnd/res/values-sk/phrases.xml
index e3993693d0..81a30ff0fb 100644
--- a/OsmAnd/res/values-sk/phrases.xml
+++ b/OsmAnd/res/values-sk/phrases.xml
@@ -3542,4 +3542,14 @@
Bowlingové centrum
Číslo zjazdovky
Výška poplatku
+ Horúci prameň
+ Hammam
+ Termálny
+ Rieka
+ Jazero
+ Kúpeľ pre nohy
+ Áno
+ Nie
+ Poľovnícka základňa
+ Potápačské centrum
\ No newline at end of file
diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml
index 52a9a5adad..cd0c7d5de6 100644
--- a/OsmAnd/res/values-sk/strings.xml
+++ b/OsmAnd/res/values-sk/strings.xml
@@ -34,11 +34,11 @@
Pokročilý režim…
Prichytiť pozíciu k cestám počas navigácie.
Prichytiť k ceste
- Diaľniciam
+ Žiadne diaľnice
Konfigurovať obrazovku
Jazdné pruhy
- Nespevneným cestám
- Trajektom
+ Žiadne nespevnené cesty
+ Žiadne trajekty
Vyhnúť sa…
Zobraziť varovania…
Nastaviť dopravné varovania (rýchlostné obmedzenia, značky stop, spomaľovače, tunely), rýchlostné radary a jazdné pruhy.
@@ -52,7 +52,7 @@
Názov ulice
Konfigurácia
Kde som
- Zámok obrazovky
+ Zámok
Kompas
Znovunastaviť štandardné
Parkovanie
@@ -65,7 +65,7 @@
Nasled. odbočka (malá)
Druhá nasled. odbočka
Navigačná mini mapa
- Zamknúť obrazovku
+ Zámok
Obrazovka je uzamknutá
Nastaviť prebúdzací interval:
Povoľte zásuvný modul \"Online mapy\", aby bolo možné vybrať rozličné mapové zdroje
@@ -109,21 +109,21 @@
Priblížiť
Priblíženie je
severne
- severo-severo-východne
- severo-východne
- východo-severo-východne
+ severoseverovýchodne
+ severovýchodne
+ východoseverovýchodne
východne
- východo-juho-východne
- juho-východne
- juho-juho-východne
+ východojuhovýchodne
+ juhovýchodne
+ juhojuhovýchodne
južne
- juho-juho-západne
- juho-západne
- západo-juho-západne
+ juhojuhozápadne
+ juhozápadne
+ západojuhozápadne
západne
- západo-severo-západne
- severo-západne
- severo-severo-západne
+ západoseverozápadne
+ severozápadne
+ severoseverozápadne
dopredu
dopredu vpravo
doprava
@@ -157,7 +157,7 @@
Odosielanie…
{0} POI/poznámok bolo nahratých
Nahrať všetko
- Nahrať úpravu na OSM
+ Nahrať úpravu do OSM
Vymazať úpravu
Asynchrónne upravovanie OSM:
OSM POI/poznámky uložené v zariadení
@@ -215,11 +215,11 @@
Veľkomesto
Vypnúť simuláciu
Začať simuláciu
- Súbor nemôže byť premenovaný.
+ Nepodarilo sa premenovať súbor.
Súbor s týmto názvom už existuje.
GPX trasa
- Boli nájdené nejaké kategórie POI vyhovujúce požiadavke:
- Miestne údaje na hľadanie POI nie sú dostupné.
+ Boli nájdené viaceré súvisiace kategórie POI.
+ Stiahnite offline údaje pre hľadanie POI.
Hľadať podľa názvu
Súbor POI údajov "%1$s" je zbytočný a môže byť vymazaný.
Miestny súbor na udržiavanie POI zmien sa nenašiel a nemôže byť vytvorený.
@@ -297,7 +297,7 @@
Priehľadnosť prekrývacej mapy
Upraviť priehľadnosť základnej mapy.
Priehľadnosť mapy
- Upravte priehľadnosť (0 - priehľadný, 255 - nepriehľadný)
+ Zadajte priehľadnosť (0 - priehľadný, 255 - nepriehľadný)
Podkladová mapa…
Podkladová mapa
Vybrať podkladovú mapu
@@ -384,7 +384,7 @@
Nainštalovať verziu
Aplikácia pre stav GPS nie je nainštalovaná. Nájsť ju v obchode?
Hlasové navigovanie nie je dostupné, prosím choďte do \'Nastavenia\' → \'Navigačné nastavenia\', zvoľte profil → \'Hlasové povely\' a zvoľte alebo stiahnite balík hlasových povelov.
- Hlasové údaje nie sú určené
+ Zvoľte balík hlasových údajov
Denný režim
Nočný režim
Východ/Západ slnka
@@ -404,7 +404,7 @@
Zapnite pre výpočet najrýchlejšej trasy alebo vypnite pre ekonomickú trasu.
Pri priblížení {0} sa stiahne {1} dlaždíc ({2} Mb )
Stiahnuť mapu
- Vybrať max. priblíženie viditeľnej oblasti na načítanie
+ Maximálne priblíženie na prednačítanie
Táto mapa sa nedá stiahnuť
Postupné vykresľovanie
Použiť postupné vykresľovanie namiesto celoobrazového.
@@ -421,7 +421,7 @@
sem zadajte čo chcete nájsť
Mapa s vysokým rozlíšením
Nerozťahovať (a nerozmazať) mapové dlaždice na obrazovkách s vysokou hustotou bodov.
- Umiestnenie zatiaľ nenájdené
+ Umiestnenie zatiaľ nenájdené.
Hľadať hromadnú dopravu
Hľadá sa preprava (bez cieľa):
Hľadá sa preprava ({0} ako cieľ):
@@ -487,7 +487,7 @@
Inicializácia hlasových údajov…
Nepodporovaná verzia hlasových údajov
Vybrané hlasové údaje sú poškodené
- Aktuálne hlasové údaje nie sú dostupné
+ Zvolený balík hlasových údajov nie je dostupný
Pamäťová karta nie je prístupná.
\nNebudete môcť vidieť mapu alebo niečo nájsť.
Pamäťová karta je iba na čítanie.
@@ -568,7 +568,7 @@
Zobraziť trasu
Spustiť pokyny
Výber režimu dopravy (voliteľné):
- Prosím, najskôr zvoľte cieľ
+ Prosím najprv zadajte cieľ
Pokyny
Otváracie hodiny
Otvára sa zmenový súbor…
@@ -588,9 +588,9 @@
Nepodarilo sa vypočítať trasu.
Vypočítaná trasa je prázdna.
Vypočítaná nová cesta, vzdialenosť
- Dorazili ste do cieľa
+ Dorazili ste do cieľa.
Neplatné súradnice
- Ísť späť na OsmAnd mapu
+ Ísť späť na mapu
Načítavajú sa údaje…
Načítavajú sa miestne údaje…
Predošlé spustenie aplikácie malo kritickú chybu. Záznamový súbor je v {0}. Prosím, nahláste problém a priložte záznamový súbor.
@@ -602,7 +602,7 @@
Určiť nastavenia Openstreetmap.org (OSM) potrebné pre prispievanie do OSM.
Vybrať jazyk, stiahnutie/znovu načítanie údajov.
Údaje
- OSM upravovanie
+ Upravovanie OpenStreetMap
Priblíženie mapy podľa vašej rýchlosti (keď je mapa synchronizovaná s aktuálnou polohou).
Automatické priblíženie mapy
Ďalšie nastavenia
@@ -659,7 +659,7 @@
Zemepisná šírka a dĺžka vo vybranom formáte (D - stupne, M - minúty, S - sekundy)
Zem. šírka
Zem. dĺžka
- Zvoľte adresu
+ Adresa
Oblasť
Mesto
Ulica
@@ -698,17 +698,17 @@
Uložiť
Filter
Uložiť ako
- Vymazať vybraný filter?
- Filter %1$s bol zmazaný
- Filter %1$s bol vytvorený
+ Vymazať tento filter\?
+ Filter \'%1$s\' bol zmazaný
+ Filter \'%1$s\' bol vytvorený
Východzí bod nebol zatiaľ zistený.
Zrušiť sťahovanie\?
Základná potrebná pre základné funkcie aplikácie bola zaradená na stiahnutie.
Názov
Kategória
- DDD.DD
- DDD MM.MM
- DDD MM SS.SS
+ DDD.DDDDD
+ DDD MM.MMM
+ DDD MM SS.S
OsmAnd offline navigácia je dočasne nedostupná.
Ľavostranná premávka
Pre krajiny, kde sa jazdí po ľavej strane cesty.
@@ -756,14 +756,14 @@
Parkovacie miesto
Označiť ako parkovacie miesto
Odstrániť parkovaciu značku
- Počiatočný bod je príliš ďaleko od najbližšej cesty.
+ Východzí bod je príliš ďaleko od najbližšej cesty.
Zdieľané umiestnenie
Pridelená pamäť %1$s MB (Android limit %2$s MB, Dalvik %3$s MB).
Pridelená pamäť
Celková natívna pamäť pridelená aplikácii %1$s MB (Dalvik %2$s MB, iné %3$s MB).
\n Proporčná pamäť %4$s MB (Limit Androidu %5$s MB, Dalvik %6$s MB).
Celková natívna pamäť
- Vybrať zrýchlenie animovania trasy
+ Rýchlosť animovania trasy:
Hodín
Minút
Automobil je zaparkovaný na
@@ -775,16 +775,16 @@
Dopravné varovania
Žiadne spoplatnené cesty
Stlačte ikonu zámku na odomknutie
- Odomknúť obrazovku
+ Odomknúť
e-mail
Vytvoriť POI filter
- Výber režimu prepravy
+ Režim prepravy:
Východ slnka: %1$s
\nZápad slnka: %2$s
Info o dni/noci
Atribúty vykresľovania
Štýl vykresľovania
- OsmAnd je open source navigácia s offline aj online mapami
+ Mobilné zobrazovanie celosvetových máp a navigácia pre offline aj online mapy OSM
OsmAnd je open source navigácia s offline aj online mapami
Zobraziť od úrovne priblíženia (vyžaduje dátový súbor vrstevníc):
OsmAnd (OSM Automatizované navigačné pokyny)
@@ -879,7 +879,7 @@
Zaznamenať zvukovú poznámku
Zaznamenať video poznámku
Vrstva s poznámkami
- Nahrávanie nemôže byť prehrané
+ Nepodarilo sa prehrať nahrávku.
Odstrániť záznam
Prehrať
Záznam %1$s %2$s %3$s
@@ -920,7 +920,7 @@
Uprednostniť diaľnice.
označené
neoznačené
- Vybrať pri požiadaní
+ Pri požiadaní\?
Čas príchodu
Výpočet presnej trasy bez závad. Zatiaľ však obmedzený na menšiu vzdialenosť a je pomalší.
Informácie o GPS
@@ -934,7 +934,7 @@
Upravte vzhľad aplikácie.
Téma aplikácie
Voľby zjednodušeného prístupu
- Vybrať adresu
+ Zadať adresu
Vybrať Obľúbený bod
OSM úpravy
Nie je pripojenie na Wi-Fi. Použiť aktuálne pripojenie na Internet pre sťahovanie?
@@ -961,7 +961,7 @@
Hľadať ulicu v susednom meste
Nepodarilo sa zálohovať zmeny OSM.
Zálohovať ako OSM zmenu
- Najskôr vyberte mesto alebo ulicu
+ Najskôr zadajte mesto alebo ulicu
Zmenový súbor pre OSM bol vygenerovaný %1$s
Určiť ako cieľ
Cieľ %1$s
@@ -1077,7 +1077,7 @@
Hmotnostný limit
Zadajte hmotnosť vozidla, ktorá musí byť povolená na cestách.
Vybrať GPX…
- Vybrať cieľ
+ Zadať cieľ
Predvoľby trasy
Informácie trasy
Pridať ako ďalší cieľ
@@ -2892,7 +2892,7 @@ Zodpovedá oblasti: %1$s x %2$s
Pridať Domov
Pridať Prácu
Práca
- Najprv pridajte cieľ
+ Prosím najprv zadajte cieľ
Vymeniť
Zobraziť viac
Zobrazené stopy
diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml
index aa64c993cc..ae44b9b2be 100644
--- a/OsmAnd/res/values-zh-rTW/strings.xml
+++ b/OsmAnd/res/values-zh-rTW/strings.xml
@@ -3553,4 +3553,5 @@
\n選取動作。
一些項目已存在
選取要匯入的資料。
+ 算繪樣式
\ No newline at end of file
diff --git a/OsmAnd/res/values/phrases.xml b/OsmAnd/res/values/phrases.xml
index d245fcaa83..9377fa8e94 100644
--- a/OsmAnd/res/values/phrases.xml
+++ b/OsmAnd/res/values/phrases.xml
@@ -131,6 +131,8 @@
Open air
Type
Status
+ SMS
+ Video
Store
@@ -876,8 +878,8 @@
Internet access: service
Internet access: yes
Internet access: no
- Internet access - fee charged
- Internet access - no fee
+ Internet access: fee charged
+ Internet access: no fee
Monastery
@@ -4191,4 +4193,17 @@
Scuba diving centre
-
+ Yes
+ No
+ Booth
+ Booth type
+ Yes
+ No
+
+ Signal to find the pole
+ Only when walking is allowed
+ Contrasted
+ Primitive
+ Incorrect
+
+
\ No newline at end of file
diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml
index 2b102f4e55..9714efc684 100644
--- a/OsmAnd/res/values/strings.xml
+++ b/OsmAnd/res/values/strings.xml
@@ -18,6 +18,7 @@
Quick action
Import complete
All data from the %1$s is imported, you can use buttons below to open needed part of the application to manage it.
+ Import rendering file
Custom profile
Angle: %s°
Angle
diff --git a/OsmAnd/src/net/osmand/plus/AppInitializer.java b/OsmAnd/src/net/osmand/plus/AppInitializer.java
index ad022d3051..9d609b2bb7 100644
--- a/OsmAnd/src/net/osmand/plus/AppInitializer.java
+++ b/OsmAnd/src/net/osmand/plus/AppInitializer.java
@@ -617,7 +617,7 @@ public class AppInitializer implements IProgress {
File[] fl = routingFolder.listFiles();
if (fl != null && fl.length > 0) {
for (File f : fl) {
- if (f.isFile() && f.getName().endsWith(IndexConstants.ROUTING_FILE_EXT) && f.canRead()) {
+ if (f.isFile() && f.getName().endsWith(IndexConstants.ROUTING_AND_RENDERING_FILE_EXT) && f.canRead()) {
try {
String fileName = f.getName();
RoutingConfiguration.Builder builder = new RoutingConfiguration.Builder(defaultAttributes);
diff --git a/OsmAnd/src/net/osmand/plus/GpxSelectionHelper.java b/OsmAnd/src/net/osmand/plus/GpxSelectionHelper.java
index 59d100e619..98e58756d5 100644
--- a/OsmAnd/src/net/osmand/plus/GpxSelectionHelper.java
+++ b/OsmAnd/src/net/osmand/plus/GpxSelectionHelper.java
@@ -35,14 +35,16 @@ import org.json.JSONObject;
import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashSet;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.Set;
public class GpxSelectionHelper {
- private static final String CURRENT_TRACK = "currentTrack";
+ public static final String CURRENT_TRACK = "currentTrack";
private static final String FILE = "file";
private static final String BACKUP = "backup";
private static final String BACKUPMODIFIEDTIME = "backupTime";
@@ -55,7 +57,7 @@ public class GpxSelectionHelper {
private Map selectedGpxFilesBackUp = new java.util.HashMap<>();
private SavingTrackHelper savingTrackHelper;
private final static Log LOG = PlatformUtil.getLog(GpxSelectionHelper.class);
-
+ private SelectGpxTask selectGpxTask;
public GpxSelectionHelper(OsmandApplication osmandApplication, SavingTrackHelper trackHelper) {
this.app = osmandApplication;
@@ -594,8 +596,10 @@ public class GpxSelectionHelper {
assert gpx != null;
sf = getSelectedFileByPath(gpx.path);
displayed = sf != null;
- if (show && sf == null) {
- sf = new SelectedGpxFile();
+ if (show) {
+ if (sf == null) {
+ sf = new SelectedGpxFile();
+ }
if (dataItem != null) {
if (dataItem.getColor() != 0) {
gpx.setColor(dataItem.getColor());
@@ -607,14 +611,10 @@ public class GpxSelectionHelper {
sf.selectedByUser = selectedByUser;
}
}
- if (displayed != show) {
- List newSelectedGPXFiles = new ArrayList<>(selectedGPXFiles);
- if (show) {
- newSelectedGPXFiles.add(sf);
- } else {
- newSelectedGPXFiles.remove(sf);
+ if (sf != null && sf.isLoaded()) {
+ if (displayed != show) {
+ addRemoveSelected(show, sf);
}
- selectedGPXFiles = newSelectedGPXFiles;
}
if (syncGroup) {
syncGpxWithMarkers(gpx);
@@ -625,6 +625,18 @@ public class GpxSelectionHelper {
return sf;
}
+ private void addRemoveSelected(boolean show, SelectedGpxFile sf) {
+ List newSelectedGPXFiles = new ArrayList<>(selectedGPXFiles);
+ if (show) {
+ if (!newSelectedGPXFiles.contains(sf)) {
+ newSelectedGPXFiles.add(sf);
+ }
+ } else {
+ newSelectedGPXFiles.remove(sf);
+ }
+ selectedGPXFiles = newSelectedGPXFiles;
+ }
+
public SelectedGpxFile selectGpxFile(GPXFile gpx, boolean show, boolean notShowNavigationDialog) {
return selectGpxFile(gpx, show, notShowNavigationDialog, true, true, true);
}
@@ -699,6 +711,10 @@ public class GpxSelectionHelper {
processPoints(app);
}
+ public boolean isLoaded() {
+ return gpxFile.modifiedTime != -1;
+ }
+
public GPXTrackAnalysis getTrackAnalysis(OsmandApplication app) {
if (modifiedTime != gpxFile.modifiedTime) {
update(app);
@@ -953,4 +969,97 @@ public class GpxSelectionHelper {
return group != null && group.isGeneralTrack();
}
}
+
+ public void runSelection(Map selectedItems, SelectGpxTaskListener gpxTaskListener) {
+ if (selectGpxTask != null && (selectGpxTask.getStatus() == AsyncTask.Status.RUNNING)) {
+ selectGpxTask.cancel(false);
+ }
+ selectGpxTask = new SelectGpxTask(selectedItems, gpxTaskListener);
+ selectGpxTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+ }
+
+ public interface SelectGpxTaskListener {
+
+ void gpxSelectionInProgress();
+
+ void gpxSelectionStarted();
+
+ void gpxSelectionFinished();
+
+ }
+
+ public class SelectGpxTask extends AsyncTask {
+
+ private Set originalSelectedItems = new HashSet<>();
+ private Map selectedItems;
+ private SelectGpxTaskListener gpxTaskListener;
+
+ SelectGpxTask(Map selectedItems, SelectGpxTaskListener gpxTaskListener) {
+ this.selectedItems = selectedItems;
+ this.gpxTaskListener = gpxTaskListener;
+ }
+
+ @Override
+ protected String doInBackground(Void... params) {
+ for (GPXFile gpxFile : originalSelectedItems) {
+ if (isCancelled()) {
+ break;
+ }
+ if (!gpxFile.showCurrentTrack) {
+ gpxFile = GPXUtilities.loadGPXFile(new File(gpxFile.path));
+ }
+ selectGpxFile(gpxFile, true, false);
+ publishProgress();
+ }
+ return "";
+ }
+
+ @Override
+ protected void onProgressUpdate(Void... values) {
+ gpxTaskListener.gpxSelectionInProgress();
+ }
+
+ @Override
+ protected void onPreExecute() {
+ collectSelectedItems();
+ gpxTaskListener.gpxSelectionStarted();
+ }
+
+ private void collectSelectedItems() {
+ for (String filePath : selectedItems.keySet()) {
+ SelectedGpxFile sf;
+ if (!filePath.equals(CURRENT_TRACK)) {
+ sf = getSelectedFileByPath(filePath);
+ if (sf == null) {
+ sf = new SelectedGpxFile();
+ sf.setGpxFile(new GPXFile(null), app);
+ }
+ sf.getGpxFile().path = filePath;
+ } else {
+ sf = getSelectedCurrentRecordingTrack();
+ if (sf == null) {
+ sf = savingTrackHelper.getCurrentTrack();
+ }
+ }
+ boolean visible = false;
+ if (selectedItems.get(filePath) != null) {
+ visible = selectedItems.get(filePath);
+ }
+ if (visible) {
+ if (!sf.isShowCurrentTrack()) {
+ sf.getGpxFile().modifiedTime = -1;
+ }
+ originalSelectedItems.add(sf.getGpxFile());
+ }
+ addRemoveSelected(visible, sf);
+ }
+ }
+
+ @Override
+ protected void onPostExecute(String result) {
+ if (gpxTaskListener != null) {
+ gpxTaskListener.gpxSelectionFinished();
+ }
+ }
+ }
}
diff --git a/OsmAnd/src/net/osmand/plus/OsmandApplication.java b/OsmAnd/src/net/osmand/plus/OsmandApplication.java
index b71dec40ec..361f05dc7f 100644
--- a/OsmAnd/src/net/osmand/plus/OsmandApplication.java
+++ b/OsmAnd/src/net/osmand/plus/OsmandApplication.java
@@ -90,7 +90,7 @@ import java.util.concurrent.ConcurrentHashMap;
import btools.routingapp.BRouterServiceConnection;
import btools.routingapp.IBRouterService;
-import static net.osmand.IndexConstants.ROUTING_FILE_EXT;
+import static net.osmand.IndexConstants.ROUTING_AND_RENDERING_FILE_EXT;
public class OsmandApplication extends MultiDexApplication {
public static final String EXCEPTION_PATH = "exception.log";
@@ -840,9 +840,9 @@ public class OsmandApplication extends MultiDexApplication {
RoutingConfiguration.Builder builder = null;
String routingProfileKey = mode.getRoutingProfile();
if (!Algorithms.isEmpty(routingProfileKey)) {
- int index = routingProfileKey.indexOf(ROUTING_FILE_EXT);
+ int index = routingProfileKey.indexOf(ROUTING_AND_RENDERING_FILE_EXT);
if (index != -1) {
- String configKey = routingProfileKey.substring(0, index + ROUTING_FILE_EXT.length());
+ String configKey = routingProfileKey.substring(0, index + ROUTING_AND_RENDERING_FILE_EXT.length());
builder = customRoutingConfigs.get(configKey);
}
}
diff --git a/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java b/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java
index d599458d78..9cb66f91d9 100644
--- a/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java
+++ b/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java
@@ -6,6 +6,7 @@ import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
+import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
@@ -19,7 +20,13 @@ import android.support.v4.app.FragmentManager;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.text.style.ForegroundColorSpan;
+import android.util.TypedValue;
+import android.view.LayoutInflater;
import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.ImageView;
+import android.widget.TextView;
import android.widget.Toast;
import net.osmand.AndroidUtils;
@@ -41,6 +48,7 @@ import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.R;
import net.osmand.plus.SettingsHelper;
import net.osmand.plus.SettingsHelper.SettingsImportListener;
+import net.osmand.plus.UiUtilities;
import net.osmand.plus.activities.ActivityResultListener;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.activities.TrackActivity;
@@ -76,7 +84,7 @@ import java.util.zip.ZipInputStream;
import static android.app.Activity.RESULT_OK;
import static net.osmand.IndexConstants.OSMAND_SETTINGS_FILE_EXT;
-import static net.osmand.IndexConstants.ROUTING_FILE_EXT;
+import static net.osmand.IndexConstants.ROUTING_AND_RENDERING_FILE_EXT;
import static net.osmand.plus.AppInitializer.loadRoutingFiles;
import static net.osmand.plus.myplaces.FavoritesActivity.FAV_TAB;
import static net.osmand.plus.myplaces.FavoritesActivity.GPX_TAB;
@@ -99,7 +107,7 @@ public class ImportHelper {
public enum ImportType {
SETTINGS(IndexConstants.OSMAND_SETTINGS_FILE_EXT),
- ROUTING(ROUTING_FILE_EXT);
+ ROUTING(ROUTING_AND_RENDERING_FILE_EXT);
ImportType(String extension) {
this.extension = extension;
@@ -184,8 +192,8 @@ public class ImportHelper {
handleSqliteTileImport(intentUri, fileName);
} else if (fileName != null && fileName.endsWith(OSMAND_SETTINGS_FILE_EXT)) {
handleOsmAndSettingsImport(intentUri, fileName, extras, true, null);
- } else if (fileName != null && fileName.endsWith(ROUTING_FILE_EXT)) {
- handleRoutingFileImport(intentUri, fileName, null);
+ } else if (fileName != null && fileName.endsWith(ROUTING_AND_RENDERING_FILE_EXT)) {
+ handleXmlFileImport(intentUri, fileName);
} else {
handleFavouritesImport(intentUri, fileName, saveFile, useImportDir, false);
}
@@ -818,6 +826,123 @@ public class ImportHelper {
return !activity.isFinishing();
}
+ private void handleXmlFileImport(final Uri intentUri, final String fileName) {
+ AlertDialog.Builder builder = new AlertDialog.Builder(activity);
+
+ final boolean nightMode;
+ if (activity instanceof MapActivity) {
+ nightMode = app.getDaynightHelper().isNightModeForMapControls();
+ } else {
+ nightMode = !app.getSettings().isLightContent();
+ }
+ final LayoutInflater themedInflater = UiUtilities.getInflater(activity, nightMode);
+
+ View dialogTitle = themedInflater.inflate(R.layout.bottom_sheet_item_simple, null);
+ dialogTitle.findViewById(R.id.icon).setVisibility(View.GONE);
+ TextView tvTitle = dialogTitle.findViewById(R.id.title);
+ tvTitle.setText(R.string.import_from_file);
+ int textSize = (int) app.getResources().getDimension(R.dimen.dialog_header_text_size);
+ tvTitle.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize);
+ builder.setCustomTitle(dialogTitle);
+
+ String[] strings = new String[2];
+ strings[0] = app.getString(R.string.import_routing_file);
+ strings[1] = app.getString(R.string.import_rendering_file);
+
+ final int[] icons = new int[2];
+ icons[0] = R.drawable.ic_action_gdirections_dark;
+ icons[1] = R.drawable.ic_map;
+
+ ArrayAdapter singleChoiceAdapter = new ArrayAdapter(activity, R.layout.bottom_sheet_item_simple, R.id.title, strings) {
+ @NonNull
+ @Override
+ public View getView(int position, View convertView, @NonNull ViewGroup parent) {
+ View v = convertView;
+ if (v == null) {
+ v = themedInflater.inflate(R.layout.bottom_sheet_item_simple, parent, false);
+ }
+ int activeColor = nightMode ? R.color.active_color_primary_dark : R.color.active_color_primary_light;
+ Drawable icon = app.getUIUtilities().getIcon(icons[position], activeColor);
+ ((TextView) v.findViewById(R.id.title)).setText(getItem(position));
+ ((ImageView) v.findViewById(R.id.icon)).setImageDrawable(icon);
+ return v;
+ }
+ };
+
+ builder.setAdapter(singleChoiceAdapter, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ if (which == 0) {
+ handleRoutingFileImport(intentUri, fileName, null);
+ } else {
+ handleRenderingFileImport(intentUri, fileName);
+ }
+ }
+ });
+
+ builder.setNegativeButton(R.string.shared_string_cancel, null);
+ AlertDialog dialog = builder.create();
+ dialog.getListView().setDividerHeight(0);
+ dialog.show();
+ }
+
+ @SuppressLint("StaticFieldLeak")
+ private void handleRenderingFileImport(final Uri intentUri, final String fileName) {
+ final AsyncTask renderingImportTask = new AsyncTask() {
+
+ String mFileName;
+ ProgressDialog progress;
+
+ @Override
+ protected void onPreExecute() {
+ progress = ProgressDialog.show(activity, app.getString(R.string.loading_smth, ""), app.getString(R.string.loading_data));
+ mFileName = fileName;
+ }
+
+ @Override
+ protected String doInBackground(Void... voids) {
+ File renderingDir = app.getAppPath(IndexConstants.RENDERERS_DIR);
+ if (!renderingDir.exists()) {
+ renderingDir.mkdirs();
+ }
+ File dest = new File(renderingDir, mFileName);
+ while (dest.exists()) {
+ mFileName = AndroidUtils.createNewFileName(mFileName);
+ dest = new File(renderingDir, mFileName);
+ }
+ return copyFile(app, dest, intentUri, true);
+ }
+
+ @Override
+ protected void onPostExecute(String error) {
+ File renderingDir = app.getAppPath(IndexConstants.RENDERERS_DIR);
+ File file = new File(renderingDir, mFileName);
+ if (error == null && file.exists()) {
+ app.getRendererRegistry().updateExternalRenderers();
+ } else {
+ app.showShortToastMessage(app.getString(R.string.file_import_error, mFileName, error));
+ }
+ if (isActivityNotDestroyed(activity)) {
+ progress.dismiss();
+ }
+ }
+ };
+ if (app.isApplicationInitializing()) {
+ app.getAppInitializer().addListener(new AppInitializer.AppInitializeListener() {
+ @Override
+ public void onProgress(AppInitializer init, AppInitializer.InitEvents event) {
+ }
+
+ @Override
+ public void onFinish(AppInitializer init) {
+ renderingImportTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+ }
+ });
+ } else {
+ renderingImportTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+ }
+ }
+
private void handleResult(final GPXFile result, final String name, final boolean save,
final boolean useImportDir, boolean forceImportFavourites) {
if (result != null) {
diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragment.java
index 649f6d8787..b3b3e5d27f 100644
--- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragment.java
+++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragment.java
@@ -166,11 +166,6 @@ public abstract class PointEditorFragment extends BaseOsmAndFragment {
categoryEdit.setHint(R.string.access_hint_enter_category);
descriptionEdit.setHint(R.string.access_hint_enter_description);
}
-
- if (Build.VERSION.SDK_INT >= 21) {
- AndroidUtils.addStatusBarPadding21v(app, view);
- }
-
return view;
}
@@ -238,6 +233,11 @@ public abstract class PointEditorFragment extends BaseOsmAndFragment {
return R.color.status_bar_color_light;
}
+ @Override
+ protected boolean isFullScreenAllowed() {
+ return false;
+ }
+
private void hideKeyboard() {
FragmentActivity activity = getActivity();
if (activity != null) {
diff --git a/OsmAnd/src/net/osmand/plus/myplaces/AvailableGPXFragment.java b/OsmAnd/src/net/osmand/plus/myplaces/AvailableGPXFragment.java
index 8c0ff7129d..94f20115e7 100644
--- a/OsmAnd/src/net/osmand/plus/myplaces/AvailableGPXFragment.java
+++ b/OsmAnd/src/net/osmand/plus/myplaces/AvailableGPXFragment.java
@@ -69,7 +69,6 @@ import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R;
import net.osmand.plus.UiUtilities;
import net.osmand.plus.activities.MapActivity;
-import net.osmand.plus.activities.OsmandActionBarActivity;
import net.osmand.plus.activities.OsmandBaseExpandableListAdapter;
import net.osmand.plus.activities.SavingTrackHelper;
import net.osmand.plus.activities.TrackActivity;
@@ -87,21 +86,21 @@ import net.osmand.util.Algorithms;
import java.io.File;
import java.text.Collator;
import java.text.DateFormat;
-import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
-import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.regex.Pattern;
+import static net.osmand.plus.GpxSelectionHelper.CURRENT_TRACK;
import static net.osmand.plus.myplaces.FavoritesActivity.GPX_TAB;
import static net.osmand.plus.myplaces.FavoritesActivity.TAB_ID;
@@ -129,6 +128,30 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement
private View footerView;
private boolean importing = false;
private View emptyView;
+ private GpxSelectionHelper.SelectGpxTaskListener gpxTaskListener;
+
+ @Override
+ public void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ gpxTaskListener = new GpxSelectionHelper.SelectGpxTaskListener() {
+ @Override
+ public void gpxSelectionInProgress() {
+ allGpxAdapter.notifyDataSetInvalidated();
+ }
+
+ @Override
+ public void gpxSelectionStarted() {
+ showProgressBar();
+ }
+
+ @Override
+ public void gpxSelectionFinished() {
+ hideProgressBar();
+ allGpxAdapter.refreshSelected();
+ allGpxAdapter.notifyDataSetChanged();
+ }
+ };
+ }
@Override
public void onAttach(Context activity) {
@@ -182,7 +205,6 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement
@Override
public void onResume() {
super.onResume();
-
if (!importing) {
if (asyncLoader == null || asyncLoader.getResult() == null) {
asyncLoader = new LoadGpxTask();
@@ -203,7 +225,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement
public void onPause() {
super.onPause();
updateEnable = false;
- if (operationTask != null && !(operationTask instanceof SelectGpxTask)) {
+ if (operationTask != null) {
operationTask.cancel(true);
}
if (actionMode != null) {
@@ -550,7 +572,9 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement
}
public void showProgressBar() {
- ((FavoritesActivity) getActivity()).setSupportProgressBarIndeterminateVisibility(true);
+ if (getActivity() != null) {
+ ((FavoritesActivity) getActivity()).setSupportProgressBarIndeterminateVisibility(true);
+ }
}
public void hideProgressBar() {
@@ -583,8 +607,8 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement
selectedGroups.clear();
final Set originalSelectedItems = allGpxAdapter.getSelectedGpx();
selectedItems.addAll(originalSelectedItems);
- actionMode = getActionBarActivity().startSupportActionMode(new ActionMode.Callback() {
+ actionMode = getActionBarActivity().startSupportActionMode(new ActionMode.Callback() {
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
@@ -605,19 +629,13 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
- runSelection(false);
+ runSelection(originalSelectedItems);
actionMode.finish();
allGpxAdapter.refreshSelected();
allGpxAdapter.notifyDataSetChanged();
return true;
}
- private void runSelection(boolean showOnMap) {
- operationTask = new SelectGpxTask(showOnMap);
- originalSelectedItems.addAll(selectedItems);
- operationTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, originalSelectedItems.toArray(new GpxInfo[originalSelectedItems.size()]));
- }
-
@Override
public void onDestroyActionMode(ActionMode mode) {
showOnMapMode = false;
@@ -630,6 +648,16 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement
allGpxAdapter.notifyDataSetChanged();
}
+ public void runSelection(Set originalSelectedItems) {
+ HashMap selectedItemsFileNames = new HashMap<>();
+ originalSelectedItems.addAll(selectedItems);
+ for (GpxInfo gpxInfo : originalSelectedItems) {
+ String path = gpxInfo.currentlyRecordingTrack ? CURRENT_TRACK : gpxInfo.file.getAbsolutePath();
+ selectedItemsFileNames.put(path, selectedItems.contains(gpxInfo));
+ }
+ selectedGpxHelper.runSelection(selectedItemsFileNames, gpxTaskListener);
+ }
+
public void openSelectionMode(final int actionResId, int darkIcon, int lightIcon,
final DialogInterface.OnClickListener listener) {
final int actionIconId = !isLightActionBar() ? darkIcon : lightIcon;
@@ -678,7 +706,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage(getString(R.string.local_index_action_do, actionButton.toLowerCase(),
- selectedItems.size()));
+ String.valueOf(selectedItems.size())));
builder.setPositiveButton(actionButton, listener);
builder.setNegativeButton(R.string.shared_string_cancel, null);
builder.show();
@@ -883,7 +911,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement
@Override
protected void onPreExecute() {
- ((OsmandActionBarActivity) getActivity()).setSupportProgressBarIndeterminateVisibility(true);
+ showProgressBar();
listView.setEmptyView(null);
allGpxAdapter.clear();
}
@@ -915,9 +943,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement
protected void onPostExecute(List result) {
this.result = result;
allGpxAdapter.refreshSelected();
- if (getActivity() != null) {
- ((OsmandActionBarActivity) getActivity()).setSupportProgressBarIndeterminateVisibility(false);
- }
+ hideProgressBar();
listView.setEmptyView(emptyView);
if (allGpxAdapter.getGroupCount() > 0 &&
allGpxAdapter.isShowingSelection()) {
@@ -1547,68 +1573,16 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement
@Override
protected void onPreExecute() {
- getActivity().setProgressBarIndeterminateVisibility(true);
+ showProgressBar();
}
@Override
protected void onPostExecute(String result) {
- getActivity().setProgressBarIndeterminateVisibility(false);
+ hideProgressBar();
Toast.makeText(getActivity(), result, Toast.LENGTH_LONG).show();
}
}
- public class SelectGpxTask extends AsyncTask {
-
- private boolean showOnMap;
- private WptPt toShow;
-
- public SelectGpxTask(boolean showOnMap) {
- this.showOnMap = showOnMap;
- }
-
- @Override
- protected String doInBackground(GpxInfo... params) {
- for (GpxInfo info : params) {
- if (!isCancelled()) {
- if (!info.currentlyRecordingTrack) {
- info.setGpx(GPXUtilities.loadGPXFile(info.file));
- }
- publishProgress(info);
- }
- }
- return "";
- }
-
- @Override
- protected void onProgressUpdate(GpxInfo... values) {
- for (GpxInfo g : values) {
- final boolean visible = selectedItems.contains(g);
- selectedGpxHelper.selectGpxFile(g.gpx, visible, false);
- if (visible && toShow == null) {
- toShow = g.gpx.findPointToShow();
- }
- }
- allGpxAdapter.notifyDataSetInvalidated();
- }
-
- @Override
- protected void onPreExecute() {
- getActivity().setProgressBarIndeterminateVisibility(true);
- }
-
- @Override
- protected void onPostExecute(String result) {
- getActivity().setProgressBarIndeterminateVisibility(false);
- allGpxAdapter.refreshSelected();
- allGpxAdapter.notifyDataSetChanged();
- if (showOnMap && toShow != null) {
- getMyApplication().getSettings().setMapLocationToShow(toShow.lat, toShow.lon,
- getMyApplication().getSettings().getLastKnownMapZoom());
- MapActivity.launchMapActivityMoveToTop(getActivity());
- }
- }
- }
-
private class SearchFilter extends Filter {
@Override
@@ -1862,8 +1836,8 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement
private static GPXTrackAnalysis getGpxTrackAnalysis(GpxInfo gpxInfo, OsmandApplication app, @Nullable final GpxInfoViewCallback callback) {
SelectedGpxFile sgpx = getSelectedGpxFile(gpxInfo, app);
GPXTrackAnalysis analysis = null;
- if (sgpx != null) {
- analysis = sgpx.getTrackAnalysis(app);
+ if (sgpx != null && sgpx.isLoaded()) {
+ analysis = sgpx.getTrackAnalysis(app);
} else if (gpxInfo.currentlyRecordingTrack) {
analysis = app.getSavingTrackHelper().getCurrentTrack().getTrackAnalysis(app);
} else if (gpxInfo.file != null) {
diff --git a/OsmAnd/src/net/osmand/plus/osmedit/EditPoiDialogFragment.java b/OsmAnd/src/net/osmand/plus/osmedit/EditPoiDialogFragment.java
index 052fdef553..0fc0e7085b 100644
--- a/OsmAnd/src/net/osmand/plus/osmedit/EditPoiDialogFragment.java
+++ b/OsmAnd/src/net/osmand/plus/osmedit/EditPoiDialogFragment.java
@@ -104,7 +104,7 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
}
private EditPoiData editPoiData;
- private ViewPager viewPager;
+ private EditPoiViewPager viewPager;
private AutoCompleteTextView poiTypeEditText;
private OpenstreetmapUtil mOpenstreetmapUtil;
@@ -153,7 +153,7 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
}
});
- viewPager = (ViewPager) view.findViewById(R.id.viewpager);
+ viewPager = (EditPoiViewPager) view.findViewById(R.id.viewpager);
String basicTitle = getResources().getString(R.string.tab_title_basic);
String extendedTitle = getResources().getString(R.string.tab_title_advanced);
final MyAdapter pagerAdapter = new MyAdapter(getChildFragmentManager(), basicTitle, extendedTitle);
diff --git a/OsmAnd/src/net/osmand/plus/osmedit/EditPoiViewPager.java b/OsmAnd/src/net/osmand/plus/osmedit/EditPoiViewPager.java
new file mode 100644
index 0000000000..908873050a
--- /dev/null
+++ b/OsmAnd/src/net/osmand/plus/osmedit/EditPoiViewPager.java
@@ -0,0 +1,52 @@
+package net.osmand.plus.osmedit;
+
+import android.content.Context;
+import android.support.v4.view.ViewPager;
+import android.util.AttributeSet;
+import android.view.View;
+
+public class EditPoiViewPager extends ViewPager {
+ public EditPoiViewPager(Context context) {
+ super(context);
+ }
+
+ public EditPoiViewPager(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ @Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ int height = 0;
+ View view = null;
+ for (int i = 0; i < getChildCount(); i++) {
+ view = getChildAt(i);
+ view.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
+ int h = view.getMeasuredHeight();
+ if (h > height) height = h;
+ }
+
+ if (height != 0) {
+ heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY);
+ }
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+ setMeasuredDimension(getMeasuredWidth(), measureHeight(heightMeasureSpec, view));
+ }
+
+ private int measureHeight(int measureSpec, View view) {
+ int result = 0;
+ int specMode = MeasureSpec.getMode(measureSpec);
+ int specSize = MeasureSpec.getSize(measureSpec);
+
+ if (specMode == MeasureSpec.EXACTLY) {
+ result = specSize;
+ } else {
+ if (view != null) {
+ result = view.getMeasuredHeight();
+ }
+ if (specMode == MeasureSpec.AT_MOST) {
+ result = Math.min(result, specSize);
+ }
+ }
+ return result;
+ }
+}
diff --git a/OsmAnd/src/net/osmand/plus/quickaction/QuickAction.java b/OsmAnd/src/net/osmand/plus/quickaction/QuickAction.java
index f1245dafb4..44408fae9e 100644
--- a/OsmAnd/src/net/osmand/plus/quickaction/QuickAction.java
+++ b/OsmAnd/src/net/osmand/plus/quickaction/QuickAction.java
@@ -10,6 +10,7 @@ import android.widget.EditText;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.activities.MapActivity;
+import net.osmand.util.Algorithms;
import java.util.HashMap;
import java.util.List;
@@ -24,7 +25,7 @@ public class QuickAction {
protected int type;
protected long id;
- private @StringRes int nameRes;
+ private @StringRes Integer nameRes;
private @DrawableRes int iconRes;
private boolean isActionEditable;
@@ -35,7 +36,7 @@ public class QuickAction {
this.id = System.currentTimeMillis();
}
- protected QuickAction(int type, int nameRes) {
+ protected QuickAction(int type, @StringRes int nameRes) {
this.id = System.currentTimeMillis();
this.nameRes = nameRes;
this.type = type;
@@ -89,7 +90,11 @@ public class QuickAction {
}
public String getName(Context context) {
- return name == null || name.isEmpty() ? nameRes > 0 ? context.getString(nameRes) : "" : name;
+ if (Algorithms.isEmpty(name)) {
+ return nameRes != null ? context.getString(nameRes) : "";
+ } else {
+ return name;
+ }
}
public HashMap getParams() {
diff --git a/OsmAnd/src/net/osmand/plus/render/RendererRegistry.java b/OsmAnd/src/net/osmand/plus/render/RendererRegistry.java
index a5bfc2d7bc..ca8cb00d11 100644
--- a/OsmAnd/src/net/osmand/plus/render/RendererRegistry.java
+++ b/OsmAnd/src/net/osmand/plus/render/RendererRegistry.java
@@ -257,9 +257,9 @@ public class RendererRegistry {
File[] lf = file.listFiles();
if (lf != null) {
for (File f : lf) {
- if (f != null && f.getName().endsWith(IndexConstants.RENDERER_INDEX_EXT)) {
+ if (f != null && f.getName().endsWith(IndexConstants.ROUTING_AND_RENDERING_FILE_EXT)) {
if(!internalRenderers.containsValue(f.getName())) {
- String name = f.getName().substring(0, f.getName().length() - IndexConstants.RENDERER_INDEX_EXT.length());
+ String name = f.getName().substring(0, f.getName().length() - IndexConstants.ROUTING_AND_RENDERING_FILE_EXT.length());
externalRenderers.put(name.replace('_', ' ').replace('-', ' '), f);
}
}
diff --git a/OsmAnd/src/net/osmand/plus/settings/BaseSettingsFragment.java b/OsmAnd/src/net/osmand/plus/settings/BaseSettingsFragment.java
index aa478a2705..d53fb66350 100644
--- a/OsmAnd/src/net/osmand/plus/settings/BaseSettingsFragment.java
+++ b/OsmAnd/src/net/osmand/plus/settings/BaseSettingsFragment.java
@@ -613,7 +613,7 @@ public abstract class BaseSettingsFragment extends PreferenceFragmentCompat impl
@ColorRes
protected int getActiveProfileColorRes() {
- return getSelectedAppMode().getIconColorInfo().getColor(isNightMode());
+ return isProfileDependent() ? getSelectedAppMode().getIconColorInfo().getColor(isNightMode()) : R.color.icon_color_active_light;
}
@ColorRes
diff --git a/OsmAnd/src/net/osmand/plus/settings/GlobalSettingsFragment.java b/OsmAnd/src/net/osmand/plus/settings/GlobalSettingsFragment.java
index 53901052e7..662274dde7 100644
--- a/OsmAnd/src/net/osmand/plus/settings/GlobalSettingsFragment.java
+++ b/OsmAnd/src/net/osmand/plus/settings/GlobalSettingsFragment.java
@@ -122,7 +122,8 @@ public class GlobalSettingsFragment extends BaseSettingsFragment implements Send
}
ListPreferenceEx defaultApplicationMode = (ListPreferenceEx) findPreference(settings.DEFAULT_APPLICATION_MODE.getId());
- defaultApplicationMode.setIcon(getActiveIcon(settings.DEFAULT_APPLICATION_MODE.get().getIconRes()));
+ defaultApplicationMode.setIcon(getIcon(settings.DEFAULT_APPLICATION_MODE.get().getIconRes(),
+ settings.getApplicationMode().getIconColorInfo().getColor(isNightMode())));
defaultApplicationMode.setEntries(entries);
defaultApplicationMode.setEntryValues(entryValues);
}