mirror of
https://github.com/oxen-io/session-ios.git
synced 2023-12-13 21:30:14 +01:00
MessageActions for info messages
This commit is contained in:
parent
42eb7a8d31
commit
ce3030917f
|
@ -25,6 +25,8 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
- (void)conversationCell:(ConversationViewCell *)cell didLongpressTextViewItem:(ConversationViewItem *)viewItem;
|
||||
- (void)conversationCell:(ConversationViewCell *)cell didLongpressMediaViewItem:(ConversationViewItem *)viewItem;
|
||||
- (void)conversationCell:(ConversationViewCell *)cell didLongpressQuoteViewItem:(ConversationViewItem *)viewItem;
|
||||
- (void)conversationCell:(ConversationViewCell *)cell
|
||||
didLongpressSystemMessageViewItem:(ConversationViewItem *)viewItem;
|
||||
|
||||
- (void)didPanWithGestureRecognizer:(UIPanGestureRecognizer *)gestureRecognizer
|
||||
viewItem:(ConversationViewItem *)conversationItem;
|
||||
|
|
|
@ -75,6 +75,7 @@ typedef void (^SystemMessageActionBlock)(void);
|
|||
|
||||
self.layoutMargins = UIEdgeInsetsZero;
|
||||
self.contentView.layoutMargins = UIEdgeInsetsZero;
|
||||
self.contentView.backgroundColor = UIColor.whiteColor;
|
||||
|
||||
self.iconView = [UIImageView new];
|
||||
[self.iconView autoSetDimension:ALDimensionWidth toSize:self.iconSize];
|
||||
|
@ -380,48 +381,6 @@ typedef void (^SystemMessageActionBlock)(void);
|
|||
return result;
|
||||
}
|
||||
|
||||
#pragma mark - UIMenuController
|
||||
|
||||
- (void)showMenuController
|
||||
{
|
||||
OWSAssertIsOnMainThread();
|
||||
|
||||
DDLogDebug(@"%@ long pressed system message cell: %@", self.logTag, self.viewItem.interaction.debugDescription);
|
||||
|
||||
[self becomeFirstResponder];
|
||||
|
||||
if ([UIMenuController sharedMenuController].isMenuVisible) {
|
||||
[[UIMenuController sharedMenuController] setMenuVisible:NO animated:NO];
|
||||
}
|
||||
|
||||
UIMenuController *menuController = [UIMenuController sharedMenuController];
|
||||
menuController.menuItems = @[];
|
||||
UIView *fromView = self.titleLabel;
|
||||
CGRect targetRect = [fromView.superview convertRect:fromView.frame toView:self];
|
||||
[menuController setTargetRect:targetRect inView:self];
|
||||
[menuController setMenuVisible:YES animated:YES];
|
||||
}
|
||||
|
||||
- (BOOL)canPerformAction:(SEL)action withSender:(nullable id)sender
|
||||
{
|
||||
return action == @selector(delete:);
|
||||
}
|
||||
|
||||
- (void)delete:(nullable id)sender
|
||||
{
|
||||
DDLogInfo(@"%@ chose delete", self.logTag);
|
||||
|
||||
TSInteraction *interaction = self.viewItem.interaction;
|
||||
OWSAssert(interaction);
|
||||
|
||||
[interaction remove];
|
||||
}
|
||||
|
||||
- (BOOL)canBecomeFirstResponder
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
#pragma mark - Actions
|
||||
|
||||
- (nullable SystemMessageAction *)actionForInteraction:(TSInteraction *)interaction
|
||||
|
@ -575,7 +534,7 @@ typedef void (^SystemMessageActionBlock)(void);
|
|||
OWSAssert(interaction);
|
||||
|
||||
if (longPress.state == UIGestureRecognizerStateBegan) {
|
||||
[self showMenuController];
|
||||
[self.delegate conversationCell:self didLongpressSystemMessageViewItem:self.viewItem];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2006,15 +2006,21 @@ typedef enum : NSUInteger {
|
|||
[self presentMessageActions:messageActions withFocusedCell:cell];
|
||||
}
|
||||
|
||||
- (void)conversationCell:(ConversationViewCell *)cell didLongpressTextViewItem:(ConversationViewItem *)viewItem
|
||||
{
|
||||
NSArray<MessageAction *> *messageActions = [viewItem textActionsWithDelegate:self];
|
||||
[self presentMessageActions:messageActions withFocusedCell:cell];
|
||||
}
|
||||
|
||||
- (void)conversationCell:(ConversationViewCell *)cell didLongpressQuoteViewItem:(ConversationViewItem *)viewItem
|
||||
{
|
||||
NSArray<MessageAction *> *messageActions = [viewItem quotedMessageActionsWithDelegate:self];
|
||||
[self presentMessageActions:messageActions withFocusedCell:cell];
|
||||
}
|
||||
|
||||
- (void)conversationCell:(ConversationViewCell *)cell didLongpressTextViewItem:(ConversationViewItem *)viewItem
|
||||
- (void)conversationCell:(ConversationViewCell *)cell didLongpressSystemMessageViewItem:(ConversationViewItem *)viewItem
|
||||
{
|
||||
NSArray<MessageAction *> *messageActions = [viewItem textActionsWithDelegate:self];
|
||||
NSArray<MessageAction *> *messageActions = [viewItem infoMessageActionsWithDelegate:self];
|
||||
[self presentMessageActions:messageActions withFocusedCell:cell];
|
||||
}
|
||||
|
||||
|
|
|
@ -122,6 +122,13 @@ extension ConversationViewItem {
|
|||
|
||||
return [replyAction, deleteAction, showDetailsAction]
|
||||
}
|
||||
|
||||
@objc
|
||||
func infoMessageActions(delegate: MessageActionsDelegate) -> [MessageAction] {
|
||||
let deleteAction = MessageActionBuilder.deleteMessage(conversationViewItem: self, delegate: delegate)
|
||||
|
||||
return [deleteAction]
|
||||
}
|
||||
}
|
||||
|
||||
@objc
|
||||
|
|
Loading…
Reference in a new issue