From a2228d63b28338c4d52a79af492049e519636218 Mon Sep 17 00:00:00 2001 From: Christoph Hagen Date: Tue, 19 Mar 2024 14:25:51 +0100 Subject: [PATCH] Import workouts to health, improve UI --- HealthImport.xcodeproj/project.pbxproj | 62 +++- .../xcshareddata/swiftpm/Package.resolved | 4 +- HealthImport/ActivityDetailView.swift | 3 +- .../AccentColor.colorset/Contents.json | 9 + .../AppIcon.appiconset/Contents.json | 1 + .../AppIcon.appiconset/HealthImport.jpg | Bin 0 -> 472071 bytes HealthImport/DetailRow.swift | 7 +- HealthImport/EventDetailView.swift | 4 +- HealthImport/HealthImportApp.swift | 8 +- HealthImport/Support/Color+Extensions.swift | 13 + HealthImport/Support/Date+Extensions.swift | 4 + HealthImport/Support/Event+Identifiable.swift | 11 + .../Support/HKWorkoutActivityType+Icon.swift | 181 ++++++++++ .../Support/MKMapRect+Extensions.swift | 16 + HealthImport/Support/MetadataKey+String.swift | 7 + HealthImport/Tabs/DatabasesTab.swift | 2 + HealthImport/Tabs/WorkoutTab.swift | 112 ++++-- HealthImport/UI Elements/HeartRateGraph.swift | 80 +++++ .../UI Elements/HeartRateSample.swift | 107 ++++++ HealthImport/UI Elements/RouteView.swift | 32 ++ HealthImport/UI Elements/WorkoutListRow.swift | 126 +++++++ HealthImport/UI Elements/WorkoutMapView.swift | 72 ++++ .../UI Elements/WorkoutTypeSelection.swift | 52 +++ HealthImport/WorkoutDetailView.swift | 330 +++++++++++++----- HealthImport/WorkoutEventsView.swift | 26 -- HealthImport/WorkoutMetadataView.swift | 25 -- 26 files changed, 1129 insertions(+), 165 deletions(-) create mode 100644 HealthImport/Assets.xcassets/AppIcon.appiconset/HealthImport.jpg create mode 100644 HealthImport/Support/Color+Extensions.swift create mode 100644 HealthImport/Support/Event+Identifiable.swift create mode 100644 HealthImport/Support/HKWorkoutActivityType+Icon.swift create mode 100644 HealthImport/Support/MKMapRect+Extensions.swift create mode 100644 HealthImport/Support/MetadataKey+String.swift create mode 100644 HealthImport/UI Elements/HeartRateGraph.swift create mode 100644 HealthImport/UI Elements/HeartRateSample.swift create mode 100644 HealthImport/UI Elements/RouteView.swift create mode 100644 HealthImport/UI Elements/WorkoutListRow.swift create mode 100644 HealthImport/UI Elements/WorkoutMapView.swift create mode 100644 HealthImport/UI Elements/WorkoutTypeSelection.swift delete mode 100644 HealthImport/WorkoutEventsView.swift delete mode 100644 HealthImport/WorkoutMetadataView.swift diff --git a/HealthImport.xcodeproj/project.pbxproj b/HealthImport.xcodeproj/project.pbxproj index 33f5e5f..27b3e47 100644 --- a/HealthImport.xcodeproj/project.pbxproj +++ b/HealthImport.xcodeproj/project.pbxproj @@ -40,8 +40,6 @@ E2A38EA32B9A024500BAD02E /* Workout+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2A38EA22B9A024500BAD02E /* Workout+Extensions.swift */; }; E2A38EA52B9C6EA900BAD02E /* SearchHealthStoreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2A38EA42B9C6EA900BAD02E /* SearchHealthStoreView.swift */; }; E2A38EA82B9C6EE800BAD02E /* SFSafeSymbols in Frameworks */ = {isa = PBXBuildFile; productRef = E2A38EA72B9C6EE800BAD02E /* SFSafeSymbols */; }; - E2A38EAA2B9C862600BAD02E /* WorkoutEventsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2A38EA92B9C862600BAD02E /* WorkoutEventsView.swift */; }; - E2A38EAC2B9C8E4B00BAD02E /* WorkoutMetadataView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2A38EAB2B9C8E4B00BAD02E /* WorkoutMetadataView.swift */; }; E2E552892BA2194400BF5E9B /* DatabasesTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2E552882BA2194400BF5E9B /* DatabasesTab.swift */; }; E2E5528C2BA21C0700BF5E9B /* HealthDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2E5528B2BA21C0700BF5E9B /* HealthDatabase.swift */; }; E2E5528E2BA21C5900BF5E9B /* FileManager+Directory.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2E5528D2BA21C5900BF5E9B /* FileManager+Directory.swift */; }; @@ -49,6 +47,17 @@ E2E552922BA236D000BF5E9B /* DatabaseFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2E552912BA236D000BF5E9B /* DatabaseFile.swift */; }; E2E5529B2BA3935600BF5E9B /* HKWorkout+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2E5529A2BA3935600BF5E9B /* HKWorkout+Extensions.swift */; }; E2E5529E2BA47BA600BF5E9B /* HealthDB in Frameworks */ = {isa = PBXBuildFile; productRef = E2E5529D2BA47BA600BF5E9B /* HealthDB */; }; + E2E552A12BA4B14600BF5E9B /* HeartRateSample.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2E552A02BA4B14600BF5E9B /* HeartRateSample.swift */; }; + E2E552A32BA4B58F00BF5E9B /* HeartRateGraph.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2E552A22BA4B58F00BF5E9B /* HeartRateGraph.swift */; }; + E2E552A72BA7531C00BF5E9B /* Event+Identifiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2E552A62BA7531C00BF5E9B /* Event+Identifiable.swift */; }; + E2E552AB2BA859A700BF5E9B /* MetadataKey+String.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2E552AA2BA859A700BF5E9B /* MetadataKey+String.swift */; }; + E2E552AD2BA98B9B00BF5E9B /* RouteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2E552AC2BA98B9B00BF5E9B /* RouteView.swift */; }; + E2E552AF2BA98BCF00BF5E9B /* WorkoutMapView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2E552AE2BA98BCF00BF5E9B /* WorkoutMapView.swift */; }; + E2E552B12BA98BE000BF5E9B /* MKMapRect+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2E552B02BA98BE000BF5E9B /* MKMapRect+Extensions.swift */; }; + E2E552B32BA9A1D600BF5E9B /* WorkoutTypeSelection.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2E552B22BA9A1D500BF5E9B /* WorkoutTypeSelection.swift */; }; + E2E552B52BA9A5D200BF5E9B /* WorkoutListRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2E552B42BA9A5D200BF5E9B /* WorkoutListRow.swift */; }; + E2E552B72BA9A69400BF5E9B /* Color+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2E552B62BA9A69400BF5E9B /* Color+Extensions.swift */; }; + E2E552B92BA9A77D00BF5E9B /* HKWorkoutActivityType+Icon.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2E552B82BA9A77D00BF5E9B /* HKWorkoutActivityType+Icon.swift */; }; E2FDFF202B6BE34C0080A7B3 /* SwiftProtobuf in Frameworks */ = {isa = PBXBuildFile; productRef = E2FDFF1F2B6BE34C0080A7B3 /* SwiftProtobuf */; }; E2FDFF292B6D10D60080A7B3 /* String+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2FDFF282B6D10D60080A7B3 /* String+Extensions.swift */; }; /* End PBXBuildFile section */ @@ -82,8 +91,6 @@ E27BC6972B5FD76F003A8873 /* Data+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Data+Extensions.swift"; sourceTree = ""; }; E2A38EA22B9A024500BAD02E /* Workout+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Workout+Extensions.swift"; sourceTree = ""; }; E2A38EA42B9C6EA900BAD02E /* SearchHealthStoreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchHealthStoreView.swift; sourceTree = ""; }; - E2A38EA92B9C862600BAD02E /* WorkoutEventsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WorkoutEventsView.swift; sourceTree = ""; }; - E2A38EAB2B9C8E4B00BAD02E /* WorkoutMetadataView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WorkoutMetadataView.swift; sourceTree = ""; }; E2E552882BA2194400BF5E9B /* DatabasesTab.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabasesTab.swift; sourceTree = ""; }; E2E5528B2BA21C0700BF5E9B /* HealthDatabase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HealthDatabase.swift; sourceTree = ""; }; E2E5528D2BA21C5900BF5E9B /* FileManager+Directory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FileManager+Directory.swift"; sourceTree = ""; }; @@ -91,6 +98,17 @@ E2E552912BA236D000BF5E9B /* DatabaseFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabaseFile.swift; sourceTree = ""; }; E2E552932BA23B8F00BF5E9B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; E2E5529A2BA3935600BF5E9B /* HKWorkout+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "HKWorkout+Extensions.swift"; sourceTree = ""; }; + E2E552A02BA4B14600BF5E9B /* HeartRateSample.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeartRateSample.swift; sourceTree = ""; }; + E2E552A22BA4B58F00BF5E9B /* HeartRateGraph.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeartRateGraph.swift; sourceTree = ""; }; + E2E552A62BA7531C00BF5E9B /* Event+Identifiable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Event+Identifiable.swift"; sourceTree = ""; }; + E2E552AA2BA859A700BF5E9B /* MetadataKey+String.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MetadataKey+String.swift"; sourceTree = ""; }; + E2E552AC2BA98B9B00BF5E9B /* RouteView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RouteView.swift; sourceTree = ""; }; + E2E552AE2BA98BCF00BF5E9B /* WorkoutMapView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WorkoutMapView.swift; sourceTree = ""; }; + E2E552B02BA98BE000BF5E9B /* MKMapRect+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MKMapRect+Extensions.swift"; sourceTree = ""; }; + E2E552B22BA9A1D500BF5E9B /* WorkoutTypeSelection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WorkoutTypeSelection.swift; sourceTree = ""; }; + E2E552B42BA9A5D200BF5E9B /* WorkoutListRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WorkoutListRow.swift; sourceTree = ""; }; + E2E552B62BA9A69400BF5E9B /* Color+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Color+Extensions.swift"; sourceTree = ""; }; + E2E552B82BA9A77D00BF5E9B /* HKWorkoutActivityType+Icon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "HKWorkoutActivityType+Icon.swift"; sourceTree = ""; }; E2FDFF282B6D10D60080A7B3 /* String+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Extensions.swift"; sourceTree = ""; }; E2FDFF342B6E59030080A7B3 /* HealthImport.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = HealthImport.entitlements; sourceTree = ""; }; /* End PBXFileReference section */ @@ -142,8 +160,7 @@ E2E552872BA2193B00BF5E9B /* Tabs */, E2A38EA42B9C6EA900BAD02E /* SearchHealthStoreView.swift */, 8850028C2B5D0B5000E7D4DB /* WorkoutDetailView.swift */, - E2A38EAB2B9C8E4B00BAD02E /* WorkoutMetadataView.swift */, - E2A38EA92B9C862600BAD02E /* WorkoutEventsView.swift */, + E2E5529F2BA4B13100BF5E9B /* UI Elements */, 885002922B5D129300E7D4DB /* ActivityDetailView.swift */, E27BC68B2B5FC842003A8873 /* ActivitySamplesView.swift */, E201EC7E2B629B4C005B83D3 /* SampleListView.swift */, @@ -193,6 +210,11 @@ E2A38EA22B9A024500BAD02E /* Workout+Extensions.swift */, E2E5528D2BA21C5900BF5E9B /* FileManager+Directory.swift */, E2E5529A2BA3935600BF5E9B /* HKWorkout+Extensions.swift */, + E2E552A62BA7531C00BF5E9B /* Event+Identifiable.swift */, + E2E552AA2BA859A700BF5E9B /* MetadataKey+String.swift */, + E2E552B02BA98BE000BF5E9B /* MKMapRect+Extensions.swift */, + E2E552B62BA9A69400BF5E9B /* Color+Extensions.swift */, + E2E552B82BA9A77D00BF5E9B /* HKWorkoutActivityType+Icon.swift */, ); path = Support; sourceTree = ""; @@ -223,6 +245,19 @@ name = Frameworks; sourceTree = ""; }; + E2E5529F2BA4B13100BF5E9B /* UI Elements */ = { + isa = PBXGroup; + children = ( + E2E552A02BA4B14600BF5E9B /* HeartRateSample.swift */, + E2E552A22BA4B58F00BF5E9B /* HeartRateGraph.swift */, + E2E552AC2BA98B9B00BF5E9B /* RouteView.swift */, + E2E552AE2BA98BCF00BF5E9B /* WorkoutMapView.swift */, + E2E552B22BA9A1D500BF5E9B /* WorkoutTypeSelection.swift */, + E2E552B42BA9A5D200BF5E9B /* WorkoutListRow.swift */, + ); + path = "UI Elements"; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -315,35 +350,44 @@ E201EC7F2B629B4C005B83D3 /* SampleListView.swift in Sources */, E2A38EA32B9A024500BAD02E /* Workout+Extensions.swift in Sources */, E2E552922BA236D000BF5E9B /* DatabaseFile.swift in Sources */, - E2A38EAC2B9C8E4B00BAD02E /* WorkoutMetadataView.swift in Sources */, E27BC6982B5FD76F003A8873 /* Data+Extensions.swift in Sources */, 8850025D2B5C273C00E7D4DB /* WorkoutTab.swift in Sources */, 8850029B2B5D16E200E7D4DB /* TimeInterval+Extensions.swift in Sources */, 885002792B5C320400E7D4DB /* Optional+Extensions.swift in Sources */, E27BC6822B5E762D003A8873 /* LocationSampleDetailView.swift in Sources */, E201EC752B626B19005B83D3 /* Metadata+Mock.swift in Sources */, + E2E552B92BA9A77D00BF5E9B /* HKWorkoutActivityType+Icon.swift in Sources */, 8850028F2B5D0EAF00E7D4DB /* Date+Extensions.swift in Sources */, + E2E552B72BA9A69400BF5E9B /* Color+Extensions.swift in Sources */, E27BC6922B5FD488003A8873 /* HealthDatabase+Mock.swift in Sources */, E27BC6842B5E76A4003A8873 /* Location+Mock.swift in Sources */, 885002932B5D129300E7D4DB /* ActivityDetailView.swift in Sources */, + E2E552A32BA4B58F00BF5E9B /* HeartRateGraph.swift in Sources */, + E2E552AF2BA98BCF00BF5E9B /* WorkoutMapView.swift in Sources */, E27BC6962B5FD61D003A8873 /* WorkoutEvent+Mock.swift in Sources */, E2E5529B2BA3935600BF5E9B /* HKWorkout+Extensions.swift in Sources */, E27BC6802B5E74D7003A8873 /* LocationSampleListView.swift in Sources */, 8850028D2B5D0B5000E7D4DB /* WorkoutDetailView.swift in Sources */, - E2A38EAA2B9C862600BAD02E /* WorkoutEventsView.swift in Sources */, + E2E552A72BA7531C00BF5E9B /* Event+Identifiable.swift in Sources */, 885002952B5D147100E7D4DB /* DetailRow.swift in Sources */, + E2E552A12BA4B14600BF5E9B /* HeartRateSample.swift in Sources */, E2FDFF292B6D10D60080A7B3 /* String+Extensions.swift in Sources */, E201EC732B626A30005B83D3 /* WorkoutActivity+Mock.swift in Sources */, E2E552892BA2194400BF5E9B /* DatabasesTab.swift in Sources */, E2E552902BA236A000BF5E9B /* DatabaseList.swift in Sources */, + E2E552B12BA98BE000BF5E9B /* MKMapRect+Extensions.swift in Sources */, 8850029D2B5D197300E7D4DB /* EventDetailView.swift in Sources */, E2E5528C2BA21C0700BF5E9B /* HealthDatabase.swift in Sources */, E2E5528E2BA21C5900BF5E9B /* FileManager+Directory.swift in Sources */, E2A38EA52B9C6EA900BAD02E /* SearchHealthStoreView.swift in Sources */, + E2E552B32BA9A1D600BF5E9B /* WorkoutTypeSelection.swift in Sources */, E27BC67E2B5E6CE3003A8873 /* Sequence+Extensions.swift in Sources */, + E2E552AB2BA859A700BF5E9B /* MetadataKey+String.swift in Sources */, E20881D52B76944A00D41D95 /* Test.swift in Sources */, E27BC68C2B5FC842003A8873 /* ActivitySamplesView.swift in Sources */, + E2E552B52BA9A5D200BF5E9B /* WorkoutListRow.swift in Sources */, E27BC6942B5FD587003A8873 /* Workout+Mock.swift in Sources */, + E2E552AD2BA98B9B00BF5E9B /* RouteView.swift in Sources */, 8850025B2B5C273C00E7D4DB /* HealthImportApp.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -475,6 +519,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CODE_SIGN_ENTITLEMENTS = HealthImport/HealthImport.entitlements; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; @@ -510,6 +555,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CODE_SIGN_ENTITLEMENTS = HealthImport/HealthImport.entitlements; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; diff --git a/HealthImport.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/HealthImport.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index b071860..4c6aaf3 100644 --- a/HealthImport.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/HealthImport.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -7,7 +7,7 @@ "location" : "https://github.com/christophhagen/HealthDB", "state" : { "branch" : "main", - "revision" : "90b616517861733c1f52ef6f0aaf42849b44e09f" + "revision" : "50d572b72d0b52370f8b76bb41cf3f8c3e249c8e" } }, { @@ -16,7 +16,7 @@ "location" : "https://github.com/christophhagen/HealthKitExtensions", "state" : { "branch" : "main", - "revision" : "a7f6612e959a76f211d8526adfd9b5bf88442bb8" + "revision" : "60f797e058ba77622de41198b59040d6404b6783" } }, { diff --git a/HealthImport/ActivityDetailView.swift b/HealthImport/ActivityDetailView.swift index cb3cca0..43adb89 100644 --- a/HealthImport/ActivityDetailView.swift +++ b/HealthImport/ActivityDetailView.swift @@ -1,5 +1,6 @@ import SwiftUI import HealthKit +import HealthKitExtensions import HealthDB import CoreLocation @@ -53,7 +54,7 @@ struct ActivityDetailView: View { if !(activity.metadata?.isEmpty ?? true) { Section("Metadata") { ForEach(metadata, id: \.key) { (key, value) in - DetailRow(key, value: "\(value)") + DetailRow(MetadataKeyName(key), value: "\(value)") } } } diff --git a/HealthImport/Assets.xcassets/AccentColor.colorset/Contents.json b/HealthImport/Assets.xcassets/AccentColor.colorset/Contents.json index eb87897..a3761cd 100644 --- a/HealthImport/Assets.xcassets/AccentColor.colorset/Contents.json +++ b/HealthImport/Assets.xcassets/AccentColor.colorset/Contents.json @@ -1,6 +1,15 @@ { "colors" : [ { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.253", + "green" : "1.000", + "red" : "0.789" + } + }, "idiom" : "universal" } ], diff --git a/HealthImport/Assets.xcassets/AppIcon.appiconset/Contents.json b/HealthImport/Assets.xcassets/AppIcon.appiconset/Contents.json index 13613e3..0934931 100644 --- a/HealthImport/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/HealthImport/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,6 +1,7 @@ { "images" : [ { + "filename" : "HealthImport.jpg", "idiom" : "universal", "platform" : "ios", "size" : "1024x1024" diff --git a/HealthImport/Assets.xcassets/AppIcon.appiconset/HealthImport.jpg b/HealthImport/Assets.xcassets/AppIcon.appiconset/HealthImport.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8331ad801041436f3c8e2fdcc164ac78a51cc5bf GIT binary patch literal 472071 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 TiSCEllc=_#6@5t8 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 literal 0 HcmV?d00001 diff --git a/HealthImport/DetailRow.swift b/HealthImport/DetailRow.swift index 9c10ba8..eabf51d 100644 --- a/HealthImport/DetailRow.swift +++ b/HealthImport/DetailRow.swift @@ -15,7 +15,12 @@ struct DetailRow: View { self.title = title self.value = value?.description ?? "-" } - + + init(_ title: String, time value: Date?) { + self.title = title + self.value = value?.timeText ?? "-" + } + init(_ title: String, date value: Date?) { self.title = title self.value = value?.timeAndDateText ?? "-" diff --git a/HealthImport/EventDetailView.swift b/HealthImport/EventDetailView.swift index f4b968a..806aa3f 100644 --- a/HealthImport/EventDetailView.swift +++ b/HealthImport/EventDetailView.swift @@ -1,5 +1,7 @@ import SwiftUI import HealthKit +import HealthKitExtensions +import HealthDB struct EventDetailView: View { @@ -18,7 +20,7 @@ struct EventDetailView: View { //DetailRow("Error", value: event.error) Section("Metadata") { ForEach(metadata, id: \.key) { (key, value) in - DetailRow(key, value: "\(value)") + DetailRow(MetadataKeyName(key), value: "\(value)") } } } diff --git a/HealthImport/HealthImportApp.swift b/HealthImport/HealthImportApp.swift index a13f19f..0dbc3b2 100644 --- a/HealthImport/HealthImportApp.swift +++ b/HealthImport/HealthImportApp.swift @@ -15,13 +15,15 @@ struct HealthImportApp: App { var database = Database() @State - private var selection: TabSelection = .databases + private var selection: TabSelection = .workouts @State private var databaseList = DatabaseList() init() { performStartup() + selection = .workouts + print("Startup finished, tab: \(selection)") } private func performStartup() { @@ -39,7 +41,8 @@ struct HealthImportApp: App { return } DispatchQueue.main.async { - selection = .workouts + print("Setting selection to workouts") + self.selection = .workouts } } } @@ -57,6 +60,7 @@ struct HealthImportApp: App { .tabItem {Label("Databases", systemSymbol: .archivebox) } .tag(TabSelection.databases) } + .preferredColorScheme(.dark) } } } diff --git a/HealthImport/Support/Color+Extensions.swift b/HealthImport/Support/Color+Extensions.swift new file mode 100644 index 0000000..b1f542f --- /dev/null +++ b/HealthImport/Support/Color+Extensions.swift @@ -0,0 +1,13 @@ +import Foundation +import SwiftUI + +extension Color { + + static var glowingGreen: Color { + .init(hue: 0.25, saturation: 0.7, brightness: 0.95) + } + + static var lightGray: Color { + .secondary.opacity(0.9) + } +} diff --git a/HealthImport/Support/Date+Extensions.swift b/HealthImport/Support/Date+Extensions.swift index 6674114..b795a93 100644 --- a/HealthImport/Support/Date+Extensions.swift +++ b/HealthImport/Support/Date+Extensions.swift @@ -64,6 +64,10 @@ extension Date { return justDateFormatter.string(from: self) } + var timeText: String { + timeFormatter.string(from: self) + } + var timeAndDateText: String { dateFormatter.timeZone = .current return dateFormatter.string(from: self) diff --git a/HealthImport/Support/Event+Identifiable.swift b/HealthImport/Support/Event+Identifiable.swift new file mode 100644 index 0000000..966751d --- /dev/null +++ b/HealthImport/Support/Event+Identifiable.swift @@ -0,0 +1,11 @@ +import Foundation +import HealthKit + +extension HKWorkoutEvent: Identifiable { + + public var id: Int { + Int(dateInterval.start.timeIntervalSinceReferenceDate) << 16 + + Int(dateInterval.duration) << 8 + + type.rawValue + } +} diff --git a/HealthImport/Support/HKWorkoutActivityType+Icon.swift b/HealthImport/Support/HKWorkoutActivityType+Icon.swift new file mode 100644 index 0000000..d0d84b2 --- /dev/null +++ b/HealthImport/Support/HKWorkoutActivityType+Icon.swift @@ -0,0 +1,181 @@ +import Foundation +import HealthKit +import SFSafeSymbols + +extension HKWorkoutActivityType { + + func icon(indoor: Bool) -> SFSymbol { + switch self { + case .americanFootball: + return .figureAmericanFootball + case .archery: + return .figureArchery + case .australianFootball: + return .figureAustralianFootball + case .badminton: + return .figureBadminton + case .baseball: + return .figureBaseball + case .basketball: + return .figureBasketball + case .bowling: + return .figureBowling + case .boxing: + return .figureBoxing + case .climbing: + return .figureClimbing + case .cricket: + return .figureCricket + case .crossTraining: + return .figureCrossTraining + case .curling: + return .figureCurling + case .cycling: + return indoor ? .figureIndoorCycle : .figureOutdoorCycle + case .dance: + return .figureDance + case .danceInspiredTraining: + return .figurePlay + case .elliptical: + return .figureElliptical + case .equestrianSports: + return .figureEquestrianSports + case .fencing: + return .figureFencing + case .fishing: + return .figureFishing + case .functionalStrengthTraining: + return .figureStrengthtrainingFunctional + case .golf: + return .figureGolf + case .gymnastics: + return .figureGymnastics + case .handball: + return .figureHandball + case .hiking: + return .figureHiking + case .hockey: + return .figureHockey + case .hunting: + return .figureHunting + case .lacrosse: + return .figureLacrosse + case .martialArts: + return .figureMartialArts + case .mindAndBody: + return .figureMindAndBody + case .mixedMetabolicCardioTraining: + return .figureMixedCardio + case .paddleSports: + return .heart + case .play: + return .figurePlay + case .preparationAndRecovery: + return .figureCooldown + case .racquetball: + return .figureRacquetball + case .rowing: + return .figureRower + case .rugby: + return .figureRugby + case .running: + return .figureRun + case .sailing: + return .figureSailing + case .skatingSports: + return .figureSkating + case .snowSports: + return .figureSnowboarding + case .soccer: + return .figureSoccer + case .softball: + return .figureSoftball + case .squash: + return .figureSquash + case .stairClimbing: + return .figureStairStepper + case .surfingSports: + return .figureSurfing + case .swimming: + return indoor ? .figurePoolSwim : .figureOpenWaterSwim + case .tableTennis: + return .figureTableTennis + case .tennis: + return .figureTennis + case .trackAndField: + return .figureTrackAndField + case .traditionalStrengthTraining: + return .figureStrengthtrainingTraditional + case .volleyball: + return .figureVolleyball + case .walking: + return .figureWalk + case .waterFitness: + return .figureWaterFitness + case .waterPolo: + return .figureWaterpolo + case .waterSports: + return .figureWaterFitness + case .wrestling: + return .figureWrestling + case .yoga: + return .figureYoga + case .barre: + return .figureBarre + case .coreTraining: + return .figureCoreTraining + case .crossCountrySkiing: + return .figureSkiingCrosscountry + case .downhillSkiing: + return .figureSkiingDownhill + case .flexibility: + return .figureFlexibility + case .highIntensityIntervalTraining: + return .figureHighintensityIntervaltraining + case .jumpRope: + return .figureJumprope + case .kickboxing: + return .figureKickboxing + case .pilates: + return .figurePilates + case .snowboarding: + return .figureSnowboarding + case .stairs: + return .figureStairs + case .stepTraining: + return .figureStepTraining + case .wheelchairWalkPace: + return .figureRoll + case .wheelchairRunPace: + return .figureRollRunningpace + case .taiChi: + return .figureTaichi + case .mixedCardio: + return .figureMixedCardio + case .handCycling: + return .figureHandCycling + case .discSports: + return .figureDiscSports + case .fitnessGaming: + return .gamecontroller + case .cardioDance: + return .figureDance + case .socialDance: + return .figureDance + case .pickleball: + return .figurePickleball + case .cooldown: + return .figureCooldown + case .swimBikeRun: + return .figureRunSquareStack + case .transition: + return .arrowshapeRight + case .underwaterDiving: + return .waterWavesAndArrowDown + case .other: + return .dumbbell + @unknown default: + return .dumbbell + } + } +} diff --git a/HealthImport/Support/MKMapRect+Extensions.swift b/HealthImport/Support/MKMapRect+Extensions.swift new file mode 100644 index 0000000..ac54064 --- /dev/null +++ b/HealthImport/Support/MKMapRect+Extensions.swift @@ -0,0 +1,16 @@ +import MapKit + +extension MKMapRect { + + mutating func extend(by factor: Double) { + let dx = self.width * (1 - factor) / 2 + let dy = height * (1 - factor) / 2 + self = insetBy(dx: dx, dy: dy) + } + + func extended(by factor: Double) -> MKMapRect { + let dx = self.width * (1 - factor) / 2 + let dy = height * (1 - factor) / 2 + return insetBy(dx: dx, dy: dy) + } +} diff --git a/HealthImport/Support/MetadataKey+String.swift b/HealthImport/Support/MetadataKey+String.swift new file mode 100644 index 0000000..6625a5a --- /dev/null +++ b/HealthImport/Support/MetadataKey+String.swift @@ -0,0 +1,7 @@ +import Foundation +import HealthKitExtensions +import HealthDB + +func MetadataKeyName(_ key: String) -> String { + HKMetadataKey(rawValue: key)?.description ?? HKMetadataPrivateKey(rawValue: key)?.description ?? key +} diff --git a/HealthImport/Tabs/DatabasesTab.swift b/HealthImport/Tabs/DatabasesTab.swift index 14140e7..9310148 100644 --- a/HealthImport/Tabs/DatabasesTab.swift +++ b/HealthImport/Tabs/DatabasesTab.swift @@ -1,4 +1,6 @@ import SwiftUI +import HealthKit +import HealthKitExtensions import HealthDB import SFSafeSymbols diff --git a/HealthImport/Tabs/WorkoutTab.swift b/HealthImport/Tabs/WorkoutTab.swift index cccec81..2680476 100644 --- a/HealthImport/Tabs/WorkoutTab.swift +++ b/HealthImport/Tabs/WorkoutTab.swift @@ -10,24 +10,39 @@ struct WorkoutTab: View { @State var navigationPath: NavigationPath = .init() - @State var workouts: [Workout] = [] + @State var filteredActivityType: HKWorkoutActivityType? = nil + + @State var workouts: [(title: String, workouts: [Workout])] = [] + + @State var workoutTypeCounts: [(type: HKWorkoutActivityType, count: Int)] = [] var body: some View { NavigationStack(path: $navigationPath) { VStack { List { - ForEach(workouts) { workout in - NavigationLink(value: workout) { - VStack(alignment: .leading) { - Text(workout.typeString) - .font(.headline) - Text(workout.dateString) - .font(.caption) - .foregroundStyle(.secondary) + WorkoutTypeSelection(selected: $filteredActivityType, available: $workoutTypeCounts) + .listRowSeparator(.hidden) + ForEach(workouts, id: \.title) { month in + Section { + ForEach(month.workouts) { workout in + WorkoutListRow(workout: workout) + .overlay( + NavigationLink(value: workout) { } + .opacity(0)) + .listRowSeparator(.hidden) + .listRowInsets(.init(top: 0, leading: 16, bottom: 5, trailing: 16)) } + } header: { + Text(month.title) + .font(.title3) + .fontWeight(.bold) + .foregroundStyle(.primary) + } footer: { + Text("") } } } + .listStyle(.plain) } .navigationTitle("Workouts") .navigationDestination(for: Workout.self) { @@ -36,18 +51,19 @@ struct WorkoutTab: View { .refreshable { reloadAsync() } - .toolbar { - ToolbarItem { - NavigationLink { - SearchHealthStoreView() - } label: { - Image(systemSymbol: .magnifyingglass) - } - } - }.onChange(of: database.file, perform: { value in + .onChange(of: database.file, perform: { value in reload() }) + .onChange(of: filteredActivityType, perform: { _ in + reload() + }) + .onAppear(perform: { + if workouts.isEmpty { + reload() + } + }) } + .preferredColorScheme(.dark) } private func reload() { @@ -60,14 +76,52 @@ struct WorkoutTab: View { guard let store = database.store else { DispatchQueue.main.async { self.workouts = [] + self.workoutTypeCounts = [] } return } + loadWorkoutTypes(in: store) + loadWorkouts(in: store) + } + + private func loadWorkouts(in store: HealthDatabase) { do { - let workouts = try store.workouts() + let workouts: [Workout] + if let filteredActivityType { + workouts = try store.workouts(type: filteredActivityType) + } else { + workouts = try store.workouts() + } + print("Loaded \(workouts.count) workouts") + + let calendar = Calendar.current + var sortedIntoMonths = [(title: String, workouts: [Workout])]() + var currentMonth: String? = nil + var currentWorkouts = [Workout]() + for workout in workouts.sorted(ascending: false, using: { $0.endDate }) { + let date = workout.endDate + let month = calendar.component(.month, from: date) + let year = calendar.component(.year, from: date) + let title = "\(calendar.monthSymbols[month-1]) \(year)" + guard let lastMonth = currentMonth else { + currentMonth = title + currentWorkouts = [workout] + continue + } + guard lastMonth == title else { + sortedIntoMonths.append((lastMonth, currentWorkouts)) + currentMonth = title + currentWorkouts = [workout] + continue + } + currentWorkouts.append(workout) + } + if let currentMonth, !currentWorkouts.isEmpty { + sortedIntoMonths.append((currentMonth, currentWorkouts)) + } + DispatchQueue.main.async { - self.workouts = workouts - print("Loaded \(workouts.count) workouts") + self.workouts = sortedIntoMonths } } catch { print("Failed to load workouts: \(error)") @@ -76,6 +130,22 @@ struct WorkoutTab: View { } } } + + private func loadWorkoutTypes(in store: HealthDatabase) { + do { + let types = try store.store.workoutTypeFrequencies() + .sorted(ascending: false) { $0.value } + .map { (type: $0.key, count: $0.value) } + DispatchQueue.main.async { + self.workoutTypeCounts = types + } + } catch { + print("Failed to get workout frequencies: \(error)") + DispatchQueue.main.async { + self.workoutTypeCounts = [] + } + } + } } #Preview { diff --git a/HealthImport/UI Elements/HeartRateGraph.swift b/HealthImport/UI Elements/HeartRateGraph.swift new file mode 100644 index 0000000..6f64777 --- /dev/null +++ b/HealthImport/UI Elements/HeartRateGraph.swift @@ -0,0 +1,80 @@ +import SwiftUI +import Charts + +struct HeartRateGraph: View { + + let measurements: [HRSample] + + let width: CGFloat + + init(measurements: [HRSample], width: CGFloat = 5.0) { + self.measurements = measurements + self.width = width + self.maximumValue = measurements.map { $0.max }.max() ?? 100 + self.minimumValue = measurements.map { $0.min }.min() ?? 80 + } + + private let maximumValue: Int + + private let minimumValue: Int + + var range: ClosedRange { + (minimumValue-10)...(maximumValue+10) + } + + var body: some View { + ZStack { + Chart(measurements, id: \.id) { + BarMark(x: .value("Time Start", $0.startDate), + yStart: .value("BPM Min", $0.min - 1), + yEnd: .value("BPM Max", $0.max + 1), + width: .inset(1)) + .clipShape(Capsule()) + .foregroundStyle(.red) + } + .chartYScale(domain: range) + .chartXAxis { + AxisMarks { + AxisValueLabel() + AxisGridLine(stroke: .init()) + } + } + .chartYAxis { + AxisMarks { + AxisValueLabel() + } + } + .chartYAxis(.hidden) + HStack { + Spacer() + VStack(alignment: .trailing) { + Text("\(maximumValue)") + Spacer() + Text("\(minimumValue)") + } + .foregroundStyle(Color.primary.opacity(0.8)) + .font(.caption) + } + } + } +} + +#Preview { + let now = Date.now + let count = 50 + let interval = TimeInterval(600) + let samples = (0.. [HRSample] { + let interval = end.timeIntervalSince(start) / Double(categories) + var categories: [HRSample] = [] + var categoryEndDuration = interval + var minimum = Int.max + var maximum = Int.min + var hasSamplesInCategory = false + + let unit = HKUnit.count().unitDivided(by: .minute()) + + func advanceToNextCategory() { + defer { categoryEndDuration += interval } + guard hasSamplesInCategory else { + return + } + categories.append(.init( + date: start.addingTimeInterval(categoryEndDuration - (interval * 0.48)), + duration: interval * 0.96, + min: minimum, + max: maximum)) + minimum = Int.max + maximum = Int.min + hasSamplesInCategory = false + } + + for sample in samples.sorted(ascending: true, using: { $0.startDate }) { + let timestamp = sample.startDate.timeIntervalSince(start) + while timestamp > categoryEndDuration { + advanceToNextCategory() + } + let value = sample.quantity.doubleValue(for: unit).roundedInt + minimum = Swift.min(minimum, value) + maximum = Swift.max(maximum, value) + hasSamplesInCategory = true + } + + advanceToNextCategory() + return categories + } + + func test(start: Date, end: Date) { + let duration = end.timeIntervalSince(start) + let interval = DateComponents(second: Int(duration) / 20) + + let quantityType = HKObjectType.quantityType( + forIdentifier: .heartRate + )! + + let query = HKStatisticsCollectionQuery( + quantityType: quantityType, + quantitySamplePredicate: nil, + options: [.discreteMax, .discreteMin], + anchorDate: start, + intervalComponents: interval + ) + + query.initialResultsHandler = { _, results, error in + var weeklyData: [Date: (Double, Double)] = [:] + + results!.enumerateStatistics( + from: start, + to: end + ) { statistics, _ in + if let minValue = statistics.minimumQuantity() { + if let maxValue = statistics.maximumQuantity() { + let minHeartRate = minValue.doubleValue( + for: HKUnit(from: "count/min") + ) + let maxHeartRate = maxValue.doubleValue( + for: HKUnit(from: "count/min") + ) + + weeklyData[statistics.startDate] = ( + minHeartRate, maxHeartRate + ) + } + } + } + + // use `weeklyData` + } + } +} diff --git a/HealthImport/UI Elements/RouteView.swift b/HealthImport/UI Elements/RouteView.swift new file mode 100644 index 0000000..54790f5 --- /dev/null +++ b/HealthImport/UI Elements/RouteView.swift @@ -0,0 +1,32 @@ +import SwiftUI +import CoreLocation + +struct RouteView: View { + + let locations: [CLLocation] + + let height: CGFloat = 200 + + let vPadding: CGFloat = 16 + + let hPadding: CGFloat = 6 + + var body: some View { + GeometryReader { geo in + WorkoutMapView(locations: locations) + .frame(width: geo.size.width, + height: height) + .disabled(true) + } + .frame(height: height) + .listRowSeparator(.hidden) + } +} + +struct RouteView_Previews: PreviewProvider { + static var previews: some View { + RouteView(locations: [ + .mock + ]) + } +} diff --git a/HealthImport/UI Elements/WorkoutListRow.swift b/HealthImport/UI Elements/WorkoutListRow.swift new file mode 100644 index 0000000..dfb9c34 --- /dev/null +++ b/HealthImport/UI Elements/WorkoutListRow.swift @@ -0,0 +1,126 @@ +import SwiftUI +import HealthKit +import HealthDB +import HealthKitExtensions +import SFSafeSymbols + +struct WorkoutListRow: View { + + let workout: Workout + + var indoor: Bool { + guard let isIndoor: Bool = workout.metadata[.indoorWorkout] else { + return false + } + return isIndoor + } + + var type: HKWorkoutActivityType { + if #available(iOS 17.0, *) { + if let type: HKWorkoutActivityType = workout.metadata.activityType { + return type + } + } + return workout.workoutActivityType + } + + var titleText: String { + if let distance = workout.totalDistance, distance > 0 { + return (distance * 1000).lengthAsMeter + } + return workout.duration.durationString + } + + @State var existsInHealth: Bool = false + + var body: some View { + HStack { + ZStack(alignment: .center) { + Image(systemSymbol: type.icon(indoor: indoor)) + .foregroundStyle(Color.accentColor) + .padding(12) + LinearGradient(colors: [Color.accentColor.opacity(0.0), Color.accentColor.opacity(0.4)], startPoint: .bottomLeading, endPoint: .topTrailing) + .clipShape(Circle()) + .frame(width: 50, height: 50) + }.frame(width: 50, height: 50) + VStack(alignment: .leading) { + HStack(alignment: .top) { + Text(workout.typeString) + .font(.subheadline) + .fontWeight(.medium) + .foregroundStyle(.primary) + Spacer() + if existsInHealth { + Image(systemSymbol: .heartCircleFill) + .foregroundStyle(.red) + } + } + HStack(alignment: .lastTextBaseline) { + Text(titleText) + .font(.title) + .foregroundStyle(Color.accentColor) + + Spacer() + Text(workout.endDate.timeOrDateText) + .font(.caption) + .foregroundStyle(.secondary) + } + + } + } + .padding(16) + .background(Color.secondary.opacity(0.2)) + .clipShape(RoundedRectangle(cornerRadius: 10.0)) + .onAppear(perform: findMatchingHealthWorkout) + } + + private func findMatchingHealthWorkout() { + Task { + await searchHealth() + } + } + + private func searchHealth() async { + guard HKHealthStore.isHealthDataAvailable() else { + return + } + let found = await hasWorkoutInHealth() + DispatchQueue.main.async { + self.existsInHealth = found + } + } + + private func hasWorkoutInHealth() async -> Bool { + guard let activityType = workout.workoutActivities.first?.workoutConfiguration.activityType else { + return false + } + let store = HealthStore() + switch store.authorizationStatus(for: HKWorkout.self) { + case .notDetermined: + return false + case .sharingAuthorized, .sharingDenied: + break + @unknown default: + print("Unknown permission for workouts") + return false + } + + let start = workout.startDate.addingTimeInterval(-60) + let end = workout.endDate.addingTimeInterval(60) + do { + guard let _ = try await store.workouts(activityType: activityType, from: start, to: end) + .first else { + return false + } + return true + } catch { + print("Failed to search for matching workout: \(error)") + return false + } + } +} + +#Preview { + WorkoutListRow(workout: .mock1) + .preferredColorScheme(.dark) +} diff --git a/HealthImport/UI Elements/WorkoutMapView.swift b/HealthImport/UI Elements/WorkoutMapView.swift new file mode 100644 index 0000000..e34e991 --- /dev/null +++ b/HealthImport/UI Elements/WorkoutMapView.swift @@ -0,0 +1,72 @@ +import SwiftUI +import MapKit + +struct WorkoutMapView: UIViewRepresentable { + + let locations: [CLLocation] + + private var track: MKPolyline { + let coordinates = locations.map { $0.coordinate } + return .init(coordinates: coordinates, + count: coordinates.count) + } + + var boundingRect: MKMapRect { + track.boundingMapRect.extended(by: 1.2) + } + + private var region: MKCoordinateRegion { + .init(boundingRect) + } + + func makeUIView(context: Context) -> MKMapView { + let mapView = MKMapView() + mapView.region = region + mapView.delegate = context.coordinator + mapView.addOverlay(track) + return mapView + } + + func updateUIView(_ view: MKMapView, context: Context) { + + } + + func makeCoordinator() -> Coordinator { + Coordinator(self) + } + + class Coordinator: NSObject, MKMapViewDelegate { + var parent: WorkoutMapView + + init(_ parent: WorkoutMapView) { + self.parent = parent + } + + func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer { + let renderer = MKPolylineRenderer(overlay: overlay) + renderer.lineWidth = 4.0 + renderer.strokeColor = .systemBlue + return renderer + } + + private func regionDidChangeFromUserInteraction(_ mapView: MKMapView) -> Bool { + let view = mapView.subviews[0] + // Look through gesture recognizers to determine whether this region change is from user interaction + guard let gestureRecognizers = view.gestureRecognizers else { + return false + } + for recognizer in gestureRecognizers { + if recognizer.state == .began || recognizer.state == .ended { + return true + } + } + return false + } + } +} + +struct WorkoutMapView_Previews: PreviewProvider { + static var previews: some View { + WorkoutMapView(locations: []) + } +} diff --git a/HealthImport/UI Elements/WorkoutTypeSelection.swift b/HealthImport/UI Elements/WorkoutTypeSelection.swift new file mode 100644 index 0000000..698cf8b --- /dev/null +++ b/HealthImport/UI Elements/WorkoutTypeSelection.swift @@ -0,0 +1,52 @@ +import SwiftUI +import HealthKit + +struct WorkoutTypeSelection: View { + + @Binding + var selected: HKWorkoutActivityType? + + @Binding + var available: [(type: HKWorkoutActivityType, count: Int)] + + var body: some View { + ScrollView(.horizontal) { + HStack { + Text("All") + .padding(.horizontal) + .padding(.vertical, 8) + .background(selected == nil ? Color.accentColor : Color.gray.opacity(0.7)) + .clipShape(RoundedRectangle(cornerRadius: 50)) + .foregroundStyle(selected == nil ? Color.black : Color.white) + .onTapGesture { + selected = nil + } + //.padding(.leading) + ForEach(available, id: \.type) { element in + Text("\(element.type)") + .padding(.horizontal) + .padding(.vertical, 8) + .background(element.type == selected ? Color.accentColor : Color.gray.opacity(0.7)) + .clipShape(RoundedRectangle(cornerRadius: 50)) + .foregroundStyle(element.type == selected ? Color.black : Color.white) + .onTapGesture { + selected = element.type + } + } + } + .font(.headline) + } + .scrollIndicators(.hidden) + } +} + +#Preview { + WorkoutTypeSelection( + selected: .constant(.running), + available: .constant([ + (type: .running, count: 13), + (type: .soccer, count: 10), + (type: .cycling, count: 7), + ])) + .preferredColorScheme(.dark) +} diff --git a/HealthImport/WorkoutDetailView.swift b/HealthImport/WorkoutDetailView.swift index 85e527f..86974bd 100644 --- a/HealthImport/WorkoutDetailView.swift +++ b/HealthImport/WorkoutDetailView.swift @@ -14,119 +14,286 @@ struct WorkoutDetailView: View { let workout: Workout + private let heartRateCategoryCount = 110 + @State private var healthWorkout: HKWorkout? @State - var heartRateSamplesInHealth: [HeartRate] = [] + private var heartRateSamples: [HeartRate] = [] @State - var heartRateSamplesInDatabase: [HeartRate] = [] + private var samples: [HRSample] = [] @State - var locationSamples: [CLLocation] = [] + private var locationSamples: [CLLocation] = [] + + @State + private var privateMetadata: [String : Any] = [:] + + private var metadataFields: [(key: String, value: Any)] { + workout.metadata.sorted { $0.key } + } + + private var privateMetadataFields: [(key: String, value: Any)] { + privateMetadata.sorted { $0.key } + } + + @State + private var isProcessingWorkout = false + + private var averageHeartRate: Int { + let sum = heartRateSamples.reduce(0) { $0 + $1.beatsPerMinute } + return (Double(sum) / Double(heartRateSamples.count)).roundedInt + } var body: some View { List { - Section("Info") { - DetailRow("ID", value: workout.id) - DetailRow("Total Distance", kilometer: workout.totalDistance) - DetailRow("Duration", duration: workout.duration) - DetailRow("Goal", value: workout.goal) + if healthWorkout != nil { + HStack { + Spacer() + VStack { + Text("Matching workout found in Health") + .foregroundStyle(.black) + } + Spacer() + } + .padding(.vertical, 8) + .listRowBackground(Color.accentColor) + } else { + Button(action: addWorkoutToHealth) { + HStack { + Spacer() + if isProcessingWorkout { + ProgressView() + .progressViewStyle(.circular) + Text("Adding workout to health...") + .foregroundStyle(.accent) + } else { + Text("Add workout to health") + .foregroundStyle(.accent) + } + Spacer() + } + .padding(.vertical, 8) + } + .disabled(isProcessingWorkout) } - if !workout.workoutActivities.isEmpty { - Section("Activities") { + Section("Info") { + DetailRow("Start", date: workout.startDate) + DetailRow("Duration", duration: workout.duration) + DetailRow("Total Distance", kilometer: workout.totalDistance) + if let goal = workout.goal { + DetailRow("Goal", value: goal) + } + } + Section { + DisclosureGroup { ForEach(workout.workoutActivities, id: \.startDate) { activity in NavigationLink(value: activity) { DetailRow(activity.workoutConfiguration.activityType.description, - date: activity.startDate) + time: activity.startDate) } } + } label: { + DetailRow("Activities", value: workout.workoutActivities.count) + } + DisclosureGroup { + ForEach(workout.workoutEvents) { event in + NavigationLink(value: event) { + DetailRow(event.type.description, time: event.dateInterval.start) + } + } + } label: { + DetailRow("Events", value: workout.workoutEvents.count) + } + DisclosureGroup { + ForEach(metadataFields, id:\.key) { (key, value) in + DetailRow(MetadataKeyName(key), value: "\(value)") + } + } label: { + DetailRow("Metadata", value: workout.metadata.count) + } + DisclosureGroup { + ForEach(privateMetadataFields, id:\.key) { (key, value) in + DetailRow(MetadataKeyName(key), value: "\(value)") + } + } label: { + DetailRow("Private Metadata", value: privateMetadata.count) } } - if !workout.workoutEvents.isEmpty { - Section("Events") { - NavigationLink(value: workout.workoutEvents) { - DetailRow("Events", value: workout.workoutEvents.count) + if !heartRateSamples.isEmpty { + Section("Heart Rate") { + VStack(alignment: .leading) { + HeartRateGraph(measurements: samples) + .frame(height: 110) + HStack { + Text("\(averageHeartRate) BPM AVG") + .foregroundStyle(.red) + .fontWeight(.semibold) + Spacer() + Text("\(heartRateSamples.count) samples") + .foregroundStyle(.secondary) + } + .font(.caption) + .textCase(.uppercase) } } } - if !workout.metadata.isEmpty { - Section("Metadata") { - NavigationLink { - WorkoutMetadataView(metadata: workout.metadata) - } label: { - DetailRow("Metadata", value: workout.metadata.count) - } - } - } - Section("Heart Rate") { - DetailRow("Samples", value: "\(heartRateSamplesInDatabase.count)") - DetailRow("Range", value: "\(heartRateSamplesInDatabase.minimumHeartRate) - \(heartRateSamplesInDatabase.maximumHeartRate)") - } - if let healthWorkout { - Section("Matching health workout") { - DetailRow("Duration", value: healthWorkout.duration.durationString) - DetailRow("Distance", kilometer: healthWorkout.distance?.doubleValue(for: .meterUnit(with: .kilo))) - DetailRow("Heart rate samples", value: "\(heartRateSamplesInHealth.count)") - DetailRow("Heart rate range", value: "\(heartRateSamplesInHealth.minimumHeartRate) - \(heartRateSamplesInHealth.maximumHeartRate)") - } - } - - if !locationSamples.isEmpty { - Section("Locations") { - DetailRow("Count", value: "\(locationSamples.count)") + Section("Route") { + Text("") + .frame(height: 150) + .listRowBackground(WorkoutMapView(locations: locationSamples)) } } } + .listStyle(SidebarListStyle()) .navigationTitle(workout.typeString) .navigationDestination(for: HKWorkoutActivity.self) { activity in ActivityDetailView(workout: workout, activity: activity) } - .navigationDestination(for: [HKWorkoutEvent].self) { - WorkoutEventsView(events: $0) + .navigationDestination(for: HKWorkoutEvent.self) { event in + EventDetailView(event: event) } .onAppear(perform: loadSamples) } - private func loadSamples() { + private func addWorkoutToHealth() { + guard let db = database.store else { + return + } + DispatchQueue.main.async { + self.isProcessingWorkout = true + } Task { - checkPermissionsAndSearchHealth() do { - guard let samples: [HeartRate] = try database.store?.samples(associatedWith: workout) else { - return - } - DispatchQueue.main.async { - self.heartRateSamplesInDatabase = samples - } - print("Loaded \(samples.count) heart rate samples from database") + try await insert(workout: workout, using: db) } catch { - print("Failed to load heart rate samples from database: \(error)") + print("Failed to insert workout: \(error)") + } + DispatchQueue.main.async { + self.isProcessingWorkout = false } } } - private func checkPermissionsAndSearchHealth() { - Task { - do { - try await checkPermissionsAndFindWorkout() - } catch { - print("Failed to search for workout: \(error)") + private func insert(workout: Workout, using db: HealthDatabase) async throws { + try await store.requestAuthorization(toShare: HKWorkout.self, read: HKWorkout.self) + if store.authorizationStatus(for: HKWorkout.self) == .notDetermined || + store.authorizationStatus(for: HKWorkoutRoute.self) == .notDetermined { + print("Requesting workout sharing permission") + try await store.requestAuthorization(toShare: HKWorkout.self, HKWorkoutRoute.self, read: HKWorkout.self, HKWorkoutRoute.self) + } + guard store.authorizationStatus(for: HKWorkout.self) == .sharingAuthorized else { + print("No sharing permission for workouts") + return + } + guard store.authorizationStatus(for: HKWorkoutRoute.self) == .sharingAuthorized else { + print("No sharing permission for workout routes") + return + } + do { + print("Getting samples") + let samples = try db.store.samples(associatedWith: workout) + let route = try db.store.route(associatedWith: workout) + .map { try db.store.locations(associatedWith: $0) } ?? [] + + print("Saving workout in Health: \(samples.count) samples, \(route.count) locations") + + let savedWorkout = try await workout.insert( + into: store.store, + samples: samples, + route: route) + DispatchQueue.main.async { + self.healthWorkout = savedWorkout } + print("Saved workout in Health") + let energySamples: [ActiveEnergyBurned] = try await store.samples(associatedWith: savedWorkout) + print("Found \(energySamples.count) energy samples") + if let route = try await store.route(associatedWith: savedWorkout) { + let locations = try await store.locations(associatedWith: route) + print("Found \(locations.count)/\(locationSamples.count) locations associated with saved workout") + } else { + print("No route associated with saved workout") + } + } catch { + print("Failed to add workout to health: \(error)") + } + } + + private func loadSamples() { + Task { + await checkPermissionsAndSearchHealth() + } + guard let db = database.store else { return } + Task { + await loadHeartRateSamples(db: db) + await loadLocationSamples(db: db) + await loadPrivateMetadata(db: db) + } + } + + private func loadHeartRateSamples(db: HealthDatabase) async { + do { + let samples: [HeartRate] = try db.samples(associatedWith: workout) + let graphSamples = HRSample.create(from: samples, start: workout.startDate, end: workout.endDate, categories: heartRateCategoryCount) + DispatchQueue.main.async { + self.heartRateSamples = samples + self.samples = graphSamples + } + print("Loaded \(samples.count) heart rate samples from database") + } catch { + print("Failed to load heart rate samples from database: \(error)") + } + } + + private func loadLocationSamples(db: HealthDatabase) async { + do { + guard let route = try db.route(associatedWith: workout) else { + print("No route associated with workout") + return + } + let locations = try db.locations(associatedWith: route) + DispatchQueue.main.async { + self.locationSamples = locations + } + print("Loaded \(locations.count) locations from database") + } catch { + print("Failed to load locations or route from database: \(error)") + } + } + + private func loadPrivateMetadata(db: HealthDatabase) async { + do { + let metadata = try db.store.metadata(for: workout.uuid, includePrivateMetadata: true) + .filter { $0.key.hasPrefix("_HKPrivate") } + DispatchQueue.main.async { + self.privateMetadata = metadata + } + print("Loaded \(metadata.count) private metadata fields") + } catch { + print("Failed to load private metadata from database: \(error)") + } + } + + private func checkPermissionsAndSearchHealth() async { + guard HKHealthStore.isHealthDataAvailable() else { + return + } + do { + try await checkPermissionsAndFindWorkout() + } catch { + print("Failed to search for workout: \(error)") } } private func checkPermissionsAndFindWorkout() async throws { - switch store.authorizationStatus(for: HKWorkout.self) { case .notDetermined: try await requestWorkoutPermission() try await checkPermissionsAndFindWorkout() - case .sharingAuthorized: - await findWorkoutInHealth() - case .sharingDenied: - print("No permission to write workouts") + case .sharingAuthorized, .sharingDenied: await findWorkoutInHealth() return @unknown default: @@ -147,25 +314,19 @@ struct WorkoutDetailView: View { let start = workout.startDate.addingTimeInterval(-60) let end = workout.endDate.addingTimeInterval(60) - guard let workout = try? await store.workouts(activityType: activityType, from: start, to: end) - .first else { - print("No workout found or error") - return - } - - print("Found matching workout in health") - DispatchQueue.main.async { - self.healthWorkout = workout - } - do { - let heartRates: [HeartRate] = try await store.samples(associatedWith: workout) - print("Found \(heartRates.count) heart rate samples in Health") + guard let workout = try await store.workouts(activityType: activityType, from: start, to: end) + .first else { + print("No matching workout found in Health") + return + } + + print("Found matching workout in health") DispatchQueue.main.async { - self.heartRateSamplesInHealth = heartRates + self.healthWorkout = workout } } catch { - print("Failed to get heart rates for workout: \(error)") + print("Failed to search for matching workout: \(error)") } } } @@ -174,6 +335,7 @@ struct WorkoutDetailView: View { return NavigationStack { WorkoutDetailView(workout: .mock1) .environmentObject(Database.mock) + .preferredColorScheme(.dark) } } @@ -203,3 +365,15 @@ private extension HeartRate { quantity.doubleValue(for: .count().unitDivided(by: .minute())).roundedInt } } + +extension HeartRate { + + var sampleWithoutPrivateMetadata: HeartRate { + .init(quantity: quantity, + start: startDate, + end: endDate, + uuid: externalUUID, + device: device, + metadata: metadata?.removingPrivateFields()) + } +} diff --git a/HealthImport/WorkoutEventsView.swift b/HealthImport/WorkoutEventsView.swift deleted file mode 100644 index 055b7e1..0000000 --- a/HealthImport/WorkoutEventsView.swift +++ /dev/null @@ -1,26 +0,0 @@ -import SwiftUI -import HealthDB -import HealthKit - -struct WorkoutEventsView: View { - - let events: [HKWorkoutEvent] - - var body: some View { - List { - ForEach(events) { event in - NavigationLink(value: event) { - DetailRow(event.type.description, date: event.dateInterval.start) - } - } - } - .navigationTitle("Events") - .navigationDestination(for: HKWorkoutEvent.self) { event in - EventDetailView(event: event) - } - } -} - -#Preview { - WorkoutEventsView(events: Workout.mock1.workoutEvents) -} diff --git a/HealthImport/WorkoutMetadataView.swift b/HealthImport/WorkoutMetadataView.swift deleted file mode 100644 index a56e485..0000000 --- a/HealthImport/WorkoutMetadataView.swift +++ /dev/null @@ -1,25 +0,0 @@ -import SwiftUI -import HealthDB - -struct WorkoutMetadataView: View { - - let metadata: [String : Any] - - private var metadataFields: [(key: String, value: Any)] { - metadata.sorted { $0.key } - } - - var body: some View { - List { - ForEach(metadataFields, id:\.key) { (key, value) in - let keyString = HKMetadataKey.describe(key: key) ?? HKMetadataPrivateKey.describe(key: key) ?? key - DetailRow(keyString, value: "\(value)") - } - } - .navigationTitle("Metadata") - } -} - -#Preview { - WorkoutMetadataView(metadata: Workout.mock1.metadata) -}