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

This commit is contained in:
Victor Shcherb 2014-06-25 17:31:06 +02:00
commit 198d4f6201
14 changed files with 286 additions and 160 deletions

View file

@ -1,27 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:stretchColumns="1">
<TableRow>
<TextView android:id="@+id/TextView" android:layout_marginLeft="5dp"
android:layout_height="wrap_content" android:text="@string/osb_comment_dialog_message"></TextView>
<EditText android:text="" android:id="@+id/BugMessage" android:minLines="3" android:layout_marginLeft="5dp" android:layout_marginRight="5dp"
android:layout_height="wrap_content" ></EditText>
</TableRow>
<TableRow>
<TextView android:id="@+id/TextView" android:layout_marginLeft="5dp"
android:layout_height="wrap_content" android:text="@string/osb_comment_dialog_author"></TextView>
<EditText android:id="@+id/AuthorName" android:layout_marginLeft="5dp" android:layout_marginRight="5dp"
android:layout_height="wrap_content" android:text="NoName"></EditText>
</TableRow>
<TableRow>
<TextView android:id="@+id/TextView" android:layout_marginLeft="5dp"
android:layout_height="wrap_content" android:text="@string/osb_author_dialog_password"></TextView>
<EditText android:id="@+id/Password" android:layout_marginLeft="5dp" android:layout_marginRight="5dp"
android:layout_height="wrap_content" android:text="" android:inputType="textPassword"></EditText>
</TableRow>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView android:layout_marginLeft="5dp"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/osb_comment_dialog_message"/>
<EditText android:id="@+id/BugMessage"
android:minLines="1"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:inputType="textMultiLine"/>
</TableLayout>
<TextView android:layout_marginLeft="5dp"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/osb_comment_dialog_author"/>
<EditText android:id="@+id/AuthorName"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="NoName"/>
<TextView android:layout_marginLeft="5dp"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/osb_author_dialog_password"/>
<EditText android:id="@+id/Password"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:inputType="textPassword"/>
</LinearLayout>

View file

@ -1862,4 +1862,6 @@ La llista de països inclosos (bàsicament tot el món!): Afganistan, Albània,
<string name="show_zoom_buttons_navigation_descr">Mostra els botons de zoom mentre la navegació</string>
<string name="show_zoom_buttons_navigation">Mostra els botons de zoom</string>
<string name="visible_element">Visible</string>
<string name="sort_by_distance">Ordenar per distància</string>
<string name="sort_by_name">Ordenar per nom</string>
</resources>

View file

@ -347,7 +347,7 @@
<string name="left_side_navigation">Venstrekørsel</string>
<string name="left_side_navigation_descr">Vælg for lande med venstrekørsel</string>
<string name="download_link_and_local_description">Tryk her for at hente eller opdatere offline kortfiler.
\nTryk på et eksisterende element for at se flere detaljer, tryk og hold for at deaktiver eller slette. Nuværende data på enheden (%1$s fri):</string>
\nTryk på et eksisterende element for at se flere detaljer, langt tryk for at deaktiver eller slette. Nuværende data på enheden (%1$s fri):</string>
<string name="unknown_from_location">Startpunkt er endnu ikke fastlagt</string>
<string name="unknown_location">Position endnu ikke kendt</string>
<string name="modify_transparency">Ændre gennemsigtighed (0 - gennemsigtig, 255 - ugennemsigtig)</string>
@ -410,7 +410,7 @@
<string name="zoomOut">Zoom ud</string>
<string name="zoomIn">Zoom ind</string>
<string name="zoomIs">Zoom er</string>
<string name="north">Nord</string>
<string name="north">nord</string>
<string name="north_north_east">nord/nordøst</string>
<string name="north_east">nordøst</string>
<string name="east_north_east">øst/nordøst</string>
@ -581,7 +581,7 @@
<string name="favourites_edit_dialog_name">Navn</string>
<string name="favourites_edit_dialog_category">Kategori</string>
<string name="vector_map_not_needed">Nej tak</string>
<string name="local_index_gpx_info_show">\nTryk og hold for valgmuligheder</string>
<string name="local_index_gpx_info_show">\n\nLangt tryk for valgmuligheder</string>
<string name="osmand_long_description_1000_chars">
OsmAnd (OSM Automated Navigation Directions)
@ -1500,10 +1500,7 @@ Afghanistan, Albanien, Algeriet, Andorra, Angola, Anguilla, Antigua og Barbuda,
<string name="plugin_distance_point_ele">højde</string>
<string name="osmand_distance_planning_plugin_description">Opret et spor (eller brug eksisterende GPX-filer) til at måle afstanden mellem punkter. Gem som GPX, kan bruges til at planlægge GPX-ruter.</string>
<string name="osmand_distance_planning_plugin_name">Afstandsberegner &amp; planlægningsværktøj</string>
<string name="use_distance_measurement_help">* Tryk for at markere et punkt.\n
* Tryk og hold på kortet for at slette tidligere punkt.\n
* Tryk og hold på punkt for at se og vedhæfte beskrivelse.\n
* Klik på målemodul for at se flere handlinger.</string>
<string name="use_distance_measurement_help">* Tryk for at markere et punkt.\n * Langt tryk på kortet for at slette tidligere punkt.\n * Langt tryk på punkt for at se og vedhæfte beskrivelse.\n * Klik på målemodul for at se flere handlinger.</string>
<string name="delete_point">Slet punkt</string>
<string name="local_osm_changes_backup_failed">Sikkerhedskopiering af OSM-data ændringer mislykkedes</string>
<string name="local_osm_changes_backup_successful">OSM-data ændringsfilen %1$s genereret</string>
@ -1886,7 +1883,7 @@ Afghanistan, Albanien, Algeriet, Andorra, Angola, Anguilla, Antigua og Barbuda,
<string name="gpx_info_subtracks">Underspor: %1$s </string>
<string name="map_widget_plain_time">Aktuel tid</string>
<string name="gpx_wpt">Rutepunkt</string>
<string name="selected_gpx_info_show">\n\nTryk og hold for at se på kort</string>
<string name="selected_gpx_info_show">\n\nLangt tryk for at se på kort</string>
<string name="delay_navigation_start">Start navigationen med forsinkelse</string>
<string name="selected">valgt</string>
<string name="gpx_split_interval">Vælg opdelingsinterval</string>

View file

@ -1790,4 +1790,7 @@ Afganistán, Albania, Alemania, Andorra, Angola, Anguila, Antigua y Barbuda, Ant
<string name="show_zoom_buttons_navigation_descr">Mostrar botones de zoom durante navegación</string>
<string name="show_zoom_buttons_navigation">Mostrar botones de zoom</string>
<string name="route_descr_destination"/>
<string name="sort_by_distance">Ordenar por distancia</string>
<string name="sort_by_name">Ordenar por nombre</string>
<string name="visible_element">Visible</string>
</resources>

View file

@ -317,7 +317,7 @@
</string>
<string name="next_button">Suivant</string>
<string name="previous_button">Précédent</string>
<string name="unit_of_length_descr">Sélectionner les unités de distance et vitesse à utiliser</string>
<string name="unit_of_length_descr">Sélectionner les unités de longueur et de vitesse</string>
<string name="unit_of_length">Unités de mesure</string>
<string name="si_mi_foots">Miles/pieds</string>
<string name="si_mi_yard">Miles/yards</string>
@ -1729,4 +1729,6 @@ Afghanistan, Albanie, Algérie, Allemagne, Andorre, Angola, Anguilla, Antigua-et
<string name="show_zoom_buttons_navigation_descr">Afficher les boutons de zoom pendant la navigation</string>
<string name="show_zoom_buttons_navigation">Afficher les boutons de zoom</string>
<string name="visible_element">Visible</string>
<string name="sort_by_distance">Trier par distance</string>
<string name="sort_by_name">Trier par nom</string>
</resources>

View file

@ -58,12 +58,13 @@
<string name="offline_navigation_not_available">Vidinė (be interneto) OsmAnd navigacija laikinai neprieinama.</string>
<string name="left_side_navigation">Važiavimas kairiąja kelio puse</string>
<string name="left_side_navigation_descr">Pasirinkite šalims, kuriose važiuojama kairiąja kelio puse</string>
<string name="download_link_and_local_description">Spauskite čia duomenų parsiuntimui į įrenginį arba parsiųstų duomenų atnaujinimui. \nNorėdami pamatyti detalią informaciją paspauskite ant dominančio elemento. Paspauskite ir laikykite elementą norėdami jį deaktyvuoti ar panaikinti. Duomenys įrenginyje (laisva %1$s):</string>
<string name="download_link_and_local_description">Spauskite čia žemėlapių failų parsiuntimui į įrenginį arba jau parsiųstų žemėlapių atnaujinimui.
\nNorėdami pamatyti detalią informaciją paspauskite ant dominančio elemento. Paspauskite ir laikykite elementą norėdami jį deaktyvuoti ar panaikinti. Duomenys įrenginyje (laisva %1$s):</string>
<string name="unknown_from_location">Pradžios taškas dar nenustatytas</string>
<string name="unknown_location">Vieta dar nežinoma</string>
<string name="modify_transparency">Pakeisti skaidrumą (0 - permatoma, 255 - nepermatoma)</string>
<string name="confirm_interrupt_download">Ar norite nutraukti failų parsiuntimą?</string>
<string name="first_time_msg">Ačiū kad naudojate OsmAnd. Pagrindinių programos funkcijų naudojimui įrenginyje turi būti regiono duomenys, kuriuos galite parsisiųsti \'Nustatymai\' → \'Parsiųsti duomenys\'. Tik po to galėsite ieškoti adreso, LV ar viešojo transporto.</string>
<string name="first_time_msg">Ačiū kad naudojate OsmAnd. Pagrindinių programos funkcijų naudojimui įrenginyje turi būti regiono duomenys, kuriuos galite parsisiųsti \'Nustatymai\' → \'Valdyti žemėlapius\'. Tik po to galėsite ieškoti adreso, LV ar viešojo transporto.</string>
<string name="basemap_was_selected_to_download">Programos funkcionavimui reikalingas bazinis žemėlapis. Jis buvo pažymėtas parsiuntimui.</string>
<string name="select_index_file_to_download">Nieko nerasta. Jei nerandate savo regiono, jį galite pasigaminti patys (eikite į http://osmand.net).</string>
<string name="local_indexes_cat_tile">Žemėlapiai internete</string>
@ -108,7 +109,7 @@
<string name="native_rendering">Aparatinis atvaizdavimas</string>
<string name="test_voice_prompts">Patikrinti balso nurodymus</string>
<string name="switch_to_raster_map_to_see">Šiai vietai nėra parsiųsto vektorinio žemėlapio. Jūs galite jį parsisiųsti Nustatymuose (Parsiųsti duomenys) arba perjungti į interneto žemėlapius.</string>
<string name="switch_to_raster_map_to_see">Šiai vietai nėra parsiųsto vektorinio žemėlapio. Jūs galite jį parsisiųsti Nustatymuose (Žemėlapių valdymas) arba perjungti į interneto žemėlapius (įjunkite tam skirtą įskiepį).</string>
<string name="tip_recent_changes_0_7_2_t">Pakeitimai 0.7.2 versijoje :
\n\t- Aparatinis atvaizdavimo spartinimas visuose įrenginiuose
\n\t- LV redagavimas be interneto
@ -251,7 +252,7 @@
<string name="routing_settings">Navigacija</string>
<string name="routing_settings_descr">Nurodykite navigacijos nustatymus</string>
<string name="global_settings">Globalūs nustatymai</string>
<string name="index_settings">Duomenys įrenginyje (parsiųsti)</string>
<string name="index_settings">Valdyti žemėlapius</string>
<string name="general_settings">Bendrieji nustatymai</string>
<string name="general_settings_descr">Derinkite globaliuosius nustatymus</string>
<string name="global_app_settings">Globalūs programos nustatymai</string>
@ -387,7 +388,7 @@
<string name="local_index_items_restored">Sėkmingai aktyvuota(-s) %1$d iš %2$d elementų(-o).</string>
<string name="local_index_no_items_to_do">Nėra elementų %1$s</string>
<string name="local_index_action_do">Norite %1$s %2$s elementą(-us). Tęsti?</string>
<string name="local_index_descr_title">Parsiųstų duomenų valdymas</string>
<string name="local_index_descr_title">Valdyti žemėlapius</string>
<string name="local_index_mi_restore">Aktyvuoti</string>
<string name="local_index_mi_backup">Deaktyvuoti</string>
<string name="local_index_mi_delete">Ištrinti</string>
@ -453,14 +454,13 @@
<string name="internet_not_available">Nėra šiam veiksmui reikalingo interneto ryšio</string>
<string name="install_more">Įdiegti daugiau…</string>
<string name="tip_update_index">Atnaujinami parsiųsti žemėlapiai</string>
<string name="tip_update_index_t">Turėti naujausius žemėlapius yra labai svarbu jei norite žiūrėti žemėlapius ar naudoti navigaciją nenaudodami interneto ryšio, išekoti LV ar adresų. OsmAnd turi parsiųstų duomenų valdymo funkcijas skirtas žemėlapių (ir kitų failų) parsiuntimui ir kurios patikrina ar yra atnaujinimų.
\n\nNorėdami patikrinti ar yra atnaujinimų eikite į \'Nustatymai\' → \'Parsiųsti duomenys\' → \'Parsisiųsti duomenų\'.
\n\nPo to kai bus parsiųstas regionų sąrašas, pasirinkite įrašą iš sąrašo, kurį norite parsisiųsti ar atnaujinti. Ekrano viršuje yra failų tipo parinkiklis, kur galėsite pasirinkti pageidaujamą failo tipą parsiuntimui ar atnaujinimui (žemėlpaiai, kalnų šešėliai ir kt.)
\n\nJūs galite pasirinkti regioną įvesdami keletą raidžių arba pasirinkti\'Meniu\' → \'Rodyti parsiųstus\' kad būtų rodomi tik parsiųstų žemėlapių atnaujinimai.
\n\n\t* \'Žalia\' - rodo, kad jūsų žemėlapiai identiški esantiems serveryje
\n\t\t* \'Mėlyna\' - rodo, kad serveryje yra atnaujinimų
\n\t\t* \'Tamsiai žalia/mėlyna\' - atitinkamai deaktyvuotus įrenginio duomenis
</string>
<string name="tip_update_index_t">"Turėti naujausius žemėlapius yra labai svarbu jei norite žiūrėti žemėlapius ar naudoti navigaciją nenaudodami interneto ryšio, išekoti LV ar adresų. OsmAnd turi žemėlapių valdymo funkcijas skirtas žemėlapių ir jų atnaujinimų parsisiuntimui.
\n\nNorėdami patikrinti ar yra atnaujinimų eikite į \'Nustatymai\' → \'Valdyti žemėlapius\' → \'Parsisiųsti duomenų\'.
\n\nPo to kai bus parsiųstas regionų sąrašas, pasirinkite įrašą iš sąrašo, kurį norite parsisiųsti ar atnaujinti. Ekrano viršuje yra failų tipo parinkiklis, kur galėsite pasirinkti pageidaujamą failo tipą parsiuntimui ar atnaujinimui (žemėlpaiai, kalnų šešėliai ir kt.)
\n\nJūs galite pasirinkti regioną įvesdami keletą raidžių arba pasirinkti\'Meniu\' → \'Rodyti parsiųstus\' kad būtų rodomi tik parsiųstų žemėlapių atnaujinimai.
\n\n\t* \'Žalia\' - rodo, kad jūsų žemėlapiai identiški esantiems serveryje
\n\t\t* \'Mėlyna\' - rodo, kad serveryje yra atnaujinimų
\n\t\t* \'Tamsiai žalia/mėlyna\' - atitinkamai deaktyvuotus įrenginio duomenis "</string>
<string name="level_to_switch_vector_raster_descr">Mažiausias dydis, kuriuo rodyti vektorinius žemėlapius</string>
<string name="level_to_switch_vector_raster">Mažiausias vektorinių žemėl. dydis</string>
<string name="tip_location_sharing">Bendrinti vietą</string>
@ -468,11 +468,10 @@
\n\nPo to pasirinkite kaip nusiųsite savo pasirinktą vietą. Turėsite tokį pasirinkimą: elektroniniu paštu, SMS(tekstu), ar paprasčiausiai nukopijuoti koordinates į iškarpinę.
</string>
<string name="tip_favorites">Įsimintos vietos</string>
<string name="tip_favorites_t">Dažnai naudojamos vietos gali būti išsaugotos kaip Įsimintos vietos štai taip:
\n\nPasirinkę norimą vietą kontekstiniame meniu \'Naudoti vietą\' pasirinkite \'Pridėti prie įsimintų\' bei įveskite pavadinimą.
\n\nIšsaugota Įsiminta vieta bus prieinama per \'Meniu\' → \'Įsimintos vietos\'. Ilgai paspaudę ant įsimintos vietos sąraše \'Įsimintos vietos\' galėsite tą vietą nustatyti kelionės tikslu, ją redaguoti ar ištrinti.
\n\nNorėdami Įsimintas vietas matyti tiesiog ant žemėlapio turite įjungti \'Įsimintos vietos\' sluoksnį atsidarę \'Meniu\' → \'Žemėlapio sluoksniai\'.
</string>
<string name="tip_favorites_t">"Dažnai naudojamos vietos gali būti išsaugotos kaip Įsimintos vietos štai taip:
\n\nPasirinkę norimą vietą kontekstiniame meniu \'Naudoti vietą\' pasirinkite \'Pridėti prie įsimintų\' bei įveskite pavadinimą.
\n\nIšsaugota Įsiminta vieta bus prieinama per \'Meniu\' → \'Mano vietos\'. Ilgai paspaudę ant įsimintos vietos sąraše \'Įsimintos vietos\' galėsite tą vietą nustatyti kelionės tikslu, ją redaguoti ar ištrinti.
\n\nNorėdami Įsimintas vietas matyti tiesiog ant žemėlapio turite įjungti \'Įsimintos vietos\' sluoksnį atsidarę \'Meniu\' → \'Žemėlapio sluoksniai\'. "</string>
<string name="create_poi_link_to_osm_doc">" <u>Online OSM</u> map classification with images"</string>
<string name="error_doing_search">Įvyko klaida vykdant paiešką be interneto</string>
<string name="search_offline_geo_error">Nepavyko suprasti geo poreikio \'%s\'</string>
@ -869,7 +868,7 @@
<string name="exit_Button">Išeiti</string>
<string name="map_Button">Žemėlapis</string>
<string name="settings_Button">Nustatymai</string>
<string name="favorites_Button">Įsimintos vietos</string>
<string name="favorites_Button">Mano vietos</string>
<string name="search_button">Ieškoti</string>
<string name="search_activity">Ieškoti</string>
<string name="searchpoi_activity">Pasirinkti LV</string>
@ -1177,15 +1176,14 @@ OsmAnd yra aktyviai tobulinama ir mūsų projektas bei jo tolesnis progresas pri
<string name="rendering_attr_noAdminboundaries_description">Neberodyti regionų ribų (administratoriaus 5-9 lygiai)</string>
<string name="osmodroid_plugin_old_ver_not_supported">OsMoDroid įskiepio versija yra pasenusi ir turi būti atnaujinta.</string>
<string name="osmodroid_plugin_name">OsMoDroid įskiepis</string>
<string name="tip_altitude_offset_t">Daugelis GPS įrenginių apskaičiuoja aukštį virš jūros lygio naudodami WGS84 elipsiodo atskaitos sistemą iš kurios vėlesnis konvertavimui į vietinę sistemą reikia nuo pozicijos priklausančios aukščio pataisos.
\n\nGeresniam vietinio aukščio apskaičiavimui labiau tinka EGM96 atskaitos sistema. OsmAnd dabar jau gali automatiškai apskaičiuoti ir atvaizduoti jūsų buvimo vietos aukštį pagal EGM96 sistemą.
\n\nJei norite tai įgyvendinti, tiesiog parsisiųskite failą \'Pasaulinė aukščio korekcija\' (WW15MGH.DAC) naudodami Parsiųstų Duomenų Valdymą \'Nustatymai\'→\'Parsiųsti duomenys\'. (Orginalas yra čia http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm96/binary/WW15MGH.DAC)
</string>
<string name="tip_altitude_offset_t">"Daugelis GPS įrenginių apskaičiuoja aukštį virš jūros lygio naudodami WGS84 elipsiodo atskaitos sistemą iš kurios vėlesnis konvertavimui į vietinę sistemą reikia nuo pozicijos priklausančios aukščio pataisos.
\n\nGeresniam vietinio aukščio apskaičiavimui labiau tinka EGM96 atskaitos sistema. OsmAnd dabar jau gali automatiškai apskaičiuoti ir atvaizduoti jūsų buvimo vietos aukštį pagal EGM96 sistemą.
\n\nJei norite tai įgyvendinti, tiesiog parsisiųskite failą \'Pasaulinė aukščio korekcija\' (WW15MGH.DAC) naudodami Parsiųstų Duomenų Valdymą \'Nustatymai\'→\'Valdyti žemėlapius\'. (Orginalas yra čia http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm96/binary/WW15MGH.DAC) "</string>
<string name="monitoring_control_start">pradėti</string>
<string name="osmodroid_plugin_description">OsMoDroid įskiepis yra yra skirtas tiesioginiam sekimui. Daugiau informacijos apie paslaugą rasite http://esya.ru.</string>
<string name="index_srtm_parts">dalys</string>
<string name="index_srtm_ele">Aukščio kontūrų linijos</string>
<string name="srtm_plugin_description">Leidžia parsisiųsti kontūrines linijas ir kalnų šešėlius (\'Nustatymai\' → \'Parsiųsti duomenys\' → \'Parsiųsti\' → Pasirinkite pageidaujamą žemėlapio tipą).</string>
<string name="srtm_plugin_description">Leidžia parsisiųsti kontūrines linijas ir kalnų šešėlius (\'Nustatymai\' → \'Valdyti žemėlapius\' → \'Parsiųsti\' → Pasirinkite pageidaujamą žemėlapio tipą).</string>
<string name="srtm_plugin_name">SRTM įskiepis</string>
<string name="download_select_map_types">Kiti žemėlapiai</string>
<string name="download_srtm_maps">SRTM žemėlapiai</string>
@ -1654,9 +1652,9 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
<string name="routing_attr_avoid_motorway_description">Vengti greitkelių</string>
<string name="routing_attr_weight_name">Maksimalus svoris</string>
<string name="routing_attr_weight_description">Įvesti automobilio svorio apribojimą</string>
<string name="android_19_location_disabled">Pradedant KitKat versija jūs nebegalėsite parsisųsti ir atnaujinti žemėlapių ankstesnėse saugojimo vietose (%s). Ar norite pakeisti saugyklos vietą ir į ją nukopijuoto visus failus?
\n Pastaba : Seni failai išliks kur buvę.
\n Pastaba : dalintis tais pačiais failais tarp OsmAnd ir OsmAnd+ nebus galima. </string>
<string name="android_19_location_disabled">"Pradedant KitKat versija jūs nebegalėsite parsisųsti ir atnaujinti žemėlapių ankstesnėse saugojimo vietose (%s). Ar norite pakeisti saugyklos vietą ir į ją nukopijuoto visus failus?
\n Pastaba: Seni failai išliks kur buvę.
\n Pastaba: dalintis tais pačiais failais tarp OsmAnd ir OsmAnd+ nebus galima. "</string>
<string name="application_dir_change_warning2">OsmAnd gali pabandyti perkelti duomenis į naują saugyklą. Ar atlikti tai?</string>
<string name="copying_osmand_one_file_descr">Kopijuojami failai (%/s) į naują saugojimo vietą...</string>
<string name="copying_osmand_files_descr">OsmAnd failai kopijuojami į naują vietą (%/s)</string>
@ -1752,7 +1750,7 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
<string name="osmo_plugin_name">OsMo (Pažangus tiesioginis stebėjimas)</string>
<string name="osmo_settings">OsMo OpenStreetMap stebėjimas (beta)</string>
<string name="keep_informing_never">Niekada</string>
<string name="keep_informing_descr">Maršruto instrukcijas pranešinėti reguliariais intervalais</string>
<string name="keep_informing_descr">Maršruto instrukcijas pakartotinai pranešinėti reguliariais intervalais</string>
<string name="keep_informing">Pakartoti maršruto instrukcijas</string>
<string name="arrival_distance">Pranešimas apie atvykimą</string>
<string name="arrival_distance_descr">Kada anksti turi būti pranešama apie atvykimą?</string>
@ -1779,11 +1777,7 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
<string name="osmo_auth_pending">Laukiama autorizavimo...</string>
<string name="osmo_locations_sent">Buvimo vieta išsiųsta %1$d (talpykloje %2$d) </string>
<string name="osmo_conn_successfull">Prisijungta sėkmingai: %1$s </string>
<string name="tip_recent_changes_1_8_alpha">Pakeitimai 1.8 versijoje:
* Apskaičiouti maršrutą tarp GPX failo taškų
* Pakeistas šalių sąrašo išdėstymas žemėlapių parsiuntimui (palaikoma vietovardžių paieška)
* Palaiko GPX/KML importavimą (konvertuoja KML į GPX)
</string>
<string name="tip_recent_changes_1_8_alpha">"Pakeitimai 1.8 versijoje: * Apskaičiouti maršrutą tarp GPX failo taškų * Pakeistas šalių sąrašo išdėstymas žemėlapių parsiuntimui (palaikoma vietovardžių paieška) * Palaiko GPX/KML importavimą (konvertuoja KML į GPX) * GPX maršrutai perkelti į \'Mano duomenys\' * GPX maršrutus galima padalinti į kelias dalis pagal atstumą ir patikrinti altitudės skirtumus ir greitį * Automatiškai pradėti navigaciją su uždelsimu "</string>
<string name="osmo_mode_restart">OsMo sesiją paleisti iš naujo</string>
<string name="osmo_settings_debug">Derinimo informacija</string>
<string name="osmo_group_info">Info</string>
@ -1860,4 +1854,32 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
<string name="delay_navigation_start">Pradėti navigaciją su uždelsimu</string>
<string name="selected">pasirinkti</string>
<string name="gpx_split_interval">Pasirinkti padalinimo intervalą</string>
<string name="sort_by_distance">Rūšiuoti pagal atstumą</string>
<string name="sort_by_name">Rūšiuoti pagal pavadinimą</string>
<string name="visible_element">Matomas</string>
<string name="gpx_info_avg_altitude">Vidutinė altitudė: %1$s</string>
<string name="gpx_info_diff_altitude">Altitudės diapazonas: %1$s</string>
<string name="gpx_info_asc_altitude">Nusileidimas/pakilimas: %1$s</string>
<string name="gpx_timespan">Laikotarpis: %1$s</string>
<string name="gpx_timemoving">Judėjimo laikas: %1$s</string>
<string name="gpx_selection_segment_title">Segmentas</string>
<string name="gpx_selection_point">Taškas %1$s</string>
<string name="gpx_selection_current_track">įrašymas</string>
<string name="gpx_selection_route_points">%1$s
\nMaršruto taškų %2$s</string>
<string name="gpx_selection_points">%1$s
\nTaškų</string>
<string name="gpx_selection_track">%1$s
\nMaršrutas %2$s</string>
<string name="gpx_available_current_track">Dabartinis įrašomas maršrutas</string>
<string name="gpx_file_is_empty">GPX maršrutas yra tuščias</string>
<string name="selected_track">Pasirinkti maršrutai</string>
<string name="my_tracks">Visi maršrutai</string>
<string name="my_favorites">Mano mėgiami</string>
<string name="my_data_Button">Mano vietos</string>
<string name="my_data_activity">Mano vietos</string>
<string name="osmo_user_joined">Vartotojas %1$s prisijungė prie %2$s grupės</string>
<string name="osmo_user_left">Vartotojas %1$s atsijungė nuo %2$s grupės</string>
<string name="osmo_show_group_notifications">Rodyti grupės pranešimus</string>
<string name="osmo_show_group_notifications_descr">Rodyti iššokančius pranešimus vartotojui prisijungiant arba atsijungiant nuo grupės</string>
</resources>

View file

@ -984,7 +984,7 @@
\n\nЗатем выберите способ, которым хотите поделиться местоположением. Поддерживаемые варианты: E-Mail, SMS (текстовое сообщение), либо, просто скопируйте координаты местоположения в буфер обмена устройства.
</string>
<string name="tip_favorites">Избранные точки</string>
<string name="tip_favorites_t">"\tЧасто используемые точки могут быть сохранены в \"Избранное\" \tЧтобы сохранить точку в \"Избранное\" откройте контекстное меню карты, выберите пункт \'Добавить в избранное\' и введите имя для этой точки. После сохранения, эта точка будет доступна через \"Главное меню\" -&gt; \"Избранное\".\n\n\tДолгое нажатие на точку в \"Избранное\" позволяет установить её как место назначения, редактировать или удалить её.\n\n\tЧтобы отобразить все избранные точки на карте, включите слой \'Избранное\' в \'Контекстное меню карты\' -&gt;\'Слои\'. "</string>
<string name="tip_favorites_t">"Часто используемые точки могут быть сохранены в \"Мои места\" \tЧтобы сохранить точку в \"Мои места\" откройте контекстное меню карты, выберите пункт \'Добавить в мои места\' и введите имя для этой точки. После сохранения, эта точка будет доступна через \"Главное меню\" -&gt; \"Мои места\".\n\n\tДолгое нажатие на точку в \"Мои места\" позволяет установить её как место назначения, редактировать или удалить её.\n\n\tЧтобы отобразить все избранные точки на карте, включите слой \"Мои места\" в \"Контекстное меню карты\" -&gt;\"Слои\". "</string>
<string name="contribution_activity">Установка версии</string>
<string name="process_navigation_service">Навигационный сервис OsmAnd</string>
<string name="offline_navigation_not_available">Локальная навигация OsmAnd временно недоступна.</string>
@ -1722,4 +1722,8 @@ OsmAnd - открытый источник и активно развается.
<string name="gpx_selection_route_points">%1$s \nМаршрутных точек %2$s</string>
<string name="show_zoom_buttons_navigation_descr">Показывать кнопки изменения масштаба во время навигации</string>
<string name="show_zoom_buttons_navigation">Показывать кнопки изменения масштаба</string>
<string name="sort_by_distance">Сортировать по дистанции</string>
<string name="sort_by_name">Сортировать по имени</string>
<string name="visible_element">Показывать</string>
<string name="osmo_edit_color">Цвет метки</string>
</resources>

View file

@ -1355,7 +1355,7 @@ OsmAnd 是開放原始碼,而且正在積極的開發。應用程式從報告
<string name="plugin_distance_point">標點</string>
<string name="distance_measurement_clear_route">清除所有的標點</string>
<string name="files_limit">剩餘 %1$d 個檔</string>
<string name="layer_recordings">製階</string>
<string name="layer_recordings">錄層</string>
<string name="downloading_file_new">下載中 …</string>
<string name="intermediate_items_sort_return">在到達目的地之間路途上,沿路的中途點已採取了最佳化的排列。</string>
<string name="osmand_srtm_long_description_1000_chars">這個外掛元件提供了等高線,可以在 OsmAnd 的離線地圖中顯示。全球圖資(在北緯 70 度至南緯 70 度之間)的量測基礎在於 SRTM (Shuttle Radar Topography Mission)和 ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer),遙測儀器安裝在美國太空總署地球觀測系統的旗艦衛星 Terra 上ASTER 是美國太空總署、日本經濟產業省(METI)、日本太空系統 (J-spacesystems)之間的通力合作產物。</string>

View file

@ -40,7 +40,8 @@ public class FavouritesActivity extends SherlockFragmentActivity {
public void onCreate(Bundle icicle) {
//This has to be called before setContentView and you must use the
//class in com.actionbarsherlock.view and NOT android.view
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
((OsmandApplication) getApplication()).applyTheme(this);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
getSherlock().setUiOptions(ActivityInfo.UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW);
super.onCreate(icicle);
setSupportProgressBarIndeterminateVisibility(false);

View file

@ -254,7 +254,8 @@ public class IntermediatePointsDialog {
tv.setCompoundDrawablePadding(padding);
final CheckBox ch = ((CheckBox) v.findViewById(R.id.check_item));
ch.setVisibility(View.VISIBLE);
ch.setChecked(true);
ch.setOnCheckedChangeListener(null);
ch.setChecked(checkedIntermediates[position]);
ch.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

View file

@ -312,8 +312,15 @@ public class GeoIntentActivity extends OsmandListActivity {
//geo:47.6,-122.3?z=11
//allow for http://tools.ietf.org/html/rfc5870 (geo uri) , just ignore everything after ';'
final String pattern = "([\\-0-9.]+),([\\-0-9.]+)(?:,([\\-0-9.]+))?(?:\\?z=([0-9]+))?(?:;.*)?";
int indexQ = schemeSpecific.indexOf("&q");
final Matcher matcher;
if (indexQ != -1){
final String schemeQ = schemeSpecific.substring(0,indexQ);
matcher = Pattern.compile(pattern).matcher(schemeQ);
} else {
matcher = Pattern.compile(pattern).matcher(schemeSpecific);
}
final Matcher matcher = Pattern.compile(pattern).matcher(schemeSpecific);
if (matcher.matches())
{
final double lat = Double.valueOf(matcher.group(1));

View file

@ -0,0 +1,50 @@
package net.osmand.plus.helpers;
import android.view.MotionEvent;
import android.view.ViewConfiguration;
/**
* Created by Barsik on 24.06.2014.
*/
public abstract class SimpleTwoFingerTapDetector {
private static final int TIMEOUT = ViewConfiguration.getDoubleTapTimeout() + 100;
private long mFirstDownTime = 0;
private byte mTwoFingerTapCount = 0;
private MotionEvent firstEvent = null;
private void reset(long time) {
mFirstDownTime = time;
mTwoFingerTapCount = 0;
}
public boolean onTouchEvent(MotionEvent event) {
switch (event.getActionMasked()) {
case MotionEvent.ACTION_DOWN:
if (mFirstDownTime == 0 || event.getEventTime() - mFirstDownTime > TIMEOUT){
reset(event.getDownTime());
}
break;
case MotionEvent.ACTION_POINTER_UP:
if (event.getPointerCount() == 2) {
mTwoFingerTapCount++;
firstEvent = MotionEvent.obtain(event);
}
else{
mFirstDownTime = 0;
firstEvent = null;
}
break;
case MotionEvent.ACTION_UP:
if (mTwoFingerTapCount == 1 && event.getEventTime() - mFirstDownTime < TIMEOUT) {
onTwoFingerTap(firstEvent, event);
mFirstDownTime = 0;
firstEvent = null;
return true;
}
}
return false;
}
public abstract void onTwoFingerTap(MotionEvent firstevent, MotionEvent secondevent);
}

View file

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List;
import android.content.Intent;
import android.util.TypedValue;
import net.osmand.CallbackWithObject;
import net.osmand.data.LatLon;
import net.osmand.plus.GPXUtilities;
@ -178,7 +179,7 @@ public class RoutePointsActivity extends OsmandListActivity {
holder.name.setTextColor(getResources().getColor(R.color.osmbug_closed));
holder.dateOrDistance.setTextColor(getResources().getColor(R.color.color_unknown));
holder.dateOrDistance.setText(point.getTime());
holder.dateOrDistance.setTextSize(14);
holder.dateOrDistance.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
} else {
if (point.isNextNavigate()) {
@ -193,7 +194,7 @@ public class RoutePointsActivity extends OsmandListActivity {
}
holder.name.setTextColor(getResources().getColor(R.color.color_update));
holder.dateOrDistance.setTextColor(getResources().getColor(R.color.color_distance));
holder.dateOrDistance.setTextSize(20);
holder.dateOrDistance.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20);
}
return convertView;
}

View file

@ -6,6 +6,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.view.*;
import net.osmand.PlatformUtil;
import net.osmand.access.AccessibilityActionsProvider;
import net.osmand.access.AccessibleToast;
@ -22,6 +23,7 @@ import net.osmand.plus.OsmAndFormatter;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R;
import net.osmand.plus.helpers.SimpleTwoFingerTapDetector;
import net.osmand.plus.views.MultiTouchSupport.MultiTouchZoomListener;
import net.osmand.plus.views.OsmandMapLayer.DrawSettings;
import net.osmand.util.MapUtils;
@ -42,15 +44,9 @@ import android.os.Message;
import android.os.SystemClock;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.view.GestureDetector;
import android.view.GestureDetector.OnDoubleTapListener;
import android.view.GestureDetector.OnGestureListener;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView;
import android.view.WindowManager;
import android.widget.Toast;
public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCallback, Callback {
@ -62,12 +58,13 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
private boolean MEASURE_FPS = false;
private FPSMeasurement main = new FPSMeasurement();
private FPSMeasurement additional = new FPSMeasurement();
private class FPSMeasurement {
int fpsMeasureCount = 0;
int fpsMeasureMs = 0;
long fpsFirstMeasurement = 0;
float fps;
float fps;
void calculateFPS(long start, long end) {
fpsMeasureMs += end - start;
fpsMeasureCount++;
@ -79,10 +76,10 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
}
}
}
protected static final int emptyTileDivisor = 16;
public interface OnTrackBallListener {
public boolean onTrackBallEvent(MotionEvent e);
@ -97,10 +94,10 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
}
protected static final Log log = PlatformUtil.getLog(OsmandMapTileView.class);
private RotatedTileBox currentViewport;
private float rotate; // accumulate
private int mapPosition;
@ -118,14 +115,14 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
private AccessibilityActionsProvider accessibilityActions;
private List<OsmandMapLayer> layers = new ArrayList<OsmandMapLayer>();
private BaseMapLayer mainLayer;
private Map<OsmandMapLayer, Float> zOrders = new HashMap<OsmandMapLayer, Float>();
// UI Part
// handler to refresh map (in ui thread - ui thread is not necessary, but msg queue is required).
protected Handler handler ;
protected Handler handler;
private Handler baseHandler;
private AnimateDraggingMapThread animatedDraggingThread;
@ -142,21 +139,35 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
private DisplayMetrics dm;
private final OsmandApplication application;
protected OsmandSettings settings = null;
private Bitmap bufferBitmap;
private RotatedTileBox bufferImgLoc;
private Bitmap bufferBitmapTmp;
private Paint paintImg;
private boolean afterTwoFingerTap = false;
SimpleTwoFingerTapDetector twoFingerTapDetector = new SimpleTwoFingerTapDetector() {
@Override
public void onTwoFingerTap(MotionEvent firstevent, MotionEvent secondevent) {
afterTwoFingerTap = true;
final RotatedTileBox tb = getCurrentRotatedTileBox();
float midx = (firstevent.getX() + secondevent.getX()) / 2;
float midy = (firstevent.getY() + secondevent.getY()) / 2;
final double lat = tb.getLatFromPixel(midx, midy);
final double lon = tb.getLonFromPixel(midx, midy);
getAnimatedDraggingThread().startMoving(lat, lon, getZoom() - 1, true);
}
};
public OsmandMapTileView(Context context, AttributeSet attrs) {
super(context, attrs);
application = (OsmandApplication) context.getApplicationContext();
initView();
}
public OsmandMapTileView(Context context) {
@ -172,8 +183,8 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
paintGrayFill.setStyle(Style.FILL);
// when map rotate
paintGrayFill.setAntiAlias(true);
paintBlackFill= new Paint();
paintBlackFill = new Paint();
paintBlackFill.setColor(Color.BLACK);
paintBlackFill.setStyle(Style.FILL);
// when map rotate
@ -190,7 +201,7 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
paintCenter.setColor(Color.rgb(60, 60, 60));
paintCenter.setStrokeWidth(2);
paintCenter.setAntiAlias(true);
paintImg = new Paint();
paintImg.setFilterBitmap(true);
// paintImg.setDither(true);
@ -201,7 +212,7 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
handler = new Handler();
baseHandler = new Handler(application.getResourceManager().getRenderingBufferImageThread().getLooper());
getHolder().addCallback(this);
animatedDraggingThread = new AnimateDraggingMapThread(this);
@ -215,7 +226,7 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
currentViewport = new RotatedTileBox.RotatedTileBoxBuilder().
setLocation(0, 0).setZoomAndScale(3, 0).setPixelDimensions(getWidth(), getHeight()).build();
currentViewport.setDensity(dm.density);
}
@Override
@ -236,14 +247,14 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
public boolean onKeyDown(int keyCode, KeyEvent event) {
return application.accessibilityEnabled() ? false : super.onKeyDown(keyCode, event);
}
public boolean isLayerVisible(OsmandMapLayer layer) {
return layers.contains(layer);
}
public float getZorder(OsmandMapLayer layer) {
Float z = zOrders.get(layer);
if(z == null) {
if (z == null) {
return 10;
}
return z;
@ -262,7 +273,7 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
}
public synchronized void removeLayer(OsmandMapLayer layer) {
while(layers.remove(layer));
while (layers.remove(layer)) ;
zOrders.remove(layer);
layer.destroyLayer();
}
@ -270,11 +281,11 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
public List<OsmandMapLayer> getLayers() {
return layers;
}
@SuppressWarnings("unchecked")
public <T extends OsmandMapLayer> T getLayerByClass(Class<T> cl) {
for(OsmandMapLayer lr : layers) {
if(cl.isInstance(lr)){
for (OsmandMapLayer lr : layers) {
if (cl.isInstance(lr)) {
return (T) lr;
}
}
@ -290,7 +301,7 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
if (mainLayer != null && zoom <= mainLayer.getMaximumShownMapZoom() && zoom >= mainLayer.getMinimumShownMapZoom()) {
animatedDraggingThread.stopAnimating();
currentViewport.setZoomAndAnimation(zoom, 0);
currentViewport.setRotate(zoom > LOWEST_ZOOM_TO_ROTATE ? rotate : 0 );
currentViewport.setRotate(zoom > LOWEST_ZOOM_TO_ROTATE ? rotate : 0);
refreshMap();
}
}
@ -299,13 +310,13 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
if (mainLayer != null && zoom <= mainLayer.getMaximumShownMapZoom() && zoom >= mainLayer.getMinimumShownMapZoom()) {
animatedDraggingThread.stopAnimating();
currentViewport.setZoom(zoom, scale, 0);
currentViewport.setRotate(zoom > LOWEST_ZOOM_TO_ROTATE ? rotate : 0 );
currentViewport.setRotate(zoom > LOWEST_ZOOM_TO_ROTATE ? rotate : 0);
refreshMap();
}
}
public boolean isMapRotateEnabled(){
public boolean isMapRotateEnabled() {
return getZoom() > LOWEST_ZOOM_TO_ROTATE;
}
@ -349,18 +360,18 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
return currentViewport.getZoom();
}
public float getSettingsZoomScale(){
public float getSettingsZoomScale() {
return settings.getSettingsZoomScale(getDensity());
}
public float getZoomScale() {
return currentViewport.getZoomScale();
}
public boolean isZooming(){
public boolean isZooming() {
return currentViewport.isZoomAnimated();
}
public void setMapLocationListener(IMapLocationListener l) {
locationListener = l;
}
@ -376,7 +387,7 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
public BaseMapLayer getMainLayer() {
return mainLayer;
}
public void setMainLayer(BaseMapLayer mainLayer) {
this.mainLayer = mainLayer;
int zoom = currentViewport.getZoom();
@ -393,21 +404,21 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
public void setMapPosition(int type) {
this.mapPosition = type;
}
public OsmandSettings getSettings(){
if(settings == null){
public OsmandSettings getSettings() {
if (settings == null) {
settings = getApplication().getSettings();
}
return settings;
}
private void drawBasemap(Canvas canvas) {
if(bufferImgLoc != null) {
float rot = - bufferImgLoc.getRotate();
if (bufferImgLoc != null) {
float rot = -bufferImgLoc.getRotate();
canvas.rotate(rot, currentViewport.getCenterPixelX(), currentViewport.getCenterPixelY());
final RotatedTileBox calc = currentViewport.copy();
calc.setRotate(bufferImgLoc.getRotate());
int cz = getZoom();
QuadPointDouble lt = bufferImgLoc.getLeftTopTile(cz);
QuadPointDouble rb = bufferImgLoc.getRightBottomTile(cz);
@ -415,19 +426,19 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
final float x2 = calc.getPixXFromTile(rb.x, rb.y, cz);
final float y1 = calc.getPixYFromTile(lt.x, lt.y, cz);
final float y2 = calc.getPixYFromTile(rb.x, rb.y, cz);
if(!bufferBitmap.isRecycled()){
if (!bufferBitmap.isRecycled()) {
RectF rct = new RectF(x1, y1, x2, y2);
canvas.drawBitmap(bufferBitmap, null, rct, paintImg);
}
canvas.rotate(-rot, currentViewport.getCenterPixelX(), currentViewport.getCenterPixelY());
}
}
private void refreshBaseMapInternal(RotatedTileBox tileBox, DrawSettings drawSettings) {
if(tileBox.getPixHeight() == 0 || tileBox.getPixWidth() == 0){
if (tileBox.getPixHeight() == 0 || tileBox.getPixWidth() == 0) {
return;
}
if(bufferBitmapTmp == null || tileBox.getPixHeight() != bufferBitmapTmp.getHeight()
if (bufferBitmapTmp == null || tileBox.getPixHeight() != bufferBitmapTmp.getHeight()
|| tileBox.getPixWidth() != bufferBitmapTmp.getWidth()) {
bufferBitmapTmp = Bitmap.createBitmap(tileBox.getPixWidth(), tileBox.getPixHeight(), Config.RGB_565);
}
@ -453,7 +464,7 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
synchronized (this) {
bufferImgLoc = tileBox;
bufferBitmap = bufferBitmapTmp;
bufferBitmapTmp = t;
bufferBitmapTmp = t;
}
long end = SystemClock.elapsedRealtime();
additional.calculateFPS(start, end);
@ -466,9 +477,9 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
Canvas canvas = holder.lockCanvas();
if (canvas != null) {
try {
final float ratioy = mapPosition == OsmandSettings.BOTTOM_CONSTANT ? 0.85f : 0.5f;
final float ratioy = mapPosition == OsmandSettings.BOTTOM_CONSTANT ? 0.85f : 0.5f;
final int cy = (int) (ratioy * getHeight());
if(currentViewport.getPixWidth() != getWidth() || currentViewport.getPixHeight() != getHeight() ||
if (currentViewport.getPixWidth() != getWidth() || currentViewport.getPixHeight() != getHeight() ||
currentViewport.getCenterPixelY() != cy) {
currentViewport.setPixelDimensions(getWidth(), getHeight(), 0.5f, ratioy);
refreshBufferImage(drawSettings);
@ -499,18 +510,19 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
public boolean isMeasureFPS() {
return MEASURE_FPS;
}
public void setMeasureFPS(boolean measureFPS) {
MEASURE_FPS = measureFPS;
}
public float getFPS(){
public float getFPS() {
return main.fps;
}
public float getSecondaryFPS(){
public float getSecondaryFPS() {
return additional.fps;
}
private void drawOverMap(Canvas canvas, RotatedTileBox tileBox, DrawSettings drawSettings) {
final QuadPoint c = tileBox.getCenterPixelPoint();
synchronized (this) {
@ -558,7 +570,7 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
}
refreshBaseMapInternal(currentViewport.copy(), param);
sendRefreshMapMsg(param, 0);
} catch(Exception e) {
} catch (Exception e) {
log.error(e.getMessage(), e);
}
}
@ -573,7 +585,7 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
public void refreshMap() {
refreshMap(false);
}
// this method could be called in non UI thread
public void refreshMap(final boolean updateVectorRendering) {
if (isShown()) {
@ -591,7 +603,7 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
public void run() {
DrawSettings param = drawSettings;
handler.removeMessages(MAP_REFRESH_MESSAGE);
refreshMapInternal(param);
}
});
@ -630,6 +642,7 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
}
return scaleCoefficient;
}
/**
* These methods do not consider rotating
*/
@ -649,7 +662,7 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
refreshMap();
}
}
protected void setLatLonAnimate(double latitude, double longitude, boolean notify) {
currentViewport.setLatLonCenter(latitude, longitude);
refreshMap();
@ -665,12 +678,12 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
locationListener.locationChanged(getLatitude(), getLongitude(), this);
}
}
// for internal usage
protected void zoomToAnimate(float tzoom, boolean notify) {
int zoom = getZoom();
float zoomToAnimate = tzoom - zoom - getZoomScale();
if(zoomToAnimate >= 1) {
if (zoomToAnimate >= 1) {
zoom += (int) zoomToAnimate;
zoomToAnimate -= (int) zoomToAnimate;
}
@ -679,8 +692,8 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
zoomToAnimate += 1;
}
if (mainLayer != null && mainLayer.getMaximumShownMapZoom() >= zoom && mainLayer.getMinimumShownMapZoom() <= zoom) {
currentViewport.setZoomAndAnimation(zoom, zoomToAnimate);
currentViewport.setRotate(zoom > LOWEST_ZOOM_TO_ROTATE ? rotate : 0 );
currentViewport.setZoomAndAnimation(zoom, zoomToAnimate);
currentViewport.setRotate(zoom > LOWEST_ZOOM_TO_ROTATE ? rotate : 0);
refreshMap();
if (notify && locationListener != null) {
locationListener.locationChanged(getLatitude(), getLongitude(), this);
@ -699,16 +712,21 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
@Override
public boolean onTouchEvent(MotionEvent event) {
if (twoFingerTapDetector.onTouchEvent(event)) {
return true;
}
if (event.getAction() == MotionEvent.ACTION_DOWN) {
animatedDraggingThread.stopAnimating();
}
for(int i=layers.size() - 1; i >= 0; i--) {
if(layers.get(i).onTouchEvent(event, getCurrentRotatedTileBox())) {
for (int i = layers.size() - 1; i >= 0; i--) {
if (layers.get(i).onTouchEvent(event, getCurrentRotatedTileBox())) {
return true;
}
}
if (!multiTouchSupport.onTouchEvent(event)) {
/* return */gestureDetector.onTouchEvent(event);
/* return */
gestureDetector.onTouchEvent(event);
}
return true;
}
@ -738,7 +756,6 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
}
public AnimateDraggingMapThread getAnimatedDraggingThread() {
return animatedDraggingThread;
}
@ -752,7 +769,7 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
});
}
private class MapTileViewMultiTouchZoomListener implements MultiTouchZoomListener {
private PointF initialMultiTouchCenterPoint;
private RotatedTileBox initialViewport;
@ -765,12 +782,12 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
private static final float ANGLE_THRESHOLD = 15;
@Override
public void onZoomEnded(double relativeToStart, float angleRelative) {
public void onZoomEnded(double relativeToStart, float angleRelative) {
// 1.5 works better even on dm.density=1 devices
float dz = (float) (Math.log(relativeToStart) / Math.log(2)) * 1.5f;
setIntZoom(Math.round(dz) + initialViewport.getZoom());
if(Math.abs(angleRelative) < ANGLE_THRESHOLD * relativeToStart ||
Math.abs(angleRelative) < ANGLE_THRESHOLD / relativeToStart){
if (Math.abs(angleRelative) < ANGLE_THRESHOLD * relativeToStart ||
Math.abs(angleRelative) < ANGLE_THRESHOLD / relativeToStart) {
angleRelative = 0;
}
rotateToAnimate(initialViewport.getRotate() + angleRelative);
@ -781,11 +798,11 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
} else {
final LatLon p1 = initialViewport.getLatLonFromPixel(x1, y1);
final LatLon p2 = initialViewport.getLatLonFromPixel(x2, y2);
showMessage(OsmAndFormatter.getFormattedDistance((float)MapUtils.getDistance(p1.getLatitude(), p1.getLongitude(), p2.getLatitude(), p2.getLongitude()), application));
showMessage(OsmAndFormatter.getFormattedDistance((float) MapUtils.getDistance(p1.getLatitude(), p1.getLongitude(), p2.getLatitude(), p2.getLongitude()), application));
}
}
}
@Override
public void onGestureInit(float x1, float y1, float x2, float y2) {
this.x1 = x1;
@ -810,21 +827,21 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
// keep only rotating
dz = 0;
}
if(Math.abs(relAngle) < ANGLE_THRESHOLD && !startRotating) {
if (Math.abs(relAngle) < ANGLE_THRESHOLD && !startRotating) {
relAngle = 0;
} else {
startRotating = true;
}
if(dz != 0 || relAngle != 0) {
if (dz != 0 || relAngle != 0) {
changeZoomPosition((float) dz, relAngle);
}
}
private void changeZoomPosition(float dz, float angle) {
final QuadPoint cp = initialViewport.getCenterPixelPoint();
float dx = cp.x - initialMultiTouchCenterPoint.x ;
float dy = cp.y - initialMultiTouchCenterPoint.y ;
float dx = cp.x - initialMultiTouchCenterPoint.x;
float dy = cp.y - initialMultiTouchCenterPoint.y;
final RotatedTileBox calc = initialViewport.copy();
calc.setLatLonCenter(initialCenterLatLon.getLatitude(), initialCenterLatLon.getLongitude());
@ -848,21 +865,22 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
animatedDraggingThread.startDragging(velocityX, velocityY,
e1.getX(), e1.getY(), e2.getX(), e2.getY(), true);
animatedDraggingThread.startDragging(velocityX, velocityY,
e1.getX(), e1.getY(), e2.getX(), e2.getY(), true);
return true;
}
@Override
public void onLongPress(MotionEvent e) {
if (multiTouchSupport.isInZoomMode()) {
if (multiTouchSupport.isInZoomMode() || afterTwoFingerTap) {
afterTwoFingerTap = false;
return;
}
if (log.isDebugEnabled()) {
log.debug("On long click event " + e.getX() + " " + e.getY()); //$NON-NLS-1$ //$NON-NLS-2$
}
PointF point = new PointF(e.getX(), e.getY());
if ((accessibilityActions != null) && accessibilityActions.onLongClick(point, getCurrentRotatedTileBox() )) {
if ((accessibilityActions != null) && accessibilityActions.onLongClick(point, getCurrentRotatedTileBox())) {
return;
}
for (int i = layers.size() - 1; i >= 0; i--) {
@ -928,4 +946,5 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
}
}
}