/** * TrackerMap * Copyright (C) 2021-2022 Iván Ávalos , Henoch Ojeda * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ package mx.trackermap.TrackerMap.android.details.commands import android.util.Log import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.launch import mx.trackermap.TrackerMap.client.apis.CommandsApi import mx.trackermap.TrackerMap.client.models.Command import org.koin.core.component.KoinComponent @DelicateCoroutinesApi class UnitCommandsViewModel( private val commandsApi: CommandsApi ) : ViewModel(), KoinComponent { var commands = MutableLiveData>() private var selectedCommand: Command? = null private var deviceId: Int? = null fun fetchCommands(deviceId: Int?) { this.deviceId = deviceId viewModelScope.launch { val commands = commandsApi.commandsGet(deviceId = deviceId) this@UnitCommandsViewModel.commands.value = commands.toList() } } fun selectCommand(index: Int) { val command = commands.value?.get(index) Log.d("UnitCommandsVM", "Selected Command - $command") command?.deviceId = this.deviceId this.selectedCommand = command } fun sendCommand() { if (selectedCommand == null) { Log.d("UnitCommandsVM", "No Command Selection") return } Log.d("UnitCommandsVM", "Sending command - $selectedCommand") viewModelScope.launch { val command = commandsApi.commandsSendPost(selectedCommand!!) Log.d("UnitCommandsVM", "Command sent - $command") } } }