refactor: move DebugFragment to separate ViewModel

This commit is contained in:
andrekir 2024-04-07 16:56:24 -03:00
parent 76151e153f
commit 54435fc031
3 changed files with 42 additions and 15 deletions

View file

@ -0,0 +1,39 @@
package com.geeksville.mesh.model
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.geeksville.mesh.android.Logging
import com.geeksville.mesh.database.MeshLogRepository
import com.geeksville.mesh.database.entity.MeshLog
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.launch
import javax.inject.Inject
@HiltViewModel
class DebugViewModel @Inject constructor(
private val meshLogRepository: MeshLogRepository,
) : ViewModel(), Logging {
private val _meshLog = MutableStateFlow<List<MeshLog>>(emptyList())
val meshLog: StateFlow<List<MeshLog>> = _meshLog
init {
viewModelScope.launch {
meshLogRepository.getAllLogs().collect { _meshLog.value = it }
}
debug("DebugViewModel created")
}
override fun onCleared() {
super.onCleared()
debug("DebugViewModel cleared")
}
fun deleteAllLogs() = viewModelScope.launch(Dispatchers.IO) {
meshLogRepository.deleteAll()
}
}

View file

@ -115,9 +115,6 @@ class UIViewModel @Inject constructor(
val bondedAddress get() = radioInterfaceService.getBondedDeviceAddress()
val selectedBluetooth get() = radioInterfaceService.getDeviceAddress()?.getOrNull(0) == 'x'
private val _meshLog = MutableStateFlow<List<MeshLog>>(emptyList())
val meshLog: StateFlow<List<MeshLog>> = _meshLog
private val _packets = MutableStateFlow<List<Packet>>(emptyList())
val packets: StateFlow<List<Packet>> = _packets
@ -164,11 +161,6 @@ class UIViewModel @Inject constructor(
radioConfigRepository.clearErrorMessage()
}.launchIn(viewModelScope)
viewModelScope.launch {
meshLogRepository.getAllLogs().collect { logs ->
_meshLog.value = logs
}
}
viewModelScope.launch {
packetRepository.getAllPackets().collect { packets ->
_packets.value = packets
@ -300,10 +292,6 @@ class UIViewModel @Inject constructor(
}
}
fun deleteAllLogs() = viewModelScope.launch(Dispatchers.IO) {
meshLogRepository.deleteAll()
}
fun deleteAllMessages() = viewModelScope.launch(Dispatchers.IO) {
packetRepository.deleteAllMessages()
}