merge vui
[apps/agl-service-homescreen.git] / src / hs-apprecover.cpp
index fa8d824..adc8a3a 100644 (file)
@@ -90,6 +90,9 @@ int HS_AppRecover::init(afb_api_t api)
  */
 void HS_AppRecover::startRecovery(afb_api_t api)
 {
+    this->addListenAppId(_listen_all);
+    HS_ClientManager::instance()->addListener(this);
+
     for(auto &key : HS_Config::keys_recover_type) {
         for(auto &m : recover_app_map[key]){
             struct app_recover_info recover_info = {
@@ -124,23 +127,18 @@ void HS_AppRecover::startRecovery(afb_api_t api)
 }
 
 /**
- * register started applications
+ * notify
  *
  * #### Parameters
- *  - appid : application id liked "dashboard"
+ *  - api : the api
+ *  - appid : application id
  *
  * #### Return
- * false : not recover app
- * true : recover app
- * 
+ * None
+ *
  */
-bool HS_AppRecover::registerRecoveredApp(afb_api_t api, const std::string &appid)
+void HS_AppRecover::notify(afb_api_t api, std::string appid)
 {
-    bool ret = false;
-    if(m_recovering_set.empty()) {
-        return ret;
-    }
-
     AFB_INFO("recover appid=[%s].", appid.c_str());
     auto it = m_recovering_set.find(appid);
     if(it != m_recovering_set.end()) {
@@ -150,7 +148,6 @@ bool HS_AppRecover::registerRecoveredApp(afb_api_t api, const std::string &appid
         && ip->second.visibility) {
             HS_ClientManager::instance()->pushEvent("showWindow", nullptr, appid);
         }
-        ret = true;
     }
 
     // check wait recover application
@@ -161,7 +158,10 @@ bool HS_AppRecover::registerRecoveredApp(afb_api_t api, const std::string &appid
         }
         m_wait_recover_set.erase(appid);
     }
-    return ret;
+
+    if(m_recovering_set.empty()) {
+        HS_ClientManager::instance()->removeListener(this);
+    }
 }
 
 /**