Added support of pending suggestion to set up login email.

This commit is contained in:
23rd
2025-11-04 01:27:26 +03:00
committed by John Preston
parent 4cdd793e0c
commit f832e31c7b
17 changed files with 987 additions and 19 deletions
+33 -1
View File
@@ -120,7 +120,39 @@ Session::Session(
, _factchecks(std::make_unique<Data::Factchecks>(this))
, _locationPickers(std::make_unique<Data::LocationPickers>())
, _credits(std::make_unique<Data::Credits>(this))
, _promoSuggestions(std::make_unique<Data::PromoSuggestions>(this))
, _promoSuggestions(std::make_unique<Data::PromoSuggestions>(this, [=] {
using State = Data::SetupEmailState;
if (_promoSuggestions->setupEmailState() == State::Setup
|| _promoSuggestions->setupEmailState() == State::SetupNoSkip) {
if (_settings->setupEmailState() == State::Setup
|| _settings->setupEmailState() == State::SetupNoSkip) {
crl::on_main([=] {
// base::call_delayed(5000, [=] {
Core::App().lockBySetupEmail();
});
const auto unlockLifetime = std::make_shared<rpl::lifetime>();
_promoSuggestions->setupEmailStateValue(
) | rpl::filter([](Data::SetupEmailState s) {
return s == Data::SetupEmailState::None;
}) | rpl::take(1) | rpl::start_with_next(crl::guard(this, [=] {
Core::App().unlockSetupEmail();
_settings->setSetupEmailState(State::None);
saveSettingsDelayed(200);
unlockLifetime->destroy();
}), *unlockLifetime);
} else {
_settings->setSetupEmailState(
_promoSuggestions->setupEmailState());
saveSettingsDelayed(200);
}
} else {
if (_settings->setupEmailState() == State::Setup
|| _settings->setupEmailState() == State::SetupNoSkip) {
_settings->setSetupEmailState(State::None);
saveSettingsDelayed(200);
}
}
}))
, _cachedReactionIconFactory(std::make_unique<ReactionIconFactory>())
, _supportHelper(Support::Helper::Create(this))
, _fastButtonsBots(std::make_unique<Support::FastButtonsBots>(this))