mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 06:35:51 +00:00
Display text selection tip in message context menu
This commit is contained in:
@@ -69,6 +69,7 @@ final class MessageHistoryTable: Table {
|
||||
let historyMetadataTable: MessageHistoryMetadataTable
|
||||
let globallyUniqueMessageIdsTable: MessageGloballyUniqueIdTable
|
||||
let unsentTable: MessageHistoryUnsentTable
|
||||
let failedTable: MessageHistoryFailedTable
|
||||
let tagsTable: MessageHistoryTagsTable
|
||||
let globalTagsTable: GlobalMessageHistoryTagsTable
|
||||
let localTagsTable: LocalMessageHistoryTagsTable
|
||||
@@ -78,7 +79,7 @@ final class MessageHistoryTable: Table {
|
||||
let summaryTable: MessageHistoryTagsSummaryTable
|
||||
let pendingActionsTable: PendingMessageActionsTable
|
||||
|
||||
init(valueBox: ValueBox, table: ValueBoxTable, seedConfiguration: SeedConfiguration, messageHistoryIndexTable: MessageHistoryIndexTable, messageHistoryHoleIndexTable: MessageHistoryHoleIndexTable, messageMediaTable: MessageMediaTable, historyMetadataTable: MessageHistoryMetadataTable, globallyUniqueMessageIdsTable: MessageGloballyUniqueIdTable, unsentTable: MessageHistoryUnsentTable, tagsTable: MessageHistoryTagsTable, globalTagsTable: GlobalMessageHistoryTagsTable, localTagsTable: LocalMessageHistoryTagsTable, readStateTable: MessageHistoryReadStateTable, synchronizeReadStateTable: MessageHistorySynchronizeReadStateTable, textIndexTable: MessageHistoryTextIndexTable, summaryTable: MessageHistoryTagsSummaryTable, pendingActionsTable: PendingMessageActionsTable) {
|
||||
init(valueBox: ValueBox, table: ValueBoxTable, seedConfiguration: SeedConfiguration, messageHistoryIndexTable: MessageHistoryIndexTable, messageHistoryHoleIndexTable: MessageHistoryHoleIndexTable, messageMediaTable: MessageMediaTable, historyMetadataTable: MessageHistoryMetadataTable, globallyUniqueMessageIdsTable: MessageGloballyUniqueIdTable, unsentTable: MessageHistoryUnsentTable, failedTable: MessageHistoryFailedTable, tagsTable: MessageHistoryTagsTable, globalTagsTable: GlobalMessageHistoryTagsTable, localTagsTable: LocalMessageHistoryTagsTable, readStateTable: MessageHistoryReadStateTable, synchronizeReadStateTable: MessageHistorySynchronizeReadStateTable, textIndexTable: MessageHistoryTextIndexTable, summaryTable: MessageHistoryTagsSummaryTable, pendingActionsTable: PendingMessageActionsTable) {
|
||||
self.seedConfiguration = seedConfiguration
|
||||
self.messageHistoryIndexTable = messageHistoryIndexTable
|
||||
self.messageHistoryHoleIndexTable = messageHistoryHoleIndexTable
|
||||
@@ -86,6 +87,7 @@ final class MessageHistoryTable: Table {
|
||||
self.historyMetadataTable = historyMetadataTable
|
||||
self.globallyUniqueMessageIdsTable = globallyUniqueMessageIdsTable
|
||||
self.unsentTable = unsentTable
|
||||
self.failedTable = failedTable
|
||||
self.tagsTable = tagsTable
|
||||
self.globalTagsTable = globalTagsTable
|
||||
self.localTagsTable = localTagsTable
|
||||
@@ -249,6 +251,9 @@ final class MessageHistoryTable: Table {
|
||||
if message.flags.contains(.Unsent) && !message.flags.contains(.Failed) {
|
||||
self.unsentTable.add(message.id, operations: &unsentMessageOperations)
|
||||
}
|
||||
if message.flags.contains(.Failed) {
|
||||
self.failedTable.add(message.id)
|
||||
}
|
||||
let tags = message.tags.rawValue
|
||||
if tags != 0 {
|
||||
for i in 0 ..< 32 {
|
||||
@@ -1194,6 +1199,9 @@ final class MessageHistoryTable: Table {
|
||||
if message.flags.contains(.Unsent) && !message.flags.contains(.Failed) {
|
||||
self.unsentTable.remove(index.id, operations: &unsentMessageOperations)
|
||||
}
|
||||
if message.flags.contains(.Failed) {
|
||||
self.failedTable.remove(message.id)
|
||||
}
|
||||
|
||||
if let globallyUniqueId = message.globallyUniqueId {
|
||||
self.globallyUniqueMessageIdsTable.remove(peerId: message.id.peerId, globallyUniqueId: globallyUniqueId)
|
||||
@@ -1447,6 +1455,23 @@ final class MessageHistoryTable: Table {
|
||||
break
|
||||
}
|
||||
|
||||
if previousMessage.id != message.id {
|
||||
if previousMessage.flags.contains(.Failed) {
|
||||
self.failedTable.remove(previousMessage.id)
|
||||
}
|
||||
if message.flags.contains(.Failed) {
|
||||
self.failedTable.add(message.id)
|
||||
}
|
||||
} else {
|
||||
if previousMessage.flags.contains(.Failed) != message.flags.contains(.Failed) {
|
||||
if previousMessage.flags.contains(.Failed) {
|
||||
self.failedTable.remove(previousMessage.id)
|
||||
} else {
|
||||
self.failedTable.add(message.id)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if self.seedConfiguration.peerNamespacesRequiringMessageTextIndex.contains(message.id.peerId.namespace) {
|
||||
if previousMessage.id != message.id || previousMessage.text != message.text || previousMessage.tags != message.tags {
|
||||
self.textIndexTable.remove(messageId: previousMessage.id)
|
||||
|
||||
Reference in New Issue
Block a user