diff --git a/apple/Omnivore.xcworkspace/xcshareddata/swiftpm/Package.resolved b/apple/Omnivore.xcworkspace/xcshareddata/swiftpm/Package.resolved index 5090a25ab..0667008b4 100644 --- a/apple/Omnivore.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/apple/Omnivore.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -153,6 +153,15 @@ "version" : "2.1.0" } }, + { + "identity" : "pspdfkit-sp", + "kind" : "remoteSourceControl", + "location" : "https://github.com/PSPDFKit/PSPDFKit-SP", + "state" : { + "branch" : "master", + "revision" : "e9757beadad1b30de84073d3c33c1cd0f7a94b80" + } + }, { "identity" : "sovran-swift", "kind" : "remoteSourceControl", diff --git a/apple/OmnivoreKit/Package.swift b/apple/OmnivoreKit/Package.swift index e72036ffe..f5ef78249 100644 --- a/apple/OmnivoreKit/Package.swift +++ b/apple/OmnivoreKit/Package.swift @@ -55,9 +55,9 @@ let package = Package( var appPackageDependencies: [Target.Dependency] { var deps: [Target.Dependency] = ["Views", "Services", "Models", "Utils"] - #if canImport(UIKit) - deps.append(.product(name: "PSPDFKit", package: "PSPDFKit-SP")) - #endif +// #if canImport(UIKit) + deps.append(.product(name: "PSPDFKit", package: "PSPDFKit-SP")) +// #endif return deps } @@ -69,8 +69,8 @@ var dependencies: [Package.Dependency] { .package(url: "git@github.com:segmentio/analytics-swift.git", .upToNextMajor(from: "1.0.0")), .package(url: "https://github.com/google/GoogleSignIn-iOS", from: "6.2.2") ] - #if canImport(UIKit) - deps.append(.package(url: "https://github.com/PSPDFKit/PSPDFKit-SP", branch: "master")) - #endif +// #if canImport(UIKit) + deps.append(.package(url: "https://github.com/PSPDFKit/PSPDFKit-SP", branch: "master")) +// #endif return deps } diff --git a/apple/OmnivoreKit/Sources/App/AppExtensions/Share/ShareExtensionScene.swift b/apple/OmnivoreKit/Sources/App/AppExtensions/Share/ShareExtensionScene.swift index 32fb64f83..ec54f0503 100644 --- a/apple/OmnivoreKit/Sources/App/AppExtensions/Share/ShareExtensionScene.swift +++ b/apple/OmnivoreKit/Sources/App/AppExtensions/Share/ShareExtensionScene.swift @@ -1,9 +1,5 @@ -import Foundation -import Models -import Services import SwiftUI import Utils -import Views public extension PlatformViewController { static func makeShareExtensionController(extensionContext: NSExtensionContext?) -> PlatformViewController { @@ -18,58 +14,3 @@ public extension PlatformViewController { return hostingController } } - -public class ShareExtensionViewModel: ObservableObject { - @Published var title: String? - @Published var debugText: String? - - let saveService = ExtensionSaveService() - - func handleReadNowAction(requestId: String, extensionContext: NSExtensionContext?) { - #if os(iOS) - let deepLinkUrl = NSURL(string: "omnivore://shareExtensionRequestID/\(requestId)") - if let application = UIApplication.value(forKeyPath: #keyPath(UIApplication.shared)) as? UIApplication { - application.perform(NSSelectorFromString("openURL:"), with: deepLinkUrl) - } - #else - let deepLinkUrl = URL(string: "omnivore://shareExtensionRequestID/\(requestId)") - let workspace = NSWorkspace.value(forKeyPath: #keyPath(NSWorkspace.shared)) as? NSWorkspace - if let workspace = workspace, let deepLinkUrl = deepLinkUrl { - workspace.open(deepLinkUrl) - } - #endif - extensionContext?.completeRequest(returningItems: [], completionHandler: nil) - } - - func savePage(extensionContext: NSExtensionContext?, shareExtensionViewModel: ShareExtensionChildViewModel) { - if let extensionContext = extensionContext { - saveService.save(extensionContext, shareExtensionViewModel: shareExtensionViewModel) - } else { - DispatchQueue.main.async { - shareExtensionViewModel.status = .failed(error: .unknown(description: "Internal Error")) - } - } - } -} - -struct ShareExtensionView: View { - let extensionContext: NSExtensionContext? - @StateObject private var viewModel = ShareExtensionViewModel() - @StateObject private var childViewModel = ShareExtensionChildViewModel() - - var body: some View { - ShareExtensionChildView( - viewModel: childViewModel, - onAppearAction: { - viewModel.savePage( - extensionContext: extensionContext, - shareExtensionViewModel: childViewModel - ) - }, - readNowButtonAction: { viewModel.handleReadNowAction(requestId: $0, extensionContext: extensionContext) }, - dismissButtonTappedAction: { _, _ in - extensionContext?.completeRequest(returningItems: [], completionHandler: nil) - } - ) - } -} diff --git a/apple/OmnivoreKit/Sources/App/AppExtensions/Share/ShareExtensionView.swift b/apple/OmnivoreKit/Sources/App/AppExtensions/Share/ShareExtensionView.swift new file mode 100644 index 000000000..7d0f1fa29 --- /dev/null +++ b/apple/OmnivoreKit/Sources/App/AppExtensions/Share/ShareExtensionView.swift @@ -0,0 +1,54 @@ +import Models +import Services +import SwiftUI +import Utils +import Views + +public class ShareExtensionViewModel: ObservableObject { + @Published var title: String? + @Published var debugText: String? + + let saveService = ExtensionSaveService() + + func handleReadNowAction(requestId: String, extensionContext: NSExtensionContext?) { + #if os(iOS) + if let application = UIApplication.value(forKeyPath: #keyPath(UIApplication.shared)) as? UIApplication { + let deepLinkUrl = NSURL(string: "omnivore://shareExtensionRequestID/\(requestId)") + application.perform(NSSelectorFromString("openURL:"), with: deepLinkUrl) + } + #endif + extensionContext?.completeRequest(returningItems: [], completionHandler: nil) + } + + func savePage(extensionContext: NSExtensionContext?, shareExtensionViewModel: ShareExtensionChildViewModel) { + if let extensionContext = extensionContext { + saveService.save(extensionContext, shareExtensionViewModel: shareExtensionViewModel) + } else { + DispatchQueue.main.async { + shareExtensionViewModel.status = .failed(error: .unknown(description: "Internal Error")) + } + } + } +} + +struct ShareExtensionView: View { + let extensionContext: NSExtensionContext? + @StateObject private var viewModel = ShareExtensionViewModel() + @StateObject private var childViewModel = ShareExtensionChildViewModel() + + var body: some View { + ShareExtensionChildView( + viewModel: childViewModel, + onAppearAction: { + viewModel.savePage( + extensionContext: extensionContext, + shareExtensionViewModel: childViewModel + ) + }, + readNowButtonAction: { viewModel.handleReadNowAction(requestId: $0, extensionContext: extensionContext) }, + dismissButtonTappedAction: { _, _ in + extensionContext?.completeRequest(returningItems: [], completionHandler: nil) + } + ) + } +}