From e9f6bafe334f9c2a8c3625ee3a13ed535a2fe06b Mon Sep 17 00:00:00 2001 From: Christoph Hagen Date: Fri, 31 Jan 2025 13:37:44 +0100 Subject: [PATCH] Add CSV export for days --- TempTrack.xcodeproj/project.pbxproj | 8 ++ .../UserInterfaceState.xcuserstate | Bin 113617 -> 125378 bytes TempTrack/Storage/CsvConverter.swift | 40 ++++++++ TempTrack/Views/DayView.swift | 39 ++++++-- TempTrack/Views/ExportSheet.swift | 1 + TempTrack/Views/ShareCsvSheet.swift | 91 ++++++++++++++++++ 6 files changed, 173 insertions(+), 6 deletions(-) create mode 100644 TempTrack/Storage/CsvConverter.swift create mode 100644 TempTrack/Views/ShareCsvSheet.swift diff --git a/TempTrack.xcodeproj/project.pbxproj b/TempTrack.xcodeproj/project.pbxproj index 6e2087f..6e013b7 100644 --- a/TempTrack.xcodeproj/project.pbxproj +++ b/TempTrack.xcodeproj/project.pbxproj @@ -49,6 +49,8 @@ E2E69B682A529FA800C6035E /* TransferHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2E69B672A529FA800C6035E /* TransferHandler.swift */; }; E2FD1D6B2D4CE64300B48627 /* ZIPFoundation in Frameworks */ = {isa = PBXBuildFile; productRef = E2FD1D6A2D4CE64300B48627 /* ZIPFoundation */; }; E2FD1D6F2D4CE83700B48627 /* ExportSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2FD1D6E2D4CE83700B48627 /* ExportSheet.swift */; }; + E2FD1D712D4CF5EB00B48627 /* CsvConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2FD1D702D4CF5E700B48627 /* CsvConverter.swift */; }; + E2FD1D732D4CF82100B48627 /* ShareCsvSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2FD1D722D4CF81900B48627 /* ShareCsvSheet.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -93,6 +95,8 @@ E2E69B652A4DA48B00C6035E /* BluetoothDevice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BluetoothDevice.swift; sourceTree = ""; }; E2E69B672A529FA800C6035E /* TransferHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransferHandler.swift; sourceTree = ""; }; E2FD1D6E2D4CE83700B48627 /* ExportSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExportSheet.swift; sourceTree = ""; }; + E2FD1D702D4CF5E700B48627 /* CsvConverter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CsvConverter.swift; sourceTree = ""; }; + E2FD1D722D4CF81900B48627 /* ShareCsvSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareCsvSheet.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -112,6 +116,7 @@ 88404DD92A2F4DB100D30244 /* Storage */ = { isa = PBXGroup; children = ( + E2FD1D702D4CF5E700B48627 /* CsvConverter.swift */, 88404DDA2A2F4DCA00D30244 /* MeasurementDailyCount.swift */, 88CDE0672A2698B400114294 /* PersistentStorage.swift */, E2A553F82A399F58005204C3 /* Log.swift */, @@ -196,6 +201,7 @@ E2A554042A4ADA93005204C3 /* TransferView.swift */, E2E69B5F2A4CD48F00C6035E /* IconAndTextView.swift */, E2FD1D6E2D4CE83700B48627 /* ExportSheet.swift */, + E2FD1D722D4CF81900B48627 /* ShareCsvSheet.swift */, ); path = Views; sourceTree = ""; @@ -312,6 +318,7 @@ E2A554142A4C9C96005204C3 /* DeviceDataRequest.swift in Sources */, 88CDE0512A2508E900114294 /* ContentView.swift in Sources */, 88CDE0702A28AEA300114294 /* TemperatureMeasurement.swift in Sources */, + E2FD1D732D4CF82100B48627 /* ShareCsvSheet.swift in Sources */, E2A554162A4C9D2E005204C3 /* DeviceDataResetRequest.swift in Sources */, 88404DE12A31CA6B00D30244 /* BluetoothResponseType.swift in Sources */, 88404DDF2A2F68E100D30244 /* TemperatureDayOverview.swift in Sources */, @@ -337,6 +344,7 @@ 88404DD22A2F0D8F00D30244 /* Double+Extensions.swift in Sources */, E2A554102A4C9C68005204C3 /* DeviceRequest.swift in Sources */, E253A9222A2B39B700EC6B28 /* Color+Extensions.swift in Sources */, + E2FD1D712D4CF5EB00B48627 /* CsvConverter.swift in Sources */, E2E69B682A529FA800C6035E /* TransferHandler.swift in Sources */, 88404DEB2A37BE3000D30244 /* DeviceWakeCause.swift in Sources */, 88CDE06D2A28A92000114294 /* DeviceInfo.swift in Sources */, diff --git a/TempTrack.xcodeproj/project.xcworkspace/xcuserdata/ch.xcuserdatad/UserInterfaceState.xcuserstate b/TempTrack.xcodeproj/project.xcworkspace/xcuserdata/ch.xcuserdatad/UserInterfaceState.xcuserstate index fa979f4f63793d4813095b38561fdb2d51e77082..e756b2f0c1f1fd6e7ac5faa4f920c4b34a0325a6 100644 GIT binary patch literal 125378 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 literal 113617 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 diff --git a/TempTrack/Storage/CsvConverter.swift b/TempTrack/Storage/CsvConverter.swift new file mode 100644 index 0000000..b291d2e --- /dev/null +++ b/TempTrack/Storage/CsvConverter.swift @@ -0,0 +1,40 @@ +import Foundation + +struct CsvConverter { + + private let dateFormatter: DateFormatter + + init() { + dateFormatter = .init() + dateFormatter.dateStyle = .short + dateFormatter.timeStyle = .medium + } + + private var header: String { + "Index;Date;Sensor 0;Sensor 1\n" + } + + func convert(measurements: [TemperatureMeasurement]) -> String { + header + measurements.enumerated().map { (index, measurement) -> String in + let parts: [String] = [ + "\(index)", + dateFormatter.string(from: measurement.date), + convert(measurement.sensor0), + convert(measurement.sensor1) + ] + + return parts.joined(separator: ";") + }.joined(separator: "\n") + } + + private func convert(_ value: TemperatureValue) -> String { + switch value { + case .notFound: + return "" + case .invalidMeasurement: + return "?" + case .value(let value): + return String(format:"%.1f", value) + } + } +} diff --git a/TempTrack/Views/DayView.swift b/TempTrack/Views/DayView.swift index 3bf6c77..f972679 100644 --- a/TempTrack/Views/DayView.swift +++ b/TempTrack/Views/DayView.swift @@ -1,4 +1,5 @@ import SwiftUI +import SFSafeSymbols private let df: DateFormatter = { let df = DateFormatter() @@ -21,19 +22,45 @@ struct DayView: View { @EnvironmentObject var storage: PersistentStorage + @State + private var showShareSheet = false + + private let title: String + + init(dateIndex: Int) { + self.dateIndex = dateIndex + self.title = Date(dateIndex: dateIndex) + .formatted(date: .abbreviated, time: .omitted) + } + var entries: [TemperatureMeasurement] { storage.loadMeasurements(for: dateIndex) } var body: some View { - TemperatureDayOverview(points: entries) - List(entries) { entry in - HStack { - Text(df.string(from: entry.date)) - Spacer() - Text(entry.displayText) + VStack { + TemperatureDayOverview(points: entries) + List(entries) { entry in + HStack { + Text(entry.date.formatted(date: .omitted, time: .standard)) + Spacer() + Text(entry.displayText) + } } } + .navigationTitle(title) + .navigationBarTitleDisplayMode(.large) + .toolbar { + ToolbarItem { + Button(action: { showShareSheet = true }) { + Label("Export", systemSymbol: .arrowUpDoc) + } + } + } + .sheet(isPresented: $showShareSheet) { + ShareCsvSheet(isPresented: $showShareSheet, + measurements: entries) + } } } diff --git a/TempTrack/Views/ExportSheet.swift b/TempTrack/Views/ExportSheet.swift index 1517a67..c2fc694 100644 --- a/TempTrack/Views/ExportSheet.swift +++ b/TempTrack/Views/ExportSheet.swift @@ -39,6 +39,7 @@ struct ExportSheet: View { Button("Delete archive", action: deleteArchive) .padding() } + Button("Dismiss", action: { isPresented = false }) } .padding() } diff --git a/TempTrack/Views/ShareCsvSheet.swift b/TempTrack/Views/ShareCsvSheet.swift new file mode 100644 index 0000000..bd2d6cd --- /dev/null +++ b/TempTrack/Views/ShareCsvSheet.swift @@ -0,0 +1,91 @@ +import SwiftUI + +struct ShareCsvSheet: View { + + @Binding var isPresented: Bool + + @State + private var isCreatingFile = false + + @State var url: URL? + + @State var error: String? + + @EnvironmentObject + private var storage: PersistentStorage + + let measurements: [TemperatureMeasurement] + + var body: some View { + VStack { + Text("Export") + .font(.title) + Text("Create a CSV file of all measurements for the day") + if isCreatingFile { + ProgressView() + Text("Creating file...") + } + if let error { + Text(error) + .foregroundStyle(.red) + } + Spacer() + Button("Create file", action: createFile) + .disabled(isCreatingFile) + .padding() + if let url { + ShareLink(item: url) { + Label("Share file", systemImage: "square.and.arrow.up") + } + .padding() + Button("Delete file", action: deleteFile) + .padding() + } + Button("Dismiss", action: { isPresented = false }) + } + .padding() + } + + private func createFile() { + guard !isCreatingFile else { + return + } + isCreatingFile = true + DispatchQueue.main.async { + do { + let url = FileManager.default.temporaryDirectory.appendingPathComponent("export.csv") + let converter = CsvConverter() + let content = converter.convert(measurements: measurements) + try content.write(to: url, atomically: true, encoding: .utf8) + DispatchQueue.main.async { + self.url = url + self.error = nil + self.isCreatingFile = false + } + } catch { + DispatchQueue.main.async { + self.error = "Failed to save file: \(error.localizedDescription)" + self.isCreatingFile = false + } + } + } + } + + private func deleteFile() { + guard let url else { + return + } + do { + try FileManager.default.removeItem(at: url) + self.error = nil + self.url = nil + } catch { + self.error = "Failed to delete archive: \(error.localizedDescription)" + } + } +} + +#Preview { + ShareCsvSheet(isPresented: .constant(true), + measurements: []) +}