From 6ea412d36573858516626fe3fc8d0541d10892b3 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Wed, 2 Jun 2021 14:43:02 +0900 Subject: [PATCH] Disable translation button if NMT is unavailable Change-Id: Id0428b295ae91a2601e738edc5b66526243093f1 Signed-off-by: Jihoon Kim --- src/include/nmt.h | 1 + src/ise-nmt-mode.cpp | 2 +- src/ise.cpp | 5 +++++ src/nmt.cpp | 17 ++++++++++++++++- 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/include/nmt.h b/src/include/nmt.h index f58b17f..546b97a 100644 --- a/src/include/nmt.h +++ b/src/include/nmt.h @@ -22,5 +22,6 @@ bool nmt_init(); void nmt_shutdown(); void nmt_translate(const char *source_language, const char *target_language); +bool nmt_is_disabled(); #endif /* ISE_NMT_H_ */ diff --git a/src/ise-nmt-mode.cpp b/src/ise-nmt-mode.cpp index 457f274..d6661d8 100644 --- a/src/ise-nmt-mode.cpp +++ b/src/ise-nmt-mode.cpp @@ -253,4 +253,4 @@ void ise_nmt_translate() nmt_formatted_target_language = get_language_code(target_language); nmt_translate(nmt_formatted_source_language.c_str(), nmt_formatted_target_language.c_str()); -} \ No newline at end of file +} diff --git a/src/ise.cpp b/src/ise.cpp index 367db9e..7c850da 100644 --- a/src/ise.cpp +++ b/src/ise.cpp @@ -780,6 +780,11 @@ SCLEventReturnType CUIEventCallback::on_event_notification(SCLUINotiType noti_ty if (!ise_sticker_check_sticker_exists()) ui->enable_button("STICKER_KEY", EINA_FALSE); + if (nmt_is_disabled()) + ui->enable_button("TRANSLATION_KEY", false); + else + ui->enable_button("TRANSLATION_KEY", true); + if (ise_is_emoticons_disabled()) ui->enable_button("EMOTICON_KEY", false); else diff --git a/src/nmt.cpp b/src/nmt.cpp index 654ca2f..ea9ad61 100644 --- a/src/nmt.cpp +++ b/src/nmt.cpp @@ -28,12 +28,15 @@ #define LOG_TAG "ISE_DEFAULT" #ifdef SUPPORT_NMT -static samsung_ai_nmt_h g_nmt_h; +static samsung_ai_nmt_h g_nmt_h = NULL; static bool g_selected_text_exist = false; +static samsung_ai_nmt_connection_status_e g_nmt_connection_status = SAMSUNG_AI_NMT_CONNECTION_STATUS_DISCONNECTED; static void _nmt_connection_status_changed_cb(samsung_ai_nmt_h nmt_h, samsung_ai_nmt_error_e result, samsung_ai_nmt_connection_status_e status, void *user_data) { + g_nmt_connection_status = status; + switch (result) { case SAMSUNG_AI_NMT_ERROR_NONE: if (status == SAMSUNG_AI_NMT_CONNECTION_STATUS_CONNECTED) @@ -134,6 +137,18 @@ void nmt_shutdown() #endif } +bool nmt_is_disabled() +{ +#ifdef SUPPORT_NMT + if (g_nmt_connection_status == SAMSUNG_AI_NMT_CONNECTION_STATUS_CONNECTED) + return false; + else + return true; +#else + return true; +#endif +} + void nmt_translate(const char *source_language, const char *target_language) { #ifdef SUPPORT_NMT -- 2.7.4