diff --git a/Telegram/SourceFiles/data/data_unread_value.cpp b/Telegram/SourceFiles/data/data_unread_value.cpp index 665502979..c374dc0f6 100644 --- a/Telegram/SourceFiles/data/data_unread_value.cpp +++ b/Telegram/SourceFiles/data/data_unread_value.cpp @@ -7,10 +7,13 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #include "data/data_unread_value.h" +#include "core/application.h" +#include "core/core_settings.h" #include "data/data_chat_filters.h" #include "data/data_folder.h" #include "data/data_session.h" #include "main/main_session.h" +#include "window/notifications_manager.h" namespace Data { namespace { @@ -50,4 +53,16 @@ rpl::producer UnreadStateValue( }); } +rpl::producer IncludeMutedCounterFoldersValue() { + using namespace Window::Notifications; + return rpl::single(rpl::empty_value()) | rpl::then( + Core::App().notifications().settingsChanged( + ) | rpl::filter( + rpl::mappers::_1 == ChangeType::IncludeMuted + ) | rpl::to_empty + ) | rpl::map([] { + return Core::App().settings().includeMutedCounterFolders(); + }); +} + } // namespace Data diff --git a/Telegram/SourceFiles/data/data_unread_value.h b/Telegram/SourceFiles/data/data_unread_value.h index 0c60f32ab..1acdbcc98 100644 --- a/Telegram/SourceFiles/data/data_unread_value.h +++ b/Telegram/SourceFiles/data/data_unread_value.h @@ -25,4 +25,6 @@ namespace Data { not_null session, FilterId filterId); +[[nodiscard]] rpl::producer IncludeMutedCounterFoldersValue(); + } // namespace Data diff --git a/Telegram/SourceFiles/window/window_filters_menu.cpp b/Telegram/SourceFiles/window/window_filters_menu.cpp index 5076c2ab6..8577ebf0b 100644 --- a/Telegram/SourceFiles/window/window_filters_menu.cpp +++ b/Telegram/SourceFiles/window/window_filters_menu.cpp @@ -13,12 +13,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "window/window_main_menu.h" #include "window/window_peer_menu.h" #include "main/main_session.h" -#include "core/application.h" -#include "core/core_settings.h" -#include "window/notifications_manager.h" #include "data/data_session.h" #include "data/data_chat_filters.h" -#include "data/data_folder.h" #include "data/data_user.h" #include "data/data_peer_values.h" #include "data/data_premium_limits.h" @@ -53,14 +49,7 @@ FiltersMenu::FiltersMenu( , _scroll(&_outer) , _container( _scroll.setOwnedWidget( - object_ptr(&_scroll))) -, _includeMuted(Core::App().settings().includeMutedCounterFolders()) { - Core::App().notifications().settingsChanged( - ) | rpl::filter( - rpl::mappers::_1 == Window::Notifications::ChangeType::IncludeMuted - ) | rpl::start_with_next([=] { - _includeMuted = Core::App().settings().includeMutedCounterFolders(); - }, _outer.lifetime()); + object_ptr(&_scroll))) { _drag.timer.setCallback([=] { if (_drag.filterId >= 0) { @@ -276,7 +265,7 @@ base::unique_qptr FiltersMenu::prepareButton( if (id >= 0) { rpl::combine( Data::UnreadStateValue(&_session->session(), id), - _includeMuted.value() + Data::IncludeMutedCounterFoldersValue() ) | rpl::start_with_next([=]( const Dialogs::UnreadState &state, bool includeMuted) {