|
|
|
@ -6,7 +6,7 @@ import Foundation
|
|
|
|
|
|
|
|
|
|
@objc
|
|
|
|
|
protocol MessageActionsDelegate: class {
|
|
|
|
|
func report(_ conversationViewItem: ConversationViewItem)
|
|
|
|
|
func banUser(_ conversationViewItem: ConversationViewItem)
|
|
|
|
|
func messageActionsShowDetailsForItem(_ conversationViewItem: ConversationViewItem)
|
|
|
|
|
func messageActionsReplyToItem(_ conversationViewItem: ConversationViewItem)
|
|
|
|
|
func copyPublicKey(for conversationViewItem: ConversationViewItem)
|
|
|
|
@ -45,14 +45,6 @@ struct MessageActionBuilder {
|
|
|
|
|
block: { [weak delegate] _ in delegate?.messageActionsShowDetailsForItem(conversationViewItem) }
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static func report(_ conversationViewItem: ConversationViewItem, delegate: MessageActionsDelegate) -> MenuAction {
|
|
|
|
|
return MenuAction(image: #imageLiteral(resourceName: "Flag"),
|
|
|
|
|
title: NSLocalizedString("Report", comment: ""),
|
|
|
|
|
subtitle: nil,
|
|
|
|
|
block: { [weak delegate] _ in delegate?.report(conversationViewItem) }
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static func deleteMessage(conversationViewItem: ConversationViewItem, delegate: MessageActionsDelegate) -> MenuAction {
|
|
|
|
|
return MenuAction(image: #imageLiteral(resourceName: "ic_trash"),
|
|
|
|
@ -61,6 +53,14 @@ struct MessageActionBuilder {
|
|
|
|
|
block: { _ in conversationViewItem.deleteAction() }
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static func banUser(conversationViewItem: ConversationViewItem, delegate: MessageActionsDelegate) -> MenuAction {
|
|
|
|
|
return MenuAction(image: #imageLiteral(resourceName: "ic_block"),
|
|
|
|
|
title: "Ban User",
|
|
|
|
|
subtitle: nil,
|
|
|
|
|
block: { [weak delegate] _ in delegate?.banUser(conversationViewItem) }
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static func copyMedia(conversationViewItem: ConversationViewItem, delegate: MessageActionsDelegate) -> MenuAction {
|
|
|
|
|
return MenuAction(image: #imageLiteral(resourceName: "ic_copy"),
|
|
|
|
@ -108,10 +108,9 @@ class ConversationViewItemActions: NSObject {
|
|
|
|
|
actions.append(deleteAction)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if isGroup && conversationViewItem.interaction.thread.name() == "Loki Public Chat"
|
|
|
|
|
|| conversationViewItem.interaction.thread.name() == "Session Public Chat" {
|
|
|
|
|
let reportAction = MessageActionBuilder.report(conversationViewItem, delegate: delegate)
|
|
|
|
|
actions.append(reportAction)
|
|
|
|
|
if isGroup && conversationViewItem.interaction is TSIncomingMessage && conversationViewItem.userHasModerationPermission {
|
|
|
|
|
let banAction = MessageActionBuilder.banUser(conversationViewItem: conversationViewItem, delegate: delegate)
|
|
|
|
|
actions.append(banAction)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let showDetailsAction = MessageActionBuilder.showDetails(conversationViewItem: conversationViewItem, delegate: delegate)
|
|
|
|
@ -152,10 +151,9 @@ class ConversationViewItemActions: NSObject {
|
|
|
|
|
actions.append(deleteAction)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if isGroup && conversationViewItem.interaction.thread.name() == "Loki Public Chat"
|
|
|
|
|
|| conversationViewItem.interaction.thread.name() == "Session Public Chat" {
|
|
|
|
|
let reportAction = MessageActionBuilder.report(conversationViewItem, delegate: delegate)
|
|
|
|
|
actions.append(reportAction)
|
|
|
|
|
if isGroup && conversationViewItem.interaction is TSIncomingMessage && conversationViewItem.userHasModerationPermission {
|
|
|
|
|
let banAction = MessageActionBuilder.banUser(conversationViewItem: conversationViewItem, delegate: delegate)
|
|
|
|
|
actions.append(banAction)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let showDetailsAction = MessageActionBuilder.showDetails(conversationViewItem: conversationViewItem, delegate: delegate)
|
|
|
|
@ -185,10 +183,9 @@ class ConversationViewItemActions: NSObject {
|
|
|
|
|
actions.append(deleteAction)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if isGroup && conversationViewItem.interaction.thread.name() == "Loki Public Chat"
|
|
|
|
|
|| conversationViewItem.interaction.thread.name() == "Session Public Chat" {
|
|
|
|
|
let reportAction = MessageActionBuilder.report(conversationViewItem, delegate: delegate)
|
|
|
|
|
actions.append(reportAction)
|
|
|
|
|
if isGroup && conversationViewItem.interaction is TSIncomingMessage && conversationViewItem.userHasModerationPermission {
|
|
|
|
|
let banAction = MessageActionBuilder.banUser(conversationViewItem: conversationViewItem, delegate: delegate)
|
|
|
|
|
actions.append(banAction)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let showDetailsAction = MessageActionBuilder.showDetails(conversationViewItem: conversationViewItem, delegate: delegate)
|
|
|
|
|