Skip to content

Commit 655828d

Browse files
committed
Save point
1 parent 1595298 commit 655828d

5 files changed

Lines changed: 16 additions & 20 deletions

File tree

InfiniLink/BLE/BLECharacteristicHandler.swift

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ struct BLECharacteristicHandler {
1919
let remindersManager = RemindersManager.shared
2020
let deviceManager = DeviceManager.shared
2121
let fitnessCalculator = FitnessCalculator.shared
22-
23-
let viewContext = PersistenceController.shared.container.viewContext
22+
let persistenceController = PersistenceController.shared
2423

2524
@AppStorage("filterHeartRateData") var filterHeartRateData: Bool = false
2625
@AppStorage("remindOnStepGoalCompletion") var remindOnStepGoalCompletion = true
@@ -34,7 +33,7 @@ struct BLECharacteristicHandler {
3433
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "timestamp", ascending: true)]
3534

3635
do {
37-
return try viewContext.fetch(fetchRequest)
36+
return try persistenceController.container.viewContext.fetch(fetchRequest)
3837
} catch {
3938
log("Error fetching heart points: \(error)", caller: "BLECharacteristicHandler")
4039
return []

InfiniLink/BLE/BLEManager.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph
200200
await deviceManager.removeDevice(device ?? pairedDevice)
201201
}
202202
// Update the list of user watches
203-
await deviceManager.fetchAllDevices()
203+
deviceManager.fetchAllDevices()
204204

205205
if let first = deviceManager.watches.first, deviceManager.watches.count <= 1 {
206206
// Switch to the user's next watch

InfiniLink/BLE/DeviceManager.swift

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}

InfiniLink/Core/Connect/MyDevicesView.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,7 @@ struct MyDevicesView: View {
9797
ConnectView()
9898
}
9999
.onAppear {
100-
Task {
101-
await deviceManager.fetchAllDevices()
102-
}
100+
deviceManager.fetchAllDevices()
103101
}
104102
}
105103
.navigationViewStyle(.stack)

InfiniLink/Core/Settings/General/Filesystem/Views/FileSystemDetailView.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,6 @@ struct FileSystemDetailView: View {
135135

136136
guard let info = try? bleFs.convertDataToReadableFile(data: data, fileExtension: `extension`) else { return }
137137

138-
self.isLoadingFile = false
139-
140138
switch `extension` {
141139
case "txt":
142140
self.textData = info as? String
@@ -147,6 +145,8 @@ struct FileSystemDetailView: View {
147145
default:
148146
self.textData = "This file is not currently supported."
149147
}
148+
149+
self.isLoadingFile = false
150150
}
151151
}
152152
}

0 commit comments

Comments
 (0)