Merge branch 'master' of github.com:osmandapp/Osmand
This commit is contained in:
commit
03a23b0243
38 changed files with 832 additions and 228 deletions
|
@ -358,6 +358,7 @@ dependencies {
|
|||
compile project(path: ':OsmAnd-java', configuration: 'android')
|
||||
compile project(':eclipse-compile:design')
|
||||
compile project(':eclipse-compile:cardview')
|
||||
compile project(':eclipse-compile:gridlayout')
|
||||
// compile project(":eclipse-compile:recyclerview")
|
||||
compile fileTree(include: ['*.jar'], exclude: ['QtAndroid-bundled.jar', 'QtAndroidAccessibility-bundled.jar', 'OsmAndCore_android.jar', 'OsmAndCore_wrapper.jar', 'android-support-multidex.jar'], dir: 'libs')
|
||||
// compile "com.github.ksoichiro:android-observablescrollview:1.5.0"
|
||||
|
|
|
@ -15,3 +15,4 @@ dex.force.jumbo=true
|
|||
android.library.reference.1=../eclipse-compile/appcompat
|
||||
android.library.reference.2=../eclipse-compile/design
|
||||
android.library.reference.3=../eclipse-compile/cardview
|
||||
android.library.reference.4=../eclipse-compile/gridlayout
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/color_white"
|
||||
android:textSize="12sp"
|
||||
|
@ -44,7 +45,6 @@
|
|||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/color_white"
|
||||
|
|
|
@ -14,77 +14,109 @@
|
|||
|
||||
<include layout="@layout/card_top_divider"/>
|
||||
|
||||
<GridLayout
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/bg_color"
|
||||
android:columnCount="2">
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_columnSpan="2"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:gravity="center_vertical"
|
||||
android:minHeight="48dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/select_month_and_country"
|
||||
android:textColor="?android:textColorPrimary"/>
|
||||
|
||||
<net.osmand.plus.widgets.ButtonEx
|
||||
android:id="@+id/show_all"
|
||||
style="@style/DashboardGeneralButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:text="@string/shared_string_all"
|
||||
android:textColor="?attr/contextMenuButtonColor"
|
||||
osmand:textAllCapsCompat="true"
|
||||
osmand:typeface="@string/font_roboto_medium"/>
|
||||
</LinearLayout>
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:layout_columnSpan="2"
|
||||
android:background="?attr/dashboard_divider"/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/monthButton"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:gravity="center_vertical"
|
||||
android:minHeight="60dp"
|
||||
android:clickable="true"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/calendarImageView"
|
||||
android:layout_width="56dp"
|
||||
android:layout_height="60dp"
|
||||
android:layout_height="56dp"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_action_data"/>
|
||||
|
||||
<Spinner
|
||||
android:id="@+id/montReportsSpinner"
|
||||
android:layout_gravity="fill_horizontal|fill_vertical"
|
||||
android:layout_marginRight="56dp"
|
||||
android:gravity="center_vertical"/>
|
||||
|
||||
<View
|
||||
android:layout_height="1dp"
|
||||
android:layout_column="1"
|
||||
android:background="?attr/dashboard_divider"/>
|
||||
android:id="@+id/monthReportsSpinner"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginLeft="-8dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:clickable="false"
|
||||
android:background="@null"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/regionIconImageView"
|
||||
android:layout_width="56dp"
|
||||
android:layout_height="56dp"
|
||||
android:paddingTop="4dp"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_world_globe_dark"/>
|
||||
android:id="@+id/monthDropDownIcon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginRight="16dp"
|
||||
android:src="@drawable/ic_action_arrow_drop_down"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:layout_marginLeft="56dp"
|
||||
android:background="?attr/dashboard_divider"/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/reportsButton"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="fill_vertical"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical"
|
||||
android:paddingTop="4dp">
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:gravity="center_vertical"
|
||||
android:minHeight="60dp"
|
||||
android:clickable="true"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/regionIconImageView"
|
||||
android:layout_width="56dp"
|
||||
android:layout_height="56dp"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_world_globe_dark"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginRight="16dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
|
@ -99,15 +131,24 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="fill_horizontal"
|
||||
android:textColor="?android:textColorPrimary"
|
||||
android:textSize="@dimen/default_list_text_size"
|
||||
tools:text="Worldwide"/>
|
||||
</LinearLayout>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/countryDropDownIcon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginRight="16dp"
|
||||
android:src="@drawable/ic_action_arrow_drop_down"/>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<View
|
||||
android:id="@+id/divider_to_hide"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:layout_columnSpan="2"
|
||||
android:layout_marginBottom="4dp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:background="?attr/dashboard_divider"/>
|
||||
|
||||
<ProgressBar
|
||||
|
@ -115,25 +156,29 @@
|
|||
style="?android:attr/progressBarStyleHorizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="9dp"
|
||||
android:layout_columnSpan="2"
|
||||
android:indeterminate="true"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/numberOfContributorsIcon"
|
||||
android:layout_width="56dp"
|
||||
android:layout_height="56dp"
|
||||
android:paddingBottom="4dp"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_group"/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/numberOfContributorsLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="fill_vertical"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical"
|
||||
android:paddingBottom="4dp">
|
||||
android:gravity="center_vertical"
|
||||
android:minHeight="60dp"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/numberOfContributorsIcon"
|
||||
android:layout_width="56dp"
|
||||
android:layout_height="56dp"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_group"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginRight="16dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/numberOfContributorsTitle"
|
||||
|
@ -148,27 +193,38 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="0"
|
||||
android:textSize="@dimen/default_list_text_size"
|
||||
android:textColor="?android:textColorPrimary"/>
|
||||
</LinearLayout>
|
||||
|
||||
<View
|
||||
android:layout_height="1dp"
|
||||
android:layout_column="1"
|
||||
android:background="?attr/dashboard_divider"/>
|
||||
</LinearLayout>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/numberOfEditsIcon"
|
||||
android:layout_width="56dp"
|
||||
android:layout_height="60dp"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_world_globe_dark"/>
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:layout_marginLeft="56dp"
|
||||
android:background="?attr/dashboard_divider"/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/numberOfEditsLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="fill_vertical"
|
||||
android:gravity="center"
|
||||
android:gravity="center_vertical"
|
||||
android:minHeight="60dp"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/numberOfEditsIcon"
|
||||
android:layout_width="56dp"
|
||||
android:layout_height="56dp"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_map"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginRight="16dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
|
@ -184,22 +240,37 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="0"
|
||||
android:textSize="@dimen/default_list_text_size"
|
||||
android:textColor="?android:textColorPrimary"/>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:layout_marginLeft="56dp"
|
||||
android:background="?attr/dashboard_divider"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
android:minHeight="60dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/donationsIcon"
|
||||
android:layout_width="56dp"
|
||||
android:layout_height="60dp"
|
||||
android:layout_height="56dp"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_action_message"/>
|
||||
android:src="@drawable/ic_action_bitcoin"/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/donationsLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="fill_vertical"
|
||||
android:gravity="center"
|
||||
android:layout_marginRight="16dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
|
@ -215,14 +286,25 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="-"
|
||||
android:textSize="@dimen/default_list_text_size"
|
||||
android:textColor="?android:textColorPrimary"/>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:layout_column="1"
|
||||
android:layout_marginLeft="56dp"
|
||||
android:background="?attr/dashboard_divider"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
android:minHeight="60dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/numberOfRecipientsIcon"
|
||||
android:layout_width="56dp"
|
||||
|
@ -234,8 +316,7 @@
|
|||
android:id="@+id/numberOfRecipientsLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="fill_vertical"
|
||||
android:gravity="center"
|
||||
android:layout_marginRight="16dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
|
@ -251,10 +332,13 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="-"
|
||||
android:textSize="@dimen/default_list_text_size"
|
||||
android:textColor="?android:textColorPrimary"/>
|
||||
</LinearLayout>
|
||||
|
||||
</GridLayout>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<include layout="@layout/card_bottom_divider"/>
|
||||
|
||||
|
|
|
@ -30,12 +30,6 @@
|
|||
app:typeface="@string/font_roboto_regular"/>
|
||||
|
||||
</LinearLayout>
|
||||
<ProgressBar
|
||||
style="?android:attr/progressBarStyleHorizontal"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/progress"
|
||||
android:indeterminate="true"/>
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
|
@ -51,6 +45,13 @@
|
|||
|
||||
<include layout="@layout/card_bottom_divider"/>
|
||||
|
||||
<ProgressBar
|
||||
style="?android:attr/progressBarStyleHorizontal"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="9dp"
|
||||
android:id="@+id/progress"
|
||||
android:indeterminate="true"/>
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</LinearLayout>
|
|
@ -138,14 +138,14 @@
|
|||
<string name="local_indexes_cat_srtm">Ізалініі вышынь</string>
|
||||
<string name="local_indexes_cat_av">Аўдыё/відэа зьвесткі</string>
|
||||
<string name="stop_routing_confirm">Сапраўды спыніць навігацыю?</string>
|
||||
<string name="clear_dest_confirm">Сапраўды сьцерці месца прызначэньня (і правежкавыя пункты прызначэньня)?</string>
|
||||
<string name="clear_dest_confirm">Сапраўды сьцерці месца прызначэньня (і прамежкавыя пункты прызначэньня)?</string>
|
||||
<string name="precise_routing_mode_descr">Дазволіць дакладную навігацыю каб шукаць шлях без памылак. Усё яшчэ абмежавана адлегласцю і павольная.</string>
|
||||
<string name="precise_routing_mode">Дакладны маршрут (эксп.)</string>
|
||||
<string name="recording_context_menu_show">Паказаць</string>
|
||||
<string name="recording_photo_description">Фота %1$s %2$s</string>
|
||||
<string name="av_def_action_picture">Сфатаграфаваць</string>
|
||||
<string name="recording_context_menu_precord">Сфатаграфаваць</string>
|
||||
<string name="dropbox_plugin_description">Модуль Dropbox дазваляе сынхранізаваць трэкі і аўдыё/відэа натакi з вашым рахункам Dropbox.</string>
|
||||
<string name="dropbox_plugin_description">Модуль Dropbox дазваляе вам сынхранізаваць трэкі і аўдыё/відэа натакi з вашым рахункам Dropbox.</string>
|
||||
<string name="dropbox_plugin_name">Модуль Dropbox</string>
|
||||
|
||||
<string name="intermediate_points_change_order">Зьмяніць парадак</string>
|
||||
|
@ -214,7 +214,7 @@
|
|||
<string name="background_service_is_enabled_question">Фонавы рэжым OsmAnd па-ранейшаму працуе. Хочаце спыніць яго?</string>
|
||||
|
||||
<string name="close_changeset">Зачыніць мноства зьмен</string>
|
||||
<string name="zxing_barcode_scanner_not_found">Праграма ZXing Barcode Scanner не ўстаноўлена. Шукаць у Market?</string>
|
||||
<string name="zxing_barcode_scanner_not_found">Праграма ZXing Barcode Scanner не ўстаноўлена. Шукаць у Google Play?</string>
|
||||
<string name="rendering_attr_roadColors_description">Выберыце схему колераў дарог:</string>
|
||||
<string name="rendering_attr_roadColors_name">Схема колераў дарог</string>
|
||||
<string name="map_widget_show_destination_arrow">Паказваць напрамак да месца прызначэньня</string>
|
||||
|
@ -560,7 +560,7 @@
|
|||
|
||||
|
||||
<string name="download_files_not_enough_space">Няма вольнага месца каб сьцягнуць %1$s МБ (вольна: %2$s).</string>
|
||||
<string name="download_files_question_space">Вольнага месца зараз {2} МБ! Сьцягнуць {0} файл(аў) ({1} МБ)?</string>
|
||||
<string name="download_files_question_space">Сьцягнуць {0} файл(аў) (патрабуе {1} МБ)? Зараз ё {2} МБ вольнага месца.</string>
|
||||
|
||||
|
||||
|
||||
|
@ -1223,7 +1223,7 @@
|
|||
<string name="index_item_world_altitude_correction">Глябальная карэкцыя вышыні</string>
|
||||
<string name="index_item_world_seamarks">Навігацыйныя знакі ўсяго сьвету</string>
|
||||
<string name="index_item_world_bitcoin_payments">Bitcoin плацяжы ўсяго сьвету</string>
|
||||
<string name="keep_and_add_destination_point">Дадаць пунктам прызначэньня</string>
|
||||
<string name="keep_and_add_destination_point">Дадаць апошнім пунктам прызначэньня</string>
|
||||
<string name="route_descr_select_destination">Выбраць месца прызначэньня</string>
|
||||
<string name="route_preferences">Настройкі маршрута</string>
|
||||
<string name="calculate_osmand_route_gpx">Разьлічыць пазасеціўны маршрут OsmAnd</string>
|
||||
|
@ -1324,7 +1324,7 @@
|
|||
<string name="osmo_activity">Маніторынг OpenStreetMap</string>
|
||||
<string name="osmo_enable_tracker">Адсылаць маё месцазнаходжаньне</string>
|
||||
|
||||
<string name="import_file_favourites">Захаваць кропкі як GPX файл або імпартаваць у абранае?</string>
|
||||
<string name="import_file_favourites">Захаваць зьвесткі як GPX файл або імпартаваць кропкі ў абранае?</string>
|
||||
|
||||
<string name="osmo_track_interval">Інтэрвал адсылкі дадзеных</string>
|
||||
<string name="osmo_expire_group">Тэрмін дзеяньня скончыцца праз</string>
|
||||
|
@ -2120,7 +2120,37 @@
|
|||
<string name="item_removed">Элемэнт выдалены</string>
|
||||
<string name="n_items_removed">Элемэнты выдалены</string>
|
||||
<string name="reports_for">Паведаміць</string>
|
||||
<string name="osmand_plus_extended_description_4000_chars_v2">" Мапы й навігацыя OsmAnd - пракладайце маршруты і шукайце мясьціны на мапе без падлучэньня да Інтэрнэту. Сьцягвайце мапу краіны, перш чым адправіцца ў падарожжа, каб адшукаць мясьціны й маршруты ў незнаёмай мясцовасьці. Асноўныя магчымасьці: • Падрабязныя мапы 200 краін • Offline навігатар з галасавымі падказкамі • Адрасны пошук у аўтаномным рэжыме • Інфармацыя пра мясьціны на мапе: славутасьці, кафэ, аўтастаянкі, крамы • Даданьне мясьцін ў абранае • Аўта, роварная і пешаходная навігацыйныя • Дадатковыя опцыі: • Магчымасьць прагляду і запісу GPX сьлядоў • Апісаньне зь Вікіпедыі аб POI • Даданне фота, аўдыё і відэа нататак на мапу • Дзённы і начны рэжымы мапы для больш зручнага кіраваньня • Інфармацыя аб маршрутах грамадзкага транспарту і прыпынках • Роварныя і пешаходныя дарожкі • Пешаходныя маршруты для турызму па ўсім сьвеце • Інтэрнэт мапы са шматлікіх крыніц • Інфармацыя аб якасьці дарожнага пакрыцьця і асьвятленьні вуліц • Даданне, рэдагаванне і выдаленне POI (для карыстальнікаў OpenStreetMap.org) • OsMo - маніторынг у рэальным часе іншых прыстасаваньняў • Надзейны навігатар ў вашай краіне - няхай гэта будзе Францыя, Германія, Мэксіка, Вялікабрытанія, Гішпанія, Нідэрлянды, ЗША, РФ, Бразілія або любая іншая дзяржава. • Ізалініі вышынь і рэльеф мясцовасьці https://goo.gl/7mojP8 • Ізалініі вышынь і рэльеф мясцовасьці дадаецца да асноўнай мапы OsmAnd. • Лыжныя мапы https://goo.gl/pX6DxJ Інфармацыя аб гарналыжных трасах, трасах для бегавых лыж, фунікулёры і пад\'ёмнікі. • Марскія мапы https://goo.gl/0hEdxm Спецыяльны стыль мапы для прагляду марскіх навігацыйных знакаў для артэрыяльнай і прыбярэжнай марской навігацыі. • Месца паркоўкі https://goo.gl/6JxQXF Дапамагае адзначыць месцазнаходжаньне вашага аўтамабіля, прыпаркаванага і паглядзець, колькі часу засталося, калі паркоўка абмежаваная па часе. Сачыце за абнаўленнямі! Twitter: https://twitter.com/osmandapp Facebook: https://www.facebook.com/osmandapp Сайт: http://osmand.net Калі вам патрэбна дапамога з ужываннем OsmAnd, звярніцеся ў нашу службу падтрымкі: support@osmand.net. "</string>
|
||||
<string name="osmand_plus_extended_description_4000_chars_v2">" Мапы й навігацыя OsmAnd - шукайце мясьціны і пракладайце маршруты на мапе без падлучэньня да Інтэрнэту. Сьцягвайце мапу краіны, перш чым адправіцца ў падарожжа, каб адшукаць мясьціны й маршруты ў незнаёмай мясцовасьці. Асноўныя магчымасьці: • Падрабязныя мапы 200 краін • Offline навігатар з галасавымі падказкамі • Адрасны пошук у аўтаномным рэжыме • Інфармацыя пра мясьціны на мапе: славутасьці, кафэ, аўтастаянкі, крамы • Даданьне мясьцін ў абранае • Аўта, роварная і пешаходная навігацыйныя • Дадатковыя опцыі: • Магчымасьць прагляду і запісу GPX сьлядоў • Апісаньне зь Вікіпедыі аб POI • Даданне фота, аўдыё і відэа нататак на мапу • Дзённы і начны рэжымы мапы для больш зручнага кіраваньня • Інфармацыя аб маршрутах грамадзкага транспарту і прыпынках • Роварныя і пешаходныя дарожкі • Пешаходныя маршруты для турызму па ўсім сьвеце • Інтэрнэт мапы са шматлікіх крыніц • Інфармацыя аб якасьці дарожнага пакрыцьця і асьвятленьні вуліц • Даданне, рэдагаванне і выдаленне POI (для карыстальнікаў OpenStreetMap.org) • OsMo - маніторынг у рэальным часе іншых прыстасаваньняў • Надзейны навігатар ў вашай краіне - няхай гэта будзе Францыя, Германія, Мэксіка, Вялікабрытанія, Гішпанія, Нідэрлянды, ЗША, РФ, Бразілія або любая іншая дзяржава. • Ізалініі вышынь і рэльеф мясцовасьці https://goo.gl/7mojP8 • Ізалініі вышынь і рэльеф мясцовасьці дадаецца да асноўнай мапы OsmAnd. • Лыжныя мапы https://goo.gl/pX6DxJ Інфармацыя аб гарналыжных трасах, трасах для бегавых лыж, фунікулёры і пад\'ёмнікі. • Марскія мапы https://goo.gl/0hEdxm Спецыяльны стыль мапы для прагляду марскіх навігацыйных знакаў для артэрыяльнай і прыбярэжнай марской навігацыі. • Месца паркоўкі https://goo.gl/6JxQXF Дапамагае адзначыць месцазнаходжаньне вашага аўтамабіля, прыпаркаванага і паглядзець, колькі часу засталося, калі паркоўка абмежаваная па часе. Сачыце за абнаўленнямі! Twitter: https://twitter.com/osmandapp Facebook: https://www.facebook.com/osmandapp Сайт: http://osmand.net Калі вам патрэбна дапамога з ужываннем OsmAnd, звярніцеся ў нашу службу падтрымкі: support@osmand.net. "</string>
|
||||
<string name="rendering_attr_showMtbRoutes_name">Адлюстроўваць MTB маршруты</string>
|
||||
<string name="donations">Ахвяраваньні</string>
|
||||
<string name="storage_directory_shared">Сумесная памяць</string>
|
||||
<string name="recalculate_route">Пералічыць маршрут</string>
|
||||
<string name="number_of_recipients">Колькасьць атрымальнікаў</string>
|
||||
<string name="osm_live_subscribe_btn">Падпісацца</string>
|
||||
<string name="osm_live_hide_user_name">Не паказваць маё імя ў справаздачах</string>
|
||||
<string name="osm_live_month_cost">Кошт на месяц</string>
|
||||
<string name="osm_live_month_cost_desc">Штомесячны плацёж</string>
|
||||
<string name="osm_live_enter_email">Калі ласка, увядзіце сапраўдны адрас электроннай пошты</string>
|
||||
<string name="osm_live_subscription_settings">Парамэтры падпіскі</string>
|
||||
<string name="osm_live_ask_for_purchase">Калі ласка, спачатку набудзьце падпіску OSM Live</string>
|
||||
|
||||
<string name="osm_live_header">Гэтая падпіска дазваляе атрымліваць штогадзіннае абнаўленьне для ўсіх мапаў сьвету. Асноўная частка даходаў перадаецца ў OSM супольнасць і выплачваецца за кожны ўнёсак у OSM. У выпадку, калі вы любіце OsmAnd і OSM і хочаце падтрымаць яго, гэта ідэальны спосаб зрабіць гэта.</string>
|
||||
|
||||
<string name="select_map_marker">Выберыце маркер</string>
|
||||
<string name="map_markers_other">Іншыя маркеры</string>
|
||||
<string name="upload_anonymously">Адаслаць ананімна</string>
|
||||
<string name="download_files_error_not_enough_space">Недастаткова памяці! Гэта патрабуе {3} ГБ часовай і {1} МБ сталай памяці. На дадзены момант даступна толькі {2} МБ.</string>
|
||||
<string name="download_files_question_space_with_temp">Спампаваць {0} файл(аў)? Гэта патрабуе {3} МБ часовай і {1} МБ сталай памяці. Зараз свабодна толькі {2} МБ.</string>
|
||||
<string name="map_marker_1st">Першы маркер</string>
|
||||
<string name="map_marker_2nd">Другі маркер</string>
|
||||
<string name="shared_string_toolbar">Панэль інструмэнтаў</string>
|
||||
<string name="shared_string_widgets">Віджэты</string>
|
||||
<string name="shared_string_reverse_order">Зваротны парадак</string>
|
||||
<string name="clear_active_markers_q">Выдаліць усе актыўныя маркеры?</string>
|
||||
<string name="clear_markers_history_q">Ачысьціць гісторыю маркераў?</string>
|
||||
<string name="active_markers">Актыўныя маркеры</string>
|
||||
<string name="map_markers">Маркеры</string>
|
||||
<string name="map_marker">Маркер</string>
|
||||
<string name="consider_turning_polygons_off">Рэкамэндуецца адключыць паказ палігонаў.</string>
|
||||
<string name="osm_live_subscription">Падпіска OSM Live</string>
|
||||
</resources>
|
||||
|
|
|
@ -2714,4 +2714,5 @@
|
|||
<string name="poi_vacuum_cleaner_no">Støvsuger: nej</string>
|
||||
<string name="poi_amenity_vacuum_cleaner">Støvsuger</string>
|
||||
|
||||
<string name="poi_sport_free_flying">Fri flyvning (sport)</string>
|
||||
</resources>
|
||||
|
|
|
@ -2323,5 +2323,6 @@
|
|||
<string name="recalculate_route">Genberegn ruten</string>
|
||||
<string name="shared_string_topbar">Topbjælke</string>
|
||||
<string name="storage_directory_shared">Delt hukommelse</string>
|
||||
<string name="storage_directory_readonly_desc">Aktuelt valgte lagerpladsmappen til Data er skrivebeskyttet. Lagermappe blev midlertidigt skifte til Intern hukommelse. Vælg gyldigt en lagerpladsmappe.</string>
|
||||
<string name="storage_directory_readonly_desc">Den aktuelt valgte lagerpladsmappe til data er skrivebeskyttet. Lagermappe blev midlertidigt skifte til Intern hukommelse. Vælg en gyldig lagerpladsmappe.</string>
|
||||
<string name="avoid_road">Undgå vej</string>
|
||||
</resources>
|
||||
|
|
|
@ -171,7 +171,7 @@
|
|||
<string name="poi_vehicle_inspection">Inspección de vehículos</string>
|
||||
<string name="poi_car_wash">Lavadero de automóviles</string>
|
||||
<string name="poi_fuel">Estación de servicio</string>
|
||||
<string name="poi_fuel_diesel">Diésel</string>
|
||||
<string name="poi_fuel_diesel">EuroDiésel</string>
|
||||
<string name="poi_fuel_gtl_diesel">Diésel GTL</string>
|
||||
<string name="poi_fuel_hgv_diesel">Diésel de vehículos pesados</string>
|
||||
<string name="poi_fuel_biodiesel">Biodiésel</string>
|
||||
|
@ -2685,4 +2685,5 @@
|
|||
<string name="poi_vacuum_cleaner_no">Sin aspiradora</string>
|
||||
<string name="poi_amenity_vacuum_cleaner">Aspiradoras</string>
|
||||
|
||||
<string name="poi_sport_free_flying">Vuelo libre (deporte)</string>
|
||||
</resources>
|
||||
|
|
|
@ -2448,4 +2448,5 @@
|
|||
<string name="poi_vacuum_cleaner_no">Sin aspiradora</string>
|
||||
<string name="poi_amenity_vacuum_cleaner">Aspiradoras</string>
|
||||
|
||||
<string name="poi_sport_free_flying">Vuelo libre (deporte)</string>
|
||||
</resources>
|
||||
|
|
|
@ -138,7 +138,7 @@
|
|||
<string name="shared_string_others">Autres</string>
|
||||
<string name="shared_string_no_thanks">Pas nécessaire</string>
|
||||
<string name="basemap_missing">La carte mondiale de base est absente (couvrant le monde entier à faible zoom). Pensez à télécharger World_basemap_x.obf pour avoir un environnement complet.</string>
|
||||
<string name="vector_data_missing">Il n\'y a pas de cartes (\'hors-ligne\') sur la carte SD. Pensez à en télécharger pour utiliser OsmAnd hors-ligne.</string>
|
||||
<string name="vector_data_missing">Il n\'y a aucune carte hors-ligne sur la carte SD. Pensez à télécharger des cartes pour utiliser OsmAnd hors-ligne.</string>
|
||||
|
||||
|
||||
<string name="local_index_installed">Version locale</string>
|
||||
|
@ -682,7 +682,7 @@
|
|||
<string name="online_map_settings_descr">Configurer la source de la carte en ligne ou en cache</string>
|
||||
|
||||
|
||||
<string name="osmand_rastermaps_plugin_description">"Ce greffon permet d\'accéder à une grande gamme de cartes en ligne (aussi appelées tuiles ou cartes raster) qui vont de cartes OpenStreetMap (comme les tuiles Mapnik) jusqu\'aux images satellites en passant par des cartes spécialisées comme des cartes météo, des cartes de climat, des cartes géologiques, etc …\n\nChacune de ces cartes est utilisable soit comme carte principale soit comme sur ou sous couche d\'une autre carte. Afin de gérer au mieux la superposition des cartes, vous pouvez masquer certains éléments des cartes vectorielles hors ligne depuis le menu \"Configurer la carte\".\n\nCes cartes tuiles peuvent être obtenues directement en ligne et peuvent également être préparées grâce à des outils tiers puis copiées dans le dossier de données d\'OsmAnd sous forme de base de données sqlite. "</string>
|
||||
<string name="osmand_rastermaps_plugin_description">"Ce greffon permet d\'accéder à une grande gamme de cartes en ligne (aussi appelées tuiles ou cartes raster) qui vont de cartes OpenStreetMap (comme les tuiles Mapnik) jusqu\'aux images satellites en passant par des cartes spécialisées comme des cartes météo, des cartes de climat, des cartes géologiques, etc …\n\nChacune de ces cartes est utilisable soit comme carte principale soit comme sur ou sous couche d\'une autre carte. Afin de gérer au mieux la superposition des cartes, vous pouvez masquer certains éléments des cartes vectorielles hors ligne depuis le menu \"Configurer la carte\".\n\nCes cartes tuiles peuvent être obtenues directement en ligne et peuvent également être préparées grâce à des outils tiers puis copiées dans le dossier de données d\'OsmAnd sous forme de base de données SQLite. "</string>
|
||||
<string name="osmand_background_plugin_description">Affiche les préférences afin d\'activer le suivi et la navigation en tâche de fond (écran éteint) en réveillant périodiquement le GPS.</string>
|
||||
<string name="osmand_accessibility_description">Ce greffon donne accès directement dans OsmAnd aux options d\'accessibilité de votre appareil (réglage de la vitesse des voix TTS, utilisation du trackball pour zoomer ou annonce automatique de votre position).</string>
|
||||
|
||||
|
@ -945,7 +945,7 @@
|
|||
<string name="non_optimal_route_calculation">Calcule un itinéraire éventuellement non optimal pour les trajets longues distances</string>
|
||||
<string name="rendering_attr_roadColors_description">Sélectionnez un thème de couleurs pour les routes :</string>
|
||||
<string name="rendering_attr_roadColors_name">Thème de couleurs pour les routes</string>
|
||||
<string name="zxing_barcode_scanner_not_found">L’application ZXing Barcode Scanner n\'est pas installée. Souhaitez-vous l\'installer depuis la boutique ?</string>
|
||||
<string name="zxing_barcode_scanner_not_found">L’application ZXing Barcode Scanner n\'est pas installée. Souhaitez-vous l\'installer depuis Google Play ?</string>
|
||||
<string name="close_changeset">Clôturer les modifications</string>
|
||||
<string name="background_service_is_enabled_question">Le service OsmAnd s\'exécute toujours en tâche de fond. Voulez-vous également l\'arrêter ?</string>
|
||||
|
||||
|
@ -1024,7 +1024,7 @@
|
|||
|
||||
<string name="intermediate_points_change_order">Modifier l\'ordre</string>
|
||||
<string name="dropbox_plugin_name">Greffon Dropbox</string>
|
||||
<string name="dropbox_plugin_description">Le greffon Dropbox permet de synchroniser des pistes et des notes audio / vidéo avec votre compte Dropbox.</string>
|
||||
<string name="dropbox_plugin_description">Le greffon Dropbox permet de synchroniser des itinéraires et des notes audio / vidéo avec votre compte Dropbox.</string>
|
||||
<string name="recording_context_menu_show">Afficher</string>
|
||||
<string name="recording_photo_description">Photo %1$s %2$s</string>
|
||||
<string name="av_def_action_picture">Prendre une photo</string>
|
||||
|
@ -2157,4 +2157,11 @@
|
|||
<string name="osm_live_ask_for_purchase">Au préalable achetez un abonnement à OMS Live</string>
|
||||
|
||||
<string name="osm_live_region_desc">Vos dons seront distribués aux utilisateurs ayant soumis des mises à jour pour la carte de cette région</string>
|
||||
<string name="avoid_road">Éviter la route</string>
|
||||
<string name="osm_editors_ranking">Classement OSM</string>
|
||||
<string name="osm_live_email_desc">Ces informations sont requises pour afficher les contributions</string>
|
||||
<string name="osm_live_user_public_name">Nom affiché</string>
|
||||
<string name="osm_live_hide_user_name">Ne pas afficher mon nom dans les signalements</string>
|
||||
<string name="osm_live_support_region">Région supportée</string>
|
||||
<string name="osm_live_enter_user_name">Merci de saisir le nom sous lequel vous souhaitez apparaître</string>
|
||||
</resources>
|
||||
|
|
|
@ -2653,4 +2653,6 @@
|
|||
<string name="poi_vacuum_cleaner_no">Без пылесоса</string>
|
||||
<string name="poi_amenity_vacuum_cleaner">Пылесос</string>
|
||||
|
||||
<string name="poi_sport_free_flying">Свободный полёт (спорт)</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -2133,4 +2133,6 @@
|
|||
<string name="recalculate_route">Beräkna om rutten</string>
|
||||
<string name="shared_string_topbar">Toppfält</string>
|
||||
<string name="storage_directory_shared">Delat minne</string>
|
||||
<string name="avoid_road">Undvik väg</string>
|
||||
<string name="storage_directory_readonly_desc">Den för tillfället valda datalagringsmappen är skrivskyddad. Lagringsmappen har tillfälligt ändrats till internminnet. Välj en giltig datalagringsmapp.</string>
|
||||
</resources>
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
<string name="online_map_settings_descr">Налаштування онлайн або кешованих джерел (тайлів) мап</string>
|
||||
|
||||
|
||||
<string name="osmand_rastermaps_plugin_description">"Цей втулок надає можливість отримати доступ до багатьох типів онлайн (так званих растрових) мап, від попередньо створених квадратів Openstreetmap (на кшталт стилю Mapnik) до супутникових знімків та спеціальних шарів, таких як погодні, кліматичні та геологічні мапи, шари рельєфу й т.і.\n\nБудь яка з цих мап може використовуватись як основна мапа в OsmAnd, або як покриття чи підкладка до іншої основної мапи (наприклад стандартна оффлайнова мапа OsmAnd). Для того, щоб зробити більш помітною будь-яку мапу-підкладку, певні елементи векторної мапи OsmAnd можна легко сховати через меню \'Налаштування Мапи\'.\n\nКвадрати мап можна отримувати безпосередньо з онлайн-джерел або підготувати їх для оффлайнового використання (та вручну скопіювати в теку даних OsmAnd) у вигляді бази даних sqlite, яку можна створити за допомогою різноманітних сторонніх інструментів підготовки мап. "</string>
|
||||
<string name="osmand_rastermaps_plugin_description">"Цей втулок надає можливість отримати доступ до багатьох типів онлайн (так званих растрових) мап, від попередньо створених квадратів OpenStreetMap (на кшталт стилю Mapnik) до супутникових знімків та спеціальних шарів, таких як погодні, кліматичні та геологічні мапи, шари рельєфу й т.і.\n\nБудь яка з цих мап може використовуватись як основна мапа в OsmAnd, або як покриття чи підкладка до іншої основної мапи (наприклад стандартна оффлайнова мапа OsmAnd). Для того, щоб зробити більш помітною будь-яку мапу-підкладку, певні елементи векторної мапи OsmAnd можна легко сховати через меню \'Налаштування Мапи\'.\n\nКвадрати мап можна отримувати безпосередньо з онлайн-джерел або підготувати їх для оффлайнового використання (та вручну скопіювати в теку даних OsmAnd) у вигляді бази даних SQLite, яку можна створити за допомогою різноманітних сторонніх інструментів підготовки мап. "</string>
|
||||
<string name="osmand_background_plugin_description">Показує налаштування для активації навігації та запису маршрутів в фоновому режимі (екран вимкнено), періодично активуючи GPS.</string>
|
||||
<string name="osmand_accessibility_description">Втулок містить налаштування допоміжних можливостей. Він дозволяє налаштувати швидкість відтворення голосових підказок, налаштування спрямовування екрану під час навігації, використання трекболу для масштабування, або використання перетворення тексту в голос, скажімо, для сповіщення про ваше поточне місцезнаходження.</string>
|
||||
|
||||
|
@ -912,7 +912,7 @@
|
|||
<string name="recording_photo_description">Фото %1$s %2$s</string>
|
||||
<string name="av_def_action_picture">Сфотографувати</string>
|
||||
<string name="recording_context_menu_precord">Сфотографувати</string>
|
||||
<string name="dropbox_plugin_description">Втулок Dropbox дає можливість синхронізувати треки і відео/аудіо замітки з вашим обліковим записом dropbox.</string>
|
||||
<string name="dropbox_plugin_description">Втулок Dropbox дає Вам можливість синхронізувати треки і відео/аудіо замітки з вашим обліковим записом Dropbox.</string>
|
||||
<string name="dropbox_plugin_name">Втулок Dropbox</string>
|
||||
|
||||
<string name="intermediate_points_change_order">Змінити порядок</string>
|
||||
|
@ -994,7 +994,7 @@
|
|||
<string name="monitoring_control_start">старт</string>
|
||||
<string name="background_service_is_enabled_question">Фоновий режим запущений. Ви хочете зупинити його роботу також?</string>
|
||||
<string name="close_changeset">Закрити набір змін</string>
|
||||
<string name="zxing_barcode_scanner_not_found">Програму \'Сканер штрих-кодів\' не знайдено. Шукати в Market?</string>
|
||||
<string name="zxing_barcode_scanner_not_found">Програму \'Сканер штрих-кодів\' не знайдено. Шукати в Google Play?</string>
|
||||
<string name="rendering_attr_roadColors_description">Виберіть кольорову схему доріг:</string>
|
||||
<string name="rendering_attr_roadColors_name">Кольорова схема доріг</string>
|
||||
<string name="map_widget_show_destination_arrow">Відображати напрямок до пункту призначення</string>
|
||||
|
@ -1526,7 +1526,7 @@ OsmAnd має відкриті сирці і активно розвиваєть
|
|||
<string name="osmo_settings_debug">Інформація для відлагодження</string>
|
||||
<string name="osmo_settings_descr">Налаштування параметрів моніторингу та встановлення персонального каналу моніторингу</string>
|
||||
<string name="osmo_settings">OsMo</string>
|
||||
<string name="osmo_plugin_description">"Цей втулок надає можливість сучасного онлайн моніторингу OsMo, дивіться http://osmo.mobi.\n\nВи можете відстежувати пристрої учасників з вашох групи в поточному часі та підтримувати зв’язок друг з другом. Втулок має різноманітні налаштування сесій чи постійного відстеження.\n\nАнонімні групи можуть створюватись та існувати вказану кількість днів та мати зазначені функції, ними неможливо керувати віддалено та вони не мають адміністраторів. Групи з повним набором функцій можуть бути створені на веб-сайті і тільки зареєстровані користувачі матимуть до них доступ. "</string>
|
||||
<string name="osmo_plugin_description">"Цей втулок надає можливість сучасного онлайн моніторингу OsMo, дивіться http://osmo.mobi.\n\nВи можете відстежувати пристрої учасників з ваших групи в поточному часі та підтримувати зв’язок друг з другом. Втулок має різноманітні налаштування сесій чи постійного відстеження.\n\nАнонімні групи можуть створюватись та існувати вказану кількість днів та мати зазначені функції, ними неможливо керувати віддалено та вони не мають адміністраторів. Групи з повним набором функцій можуть бути створені на веб-сайті і тільки зареєстровані користувачі матимуть до них доступ. "</string>
|
||||
<string name="osmo_plugin_name">OsMo (OSM моніторинг)</string>
|
||||
<string name="always_center_position_on_map">Показувати положення завжди в центрі</string>
|
||||
<string name="voice_pref_title">Голос</string>
|
||||
|
@ -1593,7 +1593,7 @@ OsmAnd має відкриті сирці і активно розвиваєть
|
|||
<string name="calculate_osmand_route_without_internet">Розрахувати відрізок маршруту OsmAnd без Інтернету</string>
|
||||
<string name="gpx_option_calculate_first_last_segment">Розрахувати маршрут OsmAnd для першого і останнього відрізку маршруту</string>
|
||||
<string name="use_displayed_track_for_navigation">Бажаєте використовувати показаний трек для навігації?</string>
|
||||
<string name="keep_and_add_destination_point">Додати як пункт призначення</string>
|
||||
<string name="keep_and_add_destination_point">Додати як крайній пункт призначення</string>
|
||||
<string name="select_gpx">Обрати GPX…</string>
|
||||
<string name="route_descr_select_destination">Обрати місце призначення</string>
|
||||
<string name="shared_string_select_on_map">Вибрати на мапі</string>
|
||||
|
@ -2300,8 +2300,20 @@ OsmAnd має відкриті сирці і активно розвиваєть
|
|||
<string name="map_marker_2nd">Друга позначка мапи</string>
|
||||
<string name="shared_string_toolbar">Панель інструментів</string>
|
||||
<string name="shared_string_widgets">ВІджети</string>
|
||||
<string name="osmand_plus_extended_description_4000_chars_v2">" OsmAnd Мапи та навігація – виконує прокладання маршрутів та пошук не вимагачи наявності зʼєднання з Інтернтом. Завантажте мапу країни перед подорожжю для того, щоб виконувати пошук та прокладати маршрути в незнайомому місці. Основні можливості: • Докладні мапи 200 країн • Офлайн навігація з голосовим супроводженням • Пошук адрес в без інтерента • Інформація про обʼкти на мапі: ПОІ, кафе, стоянки, магазини • Додавання місць в закладки • Автомобільна, пішохідна та вело навігація Додаткові можливості: запис та перегляд треків GPX • Отримання опису ПОІ з Вікіпедії • Додавання фото, аудіо та відео нотаток до мапи • Денний та нічний режими для більш зручного використання за кермом • Інформація про маршрути та зупинки громадського транспорта • Велодоріжки та тротуари • Пішохідні туристичні маршрути по всьому світу • Онлайн мапи з різних джерел • Інформація про дорожне покриття та освітлення • Додавання, редагування та вилучення ПОІ (для учасників OpenStreetMap) • OsMo – онлайн стеження за іншими пристроями Отримайте надійну навігацію для вашої країни – Франції, Номеччини, Мексики, Великобританії, Іспанії, Нідерландів, США, Росії, Бразилії, України та інших країн. Втулки: • Ізолінії та рельєф https://goo.gl/7mojP8 Додає ізолінії та візуалізацію рельєфу до основної мапи OsmAnd. • Лижні мапи https://goo.gl/pX6DxJ Інформація про лижні траси, маршрути, підйомники. • Морські мапи https://goo.gl/0hEdxm Спеціальний стиль для перегляду навігаційний знаків для артеріальної і прибережної морської навігації. • Місце стоянки https://goo.gl/6JxQXF Допомагає вам позначти місце стоянки вашого автомобіля та стежити за часом, що залишився до кінця стоянки. Залишайтесь на зʼязку! Twitter: https://twitter.com/osmandapp Facebook: https://www.facebook.com/osmandapp Сайт: http://osmand.net Якщо у вас є питання, щодо використання OsmAnd, звертайтесь до нас: support@osmand.net. "</string>
|
||||
<string name="osmand_plus_extended_description_4000_chars_v2">" OsmAnd мапи та навігація – пошук місце розташування на мапі та прокладання маршрутів без потреби у доступі до Інтернету. Завантажте мапу країни перед подорожжю для того, щоб виконувати пошук та прокладати маршрути в незнайомому місці. Основні можливості: • Докладні мапи 200 країн • Оффлайн навігація з голосовим супроводженням • Пошук адрес без наявності інтернету • Інформація про об\'єкти на мапі: POI, кафе, стоянки, магазини • Додавання місць в закладки • Автомобільна, пішохідна та вело навігація Додаткові можливості: запис та перегляд треків GPX • Отримання опису POI з Вікіпедії • Додавання фото, аудіо та відео нотаток до мапи • Денний та нічний режими для більш зручного використання за кермом • Інформація про маршрути та зупинки громадського транспорту • Велодоріжки та тротуари • Пішохідні туристичні маршрути по всьому світу • Онлайн мапи з різних джерел • Інформація про дорожнє покриття та освітлення • Додавання, редагування та вилучення POI (для учасників OpenStreetMap) • OsMo – онлайн стеження за іншими пристроями Отримайте надійну навігацію для вашої країни – Франції, Німеччини, Мексики, Великобританії, Іспанії, Нідерландів, США, Росії, Бразилії, України та інших країн. Втулки: • Ізолінії та рельєф https://goo.gl/7mojP8 Додає ізолінії та візуалізацію рельєфу до основної мапи OsmAnd. • Лижні мапи https://goo.gl/pX6DxJ Інформація про лижні траси, маршрути, підйомники. • Морські мапи https://goo.gl/0hEdxm Спеціальний стиль для перегляду навігаційний знаків для артеріальної і прибережної морської навігації. • Місце стоянки https://goo.gl/6JxQXF Допомагає вам позначити місце стоянки вашого автомобіля та стежити за часом, що залишився до кінця стоянки. Залишайтесь на зв\'язку! Twitter: https://twitter.com/osmandapp Facebook: https://www.facebook.com/osmandapp Сайт: http://osmand.net Якщо у вас є питання, щодо використання OsmAnd, звертайтесь до нас: support@osmand.net. "</string>
|
||||
<string name="map_markers_other">Інші позначки</string>
|
||||
<string name="download_files_error_not_enough_space">Недостатньо пам\'яті! Це потребує {3} МБ тимчасової та {1} МБ постійної пам\'яті. На разі доступно лише {2} МБ.</string>
|
||||
<string name="download_files_question_space_with_temp">Завантажити {0} файл(їв)? Це потребує {3} МБ тимчасової та {1} МЮ постійної пам\'яті. Наразі вільно лише {2} МБ.</string>
|
||||
<string name="donations">Пожертвування</string>
|
||||
<string name="osm_live_subscribe_btn">Підписатися</string>
|
||||
<string name="osm_live_hide_user_name">Не показувати моє ім\'я у звітах</string>
|
||||
<string name="osm_live_month_cost">Щомісячна вартість</string>
|
||||
<string name="osm_live_month_cost_desc">Щомісячний платіж</string>
|
||||
<string name="osm_live_active">Активний</string>
|
||||
<string name="osm_live_not_active">Не активний</string>
|
||||
<string name="osm_live_enter_email">Будь ласка, введіть дійсну електронну адресу</string>
|
||||
<string name="osm_live_subscription_settings">Налаштування підписки</string>
|
||||
<string name="select_map_marker">Виберіть позначку</string>
|
||||
<string name="upload_anonymously">Вивантажено анонімно</string>
|
||||
<string name="show_transparency_seekbar">Показати прозору пошукову панель</string>
|
||||
</resources>
|
||||
|
|
|
@ -2144,4 +2144,5 @@
|
|||
<string name="shared_string_topbar">頂端列</string>
|
||||
<string name="storage_directory_readonly_desc">目前選取的資料存儲資料夾是唯讀的。存儲資料夾被暫時切換到內部記憶體。請選擇有效的儲存目錄。</string>
|
||||
<string name="storage_directory_shared">共用記憶體</string>
|
||||
<string name="avoid_road">避開道路</string>
|
||||
</resources>
|
||||
|
|
|
@ -2655,4 +2655,5 @@
|
|||
<string name="poi_vacuum_cleaner_no">Vacuum cleaner: no</string>
|
||||
<string name="poi_amenity_vacuum_cleaner">Vacuum cleaner</string>
|
||||
|
||||
<string name="poi_sport_free_flying">Free flying (sport)</string>
|
||||
</resources>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
3. All your modified/created strings are in the top of the file (to make easier find what\'s translated).
|
||||
PLEASE: Have a look at http://code.google.com/p/osmand/wiki/UIConsistency, it may really improve your and our work :-) Thx - Hardy
|
||||
-->
|
||||
<string name="avoid_road">Avoid road</string>
|
||||
<string name="storage_directory_readonly_desc">Currently selected Data storage folder is readonly. The storage folder was temporarily switched to Internal memory. Please choose valid storage directory.</string>
|
||||
<string name="storage_directory_shared">Shared memory</string>
|
||||
<string name="shared_string_topbar">Topbar</string>
|
||||
|
|
|
@ -635,8 +635,8 @@ public class DistanceCalculatorPlugin extends OsmandPlugin {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void populateObjectContextMenu(Object o, ContextMenuAdapter adapter) {
|
||||
if(o instanceof WptPt) {
|
||||
public void populateObjectContextMenu(LatLon latLon, Object o, ContextMenuAdapter adapter) {
|
||||
if (o != null && o instanceof WptPt) {
|
||||
final WptPt p = (WptPt) o;
|
||||
boolean containsPoint = false;
|
||||
for (int i = 0; i < measurementPoints.size(); i++) {
|
||||
|
|
|
@ -20,6 +20,7 @@ import net.osmand.plus.OsmAndFormatter;
|
|||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.activities.MapActivity;
|
||||
import net.osmand.plus.mapcontextmenu.MapContextMenu;
|
||||
import net.osmand.plus.routing.RoutingHelper;
|
||||
import net.osmand.plus.views.AnimateDraggingMapThread;
|
||||
import net.osmand.plus.views.ContextMenuLayer;
|
||||
|
@ -137,13 +138,14 @@ public class AvoidSpecificRoads {
|
|||
|
||||
@Override
|
||||
public boolean processResult(LatLon result) {
|
||||
findRoad(mapActivity, result);
|
||||
addImpassableRoad(mapActivity, result, true);
|
||||
return true;
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
private void findRoad(final MapActivity activity, final LatLon loc) {
|
||||
|
||||
public void addImpassableRoad(final MapActivity activity, final LatLon loc, final boolean showDialog) {
|
||||
final Location ll = new Location("");
|
||||
ll.setLatitude(loc.getLatitude());
|
||||
ll.setLongitude(loc.getLongitude());
|
||||
|
@ -159,8 +161,14 @@ public class AvoidSpecificRoads {
|
|||
if(rh.isRouteCalculated() || rh.isRouteBeingCalculated()) {
|
||||
rh.recalculateRouteDueToSettingsChange();
|
||||
}
|
||||
if (showDialog) {
|
||||
showDialog(activity);
|
||||
}
|
||||
MapContextMenu menu = activity.getContextMenu();
|
||||
if (menu.isActive() && menu.getLatLon().equals(loc)) {
|
||||
menu.close();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -22,7 +22,6 @@ import net.osmand.PlatformUtil;
|
|||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.OsmandSettings;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.activities.LocalIndexInfo;
|
||||
import net.osmand.plus.download.AbstractDownloadActivity;
|
||||
import net.osmand.plus.download.DownloadActivity;
|
||||
import net.osmand.plus.liveupdates.LiveUpdatesHelper.TimeOfDay;
|
||||
|
@ -41,6 +40,7 @@ import static net.osmand.plus.liveupdates.LiveUpdatesHelper.getPendingIntent;
|
|||
import static net.osmand.plus.liveupdates.LiveUpdatesHelper.preferenceDownloadViaWiFi;
|
||||
import static net.osmand.plus.liveupdates.LiveUpdatesHelper.preferenceForLocalIndex;
|
||||
import static net.osmand.plus.liveupdates.LiveUpdatesHelper.preferenceLastCheck;
|
||||
import static net.osmand.plus.liveupdates.LiveUpdatesHelper.preferenceLiveUpdatesOn;
|
||||
import static net.osmand.plus.liveupdates.LiveUpdatesHelper.preferenceTimeOfDayToUpdate;
|
||||
import static net.osmand.plus.liveupdates.LiveUpdatesHelper.preferenceUpdateFrequency;
|
||||
import static net.osmand.plus.liveupdates.LiveUpdatesHelper.runLiveUpdate;
|
||||
|
@ -78,7 +78,15 @@ public class LiveUpdatesSettingsDialogFragment extends DialogFragment {
|
|||
String lastCheckString = formatDateTime(getActivity(), lastCheck != DEFAULT_LAST_CHECK
|
||||
? lastCheck : timestamp);
|
||||
lastMapChangeTextView.setText(getString(R.string.last_map_change, lastUpdateDate));
|
||||
|
||||
|
||||
OsmandSettings.CommonPreference<Boolean> preference = preferenceLiveUpdatesOn(localIndexInfo,
|
||||
getSettings());
|
||||
if (preference.get()) {
|
||||
lastUpdateTextView.setText(getString(R.string.last_update, lastCheckString));
|
||||
} else {
|
||||
lastUpdateTextView.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
final OsmandSettings.CommonPreference<Boolean> liveUpdatePreference =
|
||||
preferenceForLocalIndex(localIndexInfo, getSettings());
|
||||
|
@ -98,7 +106,7 @@ public class LiveUpdatesSettingsDialogFragment extends DialogFragment {
|
|||
for (int i = 0; i < timeOfDays.length; i++) {
|
||||
timeOfDaysStrings[i] = getString(timeOfDays[i].getLocalizedId());
|
||||
}
|
||||
updateTimesOfDaySpinner.setAdapter(new ArrayAdapter<String>(getActivity(),
|
||||
updateTimesOfDaySpinner.setAdapter(new ArrayAdapter<>(getActivity(),
|
||||
R.layout.action_spinner_item, timeOfDaysStrings));
|
||||
updateTimesOfDaySpinner.setSelection(timeOfDayPreference.get());
|
||||
|
||||
|
@ -109,7 +117,7 @@ public class LiveUpdatesSettingsDialogFragment extends DialogFragment {
|
|||
}
|
||||
|
||||
refreshTimeOfDayLayout(UpdateFrequency.values()[updateFrequencyPreference.get()], updateTimesOfDayLayout);
|
||||
updateFrequencySpinner.setAdapter(new ArrayAdapter<String>(getActivity(),
|
||||
updateFrequencySpinner.setAdapter(new ArrayAdapter<>(getActivity(),
|
||||
R.layout.action_spinner_item, updateFrequenciesStrings));
|
||||
updateFrequencySpinner.setSelection(updateFrequencyPreference.get());
|
||||
updateFrequencySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||
|
|
|
@ -11,6 +11,7 @@ import android.support.annotation.AttrRes;
|
|||
import android.support.annotation.ColorInt;
|
||||
import android.util.TypedValue;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.ViewGroup;
|
||||
|
@ -24,6 +25,7 @@ import android.widget.TextView;
|
|||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonSyntaxException;
|
||||
|
||||
import net.osmand.AndroidUtils;
|
||||
import net.osmand.PlatformUtil;
|
||||
import net.osmand.osm.io.NetworkUtils;
|
||||
import net.osmand.plus.R;
|
||||
|
@ -55,7 +57,7 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect
|
|||
private TextView donationsTextView;
|
||||
private TextView recipientsTextView;
|
||||
|
||||
private Spinner montReportsSpinner;
|
||||
private Spinner monthReportsSpinner;
|
||||
private MonthsForReportsAdapter monthsForReportsAdapter;
|
||||
|
||||
private CountrySelectionFragment countrySelectionFragment = new CountrySelectionFragment();
|
||||
|
@ -82,9 +84,25 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect
|
|||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
View view = inflater.inflate(R.layout.fragment_reports, container, false);
|
||||
montReportsSpinner = (Spinner) view.findViewById(R.id.montReportsSpinner);
|
||||
monthReportsSpinner = (Spinner) view.findViewById(R.id.monthReportsSpinner);
|
||||
final View monthButton = view.findViewById(R.id.monthButton);
|
||||
monthReportsSpinner.setOnTouchListener(new View.OnTouchListener() {
|
||||
@Override
|
||||
public boolean onTouch(View v, MotionEvent event) {
|
||||
event.offsetLocation(AndroidUtils.dpToPx(getActivity(), 48f), 0);
|
||||
monthButton.onTouchEvent(event);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
monthsForReportsAdapter = new MonthsForReportsAdapter(getActivity());
|
||||
montReportsSpinner.setAdapter(monthsForReportsAdapter);
|
||||
monthReportsSpinner.setAdapter(monthsForReportsAdapter);
|
||||
|
||||
monthButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
monthReportsSpinner.performClick();
|
||||
}
|
||||
});
|
||||
|
||||
view.findViewById(R.id.show_all).setOnClickListener(new OnClickListener() {
|
||||
|
||||
|
@ -105,7 +123,7 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect
|
|||
OnClickListener listener = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int monthItemPosition = montReportsSpinner.getSelectedItemPosition();
|
||||
int monthItemPosition = monthReportsSpinner.getSelectedItemPosition();
|
||||
String monthUrlString = monthsForReportsAdapter.getQueryString(monthItemPosition);
|
||||
String countryUrlString = selectedCountryItem.getDownloadName();
|
||||
if (countryUrlString.length() > 0) {
|
||||
|
@ -128,7 +146,9 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect
|
|||
countryNameTextView.setText(selectedCountryItem.getLocalName());
|
||||
|
||||
setThemedDrawable(view, R.id.calendarImageView, R.drawable.ic_action_data);
|
||||
setThemedDrawable(view, R.id.monthDropDownIcon, R.drawable.ic_action_arrow_drop_down);
|
||||
setThemedDrawable(view, R.id.regionIconImageView, R.drawable.ic_world_globe_dark);
|
||||
setThemedDrawable(view, R.id.countryDropDownIcon, R.drawable.ic_action_arrow_drop_down);
|
||||
|
||||
numberOfContributorsIcon = (ImageView) view.findViewById(R.id.numberOfContributorsIcon);
|
||||
numberOfEditsIcon = (ImageView) view.findViewById(R.id.numberOfEditsIcon);
|
||||
|
@ -136,7 +156,7 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect
|
|||
donationsIcon = (ImageView) view.findViewById(R.id.donationsIcon);
|
||||
setThemedDrawable(numberOfContributorsIcon, R.drawable.ic_group);
|
||||
setThemedDrawable(numberOfRecipientsIcon, R.drawable.ic_group);
|
||||
setThemedDrawable(donationsIcon, R.drawable.ic_action_message);
|
||||
setThemedDrawable(donationsIcon, R.drawable.ic_action_bitcoin);
|
||||
setThemedDrawable(numberOfEditsIcon, R.drawable.ic_map);
|
||||
|
||||
|
||||
|
@ -167,7 +187,7 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect
|
|||
|
||||
}
|
||||
};
|
||||
montReportsSpinner.setOnItemSelectedListener(onItemSelectedListener);
|
||||
monthReportsSpinner.setOnItemSelectedListener(onItemSelectedListener);
|
||||
|
||||
inactiveColor = getColorFromAttr(R.attr.plugin_details_install_header_bg);
|
||||
textColorPrimary = getColorFromAttr(android.R.attr.textColorPrimary);
|
||||
|
@ -177,7 +197,7 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect
|
|||
}
|
||||
|
||||
public void requestAndUpdateUi() {
|
||||
int monthItemPosition = montReportsSpinner.getSelectedItemPosition();
|
||||
int monthItemPosition = monthReportsSpinner.getSelectedItemPosition();
|
||||
String monthUrlString = monthsForReportsAdapter.getQueryString(monthItemPosition);
|
||||
String countryUrlString = selectedCountryItem.getDownloadName();
|
||||
|
||||
|
@ -260,7 +280,7 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect
|
|||
private static class MonthsForReportsAdapter extends ArrayAdapter<String> {
|
||||
private static final SimpleDateFormat queryFormat = new SimpleDateFormat("yyyy-MM", Locale.US);
|
||||
@SuppressLint("SimpleDateFormat")
|
||||
private static final SimpleDateFormat humanFormat = new SimpleDateFormat("MMMM yyyy");
|
||||
private static final SimpleDateFormat humanFormat = new SimpleDateFormat("LLLL yyyy");
|
||||
|
||||
ArrayList<String> queryString = new ArrayList<>();
|
||||
|
||||
|
@ -344,7 +364,7 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect
|
|||
numberOfContributorsIcon.setImageDrawable(getPaintedContentIcon(R.drawable.ic_group, inactiveColor));
|
||||
numberOfEditsIcon.setImageDrawable(getPaintedContentIcon(R.drawable.ic_map, inactiveColor));
|
||||
numberOfRecipientsIcon.setImageDrawable(getPaintedContentIcon(R.drawable.ic_group, inactiveColor));
|
||||
donationsIcon.setImageDrawable(getPaintedContentIcon(R.drawable.ic_action_message, inactiveColor));
|
||||
donationsIcon.setImageDrawable(getPaintedContentIcon(R.drawable.ic_action_bitcoin, inactiveColor));
|
||||
|
||||
numberOfContributorsTitle.setTextColor(inactiveColor);
|
||||
numberOfEditsTitle.setTextColor(inactiveColor);
|
||||
|
@ -364,7 +384,7 @@ public class ReportsFragment extends BaseOsmAndFragment implements CountrySelect
|
|||
numberOfContributorsIcon.setImageDrawable(getContentIcon(R.drawable.ic_group));
|
||||
numberOfEditsIcon.setImageDrawable(getContentIcon(R.drawable.ic_map));
|
||||
numberOfRecipientsIcon.setImageDrawable(getContentIcon(R.drawable.ic_group));
|
||||
donationsIcon.setImageDrawable(getContentIcon(R.drawable.ic_action_message));
|
||||
donationsIcon.setImageDrawable(getContentIcon(R.drawable.ic_action_bitcoin));
|
||||
|
||||
numberOfContributorsTitle.setTextColor(textColorSecondary);
|
||||
numberOfEditsTitle.setTextColor(textColorSecondary);
|
||||
|
|
|
@ -554,10 +554,8 @@ public class MapContextMenu extends MenuTitleController implements StateChangedL
|
|||
|
||||
public void buttonMorePressed() {
|
||||
final ContextMenuAdapter menuAdapter = new ContextMenuAdapter(mapActivity);
|
||||
if (object != null) {
|
||||
for (OsmandMapLayer layer : mapActivity.getMapView().getLayers()) {
|
||||
layer.populateObjectContextMenu(object, menuAdapter);
|
||||
}
|
||||
layer.populateObjectContextMenu(latLon, object, menuAdapter);
|
||||
}
|
||||
|
||||
mapActivity.getMapActions().contextMenuPoint(latLon.getLatitude(), latLon.getLongitude(), menuAdapter, object);
|
||||
|
|
|
@ -32,6 +32,7 @@ import android.view.LayoutInflater;
|
|||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.ViewTreeObserver;
|
||||
import android.view.WindowManager;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import android.widget.AdapterView;
|
||||
|
@ -165,9 +166,11 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
|
|||
final TabLayout tabLayout = (TabLayout) view.findViewById(R.id.tab_layout);
|
||||
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
|
||||
|
||||
// tabLayout.setupWithViewPager(viewPager);
|
||||
// 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 (Build.VERSION.SDK_INT >= 11) {
|
||||
if (ViewCompat.isLaidOut(tabLayout)) {
|
||||
tabLayout.setupWithViewPager(viewPager);
|
||||
} else {
|
||||
|
@ -180,6 +183,26 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
|
|||
}
|
||||
});
|
||||
}
|
||||
} else {
|
||||
ViewTreeObserver vto = view.getViewTreeObserver();
|
||||
vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
|
||||
|
||||
@Override
|
||||
public void onGlobalLayout() {
|
||||
|
||||
ViewTreeObserver obs = view.getViewTreeObserver();
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
|
||||
obs.removeOnGlobalLayoutListener(this);
|
||||
} else {
|
||||
obs.removeGlobalOnLayoutListener(this);
|
||||
}
|
||||
|
||||
if (getActivity() != null) {
|
||||
tabLayout.setupWithViewPager(viewPager);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
ImageButton onlineDocumentationButton =
|
||||
(ImageButton) view.findViewById(R.id.onlineDocumentationButton);
|
||||
|
@ -346,9 +369,9 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
|
|||
} else {
|
||||
new SaveWithAdvancedTagsDialogFragment().show(getChildFragmentManager(), "dialog");
|
||||
}
|
||||
} else if(editPoiData.getPoiCategory() == getMyApplication().getPoiTypes().getOtherPoiCategory()) {
|
||||
} else if (editPoiData.getPoiCategory() == getMyApplication().getPoiTypes().getOtherPoiCategory()) {
|
||||
poiTypeEditText.setError(getResources().getString(R.string.please_specify_poi_type));
|
||||
} else if(editPoiData.getPoiTypeDefined() == null) {
|
||||
} else if (editPoiData.getPoiTypeDefined() == null) {
|
||||
poiTypeEditText.setError(getResources().getString(R.string.please_specify_poi_type_only_from_list));
|
||||
} else {
|
||||
save();
|
||||
|
@ -372,7 +395,7 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
|
|||
node.putTag(editPoiData.getPoiCategory().getDefaultTag(), tag.getValue());
|
||||
|
||||
}
|
||||
if(offlineEdit && !Algorithms.isEmpty(tag.getValue())) {
|
||||
if (offlineEdit && !Algorithms.isEmpty(tag.getValue())) {
|
||||
node.putTag(tag.getKey(), tag.getValue());
|
||||
}
|
||||
} else if (!Algorithms.isEmpty(tag.getKey()) && !Algorithms.isEmpty(tag.getValue())) {
|
||||
|
@ -460,7 +483,7 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
|
|||
@Override
|
||||
protected void onPostExecute(Node result) {
|
||||
progress.dismiss();
|
||||
if(postExecute != null) {
|
||||
if (postExecute != null) {
|
||||
postExecute.processResult(result);
|
||||
}
|
||||
}
|
||||
|
@ -476,9 +499,9 @@ public class EditPoiDialogFragment extends BaseOsmAndDialogFragment {
|
|||
private void setAdapterForPoiTypeEditText() {
|
||||
final Map<String, PoiType> subCategories = new LinkedHashMap<>();
|
||||
PoiCategory ct = editPoiData.getPoiCategory();
|
||||
if(ct != null) {
|
||||
if (ct != null) {
|
||||
for (PoiType s : ct.getPoiTypes()) {
|
||||
if(!s.isReference() && !s.isNotEditableOsm() && s.getBaseLangType() == null) {
|
||||
if (!s.isReference() && !s.isNotEditableOsm() && s.getBaseLangType() == null) {
|
||||
addMapEntryAdapter(subCategories, s.getTranslation(), s);
|
||||
addMapEntryAdapter(subCategories, s.getKeyName().replace('_', ' '), s);
|
||||
}
|
||||
|
|
|
@ -81,8 +81,8 @@ public class RoutePointsLayer extends OsmandMapLayer implements ContextMenuLaye
|
|||
}
|
||||
|
||||
@Override
|
||||
public void populateObjectContextMenu(Object o, ContextMenuAdapter adapter) {
|
||||
if (o instanceof GPXUtilities.WptPt && plugin.getCurrentRoute() != null){
|
||||
public void populateObjectContextMenu(LatLon latLon, Object o, ContextMenuAdapter adapter) {
|
||||
if (o != null && o instanceof GPXUtilities.WptPt && plugin.getCurrentRoute() != null){
|
||||
final GPXUtilities.WptPt point = (GPXUtilities.WptPt) o;
|
||||
ContextMenuAdapter.OnContextMenuClick listener = new ContextMenuAdapter.OnContextMenuClick() {
|
||||
@Override
|
||||
|
|
|
@ -102,7 +102,7 @@ public class ContextMenuLayer extends OsmandMapLayer {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void populateObjectContextMenu(Object o, ContextMenuAdapter adapter) {
|
||||
public void populateObjectContextMenu(LatLon latLon, Object o, ContextMenuAdapter adapter) {
|
||||
if (menu.hasHiddenBottomInfo()) {
|
||||
ContextMenuAdapter.OnContextMenuClick listener = new ContextMenuAdapter.OnContextMenuClick() {
|
||||
@Override
|
||||
|
|
|
@ -5,14 +5,18 @@ import android.graphics.BitmapFactory;
|
|||
import android.graphics.Canvas;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.PointF;
|
||||
import android.widget.ArrayAdapter;
|
||||
|
||||
import net.osmand.Location;
|
||||
import net.osmand.binary.RouteDataObject;
|
||||
import net.osmand.data.LatLon;
|
||||
import net.osmand.data.LocationPoint;
|
||||
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.routing.RoutingHelper;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -26,6 +30,7 @@ public class ImpassableRoadsLayer extends OsmandMapLayer implements ContextMenuL
|
|||
private Paint paint;
|
||||
private Map<Long, Location> missingRoadLocations;
|
||||
private List<RouteDataObject> missingRoads;
|
||||
private RoutingHelper routingHelper;
|
||||
|
||||
public ImpassableRoadsLayer(MapActivity activity) {
|
||||
this.activity = activity;
|
||||
|
@ -36,6 +41,7 @@ public class ImpassableRoadsLayer extends OsmandMapLayer implements ContextMenuL
|
|||
this.view = view;
|
||||
roadWorkIcon = BitmapFactory.decodeResource(view.getResources(), R.drawable.map_pin_avoid_road);
|
||||
paint = new Paint();
|
||||
routingHelper = activity.getRoutingHelper();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -58,14 +64,14 @@ public class ImpassableRoadsLayer extends OsmandMapLayer implements ContextMenuL
|
|||
}
|
||||
|
||||
public Map<Long, Location> getMissingRoadLocations() {
|
||||
if(missingRoadLocations == null) {
|
||||
if (missingRoadLocations == null) {
|
||||
missingRoadLocations = activity.getMyApplication().getDefaultRoutingConfig().getImpassableRoadLocations();
|
||||
}
|
||||
return missingRoadLocations;
|
||||
}
|
||||
|
||||
public List<RouteDataObject> getMissingRoads() {
|
||||
if(missingRoads == null) {
|
||||
if (missingRoads == null) {
|
||||
missingRoads = activity.getMyApplication().getDefaultRoutingConfig().getImpassableRoads();
|
||||
}
|
||||
return missingRoads;
|
||||
|
@ -81,9 +87,9 @@ public class ImpassableRoadsLayer extends OsmandMapLayer implements ContextMenuL
|
|||
return true;
|
||||
}
|
||||
|
||||
public int getRadiusPoi(RotatedTileBox tb){
|
||||
public int getRadiusPoi(RotatedTileBox tb) {
|
||||
int r = 0;
|
||||
if(tb.getZoom() < startZoom){
|
||||
if (tb.getZoom() < startZoom) {
|
||||
r = 0;
|
||||
} else {
|
||||
r = 15;
|
||||
|
@ -92,7 +98,7 @@ public class ImpassableRoadsLayer extends OsmandMapLayer implements ContextMenuL
|
|||
}
|
||||
|
||||
private boolean calculateBelongs(int ex, int ey, int objx, int objy, int radius) {
|
||||
return Math.abs(objx - ex) <= radius && (ey - objy) <= radius / 2 && (objy - ey) <= 3 * radius ;
|
||||
return Math.abs(objx - ex) <= radius && (ey - objy) <= radius / 2 && (objy - ey) <= 3 * radius;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -125,7 +131,7 @@ public class ImpassableRoadsLayer extends OsmandMapLayer implements ContextMenuL
|
|||
|
||||
@Override
|
||||
public LatLon getObjectLocation(Object o) {
|
||||
if(o instanceof RouteDataObject) {
|
||||
if (o instanceof RouteDataObject) {
|
||||
RouteDataObject route = (RouteDataObject) o;
|
||||
Location location = missingRoadLocations.get(route.getId());
|
||||
return new LatLon(location.getLatitude(), location.getLongitude());
|
||||
|
@ -140,11 +146,32 @@ public class ImpassableRoadsLayer extends OsmandMapLayer implements ContextMenuL
|
|||
|
||||
@Override
|
||||
public PointDescription getObjectName(Object o) {
|
||||
if(o instanceof RouteDataObject) {
|
||||
if (o instanceof RouteDataObject) {
|
||||
RouteDataObject route = (RouteDataObject) o;
|
||||
return new PointDescription(PointDescription.POINT_TYPE_BLOCKED_ROAD, route.getName());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void populateObjectContextMenu(final LatLon latLon, final Object o, ContextMenuAdapter adapter) {
|
||||
if (latLon != null && o == null
|
||||
&& (routingHelper.isRoutePlanningMode() || routingHelper.isFollowingMode())) {
|
||||
|
||||
ContextMenuAdapter.OnContextMenuClick listener = new ContextMenuAdapter.OnContextMenuClick() {
|
||||
@Override
|
||||
public boolean onContextMenuClick(ArrayAdapter<?> adapter, int itemId, int pos, boolean isChecked) {
|
||||
if (itemId == R.string.avoid_road) {
|
||||
activity.getMyApplication().getAvoidSpecificRoads().addImpassableRoad(
|
||||
activity, latLon, false);
|
||||
}
|
||||
activity.refreshMap();
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
adapter.item(R.string.avoid_road).iconColor(
|
||||
R.drawable.ic_action_road_works_dark).listen(listener).reg();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import net.osmand.data.LatLon;
|
||||
import net.osmand.data.QuadRect;
|
||||
import net.osmand.data.QuadTree;
|
||||
import net.osmand.data.RotatedTileBox;
|
||||
|
@ -16,6 +17,7 @@ import android.graphics.Path;
|
|||
import android.graphics.PointF;
|
||||
import android.os.AsyncTask;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.view.MotionEvent;
|
||||
|
||||
public abstract class OsmandMapLayer {
|
||||
|
@ -32,7 +34,7 @@ public abstract class OsmandMapLayer {
|
|||
|
||||
public void onRetainNonConfigurationInstance(Map<String, Object> map) {}
|
||||
|
||||
public void populateObjectContextMenu(Object o, ContextMenuAdapter adapter) {}
|
||||
public void populateObjectContextMenu(LatLon latLon, Object o, ContextMenuAdapter adapter) {}
|
||||
|
||||
public boolean onSingleTap(PointF point, RotatedTileBox tileBox) {
|
||||
return false;
|
||||
|
|
8
eclipse-compile/gridlayout/.classpath
Normal file
8
eclipse-compile/gridlayout/.classpath
Normal file
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="src" path="gen"/>
|
||||
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
|
||||
<classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
|
||||
<classpathentry kind="output" path="bin/classes"/>
|
||||
</classpath>
|
33
eclipse-compile/gridlayout/.project
Normal file
33
eclipse-compile/gridlayout/.project
Normal file
|
@ -0,0 +1,33 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>android-support-v7-gridlayout</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>com.android.ide.eclipse.adt.ApkBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
20
eclipse-compile/gridlayout/AndroidManifest.xml
Normal file
20
eclipse-compile/gridlayout/AndroidManifest.xml
Normal file
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2013 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="android.support.v7.gridlayout">
|
||||
<uses-sdk android:minSdkVersion="7"/>
|
||||
<application />
|
||||
</manifest>
|
66
eclipse-compile/gridlayout/README.txt
Normal file
66
eclipse-compile/gridlayout/README.txt
Normal file
|
@ -0,0 +1,66 @@
|
|||
Library Project including compatibility GridLayout.
|
||||
|
||||
This can be used by an Android project to provide
|
||||
access to GridLayout on applications running on API 7+.
|
||||
|
||||
There is technically no source, but the src folder is necessary
|
||||
to ensure that the build system works. The content is actually
|
||||
located in libs/android-support-v7-gridlayout.jar.
|
||||
The accompanying resources must also be included in the application.
|
||||
|
||||
|
||||
USAGE:
|
||||
|
||||
Make sure you use <android.support.v7.widget.GridLayout> in your
|
||||
layouts instead of <GridLayout>.
|
||||
Same for <android.support.v7.widget.Space> instead of <Space>.
|
||||
|
||||
Additionally, all of GridLayout's attributes should be put in the
|
||||
namespace of the app, as those attributes have been redefined in
|
||||
the library so that it can run on older platforms that don't offer
|
||||
those attributes in their namespace.
|
||||
|
||||
To know which attributes need the application namespace, look at
|
||||
the two declare-styleable declared in res/values/attrs.xml
|
||||
|
||||
|
||||
|
||||
For instance:
|
||||
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.v7.widget.GridLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto" <==== the namespace used for the library project
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:columnCount="6" > <===== notice how we're using app:columnCount here, not android:columnCount!
|
||||
|
||||
<Button
|
||||
android:id="@+id/button1"
|
||||
app:layout_column="1" <=== again, note the app: namespace
|
||||
app:layout_columnSpan="2"
|
||||
app:layout_gravity="left"
|
||||
app:layout_row="1"
|
||||
android:text="Button" />
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/checkBox1"
|
||||
app:layout_column="4"
|
||||
app:layout_gravity="left"
|
||||
app:layout_row="2"
|
||||
android:text="CheckBox" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/button2"
|
||||
app:layout_column="5"
|
||||
app:layout_gravity="left"
|
||||
app:layout_row="3"
|
||||
android:text="Button" />
|
||||
|
||||
<android.support.v7.widget.Space <=== space widgets also need the full support package path
|
||||
android:layout_width="21dp" <=== use the android namespace for width, height etc -- only use app: for the grid layout library's new resources
|
||||
android:layout_height="1dp"
|
||||
app:layout_column="0"
|
||||
app:layout_gravity="fill_horizontal"
|
||||
app:layout_row="0" />
|
||||
|
26
eclipse-compile/gridlayout/build.gradle
Normal file
26
eclipse-compile/gridlayout/build.gradle
Normal file
|
@ -0,0 +1,26 @@
|
|||
apply plugin: 'com.android.library'
|
||||
dependencies {
|
||||
compile files('libs/android-support-v7-gridlayout.jar')
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion 23
|
||||
buildToolsVersion "23.0.1"
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion 9
|
||||
targetSdkVersion 23
|
||||
}
|
||||
sourceSets {
|
||||
main {
|
||||
manifest.srcFile "AndroidManifest.xml"
|
||||
aidl.srcDirs = ["src"]
|
||||
java.srcDirs = ["src"]
|
||||
resources.srcDirs = ["src"]
|
||||
renderscript.srcDirs = ["src"]
|
||||
res.srcDirs = ["res"]
|
||||
assets.srcDirs = ["assets"]
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Binary file not shown.
15
eclipse-compile/gridlayout/project.properties
Normal file
15
eclipse-compile/gridlayout/project.properties
Normal file
|
@ -0,0 +1,15 @@
|
|||
# This file is automatically generated by Android Tools.
|
||||
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
|
||||
#
|
||||
# This file must be checked in Version Control Systems.
|
||||
#
|
||||
# To customize properties used by the Ant build system edit
|
||||
# "ant.properties", and override values to adapt the script to your
|
||||
# project structure.
|
||||
#
|
||||
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
|
||||
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
|
||||
|
||||
# Project target.
|
||||
target=android-23
|
||||
android.library=true
|
193
eclipse-compile/gridlayout/res/values/attrs.xml
Normal file
193
eclipse-compile/gridlayout/res/values/attrs.xml
Normal file
|
@ -0,0 +1,193 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<declare-styleable name="GridLayout">
|
||||
|
||||
<!--
|
||||
support versions. All attributes not present in ViewGroup/View are
|
||||
redefined in the support library namespace.
|
||||
-->
|
||||
|
||||
|
||||
<!--
|
||||
The orientation property is not used during layout. It is only used to
|
||||
allocate row and column parameters when they are not specified by its children's
|
||||
layout parameters. GridLayout works like LinearLayout in this case;
|
||||
putting all the components either in a single row or in a single column -
|
||||
depending on the value of this flag. In the horizontal case, a columnCount
|
||||
property may be additionally supplied to force new rows to be created when a
|
||||
row is full. The rowCount attribute may be used similarly in the vertical case.
|
||||
The default is horizontal.
|
||||
-->
|
||||
<attr name="orientation">
|
||||
|
||||
<!-- Defines an horizontal widget. -->
|
||||
<enum name="horizontal" value="0" />
|
||||
<!-- Defines a vertical widget. -->
|
||||
<enum name="vertical" value="1" />
|
||||
</attr>
|
||||
<!-- The maximum number of rows to create when automatically positioning children. -->
|
||||
<attr name="rowCount" format="integer" />
|
||||
<!-- The maximum number of columns to create when automatically positioning children. -->
|
||||
<attr name="columnCount" format="integer" />
|
||||
<!--
|
||||
When set to true, tells GridLayout to use default margins when none are specified
|
||||
in a view's layout parameters.
|
||||
The default value is false.
|
||||
See {@link android.widget.GridLayout#setUseDefaultMargins(boolean)}.
|
||||
-->
|
||||
<attr name="useDefaultMargins" format="boolean" />
|
||||
<!--
|
||||
When set to alignMargins, causes alignment to take place between the outer
|
||||
boundary of a view, as defined by its margins. When set to alignBounds,
|
||||
causes alignment to take place between the edges of the view.
|
||||
The default is alignMargins.
|
||||
See {@link android.widget.GridLayout#setAlignmentMode(int)}.
|
||||
-->
|
||||
<attr name="alignmentMode">
|
||||
|
||||
<!--
|
||||
Align the bounds of the children.
|
||||
See {@link android.widget.GridLayout#ALIGN_BOUNDS}.
|
||||
-->
|
||||
<enum name="alignBounds" value="0" />
|
||||
<!--
|
||||
Align the margins of the children.
|
||||
See {@link android.widget.GridLayout#ALIGN_MARGINS}.
|
||||
-->
|
||||
<enum name="alignMargins" value="1" />
|
||||
</attr>
|
||||
<!--
|
||||
When set to true, forces row boundaries to appear in the same order
|
||||
as row indices.
|
||||
The default is true.
|
||||
See {@link android.widget.GridLayout#setRowOrderPreserved(boolean)}.
|
||||
-->
|
||||
<attr name="rowOrderPreserved" format="boolean" />
|
||||
<!--
|
||||
When set to true, forces column boundaries to appear in the same order
|
||||
as column indices.
|
||||
The default is true.
|
||||
See {@link android.widget.GridLayout#setColumnOrderPreserved(boolean)}.
|
||||
-->
|
||||
<attr name="columnOrderPreserved" format="boolean" />
|
||||
</declare-styleable>
|
||||
<declare-styleable name="GridLayout_Layout">
|
||||
|
||||
<!--
|
||||
support versions. All attributes not present in MarginLayout are
|
||||
redefined in the support library name space.
|
||||
-->
|
||||
|
||||
|
||||
<!-- START MarginLayout layoutparams -->
|
||||
|
||||
<attr name="android:layout_width" />
|
||||
<attr name="android:layout_height" />
|
||||
<!--
|
||||
Specifies extra space on the left, top, right and bottom
|
||||
sides of this view. This space is outside this view's bounds.
|
||||
-->
|
||||
<attr name="android:layout_margin" />
|
||||
<!--
|
||||
Specifies extra space on the left side of this view.
|
||||
This space is outside this view's bounds.
|
||||
-->
|
||||
<attr name="android:layout_marginLeft" />
|
||||
<!--
|
||||
Specifies extra space on the top side of this view.
|
||||
This space is outside this view's bounds.
|
||||
-->
|
||||
<attr name="android:layout_marginTop" />
|
||||
<!--
|
||||
Specifies extra space on the right side of this view.
|
||||
This space is outside this view's bounds.
|
||||
-->
|
||||
<attr name="android:layout_marginRight" />
|
||||
<!--
|
||||
Specifies extra space on the bottom side of this view.
|
||||
This space is outside this view's bounds.
|
||||
-->
|
||||
<attr name="android:layout_marginBottom" />
|
||||
|
||||
<!-- END MarginLayout layoutparams -->
|
||||
|
||||
<!--
|
||||
The row boundary delimiting the top of the group of cells
|
||||
occupied by this view.
|
||||
-->
|
||||
<attr name="layout_row" format="integer" />
|
||||
<!--
|
||||
The row span: the difference between the top and bottom
|
||||
boundaries delimiting the group of cells occupied by this view.
|
||||
The default is one.
|
||||
See {@link android.widget.GridLayout.Spec}.
|
||||
-->
|
||||
<attr name="layout_rowSpan" format="integer" min="1" />
|
||||
<!-- The relative proportion of vertical space that should be allocated to this view
|
||||
during excess space distribution. -->
|
||||
<attr name="layout_rowWeight" format="float" />
|
||||
<!--
|
||||
The column boundary delimiting the left of the group of cells
|
||||
occupied by this view.
|
||||
-->
|
||||
<attr name="layout_column" format="integer" />
|
||||
<!--
|
||||
The column span: the difference between the right and left
|
||||
boundaries delimiting the group of cells occupied by this view.
|
||||
The default is one.
|
||||
See {@link android.widget.GridLayout.Spec}.
|
||||
-->
|
||||
<attr name="layout_columnSpan" format="integer" min="1" />
|
||||
<!-- The relative proportion of horizontal space that should be allocated to this view
|
||||
during excess space distribution. -->
|
||||
<attr name="layout_columnWeight" format="float" />
|
||||
<!--
|
||||
Gravity specifies how a component should be placed in its group of cells.
|
||||
The default is LEFT | BASELINE.
|
||||
See {@link android.widget.GridLayout.LayoutParams#setGravity(int)}.
|
||||
-->
|
||||
<attr name="layout_gravity">
|
||||
|
||||
<!-- Push object to the top of its container, not changing its size. -->
|
||||
<flag name="top" value="0x30" />
|
||||
<!-- Push object to the bottom of its container, not changing its size. -->
|
||||
<flag name="bottom" value="0x50" />
|
||||
<!-- Push object to the left of its container, not changing its size. -->
|
||||
<flag name="left" value="0x03" />
|
||||
<!-- Push object to the right of its container, not changing its size. -->
|
||||
<flag name="right" value="0x05" />
|
||||
<!-- Place object in the vertical center of its container, not changing its size. -->
|
||||
<flag name="center_vertical" value="0x10" />
|
||||
<!-- Grow the vertical size of the object if needed so it completely fills its container. -->
|
||||
<flag name="fill_vertical" value="0x70" />
|
||||
<!-- Place object in the horizontal center of its container, not changing its size. -->
|
||||
<flag name="center_horizontal" value="0x01" />
|
||||
<!-- Grow the horizontal size of the object if needed so it completely fills its container. -->
|
||||
<flag name="fill_horizontal" value="0x07" />
|
||||
<!-- Place the object in the center of its container in both the vertical and horizontal axis, not changing its size. -->
|
||||
<flag name="center" value="0x11" />
|
||||
<!-- Grow the horizontal and vertical size of the object if needed so it completely fills its container. -->
|
||||
<flag name="fill" value="0x77" />
|
||||
<!--
|
||||
Additional option that can be set to have the top and/or bottom edges of
|
||||
the child clipped to its container's bounds.
|
||||
The clip will be based on the vertical gravity: a top gravity will clip the bottom
|
||||
edge, a bottom gravity will clip the top edge, and neither will clip both edges.
|
||||
-->
|
||||
<flag name="clip_vertical" value="0x80" />
|
||||
<!--
|
||||
Additional option that can be set to have the left and/or right edges of
|
||||
the child clipped to its container's bounds.
|
||||
The clip will be based on the horizontal gravity: a left gravity will clip the right
|
||||
edge, a right gravity will clip the left edge, and neither will clip both edges.
|
||||
-->
|
||||
<flag name="clip_horizontal" value="0x08" />
|
||||
<!-- Push object to the beginning of its container, not changing its size. -->
|
||||
<flag name="start" value="0x00800003" />
|
||||
<!-- Push object to the end of its container, not changing its size. -->
|
||||
<flag name="end" value="0x00800005" />
|
||||
</attr>
|
||||
</declare-styleable>
|
||||
|
||||
</resources>
|
7
eclipse-compile/gridlayout/res/values/dimens.xml
Normal file
7
eclipse-compile/gridlayout/res/values/dimens.xml
Normal file
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<!-- The default gap between components in a layout. -->
|
||||
<dimen name="default_gap">8dip</dimen>
|
||||
|
||||
</resources>
|
2
eclipse-compile/gridlayout/src/.readme
Normal file
2
eclipse-compile/gridlayout/src/.readme
Normal file
|
@ -0,0 +1,2 @@
|
|||
This hidden file is there to ensure there is an src folder.
|
||||
Once we support binary library this will go away.
|
|
@ -1,4 +1,5 @@
|
|||
include ':OsmAnd-java'
|
||||
include ':eclipse-compile:gridlayout'
|
||||
include ':eclipse-compile:cardview'
|
||||
include ':eclipse-compile:design'
|
||||
include ':eclipse-compile:appcompat'
|
||||
|
|
Loading…
Reference in a new issue