From 4e0616011fa41f4c1ece1017acf2820138e3a7af Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Mon, 4 Dec 2023 17:38:47 +0400 Subject: [PATCH] Various fixes --- .../Sources/MediaEditorScreen.swift | 5 +++++ .../Sources/StoryItemSetContainerComponent.swift | 13 +++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/submodules/TelegramUI/Components/MediaEditorScreen/Sources/MediaEditorScreen.swift b/submodules/TelegramUI/Components/MediaEditorScreen/Sources/MediaEditorScreen.swift index 559f4d44f4..ef68ff04d1 100644 --- a/submodules/TelegramUI/Components/MediaEditorScreen/Sources/MediaEditorScreen.swift +++ b/submodules/TelegramUI/Components/MediaEditorScreen/Sources/MediaEditorScreen.swift @@ -2534,6 +2534,11 @@ public final class MediaEditorScreen: ViewController, UIDropInteractionDelegate if location.x > self.view.frame.width - 44.0 && location.y > self.view.frame.height - 180.0 { return false } + if let reactionNode = self.view.subviews.last?.asyncdisplaykit_node as? ReactionContextNode { + if let hitTestResult = self.view.hitTest(location, with: nil), hitTestResult.isDescendant(of: reactionNode.view) { + return false + } + } return true } else { return true diff --git a/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryItemSetContainerComponent.swift b/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryItemSetContainerComponent.swift index 9bcf6235c7..120b8608f9 100644 --- a/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryItemSetContainerComponent.swift +++ b/submodules/TelegramUI/Components/Stories/StoryContainerScreen/Sources/StoryItemSetContainerComponent.swift @@ -715,6 +715,7 @@ public final class StoryItemSetContainerComponent: Component { self.audioRecorderStatusDisposable?.dispose() self.audioRecorderStatusDisposable?.dispose() self.videoRecorderDisposable?.dispose() + self.updateDisposable.dispose() } func allowsExternalGestures(point: CGPoint) -> Bool { @@ -5161,6 +5162,7 @@ public final class StoryItemSetContainerComponent: Component { StoryContainerScreen.openPeerStories(context: component.context, peerId: peer.id, parentController: controller, avatarNode: avatarNode) } + private let updateDisposable = MetaDisposable() func openStoryEditing(repost: Bool = false) { guard let component = self.component, let peerReference = PeerReference(component.slice.peer._asPeer()) else { return @@ -5234,7 +5236,6 @@ public final class StoryItemSetContainerComponent: Component { transitionOut: nil ) - let updateDisposable = MetaDisposable() var updateProgressImpl: ((Float) -> Void)? let controller = MediaEditorScreen( context: context, @@ -5324,7 +5325,7 @@ public final class StoryItemSetContainerComponent: Component { TempBox.shared.dispose(tempFile) } if let imageData = compressImageToJPEG(image, quality: 0.7, tempFilePath: tempFile.path) { - updateDisposable.set((context.engine.messages.editStory(peerId: peerId, id: id, media: .image(dimensions: dimensions, data: imageData, stickers: result.stickers), mediaAreas: result.mediaAreas, text: updatedText, entities: updatedEntities, privacy: nil) + self.updateDisposable.set((context.engine.messages.editStory(peerId: peerId, id: id, media: .image(dimensions: dimensions, data: imageData, stickers: result.stickers), mediaAreas: result.mediaAreas, text: updatedText, entities: updatedEntities, privacy: nil) |> deliverOnMainQueue).startStrict(next: { [weak self] result in guard let self else { return @@ -5378,7 +5379,7 @@ public final class StoryItemSetContainerComponent: Component { } } - updateDisposable.set((context.engine.messages.editStory(peerId: peerId, id: id, media: .video(dimensions: dimensions, duration: duration, resource: resource, firstFrameFile: firstFrameFile, stickers: result.stickers), mediaAreas: result.mediaAreas, text: updatedText, entities: updatedEntities, privacy: nil) + self.updateDisposable.set((context.engine.messages.editStory(peerId: peerId, id: id, media: .video(dimensions: dimensions, duration: duration, resource: resource, firstFrameFile: firstFrameFile, stickers: result.stickers), mediaAreas: result.mediaAreas, text: updatedText, entities: updatedEntities, privacy: nil) |> deliverOnMainQueue).startStrict(next: { [weak self] result in guard let self else { return @@ -5441,9 +5442,9 @@ public final class StoryItemSetContainerComponent: Component { self?.state?.updated(transition: .easeInOut(duration: 0.2)) } self.component?.controller()?.push(controller) - updateProgressImpl = { [weak controller] progress in - controller?.updateEditProgress(progress, cancel: { - updateDisposable.dispose() + updateProgressImpl = { [weak controller, weak self] progress in + controller?.updateEditProgress(progress, cancel: { [weak self] in + self?.updateDisposable.set(nil) }) } }