Add interactive widget voting and fix warnings/bugs
Widget Features: - Add inline voting to timeline widget when no entry exists for today - Show random prompt from notification strings in voting mode - Update vote widget to use simple icon style for selection - Make stats bar full width in voted state view - Add Localizable.strings to widget extension target Bug Fixes: - Fix inverted date calculation in InsightsViewModel streak logic - Replace force unwraps with safe optional handling in widgets - Replace fatalError calls with graceful error handling - Fix CSV import safety in SettingsView Warning Fixes: - Add @retroactive to Color and Date extension conformances - Update deprecated onChange(of:perform:) to new syntax - Replace deprecated applicationIconBadgeNumber with setBadgeCount - Replace deprecated UIApplication.shared.windows API - Add @preconcurrency for Swift 6 protocol conformances - Add missing widget family cases to switch statement - Remove unused variables and #warning directives 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -10,7 +10,7 @@ import SwiftUI
|
||||
// Inspired by https://cocoacasts.com/from-hex-to-uicolor-and-back-in-swift
|
||||
// Make Color codable. This includes support for transparency.
|
||||
// See https://www.digitalocean.com/community/tutorials/css-hex-code-colors-alpha-values
|
||||
extension Color: Codable {
|
||||
extension Color: @retroactive Codable {
|
||||
init(hex: String) {
|
||||
let rgba = hex.toRGBA()
|
||||
|
||||
@@ -99,7 +99,7 @@ extension String {
|
||||
}
|
||||
}
|
||||
|
||||
extension Color: RawRepresentable {
|
||||
extension Color: @retroactive RawRepresentable {
|
||||
// TODO: Sort out alpha
|
||||
public init?(rawValue: Int) {
|
||||
let red = Double((rawValue & 0xFF0000) >> 16) / 0xFF
|
||||
|
||||
Reference in New Issue
Block a user