summary refs log tree commit diff
path: root/src/MatrixClient.cc
diff options
context:
space:
mode:
authorThomas Herzog <thomas.herzog@mail.com>2017-10-31 19:11:49 +0100
committermujx <mujx@users.noreply.github.com>2017-10-31 20:11:49 +0200
commit287b5aa4c0d52e1ac80a0785ab136aa0f98b3e9f (patch)
tree8535d6ec3717ba551b17fc70f0cc80306273e82c /src/MatrixClient.cc
parentAdd missing headers (diff)
downloadnheko-287b5aa4c0d52e1ac80a0785ab136aa0f98b3e9f.tar.xz
Implemented sending of typing notifications (#105)
Diffstat (limited to 'src/MatrixClient.cc')
-rw-r--r--src/MatrixClient.cc50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/MatrixClient.cc b/src/MatrixClient.cc

index e1085e82..c6ef501f 100644 --- a/src/MatrixClient.cc +++ b/src/MatrixClient.cc
@@ -794,3 +794,53 @@ MatrixClient::leaveRoom(const QString &roomId) emit leftRoom(roomId); }); } + +void +MatrixClient::sendTypingNotification(const QString &roomid, int timeoutInMillis) +{ + QSettings settings; + QString user_id = settings.value("auth/user_id").toString(); + + QUrlQuery query; + query.addQueryItem("access_token", token_); + + QUrl endpoint(server_); + endpoint.setPath(clientApiUrl_ + QString("/rooms/%1/typing/%2").arg(roomid).arg(user_id)); + + endpoint.setQuery(query); + + QString msgType(""); + QJsonObject body; + + body = { { "typing", true }, { "timeout", timeoutInMillis } }; + + QNetworkRequest request(QString(endpoint.toEncoded())); + request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); + + put(request, QJsonDocument(body).toJson(QJsonDocument::Compact)); +} + +void +MatrixClient::removeTypingNotification(const QString &roomid) +{ + QSettings settings; + QString user_id = settings.value("auth/user_id").toString(); + + QUrlQuery query; + query.addQueryItem("access_token", token_); + + QUrl endpoint(server_); + endpoint.setPath(clientApiUrl_ + QString("/rooms/%1/typing/%2").arg(roomid).arg(user_id)); + + endpoint.setQuery(query); + + QString msgType(""); + QJsonObject body; + + body = { { "typing", false } }; + + QNetworkRequest request(QString(endpoint.toEncoded())); + request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); + + put(request, QJsonDocument(body).toJson(QJsonDocument::Compact)); +}