fix handshake bug
authorwang_zhiqiang <wang_zhiqiang@dl.cn.nexty-ele.com>
Mon, 20 May 2019 02:40:21 +0000 (10:40 +0800)
committerwang_zhiqiang <wang_zhiqiang@dl.cn.nexty-ele.com>
Mon, 20 May 2019 02:40:21 +0000 (10:40 +0800)
Change-Id: I28af770a9f8d5ac63209038ca5939a2aab0bc318

conf/lastmode.json
src/homescreen.cpp
src/hs-clientmanager.cpp
src/hs-config.cpp

index 3d57f46..68ea81f 100644 (file)
@@ -1,7 +1,6 @@
 [
        {
                "appid": "phone",
-               "visibility": "visible",
-               "after": "homescreen"
+               "visibility": "visible"
        }
 ]
\ No newline at end of file
index 7457f88..d63d5aa 100644 (file)
@@ -73,6 +73,9 @@ int hs_handshake::hs_sts = hs_handshake::Handshake_Idle;
 void handshake_subscribe_callback(struct json_object *obj, const char *error, const char *info)
 {
     AFB_NOTICE("subscribe handshake reply: obj=%s, error=%s, info=%s", json_object_to_json_string(obj), error, info);
+    if(hs_handshake::hs_sts == hs_handshake::Handshake_Over) {
+        return;
+    }
     if(error == nullptr) {
         hs_handshake::hs_sts =  hs_handshake::Handshake_WaitEvent;
     }
index 86e1f28..3585bea 100644 (file)
@@ -255,7 +255,7 @@ int HS_ClientManager::pushEvent(const char *event, struct json_object *param, st
 void HS_ClientManager::checkRegisterApp(afb_api_t api, const std::string &appid)
 {
     if(HS_AppRecover::instance()->registerRecoveredApp(api, appid)) {
-        AFB_INFO("register recover application.");
+        AFB_INFO("register recover application %s.", appid.c_str());
         return;
     }
 
index df45e42..a227d30 100644 (file)
@@ -105,6 +105,11 @@ int HS_Config::parseConfig(void)
     if(json_object_get_type(m_lastmode) == json_type_array ) {
         struct std::vector<recover_app_info> v_lastmode = std::move(getRecoverAppInfo(m_lastmode));
         if(!v_lastmode.empty()) {   // got saving lastmode isn't null, instead of default lastmode
+            for(auto &it : v_lastmode) {
+                if(it.after.empty() && !m_recover_map[keys_recover_type[1]].empty()) {
+                    it.after = m_recover_map[keys_recover_type[1]][0].after;
+                }
+            }
             m_recover_map[keys_recover_type[1]] = std::move(v_lastmode);
         }
     }