/* SPDX-FileCopyrightText: 2018 Nicolas Fella SPDX-License-Identifier: LGPL-2.1-or-later */ #include #include #include #include #include #include #include #include class KDEConnectSMSJob : public Purpose::Job { Q_OBJECT public: KDEConnectSMSJob(QObject *parent) : Purpose::Job(parent) { } QStringList arrayToList(const QJsonArray &array) { QStringList ret; for (const QJsonValue &val : array) { ret += val.toString(); } return ret; } void start() override { QJsonArray urlsJson = data().value(QLatin1String("urls")).toArray(); QString title = data().value(QLatin1String("title")).toString(); QString message = i18n("%1 - %2").arg(title).arg(arrayToList(urlsJson).join(QLatin1Char(' '))); auto *job = new KIO::CommandLauncherJob(QStringLiteral("kdeconnect-sms"), {QStringLiteral("--message"), message}); job->setDesktopName(QStringLiteral("org.kde.kdeconnect.sms")); connect(job, &KJob::finished, this, &KDEConnectSMSJob::emitResult); job->start(); } }; class KDEConnectSMSPlugin : public Purpose::PluginBase { Q_OBJECT public: using PluginBase::PluginBase; Purpose::Job *createJob() const override { return new KDEConnectSMSJob(nullptr); } }; K_PLUGIN_FACTORY_WITH_JSON(KDEConnectSMS, "kdeconnectsmsplugin.json", registerPlugin();) #include "kdeconnectsmsplugin.moc"