aboutsummaryrefslogtreecommitdiff
path: root/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/UnitMapFragment.kt
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2022-03-10 20:33:40 -0600
committerIván Ávalos <avalos@disroot.org>2022-03-10 20:33:40 -0600
commit18987c3b31c2b8fe1a911297e8b104d583dd5c83 (patch)
tree43bc8d56c873fb1c6b4f56f3750f45a60519984d /androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/UnitMapFragment.kt
parent9b8eee4362c368e682bfe18d5cef44d6b9d109bf (diff)
downloadetbsa-trackermap-mobile-18987c3b31c2b8fe1a911297e8b104d583dd5c83.tar.gz
etbsa-trackermap-mobile-18987c3b31c2b8fe1a911297e8b104d583dd5c83.tar.bz2
etbsa-trackermap-mobile-18987c3b31c2b8fe1a911297e8b104d583dd5c83.zip
- Card on map now updates info when there is a change
- Huge device list performance improvements on search and updates
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.kt19
1 files changed, 11 insertions, 8 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 e7e5ce0..5e2224b 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
@@ -85,7 +85,7 @@ class UnitMapFragment : Fragment() {
childFragmentManager.commit {
replace(R.id.unitsMap, mapFragment)
}
- mapFragment.setMarkerCallback(unitsViewModel::selectUnitWith)
+ mapFragment.setMarkerCallback(unitsViewModel::selectUnitWithPositionId)
}
private fun setupObservers() {
@@ -132,14 +132,16 @@ class UnitMapFragment : Fragment() {
), binding.mapUnitCard.context, unit, this::itemAction
)
- unitsViewModel.moveCamera(
- UnitsViewModel.Camera(
- point = Point2d(
- unit.position!!.longitude!!, unit.position!!.latitude!!
- ),
- animated = true
+ if (selectedUnit.device.id != unitsViewModel.oldSelectedUnit.value?.device?.id) {
+ unitsViewModel.moveCamera(
+ UnitsViewModel.Camera(
+ point = Point2d(
+ unit.position!!.longitude!!, unit.position!!.latitude!!
+ ),
+ animated = true
+ )
)
- )
+ }
}
}
@@ -178,6 +180,7 @@ class UnitMapFragment : Fragment() {
unitsViewModel.selectedUnit.removeObservers(viewLifecycleOwner)
unitsViewModel.mapLayerType.removeObservers(viewLifecycleOwner)
unitsViewModel.geofences.removeObservers(viewLifecycleOwner)
+ unitsViewModel.camera.removeObservers(viewLifecycleOwner)
}
private fun itemAction(unit: UnitInformation, action: UnitRenderData.Action) {