From d1eb35197546a491ce3503c7c2582980e90b6c52 Mon Sep 17 00:00:00 2001 From: Nicolas Werner Date: Wed, 21 Aug 2024 00:14:34 +0200 Subject: Allow loading image only after explicit interactions --- src/notifications/Manager.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/notifications/Manager.cpp') diff --git a/src/notifications/Manager.cpp b/src/notifications/Manager.cpp index d15eea51..f67e01ff 100644 --- a/src/notifications/Manager.cpp +++ b/src/notifications/Manager.cpp @@ -5,9 +5,33 @@ #include "notifications/Manager.h" #include "Cache.h" +#include "Cache_p.h" #include "EventAccessors.h" +#include "UserSettingsPage.h" #include "Utils.h" +bool +NotificationsManager::allowShowingImages(const mtx::responses::Notification ¬ification) +{ + auto show = UserSettings::instance()->showImage(); + + switch (show) { + case UserSettings::ShowImage::Always: + return true; + case UserSettings::ShowImage::OnlyPrivate: { + auto accessRules = cache::client() + ->getStateEvent(notification.room_id) + .value_or(mtx::events::StateEvent{}) + .content; + + return accessRules.join_rule != mtx::events::state::JoinRule::Public; + } + case UserSettings::ShowImage::Never: + default: + return false; + } +} + QString NotificationsManager::getMessageTemplate(const mtx::responses::Notification ¬ification) { -- cgit 1.5.1