Flush all pending notifications on user going online.
GitOrigin-RevId: 7ccddf36079e30ecf31363f82a55e9663ed97743
This commit is contained in:
parent
ddfe9b4413
commit
9030b8d29e
@ -12,6 +12,7 @@
|
|||||||
#include "td/telegram/DeviceTokenManager.h"
|
#include "td/telegram/DeviceTokenManager.h"
|
||||||
#include "td/telegram/Global.h"
|
#include "td/telegram/Global.h"
|
||||||
#include "td/telegram/MessagesManager.h"
|
#include "td/telegram/MessagesManager.h"
|
||||||
|
#include "td/telegram/StateManager.h"
|
||||||
#include "td/telegram/Td.h"
|
#include "td/telegram/Td.h"
|
||||||
#include "td/telegram/TdDb.h"
|
#include "td/telegram/TdDb.h"
|
||||||
|
|
||||||
@ -150,6 +151,22 @@ void NotificationManager::start_up() {
|
|||||||
available_call_notification_group_ids_.insert(group_id);
|
available_call_notification_group_ids_.insert(group_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class StateCallback : public StateManager::Callback {
|
||||||
|
public:
|
||||||
|
explicit StateCallback(ActorId<NotificationManager> parent) : parent_(std::move(parent)) {
|
||||||
|
}
|
||||||
|
bool on_online(bool is_online) override {
|
||||||
|
if (is_online) {
|
||||||
|
send_closure(parent_, &NotificationManager::flush_all_pending_notifications);
|
||||||
|
}
|
||||||
|
return parent_.is_alive();
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
ActorId<NotificationManager> parent_;
|
||||||
|
};
|
||||||
|
send_closure(G()->state_manager(), &StateManager::add_callback, make_unique<StateCallback>(actor_id(this)));
|
||||||
}
|
}
|
||||||
|
|
||||||
td_api::object_ptr<td_api::updateActiveNotifications> NotificationManager::get_update_active_notifications() const {
|
td_api::object_ptr<td_api::updateActiveNotifications> NotificationManager::get_update_active_notifications() const {
|
||||||
|
Loading…
Reference in New Issue
Block a user