Tusker/Tusker/Activities/OpenInSafariActivity.swift

48 lines
1.2 KiB
Swift
Raw Normal View History

//
// 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(viewController: UIViewController, url: URL) -> UIActivityViewController.CompletionWithItemsHandler {
return { (activityType, _, _, _) in
if activityType == .openInSafari {
viewController.present(SFSafariViewController(url: url), animated: true)
}
}
}
}