File indexing completed on 2024-05-19 04:03:03
0001 /* 0002 SPDX-FileCopyrightText: 2018 Nicolas Fella <nicolas.fella@gmx.de> 0003 0004 SPDX-License-Identifier: LGPL-2.1-or-later 0005 */ 0006 0007 #include <KIO/CommandLauncherJob> 0008 #include <KLocalizedString> 0009 #include <KPluginFactory> 0010 0011 #include <QJsonArray> 0012 #include <QProcess> 0013 #include <QStandardPaths> 0014 #include <QTimer> 0015 #include <purpose/pluginbase.h> 0016 0017 class KDEConnectSMSJob : public Purpose::Job 0018 { 0019 Q_OBJECT 0020 public: 0021 KDEConnectSMSJob(QObject *parent) 0022 : Purpose::Job(parent) 0023 { 0024 } 0025 0026 QStringList arrayToList(const QJsonArray &array) 0027 { 0028 QStringList ret; 0029 for (const QJsonValue &val : array) { 0030 ret += val.toString(); 0031 } 0032 return ret; 0033 } 0034 0035 void start() override 0036 { 0037 QJsonArray urlsJson = data().value(QLatin1String("urls")).toArray(); 0038 QString title = data().value(QLatin1String("title")).toString(); 0039 QString message = i18n("%1 - %2").arg(title).arg(arrayToList(urlsJson).join(QLatin1Char(' '))); 0040 0041 auto *job = new KIO::CommandLauncherJob(QStringLiteral("kdeconnect-sms"), {QStringLiteral("--message"), message}); 0042 job->setDesktopName(QStringLiteral("org.kde.kdeconnect.sms")); 0043 connect(job, &KJob::finished, this, &KDEConnectSMSJob::emitResult); 0044 job->start(); 0045 } 0046 }; 0047 0048 class KDEConnectSMSPlugin : public Purpose::PluginBase 0049 { 0050 Q_OBJECT 0051 public: 0052 using PluginBase::PluginBase; 0053 Purpose::Job *createJob() const override 0054 { 0055 return new KDEConnectSMSJob(nullptr); 0056 } 0057 }; 0058 0059 K_PLUGIN_FACTORY_WITH_JSON(KDEConnectSMS, "kdeconnectsmsplugin.json", registerPlugin<KDEConnectSMSPlugin>();) 0060 0061 #include "kdeconnectsmsplugin.moc"