Various improvements

This commit is contained in:
Isaac
2024-02-02 14:32:13 +01:00
parent 48531db09e
commit bd4a534097
66 changed files with 1502 additions and 370 deletions

View File

@@ -596,7 +596,7 @@ public class GalleryController: ViewController, StandalonePresentableController,
let message: Signal<(Message, Bool)?, NoError>
var translateToLanguage: Signal<String?, NoError> = .single(nil)
switch source {
case let .peerMessagesAtId(messageId, _, _):
case let .peerMessagesAtId(messageId, _, _, _):
message = context.account.postbox.messageAtId(messageId)
|> mapToSignal { message -> Signal<(Message, Bool)?, NoError> in
if let message, let peer = message.peers[message.id.peerId] as? TelegramGroup, let migrationPeerId = peer.migrationReference?.peerId {
@@ -636,7 +636,7 @@ public class GalleryController: ViewController, StandalonePresentableController,
|> mapToSignal { messageAndPeerIsCopyProtected -> Signal<GalleryMessageHistoryView?, NoError> in
let (message, peerIsCopyProtected) = messageAndPeerIsCopyProtected!
switch source {
case let .peerMessagesAtId(_, chatLocation, chatLocationContextHolder):
case let .peerMessagesAtId(_, chatLocation, customTag, chatLocationContextHolder):
if let tags = tagsForMessage(message) {
let namespaces: MessageIdNamespaces
if Namespaces.Message.allScheduled.contains(message.id.namespace) {
@@ -644,7 +644,13 @@ public class GalleryController: ViewController, StandalonePresentableController,
} else {
namespaces = .not(Namespaces.Message.allScheduled)
}
return context.account.postbox.aroundMessageHistoryViewForLocation(context.chatLocationInput(for: chatLocation, contextHolder: chatLocationContextHolder), anchor: .index(message.index), ignoreMessagesInTimestampRange: nil, count: 50, clipHoles: false, fixedCombinedReadStates: nil, topTaggedMessageIdNamespaces: [], tag: .tag(tags), appendMessagesFromTheSameGroup: false, namespaces: namespaces, orderStatistics: [.combinedLocation])
let inputTag: HistoryViewInputTag
if let customTag {
inputTag = .customTag(customTag, tags)
} else {
inputTag = .tag(tags)
}
return context.account.postbox.aroundMessageHistoryViewForLocation(context.chatLocationInput(for: chatLocation, contextHolder: chatLocationContextHolder), anchor: .index(message.index), ignoreMessagesInTimestampRange: nil, count: 50, clipHoles: false, fixedCombinedReadStates: nil, topTaggedMessageIdNamespaces: [], tag: inputTag, appendMessagesFromTheSameGroup: false, namespaces: namespaces, orderStatistics: [.combinedLocation])
|> mapToSignal { (view, _, _) -> Signal<GalleryMessageHistoryView?, NoError> in
let mapped = GalleryMessageHistoryView.view(view, peerIsCopyProtected)
return .single(mapped)
@@ -701,7 +707,7 @@ public class GalleryController: ViewController, StandalonePresentableController,
loop: for i in 0 ..< entries.count {
let message = entries[i].message
switch source {
case let .peerMessagesAtId(messageId, _, _):
case let .peerMessagesAtId(messageId, _, _, _):
if message.id == messageId {
centralEntryStableId = message.stableId
break loop
@@ -1137,7 +1143,7 @@ public class GalleryController: ViewController, StandalonePresentableController,
self.isOpaqueWhenInOverlay = true
switch source {
case let .peerMessagesAtId(id, _, _):
case let .peerMessagesAtId(id, _, _, _):
if id.peerId.namespace == Namespaces.Peer.SecretChat {
self.screenCaptureEventsDisposable = (screenCaptureEvents()
|> deliverOnMainQueue).start(next: { [weak self] _ in
@@ -1358,7 +1364,7 @@ public class GalleryController: ViewController, StandalonePresentableController,
}
switch strongSelf.source {
case let .peerMessagesAtId(_, chatLocation, chatLocationContextHolder):
case let .peerMessagesAtId(_, chatLocation, _, chatLocationContextHolder):
var reloadAroundIndex: MessageIndex?
if index <= 2 && strongSelf.hasLeftEntries {
reloadAroundIndex = strongSelf.entries.first?.index