@@ -21,7 +21,7 @@ class DeviceManager: ObservableObject {
2121 }
2222 let cbuuids = cbuuid ( )
2323
24- let context = PersistenceController . shared. container . viewContext
24+ let persistenceController = PersistenceController . shared
2525 let bleManager = BLEManager . shared
2626
2727 static let shared = DeviceManager ( )
@@ -92,12 +92,12 @@ class DeviceManager: ObservableObject {
9292 fetchRequest. predicate = NSPredicate ( format: " uuid == %@ " , id)
9393
9494 do {
95- let existingDevices = try context . fetch ( fetchRequest)
95+ let existingDevices = try persistenceController . container . viewContext . fetch ( fetchRequest)
9696 if let existingDevice = existingDevices. first {
9797 return existingDevice
9898 }
9999
100- let newDevice = Device ( context: context )
100+ let newDevice = Device ( context: persistenceController . container . viewContext )
101101 newDevice. uuid = id
102102 newDevice. bleUUID = id
103103 newDevice. blefsVersion = " "
@@ -108,7 +108,10 @@ class DeviceManager: ObservableObject {
108108 newDevice. modelNumber = " "
109109 newDevice. serial = " "
110110
111- try context. save ( )
111+ Task {
112+ await persistenceController. save ( )
113+ }
114+
112115 return newDevice
113116 } catch {
114117 log ( " Error fetching or saving device: \( error) " , caller: " DeviceManager " )
@@ -131,21 +134,21 @@ class DeviceManager: ObservableObject {
131134 device. stepsGoal = Int32 ( settings. stepsGoal)
132135 device. screenTimeout = Int32 ( settings. screenTimeOut)
133136
134- let pineTimeStyle = PineTimeStyleWatchface ( context: context )
137+ let pineTimeStyle = PineTimeStyleWatchface ( context: persistenceController . container . viewContext )
135138 pineTimeStyle. colorBG = Int16 ( settings. pineTimeStyle. ColorBG. rawValue)
136139 pineTimeStyle. colorBar = Int16 ( settings. pineTimeStyle. ColorBar. rawValue)
137140 pineTimeStyle. colorTime = Int16 ( settings. pineTimeStyle. ColorTime. rawValue)
138141 pineTimeStyle. guageStyle = Int16 ( settings. pineTimeStyle. gaugeStyle. rawValue)
139142 pineTimeStyle. weatherEnable = Int16 ( settings. pineTimeStyle. weatherEnable. rawValue)
140143 device. pineTimeStyle = pineTimeStyle
141144
142- let infineatWatchFace = InfineatWatchface ( context: context )
145+ let infineatWatchFace = InfineatWatchface ( context: persistenceController . container . viewContext )
143146 infineatWatchFace. colorIndex = Int16 ( settings. watchFaceInfineat. colorIndex)
144147 infineatWatchFace. showSideCover = settings. watchFaceInfineat. showSideCover
145148 device. watchFaceInfineat = infineatWatchFace
146149
147150 Task {
148- await save ( )
151+ await persistenceController . save ( )
149152 }
150153
151154 getSettings ( )
@@ -158,7 +161,7 @@ class DeviceManager: ObservableObject {
158161 device. name = name
159162
160163 Task {
161- await save ( )
164+ await persistenceController . save ( )
162165 }
163166 }
164167
@@ -167,7 +170,7 @@ class DeviceManager: ObservableObject {
167170 fetchRequest. predicate = NSPredicate ( format: " uuid == %@ " , uuid)
168171
169172 do {
170- let existingDevices = try context . fetch ( fetchRequest)
173+ let existingDevices = try persistenceController . container . viewContext . fetch ( fetchRequest)
171174
172175 if let existingDevice = existingDevices. first {
173176 return existingDevice. name ?? " InfiniTime "
@@ -181,9 +184,9 @@ class DeviceManager: ObservableObject {
181184
182185 func removeDevice( _ device: Device ) async {
183186 do {
184- try await context . perform {
185- self . context . delete ( device)
186- try self . context . save ( )
187+ try await persistenceController . container . viewContext . perform {
188+ self . persistenceController . container . viewContext . delete ( device)
189+ try self . persistenceController . container . viewContext . save ( )
187190 }
188191 } catch {
189192 log ( error. localizedDescription, caller: " DeviceManager - removeDevice " )
@@ -194,23 +197,13 @@ class DeviceManager: ObservableObject {
194197 let fetchRequest : NSFetchRequest < Device > = Device . fetchRequest ( )
195198
196199 do {
197- try await context . perform {
198- self . watches = try self . context . fetch ( fetchRequest)
200+ try await persistenceController . container . viewContext . perform {
201+ self . watches = try self . persistenceController . container . viewContext . fetch ( fetchRequest)
199202 }
200203 } catch {
201204 log ( " Error fetching devices: \( error. localizedDescription) " , caller: " DeviceManager " )
202205 }
203206 }
204-
205- func save( ) async {
206- do {
207- try await context. perform {
208- try self . context. save ( )
209- }
210- } catch {
211- log ( error. localizedDescription, caller: " DeviceManager - updateSettings " )
212- }
213- }
214207}
215208
216209extension DeviceManager {
0 commit comments