summaryrefslogtreecommitdiff
path: root/src/ps_app_interface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ps_app_interface.cpp')
-rwxr-xr-xsrc/ps_app_interface.cpp760
1 files changed, 760 insertions, 0 deletions
diff --git a/src/ps_app_interface.cpp b/src/ps_app_interface.cpp
new file mode 100755
index 0000000..dbecb51
--- /dev/null
+++ b/src/ps_app_interface.cpp
@@ -0,0 +1,760 @@
+/*
+ * Copyright 2012-2013 Samsung Electronics Co., Ltd/
+ *
+ * Licensed under the Flora License, Version 1.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+
+
+
+
+#include "smartsearch.h"
+#include "ps_app_interface.h"
+#include "ps_searcher.h"
+#include <ui-gadget.h>
+#include <contacts-ug.h>
+#include <aul_service.h>
+#include <app.h>
+#include <app_manager.h>
+#include <bundle.h>
+
+static void __search_ug_layout_cb(ui_gadget_h ug, enum ug_mode mode,
+ void *priv)
+{
+ SEARCH_FUNC_START;
+
+ Evas_Object *base = NULL; (Evas_Object *) ug_get_layout(ug);
+ Evas_Object *win = NULL;
+
+ SEARCH_RET_IF(ug == NULL || priv == NULL);
+
+ base = (Evas_Object *)ug_get_layout(ug);
+ win = (Evas_Object *)ug_get_window();
+
+ SEARCH_RET_IF(base == NULL);
+ SEARCH_RET_IF(win == NULL);
+
+ switch (mode) {
+ case UG_MODE_FULLVIEW:
+ evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(win, base);
+ evas_object_show(base);
+ break;
+ default:
+ break;
+ }
+
+ SEARCH_FUNC_END;
+}
+
+static void __search_ug_closed_cb(ui_gadget_h ug, void *priv)
+{
+ SEARCH_FUNC_START;
+
+ struct appdata *ad = (struct appdata *)priv;
+
+ SEARCH_RET_IF(ug == NULL);
+ SEARCH_RET_IF(ad == NULL);
+
+ ug_destroy(ug);
+ ad->detail_ug = NULL;
+
+ elm_genlist_select_mode_set(ad->search_gl, ELM_OBJECT_SELECT_MODE_DEFAULT);
+
+ if (elm_object_scroll_freeze_get(ad->search_gl) > 0) {
+ elm_object_scroll_freeze_pop(ad->search_gl);
+ }
+
+ SEARCH_FUNC_END;
+}
+
+void search_launch_contact_view(void *data, void *record_info)
+{
+ SEARCH_FUNC_START;
+
+ struct appdata *ad = (struct appdata *)data;
+ struct search_item_sel *cur_category_mem = (struct search_item_sel *)record_info;
+
+ SEARCH_RET_IF(ad == NULL);
+ SEARCH_RET_IF(cur_category_mem == NULL);
+
+ service_h service = NULL;
+ int ret = 0;
+ bool err_popup_show = true;
+
+ Ecore_X_Window win_id = -1;
+
+ win_id = elm_win_xwindow_get(ad->win_main);
+
+ ret = service_create(&service);
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("[Fail] service_create");
+ goto out_func;
+ }
+
+ ret = service_set_app_id(service, "contacts-details-efl");
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("[Fail] service_set_app_id!");
+ goto out_func;
+ }
+
+ ret = service_set_window(service, win_id);
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("[Fail] service_set_window!");
+ goto out_func;
+ }
+
+ ret = service_add_extra_data(service, "type", "0");;
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("[Fail] service_add_extra_data : type!");
+ goto out_func;
+ }
+
+ ret = service_add_extra_data(service, "person_id", cur_category_mem->launch_param);
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("[Fail] service_add_extra_data : person_id");
+ goto out_func;
+ }
+
+ ret = service_send_launch_request(service, NULL, NULL);
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("[Fail] service_send_launch_request");
+ goto out_func;
+ } else {
+ err_popup_show = false;
+ }
+
+out_func:
+ if (err_popup_show == true) {
+ search_launch_popup_error(LAUNCH_ERROR_AUL_LAUNCH, ad);
+ }
+
+ if (service != NULL) {
+ service_destroy(service);
+ }
+
+ SEARCH_FUNC_END;
+}
+
+void search_launch_msg_view(void *data, void *record_info)
+{
+ SEARCH_FUNC_START;
+
+ struct appdata *ad = (struct appdata *)data;
+ struct search_item_sel *cur_category_mem = (struct search_item_sel *)record_info;
+
+ SEARCH_RET_IF(ad == NULL);
+ SEARCH_RET_IF(cur_category_mem == NULL);
+
+ service_h service = NULL;
+ int ret = 0;
+ bool err_popup_show = true;
+
+ ret = service_create(&service);
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("[Fail] service_create");
+ goto out_func;
+ }
+
+ ret = service_set_package(service, "org.tizen.message");
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("[Fail] service_set_package!");
+ goto out_func;
+ }
+
+ ret = service_add_extra_data(service, "type", "msg_id");
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("[Fail] service_set_extra_data : msg_id");
+ goto out_func;
+ }
+
+ ret = service_add_extra_data(service, "msgId", cur_category_mem->launch_param);
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("[Fail] service_set_extra_data : msgId parameter!");
+ goto out_func;
+ }
+
+ ret = service_send_launch_request(service, NULL, NULL);
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("[Fail] service_send_launch_request");
+ goto out_func;
+ } else {
+ err_popup_show = false;
+ }
+
+out_func:
+ if (err_popup_show == true) {
+ search_launch_popup_error(LAUNCH_ERROR_AUL_LAUNCH, ad);
+ }
+
+ if (service != NULL) {
+ service_destroy(service);
+ }
+
+ SEARCH_FUNC_END;
+}
+
+void search_launch_email_view(void *data, void *record_info)
+{
+ SEARCH_FUNC_START;
+
+ char *token_param = NULL;
+ char *saveptr1;
+ int i = 0;
+ int ret = 0;
+ bool err_popup_show = true;
+
+ struct appdata *ad = (struct appdata *)data;
+ struct search_item_sel *cur_category_mem = (struct search_item_sel *)record_info;
+
+ char temp_path[MAX_LENGTH_PER_PATH] = { 0, };
+
+ service_h service = NULL;
+
+ SEARCH_RET_IF(ad == NULL);
+ SEARCH_RET_IF(cur_category_mem == NULL);
+
+ ret = service_create(&service);
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("Fail to create service handle!");
+ goto out_func;
+ }
+
+ snprintf(temp_path, MAX_LENGTH_PER_PATH - 1, "%s", cur_category_mem->launch_path);
+ token_param = strtok_r(temp_path, " ", &saveptr1);
+
+ while (token_param != NULL) {
+ SEARCH_DEBUG_LOG("PARAMETER (%d) : %s", i, token_param);
+ if (i == 0) {
+ ret = service_add_extra_data(service, "ACCOUNT_ID", token_param);
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("Fail to add extra data : ACCOUND_ID!");
+ goto out_func;
+ }
+ } else if (i == 1) {
+ ret = service_add_extra_data(service, "MAIL_ID", token_param);
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("Fail to add extra data : MAIL_ID!");
+ goto out_func;
+ }
+ } else if (i == 2) {
+ ret = service_add_extra_data(service, "MAILBOX_ID", token_param);
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("Fail to add extra data : MAILBOX_ID!");
+ goto out_func;
+ }
+ } else {
+ break;
+ }
+
+ i++;
+ token_param = strtok_r(NULL, " ", &saveptr1);
+ }
+
+ ret = service_add_extra_data(service, "RUN_TYPE", "7");
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("Fail to add extra data : RUN_TYPE!");
+ goto out_func;
+ }
+
+ ret = service_set_package(service, "org.tizen.email");
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("Fail to set package!");
+ goto out_func;
+ }
+
+ ret = service_send_launch_request(service, NULL, NULL);
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("Fail to send service!");
+ goto out_func;
+ }
+ err_popup_show = false;
+
+out_func:
+ if (err_popup_show == true) {
+ search_launch_popup_error(LAUNCH_ERROR_APPSVC, ad);
+ }
+
+ if (service != NULL) {
+ ret = service_destroy(service);
+
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("Fail to destroy service header : [%d]", ret);
+ }
+ }
+
+ SEARCH_FUNC_END;
+}
+
+void search_launch_image_view(void *data, void *record_info)
+{
+ SEARCH_FUNC_START;
+
+ struct appdata *ad = (struct appdata *)data;
+ struct search_item_sel *cur_category_mem = (struct search_item_sel *)record_info;
+ int ret;
+
+ SEARCH_RET_IF(ad == NULL);
+ SEARCH_RET_IF(cur_category_mem == NULL);
+
+ if (access(cur_category_mem->launch_path, F_OK) != 0) {
+ SEARCH_DEBUG_ERROR("image access error : %s",
+ cur_category_mem->launch_path);
+ search_launch_popup_error(LAUNCH_ERROR_FILE_NOT_FOUND,
+ ad);
+ } else {
+ SEARCH_DEBUG_LOG("cur_category_mem->launch_path : %s",
+ cur_category_mem->launch_path);
+
+ service_h service;
+ ret = service_create(&service);
+
+ if (ret == 0) {
+ service_set_operation(service, SERVICE_OPERATION_VIEW);
+ service_set_uri(service, cur_category_mem->launch_path);
+ ret = service_send_launch_request(service, NULL, NULL);
+
+ if (ret != 0) {
+ SEARCH_DEBUG_ERROR("image app service launching error(%d)", ret);
+ search_launch_popup_error(LAUNCH_ERROR_APPSVC,
+ ad);
+ }
+ service_destroy(service);
+ }
+ }
+
+ SEARCH_FUNC_END;
+}
+
+void search_launch_video_view(void *data, void *record_info)
+{
+ SEARCH_FUNC_START;
+
+ struct appdata *ad = (struct appdata *)data;
+ struct search_item_sel *cur_category_mem = (struct search_item_sel *)record_info;
+ int ret;
+
+ SEARCH_RET_IF(ad == NULL);
+ SEARCH_RET_IF(cur_category_mem == NULL);
+
+ if (access(cur_category_mem->launch_path, F_OK) != 0) {
+ SEARCH_DEBUG_ERROR("video access error : %s",
+ cur_category_mem->launch_path);
+ search_launch_popup_error(LAUNCH_ERROR_FILE_NOT_FOUND, ad);
+ } else {
+ SEARCH_DEBUG_LOG("cur_category_mem->launch_path : %s",
+ cur_category_mem->launch_path);
+
+ service_h service;
+ ret = service_create(&service);
+
+ if (ret == 0) {
+ service_set_operation(service, SERVICE_OPERATION_VIEW);
+ service_set_uri(service, cur_category_mem->launch_path);
+ ret = service_send_launch_request(service, NULL, NULL);
+
+ if (ret != 0) {
+ SEARCH_DEBUG_ERROR("video app service launching error(%d)", ret);
+ search_launch_popup_error(LAUNCH_ERROR_APPSVC,
+ ad);
+ }
+ service_destroy(service);
+ }
+ }
+
+ SEARCH_FUNC_END;
+}
+
+void search_launch_music_view(void *data, void *record_info)
+{
+ SEARCH_FUNC_START;
+
+ struct appdata *ad = (struct appdata *)data;
+ struct search_item_sel *cur_category_mem = (struct search_item_sel *)record_info;
+ int ret;
+
+ SEARCH_RET_IF(ad == NULL);
+ SEARCH_RET_IF(cur_category_mem == NULL);
+
+ if (access(cur_category_mem->launch_path, F_OK) != 0) {
+ SEARCH_DEBUG_ERROR("music file access error : %s",
+ cur_category_mem->launch_path);
+ search_launch_popup_error(LAUNCH_ERROR_FILE_NOT_FOUND, ad);
+ } else {
+ SEARCH_DEBUG_LOG("cur_category_mem->launch_path : %s",
+ cur_category_mem->launch_path);
+
+ service_h service;
+ ret = service_create(&service);
+
+ if (ret == 0) {
+ service_set_operation(service, SERVICE_OPERATION_VIEW);
+ service_set_uri(service, cur_category_mem->launch_path);
+ ret = service_send_launch_request(service, NULL, NULL);
+
+ if (ret != 0) {
+ SEARCH_DEBUG_ERROR("music app service launching error(%d)", ret);
+ search_launch_popup_error(LAUNCH_ERROR_APPSVC,
+ ad);
+ }
+ service_destroy(service);
+ }
+ }
+
+ SEARCH_FUNC_END;
+}
+
+void search_launch_calendar_view(void *data, void *record_info)
+{
+ SEARCH_FUNC_START;
+
+ struct appdata *ad = (struct appdata *)data;
+ struct search_item_sel *cur_category_mem = (struct search_item_sel *)record_info;
+ ui_gadget_h ug = NULL;
+ struct ug_cbs cbs = { 0, };
+ int ret = 0;
+ bool err_popup_show = true;
+ service_h service = NULL;
+
+ SEARCH_RET_IF(ad == NULL);
+ SEARCH_RET_IF(cur_category_mem == NULL);
+
+ if (strlen(cur_category_mem->launch_param) <= 0) {
+ SEARCH_DEBUG_ERROR("Selected item does not have data!");
+ goto out_func;
+ } else {
+ ret = service_create(&service);
+
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("Fail to create service handle!");
+ goto out_func;
+ }
+
+ ret = service_add_extra_data(service, "itemType", "event");
+
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("Fail to add service extra data : parameter 1!");
+ goto out_func;
+ }
+
+ ret = service_add_extra_data(service, "eventId", cur_category_mem->launch_param);
+
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("Fail to add service extra data : parameter 2!");
+ goto out_func;
+ }
+
+ cbs.destroy_cb = __search_ug_closed_cb;
+ cbs.layout_cb = __search_ug_layout_cb;
+ cbs.result_cb = NULL;
+ cbs.priv = ad;
+
+ ug = ug_create(NULL, "calendar-detail-efl", UG_MODE_FULLVIEW, service, &cbs);
+
+ if (!ug) {
+ SEARCH_DEBUG_ERROR("... create_ug_calendar : failed !!!");
+ goto out_func;
+ }
+
+ ad->detail_ug = ug;
+ err_popup_show = false;
+ }
+
+out_func:
+ if (err_popup_show == true) {
+ search_launch_popup_error(LAUNCH_ERROR_AUL_LAUNCH, ad);
+ }
+
+ if (service != NULL) {
+ service_destroy(service);
+ }
+
+ SEARCH_FUNC_END;
+}
+
+void search_launch_memo_view(void *data, void *record_info)
+{
+ SEARCH_FUNC_START;
+
+ struct appdata *ad = (struct appdata *)data;
+ struct search_item_sel *cur_category_mem = (struct search_item_sel *)record_info;
+ ui_gadget_h ug = NULL;
+ struct ug_cbs cbs = { 0, };
+
+ int ret = 0;
+ bool err_popup_show = true;
+
+ service_h service = NULL;
+
+ SEARCH_RET_IF(ad == NULL);
+ SEARCH_RET_IF(cur_category_mem == NULL);
+
+ if (strlen(cur_category_mem->launch_param) <= 0) {
+ SEARCH_DEBUG_ERROR("Selected item does not have data!");
+ goto out_func;
+ } else {
+ if (ad->detail_ug) {
+ SEARCH_DEBUG_WARNING("prev ug is exist. destroy prev ug");
+ ug_destroy(ug);
+ ad->detail_ug = NULL;
+ }
+
+ ret = service_create(&service);
+
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("Fail to create service handle!");
+ goto out_func;
+ }
+
+ ret = service_add_extra_data(service, "index", cur_category_mem->launch_param);
+
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("Fail to add service extra data : parameter 1!");
+ goto out_func;
+ }
+
+ cbs.layout_cb = __search_ug_layout_cb;
+ cbs.result_cb = NULL;
+ cbs.destroy_cb = __search_ug_closed_cb;
+ cbs.priv = ad;
+
+ ug = ug_create(NULL, "memo-efl", UG_MODE_FULLVIEW, service, &cbs);
+
+ if (!ug) {
+ SEARCH_DEBUG_ERROR("... create_ug_email : failed !!!");
+ goto out_func;
+ }
+
+ ad->detail_ug = ug;
+ err_popup_show = false;
+ }
+
+out_func:
+ if (err_popup_show == true) {
+ search_launch_popup_error(LAUNCH_ERROR_AUL_LAUNCH, ad);
+ }
+
+ if (service != NULL) {
+ service_destroy(service);
+ }
+
+ SEARCH_FUNC_END;
+}
+
+void search_launch_menu_view(void *data, void *record_info)
+{
+ SEARCH_FUNC_START;
+
+ struct appdata *ad = (struct appdata *)data;
+ struct search_item_sel *cur_category_mem =
+ (struct search_item_sel *)record_info;
+ char *pkg_name = NULL;
+ bool is_running = false;
+ app_context_h app_h;
+
+ bool err_popup_show = true;
+ int ret;
+ service_h service = NULL;
+
+ SEARCH_RET_IF(ad == NULL);
+ SEARCH_RET_IF(cur_category_mem == NULL);
+
+ pkg_name = cur_category_mem->launch_path;
+
+ if (pkg_name != NULL && strlen(pkg_name)) {
+ ret = app_manager_is_running(pkg_name, &is_running);
+
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("Fail to get info : app_manager_is_running [%d]", ret);
+ goto out_func;
+ }
+
+ if (is_running == true) {
+ ret = app_manager_get_app_context(pkg_name, &app_h);
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("Fail to get info : app_manager_get_app_context [%d]", ret);
+ goto out_func;
+ }
+
+ ret = app_manager_resume_app(app_h);
+
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("Fail to get info : app_manager_resume_app [%d]", ret);
+ goto out_func;
+ }
+ err_popup_show = false;
+ } else {
+ ret = service_create(&service);
+
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("Fail to create service header : [%d]", ret);
+ goto out_func;
+ }
+
+ ret = service_set_operation(service, SERVICE_OPERATION_DEFAULT);
+
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("Fail to set operation : [%d]", ret);
+ goto out_func;
+ }
+
+ ret = service_set_package(service, pkg_name);
+
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("Fail to set package : [%d]", ret);
+ goto out_func;
+ }
+
+ ret = service_send_launch_request(service, NULL, NULL);
+
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("Fail to send launch request : [%d]", ret);
+ goto out_func;
+ }
+ err_popup_show = false;
+ }
+ } else {
+ SEARCH_DEBUG_ERROR("Pkg name is NULL!");
+ }
+
+out_func:
+ if (err_popup_show == true)
+ search_launch_popup_error(LAUNCH_ERROR_APPSVC, ad);
+
+ if (service != NULL) {
+ ret = service_destroy(service);
+
+ if (ret != SERVICE_ERROR_NONE)
+ SEARCH_DEBUG_ERROR("Fail to destroy service header : [%d]", ret);
+ }
+
+ SEARCH_FUNC_END;
+}
+
+void search_launch_browser_view(void *data, void *record_info)
+{
+ SEARCH_FUNC_START;
+
+ struct appdata *ad = (struct appdata *)data;
+ struct search_item_sel *cur_category_mem =
+ (struct search_item_sel *)record_info;
+ int ret;
+ service_h service;
+
+ SEARCH_RET_IF(ad == NULL);
+ SEARCH_RET_IF(cur_category_mem == NULL);
+
+ SEARCH_DEBUG_LOG("cur_category_mem->launch_path : %s", cur_category_mem->launch_path);
+
+ ret = service_create(&service);
+
+ if (ret == 0 && strlen(cur_category_mem->launch_path) > 0 ) {
+ service_set_operation(service, SERVICE_OPERATION_VIEW);
+ service_set_uri(service, cur_category_mem->launch_path);
+ ret = service_send_launch_request(service, NULL, NULL);
+
+ if (ret != 0) {
+ SEARCH_DEBUG_ERROR("browser app service launching error(%d)", ret);
+ search_launch_popup_error(LAUNCH_ERROR_APPSVC,
+ ad);
+ }
+ service_destroy(service);
+ }
+
+}
+
+static void __search_launch_popup_error_response_cb(void *data,
+ Evas_Object * obj,
+ void *event_info)
+{
+ SEARCH_FUNC_START;
+
+ struct appdata *ad = (struct appdata *)data;
+ SEARCH_RET_IF(ad == NULL);
+
+ evas_object_del(ad->ctxpopup);
+ ad->ctxpopup = NULL;
+
+ SEARCH_FUNC_END;
+}
+
+void search_launch_popup_error(int error_type, void *data)
+{
+ Evas_Object *popup;
+ Evas_Object *btn1;
+
+ struct appdata *ad = (struct appdata *)data;
+
+ SEARCH_RET_IF(ad == NULL);
+
+ if (error_type >= LAUNCH_ERROR_MAX) {
+ SEARCH_DEBUG_ERROR("wrong error_type : %d", error_type);
+ }
+
+ if (ad->ctxpopup) {
+ evas_object_del(ad->ctxpopup);
+ ad->ctxpopup = NULL;
+ }
+
+ elm_genlist_select_mode_set(ad->search_gl, ELM_OBJECT_SELECT_MODE_DEFAULT);
+
+ if (elm_object_scroll_freeze_get(ad->search_gl) > 0) {
+ elm_object_scroll_freeze_pop(ad->search_gl);
+ }
+
+ popup = elm_popup_add(ad->win_main);
+ evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+
+ switch(error_type) {
+ case LAUNCH_ERROR_FILE_NOT_FOUND:
+ elm_object_text_set(popup,
+ dgettext("sys_string",
+ "IDS_COM_POP_FILE_NOT_FOUND"));
+ break;
+ case LAUNCH_ERROR_AUL_LAUNCH:
+ /* This Message String enable to be another string in the future */
+ elm_object_text_set(popup,
+ gettext("IDS_SSEARCH_POP_SELECTED_DATA_DOES_NOT_EXIST"));
+ break;
+ case LAUNCH_ERROR_APPSVC:
+ elm_object_text_set(popup,
+ gettext("IDS_SSEARCH_POP_SELECTED_DATA_DOES_NOT_EXIST"));
+ break;
+ }
+
+ btn1 = elm_button_add(popup);
+ elm_object_style_set(btn1, "popup_button/default");
+
+ elm_object_text_set(btn1,
+ dgettext("sys_string","IDS_COM_POP_CLOSE"));
+ evas_object_smart_callback_add(btn1, "clicked",
+ __search_launch_popup_error_response_cb,
+ ad);
+
+ elm_object_part_content_set(popup, "button1", btn1);
+
+ elm_popup_timeout_set(popup, 3.0);
+
+ evas_object_smart_callback_add(popup, "timeout",
+ __search_launch_popup_error_response_cb,
+ ad);
+ evas_object_smart_callback_add(popup, "block,clicked",
+ __search_launch_popup_error_response_cb,
+ ad);
+ evas_object_show(popup);
+
+ ad->ctxpopup = popup;
+}
+