Check action id when invoked

Makes it more resilient
This commit is contained in:
Kai Uwe Broulik 2020-02-06 10:49:22 +01:00 committed by John Preston
parent 1f16d72667
commit 9e3fa2e4bc
2 changed files with 14 additions and 8 deletions

View File

@ -118,7 +118,7 @@ NotificationData::NotificationData(
kInterface.utf16(),
qsl("ActionInvoked"),
this,
SLOT(notificationClicked(uint)));
SLOT(notificationClicked(uint,QString)));
if (capabilities.contains(qsl("inline-reply"))) {
_actions << qsl("inline-reply")
@ -261,13 +261,19 @@ void NotificationData::notificationClosed(uint id) {
}
}
void NotificationData::notificationClicked(uint id) {
if (id == _notificationId) {
const auto manager = _manager;
crl::on_main(manager, [=] {
manager->notificationActivated(_peerId, _msgId);
});
void NotificationData::notificationClicked(uint id, const QString &actionId) {
if (id != _notificationId) {
return;
}
if (actionId != qsl("default") && actionId != qsl("mail-reply-sender")) {
return;
}
const auto manager = _manager;
crl::on_main(manager, [=] {
manager->notificationActivated(_peerId, _msgId);
});
}
void NotificationData::notificationReplied(uint id, const QString &text) {

View File

@ -72,7 +72,7 @@ private:
private slots:
void notificationClosed(uint id);
void notificationClicked(uint id);
void notificationClicked(uint id, const QString &actionId);
void notificationReplied(uint id, const QString &text);
};