summaryrefslogtreecommitdiff
path: root/hostmanagerconn.cc
diff options
context:
space:
mode:
Diffstat (limited to 'hostmanagerconn.cc')
-rw-r--r--hostmanagerconn.cc64
1 files changed, 57 insertions, 7 deletions
diff --git a/hostmanagerconn.cc b/hostmanagerconn.cc
index 1f87ef2..0e1f7bb 100644
--- a/hostmanagerconn.cc
+++ b/hostmanagerconn.cc
@@ -1,6 +1,7 @@
#include <QtCore/QDebug>
#include <QtCore/QDateTime>
#include <QtCore/QTimeZone>
+#include <QtCore/QXmlStreamReader>
#include <QtCore/QXmlStreamWriter>
#include <QtCore/QJsonDocument>
#include <QtCore/QJsonObject>
@@ -10,6 +11,7 @@
static watchfish::WallTimeMonitor *monitor = 0;
#endif
+#include "sapmanager.h"
#include "sappeer.h"
#include "hostmanagerconn.h"
@@ -23,6 +25,16 @@ HostManagerConn::HostManagerConn(SAPConnection *conn, QObject *parent)
connect(_socket, SIGNAL(messageReceived()), SLOT(handleMessageReceived()));
}
+HostManagerConn::DeviceInfo HostManagerConn::parseDeviceInfo(const QString &xmlData)
+{
+ QXmlStreamReader r(xmlData);
+ DeviceInfo info;
+
+ // TODO
+
+ return info;
+}
+
void HostManagerConn::sendMessage(const QJsonObject &msg)
{
QJsonDocument doc(msg);
@@ -37,10 +49,15 @@ void HostManagerConn::handleMessage(const QJsonObject &msg)
qDebug() << "Got JSON msg" << msgId;
if (msgId == "mgr_watch_info_res") {
QJsonObject reply;
- reply["timestamp"] = QLatin1String("1407542281196=B:L>:<=LAMO");
+ QDateTime timestamp = QLocale("C").toDateTime(QString::fromLatin1(__DATE__ " " __TIME__).simplified(),
+ "MMM d yyyy HH:mm:ss");
+ reply["timestamp"] = QString("%1_%2").arg(timestamp.toTime_t())
+ .arg(_conn->peer()->localName().right(2));
reply["type"] = QLatin1String("connect");
reply["msgId"] = QLatin1String("mgr_wearable_status_req");
sendMessage(reply);
+ } else if (msgId == "mgr_wearable_status_res") {
+ // Do nothing; watch will next ask for host status
} else if (msgId == "mgr_host_status_req") {
QJsonObject reply;
reply["type"] = QLatin1String("connect");
@@ -72,14 +89,14 @@ void HostManagerConn::performTimeSync()
msg["safety_voice"] = QLatin1String("0");
msg["safetyVersion"] = QLatin1String("0");
msg["safety"] = QLatin1String("false");
- msg["tablet"] = QLatin1String("true");
+ msg["tablet"] = QLatin1String("false");
msg["incomingCall"] = QLatin1String("false");
msg["usingCamera"] = QLatin1String("false");
msg["safety_cam"] = QLatin1String("0");
QLocale l = QLocale::system();
msg["locale"] = l.name(); // i.e. es_ES
- msg["data1224"] = l.timeFormat().contains('a', Qt::CaseInsensitive) ? QLatin1String("12") : QLatin1String("24");
+ msg["date1224"] = l.timeFormat().contains('a', Qt::CaseInsensitive) ? QLatin1String("12") : QLatin1String("24");
msg["dateformat"] = QLocale::system().dateFormat(QLocale::ShortFormat);
#if SAILFISH
@@ -113,16 +130,49 @@ QString HostManagerConn::generateHostXml()
w.writeTextElement("devicePlatform", "android");
w.writeTextElement("devicePlatformVersion", "4.4.2");
w.writeTextElement("deviceType", "Host");
- w.writeTextElement("modelNumber", "EvilPhone");
- w.writeTextElement("swVersion", "1.0");
+ w.writeTextElement("modelNumber", "GT-I9500");
+ w.writeTextElement("swVersion", "android 4.4.2");
w.writeEmptyElement("connectivity");
- w.writeEmptyElement("apps");
+
+#if 0
+ w.writeStartElement("apps");
+ SAPManager *manager = SAPManager::instance();
+ foreach (const SAPManager::RegisteredApplication &app, manager->allPackages()) {
+ w.writeStartElement("app");
+ w.writeTextElement("name", app.name);
+ w.writeTextElement("packagename", app.package);
+ w.writeTextElement("version", QString::number(app.version));
+ w.writeTextElement("preloaded", app.preinstalled ? QLatin1String("true") : QLatin1String("false"));
+ w.writeTextElement("isAppWidget", "false");
+ w.writeStartElement("features");
+ w.writeTextElement("Installed", "true");
+ w.writeEndElement();
+ w.writeEndElement();
+ }
+ w.writeEndElement();
+#else
+ xml.append(QString::fromLatin1("<apps>"
+ "<app><name>Actualizar el software del Gear</name><packagename>com.sec.android.fotaprovider</packagename><version>2</version><preloaded>false</preloaded><isAppWidget>false</isAppWidget><features/></app>"
+ "<app><name>ConnectionManager</name><packagename>com.sec.android.service.connectionmanager</packagename><version>1004</version><preloaded>false</preloaded><isAppWidget>false</isAppWidget><features/></app>"
+ "<app><name>goproviders</name><packagename>com.samsung.accessory.goproviders</packagename><version>61</version><preloaded>false</preloaded><isAppWidget>false</isAppWidget><features/></app>"
+ "<app><name>SAFileTransferCore</name><packagename>com.samsung.accessory.safiletransfer</packagename><version>1</version><preloaded>false</preloaded><isAppWidget>false</isAppWidget><features/></app>"
+ "<app><name>SANotiProvider</name><packagename>com.samsung.accessory.sanotiprovider</packagename><version>1</version><preloaded>false</preloaded><isAppWidget>false</isAppWidget><features/></app>"
+ "<app><name>saproviders</name><packagename>com.samsung.accessory.saproviders</packagename><version>64</version><preloaded>false</preloaded><isAppWidget>false</isAppWidget><features/></app><app><name>TextTemplateProvider</name><packagename>com.samsung.accessory.texttemplateprovider</packagename><version>1300</version><preloaded>false</preloaded><isAppWidget>false</isAppWidget><features/></app>"
+ "<app><packagename>com.samsung.accessory.saproviders</packagename><version>64</version><features><RequiringPackage>com.samsung.w-calendar2</RequiringPackage><Installed>true</Installed></features></app><app><packagename>com.samsung.accessory.goproviders</packagename><version>61</version><features><RequiringPackage>com.samsung.wfmd</RequiringPackage><Installed>true</Installed></features></app>"
+ "<app><packagename>com.sec.android.weatherprovider</packagename><features><RequiringPackage>com.samsung.weather</RequiringPackage><Installed>false</Installed></features></app>"
+ "<app><packagename>com.samsung.accessory.goproviders</packagename><version>61</version><features><RequiringPackage>com.samsung.w-contacts2</RequiringPackage><Installed>true</Installed></features></app><app><packagename>com.samsung.accessory.saproviders</packagename><version>64</version><features><RequiringPackage>com.samsung.w-media-controller</RequiringPackage><Installed>true</Installed></features></app>"
+ "<app><packagename>com.samsung.accessory.saproviders</packagename><version>64</version><features><RequiringPackage>com.samsung.alarm</RequiringPackage><Installed>true</Installed></features></app><app><packagename>com.samsung.accessory.saproviders</packagename><version>64</version><features><RequiringPackage>com.samsung.message</RequiringPackage><Installed>true</Installed></features></app>"
+ "<app><packagename>com.samsung.accessory.saproviders</packagename><version>64</version><features><RequiringPackage>com.samsung.w-logs2</RequiringPackage><Installed>true</Installed></features></app><app><packagename>com.samsung.accessory.saproviders</packagename><version>64</version><features><RequiringPackage>com.samsung.idle-clock-event</RequiringPackage><Installed>true</Installed></features></app>"
+ "<app><packagename>com.sec.android.weatherprovider</packagename><features><RequiringPackage>com.samsung.w-idle-clock-weather2</RequiringPackage><Installed>false</Installed></features></app><app><packagename>com.samsung.accessory.saproviders</packagename><version>64</version><features><RequiringPackage>com.samsung.idle-clock-dual</RequiringPackage><Installed>true</Installed></features></app>"
+ "<app><packagename>com.samsung.accessory.saproviders</packagename><version>64</version><features><RequiringPackage>com.samsung.svoice-w</RequiringPackage><Installed>true</Installed></features></app>"
+ "</apps>"));
+#endif
w.writeStartElement("deviceFeature");
w.writeTextElement("telephony", "true");
w.writeTextElement("messaging", "true");
- w.writeTextElement("tablet", "true");
+ w.writeTextElement("tablet", "false");
w.writeTextElement("autolock", "true");
w.writeTextElement("smartrelay", "true");
w.writeTextElement("safetyassistance", "false");