Version 4.9.1: Fix states of archive settings.

Fixes #26510.
This commit is contained in:
John Preston 2023-08-15 19:16:50 +02:00
parent 3fe9ba41ba
commit b871a29275
2 changed files with 5 additions and 5 deletions

View file

@ -103,10 +103,10 @@ void GlobalPrivacy::update(
| (archiveAndMute | (archiveAndMute
? Flag::f_archive_and_mute_new_noncontact_peers ? Flag::f_archive_and_mute_new_noncontact_peers
: Flag()) : Flag())
| (unarchiveOnNewMessage == UnarchiveOnNewMessage::AnyUnmuted | (unarchiveOnNewMessage == UnarchiveOnNewMessage::None
? Flag::f_keep_archived_unmuted ? Flag::f_keep_archived_unmuted
: Flag()) : Flag())
| (unarchiveOnNewMessage != UnarchiveOnNewMessage::None | (unarchiveOnNewMessage != UnarchiveOnNewMessage::AnyUnmuted
? Flag::f_keep_archived_folders ? Flag::f_keep_archived_folders
: Flag()); : Flag());
_requestId = _api.request(MTPaccount_SetGlobalPrivacySettings( _requestId = _api.request(MTPaccount_SetGlobalPrivacySettings(
@ -125,10 +125,10 @@ void GlobalPrivacy::apply(const MTPGlobalPrivacySettings &data) {
data.match([&](const MTPDglobalPrivacySettings &data) { data.match([&](const MTPDglobalPrivacySettings &data) {
_archiveAndMute = data.is_archive_and_mute_new_noncontact_peers(); _archiveAndMute = data.is_archive_and_mute_new_noncontact_peers();
_unarchiveOnNewMessage = data.is_keep_archived_unmuted() _unarchiveOnNewMessage = data.is_keep_archived_unmuted()
? UnarchiveOnNewMessage::AnyUnmuted ? UnarchiveOnNewMessage::None
: data.is_keep_archived_folders() : data.is_keep_archived_folders()
? UnarchiveOnNewMessage::NotInFoldersUnmuted ? UnarchiveOnNewMessage::NotInFoldersUnmuted
: UnarchiveOnNewMessage::None; : UnarchiveOnNewMessage::AnyUnmuted;
}); });
} }

View file

@ -726,6 +726,7 @@ void ArchiveSettingsBox(
))->toggledChanges( ))->toggledChanges(
) | rpl::filter([=](bool toggled) { ) | rpl::filter([=](bool toggled) {
const auto current = privacy->unarchiveOnNewMessageCurrent(); const auto current = privacy->unarchiveOnNewMessageCurrent();
state->foldersWrap->toggle(!toggled, anim::type::normal);
return toggled != (current == Unarchive::None); return toggled != (current == Unarchive::None);
}) | rpl::start_with_next([=](bool toggled) { }) | rpl::start_with_next([=](bool toggled) {
privacy->updateUnarchiveOnNewMessage(toggled privacy->updateUnarchiveOnNewMessage(toggled
@ -733,7 +734,6 @@ void ArchiveSettingsBox(
: state->folders->toggled() : state->folders->toggled()
? Unarchive::NotInFoldersUnmuted ? Unarchive::NotInFoldersUnmuted
: Unarchive::AnyUnmuted); : Unarchive::AnyUnmuted);
state->foldersWrap->toggle(!toggled, anim::type::normal);
}, container->lifetime()); }, container->lifetime());
AddSkip(container); AddSkip(container);