From a68496857d8aae083232475f518d61cfa4099c64 Mon Sep 17 00:00:00 2001 From: Tha_14 Date: Fri, 17 May 2024 17:35:48 -0700 Subject: [PATCH] add title + self check --- plugins/plugin_message_n10n.cpp | 4 ++-- src/message_n10n.cpp | 26 +++++++++++++++++++++++--- src/message_n10n.hpp | 12 +++--------- 3 files changed, 28 insertions(+), 14 deletions(-) diff --git a/plugins/plugin_message_n10n.cpp b/plugins/plugin_message_n10n.cpp index e8b72c4..4146a50 100644 --- a/plugins/plugin_message_n10n.cpp +++ b/plugins/plugin_message_n10n.cpp @@ -26,12 +26,12 @@ SOLANA_PLUGIN_EXPORT uint32_t solana_plugin_start(struct SolanaAPI* solana_api) } try { - //auto* cr = PLUG_RESOLVE_INSTANCE_VERSIONED(Contact3Registry, "1"); + auto* cr = PLUG_RESOLVE_INSTANCE_VERSIONED(Contact3Registry, "1"); auto* rmm = PLUG_RESOLVE_INSTANCE(RegistryMessageModel); // static store, could be anywhere tho // construct with fetched dependencies - g_mn10n = std::make_unique(*rmm); + g_mn10n = std::make_unique(*cr, *rmm); // register types PLUG_PROVIDE_INSTANCE(MessageN10n, plugin_name, g_mn10n.get()); diff --git a/src/message_n10n.cpp b/src/message_n10n.cpp index ab9db5d..8bd8584 100644 --- a/src/message_n10n.cpp +++ b/src/message_n10n.cpp @@ -1,6 +1,7 @@ #include "./message_n10n.hpp" #include +#include #include @@ -29,7 +30,7 @@ class OurHandler : public WinToastLib::IWinToastHandler { }; -MessageN10n::MessageN10n(RegistryMessageModel& rmm) : _rmm(rmm) { +MessageN10n::MessageN10n(Contact3Registry& cr, RegistryMessageModel& rmm) : _cr(cr), _rmm(rmm) { // Register WinToast App User Model WinToastLib::WinToast::instance()->setAppName(L"Tomato"); const auto aumi = WinToastLib::WinToast::configureAUMI(L"green", L"solanaceae", L"solanaceae_message_n10n", L"20240517"); @@ -49,12 +50,31 @@ MessageN10n::~MessageN10n(void) { bool MessageN10n::onEvent(const Message::Events::MessageConstruct& e) { std::cout << "message constructed called\n"; - if (!e.e.all_of()) { + if (!e.e.all_of< + Message::Components::MessageText, + Message::Components::ContactFrom, + Message::Components::ContactTo + >()) { return false; } + const auto sender_c = e.e.get().c; + + if (_cr.all_of(sender_c)) { + return false; + } + + std::string title { + _cr.get(sender_c).name + }; + auto templ = WinToastLib::WinToastTemplate(WinToastLib::WinToastTemplate::Text02); - templ.setTextField(L"title", WinToastLib::WinToastTemplate::FirstLine); + templ.setTextField( + std::wstring_convert>{}.from_bytes( + title + ), + WinToastLib::WinToastTemplate::FirstLine + ); templ.setTextField( std::wstring_convert>{}.from_bytes( e.e.get().text diff --git a/src/message_n10n.hpp b/src/message_n10n.hpp index cf19b21..620373f 100644 --- a/src/message_n10n.hpp +++ b/src/message_n10n.hpp @@ -2,21 +2,15 @@ #include -class MessageN10n : public RegistryMessageModelEventI {//, public WinToastLib::IWinToastHandler { +class MessageN10n : public RegistryMessageModelEventI { + Contact3Registry& _cr; RegistryMessageModel& _rmm; public: - MessageN10n(RegistryMessageModel& rmm); + MessageN10n(Contact3Registry& cr, RegistryMessageModel& rmm); virtual ~MessageN10n(void); protected: // rmm bool onEvent(const Message::Events::MessageConstruct& e) override; -/* - protected: // wintoast - void toastActivated(void) const override; - void toastActivated(int actionIndex) const override; - void toastDismissed(WinToastDismissalReason state) const override; - void toastFailed(void) const override; - */ };