From 311542dfe23905ed826b7b12a2536a176f978351 Mon Sep 17 00:00:00 2001 From: Ryo Tsuzukihashi Date: Mon, 15 Jul 2024 15:15:44 +0900 Subject: [PATCH 1/2] Create ShareActivityItemSource.swift --- .../Utils/Share/ShareActivityItemSource.swift | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 Sources/TsuzuKit/Utils/Share/ShareActivityItemSource.swift diff --git a/Sources/TsuzuKit/Utils/Share/ShareActivityItemSource.swift b/Sources/TsuzuKit/Utils/Share/ShareActivityItemSource.swift new file mode 100644 index 0000000..6a73496 --- /dev/null +++ b/Sources/TsuzuKit/Utils/Share/ShareActivityItemSource.swift @@ -0,0 +1,27 @@ +import Foundation +import LinkPresentation + +public class ShareActivityItemSource: NSObject, UIActivityItemSource { + var shareText: String + var shareImage: UIImage + var linkMetaData = LPLinkMetadata() + + public init(shareText: String, shareImage: UIImage) { + self.shareText = shareText + self.shareImage = shareImage + linkMetaData.title = shareText + super.init() + } + + public func activityViewControllerPlaceholderItem(_ activityViewController: UIActivityViewController) -> Any { + return UIImage(named: "AppIcon") as Any + } + + public func activityViewController(_ activityViewController: UIActivityViewController, itemForActivityType activityType: UIActivity.ActivityType?) -> Any? { + return nil + } + + public func activityViewControllerLinkMetadata(_ activityViewController: UIActivityViewController) -> LPLinkMetadata? { + return linkMetaData + } +} From ceaa8f60fe63ab4c832907d0da40eac9c0a8d8c2 Mon Sep 17 00:00:00 2001 From: Ryo Tsuzukihashi Date: Mon, 15 Jul 2024 15:15:46 +0900 Subject: [PATCH 2/2] Create ShareSheet.swift --- Sources/TsuzuKit/Utils/Share/ShareSheet.swift | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 Sources/TsuzuKit/Utils/Share/ShareSheet.swift diff --git a/Sources/TsuzuKit/Utils/Share/ShareSheet.swift b/Sources/TsuzuKit/Utils/Share/ShareSheet.swift new file mode 100644 index 0000000..475b5cf --- /dev/null +++ b/Sources/TsuzuKit/Utils/Share/ShareSheet.swift @@ -0,0 +1,27 @@ +import Foundation +import SwiftUI + +public struct ShareSheet: UIViewControllerRepresentable { + let image: UIImage + let text: String + + public init(photo: UIImage, text: String) { + self.image = photo + self.text = text + } + + public func makeUIViewController(context: Context) -> UIActivityViewController { + let itemSource = ShareActivityItemSource(shareText: text, shareImage: image) + let activityItems: [Any] = [image, text, itemSource] + + let controller = UIActivityViewController( + activityItems: activityItems, + applicationActivities: nil + ) + + return controller + } + + public func updateUIViewController(_ vc: UIActivityViewController, context: Context) { + } +}