Advertisement
Guest User

Untitled

a guest
Aug 19th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.24 KB | None | 0 0
  1. //
  2. // ImagePickerSelectorViewController.swift
  3. // CreativeKitSample
  4. //
  5. // Created by Samuel Chow on 3/27/19.
  6. // Copyright © 2019 Snap Inc. All rights reserved.
  7. //
  8.  
  9. import CoreServices
  10. import UIKit
  11.  
  12. import SCSDKCreativeKit
  13.  
  14. class MediaPickerViewController: UITableViewController {
  15. // MARK: - Properties
  16.  
  17. fileprivate lazy var snapAPI = {
  18. return SCSDKSnapAPI()
  19. }()
  20. }
  21.  
  22. // MARK: Private helpers
  23.  
  24. extension MediaPickerViewController {
  25. fileprivate func shareVideo(mediaURL: URL) {
  26. let snapVideo = SCSDKSnapVideo(videoUrl: mediaURL)
  27. let snapContent = SCSDKVideoSnapContent(snapVideo: snapVideo)
  28.  
  29. // Send it over to Snapchat
  30. snapAPI.startSending(snapContent)
  31. }
  32.  
  33. fileprivate func shareImage(image: UIImage) {
  34. let snapPhoto = SCSDKSnapPhoto(image: image)
  35. let snapContent = SCSDKPhotoSnapContent(snapPhoto: snapPhoto)
  36.  
  37. // Send it over to Snapchat
  38. snapAPI.startSending(snapContent)
  39. }
  40. }
  41.  
  42. // MARK: Action handlers
  43.  
  44. extension MediaPickerViewController {
  45. @IBAction fileprivate func cameraButtonDidTap(_ sender: UIButton) {
  46. if UIImagePickerController.isSourceTypeAvailable(.camera) {
  47. let pickerController = UIImagePickerController()
  48. pickerController.mediaTypes = UIImagePickerController.availableMediaTypes(for: .camera)!
  49. pickerController.delegate = self
  50. pickerController.sourceType = .camera
  51. present(pickerController, animated: true)
  52. }
  53. }
  54.  
  55. @IBAction fileprivate func photoLibraryButtonDidTap(_ sender: UIButton) {
  56. if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) {
  57. let pickerController = UIImagePickerController()
  58. pickerController.delegate = self
  59. pickerController.sourceType = .photoLibrary
  60. pickerController.mediaTypes = UIImagePickerController.availableMediaTypes(for: .photoLibrary)!
  61. present(pickerController, animated: true)
  62. }
  63. }
  64. }
  65.  
  66. // MARK: - UIImagePickerControllerDelegate
  67.  
  68. extension MediaPickerViewController: UIImagePickerControllerDelegate {
  69. func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
  70. dismiss(animated: true)
  71. }
  72.  
  73. func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
  74. dismiss(animated: true) {
  75. let mediaType = info[UIImagePickerController.InfoKey.mediaType] as! CFString
  76. if CFStringCompare(kUTTypeImage, mediaType, CFStringCompareFlags.compareLocalized) == CFComparisonResult.compareEqualTo {
  77. guard let capturedImage = info[UIImagePickerController.InfoKey.originalImage] as? UIImage else {
  78. return
  79. }
  80. self.shareImage(image: capturedImage)
  81. } else if CFStringCompare(kUTTypeMovie, mediaType, CFStringCompareFlags.compareLocalized) == CFComparisonResult.compareEqualTo {
  82. guard let capturedMovieURL = info[UIImagePickerController.InfoKey.mediaURL] as? URL else {
  83. return
  84. }
  85. self.shareVideo(mediaURL: capturedMovieURL)
  86. }
  87. }
  88. }
  89. }
  90.  
  91. extension MediaPickerViewController: UINavigationControllerDelegate {}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement