mirror of
https://github.com/TelegramMessenger/Telegram-iOS.git
synced 2026-07-06 03:33:41 +02:00
Various improvements
This commit is contained in:
parent
7ec1611c08
commit
f51b91aa77
8 changed files with 124 additions and 9 deletions
|
|
@ -1,4 +1,5 @@
|
|||
import Foundation
|
||||
import UIKit
|
||||
import Postbox
|
||||
import TelegramCore
|
||||
import TemporaryCachedPeerDataManager
|
||||
|
|
@ -7,6 +8,9 @@ import AccountContext
|
|||
import TelegramPresentationData
|
||||
import ChatHistoryEntry
|
||||
import ChatMessageItemCommon
|
||||
import TextFormat
|
||||
import Markdown
|
||||
import Display
|
||||
|
||||
func chatHistoryEntriesForView(
|
||||
location: ChatLocation,
|
||||
|
|
@ -15,6 +19,7 @@ func chatHistoryEntriesForView(
|
|||
includeEmptyEntry: Bool,
|
||||
includeChatInfoEntry: Bool,
|
||||
includeSearchEntry: Bool,
|
||||
includeEmbeddedSavedChatInfo: Bool,
|
||||
reverse: Bool,
|
||||
groupMessages: Bool,
|
||||
reverseGroupedMessages: Bool,
|
||||
|
|
@ -454,6 +459,56 @@ func chatHistoryEntriesForView(
|
|||
}
|
||||
}
|
||||
}
|
||||
if includeEmbeddedSavedChatInfo, let peerId = location.peerId {
|
||||
if !view.isLoading && view.laterId == nil {
|
||||
let string = presentationData.strings.Chat_SavedMessagesTabInfoText
|
||||
let formattedString = parseMarkdownIntoAttributedString(
|
||||
string,
|
||||
attributes: MarkdownAttributes(
|
||||
body: MarkdownAttributeSet(font: Font.regular(15.0), textColor: .black),
|
||||
bold: MarkdownAttributeSet(font: Font.regular(15.0), textColor: .white),
|
||||
link: MarkdownAttributeSet(font: Font.regular(15.0), textColor: .black),
|
||||
linkAttribute: { url in
|
||||
return ("URL", url)
|
||||
}
|
||||
)
|
||||
)
|
||||
var entities: [MessageTextEntity] = []
|
||||
formattedString.enumerateAttribute(.foregroundColor, in: NSRange(location: 0, length: formattedString.length), options: [], using: { value, range, _ in
|
||||
if let value = value as? UIColor, value == .white {
|
||||
entities.append(MessageTextEntity(range: range.lowerBound ..< range.upperBound, type: .Bold))
|
||||
}
|
||||
})
|
||||
|
||||
let message = Message(
|
||||
stableId: UInt32.max - 1001,
|
||||
stableVersion: 0,
|
||||
id: MessageId(peerId: peerId, namespace: Namespaces.Message.Local, id: 123),
|
||||
globallyUniqueId: nil,
|
||||
groupingKey: nil,
|
||||
groupInfo: nil,
|
||||
threadId: nil,
|
||||
timestamp: Int32.max - 1,
|
||||
flags: [.Incoming],
|
||||
tags: [],
|
||||
globalTags: [],
|
||||
localTags: [],
|
||||
customTags: [],
|
||||
forwardInfo: nil,
|
||||
author: nil,
|
||||
text: "",
|
||||
attributes: [],
|
||||
media: [TelegramMediaAction(action: .customText(text: formattedString.string, entities: entities, additionalAttributes: nil))],
|
||||
peers: SimpleDictionary<PeerId, Peer>(),
|
||||
associatedMessages: SimpleDictionary<MessageId, Message>(),
|
||||
associatedMessageIds: [],
|
||||
associatedMedia: [:],
|
||||
associatedThreadInfo: nil,
|
||||
associatedStories: [:]
|
||||
)
|
||||
entries.append(.MessageEntry(message, presentationData, false, nil, .none, ChatMessageEntryAttributes(rank: nil, isContact: false, contentTypeHint: .generic, updatingMedia: nil, isPlaying: false, isCentered: false, authorStoryStats: nil)))
|
||||
}
|
||||
}
|
||||
|
||||
if reverse {
|
||||
return entries.reversed()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue