This is my code and only thumbnailImageForActivityType is not called...
class ShareMovieEvent: NSObject, UIActivityItemSource {
let movieDate: String
let movieTitle: String
let movieDescription: String
let imageHeader: UIImage
init(movieDate: String ,movieTitle:String, movieDescription:String, imageHeader:UIImage) {
self.movieDate = movieDate
self.movieTitle = movieTitle
self.movieDescription = movieDescription
self.imageHeader = imageHeader
}
func activityViewControllerPlaceholderItem(_ activityViewController: UIActivityViewController) -> Any {
return ""
}
func activityViewController(_ activityViewController: UIActivityViewController, itemForActivityType activityType: UIActivity.ActivityType?) -> Any? {
if activityType == UIActivity.ActivityType.message {
return "\(movieDate) \n\n \(movieTitle) \n\n \(movieDescription)"
} else if activityType == UIActivity.ActivityType.mail {
return "\(movieDate) \n\n \(movieTitle) \n\n \(movieDescription)"
}
return nil
}
func activityViewController(_ activityViewController: UIActivityViewController, subjectForActivityType activityType: UIActivity.ActivityType?) -> String {
if activityType == UIActivity.ActivityType.message {
return ""
} else if activityType == UIActivity.ActivityType.mail {
return "Check this event"
}
return ""
}
func activityViewController(_ activityViewController: UIActivityViewController, thumbnailImageForActivityType activityType: UIActivity.ActivityType?, suggestedSize size: CGSize) -> UIImage? {
return imageHeader
}
}
And here is the call in my ViewModel class
@objc func shareBtnPressed(_ sender: UIButton){
let share = ShareMovieEvent(movieDate: movie.date, movieTitle: movie.title, movieDescription: movie.movieDescription, imageHeader: imageHeaderMovie.image!)
let viewController = UIActivityViewController(activityItems: [share], applicationActivities: [])
self.pushableViewControllerObservable?(viewController)
}