Tusker/Tusker/Activities/OpenInSafariActivity.swift

50 lines
1.3 KiB
Swift

//
// OpenInSafariActivity.swift
// Tusker
//
// Created by Shadowfacts on 9/5/19.
// Copyright © 2019 Shadowfacts. All rights reserved.
//
import UIKit
import SafariServices
class OpenInSafariActivity: UIActivity {
override class var activityCategory: UIActivity.Category {
return .action
}
override var activityType: UIActivity.ActivityType? {
return .openInSafari
}
override var activityTitle: String? {
return NSLocalizedString("Open in Safari", comment: "open in safari activity title")
}
override var activityImage: UIImage? {
return UIImage(systemName: "safari")
}
override func canPerform(withActivityItems activityItems: [Any]) -> Bool {
for case is URL in activityItems {
return true
}
return false
}
override func perform() {
activityDidFinish(true)
}
static func completionHandler(navigator: TuskerNavigationDelegate, url: URL) -> UIActivityViewController.CompletionWithItemsHandler {
return { (activityType, _, _, _) in
if activityType == .openInSafari {
MainActor.runUnsafely {
navigator.selected(url: url, allowResolveStatuses: false, allowUniversalLinks: false)
}
}
}
}
}