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

This commit is contained in:
Victor Shcherb 2015-09-28 23:38:02 +02:00
commit 45b0a8a75f
51 changed files with 681 additions and 230 deletions

View file

@ -110,7 +110,7 @@
android:gravity="center"/> android:gravity="center"/>
<Button <Button
android:id="@+id/DownloadButton" android:id="@+id/downloadButton"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="@dimen/list_item_height" android:layout_height="@dimen/list_item_height"
android:layout_weight="1" android:layout_weight="1"
@ -120,7 +120,7 @@
android:textColor="?attr/pstsTextColor"/> android:textColor="?attr/pstsTextColor"/>
<ImageView <ImageView
android:id="@+id/WikiButton" android:id="@+id/wikiButton"
android:layout_width="@dimen/list_item_height" android:layout_width="@dimen/list_item_height"
android:layout_height="@dimen/list_item_height" android:layout_height="@dimen/list_item_height"
android:scaleType="centerInside" android:scaleType="centerInside"

View file

@ -0,0 +1,246 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/point_edit_layout"
android:layout_width="350dp"
android:layout_height="match_parent"
android:background="@android:color/transparent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="fill_parent"
android:layout_height="@dimen/dashboard_map_toolbar"
android:background="?attr/pstsTabBackground"
android:minHeight="@dimen/dashboard_map_toolbar"
android:theme="?attr/toolbar_theme"
app:contentInsetLeft="72dp"
app:contentInsetStart="72dp">
<ImageButton
android:id="@+id/delete_button"
android:layout_width="?attr/actionBarSize"
android:layout_height="match_parent"
android:layout_gravity="right"
android:background="@android:color/transparent"
android:src="@drawable/ic_action_delete_dark"/>
<Button
android:id="@+id/save_button"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="right"
android:background="@android:color/transparent"
android:text="@string/shared_string_save"/>
</android.support.v7.widget.Toolbar>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/ctx_menu_info_view_bg"
android:fillViewport="true">
<LinearLayout
android:id="@+id/main_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/title_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/bg_point_editor_view"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="48dp">
<TextView
android:id="@+id/header_caption"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_gravity="center_vertical"
android:text="Point info"
android:textColor="?android:textColorPrimary"
android:textSize="@dimen/default_list_text_size"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:orientation="horizontal">
<LinearLayout
android:layout_width="42dp"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/name_image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:layout_marginLeft="12dp"
android:layout_marginStart="12dp"
android:scaleType="center"
android:src="@drawable/ic_action_building_number"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/name_caption"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:text="@string/favourites_edit_dialog_name"
android:textColor="?android:textColorSecondary"
android:textSize="@dimen/default_list_text_size"/>
<EditText
android:id="@+id/name_edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginRight="16dp"
android:layout_marginLeft="8dp"
android:textColor="?android:textColorPrimary"
android:textColorHint="?android:textColorSecondary"
android:inputType="text"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:orientation="horizontal">
<LinearLayout
android:layout_width="42dp"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/category_image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:layout_marginLeft="12dp"
android:layout_marginStart="12dp"
android:scaleType="center"
android:src="@drawable/ic_action_building_number"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/category_caption"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:text="@string/favourites_edit_dialog_name"
android:textColor="?android:textColorSecondary"
android:textSize="@dimen/default_list_text_size"/>
<net.osmand.plus.widgets.AutoCompleteTextViewEx
android:id="@+id/category_edit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginRight="16dp"
android:layout_marginLeft="8dp"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:background="?attr/ctx_menu_info_view_bg"
android:orientation="horizontal">
<LinearLayout
android:layout_width="42dp"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/description_image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginStart="12dp"
android:layout_marginTop="10dp"
android:scaleType="center"
android:src="@drawable/ic_action_note_dark"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_weight="1"
android:orientation="vertical">
<EditText
android:id="@+id/description_edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="16dp"
android:layout_marginLeft="8dp"
android:maxLines="8"
android:layout_gravity="center_vertical"
android:textColor="?android:textColorPrimary"
android:textColorHint="?android:textColorSecondary"
android:inputType="textMultiLine"/>
</LinearLayout>
</LinearLayout>
</FrameLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
</FrameLayout>

View file

@ -15,7 +15,7 @@
android:paddingLeft="@dimen/list_content_padding"> android:paddingLeft="@dimen/list_content_padding">
<ImageView <ImageView
android:id="@+id/leftIcon" android:id="@+id/leftImageView"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
@ -52,7 +52,7 @@
</LinearLayout> </LinearLayout>
<ImageButton <ImageButton
android:id="@+id/rightIcon" android:id="@+id/rightImageButton"
android:layout_width="@dimen/list_item_height" android:layout_width="@dimen/list_item_height"
android:layout_height="@dimen/list_item_height" android:layout_height="@dimen/list_item_height"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"

View file

@ -736,7 +736,7 @@
<string name="favorite_home_category">Дом</string> <string name="favorite_home_category">Дом</string>
<string name="favorite_friends_category">Сябры</string> <string name="favorite_friends_category">Сябры</string>
<string name="favorite_places_category">Месцы</string> <string name="favorite_places_category">Месцы</string>
<string name="favorite_default_category">Іншае</string> <string name="shared_string_others">Іншае</string>
<string name="favourites_edit_dialog_name">Назва</string> <string name="favourites_edit_dialog_name">Назва</string>
<string name="favourites_edit_dialog_category">Катэгорыя</string> <string name="favourites_edit_dialog_category">Катэгорыя</string>
<string name="shared_string_no_thanks">Не, дзякуй</string> <string name="shared_string_no_thanks">Не, дзякуй</string>
@ -1459,7 +1459,7 @@
<string name="osmo_mode_on">Спыніць сэсыю OsMo</string> <string name="osmo_mode_on">Спыніць сэсыю OsMo</string>
<string name="osmo_mode_off">Запусьціць сэсыю OSMo</string> <string name="osmo_mode_off">Запусьціць сэсыю OSMo</string>
<string name="share_fav_subject">Выбранае адаслана праз OsmAnd</string> <string name="share_fav_subject">Упадабанае адаслана праз OsmAnd</string>
<string name="use_points_as_intermediates">Разлічыць маршрут паміж кропкамі</string> <string name="use_points_as_intermediates">Разлічыць маршрут паміж кропкамі</string>
<string name="tip_recent_changes_1_8_alpha">Зьмены ў 1.8: <string name="tip_recent_changes_1_8_alpha">Зьмены ў 1.8:
* Разьлік маршруту паміж маршрутнымі пунктамі GPX-сьледу * Разьлік маршруту паміж маршрутнымі пунктамі GPX-сьледу
@ -2080,14 +2080,14 @@
<string name="add_opening_hours">Дадаць гадзіны працы</string> <string name="add_opening_hours">Дадаць гадзіны працы</string>
<string name="poi_dialog_poi_type">Тып POI</string> <string name="poi_dialog_poi_type">Тып POI</string>
<string name="please_specify_poi_type">Калі ласка, пазначце тып POI.</string> <string name="please_specify_poi_type">Калі ласка, пазначце тып POI.</string>
<string name="av_locations_descr">Gpx-файл з мецазнаходжаньнем заўваг</string> <string name="av_locations_descr">GPX-файл зь мецазнаходжаньнем заўваг</string>
<string name="av_locations">Месцазнаходжаньні</string> <string name="av_locations">Месцазнаходжаньні</string>
<string name="number_of_rows_in_dash">Колькасьць радкоў на галоўным экране %1$s</string> <string name="number_of_rows_in_dash">Колькасьць радкоў на галоўным экране %1$s</string>
<string name="tag_poi_amenity">грамадзкі аб\'ект</string> <string name="tag_poi_amenity">грамадзкі аб\'ект</string>
<string name="poi_action_delete">выдаліць</string> <string name="poi_action_delete">выдаліць</string>
<string name="working_days">Працоўныя дні</string> <string name="working_days">Працоўныя дні</string>
<string name="recent_places">Нядаўнія месцы</string> <string name="recent_places">Нядаўнія месцы</string>
<string name="favourites">Упадабанае</string> <string name="favourites">Упадабаныя</string>
<string name="saved_at_time">Пасьпяхова захаваны ў: %1$s</string> <string name="saved_at_time">Пасьпяхова захаваны ў: %1$s</string>
<string name="show_gpx">Паказаць GPX</string> <string name="show_gpx">Паказаць GPX</string>
<string name="poi_deleted_localy">POI будуць выдаленыя, як толькі вы загрузіце вашы зьмены</string> <string name="poi_deleted_localy">POI будуць выдаленыя, як толькі вы загрузіце вашы зьмены</string>
@ -2103,4 +2103,7 @@
<string name="roads">Дарогі</string> <string name="roads">Дарогі</string>
<string name="favourites_edit_dialog_title">Зьвесткі пра ўпадабанае</string> <string name="favourites_edit_dialog_title">Зьвесткі пра ўпадабанае</string>
<string name="favourites_context_menu_add">Дадаць упадабанае</string> <string name="favourites_context_menu_add">Дадаць упадабанае</string>
</resources> <string name="shared_string_trip_recording">Запіс падарожжа</string>
<string name="shared_string_navigation">Навігацыя</string>
<string name="osmand_running_in_background">Працуе ў фоне</string>
</resources>

View file

@ -947,7 +947,7 @@ OsmAnd е с отворен код и активно да се развива.
<string name="favorite_home_category">Дом</string> <string name="favorite_home_category">Дом</string>
<string name="favorite_friends_category">Приятели</string> <string name="favorite_friends_category">Приятели</string>
<string name="favorite_places_category">Места</string> <string name="favorite_places_category">Места</string>
<string name="favorite_default_category">Други</string> <string name="shared_string_others">Други</string>
<string name="favourites_edit_dialog_name">Име</string> <string name="favourites_edit_dialog_name">Име</string>
<string name="favourites_edit_dialog_category">Категория</string> <string name="favourites_edit_dialog_category">Категория</string>
<string name="shared_string_no_thanks">Не, благодаря</string> <string name="shared_string_no_thanks">Не, благодаря</string>

View file

@ -302,7 +302,7 @@
<string name="favourites_delete_multiple_succesful">S\'ha suprimit amb èxit el(s) punt(s) preferit(s).</string> <string name="favourites_delete_multiple_succesful">S\'ha suprimit amb èxit el(s) punt(s) preferit(s).</string>
<string name="favorite_friends_category">Amics</string> <string name="favorite_friends_category">Amics</string>
<string name="favorite_places_category">Llocs</string> <string name="favorite_places_category">Llocs</string>
<string name="favorite_default_category">Altres</string> <string name="shared_string_others">Altres</string>
<string name="favourites_edit_dialog_name">Nom</string> <string name="favourites_edit_dialog_name">Nom</string>
<string name="favourites_edit_dialog_category">Categoria</string> <string name="favourites_edit_dialog_category">Categoria</string>
@ -2131,4 +2131,7 @@ Per retornar a l\'estil habitual dels mapes d\'OsmAnd, només cal desactivar aqu
<string name="unsaved_changes_will_be_lost">Es perdran tots els canvis no desats. Voleu continuar?</string> <string name="unsaved_changes_will_be_lost">Es perdran tots els canvis no desats. Voleu continuar?</string>
<string name="downloads_left_template">%1$s baixades pendents</string> <string name="downloads_left_template">%1$s baixades pendents</string>
<string name="roads">Carreteres</string> <string name="roads">Carreteres</string>
</resources> <string name="shared_string_trip_recording">Enregistrament de trajectes</string>
<string name="shared_string_navigation">Navegació</string>
<string name="osmand_running_in_background">Execució en procés de fons</string>
</resources>

View file

@ -253,7 +253,7 @@
<string name="favorite_home_category">Doma</string> <string name="favorite_home_category">Doma</string>
<string name="favorite_friends_category">Přátelé</string> <string name="favorite_friends_category">Přátelé</string>
<string name="favorite_places_category">Místa</string> <string name="favorite_places_category">Místa</string>
<string name="favorite_default_category">Ostatní</string> <string name="shared_string_others">Ostatní</string>
<string name="shared_string_no_thanks">Není potřeba</string> <string name="shared_string_no_thanks">Není potřeba</string>
<string name="basemap_missing">Chybí základní mapa světa. Prosím stáhněte ji pro správnou funkci programu.</string> <string name="basemap_missing">Chybí základní mapa světa. Prosím stáhněte ji pro správnou funkci programu.</string>
<string name="vector_data_missing">Na SD kartě nejsou uložena žádná offline data. Prosím stáhněte je pro použití map v offline módu.</string> <string name="vector_data_missing">Na SD kartě nejsou uložena žádná offline data. Prosím stáhněte je pro použití map v offline módu.</string>

View file

@ -554,7 +554,7 @@
<string name="favorite_home_category">Hjem</string> <string name="favorite_home_category">Hjem</string>
<string name="favorite_friends_category">Venner</string> <string name="favorite_friends_category">Venner</string>
<string name="favorite_places_category">Steder</string> <string name="favorite_places_category">Steder</string>
<string name="favorite_default_category">Andre</string> <string name="shared_string_others">Andre</string>
<string name="favourites_edit_dialog_name">Navn</string> <string name="favourites_edit_dialog_name">Navn</string>
<string name="favourites_edit_dialog_category">Kategori</string> <string name="favourites_edit_dialog_category">Kategori</string>
<string name="shared_string_no_thanks">Nej tak</string> <string name="shared_string_no_thanks">Nej tak</string>
@ -2138,6 +2138,9 @@
<string name="simulate_your_location_descr">Simuler ved brug af optaget GPX eller beregnet rute</string> <string name="simulate_your_location_descr">Simuler ved brug af optaget GPX eller beregnet rute</string>
<string name="downloads_left_template">%1$s filhentninger tilbage</string> <string name="downloads_left_template">%1$s filhentninger tilbage</string>
<string name="roads">Veje</string> <string name="roads">Veje</string>
<string name="favourites_edit_dialog_title">Favorit information</string> <string name="favourites_edit_dialog_title">Favoritinformation</string>
<string name="favourites_context_menu_add">Tilføj favorit</string> <string name="favourites_context_menu_add">Tilføj favorit</string>
</resources> <string name="shared_string_trip_recording">Optag ture</string>
<string name="shared_string_navigation">Navigation</string>
<string name="osmand_running_in_background">Kører i baggrunden</string>
</resources>

View file

@ -619,7 +619,7 @@
<string name="favorite_home_category">Zu Hause</string> <string name="favorite_home_category">Zu Hause</string>
<string name="favorite_friends_category">Freunde</string> <string name="favorite_friends_category">Freunde</string>
<string name="favorite_places_category">Sehenswertes</string> <string name="favorite_places_category">Sehenswertes</string>
<string name="favorite_default_category">Andere</string> <string name="shared_string_others">Andere</string>
<string name="favourites_edit_dialog_name">Name</string> <string name="favourites_edit_dialog_name">Name</string>
<string name="favourites_edit_dialog_category">Kategorie</string> <string name="favourites_edit_dialog_category">Kategorie</string>
<string name="shared_string_no_thanks">Nicht verwendet</string> <string name="shared_string_no_thanks">Nicht verwendet</string>

View file

@ -1434,7 +1434,7 @@
<string name="favorite_home_category">Inicio</string> <string name="favorite_home_category">Inicio</string>
<string name="favorite_friends_category">Amigos</string> <string name="favorite_friends_category">Amigos</string>
<string name="favorite_places_category">Lugares</string> <string name="favorite_places_category">Lugares</string>
<string name="favorite_default_category">Otros</string> <string name="shared_string_others">Otros</string>
<string name="favourites_edit_dialog_name">Nombre</string> <string name="favourites_edit_dialog_name">Nombre</string>
<string name="favourites_edit_dialog_category">Categoría</string> <string name="favourites_edit_dialog_category">Categoría</string>
<string name="shared_string_no_thanks">No, gracias</string> <string name="shared_string_no_thanks">No, gracias</string>

View file

@ -183,7 +183,7 @@
<string name="favorite_home_category">Inicio</string> <string name="favorite_home_category">Inicio</string>
<string name="favorite_friends_category">Amigos</string> <string name="favorite_friends_category">Amigos</string>
<string name="favorite_places_category">Lugares</string> <string name="favorite_places_category">Lugares</string>
<string name="favorite_default_category">Otros</string> <string name="shared_string_others">Otros</string>
<string name="favourites_edit_dialog_name">Nombre</string> <string name="favourites_edit_dialog_name">Nombre</string>
<string name="favourites_edit_dialog_category">Categoría</string> <string name="favourites_edit_dialog_category">Categoría</string>
<string name="shared_string_no_thanks">No, gracias</string> <string name="shared_string_no_thanks">No, gracias</string>

View file

@ -217,7 +217,7 @@
<string name="favorite_home_category">Koti</string> <string name="favorite_home_category">Koti</string>
<string name="favorite_friends_category">Ystävät</string> <string name="favorite_friends_category">Ystävät</string>
<string name="favorite_places_category">Paikat</string> <string name="favorite_places_category">Paikat</string>
<string name="favorite_default_category">Muut</string> <string name="shared_string_others">Muut</string>
<string name="favourites_edit_dialog_name">Nimi</string> <string name="favourites_edit_dialog_name">Nimi</string>
<string name="favourites_edit_dialog_category">Kategoria</string> <string name="favourites_edit_dialog_category">Kategoria</string>
<string name="shared_string_no_thanks">Ei kiitos</string> <string name="shared_string_no_thanks">Ei kiitos</string>
@ -894,4 +894,5 @@
<string name="shared_string_show_details">Näytä tiedot</string> <string name="shared_string_show_details">Näytä tiedot</string>
<string name="layer_amenity_label">POI-nimet</string> <string name="layer_amenity_label">POI-nimet</string>
<string name="context_menu_item_directions_to">Navigoi kohteeseen</string> <string name="context_menu_item_directions_to">Navigoi kohteeseen</string>
</resources> <string name="interrupt_music">Keskeytä musiikki</string>
</resources>

View file

@ -178,7 +178,7 @@
<string name="favorite_home_category">Domicile</string> <string name="favorite_home_category">Domicile</string>
<string name="favorite_friends_category">Amis</string> <string name="favorite_friends_category">Amis</string>
<string name="favorite_places_category">Lieux</string> <string name="favorite_places_category">Lieux</string>
<string name="favorite_default_category">Autres</string> <string name="shared_string_others">Autres</string>
<string name="shared_string_no_thanks">Pas nécessaire</string> <string name="shared_string_no_thanks">Pas nécessaire</string>
<string name="basemap_missing">La carte mondiale de base est absente (couvrant le monde entier à faible zoom). Pensez à télécharger World_basemap_x.obf pour avoir un environnement complet.</string> <string name="basemap_missing">La carte mondiale de base est absente (couvrant le monde entier à faible zoom). Pensez à télécharger World_basemap_x.obf pour avoir un environnement complet.</string>
<string name="vector_data_missing">Il n\'y a pas de cartes (\'hors-ligne\') sur la carte SD. Pensez à en télécharger pour utiliser OsmAnd hors-ligne.</string> <string name="vector_data_missing">Il n\'y a pas de cartes (\'hors-ligne\') sur la carte SD. Pensez à en télécharger pour utiliser OsmAnd hors-ligne.</string>

View file

@ -232,7 +232,7 @@
<string name="favorite_home_category">Család</string> <string name="favorite_home_category">Család</string>
<string name="favorite_friends_category">Barátok</string> <string name="favorite_friends_category">Barátok</string>
<string name="favorite_places_category">Helyek</string> <string name="favorite_places_category">Helyek</string>
<string name="favorite_default_category">Egyéb</string> <string name="shared_string_others">Egyéb</string>
<string name="favourites_edit_dialog_name">Név</string> <string name="favourites_edit_dialog_name">Név</string>
<string name="favourites_edit_dialog_category">Kategória</string> <string name="favourites_edit_dialog_category">Kategória</string>
<string name="shared_string_no_thanks">Nem szükséges</string> <string name="shared_string_no_thanks">Nem szükséges</string>

View file

@ -168,7 +168,7 @@
<string name="favorite_home_category">Casa</string> <string name="favorite_home_category">Casa</string>
<string name="favorite_friends_category">Amici</string> <string name="favorite_friends_category">Amici</string>
<string name="favorite_places_category">Luoghi</string> <string name="favorite_places_category">Luoghi</string>
<string name="favorite_default_category">Altro</string> <string name="shared_string_others">Altro</string>
<string name="shared_string_no_thanks">No, grazie</string> <string name="shared_string_no_thanks">No, grazie</string>
<string name="basemap_missing">La mappa di base del mondo (ricopre l\'intero mondo per zoom bassi) è mancante. Puoi scaricare World_basemap_x.obf per un sistema completo.</string> <string name="basemap_missing">La mappa di base del mondo (ricopre l\'intero mondo per zoom bassi) è mancante. Puoi scaricare World_basemap_x.obf per un sistema completo.</string>
<string name="vector_data_missing">Mancano i dati (\'offline\') nella scheda SD. Ti consigliamo di scaricarli per poter usare le mappe offline.</string> <string name="vector_data_missing">Mancano i dati (\'offline\') nella scheda SD. Ti consigliamo di scaricarli per poter usare le mappe offline.</string>
@ -2140,7 +2140,7 @@ Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestaz
<string name="rendering_value_boldOutline_name">Contorno in grassetto</string> <string name="rendering_value_boldOutline_name">Contorno in grassetto</string>
<string name="traffic_warning_hazard">Pericolo</string> <string name="traffic_warning_hazard">Pericolo</string>
<string name="dahboard_options_dialog_title">Configura il pannello di controllo</string> <string name="dahboard_options_dialog_title">Configura il pannello di controllo</string>
<string name="shared_string_card_was_hidden">La carta era nascosta</string> <string name="shared_string_card_was_hidden">La scheda è stata nascosta</string>
<string name="shared_string_undo">Annulla azione</string> <string name="shared_string_undo">Annulla azione</string>
<string name="shared_string_skip">Salta</string> <string name="shared_string_skip">Salta</string>
<string name="app_name_osmand">OsmAnd</string> <string name="app_name_osmand">OsmAnd</string>
@ -2158,14 +2158,14 @@ Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestaz
<string name="closing_at">Chiude alle</string> <string name="closing_at">Chiude alle</string>
<string name="av_locations_descr">File GPX con note locali</string> <string name="av_locations_descr">File GPX con note locali</string>
<string name="av_locations">Località</string> <string name="av_locations">Località</string>
<string name="tag_poi_name">Nome</string> <string name="tag_poi_name">nome</string>
<string name="tag_poi_amenity">amenità</string> <string name="tag_poi_amenity">amenità</string>
<string name="contact_info">Informazioni di contatto</string> <string name="contact_info">Informazioni di contatto</string>
<string name="description">Descrizione</string> <string name="description">Descrizione</string>
<string name="add_opening_hours">Aggiungi orari di apertura</string> <string name="add_opening_hours">Aggiungi orari di apertura</string>
<string name="poi_dialog_poi_type">Tipo di PDI</string> <string name="poi_dialog_poi_type">Tipo di PDI</string>
<string name="number_of_rows_in_dash">Numero di righe del cruscotto %1$s</string> <string name="number_of_rows_in_dash">Numero di righe del cruscotto %1$s</string>
<string name="please_specify_poi_type">Per favore specifica il tipo si PDI.</string> <string name="please_specify_poi_type">Per favore specifica il tipo di PDI.</string>
<string name="poi_action_delete">elimina</string> <string name="poi_action_delete">elimina</string>
<string name="working_days">Giorni lavorativi</string> <string name="working_days">Giorni lavorativi</string>
<string name="recent_places">Luoghi recenti</string> <string name="recent_places">Luoghi recenti</string>
@ -2184,4 +2184,7 @@ Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestaz
<string name="favourites_edit_dialog_title">Informazioni preferite</string> <string name="favourites_edit_dialog_title">Informazioni preferite</string>
<string name="favourites_context_menu_add">Aggiungi preferito</string> <string name="favourites_context_menu_add">Aggiungi preferito</string>
<string name="roads">Strade</string> <string name="roads">Strade</string>
</resources> <string name="shared_string_trip_recording">Registrazione viaggio</string>
<string name="shared_string_navigation">Navigazione</string>
<string name="osmand_running_in_background">Avviato in backgroung</string>
</resources>

View file

@ -1236,7 +1236,7 @@ POIの更新は利用できません</string>
<string name="favorite_home_category">自宅</string> <string name="favorite_home_category">自宅</string>
<string name="favorite_friends_category">友人宅</string> <string name="favorite_friends_category">友人宅</string>
<string name="favorite_places_category">場所</string> <string name="favorite_places_category">場所</string>
<string name="favorite_default_category">その他</string> <string name="shared_string_others">その他</string>
<string name="favourites_edit_dialog_name">名前</string> <string name="favourites_edit_dialog_name">名前</string>
<string name="favourites_edit_dialog_category">カテゴリー</string> <string name="favourites_edit_dialog_category">カテゴリー</string>
<string name="shared_string_no_thanks">必要ありません</string> <string name="shared_string_no_thanks">必要ありません</string>

View file

@ -262,7 +262,7 @@
<string name="favorite_home_category"></string> <string name="favorite_home_category"></string>
<string name="favorite_friends_category">친구</string> <string name="favorite_friends_category">친구</string>
<string name="favorite_places_category">장소</string> <string name="favorite_places_category">장소</string>
<string name="favorite_default_category">기타</string> <string name="shared_string_others">기타</string>
<string name="favourites_edit_dialog_name">이름</string> <string name="favourites_edit_dialog_name">이름</string>
<string name="favourites_edit_dialog_category">카테고리</string> <string name="favourites_edit_dialog_category">카테고리</string>

View file

@ -369,7 +369,7 @@
<string name="favorite_home_category">Namai</string> <string name="favorite_home_category">Namai</string>
<string name="favorite_friends_category">Draugai</string> <string name="favorite_friends_category">Draugai</string>
<string name="favorite_places_category">Vietos</string> <string name="favorite_places_category">Vietos</string>
<string name="favorite_default_category">Kitos</string> <string name="shared_string_others">Kitos</string>
<string name="favourites_edit_dialog_name">Pavadinimas</string> <string name="favourites_edit_dialog_name">Pavadinimas</string>
<string name="favourites_edit_dialog_category">Kategorija</string> <string name="favourites_edit_dialog_category">Kategorija</string>
<string name="shared_string_no_thanks">Ačiū, ne</string> <string name="shared_string_no_thanks">Ačiū, ne</string>

View file

@ -239,7 +239,7 @@
<string name="favorite_home_category">Mājas</string> <string name="favorite_home_category">Mājas</string>
<string name="favorite_friends_category">Draugi</string> <string name="favorite_friends_category">Draugi</string>
<string name="favorite_places_category">Vietas</string> <string name="favorite_places_category">Vietas</string>
<string name="favorite_default_category">Pārējais</string> <string name="shared_string_others">Pārējais</string>
<string name="favourites_edit_dialog_name">Nosaukums</string> <string name="favourites_edit_dialog_name">Nosaukums</string>
<string name="favourites_edit_dialog_category">Kategorija</string> <string name="favourites_edit_dialog_category">Kategorija</string>
<string name="shared_string_no_thanks">Nē, paldies</string> <string name="shared_string_no_thanks">Nē, paldies</string>

View file

@ -125,7 +125,7 @@
<string name="favorite_home_category">घर</string> <string name="favorite_home_category">घर</string>
<string name="favorite_friends_category">मित्र</string> <string name="favorite_friends_category">मित्र</string>
<string name="favorite_places_category">ठिकाणे</string> <string name="favorite_places_category">ठिकाणे</string>
<string name="favorite_default_category">इतर</string> <string name="shared_string_others">इतर</string>
<string name="favourites_edit_dialog_name">नाव</string> <string name="favourites_edit_dialog_name">नाव</string>
<string name="favourites_edit_dialog_category">वर्गीकरण</string> <string name="favourites_edit_dialog_category">वर्गीकरण</string>
<string name="shared_string_no_thanks">नाही, धन्यवाद</string> <string name="shared_string_no_thanks">नाही, धन्यवाद</string>

View file

@ -895,10 +895,10 @@
<string name="poi_cutline">Tablica wyjaśniająca</string> <string name="poi_cutline">Tablica wyjaśniająca</string>
<string name="poi_tree">Drzewo</string> <string name="poi_tree">Drzewo</string>
<string name="poi_kent_carriage_gap">Bramka (szerokość powozu)</string> <string name="poi_kent_carriage_gap">Bramka (szerokość powozu)</string>
<string name="poi_icn_ref">Sieć węzłów międzynarodowej sieci rowerowej</string> <string name="poi_icn_ref">Międzynarodowa trasa rowerowa</string>
<string name="poi_ncn_ref">Sieć węzłów krajowej sieci rowerowej</string> <string name="poi_ncn_ref">Krajowa trasa rowerowa</string>
<string name="poi_rcn_ref">Sieć węzłów regionalnej sieci rowerowej</string> <string name="poi_rcn_ref">Regionalna trasa rowerowa</string>
<string name="poi_lcn_ref">Sieć węzłów lokalnej sieci rowerowej</string> <string name="poi_lcn_ref">Lokalna trasa rowerowa</string>
<string name="poi_iwn_ref">Sieć węzłów międzynarodowej sieci pieszej</string> <string name="poi_iwn_ref">Sieć węzłów międzynarodowej sieci pieszej</string>
<string name="poi_nwn_ref">Sieć węzłów krajowej sieci pieszej</string> <string name="poi_nwn_ref">Sieć węzłów krajowej sieci pieszej</string>
<string name="poi_rwn_ref">Sieć węzłów regionalnej sieci pieszej</string> <string name="poi_rwn_ref">Sieć węzłów regionalnej sieci pieszej</string>

View file

@ -72,7 +72,7 @@
<string name="favorite_home_category">Dom</string> <string name="favorite_home_category">Dom</string>
<string name="favorite_friends_category">Znajomi</string> <string name="favorite_friends_category">Znajomi</string>
<string name="favorite_places_category">Miejsca</string> <string name="favorite_places_category">Miejsca</string>
<string name="favorite_default_category">Inne</string> <string name="shared_string_others">Inne</string>
<string name="shared_string_no_thanks">Niepotrzebne</string> <string name="shared_string_no_thanks">Niepotrzebne</string>
<string name="basemap_missing">Podstawowa mapa świata jest niezainstalowana. Pobierz plik World_basemap_x.obf.</string> <string name="basemap_missing">Podstawowa mapa świata jest niezainstalowana. Pobierz plik World_basemap_x.obf.</string>
<string name="vector_data_missing">Brak danych (\'offline\') w urządzeniu na karcie SD. Musisz je najpierw pobrać, by używać map offline.</string> <string name="vector_data_missing">Brak danych (\'offline\') w urządzeniu na karcie SD. Musisz je najpierw pobrać, by używać map offline.</string>
@ -2241,4 +2241,9 @@ Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Ant
<string name="address_unknown">Adres nie jest jeszcze znany</string> <string name="address_unknown">Adres nie jest jeszcze znany</string>
<string name="unsaved_changes_will_be_lost">Wszelkie niezapisane zmiany zostaną utracone. Kontynuować?</string> <string name="unsaved_changes_will_be_lost">Wszelkie niezapisane zmiany zostaną utracone. Kontynuować?</string>
<string name="are_you_sure">Czy na pewno?</string> <string name="are_you_sure">Czy na pewno?</string>
</resources> <string name="shared_string_navigation">Nawigacja</string>
<string name="osmand_running_in_background">Uruchomiona w tle</string>
<string name="simulate_your_location_stop_descr">Zatrzymaj symulację pozycji</string>
<string name="favourites_context_menu_add">Dodaj do ulubionych</string>
<string name="roads">Drogi</string>
</resources>

View file

@ -1263,7 +1263,7 @@
<string name="favorite_delete_multiple">Você apagará %1$d favorito(s) e %2$d grupo(s) favorito(s). Continuar?</string> <string name="favorite_delete_multiple">Você apagará %1$d favorito(s) e %2$d grupo(s) favorito(s). Continuar?</string>
<string name="favorite_friends_category">Amigos</string> <string name="favorite_friends_category">Amigos</string>
<string name="favorite_places_category">Lugares</string> <string name="favorite_places_category">Lugares</string>
<string name="favorite_default_category">Outros</string> <string name="shared_string_others">Outros</string>
<string name="favourites_edit_dialog_name">Nome</string> <string name="favourites_edit_dialog_name">Nome</string>
<string name="favourites_edit_dialog_category">Categori­a</string> <string name="favourites_edit_dialog_category">Categori­a</string>
<string name="shared_string_no_thanks">Não, obrigado</string> <string name="shared_string_no_thanks">Não, obrigado</string>

View file

@ -301,7 +301,7 @@
<string name="favorite_home_category">Дом</string> <string name="favorite_home_category">Дом</string>
<string name="favorite_friends_category">Друзья</string> <string name="favorite_friends_category">Друзья</string>
<string name="favorite_places_category">Места</string> <string name="favorite_places_category">Места</string>
<string name="favorite_default_category">Другое</string> <string name="shared_string_others">Другое</string>
<string name="shared_string_no_thanks">Не нужно</string> <string name="shared_string_no_thanks">Не нужно</string>
<string name="basemap_missing">Отсутствует базовая карта, покрывающая весь мир на мелком масштабе. Пожалуйста загрузите World_basemap_x.obf для полноценный работы приложения.</string> <string name="basemap_missing">Отсутствует базовая карта, покрывающая весь мир на мелком масштабе. Пожалуйста загрузите World_basemap_x.obf для полноценный работы приложения.</string>
<string name="vector_data_missing">Локальные данные отсутствуют на SD-карте. Пожалуйста, загрузите их для того, чтобы использовать приложение без Интернета.</string> <string name="vector_data_missing">Локальные данные отсутствуют на SD-карте. Пожалуйста, загрузите их для того, чтобы использовать приложение без Интернета.</string>

View file

@ -1151,7 +1151,7 @@
<string name="favorite_home_category">Domo</string> <string name="favorite_home_category">Domo</string>
<string name="favorite_friends_category">Amigos</string> <string name="favorite_friends_category">Amigos</string>
<string name="favorite_places_category">Logos</string> <string name="favorite_places_category">Logos</string>
<string name="favorite_default_category">Àteru</string> <string name="shared_string_others">Àteru</string>
<string name="favourites_edit_dialog_name">Nùmene</string> <string name="favourites_edit_dialog_name">Nùmene</string>
<string name="favourites_edit_dialog_category">Categoria</string> <string name="favourites_edit_dialog_category">Categoria</string>
<string name="shared_string_no_thanks">No, gràtzias</string> <string name="shared_string_no_thanks">No, gràtzias</string>

View file

@ -347,7 +347,7 @@
<string name="favorite_home_category">Doma</string> <string name="favorite_home_category">Doma</string>
<string name="favorite_friends_category">Priatelia</string> <string name="favorite_friends_category">Priatelia</string>
<string name="favorite_places_category">Miesta</string> <string name="favorite_places_category">Miesta</string>
<string name="favorite_default_category">Iné</string> <string name="shared_string_others">Iné</string>
<string name="shared_string_no_thanks">Netreba</string> <string name="shared_string_no_thanks">Netreba</string>
<string name="basemap_missing">Chýba základná mapa sveta(World Basemap). Prosím, zvážte jej stiahnutie pre správnu funkčnosť.</string> <string name="basemap_missing">Chýba základná mapa sveta(World Basemap). Prosím, zvážte jej stiahnutie pre správnu funkčnosť.</string>
<string name="vector_data_missing">Na SD karte chýbajú offline údaje. Prosím, zvážte ich stiahnutie pre použitie máp bez internetu.</string> <string name="vector_data_missing">Na SD karte chýbajú offline údaje. Prosím, zvážte ich stiahnutie pre použitie máp bez internetu.</string>

View file

@ -508,7 +508,7 @@
<string name="favorite_friends_category">Naslovi prijateljev</string> <string name="favorite_friends_category">Naslovi prijateljev</string>
<string name="favourites_edit_dialog_name">Naziv</string> <string name="favourites_edit_dialog_name">Naziv</string>
<string name="favourites_edit_dialog_category">Skupina</string> <string name="favourites_edit_dialog_category">Skupina</string>
<string name="favorite_default_category">Druge točke</string> <string name="shared_string_others">Druge točke</string>
<string name="favorite_home_category">Domači naslovi</string> <string name="favorite_home_category">Domači naslovi</string>
<string name="favorite_places_category">Priljubljeni kraji</string> <string name="favorite_places_category">Priljubljeni kraji</string>
<string name="favorite_delete_multiple">Izbrisane bodo priljubljene točke (%1$d) in skupine (%2$d). Ali ste prepričani, da želite nadaljevati?</string> <string name="favorite_delete_multiple">Izbrisane bodo priljubljene točke (%1$d) in skupine (%2$d). Ali ste prepričani, da želite nadaljevati?</string>
@ -1990,4 +1990,9 @@
<string name="unsaved_changes_will_be_lost">Vse neshranjene spremembe bodo izgubljene. Ali želite nadaljevati?</string> <string name="unsaved_changes_will_be_lost">Vse neshranjene spremembe bodo izgubljene. Ali želite nadaljevati?</string>
<string name="downloads_left_template">%1$s prejemov v vrsti</string> <string name="downloads_left_template">%1$s prejemov v vrsti</string>
<string name="roads">Poti</string> <string name="roads">Poti</string>
</resources> <string name="shared_string_trip_recording">Beleženje poti</string>
<string name="shared_string_navigation">Navigacija</string>
<string name="osmand_running_in_background">Delovanje v ozadju</string>
<string name="favourites_edit_dialog_title">Podrobnosti o točki</string>
<string name="favourites_context_menu_add">Dodaj priljubljeno</string>
</resources>

View file

@ -273,7 +273,7 @@
<string name="favourites_delete_multiple_succesful">Омиљена тачка(е) је успешно избрисана.</string> <string name="favourites_delete_multiple_succesful">Омиљена тачка(е) је успешно избрисана.</string>
<string name="favorite_friends_category">Пријатељи</string> <string name="favorite_friends_category">Пријатељи</string>
<string name="favorite_places_category">Места</string> <string name="favorite_places_category">Места</string>
<string name="favorite_default_category">Остало</string> <string name="shared_string_others">Остало</string>
<string name="favourites_edit_dialog_name">Име</string> <string name="favourites_edit_dialog_name">Име</string>
<string name="favourites_edit_dialog_category">Врста</string> <string name="favourites_edit_dialog_category">Врста</string>
<string name="shared_string_no_thanks">Не, хвала</string> <string name="shared_string_no_thanks">Не, хвала</string>

View file

@ -434,7 +434,7 @@
<string name="favorite_home_category">Hem</string> <string name="favorite_home_category">Hem</string>
<string name="favorite_friends_category">Vänner</string> <string name="favorite_friends_category">Vänner</string>
<string name="favorite_places_category">Platser</string> <string name="favorite_places_category">Platser</string>
<string name="favorite_default_category">Annat</string> <string name="shared_string_others">Annat</string>
<string name="favourites_edit_dialog_name">Namn</string> <string name="favourites_edit_dialog_name">Namn</string>
<string name="favourites_edit_dialog_category">Kategori</string> <string name="favourites_edit_dialog_category">Kategori</string>
<string name="shared_string_no_thanks">Nej, tack</string> <string name="shared_string_no_thanks">Nej, tack</string>

View file

@ -66,7 +66,7 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com --><resources>
<string name="favorite_home_category">Nhà</string> <string name="favorite_home_category">Nhà</string>
<string name="favorite_friends_category">Bạn bè</string> <string name="favorite_friends_category">Bạn bè</string>
<string name="favorite_places_category">Địa điểm</string> <string name="favorite_places_category">Địa điểm</string>
<string name="favorite_default_category">Khác</string> <string name="shared_string_others">Khác</string>
<string name="shared_string_no_thanks">Không cần</string> <string name="shared_string_no_thanks">Không cần</string>
<string name="basemap_missing">Bản đồ nền (bao phủ toàn bộ thế giới ở tỉ lệ xem nhỏ) bị thiếu. Hãy tải về tập tin World_basemap_x.obf để bổ sung đầy đủ.</string> <string name="basemap_missing">Bản đồ nền (bao phủ toàn bộ thế giới ở tỉ lệ xem nhỏ) bị thiếu. Hãy tải về tập tin World_basemap_x.obf để bổ sung đầy đủ.</string>

View file

@ -89,7 +89,7 @@
<string name="bg_service_sleep_mode_off">運行\n 應用程式在背景運轉</string> <string name="bg_service_sleep_mode_off">運行\n 應用程式在背景運轉</string>
<string name="bg_service_sleep_mode_on">停止\n 在背景運轉</string> <string name="bg_service_sleep_mode_on">停止\n在背景執行</string>
<string name="gps_wakeup_interval">GPS 喚醒間隔:%s</string> <string name="gps_wakeup_interval">GPS 喚醒間隔:%s</string>
<string name="int_continuosly">繼續</string> <string name="int_continuosly">繼續</string>
<string name="screen_is_locked">要解鎖螢幕,按下鎖圖示</string> <string name="screen_is_locked">要解鎖螢幕,按下鎖圖示</string>
@ -427,7 +427,7 @@
<string name="favorite_home_category">住家</string> <string name="favorite_home_category">住家</string>
<string name="favorite_friends_category">朋友</string> <string name="favorite_friends_category">朋友</string>
<string name="favorite_places_category">地點</string> <string name="favorite_places_category">地點</string>
<string name="favorite_default_category">其它</string> <string name="shared_string_others">其它</string>
<string name="favourites_edit_dialog_name">名稱</string> <string name="favourites_edit_dialog_name">名稱</string>
<string name="favourites_edit_dialog_category">類別</string> <string name="favourites_edit_dialog_category">類別</string>
<string name="shared_string_no_thanks">不需要,謝謝</string> <string name="shared_string_no_thanks">不需要,謝謝</string>
@ -2119,4 +2119,7 @@
<string name="favourites_edit_dialog_title">我的最愛資訊</string> <string name="favourites_edit_dialog_title">我的最愛資訊</string>
<string name="favourites_context_menu_add">增加到我的最愛</string> <string name="favourites_context_menu_add">增加到我的最愛</string>
<string name="roads">道路</string> <string name="roads">道路</string>
</resources> <string name="shared_string_trip_recording">旅程錄製</string>
<string name="shared_string_navigation">導航</string>
<string name="osmand_running_in_background">在背景執行</string>
</resources>

View file

@ -1483,7 +1483,7 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
<string name="favorite_home_category">Home</string> <string name="favorite_home_category">Home</string>
<string name="favorite_friends_category">Friends</string> <string name="favorite_friends_category">Friends</string>
<string name="favorite_places_category">Places</string> <string name="favorite_places_category">Places</string>
<string name="favorite_default_category">Others</string> <string name="shared_string_others">Others</string>
<string name="favourites_edit_dialog_name">Name</string> <string name="favourites_edit_dialog_name">Name</string>
<string name="favourites_edit_dialog_category">Category</string> <string name="favourites_edit_dialog_category">Category</string>
<string name="shared_string_no_thanks">No, thanks</string> <string name="shared_string_no_thanks">No, thanks</string>

View file

@ -27,6 +27,16 @@ public class FavouritePoint implements Serializable, LocationPoint {
this.name = name; this.name = name;
} }
public FavouritePoint(FavouritePoint favouritePoint) {
this.latitude = favouritePoint.latitude;
this.longitude = favouritePoint.longitude;
this.category = favouritePoint.category;
this.name = favouritePoint.name;
this.color = favouritePoint.color;
this.description = favouritePoint.description;
this.visible = favouritePoint.visible;
}
public int getColor() { public int getColor() {
return color; return color;
} }

View file

@ -559,7 +559,7 @@ public class FavouritesDbHelper {
addEmptyCategory(context.getString(R.string.favorite_home_category)); addEmptyCategory(context.getString(R.string.favorite_home_category));
addEmptyCategory(context.getString(R.string.favorite_friends_category)); addEmptyCategory(context.getString(R.string.favorite_friends_category));
addEmptyCategory(context.getString(R.string.favorite_places_category)); addEmptyCategory(context.getString(R.string.favorite_places_category));
addEmptyCategory(context.getString(R.string.favorite_default_category)); addEmptyCategory(context.getString(R.string.shared_string_others));
} }
private FavoriteGroup getOrCreateGroup(FavouritePoint p, int defColor) { private FavoriteGroup getOrCreateGroup(FavouritePoint p, int defColor) {

View file

@ -142,7 +142,7 @@ public class DownloadActivity extends BaseDownloadActivity {
} }
}); });
findViewById(R.id.DownloadButton).setOnClickListener(new View.OnClickListener() { findViewById(R.id.downloadButton).setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@ -150,7 +150,7 @@ public class DownloadActivity extends BaseDownloadActivity {
} }
}); });
findViewById(R.id.WikiButton).setOnClickListener(new View.OnClickListener() { findViewById(R.id.wikiButton).setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@ -423,7 +423,7 @@ public class DownloadActivity extends BaseDownloadActivity {
} else { } else {
BasicProgressAsyncTask<?, ?, ?> task = DownloadActivity.downloadListIndexThread.getCurrentRunningTask(); BasicProgressAsyncTask<?, ?, ?> task = DownloadActivity.downloadListIndexThread.getCurrentRunningTask();
boolean running = task instanceof DownloadIndexesThread.DownloadIndexesAsyncTask; boolean running = task instanceof DownloadIndexesThread.DownloadIndexesAsyncTask;
((Button) findViewById(R.id.DownloadButton)).setEnabled(!running); ((Button) findViewById(R.id.downloadButton)).setEnabled(!running);
String text; String text;
int downloads = DownloadActivity.downloadListIndexThread.getDownloads(); int downloads = DownloadActivity.downloadListIndexThread.getDownloads();
if (!running) { if (!running) {
@ -441,9 +441,9 @@ public class DownloadActivity extends BaseDownloadActivity {
text += " (" + (excessLimit ? "! " : "") + getString(R.string.files_limit, left).toLowerCase() + ")"; text += " (" + (excessLimit ? "! " : "") + getString(R.string.files_limit, left).toLowerCase() + ")";
} }
} }
((Button) findViewById(R.id.DownloadButton)).setText(text); ((Button) findViewById(R.id.downloadButton)).setText(text);
List<IndexItem> wikipediaItems = getWikipediaItems(); List<IndexItem> wikipediaItems = getWikipediaItems();
findViewById(R.id.WikiButton).setVisibility(wikipediaItems.size() == 0 ? View.GONE : View.VISIBLE); findViewById(R.id.wikiButton).setVisibility(wikipediaItems.size() == 0 ? View.GONE : View.VISIBLE);
} }
for (WeakReference<Fragment> ref : fragList) { for (WeakReference<Fragment> ref : fragList) {

View file

@ -1,6 +1,8 @@
package net.osmand.plus.download; package net.osmand.plus.download;
import android.content.Context; import android.content.Context;
import android.os.Parcel;
import android.os.Parcelable;
import net.osmand.AndroidUtils; import net.osmand.AndroidUtils;
import net.osmand.IndexConstants; import net.osmand.IndexConstants;
@ -24,34 +26,53 @@ import java.util.Map;
import static net.osmand.IndexConstants.BINARY_MAP_INDEX_EXT; import static net.osmand.IndexConstants.BINARY_MAP_INDEX_EXT;
public class DownloadActivityType { public class DownloadActivityType implements Parcelable {
private static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd.MM.yyyy"); private static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd.MM.yyyy");
private static Map<String, DownloadActivityType> byTag = new HashMap<String, DownloadActivityType>(); private static Map<String, DownloadActivityType> byTag = new HashMap<>();
public static final DownloadActivityType NORMAL_FILE = new DownloadActivityType(R.string.download_regular_maps, "map"); public static final DownloadActivityType NORMAL_FILE = new DownloadActivityType(R.string.download_regular_maps, "map");
public static final DownloadActivityType VOICE_FILE = new DownloadActivityType(R.string.voices, "voice"); public static final DownloadActivityType VOICE_FILE =
new DownloadActivityType(R.string.voices, R.drawable.ic_action_volume_up, "voice");
public static final DownloadActivityType ROADS_FILE = new DownloadActivityType(R.string.download_roads_only_maps, "road_map"); public static final DownloadActivityType ROADS_FILE = new DownloadActivityType(R.string.download_roads_only_maps, "road_map");
public static final DownloadActivityType SRTM_COUNTRY_FILE = new DownloadActivityType(R.string.download_srtm_maps, "srtm_map"); public static final DownloadActivityType SRTM_COUNTRY_FILE =
public static final DownloadActivityType HILLSHADE_FILE = new DownloadActivityType(R.string.download_hillshade_maps, "hillshade"); new DownloadActivityType(R.string.download_srtm_maps,
public static final DownloadActivityType WIKIPEDIA_FILE = new DownloadActivityType(R.string.download_wikipedia_maps, "wikimap"); R.drawable.ic_plugin_srtm, "srtm_map");
public static final DownloadActivityType HILLSHADE_FILE =
new DownloadActivityType(R.string.download_hillshade_maps,
R.drawable.ic_action_hillshade_dark, "hillshade");
public static final DownloadActivityType WIKIPEDIA_FILE =
new DownloadActivityType(R.string.download_wikipedia_maps,
R.drawable.ic_world_globe_dark, "wikimap");
public static final DownloadActivityType LIVE_UPDATES_FILE = new DownloadActivityType(R.string.download_live_updates, "live_updates"); public static final DownloadActivityType LIVE_UPDATES_FILE = new DownloadActivityType(R.string.download_live_updates, "live_updates");
private int resource; private final int stringResource;
private String[] tags; private final int iconResource;
public DownloadActivityType(int resource, String... tags) { private String tag;
this.resource = resource;
this.tags = tags; public DownloadActivityType(int stringResource, int iconResource, String tag) {
for(String st : tags) { this.stringResource = stringResource;
byTag.put(st, this); this.tag = tag;
} byTag.put(tag, this);
this.iconResource = iconResource;
} }
public int getResource(){ public DownloadActivityType(int stringResource, String tag) {
return resource; this.stringResource = stringResource;
this.tag = tag;
byTag.put(tag, this);
iconResource = R.drawable.ic_map;
} }
public int getStringResource(){
return stringResource;
}
public int getIconResource() {
return iconResource;
}
public String getTag() { public String getTag() {
return tags[0]; return tag;
} }
@ -66,7 +87,7 @@ public class DownloadActivityType {
} }
public String getString(Context c) { public String getString(Context c) {
return c.getString(resource); return c.getString(stringResource);
} }
public static DownloadActivityType getIndexType(String tagName) { public static DownloadActivityType getIndexType(String tagName) {
@ -230,9 +251,8 @@ public class DownloadActivityType {
} }
public String getVisibleName(IndexItem indexItem, Context ctx, OsmandRegions osmandRegions) { public String getVisibleName(IndexItem indexItem, Context ctx, OsmandRegions osmandRegions) {
String fileName = indexItem.fileName;
if (this == VOICE_FILE) { if (this == VOICE_FILE) {
String fileName = indexItem.fileName;
if (fileName.endsWith(IndexConstants.VOICE_INDEX_EXT_ZIP)) { if (fileName.endsWith(IndexConstants.VOICE_INDEX_EXT_ZIP)) {
return FileNameTranslationHelper.getVoiceName(ctx, getBasename(indexItem)); return FileNameTranslationHelper.getVoiceName(ctx, getBasename(indexItem));
} else if (fileName.endsWith(IndexConstants.TTSVOICE_INDEX_EXT_ZIP)) { } else if (fileName.endsWith(IndexConstants.TTSVOICE_INDEX_EXT_ZIP)) {
@ -244,9 +264,9 @@ public class DownloadActivityType {
if (bn.endsWith(FileNameTranslationHelper.WIKI_NAME)){ if (bn.endsWith(FileNameTranslationHelper.WIKI_NAME)){
return FileNameTranslationHelper.getWikiName(ctx,bn); return FileNameTranslationHelper.getWikiName(ctx,bn);
} }
if (bn.startsWith(FileNameTranslationHelper.HILL_SHADE)){ // if (this == HILLSHADE_FILE){
return FileNameTranslationHelper.getHillShadeName(ctx, osmandRegions, bn); // return FileNameTranslationHelper.getHillShadeName(ctx, osmandRegions, bn);
} // }
final String lc = bn.toLowerCase(); final String lc = bn.toLowerCase();
String std = FileNameTranslationHelper.getStandardMapName(ctx, lc); String std = FileNameTranslationHelper.getStandardMapName(ctx, lc);
if (std != null) { if (std != null) {
@ -271,8 +291,7 @@ public class DownloadActivityType {
if (l == -1) { if (l == -1) {
l = fileName.length(); l = fileName.length();
} }
String s = fileName.substring(0, l); return fileName.substring(0, l);
return s;
} else if (this == HILLSHADE_FILE) { } else if (this == HILLSHADE_FILE) {
return fileName.replace('_', ' '); return fileName.replace('_', ' ');
} else if (this == LIVE_UPDATES_FILE) { } else if (this == LIVE_UPDATES_FILE) {
@ -314,16 +333,19 @@ public class DownloadActivityType {
if (fileName.endsWith(IndexConstants.EXTRA_ZIP_EXT)) { if (fileName.endsWith(IndexConstants.EXTRA_ZIP_EXT)) {
return fileName.substring(0, fileName.length() - IndexConstants.EXTRA_ZIP_EXT.length()); return fileName.substring(0, fileName.length() - IndexConstants.EXTRA_ZIP_EXT.length());
} }
if (this == HILLSHADE_FILE) {
return fileName.substring(0, fileName.length() - IndexConstants.SQLITE_EXT.length())
.replace(FileNameTranslationHelper.HILL_SHADE, "");
}
if (fileName.endsWith(IndexConstants.SQLITE_EXT)) { if (fileName.endsWith(IndexConstants.SQLITE_EXT)) {
return fileName.substring(0, fileName.length() - IndexConstants.SQLITE_EXT.length()).replace('_', ' '); return fileName.substring(0, fileName.length() - IndexConstants.SQLITE_EXT.length());
} }
if (this == VOICE_FILE) { if (this == VOICE_FILE) {
int l = fileName.lastIndexOf('_'); int l = fileName.lastIndexOf('_');
if (l == -1) { if (l == -1) {
l = fileName.length(); l = fileName.length();
} }
String s = fileName.substring(0, l); return fileName.substring(0, l);
return s;
} }
if (this == LIVE_UPDATES_FILE) { if (this == LIVE_UPDATES_FILE) {
if(fileName.indexOf('.') > 0){ if(fileName.indexOf('.') > 0){
@ -340,6 +362,32 @@ public class DownloadActivityType {
return fileName; return fileName;
} }
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(this.stringResource);
dest.writeInt(this.iconResource);
dest.writeString(this.tag);
}
protected DownloadActivityType(Parcel in) {
this.stringResource = in.readInt();
this.iconResource = in.readInt();
this.tag = in.readString();
byTag.put(tag, this);
}
public static final Parcelable.Creator<DownloadActivityType> CREATOR = new Parcelable.Creator<DownloadActivityType>() {
public DownloadActivityType createFromParcel(Parcel source) {
return new DownloadActivityType(source);
}
public DownloadActivityType[] newArray(int size) {
return new DownloadActivityType[size];
}
};
} }

View file

@ -1,6 +1,8 @@
package net.osmand.plus.download; package net.osmand.plus.download;
import android.content.Context; import android.content.Context;
import android.os.Parcel;
import android.os.Parcelable;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import net.osmand.IndexConstants; import net.osmand.IndexConstants;
@ -18,7 +20,7 @@ import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
public class IndexItem implements Comparable<IndexItem>, HasName { public class IndexItem implements Comparable<IndexItem>, HasName, Parcelable {
private static final Log log = PlatformUtil.getLog(IndexItem.class); private static final Log log = PlatformUtil.getLog(IndexItem.class);
String description; String description;
@ -114,9 +116,9 @@ public class IndexItem implements Comparable<IndexItem>, HasName {
@Override @Override
public int compareTo(@NonNull IndexItem another) { public int compareTo(@NonNull IndexItem another) {
if(another == null) { // if(another == null) {
return -1; // return -1;
} // }
return getFileName().compareTo(another.getFileName()); return getFileName().compareTo(another.getFileName());
} }
@ -146,7 +148,7 @@ public class IndexItem implements Comparable<IndexItem>, HasName {
@Override @Override
public String getName() { public String getName() {
return initializedName; return initializedName + " must be fixed";
} }
public void setName(String initializedName) { public void setName(String initializedName) {
@ -166,4 +168,44 @@ public class IndexItem implements Comparable<IndexItem>, HasName {
", extra=" + extra + ", extra=" + extra +
'}'; '}';
} }
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.description);
dest.writeString(this.fileName);
dest.writeString(this.size);
dest.writeLong(this.timestamp);
dest.writeLong(this.contentSize);
dest.writeLong(this.containerSize);
dest.writeParcelable(this.type, flags);
dest.writeByte(extra ? (byte) 1 : (byte) 0);
dest.writeString(this.initializedName);
}
protected IndexItem(Parcel in) {
this.description = in.readString();
this.fileName = in.readString();
this.size = in.readString();
this.timestamp = in.readLong();
this.contentSize = in.readLong();
this.containerSize = in.readLong();
this.type = in.readParcelable(DownloadActivityType.class.getClassLoader());
this.extra = in.readByte() != 0;
this.initializedName = in.readString();
}
public static final Parcelable.Creator<IndexItem> CREATOR = new Parcelable.Creator<IndexItem>() {
public IndexItem createFromParcel(Parcel source) {
return new IndexItem(source);
}
public IndexItem[] newArray(int size) {
return new IndexItem[size];
}
};
} }

View file

@ -40,7 +40,7 @@ public class UpdatesIndexFragment extends OsmAndListFragment {
private OsmandRegions osmandRegions; private OsmandRegions osmandRegions;
private java.text.DateFormat format; private java.text.DateFormat format;
private UpdateIndexAdapter listAdapter; private UpdateIndexAdapter listAdapter;
List<IndexItem> indexItems = new ArrayList<IndexItem>(); List<IndexItem> indexItems = new ArrayList<>();
@Override @Override
@ -233,7 +233,7 @@ public class UpdatesIndexFragment extends OsmAndListFragment {
private void filterExisting() { private void filterExisting() {
final Map<String, String> listAlreadyDownloaded = DownloadActivity.downloadListIndexThread.getDownloadedIndexFileNames(); final Map<String, String> listAlreadyDownloaded = DownloadActivity.downloadListIndexThread.getDownloadedIndexFileNames();
final List<IndexItem> filtered = new ArrayList<IndexItem>(); final List<IndexItem> filtered = new ArrayList<>();
for (IndexItem fileItem : listAdapter.getIndexFiles()) { for (IndexItem fileItem : listAdapter.getIndexFiles()) {
if (fileItem.isAlreadyDownloaded(listAlreadyDownloaded)) { if (fileItem.isAlreadyDownloaded(listAlreadyDownloaded)) {
filtered.add(fileItem); filtered.add(fileItem);
@ -329,7 +329,7 @@ public class UpdatesIndexFragment extends OsmAndListFragment {
} }
private String getMapDescription(IndexItem item){ private String getMapDescription(IndexItem item){
String typeName = getTypeName(item, item.getType().getResource()); String typeName = getTypeName(item, item.getType().getStringResource());
String date = item.getDate(format); String date = item.getDate(format);
String size = item.getSizeDescription(getActivity()); String size = item.getSizeDescription(getActivity());
return typeName + " " + date + " " + size; return typeName + " " + date + " " + size;

View file

@ -9,7 +9,6 @@ import net.osmand.OsmAndCollator;
import net.osmand.PlatformUtil; import net.osmand.PlatformUtil;
import net.osmand.map.OsmandRegions; import net.osmand.map.OsmandRegions;
import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
import net.osmand.plus.Version; import net.osmand.plus.Version;
import net.osmand.plus.download.DownloadActivityType; import net.osmand.plus.download.DownloadActivityType;
import net.osmand.plus.download.IndexItem; import net.osmand.plus.download.IndexItem;
@ -133,46 +132,64 @@ public class IndexItemCategoryWithSubcat implements Comparable<IndexItemCategory
} }
} }
IndexItemCategoryWithSubcat region; if (i.getType() == DownloadActivityType.VOICE_FILE) {
region = cats.get(i.getBasename()); category.items.add(i);
final String visibleName = i.getVisibleName(ctx, ctx.getRegions()); } else {
i.setName(visibleName); IndexItemCategoryWithSubcat region;
if (region == null) { region = cats.get(i.getBasename());
final CategoryStaticData regionStaticData = new CategoryStaticData(0, 0); // TODO remove
regionStaticData.setName(visibleName); final String visibleName = i.getVisibleName(ctx, ctx.getRegions());
region = new IndexItemCategoryWithSubcat(regionStaticData); i.setName(visibleName);
cats.put(i.getBasename(), region); if (region == null) {
category.subcats.add(region); final CategoryStaticData regionStaticData = new CategoryStaticData(0, 0);
regionStaticData.setName(visibleName);
region = new IndexItemCategoryWithSubcat(regionStaticData);
cats.put(i.getBasename(), region);
category.subcats.add(region);
}
region.items.add(i);
if (i.getType() == DownloadActivityType.NORMAL_FILE
|| i.getType() == DownloadActivityType.WIKIPEDIA_FILE
|| i.getType() == DownloadActivityType.SRTM_COUNTRY_FILE
|| i.getType() == DownloadActivityType.HILLSHADE_FILE) {
category.types.add(i.getType().getStringResource());
region.types.add(i.getType().getStringResource());
}
} }
region.items.add(i);
if (i.getType() == DownloadActivityType.NORMAL_FILE) {
region.types.add(R.string.shared_string_map);
}
if (i.getType() == DownloadActivityType.WIKIPEDIA_FILE) {
region.types.add(R.string.shared_string_wikipedia);
}
if (i.getType() == DownloadActivityType.ROADS_FILE) {
region.types.add(R.string.roads);
}
final CategoryStaticData parent = category.categoryStaticData.getParent();
} }
final Collator collator = OsmAndCollator.primaryCollator(); final Collator collator = OsmAndCollator.primaryCollator();
for (IndexItemCategoryWithSubcat ct : mainList) { for (IndexItemCategoryWithSubcat category : mainList) {
final OsmandRegions osmandRegions = ctx.getResourceManager().getOsmandRegions(); final OsmandRegions osmandRegions = ctx.getResourceManager().getOsmandRegions();
Collections.sort(ct.items, new Comparator<IndexItem>() { sortIndexItemCategoryWithSybcat(category, ctx, osmandRegions, collator);
@Override
public int compare(IndexItem lhs, IndexItem rhs) {
return collator.compare(lhs.getVisibleName(ctx, osmandRegions),
rhs.getVisibleName(ctx, osmandRegions));
}
});
} }
Collections.sort(mainList); Collections.sort(mainList);
return mainList; return mainList;
} }
private static void sortIndexItemCategoryWithSybcat(final IndexItemCategoryWithSubcat category,
final OsmandApplication context,
final OsmandRegions osmandRegions,
final Collator collator) {
if (category.subcats.size() > 0) {
Collections.sort(category.subcats, new Comparator<IndexItemCategoryWithSubcat>() {
@Override
public int compare(IndexItemCategoryWithSubcat lhs, IndexItemCategoryWithSubcat rhs) {
return collator.compare(lhs.getName(), rhs.getName());
}
});
for (IndexItemCategoryWithSubcat subcat : category.subcats) {
sortIndexItemCategoryWithSybcat(subcat, context, osmandRegions, collator);
}
}
Collections.sort(category.items, new Comparator<IndexItem>() {
@Override
public int compare(IndexItem lhs, IndexItem rhs) {
return collator.compare(lhs.getVisibleName(context, osmandRegions),
rhs.getVisibleName(context, osmandRegions));
}
});
}
@Override @Override
public String getName() { public String getName() {
return categoryStaticData.getName(); return categoryStaticData.getName();

View file

@ -12,6 +12,7 @@ import net.osmand.PlatformUtil;
import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandSettings; import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.download.DownloadActivity;
import net.osmand.plus.download.IndexItem; import net.osmand.plus.download.IndexItem;
import net.osmand.plus.helpers.HasName; import net.osmand.plus.helpers.HasName;
@ -57,12 +58,12 @@ public class MapsInCategoryFragment extends DialogFragment {
public void onCategorySelected(@NonNull IndexItemCategoryWithSubcat category) { public void onCategorySelected(@NonNull IndexItemCategoryWithSubcat category) {
LOG.debug("onCategorySelected()"); LOG.debug("onCategorySelected()");
getChildFragmentManager().beginTransaction().replace(R.id.fragmentContainer, createInstance(category).show(getChildFragmentManager(), TAG);
SubcategoriesFragment.createInstance(category)).addToBackStack(null).commit();
} }
public void onIndexItemSelected(@NonNull IndexItem indexItem) { public void onIndexItemSelected(@NonNull IndexItem indexItem) {
LOG.debug("onIndexItemSelected()"); LOG.debug("onIndexItemSelected()");
((DownloadActivity) getActivity()).startDownload(indexItem);
} }
public static MapsInCategoryFragment createInstance( public static MapsInCategoryFragment createInstance(

View file

@ -14,7 +14,6 @@ import android.view.MenuInflater;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter; import android.widget.ArrayAdapter;
import android.widget.ListView; import android.widget.ListView;
import android.widget.ProgressBar; import android.widget.ProgressBar;
@ -55,13 +54,6 @@ public class NewLocalIndexesFragment extends OsmAndListFragment {
ListView listView = (ListView) view.findViewById(android.R.id.list); ListView listView = (ListView) view.findViewById(android.R.id.list);
mAdapter = new CategoriesAdapter(getActivity(), getMyApplication()); mAdapter = new CategoriesAdapter(getActivity(), getMyApplication());
listView.setAdapter(mAdapter); listView.setAdapter(mAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
LOG.debug("onItemClick()");
}
});
View header = inflater.inflate(R.layout.local_index_fragment_header, listView, false); View header = inflater.inflate(R.layout.local_index_fragment_header, listView, false);
initMemoryConsumedCard(header); initMemoryConsumedCard(header);
@ -116,7 +108,6 @@ public class NewLocalIndexesFragment extends OsmAndListFragment {
fragmentTransaction.addToBackStack(null); fragmentTransaction.addToBackStack(null);
MapsInCategoryFragment.createInstance(mAdapter.getItem(position-1)) MapsInCategoryFragment.createInstance(mAdapter.getItem(position-1))
.show(fragmentTransaction, MapsInCategoryFragment.TAG); .show(fragmentTransaction, MapsInCategoryFragment.TAG);
LOG.debug("onListItemClick()");
} }
private DownloadActivity getDownloadActivity() { private DownloadActivity getDownloadActivity() {
@ -124,7 +115,6 @@ public class NewLocalIndexesFragment extends OsmAndListFragment {
} }
public void onCategorizationFinished(List<IndexItem> filtered, List<IndexItemCategoryWithSubcat> cats) { public void onCategorizationFinished(List<IndexItem> filtered, List<IndexItemCategoryWithSubcat> cats) {
LOG.debug("cats=" + cats);
mAdapter.clear(); mAdapter.clear();
mAdapter.addAll(cats); mAdapter.addAll(cats);
} }

View file

@ -16,17 +16,16 @@ import android.widget.ListView;
import android.widget.TextView; import android.widget.TextView;
import net.osmand.PlatformUtil; import net.osmand.PlatformUtil;
import net.osmand.plus.IconsCache;
import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandSettings; import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.download.DownloadActivity;
import net.osmand.plus.download.DownloadActivityType;
import net.osmand.plus.download.IndexItem; import net.osmand.plus.download.IndexItem;
import net.osmand.plus.helpers.HasName; import net.osmand.plus.helpers.HasName;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import java.util.Comparator;
public class SubcategoriesFragment extends Fragment { public class SubcategoriesFragment extends Fragment {
private static final Log LOG = PlatformUtil.getLog(SubcategoriesFragment.class); private static final Log LOG = PlatformUtil.getLog(SubcategoriesFragment.class);
private static final String CATEGORY = "category"; private static final String CATEGORY = "category";
@ -38,21 +37,14 @@ public class SubcategoriesFragment extends Fragment {
assert category != null; assert category != null;
ListView listView = new ListView(getActivity()); ListView listView = new ListView(getActivity());
final MapFilesAdapter mAdapter = new MapFilesAdapter(getActivity(), final OsmandApplication application = (OsmandApplication) getActivity().getApplication();
((OsmandApplication) getActivity().getApplication()).getIconsCache()); final MapFilesAdapter mAdapter = new MapFilesAdapter(getActivity());
listView.setAdapter(mAdapter); listView.setAdapter(mAdapter);
mAdapter.addAll(category.items); mAdapter.addAll(category.items);
mAdapter.addAll(category.subcats); mAdapter.addAll(category.subcats);
mAdapter.sort(new Comparator<HasName>() {
@Override
public int compare(HasName lhs, HasName rhs) {
return lhs.getName().compareTo(rhs.getName());
}
});
View freeVersionBanner = inflater.inflate(R.layout.free_version_banner, listView, false); View freeVersionBanner = inflater.inflate(R.layout.free_version_banner, listView, false);
final OsmandSettings settings = final OsmandSettings settings = application.getSettings();
((OsmandApplication) getActivity().getApplication()).getSettings();
DownloadsUiInitHelper.initFreeVersionBanner(freeVersionBanner, settings, getResources()); DownloadsUiInitHelper.initFreeVersionBanner(freeVersionBanner, settings, getResources());
listView.addHeaderView(freeVersionBanner); listView.addHeaderView(freeVersionBanner);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@ -83,12 +75,8 @@ public class SubcategoriesFragment extends Fragment {
private static class MapFilesAdapter extends ArrayAdapter<HasName> { private static class MapFilesAdapter extends ArrayAdapter<HasName> {
public MapFilesAdapter(Context context) {
private final IconsCache iconsCache;
public MapFilesAdapter(Context context, IconsCache iconsCache) {
super(context, R.layout.two_line_with_images_list_item); super(context, R.layout.two_line_with_images_list_item);
this.iconsCache = iconsCache;
} }
@Override @Override
@ -97,40 +85,21 @@ public class SubcategoriesFragment extends Fragment {
if (convertView == null) { if (convertView == null) {
convertView = LayoutInflater.from(parent.getContext()) convertView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.two_line_with_images_list_item, parent, false); .inflate(R.layout.two_line_with_images_list_item, parent, false);
viewHolder = new ViewHolder(); viewHolder = new ViewHolder(convertView);
viewHolder.nameTextView = (TextView) convertView.findViewById(R.id.name);
viewHolder.descrTextView = (TextView) convertView.findViewById(R.id.description);
viewHolder.leftImageView = (ImageView) convertView.findViewById(R.id.leftIcon);
viewHolder.rightImageView = (ImageView) convertView.findViewById(R.id.rightIcon);
convertView.setTag(viewHolder); convertView.setTag(viewHolder);
} else { } else {
viewHolder = (ViewHolder) convertView.getTag(); viewHolder = (ViewHolder) convertView.getTag();
} }
HasName item = getItem(position); HasName item = getItem(position);
if (item instanceof IndexItemCategoryWithSubcat) { if (item instanceof IndexItemCategoryWithSubcat) {
IndexItemCategoryWithSubcat category = (IndexItemCategoryWithSubcat) item; viewHolder.bindCategory((IndexItemCategoryWithSubcat) item,
viewHolder.nameTextView.setText(category.getName()); (DownloadActivity)getContext());
if (category.types.size() > 0) { } else if (item instanceof IndexItem) {
StringBuilder stringBuilder = new StringBuilder(); viewHolder.bindIndexItem((IndexItem) item, (DownloadActivity) getContext());
Resources resources = getContext().getResources();
for (Integer mapType : category.types) {
stringBuilder.append(resources.getString(mapType));
stringBuilder.append(", ");
}
LOG.debug("stringBuilder=" + stringBuilder);
stringBuilder.delete(stringBuilder.capacity() - 3, stringBuilder.capacity());
viewHolder.descrTextView.setText(stringBuilder.toString());
} else {
// TODO replace with string constant
viewHolder.descrTextView.setText("Others");
}
LOG.debug("category.types=" + category.types);
} else { } else {
viewHolder.nameTextView.setText(item.getName()); throw new IllegalArgumentException("Item must be of type IndexItem or " +
// TODO replace with real values "IndexItemCategory but is of type:" + item.getClass());
viewHolder.descrTextView.setText("Temp values");
} }
viewHolder.leftImageView.setImageDrawable(iconsCache.getContentIcon(R.drawable.ic_map));
return convertView; return convertView;
} }
@ -138,7 +107,45 @@ public class SubcategoriesFragment extends Fragment {
TextView nameTextView; TextView nameTextView;
TextView descrTextView; TextView descrTextView;
ImageView leftImageView; ImageView leftImageView;
ImageView rightImageView; ImageView rightImageButton;
public ViewHolder(View convertView) {
nameTextView = (TextView) convertView.findViewById(R.id.name);
descrTextView = (TextView) convertView.findViewById(R.id.description);
leftImageView = (ImageView) convertView.findViewById(R.id.leftImageView);
rightImageButton = (ImageView) convertView.findViewById(R.id.rightImageButton);
}
public void bindIndexItem(IndexItem indexItem, DownloadActivity context) {
if (indexItem.getType() == DownloadActivityType.VOICE_FILE) {
nameTextView.setText(indexItem.getVisibleName(context,
context.getMyApplication().getRegions()));
} else {
nameTextView.setText(indexItem.getType().getString(context));
}
descrTextView.setText(indexItem.getSizeDescription(context));
leftImageView.setImageDrawable(context.getMyApplication()
.getIconsCache().getContentIcon(indexItem.getType().getIconResource()));
}
public void bindCategory(IndexItemCategoryWithSubcat category,
DownloadActivity context) {
nameTextView.setText(category.getName());
if (category.types.size() > 0) {
StringBuilder stringBuilder = new StringBuilder();
Resources resources = context.getResources();
for (Integer mapType : category.types) {
stringBuilder.append(resources.getString(mapType));
stringBuilder.append(", ");
}
stringBuilder.delete(stringBuilder.length() - 2, stringBuilder.capacity());
descrTextView.setText(stringBuilder.toString());
} else {
descrTextView.setText(R.string.shared_string_others);
}
leftImageView.setImageDrawable(context.getMyApplication()
.getIconsCache().getContentIcon(R.drawable.ic_map));
}
} }
} }
} }

View file

@ -1,10 +1,14 @@
package net.osmand.plus.helpers; package net.osmand.plus.helpers;
import android.content.Context; import android.content.Context;
import net.osmand.IndexConstants; import net.osmand.IndexConstants;
import net.osmand.PlatformUtil;
import net.osmand.map.OsmandRegions; import net.osmand.map.OsmandRegions;
import net.osmand.plus.R; import net.osmand.plus.R;
import org.apache.commons.logging.Log;
import java.lang.reflect.Field; import java.lang.reflect.Field;
/** /**
@ -12,9 +16,9 @@ import java.lang.reflect.Field;
* on 07.07.2014. * on 07.07.2014.
*/ */
public class FileNameTranslationHelper { public class FileNameTranslationHelper {
private static final Log LOG = PlatformUtil.getLog(FileNameTranslationHelper.class);
public static final String WIKI_NAME = "_wiki"; public static final String WIKI_NAME = "_wiki";
public static final String HILL_SHADE = "Hillshade"; public static final String HILL_SHADE = "Hillshade_";
public static String getFileName(Context ctx, OsmandRegions regions, String fileName) { public static String getFileName(Context ctx, OsmandRegions regions, String fileName) {
String basename = getBasename(fileName); String basename = getBasename(fileName);
@ -51,10 +55,8 @@ public class FileNameTranslationHelper {
} }
public static String getHillShadeName(Context ctx, OsmandRegions regions, String basename) { public static String getHillShadeName(Context ctx, OsmandRegions regions, String basename) {
String intermName = basename.replace(HILL_SHADE,"");
String hillsh = ctx.getString(R.string.download_hillshade_item) + " "; String hillsh = ctx.getString(R.string.download_hillshade_item) + " ";
String locName = regions.getLocaleName(basename.trim());
String locName = regions.getLocaleName(intermName.trim().replace(" ", "_"));
return hillsh + locName; return hillsh + locName;
} }

View file

@ -1,5 +1,6 @@
package net.osmand.plus.helpers; package net.osmand.plus.helpers;
public interface HasName { public interface HasName {
@Deprecated
String getName(); String getName();
} }

View file

@ -4,6 +4,7 @@ import android.app.Activity;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.util.Log;
import net.osmand.Location; import net.osmand.Location;
import net.osmand.ResultMatcher; import net.osmand.ResultMatcher;
@ -52,7 +53,7 @@ public class MapContextMenu {
private static final String KEY_CTX_MENU_STREET_STR = "key_ctx_menu_street_str"; private static final String KEY_CTX_MENU_STREET_STR = "key_ctx_menu_street_str";
public boolean isMenuVisible() { public boolean isMenuVisible() {
return mapActivity.getSupportFragmentManager().findFragmentByTag("MapContextMenuFragment") != null; return findMenuFragment() != null;
} }
public PointDescription getPointDescription() { public PointDescription getPointDescription() {
@ -107,8 +108,9 @@ public class MapContextMenu {
public void hide() { public void hide() {
MapContextMenuFragment fragment = findMenuFragment(); MapContextMenuFragment fragment = findMenuFragment();
if (fragment != null) if (fragment != null) {
fragment.dismissMenu(); fragment.dismissMenu();
}
} }
private boolean needStreetName() { private boolean needStreetName() {
@ -138,11 +140,12 @@ public class MapContextMenu {
} }
private MapContextMenuFragment findMenuFragment() { private MapContextMenuFragment findMenuFragment() {
Fragment fragment = mapActivity.getSupportFragmentManager().findFragmentByTag("MapContextMenuFragment"); Fragment fragment = mapActivity.getSupportFragmentManager().findFragmentByTag(MapContextMenuFragment.TAG);
if (fragment != null) if (fragment != null) {
return (MapContextMenuFragment)fragment; return (MapContextMenuFragment) fragment;
else } else {
return null; return null;
}
} }
public int getLeftIconId() { public int getLeftIconId() {
@ -335,8 +338,11 @@ public class MapContextMenu {
public void saveMenuState(Bundle bundle) { public void saveMenuState(Bundle bundle) {
if (object != null) { if (object != null) {
if (object instanceof Amenity) if (object instanceof Amenity) {
bundle.putSerializable(KEY_CTX_MENU_OBJECT, (Amenity)object); bundle.putSerializable(KEY_CTX_MENU_OBJECT, (Amenity) object);
} else if (object instanceof FavouritePoint) {
bundle.putSerializable(KEY_CTX_MENU_OBJECT, (FavouritePoint) object);
}
} }
bundle.putSerializable(KEY_CTX_MENU_POINT_DESC, pointDescription); bundle.putSerializable(KEY_CTX_MENU_POINT_DESC, pointDescription);
bundle.putSerializable(KEY_CTX_MENU_NAME_STR, nameStr); bundle.putSerializable(KEY_CTX_MENU_NAME_STR, nameStr);

View file

@ -10,6 +10,7 @@ import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
import android.util.TypedValue; import android.util.TypedValue;
import android.view.GestureDetector; import android.view.GestureDetector;
@ -511,7 +512,7 @@ public class MapContextMenuFragment extends Fragment {
public void dismissMenu() { public void dismissMenu() {
FragmentActivity activity = getActivity(); FragmentActivity activity = getActivity();
if (activity != null) { if (activity != null) {
activity.getSupportFragmentManager().popBackStack(); activity.getSupportFragmentManager().popBackStack(TAG, FragmentManager.POP_BACK_STACK_INCLUSIVE);
} }
} }
@ -540,8 +541,8 @@ public class MapContextMenuFragment extends Fragment {
MapContextMenuFragment fragment = new MapContextMenuFragment(); MapContextMenuFragment fragment = new MapContextMenuFragment();
mapActivity.getSupportFragmentManager().beginTransaction() mapActivity.getSupportFragmentManager().beginTransaction()
.setCustomAnimations(slideInAnim, slideOutAnim, slideInAnim, slideOutAnim) .setCustomAnimations(slideInAnim, slideOutAnim, slideInAnim, slideOutAnim)
.add(R.id.fragmentContainer, fragment, "MapContextMenuFragment") .add(R.id.fragmentContainer, fragment, TAG)
.addToBackStack(null).commit(); .addToBackStack(TAG).commit();
} }
private MapContextMenu getCtxMenu() { private MapContextMenu getCtxMenu() {

View file

@ -11,7 +11,8 @@ public class FavoritePointEditor extends PointEditor {
private FavouritePoint favorite; private FavouritePoint favorite;
public static final String FRAGMENT_NAME = "FavoritePointEditorFragment"; public static final String TAG = "FavoritePointEditorFragment";
private static final String KEY_CTX_EDIT_FAV_OBJECT = "key_ctx_edit_fav_object";
public FavoritePointEditor(OsmandApplication app, MapActivity mapActivity) { public FavoritePointEditor(OsmandApplication app, MapActivity mapActivity) {
super(app, mapActivity); super(app, mapActivity);
@ -19,17 +20,21 @@ public class FavoritePointEditor extends PointEditor {
@Override @Override
public void saveState(Bundle bundle) { public void saveState(Bundle bundle) {
bundle.putSerializable(KEY_CTX_EDIT_FAV_OBJECT, favorite);
} }
@Override @Override
public void restoreState(Bundle bundle) { public void restoreState(Bundle bundle) {
Object object = bundle.getSerializable(KEY_CTX_EDIT_FAV_OBJECT);
if (object != null) {
favorite = (FavouritePoint)object;
}
} }
@Override @Override
public String getFragmentName() { public String getFragmentTag() {
return FRAGMENT_NAME; return TAG;
} }
public FavouritePoint getFavorite() { public FavouritePoint getFavorite() {

View file

@ -6,8 +6,10 @@ import android.content.DialogInterface;
import android.content.res.Resources; import android.content.res.Resources;
import android.graphics.PorterDuff; import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Bundle;
import net.osmand.data.FavouritePoint; import net.osmand.data.FavouritePoint;
import net.osmand.data.PointDescription;
import net.osmand.plus.FavouritesDbHelper; import net.osmand.plus.FavouritesDbHelper;
import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R; import net.osmand.plus.R;
@ -28,6 +30,11 @@ public class FavoritePointEditorFragment extends PointEditorFragment {
super.onAttach(activity); super.onAttach(activity);
helper = getMyApplication().getFavorites(); helper = getMyApplication().getFavorites();
editor = getMapActivity().getFavoritePointEditor(); editor = getMapActivity().getFavoritePointEditor();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
favorite = editor.getFavorite(); favorite = editor.getFavorite();
} }
@ -53,7 +60,7 @@ public class FavoritePointEditorFragment extends PointEditorFragment {
FavoritePointEditorFragment fragment = new FavoritePointEditorFragment(); FavoritePointEditorFragment fragment = new FavoritePointEditorFragment();
mapActivity.getSupportFragmentManager().beginTransaction() mapActivity.getSupportFragmentManager().beginTransaction()
//.setCustomAnimations(slideInAnim, slideOutAnim, slideInAnim, slideOutAnim) //.setCustomAnimations(slideInAnim, slideOutAnim, slideInAnim, slideOutAnim)
.add(R.id.fragmentContainer, fragment, editor.getFragmentName()) .add(R.id.fragmentContainer, fragment, editor.getFragmentTag())
.addToBackStack(null).commit(); .addToBackStack(null).commit();
} }
@ -82,32 +89,33 @@ public class FavoritePointEditorFragment extends PointEditorFragment {
builder.setPositiveButton(R.string.shared_string_ok, new DialogInterface.OnClickListener() { builder.setPositiveButton(R.string.shared_string_ok, new DialogInterface.OnClickListener() {
@Override @Override
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {
if (editor.isNew()) { doSave(favorite, point.getName(), point.getCategory(), point.getDescription(), needDismiss);
doAddFavorite(point.getName(), point.getCategory(), point.getDescription());
} else {
helper.editFavouriteName(favorite, point.getName(), point.getCategory(), point.getDescription());
}
getMapActivity().getMapView().refreshMap(true);
if (needDismiss) {
dismiss(true);
}
} }
}); });
builder.create().show(); builder.create().show();
} else { } else {
if (editor.isNew()) { doSave(favorite, point.getName(), point.getCategory(), point.getDescription(), needDismiss);
doAddFavorite(point.getName(), point.getCategory(), point.getDescription());
} else {
helper.editFavouriteName(favorite, point.getName(), point.getCategory(), point.getDescription());
}
getMapActivity().getMapView().refreshMap(true);
if (needDismiss) {
dismiss(true);
}
} }
saved = true; saved = true;
} }
private void doSave(FavouritePoint favorite, String name, String category, String description, boolean needDismiss) {
if (editor.isNew()) {
doAddFavorite(name, category, description);
} else {
helper.editFavouriteName(favorite, name, category, description);
}
getMapActivity().getMapView().refreshMap(true);
if (needDismiss) {
dismiss(false);
}
PointDescription pointDescription = favorite.getPointDescription();
pointDescription.setLat(favorite.getLatitude());
pointDescription.setLon(favorite.getLongitude());
getMapActivity().getContextMenu().show(pointDescription, new FavouritePoint(favorite));
}
private void doAddFavorite(String name, String category, String description) { private void doAddFavorite(String name, String category, String description) {
favorite.setName(name); favorite.setName(name);
favorite.setCategory(category); favorite.setCategory(category);

View file

@ -13,7 +13,6 @@ public abstract class PointEditor {
protected OsmandApplication app; protected OsmandApplication app;
protected final MapActivity mapActivity; protected final MapActivity mapActivity;
protected Object object;
protected boolean isNew; protected boolean isNew;
private boolean portraitMode; private boolean portraitMode;
@ -53,10 +52,10 @@ public abstract class PointEditor {
public abstract void saveState(Bundle bundle); public abstract void saveState(Bundle bundle);
public abstract void restoreState(Bundle bundle); public abstract void restoreState(Bundle bundle);
public abstract String getFragmentName(); public abstract String getFragmentTag();
public void hide() { public void hide() {
Fragment fragment = mapActivity.getSupportFragmentManager().findFragmentByTag(getFragmentName()); Fragment fragment = mapActivity.getSupportFragmentManager().findFragmentByTag(getFragmentTag());
if (fragment != null) if (fragment != null)
((PointEditorFragment)fragment).dismiss(); ((PointEditorFragment)fragment).dismiss();
} }

View file

@ -1,12 +1,15 @@
package net.osmand.plus.mapcontextmenu.editors; package net.osmand.plus.mapcontextmenu.editors;
import android.annotation.TargetApi; import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.res.Resources;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.util.DisplayMetrics;
import android.util.TypedValue; import android.util.TypedValue;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@ -14,8 +17,11 @@ import android.view.ViewGroup;
import android.widget.ArrayAdapter; import android.widget.ArrayAdapter;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageButton; import android.widget.ImageButton;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView; import android.widget.TextView;
import net.osmand.plus.FavouritesDbHelper; import net.osmand.plus.FavouritesDbHelper;
@ -23,11 +29,14 @@ import net.osmand.plus.IconsCache;
import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.helpers.AndroidUiHelper;
import net.osmand.plus.widgets.AutoCompleteTextViewEx; import net.osmand.plus.widgets.AutoCompleteTextViewEx;
import net.osmand.util.Algorithms; import net.osmand.util.Algorithms;
import java.util.List; import java.util.List;
import static android.util.TypedValue.COMPLEX_UNIT_DIP;
public abstract class PointEditorFragment extends Fragment { public abstract class PointEditorFragment extends Fragment {
@Override @Override
@ -36,16 +45,26 @@ public abstract class PointEditorFragment extends Fragment {
getEditor().saveState(outState); getEditor().saveState(outState);
} }
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null)
getEditor().restoreState(savedInstanceState);
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB) @TargetApi(Build.VERSION_CODES.HONEYCOMB)
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) { Bundle savedInstanceState) {
if (savedInstanceState != null) getActivity().findViewById(R.id.MapHudButtonsOverlay).setVisibility(View.INVISIBLE);
getEditor().restoreState(savedInstanceState);
View view = inflater.inflate(R.layout.point_editor_fragment, container, false);
View view;
if (getEditor().isLandscapeLayout()) {
view = inflater.inflate(R.layout.point_editor_fragment_land, container, false);
} else {
view = inflater.inflate(R.layout.point_editor_fragment, container, false);
}
Toolbar toolbar = (Toolbar) view.findViewById(R.id.toolbar); Toolbar toolbar = (Toolbar) view.findViewById(R.id.toolbar);
toolbar.setTitle(getToolbarTitle()); toolbar.setTitle(getToolbarTitle());
toolbar.setNavigationIcon(getMyApplication().getIconsCache().getIcon(R.drawable.abc_ic_ab_back_mtrl_am_alpha)); toolbar.setNavigationIcon(getMyApplication().getIconsCache().getIcon(R.drawable.abc_ic_ab_back_mtrl_am_alpha));
@ -128,6 +147,8 @@ public abstract class PointEditorFragment extends Fragment {
save(false); save(false);
} }
super.onDestroyView(); super.onDestroyView();
getActivity().findViewById(R.id.MapHudButtonsOverlay).setVisibility(View.VISIBLE);
} }
protected void savePressed() { protected void savePressed() {
@ -212,4 +233,20 @@ public abstract class PointEditorFragment extends Fragment {
return Algorithms.isEmpty(res) ? null : res; return Algorithms.isEmpty(res) ? null : res;
} }
// Utils
private int getScreenHeight() {
DisplayMetrics dm = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
return dm.heightPixels;
}
private int dpToPx(float dp) {
Resources r = getActivity().getResources();
return (int) TypedValue.applyDimension(
COMPLEX_UNIT_DIP,
dp,
r.getDisplayMetrics()
);
}
} }

View file

@ -0,0 +1,5 @@
package net.osmand.plus.mapcontextmenu.editors.dialogs;
public class CategoryDialogs {
}