Allow deletion of measurements
This commit is contained in:
@ -83,6 +83,10 @@ final class TemperatureStorage: ObservableObject {
|
||||
String(format: "%08d.bin", index)
|
||||
}
|
||||
|
||||
private func fileUrl(for dateIndex: Int) -> URL {
|
||||
storageFolder.appendingPathComponent(fileName(for: dateIndex))
|
||||
}
|
||||
|
||||
private func fileUrl(for fileName: String) -> URL {
|
||||
storageFolder.appendingPathComponent(fileName)
|
||||
}
|
||||
@ -148,6 +152,21 @@ final class TemperatureStorage: ObservableObject {
|
||||
updateLastMeasurements(measurements)
|
||||
}
|
||||
|
||||
func removeMeasurements(for dateIndex: Int) {
|
||||
let fileUrl = fileUrl(for: dateIndex)
|
||||
guard fm.fileExists(atPath: fileUrl.path) else {
|
||||
print("No measurements for \(fileUrl.lastPathComponent)")
|
||||
return
|
||||
}
|
||||
do {
|
||||
try fm.removeItem(at: fileUrl)
|
||||
dailyMeasurementCounts = dailyMeasurementCounts.filter { $0.dateIndex != dateIndex }
|
||||
recentMeasurements = recentMeasurements.filter { $0.date.dateIndex != dateIndex }
|
||||
} catch {
|
||||
print("Failed to delete \(fileUrl.lastPathComponent): \(error)")
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
- Returns: The number of new points
|
||||
*/
|
||||
@ -245,7 +264,7 @@ final class TemperatureStorage: ObservableObject {
|
||||
private extension Array where Element == TemperatureMeasurement {
|
||||
|
||||
@discardableResult
|
||||
mutating func insert(_ measurement: TemperatureMeasurement) -> Bool {
|
||||
mutating func insertIntoSorted(_ measurement: TemperatureMeasurement) -> Bool {
|
||||
guard !contains(measurement) else {
|
||||
return false
|
||||
}
|
||||
|
Reference in New Issue
Block a user