From 9a36c6fd4176c9b152ac7b24398e40f372f7369e Mon Sep 17 00:00:00 2001 From: overtake Date: Mon, 21 Sep 2020 11:54:59 +0300 Subject: [PATCH 1/5] small fix for call --- submodules/TelegramCore/Sources/CallSessionManager.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/submodules/TelegramCore/Sources/CallSessionManager.swift b/submodules/TelegramCore/Sources/CallSessionManager.swift index 80ab35f54e..69401d05cb 100644 --- a/submodules/TelegramCore/Sources/CallSessionManager.swift +++ b/submodules/TelegramCore/Sources/CallSessionManager.swift @@ -574,6 +574,8 @@ private final class CallSessionManagerContext { self.ringingStatesUpdated() } } + } else { + self.contextUpdated(internalId: internalId) } } From 30065e976e38747b09b2502f228eeace4822d7ae Mon Sep 17 00:00:00 2001 From: overtake Date: Tue, 22 Sep 2020 12:28:12 +0300 Subject: [PATCH 2/5] - blocking fix [skip ci ] --- .../Sources/BlockedPeersContext.swift | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/submodules/TelegramCore/Sources/BlockedPeersContext.swift b/submodules/TelegramCore/Sources/BlockedPeersContext.swift index c956554550..06985ae459 100644 --- a/submodules/TelegramCore/Sources/BlockedPeersContext.swift +++ b/submodules/TelegramCore/Sources/BlockedPeersContext.swift @@ -219,15 +219,17 @@ public final class BlockedPeersContext { } |> mapToSignal { value in return postbox.transaction { transaction -> Peer? in - transaction.updatePeerCachedData(peerIds: Set([peerId]), update: { _, current in - let previous: CachedUserData - if let current = current as? CachedUserData { - previous = current - } else { - previous = CachedUserData() - } - return previous.withUpdatedIsBlocked(false) - }) + if peerId.namespace == Namespaces.Peer.CloudUser { + transaction.updatePeerCachedData(peerIds: Set([peerId]), update: { _, current in + let previous: CachedUserData + if let current = current as? CachedUserData { + previous = current + } else { + previous = CachedUserData() + } + return previous.withUpdatedIsBlocked(false) + }) + } return transaction.getPeer(peerId) } |> castError(BlockedPeersContextRemoveError.self) From 69a9de11bf3a8c2155870dd9c7f5147b466e9504 Mon Sep 17 00:00:00 2001 From: overtake Date: Tue, 22 Sep 2020 22:04:59 +0300 Subject: [PATCH 3/5] small fixes [skip ci] --- submodules/TelegramCore/Sources/ApiGroupOrChannel.swift | 6 +++--- submodules/TelegramCore/Sources/TelegramUser.swift | 2 +- submodules/TelegramCore/Sources/UpdateMessageMedia.swift | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/submodules/TelegramCore/Sources/ApiGroupOrChannel.swift b/submodules/TelegramCore/Sources/ApiGroupOrChannel.swift index 6f8427851c..3e4886b34c 100644 --- a/submodules/TelegramCore/Sources/ApiGroupOrChannel.swift +++ b/submodules/TelegramCore/Sources/ApiGroupOrChannel.swift @@ -162,7 +162,7 @@ func mergeChannel(lhs: TelegramChannel?, rhs: TelegramChannel) -> TelegramChanne return rhs } - if case .personal = rhs.accessHash { + if case .personal? = rhs.accessHash { return rhs } @@ -185,9 +185,9 @@ func mergeChannel(lhs: TelegramChannel?, rhs: TelegramChannel) -> TelegramChanne if let rhsAccessHashValue = lhs.accessHash, case .personal = rhsAccessHashValue { accessHash = rhsAccessHashValue } else { - accessHash = lhs.accessHash ?? rhs.accessHash + accessHash = rhs.accessHash ?? lhs.accessHash } - return TelegramChannel(id: lhs.id, accessHash: accessHash, title: rhs.title, username: rhs.username, photo: rhs.photo, creationDate: lhs.creationDate, version: lhs.version, participationStatus: lhs.participationStatus, info: info, flags: channelFlags, restrictionInfo: lhs.restrictionInfo, adminRights: lhs.adminRights, bannedRights: lhs.bannedRights, defaultBannedRights: rhs.defaultBannedRights) + return TelegramChannel(id: lhs.id, accessHash: accessHash, title: rhs.title, username: rhs.username, photo: rhs.photo, creationDate: rhs.creationDate, version: rhs.version, participationStatus: rhs.participationStatus, info: info, flags: channelFlags, restrictionInfo: rhs.restrictionInfo, adminRights: rhs.adminRights, bannedRights: rhs.bannedRights, defaultBannedRights: rhs.defaultBannedRights) } diff --git a/submodules/TelegramCore/Sources/TelegramUser.swift b/submodules/TelegramCore/Sources/TelegramUser.swift index d152c205ee..ce21b5298d 100644 --- a/submodules/TelegramCore/Sources/TelegramUser.swift +++ b/submodules/TelegramCore/Sources/TelegramUser.swift @@ -143,7 +143,7 @@ extension TelegramUser { guard let lhs = lhs else { return rhs } - if case .personal = rhs.accessHash { + if case .personal? = rhs.accessHash { return rhs } else { var userFlags: UserInfoFlags = [] diff --git a/submodules/TelegramCore/Sources/UpdateMessageMedia.swift b/submodules/TelegramCore/Sources/UpdateMessageMedia.swift index 2112312b18..70ec3b7ce3 100644 --- a/submodules/TelegramCore/Sources/UpdateMessageMedia.swift +++ b/submodules/TelegramCore/Sources/UpdateMessageMedia.swift @@ -85,14 +85,14 @@ private func updateMessageThreadStatsInternal(transaction: Transaction, threadMe let count = max(0, attribute.count + countDifference) var maxMessageId = attribute.maxMessageId var maxReadMessageId = attribute.maxReadMessageId - if let maxAddedId = addedMessagePeers.map(\.messageId.id).max() { + if let maxAddedId = addedMessagePeers.map({ $0.messageId.id }).max() { if let currentMaxMessageId = maxMessageId { maxMessageId = max(currentMaxMessageId, maxAddedId) } else { maxMessageId = maxAddedId } } - if let maxAddedReadId = addedMessagePeers.filter(\.isOutgoing).map(\.messageId.id).max() { + if let maxAddedReadId = addedMessagePeers.filter({ $0.isOutgoing }).map({ $0.messageId.id }).max() { if let currentMaxMessageId = maxReadMessageId { maxReadMessageId = max(currentMaxMessageId, maxAddedReadId) } else { @@ -100,7 +100,7 @@ private func updateMessageThreadStatsInternal(transaction: Transaction, threadMe } } - attributes[j] = ReplyThreadMessageAttribute(count: count, latestUsers: mergeLatestUsers(current: attribute.latestUsers, added: addedMessagePeers.map(\.id), isGroup: isGroup, isEmpty: count == 0), commentsPeerId: attribute.commentsPeerId, maxMessageId: maxMessageId, maxReadMessageId: maxReadMessageId) + attributes[j] = ReplyThreadMessageAttribute(count: count, latestUsers: mergeLatestUsers(current: attribute.latestUsers, added: addedMessagePeers.map({ $0.id }), isGroup: isGroup, isEmpty: count == 0), commentsPeerId: attribute.commentsPeerId, maxMessageId: maxMessageId, maxReadMessageId: maxReadMessageId) } else if let attribute = attributes[j] as? SourceReferenceMessageAttribute { channelThreadMessageId = attribute.messageId } From 13550ea6faf2bd972fc3f9d1e68b024518b684f4 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Wed, 23 Sep 2020 22:59:04 +0400 Subject: [PATCH 4/5] Fix thread hole index --- submodules/Postbox/Sources/MessageHistoryMetadataTable.swift | 1 + .../Postbox/Sources/MessageHistoryThreadHoleIndexTable.swift | 1 + 2 files changed, 2 insertions(+) diff --git a/submodules/Postbox/Sources/MessageHistoryMetadataTable.swift b/submodules/Postbox/Sources/MessageHistoryMetadataTable.swift index f06f29b571..1e2517bb89 100644 --- a/submodules/Postbox/Sources/MessageHistoryMetadataTable.swift +++ b/submodules/Postbox/Sources/MessageHistoryMetadataTable.swift @@ -81,6 +81,7 @@ final class MessageHistoryMetadataTable: Table { private func peerThreadHoleIndexInitializedKey(peerId: PeerId, threadId: Int64) -> ValueBoxKey { self.sharedPeerThreadHoleIndexInitializedKey.setInt64(0, value: peerId.toInt64()) self.sharedPeerThreadHoleIndexInitializedKey.setInt8(8, value: MetadataPrefix.PeerHistoryThreadHoleIndexInitialized.rawValue) + self.sharedPeerThreadHoleIndexInitializedKey.setInt64(0, value: threadId) return self.sharedPeerThreadHoleIndexInitializedKey } diff --git a/submodules/Postbox/Sources/MessageHistoryThreadHoleIndexTable.swift b/submodules/Postbox/Sources/MessageHistoryThreadHoleIndexTable.swift index d973c85cb8..58987f71b7 100644 --- a/submodules/Postbox/Sources/MessageHistoryThreadHoleIndexTable.swift +++ b/submodules/Postbox/Sources/MessageHistoryThreadHoleIndexTable.swift @@ -110,6 +110,7 @@ final class MessageHistoryThreadHoleIndexTable: Table { private func ensureInitialized(peerId: PeerId, threadId: Int64) { if !self.metadataTable.isThreadHoleIndexInitialized(peerId: peerId, threadId: threadId) { + postboxLog("MessageHistoryThreadHoleIndexTable: Initializing \(peerId) \(threadId)") self.metadataTable.setIsThreadHoleIndexInitialized(peerId: peerId, threadId: threadId) if let messageNamespaces = self.seedConfiguration.messageThreadHoles[peerId.namespace] { From 2209c9e8bdb273a0b492024016eb94f52a2751d8 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Thu, 24 Sep 2020 00:42:15 +0400 Subject: [PATCH 5/5] Don't share contexts --- submodules/TelegramCore/Sources/Network.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/TelegramCore/Sources/Network.swift b/submodules/TelegramCore/Sources/Network.swift index 4e7a4a2c60..07355983ed 100644 --- a/submodules/TelegramCore/Sources/Network.swift +++ b/submodules/TelegramCore/Sources/Network.swift @@ -479,7 +479,7 @@ func initializedNetwork(accountId: AccountRecordId, arguments: NetworkInitializa let key = SharedContextStore.Key(accountId: accountId) let context: MTContext - if let current = store.contexts[key] { + if false, let current = store.contexts[key] { context = current context.updateApiEnvironment({ _ in return apiEnvironment}) } else {