diff --git a/submodules/TelegramCore/Sources/State/AccountStateManagementUtils.swift b/submodules/TelegramCore/Sources/State/AccountStateManagementUtils.swift index b2b16fb876..8c8bd96131 100644 --- a/submodules/TelegramCore/Sources/State/AccountStateManagementUtils.swift +++ b/submodules/TelegramCore/Sources/State/AccountStateManagementUtils.swift @@ -3405,8 +3405,8 @@ func replayFinalState( for (space, _) in holesAtHistoryStart { transaction.removeHole(peerId: chatPeerId, threadId: nil, namespace: Namespaces.Message.Cloud, space: space, range: 1 ... id.id) } - case let .setChatWallpaper(wallpaper): - if chatPeerId == accountPeerId { + case let .setChatWallpaper(wallpaper), let .setSameChatWallpaper(wallpaper): + if message.authorId == accountPeerId { transaction.updatePeerCachedData(peerIds: [message.id.peerId], update: { peerId, current in var current = current if current == nil { diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Themes/ChatThemes.swift b/submodules/TelegramCore/Sources/TelegramEngine/Themes/ChatThemes.swift index 4a78cf87ad..f7be6abafd 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Themes/ChatThemes.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Themes/ChatThemes.swift @@ -140,11 +140,11 @@ func _internal_setChatWallpaper(account: Account, peerId: PeerId, wallpaper: Tel var inputSettings: Api.WallPaperSettings? if let inputWallpaperAndInputSettings = wallpaper?.apiInputWallpaperAndSettings { flags |= 1 << 0 - + flags |= 1 << 2 inputWallpaper = inputWallpaperAndInputSettings.0 inputSettings = inputWallpaperAndInputSettings.1 } - return account.network.request(Api.functions.messages.setChatWallPaper(flags: flags, peer: inputPeer, wallpaper: inputWallpaper, settings: inputSettings, id: nil)) + return account.network.request(Api.functions.messages.setChatWallPaper(flags: flags, peer: inputPeer, wallpaper: inputWallpaper, settings: inputSettings, id: nil), automaticFloodWait: false) |> `catch` { error in return .complete() } @@ -160,7 +160,7 @@ public enum SetExistingChatWallpaperError { case generic } -func _internal_setExistingChatWallpaper(account: Account, messageId: MessageId, wallpaper: TelegramWallpaper?) -> Signal { +func _internal_setExistingChatWallpaper(account: Account, messageId: MessageId, settings: WallpaperSettings?) -> Signal { return account.postbox.transaction { transaction -> Peer? in if let peer = transaction.getPeer(messageId.peerId), let message = transaction.getMessage(messageId) { if let action = message.media.first(where: { $0 is TelegramMediaAction }) as? TelegramMediaAction, case let .setChatWallpaper(wallpaper) = action.action { @@ -185,11 +185,11 @@ func _internal_setExistingChatWallpaper(account: Account, messageId: MessageId, var flags: Int32 = 1 << 1 var inputSettings: Api.WallPaperSettings? - if let inputWallpaperAndInputSettings = wallpaper?.apiInputWallpaperAndSettings { + if let settings = settings { flags |= 1 << 2 - inputSettings = inputWallpaperAndInputSettings.1 + inputSettings = apiWallpaperSettings(settings) } - return account.network.request(Api.functions.messages.setChatWallPaper(flags: flags, peer: inputPeer, wallpaper: nil, settings: inputSettings, id: messageId.id)) + return account.network.request(Api.functions.messages.setChatWallPaper(flags: flags, peer: inputPeer, wallpaper: nil, settings: inputSettings, id: messageId.id), automaticFloodWait: false) |> `catch` { _ -> Signal in return .fail(.generic) } diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Themes/TelegramEngineThemes.swift b/submodules/TelegramCore/Sources/TelegramEngine/Themes/TelegramEngineThemes.swift index d444f1edce..3e60af86f6 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Themes/TelegramEngineThemes.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Themes/TelegramEngineThemes.swift @@ -21,8 +21,8 @@ public extension TelegramEngine { return _internal_setChatWallpaper(account: self.account, peerId: peerId, wallpaper: wallpaper) } - public func setExistingChatWallpaper(messageId: MessageId, wallpaper: TelegramWallpaper?) -> Signal { - return _internal_setExistingChatWallpaper(account: self.account, messageId: messageId, wallpaper: wallpaper) + public func setExistingChatWallpaper(messageId: MessageId, settings: WallpaperSettings?) -> Signal { + return _internal_setExistingChatWallpaper(account: self.account, messageId: messageId, settings: settings) } } }