@@ -92,12 +92,16 @@ class DeviceManager: ObservableObject {
9292 fetchRequest. predicate = NSPredicate ( format: " uuid == %@ " , id)
9393
9494 do {
95- let existingDevices = try persistenceController. container. viewContext. fetch ( fetchRequest)
95+ let context = persistenceController. container. viewContext
96+ let existingDevices = try context. fetch ( fetchRequest)
97+
98+ // There's already a paired watch
9699 if let existingDevice = existingDevices. first {
97100 return existingDevice
98101 }
99102
100- let newDevice = Device ( context: persistenceController. container. viewContext)
103+ // There's not already a paired watch, create a new object to save
104+ let newDevice = Device ( context: context)
101105 newDevice. uuid = id
102106 newDevice. bleUUID = id
103107 newDevice. blefsVersion = " "
@@ -108,9 +112,7 @@ class DeviceManager: ObservableObject {
108112 newDevice. modelNumber = " "
109113 newDevice. serial = " "
110114
111- Task {
112- await persistenceController. save ( )
113- }
115+ try context. save ( )
114116
115117 return newDevice
116118 } catch {
@@ -121,8 +123,7 @@ class DeviceManager: ObservableObject {
121123
122124 // Get settings from settings file from watch and save it to keep device object up-to-date
123125 func updateSettings( settings: Settings ) {
124- guard let uuid = bleManager. pairedDevice? . uuid else { return }
125- guard let device = fetchDevice ( with: uuid) else { return }
126+ guard let device = fetchDevice ( ) else { return }
126127
127128 device. brightLevel = Int16 ( settings. brightLevel. rawValue)
128129 device. chimesOption = Int16 ( settings. chimesOption. rawValue)
@@ -193,13 +194,11 @@ class DeviceManager: ObservableObject {
193194 }
194195 }
195196
196- func fetchAllDevices( ) async {
197+ func fetchAllDevices( ) {
197198 let fetchRequest : NSFetchRequest < Device > = Device . fetchRequest ( )
198199
199200 do {
200- try await persistenceController. container. performBackgroundTask { context in
201- self . watches = try context. fetch ( fetchRequest)
202- }
201+ self . watches = try self . persistenceController. container. viewContext. fetch ( fetchRequest)
203202 } catch {
204203 log ( " Error fetching devices: \( error. localizedDescription) " , caller: " DeviceManager " )
205204 }
0 commit comments