mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2026-04-07 13:47:54 +00:00
Fixes
fix localeWithStrings globally (#30)
Fix badge on zoomed devices. closes #9
Hide channel bottom panel closes #27
Another attempt to fix badge on some Zoomed devices
Force System Share sheet tg://sg/debug
fixes for device badge
New Crowdin updates (#34)
* New translations sglocalizable.strings (Chinese Traditional)
* New translations sglocalizable.strings (Chinese Simplified)
* New translations sglocalizable.strings (Chinese Traditional)
Fix input panel hidden on selection (#31)
* added if check for selectionState != nil
* same order of subnodes
Revert "Fix input panel hidden on selection (#31)"
This reverts commit e8a8bb1496.
Fix input panel for channels Closes #37
Quickly share links with system's share menu
force tabbar when editing
increase height for correct animation
New translations sglocalizable.strings (Ukrainian) (#38)
Hide Post Story button
Fix 10.15.1
Fix archive option for long-tap
Enable in-app Safari
Disable some unsupported purchases
disableDeleteChatSwipeOption + refactor restart alert
Hide bot in suggestions list
Fix merge v11.0
Fix exceptions for safari webview controller
New Crowdin updates (#47)
* New translations sglocalizable.strings (Romanian)
* New translations sglocalizable.strings (French)
* New translations sglocalizable.strings (Spanish)
* New translations sglocalizable.strings (Afrikaans)
* New translations sglocalizable.strings (Arabic)
* New translations sglocalizable.strings (Catalan)
* New translations sglocalizable.strings (Czech)
* New translations sglocalizable.strings (Danish)
* New translations sglocalizable.strings (German)
* New translations sglocalizable.strings (Greek)
* New translations sglocalizable.strings (Finnish)
* New translations sglocalizable.strings (Hebrew)
* New translations sglocalizable.strings (Hungarian)
* New translations sglocalizable.strings (Italian)
* New translations sglocalizable.strings (Japanese)
* New translations sglocalizable.strings (Korean)
* New translations sglocalizable.strings (Dutch)
* New translations sglocalizable.strings (Norwegian)
* New translations sglocalizable.strings (Polish)
* New translations sglocalizable.strings (Portuguese)
* New translations sglocalizable.strings (Serbian (Cyrillic))
* New translations sglocalizable.strings (Swedish)
* New translations sglocalizable.strings (Turkish)
* New translations sglocalizable.strings (Vietnamese)
* New translations sglocalizable.strings (Indonesian)
* New translations sglocalizable.strings (Hindi)
* New translations sglocalizable.strings (Uzbek)
New Crowdin updates (#49)
* New translations sglocalizable.strings (Arabic)
* New translations sglocalizable.strings (Arabic)
New translations sglocalizable.strings (Russian) (#51)
Call confirmation
WIP Settings search
Settings Search
Localize placeholder
Update AccountUtils.swift
mark mutual contact
Align back context action to left
New Crowdin updates (#54)
* New translations sglocalizable.strings (Chinese Simplified)
* New translations sglocalizable.strings (Chinese Traditional)
* New translations sglocalizable.strings (Ukrainian)
Independent Playground app for simulator
New translations sglocalizable.strings (Ukrainian) (#55)
Playground UIKit base and controllers
Inject SwiftUI view with overflow to AsyncDisplayKit
Launch Playgound project on simulator
Create .swiftformat
Move Playground to example
Update .swiftformat
Init SwiftUIViewController
wip
New translations sglocalizable.strings (Chinese Traditional) (#57)
Xcode 16 fixes
Fix
New translations sglocalizable.strings (Italian) (#59)
New translations sglocalizable.strings (Chinese Simplified) (#63)
Force disable CallKit integration due to missing NSE Entitlement
Fix merge
Fix whole chat translator
Sweetpad config
Bump version
11.3.1 fixes
Mutual contact placement fix
Disable Video PIP swipe
Update versions.json
Fix PIP crash
532 lines
27 KiB
Swift
532 lines
27 KiB
Swift
import Foundation
|
|
import UIKit
|
|
import AsyncDisplayKit
|
|
import Postbox
|
|
import SwiftSignalKit
|
|
import TelegramCore
|
|
import Display
|
|
import AccountContext
|
|
import ContextUI
|
|
import TooltipUI
|
|
|
|
public enum ChatLoadingMessageSubject {
|
|
case generic
|
|
case pinnedMessage
|
|
}
|
|
|
|
public enum ChatFinishMediaRecordingAction {
|
|
case dismiss
|
|
case preview
|
|
case pause
|
|
case send(viewOnce: Bool)
|
|
}
|
|
|
|
public final class ChatPanelInterfaceInteractionStatuses {
|
|
public let editingMessage: Signal<Float?, NoError>
|
|
public let startingBot: Signal<Bool, NoError>
|
|
public let unblockingPeer: Signal<Bool, NoError>
|
|
public let searching: Signal<Bool, NoError>
|
|
public let loadingMessage: Signal<ChatLoadingMessageSubject?, NoError>
|
|
public let inlineSearch: Signal<Bool, NoError>
|
|
|
|
public init(editingMessage: Signal<Float?, NoError>, startingBot: Signal<Bool, NoError>, unblockingPeer: Signal<Bool, NoError>, searching: Signal<Bool, NoError>, loadingMessage: Signal<ChatLoadingMessageSubject?, NoError>, inlineSearch: Signal<Bool, NoError>) {
|
|
self.editingMessage = editingMessage
|
|
self.startingBot = startingBot
|
|
self.unblockingPeer = unblockingPeer
|
|
self.searching = searching
|
|
self.loadingMessage = loadingMessage
|
|
self.inlineSearch = inlineSearch
|
|
}
|
|
}
|
|
|
|
public enum ChatPanelSearchNavigationAction {
|
|
case earlier
|
|
case later
|
|
case index(Int)
|
|
}
|
|
|
|
public enum ChatPanelRestrictionInfoSubject {
|
|
case mediaRecording
|
|
case stickers
|
|
case premiumVoiceMessages
|
|
}
|
|
|
|
public enum ChatPanelRestrictionInfoDisplayType {
|
|
case tooltip
|
|
case alert
|
|
}
|
|
|
|
public enum ChatTranslationDisplayType {
|
|
case original
|
|
case translated
|
|
}
|
|
|
|
public final class ChatPanelInterfaceInteraction {
|
|
public let setupReplyMessage: (MessageId?, @escaping (ContainedViewLayoutTransition, @escaping () -> Void) -> Void) -> Void
|
|
public let setupEditMessage: (MessageId?, @escaping (ContainedViewLayoutTransition) -> Void) -> Void
|
|
public let beginMessageSelection: ([MessageId], @escaping (ContainedViewLayoutTransition) -> Void) -> Void
|
|
public let cancelMessageSelection: (ContainedViewLayoutTransition) -> Void
|
|
public let deleteSelectedMessages: () -> Void
|
|
public let reportSelectedMessages: () -> Void
|
|
public let reportMessages: ([Message], ContextControllerProtocol?) -> Void
|
|
public let blockMessageAuthor: (Message, ContextControllerProtocol?) -> Void
|
|
public let deleteMessages: ([Message], ContextControllerProtocol?, @escaping (ContextMenuActionResult) -> Void) -> Void
|
|
public let forwardSelectedMessages: (String?) -> Void
|
|
public let forwardCurrentForwardMessages: () -> Void
|
|
public let forwardMessages: ([Message], String?) -> Void
|
|
public let updateForwardOptionsState: ((ChatInterfaceForwardOptionsState) -> ChatInterfaceForwardOptionsState) -> Void
|
|
public let presentForwardOptions: (ASDisplayNode) -> Void
|
|
public let presentReplyOptions: (ASDisplayNode) -> Void
|
|
public let presentLinkOptions: (ASDisplayNode) -> Void
|
|
public let shareSelectedMessages: () -> Void
|
|
public let updateTextInputStateAndMode: (@escaping (ChatTextInputState, ChatInputMode) -> (ChatTextInputState, ChatInputMode)) -> Void
|
|
public let updateInputModeAndDismissedButtonKeyboardMessageId: ((ChatPresentationInterfaceState) -> (ChatInputMode, MessageId?)) -> Void
|
|
public let openStickers: () -> Void
|
|
public let editMessage: () -> Void
|
|
public let beginMessageSearch: (ChatSearchDomain, String) -> Void
|
|
public let dismissMessageSearch: () -> Void
|
|
public let updateMessageSearch: (String) -> Void
|
|
public let navigateMessageSearch: (ChatPanelSearchNavigationAction) -> Void
|
|
public let openSearchResults: () -> Void
|
|
public let openCalendarSearch: () -> Void
|
|
public let toggleMembersSearch: (Bool) -> Void
|
|
public let navigateToMessage: (MessageId, Bool, Bool, ChatLoadingMessageSubject) -> Void
|
|
public let navigateToChat: (PeerId) -> Void
|
|
public let navigateToProfile: (PeerId) -> Void
|
|
public let openPeerInfo: () -> Void
|
|
public let togglePeerNotifications: () -> Void
|
|
public let sendContextResult: (ChatContextResultCollection, ChatContextResult, ASDisplayNode, CGRect) -> Bool
|
|
public let sendBotCommand: (Peer, String) -> Void
|
|
public let sendShortcut: (Int32) -> Void
|
|
public let openEditShortcuts: () -> Void
|
|
public let sendBotStart: (String?) -> Void
|
|
public let botSwitchChatWithPayload: (PeerId, String) -> Void
|
|
public let beginMediaRecording: (Bool) -> Void
|
|
public let finishMediaRecording: (ChatFinishMediaRecordingAction) -> Void
|
|
public let stopMediaRecording: () -> Void
|
|
public let lockMediaRecording: () -> Void
|
|
public let resumeMediaRecording: () -> Void
|
|
public let deleteRecordedMedia: () -> Void
|
|
public let sendRecordedMedia: (Bool, Bool) -> Void
|
|
public let displayRestrictedInfo: (ChatPanelRestrictionInfoSubject, ChatPanelRestrictionInfoDisplayType) -> Void
|
|
public let displayVideoUnmuteTip: (CGPoint?) -> Void
|
|
public let switchMediaRecordingMode: () -> Void
|
|
public let setupMessageAutoremoveTimeout: () -> Void
|
|
public let sendSticker: (FileMediaReference, Bool, UIView, CGRect, CALayer?, [ItemCollectionId]) -> Bool
|
|
public let unblockPeer: () -> Void
|
|
public let pinMessage: (MessageId, ContextControllerProtocol?) -> Void
|
|
public let unpinMessage: (MessageId, Bool, ContextControllerProtocol?) -> Void
|
|
public let unpinAllMessages: () -> Void
|
|
public let openPinnedList: (MessageId) -> Void
|
|
public let shareAccountContact: () -> Void
|
|
public let reportPeer: () -> Void
|
|
public let presentPeerContact: () -> Void
|
|
public let dismissReportPeer: () -> Void
|
|
public let deleteChat: () -> Void
|
|
public let beginCall: (Bool) -> Void
|
|
public let toggleMessageStickerStarred: (MessageId) -> Void
|
|
public let presentController: (ViewController, Any?) -> Void
|
|
public let presentControllerInCurrent: (ViewController, Any?) -> Void
|
|
public let getNavigationController: () -> NavigationController?
|
|
public let presentGlobalOverlayController: (ViewController, Any?) -> Void
|
|
public let navigateFeed: () -> Void
|
|
public let openGrouping: () -> Void
|
|
public let toggleSilentPost: () -> Void
|
|
public let requestUnvoteInMessage: (MessageId) -> Void
|
|
public let requestStopPollInMessage: (MessageId) -> Void
|
|
public let updateInputLanguage: (@escaping (String?) -> String?) -> Void
|
|
public let unarchiveChat: () -> Void
|
|
public let openLinkEditing: () -> Void
|
|
public let reportPeerIrrelevantGeoLocation: () -> Void
|
|
public let displaySlowmodeTooltip: (UIView, CGRect) -> Void
|
|
public let displaySendMessageOptions: (ASDisplayNode, ContextGesture) -> Void
|
|
public let openScheduledMessages: () -> Void
|
|
public let displaySearchResultsTooltip: (ASDisplayNode, CGRect) -> Void
|
|
public let openPeersNearby: () -> Void
|
|
public let unarchivePeer: () -> Void
|
|
public let scrollToTop: () -> Void
|
|
public let viewReplies: (MessageId?, ChatReplyThreadMessage) -> Void
|
|
public let activatePinnedListPreview: (ASDisplayNode, ContextGesture) -> Void
|
|
public let editMessageMedia: (MessageId, Bool) -> Void
|
|
public let joinGroupCall: (CachedChannelData.ActiveCall) -> Void
|
|
public let presentInviteMembers: () -> Void
|
|
public let presentGigagroupHelp: () -> Void
|
|
public let updateShowCommands: ((Bool) -> Bool) -> Void
|
|
public let updateShowSendAsPeers: ((Bool) -> Bool) -> Void
|
|
public let openInviteRequests: () -> Void
|
|
public let openSendAsPeer: (ASDisplayNode, ContextGesture?) -> Void
|
|
public let presentChatRequestAdminInfo: () -> Void
|
|
public let displayCopyProtectionTip: (ASDisplayNode, Bool) -> Void
|
|
public let openWebView: (String, String, Bool, ChatOpenWebViewSource) -> Void
|
|
public let updateShowWebView: ((Bool) -> Bool) -> Void
|
|
public let insertText: (NSAttributedString) -> Void
|
|
public let backwardsDeleteText: () -> Void
|
|
public let restartTopic: () -> Void
|
|
public let toggleTranslation: (ChatTranslationDisplayType) -> Void
|
|
public let changeTranslationLanguage: (String) -> Void
|
|
public let addDoNotTranslateLanguage: (String) -> Void
|
|
public let hideTranslationPanel: () -> Void
|
|
public let openPremiumGift: () -> Void
|
|
public let openPremiumRequiredForMessaging: () -> Void
|
|
public let updateHistoryFilter: ((ChatPresentationInterfaceState.HistoryFilter?) -> ChatPresentationInterfaceState.HistoryFilter?) -> Void
|
|
public let updateDisplayHistoryFilterAsList: (Bool) -> Void
|
|
public let openBoostToUnrestrict: () -> Void
|
|
public let updateVideoTrimRange: (Double, Double, Bool, Bool) -> Void
|
|
public let requestLayout: (ContainedViewLayoutTransition) -> Void
|
|
public let chatController: () -> ViewController?
|
|
public let statuses: ChatPanelInterfaceInteractionStatuses?
|
|
|
|
public init(
|
|
setupReplyMessage: @escaping (MessageId?, @escaping (ContainedViewLayoutTransition, @escaping () -> Void) -> Void) -> Void,
|
|
setupEditMessage: @escaping (MessageId?, @escaping (ContainedViewLayoutTransition) -> Void) -> Void,
|
|
beginMessageSelection: @escaping ([MessageId], @escaping (ContainedViewLayoutTransition) -> Void) -> Void,
|
|
cancelMessageSelection: @escaping (ContainedViewLayoutTransition) -> Void,
|
|
deleteSelectedMessages: @escaping () -> Void,
|
|
reportSelectedMessages: @escaping () -> Void,
|
|
reportMessages: @escaping ([Message], ContextControllerProtocol?) -> Void,
|
|
blockMessageAuthor: @escaping (Message, ContextControllerProtocol?) -> Void,
|
|
deleteMessages: @escaping ([Message], ContextControllerProtocol?, @escaping (ContextMenuActionResult) -> Void) -> Void,
|
|
forwardSelectedMessages: @escaping (String?) -> Void,
|
|
forwardCurrentForwardMessages: @escaping () -> Void,
|
|
forwardMessages: @escaping ([Message], String?) -> Void,
|
|
updateForwardOptionsState: @escaping ((ChatInterfaceForwardOptionsState) -> ChatInterfaceForwardOptionsState) -> Void,
|
|
presentForwardOptions: @escaping (ASDisplayNode) -> Void,
|
|
presentReplyOptions: @escaping (ASDisplayNode) -> Void,
|
|
presentLinkOptions: @escaping (ASDisplayNode) -> Void,
|
|
shareSelectedMessages: @escaping () -> Void,
|
|
updateTextInputStateAndMode: @escaping ((ChatTextInputState, ChatInputMode) -> (ChatTextInputState, ChatInputMode)) -> Void,
|
|
updateInputModeAndDismissedButtonKeyboardMessageId: @escaping ((ChatPresentationInterfaceState) -> (ChatInputMode, MessageId?)) -> Void,
|
|
openStickers: @escaping () -> Void,
|
|
editMessage: @escaping () -> Void,
|
|
beginMessageSearch: @escaping (ChatSearchDomain, String) -> Void,
|
|
dismissMessageSearch: @escaping () -> Void,
|
|
updateMessageSearch: @escaping (String) -> Void,
|
|
openSearchResults: @escaping () -> Void,
|
|
navigateMessageSearch: @escaping (ChatPanelSearchNavigationAction) -> Void,
|
|
openCalendarSearch: @escaping () -> Void,
|
|
toggleMembersSearch: @escaping (Bool) -> Void,
|
|
navigateToMessage: @escaping (MessageId, Bool, Bool, ChatLoadingMessageSubject) -> Void,
|
|
navigateToChat: @escaping (PeerId) -> Void,
|
|
navigateToProfile: @escaping (PeerId) -> Void,
|
|
openPeerInfo: @escaping () -> Void,
|
|
togglePeerNotifications: @escaping () -> Void,
|
|
sendContextResult: @escaping (ChatContextResultCollection, ChatContextResult, ASDisplayNode, CGRect) -> Bool,
|
|
sendBotCommand: @escaping (Peer, String) -> Void,
|
|
sendShortcut: @escaping (Int32) -> Void,
|
|
openEditShortcuts: @escaping () -> Void,
|
|
sendBotStart: @escaping (String?) -> Void,
|
|
botSwitchChatWithPayload: @escaping (PeerId, String) -> Void,
|
|
beginMediaRecording: @escaping (Bool) -> Void,
|
|
finishMediaRecording: @escaping (ChatFinishMediaRecordingAction) -> Void,
|
|
stopMediaRecording: @escaping () -> Void,
|
|
lockMediaRecording: @escaping () -> Void,
|
|
resumeMediaRecording: @escaping () -> Void,
|
|
deleteRecordedMedia: @escaping () -> Void,
|
|
sendRecordedMedia: @escaping (Bool, Bool) -> Void,
|
|
displayRestrictedInfo: @escaping (ChatPanelRestrictionInfoSubject, ChatPanelRestrictionInfoDisplayType) -> Void,
|
|
displayVideoUnmuteTip: @escaping (CGPoint?) -> Void,
|
|
switchMediaRecordingMode: @escaping () -> Void,
|
|
setupMessageAutoremoveTimeout: @escaping () -> Void,
|
|
sendSticker: @escaping (FileMediaReference, Bool, UIView, CGRect, CALayer?, [ItemCollectionId]) -> Bool,
|
|
unblockPeer: @escaping () -> Void,
|
|
pinMessage: @escaping (MessageId, ContextControllerProtocol?) -> Void,
|
|
unpinMessage: @escaping (MessageId, Bool, ContextControllerProtocol?) -> Void,
|
|
unpinAllMessages: @escaping () -> Void,
|
|
openPinnedList: @escaping (MessageId) -> Void,
|
|
shareAccountContact: @escaping () -> Void,
|
|
reportPeer: @escaping () -> Void,
|
|
presentPeerContact: @escaping () -> Void,
|
|
dismissReportPeer: @escaping () -> Void,
|
|
deleteChat: @escaping () -> Void,
|
|
beginCall: @escaping (Bool) -> Void,
|
|
toggleMessageStickerStarred: @escaping (MessageId) -> Void,
|
|
presentController: @escaping (ViewController, Any?) -> Void,
|
|
presentControllerInCurrent: @escaping (ViewController, Any?) -> Void,
|
|
getNavigationController: @escaping () -> NavigationController?,
|
|
presentGlobalOverlayController: @escaping (ViewController, Any?) -> Void,
|
|
navigateFeed: @escaping () -> Void,
|
|
openGrouping: @escaping () -> Void,
|
|
toggleSilentPost: @escaping () -> Void,
|
|
requestUnvoteInMessage: @escaping (MessageId) -> Void,
|
|
requestStopPollInMessage: @escaping (MessageId) -> Void,
|
|
updateInputLanguage: @escaping ((String?) -> String?) -> Void,
|
|
unarchiveChat: @escaping () -> Void,
|
|
openLinkEditing: @escaping () -> Void,
|
|
reportPeerIrrelevantGeoLocation: @escaping () -> Void,
|
|
displaySlowmodeTooltip: @escaping (UIView, CGRect) -> Void,
|
|
displaySendMessageOptions: @escaping (ASDisplayNode, ContextGesture) -> Void,
|
|
openScheduledMessages: @escaping () -> Void,
|
|
openPeersNearby: @escaping () -> Void,
|
|
displaySearchResultsTooltip: @escaping (ASDisplayNode, CGRect) -> Void,
|
|
unarchivePeer: @escaping () -> Void,
|
|
scrollToTop: @escaping () -> Void,
|
|
viewReplies: @escaping (MessageId?, ChatReplyThreadMessage) -> Void,
|
|
activatePinnedListPreview: @escaping (ASDisplayNode, ContextGesture) -> Void,
|
|
joinGroupCall: @escaping (CachedChannelData.ActiveCall) -> Void,
|
|
presentInviteMembers: @escaping () -> Void,
|
|
presentGigagroupHelp: @escaping () -> Void,
|
|
editMessageMedia: @escaping (MessageId, Bool) -> Void,
|
|
updateShowCommands: @escaping ((Bool) -> Bool) -> Void,
|
|
updateShowSendAsPeers: @escaping ((Bool) -> Bool) -> Void,
|
|
openInviteRequests: @escaping () -> Void,
|
|
openSendAsPeer: @escaping (ASDisplayNode, ContextGesture?) -> Void,
|
|
presentChatRequestAdminInfo: @escaping () -> Void,
|
|
displayCopyProtectionTip: @escaping (ASDisplayNode, Bool) -> Void,
|
|
openWebView: @escaping (String, String, Bool, ChatOpenWebViewSource) -> Void,
|
|
updateShowWebView: @escaping ((Bool) -> Bool) -> Void,
|
|
insertText: @escaping (NSAttributedString) -> Void,
|
|
backwardsDeleteText: @escaping () -> Void,
|
|
restartTopic: @escaping () -> Void,
|
|
toggleTranslation: @escaping (ChatTranslationDisplayType) -> Void,
|
|
changeTranslationLanguage: @escaping (String) -> Void,
|
|
addDoNotTranslateLanguage: @escaping (String) -> Void,
|
|
hideTranslationPanel: @escaping () -> Void,
|
|
openPremiumGift: @escaping () -> Void,
|
|
openPremiumRequiredForMessaging: @escaping () -> Void,
|
|
openBoostToUnrestrict: @escaping () -> Void,
|
|
updateVideoTrimRange: @escaping (Double, Double, Bool, Bool) -> Void,
|
|
updateHistoryFilter: @escaping ((ChatPresentationInterfaceState.HistoryFilter?) -> ChatPresentationInterfaceState.HistoryFilter?) -> Void,
|
|
updateDisplayHistoryFilterAsList: @escaping (Bool) -> Void,
|
|
requestLayout: @escaping (ContainedViewLayoutTransition) -> Void,
|
|
chatController: @escaping () -> ViewController?,
|
|
statuses: ChatPanelInterfaceInteractionStatuses?
|
|
) {
|
|
self.setupReplyMessage = setupReplyMessage
|
|
self.setupEditMessage = setupEditMessage
|
|
self.beginMessageSelection = beginMessageSelection
|
|
self.cancelMessageSelection = cancelMessageSelection
|
|
self.deleteSelectedMessages = deleteSelectedMessages
|
|
self.reportSelectedMessages = reportSelectedMessages
|
|
self.reportMessages = reportMessages
|
|
self.blockMessageAuthor = blockMessageAuthor
|
|
self.deleteMessages = deleteMessages
|
|
self.forwardSelectedMessages = forwardSelectedMessages
|
|
self.forwardCurrentForwardMessages = forwardCurrentForwardMessages
|
|
self.forwardMessages = forwardMessages
|
|
self.updateForwardOptionsState = updateForwardOptionsState
|
|
self.presentForwardOptions = presentForwardOptions
|
|
self.presentReplyOptions = presentReplyOptions
|
|
self.presentLinkOptions = presentLinkOptions
|
|
self.shareSelectedMessages = shareSelectedMessages
|
|
self.updateTextInputStateAndMode = updateTextInputStateAndMode
|
|
self.updateInputModeAndDismissedButtonKeyboardMessageId = updateInputModeAndDismissedButtonKeyboardMessageId
|
|
self.openStickers = openStickers
|
|
self.editMessage = editMessage
|
|
self.beginMessageSearch = beginMessageSearch
|
|
self.dismissMessageSearch = dismissMessageSearch
|
|
self.updateMessageSearch = updateMessageSearch
|
|
self.openSearchResults = openSearchResults
|
|
self.navigateMessageSearch = navigateMessageSearch
|
|
self.openCalendarSearch = openCalendarSearch
|
|
self.toggleMembersSearch = toggleMembersSearch
|
|
self.navigateToMessage = navigateToMessage
|
|
self.navigateToChat = navigateToChat
|
|
self.navigateToProfile = navigateToProfile
|
|
self.openPeerInfo = openPeerInfo
|
|
self.togglePeerNotifications = togglePeerNotifications
|
|
self.sendContextResult = sendContextResult
|
|
self.sendBotCommand = sendBotCommand
|
|
self.sendShortcut = sendShortcut
|
|
self.openEditShortcuts = openEditShortcuts
|
|
self.sendBotStart = sendBotStart
|
|
self.botSwitchChatWithPayload = botSwitchChatWithPayload
|
|
self.beginMediaRecording = beginMediaRecording
|
|
self.finishMediaRecording = finishMediaRecording
|
|
self.stopMediaRecording = stopMediaRecording
|
|
self.lockMediaRecording = lockMediaRecording
|
|
self.resumeMediaRecording = resumeMediaRecording
|
|
self.deleteRecordedMedia = deleteRecordedMedia
|
|
self.sendRecordedMedia = sendRecordedMedia
|
|
self.displayRestrictedInfo = displayRestrictedInfo
|
|
self.displayVideoUnmuteTip = displayVideoUnmuteTip
|
|
self.switchMediaRecordingMode = switchMediaRecordingMode
|
|
self.setupMessageAutoremoveTimeout = setupMessageAutoremoveTimeout
|
|
self.sendSticker = sendSticker
|
|
self.unblockPeer = unblockPeer
|
|
self.pinMessage = pinMessage
|
|
self.unpinMessage = unpinMessage
|
|
self.unpinAllMessages = unpinAllMessages
|
|
self.openPinnedList = openPinnedList
|
|
self.shareAccountContact = shareAccountContact
|
|
self.reportPeer = reportPeer
|
|
self.presentPeerContact = presentPeerContact
|
|
self.dismissReportPeer = dismissReportPeer
|
|
self.deleteChat = deleteChat
|
|
self.beginCall = beginCall
|
|
self.toggleMessageStickerStarred = toggleMessageStickerStarred
|
|
self.presentController = presentController
|
|
self.presentControllerInCurrent = presentControllerInCurrent
|
|
self.getNavigationController = getNavigationController
|
|
self.presentGlobalOverlayController = presentGlobalOverlayController
|
|
self.navigateFeed = navigateFeed
|
|
self.openGrouping = openGrouping
|
|
self.toggleSilentPost = toggleSilentPost
|
|
self.requestUnvoteInMessage = requestUnvoteInMessage
|
|
self.requestStopPollInMessage = requestStopPollInMessage
|
|
self.updateInputLanguage = updateInputLanguage
|
|
self.unarchiveChat = unarchiveChat
|
|
self.openLinkEditing = openLinkEditing
|
|
self.reportPeerIrrelevantGeoLocation = reportPeerIrrelevantGeoLocation
|
|
self.displaySlowmodeTooltip = displaySlowmodeTooltip
|
|
self.displaySendMessageOptions = displaySendMessageOptions
|
|
self.openScheduledMessages = openScheduledMessages
|
|
self.openPeersNearby = openPeersNearby
|
|
self.displaySearchResultsTooltip = displaySearchResultsTooltip
|
|
self.unarchivePeer = unarchivePeer
|
|
self.scrollToTop = scrollToTop
|
|
self.viewReplies = viewReplies
|
|
self.activatePinnedListPreview = activatePinnedListPreview
|
|
self.editMessageMedia = editMessageMedia
|
|
self.joinGroupCall = joinGroupCall
|
|
self.presentInviteMembers = presentInviteMembers
|
|
self.presentGigagroupHelp = presentGigagroupHelp
|
|
self.updateShowCommands = updateShowCommands
|
|
self.updateShowSendAsPeers = updateShowSendAsPeers
|
|
self.openInviteRequests = openInviteRequests
|
|
self.openSendAsPeer = openSendAsPeer
|
|
self.presentChatRequestAdminInfo = presentChatRequestAdminInfo
|
|
self.displayCopyProtectionTip = displayCopyProtectionTip
|
|
self.openWebView = openWebView
|
|
self.updateShowWebView = updateShowWebView
|
|
self.insertText = insertText
|
|
self.backwardsDeleteText = backwardsDeleteText
|
|
self.restartTopic = restartTopic
|
|
self.toggleTranslation = toggleTranslation
|
|
self.changeTranslationLanguage = changeTranslationLanguage
|
|
self.addDoNotTranslateLanguage = addDoNotTranslateLanguage
|
|
self.hideTranslationPanel = hideTranslationPanel
|
|
self.openPremiumGift = openPremiumGift
|
|
self.openPremiumRequiredForMessaging = openPremiumRequiredForMessaging
|
|
self.openBoostToUnrestrict = openBoostToUnrestrict
|
|
self.updateVideoTrimRange = updateVideoTrimRange
|
|
self.updateHistoryFilter = updateHistoryFilter
|
|
self.updateDisplayHistoryFilterAsList = updateDisplayHistoryFilterAsList
|
|
self.requestLayout = requestLayout
|
|
|
|
self.chatController = chatController
|
|
self.statuses = statuses
|
|
}
|
|
|
|
public convenience init(
|
|
updateTextInputStateAndMode: @escaping ((ChatTextInputState, ChatInputMode) -> (ChatTextInputState, ChatInputMode)) -> Void,
|
|
updateInputModeAndDismissedButtonKeyboardMessageId: @escaping ((ChatPresentationInterfaceState) -> (ChatInputMode, MessageId?)) -> Void,
|
|
openLinkEditing: @escaping () -> Void
|
|
) {
|
|
self.init(setupReplyMessage: { _, _ in
|
|
}, setupEditMessage: { _, _ in
|
|
}, beginMessageSelection: { _, _ in
|
|
}, cancelMessageSelection: { _ in
|
|
}, deleteSelectedMessages: {
|
|
}, reportSelectedMessages: {
|
|
}, reportMessages: { _, _ in
|
|
}, blockMessageAuthor: { _, _ in
|
|
}, deleteMessages: { _, _, f in
|
|
f(.default)
|
|
}, forwardSelectedMessages: { _ in
|
|
}, forwardCurrentForwardMessages: {
|
|
}, forwardMessages: { _, _ in
|
|
}, updateForwardOptionsState: { _ in
|
|
}, presentForwardOptions: { _ in
|
|
}, presentReplyOptions: { _ in
|
|
}, presentLinkOptions: { _ in
|
|
}, shareSelectedMessages: {
|
|
}, updateTextInputStateAndMode: updateTextInputStateAndMode, updateInputModeAndDismissedButtonKeyboardMessageId: updateInputModeAndDismissedButtonKeyboardMessageId, openStickers: {
|
|
}, editMessage: {
|
|
}, beginMessageSearch: { _, _ in
|
|
}, dismissMessageSearch: {
|
|
}, updateMessageSearch: { _ in
|
|
}, openSearchResults: {
|
|
}, navigateMessageSearch: { _ in
|
|
}, openCalendarSearch: {
|
|
}, toggleMembersSearch: { _ in
|
|
}, navigateToMessage: { _, _, _, _ in
|
|
}, navigateToChat: { _ in
|
|
}, navigateToProfile: { _ in
|
|
}, openPeerInfo: {
|
|
}, togglePeerNotifications: {
|
|
}, sendContextResult: { _, _, _, _ in
|
|
return false
|
|
}, sendBotCommand: { _, _ in
|
|
}, sendShortcut: { _ in
|
|
}, openEditShortcuts: {
|
|
}, sendBotStart: { _ in
|
|
}, botSwitchChatWithPayload: { _, _ in
|
|
}, beginMediaRecording: { _ in
|
|
}, finishMediaRecording: { _ in
|
|
}, stopMediaRecording: {
|
|
}, lockMediaRecording: {
|
|
}, resumeMediaRecording: {
|
|
}, deleteRecordedMedia: {
|
|
}, sendRecordedMedia: { _, _ in
|
|
}, displayRestrictedInfo: { _, _ in
|
|
}, displayVideoUnmuteTip: { _ in
|
|
}, switchMediaRecordingMode: {
|
|
}, setupMessageAutoremoveTimeout: {
|
|
}, sendSticker: { _, _, _, _, _, _ in
|
|
return false
|
|
}, unblockPeer: {
|
|
}, pinMessage: { _, _ in
|
|
}, unpinMessage: { _, _, _ in
|
|
}, unpinAllMessages: {
|
|
}, openPinnedList: { _ in
|
|
}, shareAccountContact: {
|
|
}, reportPeer: {
|
|
}, presentPeerContact: {
|
|
}, dismissReportPeer: {
|
|
}, deleteChat: {
|
|
}, beginCall: { _ in
|
|
}, toggleMessageStickerStarred: { _ in
|
|
}, presentController: { _, _ in
|
|
}, presentControllerInCurrent: { _, _ in
|
|
}, getNavigationController: {
|
|
return nil
|
|
}, presentGlobalOverlayController: { _, _ in
|
|
}, navigateFeed: {
|
|
}, openGrouping: {
|
|
}, toggleSilentPost: {
|
|
}, requestUnvoteInMessage: { _ in
|
|
}, requestStopPollInMessage: { _ in
|
|
}, updateInputLanguage: { _ in
|
|
}, unarchiveChat: {
|
|
}, openLinkEditing: openLinkEditing, reportPeerIrrelevantGeoLocation: {
|
|
}, displaySlowmodeTooltip: { _, _ in
|
|
}, displaySendMessageOptions: { _, _ in
|
|
}, openScheduledMessages: {
|
|
}, openPeersNearby: {
|
|
}, displaySearchResultsTooltip: { _, _ in
|
|
}, unarchivePeer: {
|
|
}, scrollToTop: {
|
|
}, viewReplies: { _, _ in
|
|
}, activatePinnedListPreview: { _, _ in
|
|
}, joinGroupCall: { _ in
|
|
}, presentInviteMembers: {
|
|
}, presentGigagroupHelp: {
|
|
}, editMessageMedia: { _, _ in
|
|
}, updateShowCommands: { _ in
|
|
}, updateShowSendAsPeers: { _ in
|
|
}, openInviteRequests: {
|
|
}, openSendAsPeer: { _, _ in
|
|
}, presentChatRequestAdminInfo: {
|
|
}, displayCopyProtectionTip: { _, _ in
|
|
}, openWebView: { _, _, _, _ in
|
|
}, updateShowWebView: { _ in
|
|
}, insertText: { _ in
|
|
}, backwardsDeleteText: {
|
|
}, restartTopic: {
|
|
}, toggleTranslation: { _ in
|
|
}, changeTranslationLanguage: { _ in
|
|
}, addDoNotTranslateLanguage: { _ in
|
|
}, hideTranslationPanel: {
|
|
}, openPremiumGift: {
|
|
}, openPremiumRequiredForMessaging: {
|
|
}, openBoostToUnrestrict: {
|
|
}, updateVideoTrimRange: { _, _, _, _ in
|
|
}, updateHistoryFilter: { _ in
|
|
}, updateDisplayHistoryFilterAsList: { _ in
|
|
}, requestLayout: { _ in
|
|
}, chatController: {
|
|
return nil
|
|
}, statuses: nil)
|
|
}
|
|
}
|