This commit is contained in:
GaidamakUA 2015-11-02 18:25:32 +02:00
commit 403f927c1c
7 changed files with 90 additions and 9 deletions

View file

@ -157,5 +157,14 @@ public class WorldRegion {
subregions.add(rd);
rd.superregion = this;
}
public int getLevel() {
int res = 0;
WorldRegion parent = superregion;
while (parent != null) {
parent = parent.superregion;
res++;
}
return res;
}
}

View file

@ -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">Использовать 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>
@ -1968,8 +1969,8 @@
<string name="show_free_version_banner_description">Даже если у вас купленная версия вы еще можете увидеть баннер для бесплатной версии</string>
<string name="confirm_download_roadmaps">Вы уверены, что хотите скачать карту автодорог, даже если у вас есть полная карта?</string>
<string name="value_downloaded_from_max">%1$.1f из %2$.1f Мб</string>
<string name="file_size_in_mb">%.1f Мб</string>
<string name="update_all">Обновить все (%1$s Мб)</string>
<string name="file_size_in_mb">%.1f МБ</string>
<string name="update_all">Обновить все (%1$s МБ)</string>
<string name="free_downloads_used">Использовано бесплатных загрузок</string>
<string name="free_downloads_used_description">Вы можете посмотреть сколько бесплатных загрузок вы использовали</string>
@ -1977,6 +1978,33 @@
<string name="share_geo">гео:</string>
<string name="share_menu_location">Поделиться местоположением</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>
</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>

View file

@ -17,6 +17,7 @@ import net.osmand.plus.mapcontextmenu.MenuController;
public class MapDataMenuController extends MenuController {
private WorldRegion region;
private String regionName;
public MapDataMenuController(OsmandApplication app, MapActivity mapActivity, final BinaryMapDataObject dataObject) {
super(new MenuBuilder(app), mapActivity);
@ -24,6 +25,11 @@ public class MapDataMenuController extends MenuController {
String fullName = osmandRegions.getFullName(dataObject);
final WorldRegion region = osmandRegions.getRegionData(fullName);
this.region = region;
if (region != null) {
regionName = region.getLocaleName();
} else {
regionName = dataObject.getName();
}
titleButtonController = new TitleButtonController() {
@Override
public void buttonPressed() {
@ -31,7 +37,7 @@ public class MapDataMenuController extends MenuController {
final Intent intent = new Intent(getMapActivity(), getMapActivity().getMyApplication()
.getAppCustomization().getDownloadIndexActivity());
intent.putExtra(DownloadActivity.FILTER_KEY, region.getLocaleName());
intent.putExtra(DownloadActivity.FILTER_KEY, regionName);
intent.putExtra(DownloadActivity.TAB_TO_OPEN, DownloadActivity.DOWNLOAD_TAB);
getMapActivity().startActivity(intent);
}
@ -57,12 +63,12 @@ public class MapDataMenuController extends MenuController {
@Override
public String getNameStr() {
return region.getLocaleName();
return regionName;
}
@Override
public String getTypeStr() {
if (region.getSuperregion() != null) {
if (region != null && region.getSuperregion() != null) {
return region.getSuperregion().getLocaleName() + "\n";
} else {
return getMapActivity().getString(R.string.shared_string_map) + "\n";

View file

@ -103,11 +103,14 @@ public class ObjectSelectionMenu extends BaseMenuController {
private void createCollection(Map<Object, IContextMenuProvider> selectedObjects) {
this.selectedObjects.putAll(selectedObjects);
int order = Integer.MAX_VALUE;
MenuObject topObject = null;
for (Map.Entry<Object, IContextMenuProvider> e : selectedObjects.entrySet()) {
Object selectedObj = e.getKey();
IContextMenuProvider contextObject = selectedObjects.get(selectedObj);
LatLon ll = null;
PointDescription pointDescription = null;
if (contextObject != null) {
ll = contextObject.getObjectLocation(selectedObj);
pointDescription = contextObject.getObjectName(selectedObj);
@ -121,13 +124,27 @@ public class ObjectSelectionMenu extends BaseMenuController {
MenuObject menuObject = new MenuObject(ll, pointDescription, selectedObj, getMapActivity());
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>() {
@Override
public int compare(MenuObject obj1, MenuObject obj2) {
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) {

View file

@ -400,6 +400,11 @@ public class OsMoPositionLayer extends OsmandMapLayer implements ContextMenuLaye
}, 350);
}
@Override
public int getOrder(Object o) {
return 0;
}
@Override
public void setSelectedObject(Object o) {
if(o instanceof OsMoDevice) {

View file

@ -39,6 +39,7 @@ public class ContextMenuLayer extends OsmandMapLayer {
public interface IContextMenuProviderSelection {
int getOrder(Object o);
void setSelectedObject(Object o);
void clearSelectedObject();
}

View file

@ -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
public void setSelectedObject(Object o) {
if (o instanceof BinaryMapDataObject) {
List<BinaryMapDataObject> list = new LinkedList<>();
if (selectedObjects != null) {
list.addAll(selectedObjects);
}
list.add((BinaryMapDataObject) o);
selectedObjects = list;
}