mirror of
https://github.com/Quill-OS/quill.git
synced 2024-10-31 21:33:22 -07:00
Oops, forgot some files
This commit is contained in:
parent
7143c85201
commit
27974b5e97
2 changed files with 91 additions and 0 deletions
56
src/telemetry/telemetry.cpp
Normal file
56
src/telemetry/telemetry.cpp
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
#include "telemetry.h"
|
||||||
|
|
||||||
|
telemetry::telemetry(QObject *parent)
|
||||||
|
: QObject{parent}
|
||||||
|
{
|
||||||
|
QTimer::singleShot(100, this, SLOT(telemetrySlot()));
|
||||||
|
}
|
||||||
|
|
||||||
|
QJsonObject telemetry::collectDeviceInformation() {
|
||||||
|
QJsonObject data;
|
||||||
|
data.insert("DeviceUID", getUID());
|
||||||
|
data.insert("SystemVersion", readFile("/opt/version").trimmed());
|
||||||
|
data.insert("Device", global::deviceID.trimmed());
|
||||||
|
if(checkconfig("/external_root/opt/root/rooted")) {
|
||||||
|
data.insert("DeviceRooted", "true");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
data.insert("DeviceRooted", "false");
|
||||||
|
}
|
||||||
|
if(checkconfig("/external_root/opt/developer/valid-key")) {
|
||||||
|
data.insert("DeveloperKeyInstalled", "true");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
data.insert("DeveloperKeyInstalled", "false");
|
||||||
|
}
|
||||||
|
data.insert("Message", message);
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool telemetry::sendDeviceInformation(QJsonObject data) {
|
||||||
|
log("Telemetry data to be sent to server: " + QJsonDocument(data).toJson(QJsonDocument::Compact), className);
|
||||||
|
|
||||||
|
// NOTE: This URL *will* change in the future
|
||||||
|
// TODO: Add error-handling
|
||||||
|
QNetworkRequest request(QUrl("http://192.168.3.1:8080/"));
|
||||||
|
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
|
||||||
|
|
||||||
|
QNetworkAccessManager nam;
|
||||||
|
QNetworkReply * reply = nam.post(request, QJsonDocument(data).toJson());
|
||||||
|
while(!reply->isFinished()) {
|
||||||
|
QApplication::processEvents();
|
||||||
|
}
|
||||||
|
QByteArray responseData = reply->readAll();
|
||||||
|
reply->deleteLater();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void telemetry::telemetrySlot() {
|
||||||
|
QJsonObject data = collectDeviceInformation();
|
||||||
|
if(sendDeviceInformation(data)) {
|
||||||
|
writeFile("/mnt/onboard/.adds/inkbox/.config/24-telemetry/asked", "true");
|
||||||
|
writeFile("/mnt/onboard/.adds/inkbox/.config/24-telemetry/enabled", "true");
|
||||||
|
showToast("Data successfully sent\nThank you!");
|
||||||
|
}
|
||||||
|
}
|
35
src/telemetry/telemetry.h
Normal file
35
src/telemetry/telemetry.h
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
#ifndef TELEMETRY_H
|
||||||
|
#define TELEMETRY_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QtNetwork>
|
||||||
|
#include <QNetworkAccessManager>
|
||||||
|
#include <QApplication>
|
||||||
|
#include "functions.h"
|
||||||
|
|
||||||
|
class telemetry : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit telemetry(QObject *parent = nullptr);
|
||||||
|
QString className = this->metaObject()->className();
|
||||||
|
QString message;
|
||||||
|
QString deviceUID;
|
||||||
|
QString systemVersion;
|
||||||
|
QString device;
|
||||||
|
bool deviceRooted;
|
||||||
|
bool developerKeyInstalled;
|
||||||
|
bool requestSuccessful;
|
||||||
|
|
||||||
|
private:
|
||||||
|
QJsonObject collectDeviceInformation();
|
||||||
|
bool sendDeviceInformation(QJsonObject data);
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void telemetrySlot();
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void showToast(QString message);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // TELEMETRY_H
|
Loading…
Reference in a new issue