Skip to content

Commit da3183d

Browse files
committed
Convert imported pull requests to swift data
1 parent 6ee2a83 commit da3183d

3 files changed

Lines changed: 7 additions & 16 deletions

File tree

Meshtastic/Accessory/Accessory Manager/AccessoryManager.swift

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -178,18 +178,11 @@ class AccessoryManager: ObservableObject, MqttClientProxyManagerDelegate {
178178
self.state = .uninitialized
179179
self.mqttManager.delegate = self
180180

181-
// Listen for system memory warnings to proactively release Core Data object data
181+
// Listen for system memory warnings to proactively save pending changes
182182
NotificationCenter.default.addObserver(forName: UIApplication.didReceiveMemoryWarningNotification, object: nil, queue: .main) { [weak self] _ in
183183
guard let self else { return }
184-
self.context.refreshAllObjects()
185-
Logger.data.warning("⚠️ [AccessoryManager] Memory warning — refreshed viewContext (\(self.context.registeredObjects.count) registered objects)")
186-
Task {
187-
let bgContext = await MeshPackets.shared.backgroundContext
188-
await bgContext.perform {
189-
bgContext.refreshAllObjects()
190-
Logger.data.warning("⚠️ [MeshPackets] Memory warning — refreshed backgroundContext (\(bgContext.registeredObjects.count) registered objects)")
191-
}
192-
}
184+
try? self.context.save()
185+
Logger.data.warning("⚠️ [AccessoryManager] Memory warning — saved context")
193186
}
194187
}
195188

@@ -303,11 +296,9 @@ class AccessoryManager: ObservableObject, MqttClientProxyManagerDelegate {
303296
await wantDatabaseGate.cancelAll()
304297
await wantDatabaseGate.reset()
305298

306-
// Re-fault all registered objects on the viewContext to release their in-memory data.
307-
// Objects stay registered but their property storage is freed, which prevents unbounded
308-
// memory growth across disconnect/reconnect cycles on long-running sessions.
309-
context.refreshAllObjects()
310-
Logger.data.info("💾 [AccessoryManager] Refreshed viewContext on disconnect (\(self.context.registeredObjects.count) registered objects)")
299+
// Save any pending changes and let SwiftData manage object lifecycle on disconnect.
300+
try? context.save()
301+
Logger.data.info("💾 [AccessoryManager] Saved context on disconnect")
311302

312303
// Turn off the disconnect buttons
313304
allowDisconnect = false

Meshtastic/Views/Messages/ChannelMessageList.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ struct ChannelMessageList: View {
2222
@State private var redrawTapbacksTrigger = UUID()
2323
@AppStorage("preferredPeripheralNum") private var preferredPeripheralNum = -1
2424
@State private var messageToHighlight: Int64 = 0
25+
@State private var needsReadSync: Bool = false
2526
@Query private var allPrivateMessages: [MessageEntity]
2627

2728
init(myInfo: MyInfoEntity, channel: ChannelEntity) {

Meshtastic/Views/Nodes/Helpers/NodeDetail.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ struct NodeDetail: View {
2424
@State private var showingShutdownConfirm: Bool = false
2525
@State private var showingRebootConfirm: Bool = false
2626
@State private var dateFormatRelative: Bool = true
27-
var connectedNode: NodeInfoEntity?
2827
@Bindable var node: NodeInfoEntity
2928
@State private var environmentSectionHeight: CGFloat = 0
3029

0 commit comments

Comments
 (0)