From c1db660d4ad794c5399971cbe4d947b61ada76fe Mon Sep 17 00:00:00 2001 From: levlam Date: Fri, 11 Jun 2021 02:48:10 +0300 Subject: [PATCH] Add suggestedActionCheckPassword. --- td/generate/scheme/td_api.tl | 5 ++++- td/telegram/PasswordManager.cpp | 4 ++++ td/telegram/PasswordManager.h | 3 ++- td/telegram/SuggestedAction.cpp | 9 +++++++++ td/telegram/SuggestedAction.h | 9 ++++++++- td/telegram/cli.cpp | 3 +++ 6 files changed, 30 insertions(+), 3 deletions(-) diff --git a/td/generate/scheme/td_api.tl b/td/generate/scheme/td_api.tl index 059c388f5..86a923d37 100644 --- a/td/generate/scheme/td_api.tl +++ b/td/generate/scheme/td_api.tl @@ -3291,7 +3291,10 @@ tMeUrls urls:vector = TMeUrls; //@description Suggests the user to enable "archive_and_mute_new_chats_from_unknown_users" option suggestedActionEnableArchiveAndMuteNewChats = SuggestedAction; -//@description Suggests the user to check authorization phone number and change the phone number if it is inaccessible +//@description Suggests the user to check whether 2-step verification password is still remembered +suggestedActionCheckPassword = SuggestedAction; + +//@description Suggests the user to check whether authorization phone number is correct and change the phone number if it is inaccessible suggestedActionCheckPhoneNumber = SuggestedAction; //@description Suggests the user to see a hint about meaning of one and two ticks on sent message diff --git a/td/telegram/PasswordManager.cpp b/td/telegram/PasswordManager.cpp index 00d1f3a4b..9061679d5 100644 --- a/td/telegram/PasswordManager.cpp +++ b/td/telegram/PasswordManager.cpp @@ -10,6 +10,7 @@ #include "td/telegram/Global.h" #include "td/telegram/logevent/LogEvent.h" #include "td/telegram/net/NetQueryDispatcher.h" +#include "td/telegram/SuggestedAction.h" #include "td/telegram/TdDb.h" #include "td/mtproto/DhHandshake.h" @@ -303,6 +304,9 @@ void PasswordManager::on_finish_create_temp_password(Result r } void PasswordManager::get_full_state(string password, Promise promise) { + send_closure(G()->config_manager(), &ConfigManager::hide_suggested_action, + SuggestedAction{SuggestedAction::Type::CheckPassword}); + do_get_state(PromiseCreator::lambda([password = std::move(password), promise = std::move(promise), actor_id = actor_id(this)](Result r_state) mutable { if (r_state.is_error()) { diff --git a/td/telegram/PasswordManager.h b/td/telegram/PasswordManager.h index 8b0cc610c..a98028bb6 100644 --- a/td/telegram/PasswordManager.h +++ b/td/telegram/PasswordManager.h @@ -6,9 +6,10 @@ // #pragma once +#include "td/telegram/ConfigManager.h" #include "td/telegram/net/NetQuery.h" #include "td/telegram/SecureStorage.h" - +#include "td/telegram/SuggestedAction.h" #include "td/telegram/td_api.h" #include "td/telegram/telegram_api.h" diff --git a/td/telegram/SuggestedAction.cpp b/td/telegram/SuggestedAction.cpp index 6f4d3c8e2..a89e27098 100644 --- a/td/telegram/SuggestedAction.cpp +++ b/td/telegram/SuggestedAction.cpp @@ -25,6 +25,8 @@ void SuggestedAction::init(Type type) { SuggestedAction::SuggestedAction(Slice action_str) { if (action_str == Slice("AUTOARCHIVE_POPULAR")) { init(Type::EnableArchiveAndMuteNewChats); + } else if (action_str == Slice("VALIDATE_PASSWORD")) { + init(Type::CheckPassword); } else if (action_str == Slice("VALIDATE_PHONE_NUMBER")) { init(Type::CheckPhoneNumber); } else if (action_str == Slice("NEWCOMER_TICKS")) { @@ -48,6 +50,9 @@ SuggestedAction::SuggestedAction(const td_api::object_ptr SuggestedAction::get_suggested_actio return nullptr; case Type::EnableArchiveAndMuteNewChats: return td_api::make_object(); + case Type::CheckPassword: + return td_api::make_object(); case Type::CheckPhoneNumber: return td_api::make_object(); case Type::SeeTicksHint: diff --git a/td/telegram/SuggestedAction.h b/td/telegram/SuggestedAction.h index bb8477923..a4e1b6df6 100644 --- a/td/telegram/SuggestedAction.h +++ b/td/telegram/SuggestedAction.h @@ -15,7 +15,14 @@ namespace td { struct SuggestedAction { - enum class Type : int32 { Empty, EnableArchiveAndMuteNewChats, CheckPhoneNumber, SeeTicksHint, ConvertToGigagroup }; + enum class Type : int32 { + Empty, + EnableArchiveAndMuteNewChats, + CheckPhoneNumber, + SeeTicksHint, + ConvertToGigagroup, + CheckPassword + }; Type type_ = Type::Empty; DialogId dialog_id_; diff --git a/td/telegram/cli.cpp b/td/telegram/cli.cpp index ebd5b5668..e06c2cd4f 100644 --- a/td/telegram/cli.cpp +++ b/td/telegram/cli.cpp @@ -1388,6 +1388,9 @@ class CliClient final : public Actor { if (action == "unarchive") { return td_api::make_object(); } + if (action == "pass") { + return td_api::make_object(); + } if (action == "number") { return td_api::make_object(); }