aboutsummaryrefslogtreecommitdiffhomepage
path: root/td/telegram/FileReferenceManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'td/telegram/FileReferenceManager.cpp')
-rw-r--r--td/telegram/FileReferenceManager.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/td/telegram/FileReferenceManager.cpp b/td/telegram/FileReferenceManager.cpp
index e46b3d578..f54166a10 100644
--- a/td/telegram/FileReferenceManager.cpp
+++ b/td/telegram/FileReferenceManager.cpp
@@ -12,6 +12,8 @@
#include "td/telegram/BackgroundManager.h"
#include "td/telegram/BotInfoManager.h"
#include "td/telegram/ChatManager.h"
+#include "td/telegram/CommunityId.h"
+#include "td/telegram/CommunityManager.h"
#include "td/telegram/ConfigManager.h"
#include "td/telegram/DialogManager.h"
#include "td/telegram/DraftMessageManager.h"
@@ -648,9 +650,18 @@ void FileReferenceManager::reload_photo(PhotoSizeSource source, Promise<Unit> pr
case PhotoSizeSource::Type::DialogPhotoBig:
case PhotoSizeSource::Type::DialogPhotoSmall:
case PhotoSizeSource::Type::DialogPhotoBigLegacy:
- case PhotoSizeSource::Type::DialogPhotoSmallLegacy:
- td_->dialog_manager_->reload_dialog_info(source.dialog_photo().dialog_id, std::move(promise));
+ case PhotoSizeSource::Type::DialogPhotoSmallLegacy: {
+ auto dialog_id = source.dialog_photo().dialog_id;
+ if (dialog_id.get_type() == DialogType::Channel) {
+ auto channel_id = dialog_id.get_channel_id();
+ if (!channel_id.is_regular_channel()) {
+ td_->community_manager_->reload_community(CommunityId(channel_id.get()), std::move(promise), "reload_photo");
+ break;
+ }
+ }
+ td_->dialog_manager_->reload_dialog_info(dialog_id, std::move(promise));
break;
+ }
case PhotoSizeSource::Type::StickerSetThumbnail:
case PhotoSizeSource::Type::StickerSetThumbnailLegacy:
case PhotoSizeSource::Type::StickerSetThumbnailVersion: