Add NotificationGroupInfo::set_last_notification.

This commit is contained in:
levlam 2023-08-21 19:46:09 +03:00
parent 05b1bec6a9
commit e667e45985
3 changed files with 18 additions and 7 deletions

View File

@ -15420,13 +15420,7 @@ void MessagesManager::remove_dialog_mention_notifications(Dialog *d) {
bool MessagesManager::set_dialog_last_notification(DialogId dialog_id, NotificationGroupInfo &group_info,
int32 last_notification_date, NotificationId last_notification_id,
const char *source) {
if (group_info.last_notification_date_ != last_notification_date ||
group_info.last_notification_id_ != last_notification_id) {
VLOG(notifications) << "Set " << group_info.group_id_ << '/' << dialog_id << " last notification to "
<< last_notification_id << " sent at " << last_notification_date << " from " << source;
group_info.last_notification_date_ = last_notification_date;
group_info.last_notification_id_ = last_notification_id;
group_info.is_changed_ = true;
if (group_info.set_last_notification(last_notification_date, last_notification_id, source)) {
on_dialog_updated(dialog_id, "set_dialog_last_notification");
return true;
}

View File

@ -6,10 +6,25 @@
//
#include "td/telegram/NotificationGroupInfo.h"
#include "td/telegram/NotificationManager.h"
#include "td/utils/logging.h"
namespace td {
bool NotificationGroupInfo::set_last_notification(int32 last_notification_date, NotificationId last_notification_id,
const char *source) {
if (last_notification_date_ != last_notification_date || last_notification_id_ != last_notification_id) {
VLOG(notifications) << "Set " << group_id_ << " last notification to " << last_notification_id << " sent at "
<< last_notification_date << " from " << source;
last_notification_date_ = last_notification_date;
last_notification_id_ = last_notification_id;
is_changed_ = true;
return true;
}
return false;
}
void NotificationGroupInfo::try_reuse() {
CHECK(group_id_.is_valid());
CHECK(last_notification_date_ == 0);

View File

@ -29,6 +29,8 @@ class NotificationGroupInfo {
return group_id_.is_valid() && !try_reuse_;
}
bool set_last_notification(int32 last_notification_date, NotificationId last_notification_id, const char *source);
void try_reuse();
void add_group_key_if_changed(vector<NotificationGroupKey> &group_keys, DialogId dialog_id);