mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-04-20 22:23:37 +00:00
Redundant methods in RadioConfigRepository (#3198)
This commit is contained in:
parent
8be9c38ae6
commit
8317b704ea
13 changed files with 97 additions and 171 deletions
|
|
@ -23,6 +23,7 @@ import com.geeksville.mesh.LocalOnlyProtos.LocalConfig
|
|||
import com.geeksville.mesh.database.NodeRepository
|
||||
import com.geeksville.mesh.repository.bluetooth.BluetoothRepository
|
||||
import com.geeksville.mesh.repository.datastore.RadioConfigRepository
|
||||
import com.geeksville.mesh.service.ServiceRepository
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.SharingStarted
|
||||
|
|
@ -39,6 +40,7 @@ class ConnectionsViewModel
|
|||
@Inject
|
||||
constructor(
|
||||
radioConfigRepository: RadioConfigRepository,
|
||||
serviceRepository: ServiceRepository,
|
||||
nodeRepository: NodeRepository,
|
||||
bluetoothRepository: BluetoothRepository,
|
||||
private val uiPrefs: UiPrefs,
|
||||
|
|
@ -50,7 +52,7 @@ constructor(
|
|||
LocalConfig.getDefaultInstance(),
|
||||
)
|
||||
|
||||
val connectionState = radioConfigRepository.connectionState
|
||||
val connectionState = serviceRepository.connectionState
|
||||
|
||||
val myNodeInfo: StateFlow<MyNodeEntity?> = nodeRepository.myNodeInfo
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ import androidx.lifecycle.ViewModel
|
|||
import androidx.lifecycle.viewModelScope
|
||||
import com.geeksville.mesh.database.NodeRepository
|
||||
import com.geeksville.mesh.database.PacketRepository
|
||||
import com.geeksville.mesh.repository.datastore.RadioConfigRepository
|
||||
import com.geeksville.mesh.service.ServiceRepository
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.SharingStarted
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
|
|
@ -38,7 +38,7 @@ abstract class BaseMapViewModel(
|
|||
protected val mapPrefs: MapPrefs,
|
||||
nodeRepository: NodeRepository,
|
||||
packetRepository: PacketRepository,
|
||||
radioConfigRepository: RadioConfigRepository,
|
||||
serviceRepository: ServiceRepository,
|
||||
) : ViewModel() {
|
||||
|
||||
val nodes: StateFlow<List<Node>> =
|
||||
|
|
@ -72,7 +72,7 @@ abstract class BaseMapViewModel(
|
|||
val ourNodeInfo: StateFlow<Node?> = nodeRepository.ourNodeInfo
|
||||
|
||||
val isConnected =
|
||||
radioConfigRepository.connectionState
|
||||
serviceRepository.connectionState
|
||||
.map { it.isConnected() }
|
||||
.stateIn(viewModelScope, SharingStarted.WhileSubscribed(5_000), false)
|
||||
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ import com.geeksville.mesh.android.Logging
|
|||
import com.geeksville.mesh.database.MeshLogRepository
|
||||
import com.geeksville.mesh.database.NodeRepository
|
||||
import com.geeksville.mesh.repository.datastore.RadioConfigRepository
|
||||
import com.geeksville.mesh.service.ServiceRepository
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
|
|
@ -57,12 +58,14 @@ import java.util.Locale
|
|||
import javax.inject.Inject
|
||||
import kotlin.math.roundToInt
|
||||
|
||||
@Suppress("LongParameterList")
|
||||
@HiltViewModel
|
||||
class SettingsViewModel
|
||||
@Inject
|
||||
constructor(
|
||||
private val app: Application,
|
||||
private val radioConfigRepository: RadioConfigRepository,
|
||||
radioConfigRepository: RadioConfigRepository,
|
||||
private val serviceRepository: ServiceRepository,
|
||||
private val nodeRepository: NodeRepository,
|
||||
private val meshLogRepository: MeshLogRepository,
|
||||
private val uiPrefs: UiPrefs,
|
||||
|
|
@ -77,7 +80,7 @@ constructor(
|
|||
val ourNodeInfo: StateFlow<Node?> = nodeRepository.ourNodeInfo
|
||||
|
||||
val isConnected =
|
||||
radioConfigRepository.connectionState
|
||||
serviceRepository.connectionState
|
||||
.map { it.isConnected() }
|
||||
.stateIn(viewModelScope, SharingStarted.WhileSubscribed(5_000L), false)
|
||||
|
||||
|
|
@ -89,7 +92,7 @@ constructor(
|
|||
)
|
||||
|
||||
val meshService: IMeshService?
|
||||
get() = radioConfigRepository.meshService
|
||||
get() = serviceRepository.meshService
|
||||
|
||||
val provideLocation: StateFlow<Boolean> =
|
||||
myNodeInfo
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ package com.geeksville.mesh.ui.settings.radio
|
|||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.geeksville.mesh.database.NodeRepository
|
||||
import com.geeksville.mesh.repository.datastore.RadioConfigRepository
|
||||
import com.geeksville.mesh.service.ServiceRepository
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.asStateFlow
|
||||
|
|
@ -41,7 +41,7 @@ class CleanNodeDatabaseViewModel
|
|||
@Inject
|
||||
constructor(
|
||||
private val nodeRepository: NodeRepository,
|
||||
private val radioConfigRepository: RadioConfigRepository,
|
||||
private val serviceRepository: ServiceRepository,
|
||||
) : ViewModel() {
|
||||
private val _olderThanDays = MutableStateFlow(30f)
|
||||
val olderThanDays = _olderThanDays.asStateFlow()
|
||||
|
|
@ -110,7 +110,7 @@ constructor(
|
|||
if (nodeNums.isNotEmpty()) {
|
||||
nodeRepository.deleteNodes(nodeNums)
|
||||
|
||||
val service = radioConfigRepository.meshService
|
||||
val service = serviceRepository.meshService
|
||||
if (service != null) {
|
||||
for (nodeNum in nodeNums) {
|
||||
service.removeByNodenum(service.packetId, nodeNum)
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ import com.geeksville.mesh.android.GeeksvilleApplication
|
|||
import com.geeksville.mesh.android.Logging
|
||||
import com.geeksville.mesh.android.isAnalyticsAvailable
|
||||
import com.geeksville.mesh.config
|
||||
import com.geeksville.mesh.database.NodeRepository
|
||||
import com.geeksville.mesh.deviceProfile
|
||||
import com.geeksville.mesh.model.getChannelList
|
||||
import com.geeksville.mesh.model.toChannelSet
|
||||
|
|
@ -54,6 +55,7 @@ import com.geeksville.mesh.navigation.ModuleRoute
|
|||
import com.geeksville.mesh.repository.datastore.RadioConfigRepository
|
||||
import com.geeksville.mesh.repository.location.LocationRepository
|
||||
import com.geeksville.mesh.service.ConnectionState
|
||||
import com.geeksville.mesh.service.ServiceRepository
|
||||
import com.geeksville.mesh.util.UiText
|
||||
import com.google.protobuf.MessageLite
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
|
|
@ -98,6 +100,7 @@ data class RadioConfigState(
|
|||
val analyticsEnabled: Boolean = false,
|
||||
)
|
||||
|
||||
@Suppress("LongParameterList")
|
||||
@HiltViewModel
|
||||
class RadioConfigViewModel
|
||||
@Inject
|
||||
|
|
@ -105,13 +108,15 @@ constructor(
|
|||
savedStateHandle: SavedStateHandle,
|
||||
private val app: Application,
|
||||
private val radioConfigRepository: RadioConfigRepository,
|
||||
private val serviceRepository: ServiceRepository,
|
||||
private val nodeRepository: NodeRepository,
|
||||
private val locationRepository: LocationRepository,
|
||||
private val mapConsentPrefs: MapConsentPrefs,
|
||||
private val analyticsPrefs: AnalyticsPrefs,
|
||||
) : ViewModel(),
|
||||
Logging {
|
||||
private val meshService: IMeshService?
|
||||
get() = radioConfigRepository.meshService
|
||||
get() = serviceRepository.meshService
|
||||
|
||||
private val destNum = savedStateHandle.toRoute<SettingsRoutes.Settings>().destNum
|
||||
private val _destNode = MutableStateFlow<Node?>(null)
|
||||
|
|
@ -137,7 +142,7 @@ constructor(
|
|||
}
|
||||
|
||||
init {
|
||||
radioConfigRepository.nodeDBbyNum
|
||||
nodeRepository.nodeDBbyNum
|
||||
.mapLatest { nodes -> nodes[destNum] ?: nodes.values.firstOrNull() }
|
||||
.distinctUntilChanged()
|
||||
.onEach {
|
||||
|
|
@ -148,9 +153,9 @@ constructor(
|
|||
|
||||
radioConfigRepository.deviceProfileFlow.onEach { _currentDeviceProfile.value = it }.launchIn(viewModelScope)
|
||||
|
||||
radioConfigRepository.meshPacketFlow.onEach(::processPacketResponse).launchIn(viewModelScope)
|
||||
serviceRepository.meshPacketFlow.onEach(::processPacketResponse).launchIn(viewModelScope)
|
||||
|
||||
combine(radioConfigRepository.connectionState, radioConfigState) { connState, configState ->
|
||||
combine(serviceRepository.connectionState, radioConfigState) { connState, configState ->
|
||||
_radioConfigState.update { it.copy(connected = connState == ConnectionState.CONNECTED) }
|
||||
if (connState == ConnectionState.DISCONNECTED && configState.responseState.isWaiting()) {
|
||||
sendError(R.string.disconnected)
|
||||
|
|
@ -158,7 +163,7 @@ constructor(
|
|||
}
|
||||
.launchIn(viewModelScope)
|
||||
|
||||
radioConfigRepository.myNodeInfo
|
||||
nodeRepository.myNodeInfo
|
||||
.onEach { ni ->
|
||||
_radioConfigState.update { it.copy(isLocal = destNum == null || destNum == ni?.myNodeNum) }
|
||||
}
|
||||
|
|
@ -170,7 +175,7 @@ constructor(
|
|||
}
|
||||
|
||||
private val myNodeInfo: StateFlow<MyNodeEntity?>
|
||||
get() = radioConfigRepository.myNodeInfo
|
||||
get() = nodeRepository.myNodeInfo
|
||||
|
||||
val myNodeNum
|
||||
get() = myNodeInfo.value?.myNodeNum
|
||||
|
|
@ -342,7 +347,7 @@ constructor(
|
|||
"Request factory reset error",
|
||||
)
|
||||
if (destNum == myNodeNum) {
|
||||
viewModelScope.launch { radioConfigRepository.clearNodeDB() }
|
||||
viewModelScope.launch { nodeRepository.clearNodeDB() }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -353,7 +358,7 @@ constructor(
|
|||
"Request NodeDB reset error",
|
||||
)
|
||||
if (destNum == myNodeNum) {
|
||||
viewModelScope.launch { radioConfigRepository.clearNodeDB() }
|
||||
viewModelScope.launch { nodeRepository.clearNodeDB() }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue