Fix scheduled effectcs

(cherry picked from commit 586428cfa94e1a6d6dd3c29dd55f3ccca772c326)
This commit is contained in:
Isaac 2024-05-31 22:26:32 +04:00
parent 3d82842ee1
commit d1234b87fb
9 changed files with 17 additions and 13 deletions

View File

@ -573,7 +573,7 @@ final class ChatRecentActionsControllerNode: ViewControllerTracingNode {
}
}, displayMessageTooltip: { _, _, _, _, _ in
}, seekToTimecode: { _, _, _ in
}, scheduleCurrentMessage: {
}, scheduleCurrentMessage: { _ in
}, sendScheduledMessagesNow: { _ in
}, editScheduledMessagesTime: { _ in
}, performTextSelectionAction: { _, _, _, _ in

View File

@ -442,7 +442,7 @@ public final class ChatSendGroupMediaMessageContextPreview: UIView, ChatSendMess
}, openAppStorePage: {
}, displayMessageTooltip: { _, _, _, _, _ in
}, seekToTimecode: { _, _, _ in
}, scheduleCurrentMessage: {
}, scheduleCurrentMessage: { _ in
}, sendScheduledMessagesNow: { _ in
}, editScheduledMessagesTime: { _ in
}, performTextSelectionAction: { _, _, _, _ in

View File

@ -221,7 +221,7 @@ public final class ChatControllerInteraction: ChatControllerInteractionProtocol
public let openAppStorePage: () -> Void
public let displayMessageTooltip: (MessageId, String, Bool, ASDisplayNode?, CGRect?) -> Void
public let seekToTimecode: (Message, Double, Bool) -> Void
public let scheduleCurrentMessage: () -> Void
public let scheduleCurrentMessage: (ChatSendMessageActionSheetController.SendParameters?) -> Void
public let sendScheduledMessagesNow: ([MessageId]) -> Void
public let editScheduledMessagesTime: ([MessageId]) -> Void
public let performTextSelectionAction: (Message?, Bool, NSAttributedString, TextSelectionAction) -> Void
@ -350,7 +350,7 @@ public final class ChatControllerInteraction: ChatControllerInteractionProtocol
openAppStorePage: @escaping () -> Void,
displayMessageTooltip: @escaping (MessageId, String, Bool, ASDisplayNode?, CGRect?) -> Void,
seekToTimecode: @escaping (Message, Double, Bool) -> Void,
scheduleCurrentMessage: @escaping () -> Void,
scheduleCurrentMessage: @escaping (ChatSendMessageActionSheetController.SendParameters?) -> Void,
sendScheduledMessagesNow: @escaping ([MessageId]) -> Void,
editScheduledMessagesTime: @escaping ([MessageId]) -> Void,
performTextSelectionAction: @escaping (Message?, Bool, NSAttributedString, TextSelectionAction) -> Void,

View File

@ -3297,7 +3297,7 @@ final class PeerInfoScreenNode: ViewControllerTracingNode, PeerInfoScreenNodePro
}, openAppStorePage: {
}, displayMessageTooltip: { _, _, _, _, _ in
}, seekToTimecode: { _, _, _ in
}, scheduleCurrentMessage: {
}, scheduleCurrentMessage: { _ in
}, sendScheduledMessagesNow: { _ in
}, editScheduledMessagesTime: { _ in
}, performTextSelectionAction: { _, _, _, _ in

View File

@ -244,11 +244,11 @@ func chatMessageDisplaySendMessageOptions(selfController: ChatControllerImpl, no
}
}
},
schedule: { [weak selfController] effect in
schedule: { [weak selfController] params in
guard let selfController else {
return
}
selfController.controllerInteraction?.scheduleCurrentMessage()
selfController.controllerInteraction?.scheduleCurrentMessage(params)
}, openPremiumPaywall: { [weak selfController] c in
guard let selfController else {
return

View File

@ -3375,15 +3375,19 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
}
}
}
}, scheduleCurrentMessage: { [weak self] in
}, scheduleCurrentMessage: { [weak self] params in
if let strongSelf = self {
strongSelf.presentScheduleTimePicker(completion: { [weak self] time in
if let strongSelf = self {
if let _ = strongSelf.presentationInterfaceState.interfaceState.mediaDraftState {
strongSelf.sendMediaRecording(scheduleTime: time, messageEffect: nil)
strongSelf.sendMediaRecording(scheduleTime: time, messageEffect: (params?.effect).flatMap {
return ChatSendMessageEffect(id: $0.id)
})
} else {
let silentPosting = strongSelf.presentationInterfaceState.interfaceState.silentPosting
strongSelf.chatDisplayNode.sendCurrentMessage(silentPosting: silentPosting, scheduleTime: time, messageEffect: nil) { [weak self] in
strongSelf.chatDisplayNode.sendCurrentMessage(silentPosting: silentPosting, scheduleTime: time, messageEffect: (params?.effect).flatMap {
return ChatSendMessageEffect(id: $0.id)
}) { [weak self] in
if let strongSelf = self {
strongSelf.updateChatPresentationInterfaceState(animated: true, interactive: false, saveInterfaceState: strongSelf.presentationInterfaceState.subject != .scheduledMessages, {
$0.updatedInterfaceState { $0.withUpdatedReplyMessageSubject(nil).withUpdatedForwardMessageIds(nil).withUpdatedForwardOptionsState(nil).withUpdatedComposeInputState(ChatTextInputState(inputText: NSAttributedString(string: ""))) }

View File

@ -841,7 +841,7 @@ class ChatControllerNode: ASDisplayNode, ASScrollViewDelegate {
self.textInputPanelNode?.sendMessage = { [weak self] in
if let strongSelf = self {
if case .scheduledMessages = strongSelf.chatPresentationInterfaceState.subject, strongSelf.chatPresentationInterfaceState.editMessageState == nil {
strongSelf.controllerInteraction.scheduleCurrentMessage()
strongSelf.controllerInteraction.scheduleCurrentMessage(nil)
} else {
strongSelf.sendCurrentMessage()
}

View File

@ -134,7 +134,7 @@ final class OverlayAudioPlayerControllerNode: ViewControllerTracingNode, ASGestu
}, openAppStorePage: {
}, displayMessageTooltip: { _, _, _, _, _ in
}, seekToTimecode: { _, _, _ in
}, scheduleCurrentMessage: {
}, scheduleCurrentMessage: { _ in
}, sendScheduledMessagesNow: { _ in
}, editScheduledMessagesTime: { _ in
}, performTextSelectionAction: { _, _, _, _ in

View File

@ -1734,7 +1734,7 @@ public final class SharedAccountContextImpl: SharedAccountContext {
}, openAppStorePage: {
}, displayMessageTooltip: { _, _, _, _, _ in
}, seekToTimecode: { _, _, _ in
}, scheduleCurrentMessage: {
}, scheduleCurrentMessage: { _ in
}, sendScheduledMessagesNow: { _ in
}, editScheduledMessagesTime: { _ in
}, performTextSelectionAction: { _, _, _, _ in