File indexing completed on 2025-02-16 04:23:12

0001 /*
0002     SPDX-FileCopyrightText: 2022 Volker Krause <vkrause@kde.org>
0003     SPDX-License-Identifier: LGPL-2.0-or-later
0004 */
0005 
0006 #include "client.h"
0007 #include "connector1iface.h"
0008 #include "logging.h"
0009 
0010 #include "../shared/unifiedpush-constants.h"
0011 
0012 #include <QDBusConnection>
0013 #include <QDBusConnectionInterface>
0014 #include <QSettings>
0015 
0016 using namespace KUnifiedPush;
0017 
0018 Client Client::load(const QString &token, QSettings &settings)
0019 {
0020     settings.beginGroup(token);
0021     Client client;
0022     client.token = token;
0023     client.remoteId = settings.value(QStringLiteral("RemoteId"), QString()).toString();
0024     client.serviceName = settings.value(QStringLiteral("ServiceName"), QString()).toString();
0025     client.endpoint = settings.value(QStringLiteral("Endpoint"), QString()).toString();
0026     client.description = settings.value(QStringLiteral("Description"), QString()).toString();
0027     settings.endGroup();
0028     return client;
0029 }
0030 
0031 void Client::store(QSettings& settings) const
0032 {
0033     settings.beginGroup(token);
0034     settings.setValue(QStringLiteral("RemoteId"), remoteId);
0035     settings.setValue(QStringLiteral("ServiceName"), serviceName);
0036     settings.setValue(QStringLiteral("Endpoint"), endpoint);
0037     settings.setValue(QStringLiteral("Description"), description);
0038     settings.endGroup();
0039 }
0040 
0041 bool Client::isValid() const
0042 {
0043     return !token.isEmpty() && !serviceName.isEmpty();
0044 }
0045 
0046 void Client::activate() const
0047 {
0048     qCDebug(Log) << "activating" << serviceName;
0049     QDBusConnection::sessionBus().interface()->startService(serviceName);
0050 }
0051 
0052 OrgUnifiedpushConnector1Interface Client::connector() const
0053 {
0054     return OrgUnifiedpushConnector1Interface(serviceName, QLatin1String(UP_CONNECTOR_PATH), QDBusConnection::sessionBus());
0055 }