diff --git a/Telegram/SourceFiles/data/data_session.cpp b/Telegram/SourceFiles/data/data_session.cpp index 3b47ab8ae..e95ac7c7c 100644 --- a/Telegram/SourceFiles/data/data_session.cpp +++ b/Telegram/SourceFiles/data/data_session.cpp @@ -3891,17 +3891,21 @@ void Session::requestNotifySettings(not_null peer) { void Session::applyNotifySetting( const MTPNotifyPeer ¬ifyPeer, const MTPPeerNotifySettings &settings) { + const auto goodForUpdate = [&]( + not_null peer, + const NotifySettings &settings) { + return !peer->notifySettingsUnknown() + && ((!peer->notifyMuteUntil() && settings.muteUntil()) + || (!peer->notifySilentPosts() && settings.silentPosts())); + }; + switch (notifyPeer.type()) { case mtpc_notifyUsers: { if (_defaultUserNotifySettings.change(settings)) { _defaultUserNotifyUpdates.fire({}); enumerateUsers([&](not_null user) { - if (!user->notifySettingsUnknown() - && ((!user->notifyMuteUntil() - && _defaultUserNotifySettings.muteUntil()) - || (!user->notifySilentPosts() - && _defaultUserNotifySettings.silentPosts()))) { + if (goodForUpdate(user, _defaultUserNotifySettings)) { updateNotifySettingsLocal(user); } }); @@ -3912,11 +3916,7 @@ void Session::applyNotifySetting( _defaultChatNotifyUpdates.fire({}); enumerateGroups([&](not_null peer) { - if (!peer->notifySettingsUnknown() - && ((!peer->notifyMuteUntil() - && _defaultChatNotifySettings.muteUntil()) - || (!peer->notifySilentPosts() - && _defaultChatNotifySettings.silentPosts()))) { + if (goodForUpdate(peer, _defaultChatNotifySettings)) { updateNotifySettingsLocal(peer); } }); @@ -3927,11 +3927,7 @@ void Session::applyNotifySetting( _defaultBroadcastNotifyUpdates.fire({}); enumerateChannels([&](not_null channel) { - if (!channel->notifySettingsUnknown() - && ((!channel->notifyMuteUntil() - && _defaultBroadcastNotifySettings.muteUntil()) - || (!channel->notifySilentPosts() - && _defaultBroadcastNotifySettings.silentPosts()))) { + if (goodForUpdate(channel, _defaultBroadcastNotifySettings)) { updateNotifySettingsLocal(channel); } });