From f1bc61d2027653d545ab1c368f3182c8d2ef2538 Mon Sep 17 00:00:00 2001 From: Atridad Lahiji Date: Tue, 23 Sep 2025 21:57:45 -0600 Subject: [PATCH] 1.0.2 - Widget and Photos fixes --- ios/OpenClimb.xcodeproj/project.pbxproj | 26 ++- .../UserInterfaceState.xcuserstate | Bin 91871 -> 103401 bytes ios/OpenClimb/Info.plist | 2 + ios/OpenClimb/OpenClimb.entitlements | 10 + .../ViewModels/ClimbingDataManager.swift | 85 +++++++- .../Views/AddEdit/AddAttemptView.swift | 204 +++++++++++++++++- .../Views/AddEdit/AddEditProblemView.swift | 21 +- ios/SessionStatusLiveExtension.entitlements | 10 + 8 files changed, 336 insertions(+), 22 deletions(-) create mode 100644 ios/OpenClimb/OpenClimb.entitlements create mode 100644 ios/SessionStatusLiveExtension.entitlements diff --git a/ios/OpenClimb.xcodeproj/project.pbxproj b/ios/OpenClimb.xcodeproj/project.pbxproj index 29047c6..276ffd1 100644 --- a/ios/OpenClimb.xcodeproj/project.pbxproj +++ b/ios/OpenClimb.xcodeproj/project.pbxproj @@ -40,6 +40,7 @@ /* Begin PBXFileReference section */ D24C19682E75002A0045894C /* OpenClimb.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OpenClimb.app; sourceTree = BUILT_PRODUCTS_DIR; }; + D268B79E2E83894A003AA641 /* SessionStatusLiveExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = SessionStatusLiveExtension.entitlements; sourceTree = ""; }; D2FE94802E78E958008CDB25 /* ActivityKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ActivityKit.framework; path = System/Library/Frameworks/ActivityKit.framework; sourceTree = SDKROOT; }; D2FE948B2E78FEE0008CDB25 /* SessionStatusLiveExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = SessionStatusLiveExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; D2FE948C2E78FEE0008CDB25 /* WidgetKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WidgetKit.framework; path = System/Library/Frameworks/WidgetKit.framework; sourceTree = SDKROOT; }; @@ -107,6 +108,7 @@ D24C195F2E75002A0045894C = { isa = PBXGroup; children = ( + D268B79E2E83894A003AA641 /* SessionStatusLiveExtension.entitlements */, D24C196A2E75002A0045894C /* OpenClimb */, D2FE94902E78FEE0008CDB25 /* SessionStatusLive */, D2FE947F2E78E958008CDB25 /* Frameworks */, @@ -389,8 +391,10 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = OpenClimb/OpenClimb.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 5; + CURRENT_PROJECT_VERSION = 6; DEVELOPMENT_TEAM = 4BC9Y2LL4B; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; @@ -410,9 +414,10 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.1; + MARKETING_VERSION = 1.0.2; PRODUCT_BUNDLE_IDENTIFIER = com.atridad.OpenClimb; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; STRING_CATALOG_GENERATE_SYMBOLS = YES; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTS_MACCATALYST = NO; @@ -429,8 +434,10 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = OpenClimb/OpenClimb.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 5; + CURRENT_PROJECT_VERSION = 6; DEVELOPMENT_TEAM = 4BC9Y2LL4B; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; @@ -450,9 +457,10 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.1; + MARKETING_VERSION = 1.0.2; PRODUCT_BUNDLE_IDENTIFIER = com.atridad.OpenClimb; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; STRING_CATALOG_GENERATE_SYMBOLS = YES; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTS_MACCATALYST = NO; @@ -469,8 +477,9 @@ buildSettings = { ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; + CODE_SIGN_ENTITLEMENTS = SessionStatusLiveExtension.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 6; DEVELOPMENT_TEAM = 4BC9Y2LL4B; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = SessionStatusLive/Info.plist; @@ -481,7 +490,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.0; + MARKETING_VERSION = 1.0.2; PRODUCT_BUNDLE_IDENTIFIER = com.atridad.OpenClimb.SessionStatusLive; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -498,8 +507,9 @@ buildSettings = { ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; + CODE_SIGN_ENTITLEMENTS = SessionStatusLiveExtension.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 6; DEVELOPMENT_TEAM = 4BC9Y2LL4B; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = SessionStatusLive/Info.plist; @@ -510,7 +520,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.0; + MARKETING_VERSION = 1.0.2; PRODUCT_BUNDLE_IDENTIFIER = com.atridad.OpenClimb.SessionStatusLive; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; diff --git a/ios/OpenClimb.xcodeproj/project.xcworkspace/xcuserdata/atridad.xcuserdatad/UserInterfaceState.xcuserstate b/ios/OpenClimb.xcodeproj/project.xcworkspace/xcuserdata/atridad.xcuserdatad/UserInterfaceState.xcuserstate index 5d4fb10624e0b861c12e8e631a49300cfce98b1f..eacec34d0740151e73d69dafa449ac25fdfecd6c 100644 GIT binary patch literal 103401 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 D*rY@k literal 91871 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%0A3;>d@= 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 QvE%>q=l}mRZ|HIV2XH{pWB>pF diff --git a/ios/OpenClimb/Info.plist b/ios/OpenClimb/Info.plist index c8ebc60..e65576e 100644 --- a/ios/OpenClimb/Info.plist +++ b/ios/OpenClimb/Info.plist @@ -6,5 +6,7 @@ NSSupportsLiveActivities + NSPhotoLibraryUsageDescription + This app needs access to your photo library to add photos to climbing problems. diff --git a/ios/OpenClimb/OpenClimb.entitlements b/ios/OpenClimb/OpenClimb.entitlements new file mode 100644 index 0000000..2630f0c --- /dev/null +++ b/ios/OpenClimb/OpenClimb.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.application-groups + + group.com.atridad.OpenClimb + + + diff --git a/ios/OpenClimb/ViewModels/ClimbingDataManager.swift b/ios/OpenClimb/ViewModels/ClimbingDataManager.swift index 13f8a04..8370854 100644 --- a/ios/OpenClimb/ViewModels/ClimbingDataManager.swift +++ b/ios/OpenClimb/ViewModels/ClimbingDataManager.swift @@ -32,6 +32,27 @@ class ClimbingDataManager: ObservableObject { static let activeSession = "openclimb_active_session" } + // Widget data models + private struct WidgetAttempt: Codable { + let id: String + let sessionId: String + let problemId: String + let timestamp: Date + let result: String + } + + private struct WidgetSession: Codable { + let id: String + let gymId: String + let date: Date + let status: String + } + + private struct WidgetGym: Codable { + let id: String + let name: String + } + init() { _ = ImageManager.shared loadAllData() @@ -97,8 +118,13 @@ class ClimbingDataManager: ObservableObject { private func saveGyms() { if let data = try? encoder.encode(gyms) { userDefaults.set(data, forKey: Keys.gyms) - // Share with widget - sharedUserDefaults?.set(data, forKey: Keys.gyms) + // Share with widget - convert to widget format + let widgetGyms = gyms.map { gym in + WidgetGym(id: gym.id.uuidString, name: gym.name) + } + if let widgetData = try? encoder.encode(widgetGyms) { + sharedUserDefaults?.set(widgetData, forKey: Keys.gyms) + } } } @@ -113,16 +139,37 @@ class ClimbingDataManager: ObservableObject { private func saveSessions() { if let data = try? encoder.encode(sessions) { userDefaults.set(data, forKey: Keys.sessions) - // Share with widget - sharedUserDefaults?.set(data, forKey: Keys.sessions) + // Share with widget - convert to widget format + let widgetSessions = sessions.map { session in + WidgetSession( + id: session.id.uuidString, + gymId: session.gymId.uuidString, + date: session.date, + status: session.status.rawValue + ) + } + if let widgetData = try? encoder.encode(widgetSessions) { + sharedUserDefaults?.set(widgetData, forKey: Keys.sessions) + } } } private func saveAttempts() { if let data = try? encoder.encode(attempts) { userDefaults.set(data, forKey: Keys.attempts) - // Share with widget - sharedUserDefaults?.set(data, forKey: Keys.attempts) + // Share with widget - convert to widget format + let widgetAttempts = attempts.map { attempt in + WidgetAttempt( + id: attempt.id.uuidString, + sessionId: attempt.sessionId.uuidString, + problemId: attempt.problemId.uuidString, + timestamp: attempt.timestamp, + result: attempt.result.rawValue + ) + } + if let widgetData = try? encoder.encode(widgetAttempts) { + sharedUserDefaults?.set(widgetData, forKey: Keys.attempts) + } // Update widget timeline updateWidgetTimeline() } @@ -1020,8 +1067,14 @@ extension ClimbingDataManager { private func updateLiveActivityForActiveSession() { guard let activeSession = activeSession, activeSession.status == .active, - let _ = gym(withId: activeSession.gymId) + let gym = gym(withId: activeSession.gymId) else { + print("⚠️ Live Activity update skipped - no active session or gym") + if let session = activeSession { + print(" Session ID: \(session.id)") + print(" Session Status: \(session.status)") + print(" Gym ID: \(session.gymId)") + } return } @@ -1040,6 +1093,16 @@ extension ClimbingDataManager { elapsedInterval = 0 } + print("🔄 Live Activity Update Debug:") + print(" Session ID: \(activeSession.id)") + print(" Gym: \(gym.name)") + print(" Total attempts in session: \(totalAttempts)") + print(" Completed problems: \(completedProblems)") + print(" Elapsed time: \(elapsedInterval) seconds") + print( + " All attempts for session: \(attemptsForSession.map { "\($0.result) - Problem: \($0.problemId)" })" + ) + Task { await LiveActivityManager.shared.updateLiveActivity( elapsed: elapsedInterval, @@ -1061,6 +1124,14 @@ extension ClimbingDataManager { #endif } + /// Debug function to manually trigger widget data update + func debugUpdateWidgetData() { + // Force save all data to widget + saveGyms() + saveSessions() + saveAttempts() + } + private func validateImportData(_ importData: ClimbDataExport) throws { if importData.gyms.isEmpty { throw NSError( diff --git a/ios/OpenClimb/Views/AddEdit/AddAttemptView.swift b/ios/OpenClimb/Views/AddEdit/AddAttemptView.swift index 0d2851e..336b58f 100644 --- a/ios/OpenClimb/Views/AddEdit/AddAttemptView.swift +++ b/ios/OpenClimb/Views/AddEdit/AddAttemptView.swift @@ -1,3 +1,4 @@ +import PhotosUI import SwiftUI struct AddAttemptView: View { @@ -19,6 +20,8 @@ struct AddAttemptView: View { @State private var newProblemGrade = "" @State private var selectedClimbType: ClimbType = .boulder @State private var selectedDifficultySystem: DifficultySystem = .vScale + @State private var selectedPhotos: [PhotosPickerItem] = [] + @State private var imageData: [Data] = [] private var activeProblems: [Problem] { dataManager.activeProblems(forGym: gym.id) @@ -126,6 +129,8 @@ struct AddAttemptView: View { Button("Back") { showingCreateProblem = false + selectedPhotos = [] + imageData = [] } .foregroundColor(.blue) } @@ -209,6 +214,74 @@ struct AddAttemptView: View { } } } + + Section("Photos (Optional)") { + PhotosPicker( + selection: $selectedPhotos, + maxSelectionCount: 5, + matching: .images + ) { + HStack { + Image(systemName: "camera.fill") + .foregroundColor(.blue) + .font(.title2) + VStack(alignment: .leading, spacing: 2) { + Text("Add Photos") + .font(.headline) + .foregroundColor(.blue) + Text("\(imageData.count) of 5 photos added") + .font(.caption) + .foregroundColor(.secondary) + } + Spacer() + Image(systemName: "chevron.right") + .foregroundColor(.secondary) + .font(.caption) + } + .padding(.vertical, 4) + } + .onChange(of: selectedPhotos) { _, _ in + Task { + await loadSelectedPhotos() + } + } + + if !imageData.isEmpty { + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 12) { + ForEach(imageData.indices, id: \.self) { index in + if let uiImage = UIImage(data: imageData[index]) { + Image(uiImage: uiImage) + .resizable() + .aspectRatio(contentMode: .fill) + .frame(width: 80, height: 80) + .clipped() + .cornerRadius(8) + .overlay(alignment: .topTrailing) { + Button(action: { + imageData.remove(at: index) + }) { + Image(systemName: "xmark.circle.fill") + .foregroundColor(.red) + .background(Circle().fill(.white)) + } + .offset(x: 8, y: -8) + } + } else { + RoundedRectangle(cornerRadius: 8) + .fill(.gray.opacity(0.3)) + .frame(width: 80, height: 80) + .overlay { + Image(systemName: "photo") + .foregroundColor(.gray) + } + } + } + } + .padding(.horizontal, 1) + } + } + } } @ViewBuilder @@ -310,11 +383,20 @@ struct AddAttemptView: View { let difficulty = DifficultyGrade( system: selectedDifficultySystem, grade: newProblemGrade) + // Save images and get paths + var imagePaths: [String] = [] + for data in imageData { + if let relativePath = ImageManager.shared.saveImageData(data) { + imagePaths.append(relativePath) + } + } + let newProblem = Problem( gymId: gym.id, name: newProblemName.isEmpty ? nil : newProblemName, climbType: selectedClimbType, - difficulty: difficulty + difficulty: difficulty, + imagePaths: imagePaths ) dataManager.addProblem(newProblem) @@ -347,8 +429,26 @@ struct AddAttemptView: View { dataManager.addAttempt(attempt) } + // Clear photo states after saving + selectedPhotos = [] + imageData = [] + dismiss() } + + private func loadSelectedPhotos() async { + var newImageData: [Data] = [] + + for item in selectedPhotos { + if let data = try? await item.loadTransferable(type: Data.self) { + newImageData.append(data) + } + } + + await MainActor.run { + imageData = newImageData + } + } } struct ProblemSelectionRow: View { @@ -599,6 +699,8 @@ struct EditAttemptView: View { @State private var newProblemGrade = "" @State private var selectedClimbType: ClimbType = .boulder @State private var selectedDifficultySystem: DifficultySystem = .vScale + @State private var selectedPhotos: [PhotosPickerItem] = [] + @State private var imageData: [Data] = [] private var availableProblems: [Problem] { guard let session = dataManager.session(withId: attempt.sessionId) else { @@ -727,6 +829,8 @@ struct EditAttemptView: View { Button("Back") { showingCreateProblem = false + selectedPhotos = [] + imageData = [] } .foregroundColor(.blue) } @@ -810,6 +914,74 @@ struct EditAttemptView: View { } } } + + Section("Photos (Optional)") { + PhotosPicker( + selection: $selectedPhotos, + maxSelectionCount: 5, + matching: .images + ) { + HStack { + Image(systemName: "camera.fill") + .foregroundColor(.blue) + .font(.title2) + VStack(alignment: .leading, spacing: 2) { + Text("Add Photos") + .font(.headline) + .foregroundColor(.blue) + Text("\(imageData.count) of 5 photos added") + .font(.caption) + .foregroundColor(.secondary) + } + Spacer() + Image(systemName: "chevron.right") + .foregroundColor(.secondary) + .font(.caption) + } + .padding(.vertical, 4) + } + .onChange(of: selectedPhotos) { _, _ in + Task { + await loadSelectedPhotos() + } + } + + if !imageData.isEmpty { + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 12) { + ForEach(imageData.indices, id: \.self) { index in + if let uiImage = UIImage(data: imageData[index]) { + Image(uiImage: uiImage) + .resizable() + .aspectRatio(contentMode: .fill) + .frame(width: 80, height: 80) + .clipped() + .cornerRadius(8) + .overlay(alignment: .topTrailing) { + Button(action: { + imageData.remove(at: index) + }) { + Image(systemName: "xmark.circle.fill") + .foregroundColor(.red) + .background(Circle().fill(.white)) + } + .offset(x: 8, y: -8) + } + } else { + RoundedRectangle(cornerRadius: 8) + .fill(.gray.opacity(0.3)) + .frame(width: 80, height: 80) + .overlay { + Image(systemName: "photo") + .foregroundColor(.gray) + } + } + } + } + .padding(.horizontal, 1) + } + } + } } @ViewBuilder @@ -915,11 +1087,20 @@ struct EditAttemptView: View { let difficulty = DifficultyGrade( system: selectedDifficultySystem, grade: newProblemGrade) + // Save images and get paths + var imagePaths: [String] = [] + for data in imageData { + if let relativePath = ImageManager.shared.saveImageData(data) { + imagePaths.append(relativePath) + } + } + let newProblem = Problem( gymId: gym.id, name: newProblemName.isEmpty ? nil : newProblemName, climbType: selectedClimbType, - difficulty: difficulty + difficulty: difficulty, + imagePaths: imagePaths ) dataManager.addProblem(newProblem) @@ -949,8 +1130,26 @@ struct EditAttemptView: View { dataManager.updateAttempt(updatedAttempt) } + // Clear photo states after saving + selectedPhotos = [] + imageData = [] + dismiss() } + + private func loadSelectedPhotos() async { + var newImageData: [Data] = [] + + for item in selectedPhotos { + if let data = try? await item.loadTransferable(type: Data.self) { + newImageData.append(data) + } + } + + await MainActor.run { + imageData = newImageData + } + } } #Preview { @@ -997,6 +1196,7 @@ struct ProblemSelectionImageView: View { ProgressView() .scaleEffect(0.8) } + } } .onAppear { diff --git a/ios/OpenClimb/Views/AddEdit/AddEditProblemView.swift b/ios/OpenClimb/Views/AddEdit/AddEditProblemView.swift index 3460c3d..811f64e 100644 --- a/ios/OpenClimb/Views/AddEdit/AddEditProblemView.swift +++ b/ios/OpenClimb/Views/AddEdit/AddEditProblemView.swift @@ -1,4 +1,3 @@ - import PhotosUI import SwiftUI @@ -61,11 +60,11 @@ struct AddEditProblemView: View { Form { GymSelectionSection() BasicInfoSection() + PhotosSection() ClimbTypeSection() DifficultySection() LocationAndSetterSection() TagsSection() - PhotosSection() AdditionalInfoSection() } .navigationTitle(isEditing ? "Edit Problem" : "Add Problem") @@ -304,18 +303,30 @@ struct AddEditProblemView: View { @ViewBuilder private func PhotosSection() -> some View { - Section("Photos") { + Section("Photos (Optional)") { PhotosPicker( selection: $selectedPhotos, maxSelectionCount: 5, matching: .images ) { HStack { - Image(systemName: "photo.on.rectangle.angled") + Image(systemName: "camera.fill") .foregroundColor(.blue) - Text("Add Photos (\(imageData.count)/5)") + .font(.title2) + VStack(alignment: .leading, spacing: 2) { + Text("Add Photos") + .font(.headline) + .foregroundColor(.blue) + Text("\(imageData.count) of 5 photos added") + .font(.caption) + .foregroundColor(.secondary) + } Spacer() + Image(systemName: "chevron.right") + .foregroundColor(.secondary) + .font(.caption) } + .padding(.vertical, 4) } if !imageData.isEmpty { diff --git a/ios/SessionStatusLiveExtension.entitlements b/ios/SessionStatusLiveExtension.entitlements new file mode 100644 index 0000000..2630f0c --- /dev/null +++ b/ios/SessionStatusLiveExtension.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.application-groups + + group.com.atridad.OpenClimb + + +