diff --git a/submodules/SyncCore/Sources/PeerStatusSettings.swift b/submodules/SyncCore/Sources/PeerStatusSettings.swift index 32ae3a899a..6e1d8e24ca 100644 --- a/submodules/SyncCore/Sources/PeerStatusSettings.swift +++ b/submodules/SyncCore/Sources/PeerStatusSettings.swift @@ -15,6 +15,7 @@ public struct PeerStatusSettings: PostboxCoding, Equatable { public static let addExceptionWhenAddingContact = Flags(rawValue: 1 << 5) public static let canReportIrrelevantGeoLocation = Flags(rawValue: 1 << 6) public static let autoArchived = Flags(rawValue: 1 << 7) + public static let suggestAddMembers = Flags(rawValue: 1 << 8) } diff --git a/submodules/TelegramCore/Sources/InvitationLinks.swift b/submodules/TelegramCore/Sources/InvitationLinks.swift index e138b24fdc..cdf3a2ac0e 100644 --- a/submodules/TelegramCore/Sources/InvitationLinks.swift +++ b/submodules/TelegramCore/Sources/InvitationLinks.swift @@ -361,10 +361,10 @@ private final class PeerExportedInvitationsContextImpl { var lastResult = self.results.last if self.forceUpdate { + self.populateCache = true self.forceUpdate = false lastResult = nil - } - if !self.forceUpdate && self.loadedFromCache { + } else if self.loadedFromCache { self.populateCache = false self.loadedFromCache = false } diff --git a/submodules/TelegramCore/Sources/PeerAdmins.swift b/submodules/TelegramCore/Sources/PeerAdmins.swift index 3ddfdf6dad..c3d83eb21f 100644 --- a/submodules/TelegramCore/Sources/PeerAdmins.swift +++ b/submodules/TelegramCore/Sources/PeerAdmins.swift @@ -55,6 +55,7 @@ public func removeGroupAdmin(account: Account, peerId: PeerId, adminId: PeerId) public enum AddGroupAdminError { case generic case addMemberError(AddGroupMemberError) + case adminsTooMuch } public func addGroupAdmin(account: Account, peerId: PeerId, adminId: PeerId) -> Signal { @@ -79,6 +80,8 @@ public func addGroupAdmin(account: Account, peerId: PeerId, adminId: PeerId) -> ) } else if error.errorDescription == "USER_PRIVACY_RESTRICTED" { return .fail(.addMemberError(.privacy)) + } else if error.errorDescription == "ADMINS_TOO_MUCH" { + return .fail(.adminsTooMuch) } return .fail(.generic) } @@ -121,6 +124,7 @@ public func addGroupAdmin(account: Account, peerId: PeerId, adminId: PeerId) -> public enum UpdateChannelAdminRightsError { case generic case addMemberError(AddChannelMemberError) + case adminsTooMuch } public func fetchChannelParticipant(account: Account, peerId: PeerId, participantId: PeerId) -> Signal { @@ -203,6 +207,8 @@ public func updateChannelAdminRights(account: Account, peerId: PeerId, adminId: return .fail(.addMemberError(.restricted)) } else if error.errorDescription == "USER_CHANNELS_TOO_MUCH" { return .fail(.addMemberError(.tooMuchJoined)) + } else if error.errorDescription == "ADMINS_TOO_MUCH" { + return .fail(.adminsTooMuch) } return .fail(.generic) } diff --git a/submodules/TelegramCore/Sources/PeerContactSettings.swift b/submodules/TelegramCore/Sources/PeerContactSettings.swift index 787d4cc976..6bc742bd87 100644 --- a/submodules/TelegramCore/Sources/PeerContactSettings.swift +++ b/submodules/TelegramCore/Sources/PeerContactSettings.swift @@ -30,6 +30,9 @@ extension PeerStatusSettings { if (flags & (1 << 7)) != 0 { result.insert(.autoArchived) } + if (flags & (1 << 8)) != 0 { + result.insert(.suggestAddMembers) + } self = PeerStatusSettings(flags: result, geoDistance: geoDistance) } }