/* * Copyright (c) 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 "hs-apprecover.h" #include "hs-appinfo.h" #include "hs-proxy.h" #include "hs-clientmanager.h" const char _keyArea[] = "area"; /** * starting recover applications * * #### Parameters * - api : the api * - map : recover app map * * #### Return * None * */ void HS_AppRecover::startRecovery(afb_api_t api, recover_map &map) { HS_AfmMainProxy afm_proxy; for(auto &key : HS_Config::keys_recover_type) { for(auto &m : map[key]){ struct app_recover_info recover_info; recover_info.recover_type = key; recover_info.visibility = m.visibility; m_recover_apps_list[m.appid] = std::move(recover_info); // recover application m_recovering_set.insert(m.appid); afm_proxy.start(api, HS_AppInfo::instance()->getAppProperty(m.appid, _keyId)); } } } /** * register started applications * * #### Parameters * - appid : application id liked "dashboard" * * #### Return * false : not all application recovered * true : all applications recovered */ bool HS_AppRecover::registerRecoveredApp(std::string &appid) { auto it = m_recovering_set.find(appid); if(it != m_recovering_set.end()) { m_recovering_set.erase(appid); auto ip = m_recover_apps_list.find(appid); if(ip != m_recover_apps_list.end() && ip->second.visibility) { HS_ClientManager::instance()->pushEvent("showWindow", nullptr, appid); } } return m_recovering_set.empty() ? true : false; }