Replaced MTP types with type aliases for shared media api.
This commit is contained in:
parent
7727cd734e
commit
c9bd0ab725
|
@ -477,8 +477,8 @@ PRIVATE
|
||||||
data/data_media_rotation.h
|
data/data_media_rotation.h
|
||||||
data/data_media_types.cpp
|
data/data_media_types.cpp
|
||||||
data/data_media_types.h
|
data/data_media_types.h
|
||||||
data/data_messages.cpp
|
# data/data_messages.cpp
|
||||||
data/data_messages.h
|
# data/data_messages.h
|
||||||
data/data_message_reactions.cpp
|
data/data_message_reactions.cpp
|
||||||
data/data_message_reactions.h
|
data/data_message_reactions.h
|
||||||
data/data_msg_id.h
|
data/data_msg_id.h
|
||||||
|
|
|
@ -2906,10 +2906,16 @@ void ApiWrap::requestSharedMedia(
|
||||||
histories.sendRequest(history, requestType, [=](Fn<void()> finish) {
|
histories.sendRequest(history, requestType, [=](Fn<void()> finish) {
|
||||||
return request(
|
return request(
|
||||||
std::move(*prepared)
|
std::move(*prepared)
|
||||||
).done([=](const MTPmessages_Messages &result) {
|
).done([=](const Api::SearchRequestResult &result) {
|
||||||
const auto key = std::make_tuple(peer, type, messageId, slice);
|
const auto key = std::make_tuple(peer, type, messageId, slice);
|
||||||
_sharedMediaRequests.remove(key);
|
_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();
|
finish();
|
||||||
}).fail([=] {
|
}).fail([=] {
|
||||||
_sharedMediaRequests.remove(key);
|
_sharedMediaRequests.remove(key);
|
||||||
|
@ -2922,15 +2928,7 @@ void ApiWrap::requestSharedMedia(
|
||||||
void ApiWrap::sharedMediaDone(
|
void ApiWrap::sharedMediaDone(
|
||||||
not_null<PeerData*> peer,
|
not_null<PeerData*> peer,
|
||||||
SharedMediaType type,
|
SharedMediaType type,
|
||||||
MsgId messageId,
|
Api::SearchResult &&parsed) {
|
||||||
SliceType slice,
|
|
||||||
const MTPmessages_Messages &result) {
|
|
||||||
auto parsed = Api::ParseSearchResult(
|
|
||||||
peer,
|
|
||||||
type,
|
|
||||||
messageId,
|
|
||||||
slice,
|
|
||||||
result);
|
|
||||||
_session->storage().add(Storage::SharedMediaAddSlice(
|
_session->storage().add(Storage::SharedMediaAddSlice(
|
||||||
peer->id,
|
peer->id,
|
||||||
type,
|
type,
|
||||||
|
|
|
@ -53,6 +53,8 @@ struct PreparedList;
|
||||||
|
|
||||||
namespace Api {
|
namespace Api {
|
||||||
|
|
||||||
|
struct SearchResult;
|
||||||
|
|
||||||
class Updates;
|
class Updates;
|
||||||
class Authorizations;
|
class Authorizations;
|
||||||
class AttachedStickers;
|
class AttachedStickers;
|
||||||
|
@ -450,9 +452,7 @@ private:
|
||||||
void sharedMediaDone(
|
void sharedMediaDone(
|
||||||
not_null<PeerData*> peer,
|
not_null<PeerData*> peer,
|
||||||
SharedMediaType type,
|
SharedMediaType type,
|
||||||
MsgId messageId,
|
Api::SearchResult &&parsed);
|
||||||
SliceType slice,
|
|
||||||
const MTPmessages_Messages &result);
|
|
||||||
|
|
||||||
void sendSharedContact(
|
void sendSharedContact(
|
||||||
const QString &phone,
|
const QString &phone,
|
||||||
|
|
|
@ -20,11 +20,12 @@ namespace Api {
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
constexpr auto kSharedMediaLimit = 100;
|
constexpr auto kSharedMediaLimit = 100;
|
||||||
|
constexpr auto kFirstSharedMediaLimit = 0;
|
||||||
constexpr auto kDefaultSearchTimeoutMs = crl::time(200);
|
constexpr auto kDefaultSearchTimeoutMs = crl::time(200);
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
std::optional<MTPmessages_Search> PrepareSearchRequest(
|
std::optional<SearchRequest> PrepareSearchRequest(
|
||||||
not_null<PeerData*> peer,
|
not_null<PeerData*> peer,
|
||||||
Storage::SharedMediaType type,
|
Storage::SharedMediaType type,
|
||||||
const QString &query,
|
const QString &query,
|
||||||
|
@ -66,7 +67,7 @@ std::optional<MTPmessages_Search> PrepareSearchRequest(
|
||||||
|
|
||||||
const auto minId = 0;
|
const auto minId = 0;
|
||||||
const auto maxId = 0;
|
const auto maxId = 0;
|
||||||
const auto limit = messageId ? kSharedMediaLimit : 0;
|
const auto limit = messageId ? kSharedMediaLimit : kFirstSharedMediaLimit;
|
||||||
const auto offsetId = [&] {
|
const auto offsetId = [&] {
|
||||||
switch (direction) {
|
switch (direction) {
|
||||||
case Data::LoadDirection::Before:
|
case Data::LoadDirection::Before:
|
||||||
|
@ -111,7 +112,7 @@ SearchResult ParseSearchResult(
|
||||||
Storage::SharedMediaType type,
|
Storage::SharedMediaType type,
|
||||||
MsgId messageId,
|
MsgId messageId,
|
||||||
Data::LoadDirection direction,
|
Data::LoadDirection direction,
|
||||||
const MTPmessages_Messages &data) {
|
const SearchRequestResult &data) {
|
||||||
auto result = SearchResult();
|
auto result = SearchResult();
|
||||||
result.noSkipRange = MsgRange{ messageId, messageId };
|
result.noSkipRange = MsgRange{ messageId, messageId };
|
||||||
|
|
||||||
|
@ -382,7 +383,7 @@ void SearchController::requestMore(
|
||||||
auto requestId = histories.sendRequest(history, type, [=](Fn<void()> finish) {
|
auto requestId = histories.sendRequest(history, type, [=](Fn<void()> finish) {
|
||||||
return _session->api().request(
|
return _session->api().request(
|
||||||
std::move(*prepared)
|
std::move(*prepared)
|
||||||
).done([=](const MTPmessages_Messages &result) {
|
).done([=](const SearchRequestResult &result) {
|
||||||
listData->requests.remove(key);
|
listData->requests.remove(key);
|
||||||
auto parsed = ParseSearchResult(
|
auto parsed = ParseSearchResult(
|
||||||
listData->peer,
|
listData->peer,
|
||||||
|
|
|
@ -7,7 +7,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "mtproto/sender.h"
|
|
||||||
#include "data/data_sparse_ids.h"
|
#include "data/data_sparse_ids.h"
|
||||||
#include "storage/storage_sparse_ids_list.h"
|
#include "storage/storage_sparse_ids_list.h"
|
||||||
#include "storage/storage_shared_media.h"
|
#include "storage/storage_shared_media.h"
|
||||||
|
@ -30,7 +29,10 @@ struct SearchResult {
|
||||||
int fullCount = 0;
|
int fullCount = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
std::optional<MTPmessages_Search> PrepareSearchRequest(
|
using SearchRequest = MTPmessages_Search;
|
||||||
|
using SearchRequestResult = MTPmessages_Messages;
|
||||||
|
|
||||||
|
std::optional<SearchRequest> PrepareSearchRequest(
|
||||||
not_null<PeerData*> peer,
|
not_null<PeerData*> peer,
|
||||||
Storage::SharedMediaType type,
|
Storage::SharedMediaType type,
|
||||||
const QString &query,
|
const QString &query,
|
||||||
|
@ -42,7 +44,7 @@ SearchResult ParseSearchResult(
|
||||||
Storage::SharedMediaType type,
|
Storage::SharedMediaType type,
|
||||||
MsgId messageId,
|
MsgId messageId,
|
||||||
Data::LoadDirection direction,
|
Data::LoadDirection direction,
|
||||||
const MTPmessages_Messages &data);
|
const SearchRequestResult &data);
|
||||||
|
|
||||||
class SearchController final {
|
class SearchController final {
|
||||||
public:
|
public:
|
||||||
|
|
Loading…
Reference in New Issue