Notifications: Avoid popup in current chat, play sound (again), fixes #233

This commit is contained in:
Sebastian Wolf 2021-01-19 21:48:28 +01:00
parent 390f6eaca6
commit 066037f1a5
No known key found for this signature in database
GPG key ID: CEA9522B5F38A90A

View file

@ -61,6 +61,7 @@ namespace {
const QString HINT_TOTAL_COUNT("x-fernschreiber.total_count"); // int const QString HINT_TOTAL_COUNT("x-fernschreiber.total_count"); // int
const QString HINT_VIBRA("x-nemo-vibrate"); // bool const QString HINT_VIBRA("x-nemo-vibrate"); // bool
const QString HINT_SUPPRESS_SOUND("suppress-sound"); // bool
const QString HINT_DISPLAY_ON("x-nemo-display-on"); // bool const QString HINT_DISPLAY_ON("x-nemo-display-on"); // bool
const QString HINT_VISIBILITY("x-nemo-visibility"); // QString const QString HINT_VISIBILITY("x-nemo-visibility"); // QString
const QString VISIBILITY_PUBLIC("public"); const QString VISIBILITY_PUBLIC("public");
@ -207,8 +208,10 @@ void NotificationManager::updateNotificationGroup(int groupId, qlonglong chatId,
} else { } else {
// New notification // New notification
Notification *notification = new Notification(this); Notification *notification = new Notification(this);
notification->setCategory("x-nemo.messaging.im");
notification->setAppName(APP_NAME); notification->setAppName(APP_NAME);
notification->setAppIcon(appIconFile); notification->setAppIcon(appIconFile);
notification->setIcon(appIconFile);
notification->setHintValue(HINT_GROUP_ID, groupId); notification->setHintValue(HINT_GROUP_ID, groupId);
notification->setHintValue(HINT_CHAT_ID, chatId); notification->setHintValue(HINT_CHAT_ID, chatId);
notification->setHintValue(HINT_TOTAL_COUNT, totalCount); notification->setHintValue(HINT_TOTAL_COUNT, totalCount);
@ -358,17 +361,19 @@ void NotificationManager::publishNotification(const NotificationGroup *notificat
const QString summary(chatInformation ? chatInformation->title : QString()); const QString summary(chatInformation ? chatInformation->title : QString());
nemoNotification->setBody(notificationBody); nemoNotification->setBody(notificationBody);
nemoNotification->setSummary(summary); nemoNotification->setSummary(summary);
nemoNotification->setPreviewBody(notificationBody);
nemoNotification->setPreviewSummary(summary);
nemoNotification->setHintValue(HINT_VIBRA, needFeedback); nemoNotification->setHintValue(HINT_VIBRA, needFeedback);
// Don't show popup for the currently open chat // Don't show popup for the currently open chat
if (!needFeedback || (chatModel->getChatId() == notificationGroup->chatId && if (!needFeedback || (chatModel->getChatId() == notificationGroup->chatId &&
qGuiApp->applicationState() == Qt::ApplicationActive)) { qGuiApp->applicationState() == Qt::ApplicationActive)) {
nemoNotification->setHintValue(HINT_SUPPRESS_SOUND, true);
nemoNotification->setHintValue(HINT_DISPLAY_ON, false); nemoNotification->setHintValue(HINT_DISPLAY_ON, false);
nemoNotification->setHintValue(HINT_VISIBILITY, QString()); nemoNotification->setHintValue(HINT_VISIBILITY, QString());
nemoNotification->setUrgency(Notification::Low); nemoNotification->setUrgency(Notification::Low);
} else { } else {
nemoNotification->setPreviewBody(notificationBody);
nemoNotification->setPreviewSummary(summary);
nemoNotification->setHintValue(HINT_SUPPRESS_SOUND, false);
nemoNotification->setHintValue(HINT_DISPLAY_ON, appSettings->notificationTurnsDisplayOn()); nemoNotification->setHintValue(HINT_DISPLAY_ON, appSettings->notificationTurnsDisplayOn());
nemoNotification->setHintValue(HINT_VISIBILITY, VISIBILITY_PUBLIC); nemoNotification->setHintValue(HINT_VISIBILITY, VISIBILITY_PUBLIC);
nemoNotification->setUrgency(Notification::Normal); nemoNotification->setUrgency(Notification::Normal);