chore: add share post
This commit is contained in:
parent
236b5ca0dc
commit
211e2f25d5
@ -51,6 +51,7 @@
|
||||
"preview": "Preview",
|
||||
"share": "Share",
|
||||
"share_user": "Share %s",
|
||||
"share_post": "Share post",
|
||||
"open_in_safari": "Open in Safari",
|
||||
"find_people": "Find people to follow",
|
||||
"manually_search": "Manually search instead",
|
||||
|
@ -70,3 +70,16 @@ extension Status {
|
||||
return author
|
||||
}
|
||||
}
|
||||
|
||||
extension Status {
|
||||
|
||||
var statusURL: URL {
|
||||
return URL(string: "https://\(self.domain)/web/statuses/\(self.id)")!
|
||||
}
|
||||
|
||||
var activityItems: [Any] {
|
||||
var items: [Any] = []
|
||||
items.append(statusURL)
|
||||
return items
|
||||
}
|
||||
}
|
||||
|
@ -96,6 +96,8 @@ internal enum L10n {
|
||||
internal static let seeMore = L10n.tr("Localizable", "Common.Controls.Actions.SeeMore")
|
||||
/// Share
|
||||
internal static let share = L10n.tr("Localizable", "Common.Controls.Actions.Share")
|
||||
/// Share post
|
||||
internal static let sharePost = L10n.tr("Localizable", "Common.Controls.Actions.SharePost")
|
||||
/// Share %@
|
||||
internal static func shareUser(_ p1: Any) -> String {
|
||||
return L10n.tr("Localizable", "Common.Controls.Actions.ShareUser", String(describing: p1))
|
||||
|
@ -264,6 +264,23 @@ extension UserProviderFacade {
|
||||
children.append(shareAction)
|
||||
}
|
||||
|
||||
if let shareStatus = shareStatus {
|
||||
let shareAction = UIAction(title: L10n.Common.Controls.Actions.sharePost, image: UIImage(systemName: "square.and.arrow.up"), identifier: nil, discoverabilityTitle: nil, attributes: [], state: .off) { [weak provider] _ in
|
||||
guard let provider = provider else { return }
|
||||
let activityViewController = createActivityViewControllerForMastodonUser(status: shareStatus, dependency: provider)
|
||||
provider.coordinator.present(
|
||||
scene: .activityViewController(
|
||||
activityViewController: activityViewController,
|
||||
sourceView: sourceView,
|
||||
barButtonItem: barButtonItem
|
||||
),
|
||||
from: provider,
|
||||
transition: .activityViewControllerPresent(animated: true, completion: nil)
|
||||
)
|
||||
}
|
||||
children.append(shareAction)
|
||||
}
|
||||
|
||||
return UIMenu(title: "", options: [], children: children)
|
||||
}
|
||||
|
||||
@ -274,5 +291,13 @@ extension UserProviderFacade {
|
||||
)
|
||||
return activityViewController
|
||||
}
|
||||
|
||||
static func createActivityViewControllerForMastodonUser(status: Status, dependency: NeedsDependency) -> UIActivityViewController {
|
||||
let activityViewController = UIActivityViewController(
|
||||
activityItems: status.activityItems,
|
||||
applicationActivities: [SafariActivity(sceneCoordinator: dependency.coordinator)]
|
||||
)
|
||||
return activityViewController
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -31,6 +31,7 @@ Please check your internet connection.";
|
||||
"Common.Controls.Actions.SavePhoto" = "Save photo";
|
||||
"Common.Controls.Actions.SeeMore" = "See More";
|
||||
"Common.Controls.Actions.Share" = "Share";
|
||||
"Common.Controls.Actions.SharePost" = "Share post";
|
||||
"Common.Controls.Actions.ShareUser" = "Share %@";
|
||||
"Common.Controls.Actions.SignIn" = "Sign In";
|
||||
"Common.Controls.Actions.SignUp" = "Sign Up";
|
||||
|
Loading…
x
Reference in New Issue
Block a user