empty state fix

This commit is contained in:
veliymolfar 2020-03-16 18:08:32 +02:00
parent 960a178bc4
commit 0ed85b1cb6
4 changed files with 23 additions and 16 deletions

View file

@ -44,7 +44,6 @@ public interface OsmAndCustomizationConstants {
String OVERLAY_MAP = SHOW_ITEMS_ID_SCHEME + "overlay_map"; String OVERLAY_MAP = SHOW_ITEMS_ID_SCHEME + "overlay_map";
String UNDERLAY_MAP = SHOW_ITEMS_ID_SCHEME + "underlay_map"; String UNDERLAY_MAP = SHOW_ITEMS_ID_SCHEME + "underlay_map";
String CONTOUR_LINES = SHOW_ITEMS_ID_SCHEME + "contour_lines"; String CONTOUR_LINES = SHOW_ITEMS_ID_SCHEME + "contour_lines";
String HILLSHADE_LAYER = SHOW_ITEMS_ID_SCHEME + "hillshade_layer";
String TERRAIN = SHOW_ITEMS_ID_SCHEME + "terrain"; String TERRAIN = SHOW_ITEMS_ID_SCHEME + "terrain";
String MAP_RENDERING_CATEGORY_ID = RENDERING_ITEMS_ID_SCHEME + "category"; String MAP_RENDERING_CATEGORY_ID = RENDERING_ITEMS_ID_SCHEME + "category";

View file

@ -457,8 +457,9 @@
</LinearLayout> </LinearLayout>
<View <View
android:id="@+id/bottom_empty_space"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/bottom_sheet_list_item_height" android:layout_height="wrap_content"
android:focusable="false" /> android:focusable="false" />
</LinearLayout> </LinearLayout>

View file

@ -78,7 +78,6 @@ import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper.LocalRoutingPar
import net.osmand.plus.routing.IRouteInformationListener; import net.osmand.plus.routing.IRouteInformationListener;
import net.osmand.plus.routing.RoutingHelper; import net.osmand.plus.routing.RoutingHelper;
import net.osmand.plus.srtmplugin.ContourLinesMenu; import net.osmand.plus.srtmplugin.ContourLinesMenu;
import net.osmand.plus.srtmplugin.HillshadeMenu;
import net.osmand.plus.srtmplugin.SRTMPlugin; import net.osmand.plus.srtmplugin.SRTMPlugin;
import net.osmand.plus.srtmplugin.TerrainFragment; import net.osmand.plus.srtmplugin.TerrainFragment;
import net.osmand.plus.views.DownloadedRegionsLayer; import net.osmand.plus.views.DownloadedRegionsLayer;
@ -714,8 +713,6 @@ public class DashboardOnMap implements ObservableScrollViewCallbacks, IRouteInfo
cm = RasterMapMenu.createListAdapter(mapActivity, OsmandRasterMapsPlugin.RasterMapType.OVERLAY); cm = RasterMapMenu.createListAdapter(mapActivity, OsmandRasterMapsPlugin.RasterMapType.OVERLAY);
} else if (visibleType == DashboardType.CONTOUR_LINES) { } else if (visibleType == DashboardType.CONTOUR_LINES) {
cm = ContourLinesMenu.createListAdapter(mapActivity); cm = ContourLinesMenu.createListAdapter(mapActivity);
} else if (visibleType == DashboardType.HILLSHADE) {
cm = HillshadeMenu.createListAdapter(mapActivity);
} else if (visibleType == DashboardType.OSM_NOTES) { } else if (visibleType == DashboardType.OSM_NOTES) {
cm = OsmNotesMenu.createListAdapter(mapActivity); cm = OsmNotesMenu.createListAdapter(mapActivity);
} }

View file

@ -3,7 +3,6 @@ package net.osmand.plus.srtmplugin;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.content.res.ColorStateList; import android.content.res.ColorStateList;
import android.graphics.Color;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.text.SpannableString; import android.text.SpannableString;
@ -28,6 +27,7 @@ import androidx.core.content.ContextCompat;
import com.github.ksoichiro.android.observablescrollview.ObservableListView; import com.github.ksoichiro.android.observablescrollview.ObservableListView;
import com.google.android.material.slider.Slider; import com.google.android.material.slider.Slider;
import net.osmand.AndroidUtils;
import net.osmand.PlatformUtil; import net.osmand.PlatformUtil;
import net.osmand.plus.ContextMenuAdapter; import net.osmand.plus.ContextMenuAdapter;
import net.osmand.plus.ContextMenuItem; import net.osmand.plus.ContextMenuItem;
@ -43,7 +43,6 @@ import net.osmand.plus.download.DownloadIndexesThread;
import net.osmand.plus.download.DownloadResources; import net.osmand.plus.download.DownloadResources;
import net.osmand.plus.download.DownloadValidationManager; import net.osmand.plus.download.DownloadValidationManager;
import net.osmand.plus.download.IndexItem; import net.osmand.plus.download.IndexItem;
import net.osmand.plus.inapp.InAppPurchaseHelper;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
@ -67,13 +66,11 @@ public class TerrainFragment extends BaseOsmAndFragment implements View.OnClickL
private static final int SLIDER_MAX_ZOOM = 19; private static final int SLIDER_MAX_ZOOM = 19;
private static final int SLIDER_MIN_TRANSPARENCY = 20; private static final int SLIDER_MIN_TRANSPARENCY = 20;
private OsmandApplication app; private OsmandApplication app;
private UiUtilities uiUtilities; private UiUtilities uiUtilities;
private OsmandSettings settings; private OsmandSettings settings;
private SRTMPlugin srtmPlugin; private SRTMPlugin srtmPlugin;
private boolean nightMode; private boolean nightMode;
private boolean srtmEnabled;
private boolean terrainEnabled; private boolean terrainEnabled;
private int colorProfile; private int colorProfile;
@ -103,6 +100,7 @@ public class TerrainFragment extends BaseOsmAndFragment implements View.OnClickL
private Slider transparencySlider; private Slider transparencySlider;
private Slider zoomSlider; private Slider zoomSlider;
private ObservableListView observableListView; private ObservableListView observableListView;
private View bottomEmptySpace;
private ArrayAdapter<ContextMenuItem> listAdapter; private ArrayAdapter<ContextMenuItem> listAdapter;
@ -117,8 +115,6 @@ public class TerrainFragment extends BaseOsmAndFragment implements View.OnClickL
uiUtilities = app.getUIUtilities(); uiUtilities = app.getUIUtilities();
nightMode = !settings.isLightContent(); nightMode = !settings.isLightContent();
srtmPlugin = OsmandPlugin.getPlugin(SRTMPlugin.class); srtmPlugin = OsmandPlugin.getPlugin(SRTMPlugin.class);
srtmEnabled = OsmandPlugin.getEnabledPlugin(SRTMPlugin.class) != null
|| InAppPurchaseHelper.isSubscribedToLiveUpdates(app);
colorProfile = settings.getApplicationMode().getIconColorInfo().getColor(nightMode); colorProfile = settings.getApplicationMode().getIconColorInfo().getColor(nightMode);
colorProfileStateList = ColorStateList.valueOf(ContextCompat.getColor(app, colorProfile)); colorProfileStateList = ColorStateList.valueOf(ContextCompat.getColor(app, colorProfile));
terrainEnabled = srtmPlugin.isTerrainLayerEnabled(); terrainEnabled = srtmPlugin.isTerrainLayerEnabled();
@ -157,6 +153,7 @@ public class TerrainFragment extends BaseOsmAndFragment implements View.OnClickL
downloadTopDivider = root.findViewById(R.id.download_container_top_divider); downloadTopDivider = root.findViewById(R.id.download_container_top_divider);
downloadBottomDivider = root.findViewById(R.id.download_container_bottom_divider); downloadBottomDivider = root.findViewById(R.id.download_container_bottom_divider);
observableListView = (ObservableListView) root.findViewById(R.id.list_view); observableListView = (ObservableListView) root.findViewById(R.id.list_view);
bottomEmptySpace = root.findViewById(R.id.bottom_empty_space);
titleTv.setText(R.string.shared_string_terrain); titleTv.setText(R.string.shared_string_terrain);
String wikiString = getString(R.string.shared_string_wikipedia); String wikiString = getString(R.string.shared_string_wikipedia);
@ -232,7 +229,9 @@ public class TerrainFragment extends BaseOsmAndFragment implements View.OnClickL
break; break;
case R.id.zoom_slider: case R.id.zoom_slider:
List<Float> values = slider.getValues(); List<Float> values = slider.getValues();
srtmPlugin.setTerrainZoomValues(values.get(0).intValue(), values.get(1).intValue(), srtmPlugin.getTerrainMode()); if (values.size() > 0) {
srtmPlugin.setTerrainZoomValues(values.get(0).intValue(), values.get(1).intValue(), srtmPlugin.getTerrainMode());
}
break; break;
} }
updateLayers(); updateLayers();
@ -293,6 +292,7 @@ public class TerrainFragment extends BaseOsmAndFragment implements View.OnClickL
adjustGlobalVisibility(); adjustGlobalVisibility();
adjustLegendVisibility(mode); adjustLegendVisibility(mode);
adjustModeButtons(mode); adjustModeButtons(mode);
setupBottomEmptySpace();
} }
private void adjustGlobalVisibility() { private void adjustGlobalVisibility() {
@ -390,7 +390,10 @@ public class TerrainFragment extends BaseOsmAndFragment implements View.OnClickL
adapter.setProfileDependent(true); adapter.setProfileDependent(true);
adapter.setNightMode(nightMode); adapter.setNightMode(nightMode);
final MapActivity mapActivity = (MapActivity) getActivity(); final Activity mapActivity = getActivity();
if (!(mapActivity instanceof MapActivity)) {
return;
}
final DownloadIndexesThread downloadThread = app.getDownloadThread(); final DownloadIndexesThread downloadThread = app.getDownloadThread();
if (!downloadThread.getIndexes().isDownloadedFromInternet) { if (!downloadThread.getIndexes().isDownloadedFromInternet) {
@ -414,7 +417,7 @@ public class TerrainFragment extends BaseOsmAndFragment implements View.OnClickL
IndexItem currentDownloadingItem = downloadThread.getCurrentDownloadingItem(); IndexItem currentDownloadingItem = downloadThread.getCurrentDownloadingItem();
int currentDownloadingProgress = downloadThread.getCurrentDownloadingItemProgress(); int currentDownloadingProgress = downloadThread.getCurrentDownloadingItemProgress();
List<IndexItem> hillshadeItems = DownloadResources.findIndexItemsAt( List<IndexItem> hillshadeItems = DownloadResources.findIndexItemsAt(
app, mapActivity.getMapLocation(), app, ((MapActivity) mapActivity).getMapLocation(),
mode == HILLSHADE ? HILLSHADE_FILE : SLOPE_FILE); mode == HILLSHADE ? HILLSHADE_FILE : SLOPE_FILE);
if (hillshadeItems.size() > 0) { if (hillshadeItems.size() > 0) {
downloadContainer.setVisibility(View.VISIBLE); downloadContainer.setVisibility(View.VISIBLE);
@ -441,7 +444,7 @@ public class TerrainFragment extends BaseOsmAndFragment implements View.OnClickL
adapter.notifyDataSetChanged(); adapter.notifyDataSetChanged();
} }
} else { } else {
new DownloadValidationManager(app).startDownload(mapActivity, indexItem); new DownloadValidationManager(app).startDownload((MapActivity) mapActivity, indexItem);
if (item != null) { if (item != null) {
item.setProgress(ContextMenuItem.INVALID_ID); item.setProgress(ContextMenuItem.INVALID_ID);
item.setLoading(true); item.setLoading(true);
@ -513,7 +516,7 @@ public class TerrainFragment extends BaseOsmAndFragment implements View.OnClickL
@Override @Override
public void downloadInProgress() { public void downloadInProgress() {
DownloadIndexesThread downloadThread = getMyApplication().getDownloadThread(); DownloadIndexesThread downloadThread = app.getDownloadThread();
IndexItem downloadIndexItem = downloadThread.getCurrentDownloadingItem(); IndexItem downloadIndexItem = downloadThread.getCurrentDownloadingItem();
if (downloadIndexItem != null) { if (downloadIndexItem != null) {
int downloadProgress = downloadThread.getCurrentDownloadingItemProgress(); int downloadProgress = downloadThread.getCurrentDownloadingItemProgress();
@ -532,4 +535,11 @@ public class TerrainFragment extends BaseOsmAndFragment implements View.OnClickL
public void downloadHasFinished() { public void downloadHasFinished() {
updateDownloadSection(); updateDownloadSection();
} }
private void setupBottomEmptySpace() {
int h = terrainEnabled ? AndroidUtils.dpToPx(app, 48) : AndroidUtils.getScreenHeight(requireActivity()) / 3;
ViewGroup.LayoutParams params = bottomEmptySpace.getLayoutParams();
params.height = h;
bottomEmptySpace.setLayoutParams(params);
}
} }