Various fixes

This commit is contained in:
Ilya Laktyushin 2023-12-31 16:31:08 +04:00
parent 1f95e664df
commit 340cc2c385
4 changed files with 11 additions and 4 deletions

View File

@ -625,7 +625,7 @@ public final class MediaEditor {
textureSource = self.context.engine.data.get(TelegramEngine.EngineData.Item.Messages.Message(id: messageId))
|> mapToSignal { message in
var player: AVPlayer?
if let message {
if let message, !"".isEmpty {
if let maybeFile = message.media.first(where: { $0 is TelegramMediaFile }) as? TelegramMediaFile, maybeFile.isVideo, let path = self.context.account.postbox.mediaBox.completedResourcePath(maybeFile.resource, pathExtension: "mp4") {
let asset = AVURLAsset(url: URL(fileURLWithPath: path))
player = makePlayer(asset: asset)

View File

@ -2473,7 +2473,7 @@ public final class MediaEditorScreen: ViewController, UIDropInteractionDelegate
messageEntity.secondaryRenderImage = result.nightImage
messageEntity.overlayRenderImage = result.overlayImage
messageEntity.referenceDrawingSize = storyDimensions
messageEntity.position = CGPoint(x: storyDimensions.width / 2.0, y: storyDimensions.height / 2.0)
messageEntity.position = CGPoint(x: storyDimensions.width / 2.0 - 16.0, y: storyDimensions.height / 2.0)
let fraction = max(result.size.width, result.size.height) / 353.0
messageEntity.scale = min(6.0, 3.3 * fraction)

View File

@ -992,7 +992,7 @@ public final class StoryItemSetContainerComponent: Component {
}
if let selectedMediaArea {
self.sendMessageContext.activateMediaArea(view: self, mediaArea: selectedMediaArea)
self.sendMessageContext.activateMediaArea(view: self, mediaArea: selectedMediaArea, position: point)
} else {
var direction: NavigationDirection?
if point.x < itemLayout.containerSize.width * 0.25 {

View File

@ -3279,7 +3279,7 @@ final class StoryItemSetContainerSendMessage {
}
private var selectedMediaArea: MediaArea?
func activateMediaArea(view: StoryItemSetContainerComponent.View, mediaArea: MediaArea, immediate: Bool = false) {
func activateMediaArea(view: StoryItemSetContainerComponent.View, mediaArea: MediaArea, position: CGPoint? = nil, immediate: Bool = false) {
guard let component = view.component, let controller = component.controller() else {
return
}
@ -3289,6 +3289,8 @@ final class StoryItemSetContainerSendMessage {
let context = component.context
var useGesturePosition = false
var actions: [ContextMenuAction] = []
switch mediaArea {
case let .venue(_, venue):
@ -3325,6 +3327,7 @@ final class StoryItemSetContainerSendMessage {
action()
}))
case let .channelMessage(_, messageId):
useGesturePosition = true
let action = { [weak self, weak view, weak controller] in
let _ = ((context.engine.messages.getMessagesLoadIfNecessary([messageId], strategy: .cloud(skipLocal: true))
|> mapToSignal { result -> Signal<Message?, GetMessagesError> in
@ -3384,6 +3387,10 @@ final class StoryItemSetContainerSendMessage {
var frame = CGRect(x: mediaArea.coordinates.x / 100.0 * referenceSize.width - size.width / 2.0, y: mediaArea.coordinates.y / 100.0 * referenceSize.height - size.height / 2.0, width: size.width, height: size.height)
frame = view.controlsContainerView.convert(frame, to: nil)
if useGesturePosition, let position {
frame = CGRect(origin: position.offsetBy(dx: 0.0, dy: 44.0), size: .zero)
}
let node = controller.displayNode
let menuController = makeContextMenuController(actions: actions, blurred: true)
menuController.centerHorizontally = true