mirror of
https://github.com/neon443/NearFuture.git
synced 2026-03-11 14:56:15 +00:00
fixed appkit and uikit conflicts
This commit is contained in:
@@ -11,6 +11,10 @@ import SwiftUI
|
|||||||
import WidgetKit
|
import WidgetKit
|
||||||
import UserNotifications
|
import UserNotifications
|
||||||
import AppIntents
|
import AppIntents
|
||||||
|
#if canImport(AppKit)
|
||||||
|
import AppKit
|
||||||
|
import IOKit
|
||||||
|
#endif
|
||||||
|
|
||||||
//@Model
|
//@Model
|
||||||
//final class Item {
|
//final class Item {
|
||||||
@@ -39,21 +43,44 @@ struct Event: Identifiable, Codable, Equatable, Animatable {
|
|||||||
|
|
||||||
struct ColorCodable: Codable, Equatable {
|
struct ColorCodable: Codable, Equatable {
|
||||||
init(_ color: Color) {
|
init(_ color: Color) {
|
||||||
let uiColor = UIColor(color)
|
var r: CGFloat = 0, g: CGFloat = 0, b: CGFloat = 0, a: CGFloat = 1
|
||||||
var r: CGFloat = 0, g: CGFloat = 0, b: CGFloat = 0, a: CGFloat = 1.0
|
|
||||||
uiColor.getRed(&r, green: &g, blue: &b, alpha: &a)
|
|
||||||
|
|
||||||
self.red = Double(r)
|
#if canImport(UIKit)
|
||||||
self.green = Double(g)
|
let uiColor = UIColor(color)
|
||||||
self.blue = Double(b)
|
uiColor.getRed(&r, green: &g, blue: &b, alpha: &a)
|
||||||
|
#elseif canImport(AppKit)
|
||||||
|
let nscolor = NSColor(color).usingColorSpace(.deviceRGB)
|
||||||
|
nscolor!.getRed(&r, green: &g, blue: &b, alpha: &a)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
self = ColorCodable(
|
||||||
|
red: r,
|
||||||
|
green: g,
|
||||||
|
blue: b
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
#if canImport(UIKit)
|
||||||
init(uiColor: UIColor) {
|
init(uiColor: UIColor) {
|
||||||
var r: CGFloat = 0, g: CGFloat = 0, b: CGFloat = 0, a: CGFloat = 1.0
|
var r: CGFloat = 0, g: CGFloat = 0, b: CGFloat = 0, a: CGFloat = 1.0
|
||||||
uiColor.getRed(&r, green: &g, blue: &b, alpha: &a)
|
uiColor.getRed(&r, green: &g, blue: &b, alpha: &a)
|
||||||
self.red = Double(r)
|
self = ColorCodable(
|
||||||
self.green = Double(g)
|
red: r,
|
||||||
self.blue = Double(b)
|
green: g,
|
||||||
|
blue: b
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
#elseif canImport(AppKit)
|
||||||
|
init(nsColor: NSColor) {
|
||||||
|
var r: CGFloat = 0, g: CGFloat = 0, b: CGFloat = 0, a: CGFloat = 1.0
|
||||||
|
let nsColor = nsColor.usingColorSpace(.deviceRGB)
|
||||||
|
nsColor!.getRed(&r, green: &g, blue: &b, alpha: &a)
|
||||||
|
self = ColorCodable(
|
||||||
|
red: r,
|
||||||
|
green: g,
|
||||||
|
blue: b
|
||||||
|
)
|
||||||
|
}
|
||||||
|
#endif
|
||||||
init(red: Double, green: Double, blue: Double) {
|
init(red: Double, green: Double, blue: Double) {
|
||||||
self.red = red
|
self.red = red
|
||||||
self.green = green
|
self.green = green
|
||||||
@@ -112,28 +139,57 @@ struct Settings: Codable, Equatable {
|
|||||||
var prevAppVersion: String
|
var prevAppVersion: String
|
||||||
}
|
}
|
||||||
|
|
||||||
struct AccentIcon {
|
class AccentIcon {
|
||||||
|
#if canImport(UIKit)
|
||||||
var icon: UIImage
|
var icon: UIImage
|
||||||
|
#elseif canImport(AppKit)
|
||||||
|
var icon: NSImage
|
||||||
|
#endif
|
||||||
var color: Color
|
var color: Color
|
||||||
var name: String
|
var name: String
|
||||||
|
|
||||||
init(_ colorName: String) {
|
init(_ colorName: String) {
|
||||||
if colorName == "orange" {
|
#if canImport(UIKit)
|
||||||
self.icon = UIImage(named: "AppIcon")!
|
self.icon = UIImage(named: "AppIcon")!
|
||||||
} else {
|
|
||||||
self.icon = UIImage(named: colorName)!
|
|
||||||
}
|
|
||||||
self.color = Color(uiColor: UIColor(named: "uiColors/\(colorName)")!)
|
self.color = Color(uiColor: UIColor(named: "uiColors/\(colorName)")!)
|
||||||
|
#elseif canImport(AppKit)
|
||||||
|
self.icon = NSImage(imageLiteralResourceName: "AppIcon")
|
||||||
|
self.color = Color(nsColor: NSColor(named: "uiColors/\(colorName)")!)
|
||||||
|
#endif
|
||||||
|
|
||||||
self.name = colorName
|
self.name = colorName
|
||||||
|
|
||||||
|
if colorName != "orange" {
|
||||||
|
setSelfIcon(to: colorName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func setSelfIcon(to name: String) {
|
||||||
|
#if canImport(UIKit)
|
||||||
|
self.icon = UIImage(named: name)!
|
||||||
|
#elseif canImport(AppKit)
|
||||||
|
self.icon = NSImage(imageLiteralResourceName: name)
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class SettingsViewModel: ObservableObject {
|
class SettingsViewModel: ObservableObject {
|
||||||
|
#if canImport(UIKit)
|
||||||
@Published var settings: Settings = Settings(
|
@Published var settings: Settings = Settings(
|
||||||
showCompletedInHome: false,
|
showCompletedInHome: false,
|
||||||
tint: ColorCodable(uiColor: UIColor(named: "AccentColor")!),
|
tint: ColorCodable(uiColor: UIColor(named: "AccentColor")!),
|
||||||
showWhatsNew: true,
|
showWhatsNew: true,
|
||||||
prevAppVersion: getVersion()+getBuildID()
|
prevAppVersion: getVersion()+getBuildID()
|
||||||
)
|
)
|
||||||
|
#elseif canImport(AppKit)
|
||||||
|
@Published var settings: Settings = Settings(
|
||||||
|
showCompletedInHome: false,
|
||||||
|
tint: ColorCodable(nsColor: NSColor(named: "AccentColor")!),
|
||||||
|
showWhatsNew: true,
|
||||||
|
prevAppVersion: getVersion()+getBuildID()
|
||||||
|
)
|
||||||
|
#endif
|
||||||
|
|
||||||
@Published var notifsGranted: Bool = false
|
@Published var notifsGranted: Bool = false
|
||||||
|
|
||||||
@Published var colorChoices: [AccentIcon] = []
|
@Published var colorChoices: [AccentIcon] = []
|
||||||
@@ -165,10 +221,16 @@ class SettingsViewModel: ObservableObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func changeTint(to: String) {
|
func changeTint(to: String) {
|
||||||
|
#if canImport(UIKit)
|
||||||
if let uicolor = UIColor(named: "uiColors/\(to)") {
|
if let uicolor = UIColor(named: "uiColors/\(to)") {
|
||||||
self.settings.tint = ColorCodable(uiColor: uicolor)
|
self.settings.tint = ColorCodable(uiColor: uicolor)
|
||||||
saveSettings()
|
saveSettings()
|
||||||
}
|
}
|
||||||
|
#elseif canImport(AppKit)
|
||||||
|
if let nscolor = NSColor(named: "uiColors/\(to)") {
|
||||||
|
self.settings.tint = ColorCodable(nsColor: nscolor)
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
let appGroupSettingsStore = UserDefaults(suiteName: "group.NearFuture") ?? UserDefaults.standard
|
let appGroupSettingsStore = UserDefaults(suiteName: "group.NearFuture") ?? UserDefaults.standard
|
||||||
@@ -580,6 +642,7 @@ func getBuildID() -> String {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func getDevice() -> (sf: String, label: String) {
|
func getDevice() -> (sf: String, label: String) {
|
||||||
|
#if canImport(UIKit)
|
||||||
let asi = ProcessInfo().isiOSAppOnMac
|
let asi = ProcessInfo().isiOSAppOnMac
|
||||||
let model = UIDevice().model
|
let model = UIDevice().model
|
||||||
if asi {
|
if asi {
|
||||||
@@ -590,6 +653,10 @@ func getDevice() -> (sf: String, label: String) {
|
|||||||
return (sf: model.lowercased(), label: model)
|
return (sf: model.lowercased(), label: model)
|
||||||
}
|
}
|
||||||
return (sf: "iphone", label: "iPhone")
|
return (sf: "iphone", label: "iPhone")
|
||||||
|
#elseif canImport(AppKit)
|
||||||
|
|
||||||
|
return (sf: "", label: "")
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
extension Event: AppEntity {
|
extension Event: AppEntity {
|
||||||
|
|||||||
Reference in New Issue
Block a user