Context menu in progress...
This commit is contained in:
parent
6d595bfb98
commit
f93f87a3b0
55 changed files with 1552 additions and 646 deletions
7
OsmAnd/res/anim/slide_in_bottom.xml
Normal file
7
OsmAnd/res/anim/slide_in_bottom.xml
Normal file
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<translate android:fromYDelta="100%p" android:toYDelta="0"
|
||||
android:duration="@android:integer/config_mediumAnimTime"/>
|
||||
<alpha android:fromAlpha="0.0" android:toAlpha="1.0"
|
||||
android:duration="@android:integer/config_mediumAnimTime" />
|
||||
</set>
|
7
OsmAnd/res/anim/slide_out_bottom.xml
Normal file
7
OsmAnd/res/anim/slide_out_bottom.xml
Normal file
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<translate android:fromYDelta="0" android:toYDelta="100%p"
|
||||
android:duration="@android:integer/config_mediumAnimTime"/>
|
||||
<alpha android:fromAlpha="1.0" android:toAlpha="0.0"
|
||||
android:duration="@android:integer/config_mediumAnimTime" />
|
||||
</set>
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
<TextView
|
||||
android:id="@+id/filter_poi_label"
|
||||
android:textSize="@dimen/default_list_text_size_large"
|
||||
android:textSize="@dimen/default_list_text_size"
|
||||
android:textColor="?android:textColorPrimary"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_width="fill_parent"
|
||||
|
|
|
@ -4,19 +4,20 @@
|
|||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/dashboard_background"
|
||||
android:background="?attr/bg_color"
|
||||
android:clickable="true"
|
||||
android:orientation="vertical"
|
||||
tools:context="net.osmand.plus.osmedit.EditPoiFragment"
|
||||
android:clickable="true">
|
||||
tools:context="net.osmand.plus.osmedit.EditPoiFragment">
|
||||
|
||||
<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"
|
||||
android:theme="@style/OsmandLightTheme.Toolbar"
|
||||
android:background="@color/osmand_orange"/>
|
||||
app:contentInsetStart="72dp"/>
|
||||
|
||||
<android.support.design.widget.CoordinatorLayout
|
||||
android:layout_width="match_parent"
|
||||
|
@ -27,7 +28,8 @@
|
|||
<android.support.design.widget.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:theme="@style/OsmandLightTheme.DarkActionbar">
|
||||
android:background="?attr/pstsTabBackground"
|
||||
android:theme="?attr/appbar_layout_theme">
|
||||
<!-- TODO change theme -->
|
||||
<LinearLayout
|
||||
android:layout_width="fill_parent"
|
||||
|
@ -75,9 +77,9 @@
|
|||
android:id="@+id/poiTypeEditText"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:completionThreshold="1"
|
||||
android:drawableRight="@drawable/ic_action_arrow_drop_down"
|
||||
android:hint="@string/poi_dialog_poi_type"
|
||||
android:completionThreshold="1"
|
||||
tools:text="@string/lorem_ipsum"/>
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
@ -95,11 +97,11 @@
|
|||
android:id="@+id/tab_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/color_white"
|
||||
app:tabIndicatorColor="@color/osmand_orange"
|
||||
app:tabSelectedTextColor="@color/osmand_orange"
|
||||
app:tabTextColor="@android:color/darker_gray"
|
||||
app:layout_scrollFlags="scroll"/>
|
||||
android:background="?attr/pstsTabBackground"
|
||||
app:layout_scrollFlags="scroll"
|
||||
app:tabIndicatorColor="?attr/pstsIndicatorColor"
|
||||
app:tabSelectedTextColor="?attr/pstsIndicatorColor"
|
||||
app:tabTextColor="@android:color/darker_gray"/>
|
||||
</android.support.design.widget.AppBarLayout>
|
||||
|
||||
|
||||
|
@ -126,17 +128,19 @@
|
|||
<net.osmand.plus.widgets.ButtonEx
|
||||
android:id="@+id/cancelButton"
|
||||
style="@style/DashboardGeneralButton"
|
||||
android:text="@string/shared_string_cancel"
|
||||
android:height="48dp"
|
||||
android:gravity="center"
|
||||
android:text="@string/shared_string_cancel"
|
||||
android:textColor="@color/dashboard_general_button_text_light"
|
||||
app:textAllCapsCompat="true"/>
|
||||
|
||||
<net.osmand.plus.widgets.ButtonEx
|
||||
android:id="@+id/saveButton"
|
||||
style="@style/DashboardGeneralButton"
|
||||
android:textColor="@color/dashboard_general_button_text_light"
|
||||
tools:text="Save"
|
||||
android:height="48dp"
|
||||
android:gravity="center"
|
||||
app:textAllCapsCompat="true"/>
|
||||
android:textColor="@color/dashboard_general_button_text_light"
|
||||
app:textAllCapsCompat="true"
|
||||
tools:text="Save"/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
xmlns:osmand="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:theme="@style/OsmandLightTheme.NewAppTheme">
|
||||
android:theme="?attr/new_app_theme">
|
||||
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:theme="@style/OsmandLightTheme.NewAppTheme">
|
||||
android:theme="@attr/new_app_theme">
|
||||
|
||||
<net.osmand.plus.widgets.TextViewEx
|
||||
android:id="@+id/contactInfoTextView"
|
||||
|
@ -18,7 +18,7 @@
|
|||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginTop="18dp"
|
||||
android:text="@string/contact_info"
|
||||
android:textColor="@color/color_black"
|
||||
android:textColor="?android:textColorPrimary"
|
||||
osmand:typeface="@string/font_roboto_medium"/>
|
||||
|
||||
<ImageView
|
||||
|
@ -96,7 +96,7 @@
|
|||
android:layout_marginTop="18dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:text="@string/opening_hours"
|
||||
android:textColor="@color/color_black"
|
||||
android:textColor="?android:textColorPrimary"
|
||||
osmand:typeface="@string/font_roboto_medium"/>
|
||||
|
||||
<LinearLayout
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/Text"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dip"
|
||||
android:layout_marginLeft="20dip"
|
||||
android:layout_marginTop="12dip"
|
||||
android:gravity="center_vertical"
|
||||
android:textSize="@dimen/default_list_text_size_large"></TextView>
|
||||
|
||||
</LinearLayout>
|
|
@ -25,7 +25,7 @@
|
|||
android:layout_marginBottom="11dip"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/layer_poi"
|
||||
android:textSize="@dimen/default_list_text_size_large"
|
||||
android:textSize="@dimen/default_list_text_size"
|
||||
android:layout_weight="1" />
|
||||
|
||||
<LinearLayout
|
||||
|
|
156
OsmAnd/res/layout/map_context_menu_fragment.xml
Normal file
156
OsmAnd/res/layout/map_context_menu_fragment.xml
Normal file
|
@ -0,0 +1,156 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout android:id="@+id/context_menu_layout"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
android:background="@android:color/transparent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"
|
||||
android:orientation="vertical">
|
||||
|
||||
<View
|
||||
android:id="@+id/context_menu_shadow_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/context_menu_main"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="0"
|
||||
android:background="@android:color/white"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/context_menu_top_view"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@android:color/white"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/context_menu_icon_layout"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="42dp"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/context_menu_icon_view"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="14dp"
|
||||
android:layout_marginLeft="14dp"
|
||||
android:tint="@color/color_unknown"
|
||||
android:src="@drawable/ic_action_building_number"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/context_menu_line1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="12dp"
|
||||
android:layout_marginRight="12dp"
|
||||
android:text="@string/search_address_building"
|
||||
android:textSize="@dimen/default_list_text_size_large"
|
||||
android:textStyle="bold"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/context_menu_line2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="12dp"
|
||||
android:layout_marginRight="12dp"
|
||||
android:layout_marginTop="3dp"
|
||||
android:text="@string/other_location"
|
||||
android:textColor="@color/secondary_text_disabled_material_light"
|
||||
android:textSize="@dimen/default_list_text_size"/>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1px"
|
||||
android:background="#c9c9c9"/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/context_menu_buttons"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="bottom"
|
||||
android:background="@android:color/white">
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/context_menu_route_button"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_weight="1"
|
||||
android:src="@drawable/map_directions"
|
||||
android:tint="?attr/dashboard_general_button_text_color"/>
|
||||
|
||||
<View
|
||||
android:layout_width="1px"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#c9c9c9"/>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/context_menu_fav_button"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_weight="1"
|
||||
android:src="@drawable/ic_action_fav_dark"
|
||||
android:tint="?attr/dashboard_general_button_text_color"/>
|
||||
|
||||
<View
|
||||
android:layout_width="1px"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#c9c9c9"/>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/context_menu_share_button"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_weight="1"
|
||||
android:src="@drawable/abc_ic_menu_share_mtrl_alpha"
|
||||
android:tint="?attr/dashboard_general_button_text_color"/>
|
||||
|
||||
<View
|
||||
android:layout_width="1px"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#c9c9c9"/>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/context_menu_more_button"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_weight="1"
|
||||
android:src="@drawable/ic_action_core_overflow_dark"
|
||||
android:tint="?attr/dashboard_general_button_text_color"/>
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
|
@ -25,7 +25,7 @@
|
|||
android:id="@+id/daysTextView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/dashboard_black"
|
||||
android:textColor="?android:textColorPrimary"
|
||||
android:textSize="@dimen/default_list_text_size"
|
||||
tools:text="Mo-We"/>
|
||||
|
||||
|
@ -52,7 +52,7 @@
|
|||
android:id="@+id/openingTextView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/dashboard_black"
|
||||
android:textColor="?android:textColorPrimary"
|
||||
android:textSize="@dimen/default_list_text_size"
|
||||
tools:text="08:00"/>
|
||||
|
||||
|
@ -77,7 +77,7 @@
|
|||
android:id="@+id/closingTextView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/dashboard_black"
|
||||
android:textColor="?android:textColorPrimary"
|
||||
android:textSize="@dimen/default_list_text_size"
|
||||
tools:text="20:00"/>
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:orientation="horizontal"
|
||||
android:paddingTop="16dp">
|
||||
|
||||
|
@ -18,7 +19,8 @@
|
|||
android:id="@+id/tagEditText"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="Tag"/>
|
||||
android:hint="Tag"
|
||||
tools:text="asdf"/>
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
|
|
|
@ -3,12 +3,14 @@
|
|||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:paddingBottom="3dp"
|
||||
android:paddingTop="3dp">
|
||||
android:paddingTop="7dp"
|
||||
android:paddingBottom="7dp"
|
||||
android:paddingLeft="16dp"
|
||||
android:paddingRight="16dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/NameLabel"
|
||||
android:textSize="@dimen/default_list_text_size_large"
|
||||
android:textSize="@dimen/default_list_text_size"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent" />
|
||||
</LinearLayout>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
<TextView
|
||||
android:id="@+id/folder_label"
|
||||
android:textSize="@dimen/default_list_text_size_large"
|
||||
android:textSize="@dimen/default_list_text_size"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:textColor="?android:textColorPrimary"
|
||||
android:layout_width="0dp"
|
||||
|
|
|
@ -1,17 +1,22 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<net.osmand.plus.widgets.TextViewEx
|
||||
android:id="@+id/title"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:osmand="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="48dp"
|
||||
android:drawablePadding="24dp"
|
||||
android:gravity="center_vertical"
|
||||
android:padding="16dp"
|
||||
android:textColor="?android:textColorPrimary"
|
||||
android:textSize="@dimen/default_desc_text_size"
|
||||
osmand:typeface="@string/font_roboto_medium"
|
||||
tools:drawableLeft="@drawable/ic_action_search_dark"
|
||||
tools:text="@string/layer_poi"/>
|
||||
android:layout_height="@dimen/list_item_height" >
|
||||
|
||||
<net.osmand.plus.widgets.TextViewEx
|
||||
android:id="@+id/title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/list_item_height"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:drawablePadding="24dp"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingLeft="16dp"
|
||||
android:textColor="?android:textColorPrimary"
|
||||
android:textSize="@dimen/default_list_text_size"
|
||||
osmand:typeface="@string/font_roboto_medium"
|
||||
tools:drawableLeft="@drawable/ic_action_search_dark"
|
||||
tools:text="@string/layer_poi" />
|
||||
|
||||
</LinearLayout>
|
|
@ -1,51 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<net.osmand.access.ExplorableTextView
|
||||
android:id="@+id/TipDescription"
|
||||
android:textSize="@dimen/default_list_text_size_large"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginLeft="4dp"
|
||||
android:layout_marginRight="4dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="fill_horizontal"
|
||||
android:scrollbars="vertical"
|
||||
android:text="" />
|
||||
|
||||
<!-- <TextView android:text="@string/poi_dialog_other_tags_message" android:id="@+id/TextView" android:layout_marginLeft="5dp"
|
||||
android:layout_width="fill_parent" android:layout_height="wrap_content" /> -->
|
||||
<LinearLayout
|
||||
android:id="@+id/LinearLayout"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="15dp"
|
||||
android:gravity="bottom|center"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<Button
|
||||
android:id="@+id/PreviousButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:minWidth="70dp"
|
||||
android:text="@string/shared_string_previous" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/NextButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:minWidth="70dp"
|
||||
android:text="@string/shared_string_next" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/CloseButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:minWidth="70dp"
|
||||
android:text="@string/shared_string_close" />
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
|
@ -2079,4 +2079,9 @@
|
|||
<string name="description">Апісаньне</string>
|
||||
<string name="add_opening_hours">Дадаць гадзіны працы</string>
|
||||
<string name="poi_dialog_poi_type">Тып POI</string>
|
||||
<string name="please_specify_poi_type">Калі ласка, пазначце тып POI.</string>
|
||||
<string name="av_locations_descr">Gpx-файл з мецазнаходжаньнем заўваг</string>
|
||||
<string name="av_locations">Месцазнаходжаньні</string>
|
||||
<string name="number_of_rows_in_dash">Колькасьць радкоў на галоўным экране %1$s</string>
|
||||
<string name="tag_poi_amenity">грамадзкі аб\'ект</string>
|
||||
</resources>
|
||||
|
|
|
@ -1178,7 +1178,7 @@
|
|||
<string name="cancel_navigation">Atura la navegació</string>
|
||||
<string name="clear_destination">Neteja la destinació</string>
|
||||
<string name="download_using_mobile_internet">No teniu habilitada la connexió Wi-Fi. Voleu utilitzar la connexió a Internet actual per les baixades?</string>
|
||||
<string name="street_name">Carrer</string>
|
||||
<string name="street_name">Nom de carrer</string>
|
||||
<string name="hno">Número</string>
|
||||
<string name="monitoring_settings">Enregistrament del trajecte</string>
|
||||
<string name="choose_osmand_theme_descr">Seleccioneu el tema de l\'aplicació</string>
|
||||
|
@ -2104,4 +2104,13 @@ Per retornar a l\'estil habitual dels mapes d\'OsmAnd, només cal desactivar aqu
|
|||
<string name="opening_at">Obert a les</string>
|
||||
<string name="closing_at">Tanquen a les</string>
|
||||
<string name="av_locations">Ubicacions</string>
|
||||
</resources>
|
||||
<string name="av_locations_descr">Fitxer GPX amb posicions comentades</string>
|
||||
<string name="tag_poi_name">nom</string>
|
||||
<string name="contact_info">Informació de contacte</string>
|
||||
<string name="description">Descripció</string>
|
||||
<string name="add_opening_hours">Afegeix l\'horari de servei</string>
|
||||
<string name="poi_dialog_poi_type">Tipus de PDI</string>
|
||||
<string name="please_specify_poi_type">Especifiqueu el tipus de PDI</string>
|
||||
<string name="tag_poi_amenity">instal·lació comunitària</string>
|
||||
<string name="number_of_rows_in_dash">Nombre de files al tauler %1$s</string>
|
||||
</resources>
|
||||
|
|
|
@ -1829,4 +1829,5 @@
|
|||
<string name="simulate_your_location">Προσομοίωση της θέση σας</string>
|
||||
<string name="rendering_value_highContrastRoads_name">Δρόμοι με υψηλή αντίθεση</string>
|
||||
<string name="plugin_settings">Πρόσθετα</string>
|
||||
</resources>
|
||||
<string name="av_locations">Τοποθεσίες</string>
|
||||
</resources>
|
||||
|
|
|
@ -1130,4 +1130,7 @@
|
|||
<string name="poi_denomination_united">Unido</string>
|
||||
<string name="poi_denomination_quaker">cuáquero</string>
|
||||
<string name="poi_denomination_shaktism">Shaktismo</string>
|
||||
<string name="poi_denomination_uniting">Uniendo</string>
|
||||
<string name="poi_denomination_wesleyan">Wesleyan</string>
|
||||
<string name="poi_denomination_shingon_shu">Budismo shingon</string>
|
||||
</resources>
|
||||
|
|
|
@ -2042,4 +2042,6 @@
|
|||
<string name="description">Descripción</string>
|
||||
<string name="add_opening_hours">Añadir horarios de atención</string>
|
||||
<string name="poi_dialog_poi_type">Tipo de PDI</string>
|
||||
<string name="number_of_rows_in_dash">Número de filas en el panel %1$s</string>
|
||||
<string name="please_specify_poi_type">Especifica el tipo de PDI.</string>
|
||||
</resources>
|
||||
|
|
|
@ -1134,4 +1134,6 @@
|
|||
<string name="poi_denomination_uniting">Uniendo</string>
|
||||
<string name="poi_denomination_quaker">Cuáquero</string>
|
||||
<string name="poi_denomination_shaktism">Shaktismo</string>
|
||||
<string name="poi_denomination_wesleyan">Wesleyan</string>
|
||||
<string name="poi_denomination_shingon_shu">Budismo Shingon</string>
|
||||
</resources>
|
||||
|
|
|
@ -2180,4 +2180,6 @@
|
|||
<string name="description">Descripción</string>
|
||||
<string name="add_opening_hours">Añadir horario de atención</string>
|
||||
<string name="poi_dialog_poi_type">Tipo de PDI</string>
|
||||
<string name="number_of_rows_in_dash">Número de filas en el panel %1$s</string>
|
||||
<string name="please_specify_poi_type">Especifica tipo de PDI.</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="no"?><resources><string name="fav_point_dublicate_message">O nome do punto favorito foi cambiado a %1$s para evitar os duplicados.</string>
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<resources><string name="fav_point_dublicate_message">O nome do punto favorito xa está usado; foi cambiado a %1$s para evitar os duplicados.</string>
|
||||
<string name="text_size_descr">Configurar o tamaño da letra no mapa.</string>
|
||||
<string name="text_size">Tamaño da letra</string>
|
||||
<string name="traffic_warning_speed_limit">Límite de velocidade</string>
|
||||
|
@ -47,8 +48,8 @@
|
|||
\n\nA maneira de introdución básica, hai algunhas suxestións e solucións accesíbeis en «Menú» → «Axuda» desde a pantalla do mapa. "</string>
|
||||
<string name="monitoring_settings">Gravación de viaxes</string>
|
||||
<string name="monitoring_settings_descr">Configure como gravar viaxes</string>
|
||||
<string name="record_plugin_description">Garde pistas con só tocar un botón na pantalla do mapa. Mostrea configuración para gravar viaxes en ficheiros GPX locais ou na rede empregando un servizo web.</string>
|
||||
<string name="record_plugin_name">Grave viaxes</string>
|
||||
<string name="record_plugin_description">"Este engadido activa a funcionalidade de gravar e gardar as pistas tocando o trebello de rexistro de GPX na pantalla do mapa ou tamén de rexistrar automaticamente todas as rutas de navegación nun ficheiro GPX.\n\nAs pistas gravadas pódense compartir ou empregar colaborando con OSM. Os atletas poden empregar pistas gravadas para estudar os seus adestramentos. Con OsmAnd é posíbel realizar directamente algunhas análises básicas, como tempos, velocidade media, etc. e as pistas tamén se poden analizar posteriormente con ferramentas de análise de terceiros. "</string>
|
||||
<string name="record_plugin_name">Gravación de viaxes</string>
|
||||
<string name="int_hour">h</string>
|
||||
<string name="duration">Duración</string>
|
||||
<string name="distance">Distancia</string>
|
||||
|
@ -166,7 +167,7 @@
|
|||
<string name="osmo_follow">Seguir</string>
|
||||
<string name="osmo_sign_in">Acceder</string>
|
||||
<string name="osmo_create_groups_confirm">Para poder crear grupos hai que ser usuario rexistrado de OsMo.</string>
|
||||
<string name="osmo_credentials_not_valid">As súas credenciais de osmo non son válidas.</string>
|
||||
<string name="osmo_credentials_not_valid">As súas credenciais de OsMo non son válidas.</string>
|
||||
<string name="osmo_regenerate_login_ids_confirm">Confirma que desexa xerar de novo os seus identificadores persoais? Todos os dispositivos que tivese conectados con vostede non o poderán seguir máis.</string>
|
||||
<string name="osmo_regenerate_login_ids">Xerar de novo o identificador de usuario</string>
|
||||
<string name="osmo_cancel_moving_target">Cancelar o destino móbil</string>
|
||||
|
@ -236,9 +237,9 @@
|
|||
<string name="osmo_mode_off">Iniciar a sesión de OsMo</string>
|
||||
<string name="osmo_settings_debug">Información de depuración</string>
|
||||
<string name="osmo_settings_descr">Configurar as opcións de vixilancia e configurar a canle de vixilancia persoal</string>
|
||||
<string name="osmo_settings">Vixilancia de OpenStreetMap</string>
|
||||
<string name="osmo_plugin_description">"Vixilancia avanzada ao vivo con OpenStreetMap (vexa http://osmo.mobi). Vixile outros dispositivos e sexa vixilado. Cree grupos anónimos, comparta as situacións e comuníquese. Ten diversas opcións para o seguimento das sesións ou para un seguimento permanente. Os grupos anónimos teñen un límite no número de días e nalgunha funcionalidade, como por exemplo que non dispoñan de control remoto e administrador do grupo. Os grupos completamente funcionais teñen que ser creados no sitio web e só os usuarios rexistrados teñen acceso a eles. "</string>
|
||||
<string name="osmo_plugin_name">OsMo (Vixilancia avanzada ao vivo)</string>
|
||||
<string name="osmo_settings">OsMo</string>
|
||||
<string name="osmo_plugin_description">"Este engadido fornece a funcionalidade do que se coñece como vixilancia avanzada ao vivo de OsMo; vexa http://osmo.mobi.\n\nÉ posíbel seguir todos os dispositivos dun grupo participante ao vivo e comunicarse entre si. Vén con diversas opcións para o seguimento das sesións ou para a o seguimento permanente.\n\nOs grupos anónimos poden ser creados espontaneamente para un grupo determinado de días e están limitados nas funcionalidades: non hai control remoto nin administrador do grupo. Os grupos completamente funcionais teñen que ser creados no sitio web e só os usuarios rexistrados teñen acceso a eles. "</string>
|
||||
<string name="osmo_plugin_name">OsMo (Vixilancia de OSM)</string>
|
||||
<string name="always_center_position_on_map">Mostrar a posición sempre no centro</string>
|
||||
<string name="voice_pref_title">Voz</string>
|
||||
<string name="misc_pref_title">Diversos</string>
|
||||
|
@ -307,7 +308,7 @@
|
|||
<string name="keep_and_add_destination_point">Engadir como punto de destino</string>
|
||||
<string name="select_gpx">Seleccionar GPX…</string>
|
||||
<string name="route_descr_select_destination">Seleccionar destino</string>
|
||||
<string name="shared_string_select_on_map">Seleccionar no mapa…</string>
|
||||
<string name="shared_string_select_on_map">Seleccionar no mapa</string>
|
||||
<string name="shared_string_favorite">Favorito…</string>
|
||||
<string name="route_preferences">Preferencias da ruta</string>
|
||||
<string name="route_info">Información sobre a ruta</string>
|
||||
|
@ -360,7 +361,7 @@
|
|||
<string name="app_mode_aircraft">Aeronave</string>
|
||||
<string name="tip_faq_t">Visite https://code.google.com/p/osmand/wiki/FAQ para ver as preguntas máis frecuentes.</string>
|
||||
<string name="tip_faq">Preguntas máis frecuentes</string>
|
||||
<string name="local_osm_changes_delete_all_confirm">Está a piques de eliminar %1$d cambios en osm. Confírmao?</string>
|
||||
<string name="local_osm_changes_delete_all_confirm">Está a piques de eliminar %1$d cambios en OSM. Confírmao?</string>
|
||||
<string name="shared_string_delete_all">Eliminar todo</string>
|
||||
<string name="animate_routing_route_not_calculated">Calcule a ruta primeiro</string>
|
||||
<string name="animate_routing_route">"Simular empregando a ruta calculada "</string>
|
||||
|
@ -498,7 +499,7 @@
|
|||
<string name="cancel_navigation">Parar a navegación</string>
|
||||
<string name="clear_destination">Limpar o destino</string>
|
||||
<string name="download_using_mobile_internet">A rede sen fíos non está ligada agora mesmo. Desexa continuar descargando coa conexión á Internet existente?</string>
|
||||
<string name="street_name">Rúa</string>
|
||||
<string name="street_name">Nome da rúa</string>
|
||||
<string name="hno">Número do edificio</string>
|
||||
<string name="website">Sitio web</string>
|
||||
<string name="phone">Teléfono</string>
|
||||
|
@ -600,7 +601,7 @@
|
|||
<string name="recording_context_menu_delete">Eliminar a gravación</string>
|
||||
<string name="recording_context_menu_play">Reproducir</string>
|
||||
<string name="recording_description">Gravación %1$s %2$s de %3$s</string>
|
||||
<string name="recording_default_name">gravación</string>
|
||||
<string name="recording_default_name">Gravación</string>
|
||||
<string name="shared_string_control_stop">Parar</string>
|
||||
<string name="shared_string_control_start">Comezar</string>
|
||||
<string name="map_widget_av_notes">Notas de son/vídeo</string>
|
||||
|
@ -639,7 +640,7 @@
|
|||
<string name="monitoring_control_start">GPX</string>
|
||||
<string name="no_buildings_found">Non se atopou ningún edificio.</string>
|
||||
<string name="incremental_search_city">Buscar a cidade a incrementos</string>
|
||||
<string name="search_villages_and_postcodes">Buscar vilas e códigos postais</string>
|
||||
<string name="search_villages_and_postcodes">Buscar máis vilas ou códigos postais</string>
|
||||
<string name="rendering_attr_showRoadMaps_description">Seleccionar cando mostrar mapas só de estradas:</string>
|
||||
<string name="rendering_attr_showRoadMaps_name">Mapas só de estradas</string>
|
||||
<string name="safe_mode_description">Executar o aplicativo no modo seguro (empregando o código máis lento de Android no canto do nativo).</string>
|
||||
|
@ -844,7 +845,7 @@
|
|||
<string name="rendering_attr_hmRendered_description">Aumentar a cantidade de detalles que se mostran</string>
|
||||
<string name="rendering_attr_hmRendered_name">Mostrar máis detalles do mapa</string>
|
||||
<string name="local_index_routing_data">Datos de cálculo de ruta</string>
|
||||
<string name="navigate_point_format">Formato:</string>
|
||||
<string name="navigate_point_format">Formato</string>
|
||||
<string name="poi_search_desc">Busca por puntos de interese (PDI)</string>
|
||||
<string name="address_search_desc">Busca polo enderezo</string>
|
||||
<string name="navpoint_search_desc">Coordenadas</string>
|
||||
|
@ -871,7 +872,7 @@
|
|||
<string name="online_map_settings_descr">Configurar as fontes de mapas en teselas con conexión ou gardados temporalmente</string>
|
||||
|
||||
|
||||
<string name="osmand_rastermaps_plugin_description">Mostrar as opcións para configurar diversos mapas en teselas con conexión ou gardados temporalmente como mapa base ou como mapas sobrepostos ou submetidos. Estes mapas tamén poden ser preparados sen conexión e copiados ao cartafol de datos de OsmAnd.</string>
|
||||
<string name="osmand_rastermaps_plugin_description">"Con este engadido pódese acceder a moitos tipos de mapas da rede (chamados de teselas ou raster), desde teselas predefinidas de Openstreetmap (como Mapnik) a imaxes de satélite e capas para propósitos determinados, como mapas climatolóxicos, mapas xeolóxicos, capas con sombreado das pendentes, etc.\n\nCalquera destes mapas pode ser empregado como mapa principal (base) para que apareza na pantalla de mapas de Osm ou superposto ou submetido doutro mapa base (como os mapas sen conexión normais de OsmAnd). Para que un mapa submetido sexa máis visíbel algúns elementos dos mapas vectoriais de OsmAnd poden ser agochados facilmente mediante o menú «Configurar o mapa».\n\nOs mapas en teselas pódense obter directamente a través de recursos na rede ou poden ser preparados para seren empregados sen conexión (e copiarse manualmente a un cartafol de datos de OsmAnd) como base de datos sqlite, que pode ser producida con diversas ferramentas de preparación de mapas de terceiros. "</string>
|
||||
|
||||
<string name="osmand_accessibility_description">Mostrar as opcións para as funcionalidades de accesibilidade especiais.</string>
|
||||
|
||||
|
@ -894,7 +895,7 @@
|
|||
\n\t - Improved in many areas "</string>
|
||||
<string name="osm_editing_plugin_description">Mostrar as opcións precisas para a colaboración con OSM, como recollida ou modificación de obxectos PDI de OSM, abrir ou comentar fallos de OSM e achegar ficheiros GPX gravados (require ter credenciais de OSM).</string>
|
||||
<string name="vector_maps_may_display_faster_on_some_devices">Os mapas vectoriais seguramente se mostran máis rápido. Poden non funcionar ben nalgúns dispositivos.</string>
|
||||
<string name="play_commands_of_currently_selected_voice">Seguir as órdes da voz que haxa seleccionada</string>
|
||||
<string name="play_commands_of_currently_selected_voice">Reproducir as ordes da voz que haxa seleccionada</string>
|
||||
<string name="debugging_and_development">Desenvolvemento do OsmAnd</string>
|
||||
<string name="native_rendering">Renderizado nativo</string>
|
||||
<string name="test_voice_prompts">Probar as instrucións de voz</string>
|
||||
|
@ -944,14 +945,14 @@
|
|||
<string name="west_north_west">oeste-noroeste</string>
|
||||
<string name="north_west">noroeste</string>
|
||||
<string name="north_north_west">norte-noroeste</string>
|
||||
<string name="front">Adiante</string>
|
||||
<string name="front_right">Adiante á dereita</string>
|
||||
<string name="right">Dereita</string>
|
||||
<string name="back_right">Atrás á dereita</string>
|
||||
<string name="back">Atrás</string>
|
||||
<string name="front">adiante</string>
|
||||
<string name="front_right">adiante á dereita</string>
|
||||
<string name="right">á dereita</string>
|
||||
<string name="back_right">atrás á dereita</string>
|
||||
<string name="back">atrás</string>
|
||||
<string name="back_left">Atrás á esquerda</string>
|
||||
<string name="left">Esquerda</string>
|
||||
<string name="front_left">Adiante á esquerda</string>
|
||||
<string name="left">á esquerda</string>
|
||||
<string name="front_left">adiante á esquerda</string>
|
||||
<string name="oclock">en punto</string>
|
||||
<string name="towards">cara a</string>
|
||||
<string name="accuracy">Precisión</string>
|
||||
|
@ -994,14 +995,14 @@
|
|||
\n\t- Other changes "</string>
|
||||
<string name="update_poi_does_not_change_indexes">Os cambios nos puntos de interese dentro do aplicativo non afectan aos ficheiros de mapas descargados, pois eses cambios gárdanse só nun ficheiro local.</string>
|
||||
<string name="local_openstreetmap_uploading">A actualizar …</string>
|
||||
<string name="local_openstreetmap_were_uploaded">Enviáronse {0} PDI/Fallos</string>
|
||||
<string name="local_openstreetmap_were_uploaded">Enviáronse {0} PDI/Notas</string>
|
||||
<string name="local_openstreetmap_uploadall">Actualizar todo</string>
|
||||
|
||||
<string name="local_openstreetmap_upload">Actualizar a modificación a OSM</string>
|
||||
<string name="local_openstreetmap_delete">Eliminar a modificación</string>
|
||||
<string name="local_openstreetmap_descr_title">Edición asíncrona de OSM:</string>
|
||||
<string name="local_openstreetmap_settings">PDI/Fallos de OSM gardados localmente</string>
|
||||
<string name="local_openstreetmap_settings_descr">Mostrar e xestionar os PDI/fallos anotados na base de datos local</string>
|
||||
<string name="local_openstreetmap_settings">PDI/Notas de OSM gardados localmente</string>
|
||||
<string name="local_openstreetmap_settings_descr">Mostrar e xestionar os PDI/Notas de OSM anotados na base de datos local</string>
|
||||
<string name="live_monitoring_interval_descr">Indicar o intervalo de seguimento con conexión</string>
|
||||
<string name="live_monitoring_interval">Intervalo de seguimento con conexión</string>
|
||||
<string name="live_monitoring_url_descr">Indique o enderezo web con esta sintaxe dos parámetros: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}</string>
|
||||
|
@ -1163,7 +1164,7 @@
|
|||
<string name="shared_string_no_thanks">Non, grazas</string>
|
||||
<string name="basemap_missing">Falta o mapa base mundial (que recobre todo o mundo en ampliacións pequenas). Considere a posibilidade de descargar World_basemap_x.obf para contar cun ambiente completo.</string>
|
||||
<string name="vector_data_missing">Faltan datos de a bordo («sen conexión») no cartón SD. Considere a posibilidade de descargalos para poder empregar os mapas sen conexión.</string>
|
||||
<string name="local_index_installed">Edición</string>
|
||||
<string name="local_index_installed">Versión local</string>
|
||||
<string name="local_index_items_backuped">%1$d elemento(s) de %2$d foron desactivados correctamente.</string>
|
||||
<string name="local_index_items_deleted">%1$d elemento(s) de %2$d foron eliminados correctamente.</string>
|
||||
<string name="local_index_items_restored">%1$d elemento(s) de %2$d foron activados correctamente.</string>
|
||||
|
@ -1381,7 +1382,7 @@
|
|||
<string name="rotate_map_to_bearing">Orientación do mapa</string>
|
||||
<string name="show_route">Detalles do itinerario</string>
|
||||
<string name="fav_imported_sucessfully">Os favoritos foron importados correctamente</string>
|
||||
<string name="import_file_favourites">Gardar como ficheiro GPX ou importar cos favoritos?</string>
|
||||
<string name="import_file_favourites">Gardar os puntos como ficheiro GPX ou importalos cos favoritos?</string>
|
||||
|
||||
<string name="fav_file_to_load_not_found">O ficheiro GPX que contén os favoritos non se atopa en {0}</string>
|
||||
<string name="fav_saved_sucessfully">Os favoritos foron gardados correctamente en {0}</string>
|
||||
|
@ -1400,7 +1401,7 @@
|
|||
<string name="layer_yandex_traffic">Tráfico de Yandex</string>
|
||||
<string name="layer_route">Itinerario</string>
|
||||
<string name="shared_string_favorites">Favoritos</string>
|
||||
<string name="layer_osm_bugs">Fallos de OSM (con conexión)</string>
|
||||
<string name="layer_osm_bugs">Notas de OSM (con conexión)</string>
|
||||
<string name="layer_transport">Paraxes de transporte</string>
|
||||
<string name="layer_poi">POI…</string>
|
||||
<string name="layer_map">Fonte de mapas…</string>
|
||||
|
@ -1496,7 +1497,7 @@
|
|||
<string name="search_online_address">Busca con conexión</string>
|
||||
<string name="max_level_download_tile">Max. online zoom</string>
|
||||
<string name="max_level_download_tile_descr">Escoller o nivel de ampliación máximo que descargar para as teselas dos mapas con conexión</string>
|
||||
<string name="route_general_information">Distancia total %1$s,\n tempo de viaxe %2$d h %3$d m.</string>
|
||||
<string name="route_general_information">Distancia total %1$s, tempo de viaxe %2$d h %3$d m.</string>
|
||||
<string name="router_service_descr">Escoller un servizo de navegación con ou sen conexión</string>
|
||||
<string name="router_service">Navigation service</string>
|
||||
<string name="sd_dir_not_accessible">O cartafol de almacenamento de datos do cartón SD non é accesíbel!</string>
|
||||
|
@ -1582,7 +1583,7 @@
|
|||
<string name="map_tile_source">Fonte das deselas do mapa</string>
|
||||
<string name="map_source">Fonte do mapa</string>
|
||||
<string name="use_internet">Empregar a Internet</string>
|
||||
<string name="show_location">Mostrar a situación</string>
|
||||
<string name="show_location">Mostrar a súa situación</string>
|
||||
|
||||
|
||||
<string name="show_gps_coordinates_text">Mostrar as coordenadas de GPS no mapa</string>
|
||||
|
@ -1726,7 +1727,7 @@
|
|||
<string name="rendering_attr_tramTrainRoutes_name">Rutas de tranvía e de tren</string>
|
||||
<string name="lock_screen_request_explanation">%1$s require este permiso para apagar a pantalla para a funcionalidade de aforro de enerxía.</string>
|
||||
<string name="wake_on_voice">Acender a pantalla</string>
|
||||
<string name="wake_on_voice_descr">Acender a pantalla do dispositivo ao aproximarse unha manobra</string>
|
||||
<string name="wake_on_voice_descr">Acender a pantalla do dispositivo ao aproximarse unha manobra (se estiver apagada)</string>
|
||||
<string name="shared_string_never">Nunca</string>
|
||||
|
||||
<string name="impassable_road">Evitar estradas…</string>
|
||||
|
@ -1764,4 +1765,195 @@
|
|||
<string name="rendering_value_americanRoadAtlas_name">Atlas de estradas norteamericanos</string>
|
||||
<string name="routing_attr_no_new_routing_name">Non seguir as regras de v1.9</string>
|
||||
<string name="routing_attr_no_new_routing_description">Non empregar as retras para itinerarios introducidas na versión 1.9</string>
|
||||
</resources>
|
||||
<string name="plugin_settings">Engadidos</string>
|
||||
<string name="no_updates_available">Non hai actualizacións dispoñíbeis</string>
|
||||
<string name="download_live_updates">Actualizacións ao vivo</string>
|
||||
<string name="rendering_value_default13_name">Predeterminado (13)</string>
|
||||
<string name="rendering_value_defaultTranslucentCyan_name">Predeterminado (ciano translúcido)</string>
|
||||
<string name="rendering_attr_currentTrackColor_name">Cor de GPX</string>
|
||||
<string name="rendering_attr_currentTrackWidth_name">Largo de GPX</string>
|
||||
<string name="rendering_value_red_name">Vermello</string>
|
||||
<string name="rendering_value_translucent_red_name">Vermello translúcido</string>
|
||||
<string name="rendering_value_translucent_orange_name">Laranxa translúcido</string>
|
||||
<string name="rendering_value_yellow_name">Amarelo</string>
|
||||
<string name="rendering_value_translucent_yellow_name">Amarelo translúcido</string>
|
||||
<string name="rendering_value_lightgreen_name">Verde claro</string>
|
||||
<string name="rendering_value_translucent_lightgreen_name">Verde claro translúcido</string>
|
||||
<string name="rendering_value_green_name">Verde</string>
|
||||
<string name="rendering_value_translucent_green_name">Verde translúcido</string>
|
||||
<string name="rendering_value_lightblue_name">Azul claro</string>
|
||||
<string name="rendering_value_translucent_lightblue_name">Azul claro translúcido</string>
|
||||
<string name="rendering_value_blue_name">Azul</string>
|
||||
<string name="rendering_value_translucent_blue_name">Azul translúcido</string>
|
||||
<string name="rendering_value_purple_name">Violeta</string>
|
||||
<string name="rendering_value_translucent_purple_name">Violeta translúcido</string>
|
||||
<string name="restart_is_required">Para aplicar os cambios completamente hai que reiniciar o aplicativo manualmente.</string>
|
||||
<string name="light_theme">Claro</string>
|
||||
<string name="dark_theme">Escuro</string>
|
||||
<string name="lang_pms">Piamontés</string>
|
||||
<string name="lang_bn">Bengalí</string>
|
||||
<string name="lang_tl">Tagalo</string>
|
||||
<string name="lang_sh">Serbo-croata</string>
|
||||
<string name="lang_az">Azerí</string>
|
||||
<string name="lang_br">Bretón</string>
|
||||
<string name="lang_sq">Albanés</string>
|
||||
<string name="lang_is">Islandés</string>
|
||||
<string name="lang_bpy">Bishnupriya</string>
|
||||
<string name="lang_ga">Irlandés</string>
|
||||
<string name="lang_la">Latín</string>
|
||||
<string name="lang_ku">Curdo</string>
|
||||
<string name="lang_ta">Tamil</string>
|
||||
<string name="lang_ml">Malayalam</string>
|
||||
<string name="lang_lb">Luxemburgués</string>
|
||||
<string name="lang_os">Osetiano</string>
|
||||
<string name="lang_eo">Esperanto</string>
|
||||
<string name="lang_es_ar">Español da Arxentina</string>
|
||||
<string name="lang_nb">Bokmål noruegués</string>
|
||||
<string name="lang_vo">Volapuk</string>
|
||||
<string name="lang_th">Tailandés</string>
|
||||
<string name="lang_te">Telugu</string>
|
||||
<string name="lang_nn">Nynorsk noruegués</string>
|
||||
<string name="lang_new">Newar / Nepal Bhasa</string>
|
||||
<string name="lang_ms">Malasio</string>
|
||||
<string name="lang_ht">Haitiano</string>
|
||||
<string name="lang_gl">Galego</string>
|
||||
<string name="lang_et">Estoniano</string>
|
||||
<string name="lang_ceb">Cebuano</string>
|
||||
<string name="archive_wikipedia_data">Ten descargados datos vellos da Wikipedia, que son incompatíbeis. Desexa arquivalos?</string>
|
||||
<string name="download_wikipedia_files">Desexa descargar datos adicionais da Wikipedia (%1$s MB) ?</string>
|
||||
<string name="gps_network_not_enabled">O servizo de localización non está activado. Desexa activalo?</string>
|
||||
<string name="disable_recording_once_app_killed">Evitar o rexistro autónomo</string>
|
||||
<string name="shared_string_import2osmand">Importar ao OsmAnd</string>
|
||||
<string name="read_full_article">Ler o artigo completo (na rede)</string>
|
||||
<string name="download_wikipedia_item">Wikipedia</string>
|
||||
<string name="local_indexes_cat_wiki">Wikipedia</string>
|
||||
<string name="shared_string_show_details">Mostrar os detalles</string>
|
||||
<string name="rendering_value_disabled_name">Desactivado</string>
|
||||
<string name="osmo_share_my_location">Compartir a miña posición</string>
|
||||
<string name="rendering_attr_hideHouseNumbers_name">Agochar os números das casas</string>
|
||||
<string name="application_dir_change_warning3">Desexa que o OsmAnd copie tamén os seus ficheiros de datos ao novo destino?</string>
|
||||
<string name="specified_directiory_not_writeable">Non foi posíbel crear os mapas no directorio indicado</string>
|
||||
<string name="copying_osmand_file_failed">Fallou o copiado dos ficheiros</string>
|
||||
<string name="storage_directory_external">Almacenamento externo</string>
|
||||
<string name="storage_directory_multiuser">Almacenamento para varios usuarios</string>
|
||||
<string name="storage_directory_internal_app">Memoria interna do aplicativo</string>
|
||||
<string name="storage_directory_manual">Indicado manualmente</string>
|
||||
<string name="storage_directory_default">Memoria interna</string>
|
||||
<string name="storage_directory">Almacenamento de mapas</string>
|
||||
<string name="shared_string_copy">Copiar</string>
|
||||
<string name="filter_poi_hint">Filtrar polo nome</string>
|
||||
<string name="search_poi_category_hint">Escriba para buscar todo</string>
|
||||
<string name="shared_string_open">Abrir</string>
|
||||
<string name="shared_string_manage">Xestionar</string>
|
||||
<string name="shared_string_edit">Editar</string>
|
||||
<string name="shared_string_places">Lugares</string>
|
||||
<string name="shared_string_search">Buscar</string>
|
||||
<string name="shared_string_show_description">Mostrar a descrición</string>
|
||||
<string name="shared_string_message">Mensaxe</string>
|
||||
<string name="confirm_usage_speed_cameras">En moitos países (Alemaña, Franza, Italia e outros) a lei non permite o uso de avisos de radares de velocidade. O OsmAnd non asume ningunha responsabilidade se vostede viola a lei. Prema si se ten dereito a empregar esta funcionalidade.</string>
|
||||
<string name="welmode_download_maps">Descargar mapas</string>
|
||||
<string name="welcome_select_region">Para reflectir de maneira correcta os seus sinais de tráfico e as normas, indique a rexión pola que conduce:</string>
|
||||
<string name="welcome_text">OsmAnd fornece mapas globais sen conexión e navegación global sen conexión!</string>
|
||||
<string name="welcome_header">Reciba a benvida</string>
|
||||
<string name="current_route">Ruta actual</string>
|
||||
<string name="mark_to_delete">Marcar para eliminar</string>
|
||||
<string name="osmo_grop_name_length_alert">O nome do grupo debería ter un mínimo de tres caracteres!</string>
|
||||
<string name="local_recordings_delete_all_confirm">Está a piques de eliminar %1$d notas. Confírmao?</string>
|
||||
<string name="local_osm_changes_upload_all_confirm">Está a piques de enviar %1$d cambios a OSM. Confírmao?</string>
|
||||
<string name="confirmation_to_clear_history">Desexa limpar o historial?</string>
|
||||
<string name="shared_string_go">Ir</string>
|
||||
<string name="osm_edits">Edicións de OSM</string>
|
||||
<string name="osmand_parking_hour">h</string>
|
||||
<string name="osmand_parking_minute">min</string>
|
||||
<string name="osmand_parking_time_left">esquerda</string>
|
||||
<string name="your_edits">As súas edicións</string>
|
||||
<string name="waypoint_visit_after">Visitar despois</string>
|
||||
<string name="waypoint_visit_before">Visitar antes</string>
|
||||
<string name="simulate_your_location">Simular a súa posición</string>
|
||||
<string name="drawer">Lista sinxela</string>
|
||||
<string name="short_location_on_map">Lat %1$s\n Lon %2$s</string>
|
||||
<string name="tips_and_tricks_descr">Preguntas frecuentes, cambios recentes e outros</string>
|
||||
<string name="routing_settings_2">Configuración da navegación</string>
|
||||
<string name="general_settings_2">Configuración xeral</string>
|
||||
<string name="shared_string_ellipsis">…</string>
|
||||
<string name="shared_string_do_not_use">Non empregar</string>
|
||||
<string name="shared_string_enable">Activar</string>
|
||||
<string name="shared_string_disable">Desactivar</string>
|
||||
<string name="shared_string_enabled">Activado</string>
|
||||
<string name="shared_string_disabled">Desactivado</string>
|
||||
<string name="shared_string_selected">Seleccionado</string>
|
||||
<string name="shared_string_my_location">A miña posición</string>
|
||||
<string name="shared_string_audio">Son</string>
|
||||
<string name="shared_string_video">Vídeo</string>
|
||||
<string name="shared_string_photo">Foto</string>
|
||||
<string name="route_points">Puntos da ruta</string>
|
||||
<string name="track_segments">Segmentos de pista</string>
|
||||
<string name="track_points">Puntos de pista</string>
|
||||
<string name="plugin_ski_name">Vista de mapas de esquí</string>
|
||||
<string name="back_to_map">Volver ao mapa</string>
|
||||
<string name="share_note">Compartir nota</string>
|
||||
<string name="location_on_map">Location:\n Lat %1$s\n Lon %2$s</string>
|
||||
<string name="watch">Vixiar</string>
|
||||
<string name="notes">Notas</string>
|
||||
<string name="online_map">Mapa na rede</string>
|
||||
<string name="roads_only">Só estradas</string>
|
||||
<string name="rendering_attr_pisteRoutes_name">Pistas de esquí</string>
|
||||
<string name="device_memory">Memoria do dispositivo</string>
|
||||
<string name="world_ski_missing">Para poder mostrar mapas de esquí hai que descargar mapas especiais sen conexión</string>
|
||||
<string name="remove_the_tag">RETIRAR A ETIQUETA</string>
|
||||
<string name="gps_status">Estado do GPS</string>
|
||||
<string name="rendering_attr_streetLighting_name">Iluminación da rúa</string>
|
||||
<string name="proxy_pref_title">Proxy</string>
|
||||
<string name="proxy_pref_descr">Configurar unha comunicación á Internet por proxy</string>
|
||||
<string name="settings_privacy">Privacidade</string>
|
||||
<string name="points">Puntos</string>
|
||||
<string name="navigation_over_track">Comezar a navegación seguindo a pista?</string>
|
||||
<string name="avoid_roads_msg">Pode designar unha ruta alternativa seleccionando as estradas que desexe evitar</string>
|
||||
<string name="rendering_value__name">Predeterminado</string>
|
||||
<string name="rendering_value_highContrastRoads_name">Estradas con contraste alto</string>
|
||||
<string name="traffic_warning_railways">Cruzamento ferroviario</string>
|
||||
<string name="show_railway_warnings">Mostrar os cruzamentos ferroviarios</string>
|
||||
<string name="enable_proxy_title">Activar o proxy de HTTP</string>
|
||||
<string name="enable_proxy_descr">Configurar un proxy de HTTP para todas as solicitudes de rede</string>
|
||||
<string name="proxy_host_title">Máquina do proxy</string>
|
||||
<string name="proxy_host_descr">Configurar o nome de servidor do proxy (p.ex. 127.0.0.1)</string>
|
||||
<string name="proxy_port_title">Porto do proxy</string>
|
||||
<string name="proxy_port_descr">Configure o número de porto do proxy (p.ex. 8118)</string>
|
||||
<string name="routing_attr_avoid_borders_name">Evitar cruzar fronteiras</string>
|
||||
<string name="routing_attr_avoid_borders_description">Evitar cruzar unha fronteira con outro país</string>
|
||||
<string name="routing_attr_height_name">Gálibo</string>
|
||||
<string name="routing_attr_height_description">Indique a altura dos vehículos permitida nas rutas</string>
|
||||
<string name="route_descr_destination">Destino</string>
|
||||
<string name="download_wikipedia_maps">Wikipedia</string>
|
||||
<string name="index_name_netherlands">Europa - Países Baixos</string>
|
||||
<string name="shared_string_release">Publicada</string>
|
||||
<string name="plugin_description_title">Descrición</string>
|
||||
<string name="plugin_install_needs_network">Precisa dunha conexión á Internet para instalar este engadido.</string>
|
||||
<string name="get_plugin">Obter</string>
|
||||
<string name="use_fast_recalculation_desc">Nas viaxes longas, recalcular só a parte inicial da ruta</string>
|
||||
<string name="do_you_like_osmand">Gosta do OsmAnd?</string>
|
||||
<string name="we_really_care_about_your_opinion">A súa opinión impórtanos moito e parécenos interesante saber o que pensa.</string>
|
||||
<string name="rate_this_app">Cualificar este aplicativo</string>
|
||||
<string name="rate_this_app_long">Déalle unha puntuación ao OsmAnd en Google Play</string>
|
||||
<string name="user_hates_app_get_feedback">Díganos o porque.</string>
|
||||
<string name="user_hates_app_get_feedback_long">Díganos o que desexa cambiar neste aplicativo.</string>
|
||||
<string name="delete_change">Eliminar o cambio</string>
|
||||
<string name="successfully_uploaded_pattern">Enviado correctamente {0}/{1}</string>
|
||||
<string name="try_again">Tentar de novo</string>
|
||||
<string name="error_message_pattern">Erro: {0}</string>
|
||||
<string name="shared_string_skip">Omitir</string>
|
||||
<string name="shared_string_undo">DESFACER</string>
|
||||
<string name="app_name_osmand">OsmAnd</string>
|
||||
<string name="offline_maps_and_navigation">Mapas e navegación\nsen conexión</string>
|
||||
<string name="tab_title_basic">Básico</string>
|
||||
<string name="tab_title_advanced">Avanzado</string>
|
||||
<string name="building_number">Número de versión</string>
|
||||
<string name="next_proceed">Seguinte</string>
|
||||
<string name="tag_poi_name">nome</string>
|
||||
<string name="contact_info">información de contacto</string>
|
||||
<string name="description">Descrición</string>
|
||||
<string name="poi_dialog_poi_type">Tipo de PDI</string>
|
||||
<string name="please_specify_poi_type">Indique o tipo de PDI.</string>
|
||||
<string name="shared_string_deselect">Anular a selección</string>
|
||||
<string name="shared_string_deselect_all">Non seleccionar nada</string>
|
||||
</resources>
|
||||
|
|
|
@ -679,7 +679,7 @@
|
|||
|
||||
<string name="data_settings">Adat</string>
|
||||
<string name="osm_settings">OSM szerkesztés</string>
|
||||
<string name="auto_zoom_map_descr">Térkép automatikus nagyítása a sebesség függvényében</string>
|
||||
<string name="auto_zoom_map_descr">Térkép automatikus nagyítása a sebesség függvényében (amikor a térkép követi a pozíciódat)</string>
|
||||
<string name="auto_zoom_map">Automatikus nagyítás</string>
|
||||
<string name="additional_settings">További beállítások</string>
|
||||
<string name="shared_string_settings">Beállítások</string>
|
||||
|
@ -904,15 +904,15 @@
|
|||
|
||||
<string name="global_app_allocated_memory_descr">Lefoglalt memória %1$s MB (Android korlát %2$s MB, Dalvik %3$s MB).</string>
|
||||
<string name="global_app_allocated_memory">Lefoglalt memória</string>
|
||||
<string name="native_app_allocated_memory_descr">Alkalmazás által lefoglalt összes natív memória %1$s MB (dalvik %2$s MB, egyéb %3$s MB). Proportional(?) memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB).</string>
|
||||
<string name="native_app_allocated_memory_descr">Alkalmazás által lefoglalt összes natív memória %1$s MB (Dalvik %2$s MB, egyéb %3$s MB). Proporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB).</string>
|
||||
<string name="native_app_allocated_memory">Összes natív memória</string>
|
||||
<string name="select_animate_speedup">Útvonalszimuláció gyorsulása</string>
|
||||
<string name="select_animate_speedup">Útvonalszimuláció sebessége</string>
|
||||
<string name="osmand_parking_hours">Óra</string>
|
||||
<string name="osmand_parking_minutes">Perc</string>
|
||||
<string name="osmand_parking_position_description_add_time">Autó leparkolva:</string>
|
||||
<string name="use_compass_navigation_descr">Iránytű használata navigáláshoz, ha az irány nem érzékelhető</string>
|
||||
<string name="use_compass_navigation">Iránytű használata</string>
|
||||
<string name="route_updated_loc_found">Amint megvan a pozíció, az útvonal újra lesz tervezve</string>
|
||||
<string name="route_updated_loc_found">Az útvonaltervezés elindul, amint megvan a pozíció</string>
|
||||
<string name="continue_follow_previous_route_auto">Az előző navigáció még nem ért véget. Folytassuk? (%1$s másodperc)</string>
|
||||
|
||||
|
||||
|
@ -926,7 +926,7 @@
|
|||
\n\t* A térképbeállítások mostantól a térképképernyőről érhetők el
|
||||
\n\t* Képernyő lezárása gomb rögzítési beállításokkal
|
||||
\n\t* Javított arab és kannada írásjelek és jobbról balra író nyelvek "</string>
|
||||
<string name="map_widget_top_text">Utca neve</string>
|
||||
<string name="map_widget_top_text">Utcanév</string>
|
||||
<string name="map_widget_config">Képernyő beállítása</string>
|
||||
|
||||
<string name="map_widget_back_to_loc">Hol vagyok?</string>
|
||||
|
@ -949,14 +949,14 @@
|
|||
<string name="bg_service_screen_lock">Képernyőzár be</string>
|
||||
<string name="bg_service_screen_lock_toast">Képernyő lezárva</string>
|
||||
<string name="bg_service_interval">GPS bekapcsolási időköz:</string>
|
||||
<string name="screen_is_locked">Képernyőzár feloldása a lakat ikonnal</string>
|
||||
<string name="screen_is_locked">Képernyőzár feloldásához nyomj a lakat ikonra</string>
|
||||
<string name="bg_service_screen_unlock">Képernyőzár ki</string>
|
||||
<string name="bg_service_sleep_mode_off">Alvó mód\n bekapcsolása</string>
|
||||
<string name="bg_service_sleep_mode_on">Alvó mód\n kikapcsolása</string>
|
||||
<string name="avoid_in_routing_title">Elkerülés…</string>
|
||||
<string name="avoid_in_routing_descr">Fizetős utak, kompok, földutak elkerülése</string>
|
||||
<string name="show_warnings_title">Riasztások megjelenítése…</string>
|
||||
<string name="show_warnings_descr">Sebességhatárok, traffipaxok és fekvőrendőrök jelzése</string>
|
||||
<string name="show_warnings_descr">Sebességhatárok, traffipaxok, fekvőrendőrök, sávinformációk jelzése</string>
|
||||
<string name="map_widget_fluorescent">Élénk színű utak</string>
|
||||
<string name="map_widget_show_ruler">Lépték</string>
|
||||
|
||||
|
@ -979,7 +979,7 @@
|
|||
<string name="day_night_info">Nappal/éjjel információ</string>
|
||||
<string name="map_widget_day_night">Nappali/éjjeli térképmód</string>
|
||||
<string name="map_widget_vector_attributes">Megjelenítési jellemzők</string>
|
||||
<string name="map_widget_renderer">Térképmegjelenítési stílus</string>
|
||||
<string name="map_widget_renderer">Térkép megjelenítési stílus</string>
|
||||
<string name="tip_app_mode_t_v2">OsmAnd több különböző (személyre szabható) üzemmódot támogat különböző felhasználásokhoz.
|
||||
\n\nA módot útvonaltervezésnél, vagy a térkép bal alsó sarkában lévő ikonnal (autó, bicikli vagy gyalogos) tudod megváltoztatni.
|
||||
</string>
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -2126,4 +2126,5 @@
|
|||
<string name="opening_at">Darbo pradžia</string>
|
||||
<string name="closing_at">Darbo pabaiga</string>
|
||||
<string name="contact_info">Kontaktinė informacija</string>
|
||||
</resources>
|
||||
<string name="please_specify_poi_type">Prašome nurodyti LV tipą.</string>
|
||||
</resources>
|
||||
|
|
|
@ -9,4 +9,5 @@
|
|||
<string name="poi_mobile_phone">സെല്ഫോണ് കട</string>
|
||||
<string name="poi_animal_shelter_bird">ബെര്ഡ് ഷെല്ട്ടര്</string>
|
||||
|
||||
</resources>
|
||||
<string name="poi_boatyard">ബോട്ട് യാര്ഡ്</string>
|
||||
</resources>
|
||||
|
|
|
@ -968,7 +968,7 @@
|
|||
<string name="avoid_in_routing_title">Unikanie…</string>
|
||||
<string name="avoid_in_routing_descr">Wyznacza trasy unikając dróg płatnych, nieutwardzonych, promów</string>
|
||||
<string name="show_warnings_title">Wyświetlanie ostrzeżeń…</string>
|
||||
<string name="show_warnings_descr">Pokazuj ostrzeżenia ruchu drogowego, ostrzeżenia o fotoradarach i informacje o pasach</string>
|
||||
<string name="show_warnings_descr">Wyświetla ostrzeżenia ruchu drogowego, ostrzeżenia o fotoradarach i informacje o pasach</string>
|
||||
|
||||
<string name="tip_rotation_switching_t_v2">Możesz zmieniać sposób obracania mapy przez klikanie na ikonie kompasu.
|
||||
\n\nMasz do wyboru:
|
||||
|
@ -980,8 +980,8 @@
|
|||
<string name="osmand_long_description_1000_chars">" OsmAnd (OSM Automatyczne Nawigowanie Do celu) OsmAnd jest programem open source do nawigacji z dostępem do szerokiej gamy globalnych map OpenStreetMap (OSM). Wszystkie dane map (wektorowe lub kafelkowe) mogą być przechowywane na karcie pamięci telefonu w użycia offline. OsmAnd oferuje również nawigację w trybie offline i online zawierającą zapowiedzi głosowe. Niektóre z podstawowych funkcji: - Funkcjonowanie w trybie offline (przechowuje pobrane mapy wektorowych lub kafelkowe w pamięci urządzenia) - Dostępne kompaktowe mapy w trybie offlinie dla całego świata - Pobieranie map kraju lub regionu bezpośrednio z aplikacji - Możliwość nakładania kilku warstw map, takich jak GPX lub tras nawigacji, ciekawe miejsc, ulubionych, linii konturu, przystanków komunikacji miejskiej, dodatkowe mapy z konfigurowalną przejrzystością - Wyszukiwanie Offline adresów i miejsc (POI) - Wyznaczanie w trybie Offline tras na krótkich dystansach (eksperymentalne) - Tryby samochodowy, rowerowy i pieszy z: - opcjonalnym automatycznym przełączaniem widoku dzień/noc - opcjonalnie skalowanie map w zależności od prędkości - opcjonalne wyrównanie map według kompasu lub kierunku ruchu - opcjonalne wyświetlanie wskazywanie pasów, ograniczeń prędkości, głosy nagrane i głowy TTS w bezpłatnej wersji OsmAnd: - limitowana liczba pobrań mapy - Brak dostępu do Wikipedii dla POI w trybie offline jest aktywnie rozwijany i dalszy rozwój jest uzależniony od wkładu pieniężnego na finansowanie rozwoju i testowania nowych funkcjonalności. Proszę rozważyć zakup OsmAnd + lub finansowanie konkretnych nowych funkcji lub dokonania ogólnej darowizny na osmand.net. "</string>
|
||||
<string name="osmand_plus_short_description_80_chars">OsmAnd to aplikacja open source do nawigacji obsługująca mapy offline i online</string>
|
||||
<string name="avoid_motorway">Autostrad</string>
|
||||
<string name="snap_to_road_descr">Przyciągaj pozycję do drogi podczas nawigacji</string>
|
||||
<string name="snap_to_road">Przyciągaj do drogi</string>
|
||||
<string name="snap_to_road_descr">Przyciąga pozycję do dróg podczas nawigowania</string>
|
||||
<string name="snap_to_road">Przyciąganie do drogi</string>
|
||||
<string name="tip_recent_changes_0_8_3_t">"Zmiany w 0.8.3:
|
||||
\n\t* Poprawione route guidance
|
||||
\n\t* Opcja unikania autostrad
|
||||
|
@ -1203,7 +1203,7 @@
|
|||
</string>
|
||||
|
||||
<string name="osmand_plus_play_title_30_chars">OsmAnd+ Mapy i Nawigacja</string>
|
||||
<string name="street_name">Ulica</string>
|
||||
<string name="street_name">Nazwa ulicy</string>
|
||||
<string name="hno">Numer domu</string>
|
||||
<string name="choose_osmand_theme">Styl</string>
|
||||
<string name="accessibility_options">Opcje ułatwień dostępu</string>
|
||||
|
@ -1296,12 +1296,12 @@
|
|||
\n\t* Dużo zmian w interfejsie
|
||||
\n\t* Poprawki w wyświetlaniu odległości, analizatorze GPX, obsłudze punktów pośrednich, widżecie planowania, wysyłania do OSM, obsłudze https
|
||||
</string>
|
||||
<string name="osb_author_or_password_not_specified">Wprowadź nazwę użytkownika OSM i hasło w Ustawieniach</string>
|
||||
<string name="osb_author_or_password_not_specified">Proszę wprowadzić nazwę użytkownika i hasło OSM w ustawieniach</string>
|
||||
<string name="clear_intermediate_points">Wyczyść punkty pośrednie</string>
|
||||
<string name="keep_intermediate_points">Zachowaj punkty pośrednie</string>
|
||||
<string name="new_directions_point_dialog">Masz już ustawione punkty pośrednie.</string>
|
||||
<string name="context_menu_item_directions_to">Trasa do tego miejsca</string>
|
||||
<string name="context_menu_item_directions_from">Trasa z tego miejsca</string>
|
||||
<string name="new_directions_point_dialog">Już ustalono punkty pośrednie.</string>
|
||||
<string name="context_menu_item_directions_to">Nawiguj do</string>
|
||||
<string name="context_menu_item_directions_from">Nawiguj z</string>
|
||||
<string name="route_descr_map_location">Mapa: </string>
|
||||
<string name="route_to">Do:</string>
|
||||
<string name="route_via">Przez:</string>
|
||||
|
@ -1312,8 +1312,8 @@
|
|||
<string name="speak_cameras">Fotoradary</string>
|
||||
<string name="speak_traffic_warnings">Ostrzeżenia o ruchu</string>
|
||||
<string name="osb_author_dialog_password">Hasło OSM (opcjonalne)</string>
|
||||
<string name="speak_title">Zapowiadaj…</string>
|
||||
<string name="speak_descr">Konfiguruj zapowiadanie nazw ulic, ostrzeżeń o ruchu (przymusowe przystanki, progi zwalniające), fotoradarów, ograniczeń prędkości</string>
|
||||
<string name="speak_title">Zapowiadanie…</string>
|
||||
<string name="speak_descr">Konfiguruje zapowiadanie nazw ulic, ostrzeżeń o ruchu (przymusowe przystanki, progi zwalniające), fotoradarów, ograniczeń prędkości</string>
|
||||
<string name="speak_street_names">Nazwy ulic (TTS)</string>
|
||||
<string name="announce_gpx_waypoints">Punkty śladu GPX</string>
|
||||
|
||||
|
@ -1563,14 +1563,14 @@ Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Ant
|
|||
<string name="routing_attr_short_way_description">Używaj najkrótszej drogi</string>
|
||||
<string name="routing_attr_avoid_toll_name">Unikaj płatnych dróg</string>
|
||||
<string name="routing_attr_avoid_toll_description">Unikaj płatnych dróg</string>
|
||||
<string name="routing_attr_avoid_unpaved_name">Unikaj nieutwardzone drogi</string>
|
||||
<string name="routing_attr_avoid_unpaved_description">Unikaj nieutwardzonych dróg</string>
|
||||
<string name="routing_attr_avoid_ferries_name">Unikaj przepraw promowych</string>
|
||||
<string name="routing_attr_avoid_ferries_description">Unikaj przepraw promowych</string>
|
||||
<string name="routing_attr_avoid_motorway_name">Unikaj autostrad</string>
|
||||
<string name="routing_attr_avoid_motorway_description">Unikaj autostrad</string>
|
||||
<string name="routing_attr_avoid_unpaved_name">Unikanie nieutwardzonych dróg</string>
|
||||
<string name="routing_attr_avoid_unpaved_description">Unikanie nieutwardzonych dróg</string>
|
||||
<string name="routing_attr_avoid_ferries_name">Unikanie przepraw promowych</string>
|
||||
<string name="routing_attr_avoid_ferries_description">Unikanie przepraw promowych</string>
|
||||
<string name="routing_attr_avoid_motorway_name">Unikanie autostrad</string>
|
||||
<string name="routing_attr_avoid_motorway_description">Unikanie autostrad</string>
|
||||
<string name="routing_attr_weight_name">Limit wagi</string>
|
||||
<string name="routing_attr_weight_description">Określ ograniczenie masy pojazdu dozwolone na drodze</string>
|
||||
<string name="routing_attr_weight_description">Określa maksymalną, dozwoloną masę pojazdu</string>
|
||||
<string name="select_gpx">Wybierz GPX…</string>
|
||||
<string name="route_descr_select_destination">Wybierz cel podróży</string>
|
||||
<string name="shared_string_select_on_map">Wybierz na mapie</string>
|
||||
|
@ -1825,7 +1825,7 @@ Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Ant
|
|||
<string name="lang_sw">Suahili</string>
|
||||
<string name="lang_he">Hebrajski</string>
|
||||
<string name="forward">Naprzód</string>
|
||||
<string name="home">Dom</string>
|
||||
<string name="home">Ekran główny</string>
|
||||
<string name="live_monitoring_m_descr">Wysyła dane śledzenia do określonej usługi internetowej jeżeli rejestrowanie śladów jest włączone.</string>
|
||||
<string name="live_monitoring_m">Śledzenie online (wymagane GPX)</string>
|
||||
<string name="live_monitoring_start">Rozpocznij śledzenie online</string>
|
||||
|
@ -1888,12 +1888,13 @@ Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Ant
|
|||
<string name="waypoints">Punkty trasy</string>
|
||||
<string name="targets">Kierunki</string>
|
||||
<string name="way_alarms">Ostrzeżenia ruchu drogowego</string>
|
||||
<string name="speak_favorites">Ogłaszaj Ulubione</string>
|
||||
<string name="speak_poi">Ogłaszaj punkty POI</string>
|
||||
<string name="speak_favorites">Pobliskie ulubione</string>
|
||||
<string name="speak_poi">Pobliskie punkty POI</string>
|
||||
<string name="save_track_to_gpx_globally">Rejestrowanie śladu do pliku GPX</string>
|
||||
<string name="save_track_to_gpx_globally_descr">Rejestrowanie położenia do pliku GPX można włączyć lub wyłączyć używając widżetu rejestrowania GPX na ekranie mapy</string>
|
||||
<string name="save_track_interval_globally">Częstość rejestrowania</string>
|
||||
<string name="record_plugin_description">"Wtyczka ta aktywuje funkcje nagrywania i zapisywania śladów ręcznie dotykając widgetu rejestrowania GPX na ekranie mapy, lub także automatyczne logowanie wszystkich tras nawigacyjnych do pliku GPX. ↵\n↵\nNagrane ślady mogą być dzielone ze swoimi przyjaciółmi lub być wykorzystywane jako wkład do rozwoju OSM. Sportowcy mogą korzystać z nagranych ścieżek do monitorowania treningów. Podstawowa analiza śladów może być wykonywane bezpośrednio w OsmAnd, podobnie jak czasy okrążeń, średniej prędkości itp, a ślady mogą być oczywiście później analizowane w specjalnych narzędziach do analizy przygotowanych przez innych dostawców. "</string>
|
||||
<string name="record_plugin_description">"Aktywuje funkcje nagrywania i zapisywania tras za pomocą widżetu rejestrowania śladów GPX na ekranie mapy lub automatyczne rejestruje przebiegi wszystkich tras do plików GPX.
|
||||
\n\nNagrane ślady można udostępnić znajomym lub wykorzystać na rzecz rowoju map Openstreetmap. Sportowcy mogą korzystać z nagranych śladów do monitorowania treningów. W tym celu OsmAnd udostępnia podstawowe informacje takie, jak czasy okrążeń, średnia prędkość itp. Ślady mogą być później analizowane w specjalnych narzędziach do analizy przygotowanych przez innych dostawców. "</string>
|
||||
<string name="confirm_every_run">Ponawianie pytania</string>
|
||||
<string name="save_global_track_interval_descr">Wybierz tempo rejestrowania dla nagrywania ścieżki (włączonego poprzez widżet rejestrowania GPX na mapie)</string>
|
||||
<string name="save_global_track_interval">Ogólna częstość rejestrowania</string>
|
||||
|
@ -1983,7 +1984,7 @@ Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Ant
|
|||
<string name="traffic_warning_railways">Przejazd kolejowy</string>
|
||||
<string name="traffic_warning_pedestrian">Przejście dla pieszych</string>
|
||||
<string name="show_railway_warnings">Pokazuj przejazdy kolejowe</string>
|
||||
<string name="show_pedestrian_warnings">Pokazuj przejścia dla pieszych</string>
|
||||
<string name="show_pedestrian_warnings">Przejścia dla pieszych</string>
|
||||
<string name="speak_pedestrian">Przejścia dla pieszych</string>
|
||||
|
||||
<string name="gps_status">Status GPS</string>
|
||||
|
@ -2047,7 +2048,7 @@ Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Ant
|
|||
<string name="track_segments">Segmenty</string>
|
||||
<string name="track_points">Punkty trasy</string>
|
||||
<string name="plugin_touringview_name">Widok mapy turystycznej</string>
|
||||
<string name="plugin_touringview_descr">"Włączenie tego widoku zmienia styl mapy OsmAnd na \'turystyczny\', który jest specjalnym trybem wysokiej rozdzielczości dla turystów i kierowców zawodowych.\n\nTen widok dostarcza w danych mapy przy każdym poziomie przybliżenia maksymalną ilość dostępnych detali (w szczególności dróg, szlaków, ścieżek oraz znaków orientacyjnych).\n\nW sposób jasny i jednoznaczny szereguje typy dróg wg przypisanych kolorów, co jest przydatne, np. podczas prowadzenia dużych pojazdów.\n\nUdostępnia specjalne opcje turystyczne, jak np. trasy rowerowe lub alpejskie szlaki górskie.\n\nNie potrzeba pobierać specjalnej mapy, ten widok jest tworzony z map standardowych.\n\nMożna go wyłączyć używając obecnej tutaj opcji lub zmieniając styl mapy w menu konfiguracji mapy. "</string>
|
||||
<string name="plugin_touringview_descr">"Zmienia styl mapy OsmAnd na „turystyczny”, który jest specjalnym trybem wysokiej rozdzielczości dla turystów i kierowców zawodowych.\n\nTen widok dostarcza w danych mapy przy każdym poziomie przybliżenia maksymalną ilość dostępnych detali (w szczególności dróg, szlaków, ścieżek oraz znaków orientacyjnych).\n\nW sposób jasny i jednoznaczny szereguje typy dróg wg przypisanych kolorów, co jest przydatne, np. podczas prowadzenia dużych pojazdów.\n\nUdostępnia specjalne opcje turystyczne, jak np. trasy rowerowe lub alpejskie szlaki górskie.\n\nNie potrzeba pobierać specjalnej mapy, ten widok jest tworzony z map standardowych.\n\nMożna go wyłączyć używając obecnej tutaj opcji lub zmieniając styl mapy w menu konfiguracji mapy. "</string>
|
||||
<string name="watch">Oglądaj</string>
|
||||
<string name="rendering_attr_pisteRoutes_name">Stoki narciarskie</string>
|
||||
<string name="rendering_attr_pisteGrooming_name">Ratrakowanie</string>
|
||||
|
@ -2056,7 +2057,7 @@ Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Ant
|
|||
<string name="remove_the_tag">Usuń tag</string>
|
||||
<string name="version_settings">Kompilacja</string>
|
||||
<string name="points">Punkty</string>
|
||||
<string name="navigation_over_track">Rozpocząć nawigację wzdłuż trasy?</string>
|
||||
<string name="navigation_over_track">Rozpocząć nawigowanie wzdłuż trasy?</string>
|
||||
<string name="save_track_to_gpx_globally_headline">Zapis śladu na żądanie</string>
|
||||
<string name="enable_proxy_descr">Konfiguruje proxy HTTP dla wszystkich zapytań sieciowych</string>
|
||||
<string name="proxy_host_descr">Ustala nazwę hosta proxy (np. 127.0.0.1)</string>
|
||||
|
@ -2080,7 +2081,7 @@ Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Ant
|
|||
<string name="osm_changes_added_to_local_edits">Zmiany OSM dodane do zestawu zmian lokalnych</string>
|
||||
<string name="mark_to_delete">Zaznacz, aby usunąć</string>
|
||||
<string name="osmo_grop_name_length_alert">Nazwa grupy powinna zawierać co najmniej 3 znaki!</string>
|
||||
<string name="shared_string_go">Idź</string>
|
||||
<string name="shared_string_go">Nawiguj</string>
|
||||
<string name="shared_string_not_use">Nie używaj</string>
|
||||
<string name="plugin_nautical_descr">"Umożliwia tworzenie map nawigacyjnych dla łodzi, żaglówek oraz innych sportów wodnych.\n\nSpecjalny dodatek do Osm And wstawia znaki nawigacyjne i oznaczenia map morskich dla nawigacji śródlądowej oraz przybrzeżnej. Opis każdego znaku dostarcza szczegółów potrzebnych do ich identyfikacji oraz ich przeznaczenia (kategoria, kształt, kolor, kolejność, odniesienie itd.).\n\nW razie potrzeby należy wyłączyć tę wtyczkę lub zmienić styl w opcjach \"Styl mapy\" w menu \"Konfiguracja mapy\", aby powrócić do jednego z typowych stylów map OsmAnd. "</string>
|
||||
<string name="plugin_ski_descr">"Dodaje do OsmAnd szczegóły dotyczące stoków narciarskich, tras biegowych, tras skitour, kolejek linowych i wyciągów narciarskich na świecie. Trasy i szlaki są pokolorowane według trudności i przedstawione w specjalnym zimowym stylu mapy, imitującym krajobraz pokryty śniegiem.\n\nWłączenie tego widoku zmienia styl mapy na „Zima i narty”, ukazujący teren pokryty śniegiem. Widok można wyłączyć przez wyłączenie wtyczki lub zmianę stylu w menu „Styl mapy” w „Konfiguracji mapy”. "</string>
|
||||
|
@ -2113,7 +2114,7 @@ Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Ant
|
|||
<string name="routing_attr_avoid_borders_name">Unikanie przekraczania granicy</string>
|
||||
<string name="routing_attr_avoid_borders_description">Unika przekraczania granicy z innym państwem</string>
|
||||
<string name="routing_attr_height_name">Limit wysokości</string>
|
||||
<string name="routing_attr_height_description">Określ wysokość pojazdu, jaka ma być dozwolone podczas nawigowania</string>
|
||||
<string name="routing_attr_height_description">Określa maksymalną, dozwoloną wysokość pojazdu</string>
|
||||
<string name="use_fast_recalculation">Inteligentne przeliczanie trasy</string>
|
||||
<string name="use_fast_recalculation_desc">Przelicz tylko początkową część trasy dla długich podróży</string>
|
||||
<string name="shared_string_logoff">Wyloguj się</string>
|
||||
|
@ -2128,16 +2129,16 @@ Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Ant
|
|||
<string name="lang_ht">haitański</string>
|
||||
<string name="lang_gl">galicyjski</string>
|
||||
<string name="lang_et">estoński</string>
|
||||
<string name="archive_wikipedia_data">Posiadasz pobrane stare niezgodne dane Wikipedia. Czy chcesz je zarchiwizować?</string>
|
||||
<string name="download_wikipedia_files">Czy chcesz pobrać dodatkowe dane Wikipedii (%1$s MB)?</string>
|
||||
<string name="gps_network_not_enabled">Usługa lokalizacji nie jest włączona. Czy chcesz go włączyć?</string>
|
||||
<string name="disable_recording_once_app_killed_descrp">Wstrzymać rejestrowanie GPX, gdy aplikacja zostanie zabita (przez inne aplikacja). (Wskazanie trybu uśpienia OsmAnd zniknie z pasku powiadomień.)</string>
|
||||
<string name="archive_wikipedia_data">W posiadaniu są stare niezgodne dane Wikipedia. Zarchiwizować je?</string>
|
||||
<string name="download_wikipedia_files">Pobrać dodatkowe dane Wikipedii (%1$s MB)?</string>
|
||||
<string name="gps_network_not_enabled">Usługa lokalizacji nie jest włączona. Włączyć ją?</string>
|
||||
<string name="disable_recording_once_app_killed_descrp">Wstrzymuje rejestrowanie trasy po zakończeniu programu na liście ostatnich aplikacji. (Wskazanie trybu uśpienia OsmAnd zniknie z pasku powiadomień.)</string>
|
||||
<string name="shared_string_import2osmand">Import do OsmAnd</string>
|
||||
<string name="read_full_article">Czytaj cały artykuł (online)</string>
|
||||
<string name="download_wikipedia_item">Wikipedia</string>
|
||||
<string name="local_indexes_cat_wiki">Wikipedia</string>
|
||||
<string name="shared_string_show_details">Pokaż szczegóły</string>
|
||||
<string name="local_recordings_delete_all_confirm">Zamierzasz usunąć %1$d notatki. Czy jesteś pewny?</string>
|
||||
<string name="local_recordings_delete_all_confirm">Usunąć %1$d notatek?</string>
|
||||
<string name="download_wikipedia_maps">Wikipedia</string>
|
||||
<string name="light_theme">Jasny</string>
|
||||
<string name="dark_theme">Ciemny</string>
|
||||
|
@ -2169,24 +2170,24 @@ Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Ant
|
|||
<string name="rendering_attr_currentTrackColor_name">Kolor GPX</string>
|
||||
<string name="rendering_attr_currentTrackWidth_name">Szerokość GPX</string>
|
||||
<string name="rendering_value_red_name">Czerwony</string>
|
||||
<string name="rendering_value_translucent_orange_name">Półprzezroczysty pomarańczowy</string>
|
||||
<string name="rendering_value_translucent_orange_name">Przezroczysty pomarańczowy</string>
|
||||
<string name="rendering_value_yellow_name">Żółty</string>
|
||||
<string name="rendering_value_translucent_yellow_name">Półprzezroczysty żółty</string>
|
||||
<string name="rendering_value_translucent_yellow_name">Przezroczysty żółty</string>
|
||||
<string name="rendering_value_lightgreen_name">Jasnozielony</string>
|
||||
<string name="rendering_value_translucent_lightgreen_name">Przezroczysty jasnozielony</string>
|
||||
<string name="rendering_value_green_name">Zielony</string>
|
||||
<string name="rendering_value_translucent_green_name">Półprzezroczysty zielony</string>
|
||||
<string name="rendering_value_translucent_green_name">Przezroczysty zielony</string>
|
||||
<string name="rendering_value_lightblue_name">Jasnoniebieski</string>
|
||||
<string name="rendering_value_translucent_lightblue_name">Przezroczysty jasnoniebieski</string>
|
||||
<string name="rendering_value_blue_name">Niebieski</string>
|
||||
<string name="rendering_value_translucent_blue_name">Półprzezroczysty niebieski</string>
|
||||
<string name="rendering_value_translucent_blue_name">Przezroczysty niebieski</string>
|
||||
<string name="rendering_value_purple_name">Fioletowy</string>
|
||||
<string name="rendering_value_translucent_purple_name">Półprzezroczysty fioletowy</string>
|
||||
<string name="restart_is_required">W celu zastosowania zmian, konieczne jest ponowne uruchomienie programu.</string>
|
||||
<string name="rendering_value_translucent_red_name">Prześwitujący czerwony</string>
|
||||
<string name="rendering_value_default13_name">Domyślny (13)</string>
|
||||
<string name="rendering_value_defaultTranslucentCyan_name">Domyślny (prześwitujący niebieski)</string>
|
||||
<string name="do_you_like_osmand">Czy lubisz OsmAnd?</string>
|
||||
<string name="do_you_like_osmand">Podoba Ci się OsmAnd?</string>
|
||||
<string name="we_really_care">Naprawdę nam zależy</string>
|
||||
<string name="rate_this_app">Oceń tę aplikację</string>
|
||||
<string name="rate_this_app_long">Oceń OsmAnd w sklepie Google Play</string>
|
||||
|
@ -2198,4 +2199,18 @@ Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Ant
|
|||
<string name="successfully_uploaded_pattern">Wysłano {0}/{1}</string>
|
||||
<string name="try_again">Spróbuj ponownie</string>
|
||||
<string name="error_message_pattern">Błąd: {0}</string>
|
||||
</resources>
|
||||
<string name="av_locations">Położenia</string>
|
||||
<string name="plugin_settings">Wtyczki</string>
|
||||
<string name="routing_attr_avoid_shuttle_train_name">Unikanie pociągów wahadłowych</string>
|
||||
<string name="routing_attr_avoid_shuttle_train_description">Unikanie pociągów wahadłowych</string>
|
||||
<string name="traffic_warning_hazard">Zagrożenie</string>
|
||||
<string name="we_really_care_about_your_opinion">Zależy nam na opinii na temat programu i jest dla nas ważne, aby ją poznać.</string>
|
||||
<string name="dahboard_options_dialog_title">Opcje ekranu głównego</string>
|
||||
<string name="shared_string_card_was_hidden">Ukryto kartę</string>
|
||||
<string name="shared_string_undo">Cofnij</string>
|
||||
<string name="shared_string_skip">Pomiń</string>
|
||||
<string name="app_name_osmand">OsmAnd</string>
|
||||
<string name="offline_maps_and_navigation">Mapy offline\ni nawigacja</string>
|
||||
<string name="please_specify_poi_type">Proszę określić typ POI.</string>
|
||||
<string name="number_of_rows_in_dash">Ilość wierszy na ekranie głównym %1$s</string>
|
||||
</resources>
|
||||
|
|
|
@ -1812,4 +1812,5 @@
|
|||
<string name="poi_dialog_poi_type">Tipo de POI</string>
|
||||
<string name="number_of_rows_in_dash">Número de linhas no traço de %1$s</string>
|
||||
<string name="tag_poi_amenity">facilidade</string>
|
||||
</resources>
|
||||
<string name="please_specify_poi_type">Por favor, especifique tipo de POI.</string>
|
||||
</resources>
|
||||
|
|
|
@ -1197,7 +1197,7 @@
|
|||
</string>
|
||||
<string name="layer_hillshade">Слой рельефа местности</string>
|
||||
|
||||
<string name="street_name">Улица</string>
|
||||
<string name="street_name">Название улицы</string>
|
||||
<string name="hno">Номер дома</string>
|
||||
<string name="download_using_mobile_internet">В настоящее время нет соединения по Wi-Fi. Хотите использовать текущее интернет-соединение для загрузки?</string>
|
||||
<string name="tip_recent_changes_1_3_t">Изменения в 1.3:
|
||||
|
@ -2067,4 +2067,7 @@
|
|||
<string name="shared_string_undo">ОТМЕНИТЬ</string>
|
||||
<string name="shared_string_skip">Пропустить</string>
|
||||
<string name="app_name_osmand">OsmAnd</string>
|
||||
<string name="plugin_settings">Плагины</string>
|
||||
<string name="offline_maps_and_navigation">Офлайн карты\nи Навигация</string>
|
||||
<string name="building_number">Номер дома</string>
|
||||
</resources>
|
||||
|
|
|
@ -2076,4 +2076,6 @@
|
|||
<string name="add_opening_hours">Annanghe s’oràriu de abertura</string>
|
||||
<string name="poi_dialog_poi_type">Casta de PDI</string>
|
||||
<string name="tag_poi_amenity">atratzione</string>
|
||||
<string name="please_specify_poi_type">Dislinda casta de PDI.</string>
|
||||
<string name="number_of_rows_in_dash">Nùmeru de rigas in su pannellu %1$s</string>
|
||||
</resources>
|
||||
|
|
|
@ -1031,4 +1031,55 @@
|
|||
<string name="poi_route_hiking_lwn_poi">Lokálna pešia trasa</string>
|
||||
<string name="poi_route_hiking_ref_poi">Číslo pešej trasy</string>
|
||||
|
||||
<string name="poi_perfumery">Parfuméria</string>
|
||||
|
||||
<string name="poi_mill_pond">Mlynský rybník</string>
|
||||
<string name="poi_office_religion">Cirkevná kancelária</string>
|
||||
<string name="poi_association">Kancelária asociácie</string>
|
||||
<string name="poi_financial">Finančná kancelária</string>
|
||||
<string name="poi_political_party">Kancelária politickej strany</string>
|
||||
<string name="poi_notary">Notár</string>
|
||||
<string name="poi_foundation">Sídlo nadácie</string>
|
||||
<string name="poi_tax_advisor">Daňový poradca</string>
|
||||
|
||||
<string name="poi_religion_voodoo">Voodoo</string>
|
||||
<string name="poi_religion_multifaith">Multináboženské</string>
|
||||
<string name="poi_religion_scientologist">Scientologický</string>
|
||||
<string name="poi_religion_pagan">Pohanské</string>
|
||||
<string name="poi_denomination_catholic">Katolícke</string>
|
||||
<string name="poi_denomination_baptist">Baptistické</string>
|
||||
<string name="poi_denomination_roman_catholic">Rímskokatolícke</string>
|
||||
<string name="poi_denomination_orthodox">Ortodoxné</string>
|
||||
<string name="poi_denomination_lutheran">Luteránske</string>
|
||||
<string name="poi_denomination_sunni">Sunitské</string>
|
||||
<string name="poi_denomination_protestant">Protestantské</string>
|
||||
<string name="poi_denomination_methodist">Metodistické</string>
|
||||
<string name="poi_denomination_anglican">Anglikánske</string>
|
||||
<string name="poi_denomination_presbyterian">Presbyteriánske</string>
|
||||
<string name="poi_denomination_evangelical">Evanjelické</string>
|
||||
<string name="poi_denomination_russian_orthodox">Ruské ortodoxné</string>
|
||||
<string name="poi_denomination_mormon">Mormónske</string>
|
||||
<string name="poi_denomination_jehovahs_witness">Svedkovia Jehovovi</string>
|
||||
<string name="poi_denomination_greek_orthodox">Grécke ortodoxné</string>
|
||||
<string name="poi_denomination_reformed">Reformované</string>
|
||||
<string name="poi_denomination_seventh_day_adventist">Adventisti siedmeho dňa</string>
|
||||
<string name="poi_denomination_new_apostolic">Novoapoštolské</string>
|
||||
<string name="poi_denomination_church_of_england">Anglická cirkev</string>
|
||||
<string name="poi_denomination_episcopal">Episkopálne</string>
|
||||
<string name="poi_denomination_greek_catholic">Grékokatolícke</string>
|
||||
<string name="poi_denomination_tibetan">Tibetské</string>
|
||||
<string name="poi_denomination_church_of_scotland">Škótska cirkev</string>
|
||||
<string name="poi_denomination_nondenominational">Bez vyznania</string>
|
||||
<string name="poi_denomination_adventist">Adventistické</string>
|
||||
<string name="poi_denomination_apostolic">Apoštolské</string>
|
||||
<string name="poi_denomination_church_of_christ">Kristova cirkev</string>
|
||||
<string name="poi_building">Budova</string>
|
||||
|
||||
<string name="poi_twitter">Twitter</string>
|
||||
<string name="poi_skype">Skype</string>
|
||||
<string name="poi_youtube">Youtube</string>
|
||||
<string name="poi_instagram">Instagram</string>
|
||||
<string name="poi_vk">VKontakte</string>
|
||||
<string name="poi_google_plus">Google+</string>
|
||||
<string name="poi_military_office">Vojenský úrad</string>
|
||||
</resources>
|
||||
|
|
|
@ -1184,7 +1184,7 @@
|
|||
\n\t* Podpora hodiniek Pebble
|
||||
</string>
|
||||
|
||||
<string name="street_name">Ulica</string>
|
||||
<string name="street_name">Názov ulice</string>
|
||||
<string name="hno">Číslo domu</string>
|
||||
<string name="monitoring_settings">Zaznamenávanie výletu</string>
|
||||
<string name="monitoring_settings_descr">Konfigurovať ako sa majú zaznamenať vaše výlety</string>
|
||||
|
@ -2259,4 +2259,23 @@ Afganistan, Albánsko, Alžírsko, Andora, Angola, Anguilla, Antigua a Barbuda,
|
|||
<string name="app_name_osmand">OsmAnd</string>
|
||||
<string name="offline_maps_and_navigation">Offline mapy\n& Navigácia</string>
|
||||
<string name="commit_poi">Odoslať POI</string>
|
||||
<string name="av_locations_descr">GPX súbor s pozíciami poznámok</string>
|
||||
<string name="av_locations">Pozície</string>
|
||||
<string name="plugin_settings">Zásuvné moduly</string>
|
||||
<string name="routing_attr_avoid_shuttle_train_name">Nepoužiť autovlak</string>
|
||||
<string name="routing_attr_avoid_shuttle_train_description">Nepoužiť autovlak</string>
|
||||
<string name="tab_title_basic">Základné</string>
|
||||
<string name="tab_title_advanced">Rozšírené</string>
|
||||
<string name="building_number">Číslo domu</string>
|
||||
<string name="next_proceed">Ďalší</string>
|
||||
<string name="opening_at">Otvára o</string>
|
||||
<string name="closing_at">Zatvára o</string>
|
||||
<string name="tag_poi_name">názov</string>
|
||||
<string name="tag_poi_amenity">občianska vybavenosť</string>
|
||||
<string name="contact_info">Kontaktné údaje</string>
|
||||
<string name="description">Popis</string>
|
||||
<string name="add_opening_hours">Pridať otváracie hodiny</string>
|
||||
<string name="poi_dialog_poi_type">Typ bodu záujmu</string>
|
||||
<string name="number_of_rows_in_dash">Počet riadkov v pomlčke %1$s</string>
|
||||
<string name="please_specify_poi_type">Prosím zadajte typ bodu záujmu.</string>
|
||||
</resources>
|
||||
|
|
|
@ -1477,7 +1477,7 @@
|
|||
<string name="gpx_info_distance">Avstånd: %1$s (%2$s punkter) </string>
|
||||
<string name="gpx_info_start_time">Starttid: %1$tF, %1$tT </string>
|
||||
<string name="gpx_info_end_time">Sluttid: %1$tF, %1$tT </string>
|
||||
<string name="gpx_info_average_speed">Snittid: %1$s </string>
|
||||
<string name="gpx_info_average_speed">"Genomsnittshastighet: %1$s "</string>
|
||||
<string name="gpx_info_maximum_speed">Maxhastighet: %1$s </string>
|
||||
<string name="gpx_info_avg_altitude">Snitthöjd: %1$s</string>
|
||||
<string name="gpx_info_diff_altitude">Höjdskillnad: %1$s</string>
|
||||
|
@ -1989,4 +1989,5 @@
|
|||
<string name="tag_poi_name">namn</string>
|
||||
<string name="tag_poi_amenity">service</string>
|
||||
<string name="number_of_rows_in_dash">Antal rader i panel %1$s</string>
|
||||
<string name="please_specify_poi_type">Ange typ av POI.</string>
|
||||
</resources>
|
||||
|
|
|
@ -1061,7 +1061,7 @@
|
|||
<string name="poi_tax_advisor">稅務顧問辦公室</string>
|
||||
|
||||
<string name="poi_religion_voodoo">巫毒教</string>
|
||||
<string name="poi_religion_unitarian_universalist">一神普救派</string>
|
||||
<string name="poi_religion_unitarian_universalist">唯一神普教派</string>
|
||||
<string name="poi_religion_multifaith">多元宗教</string>
|
||||
<string name="poi_religion_jain">耆那教</string>
|
||||
<string name="poi_religion_spiritualist">唯靈論教</string>
|
||||
|
@ -1087,7 +1087,7 @@
|
|||
<string name="poi_denomination_mormon">摩門教</string>
|
||||
<string name="poi_denomination_jehovahs_witness">耶和華見證人</string>
|
||||
<string name="poi_denomination_greek_orthodox">希臘正教</string>
|
||||
<string name="poi_denomination_reformed">改革宗教會</string>
|
||||
<string name="poi_denomination_reformed">歸正教會</string>
|
||||
<string name="poi_denomination_seventh_day_adventist">基督復臨安息日會</string>
|
||||
<string name="poi_denomination_episcopal">聖公會</string>
|
||||
<string name="poi_denomination_shia">什葉派</string>
|
||||
|
@ -1102,4 +1102,34 @@
|
|||
<string name="poi_denomination_mennonite">門諾會</string>
|
||||
<string name="poi_denomination_quaker">貴格會</string>
|
||||
<string name="poi_denomination_bulgarian_orthodox">保加利亞東正教</string>
|
||||
<string name="poi_denomination_new_apostolic">新使徒教派</string>
|
||||
<string name="poi_denomination_church_of_england">英國國教</string>
|
||||
<string name="poi_denomination_assemblies_of_god">神召會</string>
|
||||
<string name="poi_denomination_nondenominational">宗派</string>
|
||||
<string name="poi_denomination_adventist">基督復臨安息日會</string>
|
||||
<string name="poi_denomination_nazarene">基督教徒</string>
|
||||
<string name="poi_denomination_united_methodist">聯合衛理公會</string>
|
||||
<string name="poi_denomination_congregational">公理會</string>
|
||||
<string name="poi_denomination_old_believers">舊教徒</string>
|
||||
<string name="poi_denomination_serbian_orthodox">塞爾維亞東正教</string>
|
||||
<string name="poi_denomination_spiritist">招魂者</string>
|
||||
<string name="poi_denomination_armenian_apostolic">亞美尼亞使徒教會</string>
|
||||
<string name="poi_denomination_dutch_reformed">荷蘭歸正教會</string>
|
||||
<string name="poi_denomination_apostolic">使徒教會</string>
|
||||
<string name="poi_denomination_reform">改革教會</string>
|
||||
<string name="poi_denomination_latter_day_saints">末世聖徒</string>
|
||||
<string name="poi_denomination_church_of_christ">基督教會</string>
|
||||
<string name="poi_denomination_united_church_of_christ">聯合的基督教會</string>
|
||||
<string name="poi_denomination_georgian_orthodox">喬治亞東正教</string>
|
||||
<string name="poi_denomination_scientist">科學家</string>
|
||||
<string name="poi_denomination_romanian_orthodox">羅馬尼亞東正教</string>
|
||||
<string name="poi_denomination_ethiopian_orthodox_tewahedo">衣索比亞東正教</string>
|
||||
<string name="poi_denomination_unitarian">唯一神論教派</string>
|
||||
<string name="poi_denomination_coptic_orthodox">科普特東正教</string>
|
||||
<string name="poi_denomination_wesleyan">衛斯理教派</string>
|
||||
<string name="poi_denomination_shaktism">沙克達教</string>
|
||||
<string name="poi_denomination_shingon_shu">真言宗</string>
|
||||
<string name="poi_denomination_maronite">馬若恩教派</string>
|
||||
<string name="poi_denomination_mahayana">大乘佛教</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -2100,4 +2100,5 @@
|
|||
<string name="add_opening_hours">增加營業時間</string>
|
||||
<string name="poi_dialog_poi_type">興趣點類型</string>
|
||||
<string name="number_of_rows_in_dash">在長劃 %1$s 的行數</string>
|
||||
<string name="please_specify_poi_type">請指定興趣點類型。</string>
|
||||
</resources>
|
||||
|
|
|
@ -34,6 +34,9 @@
|
|||
<attr name="dashboard_general_button_text_color" format="color"/>
|
||||
|
||||
<attr name="dialog_inactive_text_color" format="reference"/>
|
||||
<attr name="appbar_layout_theme" format="reference"/>
|
||||
<attr name="toolbar_theme" format="reference"/>
|
||||
<attr name="new_app_theme" format="reference"/>
|
||||
</declare-styleable>
|
||||
|
||||
<declare-styleable name="PagerSlidingTabStrip">
|
||||
|
|
|
@ -105,6 +105,9 @@
|
|||
<item name="android:actionMenuTextColor">@color/color_white</item>
|
||||
|
||||
<item name="dialog_inactive_text_color">@color/icon_color_light</item>
|
||||
<item name="appbar_layout_theme">@style/OsmandLightTheme.DarkActionbar</item>
|
||||
<item name="toolbar_theme">@style/OsmandLightTheme.Toolbar</item>
|
||||
<item name="new_app_theme">@style/OsmandLightTheme.NewAppTheme</item>
|
||||
</style>
|
||||
|
||||
<style name="OsmandLightTheme.DarkActionbar">
|
||||
|
@ -125,6 +128,24 @@
|
|||
<item name="android:textColorSecondary">@color/divider_color</item>
|
||||
</style>
|
||||
|
||||
<style name="OsmandDarkTheme.DarkActionbar">
|
||||
<item name="android:textColorPrimary">@color/color_white</item>
|
||||
<item name="android:textColorSecondary">@color/inactive_item_orange</item>
|
||||
<item name="android:textColorHint">@color/inactive_item_orange</item>
|
||||
<item name="colorAccent">@color/color_white</item>
|
||||
<!--<item name="actionMenuTextColor">@color/color_white</item>-->
|
||||
</style>
|
||||
|
||||
<style name="OsmandDarkTheme.Toolbar">
|
||||
<item name="android:textColorPrimary">@color/color_white</item>
|
||||
<item name="android:textColorSecondary">@color/color_white</item>
|
||||
</style>
|
||||
|
||||
<style name="OsmandDarkTheme.NewAppTheme">
|
||||
<item name="colorAccent">@color/osmand_orange</item>
|
||||
<item name="android:textColorSecondary">@color/divider_color</item>
|
||||
</style>
|
||||
|
||||
<style name="OsmandDarkTheme" parent="Theme.AppCompat">
|
||||
<item name="list_divider">@color/list_divider_light</item>
|
||||
<item name="expandable_category_color">?android:attr/colorBackground</item>
|
||||
|
@ -167,6 +188,9 @@
|
|||
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBarDark</item>
|
||||
|
||||
<item name="dialog_inactive_text_color">@color/dialog_inactive_text_color_dark</item>
|
||||
<item name="appbar_layout_theme">@style/OsmandDarkTheme.DarkActionbar</item>
|
||||
<item name="toolbar_theme">@style/OsmandDarkTheme.Toolbar</item>
|
||||
<item name="new_app_theme">@style/OsmandDarkTheme.NewAppTheme</item>
|
||||
</style>
|
||||
|
||||
|
||||
|
@ -246,6 +270,7 @@
|
|||
<item name="android:layout_width">match_parent</item>
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
<item name="android:layout_weight">1</item>
|
||||
<item name="android:textColor">?android:textColorPrimary</item>
|
||||
</style>
|
||||
|
||||
<style name="edit_poi_imageview_style">
|
||||
|
|
|
@ -19,6 +19,7 @@ public class PointDescription {
|
|||
private String type = "";
|
||||
private String name = "";
|
||||
private String typeName;
|
||||
|
||||
private double lat = 0;
|
||||
private double lon = 0;
|
||||
|
||||
|
@ -38,7 +39,19 @@ public class PointDescription {
|
|||
|
||||
|
||||
public static final PointDescription LOCATION_POINT = new PointDescription(POINT_TYPE_LOCATION, "");
|
||||
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public double getLat() {
|
||||
return lat;
|
||||
}
|
||||
|
||||
public double getLon() {
|
||||
return lon;
|
||||
}
|
||||
|
||||
public PointDescription(double lat, double lon) {
|
||||
this(POINT_TYPE_LOCATION, "");
|
||||
this.lat = lat;
|
||||
|
@ -125,6 +138,10 @@ public class PointDescription {
|
|||
}
|
||||
}
|
||||
|
||||
public String getLocationName(Context ctx, boolean shortText) {
|
||||
return getLocationName(ctx, lat, lon, shortText);
|
||||
}
|
||||
|
||||
private String getLocationName(Context ctx, double lat, double lon, boolean sh) {
|
||||
OsmandSettings st = ((OsmandApplication) ctx.getApplicationContext()).getSettings();
|
||||
int f = st.COORDINATES_FORMAT.get();
|
||||
|
|
|
@ -65,6 +65,7 @@ import net.osmand.plus.base.MapViewTrackingUtilities;
|
|||
import net.osmand.plus.dashboard.DashboardOnMap;
|
||||
import net.osmand.plus.helpers.GpxImportHelper;
|
||||
import net.osmand.plus.helpers.WakeLockHelper;
|
||||
import net.osmand.plus.mapcontextmenu.MapContextMenu;
|
||||
import net.osmand.plus.render.RendererRegistry;
|
||||
import net.osmand.plus.resources.ResourceManager;
|
||||
import net.osmand.plus.routing.RoutingHelper;
|
||||
|
@ -88,7 +89,6 @@ import java.util.regex.Matcher;
|
|||
import java.util.regex.Pattern;
|
||||
|
||||
public class MapActivity extends AccessibleActivity {
|
||||
|
||||
private static final int SHOW_POSITION_MSG_ID = OsmAndConstants.UI_HANDLER_MAP_VIEW + 1;
|
||||
private static final int LONG_KEYPRESS_MSG_ID = OsmAndConstants.UI_HANDLER_MAP_VIEW + 2;
|
||||
private static final int LONG_KEYPRESS_DELAY = 500;
|
||||
|
@ -249,8 +249,12 @@ public class MapActivity extends AccessibleActivity {
|
|||
});
|
||||
|
||||
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
|
||||
|
||||
MapContextMenu.getInstance().setApp(app);
|
||||
MapContextMenu.getInstance().setMapActivity(this);
|
||||
}
|
||||
|
||||
|
||||
private void checkAppInitialization() {
|
||||
if (app.isApplicationInitializing()) {
|
||||
findViewById(R.id.init_progress).setVisibility(View.VISIBLE);
|
||||
|
@ -378,6 +382,10 @@ public class MapActivity extends AccessibleActivity {
|
|||
if (dashboardOnMap.onBackPressed()) {
|
||||
return;
|
||||
}
|
||||
if (drawerLayout.isDrawerOpen(Gravity.LEFT)) {
|
||||
closeDrawer();
|
||||
return;
|
||||
}
|
||||
super.onBackPressed();
|
||||
}
|
||||
|
||||
|
@ -607,54 +615,6 @@ public class MapActivity extends AccessibleActivity {
|
|||
showAndHideMapPosition();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||
if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER && app.accessibilityEnabled()) {
|
||||
if (!uiHandler.hasMessages(LONG_KEYPRESS_MSG_ID)) {
|
||||
Message msg = Message.obtain(uiHandler, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
app.getLocationProvider().emitNavigationHint();
|
||||
}
|
||||
});
|
||||
msg.what = LONG_KEYPRESS_MSG_ID;
|
||||
uiHandler.sendMessageDelayed(msg, LONG_KEYPRESS_DELAY);
|
||||
}
|
||||
return true;
|
||||
} else if (keyCode == KeyEvent.KEYCODE_MENU && event.getRepeatCount() == 1) {
|
||||
toggleDrawer();
|
||||
return true;
|
||||
} else if (keyCode == KeyEvent.KEYCODE_SEARCH && event.getRepeatCount() == 1) {
|
||||
Intent newIntent = new Intent(MapActivity.this, getMyApplication().getAppCustomization()
|
||||
.getSearchActivity());
|
||||
// causes wrong position caching: newIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
|
||||
LatLon loc = getMapLocation();
|
||||
newIntent.putExtra(SearchActivity.SEARCH_LAT, loc.getLatitude());
|
||||
newIntent.putExtra(SearchActivity.SEARCH_LON, loc.getLongitude());
|
||||
if (mapViewTrackingUtilities.isMapLinkedToLocation()) {
|
||||
newIntent.putExtra(SearchActivity.SEARCH_NEARBY, true);
|
||||
}
|
||||
startActivity(newIntent);
|
||||
newIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||
return true;
|
||||
} else if (!app.getRoutingHelper().isFollowingMode()
|
||||
&& OsmandPlugin.getEnabledPlugin(AccessibilityPlugin.class) != null) {
|
||||
// Find more appropriate plugin for it?
|
||||
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP && event.getRepeatCount() == 0) {
|
||||
if (mapView.isZooming()) {
|
||||
changeZoom(+2);
|
||||
} else {
|
||||
changeZoom(+1);
|
||||
}
|
||||
return true;
|
||||
} else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN && event.getRepeatCount() == 0) {
|
||||
changeZoom(-1);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.onKeyDown(keyCode, event);
|
||||
}
|
||||
|
||||
public void setMapLocation(double lat, double lon) {
|
||||
mapView.setLatLon(lat, lon);
|
||||
mapViewTrackingUtilities.locationChanged(lat, lon, this);
|
||||
|
@ -825,6 +785,51 @@ public class MapActivity extends AccessibleActivity {
|
|||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||
if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER && app.accessibilityEnabled()) {
|
||||
if (!uiHandler.hasMessages(LONG_KEYPRESS_MSG_ID)) {
|
||||
Message msg = Message.obtain(uiHandler, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
app.getLocationProvider().emitNavigationHint();
|
||||
}
|
||||
});
|
||||
msg.what = LONG_KEYPRESS_MSG_ID;
|
||||
uiHandler.sendMessageDelayed(msg, LONG_KEYPRESS_DELAY);
|
||||
}
|
||||
return true;
|
||||
} else if (keyCode == KeyEvent.KEYCODE_SEARCH && event.getRepeatCount() == 0) {
|
||||
Intent newIntent = new Intent(MapActivity.this, getMyApplication().getAppCustomization()
|
||||
.getSearchActivity());
|
||||
// causes wrong position caching: newIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
|
||||
LatLon loc = getMapLocation();
|
||||
newIntent.putExtra(SearchActivity.SEARCH_LAT, loc.getLatitude());
|
||||
newIntent.putExtra(SearchActivity.SEARCH_LON, loc.getLongitude());
|
||||
if (mapViewTrackingUtilities.isMapLinkedToLocation()) {
|
||||
newIntent.putExtra(SearchActivity.SEARCH_NEARBY, true);
|
||||
}
|
||||
startActivity(newIntent);
|
||||
newIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||
return true;
|
||||
} else if (!app.getRoutingHelper().isFollowingMode()
|
||||
&& OsmandPlugin.getEnabledPlugin(AccessibilityPlugin.class) != null) {
|
||||
// Find more appropriate plugin for it?
|
||||
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP && event.getRepeatCount() == 0) {
|
||||
if (mapView.isZooming()) {
|
||||
changeZoom(+2);
|
||||
} else {
|
||||
changeZoom(+1);
|
||||
}
|
||||
return true;
|
||||
} else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN && event.getRepeatCount() == 0) {
|
||||
changeZoom(-1);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.onKeyDown(keyCode, event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onKeyUp(int keyCode, KeyEvent event) {
|
||||
if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
|
||||
|
@ -835,6 +840,9 @@ public class MapActivity extends AccessibleActivity {
|
|||
mapActions.contextMenuPoint(mapView.getLatitude(), mapView.getLongitude());
|
||||
}
|
||||
return true;
|
||||
} else if (keyCode == KeyEvent.KEYCODE_MENU && event.getRepeatCount() == 0) {
|
||||
toggleDrawer();
|
||||
return true;
|
||||
} else if (settings.ZOOM_BY_TRACKBALL.get()) {
|
||||
// Parrot device has only dpad left and right
|
||||
if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) {
|
||||
|
|
|
@ -13,6 +13,7 @@ import net.osmand.Location;
|
|||
import net.osmand.PlatformUtil;
|
||||
import net.osmand.access.AccessibleAlertBuilder;
|
||||
import net.osmand.access.AccessibleToast;
|
||||
import net.osmand.data.FavouritePoint;
|
||||
import net.osmand.data.LatLon;
|
||||
import net.osmand.data.PointDescription;
|
||||
import net.osmand.data.QuadRect;
|
||||
|
@ -90,12 +91,74 @@ public class MapActivityActions implements DialogProvider {
|
|||
}
|
||||
|
||||
|
||||
protected void addFavouritePoint(final double latitude, final double longitude){
|
||||
public void addFavouritePoint(final double latitude, final double longitude){
|
||||
String name = mapActivity.getMapLayers().getContextMenuLayer().getSelectedObjectName();
|
||||
enhance(dialogBundle, latitude, longitude, name);
|
||||
mapActivity.showDialog(DIALOG_ADD_FAVORITE);
|
||||
}
|
||||
|
||||
|
||||
public void editFavoritePoint(final FavouritePoint a) {
|
||||
FavoritesTreeFragment.editPoint(mapActivity.getMapView().getContext(), a, null);
|
||||
}
|
||||
|
||||
public void shareLocation(double latitude, double longitude) {
|
||||
enhance(dialogBundle,latitude,longitude,mapActivity.getMapView().getZoom());
|
||||
new ShareLocation(mapActivity).run();
|
||||
}
|
||||
|
||||
public void showNavigationContextMenuPoint(final double latitude, final double longitude, Object selectedObj) {
|
||||
final ContextMenuAdapter adapter = new ContextMenuAdapter(mapActivity);
|
||||
|
||||
if(!mapActivity.getRoutingHelper().isFollowingMode() && !mapActivity.getRoutingHelper().isRoutePlanningMode()) {
|
||||
adapter.item(R.string.context_menu_item_directions_to).iconColor(
|
||||
R.drawable.ic_action_gdirections_dark).reg();
|
||||
adapter.item(R.string.context_menu_item_directions_from).iconColor(
|
||||
R.drawable.ic_action_gdirections_dark).reg();
|
||||
}
|
||||
final TargetPointsHelper targets = getMyApplication().getTargetPointsHelper();
|
||||
if(targets.getPointToNavigate() != null) {
|
||||
adapter.item(R.string.context_menu_item_destination_point).iconColor(R.drawable.ic_action_flag_dark).reg();
|
||||
adapter.item(R.string.context_menu_item_intermediate_point).iconColor(R.drawable.ic_action_flage_dark).reg();
|
||||
// For button-less search UI
|
||||
} else {
|
||||
adapter.item(R.string.context_menu_item_destination_point).iconColor(R.drawable.ic_action_flag_dark).reg();
|
||||
}
|
||||
|
||||
getMyApplication().getAppCustomization().prepareLocationMenu(mapActivity, adapter);
|
||||
|
||||
final Builder builder = new AlertDialog.Builder(mapActivity);
|
||||
final ArrayAdapter<?> listAdapter =
|
||||
adapter.createListAdapter(mapActivity, getMyApplication().getSettings().isLightContent());
|
||||
builder.setAdapter(listAdapter, new DialogInterface.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
int standardId = adapter.getElementId(which);
|
||||
OnContextMenuClick click = adapter.getClickAdapter(which);
|
||||
if (click != null) {
|
||||
click.onContextMenuClick(listAdapter, standardId, which, false);
|
||||
} else if (standardId == R.string.context_menu_item_directions_to) {
|
||||
targets.navigateToPoint(new LatLon(latitude, longitude), true, -1, null);
|
||||
enterRoutePlanningMode(null, null, false);
|
||||
} else if (standardId == R.string.context_menu_item_directions_from) {
|
||||
List<PointDescription> nms = mapActivity.getMapLayers().getContextMenuLayer().getSelectedObjectNames();
|
||||
enterRoutePlanningMode(new LatLon(latitude, longitude), nms.isEmpty() ? null : nms.get(0), false);
|
||||
} else if (standardId == R.string.context_menu_item_intermediate_point ||
|
||||
standardId == R.string.context_menu_item_destination_point) {
|
||||
boolean dest = standardId == R.string.context_menu_item_destination_point;
|
||||
List<PointDescription> nms = mapActivity.getMapLayers().getContextMenuLayer().getSelectedObjectNames();
|
||||
targets.navigateToPoint(new LatLon(latitude, longitude), true,
|
||||
dest ? -1 : targets.getIntermediatePoints().size(), nms.size() == 0?null :
|
||||
nms.get(0));
|
||||
if(targets.getIntermediatePoints().size() > 0) {
|
||||
openIntermediatePointsDialog();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
builder.create().show();
|
||||
}
|
||||
|
||||
private Bundle enhance(Bundle aBundle, double latitude, double longitude, String name) {
|
||||
aBundle.putDouble(KEY_LATITUDE, latitude);
|
||||
aBundle.putDouble(KEY_LONGITUDE, longitude);
|
||||
|
@ -133,7 +196,7 @@ public class MapActivityActions implements DialogProvider {
|
|||
SavingTrackHelper savingTrackHelper = mapActivity.getMyApplication().getSavingTrackHelper();
|
||||
savingTrackHelper.insertPointData(latitude, longitude, System.currentTimeMillis(), name);
|
||||
AccessibleToast.makeText(mapActivity, MessageFormat.format(getString(R.string.add_waypoint_dialog_added), name), Toast.LENGTH_SHORT)
|
||||
.show();
|
||||
.show();
|
||||
dialog.dismiss();
|
||||
}
|
||||
});
|
||||
|
@ -209,14 +272,14 @@ public class MapActivityActions implements DialogProvider {
|
|||
String name = edit.getText().toString();
|
||||
fileDir.mkdirs();
|
||||
File toSave = fileDir;
|
||||
if(name.length() > 0) {
|
||||
if(!name.endsWith(".gpx")){
|
||||
if (name.length() > 0) {
|
||||
if (!name.endsWith(".gpx")) {
|
||||
name += ".gpx";
|
||||
}
|
||||
toSave = new File(fileDir, name);
|
||||
}
|
||||
if(toSave.exists()){
|
||||
dlg.findViewById(R.id.DuplicateFileName).setVisibility(View.VISIBLE);
|
||||
if (toSave.exists()) {
|
||||
dlg.findViewById(R.id.DuplicateFileName).setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
dlg.dismiss();
|
||||
new SaveDirectionsAsyncTask(app).execute(toSave);
|
||||
|
@ -262,7 +325,7 @@ public class MapActivityActions implements DialogProvider {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void contextMenuPoint(final double latitude, final double longitude, final ContextMenuAdapter iadapter, Object selectedObj) {
|
||||
final ContextMenuAdapter adapter = iadapter == null ? new ContextMenuAdapter(mapActivity) : iadapter;
|
||||
|
||||
|
@ -325,8 +388,7 @@ public class MapActivityActions implements DialogProvider {
|
|||
openIntermediatePointsDialog();
|
||||
}
|
||||
} else if (standardId == R.string.context_menu_item_share_location) {
|
||||
enhance(dialogBundle,latitude,longitude,mapActivity.getMapView().getZoom());
|
||||
new ShareLocation(mapActivity).run();
|
||||
shareLocation(latitude, longitude);
|
||||
} else if (standardId == R.string.shared_string_add_to_favorites) {
|
||||
addFavouritePoint(latitude, longitude);
|
||||
}
|
||||
|
@ -334,7 +396,7 @@ public class MapActivityActions implements DialogProvider {
|
|||
});
|
||||
builder.create().show();
|
||||
}
|
||||
|
||||
|
||||
public void setGPXRouteParams(GPXFile result) {
|
||||
if(result == null) {
|
||||
mapActivity.getRoutingHelper().setGpxParams(null);
|
||||
|
|
|
@ -1,196 +0,0 @@
|
|||
package net.osmand.plus.activities;
|
||||
|
||||
import gnu.trove.list.array.TIntArrayList;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.R;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.text.SpannableString;
|
||||
import android.text.method.LinkMovementMethod;
|
||||
import android.text.util.Linkify;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup.LayoutParams;
|
||||
import android.widget.Button;
|
||||
import android.widget.TextView;
|
||||
|
||||
public class TipsAndTricksActivity {
|
||||
private int[][] tipNamesAndDescriptions = new int[][] {
|
||||
{R.string.tip_recent_changes,R.string.tip_recent_changes_1_7_1_t},
|
||||
{R.string.tip_update_index,R.string.tip_update_index_t},
|
||||
{R.string.tip_navigation,R.string.tip_navigation_t},
|
||||
{R.string.tip_app_mode,R.string.tip_app_mode_t_v2},
|
||||
{R.string.tip_faq,R.string.tip_faq_t},
|
||||
{R.string.tip_search,R.string.tip_search_t},
|
||||
{R.string.tip_favorites,R.string.tip_favorites_t},
|
||||
{R.string.tip_map_context_menu,R.string.tip_map_context_menu_t},
|
||||
{R.string.tip_rotation_switching,R.string.tip_rotation_switching_t_v2},
|
||||
{R.string.tip_day_night_mode,R.string.tip_day_night_mode_t_v2},
|
||||
{R.string.tip_map_styles,R.string.tip_map_styles_t},
|
||||
{R.string.tip_altitude_offset,R.string.tip_altitude_offset_t},
|
||||
{R.string.tip_map_switch,R.string.tip_map_switch_t_v2},
|
||||
{R.string.tip_location_sharing,R.string.tip_location_sharing_t},
|
||||
{R.string.tip_osm_improve,R.string.tip_osm_improve_t},
|
||||
};
|
||||
|
||||
private final Context ctx;
|
||||
private int numberOfShownTips = 0;
|
||||
private boolean[] shownTips = new boolean[tipNamesAndDescriptions.length];
|
||||
|
||||
public TipsAndTricksActivity(Context ctx){
|
||||
this.ctx = ctx;
|
||||
}
|
||||
|
||||
public boolean areAllTipsShown(){
|
||||
return numberOfShownTips == tipNamesAndDescriptions.length;
|
||||
}
|
||||
|
||||
public int getNumberOfTips(){
|
||||
return tipNamesAndDescriptions.length;
|
||||
}
|
||||
|
||||
public void markTipAsShown(int index) {
|
||||
if (!shownTips[index]) {
|
||||
shownTips[index] = true;
|
||||
numberOfShownTips++;
|
||||
}
|
||||
}
|
||||
|
||||
public int getNextRandomTipToShow() {
|
||||
int l = getNumberOfTips();
|
||||
if (l != 0) {
|
||||
// no random
|
||||
// int mod = (int) (System.currentTimeMillis() % l);
|
||||
return getNextTipToShow(0);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public void clearShownInfo(){
|
||||
Arrays.fill(shownTips, false);
|
||||
numberOfShownTips = 0;
|
||||
}
|
||||
|
||||
public int getNextTipToShow(int suggest) {
|
||||
int l = getNumberOfTips();
|
||||
if(suggest >= l || suggest < 0){
|
||||
suggest = 0;
|
||||
}
|
||||
if (l > 0) {
|
||||
int it = suggest;
|
||||
do {
|
||||
if (!shownTips[it]) {
|
||||
markTipAsShown(it);
|
||||
return it;
|
||||
}
|
||||
it++;
|
||||
if (it == l) {
|
||||
it = 0;
|
||||
}
|
||||
} while (it != suggest);
|
||||
|
||||
clearShownInfo();
|
||||
markTipAsShown(suggest);
|
||||
return suggest;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public String getTipName(int ind){
|
||||
return ctx.getString(tipNamesAndDescriptions[ind][0]);
|
||||
}
|
||||
|
||||
public CharSequence getTipDescription(int ind){
|
||||
String descr = ctx.getString(tipNamesAndDescriptions[ind][1]);
|
||||
SpannableString spannable = new SpannableString(descr);
|
||||
Linkify.addLinks(spannable, Linkify.ALL);
|
||||
return spannable;
|
||||
}
|
||||
|
||||
public Dialog getDialogToShowTips(boolean showFirst, boolean random){
|
||||
|
||||
final Dialog dlg = new Dialog(ctx);
|
||||
dlg.setContentView(R.layout.tips_and_tricks);
|
||||
dlg.getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
|
||||
final TextView tipDescription = (TextView) dlg.findViewById(R.id.TipDescription);
|
||||
if (!((OsmandApplication)ctx.getApplicationContext()).accessibilityExtensions()) {
|
||||
// tipDescription.setMovementMethod(ScrollingMovementMethod.getInstance());
|
||||
tipDescription.setMovementMethod(LinkMovementMethod.getInstance());
|
||||
}
|
||||
tipDescription.setLinksClickable(true);
|
||||
int nextInd = 0;
|
||||
final TIntArrayList toShow = new TIntArrayList();
|
||||
final int[] historyInd = new int[1];
|
||||
if(showFirst){
|
||||
dlg.setTitle(R.string.shared_string_help);
|
||||
tipDescription.setText(R.string.tip_initial_t);
|
||||
historyInd[0] = -1;
|
||||
} else if(!random){
|
||||
nextInd = 0;
|
||||
dlg.setTitle(getTipName(nextInd));
|
||||
tipDescription.setText(getTipDescription(nextInd));
|
||||
toShow.add(nextInd);
|
||||
historyInd[0] = 0;
|
||||
} else {
|
||||
nextInd = getNextRandomTipToShow();
|
||||
dlg.setTitle(getTipName(nextInd));
|
||||
tipDescription.setText(getTipDescription(nextInd));
|
||||
toShow.add(nextInd);
|
||||
historyInd[0] = 0;
|
||||
}
|
||||
|
||||
final Button nextButton = ((Button)dlg.findViewById(R.id.NextButton));
|
||||
final Button prevButton = (Button)dlg.findViewById(R.id.PreviousButton);
|
||||
|
||||
prevButton.setEnabled(historyInd[0] > 0);
|
||||
nextButton.setEnabled(historyInd[0] < getNumberOfTips() - 1);
|
||||
|
||||
nextButton.setOnClickListener(new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if(historyInd[0] == toShow.size() - 1){
|
||||
int suggest = 0;
|
||||
if(historyInd[0] >= 0) {
|
||||
suggest = toShow.get(historyInd[0]) + 1;
|
||||
}
|
||||
toShow.add(getNextTipToShow(suggest));
|
||||
}
|
||||
historyInd[0] ++;
|
||||
dlg.setTitle(getTipName(toShow.get(historyInd[0])));
|
||||
tipDescription.setText(getTipDescription(toShow.get(historyInd[0])));
|
||||
tipDescription.scrollTo(0, 0);
|
||||
|
||||
prevButton.setEnabled(historyInd[0] > 0);
|
||||
nextButton.setEnabled(historyInd[0] < getNumberOfTips() - 1);
|
||||
}
|
||||
});
|
||||
|
||||
prevButton.setOnClickListener(new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if(historyInd[0] > 0){
|
||||
historyInd[0] --;
|
||||
dlg.setTitle(getTipName(toShow.get(historyInd[0])));
|
||||
tipDescription.setText(getTipDescription(toShow.get(historyInd[0])));
|
||||
tipDescription.scrollTo(0, 0);
|
||||
}
|
||||
prevButton.setEnabled(historyInd[0] > 0);
|
||||
nextButton.setEnabled(historyInd[0] < getNumberOfTips() - 1);
|
||||
}
|
||||
});
|
||||
|
||||
((Button)dlg.findViewById(R.id.CloseButton)).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
dlg.dismiss();
|
||||
}
|
||||
});
|
||||
return dlg;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -110,12 +110,9 @@ public class NotesFragment extends OsmAndListFragment {
|
|||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
items = new ArrayList<Recording>(plugin.getAllRecordings());
|
||||
items = new ArrayList<>(plugin.getAllRecordings());
|
||||
listAdapter = new NotesAdapter(items);
|
||||
getListView().setAdapter(listAdapter);
|
||||
if (!AndroidUiHelper.isOrientationPortrait(getActivity())) {
|
||||
((ActionBarProgressActivity) getActivity()).getClearToolbar(false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -335,15 +335,15 @@ public class WaypointHelper {
|
|||
point.getLatitude(), point.getLongitude()) - lwp.getDeviationDistance());
|
||||
Integer state = locationPointsStates.get(point);
|
||||
if (state != null && state.intValue() == ANNOUNCED_ONCE
|
||||
&& getVoiceRouter().isDistanceLess(lastKnownLocation.getSpeed(), d1, SHORT_ANNOUNCE_RADIUS)) {
|
||||
&& getVoiceRouter().isDistanceLess(lastKnownLocation.getSpeed(), d1, SHORT_ANNOUNCE_RADIUS, 0f)) {
|
||||
locationPointsStates.put(point, ANNOUNCED_DONE);
|
||||
announcePoints.add(lwp);
|
||||
} else if (type != ALARMS && (state == null || state == NOT_ANNOUNCED)
|
||||
&& getVoiceRouter().isDistanceLess(lastKnownLocation.getSpeed(), d1, LONG_ANNOUNCE_RADIUS)) {
|
||||
&& getVoiceRouter().isDistanceLess(lastKnownLocation.getSpeed(), d1, LONG_ANNOUNCE_RADIUS, 0f)) {
|
||||
locationPointsStates.put(point, ANNOUNCED_ONCE);
|
||||
approachPoints.add(lwp);
|
||||
} else if (type == ALARMS && (state == null || state == NOT_ANNOUNCED)
|
||||
&& getVoiceRouter().isDistanceLess(lastKnownLocation.getSpeed(), d1, ALARMS_ANNOUNCE_RADIUS)) {
|
||||
&& getVoiceRouter().isDistanceLess(lastKnownLocation.getSpeed(), d1, ALARMS_ANNOUNCE_RADIUS, 0f)) {
|
||||
locationPointsStates.put(point, ANNOUNCED_ONCE);
|
||||
approachPoints.add(lwp);
|
||||
}
|
||||
|
|
164
OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java
Normal file
164
OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java
Normal file
|
@ -0,0 +1,164 @@
|
|||
package net.osmand.plus.mapcontextmenu;
|
||||
|
||||
import android.support.v4.app.Fragment;
|
||||
|
||||
import net.osmand.binary.RouteDataObject;
|
||||
import net.osmand.data.Amenity;
|
||||
import net.osmand.data.FavouritePoint;
|
||||
import net.osmand.data.PointDescription;
|
||||
import net.osmand.osm.PoiType;
|
||||
import net.osmand.plus.ContextMenuAdapter;
|
||||
import net.osmand.plus.OsmAndFormatter;
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.OsmandSettings;
|
||||
import net.osmand.plus.activities.MapActivity;
|
||||
import net.osmand.plus.render.RenderingIcons;
|
||||
import net.osmand.plus.routing.RoutingHelper;
|
||||
import net.osmand.util.Algorithms;
|
||||
|
||||
public class MapContextMenu {
|
||||
|
||||
private MapActivity mapActivity;
|
||||
private OsmandApplication app;
|
||||
private OsmandSettings settings;
|
||||
|
||||
private PointDescription pointDescription;
|
||||
private Object object;
|
||||
private ContextMenuAdapter menuAdapter;
|
||||
|
||||
private String foundStreetName;
|
||||
|
||||
public boolean isMenuVisible() {
|
||||
return mapActivity.getSupportFragmentManager().findFragmentByTag("MapContextMenuFragment") != null;
|
||||
}
|
||||
|
||||
public PointDescription getPointDescription() {
|
||||
return pointDescription;
|
||||
}
|
||||
|
||||
public Object getObject() {
|
||||
return object;
|
||||
}
|
||||
|
||||
public void setMapActivity(MapActivity mapActivity) {
|
||||
this.mapActivity = mapActivity;
|
||||
}
|
||||
|
||||
public void setApp(OsmandApplication app) {
|
||||
this.app = app;
|
||||
settings = app.getSettings();
|
||||
}
|
||||
|
||||
private static MapContextMenu ourInstance = new MapContextMenu();
|
||||
|
||||
public static MapContextMenu getInstance() {
|
||||
return ourInstance;
|
||||
}
|
||||
|
||||
private MapContextMenu() {
|
||||
|
||||
}
|
||||
|
||||
public void show(PointDescription pointDescription, Object object, ContextMenuAdapter menuAdapter) {
|
||||
|
||||
if (isMenuVisible())
|
||||
hide();
|
||||
|
||||
this.pointDescription = pointDescription;
|
||||
this.object = object;
|
||||
this.menuAdapter = menuAdapter;
|
||||
|
||||
acquireStretName();
|
||||
|
||||
MapContextMenuFragment.showInstance(mapActivity);
|
||||
|
||||
}
|
||||
|
||||
public void hide() {
|
||||
|
||||
Fragment fragment = mapActivity.getSupportFragmentManager().findFragmentByTag("MapContextMenuFragment");
|
||||
if (fragment != null)
|
||||
((MapContextMenuFragment)fragment).dismissMenu();
|
||||
}
|
||||
|
||||
private void acquireStretName() {
|
||||
RouteDataObject rt = app.getLocationProvider().getLastKnownRouteSegment();
|
||||
if(rt != null) {
|
||||
foundStreetName = RoutingHelper.formatStreetName(rt.getName(settings.MAP_PREFERRED_LOCALE.get()),
|
||||
rt.getRef(), rt.getDestinationName(settings.MAP_PREFERRED_LOCALE.get()));
|
||||
} else {
|
||||
foundStreetName = null;
|
||||
}
|
||||
}
|
||||
|
||||
public int getLeftIconId() {
|
||||
if (object instanceof Amenity) {
|
||||
String id = null;
|
||||
Amenity o = (Amenity)object;
|
||||
PoiType st = o.getType().getPoiTypeByKeyName(o.getSubType());
|
||||
if (st != null) {
|
||||
if (RenderingIcons.containsSmallIcon(st.getIconKeyName())) {
|
||||
id = st.getIconKeyName();
|
||||
} else if (RenderingIcons.containsSmallIcon(st.getOsmTag() + "_" + st.getOsmValue())) {
|
||||
id = st.getOsmTag() + "_" + st.getOsmValue();
|
||||
}
|
||||
}
|
||||
if (id != null) {
|
||||
Integer resId = RenderingIcons.getResId(id);
|
||||
if (resId != null) {
|
||||
return resId;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
public String getAddressStr() {
|
||||
String res = null;
|
||||
|
||||
if (object instanceof Amenity) {
|
||||
Amenity amenity = (Amenity) object;
|
||||
res = OsmAndFormatter.getPoiStringWithoutType(amenity, settings.MAP_PREFERRED_LOCALE.get());
|
||||
}
|
||||
|
||||
if (Algorithms.isEmpty(res)) {
|
||||
String typeName = pointDescription.getTypeName();
|
||||
String name = pointDescription.getName();
|
||||
|
||||
if (!Algorithms.isEmpty(name))
|
||||
res = name;
|
||||
else if (!Algorithms.isEmpty(typeName))
|
||||
res = typeName;
|
||||
}
|
||||
|
||||
return Algorithms.isEmpty(res) ? "???" : res;
|
||||
}
|
||||
|
||||
public String getLocationStr() {
|
||||
if (foundStreetName == null)
|
||||
return pointDescription.getLocationName(mapActivity, true).replaceAll("\n", "");
|
||||
else
|
||||
return foundStreetName;
|
||||
}
|
||||
|
||||
public void buttonNavigatePressed() {
|
||||
mapActivity.getMapActions().showNavigationContextMenuPoint(pointDescription.getLat(), pointDescription.getLon(), object);
|
||||
}
|
||||
|
||||
public void buttonFavoritePressed() {
|
||||
if (object instanceof FavouritePoint) {
|
||||
mapActivity.getMapActions().editFavoritePoint((FavouritePoint)object);
|
||||
} else {
|
||||
mapActivity.getMapActions().addFavouritePoint(pointDescription.getLat(), pointDescription.getLon());
|
||||
}
|
||||
}
|
||||
|
||||
public void buttonSharePressed() {
|
||||
mapActivity.getMapActions().shareLocation(pointDescription.getLat(), pointDescription.getLon());
|
||||
}
|
||||
|
||||
public void buttonMorePressed() {
|
||||
mapActivity.getMapActions().contextMenuPoint(pointDescription.getLat(), pointDescription.getLon(), menuAdapter, object);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,231 @@
|
|||
package net.osmand.plus.mapcontextmenu;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.Activity;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.animation.DecelerateInterpolator;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import net.osmand.PlatformUtil;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.activities.MapActivity;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
|
||||
|
||||
public class MapContextMenuFragment extends Fragment {
|
||||
|
||||
public static final String TAG = "MapContextMenuFragment";
|
||||
private static final Log LOG = PlatformUtil.getLog(MapContextMenuFragment.class);
|
||||
|
||||
private MapContextMenu contextMenu;
|
||||
|
||||
private View view;
|
||||
private View mainView;
|
||||
|
||||
private float mainViewHeight;
|
||||
|
||||
public MapContextMenuFragment() {
|
||||
super();
|
||||
contextMenu = MapContextMenu.getInstance();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(Activity activity) {
|
||||
super.onAttach(activity);
|
||||
|
||||
/*
|
||||
if(!portrait) {
|
||||
mapActivity.getMapView().setMapPositionX(1);
|
||||
mapActivity.getMapView().refreshMap();
|
||||
}
|
||||
|
||||
if(!AndroidUiHelper.isXLargeDevice(mapActivity)) {
|
||||
AndroidUiHelper.updateVisibility(mapActivity.findViewById(R.id.map_right_widgets_panel), false);
|
||||
AndroidUiHelper.updateVisibility(mapActivity.findViewById(R.id.map_left_widgets_panel), false);
|
||||
}
|
||||
if(!portrait) {
|
||||
AndroidUiHelper.updateVisibility(mapActivity.findViewById(R.id.map_route_land_left_margin), true);
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDetach() {
|
||||
super.onDetach();
|
||||
|
||||
/*
|
||||
mapActivity.getMapView().setMapPositionX(0);
|
||||
mapActivity.getMapView().refreshMap();
|
||||
|
||||
AndroidUiHelper.updateVisibility(mapActivity.findViewById(R.id.map_route_land_left_margin), false);
|
||||
AndroidUiHelper.updateVisibility(mapActivity.findViewById(R.id.map_right_widgets_panel), true);
|
||||
AndroidUiHelper.updateVisibility(mapActivity.findViewById(R.id.map_left_widgets_panel), true);
|
||||
*/
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
|
||||
view = inflater.inflate(R.layout.map_context_menu_fragment, container, false);
|
||||
|
||||
View shadowView = view.findViewById(R.id.context_menu_shadow_view);
|
||||
shadowView.setOnTouchListener(new View.OnTouchListener() {
|
||||
public boolean onTouch(View view, MotionEvent event) {
|
||||
dismissMenu();
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
View topView = view.findViewById(R.id.context_menu_top_view);
|
||||
mainView = view.findViewById(R.id.context_menu_main);
|
||||
|
||||
topView.setOnTouchListener(new View.OnTouchListener() {
|
||||
|
||||
private float dy;
|
||||
|
||||
@Override
|
||||
public boolean onTouch(View v, MotionEvent event) {
|
||||
switch (event.getAction()) {
|
||||
case MotionEvent.ACTION_DOWN:
|
||||
dy = event.getY();
|
||||
mainViewHeight = mainView.getHeight();
|
||||
break;
|
||||
|
||||
case MotionEvent.ACTION_MOVE:
|
||||
float y = event.getY();
|
||||
LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) mainView.getLayoutParams();
|
||||
float top = lp.topMargin + (y - dy);
|
||||
if (top < 0) {
|
||||
lp.topMargin = (int) top;
|
||||
mainView.setLayoutParams(lp);
|
||||
}
|
||||
break;
|
||||
|
||||
case MotionEvent.ACTION_UP:
|
||||
case MotionEvent.ACTION_CANCEL:
|
||||
|
||||
float posY = view.getHeight() - mainViewHeight;
|
||||
if (mainView.getY() != posY) {
|
||||
mainView.animate().y(posY).setDuration(200).setInterpolator(new DecelerateInterpolator()).start();
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
int iconId = MapContextMenu.getInstance().getLeftIconId();
|
||||
|
||||
final View iconLayout = view.findViewById(R.id.context_menu_icon_layout);
|
||||
final ImageView iconView = (ImageView)view.findViewById(R.id.context_menu_icon_view);
|
||||
if (iconId == 0) {
|
||||
iconLayout.setVisibility(View.GONE);
|
||||
} else {
|
||||
iconView.setImageResource(iconId);
|
||||
}
|
||||
|
||||
TextView line1 = (TextView) view.findViewById(R.id.context_menu_line1);
|
||||
line1.setText(contextMenu.getAddressStr());
|
||||
|
||||
TextView line2 = (TextView) view.findViewById(R.id.context_menu_line2);
|
||||
line2.setText(contextMenu.getLocationStr());
|
||||
|
||||
final ImageButton buttonNavigate = (ImageButton) view.findViewById(R.id.context_menu_route_button);
|
||||
buttonNavigate.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
MapContextMenu.getInstance().buttonNavigatePressed();
|
||||
}
|
||||
});
|
||||
|
||||
final ImageButton buttonFavorite = (ImageButton) view.findViewById(R.id.context_menu_fav_button);
|
||||
buttonFavorite.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
MapContextMenu.getInstance().buttonFavoritePressed();
|
||||
}
|
||||
});
|
||||
|
||||
final ImageButton buttonShare = (ImageButton) view.findViewById(R.id.context_menu_share_button);
|
||||
buttonShare.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
MapContextMenu.getInstance().buttonSharePressed();
|
||||
}
|
||||
});
|
||||
|
||||
final ImageButton buttonMore = (ImageButton) view.findViewById(R.id.context_menu_more_button);
|
||||
buttonMore.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
MapContextMenu.getInstance().buttonMorePressed();
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
Toolbar toolbar = (Toolbar) view.findViewById(R.id.toolbar);
|
||||
toolbar.setTitle(R.string.poi_create_title);
|
||||
toolbar.setNavigationIcon(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
|
||||
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
|
||||
fragmentManager.beginTransaction().remove(MapContextMenuFragment.this).commit();
|
||||
fragmentManager.popBackStack();
|
||||
}
|
||||
});
|
||||
|
||||
viewPager = (ViewPager) view.findViewById(R.id.viewpager);
|
||||
String basicTitle = getResources().getString(R.string.tab_title_basic);
|
||||
String extendedTitle = getResources().getString(R.string.tab_title_advanced);
|
||||
MyAdapter pagerAdapter = new MyAdapter(getChildFragmentManager(), basicTitle, extendedTitle);
|
||||
viewPager.setAdapter(pagerAdapter);
|
||||
|
||||
final TabLayout tabLayout = (TabLayout) view.findViewById(R.id.tab_layout);
|
||||
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
|
||||
|
||||
// Hack due to bug in design support library v22.2.1
|
||||
// https://code.google.com/p/android/issues/detail?id=180462
|
||||
// TODO remove in new version
|
||||
if (ViewCompat.isLaidOut(tabLayout)) {
|
||||
tabLayout.setupWithViewPager(viewPager);
|
||||
} else {
|
||||
tabLayout.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
|
||||
@Override
|
||||
public void onLayoutChange(View v, int left, int top, int right, int bottom,
|
||||
int oldLeft, int oldTop, int oldRight, int oldBottom) {
|
||||
tabLayout.setupWithViewPager(viewPager);
|
||||
tabLayout.removeOnLayoutChangeListener(this);
|
||||
}
|
||||
});
|
||||
}
|
||||
*/
|
||||
return view;
|
||||
}
|
||||
|
||||
public void dismissMenu() {
|
||||
getActivity().getSupportFragmentManager().popBackStack();
|
||||
}
|
||||
|
||||
public static void showInstance(final MapActivity mapActivity) {
|
||||
MapContextMenuFragment fragment = new MapContextMenuFragment();
|
||||
mapActivity.getSupportFragmentManager().beginTransaction()
|
||||
.setCustomAnimations(R.anim.slide_in_bottom, R.anim.slide_out_bottom, R.anim.slide_in_bottom, R.anim.slide_out_bottom)
|
||||
.add(R.id.fragmentContainer, fragment, "MapContextMenuFragment")
|
||||
.addToBackStack(null).commit();
|
||||
}
|
||||
}
|
||||
|
|
@ -4,9 +4,7 @@ import android.app.Dialog;
|
|||
import android.content.DialogInterface;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.DialogFragment;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.text.Editable;
|
||||
|
@ -27,13 +25,11 @@ import net.osmand.osm.PoiType;
|
|||
import net.osmand.osm.edit.OSMSettings;
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.activities.MapActivity;
|
||||
import net.osmand.plus.osmedit.data.EditPoiData;
|
||||
import net.osmand.plus.osmedit.data.Tag;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
|
@ -58,7 +54,7 @@ public class AdvancedDataFragment extends Fragment {
|
|||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
final View view = inflater.inflate(R.layout.fragment_edit_poi_advanced, container, false);
|
||||
|
||||
deleteDrawable = ((MapActivity)getActivity()).getMyApplication().getIconsCache()
|
||||
deleteDrawable = ((OsmandApplication) getActivity().getApplication()).getIconsCache()
|
||||
.getPaintedContentIcon(R.drawable.ic_action_remove_dark,
|
||||
getActivity().getResources().getColor(R.color.icon_color_light));
|
||||
TextView nameTextView = (TextView) view.findViewById(R.id.nameTextView);
|
||||
|
|
|
@ -20,8 +20,8 @@ import android.widget.TextView;
|
|||
import net.osmand.PlatformUtil;
|
||||
import net.osmand.osm.edit.OSMSettings;
|
||||
import net.osmand.plus.IconsCache;
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.activities.MapActivity;
|
||||
import net.osmand.plus.osmedit.data.EditPoiData;
|
||||
import net.osmand.plus.osmedit.data.Tag;
|
||||
import net.osmand.plus.osmedit.dialogs.OpeningHoursDaysDialogFragment;
|
||||
|
@ -52,7 +52,7 @@ public class BasicDataFragment extends Fragment {
|
|||
@Nullable
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
IconsCache iconsCache = ((MapActivity) getActivity()).getMyApplication().getIconsCache();
|
||||
IconsCache iconsCache = ((OsmandApplication) getActivity().getApplication()).getIconsCache();
|
||||
View view = inflater.inflate(R.layout.fragment_edit_poi_normal, container, false);
|
||||
|
||||
ImageView streetImageView = (ImageView) view.findViewById(R.id.streetImageView);
|
||||
|
|
|
@ -2,12 +2,15 @@ package net.osmand.plus.osmedit;
|
|||
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.design.widget.TabLayout;
|
||||
import android.support.design.widget.TextInputLayout;
|
||||
import android.support.v4.app.DialogFragment;
|
||||
|
@ -16,11 +19,13 @@ import android.support.v4.app.FragmentManager;
|
|||
import android.support.v4.app.FragmentPagerAdapter;
|
||||
import android.support.v4.view.ViewCompat;
|
||||
import android.support.v4.view.ViewPager;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.text.Editable;
|
||||
import android.text.TextUtils;
|
||||
import android.text.TextWatcher;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
@ -58,7 +63,7 @@ import java.util.LinkedHashMap;
|
|||
import java.util.LinkedHashSet;
|
||||
import java.util.Map;
|
||||
|
||||
public class EditPoiFragment extends Fragment {
|
||||
public class EditPoiFragment extends DialogFragment {
|
||||
public static final String TAG = "EditPoiFragment";
|
||||
private static final Log LOG = PlatformUtil.getLog(EditPoiFragment.class);
|
||||
|
||||
|
@ -82,29 +87,30 @@ public class EditPoiFragment extends Fragment {
|
|||
@Override
|
||||
public void onAttach(Activity activity) {
|
||||
super.onAttach(activity);
|
||||
// poiTypes = ((OsmandApplication) activity.getApplication()).getPoiTypes();
|
||||
// allTranslatedSubTypes = poiTypes.getAllTranslatedNames();
|
||||
OsmandSettings settings = ((MapActivity) activity).getMyApplication().getSettings();
|
||||
// editPoiData.isLocalEdit = true;
|
||||
OsmandSettings settings = getMyApplication().getSettings();
|
||||
OsmEditingPlugin plugin = OsmandPlugin.getPlugin(OsmEditingPlugin.class);
|
||||
if (settings.OFFLINE_EDITION.get() || !settings.isInternetConnectionAvailable(true)) {
|
||||
mOpenstreetmapUtil = new OpenstreetmapLocalUtil(plugin, activity);
|
||||
// openstreetmapUtilToLoad = mOpenstreetmapUtil;
|
||||
} else if (!settings.isInternetConnectionAvailable(true)) {
|
||||
mOpenstreetmapUtil = new OpenstreetmapLocalUtil(plugin, activity);
|
||||
// openstreetmapUtilToLoad = new OpenstreetmapRemoteUtil(activity);
|
||||
} else {
|
||||
isLocalEdit = false;
|
||||
mOpenstreetmapUtil = new OpenstreetmapRemoteUtil(activity);
|
||||
// openstreetmapUtilToLoad = mOpenstreetmapUtil;
|
||||
}
|
||||
|
||||
node = (Node) getArguments().getSerializable(KEY_AMENITY_NODE);
|
||||
allTranslatedSubTypes = ((OsmandApplication) activity.getApplication()).getPoiTypes()
|
||||
allTranslatedSubTypes = getMyApplication().getPoiTypes()
|
||||
.getAllTranslatedNames();
|
||||
// TODO implement normal name
|
||||
editPoiData.amenity = (Amenity) getArguments().getSerializable(KEY_AMENITY);
|
||||
// editPoiData.tags = new LinkedHashSet<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
boolean isLightTheme = ((OsmandApplication) getActivity().getApplication())
|
||||
.getSettings().OSMAND_THEME.get() == OsmandSettings.OSMAND_LIGHT_THEME;
|
||||
int themeId = isLightTheme ? R.style.OsmandLightTheme : R.style.OsmandDarkTheme;
|
||||
setStyle(STYLE_NO_FRAME, themeId);
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
|
||||
|
@ -194,7 +200,7 @@ public class EditPoiFragment extends Fragment {
|
|||
}
|
||||
});
|
||||
onlineDocumentationButton.setImageDrawable(
|
||||
((MapActivity) getActivity()).getMyApplication().getIconsCache()
|
||||
getMyApplication().getIconsCache()
|
||||
.getPaintedContentIcon(R.drawable.ic_action_help,
|
||||
getResources().getColor(R.color.inactive_item_orange)));
|
||||
final ImageButton poiTypeButton = (ImageButton) view.findViewById(R.id.poiTypeButton);
|
||||
|
@ -339,13 +345,29 @@ public class EditPoiFragment extends Fragment {
|
|||
}
|
||||
});
|
||||
updateType(editPoiData.amenity);
|
||||
setCancelable(false);
|
||||
return view;
|
||||
}
|
||||
|
||||
private void tryAddTag(String key, String value) {
|
||||
if (!Algorithms.isEmpty(value)) {
|
||||
editPoiData.tags.add(new Tag(key, value));
|
||||
}
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
getDialog().setOnKeyListener(new DialogInterface.OnKeyListener() {
|
||||
@Override
|
||||
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
|
||||
if (keyCode == android.view.KeyEvent.KEYCODE_BACK) {
|
||||
if (event.getAction() == KeyEvent.ACTION_DOWN) {
|
||||
return true;
|
||||
} else {
|
||||
new AreYouSureDialogFrgament().show(getChildFragmentManager(),
|
||||
"AreYouSureDialogFrgament");
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -354,6 +376,12 @@ public class EditPoiFragment extends Fragment {
|
|||
super.onSaveInstanceState(outState);
|
||||
}
|
||||
|
||||
private void tryAddTag(String key, String value) {
|
||||
if (!Algorithms.isEmpty(value)) {
|
||||
editPoiData.tags.add(new Tag(key, value));
|
||||
}
|
||||
}
|
||||
|
||||
public static EditPoiFragment createAddPoiInstance(double latitude, double longitude,
|
||||
OsmandApplication application) {
|
||||
Node node = new Node(latitude, longitude, -1);
|
||||
|
@ -455,20 +483,24 @@ public class EditPoiFragment extends Fragment {
|
|||
});
|
||||
}
|
||||
|
||||
private OsmandApplication getMyApplication() {
|
||||
return (OsmandApplication) getActivity().getApplication();
|
||||
}
|
||||
|
||||
public static void showEditInstance(final Amenity amenity,
|
||||
final MapActivity mapActivity) {
|
||||
final OsmandSettings settings = mapActivity.getMyApplication().getSettings();
|
||||
final AppCompatActivity activity) {
|
||||
final OsmandSettings settings = ((OsmandApplication) activity.getApplication())
|
||||
.getSettings();
|
||||
final OpenstreetmapUtil openstreetmapUtilToLoad;
|
||||
if (settings.OFFLINE_EDITION.get() || !settings.isInternetConnectionAvailable(true)) {
|
||||
OsmEditingPlugin plugin = OsmandPlugin.getPlugin(OsmEditingPlugin.class);
|
||||
openstreetmapUtilToLoad = new OpenstreetmapLocalUtil(plugin, mapActivity);
|
||||
openstreetmapUtilToLoad = new OpenstreetmapLocalUtil(plugin, activity);
|
||||
} else if (!settings.isInternetConnectionAvailable(true)) {
|
||||
openstreetmapUtilToLoad = new OpenstreetmapRemoteUtil(mapActivity);
|
||||
openstreetmapUtilToLoad = new OpenstreetmapRemoteUtil(activity);
|
||||
} else {
|
||||
openstreetmapUtilToLoad = new OpenstreetmapRemoteUtil(mapActivity);
|
||||
openstreetmapUtilToLoad = new OpenstreetmapRemoteUtil(activity);
|
||||
}
|
||||
new AsyncTask<Void, Void, Node>() {
|
||||
|
||||
@Override
|
||||
protected Node doInBackground(Void... params) {
|
||||
return openstreetmapUtilToLoad.loadNode(amenity);
|
||||
|
@ -478,18 +510,15 @@ public class EditPoiFragment extends Fragment {
|
|||
if (n != null) {
|
||||
EditPoiFragment fragment =
|
||||
EditPoiFragment.createInstance(n, amenity);
|
||||
mapActivity.getSupportFragmentManager().beginTransaction()
|
||||
activity.getSupportFragmentManager().beginTransaction()
|
||||
.add(R.id.fragmentContainer, fragment, "EditPoiFragment")
|
||||
.addToBackStack(null).commit();
|
||||
} else {
|
||||
AccessibleToast.makeText(mapActivity,
|
||||
mapActivity.getString(R.string.poi_error_poi_not_found),
|
||||
AccessibleToast.makeText(activity,
|
||||
activity.getString(R.string.poi_error_poi_not_found),
|
||||
Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
}.execute(new Void[0]);
|
||||
}
|
||||
|
||||
|
@ -536,6 +565,7 @@ public class EditPoiFragment extends Fragment {
|
|||
public static class ShowDeleteDialogAsyncTask extends AsyncTask<Amenity, Void, Node> {
|
||||
private final OpenstreetmapUtil openstreetmapUtil;
|
||||
private final AppCompatActivity activity;
|
||||
|
||||
public ShowDeleteDialogAsyncTask(AppCompatActivity activity) {
|
||||
this.activity = activity;
|
||||
OsmandSettings settings = ((OsmandApplication) activity.getApplication()).getSettings();
|
||||
|
@ -551,15 +581,33 @@ public class EditPoiFragment extends Fragment {
|
|||
|
||||
protected Node doInBackground(Amenity[] params) {
|
||||
return openstreetmapUtil.loadNode(params[0]);
|
||||
};
|
||||
}
|
||||
|
||||
protected void onPostExecute(Node n) {
|
||||
if(n == null){
|
||||
AccessibleToast.makeText(activity, activity.getResources().getString(R.string.poi_error_poi_not_found), Toast.LENGTH_LONG).show();
|
||||
return;
|
||||
if (n == null) {
|
||||
AccessibleToast.makeText(activity, activity.getResources().getString(R.string.poi_error_poi_not_found), Toast.LENGTH_LONG).show();
|
||||
return;
|
||||
}
|
||||
DeletePoiDialogFragment.createInstance(n).show(activity.getSupportFragmentManager(),
|
||||
"DeletePoiDialogFragment");
|
||||
}
|
||||
DeletePoiDialogFragment.createInstance(n).show(activity.getSupportFragmentManager(),
|
||||
"DeletePoiDialogFragment");
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public static class AreYouSureDialogFrgament extends DialogFragment {
|
||||
@NonNull
|
||||
@Override
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
||||
builder.setTitle("Are you sure?")
|
||||
.setMessage("Any unsaved changes will be lost. Continue?")
|
||||
.setPositiveButton(R.string.shared_string_ok, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
((DialogFragment) getParentFragment()).dismiss();
|
||||
}
|
||||
})
|
||||
.setNegativeButton(R.string.shared_string_cancel, null);
|
||||
return builder.create();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,6 +1,19 @@
|
|||
package net.osmand.plus.osmedit;
|
||||
|
||||
import java.util.List;
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.AlertDialog.Builder;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.DialogInterface.OnClickListener;
|
||||
import android.content.Intent;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.EditText;
|
||||
import android.widget.Spinner;
|
||||
import android.widget.Toast;
|
||||
|
||||
import net.osmand.PlatformUtil;
|
||||
import net.osmand.access.AccessibleToast;
|
||||
|
@ -24,20 +37,7 @@ import net.osmand.util.Algorithms;
|
|||
|
||||
import org.apache.commons.logging.Log;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.AlertDialog.Builder;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.DialogInterface.OnClickListener;
|
||||
import android.content.Intent;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.EditText;
|
||||
import android.widget.Spinner;
|
||||
import android.widget.Toast;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public class OsmEditingPlugin extends OsmandPlugin {
|
||||
|
@ -158,10 +158,8 @@ public class OsmEditingPlugin extends OsmandPlugin {
|
|||
EditPoiFragment editPoiFragment =
|
||||
EditPoiFragment.createAddPoiInstance(latitude, longitude,
|
||||
mapActivity.getMyApplication());
|
||||
mapActivity.getSupportFragmentManager().beginTransaction()
|
||||
.add(R.id.fragmentContainer, editPoiFragment, EditPoiFragment.TAG)
|
||||
.addToBackStack(null)
|
||||
.commit();
|
||||
editPoiFragment.show(mapActivity.getSupportFragmentManager(),
|
||||
EditPoiFragment.TAG);
|
||||
} else if (resId == R.string.context_menu_item_open_bug) {
|
||||
if (osmBugsLayer == null) {
|
||||
registerLayers(mapActivity);
|
||||
|
|
|
@ -1,12 +1,15 @@
|
|||
package net.osmand.plus.osmedit;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.DialogFragment;
|
||||
import android.support.v4.view.MenuItemCompat;
|
||||
import android.support.v7.view.ActionMode;
|
||||
import android.support.v7.widget.PopupMenu;
|
||||
|
@ -24,29 +27,6 @@ import android.widget.CheckBox;
|
|||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
import net.osmand.access.AccessibleToast;
|
||||
import net.osmand.data.PointDescription;
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.OsmandPlugin;
|
||||
import net.osmand.plus.OsmandSettings;
|
||||
import net.osmand.plus.ProgressImplementation;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.activities.ActionBarProgressActivity;
|
||||
import net.osmand.plus.activities.MapActivity;
|
||||
import net.osmand.plus.activities.OsmAndListFragment;
|
||||
import net.osmand.plus.activities.OsmandActionBarActivity;
|
||||
import net.osmand.plus.dialogs.DirectionsDialogs;
|
||||
import net.osmand.plus.helpers.AndroidUiHelper;
|
||||
import net.osmand.plus.myplaces.FavoritesActivity;
|
||||
|
||||
import org.xmlpull.v1.XmlSerializer;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import net.osmand.access.AccessibleToast;
|
||||
import net.osmand.data.PointDescription;
|
||||
|
@ -78,7 +58,7 @@ import java.util.List;
|
|||
*/
|
||||
public class OsmEditsFragment extends OsmAndListFragment {
|
||||
OsmEditingPlugin plugin;
|
||||
|
||||
|
||||
private OsmEditsAdapter listAdapter;
|
||||
|
||||
private boolean selectionMode = false;
|
||||
|
@ -90,7 +70,6 @@ public class OsmEditsFragment extends OsmAndListFragment {
|
|||
private final static int MODE_UPLOAD = 101;
|
||||
|
||||
private ActionMode actionMode;
|
||||
protected OsmPoint[] toUpload = new OsmPoint[0];
|
||||
|
||||
private ArrayList<OsmPoint> osmEditsSelected = new ArrayList<>();
|
||||
|
||||
|
@ -280,7 +259,8 @@ public class OsmEditsFragment extends OsmAndListFragment {
|
|||
|
||||
private void updateSelectionTitle(ActionMode m) {
|
||||
if (osmEditsSelected.size() > 0) {
|
||||
m.setTitle(osmEditsSelected.size() + " " + getMyApplication().getString(R.string.shared_string_selected_lowercase));
|
||||
m.setTitle(osmEditsSelected.size() + " "
|
||||
+ getMyApplication().getString(R.string.shared_string_selected_lowercase));
|
||||
} else {
|
||||
m.setTitle("");
|
||||
}
|
||||
|
@ -316,28 +296,8 @@ public class OsmEditsFragment extends OsmAndListFragment {
|
|||
}
|
||||
|
||||
private void deleteItems(final ArrayList<OsmPoint> points) {
|
||||
AlertDialog.Builder b = new AlertDialog.Builder(getActivity());
|
||||
b.setMessage(getString(R.string.local_osm_changes_delete_all_confirm, points.size()));
|
||||
b.setPositiveButton(R.string.shared_string_delete, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
Iterator<OsmPoint> it = points.iterator();
|
||||
while (it.hasNext()) {
|
||||
OsmPoint omsPoint = it.next();
|
||||
if (omsPoint.getGroup() == OsmPoint.Group.POI) {
|
||||
plugin.getDBPOI().deletePOI((OpenstreetmapPoint) omsPoint);
|
||||
} else if (omsPoint.getGroup() == OsmPoint.Group.BUG) {
|
||||
plugin.getDBBug().deleteAllBugModifications((OsmNotesPoint) omsPoint);
|
||||
}
|
||||
it.remove();
|
||||
listAdapter.delete(omsPoint);
|
||||
}
|
||||
listAdapter.notifyDataSetChanged();
|
||||
|
||||
}
|
||||
});
|
||||
b.setNegativeButton(R.string.shared_string_cancel, null);
|
||||
b.show();
|
||||
DeleteOsmEditsConfirmDialogFragment.createInstance(points).
|
||||
show(getChildFragmentManager(), DeleteOsmEditsConfirmDialogFragment.TAG);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -391,18 +351,18 @@ public class OsmEditsFragment extends OsmAndListFragment {
|
|||
|
||||
protected class OsmEditsAdapter extends ArrayAdapter<OsmPoint> {
|
||||
private List<OsmPoint> dataPoints;
|
||||
|
||||
|
||||
|
||||
|
||||
public OsmEditsAdapter(List<OsmPoint> points) {
|
||||
super(getActivity(), net.osmand.plus.R.layout.note, points);
|
||||
dataPoints = points;
|
||||
}
|
||||
|
||||
|
||||
public void setNewList(List<OsmPoint> dp) {
|
||||
dataPoints = dp;
|
||||
setNotifyOnChange(false);
|
||||
clear();
|
||||
for(OsmPoint pnt : dp) {
|
||||
for (OsmPoint pnt : dp) {
|
||||
add(pnt);
|
||||
}
|
||||
setNotifyOnChange(true);
|
||||
|
@ -450,7 +410,8 @@ public class OsmEditsFragment extends OsmAndListFragment {
|
|||
ch.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
((ImageView) options).setImageDrawable(getMyApplication().getIconsCache().getContentIcon(R.drawable.ic_overflow_menu_white));
|
||||
((ImageView) options).setImageDrawable(getMyApplication().getIconsCache()
|
||||
.getContentIcon(R.drawable.ic_overflow_menu_white));
|
||||
options.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
@ -527,20 +488,11 @@ public class OsmEditsFragment extends OsmAndListFragment {
|
|||
}
|
||||
|
||||
private void uploadItems(final OsmPoint[] items) {
|
||||
AlertDialog.Builder b = new AlertDialog.Builder(getActivity());
|
||||
b.setMessage(getString(R.string.local_osm_changes_upload_all_confirm, items.length));
|
||||
b.setPositiveButton(R.string.shared_string_yes, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
toUpload = items;
|
||||
showUploadItemsProgressDialog();
|
||||
}
|
||||
});
|
||||
b.setNegativeButton(R.string.shared_string_cancel, null);
|
||||
b.show();
|
||||
UploadOsmEditsConfirmDialogFragment.createInstance(items).show(getChildFragmentManager(),
|
||||
UploadOsmEditsConfirmDialogFragment.TAG);
|
||||
}
|
||||
|
||||
private void showUploadItemsProgressDialog() {
|
||||
private void showUploadItemsProgressDialog(OsmPoint[] toUpload) {
|
||||
ProgressDialog dialog = ProgressImplementation.createProgressDialog(
|
||||
getActivity(),
|
||||
getString(R.string.uploading),
|
||||
|
@ -668,4 +620,92 @@ public class OsmEditsFragment extends OsmAndListFragment {
|
|||
new PointDescription(type, name), true, osmPoint); //$NON-NLS-1$
|
||||
MapActivity.launchMapActivityMoveToTop(getActivity());
|
||||
}
|
||||
|
||||
private void deletePoint(OsmPoint osmPoint) {
|
||||
listAdapter.delete(osmPoint);
|
||||
}
|
||||
|
||||
private void notifyDataSetChanged() {
|
||||
listAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public static class DeleteOsmEditsConfirmDialogFragment extends DialogFragment {
|
||||
public static final String TAG = "DeleteOsmEditsConfirmDialogFragment";
|
||||
private static final String POINTS_LIST = "points_list";
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||
final OsmEditsFragment parentFragment = (OsmEditsFragment) getParentFragment();
|
||||
final OsmEditingPlugin plugin = OsmandPlugin.getEnabledPlugin(OsmEditingPlugin.class);
|
||||
final ArrayList<OsmPoint> points =
|
||||
(ArrayList<OsmPoint>) getArguments().getSerializable(POINTS_LIST);
|
||||
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
||||
builder.setMessage(getString(R.string.local_osm_changes_delete_all_confirm,
|
||||
points.size()));
|
||||
builder.setPositiveButton(R.string.shared_string_delete, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
Iterator<OsmPoint> it = points.iterator();
|
||||
while (it.hasNext()) {
|
||||
OsmPoint osmPoint = it.next();
|
||||
if (osmPoint.getGroup() == OsmPoint.Group.POI) {
|
||||
plugin.getDBPOI().deletePOI((OpenstreetmapPoint) osmPoint);
|
||||
} else if (osmPoint.getGroup() == OsmPoint.Group.BUG) {
|
||||
plugin.getDBBug().deleteAllBugModifications((OsmNotesPoint) osmPoint);
|
||||
}
|
||||
it.remove();
|
||||
parentFragment.deletePoint(osmPoint);
|
||||
}
|
||||
parentFragment.notifyDataSetChanged();
|
||||
|
||||
}
|
||||
});
|
||||
builder.setNegativeButton(R.string.shared_string_cancel, null);
|
||||
return builder.create();
|
||||
}
|
||||
|
||||
public static DeleteOsmEditsConfirmDialogFragment createInstance(
|
||||
ArrayList<OsmPoint> points) {
|
||||
DeleteOsmEditsConfirmDialogFragment fragment = new DeleteOsmEditsConfirmDialogFragment();
|
||||
Bundle args = new Bundle();
|
||||
args.putSerializable(POINTS_LIST, points);
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
}
|
||||
}
|
||||
|
||||
public static class UploadOsmEditsConfirmDialogFragment extends DialogFragment {
|
||||
public static final String TAG = "UploadOsmEditsConfirmDialogFragment";
|
||||
private static final String POINTS_ARRAY = "points_list";
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||
final OsmPoint[] points = (OsmPoint[]) getArguments().getSerializable(POINTS_ARRAY);
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
||||
builder.setMessage(
|
||||
getString(R.string.local_osm_changes_upload_all_confirm, points.length));
|
||||
builder.setPositiveButton(R.string.shared_string_yes,
|
||||
new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
((OsmEditsFragment) getParentFragment())
|
||||
.showUploadItemsProgressDialog(points);
|
||||
}
|
||||
});
|
||||
builder.setNegativeButton(R.string.shared_string_cancel, null);
|
||||
return builder.create();
|
||||
}
|
||||
|
||||
public static UploadOsmEditsConfirmDialogFragment createInstance(OsmPoint[] points) {
|
||||
UploadOsmEditsConfirmDialogFragment fragment =
|
||||
new UploadOsmEditsConfirmDialogFragment();
|
||||
Bundle args = new Bundle();
|
||||
args.putSerializable(POINTS_ARRAY, points);
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -101,7 +101,10 @@ public class RenderingIcons {
|
|||
return iconsBmp.get(s);
|
||||
}
|
||||
|
||||
|
||||
public static Integer getResId(String id) {
|
||||
return id.startsWith("h_") ? shaderIcons.get(id.substring(2)) : smallIcons.get(id);
|
||||
}
|
||||
|
||||
static {
|
||||
initIcons();
|
||||
}
|
||||
|
|
|
@ -695,12 +695,12 @@ public class RoutingHelper {
|
|||
}
|
||||
}
|
||||
|
||||
protected boolean isDistanceLess(float currentSpeed, double dist, double etalon, double defSpeed){
|
||||
if(dist < etalon || ((dist / currentSpeed) < (etalon / defSpeed))){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
// protected boolean isDistanceLess(float currentSpeed, double dist, double etalon, float defSpeed){
|
||||
// if(dist < etalon || ((dist / currentSpeed) < (etalon / defSpeed))){
|
||||
// return true;
|
||||
// }
|
||||
// return false;
|
||||
// }
|
||||
|
||||
public synchronized String getCurrentName(TurnType[] next){
|
||||
NextDirectionInfo n = getNextRouteDirectionInfo(new NextDirectionInfo(), false);
|
||||
|
@ -710,7 +710,7 @@ public class RoutingHelper {
|
|||
speed = l.getSpeed();
|
||||
}
|
||||
if(n.distanceTo > 0 && n.directionInfo != null && !n.directionInfo.getTurnType().isSkipToSpeak() &&
|
||||
voiceRouter.isDistanceLess(speed, n.distanceTo, voiceRouter.PREPARE_DISTANCE * 0.75f)) {
|
||||
voiceRouter.isDistanceLess(speed, n.distanceTo, voiceRouter.PREPARE_DISTANCE * 0.75f, 0f)) {
|
||||
String nm = n.directionInfo.getStreetName();
|
||||
String rf = n.directionInfo.getRef();
|
||||
String dn = n.directionInfo.getDestinationName();
|
||||
|
|
|
@ -166,29 +166,25 @@ public class VoiceRouter {
|
|||
}
|
||||
}
|
||||
|
||||
public boolean isDistanceLess(float currentSpeed, double dist, double etalon){
|
||||
public boolean isDistanceLess(float currentSpeed, double dist, double etalon, float defSpeed){
|
||||
if(defSpeed <= 0) {
|
||||
defSpeed = DEFAULT_SPEED;
|
||||
}
|
||||
if(currentSpeed <= 0) {
|
||||
currentSpeed = DEFAULT_SPEED;
|
||||
}
|
||||
if(dist < etalon || ((dist / currentSpeed) < (etalon / DEFAULT_SPEED))){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
protected boolean isDistanceLess(float currentSpeed, double dist, double etalon, double defSpeed){
|
||||
if(dist < etalon || ((dist / currentSpeed) < (etalon / defSpeed))){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public int calculateImminent(float dist, Location loc){
|
||||
float speed = DEFAULT_SPEED;
|
||||
if(loc != null && loc.hasSpeed()) {
|
||||
speed = loc.getSpeed();
|
||||
}
|
||||
if (isDistanceLess(speed, dist, TURN_IN_DISTANCE_END)) {
|
||||
if (isDistanceLess(speed, dist, TURN_IN_DISTANCE_END, 0f)) {
|
||||
return 0;
|
||||
} else if ( dist <= PREPARE_DISTANCE) {
|
||||
return 1;
|
||||
|
@ -439,11 +435,11 @@ public class VoiceRouter {
|
|||
|
||||
// say how much to go if there is next turn is a bit far
|
||||
if (currentStatus == STATUS_UNKNOWN) {
|
||||
if (!isDistanceLess(speed, dist, TURN_IN_DISTANCE * 1.3)) {
|
||||
if (!isDistanceLess(speed, dist, TURN_IN_DISTANCE * 1.3, 0f)) {
|
||||
playGoAheadDist = dist - 80;
|
||||
}
|
||||
// say long distance message only for long distances > 10 km
|
||||
// if (dist >= PREPARE_LONG_DISTANCE && !isDistanceLess(speed, dist, PREPARE_LONG_DISTANCE)) {
|
||||
// if (dist >= PREPARE_LONG_DISTANCE && !isDistanceLess(speed, dist, PREPARE_LONG_DISTANCE, 0f)) {
|
||||
if (dist > PREPARE_LONG_DISTANCE + 300) {
|
||||
nextStatusAfter(STATUS_UNKNOWN);
|
||||
} else if (dist > PREPARE_DISTANCE + 300) {
|
||||
|
@ -466,9 +462,9 @@ public class VoiceRouter {
|
|||
andSpeakArriveAtPoint(nextNextInfo);
|
||||
}
|
||||
nextStatusAfter(STATUS_TURN);
|
||||
} else if ((repeat || statusNotPassed(STATUS_TURN_IN)) && isDistanceLess(speed, dist, TURN_IN_DISTANCE)) {
|
||||
} else if ((repeat || statusNotPassed(STATUS_TURN_IN)) && isDistanceLess(speed, dist, TURN_IN_DISTANCE, 0f)) {
|
||||
if (repeat || dist >= TURN_IN_DISTANCE_END) {
|
||||
if ((isDistanceLess(speed, next.distance, TURN_DISTANCE) || next.distance < TURN_IN_DISTANCE_END) &&
|
||||
if ((isDistanceLess(speed, next.distance, TURN_DISTANCE, 0f) || next.distance < TURN_IN_DISTANCE_END) &&
|
||||
nextNextInfo != null) {
|
||||
playMakeTurnIn(currentSegment, next, dist, nextNextInfo.directionInfo);
|
||||
} else {
|
||||
|
@ -477,7 +473,7 @@ public class VoiceRouter {
|
|||
playAndArriveAtDestination(repeat, nextInfo, currentSegment);
|
||||
}
|
||||
nextStatusAfter(STATUS_TURN_IN);
|
||||
// } else if (statusNotPassed(STATUS_PREPARE) && isDistanceLess(speed, dist, PREPARE_DISTANCE)) {
|
||||
// } else if (statusNotPassed(STATUS_PREPARE) && isDistanceLess(speed, dist, PREPARE_DISTANCE, 0f)) {
|
||||
} else if ((repeat || statusNotPassed(STATUS_PREPARE)) && (dist <= PREPARE_DISTANCE)) {
|
||||
if (repeat || dist >= PREPARE_DISTANCE_END) {
|
||||
if (!repeat && (next.getTurnType().keepLeft() || next.getTurnType().keepRight())){
|
||||
|
@ -488,7 +484,7 @@ public class VoiceRouter {
|
|||
}
|
||||
}
|
||||
nextStatusAfter(STATUS_PREPARE);
|
||||
// } else if (statusNotPassed(STATUS_LONG_PREPARE) && isDistanceLess(speed, dist, PREPARE_LONG_DISTANCE)){
|
||||
// } else if (statusNotPassed(STATUS_LONG_PREPARE) && isDistanceLess(speed, dist, PREPARE_LONG_DISTANCE, 0f)){
|
||||
} else if ((repeat || statusNotPassed(STATUS_LONG_PREPARE)) && (dist <= PREPARE_LONG_DISTANCE)) {
|
||||
if (repeat || dist >= PREPARE_LONG_DISTANCE_END) {
|
||||
playPrepareTurn(currentSegment, next, dist);
|
||||
|
|
|
@ -1,26 +1,17 @@
|
|||
package net.osmand.plus.views;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import net.osmand.CallbackWithObject;
|
||||
import net.osmand.data.LatLon;
|
||||
import net.osmand.data.PointDescription;
|
||||
import net.osmand.data.RotatedTileBox;
|
||||
import net.osmand.plus.ContextMenuAdapter;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.activities.MapActivity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.AlertDialog.Builder;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.DialogInterface.OnClickListener;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.PointF;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.PorterDuffColorFilter;
|
||||
import android.graphics.Rect;
|
||||
import android.os.Build;
|
||||
import android.text.Html;
|
||||
|
@ -30,6 +21,22 @@ import android.widget.FrameLayout.LayoutParams;
|
|||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import net.osmand.CallbackWithObject;
|
||||
import net.osmand.data.LatLon;
|
||||
import net.osmand.data.PointDescription;
|
||||
import net.osmand.data.RotatedTileBox;
|
||||
import net.osmand.plus.ContextMenuAdapter;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.activities.MapActivity;
|
||||
import net.osmand.plus.mapcontextmenu.MapContextMenu;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
public class ContextMenuLayer extends OsmandMapLayer {
|
||||
|
||||
public interface IContextMenuProvider {
|
||||
|
@ -70,7 +77,12 @@ public class ContextMenuLayer extends OsmandMapLayer {
|
|||
private final MapActivity activity;
|
||||
private float scaleCoefficient = 1;
|
||||
private CallbackWithObject<LatLon> selectOnMap = null;
|
||||
|
||||
|
||||
private Bitmap mapContextMarker;
|
||||
private boolean showMapContextMarker;
|
||||
|
||||
private Paint mapMarkerPaintIcon;
|
||||
|
||||
public ContextMenuLayer(MapActivity activity){
|
||||
this.activity = activity;
|
||||
if(activity.getLastNonConfigurationInstanceByKey(KEY_LAT_LAN) != null) {
|
||||
|
@ -117,6 +129,13 @@ public class ContextMenuLayer extends OsmandMapLayer {
|
|||
closeButton.setLayoutParams(lp);
|
||||
closeButton.setImageDrawable(view.getResources().getDrawable(R.drawable.headliner_close));
|
||||
closeButton.setClickable(true);
|
||||
|
||||
showMapContextMarker = false;
|
||||
mapMarkerPaintIcon = new Paint();
|
||||
mapMarkerPaintIcon.setColorFilter(new PorterDuffColorFilter(activity.getResources().getColor(R.color.osmand_orange), PorterDuff.Mode.SRC_IN));
|
||||
mapContextMarker = BitmapFactory.decodeResource(view.getResources(), R.drawable.ic_action_marker2);
|
||||
|
||||
|
||||
if(latLon != null){
|
||||
setLocation(latLon, description);
|
||||
}
|
||||
|
@ -133,6 +152,10 @@ public class ContextMenuLayer extends OsmandMapLayer {
|
|||
if(latLon != null){
|
||||
int x = (int) box.getPixXFromLatLon(latLon.getLatitude(), latLon.getLongitude());
|
||||
int y = (int) box.getPixYFromLatLon(latLon.getLatitude(), latLon.getLongitude());
|
||||
|
||||
if (showMapContextMarker)
|
||||
canvas.drawBitmap(mapContextMarker, x - mapContextMarker.getWidth() / 2, y - mapContextMarker.getHeight(), mapMarkerPaintIcon);
|
||||
|
||||
textView.setTextColor(nightMode != null && nightMode.isNightMode() ? Color.GRAY : Color.WHITE);
|
||||
if (textView.getText().length() > 0) {
|
||||
canvas.translate(x - textView.getWidth() / 2, y - textView.getHeight());
|
||||
|
@ -176,7 +199,21 @@ public class ContextMenuLayer extends OsmandMapLayer {
|
|||
int minh = closeButton.getDrawable().getMinimumHeight();
|
||||
closeButton.layout(0, 0, minw, minh);
|
||||
}
|
||||
|
||||
|
||||
public void showMapContextMenuMarker() {
|
||||
if (!showMapContextMarker) {
|
||||
showMapContextMarker = true;
|
||||
view.refreshMap();
|
||||
}
|
||||
}
|
||||
|
||||
public void hideMapContextMenuMarker() {
|
||||
if (showMapContextMarker) {
|
||||
showMapContextMarker = false;
|
||||
view.refreshMap();
|
||||
}
|
||||
}
|
||||
|
||||
public void setLocation(LatLon loc, String description){
|
||||
latLon = loc;
|
||||
if(latLon != null){
|
||||
|
@ -391,10 +428,15 @@ public class ContextMenuLayer extends OsmandMapLayer {
|
|||
} else if (!disableSingleTap()) {
|
||||
LatLon latLon = selectObjectsForContextMenu(tileBox, point);
|
||||
if (latLon != null) {
|
||||
String description = getSelectedObjectDescription();
|
||||
setLocation(latLon, description);
|
||||
view.refreshMap();
|
||||
return true;
|
||||
if (selectedObjects.size() == 1) {
|
||||
Object selectedObj = selectedObjects.keySet().iterator().next();
|
||||
showMapContextMenu(selectedObj, latLon, null);
|
||||
} else {
|
||||
String description = getSelectedObjectDescription();
|
||||
setLocation(latLon, description);
|
||||
view.refreshMap();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
@ -420,7 +462,8 @@ public class ContextMenuLayer extends OsmandMapLayer {
|
|||
for (OsmandMapLayer layer : view.getLayers()) {
|
||||
layer.populateObjectContextMenu(selectedObj, menuAdapter);
|
||||
}
|
||||
activity.getMapActions().contextMenuPoint(l.getLatitude(), l.getLongitude(), menuAdapter, selectedObj);
|
||||
showMapContextMenu(selectedObj, l, menuAdapter);
|
||||
//activity.getMapActions().contextMenuPoint(l.getLatitude(), l.getLongitude(), menuAdapter, selectedObj);
|
||||
}
|
||||
});
|
||||
builder.show();
|
||||
|
@ -429,10 +472,23 @@ public class ContextMenuLayer extends OsmandMapLayer {
|
|||
for (OsmandMapLayer layer : view.getLayers()) {
|
||||
layer.populateObjectContextMenu(selectedObj, menuAdapter);
|
||||
}
|
||||
activity.getMapActions().contextMenuPoint(l.getLatitude(), l.getLongitude(), menuAdapter, selectedObj);
|
||||
|
||||
showMapContextMenu(selectedObj, l, menuAdapter);
|
||||
//activity.getMapActions().contextMenuPoint(l.getLatitude(), l.getLongitude(), menuAdapter, selectedObj);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void showMapContextMenu(Object obj, LatLon latLon, final ContextMenuAdapter menuAdapter) {
|
||||
PointDescription pointDescription = selectedObjects.get(obj).getObjectName(obj);
|
||||
pointDescription.setLat(latLon.getLatitude());
|
||||
pointDescription.setLon(latLon.getLongitude());
|
||||
this.latLon = latLon;
|
||||
|
||||
showMapContextMenuMarker();
|
||||
MapContextMenu.getInstance().show(pointDescription, obj, menuAdapter);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onTouchEvent(MotionEvent event, RotatedTileBox tileBox) {
|
||||
if (latLon != null) {
|
||||
|
|
Loading…
Reference in a new issue