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.kt37
1 files changed, 35 insertions, 2 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 11df89b..7ac6e28 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,15 +2,44 @@ package mx.trackermap.TrackerMap.android.units
import android.util.Log
import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.ViewModel
+import androidx.lifecycle.viewModelScope
+import kotlinx.coroutines.DelicateCoroutinesApi
+import kotlinx.coroutines.flow.collect
+import kotlinx.coroutines.launch
+import mx.trackermap.TrackerMap.client.models.UnitInformation
+import mx.trackermap.TrackerMap.controllers.UnitsController
+import org.koin.core.component.KoinComponent
+import org.koin.core.component.inject
-class UnitsViewModel : ViewModel() {
+@DelicateCoroutinesApi
+class UnitsViewModel(
+ private val savedStateHandle: SavedStateHandle
+) : ViewModel(), KoinComponent {
enum class UnitsDisplayMode {
MAP, LIST
}
- var unitsDisplayMode = MutableLiveData<UnitsDisplayMode>(UnitsDisplayMode.MAP)
+ private val unitsController: UnitsController by inject()
+
+ var unitsDisplayMode = MutableLiveData(UnitsDisplayMode.MAP)
+ var units = MutableLiveData<List<UnitInformation>>()
+
+ init {
+ Log.d("UnitsViewModel", "Initializing Units View Model")
+ viewModelScope.launch {
+ setupObservers()
+ }
+ }
+
+ private suspend fun setupObservers() {
+ Log.d("UnitsViewModel", "Setup observers")
+ unitsController.displayedUnitsFlow.collect { units ->
+ this.units.value = units
+ }
+ }
fun toggleDisplayMode() {
Log.d("UnitsViewModel", "Toggling Display mode")
@@ -22,4 +51,8 @@ class UnitsViewModel : ViewModel() {
}
unitsDisplayMode.postValue(newDisplayMode)
}
+
+ fun search(query: String) {
+ unitsController.search(query)
+ }
} \ No newline at end of file