mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-15 21:57:10 +02:00
Take main DC and phone prefix from active account.
This commit is contained in:
parent
eff340deaf
commit
90f7f482ee
5 changed files with 27 additions and 7 deletions
|
@ -18,7 +18,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "storage/localstorage.h"
|
||||
#include "main/main_account.h"
|
||||
#include "main/main_domain.h"
|
||||
#include "main/main_session.h"
|
||||
#include "mainwindow.h"
|
||||
#include "data/data_user.h"
|
||||
#include "data/data_countries.h"
|
||||
#include "boxes/confirm_box.h"
|
||||
#include "ui/text/text_utilities.h"
|
||||
#include "ui/widgets/buttons.h"
|
||||
|
@ -41,6 +44,20 @@ namespace {
|
|||
|
||||
using namespace ::Intro::details;
|
||||
|
||||
[[nodiscard]] QString ComputeNewAccountCountry() {
|
||||
if (const auto parent
|
||||
= Core::App().domain().maybeLastOrSomeAuthedAccount()) {
|
||||
if (const auto session = parent->maybeSession()) {
|
||||
const auto iso = ::Data::CountryISO2ByPhone(
|
||||
session->user()->phone());
|
||||
if (!iso.isEmpty()) {
|
||||
return iso;
|
||||
}
|
||||
}
|
||||
}
|
||||
return Platform::SystemCountry();
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
Widget::Widget(
|
||||
|
@ -65,10 +82,11 @@ Widget::Widget(
|
|||
rpl::single(true))) {
|
||||
Core::App().setDefaultFloatPlayerDelegate(floatPlayerDelegate());
|
||||
|
||||
getNearestDC();
|
||||
getData()->country = ComputeNewAccountCountry();
|
||||
|
||||
switch (point) {
|
||||
case EnterPoint::Start:
|
||||
getNearestDC();
|
||||
appendStep(new StartWidget(this, _account, getData()));
|
||||
break;
|
||||
case EnterPoint::Phone:
|
||||
|
@ -82,8 +100,6 @@ Widget::Widget(
|
|||
|
||||
fixOrder();
|
||||
|
||||
getData()->country = Platform::SystemCountry();
|
||||
|
||||
_account->mtpValue(
|
||||
) | rpl::start_with_next([=](not_null<MTP::Instance*> instance) {
|
||||
_api.emplace(instance);
|
||||
|
|
|
@ -236,7 +236,7 @@ rpl::producer<> Account::mtpNewSessionCreated() const {
|
|||
return _mtpNewSessionCreated.events();
|
||||
}
|
||||
|
||||
void Account::setLegacyMtpMainDcId(MTP::DcId mainDcId) {
|
||||
void Account::setMtpMainDcId(MTP::DcId mainDcId) {
|
||||
Expects(!_mtp);
|
||||
|
||||
_mtpFields.mainDcId = mainDcId;
|
||||
|
|
|
@ -82,8 +82,9 @@ public:
|
|||
[[nodiscard]] rpl::producer<not_null<MTP::Instance*>> mtpValue() const;
|
||||
|
||||
// Set from legacy storage.
|
||||
void setLegacyMtpMainDcId(MTP::DcId mainDcId);
|
||||
void setLegacyMtpKey(std::shared_ptr<MTP::AuthKey> key);
|
||||
|
||||
void setMtpMainDcId(MTP::DcId mainDcId);
|
||||
void setSessionUserId(UserId userId);
|
||||
void setSessionFromStorage(
|
||||
std::unique_ptr<SessionSettings> data,
|
||||
|
|
|
@ -219,7 +219,9 @@ not_null<Main::Account*> Domain::add(MTP::Environment environment) {
|
|||
static const auto cloneConfig = [](const MTP::Config &config) {
|
||||
return std::make_unique<MTP::Config>(config);
|
||||
};
|
||||
static const auto accountConfig = [](not_null<Account*> account) {
|
||||
auto mainDcId = MTP::Instance::Fields::kNotSetMainDc;
|
||||
const auto accountConfig = [&](not_null<Account*> account) {
|
||||
mainDcId = account->mtp().mainDcId();
|
||||
return cloneConfig(account->mtp().config());
|
||||
};
|
||||
auto config = [&] {
|
||||
|
@ -244,6 +246,7 @@ not_null<Main::Account*> Domain::add(MTP::Environment environment) {
|
|||
.account = std::make_unique<Account>(this, _dataName, index)
|
||||
});
|
||||
const auto account = _accounts.back().account.get();
|
||||
account->setMtpMainDcId(mainDcId);
|
||||
_local->startAdded(account, std::move(config));
|
||||
watchSession(account);
|
||||
_accountsChanges.fire({});
|
||||
|
|
|
@ -853,7 +853,7 @@ std::unique_ptr<Main::SessionSettings> Account::applyReadContext(
|
|||
_owner->setLegacyMtpKey(std::move(key));
|
||||
}
|
||||
if (context.mtpLegacyMainDcId) {
|
||||
_owner->setLegacyMtpMainDcId(context.mtpLegacyMainDcId);
|
||||
_owner->setMtpMainDcId(context.mtpLegacyMainDcId);
|
||||
_owner->setSessionUserId(context.mtpLegacyUserId);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue