Highlight higlight tweaks in the timeline

fixes #400
fixes #1136
This commit is contained in:
Nicolas Werner 2022-11-01 23:26:21 +01:00
parent 231bebba44
commit 40ac55ddd9
No known key found for this signature in database
GPG key ID: C8D75E610773F2D9
5 changed files with 40 additions and 0 deletions

View file

@ -526,6 +526,7 @@ TimelineModel::roleNames() const
{IsEncrypted, "isEncrypted"},
{IsStateEvent, "isStateEvent"},
{Trustlevel, "trustlevel"},
{Notificationlevel, "notificationlevel"},
{EncryptionError, "encryptionError"},
{ReplyTo, "replyTo"},
{ThreadId, "threadId"},
@ -737,6 +738,26 @@ TimelineModel::data(const mtx::events::collections::TimelineEvents &event, int r
return crypto::Trust::Unverified;
}
case Notificationlevel: {
const auto &push = ChatPage::instance()->pushruleEvaluator();
if (push) {
auto actions = push->evaluate({event}, pushrulesRoomContext());
if (std::find(actions.begin(),
actions.end(),
mtx::pushrules::actions::Action{
mtx::pushrules::actions::set_tweak_highlight{}}) != actions.end()) {
return qml_mtx_events::NotificationLevel::Highlight;
}
if (std::find(actions.begin(),
actions.end(),
mtx::pushrules::actions::Action{mtx::pushrules::actions::notify{}}) !=
actions.end()) {
return qml_mtx_events::NotificationLevel::Notify;
}
}
return qml_mtx_events::NotificationLevel::Nothing;
}
case EncryptionError:
return events.decryptionError(event_id(event));