Replaced MTP types with type aliases for shared media api.

This commit is contained in:
23rd 2022-05-16 12:20:31 +03:00 committed by John Preston
parent 7727cd734e
commit c9bd0ab725
5 changed files with 24 additions and 23 deletions

View File

@ -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

View File

@ -2906,10 +2906,16 @@ void ApiWrap::requestSharedMedia(
histories.sendRequest(history, requestType, [=](Fn<void()> 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<PeerData*> 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,

View File

@ -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<PeerData*> peer,
SharedMediaType type,
MsgId messageId,
SliceType slice,
const MTPmessages_Messages &result);
Api::SearchResult &&parsed);
void sendSharedContact(
const QString &phone,

View File

@ -20,11 +20,12 @@ namespace Api {
namespace {
constexpr auto kSharedMediaLimit = 100;
constexpr auto kFirstSharedMediaLimit = 0;
constexpr auto kDefaultSearchTimeoutMs = crl::time(200);
} // namespace
std::optional<MTPmessages_Search> PrepareSearchRequest(
std::optional<SearchRequest> PrepareSearchRequest(
not_null<PeerData*> peer,
Storage::SharedMediaType type,
const QString &query,
@ -66,7 +67,7 @@ std::optional<MTPmessages_Search> 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<void()> 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,

View File

@ -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<MTPmessages_Search> PrepareSearchRequest(
using SearchRequest = MTPmessages_Search;
using SearchRequestResult = MTPmessages_Messages;
std::optional<SearchRequest> PrepareSearchRequest(
not_null<PeerData*> 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: