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,55 +33,50 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:baselineAligned="false" android:baselineAligned="false"
android:layout_marginBottom="16dp"
android:orientation="horizontal"> android:orientation="horizontal">
<LinearLayout <LinearLayout
android:id="@+id/context_menu_icon_layout" android:id="@+id/context_menu_icon_layout"
android:layout_width="42dp" android:layout_width="42dp"
android:layout_height="match_parent" android:layout_height="match_parent">
android:orientation="horizontal">
<ImageView <ImageView
android:id="@+id/context_menu_icon_view" android:id="@+id/context_menu_icon_view"
android:layout_width="match_parent" android:layout_width="@dimen/standard_icon_size"
android:layout_height="wrap_content" android:layout_height="@dimen/standard_icon_size"
android:layout_marginLeft="12dp" android:layout_marginLeft="16dp"
android:layout_marginStart="12dp" android:layout_marginStart="12dp"
android:layout_marginTop="18dp" android:layout_marginTop="18dp"
android:scaleType="center"
android:src="@drawable/ic_action_building_number"/> android:src="@drawable/ic_action_building_number"/>
</LinearLayout> </LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:orientation="horizontal">
<LinearLayout <LinearLayout
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginTop="15dp" android:layout_marginTop="15dp"
android:layout_weight="1" android:layout_weight="1">
android:orientation="vertical">
<TextView <TextView
android:id="@+id/context_menu_line1" android:id="@+id/context_menu_line1"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:text="@string/search_address_building" android:text="@string/search_address_building"
android:textColor="?android:textColorPrimary" android:textColor="?android:textColorPrimary"
android:textSize="@dimen/default_list_text_size_large"/> android:textSize="@dimen/default_list_text_size_large"/>
<TextView
android:id="@+id/context_menu_line2"
android:layout_width="wrap_content"
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"/>
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
@ -107,6 +102,44 @@
</LinearLayout> </LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginTop="4dp">
<ImageView
android:id="@+id/direction"
android:layout_width="@dimen/dashFavDirectionSize"
android:layout_height="@dimen/dashFavDirectionSize"
android:layout_gravity="center_vertical" />
<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" />
<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>
</LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/title_button_container" android:id="@+id/title_button_container"
android:layout_width="fill_parent" android:layout_width="fill_parent"
@ -116,7 +149,9 @@
android:layout_marginTop="-16dp" android:layout_marginTop="-16dp"
android:paddingBottom="4dp" android:paddingBottom="4dp"
android:clickable="true" android:clickable="true"
android:orientation="horizontal"> android:orientation="horizontal"
tools:visibility="visible"
android:visibility="gone">
<Button <Button
android:id="@+id/title_button" android:id="@+id/title_button"
@ -133,7 +168,7 @@
<TextView <TextView
android:id="@+id/title_button_right_text" android:id="@+id/title_button_right_text"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_height="wrap_content"
android:gravity="center_vertical" android:gravity="center_vertical"
android:clickable="true" android:clickable="true"
android:layout_marginLeft="-4dp" android:layout_marginLeft="-4dp"

View file

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

View file

@ -61,6 +61,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="2dp" android:layout_marginLeft="2dp"
android:layout_gravity="center_vertical"
android:textColor="?android:textColorSecondary" android:textColor="?android:textColorSecondary"
android:textSize="@dimen/default_sub_text_size" android:textSize="@dimen/default_sub_text_size"
tools:text="100500 km" /> 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_dkv_no">No s\'accepta DKV</string>
<string name="poi_payment_uta_yes">S\'accepten targes UTA</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_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> </resources>

View file

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?> <?xml version='1.0' encoding='utf-8'?>
<resources> <resources>
<string name="show_warnings_title">Mostra els missatges d\'avís…</string> <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="navigation_item_description">confifuració de la navegació</string>
<string name="planning_trip_item">Planeja un viatge</string> <string name="planning_trip_item">Planeja un viatge</string>
<string name="faq_item">PMF</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="map_viewing_item">Visualització del mapa</string>
<string name="search_on_the_map_item">Cerca al 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> <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="shared_string_update">Actualitza</string>
<string name="rendering_attr_hideProposed_name">Amaga proposta d\'objectes</string> <string name="rendering_attr_hideProposed_name">Amaga proposta d\'objectes</string>
<string name="read_more">Llegiu-ne més</string>
<string name="whats_new">Què hi ha de nou a</string>
</resources> </resources>

View file

@ -1313,7 +1313,7 @@
<string name="poi_denomination_tibetan">Tibetský</string> <string name="poi_denomination_tibetan">Tibetský</string>
<string name="poi_denomination_salvation_army">Armáda spásy</string> <string name="poi_denomination_salvation_army">Armáda spásy</string>
<string name="poi_denomination_quaker">Kvakerský</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_adventist">Adventistický</string>
<string name="poi_denomination_nazarene">Nazaretánský</string> <string name="poi_denomination_nazarene">Nazaretánský</string>
<string name="poi_denomination_serbian_orthodox">Srbský pravoslavný</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_kmh">Kilometry za hodinu</string>
<string name="si_mph">Míle za hodinu</string> <string name="si_mph">Míle za hodinu</string>
<string name="si_m_s">Metrů za sekundu</string> <string name="si_m_s">Metrů za sekundu</string>
<string name="si_min_km">Minut za kilometr</string> <string name="si_min_km">Minut na kilometr</string>
<string name="si_min_m">Minut za míli</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="si_nm_h">Námořní míle za hodinu (uzly)</string>
<string name="nm_h">nm/h</string> <string name="nm_h">nm/h</string>
<string name="min_mile">min/m</string> <string name="min_mile">min/m</string>
@ -1759,7 +1759,7 @@
<string name="regions">Regiony</string> <string name="regions">Regiony</string>
<string name="region_maps">Mapy regionů</string> <string name="region_maps">Mapy regionů</string>
<string name="world_maps">Světové mapy</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_name">Název kategorie</string>
<string name="favorite_category_add_new_title">Přidat novou kategorii</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> <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="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="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="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="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="shared_string_qr_code">QR kód</string>
<string name="map_downloaded">Mapa stažena</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> <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="new_version">Nová verze</string>
<string name="begin_with_osmand_menu_group">První kroky s OsmAnd</string> <string name="begin_with_osmand_menu_group">První kroky s OsmAnd</string>
<string name="features_menu_group">Vlastnosti</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="other_menu_group">Další</string>
<string name="plugins_menu_group">Moduly</string> <string name="plugins_menu_group">Moduly</string>
<string name="first_usage_item">První použití</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_boat_storage">Bådopbevaring</string>
<string name="poi_conveying_yes">Flytning: ja</string>
</resources> </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="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_voice_call">Audio de llamada de voz</string>
<string name="voice_stream_notification">Notificación auditiva</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="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_descr">Modifica la transparencia de la capa superpuesta</string>
<string name="overlay_transparency">Transparencia de superposición</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="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="navigation_item_description">Configuración de navegación</string>
<string name="faq_item">Preguntas Frecuentes</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="map_viewing_item">Vista del mapa</string>
<string name="search_on_the_map_item">Busqueda en el mapa</string> <string name="search_on_the_map_item">Busqueda en el mapa</string>
<string name="planning_trip_item">Planificación de viaje</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="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_voice_call">Audio de llamada de voz</string>
<string name="voice_stream_notification">Notificación auditiva</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="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_descr">Modifica la transparencia de la capa superpuesta</string>
<string name="overlay_transparency">Transparencia de superpuesto</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="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">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="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="dark_theme">Oscuro</string>
<string name="lang_pms">Piamontés</string> <string name="lang_pms">Piamontés</string>
<string name="lang_bn">Bengalí</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="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="navigation_item_description">Configuración de navegación</string>
<string name="faq_item">Preguntas Frecuentes</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="map_viewing_item">Vista del mapa</string>
<string name="search_on_the_map_item">Búsqueda en el mapa</string> <string name="search_on_the_map_item">Búsqueda en el mapa</string>
<string name="planning_trip_item">Planeando un viaje</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_time">زمان</string>
<string name="plugin_distance_point_hdop">دقت</string> <string name="plugin_distance_point_hdop">دقت</string>
<string name="plugin_distance_point_speed">سرعت</string> <string name="plugin_distance_point_speed">سرعت</string>
@ -867,7 +868,7 @@
<string name="download_hillshade_maps">لایه تپه سایه</string> <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="srtm_plugin_description">تسهیل دانلود خطوط هم‌تراز و سایه تپه (\'تنظیمات\'-&gt;\'مدیریت نقشه ها\'-&gt;\'دانلود\'-&gt;\'انتخاب نوع نقشه\' مورد نظر).</string>
<string name="monitoring_control_start">جی پی ایکس</string> <string name="monitoring_control_start">جی پی ایکس</string>
<string name="rendering_attr_noPolygons_description">محو کردن همه عوارض زمین روی نقشه</string> <string name="rendering_attr_noPolygons_description">محو کردن همه عوارض زمین روی نقشه</string>
@ -1499,7 +1500,7 @@ OsmAnd منبع باز است و فعالانه در حال توسعه است.
<string name="index_name_gb">اروپا - بریتانیا</string> <string name="index_name_gb">اروپا - بریتانیا</string>
<string name="osmo_settings_uuid">شماره شناسايي یکتای دستگاه</string> <string name="osmo_settings_uuid">شماره شناسايي یکتای دستگاه</string>
<string name="osmo_settings_descr">مشاهده کلید ثبت یکتای دستگاه و سایر تنظیمات نظارت</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="osmo_settings">سرویس نظارت OsMo</string>
<string name="always_center_position_on_map">موقعیت را همیشه وسط صفحه نشان بده</string> <string name="always_center_position_on_map">موقعیت را همیشه وسط صفحه نشان بده</string>
<string name="voice_pref_title">صدا</string> <string name="voice_pref_title">صدا</string>
@ -1994,5 +1995,5 @@ OsmAnd منبع باز است و فعالانه در حال توسعه است.
<string name="rendering_value_disabled_name">غیرفعال</string> <string name="rendering_value_disabled_name">غیرفعال</string>
<string name="rendering_value_walkingRoutesScopeOSMC_name">رنگ‌بندی براساس حوزه مسیر</string> <string name="rendering_value_walkingRoutesScopeOSMC_name">رنگ‌بندی براساس حوزه مسیر</string>
<string name="rendering_value_walkingRoutesOSMC_name">رنگ‌بندی براساس OSMC</string> <string name="rendering_value_walkingRoutesOSMC_name">رنگ‌بندی براساس OSMC</string>
<string name="osmo_share_my_location">به اشتراک گذاری مکان من</string> <string name="osmo_share_my_location">اشتراک گذاری مکان من</string>
</resources> </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="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="navigation_item_description">Configurer la navigation</string>
<string name="faq_item">FAQ</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="map_viewing_item">Affichage de la carte</string>
<string name="search_on_the_map_item">Rechercher de carte</string> <string name="search_on_the_map_item">Rechercher de carte</string>
<string name="planning_trip_item">Préparer un trajet</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="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_visibility_txt">Láthatóság</string>
<string name="gpx_tags_txt">Címkék</string> <string name="gpx_tags_txt">Címkék</string>
@ -1968,10 +1969,10 @@
<string name="other_menu_group">Egyebek</string> <string name="other_menu_group">Egyebek</string>
<string name="plugins_menu_group">Bővítmények</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">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="navigation_item_description">Navigáció beállítása</string>
<string name="faq_item">GYIK</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="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="search_on_the_map_item">Keresés a térképen</string>
<string name="planning_trip_item">Utazás tervezése</string> <string name="planning_trip_item">Utazás tervezése</string>
@ -1983,4 +1984,13 @@
<string name="versions_item">Verziók</string> <string name="versions_item">Verziók</string>
<string name="feedback">szavazás</string> <string name="feedback">szavazás</string>
<string name="contact_us">Kapcsolat</string> <string name="contact_us">Kapcsolat</string>
<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> </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_description">Velg fargeskjema for veier:</string>
<string name="rendering_attr_roadColors_name">Veifargeskjema</string> <string name="rendering_attr_roadColors_name">Veifargeskjema</string>
<string name="map_widget_show_destination_arrow">Vis retning til målet</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="plugins_menu_group">Programtillegg</string>
<string name="first_usage_item">Første bruk</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="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="map_viewing_item">Kartvisning</string>
<string name="search_on_the_map_item">Kartsøking</string> <string name="search_on_the_map_item">Kartsøking</string>
@ -1434,4 +1435,9 @@
<string name="versions_item">Versjoner</string> <string name="versions_item">Versjoner</string>
<string name="contact_us">Kontakt oss</string> <string name="contact_us">Kontakt oss</string>
<string name="planning_trip_item">Planlegge en tur</string> <string name="planning_trip_item">Planlegge en tur</string>
<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> </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="layer_map_appearance">Configureer scherm</string>
<string name="show_lanes">Toon rijstroken</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="feedback">Commentaar</string>
<string name="contact_us">Neem contact op</string> <string name="contact_us">Neem contact op</string>
<string name="map_legend">Legenda</string> <string name="map_legend">Legenda</string>
<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> </resources>

View file

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

View file

@ -1932,7 +1932,7 @@
<string name="share_menu_location">Dela platsen</string> <string name="share_menu_location">Dela platsen</string>
<string name="shared_string_send">Sänd</string> <string name="shared_string_send">Sänd</string>
<string name="hillshade_layer_disabled">Skuggad relief-lager inaktiverat</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">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="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> <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_boat_storage">Boat storage</string>
<string name="poi_conveying_yes">Conveying: yes</string>
</resources> </resources>

View file

@ -281,7 +281,7 @@ public class AppInitializer implements IProgress {
@Override @Override
public String getTranslation(AbstractPoiType type) { public String getTranslation(AbstractPoiType type) {
if(type.getBaseLangType() != null) { if(type.getBaseLangType() != null) {
return getTranslation(type.getBaseLangType()) + "(" + getLangTranslation(type.getLang()) +")"; return getTranslation(type.getBaseLangType()) + " (" + getLangTranslation(type.getLang()).toLowerCase() +")";
} }
try { try {
Field f = R.string.class.getField("poi_" + type.getIconKeyName()); 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.OsmandSettings.AutoZoomMap;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.TargetPointsHelper.TargetPoint; import net.osmand.plus.TargetPointsHelper.TargetPoint;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.dashboard.DashboardOnMap; import net.osmand.plus.dashboard.DashboardOnMap;
import net.osmand.plus.mapcontextmenu.MapContextMenu;
import net.osmand.plus.routing.RoutingHelper; import net.osmand.plus.routing.RoutingHelper;
import net.osmand.plus.routing.RoutingHelper.IRouteInformationListener; import net.osmand.plus.routing.RoutingHelper.IRouteInformationListener;
import net.osmand.plus.views.AnimateDraggingMapThread; import net.osmand.plus.views.AnimateDraggingMapThread;
@ -32,6 +34,7 @@ public class MapViewTrackingUtilities implements OsmAndLocationListener, IMapLoc
private boolean sensorRegistered = false; private boolean sensorRegistered = false;
private OsmandMapTileView mapView; private OsmandMapTileView mapView;
private DashboardOnMap dashboard; private DashboardOnMap dashboard;
private MapContextMenu contextMenu;
private OsmandSettings settings; private OsmandSettings settings;
private OsmandApplication app; private OsmandApplication app;
private boolean isMapLinkedToLocation = true; private boolean isMapLinkedToLocation = true;
@ -85,12 +88,19 @@ public class MapViewTrackingUtilities implements OsmAndLocationListener, IMapLoc
if(dashboard != null) { if(dashboard != null) {
dashboard.updateCompassValue(val); dashboard.updateCompassValue(val);
} }
if(contextMenu != null) {
contextMenu.updateCompassValue(val);
}
} }
public void setDashboard(DashboardOnMap dashboard) { public void setDashboard(DashboardOnMap dashboard) {
this.dashboard = dashboard; this.dashboard = dashboard;
} }
public void setContextMenu(MapContextMenu contextMenu) {
this.contextMenu = contextMenu;
}
@Override @Override
public void updateLocation(Location location) { public void updateLocation(Location location) {
showViewAngle = false; showViewAngle = false;
@ -134,6 +144,9 @@ public class MapViewTrackingUtilities implements OsmAndLocationListener, IMapLoc
if(dashboard != null) { if(dashboard != null) {
dashboard.updateMyLocation(location); dashboard.updateMyLocation(location);
} }
if(contextMenu != null) {
contextMenu.updateMyLocation(location);
}
} }
private boolean isSmallSpeedForCompass(Location location) { private boolean isSmallSpeedForCompass(Location location) {
@ -170,8 +183,9 @@ public class MapViewTrackingUtilities implements OsmAndLocationListener, IMapLoc
} }
private void registerUnregisterSensor(net.osmand.Location location) { private void registerUnregisterSensor(net.osmand.Location location) {
int currentMapRotation = settings.ROTATE_MAP.get(); int currentMapRotation = settings.ROTATE_MAP.get();
boolean registerCompassListener = (showViewAngle && location != null) boolean registerCompassListener = ((showViewAngle || contextMenu != null) && location != null)
|| (currentMapRotation == OsmandSettings.ROTATE_MAP_COMPASS && !routePlanningMode); || (currentMapRotation == OsmandSettings.ROTATE_MAP_COMPASS && !routePlanningMode);
// show point view only if gps enabled // show point view only if gps enabled
if(sensorRegistered != registerCompassListener) { 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.mapcontextmenu.other.ShareMenu;
import net.osmand.plus.views.ContextMenuLayer; import net.osmand.plus.views.ContextMenuLayer;
import net.osmand.plus.views.OsmandMapLayer; import net.osmand.plus.views.OsmandMapLayer;
import net.osmand.util.MapUtils;
public class MapContextMenu extends MenuTitleController { public class MapContextMenu extends MenuTitleController {
@ -29,6 +30,10 @@ public class MapContextMenu extends MenuTitleController {
private LatLon mapCenter; private LatLon mapCenter;
private int mapPosition = 0; private int mapPosition = 0;
private LatLon myLocation;
private Float heading;
private boolean inLocationUpdate = false;
private int favActionIconId; private int favActionIconId;
@Override @Override
@ -97,6 +102,11 @@ public class MapContextMenu extends MenuTitleController {
} }
public boolean init(LatLon latLon, PointDescription pointDescription, Object object, boolean update) { public boolean init(LatLon latLon, PointDescription pointDescription, Object object, boolean update) {
if (myLocation == null) {
myLocation = getMapActivity().getMyApplication().getSettings().getLastKnownMapLocation();
}
if (!update && isVisible()) { if (!update && isVisible()) {
if (this.object == null || !this.object.equals(object)) { if (this.object == null || !this.object.equals(object)) {
hide(); hide();
@ -399,9 +409,59 @@ public class MapContextMenu extends MenuTitleController {
return menuController == null || menuController.buttonsVisible(); return menuController == null || menuController.buttonsVisible();
} }
public boolean displayDistanceDirection() {
return menuController != null && menuController.displayDistanceDirection();
}
public void updateData() { public void updateData() {
if (menuController != null) { if (menuController != null) {
menuController.updateData(); 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.OsmandSettings;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.dashboard.DashLocationFragment;
import net.osmand.plus.download.DownloadIndexesThread.DownloadEvents; import net.osmand.plus.download.DownloadIndexesThread.DownloadEvents;
import net.osmand.plus.mapcontextmenu.MenuController.TitleButtonController; import net.osmand.plus.mapcontextmenu.MenuController.TitleButtonController;
import net.osmand.plus.mapcontextmenu.MenuController.TitleProgressController; 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 class MapContextMenuFragment extends Fragment implements DownloadEvents {
public static final String TAG = "MapContextMenuFragment"; public static final String TAG = "MapContextMenuFragment";
public static final float FAB_PADDING_TOP_DP = 4f; public static final float FAB_PADDING_TOP_DP = 4f;
@ -84,6 +84,8 @@ public class MapContextMenuFragment extends Fragment implements DownloadEvents {
private int origMarkerY; private int origMarkerY;
private boolean customMapCenter; private boolean customMapCenter;
private int screenOrientation;
private class SingleTapConfirm implements OnGestureListener { private class SingleTapConfirm implements OnGestureListener {
@Override @Override
@ -529,7 +531,7 @@ public class MapContextMenuFragment extends Fragment implements DownloadEvents {
iconLayout.setVisibility(View.VISIBLE); iconLayout.setVisibility(View.VISIBLE);
} else if (iconId != 0) { } else if (iconId != 0) {
iconView.setImageDrawable(iconsCache.getIcon(iconId, 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); iconLayout.setVisibility(View.VISIBLE);
} else { } else {
iconLayout.setVisibility(View.GONE); 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 @Override
public void onDestroyView() { public void onDestroyView() {
super.onDestroyView(); super.onDestroyView();
@ -641,6 +658,15 @@ public class MapContextMenuFragment extends Fragment implements DownloadEvents {
line1.setText(menu.getTitleStr()); line1.setText(menu.getTitleStr());
// Text line 2 // 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); TextView line2 = (TextView) view.findViewById(R.id.context_menu_line2);
line2.setText(menu.getLocationStr()); line2.setText(menu.getLocationStr());
Drawable icon = menu.getSecondLineIcon(); 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() { private int getPosY() {
return getPosY(false); return getPosY(false);
} }
@ -870,5 +908,13 @@ public class MapContextMenuFragment extends Fragment implements DownloadEvents {
getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm); getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
return dm.heightPixels; 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; return menuType != MenuType.STANDARD;
} }
public boolean displayStreetNameinTitle() { public boolean displayStreetNameInTitle() {
return false;
}
public boolean displayDistanceDirection() {
return false; return false;
} }

View file

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

View file

@ -34,11 +34,11 @@ public class AmenityMenuBuilder extends MenuBuilder {
this.amenity = amenity; this.amenity = amenity;
} }
private void buildRow(View view, int iconId, String text, int textColor, boolean isWiki, boolean 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, textColor, isWiki, 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(); boolean light = app.getSettings().isLightContent();
LinearLayout ll = new LinearLayout(view.getContext()); LinearLayout ll = new LinearLayout(view.getContext());
@ -82,8 +82,15 @@ public class AmenityMenuBuilder extends MenuBuilder {
if (isWiki) { if (isWiki) {
textView.setMinLines(1); textView.setMinLines(1);
textView.setMaxLines(15); 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) { if (textColor > 0) {
textView.setTextColor(view.getResources().getColor(textColor)); textView.setTextColor(view.getResources().getColor(textColor));
} }
@ -91,7 +98,14 @@ public class AmenityMenuBuilder extends MenuBuilder {
textView.setOnClickListener(new View.OnClickListener() { textView.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { 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 key = e.getKey();
String vl = e.getValue(); String vl = e.getValue();
String textPrefix = "";
boolean isWiki = false; boolean isWiki = false;
boolean isText = false;
boolean needLinks = !"population".equals(key); boolean needLinks = !"population".equals(key);
if (amenity.getType().isWiki()) { if (amenity.getType().isWiki()) {
@ -189,21 +205,24 @@ public class AmenityMenuBuilder extends MenuBuilder {
if (pType.getParentType() != null && pType.getParentType() instanceof PoiType) { if (pType.getParentType() != null && pType.getParentType() instanceof PoiType) {
icon = getRowIcon(view.getContext(), ((PoiType) pType.getParentType()).getOsmTag() + "_" + pType.getOsmTag().replace(':', '_') + "_" + pType.getOsmValue()); icon = getRowIcon(view.getContext(), ((PoiType) pType.getParentType()).getOsmTag() + "_" + pType.getOsmTag().replace(':', '_') + "_" + pType.getOsmValue());
} }
if (pt instanceof PoiType && !((PoiType) pt).isText()) { if (!pType.isText()) {
vl = pt.getTranslation(); vl = pType.getTranslation();
} else { } 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 { } else {
vl = Algorithms.capitalizeFirstLetterAndLowercase(e.getKey()) + textPrefix = Algorithms.capitalizeFirstLetterAndLowercase(e.getKey());
": " + amenity.unzipContent(e.getValue()); vl = amenity.unzipContent(e.getValue());
} }
} }
if (icon != null) { if (icon != null) {
buildRow(view, icon, vl, textColor, isWiki, needLinks); buildRow(view, icon, vl, textPrefix, textColor, isWiki, isText, needLinks);
} else { } 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()); 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 @Override
public String getTypeStr() { public String getTypeStr() {
return recording.getType(getMapActivity()); 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); 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 @Override
public String getTypeStr() { public String getTypeStr() {
return pointTypeStr; return pointTypeStr;

View file

@ -48,9 +48,14 @@ public class FavouritePointMenuController extends MenuController {
return true; return true;
} }
@Override
public boolean displayDistanceDirection() {
return true;
}
@Override @Override
public Drawable getLeftIcon() { public Drawable getLeftIcon() {
return FavoriteImageDrawable.getOrCreate(getMapActivity().getMyApplication(), fav.getColor(), true); return FavoriteImageDrawable.getOrCreate(getMapActivity().getMyApplication(), fav.getColor(), false);
} }
@Override @Override
@ -68,9 +73,4 @@ public class FavouritePointMenuController extends MenuController {
return fav.getCategory().length() == 0 ? return fav.getCategory().length() == 0 ?
getMapActivity().getString(R.string.shared_string_favorites) : fav.getCategory(); 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()); return (typeName != null && !typeName.isEmpty());
} }
@Override
public boolean displayDistanceDirection() {
return true;
}
@Override @Override
public Drawable getLeftIcon() { public Drawable getLeftIcon() {
return getIcon(SearchHistoryFragment.getItemIcon(entry.getName())); return getIcon(SearchHistoryFragment.getItemIcon(entry.getName()));
@ -45,11 +50,6 @@ public class HistoryMenuController extends MenuController {
} }
} }
@Override
public String getNameStr() {
return getPointDescription().getName();
}
@Override @Override
public String getTypeStr() { public String getTypeStr() {
if (needTypeStr()) { if (needTypeStr()) {

View file

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

View file

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

View file

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

View file

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

View file

@ -47,6 +47,11 @@ public class WptPtMenuController extends MenuController {
return wpt.category != null; return wpt.category != null;
} }
@Override
public boolean displayDistanceDirection() {
return true;
}
@Override @Override
public Drawable getLeftIcon() { public Drawable getLeftIcon() {
return FavoriteImageDrawable.getOrCreate(getMapActivity().getMyApplication(), wpt.getColor(), true); return FavoriteImageDrawable.getOrCreate(getMapActivity().getMyApplication(), wpt.getColor(), true);
@ -65,9 +70,4 @@ public class WptPtMenuController extends MenuController {
public String getTypeStr() { public String getTypeStr() {
return wpt.category != null ? wpt.category : getMapActivity().getString(R.string.shared_string_none); 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) { if (group != null) {
color = group.color; color = group.color;
} }
return FavoriteImageDrawable.getOrCreate(getMapActivity(), color, true); return FavoriteImageDrawable.getOrCreate(getMapActivity(), color, false);
} }
@Override @Override

View file

@ -154,6 +154,7 @@ public class MapMultiSelectionMenu extends BaseMenuController {
private void clearMenu() { private void clearMenu() {
clearSelectedObjects(); clearSelectedObjects();
objects.clear(); objects.clear();
getMapActivity().refreshMap();
} }
public void show(LatLon latLon, Map<Object, IContextMenuProvider> selectedObjects) { 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); iconLayout.setVisibility(View.VISIBLE);
} else if (iconId != 0) { } else if (iconId != 0) {
iconView.setImageDrawable(iconsCache.getIcon(iconId, 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); iconLayout.setVisibility(View.VISIBLE);
} else { } else {
iconLayout.setVisibility(View.GONE); iconLayout.setVisibility(View.GONE);

View file

@ -1,10 +1,9 @@
package net.osmand.plus.views; package net.osmand.plus.views;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog; import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.BitmapFactory; import android.graphics.BitmapFactory;
import android.graphics.Canvas; import android.graphics.Canvas;
@ -18,8 +17,6 @@ import android.net.Uri;
import android.support.v4.view.MenuItemCompat; import android.support.v4.view.MenuItemCompat;
import android.support.v7.widget.PopupMenu; import android.support.v7.widget.PopupMenu;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.text.SpannableString;
import android.text.method.LinkMovementMethod;
import android.text.util.Linkify; import android.text.util.Linkify;
import android.util.TypedValue; import android.util.TypedValue;
import android.view.Gravity; import android.view.Gravity;
@ -27,6 +24,7 @@ import android.view.MenuItem;
import android.view.MenuItem.OnMenuItemClickListener; import android.view.MenuItem.OnMenuItemClickListener;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View; import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebSettings; import android.webkit.WebSettings;
import android.webkit.WebView; import android.webkit.WebView;
import android.widget.Button; import android.widget.Button;
@ -67,6 +65,8 @@ import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.TreeSet; import java.util.TreeSet;
import static android.util.TypedValue.COMPLEX_UNIT_DIP;
public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.IContextMenuProvider, public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.IContextMenuProvider,
MapTextProvider<Amenity>, IRouteInformationListener { MapTextProvider<Amenity>, IRouteInformationListener {
private static final int startZoom = 9; private static final int startZoom = 9;
@ -294,7 +294,7 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
return true; 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(); String lang = app.getSettings().MAP_PREFERRED_LOCALE.get();
if (a.getType().isWiki()) { if (a.getType().isWiki()) {
String preferredLang = lang; String preferredLang = lang;
@ -302,23 +302,13 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
preferredLang = app.getLanguage(); preferredLang = app.getLanguage();
} }
showWiki(ctx, app, a, preferredLang); 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) { static int getResIdFromAttribute(final Context ctx, final int attr) {
if (attr == 0) if (attr == 0)
return 0; return 0;
@ -356,7 +346,7 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
bottomBar.setOnClickListener(new View.OnClickListener() { bottomBar.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { 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); Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(article)); i.setData(Uri.parse(article));
ctx.startActivity(i); ctx.startActivity(i);
@ -409,9 +399,52 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
dialog.setCancelable(true); dialog.setCancelable(true);
dialog.show(); dialog.show();
// wv.setWebViewClient();
} }
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);
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, protected static void showPopupLangMenu(final Context ctx, Toolbar tb,
final OsmandApplication app, final Amenity a, final Dialog dialog) { final OsmandApplication app, final Amenity a, final Dialog dialog) {
@ -500,5 +533,12 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
public void routeWasCancelled() { 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()
);
}
} }