Work around SMS not being sent from cli
Something in the demarshalling of the address list is broken and I can't figure out why. Instead expose a much simpler method that only takes one address string. This removes the ability to send to multiple destinations from one command, but that's better than not working at all. This patch is for 20.08 only as the marshalling works differently in master anyway.
This commit is contained in:
parent
37f82dcc8f
commit
674e826bb6
3 changed files with 16 additions and 7 deletions
|
@ -265,16 +265,11 @@ int main(int argc, char** argv)
|
|||
qDBusRegisterMetaType<ConversationAddress>();
|
||||
QVariantList addresses;
|
||||
|
||||
const QStringList addressList = parser.value(QStringLiteral("destination")).split(QRegularExpression(QStringLiteral("\\s+")));
|
||||
|
||||
for (const QString& input : addressList) {
|
||||
ConversationAddress address(input);
|
||||
addresses << QVariant::fromValue(address);
|
||||
}
|
||||
const QString address = parser.value(QStringLiteral("destination"));
|
||||
|
||||
QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kdeconnect"), QStringLiteral("/modules/kdeconnect/devices/") + device + QStringLiteral("/sms"), QStringLiteral("org.kde.kdeconnect.device.sms"), QStringLiteral("sendSms"));
|
||||
const QString text = parser.value(QStringLiteral("send-sms"));
|
||||
msg.setArguments(QVariantList() << QVariant::fromValue(QDBusVariant(addresses)) << text);
|
||||
msg.setArguments(QVariantList() << address << text);
|
||||
blockOnReply(DBusHelper::sessionBus().asyncCall(msg));
|
||||
} else {
|
||||
QTextStream(stderr) << i18n("error: should specify the SMS's recipient by passing --destination <phone number>");
|
||||
|
|
|
@ -81,6 +81,19 @@ void SmsPlugin::sendSms(const QDBusVariant& addresses, const QString& messageBod
|
|||
sendPacket(np);
|
||||
}
|
||||
|
||||
void SmsPlugin::sendSms(const QString& address, const QString& messageBody)
|
||||
{
|
||||
QVariantMap packetMap({
|
||||
{QStringLiteral("sendSms"), true},
|
||||
{QStringLiteral("phoneNumber"), address},
|
||||
{QStringLiteral("messageBody"), messageBody}
|
||||
});
|
||||
|
||||
NetworkPacket np(PACKET_TYPE_SMS_REQUEST, packetMap);
|
||||
qCDebug(KDECONNECT_PLUGIN_SMS) << "Dispatching SMS send request to remote";
|
||||
sendPacket(np);
|
||||
}
|
||||
|
||||
void SmsPlugin::requestAllConversations()
|
||||
{
|
||||
NetworkPacket np(PACKET_TYPE_SMS_REQUEST_CONVERSATIONS);
|
||||
|
|
|
@ -128,6 +128,7 @@ public:
|
|||
|
||||
public Q_SLOTS:
|
||||
Q_SCRIPTABLE void sendSms(const QDBusVariant& addresses, const QString& messageBody, const qint64 subID = -1);
|
||||
Q_SCRIPTABLE void sendSms(const QString& address, const QString& messageBody);
|
||||
|
||||
/**
|
||||
* Send a request to the remote for all of its conversations
|
||||
|
|
Loading…
Reference in a new issue