summaryrefslogtreecommitdiffstats
path: root/app/src/appinfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/appinfo.cpp')
-rw-r--r--app/src/appinfo.cpp219
1 files changed, 219 insertions, 0 deletions
diff --git a/app/src/appinfo.cpp b/app/src/appinfo.cpp
new file mode 100644
index 0000000..bf51ba4
--- /dev/null
+++ b/app/src/appinfo.cpp
@@ -0,0 +1,219 @@
+/*
+ * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH
+ * Copyright (C) 2016 The Qt Company Ltd.
+ * Copyright (c) 2018-2019 TOYOTA MOTOR CORPORATION
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "appinfo.h"
+#include <QFileInfo>
+#include "config.h"
+#include "hmi-debug.h"
+
+class AppInfo::Private : public QSharedData {
+ public:
+ Private();
+ Private(const Private& other);
+
+ QString id;
+ QString version;
+ int width;
+ int height;
+ QString name;
+ QString description;
+ QString shortname;
+ QString author;
+ QString iconPath;
+ AppState state;
+ qreal progress;
+
+ QString serverid;
+ QString wgtpath;
+ QString filename;
+ QString categoryid;
+ QString categoryname;
+ QString deviceid;
+ QString devicename;
+ double createdtime;
+};
+
+AppInfo::Private::Private() : width(-1), height(-1) {}
+
+AppInfo::Private::Private(const Private& other)
+ : QSharedData(other),
+ id(other.id),
+ version(other.version),
+ width(other.width),
+ height(other.height),
+ name(other.name),
+ description(other.description),
+ shortname(other.shortname),
+ author(other.author),
+ iconPath(other.iconPath),
+ state(other.state),
+ progress(other.progress),
+ serverid(other.serverid),
+ wgtpath(other.wgtpath),
+ filename(other.filename),
+ categoryid(other.categoryid),
+ categoryname(other.categoryname),
+ deviceid(other.deviceid),
+ devicename(other.devicename),
+ createdtime(other.createdtime) {}
+
+AppInfo::AppInfo() : d(new Private) {}
+
+AppInfo::AppInfo(const QString& icon, const QString& name, const QString& id)
+ : d(new Private) {
+ d->iconPath = icon;
+ d->name = name;
+ d->id = id;
+}
+
+AppInfo::AppInfo(const AppInfo& other) : d(other.d) {}
+
+AppInfo::~AppInfo() {}
+
+AppInfo& AppInfo::operator=(const AppInfo& other) {
+ d = other.d;
+ return *this;
+}
+
+bool AppInfo::operator==(const AppInfo& other) {
+ return d->id == other.id();
+}
+
+QString AppInfo::id() const {
+ return d->id;
+}
+
+QString AppInfo::version() const {
+ return d->version;
+}
+
+int AppInfo::width() const {
+ return d->width;
+}
+
+int AppInfo::height() const {
+ return d->height;
+}
+
+QString AppInfo::name() const {
+ return d->name;
+}
+
+QString AppInfo::description() const {
+ return d->description;
+}
+
+QString AppInfo::shortname() const {
+ return d->shortname;
+}
+
+QString AppInfo::author() const {
+ return d->author;
+}
+
+QString AppInfo::iconPath() const {
+ return d->iconPath;
+}
+
+AppInfo::AppState AppInfo::state() const {
+ return d->state;
+}
+
+qreal AppInfo::progress() const {
+ return d->progress;
+}
+
+QString AppInfo::serverId() const {
+ return d->serverid;
+}
+QString AppInfo::wgtPath() const {
+ return d->wgtpath;
+}
+QString AppInfo::fileName() const {
+ return d->filename;
+}
+
+QString AppInfo::categoryId() const {
+ return d->categoryid;
+}
+QString AppInfo::categoryName() const {
+ return d->categoryname;
+}
+QString AppInfo::deviceId() const {
+ return d->deviceid;
+}
+QString AppInfo::deviceName() const {
+ return d->devicename;
+}
+double AppInfo::createdTime() const {
+ return d->createdtime;
+}
+
+void AppInfo::setState(const AppState state) {
+ d->state = state;
+}
+void AppInfo::setState(const int state) {
+ d->state = (enum AppState)state;
+}
+
+void AppInfo::setProgress(const qreal progress) {
+ d->progress = progress;
+}
+
+void AppInfo::read(const QJsonObject& json) {
+ d->id = json["id"].toString();
+ d->version = json["version"].toString();
+ d->width = json["width"].toInt();
+ d->height = json["height"].toInt();
+ d->name = json["name"].toString();
+ d->description = json["description"].toString();
+ d->shortname = json["shortname"].toString();
+ d->author = json["author"].toString();
+ d->iconPath = json["icon"].toString();
+ QFileInfo fi(d->iconPath);
+ if (!fi.isFile()) {
+ d->iconPath = "";
+ }
+
+ d->state = Launch;
+}
+
+void AppInfo::readFromServer(const QJsonObject& json) {
+ d->name = json["appName"].toString();
+ d->description = json["appAbstract"].toString();
+ d->version = json["versionName"].toString();
+ d->id = json["appIdCustom"].toString() + "@" + d->version;
+ d->serverid = json["appId"].toString();
+ d->wgtpath = json["verFilePath"].toString();
+ d->filename = json["verFilePath"].toString().section('/', -1);
+ d->author = json["developerName"].toString();
+ d->categoryid = json["typeId"].toString();
+ d->categoryname = json["typeName"].toString();
+ d->deviceid = json["appDeviceTypeId"].toString();
+ d->devicename = json["appDeviceTypeName"].toString();
+ d->createdtime = json["updateDate"].toDouble();
+ d->iconPath = json["imagePath"].toString();
+
+ if (json["imagePath"].toString().isEmpty()) {
+ d->iconPath = "";
+ } else {
+ d->iconPath = getIconUrl(json["imagePath"].toString());
+ }
+ d->state = Install;
+ d->progress = 0.0;
+}