From 7852c82eab69952ecb8c40451e93312193faf64a Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Tue, 25 May 2021 21:31:01 +0300 Subject: [PATCH] Simplified updating of autolock time in Settings::PrivacySecurity. --- Telegram/SourceFiles/boxes/auto_lock_box.cpp | 2 -- .../settings/settings_privacy_security.cpp | 19 +++++++++++++++---- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/Telegram/SourceFiles/boxes/auto_lock_box.cpp b/Telegram/SourceFiles/boxes/auto_lock_box.cpp index 94cf9da882..a12d4173bd 100644 --- a/Telegram/SourceFiles/boxes/auto_lock_box.cpp +++ b/Telegram/SourceFiles/boxes/auto_lock_box.cpp @@ -12,7 +12,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "core/application.h" #include "mainwindow.h" #include "ui/widgets/checkbox.h" -#include "facades.h" #include "styles/style_layers.h" #include "styles/style_boxes.h" @@ -45,7 +44,6 @@ void AutoLockBox::prepare() { void AutoLockBox::durationChanged(int seconds) { Core::App().settings().setAutoLock(seconds); Core::App().saveSettingsDelayed(); - Global::RefLocalPasscodeChanged().notify(); Core::App().checkAutoLock(); closeBox(); diff --git a/Telegram/SourceFiles/settings/settings_privacy_security.cpp b/Telegram/SourceFiles/settings/settings_privacy_security.cpp index c6a6cace08..aabb4b1e06 100644 --- a/Telegram/SourceFiles/settings/settings_privacy_security.cpp +++ b/Telegram/SourceFiles/settings/settings_privacy_security.cpp @@ -291,15 +291,24 @@ void SetupLocalPasscode( Ui::show(Box(&controller->session(), true)); }); + const auto autoLockBoxClosing = + container->lifetime().make_state>(); const auto label = base::Platform::LastUserInputTimeSupported() ? tr::lng_passcode_autolock_away : tr::lng_passcode_autolock_inactive; - auto value = PasscodeChanges( + auto value = autoLockBoxClosing->events_starting_with( + rpl::empty_value() ) | rpl::map([] { const auto autolock = Core::App().settings().autoLock(); return (autolock % 3600) - ? tr::lng_passcode_autolock_minutes(tr::now, lt_count, autolock / 60) - : tr::lng_passcode_autolock_hours(tr::now, lt_count, autolock / 3600); + ? tr::lng_passcode_autolock_minutes( + tr::now, + lt_count, + autolock / 60) + : tr::lng_passcode_autolock_hours( + tr::now, + lt_count, + autolock / 3600); }); AddButtonWithLabel( @@ -308,7 +317,9 @@ void SetupLocalPasscode( std::move(value), st::settingsButton )->addClickHandler([=] { - Ui::show(Box(&controller->session())); + const auto box = Ui::show(Box(&controller->session())); + box->boxClosing( + ) | rpl::start_to_stream(*autoLockBoxClosing, box->lifetime()); }); wrap->toggleOn(base::duplicate(has));