From c9bd0ab7255691ccdb8cfcb0f5ee9c300b2272b3 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Mon, 16 May 2022 12:20:31 +0300 Subject: [PATCH] Replaced MTP types with type aliases for shared media api. --- Telegram/CMakeLists.txt | 4 ++-- Telegram/SourceFiles/apiwrap.cpp | 20 +++++++++---------- Telegram/SourceFiles/apiwrap.h | 6 +++--- .../data/data_search_controller.cpp | 9 +++++---- .../SourceFiles/data/data_search_controller.h | 8 +++++--- 5 files changed, 24 insertions(+), 23 deletions(-) diff --git a/Telegram/CMakeLists.txt b/Telegram/CMakeLists.txt index 65075973da..40817933d3 100644 --- a/Telegram/CMakeLists.txt +++ b/Telegram/CMakeLists.txt @@ -477,8 +477,8 @@ PRIVATE data/data_media_rotation.h data/data_media_types.cpp data/data_media_types.h - data/data_messages.cpp - data/data_messages.h + # data/data_messages.cpp + # data/data_messages.h data/data_message_reactions.cpp data/data_message_reactions.h data/data_msg_id.h diff --git a/Telegram/SourceFiles/apiwrap.cpp b/Telegram/SourceFiles/apiwrap.cpp index 65e7e3d96d..18ae932780 100644 --- a/Telegram/SourceFiles/apiwrap.cpp +++ b/Telegram/SourceFiles/apiwrap.cpp @@ -2906,10 +2906,16 @@ void ApiWrap::requestSharedMedia( histories.sendRequest(history, requestType, [=](Fn finish) { return request( std::move(*prepared) - ).done([=](const MTPmessages_Messages &result) { + ).done([=](const Api::SearchRequestResult &result) { const auto key = std::make_tuple(peer, type, messageId, slice); _sharedMediaRequests.remove(key); - sharedMediaDone(peer, type, messageId, slice, result); + auto parsed = Api::ParseSearchResult( + peer, + type, + messageId, + slice, + result); + sharedMediaDone(peer, type, std::move(parsed)); finish(); }).fail([=] { _sharedMediaRequests.remove(key); @@ -2922,15 +2928,7 @@ void ApiWrap::requestSharedMedia( void ApiWrap::sharedMediaDone( not_null peer, SharedMediaType type, - MsgId messageId, - SliceType slice, - const MTPmessages_Messages &result) { - auto parsed = Api::ParseSearchResult( - peer, - type, - messageId, - slice, - result); + Api::SearchResult &&parsed) { _session->storage().add(Storage::SharedMediaAddSlice( peer->id, type, diff --git a/Telegram/SourceFiles/apiwrap.h b/Telegram/SourceFiles/apiwrap.h index ab234b19c0..be4b9f1c4e 100644 --- a/Telegram/SourceFiles/apiwrap.h +++ b/Telegram/SourceFiles/apiwrap.h @@ -53,6 +53,8 @@ struct PreparedList; namespace Api { +struct SearchResult; + class Updates; class Authorizations; class AttachedStickers; @@ -450,9 +452,7 @@ private: void sharedMediaDone( not_null peer, SharedMediaType type, - MsgId messageId, - SliceType slice, - const MTPmessages_Messages &result); + Api::SearchResult &&parsed); void sendSharedContact( const QString &phone, diff --git a/Telegram/SourceFiles/data/data_search_controller.cpp b/Telegram/SourceFiles/data/data_search_controller.cpp index 76c2182f02..6dc598e497 100644 --- a/Telegram/SourceFiles/data/data_search_controller.cpp +++ b/Telegram/SourceFiles/data/data_search_controller.cpp @@ -20,11 +20,12 @@ namespace Api { namespace { constexpr auto kSharedMediaLimit = 100; +constexpr auto kFirstSharedMediaLimit = 0; constexpr auto kDefaultSearchTimeoutMs = crl::time(200); } // namespace -std::optional PrepareSearchRequest( +std::optional PrepareSearchRequest( not_null peer, Storage::SharedMediaType type, const QString &query, @@ -66,7 +67,7 @@ std::optional PrepareSearchRequest( const auto minId = 0; const auto maxId = 0; - const auto limit = messageId ? kSharedMediaLimit : 0; + const auto limit = messageId ? kSharedMediaLimit : kFirstSharedMediaLimit; const auto offsetId = [&] { switch (direction) { case Data::LoadDirection::Before: @@ -111,7 +112,7 @@ SearchResult ParseSearchResult( Storage::SharedMediaType type, MsgId messageId, Data::LoadDirection direction, - const MTPmessages_Messages &data) { + const SearchRequestResult &data) { auto result = SearchResult(); result.noSkipRange = MsgRange{ messageId, messageId }; @@ -382,7 +383,7 @@ void SearchController::requestMore( auto requestId = histories.sendRequest(history, type, [=](Fn finish) { return _session->api().request( std::move(*prepared) - ).done([=](const MTPmessages_Messages &result) { + ).done([=](const SearchRequestResult &result) { listData->requests.remove(key); auto parsed = ParseSearchResult( listData->peer, diff --git a/Telegram/SourceFiles/data/data_search_controller.h b/Telegram/SourceFiles/data/data_search_controller.h index ba98c1af42..27f0904d29 100644 --- a/Telegram/SourceFiles/data/data_search_controller.h +++ b/Telegram/SourceFiles/data/data_search_controller.h @@ -7,7 +7,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #pragma once -#include "mtproto/sender.h" #include "data/data_sparse_ids.h" #include "storage/storage_sparse_ids_list.h" #include "storage/storage_shared_media.h" @@ -30,7 +29,10 @@ struct SearchResult { int fullCount = 0; }; -std::optional PrepareSearchRequest( +using SearchRequest = MTPmessages_Search; +using SearchRequestResult = MTPmessages_Messages; + +std::optional PrepareSearchRequest( not_null peer, Storage::SharedMediaType type, const QString &query, @@ -42,7 +44,7 @@ SearchResult ParseSearchResult( Storage::SharedMediaType type, MsgId messageId, Data::LoadDirection direction, - const MTPmessages_Messages &data); + const SearchRequestResult &data); class SearchController final { public: