Merge branch 'master' of ssh://github.com/osmandapp/Osmand
This commit is contained in:
commit
1916954f69
15 changed files with 401 additions and 185 deletions
|
@ -4,7 +4,6 @@
|
|||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:descendantFocusability="blocksDescendants"
|
||||
android:orientation="vertical">
|
||||
|
||||
<include
|
||||
|
|
|
@ -2726,4 +2726,10 @@ Abasta l\'àrea: %1$s x %2$s</string>
|
|||
<string name="looking_for_tracks_with_waypoints">Recerca de traces amb fites</string>
|
||||
<string name="empty_state_osm_edits">Crea o modifica objectes OSM</string>
|
||||
<string name="empty_state_osm_edits_descr">Crea o modifica PDIs OSM, inicia o comenta Notes OSM i aporta traces GPX enregistrades.</string>
|
||||
<string name="shared_string_deleted">S\'ha esborrat</string>
|
||||
<string name="shared_string_edited">S\'ha editat</string>
|
||||
<string name="shared_string_added">S\'ha afegit</string>
|
||||
<string name="marker_activated">Marcador %s activat.</string>
|
||||
<string name="one_tap_active_descr">Premeu sobre el marcador en el mapa, arrossegueu-lo al capdavant dels marcadors actius, sense obrir el menú de context.</string>
|
||||
<string name="empty_state_av_notes">Preneu notes!</string>
|
||||
</resources>
|
||||
|
|
|
@ -2845,4 +2845,16 @@ Pokud potřebujete pomoci s aplikací OsmAnd, prosím kontaktujte naši podporu
|
|||
<string name="tap_on_map_to_hide_interface">Režim celé obrazovky</string>
|
||||
<string name="show_on_top_bar">Zobrazit na horní liště</string>
|
||||
<string name="mark_passed">Značka prošlá</string>
|
||||
<string name="empty_state_osm_edits_descr">Vytvořit nebo upravit OSM POI, otevřít nebo okomentovat OSM poznámky a přispět zaznamenanými GPX soubory.</string>
|
||||
<string name="shared_string_deleted">Odstraněné</string>
|
||||
<string name="shared_string_edited">Upravené</string>
|
||||
<string name="shared_string_added">Přidané</string>
|
||||
<string name="marker_activated">Značka %s aktivována.</string>
|
||||
<string name="one_tap_active_descr">Klepněte na značku na mapě, přesuňte ji na první místo v aktivních značkách bez otevření kontextové nabídky.</string>
|
||||
<string name="empty_state_av_notes">Dělejte si poznámky!</string>
|
||||
<string name="empty_state_av_notes_desc">Přidejte audio, video nebo fotografickou poznámku pro každý bod na mapě, pomocí nástroje nebo kontextového menu.</string>
|
||||
<string name="notes_by_date">Poznámky podle datumu</string>
|
||||
<string name="by_date">Podle datumu</string>
|
||||
<string name="by_type">Podle typu</string>
|
||||
<string name="empty_state_markers_active_desc">Klepnutím nebo přidržením označte místa, pak klepněte na tlačítko značky s vlajkou.</string>
|
||||
</resources>
|
||||
|
|
|
@ -2180,4 +2180,36 @@
|
|||
<string name="empty_state_osm_edits">יצירה או שינוי של עצמים ב־OSM</string>
|
||||
<string name="shared_string_deleted">נמחקה</string>
|
||||
<string name="shared_string_edited">נערכה</string>
|
||||
<string name="shared_string_added">נוספה</string>
|
||||
<string name="marker_activated">הסמן %s הופעל.</string>
|
||||
<string name="empty_state_av_notes">אפשר לשמור הערות!</string>
|
||||
<string name="empty_state_av_notes_desc">ניתן להוסיף הערה מסוג שמע, וידאו או תמונה לכל נקודה במפה באמצעות וידג׳ט או תפריט הקשר.</string>
|
||||
<string name="notes_by_date">הערות לפי תאריך</string>
|
||||
<string name="by_date">לפי תאריך</string>
|
||||
<string name="by_type">לפי סוג</string>
|
||||
<string name="subscribe_email_desc">ניתן להירשם לרשימת הדיוור שלנו כדי לקבל הנחות על היישומון ולקבל עוד 3 הורדות של מפות בחינם!</string>
|
||||
<string name="depth_contour_descr">ערכות של מפות שמכילות קווי מתאר של עומק הים ונקודות ימיות.</string>
|
||||
<string name="sea_depth_thanks">תודה לך על רכישת קווי המתאר של עומק הים!</string>
|
||||
<string name="index_item_depth_contours_osmand_ext">קווי מתאר של עומק הים</string>
|
||||
<string name="download_depth_countours">קווי מתאר של עומק הים</string>
|
||||
<string name="nautical_maps">מפות ימיות</string>
|
||||
<string name="do_not_show_startup_messages">לא להציג הודעות פתיחה</string>
|
||||
<string name="parking_options">אפשרויות חנייה</string>
|
||||
<string name="full_version_thanks">תודה לך על רכישת הגרסה המלאה של OsmAnd!</string>
|
||||
<string name="routing_attr_relief_smoothness_factor_hills_name">הררי</string>
|
||||
<string name="routing_attr_relief_smoothness_factor_plains_name">פחות הררי</string>
|
||||
<string name="routing_attr_relief_smoothness_factor_more_plains_name">מישור</string>
|
||||
<string name="routing_attr_driving_style_speed_name">נתיבים קצרים יותר</string>
|
||||
<string name="routing_attr_driving_style_balance_name">מאוזן</string>
|
||||
<string name="relief_smoothness_factor_descr">סוג שטח מועדף: מישורי או הררי.</string>
|
||||
<string name="shared_string_slope">מדרון</string>
|
||||
<string name="add_new_folder">הוספת תיקייה חדשה</string>
|
||||
<string name="points_delete_multiple_succesful">הנקודות נמחקו בהצלחה.</string>
|
||||
<string name="points_delete_multiple">פעולה זו תוביל למחיקתן של %1$d נקודות. להמשיך?</string>
|
||||
<string name="route_points_category_name">פניות שיש לקחת בנתיב הזה</string>
|
||||
<string name="gpx_track">מסלול</string>
|
||||
<string name="max_speed">מהירות מרבית</string>
|
||||
<string name="average_speed">מהירות ממוצעת</string>
|
||||
<string name="shared_string_time_moving">זמן תנועה</string>
|
||||
<string name="shared_string_max">מרבי</string>
|
||||
</resources>
|
||||
|
|
|
@ -3662,4 +3662,7 @@
|
|||
<string name="poi_enforcement_check">Требование: контроль</string>
|
||||
<string name="poi_payment_account_cards_no">Карточки не принимаются</string>
|
||||
<string name="poi_payment_prepaid_ticket_yes">Предоплаченные билеты</string>
|
||||
|
||||
<string name="poi_depot">Депо</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -938,7 +938,7 @@
|
|||
<string name="osb_comment_dialog_author">Автор</string>
|
||||
<string name="poi_edit_title">Редактирование POI</string>
|
||||
<string name="poi_create_title">Добавление POI</string>
|
||||
<string name="poi_error_poi_not_found">Узел не найден или удобство (amenity) состоит из нескольких узлов, что не поддерживается.</string>
|
||||
<string name="poi_error_poi_not_found">Узел не найден или объект состоит из нескольких узлов, что не поддерживается.</string>
|
||||
<string name="poi_remove_confirm_template">Вы действительно хотите удалить {0}?</string>
|
||||
<string name="poi_remove_title">Удаление POI</string>
|
||||
<string name="poi_remove_success">POI успешно удалена</string>
|
||||
|
|
|
@ -2871,4 +2871,17 @@ Pro praghere iscrie su còdighe intreu</string>
|
|||
<string name="active_markers_descr">Issèbera cantos indicadores de diretzione cheres ammustrare.</string>
|
||||
<string name="shared_string_more_without_dots">Àteru</string>
|
||||
<string name="looking_for_tracks_with_waypoints">Chirchende rastas cun puntos de coladòrgiu</string>
|
||||
<string name="empty_state_osm_edits">Crea o modìfica ogetos OSM</string>
|
||||
<string name="empty_state_osm_edits_descr">Crea o modìfica PDI OSM, aberende o cummentende notas OSM, e contribuende cun documentos GPX registrados.</string>
|
||||
<string name="shared_string_deleted">Iscantzelladu</string>
|
||||
<string name="shared_string_edited">Modificadu</string>
|
||||
<string name="shared_string_added">Annantu</string>
|
||||
<string name="marker_activated">Marcadore %s ativadu.</string>
|
||||
<string name="one_tap_active_descr">Incarca in unu marcadore in sa mapa, moe·lu in sa prima positzione in sos marcadores ativos, chene abèrrere su menù contestuale.</string>
|
||||
<string name="one_tap_active">Ativatzione cun un\'incarcu</string>
|
||||
<string name="empty_state_av_notes">Piga notas!</string>
|
||||
<string name="empty_state_av_notes_desc">Annanghe notas sonoras, vìdeos o fotografias a cada puntu in sa mapa, impreende su widget o su menù contestuale.</string>
|
||||
<string name="notes_by_date">Notas pro data</string>
|
||||
<string name="by_date">Pro data</string>
|
||||
<string name="by_type">Pro casta</string>
|
||||
</resources>
|
||||
|
|
|
@ -2898,8 +2898,18 @@ Koda predstavlja območje: %1$s x %2$s</string>
|
|||
<string name="make_active">Označi kot dejavno</string>
|
||||
<string name="appearance_on_the_map">Videz na zemljevidu</string>
|
||||
<string name="track_waypoints">Vmesne točke sledi</string>
|
||||
<string name="favourites_group">Skupina priljubljenih</string>
|
||||
<string name="favourites_group">Kategorija priljubljenih</string>
|
||||
<string name="add_group">Dodaj skupino</string>
|
||||
<string name="empty_state_markers_groups">Uvozi skupine</string>
|
||||
<string name="shared_string_paste">Prilepi</string>
|
||||
<string name="empty_state_osm_edits">Ustvari ali spremeni predmete OSM</string>
|
||||
<string name="shared_string_deleted">Izbrisano</string>
|
||||
<string name="shared_string_edited">Urejeno</string>
|
||||
<string name="shared_string_added">Dodano</string>
|
||||
<string name="by_date">Po datumu</string>
|
||||
<string name="by_type">Po vrsti</string>
|
||||
<string name="shared_string_more_without_dots">Več ...</string>
|
||||
<string name="shared_string_right">Desno</string>
|
||||
<string name="shared_string_left">Levo</string>
|
||||
<string name="show_number_pad">Pokaži številčnico</string>
|
||||
</resources>
|
||||
|
|
|
@ -1294,10 +1294,10 @@ Nyttjat utrymme är {1} MB.
|
|||
<string name="osmo_mode_off">Starta OsMo-session</string>
|
||||
<string name="use_points_as_intermediates">Beräkna rutt mellan punkter</string>
|
||||
|
||||
<string name="osmo_auto_send_locations_descr">Starta trippen automatiskt och skicka positioner när appen startats</string>
|
||||
<string name="osmo_auto_send_locations_descr">Starta trippen automatiskt och skicka positioner när appen startats.</string>
|
||||
<string name="osmo_auto_send_locations">Starta trippen automatiskt</string>
|
||||
<string name="osmo_tracker_id">Tracker-ID</string>
|
||||
<string name="osmo_tracker_id_descr">Tryck för att visa tracker-ID</string>
|
||||
<string name="osmo_tracker_id_descr">Tryck för att visa tracker-ID.</string>
|
||||
<string name="osmo_session_token">Sessionsmärke: %1$s</string>
|
||||
<string name="osmo_auth_pending">Väntar på godkännande…</string>
|
||||
<string name="osmo_locations_sent">Positioner skickade %1$d (i buffert %2$d)</string>
|
||||
|
@ -2067,7 +2067,7 @@ Long %2$s</string>
|
|||
<string name="poi_dialog_reopen">Öppna igen</string>
|
||||
<string name="shared_string_commit">Skicka in</string>
|
||||
|
||||
<string name="please_specify_poi_type_only_from_list">Ange rätt POI-typ eller hoppa över det</string>
|
||||
<string name="please_specify_poi_type_only_from_list">Ange rätt POI-typ eller hoppa över det.</string>
|
||||
<string name="rendering_attr_roadStyle_description">Vägtyp</string>
|
||||
<string name="osm_edit_reopened_note">Öppnat OSM-anteckning igen</string>
|
||||
<string name="routing_attr_avoid_stairs_name">Undvik trappor</string>
|
||||
|
@ -2082,11 +2082,11 @@ Long %2$s</string>
|
|||
<string name="av_video_quality_low">Lägsta kvalitet</string>
|
||||
<string name="av_video_quality_high">Högsta kvalitet</string>
|
||||
<string name="av_video_quality">Videokvalitet</string>
|
||||
<string name="av_video_quality_descr">Välj videokvalitet</string>
|
||||
<string name="av_video_quality_descr">Välj videokvalitet.</string>
|
||||
<string name="av_audio_format">Ljudformat</string>
|
||||
<string name="av_audio_format_descr">Välj ljudformat</string>
|
||||
<string name="av_audio_format_descr">Välj ljudformat.</string>
|
||||
<string name="av_audio_bitrate">Ljudsamplingshastighet</string>
|
||||
<string name="av_audio_bitrate_descr">Välj ljudupplösning</string>
|
||||
<string name="av_audio_bitrate_descr">Välj ljudupplösning.</string>
|
||||
<string name="no_address_found">Ingen adress angiven</string>
|
||||
<string name="looking_up_address">Slår upp adressen</string>
|
||||
<string name="rendering_attr_horseRoutes_name">Hästleder</string>
|
||||
|
@ -2101,8 +2101,8 @@ Long %2$s</string>
|
|||
<string name="no_camera_permission">Appen har inte tillräckliga behörigheter för att komma åt kameran.</string>
|
||||
<string name="no_microphone_permission">Appen har inte tillräckliga behörigheter för att komma åt mikrofonen.</string>
|
||||
<string name="select_voice_provider">Välj röstvägledning</string>
|
||||
<string name="select_voice_provider_descr">Välj eller hämta röstvägledning för ditt språk</string>
|
||||
<string name="impassable_road_desc">Välj de vägar du vill undvika under navigering</string>
|
||||
<string name="select_voice_provider_descr">Välj eller hämta röstvägledning för ditt språk.</string>
|
||||
<string name="impassable_road_desc">Välj de vägar du vill undvika under navigering.</string>
|
||||
<string name="shared_string_sound">Ljud</string>
|
||||
<string name="live_updates">Direkt-uppdateringar</string>
|
||||
<string name="available_maps">Tillgängliga kartor</string>
|
||||
|
@ -2148,7 +2148,7 @@ Long %2$s</string>
|
|||
<string name="select_map_markers">Välj kartmarkörer</string>
|
||||
<string name="shared_string_reverse_order">Omvänd ordning</string>
|
||||
|
||||
<string name="show_map_markers_description">Aktivera kartmarkörer</string>
|
||||
<string name="show_map_markers_description">Aktivera kartmarkörerna.</string>
|
||||
<string name="clear_active_markers_q">Vill du ta bort alla aktiva markörer?</string>
|
||||
<string name="clear_markers_history_q">Vill du radera kartmarkörshistoriken?</string>
|
||||
<string name="active_markers">Aktiva markörer</string>
|
||||
|
@ -2179,17 +2179,17 @@ Detta kräver {3} MB temporärt och {1} MB permanent.
|
|||
<string name="osm_editors_ranking">Ranglista OSM-redigerare</string>
|
||||
<string name="osm_live_subscription">OsmAnd Live-prenumeration</string>
|
||||
<string name="osm_live_subscribe_btn">Prenumerera</string>
|
||||
<string name="osm_live_email_desc">Vi behöver det för att ge er information och bidrag</string>
|
||||
<string name="osm_live_email_desc">Krävs för att ge er information om bidrag.</string>
|
||||
<string name="osm_live_user_public_name">Publikt namn</string>
|
||||
<string name="osm_live_hide_user_name">Visa inte mitt namn i rapporter</string>
|
||||
<string name="osm_live_month_cost">Månadskostnad</string>
|
||||
<string name="osm_live_month_cost_desc">Månadsbetalning</string>
|
||||
<string name="osm_live_month_cost_desc">Månadsbetalning.</string>
|
||||
<string name="osm_live_active">Aktiv</string>
|
||||
<string name="osm_live_not_active">Inaktiv</string>
|
||||
<string name="osm_live_enter_email">Ange en giltig e-postadress</string>
|
||||
<string name="osm_live_enter_user_name">Ange publikt namn</string>
|
||||
<string name="osm_live_thanks">Tack för att du prenumererar på live-uppdateringar!</string>
|
||||
<string name="osm_live_region_desc">Delar av din donation kommer att skickas till OSM-användare som skickar in kartändringar i det området</string>
|
||||
<string name="osm_live_region_desc">Delar av din donation kommer att skickas till OSM-användare som skickar in kartändringar i det området.</string>
|
||||
<string name="osm_live_subscription_settings">Prenumerationsinställningar</string>
|
||||
<string name="osm_live_ask_for_purchase">Köp en OsmAnd Live-prenumeration först</string>
|
||||
|
||||
|
@ -2219,18 +2219,18 @@ Detta kräver {3} MB temporärt och {1} MB permanent.
|
|||
\n och ännu mer …</string>
|
||||
<string name="map_widget_bearing">Relativ bäring</string>
|
||||
<string name="access_disable_offroute_recalc">Räkna inte om rutten när du lämnat den</string>
|
||||
<string name="access_disable_offroute_recalc_descr">Förhindrar automatiskt omberäkning av rutten när du lämnat den</string>
|
||||
<string name="access_disable_offroute_recalc_descr">Förhindrar automatiskt omberäkning av rutten när du lämnat den.</string>
|
||||
<string name="access_disable_wrong_direction_recalc">Ingen ny beräkning av rutten vid motsatt riktning</string>
|
||||
<string name="access_disable_wrong_direction_recalc_descr">Förhindrar automatisk omberäkning av rutten när du rör dig i motsatt riktning</string>
|
||||
<string name="access_disable_wrong_direction_recalc_descr">Förhindrar automatisk omberäkning av rutten när du rör dig i motsatt riktning.</string>
|
||||
<string name="access_smart_autoannounce">Smart auto-meddelande</string>
|
||||
<string name="access_smart_autoannounce_descr">Meddela endast när riktningen till målpunkten ändras</string>
|
||||
<string name="access_smart_autoannounce_descr">Meddela endast när riktningen till målpunkten ändras.</string>
|
||||
<string name="access_autoannounce_period">Period för auto-meddelande</string>
|
||||
<string name="access_autoannounce_period_descr">Minsta tidsintervall mellan meddelanden</string>
|
||||
<string name="access_autoannounce_period_descr">Minsta tidsintervall mellan meddelanden.</string>
|
||||
<string name="access_default_color">Standardfärg</string>
|
||||
<string name="access_category_choice">Välj kategori</string>
|
||||
<string name="access_hint_enter_name">Skriv in namn</string>
|
||||
<string name="access_hint_enter_category">Skriv in kategori</string>
|
||||
<string name="access_hint_enter_description">Skriv in beskrivning</string>
|
||||
<string name="access_hint_enter_description">Skriv in beskrivning.</string>
|
||||
<string name="access_map_linked_to_location">Kartan är länkad till platsen</string>
|
||||
<string name="access_collapsed_list">Minimerad lista</string>
|
||||
<string name="access_expanded_list">Expanderad lista</string>
|
||||
|
@ -2264,7 +2264,7 @@ Om du tycker om OsmAnd och OSM och vill stödja dem så är detta ett utmärkt s
|
|||
<string name="change_markers_position">Ändra markörens position</string>
|
||||
<string name="app_mode_bus">Buss</string>
|
||||
<string name="app_mode_train">Tåg</string>
|
||||
<string name="use_osm_live_routing_description">Aktivera navigering för OsmAnd Live-förändringar</string>
|
||||
<string name="use_osm_live_routing_description">Aktivera navigering för OsmAnd Live-förändringar.</string>
|
||||
<string name="use_osm_live_routing">OsmAnd Live-navigering</string>
|
||||
<string name="lang_kn">Kannada</string>
|
||||
<string name="lang_en_gb">Engelska (UK)</string>
|
||||
|
@ -2272,8 +2272,8 @@ Om du tycker om OsmAnd och OSM och vill stödja dem så är detta ett utmärkt s
|
|||
<string name="lang_hu_formal">Ungerska (formell)</string>
|
||||
<string name="lang_es_us">Spanska (amerikansk)</string>
|
||||
<string name="lang_ast">Asturiska</string>
|
||||
<string name="access_direction_audio_feedback_descr">Ange riktningen till målet med ljud</string>
|
||||
<string name="access_direction_haptic_feedback_descr">Ange riktningen till målet med vibration</string>
|
||||
<string name="access_direction_audio_feedback_descr">Ange riktningen till målet med ljud.</string>
|
||||
<string name="access_direction_haptic_feedback_descr">Ange riktningen till målet med vibration.</string>
|
||||
<string name="access_direction_audio_feedback">Riktning (ljudåterkoppling)</string>
|
||||
<string name="access_direction_haptic_feedback">Riktning (vibrationsåterkoppling)</string>
|
||||
<string name="shared_string_from">från</string>
|
||||
|
@ -2283,7 +2283,7 @@ Om du tycker om OsmAnd och OSM och vill stödja dem så är detta ett utmärkt s
|
|||
<string name="shared_string_is_open_24_7">Öppet 24/7</string>
|
||||
<string name="storage_directory_card">Minneskort</string>
|
||||
<string name="coords_format">Koordinatformat</string>
|
||||
<string name="coords_format_descr">Format för geografiska koordinater</string>
|
||||
<string name="coords_format_descr">Format för geografiska koordinater.</string>
|
||||
<string name="share_history_subject">delad via OsmAnd</string>
|
||||
<string name="search_categories">Kategorier</string>
|
||||
<string name="postcode">Postnummer</string>
|
||||
|
@ -2324,7 +2324,7 @@ Om du tycker om OsmAnd och OSM och vill stödja dem så är detta ett utmärkt s
|
|||
<string name="no_update_info">Visa inte uppdateringar</string>
|
||||
<string name="update_all_maps_now">Vill du uppdatera alla kartor nu?</string>
|
||||
<string name="routing_attr_short_way_name">Bränslesnål väg</string>
|
||||
<string name="routing_attr_short_way_description">Använd bränslesnål väg (oftast kortare)</string>
|
||||
<string name="routing_attr_short_way_description">Använd bränslesnål väg (oftast kortare).</string>
|
||||
<string name="shared_string_change">Ändra</string>
|
||||
<string name="get_started">Kom igång</string>
|
||||
<string name="replace_favorite_confirmation">Är du säker på att du vill ersätta favoriten %1$s?</string>
|
||||
|
@ -2340,11 +2340,11 @@ Om du tycker om OsmAnd och OSM och vill stödja dem så är detta ett utmärkt s
|
|||
<string name="search_my_location">Sök efter min plats</string>
|
||||
<string name="rendering_attr_contourColorScheme_description">Färgschema för konturer</string>
|
||||
<string name="save_track_min_speed">Minsta loggningshastighet</string>
|
||||
<string name="save_track_min_speed_descr">Filter: Välj minsta hastighet som startar loggning av en punkt</string>
|
||||
<string name="save_track_min_speed_descr">Filter: Välj minsta hastighet som startar loggning av en punkt.</string>
|
||||
<string name="save_track_min_distance">Loggning av minimal rörelse</string>
|
||||
<string name="save_track_min_distance_descr">Filter: Ange minsta avstånd från den senaste positionen för att en punkt ska loggas</string>
|
||||
<string name="save_track_min_distance_descr">Filter: Ange minsta avstånd från den senaste positionen för att en punkt ska loggas.</string>
|
||||
<string name="save_track_precision">Minsta loggningsprecision</string>
|
||||
<string name="save_track_precision_descr">Filter: Välj minsta precision som startar loggning av en punkt</string>
|
||||
<string name="save_track_precision_descr">Filter: Välj minsta precision som startar loggning av en punkt.</string>
|
||||
<string name="christmas_poi">Jul-POI</string>
|
||||
<string name="christmas_desc_q">Visa Jul-POI?</string>
|
||||
<string name="rendering_value_light_brown_name">Ljusbrun</string>
|
||||
|
@ -2357,9 +2357,9 @@ Om du tycker om OsmAnd och OSM och vill stödja dem så är detta ett utmärkt s
|
|||
<string name="shared_string_recorded">Inspelat</string>
|
||||
<string name="shared_string_record">Spela in</string>
|
||||
<string name="gpx_logging_no_data">Inga data</string>
|
||||
<string name="trip_rec_notification_settings_desc">Visa en systemavisering som gör att du kan starta trippinspelning</string>
|
||||
<string name="trip_rec_notification_settings_desc">Visa en systemavisering som gör att du kan starta trippinspelning.</string>
|
||||
<string name="routing_attr_allow_motorway_name">Tillåt motorvägar</string>
|
||||
<string name="routing_attr_allow_motorway_description">Tillåt motorvägar</string>
|
||||
<string name="routing_attr_allow_motorway_description">Tillåt motorvägar.</string>
|
||||
<string name="wiki_around">Närliggande Wikipedia-artiklar</string>
|
||||
<string name="search_map_hint">Sök stad eller region</string>
|
||||
<string name="route_roundabout_short">Tag den %1$d avfarten och kör</string>
|
||||
|
@ -2373,19 +2373,19 @@ Om du tycker om OsmAnd och OSM och vill stödja dem så är detta ett utmärkt s
|
|||
<string name="osmo_pause_location">Pausa</string>
|
||||
<string name="osmo_service_running">OsMo-tjänsten är igång</string>
|
||||
<string name="trip_rec_notification_settings">Aktivera snabbstart av inspelning</string>
|
||||
<string name="release_2_5">" • Klickbara ikoner på kartan
|
||||
\n
|
||||
\n • Kraftfull sökning med POI-filter: Sök t.ex. restauranger efter kvalitet, eller campingplatser med speciellta faciliteter
|
||||
\n
|
||||
\n • Ny Topo Map-stil för cyklister och vandrare
|
||||
\n
|
||||
\n • Förbättrad trippinspelning
|
||||
\n
|
||||
\n • Förbättrade navigationsaviseringar (Android Wear)
|
||||
\n
|
||||
\n • Många andra förbättringar och felkorrigeringar
|
||||
\n
|
||||
\n och mer … "</string>
|
||||
<string name="release_2_5">• Klickbara ikoner på kartan
|
||||
\n
|
||||
\n • Kraftfull sökning med POI-filter: Sök t.ex. restauranger efter kvalitet, eller campingplatser med speciellta faciliteter
|
||||
\n
|
||||
\n • Ny Topo Map-stil för cyklister och vandrare
|
||||
\n
|
||||
\n • Förbättrad trippinspelning
|
||||
\n
|
||||
\n • Förbättrade navigationsaviseringar (Android Wear)
|
||||
\n
|
||||
\n • Många andra förbättringar och felkorrigeringar
|
||||
\n
|
||||
\n och mer …</string>
|
||||
<string name="christmas_desc">Med tanke på den kommande julen och nyåret så kan du välja att visa POI som har med julen att göra: julgranar, julmarknader med mera.</string>
|
||||
<string name="rendering_attr_contourWidth_name">Bredd på konturlinjer</string>
|
||||
<string name="rendering_attr_hideWaterPolygons_description">Vatten</string>
|
||||
|
@ -2393,19 +2393,19 @@ Om du tycker om OsmAnd och OSM och vill stödja dem så är detta ett utmärkt s
|
|||
<string name="donation_to_osm_desc">En del av din donation kommer att skickas till OSM-användare som skickar in ändringar till OpenStreetMap. Prenumerationens kostnad fortsätter att vara densamma.</string>
|
||||
<string name="osm_live_subscription_desc">En prenumeration aktiverar uppdateringar varje timme, dag eller vecka och obegränsade nedladdningar av alla kartor globalt.</string>
|
||||
<string name="osm_live_banner_desc">Erhåll obegränsade nedladdningar av kartor samt kartuppdateringar oftare än en gång i månaden: varje vecka, varje dag eller varje timme.</string>
|
||||
<string name="release_2_4">" • Ny mycket kraftfull fritextsökning
|
||||
\n
|
||||
\n• Ljudsystem för bil/högtalarintegrering via Blåtand
|
||||
\n
|
||||
\n• Förbättrad vägvisning, meddelanderöst och körfält för omdirigering
|
||||
\n
|
||||
\n• Förbättrat transportlager med vägrendering.
|
||||
\n
|
||||
\n• Fler språkversioner och nu stöd för regionala språk
|
||||
\n
|
||||
\n• Många fler förbättringar och felkorrigeringar
|
||||
\n
|
||||
\nmed mera… "</string>
|
||||
<string name="release_2_4">\\022 Ny mycket kraftfull fritextsökning
|
||||
\n
|
||||
\n• Ljudsystem för bil/högtalarintegrering via Blåtand
|
||||
\n
|
||||
\n• Förbättrad vägvisning, meddelanderöst och körfält för omdirigering
|
||||
\n
|
||||
\n• Förbättrat transportlager med vägrendering.
|
||||
\n
|
||||
\n• Fler språkversioner och nu stöd för regionala språk
|
||||
\n
|
||||
\n• Många fler förbättringar och felkorrigeringar
|
||||
\n
|
||||
\nmed mera…</string>
|
||||
<string name="rendering_value_low_name">Låg</string>
|
||||
<string name="rendering_attr_contourWidth_description">Bredd på konturlinjer</string>
|
||||
<string name="rendering_value_high_name">Hög</string>
|
||||
|
@ -2477,7 +2477,7 @@ Vänligen tillhandahåll fullständig kod</string>
|
|||
<string name="average_speed">Medelhastighet</string>
|
||||
<string name="shared_string_time_moving">Tid i rörelse</string>
|
||||
<string name="max_speed">Maxhastighet</string>
|
||||
<string name="no_update_info_desc">Kontrollera inte efter uppdateringar om nya versioner eller rabatter relaterade till OsmAnd</string>
|
||||
<string name="no_update_info_desc">Kontrollera inte efter uppdateringar om nya versioner eller rabatter relaterade till OsmAnd.</string>
|
||||
<string name="lang_sr_latn">Serbiska (latin)</string>
|
||||
<string name="configure_screen_quick_action">Snabbåtgärd</string>
|
||||
|
||||
|
@ -2505,9 +2505,9 @@ Vänligen tillhandahåll fullständig kod</string>
|
|||
<string name="quick_action_map_overlay_switch">"Kartöverlägget har ändrats till \"%s\"."</string>
|
||||
<string name="quick_action_btn_tutorial_descr">Tryck länge och dra knappen för att ändra dess position på skärmen</string>
|
||||
<string name="routing_attr_height_obstacles_name">Använd höjddata</string>
|
||||
<string name="routing_attr_height_obstacles_description">Använd terränghöjddata från SRTM, ASTER och EU-DEM</string>
|
||||
<string name="routing_attr_height_obstacles_description">Använd terränghöjddata från SRTM, ASTER och EU-DEM.</string>
|
||||
|
||||
<string name="rendering_attr_depthContours_description">Visa djupkonturer och punkter</string>
|
||||
<string name="rendering_attr_depthContours_description">Visa djupkonturer och punkter.</string>
|
||||
<string name="shared_string_slope">Sluttning</string>
|
||||
<string name="altitude_range">Höjdområde</string>
|
||||
|
||||
|
@ -2516,7 +2516,7 @@ Vänligen tillhandahåll fullständig kod</string>
|
|||
<string name="driving_style_speed">Hastighet</string>
|
||||
|
||||
<string name="driving_style_safety">Säkerhet</string>
|
||||
<string name="relief_smoothness_factor_descr">Favoritterräng: slätt eller kuperat</string>
|
||||
<string name="relief_smoothness_factor_descr">Favoritterräng: slätt eller kuperat.</string>
|
||||
<string name="full_version_thanks">Tack för att du köpt den fullständiga versionen av OsmAnd!</string>
|
||||
<string name="routing_attr_relief_smoothness_factor_hills_name">Kuperat</string>
|
||||
<string name="routing_attr_relief_smoothness_factor_plains_name">Mindre kuperat</string>
|
||||
|
@ -2547,7 +2547,7 @@ Vänligen tillhandahåll fullständig kod</string>
|
|||
<string name="restart_search">Starta om sökningen</string>
|
||||
<string name="increase_search_radius">Utöka sökradien</string>
|
||||
<string name="nothing_found">Hittade ingenting :(</string>
|
||||
<string name="nothing_found_descr">Ändra sökord eller utöka sökradien</string>
|
||||
<string name="nothing_found_descr">Ändra sökord eller utöka sökradien.</string>
|
||||
<string name="sorted_by_distance">Sorterat efter avstånd</string>
|
||||
<string name="search_favorites">Sök favoriter</string>
|
||||
<string name="shared_string_plugin">Insticksmodul</string>
|
||||
|
@ -2564,7 +2564,7 @@ Vänligen tillhandahåll fullständig kod</string>
|
|||
<string name="shared_string_visible">Synlig</string>
|
||||
<string name="online_photos">Online-foton</string>
|
||||
<string name="shared_string_add_photos">Lägg till foton</string>
|
||||
<string name="no_photos_descr">Vi har inga foton för denna plats</string>
|
||||
<string name="no_photos_descr">Vi har inga foton från denna plats.</string>
|
||||
<string name="mapillary_widget">Mapillary-widget</string>
|
||||
<string name="mapillary">Mapillary</string>
|
||||
<string name="shared_string_install">Installera</string>
|
||||
|
@ -2583,7 +2583,7 @@ Vänligen tillhandahåll fullständig kod</string>
|
|||
<string name="shared_string_navigate">Navigera</string>
|
||||
<string name="shared_string_markers">Markörer</string>
|
||||
<string name="routing_attr_avoid_ice_roads_fords_name">Undvik isvägar och vadställen</string>
|
||||
<string name="routing_attr_avoid_ice_roads_fords_description">Undvik isvägar och vadställen</string>
|
||||
<string name="routing_attr_avoid_ice_roads_fords_description">Undvik isvägar och vadställen.</string>
|
||||
<string name="my_location">Min plats</string>
|
||||
<string name="shared_string_sort">Sortera</string>
|
||||
<string name="is_saved">har sparats</string>
|
||||
|
@ -2595,7 +2595,7 @@ Vänligen tillhandahåll fullständig kod</string>
|
|||
<string name="remove_from_map_markers">Tag bort från Kartmarkörer</string>
|
||||
<string name="shared_string_list">Lista</string>
|
||||
<string name="shared_string_groups">Grupper</string>
|
||||
<string name="passed">Passerade: %1$s</string>
|
||||
<string name="passed">Senast använt: %1$s</string>
|
||||
<string name="make_active">Gör aktiv</string>
|
||||
<string name="today">I dag</string>
|
||||
<string name="yesterday">I går</string>
|
||||
|
@ -2633,13 +2633,13 @@ Vänligen tillhandahåll fullständig kod</string>
|
|||
<string name="shared_string_finish">Avsluta</string>
|
||||
<string name="plan_route">Planera rutt</string>
|
||||
<string name="marker_save_as_track_descr">Exportera dina markörer till en fil:</string>
|
||||
<string name="group_will_be_removed_after_restart">Gruppen tas bort efter omstart</string>
|
||||
<string name="group_will_be_removed_after_restart">Gruppen tas bort efter nästa omstart av appen.</string>
|
||||
<string name="date_added">Datum tillagd</string>
|
||||
<string name="order_by">Ordna efter:</string>
|
||||
<string name="all_markers_moved_to_history">Alla kartmarkörer har flyttats till historiken</string>
|
||||
<string name="marker_moved_to_history">Kartmarkören har flyttats till historiken</string>
|
||||
<string name="do_not_use_animations">Använd inte animeringar</string>
|
||||
<string name="do_not_use_animations_descr">Inaktiverar animeringar i appen</string>
|
||||
<string name="do_not_use_animations_descr">Inaktiverar animeringar i appen.</string>
|
||||
<string name="line">Linje</string>
|
||||
<string name="save_as_route_point">Spara som ruttpunkter</string>
|
||||
<string name="save_as_line">Spara som linje</string>
|
||||
|
@ -2655,7 +2655,7 @@ Vänligen tillhandahåll fullständig kod</string>
|
|||
<string name="mapillary_image">Mapillary-bild</string>
|
||||
<string name="open_mapillary">Öppna Mapillary</string>
|
||||
<string name="improve_coverage_mapillary">Förbättra fototäckning med Mapillary</string>
|
||||
<string name="mapillary_widget_descr">Gör så att du snabbt kan bidraga till Mapillary</string>
|
||||
<string name="mapillary_widget_descr">Gör så att du snabbt kan bidraga till Mapillary.</string>
|
||||
<string name="descendingly">nedåt</string>
|
||||
<string name="ascendingly">uppåt</string>
|
||||
<string name="marker_moved_to_active">Kartmarkören flyttad till aktiva</string>
|
||||
|
@ -2665,8 +2665,8 @@ Vänligen tillhandahåll fullständig kod</string>
|
|||
<string name="quick_action_show_navigation_finish_dialog">Visa dialogen Navigation avslutad</string>
|
||||
<string name="store_tracks_in_monthly_directories">Spara inspelade spår i mappar efter månad</string>
|
||||
<string name="store_tracks_in_monthly_directories_descrp">Spara inspelade spår i undermappar efter inspelad månad (typ 2017-01).</string>
|
||||
<string name="mapillary_menu_descr_dates">Visa bilder tillagda under en speciell period.</string>
|
||||
<string name="mapillary_menu_descr_username">Visa bilder tillagda av en speciell användare.</string>
|
||||
<string name="mapillary_menu_descr_dates">Visa endast tillagda bilder</string>
|
||||
<string name="mapillary_menu_descr_username">Visa endast bilder tillagda av</string>
|
||||
<string name="import_gpx_file_description">kan importeras som favoritpunkter eller som spårfil.</string>
|
||||
<string name="import_as_gpx">Importera som GPX-fil</string>
|
||||
<string name="import_as_favorites">Importera som favorit</string>
|
||||
|
|
|
@ -2948,11 +2948,11 @@ OsmAnd (Automated Navigation Directions) 是一個地圖和導航的應用程式
|
|||
<string name="empty_state_markers_history">\@string/shared_string_history</string>
|
||||
<string name="shared_string_two">二</string>
|
||||
<string name="shared_string_one">一</string>
|
||||
<string name="distance_indication_descr">選擇如何顯示現行標記的距離。</string>
|
||||
<string name="distance_indication_descr">選擇如何顯示活動標記的距離。</string>
|
||||
<string name="active_markers_descr">選擇想顯示多少的方向指標。</string>
|
||||
<string name="empty_state_markers_history_desc">標記為已通過的標點將顯現在此螢幕上。</string>
|
||||
<string name="show_guide_line_descr">從您的位置顯示指引路線到現行的標記位置。</string>
|
||||
<string name="show_arrows_descr">顯示一個或兩個箭頭指示方向到現行的標記。</string>
|
||||
<string name="show_guide_line_descr">從您的位置顯示指引路線到活動標記位置。</string>
|
||||
<string name="show_arrows_descr">顯示一個或兩個箭頭指示方向到活動標記。</string>
|
||||
<string name="shared_string_more_without_dots">更多</string>
|
||||
<string name="looking_for_tracks_with_waypoints">尋找軌跡跟航點</string>
|
||||
<string name="empty_state_osm_edits">建立或修改 OSM 物件</string>
|
||||
|
|
|
@ -3634,4 +3634,6 @@
|
|||
|
||||
<string name="poi_charging_station_filter">Charging station</string>
|
||||
|
||||
<string name="poi_depot">Depot</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -13,6 +13,7 @@ import android.webkit.WebView;
|
|||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import net.osmand.AndroidUtils;
|
||||
import net.osmand.plus.OsmandPlugin;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.activities.MapActivity;
|
||||
|
@ -40,6 +41,7 @@ public class ContextMenuCardDialogFragment extends BaseOsmAndFragment {
|
|||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
View view = inflater.inflate(R.layout.context_menu_card_dialog, container, false);
|
||||
AndroidUtils.addStatusBarPadding21v(getActivity(), view);
|
||||
if (dialog.getType() == ContextMenuCardDialog.CardDialogType.MAPILLARY) {
|
||||
view.findViewById(R.id.dialog_layout)
|
||||
.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.mapillary_action_bar));
|
||||
|
@ -119,11 +121,6 @@ public class ContextMenuCardDialogFragment extends BaseOsmAndFragment {
|
|||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isFullScreenAllowed() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void showInstance(ContextMenuCardDialog menu) {
|
||||
ContextMenuCardDialogFragment fragment = new ContextMenuCardDialogFragment();
|
||||
fragment.dialog = menu;
|
||||
|
|
|
@ -18,7 +18,6 @@ import android.view.LayoutInflater;
|
|||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.Window;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
|
@ -265,10 +264,10 @@ public class MapMarkersDialogFragment extends android.support.v4.app.DialogFragm
|
|||
|
||||
public void blurStatusBar() {
|
||||
if (Build.VERSION.SDK_INT >= 21) {
|
||||
Window window = getDialog().getWindow();
|
||||
if (window != null) {
|
||||
statusBarColor = window.getStatusBarColor();
|
||||
window.setStatusBarColor(ContextCompat.getColor(getActivity(),
|
||||
Dialog dialog = getDialog();
|
||||
if (dialog != null && dialog.getWindow() != null) {
|
||||
statusBarColor = dialog.getWindow().getStatusBarColor();
|
||||
dialog.getWindow().setStatusBarColor(ContextCompat.getColor(getActivity(),
|
||||
lightTheme ? R.color.status_bar_dim_light : R.color.status_bar_dim_dark));
|
||||
}
|
||||
}
|
||||
|
@ -276,9 +275,9 @@ public class MapMarkersDialogFragment extends android.support.v4.app.DialogFragm
|
|||
|
||||
public void clearStatusBar() {
|
||||
if (Build.VERSION.SDK_INT >= 21 && statusBarColor != -1) {
|
||||
Window window = getDialog().getWindow();
|
||||
if (window != null) {
|
||||
window.setStatusBarColor(statusBarColor);
|
||||
Dialog dialog = getDialog();
|
||||
if (dialog != null && dialog.getWindow() != null) {
|
||||
dialog.getWindow().setStatusBarColor(statusBarColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,14 +1,21 @@
|
|||
package net.osmand.plus.osmedit;
|
||||
|
||||
import android.graphics.Typeface;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.system.Os;
|
||||
import android.text.SpannableString;
|
||||
import android.text.TextUtils;
|
||||
import android.text.style.StyleSpan;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import net.osmand.osm.PoiType;
|
||||
|
@ -20,18 +27,25 @@ import net.osmand.util.Algorithms;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class OsmEditsAdapter extends ArrayAdapter<OsmPoint> {
|
||||
public class OsmEditsAdapter extends ArrayAdapter<Object> {
|
||||
|
||||
public static final int TYPE_HEADER = 0;
|
||||
private static final int TYPE_ITEM = 1;
|
||||
private static final int TYPE_COUNT = 2;
|
||||
|
||||
private OsmandApplication app;
|
||||
|
||||
private List<Object> items;
|
||||
private boolean selectionMode;
|
||||
private List<OsmPoint> selectedOsmEdits;
|
||||
private boolean portrait;
|
||||
|
||||
private OsmEditsAdapterListener listener;
|
||||
|
||||
public OsmEditsAdapter(OsmandApplication app, @NonNull List<OsmPoint> points) {
|
||||
super(app, 0, points);
|
||||
public OsmEditsAdapter(OsmandApplication app, @NonNull List<Object> items) {
|
||||
super(app, 0, items);
|
||||
this.app = app;
|
||||
this.items = items;
|
||||
}
|
||||
|
||||
public boolean isSelectionMode() {
|
||||
|
@ -46,6 +60,10 @@ public class OsmEditsAdapter extends ArrayAdapter<OsmPoint> {
|
|||
this.selectedOsmEdits = selectedOsmEdits;
|
||||
}
|
||||
|
||||
public void setPortrait(boolean portrait) {
|
||||
this.portrait = portrait;
|
||||
}
|
||||
|
||||
public void setAdapterListener(OsmEditsAdapterListener listener) {
|
||||
this.listener = listener;
|
||||
}
|
||||
|
@ -53,69 +71,173 @@ public class OsmEditsAdapter extends ArrayAdapter<OsmPoint> {
|
|||
@NonNull
|
||||
@Override
|
||||
public View getView(int position, View convertView, @NonNull ViewGroup parent) {
|
||||
View view = convertView;
|
||||
if (view == null) {
|
||||
view = LayoutInflater.from(getContext()).inflate(R.layout.note_list_item, parent, false);
|
||||
OsmEditViewHolder holder = new OsmEditViewHolder(view);
|
||||
view.setTag(holder);
|
||||
}
|
||||
final OsmPoint osmEdit = getItem(position);
|
||||
|
||||
if (osmEdit != null) {
|
||||
final OsmEditViewHolder holder = (OsmEditViewHolder) view.getTag();
|
||||
|
||||
holder.titleTextView.setText(OsmEditingPlugin.getName(osmEdit));
|
||||
holder.descriptionTextView.setText(getDescription(osmEdit));
|
||||
Drawable icon = getIcon(osmEdit);
|
||||
if (icon != null) {
|
||||
holder.icon.setImageDrawable(icon);
|
||||
if (portrait) {
|
||||
if (convertView == null) {
|
||||
if (position == 0) {
|
||||
convertView = LayoutInflater.from(getContext()).inflate(R.layout.list_item_header, parent, false);
|
||||
HeaderViewHolder holder = new HeaderViewHolder(convertView);
|
||||
convertView.setTag(holder);
|
||||
} else {
|
||||
convertView = LayoutInflater.from(getContext()).inflate(R.layout.note_list_item, parent, false);
|
||||
OsmEditViewHolder holder = new OsmEditViewHolder(convertView);
|
||||
convertView.setTag(holder);
|
||||
}
|
||||
}
|
||||
if (selectionMode) {
|
||||
holder.optionsImageButton.setVisibility(View.GONE);
|
||||
holder.selectCheckBox.setVisibility(View.VISIBLE);
|
||||
holder.selectCheckBox.setChecked(selectedOsmEdits.contains(osmEdit));
|
||||
holder.icon.setVisibility(View.GONE);
|
||||
holder.selectCheckBox.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (listener != null) {
|
||||
listener.onItemSelect(osmEdit, holder.selectCheckBox.isChecked());
|
||||
}
|
||||
}
|
||||
});
|
||||
if (position == 0) {
|
||||
bindHeaderViewHolder((HeaderViewHolder) convertView.getTag());
|
||||
} else {
|
||||
holder.icon.setVisibility(View.VISIBLE);
|
||||
holder.optionsImageButton.setVisibility(View.VISIBLE);
|
||||
holder.selectCheckBox.setVisibility(View.GONE);
|
||||
final Object item = getItem(position);
|
||||
if (item instanceof OsmPoint) {
|
||||
final OsmEditViewHolder holder = (OsmEditViewHolder) convertView.getTag();
|
||||
bindOsmEditViewHolder(holder, (OsmPoint) item, position);
|
||||
}
|
||||
}
|
||||
|
||||
holder.optionsImageButton.setImageDrawable(app.getIconsCache().getThemedIcon(R.drawable.ic_overflow_menu_white));
|
||||
holder.optionsImageButton.setOnClickListener(new View.OnClickListener() {
|
||||
return convertView;
|
||||
} else {
|
||||
int margin = app.getResources().getDimensionPixelSize(R.dimen.content_padding);
|
||||
int sideMargin = app.getResources().getDisplayMetrics().widthPixels / 10;
|
||||
|
||||
FrameLayout fl = new FrameLayout(getContext());
|
||||
LinearLayout ll = new LinearLayout(getContext());
|
||||
ll.setOrientation(LinearLayout.VERTICAL);
|
||||
ll.setBackgroundResource(app.getSettings().isLightContent() ? R.drawable.bg_card_light : R.drawable.bg_card_dark);
|
||||
fl.addView(ll);
|
||||
((FrameLayout.LayoutParams) ll.getLayoutParams()).setMargins(sideMargin, margin, sideMargin, margin);
|
||||
|
||||
HeaderViewHolder headerViewHolder = new HeaderViewHolder(LayoutInflater.from(getContext()).inflate(R.layout.list_item_header, parent, false));
|
||||
bindHeaderViewHolder(headerViewHolder);
|
||||
ll.addView(headerViewHolder.mainView);
|
||||
|
||||
for (int i = 0; i < items.size(); i++) {
|
||||
Object item = getItem(i);
|
||||
if (item instanceof OsmPoint) {
|
||||
OsmEditViewHolder viewHolder = new OsmEditViewHolder(LayoutInflater.from(getContext()).inflate(R.layout.note_list_item, parent, false));
|
||||
bindOsmEditViewHolder(viewHolder, (OsmPoint) item, i);
|
||||
ll.addView(viewHolder.mainView);
|
||||
}
|
||||
}
|
||||
|
||||
return fl;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
if (portrait) {
|
||||
return super.getCount();
|
||||
} else {
|
||||
return getHeadersCount();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
Object item = getItem(position);
|
||||
if (item instanceof OsmPoint) {
|
||||
return TYPE_ITEM;
|
||||
}
|
||||
return (int) item;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getViewTypeCount() {
|
||||
return TYPE_COUNT;
|
||||
}
|
||||
|
||||
private int getHeadersCount() {
|
||||
int count = 0;
|
||||
for (int i = 0; i < items.size(); i++) {
|
||||
Object item = items.get(i);
|
||||
if (item instanceof Integer) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
private void bindHeaderViewHolder(final HeaderViewHolder holder) {
|
||||
holder.topDivider.setVisibility(portrait ? View.VISIBLE : View.GONE);
|
||||
holder.title.setText(R.string.your_edits);
|
||||
holder.checkBox.setChecked(isAllSelected());
|
||||
if (selectionMode) {
|
||||
holder.checkBox.setVisibility(View.VISIBLE);
|
||||
holder.checkBox.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (listener != null) {
|
||||
listener.onOptionsClick(osmEdit);
|
||||
listener.onHeaderCheckboxClick(holder.checkBox.isChecked());
|
||||
}
|
||||
}
|
||||
});
|
||||
holder.mainView.setOnClickListener(new View.OnClickListener() {
|
||||
} else {
|
||||
holder.checkBox.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
private void bindOsmEditViewHolder(final OsmEditViewHolder holder, final OsmPoint osmEdit, int position) {
|
||||
holder.titleTextView.setText(getTitle(osmEdit));
|
||||
holder.descriptionTextView.setText(getDescription(osmEdit));
|
||||
Drawable icon = getIcon(osmEdit);
|
||||
if (icon != null) {
|
||||
holder.icon.setImageDrawable(icon);
|
||||
}
|
||||
if (selectionMode) {
|
||||
holder.optionsImageButton.setVisibility(View.GONE);
|
||||
holder.selectCheckBox.setVisibility(View.VISIBLE);
|
||||
holder.selectCheckBox.setChecked(selectedOsmEdits.contains(osmEdit));
|
||||
holder.icon.setVisibility(View.GONE);
|
||||
holder.selectCheckBox.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (selectionMode) {
|
||||
holder.selectCheckBox.performClick();
|
||||
} else {
|
||||
if (listener != null) {
|
||||
listener.onItemShowMap(osmEdit);
|
||||
}
|
||||
if (listener != null) {
|
||||
listener.onItemSelect(osmEdit, holder.selectCheckBox.isChecked());
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
boolean showDivider = getCount() > 1 && position != getCount() - 1;
|
||||
holder.bottomDivider.setVisibility(showDivider ? View.VISIBLE : View.GONE);
|
||||
} else {
|
||||
holder.icon.setVisibility(View.VISIBLE);
|
||||
holder.optionsImageButton.setVisibility(View.VISIBLE);
|
||||
holder.selectCheckBox.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
return view;
|
||||
holder.optionsImageButton.setImageDrawable(app.getIconsCache().getThemedIcon(R.drawable.ic_overflow_menu_white));
|
||||
holder.optionsImageButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (listener != null) {
|
||||
listener.onOptionsClick(osmEdit);
|
||||
}
|
||||
}
|
||||
});
|
||||
holder.mainView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (selectionMode) {
|
||||
holder.selectCheckBox.performClick();
|
||||
} else {
|
||||
if (listener != null) {
|
||||
listener.onItemShowMap(osmEdit);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
boolean showDivider = getItemsCount() > 1 && position != getItemsCount() - 1;
|
||||
holder.bottomDivider.setVisibility(showDivider ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
private int getItemsCount() {
|
||||
return items.size();
|
||||
}
|
||||
|
||||
private SpannableString getTitle(OsmPoint osmPoint) {
|
||||
SpannableString title = new SpannableString(OsmEditingPlugin.getName(osmPoint));
|
||||
if (TextUtils.isEmpty(title)) {
|
||||
title = SpannableString.valueOf(getCategory(osmPoint));
|
||||
title.setSpan(new StyleSpan(Typeface.ITALIC), 0, title.length(), 0);
|
||||
}
|
||||
return title;
|
||||
}
|
||||
|
||||
private Drawable getIcon(OsmPoint point) {
|
||||
|
@ -158,6 +280,26 @@ public class OsmEditsAdapter extends ArrayAdapter<OsmPoint> {
|
|||
return null;
|
||||
}
|
||||
|
||||
private boolean isAllSelected() {
|
||||
for (int i = 0; i < items.size(); i++) {
|
||||
Object item = items.get(i);
|
||||
if (item instanceof OsmPoint) {
|
||||
if (!selectedOsmEdits.contains(item)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private String getCategory(OsmPoint point) {
|
||||
String category = "";
|
||||
if (point.getGroup() == OsmPoint.Group.POI) {
|
||||
category = ((OpenstreetmapPoint) point).getEntity().getTag(EditPoiData.POI_TYPE_TAG);
|
||||
}
|
||||
return category;
|
||||
}
|
||||
|
||||
private String getDescription(OsmPoint point) {
|
||||
String action = "";
|
||||
if (point.getAction() == OsmPoint.Action.CREATE) {
|
||||
|
@ -170,10 +312,7 @@ public class OsmEditsAdapter extends ArrayAdapter<OsmPoint> {
|
|||
action = getContext().getString(R.string.shared_string_edited);
|
||||
}
|
||||
|
||||
String category = "";
|
||||
if (point.getGroup() == OsmPoint.Group.POI) {
|
||||
category = ((OpenstreetmapPoint) point).getEntity().getTag(EditPoiData.POI_TYPE_TAG);
|
||||
}
|
||||
String category = getCategory(point);
|
||||
|
||||
String comment = "";
|
||||
if (point.getGroup() == OsmPoint.Group.BUG) {
|
||||
|
@ -197,6 +336,20 @@ public class OsmEditsAdapter extends ArrayAdapter<OsmPoint> {
|
|||
return description;
|
||||
}
|
||||
|
||||
private class HeaderViewHolder {
|
||||
View mainView;
|
||||
View topDivider;
|
||||
CheckBox checkBox;
|
||||
TextView title;
|
||||
|
||||
HeaderViewHolder(View view) {
|
||||
mainView = view;
|
||||
topDivider = view.findViewById(R.id.top_divider);
|
||||
checkBox = (CheckBox) view.findViewById(R.id.check_box);
|
||||
title = (TextView) view.findViewById(R.id.title_text_view);
|
||||
}
|
||||
}
|
||||
|
||||
private class OsmEditViewHolder {
|
||||
View mainView;
|
||||
ImageView icon;
|
||||
|
@ -219,6 +372,8 @@ public class OsmEditsAdapter extends ArrayAdapter<OsmPoint> {
|
|||
|
||||
public interface OsmEditsAdapterListener {
|
||||
|
||||
void onHeaderCheckboxClick(boolean checked);
|
||||
|
||||
void onItemSelect(OsmPoint point, boolean checked);
|
||||
|
||||
void onItemShowMap(OsmPoint point);
|
||||
|
|
|
@ -21,7 +21,6 @@ import android.view.View;
|
|||
import android.view.ViewGroup;
|
||||
import android.view.ViewStub;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ListView;
|
||||
|
@ -64,7 +63,6 @@ public class OsmEditsFragment extends OsmAndListFragment implements SendPoiDialo
|
|||
private OsmEditingPlugin plugin;
|
||||
|
||||
private View footerView;
|
||||
private View headerView;
|
||||
private View emptyView;
|
||||
|
||||
private List<OsmPoint> osmEdits = new ArrayList<>();
|
||||
|
@ -133,6 +131,12 @@ public class OsmEditsFragment extends OsmAndListFragment implements SendPoiDialo
|
|||
return listAdapter;
|
||||
}
|
||||
|
||||
private void recreateAdapterData() {
|
||||
listAdapter.clear();
|
||||
listAdapter.addAll(createItemsList());
|
||||
listAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
private void selectAll() {
|
||||
for (int i = 0; i < osmEdits.size(); i++) {
|
||||
OsmPoint point = osmEdits.get(i);
|
||||
|
@ -285,7 +289,7 @@ public class OsmEditsFragment extends OsmAndListFragment implements SendPoiDialo
|
|||
|
||||
private void updateSelectionMode(ActionMode m) {
|
||||
updateSelectionTitle(m);
|
||||
refreshSelectAll();
|
||||
listAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
private void updateSelectionTitle(ActionMode m) {
|
||||
|
@ -296,28 +300,9 @@ public class OsmEditsFragment extends OsmAndListFragment implements SendPoiDialo
|
|||
}
|
||||
}
|
||||
|
||||
private void refreshSelectAll() {
|
||||
View view = getView();
|
||||
if (view == null) {
|
||||
return;
|
||||
}
|
||||
CheckBox selectAll = (CheckBox) view.findViewById(R.id.check_box);
|
||||
for (int i = 0; i < osmEdits.size(); i++) {
|
||||
OsmPoint point = osmEdits.get(i);
|
||||
if (!osmEditsSelected.contains(point)) {
|
||||
selectAll.setChecked(false);
|
||||
return;
|
||||
}
|
||||
}
|
||||
selectAll.setChecked(true);
|
||||
}
|
||||
|
||||
private void enableSelectionMode(boolean selectionMode) {
|
||||
listAdapter.setSelectionMode(selectionMode);
|
||||
//noinspection ConstantConditions
|
||||
if (headerView != null) {
|
||||
headerView.findViewById(R.id.check_box).setVisibility(selectionMode ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
((FavoritesActivity) getActivity()).setToolbarVisibility(!selectionMode && AndroidUiHelper.isOrientationPortrait(getActivity()));
|
||||
((FavoritesActivity) getActivity()).updateListViewFooter(footerView);
|
||||
}
|
||||
|
@ -348,6 +333,7 @@ public class OsmEditsFragment extends OsmAndListFragment implements SendPoiDialo
|
|||
}
|
||||
|
||||
private void fetchData() {
|
||||
boolean portrait = AndroidUiHelper.isOrientationPortrait(getActivity());
|
||||
osmEdits = new ArrayList<>();
|
||||
List<OpenstreetmapPoint> l1 = plugin.getDBPOI().getOpenstreetmapPoints();
|
||||
List<OsmNotesPoint> l2 = plugin.getDBBug().getOsmbugsPoints();
|
||||
|
@ -357,32 +343,24 @@ public class OsmEditsFragment extends OsmAndListFragment implements SendPoiDialo
|
|||
listView.setDivider(null);
|
||||
listView.setEmptyView(emptyView);
|
||||
|
||||
if (osmEdits.size() > 0) {
|
||||
if (footerView == null) {
|
||||
footerView = getActivity().getLayoutInflater().inflate(R.layout.list_shadow_footer, listView, false);
|
||||
listView.addFooterView(footerView);
|
||||
}
|
||||
if (headerView == null) {
|
||||
headerView = getActivity().getLayoutInflater().inflate(R.layout.list_item_header, listView, false);
|
||||
listView.addHeaderView(headerView);
|
||||
((TextView) headerView.findViewById(R.id.title_text_view)).setText(R.string.your_edits);
|
||||
final CheckBox selectAll = (CheckBox) headerView.findViewById(R.id.check_box);
|
||||
selectAll.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (selectAll.isChecked()) {
|
||||
selectAll();
|
||||
} else {
|
||||
deselectAll();
|
||||
}
|
||||
updateSelectionTitle(actionMode);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (osmEdits.size() > 0 && footerView == null && portrait) {
|
||||
footerView = getActivity().getLayoutInflater().inflate(R.layout.list_shadow_footer, listView, false);
|
||||
listView.addFooterView(footerView);
|
||||
}
|
||||
listAdapter = new OsmEditsAdapter(getMyApplication(), osmEdits);
|
||||
List<Object> items = createItemsList();
|
||||
listAdapter = new OsmEditsAdapter(getMyApplication(), items);
|
||||
listAdapter.setSelectedOsmEdits(osmEditsSelected);
|
||||
listAdapter.setAdapterListener(new OsmEditsAdapter.OsmEditsAdapterListener() {
|
||||
@Override
|
||||
public void onHeaderCheckboxClick(boolean checked) {
|
||||
if (checked) {
|
||||
selectAll();
|
||||
} else {
|
||||
deselectAll();
|
||||
}
|
||||
updateSelectionTitle(actionMode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemSelect(OsmPoint point, boolean checked) {
|
||||
if (checked) {
|
||||
|
@ -403,9 +381,19 @@ public class OsmEditsFragment extends OsmAndListFragment implements SendPoiDialo
|
|||
openPopUpMenu(note);
|
||||
}
|
||||
});
|
||||
listAdapter.setPortrait(portrait);
|
||||
listView.setAdapter(listAdapter);
|
||||
}
|
||||
|
||||
private List<Object> createItemsList() {
|
||||
List<Object> items = new ArrayList<>();
|
||||
if (!osmEdits.isEmpty()) {
|
||||
items.add(OsmEditsAdapter.TYPE_HEADER);
|
||||
items.addAll(osmEdits);
|
||||
}
|
||||
return items;
|
||||
}
|
||||
|
||||
private void showBugDialog(final OsmNotesPoint point) {
|
||||
final View view = LayoutInflater.from(getActivity()).inflate(R.layout.open_bug, null);
|
||||
view.findViewById(R.id.user_name_field).setVisibility(View.GONE);
|
||||
|
@ -527,7 +515,7 @@ public class OsmEditsFragment extends OsmAndListFragment implements SendPoiDialo
|
|||
osmEdits.remove(osmPoint);
|
||||
}
|
||||
}
|
||||
listAdapter.notifyDataSetChanged();
|
||||
recreateAdapterData();
|
||||
}
|
||||
};
|
||||
dialog.show(getActivity().getSupportFragmentManager(), ProgressDialogFragment.TAG);
|
||||
|
@ -546,7 +534,7 @@ public class OsmEditsFragment extends OsmAndListFragment implements SendPoiDialo
|
|||
|
||||
private void deletePoint(OsmPoint osmPoint) {
|
||||
osmEdits.remove(osmPoint);
|
||||
listAdapter.notifyDataSetChanged();
|
||||
recreateAdapterData();
|
||||
}
|
||||
|
||||
private void notifyDataSetChanged() {
|
||||
|
|
Loading…
Reference in a new issue