aboutsummaryrefslogtreecommitdiff
path: root/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapWrapperFragment.kt
diff options
context:
space:
mode:
Diffstat (limited to 'androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapWrapperFragment.kt')
-rw-r--r--androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MapWrapperFragment.kt51
1 files changed, 44 insertions, 7 deletions
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