aboutsummaryrefslogtreecommitdiffhomepage
path: root/td/telegram/StickersManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'td/telegram/StickersManager.cpp')
-rw-r--r--td/telegram/StickersManager.cpp12
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 {};