Skip to content

Instantly share code, notes, and snippets.

View ryanisnhp's full-sized avatar

RyanisNHP ryanisnhp

View GitHub Profile
//STEP 1: - GET ROUTES
func getRoute(coordinates: [CLLocationCoordinate2D]) {
googleMapsNetworkAgent.getRouteFromGoogleMaps(coordinates: coordinates)
.subscribeOn(MainScheduler.instance)
.subscribe(onNext: { [weak self] response in
guard let this = self else {return}
if let status = response.status, status == "OK" {
let overviewPolyline = response.routes?.first?.overviewPolyline?.points
//STEP 2: - DRAW A ROUTE ON THE MAP
this.drawRouteOnMap(route: overviewPolyline)
notificationFeedbackGenerator = nil
impactFeedbackGenerator = nil
selectionFeedbackGenerator = nil
notificationFeedbackGenerator.prepare()
//or
impactFeedbackGenerator.prepare()
//or
selectionFeedbackGenerator.prepare()
private let selectionFeedbackGenerator = UISelectionFeedbackGenerator()
selectionFeedbackGenerator.selectionChanged()
private let notificationFeedbackGenerator = UIImpactFeedbackGenerator(style: .light)
//or
private let notificationFeedbackGenerator = UIImpactFeedbackGenerator(style: .medium)
//or
private let notificationFeedbackGenerator = UIImpactFeedbackGenerator(style: .heavy)
//or
private let notificationFeedbackGenerator = UIImpactFeedbackGenerator(style: .rigid)
//or
private let notificationFeedbackGenerator = UIImpactFeedbackGenerator(style: .soft)
private let notificationFeedbackGenerator = UINotificationFeedbackGenerator()
notificationFeedbackGenerator.notificationOccurred(.error)
//or
notificationFeedbackGenerator.notificationOccurred(.success)
//or
notificationFeedbackGenerator.notificationOccurred(.warning)
import UIKit
import LinkPresentation
class ViewController: UIViewController {
@IBOutlet weak var sharingButton: UIButton!
private var metaData: LPLinkMetadata = LPLinkMetadata() {
didSet {
DispatchQueue.main.async {
func getMetadataForSharingManually(title: String, url: URL, fileName: String, fileType: String) -> LPLinkMetadata {
let linkMetaData = LPLinkMetadata()
let path = Bundle.main.path(forResource: fileName, ofType: fileType)
linkMetaData.iconProvider = NSItemProvider(contentsOf: URL(fileURLWithPath: path ?? ""))
linkMetaData.originalURL = url
linkMetaData.title = title
return linkMetaData
}
func shareURLWithMetadata(metaData: LPLinkMetadata) {
let metadataItemSource = LinkPresentationItemSource(metaData: metaData)
let activity = UIActivityViewController(activityItems: [metadataItemSource], applicationActivities: [])
present(activity, animated: true)
}
class LinkPresentationItemSource: NSObject, UIActivityItemSource {
var linkMetaData = LPLinkMetadata()
//Prepare data to share
func activityViewControllerLinkMetadata(_ activityViewController: UIActivityViewController) -> LPLinkMetadata? {
return linkMetaData
}
//Placeholder for real data, we don't care in this example so just return a simple string
func activityViewControllerPlaceholderItem(_ activityViewController: UIActivityViewController) -> Any {