From eca4dc894853024586d3e97ca78e05f2c35c9f50 Mon Sep 17 00:00:00 2001 From: levlam Date: Mon, 21 Jan 2019 21:25:30 +0300 Subject: [PATCH] Create wallpapers file source. GitOrigin-RevId: f890a2191a412cbf15aecac6b054bfdbf52fd3ab --- td/telegram/WallpaperManager.cpp | 11 +++++++++++ td/telegram/WallpaperManager.h | 4 ++++ 2 files changed, 15 insertions(+) diff --git a/td/telegram/WallpaperManager.cpp b/td/telegram/WallpaperManager.cpp index 1c803cff..4a28b6b4 100644 --- a/td/telegram/WallpaperManager.cpp +++ b/td/telegram/WallpaperManager.cpp @@ -10,6 +10,8 @@ #include "td/telegram/telegram_api.h" #include "td/telegram/DialogId.h" +#include "td/telegram/FileReferenceManager.h" +#include "td/telegram/files/FileManager.h" #include "td/telegram/files/FileType.h" #include "td/telegram/Global.h" #include "td/telegram/Photo.h" @@ -110,6 +112,15 @@ void WallpaperManager::on_get_wallpapers(Result new_file_ids; + for (auto &wallpaper : wallpapers_) { + append(new_file_ids, transform(wallpaper.sizes, [](auto &size) { return size.file_id; })); + }; + if (!wallpaper_source_id_.is_valid()) { + wallpaper_source_id_ = td_->file_reference_manager_->create_wallpapers_file_source(); + } + td_->file_manager_->change_files_source(wallpaper_source_id_, wallpaper_file_ids_, new_file_ids); + wallpaper_file_ids_ = std::move(new_file_ids); for (auto &promise : promises) { promise.set_value(Unit()); diff --git a/td/telegram/WallpaperManager.h b/td/telegram/WallpaperManager.h index ba25e180..408d3cce 100644 --- a/td/telegram/WallpaperManager.h +++ b/td/telegram/WallpaperManager.h @@ -6,6 +6,8 @@ // #pragma once +#include "td/telegram/files/FileId.h" +#include "td/telegram/files/FileSourceId.h" #include "td/telegram/Photo.h" #include "td/telegram/td_api.h" #include "td/telegram/telegram_api.h" @@ -43,6 +45,8 @@ class WallpaperManager : public Actor { } }; vector wallpapers_; + vector wallpaper_file_ids_; + FileSourceId wallpaper_source_id_; vector> pending_get_wallpapers_queries_;