Message effects improvements

This commit is contained in:
Isaac
2024-05-14 15:48:07 +04:00
parent 250b5ff2ad
commit 608893e317
16 changed files with 116 additions and 7 deletions

View File

@@ -3980,6 +3980,17 @@ public class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePreviewI
}
let absoluteOrigin = mosaicStatusOrigin.offsetBy(dx: contentOrigin.x, dy: contentOrigin.y)
statusNodeAnimation.animator.updateFrame(layer: mosaicStatusNode.layer, frame: CGRect(origin: CGPoint(x: absoluteOrigin.x - layoutConstants.image.statusInsets.right - size.width, y: absoluteOrigin.y - layoutConstants.image.statusInsets.bottom - size.height), size: size), completion: nil)
if item.message.messageEffect(availableMessageEffects: item.associatedData.availableMessageEffects) != nil {
mosaicStatusNode.pressed = { [weak strongSelf] in
guard let strongSelf, let item = strongSelf.item else {
return
}
item.controllerInteraction.playMessageEffect(item.message)
}
} else {
mosaicStatusNode.pressed = nil
}
} else if let mosaicStatusNode = strongSelf.mosaicStatusNode {
strongSelf.mosaicStatusNode = nil
mosaicStatusNode.removeFromSupernode()
@@ -4886,6 +4897,12 @@ public class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePreviewI
}
}
if let mosaicStatusNode = self.mosaicStatusNode {
if let result = mosaicStatusNode.hitTest(self.view.convert(point, to: mosaicStatusNode.view), with: event) {
return result
}
}
for contentNode in self.contentNodes {
if let result = contentNode.hitTest(self.view.convert(point, to: contentNode.view), with: event) {
return result
@@ -5929,6 +5946,10 @@ public class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePreviewI
}
}
override public func playMessageEffect() {
self.playMessageEffect(force: true)
}
private func updateVisibility() {
guard let item = self.item else {
return