[WIP] Pinned messages update

This commit is contained in:
Ali
2020-10-20 21:49:49 +04:00
parent 047a0085c7
commit a913f14472
62 changed files with 5015 additions and 4344 deletions

View File

@@ -19,17 +19,17 @@ public final class ChatMessageItemAssociatedData: Equatable {
public let automaticDownloadPeerType: MediaAutoDownloadPeerType
public let automaticDownloadNetworkType: MediaAutoDownloadNetworkType
public let isRecentActions: Bool
public let isScheduledMessages: Bool
public let subject: ChatControllerSubject?
public let contactsPeerIds: Set<PeerId>
public let channelDiscussionGroup: ChannelDiscussionGroupStatus
public let animatedEmojiStickers: [String: [StickerPackItem]]
public let forcedResourceStatus: FileMediaResourceStatus?
public init(automaticDownloadPeerType: MediaAutoDownloadPeerType, automaticDownloadNetworkType: MediaAutoDownloadNetworkType, isRecentActions: Bool = false, isScheduledMessages: Bool = false, contactsPeerIds: Set<PeerId> = Set(), channelDiscussionGroup: ChannelDiscussionGroupStatus = .unknown, animatedEmojiStickers: [String: [StickerPackItem]] = [:], forcedResourceStatus: FileMediaResourceStatus? = nil) {
public init(automaticDownloadPeerType: MediaAutoDownloadPeerType, automaticDownloadNetworkType: MediaAutoDownloadNetworkType, isRecentActions: Bool = false, subject: ChatControllerSubject? = nil, contactsPeerIds: Set<PeerId> = Set(), channelDiscussionGroup: ChannelDiscussionGroupStatus = .unknown, animatedEmojiStickers: [String: [StickerPackItem]] = [:], forcedResourceStatus: FileMediaResourceStatus? = nil) {
self.automaticDownloadPeerType = automaticDownloadPeerType
self.automaticDownloadNetworkType = automaticDownloadNetworkType
self.isRecentActions = isRecentActions
self.isScheduledMessages = isScheduledMessages
self.subject = subject
self.contactsPeerIds = contactsPeerIds
self.channelDiscussionGroup = channelDiscussionGroup
self.animatedEmojiStickers = animatedEmojiStickers
@@ -46,7 +46,7 @@ public final class ChatMessageItemAssociatedData: Equatable {
if lhs.isRecentActions != rhs.isRecentActions {
return false
}
if lhs.isScheduledMessages != rhs.isScheduledMessages {
if lhs.subject != rhs.subject {
return false
}
if lhs.contactsPeerIds != rhs.contactsPeerIds {
@@ -65,6 +65,16 @@ public final class ChatMessageItemAssociatedData: Equatable {
}
}
public extension ChatMessageItemAssociatedData {
var isInPinnedListMode: Bool {
if case .pinnedMessages = self.subject {
return true
} else {
return false
}
}
}
public enum ChatControllerInteractionLongTapAction {
case url(String)
case mention(String)
@@ -331,6 +341,7 @@ public struct ChatTextInputStateText: PostboxCoding, Equatable {
public enum ChatControllerSubject: Equatable {
case message(id: MessageId, highlight: Bool)
case scheduledMessages
case pinnedMessages(id: MessageId?)
}
public enum ChatControllerPresentationMode: Equatable {