mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-08 08:31:13 +00:00
Various fixes
This commit is contained in:
parent
1f95e664df
commit
340cc2c385
@ -625,7 +625,7 @@ public final class MediaEditor {
|
|||||||
textureSource = self.context.engine.data.get(TelegramEngine.EngineData.Item.Messages.Message(id: messageId))
|
textureSource = self.context.engine.data.get(TelegramEngine.EngineData.Item.Messages.Message(id: messageId))
|
||||||
|> mapToSignal { message in
|
|> mapToSignal { message in
|
||||||
var player: AVPlayer?
|
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") {
|
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))
|
let asset = AVURLAsset(url: URL(fileURLWithPath: path))
|
||||||
player = makePlayer(asset: asset)
|
player = makePlayer(asset: asset)
|
||||||
|
@ -2473,7 +2473,7 @@ public final class MediaEditorScreen: ViewController, UIDropInteractionDelegate
|
|||||||
messageEntity.secondaryRenderImage = result.nightImage
|
messageEntity.secondaryRenderImage = result.nightImage
|
||||||
messageEntity.overlayRenderImage = result.overlayImage
|
messageEntity.overlayRenderImage = result.overlayImage
|
||||||
messageEntity.referenceDrawingSize = storyDimensions
|
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
|
let fraction = max(result.size.width, result.size.height) / 353.0
|
||||||
messageEntity.scale = min(6.0, 3.3 * fraction)
|
messageEntity.scale = min(6.0, 3.3 * fraction)
|
||||||
|
@ -992,7 +992,7 @@ public final class StoryItemSetContainerComponent: Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if let selectedMediaArea {
|
if let selectedMediaArea {
|
||||||
self.sendMessageContext.activateMediaArea(view: self, mediaArea: selectedMediaArea)
|
self.sendMessageContext.activateMediaArea(view: self, mediaArea: selectedMediaArea, position: point)
|
||||||
} else {
|
} else {
|
||||||
var direction: NavigationDirection?
|
var direction: NavigationDirection?
|
||||||
if point.x < itemLayout.containerSize.width * 0.25 {
|
if point.x < itemLayout.containerSize.width * 0.25 {
|
||||||
|
@ -3279,7 +3279,7 @@ final class StoryItemSetContainerSendMessage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private var selectedMediaArea: MediaArea?
|
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 {
|
guard let component = view.component, let controller = component.controller() else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -3289,6 +3289,8 @@ final class StoryItemSetContainerSendMessage {
|
|||||||
|
|
||||||
let context = component.context
|
let context = component.context
|
||||||
|
|
||||||
|
var useGesturePosition = false
|
||||||
|
|
||||||
var actions: [ContextMenuAction] = []
|
var actions: [ContextMenuAction] = []
|
||||||
switch mediaArea {
|
switch mediaArea {
|
||||||
case let .venue(_, venue):
|
case let .venue(_, venue):
|
||||||
@ -3325,6 +3327,7 @@ final class StoryItemSetContainerSendMessage {
|
|||||||
action()
|
action()
|
||||||
}))
|
}))
|
||||||
case let .channelMessage(_, messageId):
|
case let .channelMessage(_, messageId):
|
||||||
|
useGesturePosition = true
|
||||||
let action = { [weak self, weak view, weak controller] in
|
let action = { [weak self, weak view, weak controller] in
|
||||||
let _ = ((context.engine.messages.getMessagesLoadIfNecessary([messageId], strategy: .cloud(skipLocal: true))
|
let _ = ((context.engine.messages.getMessagesLoadIfNecessary([messageId], strategy: .cloud(skipLocal: true))
|
||||||
|> mapToSignal { result -> Signal<Message?, GetMessagesError> in
|
|> 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)
|
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)
|
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 node = controller.displayNode
|
||||||
let menuController = makeContextMenuController(actions: actions, blurred: true)
|
let menuController = makeContextMenuController(actions: actions, blurred: true)
|
||||||
menuController.centerHorizontally = true
|
menuController.centerHorizontally = true
|
||||||
|
Loading…
x
Reference in New Issue
Block a user