diff --git a/OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java b/OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java index 5be470ac4d..cf9def40cf 100644 --- a/OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java +++ b/OsmAnd-java/src/main/java/net/osmand/osm/edit/OsmMapUtils.java @@ -87,6 +87,12 @@ public class OsmMapUtils { } public static LatLon getComplexPolyCenter(Collection outer, List> inner) { + if (outer.size() <= 5 && inner == null) { + List sub = new ArrayList<>(outer); + + return getWeightCenterForNodes(sub.subList(0, sub.size()-1)); + } + final List> rings = new ArrayList<>(); List outerRing = new ArrayList<>(); diff --git a/OsmAnd/AndroidManifest.xml b/OsmAnd/AndroidManifest.xml index 95599f2c0e..4b8ed91a87 100644 --- a/OsmAnd/AndroidManifest.xml +++ b/OsmAnd/AndroidManifest.xml @@ -393,6 +393,12 @@ + + + + + + diff --git a/OsmAnd/res/layout/map_context_menu_fragment.xml b/OsmAnd/res/layout/map_context_menu_fragment.xml index 225efaa39b..631a901de4 100644 --- a/OsmAnd/res/layout/map_context_menu_fragment.xml +++ b/OsmAnd/res/layout/map_context_menu_fragment.xml @@ -541,9 +541,7 @@ android:alpha="0"> + android:layout_marginEnd="@dimen/map_button_margin"> @@ -142,7 +142,8 @@ android:layout_gravity="bottom" android:background="@drawable/btn_circle" android:visibility="gone" - tools:src="@drawable/ic_action_remove_dark"/> + tools:src="@drawable/ic_action_remove_dark" + android:contentDescription="@string/snap_to_road" /> %1$s gelöscht Ein Neustart ist erforderlich, um Blitzerdaten vollständig zu löschen. Deinstallieren und neu starten + In einigen Ländern oder Regionen ist die Verwendung von Anwendungen zum Warnen vor Blitzern gesetzlich verboten. +\n +\nEs muss anhand der Gesetzeslage des Landes entschieden werden. +\n +\nDie Wahl %1$s sendet Warnungen und Hinweise zu Blitzern. +\n +\nDie Wahl %2$s löscht alle Daten für Warnungen, Hinweise und POIs im Zusammenhang mit Blitzern, bis OsmAnd komplett neu installiert wird. \ No newline at end of file diff --git a/OsmAnd/res/values-es/phrases.xml b/OsmAnd/res/values-es/phrases.xml index f30d5927ce..5c0238a49b 100644 --- a/OsmAnd/res/values-es/phrases.xml +++ b/OsmAnd/res/values-es/phrases.xml @@ -1986,7 +1986,7 @@ Servicios para refugiados: no Grupo residencial Vida asistida - Alcance + Apoyo Banco de alimentos Refugio Asistencia sanitaria diff --git a/OsmAnd/res/values-fa/strings.xml b/OsmAnd/res/values-fa/strings.xml index d81e115a72..893b1b9a80 100644 --- a/OsmAnd/res/values-fa/strings.xml +++ b/OsmAnd/res/values-fa/strings.xml @@ -186,7 +186,7 @@ انتخاب‌شده انتخاب‌نشده ترجیحِ… - داده‌های صوتی/تصویری + دادهٔ صوتی/تصویری مسیریابی دقیق (آلفا) تصویر %1$s از %2$s کنش پیش‌فرض ابزارک @@ -358,7 +358,7 @@ نما و تنظیمات عمومی برنامه را تنظیم کنید. تنظیمات کلی برنامه نام کاربری OSM شما - برای ارسال داده‌ها به سایت openstreetmap.org لازم است. + برای ارسال داده به سایت openstreetmap.org لازم است. گذرواژهٔ OSM شما غرب-جنوب‌غرب غرب @@ -599,7 +599,7 @@ رد جاری را همین حالا در قالب فایل GPX ذخیره کن. ذخیرهٔ رد جاری بازهٔ زمانی ثبت هنگام ناوبری - مشخص کنید برای ضبط رد در هنگام ناوبری، داده‌ها با چه فاصلهٔ زمانی از هم ثبت شوند + مشخص کنید برای ضبط رد در هنگام ناوبری، فاصلهٔ زمانی ردنگاری چقدر باشد هنگام ناوبری، یک رد GPX به‌صورت خودکار ضبط و در پوشهٔ ردها (tracks) ذخیره می‌شود. تنظیمات لازم برای ارتباط با (OpenStreetMap.org (OSM را مشخص کنید. زبان را مشخص و داده‌ها را دانلود/مجدداً بار کنید. @@ -660,7 +660,7 @@ ایستگاه‌های مسیر ایستگاه‌های حمل‌ونقل عمومی را روی نقشه نشان بده. نشان‌دادن ایستگاه‌های حمل‌ونقل - پوشهٔ ذخیره‌سازی داده‌ها + پوشهٔ ذخیره‌سازی داده عمودی عمودی، افقی یا بر اساس دستگاه. افقی @@ -695,7 +695,7 @@ تنظیمات منبع نقشه تنظیمات نقشهٔ بُرداری چندین دسته‌بندی POI مرتبط پیدا شد. - داده‌های آفلاین را برای جست‌وجوی POIها دانلود کنید. + برای جست‌وجوی POIها دادهٔ آفلاین را دانلود کنید. فایل دادهٔ POI،‏ «%1$s»، زائد است و می‌توانید آن را حذف کنید. ارتقا به OsmAnd+‎ ذخیره به‌صورت فایل GPX جدید @@ -711,9 +711,9 @@ آیا از حذف %1$d علاقه‌مندی و %2$d گروه علاقه‌مندی مطمئن هستید؟ نقشه پایهٔ جهان را دانلود کنید تا نمایی از سراسر جهان در زوم‌های کم داشته باشید. نسخهٔ محلی - بازکردن داده‌های جدید… + گشودن دادهٔ جدید… ناوبری آنلاین به‌طور آفلاین کار نمی‌کند. - داده‌ها وجود ندارد + داده وجود ندارد برعکس‌کردن جهت GPX از مقصد جاری استفاده کن گذر از سرتاسر رد @@ -767,13 +767,13 @@ سایه‌روشن‌ها این افزونه دو لایهٔ منحنی‌های میزان و سایه‌روشن (پستی‌بلندی‌ها) را روی نقشه‌‌های استاندارد OsmAnd نمایش می‌دهد. \nورزشکاران، راه‌پیمایان، کوله‌گردان و همهٔ کسانی که به ساختار پستی‌وبلندی‌های زمین علاقه‌مند هستند از این ویژگی بهره می‌برند. -\nمبنای داده‌های جهانی یعنی بین ۷۰ درجهٔ شمالی و ۷۰ درجهٔ جنوبی اندازه‌گیری‌های SRTM (مأموریت توپوگرافی رادار شاتل) و ASTER (رادیومتر پیشرفتهٔ فضابرد بازتاب و گسیل حرارتی) است. +\nمبنای دادهٔ جهانی یعنی بین ۷۰ درجهٔ شمالی و ۷۰ درجهٔ جنوبی اندازه‌گیری‌های SRTM (مأموریت توپوگرافی رادار شاتل) و ASTER (رادیومتر پیشرفتهٔ فضابرد بازتاب و گسیل حرارتی) است. \n \nاَستِر یک ابزار تصویربرداری است که بر روی ماهوارهٔ Terra نصب است و تِرا ماهوار‌ه‌ای فوق‌پیشرفته برای سامانهٔ دیده‌بانی زمینِ ناساست. \nاَستِر محصول تلاش مشترک ناسا، وزارت اقتصاد، صنعت و تجارت ژاپن و سامانه‌های فضایی ژاپن است. این افزونه دو لایهٔ منحنی‌های میزان و سایه‌روشن (پستی‌بلندی‌ها) را روی نقشه‌‌های استاندارد OsmAnd نمایش می‌دهد. \nورزشکاران، راه‌پیمایان، کوله‌گردان و همهٔ کسانی که به ساختار پستی‌وبلندی‌های زمین علاقه‌مند هستند از این ویژگی بهره می‌برند. -\nمبنای داده‌های جهانی یعنی بین ۷۰ درجهٔ شمالی و ۷۰ درجهٔ جنوبی اندازه‌گیری‌های SRTM (مأموریت توپوگرافی رادار شاتل) و ASTER (رادیومتر پیشرفتهٔ فضابرد بازتاب و گسیل حرارتی) است. +\nمبنای دادهٔ جهانی یعنی بین ۷۰ درجهٔ شمالی و ۷۰ درجهٔ جنوبی اندازه‌گیری‌های SRTM (مأموریت توپوگرافی رادار شاتل) و ASTER (رادیومتر پیشرفتهٔ فضابرد بازتاب و گسیل حرارتی) است. \n \nاَستِر یک ابزار تصویربرداری است که بر روی ماهوارهٔ Terra نصب است و تِرا ماهوار‌ه‌ای فوق‌پیشرفته برای سامانهٔ دیده‌بانی زمینِ ناساست. \nاَستِر محصول تلاش مشترک ناسا، وزارت اقتصاد، صنعت و تجارت ژاپن و سامانه‌های فضایی ژاپن است. @@ -782,10 +782,10 @@ چندضلعی‌ها حالت رندرگیری بهینه‌سازی نقشه برای - از این زوم نمایان شود (نیازمند داده‌های منحنی میزان): + از این زوم نمایان شود (نیازمند دادهٔ منحنی میزان): نشان‌دادن منحنی‌های میزان جزئیات نقشه را افزایش دهید. - داده‌های مسیریابی + دادهٔ مسیریابی گذر از: از: جست‌وجوی حرف‌به‌حرف نام ساختمان‌ها @@ -807,18 +807,18 @@ نقشه‌های آنلاین برای زوم‌های فراتر از این مقدار کاوش نشوند. جست‌وجوی آنلاین با استفاده از OSM Nominatim در حال آپلود… - در حال آپلود داده‌ها… + در حال آپلود داده… پاک‌کردن همه علاقه‌مندی‌ها ساختمان: {0}، {1}، {2} خیابان: {0}، {1} تقاطع: {0} x {1} به {2} شهر: {0} - داده‌های محلی از طریق اینترنت به‌روز شود؟ + دادهٔ محلی از طریق اینترنت به‌روز شود؟ بارکردن داده از سرور ناموفق بود. برای این ناحیه هیچ POIای به‌صورت آفلاین موجود نیست نرم‌افزار ناوبری OsmAnd - داده‌های POI به‌روز شد ({0} مورد بار شد) + دادهٔ نقاط توجه روزآمد شد ({0} مورد بار شد) به‌روزرسانی لیست محلی POI ناموفق بود. خُب حمل‌ونقل @@ -837,7 +837,7 @@ صدا روشن است صدا خاموش است راهنمای گفتاری را برای ناوبری انتخاب کنید. - در حال آماده‌سازی داده‌های گفتاری… + در حال آماده‌سازی دادهٔ گفتاری… این نسخه از دادهٔ گفتاری پشتیبانی نمی‌شود دادهٔ گفتاری انتخاب‌شده خراب است بستهٔ گفتاری انتخاب‌شده موجود نیست @@ -913,22 +913,22 @@ \n \nمسیریابی موقتاْ با سرویس آنلاین CloudMade انجام می‌شود. پوشهٔ موردنظر پیدا نشد. - همهٔ داده‌های آفلاین از نسخهٔ قدیمی، در نسخهٔ جدید پشتیبانی می‌شوند، به‌جز علاقه‌مندی‌ها که باید آن‌ها را از نسخهٔ قدیمی برون‌برد کنید و در نسخهٔ جدید درون‌برد نمایید. + همهٔ دادهٔ آفلاین از نسخهٔ قدیمی، در نسخهٔ جدید پشتیبانی می‌شوند، به‌جز علاقه‌مندی‌ها که باید آن‌ها را از نسخهٔ قدیمی برون‌برد کنید و در نسخهٔ جدید درون‌برد نمایید. ساختِ {0} نصب شد ({1}). km/h قالب دادهٔ «{0}» برای نقشه، ازرده‌خارج است و پشتیبانی نمی‌شود افزودن نقطهٔ بین‌راهی GPX mph - متشکریم که از OsmAnd استفاده می‌کنید. برای استفادهٔ آفلاین، داده‌های منطقه‌ای را از طریق «تنظیمات» ← «مدیریت فایل‌های نقشه» دانلود کنید. سپس می‌توانید نقشه‌ها را ببینید، نشانی‌ها را پیدا کنید، مکان‌ها را جست‌وجو کنید، مسیرهای حمل‌ونقل عمومی را بیابید و... . + متشکریم که از OsmAnd استفاده می‌کنید. برای استفادهٔ آفلاین، دادهٔ منطقه‌ای را از طریق «تنظیمات» ← «مدیریت فایل‌های نقشه» دانلود کنید. سپس می‌توانید نقشه‌ها را ببینید، نشانی‌ها را پیدا کنید، مکان‌ها را جست‌وجو کنید، مسیرهای حمل‌ونقل عمومی را بیابید و... . برای نشان‌دادن ناحیهٔ انتخابی حافظهٔ اجرایی کافی وجود ندارد لایه‌های شب‌نما یادداشت‌ها یا POIهای OSMای ذخیره‌شده روی دستگاه مشاهده و مدیریت POIها یا یادداشت‌های OSMای که روی دستگاه شما قرار دارند. بازهٔ زمانی ردیابی آنلاین را مشخص کنید. بازهٔ زمانی ردیابی آنلاین - برنامهٔ OsmAnd (مخفف OSM Automated Navigation Directions به‌معنی راهنمای خودکار ناوبری بر پایهٔ OSM) یک نرم‌افزار ناوبری متن‌باز است که به گسترهٔ وسیعی از داده‌های جهانی OSM دسترسی دارد. + برنامهٔ OsmAnd (مخفف OSM Automated Navigation Directions به‌معنی راهنمای خودکار ناوبری بر پایهٔ OSM) یک نرم‌افزار ناوبری متن‌باز است که به گسترهٔ وسیعی از دادهٔ جهانی OSM دسترسی دارد. \n -\nتمام داده‌های نقشه (بُرداری یا کاشی) را می‌توانید برای استفادهٔ آفلاین روی کارت حافظه ذخیره کنید. +\nتمام دادهٔ نقشه (بُرداری یا کاشی) را می‌توانید برای استفادهٔ آفلاین روی کارت حافظه ذخیره کنید. \nهمچنین OsmAnd می‌تواند به‌صورت آنلاین و آفلاین مسیریابی کند و با راهنمای گفتاری شما را گام‌به‌گام هدایت کند. \n \n* از ویژگی‌های مهم: @@ -951,9 +951,9 @@ \n* ما فعالانه در حال توسعهٔ OsmAnd هستیم و این پروژه و پیشرفت پیوستهٔ آن نیازمند کمک‌های مالی شماست تا برای توسعه و افزودن قابلیت‌های تازه هزینه کنیم. \n \n* لطفاً OsmAnd+‎ را بخرید یا برای ویژگی‌های تازه و خاص سرمایه‌گذاری کنید. همچنین می‌توانید از طریق سایت https://osmand.net مبلغی هدیه کنید. - برنامهٔ OsmAnd (مخفف OSM Automated Navigation Directions به‌معنی راهنمای خودکار ناوبری بر پایهٔ OSM) یک نرم‌افزار ناوبری متن‌باز است که به گسترهٔ وسیعی از داده‌های جهانی OSM دسترسی دارد. + برنامهٔ OsmAnd (مخفف OSM Automated Navigation Directions به‌معنی راهنمای خودکار ناوبری بر پایهٔ OSM) یک نرم‌افزار ناوبری متن‌باز است که به گسترهٔ وسیعی از دادهٔ جهانی OSM دسترسی دارد. \n -\nتمام داده‌های نقشه (بُرداری یا کاشی) را می‌توانید برای استفادهٔ آفلاین روی کارت حافظه ذخیره کنید. +\nتمام داده‌ٔ نقشه (بُرداری یا کاشی) را می‌توانید برای استفادهٔ آفلاین روی کارت حافظه ذخیره کنید. \nهمچنین OsmAnd می‌تواند به‌صورت آنلاین و آفلاین مسیریابی کند و با راهنمای گفتاری شما را گام‌به‌گام هدایت کند. \n \n‏OsmAnd+‎ نسخهٔ پولی این برنامه است. با خریدن آن از این پروژه حمایت می‌کنید، سرمایه‌ای برای توسعهٔ قابلیت‌های جدید فراهم می‌کنید و آخرین به‌روزرسانی‌ها در اختیارتان قرار می‌گیرد. @@ -980,7 +980,7 @@ \n \nهرکدام از این نقشه‌ها هم به‌عنوان نقشهٔ پایه و هم به‌عنوان لایهٔ رویی یا زیری برای لایهٔ پایه (مثلاً نقشه‌های آفلاین OsmAnd) قابل‌تنظیم هستند. برای اینکه لایهٔ زیری را نمایان‌تر کنید می‌توانید اجزای خاصی را در نقشه‌های بُرداری OsmAnd از طریق منوی «پیکربندی نقشه» مخفی کنید. \n -\nنقشه‌های کاشی‌وار را مستقیماً به‌طور آنلاین دانلود کنید یا همچنین می‌توانید آن‌ها را به‌صورت پایگاه‌دادهٔ SQLite برای استفادهٔ آفلاین آماده کنید و سپس در پوشهٔ داده‌های OsmAnd قرار دهید. نرم‌افزارهای مختلفی برای انجام این کار وجود دارد. +\nنقشه‌های کاشی‌وار را مستقیماً به‌طور آنلاین دانلود کنید یا همچنین می‌توانید آن‌ها را به‌صورت پایگاه‌دادهٔ SQLite برای استفادهٔ آفلاین آماده کنید و سپس در پوشهٔ دادهٔ OsmAnd قرار دهید. نرم‌افزارهای مختلفی برای انجام این کار وجود دارد. این افزونه امکانات قابلیت‌دسترسی (accessibility) در دستگاهتان را مستقیماً در OsmAnd به کار می‌گیرد و تسهیلاتی را در اختیارتان می‌گذارد؛ مانند تنظیم‌کردن سرعت گفتار موتور صوتی، تبدیل متن به گفتار (مثل اعلام موقعیت شما)، پیمایش صفحه به‌کمک صفحهٔ جهتی (D-pad) و استفاده از توپک (trackball) برای تنظیم زوم. با ایجاد یا اصلاح نقاط توجه (POI)، ایجاد یادداشت‌های OSM یا نظردادن روی آن‌ها و بارگذاری فایل‌های GPXای که ضبط کرده‌اید در تکمیل نقشهٔ OSM مشارکت کنید. برای این منظور لازم است نام کاربری و گذرواژهٔ خود را در OsmAnd وارد کنید. OpenStreetMap.org یک پروژهٔ نقشه‌کشی جامعه‌محور، جهانی و در مالکیت عمومی است. گفتاری را انتخاب کنید و با پخش پیام‌ها، آن را امتحان کنید: @@ -1000,7 +1000,7 @@ فایل محلی برای نگهداری تغییرات POI وجود ندارد و قابل‌ایجاد نیست. برای استفاده از فایل‌های جدید نقشه نسخهٔ جدید برنامه را دانلود کنید. ‏Nominatim‏ آنلاین - برای استفاده از نقشه‌های آفلاین، داده‌های «آفلاین» را دانلود کنید. + برای استفاده از نقشه‌های آفلاین، دادهٔ «آفلاین» را دانلود کنید. " \n \nبرای گزینه‌ها طولانی لمس کنید" @@ -1302,7 +1302,7 @@ مسیرهای مترو زبانی که برای نمایش نام‌های روی نقشه می‌پسندید (اگر نام به این زبان موجود نباشد، به‌جایش نام انگلیسی یا محلی نشان داده می‌شود). نام‌های محلی - اگر ضبط GPX روشن باشد داده‌های ردیابی به سرویس اینترنتی مشخص‌شده ارسال می‌شود. + اگر ضبط GPX روشن باشد دادهٔ ردیابی به سرویس اینترنتی مشخص‌شده ارسال می‌شود. ردیابی آنلاین (GPX لازم است) شروع ردیابی آنلاین توقف ردیابی آنلاین @@ -1463,7 +1463,7 @@ غیرفعال برون‌برد پیام‌های گفتاری - هر موردی را لمس کنید تا توضیحات بیشتری ببینید، برای غیرفعال یا پاک‌کردن لمس کنید و نگه دارید. داده‌های فعلی روی دستگاه (%1$s خالی): + هر موردی را لمس کنید تا توضیحات بیشتری ببینید، برای غیرفعال یا پاک‌کردن لمس کنید و نگه دارید. دادهٔ فعلی روی دستگاه (%1$s خالی): حاشیهٔ تاب‌آوری محدودیت سرعت را انتخاب کنید؛ با گذشتن از این مقدار، آوای هشدار پخش می‌شود. نام علاقه‌مندی به %1$s تغییر کرد تا رشتهٔ حاوی شکلک در فایل ذخیره شود. پلاک خانه‌ها @@ -1828,7 +1828,7 @@ دامنهٔ ارتفاع میانگین ارتفاع مسافت کل - استفاده از داده‌های ارتفاعی + استفاده از دادهٔ ارتفاعی فاکتور ارتفاع‌دهی عارضه‌ها (با استفاده از داده‌های SRTM،‏ ASTER و EU-DEM). نمایش نقاط و منحنی‌های میزان عمقی. منحنی‌های میزان عمق دریا @@ -2433,7 +2433,7 @@ با این افزونه اطلاعات جهانی سراشیبی‌های اسکی، مسابقات اسکی صحرایی، مسیرهای اسکی آلپاین، تله‌کابین‌ها و نقاله‌های اسکی کاملاً در اختیارتان است. مسیرها و پیست‌ها بر اساس دشواری رنگ‌بندی شده‌اند که در یک سبک زمستانی ارائه می‌شوند تا نمایی همگون با محیط زمستانی را برایتان ایجاد کند. \n \nبا فعال‌کردن این نما، سبک نقشه به «زمستان و اسکی» تغییر می‌کند که همهٔ خصوصیات زمین را با ظاهر زمستانی نشان می‌دهد. برای غیرفعال‌کردن این نما افزونه را غیرفعال کنید یا اینکه از طریق منو ← پیکربندی نقشه ← سبک نقشه، سبک دلخواهتان را انتخاب کنید. - برنامهٔ OsmAnd (مخفف OSM Automated Navigation Directions به‌معنی راهنمای خودکار ناوبری بر پایهٔ OSM) یک نرم‌افزار نقشه و ناوبری است که به گسترهٔ وسیعی از داده‌های OSM دسترسی دارد. این داده‌های رایگان و جهانی با بالاترین کیفیت ارائه می‌شوند. + برنامهٔ OsmAnd (مخفف OSM Automated Navigation Directions به‌معنی راهنمای خودکار ناوبری بر پایهٔ OSM) یک نرم‌افزار نقشه و ناوبری است که به گسترهٔ وسیعی از دادهٔ OSM دسترسی دارد. این دادهٔ رایگان و جهانی با بالاترین کیفیت ارائه می‌شود. \n \nناوبری دیداری و شنیداری، مشاهدهٔ نقاط توجه (POIها یا Points of interest)، ایجاد و مدیریت ردهای GPX، استفاده از تصویرسازی منحنی‌های میزان و اطلاعات ارتفاع (با استفاده از افزونه)، انتخاب حالت‌های پیاده، دوچرخه، خودرو، امکان ویرایش مکان‌ها و... چیزهایی هستند که تجربهٔ مؤثر و لذت‌بخشی در کار با نقشه را برایتان به ارمغان می‌آورند. ناوبری با GPS @@ -2477,7 +2477,7 @@ برای استفاده از این قابلیت باید حداقل یک نشانه اضافه کنید. جاده فایل GPX از موقعیت‌ها. - برنامهٔ OsmAnd+‎ (مخفف OSM Automated Navigation Directions به‌معنی راهنمای خودکار ناوبری بر پایهٔ OSM) یک نرم‌افزار نقشه و ناوبری است که به گسترهٔ وسیعی از داده‌های OSM دسترسی دارد. این داده‌های رایگان و جهانی با بالاترین کیفیت ارائه می‌شوند. + برنامهٔ OsmAnd+‎ (مخفف OSM Automated Navigation Directions به‌معنی راهنمای خودکار ناوبری بر پایهٔ OSM) یک نرم‌افزار نقشه و ناوبری است که به گسترهٔ وسیعی از دادهٔ OSM دسترسی دارد. این دادهٔ رایگان و جهانی با بالاترین کیفیت ارائه می‌شود. \n \nراهبر دیداری و شنیداری، مشاهدهٔ نقاط توجه (POIها یا Points of interest)، ایجاد و مدیریت ردهای GPX، استفاده از تصویرسازی منحنی‌های میزان و اطلاعات ارتفاع، انتخاب حالت‌های پیاده، دوچرخه، خودرو، امکان ویرایش مکان‌ها و... چیزهایی هستند که تجربهٔ مؤثر و لذت‌بخشی را در کار با نقشه برایتان به ارمغان می‌آورد. \n @@ -2510,8 +2510,8 @@ \n • ناوبری GPS در حالت پیاده مسیرتان را بر اساس راه‌های پیاده محاسبه می‌کند \n • مسیرهای GPX را دانلود کنید و بپیمایید یا اینکه مسیر خودتان را ضبط و هم‌رسانی کنید \n - مشارکت در نقشهٔ باز شهری (OSM) -\n • گزارش مشکل در داده‌ها + مشارکت در OSM +\n • گزارش مشکل داده \n • آپلود ردهای GPX به OSM مستقیماً از طریق برنامه \n • افزودن نقاط توجه (POI) و آپلود مستقیم آن‌ها در نقشه \n @@ -2581,8 +2581,8 @@ \n • قابلیت ضبط سفر و ذخیره‌کردن مسیر در فایل GPX یا فرستادن به سرویس‌های آنلاین \n • قابلیت نمایش سرعت و ارتفاع \n • امکان نمایش منحنی‌های میزان و سایه‌روشن‌ها (با نصب افزونه) - مشارکت مستقیم در نقشهٔ باز شهری (OSM) -\n • گزارش مشکل در داده‌ها + مشارکت مستقیم در OSM +\n • گزارش مشکل داده \n • آپلود ردهای GPX به OSM مستقیماً از طریق برنامه \n • افزودن نقاط توجه (POI) و آپلود مستقیم آن‌ها در نقشه \n • ضبط اختیاری سفر حتی در پس‌زمینه (هنگامی که دستگاه در حالت خواب است) @@ -2691,7 +2691,7 @@ فایل OSC انتخاب قالب فایل برون‌برد در قالب یادداشت‌های OSM،‏ POIها یا هر دو. - همهٔ داده‌ها + همهٔ داده یادداشت‌های OSM تونل تونل‌ها @@ -2767,7 +2767,7 @@ قفل‌گشایی از همهٔ قابلیت‌های OsmAnd برنامهٔ پولی افزونهٔ پولی - داده‌های تازهٔ ویکی‌سفر منتشر شده. به‌روز کنید و لذت ببرید. + دادهٔ تازهٔ ویکی‌سفر منتشر شده است. به‌روز کنید و لذت ببرید. راهنمای مسافرت از ویکی‌سفر را دانلود کنید تا بدون نیاز به اینترنت دربارهٔ مناطق مختلف جهان مطالعه کنید. به‌روزرسانی وجود دارد دانلود فایل @@ -3064,13 +3064,13 @@ لطفاً در گوگل‌پلی دربارهٔ کار ما نظر و امتیاز بدهید. سیاست حریم خصوصی یاری‌مان کنید تا OsmAnd را بهتر کنیم - به OsmAnd اجازه بدهید دربارهٔ نحوهٔ استفاده از برنامه داده‌های ناشناس جمع‌آوری و پردازش کند. دربارهٔ موقعیت شما یا جاهایی که روی نقشه می‌بینید داده‌ای جمع‌آوری نمی‌کنیم. -\n + به OsmAnd اجازه بدهید دربارهٔ نحوهٔ استفاده از برنامه دادهٔ ناشناس جمع‌آوری و پردازش کند. دربارهٔ موقعیت شما یا جاهایی که روی نقشه می‌بینید داده‌ای جمع‌آوری نمی‌کنیم. +\n \nهمواره می‌توانید این تنظیم را از بخش «تنظیمات ← حریم خصوصی و امنیت» تغییر دهید. - چه نوع داده‌هایی را مایل هستید هم‌رسانی کنید: + انتخاب نوع داده‌ای که هم‌رسانی می‌کنید: نقشه‌هایی که دانلود کرده‌اید صفحه‌هایی که دیده‌اید - مشخص کنید OsmAnd مجاز است چه داده‌هایی را هم‌رسانی کند. + مشخص کنید OsmAnd مجاز است کدام داده را هم‌رسانی کند. کمک می‌کند تا محبوبیت نقشه‌های کشوری و منطقه‌ای را بدانیم. کمک می‌کند تا محبوبیت قابلیت‌های OsmAnd را بدانیم. حریم خصوصی و امنیت @@ -3112,7 +3112,7 @@ سرویس دانلود OsmAnd ارغوانی نماد - جمع‌آوری داده‌ها + جمع‌آوری داده حداقل سرعت حداکثر سرعت سرعت پیشفرض @@ -3152,7 +3152,7 @@ یکچرخه اسکوتر اگر %1$s ما را می‌پذیرید «اجازه می‌دهم» را برگزینید - انتخاب داده‌هایی که هم‌رسانی می‌کنید + انتخاب داده‌ای که هم‌رسانی می‌کنید اجازه می‌دهم می‌توانید نسخهٔ اصلاح‌شدهٔ خودتان از فایل routing.xml را در ‎..osmand/routing اضافه کنید با درجه‌بندی قطب‌نما @@ -3311,8 +3311,8 @@ \n%1$s > %2$s مسیر پوشه را وارد کنید پوشه… - مسیر پوشهٔ داده‌های OsmAnd را درج کنید - پوشهٔ داده‌های OsmAnd تغییر کند؟ + مسیر پوشهٔ دادهٔ OsmAnd را بچسبانید + پوشهٔ دادهٔ OsmAnd تغییر کند؟ انتقال به مقصد جدید ذخیره‌گاه داخلی OsmAnd (از دید کاربران و سایر برنامه‌ها پنهان است). تغییر پوشهٔ ذخیره‌سازی @@ -3397,9 +3397,9 @@ پروفایل OsmAnd:‏ %1$s به‌روزرسانی‌های ماهانهٔ نقشه به‌روزرسانی‌های ساعتی نقشه - عبارت جستجوی شما «%1$s» و همچنین مکان شما ارسال خواهد شد. -\n -\nاطلاعات خصوصی جمع‌آوری نمی‌شود. فقط داده‌های جست‌وجو برای بهبود الگوریتم جست‌وجو موردنیاز است. + عبارت جستجوی شما «%1$s» و همچنین مکان شما ارسال خواهد شد. +\n +\nاطلاعات خصوصی جمع‌آوری نمی‌شود. فقط دادهٔ جست‌وجو برای بهبود الگوریتم جست‌وجو موردنیاز است. برون‌برد پروفایل ‏«%1$s» وجود دارد. بازنویسی شود؟ برون‌برد پروفایل ناموفق بود. @@ -3826,13 +3826,13 @@ سویه ‏%1$s حذف شد برای اینکه دادهٔ دوربین سرعت کاملاً حذف شود، یک بار برنامه را ببندید و باز کنید. - ‏POIهای دوربین سرعت + نقاط توجه دوربین سرعت قانونِ برخی کشورها استفاده از نرم‌افزارهای هشداردهندهٔ دوربین سرعت را ممنوع کرده است. \n \nشما باید بر اساس قانون کشور خود تصمیم بگیرید. \n \nباانتخاب %1$s هشدارها و اخطارهای دوربین سرعت را دریافت می‌کنید. \n -\nباانتخاب %2$s تا زمانی که OsmAnd را دوباره نصب کنید، تمام دادهٔ مربوط به دوربین‌های سرعت (هشدارها، اعلان‌ها، نقاط توجه یا POIs) حذف می‌شود. +\nبا انتخاب %2$s تا زمانی که OsmAnd را دوباره نصب کنید، تمام دادهٔ مربوط به دوربین‌های سرعت (هشدارها، اعلان‌ها، نقاط توجه) حذف می‌شود. قانونِ برخی از کشورها استفاده از هشداردهندهٔ دوربین سرعت را ممنوع کرده است. \ No newline at end of file diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index 3879ab1306..c7406818d1 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -67,13 +67,13 @@ Szerkesztés mindig offline módban. Az alkalmazáson belüli POI módosítások nincsenek hatással a letöltött térképre, a változtatásokat tartalmazó fájl ehelyett az eszközre lesz mentve. Feltöltés… - {0} POI/Jegyzet feltöltve + {0} POI/jegyzet feltöltve Összes feltöltése Szerkesztés feltöltése az OSM-re Szerkesztés törlése Aszinkron OSM szerkesztés: - Eszközön tárolt OSM POI-k, Jegyzetek - Az eszköz adatbázisában tárolt OSM POI-k és Jegyzetek megjelenítése, kezelése. + Eszközön tárolt OSM POI-k, jegyzetek + Az eszköz adatbázisában tárolt OSM POI-k és jegyzetek megjelenítése, kezelése. Online útvonalrögzítés sűrűségének megadása. Online útvonalrögzítés sűrűsége A webcímet a következő paraméterszintaxissal kell megadni: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}. @@ -113,13 +113,14 @@ A kijelző és az alkalmazás általános beállításai. Globális beállítások az alkalmazáshoz OSM felhasználóneved - openstreetmap.org felé történő adatküldéshez szükséges. + Az openstreetmap.org felé történő adatküldéshez szükséges. OSM jelszavad Háttérmód Az OsmAnd háttérben fut kikapcsolt kijelzővel. Erre a területre letölthet offline vektoros térképet a Beállításokban (Térképfájlok kezelése), vagy váltson át az Online térképek bővítményre. Nincs elég hely %1$s MB letöltéséhez (szabad %2$s). - Letölt {0} fájlt\? Ehhez {1} MB-ra lesz szükség (a jelenlegi {2} MB-ból). + Letölt {0} fájlt\? +\nEhhez {1} MB-ra lesz szükség (a jelenlegi {2} MB-ból). Átlátszó téma A natív megjelenítő nem támogatott ezen az eszközön. Natív megjelenítő inicializálása… @@ -491,11 +492,11 @@ Offline Online keresés Maximális online nagyítás - Ne töltsön le online térképcsempéket ezen nagyítási szint felett. + Ne töltsön le online térképeket ezen nagyítási szint felett. Teljes távolság %1$s, utazási idő %2$d óra %3$d perc. Online vagy offline útvonaltervező szolgáltatás. Útvonaltervező szolgáltatás - Az adattárolási könyvtár nem érhető el a memóriakártyán! + A tárolási könyvtár nem érhető el a memóriakártyán! Letöltés {0} - {1} ? {0} régióhoz már le van töltve offline adat ({1}). Frissíted ({2})? Cím @@ -669,12 +670,12 @@ \n \nA csempés térképek beszerezhetők internetes forrásokból, vagy előkészíthetők kapcsolat nélküli használathoz (és kézzel átmásolva az OsmAnd adatmappájába) SQLite adatbázisként, amely különféle harmadik féltől származó térkép-előkészítő eszközökkel állítható elő. Megjeleníti a háttérben futó nyomvonalrögzítés és navigáció beállításait, ami periodikusan felébreszti a GPS modult (kikapcsolt képernyőnél). - Ez a bővítmény elérhetővé teszi az eszköz akadálymentesítési lehetőségeit közvetlenül az OsmAnd programban. Ez megkönnyíti például a szövegfelolvasó (TTS) hangok beszédsebességének állítását, az irányító gombok képernyő navigációjának beállítását, egy görgető használatát a nagyítás vezérléséhez, vagy szövegfelolvasó visszajelzés használatát, például a pozíció automatikus bejelentésénél. - Ez a bővítmény beállításokat jelenít meg olyan fejlesztői és hibakeresési szolgáltatásokhoz, mint például útvonaltervezés tesztelése vagy szimulálása, a megjelenítés teljesítménye vagy a hangutasítások. Ezeket a beállításokat fejlesztőknek szánják, és nem szükségesek az átlagos felhasználónak. + Elérhetővé teszi az eszköz akadálymentesítési lehetőségeit közvetlenül az OsmAndban. Ez megkönnyíti például a szövegfelolvasó (TTS) hangok beszédsebességének állítását, az irányító gombok képernyő navigációjának beállítását, egy görgető használatát a nagyítás vezérléséhez, vagy szövegfelolvasó visszajelzés használatát, például a pozíció automatikus bejelentésénél. + Beállítások fejlesztői és hibakeresési szolgáltatásokhoz, mint például navigáció szimulálása, a megjelenítés teljesítménye vagy hangutasítások. Fejlesztőknek szánt funkciók, nem szükségesek a normál használathoz. Bővítmények A bővítmények speciális beállításokat és kiegészítő funkciókat aktiválnak. Bővítmények - Ezen bővítményen keresztül az OsmAnd használható OSM hozzájárulások beküldéséhez, mint például OSM POI objektumok létrehozása vagy módosítása, OSM Jegyzetek nyitása és hozzászólások írása, illetve a rögzített GPX fájlok közreadása. Az OSM egy közösségi, globális, közkincs térképező projekt. A részletekért nézd meg a https://openstreetmap.org oldalt. Értékelik az aktív részvételt, és a hozzájárulások közvetlenül az OsmAnd alkalmazásból is beküldhetők, ha az alkalmazásban megadod a személyes OSM hitelesítési adataid. + OSM hozzájárulások beküldése, mint például OSM POI objektumok létrehozása vagy módosítása, OSM-jegyzetek nyitása vagy ezekhez hozzászólások beküldése, illetve a rögzített GPX fájlok közreadása az OsmAndon belül a felhasználóneve és jelszava megadásával. Az OpenStreetMap.org egy közösségi, globális, közkincs térképező projekt. Vektoros térképek gyorsabban rajzolódnak. Nem minden eszközön működik. Hang kijelölése és tesztelése bemondások lejátszásával: OsmAnd fejlesztés @@ -720,8 +721,8 @@ du. de. Parkolóhely - A parkolási hely bővítmény segít felvenni, hogy hol parkoltál le az autóval, és mennyi parkolási idő van még hátra (ha a parkolás időben korlátozott). -\nA parkolási hely és az idő is látható az OsmAnd vezérlőpultján, valamint a térképen egy widgetben. Értesítés adható hozzá az Android naptárhoz emlékeztetőként. + Lehetővé teszi az autója parkolási helyének rögzítését, beleértve a hátralévő parkolási időt. +\nA parkolási hely és idő egyaránt látható a vezérlőpulton, valamint egy térképwidgetben. Értesítés adható hozzá az Android naptárhoz. Parkolási pozíció Megjelölés parkolási helyként Parkolásjelölő törlése @@ -730,7 +731,7 @@ Lefoglalt memória %1$s MB (Android korlát %2$s MB, Dalvik %3$s MB). Lefoglalt memória Alkalmazás által lefoglalt összes natív memória %1$s MB (Dalvik %2$s MB, egyéb %3$s MB). -Proporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB). +\nProporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB). Összes natív memória Útvonalszimuláció sebessége: Óra @@ -788,7 +789,7 @@ Proporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB).Globális mobil térkép és navigáció, offline és online OSM-térképekkel OsmAnd (OSM Automated Navigation Directions) \n -\n Az OsmAnd nyílt forráskódú navigációs alkalmazás, amely a globális OpenStreetMap (OSM) adatok széles skáláját használja. Az alkalmazás internetkapcsolat nélkül is használható, mert minden (vektoros és csempés) térképadat tárolható a telefon memóriájában. Az alkalmazás továbbá offline és online útvonaltervezést is tartalmaz, részletes, hangvezérléses navigációval. +\n Az OsmAnd nyílt forráskódú navigációs alkalmazás, amely a globális OSM adatok széles skáláját használja. Az alkalmazás internetkapcsolat nélkül is használható, mert minden (vektoros és csempés) térképadat tárolható a telefon memóriájában. Az alkalmazás továbbá offline és online útvonaltervezést is tartalmaz, részletes, hangvezérléses navigációval. \n \n Néhány fontos funkció: \n - Teljesen offline működés (letöltött vektoros és csempés térképek tárolása a készülék tárhelyén) @@ -797,14 +798,14 @@ Proporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB). OsmAnd+ (OSM Automated Navigation Directions) \n -\n Az OsmAnd+ nyílt forráskódú navigációs alkalmazás, amely a globális OpenStreetMap (OSM) adatok széles skáláját használja. Az alkalmazás internetkapcsolat nélkül is használható, mert minden (vektoros és csempés) térképadat tárolható a telefon memóriájában. Az alkalmazás továbbá offline és online útvonaltervezést is tartalmaz, részletes, hangvezérléses navigációval. +\n Az OsmAnd+ nyílt forráskódú navigációs alkalmazás, amely a globális OSM adatok széles skáláját használja. Az alkalmazás internetkapcsolat nélkül is használható, mert minden (vektoros és csempés) térképadat tárolható a telefon memóriájában. Az alkalmazás továbbá offline és online útvonaltervezést is tartalmaz, részletes, hangvezérléses navigációval. \n \n Az OsmAnd+ az alkalmazás fizetős verziója, megvásárlásával támogatja a projektet, új funkciók kifejlesztését finanszírozza és megkapja a legújabb frissítéseket. \n @@ -824,7 +825,7 @@ Proporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB).hang/videojegyzetek OsmAnd-bővítmény offline szintvonalakhoz Távolságmérés - A hang- és videojegyzet bővítmény biztosítja az utazás közbeni hang-, fénykép- és videojegyzetek készítésének lehetőségét a térképem lévő gomb segítségével, vagy közvetlenül a térképen lévő bármely pozíció helyi menüjének használatával. + Készítsen hang/fénykép/videó jegyzeteket utazás közben egy térképen lévő gomb vagy egy pozíció helyi menüjének használatával. Videofelvétel Hangfelvétel Kimeneti videoformátum: @@ -932,10 +933,10 @@ Proporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB).Alapértelmezett widgetművelet: Alapértelmezett widgetmód Felvétel %1$s %3$s %2$s - Kérlek, fontold meg a „Szintvonalak” bővítmény megvásárlását a Play Store-ban, ezzel is támogatva a további fejlesztéseket. + Kérem, fontolja meg a „Szintvonalak” bővítmény megvásárlását, ezzel is támogatva a további fejlesztéseket. Szintvonal bővítmény Más sorrend - A Dropbox-bővítmény lehetővé teszi a rögzített útvonalak és hang/videojegyzetek szinkronizálását a Dropbox fiókoddal. + Szinkronizálja a hang/videó jegyzeteket a Dropbox fiókjával Dropbox bővítmény Hang- és videofelvétel Biztosan megszakítja a navigációt\? @@ -997,7 +998,7 @@ Proporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB).Pont GPX-fájlnév GPX fájl elmentve ide: {0} - Ez a bővítmény lehetővé teszi útvonalak létrehozását a térképen való koppintással, vagy meglévő GPX fájlok használatát, módosítását egy út megtervezéséhez és a pontok közötti távolság méréséhez. Az eszközt a térkép képernyőn elhelyezett gombbal lehet indítani. Az eredmény elmenthető GPX fájlként, amely később használható a vezetéshez. + Hozzon létre útvonalakat a térképen való koppintással, vagy meglévő GPX fájlok használatával, módosításával egy út megtervezéséhez és a pontok közötti távolság méréséhez. Az eredmény elmenthető GPX fájlként, amely később használható navigációhoz. Távolságszámító és tervezőeszköz * Pont megjelöléséhez koppintson. \n * Az előző pont törléséhez nyomja meg hosszan a térképet. @@ -1057,16 +1058,16 @@ Proporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB).Verzió: Névjegy Verzióinfó, licencek, csapattagok - Letöltött zoomszintek: %1$s - Lejárat (perc): %1$s + Letöltött nagyítási szintek: %1$s + Lejárati idő (perc): %1$s Letölthető: %1$s Maximális zoom: %1$s Minimális zoom: %1$s Csempeadat: %1$s %1$s csempeforrás elmentve - Elliptikus Mercator + Elliptikus Mercator vetület Maximális zoom - Lejárat (perc) + Lejárati idő (perc) Minimális zoom URL Meglévő kijelölése… @@ -1112,8 +1113,8 @@ Proporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB).Elkerüli az autópályákat Súlykorlátozás Adja meg az útvonalakon a járművekre vonatkozó súlykorlátozást. - Az Android 4.4 (KitKat) verziója óta a régi tárolási mappa (%s) elavult. Másoljuk az összes OsmAnd fájlt az új helyre\? -\n 1. megjegyzés: a régi fájlok érintetlenül maradnak (de kézzel törölhetők). + Az Android 4.4 (KitKat) verziója óta a régi tárolási mappa (%s) elavult. Másoljuk az összes OsmAnd fájlt az új helyre\? +\n 1. megjegyzés: a régi fájlok érintetlenül maradnak (de kézzel törölhetők). \n 2. megjegyzés: az új tárolóhelyen nem lehet fájlokat megosztani az OsmAnd és OsmAnd+ között. %s fájl másolása az új helyre… OsmAnd adatainak másolása az új helyre (%s)… @@ -1433,15 +1434,15 @@ Proporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB).Összeállítások Sítérképnézet Hajózásitérkép-nézet - A sítérképek megjelenítése érdekében a speciális kapcsolat nélküli térkép letöltése szükséges - A hajózási térképek megjelenítése érdekében a speciális kapcsolat nélküli térkép letöltése szükséges + Töltse le a speciális offline térképet a sílétesítmények megjelenítéséhez. + Töltse le a speciális offline térképet a hajózási részletek megjelenítéséhez. Eszköz memóriája "%1$s szabad " Csak utak Sípályák Sípálya kezeltség Óra - Jegyzetek + Hang/videó jegyzetek Online térkép Hang Megosztási megjegyzés @@ -1787,7 +1788,7 @@ Hosszúság: %2$s OSM-szerkesztés módosítása Kártya el lett rejtve Kérjük, adja meg a helyes POI-típust, vagy hagyja ki ezt a lépést. - A menü gomb a menü helyett a műszerfalat indítja + A menü gomb a műszerfalat indítja a menü helyett Elérés a térképről Vágólapra másolva Műszerfal használata @@ -1838,7 +1839,7 @@ Hosszúság: %2$s Éjjel Hónap és ország: Eltávolítás - Az alkalmazás átváltott belső memóriára, mert a kijelölt adattároló mappa csak olvasható. Kérjük, jelöljön ki egy írható tárolási mappát. + Az alkalmazás átváltott belső memóriára, mert a kijelölt adattároló mappa írásvédett. Kérjük, jelöljön ki egy írható tárolási mappát. Osztott memória Felső sáv Útvonal újraszámítása @@ -1863,14 +1864,17 @@ Hosszúság: %2$s Előfizetési beállítások Először kérjük, vásároljon OsmAnd Live előfizetést Ez az előfizetés a világ bármely térképének óránkénti frissítését teszi lehetővé. -A bevételek egy része az OSM közösségnek jut vissza, és OSM szerkesztésenként kerül kifizetésre. -Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésüket, ez ennek a tökéletes módja. +\nA bevételek egy része az OSM közösségnek jut vissza, és OSM szerkesztésenként kerül kifizetésre. +\nHa szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésüket, ez ennek a tökéletes módja. Térképjelölő kiválasztása Egyéb jelölők Feltöltés névtelenül Átlátszóságcsúszka megjelenítése - Nincs elég hely! A művelethez ideiglenesen {3} MB, véglegesen pedig {1} MB hely szükséges. (Jelenleg csak {2} MB áll rendelkezésre.) - Letölt {0} fájlt\? Ehhez ideiglenesen {3} MB, véglegesen pedig {1} MB hely szükséges. (A jelenlegi {2} MB-ból.) + Nincs elég hely! +\nA művelethez ideiglenesen {3} MB, véglegesen pedig {1} MB hely szükséges. +\n(Jelenleg csak {2} MB áll rendelkezésre.) + Letölt {0} fájlt\? +\nEhhez ideiglenesen {3} MB, véglegesen pedig {1} MB hely szükséges. (A jelenlegi {2} MB-ból.) Töltse fel OSM-jegyzetét névtelenül vagy OpenStreetMap.org-fiókjának használatával. OSM Jegyzet feltöltése Első térképjelölő @@ -1919,7 +1923,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Navigáció befejezése Út elkerülése Részletes jelentés - OpenStreetMap felhasználónév és jelszó + OSM felhasználónév és jelszó Ezzel kaphat friss tájékoztatást a szerkesztéseiről. Minden visszavonása A fájlnév érvénytelen karaktereket tartalmaz @@ -2006,9 +2010,9 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Navigálj és fedezz fel új helyeket internetkapcsolat nélkül Másik régió kijelölése Nincs telepítve offline térkép. Kijelölhet egy térképet a listából, vagy töltse le később innen: „Menü - %1$s”. - Az előfizetési díj havonta lesz felszámítva. Az előfizetést bármikor lemondhatod a Google Play-en. - Adomány az OpenStreetMap közösségnek - Az adományod egy részét továbbítjuk azon OSM szerkesztőknek, akik módosításokat küldtek be OpenStreetMapre. Az előfizetési díj változatlan marad. + Az előfizetési díj a kiválasztott időnként lesz felszámítva. Az előfizetést bármikor lemondhatja a Google Play-en. + Adomány az OSM közösségnek + Az adomány egy részét továbbítjuk az OSM szerkesztőknek. Az előfizetési díj változatlan marad. Az előfizetés lehetővé teszi bármely térkép óránkénti, napi vagy heti frissítését, valamint korlátlan számú térkép letöltését globálisan. Beszerzés Szerezzen korlátlan számú térképletöltést, valamint heti, napi vagy akár óránkénti térképfrissítést. @@ -2241,8 +2245,8 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Célpont megadása Célpont lecserélése Hozzáadás első köztes célpontként - Gomb, amely beállítja a képernyő középpontját úti célnak. A korábban beállított célpont lesz az utolsó köztes célpont. - A műveletgombra koppintás a képernyő középpontját beállítja új úti célként, lecserélve korábban kiválasztott célpontot (ha volt). + "Gomb, amely beállítja a képernyő középpontját úti célnak, a korábban beállított célpont utolsó köztes célpont lesz." + Váltógomb, amely a képernyő középpontját beállítja új úti célként, lecserélve korábban kiválasztott célpontot (ha volt). Gomb, amely beállítja a képernyő közepét első köztes célpontnak. Nincs rátétréteg Nincs alátétréteg @@ -2265,7 +2269,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Utca kijelölése itt: %1$s Cím megadása - OSM Jegyzetek ki/bekapcsolása + OSM-jegyzetek megjelenítése vagy elrejtése OSM-jegyzetek megjelenítése OSM-jegyzetek elrejtése Váltógomb, amely a térképen megjeleníti vagy elrejti az OSM-jegyzeteket. @@ -2289,8 +2293,8 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük A saját pozíció animált térképcsúsztatásának bekapcsolása navigáció közben. Áttekintés Hosszú távolságoknál: ha 10 percen belül nem kap eredményt, adjon hozzá köztes célpontokat. - OsmAnd (OSM Automated Navigation Directions) egy térkép- és navigációs alkalmazás, amellyel hozzáférhetsz az ingyenes, globális és kiváló minőségű OpenStreetMap (OSM) adataihoz. -\n + OsmAnd (OSM Automated Navigation Directions) egy térkép- és navigációs alkalmazás, amellyel hozzáférhetsz az ingyenes, globális és kiváló minőségű OSM adataihoz. +\n \nÉlvezd a hangalapú és vizuális navigációs szolgáltatást, tekints meg érdekes helyeket (POI-kat), hozz létre és kezelj GPX nyomvonalakat, szintvonalak és magasságinformációk használatával (egy plugin segítségével), válassz az autós, kerékpáros és gyalogos üzemmód közül, szerkessz OSM-et és használd ki a számos egyéb lehetőséget. A név túl sok nagybetűt tartalmaz. Folytatja\? A célpont korlátozott hozzáférésű területen található. Engedélyezed a magánutak használatát ennél az útvonaltervnél\? @@ -2314,8 +2318,8 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Telepítés Mapillary megnyitása Mapillary-fénykép - "Hozzávetőleges lefedettség és térképminőség: -\n • Nyugat-Európa: **** + "Hozzávetőleges lefedettség és térképminőség: +\n • Nyugat-Európa: **** \n • Kelet-Európa: *** \n • Oroszország: *** \n • Észak-Amerika: *** @@ -2325,7 +2329,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük \n • Közel-Kelet: ** \n • Afrika: ** \n • Antarktisz: * -\n A világ legtöbb országa letölthető. +\n A világ legtöbb országa letölthető. \n Afganisztántól Zimbabwéig, Ausztráliától az Egyesült Államokig. Magyarország, Szlovákia, Románia, Ausztria, Németország, Olaszország… \n" Korrigált távolság @@ -2357,7 +2361,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Gomb a navigáció szüneteltetéséhez vagy folytatásához. „Navigáció véget ért” panel megjelenítése Navigáció indítása/megállítása - A navigáció elkezdéséhez vagy befejezéséhez koppintson erre a gombra. + Gomb a navigáció elkezdéséhez vagy befejezéséhez. Átlátszó rózsaszín Online útvonalrögzítés időpuffere Adja meg az időpuffert, ameddig az elküldendő helyadatok kapcsolat nélkül is megmaradnak @@ -2472,7 +2476,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Aktiválás egy koppintással Készítsen jegyzeteket! Hang-, video-, vagy fényképjegyzet hozzáadása a térkép bármely pontjához, widget vagy környezeti menü használatával. - OSM-jegyzetek dátum szerint + Hang/kép jegyzetek dátum szerint Dátum szerint Típus szerint Útpontokat tartalmazó nyomvonalak keresése @@ -2493,7 +2497,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Irányjelző vonalat jelenít meg az aktuális pozíciódtól az aktív térképjelölőkig. Egy, vagy két nyilat jelenít meg, amik az aktív jelölők irányába mutatnak. Válaszd ki, hogyan jelenjen meg az aktív jelölők távolsága. - Irányjelölők számának megadása: + Adja meg az irányjelzők számát. Tizedesjegyek száma Jobb Bal @@ -2822,25 +2826,25 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük \n • GPX nyomvonalak feltöltése az OSM-be, közvetlenül az alkalmazásból \n • POI-k hozzáadása, és közvetlen feltöltés az OSM-be (vagy később, ha offline vagy) \n - Az OsmAnd egy aktívan fejlesztett nyílt forráskódú szoftver. Mindenki közreműködhet az alkalmazásban a hibák bejelentésével, a fordítások javításával vagy az új funkció programozásával. Továbbá a projekt az adományokra támaszkodik az új funkciók fejlesztésekor és azok tesztelésekor. -\n Közelítő térképlefedettség és minőség: -\n • Nyugat-Európa: **** -\n • Kelet-Európa: *** -\n • Oroszország: *** -\n • Észak-Amerika: *** -\n • Dél-Amerika: ** -\n • Ázsia: ** -\n • Japán és Korea: *** -\n • Közel-Kelet: ** -\n • Afrika: ** -\n • Antarktisz: * -\n A világ legtöbb országa elérhető letöltésre. -\n Szerezz egy megbízható navigátort az országodba – legyen az Franciaország, Németország, Mexikó, az Egyesült Királyság, Spanyolország, Hollandia, az Egyesült Államok, Oroszország, Brazília vagy bármely más. - Az OsmAnd+ (OSM Automated Navigation Directions) egy térkép és navigáció alkalmazás, amely hozzáférést nyújt az ingyenes, világszintű és magas minőségű OpenStreetMap (OSM) adatokhoz. -\n Élvezd a hang- és képalapú navigációt, a POI-k (érdekes helyek) megtekintését, hozz létre és kezelj GPX nyomvonalakat, használj domborzati ábrázolást és magassági adatokat, válassz a vezetési, kerékpározási és gyalogos módok között, szerkeszd az OSM-et, és még sok mást. -\n -\n Az OsmAnd+ az alkalmazás fizetős verziója. A megvásárlásával támogatod a projektet, finanszírozod az új funkciók fejlesztését, és megkapod a legújabb frissítéseket. -\n + Az OsmAnd egy aktívan fejlesztett nyílt forráskódú szoftver. Mindenki közreműködhet az alkalmazásban a hibák bejelentésével, a fordítások javításával vagy az új funkció programozásával. Továbbá a projekt az adományokra támaszkodik az új funkciók fejlesztésekor és azok tesztelésekor. +\n Közelítő térképlefedettség és minőség: +\n • Nyugat-Európa: **** +\n • Kelet-Európa: *** +\n • Oroszország: *** +\n • Észak-Amerika: *** +\n • Dél-Amerika: ** +\n • Ázsia: ** +\n • Japán és Korea: *** +\n • Közel-Kelet: ** +\n • Afrika: ** +\n • Antarktisz: * +\n A világ legtöbb országa elérhető letöltésre. +\n Szerezzen egy megbízható navigátort az országába – legyen az Franciaország, Németország, Mexikó, az Egyesült Királyság, Spanyolország, Hollandia, az Egyesült Államok, Oroszország, Brazília vagy bármely más. + Az OsmAnd+ (OSM Automated Navigation Directions) egy térkép és navigáció alkalmazás, amely hozzáférést nyújt az ingyenes, világszintű és magas minőségű OSM adatokhoz. +\n Élvezd a hang- és képalapú navigációt, a POI-k (érdekes helyek) megtekintését, hozz létre és kezelj GPX nyomvonalakat, használj domborzati ábrázolást és magassági adatokat, válassz a vezetési, kerékpározási és gyalogos módok között, szerkeszd az OSM-et, és még sok mást. +\n +\n Az OsmAnd+ az alkalmazás fizetős verziója. A megvásárlásával támogatod a projektet, finanszírozod az új funkciók fejlesztését, és megkapod a legújabb frissítéseket. +\n \n Néhány a főbb funkciókból: Navigáció \n • Online (gyorsabb) és offline (nincs roamingdíj külföldön) is működik @@ -3072,7 +3076,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Bekapcsolás irányváltáskor A képernyő kikapcsolásáig hátralévő idő beállítása. Közelségérzékelő használata - A navigáció közbeni bekapcsoláshoz lengesse meg kezét a képernyő felső része fölött. + Lengesse meg a kezét a képernyő fölött annak bekapcsolásához. Szilárd (burkolt) Szilárd (burkolatlan) Jórészt szilárd @@ -3414,7 +3418,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük \n • További hibajavítások \n \n - Gomb, amely beállítja a képernyő közepét kiindulási pontnak, és kiszámítja a célpontig vezető utat vagy megnyit egy párbeszédablakot a célpont kijelöléséhez, ha a célpontjelölő nincs a térképen. + Gomb, amely beállítja a képernyő közepét kiindulási pontnak. Ezután kérni fog egy célpontot vagy elindítja az útvonalszámítást. Minden módosítás elvész, ha erre koppint: %1$s. Összes profilbeállítás visszaállítása az alapértelmezett állapotba. Összes profilbeállítást visszaállítja\? @@ -3455,8 +3459,8 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Rendelkezésre áll Egyedi kategória hozzáadása Csak éjszaka jelenjék meg - Minden bővítménybeállítás visszaállt az alapértelmezett helyzetbe. - Minden profilbeállítás visszaállt az alapértelmezett helyzetbe. + Minden bővítménybeállítás visszaállt alapértelmezettre. + Minden profilbeállítás visszaállt alapértelmezettre. Napnyugta: %1$s Napkelte: %1$s Alkalmazás alapértelmezett (%s) diff --git a/OsmAnd/res/values-is/strings.xml b/OsmAnd/res/values-is/strings.xml index b5a8ca21b7..05205af693 100644 --- a/OsmAnd/res/values-is/strings.xml +++ b/OsmAnd/res/values-is/strings.xml @@ -3790,4 +3790,11 @@ Endurræsing er nauðsynleg til að geta fjarlægt alveg gögn um hraðamyndavélar. Fjarlægja og endurræsa Fjarlægja + Aðvaranir vegna hraðamyndavéla eru bannaðar með lögum í sumum löndum. +\n +\nÞú þarft að velja hvernig lagaleg staða er í landinu þínu. +\n +\nVeldu %1$s og þú munt fá aðvaranir og ábendingar um hraðamyndavélar. +\n +\nVeldu %2$s: öllum gögnum sem tengjast hraðamyndavélum; t.d. aðvaranir, tilkynningar, staðsetningar o.fl. verður eytt þar til OsmAnd er sett inn aftur frá grunni. \ No newline at end of file diff --git a/OsmAnd/res/values-large/sizes.xml b/OsmAnd/res/values-large/sizes.xml index 21a0e7d6f4..f4c129da0e 100644 --- a/OsmAnd/res/values-large/sizes.xml +++ b/OsmAnd/res/values-large/sizes.xml @@ -45,6 +45,11 @@ 3dp + 54dp + 9dp + 3dp + 27dp + 30dp 25dp diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index 4479e2d600..56f0d63110 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -274,8 +274,8 @@ Вивід голосових вказівок Виберіть канал для голосових вказівок. Голосовий канал (перервати звук з динаміків автомобіля) - Повідомлення авдіо - Медіа / Навігаційне авдіо + Повідомлення аудіо + Медіа/навігаційне аудіо Застосунок не може завантажити шар мапи %1$s, спробуйте перевстановити його. Змінити прозорість мапи. Прозорість @@ -787,7 +787,7 @@ Будь ласка, зверніть увагу на оплату втулка \"Горизонталі\" для підтримки подальшого розвитку. Втулок \'Горизонталі\' Запис відео - Запис авдіо + Запис аудіо Усталена дія віджету: Дія для віджета Обчислити точні маршрути без глюків. Обчислення все ще обмежене відстанню і повільне. @@ -803,20 +803,20 @@ Звуко/відео-нотатки Плагін OsmAnd для показу горизонталей в автономному режимі Використовувати програму Камера - Налаштування авдіо/відео запису. + Налаштування аудіо/відео запису. Налаштування аудіо/відео Не вдалося виконати запис Камера недоступна Запис За запитом\? - Авдіо/відео зараз записується. Для зупинки натисніть на AV-віджет. - Створити авдіо-нотатку + Аудіо/відео зараз записується. Для зупинки натисніть на AV-віджет. + Створити аудіо-нотатку Створити відео-нотатку Вилучити запис Грати Проміжний пункт призначення Неможливо відтворити запис. - Відбувається відтворення авдіо + Відбувається відтворення аудіо \n%1$s Відкрити зовнішній програвач Вилучити цей елемент? @@ -1626,10 +1626,10 @@ Вища якість Якість відео Виберіть якість відео. - Формат авдіо - Виберіть формат авдіо. - Бітова швидкість авдіо - Виберіть бітову швидкість авдіо. + Формат аудіо + Виберіть формат аудіо. + Бітова швидкість аудіо + Виберіть бітову швидкість аудіо. Будь ласка, вкажіть коректний тип POI з переліку, або пропустіть його. Показувати під час запуску Скопійовано до буферу обміну @@ -2009,7 +2009,7 @@ Показувати сповіщення, яке дозволить почати запис мандрівки. Повідомлення Продовжити - Павза + Призупинити Подорож Записано Запис @@ -2188,13 +2188,13 @@ Додати нотатку OSM Дуже тонкий Відкритий код розташування (OLC) - Нова авдіонотатка + Нова аудіонотатка Нова відеонотатка Нова світлино-нотатка Найменування Кнопка для додавання позначки мапи посередині екрану. Натискання на цю кнопку додасть маршрутну точку GPX посередині екрану. - Натискання цієї кнопки додає авдіонотатку посередині екрану. + Натискання цієї кнопки додає аудіонотатку посередині екрану. Натискання цієї кнопки додає відеонотатку посередині екрану. Натискання цієї кнопки додає світлинонотатку посередині екрану. Натискання цієї кнопки додає OSM-нотатку посередині екрану. @@ -2611,7 +2611,7 @@ Натискання на позначку на мапі перемістить її на перше місце в списку задіяних позначок, не відкриваючи контекстне меню. Задіювання одним натисненням Робіть нотатки! - Додайте авдіо, відео або світлино-нотатку в будь-яку точку на мапі, використовуючи віджет або контекстне меню. + Додайте аудіо, відео або світлино-нотатку в будь-яку точку на мапі, використовуючи віджет або контекстне меню. Примітки за датою За датою За типом @@ -3781,4 +3781,21 @@ Вимкнути Mapillary Увімкнення шару Mapillary Перемикач увімкнення або вимкнення шару Mapillary на мапі. + Видалити камери контролю швидкості + Законодавство + POI камер контролю швидкості + У деяких країнах чи регіонах користуватися попередженнями про камери контролю швидкості заборонено законом. +\n +\nВам потрібно зробити вибір залежно від законодавства вашої країни. +\n +\nВиберіть %1$s і ви отримуватимете сповіщення та попередження про камери контролю швидкості. +\n +\nВиберіть %2$s, щоб видалити всі дані, пов\'язані з камерами контролю швидкості (повідомлення, попередження і POI), до повного перевстановлення OsmAnd. + Лишати ввімкненим + Видалити + Попередження про камери контролю швидкості в деяких країнах заборонено законом. + Орієнтація + %1$s видалено + Потрібен перезапуск для повного видалення даних камер контролю швидкості. + Видалити та перезапустити \ 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 467d9f339a..6c403756c4 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -3781,4 +3781,21 @@ 隱藏 Mapillary 顯示 Mapillary 在地圖上顯示或隱藏 Mapillary 圖層的開關。 + 解除安裝測速照相 + 法律 + 測速照相 POI 的 + 在某些國家或地區,法律禁止使用測速照相的警報應用程式。 +\n +\n您必須根據您所在國家的法律做出選擇。 +\n +\n選取 %1$s,您將會收到關於測速照相的警報與警告。 +\n +\n選取 %2$s。所有關於測速照相的:警報、通知與 POI 都將會被刪除,直到您完全重新安裝 OsmAnd 為止。 + 保持啟用 + 解除安裝 + 某些國家禁止使用測速照相的警報裝置。 + 方向 + %1$s 已刪除 + 必須重新啟動才能完全刪除測速照相的資料。 + 解除安裝並重新啟動 \ No newline at end of file diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index d43ff9d124..096d691d91 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -12,10 +12,13 @@ --> Inline skates + This device doesn\'t have speed cameras. Uninstall and Restart Restart is needed to completely delete speed camera data. %1$s deleted Bearing + Length limit + Specify vehicle length to be permitted on routes. A toggle to show or hide the Mapillary layer on the map. Show Mapillary Hide Mapillary @@ -516,7 +519,7 @@ Map during navigation Map during navigation Other - Weight, height, speed + Weight, height, length, speed Vehicle parameters Voice announcements only occur during navigation. Navigation instructions and announcements diff --git a/OsmAnd/res/xml/global_settings.xml b/OsmAnd/res/xml/global_settings.xml index 4cbc10ef0d..5f2fef7d02 100644 --- a/OsmAnd/res/xml/global_settings.xml +++ b/OsmAnd/res/xml/global_settings.xml @@ -69,7 +69,7 @@ android:key="speed_cameras_uninstalled" android:persistent="false" android:layout="@layout/preference_with_descr" - android:title="@string/uninstall_speed_cameras" + tools:title="@string/uninstall_speed_cameras" tools:icon="@drawable/ic_speed_camera_disabled" /> \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java index e1b80ebf53..5b41e8c76c 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java @@ -650,6 +650,7 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven protected void onNewIntent(final Intent intent) { super.onNewIntent(intent); setIntent(intent); + intentHelper.parseLaunchIntents(); } @Override diff --git a/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java b/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java index cca1b6a122..ac05e6d746 100644 --- a/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java +++ b/OsmAnd/src/net/osmand/plus/base/PointImageDrawable.java @@ -11,11 +11,14 @@ import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; import android.graphics.Rect; import android.graphics.drawable.Drawable; +import android.os.Build; import androidx.annotation.ColorInt; import androidx.annotation.DrawableRes; import androidx.annotation.NonNull; +import androidx.core.graphics.drawable.DrawableCompat; +import net.osmand.AndroidUtils; import net.osmand.GPXUtilities; import net.osmand.data.FavouritePoint; import net.osmand.data.FavouritePoint.BackgroundType; @@ -30,16 +33,18 @@ import static net.osmand.data.FavouritePoint.DEFAULT_UI_ICON_ID; public class PointImageDrawable extends Drawable { + private final int dp_12_px; private boolean withShadow; private boolean synced; private boolean history; - private Drawable favIcon; - private Bitmap favBackgroundTop; - private Bitmap favBackgroundCenter; - private Bitmap favBackgroundBottom; - private Bitmap favBackgroundTopSmall; - private Bitmap favBackgroundCenterSmall; - private Bitmap favBackgroundBottomSmall; + private Drawable mapIcon; + private Bitmap mapIconBitmap; + private Bitmap mapIconBackgroundTop; + private Bitmap mapIconBackgroundCenter; + private Bitmap mapIconBackgroundBottom; + private Bitmap mapIconBackgroundTopSmall; + private Bitmap mapIconBackgroundCenterSmall; + private Bitmap mapIconBackgroundBottomSmall; private Bitmap syncedStroke; private Bitmap syncedColor; private Bitmap syncedShadow; @@ -51,6 +56,11 @@ public class PointImageDrawable extends Drawable { private ColorFilter colorFilter; private ColorFilter grayFilter; private float scale = 1.0f; + private int mapIconSize = 0; + private int backSize = 0; + + public static final int DEFAULT_SIZE_ON_MAP_DP = 16; + public static final int ICON_SIZE_VECTOR_PX = 12; private PointImageDrawable(PointInfo pointInfo) { this.withShadow = pointInfo.withShadow; @@ -59,9 +69,8 @@ public class PointImageDrawable extends Drawable { UiUtilities uiUtilities = ((OsmandApplication) pointInfo.ctx.getApplicationContext()).getUIUtilities(); int overlayIconId = pointInfo.overlayIconId; int uiIconId; - favIcon = uiUtilities.getIcon(getMapIconId(pointInfo.ctx, overlayIconId), R.color.color_white); + mapIcon = uiUtilities.getIcon(getMapIconId(pointInfo.ctx, overlayIconId), R.color.color_white); uiIconId = overlayIconId; - int col = pointInfo.color == 0 ? res.getColor(R.color.color_favorite) : pointInfo.color; uiListIcon = uiUtilities.getIcon(uiIconId, R.color.color_white); int uiBackgroundIconId = pointInfo.backgroundType.getIconId(); @@ -69,21 +78,22 @@ public class PointImageDrawable extends Drawable { int mapBackgroundIconIdTop = getMapBackgroundIconId(pointInfo, "top", false); int mapBackgroundIconIdCenter = getMapBackgroundIconId(pointInfo, "center", false); int mapBackgroundIconIdBottom = getMapBackgroundIconId(pointInfo, "bottom", false); - favBackgroundTop = BitmapFactory.decodeResource(res, mapBackgroundIconIdTop); - favBackgroundCenter = BitmapFactory.decodeResource(res, mapBackgroundIconIdCenter); - favBackgroundBottom = BitmapFactory.decodeResource(res, mapBackgroundIconIdBottom); + mapIconBackgroundTop = BitmapFactory.decodeResource(res, mapBackgroundIconIdTop); + mapIconBackgroundCenter = BitmapFactory.decodeResource(res, mapBackgroundIconIdCenter); + mapIconBackgroundBottom = BitmapFactory.decodeResource(res, mapBackgroundIconIdBottom); int mapBackgroundIconIdTopSmall = getMapBackgroundIconId(pointInfo, "top", true); int mapBackgroundIconIdCenterSmall = getMapBackgroundIconId(pointInfo, "center", true); int mapBackgroundIconIdBottomSmall = getMapBackgroundIconId(pointInfo, "bottom", true); - favBackgroundTopSmall = BitmapFactory.decodeResource(res, mapBackgroundIconIdTopSmall); - favBackgroundCenterSmall = BitmapFactory.decodeResource(res, mapBackgroundIconIdCenterSmall); - favBackgroundBottomSmall = BitmapFactory.decodeResource(res, mapBackgroundIconIdBottomSmall); + mapIconBackgroundTopSmall = BitmapFactory.decodeResource(res, mapBackgroundIconIdTopSmall); + mapIconBackgroundCenterSmall = BitmapFactory.decodeResource(res, mapBackgroundIconIdCenterSmall); + mapIconBackgroundBottomSmall = BitmapFactory.decodeResource(res, mapBackgroundIconIdBottomSmall); syncedStroke = BitmapFactory.decodeResource(res, R.drawable.ic_shield_marker_point_stroke); syncedColor = BitmapFactory.decodeResource(res, R.drawable.ic_shield_marker_point_color); syncedShadow = BitmapFactory.decodeResource(res, R.drawable.ic_shield_marker_point_shadow); syncedIcon = BitmapFactory.decodeResource(res, R.drawable.ic_marker_point_14dp); colorFilter = new PorterDuffColorFilter(col, PorterDuff.Mode.SRC_IN); grayFilter = new PorterDuffColorFilter(res.getColor(R.color.color_favorite_gray), PorterDuff.Mode.MULTIPLY); + dp_12_px = AndroidUtils.dpToPx(pointInfo.ctx, 12); } private int getMapIconId(Context ctx, int iconId) { @@ -119,7 +129,7 @@ public class PointImageDrawable extends Drawable { if (synced) { return syncedShadow.getHeight(); } else if (withShadow) { - return favBackgroundCenter.getHeight(); + return mapIconBackgroundCenter.getHeight(); } return uiBackgroundIcon.getIntrinsicHeight(); } @@ -129,7 +139,7 @@ public class PointImageDrawable extends Drawable { if (synced) { return syncedShadow.getWidth(); } else if (withShadow) { - return favBackgroundCenter.getWidth(); + return mapIconBackgroundCenter.getWidth(); } return uiBackgroundIcon.getIntrinsicWidth(); } @@ -144,10 +154,14 @@ public class PointImageDrawable extends Drawable { drawBitmap(canvas, bs, syncedStroke, paintBackground); drawBitmap(canvas, bs, syncedIcon, paintIcon); } else if (withShadow) { - drawBitmap(canvas, bs, favBackgroundBottom, null); - drawBitmap(canvas, bs, favBackgroundCenter, paintBackground); - drawBitmap(canvas, bs, favBackgroundTop, null); - favIcon.draw(canvas); + drawBitmap(canvas, bs, mapIconBackgroundBottom, null); + drawBitmap(canvas, bs, mapIconBackgroundCenter, paintBackground); + drawBitmap(canvas, bs, mapIconBackgroundTop, null); + int offsetX = bs.centerX() - mapIconSize / 2; + int offsetY = bs.centerY() - mapIconSize / 2; + Rect mapIconBounds = new Rect(offsetX, offsetY, (offsetX + mapIconSize), + offsetY + mapIconSize); + drawBitmap(canvas, mapIconBounds, mapIconBitmap, null); } else { uiBackgroundIcon.draw(canvas); uiListIcon.draw(canvas); @@ -158,43 +172,50 @@ public class PointImageDrawable extends Drawable { canvas.drawBitmap(bitmap, null, bs, paintBackground); } - private void drawInCenter(Canvas canvas, Rect destRect, boolean history) { + public void drawPoint(Canvas canvas, float x, float y, float scale, boolean history) { + setScale(scale); this.history = history; - setBounds(destRect); - int offsetX = destRect.centerX() - (int) (favIcon.getIntrinsicWidth() / 2 * scale); - int offsetY = destRect.centerY() - (int) (favIcon.getIntrinsicHeight() / 2 * scale); - favIcon.setBounds(offsetX, offsetY, (int) (offsetX + favIcon.getIntrinsicWidth() * scale), - offsetY + (int) (favIcon.getIntrinsicHeight() * scale)); + Rect rect = new Rect(0, 0, backSize, backSize); + rect.offset((int) x - backSize / 2, (int) y - backSize / 2); + setBounds(rect); draw(canvas); } - public void drawPoint(Canvas canvas, float x, float y, float scale, boolean history) { - this.scale = scale; - int scaledWidth = getIntrinsicWidth(); - int scaledHeight = getIntrinsicHeight(); - if (scale != 1.0f) { - scaledWidth *= scale; - scaledHeight *= scale; + private void setScale(float scale) { + if (scale != this.scale || this.mapIconSize == 0) { + this.scale = scale; + int pixels = (int) (dp_12_px * DEFAULT_SIZE_ON_MAP_DP / 12.0); + this.mapIconSize = Math.round((scale * pixels / ICON_SIZE_VECTOR_PX * ICON_SIZE_VECTOR_PX)); + this.backSize = (int) (scale * getIntrinsicWidth()); + mapIconBitmap = getBitmapFromVectorDrawable(mapIcon); } - Rect rect = new Rect(0, 0, scaledWidth, scaledHeight); - rect.offset((int) x - scaledWidth / 2, (int) y - scaledHeight / 2); - drawInCenter(canvas, rect, history); + } + + public Bitmap getBitmapFromVectorDrawable(Drawable drawable) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { + drawable = (DrawableCompat.wrap(drawable)).mutate(); + } + Bitmap bitmap = Bitmap.createBitmap(mapIconSize, mapIconSize, Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(bitmap); + drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); + drawable.draw(canvas); + return bitmap; } public void drawSmallPoint(Canvas canvas, float x, float y, float scale) { - this.scale = scale; + setScale(scale); paintBackground.setColorFilter(history ? grayFilter : colorFilter); - int scaledWidth = favBackgroundBottomSmall.getWidth(); - int scaledHeight = favBackgroundBottomSmall.getHeight(); + int scaledWidth = mapIconBackgroundBottomSmall.getWidth(); + int scaledHeight = mapIconBackgroundBottomSmall.getHeight(); if (scale != 1.0f) { scaledWidth *= scale; scaledHeight *= scale; } Rect destRect = new Rect(0, 0, scaledWidth, scaledHeight); destRect.offset((int) x - scaledWidth / 2, (int) y - scaledHeight / 2); - canvas.drawBitmap(favBackgroundBottomSmall, null, destRect, null); - canvas.drawBitmap(favBackgroundCenterSmall, null, destRect, paintBackground); - canvas.drawBitmap(favBackgroundTopSmall, null, destRect, null); + canvas.drawBitmap(mapIconBackgroundBottomSmall, null, destRect, null); + canvas.drawBitmap(mapIconBackgroundCenterSmall, null, destRect, paintBackground); + canvas.drawBitmap(mapIconBackgroundTopSmall, null, destRect, null); } @Override @@ -216,10 +237,6 @@ public class PointImageDrawable extends Drawable { paintIcon.setColorFilter(cf); } - public void setScale(float scale) { - this.scale = scale; - } - private static TreeMap cache = new TreeMap<>(); private static PointImageDrawable getOrCreate(@NonNull PointInfo pointInfo) { diff --git a/OsmAnd/src/net/osmand/plus/helpers/IntentHelper.java b/OsmAnd/src/net/osmand/plus/helpers/IntentHelper.java index 9e589cbb13..6395a85a96 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/IntentHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/IntentHelper.java @@ -12,6 +12,7 @@ import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.map.TileSourceManager; import net.osmand.plus.mapsource.EditMapSourceDialogFragment; +import net.osmand.plus.search.QuickSearchDialogFragment; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.MapMarkersHelper; import net.osmand.plus.OsmandApplication; @@ -54,6 +55,9 @@ public class IntentHelper { if (!applied) { applied = parseOpenGpxIntent(); } + if (!applied) { + applied = parseExtraTextIntent(); + } return applied; } @@ -252,4 +256,22 @@ public class IntentHelper { intent.setAction(null); intent.setData(null); } + + private boolean parseExtraTextIntent() { + Intent intent = mapActivity.getIntent(); + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M && intent != null) { + CharSequence text = intent.getCharSequenceExtra(Intent.EXTRA_PROCESS_TEXT); + if (!Algorithms.isEmpty(text)) { + return QuickSearchDialogFragment.showInstance( + mapActivity, + text.toString(), + null, + QuickSearchDialogFragment.QuickSearchType.REGULAR, + QuickSearchDialogFragment.QuickSearchTab.CATEGORIES, + null + ); + } + } + return false; + } } \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java index 9080f88ca6..194f07552a 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java @@ -551,65 +551,17 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo } View buttonsBottomBorder = view.findViewById(R.id.buttons_bottom_border); - View buttonsTopBorder = view.findViewById(R.id.buttons_top_border); - buttonsBottomBorder.setBackgroundColor(ContextCompat.getColor(mapActivity, nightMode ? R.color.ctx_menu_buttons_divider_dark : R.color.ctx_menu_buttons_divider_light)); - buttonsTopBorder.setBackgroundColor(ContextCompat.getColor(mapActivity, nightMode ? R.color.ctx_menu_buttons_divider_dark : R.color.ctx_menu_buttons_divider_light)); - LinearLayout buttons = view.findViewById(R.id.context_menu_buttons); - buttons.setBackgroundColor(ContextCompat.getColor(mapActivity, nightMode ? R.color.list_background_color_dark : R.color.activity_background_color_light)); - if (!menu.buttonsVisible()) { - buttonsTopBorder.setVisibility(View.GONE); - buttons.setVisibility(View.GONE); - } + int buttonsBorderColor = ContextCompat.getColor(mapActivity, + nightMode ? R.color.ctx_menu_buttons_divider_dark : R.color.ctx_menu_buttons_divider_light); + buttonsBottomBorder.setBackgroundColor(buttonsBorderColor); View bottomButtons = view.findViewById(R.id.context_menu_bottom_buttons); - bottomButtons.setBackgroundColor(ContextCompat.getColor(mapActivity, nightMode ? R.color.list_background_color_dark : R.color.activity_background_color_light)); - if (!menu.navigateButtonVisible()) { - bottomButtons.findViewById(R.id.context_menu_directions_button).setVisibility(View.GONE); - } - - // Action buttons - ContextMenuAdapter adapter = menu.getActionsContextMenuAdapter(false); - List items = adapter.getVisibleItems(); - List mainIds = ((OsmandSettings.MainContextMenuItemsSettings) app.getSettings().CONTEXT_MENU_ACTIONS_ITEMS.get()).getMainIds(); - ContextMenuAdapter mainAdapter = new ContextMenuAdapter(requireMyApplication()); - ContextMenuAdapter additionalAdapter = new ContextMenuAdapter(requireMyApplication()); - - if (!mainIds.isEmpty()){ - for (ContextMenuItem item : items) { - if (mainIds.contains(item.getId())) { - mainAdapter.addItem(item); - } else { - additionalAdapter.addItem(item); - } - } - } else { - for (int i = 0; i < items.size(); i++) { - if (i < MAIN_BUTTONS_QUANTITY) { - mainAdapter.addItem(items.get(i)); - } else { - additionalAdapter.addItem(items.get(i)); - } - } - } - LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, - ViewGroup.LayoutParams.MATCH_PARENT, - 1f - ); - buttons.removeAllViews(); - ContextMenuItemClickListener mainListener = menu.getContextMenuItemClickListener(mainAdapter); - ContextMenuItemClickListener additionalListener = menu.getContextMenuItemClickListener(additionalAdapter); - - if (!mainIds.isEmpty()){ - for (ContextMenuItem item: mainAdapter.getItems()) { - buttons.addView(getActionView(item, mainAdapter.getItems().indexOf(item), mainAdapter, additionalAdapter, mainListener, additionalListener), params); - } - } else { - int mainButtonsQuantity = Math.min(MAIN_BUTTONS_QUANTITY, items.size()); - for (int i = 0; i < mainButtonsQuantity; i++) { - buttons.addView(getActionView(items.get(i), i, mainAdapter, additionalAdapter, mainListener, additionalListener), params); - } - } - buttons.setGravity(Gravity.CENTER); + bottomButtons.setBackgroundColor(ContextCompat.getColor(mapActivity, + nightMode ? R.color.list_background_color_dark : R.color.activity_background_color_light)); + bottomButtons.findViewById(R.id.context_menu_directions_button) + .setVisibility(menu.navigateButtonVisible() ? View.VISIBLE : View.GONE); + View buttonsTopBorder = view.findViewById(R.id.buttons_top_border); + buttonsTopBorder.setBackgroundColor(buttonsBorderColor); + buttonsTopBorder.setVisibility(menu.buttonsVisible() ? View.VISIBLE : View.GONE); //Bottom buttons int bottomButtonsColor = nightMode ? R.color.ctx_menu_controller_button_text_color_dark_n : R.color.ctx_menu_controller_button_text_color_light_n; @@ -669,6 +621,58 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo return view; } + private void updateActionButtons(MapActivity mapActivity) { + LinearLayout buttons = view.findViewById(R.id.context_menu_buttons); + buttons.setBackgroundColor(ContextCompat.getColor(mapActivity, + nightMode ? R.color.list_background_color_dark : R.color.activity_background_color_light)); + buttons.setVisibility(menu.buttonsVisible() ? View.VISIBLE : View.GONE); + // Action buttons + ContextMenuAdapter adapter = menu.getActionsContextMenuAdapter(false); + List items = adapter.getVisibleItems(); + List mainIds = ((OsmandSettings.MainContextMenuItemsSettings) mapActivity.getMyApplication() + .getSettings().CONTEXT_MENU_ACTIONS_ITEMS.get()).getMainIds(); + ContextMenuAdapter mainAdapter = new ContextMenuAdapter(requireMyApplication()); + ContextMenuAdapter additionalAdapter = new ContextMenuAdapter(requireMyApplication()); + + if (!mainIds.isEmpty()) { + for (ContextMenuItem item : items) { + if (mainIds.contains(item.getId())) { + mainAdapter.addItem(item); + } else { + additionalAdapter.addItem(item); + } + } + } else { + for (int i = 0; i < items.size(); i++) { + if (i < MAIN_BUTTONS_QUANTITY) { + mainAdapter.addItem(items.get(i)); + } else { + additionalAdapter.addItem(items.get(i)); + } + } + } + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.MATCH_PARENT, + 1f + ); + buttons.removeAllViews(); + ContextMenuItemClickListener mainListener = menu.getContextMenuItemClickListener(mainAdapter); + ContextMenuItemClickListener additionalListener = menu.getContextMenuItemClickListener(additionalAdapter); + + if (!mainIds.isEmpty()) { + for (ContextMenuItem item : mainAdapter.getItems()) { + buttons.addView(getActionView(item, mainAdapter.getItems().indexOf(item), mainAdapter, additionalAdapter, mainListener, additionalListener), params); + } + } else { + int mainButtonsQuantity = Math.min(MAIN_BUTTONS_QUANTITY, items.size()); + for (int i = 0; i < mainButtonsQuantity; i++) { + buttons.addView(getActionView(items.get(i), i, mainAdapter, additionalAdapter, mainListener, additionalListener), params); + } + } + buttons.setGravity(Gravity.CENTER); + } + private View getActionView(ContextMenuItem contextMenuItem, final int position, final ContextMenuAdapter mainAdapter, @@ -1271,6 +1275,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo } else { titleProgressContainer.setVisibility(View.GONE); } + updateActionButtons(getMapActivity()); updateAdditionalInfoVisibility(); } } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragmentNew.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragmentNew.java index 81db01571a..2362252307 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragmentNew.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/FavoritePointEditorFragmentNew.java @@ -469,7 +469,7 @@ public class FavoritePointEditorFragmentNew extends PointEditorFragmentNew { categories.add(lastUsedGroup.getDisplayName(app)); } for (FavouritesDbHelper.FavoriteGroup fg : getHelper().getFavoriteGroups()) { - if (lastUsedGroup != null && !fg.equals(lastUsedGroup) && fg.isVisible()) { + if (!fg.equals(lastUsedGroup) && fg.isVisible()) { categories.add(fg.getDisplayName(app)); } } diff --git a/OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java b/OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java index 67d5637c98..bccc49f614 100644 --- a/OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java +++ b/OsmAnd/src/net/osmand/plus/poi/PoiFiltersHelper.java @@ -822,7 +822,7 @@ public class PoiFiltersHelper { String subCategory = query.getString(2); if (subCategory == null) { m.put(a, null); - } else { + } else if (!mapPoiTypes.isTypeForbidden(subCategory)) { if (m.get(a) == null) { m.put(a, new LinkedHashSet()); } @@ -849,7 +849,9 @@ public class PoiFiltersHelper { map.get(filterId), application); filter.setSavedFilterByName(query.getString(2)); filter.setDeleted(deleted); - list.add(filter); + if (filter.getAcceptedTypesCount() > 0) { + list.add(filter); + } } } while (query.moveToNext()); } diff --git a/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java b/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java index 3e903b128c..e9077bb143 100644 --- a/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java +++ b/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java @@ -21,6 +21,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.core.view.MotionEventCompat; +import androidx.core.view.ViewCompat; import androidx.fragment.app.DialogFragment; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; @@ -33,6 +34,7 @@ import com.google.android.material.snackbar.Snackbar; import net.osmand.AndroidUtils; import net.osmand.PlatformUtil; +import net.osmand.plus.search.listitems.QuickSearchListItem; import net.osmand.plus.settings.backend.ApplicationMode; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; @@ -70,6 +72,7 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec private boolean activationModified; private boolean wasReset = false; private boolean isChanged = false; + private boolean filterDeleted = false; private ApplicationMode appMode; private LinearLayout buttonsContainer; @@ -220,7 +223,8 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec @Override public void onDismiss(@NonNull DialogInterface dialog) { - if (isChanged && !orderModified && !activationModified && resultCallback != null) { + if (filterDeleted && resultCallback != null) { + requireMyApplication().getPoiFilters().saveInactiveFilters(getSelectedAppMode(), availableFiltersKeys); resultCallback.onCustomFiltersDeleted(); } super.onDismiss(dialog); @@ -582,7 +586,9 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec final PoiUIFilterDataObject poiInfo = (PoiUIFilterDataObject) item.value; int osmandOrangeColorResId = nightMode ? R.color.osmand_orange_dark : R.color.osmand_orange; h.title.setText(poiInfo.name); - h.icon.setImageDrawable(uiUtilities.getIcon(poiInfo.iconRes, osmandOrangeColorResId)); + boolean userFilter = poiInfo.filterId.startsWith(USER_PREFIX); + int iconRes = QuickSearchListItem.getCustomFilterIconRes(poiHelper.getFilterById(poiInfo.filterId)); + h.icon.setImageDrawable(uiUtilities.getIcon(userFilter ? iconRes : poiInfo.iconRes, osmandOrangeColorResId)); h.moveIcon.setVisibility(poiInfo.isActive ? View.VISIBLE : View.GONE); h.actionIcon.setOnClickListener(new View.OnClickListener() { @Override @@ -607,7 +613,6 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec } else { h.actionIcon.setImageDrawable(uiUtilities.getIcon(R.drawable.ic_action_add, R.color.color_osm_edit_create)); } - boolean userFilter = poiInfo.filterId.startsWith(USER_PREFIX); h.actionDelete.setImageDrawable(uiUtilities.getIcon(R.drawable.ic_action_delete_item, R.color.color_osm_edit_delete)); h.actionDelete.setVisibility(userFilter ? View.VISIBLE : View.GONE); h.actionDelete.setOnClickListener(new View.OnClickListener() { @@ -636,12 +641,14 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec if (DISMISS_EVENT_ACTION != event) { PoiUIFilter filter = poiHelper.getFilterById(poiInfo.filterId); if (filter != null && poiHelper.removePoiFilter(filter)) { + availableFiltersKeys.remove(poiInfo.filterId); filter.setDeleted(true); - isChanged = true; + filterDeleted = true; } } } }); + ViewCompat.setElevation(snackbar.getView(), 0f); snackbar.setAnchorView(buttonsContainer); UiUtilities.setupSnackbar(snackbar, nightMode); snackbar.show(); diff --git a/OsmAnd/src/net/osmand/plus/search/listitems/QuickSearchListItem.java b/OsmAnd/src/net/osmand/plus/search/listitems/QuickSearchListItem.java index 4f941b9b48..204c31de88 100644 --- a/OsmAnd/src/net/osmand/plus/search/listitems/QuickSearchListItem.java +++ b/OsmAnd/src/net/osmand/plus/search/listitems/QuickSearchListItem.java @@ -4,6 +4,7 @@ import android.content.Context; import android.graphics.drawable.Drawable; import android.text.Spannable; +import androidx.annotation.DrawableRes; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; @@ -334,23 +335,8 @@ public class QuickSearchListItem { } else if (searchResult.object instanceof CustomSearchPoiFilter) { CustomSearchPoiFilter searchPoiFilter = (CustomSearchPoiFilter) searchResult.object; PoiUIFilter filter = app.getPoiFilters().getFilterById(searchPoiFilter.getFilterId()); - iconId = R.drawable.mx_special_custom_category; if (filter != null) { - Map> acceptedTypes = filter.getAcceptedTypes(); - List categories = new ArrayList<>(acceptedTypes.keySet()); - if (categories.size() == 1) { - String res = ""; - PoiCategory category = categories.get(0); - LinkedHashSet filters = acceptedTypes.get(category); - if (filters == null || filters.size() > 1) { - res = category.getIconKeyName(); - } else { - res = getPoiTypeIconName(category.getPoiTypeByKeyName(filters.iterator().next())); - } - if (res != null && RenderingIcons.containsBigIcon(res)) { - iconId = RenderingIcons.getBigIconResourceId(res); - } - } + iconId = getCustomFilterIconRes(filter); } } if (iconId > 0) { @@ -422,4 +408,27 @@ public class QuickSearchListItem { return app.getUIUtilities().getIcon(iconId, app.getSettings().isLightContent() ? R.color.osmand_orange : R.color.osmand_orange_dark); } + + @DrawableRes + public static int getCustomFilterIconRes(PoiUIFilter filter) { + int iconId = 0; + if (filter != null) { + Map> acceptedTypes = filter.getAcceptedTypes(); + List categories = new ArrayList<>(acceptedTypes.keySet()); + if (categories.size() == 1) { + String res = ""; + PoiCategory category = categories.get(0); + LinkedHashSet filters = acceptedTypes.get(category); + if (filters == null || filters.size() > 1) { + res = category.getIconKeyName(); + } else { + res = getPoiTypeIconName(category.getPoiTypeByKeyName(filters.iterator().next())); + } + if (res != null && RenderingIcons.containsBigIcon(res)) { + iconId = RenderingIcons.getBigIconResourceId(res); + } + } + } + return iconId > 0 ? iconId : R.drawable.mx_special_custom_category; + } } diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/GlobalSettingsFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/GlobalSettingsFragment.java index 9f3a6439aa..800e7a936f 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/GlobalSettingsFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/GlobalSettingsFragment.java @@ -30,7 +30,6 @@ public class GlobalSettingsFragment extends BaseSettingsFragment private static final String SEND_ANONYMOUS_DATA_PREF_ID = "send_anonymous_data"; private static final String DIALOGS_AND_NOTIFICATIONS_PREF_ID = "dialogs_and_notifications"; - private static final String LEGAL_CATEGORY_ID = "legal"; @Override protected void setupPreferences() { @@ -41,7 +40,6 @@ public class GlobalSettingsFragment extends BaseSettingsFragment setupSendAnonymousDataPref(); setupDialogsAndNotificationsPref(); setupEnableProxyPref(); - setupLegalCategory(); setupUninstallSpeedCamerasPref(); } @@ -108,7 +106,6 @@ public class GlobalSettingsFragment extends BaseSettingsFragment app.restartApp(activity); } } else if (prefId.equals(settings.SPEED_CAMERAS_UNINSTALLED.getId())) { - setupLegalCategory(); setupUninstallSpeedCamerasPref(); } } @@ -121,7 +118,7 @@ public class GlobalSettingsFragment extends BaseSettingsFragment @Override public boolean onPreferenceClick(Preference preference) { String prefId = preference.getKey(); - if (settings.SPEED_CAMERAS_UNINSTALLED.getId().equals(prefId)) { + if (settings.SPEED_CAMERAS_UNINSTALLED.getId().equals(prefId) && !settings.SPEED_CAMERAS_UNINSTALLED.get()) { FragmentManager fm = getFragmentManager(); if (fm != null) { SpeedCamerasBottomSheet.showInstance(fm, this); @@ -214,14 +211,12 @@ public class GlobalSettingsFragment extends BaseSettingsFragment enableProxy.setIcon(getPersistentPrefIcon(R.drawable.ic_action_proxy)); } - private void setupLegalCategory() { - PreferenceCategory legalCategory = (PreferenceCategory) findPreference(LEGAL_CATEGORY_ID); - legalCategory.setVisible(!settings.SPEED_CAMERAS_UNINSTALLED.get()); - } - private void setupUninstallSpeedCamerasPref() { + boolean uninstalled = settings.SPEED_CAMERAS_UNINSTALLED.get(); Preference uninstallSpeedCameras = (Preference) findPreference(settings.SPEED_CAMERAS_UNINSTALLED.getId()); - uninstallSpeedCameras.setIcon(getActiveIcon(R.drawable.ic_speed_camera_disabled)); - uninstallSpeedCameras.setVisible(!settings.SPEED_CAMERAS_UNINSTALLED.get()); + if (!uninstalled) { + uninstallSpeedCameras.setIcon(getActiveIcon(R.drawable.ic_speed_camera_disabled)); + } + uninstallSpeedCameras.setTitle(uninstalled ? R.string.speed_cameras_removed_descr : R.string.uninstall_speed_cameras); } } \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/ScreenAlertsFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/ScreenAlertsFragment.java index c07f8fca2d..a312253aee 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/ScreenAlertsFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/ScreenAlertsFragment.java @@ -150,7 +150,7 @@ public class ScreenAlertsFragment extends BaseSettingsFragment implements OnPref return getIcon(americanSigns ? R.drawable.warnings_traffic_calming_us : R.drawable.warnings_traffic_calming); } else if (settings.SHOW_PEDESTRIAN.getModeValue(selectedMode)) { return getIcon(americanSigns ? R.drawable.warnings_pedestrian_us : R.drawable.warnings_pedestrian); - } else if (settings.SHOW_CAMERAS.getModeValue(selectedMode)) { + } else if (settings.SHOW_CAMERAS.getModeValue(selectedMode) && !settings.SPEED_CAMERAS_UNINSTALLED.get()) { return getIcon(R.drawable.warnings_speed_camera); } else if (settings.SHOW_TUNNELS.getModeValue(selectedMode)) { return getIcon(americanSigns ? R.drawable.warnings_tunnel_us : R.drawable.warnings_tunnel);