diff --git a/app/src/main/java/com/geeksville/mesh/model/map/CustomOverlayManager.kt b/app/src/main/java/com/geeksville/mesh/model/map/CustomOverlayManager.kt new file mode 100644 index 000000000..74a3bb469 --- /dev/null +++ b/app/src/main/java/com/geeksville/mesh/model/map/CustomOverlayManager.kt @@ -0,0 +1,44 @@ +package com.geeksville.mesh.model.map + +import android.content.Context +import android.view.MotionEvent +import org.osmdroid.tileprovider.MapTileProviderBase +import org.osmdroid.views.MapView +import org.osmdroid.views.overlay.DefaultOverlayManager +import org.osmdroid.views.overlay.TilesOverlay + + +class CustomOverlayManager +/** + * Default constructor + */ + (tilesOverlay: TilesOverlay?) : DefaultOverlayManager(tilesOverlay) { + /** + * Override event & do nothing + */ + override fun onDoubleTap(e: MotionEvent?, pMapView: MapView?): Boolean { + return true + } + + /** + * Override event & do nothing + */ + override fun onDoubleTapEvent(e: MotionEvent?, pMapView: MapView?): Boolean { + return true + } + + companion object { + /** + * Create MyOverlayManager + */ + fun create(mapView: MapView, context: Context?): CustomOverlayManager { + val mTileProvider: MapTileProviderBase = mapView.tileProvider + val tilesOverlay = TilesOverlay(mTileProvider, context) + mapView.tileProvider + mapView.overlayManager = CustomOverlayManager(tilesOverlay) + //mapView.overlayManager.overlays().add(overlay) + mapView.invalidate() + return CustomOverlayManager(tilesOverlay) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/geeksville/mesh/ui/MapFragment.kt b/app/src/main/java/com/geeksville/mesh/ui/MapFragment.kt index 622c9238b..d433242f4 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/MapFragment.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/MapFragment.kt @@ -20,6 +20,7 @@ import com.geeksville.mesh.android.Logging import com.geeksville.mesh.database.entity.Packet import com.geeksville.mesh.databinding.MapViewBinding import com.geeksville.mesh.model.UIViewModel +import com.geeksville.mesh.model.map.CustomOverlayManager import com.geeksville.mesh.model.map.CustomTileSource import com.geeksville.mesh.util.formatAgo import com.google.android.material.dialog.MaterialAlertDialogBuilder @@ -177,7 +178,7 @@ class MapFragment : ScreenFragment("Map"), Logging, View.OnClickListener { } private fun clearCache() { - + map.canZoomIn() } @@ -213,6 +214,8 @@ class MapFragment : ScreenFragment("Map"), Logging, View.OnClickListener { private fun downloadJobAlert() { //prompt for input params . + map.overlayManager = CustomOverlayManager.create(map, context) + binding.downloadButton.hide() binding.cacheLayout.visibility = View.VISIBLE val builder = AlertDialog.Builder(activity) fiveMileButton = binding.box5miles @@ -225,11 +228,12 @@ class MapFragment : ScreenFragment("Map"), Logging, View.OnClickListener { generateBoxOverlay(zoomLevelLowest) executeJob = binding.executeJob executeJob.setOnClickListener(this) - //cancelDownload = binding.cacheLayout.findViewById(R.id.cancelDownload) - builder.setOnCancelListener { + binding.cancelDownload.setOnClickListener { cacheEstimate.text = "" drawOverlays() + binding.downloadButton.show() binding.cacheLayout.visibility = View.GONE + setupMapProperties() } builder.setCancelable(true) } @@ -248,7 +252,6 @@ class MapFragment : ScreenFragment("Map"), Logging, View.OnClickListener { val polygon = Polygon() polygon.points = Polygon.pointsAsRect(downloadRegionBoundingBox) as MutableList map.overlayManager.add(polygon) - map.invalidate() mapController.setZoom(zoomLevel - 1.0) cacheManager = CacheManager(map) val tilecount: Int = diff --git a/app/src/main/res/layout/map_view.xml b/app/src/main/res/layout/map_view.xml index c85d549f1..4eb931255 100644 --- a/app/src/main/res/layout/map_view.xml +++ b/app/src/main/res/layout/map_view.xml @@ -26,8 +26,11 @@ + android:layout_width="wrap_content" + android:layout_height="wrap_content" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent"> + app:layout_constraintBottom_toTopOf="@id/toggleButton" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" />