From 3b7d5d3c803cac95ef8c2f20036486082c0718d4 Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Tue, 5 Jan 2021 17:02:54 +0400 Subject: [PATCH] Eliminate ifndefs in notifications_manager_linux --- Telegram/CMakeLists.txt | 6 +++ .../linux/notifications_manager_linux.cpp | 35 ---------------- .../notifications_manager_linux_dummy.cpp | 40 +++++++++++++++++++ .../window/notifications_manager.h | 24 +++++++++++ 4 files changed, 70 insertions(+), 35 deletions(-) create mode 100644 Telegram/SourceFiles/platform/linux/notifications_manager_linux_dummy.cpp diff --git a/Telegram/CMakeLists.txt b/Telegram/CMakeLists.txt index bd0322afc..4ebda77fe 100644 --- a/Telegram/CMakeLists.txt +++ b/Telegram/CMakeLists.txt @@ -1114,6 +1114,12 @@ if (LINUX AND DESKTOP_APP_DISABLE_DBUS_INTEGRATION) remove_target_sources(Telegram ${src_loc} platform/linux/linux_gsd_media_keys.cpp platform/linux/linux_gsd_media_keys.h + platform/linux/notifications_manager_linux.cpp + ) + + nice_target_sources(Telegram ${src_loc} + PRIVATE + platform/linux/notifications_manager_linux_dummy.cpp ) endif() diff --git a/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp b/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp index bacb22379..771db12f6 100644 --- a/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp @@ -17,7 +17,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "main/main_session.h" #include "lang/lang_keys.h" -#ifndef DESKTOP_APP_DISABLE_DBUS_INTEGRATION #include #include #include @@ -29,12 +28,9 @@ extern "C" { #include #define signals public } // extern "C" -#endif // !DESKTOP_APP_DISABLE_DBUS_INTEGRATION namespace Platform { namespace Notifications { - -#ifndef DESKTOP_APP_DISABLE_DBUS_INTEGRATION namespace { constexpr auto kDBusTimeout = 30000; @@ -615,16 +611,13 @@ void NotificationData::notificationReplied(uint id, const QString &text) { } } // namespace -#endif // !DESKTOP_APP_DISABLE_DBUS_INTEGRATION bool SkipAudio() { -#ifndef DESKTOP_APP_DISABLE_DBUS_INTEGRATION if (Supported() && GetCapabilities().contains(qsl("inhibitions")) && !InhibitedNotSupported) { return Inhibited(); } -#endif // !DESKTOP_APP_DISABLE_DBUS_INTEGRATION return false; } @@ -638,18 +631,12 @@ bool SkipFlashBounce() { } bool Supported() { -#ifndef DESKTOP_APP_DISABLE_DBUS_INTEGRATION return NotificationsSupported; -#endif // !DESKTOP_APP_DISABLE_DBUS_INTEGRATION - - return false; } std::unique_ptr Create( Window::Notifications::System *system) { -#ifndef DESKTOP_APP_DISABLE_DBUS_INTEGRATION GetSupported(); -#endif // !DESKTOP_APP_DISABLE_DBUS_INTEGRATION if ((Core::App().settings().nativeNotifications() && Supported()) || IsWayland()) { @@ -659,27 +646,6 @@ std::unique_ptr Create( return nullptr; } -#ifdef DESKTOP_APP_DISABLE_DBUS_INTEGRATION -class Manager::Private { -public: - using Type = Window::Notifications::CachedUserpics::Type; - explicit Private(not_null manager, Type type) {} - - void showNotification( - not_null peer, - std::shared_ptr &userpicView, - MsgId msgId, - const QString &title, - const QString &subtitle, - const QString &msg, - bool hideNameAndPhoto, - bool hideReplyButton) {} - void clearAll() {} - void clearFromHistory(not_null history) {} - void clearFromSession(not_null session) {} - void clearNotification(NotificationId id) {} -}; -#else // DESKTOP_APP_DISABLE_DBUS_INTEGRATION class Manager::Private { public: using Type = Window::Notifications::CachedUserpics::Type; @@ -866,7 +832,6 @@ void Manager::Private::clearNotification(NotificationId id) { Manager::Private::~Private() { clearAll(); } -#endif // !DESKTOP_APP_DISABLE_DBUS_INTEGRATION Manager::Manager(not_null system) : NativeManager(system) diff --git a/Telegram/SourceFiles/platform/linux/notifications_manager_linux_dummy.cpp b/Telegram/SourceFiles/platform/linux/notifications_manager_linux_dummy.cpp new file mode 100644 index 000000000..44ef96fa1 --- /dev/null +++ b/Telegram/SourceFiles/platform/linux/notifications_manager_linux_dummy.cpp @@ -0,0 +1,40 @@ + +/* +This file is part of Telegram Desktop, +the official desktop application for the Telegram messaging service. + +For license and copyright information please follow this link: +https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL +*/ +#include "platform/linux/notifications_manager_linux.h" + +namespace Platform { +namespace Notifications { + +bool SkipAudio() { + return false; +} + +bool SkipToast() { + return false; +} + +bool SkipFlashBounce() { + return false; +} + +bool Supported() { + return false; +} + +std::unique_ptr Create( + Window::Notifications::System *system) { + if (IsWayland()) { + return std::make_unique(system); + } + + return nullptr; +} + +} // namespace Notifications +} // namespace Platform diff --git a/Telegram/SourceFiles/window/notifications_manager.h b/Telegram/SourceFiles/window/notifications_manager.h index 13fbb0c44..f3953f95e 100644 --- a/Telegram/SourceFiles/window/notifications_manager.h +++ b/Telegram/SourceFiles/window/notifications_manager.h @@ -248,6 +248,30 @@ protected: }; +class DummyManager : public NativeManager { +public: + using NativeManager::NativeManager; + +protected: + void doShowNativeNotification( + not_null peer, + std::shared_ptr &userpicView, + MsgId msgId, + const QString &title, + const QString &subtitle, + const QString &msg, + bool hideNameAndPhoto, + bool hideReplyButton) override { + } + void doClearAllFast() override { + } + void doClearFromHistory(not_null history) override { + } + void doClearFromSession(not_null session) override { + } + +}; + QString WrapFromScheduled(const QString &text); } // namespace Notifications