diff options
Diffstat (limited to 'td/telegram/StickersManager.cpp')
| -rw-r--r-- | td/telegram/StickersManager.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/td/telegram/StickersManager.cpp b/td/telegram/StickersManager.cpp index 9c02eaa4b..ff3453de7 100644 --- a/td/telegram/StickersManager.cpp +++ b/td/telegram/StickersManager.cpp @@ -4973,12 +4973,15 @@ void StickersManager::on_get_language_codes(const string &key, Result<vector<str } } -vector<string> StickersManager::get_emoji_language_codes(Promise<Unit> &promise) { +vector<string> StickersManager::get_emoji_language_codes(const string &input_language_code, Promise<Unit> &promise) { vector<string> language_codes = td_->language_pack_manager_->get_actor_unsafe()->get_used_language_codes(); auto system_language_code = G()->mtproto_header().get_system_language_code(); if (!system_language_code.empty() && system_language_code.find('$') == string::npos) { language_codes.push_back(system_language_code); } + if (!input_language_code.empty() && input_language_code.find('$') == string::npos) { + language_codes.push_back(input_language_code); + } if (language_codes.empty()) { LOG(ERROR) << "List of language codes is empty"; @@ -4987,6 +4990,7 @@ vector<string> StickersManager::get_emoji_language_codes(Promise<Unit> &promise) std::sort(language_codes.begin(), language_codes.end()); language_codes.erase(std::unique(language_codes.begin(), language_codes.end()), language_codes.end()); + LOG(DEBUG) << "Have language codes " << language_codes; auto key = get_emoji_language_codes_database_key(language_codes); auto it = emoji_language_codes_.find(key); if (it == emoji_language_codes_.end()) { @@ -5196,14 +5200,14 @@ void StickersManager::on_get_emoji_keywords_difference( emoji_language_code_last_difference_times_[language_code] = static_cast<int32>(Time::now_cached()); } -vector<string> StickersManager::search_emojis(const string &text, bool exact_match, bool force, - Promise<Unit> &&promise) { +vector<string> StickersManager::search_emojis(const string &text, bool exact_match, const string &input_language_code, + bool force, Promise<Unit> &&promise) { if (text.empty() || !G()->parameters().use_file_db /* have SQLite PMC */) { promise.set_value(Unit()); return {}; } - auto language_codes = get_emoji_language_codes(promise); + auto language_codes = get_emoji_language_codes(input_language_code, promise); if (language_codes.empty()) { // promise was consumed return {}; |
