Added ability to pass preloaded chats filter tags toggle on logging in.

This commit is contained in:
23rd 2024-11-21 09:14:08 +03:00
parent d5dbbd566f
commit 9d5ca1252a
4 changed files with 15 additions and 7 deletions

View file

@ -358,8 +358,11 @@ void ChatFilters::clear() {
_list.clear(); _list.clear();
} }
void ChatFilters::setPreloaded(const QVector<MTPDialogFilter> &result) { void ChatFilters::setPreloaded(
const QVector<MTPDialogFilter> &result,
bool tagsEnabled) {
_loadRequestId = -1; _loadRequestId = -1;
_tagsEnabled = tagsEnabled;
received(result); received(result);
crl::on_main(&_owner->session(), [=] { crl::on_main(&_owner->session(), [=] {
if (_loadRequestId == -1) { if (_loadRequestId == -1) {

View file

@ -136,7 +136,9 @@ public:
explicit ChatFilters(not_null<Session*> owner); explicit ChatFilters(not_null<Session*> owner);
~ChatFilters(); ~ChatFilters();
void setPreloaded(const QVector<MTPDialogFilter> &result); void setPreloaded(
const QVector<MTPDialogFilter> &result,
bool tagsEnabled);
void load(); void load();
void reload(); void reload();

View file

@ -194,16 +194,18 @@ void Step::finish(const MTPUser &user, QImage &&photo) {
api().request(MTPmessages_GetDialogFilters( api().request(MTPmessages_GetDialogFilters(
)).done([=](const MTPmessages_DialogFilters &result) { )).done([=](const MTPmessages_DialogFilters &result) {
createSession(user, photo, result.data().vfilters().v); const auto &d = result.data();
createSession(user, photo, d.vfilters().v, d.is_tags_enabled());
}).fail([=] { }).fail([=] {
createSession(user, photo, QVector<MTPDialogFilter>()); createSession(user, photo, QVector<MTPDialogFilter>(), false);
}).send(); }).send();
} }
void Step::createSession( void Step::createSession(
const MTPUser &user, const MTPUser &user,
QImage photo, QImage photo,
const QVector<MTPDialogFilter> &filters) { const QVector<MTPDialogFilter> &filters,
bool tagsEnabled) {
// Save the default language if we've suggested some other and user ignored it. // Save the default language if we've suggested some other and user ignored it.
const auto currentId = Lang::Id(); const auto currentId = Lang::Id();
const auto defaultId = Lang::DefaultLanguageId(); const auto defaultId = Lang::DefaultLanguageId();
@ -227,7 +229,7 @@ void Step::createSession(
account->local().enforceModernStorageIdBots(); account->local().enforceModernStorageIdBots();
account->local().writeMtpData(); account->local().writeMtpData();
auto &session = account->session(); auto &session = account->session();
session.data().chatsFilters().setPreloaded(filters); session.data().chatsFilters().setPreloaded(filters, tagsEnabled);
if (hasFilters) { if (hasFilters) {
session.saveSettingsDelayed(); session.saveSettingsDelayed();
} }

View file

@ -116,7 +116,8 @@ protected:
void createSession( void createSession(
const MTPUser &user, const MTPUser &user,
QImage photo, QImage photo,
const QVector<MTPDialogFilter> &filters); const QVector<MTPDialogFilter> &filters,
bool tagsEnabled);
void goBack(); void goBack();