Prevent restarting service when conversation session exists 49/284949/1
authorJi-hoon Lee <dalton.lee@samsung.com>
Wed, 30 Nov 2022 06:46:51 +0000 (15:46 +0900)
committerJi-hoon Lee <dalton.lee@samsung.com>
Wed, 30 Nov 2022 06:46:51 +0000 (15:46 +0900)
Change-Id: I79771d40e67e2bda2efdd6a50474ef500fd5230c

src/service_plugin.cpp

index 67b6779..0df29ed 100644 (file)
@@ -604,8 +604,15 @@ static void __loaded_engine_changed_cb(void* user_data)
 
        CServiceMain* service_main = plugin->get_service_main();
        if (service_main) {
-               MAS_LOGE("[SUCCESS] Restarting service");
-               service_main->app_restart();
+               /* Make sure the app doesn't restart within a conversation session */
+               ma_service_state_e service_state = service_main->get_current_service_state();
+               if (service_state == MA_SERVICE_STATE_INACTIVE ||
+                       service_state == MA_SERVICE_STATE_LISTENING) {
+                       MAS_LOGE("[SUCCESS] Restarting service");
+                       service_main->app_restart();
+               } else {
+                       MAS_LOGE("Cannot restart service when service_state is %d", service_state);
+               }
        }
 }