From c4936d438ea577eaa50fe57e7f0daa9ac67f7c02 Mon Sep 17 00:00:00 2001 From: Shaps Benkau Date: Wed, 1 Feb 2023 09:06:15 +0000 Subject: [PATCH] Fixes tvOS and watchOS --- .../SwiftUIBackports/Internal/Platforms.swift | 36 +++++++------------ .../Shared/ImageRenderer/Renderer.swift | 2 ++ .../PhotosPicker/Core/MediaResults.swift | 4 ++- .../PhotosPicker/Core/PHFetchOptions.swift | 4 ++- .../Core/PHObject+Identifiable.swift | 4 ++- .../PhotosPicker/Fetch/FetchAsset.swift | 2 ++ .../Fetch/FetchAssetCollection.swift | 2 ++ .../PhotosPicker/Fetch/FetchAssetList.swift | 2 ++ .../Fetch/FetchCollectionList.swift | 2 ++ .../ScrollContentBackground.swift | 2 ++ .../Multiple Items/Items+Label.swift | 2 ++ .../ShareLink/Multiple Items/Items.swift | 2 ++ .../Shared/ShareLink/ShareLink.swift | 4 +++ .../Shared/ShareLink/ShareSheet.swift | 2 ++ .../ShareLink/Single Item/Item+Label.swift | 2 ++ .../Shared/ShareLink/Single Item/Item.swift | 2 ++ .../Shared/ShareLink/Transferable.swift | 4 +++ 17 files changed, 51 insertions(+), 27 deletions(-) diff --git a/Sources/SwiftUIBackports/Internal/Platforms.swift b/Sources/SwiftUIBackports/Internal/Platforms.swift index d213222..e3df52f 100644 --- a/Sources/SwiftUIBackports/Internal/Platforms.swift +++ b/Sources/SwiftUIBackports/Internal/Platforms.swift @@ -11,21 +11,21 @@ internal typealias PlatformViewController = UIViewController extension UIScreen { @nonobjc - public static var mainScreen: UIScreen { - return .main - } + public static var mainScreen: UIScreen { .main } } extension UIImage { - public var png: Data? { - return self.pngData() - } + public var png: Data? { pngData() } + public func jpg(quality: CGFloat) -> Data? { jpegData(compressionQuality: quality) } +} - public func jpg(quality: CGFloat) -> Data? { - return self.jpegData(compressionQuality: quality) +extension CGContext { + internal static var current: CGContext? { + UIGraphicsGetCurrentContext() } } + #elseif os(macOS) import AppKit @@ -38,13 +38,8 @@ internal typealias PlatformScrollView = NSScrollView internal typealias PlatformViewController = NSViewController extension NSScreen { - public static var mainScreen: NSScreen { - return NSScreen.main! - } - - public var scale: CGFloat { - return backingScaleFactor - } + public static var mainScreen: NSScreen { NSScreen.main! } + public var scale: CGFloat { backingScaleFactor } } extension NSImage { @@ -57,16 +52,9 @@ extension NSImage { } } -#endif - extension CGContext { - internal static var current: CGContext? { -#if os(OSX) - return NSGraphicsContext.current?.cgContext -#else - return UIGraphicsGetCurrentContext() -#endif + NSGraphicsContext.current?.cgContext } - } +#endif diff --git a/Sources/SwiftUIBackports/Shared/ImageRenderer/Renderer.swift b/Sources/SwiftUIBackports/Shared/ImageRenderer/Renderer.swift index 54b85d5..4d81a7c 100644 --- a/Sources/SwiftUIBackports/Shared/ImageRenderer/Renderer.swift +++ b/Sources/SwiftUIBackports/Shared/ImageRenderer/Renderer.swift @@ -1,3 +1,4 @@ +#if os(macOS) || os(iOS) import SwiftUI public extension Backport { @@ -76,3 +77,4 @@ private extension NSView { } } #endif +#endif diff --git a/Sources/SwiftUIBackports/Shared/PhotosPicker/Core/MediaResults.swift b/Sources/SwiftUIBackports/Shared/PhotosPicker/Core/MediaResults.swift index 9da6ece..f2968a9 100644 --- a/Sources/SwiftUIBackports/Shared/PhotosPicker/Core/MediaResults.swift +++ b/Sources/SwiftUIBackports/Shared/PhotosPicker/Core/MediaResults.swift @@ -1,4 +1,5 @@ -import Photos +#if os(iOS) +import PhotosUI /// Represents a `PHFetchResult` that can be used as a `RandomAccessCollection` in a SwiftUI view such as `List`, `ForEach`, etc... internal struct MediaResults: RandomAccessCollection where Result: PHObject { @@ -38,3 +39,4 @@ internal final class ResultsObserver: NSObject, ObservableObject, PHPhot } } +#endif diff --git a/Sources/SwiftUIBackports/Shared/PhotosPicker/Core/PHFetchOptions.swift b/Sources/SwiftUIBackports/Shared/PhotosPicker/Core/PHFetchOptions.swift index 899236b..836e414 100644 --- a/Sources/SwiftUIBackports/Shared/PhotosPicker/Core/PHFetchOptions.swift +++ b/Sources/SwiftUIBackports/Shared/PhotosPicker/Core/PHFetchOptions.swift @@ -1,5 +1,6 @@ +#if os(iOS) import Foundation -import Photos +import PhotosUI internal extension PHFetchOptions { @@ -61,3 +62,4 @@ internal extension PHFetchOptions { } } +#endif diff --git a/Sources/SwiftUIBackports/Shared/PhotosPicker/Core/PHObject+Identifiable.swift b/Sources/SwiftUIBackports/Shared/PhotosPicker/Core/PHObject+Identifiable.swift index 3f2543f..f4e456a 100644 --- a/Sources/SwiftUIBackports/Shared/PhotosPicker/Core/PHObject+Identifiable.swift +++ b/Sources/SwiftUIBackports/Shared/PhotosPicker/Core/PHObject+Identifiable.swift @@ -1,6 +1,8 @@ +#if os(iOS) import SwiftUI -import Photos +import PhotosUI extension PHObject: Identifiable { public var id: String { localIdentifier } } +#endif diff --git a/Sources/SwiftUIBackports/Shared/PhotosPicker/Fetch/FetchAsset.swift b/Sources/SwiftUIBackports/Shared/PhotosPicker/Fetch/FetchAsset.swift index 3e8a2dc..946555b 100644 --- a/Sources/SwiftUIBackports/Shared/PhotosPicker/Fetch/FetchAsset.swift +++ b/Sources/SwiftUIBackports/Shared/PhotosPicker/Fetch/FetchAsset.swift @@ -1,3 +1,4 @@ +#if os(iOS) import Photos import SwiftUI @@ -58,3 +59,4 @@ internal final class AssetObserver: NSObject, ObservableObject, PHPhotoLibraryCh } } +#endif diff --git a/Sources/SwiftUIBackports/Shared/PhotosPicker/Fetch/FetchAssetCollection.swift b/Sources/SwiftUIBackports/Shared/PhotosPicker/Fetch/FetchAssetCollection.swift index db19931..a9adcb7 100644 --- a/Sources/SwiftUIBackports/Shared/PhotosPicker/Fetch/FetchAssetCollection.swift +++ b/Sources/SwiftUIBackports/Shared/PhotosPicker/Fetch/FetchAssetCollection.swift @@ -1,3 +1,4 @@ +#if os(iOS) import Photos import SwiftUI @@ -93,3 +94,4 @@ internal extension FetchAssetCollection { } } +#endif diff --git a/Sources/SwiftUIBackports/Shared/PhotosPicker/Fetch/FetchAssetList.swift b/Sources/SwiftUIBackports/Shared/PhotosPicker/Fetch/FetchAssetList.swift index 23a15ab..c9831fd 100644 --- a/Sources/SwiftUIBackports/Shared/PhotosPicker/Fetch/FetchAssetList.swift +++ b/Sources/SwiftUIBackports/Shared/PhotosPicker/Fetch/FetchAssetList.swift @@ -1,3 +1,4 @@ +#if os(iOS) import Photos import SwiftUI @@ -114,3 +115,4 @@ internal extension FetchAssetList { } } +#endif diff --git a/Sources/SwiftUIBackports/Shared/PhotosPicker/Fetch/FetchCollectionList.swift b/Sources/SwiftUIBackports/Shared/PhotosPicker/Fetch/FetchCollectionList.swift index 80831f4..7b4a11e 100644 --- a/Sources/SwiftUIBackports/Shared/PhotosPicker/Fetch/FetchCollectionList.swift +++ b/Sources/SwiftUIBackports/Shared/PhotosPicker/Fetch/FetchCollectionList.swift @@ -1,3 +1,4 @@ +#if os(iOS) import Photos import SwiftUI @@ -103,3 +104,4 @@ internal extension FetchCollectionList { } } +#endif diff --git a/Sources/SwiftUIBackports/Shared/ScrollContentBackground/ScrollContentBackground.swift b/Sources/SwiftUIBackports/Shared/ScrollContentBackground/ScrollContentBackground.swift index ebdc15a..b7c1dd6 100644 --- a/Sources/SwiftUIBackports/Shared/ScrollContentBackground/ScrollContentBackground.swift +++ b/Sources/SwiftUIBackports/Shared/ScrollContentBackground/ScrollContentBackground.swift @@ -1,3 +1,4 @@ +#if os(iOS) import SwiftUI /* @@ -15,3 +16,4 @@ private extension Backport where Wrapped: View { } } } +#endif diff --git a/Sources/SwiftUIBackports/Shared/ShareLink/Multiple Items/Items+Label.swift b/Sources/SwiftUIBackports/Shared/ShareLink/Multiple Items/Items+Label.swift index 2b7acf9..a44a42f 100644 --- a/Sources/SwiftUIBackports/Shared/ShareLink/Multiple Items/Items+Label.swift +++ b/Sources/SwiftUIBackports/Shared/ShareLink/Multiple Items/Items+Label.swift @@ -1,3 +1,4 @@ +#if os(macOS) || os(iOS) import SwiftUI @available(iOS, deprecated: 16) @@ -59,3 +60,4 @@ public extension Backport.ShareLink where Wrapped == Any { self.preview = { .init($0.absoluteString) } } } +#endif diff --git a/Sources/SwiftUIBackports/Shared/ShareLink/Multiple Items/Items.swift b/Sources/SwiftUIBackports/Shared/ShareLink/Multiple Items/Items.swift index 3259bdd..1eb44b8 100644 --- a/Sources/SwiftUIBackports/Shared/ShareLink/Multiple Items/Items.swift +++ b/Sources/SwiftUIBackports/Shared/ShareLink/Multiple Items/Items.swift @@ -1,3 +1,4 @@ +#if os(macOS) || os(iOS) import SwiftUI @available(iOS, deprecated: 16) @@ -41,3 +42,4 @@ public extension Backport.ShareLink where Wrapped == Any { self.preview = { .init($0.absoluteString) } } } +#endif diff --git a/Sources/SwiftUIBackports/Shared/ShareLink/ShareLink.swift b/Sources/SwiftUIBackports/Shared/ShareLink/ShareLink.swift index 257f91e..f1f30ed 100644 --- a/Sources/SwiftUIBackports/Shared/ShareLink/ShareLink.swift +++ b/Sources/SwiftUIBackports/Shared/ShareLink/ShareLink.swift @@ -1,5 +1,8 @@ +#if os(macOS) || os(iOS) import SwiftUI +#if canImport(LinkPresentation) import LinkPresentation +#endif @available(iOS, deprecated: 16) @available(macOS, deprecated: 13) @@ -65,3 +68,4 @@ public extension Backport where Wrapped == Any { // override func activityViewController(_ activityViewController: UIActivityViewController, subjectForActivityType activityType: UIActivity.ActivityType?) -> String { subject ?? "" } // //} +#endif diff --git a/Sources/SwiftUIBackports/Shared/ShareLink/ShareSheet.swift b/Sources/SwiftUIBackports/Shared/ShareLink/ShareSheet.swift index a3439a8..ce25811 100644 --- a/Sources/SwiftUIBackports/Shared/ShareLink/ShareSheet.swift +++ b/Sources/SwiftUIBackports/Shared/ShareLink/ShareSheet.swift @@ -1,5 +1,6 @@ import SwiftUI +#if os(macOS) || os(iOS) extension View { @ViewBuilder func shareSheet(item activityItems: Binding?>) -> some View where Data: RandomAccessCollection, Data.Element: Shareable { @@ -10,6 +11,7 @@ extension View { #endif } } +#endif #if os(macOS) diff --git a/Sources/SwiftUIBackports/Shared/ShareLink/Single Item/Item+Label.swift b/Sources/SwiftUIBackports/Shared/ShareLink/Single Item/Item+Label.swift index 54c2674..4153c98 100644 --- a/Sources/SwiftUIBackports/Shared/ShareLink/Single Item/Item+Label.swift +++ b/Sources/SwiftUIBackports/Shared/ShareLink/Single Item/Item+Label.swift @@ -1,3 +1,4 @@ +#if os(macOS) || os(iOS) import SwiftUI @available(iOS, deprecated: 16) @@ -59,3 +60,4 @@ public extension Backport.ShareLink where Wrapped == Any { self.preview = { .init($0.absoluteString) } } } +#endif diff --git a/Sources/SwiftUIBackports/Shared/ShareLink/Single Item/Item.swift b/Sources/SwiftUIBackports/Shared/ShareLink/Single Item/Item.swift index 330a280..575cfa6 100644 --- a/Sources/SwiftUIBackports/Shared/ShareLink/Single Item/Item.swift +++ b/Sources/SwiftUIBackports/Shared/ShareLink/Single Item/Item.swift @@ -1,3 +1,4 @@ +#if os(macOS) || os(iOS) import SwiftUI @available(iOS, deprecated: 16) @@ -41,3 +42,4 @@ public extension Backport.ShareLink where Wrapped == Any { self.preview = { .init($0.absoluteString) } } } +#endif diff --git a/Sources/SwiftUIBackports/Shared/ShareLink/Transferable.swift b/Sources/SwiftUIBackports/Shared/ShareLink/Transferable.swift index 118de90..9bef82f 100644 --- a/Sources/SwiftUIBackports/Shared/ShareLink/Transferable.swift +++ b/Sources/SwiftUIBackports/Shared/ShareLink/Transferable.swift @@ -1,3 +1,4 @@ +#if os(macOS) || os(iOS) import SwiftUI @available(iOS, deprecated: 16.0) @@ -7,6 +8,8 @@ import SwiftUI /// TEMPORARY, DO NOT RELY ON THIS! /// /// - Note: This **will be removed** in an upcoming release, regardless of semantic versioning +@available(iOS, message: "This **will be removed** in an upcoming release, regardless of semantic versioning") +@available(macOS, message: "This **will be removed** in an upcoming release, regardless of semantic versioning") public protocol Shareable { var pathExtension: String { get } var itemProvider: NSItemProvider? { get } @@ -75,3 +78,4 @@ extension PlatformImage: Shareable { } } } +#endif