From dfe5dd6a425ac2418e33e0b64911b6f914eb514c Mon Sep 17 00:00:00 2001 From: Iván Ávalos Date: Mon, 17 Jan 2022 23:09:46 -0600 Subject: Pass overlay top margin and whether should show layer toggle as arguments for MapWrapperFragment, and refactored stuff --- .../TrackerMap/android/map/MapWrapperFragment.kt | 51 +++++++++++++++++++--- 1 file changed, 44 insertions(+), 7 deletions(-) (limited to 'androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapWrapperFragment.kt') diff --git a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapWrapperFragment.kt b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapWrapperFragment.kt index 2b28a06..cecb567 100644 --- a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapWrapperFragment.kt +++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapWrapperFragment.kt @@ -11,6 +11,7 @@ import androidx.fragment.app.commit import mx.trackermap.TrackerMap.android.R import mx.trackermap.TrackerMap.android.databinding.FragmentMapWrapperBinding import mx.trackermap.TrackerMap.android.shared.MarkerTransformations +import mx.trackermap.TrackerMap.android.shared.Utils import mx.trackermap.TrackerMap.client.models.* class MapWrapperFragment: Fragment() { @@ -30,6 +31,7 @@ class MapWrapperFragment: Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) setupEvents() + setupViews() } override fun onResume() { @@ -79,7 +81,7 @@ class MapWrapperFragment: Fragment() { mapFragment.zoomIn() } else { mapFragment.setupCallbacks.add { - mapFragment.zoomIn() + binding.zoomInButton.performClick() } } } @@ -88,19 +90,37 @@ class MapWrapperFragment: Fragment() { mapFragment.zoomOut() } else { mapFragment.setupCallbacks.add { - mapFragment.zoomOut() + binding.zoomOutButton.performClick() + } + } + } + binding.mapLayerToggle.setOnClickListener { + context?.let { context -> + if (mapFragment.hasStarted) { + Utils.showLayersPopUp(context, it) { type -> + mapFragment.updateLayer(type) + } + } else { + binding.mapLayerToggle.performClick() } } } } - fun setMarkerCallback(callback: MarkerCallback) { - mapFragment.markerCallback = callback + private fun setupViews() { + val overlayMarginTop = arguments?.getInt(OVERLAY_MARGIN_TOP_ARG) + val showLayerToggle = arguments?.getBoolean(SHOW_LAYER_TOGGLE_ARG) + + overlayMarginTop?.let { top -> + binding.overlay.setPadding(0, top, 0, 0) + } + showLayerToggle?.let { show -> + binding.mapLayerToggle.visibility = if (show) View.VISIBLE else View.GONE + } } - fun setOverlayPaddingTop(top: Int) { - val overlay by lazy { binding.overlay } - overlay.setPadding(0, top, 0, 0) + fun setMarkerCallback(callback: MarkerCallback) { + mapFragment.markerCallback = callback } fun focusOn( @@ -187,4 +207,21 @@ class MapWrapperFragment: Fragment() { } } } + + companion object { + const val SHOW_LAYER_TOGGLE_ARG = "show_layer_toggle" + const val OVERLAY_MARGIN_TOP_ARG = "overlay_margin_top" + + fun newInstance( + showLayerToggle: Boolean = false, + overlayMarginTop: Int = 0 + ): MapWrapperFragment { + val args = Bundle() + args.putBoolean(SHOW_LAYER_TOGGLE_ARG, showLayerToggle) + args.putInt(OVERLAY_MARGIN_TOP_ARG, overlayMarginTop) + val fragment = MapWrapperFragment() + fragment.arguments = args + return fragment + } + } } \ No newline at end of file -- cgit v1.2.3