Merge branch 'master' of github.com:osmandapp/Osmand

This commit is contained in:
Victor Shcherb 2015-11-09 10:28:01 +01:00
commit 484b77f51a
42 changed files with 521 additions and 232 deletions

View file

@ -33,75 +33,108 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:layout_marginBottom="16dp"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/context_menu_icon_layout"
android:layout_width="42dp"
android:layout_height="match_parent"
android:orientation="horizontal">
android:layout_height="match_parent">
<ImageView
android:id="@+id/context_menu_icon_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_width="@dimen/standard_icon_size"
android:layout_height="@dimen/standard_icon_size"
android:layout_marginLeft="16dp"
android:layout_marginStart="12dp"
android:layout_marginTop="18dp"
android:scaleType="center"
android:src="@drawable/ic_action_building_number"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginTop="15dp"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/context_menu_line1"
android:layout_width="wrap_content"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:text="@string/search_address_building"
android:textColor="?android:textColorPrimary"
android:textSize="@dimen/default_list_text_size_large"/>
android:orientation="horizontal">
<TextView
android:id="@+id/context_menu_line2"
android:layout_width="wrap_content"
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:layout_weight="1">
<TextView
android:id="@+id/context_menu_line1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/search_address_building"
android:textColor="?android:textColorPrimary"
android:textSize="@dimen/default_list_text_size_large"/>
</LinearLayout>
<LinearLayout
android:id="@+id/context_menu_close_btn_layout"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:minWidth="66dp"
android:orientation="horizontal">
<Button
android:id="@+id/title_button_top_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?android:selectableItemBackground"
android:gravity="center"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="@string/shared_string_others"
android:textColor="?attr/contextMenuButtonColor"
android:textSize="@dimen/default_desc_text_size"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:layout_marginTop="4dp"
android:text="@string/other_location"
android:textColor="?android:textColorSecondary"
android:textSize="@dimen/default_desc_text_size"/>
android:layout_marginTop="4dp">
</LinearLayout>
<ImageView
android:id="@+id/direction"
android:layout_width="@dimen/dashFavDirectionSize"
android:layout_height="@dimen/dashFavDirectionSize"
android:layout_gravity="center_vertical" />
<LinearLayout
android:id="@+id/context_menu_close_btn_layout"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:minWidth="66dp"
android:orientation="horizontal">
<TextView
android:id="@+id/distance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginRight="4dp"
android:layout_gravity="center_vertical"
android:textColor="?android:textColorSecondary"
android:textSize="@dimen/default_desc_text_size"
tools:text="100500 km" />
<Button
android:id="@+id/title_button_top_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?android:selectableItemBackground"
android:gravity="center"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="@string/shared_string_others"
android:textColor="?attr/contextMenuButtonColor"
android:textSize="@dimen/default_desc_text_size"/>
<TextView
android:id="@+id/context_menu_line2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="@string/other_location"
android:textColor="?android:textColorSecondary"
android:textSize="@dimen/default_desc_text_size"/>
</LinearLayout>
</LinearLayout>
@ -116,7 +149,9 @@
android:layout_marginTop="-16dp"
android:paddingBottom="4dp"
android:clickable="true"
android:orientation="horizontal">
android:orientation="horizontal"
tools:visibility="visible"
android:visibility="gone">
<Button
android:id="@+id/title_button"
@ -133,7 +168,7 @@
<TextView
android:id="@+id/title_button_right_text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:clickable="true"
android:layout_marginLeft="-4dp"

View file

@ -15,12 +15,11 @@
<ImageView
android:id="@+id/context_menu_icon_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_width="@dimen/standard_icon_size"
android:layout_height="@dimen/standard_icon_size"
android:layout_marginLeft="16dp"
android:layout_marginStart="12dp"
android:layout_marginTop="18dp"
android:scaleType="center"
android:src="@drawable/ic_action_building_number"/>
</LinearLayout>

View file

@ -61,6 +61,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_gravity="center_vertical"
android:textColor="?android:textColorSecondary"
android:textSize="@dimen/default_sub_text_size"
tools:text="100500 km" />

View file

@ -1606,4 +1606,38 @@
<string name="poi_payment_dkv_no">No s\'accepta DKV</string>
<string name="poi_payment_uta_yes">S\'accepten targes UTA</string>
<string name="poi_payment_uta_no">No s\'accepten targes UTA</string>
<string name="poi_tourism_yes">Element turístic</string>
<string name="poi_water_point">Proveïment d\'aigua</string>
<string name="poi_information_wildlife">Indicador informatiu: vida en llibertat</string>
<string name="poi_information_sign">Signe</string>
<string name="poi_piste_grooming_classic">Pista condicionada: clàssica</string>
<string name="poi_piste_grooming_classic_skating">Pista condicionada: clàssica i patinatge</string>
<string name="poi_piste_grooming_backcountry">Pista condicionada: fora de pistes</string>
<string name="poi_piste_grooming_scooter">Pista condicionada: clàssica però estreta</string>
<string name="poi_piste_grooming_skating">Pista condicionada: patinatge</string>
<string name="poi_piste_grooming_no">Pista condicionada: no</string>
<string name="poi_piste_grooming_mogul">Pista condicionada: esquí acrobàtic</string>
<string name="poi_payment_girocard_yes">S\'accepten targes Girocard</string>
<string name="poi_payment_girocard_no">No s\'accepten targes Girocard</string>
<string name="poi_payment_discover_card_yes">S\'accepten targes Discover</string>
<string name="poi_payment_discover_card_no">No s\'accepten targes Discover</string>
<string name="poi_payment_visa_electron_yes">S\'accepten targes Visa Electron</string>
<string name="poi_payment_visa_electron_no">No s\'accepten targes Visa Electron</string>
<string name="poi_payment_litecoin_yes">S\'accepta Litecoin</string>
<string name="poi_payment_litecoin_no">No s\'accepta Litecoin</string>
<string name="poi_payment_cheque_yes">S\'accepten xecs</string>
<string name="poi_payment_cheque_no">No s\'accepten xecs</string>
<string name="poi_payment_pikepass_yes">S\'accepta PIKEPASS</string>
<string name="poi_payment_pikepass_no">No s\'accepta PIKEPASS</string>
<string name="poi_payment_visa_debit_yes">S\'accepten targes Visa Debit</string>
<string name="poi_payment_visa_debit_no">No s\'accepten targes Visa Debit</string>
<string name="poi_payment_others_yes">S\'accepten altres sistemes de pagament</string>
<string name="poi_payment_others_no">No s\'accepten altres sistemes de pagament</string>
<string name="poi_payment_routex_yes">S\'accepten targes de carburant Routex</string>
<string name="poi_payment_routex_no">No s\'accepten targes de carburant Routex</string>
<string name="poi_payment_bancomat_yes">S\'accepten targes Bancomat</string>
<string name="poi_payment_bancomat_no">No s\'accepten targes Bancomat</string>
<string name="poi_payment_prepaid_ticket_yes">S\'accepten tiquets de prepagament</string>
</resources>

View file

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="show_warnings_title">Mostra els missatges d\'avís…</string>
@ -1803,7 +1803,7 @@ Per retornar a l\'estil habitual dels mapes d\'OsmAnd, només cal desactivar aqu
<string name="navigation_item_description">confifuració de la navegació</string>
<string name="planning_trip_item">Planeja un viatge</string>
<string name="faq_item">PMF</string>
<string name="faq_item_description">Com utilitzar connectors</string>
<string name="faq_item_description">Preguntes més freqüents</string>
<string name="map_viewing_item">Visualització del mapa</string>
<string name="search_on_the_map_item">Cerca al mapa</string>
<string name="instalation_troubleshooting_item">Instal·lació i solució de problemes</string>
@ -1815,4 +1815,6 @@ Per retornar a l\'estil habitual dels mapes d\'OsmAnd, només cal desactivar aqu
<string name="shared_string_update">Actualitza</string>
<string name="rendering_attr_hideProposed_name">Amaga proposta d\'objectes</string>
</resources>
<string name="read_more">Llegiu-ne més</string>
<string name="whats_new">Què hi ha de nou a</string>
</resources>

View file

@ -1313,7 +1313,7 @@
<string name="poi_denomination_tibetan">Tibetský</string>
<string name="poi_denomination_salvation_army">Armáda spásy</string>
<string name="poi_denomination_quaker">Kvakerský</string>
<string name="poi_denomination_bulgarian_orthodox">Buhlharský pravoslavný</string>
<string name="poi_denomination_bulgarian_orthodox">Bulharský pravoslavný</string>
<string name="poi_denomination_adventist">Adventistický</string>
<string name="poi_denomination_nazarene">Nazaretánský</string>
<string name="poi_denomination_serbian_orthodox">Srbský pravoslavný</string>

View file

@ -1737,8 +1737,8 @@
<string name="si_kmh">Kilometry za hodinu</string>
<string name="si_mph">Míle za hodinu</string>
<string name="si_m_s">Metrů za sekundu</string>
<string name="si_min_km">Minut za kilometr</string>
<string name="si_min_m">Minut za míli</string>
<string name="si_min_km">Minut na kilometr</string>
<string name="si_min_m">Minut na míli</string>
<string name="si_nm_h">Námořní míle za hodinu (uzly)</string>
<string name="nm_h">nm/h</string>
<string name="min_mile">min/m</string>
@ -1759,7 +1759,7 @@
<string name="regions">Regiony</string>
<string name="region_maps">Mapy regionů</string>
<string name="world_maps">Světové mapy</string>
<string name="favorite_category_dublicate_message">Zadané jméno kategorie již existuje. Prosím určete jiný název.</string>
<string name="favorite_category_dublicate_message">Zadaný název kategorie již existuje. Zvolte prosím jiný název.</string>
<string name="favorite_category_name">Název kategorie</string>
<string name="favorite_category_add_new_title">Přidat novou kategorii</string>
<string name="activate_seamarks_plugin">Prosím aktivujte modul Námořní značky</string>
@ -1778,9 +1778,9 @@
<string name="shared_string_send">Odeslat</string>
<string name="simulate_initial_startup_descr">Nastavit příznak označující první start aplikace, ostatní nastavení ponechat nezměněné</string>
<string name="confirm_download_roadmaps">Opravdu chcete stáhnout silniční mapu, když už máte podrobnou mapu?</string>
<string name="application_dir_description">Zvolte kam chcete uložit mapové soubory.</string>
<string name="application_dir_description">Zvolte, kam chcete uložit mapové soubory.</string>
<string name="show_on_start_description">\'Vypnuto\' spouští přímo mapovou obrazovku</string>
<string name="world_map_download_descr">Základní mapa světa (pokrývající celý svět při malých detailech) chybí nebo je zastaralá. Prosím zvažte její stažení pro kompletní prostředí.</string>
<string name="world_map_download_descr">Základní mapa světa (pokrývající celý svět při malých detailech) chybí nebo je zastaralá. Prosím zvažte její stažení, aby vaše prostředí bylo kompletní.</string>
<string name="shared_string_qr_code">QR kód</string>
<string name="map_downloaded">Mapa stažena</string>
<string name="map_downloaded_descr">Mapa %1$s byla stažena. Pro její použití se vraťte zpět na mapu.</string>
@ -1791,7 +1791,7 @@
<string name="new_version">Nová verze</string>
<string name="begin_with_osmand_menu_group">První kroky s OsmAnd</string>
<string name="features_menu_group">Vlastnosti</string>
<string name="help_us_to_improve_menu_group">Pomoz nám vylepšit OsmAnd</string>
<string name="help_us_to_improve_menu_group">Pomozte nám vylepšit OsmAnd</string>
<string name="other_menu_group">Další</string>
<string name="plugins_menu_group">Moduly</string>
<string name="first_usage_item">První použití</string>

View file

@ -2429,4 +2429,7 @@
<string name="poi_boat_storage">Bådopbevaring</string>
<string name="poi_conveying_yes">Flytning: ja</string>
</resources>

View file

@ -1313,7 +1313,7 @@
<string name="choose_audio_stream_descr">Elige el canal para reproducir indicaciones por voz (dependiente del sistema)</string>
<string name="voice_stream_voice_call">Audio de llamada de voz</string>
<string name="voice_stream_notification">Notificación auditiva</string>
<string name="voice_stream_music">Audio de Media/música</string>
<string name="voice_stream_music">Audio de multimedia</string>
<string name="warning_tile_layer_not_downloadable">La aplicación no puede descargar la capa %1$s del mapa, intente reinstalando.</string>
<string name="overlay_transparency_descr">Modifica la transparencia de la capa superpuesta</string>
<string name="overlay_transparency">Transparencia de superposición</string>
@ -1928,7 +1928,7 @@
<string name="first_usage_item_description">Cómo descargar mapas, configurar ajustes básicos</string>
<string name="navigation_item_description">Configuración de navegación</string>
<string name="faq_item">Preguntas Frecuentes</string>
<string name="faq_item_description">Cómo usar los complementos</string>
<string name="faq_item_description">Preguntas Frecuentes</string>
<string name="map_viewing_item">Vista del mapa</string>
<string name="search_on_the_map_item">Busqueda en el mapa</string>
<string name="planning_trip_item">Planificación de viaje</string>

View file

@ -179,7 +179,7 @@
<string name="choose_audio_stream_descr">Elige el canal para reproducir los avisos de voz (dependiente del sistema)</string>
<string name="voice_stream_voice_call">Audio de llamada de voz</string>
<string name="voice_stream_notification">Notificación auditiva</string>
<string name="voice_stream_music">Audio de Media/música</string>
<string name="voice_stream_music">Audio de multimedia</string>
<string name="warning_tile_layer_not_downloadable">La aplicación no puede descargar la capa %1$s del mapa, intente reinstalar.</string>
<string name="overlay_transparency_descr">Modifica la transparencia de la capa superpuesta</string>
<string name="overlay_transparency">Transparencia de superpuesto</string>
@ -1764,7 +1764,7 @@
<string name="gps_network_not_enabled">El servicio de ubicación no está activado. ¿Quiere activarlo?</string>
<string name="disable_recording_once_app_killed">Evita el registro autónomo</string>
<string name="disable_recording_once_app_killed_descrp">Se pausará el registro GPX cuando se cierre la aplicación (a través de aplicaciones recientes). (La indicación de fondo de OsmAnd desaparecerá de la barra de notificaciones de Android.)</string>
<string name="light_theme">Luminoso</string>
<string name="light_theme">Claro</string>
<string name="dark_theme">Oscuro</string>
<string name="lang_pms">Piamontés</string>
<string name="lang_bn">Bengalí</string>
@ -1940,7 +1940,7 @@
<string name="first_usage_item_description">Cómo descargar mapas, configurar ajustes básicos</string>
<string name="navigation_item_description">Configuración de navegación</string>
<string name="faq_item">Preguntas Frecuentes</string>
<string name="faq_item_description">Cómo usar los complementos</string>
<string name="faq_item_description">Preguntas Frecuentes</string>
<string name="map_viewing_item">Vista del mapa</string>
<string name="search_on_the_map_item">Búsqueda en el mapa</string>
<string name="planning_trip_item">Planeando un viaje</string>

View file

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><resources><string name="local_osm_changes_backup_failed">پشتیبان‌گیری از تغییرات OsmAnd ناموفق بود</string>
<?xml version='1.0' encoding='utf-8'?>
<resources><string name="local_osm_changes_backup_failed">پشتیبان‌گیری از تغییرات OsmAnd ناموفق بود</string>
<string name="plugin_distance_point_time">زمان</string>
<string name="plugin_distance_point_hdop">دقت</string>
<string name="plugin_distance_point_speed">سرعت</string>
@ -867,7 +868,7 @@
<string name="download_hillshade_maps">لایه تپه سایه</string>
<string name="osmand_srtm_long_description_1000_chars">این افزونه، منحنی‌های هم‌تراز را که در نقشه‌&#157;های آفلاین OsmAnd نمایش داده میشوند فراهم میکند. داده‌های جهانی (بین 70 درجه شمالی و 70 درجه جنوبی) در این زمینه براساس اندازه گیری‌های SRTM (مأموریت توپوگرافی رادار شاتل) و ASTER (رادیومتر انعکاسی و پرتویی حرارتی هوایی پیشرفته)، یک ابزار تصویربرداری پردازنده ترا و ماهواره فوق پیشرفته سیستم نظارتی زمین ناسا مییباشند. ASTER محصول تلاش مشترک میان ناسا، وزارت اقتصاد ژاپن، صنعت و تجارت (متی)، و سیستم های فضایی ژاپن (جی-اسپیس سیستم) است.</string>
<string name="osmand_srtm_long_description_1000_chars">"این افزونه، منحنی‌های هم‌تراز را که در نقشه‌های آفلاین OsmAnd نمایش داده میشوند فراهم میکند. داده‌های جهانی (بین 70 درجه شمالی و 70 درجه جنوبی) در این زمینه براساس اندازه گیری‌های SRTM (مأموریت توپوگرافی رادار شاتل) و ASTER (رادیومتر انعکاسی و پرتویی حرارتی هوایی پیشرفته)، یک ابزار تصویربرداری پردازنده ترا و ماهواره فوق پیشرفته سیستم نظارتی زمین ناسا مییباشند. ASTER محصول تلاش مشترک میان ناسا، وزارت اقتصاد ژاپن، صنعت و تجارت (متی)، و سیستم های فضایی ژاپن (جی-اسپیس سیستم) است. "</string>
<string name="srtm_plugin_description">تسهیل دانلود خطوط هم‌تراز و سایه تپه (\'تنظیمات\'-&gt;\'مدیریت نقشه ها\'-&gt;\'دانلود\'-&gt;\'انتخاب نوع نقشه\' مورد نظر).</string>
<string name="monitoring_control_start">جی پی ایکس</string>
<string name="rendering_attr_noPolygons_description">محو کردن همه عوارض زمین روی نقشه</string>
@ -1499,7 +1500,7 @@ OsmAnd منبع باز است و فعالانه در حال توسعه است.
<string name="index_name_gb">اروپا - بریتانیا</string>
<string name="osmo_settings_uuid">شماره شناسايي یکتای دستگاه</string>
<string name="osmo_settings_descr">مشاهده کلید ثبت یکتای دستگاه و سایر تنظیمات نظارت</string>
<string name="osmo_plugin_description">نظارت-OpenStreetMap- فراهم آوردن امکان پیگیری افراد از طریق دستگاه اشتراک اطلاعات مکانشان، ایجاد گروه های ناشناس و مخابره و به اشتراک گذاری مکان های مختلف، دارای امکان تنظیم ردیابی موقت و دائم، ایجاد گروه های ناشناس برای چند روز دارای برخی از ویژگی های محدود، یعنی مدیر گروهیچ کنترلی از راه دور بر روی اعضای گروه ندارد. همچنین کاربران با ثبت نام قابلیت دسترسی به گروه های کاملا کاربردی با بسیاری از امکانات برای مشاهده و نظارت از راه دور را بدست می آورند. لطفا برای ادامه مطلب به این آدرس بروید.\n http://osmo.mobi</string>
<string name="osmo_plugin_description">"نظارت -OpenStreetMap- فراهم آوردن امکان پیگیری افراد از طریق دستگاه اشتراک اطلاعات مکانشان، ایجاد گروه های ناشناس و مخابره و به اشتراک گذاری مکان های مختلف، دارای امکان تنظیم ردیابی موقت و دائم، ایجاد گروه های ناشناس برای چند روز دارای برخی از ویژگی های محدود، یعنی مدیر گروه هیچ کنترلی از راه دور بر روی اعضای گروه ندارد. همچنین کاربران با ثبت نام قابلیت دسترسی به گروه های کاملا کاربردی با بسیاری از امکانات برای مشاهده و نظارت از راه دور را بدست می آورند. لطفا برای ادامه مطلب به این آدرس بروید.\n http://osmo.mobi "</string>
<string name="osmo_settings">سرویس نظارت OsMo</string>
<string name="always_center_position_on_map">موقعیت را همیشه وسط صفحه نشان بده</string>
<string name="voice_pref_title">صدا</string>
@ -1994,5 +1995,5 @@ OsmAnd منبع باز است و فعالانه در حال توسعه است.
<string name="rendering_value_disabled_name">غیرفعال</string>
<string name="rendering_value_walkingRoutesScopeOSMC_name">رنگ‌بندی براساس حوزه مسیر</string>
<string name="rendering_value_walkingRoutesOSMC_name">رنگ‌بندی براساس OSMC</string>
<string name="osmo_share_my_location">به اشتراک گذاری مکان من</string>
</resources>
<string name="osmo_share_my_location">اشتراک گذاری مکان من</string>
</resources>

View file

@ -2061,7 +2061,7 @@ Afghanistan, Albanie, Algérie, Allemagne, Andorre, Angola, Anguilla, Antigua-et
<string name="first_usage_item_description">Comment télécharger des cartes et définir les paramètres de base</string>
<string name="navigation_item_description">Configurer la navigation</string>
<string name="faq_item">FAQ</string>
<string name="faq_item_description">Comment utiliser les greffons</string>
<string name="faq_item_description">Foire aux questions</string>
<string name="map_viewing_item">Affichage de la carte</string>
<string name="search_on_the_map_item">Rechercher de carte</string>
<string name="planning_trip_item">Préparer un trajet</string>

View file

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><resources>
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="send_files_to_osm">GPX fájl küldése OSM-re?</string>
<string name="gpx_visibility_txt">Láthatóság</string>
<string name="gpx_tags_txt">Címkék</string>
@ -1968,10 +1969,10 @@
<string name="other_menu_group">Egyebek</string>
<string name="plugins_menu_group">Bővítmények</string>
<string name="first_usage_item">Első használat</string>
<string name="first_usage_item_description">Hogyan tölts le térképet, alap beállítások</string>
<string name="first_usage_item_description">Hogyan tölts le térképeket, alap beállítások</string>
<string name="navigation_item_description">Navigáció beállítása</string>
<string name="faq_item">GYIK</string>
<string name="faq_item_description">Hogyan használd a bővítményeket</string>
<string name="faq_item_description">Gyakran ismételt kérdések</string>
<string name="map_viewing_item">Térkép böngészése</string>
<string name="search_on_the_map_item">Keresés a térképen</string>
<string name="planning_trip_item">Utazás tervezése</string>
@ -1983,4 +1984,13 @@
<string name="versions_item">Verziók</string>
<string name="feedback">szavazás</string>
<string name="contact_us">Kapcsolat</string>
</resources>
<string name="read_more">Bővebben</string>
<string name="whats_new">Újdonságok</string>
<string name="rendering_attr_hideProposed_name">Tervezett objektumok elrejtése</string>
<string name="shared_string_update">Frissítés</string>
<string name="shared_string_upload">Feltöltés</string>
<string name="osm_edit_created_poi">Létrehozott OSM POI</string>
<string name="osm_edit_created_bug">Létrehozott OSM bug</string>
<string name="map_legend">Térkép jelkulcs</string>
<string name="favourites_edit_dialog_title">Kedvenc információk</string>
</resources>

View file

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><resources>
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="rendering_attr_roadColors_description">Velg fargeskjema for veier:</string>
<string name="rendering_attr_roadColors_name">Veifargeskjema</string>
<string name="map_widget_show_destination_arrow">Vis retning til målet</string>
@ -1426,7 +1427,7 @@
<string name="plugins_menu_group">Programtillegg</string>
<string name="first_usage_item">Første bruk</string>
<string name="first_usage_item_description">Hvordan laste ned kart, angi grunnleggende innstillinger</string>
<string name="faq_item_description">Hvordan bruke programtillegg</string>
<string name="faq_item_description">Ofte stilte spørsmål</string>
<string name="map_viewing_item">Kartvisning</string>
<string name="search_on_the_map_item">Kartsøking</string>
@ -1434,4 +1435,9 @@
<string name="versions_item">Versjoner</string>
<string name="contact_us">Kontakt oss</string>
<string name="planning_trip_item">Planlegge en tur</string>
</resources>
<string name="read_more">Les mer</string>
<string name="rendering_attr_hideProposed_name">Skjul foreslåtte objekter</string>
<string name="techical_articles_item">Tekniske artikler</string>
<string name="feedback">Tilbakemelding</string>
<string name="map_legend">Kartforklaring</string>
</resources>

View file

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><resources>
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="layer_map_appearance">Configureer scherm</string>
<string name="show_lanes">Toon rijstroken</string>
@ -2190,4 +2191,7 @@ Afghanistan, Albanie, Algerije, Andorra, Angola, Anguilla, Antigua en Barbuda, A
<string name="feedback">Commentaar</string>
<string name="contact_us">Neem contact op</string>
<string name="map_legend">Legenda</string>
</resources>
<string name="read_more">Meer lezen</string>
<string name="whats_new">Wat is nieuw in</string>
<string name="rendering_attr_hideProposed_name">Verberg voorgestelde objecten</string>
</resources>

View file

@ -2381,4 +2381,7 @@
<string name="poi_toilets_access_community">Туалет: общественный</string>
<string name="poi_internet_access_type_terminal">Тип доступа к Интернет: терминал</string>
<string name="poi_historic_period_dominate">Исторический период: доминантный</string>
<string name="poi_conveying_yes">Движущаяся(йся): да</string>
</resources>

View file

@ -1548,4 +1548,42 @@
<string name="poi_aerialway_summer_access_both">Atzessu in s\'istiu: intrada e essida</string>
<string name="poi_railway_crossing">Coladòrgiu a livellu</string>
<string name="poi_historic_yes">Ogetu istòricu</string>
<string name="poi_surveillance_yes">Bardiamentu: eja</string>
<string name="poi_shop_yes">Cun butega</string>
<string name="poi_service_bicycle_retail_yes">Bèndida de bitzicletas: eja</string>
<string name="poi_service_bicycle_retail_no">Bèndida de bitzicletas: nono</string>
<string name="poi_service_bicycle_repair_yes">Acontzu de bitzicletas: eja</string>
<string name="poi_service_bicycle_repair_no">Acontzu de bitzicletas: nono</string>
<string name="poi_service_bicycle_rental_yes">Nolu de bitzicletas: eja</string>
<string name="poi_service_bicycle_rental_no">Nolu de bitzicletas: nono</string>
<string name="poi_service_bicycle_pump_yes">Pompa pro bitzicletas: eja</string>
<string name="poi_service_bicycle_pump_no">Pompa pro bitzicletas: nono</string>
<string name="poi_service_bicycle_diy_yes">Ainas pro sacontzu a sa sola de bitzicletas: eja</string>
<string name="poi_service_bicycle_diy_no">Ainas pro sacontzu a sa sola de bitzicletas: nono</string>
<string name="poi_service_bicycle_cleaning_yes">Innetadura de bitzicletas: eja</string>
<string name="poi_service_bicycle_cleaning_no">Innetadura de bitzicletas: nono</string>
<string name="poi_service_bicycle_chaintool_yes">Trunca-cadenas pro bitzicletas: eja</string>
<string name="poi_service_bicycle_chaintool_no">Trunca-cadenas pro bitzicletas: nono</string>
<string name="poi_service_bicycle_second_hand_yes">Bèndida de bitzicletas de segunda manu: eja</string>
<string name="poi_service_bicycle_second_hand_no">Bèndida de bitzicletas de segunda manu: nono</string>
<string name="poi_wildlife_hide">Logu pro abbaidare sa natura</string>
<string name="poi_training_language">Annestru: limba</string>
<string name="poi_training_music">Annestru: mùsica</string>
<string name="poi_training_dance">Annestru: dantza</string>
<string name="poi_training_sport">Annestru: isport</string>
<string name="poi_training_art">Annestru: arte</string>
<string name="poi_training_cooking">Annestru: coghina</string>
<string name="poi_training_computer">Annestru: informàtica</string>
<string name="poi_training_yoga">Annestru: yoga</string>
<string name="poi_training_martial_art">Annestru: artes martziales</string>
<string name="poi_training_aviation">Annestru: aviatzione</string>
<string name="poi_training_hairdressing">Annestru: pilucheria</string>
<string name="poi_monument_yes">Ogetu monumentale</string>
<string name="poi_note">Nota</string>
</resources>

View file

@ -1932,7 +1932,7 @@
<string name="share_menu_location">Dela platsen</string>
<string name="shared_string_send">Sänd</string>
<string name="hillshade_layer_disabled">Skuggad relief-lager inaktiverat</string>
<string name="show_on_start_description">OsmAnd kommer att starta från kartskärmen</string>
<string name="show_on_start_description">\'Av\' startar kartskärmen direkt</string>
<string name="map_downloaded">Karta hämtad</string>
<string name="map_downloaded_descr">Karta över %1$s har hämtats. Gå tillbaka till kartan för att börja använda den.</string>
<string name="go_to_map">Gå till kartan</string>

View file

@ -2376,5 +2376,7 @@
<string name="poi_boat_storage">Boat storage</string>
<string name="poi_conveying_yes">Conveying: yes</string>
</resources>

View file

@ -281,7 +281,7 @@ public class AppInitializer implements IProgress {
@Override
public String getTranslation(AbstractPoiType type) {
if(type.getBaseLangType() != null) {
return getTranslation(type.getBaseLangType()) + "(" + getLangTranslation(type.getLang()) +")";
return getTranslation(type.getBaseLangType()) + " (" + getLangTranslation(type.getLang()).toLowerCase() +")";
}
try {
Field f = R.string.class.getField("poi_" + type.getIconKeyName());

View file

@ -16,7 +16,9 @@ import net.osmand.plus.OsmandSettings;
import net.osmand.plus.OsmandSettings.AutoZoomMap;
import net.osmand.plus.R;
import net.osmand.plus.TargetPointsHelper.TargetPoint;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.dashboard.DashboardOnMap;
import net.osmand.plus.mapcontextmenu.MapContextMenu;
import net.osmand.plus.routing.RoutingHelper;
import net.osmand.plus.routing.RoutingHelper.IRouteInformationListener;
import net.osmand.plus.views.AnimateDraggingMapThread;
@ -32,6 +34,7 @@ public class MapViewTrackingUtilities implements OsmAndLocationListener, IMapLoc
private boolean sensorRegistered = false;
private OsmandMapTileView mapView;
private DashboardOnMap dashboard;
private MapContextMenu contextMenu;
private OsmandSettings settings;
private OsmandApplication app;
private boolean isMapLinkedToLocation = true;
@ -85,12 +88,19 @@ public class MapViewTrackingUtilities implements OsmAndLocationListener, IMapLoc
if(dashboard != null) {
dashboard.updateCompassValue(val);
}
if(contextMenu != null) {
contextMenu.updateCompassValue(val);
}
}
public void setDashboard(DashboardOnMap dashboard) {
this.dashboard = dashboard;
}
public void setContextMenu(MapContextMenu contextMenu) {
this.contextMenu = contextMenu;
}
@Override
public void updateLocation(Location location) {
showViewAngle = false;
@ -130,10 +140,13 @@ public class MapViewTrackingUtilities implements OsmAndLocationListener, IMapLoc
// When location is changed we need to refresh map in order to show movement!
mapView.refreshMap();
}
if(dashboard != null) {
dashboard.updateMyLocation(location);
}
if(contextMenu != null) {
contextMenu.updateMyLocation(location);
}
}
private boolean isSmallSpeedForCompass(Location location) {
@ -170,8 +183,9 @@ public class MapViewTrackingUtilities implements OsmAndLocationListener, IMapLoc
}
private void registerUnregisterSensor(net.osmand.Location location) {
int currentMapRotation = settings.ROTATE_MAP.get();
boolean registerCompassListener = (showViewAngle && location != null)
boolean registerCompassListener = ((showViewAngle || contextMenu != null) && location != null)
|| (currentMapRotation == OsmandSettings.ROTATE_MAP_COMPASS && !routePlanningMode);
// show point view only if gps enabled
if(sensorRegistered != registerCompassListener) {

View file

@ -15,6 +15,7 @@ import net.osmand.plus.mapcontextmenu.MenuController.TitleProgressController;
import net.osmand.plus.mapcontextmenu.other.ShareMenu;
import net.osmand.plus.views.ContextMenuLayer;
import net.osmand.plus.views.OsmandMapLayer;
import net.osmand.util.MapUtils;
public class MapContextMenu extends MenuTitleController {
@ -29,6 +30,10 @@ public class MapContextMenu extends MenuTitleController {
private LatLon mapCenter;
private int mapPosition = 0;
private LatLon myLocation;
private Float heading;
private boolean inLocationUpdate = false;
private int favActionIconId;
@Override
@ -97,6 +102,11 @@ public class MapContextMenu extends MenuTitleController {
}
public boolean init(LatLon latLon, PointDescription pointDescription, Object object, boolean update) {
if (myLocation == null) {
myLocation = getMapActivity().getMyApplication().getSettings().getLastKnownMapLocation();
}
if (!update && isVisible()) {
if (this.object == null || !this.object.equals(object)) {
hide();
@ -399,9 +409,59 @@ public class MapContextMenu extends MenuTitleController {
return menuController == null || menuController.buttonsVisible();
}
public boolean displayDistanceDirection() {
return menuController != null && menuController.displayDistanceDirection();
}
public void updateData() {
if (menuController != null) {
menuController.updateData();
}
}
public LatLon getMyLocation() {
return myLocation;
}
public Float getHeading() {
return heading;
}
public void updateMyLocation(net.osmand.Location location) {
if (location != null) {
myLocation = new LatLon(location.getLatitude(), location.getLongitude());
updateLocation(false, true, false);
}
}
public void updateCompassValue(float value) {
// 99 in next line used to one-time initialize arrows (with reference vs. fixed-north direction)
// on non-compass devices
float lastHeading = heading != null ? heading : 99;
heading = value;
if (Math.abs(MapUtils.degreesDiff(lastHeading, heading)) > 5) {
updateLocation(false, false, true);
} else {
heading = lastHeading;
}
}
public void updateLocation(final boolean centerChanged, final boolean locationChanged,
final boolean compassChanged) {
if (inLocationUpdate) {
return;
}
inLocationUpdate = true;
mapActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
inLocationUpdate = false;
MapContextMenuFragment menuFragment = findMenuFragment();
if (menuFragment != null) {
menuFragment.updateLocation(centerChanged, locationChanged, compassChanged);
}
}
});
}
}

View file

@ -37,6 +37,7 @@ import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.dashboard.DashLocationFragment;
import net.osmand.plus.download.DownloadIndexesThread.DownloadEvents;
import net.osmand.plus.mapcontextmenu.MenuController.TitleButtonController;
import net.osmand.plus.mapcontextmenu.MenuController.TitleProgressController;
@ -49,7 +50,6 @@ import static net.osmand.plus.mapcontextmenu.MenuBuilder.SHADOW_HEIGHT_TOP_DP;
public class MapContextMenuFragment extends Fragment implements DownloadEvents {
public static final String TAG = "MapContextMenuFragment";
public static final float FAB_PADDING_TOP_DP = 4f;
@ -84,6 +84,8 @@ public class MapContextMenuFragment extends Fragment implements DownloadEvents {
private int origMarkerY;
private boolean customMapCenter;
private int screenOrientation;
private class SingleTapConfirm implements OnGestureListener {
@Override
@ -529,7 +531,7 @@ public class MapContextMenuFragment extends Fragment implements DownloadEvents {
iconLayout.setVisibility(View.VISIBLE);
} else if (iconId != 0) {
iconView.setImageDrawable(iconsCache.getIcon(iconId,
light ? R.color.osmand_orange : R.color.osmand_orange_dark, 0.75f));
light ? R.color.osmand_orange : R.color.osmand_orange_dark));
iconLayout.setVisibility(View.VISIBLE);
} else {
iconLayout.setVisibility(View.GONE);
@ -550,6 +552,21 @@ public class MapContextMenuFragment extends Fragment implements DownloadEvents {
}
}
@Override
public void onResume() {
super.onResume();
screenOrientation = DashLocationFragment.getScreenOrientation(getActivity());
if (menu.displayDistanceDirection()) {
getMapActivity().getMapViewTrackingUtilities().setContextMenu(menu);
}
}
@Override
public void onPause() {
getMapActivity().getMapViewTrackingUtilities().setContextMenu(null);
super.onPause();
}
@Override
public void onDestroyView() {
super.onDestroyView();
@ -641,6 +658,15 @@ public class MapContextMenuFragment extends Fragment implements DownloadEvents {
line1.setText(menu.getTitleStr());
// Text line 2
TextView distanceText = (TextView) view.findViewById(R.id.distance);
ImageView direction = (ImageView) view.findViewById(R.id.direction);
if (menu.displayDistanceDirection()) {
updateDistanceDirection();
} else {
direction.setVisibility(View.GONE);
distanceText.setVisibility(View.GONE);
}
TextView line2 = (TextView) view.findViewById(R.id.context_menu_line2);
line2.setText(menu.getLocationStr());
Drawable icon = menu.getSecondLineIcon();
@ -650,6 +676,18 @@ public class MapContextMenuFragment extends Fragment implements DownloadEvents {
}
}
private void updateDistanceDirection() {
TextView distanceText = (TextView) view.findViewById(R.id.distance);
ImageView direction = (ImageView) view.findViewById(R.id.direction);
boolean mapLinked = getMapActivity().getMapViewTrackingUtilities().isMapLinkedToLocation() && menu.getMyLocation() != null;
float myHeading = menu.getHeading() == null ? 0f : menu.getHeading();
float h = !mapLinked ? -getMapActivity().getMapRotate() : myHeading;
DashLocationFragment.updateLocationView(!mapLinked, menu.getMyLocation(), h, direction, distanceText,
menu.getLatLon().getLatitude(), menu.getLatLon().getLongitude(), screenOrientation, getMyApplication(), getActivity());
}
private int getPosY() {
return getPosY(false);
}
@ -870,5 +908,13 @@ public class MapContextMenuFragment extends Fragment implements DownloadEvents {
getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
return dm.heightPixels;
}
public void updateLocation(boolean centerChanged, boolean locationChanged, boolean compassChanged) {
boolean mapLinkedToLocation = getMapActivity().getMapViewTrackingUtilities().isMapLinkedToLocation();
if (compassChanged && !mapLinkedToLocation) {
return;
}
updateDistanceDirection();
}
}

View file

@ -220,7 +220,11 @@ public abstract class MenuController extends BaseMenuController {
return menuType != MenuType.STANDARD;
}
public boolean displayStreetNameinTitle() {
public boolean displayStreetNameInTitle() {
return false;
}
public boolean displayDistanceDirection() {
return false;
}

View file

@ -59,8 +59,7 @@ public abstract class MenuTitleController {
return typeStr;
} else {
if (Algorithms.isEmpty(streetStr)) {
return PointDescription.getLocationName(getMapActivity(),
getLatLon().getLatitude(), getLatLon().getLongitude(), true).replaceAll("\n", "");
return typeStr;
} else {
return streetStr;
}
@ -147,7 +146,7 @@ public abstract class MenuTitleController {
if (!Algorithms.isEmpty(streetStr)) {
MenuController menuController = getMenuController();
if (menuController == null || menuController.displayStreetNameinTitle()) {
if (menuController == null || menuController.displayStreetNameInTitle()) {
nameStr = streetStr;
addressUnknown = false;
streetStr = "";

View file

@ -34,11 +34,11 @@ public class AmenityMenuBuilder extends MenuBuilder {
this.amenity = amenity;
}
private void buildRow(View view, int iconId, String text, int textColor, boolean isWiki, boolean needLinks) {
buildRow(view, getRowIcon(iconId), text, textColor, isWiki, needLinks);
private void buildRow(View view, int iconId, String text, String textPrefix, int textColor, boolean isWiki, boolean isText, boolean needLinks) {
buildRow(view, getRowIcon(iconId), text, textPrefix, textColor, isWiki, isText, needLinks);
}
protected void buildRow(final View view, Drawable icon, String text, int textColor, boolean isWiki, boolean needLinks) {
protected void buildRow(final View view, Drawable icon, final String text, final String textPrefix, int textColor, boolean isWiki, boolean isText, boolean needLinks) {
boolean light = app.getSettings().isLightContent();
LinearLayout ll = new LinearLayout(view.getContext());
@ -82,8 +82,15 @@ public class AmenityMenuBuilder extends MenuBuilder {
if (isWiki) {
textView.setMinLines(1);
textView.setMaxLines(15);
} else if (isText) {
textView.setMinLines(1);
textView.setMaxLines(10);
}
if (!Algorithms.isEmpty(textPrefix)) {
textView.setText(textPrefix + ": " + text);
} else {
textView.setText(text);
}
textView.setText(text);
if (textColor > 0) {
textView.setTextColor(view.getResources().getColor(textColor));
}
@ -91,7 +98,14 @@ public class AmenityMenuBuilder extends MenuBuilder {
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
POIMapLayer.showDescriptionDialog(view.getContext(), app, amenity);
POIMapLayer.showWikipediaDialog(view.getContext(), app, amenity);
}
});
} else if (isText) {
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
POIMapLayer.showDescriptionDialog(view.getContext(), app, text, textPrefix);
}
});
}
@ -129,7 +143,9 @@ public class AmenityMenuBuilder extends MenuBuilder {
String key = e.getKey();
String vl = e.getValue();
String textPrefix = "";
boolean isWiki = false;
boolean isText = false;
boolean needLinks = !"population".equals(key);
if (amenity.getType().isWiki()) {
@ -189,21 +205,24 @@ public class AmenityMenuBuilder extends MenuBuilder {
if (pType.getParentType() != null && pType.getParentType() instanceof PoiType) {
icon = getRowIcon(view.getContext(), ((PoiType) pType.getParentType()).getOsmTag() + "_" + pType.getOsmTag().replace(':', '_') + "_" + pType.getOsmValue());
}
if (pt instanceof PoiType && !((PoiType) pt).isText()) {
vl = pt.getTranslation();
if (!pType.isText()) {
vl = pType.getTranslation();
} else {
vl = pt.getTranslation() + ": " + amenity.unzipContent(e.getValue());
isText = true;
iconId = R.drawable.ic_action_note_dark;
textPrefix = pType.getTranslation();
vl = amenity.unzipContent(e.getValue());
}
} else {
vl = Algorithms.capitalizeFirstLetterAndLowercase(e.getKey()) +
": " + amenity.unzipContent(e.getValue());
textPrefix = Algorithms.capitalizeFirstLetterAndLowercase(e.getKey());
vl = amenity.unzipContent(e.getValue());
}
}
if (icon != null) {
buildRow(view, icon, vl, textColor, isWiki, needLinks);
buildRow(view, icon, vl, textPrefix, textColor, isWiki, isText, needLinks);
} else {
buildRow(view, iconId, vl, textColor, isWiki, needLinks);
buildRow(view, iconId, vl, textPrefix, textColor, isWiki, isText, needLinks);
}
}
}

View file

@ -75,9 +75,4 @@ public class AmenityMenuController extends MenuController {
}
addMyLocationToPlainItems(pointDescription, amenity.getLocation());
}
@Override
public String getNameStr() {
return getPointDescription().getName();
}
}

View file

@ -85,11 +85,6 @@ public class AudioVideoNoteMenuController extends MenuController {
}
}
@Override
public String getNameStr() {
return getPointDescription().getName();
}
@Override
public String getTypeStr() {
return recording.getType(getMapActivity());

View file

@ -134,11 +134,6 @@ public class EditPOIMenuController extends MenuController {
return getIcon(R.drawable.ic_action_gabout_dark, R.color.osmand_orange_dark, R.color.osmand_orange);
}
@Override
public String getNameStr() {
return getPointDescription().getName();
}
@Override
public String getTypeStr() {
return pointTypeStr;

View file

@ -48,9 +48,14 @@ public class FavouritePointMenuController extends MenuController {
return true;
}
@Override
public boolean displayDistanceDirection() {
return true;
}
@Override
public Drawable getLeftIcon() {
return FavoriteImageDrawable.getOrCreate(getMapActivity().getMyApplication(), fav.getColor(), true);
return FavoriteImageDrawable.getOrCreate(getMapActivity().getMyApplication(), fav.getColor(), false);
}
@Override
@ -68,9 +73,4 @@ public class FavouritePointMenuController extends MenuController {
return fav.getCategory().length() == 0 ?
getMapActivity().getString(R.string.shared_string_favorites) : fav.getCategory();
}
@Override
public String getNameStr() {
return getPointDescription().getName();
}
}

View file

@ -31,6 +31,11 @@ public class HistoryMenuController extends MenuController {
return (typeName != null && !typeName.isEmpty());
}
@Override
public boolean displayDistanceDirection() {
return true;
}
@Override
public Drawable getLeftIcon() {
return getIcon(SearchHistoryFragment.getItemIcon(entry.getName()));
@ -45,11 +50,6 @@ public class HistoryMenuController extends MenuController {
}
}
@Override
public String getNameStr() {
return getPointDescription().getName();
}
@Override
public String getTypeStr() {
if (needTypeStr()) {

View file

@ -35,7 +35,6 @@ public class MapDataMenuController extends MenuController {
private WorldRegion region;
private IndexItem indexItem;
private List<IndexItem> otherIndexItems;
private String name;
private DownloadValidationManager downloadValidationManager;
private DownloadIndexesThread downloadThread;
@ -45,7 +44,6 @@ public class MapDataMenuController extends MenuController {
OsmandRegions osmandRegions = app.getRegions();
String fullName = osmandRegions.getFullName(dataObject);
this.region = osmandRegions.getRegionData(fullName);
name = getPointDescription().getName();
downloadValidationManager = new DownloadValidationManager(app);
downloadThread = app.getDownloadThread();
@ -120,11 +118,6 @@ public class MapDataMenuController extends MenuController {
return getIcon(R.drawable.ic_map, R.color.osmand_orange_dark, R.color.osmand_orange);
}
@Override
public String getNameStr() {
return name;
}
@Override
public String getTypeStr() {
String res;
@ -153,9 +146,9 @@ public class MapDataMenuController extends MenuController {
String[] items = region.getParams().getWikiLink().split(":");
String url;
if (items.length > 1) {
url = "https://" + items[0] + ".wikipedia.org/wiki/" + items[1];
url = "https://" + items[0] + ".wikipedia.org/wiki/" + items[1].replace(' ', '_');
} else {
url = "https://wikipedia.org/wiki/" + items[0];
url = "https://wikipedia.org/wiki/" + items[0].replace(' ', '_');
}
addPlainMenuItem(R.drawable.ic_world_globe_dark, url, true);
}

View file

@ -25,9 +25,4 @@ public class MyLocationMenuController extends MenuController {
ApplicationMode appMode = getMapActivity().getMyApplication().getSettings().getApplicationMode();
return getMapActivity().getResources().getDrawable(appMode.getResourceLocation());
}
@Override
public String getNameStr() {
return getPointDescription().getName();
}
}

View file

@ -40,11 +40,6 @@ public class OsMoMenuController extends MenuController {
}
}
@Override
public String getNameStr() {
return getPointDescription().getName();
}
@Override
public String getTypeStr() {
OsmandApplication app = getMapActivity().getMyApplication();

View file

@ -52,13 +52,13 @@ public class ParkingPositionMenuController extends MenuController {
}
@Override
public Drawable getLeftIcon() {
return getIcon(R.drawable.ic_action_parking_dark, R.color.map_widget_blue, R.color.osmand_orange);
public boolean displayDistanceDirection() {
return true;
}
@Override
public String getNameStr() {
return getPointDescription().getName();
public Drawable getLeftIcon() {
return getIcon(R.drawable.ic_action_parking_dark, R.color.map_widget_blue, R.color.osmand_orange);
}
@Override

View file

@ -29,7 +29,12 @@ public class PointDescriptionMenuController extends MenuController {
}
@Override
public boolean displayStreetNameinTitle() {
public boolean displayStreetNameInTitle() {
return true;
}
@Override
public boolean displayDistanceDirection() {
return true;
}
@ -47,11 +52,6 @@ public class PointDescriptionMenuController extends MenuController {
}
}
@Override
public String getNameStr() {
return getPointDescription().getName();
}
@Override
public String getTypeStr() {
if (needTypeStr()) {

View file

@ -46,6 +46,11 @@ public class TargetPointMenuController extends MenuController {
return !Algorithms.isEmpty(getNameStr());
}
@Override
public boolean displayDistanceDirection() {
return true;
}
@Override
public Drawable getLeftIcon() {
if (!targetPoint.intermediate) {
@ -63,11 +68,6 @@ public class TargetPointMenuController extends MenuController {
}
}
@Override
public String getNameStr() {
return getPointDescription().getName();
}
@Override
public String getTypeStr() {
return targetPoint.getPointDescription(getMapActivity()).getTypeName();

View file

@ -47,6 +47,11 @@ public class WptPtMenuController extends MenuController {
return wpt.category != null;
}
@Override
public boolean displayDistanceDirection() {
return true;
}
@Override
public Drawable getLeftIcon() {
return FavoriteImageDrawable.getOrCreate(getMapActivity().getMyApplication(), wpt.getColor(), true);
@ -65,9 +70,4 @@ public class WptPtMenuController extends MenuController {
public String getTypeStr() {
return wpt.category != null ? wpt.category : getMapActivity().getString(R.string.shared_string_none);
}
@Override
public String getNameStr() {
return getPointDescription().getName();
}
}

View file

@ -210,7 +210,7 @@ public class FavoritePointEditorFragment extends PointEditorFragment {
if (group != null) {
color = group.color;
}
return FavoriteImageDrawable.getOrCreate(getMapActivity(), color, true);
return FavoriteImageDrawable.getOrCreate(getMapActivity(), color, false);
}
@Override

View file

@ -154,6 +154,7 @@ public class MapMultiSelectionMenu extends BaseMenuController {
private void clearMenu() {
clearSelectedObjects();
objects.clear();
getMapActivity().refreshMap();
}
public void show(LatLon latLon, Map<Object, IContextMenuProvider> selectedObjects) {

View file

@ -142,7 +142,7 @@ public class MapMultiSelectionMenuFragment extends Fragment implements AdapterVi
iconLayout.setVisibility(View.VISIBLE);
} else if (iconId != 0) {
iconView.setImageDrawable(iconsCache.getIcon(iconId,
menu.isLight() ? R.color.osmand_orange : R.color.osmand_orange_dark, 0.75f));
menu.isLight() ? R.color.osmand_orange : R.color.osmand_orange_dark));
iconLayout.setVisibility(View.VISIBLE);
} else {
iconLayout.setVisibility(View.GONE);

View file

@ -1,10 +1,9 @@
package net.osmand.plus.views;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
@ -18,8 +17,6 @@ import android.net.Uri;
import android.support.v4.view.MenuItemCompat;
import android.support.v7.widget.PopupMenu;
import android.support.v7.widget.Toolbar;
import android.text.SpannableString;
import android.text.method.LinkMovementMethod;
import android.text.util.Linkify;
import android.util.TypedValue;
import android.view.Gravity;
@ -27,6 +24,7 @@ import android.view.MenuItem;
import android.view.MenuItem.OnMenuItemClickListener;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.Button;
@ -67,6 +65,8 @@ import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import static android.util.TypedValue.COMPLEX_UNIT_DIP;
public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.IContextMenuProvider,
MapTextProvider<Amenity>, IRouteInformationListener {
private static final int startZoom = 9;
@ -86,7 +86,7 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
private RoutingHelper routingHelper;
private PoiUIFilter filter;
private MapTextLayer mapTextLayer;
/// cache for displayed POI
// Work with cache (for map copied from AmenityIndexRepositoryOdb)
private MapLayerData<List<Amenity>> data;
@ -105,17 +105,17 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
{
ZOOM_THRESHOLD = 0;
}
@Override
public boolean isInterrupted() {
return super.isInterrupted();
}
@Override
public void layerOnPostExecute() {
activity.getMapView().refreshMap();
}
@Override
protected List<Amenity> calculateResult(RotatedTileBox tileBox) {
QuadRect latLonBounds = tileBox.getLatLonBounds();
@ -125,18 +125,18 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
int z = (int) Math.floor(tileBox.getZoom() + Math.log(view.getSettings().MAP_DENSITY.get()) / Math.log(2));
List<Amenity> res = filter.searchAmenities(latLonBounds.top, latLonBounds.left,
latLonBounds.bottom, latLonBounds.right, z , new ResultMatcher<Amenity>() {
latLonBounds.bottom, latLonBounds.right, z, new ResultMatcher<Amenity>() {
@Override
public boolean publish(Amenity object) {
return true;
}
@Override
public boolean publish(Amenity object) {
return true;
}
@Override
public boolean isCancelled() {
return isInterrupted();
}
});
@Override
public boolean isCancelled() {
return isInterrupted();
}
});
Collections.sort(res, new Comparator<Amenity>() {
@Override
@ -219,9 +219,9 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
@Override
public void onPrepareBufferImage(Canvas canvas, RotatedTileBox tileBox, DrawSettings settings) {
if(!Algorithms.objectEquals(this.settings.SELECTED_POI_FILTER_FOR_MAP.get(),
if (!Algorithms.objectEquals(this.settings.SELECTED_POI_FILTER_FOR_MAP.get(),
filter == null ? null : filter.getFilterId())) {
if(this.settings.SELECTED_POI_FILTER_FOR_MAP.get() == null) {
if (this.settings.SELECTED_POI_FILTER_FOR_MAP.get() == null) {
this.filter = null;
} else {
PoiFiltersHelper pfh = app.getPoiFilters();
@ -294,31 +294,21 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
return true;
}
public static void showDescriptionDialog(Context ctx, OsmandApplication app, Amenity a) {
public static void showWikipediaDialog(Context ctx, OsmandApplication app, Amenity a) {
String lang = app.getSettings().MAP_PREFERRED_LOCALE.get();
if (a.getType().isWiki()) {
String preferredLang = lang;
if(Algorithms.isEmpty(preferredLang)) {
if (Algorithms.isEmpty(preferredLang)) {
preferredLang = app.getLanguage();
}
showWiki(ctx, app, a, preferredLang);
} else {
String d = OsmAndFormatter.getAmenityDescriptionContent(app, a, false);
SpannableString spannable = new SpannableString(d);
Linkify.addLinks(spannable, Linkify.ALL);
Builder bs = new AlertDialog.Builder(ctx);
bs.setTitle(OsmAndFormatter.getPoiStringWithoutType(a, lang));
bs.setMessage(spannable);
bs.setPositiveButton(R.string.shared_string_ok, null);
AlertDialog dialog = bs.show();
// Make links clickable
TextView textView = (TextView) dialog.findViewById(android.R.id.message);
textView.setMovementMethod(LinkMovementMethod.getInstance());
textView.setLinksClickable(true);
}
}
public static void showDescriptionDialog(Context ctx, OsmandApplication app, String text, String textPrefix) {
showText(ctx, app, text, textPrefix);
}
static int getResIdFromAttribute(final Context ctx, final int attr) {
if (attr == 0)
return 0;
@ -326,16 +316,16 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
ctx.getTheme().resolveAttribute(attr, typedvalueattr, true);
return typedvalueattr.resourceId;
}
private static void showWiki(final Context ctx,final OsmandApplication app, final Amenity a, final String lang ) {
final Dialog dialog = new Dialog(ctx,
private static void showWiki(final Context ctx, final OsmandApplication app, final Amenity a, final String lang) {
final Dialog dialog = new Dialog(ctx,
app.getSettings().isLightContent() ?
R.style.OsmandLightTheme:
R.style.OsmandDarkTheme);
R.style.OsmandLightTheme :
R.style.OsmandDarkTheme);
final String title = a.getName(lang);
LinearLayout ll = new LinearLayout(ctx);
ll.setOrientation(LinearLayout.VERTICAL);
final Toolbar topBar = new Toolbar(ctx);
topBar.setClickable(true);
Drawable back = app.getIconsCache().getIcon(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
@ -345,7 +335,7 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
topBar.setTitleTextColor(ctx.getResources().getColor(getResIdFromAttribute(ctx, R.attr.pstsTextColor)));
String lng = a.getContentSelected("content", lang, "en");
if(Algorithms.isEmpty(lng)) {
if (Algorithms.isEmpty(lng)) {
lng = "en";
}
@ -356,13 +346,13 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
bottomBar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String article = "http://"+langSelected.toLowerCase()+".wikipedia.org/wiki/" + title.replace(' ', '_');
String article = "https://" + langSelected.toLowerCase() + ".wikipedia.org/wiki/" + title.replace(' ', '_');
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(article));
ctx.startActivity(i);
}
});
MenuItem mi = topBar.getMenu().add(langSelected.toUpperCase()).setOnMenuItemClickListener(new OnMenuItemClickListener() {
MenuItem mi = topBar.getMenu().add(langSelected.toUpperCase()).setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(final MenuItem item) {
showPopupLangMenu(ctx, topBar, app, a, dialog);
@ -390,36 +380,79 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
scrollView.addView(wv);
dialog.setContentView(ll);
wv.setFocusable(true);
wv.setFocusableInTouchMode(true);
wv.setFocusableInTouchMode(true);
wv.requestFocus(View.FOCUS_DOWN);
wv.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_UP:
if (!v.hasFocus()) {
v.requestFocus();
}
break;
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_UP:
if (!v.hasFocus()) {
v.requestFocus();
}
break;
}
return false;
}
});
dialog.setCancelable(true);
dialog.show();
// wv.setWebViewClient();
dialog.show();
}
private static void showText(final Context ctx, final OsmandApplication app, final String text,String textPrefix) {
final Dialog dialog = new Dialog(ctx,
app.getSettings().isLightContent() ? R.style.OsmandLightTheme : R.style.OsmandDarkTheme);
protected static void showPopupLangMenu(final Context ctx, Toolbar tb,
final OsmandApplication app, final Amenity a, final Dialog dialog) {
LinearLayout ll = new LinearLayout(ctx);
ll.setOrientation(LinearLayout.VERTICAL);
final Toolbar topBar = new Toolbar(ctx);
topBar.setClickable(true);
Drawable back = app.getIconsCache().getIcon(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
topBar.setNavigationIcon(back);
topBar.setTitle(textPrefix);
topBar.setBackgroundColor(ctx.getResources().getColor(getResIdFromAttribute(ctx, R.attr.pstsTabBackground)));
topBar.setTitleTextColor(ctx.getResources().getColor(getResIdFromAttribute(ctx, R.attr.pstsTextColor)));
topBar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
dialog.dismiss();
}
});
final TextView textView = new TextView(ctx);
LinearLayout.LayoutParams llTextParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
int textMargin = dpToPx(app, 10f);
boolean light = app.getSettings().isLightContent();
textView.setLayoutParams(llTextParams);
textView.setPadding(textMargin, textMargin, textMargin, textMargin);
textView.setTextSize(16);
textView.setTextColor(app.getResources().getColor(light ? R.color.ctx_menu_info_text_light : R.color.ctx_menu_info_text_dark));
textView.setAutoLinkMask(Linkify.ALL);
textView.setLinksClickable(true);
textView.setText(text);
ScrollView scrollView = new ScrollView(ctx);
ll.addView(topBar);
LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, 0);
lp.weight = 1;
ll.addView(scrollView, lp);
scrollView.addView(textView);
dialog.setContentView(ll);
dialog.setCancelable(true);
dialog.show();
}
protected static void showPopupLangMenu(final Context ctx, Toolbar tb,
final OsmandApplication app, final Amenity a, final Dialog dialog) {
final PopupMenu optionsMenu = new PopupMenu(ctx, tb, Gravity.RIGHT);
Set<String> names = new TreeSet<String>();
Set<String> names = new TreeSet<String>();
names.addAll(a.getNames("content", "en"));
names.addAll(a.getNames("description", "en"));
for (final String n : names) {
String vn = FileNameTranslationHelper.getVoiceName(ctx, n);
MenuItem item = optionsMenu.getMenu().add(vn);
@ -433,7 +466,7 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
});
}
optionsMenu.show();
}
@ -449,7 +482,7 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
public PointDescription getObjectName(Object o) {
if (o instanceof Amenity) {
return new PointDescription(PointDescription.POINT_TYPE_POI, ((Amenity) o).getName(
view.getSettings().MAP_PREFERRED_LOCALE.get()));
view.getSettings().MAP_PREFERRED_LOCALE.get()));
}
return null;
}
@ -476,7 +509,7 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
}
return null;
}
@Override
public LatLon getTextLocation(Amenity o) {
return o.getLocation();
@ -500,5 +533,12 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
public void routeWasCancelled() {
}
public static int dpToPx(Context ctx, float dp) {
Resources r = ctx.getResources();
return (int) TypedValue.applyDimension(
COMPLEX_UNIT_DIP,
dp,
r.getDisplayMetrics()
);
}
}