/**************************************************************************** ** ** Copyright (C) 2013-2026 Jolla Ltd. ** ** This program/library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Lesser General Public License ** version 2.1 as published by the Free Software Foundation. ** ** This program/library is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ** Lesser General Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with this program/library; if not, write to the Free ** Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ** 02110-1301 USA ** ****************************************************************************/ #include "mastodonnotificationsplugin.h" #include "mastodonnotificationssyncadaptor.h" #include "socialnetworksyncadaptor.h" #include #include #include namespace { class AppTranslator : public QTranslator { public: explicit AppTranslator(QObject *parent) : QTranslator(parent) { qApp->installTranslator(this); } ~AppTranslator() override { qApp->removeTranslator(this); } }; void ensureNotificationTranslations() { static bool initialized = false; if (initialized) { return; } QCoreApplication *app = QCoreApplication::instance(); if (!app) { return; } AppTranslator *engineeringEnglish = new AppTranslator(app); engineeringEnglish->load(QStringLiteral("lipstick-jolla-home-mastodon-notifications_eng_en"), QStringLiteral("/usr/share/translations")); AppTranslator *translator = new AppTranslator(app); translator->load(QLocale(), QStringLiteral("lipstick-jolla-home-mastodon-notifications"), QStringLiteral("-"), QStringLiteral("/usr/share/translations")); initialized = true; } } MastodonNotificationsPlugin::MastodonNotificationsPlugin(const QString& pluginName, const Buteo::SyncProfile& profile, Buteo::PluginCbInterface *callbackInterface) : SocialdButeoPlugin(pluginName, profile, callbackInterface, QStringLiteral("mastodon"), SocialNetworkSyncAdaptor::dataTypeName(SocialNetworkSyncAdaptor::Notifications)) { ensureNotificationTranslations(); } MastodonNotificationsPlugin::~MastodonNotificationsPlugin() { } SocialNetworkSyncAdaptor *MastodonNotificationsPlugin::createSocialNetworkSyncAdaptor() { return new MastodonNotificationsSyncAdaptor(this); } Buteo::ClientPlugin* MastodonNotificationsPluginLoader::createClientPlugin( const QString& pluginName, const Buteo::SyncProfile& profile, Buteo::PluginCbInterface* cbInterface) { return new MastodonNotificationsPlugin(pluginName, profile, cbInterface); }