Create dedicated data layer types for querying and updating CoreData

This commit is contained in:
Blake McAnally 2024-07-10 16:03:38 -05:00
parent 3a248b6121
commit b011cbde42
52 changed files with 2963 additions and 3035 deletions

View file

@ -12,6 +12,7 @@ struct TelemetryConfig: View {
@Environment(\.managedObjectContext) var context
@EnvironmentObject var bleManager: BLEManager
@EnvironmentObject var queryCoreDataController: QueryCoreDataController
@Environment(\.dismiss) private var goBack
var node: NodeInfoEntity?
@ -104,7 +105,7 @@ struct TelemetryConfig: View {
.disabled(self.bleManager.connectedPeripheral == nil || node?.telemetryConfig == nil)
SaveConfigButton(node: node, hasChanges: $hasChanges) {
let connectedNode = getNodeInfo(id: bleManager.connectedPeripheral?.num ?? -1, context: context)
let connectedNode = queryCoreDataController.getNodeInfo(id: bleManager.connectedPeripheral?.num ?? -1)
if connectedNode != nil {
var tc = ModuleConfig.TelemetryConfig()
tc.deviceUpdateInterval = UInt32(deviceUpdateInterval)
@ -130,14 +131,11 @@ struct TelemetryConfig: View {
ConnectedDevice(bluetoothOn: bleManager.isSwitchedOn, deviceConnected: bleManager.connectedPeripheral != nil, name: (bleManager.connectedPeripheral != nil) ? bleManager.connectedPeripheral.shortName : "?")
})
.onAppear {
if self.bleManager.context == nil {
self.bleManager.context = context
}
setTelemetryValues()
// Need to request a TelemetryModuleConfig from the remote node before allowing changes
if bleManager.connectedPeripheral != nil && node?.telemetryConfig == nil {
Logger.mesh.info("empty telemetry module config")
let connectedNode = getNodeInfo(id: bleManager.connectedPeripheral.num, context: context)
let connectedNode = queryCoreDataController.getNodeInfo(id: bleManager.connectedPeripheral.num)
if node != nil && connectedNode != nil {
_ = bleManager.requestTelemetryModuleConfig(fromUser: connectedNode!.user!, toUser: node!.user!, adminIndex: connectedNode?.myInfo?.adminIndex ?? 0)
}