From: Suyeon Hwang Date: Thu, 1 Jul 2021 07:28:22 +0000 (+0900) Subject: Add screen reader check when client try to prepare X-Git-Tag: submit/tizen/20210702.091906~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F98%2F260698%2F2;p=platform%2Fcore%2Fuifw%2Ftts.git Add screen reader check when client try to prepare If service engine terminates without unprepare by some purpose such as disable screen reader on TV, some clients try to reprepare by service reset message. In this case, prepare by service reset is not intended behavior. Thus, this patch adds checking screen reader option code to avoid prepare by screen reader disable. Change-Id: If93ded568eae17bdf019c8f4d109d45ce542800e Signed-off-by: Suyeon Hwang --- diff --git a/client/tts_core.c b/client/tts_core.c index be0e247a..7a4df9a1 100644 --- a/client/tts_core.c +++ b/client/tts_core.c @@ -413,6 +413,11 @@ static int __send_hello_msg(tts_client_s* client) return TTS_ERROR_INVALID_STATE; } + if (false == tts_core_check_screen_reader(client)) { + SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Screen reader option is not available"); + return TTS_ERROR_INVALID_STATE; + } + int uid = tts_client_get_uid(client); SLOG(LOG_INFO, TAG_TTSC, "[INFO] tts_h(%p), tts_client(%p), uid(%d)", tts_client_get_handle(client), client, uid); @@ -1016,6 +1021,11 @@ int tts_core_prepare(tts_client_s* client) return TTS_ERROR_INVALID_PARAMETER; } + if (false == tts_core_check_screen_reader(client)) { + SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Screen reader option is not available"); + return TTS_ERROR_INVALID_STATE; + } + SLOG(LOG_INFO, TAG_TTSC, "[INFO] Start core_prepare. tts_h(%p), tts_client(%p)", tts_client_get_handle(client), client); if (NULL == client->hello_timer) { SLOG(LOG_ERROR, TAG_TTSC, "Register timer for __prepare_first_cb"); @@ -1040,7 +1050,16 @@ int tts_core_prepare_sync(tts_client_s* client) SLOG(LOG_INFO, TAG_TTSC, "[INFO] Start core_prepare_sync. tts_h(%p), tts_client(%p), uid(%d)", tts_client_get_handle(client), client, tts_client_get_uid(client)); int cnt = 0; - while (EINA_TRUE == __prepare_sync_cb(client) && TTS_CONNECTION_RETRY_COUNT > cnt) { + while (TTS_CONNECTION_RETRY_COUNT > cnt) { + if (false == tts_core_check_screen_reader(client)) { + SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Screen reader option is not available"); + return TTS_ERROR_INVALID_STATE; + } + + if (EINA_FALSE == __prepare_sync_cb(client)) { + break; + } + cnt++; }