Process server-provided birthday today dismissed suggestions.
This commit is contained in:
parent
79c05c4878
commit
02d8cef6c5
@ -64,7 +64,7 @@ bool TD_TL_writer::is_full_constructor_generated(const tl::tl_combinator *t, boo
|
||||
t->name == "langPackString" || t->name == "langPackStringPluralized" || t->name == "langPackStringDeleted" ||
|
||||
t->name == "peerUser" || t->name == "peerChat" || t->name == "updateServiceNotification" ||
|
||||
t->name == "updateNewMessage" || t->name == "updateChannelTooLong" || t->name == "messages.stickerSet" ||
|
||||
t->name == "updates.differenceSlice";
|
||||
t->name == "updates.differenceSlice" || t->name == "contacts.contactBirthdays";
|
||||
}
|
||||
|
||||
int TD_TL_writer::get_storer_type(const tl::tl_combinator *t, const std::string &storer_name) const {
|
||||
|
@ -1482,6 +1482,7 @@ void ConfigManager::process_app_config(tl_object_ptr<telegram_api::JSONValue> &c
|
||||
string animation_search_provider;
|
||||
string animation_search_emojis;
|
||||
vector<SuggestedAction> suggested_actions;
|
||||
vector<string> dismissed_suggestions;
|
||||
bool can_archive_and_mute_new_chats_from_unknown_users = false;
|
||||
int32 chat_read_mark_expire_period = 0;
|
||||
int32 chat_read_mark_size_threshold = 0;
|
||||
@ -1675,12 +1676,16 @@ void ConfigManager::process_app_config(tl_object_ptr<telegram_api::JSONValue> &c
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (key == "pending_suggestions") {
|
||||
if (key == "pending_suggestions" || key == "dismissed_suggestions") {
|
||||
if (value->get_id() == telegram_api::jsonArray::ID) {
|
||||
auto actions = std::move(static_cast<telegram_api::jsonArray *>(value)->value_);
|
||||
auto otherwise_relogin_days = G()->get_option_integer("otherwise_relogin_days");
|
||||
for (auto &action : actions) {
|
||||
auto action_str = get_json_value_string(std::move(action), key);
|
||||
if (key == "dismissed_suggestions") {
|
||||
dismissed_suggestions.push_back(action_str);
|
||||
continue;
|
||||
}
|
||||
SuggestedAction suggested_action(action_str);
|
||||
if (!suggested_action.is_empty()) {
|
||||
if (otherwise_relogin_days > 0 &&
|
||||
@ -2165,6 +2170,11 @@ void ConfigManager::process_app_config(tl_object_ptr<telegram_api::JSONValue> &c
|
||||
if (dialog_filter_update_period > 0) {
|
||||
options.set_option_integer("chat_folder_new_chats_update_period", dialog_filter_update_period);
|
||||
}
|
||||
if (td::contains(dismissed_suggestions, "BIRTHDAY_CONTACTS_TODAY")) {
|
||||
options.set_option_boolean("dismiss_birthday_contact_today", true);
|
||||
} else {
|
||||
options.set_option_empty("dismiss_birthday_contact_today");
|
||||
}
|
||||
|
||||
if (!is_premium_available) {
|
||||
premium_bot_username.clear(); // just in case
|
||||
|
@ -103,7 +103,7 @@ class ConfigManager final : public NetQueryCallback {
|
||||
|
||||
private:
|
||||
struct AppConfig {
|
||||
static constexpr int32 CURRENT_VERSION = 42;
|
||||
static constexpr int32 CURRENT_VERSION = 43;
|
||||
int32 version_ = 0;
|
||||
int32 hash_ = 0;
|
||||
telegram_api::object_ptr<telegram_api::JSONValue> config_;
|
||||
|
@ -386,6 +386,7 @@ bool OptionManager::is_internal_option(Slice name) {
|
||||
"dialogs_pinned_limit_premium",
|
||||
"dice_emojis",
|
||||
"dice_success_values",
|
||||
"dismiss_birthday_contact_today",
|
||||
"edit_time_limit",
|
||||
"emoji_sounds",
|
||||
"fragment_prefixes",
|
||||
@ -519,6 +520,9 @@ void OptionManager::on_option_updated(Slice name) {
|
||||
if (name == "disable_top_chats") {
|
||||
send_closure(td_->top_dialog_manager_actor_, &TopDialogManager::update_is_enabled, !get_option_boolean(name));
|
||||
}
|
||||
if (name == "dismiss_birthday_contact_today") {
|
||||
send_closure(td_->user_manager_actor_, &UserManager::reload_contact_birthdates, true);
|
||||
}
|
||||
break;
|
||||
case 'e':
|
||||
if (name == "emoji_sounds") {
|
||||
|
@ -6500,6 +6500,11 @@ std::pair<int32, vector<UserId>> UserManager::search_contacts(const string &quer
|
||||
}
|
||||
|
||||
void UserManager::reload_contact_birthdates(bool force) {
|
||||
if (td_->option_manager_->get_option_boolean("dismiss_birthday_contact_today")) {
|
||||
contact_birthdates_.is_being_synced_ = true;
|
||||
return on_get_contact_birthdates(
|
||||
telegram_api::make_object<telegram_api::contacts_contactBirthdays>(Auto(), Auto()));
|
||||
}
|
||||
if (!G()->close_flag() && !td_->auth_manager_->is_bot() && !contact_birthdates_.is_being_synced_ &&
|
||||
(contact_birthdates_.next_sync_time_ < Time::now() || force)) {
|
||||
contact_birthdates_.is_being_synced_ = true;
|
||||
|
Loading…
Reference in New Issue
Block a user