forked from shadowfacts/Tusker
48 lines
1.2 KiB
Swift
48 lines
1.2 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(viewController: UIViewController, url: URL) -> UIActivityViewController.CompletionWithItemsHandler {
|
|
return { (activityType, _, _, _) in
|
|
if activityType == .openInSafari {
|
|
viewController.present(SFSafariViewController(url: url), animated: true)
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|