Update Neon colors and show color circles in theme picker
- Update NeonMoodTint to use synthwave colors matching Neon voting style (cyan, lime, yellow, orange, magenta) - Replace text label with 5 color circles in theme preview Colors row - Remove unused textColor customization code and picker views - Add .id(moodTint) to Month/Year views for color refresh - Clean up various unused color-related code 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -76,21 +76,46 @@ struct FeelsApp: App {
|
||||
|
||||
if newPhase == .active {
|
||||
UNUserNotificationCenter.current().setBadgeCount(0)
|
||||
// Check subscription status on each app launch
|
||||
Task {
|
||||
await iapManager.checkSubscriptionStatus()
|
||||
}
|
||||
// Authenticate if locked
|
||||
|
||||
// Authenticate if locked - this must happen immediately on main thread
|
||||
if authManager.isLockEnabled && !authManager.isUnlocked {
|
||||
Task {
|
||||
await authManager.authenticate()
|
||||
}
|
||||
}
|
||||
// Reschedule Live Activity when app becomes active
|
||||
LiveActivityScheduler.shared.scheduleBasedOnCurrentTime()
|
||||
|
||||
// Defer all non-critical foreground work to avoid blocking UI
|
||||
Task.detached(priority: .utility) { @MainActor in
|
||||
// Refresh from disk to pick up widget/watch changes
|
||||
DataController.shared.refreshFromDisk()
|
||||
|
||||
// Clean up any duplicate entries first
|
||||
DataController.shared.removeDuplicates()
|
||||
|
||||
// Fill in any missing dates (moved from AppDelegate)
|
||||
DataController.shared.fillInMissingDates()
|
||||
|
||||
// Reschedule notifications for new title
|
||||
LocalNotification.rescheduleNotifiations()
|
||||
|
||||
// Log event
|
||||
EventLogger.log(event: "app_foregorund")
|
||||
}
|
||||
|
||||
// Defer Live Activity scheduling (heavy DB operations)
|
||||
Task.detached(priority: .utility) {
|
||||
await LiveActivityScheduler.shared.scheduleBasedOnCurrentTime()
|
||||
}
|
||||
|
||||
// Catch up on side effects from widget/watch votes
|
||||
MoodLogger.shared.processPendingSideEffects()
|
||||
Task.detached(priority: .utility) {
|
||||
await MoodLogger.shared.processPendingSideEffects()
|
||||
}
|
||||
|
||||
// Check subscription status (network call) - throttled
|
||||
Task.detached(priority: .background) {
|
||||
await iapManager.checkSubscriptionStatus()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user