From ec28d0bf46efbb13662a9b01de5d18f87fe34145 Mon Sep 17 00:00:00 2001 From: Tasuku Suzuki Date: Sat, 23 Dec 2017 22:13:19 +0900 Subject: Block launching app when an app is launching Bug-AGL: SPEC-1214 Change-Id: I747d20ca7a6219535668fc3951a4ff9f55bcaaaf Signed-off-by: Tasuku Suzuki Signed-off-by: Tadao Tanikawa (cherry picked from commit db9f41d75fb4460f668117c69be05c4d4d4c7c7c) --- homescreen/src/applicationlauncher.cpp | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'homescreen/src/applicationlauncher.cpp') diff --git a/homescreen/src/applicationlauncher.cpp b/homescreen/src/applicationlauncher.cpp index 7e1cda1..5a1e2d6 100644 --- a/homescreen/src/applicationlauncher.cpp +++ b/homescreen/src/applicationlauncher.cpp @@ -26,7 +26,23 @@ extern org::AGL::afm::user *afm_user_daemon_proxy; ApplicationLauncher::ApplicationLauncher(QObject *parent) : QObject(parent) + , m_launching(false) + , m_timeout(new QTimer(this)) { + m_timeout->setInterval(3000); + m_timeout->setSingleShot(true); + connect(m_timeout, &QTimer::timeout, [&]() { + setLaunching(false); + }); + connect(this, &ApplicationLauncher::launchingChanged, [&](bool launching) { + if (launching) + m_timeout->start(); + else + m_timeout->stop(); + }); + connect(this, &ApplicationLauncher::currentChanged, [&]() { + setLaunching(false); + }); } int ApplicationLauncher::launch(const QString &application) @@ -38,12 +54,24 @@ int ApplicationLauncher::launch(const QString &application) HMI_DEBUG("HomeScreen","ApplicationLauncher pid: %d.", result); if (result > 1) { - setCurrent(application); + setLaunching(true); } return result; } +bool ApplicationLauncher::isLaunching() const +{ + return m_launching; +} + +void ApplicationLauncher::setLaunching(bool launching) +{ + if (m_launching == launching) return; + m_launching = launching; + launchingChanged(launching); +} + QString ApplicationLauncher::current() const { return m_current; -- cgit 1.2.3-korg