Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
e53e693be6
8 changed files with 422 additions and 360 deletions
|
@ -11,6 +11,8 @@
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<!-- Not translatable -->
|
<!-- Not translatable -->
|
||||||
|
<string name="full_version_price">€5</string>
|
||||||
|
<string name="osm_live_price">€1.5</string>
|
||||||
<string name="osm_live">OSM Live (Beta)</string>
|
<string name="osm_live">OSM Live (Beta)</string>
|
||||||
<string name="ga_api_key">UA-28342846-2</string>
|
<string name="ga_api_key">UA-28342846-2</string>
|
||||||
<string name="ga_dispatchPeriod">10</string>
|
<string name="ga_dispatchPeriod">10</string>
|
||||||
|
|
|
@ -9,91 +9,248 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:background="@color/osmo_header_dark"
|
android:background="@color/osmo_header_dark"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:paddingBottom="@dimen/list_header_padding"
|
android:theme="@style/FreeVersionBanner">
|
||||||
android:paddingLeft="@dimen/list_content_padding"
|
|
||||||
android:paddingRight="@dimen/list_content_padding"
|
|
||||||
android:paddingTop="@dimen/list_header_padding"
|
|
||||||
android:theme="@style/FreeVersionBanner"
|
|
||||||
tools:showIn="@layout/local_index_fragment_header">
|
|
||||||
|
|
||||||
<LinearLayout
|
<ScrollView
|
||||||
android:id="@+id/freeVersionBannerTitle"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:padding="4dp">
|
android:paddingBottom="@dimen/list_header_padding"
|
||||||
|
android:paddingTop="@dimen/list_header_padding">
|
||||||
<TextView
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:text="@string/free_version_title"/>
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/downloadsLeftTextView"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
tools:text="@string/downloads_left_template"/>
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/freeVersionDescriptionTextView"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_margin="4dp"
|
|
||||||
tools:text="@string/free_version_message"/>
|
|
||||||
|
|
||||||
<FrameLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="8dp"
|
|
||||||
android:layout_margin="4dp">
|
|
||||||
|
|
||||||
<ProgressBar
|
|
||||||
android:id="@+id/downloadsLeftProgressBar"
|
|
||||||
style="@android:style/Widget.ProgressBar.Horizontal"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:max="10"
|
|
||||||
android:progressDrawable="@drawable/number_of_downloads_progress_bar_drawable"
|
|
||||||
android:saveEnabled="false"
|
|
||||||
tools:progress="6"/>
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/marksLinearLayout"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal"/>
|
android:orientation="vertical">
|
||||||
</FrameLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/buttonsLinearLayout"
|
android:id="@+id/bannerTopLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="@dimen/list_content_padding">
|
android:orientation="vertical"
|
||||||
|
android:paddingLeft="@dimen/list_content_padding"
|
||||||
|
android:paddingRight="@dimen/list_content_padding">
|
||||||
|
|
||||||
<net.osmand.plus.widgets.ButtonEx
|
<LinearLayout
|
||||||
android:id="@+id/getFullVersionButton"
|
android:id="@+id/freeVersionBannerTitle"
|
||||||
android:layout_width="0dp"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="@dimen/list_header_height"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:padding="4dp">
|
||||||
android:background="@drawable/blue_button_drawable"
|
|
||||||
android:text="@string/get_full_version"
|
|
||||||
android:textSize="@dimen/default_desc_text_size"
|
|
||||||
android:textStyle="bold"
|
|
||||||
osmand:textAllCapsCompat="true"/>
|
|
||||||
|
|
||||||
<net.osmand.plus.widgets.ButtonEx
|
<TextView
|
||||||
android:id="@+id/laterButton"
|
android:layout_width="0dp"
|
||||||
android:layout_width="0dp"
|
android:layout_height="wrap_content"
|
||||||
android:layout_height="@dimen/list_header_height"
|
android:layout_weight="1"
|
||||||
android:layout_marginLeft="@dimen/list_content_padding"
|
android:text="@string/free_version_title"/>
|
||||||
android:layout_weight="1"
|
|
||||||
android:background="@drawable/later_button_drawable"
|
<TextView
|
||||||
android:text="@string/later"
|
android:id="@+id/downloadsLeftTextView"
|
||||||
android:textSize="@dimen/default_desc_text_size"
|
android:layout_width="wrap_content"
|
||||||
android:textStyle="bold"
|
android:layout_height="wrap_content"
|
||||||
osmand:textAllCapsCompat="true"/>
|
tools:text="@string/downloads_left_template"/>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/freeVersionDescriptionTextView"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="4dp"
|
||||||
|
tools:text="@string/free_version_message"/>
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="8dp"
|
||||||
|
android:layout_margin="4dp">
|
||||||
|
|
||||||
|
<ProgressBar
|
||||||
|
android:id="@+id/downloadsLeftProgressBar"
|
||||||
|
style="@android:style/Widget.ProgressBar.Horizontal"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:max="10"
|
||||||
|
android:progressDrawable="@drawable/number_of_downloads_progress_bar_drawable"
|
||||||
|
android:saveEnabled="false"
|
||||||
|
tools:progress="6"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/marksLinearLayout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="horizontal"/>
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/priceInfoLayout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="@dimen/list_content_padding"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
android:background="@color/dashboard_divider_dark"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/fullVersionLayout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="@dimen/list_content_padding"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<android.support.v7.widget.AppCompatImageView
|
||||||
|
android:layout_width="54dp"
|
||||||
|
android:layout_height="32dp"
|
||||||
|
android:scaleType="center"
|
||||||
|
android:src="@drawable/ic_action_osmand_logo"
|
||||||
|
android:tint="@color/osmand_orange"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/fullVersionTitle"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="OsmAnd+"
|
||||||
|
android:textSize="@dimen/default_list_text_size_large"
|
||||||
|
android:textStyle="bold"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/fullVersionDescription"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="6dp"
|
||||||
|
android:text="@string/osmand_plus_banner_desc"/>
|
||||||
|
|
||||||
|
<ProgressBar
|
||||||
|
android:id="@+id/fullVersionProgress"
|
||||||
|
android:layout_width="32dp"
|
||||||
|
android:layout_height="32dp"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
android:indeterminate="true"
|
||||||
|
android:visibility="gone"/>
|
||||||
|
|
||||||
|
<android.support.v7.widget.AppCompatButton
|
||||||
|
android:id="@+id/fullVersionButton"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="12dp"
|
||||||
|
android:background="@drawable/blue_button_drawable"
|
||||||
|
android:paddingBottom="10dp"
|
||||||
|
android:paddingLeft="14dp"
|
||||||
|
android:paddingRight="14dp"
|
||||||
|
android:paddingTop="10dp"
|
||||||
|
android:textColor="@color/color_white"
|
||||||
|
android:visibility="visible"
|
||||||
|
tools:text="GET FOR E5"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
android:layout_marginLeft="54dp"
|
||||||
|
android:layout_marginTop="@dimen/list_content_padding"
|
||||||
|
android:background="@color/dashboard_divider_dark"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/osmLiveLayout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="@dimen/list_content_padding"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<android.support.v7.widget.AppCompatImageView
|
||||||
|
android:layout_width="54dp"
|
||||||
|
android:layout_height="32dp"
|
||||||
|
android:scaleType="center"
|
||||||
|
android:src="@drawable/ic_action_osm_live"
|
||||||
|
android:tint="@color/osmand_orange"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/osmLiveTitle"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/osm_live_subscription"
|
||||||
|
android:textSize="@dimen/default_list_text_size_large"
|
||||||
|
android:textStyle="bold"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/osmLiveDescription"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="6dp"
|
||||||
|
android:text="@string/osm_live_banner_desc"/>
|
||||||
|
|
||||||
|
<ProgressBar
|
||||||
|
android:id="@+id/osmLiveProgress"
|
||||||
|
android:layout_width="32dp"
|
||||||
|
android:layout_height="32dp"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
android:indeterminate="true"
|
||||||
|
android:visibility="gone"/>
|
||||||
|
|
||||||
|
<android.support.v7.widget.AppCompatButton
|
||||||
|
android:id="@+id/osmLiveButton"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="12dp"
|
||||||
|
android:background="@drawable/blue_button_drawable"
|
||||||
|
android:paddingBottom="10dp"
|
||||||
|
android:paddingLeft="14dp"
|
||||||
|
android:paddingRight="14dp"
|
||||||
|
android:paddingTop="10dp"
|
||||||
|
android:textColor="@color/color_white"
|
||||||
|
tools:text="GET FOR 1,5E PER MONTH"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
android:layout_marginLeft="54dp"
|
||||||
|
android:layout_marginTop="@dimen/list_content_padding"
|
||||||
|
android:background="@color/dashboard_divider_dark"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/buttonsLinearLayout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="8dp">
|
||||||
|
|
||||||
|
<android.support.v7.widget.AppCompatButton
|
||||||
|
android:id="@+id/laterButton"
|
||||||
|
style="@style/Widget.AppCompat.Button.ButtonBar.AlertDialog"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="@dimen/list_header_height"
|
||||||
|
android:layout_marginLeft="40dp"
|
||||||
|
android:text="@string/later"
|
||||||
|
android:textColor="@color/color_white"
|
||||||
|
android:textSize="@dimen/default_desc_text_size"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</ScrollView>
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version='1.0' encoding='UTF-8'?>
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
<resources>
|
<resources>
|
||||||
<string name="poi_bakery">Булочная</string>
|
<string name="poi_bakery">Булочная</string>
|
||||||
<string name="poi_alcohol">Винно-водочный магазин</string>
|
<string name="poi_alcohol">Винно-водочный магазин</string>
|
||||||
|
@ -2910,7 +2910,7 @@
|
||||||
<string name="poi_ventilation_shaft">Вентиляционная шахта</string>
|
<string name="poi_ventilation_shaft">Вентиляционная шахта</string>
|
||||||
|
|
||||||
<string name="poi_pump_type_beam_pump">Тип насоса: станок-качалка</string>
|
<string name="poi_pump_type_beam_pump">Тип насоса: станок-качалка</string>
|
||||||
<string name="poi_pump_type_india_mk_2_3">Тип насоса: India Mk II или III></string>
|
<string name="poi_pump_type_india_mk_2_3">Тип насоса: India Mk II или III</string>
|
||||||
<string name="poi_pump_type_gravity">Тип насоса: гравитационный</string>
|
<string name="poi_pump_type_gravity">Тип насоса: гравитационный</string>
|
||||||
<string name="poi_pump_style_modern">Стиль насоса: современный</string>
|
<string name="poi_pump_style_modern">Стиль насоса: современный</string>
|
||||||
<string name="poi_pump_style_historic">Стиль насоса: исторический</string>
|
<string name="poi_pump_style_historic">Стиль насоса: исторический</string>
|
||||||
|
@ -3016,16 +3016,13 @@
|
||||||
|
|
||||||
<string name="poi_length">Длина</string>
|
<string name="poi_length">Длина</string>
|
||||||
|
|
||||||
<string name="poi_recycling_waste_oil">Отработанное масло</string>
|
<string name="poi_recycling_waste_oil">Отработанное масло</string>
|
||||||
<string name="poi_association">Офис ассоциации</string>
|
<string name="poi_association">Офис ассоциации</string>
|
||||||
<string name="poi_hockey">Хоккей</string>
|
<string name="poi_hockey">Хоккей</string>
|
||||||
<string name="poi_denomination_uniting">Обьеденить</string>
|
|
||||||
<string name="poi_denomination_reform">Реформа</string>
|
|
||||||
<string name="poi_fuel_svo">СВО</string>
|
<string name="poi_fuel_svo">СВО</string>
|
||||||
<string name="poi_fuel_e10">Е10</string>
|
<string name="poi_fuel_e10">Е10</string>
|
||||||
<string name="poi_fuel_e20">Е20</string>
|
<string name="poi_fuel_e20">Е20</string>
|
||||||
<string name="poi_fuel_e85">E85</string>
|
<string name="poi_fuel_e85">E85</string>
|
||||||
<string name="poi_seamark_dyke">Знак дамбы</string>
|
|
||||||
<string name="poi_seamark_light_float">Бакен с маяком</string>
|
<string name="poi_seamark_light_float">Бакен с маяком</string>
|
||||||
<string name="poi_seamark_light_vessel">Плавучий маяк</string>
|
<string name="poi_seamark_light_vessel">Плавучий маяк</string>
|
||||||
</resources>
|
</resources>
|
|
@ -1,5 +1,4 @@
|
||||||
<?xml version='1.0' encoding='UTF-8'?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?><resources>
|
||||||
<resources>
|
|
||||||
<string name="number_of_gpx_files_selected_pattern">%s GPX трека(ов) выбрано</string>
|
<string name="number_of_gpx_files_selected_pattern">%s GPX трека(ов) выбрано</string>
|
||||||
<string name="change_markers_position">Переместить курсор</string>
|
<string name="change_markers_position">Переместить курсор</string>
|
||||||
<string name="current_track">Текущий путь</string>
|
<string name="current_track">Текущий путь</string>
|
||||||
|
@ -67,11 +66,7 @@
|
||||||
<string name="rendering_attr_hideProposed_name">Планируемые объекты</string>
|
<string name="rendering_attr_hideProposed_name">Планируемые объекты</string>
|
||||||
|
|
||||||
|
|
||||||
<string name="srtm_plugin_description">"Этот плагин обеспечивает как наложение контурных линий, так и отображения затеняющего слоя рельефа поверх стандартных карт OsmAnd. Эта функция высоко оценится спортсменами, туристами, путешественниками и всеми, кто заинтересован в рельефной структуре ландшафта.
|
<string name="srtm_plugin_description">"Этот плагин обеспечивает как наложение контурных линий, так и отображения затеняющего слоя рельефа поверх стандартных карт OsmAnd. Эта функция высоко оценится спортсменами, туристами, путешественниками и всеми, кто заинтересован в рельефной структуре ландшафта.\n\nГлобальные данные (между 70 градусами на севере и 70 градусами на юге) основываются на измерениях SRTM (Shuttle Radar Topography Mission) и ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer) — инструментом визуализации Terra, флагманского спутника Системы Наблюдения Земли NASA. ASTER является результатом совместных усилий NASA, министерства экономики Японии, торговли и промышленности (METI), а также Космических Систем Японии (J-spacesystems). "</string>
|
||||||
|
|
||||||
|
|
||||||
Глобальные данные (между 70 градусами на севере и 70 градусами на юге) основываются на измерениях SRTM (Shuttle Radar Topography Mission) и ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer) — инструментом визуализации Terra, флагманского спутника Системы Наблюдения Земли NASA. ASTER является результатом совместных усилий NASA, министерства экономики Японии, торговли и промышленности (METI), а также Космических Систем Японии (J-spacesystems).
|
|
||||||
"</string>
|
|
||||||
<string name="srtm_paid_version_msg">Рассмотрите, пожалуйста, покупку плагина \"Линии высот\" в Google Play, чтобы поддержать последующую разработку.</string>
|
<string name="srtm_paid_version_msg">Рассмотрите, пожалуйста, покупку плагина \"Линии высот\" в Google Play, чтобы поддержать последующую разработку.</string>
|
||||||
<string name="srtm_paid_version_title">Линии высот</string>
|
<string name="srtm_paid_version_title">Линии высот</string>
|
||||||
<string name="av_def_action_video">Запись видео</string>
|
<string name="av_def_action_video">Запись видео</string>
|
||||||
|
@ -141,14 +136,7 @@
|
||||||
<string name="map_online_data_descr">Использовать онлайн карты (загрузка и кэширование на SD-карте)</string>
|
<string name="map_online_data_descr">Использовать онлайн карты (загрузка и кэширование на SD-карте)</string>
|
||||||
<string name="shared_string_online_maps">Онлайн карты</string>
|
<string name="shared_string_online_maps">Онлайн карты</string>
|
||||||
<string name="online_map_settings_descr">Настройки источников онлайн карт и слоёв</string>
|
<string name="online_map_settings_descr">Настройки источников онлайн карт и слоёв</string>
|
||||||
<string name="osmand_rastermaps_plugin_description">"С помощью этого плагина можно получить доступ ко множеству видов онлайн-карт (тайловых или растровых), от предопределенных тайловых OpenStreetMap (Mapnik) до спутниковых снимков и слоев специального назначения, таких как карты погоды, климатические карты, геологических карты, слои затемнения высот и т. д.
|
<string name="osmand_rastermaps_plugin_description">"С помощью этого плагина можно получить доступ ко множеству видов онлайн-карт (тайловых или растровых), от предопределенных тайловых OpenStreetMap (Mapnik) до спутниковых снимков и слоев специального назначения, таких как карты погоды, климатические карты, геологических карты, слои затемнения высот и т. д.\n\nЛюбая из этих карт может быть использована в качестве основной (базовой) карты для отображения на экране OsmAnd или в виде наложения или подложки к другой базовой карте (например стандартной офлайн-карте OsmAnd). Чтобы сделать какую-либо подложку лучше видимой, некоторые элементы векторной карты OsmAnd могут быть по желанию легко скрыты через меню «Настройка карты».\n\nТайловые карты можно получить непосредственно с помощью онлайн-источников или подготовить для использования в автономном режиме (и вручную скопировать в папку данных OsmAnd) в виде базы данных sqlite, которая может быть создана с помощью различных инструментов подготовки карт сторонних производителей. "</string>
|
||||||
|
|
||||||
|
|
||||||
Любая из этих карт может быть использована в качестве основной (базовой) карты для отображения на экране OsmAnd или в виде наложения или подложки к другой базовой карте (например стандартной офлайн-карте OsmAnd). Чтобы сделать какую-либо подложку лучше видимой, некоторые элементы векторной карты OsmAnd могут быть по желанию легко скрыты через меню «Настройка карты».
|
|
||||||
|
|
||||||
|
|
||||||
Тайловые карты можно получить непосредственно с помощью онлайн-источников или подготовить для использования в автономном режиме (и вручную скопировать в папку данных OsmAnd) в виде базы данных sqlite, которая может быть создана с помощью различных инструментов подготовки карт сторонних производителей.
|
|
||||||
"</string>
|
|
||||||
<string name="osmand_background_plugin_description">Этот плагин предоставляет навигацию и запись маршрутов в энергосберегающем режиме. Плагин работает в фоновом режиме и периодически активизирует GPS для записи маршрута или воспроизведения голосовых команд.</string>
|
<string name="osmand_background_plugin_description">Этот плагин предоставляет навигацию и запись маршрутов в энергосберегающем режиме. Плагин работает в фоновом режиме и периодически активизирует GPS для записи маршрута или воспроизведения голосовых команд.</string>
|
||||||
<string name="osmand_accessibility_description">"Плагин добавляет поддержку специальных возможностей устройства непосредственно в OsmAnd. Это облегчает, например, регулировку скорости речи для голоса TTS, настройку направленности экрана навигации, управление масштабом при помощи трекбола или использование голосовых команд обратной связи для авто аннотации вашего местоположения."</string>
|
<string name="osmand_accessibility_description">"Плагин добавляет поддержку специальных возможностей устройства непосредственно в OsmAnd. Это облегчает, например, регулировку скорости речи для голоса TTS, настройку направленности экрана навигации, управление масштабом при помощи трекбола или использование голосовых команд обратной связи для авто аннотации вашего местоположения."</string>
|
||||||
<string name="osmand_development_plugin_description">Плагин отображает параметры для разработки и отладки функций, таких как, проверка или моделирование маршрута, отображение производительности отрисовки, проверка голосовых подсказок. Эти настройки предназначены для разработчиков и не требуются для обычного пользователя.</string>
|
<string name="osmand_development_plugin_description">Плагин отображает параметры для разработки и отладки функций, таких как, проверка или моделирование маршрута, отображение производительности отрисовки, проверка голосовых подсказок. Эти настройки предназначены для разработчиков и не требуются для обычного пользователя.</string>
|
||||||
|
@ -217,9 +205,7 @@
|
||||||
<string name="global_settings">Общие настройки</string>
|
<string name="global_settings">Общие настройки</string>
|
||||||
<string name="global_app_settings">Общие настройки приложения</string>
|
<string name="global_app_settings">Общие настройки приложения</string>
|
||||||
<string name="download_files_not_enough_space">Недостаточно места на диске для загрузки %1$s MB (свободно: %2$s).</string>
|
<string name="download_files_not_enough_space">Недостаточно места на диске для загрузки %1$s MB (свободно: %2$s).</string>
|
||||||
<string name="download_files_question_space">Загрузить {0} файл(ов)?
|
<string name="download_files_question_space">Загрузить {0} файл(ов)? Необходимо {1} Мб на постоянной основе. В настоящее время доступно {2} Мб свободного места.</string>
|
||||||
Необходимо {1} Мб на постоянной основе.
|
|
||||||
В настоящее время доступно {2} Мб свободного места.</string>
|
|
||||||
<string name="use_transparent_map_theme">Прозрачная тема</string>
|
<string name="use_transparent_map_theme">Прозрачная тема</string>
|
||||||
<string name="native_library_not_supported">Нативная библиотека не поддерживается на этом устройстве.</string>
|
<string name="native_library_not_supported">Нативная библиотека не поддерживается на этом устройстве.</string>
|
||||||
<string name="init_native_library">Инициализация нативной библиотеки…</string>
|
<string name="init_native_library">Инициализация нативной библиотеки…</string>
|
||||||
|
@ -300,7 +286,7 @@
|
||||||
<string name="switch_to_vector_map_to_see">Для этой позиции доступны локальные векторные карты.\n\t\n\tДля их использования выберите в \"Меню\" → \"Настройка карты\" → \"Источник карты…\" → \"Векторные карты\".</string>
|
<string name="switch_to_vector_map_to_see">Для этой позиции доступны локальные векторные карты.\n\t\n\tДля их использования выберите в \"Меню\" → \"Настройка карты\" → \"Источник карты…\" → \"Векторные карты\".</string>
|
||||||
<string name="choose_audio_stream">Голосовые инструкции</string>
|
<string name="choose_audio_stream">Голосовые инструкции</string>
|
||||||
<string name="choose_audio_stream_descr">Выберите канал для голосовых инструкций</string>
|
<string name="choose_audio_stream_descr">Выберите канал для голосовых инструкций</string>
|
||||||
<string name="voice_stream_voice_call">Аудио телефонный звонок (также пытается прервать BT стереосистему автомобиля)</string>
|
<string name="voice_stream_voice_call">Поток голосовых звонков</string>
|
||||||
<string name="voice_stream_notification">Поток уведомлений</string>
|
<string name="voice_stream_notification">Поток уведомлений</string>
|
||||||
<string name="voice_stream_music">Поток музыки</string>
|
<string name="voice_stream_music">Поток музыки</string>
|
||||||
<string name="warning_tile_layer_not_downloadable">Слой карты %1$s не может быть загружен приложением, попробуйте установить его заново.</string>
|
<string name="warning_tile_layer_not_downloadable">Слой карты %1$s не может быть загружен приложением, попробуйте установить его заново.</string>
|
||||||
|
@ -328,8 +314,8 @@
|
||||||
<string name="preferred_locale">Локализация</string>
|
<string name="preferred_locale">Локализация</string>
|
||||||
<string name="shared_string_next">След.</string>
|
<string name="shared_string_next">След.</string>
|
||||||
<string name="shared_string_previous">Предыдущий</string>
|
<string name="shared_string_previous">Предыдущий</string>
|
||||||
<string name="unit_of_length_descr">Единицы измерения длины</string>
|
<string name="unit_of_length_descr">Единицы измерения длины и скорости</string>
|
||||||
<string name="unit_of_length">Единицы длины</string>
|
<string name="unit_of_length">Единицы измерения</string>
|
||||||
<string name="si_mi_foots">Мили/футы</string>
|
<string name="si_mi_foots">Мили/футы</string>
|
||||||
<string name="si_mi_yard">Мили/ярды</string>
|
<string name="si_mi_yard">Мили/ярды</string>
|
||||||
<string name="si_km_m">Километры/метры</string>
|
<string name="si_km_m">Километры/метры</string>
|
||||||
|
@ -415,7 +401,7 @@
|
||||||
<string name="osmand_service">Фоновый режим</string>
|
<string name="osmand_service">Фоновый режим</string>
|
||||||
<string name="osmand_service_descr">Запустить OsmAnd в фоновом режиме для записи трека и навигации</string>
|
<string name="osmand_service_descr">Запустить OsmAnd в фоновом режиме для записи трека и навигации</string>
|
||||||
<string name="fast_route_mode">Скоростной маршрут</string>
|
<string name="fast_route_mode">Скоростной маршрут</string>
|
||||||
<string name="fast_route_mode_descr">"Включить, чтобы рассчитать самый быстрый маршрут или отключить для экономного маршрута "</string>
|
<string name="fast_route_mode_descr">Расчёт скоростного маршрута вместо кратчайшего </string>
|
||||||
<string name="tiles_to_download_estimated_size">На масштабе {0} загрузить {1} тайлов ({2} Mb )</string>
|
<string name="tiles_to_download_estimated_size">На масштабе {0} загрузить {1} тайлов ({2} Mb )</string>
|
||||||
<string name="shared_string_download_map">Загрузить карту</string>
|
<string name="shared_string_download_map">Загрузить карту</string>
|
||||||
<string name="select_max_zoom_preload_area">Выберите максимальный масштаб для загрузки видимой области</string>
|
<string name="select_max_zoom_preload_area">Выберите максимальный масштаб для загрузки видимой области</string>
|
||||||
|
@ -833,7 +819,7 @@
|
||||||
<string name="osmand_parking_event">Забрать автомобиль со стоянки</string>
|
<string name="osmand_parking_event">Забрать автомобиль со стоянки</string>
|
||||||
<string name="osmand_parking_warning">Предупреждение</string>
|
<string name="osmand_parking_warning">Предупреждение</string>
|
||||||
<string name="osmand_parking_warning_text">Напоминание об ограниченном времени стоянки автомобиля уже добавлено в календарь. Вам будет необходимо удалить его вручную.</string>
|
<string name="osmand_parking_warning_text">Напоминание об ограниченном времени стоянки автомобиля уже добавлено в календарь. Вам будет необходимо удалить его вручную.</string>
|
||||||
<string name="osmand_parking_time_limit_title">Задайте время стоянки</string>
|
<string name="osmand_parking_time_limit_title">Задайте максимальное время стоянки</string>
|
||||||
<string name="osmand_parking_delete_confirm">Хотите удалить отметку места парковки?</string>
|
<string name="osmand_parking_delete_confirm">Хотите удалить отметку места парковки?</string>
|
||||||
<string name="osmand_parking_delete">Удалить точку парковки</string>
|
<string name="osmand_parking_delete">Удалить точку парковки</string>
|
||||||
<string name="osmand_parking_choose_type">Выберите тип стоянки</string>
|
<string name="osmand_parking_choose_type">Выберите тип стоянки</string>
|
||||||
|
@ -847,9 +833,7 @@
|
||||||
<string name="osmand_parking_pm">PM</string>
|
<string name="osmand_parking_pm">PM</string>
|
||||||
<string name="osmand_parking_am">AM</string>
|
<string name="osmand_parking_am">AM</string>
|
||||||
<string name="osmand_parking_position_name">Точка парковки</string>
|
<string name="osmand_parking_position_name">Точка парковки</string>
|
||||||
<string name="osmand_parking_plugin_description">Плагин положения парковки позволяет Вам запомнить, где Ваш автомобиль припаркован и сколько времени стоянки оставляют (если есть ограничение по времени).
|
<string name="osmand_parking_plugin_description">Плагин парковочное место позволит вам легко запомнить, когда автомобиль был припаркован и сколько времени осталось, если парковка ограничена по времени. Вы можете найти место и время парковки на карточке домашней страницы и на карте с помощью виджета.\nТак же он добавляет уведомление в календарь, в случае, если вы хотите получить напоминание о нём.</string>
|
||||||
|
|
||||||
И местоположение и время видимо на приборной панели OsmAnd, а также в виджете на экране карты. Тревога может быть добавлена к календарю Android как напоминание.</string>
|
|
||||||
<string name="osmand_parking_plugin_name">Парковочное место</string>
|
<string name="osmand_parking_plugin_name">Парковочное место</string>
|
||||||
<string name="context_menu_item_add_parking_point">Пометить место парковки</string>
|
<string name="context_menu_item_add_parking_point">Пометить место парковки</string>
|
||||||
<string name="context_menu_item_delete_parking_point">Удалить метку места парковки</string>
|
<string name="context_menu_item_delete_parking_point">Удалить метку места парковки</string>
|
||||||
|
@ -858,18 +842,17 @@
|
||||||
<string name="select_animate_speedup">Укажите скорость анимации маршрута</string>
|
<string name="select_animate_speedup">Укажите скорость анимации маршрута</string>
|
||||||
<string name="global_app_allocated_memory_descr">Выделено памяти %1$s MB (Ограничение Android %2$s MB, Dalvik %3$s MB).</string>
|
<string name="global_app_allocated_memory_descr">Выделено памяти %1$s MB (Ограничение Android %2$s MB, Dalvik %3$s MB).</string>
|
||||||
<string name="global_app_allocated_memory">Выделено памяти</string>
|
<string name="global_app_allocated_memory">Выделено памяти</string>
|
||||||
<string name="native_app_allocated_memory_descr">Всего физической памяти выделено приложению %1$s MB (Dalvik %2$s MB, другое %3$s MB).
|
<string name="native_app_allocated_memory_descr">Всего физической памяти выделено приложению %1$s MB (Dalvik %2$s MB, другое %3$s MB). Proportional memory %4$s MB (Ограничение Android %5$s MB, Dalvik %6$s MB).</string>
|
||||||
Пропорциональная память %4$s MB (Ограничение Android %5$s MB, Dalvik %6$s MB).</string>
|
|
||||||
<string name="native_app_allocated_memory">Всего физической памяти</string>
|
<string name="native_app_allocated_memory">Всего физической памяти</string>
|
||||||
<string name="osmand_parking_hours">Часов</string>
|
<string name="osmand_parking_hours">Часов</string>
|
||||||
<string name="osmand_parking_minutes">Минут</string>
|
<string name="osmand_parking_minutes">Минут</string>
|
||||||
<string name="osmand_parking_position_description_add_time">Машина припаркована на</string>
|
<string name="osmand_parking_position_description_add_time">Машина припаркована в</string>
|
||||||
<string name="use_compass_navigation_descr">Использовать навигацию по компасу, если направление не определено</string>
|
<string name="use_compass_navigation_descr">Использовать навигацию по компасу, если направление не определено</string>
|
||||||
<string name="use_compass_navigation">Использовать компас</string>
|
<string name="use_compass_navigation">Использовать компас</string>
|
||||||
<string name="route_updated_loc_found">Маршрут будет пересчитан после определения местоположения</string>
|
<string name="route_updated_loc_found">Маршрут будет пересчитан после определения местоположения</string>
|
||||||
<string name="continue_follow_previous_route_auto">Предыдущий маршрут не был закончен. Продолжить следование по нему? (%1$s секунд)</string>
|
<string name="continue_follow_previous_route_auto">Предыдущий маршрут не был закончен. Продолжить следование по нему? (%1$s секунд)</string>
|
||||||
<string name="show_cameras">Камеры контроля скорости</string>
|
<string name="show_cameras">Показать камеры контроля скорости</string>
|
||||||
<string name="show_traffic_warnings">Ограничения скорости</string>
|
<string name="show_traffic_warnings">Показать ограничения скорости</string>
|
||||||
<string name="avoid_toll_roads">Платные дороги</string>
|
<string name="avoid_toll_roads">Платные дороги</string>
|
||||||
<string name="screen_is_locked">Для разблокировки экрана коснитесь значка блокировки</string>
|
<string name="screen_is_locked">Для разблокировки экрана коснитесь значка блокировки</string>
|
||||||
<string name="map_widget_top_text">Название улицы</string>
|
<string name="map_widget_top_text">Название улицы</string>
|
||||||
|
@ -896,7 +879,7 @@
|
||||||
<string name="bg_service_screen_lock_toast">Экран заблокирован</string>
|
<string name="bg_service_screen_lock_toast">Экран заблокирован</string>
|
||||||
<string name="bg_service_interval">Установить интервал пробуждения:</string>
|
<string name="bg_service_interval">Установить интервал пробуждения:</string>
|
||||||
<string name="layer_map_appearance">Настройка экрана</string>
|
<string name="layer_map_appearance">Настройка экрана</string>
|
||||||
<string name="show_lanes">Полосы движения</string>
|
<string name="show_lanes">Показывать полосы движения</string>
|
||||||
<string name="avoid_unpaved">Избегать просёлочных дорог</string>
|
<string name="avoid_unpaved">Избегать просёлочных дорог</string>
|
||||||
<string name="avoid_ferries">Избегать паромов</string>
|
<string name="avoid_ferries">Избегать паромов</string>
|
||||||
<string name="avoid_in_routing_title">Избегать при прокладке маршрута…</string>
|
<string name="avoid_in_routing_title">Избегать при прокладке маршрута…</string>
|
||||||
|
@ -919,52 +902,9 @@
|
||||||
<string name="email">email</string>
|
<string name="email">email</string>
|
||||||
<string name="day_night_info">Восход/закат</string>
|
<string name="day_night_info">Восход/закат</string>
|
||||||
<string name="osmand_short_description_80_chars">OsmAnd - это навигационное приложение для путешествий с открытым исходным кодом</string>
|
<string name="osmand_short_description_80_chars">OsmAnd - это навигационное приложение для путешествий с открытым исходным кодом</string>
|
||||||
<string name="osmand_long_description_1000_chars">"
|
<string name="osmand_long_description_1000_chars">" OsmAnd (Open Street Maps Automated Navigation Directions) OsmAnd - это навигационное приложение с открытым исходным кодом и доступом к картам и данным на основе (OpenStreetMap). Все данные карт (векторные или растровые) могут быть сохранены на карту памяти устройства для использования без подключения к Интернет. OsmAnd также предоставляет оффлайн и онлайн средства построения маршрута включая голосовые инструкции по маршруту. Некоторые из основных возможностей приложения: - работа с векторными и растровыми картами без доступа в Интернет (для этого нужно предварительно сохранить карты на карту памяти устройства); - доступность компактных векторных карт для всех стран мира; - загрузка векторных и растровых карт для страны или области из самого приложения; - отображение дополнительной информации (слоёв) на карте, такой как GPX или навигационные маршруты, объекты (POI), избранные местоположения, линии высот, остановки общественного транспорта; наложение дополнительных карт с настраиваемой прозрачностью; - поиск адресов и объектов (POI) без доступа в Интернет; - построение маршрутов на небольшие расстояния без доступа в Интернет (экспериментальная функция); - режимы автомобиля, велосипеда и пешехода с возможностями: - автоматического переключения на дневной/ночной режим отрисовки карты; - изменения масштабы карты в зависимости от скорости; - вращения карты по компасу или направлению движения; - использования голосовых команд (воспроизводимых записанными или генерированными голосами) при движении по маршруту; - предупреждения о превышении допустимой скорости движения. Ограничения бесплатной версии OsmAnd: - ограниченное число загрузок карт; - нет возможности просматривать описание достопримечательностей из Wikipedia без использования Интернет. OsmAnd продолжает активно развиваться. Но так как проект финансируется только взносами пользователей, то дальнейшее развитие проекта и появление новых функциональных возможностей зависит от наличия этого финансирования. Поэтому если вам нравится приложение, подумайте о покупке OsmAnd+. Также на сайте osmand.net Вы можете профинансировать конкретную функциональную возможность или внести общий финансовый вклад в развитие проекта. "</string>
|
||||||
OsmAnd (Open Street Maps Automated Navigation Directions)
|
|
||||||
|
|
||||||
OsmAnd - это навигационное приложение с открытым исходным кодом и доступом к картам и данным на основе (OpenStreetMap). Все данные карт (векторные или растровые) могут быть сохранены на карту памяти устройства для использования без подключения к Интернет. OsmAnd также предоставляет оффлайн и онлайн средства построения маршрута включая голосовые инструкции по маршруту.
|
|
||||||
|
|
||||||
Некоторые из основных возможностей приложения:
|
|
||||||
- работа с векторными и растровыми картами без доступа в Интернет (для этого нужно предварительно сохранить карты на карту памяти устройства);
|
|
||||||
- доступность компактных векторных карт для всех стран мира;
|
|
||||||
- загрузка векторных и растровых карт для страны или области из самого приложения;
|
|
||||||
- отображение дополнительной информации (слоёв) на карте, такой как GPX или навигационные маршруты, объекты (POI), избранные местоположения, линии высот, остановки общественного транспорта; наложение дополнительных карт с настраиваемой прозрачностью; - поиск адресов и объектов (POI) без доступа в Интернет;
|
|
||||||
- построение маршрутов на небольшие расстояния без доступа в Интернет (экспериментальная функция);
|
|
||||||
- режимы автомобиля, велосипеда и пешехода с возможностями: - автоматического переключения на дневной/ночной режим отрисовки карты
|
|
||||||
; - изменения масштабы карты в зависимости от скорости;
|
|
||||||
- вращения карты по компасу или направлению движения;
|
|
||||||
- использования голосовых команд (воспроизводимых записанными или генерированными голосами) при движении по маршруту;
|
|
||||||
- предупреждения о превышении допустимой скорости движения.
|
|
||||||
|
|
||||||
Ограничения бесплатной версии OsmAnd:
|
|
||||||
- ограниченное число загрузок карт;
|
|
||||||
- нет возможности просматривать описание достопримечательностей из Wikipedia без использования Интернет.
|
|
||||||
|
|
||||||
OsmAnd продолжает активно развиваться. Но так как проект финансируется только взносами пользователей, то дальнейшее развитие проекта и появление новых функциональных возможностей зависит от наличия этого финансирования. Поэтому если вам нравится приложение, подумайте о покупке OsmAnd+. Также на сайте osmand.net Вы можете профинансировать конкретную функциональную возможность или внести общий финансовый вклад в развитие проекта.
|
|
||||||
"</string>
|
|
||||||
<string name="osmand_plus_short_description_80_chars">OsmAnd - это навигационное приложение для путешествий с открытым исходным кодом</string>
|
<string name="osmand_plus_short_description_80_chars">OsmAnd - это навигационное приложение для путешествий с открытым исходным кодом</string>
|
||||||
<string name="osmand_plus_long_description_1000_chars">"
|
<string name="osmand_plus_long_description_1000_chars">" OsmAnd+ (Open Street Maps Automated Navigation Directions) OsmAnd+ - это навигационное приложение с открытым исходным кодом и доступом к картам и данным на основе (OpenStreetMap). Все данные карт (векторные или растровые) могут быть сохранены на карту памяти устройства для использования без подключения к Интернет. OsmAnd также предоставляет оффлайн и онлайн средства построения маршрута включая голосовые инструкции по маршруту. OsmAnd+ оплаченная версия программы, означает, что вы поддерживаете проект, финансируя разработку нового функционала и получаете последние обновления. Некоторые из основных возможностей приложения: - работа с векторными и растровыми картами без доступа в Интернет (для этого нужно предварительно сохранить карты на карту памяти устройства); - доступность компактных векторных карт для всех стран мира; - неограниченная загрузка векторных и растровых карт для страны или области из самого приложения; - достопримечательности из Wikipedia без доступа в Интернет (необходимо предварительно загрузить Wikipedia POI); - отображение дополнительной информации (слоёв) на карте, такой как GPX или навигационные маршруты, объекты (POI), избранные местоположения, линии высот, остановки общественного транспорта; наложение дополнительных карт с настраиваемой прозрачностью; - поиск адресов и объектов (POI) без доступа в Интернет; - построение маршрутов на небольшие расстояния без доступа в Интернет (экспериментальная функция); - режимы автомобиля, велосипеда и пешехода с возможностями: - автоматического переключения на дневной/ночной режим отрисовки карты; - изменения масштабы карты в зависимости от скорости; - вращения карты по компасу или направлению движения; - использования голосовых команд (воспроизводимых записанными или TTS голосами) при движении по маршруту; - предупреждения о превышении допустимой скорости движения. "</string>
|
||||||
OsmAnd+ (Open Street Maps Automated Navigation Directions)
|
|
||||||
|
|
||||||
OsmAnd+ - это навигационное приложение с открытым исходным кодом и доступом к картам и данным на основе (OpenStreetMap). Все данные карт (векторные или растровые) могут быть сохранены на карту памяти устройства для использования без подключения к Интернет. OsmAnd также предоставляет оффлайн и онлайн средства построения маршрута включая голосовые инструкции по маршруту.
|
|
||||||
|
|
||||||
OsmAnd+ оплаченная версия программы, означает, что вы поддерживаете проект, финансируя разработку нового функционала и получаете последние обновления.
|
|
||||||
|
|
||||||
Некоторые из основных возможностей приложения:
|
|
||||||
- работа с векторными и растровыми картами без доступа в Интернет (для этого нужно предварительно сохранить карты на карту памяти устройства);
|
|
||||||
- доступность компактных векторных карт для всех стран мира;
|
|
||||||
- неограниченная загрузка векторных и растровых карт для страны или области из самого приложения;
|
|
||||||
- достопримечательности из Wikipedia без доступа в Интернет (необходимо предварительно загрузить Wikipedia POI);
|
|
||||||
- отображение дополнительной информации (слоёв) на карте, такой как GPX или навигационные маршруты, объекты (POI), избранные местоположения, линии высот, остановки общественного транспорта; наложение дополнительных карт с настраиваемой прозрачностью;
|
|
||||||
- поиск адресов и объектов (POI) без доступа в Интернет;
|
|
||||||
- построение маршрутов на небольшие расстояния без доступа в Интернет (экспериментальная функция);
|
|
||||||
- режимы автомобиля, велосипеда и пешехода с возможностями:
|
|
||||||
- автоматического переключения на дневной/ночной режим отрисовки карты;
|
|
||||||
- изменения масштабы карты в зависимости от скорости;
|
|
||||||
- вращения карты по компасу или направлению движения;
|
|
||||||
- использования голосовых команд (воспроизводимых записанными или TTS голосами) при движении по маршруту;
|
|
||||||
- предупреждения о превышении допустимой скорости движения.
|
|
||||||
"</string>
|
|
||||||
<string name="avoid_motorway">Избегать автомагистралей</string>
|
<string name="avoid_motorway">Избегать автомагистралей</string>
|
||||||
<string name="snap_to_road_descr">Привязывать текущую позицию к дороге</string>
|
<string name="snap_to_road_descr">Привязывать текущую позицию к дороге</string>
|
||||||
<string name="snap_to_road">Привязка к дороге</string>
|
<string name="snap_to_road">Привязка к дороге</string>
|
||||||
|
@ -987,7 +927,7 @@ OsmAnd+ оплаченная версия программы, означает,
|
||||||
<string name="add_as_last_destination_point">Добавить как последний промежуточный пункт</string>
|
<string name="add_as_last_destination_point">Добавить как последний промежуточный пункт</string>
|
||||||
<string name="add_as_first_destination_point">Добавить как первый промежуточный пункт</string>
|
<string name="add_as_first_destination_point">Добавить как первый промежуточный пункт</string>
|
||||||
<string name="replace_destination_point">Заменить пункт назначения</string>
|
<string name="replace_destination_point">Заменить пункт назначения</string>
|
||||||
<string name="new_destination_point_dialog">Вы уже установили пункт назначения:</string>
|
<string name="new_destination_point_dialog">Вы уже установили пункт назначения.</string>
|
||||||
<string name="target_point">Пункт %1$s</string>
|
<string name="target_point">Пункт %1$s</string>
|
||||||
<string name="target_points">Пункты назначения</string>
|
<string name="target_points">Пункты назначения</string>
|
||||||
<string name="intermediate_point">Промежуточный пункт %1$s</string>
|
<string name="intermediate_point">Промежуточный пункт %1$s</string>
|
||||||
|
@ -1013,11 +953,7 @@ OsmAnd+ оплаченная версия программы, означает,
|
||||||
<string name="recording_context_menu_precord">Сделать фото</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="dropbox_plugin_name">Плагин Dropbox</string>
|
||||||
<string name="osmand_srtm_long_description_1000_chars">"Плагин обеспечивает наложение контурных линии и (рельефа) затемняющего слоя, которые будут отображаться поверх стандартных карт OsmAnd. Эта функция высоко оценится спортсменами, туристами, путешественниками и всеми, кто заинтересован в рельефной структуре ландшафта.
|
<string name="osmand_srtm_long_description_1000_chars">"Плагин обеспечивает наложение контурных линии и (рельефа) затемняющего слоя, которые будут отображаться поверх стандартных карт OsmAnd. Эта функция высоко оценится спортсменами, туристами, путешественниками и всеми, кто заинтересован в рельефной структуре ландшафта.\n\nГлобальные данные (между 70 градусов на севере и 70 градусов на юге) основываются на измерениях SRTM (Shuttle Radar Topography Mission) и ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), инструментом визуализации Terra, флагманского спутника Земли системы наблюдения NASA. ASTER является результатом совместных усилий NASA, министерства экономики Японии, торговли и промышленности (METI), космических систем Японии (J-spacesystems). "</string>
|
||||||
|
|
||||||
|
|
||||||
Глобальные данные (между 70 градусов на севере и 70 градусов на юге) основываются на измерениях SRTM (Shuttle Radar Topography Mission) и ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), инструментом визуализации Terra, флагманского спутника Земли системы наблюдения NASA. ASTER является результатом совместных усилий NASA, министерства экономики Японии, торговли и промышленности (METI), космических систем Японии (J-spacesystems).
|
|
||||||
"</string>
|
|
||||||
<string name="recording_photo_description">Фото %1$s %2$s</string>
|
<string name="recording_photo_description">Фото %1$s %2$s</string>
|
||||||
<string name="local_indexes_cat_av">Аудио/Видео данные</string>
|
<string name="local_indexes_cat_av">Аудио/Видео данные</string>
|
||||||
<string name="stop_routing_confirm">Вы уверены, что хотите остановить навигацию?</string>
|
<string name="stop_routing_confirm">Вы уверены, что хотите остановить навигацию?</string>
|
||||||
|
@ -1265,12 +1201,7 @@ OsmAnd+ оплаченная версия программы, означает,
|
||||||
<string name="share_route_as_gpx">Поделиться маршрутом используя файл GPX</string>
|
<string name="share_route_as_gpx">Поделиться маршрутом используя файл GPX</string>
|
||||||
<string name="osmo_settings_uuid">Ключ доступа</string>
|
<string name="osmo_settings_uuid">Ключ доступа</string>
|
||||||
<string name="osmo_settings_descr">Настройка параметров мониторинга и установка персонального канала мониторинга</string>
|
<string name="osmo_settings_descr">Настройка параметров мониторинга и установка персонального канала мониторинга</string>
|
||||||
<string name="osmo_plugin_description">"Плагин обеспечивает функциональность для расширенного живого мониторинга OsMo, см. http://osmo.mobi.
|
<string name="osmo_plugin_description">"Плагин обеспечивает функциональность для расширенного живого мониторинга OsMo, см. http://osmo.mobi.\n\nОн позволяет отслеживать другие устройства и отслеживаться самому. Вы можете создавать анонимные группы, делиться друг с другом местоположением и общаться. Возможны различные варианты опций для отслеживания сессии или постоянного слежения.\n\nАнонимные группы создаются для указанного количества дней и ограниченным функционалом, то есть нет дистанционного управления и нет администратора группы. Полностью функциональные группы, с другой стороны, могут быть созданы на веб-сайте и только зарегистрированные пользователи имеют к ним доступ. "</string>
|
||||||
|
|
||||||
Вы можете отслеживать все устройства из вашей группы в режиме реального времени. Вы также можете увидеть точки и треки в группе, к которой вы принадлежите.
|
|
||||||
|
|
||||||
Группа не была удалена после нескольких месяцев, приведите её в соответствие с правилами, которые вы найдёта на сайте OsMo.mobi
|
|
||||||
"</string>
|
|
||||||
<string name="osmo_plugin_name">OpenStreetMap Мониторинг</string>
|
<string name="osmo_plugin_name">OpenStreetMap Мониторинг</string>
|
||||||
<string name="osmo_settings">OsMo</string>
|
<string name="osmo_settings">OsMo</string>
|
||||||
<string name="navigation_intent_invalid">Неправильный формат: %s</string>
|
<string name="navigation_intent_invalid">Неправильный формат: %s</string>
|
||||||
|
@ -1419,17 +1350,13 @@ OsmAnd+ оплаченная версия программы, означает,
|
||||||
<string name="enable_sleep_mode">Включить фоновый режим GPS</string>
|
<string name="enable_sleep_mode">Включить фоновый режим GPS</string>
|
||||||
<string name="gps_wake_up_timer">Интервал пробуждения GPS</string>
|
<string name="gps_wake_up_timer">Интервал пробуждения GPS</string>
|
||||||
<string name="sleep_mode_stop_dialog">Выключить фоновый режим GPS?</string>
|
<string name="sleep_mode_stop_dialog">Выключить фоновый режим GPS?</string>
|
||||||
<string name="stop_navigation_service">Стоп</string>
|
<string name="stop_navigation_service">Выключить</string>
|
||||||
<string name="keep_navigation_service">Оставить</string>
|
<string name="keep_navigation_service">Оставить</string>
|
||||||
<string name="live_monitoring_m_descr">Отправлять данные отслеживания на указанный веб-сервис, если включена запись GPX.</string>
|
<string name="live_monitoring_m_descr">Отправлять данные отслеживания на указанный веб-сервис, если включена запись GPX.</string>
|
||||||
<string name="live_monitoring_m">Онлайн слежение (требуется GPX)</string>
|
<string name="live_monitoring_m">Онлайн слежение (требуется GPX)</string>
|
||||||
<string name="live_monitoring_start">Начать онлайн слежение</string>
|
<string name="live_monitoring_start">Начать онлайн слежение</string>
|
||||||
<string name="live_monitoring_stop">Остановить онлайн слежение</string>
|
<string name="live_monitoring_stop">Остановить онлайн слежение</string>
|
||||||
<string name="osmo_auth_error">Ошибка авторизации OsMo : %1$s.↵
|
<string name="osmo_auth_error">Ошибка авторизации OsMo : %1$s.↵\n Это может быть временно недоступный сервис или срок вашей регистрации истек.↵\n Желаете продолжить с новой регистрацией?</string>
|
||||||
|
|
||||||
Это может быть временно недоступный сервис или срок вашей регистрации истек.
|
|
||||||
|
|
||||||
Желаете продолжить с новой регистрацией?</string>
|
|
||||||
<string name="osmo_not_signed_in">Не удалось войти в OsMo</string>
|
<string name="osmo_not_signed_in">Не удалось войти в OsMo</string>
|
||||||
<string name="osmo_gpx_track_downloaded">OsMo трек %1$s загружен.</string>
|
<string name="osmo_gpx_track_downloaded">OsMo трек %1$s загружен.</string>
|
||||||
<string name="no_index_file_to_download">Загрузок не найдено, проверьте подключение к Интернет.</string>
|
<string name="no_index_file_to_download">Загрузок не найдено, проверьте подключение к Интернет.</string>
|
||||||
|
@ -1456,21 +1383,7 @@ OsmAnd+ оплаченная версия программы, означает,
|
||||||
<string name="arrival_distance_factor_normally">Как обычно</string>
|
<string name="arrival_distance_factor_normally">Как обычно</string>
|
||||||
<string name="arrival_distance_factor_late">Попозже</string>
|
<string name="arrival_distance_factor_late">Попозже</string>
|
||||||
<string name="arrival_distance_factor_at_last">На последних метрах</string>
|
<string name="arrival_distance_factor_at_last">На последних метрах</string>
|
||||||
<string name="osmo_group_information_desc">"
|
<string name="osmo_group_information_desc">" - Все созданные группы являются открытыми! Если вы хотите сохранить анонимность, подключите устройства непосредственно через ID трекера.\n - Приватные группы ограничены 8 человеками.\n - Если в группе не будет активным хотя бы 1 человек в течении 2-х недель группа будет удалена.\n - Вы можете ограничить вход в группу, только по приглашениям, но для управления группой вы должны войти в консоль администратора.\n - Если вам нужно создать группу, но с другими условиями, пожалуйста, свяжитесь со службой поддержки http://osmo.mobi</string>
|
||||||
- Создание группы, пожалуйста, дайте ей имя и заполните описание
|
|
||||||
|
|
||||||
- Из группы приложений создаются только с простым типом, читать больше на сайте https://osmo.mobi/g/new
|
|
||||||
|
|
||||||
- Через веб-сайт можно управлять группой, чтобы поместить треки и все доступные точки
|
|
||||||
|
|
||||||
- Мы не поддерживаем использование группы только из одного пользователя, если это не группа POI
|
|
||||||
|
|
||||||
- Частные группы ограничены 8 человек
|
|
||||||
|
|
||||||
- Подробные условия всегда имеют на сайте OsMo.mobi
|
|
||||||
|
|
||||||
- Если вам нужны специальные условия - пожалуйста, свяжитесь со службой поддержки: osmo.mobi@gmail.com
|
|
||||||
"</string>
|
|
||||||
<string name="rendering_attr_alpineHiking_name">Пеший горный туризм по шкале (SAC)</string>
|
<string name="rendering_attr_alpineHiking_name">Пеший горный туризм по шкале (SAC)</string>
|
||||||
<string name="rendering_attr_hikingRoutesOSMC_name">Визуализация пути согласно трассам OSMC</string>
|
<string name="rendering_attr_hikingRoutesOSMC_name">Визуализация пути согласно трассам OSMC</string>
|
||||||
<string name="rendering_attr_coloredBuildings_name">Цветовая маркировка зданий по типу</string>
|
<string name="rendering_attr_coloredBuildings_name">Цветовая маркировка зданий по типу</string>
|
||||||
|
@ -1521,10 +1434,7 @@ OsmAnd+ оплаченная версия программы, означает,
|
||||||
<string name="osmo_device_not_found">Устройство не обнаружено</string>
|
<string name="osmo_device_not_found">Устройство не обнаружено</string>
|
||||||
<string name="anonymous_user">Анонимный пользователь</string>
|
<string name="anonymous_user">Анонимный пользователь</string>
|
||||||
<string name="osmo_no_connection_msg">Сервис OsMo не доступен:\n- проверьте интернет соединение;\n- проверьте настройки;\n- проверьте наш Twitter: https://twitter.com/OsMomobi</string>
|
<string name="osmo_no_connection_msg">Сервис OsMo не доступен:\n- проверьте интернет соединение;\n- проверьте настройки;\n- проверьте наш Twitter: https://twitter.com/OsMomobi</string>
|
||||||
<string name="anonymous_user_hint">Анонимному пользователю недоступно:
|
<string name="anonymous_user_hint">Анонимному пользователю недоступно:\n- создание групп;\n- синхронизация групп и устройств с сервером;\n- управление группами и устройствами в личном кабинете.</string>
|
||||||
- создание групп;
|
|
||||||
- синхронизация групп и устройств с сервером;
|
|
||||||
- управление группами и устройствами в личном кабинете.</string>
|
|
||||||
<string name="logged_as">Вы вошли как %1$s</string>
|
<string name="logged_as">Вы вошли как %1$s</string>
|
||||||
<string name="rendering_category_routes">Маршруты</string>
|
<string name="rendering_category_routes">Маршруты</string>
|
||||||
<string name="rendering_category_details">Подробности</string>
|
<string name="rendering_category_details">Подробности</string>
|
||||||
|
@ -1534,7 +1444,7 @@ OsmAnd+ оплаченная версия программы, означает,
|
||||||
<string name="map_widget_appearance_rem">Остальное</string>
|
<string name="map_widget_appearance_rem">Остальное</string>
|
||||||
<string name="map_widget_right">Правая панель</string>
|
<string name="map_widget_right">Правая панель</string>
|
||||||
<string name="map_widget_left">Левая панель</string>
|
<string name="map_widget_left">Левая панель</string>
|
||||||
<string name="search_radius_proximity">В пределах</string>
|
<string name="search_radius_proximity">Поблизости от</string>
|
||||||
<string name="map_widget_top">Верхняя панель</string>
|
<string name="map_widget_top">Верхняя панель</string>
|
||||||
<string name="rendering_attr_trainLightrailRoutes_name">Маршруты поездов</string>
|
<string name="rendering_attr_trainLightrailRoutes_name">Маршруты поездов</string>
|
||||||
<string name="rendering_attr_tramRoutes_name">Маршруты трамваев</string>
|
<string name="rendering_attr_tramRoutes_name">Маршруты трамваев</string>
|
||||||
|
@ -1577,8 +1487,8 @@ OsmAnd+ оплаченная версия программы, означает,
|
||||||
<string name="rendering_value_americanRoadAtlas_name">Атлас дорог Америки</string>
|
<string name="rendering_value_americanRoadAtlas_name">Атлас дорог Америки</string>
|
||||||
<string name="routing_attr_no_new_routing_name">Не использовать маршрутизацию версии 1.9</string>
|
<string name="routing_attr_no_new_routing_name">Не использовать маршрутизацию версии 1.9</string>
|
||||||
<string name="routing_attr_no_new_routing_description">Не использовать для построение маршрута алгоритм представленный в версии 1.9</string>
|
<string name="routing_attr_no_new_routing_description">Не использовать для построение маршрута алгоритм представленный в версии 1.9</string>
|
||||||
<string name="show_railway_warnings">Ж/д переезды</string>
|
<string name="show_railway_warnings">Показывать ж/д переезды</string>
|
||||||
<string name="show_pedestrian_warnings">Пешеходные переходы</string>
|
<string name="show_pedestrian_warnings">Показывать пешеходные переходы</string>
|
||||||
<string name="traffic_warning_railways">Железнодорожный переезд</string>
|
<string name="traffic_warning_railways">Железнодорожный переезд</string>
|
||||||
<string name="traffic_warning_pedestrian">Пешеходный переход</string>
|
<string name="traffic_warning_pedestrian">Пешеходный переход</string>
|
||||||
<string name="speak_pedestrian">Пешеходные переходы</string>
|
<string name="speak_pedestrian">Пешеходные переходы</string>
|
||||||
|
@ -1708,11 +1618,7 @@ OsmAnd+ оплаченная версия программы, означает,
|
||||||
\n\nСпециальная дополнительная карта для OsmAnd добавляет морские навигационные и условные знаки как для внутренней, так и для прибрежной навигации. Описание навигационных отметок содержит информацию, необходимую для их идентификации, а также их характеристики (категория, форма, цвет, последовательность мерцания огней и т.д.).\n\nЧтобы вернуться к одному из традиционных стилей карт в OsmAnd, просто деактивируйте этот плагин или измените на желаемый \"Стиль карты\" в разделе \"Настройка карты\". "</string>
|
\n\nСпециальная дополнительная карта для OsmAnd добавляет морские навигационные и условные знаки как для внутренней, так и для прибрежной навигации. Описание навигационных отметок содержит информацию, необходимую для их идентификации, а также их характеристики (категория, форма, цвет, последовательность мерцания огней и т.д.).\n\nЧтобы вернуться к одному из традиционных стилей карт в OsmAnd, просто деактивируйте этот плагин или измените на желаемый \"Стиль карты\" в разделе \"Настройка карты\". "</string>
|
||||||
<string name="local_osm_changes_upload_all_confirm">Вы собираетесь загрузить %1$d изменений OSM. Вы уверены?</string>
|
<string name="local_osm_changes_upload_all_confirm">Вы собираетесь загрузить %1$d изменений OSM. Вы уверены?</string>
|
||||||
<string name="confirmation_to_clear_history">Вы хотите очистить историю?</string>
|
<string name="confirmation_to_clear_history">Вы хотите очистить историю?</string>
|
||||||
<string name="plugin_ski_descr">"Плагин обеспечивает вам доступ к данным о горнолыжных трассах, маршрутах для беговых лыж, альпийских спусках, фуникулерах и горнолыжных подъемниках. Маршруты и спуски отмечены разными цветами в зависимости от их сложности и изображены с использованием специального \"зимнего\" стиля карты, который заключается в том, что используются \"снежные\" цвета зимнего пейзажа.
|
<string name="plugin_ski_descr">"Плагин обеспечивает вам доступ к данным о горнолыжных трассах, маршрутах для беговых лыж, альпийских спусках, фуникулерах и горнолыжных подъемниках. Маршруты и спуски отмечены разными цветами в зависимости от их сложности и изображены с использованием специального \"зимнего\" стиля карты, который заключается в том, что используются \"снежные\" цвета зимнего пейзажа.\n\nВ случае активации этого вида, стиль карты меняется на \"Winter and ski\", показывая все детали пейзажа так, как они выглядят зимой. Такой (зимний) вид может быть отменен либо путем деактивации здесь, либо если вы поменяете \"Стиль карты\" в меню \"Настройка карты\" на желаемый вид. "</string>
|
||||||
|
|
||||||
|
|
||||||
В случае активации этого вида, стиль карты меняется на \"Winter and ski\", показывая все детали пейзажа так, как они выглядят зимой. Такой (зимний) вид может быть отменен либо деактивирован здесь, либо если вы поменяете \"Стиль карты\" в меню \"Настройка карты\" на желаемый вид.
|
|
||||||
"</string>
|
|
||||||
<string name="osmo_grop_name_length_alert">Имя группы должно быть минимум 3 символа!</string>
|
<string name="osmo_grop_name_length_alert">Имя группы должно быть минимум 3 символа!</string>
|
||||||
<string name="current_route">Текущий маршрут</string>
|
<string name="current_route">Текущий маршрут</string>
|
||||||
<string name="welmode_download_maps">Скачать карты</string>
|
<string name="welmode_download_maps">Скачать карты</string>
|
||||||
|
@ -1774,7 +1680,7 @@ OsmAnd+ оплаченная версия программы, означает,
|
||||||
<string name="disable_recording_once_app_killed_descrp">При завершении приложения (через последние приложения) запись GPX будет поставлена на паузу. (Из панели уведомлений Android исчезнет значок фонового режима.)</string>
|
<string name="disable_recording_once_app_killed_descrp">При завершении приложения (через последние приложения) запись GPX будет поставлена на паузу. (Из панели уведомлений Android исчезнет значок фонового режима.)</string>
|
||||||
<string name="download_wikipedia_files">Хотите загрузить дополнительные данные Википедии (%1$s Мб) ?</string>
|
<string name="download_wikipedia_files">Хотите загрузить дополнительные данные Википедии (%1$s Мб) ?</string>
|
||||||
<string name="lang_es_ar">Испанский (аргентинский)</string>
|
<string name="lang_es_ar">Испанский (аргентинский)</string>
|
||||||
<string name="lang_nb">Норвежский (Bokmål)</string>
|
<string name="lang_nb">Норвежский букмол</string>
|
||||||
<string name="lang_vo">Волапюк</string>
|
<string name="lang_vo">Волапюк</string>
|
||||||
<string name="lang_th">Тайский</string>
|
<string name="lang_th">Тайский</string>
|
||||||
<string name="lang_te">Телугу</string>
|
<string name="lang_te">Телугу</string>
|
||||||
|
@ -1922,7 +1828,7 @@ OsmAnd+ оплаченная версия программы, означает,
|
||||||
<string name="share_geo">гео:</string>
|
<string name="share_geo">гео:</string>
|
||||||
<string name="share_menu_location">Поделиться местоположением</string>
|
<string name="share_menu_location">Поделиться местоположением</string>
|
||||||
<string name="shared_string_send">Отправить</string>
|
<string name="shared_string_send">Отправить</string>
|
||||||
<string name="application_dir_description">Выберите, где вы хотите сохранить файлы карт.</string>
|
<string name="application_dir_description">Выберите где вы хотите хранить файлы карт и другие данные</string>
|
||||||
<string name="show_on_start_description">\"Отключено\" непосредственно запускает экран карты</string>
|
<string name="show_on_start_description">\"Отключено\" непосредственно запускает экран карты</string>
|
||||||
<string name="map_downloaded">Карта загружена</string>
|
<string name="map_downloaded">Карта загружена</string>
|
||||||
<string name="shared_string_qr_code">QR-код</string>
|
<string name="shared_string_qr_code">QR-код</string>
|
||||||
|
@ -2014,8 +1920,8 @@ OsmAnd+ оплаченная версия программы, означает,
|
||||||
<string name="clear_updates_proposition_message">Загруженные обновления можно удалить и вернуться к первоначальной редакции карты</string>
|
<string name="clear_updates_proposition_message">Загруженные обновления можно удалить и вернуться к первоначальной редакции карты</string>
|
||||||
<string name="add_time_span">Добавить временной интервал</string>
|
<string name="add_time_span">Добавить временной интервал</string>
|
||||||
<string name="road_blocked">Дорога перекрыта</string>
|
<string name="road_blocked">Дорога перекрыта</string>
|
||||||
<string name="nm">км</string>
|
<string name="nm">нм</string>
|
||||||
<string name="nm_h">км/ч</string>
|
<string name="nm_h">нм/ч</string>
|
||||||
<string name="downloads_left_template">Осталось %1$s загрузок</string>
|
<string name="downloads_left_template">Осталось %1$s загрузок</string>
|
||||||
<string name="donations">Пожертвования</string>
|
<string name="donations">Пожертвования</string>
|
||||||
<string name="osm_live_subscribe_btn">Подписаться</string>
|
<string name="osm_live_subscribe_btn">Подписаться</string>
|
||||||
|
@ -2027,9 +1933,7 @@ OsmAnd+ оплаченная версия программы, означает,
|
||||||
<string name="osm_live_subscription_settings">Параметры подписки</string>
|
<string name="osm_live_subscription_settings">Параметры подписки</string>
|
||||||
<string name="osm_live_ask_for_purchase">Пожалуйста сначала приобретите подписку OSM Live</string>
|
<string name="osm_live_ask_for_purchase">Пожалуйста сначала приобретите подписку OSM Live</string>
|
||||||
|
|
||||||
<string name="osm_live_header">Эта подписка позволяет получать ежечасное обновление для всех карт мира.
|
<string name="osm_live_header">Эта подписка позволяет получать ежечасное обновление для всех карт мира. Основная часть доходов переводится в OSM сообщество и выплачивается за каждого взноса OSM. В случае, если вы любите OsmAnd и OSM и хотите поддержать его, это идеальный способ сделать это.</string>
|
||||||
Основная часть доходов переводится в OSM сообщество и выплачивается за каждого взноса OSM.
|
|
||||||
В случае, если вы любите OsmAnd и OSM и хотите поддержать его, это идеальный способ сделать это.</string>
|
|
||||||
|
|
||||||
<string name="select_map_marker">Выберите маркер</string>
|
<string name="select_map_marker">Выберите маркер</string>
|
||||||
<string name="map_markers_other">Другие маркеры</string>
|
<string name="map_markers_other">Другие маркеры</string>
|
||||||
|
@ -2061,36 +1965,17 @@ OsmAnd+ оплаченная версия программы, означает,
|
||||||
<string name="osm_live_active">Активные</string>
|
<string name="osm_live_active">Активные</string>
|
||||||
<string name="osm_live_not_active">Неактивные</string>
|
<string name="osm_live_not_active">Неактивные</string>
|
||||||
<string name="osm_live_region_desc">Часть вашего пожертвования будет направляться пользователям OpenStreetMap внесшим изменения в карту этого региона</string>
|
<string name="osm_live_region_desc">Часть вашего пожертвования будет направляться пользователям OpenStreetMap внесшим изменения в карту этого региона</string>
|
||||||
<string name="download_files_error_not_enough_space">Недостаточно места!
|
<string name="download_files_error_not_enough_space">Недостаточно места! Необходимо {3} Мб временно и {1} Мб на постоянной основе. В настоящее время доступно только {2} Мб свободного места.</string>
|
||||||
Необходимо {3} Мб временно и {1} Мб на постоянной основе.
|
<string name="upload_osm_note_description">Вы можете загрузить вашу OSM заметку анонимно, или используя свой профиль OpenStreetMap.org</string>
|
||||||
В настоящее время доступно только {2} Мб свободного места.</string>
|
|
||||||
<string name="upload_osm_note_description">Вы можете загрузить вашу OSM заметку анонимно, или используя свой профиль OpenStreetMap.org.</string>
|
|
||||||
<string name="upload_osm_note">Загрузить OSM заметку</string>
|
<string name="upload_osm_note">Загрузить OSM заметку</string>
|
||||||
<string name="use_drawer_btn">Использовать меню</string>
|
<string name="use_drawer_btn">Использовать меню</string>
|
||||||
<string name="use_dashboard_btn">Использовать приборную панель</string>
|
<string name="use_dashboard_btn">Использовать домашнюю страницу</string>
|
||||||
<string name="dashboard_or_drawer_title">Приборная панель и меню управления</string>
|
<string name="dashboard_or_drawer_title">Домашняя страница или меню</string>
|
||||||
<string name="live_update">Постоянное обновление</string>
|
<string name="live_update">Автообновление</string>
|
||||||
<string name="updates_size">Размер обновления</string>
|
<string name="updates_size">Размер обновления</string>
|
||||||
<string name="reports_for">Отчет для</string>
|
<string name="reports_for">Отчет для</string>
|
||||||
<string name="storage_permission_restart_is_required">Приложение получило разрешение на запись во внешнее хранилище. Требуется перезагрузка приложения.</string>
|
<string name="storage_permission_restart_is_required">Приложение получило разрешение на запись во внешнее хранилище. Требуется перезагрузка приложения.</string>
|
||||||
<string name="release_2_3">"
|
<string name="release_2_3">" • OSM Live. Поддержка авторов и разработчиков карт и получение почасовых обновлений карты.\n\n• Маркеры. Новый способ для быстрого выбора мест на карте.\n\n• Более подробные OSM карты со специфическими дорожными знаками стран и с большим количеством новых функций.\n\n• Улучшен внешний вид и подготовка маршрута.\n\n• Множество улучшений в контекстном меню карты таких как поиск адреса.\n\nИ многое другое... "</string>
|
||||||
• OSM Live. Поддержка авторов и разработчиков карт и получение почасовых обновлений карты.
|
|
||||||
|
|
||||||
|
|
||||||
• Маркеры. Новый способ для быстрого выбора мест на карте.
|
|
||||||
|
|
||||||
|
|
||||||
• Более подробные OSM карты со специфическими дорожными знаками стран и с большим количеством новых функций.
|
|
||||||
|
|
||||||
|
|
||||||
• Улучшен внешний вид и подготовка маршрута.
|
|
||||||
|
|
||||||
|
|
||||||
• Множество улучшений в контекстном меню карты таких как поиск адреса.
|
|
||||||
|
|
||||||
|
|
||||||
И многое другое...
|
|
||||||
"</string>
|
|
||||||
<string name="report">Отчёт</string>
|
<string name="report">Отчёт</string>
|
||||||
<string name="shared_string_move_up">Переместить вверх</string>
|
<string name="shared_string_move_up">Переместить вверх</string>
|
||||||
<string name="shared_string_move_down">Переместить вниз</string>
|
<string name="shared_string_move_down">Переместить вниз</string>
|
||||||
|
@ -2172,7 +2057,7 @@ OsmAnd+ оплаченная версия программы, означает,
|
||||||
</string>
|
</string>
|
||||||
<string name="rendering_attr_hideOverground_name">Надземные объекты</string>
|
<string name="rendering_attr_hideOverground_name">Надземные объекты</string>
|
||||||
|
|
||||||
<string name="no_update_info_desc">Не проверять информацию о новых версиях и скидках от OsmAnd</string>
|
<string name="no_update_info_desc">Не проверять информацию о новых версиях и скидках от OsmAnd</string>
|
||||||
<string name="no_update_info">Не показывать обновления</string>
|
<string name="no_update_info">Не показывать обновления</string>
|
||||||
<string name="update_all_maps_now">Вы хотите обновить все карты сейчас?</string>
|
<string name="update_all_maps_now">Вы хотите обновить все карты сейчас?</string>
|
||||||
<string name="clear_tile_data">Очистить всю плитку</string>
|
<string name="clear_tile_data">Очистить всю плитку</string>
|
||||||
|
@ -2184,105 +2069,7 @@ OsmAnd+ оплаченная версия программы, означает,
|
||||||
<string name="shared_string_from">из</string>
|
<string name="shared_string_from">из</string>
|
||||||
<string name="follow_us">Подписывайтесь на нас</string>
|
<string name="follow_us">Подписывайтесь на нас</string>
|
||||||
<string name="osm_live_email_desc">Она нужна нам, чтобы предоставить вам информацию о взносах</string>
|
<string name="osm_live_email_desc">Она нужна нам, чтобы предоставить вам информацию о взносах</string>
|
||||||
<string name="download_files_question_space_with_temp">Действительно загрузить {0} файл (ов)?
|
<string name="download_files_question_space_with_temp">Действительно загрузить {0} файл (ов)? Для этого необходимо {3} Мб временно и {1} Мб на постоянной основе. В настоящее время существует {2} Мб свободного места.</string>
|
||||||
Для этого необходимо {3} MB временно и {1} МБ на постоянной основе.
|
|
||||||
В настоящее время существует {2} МБ свободного места.</string>
|
|
||||||
<string name="select_voice_provider">Выбор голосовых подсказок</string>
|
|
||||||
<string name="release_2_2">"
|
|
||||||
• Новая контекстно-зависимая пользовательский интерфейс для отведения места на карте и на других экранах
|
|
||||||
|
|
||||||
|
|
||||||
• Экран карты теперь запускается непосредственно, если выбрано \"Показать приборной панели на старте приложения \'
|
|
||||||
|
|
||||||
|
|
||||||
•Настройка, которая и как карты отображаются на приборной панели
|
|
||||||
|
|
||||||
|
|
||||||
• Обход приборной панели, если Вам нравится меню управления на основе приложений
|
|
||||||
|
|
||||||
|
|
||||||
• Для загрузки карты региона можно выбрать непосредственно, нажав на карту мира
|
|
||||||
|
|
||||||
|
|
||||||
• POI поиск теперь поддерживает более конкретные запросы
|
|
||||||
|
|
||||||
|
|
||||||
• Улучшение POI и OSM функции редактирования
|
|
||||||
|
|
||||||
|
|
||||||
• Карта загрузки структуры данных и интерфейс переработан
|
|
||||||
|
|
||||||
|
|
||||||
и многое другое…
|
|
||||||
"</string>
|
|
||||||
<string name="av_locations_descr">Файл GPX с примечанием местоположения</string>
|
|
||||||
<string name="lang_ast">Астурийский</string>
|
|
||||||
<string name="lang_hsb">Лужицкий (Верхний)</string>
|
|
||||||
<string name="plugin_touringview_descr">"Активация этой точки зрения изменения стиля карты OsmAnd до уровня «зрения Touring», это особый вид высокой детали для путешественников и профессиональных водителей.
|
|
||||||
|
|
||||||
|
|
||||||
Эта точка зрения обеспечивает, в любой момент масштабирования карты, максимальное количество деталей, имеющихся в туристических картографических данных (в частности, дороги, дорожки и ориентация знаков).
|
|
||||||
|
|
||||||
|
|
||||||
Он также четко изображает все типы дорог однозначно цветовым кодированием, что полезно, когда, например, вождение транспортных средств большой вместимости.
|
|
||||||
|
|
||||||
|
|
||||||
И это предоставляет специальные варианты, как туристические, показывающий велосипедные маршруты или альпийские горные маршруты.
|
|
||||||
|
|
||||||
|
|
||||||
Специальная карта загрузки не требуется, вид создается из наших стандартных карт.
|
|
||||||
|
|
||||||
|
|
||||||
Эта точка зрения может быть отменена либо деактивирована его снова здесь, или путем изменения \"стиль карты\" в разделе \"Настройка карты\" по желанию.
|
|
||||||
"</string>
|
|
||||||
<string name="lang_be_BY">Беларуский (Лат)</string>
|
|
||||||
<string name="osmand_plus_extended_description_4000_chars_v2">"
|
|
||||||
OsmAnd Карты и навигация - найти местонахождение на карте и вычислять маршруты без подключения к Интернету. Скачать карту страны, прежде чем отправиться в путешествие, чтобы найти места и маршруты в незнакомой местности.
|
|
||||||
|
|
||||||
Основные возможности:
|
|
||||||
• Подробные карты 200 стран
|
|
||||||
• Оффлайн навигатор с голосовыми подсказками
|
|
||||||
• Поиск адреса в автономном режиме
|
|
||||||
• Информация о местах на карте: достопримечательности, кафе, парковок, магазинов
|
|
||||||
• Добавление местоположения в избранное
|
|
||||||
• Вождение, езда на велосипеде и пешеходной навигации
|
|
||||||
|
|
||||||
Дополнительные опции:
|
|
||||||
• Возможность просмотра и записи треков GPX
|
|
||||||
• Википедия описание POI
|
|
||||||
• Добавление фото, аудио и видео заметки на карте
|
|
||||||
• День и Ночь карты режимов для более удобного вождения
|
|
||||||
• Информация о транспортных маршрутах общественного пользования и остановок
|
|
||||||
• Велосипедные дорожки и пешеходные дорожки
|
|
||||||
• Прогулочные тропы для туризма по всему миру
|
|
||||||
• Интернет карты из многочисленных источников
|
|
||||||
• Информация о качестве дорожного покрытия и уличного освещения
|
|
||||||
• Добавление, редактирование и удаление POI (для пользователей OpenStreetMap.org)
|
|
||||||
• OsMo - мониторинг в реальном времени других устройств
|
|
||||||
|
|
||||||
Получить надежную навигатор в вашей стране - будь то Франция, Германия, Мексика, Великобритания, Испания, Нидерланды, США, Россия, Бразилия или любое другое государство.
|
|
||||||
|
|
||||||
Плагины:
|
|
||||||
• Контурные карты и рельеф местности затенение https://goo.gl/7mojP8
|
|
||||||
Контурные линии данных и визуализации рельефа добавлены к основной карте Османд.
|
|
||||||
|
|
||||||
• Лыжные карты 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="search_my_location">Определить моё местоположение</string>
|
<string name="search_my_location">Определить моё местоположение</string>
|
||||||
<string name="first_usage_greeting">Прокладывайте маршруты и открывайте новые для себя места без подключения к интернету</string>
|
<string name="first_usage_greeting">Прокладывайте маршруты и открывайте новые для себя места без подключения к интернету</string>
|
||||||
<string name="allow_access_location">Разрешить доступ к местоположению</string>
|
<string name="allow_access_location">Разрешить доступ к местоположению</string>
|
||||||
|
@ -2300,4 +2087,4 @@ Facebook: https://www.facebook.com/osmandapp
|
||||||
<string name="skip_map_downloading_desc">У вас нет загруженных карт. Вы можете выбрать карту из списка или загрузить её позже с помощью меню - %1$s.</string>
|
<string name="skip_map_downloading_desc">У вас нет загруженных карт. Вы можете выбрать карту из списка или загрузить её позже с помощью меню - %1$s.</string>
|
||||||
|
|
||||||
<string name="si_mi_meters">Мили/метры</string>
|
<string name="si_mi_meters">Мили/метры</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -9,7 +9,10 @@
|
||||||
3. All your modified/created strings are in the top of the file (to make easier find what\'s translated).
|
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
|
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="get_for">Get for %1$s</string>
|
||||||
|
<string name="get_for_month">Get for %1$s month</string>
|
||||||
|
<string name="osm_live_banner_desc">Get unlimited map downloads and updates more than once a month: hourly, daily or weekly.</string>
|
||||||
|
<string name="osmand_plus_banner_desc">Full version of OsmAnd with unlimited map downloads and monthly map updates.</string>
|
||||||
<string name="si_mi_meters">Miles/meters</string>
|
<string name="si_mi_meters">Miles/meters</string>
|
||||||
<string name="skip_map_downloading">Skip downloading maps</string>
|
<string name="skip_map_downloading">Skip downloading maps</string>
|
||||||
<string name="skip_map_downloading_desc">You have no offline map installed. You may choose a map from the list or download maps later via Menu - %1$s.</string>
|
<string name="skip_map_downloading_desc">You have no offline map installed. You may choose a map from the list or download maps later via Menu - %1$s.</string>
|
||||||
|
|
|
@ -13,16 +13,19 @@ import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.support.annotation.UiThread;
|
import android.support.annotation.UiThread;
|
||||||
import android.support.v4.app.ActivityCompat;
|
import android.support.v4.app.ActivityCompat;
|
||||||
|
import android.support.v4.app.ActivityCompat.OnRequestPermissionsResultCallback;
|
||||||
import android.support.v4.app.DialogFragment;
|
import android.support.v4.app.DialogFragment;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
import android.support.v4.app.FragmentActivity;
|
import android.support.v4.app.FragmentActivity;
|
||||||
import android.support.v4.content.ContextCompat;
|
import android.support.v4.content.ContextCompat;
|
||||||
import android.support.v4.view.ViewPager;
|
import android.support.v4.view.ViewPager;
|
||||||
import android.support.v4.widget.Space;
|
import android.support.v4.widget.Space;
|
||||||
|
import android.support.v7.widget.AppCompatButton;
|
||||||
import android.text.method.LinkMovementMethod;
|
import android.text.method.LinkMovementMethod;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.view.View.OnClickListener;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.ImageButton;
|
import android.widget.ImageButton;
|
||||||
|
@ -38,12 +41,9 @@ import net.osmand.access.AccessibilityAssistant;
|
||||||
import net.osmand.data.LatLon;
|
import net.osmand.data.LatLon;
|
||||||
import net.osmand.data.PointDescription;
|
import net.osmand.data.PointDescription;
|
||||||
import net.osmand.map.WorldRegion;
|
import net.osmand.map.WorldRegion;
|
||||||
import net.osmand.map.WorldRegion.RegionParams;
|
|
||||||
import net.osmand.plus.OsmandApplication;
|
import net.osmand.plus.OsmandApplication;
|
||||||
import net.osmand.plus.OsmandPlugin;
|
import net.osmand.plus.OsmandPlugin;
|
||||||
import net.osmand.plus.OsmandSettings;
|
import net.osmand.plus.OsmandSettings;
|
||||||
import net.osmand.plus.OsmandSettings.DrivingRegion;
|
|
||||||
import net.osmand.plus.OsmandSettings.MetricsConstants;
|
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
import net.osmand.plus.Version;
|
import net.osmand.plus.Version;
|
||||||
import net.osmand.plus.activities.LocalIndexInfo;
|
import net.osmand.plus.activities.LocalIndexInfo;
|
||||||
|
@ -57,6 +57,9 @@ import net.osmand.plus.download.ui.DataStoragePlaceDialogFragment;
|
||||||
import net.osmand.plus.download.ui.DownloadResourceGroupFragment;
|
import net.osmand.plus.download.ui.DownloadResourceGroupFragment;
|
||||||
import net.osmand.plus.download.ui.LocalIndexesFragment;
|
import net.osmand.plus.download.ui.LocalIndexesFragment;
|
||||||
import net.osmand.plus.download.ui.UpdatesIndexFragment;
|
import net.osmand.plus.download.ui.UpdatesIndexFragment;
|
||||||
|
import net.osmand.plus.inapp.InAppHelper;
|
||||||
|
import net.osmand.plus.inapp.InAppHelper.InAppListener;
|
||||||
|
import net.osmand.plus.liveupdates.OsmLiveActivity;
|
||||||
import net.osmand.plus.openseamapsplugin.NauticalMapsPlugin;
|
import net.osmand.plus.openseamapsplugin.NauticalMapsPlugin;
|
||||||
import net.osmand.plus.srtmplugin.SRTMPlugin;
|
import net.osmand.plus.srtmplugin.SRTMPlugin;
|
||||||
import net.osmand.plus.views.controls.PagerSlidingTabStrip;
|
import net.osmand.plus.views.controls.PagerSlidingTabStrip;
|
||||||
|
@ -76,7 +79,7 @@ import java.util.Timer;
|
||||||
import java.util.TimerTask;
|
import java.util.TimerTask;
|
||||||
|
|
||||||
public class DownloadActivity extends AbstractDownloadActivity implements DownloadEvents,
|
public class DownloadActivity extends AbstractDownloadActivity implements DownloadEvents,
|
||||||
ActivityCompat.OnRequestPermissionsResultCallback {
|
OnRequestPermissionsResultCallback, InAppListener {
|
||||||
private static final Log LOG = PlatformUtil.getLog(DownloadActivity.class);
|
private static final Log LOG = PlatformUtil.getLog(DownloadActivity.class);
|
||||||
|
|
||||||
public static final int UPDATES_TAB_NUMBER = 2;
|
public static final int UPDATES_TAB_NUMBER = 2;
|
||||||
|
@ -110,6 +113,7 @@ public class DownloadActivity extends AbstractDownloadActivity implements Downlo
|
||||||
private DownloadIndexesThread downloadThread;
|
private DownloadIndexesThread downloadThread;
|
||||||
protected WorldRegion downloadItem;
|
protected WorldRegion downloadItem;
|
||||||
protected String downloadTargetFileName;
|
protected String downloadTargetFileName;
|
||||||
|
private InAppHelper inAppHelper;
|
||||||
|
|
||||||
private boolean srtmDisabled;
|
private boolean srtmDisabled;
|
||||||
private boolean srtmNeedsInstallation;
|
private boolean srtmNeedsInstallation;
|
||||||
|
@ -163,6 +167,14 @@ public class DownloadActivity extends AbstractDownloadActivity implements Downlo
|
||||||
viewPager.setCurrentItem(currentTab);
|
viewPager.setCurrentItem(currentTab);
|
||||||
visibleBanner = new BannerAndDownloadFreeVersion(findViewById(R.id.mainLayout), this, true);
|
visibleBanner = new BannerAndDownloadFreeVersion(findViewById(R.id.mainLayout), this, true);
|
||||||
|
|
||||||
|
if (Version.isFreeVersion(getMyApplication()) &&
|
||||||
|
(!getMyApplication().getSettings().LIVE_UPDATES_PURCHASED.get() || Version.isDeveloperVersion(getMyApplication()))) {
|
||||||
|
inAppHelper = new InAppHelper(getMyApplication(), true);
|
||||||
|
inAppHelper.addListener(this);
|
||||||
|
visibleBanner.setUpdatingPrices(true);
|
||||||
|
inAppHelper.start(true);
|
||||||
|
}
|
||||||
|
|
||||||
final Intent intent = getIntent();
|
final Intent intent = getIntent();
|
||||||
if (intent != null && intent.getExtras() != null) {
|
if (intent != null && intent.getExtras() != null) {
|
||||||
filter = intent.getExtras().getString(FILTER_KEY);
|
filter = intent.getExtras().getString(FILTER_KEY);
|
||||||
|
@ -172,6 +184,14 @@ public class DownloadActivity extends AbstractDownloadActivity implements Downlo
|
||||||
showFirstTimeExternalStorage();
|
showFirstTimeExternalStorage();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDestroy() {
|
||||||
|
super.onDestroy();
|
||||||
|
if (inAppHelper != null) {
|
||||||
|
inAppHelper.removeListener(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public DownloadIndexesThread getDownloadThread() {
|
public DownloadIndexesThread getDownloadThread() {
|
||||||
return downloadThread;
|
return downloadThread;
|
||||||
}
|
}
|
||||||
|
@ -247,6 +267,29 @@ public class DownloadActivity extends AbstractDownloadActivity implements Downlo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(String error) {
|
||||||
|
visibleBanner.setUpdatingPrices(false);
|
||||||
|
visibleBanner.updateFreeVersionBanner();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onGetItems() {
|
||||||
|
visibleBanner.setUpdatingPrices(false);
|
||||||
|
visibleBanner.updateFreeVersionBanner();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onItemPurchased(String sku) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void showProgress() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void dismissProgress() {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@UiThread
|
@UiThread
|
||||||
|
@ -287,18 +330,20 @@ public class DownloadActivity extends AbstractDownloadActivity implements Downlo
|
||||||
fragment.show(activity.getSupportFragmentManager(), "dialog");
|
fragment.show(activity.getSupportFragmentManager(), "dialog");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class ToggleCollapseFreeVersionBanner implements View.OnClickListener {
|
private static class ToggleCollapseFreeVersionBanner implements OnClickListener {
|
||||||
private final View freeVersionDescriptionTextView;
|
private final View freeVersionDescriptionTextView;
|
||||||
private final View buttonsLinearLayout;
|
private final View buttonsLinearLayout;
|
||||||
private final View freeVersionTitle;
|
private final View freeVersionTitle;
|
||||||
|
private final View priceInfoLayout;
|
||||||
private final OsmandSettings settings;
|
private final OsmandSettings settings;
|
||||||
|
|
||||||
private ToggleCollapseFreeVersionBanner(View freeVersionDescriptionTextView,
|
private ToggleCollapseFreeVersionBanner(View freeVersionDescriptionTextView,
|
||||||
View buttonsLinearLayout, View freeVersionTitle,
|
View buttonsLinearLayout, View freeVersionTitle,
|
||||||
OsmandSettings settings) {
|
View priceInfoLayout, OsmandSettings settings) {
|
||||||
this.freeVersionDescriptionTextView = freeVersionDescriptionTextView;
|
this.freeVersionDescriptionTextView = freeVersionDescriptionTextView;
|
||||||
this.buttonsLinearLayout = buttonsLinearLayout;
|
this.buttonsLinearLayout = buttonsLinearLayout;
|
||||||
this.freeVersionTitle = freeVersionTitle;
|
this.freeVersionTitle = freeVersionTitle;
|
||||||
|
this.priceInfoLayout = priceInfoLayout;
|
||||||
this.settings = settings;
|
this.settings = settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -309,10 +354,12 @@ public class DownloadActivity extends AbstractDownloadActivity implements Downlo
|
||||||
&& isDownlodingPermitted(settings)) {
|
&& isDownlodingPermitted(settings)) {
|
||||||
freeVersionDescriptionTextView.setVisibility(View.GONE);
|
freeVersionDescriptionTextView.setVisibility(View.GONE);
|
||||||
buttonsLinearLayout.setVisibility(View.GONE);
|
buttonsLinearLayout.setVisibility(View.GONE);
|
||||||
|
priceInfoLayout.setVisibility(View.GONE);
|
||||||
} else {
|
} else {
|
||||||
freeVersionDescriptionTextView.setVisibility(View.VISIBLE);
|
freeVersionDescriptionTextView.setVisibility(View.VISIBLE);
|
||||||
buttonsLinearLayout.setVisibility(View.VISIBLE);
|
buttonsLinearLayout.setVisibility(View.VISIBLE);
|
||||||
freeVersionTitle.setVisibility(View.VISIBLE);
|
freeVersionTitle.setVisibility(View.VISIBLE);
|
||||||
|
priceInfoLayout.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -331,15 +378,21 @@ public class DownloadActivity extends AbstractDownloadActivity implements Downlo
|
||||||
private final TextView rightTextView;
|
private final TextView rightTextView;
|
||||||
private final ProgressBar downloadsLeftProgressBar;
|
private final ProgressBar downloadsLeftProgressBar;
|
||||||
private final View buttonsLinearLayout;
|
private final View buttonsLinearLayout;
|
||||||
|
private final View priceInfoLayout;
|
||||||
private final TextView freeVersionDescriptionTextView;
|
private final TextView freeVersionDescriptionTextView;
|
||||||
private final TextView downloadsLeftTextView;
|
private final TextView downloadsLeftTextView;
|
||||||
private final View laterButton;
|
private final View laterButton;
|
||||||
|
private final View fullVersionProgress;
|
||||||
|
private final AppCompatButton fullVersionButton;
|
||||||
|
private final View osmLiveProgress;
|
||||||
|
private final AppCompatButton osmLiveButton;
|
||||||
|
|
||||||
private final DownloadActivity ctx;
|
private final DownloadActivity ctx;
|
||||||
private final OsmandApplication application;
|
private final OsmandApplication application;
|
||||||
private final boolean shouldShowFreeVersionBanner;
|
private final boolean shouldShowFreeVersionBanner;
|
||||||
private final View freeVersionBannerTitle;
|
private final View freeVersionBannerTitle;
|
||||||
private boolean showSpace;
|
private boolean showSpace;
|
||||||
|
private boolean updatingPrices;
|
||||||
|
|
||||||
public BannerAndDownloadFreeVersion(View view, final DownloadActivity ctx, boolean showSpace) {
|
public BannerAndDownloadFreeVersion(View view, final DownloadActivity ctx, boolean showSpace) {
|
||||||
this.ctx = ctx;
|
this.ctx = ctx;
|
||||||
|
@ -353,11 +406,17 @@ public class DownloadActivity extends AbstractDownloadActivity implements Downlo
|
||||||
downloadsLeftTextView = (TextView) freeVersionBanner.findViewById(R.id.downloadsLeftTextView);
|
downloadsLeftTextView = (TextView) freeVersionBanner.findViewById(R.id.downloadsLeftTextView);
|
||||||
downloadsLeftProgressBar = (ProgressBar) freeVersionBanner.findViewById(R.id.downloadsLeftProgressBar);
|
downloadsLeftProgressBar = (ProgressBar) freeVersionBanner.findViewById(R.id.downloadsLeftProgressBar);
|
||||||
buttonsLinearLayout = freeVersionBanner.findViewById(R.id.buttonsLinearLayout);
|
buttonsLinearLayout = freeVersionBanner.findViewById(R.id.buttonsLinearLayout);
|
||||||
|
priceInfoLayout = freeVersionBanner.findViewById(R.id.priceInfoLayout);
|
||||||
freeVersionDescriptionTextView = (TextView) freeVersionBanner
|
freeVersionDescriptionTextView = (TextView) freeVersionBanner
|
||||||
.findViewById(R.id.freeVersionDescriptionTextView);
|
.findViewById(R.id.freeVersionDescriptionTextView);
|
||||||
laterButton = freeVersionBanner.findViewById(R.id.laterButton);
|
laterButton = freeVersionBanner.findViewById(R.id.laterButton);
|
||||||
freeVersionBannerTitle = freeVersionBanner.findViewById(R.id.freeVersionBannerTitle);
|
freeVersionBannerTitle = freeVersionBanner.findViewById(R.id.freeVersionBannerTitle);
|
||||||
|
|
||||||
|
fullVersionProgress = freeVersionBanner.findViewById(R.id.fullVersionProgress);
|
||||||
|
fullVersionButton = (AppCompatButton) freeVersionBanner.findViewById(R.id.fullVersionButton);
|
||||||
|
osmLiveProgress = freeVersionBanner.findViewById(R.id.osmLiveProgress);
|
||||||
|
osmLiveButton = (AppCompatButton) freeVersionBanner.findViewById(R.id.osmLiveButton);
|
||||||
|
|
||||||
shouldShowFreeVersionBanner =
|
shouldShowFreeVersionBanner =
|
||||||
(Version.isFreeVersion(application) && !application.getSettings().LIVE_UPDATES_PURCHASED.get())
|
(Version.isFreeVersion(application) && !application.getSettings().LIVE_UPDATES_PURCHASED.get())
|
||||||
|| application.getSettings().SHOULD_SHOW_FREE_VERSION_BANNER.get();
|
|| application.getSettings().SHOULD_SHOW_FREE_VERSION_BANNER.get();
|
||||||
|
@ -366,6 +425,14 @@ public class DownloadActivity extends AbstractDownloadActivity implements Downlo
|
||||||
updateBannerInProgress();
|
updateBannerInProgress();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isUpdatingPrices() {
|
||||||
|
return updatingPrices;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUpdatingPrices(boolean updatingPrices) {
|
||||||
|
this.updatingPrices = updatingPrices;
|
||||||
|
}
|
||||||
|
|
||||||
public void updateBannerInProgress() {
|
public void updateBannerInProgress() {
|
||||||
BasicProgressAsyncTask<?, ?, ?, ?> basicProgressAsyncTask = ctx.getDownloadThread().getCurrentRunningTask();
|
BasicProgressAsyncTask<?, ?, ?, ?> basicProgressAsyncTask = ctx.getDownloadThread().getCurrentRunningTask();
|
||||||
final boolean isFinished = basicProgressAsyncTask == null
|
final boolean isFinished = basicProgressAsyncTask == null
|
||||||
|
@ -387,7 +454,7 @@ public class DownloadActivity extends AbstractDownloadActivity implements Downlo
|
||||||
|
|
||||||
updateAvailableDownloads();
|
updateAvailableDownloads();
|
||||||
downloadProgressLayout.setVisibility(View.VISIBLE);
|
downloadProgressLayout.setVisibility(View.VISIBLE);
|
||||||
downloadProgressLayout.setOnClickListener(new View.OnClickListener() {
|
downloadProgressLayout.setOnClickListener(new OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
new ActiveDownloadsDialogFragment().show(ctx.getSupportFragmentManager(), "dialog");
|
new ActiveDownloadsDialogFragment().show(ctx.getSupportFragmentManager(), "dialog");
|
||||||
|
@ -423,7 +490,7 @@ public class DownloadActivity extends AbstractDownloadActivity implements Downlo
|
||||||
downloadsLeftProgressBar.setMax(DownloadValidationManager.MAXIMUM_AVAILABLE_FREE_DOWNLOADS);
|
downloadsLeftProgressBar.setMax(DownloadValidationManager.MAXIMUM_AVAILABLE_FREE_DOWNLOADS);
|
||||||
freeVersionDescriptionTextView.setText(ctx.getString(R.string.free_version_message,
|
freeVersionDescriptionTextView.setText(ctx.getString(R.string.free_version_message,
|
||||||
DownloadValidationManager.MAXIMUM_AVAILABLE_FREE_DOWNLOADS));
|
DownloadValidationManager.MAXIMUM_AVAILABLE_FREE_DOWNLOADS));
|
||||||
freeVersionBanner.findViewById(R.id.getFullVersionButton).setOnClickListener(new View.OnClickListener() {
|
fullVersionButton.setOnClickListener(new OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(Version.marketPrefix(
|
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(Version.marketPrefix(
|
||||||
|
@ -435,9 +502,17 @@ public class DownloadActivity extends AbstractDownloadActivity implements Downlo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
osmLiveButton.setOnClickListener(new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
Intent intent = new Intent(ctx, OsmLiveActivity.class);
|
||||||
|
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
|
||||||
|
ctx.startActivity(intent);
|
||||||
|
}
|
||||||
|
});
|
||||||
ToggleCollapseFreeVersionBanner clickListener =
|
ToggleCollapseFreeVersionBanner clickListener =
|
||||||
new ToggleCollapseFreeVersionBanner(freeVersionDescriptionTextView,
|
new ToggleCollapseFreeVersionBanner(freeVersionDescriptionTextView,
|
||||||
buttonsLinearLayout, freeVersionBannerTitle, application.getSettings());
|
buttonsLinearLayout, freeVersionBannerTitle, priceInfoLayout, application.getSettings());
|
||||||
laterButton.setOnClickListener(clickListener);
|
laterButton.setOnClickListener(clickListener);
|
||||||
|
|
||||||
LinearLayout marksLinearLayout = (LinearLayout) freeVersionBanner.findViewById(R.id.marksLinearLayout);
|
LinearLayout marksLinearLayout = (LinearLayout) freeVersionBanner.findViewById(R.id.marksLinearLayout);
|
||||||
|
@ -479,8 +554,27 @@ public class DownloadActivity extends AbstractDownloadActivity implements Downlo
|
||||||
laterButton.setVisibility(View.GONE);
|
laterButton.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
downloadsLeftTextView.setText(ctx.getString(R.string.downloads_left_template, downloadsLeft));
|
downloadsLeftTextView.setText(ctx.getString(R.string.downloads_left_template, downloadsLeft));
|
||||||
freeVersionBanner.setOnClickListener(new ToggleCollapseFreeVersionBanner(freeVersionDescriptionTextView,
|
freeVersionBanner.findViewById(R.id.bannerTopLayout).setOnClickListener(new ToggleCollapseFreeVersionBanner(freeVersionDescriptionTextView,
|
||||||
buttonsLinearLayout, freeVersionBannerTitle, settings));
|
buttonsLinearLayout, freeVersionBannerTitle, priceInfoLayout, settings));
|
||||||
|
|
||||||
|
if (InAppHelper.hasPrices() || !updatingPrices) {
|
||||||
|
if (!InAppHelper.hasPrices()) {
|
||||||
|
fullVersionButton.setText(ctx.getString(R.string.get_for, ctx.getString(R.string.full_version_price)));
|
||||||
|
osmLiveButton.setText(ctx.getString(R.string.get_for_month, ctx.getString(R.string.osm_live_price)));
|
||||||
|
} else {
|
||||||
|
fullVersionButton.setText(ctx.getString(R.string.get_for, InAppHelper.getFullVersionPrice()));
|
||||||
|
osmLiveButton.setText(ctx.getString(R.string.get_for_month, InAppHelper.getLiveUpdatesPrice()));
|
||||||
|
}
|
||||||
|
fullVersionProgress.setVisibility(View.GONE);
|
||||||
|
fullVersionButton.setVisibility(View.VISIBLE);
|
||||||
|
osmLiveProgress.setVisibility(View.GONE);
|
||||||
|
osmLiveButton.setVisibility(View.VISIBLE);
|
||||||
|
} else {
|
||||||
|
fullVersionProgress.setVisibility(View.VISIBLE);
|
||||||
|
fullVersionButton.setVisibility(View.GONE);
|
||||||
|
osmLiveProgress.setVisibility(View.VISIBLE);
|
||||||
|
osmLiveButton.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateAvailableDownloads() {
|
private void updateAvailableDownloads() {
|
||||||
|
@ -495,10 +589,12 @@ public class DownloadActivity extends AbstractDownloadActivity implements Downlo
|
||||||
freeVersionDescriptionTextView.setVisibility(View.GONE);
|
freeVersionDescriptionTextView.setVisibility(View.GONE);
|
||||||
buttonsLinearLayout.setVisibility(View.GONE);
|
buttonsLinearLayout.setVisibility(View.GONE);
|
||||||
freeVersionBannerTitle.setVisibility(View.GONE);
|
freeVersionBannerTitle.setVisibility(View.GONE);
|
||||||
|
priceInfoLayout.setVisibility(View.GONE);
|
||||||
} else {
|
} else {
|
||||||
freeVersionDescriptionTextView.setVisibility(View.VISIBLE);
|
freeVersionDescriptionTextView.setVisibility(View.VISIBLE);
|
||||||
buttonsLinearLayout.setVisibility(View.VISIBLE);
|
buttonsLinearLayout.setVisibility(View.VISIBLE);
|
||||||
freeVersionBannerTitle.setVisibility(View.VISIBLE);
|
freeVersionBannerTitle.setVisibility(View.VISIBLE);
|
||||||
|
priceInfoLayout.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -727,14 +823,14 @@ public class DownloadActivity extends AbstractDownloadActivity implements Downlo
|
||||||
|
|
||||||
final ImageButton closeImageButton = (ImageButton) view.findViewById(R.id.closeImageButton);
|
final ImageButton closeImageButton = (ImageButton) view.findViewById(R.id.closeImageButton);
|
||||||
closeImageButton.setImageDrawable(getContentIcon(R.drawable.ic_action_remove_dark));
|
closeImageButton.setImageDrawable(getContentIcon(R.drawable.ic_action_remove_dark));
|
||||||
closeImageButton.setOnClickListener(new View.OnClickListener() {
|
closeImageButton.setOnClickListener(new OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
dismiss();
|
dismiss();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
actionButtonOk.setOnClickListener(new View.OnClickListener() {
|
actionButtonOk.setOnClickListener(new OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
if (indexItem != null) {
|
if (indexItem != null) {
|
||||||
|
@ -745,7 +841,7 @@ public class DownloadActivity extends AbstractDownloadActivity implements Downlo
|
||||||
});
|
});
|
||||||
|
|
||||||
view.findViewById(R.id.actionButtonCancel)
|
view.findViewById(R.id.actionButtonCancel)
|
||||||
.setOnClickListener(new View.OnClickListener() {
|
.setOnClickListener(new OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
dismiss();
|
dismiss();
|
||||||
|
@ -794,7 +890,7 @@ public class DownloadActivity extends AbstractDownloadActivity implements Downlo
|
||||||
|
|
||||||
final ImageButton closeImageButton = (ImageButton) view.findViewById(R.id.closeImageButton);
|
final ImageButton closeImageButton = (ImageButton) view.findViewById(R.id.closeImageButton);
|
||||||
closeImageButton.setImageDrawable(getContentIcon(R.drawable.ic_action_remove_dark));
|
closeImageButton.setImageDrawable(getContentIcon(R.drawable.ic_action_remove_dark));
|
||||||
closeImageButton.setOnClickListener(new View.OnClickListener() {
|
closeImageButton.setOnClickListener(new OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
if (getActivity() instanceof DownloadActivity) {
|
if (getActivity() instanceof DownloadActivity) {
|
||||||
|
@ -805,7 +901,7 @@ public class DownloadActivity extends AbstractDownloadActivity implements Downlo
|
||||||
});
|
});
|
||||||
|
|
||||||
view.findViewById(R.id.actionButton)
|
view.findViewById(R.id.actionButton)
|
||||||
.setOnClickListener(new View.OnClickListener() {
|
.setOnClickListener(new OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
OsmandApplication app = (OsmandApplication) getActivity().getApplication();
|
OsmandApplication app = (OsmandApplication) getActivity().getApplication();
|
||||||
|
|
|
@ -38,7 +38,9 @@ public class InAppHelper {
|
||||||
private static boolean mSubscribedToLiveUpdates = false;
|
private static boolean mSubscribedToLiveUpdates = false;
|
||||||
private static String mLiveUpdatesPrice;
|
private static String mLiveUpdatesPrice;
|
||||||
private static long lastValidationCheckTime;
|
private static long lastValidationCheckTime;
|
||||||
|
private static String mFullVersionPrice;
|
||||||
|
|
||||||
|
private static final String SKU_FULL_VERSION_PRICE = "osmand_full_version_price";
|
||||||
private static final String SKU_LIVE_UPDATES_FULL = "osm_live_subscription_2";
|
private static final String SKU_LIVE_UPDATES_FULL = "osm_live_subscription_2";
|
||||||
private static final String SKU_LIVE_UPDATES_FREE = "osm_free_live_subscription_2";
|
private static final String SKU_LIVE_UPDATES_FREE = "osm_free_live_subscription_2";
|
||||||
private static String SKU_LIVE_UPDATES;
|
private static String SKU_LIVE_UPDATES;
|
||||||
|
@ -51,6 +53,7 @@ public class InAppHelper {
|
||||||
private IabHelper mHelper;
|
private IabHelper mHelper;
|
||||||
private boolean stopAfterResult = false;
|
private boolean stopAfterResult = false;
|
||||||
private boolean isDeveloperVersion = false;
|
private boolean isDeveloperVersion = false;
|
||||||
|
private boolean forceRequestInventory = false;
|
||||||
private String token = "";
|
private String token = "";
|
||||||
|
|
||||||
private OsmandApplication ctx;
|
private OsmandApplication ctx;
|
||||||
|
@ -80,12 +83,21 @@ public class InAppHelper {
|
||||||
return mLiveUpdatesPrice;
|
return mLiveUpdatesPrice;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getFullVersionPrice() {
|
||||||
|
return mFullVersionPrice;
|
||||||
|
}
|
||||||
|
|
||||||
public static String getSkuLiveUpdates() {
|
public static String getSkuLiveUpdates() {
|
||||||
return SKU_LIVE_UPDATES;
|
return SKU_LIVE_UPDATES;
|
||||||
}
|
}
|
||||||
|
|
||||||
public InAppHelper(OsmandApplication ctx) {
|
public static boolean hasPrices() {
|
||||||
|
return !Algorithms.isEmpty(mLiveUpdatesPrice) && !Algorithms.isEmpty(mFullVersionPrice);
|
||||||
|
}
|
||||||
|
|
||||||
|
public InAppHelper(OsmandApplication ctx, boolean forceRequestInventory) {
|
||||||
this.ctx = ctx;
|
this.ctx = ctx;
|
||||||
|
this.forceRequestInventory = forceRequestInventory;
|
||||||
if (SKU_LIVE_UPDATES == null) {
|
if (SKU_LIVE_UPDATES == null) {
|
||||||
if (Version.isFreeVersion(ctx)) {
|
if (Version.isFreeVersion(ctx)) {
|
||||||
SKU_LIVE_UPDATES = SKU_LIVE_UPDATES_FREE;
|
SKU_LIVE_UPDATES = SKU_LIVE_UPDATES_FREE;
|
||||||
|
@ -148,14 +160,17 @@ public class InAppHelper {
|
||||||
if (mHelper == null) return;
|
if (mHelper == null) return;
|
||||||
|
|
||||||
// IAB is fully set up. Now, let's get an inventory of stuff we own if needed.
|
// IAB is fully set up. Now, let's get an inventory of stuff we own if needed.
|
||||||
if (!isDeveloperVersion &&
|
if (forceRequestInventory || (!isDeveloperVersion &&
|
||||||
(!mSubscribedToLiveUpdates
|
(!mSubscribedToLiveUpdates
|
||||||
|| !ctx.getSettings().BILLING_PURCHASE_TOKEN_SENT.get()
|
|| !ctx.getSettings().BILLING_PURCHASE_TOKEN_SENT.get()
|
||||||
|| System.currentTimeMillis() - lastValidationCheckTime > PURCHASE_VALIDATION_PERIOD_MSEC)) {
|
|| System.currentTimeMillis() - lastValidationCheckTime > PURCHASE_VALIDATION_PERIOD_MSEC))) {
|
||||||
|
|
||||||
logDebug("Setup successful. Querying inventory.");
|
logDebug("Setup successful. Querying inventory.");
|
||||||
List<String> skus = new ArrayList<>();
|
List<String> skus = new ArrayList<>();
|
||||||
skus.add(SKU_LIVE_UPDATES);
|
skus.add(SKU_LIVE_UPDATES);
|
||||||
|
if (forceRequestInventory) {
|
||||||
|
skus.add(SKU_FULL_VERSION_PRICE);
|
||||||
|
}
|
||||||
mHelper.queryInventoryAsync(true, skus, mGotInventoryListener);
|
mHelper.queryInventoryAsync(true, skus, mGotInventoryListener);
|
||||||
} else {
|
} else {
|
||||||
notifyDismissProgress();
|
notifyDismissProgress();
|
||||||
|
@ -195,7 +210,7 @@ public class InAppHelper {
|
||||||
|
|
||||||
// Do we have the live updates?
|
// Do we have the live updates?
|
||||||
Purchase liveUpdatesPurchase = inventory.getPurchase(SKU_LIVE_UPDATES);
|
Purchase liveUpdatesPurchase = inventory.getPurchase(SKU_LIVE_UPDATES);
|
||||||
mSubscribedToLiveUpdates = (liveUpdatesPurchase != null && liveUpdatesPurchase.getPurchaseState() == 0);
|
mSubscribedToLiveUpdates = isDeveloperVersion || (liveUpdatesPurchase != null && liveUpdatesPurchase.getPurchaseState() == 0);
|
||||||
if (mSubscribedToLiveUpdates) {
|
if (mSubscribedToLiveUpdates) {
|
||||||
ctx.getSettings().LIVE_UPDATES_PURCHASED.set(true);
|
ctx.getSettings().LIVE_UPDATES_PURCHASED.set(true);
|
||||||
}
|
}
|
||||||
|
@ -208,8 +223,13 @@ public class InAppHelper {
|
||||||
mLiveUpdatesPrice = liveUpdatesDetails.getPrice();
|
mLiveUpdatesPrice = liveUpdatesDetails.getPrice();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (inventory.hasDetails(SKU_FULL_VERSION_PRICE)) {
|
||||||
|
SkuDetails fullPriceDetails = inventory.getSkuDetails(SKU_FULL_VERSION_PRICE);
|
||||||
|
mFullVersionPrice = fullPriceDetails.getPrice();
|
||||||
|
}
|
||||||
|
|
||||||
boolean needSendToken = false;
|
boolean needSendToken = false;
|
||||||
if (liveUpdatesPurchase != null) {
|
if (!isDeveloperVersion && liveUpdatesPurchase != null) {
|
||||||
OsmandSettings settings = ctx.getSettings();
|
OsmandSettings settings = ctx.getSettings();
|
||||||
if (Algorithms.isEmpty(settings.BILLING_USER_ID.get())
|
if (Algorithms.isEmpty(settings.BILLING_USER_ID.get())
|
||||||
&& !Algorithms.isEmpty(liveUpdatesPurchase.getDeveloperPayload())) {
|
&& !Algorithms.isEmpty(liveUpdatesPurchase.getDeveloperPayload())) {
|
||||||
|
|
|
@ -35,7 +35,7 @@ public class OsmLiveActivity extends AbstractDownloadActivity
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_livie_updates);
|
setContentView(R.layout.activity_livie_updates);
|
||||||
|
|
||||||
inAppHelper = new InAppHelper(getMyApplication());
|
inAppHelper = new InAppHelper(getMyApplication(), false);
|
||||||
if (Version.isDeveloperVersion(getMyApplication())) {
|
if (Version.isDeveloperVersion(getMyApplication())) {
|
||||||
inAppHelper = null;
|
inAppHelper = null;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue