From 5f9b126e720061c45e7f56a3163fd01bb550719c Mon Sep 17 00:00:00 2001 From: ActuallyTaylor Date: Tue, 5 Sep 2023 18:12:27 -0400 Subject: [PATCH] Added support for iOS 15 and macOS11. Moved targets Signed-off-by: ActuallyTaylor --- Package.swift | 9 +++++---- .../{Backbone => }/Logger.swift | 12 +++++------- .../Backbone/Config.swift | 17 +++++++++++++++++ .../Backbone/DebugHandler.swift | 0 .../Backbone/Debuggable.swift | 0 .../Extensions/UIApplication+MainScene.swift | 0 .../Backbone/UIDevice.swift | 1 + .../SampleView.swift | 3 +++ .../HydrogenReporter/Child Views/RowView.swift | 0 .../Views/HydrogenReporter/Console.swift | 1 + .../Views/HydrogenReporter/DebugView.swift | 4 +++- .../Views/HydrogenReporter/LoggerView.swift | 1 + .../Views/HydrogenReporter/MirrorView.swift | 0 .../Views/HydrogenReporter/StatisticsView.swift | 0 .../Views/Modifiers/HydrogenModifiers.swift | 2 ++ .../Views/Modifiers/RoundedBorder.swift | 0 16 files changed, 38 insertions(+), 12 deletions(-) rename Sources/HydrogenReporter/{Backbone => }/Logger.swift (98%) rename Sources/{HydrogenReporter => HydrogenUI}/Backbone/Config.swift (74%) rename Sources/{HydrogenReporter => HydrogenUI}/Backbone/DebugHandler.swift (100%) rename Sources/{HydrogenReporter => HydrogenUI}/Backbone/Debuggable.swift (100%) rename Sources/{HydrogenReporter => HydrogenUI}/Backbone/Extensions/UIApplication+MainScene.swift (100%) rename Sources/{HydrogenReporter => HydrogenUI}/Backbone/UIDevice.swift (99%) rename Sources/{HydrogenReporter => HydrogenUI}/SampleView.swift (95%) rename Sources/{HydrogenReporter => HydrogenUI}/Views/HydrogenReporter/Child Views/RowView.swift (100%) rename Sources/{HydrogenReporter => HydrogenUI}/Views/HydrogenReporter/Console.swift (99%) rename Sources/{HydrogenReporter => HydrogenUI}/Views/HydrogenReporter/DebugView.swift (99%) rename Sources/{HydrogenReporter => HydrogenUI}/Views/HydrogenReporter/LoggerView.swift (99%) rename Sources/{HydrogenReporter => HydrogenUI}/Views/HydrogenReporter/MirrorView.swift (100%) rename Sources/{HydrogenReporter => HydrogenUI}/Views/HydrogenReporter/StatisticsView.swift (100%) rename Sources/{HydrogenReporter => HydrogenUI}/Views/Modifiers/HydrogenModifiers.swift (93%) rename Sources/{HydrogenReporter => HydrogenUI}/Views/Modifiers/RoundedBorder.swift (100%) diff --git a/Package.swift b/Package.swift index 0362c52..096a8c0 100644 --- a/Package.swift +++ b/Package.swift @@ -6,13 +6,15 @@ import PackageDescription let package = Package( name: "HydrogenReporter", platforms: [ - .iOS(.v16) + .iOS(.v15), + .macOS(.v11) ], products: [ // Products define the executables and libraries a package produces, and make them visible to other packages. .library( name: "HydrogenReporter", targets: ["HydrogenReporter"]), + .library(name: "HydrogenUI", targets: ["HydrogenUI"]) ], dependencies: [ // Dependencies declare other packages that this package depends on. @@ -21,9 +23,8 @@ let package = Package( targets: [ // Targets are the basic building blocks of a package. A target can define a module or a test suite. // Targets can depend on other targets in this package, and on products in packages this package depends on. - .target( - name: "HydrogenReporter", - dependencies: []), + .target(name: "HydrogenReporter", dependencies: []), + .target(name: "HydrogenUI", dependencies: ["HydrogenReporter"]), .testTarget( name: "HydrogenReporterTests", dependencies: ["HydrogenReporter"]), diff --git a/Sources/HydrogenReporter/Backbone/Logger.swift b/Sources/HydrogenReporter/Logger.swift similarity index 98% rename from Sources/HydrogenReporter/Backbone/Logger.swift rename to Sources/HydrogenReporter/Logger.swift index 717e2f7..1337e9e 100644 --- a/Sources/HydrogenReporter/Backbone/Logger.swift +++ b/Sources/HydrogenReporter/Logger.swift @@ -102,7 +102,7 @@ public class Logger: ObservableObject { let separator: String let terminator: String - let level: LogLevel + public let level: LogLevel let complexity: LogComplexity let file: String @@ -145,7 +145,7 @@ public class Logger: ObservableObject { private var config: LoggerConfig = .defaultConfig - @Published var logs: [LogItem] = [] + @Published public var logs: [LogItem] = [] // MARK: Console Intercepting internal var originalSTDOUTDescriptor: Int32 @@ -157,9 +157,9 @@ public class Logger: ObservableObject { internal let stderrInputPipe = Pipe() internal let stderrOutputPipe = Pipe() - @Published var consoleOutput: String = "" - @Published var stdout: String = "" - @Published var stderr: String = "" + @Published public var consoleOutput: String = "" + @Published public var stdout: String = "" + @Published public var stderr: String = "" var isInterceptingConsoleOutput: Bool = false @@ -351,8 +351,6 @@ extension Logger { } } - - // /MARK: Log Function public func LOG(_ items: Any..., separator: String = " ", diff --git a/Sources/HydrogenReporter/Backbone/Config.swift b/Sources/HydrogenUI/Backbone/Config.swift similarity index 74% rename from Sources/HydrogenReporter/Backbone/Config.swift rename to Sources/HydrogenUI/Backbone/Config.swift index f2fd3a4..8ea18ba 100644 --- a/Sources/HydrogenReporter/Backbone/Config.swift +++ b/Sources/HydrogenUI/Backbone/Config.swift @@ -57,6 +57,7 @@ public struct Config { } static var appAppearance: AppAppearance { + #if canImport(UIKit) if UITraitCollection.current.userInterfaceStyle == .dark { return .dark } else if UITraitCollection.current.userInterfaceStyle == .light { @@ -64,5 +65,21 @@ public struct Config { } else { return .light } + #elseif canImport(AppKit) + return NSApplication.shared.isDarkmode() ? .dark : .light + #endif + } +} + +#if canImport(AppKit) +extension NSApplication { + func isDarkmode() -> Bool { + let type = UserDefaults.standard.string(forKey: "AppleInterfaceStyle") ?? "Light" + return type == "Dark" } } + +extension Notification.Name { + static let AppleInterfaceThemeChangedNotification = Notification.Name("AppleInterfaceThemeChangedNotification") +} +#endif diff --git a/Sources/HydrogenReporter/Backbone/DebugHandler.swift b/Sources/HydrogenUI/Backbone/DebugHandler.swift similarity index 100% rename from Sources/HydrogenReporter/Backbone/DebugHandler.swift rename to Sources/HydrogenUI/Backbone/DebugHandler.swift diff --git a/Sources/HydrogenReporter/Backbone/Debuggable.swift b/Sources/HydrogenUI/Backbone/Debuggable.swift similarity index 100% rename from Sources/HydrogenReporter/Backbone/Debuggable.swift rename to Sources/HydrogenUI/Backbone/Debuggable.swift diff --git a/Sources/HydrogenReporter/Backbone/Extensions/UIApplication+MainScene.swift b/Sources/HydrogenUI/Backbone/Extensions/UIApplication+MainScene.swift similarity index 100% rename from Sources/HydrogenReporter/Backbone/Extensions/UIApplication+MainScene.swift rename to Sources/HydrogenUI/Backbone/Extensions/UIApplication+MainScene.swift diff --git a/Sources/HydrogenReporter/Backbone/UIDevice.swift b/Sources/HydrogenUI/Backbone/UIDevice.swift similarity index 99% rename from Sources/HydrogenReporter/Backbone/UIDevice.swift rename to Sources/HydrogenUI/Backbone/UIDevice.swift index 875ab42..874f28c 100644 --- a/Sources/HydrogenReporter/Backbone/UIDevice.swift +++ b/Sources/HydrogenUI/Backbone/UIDevice.swift @@ -2,6 +2,7 @@ import Foundation import UIKit import MachO +import HydrogenReporter public extension UIDevice { diff --git a/Sources/HydrogenReporter/SampleView.swift b/Sources/HydrogenUI/SampleView.swift similarity index 95% rename from Sources/HydrogenReporter/SampleView.swift rename to Sources/HydrogenUI/SampleView.swift index 677d3c9..182ef87 100644 --- a/Sources/HydrogenReporter/SampleView.swift +++ b/Sources/HydrogenUI/SampleView.swift @@ -6,6 +6,7 @@ // import SwiftUI +import HydrogenReporter class SampleViewModel: ObservableObject, Debuggable { var swiftyDebugDescription: String = "Hello" @@ -13,6 +14,7 @@ class SampleViewModel: ObservableObject, Debuggable { @Published var test: String = "Hello Publisher" } +@available(macOS 12.0, *) struct SampleView: View { @StateObject var viewModel: SampleViewModel = SampleViewModel() @State var string: String = "Hello World" @@ -57,6 +59,7 @@ struct SampleView: View { } } +@available(macOS 12.0, *) struct SampleView_Previews: PreviewProvider { static var previews: some View { SampleView() diff --git a/Sources/HydrogenReporter/Views/HydrogenReporter/Child Views/RowView.swift b/Sources/HydrogenUI/Views/HydrogenReporter/Child Views/RowView.swift similarity index 100% rename from Sources/HydrogenReporter/Views/HydrogenReporter/Child Views/RowView.swift rename to Sources/HydrogenUI/Views/HydrogenReporter/Child Views/RowView.swift diff --git a/Sources/HydrogenReporter/Views/HydrogenReporter/Console.swift b/Sources/HydrogenUI/Views/HydrogenReporter/Console.swift similarity index 99% rename from Sources/HydrogenReporter/Views/HydrogenReporter/Console.swift rename to Sources/HydrogenUI/Views/HydrogenReporter/Console.swift index b69f36a..5495a4a 100644 --- a/Sources/HydrogenReporter/Views/HydrogenReporter/Console.swift +++ b/Sources/HydrogenUI/Views/HydrogenReporter/Console.swift @@ -6,6 +6,7 @@ // import SwiftUI +import HydrogenReporter struct Console: View { enum OutputMode { diff --git a/Sources/HydrogenReporter/Views/HydrogenReporter/DebugView.swift b/Sources/HydrogenUI/Views/HydrogenReporter/DebugView.swift similarity index 99% rename from Sources/HydrogenReporter/Views/HydrogenReporter/DebugView.swift rename to Sources/HydrogenUI/Views/HydrogenReporter/DebugView.swift index 0fec3d3..cfd2a17 100644 --- a/Sources/HydrogenReporter/Views/HydrogenReporter/DebugView.swift +++ b/Sources/HydrogenUI/Views/HydrogenReporter/DebugView.swift @@ -6,8 +6,10 @@ // import SwiftUI +import HydrogenReporter // MARK: Swifty Debug +@available(macOS 12.0, *) struct DebugView: View { @StateObject var debugHandler: DebugHandler = .shared @StateObject var logger: Logger = .shared @@ -229,7 +231,7 @@ struct DebugView: View { } - +@available(macOS 12.0, *) struct DebugView_Previews: PreviewProvider { static var previews: some View { DebugView() diff --git a/Sources/HydrogenReporter/Views/HydrogenReporter/LoggerView.swift b/Sources/HydrogenUI/Views/HydrogenReporter/LoggerView.swift similarity index 99% rename from Sources/HydrogenReporter/Views/HydrogenReporter/LoggerView.swift rename to Sources/HydrogenUI/Views/HydrogenReporter/LoggerView.swift index a60c5b1..b577f25 100644 --- a/Sources/HydrogenReporter/Views/HydrogenReporter/LoggerView.swift +++ b/Sources/HydrogenUI/Views/HydrogenReporter/LoggerView.swift @@ -6,6 +6,7 @@ // import SwiftUI +import HydrogenReporter struct LoggerView: View { @EnvironmentObject var logger: Logger diff --git a/Sources/HydrogenReporter/Views/HydrogenReporter/MirrorView.swift b/Sources/HydrogenUI/Views/HydrogenReporter/MirrorView.swift similarity index 100% rename from Sources/HydrogenReporter/Views/HydrogenReporter/MirrorView.swift rename to Sources/HydrogenUI/Views/HydrogenReporter/MirrorView.swift diff --git a/Sources/HydrogenReporter/Views/HydrogenReporter/StatisticsView.swift b/Sources/HydrogenUI/Views/HydrogenReporter/StatisticsView.swift similarity index 100% rename from Sources/HydrogenReporter/Views/HydrogenReporter/StatisticsView.swift rename to Sources/HydrogenUI/Views/HydrogenReporter/StatisticsView.swift diff --git a/Sources/HydrogenReporter/Views/Modifiers/HydrogenModifiers.swift b/Sources/HydrogenUI/Views/Modifiers/HydrogenModifiers.swift similarity index 93% rename from Sources/HydrogenReporter/Views/Modifiers/HydrogenModifiers.swift rename to Sources/HydrogenUI/Views/Modifiers/HydrogenModifiers.swift index 9e57ca4..5176de9 100644 --- a/Sources/HydrogenReporter/Views/Modifiers/HydrogenModifiers.swift +++ b/Sources/HydrogenUI/Views/Modifiers/HydrogenModifiers.swift @@ -7,12 +7,14 @@ import SwiftUI +@available(macOS 12.0, *) struct HydrogenReporterModifier: ViewModifier { func body(content: Content) -> some View { content.overlay(DebugView()) } } +@available(macOS 12.0, *) public extension View { func hydrogenReporter() -> some View { return self.modifier(HydrogenReporterModifier()) diff --git a/Sources/HydrogenReporter/Views/Modifiers/RoundedBorder.swift b/Sources/HydrogenUI/Views/Modifiers/RoundedBorder.swift similarity index 100% rename from Sources/HydrogenReporter/Views/Modifiers/RoundedBorder.swift rename to Sources/HydrogenUI/Views/Modifiers/RoundedBorder.swift