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);
+ }
}
}