mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-15 21:57:10 +02:00
Don't pass redundant MTPUpdates arguments.
This commit is contained in:
parent
d891a5344a
commit
b7cc2e9894
8 changed files with 78 additions and 60 deletions
|
@ -27,13 +27,19 @@ using namespace rpl::details;
|
|||
|
||||
template <typename T>
|
||||
constexpr auto WithId =
|
||||
is_callable_plain_v<T, const MTPUpdates &, Fn<void()>, mtpRequestId>;
|
||||
is_callable_plain_v<T, Fn<void()>, mtpRequestId>;
|
||||
template <typename T>
|
||||
constexpr auto WithoutId =
|
||||
is_callable_plain_v<T, const MTPUpdates &, Fn<void()>>;
|
||||
is_callable_plain_v<T, Fn<void()>>;
|
||||
template <typename T>
|
||||
constexpr auto WithoutCallback =
|
||||
is_callable_plain_v<T, const MTPUpdates &>;
|
||||
is_callable_plain_v<T>;
|
||||
template <typename T>
|
||||
constexpr auto ErrorWithId =
|
||||
is_callable_plain_v<T, QString, mtpRequestId>;
|
||||
template <typename T>
|
||||
constexpr auto ErrorWithoutId =
|
||||
is_callable_plain_v<T, QString>;
|
||||
|
||||
template <typename DoneCallback, typename FailCallback>
|
||||
mtpRequestId EditMessage(
|
||||
|
@ -93,22 +99,30 @@ mtpRequestId EditMessage(
|
|||
const auto apply = [=] { api->applyUpdates(result); };
|
||||
|
||||
if constexpr (WithId<DoneCallback>) {
|
||||
done(result, apply, requestId);
|
||||
done(apply, requestId);
|
||||
} else if constexpr (WithoutId<DoneCallback>) {
|
||||
done(result, apply);
|
||||
done(apply);
|
||||
} else if constexpr (WithoutCallback<DoneCallback>) {
|
||||
done(result);
|
||||
done();
|
||||
apply();
|
||||
} else {
|
||||
apply();
|
||||
t_bad_callback(done);
|
||||
}
|
||||
|
||||
if (updateRecentStickers) {
|
||||
api->requestRecentStickersForce(true);
|
||||
}
|
||||
}).fail(
|
||||
fail
|
||||
).send();
|
||||
}).fail([=](const MTP::Error &error, mtpRequestId requestId) {
|
||||
if constexpr (ErrorWithId<FailCallback>) {
|
||||
fail(error.type(), requestId);
|
||||
} else if constexpr (ErrorWithoutId<FailCallback>) {
|
||||
fail(error.type());
|
||||
} else if constexpr (WithoutCallback<FailCallback>) {
|
||||
fail();
|
||||
} else {
|
||||
t_bad_callback(fail);
|
||||
}
|
||||
}).send();
|
||||
}
|
||||
|
||||
template <typename DoneCallback, typename FailCallback>
|
||||
|
@ -132,7 +146,7 @@ void EditMessageWithUploadedMedia(
|
|||
not_null<HistoryItem*> item,
|
||||
SendOptions options,
|
||||
MTPInputMedia media) {
|
||||
const auto done = [=](const auto &result, Fn<void()> applyUpdates) {
|
||||
const auto done = [=](Fn<void()> applyUpdates) {
|
||||
if (item) {
|
||||
item->clearSavedMedia();
|
||||
item->setIsLocalUpdateMedia(true);
|
||||
|
@ -140,11 +154,10 @@ void EditMessageWithUploadedMedia(
|
|||
item->setIsLocalUpdateMedia(false);
|
||||
}
|
||||
};
|
||||
const auto fail = [=](const MTP::Error &error) {
|
||||
const auto err = error.type();
|
||||
const auto fail = [=](const QString &error) {
|
||||
const auto session = &item->history()->session();
|
||||
const auto notModified = (err == u"MESSAGE_NOT_MODIFIED"_q);
|
||||
const auto mediaInvalid = (err == u"MEDIA_NEW_INVALID"_q);
|
||||
const auto notModified = (error == u"MESSAGE_NOT_MODIFIED"_q);
|
||||
const auto mediaInvalid = (error == u"MEDIA_NEW_INVALID"_q);
|
||||
if (notModified || mediaInvalid) {
|
||||
item->returnSavedMedia();
|
||||
session->data().sendHistoryChangeNotifications();
|
||||
|
@ -200,8 +213,8 @@ mtpRequestId EditCaption(
|
|||
not_null<HistoryItem*> item,
|
||||
const TextWithEntities &caption,
|
||||
SendOptions options,
|
||||
Fn<void(const MTPUpdates &)> done,
|
||||
Fn<void(const MTP::Error &)> fail) {
|
||||
Fn<void()> done,
|
||||
Fn<void(const QString &)> fail) {
|
||||
return EditMessage(item, caption, options, done, fail);
|
||||
}
|
||||
|
||||
|
@ -209,17 +222,13 @@ mtpRequestId EditTextMessage(
|
|||
not_null<HistoryItem*> item,
|
||||
const TextWithEntities &caption,
|
||||
SendOptions options,
|
||||
Fn<void(const MTPUpdates &, mtpRequestId requestId)> done,
|
||||
Fn<void(const MTP::Error &, mtpRequestId requestId)> fail) {
|
||||
const auto callback = [=](
|
||||
const auto &result,
|
||||
Fn<void()> applyUpdates,
|
||||
auto id) {
|
||||
Fn<void(mtpRequestId requestId)> done,
|
||||
Fn<void(const QString &, mtpRequestId requestId)> fail) {
|
||||
const auto callback = [=](Fn<void()> applyUpdates, mtpRequestId id) {
|
||||
applyUpdates();
|
||||
done(result, id);
|
||||
done(id);
|
||||
};
|
||||
return EditMessage(item, caption, options, callback, fail);
|
||||
}
|
||||
|
||||
|
||||
} // namespace Api
|
||||
|
|
|
@ -42,14 +42,14 @@ mtpRequestId EditCaption(
|
|||
not_null<HistoryItem*> item,
|
||||
const TextWithEntities &caption,
|
||||
SendOptions options,
|
||||
Fn<void(const MTPUpdates &)> done,
|
||||
Fn<void(const MTP::Error &)> fail);
|
||||
Fn<void()> done,
|
||||
Fn<void(const QString &)> fail);
|
||||
|
||||
mtpRequestId EditTextMessage(
|
||||
not_null<HistoryItem*> item,
|
||||
const TextWithEntities &caption,
|
||||
SendOptions options,
|
||||
Fn<void(const MTPUpdates &, mtpRequestId requestId)> done,
|
||||
Fn<void(const MTP::Error &, mtpRequestId requestId)> fail);
|
||||
Fn<void(mtpRequestId requestId)> done,
|
||||
Fn<void(const QString &error, mtpRequestId requestId)> fail);
|
||||
|
||||
} // namespace Api
|
||||
|
|
|
@ -438,14 +438,22 @@ void ApiWrap::sendMessageFail(
|
|||
not_null<PeerData*> peer,
|
||||
uint64 randomId,
|
||||
FullMsgId itemId) {
|
||||
sendMessageFail(error.type(), peer, randomId, itemId);
|
||||
}
|
||||
|
||||
void ApiWrap::sendMessageFail(
|
||||
const QString &error,
|
||||
not_null<PeerData*> peer,
|
||||
uint64 randomId,
|
||||
FullMsgId itemId) {
|
||||
const auto show = ShowForPeer(peer);
|
||||
|
||||
if (error.type() == qstr("PEER_FLOOD")) {
|
||||
if (error == qstr("PEER_FLOOD")) {
|
||||
show->showBox(
|
||||
Ui::MakeInformBox(
|
||||
PeerFloodErrorText(&session(), PeerFloodType::Send)),
|
||||
Ui::LayerOption::CloseOther);
|
||||
} else if (error.type() == qstr("USER_BANNED_IN_CHANNEL")) {
|
||||
} else if (error == qstr("USER_BANNED_IN_CHANNEL")) {
|
||||
const auto link = Ui::Text::Link(
|
||||
tr::lng_cant_more_info(tr::now),
|
||||
session().createInternalLinkFull(qsl("spambot")));
|
||||
|
@ -457,9 +465,9 @@ void ApiWrap::sendMessageFail(
|
|||
link,
|
||||
Ui::Text::WithEntities)),
|
||||
Ui::LayerOption::CloseOther);
|
||||
} else if (error.type().startsWith(qstr("SLOWMODE_WAIT_"))) {
|
||||
} else if (error.startsWith(qstr("SLOWMODE_WAIT_"))) {
|
||||
const auto chop = qstr("SLOWMODE_WAIT_").size();
|
||||
const auto left = base::StringViewMid(error.type(), chop).toInt();
|
||||
const auto left = base::StringViewMid(error, chop).toInt();
|
||||
if (const auto channel = peer->asChannel()) {
|
||||
const auto seconds = channel->slowmodeSeconds();
|
||||
if (seconds >= left) {
|
||||
|
@ -469,7 +477,7 @@ void ApiWrap::sendMessageFail(
|
|||
requestFullPeer(peer);
|
||||
}
|
||||
}
|
||||
} else if (error.type() == qstr("SCHEDULE_STATUS_PRIVATE")) {
|
||||
} else if (error == qstr("SCHEDULE_STATUS_PRIVATE")) {
|
||||
auto &scheduled = _session->data().scheduledMessages();
|
||||
Assert(peer->isUser());
|
||||
if (const auto item = scheduled.lookupItem(peer->id, itemId.msg)) {
|
||||
|
@ -478,7 +486,7 @@ void ApiWrap::sendMessageFail(
|
|||
Ui::MakeInformBox(tr::lng_cant_do_this()),
|
||||
Ui::LayerOption::CloseOther);
|
||||
}
|
||||
} else if (error.type() == qstr("CHAT_FORWARDS_RESTRICTED")) {
|
||||
} else if (error == qstr("CHAT_FORWARDS_RESTRICTED")) {
|
||||
if (show->valid()) {
|
||||
Ui::ShowMultilineToast({
|
||||
.parentOverride = show->toastParent(),
|
||||
|
@ -489,7 +497,7 @@ void ApiWrap::sendMessageFail(
|
|||
.duration = kJoinErrorDuration
|
||||
});
|
||||
}
|
||||
} else if (error.type() == qstr("PREMIUM_ACCOUNT_REQUIRED")) {
|
||||
} else if (error == qstr("PREMIUM_ACCOUNT_REQUIRED")) {
|
||||
Settings::ShowPremium(&session(), "premium_stickers");
|
||||
}
|
||||
if (const auto item = _session->data().message(itemId)) {
|
||||
|
|
|
@ -343,6 +343,11 @@ public:
|
|||
not_null<PeerData*> peer,
|
||||
uint64 randomId = 0,
|
||||
FullMsgId itemId = FullMsgId());
|
||||
void sendMessageFail(
|
||||
const QString &error,
|
||||
not_null<PeerData*> peer,
|
||||
uint64 randomId = 0,
|
||||
FullMsgId itemId = FullMsgId());
|
||||
|
||||
void reloadContactSignupSilent();
|
||||
rpl::producer<bool> contactSignupSilent() const;
|
||||
|
|
|
@ -723,20 +723,19 @@ void EditCaptionBox::save() {
|
|||
return;
|
||||
}
|
||||
|
||||
const auto done = crl::guard(this, [=](const MTPUpdates &updates) {
|
||||
const auto done = crl::guard(this, [=] {
|
||||
_saveRequestId = 0;
|
||||
closeBox();
|
||||
});
|
||||
|
||||
const auto fail = crl::guard(this, [=](const MTP::Error &error) {
|
||||
const auto fail = crl::guard(this, [=](const QString &error) {
|
||||
_saveRequestId = 0;
|
||||
const auto &type = error.type();
|
||||
if (ranges::contains(Api::kDefaultEditMessagesErrors, type)) {
|
||||
if (ranges::contains(Api::kDefaultEditMessagesErrors, error)) {
|
||||
_error = tr::lng_edit_error(tr::now);
|
||||
update();
|
||||
} else if (type == u"MESSAGE_NOT_MODIFIED"_q) {
|
||||
} else if (error == u"MESSAGE_NOT_MODIFIED"_q) {
|
||||
closeBox();
|
||||
} else if (type == u"MESSAGE_EMPTY"_q) {
|
||||
} else if (error == u"MESSAGE_EMPTY"_q) {
|
||||
_field->setFocus();
|
||||
_field->showError();
|
||||
update();
|
||||
|
|
|
@ -3662,7 +3662,7 @@ void HistoryWidget::saveEditMsg() {
|
|||
const auto weak = Ui::MakeWeak(this);
|
||||
const auto history = _history;
|
||||
|
||||
const auto done = [=](const MTPUpdates &result, mtpRequestId requestId) {
|
||||
const auto done = [=](mtpRequestId requestId) {
|
||||
crl::guard(weak, [=] {
|
||||
if (requestId == _saveEditMsgRequestId) {
|
||||
_saveEditMsgRequestId = 0;
|
||||
|
@ -3677,7 +3677,7 @@ void HistoryWidget::saveEditMsg() {
|
|||
}
|
||||
};
|
||||
|
||||
const auto fail = [=](const MTP::Error &error, mtpRequestId requestId) {
|
||||
const auto fail = [=](const QString &error, mtpRequestId requestId) {
|
||||
if (const auto editDraft = history->localEditDraft()) {
|
||||
if (editDraft->saveRequestId == requestId) {
|
||||
editDraft->saveRequestId = 0;
|
||||
|
@ -3687,12 +3687,11 @@ void HistoryWidget::saveEditMsg() {
|
|||
if (requestId == _saveEditMsgRequestId) {
|
||||
_saveEditMsgRequestId = 0;
|
||||
}
|
||||
const auto &err = error.type();
|
||||
if (ranges::contains(Api::kDefaultEditMessagesErrors, err)) {
|
||||
if (ranges::contains(Api::kDefaultEditMessagesErrors, error)) {
|
||||
controller()->show(Ui::MakeInformBox(tr::lng_edit_error()));
|
||||
} else if (err == u"MESSAGE_NOT_MODIFIED"_q) {
|
||||
} else if (error == u"MESSAGE_NOT_MODIFIED"_q) {
|
||||
cancelEdit();
|
||||
} else if (err == u"MESSAGE_EMPTY"_q) {
|
||||
} else if (error == u"MESSAGE_EMPTY"_q) {
|
||||
_field->selectAll();
|
||||
_field->setFocus();
|
||||
} else {
|
||||
|
|
|
@ -1074,24 +1074,23 @@ void RepliesWidget::edit(
|
|||
session().api().request(base::take(*saveEditMsgRequestId)).cancel();
|
||||
});
|
||||
|
||||
const auto done = [=](const MTPUpdates &result, mtpRequestId requestId) {
|
||||
const auto done = [=](mtpRequestId requestId) {
|
||||
if (requestId == *saveEditMsgRequestId) {
|
||||
*saveEditMsgRequestId = 0;
|
||||
_composeControls->cancelEditMessage();
|
||||
}
|
||||
};
|
||||
|
||||
const auto fail = [=](const MTP::Error &error, mtpRequestId requestId) {
|
||||
const auto fail = [=](const QString &error, mtpRequestId requestId) {
|
||||
if (requestId == *saveEditMsgRequestId) {
|
||||
*saveEditMsgRequestId = 0;
|
||||
}
|
||||
|
||||
const auto &err = error.type();
|
||||
if (ranges::contains(Api::kDefaultEditMessagesErrors, err)) {
|
||||
if (ranges::contains(Api::kDefaultEditMessagesErrors, error)) {
|
||||
controller()->show(Ui::MakeInformBox(tr::lng_edit_error()));
|
||||
} else if (err == u"MESSAGE_NOT_MODIFIED"_q) {
|
||||
} else if (error == u"MESSAGE_NOT_MODIFIED"_q) {
|
||||
_composeControls->cancelEditMessage();
|
||||
} else if (err == u"MESSAGE_EMPTY"_q) {
|
||||
} else if (error == u"MESSAGE_EMPTY"_q) {
|
||||
doSetInnerFocus();
|
||||
} else {
|
||||
controller()->show(Ui::MakeInformBox(tr::lng_edit_error()));
|
||||
|
|
|
@ -688,24 +688,23 @@ void ScheduledWidget::edit(
|
|||
session().api().request(base::take(*saveEditMsgRequestId)).cancel();
|
||||
});
|
||||
|
||||
const auto done = [=](const MTPUpdates &result, mtpRequestId requestId) {
|
||||
const auto done = [=](mtpRequestId requestId) {
|
||||
if (requestId == *saveEditMsgRequestId) {
|
||||
*saveEditMsgRequestId = 0;
|
||||
_composeControls->cancelEditMessage();
|
||||
}
|
||||
};
|
||||
|
||||
const auto fail = [=](const MTP::Error &error, mtpRequestId requestId) {
|
||||
const auto fail = [=](const QString &error, mtpRequestId requestId) {
|
||||
if (requestId == *saveEditMsgRequestId) {
|
||||
*saveEditMsgRequestId = 0;
|
||||
}
|
||||
|
||||
const auto &err = error.type();
|
||||
if (ranges::contains(Api::kDefaultEditMessagesErrors, err)) {
|
||||
if (ranges::contains(Api::kDefaultEditMessagesErrors, error)) {
|
||||
controller()->show(Ui::MakeInformBox(tr::lng_edit_error()));
|
||||
} else if (err == u"MESSAGE_NOT_MODIFIED"_q) {
|
||||
} else if (error == u"MESSAGE_NOT_MODIFIED"_q) {
|
||||
_composeControls->cancelEditMessage();
|
||||
} else if (err == u"MESSAGE_EMPTY"_q) {
|
||||
} else if (error == u"MESSAGE_EMPTY"_q) {
|
||||
_composeControls->focus();
|
||||
} else {
|
||||
controller()->show(Ui::MakeInformBox(tr::lng_edit_error()));
|
||||
|
|
Loading…
Add table
Reference in a new issue