Merge branch 'master' of https://github.com/osmandapp/Osmand
This commit is contained in:
commit
403f927c1c
7 changed files with 90 additions and 9 deletions
|
@ -157,5 +157,14 @@ public class WorldRegion {
|
||||||
subregions.add(rd);
|
subregions.add(rd);
|
||||||
rd.superregion = this;
|
rd.superregion = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getLevel() {
|
||||||
|
int res = 0;
|
||||||
|
WorldRegion parent = superregion;
|
||||||
|
while (parent != null) {
|
||||||
|
parent = parent.superregion;
|
||||||
|
res++;
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -1,4 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8" standalone="no"?><resources>
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<resources>
|
||||||
<string name="osmo_use_https_descr">Использовать безопасное подключение к серверу</string>
|
<string name="osmo_use_https_descr">Использовать безопасное подключение к серверу</string>
|
||||||
<string name="osmo_use_https">Использовать HTTPS</string>
|
<string name="osmo_use_https">Использовать HTTPS</string>
|
||||||
<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>
|
<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>
|
||||||
|
@ -1968,8 +1969,8 @@
|
||||||
<string name="show_free_version_banner_description">Даже если у вас купленная версия вы еще можете увидеть баннер для бесплатной версии</string>
|
<string name="show_free_version_banner_description">Даже если у вас купленная версия вы еще можете увидеть баннер для бесплатной версии</string>
|
||||||
<string name="confirm_download_roadmaps">Вы уверены, что хотите скачать карту автодорог, даже если у вас есть полная карта?</string>
|
<string name="confirm_download_roadmaps">Вы уверены, что хотите скачать карту автодорог, даже если у вас есть полная карта?</string>
|
||||||
<string name="value_downloaded_from_max">%1$.1f из %2$.1f Мб</string>
|
<string name="value_downloaded_from_max">%1$.1f из %2$.1f Мб</string>
|
||||||
<string name="file_size_in_mb">%.1f Мб</string>
|
<string name="file_size_in_mb">%.1f МБ</string>
|
||||||
<string name="update_all">Обновить все (%1$s Мб)</string>
|
<string name="update_all">Обновить все (%1$s МБ)</string>
|
||||||
<string name="free_downloads_used">Использовано бесплатных загрузок</string>
|
<string name="free_downloads_used">Использовано бесплатных загрузок</string>
|
||||||
<string name="free_downloads_used_description">Вы можете посмотреть сколько бесплатных загрузок вы использовали</string>
|
<string name="free_downloads_used_description">Вы можете посмотреть сколько бесплатных загрузок вы использовали</string>
|
||||||
|
|
||||||
|
@ -1977,6 +1978,33 @@
|
||||||
<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>
|
||||||
</resources>
|
<string name="map_downloaded">Карта загружена</string>
|
||||||
|
<string name="shared_string_qr_code">QR-код</string>
|
||||||
|
<string name="go_to_map">Перейти к карте</string>
|
||||||
|
<string name="world_map_download_descr">Базовая карта мира (покрывающая весь мир при малом увеличении) отсутствует или устарела. Пожалуйста, загрузите базовую карту мира для полноты рабочего окружения.</string>
|
||||||
|
<string name="map_downloaded_descr">Карта %1$s загружена. Вернитесь к карте, чтобы начать её использовать.</string>
|
||||||
|
<string name="simulate_initial_startup">Имитировать первый запуск</string>
|
||||||
|
<string name="simulate_initial_startup_descr">Устанавливает признак первого запуска приложения, не изменяет других настроек</string>
|
||||||
|
<string name="poll">Опрос</string>
|
||||||
|
<string name="contact_us">Связаться с нами</string>
|
||||||
|
<string name="versions_item">Версии</string>
|
||||||
|
<string name="techical_articles_item">Технические статьи</string>
|
||||||
|
<string name="instalation_troubleshooting_item">Установка и решение проблем</string>
|
||||||
|
<string name="search_on_the_map_item">Поиск карты</string>
|
||||||
|
<string name="map_viewing_item">Обзор карты</string>
|
||||||
|
<string name="faq_item_description">Как пользоваться плагинами</string>
|
||||||
|
<string name="faq_item">ЧаВо</string>
|
||||||
|
<string name="first_usage_item">Первый запуск</string>
|
||||||
|
<string name="first_usage_item_description">Как загрузить карты, установить основные настройки</string>
|
||||||
|
<string name="navigation_item_description">Настройка навигации</string>
|
||||||
|
<string name="planning_trip_item">Планирование поездки</string>
|
||||||
|
<string name="enter_country_name">Введите название страны</string>
|
||||||
|
<string name="new_version">Новая версия</string>
|
||||||
|
<string name="begin_with_osmand_menu_group">Первые шаги с OsmAnd</string>
|
||||||
|
<string name="features_menu_group">Возможности</string>
|
||||||
|
<string name="help_us_to_improve_menu_group">Помогите улучшить OsmAnd</string>
|
||||||
|
<string name="other_menu_group">Прочее</string>
|
||||||
|
<string name="plugins_menu_group">Плагины</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -17,6 +17,7 @@ import net.osmand.plus.mapcontextmenu.MenuController;
|
||||||
|
|
||||||
public class MapDataMenuController extends MenuController {
|
public class MapDataMenuController extends MenuController {
|
||||||
private WorldRegion region;
|
private WorldRegion region;
|
||||||
|
private String regionName;
|
||||||
|
|
||||||
public MapDataMenuController(OsmandApplication app, MapActivity mapActivity, final BinaryMapDataObject dataObject) {
|
public MapDataMenuController(OsmandApplication app, MapActivity mapActivity, final BinaryMapDataObject dataObject) {
|
||||||
super(new MenuBuilder(app), mapActivity);
|
super(new MenuBuilder(app), mapActivity);
|
||||||
|
@ -24,6 +25,11 @@ public class MapDataMenuController extends MenuController {
|
||||||
String fullName = osmandRegions.getFullName(dataObject);
|
String fullName = osmandRegions.getFullName(dataObject);
|
||||||
final WorldRegion region = osmandRegions.getRegionData(fullName);
|
final WorldRegion region = osmandRegions.getRegionData(fullName);
|
||||||
this.region = region;
|
this.region = region;
|
||||||
|
if (region != null) {
|
||||||
|
regionName = region.getLocaleName();
|
||||||
|
} else {
|
||||||
|
regionName = dataObject.getName();
|
||||||
|
}
|
||||||
titleButtonController = new TitleButtonController() {
|
titleButtonController = new TitleButtonController() {
|
||||||
@Override
|
@Override
|
||||||
public void buttonPressed() {
|
public void buttonPressed() {
|
||||||
|
@ -31,7 +37,7 @@ public class MapDataMenuController extends MenuController {
|
||||||
|
|
||||||
final Intent intent = new Intent(getMapActivity(), getMapActivity().getMyApplication()
|
final Intent intent = new Intent(getMapActivity(), getMapActivity().getMyApplication()
|
||||||
.getAppCustomization().getDownloadIndexActivity());
|
.getAppCustomization().getDownloadIndexActivity());
|
||||||
intent.putExtra(DownloadActivity.FILTER_KEY, region.getLocaleName());
|
intent.putExtra(DownloadActivity.FILTER_KEY, regionName);
|
||||||
intent.putExtra(DownloadActivity.TAB_TO_OPEN, DownloadActivity.DOWNLOAD_TAB);
|
intent.putExtra(DownloadActivity.TAB_TO_OPEN, DownloadActivity.DOWNLOAD_TAB);
|
||||||
getMapActivity().startActivity(intent);
|
getMapActivity().startActivity(intent);
|
||||||
}
|
}
|
||||||
|
@ -57,12 +63,12 @@ public class MapDataMenuController extends MenuController {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getNameStr() {
|
public String getNameStr() {
|
||||||
return region.getLocaleName();
|
return regionName;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getTypeStr() {
|
public String getTypeStr() {
|
||||||
if (region.getSuperregion() != null) {
|
if (region != null && region.getSuperregion() != null) {
|
||||||
return region.getSuperregion().getLocaleName() + "\n";
|
return region.getSuperregion().getLocaleName() + "\n";
|
||||||
} else {
|
} else {
|
||||||
return getMapActivity().getString(R.string.shared_string_map) + "\n";
|
return getMapActivity().getString(R.string.shared_string_map) + "\n";
|
||||||
|
|
|
@ -103,11 +103,14 @@ public class ObjectSelectionMenu extends BaseMenuController {
|
||||||
|
|
||||||
private void createCollection(Map<Object, IContextMenuProvider> selectedObjects) {
|
private void createCollection(Map<Object, IContextMenuProvider> selectedObjects) {
|
||||||
this.selectedObjects.putAll(selectedObjects);
|
this.selectedObjects.putAll(selectedObjects);
|
||||||
|
int order = Integer.MAX_VALUE;
|
||||||
|
MenuObject topObject = null;
|
||||||
for (Map.Entry<Object, IContextMenuProvider> e : selectedObjects.entrySet()) {
|
for (Map.Entry<Object, IContextMenuProvider> e : selectedObjects.entrySet()) {
|
||||||
Object selectedObj = e.getKey();
|
Object selectedObj = e.getKey();
|
||||||
IContextMenuProvider contextObject = selectedObjects.get(selectedObj);
|
IContextMenuProvider contextObject = selectedObjects.get(selectedObj);
|
||||||
LatLon ll = null;
|
LatLon ll = null;
|
||||||
PointDescription pointDescription = null;
|
PointDescription pointDescription = null;
|
||||||
|
|
||||||
if (contextObject != null) {
|
if (contextObject != null) {
|
||||||
ll = contextObject.getObjectLocation(selectedObj);
|
ll = contextObject.getObjectLocation(selectedObj);
|
||||||
pointDescription = contextObject.getObjectName(selectedObj);
|
pointDescription = contextObject.getObjectName(selectedObj);
|
||||||
|
@ -121,13 +124,27 @@ public class ObjectSelectionMenu extends BaseMenuController {
|
||||||
|
|
||||||
MenuObject menuObject = new MenuObject(ll, pointDescription, selectedObj, getMapActivity());
|
MenuObject menuObject = new MenuObject(ll, pointDescription, selectedObj, getMapActivity());
|
||||||
objects.add(menuObject);
|
objects.add(menuObject);
|
||||||
|
|
||||||
|
if (contextObject instanceof ContextMenuLayer.IContextMenuProviderSelection) {
|
||||||
|
int i = ((ContextMenuLayer.IContextMenuProviderSelection) contextObject).getOrder(selectedObj);
|
||||||
|
if (i < order) {
|
||||||
|
topObject = menuObject;
|
||||||
|
order = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Collections.sort(objects, new Comparator<MenuObject>() {
|
Collections.sort(objects, new Comparator<MenuObject>() {
|
||||||
@Override
|
@Override
|
||||||
public int compare(MenuObject obj1, MenuObject obj2) {
|
public int compare(MenuObject obj1, MenuObject obj2) {
|
||||||
return obj1.getTitleStr().compareToIgnoreCase(obj2.getTitleStr());
|
return obj1.getTitleStr().compareToIgnoreCase(obj2.getTitleStr());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (topObject != null) {
|
||||||
|
objects.remove(topObject);
|
||||||
|
objects.add(0, topObject);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void show(LatLon latLon, Map<Object, IContextMenuProvider> selectedObjects, MapActivity mapActivity) {
|
public static void show(LatLon latLon, Map<Object, IContextMenuProvider> selectedObjects, MapActivity mapActivity) {
|
||||||
|
|
|
@ -400,6 +400,11 @@ public class OsMoPositionLayer extends OsmandMapLayer implements ContextMenuLaye
|
||||||
}, 350);
|
}, 350);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getOrder(Object o) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setSelectedObject(Object o) {
|
public void setSelectedObject(Object o) {
|
||||||
if(o instanceof OsMoDevice) {
|
if(o instanceof OsMoDevice) {
|
||||||
|
|
|
@ -39,6 +39,7 @@ public class ContextMenuLayer extends OsmandMapLayer {
|
||||||
|
|
||||||
public interface IContextMenuProviderSelection {
|
public interface IContextMenuProviderSelection {
|
||||||
|
|
||||||
|
int getOrder(Object o);
|
||||||
void setSelectedObject(Object o);
|
void setSelectedObject(Object o);
|
||||||
void clearSelectedObject();
|
void clearSelectedObject();
|
||||||
}
|
}
|
||||||
|
|
|
@ -403,10 +403,25 @@ public class DownloadedRegionsLayer extends OsmandMapLayer implements IContextMe
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getOrder(Object o) {
|
||||||
|
if (o instanceof BinaryMapDataObject) {
|
||||||
|
String fullName = osmandRegions.getFullName((BinaryMapDataObject) o);
|
||||||
|
final WorldRegion region = osmandRegions.getRegionData(fullName);
|
||||||
|
if (region != null) {
|
||||||
|
return region.getLevel();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setSelectedObject(Object o) {
|
public void setSelectedObject(Object o) {
|
||||||
if (o instanceof BinaryMapDataObject) {
|
if (o instanceof BinaryMapDataObject) {
|
||||||
List<BinaryMapDataObject> list = new LinkedList<>();
|
List<BinaryMapDataObject> list = new LinkedList<>();
|
||||||
|
if (selectedObjects != null) {
|
||||||
|
list.addAll(selectedObjects);
|
||||||
|
}
|
||||||
list.add((BinaryMapDataObject) o);
|
list.add((BinaryMapDataObject) o);
|
||||||
selectedObjects = list;
|
selectedObjects = list;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue