6

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)
    }
Fabio
  • 1,913
  • 5
  • 29
  • 53

0 Answers0