From 08703058ebcd98bd49b9f814ed6117962613d289 Mon Sep 17 00:00:00 2001 From: Alexey Kulish Date: Fri, 20 Oct 2017 12:32:50 +0300 Subject: [PATCH] Fix context menu for map regions --- .../mapcontextmenu/MapContextMenuFragment.java | 1 + .../plus/mapcontextmenu/MenuController.java | 16 +++++++++++++++- .../controllers/MapDataMenuController.java | 7 ++++++- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java index b181e47f40..ab03574f92 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenuFragment.java @@ -787,6 +787,7 @@ public class MapContextMenuFragment extends Fragment implements DownloadEvents { progressTitle.setText(titleProgressController.caption); progressBar.setIndeterminate(titleProgressController.indeterminate); progressBar.setProgress(titleProgressController.progress); + progressBar.setVisibility(titleProgressController.progressVisible ? View.VISIBLE : View.GONE); final ImageView progressButton = (ImageView) view.findViewById(R.id.progressButton); progressButton.setVisibility(titleProgressController.buttonVisible ? View.VISIBLE : View.GONE); diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuController.java index e6e0d4faa2..894018ab7c 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuController.java @@ -440,7 +440,9 @@ public abstract class MenuController extends BaseMenuController { leftDownloadButtonController.visible = !downloaded; leftDownloadButtonController.leftIconId = R.drawable.ic_action_import; - boolean downloadIndexes = getMapActivity().getMyApplication().getSettings().isInternetConnectionAvailable() + boolean internetConnectionAvailable = + getMapActivity().getMyApplication().getSettings().isInternetConnectionAvailable(); + boolean downloadIndexes = internetConnectionAvailable && !downloadThread.getIndexes().isDownloadedFromInternet && !downloadThread.getIndexes().downloadFromInternetFailed; @@ -470,6 +472,9 @@ public abstract class MenuController extends BaseMenuController { } else if (downloadIndexes) { titleProgressController.setIndexesDownloadMode(); titleProgressController.visible = true; + } else if (!internetConnectionAvailable) { + titleProgressController.setNoInternetConnectionMode(); + titleProgressController.visible = true; } else { titleProgressController.visible = false; } @@ -507,16 +512,25 @@ public abstract class MenuController extends BaseMenuController { public int progress = 0; public boolean indeterminate; public boolean visible; + public boolean progressVisible; public boolean buttonVisible; public void setIndexesDownloadMode() { caption = getMapActivity().getString(R.string.downloading_list_indexes); indeterminate = true; + progressVisible = true; + buttonVisible = false; + } + + public void setNoInternetConnectionMode() { + caption = getMapActivity().getString(R.string.no_index_file_to_download); + progressVisible = false; buttonVisible = false; } public void setMapDownloadMode() { indeterminate = false; + progressVisible = true; buttonVisible = true; } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/MapDataMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/MapDataMenuController.java index 2e0c0c2e24..4b1a519633 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/MapDataMenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/MapDataMenuController.java @@ -353,7 +353,9 @@ public class MapDataMenuController extends MenuController { topRightTitleButtonController.visible = (otherIndexItems != null && otherIndexItems.size() > 0) || (otherLocalIndexInfos != null && otherLocalIndexInfos.size() > 0); - boolean downloadIndexes = getMapActivity().getMyApplication().getSettings().isInternetConnectionAvailable() + boolean internetConnectionAvailable = + getMapActivity().getMyApplication().getSettings().isInternetConnectionAvailable(); + boolean downloadIndexes = internetConnectionAvailable && !downloadThread.getIndexes().isDownloadedFromInternet && !downloadThread.getIndexes().downloadFromInternetFailed; @@ -383,6 +385,9 @@ public class MapDataMenuController extends MenuController { } else if (downloadIndexes) { titleProgressController.setIndexesDownloadMode(); titleProgressController.visible = true; + } else if (!internetConnectionAvailable) { + titleProgressController.setNoInternetConnectionMode(); + titleProgressController.visible = true; } else { titleProgressController.visible = false; }