diff --git a/submodules/PremiumUI/Sources/PremiumIntroScreen.swift b/submodules/PremiumUI/Sources/PremiumIntroScreen.swift index d19d22056d..4fbb8215e0 100644 --- a/submodules/PremiumUI/Sources/PremiumIntroScreen.swift +++ b/submodules/PremiumUI/Sources/PremiumIntroScreen.swift @@ -172,6 +172,18 @@ public enum PremiumSource: Equatable { } else { return false } + case .linksPerSharedFolder: + if case .linksPerSharedFolder = rhs { + return true + } else { + return false + } + case .membershipInSharedFolders: + if case .membershipInSharedFolders = rhs { + return true + } else { + return false + } } } @@ -199,6 +211,8 @@ public enum PremiumSource: Equatable { case voiceToText case fasterDownload case translation + case linksPerSharedFolder + case membershipInSharedFolders var identifier: String? { switch self { @@ -252,6 +266,10 @@ public enum PremiumSource: Equatable { } case .translation: return "translations" + case .linksPerSharedFolder: + return "double_limits__community_invites" + case .membershipInSharedFolders: + return "double_limits__communities_joined" } } } diff --git a/submodules/TelegramApi/Sources/Api0.swift b/submodules/TelegramApi/Sources/Api0.swift index cb6f63302f..06768f64d7 100644 --- a/submodules/TelegramApi/Sources/Api0.swift +++ b/submodules/TelegramApi/Sources/Api0.swift @@ -998,7 +998,7 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = { dict[-266911767] = { return Api.channels.ChannelParticipants.parse_channelParticipantsNotModified($0) } dict[-191450938] = { return Api.channels.SendAsPeers.parse_sendAsPeers($0) } dict[-557919187] = { return Api.communities.CommunityInvite.parse_communityInvite($0) } - dict[-1997845037] = { return Api.communities.CommunityInvite.parse_communityInviteAlready($0) } + dict[-951718393] = { return Api.communities.CommunityInvite.parse_communityInviteAlready($0) } dict[-414818125] = { return Api.communities.CommunityUpdates.parse_communityUpdates($0) } dict[1805101290] = { return Api.communities.ExportedCommunityInvite.parse_exportedCommunityInvite($0) } dict[-2662489] = { return Api.communities.ExportedInvites.parse_exportedInvites($0) } diff --git a/submodules/TelegramApi/Sources/Api24.swift b/submodules/TelegramApi/Sources/Api24.swift index f1e79bb3ef..3327f46126 100644 --- a/submodules/TelegramApi/Sources/Api24.swift +++ b/submodules/TelegramApi/Sources/Api24.swift @@ -897,7 +897,7 @@ public extension Api.channels { public extension Api.communities { enum CommunityInvite: TypeConstructorDescription { case communityInvite(title: String, peers: [Api.Peer], chats: [Api.Chat], users: [Api.User]) - case communityInviteAlready(filterId: Int32, missingPeers: [Api.Peer], chats: [Api.Chat], users: [Api.User]) + case communityInviteAlready(filterId: Int32, missingPeers: [Api.Peer], alreadyPeers: [Api.Peer], chats: [Api.Chat], users: [Api.User]) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { switch self { @@ -922,9 +922,9 @@ public extension Api.communities { item.serialize(buffer, true) } break - case .communityInviteAlready(let filterId, let missingPeers, let chats, let users): + case .communityInviteAlready(let filterId, let missingPeers, let alreadyPeers, let chats, let users): if boxed { - buffer.appendInt32(-1997845037) + buffer.appendInt32(-951718393) } serializeInt32(filterId, buffer: buffer, boxed: false) buffer.appendInt32(481674261) @@ -933,6 +933,11 @@ public extension Api.communities { item.serialize(buffer, true) } buffer.appendInt32(481674261) + buffer.appendInt32(Int32(alreadyPeers.count)) + for item in alreadyPeers { + item.serialize(buffer, true) + } + buffer.appendInt32(481674261) buffer.appendInt32(Int32(chats.count)) for item in chats { item.serialize(buffer, true) @@ -950,8 +955,8 @@ public extension Api.communities { switch self { case .communityInvite(let title, let peers, let chats, let users): return ("communityInvite", [("title", title as Any), ("peers", peers as Any), ("chats", chats as Any), ("users", users as Any)]) - case .communityInviteAlready(let filterId, let missingPeers, let chats, let users): - return ("communityInviteAlready", [("filterId", filterId as Any), ("missingPeers", missingPeers as Any), ("chats", chats as Any), ("users", users as Any)]) + case .communityInviteAlready(let filterId, let missingPeers, let alreadyPeers, let chats, let users): + return ("communityInviteAlready", [("filterId", filterId as Any), ("missingPeers", missingPeers as Any), ("alreadyPeers", alreadyPeers as Any), ("chats", chats as Any), ("users", users as Any)]) } } @@ -988,20 +993,25 @@ public extension Api.communities { if let _ = reader.readInt32() { _2 = Api.parseVector(reader, elementSignature: 0, elementType: Api.Peer.self) } - var _3: [Api.Chat]? + var _3: [Api.Peer]? if let _ = reader.readInt32() { - _3 = Api.parseVector(reader, elementSignature: 0, elementType: Api.Chat.self) + _3 = Api.parseVector(reader, elementSignature: 0, elementType: Api.Peer.self) } - var _4: [Api.User]? + var _4: [Api.Chat]? if let _ = reader.readInt32() { - _4 = Api.parseVector(reader, elementSignature: 0, elementType: Api.User.self) + _4 = Api.parseVector(reader, elementSignature: 0, elementType: Api.Chat.self) + } + var _5: [Api.User]? + if let _ = reader.readInt32() { + _5 = Api.parseVector(reader, elementSignature: 0, elementType: Api.User.self) } let _c1 = _1 != nil let _c2 = _2 != nil let _c3 = _3 != nil let _c4 = _4 != nil - if _c1 && _c2 && _c3 && _c4 { - return Api.communities.CommunityInvite.communityInviteAlready(filterId: _1!, missingPeers: _2!, chats: _3!, users: _4!) + let _c5 = _5 != nil + if _c1 && _c2 && _c3 && _c4 && _c5 { + return Api.communities.CommunityInvite.communityInviteAlready(filterId: _1!, missingPeers: _2!, alreadyPeers: _3!, chats: _4!, users: _5!) } else { return nil diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Peers/Communities.swift b/submodules/TelegramCore/Sources/TelegramEngine/Peers/Communities.swift index f98f220a58..cf31dece8b 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Peers/Communities.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Peers/Communities.swift @@ -280,7 +280,9 @@ func _internal_checkChatFolderLink(account: Account, slug: String) -> Signal