diff options
-rw-r--r-- | androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/UnitMapFragment.kt | 8 | ||||
-rw-r--r-- | androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsViewModel.kt | 8 |
2 files changed, 13 insertions, 3 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 ca59266..e64afd3 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 @@ -93,6 +93,10 @@ class UnitMapFragment : Fragment() { binding.mapUnitCard.visibility = if (selectedUnit == null) View.GONE else View.VISIBLE + if (selectedUnit == null) { + unitsViewModel.clearCamera() + } + selectedUnit?.let { unit -> if (unit.position == null || unit.position?.latitude == null || unit.position?.longitude == null) { binding.mapUnitCard.visibility = View.GONE @@ -142,7 +146,9 @@ class UnitMapFragment : Fragment() { } unitsViewModel.camera.observe(viewLifecycleOwner) { camera -> - mapFragment.focusOn(camera.point.y, camera.point.x) + camera?.let { + mapFragment.focusOn(camera.point.y, camera.point.x) + } } } diff --git a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsViewModel.kt b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsViewModel.kt index ee6fa98..cb30725 100644 --- a/androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsViewModel.kt +++ b/androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsViewModel.kt @@ -40,7 +40,7 @@ class UnitsViewModel( private var _selectedUnit = MutableLiveData<UnitInformation?>() private var _mapLayerType = MutableLiveData<MapLayer.Type>() private var _geofences = MutableLiveData<Map<Int, Geofence>>() - private val _camera = MutableLiveData<Camera>() + private val _camera = MutableLiveData<Camera?>() val searchQuery: LiveData<String> get() = _searchQuery val unitsDisplayMode: LiveData<UnitsDisplayMode> get() = _unitsDisplayMode @@ -48,7 +48,7 @@ class UnitsViewModel( val selectedUnit: LiveData<UnitInformation?> get() = _selectedUnit val mapLayerType: LiveData<MapLayer.Type> get() = _mapLayerType val geofences: LiveData<Map<Int, Geofence>> get() = _geofences - val camera: LiveData<Camera> get() = _camera + val camera: LiveData<Camera?> get() = _camera init { Log.d("UnitsViewModel", "Initializing Units View Model") @@ -119,4 +119,8 @@ class UnitsViewModel( fun moveCamera(point: Camera) { _camera.postValue(point) } + + fun clearCamera() { + _camera.postValue(null) + } }
\ No newline at end of file |