Video message recording improvements

This commit is contained in:
Ilya Laktyushin 2024-01-13 23:04:21 +04:00
parent ebc8176850
commit 2bccbfea3b
4 changed files with 10 additions and 7 deletions

View File

@ -994,7 +994,7 @@ public class VideoMessageCameraScreen: ViewController {
let previewSide = min(369.0, layout.size.width - 24.0)
let previewFrame: CGRect
if layout.metrics.isTablet {
previewFrame = CGRect(origin: CGPoint(x: floorToScreenPixels((layout.size.width - previewSide) / 2.0), y: max(layout.statusBarHeight ?? 0.0 + 16.0, availableHeight * 0.4 - previewSide / 2.0)), size: CGSize(width: previewSide, height: previewSide))
previewFrame = CGRect(origin: CGPoint(x: floorToScreenPixels((layout.size.width - previewSide) / 2.0), y: max(layout.statusBarHeight ?? 0.0 + 24.0, availableHeight * 0.2 - previewSide / 2.0)), size: CGSize(width: previewSide, height: previewSide))
} else {
previewFrame = CGRect(origin: CGPoint(x: floorToScreenPixels((layout.size.width - previewSide) / 2.0), y: max(layout.statusBarHeight ?? 0.0 + 16.0, availableHeight * 0.4 - previewSide / 2.0)), size: CGSize(width: previewSide, height: previewSide))
}

View File

@ -230,7 +230,9 @@ final class ChatViewOnceMessageContextExtractedContentSource: ContextExtractedCo
})
if let messageNode = node as? ChatMessageItemView, let copyContentNode = messageNode.getMessageContextSourceNode(stableId: self.message.stableId) {
self.initialAppearanceOffset = CGPoint(x: 0.0, y: width - 20.0 - copyContentNode.frame.height)
if isVideo {
self.initialAppearanceOffset = CGPoint(x: 0.0, y: width - 20.0 - copyContentNode.frame.height)
}
messageNode.frame.origin.y = sourceRect.origin.y
chatNode.addSubnode(messageNode)
@ -250,7 +252,8 @@ final class ChatViewOnceMessageContextExtractedContentSource: ContextExtractedCo
result = ContextControllerTakeViewInfo(containingItem: .node(sourceNode), contentAreaInScreenSpace: chatNode.convert(chatNode.frameForVisibleArea(), to: nil))
}
tooltipSourceRect = CGRect(x: isIncoming ? 22.0 : chatNode.frame.width - bubbleWidth + 10.0, y: floorToScreenPixels((chatNode.frame.height - 75.0) / 2.0) - 43.0, width: 44.0, height: 44.0)
let mappedParentRect = chatNode.view.convert(chatNode.bounds, to: nil)
tooltipSourceRect = CGRect(x: mappedParentRect.minX + (isIncoming ? 22.0 : chatNode.frame.width - bubbleWidth + 10.0), y: floorToScreenPixels((chatNode.frame.height - 75.0) / 2.0) - 43.0, width: 44.0, height: 44.0)
}
if !isVideo {
@ -340,7 +343,7 @@ final class ChatViewOnceMessageContextExtractedContentSource: ContextExtractedCo
if let messageNodeCopy = self.messageNodeCopy, let sourceView = messageNodeCopy.supernode?.view, let contentNode = messageNodeCopy.getMessageContextSourceNode(stableId: nil)?.contentNode, let parentNode = contentNode.supernode?.supernode?.supernode {
let dustEffectLayer = DustEffectLayer()
dustEffectLayer.position = sourceView.bounds.center
dustEffectLayer.position = sourceView.bounds.center.offsetBy(dx: (parentNode.frame.width - messageNodeCopy.frame.width), dy: 0.0)
dustEffectLayer.bounds = CGRect(origin: CGPoint(), size: sourceView.bounds.size)
dustEffectLayer.zPosition = 10.0
parentNode.layer.addSublayer(dustEffectLayer)
@ -348,7 +351,7 @@ final class ChatViewOnceMessageContextExtractedContentSource: ContextExtractedCo
guard let (image, subFrame) = messageNodeCopy.makeContentSnapshot() else {
return nil
}
var itemFrame = subFrame //messageNodeCopy.layer.convert(subFrame, to: dustEffectLayer)
var itemFrame = subFrame
itemFrame.origin.y = floorToScreenPixels((sourceView.frame.height - subFrame.height) / 2.0)
dustEffectLayer.addItem(frame: itemFrame, image: image)
messageNodeCopy.removeFromSupernode()

View File

@ -549,7 +549,7 @@ final class ChatRecordingPreviewInputPanelNode: ChatInputPanelNode {
)
self.tooltipController = tooltipController
parentController.present(tooltipController, in: .window(.root))
parentController.present(tooltipController, in: .current)
}
@objc func waveformPressed() {

View File

@ -2776,7 +2776,7 @@ class ChatTextInputPanelNode: ChatInputPanelNode, ASEditableTextNodeDelegate, Ch
)
self.tooltipController = tooltipController
parentController.present(tooltipController, in: .window(.root))
parentController.present(tooltipController, in: .current)
}
override func canHandleTransition(from prevInputPanelNode: ChatInputPanelNode?) -> Bool {