diff --git a/src/notifications/ManagerMac.cpp b/src/notifications/ManagerMac.cpp
index d5faaf59..cec87c66 100644
--- a/src/notifications/ManagerMac.cpp
+++ b/src/notifications/ManagerMac.cpp
@@ -1,5 +1,6 @@
// SPDX-FileCopyrightText: 2021 Nheko Contributors
// SPDX-FileCopyrightText: 2022 Nheko Contributors
+// SPDX-FileCopyrightText: 2023 Nheko Contributors
//
// SPDX-License-Identifier: GPL-3.0-or-later
@@ -40,12 +41,36 @@ NotificationsManager::postNotification(const mtx::responses::Notification ¬if
const auto isEncrypted = std::get_if<mtx::events::EncryptedEvent<mtx::events::msg::Encrypted>>(
¬ification.event) != nullptr;
const auto isReply = utils::isReply(notification.event);
+
+ // Putting these here to pass along since I'm not sure how
+ // our translate step interacts with .mm files
+ const auto respondStr = QObject::tr("Respond");
+ const auto sendStr = QObject::tr("Send");
+ const auto placeholder = QObject::tr("Write a message...");
+
+ auto playSound = false;
+
+ if (std::find(notification.actions.begin(),
+ notification.actions.end(),
+ mtx::pushrules::actions::Action{mtx::pushrules::actions::set_tweak_sound{
+ .value = "default"}}) != notification.actions.end()) {
+ playSound = true;
+ }
if (isEncrypted) {
// TODO: decrypt this message if the decryption setting is on in the UserSettings
const QString messageInfo = (isReply ? tr("%1 replied with an encrypted message")
: tr("%1 sent an encrypted message"))
.arg(sender);
- objCxxPostNotification(room_name, room_id, event_id, messageInfo, "", "");
+ objCxxPostNotification(room_name,
+ room_id,
+ event_id,
+ messageInfo,
+ "",
+ "",
+ respondStr,
+ sendStr,
+ placeholder,
+ playSound);
} else {
const QString messageInfo =
(isReply ? tr("%1 replied to a message") : tr("%1 sent a message")).arg(sender);
@@ -53,17 +78,37 @@ NotificationsManager::postNotification(const mtx::responses::Notification ¬if
MxcImageProvider::download(
QString::fromStdString(mtx::accessors::url(notification.event)).remove("mxc://"),
QSize(200, 80),
- [this, notification, room_name, room_id, event_id, messageInfo](
- QString, QSize, QImage, QString imgPath) {
+ [this,
+ notification,
+ room_name,
+ room_id,
+ event_id,
+ messageInfo,
+ respondStr,
+ sendStr,
+ placeholder,
+ playSound](QString, QSize, QImage, QString imgPath) {
objCxxPostNotification(room_name,
room_id,
event_id,
messageInfo,
formatNotification(notification),
- imgPath);
+ imgPath,
+ respondStr,
+ sendStr,
+ placeholder,
+ playSound);
});
else
- objCxxPostNotification(
- room_name, room_id, event_id, messageInfo, formatNotification(notification), "");
+ objCxxPostNotification(room_name,
+ room_id,
+ event_id,
+ messageInfo,
+ formatNotification(notification),
+ "",
+ respondStr,
+ sendStr,
+ placeholder,
+ playSound);
}
}
|