Use OptionManager::get_option_synchronously internally.

This commit is contained in:
levlam 2022-07-11 14:01:56 +03:00
parent 17a548292b
commit ee7011538a
3 changed files with 14 additions and 27 deletions

View File

@ -13,6 +13,7 @@
#include "td/telegram/ConfigShared.h"
#include "td/telegram/ContactsManager.h"
#include "td/telegram/DialogId.h"
#include "td/telegram/GitCommitHash.h"
#include "td/telegram/Global.h"
#include "td/telegram/JsonValue.h"
#include "td/telegram/LanguagePackManager.h"
@ -436,12 +437,12 @@ td_api::object_ptr<td_api::OptionValue> OptionManager::get_option_synchronously(
switch (name[0]) {
case 'c':
if (name == "commit_hash") {
return Td::get_commit_hash_option_value_object();
return td_api::make_object<td_api::optionValueString>(get_git_commit_hash());
}
break;
case 'v':
if (name == "version") {
return Td::get_version_option_value_object();
return td_api::make_object<td_api::optionValueString>("1.8.4");
}
break;
}
@ -775,9 +776,8 @@ td_api::object_ptr<td_api::OptionValue> OptionManager::get_option_value_object(S
}
void OptionManager::get_current_state(vector<td_api::object_ptr<td_api::Update>> &updates) const {
updates.push_back(td_api::make_object<td_api::updateOption>("version", Td::get_version_option_value_object()));
updates.push_back(
td_api::make_object<td_api::updateOption>("commit_hash", Td::get_commit_hash_option_value_object()));
updates.push_back(td_api::make_object<td_api::updateOption>("version", get_option_synchronously("version")));
updates.push_back(td_api::make_object<td_api::updateOption>("commit_hash", get_option_synchronously("commit_hash")));
updates.push_back(td_api::make_object<td_api::updateOption>(
"online", td_api::make_object<td_api::optionValueBoolean>(td_->is_online())));

View File

@ -52,7 +52,6 @@
#include "td/telegram/FolderId.h"
#include "td/telegram/FullMessageId.h"
#include "td/telegram/GameManager.h"
#include "td/telegram/GitCommitHash.h"
#include "td/telegram/Global.h"
#include "td/telegram/GroupCallId.h"
#include "td/telegram/GroupCallManager.h"
@ -3060,9 +3059,10 @@ void Td::run_request(uint64 id, tl_object_ptr<td_api::Function> function) {
return send_result(id, get_fake_authorization_state_object());
case td_api::getCurrentState::ID: {
vector<td_api::object_ptr<td_api::Update>> updates;
updates.push_back(td_api::make_object<td_api::updateOption>("version", get_version_option_value_object()));
updates.push_back(
td_api::make_object<td_api::updateOption>("commit_hash", get_commit_hash_option_value_object()));
td_api::make_object<td_api::updateOption>("version", OptionManager::get_option_synchronously("version")));
updates.push_back(td_api::make_object<td_api::updateOption>(
"commit_hash", OptionManager::get_option_synchronously("commit_hash")));
updates.push_back(td_api::make_object<td_api::updateAuthorizationState>(get_fake_authorization_state_object()));
// send response synchronously to prevent "Request aborted"
return send_result(id, td_api::make_object<td_api::updates>(std::move(updates)));
@ -3259,14 +3259,6 @@ void Td::on_connection_state_changed(ConnectionState new_state) {
send_closure(actor_id(this), &Td::send_update, get_update_connection_state_object(connection_state_));
}
td_api::object_ptr<td_api::OptionValue> Td::get_version_option_value_object() {
return td_api::make_object<td_api::optionValueString>(TDLIB_VERSION);
}
td_api::object_ptr<td_api::OptionValue> Td::get_commit_hash_option_value_object() {
return td_api::make_object<td_api::optionValueString>(get_git_commit_hash());
}
void Td::start_up() {
always_wait_for_mailbox();
@ -3287,8 +3279,9 @@ void Td::start_up() {
alarm_timeout_.set_callback_data(static_cast<void *>(this));
CHECK(state_ == State::WaitParameters);
send_update(td_api::make_object<td_api::updateOption>("version", get_version_option_value_object()));
send_update(td_api::make_object<td_api::updateOption>("commit_hash", get_commit_hash_option_value_object()));
send_update(td_api::make_object<td_api::updateOption>("version", OptionManager::get_option_synchronously("version")));
send_update(
td_api::make_object<td_api::updateOption>("commit_hash", OptionManager::get_option_synchronously("commit_hash")));
send_update(td_api::make_object<td_api::updateAuthorizationState>(
td_api::make_object<td_api::authorizationStateWaitTdlibParameters>()));
}
@ -4332,7 +4325,9 @@ Status Td::set_parameters(td_api::object_ptr<td_api::tdlibParameters> parameters
}
if (options_.api_id != 21724) {
options_.application_version += ", TDLib ";
options_.application_version += TDLIB_VERSION;
auto version = OptionManager::get_option_synchronously("version");
CHECK(version->get_id() == td_api::optionValueString::ID);
options_.application_version += static_cast<const td_api::optionValueString *>(version.get())->value_;
}
options_.language_pack = string();
options_.language_code = string();
@ -8442,6 +8437,4 @@ void Td::on_request(uint64 id, td_api::testCallVectorStringObject &request) {
#undef CREATE_REQUEST_PROMISE
#undef CREATE_OK_REQUEST_PROMISE
constexpr const char *Td::TDLIB_VERSION;
} // namespace td

View File

@ -246,10 +246,6 @@ class Td final : public Actor {
static td_api::object_ptr<td_api::Object> static_request(td_api::object_ptr<td_api::Function> function);
static td_api::object_ptr<td_api::OptionValue> get_version_option_value_object();
static td_api::object_ptr<td_api::OptionValue> get_commit_hash_option_value_object();
private:
static constexpr int64 ONLINE_ALARM_ID = 0;
static constexpr int64 PING_SERVER_ALARM_ID = -1;
@ -257,8 +253,6 @@ class Td final : public Actor {
static constexpr int64 TERMS_OF_SERVICE_ALARM_ID = -2;
static constexpr int64 PROMO_DATA_ALARM_ID = -3;
static constexpr const char *TDLIB_VERSION = "1.8.4";
void on_connection_state_changed(ConnectionState new_state);
void run_request(uint64 id, tl_object_ptr<td_api::Function> function);