mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-09-05 08:55:59 +00:00
Update intro change language link.
Also now MTP::Sender isn't bound to MTP::Instance, because Intro Widget is MTP::Sender, but Intro::PhoneWidget destroys current MTP::Instance.
This commit is contained in:
@@ -186,7 +186,7 @@ private:
|
||||
|
||||
};
|
||||
|
||||
Instance::Private::Private(Instance *instance, DcOptions *options, Instance::Mode mode) : Sender(instance), _instance(instance)
|
||||
Instance::Private::Private(Instance *instance, DcOptions *options, Instance::Mode mode) : Sender(), _instance(instance)
|
||||
, _dcOptions(options)
|
||||
, _mode(mode) {
|
||||
}
|
||||
|
@@ -186,9 +186,6 @@ class Sender {
|
||||
gsl::not_null<Sender*> sender() const noexcept {
|
||||
return _sender;
|
||||
}
|
||||
gsl::not_null<Instance*> instance() const noexcept {
|
||||
return _sender->_instance;
|
||||
}
|
||||
void registerRequest(mtpRequestId requestId) {
|
||||
_sender->requestRegister(requestId);
|
||||
}
|
||||
@@ -205,7 +202,7 @@ class Sender {
|
||||
};
|
||||
|
||||
public:
|
||||
Sender(gsl::not_null<Instance*> instance = MainInstance()) noexcept : _instance(instance) {
|
||||
Sender() noexcept {
|
||||
}
|
||||
|
||||
template <typename Request>
|
||||
@@ -255,7 +252,7 @@ public:
|
||||
}
|
||||
|
||||
mtpRequestId send() {
|
||||
auto id = instance()->send(_request, takeOnDone(), takeOnFail(), takeDcId(), takeCanWait(), takeAfter());
|
||||
auto id = MainInstance()->send(_request, takeOnDone(), takeOnFail(), takeDcId(), takeCanWait(), takeAfter());
|
||||
registerRequest(id);
|
||||
return id;
|
||||
}
|
||||
@@ -288,7 +285,7 @@ public:
|
||||
SentRequestWrap request(mtpRequestId requestId) noexcept WARN_UNUSED_RESULT;
|
||||
|
||||
void requestSendDelayed() {
|
||||
_instance->sendAnything();
|
||||
MainInstance()->sendAnything();
|
||||
}
|
||||
void requestCancellingDiscard() {
|
||||
for (auto &request : _requests) {
|
||||
@@ -296,30 +293,28 @@ public:
|
||||
}
|
||||
}
|
||||
gsl::not_null<Instance*> requestMTP() const {
|
||||
return _instance;
|
||||
return MainInstance();
|
||||
}
|
||||
|
||||
private:
|
||||
class RequestWrap {
|
||||
public:
|
||||
RequestWrap(Instance *instance, mtpRequestId requestId) noexcept : _instance(instance), _id(requestId) {
|
||||
RequestWrap(Instance *instance, mtpRequestId requestId) noexcept : _id(requestId) {
|
||||
}
|
||||
|
||||
mtpRequestId id() const noexcept {
|
||||
return _id;
|
||||
}
|
||||
void handled() const noexcept {
|
||||
_instance = nullptr;
|
||||
}
|
||||
|
||||
~RequestWrap() {
|
||||
if (_instance) {
|
||||
_instance->cancel(_id);
|
||||
if (auto instance = MainInstance()) {
|
||||
instance->cancel(_id);
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
mutable Instance *_instance = nullptr;
|
||||
mtpRequestId _id = 0;
|
||||
|
||||
};
|
||||
@@ -353,7 +348,7 @@ private:
|
||||
friend class SentRequestWrap;
|
||||
|
||||
void requestRegister(mtpRequestId requestId) {
|
||||
_requests.emplace(_instance, requestId);
|
||||
_requests.emplace(MainInstance(), requestId);
|
||||
}
|
||||
void requestHandled(mtpRequestId requestId) {
|
||||
auto it = _requests.find(requestId);
|
||||
@@ -369,7 +364,6 @@ private:
|
||||
}
|
||||
}
|
||||
|
||||
gsl::not_null<Instance*> _instance;
|
||||
std::set<RequestWrap, RequestWrapComparator> _requests; // Better to use flatmap.
|
||||
|
||||
};
|
||||
|
Reference in New Issue
Block a user