summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorInhong Han <inhong1.han@samsung.com>2024-01-02 16:18:47 +0900
committerInhong Han <inhong1.han@samsung.com>2024-01-09 14:46:29 +0900
commitc9e556f725c4af1f80fbe3485bd4312ce52a119f (patch)
tree0321957e690a49c79b30552dccaa2d30a8d68299
parent0f028e6ebd8c227a0809b672aa987421d705be40 (diff)
downloadisf-c9e556f725c4af1f80fbe3485bd4312ce52a119f.tar.gz
isf-c9e556f725c4af1f80fbe3485bd4312ce52a119f.tar.bz2
isf-c9e556f725c4af1f80fbe3485bd4312ce52a119f.zip
Support to show splash screen when launching IME in TV
Change-Id: I23202590a582a82d3d017cf10730f624f155ef1a
-rw-r--r--ism/extras/efl_panel/isf_panel_efl.cpp26
-rw-r--r--ism/src/isf_info_manager.cpp13
-rw-r--r--ism/src/isf_info_manager.h4
3 files changed, 30 insertions, 13 deletions
diff --git a/ism/extras/efl_panel/isf_panel_efl.cpp b/ism/extras/efl_panel/isf_panel_efl.cpp
index 42153dce..a82aa8db 100644
--- a/ism/extras/efl_panel/isf_panel_efl.cpp
+++ b/ism/extras/efl_panel/isf_panel_efl.cpp
@@ -241,7 +241,7 @@ static void slot_candidate_will_hide_ack (void);
static void slot_set_keyboard_mode (int mode);
static void slot_get_ise_state (int &state);
-static void slot_start_default_ise (void);
+static void slot_start_default_ise (bool show_splash_screen);
static void slot_stop_default_ise (bool is_exist);
static void slot_run_helper (const String &uuid, const String &config, const String &display);
static bool slot_launch_option_application (String ime_appid);
@@ -448,6 +448,7 @@ static bool _auto_destroy_ise = false;
static bool _soft_keyboard_launched = false;
static bool _focus_in = false;
static bool _enable_auto_restart = true;
+static bool _show_splash_screen = false;
#if ISF_BUILD_CANDIDATE_UI
static bool candidate_expanded = false;
@@ -6174,11 +6175,12 @@ static void slot_get_ise_state (int &state)
SCIM_DEBUG_MAIN (3) << __FUNCTION__ << " state = " << state << "\n";
}
-static void slot_start_default_ise (void)
+static void slot_start_default_ise (bool show_splash_screen)
{
SCIM_DEBUG_MAIN (3) << __FUNCTION__ << "...\n";
if ((_info_manager->get_current_toolbar_mode () == TOOLBAR_HELPER_MODE)) {
+ _show_splash_screen = show_splash_screen;
String uuid = _config->read (SCIM_CONFIG_DEFAULT_HELPER_ISE, String (""));
int pid = aul_app_get_pid (uuid.c_str ());
if (pid >= 0) {
@@ -6194,6 +6196,7 @@ static void slot_start_default_ise (void)
else
LOGW ("Failed to start helper (%s)", uuid.c_str ());
}
+ _show_splash_screen = false;
}
}
@@ -6280,7 +6283,24 @@ static bool app_control_launch (const char *app_id)
if (_TV) {
ret = app_control_add_extra_data(app_control, "__K_EX_FORCE_BOOST", "enable");
if (ret != APP_CONTROL_ERROR_NONE) {
- LOGW ("app_control_add_extra_data returned %08x", ret);
+ LOGW ("app_control_add_extra_data(BOOST) returned %08x", ret);
+ }
+
+ if (_launch_ise_on_request && _show_splash_screen) {
+ ret = app_control_add_extra_data(app_control, "__K_SPLASH_SCREEN", "LA_UI_TRANSPARENT");
+ if (ret != APP_CONTROL_ERROR_NONE) {
+ LOGW ("app_control_add_extra_data(SPLASH_SCREEN) returned %08x", ret);
+ }
+
+ ret = app_control_add_extra_data(app_control, "__K_EX_SPLASH_SCREEN_PROGRESS_BAR", "false");
+ if (ret != APP_CONTROL_ERROR_NONE) {
+ LOGW ("app_control_add_extra_data(SPLASH_SCREEN_PROGRESS_BAR) returned %08x", ret);
+ }
+
+ ret = app_control_add_extra_data(app_control, "__K_EX_SPLASH_SCREEN_FOCUS", "false");
+ if (ret != APP_CONTROL_ERROR_NONE) {
+ LOGW ("app_control_add_extra_data(SPLASH_SCREEN_FOCUS) returned %08x", ret);
+ }
}
}
diff --git a/ism/src/isf_info_manager.cpp b/ism/src/isf_info_manager.cpp
index 690f5646..6ed4afbc 100644
--- a/ism/src/isf_info_manager.cpp
+++ b/ism/src/isf_info_manager.cpp
@@ -338,7 +338,7 @@ class InfoManager::InfoManagerImpl
InfoManagerSignalInt m_signal_update_screen;
InfoManagerSignalIntIntInt m_signal_update_spot_location;
InfoManagerSignalFactoryInfo m_signal_update_factory_info;
- InfoManagerSignalVoid m_signal_start_default_ise;
+ InfoManagerSignalBool m_signal_start_default_ise;
InfoManagerSignalBool m_signal_stop_default_ise;
InfoManagerSignalIntInt m_signal_update_input_context;
InfoManagerSignalString m_signal_update_language_locale;
@@ -1543,7 +1543,7 @@ public:
bool launch_ise_on_request = scim_global_config_read (String (SCIM_GLOBAL_CONFIG_LAUNCH_ISE_ON_REQUEST), false);
bool enable_auto_restart = scim_global_config_read (String (SCIM_GLOBAL_CONFIG_ENABLE_AUTO_RESTART_ISE), true);
if (launch_ise_on_request || !enable_auto_restart)
- m_signal_start_default_ise ();
+ m_signal_start_default_ise (true);
}
}
@@ -1599,7 +1599,7 @@ public:
m_panel_agent_manager.set_helper_optimization_hint(it->second.id, ctx, m_current_helper_uuid, ISE_OPTIMIZATION_HINT_SHOW_PREPARE);
}
- m_signal_start_default_ise();
+ m_signal_start_default_ise(false);
}
void set_default_ise (const DEFAULT_ISE_T& ise) {
@@ -2428,7 +2428,7 @@ public:
return m_signal_update_factory_info.connect (slot);
}
- Connection signal_connect_start_default_ise (InfoManagerSlotVoid* slot) {
+ Connection signal_connect_start_default_ise (InfoManagerSlotBool* slot) {
return m_signal_start_default_ise.connect (slot);
}
@@ -2783,9 +2783,6 @@ public:
//SCIM_TRANS_CMD_FOCUS_IN
void focus_in (int client_id, uint32 context, String uuid) {
m_refocus_needed = true;
- bool launch_ise_on_request = scim_global_config_read (String (SCIM_GLOBAL_CONFIG_LAUNCH_ISE_ON_REQUEST), false);
- if (launch_ise_on_request)
- m_signal_start_default_ise ();
m_signal_focus_in ();
focus_in_helper (m_current_helper_uuid, m_panel_client_map[client_id], context);
@@ -5759,7 +5756,7 @@ InfoManager::signal_connect_update_factory_info (InfoManagerSlotFactoryInfo*
}
Connection
-InfoManager::signal_connect_start_default_ise (InfoManagerSlotVoid* slot)
+InfoManager::signal_connect_start_default_ise (InfoManagerSlotBool* slot)
{
return m_impl->signal_connect_start_default_ise (slot);
}
diff --git a/ism/src/isf_info_manager.h b/ism/src/isf_info_manager.h
index f204da55..b1ce9109 100644
--- a/ism/src/isf_info_manager.h
+++ b/ism/src/isf_info_manager.h
@@ -1069,9 +1069,9 @@ public:
/**
* @brief Signal: start default ise.
*
- * slot prototype: void start_default_ise (void);
+ * slot prototype: void start_default_ise (bool);
*/
- Connection signal_connect_start_default_ise (InfoManagerSlotVoid* slot);
+ Connection signal_connect_start_default_ise (InfoManagerSlotBool* slot);
/**
* @brief Signal: stop default ise.