Files
Reflect/Shared/Models/OnboardingDataDataManager.swift
Trey t 440b04159e Add Apple platform features and UX improvements
- Add HealthKit State of Mind sync for mood entries
- Add Live Activity with streak display and rating time window
- Add App Shortcuts/Siri integration for voice mood logging
- Add TipKit hints for feature discovery
- Add centralized MoodLogger for consistent side effects
- Add reminder time setting in Settings with time picker
- Fix duplicate notifications when changing reminder time
- Fix Live Activity streak showing 0 when not yet rated today
- Fix slow tap response in entry detail mood selection
- Update widget timeline to refresh at rating time
- Sync widgets when reminder time changes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 17:21:55 -06:00

33 lines
1.0 KiB
Swift

//
// OnboardingDataDataManager.swift
// Feels (iOS)
//
// Created by Trey Tartt on 2/18/22.
//
import Foundation
import WidgetKit
final class OnboardingDataDataManager: ObservableObject {
static let shared = OnboardingDataDataManager()
@Published public private(set) var savedOnboardingData = UserDefaultsStore.getOnboarding()
public func updateOnboardingData(onboardingData: OnboardingData) {
let onboardingData = UserDefaultsStore.saveOnboarding(onboardingData: onboardingData)
savedOnboardingData = onboardingData
LocalNotification.scheduleReminder(atTime: onboardingData.date)
// Update Live Activity schedule when rating time changes
Task { @MainActor in
LiveActivityScheduler.shared.onRatingTimeUpdated()
}
// Force sync UserDefaults to app group before reloading widgets
GroupUserDefaults.groupDefaults.synchronize()
// Reload widgets so they show the correct view for new time
WidgetCenter.shared.reloadAllTimelines()
}
}