aboutsummaryrefslogtreecommitdiff
path: root/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/UnitMapFragment.kt
diff options
context:
space:
mode:
Diffstat (limited to 'androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/UnitMapFragment.kt')
-rw-r--r--androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/UnitMapFragment.kt34
1 files changed, 16 insertions, 18 deletions
diff --git a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/UnitMapFragment.kt b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/UnitMapFragment.kt
index b6396c8..768c0f0 100644
--- a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/UnitMapFragment.kt
+++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/UnitMapFragment.kt
@@ -6,18 +6,16 @@ import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import androidx.core.text.HtmlCompat
import androidx.fragment.app.Fragment
+import androidx.fragment.app.commit
import androidx.fragment.app.viewModels
import kotlin.time.ExperimentalTime
import kotlinx.coroutines.DelicateCoroutinesApi
import mx.trackermap.TrackerMap.android.R
import mx.trackermap.TrackerMap.android.databinding.UnitMapFragmentBinding
import mx.trackermap.TrackerMap.android.details.DetailsActivity
-import mx.trackermap.TrackerMap.android.shared.MarkerTransformations
import mx.trackermap.TrackerMap.android.shared.UnitRenderData
import mx.trackermap.TrackerMap.android.units.UnitsViewModel
-import mx.trackermap.TrackerMap.client.models.MapLayer
import mx.trackermap.TrackerMap.client.models.UnitInformation
@DelicateCoroutinesApi
@@ -30,7 +28,7 @@ class UnitMapFragment : Fragment() {
private var _binding: UnitMapFragmentBinding? = null
private val binding get() = _binding!!
- private lateinit var unitsMapFragment: MapFragment
+ private lateinit var mapFragment: MapWrapperFragment
private var shouldCenter = true
@@ -63,11 +61,13 @@ class UnitMapFragment : Fragment() {
private fun initializeMap() {
shouldCenter = true
- unitsMapFragment = childFragmentManager.findFragmentById(R.id.unitsMap) as MapFragment
- unitsMapFragment.markerCallback = unitsViewModel::selectUnitWith
-
- val layer = MapLayer.defaultLayer
- binding.attributionText.text = HtmlCompat.fromHtml(layer.attribution, 0)
+ mapFragment = MapWrapperFragment.newInstance(
+ overlayMarginTop = resources.getDimensionPixelSize(R.dimen.nav_height)
+ )
+ childFragmentManager.commit {
+ replace(R.id.unitsMap, mapFragment)
+ }
+ mapFragment.setMarkerCallback(unitsViewModel::selectUnitWith)
}
private fun setupObservers() {
@@ -75,10 +75,10 @@ class UnitMapFragment : Fragment() {
unitsViewModel.units.observe(viewLifecycleOwner) { units ->
Log.d("UnitMapFragment", "Available units: $units")
- unitsMapFragment.display(
- units.mapNotNull(MarkerTransformations::unitToMarker).toTypedArray(),
+ mapFragment.display(
+ units.toTypedArray(),
isReport = false,
- center = shouldCenter
+ center = shouldCenter && unitsViewModel.selectedUnit.value == null
)
if (units.isNotEmpty()) {
shouldCenter = false
@@ -107,22 +107,20 @@ class UnitMapFragment : Fragment() {
), binding.mapUnitCard.context, unit, this::itemAction
)
- unitsMapFragment.focusOn(unit.position!!.latitude!!, unit.position!!.longitude!!)
+ mapFragment.focusOn(unit.position!!.latitude!!, unit.position!!.longitude!!)
}
}
unitsViewModel.mapLayerType.observe(viewLifecycleOwner) { type ->
Log.d("UnitMapFragment", "Loading layer!")
- unitsMapFragment.updateLayer(type)
+ mapFragment.updateLayer(type)
unitsViewModel.selectedUnit.value?.let {
- unitsMapFragment.focusOn(it.position!!.latitude!!, it.position!!.longitude!!)
+ mapFragment.focusOn(it.position!!.latitude!!, it.position!!.longitude!!)
}
- val layer = MapLayer.layers[type]!!
- binding.attributionText.text = HtmlCompat.fromHtml(layer.attribution, 0)
}
unitsViewModel.geofences.observe(viewLifecycleOwner) { geofences ->
- unitsMapFragment.displayGeofences(geofences.values.toTypedArray())
+ mapFragment.display(geofences.values.toTypedArray())
}
}