From 7dd62c690e4b9db4a98c43591caa297b97c89b37 Mon Sep 17 00:00:00 2001 From: Iván Ávalos Date: Tue, 18 Jan 2022 00:29:31 -0600 Subject: More improvements to zoom --- .../java/mx/trackermap/TrackerMap/android/map/UnitMapFragment.kt | 8 +++++++- .../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() private var _mapLayerType = MutableLiveData() private var _geofences = MutableLiveData>() - private val _camera = MutableLiveData() + private val _camera = MutableLiveData() val searchQuery: LiveData get() = _searchQuery val unitsDisplayMode: LiveData get() = _unitsDisplayMode @@ -48,7 +48,7 @@ class UnitsViewModel( val selectedUnit: LiveData get() = _selectedUnit val mapLayerType: LiveData get() = _mapLayerType val geofences: LiveData> get() = _geofences - val camera: LiveData get() = _camera + val camera: LiveData 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 -- cgit v1.2.3