summaryrefslogtreecommitdiffstats
path: root/launcher/src/applicationmodel.cpp
diff options
context:
space:
mode:
authorwang_zhiqiang <wang_zhiqiang@dl.cn.nexty-ele.com>2019-02-20 17:08:32 +0800
committerwang_zhiqiang <wang_zhiqiang@dl.cn.nexty-ele.com>2019-03-22 17:14:29 +0800
commit607fdc0374e76a272455cc010f35693ba8b6894b (patch)
tree869ca0dfd686e92251b947677c32f9cdfd77fc0b /launcher/src/applicationmodel.cpp
parente8d1f16f785cc176a82a9b46e08e13eb89899437 (diff)
Start app and get runnables list by homescreen
1.only call showWindow when start application. 2.get runnalbes list from homescreen-service. 3.subscribe and deal with Event_AppListChanged. 4.move LICENSE file to top-level directory. Bug-AGL: SPEC-2188 Change-Id: If0ce87a2f770b1a06ba72fdb087a24719d92d124 Signed-off-by: wang_zhiqiang <wang_zhiqiang@dl.cn.nexty-ele.com>
Diffstat (limited to 'launcher/src/applicationmodel.cpp')
-rw-r--r--launcher/src/applicationmodel.cpp77
1 files changed, 62 insertions, 15 deletions
diff --git a/launcher/src/applicationmodel.cpp b/launcher/src/applicationmodel.cpp
index 14e2ea1..258fac6 100644
--- a/launcher/src/applicationmodel.cpp
+++ b/launcher/src/applicationmodel.cpp
@@ -1,7 +1,7 @@
/*
* Copyright (C) 2016 The Qt Company Ltd.
* Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH
- * Copyright (c) 2018 TOYOTA MOTOR CORPORATION
+ * 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.
@@ -33,6 +33,9 @@ class ApplicationModel::Private
public:
Private();
+ void addApp(QString icon, QString name, QString id);
+ void removeApp(QString id);
+
QList<AppInfo> data;
};
@@ -52,22 +55,33 @@ namespace {
ApplicationModel::Private::Private()
{
- QString apps = afm_user_daemon_proxy->runnables(QStringLiteral(""));
- QJsonDocument japps = QJsonDocument::fromJson(apps.toUtf8());
- for (auto const &app : japps.array()) {
- QJsonObject const &jso = app.toObject();
- auto const name = jso["name"].toString();
- auto const id = jso["id"].toString();
- auto const icon = get_icon_name(jso);
+}
- if ( name != "launcher" &&
- name != "homescreen-2017" &&
- name != "homescreen" &&
- name != "OnScreenApp") {
- this->data.append(AppInfo(icon, name, id));
- }
+void ApplicationModel::Private::addApp(QString icon, QString name, QString id)
+{
+ HMI_DEBUG("addApp","name: %s icon: %s id: %s.", name.toStdString().c_str(), icon.toStdString().c_str(), id.toStdString().c_str());
+ for(int i = 0; i < this->data.size(); ++i) {
+ if(this->data[i].id() == id)
+ return;
+ }
+
+ QString _icon = name.toLower();
+ if ( !QFile::exists(QString(":/images/%1_active.svg").arg(_icon)) ||
+ !QFile::exists(QString(":/images/%1_inactive.svg").arg(_icon)) )
+ {
+ _icon = "blank";
+ }
+ this->data.append(AppInfo(_icon, name, id));
+}
- HMI_DEBUG("launcher","name: %s icon: %s id: %s.", name.toStdString().c_str(), icon.toStdString().c_str(), id.toStdString().c_str());
+void ApplicationModel::Private::removeApp(QString id)
+{
+ HMI_DEBUG("removeApp","id: %s.",id.toStdString().c_str());
+ for (int i = 0; i < this->data.size(); ++i) {
+ if (this->data.at(i).id() == id) {
+ this->data.removeAt(i);
+ break;
+ }
}
}
@@ -160,3 +174,36 @@ void ApplicationModel::move(int from, int to)
HMI_NOTICE("launcher","from : %d, to : %d. false.", from, to);
}
}
+
+void ApplicationModel::updateApplist(QStringList info)
+{
+ QString icon = info.at(0);
+ QString name = info.at(1);
+ QString id = info.at(2);
+
+ beginResetModel();
+ if(icon == "") { // uninstall
+ d->removeApp(id);
+ }
+ else {
+ // new app
+ d->addApp(icon, name, id);
+ }
+ endResetModel();
+}
+
+void ApplicationModel::initAppList(QString data)
+{
+ HMI_DEBUG("launcher","init application list.");
+ beginResetModel();
+ QJsonDocument japps = QJsonDocument::fromJson(data.toUtf8());
+ for (auto const &app : japps.array()) {
+ QJsonObject const &jso = app.toObject();
+ auto const name = jso["name"].toString();
+ auto const id = jso["id"].toString();
+ auto const icon = get_icon_name(jso);
+
+ d->addApp(icon, name, id);
+ }
+ endResetModel();
+}