From 25647995777ff8f3784ed2dcba44dd03109b7125 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Fri, 9 Sep 2016 20:18:48 +0900 Subject: [PATCH] Fix crash issue on changing layout from voice layout to other layout Change-Id: I87c111e8591fbf904c0db22b31d15988278a1e4c Signed-off-by: Jihoon Kim --- src/include/ise-stt-mode.h | 1 + src/ise-stt-mode.cpp | 23 +++++++++++++++-------- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/include/ise-stt-mode.h b/src/include/ise-stt-mode.h index 330acbb..e7e7ba6 100644 --- a/src/include/ise-stt-mode.h +++ b/src/include/ise-stt-mode.h @@ -107,6 +107,7 @@ struct _VoiceData Ecore_Timer *guide_text_timer; Ecore_Timer *btn_disabling_timer; Ecore_Timer *power_unlock_timer; + Ecore_Timer *init_timer; std::vector stt_results; char *partial_result; diff --git a/src/ise-stt-mode.cpp b/src/ise-stt-mode.cpp index 2adf0bd..227984c 100644 --- a/src/ise-stt-mode.cpp +++ b/src/ise-stt-mode.cpp @@ -71,9 +71,9 @@ void voice_get_string(const char *keyValue, VoiceData *voicedata) LOGD("text : %s, voicedata->partial_result=%s", strbuf, voicedata->partial_result); - if (strbuf){ - if (voicedata->partial_result){ // partial_result is not Null so replace - if (strcmp(voicedata->partial_result, strbuf)){ + if (strbuf) { + if (voicedata->partial_result) { // partial_result is not Null so replace + if (strcmp(voicedata->partial_result, strbuf)) { // different replace LOGD("different replace"); @@ -131,7 +131,7 @@ static void set_guide_text(VoiceData *vd, const char* text, bool translatable) else elm_object_part_text_set(vd->layout_main, "elm.text", text); - if (!strcmp(text, SK_SPEAK_NOW)){ + if (!strcmp(text, SK_SPEAK_NOW)) { if (vd->guide_text_timer == NULL) vd->guide_text_timer = ecore_timer_add(2.0, hide_guide_text, vd); } @@ -167,7 +167,7 @@ void show_popup_toast(const char *text, bool check_img) static void _popup_close_cb(void *data, Evas_Object *obj, void *event_info) { - if (obj){ + if (obj) { evas_object_hide(obj); evas_object_del(obj); } @@ -496,7 +496,7 @@ int init_voice(Evas_Object *parent, const char *lang, VoiceData *r_voicedata) voicedata->voicefw_state = 0; /* Set Voice Language */ - if (voicedata->kbd_lang){ + if (voicedata->kbd_lang) { free(voicedata->kbd_lang); voicedata->kbd_lang = NULL; } @@ -561,11 +561,13 @@ Evas_Object *create_fullview(Evas_Object *win, VoiceData *r_voicedata) voicedata->mic_button = m_mic_button; - if (voicedata->btn_disabling_timer == NULL){ + if (voicedata->btn_disabling_timer == NULL) { voicedata->btn_disabling_timer = ecore_timer_add(2.0, _mic_button_enable_cb, voicedata); } - ecore_timer_add(0.6, _idler_cb, voicedata); + if (voicedata->init_timer == NULL) { + voicedata->init_timer = ecore_timer_add(0.6, _idler_cb, voicedata); + } // Progress Bar Evas_Object *progress_bar = create_progressbar(layout_main); @@ -690,6 +692,11 @@ void on_destroy(VoiceData *r_voicedata) voicedata->power_unlock_timer = NULL; } + if (NULL != voicedata->init_timer) { + ecore_timer_del(voicedata->init_timer); + voicedata->init_timer = NULL; + } + if (voicedata->kbd_lang) { free(voicedata->kbd_lang); voicedata->kbd_lang = NULL; -- 2.7.4