Fix filters in non-active accounts.
This commit is contained in:
parent
a45d088ee4
commit
1705a1aa4a
|
@ -216,17 +216,6 @@ bool ChatFilter::contains(not_null<History*> history) const {
|
|||
}
|
||||
|
||||
ChatFilters::ChatFilters(not_null<Session*> owner) : _owner(owner) {
|
||||
//using Flag = ChatFilter::Flag;
|
||||
//const auto all = Flag::Contacts
|
||||
// | Flag::NonContacts
|
||||
// | Flag::Groups
|
||||
// | Flag::Channels
|
||||
// | Flag::Bots
|
||||
// | Flag::NoArchived;
|
||||
//_list.push_back(
|
||||
// ChatFilter(1, "Unmuted", all | Flag::NoMuted, {}, {}));
|
||||
//_list.push_back(
|
||||
// ChatFilter(2, "Unread", all | Flag::NoRead, {}, {}));
|
||||
load();
|
||||
}
|
||||
|
||||
|
|
|
@ -8,6 +8,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "data/data_session.h"
|
||||
|
||||
#include "main/main_session.h"
|
||||
#include "main/main_session_settings.h"
|
||||
#include "main/main_account.h"
|
||||
#include "apiwrap.h"
|
||||
#include "mainwidget.h"
|
||||
#include "api/api_text_entities.h"
|
||||
|
@ -27,7 +29,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "inline_bots/inline_bot_layout_item.h"
|
||||
#include "storage/storage_account.h"
|
||||
#include "storage/storage_encrypted_file.h"
|
||||
#include "main/main_account.h"
|
||||
#include "media/player/media_player_instance.h" // instance()->play()
|
||||
#include "boxes/abstract_box.h"
|
||||
#include "passport/passport_form_controller.h"
|
||||
|
@ -239,6 +240,16 @@ Session::Session(not_null<Main::Session*> session)
|
|||
) | rpl::start_with_next([=] {
|
||||
notifyUnreadBadgeChanged();
|
||||
}, _lifetime);
|
||||
|
||||
_chatsFilters->changed(
|
||||
) | rpl::start_with_next([=] {
|
||||
const auto enabled = !_chatsFilters->list().empty();
|
||||
if (enabled != session->settings().dialogsFiltersEnabled()) {
|
||||
session->settings().setDialogsFiltersEnabled(enabled);
|
||||
session->saveSettingsDelayed();
|
||||
}
|
||||
}, _lifetime);
|
||||
|
||||
}
|
||||
|
||||
void Session::clear() {
|
||||
|
|
|
@ -141,7 +141,7 @@ SessionController::SessionController(
|
|||
session->data().chatsFilters().changed(
|
||||
) | rpl::start_with_next([=] {
|
||||
checkOpenedFilter();
|
||||
crl::on_main(session, [=] {
|
||||
crl::on_main(this, [=] {
|
||||
refreshFiltersMenu();
|
||||
});
|
||||
}, session->lifetime());
|
||||
|
@ -216,12 +216,7 @@ void SessionController::toggleFiltersMenu(bool enabled) {
|
|||
}
|
||||
|
||||
void SessionController::refreshFiltersMenu() {
|
||||
const auto enabled = !session().data().chatsFilters().list().empty();
|
||||
if (enabled != session().settings().dialogsFiltersEnabled()) {
|
||||
session().settings().setDialogsFiltersEnabled(enabled);
|
||||
session().saveSettingsDelayed();
|
||||
toggleFiltersMenu(enabled);
|
||||
}
|
||||
toggleFiltersMenu(!session().data().chatsFilters().list().empty());
|
||||
}
|
||||
|
||||
rpl::producer<> SessionController::filtersMenuChanged() const {
|
||||
|
|
Loading…
Reference in New Issue