diff --git a/submodules/TelegramCore/Sources/SyncCore/SyncCore_TelegramTheme.swift b/submodules/TelegramCore/Sources/SyncCore/SyncCore_TelegramTheme.swift index a28dbccfa3..322163d633 100644 --- a/submodules/TelegramCore/Sources/SyncCore/SyncCore_TelegramTheme.swift +++ b/submodules/TelegramCore/Sources/SyncCore/SyncCore_TelegramTheme.swift @@ -59,7 +59,7 @@ public final class TelegramThemeSettings: Codable, Equatable { self.baseTheme = TelegramBaseTheme(rawValue: try container.decode(Int32.self, forKey: "baseTheme")) ?? .classic self.accentColor = UInt32(bitPattern: try container.decode(Int32.self, forKey: "accent")) self.outgoingAccentColor = (try container.decodeIfPresent(Int32.self, forKey: "outgoingAccent")).flatMap { UInt32(bitPattern: $0) } - let messageColors = try container.decode([Int32].self, forKey: "messageColors") + let messageColors = try container.decodeIfPresent([Int32].self, forKey: "messageColors") ?? [] if !messageColors.isEmpty { self.messageColors = messageColors.map(UInt32.init(bitPattern:)) } else { @@ -69,7 +69,7 @@ public final class TelegramThemeSettings: Codable, Equatable { self.messageColors = [] } } - self.animateMessageColors = try container.decode(Int32.self, forKey: "animateMessageColors") != 0 + self.animateMessageColors = (try container.decodeIfPresent(Int32.self, forKey: "animateMessageColors") ?? 0) != 0 self.wallpaper = (try container.decodeIfPresent(TelegramWallpaperNativeCodable.self, forKey: "wallpaper"))?.value } diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index 2e11e10e70..9ec1f36a7d 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -5753,8 +5753,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G uniquePeerIds.insert(author.id) } - if message.id.peerId == accountPeerId && author.id == accountPeerId { - + if message.id.peerId == accountPeerId && message.forwardInfo == nil { } else { hasNotOwnMessages = true } @@ -12042,11 +12041,9 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G var hasNotOwnMessages = false for message in messages { - if let author = message.effectiveAuthor { - if message.id.peerId == accountPeerId && author.id == accountPeerId { - } else { - hasNotOwnMessages = true - } + if message.id.peerId == accountPeerId && message.forwardInfo == nil { + } else { + hasNotOwnMessages = true } } diff --git a/submodules/TelegramUI/Sources/ChatControllerNode.swift b/submodules/TelegramUI/Sources/ChatControllerNode.swift index 4eb9b806c2..3482102b28 100644 --- a/submodules/TelegramUI/Sources/ChatControllerNode.swift +++ b/submodules/TelegramUI/Sources/ChatControllerNode.swift @@ -281,10 +281,8 @@ class ChatControllerNode: ASDisplayNode, UIScrollViewDelegate { }) var hideNames = options.hideNames - if let author = message.effectiveAuthor { - if message.id.peerId == accountPeer.id && author.id == accountPeer.id { - hideNames = true - } + if message.id.peerId == accountPeer.id && message.forwardInfo == nil { + hideNames = true } var messageText = message.text @@ -309,8 +307,11 @@ class ChatControllerNode: ASDisplayNode, UIScrollViewDelegate { } } - var forwardInfo = message.forwardInfo - if forwardInfo == nil { + var forwardInfo: MessageForwardInfo? + if let existingForwardInfo = message.forwardInfo { + forwardInfo = MessageForwardInfo(author: existingForwardInfo.author, source: existingForwardInfo.source, sourceMessageId: nil, date: 0, authorSignature: nil, psaType: nil, flags: []) + } + else { forwardInfo = MessageForwardInfo(author: message.author, source: nil, sourceMessageId: nil, date: 0, authorSignature: nil, psaType: nil, flags: []) } if hideNames && !hasDice {