2 files changed, 17 insertions, 7 deletions
diff --git a/src/ChatPage.cpp b/src/ChatPage.cpp
index bcb89a03..27019ba3 100644
--- a/src/ChatPage.cpp
+++ b/src/ChatPage.cpp
@@ -266,6 +266,18 @@ ChatPage::ChatPage(QSharedPointer<UserSettings> userSettings, QObject *parent)
relatedEvents;
for (const auto &event : room.timeline.events) {
+ auto event_id = mtx::accessors::event_id(event);
+
+ // skip already read events
+ if (currentReadMarker &&
+ currentReadMarker > cache::getEventIndex(room_id, event_id))
+ continue;
+
+ // skip our messages
+ auto sender = mtx::accessors::sender(event);
+ if (sender == http::client()->user_id().to_string())
+ continue;
+
mtx::events::collections::TimelineEvent te{event};
std::visit([room_id = room_id](auto &event_) { event_.room_id = room_id; },
te.data);
@@ -304,13 +316,6 @@ ChatPage::ChatPage(QSharedPointer<UserSettings> userSettings, QObject *parent)
actions.end(),
mtx::pushrules::actions::Action{
mtx::pushrules::actions::notify{}}) != actions.end()) {
- auto event_id = mtx::accessors::event_id(event);
-
- // skip already read events
- if (currentReadMarker &&
- currentReadMarker > cache::getEventIndex(room_id, event_id))
- continue;
-
if (!cache::isNotificationSent(event_id)) {
// We should only send one notification per event.
cache::markSentNotification(event_id);
diff --git a/src/timeline/TimelineModel.cpp b/src/timeline/TimelineModel.cpp
index 46f8e57c..b9725ecc 100644
--- a/src/timeline/TimelineModel.cpp
+++ b/src/timeline/TimelineModel.cpp
@@ -747,6 +747,11 @@ TimelineModel::data(const mtx::events::collections::TimelineEvents &event, int r
case Notificationlevel: {
const auto &push = ChatPage::instance()->pushruleEvaluator();
if (push) {
+ // skip our messages
+ auto sender = mtx::accessors::sender(event);
+ if (sender == http::client()->user_id().to_string())
+ return qml_mtx_events::NotificationLevel::Nothing;
+
const auto &id = event_id(event);
std::vector<std::pair<mtx::common::Relation, mtx::events::collections::TimelineEvent>>
relatedEvents;
|