aboutsummaryrefslogtreecommitdiff
path: root/androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsViewModel.kt
diff options
context:
space:
mode:
Diffstat (limited to 'androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsViewModel.kt')
-rw-r--r--androidApp/src/main/java/mx/trackermap/TrackerMap/android/units/UnitsViewModel.kt13
1 files changed, 13 insertions, 0 deletions
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 efa5781..ee6fa98 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
@@ -2,6 +2,7 @@ package mx.trackermap.TrackerMap.android.units
import android.util.Log
import androidx.lifecycle.*
+import com.mousebird.maply.Point2d
import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.launch
@@ -14,6 +15,7 @@ import org.koin.core.component.KoinComponent
import org.koin.core.component.inject
import kotlin.time.ExperimentalTime
+
@DelicateCoroutinesApi
@ExperimentalTime
class UnitsViewModel(
@@ -24,6 +26,11 @@ class UnitsViewModel(
MAP, LIST
}
+ data class Camera (
+ val point: Point2d,
+ val animated: Boolean,
+ )
+
private val unitsController: UnitsController by inject()
private val geofenceController: GeofencesController by inject()
@@ -33,6 +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>()
val searchQuery: LiveData<String> get() = _searchQuery
val unitsDisplayMode: LiveData<UnitsDisplayMode> get() = _unitsDisplayMode
@@ -40,6 +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
init {
Log.d("UnitsViewModel", "Initializing Units View Model")
@@ -106,4 +115,8 @@ class UnitsViewModel(
fun search(query: String) {
unitsController.search(query)
}
+
+ fun moveCamera(point: Camera) {
+ _camera.postValue(point)
+ }
} \ No newline at end of file