diff --git a/OsmAnd-java/src/test/resources/search/double_parking.json b/OsmAnd-java/src/test/resources/search/double_parking.json index 0c23cebe3d..46abccb8d1 100644 --- a/OsmAnd-java/src/test/resources/search/double_parking.json +++ b/OsmAnd-java/src/test/resources/search/double_parking.json @@ -17,6 +17,7 @@ "Parking fee: no (Charging station / Transportation)", "Parking fee: yes (Charging station / Transportation)", "Parking lot (Fire hydrant / Emergency infrastructure)", + "Parking space (Personal transport)", "Parking tickets (Vending machine / Store)", "Parking tickets (Vending machine / Store)", "Parking time limit (Parking / Personal transport)", diff --git a/OsmAnd-telegram/res/values-be/strings.xml b/OsmAnd-telegram/res/values-be/strings.xml index aee4fa36e6..50a258549d 100644 --- a/OsmAnd-telegram/res/values-be/strings.xml +++ b/OsmAnd-telegram/res/values-be/strings.xml @@ -260,4 +260,7 @@ Адзінка вымярэння хуткасці Максімальны час захоўвання пунктаў у буферы Час дзеяння буферу + Прапанавана + Статус OsmAnd Tracker + Вярнуцца ў OsmAnd \ No newline at end of file diff --git a/OsmAnd-telegram/res/values-da/strings.xml b/OsmAnd-telegram/res/values-da/strings.xml index 5c94226b92..91d5d8b8f3 100644 --- a/OsmAnd-telegram/res/values-da/strings.xml +++ b/OsmAnd-telegram/res/values-da/strings.xml @@ -259,4 +259,8 @@ Hastighed Maksimal tid til lagring af punkter i bufferen Buffer udløbstid + Ændr enhed for afstand. + Foreslået + OsmAnd Tracker-status + Tilbage til OsmAnd \ No newline at end of file diff --git a/OsmAnd-telegram/res/values-nb/strings.xml b/OsmAnd-telegram/res/values-nb/strings.xml index 349645f23f..fa16894ecb 100644 --- a/OsmAnd-telegram/res/values-nb/strings.xml +++ b/OsmAnd-telegram/res/values-nb/strings.xml @@ -237,7 +237,7 @@ Personvern Velg Minste loggingsavstand - Filter: Minimumsdistanse til neste loggingspunkt + Filter: Minimumsavstand for logging av nytt punkt Minimumsnøyaktighet for logging Filter: Ingen logging med mindre nøyaktigheten nås Minimumshastighet ved logging @@ -262,4 +262,5 @@ Utløpstid for mellomlager Foreslått OsmAnd-sporerstatus + Tilbake til OsmAnd \ No newline at end of file diff --git a/OsmAnd-telegram/res/values-pl/strings.xml b/OsmAnd-telegram/res/values-pl/strings.xml index 520712150f..04784f2bdf 100644 --- a/OsmAnd-telegram/res/values-pl/strings.xml +++ b/OsmAnd-telegram/res/values-pl/strings.xml @@ -260,4 +260,7 @@ Maksymalny czas przechowywania punktów w buforze Czas ważności bufora Wybierz strefę czasową, która ma być wyświetlana w wiadomościach o Twojej lokalizacji. + Proponowane + Stan modułu śledzącego OsmAnd + Wróć do OsmAnd \ No newline at end of file diff --git a/OsmAnd-telegram/res/values-pt/strings.xml b/OsmAnd-telegram/res/values-pt/strings.xml index 767f63be9c..71f9006403 100644 --- a/OsmAnd-telegram/res/values-pt/strings.xml +++ b/OsmAnd-telegram/res/values-pt/strings.xml @@ -259,4 +259,7 @@ Unidade de velocidade Tempo máximo para armazenar pontos no buffer Tempo de expiração do buffer + Sugerido + Estado do Rastreador de OsmAnd + Voltar para OsmAnd \ No newline at end of file diff --git a/OsmAnd-telegram/res/values-sc/strings.xml b/OsmAnd-telegram/res/values-sc/strings.xml index d81aecb0bc..5198a5c437 100644 --- a/OsmAnd-telegram/res/values-sc/strings.xml +++ b/OsmAnd-telegram/res/values-sc/strings.xml @@ -261,4 +261,5 @@ Tempus de iscadidura de sa memòria tampone Cunsigiadu Istadu de s\'arrastadore de OsmAnd + Torra a OsmAnd \ No newline at end of file diff --git a/OsmAnd-telegram/src/net/osmand/telegram/TelegramService.kt b/OsmAnd-telegram/src/net/osmand/telegram/TelegramService.kt index 4915133e42..4b76c21fda 100644 --- a/OsmAnd-telegram/src/net/osmand/telegram/TelegramService.kt +++ b/OsmAnd-telegram/src/net/osmand/telegram/TelegramService.kt @@ -245,6 +245,8 @@ class TelegramService : Service(), LocationListener, TelegramIncomingMessagesLis oldestTime = -1 } app().showLocationHelper.addOrUpdateStatusWidget(oldestTime, isSending) + } else { + app().showLocationHelper.addOrUpdateStatusWidget(-1, false) } startWidgetUpdates() }, UPDATE_WIDGET_INTERVAL_MS) diff --git a/OsmAnd-telegram/src/net/osmand/telegram/TelegramSettings.kt b/OsmAnd-telegram/src/net/osmand/telegram/TelegramSettings.kt index 227215c03c..5ed8aea183 100644 --- a/OsmAnd-telegram/src/net/osmand/telegram/TelegramSettings.kt +++ b/OsmAnd-telegram/src/net/osmand/telegram/TelegramSettings.kt @@ -851,22 +851,7 @@ class TelegramSettings(private val app: TelegramApplication) { lastChatsInfo.forEach { lastInfo -> val obj = JSONObject() obj.put(LastChatInfo.CHAT_ID_KEY, lastInfo.chatId) - obj.put(LastChatInfo.PERIODS_KEY, convertPeriodsToJson(lastInfo.periods)) - jArray.put(obj) - } - jArray - } catch (e: JSONException) { - log.error(e) - null - } - } - - private fun convertPeriodsToJson(periods: LinkedList): JSONArray? { - return try { - val jArray = JSONArray() - for (i in 0 until periods.count()) { - val obj = JSONObject() - obj.put(i.toString(), periods[i]) + obj.put(LastChatInfo.PERIOD_KEY, lastInfo.period) jArray.put(obj) } jArray @@ -947,12 +932,7 @@ class TelegramSettings(private val app: TelegramApplication) { val obj = json.getJSONObject(i) val lastInfo = LastChatInfo().apply { chatId = obj.optLong(LastChatInfo.CHAT_ID_KEY) - periods = LinkedList() - val jsonArray = obj.getJSONArray(LastChatInfo.PERIODS_KEY) - for (j in 0 until jsonArray.length()) { - val o = jsonArray.get(j) as JSONObject - periods.addLast(o.optLong(j.toString())) - } + period = obj.optLong(LastChatInfo.PERIOD_KEY) } lastChatsInfo.addLast(lastInfo) } @@ -964,16 +944,14 @@ class TelegramSettings(private val app: TelegramApplication) { addItemToSuggested(id, time) } else { val index = lastChatsInfo.indexOf(lastInfo) - lastChatsInfo[index].periods = addTimeToPeriods(lastChatsInfo[index].periods, time) + lastChatsInfo[index].period = time } } private fun addItemToSuggested(id: Long, time: Long) { val newLastInfo = LastChatInfo().apply { chatId = id - periods = LinkedList().apply { - addFirst(time) - } + period = time } if (lastChatsInfo.size < 5) { lastChatsInfo.addFirst(newLastInfo) @@ -983,30 +961,6 @@ class TelegramSettings(private val app: TelegramApplication) { } } - private fun addTimeToPeriods(periods: LinkedList?, time: Long): LinkedList { - if (periods?.isNotEmpty() != null) { - return if (periods.size < 5) { - periods.addFirst(time) - periods - } else { - periods.removeLast() - periods.addFirst(time) - periods - } - } - return LinkedList().apply { addFirst(time) } - } - - fun calcLivePeriod(periods: LinkedList): Long { - val sortedPeriods = periods.toLongArray() - sortedPeriods.sort() - return if (sortedPeriods.size % 2 == 0) { - (sortedPeriods[sortedPeriods.size / 2] + sortedPeriods[sortedPeriods.size / 2 - 1]) / 2 - } else { - sortedPeriods[sortedPeriods.size / 2] - } - } - private fun getLiveNowChats() = app.telegramHelper.getMessagesByChatIds(locHistoryTime).keys private fun updatePrefs() { @@ -1512,11 +1466,11 @@ class TelegramSettings(private val app: TelegramApplication) { class LastChatInfo { var chatId = -1L - var periods = LinkedList() + var period = -1L companion object { internal const val CHAT_ID_KEY = "chatId" - internal const val PERIODS_KEY = "periods" + internal const val PERIOD_KEY = "period" } } } diff --git a/OsmAnd-telegram/src/net/osmand/telegram/ui/MyLocationTabFragment.kt b/OsmAnd-telegram/src/net/osmand/telegram/ui/MyLocationTabFragment.kt index 154116af0b..fab7f1db77 100644 --- a/OsmAnd-telegram/src/net/osmand/telegram/ui/MyLocationTabFragment.kt +++ b/OsmAnd-telegram/src/net/osmand/telegram/ui/MyLocationTabFragment.kt @@ -580,7 +580,7 @@ class MyLocationTabFragment : Fragment(), TelegramListener { val lastInfo = lastChatsInfo.find { it.chatId == chatId } if (chat != null && lastInfo != null) { val index = lastChatsInfo.indexOf(lastInfo) - lastItems.add(LastChat(chat, settings.calcLivePeriod(lastChatsInfo[index].periods))) + lastItems.add(LastChat(chat, lastChatsInfo[index].period)) } } return lastItems diff --git a/OsmAnd/res/drawable-hdpi/map_action_openstreetmap_logo.png b/OsmAnd/res/drawable-hdpi/map_action_openstreetmap_logo.png new file mode 100644 index 0000000000..a1a2c1b061 Binary files /dev/null and b/OsmAnd/res/drawable-hdpi/map_action_openstreetmap_logo.png differ diff --git a/OsmAnd/res/drawable-hdpi/map_action_world_globe.png b/OsmAnd/res/drawable-hdpi/map_action_world_globe.png new file mode 100644 index 0000000000..6ad36c2b3a Binary files /dev/null and b/OsmAnd/res/drawable-hdpi/map_action_world_globe.png differ diff --git a/OsmAnd/res/drawable-hdpi/map_bicycle_location_center.png b/OsmAnd/res/drawable-hdpi/map_bicycle_location_center.png index 189087522d..fa9db76c80 100644 Binary files a/OsmAnd/res/drawable-hdpi/map_bicycle_location_center.png and b/OsmAnd/res/drawable-hdpi/map_bicycle_location_center.png differ diff --git a/OsmAnd/res/drawable-hdpi/map_car_bearing_center.png b/OsmAnd/res/drawable-hdpi/map_car_bearing_center.png index a64378bdf4..eee499e1f4 100644 Binary files a/OsmAnd/res/drawable-hdpi/map_car_bearing_center.png and b/OsmAnd/res/drawable-hdpi/map_car_bearing_center.png differ diff --git a/OsmAnd/res/drawable-hdpi/map_car_location_center.png b/OsmAnd/res/drawable-hdpi/map_car_location_center.png index 6bcc605ba3..3fe4224e0c 100644 Binary files a/OsmAnd/res/drawable-hdpi/map_car_location_center.png and b/OsmAnd/res/drawable-hdpi/map_car_location_center.png differ diff --git a/OsmAnd/res/drawable-hdpi/map_default_location_center.png b/OsmAnd/res/drawable-hdpi/map_default_location_center.png index e0d6878129..d982b5ba2a 100644 Binary files a/OsmAnd/res/drawable-hdpi/map_default_location_center.png and b/OsmAnd/res/drawable-hdpi/map_default_location_center.png differ diff --git a/OsmAnd/res/drawable-hdpi/map_nautical_bearing_center.png b/OsmAnd/res/drawable-hdpi/map_nautical_bearing_center.png index 9e9d79e0c2..3b3ed315cd 100644 Binary files a/OsmAnd/res/drawable-hdpi/map_nautical_bearing_center.png and b/OsmAnd/res/drawable-hdpi/map_nautical_bearing_center.png differ diff --git a/OsmAnd/res/drawable-mdpi/map_action_openstreetmap_logo.png b/OsmAnd/res/drawable-mdpi/map_action_openstreetmap_logo.png new file mode 100644 index 0000000000..8283adb943 Binary files /dev/null and b/OsmAnd/res/drawable-mdpi/map_action_openstreetmap_logo.png differ diff --git a/OsmAnd/res/drawable-mdpi/map_action_world_globe.png b/OsmAnd/res/drawable-mdpi/map_action_world_globe.png new file mode 100644 index 0000000000..f12948b7a8 Binary files /dev/null and b/OsmAnd/res/drawable-mdpi/map_action_world_globe.png differ diff --git a/OsmAnd/res/drawable-mdpi/map_bicycle_location_center.png b/OsmAnd/res/drawable-mdpi/map_bicycle_location_center.png index ef8f08ae14..57816a9e49 100644 Binary files a/OsmAnd/res/drawable-mdpi/map_bicycle_location_center.png and b/OsmAnd/res/drawable-mdpi/map_bicycle_location_center.png differ diff --git a/OsmAnd/res/drawable-mdpi/map_car_bearing_center.png b/OsmAnd/res/drawable-mdpi/map_car_bearing_center.png index 26eaaa57db..3c3b8dc658 100644 Binary files a/OsmAnd/res/drawable-mdpi/map_car_bearing_center.png and b/OsmAnd/res/drawable-mdpi/map_car_bearing_center.png differ diff --git a/OsmAnd/res/drawable-mdpi/map_car_location_center.png b/OsmAnd/res/drawable-mdpi/map_car_location_center.png index 7dea360749..ca9151546b 100644 Binary files a/OsmAnd/res/drawable-mdpi/map_car_location_center.png and b/OsmAnd/res/drawable-mdpi/map_car_location_center.png differ diff --git a/OsmAnd/res/drawable-mdpi/map_default_location_center.png b/OsmAnd/res/drawable-mdpi/map_default_location_center.png index 63066b1c98..54dbb300ad 100644 Binary files a/OsmAnd/res/drawable-mdpi/map_default_location_center.png and b/OsmAnd/res/drawable-mdpi/map_default_location_center.png differ diff --git a/OsmAnd/res/drawable-mdpi/map_nautical_bearing_center.png b/OsmAnd/res/drawable-mdpi/map_nautical_bearing_center.png index 6e31e68016..7153af9cc4 100644 Binary files a/OsmAnd/res/drawable-mdpi/map_nautical_bearing_center.png and b/OsmAnd/res/drawable-mdpi/map_nautical_bearing_center.png differ diff --git a/OsmAnd/res/drawable-xhdpi/map_action_openstreetmap_logo.png b/OsmAnd/res/drawable-xhdpi/map_action_openstreetmap_logo.png new file mode 100644 index 0000000000..5556cf200f Binary files /dev/null and b/OsmAnd/res/drawable-xhdpi/map_action_openstreetmap_logo.png differ diff --git a/OsmAnd/res/drawable-xhdpi/map_action_world_globe.png b/OsmAnd/res/drawable-xhdpi/map_action_world_globe.png new file mode 100644 index 0000000000..5b2b24f48a Binary files /dev/null and b/OsmAnd/res/drawable-xhdpi/map_action_world_globe.png differ diff --git a/OsmAnd/res/drawable-xhdpi/map_bicycle_location_center.png b/OsmAnd/res/drawable-xhdpi/map_bicycle_location_center.png index 09eceefe2a..bfc3321bbd 100644 Binary files a/OsmAnd/res/drawable-xhdpi/map_bicycle_location_center.png and b/OsmAnd/res/drawable-xhdpi/map_bicycle_location_center.png differ diff --git a/OsmAnd/res/drawable-xhdpi/map_car_bearing_center.png b/OsmAnd/res/drawable-xhdpi/map_car_bearing_center.png index 906ec0426d..87b2d06397 100644 Binary files a/OsmAnd/res/drawable-xhdpi/map_car_bearing_center.png and b/OsmAnd/res/drawable-xhdpi/map_car_bearing_center.png differ diff --git a/OsmAnd/res/drawable-xhdpi/map_car_location_center.png b/OsmAnd/res/drawable-xhdpi/map_car_location_center.png index a6e3ea1a9f..4202db3ab5 100644 Binary files a/OsmAnd/res/drawable-xhdpi/map_car_location_center.png and b/OsmAnd/res/drawable-xhdpi/map_car_location_center.png differ diff --git a/OsmAnd/res/drawable-xhdpi/map_default_location_center.png b/OsmAnd/res/drawable-xhdpi/map_default_location_center.png index 4367f4c64f..ea47d0986d 100644 Binary files a/OsmAnd/res/drawable-xhdpi/map_default_location_center.png and b/OsmAnd/res/drawable-xhdpi/map_default_location_center.png differ diff --git a/OsmAnd/res/drawable-xhdpi/map_nautical_bearing_center.png b/OsmAnd/res/drawable-xhdpi/map_nautical_bearing_center.png index ebcfa3dcec..b87c219533 100644 Binary files a/OsmAnd/res/drawable-xhdpi/map_nautical_bearing_center.png and b/OsmAnd/res/drawable-xhdpi/map_nautical_bearing_center.png differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_action_openstreetmap_logo.png b/OsmAnd/res/drawable-xxhdpi/map_action_openstreetmap_logo.png new file mode 100644 index 0000000000..11213d2703 Binary files /dev/null and b/OsmAnd/res/drawable-xxhdpi/map_action_openstreetmap_logo.png differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_action_world_globe.png b/OsmAnd/res/drawable-xxhdpi/map_action_world_globe.png new file mode 100644 index 0000000000..3a8107e477 Binary files /dev/null and b/OsmAnd/res/drawable-xxhdpi/map_action_world_globe.png differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_bicycle_location_center.png b/OsmAnd/res/drawable-xxhdpi/map_bicycle_location_center.png index 2f34bb4cf4..0713820cb4 100644 Binary files a/OsmAnd/res/drawable-xxhdpi/map_bicycle_location_center.png and b/OsmAnd/res/drawable-xxhdpi/map_bicycle_location_center.png differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_car_bearing_center.png b/OsmAnd/res/drawable-xxhdpi/map_car_bearing_center.png index 2e4bd781b7..00a5038623 100644 Binary files a/OsmAnd/res/drawable-xxhdpi/map_car_bearing_center.png and b/OsmAnd/res/drawable-xxhdpi/map_car_bearing_center.png differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_car_location_center.png b/OsmAnd/res/drawable-xxhdpi/map_car_location_center.png index 5c51d05a34..6f30e3a987 100644 Binary files a/OsmAnd/res/drawable-xxhdpi/map_car_location_center.png and b/OsmAnd/res/drawable-xxhdpi/map_car_location_center.png differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_default_location_center.png b/OsmAnd/res/drawable-xxhdpi/map_default_location_center.png index bb91309b8e..248c07554d 100644 Binary files a/OsmAnd/res/drawable-xxhdpi/map_default_location_center.png and b/OsmAnd/res/drawable-xxhdpi/map_default_location_center.png differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_nautical_bearing_center.png b/OsmAnd/res/drawable-xxhdpi/map_nautical_bearing_center.png index 44c5ce44d8..5a1ecfd8ab 100644 Binary files a/OsmAnd/res/drawable-xxhdpi/map_nautical_bearing_center.png and b/OsmAnd/res/drawable-xxhdpi/map_nautical_bearing_center.png differ diff --git a/OsmAnd/res/drawable-xxxhdpi/map_action_openstreetmap_logo.png b/OsmAnd/res/drawable-xxxhdpi/map_action_openstreetmap_logo.png new file mode 100644 index 0000000000..a839fa92e6 Binary files /dev/null and b/OsmAnd/res/drawable-xxxhdpi/map_action_openstreetmap_logo.png differ diff --git a/OsmAnd/res/drawable-xxxhdpi/map_action_world_globe.png b/OsmAnd/res/drawable-xxxhdpi/map_action_world_globe.png new file mode 100644 index 0000000000..1f121a8240 Binary files /dev/null and b/OsmAnd/res/drawable-xxxhdpi/map_action_world_globe.png differ diff --git a/OsmAnd/res/drawable-xxxhdpi/map_bicycle_location_center.png b/OsmAnd/res/drawable-xxxhdpi/map_bicycle_location_center.png index 18cf1d50bd..e7677b9c69 100644 Binary files a/OsmAnd/res/drawable-xxxhdpi/map_bicycle_location_center.png and b/OsmAnd/res/drawable-xxxhdpi/map_bicycle_location_center.png differ diff --git a/OsmAnd/res/drawable-xxxhdpi/map_car_bearing_center.png b/OsmAnd/res/drawable-xxxhdpi/map_car_bearing_center.png index be0332383f..abd9a13037 100644 Binary files a/OsmAnd/res/drawable-xxxhdpi/map_car_bearing_center.png and b/OsmAnd/res/drawable-xxxhdpi/map_car_bearing_center.png differ diff --git a/OsmAnd/res/drawable-xxxhdpi/map_car_location_center.png b/OsmAnd/res/drawable-xxxhdpi/map_car_location_center.png index 70fe9f45a0..d723f1b709 100644 Binary files a/OsmAnd/res/drawable-xxxhdpi/map_car_location_center.png and b/OsmAnd/res/drawable-xxxhdpi/map_car_location_center.png differ diff --git a/OsmAnd/res/drawable-xxxhdpi/map_default_location_center.png b/OsmAnd/res/drawable-xxxhdpi/map_default_location_center.png index 5f247463bc..29f37937df 100644 Binary files a/OsmAnd/res/drawable-xxxhdpi/map_default_location_center.png and b/OsmAnd/res/drawable-xxxhdpi/map_default_location_center.png differ diff --git a/OsmAnd/res/drawable-xxxhdpi/map_nautical_bearing_center.png b/OsmAnd/res/drawable-xxxhdpi/map_nautical_bearing_center.png index 54fd3a255c..9e059e7a15 100644 Binary files a/OsmAnd/res/drawable-xxxhdpi/map_nautical_bearing_center.png and b/OsmAnd/res/drawable-xxxhdpi/map_nautical_bearing_center.png differ diff --git a/OsmAnd/res/layout/close_measurement_tool_dialog.xml b/OsmAnd/res/layout/close_measurement_tool_dialog.xml index 66d2b6fa42..a115022164 100644 --- a/OsmAnd/res/layout/close_measurement_tool_dialog.xml +++ b/OsmAnd/res/layout/close_measurement_tool_dialog.xml @@ -10,6 +10,9 @@ android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" + android:textColor="?android:textColorPrimary" + android:layout_marginLeft="@dimen/content_padding_small" + android:layout_marginStart="@dimen/content_padding_small" android:text="@string/keep_showing_on_map"/> diff --git a/OsmAnd/res/layout/show_dashboard_on_start_dialog_item.xml b/OsmAnd/res/layout/show_dashboard_on_start_dialog_item.xml index fdc43a96db..0c5a467c10 100644 --- a/OsmAnd/res/layout/show_dashboard_on_start_dialog_item.xml +++ b/OsmAnd/res/layout/show_dashboard_on_start_dialog_item.xml @@ -2,6 +2,7 @@ diff --git a/OsmAnd/res/layout/waypoint_reached.xml b/OsmAnd/res/layout/waypoint_reached.xml index 873a1441a8..f9519ca4be 100644 --- a/OsmAnd/res/layout/waypoint_reached.xml +++ b/OsmAnd/res/layout/waypoint_reached.xml @@ -48,7 +48,7 @@ android:layout_gravity="center_vertical" android:ellipsize="end" android:maxLines="2" - android:textColor="?android:textColorSecondary" + android:textColor="?android:textColorPrimary" android:textSize="@dimen/default_list_text_size" tools:text="Some waypoint text"/> diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index d7802ba7ce..a55120758a 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -1965,7 +1965,7 @@ \n \nهذه الرؤية يمكن التراجع عنها إما عن طريق تعطيلها هنا، أو تغيير \'نمط الخريطة\' في \'ضبط الخريطة\' حسب الرغبة. - على الانترنت OSM تصنيف الخريطة مع الصور. + Online OSM تصنيف الخريطة مع الصور. تعيين الحد الأقصى لوقت الانتظار لكل إصلاح موقع في الخلفية. الانتظار الأقصى للإصلاح إصدار غير معتمد من البيانات الصوتية @@ -3335,4 +3335,9 @@ اختر الايقونة واللون والاسم تحرير قائمة ملفات التعريف الملف الشخصي المحدد + بالضغط على %1$s، ستفقد كل تغييراتك. + سيتم إعادة ضبط جميع إعدادات البروفايل إلى الحالة بعد التثبيت. + إعادة تعيين جميع إعدادات البروفايل إلى الوضع الافتراضي؟ + %2$s %1$s + %2$s :%1$s \ No newline at end of file diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml index 7dae5c956e..b19bce1b0c 100644 --- a/OsmAnd/res/values-be/strings.xml +++ b/OsmAnd/res/values-be/strings.xml @@ -68,7 +68,7 @@ Пункт Назва файла GPX GPX-файл захаваны ў {0} - Убудова дадае на экран мапы віджэт, які дазваляе ствараць маршруты, націснуйшы на мапу, а таксама выкарыстоўваць ці змяняць наяўныя файлы GPX, планаваць паездку і вымяраць адлегласць паміж пунктамі. Вынікі могуць быць захаваныя ў выглядзе файла GPX, які пасля можа быць выкарыстаны для навігацыі. + Убудова дадае на мапу віджэт, які дазваляе ствараць маршруты, націснуйшы на мапу, а таксама выкарыстоўваць ці змяняць наяўныя файлы GPX, планаваць паездку і вымяраць адлегласць паміж пунктамі. Вынікі могуць быць захаваныя ў выглядзе файла GPX, які пасля можа быць выкарыстаны для навігацыі. Прылада для разліку адлегласцяў і плянавання * Націсніце, каб адзначыць пункт. \n * Доўга ўтрымлівайце на мапе, каб выдаліць папярэдні пункт. @@ -97,14 +97,14 @@ Вэб-сайт Тэлефон Запіс падарожжа - Налады запісу вашых падарожжаў. + Наладзьце запіс вашых паездак. Паказвае налады ўключэння фонавага адсочвання і навігацыі праз перыядычнае абуджэнне GPS прылады (з выключаным экранам). Усталёўка версіі Абраць выгляд дадатку. Выгляд Налады адмысловых магчымасцяў Абраць адрас - Абярыце ўлюбёнае + Абярыце ўлюбёную мясціну Мадыфікацыі OSM Слой рэльефу мясцовасці Інфармацыя GPS @@ -117,7 +117,7 @@ няма OpenMaps Еўропа Пласт з рэльефам мясцовасці - Ізалініі вышынь + Контурныя лініі Аўдыё/відэа даныя Сапраўды спыніць навігацыю? Сапраўды выдаліць пункт прызначэння (і прамежкавыя пункты)\? @@ -131,7 +131,7 @@ Убудова Dropbox Змяніць парадак Калі ласка, падумайце пра набыццё ўбудовы «Contour lines» для падтрымкі далейшай распрацоўкі. - Убудова Ізалініі вышынь + Убудова контурных ліній Выбар па запыце Запіс відэа Запіс аўдыё @@ -165,14 +165,14 @@ Вымярэнне адлегласці Месцазнаходжанне для прывязкі нататкі пакуль яшчэ не вызначылася. «Выкарыстаць месцазнаходжанне…» для запісу нататкі ў абраным месцы. Аўдыянататкі - Убудова для стварэння аўдыё/відэа нататак падчас падарожжаў, з дапамогай кнопкі на экране мапы альбо праз кантэкстнае меню на любым месцы на мапе. + Убудова для стварэння аўдыё/відэа нататак падчас падарожжаў, з дапамогай кнопкі на мапе альбо праз кантэкстнае меню на любым месцы на мапе. Аўдыё/відэа нататкі частак - Ізалініі вышынь - Ізалініі вышынь + Контурныя лініі + Контурныя лініі Іншыя мапы Толькі дарогі - Ізалініі вышынь + Контурныя лініі Стандартныя мапы Мапа толькі дарог Межы @@ -238,85 +238,85 @@ OsmAnd Мапы і навігацыя Глабальная мабільная мапа і навігатар для аўтаномных і сеціўных мапаў OSM OsmAnd (OSM Automated Navigation Directions) -\n -\n +\n +\n \nOsmAnd — навігацыйны дадатак з адкрытым кодам з доступам да разнастайных даных ад OpenStreetMap (OSM). Усе даныя (вектарныя і растравыя) можна захаваць на картцы памяці для аўтаномнага выкарыстання. Таксама падтрымліваецца аўтаномная і сеціўная маршрутызацыя, уключаючы пакрокавае галасавое суправаджэнне. -\n -\n -\n +\n +\n +\n \nНекалькі асноўных магчымасцяў: -\n +\n \n - паўнавартасная праца без інтэрнэт-злучэння (захоўвае вектарныя або растравыя даныя ў памяці прылады); -\n +\n \n - кампактная вектарная мапа ўсяго свету; -\n +\n \n - спампоўванне мапаў краін або рэгіёну непасрэдна ў дадатку; -\n -\n - магчымасць адлюстравання звестак на мапе, напрыклад пласт для пракладкі маршруту або пласт з запісам GPX-следу, з POI, улюбёнымі, ізалініямі вышынь, грамадскім транспартам, дадатковымі мапамі з магчымасцю налады ўзроўню празрыстасці; -\n +\n +\n - магчымасць адлюстравання звестак на мапе, напрыклад пласт для пракладкі маршруту або пласт з запісам GPX-следу, з POI, улюбёнымі мясцінамі, ізалініямі вышынь, грамадскім транспартам, дадатковымі мапамі з магчымасцю налады ўзроўню празрыстасці; +\n \n - аўтаномны пошук адрасоў і POI; -\n +\n \n - пракладка маршрутаў па-за сецівам на кароткія адлегласці (эксперыментальная функцыя); -\n +\n \n - рэжымы для пешаходнай, аўтамабільнай і роваравай навігацыі з: -\n +\n \n - магчымасцю аўтаматычнага пераключэння дзённага/начнога адлюстравання; -\n +\n \n - аўтамаштабаваннем мапы ў адпаведнасці з хуткасцю руху; -\n +\n \n - магчымасцю арыентацыі мапы па компасе або кірунку руху, -\n +\n \n - паказам руху па палосах і абмежаванняў хуткасці, запісанае і сінтэзуемае галасавое суправаджэнне. -\n -\n +\n +\n \nАбмежаванні бясплатнай версіі: -\n +\n \n - колькасць спамповак мапаў абмежаваная; -\n +\n \n - адсутнічае пазасеціўны доступ да інфармацыі з Вікіпедыі для POI. -\n -\n +\n +\n \nOsmAnd актыўна развіваецца, яго далейшае развіццё забяспечваецца фінансавымі паступленнямі ад яго карыстальнікаў, за кошт якіх адбываецца далейшая распрацоўка і тэставанне новых функцый. Калі ласка, разгледзьце магчымасць набыцця OsmAnd+ або падтрымайце распрацоўку пэўных функцый, або зрабіце дабрачынны ўнёсак на https://osmand.net. OsmAnd+ Мапы і навігацыя Глабальная мабільная мапа і навігатар для аўтаномных і сеціўных мапаў OSM OsmAnd+ (OSM Automated Navigation Directions) -\n -\n -\n +\n +\n +\n \n OsmAnd+ — навігацыйны дадатак з адкрытым кодам з доступам да разнастайных даных ад OpenStreetMap (OSM). Усе даныя (вектарныя і растравыя) можна захаваць на картцы памяці для далейшага аўтаномнага выкарыстання. Таксама падтрымліваецца аўтаномная і сеціўная маршрутызацыя, уключаючы пакрокавае галасавое суправаджэнне. -\n -\n -\n +\n +\n +\n \n OsmAnd+ — гэта платная версія, купляючы якую вы падтрымліваеце праект, фінансуеце распрацоўку новых функцый, і атрымліваеце апошнія абнаўленні. -\n -\n -\n +\n +\n +\n \n Некалькі асноўных магчымасцяў: -\n +\n \n - поўнасцю аўтаномная праца (захаванне вектарных або растравых мапаў у памяці прылады); -\n +\n \n - кампактная вектарная мапа для ўсяго cвету; -\n +\n \n - неабмежаваная колькасць спампоўванняў мапаў асобнай краіны або рэгіёну непасрэдна ў дадатку; -\n +\n \n - магчымасць аўтаномнай працы з данымі Вікіпедыі (спампоўванне POI з Вікіпедыі) з\'яўляецца цудоўным інструментам для падарожнікаў; -\n +\n \n - магчымасць адлюстравання звестак на мапе, напрыклад пласт для пракладкі маршруту або пласт з запісам GPX-следу, з POI, улюбёнымі, ізалініямі вышынь, грамадскім транспартам, дадатковымі мапамі з магчымасцю налады ўзроўню празрыстасці; -\n -\n -\n +\n +\n +\n \n - аўтаномны пошук адрасоў і POI; -\n +\n \n - аўтаномная пракладка маршрутаў для сярэдніх адлегласцяў; -\n +\n \n - рэжымы для пешаходнай, аўтамабільнай і роварнай навігацыі з: -\n +\n \n - пераключэннем паміж дзённым і начным рэжымамі; -\n +\n \n - маштабаваннем мапы ў адпаведнасці з хуткасцю руху; -\n +\n \n - арыентацыяй мапы па компасе або кірунку руху; -\n +\n \n - паказ палос руху і абмежаванняў хуткасці, галасавое суправаджэнне \n Стварыць фільтр POI @@ -392,7 +392,7 @@ PM AM Месца стаянкі - Убудова месца паркоўкі дазваляе запісаць дзе быў прыпаркаваны ваш аўтамабіль і колькі часу засталося ў выпадку абмежаванай па часе стаянкі. Месца паркоўкі і час відаць на панэлі кіравання OsmAnd і на віджэце на экране з мапай. У каляндар Android можна дадаць напамін. + Убудова месца паркоўкі дазваляе запісаць дзе быў прыпаркаваны ваш аўтамабіль і колькі часу засталося ў выпадку абмежаванай па часе стаянкі. Месца паркоўкі і час даступныя на панэлі кіравання OsmAnd і на віджэце на мапе. У каляндар Android можна дадаць напамін. Месца паркоўкі Пазначыць месца стаянкі Выдаліць адзнаку месца стаянкі @@ -409,7 +409,7 @@ Рэжым візуалізацыі Аптымізаваць мапу для Мінімальны ўзровень маштабу з адлюстраваннем ізаліній вышынь: - Паказваць ізалініі вышынь + Паказваць контурныя лініі Адлюстроўваць больш дэталяў на мапе. Паказаць больш дэталяў мапы Даныя маршрутызацыі @@ -418,7 +418,7 @@ Пошук па адрасе Каардынаты Пошук грамадскага транспарту - Спосаб пошуку ўлюбёных + Спосаб пошуку ва ўлюбёных мясцінах Аўтаномная навігацыя OsmAnd часова недаступная. Левабаковы рух Для краін, дзе людзі ездзяць па леваму боку дарогі. @@ -437,13 +437,13 @@ Выкарвстоўваць сеціўныя мапы (cпампаваць і захоўваць фрагменты на картцы памяці). Сеціўныя мапы Наладзіць крыніцы сеціўных або кэшаваных растравых мапаў. - З дапамогай гэтай убудовы вы можаце атрымаць доступ да мноства тыпаў сеціўных мапаў (тайлавых альбо растравых), ад папярэдне створаных фрагментаў OpenStreetMap (Mapnik) да спадарожнікавых здымкаў і пластоў адмысловага прызначэння, такіх як мапы надвор\'я, кліматычныя мапы, геалагічныя мапы, пласты зацямнення вышынь і г.д. + Пры дапамозе гэтай убудовы вы можаце атрымаць доступ да мноства тыпаў сеціўных мапаў (тайлавых альбо растравых), ад папярэдне вызначаных фрагментаў OpenStreetMap (Mapnik) да спадарожнікавых здымкаў і пластоў адмысловага прызначэння, такіх як мапы надвор\'я, кліматычныя мапы, геалагічныя мапы, пласты зацямнення вышынь і г.д. \n -\nЛюбая з гэтых мапаў можа быць выкарыстана ў якасці асноўнай (базавай) мапы для адлюстравання на экране OsmAnd або ў выглядзе накладкі / падкладкі да іншай базавай мапы (стандартнай аўтаномнай мапы OsmAnd). Для таго каб зрабіць любую падкладку больш бачнай, некаторыя элементы вектарнай мапы OsmAnd могуць быць па жаданні лёгка схаваныя праз меню «Налады мапы». +\nЛюбую з гэтых мапаў можна выкарыстаць у якасці асноўнай (базавай) мапы для адлюстравання на экране OsmAnd або ў выглядзе накладкі / падкладкі да іншай базавай мапы (стандартнай аўтаномнай мапы OsmAnd). Для таго, каб зрабіць любую падкладку больш бачнай, некаторыя элементы вектарнай мапы OsmAnd можна лёгка схаваць праз меню \"Наладзіць мапу\". \n -\nТайлавыя мапы могуць быць атрыманыя непасрэдна з дапамогай сеціўных крыніц або могуць быць падрыхтаваныя для выкарыстання ў аўтаномным рэжыме (і ўласнаручна скапіяваныя ў каталог даных OsmAnd) як база даных SQLite, якую можна атрымаць з дапамогай розных інструментаў падрыхтоўкі мапаў іншых вытворцаў. - Убудова дадае падтрымку дадатковых магчымасцяў непасрэдна ў OsmAnd. Гэта палягчае, напрыклад, рэгуляванне хуткасці вымаўлення для голасу TTS, наладу накіраванасці экрана навігацыі, кіраванне маштабам пры дапамозе трэкбола або выкарыстанне галасавых загадаў зваротнай сувязі для аўтаматычнага агалошвання вашага месцазнаходжання. - Убудова адлюстроўвае параметры для распрацоўкі і адладкі функцый, такіх як, праверка або мадэляванне маршруту, адлюстраванне прадукцыйнасці адмалёўкі, праверка галасавых падказак. Гэтыя налады прызначаныя для распрацоўшчыкаў і не патрэбныя звычайнаму карыстальніку. +\nТайлавыя мапы можна атрымаць непасрэдна з сеціўных крыніц або можна падрыхтаваць для выкарыстання ў аўтаномным рэжыме (і ўласнаручна скапіяваць у каталог даных OsmAnd) як базу даных SQLite, якую можна атрымаць пры дапамозе розных інструментаў падрыхтоўкі мапаў іншых вытворцаў. + Убудова дадае падтрымку дадатковых магчымасцяў непасрэдна ў OsmAnd. Гэта палягчае, напрыклад, рэгуляванне хуткасці вымаўлення для голасу TTS, наладку накіраванасці экрана навігацыі, кіраванне маштабам пры дапамозе трэкбола або выкарыстанне галасавых загадаў зваротнай сувязі для аўтаматычнага агалошвання вашага месцазнаходжання. + Убудова адлюстроўвае параметры для распрацоўкі і адладкі функцый, такіх як, праверка або мадэляванне маршруту, адлюстраванне прадукцыйнасці адмалёўкі, праверка галасавых падказак. Гэта налады для распрацоўшчыкаў і не патрэбныя звычайнаму карыстальніку. Убудовы Убудовы актывуюць дадатковыя налады і магчымасці. Убудовы @@ -552,7 +552,7 @@ Галасавыя падказкі (TTS, пажадана) Вікіпедыя (пазасеціўная) Вызначанае карыстальнікам - Файл з экспартаванымі ўлюбёнымі ўжо існуе. Замяніць яго\? + Файл з экспартаванымі ўлюбёнымі мясцінамі ўжо існуе. Замяніць яго\? Налады профілю Навігацыя Вызначыць параметры навігацыі. @@ -567,7 +567,7 @@ Фонавы рэжым OsmAnd працуе ў фоне з адключаным экранам. Не стае вольнага месца для спампоўвання %1$s МБ (вольна: %2$s). - Спампаваць {0} файл(аў)\? Выкарыстоўваецца {1} МБ. (Зараз ё {2} МБ вольнага месца.) + Спампаваць {0} файл(аў)\? Будзе выкарыстана {1} МБ з {2} МБ. Празрыстая тэма Уласныя бібліятэкі не падтрымліваюцца гэтай прыладай. Ініцыалізацыя ўласных бібліятэк… @@ -602,7 +602,7 @@ Вызначэнне становішча… Маё становішча (знойдзена) Адрас… - Улюбёныя… + Улюбёныя мясціны… Нявызначана Цяперашні цэнтр мапы Пачатак: @@ -615,7 +615,7 @@ Адправіць у OSM Паказаць больш дэталяў мапы Паказаць некаторыя дэталі вектарнай мапы (дарогі і іншыя) на меншым маштабе. - Улюбёныя пункты выдаленыя. + Улюбёныя мясціны выдаленыя. Вы збіраецеся выдаліць %1$d улюбёных і %2$d груп улюбёных. Вы ўпэўненыя\? Дом Сябры @@ -684,7 +684,7 @@ Абярыце (растравыя) мапы для ўсталёўкі або абнаўлення. Немагчыма выканаць аперацыю без падлучэнне да Інтэрнэту. Усталяваць яшчэ… - Выкарыстоўваць агульныя растравыя мапы да гэтага ўзроўня. + Выкарыстоўваць агульныя растравыя мапы да гэтага ўзроўню. Мінімальны ўзровень набліжэння для вектарных мапаў Не атрымалася выканаць пошук у аўтаномным рэжыме. Пошук па геаграфічнаму становішчу @@ -750,7 +750,7 @@ \nНавігацыя часова пераключаецца на сэрвіс CloudMade. Вызначаны каталог не знойдзены. Каталог захоўвання даных - Усе аўтаномныя даныя ў старой усталяванай праграме будуць падтрымлівацца новай, але ўлюбёныя пункты патрэбна экспартаваць са старой версіі і імпартаваць у новую. + Усе аўтаномныя даныя ў старым усталяваным дадатку будуць падтрымлівацца новым, але ўлюбёныя мясціны патрэбна экспартаваць са старой версіі і імпартаваць у новую. Зборка {0} ўсталяваная ({1}). Спампоўваецца зборка… Усталяваць OsmAnd - {0} з {1} {2} МБ? @@ -807,10 +807,10 @@ Абраць выроўніванне мапы. Арыентацыя мапы Падрабязнасці маршруту - Улюбёныя імпартаваныя - GPX-файл з улюбёнымі не знойдзены ў {0} - Улюбёныя захаваныя ў {0} - Улюбёныя месцы для захавання адсутнічаюць + Улюбёныя мясціны паспяхова імпартаваныя + GPX-файл з улюбёнымі мясцінамі не знойдзены ў {0} + Улюбёныя мясціны захаваныя ў {0} + Улюбёныя мясціны для захавання адсутнічаюць Не атрымалася загрузіць GPX Даслаць справаздачу На картцы памяці не атрымалася знайсці спампаваных мапаў. @@ -925,10 +925,10 @@ Спампоўваецца спіс даступных рэгіёнаў… Не ўдалося атрымаць спіс рэгіёнаў з https://osmand.net. Улюбёны пункт быў зменены - Улюбёныя месцы адсутнічаюць + Улюбёныя мясціны адсутнічаюць Замяніць Паказаць маршрут - Пачаць кіраванне + Запуск суправаджэння Спачатку абярыце пункт прызначэння Навігацыя Гадзіны працы @@ -959,7 +959,7 @@ Скончана Выкарыстоўваць Інтэрнэт для разліку маршруту. Выкарыстоўваць сеціўную навігацыю - Задаць налады для OpenStreetMap.org (OSM), неабходныя для ўнёска. + Вызначыць налады для OpenStreetMap.org (OSM), неабходныя для ўнёска. Выбар мовы, абнаўленне даных. Даныя Рэдагаванне OSM @@ -967,7 +967,7 @@ Захаваць дзейны след зараз жа як GPX-файл. Захаваць дзейны след Інтэрвал захавання падчас навігацыі - Абраць інтэрвал захоўвання пунктаў следу падчас навігацыі. + Вызгачце інтэрвал захоўвання пунктаў следу падчас навігацыі GPX-след аўтаматычна захаваны ў каталог слядоў падчас навігацыі. Аўтаматычна запісваць след падчас навігацыі Абнавіць мапу @@ -1003,7 +1003,7 @@ Абраць рэгіён са спіса Абраць скрыжаванне Бліжэйшыя паслугі - Кіраванне + Аўтамабіль Язда на ровары Хада У цэнтры @@ -1023,18 +1023,18 @@ Скрыжаванне Абнавіць мапу Стварыць POI - Увядзіце назву ўлюбёнага + Увядзіце назву ўлюбёнай мясціны Улюбёнае - Улюбёны пункт «{0}» дададзены. - Рэдагаваць улюбёнае - Выдаліць улюбёнае - Выдаліць улюбёны пункт «%s»\? - Улюбёны пункт {0} выдалены. + Улюбёная мясціна \"{0}\" паспяхова дададзеная. + Рэдагаваць мясціну + Выдаліць мясціну + Выдаліць улюбёную мясціну \"%s\"\? + Улюбёная мясціна {0} выдаленая. Пароль OSM (неабавязковы) Паведамленне Імя аўтара Каментар дададзены - Не атрымалася дадаць каментар + Не атрымалася дадаць каментар. Рэдагаваць POI Стварыць POI Вузел не знойдзены або зручнасць (amenity) складаецца з некалькіх вузлоў, што не падтрымліваецца. @@ -1118,13 +1118,13 @@ Выкарыстаць паказаны след для навігацыі? Маршрутная інфармацыя Аддаваць перавагу аўтамагістралям - Пазбягаць платных дарог + Без платных дарог Пазбягаць платных дарог - Пазбягаць грунтовых дарог - Пазбягаць грунтовых дарог. - Пазбягаць паромных перапраў - Пазбягаць перапраў - Пазбягаць аўтамагістраляў + Без грунтавых дарог + Пазбягаць грунтавых дарог + Без паромных перапраў + Пазбягаць паромных перапраў + Без аўтамагістраляў Пазбягаць аўтамагістраляў Абмежаванне вагі Пазначыць дазволеную вагу аўтамабіля на маршрутах. @@ -1132,7 +1132,7 @@ Капіяванне даных OsmAnd у новае месца (%s)… Капіяванне даных OsmAnd… Грузавік - Задайце хуткасць вымаўлення для TTS. + Задайце хуткасць вымаўлення для text-to-speech. Хуткасць вымаўлення Адключыць складаную маршрутызацыю Адмалёўка мапы @@ -1150,7 +1150,7 @@ Навігацыйныя знакі ўсяго свету Плацяжы Bitcoin ўсяго свету Дадаць наступным пунктам прызначэння - Абраць месца прызначэння + Вызначыць пункт прызначэння Налады маршруту Пазасеціўны разлік маршруту ў OsmAnd Налады навігацыі @@ -1182,18 +1182,20 @@ Паўтараць навігацыйныя інструкцыі праз рэгулярныя прамежкі часу. Паўтараць навігацыйныя інструкцыі Абвяшчэнне прыбыцця - Гэтая ўбудова паказвае як ізалініі вышынь, так і рэльеф на стандартных мапах OsmAnd. Гэтыя магчымасці спатрэбяцца спартоўцам, турыстам, падарожнікам і ўсім, хто цікавіцца структурай рэльефу мясцовасці. + Гэтая ўбудова паказвае як контурныя лініі, так і рэльеф на стандартных мапах OsmAnd. Гэтыя магчымасці спатрэбяцца спартоўцам, турыстам, падарожнікам і ўсім, хто цікавіцца структурай рэльефу мясцовасці. \n \nГлабальныя даныя (паміж 70 ° на поўначы і 70 ° на поўдні) грунтуюцца на вымярэннях SRTM (Shuttle Radar Topography Mission) і ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), даных інструменту візуалізацыі Terra, флагманскага спадарожніка сістэмы назірання Зямлі ад NASA. ASTER — гэта вынік сумеснай працы NASA, міністэрства эканомікі Японіі, міністэрства гандлю і прамысловасці Японіі (METI), агенцтва касмічных сістэм Японіі (J-spacesystems). - "Гэтая ўбудова паказвае як ізалініі вышынь, так і рэльеф на стандартных мапах OsmAnd. Гэта, магчыма, спатрэбіцца спартоўцам, турыстам, падарожнікам і ўсім, хто цікавіцца структурай рэльефу мясцовасці. (Звярніце ўвагу, што даныя вышынь і рэльефу асобныя, дадаткова даступныя да спампоўвання, пасля актывацыі ўбудовы.) + Гэтая ўбудова паказвае як контурныя лініі, так і рэльеф на стандартных мапах OsmAnd. Гэта, магчыма, спатрэбіцца спартоўцам, турыстам, падарожнікам і ўсім, хто цікавіцца структурай рэльефу мясцовасці. (Звярніце ўвагу, што даныя вышынь і рэльефу асобныя, дадаткова даступныя да спампоўвання, пасля актывацыі ўбудовы.) +\n \n -\nГлабальныя даныя (паміж 70 ° на поўначы і 70 ° на поўдні) грунтуюцца на вымярэннях SRTM (Shuttle Radar Topography Mission) і ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), даных інструмента візуалізацыі Terra, флагманскага спадарожніка сістэмы назірання Зямлі ад NASA. ASTER — гэта вынік сумеснай працы NASA, міністэрства эканомікі Японіі, міністэрства гандлю і прамысловасці Японіі (METI), агенцтва касмічных сістэм Японіі (J-spacesystems)." +\n +\nГлабальныя даныя (паміж 70 ° на поўначы і 70 ° на поўдні) грунтуюцца на вымярэннях SRTM (Shuttle Radar Topography Mission) і ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), даных інструмента візуалізацыі Terra, флагманскага спадарожніка сістэмы назірання Зямлі ад NASA. ASTER — гэта вынік сумеснай працы NASA, міністэрства эканомікі Японіі, міністэрства гандлю і прамысловасці Японіі (METI), агенцтва касмічных сістэм Японіі (J-spacesystems). Як хутка вы хочаце чуць паведамленне аб прыбыцці? Улюбёныя мясціны, якімі падзяліліся праз OsmAnd Разлічыць маршрут паміж пунктамі дзён Злучэнне - Захаваць даныя як GPX-файл альбо імпартаваць пункты ва ўлюбёныя\? + Захаваць даныя як GPX-файл альбо імпартаваць пункты ва ўлюбёныя мясціны\? Ружовы Карычневы Выбар колеру @@ -1226,15 +1228,15 @@ \nДоўга ўтрымлівайце, каб убачыць на мапе" Аўтаматычна пачаць навігацыю Перапад вышынь: %1$s - Захаваць як групу ўлюбёных - Абярыце прызначэнне + Захаваць як групу ўлюбёных мясцін + Вызначыць пункты прызначэння Назвы POI-накладкі Паказваць кнопкі маштабавання Паказваць кнопкі маштабавання падчас навігацыі. Сартаваць паводле адлегласці Сартаваць паводле назвы - GPX-файлаў не абрана. Абраць працяжным націскам. - Абраць для паказу + Абярыце GPX-файл працяжным націскам. + Абярыце след Спамповак не знойдзена. Калі ласка, праверце вашае злучэнне з Інтэрнэтам. Будынкі Не аўтамабільныя дарогі @@ -1291,15 +1293,15 @@ Прагляд мапы Аўтамабіль Ровар - Пешаход + Пешшу Спампаваць мапы, што адсутнічаюць, %1$s (%2$d МБ)\? Пункты шляху Дарожныя папярэджанні - Улюбёныя паблізу + Улюбёныя мясціны паблізу Навакольныя POI Усе Паездкі - Убудова актывуе функцыі для запісу і захоўвання вашых слядоў уласнаручна націскам на віджэт запісу GPX на экране мапы, або таксама аўтаматычна запісвае ўсе вашыя маршруты навігацыі ў файл GPX. + Убудова актывуе функцыі для запісу і захоўвання вашых слядоў уласнаручна націскам на віджэт запісу GPX на мапе, або таксама аўтаматычна запісвае ўсе вашыя маршруты навігацыі ў файл GPX. \n \nЗапісанымі слядамі можна падзяліцца з вашымі сябрамі або выкарыстоўваць іх для адсылкі ў OSM. Спартоўцы могуць выкарыстоўваць запісаныя сляды для кантролю за трэніроўкамі. Некаторы базавы аналіз слядоў можна правесці непасрэдна ў OsmAnd, напрыклад, час праходжання кругу, сярэдняя хуткасць і г.д., сляды, вядома, пазней таксама можна прааналізаваць пры дапамозе адмысловых інструментахў аналізу іншых вытворцаў. Запіс падарожжа @@ -1309,9 +1311,9 @@ Маршруты аўтобусаў, тралейбусаў і таксі Пісаць след у GPX-файл Інтэрвал запісу - Агульны запіс месцазнаходжання ў GPX-файл можа быць уключаны або выключаны з дапамогай кнопкі запісу GPX на экране з мапай. + Запіс месцазнаходжання ў GPX-файл можа быць уключаны або выключаны з дапамогай кнопкі запісу GPX мапе. Пытацца заўсёды - Абярыце інтэрвал запісу следу (уключаецца віджэтам запісу GPX на мапе). + Вызначце інтэрвал запісу следу (уключаецца праз віджэт запісу GPX на мапе). Агульны інтэрвал запісу Абмежаванне хуткасці Памежны кантроль @@ -1323,15 +1325,15 @@ Змяніць памер тэксту на мапе. Памер тэксту Дапушчальнае значэнне перавышэння хуткасці - Задаць дапушчалнае значэнне перавышэння хуткасці, пры якім вы атрымаеце галасавое паведамленне. - Назва ўлюбёнага была змененая на %1$s для магчымасці захавання радка з эматыконам ў файл. + Абярыце дапушчальнае значэнне перавышэння хуткасці, пры якім вы атрымаеце галасавое паведамленне. + Назва ўлюбёнай мясціны была змененая на \"%1$s\" для магчымасці захавання радка з эматыконам ў файл. Паказаць маршрут - Дубляванне назвы ўлюбёнага пункту - Улюбёнае з такой назвай ўжо існуе, таму будзе выкарыстана %1$s для прадухілення дублявання назваў. + Дубляванне назвы ўлюбёнай мясціны + Назва ўлюбёнай мясціны была змененая на \"%1$s\", каб пазбегнуць паўтарэння. Націсніце на любы элемент спіса для прагляду больш падрабязнай інфармацыі, доўга ўтрымлівайце, каб змясціць у архіў ці выдаліць. Дзейныя даныя прылады (%1$s вольна): Ананімны карыстальнік Вы ўвайшлі як %1$s - Ананімнаму карыстальніку недаступныя: + Ананімным карыстальнікам недаступна: \n- Стварэнне групаў; \n- Сінхранізацыя групаў і прылад з серверам; \n- Кіраванне групамі і прыладамі ў асабістым кабінеце. @@ -1397,7 +1399,7 @@ Уключыць HTTP-проксі Наладзіць HTTP-проксі для ўсіх сеткавых запытаў. Хост проксі - Задайце назву хаста вашага проксі (напрыклад 127.0.0.1). + Вызначце назву хоста вашага проксі (напрыклад 127.0.0.1). Порт проксі Задайце нумар парта вашага проксі (напрыклад 8118). Вызначыць проксі-сервер. @@ -1479,7 +1481,7 @@ Запомніць выбар Абнавіць Спампаваць - Спампоўваецца + Спампоўванне… Спампаваная Памылка ўводу/вываду Нечаканая памылка @@ -1490,9 +1492,9 @@ Паказаць усе Паказаць на мапе Мапа - Улюбёнае - Улюбёныя - Дадаць ва «Улюбёныя» + Улюбёныя мясціны + Улюбёныя мясціны + Дадаць ва ўлюбёныя мясціны Мае мясціны Аўдыё Відэа @@ -1525,11 +1527,11 @@ Турыстычная мапа Змяніць назву не атрымалася. д. таму абнаўлялі - Выдадзена - Улюбёныя + Дата выпуску + Улюбёныя мясціны Ачысціць гісторыю\? Задайце час затрымкі на экране планавання маршруту. - Пачаць пакрокавае кіраванне праз… + Пачаць пакрокавае суправаджэнне праз… Рушым Сапраўды адправіць %1$d змен у OSM\? Убудова для OsmAnd дае вам доступ да даных аб гарналыжных трасах, маршрутах для бегавых лыж, альпійскіх спусках, фунікулёрах і гарналыжных пад\'ёмніках. Маршруты і спускі пазначаюцца рознымі колерамі ў залежнасці ад іх складанасці і намаляваныя з выкарыстаннем адмысловага «зімовага» стылю мапы, адметнага тым, што выкарыстоўваюцца «снежныя» колеры зімовага пейзажу. @@ -1555,7 +1557,7 @@ \nГэты выгляд можа быць дэактываваны тут, або шляхам змены «Стылю мапы» у раздзеле «Налады мапы». У многіх краінах (Германія, Францыя, Італія ды іншыя) выкарыстанне дэтэктараў камер кантролю хуткасці незаконнае. OsmAnd не нясе ніякай адказнасці, калі вы парушыце закон. Калі ласка, націсніце кнопку «Так», толькі калі вы маеце права выкарыстоўваць гэтую функцыю. Інфармацыя пра A-GPS - Апошнія спампаваныя даныя A-GPS: %1$s + Даныя A-GPS спампаваныя: %1$s Паведамленне Не выкарыстоўваць Адрас @@ -1596,13 +1598,13 @@ Вікіпедыя Паказаць падрабязнасці Вікіпедыя - Вы збіраецеся выдаліць %1$d нататкі. Вы ўпэўнены\? + Сапраўды хочаце выдаліць %1$d нататак\? Імпартаваць у OsmAnd Прадухіліць аўтаномны запіс Запіс GPX прыпыніцца, калі дадатак будзе забіты (праз надаўнія праграмы). (Апавяшчэнне ў вобласці падказак Android пра фонавы рэжым OsmAnd знікне.) - Служба вызначэння месцазнаходжання не ўключаная. Уключыць яе\? + Служба вызначэння месцазнаходжання выключаная. Уключыць яе\? Даныя Вікіпедыі састарэлі і больш непрыдатныя. Заархіваваць іх\? - Спампаваць дадатковыя даныя Вікіпедыі (%1$s МБ) \? + Спампаваць дадатковыя даныя Вікіпедыі (%1$s МБ)\? Тайская Тэлугу Нарвежская (Нюнашк) @@ -1635,7 +1637,7 @@ Бішнупрыя Наваха Неварская / Непал-бхаса - Каб усе змены ўжыліся, патрэбна ўласнаручна перезапусціць дадатак. + Каб усе змены ўжыліся, патрэбна перезапусціць дадатак. Колер GPX Шырыня GPX Чырвоны @@ -1679,7 +1681,7 @@ Прамінуць Убудовы Пацвердзіць POI - Пазбягаць прыгарадных цягнікоў + Без прыгарадных цягнікоў Пазбягаць выкарыстання прыгарадных цягнікоў Асноўнае Нумар будынка @@ -1710,8 +1712,8 @@ %1$s спамповак засталося Вікіпедыя Дарогі - Звесткі пра ўлюбёнае - Дадаць улюбёнае + Звесткі пра ўлюбёную мясціну + Дадаць ва улюбёныя Запіс падарожжа Навігацыя Працуе ў фоне @@ -1731,7 +1733,7 @@ хв/м хв/км м/с - Ізалініі вышынь выключаныя + Контурныя лініі выключаныя Спампоўваецца - %1$d файл Паказваць банер бясплатнай версіі нават у платнай версіі. Паказваць банэр бясплатнай версіі @@ -1758,7 +1760,7 @@ Абярыце, дзе вы хочаце захоўваць мапы і іншыя файлы даных. Падзяліцца месцазнаходжаннем геа: - «Выключана» непасрэдна запускае экран мапы. + \"Выключана\" наўпрост запускае мапу. Імітаваць першы запуск дадатку QR-код Мапа спампаваная @@ -1782,7 +1784,7 @@ Першыя крокі з OsmAnd Дапамажыце палепшыць OsmAnd Першы запуск - Як спампаваць мапы, задаць асноўныя налады. + Як спампаваць мапы, вызначыць асноўныя налады. Налады навігацыі. Планаванне паездкі Частыя пытанні @@ -1815,9 +1817,9 @@ Паўторна адкрыць нататку Закрыць нататку Нататка створаная - Не атрымалася стварыць нататку + Не атрымалася стварыць нататку. Нататка закрытая - Не атрымалася закрыць нататку + Не атрымалася закрыць нататку. Адправіць Стыль адлюстравання дарог Рэдагаваць POI @@ -1829,9 +1831,9 @@ Доступ з мапы Выдаліць пункт шляху GPX\? Рэдагаваць пункт шляху GPX - Пазбягаць лесвіц + Без лесвіц Пазбягаць лесвіц - Пазбягаць перасячэння меж + Без перасячэння меж Выкарыстоўваць панэль кіравання Панэль кіравання ці меню Калі ласка, ўвядзіце правільны тып POI або мініце яго. @@ -1856,9 +1858,9 @@ Аўтаабнаўленне Абнавіць зараз OsmAnd не мае дазволу на выкарыстанне карткі памяці - Дадатаа не мае дазволу на выкарыстанне GPS. - Дадатак не мае дазволу на выкарыстанне камеры. - Дадатак не мае дазволу на выкарыстанне мікрафону. + Даць дазвол на доступ да даных GPS. + Даць дазвол на доступ да камеры. + Даць дазвол на доступ да мікрафону. Даступныя мапы Гук Апошняе абнаўленне: %s @@ -1905,8 +1907,8 @@ Дадаць часавы прамежак Элемент выдалены Элементы выдаленыя - Паведаміць - Адлюстроўваць MTB-маршруты + Справаздача па + Паказваць маршруты горных ровараў Ахвяраванні Агульная памяць Пералічыць маршрут @@ -1922,10 +1924,8 @@ Абярыце адзнаку Іншыя адзнакі Адправіць ананімна - Недастаткова памяці! - Патрабуецца {3} МБ часовай і {1} МБ сталай памяці. - Даступна толькі {2} МБ. - Спампаваць {0} файл(аў)? Выкарыстоўваецца {3} МБ часовай і {1} МБ сталай памяці. (Свабодна {2} МБ прасторы.) + Недастаткова памяці! Патрабуецца {3} МБ часовай і {1} МБ сталай памяці. Даступна толькі {2} МБ + Спампаваць {0} файл(аў)\? Выкарыстоўваецца {3} МБ часовай і {1} МБ сталай памяці. (З {2} МБ.) Першая адзнака Другая адзнака Панэль прылад @@ -1970,8 +1970,8 @@ Дадаць усе пункты як адзнакі мапы\? Дадаць да адзнак мапы Калі ласка, дадайце адзнакі праз экран мапы - Пераключана на ўнутраную памяць, бо абраны каталог для захоўвання даных даступны толькі для чытання. Калі ласка, абярыце перазапісвальны каталог. - Неабходна, каб даць вам інфармацыю аб удзеле. + Пераключана на ўнутраную памяць, бо абраны каталог для захоўвання даных даступны толькі для чытання. Калі ласка, абярыце каталог, даступны для запісу. + Неабходна, каб даць вам інфармацыю аб вашым удзеле. Актывуе функцыю адзнак мапы. Пунктаў шляху не знойдзена Прадвызначаны колер @@ -2043,13 +2043,13 @@ Пачаць Паліўна-ашчадны маршрут Разлічвае паліва-ашчадны маршрут (звычайна найкарацейшы). - Вы сапраўды хочаце замяніць улюбёнае %1$s\? + Вы сапраўды хочаце замяніць улюбёную мясціну %1$s\? Абнавіць усе мапы зараз? Ачысціць кэш сеціўных мапаў Не правяраць новыя версій і зніжкі ад OsmAnd. Не паказваць новыя версіі Прамінуць спампоўванне мапаў - У вас адсутнічаюць мапы. Вы можаце абраць мапу са спіса альбо спампаваць яе пазней праз «Меню - %1$s». + У вас адсутнічаюць мапы. Вы можаце абраць мапу са спіса альбо спампаваць яе пазней праз \"Меню - %1$s\". Абраць іншы рэгіён Пошук мапаў… OsmAnd вызначыць вашае месцазнаходжанне і прапануе спампаваць мапы для гэтага рэгіёна. @@ -2065,7 +2065,7 @@ Знайсці маю пазіцыю Атрымаць за %1$s Атрымаць - Атрымайце неабмежаваную колькасць спампоўванняў мапаў і абнаўленні больш за адзін раз на месяц: штотыдзень, штодзень ці штогадзіну. + Атрымайце неабмежаваную колькасць спампоўванняў мапаў у дадатак да штотыднёвых, штодзённых і нават штогадзінных абнаўленняў. Неабмежаваная колькасць спамоўванняў мапаў, абнаўленняў і ўбудова Wikipedia. Мілі/метры Плата за падпіску спаганяецца штомесяц. Скасаваць яе на Google Play можна у любы момант. @@ -2086,7 +2086,7 @@ Стварыць адвольны фільтр Адвольны пошук Транслітарацыя назваў - Уключыць хуткі запуск запісу + Уключыць хуткі запіс Апавяшчэнні Працягнуць Прыпыніць @@ -2096,9 +2096,9 @@ Даныя адсутнічаюць Дадаць яшчэ… Выгляд - Паказваць апавяшчэнне, якое дазволіць пачаць запіс падарожжа. + Паказваць апавяшчэнне, якое дазволіць запіс падарожжа. Калядныя POI - Паказаць калядныя POI? + Паказваць калядныя POI\? Светла-карычневы Цёмна-карычневы Якасць дарожнага пакрыцця @@ -2109,15 +2109,15 @@ Вы таксама можаце дадаць GPX-файлы ў каталог Збочце на %1$d з’ездзе Запампаваць POI - Пошук горада ці краіны + Горад ці краіна Блізкія артыкулы ў Вікіпедыі Вельмі тонкі Каляровая схема гарызанталяў Мінімальная хуткасць для запісу - Напярэданні калядных і навагодніх святаў, вы можаце абраць для адлюстравання POI, звязаныя з Калядамі: елкі, кірмашы і да т.п. + Напярэданні калядных і навагодніх святаў, вы можаце абраць адлюстраванне POI, звязаныя з Калядамі: елкі, кірмашы і да т.п. Каляровая схема гарызанталяў - Дазволіць аўтамагістралі - Дазволіць аўтамагістралі. + Выкарыстоўваць аўтамагістралі + Дазваляе выкарыстоўваць аўтамагістралі. Сербская (лацінка) Кітайская (Ганконг) Састарэлы пошук @@ -2153,14 +2153,14 @@ Дадаць пункт да следу Дадаць дзеянне Рэдагаваць дзеянне - Дадаць улюбёнае + Дадаць ва ўлюбёныя Дадаць дзеянне Выдаліць дзеянне Сапраўды выдаліць дзеянне \"%s\"\? Месца - Паказаць/схаваць улюбёныя - Паказаць улюбёныя\' - Схаваць улюбёныя + Паказаць/схаваць улюбёныя мясціны + Паказаць улюбёныя мясціны + Схаваць улюбёныя мясціны Паказаць/схаваць POI Паказаць %1$s Схаваць %1$s @@ -2191,7 +2191,7 @@ Ухіл Дадаць новы каталог Пункт(ы) выдалены. - Вы збіраецеся выдаліць %1$d пунктаў. Вы ўпэўнены\? + Сапраўды хочаце выдаліць %1$d пункт(аў)\? Пункты маршруту, цікавыя пункты, названыя функцыі След Максімальная хуткасць @@ -2203,7 +2203,7 @@ Час закачэння Колер Абраць каталог GPX-файлаў - Файл не можа быць перамешчаны. + Не атрымалася перамясціць файл. Перамясціць Сляды Стыль язды @@ -2274,8 +2274,8 @@ Аўтамаштаб мапы ўкл/выкл Бліжэйшыя гарады Абраць горад - Абраць паштовы індэкс - Дадаць месца прызначэння + Пошук паштовага індэкса + Вызначыць пункт прызначэння Замяніць пункт прызначэння Дадаць прамежкавы пункт Памылка @@ -2284,9 +2284,9 @@ Абярыце вуліцу у %1$s Увядзіце адрас - Увядзіце горад + Увядзіце горад/населены пункт/мясціну Увядзіце паштовы індэкс - Націск на гэтую кнопку ўключыць/выключыць аўтамаштабаванне мапы ў залежнасці ад хуткасці. + Пераключальнік для ўключэння/выключэння аўтамаштабавання мапы ў залежнасці ад хуткасці. Гэтай кнопкай можна зрабіць пункт у цэнтры экрана пунктам прызначэння, а папярэдні пункт прызначэння стане апошнім прамежкавым пунктам. Націск на гэтую кнопку зробіць цэнтр экрана пунктам прызначэння, замяняючы папярэдні пункт прызначэння, калі ён ёсць. Гэтай кнопкай можна зрабіць пункт у цэнтры экрана першым прамежкавым пунктам. @@ -2321,32 +2321,32 @@ \n Большасць краін па ўсім свеце даступныя для спампоўкі! \n Ад Аўганістана да Зімбабвэ, ад Аўстраліі да ЗША. Аргенціна, Бразілія, Канада, Францыя, Германія, Мексіка, Вялікабрытанія, Гіспанія, … \n - Анімаваць маю пазіцыю - Уключае анімацыю маёй пазіцыі на мапе падчас навігацыі. + Анімацыя сваёй пазіцыі + Уключыць анімацыю сваёй пазіцыі на мапе падчас навігацыі. Назва групы Змяніць колер Рэдагаваць назву - Ваш пункт прызначэння знаходзіцца на прыватнай тэрыторыі. Дазволіць доступ да прыватных дарог для гэтай паездкі? + Ваш пункт прызначэння знаходзіцца на прыватнай тэрыторыі. Дазволіць выкарыстанне прыватных дарог для гэтай паездкі\? Перазапусціць пошук Павялічыць радыус пошуку Нічога не знойдзена - Змяніце пошукавы запыт альбо павялічце радыус пошуку. + Змяніць пошукавы запыт альбо павялічыць радыус пошуку. Паказаць/схаваць OSM-нататкі Паказаць OSM-нататкі Схаваць OSM-нататкі - Націск на гэтую кнопку пакажа ці схавае OSM-нататкі на мапе. + Пераключальнік адлюстравання OSM-нататак на мапе. Адсартавана па адлегласці - Пошук улюбёных + Пошук ва ўлюбёных мясцінах Убудова - Для прагляду контурных ліній на мапе, вам неабходна набыць і ўсталяваць убудову «Contour Lines» + Набудзьце і ўсталюйце ўбудову \"Контурныя лініі\" для адлюстравання градыентаў вертыкальных абласцей. Каляровая схема Дазволіць прыватны доступ Дазволіць доступ на прыватную тэрыторыю. - Каб убачыць зацяненне рэльефу, спампуйце мапу «Hillshade Overlay» гэтага рэгіёна. - Каб убачыць зацяненне рэльефу, вам неабходна набыць і ўсталяваць убудову «Contour Lines» - Схаваць ад узроўня маштабавання - Спампаваць мапу «Contour Line» для выкарыстання ў гэтым рэгіёне. - Паказваць ад узроўня маштабавання + Спампуйце мапу \"Покрыва зацянення рэльефу\" для адлюстравання вертыкальнага зацянення гэтага рэгіёна. + Усталюйце убудову \"Контурныя лініі\" для адлюстравання градыентаў вертыкальных абласцей. + Схаваць ад узроўню маштабавання + Спампуйце мапу \"Контурныя лініі\" для выкарыстання ў гэтым рэгіёне. + Паказваць ад узроўню маштабавання Узровень маштабавання паказу: %1$s Для вялікіх адлегласцяў: калі ласка, дадайце прамежкавыя пункты, калі разлік не завяршыўся цягам 10 хвілін. Лыжня @@ -2357,9 +2357,10 @@ \n• Адаптуе мапу ў напрамку вашага руху (ці компаса) \n• Паказвае, дзе вы знаходзіцеся і куды вы глядзіце \n• Дзяліцеся сваім месцазнаходжаннем, каб сябры змаглі знайсці вас -\n• Захоўвае вашы самыя важныя месцы ва «Ўлюбёных» +\n• Захоўвае вашы самыя важныя месцы ва ўлюбёных мясцінах \n• Дазваляе вам абраць як адлюстроўваць назвы на мапе: на англійскай мове, мясцовай мове, ці фанетычным напісаннем -\n• Адлюстроўвае адмысловыя сеціўныя тайлы, спадарожнікавыя здымкі (з Bing), розныя адзнакі, як турыстычныя/навігацыйныя GPX-сляды і дадатковыя пласты з наладжваемай празрыстасцю +\n• Адлюстроўвае адмысловыя сеціўныя тайлы, спадарожнікавыя здымкі (з Bing), розныя адзнакі, як турыстычныя/навігацыйныя GPX-сляды і дадатковыя пласты з наладжваемай празрыстасцю +\n Язда на ровары \n • Вы можаце знайсці роварныя шляхі на мапе \n • GPS-навігацыя ў роварным рэжыме будуе маршрут выкарыстоўваючы роварныя шляхі @@ -2371,7 +2372,7 @@ Дазваляе хутка дадаць фотаздымкі ў Mapillary. Вулічныя фота праз сеціва для кожнага. Адкрывайце для сябе месцы, дапамагайце, здымайце свет. Дадаць фотаздымкі - Падзяліцца сваімі вулічнымі краявідамі гэтай мясцовасці праз Mapillary. + Падзяліцца краявідамі гэтай мясцовасці праз Mapillary. Шпацыры, паходы, экскурсіі \n • Мапа паказвае пешаходныя сцежкі \n • Вікіпедыя абранай мовай распавядзе вам шмат чаго цікавага падчас экскурсіі @@ -2392,7 +2393,7 @@ \n • Пошук месцаў па адрасе, тыпу (напрыклад, рэстарацыя, гатэль, запраўка, музей) ці геаграфічных каардынатах \n Сеціўныя фотаздымкі - Фотаздымкі для гэтага месца адсутнічаюць. + Тут няма фотаздымкаў. Вулічныя фотаздымкі для ўсіх. Адкрывайце для сябе месцы, дапамагайце, здымайце свет. GPS-навігацыя \n • Выбар паміж аўтаномным рэжымам (без платы за роўмінг) і сеціўным (хутчэй) @@ -2471,12 +2472,12 @@ Выява Mapillary Дыстанцыя выпраўленая Дазволы - OsmAnd не можа імпартаваць файл. Калі ласка, праверце, ці мае OsmAnd дазвол на чытанне файлаў з гэтага каталога. + Не атрымалася імпартаваць файл. Калі ласка, праверце, ці мае OsmAnd дазвол на чытанне файлаў з гэтага каталога. Радыусная лінейка Няправільнае імя карыстальніка Да Ад - Паглядзець толькі дададзеныя выявы + Паказваць толькі дададзеныя выявы Дата Увядзіце імя карыстальніка "Паглядзець толькі выявы, дададзеныя" @@ -2529,7 +2530,7 @@ Дадаць лінію Дадаць GPX-файлы Імпартаваць GPX-файлы ці запісаныя сляды. - Дадаць улюбёныя + Дадаць улюбёныя мясціны Імпартаваць улюбёныя ці дадаць з адзнак на мапе. Імпартаваць GPX-файл Файл %1$s не змяшчае пункты шляху, імпартаваць як след\? @@ -2557,16 +2558,16 @@ Апошнія 7 дзён Сёлета Выдаліць з адзнак мапы - па ўбыванні - па ўзрастанні - Дата дадання + Я-А + А-Я + Дададзена Парадкаваць па: Паказаць лініі накірунку Паказаць стрэлкі на мапе Паказаць пройдзеныя Схаваць пройдзеныя Выкарыстоўваць становішча - Дадаць ваша становішча як пачатковы пункт пры планаванні маршруту. + Дадаць ваша становішча як пункт адпраўлення пры планаванні маршруту. Маё становішча Фініш Планаваць маршрут @@ -2600,7 +2601,7 @@ Назад Праглядзець Пункты шляху дададзеныя ў адзнакі мапы - могуць быць імпартаваныя як «Улюбёныя» ці як GPX-файл. + могуць быць імпартаваныя як улюбёныя мясціны ці як GPX-файл. Імпартаваць як GPX-файл Імпартаваць як улюбёныя Імпартаваць файл @@ -2614,21 +2615,21 @@ Змяніць назву адзнакі Два Адзін - Абярыце катэгорыю ўлюбёных, каб дадаць у адзнакі. + Абярыце катэгорыю ўлюбёных мясцін, каб дадаць у адзнакі. Пункты следу - Катэгорыя ўлюбёных + Катэгорыя ўлюбёных мясцін Дадаць групу - Імпартаваць групы з улюбёных ці GPX-пунктаў. + Імпартаваць групы з улюбёных мясцін ці GPX-пунктаў. Стварыце адзнакі на мапе! - Дакраніцеся месца і потым націсніце кнопку адзнакі. + Дакраніцеся да патрэбнага месца, а потым націсніце кнопку адзнакі. Імпартаваць групы - Імпартаваць групы ўлюбёных ці пункты шляху як адзнакі. + Імпартаваць групы ўлюбёных мясцін ці пункты шляху як адзнакі. Адзнакі, пазначаныя як пройдзенныя, з\'явяцца на гэтым экране. Паказвае лініі накірунку ад вашага становішча да актыўнай адзнакі. Паказвае адну ці дзьве стрэлкі, якія паказваюць накірунак да актыўных адзнак. Абярыце, як адлюстроўваць адлегласць да актыўных адзнак. Вызначце колькасць указальнікаў кірунку: - Вонкавы выгляд на мапе + Выгляд на мапе Абраць след, каб дадаць яго пункты ў адзнакі. Направа Налева @@ -2661,7 +2662,7 @@ Дзеянні Адзнака Змен %1$s, сума %2$s mBTC - OSM-атрымальнікі + Ахвяраванні атрымалі Агулам ахвяраванняў Адчынена з Адчынена да @@ -2796,9 +2797,9 @@ Для марской навігацыі. Асноўныя магчымасці: буі, маякі, рачныя і марскія маршруты і адзнакі, гавані, марскія паслугі, контуры глыбіні. Для катання на лыжах. Асноўныя магчымасці: адмалёўка трас, пад\'ёмнікаў і іншых лыжных аб\'ектаў зручным спосабам. Менш другасных аб\'ектаў. Просты стыль для аўтамабільнай навігацыі. Мяккі начны рэжым, контурныя лініі, кантрастныя дарогі ў аранжавым стылі, зацененыя другасныя аб\'екты мапы. - "Кантрастны стыль, прызначаны ў першую чаргу для шпацыру, паходу і катання на ровары. Добрая чытальнасць пры складаным асвятленні. Асноўныя магчамасці: кантрастныя дарогі і прыродныя аб\'екты, розныя тыпы маршрутаў, контурныя лініі з пашыранымі наладамі, больш падрабязная інфармацыя на адпаведных узроўнях маштабавання, чым у прадвызначаным стылі. Параметр цэласнасці паверхні дазваляе адрозніваць дарогі з рознай якасцю паверхні. Без начнога рэжыму." + Для шпацыру, паходу і катання на ровары. Добрая чытальнасць пры слабым асвятленні. Кантрастныя дарогі і прыродныя аб\'екты, розныя тыпы маршрутаў, контурныя лініі з дадатковымі наладамі, больш падрабязная інфармацыя. Параметр якасці дарожнага пакрыцця дае магчымасць адрозніваць дарогі з розным пакрыццём. Без начнога рэжыму. Стары прадвызначаны стыль Mapnik. Колеры падобныя на Mapnik. - Стыль агульнага прызначэння. Спрошчаная чыстая адмалёўка ў шчыльнанаселеных гарадах. Асноўныя магчымасці: контурныя лініі, якасць паверхні, абмежаванні доступу, дарожныя шчыты, адмалёўка шляхоў па шкале SAC, аб\'екты водных сплаваў. + Стыль агульнага прызначэння. Спрошчанае адлюстраванне шчыльнанаселеных гарадоў. Пазначаюцца контурныя лініі, якасць паверхні, абмежаванні доступу, дарожныя шчыты, візуалізацыя маршрутаў па шкале SAC, аб\'екты спартовых сплаваў. Адкрыць спасылку на Вікіпедыю анлайн Спасылка адкрыецца ў вэб-браўзеры. Атрымайце падпіску на OsmAnd Live, каб чытаць артыкулы Вікіпедыі і Wikivoyage па-за сецівам. @@ -2807,7 +2808,7 @@ Спампаваць усё Закладка Для кіравання па бездарожжы на аснове стылю \"Topo\" з выкарыстаннем зялёных спадарожнікавых здымкаў як падкладкі. Паменшаная таўшчыня асноўных дарог, павялічаная таўшчыня слядоў, сцежак, роварных і іншых трас. - Высокадэталізаваны стыль для турыстычнах мэтаў. Уключае ў сябе ўсе параметры канфігурацыі прадвызначанага стылю і, акрамя таго: паказвае, як мага больш дэталяў, наколькі гэта магчыма, у прыватнасці, усе дарогі, шляхі і іншыя спосабы перамяшчэння. Зразумелае візуальнае адрозненне паміж рознымі тыпамі дарог, якое нагадвае многія турыстычныя атласы. Высокакантрастная каляровая схема для вулічнага выкарыстання з дзённым і начным рэжымам. + Турыстычны стыль з высокімі кантрастам і дэталізацыяй. Уключае ў сябе ўсе параметры канфігурацыі прадвызначанага стылю і, акрамя таго, як мага падрабязней адлюстроўваюцца дарогі, сцежкі і іншыя шляхі перамяшчэння. Зразумелае візуальнае адрозненне паміж рознымі тыпамі дарог, якое нагадвае многія турыстычныя атласы. Пасуе для выкарыстання знадворку ў дзённым і начным рэжымах. Прамежкавы час прыбыцця Прамежкавы час Мадыфікацыя прадвызначанага стылю для павялічэння кантрастнасці пешаходных і роварных дарог. Выкарыстоўвае старыя Mapnik-колеры. @@ -3321,4 +3322,144 @@ %1$s • %2$s Вольна %1$s Гб (з %2$s Гб) Выкарыстоўваецца для разліку прыблізнага часу прыбыцця для невядомага тыпу дарог і абмежавання хуткасці для ўсіх дарог (можа змяніцца маршрут) + Белы + След захаваны + Назва файла пустая + Вярнуцца + Адлюстроўваць сеткі вузлоў роварных маршрутаў + Ачысціць %1$s\? + Дыялог спампоўвання мапы + Дыялогі і апавяшчэнні + Кіраванне выплыўнымі вокнамі, дыялогамі і апавяшчэннямі OsmAnd. + Сеткі вузлоў + Прапанаваныя мапы + Гэтыя мапы неабходна выкарыстоўваць з убудовай + Дададзеныя профілі + Убудова дадае новы профіль у OsmAnd + Выключыць + Дададзена новая ўбудова + Аб’яднаць сегменты + Дадаць новы профіль \"%1$s\"\? + Захоўваць кірунак + Падчас запісу захоўваць кірунак для кожнага пункта маршруту. + %1$s • %2$s + %1$s, %2$s + Асабісты + Спампоўванне %s + Тоўста + Для пустэльняў і іншых малазаселеных абласцей. Паказваецца больш звестак на шкале прагляду. + Абярыце значок навігацыі + Абярыце значок мапы + Пасля націскання кнопкі \"Ужыць\" выдаленыя профілі назаўсёды страцяцца. + Базавы профіль + Абярыце колер + Вы не можаце выдаліць прадвызначаныя профілі OsmAnd, але можаце выключыць іх на папярэднім экране, альбо перамясціць уніз. + Рэдагаваць профілі + Тып навігацыі ўплывае на правілы разліку маршруту. + Выгляд профілю + Абярыце значок, колер і назву + Рэдагаваць спіс профіляў + Абраны профіль + Калі націснеце %1$s, то ўсе змены страцяцца. + Усе налады профілю скінуцца да прадвызначаных значэнняў. + Скінуць усе налады профілю да прадвызначаных значэнняў\? + %1$s %2$s + %1$s: %2$s + Пазбягаць пэўныя маршруты і тыпы дарог + Мотаўсюдыход + Канатная дарога + Злучэнне + Разлічыць + Выкарыстанне OsmAnd + Тайлы + Мапы + %1$s ТБ + %1$s ГБ + %1$s МБ + %1$s кБ + Каталог захоўвання слядоў + Сляды могуць захоўвацца ў каталозе \'rec\', або ў штомесячных ці штодзённых каталогах. + Запісваць сляды ў каталог \'rec\' + Запісваць сляды ў штодзённыя каталогі + Выкарыстана %1$s TБ + Выкарыстана %1$s ГБ + Выкарыстана %1$s МБ + Выкарыстана %1$s КБ + Контурныя лініі і зацяненне рэльефу + Аддаваць перавагу грунтавым дарогам + Аддаваць перавагу грунтавым дарогам. + Абнавіць усе мапы + Вы можаце ўжыць гэтыя змены да ўсіх профіляў ці толькі да абранага. + Агульны + Аддаваць перавагу грунтавым дарогам + Аддаваць перавагу дарогам без пакрыцця. + Змены OSM + Пераключальнік для адлюстравання/хавання контурных ліній на мапе. + Паказаць контурныя лініі + Схаваць контурныя лініі + Паказаць/схаваць контурныя лініі + Пераключальнік для адлюстравання/хавання зацянення рэльефу на мапе. + Паказаць зацяненне рэльефу + Схаваць зацяненне рэльефу + Паказаць/схаваць зацяненне рэльефу + Немагчыма запусціць механізм пераўтварэння тэксту ў гаворку + Экспарт профілю + Профіль OsmAnd: %1$s + Профіль \"%1$s\" ужо існуе. Перазапісаць\? + Не атрымалася экспартаваць профіль. + Імпарт профілю + Каб імпартаваць профіль, абярыце яго файл на прыладзе і адкрыйце з дапамогай OsmAnd. + Памылка імпарту %1$s: %2$s + %1$s паспяхова імпартаваны. + Памяняць месцамі %1$s і %2$s + Пачатковы пункт + Уставіць шлях да каталога з данымі OsmAnd + Змяніць каталог даных OsmAnd\? + Перамясціць у новы пункт прызначэння + Запісваць сляды кожны дзень у новы падкаталог (напрыклад, 2018-01-01). + Сапраўды хочаце абнавіць усе мапы (%1$d)\? + Стварыце свой профіль на аснове аднаго з базавых профіляў - гэта будзе вызначаць асноўныя параметры, такія як віджэты, адзінкі вымярэння хуткасці і адлегласці. Гэта тыповыя профілі дадатку, якія разам з прыкладамі профіляў карыстальніка можна пашырыць да: + Маршруты, падрыхтаваныя толькі для класічнага стылю без канькабежных трас. Сюды ўваходзяць маршруты, падрыхтаваныя невялікім снегаходам з больш свабоднай лыжнёй і трасамі, падрыхтаваныя ўручную лыжнікамі. + Спампаваць падрабязную мапу %s, каб праглядзець гэтую вобласць. + Унутранае сховішча, схаванае ад карыстальніка і іншых дадаткаў, даступнае выключна для OsmAnd + Змена каталога захавання даных + Ландшафтны парк + Самаходныя і несамаходныя сані (запрэжкі) + Толькі самаходныя сані + Паход + Злучэнне + Скітур + Спуск + Скандынаўскі + Тып гарналыжнай трасы + Пачатковец + Лёгкая + Сярэдняя + Высокая + Экспертная + Фрырайд + Экстрым + Не вызначана + Складанасць гарналыжнай трасы + Абмежаванне па шырыні + Увядзіце шырыню транспартнага сродку для ўліку пры разліку маршруту. + • Абноўлены налады прыкладання і профілю. Цяпер налады размешчаны па тыпу. Кожны профіль можна наладзіць асобна. +\n  +\n  • Новы дыялог загрузкі мапы, які прапануе загрузіць мапу падчас прагляду +\n  +\n  • Выпраўленне цёмнай тэмы +\n  +\n  • Выпраўлена некалькі праблем з маршрутызацыяй па ўсім свеце +\n  +\n  • Абноўленая базавая мапа з больш падрабязнай дарожнай сеткай +\n  +\n  • Выпраўлены затопленыя раёны па ўсім свеце +\n  +\n  • Гарналыжная траса: дададзены профіль вышынь і складанасць маршруту +\n  +\n  • Іншыя выпраўленні памылак +\n +\n + Сімуляваць сваю пазіцыю пры дапамозе запісанага GPX-следу. + Кнопка для прызначэння цэнтра экрана пунктам адпраўлення. Таксама дадатак пракладзе шлях да раней абранага пункта прызначэння або адкрые дыялог для выбару пункта прызначэння, калі яго няма на мапе. \ No newline at end of file diff --git a/OsmAnd/res/values-ca/strings.xml b/OsmAnd/res/values-ca/strings.xml index 4c22202760..3583a48f35 100644 --- a/OsmAnd/res/values-ca/strings.xml +++ b/OsmAnd/res/values-ca/strings.xml @@ -3308,8 +3308,8 @@ Abasta l\'àrea: %1$s x %2$s %1$s MB %1$s kB Carpeta d\'emmagatzematge de traces - Les traces es poden emmagatzemar a la carpeta \'rec\', a les carpetes mensuals o a les diàries. - Enregistra les traces a la carpeta \'rec\' + Les traces es poden emmagatzemar a la carpeta «rec», a les carpetes mensuals o a les diàries. + Enregistra les traces a la carpeta «rec» Enregistra les traces a les carpetes diàries Enregistra les traces en carpetes segons el dia d\'enregistrament (tipus 2019-01-01). %1$s TB utilitzats @@ -3378,7 +3378,7 @@ Abasta l\'àrea: %1$s x %2$s Tessel·les Exporta el perfil Perfil d\'OsmAnd: %1$s - El perfil \'%1$s\' ja existeix. El voleu sobreescriure\? + El perfil «%1$s» ja existeix. El voleu sobreescriure\? No s\'ha pogut exportar el perfil. Importació del perfil Per a importar un perfil, seleccioneu-ne el fitxer en el dispositiu i obriu-lo amb OsmAnd. @@ -3427,4 +3427,8 @@ Abasta l\'àrea: %1$s x %2$s Edita la llista de perfils Perfil seleccionat Un botó per establir el punt central de la pantalla com el punt de sortida i calcular la ruta vers la destinació o obrir una petició per seleccionar-la si no hi ha un marcador de destinació al mapa. + Memòria intermèdia del Logcat + En fer clic a %1$s perdreu tots els vostres canvis. + La configuració de tot el perfil es reinicialitzarà a l\'estat postinstalació. + Voleu reinicialitzar totes les configuracions del perfil als valors per defecte\? \ No newline at end of file diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml index 3145eefb1e..a5ebd8857c 100644 --- a/OsmAnd/res/values-da/strings.xml +++ b/OsmAnd/res/values-da/strings.xml @@ -3429,4 +3429,6 @@ Repræsenterer område: %1$s x %2$s Ved at klikke på %1$s, mistes alle ændringer. Alle profilindstillinger nulstilles. Nulstil alle profilindstillinger til standard\? + %1$s %2$s + %1$s: %2$s \ No newline at end of file diff --git a/OsmAnd/res/values-de/phrases.xml b/OsmAnd/res/values-de/phrases.xml index 1ec73bd270..4e437468bb 100644 --- a/OsmAnd/res/values-de/phrases.xml +++ b/OsmAnd/res/values-de/phrases.xml @@ -439,7 +439,7 @@ Mitte-Fahrwasser-Bake Sonderzeichen-Bake Landesteg - Brücke (Seezeichen) + Seezeichen: Brücke Seezeichengebäude Untiefentonne (Kardinal) Ansteuertonne @@ -456,7 +456,7 @@ Hafen Hafenbecken Landmarke - Leuchtfeuer, Seezeichen + Seezeichen: Leuchtfeuer Treibendes Leuchtfeuer Hauptleuchtfeuer Nebenleuchtfeuer @@ -763,7 +763,7 @@ Slowakisches Wiki Polnisches Wiki Niederländisches Wiki - Neu-Norwegisches Wiki + Neu-norwegisches Wiki Norwegisches Wiki Kroatisches Wiki Haitianisches Wiki @@ -773,7 +773,7 @@ Arabisches Wiki Weißrussisches Wiki Bulgarisches Wiki - Cebuanosprachiges Wiki + Cebuano-Wiki Tschechisches Wiki Dänisches Wiki Deutsches Wiki @@ -864,7 +864,7 @@ Nationaler Wanderweg Regionaler Wanderweg Örtlicher Wanderweg - Wanderwegshinweis + Wanderweghinweis Leerungszeiten Betriebszeiten Verlassenes Objekt @@ -933,7 +933,7 @@ Dusche E-Mail Fax - "Facebook " + Facebook Handy nein ja @@ -944,7 +944,7 @@ Zutritt verboten Kundenverkehr frei Lieferverkehr frei - Landwirtschaftl. Verkehr frei + Landwirtschaftlicher Verkehr frei Recyclingzentrum Aluminium Weiße Ware @@ -1012,13 +1012,13 @@ Voodoo Katholisch Baptistisch - Römisch-Katholisch + Römisch-katholisch Orthodox Lutherisch Protestantisch Methodistisch - Russisch-Orthodox - Griechisch-Orthodox + Russisch-orthodox + Griechisch-orthodox Reformiert Siebenten-Tags-Adventisten Neuapostolisch @@ -1030,7 +1030,7 @@ Anfangsdatum ja nein - Eingeschränkt + eingeschränkt Großhandel Inhalt: Silage Inhalt: Wasser @@ -1096,7 +1096,7 @@ Zeitweise Verklemmung Länge - Elektrogeräte-Reparatur + Elektrogerätereparatur Stütze Kriegsdenkmal Statue @@ -1133,10 +1133,10 @@ Maximalbreite IATA-Code ICAO-Code - FAA Code + FAA-Code Breite Architekt - Architektur: Modern + Architektur: modern Straßentunnel Fußgängertunnel Eisenbahntunnel @@ -1174,7 +1174,7 @@ Tanz Militär Kinder - Frauen + Damen Sport Männer Orthopädisch @@ -1277,14 +1277,14 @@ Evangelikal Mormonen Jehovas Zeugen - Griechisch-Katholisch - Bulgarisch-Orthodox + Griechisch-katholisch + Bulgarisch-orthodox Adventisten - Serbisch-Orthodox + Serbisch-orthodox Apostolisch Reformierte - Georgisch-Orthodox - Koptisch-Orthodox + Georgisch-orthodox + Koptisch-orthodox Fahrradständer Vorderradständer Gemischt @@ -1329,7 +1329,7 @@ ja Nicht überdacht Nicht erlaubt - Nur Außerhalb + Nur außerhalb Erlaubt In einem separaten Raum ja @@ -1357,9 +1357,9 @@ Trittsteine Grüne Wiese Jainismus - schwarzes Brett - Gartenstil: Englisch - Gartenstil: Japanisch + Schwarzes Brett + Gartenstil: englisch + Gartenstil: japanisch Kapazität ja Keine Behindertenplätze @@ -1374,8 +1374,8 @@ Elternplätze Kabinen-, Gondel-, Sesselkapazität Kapazität pro Stunde - durchschnittliche Fahrzeit, Minuten - mit Überdachung + Durchschnittliche Fahrzeit, Minuten + Mit Überdachung Ohne Überdachung ja Keine Heizung @@ -1387,7 +1387,7 @@ Ein- und Ausgang Sommereingang Sommerausgang - Sommer Ein- und Ausgang + Sommerein- und -ausgang 1 (Tourist) 1S (gehobener Tourist) 2 (Standard) @@ -1397,14 +1397,14 @@ 4 (Erste Klasse) 4S (gehobene Erste Klasse) 5 (Luxus) - 5S (gehobenes De Luxe) + 5S (gehobener Luxus) Sterne: 6 Sterne: 7 Zimmer Münzen Münzen nicht akzeptiert - $0,50 Münzen - 50c, 1€ und 2€ Münzen + Halbdollar-Münzen + 50-Cent-, 1-Euro- und 2-Euro-Münzen Telefonkarten Telefonkarten nicht akzeptiert Kreditkarten @@ -1467,10 +1467,10 @@ Pfingstler Kirche von England Episkopalkirche - Schia + Schiitisch Vereinigten Tibetisch - Vereinigt Reformiert + Vereinigt-reformiert Kirche von Schottland Heilsarmee Iglesia ni Cristo @@ -1482,13 +1482,13 @@ Vereinigte Methodisten Altgläubige Spiritist - Armenisch-Apostolisch - Niederländisch-Reformiert - Heiligen der Letzten Tage + Armenisch-apostolisch + Niederländisch-reformiert + Heilige der Letzten Tage Kirche Christi Vereinigte Kirche Christi Wissenschaftler - Rumänisch-Orthodox + Rumänisch-orthodox Typ: Wappen Material: Stahlbeton Material: Beton @@ -1504,11 +1504,11 @@ Stadt Nekropole Erdarbeiten - Megalith-Typ: Menhir - Megalith-Typ: Dolmen + Megalithtyp: Menhir + Megalithtyp: Dolmen Befestigungstyp: Wallburg Befestigungstyp: Limes - Festungsbautyp: Schanze + Befestungstyp: Schanze Befestigungstyp: Ringgraben Pa (befestigte Siedlung der Maori) Historischer Bauernhof @@ -1592,19 +1592,19 @@ Moor Marsch Schilf - (Bau)Schutt + Bauschutt Bauland Unitarischer Universalismus Multikonfessionell Scientology Vereinigung Kongregationalistisch - Äthiopisch-Orthodoxe Tewahedo-Kirche + Äthiopisch-orthodoxe Tewahedo-Kirche Unitarisch Wesleyaner Shingon-shū - Mahayana Buddhisten - Jersey Barriere + Mahayana-Buddhisten + Jersey-Barriere Nadelwald Küche Wegweiser @@ -1620,7 +1620,7 @@ Lkw-Maut ja Ohne Blindenleitsystem - Nur wenn Gehen erlaubt ist + Nur, wenn Gehen erlaubt ist Raststätte Bahnübergang Reiten @@ -1643,7 +1643,7 @@ Gartentyp: botanisch Gartenstil: Küchengarten Gartenstil: Rosengarten - Gartenstil: Französisch + Gartenstil: französisch Liebeshotel Elektronische Geldbörsen UTA @@ -1669,7 +1669,7 @@ Routex-Tankkarten nicht akzeptiert Bancomat Bancomat nicht akzeptiert - vorausbezahlte Fahrkarten + Vorausbezahlte Fahrkarten JCB JCB-Karten nicht akzeptiert Eurowag @@ -1693,9 +1693,9 @@ E‑ZPass nicht akzeptiert KITCard KITCard nicht akzeptiert - V PAY + V-Pay V-Pay-Karten nicht akzeptiert - Dogecoin Ɖ + Dogecoin Dogecoin nicht akzeptiert Cibus Cibus-Karten nicht akzeptiert @@ -1705,7 +1705,7 @@ Geldkarte nicht akzeptiert Proton Proton-Karten nicht akzeptiert - Avant Karte + Avantcard Avantcard nicht akzeptiert MEP MEP nicht akzeptiert @@ -1719,7 +1719,7 @@ Monedero 4B nicht akzeptiert Monedero Monedero nicht akzeptiert - BankAxes + BankAxess BankAxess nicht akzeptiert Coinkite Coinkite nicht akzeptiert @@ -1727,8 +1727,8 @@ Roadrunner-Karten nicht akzeptiert SVG SVG nicht akzeptiert - SMS Zahlungen - SMS-Zahlung nicht akzeptiert + SMS-Zahlungen + SMS-Zahlungen nicht akzeptiert OV-Chipkaart OV-Chipkaart nicht akzeptiert Oyster @@ -1751,7 +1751,7 @@ Golden Crown-Karten nicht akzeptiert PRO100 PRO100-Karten nicht akzeptiert - Union Karte + Union-Karte Union-Karte nicht akzeptiert MTS-Money MTS-Money nicht akzeptiert @@ -1762,19 +1762,19 @@ Internetzugang: kostenlos Veranstaltungsort Nur vegetarisch - Vegetarische + Vegetarisch Vegetarisch: nein - vegetarisch (wenige) + Vegetarisch (wenige) Nur vegan Vegan Vegan: nein - Nur glutenfreie - glutenfrei + Nur glutenfrei + Glutenfrei Glutenfrei: nein Nur koscher Koscher Koscher: nein - Nur Halal + Nur halal Halal Halal: nein Nur laktosefrei @@ -1799,7 +1799,7 @@ Rundumservice Flugzeugtankstelle Öffentliches Bad - im Freien + Im Freien Innen Rollstuhlgerechte Toilette: ja Rollstuhlgerechte Toilette: nein @@ -1817,7 +1817,7 @@ Fahrscheine Getränke Süßigkeiten - Paketausgabe und -annahmestelle + Paketausgabe- und -annahmestelle Kondome Briefmarken Essen @@ -1850,7 +1850,7 @@ Stele Büste Koshinto - blaue Plakette + Blaue Plakette Jizo Kreuzförmig Fahrzeug @@ -1905,8 +1905,8 @@ Felsüberhang Sonnenschutz Feldhütte - Unterstand-Typ: Zelt - Unterstand-Typ: verlassen + Unterstandtyp: Zelt + Unterstandtyp: verlassen Tempelturm Baryt Strangmoor @@ -1923,16 +1923,16 @@ Kunstart: Graffiti Kunstart: Stele Kunstart: Brunnen - Architektur: Stalinistischer Neoklassizismus - Architektur: Eklektisch + Architektur: stalinistischer Neoklassizismus + Architektur: eklektisch Architektur: Neue Sachlichkeit - Architektur: Zeitgenössisch + Architektur: zeitgenössisch Architektur: Konstruktivismus Architektur: Umgebinde Architektur: Holzrahmen Architektur: Jugendstil Architektur: Neoklassizismus - Architektur: Viktorianisch + Architektur: viktorianisch Architektur: Brutalismus Architektur: Klassizismus Architektur: Gotik @@ -1943,12 +1943,12 @@ Architektur: Romanik Wassertunnel Wasserbrücke - Brückenkonstruktion: Strahl + Brückenkonstruktion: Balken Brückenkonstruktion: einfache Aufhängung Brückenkonstruktion: Aufhängung Brückenkonstruktion: Bogen Brückenkonstruktion: Fachwerk - Brückenkonstruktion: Schwimmend + Brückenkonstruktion: schwimmend Brückenkonstruktion: Buckel Brückenkonstruktion: Schrägseil Brückenkonstruktion: Promenade @@ -1966,7 +1966,7 @@ Beweglicher Brückentyp: Schubbrücke Beleuchtung: ja Beleuchtung: nein - Oberfläche: unbefestigte + Oberfläche: unbefestigt Oberfläche: befestigt Oberfläche: Asphalt Oberfläche: Beton @@ -1990,7 +1990,7 @@ Oberfläche: Salz Oberfläche: Schnee Bus - geteiltes Taxi + Geteiltes Taxi Oberleitungsbus Straßenbahn Zug @@ -2012,7 +2012,7 @@ Fahrradpumpe: nein Fahrradwerkzeuge für Eigenreparatur: nein Werkzeuge für Eigenreparatur - Reinigung + Fahrradreinigung Fahrradreinigung: nein Fahrradkettenwerkzeug Fahrradkettenwerkzeug: nein @@ -2055,7 +2055,7 @@ Beförderungstyp: Pferd Honiggeschäft Technisches Denkmal - Camping-Büro + Campingbüro Modellflugplatz Fremdenführerbüro Mittlerorganisation @@ -2105,7 +2105,7 @@ Burgtyp: Palast Burgtyp: Verteidigung, stattlich Thailändisch - Sexuelle + Sexuell Massagen Therapeutisch Sauna @@ -2172,25 +2172,25 @@ Typ: Sarkophag Typ: Krypta Typ: Pyramide - Kultur: Römische Antike (753 v.Chr. - 284 n.Chr..) - Kultur: Nuraghen (18. Jh. v.Chr. - 2 Jh. n.Chr.) + Kultur: römische Antike (753 v. Chr. - 284 n. Chr.) + Kultur: Nuraghen (18. Jh. v. Chr. - 2. Jh. n. Chr.) Kultur: Etrusker (12. - 6. Jh. v. Chr.) - Kultur: Prähistorisch - Kultur: Griechische Antike - Kultur: Römisch - "Kultur: byzantinisch (285 - 1453 n. Chr.)" - "Kultur: Chinesische Kaiserzeit (221 - 1911 v.Chr.)" - Kultur: Altes Ägypten (bis 332 v.Chr.) - Kultur: Keltisch - Kultur: Weströmisch (285 - 476 n. Chr.) - Kultur: Mykenisch + Kultur: prähistorisch + Kultur: griechische Antike + Kultur: römisch + Kultur: byzantinisch (285 - 1453) + Kultur: chinesische Kaiserzeit (221 v. Chr. - 1911 n. Chr.) + Kultur: altes Ägypten (bis 332 v. Chr.) + Kultur: keltisch + Kultur: weströmisch (285 - 476) + Kultur: mykenisch Kultur: Daker Kultur: Herniker - Kultur: Griechisch-ägyptisch (322 - 30 v.Chr.) - Kultur: Römisch- und byzantinisch-ägyptisch + Kultur: griechisch-ägyptisch (322 - 30 v. Chr.) + Kultur: römisch- und byzantinisch-ägyptisch Kultur: Helladikum Kultur: Kykladen - Kultur: Minoisch + Kultur: minoisch Kultur: Tiahuanaco Tierausbildung Hund @@ -2199,21 +2199,21 @@ Historisches Zeitalter: Steinzeit / Bronzezeit (unbestimmt) Historisches Zeitalter: Bronzezeit Historisches Zeitalter: Prinzipat (27 v. Chr. - 284 n. Chr.) - Historisches Zeitalter: Klassisches Griechenland (5. - 4. Jhd. v. Chr.) + Historisches Zeitalter: klassisches Griechenland (5. - 4. Jhd. v. Chr.) Historisches Zeitalter: Archaisches Griechenland Historisches Zeitalter: Eisenzeit - Historisches Zeitalter: Römische Republik (508 - 27 v. Chr.) + Historisches Zeitalter: römische Republik (508 - 27 v. Chr.) Historisches Zeitalter: Hellenistisches Griechenland - "Historisches Zeitalter: Pharaonen, Neues Reich (1550 - 1068 v. Chr.)" - Historisches Zeitalter: Pharaonen, Mittleres Reich (2055 - 1650 v. Chr.) + Historisches Zeitalter: Pharaonen, neues Reich (1550 - 1068 v. Chr.) + Historisches Zeitalter: Pharaonen, mittleres Reich (2055 - 1650 v. Chr.) Historisches Zeitalter: Vordynastisches Ägypten Historisches Zeitalter: Pharaonen, frühdynastische Zeit (3100 – 2686 v. Chr.) - Historisches Zeitalter: Pharaonen, Altes Reich (2686 - 2181 v. Chr.) - Historisches Zeitalter: Pharaonen, Erste Zwischenzeit (2181 – 2055 v. Chr.) - Historisches Zeitalter: Pharaonen, Zweite Zwischenzeit (1650 – 1550 v. Chr.) - Historisches Zeitalter: Pharaonen, Dritte Zwischenzeit (1069 – 664 v. Chr.) + Historisches Zeitalter: Pharaonen, altes Reich (2686 - 2181 v. Chr.) + Historisches Zeitalter: Pharaonen, erste Zwischenzeit (2181 – 2055 v. Chr.) + Historisches Zeitalter: Pharaonen, zweite Zwischenzeit (1650 – 1550 v. Chr.) + Historisches Zeitalter: Pharaonen, dritte Zwischenzeit (1069 – 664 v. Chr.) Historisches Zeitalter: Erstes persisches Zeitalter - Historisches Zeitalter: Altägyptische Spätzeit (664 - 332 v. Chr.) + Historisches Zeitalter: altägyptische Spätzeit (664 - 332 v. Chr.) Historisches Zeitalter: Zweites persisches Zeitalter Historisches Zeitalter: Alexander der Große Bauxit @@ -2221,15 +2221,15 @@ Historisches Zeitalter: Christliches Ägypten Historisches Zeitalter: byzantinisches Ägypten (30 v. Chr. - 641 n. Chr.) Historisches Zeitalter: Persische Besetzung - Historisches Zeitalter: Dunkle Jahrhunderte (Antike) (1100 - 800 v. Chr.) - Historisches Zeitalter: Römisches Griechenland (146 v. Chr - 330 n. Chr.) - Historisches Zeitalter: Römische Königszeit (756 - 509 v. Chr.) - Historisches Zeitalter: Dominat (285 - 476 n. Chr.) - Historisches Zeitalter: Ptolemäisches Königreich (305 - 30 v. Chr.) - Historisches Zeitalter: Ländliches Tiahuanaco (I., II. Epoche, 1580 v. Chr. - 133 n. Chr.) - Historisches Zeitalter: Städtisches Tiahuanaco (III. Epoche, 133 - 374 n. Chr.) - Historisches Zeitalter: Klassisches Tiahuanaco (IV. Epoche, 374 - 900 n. Chr.) - Historisches Zeitalter: Imperialistisches Tiahuanaco (V. Epoche, 900 - 1200 n. Chr.) + Historisches Zeitalter: dunkle Jahrhunderte (Antike) (1100 - 800 v. Chr.) + Historisches Zeitalter: römisches Griechenland (146 v. Chr - 330 n. Chr.) + Historisches Zeitalter: römische Königszeit (756 - 509 v. Chr.) + Historisches Zeitalter: Dominat (285 - 476) + Historisches Zeitalter: ptolemäisches Königreich (305 - 30 v. Chr.) + Historisches Zeitalter: ländliches Tiahuanaco (I., II. Epoche, 1580 v. Chr. - 133 n. Chr.) + Historisches Zeitalter: städtisches Tiahuanaco (III. Epoche, 133 - 374) + Historisches Zeitalter: klassisches Tiahuanaco (IV. Epoche, 374 - 900) + Historisches Zeitalter: imperialistisches Tiahuanaco (V. Epoche, 900 - 1200) Historische Epoche: Altsteinzeit (2,6 Mio. - 10000 Jahre vor heute) Historische Epoche: Mittelsteinzeit Historische Epoche: Jungsteinzeit @@ -2237,9 +2237,9 @@ Typ: Steinkreuz Hüttenkreis Petroglyphe - Megalith-Typ: Nuraghe - Megalith-Typ: Steinkreis - Megalith-Typ: Ganggrab + Megalithtyp: Nuraghe + Megalithtyp: Steinkreis + Megalithtyp: Ganggrab Gipfelkreuz: ja Vermittlung: ja Afrikanisches Wiki @@ -2248,7 +2248,7 @@ Bishnupriyaisches Wiki Bretonisches Wiki Walisisches Wiki - Esperantoisches Wiki + Esperanto-Wiki Baskisches Wiki Farsisches Wiki Malayalamisches Wiki @@ -2256,8 +2256,8 @@ Navajoisches Wiki Warayisches Wiki Minangkabauisches Wiki - Minnanisches Wiki - Malagasisches Wiki + Minnan-Wiki + Madagassisches Wiki Tatarisches Wiki Kirgisisches Wiki Tadschikisches Wiki @@ -2270,7 +2270,7 @@ Aragonesisches Wiki Gujaratisches Wiki Palsamoor - IC gespeicherte Fährfahrkarten + IC-gespeicherte Fährfahrkarten IC-gespeicherte Fährfahrkarten nicht akzeptiert Allgemeinmediziner Augenheilkunde @@ -2368,7 +2368,7 @@ Futsal Lacrosse Offizieller Name - Seezeichen Deich + Seezeichen: Deich Dalbe Schild: Forstabteilung Schild: Forstparzelle @@ -2460,7 +2460,7 @@ Paragleiten: nein Drachenfliegen Drachenfliegen: nein - Strikt + Freeflying starr Freeflying starr: nein Freeflying Ausrichtung: N Freeflying-Platzausrichtung: NO @@ -3222,13 +3222,13 @@ Wasserversorgungsart Wasseraufbereitung Wasserplatzzugang - Lage: Auf dem Dach + Lage: auf dem Dach Sichtbarkeit: Haus Sichtbarkeit: Straße Sichtbarkeit: Bereich Offen Geschlossen - Eingeschränkt + eingeschränkt Beschädigt Wartung benötigt Keine @@ -3320,11 +3320,11 @@ Parkgebühr: nein Parkgebühr Stromstärke - Lage: Oben - Wasserstelle Haltbarkeit: Dauerhaft + Lage: oben + Wasserstelle Haltbarkeit: dauerhaft Wasserstelle Haltbarkeit: Notfall Mehrfamilien - Ladestation Ausgang + Ladestation: Ausgang Kartentyp: Gelände Kartentyp: Straße Kartentyp: Übersicht @@ -3458,13 +3458,13 @@ Autoteile Batterien Klimatisierung - Karosserie-Reparatur + Karosseriereparatur Elektrik Räder Glas Lkw-Reparatur Fahrwerkseinstellung - Getriebe-Reparatur + Getriebereparatur Motor Versicherung Reifen @@ -3520,7 +3520,7 @@ Verpackungsfreie Waren Typ ja - Nur + Nur verpackungsfrei Umspannwerk Verteiler Haushaltsverteilung @@ -3770,4 +3770,6 @@ Geschlecht der Gemeinschaft: männlich Geschlecht der Gemeinschaft: gemischt Grab + Parkplatz + URL \ No newline at end of file diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index 83dd6438de..83c953df78 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -709,7 +709,7 @@ Zielführung starten Nutzerprofil: Bitte zuerst ein Ziel festlegen - Wegbeschreibung + Navigation Öffnungszeiten Änderungssatz öffnen… Änderungssatz schließen… @@ -946,8 +946,8 @@ Zwischenziel Endpunkt zu weit von der nächsten Straße entfernt. Zwischenziel %1$s ist zu weit von der nächsten Straße entfernt. - Als letztes Zwischenziel einfügen - Als erstes Zwischenziel einfügen + Als letztes Zwischenziel hinzufügen + Als erstes Zwischenziel hinzufügen Ziel %1$s Ziele Als erstes Zwischenziel hinzufügen @@ -1802,7 +1802,7 @@ Lon %2$s Übersichtsseite oder Menüsteuerung Es besteht die Möglichkeit, die App primär über die flexible Übersichtsseite oder ein statisches Menü zu steuern. Ihre Wahl kann jederzeit in den Übersichtsseiten-Einstellungen geändert werden. Aufruf von der Karte aus - Neu erstellen + Neue Katagorie erstellen Weiter %.1f MB Bitte einen gültigen POI-Typ angeben oder überspringen. @@ -2789,7 +2789,7 @@ Lon %2$s Für den Einsatz im Gelände, basierend auf dem \'Topo\'-Kartenstil und zur Verwendung mit grünen Satellitenbildern als Unterlagekarte. Verringerte Linienstärke für Straßen, erhöhte für Fußwege, Wander-, Rad- und andere Outdoor-Routen. Touring-Stil mit hohem Kontrast und maximalen Details. Enthält alle Optionen des OsmAnd-Standardstils und zeigt dabei so viele Details wie möglich an, insbesondere Straßen, Pfade und andere Verkehrswege. Klare Unterscheidung zwischen den Straßentypen durch den „Touring-Atlas“. Geeignet für den Einsatz bei Tag, Nacht und im Freien. Ankunftszeit Zwischenziel - Reisezeit Zwischenziel + Zwischenankunftszeit Änderung des Standardstils, um den Kontrast von Fußgänger- und Fahrradwegen zu erhöhen. Verwendet alte Mapnik-Farben. GPX-Dateien Holen Sie sich OsmAnd Live, um alle Funktionen freizuschalten: Tägliche Karten-Updates mit unbegrenzten Downloads, alle kostenpflichtigen und kostenlosen Plugins, Wikipedia, Wikivoyage und vieles mehr. @@ -3426,4 +3426,5 @@ Lon %2$s Alle Profil-Einstellungen werden auf den Ausgangszustand nach App-Installation zurückgesetzt. Alle Profil-Einstellungen auf den Standard zurücksetzen\? %1$s: %2$s + %1$s %2$s \ No newline at end of file diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml index 458901cef0..7446abe19e 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -3401,4 +3401,5 @@ Indikas lokon: %1$s x %2$s" Ĉiuj agordoj pri profiloj revenos al la post-instala stato. Ĉu rekomencigi ĉiujn agordojn pri profiloj\? %1$s: %2$s + %1$s %2$s \ No newline at end of file diff --git a/OsmAnd/res/values-es-rAR/phrases.xml b/OsmAnd/res/values-es-rAR/phrases.xml index 9410b92805..6c5d35d5f4 100644 --- a/OsmAnd/res/values-es-rAR/phrases.xml +++ b/OsmAnd/res/values-es-rAR/phrases.xml @@ -3774,4 +3774,6 @@ Género de la comunidad: masculino Género de la comunidad: mixto Tumba + Espacio de estacionamiento + URL \ No newline at end of file diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml index 45e8048704..c689ca6074 100644 --- a/OsmAnd/res/values-es-rAR/strings.xml +++ b/OsmAnd/res/values-es-rAR/strings.xml @@ -3425,4 +3425,6 @@ Lon %2$s Al pulsar en %1$s, se perderán todos los cambios. Todos los ajustes del perfil serán restablecidos al estado después de la instalación. ¿Restablecer todos los ajustes del perfil a su valor predefinido\? + %1$s %2$s + %1$s: %2$s \ No newline at end of file diff --git a/OsmAnd/res/values-et/strings.xml b/OsmAnd/res/values-et/strings.xml index bf2a6b3e9a..2e9f3aa6b6 100644 --- a/OsmAnd/res/values-et/strings.xml +++ b/OsmAnd/res/values-et/strings.xml @@ -3353,4 +3353,5 @@ Kõik profiiliseaded lähtestatakse paigaldusjärgsesse olekusse. Taasta kõikide profiiliseadete vaikeväärtused\? %1$s: %2$s + %1$s %2$s \ No newline at end of file diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 1eed014f75..6f20c4a2ff 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -3394,4 +3394,5 @@ représentant la zone : %1$s x %2$s Tous les paramètres de profil vont être ré-initialisés aux valeurs par défaut. Ré-initialiser tous les paramètres de profil \? %1$s : %2$s + %1$s %2$s \ No newline at end of file diff --git a/OsmAnd/res/values-he/strings.xml b/OsmAnd/res/values-he/strings.xml index 3d0b111958..cfd3ced71e 100644 --- a/OsmAnd/res/values-he/strings.xml +++ b/OsmAnd/res/values-he/strings.xml @@ -3412,4 +3412,5 @@ כל הגדרות הפרופיל יאופסו למצב כמו שלאחר ההתקנה. לאפס את הגדרות הפרופיל לבררת המחדל\? %1$s:‏ %2$s + %1$s %2$s \ No newline at end of file diff --git a/OsmAnd/res/values-hu/phrases.xml b/OsmAnd/res/values-hu/phrases.xml index 6ba3b81c1a..f9f2be0bb1 100644 --- a/OsmAnd/res/values-hu/phrases.xml +++ b/OsmAnd/res/values-hu/phrases.xml @@ -3760,4 +3760,6 @@ Egészségesélelmiszer-bolt Padlólerakó Állatkozmetika + Parkolóhely + URL \ No newline at end of file diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index b52d8f3b5b..cb3cba869e 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -3421,4 +3421,5 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Minden profil visszaálljon az alapértelmezett helyzetbe\? Családi autó %1$s: %2$s + %1$s %2$s \ No newline at end of file diff --git a/OsmAnd/res/values-is/strings.xml b/OsmAnd/res/values-is/strings.xml index c0ba6a1a44..ea31d75473 100644 --- a/OsmAnd/res/values-is/strings.xml +++ b/OsmAnd/res/values-is/strings.xml @@ -3430,4 +3430,6 @@ Stendur fyrir svæði: %1$s x %2$s Allar sniðstillingar verða endurstilltar á sína stöðu eftir uppsetningu. Núllstilla allar sniðstillingar\? %1$s: %2$s + %1$s %2$s + %1$s: %2$s \ No newline at end of file diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml index ff1d2f2dc5..869f4bee80 100644 --- a/OsmAnd/res/values-it/strings.xml +++ b/OsmAnd/res/values-it/strings.xml @@ -3420,4 +3420,6 @@ Rappresenta l\'area: %1$s x %2$s Tutte le impostazioni del profilo saranno reimpostate come da prima installazione. Reimpostare tutte le impostazioni del profilo a quelle preimpostate\? %1$s: %2$s + %1$s %2$s + %1$s: %2$s \ No newline at end of file diff --git a/OsmAnd/res/values-nb/strings.xml b/OsmAnd/res/values-nb/strings.xml index 2c0bd4e1fb..4ec679813e 100644 --- a/OsmAnd/res/values-nb/strings.xml +++ b/OsmAnd/res/values-nb/strings.xml @@ -3428,4 +3428,5 @@ Alle profilinnstillinger må tilbakestilles til forvalg. Tilbakestill alle innstillinger til forvalg\? %1$s: %2$s + %1$s %2$s \ No newline at end of file diff --git a/OsmAnd/res/values-pt-rBR/phrases.xml b/OsmAnd/res/values-pt-rBR/phrases.xml index 5bbc8d6f9d..0c0b1e208a 100644 --- a/OsmAnd/res/values-pt-rBR/phrases.xml +++ b/OsmAnd/res/values-pt-rBR/phrases.xml @@ -3767,4 +3767,6 @@ Gênero da comunidade: masculino Gênero da comunidade: ambos Túmulo + Espaço de estacionamento + URL \ No newline at end of file diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index d098d5ba9b..71d8868f5d 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -3408,4 +3408,5 @@ Pôr do Sol: %2$s Todas as configurações de perfil serão redefinidas para o estado após a instalação. Redefinir todas as configurações de perfil para o padrão\? %1$s: %2$s + %1$s %2$s \ No newline at end of file diff --git a/OsmAnd/res/values-pt/phrases.xml b/OsmAnd/res/values-pt/phrases.xml index 74fbf1769f..60507ea65a 100644 --- a/OsmAnd/res/values-pt/phrases.xml +++ b/OsmAnd/res/values-pt/phrases.xml @@ -3752,4 +3752,6 @@ Sexo comunitário: masculino Sexo comunitário: misto Grave + Espaço de estacionamento + URL \ No newline at end of file diff --git a/OsmAnd/res/values-pt/strings.xml b/OsmAnd/res/values-pt/strings.xml index 1ec41048bf..6fed020d9a 100644 --- a/OsmAnd/res/values-pt/strings.xml +++ b/OsmAnd/res/values-pt/strings.xml @@ -2208,7 +2208,7 @@ Para esquiar. Contém pistas de esqui, elevadores, pistas de cross country, etc. Escurece objetos de mapa secundários. Estilo simples e contrastante para a navegação do carro. É suave para os olhos no modo noturno. Características principais: curvas de nível, estradas contrastantes de estilo laranja, menos objetos secundários do mapa para evitar distrações. Para caminhadas, trekking e ciclismo de natureza. Legível ao ar livre. Estradas e objetos naturais contrastantes, diferentes tipos de rotas, opções avançadas de linha de contorno, detalhes extras. O ajuste da integridade da superfície distingue a qualidade da estrada. Sem modo noturno. - Velho estilo de renderização padrão \'Mapnik\'. Características principais: as cores são semelhantes ao estilo \'Mapnik\'. + O velho estilo padrão \'Mapnik\'. Cores como \'Mapnik\'. Estilo de alto detalhe para turismo. Inclui todas as opções de configuração de estilo padrão e além disso: mostra o máximo de detalhes possível, em particular todas as estradas, caminhos e outras formas de viajar. Distinção visual clara entre todos os tipos de estradas diferentes, reminiscente de muitos mapas de turismo. Esquema de cores de alto contraste para uso ao ar livre, modo diurno e noturno. Estilo de propósito geral. Renderização simplificada e limpa em cidades densamente povoadas. Características principais: linhas de contorno, rotas, qualidade de superfície, restrições de acesso, escudos rodoviários, caminhos de renderização de acordo com a escala SAC, características desportivas Whitewater. Abrir página da Wikipédia na Internet @@ -2233,14 +2233,14 @@ Descarregar ficheiro O mundo livre guia de viagem, que qualquer pessoa pode editar. Os guias de viagem estão atualmente baseados no Wikivoyage. Teste todos os recursos gratuitamente durante o teste aberto beta. Posteriormente os guias de viagem estarão disponíveis para assinantes do OsmAnd Unlimited e proprietários da OsmAnd+. - Pode e deve editar qualquer artigo no Wikivoyage. Partilhe saber, experiência, talento e a sua atenção + Pode e deve editar qualquer artigo no Wikivoyage. Partilhe saber, experiência, talento e a sua atenção. Começar a editar Obter acesso ilimitado Bem-vindo ao beta aberto Guias de viagem Guias para os lugares mais interessantes do mundo dentro do OsmAnd, sem uma conexão com a Internet. - Atualizações de mapa: a cada mês - Atualizações de mapa: a cada hora + Atualizações de mapa mensais + Atualizações de mapa a cada hora Compra na aplicação Pagamento de uma só vez Uma vez comprado, estará sempre disponível para si. @@ -2252,7 +2252,7 @@ Desbloquear todas as características de OsmAnd Escolher plano Compre uma das opções seguintes para receber a funcionalidade da guia de viagem offline: - Escolha o artigo adequado: + Escolha o artigo adequado Não Fazer Apenas em Wi-Fi @@ -2269,7 +2269,7 @@ Guias de viagem Wikivoyage Artigo removido - Pesquisa: país, cidade, província + Pesquisar por país, cidade ou província Ler Artigos marcados Explorar @@ -2284,8 +2284,8 @@ Limpar todos os pontos intermediários Grupo eliminado Whitewater esportes - Distância: primeiro o mais distante - Distância: primeiro o mais próximo + Primeiro o mais distante + Primeiro o mais próximo Digite a longitude Digite a latitude Digite a latitude e a longitude @@ -2304,7 +2304,7 @@ Digite o nome do ficheiro. Erro de importação de mapa Mapa importado - Faça este o ponto de partida + Fazer este o ponto de partida Atual Adiciona paragem intermédia Adiciona paragem inicial @@ -2315,8 +2315,8 @@ OSC - adequado para exportar para o OpenStreetMap. Ficheiro GPX Ficheiro OSC - Escolha o tipo de ficheiro - Selecione o tipo de exportação: notas do OSM, POI ou ambos. + Selecione o tipo de ficheiro + Selecione o tipo de exportação: notas do OSM, POIs ou ambos. Todos os dados Notas do OSM Abre amanhã às @@ -2348,11 +2348,11 @@ \n• Assinatura OsmAnd Live agora suporta todas as funcionalidades do OsmAnd \n \n - Modificar a consulta de pesquisa. + Modifique a sua pesquisa. Ações Marcador Criar ou modificar objetos OSM - Criar ou modifiquar POI OSM, abrir ou comentar notas do OSM e contribuir com ficheiros gravados GPX. + Criar ou modificar POIs do OSM, abrir ou comentar notas do OSM e contribuir com ficheiros gravados de GPX. Eliminado Editado Adicionado @@ -3436,4 +3436,6 @@ Ao clicar em %1$s perderá todas as suas alterações. Todas as configurações de perfil serão redefinidas para o estado após a instalação. Redefinir todas as configurações de perfil para o padrão\? + %1$s %2$s + %1$s: %2$s \ No newline at end of file diff --git a/OsmAnd/res/values-ru/phrases.xml b/OsmAnd/res/values-ru/phrases.xml index ed12d660ac..d9f3e4afb5 100644 --- a/OsmAnd/res/values-ru/phrases.xml +++ b/OsmAnd/res/values-ru/phrases.xml @@ -3642,4 +3642,21 @@ Бушеншанк (изысканные австрийские вина) Изысканная кухня Сеть + Парковочное место + + Шлаковый конус + Стратовулкан + Щитовой + Маар + Калдера + Лавовый купол + Грязевой + Последнее извержение + Потухший + Спящий + Активный + Неактивный + Число извержений + + \ No newline at end of file diff --git a/OsmAnd/res/values-sc/strings.xml b/OsmAnd/res/values-sc/strings.xml index 8bfe1c9441..09af46fdd5 100644 --- a/OsmAnd/res/values-sc/strings.xml +++ b/OsmAnd/res/values-sc/strings.xml @@ -3421,4 +3421,5 @@ Pro praghere iscrie su còdighe intreu Totu sas impostatziones de su profilu ant a torrare a s\'istadu chi teniant in antis de s\'installatzione. Ripristinare totu sas impostatziones de su profilu a sos valores predefinidos\? %1$s: %2$s + %1$s %2$s \ No newline at end of file diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml index ca85e0f879..957a36d5cc 100644 --- a/OsmAnd/res/values-sk/strings.xml +++ b/OsmAnd/res/values-sk/strings.xml @@ -79,7 +79,7 @@ \n \nDlaždicové mapy môžete získať priamo zo zdrojov na Internete, alebo ich môžete pripraviť na použitie offline (skopírovať ručne do dátového priečinka OsmAnd) ako SQLite databázu, ktorú vedia vytvoriť viaceré programy na prípravu máp. Zobrazí nastavenia na zapnutie stopovania a navigácie v pozadí systému pravidelným prebúdzaním GPS zariadenia (pri vypnutej obrazovke). - Tento modul zobrazí funkcie uľahčenia prístupu priamo v OsmAnd. Napr. je možné zmeniť rýchlosť TTS hlasu, použiť trackball na približovanie, alebo automaticky oznamovať polohu hlasom. + Tento modul zobrazí funkcie uľahčenia prístupu priamo v OsmAnd. Napr. je možné zmeniť rýchlosť generovaného hlasu, použiť trackball na približovanie, alebo automaticky oznamovať polohu hlasom. Tento modul zobrazí nastavenia pre funkcie vývoja a ladenia, ako simulácia trasy, zobrazenie výkonu vykresľovania alebo hlasové oznamy. Tieto nastavenia sú určené pre vývojárov a nie sú potrebné pre bežné použitie programu. Zásuvné moduly Zásuvné moduly aktivujú pokročilé nastavenia a dodatočné funkcie. @@ -193,9 +193,7 @@ Globálne nastavenia Globálne nastavenia aplikácie Nie je dostatok voľného miesta pre stiahnutie %1$s MB (voľné: %2$s). - Naozaj stiahnuť {0} súbor(ov)? - V úložisku je potrebných {1} MB. - (Dostupné miesto je {2} MB.) + Stiahnuť {0} súbor(ov)\? Bude použitých {1} MB (z {2} MB). Priehľadná téma Natívna knižnica nie je podporovaná na tomto zariadení. Inicializácia natívnej knižnice… @@ -679,7 +677,7 @@ Správa Meno autora Komentár pridaný - Nepodarilo sa pridať komentár + Nepodarilo sa pridať komentár. Upravenie bodu záujmu (POI) Vytvorenie bodu záujmu (POI) Bod sa nedá nájsť alebo je bod záujmu tvorený viacerými bodmi, s čím zatiaľ nie je možné pracovať. @@ -891,7 +889,7 @@ Proporčná pamäť %4$s MB (Limit Androidu %5$s MB, Dalvik %6$s MB). Meranie vzdialenosti Umiestnenie na spojenie s poznámkou ešte nie je definované. Ak chcete priradiť poznámku k vybranému umiestneniu, použite \"Použiť umiestnenie…\". Zvukové poznámky - Modul Audio/video poznámok poskytuje funkcie na vytváranie obrazových/zvukových/video poznámok počas výletu, buď tlačidlom na obrazovke mapy alebo priamo v kontextovom menu bodu na mape. + Modul Audio/video poznámok poskytuje funkcie na vytváranie obrazových/zvukových/video poznámok počas výletu, buď tlačidlom na mape alebo priamo v kontextovom menu bodu na mape. Audio/video poznámky Tento modul poskytuje vrstevnice a tieňované reliéfy, ktoré môžu byť zobrazené ponad štandardné mapy. Táto funkcia je vhodná pre atlétov, turistov, chodcov a všetkých, ktorých zaujíma reliéf terénu. (Samotné vrstevnice sú samostatnými dátami, ktoré je potrebné stiahnuť po aktivovaní modulu.) \n @@ -1287,9 +1285,9 @@ Proporčná pamäť %4$s MB (Limit Androidu %5$s MB, Dalvik %6$s MB). Zvoľte toleranciu prekročenia povolenej rýchlosti, po ktorej dostanete hlasové oznámenie. Anonymný používateľ Prihlásený ako %1$s - Anonymný používateľ nemôže: -\n- Vytvárať skupiny; -\n- Synchronizovať skupiny a zariadenia so serverom; + Anonymní používatelia nemôžu: +\n- Vytvárať skupiny; +\n- Synchronizovať skupiny a zariadenia so serverom; \n- Spravovať skupiny a zariadenia na osobnej nástenke na webovej stránke. Podrobnosti Doprava @@ -1453,7 +1451,7 @@ Proporčná pamäť %4$s MB (Limit Androidu %5$s MB, Dalvik %6$s MB). Zapamätať voľbu Obnoviť Stiahnuť - Sťahovanie + Sťahovanie… Stiahnuté Chyba čítania/zápisu Neočakávaná chyba @@ -1500,7 +1498,7 @@ Dĺžka %2$s Navštíviť po Navštíviť pred Skryť - Idete odoslať %1$d zmien do OSM. Ste si istí? + Naozaj chcete odoslať %1$d zmien do OSM\? Vymazať históriu? prekročený čas Vo viacerých krajinách (ako Nemecko, Francúzsko, Taliansko) je použitie varovaní pred rýchlostnými radarmi/kamerami zakázané zákonom (nelegálne). OsmAnd nepreberá žiadnu zodpovednosť ak porušíte zákon. Stlačte \"Áno\" len ak ste na to oprávnený použiť túto funkciu. @@ -1512,7 +1510,7 @@ Dĺžka %2$s Zmeny OSM pridané do lokálnej sady zmien Označte pre výmaz Informácie o A-GPS - A-GPS dáta boli naposledy stiahnuté: %1$s + A-GPS dáta boli stiahnuté: %1$s Správa Nepoužívať Adresa @@ -1555,12 +1553,12 @@ Dĺžka %2$s Zobraziť detaily Wikipédia Importovať do OsmAnd - Chystáte sa vymazať %1$d poznámok. Ste si istí? - Služba zisťovania pozície vypnutá. Zapnúť teraz? + Naozaj chcete vymazať %1$d poznámok\? + Služba zisťovania pozície je vypnutá. Zapnúť teraz\? Zakázať samostatné zaznamenávanie Zastaví záznam GPX keď je aplikácia ukončená (cez nedávne aplikácie). (Ikona režimu na pozadí zmizne z notifikačnej oblasti Androidu.) Máte stiahnuté staré nekompatibilné dáta z Wikipédie. Chcete ich archivovať? - Stiahnuť ďalšie dáta z Wikipédie (%1$s MB) ? + Stiahnuť ďalšie dáta z Wikipédie (%1$s MB)\? Španielsky (Argentína) Nórsky Bokmål Volapuk @@ -1609,7 +1607,7 @@ Dĺžka %2$s Modrá Fialová Priehľadná fialová - Manuálne reštartujte aplikáciu pre použitie všetkých zmien. + Pre použitie zmeny je potrebný reštart aplikácie. Predvolená (13) Predvolená (priehľadná azúrová) Priehľadná modrá @@ -1669,7 +1667,7 @@ Dĺžka %2$s Pridať Obľúbený bod Cesty Pridať nový - Zvoľte kategóriu + Vyberte kategóriu Zvoľte jednotku rýchlosti. Jednotka rýchlosti nmi @@ -1775,9 +1773,9 @@ Dĺžka %2$s Znovuotvoriť poznámku Uzavrieť poznámku Poznámka vytvorená - Nepodarilo sa vytvoriť poznámku + Nepodarilo sa vytvoriť poznámku. Poznámka uzavretá - Nepodarilo sa uzavrieť poznámku + Nepodarilo sa uzavrieť poznámku. Odoslať Farba GPX Šírka GPX @@ -1815,9 +1813,9 @@ Dĺžka %2$s OsmAnd nemá oprávnenie použiť pamäťovú kartu Vyberte cesty, ktorým sa chcete navigácii vyhnúť. Zvuk - Aplikácia nemá oprávnenia na prístup k údajom o polohe. - Aplikácia nemá oprávnenia na prístup k fotoaparátu. - Aplikácia nemá oprávnenia na prístup k mikrofónu. + Udeľte oprávnenie na prístup k údajom o polohe. + Udeľte oprávnenia na prístup k fotoaparátu. + Udeľte oprávnenia na prístup k mikrofónu. Zvoľte hlasové pokyny Vyberte alebo stiahnite hlasové pokyny pre váš jazyk. Okamžité aktualizácie @@ -1866,10 +1864,8 @@ Dĺžka %2$s Zobraziť trasy pre horské bicykle Zvoľte mapovú značku Iné značky - Nedostatok miesta! - V úložisku je dočasne je potrebných {3} MB, natrvalo {1} MB. - Dostupné miesto je len {2} MB. - Naozaj stiahnuť {0} súbor(ov)? V úložisku je dočasne je potrebných {3} MB, natrvalo {1} MB. ({2} MB voľného miesta.) + Nedostatok miesta! V úložisku je dočasne je potrebných {3} MB, natrvalo {1} MB. (Dostupných je len {2} MB.) + Naozaj stiahnuť {0} súbor(ov)\? V úložisku je dočasne je potrebných {3} MB, natrvalo {1} MB. (Z {2} MB.) Odošlite OSM poznámku anonymne alebo použite svoj účet na OpenStreetMap.org. Odoslať OSM poznámku Prvá mapová značka @@ -1894,11 +1890,11 @@ Dĺžka %2$s Pozícia medzi editormi OSM Predplatné OsmAnd Live Registrovať - Potrebné pre poskytnutie Vám informácií o príspevkoch. + Potrebné pre informovanie vás o vašich príspevkoch. Verejné meno Nezobrazovať moje meno v prehľadoch Podporovaný región - Mesačná cena + Cena za mesiac Mesačná platba Aktívne Neaktívne @@ -3409,4 +3405,5 @@ Zodpovedá oblasti: %1$s x %2$s Všetky nastavenia profilu budú vrátené do východzieho stavu. Resetovať nastavenia profilu na predvolené hodnoty\? %1$s: %2$s + %1$s %2$s \ No newline at end of file diff --git a/OsmAnd/res/values-tr/strings.xml b/OsmAnd/res/values-tr/strings.xml index 3330a4402b..3d9a30b8ab 100644 --- a/OsmAnd/res/values-tr/strings.xml +++ b/OsmAnd/res/values-tr/strings.xml @@ -3372,4 +3372,5 @@ Tüm profil ayarları kurulumdan sonraki duruma sıfırlanacaktır. Tüm profil ayarları varsayılana sıfırlansın mı\? %1$s: %2$s + %1$s %2$s \ No newline at end of file diff --git a/OsmAnd/res/values-uk/phrases.xml b/OsmAnd/res/values-uk/phrases.xml index 6115fffed9..ebd033e8c2 100644 --- a/OsmAnd/res/values-uk/phrases.xml +++ b/OsmAnd/res/values-uk/phrases.xml @@ -3755,4 +3755,6 @@ Стать спільноти: чоловіча Стать спільноти: обидві статі Могила + Паркувальне місце + URL \ No newline at end of file diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index 984cfbd5f9..a243a06cf6 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -780,8 +780,8 @@ Ви впевнені, що хочете вилучити пункт призначення (і проміжні точки)? Показати Фото %1$s %2$s - Сфотографувати - Сфотографувати + Зробити світлину + Зробити світлину Втулок Dropbox дозволяє вам часоузгодити треки та звуко/відео-примітки з вашим обліковим записом Dropbox. Втулок Dropbox Змінити порядок @@ -797,7 +797,7 @@ Формат відео Використовувати системну програму для запису відео. Використовувати системну програму - Використовувати системну програму для фотографій. + Використовувати системний додаток для світлин. недоступно Стоп Старт @@ -2417,18 +2417,18 @@ \nОтримайте надійний навігатор у вашій країні — будь то Україна, Франція, Німеччина, Мексика, Великобританія, Іспанія, Нідерланди, США, Росія, Бразилія чи будь-яка інша… \n Назва містить занадто багато великих літер. Продовжити? - Додати фотографії + Додати світлини Поділитися своїми вуличними видами цієї місцевості через Mapillary. Віджет Mapillary Дозволяє швидко зробити внесок в Mapillary. Світлини вулиць в мережі для всіх. Відкрийте для себе місця, діліться та знимкуйте весь світ. - Вуличні фотографії для усіх. Відкривайте для себе місця, співпрацюйте, знімкуйте світ. - Мережеві світлинознімки + Вуличні світлини для усіх. Відкривайте для себе місця, співпрацюйте, знімкуйте світ. + Мережеві світлини Тут нема світлин. Відкрити Mapillary Встановити Поліпшити фото-покриття Mapillary - Встановіть Mapillary, щоб додати одну або кілька фотографій до цього місця на мапі. + Встановіть Mapillary, щоб додати одну або кілька світлин до цього місця на мапі. Зображення Mapillary Відстань виправлена Права доступу @@ -2445,7 +2445,7 @@ Введіть ім\'я користувача Переглянути лише зображення додані Ім\'я користувача - Фільтрувати фотографії за подавачем, датою чи типом. Фільтри застосовуються лише для великих масштабів. + Фільтрувати світлини за подавачем, датою чи видом. Фільтри застосовуються лише для великих масштабів. Скинути Зберігати записані треки у помісячних теках Зберігати записані треки в підтеках відповідно місяцю запису (наприклад, 2018-01). @@ -3412,4 +3412,5 @@ Усі налаштування профілю буде скинуто після встановлення. Скинути всі усталені налаштування профілю\? %1$s: %2$s + %1$s %2$s \ No newline at end of file diff --git a/OsmAnd/res/values-zh-rTW/phrases.xml b/OsmAnd/res/values-zh-rTW/phrases.xml index ea2e3a0c72..1d783f775b 100644 --- a/OsmAnd/res/values-zh-rTW/phrases.xml +++ b/OsmAnd/res/values-zh-rTW/phrases.xml @@ -3766,4 +3766,6 @@ 社群性別:男 社群性別:混合 墳墓 + 停車位 + URL \ 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 224604bd07..52a9a0ffee 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -3409,4 +3409,5 @@ 所有設定檔都將被重設為安裝後的狀態。 將所有設定檔重設為預設值? %1$s:%2$s + %1$s %2$s \ No newline at end of file diff --git a/OsmAnd/res/values/phrases.xml b/OsmAnd/res/values/phrases.xml index 2c21a5fdb4..989b50f5d7 100644 --- a/OsmAnd/res/values/phrases.xml +++ b/OsmAnd/res/values/phrases.xml @@ -129,6 +129,8 @@ Cash withdrawal Type Open air + Type + Status Store @@ -4157,4 +4159,22 @@ Grave + Parking space + + URL + + Scoria + Stratovolcano + Shield + Maar + Caldera + Lava dome + Dirt + Last eruption + Extinct + Dormant + Active + Inactive + Number of eruptions + diff --git a/OsmAnd/src/net/osmand/plus/MapMarkersHelper.java b/OsmAnd/src/net/osmand/plus/MapMarkersHelper.java index 234bb28ff6..c134b09dde 100644 --- a/OsmAnd/src/net/osmand/plus/MapMarkersHelper.java +++ b/OsmAnd/src/net/osmand/plus/MapMarkersHelper.java @@ -9,6 +9,8 @@ import android.support.v4.content.ContextCompat; import net.osmand.AndroidUtils; import net.osmand.GPXUtilities; +import net.osmand.GPXUtilities.GPXFile; +import net.osmand.GPXUtilities.WptPt; import net.osmand.IndexConstants; import net.osmand.PlatformUtil; import net.osmand.data.FavouritePoint; @@ -16,8 +18,6 @@ import net.osmand.data.LatLon; import net.osmand.data.LocationPoint; import net.osmand.data.PointDescription; import net.osmand.plus.FavouritesDbHelper.FavoriteGroup; -import net.osmand.GPXUtilities.GPXFile; -import net.osmand.GPXUtilities.WptPt; import net.osmand.plus.GeocodingLookupService.AddressLookupRequest; import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile; import net.osmand.plus.mapmarkers.MapMarkersDbHelper; @@ -53,9 +53,9 @@ public class MapMarkersHelper { public static final int BY_DISTANCE_DESC = 1; public static final int BY_DISTANCE_ASC = 2; public static final int BY_DATE_ADDED_DESC = 3; - + public static final int BY_DATE_ADDED_ASC = 4; - + private static final Log LOG = PlatformUtil.getLog(MapMarkersHelper.class); @Retention(RetentionPolicy.SOURCE) @@ -64,7 +64,6 @@ public class MapMarkersHelper { } private OsmandApplication ctx; - private OsmandSettings settings; private MapMarkersDbHelper markersDbHelper; private ExecutorService executorService = Executors.newSingleThreadExecutor(); @@ -76,8 +75,6 @@ public class MapMarkersHelper { private List listeners = new ArrayList<>(); private Set syncListeners = new HashSet<>(); - private boolean startFromMyLocation; - private MarkersPlanRouteContext planRouteContext; public List getMapMarkers() { @@ -93,12 +90,11 @@ public class MapMarkersHelper { } public boolean isStartFromMyLocation() { - return startFromMyLocation; + return ctx.getSettings().ROUTE_MAP_MARKERS_START_MY_LOC.get(); } public void setStartFromMyLocation(boolean startFromMyLocation) { - this.startFromMyLocation = startFromMyLocation; - settings.ROUTE_MAP_MARKERS_START_MY_LOC.set(startFromMyLocation); + ctx.getSettings().ROUTE_MAP_MARKERS_START_MY_LOC.set(startFromMyLocation); } public MarkersPlanRouteContext getPlanRouteContext() { @@ -107,10 +103,8 @@ public class MapMarkersHelper { public MapMarkersHelper(OsmandApplication ctx) { this.ctx = ctx; - settings = ctx.getSettings(); markersDbHelper = ctx.getMapMarkersDbHelper(); planRouteContext = new MarkersPlanRouteContext(ctx); - startFromMyLocation = settings.ROUTE_MAP_MARKERS_START_MY_LOC.get(); markersDbHelper.removeDisabledGroups(); loadMarkers(); loadGroups(); @@ -616,7 +610,7 @@ public class MapMarkersHelper { private List getMarkers() { List res = new ArrayList<>(mapMarkers); - if (settings.KEEP_PASSED_MARKERS_ON_MAP.get()) { + if (ctx.getSettings().KEEP_PASSED_MARKERS_ON_MAP.get()) { res.addAll(mapMarkersHistory); } return res; @@ -883,7 +877,7 @@ public class MapMarkersHelper { @Nullable List wptPts, @Nullable List mapObjNames) { if (points.size() > 0) { - settings.SHOW_MAP_MARKERS.set(true); + ctx.getSettings().SHOW_MAP_MARKERS.set(true); int colorIndex = -1; List addedMarkers = new ArrayList<>(); for (int i = 0; i < points.size(); i++) { diff --git a/OsmAnd/src/net/osmand/plus/OsmAndLocationProvider.java b/OsmAnd/src/net/osmand/plus/OsmAndLocationProvider.java index 0474ea19b7..2a039f3bbf 100644 --- a/OsmAnd/src/net/osmand/plus/OsmAndLocationProvider.java +++ b/OsmAnd/src/net/osmand/plus/OsmAndLocationProvider.java @@ -76,6 +76,8 @@ public class OsmAndLocationProvider implements SensorEventListener { private static final long LOCATION_TIMEOUT_TO_BE_STALE = 1000 * 60 * 2; // 2 minutes private static final long STALE_LOCATION_TIMEOUT_TO_BE_GONE = 1000 * 60 * 20; // 20 minutes + private static final long AGPS_TO_REDOWNLOAD = 16 * 60 * 60 * 1000; // 16 hours + private static final int REQUESTS_BEFORE_CHECK_LOCATION = 100; private AtomicInteger locationRequestsCounter = new AtomicInteger(); private AtomicInteger staleLocationRequestsCounter = new AtomicInteger(); @@ -114,7 +116,6 @@ public class OsmAndLocationProvider implements SensorEventListener { private int currentScreenOrientation; private OsmandApplication app; - private OsmandSettings settings; private NavigationInfo navigationInfo; private CurrentPositionHelper currentPositionHelper; @@ -128,9 +129,6 @@ public class OsmAndLocationProvider implements SensorEventListener { private List compassListeners = new ArrayList(); private Listener gpsStatusListener; private float[] mRotationM = new float[9]; - private OsmandPreference USE_MAGNETIC_FIELD_SENSOR_COMPASS; - private OsmandPreference USE_FILTER_FOR_COMPASS; - private static final long AGPS_TO_REDOWNLOAD = 16 * 60 * 60 * 1000; // 16 hours public class SimulationProvider { @@ -234,9 +232,6 @@ public class OsmAndLocationProvider implements SensorEventListener { public OsmAndLocationProvider(OsmandApplication app) { this.app = app; navigationInfo = new NavigationInfo(app); - settings = app.getSettings(); - USE_MAGNETIC_FIELD_SENSOR_COMPASS = settings.USE_MAGNETIC_FIELD_SENSOR_COMPASS; - USE_FILTER_FOR_COMPASS = settings.USE_KALMAN_FILTER_FOR_COMPASS; currentPositionHelper = new CurrentPositionHelper(app); locationSimulation = new OsmAndLocationSimulation(app, this); addLocationListener(navigationInfo); @@ -393,7 +388,7 @@ public class OsmAndLocationProvider implements SensorEventListener { } else if (!sensorRegistered && register) { Log.d(PlatformUtil.TAG, "Enable sensor"); //$NON-NLS-1$ SensorManager sensorMgr = (SensorManager) app.getSystemService(Context.SENSOR_SERVICE); - if (USE_MAGNETIC_FIELD_SENSOR_COMPASS.get()) { + if (app.getSettings().USE_MAGNETIC_FIELD_SENSOR_COMPASS.get()) { Sensor s = sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); if (s == null || !sensorMgr.registerListener(this, s, SensorManager.SENSOR_DELAY_UI)) { Log.e(PlatformUtil.TAG, "Sensor accelerometer could not be enabled"); @@ -476,7 +471,8 @@ public class OsmAndLocationProvider implements SensorEventListener { default: return; } - if (USE_MAGNETIC_FIELD_SENSOR_COMPASS.get()) { + OsmandSettings settings = app.getSettings(); + if (settings.USE_MAGNETIC_FIELD_SENSOR_COMPASS.get()) { if (mGravs != null && mGeoMags != null) { boolean success = SensorManager.getRotationMatrix(mRotationM, null, mGravs, mGeoMags); if (!success) { @@ -495,7 +491,7 @@ public class OsmAndLocationProvider implements SensorEventListener { lastValSin = (float) Math.sin(valRad); lastValCos = (float) Math.cos(valRad); // lastHeadingCalcTime = System.currentTimeMillis(); - boolean filter = USE_FILTER_FOR_COMPASS.get(); //USE_MAGNETIC_FIELD_SENSOR_COMPASS.get(); + boolean filter = settings.USE_KALMAN_FILTER_FOR_COMPASS.get(); //USE_MAGNETIC_FIELD_SENSOR_COMPASS.get(); if (filter) { filterCompassValue(); } else { @@ -806,9 +802,9 @@ public class OsmAndLocationProvider implements SensorEventListener { if (routingHelper.isFollowingMode()) { if (location == null || isPointAccurateForRouting(location)) { // Update routing position and get location for sticking mode - updatedLocation = routingHelper.setCurrentLocation(location, settings.SNAP_TO_ROAD.get()); + updatedLocation = routingHelper.setCurrentLocation(location, app.getSettings().SNAP_TO_ROAD.get()); } - } else if(routingHelper.isRoutePlanningMode() && settings.getPointToStart() == null) { + } else if(routingHelper.isRoutePlanningMode() && app.getSettings().getPointToStart() == null) { routingHelper.setCurrentLocation(location, false); } else if(getLocationSimulation().isRouteAnimating()) { routingHelper.setCurrentLocation(location, false); diff --git a/OsmAnd/src/net/osmand/plus/OsmandApplication.java b/OsmAnd/src/net/osmand/plus/OsmandApplication.java index 05a6e2d618..0fdffdf8cb 100644 --- a/OsmAnd/src/net/osmand/plus/OsmandApplication.java +++ b/OsmAnd/src/net/osmand/plus/OsmandApplication.java @@ -291,7 +291,6 @@ public class OsmandApplication extends MultiDexApplication { public void setOsmandSettings(OsmandSettings osmandSettings) { //android.os.Process.killProcess(android.os.Process.myPid()); this.osmandSettings = osmandSettings; - resourceManager.getRenderer().updateSettings(); OsmandPlugin.initPlugins(this); } diff --git a/OsmAnd/src/net/osmand/plus/OsmandSettings.java b/OsmAnd/src/net/osmand/plus/OsmandSettings.java index 2d7618cc22..17268ba03e 100644 --- a/OsmAnd/src/net/osmand/plus/OsmandSettings.java +++ b/OsmAnd/src/net/osmand/plus/OsmandSettings.java @@ -1471,8 +1471,6 @@ public class OsmandSettings { // this value string is synchronized with settings_pref.xml preference name public final OsmandPreference PREFERRED_LOCALE = new StringPreference("preferred_locale", "").makeGlobal(); - public static final String TRANSPORT_STOPS_OVER_MAP = "transportStops"; - public final OsmandPreference MAP_PREFERRED_LOCALE = new StringPreference("map_preferred_locale", "").makeGlobal().cache(); public final OsmandPreference MAP_TRANSLITERATE_NAMES = new BooleanPreference("map_transliterate_names", false).makeGlobal().cache(); @@ -2292,6 +2290,7 @@ public class OsmandSettings { public static final String LAST_KNOWN_MAP_LAT = "last_known_map_lat"; //$NON-NLS-1$ public static final String LAST_KNOWN_MAP_LON = "last_known_map_lon"; //$NON-NLS-1$ public static final String LAST_KNOWN_MAP_ZOOM = "last_known_map_zoom"; //$NON-NLS-1$ + public static final String LAST_KNOWN_MAP_ELEVATION = "last_known_map_elevation"; //$NON-NLS-1$ public static final String MAP_LABEL_TO_SHOW = "map_label_to_show"; //$NON-NLS-1$ public static final String MAP_LAT_TO_SHOW = "map_lat_to_show"; //$NON-NLS-1$ @@ -2405,6 +2404,14 @@ public class OsmandSettings { settingsAPI.edit(globalPreferences).putInt(LAST_KNOWN_MAP_ZOOM, zoom).commit(); } + public float getLastKnownMapElevation() { + return settingsAPI.getFloat(globalPreferences, LAST_KNOWN_MAP_ELEVATION, 90); + } + + public void setLastKnownMapElevation(float elevation) { + settingsAPI.edit(globalPreferences).putFloat(LAST_KNOWN_MAP_ELEVATION, elevation).commit(); + } + public final static String POINT_NAVIGATE_LAT = "point_navigate_lat"; //$NON-NLS-1$ public final static String POINT_NAVIGATE_LON = "point_navigate_lon"; //$NON-NLS-1$ public final static String POINT_NAVIGATE_ROUTE = "point_navigate_route_integer"; //$NON-NLS-1$ diff --git a/OsmAnd/src/net/osmand/plus/TargetPointsHelper.java b/OsmAnd/src/net/osmand/plus/TargetPointsHelper.java index 02a175ae97..494b77e176 100644 --- a/OsmAnd/src/net/osmand/plus/TargetPointsHelper.java +++ b/OsmAnd/src/net/osmand/plus/TargetPointsHelper.java @@ -12,6 +12,7 @@ import net.osmand.data.PointDescription; import net.osmand.plus.GeocodingLookupService.AddressLookupRequest; import net.osmand.plus.routing.RouteProvider.RouteService; import net.osmand.plus.routing.RoutingHelper; +import net.osmand.plus.OsmAndAppCustomization.OsmAndAppCustomizationListener; import net.osmand.util.Algorithms; import net.osmand.util.MapUtils; @@ -147,6 +148,16 @@ public class TargetPointsHelper { this.settings = ctx.getSettings(); this.routingHelper = ctx.getRoutingHelper(); readFromSettings(); + + OsmAndAppCustomizationListener customizationListener = new OsmAndAppCustomizationListener() { + @Override + public void onOsmAndSettingsCustomized() { + settings = TargetPointsHelper.this.ctx.getSettings(); + readFromSettings(); + updateRouteAndRefresh(true); + } + }; + ctx.getAppCustomization().addListener(customizationListener); } public void lookupAddessAll() { diff --git a/OsmAnd/src/net/osmand/plus/activities/ContributionVersionActivity.java b/OsmAnd/src/net/osmand/plus/activities/ContributionVersionActivity.java index a69782bb7a..6cbdf7641d 100644 --- a/OsmAnd/src/net/osmand/plus/activities/ContributionVersionActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/ContributionVersionActivity.java @@ -257,20 +257,23 @@ public class ContributionVersionActivity extends OsmandListActivity { OsmAndBuild build = getItem(position); TextView tagView = (TextView) row.findViewById(R.id.download_tag); tagView.setText(build.tag); - - TextView description = (TextView) row.findViewById(R.id.download_descr); - StringBuilder format = new StringBuilder(); - format.append(AndroidUtils.formatDateTime(getMyApplication(), build.date.getTime()))/*.append(" : ").append(build.size).append(" MB")*/; - description.setText(format.toString()); - int color = getResources().getColor(R.color.color_unknown); - if(currentInstalledDate != null){ - if(currentInstalledDate.before(build.date)){ - color = getResources().getColor(R.color.color_update); + + if (build.date != null) { + TextView description = (TextView) row.findViewById(R.id.download_descr); + StringBuilder format = new StringBuilder(); + format.append(AndroidUtils.formatDateTime(getMyApplication(), build.date.getTime()))/*.append(" : ").append(build.size).append(" MB")*/; + description.setText(format.toString()); + int color = getResources().getColor(R.color.color_unknown); + if (currentInstalledDate != null) { + if (currentInstalledDate.before(build.date)) { + color = getResources().getColor(R.color.color_update); + } } + description.setTextColor(color); + tagView.setTextColor(color); } - description.setTextColor(color); - tagView.setTextColor(color); + return row; } diff --git a/OsmAnd/src/net/osmand/plus/activities/DayNightHelper.java b/OsmAnd/src/net/osmand/plus/activities/DayNightHelper.java index d3ec516cf7..f9802a05a1 100644 --- a/OsmAnd/src/net/osmand/plus/activities/DayNightHelper.java +++ b/OsmAnd/src/net/osmand/plus/activities/DayNightHelper.java @@ -10,7 +10,6 @@ import net.osmand.PlatformUtil; import net.osmand.StateChangedListener; import net.osmand.plus.ApplicationMode; import net.osmand.plus.OsmandApplication; -import net.osmand.plus.OsmandSettings.CommonPreference; import net.osmand.plus.OsmandSettings.DayNightMode; import net.osmand.util.SunriseSunset; @@ -41,15 +40,13 @@ import android.location.LocationManager; * @author pavol.zibrita */ public class DayNightHelper implements SensorEventListener { + private static final Log log = PlatformUtil.getLog(DayNightHelper.class); private final OsmandApplication osmandApplication; - private CommonPreference pref; - public DayNightHelper(OsmandApplication osmandApplication) { this.osmandApplication = osmandApplication; - pref = osmandApplication.getSettings().DAYNIGHT_MODE; } private DayNightHelper listener; @@ -79,7 +76,7 @@ public class DayNightHelper implements SensorEventListener { } public boolean isNightModeForProfile(ApplicationMode mode) { - DayNightMode dayNightMode = pref.getModeValue(mode); + DayNightMode dayNightMode = osmandApplication.getSettings().DAYNIGHT_MODE.getModeValue(mode); if (dayNightMode.isDay()) { return false; } else if (dayNightMode.isNight()) { @@ -138,7 +135,7 @@ public class DayNightHelper implements SensorEventListener { public void startSensorIfNeeded(StateChangedListener sensorStateListener) { this.sensorStateListener = sensorStateListener; - DayNightMode dayNightMode = pref.get(); + DayNightMode dayNightMode = osmandApplication.getSettings().DAYNIGHT_MODE.get(); if (listener == null && dayNightMode.isSensor()) { SensorManager mSensorManager = (SensorManager) osmandApplication.getSystemService(Context.SENSOR_SERVICE); Sensor mLight = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java index 7cc31b8bba..6449751c41 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java @@ -474,7 +474,7 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven OsmAndMapLayersView ml = (OsmAndMapLayersView) findViewById(R.id.MapLayersView); ml.setVisibility(View.VISIBLE); atlasMapRendererView.setAzimuth(0); - atlasMapRendererView.setElevationAngle(90); + atlasMapRendererView.setElevationAngle(app.getSettings().getLastKnownMapElevation()); NativeCoreContext.getMapRendererContext().setMapRendererView(atlasMapRendererView); ml.setMapView(mapView); mapViewTrackingUtilities.setMapView(mapView); @@ -488,6 +488,12 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven } } + public void setMapElevation(float angle) { + if (atlasMapRendererView != null) { + atlasMapRendererView.setElevationAngle(angle); + } + } + private void createProgressBarForRouting() { final ProgressBar pb = (ProgressBar) findViewById(R.id.map_horizontal_progress); @@ -1490,6 +1496,7 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven } settings.setLastKnownMapZoom(mapView.getZoom()); + settings.setLastKnownMapElevation(mapView.getElevationAngle()); settings.MAP_ACTIVITY_ENABLED.set(false); app.getResourceManager().interruptRendering(); OsmandPlugin.onMapActivityPause(this); diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivityLayers.java b/OsmAnd/src/net/osmand/plus/activities/MapActivityLayers.java index 2964149738..c20a4cc6bd 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivityLayers.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivityLayers.java @@ -208,8 +208,6 @@ public class MapActivityLayers { public void updateLayers(OsmandMapTileView mapView) { OsmandSettings settings = getApplication().getSettings(); updateMapSource(mapView, settings.MAP_TILE_SOURCES); - boolean showStops = settings.getCustomRenderBooleanProperty(OsmandSettings.TRANSPORT_STOPS_OVER_MAP).get(); - transportStopsLayer.setShowTransportStops(showStops); OsmandPlugin.refreshLayers(mapView, activity); } diff --git a/OsmAnd/src/net/osmand/plus/dashboard/tools/DashboardSettingsDialogFragment.java b/OsmAnd/src/net/osmand/plus/dashboard/tools/DashboardSettingsDialogFragment.java index 6b052bf38d..38c918dcef 100644 --- a/OsmAnd/src/net/osmand/plus/dashboard/tools/DashboardSettingsDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/dashboard/tools/DashboardSettingsDialogFragment.java @@ -27,6 +27,7 @@ import net.osmand.plus.OsmandPlugin; import net.osmand.plus.OsmandSettings; import net.osmand.plus.OsmandSettings.CommonPreference; import net.osmand.plus.R; +import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.dashboard.DashboardOnMap; @@ -67,7 +68,7 @@ public class DashboardSettingsDialogFragment extends DialogFragment TypedValue typedValue = new TypedValue(); FragmentActivity activity = requireActivity(); OsmandApplication app = (OsmandApplication) activity.getApplication(); - boolean nightMode = app.getDaynightHelper().isNightModeForMapControls(); + boolean nightMode = isNightMode(); context = new ContextThemeWrapper(activity, !nightMode ? R.style.OsmandLightTheme : R.style.OsmandDarkTheme); Theme theme = context.getTheme(); theme.resolveAttribute(android.R.attr.textColorPrimary, typedValue, true); @@ -132,14 +133,13 @@ public class DashboardSettingsDialogFragment extends DialogFragment subtextView.setText(description); final CompoundButton compoundButton = (CompoundButton) view.findViewById(R.id.toggle_item); compoundButton.setChecked(pref.get()); - textView.setTextColor(pref.get() ? textColorPrimary : textColorSecondary); - compoundButton.setOnCheckedChangeListener( - new CompoundButton.OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton compoundButton, boolean b) { - textView.setTextColor(b ? textColorPrimary : textColorSecondary); - } - }); + view.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + compoundButton.setChecked(!compoundButton.isChecked()); + } + }); + UiUtilities.setupCompoundButton(compoundButton, isNightMode(), UiUtilities.CompoundButtonType.GLOBAL); return view; } @@ -244,6 +244,7 @@ public class DashboardSettingsDialogFragment extends DialogFragment } private class DashViewHolder { + final View view; final TextView textView; final CompoundButton compoundButton; final TextView numberOfRowsTextView; @@ -252,6 +253,7 @@ public class DashboardSettingsDialogFragment extends DialogFragment private DashFragmentAdapter dashFragmentAdapter; public DashViewHolder(DashFragmentAdapter dashFragmentAdapter, View view, Context ctx) { + this.view = view; this.dashFragmentAdapter = dashFragmentAdapter; this.numberOfRowsTextView = (TextView) view.findViewById(R.id.numberOfRowsTextView); this.textView = (TextView) view.findViewById(R.id.text); @@ -277,9 +279,16 @@ public class DashboardSettingsDialogFragment extends DialogFragment textColorSecondary); this.position = position; + view.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + compoundButton.setChecked(!compoundButton.isChecked()); + } + }); compoundButton.setChecked(dashFragmentAdapter.isChecked(position)); compoundButton.setTag(this); compoundButton.setOnCheckedChangeListener(dashFragmentAdapter.onTurnedOnOffListener); + UiUtilities.setupCompoundButton(compoundButton, isNightMode(), UiUtilities.CompoundButtonType.GLOBAL); numberOfRowsTextView.setTag(this); numberOfRowsTextView.setOnClickListener(dashFragmentAdapter.onNumberClickListener); @@ -287,4 +296,8 @@ public class DashboardSettingsDialogFragment extends DialogFragment } + + private boolean isNightMode() { + return mapActivity.getMyApplication().getDaynightHelper().isNightModeForMapControls(); + } } diff --git a/OsmAnd/src/net/osmand/plus/download/IndexItem.java b/OsmAnd/src/net/osmand/plus/download/IndexItem.java index f5f72e3fed..c5c87f88c8 100644 --- a/OsmAnd/src/net/osmand/plus/download/IndexItem.java +++ b/OsmAnd/src/net/osmand/plus/download/IndexItem.java @@ -89,7 +89,7 @@ public class IndexItem implements Comparable { } public String getSizeDescription(Context ctx) { - return ctx.getString(R.string.ltr_or_rtl_combine_via_colon, size, "MB"); + return ctx.getString(R.string.ltr_or_rtl_combine_via_space, size, "MB"); } @@ -247,4 +247,4 @@ public class IndexItem implements Comparable { } -} \ No newline at end of file +} diff --git a/OsmAnd/src/net/osmand/plus/helpers/LockHelper.java b/OsmAnd/src/net/osmand/plus/helpers/LockHelper.java index 6359b15e6e..44c58310c0 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/LockHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/LockHelper.java @@ -13,6 +13,7 @@ import android.os.PowerManager.WakeLock; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import net.osmand.plus.OsmAndAppCustomization.OsmAndAppCustomizationListener; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandSettings; import net.osmand.plus.OsmandSettings.CommonPreference; @@ -65,6 +66,16 @@ public class LockHelper implements SensorEventListener { unlockEvent(); } }; + OsmAndAppCustomizationListener customizationListener = new OsmAndAppCustomizationListener() { + @Override + public void onOsmAndSettingsCustomized() { + OsmandSettings settings = app.getSettings(); + turnScreenOnEnabled = settings.TURN_SCREEN_ON_ENABLED; + turnScreenOnTime = settings.TURN_SCREEN_ON_TIME_INT; + turnScreenOnSensor = settings.TURN_SCREEN_ON_SENSOR; + } + }; + app.getAppCustomization().addListener(customizationListener); app.getRoutingHelper().getVoiceRouter().addVoiceMessageListener(voiceMessageListener); } diff --git a/OsmAnd/src/net/osmand/plus/mapmarkers/PlanRouteFragment.java b/OsmAnd/src/net/osmand/plus/mapmarkers/PlanRouteFragment.java index 577d86f458..8ec8020ec6 100644 --- a/OsmAnd/src/net/osmand/plus/mapmarkers/PlanRouteFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapmarkers/PlanRouteFragment.java @@ -292,7 +292,7 @@ public class PlanRouteFragment extends BaseOsmAndFragment implements OsmAndLocat } Object item = adapter.getItem(pos); if (item instanceof Location) { - markersHelper.setStartFromMyLocation(!mapActivity.getMyApplication().getSettings().ROUTE_MAP_MARKERS_START_MY_LOC.get()); + markersHelper.setStartFromMyLocation(!markersHelper.isStartFromMyLocation()); } else if (item instanceof MapMarker) { MapMarker marker = (MapMarker) item; selectedCount = marker.selected ? selectedCount - 1 : selectedCount + 1; diff --git a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java index 13fdaa5270..ea909bfb72 100644 --- a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java +++ b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolFragment.java @@ -1512,6 +1512,13 @@ public class MeasurementToolFragment extends BaseOsmAndFragment { final View view = UiUtilities.getInflater(mapActivity, nightMode).inflate(R.layout.close_measurement_tool_dialog, null); final SwitchCompat showOnMapToggle = (SwitchCompat) view.findViewById(R.id.toggle_show_on_map); + view.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + showOnMapToggle.setChecked(!showOnMapToggle.isChecked()); + } + }); + builder.setView(view); builder.setPositiveButton(R.string.shared_string_ok, new DialogInterface.OnClickListener() { @Override @@ -1531,6 +1538,7 @@ public class MeasurementToolFragment extends BaseOsmAndFragment { } } }); + UiUtilities.setupCompoundButton(showOnMapToggle, nightMode, UiUtilities.CompoundButtonType.GLOBAL); } else { builder.setPositiveButton(R.string.shared_string_ok, new DialogInterface.OnClickListener() { @Override diff --git a/OsmAnd/src/net/osmand/plus/monitoring/LiveMonitoringHelper.java b/OsmAnd/src/net/osmand/plus/monitoring/LiveMonitoringHelper.java index c3f9649a28..47a016ebd6 100644 --- a/OsmAnd/src/net/osmand/plus/monitoring/LiveMonitoringHelper.java +++ b/OsmAnd/src/net/osmand/plus/monitoring/LiveMonitoringHelper.java @@ -1,6 +1,5 @@ package net.osmand.plus.monitoring; -import android.content.Context; import android.os.AsyncTask; import net.osmand.PlatformUtil; @@ -24,23 +23,25 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.ConcurrentLinkedQueue; -public class LiveMonitoringHelper { - - protected Context ctx; - private OsmandSettings settings; - private long lastTimeUpdated; - private LatLon lastPoint; +public class LiveMonitoringHelper { + private final static Log log = PlatformUtil.getLog(LiveMonitoringHelper.class); + + private OsmandApplication app; + private ConcurrentLinkedQueue queue; + + private LatLon lastPoint; + private long lastTimeUpdated; private boolean started = false; - public LiveMonitoringHelper(Context ctx){ - this.ctx = ctx; - settings = ((OsmandApplication) ctx.getApplicationContext()).getSettings(); + public LiveMonitoringHelper(OsmandApplication app) { + this.app = app; queue = new ConcurrentLinkedQueue<>(); } - - public boolean isLiveMonitoringEnabled(){ + + public boolean isLiveMonitoringEnabled() { + OsmandSettings settings = app.getSettings(); return settings.LIVE_MONITORING.get() && (settings.SAVE_TRACK_TO_GPX.get() || settings.SAVE_GLOBAL_TRACK_TO_GPX.get()); } @@ -50,6 +51,7 @@ public class LiveMonitoringHelper { if (location != null && isLiveMonitoringEnabled() && OsmAndLocationProvider.isNotSimulatedLocation(location) && OsmandPlugin.getEnabledPlugin(OsmandMonitoringPlugin.class) != null) { + OsmandSettings settings = app.getSettings(); if (locationTime - lastTimeUpdated > settings.LIVE_MONITORING_INTERVAL.get()) { record = true; } @@ -112,10 +114,11 @@ public class LiveMonitoringHelper { @Override protected Void doInBackground(ConcurrentLinkedQueue... concurrentLinkedQueues) { while (isLiveMonitoringEnabled()) { + int maxSendInterval = app.getSettings().LIVE_MONITORING_MAX_INTERVAL_TO_SEND.get(); for (ConcurrentLinkedQueue queue : concurrentLinkedQueues) { if (!queue.isEmpty()) { LiveMonitoringData data = (LiveMonitoringData) queue.peek(); - if (!(System.currentTimeMillis() - data.time > settings.LIVE_MONITORING_MAX_INTERVAL_TO_SEND.get())) { + if (!(System.currentTimeMillis() - data.time > maxSendInterval)) { sendData(data); } else { queue.poll(); @@ -128,10 +131,52 @@ public class LiveMonitoringHelper { } public void sendData(LiveMonitoringData data) { - String st = settings.LIVE_MONITORING_URL.get(); + String urlStr = getLiveUrl(data); + try { + // Parse the URL and let the URI constructor handle proper encoding of special characters such as spaces + URL url = new URL(urlStr); + HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); + URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), + url.getPath(), url.getQuery(), url.getRef()); + + urlConnection.setConnectTimeout(15000); + urlConnection.setReadTimeout(15000); + + log.info("Monitor " + uri); + + if (urlConnection.getResponseCode() / 100 != 2) { + + String msg = urlConnection.getResponseCode() + " : " + //$NON-NLS-1$//$NON-NLS-2$ + urlConnection.getResponseMessage(); + log.error("Error sending monitor request: " + msg); + } else { + queue.poll(); + InputStream is = urlConnection.getInputStream(); + StringBuilder responseBody = new StringBuilder(); + if (is != null) { + BufferedReader in = new BufferedReader(new InputStreamReader(is, "UTF-8")); //$NON-NLS-1$ + String s; + while ((s = in.readLine()) != null) { + responseBody.append(s); + responseBody.append("\n"); //$NON-NLS-1$ + } + is.close(); + } + log.info("Monitor response (" + urlConnection.getHeaderField("Content-Type") + "): " + responseBody.toString()); + } + + urlConnection.disconnect(); + + } catch (Exception e) { + log.error("Failed connect to " + urlStr + ": " + e.getMessage(), e); + } + } + + private String getLiveUrl(LiveMonitoringData data) { + String st = app.getSettings().LIVE_MONITORING_URL.get(); List prm = new ArrayList(); int maxLen = 0; - for(int i = 0; i < 7; i++) { + for (int i = 0; i < 7; i++) { boolean b = st.contains("{"+i+"}"); if(b) { maxLen = i; @@ -165,45 +210,6 @@ public class LiveMonitoringHelper { break; } } - String urlStr = MessageFormat.format(st, prm.toArray()); - try { - - // Parse the URL and let the URI constructor handle proper encoding of special characters such as spaces - URL url = new URL(urlStr); - HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); - URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), - url.getPath(), url.getQuery(), url.getRef()); - - urlConnection.setConnectTimeout(15000); - urlConnection.setReadTimeout(15000); - - log.info("Monitor " + uri); - - if (urlConnection.getResponseCode()/100 != 2) { - - String msg = urlConnection.getResponseCode() + " : " + //$NON-NLS-1$//$NON-NLS-2$ - urlConnection.getResponseMessage(); - log.error("Error sending monitor request: " + msg); - } else { - queue.poll(); - InputStream is = urlConnection.getInputStream(); - StringBuilder responseBody = new StringBuilder(); - if (is != null) { - BufferedReader in = new BufferedReader(new InputStreamReader(is, "UTF-8")); //$NON-NLS-1$ - String s; - while ((s = in.readLine()) != null) { - responseBody.append(s); - responseBody.append("\n"); //$NON-NLS-1$ - } - is.close(); - } - log.info("Monitor response (" + urlConnection.getHeaderField("Content-Type") + "): " + responseBody.toString()); - } - - urlConnection.disconnect(); - - } catch (Exception e) { - log.error("Failed connect to " + urlStr + ": " + e.getMessage(), e); - } + return MessageFormat.format(st, prm.toArray()); } } diff --git a/OsmAnd/src/net/osmand/plus/render/MapRenderRepositories.java b/OsmAnd/src/net/osmand/plus/render/MapRenderRepositories.java index f4ce51cf88..f6b5837e09 100644 --- a/OsmAnd/src/net/osmand/plus/render/MapRenderRepositories.java +++ b/OsmAnd/src/net/osmand/plus/render/MapRenderRepositories.java @@ -39,6 +39,7 @@ import net.osmand.data.QuadPointDouble; import net.osmand.data.QuadRect; import net.osmand.data.RotatedTileBox; import net.osmand.map.MapTileDownloader; +import net.osmand.plus.OsmAndAppCustomization.OsmAndAppCustomizationListener; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; import net.osmand.plus.OsmandSettings; @@ -121,6 +122,15 @@ public class MapRenderRepositories { this.renderer = new OsmandRenderer(context); handler = new Handler(Looper.getMainLooper()); prefs = context.getSettings(); + + OsmAndAppCustomizationListener customizationListener = new OsmAndAppCustomizationListener() { + @Override + public void onOsmAndSettingsCustomized() { + prefs = MapRenderRepositories.this.context.getSettings(); + clearCache(); + } + }; + context.getAppCustomization().addListener(customizationListener); } public Context getContext() { @@ -153,11 +163,6 @@ public class MapRenderRepositories { return prevBmpLocation; } - public void updateSettings() { - prefs = context.getSettings(); - clearCache(); - } - public synchronized void closeConnection(String file) { LinkedHashMap cpfiles = new LinkedHashMap(files); BinaryMapIndexReader bmir = cpfiles.remove(file); diff --git a/OsmAnd/src/net/osmand/plus/render/TextRenderer.java b/OsmAnd/src/net/osmand/plus/render/TextRenderer.java index 4df7d5db34..5743a40025 100644 --- a/OsmAnd/src/net/osmand/plus/render/TextRenderer.java +++ b/OsmAnd/src/net/osmand/plus/render/TextRenderer.java @@ -317,7 +317,7 @@ public class TextRenderer { float coef = rc.getDensityValue(rc.screenDensityRatio * rc.textScale); Bitmap ico = RenderingIcons.getIcon(context, sr, true); if (ico != null) { - float left = text.centerX - ico.getWidth() / 2 * coef;// - 0.5f; + float left = text.centerX - ico.getWidth() / 2 * coef - 0.5f; float top = text.centerY - ico.getHeight() / 2 * coef - paintText.descent() * 1.5f; if(rc.screenDensityRatio != 1f){ RectF rf = new RectF(left, top, left + ico.getWidth() * coef, diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/AddPointBottomSheetDialog.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/AddPointBottomSheetDialog.java index a411d5a128..94b4dfb0df 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/AddPointBottomSheetDialog.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/AddPointBottomSheetDialog.java @@ -319,8 +319,8 @@ public class AddPointBottomSheetDialog extends MenuBottomSheetDialogFragment { final View switchStartAndEndView = View.inflate(new ContextThemeWrapper(getContext(), themeRes), R.layout.bottom_sheet_item_simple_56dp, null); TextView title = (TextView) switchStartAndEndView.findViewById(R.id.title); - String start = getString(R.string.route_start_point).toLowerCase(); - String destination = getString(R.string.route_descr_destination).toLowerCase(); + String start = getString(R.string.route_start_point); + String destination = getString(R.string.route_descr_destination); String titleS = getString(R.string.swap_two_places, start, destination); SpannableString titleSpan = new SpannableString(titleS); int startIndex = titleS.indexOf(start); diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java index 9dad48bad4..7b8cdf4b5d 100644 --- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java +++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/RoutingOptionsHelper.java @@ -63,13 +63,11 @@ public class RoutingOptionsHelper { public static final String DRIVING_STYLE = "driving_style"; private OsmandApplication app; - private OsmandSettings settings; private Map modes = new HashMap<>(); public RoutingOptionsHelper(OsmandApplication application) { app = application; - settings = app.getSettings(); } private void addRouteMenuAppModes(ApplicationMode am, List routingParameters) { @@ -104,6 +102,7 @@ public class RoutingOptionsHelper { } public void switchMusic() { + OsmandSettings settings = app.getSettings(); boolean mt = !settings.INTERRUPT_MUSIC.get(); settings.INTERRUPT_MUSIC.set(mt); } @@ -311,6 +310,7 @@ public class RoutingOptionsHelper { } public void showLocalRoutingParameterGroupDialog(final LocalRoutingParameterGroup group, final MapActivity mapActivity, final OnClickListener listener) { + OsmandSettings settings = app.getSettings(); final ContextMenuAdapter adapter = new ContextMenuAdapter(); int i = 0; int selectedIndex = -1; @@ -364,6 +364,7 @@ public class RoutingOptionsHelper { .setPositiveButton(R.string.shared_string_ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { + OsmandSettings settings = app.getSettings(); int position = selectedPosition[0]; if (position >= 0 && position < group.getRoutingParameters().size()) { for (int i = 0; i < group.getRoutingParameters().size(); i++) { diff --git a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java index 0cfff0e39f..186bd88d11 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java +++ b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java @@ -8,6 +8,7 @@ import net.osmand.data.LatLon; import net.osmand.plus.ApplicationMode; import net.osmand.GPXUtilities.GPXFile; import net.osmand.plus.NavigationService; +import net.osmand.plus.OsmAndAppCustomization.OsmAndAppCustomizationListener; import net.osmand.plus.OsmAndFormatter; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; @@ -95,11 +96,19 @@ public class RoutingHelper { public RoutingHelper(OsmandApplication context){ this.app = context; settings = context.getSettings(); - voiceRouter = new VoiceRouter(this, settings); + voiceRouter = new VoiceRouter(this); provider = new RouteProvider(); transportRoutingHelper = context.getTransportRoutingHelper(); transportRoutingHelper.setRoutingHelper(this); setAppMode(settings.APPLICATION_MODE.get()); + + OsmAndAppCustomizationListener customizationListener = new OsmAndAppCustomizationListener() { + @Override + public void onOsmAndSettingsCustomized() { + settings = app.getSettings(); + } + }; + app.getAppCustomization().addListener(customizationListener); } public TransportRoutingHelper getTransportRoutingHelper() { @@ -825,21 +834,21 @@ public class RoutingHelper { // return false; // } - public synchronized String getCurrentName(TurnType[] next){ - NextDirectionInfo n = getNextRouteDirectionInfo(new NextDirectionInfo(), true); + public synchronized String getCurrentName(TurnType[] next, NextDirectionInfo n){ Location l = lastFixedLocation; float speed = 0; if(l != null && l.hasSpeed()) { speed = l.getSpeed(); } + if(next != null) { + next[0] = n.directionInfo.getTurnType(); + } if(n.distanceTo > 0 && n.directionInfo != null && !n.directionInfo.getTurnType().isSkipToSpeak() && voiceRouter.isDistanceLess(speed, n.distanceTo, voiceRouter.PREPARE_DISTANCE * 0.75f, 0f)) { String nm = n.directionInfo.getStreetName(); -// String rf = n.directionInfo.getRef(); + String rf = n.directionInfo.getRef(); String dn = n.directionInfo.getDestinationName(); - if(next != null) { - next[0] = n.directionInfo.getTurnType(); - } + return formatStreetName(nm, null, dn, "»"); } RouteSegmentResult rs = getCurrentSegmentResult(); diff --git a/OsmAnd/src/net/osmand/plus/routing/VoiceRouter.java b/OsmAnd/src/net/osmand/plus/routing/VoiceRouter.java index 80a2945f88..35839f0d7f 100644 --- a/OsmAnd/src/net/osmand/plus/routing/VoiceRouter.java +++ b/OsmAnd/src/net/osmand/plus/routing/VoiceRouter.java @@ -8,6 +8,8 @@ import net.osmand.Location; import net.osmand.binary.RouteDataObject; import net.osmand.data.PointDescription; import net.osmand.plus.ApplicationMode; +import net.osmand.plus.OsmAndAppCustomization.OsmAndAppCustomizationListener; +import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandSettings; import net.osmand.plus.helpers.WaypointHelper.LocationPointWrapper; import net.osmand.plus.routing.AlarmInfo.AlarmInfoType; @@ -46,9 +48,11 @@ public class VoiceRouter { public static final String FROM_STREET_NAME = "fromStreetName"; public static final String FROM_DEST = "fromDest"; - protected final RoutingHelper router; protected static CommandPlayer player; - protected final OsmandSettings settings; + + protected final OsmandApplication app; + protected final RoutingHelper router; + protected OsmandSettings settings; private static int currentStatus = STATUS_UNKNOWN; private static boolean playedAndArriveAtTarget = false; @@ -84,9 +88,18 @@ public class VoiceRouter { private List> voiceMessageListeners = new ArrayList<>(); - VoiceRouter(RoutingHelper router, final OsmandSettings settings) { + VoiceRouter(RoutingHelper router) { this.router = router; - this.settings = settings; + this.app = router.getApplication(); + this.settings = app.getSettings(); + + OsmAndAppCustomizationListener customizationListener = new OsmAndAppCustomizationListener() { + @Override + public void onOsmAndSettingsCustomized() { + settings = app.getSettings(); + } + }; + app.getAppCustomization().addListener(customizationListener); } public void setPlayer(CommandPlayer player) { @@ -695,10 +708,9 @@ public class VoiceRouter { String tParam = getTurnType(next.getTurnType()); boolean isPlay = true; ExitInfo exitInfo = next.getExitInfo(); - String lang = player.getLanguage(); if (tParam != null) { if (exitInfo != null) { - p.takeExit(tParam, dist, getSpeakableExitName(next, exitInfo, true)); + p.takeExit(tParam, dist, Integer.parseInt(exitInfo.getRef()), getSpeakableExitName(next, exitInfo, true)); } else { p.turn(tParam, dist, getSpeakableStreetName(currentSegment, next, true)); } @@ -769,10 +781,9 @@ public class VoiceRouter { String tParam = getTurnType(next.getTurnType()); ExitInfo exitInfo = next.getExitInfo(); boolean isplay = true; - String lang = player.getLanguage(); if (tParam != null) { if (exitInfo != null) { - p.takeExit(tParam, getSpeakableExitName(next, exitInfo, !suppressDest)); + p.takeExit(tParam, Integer.parseInt(exitInfo.getRef()), getSpeakableExitName(next, exitInfo, !suppressDest)); } else { p.turn(tParam, getSpeakableStreetName(currentSegment, next, !suppressDest)); } diff --git a/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java b/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java index 166d3f04ee..1e264e6d5d 100644 --- a/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java +++ b/OsmAnd/src/net/osmand/plus/views/MultiTouchSupport.java @@ -5,6 +5,8 @@ import android.graphics.PointF; import android.view.MotionEvent; import net.osmand.PlatformUtil; +import net.osmand.plus.OsmandApplication; +import net.osmand.plus.views.corenative.NativeCoreContext; import net.osmand.util.MapUtils; import org.apache.commons.logging.Log; @@ -36,6 +38,10 @@ public class MultiTouchSupport { public void onActionPointerUp(); public void onActionCancel(); + + public void onChangingViewAngle(float angle); + + public void onChangeViewAngleStarted(); } private boolean multiTouchAPISupported = false; @@ -62,6 +68,14 @@ public class MultiTouchSupport { return inZoomMode; } + public boolean isInTiltMode() { + return inTiltMode; + } + + private boolean isTiltSupported() { + return ((OsmandApplication) ctx.getApplicationContext()).getSettings().USE_OPENGL_RENDER.get() && NativeCoreContext.isInit(); + } + private void initMethods(){ try { getPointerCount = MotionEvent.class.getMethod("getPointerCount"); //$NON-NLS-1$ @@ -76,9 +90,15 @@ public class MultiTouchSupport { } private boolean inZoomMode = false; + private boolean inTiltMode = false; private double zoomStartedDistance = 100; private double zoomRelative = 1; private PointF centerPoint = new PointF(); + private PointF firstFingerStart = new PointF(); + private PointF secondFingerStart = new PointF(); + private static final int TILT_X_THRESHOLD_PX = 40; + private static final int TILT_Y_THRESHOLD_PX = 40; + private static final int TILT_DY_THRESHOLD_PX = 40; public boolean onTouchEvent(MotionEvent event){ if(!isMultiTouchSupported()){ @@ -91,10 +111,13 @@ public class MultiTouchSupport { } Integer pointCount = (Integer) getPointerCount.invoke(event); if(pointCount < 2){ - if(inZoomMode){ + if (inZoomMode) { listener.onZoomOrRotationEnded(zoomRelative, angleRelative); inZoomMode = false; return true; + } else if (inTiltMode) { + inTiltMode = false; + return true; } return false; } @@ -114,27 +137,58 @@ public class MultiTouchSupport { } if (actionCode == ACTION_POINTER_DOWN) { centerPoint = new PointF((x1 + x2) / 2, (y1 + y2) / 2); + firstFingerStart = new PointF(x1, y1); + secondFingerStart = new PointF(x2, y2); listener.onGestureInit(x1, y1, x2, y2); listener.onZoomStarted(centerPoint); zoomStartedDistance = distance; angleStarted = angle; - inZoomMode = true; return true; } else if(actionCode == ACTION_POINTER_UP){ - if(inZoomMode){ + if (inZoomMode) { listener.onZoomOrRotationEnded(zoomRelative, angleRelative); inZoomMode = false; + } else if (inTiltMode) { + inTiltMode = false; } return true; - } else if(inZoomMode && actionCode == MotionEvent.ACTION_MOVE){ - // Keep zoom center fixed or flexible - centerPoint = new PointF((x1 + x2) / 2, (y1 + y2) / 2); + } else if (actionCode == MotionEvent.ACTION_MOVE) { + if (inZoomMode) { - if(angleDefined) { - angleRelative = MapUtils.unifyRotationTo360(angle - angleStarted); + // Keep zoom center fixed or flexible + centerPoint = new PointF((x1 + x2) / 2, (y1 + y2) / 2); + + if (angleDefined) { + angleRelative = MapUtils.unifyRotationTo360(angle - angleStarted); + } + zoomRelative = distance / zoomStartedDistance; + listener.onZoomingOrRotating(zoomRelative, angleRelative); + } else if (inTiltMode) { + float dy2 = secondFingerStart.y - y2; + float viewAngle = dy2 / 8f; + listener.onChangingViewAngle(viewAngle); + } else if (isTiltSupported()) { + float dx1 = Math.abs(firstFingerStart.x - x1); + float dx2 = Math.abs(secondFingerStart.x - x2); + float dy1 = Math.abs(firstFingerStart.y - y1); + float dy2 = Math.abs(secondFingerStart.y - y2); + float startDy = Math.abs(secondFingerStart.y - firstFingerStart.y); + if (dx1 < TILT_X_THRESHOLD_PX && dx2 < TILT_X_THRESHOLD_PX + && dy1 > TILT_Y_THRESHOLD_PX && dy2 > TILT_Y_THRESHOLD_PX + && startDy < TILT_Y_THRESHOLD_PX * 6 + && Math.abs(dy2 - dy1) < TILT_DY_THRESHOLD_PX) { + listener.onChangeViewAngleStarted(); + inTiltMode = true; + } else if (dx1 > TILT_X_THRESHOLD_PX || dx2 > TILT_X_THRESHOLD_PX + || Math.abs(dy2 - dy1) > TILT_DY_THRESHOLD_PX + || Math.abs(dy1 - dy2) > TILT_DY_THRESHOLD_PX) { + angleRelative = 0; + zoomRelative = 0; + inZoomMode = true; + } + } else { + inZoomMode = true; } - zoomRelative = distance / zoomStartedDistance; - listener.onZoomingOrRotating(zoomRelative, angleRelative); return true; } } catch (Exception e) { diff --git a/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java b/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java index eafefe7710..1f4f32c4c2 100644 --- a/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java +++ b/OsmAnd/src/net/osmand/plus/views/OsmandMapTileView.java @@ -186,6 +186,7 @@ public class OsmandMapTileView implements IMapDownloaderCallback { private long multiTouchStartTime; private long multiTouchEndTime; private boolean wasZoomInMultiTouch; + private float elevationAngle; public OsmandMapTileView(MapActivity activity, int w, int h) { this.activity = activity; @@ -257,6 +258,7 @@ public class OsmandMapTileView implements IMapDownloaderCallback { } } }; + elevationAngle = settings.getLastKnownMapElevation(); } public void setView(View view) { @@ -439,6 +441,10 @@ public class OsmandMapTileView implements IMapDownloaderCallback { return currentViewport.getZoom(); } + public float getElevationAngle() { + return elevationAngle; + } + public double getZoomFractionalPart() { return currentViewport.getZoomFloatPart(); } @@ -1127,6 +1133,7 @@ public class OsmandMapTileView implements IMapDownloaderCallback { private LatLon initialCenterLatLon; private boolean startRotating = false; private static final float ANGLE_THRESHOLD = 30; + private float initialElevation; @Override public void onZoomOrRotationEnded(double relativeToStart, float angleRelative) { @@ -1199,6 +1206,16 @@ public class OsmandMapTileView implements IMapDownloaderCallback { multiTouch = false; } + @Override + public void onChangingViewAngle(float angle) { + setElevationAngle(initialElevation - angle); + } + + @Override + public void onChangeViewAngleStarted() { + initialElevation = elevationAngle; + } + @Override public void onZoomStarted(PointF centerPoint) { initialMultiTouchCenterPoint = centerPoint; @@ -1287,6 +1304,16 @@ public class OsmandMapTileView implements IMapDownloaderCallback { } + private void setElevationAngle(float angle) { + if (angle < 35f) { + angle = 35f; + } else if (angle > 90f) { + angle = 90f; + } + this.elevationAngle = angle; + ((MapActivity) activity).setMapElevation(angle); + } + private boolean isZoomingAllowed(int baseZoom, float dz) { if (baseZoom > getMaxZoom()) { return false; @@ -1346,7 +1373,9 @@ public class OsmandMapTileView implements IMapDownloaderCallback { @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { - dragToAnimate(e2.getX() + distanceX, e2.getY() + distanceY, e2.getX(), e2.getY(), true); + if (!multiTouchSupport.isInTiltMode()) { + dragToAnimate(e2.getX() + distanceX, e2.getY() + distanceY, e2.getX(), e2.getY(), true); + } return true; } diff --git a/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java b/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java index 9246a49fab..ee19fce4f0 100644 --- a/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java @@ -22,6 +22,7 @@ import net.osmand.data.RotatedTileBox; import net.osmand.data.TransportStop; import net.osmand.osm.edit.Node; import net.osmand.osm.edit.Way; +import net.osmand.plus.OsmandSettings; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.render.RenderingIcons; @@ -36,6 +37,9 @@ import java.util.List; import java.util.TreeSet; public class TransportStopsLayer extends OsmandMapLayer implements ContextMenuLayer.IContextMenuProvider { + + public static final String TRANSPORT_STOPS_OVER_MAP = "transportStops"; + private static final int startZoom = 12; private static final int startZoomRoute = 10; @@ -53,13 +57,16 @@ public class TransportStopsLayer extends OsmandMapLayer implements ContextMenuLa private MapLayerData> data; private TransportStopRoute stopRoute = null; - private boolean showTransportStops; + private OsmandSettings.CommonPreference showTransportStops; + private Path path; private float backgroundIconHalfWidth; private float backgroundIconHalfHeight; public TransportStopsLayer(MapActivity mapActivity) { this.mapActivity = mapActivity; + OsmandSettings settings = mapActivity.getMyApplication().getSettings(); + showTransportStops = settings.getCustomRenderBooleanProperty(TRANSPORT_STOPS_OVER_MAP).cache(); } @SuppressWarnings("deprecation") @@ -168,14 +175,6 @@ public class TransportStopsLayer extends OsmandMapLayer implements ContextMenuLa this.stopRoute = route; } - public boolean isShowTransportStops() { - return showTransportStops; - } - - public void setShowTransportStops(boolean showTransportStops) { - this.showTransportStops = showTransportStops; - } - private int getRadiusPoi(RotatedTileBox tb){ final double zoom = tb.getZoom(); int r; @@ -227,7 +226,7 @@ public class TransportStopsLayer extends OsmandMapLayer implements ContextMenuLa } } - if (showTransportStops && tb.getZoom() >= startZoom && objects == null) { + if (showTransportStops.get() && tb.getZoom() >= startZoom && objects == null) { data.queryNewData(tb); objects = data.getResults(); } diff --git a/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java b/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java index 2752dc3dc3..7f9bac6381 100644 --- a/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java +++ b/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java @@ -913,13 +913,13 @@ public class MapInfoWidgetsFactory { public static class TopTextView { private final RoutingHelper routingHelper; private final MapActivity map; - private View topBar; - private TextView addressText; - private TextView addressTextShadow; - private TextView exitRefText; - private ImageView shieldIcon; - private ImageView turnIcon; - private OsmAndLocationProvider locationProvider; + private final View topBar; + private final TextView addressText; + private final TextView addressTextShadow; + private final TextView exitRefText; + private final ImageView shieldIcon; + private final ImageView turnIcon; + private final OsmAndLocationProvider locationProvider; private WaypointHelper waypointHelper; private OsmandSettings settings; private View waypointInfoBar; @@ -927,9 +927,12 @@ public class MapInfoWidgetsFactory { private TurnDrawable turnDrawable; private boolean showMarker; private int shadowRad; + RouteCalculationResult.NextDirectionInfo calc1; + private static final Log LOG = PlatformUtil.getLog(TopTextView.class); public TopTextView(OsmandApplication app, MapActivity map) { + turnDrawable = new NextTurnInfoWidget.TurnDrawable(map, true); topBar = map.findViewById(R.id.map_top_bar); addressText = (TextView) map.findViewById(R.id.map_address_text); addressTextShadow = (TextView) map.findViewById(R.id.map_address_text_shadow); @@ -943,7 +946,7 @@ public class MapInfoWidgetsFactory { settings = app.getSettings(); waypointHelper = app.getWaypointHelper(); updateVisibility(false); - turnDrawable = new NextTurnInfoWidget.TurnDrawable(map, true); + calc1 = new RouteCalculationResult.NextDirectionInfo(); } public boolean updateVisibility(boolean visible) { @@ -979,13 +982,15 @@ public class MapInfoWidgetsFactory { boolean showMarker = this.showMarker; boolean showExitInfo = false; boolean showShield = false; + boolean imminentTurn = false; ExitInfo exitInfo = null; RouteDataObject object = null; if (routingHelper != null && routingHelper.isRouteCalculated() && !routingHelper.isDeviatedFromRoute()) { if (routingHelper.isFollowingMode()) { if (settings.SHOW_STREET_NAME.get()) { - text = routingHelper.getCurrentName(type); + RouteCalculationResult.NextDirectionInfo nextDirInfo = routingHelper.getNextRouteDirectionInfo(calc1, true); + text = routingHelper.getCurrentName(type, nextDirInfo); if (text == null) { text = ""; } else { @@ -995,10 +1000,15 @@ public class MapInfoWidgetsFactory { turnDrawable.setColor(R.color.nav_arrow); } } - RouteCalculationResult.NextDirectionInfo nextDirInfo = routingHelper.getNextRouteDirectionInfo( - new RouteCalculationResult.NextDirectionInfo(), true); + RouteDirectionInfo directionInfo = nextDirInfo.directionInfo; + if (nextDirInfo.imminent >= 0) { + imminentTurn = true; + } else { + imminentTurn = false; + } + if (directionInfo != null && directionInfo.getExitInfo() != null) { exitInfo = directionInfo.getExitInfo(); showExitInfo = true; @@ -1072,19 +1082,15 @@ public class MapInfoWidgetsFactory { AndroidUiHelper.updateVisibility(addressTextShadow, shadowRad > 0); boolean update = turnDrawable.setTurnType(type[0]) || showMarker != this.showMarker; this.showMarker = showMarker; - if (showShield) { - if (setRoadShield(shieldIcon, object)) { - AndroidUiHelper.updateVisibility(shieldIcon, true); - } else { - AndroidUiHelper.updateVisibility(shieldIcon, false); - } + if (showShield && setRoadShield(shieldIcon, object)) { + AndroidUiHelper.updateVisibility(shieldIcon, true); } else { AndroidUiHelper.updateVisibility(shieldIcon, false); } if (showExitInfo) { String exitRef = exitInfo.getRef(); - if (!Algorithms.isEmpty(exitRef)) { + if (!Algorithms.isEmpty(exitRef) && imminentTurn) { exitRefText.setText(exitRef); AndroidUiHelper.updateVisibility(exitRefText, true); } else { @@ -1095,6 +1101,7 @@ public class MapInfoWidgetsFactory { } if (update) { if (type[0] != null) { + turnIcon.invalidateDrawable(turnDrawable); turnIcon.setImageDrawable(turnDrawable); AndroidUiHelper.updateVisibility(turnIcon, true); } else if (showMarker) { diff --git a/OsmAnd/src/net/osmand/plus/voice/CommandBuilder.java b/OsmAnd/src/net/osmand/plus/voice/CommandBuilder.java index 65a28b70e6..481b263d9a 100644 --- a/OsmAnd/src/net/osmand/plus/voice/CommandBuilder.java +++ b/OsmAnd/src/net/osmand/plus/voice/CommandBuilder.java @@ -179,12 +179,12 @@ public class CommandBuilder { return alt(prepareStruct(C_TURN, param, dist, streetName), prepareStruct(C_TURN, param, dist)); } - public CommandBuilder takeExit(String turnType, StreetName streetName) { - return alt(prepareStruct(C_TAKE_EXIT, turnType, streetName), prepareStruct(C_TAKE_EXIT, turnType)); + public CommandBuilder takeExit(String turnType, int exit, StreetName streetName) { + return alt(prepareStruct(C_TAKE_EXIT, turnType, exit, streetName), prepareStruct(C_TAKE_EXIT, turnType, exit)); } - public CommandBuilder takeExit(String turnType, double dist, StreetName streetName) { - return alt(prepareStruct(C_TAKE_EXIT, turnType, dist, streetName), prepareStruct(C_TAKE_EXIT, turnType, dist)); + public CommandBuilder takeExit(String turnType, double dist, int exit, StreetName streetName) { + return alt(prepareStruct(C_TAKE_EXIT, turnType, dist, exit, streetName), prepareStruct(C_TAKE_EXIT, turnType, dist, exit)); } /** diff --git a/OsmAnd/src/net/osmand/plus/voice/JSCommandBuilder.java b/OsmAnd/src/net/osmand/plus/voice/JSCommandBuilder.java index dfdfcea29a..057ba29a32 100644 --- a/OsmAnd/src/net/osmand/plus/voice/JSCommandBuilder.java +++ b/OsmAnd/src/net/osmand/plus/voice/JSCommandBuilder.java @@ -65,6 +65,10 @@ public class JSCommandBuilder extends CommandBuilder { return this; } + private boolean isJSCommandExists(String name) { + return jsScope.get(name) instanceof Function; + } + public JSCommandBuilder goAhead(){ return goAhead(-1, new StreetName()); } @@ -115,12 +119,14 @@ public class JSCommandBuilder extends CommandBuilder { return addCommand(C_TURN, param, dist, convertStreetName(streetName)); } - public JSCommandBuilder takeExit(String turnType, StreetName streetName) { - return takeExit(turnType, -1, streetName); + public JSCommandBuilder takeExit(String turnType, int exit, StreetName streetName) { + return takeExit(turnType, -1, exit, streetName); } - public JSCommandBuilder takeExit(String turnType, double dist, StreetName streetName) { - return addCommand(C_TAKE_EXIT, turnType, dist, convertStreetName(streetName)); + public JSCommandBuilder takeExit(String turnType, double dist, int exit, StreetName streetName) { + return isJSCommandExists(C_TAKE_EXIT) ? + addCommand(C_TAKE_EXIT, turnType, dist, exit, convertStreetName(streetName)) : + addCommand(C_TURN, turnType, dist, convertStreetName(streetName)); } /**