summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunghyun Kim <jh1114.kim@samsung.com>2013-01-03 16:53:27 +0900
committerJunghyun Kim <jh1114.kim@samsung.com>2013-01-03 16:53:27 +0900
commitf3f71c41dc085f849d5e73708e66497c43f90799 (patch)
treeead16eb788cf6cf5c0600704fda9b0e80f27018c
parent86686c2dfe670e174c8e51ee473edad8542c65d8 (diff)
parentf46612fd88c196c70ab20d2922b3f8e84db7890c (diff)
downloadsmartsearch-f3f71c41dc085f849d5e73708e66497c43f90799.tar.gz
smartsearch-f3f71c41dc085f849d5e73708e66497c43f90799.tar.bz2
smartsearch-f3f71c41dc085f849d5e73708e66497c43f90799.zip
Merge branch 'master' into tizen_2.0
-rwxr-xr-xdata/groups/search_bar.edc124
-rwxr-xr-xdata/groups/ug_effect.edc109
-rwxr-xr-xdata/org.tizen.smartsearch.xml2
-rwxr-xr-xinclude/smartsearch.h15
-rwxr-xr-xpo/CMakeLists.txt2
-rwxr-xr-xpo/es_MX.po15
-rwxr-xr-xsrc/ps_app_interface.cpp164
-rwxr-xr-xsrc/ps_makeupviews.cpp221
-rwxr-xr-xsrc/ps_searcher.cpp435
-rwxr-xr-xsrc/search_bar.cpp5
-rwxr-xr-xsrc/smartsearch.cpp8
11 files changed, 522 insertions, 578 deletions
diff --git a/data/groups/search_bar.edc b/data/groups/search_bar.edc
deleted file mode 100755
index b867440..0000000
--- a/data/groups/search_bar.edc
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright 2012 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://www.tizenopensource.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.
- */
-
-group {
- name: "smartsearch/search_bar";
- parts {
- part {
- name: "bg";
- mouse_events: 0;
- type: RECT;
- scale: 1;
- description {
- state: "default" 0.0;
- visible: 1;
- rel1 { relative: 0.0 0.0;}
- rel2 { relative: 1.0 1.0;}
- color: SEARCHBAR_BACKGROUND_COLOR_DEFAULT;
- }
- }
- part {
- name: "searchbar_area_category_pad_left";
- type: RECT;
- mouse_events: 0;
- scale: 1;
- description {
- state: "default" 0.0;
- visible: 1;
- min: 16 0;
- fixed: 0 1;
- align: 0.0 0.0;
- rel1 { relative: 0.0 0.0; to: "bg";}
- rel2 { relative: 0.0 1.0; to: "bg";}
- color: SEARCHBAR_BACKGROUND_COLOR_DEFAULT;
- }
- }
- part {
- name: "searchbar_area_category_top";
- type: RECT;
- mouse_events: 1;
- scale: 1;
- description {
- state: "default" 0.0;
- visible: 1;
- min: 80 16;
- fixed: 0 1;
- align: 0.0 0.0;
- rel1 { relative: 1.0 0.0; to: "searchbar_area_category_pad_left";}
- rel2 { relative: 1.0 0.0; to: "searchbar_area_category_pad_left";}
- color: SEARCHBAR_BACKGROUND_COLOR_DEFAULT;
- }
- }
- part {
- name: "searchbar_area_category_bottom";
- type: RECT;
- mouse_events: 1;
- scale: 1;
- description {
- state: "default" 0.0;
- visible: 1;
- min: 80 16;
- fixed: 0 1;
- align: 0.0 0.0;
- rel1 { relative: 0.0 1.0; to: "searchbar_area_category_top";}
- rel2 { relative: 1.0 1.0;
- to_x: "searchbar_area_category_top";
- to_y: "bg";}
- color: SEARCHBAR_BACKGROUND_COLOR_DEFAULT;
- }
- }
- part {
- name: "searchbar_area_category";
- type: SWALLOW;
- mouse_events: 1;
- scale: 1;
- description {
- state: "default" 0.0;
- visible: 1;
- min: 80 0;
- //max: 0 106;
- fixed: 0 1;
- align: 0.0 0.0;
- rel1 { relative: 1.0 1.0;
- to_x: "searchbar_area_category_pad_left";
- to_y: "searchbar_area_category_top";}
- rel2 { relative: 1.0 0.0;
- to_x: "searchbar_area_category_pad_left";
- to_y: "searchbar_area_category_bottom";}
- }
- }
- part {
- name: "searchbar_area_entry";
- type: SWALLOW;
- mouse_events: 1;
- scale: 1;
- description {
- state: "default" 0.0;
- min: 0 107;
- fixed: 0 1;
- align: 0.0 1.0;
- rel1 { relative: 1.0 0.0;
- to_x: "searchbar_area_category";
- to_y: "bg";
- }
- rel2 { relative: 1.0 1.0;
- to_x: "bg";
- to_y: "bg";}
- }
- }
- } //end parts
-} //end group
-
diff --git a/data/groups/ug_effect.edc b/data/groups/ug_effect.edc
deleted file mode 100755
index 9f5a9da..0000000
--- a/data/groups/ug_effect.edc
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright 2012 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://www.tizenopensource.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.
- */
-
-
-
-
-group {
- name: "ug_effect";
- parts {
- part {
- name: "clip";
- type: RECT;
- description {
- state: "default" 0.0;
- rel1 { relative: 1 0; }
- rel2 { relative: 2 1; }
- color: 255 255 255 0;
- }
- description {
- state: "show" 0.0;
- rel1 { relative: 0 0; }
- rel2 { relative: 1 1; }
- color: 255 255 255 255;
- }
- }
- part {
- name: "elm.swallow.content";
- type: SWALLOW;
- clip_to: "clip";
- description {
- rel1.to: "clip";
- rel2.to: "clip";
- }
- }
- part {
- name: "event_blocker";
- description {
- state: "default" 0.0;
- rel1.to: "clip";
- rel2.to: "clip";
- visible: 1;
- }
- description {
- state: "show" 0.0;
- inherit: "default" 0.0;
- }
- description {
- state: "disabled" 0.0;
- inherit: "default" 0.0;
- visible: 0;
- }
- }
- }
- programs {
- program {
- name: "show";
- signal: "elm,state,show";
- action: STATE_SET "show" 0.0;
- target: "clip";
- target: "event_blocker";
- transition: "DECELERATE" 0.5;
- after: "show_end";
- }
- program {
- name: "hide";
- signal: "elm,state,hide";
- action: STATE_SET "default" 0.0;
- target: "clip";
- target: "event_blocker";
- transition: "DECELERATE" 0.5;
- after: "hide_end";
- }
- program {
- name: "disable_blocker";
- name: "disable_event_blocker";
- signal: "elm,state,blocker,disabled";
- action: STATE_SET "disabled" 0.0;
- target: "event_blocker";
- }
- program{
- name: "disable_blocker";
- action: SIGNAL_EMIT "elm,state,blocker,disabled" "";
- }
- program {
- name: "show_end";
- action: SIGNAL_EMIT "elm,action,show,finished" "";
- after: "disable_blocker";
- }
- program {
- name: "hide_end";
- action: SIGNAL_EMIT "elm,action,hide,finished" "";
- after: "disable_blocker";
- }
- }
- }
-
diff --git a/data/org.tizen.smartsearch.xml b/data/org.tizen.smartsearch.xml
index 5ddd4cb..ee8bb02 100755
--- a/data/org.tizen.smartsearch.xml
+++ b/data/org.tizen.smartsearch.xml
@@ -47,7 +47,7 @@
<label xml:lang="sk-sk">Hľadať</label>
<label xml:lang="sl-sl">Iskanje</label>
<label xml:lang="es-es">Buscar</label>
- <label xml:lang="es-us">Buscar</label>
+ <label xml:lang="es-mx">Buscar</label>
<label xml:lang="sv-se">Sök</label>
<label xml:lang="tr-tr">Akıllı Arama</label>
<label xml:lang="uk-ua">Пошук</label>
diff --git a/include/smartsearch.h b/include/smartsearch.h
index 15982cf..0a3cfa6 100755
--- a/include/smartsearch.h
+++ b/include/smartsearch.h
@@ -96,12 +96,12 @@ struct search_pipe_data {
struct search_item_sel {
int type;
- char path[MAX_LENGTH_PER_PATH];
- char main_buf[MAX_LENGTH_PER_LINE];
- char sub_buf[MAX_LENGTH_PER_LINE];
- char main_id[MAX_LENGTH_PER_ID];
- char icon1_path[MAX_LENGTH_PER_PATH];
- char icon2_path[MAX_LENGTH_PER_PATH];
+ char *launch_path;
+ char *launch_param;
+ char *text1;
+ char *text2;
+ char *icon1;
+ char *icon2;
};
struct search_item_more_sel {
@@ -138,11 +138,12 @@ struct appdata {
Elm_Genlist_Item_Class *itc_pslist_1line;
Elm_Genlist_Item_Class *itc_pslist_1line_1icon;
+ Elm_Genlist_Item_Class *itc_pslist_1line_1icon_browser_history;
Elm_Genlist_Item_Class *itc_pslist_1line_2icon;
Elm_Genlist_Item_Class *itc_pslist_2line_1icon;
Elm_Genlist_Item_Class *itc_pslist_2line_2icon;
+ Elm_Genlist_Item_Class *itc_pslist_2line_2icon_browser_bookmark;
Elm_Genlist_Item_Class *itc_grouptitle;
- Elm_Genlist_Item_Class *itc_label;
Elm_Genlist_Item_Class *itc_listmore;
Ecore_Pipe *pipe;
diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
index e38e1d2..d8183e0 100755
--- a/po/CMakeLists.txt
+++ b/po/CMakeLists.txt
@@ -42,7 +42,7 @@ SET(POFILES
sk.po
sl.po
es_ES.po
- es_US.po
+ es_MX.po
sv.po
tr_TR.po
uk.po
diff --git a/po/es_MX.po b/po/es_MX.po
new file mode 100755
index 0000000..8b5a72d
--- /dev/null
+++ b/po/es_MX.po
@@ -0,0 +1,15 @@
+msgid "IDS_SSEARCH_POP_UPDATING_ING"
+msgstr "Actualizando..."
+
+msgid "IDS_SSEARCH_POP_UNABLE_TO_LAUNCH_APPLICATION"
+msgstr "No se puede iniciar aplicación"
+
+msgid "IDS_SSEARCH_POP_SELECTED_DATA_DOES_NOT_EXIST"
+msgstr "Los datos seleccionados no existen"
+
+msgid "IDS_SSEARCH_HEADER_PHONE_ABB"
+msgstr "Teléfono"
+
+msgid "IDS_SSEARCH_BODY_MORE_RESULTS"
+msgstr "Más resultados"
+
diff --git a/src/ps_app_interface.cpp b/src/ps_app_interface.cpp
index 232f778..b56e1e0 100755
--- a/src/ps_app_interface.cpp
+++ b/src/ps_app_interface.cpp
@@ -80,66 +80,54 @@ void search_launch_contact_view(void *data, void *record_info)
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;
- ui_gadget_h ug = NULL;
- struct ug_cbs cbs = { 0, };
+ Ecore_X_Window win_id = -1;
- char buf[10] = { 0, };
+ win_id = elm_win_xwindow_get(ad->win_main);
- SEARCH_RET_IF(ad == NULL);
- SEARCH_RET_IF(cur_category_mem == NULL);
-
- if (!cur_category_mem || strlen(cur_category_mem->main_id) < 0 ) {
- SEARCH_DEBUG_ERROR("Selected item does not have data!");
+ ret = service_create(&service);
+ if (ret != SERVICE_ERROR_NONE) {
+ SEARCH_DEBUG_ERROR("[Fail] service_create");
goto out_func;
- } else {
- if (ad->detail_ug) {
- SEARCH_DEBUG_WARNING("\n prev ug is exist. destroy prev ug");
- ug_destroy(ug);
- ad->detail_ug = NULL;
}
- ret = service_create(&service);
+ 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 to create service handle!");
+ SEARCH_DEBUG_ERROR("[Fail] service_set_window!");
goto out_func;
}
- snprintf(buf, sizeof(buf), "%d", CT_UG_REQUEST_DETAIL);
- ret = service_add_extra_data(service, CT_UG_BUNDLE_TYPE, buf);
-
+ ret = service_add_extra_data(service, "type", "0");;
if (ret != SERVICE_ERROR_NONE) {
- SEARCH_DEBUG_ERROR("Fail to add service extra data : parameter 1!");
+ SEARCH_DEBUG_ERROR("[Fail] service_add_extra_data : type!");
goto out_func;
}
- ret = service_add_extra_data(service, CT_UG_BUNDLE_ID,
- cur_category_mem->main_id);
-
+ ret = service_add_extra_data(service, "person_id", cur_category_mem->launch_param);
if (ret != SERVICE_ERROR_NONE) {
- SEARCH_DEBUG_ERROR("Fail to add service extra data : parameter 2!");
+ SEARCH_DEBUG_ERROR("[Fail] service_add_extra_data : person_id");
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, UG_CONTACTS_DETAILS, UG_MODE_FULLVIEW, service, &cbs);
-
- if (!ug) {
- SEARCH_DEBUG_ERROR(" ... ug_create: failed !!!");
+ 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 {
- ad->detail_ug = ug;
err_popup_show = false;
}
- }
out_func:
if (err_popup_show == true) {
@@ -160,27 +148,53 @@ void search_launch_msg_view(void *data, void *record_info)
struct appdata *ad = (struct appdata *)data;
struct search_item_sel *cur_category_mem = (struct search_item_sel *)record_info;
- bundle *b;
- int ret = 0;
-
SEARCH_RET_IF(ad == NULL);
SEARCH_RET_IF(cur_category_mem == NULL);
- b = bundle_create();
- if (!b) {
- SEARCH_DEBUG_ERROR("search_launch_msg_view : bundle_create failed");
- return;
+ 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;
}
- bundle_add(b, "type", "msg_id");
- bundle_add(b, "msgId", cur_category_mem->main_id);
- ret = aul_launch_app("org.tizen.message", b);
- if( (ret <= 0) && (ret != AUL_R_ETIMEOUT) ){
- SEARCH_DEBUG_ERROR("msg aul launch app error(%d)", ret);
+out_func:
+ if (err_popup_show == true) {
search_launch_popup_error(LAUNCH_ERROR_AUL_LAUNCH, ad);
}
- bundle_free(b);
+ if (service != NULL) {
+ service_destroy(service);
+ }
SEARCH_FUNC_END;
}
@@ -211,9 +225,7 @@ void search_launch_email_view(void *data, void *record_info)
goto out_func;
}
- snprintf(temp_path, MAX_LENGTH_PER_PATH - 1, "%s",
- cur_category_mem->path);
-
+ 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) {
@@ -290,21 +302,21 @@ void search_launch_image_view(void *data, void *record_info)
SEARCH_RET_IF(ad == NULL);
SEARCH_RET_IF(cur_category_mem == NULL);
- if (access(cur_category_mem->path, F_OK) != 0) {
+ if (access(cur_category_mem->launch_path, F_OK) != 0) {
SEARCH_DEBUG_ERROR("image access error : %s",
- cur_category_mem->path);
+ cur_category_mem->launch_path);
search_launch_popup_error(LAUNCH_ERROR_FILE_NOT_FOUND,
ad);
} else {
- SEARCH_DEBUG_LOG("cur_category_mem->path : %s",
- cur_category_mem->path);
+ 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->path);
+ service_set_uri(service, cur_category_mem->launch_path);
ret = service_send_launch_request(service, NULL, NULL);
if (ret != 0) {
@@ -330,20 +342,20 @@ void search_launch_video_view(void *data, void *record_info)
SEARCH_RET_IF(ad == NULL);
SEARCH_RET_IF(cur_category_mem == NULL);
- if (access(cur_category_mem->path, F_OK) != 0) {
+ if (access(cur_category_mem->launch_path, F_OK) != 0) {
SEARCH_DEBUG_ERROR("video access error : %s",
- cur_category_mem->path);
+ cur_category_mem->launch_path);
search_launch_popup_error(LAUNCH_ERROR_FILE_NOT_FOUND, ad);
} else {
- SEARCH_DEBUG_LOG("cur_category_mem->path : %s",
- cur_category_mem->path);
+ 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->path);
+ service_set_uri(service, cur_category_mem->launch_path);
ret = service_send_launch_request(service, NULL, NULL);
if (ret != 0) {
@@ -369,20 +381,20 @@ void search_launch_music_view(void *data, void *record_info)
SEARCH_RET_IF(ad == NULL);
SEARCH_RET_IF(cur_category_mem == NULL);
- if (access(cur_category_mem->path, F_OK) != 0) {
+ if (access(cur_category_mem->launch_path, F_OK) != 0) {
SEARCH_DEBUG_ERROR("music file access error : %s",
- cur_category_mem->path);
+ cur_category_mem->launch_path);
search_launch_popup_error(LAUNCH_ERROR_FILE_NOT_FOUND, ad);
} else {
- SEARCH_DEBUG_LOG("cur_category_mem->path : %s",
- cur_category_mem->path);
+ 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->path);
+ service_set_uri(service, cur_category_mem->launch_path);
ret = service_send_launch_request(service, NULL, NULL);
if (ret != 0) {
@@ -412,7 +424,7 @@ void search_launch_calendar_view(void *data, void *record_info)
SEARCH_RET_IF(ad == NULL);
SEARCH_RET_IF(cur_category_mem == NULL);
- if (!cur_category_mem && strlen(cur_category_mem->main_id) < 0) {
+ if (strlen(cur_category_mem->launch_param) < 0) {
SEARCH_DEBUG_ERROR("Selected item does not have data!");
goto out_func;
} else {
@@ -430,7 +442,7 @@ void search_launch_calendar_view(void *data, void *record_info)
goto out_func;
}
- ret = service_add_extra_data(service, "eventId", cur_category_mem->main_id);
+ 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!");
@@ -482,7 +494,7 @@ void search_launch_memo_view(void *data, void *record_info)
SEARCH_RET_IF(ad == NULL);
SEARCH_RET_IF(cur_category_mem == NULL);
- if (!cur_category_mem && strlen(cur_category_mem->main_id) < 0) {
+ if (strlen(cur_category_mem->launch_param) < 0) {
SEARCH_DEBUG_ERROR("Selected item does not have data!");
goto out_func;
} else {
@@ -499,7 +511,7 @@ void search_launch_memo_view(void *data, void *record_info)
goto out_func;
}
- ret = service_add_extra_data(service, "index", cur_category_mem->main_id);
+ 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!");
@@ -552,7 +564,7 @@ void search_launch_menu_view(void *data, void *record_info)
SEARCH_RET_IF(ad == NULL);
SEARCH_RET_IF(cur_category_mem == NULL);
- pkg_name = cur_category_mem->path;
+ pkg_name = cur_category_mem->launch_path;
if (pkg_name != NULL && strlen(pkg_name)) {
ret = app_manager_is_running(pkg_name, &is_running);
@@ -637,13 +649,13 @@ void search_launch_browser_view(void *data, void *record_info)
SEARCH_RET_IF(ad == NULL);
SEARCH_RET_IF(cur_category_mem == NULL);
- SEARCH_DEBUG_LOG("cur_category_mem->path : %s", cur_category_mem->path);
+ 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->path) > 0 ) {
+ if (ret == 0 && strlen(cur_category_mem->launch_path) > 0 ) {
service_set_operation(service, SERVICE_OPERATION_VIEW);
- service_set_uri(service, cur_category_mem->path);
+ service_set_uri(service, cur_category_mem->launch_path);
ret = service_send_launch_request(service, NULL, NULL);
if (ret != 0) {
@@ -689,6 +701,12 @@ void search_launch_popup_error(int error_type, void *data)
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);
diff --git a/src/ps_makeupviews.cpp b/src/ps_makeupviews.cpp
index 7b3e495..29ff2fd 100755
--- a/src/ps_makeupviews.cpp
+++ b/src/ps_makeupviews.cpp
@@ -25,6 +25,7 @@
#include <msg_types.h>
#include <msg_storage.h>
#include <msg.h>
+#include <favorites.h>
struct search_thread_data {
struct appdata *ad;
@@ -94,7 +95,7 @@ ecore_exe_pipe_cb(void *data, void *buf, unsigned int size)
item->itc_style,
item->data,
NULL,
- ELM_GENLIST_ITEM_GROUP,
+ ELM_GENLIST_ITEM_NONE,
NULL,
NULL);
elm_genlist_item_select_mode_set(obj->gl_result_grp,
@@ -146,53 +147,158 @@ ecore_exe_pipe_cb(void *data, void *buf, unsigned int size)
SEARCH_FUNC_END;
}
-static Evas_Object *__search_gl_content_get_search_item_type(void *data, Evas_Object *obj, const char *part)
+static Evas_Object *__search_gl_content_get_genlist_item_type(void *data, Evas_Object *obj, const char *part)
{
Evas_Object *icon = NULL;
int icon_size = 0;
+ char *icon1_path = NULL;
+ char *icon2_path = NULL;
struct search_item_sel *sel_mem_info = (struct search_item_sel *)data;
+ double scale = elm_config_scale_get();
+
SEARCH_RETV_IF(sel_mem_info == NULL, NULL);
if (!SEARCH_STRCMP(part, "elm.icon") || !SEARCH_STRCMP(part, "elm.icon.1")) {
- if (strlen(sel_mem_info->icon1_path) > 0 ) {
+ icon1_path = sel_mem_info->icon1;
+ if (icon1_path && strlen(icon1_path) > 0 ) {
icon = elm_icon_add(obj);
- icon_size = (int)(SEARCH_THUMBNAIL_SIZE * elm_scale_get());
+ icon_size = (int)(SEARCH_THUMBNAIL_SIZE * scale);
elm_image_prescale_set(icon, icon_size);
- elm_image_file_set(icon, sel_mem_info->icon1_path, NULL);
+ elm_image_file_set(icon, icon1_path, NULL);
evas_object_size_hint_min_set(icon,
- SEARCH_THUMBNAIL_SIZE * elm_scale_get(),
- SEARCH_THUMBNAIL_SIZE * elm_scale_get());
+ SEARCH_THUMBNAIL_SIZE * scale, SEARCH_THUMBNAIL_SIZE * scale);
evas_object_size_hint_max_set(icon,
- SEARCH_THUMBNAIL_SIZE * elm_scale_get(),
- SEARCH_THUMBNAIL_SIZE * elm_scale_get());
+ SEARCH_THUMBNAIL_SIZE * scale, SEARCH_THUMBNAIL_SIZE * scale);
evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
}
} else if(!strcmp(part, "elm.icon.2")) {
- if (strlen(sel_mem_info->icon2_path) > 0 ) {
+ icon2_path = sel_mem_info->icon2;
+
+ if (icon2_path && strlen(icon2_path) > 0 ) {
icon = elm_icon_add(obj);
- icon_size = (int)(SEARCH_ICON_SIZE * elm_scale_get());
+ icon_size = (int)(SEARCH_ICON_SIZE * scale);
elm_image_prescale_set(icon, icon_size);
- elm_image_file_set(icon, sel_mem_info->icon2_path, NULL);
+ elm_image_file_set(icon, icon2_path, NULL);
evas_object_size_hint_min_set(icon,
- SEARCH_ICON_SIZE * elm_scale_get(),
- SEARCH_ICON_SIZE * elm_scale_get());
+ SEARCH_ICON_SIZE * scale, SEARCH_ICON_SIZE * scale);
evas_object_size_hint_max_set(icon,
- SEARCH_ICON_SIZE * elm_scale_get(),
- SEARCH_ICON_SIZE * elm_scale_get());
+ SEARCH_ICON_SIZE * scale, SEARCH_ICON_SIZE * scale);
+ evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+ }
+ }
+
+ return icon;
+}
+
+static Evas_Object *__search_gl_content_get_genlist_bookmark_item_type(void *data, Evas_Object *obj, const char *part)
+{
+ Evas_Object *icon = NULL;
+ int icon_size = 0;
+ int id = 0;
+ char *icon2_path = NULL;
+
+ struct search_item_sel *sel_mem_info = (struct search_item_sel *)data;
+ SEARCH_RETV_IF(sel_mem_info == NULL, NULL);
+
+ double scale = elm_config_scale_get();
+
+ if (!SEARCH_STRCMP(part, "elm.icon") || !SEARCH_STRCMP(part, "elm.icon.1")) {
+ if (sel_mem_info->launch_param) {
+ id = atoi(sel_mem_info->launch_param);
+ favorites_bookmark_get_favicon(id, evas_object_evas_get(obj), &icon);
+ }
+
+ if (!icon && sel_mem_info->icon1) {
+ icon = elm_icon_add(obj);
+ icon_size = (int)(SEARCH_ICON_SIZE * scale);
+ elm_image_prescale_set(icon, icon_size);
+ elm_image_file_set(icon, sel_mem_info->icon1, NULL);
+ }
+
+ if (icon) {
+ evas_object_size_hint_min_set(icon,
+ SEARCH_THUMBNAIL_SIZE * scale, SEARCH_THUMBNAIL_SIZE * scale);
+ evas_object_size_hint_max_set(icon,
+ SEARCH_THUMBNAIL_SIZE * scale, SEARCH_THUMBNAIL_SIZE * scale);
+ evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+ }
+ } else if(!strcmp(part, "elm.icon.2")) {
+ icon2_path = sel_mem_info->icon2;
+
+ if (icon2_path && strlen(icon2_path) > 0 ) {
+ icon = elm_icon_add(obj);
+ icon_size = (int)(SEARCH_ICON_SIZE * scale);
+ elm_image_prescale_set(icon, icon_size);
+ elm_image_file_set(icon, icon2_path, NULL);
+ evas_object_size_hint_min_set(icon,
+ SEARCH_ICON_SIZE * scale, SEARCH_ICON_SIZE * scale);
+ evas_object_size_hint_max_set(icon,
+ SEARCH_ICON_SIZE * scale, SEARCH_ICON_SIZE * scale);
evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
}
}
return icon;
}
+static Evas_Object *__search_gl_content_get_genlist_history_item_type(void *data, Evas_Object *obj, const char *part)
+{
+ Evas_Object *icon = NULL;
+ int icon_size = 0;
+ char *icon2_path = NULL;
+ int id = 0;
+
+ struct search_item_sel *sel_mem_info = (struct search_item_sel *)data;
+ SEARCH_RETV_IF(sel_mem_info == NULL, NULL);
+
+ double scale = elm_config_scale_get();
+
+ if (!SEARCH_STRCMP(part, "elm.icon") || !SEARCH_STRCMP(part, "elm.icon.1")) {
+ if (sel_mem_info->launch_param) {
+ id = atoi(sel_mem_info->launch_param);
+ favorites_history_get_favicon(id, evas_object_evas_get(obj), &icon);
+ }
+
+ if (!icon && sel_mem_info->icon1) {
+ icon = elm_icon_add(obj);
+ icon_size = (int)(SEARCH_ICON_SIZE * scale);
+ elm_image_prescale_set(icon, icon_size);
+ elm_image_file_set(icon, sel_mem_info->icon1, NULL);
+ }
+
+ if (icon) {
+ evas_object_size_hint_min_set(icon,
+ SEARCH_THUMBNAIL_SIZE * scale, SEARCH_THUMBNAIL_SIZE * scale);
+ evas_object_size_hint_max_set(icon,
+ SEARCH_THUMBNAIL_SIZE * scale, SEARCH_THUMBNAIL_SIZE * scale);
+ evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+ }
+ } else if(!strcmp(part, "elm.icon.2")) {
+ icon2_path = (char*)sel_mem_info->icon2;
+
+ if (icon2_path && strlen(icon2_path) > 0 ) {
+ icon = elm_icon_add(obj);
+ icon_size = (int)(SEARCH_ICON_SIZE * scale);
+ elm_image_prescale_set(icon, icon_size);
+ elm_image_file_set(icon, icon2_path, NULL);
+ evas_object_size_hint_min_set(icon,
+ SEARCH_ICON_SIZE * scale, SEARCH_ICON_SIZE * scale);
+ evas_object_size_hint_max_set(icon,
+ SEARCH_ICON_SIZE * scale, SEARCH_ICON_SIZE * scale);
+ evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+ }
+ }
+
+ return icon;
+}
+
static Eina_Bool __search_gl_state_get(void *data, Evas_Object * obj,
const char *part)
{
return EINA_FALSE;
}
-static char *__search_gl_label_get_search_item_type(void *data, Evas_Object * obj,
+static char *__search_gl_label_get_genlist_item_type(void *data, Evas_Object * obj,
const char *part)
{
char *buf = NULL;
@@ -200,9 +306,9 @@ static char *__search_gl_label_get_search_item_type(void *data, Evas_Object * ob
SEARCH_RETV_IF(sel_mem_info == NULL, g_strdup(""));
if (!SEARCH_STRCMP(part, "elm.text") || !SEARCH_STRCMP(part, "elm.text.1")) {
- buf = g_strdup(sel_mem_info->main_buf);
+ buf = g_strdup(sel_mem_info->text1);
} else if (!SEARCH_STRCMP(part, "elm.text.sub") || !SEARCH_STRCMP(part, "elm.text.2")) {
- buf = g_strdup(sel_mem_info->sub_buf);
+ buf = g_strdup(sel_mem_info->text2);
} else {
buf = NULL;
}
@@ -226,14 +332,11 @@ static char *__search_gl_label_get_group(void *data, Evas_Object * obj,
struct search_content_object *object = (struct search_content_object*)data;
SEARCH_RETV_IF(object == NULL, strdup(""));
- if (object) {
- if (object->string_type == SEARCH_STR_TYPE_APP_STRING)
+ if (object->string_type == SEARCH_STR_TYPE_APP_STRING) {
return strdup(gettext(object->name));
- else
+ } else {
return strdup(dgettext("sys_string", object->name));
}
-
- return strdup("");
}
static char *__search_gl_label_get_more(void *data, Evas_Object * obj,
@@ -255,6 +358,12 @@ static void __search_gl_del(void *data, Evas_Object * obj)
struct search_item_sel *sel_mem_info = (struct search_item_sel *)data;
SEARCH_RET_IF(sel_mem_info == NULL);
+ SEARCH_FREE(sel_mem_info->icon1);
+ SEARCH_FREE(sel_mem_info->icon2);
+ SEARCH_FREE(sel_mem_info->text1);
+ SEARCH_FREE(sel_mem_info->text2);
+ SEARCH_FREE(sel_mem_info->launch_path);
+ SEARCH_FREE(sel_mem_info->launch_param);
SEARCH_FREE(sel_mem_info);
return;
@@ -437,6 +546,9 @@ void search_gl_phone_result_sel(void *data, Evas_Object * obj, void *event_info)
SEARCH_DEBUG_LOG("cur_category_mem->type : %d", cur_category_mem->type);
+ elm_genlist_select_mode_set(obj, ELM_OBJECT_SELECT_MODE_NONE);
+ elm_object_scroll_freeze_push(obj);
+
switch (cur_category_mem->type) {
case SEARCH_CONT_PHONE_CONTACTS:
search_launch_contact_view(ad, cur_category_mem);
@@ -754,7 +866,6 @@ void search_stop_search(void *data)
SEARCH_FUNC_START;
struct appdata *ad = (struct appdata *)data;
- int category = ad->search_category;
SEARCH_RET_IF(ad == NULL);
@@ -814,8 +925,8 @@ void search_result_gl_init(void *data)
if (ad->itc_pslist_1line == NULL) {
ad->itc_pslist_1line = elm_genlist_item_class_new();
ad->itc_pslist_1line->item_style = "1text.tb";
- ad->itc_pslist_1line->func.text_get = __search_gl_label_get_search_item_type;
- ad->itc_pslist_1line->func.content_get = __search_gl_content_get_search_item_type;
+ ad->itc_pslist_1line->func.text_get = __search_gl_label_get_genlist_item_type;
+ ad->itc_pslist_1line->func.content_get = __search_gl_content_get_genlist_item_type;
ad->itc_pslist_1line->func.state_get = __search_gl_state_get;
ad->itc_pslist_1line->func.del = __search_gl_del;
}
@@ -823,17 +934,26 @@ void search_result_gl_init(void *data)
if (ad->itc_pslist_1line_1icon == NULL) {
ad->itc_pslist_1line_1icon = elm_genlist_item_class_new();
ad->itc_pslist_1line_1icon->item_style = "1text.1icon.2.tb";
- ad->itc_pslist_1line_1icon->func.text_get = __search_gl_label_get_search_item_type;
- ad->itc_pslist_1line_1icon->func.content_get = __search_gl_content_get_search_item_type;
+ ad->itc_pslist_1line_1icon->func.text_get = __search_gl_label_get_genlist_item_type;
+ ad->itc_pslist_1line_1icon->func.content_get = __search_gl_content_get_genlist_item_type;
ad->itc_pslist_1line_1icon->func.state_get = __search_gl_state_get;
ad->itc_pslist_1line_1icon->func.del = __search_gl_del;
}
+ if (ad->itc_pslist_1line_1icon_browser_history== NULL) {
+ ad->itc_pslist_1line_1icon_browser_history = elm_genlist_item_class_new();
+ ad->itc_pslist_1line_1icon_browser_history->item_style = "1text.1icon.2.tb";
+ ad->itc_pslist_1line_1icon_browser_history->func.text_get = __search_gl_label_get_genlist_item_type;
+ ad->itc_pslist_1line_1icon_browser_history->func.content_get = __search_gl_content_get_genlist_history_item_type;
+ ad->itc_pslist_1line_1icon_browser_history->func.state_get = __search_gl_state_get;
+ ad->itc_pslist_1line_1icon_browser_history->func.del = __search_gl_del;
+ }
+
if (ad->itc_pslist_1line_2icon == NULL) {
ad->itc_pslist_1line_2icon = elm_genlist_item_class_new();
ad->itc_pslist_1line_2icon->item_style = "1text.2icon.6.tb";
- ad->itc_pslist_1line_2icon->func.text_get = __search_gl_label_get_search_item_type;
- ad->itc_pslist_1line_2icon->func.content_get = __search_gl_content_get_search_item_type;
+ ad->itc_pslist_1line_2icon->func.text_get = __search_gl_label_get_genlist_item_type;
+ ad->itc_pslist_1line_2icon->func.content_get = __search_gl_content_get_genlist_item_type;
ad->itc_pslist_1line_2icon->func.state_get = __search_gl_state_get;
ad->itc_pslist_1line_2icon->func.del = __search_gl_del;
}
@@ -841,8 +961,8 @@ void search_result_gl_init(void *data)
if (ad->itc_pslist_2line_1icon == NULL) {
ad->itc_pslist_2line_1icon = elm_genlist_item_class_new();
ad->itc_pslist_2line_1icon->item_style = "2text.1icon.4.tb";
- ad->itc_pslist_2line_1icon->func.text_get = __search_gl_label_get_search_item_type;
- ad->itc_pslist_2line_1icon->func.content_get = __search_gl_content_get_search_item_type;
+ ad->itc_pslist_2line_1icon->func.text_get = __search_gl_label_get_genlist_item_type;
+ ad->itc_pslist_2line_1icon->func.content_get = __search_gl_content_get_genlist_item_type;
ad->itc_pslist_2line_1icon->func.state_get = __search_gl_state_get;
ad->itc_pslist_2line_1icon->func.del = __search_gl_del;
}
@@ -850,28 +970,30 @@ void search_result_gl_init(void *data)
if (ad->itc_pslist_2line_2icon == NULL) {
ad->itc_pslist_2line_2icon = elm_genlist_item_class_new();
ad->itc_pslist_2line_2icon->item_style = "2text.2icon.4.tb";
- ad->itc_pslist_2line_2icon->func.text_get = __search_gl_label_get_search_item_type;
- ad->itc_pslist_2line_2icon->func.content_get = __search_gl_content_get_search_item_type;
+ ad->itc_pslist_2line_2icon->func.text_get = __search_gl_label_get_genlist_item_type;
+ ad->itc_pslist_2line_2icon->func.content_get = __search_gl_content_get_genlist_item_type;
ad->itc_pslist_2line_2icon->func.state_get = __search_gl_state_get;
ad->itc_pslist_2line_2icon->func.del = __search_gl_del;
}
+ if (ad->itc_pslist_2line_2icon_browser_bookmark == NULL) {
+ ad->itc_pslist_2line_2icon_browser_bookmark = elm_genlist_item_class_new();
+ ad->itc_pslist_2line_2icon_browser_bookmark->item_style = "2text.2icon.4.tb";
+ ad->itc_pslist_2line_2icon_browser_bookmark->func.text_get = __search_gl_label_get_genlist_item_type;
+ ad->itc_pslist_2line_2icon_browser_bookmark->func.state_get = __search_gl_state_get;
+ ad->itc_pslist_2line_2icon_browser_bookmark->func.content_get = __search_gl_content_get_genlist_bookmark_item_type;
+ ad->itc_pslist_2line_2icon_browser_bookmark->func.del = __search_gl_del;
+ }
+
+
if (ad->itc_grouptitle == NULL) {
ad->itc_grouptitle = elm_genlist_item_class_new();
- ad->itc_grouptitle->item_style = "grouptitle";
+ ad->itc_grouptitle->item_style = "groupindex";
ad->itc_grouptitle->func.text_get = __search_gl_label_get_group;
ad->itc_grouptitle->func.state_get = __search_gl_state_get;
ad->itc_grouptitle->func.del = __search_gl_del_grouptitle;
}
- if (ad->itc_label == NULL) {
- ad->itc_label = elm_genlist_item_class_new();
- ad->itc_label->item_style = "grouptitle";
- ad->itc_label->func.text_get = __search_gl_label_get_normal_type;
- ad->itc_label->func.state_get = __search_gl_state_get;
- ad->itc_label->func.del = __search_gl_del_grouptitle;
- }
-
if (ad->itc_listmore == NULL) {
ad->itc_listmore = elm_genlist_item_class_new();
ad->itc_listmore->item_style = "1text.tb";
@@ -915,6 +1037,9 @@ void search_result_gl_deinit(void *data)
if (ad->itc_pslist_1line_1icon != NULL)
elm_genlist_item_class_free(ad->itc_pslist_1line_1icon);
+ if (ad->itc_pslist_1line_1icon_browser_history != NULL)
+ elm_genlist_item_class_free(ad->itc_pslist_1line_1icon_browser_history);
+
if (ad->itc_pslist_1line_2icon != NULL)
elm_genlist_item_class_free(ad->itc_pslist_1line_2icon);
@@ -924,12 +1049,12 @@ void search_result_gl_deinit(void *data)
if (ad->itc_pslist_2line_2icon != NULL)
elm_genlist_item_class_free(ad->itc_pslist_2line_2icon);
+ if (ad->itc_pslist_2line_2icon_browser_bookmark != NULL)
+ elm_genlist_item_class_free(ad->itc_pslist_2line_2icon_browser_bookmark);
+
if (ad->itc_grouptitle != NULL)
elm_genlist_item_class_free(ad->itc_grouptitle);
- if (ad->itc_label != NULL)
- elm_genlist_item_class_free(ad->itc_label);
-
if (ad->itc_listmore != NULL)
elm_genlist_item_class_free(ad->itc_listmore);
@@ -1028,6 +1153,8 @@ void search_set_result_list(void *data)
if (ret < 0) {
SEARCH_DEBUG_WARNING("Error : set keyword to vconf");
}
+
+ SEARCH_FREE(text);
}
/* If category is Phone, make a thread for search */
diff --git a/src/ps_searcher.cpp b/src/ps_searcher.cpp
index b9bc033..1b8abed 100755
--- a/src/ps_searcher.cpp
+++ b/src/ps_searcher.cpp
@@ -205,6 +205,7 @@ int search_sql_contact_search_result_by_api(struct search_content_object *obj,
do {
struct search_item_sel *sel_mem_info = NULL;
struct search_genlist_item_info *gen_item = NULL;
+ Elm_Genlist_Item_Class *itc_style = NULL;
int contact_id = -1;
char *contact_img_path = NULL;
@@ -213,6 +214,7 @@ int search_sql_contact_search_result_by_api(struct search_content_object *obj,
const char *text_1line = NULL;
const char *text_2line = NULL;
bool is_word_in_str = false;
+ char contact_id_str[MAX_LENGTH_PER_ID] = {0,};
loop_cnt++;
@@ -221,6 +223,12 @@ int search_sql_contact_search_result_by_api(struct search_content_object *obj,
}
sel_mem_info = (struct search_item_sel *)calloc(1, sizeof(struct search_item_sel));
+
+ if (!sel_mem_info) {
+ SEARCH_DEBUG_WARNING("[%d] Fail to make a genlist select info item!", loop_cnt);
+ continue;
+ }
+
sel_mem_info->type = obj->contents_type;
contacts_record_h record;
@@ -228,48 +236,43 @@ int search_sql_contact_search_result_by_api(struct search_content_object *obj,
contacts_record_get_str_p(record, _contacts_person.image_thumbnail_path, &contact_img_path);
if (contact_img_path != NULL) {
- strncpy(sel_mem_info->icon1_path, contact_img_path,
- MAX_LENGTH_PER_PATH - 1);
+ sel_mem_info->icon1 = strdup(contact_img_path);
+ }
+ else if (obj->obj_icon_path) {
+ sel_mem_info->icon1 = strdup(obj->obj_icon_path);
}
- else if (obj->obj_icon_path)
- strncpy(sel_mem_info->icon1_path, obj->obj_icon_path,
- MAX_LENGTH_PER_PATH - 1);
contacts_record_get_str_p(record, _contacts_person.display_name, &str_display);
contacts_record_get_str_p(record, _contacts_number.number, &num_display);
if (str_display != NULL) {
- strncpy(sel_mem_info->main_buf,
- search_markup_keyword(str_display, keyword, &is_word_in_str),
- MAX_LENGTH_PER_LINE - 1);
text_1line = str_display;
}
if (num_display != NULL) {
- strncpy(sel_mem_info->sub_buf,
- search_markup_keyword(num_display, keyword, &is_word_in_str),
- MAX_LENGTH_PER_LINE - 1);
text_2line = num_display;
}
- if (text_1line == NULL && text_2line != NULL) {
- strncpy(sel_mem_info->main_buf,
- search_markup_keyword(text_2line, keyword, &is_word_in_str),
- MAX_LENGTH_PER_LINE - 1);
+ if (text_1line != NULL && text_2line != NULL) {
+ sel_mem_info->text1 = strdup(search_markup_keyword(str_display, keyword, &is_word_in_str));
+ sel_mem_info->text2 = strdup(search_markup_keyword(num_display, keyword, &is_word_in_str));
+ itc_style = ad->itc_pslist_2line_1icon;
+ } else {
+ if (text_1line) {
+ sel_mem_info->text1 = strdup(search_markup_keyword(str_display, keyword, &is_word_in_str));
+ }
+ else {
+ sel_mem_info->text2 = strdup(search_markup_keyword(num_display, keyword, &is_word_in_str));
}
-
- if (text_1line != NULL && text_2line == NULL) {
- strncpy(sel_mem_info->sub_buf,
- search_markup_keyword(text_1line, keyword, &is_word_in_str),
- MAX_LENGTH_PER_LINE - 1);
+ itc_style = ad->itc_pslist_1line_1icon;
}
contacts_record_get_int(record, _contacts_person.id, &contact_id);
- snprintf(sel_mem_info->main_id, MAX_LENGTH_PER_ID - 1, "%d",
- contact_id);
+ snprintf(contact_id_str, MAX_LENGTH_PER_ID - 1, "%d", contact_id);
+ sel_mem_info->launch_param= strdup(contact_id_str);
gen_item = search_add_genlist_item(SEARCH_GENLIST_ITEM,
- obj, ad->itc_pslist_2line_1icon, sel_mem_info,
+ obj, itc_style, sel_mem_info,
obj->gl_result_grp);
result_info->itemlist = g_list_append(result_info->itemlist, (void*)gen_item);
}while (contacts_list_next(list) == CONTACTS_ERROR_NONE);
@@ -330,7 +333,6 @@ int search_sql_calendar_search_result_by_api(struct search_content_object *obj,
calendar_filter_h visibility_filter = NULL;
calendar_list_h list = NULL;
- calendar_error_e CALENDAR_ERROR_NONE;
calendar_query_create(_calendar_event._uri, &query);
ret = calendar_filter_create(_calendar_event._uri, &visibility_filter);
@@ -386,49 +388,49 @@ int search_sql_calendar_search_result_by_api(struct search_content_object *obj,
char *summary = NULL;
bool is_word_in_str = false;
char format_val[MAX_LENGTH_PER_LINE] = {0,};
+ char calendar_id_str[MAX_LENGTH_PER_ID] = {0,};
calendar_record_h record;
calendar_time_s cal;
calendar_list_get_current_record_p(list, &record);
sel_mem_info = (struct search_item_sel *)calloc(1,sizeof(struct search_item_sel));
+
+ if (!sel_mem_info) {
+ SEARCH_DEBUG_WARNING("[%d] Fail to make a genlist select info item!", loop_cnt);
+ continue;
+ }
+
sel_mem_info->type = obj->contents_type;
/* Set Thumbnail Image */
if (obj->obj_icon_path) {
- strncpy(sel_mem_info->icon1_path, obj->obj_icon_path,
- MAX_LENGTH_PER_PATH - 1);
+ sel_mem_info->icon1 = strdup(obj->obj_icon_path);
}
/* Set text 1line - Summary */
calendar_record_get_str_p(record, _calendar_event.summary, &summary);
if ((summary) && (strlen(summary) > 0)) {
- strncpy(sel_mem_info->main_buf, search_markup_keyword(summary, keyword,
- &is_word_in_str), MAX_LENGTH_PER_LINE - 1);
+ sel_mem_info->text1 = strdup(search_markup_keyword(summary, keyword, &is_word_in_str));
}
/* Set text 2line - Date */
calendar_record_get_caltime(record, _calendar_event.start_time, &cal);
if (cal.type == CALENDAR_TIME_UTIME) {
- search_util_date_time_format_get_val(cal.time.utime, format_val,
- SEARCH_DATE_TYPE_YYMMDD);
- snprintf(sel_mem_info->sub_buf, MAX_LENGTH_PER_LINE, "%s",
- format_val);
+ search_util_date_time_format_get_val(cal.time.utime, format_val, SEARCH_DATE_TYPE_YYMMDD);
} else {
- search_util_date_time_format_get_val(cal.time.utime, format_val,
- SEARCH_DATE_TYPE_YYMM);
- snprintf(sel_mem_info->sub_buf, MAX_LENGTH_PER_LINE, "%s",
- format_val);
+ search_util_date_time_format_get_val(cal.time.utime, format_val, SEARCH_DATE_TYPE_YYMM);
}
+ sel_mem_info->text2 = strdup(format_val);
/* Set id for launching caledar contents */
calendar_record_get_int (record, _calendar_event.id, &main_id);
- snprintf(sel_mem_info->main_id, MAX_LENGTH_PER_ID - 1, "%d", main_id);
+ snprintf(calendar_id_str, MAX_LENGTH_PER_ID - 1, "%d", main_id);
+ sel_mem_info->launch_param = strdup(calendar_id_str);
- gen_item = search_add_genlist_item(SEARCH_GENLIST_ITEM, obj,
- ad->itc_pslist_2line_1icon, sel_mem_info,
- obj->gl_result_grp);
+ gen_item = search_add_genlist_item(SEARCH_GENLIST_ITEM, obj, ad->itc_pslist_2line_1icon,
+ sel_mem_info, obj->gl_result_grp);
result_info->itemlist = g_list_append(result_info->itemlist, (void*)gen_item);
} while (calendar_list_next(list) == CALENDAR_ERROR_NONE);
@@ -488,6 +490,8 @@ static void __search_sql_memo_search_result_cb(memo_data_t * value,
char *keyword = scd->keyword;
bool is_word_in_str = false;
+ char memo_id_str[MAX_LENGTH_PER_ID] = {0,};
+ char format_val[MAX_LENGTH_PER_LINE] = {0,};
SEARCH_RET_IF(scd == NULL);
ad = scd->ad;
@@ -508,43 +512,39 @@ static void __search_sql_memo_search_result_cb(memo_data_t * value,
if (obj->mr_info.next_point <
obj->mr_info.offset + SEARCH_CATEGORY_LIST_MORE_CNT) {
- sel_mem_info =
- (struct search_item_sel *)calloc(1,
- sizeof(struct
- search_item_sel));
+ sel_mem_info = (struct search_item_sel*)calloc(1, sizeof(struct search_item_sel));
+
+ if (!sel_mem_info) {
+ SEARCH_DEBUG_WARNING("[%d] Fail to make a genlist select info item!", obj->mr_info.next_point);
+ return;
+ }
+
sel_mem_info->type = obj->contents_type;
/********** START : set search result to sel_mem_info buf ************/
- if (obj->obj_icon_path)
- strncpy(sel_mem_info->icon1_path, obj->obj_icon_path,
- MAX_LENGTH_PER_PATH - 1);
+ if (obj->obj_icon_path) {
+ sel_mem_info->icon1 = strdup(obj->obj_icon_path);
+ }
/* First, We should check comment field. It means drawing memo
* If comment field is NULL, then we check content field */
if ((value->comment) && (strlen(value->comment) > 0)) {
- strncpy(sel_mem_info->main_buf,
- search_markup_keyword(value->comment, keyword,
- &is_word_in_str),
- MAX_LENGTH_PER_LINE - 1);
+ sel_mem_info->text1 = strdup(search_markup_keyword(value->comment, keyword, &is_word_in_str));
} else if ((value->content) && (strlen(value->content) > 0)) {
- strncpy(sel_mem_info->main_buf,
- search_markup_keyword(value->content, keyword,
- &is_word_in_str),
- MAX_LENGTH_PER_LINE - 1);
+ sel_mem_info->text1 = strdup(search_markup_keyword(value->content, keyword, &is_word_in_str));
}
- snprintf(sel_mem_info->main_id, MAX_LENGTH_PER_ID - 1, "%d", value->id);
- search_util_date_time_format_get_val(value->modi_time,
- sel_mem_info->sub_buf, SEARCH_DATE_TYPE_YYMM);
+ search_util_date_time_format_get_val(value->modi_time, format_val, SEARCH_DATE_TYPE_YYMM);
+ sel_mem_info->text2 = strdup(format_val);
+
+ snprintf(memo_id_str, MAX_LENGTH_PER_ID - 1, "%d", value->id);
+ sel_mem_info->launch_param = strdup(memo_id_str);
/********** END : set search result to sel_mem_info buf *************/
- gen_item = search_add_genlist_item(SEARCH_GENLIST_ITEM,
- obj,
- ad->itc_pslist_2line_1icon,
- sel_mem_info,
- obj->gl_result_grp);
+ gen_item = search_add_genlist_item(SEARCH_GENLIST_ITEM, obj, ad->itc_pslist_2line_1icon,
+ sel_mem_info, obj->gl_result_grp);
result_info->itemlist = g_list_append(result_info->itemlist, (void*)gen_item);
obj->mr_info.next_point++;
@@ -622,6 +622,8 @@ int search_sql_email_search_result_by_api(struct search_content_object *obj,
SEARCH_RETV_IF(ad == NULL, SEARCH_RET_SEARCH_FAIL);
+ int search_ret = SEARCH_RET_SEARCH_FAIL;
+
filter_list = (email_list_filter_t *)malloc(sizeof(email_list_filter_t) * filter_list_count);
memset(filter_list, 0 , sizeof(email_list_filter_t) * filter_list_count);
@@ -658,23 +660,23 @@ int search_sql_email_search_result_by_api(struct search_content_object *obj,
ret = email_get_mail_list_ex(filter_list, filter_list_count, sorting_rule_list, sorting_rule_list_count,
offset, limit, &mail_list, &mail_count);
- SEARCH_FREE(filter_list);
- SEARCH_FREE(sorting_rule_list);
+
if (ret != EMAIL_ERROR_NONE) {
SEARCH_DEBUG_WARNING("no email search result");
- return SEARCH_RET_SEARCH_FAIL;
+ goto out_func;
}
if(mail_list == NULL) {
SEARCH_DEBUG_WARNING("mail_list is null");
- return SEARCH_RET_SEARCH_NONE;
+ search_ret = SEARCH_RET_SEARCH_NONE;
+ goto out_func;
}
if (mail_count == 0) {
SEARCH_DEBUG_WARNING("no email search result");
- SEARCH_FREE(mail_list);
- return SEARCH_RET_SEARCH_NONE;
+ search_ret = SEARCH_RET_SEARCH_NONE;
+ goto out_func;
}
/* Set group title */
@@ -688,53 +690,50 @@ int search_sql_email_search_result_by_api(struct search_content_object *obj,
/* Set search result to genlist */
for(i = 0 ; i < mail_count ; i++) {
+ char email_id_str[MAX_LENGTH_PER_ID] = {0,};
+ char email_path_str[MAX_LENGTH_PER_PATH] = {0,};
if(i == limit -1)
break;
- sel_mem_info = (struct search_item_sel *)calloc(1,
- sizeof(struct search_item_sel));
+ sel_mem_info = (struct search_item_sel*)calloc(1, sizeof(struct search_item_sel));
+
+ if (!sel_mem_info) {
+ SEARCH_DEBUG_WARNING("[%d] Fail to make a genlist select info item!", i);
+ continue;
+ }
sel_mem_info->type = obj->contents_type;
- if (obj->obj_icon_path)
- strncpy(sel_mem_info->icon1_path, obj->obj_icon_path,
- MAX_LENGTH_PER_PATH - 1);
+ if (obj->obj_icon_path) {
+ sel_mem_info->icon1 = strdup(obj->obj_icon_path);
+
+ }
+
+ snprintf(email_id_str, MAX_LENGTH_PER_ID - 1, "%d", mail_list[i].mail_id);
+ sel_mem_info->launch_param = strdup(email_id_str);
- snprintf(sel_mem_info->main_id, MAX_LENGTH_PER_ID - 1, "%d", mail_list[i].mail_id);
- snprintf(sel_mem_info->path, MAX_LENGTH_PER_PATH - 1, "%d %d %d",
+ snprintf(email_path_str, MAX_LENGTH_PER_PATH - 1, "%d %d %d",
mail_list[i].account_id, mail_list[i].mail_id, mail_list[i].mailbox_id);
+ sel_mem_info->launch_path = strdup(email_path_str);
- if((mail_list[i].subject) && (strlen(mail_list[i].subject) > 0)) {
- strncpy(sel_mem_info->main_buf,
- search_markup_keyword(mail_list[i].subject, ad->search_word, &is_word_in_str),
- MAX_LENGTH_PER_LINE - 1);
+ if(strlen(mail_list[i].subject) > 0) {
+ sel_mem_info->text1 = strdup(search_markup_keyword(mail_list[i].subject, ad->search_word, &is_word_in_str));
}
- if((mail_list[i].full_address_from)
- && (strlen(mail_list[i].full_address_from) > 0)) {
- strncpy(sel_mem_info->sub_buf,
- search_markup_keyword(mail_list[i].full_address_from, ad->search_word, &is_word_in_str),
- MAX_LENGTH_PER_LINE - 1);
+ if(strlen(mail_list[i].full_address_from) > 0) {
+ sel_mem_info->text2 = strdup(search_markup_keyword(mail_list[i].full_address_from, ad->search_word, &is_word_in_str));
}
if(is_word_in_str == false && (strlen(mail_list[i].email_address_recipient) > 0)) {
- strncpy(sel_mem_info->sub_buf,
- search_markup_keyword(mail_list[i].email_address_recipient, ad->search_word, &is_word_in_str),
- MAX_LENGTH_PER_LINE - 1);
+ sel_mem_info->text2 = strdup(search_markup_keyword(mail_list[i].email_address_recipient, ad->search_word, &is_word_in_str));
}
- gen_item = search_add_genlist_item(SEARCH_GENLIST_ITEM,
- obj,
- ad->itc_pslist_2line_1icon,
- sel_mem_info,
- obj->gl_result_grp);
+ gen_item = search_add_genlist_item(SEARCH_GENLIST_ITEM, obj, ad->itc_pslist_2line_1icon, sel_mem_info, obj->gl_result_grp);
result_info->itemlist = g_list_append(result_info->itemlist, (void*)gen_item);
}
- SEARCH_FREE(mail_list);
-
/* Set more title to genlist (under 'search all') */
if (mail_count == limit) {
obj->mr_info.next_point = offset + mail_count - 1;
@@ -750,9 +749,15 @@ int search_sql_email_search_result_by_api(struct search_content_object *obj,
sel_mem_more,
obj->gl_result_grp);
}
+ search_ret = SEARCH_RET_SEARCH_SUCCESS;
+
+out_func:
+ SEARCH_FREE(filter_list);
+ SEARCH_FREE(sorting_rule_list);
+ SEARCH_FREE(mail_list);
SEARCH_FUNC_END;
- return SEARCH_RET_SEARCH_SUCCESS;
+ return search_ret;
}
static bool __search_media_info_cb(media_info_h media, void *user_data)
@@ -773,6 +778,7 @@ static bool __search_media_info_cb(media_info_h media, void *user_data)
char *keyword = NULL;
struct search_genlist_item_info *gen_item = NULL;
+ char media_id_str[MAX_LENGTH_PER_PATH] = {0,};
SEARCH_RETV_IF(scd == NULL, true);
ad = scd->ad;
@@ -787,34 +793,33 @@ static bool __search_media_info_cb(media_info_h media, void *user_data)
media_info_get_file_path(media, &media_path);
media_info_get_thumbnail_path(media, &media_thumbnail);
- sel_mem_info = (struct search_item_sel *)calloc(1,
- sizeof(struct search_item_sel));
+ sel_mem_info = (struct search_item_sel*)calloc(1, sizeof(struct search_item_sel));
+
+ if (!sel_mem_info) {
+ SEARCH_DEBUG_WARNING("[%d] Fail to make a genlist select info item!", media_id);
+ return true;
+ }
sel_mem_info->type = obj->contents_type;
- if ((media_thumbnail) && (strlen(media_thumbnail) > 0)
- && ecore_file_exists(media_thumbnail) == EINA_TRUE) {
- strncpy(sel_mem_info->icon1_path, media_thumbnail,
- MAX_LENGTH_PER_PATH - 1);
- } else if (obj->obj_icon_path)
- strncpy(sel_mem_info->icon1_path, obj->obj_icon_path,
- MAX_LENGTH_PER_PATH - 1);
+ if ((media_thumbnail) && ecore_file_exists(media_thumbnail) == EINA_TRUE) {
+ sel_mem_info->icon1 = strdup(media_thumbnail);
+ } else if (obj->obj_icon_path) {
+ sel_mem_info->icon1 = strdup(obj->obj_icon_path);
+ }
if (media_name && strlen(media_name)) {
- strncpy(sel_mem_info->main_buf,
- search_markup_keyword(media_name,
- keyword,
- &is_word_in_str),
- MAX_LENGTH_PER_LINE - 1);
+ sel_mem_info->text1 = strdup(search_markup_keyword(media_name, keyword, &is_word_in_str));
}
- if (media_id)
- snprintf(sel_mem_info->main_id, MAX_LENGTH_PER_ID, "%s",
- media_id);
+ if (media_id) {
+ snprintf(media_id_str, MAX_LENGTH_PER_ID, "%s", media_id);
+ sel_mem_info->launch_param = strdup(media_id_str);
+ }
- if (media_path)
- snprintf(sel_mem_info->path, MAX_LENGTH_PER_PATH - 1, "%s",
- media_path);
+ if (media_path) {
+ sel_mem_info->launch_path = strdup(media_path);
+ }
itc_style = ad->itc_pslist_1line_1icon;
@@ -859,6 +864,7 @@ static bool __search_sql_music_info_cb(media_info_h media, void *user_data)
char *keyword = NULL;
struct search_genlist_item_info *gen_item = NULL;
+ char music_id_str[MAX_LENGTH_PER_PATH] = {0,};
SEARCH_RETV_IF(scd == NULL, true);
ad = scd->ad;
@@ -885,51 +891,36 @@ static bool __search_sql_music_info_cb(media_info_h media, void *user_data)
audio_meta_destroy(a_handle);
- sel_mem_info = (struct search_item_sel *)calloc(1,
- sizeof(struct search_item_sel));
+ sel_mem_info = (struct search_item_sel *)calloc(1, sizeof(struct search_item_sel));
+
+ if (!sel_mem_info) {
+ SEARCH_DEBUG_WARNING("[%d] Fail to make a genlist select info item!", media_id);
+ return true;
+ }
sel_mem_info->type = obj->contents_type;;
- if ((media_thumbnail) && (strlen(media_thumbnail) > 0)
- && ecore_file_exists(media_thumbnail) == EINA_TRUE) {
- strncpy(sel_mem_info->icon1_path , media_thumbnail,
- MAX_LENGTH_PER_PATH -1 );
+ if ((media_thumbnail) && ecore_file_exists(media_thumbnail) == EINA_TRUE) {
+ sel_mem_info->icon1 = strdup(media_thumbnail);
} else if(obj->obj_icon_path) {
- strncpy(sel_mem_info->icon1_path, obj->obj_icon_path,
- MAX_LENGTH_PER_PATH - 1);
+ sel_mem_info->icon1 = strdup(obj->obj_icon_path);
}
if ((title) && (strlen(title) > 0)) {
- strncpy(sel_mem_info->main_buf,
- search_markup_keyword(title, keyword, &is_word_in_str),
- MAX_LENGTH_PER_LINE - 1);
+ sel_mem_info->text1 = strdup(search_markup_keyword(title, keyword, &is_word_in_str));
}
if (is_word_in_str) {
if ((artist) && (strlen(artist) > 0)) {
- strncpy(sel_mem_info->sub_buf,
- search_markup_keyword(artist,
- keyword,
- &is_word_in_str),
- MAX_LENGTH_PER_LINE - 1);
+ sel_mem_info->text2 = strdup(search_markup_keyword(artist, keyword, &is_word_in_str));
}
} else {
- memset(sel_mem_info->sub_buf, '\0', MAX_LENGTH_PER_LINE);
-
if ((artist) && (strlen(artist) > 0)) {
- strncpy(sel_mem_info->sub_buf,
- search_markup_keyword(artist,
- keyword,
- &is_word_in_str),
- MAX_LENGTH_PER_LINE - 1);
+ sel_mem_info->text2 = strdup(search_markup_keyword(artist, keyword, &is_word_in_str));
}
if (is_word_in_str == false && (album) && (strlen(album) > 0)) {
- strncpy(sel_mem_info->sub_buf,
- search_markup_keyword(album,
- keyword,
- &is_word_in_str),
- MAX_LENGTH_PER_LINE - 1);
+ sel_mem_info->text2 = strdup(search_markup_keyword(album, keyword, &is_word_in_str));
}
if (is_word_in_str == false) {
@@ -939,25 +930,23 @@ static bool __search_sql_music_info_cb(media_info_h media, void *user_data)
if (storage_type == MEDIA_CONTENT_STORAGE_EXTERNAL) {
itc_style = ad->itc_pslist_2line_2icon;
- strncpy(sel_mem_info->icon2_path, SEARCH_SDCARD_ICON,
- MAX_LENGTH_PER_PATH - 1);
+ sel_mem_info->icon2 = strdup(SEARCH_SDCARD_ICON);
}
else {
itc_style = ad->itc_pslist_2line_1icon;
}
- if (media_id)
- snprintf(sel_mem_info->main_id,
- MAX_LENGTH_PER_ID - 1, "%s", media_id);
+ if (media_id) {
+ snprintf(music_id_str, MAX_LENGTH_PER_ID - 1, "%s", media_id);
+ sel_mem_info->launch_param = strdup(music_id_str);
+ }
- if (media_path)
- strncpy(sel_mem_info->path, media_path, MAX_LENGTH_PER_PATH);
+ if (media_path) {
+ sel_mem_info->launch_path = strdup(media_path);
+ }
/* Add Information to genlist */
- gen_item = search_add_genlist_item(SEARCH_GENLIST_ITEM,
- obj,
- itc_style,
- sel_mem_info,
+ gen_item = search_add_genlist_item(SEARCH_GENLIST_ITEM, obj, itc_style, sel_mem_info,
obj->gl_result_grp);
result_info->itemlist = g_list_append(result_info->itemlist, (void*)gen_item);
@@ -1289,6 +1278,12 @@ ail_cb_ret_e __search_sql_menu_search_result_cb(
obj->mr_info.offset + SEARCH_CATEGORY_LIST_MORE_CNT) {
sel_mem_info = (struct search_item_sel *)calloc(1, sizeof(struct search_item_sel));
+
+ if (!sel_mem_info) {
+ SEARCH_DEBUG_WARNING("[%d] Fail to make a genlist select info item!", obj->mr_info.loop_cnt);
+ return AIL_CB_RET_CONTINUE;
+ }
+
sel_mem_info->type = obj->contents_type;;
/********** START : set search result to sel_mem_info buf ************/
@@ -1300,7 +1295,7 @@ ail_cb_ret_e __search_sql_menu_search_result_cb(
ail_appinfo_get_str(appinfo, AIL_PROP_ICON_STR, &icon);
if (icon) {
- strncpy(sel_mem_info->icon1_path, icon, MAX_LENGTH_PER_PATH - 1);
+ sel_mem_info->icon1 = strdup(icon);
}
ail_appinfo_get_str(appinfo, AIL_PROP_PACKAGE_STR, &package);
@@ -1313,8 +1308,7 @@ ail_cb_ret_e __search_sql_menu_search_result_cb(
return AIL_CB_RET_CONTINUE;
}
- strncpy(sel_mem_info->path, package, MAX_LENGTH_PER_PATH - 1);
-
+ sel_mem_info->launch_path = strdup(package);
SEARCH_DEBUG_LOG("package : %s", package);
} else {
SEARCH_DEBUG_LOG("package : null");
@@ -1322,10 +1316,7 @@ ail_cb_ret_e __search_sql_menu_search_result_cb(
ail_appinfo_get_str(appinfo, AIL_PROP_NAME_STR, &name);
if ((name) && (strlen(name) > 0)) {
- strncpy(sel_mem_info->main_buf,
- search_markup_keyword(name, keyword, &is_word_in_str),
- MAX_LENGTH_PER_LINE - 1);
-
+ sel_mem_info->text1 = strdup(search_markup_keyword(name, keyword, &is_word_in_str));
SEARCH_DEBUG_LOG("name : %s", name);
} else {
SEARCH_DEBUG_LOG("name : null");
@@ -1500,8 +1491,8 @@ bool __search_sql_browser_bookmark_result_cb(favorites_bookmark_entry_s *item, v
return true;
}
- if (info->next_point <
- info->offset + SEARCH_CATEGORY_LIST_MORE_CNT) {
+ if (info->next_point < info->offset + SEARCH_CATEGORY_LIST_MORE_CNT) {
+ char bookmark_id_str[MAX_LENGTH_PER_PATH] = {0,};
/********** START : set search result to sel_mem_info buf ************/
@@ -1524,29 +1515,33 @@ bool __search_sql_browser_bookmark_result_cb(favorites_bookmark_entry_s *item, v
}
sel_mem_info = (struct search_item_sel *)calloc(1, sizeof(struct search_item_sel));
+
+ if (!sel_mem_info) {
+ SEARCH_DEBUG_WARNING("[%d] Fail to make a genlist select info item!", info->loop_cnt);
+ return true;
+ }
+
sel_mem_info->type = obj->contents_type;
+ snprintf(bookmark_id_str, MAX_LENGTH_PER_ID - 1, "%d", item->id);
+ sel_mem_info->launch_param = strdup(bookmark_id_str);
if (match_str_title) {
- strncpy(sel_mem_info->main_buf, match_str_title, MAX_LENGTH_PER_LINE - 1);
+ sel_mem_info->text1 = strdup(match_str_title);
}
if (match_str_addr) {
- strncpy(sel_mem_info->sub_buf, match_str_addr, MAX_LENGTH_PER_LINE - 1);
- strncpy(sel_mem_info->path, item->address, MAX_LENGTH_PER_PATH - 1);
+ sel_mem_info->text2 = strdup(match_str_addr);
+ sel_mem_info->launch_path= strdup(item->address);
}
if (obj->obj_icon_path) {
- strncpy(sel_mem_info->icon1_path, obj->obj_icon_path,
- MAX_LENGTH_PER_PATH - 1);
+ sel_mem_info->icon1 = strdup(obj->obj_icon_path);
}
- strncpy(sel_mem_info->icon2_path,
- SEARCH_FAVORITE_ICON,
- MAX_LENGTH_PER_PATH - 1);
-
+ sel_mem_info->icon2 = strdup(SEARCH_FAVORITE_ICON);
gen_item = search_add_genlist_item(SEARCH_GENLIST_ITEM,
obj,
- ad->itc_pslist_2line_2icon,
+ ad->itc_pslist_2line_2icon_browser_bookmark,
sel_mem_info,
obj->gl_result_grp);
result_info->itemlist = g_list_append(result_info->itemlist, (void*)gen_item);
@@ -1601,8 +1596,8 @@ bool __search_sql_browser_history_result_cb(favorites_history_entry_s *item, voi
return true;
}
- if (info->next_point <
- info->offset + SEARCH_CATEGORY_LIST_MORE_CNT) {
+ if (info->next_point < info->offset + SEARCH_CATEGORY_LIST_MORE_CNT) {
+ char history_id_str[MAX_LENGTH_PER_PATH] = {0,};
/********** START : set search result to sel_mem_info buf ************/
@@ -1621,22 +1616,29 @@ bool __search_sql_browser_history_result_cb(favorites_history_entry_s *item, voi
}
sel_mem_info = (struct search_item_sel *)calloc(1, sizeof(struct search_item_sel));
+
+ if (!sel_mem_info) {
+ SEARCH_DEBUG_WARNING("[%d] Fail to make a genlist select info item!", info->loop_cnt);
+ return true;
+ }
+
sel_mem_info->type = obj->contents_type;
+ snprintf(history_id_str, MAX_LENGTH_PER_ID - 1, "%d", item->id);
+ sel_mem_info->launch_param = strdup(history_id_str);
- if (obj->obj_icon_path)
- strncpy(sel_mem_info->icon1_path, obj->obj_icon_path,
- MAX_LENGTH_PER_PATH - 1);
+ if (obj->obj_icon_path) {
+ sel_mem_info->icon1 = strdup(obj->obj_icon_path);
+ }
- if (item->address)
- strncpy(sel_mem_info->path, item->address, MAX_LENGTH_PER_PATH - 1);
+ if (item->address) {
+ sel_mem_info->launch_path = strdup(item->address);
+ }
- strncpy(sel_mem_info->main_buf,
- match_str,
- MAX_LENGTH_PER_LINE - 1);
+ sel_mem_info->text1 = strdup(match_str);
gen_item = search_add_genlist_item(SEARCH_GENLIST_ITEM,
obj,
- ad->itc_pslist_1line_1icon,
+ ad->itc_pslist_1line_1icon_browser_history,
sel_mem_info,
obj->gl_result_grp);
result_info->itemlist = g_list_append(result_info->itemlist, (void*)gen_item);
@@ -1762,7 +1764,7 @@ int search_sql_msg_search_result_by_api(struct search_content_object *obj,
SEARCH_FUNC_START;
int loop_cnt = 0;
- int ret = 0;
+ int ret = SEARCH_RET_SEARCH_FAIL;
struct search_item_sel *sel_mem_info = NULL;
struct search_item_more_sel *sel_mem_more = NULL;
@@ -1786,28 +1788,26 @@ int search_sql_msg_search_result_by_api(struct search_content_object *obj,
err = msg_set_int_value(search_s, MSG_SEARCH_CONDITION_FOLDERID_INT, MSG_ALLBOX_ID);
if (err != MSG_SUCCESS) {
SEARCH_DEBUG_WARNING("Fail to make search struct : MSG_SEARCH_CONDITION_FOLDERID_INT");
- return SEARCH_RET_SEARCH_FAIL;
+ goto out_func;
};
err = msg_set_int_value(search_s, MSG_SEARCH_CONDITION_MSGTYPE_INT, MSG_TYPE_INVALID);
if (err != MSG_SUCCESS) {
SEARCH_DEBUG_WARNING("Fail to make search struct : MSG_SEARCH_CONDITION_MSGTYPE_INT");
- return SEARCH_RET_SEARCH_FAIL;
+ goto out_func;
}
err = msg_set_str_value(search_s, MSG_SEARCH_CONDITION_SEARCH_VALUE_STR, keyword, strlen(keyword));
if (err != MSG_SUCCESS) {
SEARCH_DEBUG_WARNING("Fail to make search struct : MSG_SEARCH_CONDITION_SEARCH_VALUE_STR");
- return SEARCH_RET_SEARCH_FAIL;
+ goto out_func;
}
err = msg_search_message(ad->msg_handle, search_s, offset, limit, &msgList);
- msg_release_struct(&search_s);
-
if (err != MSG_SUCCESS && err != MSG_ERR_DB_NORECORD) {
SEARCH_DEBUG_WARNING("msg_search_message is failed : %d", err);
- return SEARCH_RET_SEARCH_FAIL;
+ goto out_func;
}
if (msgList.nCount <= 0) {
@@ -1850,9 +1850,14 @@ int search_sql_msg_search_result_by_api(struct search_content_object *obj,
char str_number[MAX_ADDRESS_VAL_LEN] = {0,};
char str_name[MAX_DISPLAY_NAME_LEN] = {0,};
char msg_text[MAX_MSG_TEXT_LEN] = {0,};
+ char msg_id_str[MAX_LENGTH_PER_PATH] = {0,};
+
+ sel_mem_info = (struct search_item_sel *)calloc(1,sizeof(struct search_item_sel));
+ if (!sel_mem_info) {
+ SEARCH_DEBUG_WARNING("[%d] Fail to make a genlist select info item!", i);
+ return true;
+ }
- sel_mem_info = (struct search_item_sel *)
- calloc(1,sizeof(struct search_item_sel));
sel_mem_info->type = obj->contents_type;;
err = msg_get_int_value(msgList.msg_struct_info[i], MSG_MESSAGE_ID_INT, &message_id);
@@ -1860,7 +1865,9 @@ int search_sql_msg_search_result_by_api(struct search_content_object *obj,
SEARCH_DEBUG_WARNING("Fail to make search struct : MSG_MESSAGE_ID_INT %d", err);
goto out_func;
}
- snprintf(sel_mem_info->main_id, MAX_LENGTH_PER_ID - 1, "%d", message_id);
+
+ snprintf(msg_id_str, MAX_LENGTH_PER_ID - 1, "%d", message_id);
+ sel_mem_info->launch_param= strdup(msg_id_str);
err = msg_get_int_value(msgList.msg_struct_info[i], MSG_MESSAGE_TYPE_INT, &msg_type);
if (err != MSG_SUCCESS) {
@@ -1882,9 +1889,7 @@ int search_sql_msg_search_result_by_api(struct search_content_object *obj,
}
text_1line = subject;
- markup_keyword = search_markup_keyword(text_1line,
- keyword,
- &is_word_in_title);
+ markup_keyword = search_markup_keyword(text_1line, keyword,&is_word_in_title);
if (!is_word_in_title) {
memset(msg_text, 0x00, sizeof(msg_text));
@@ -1907,8 +1912,9 @@ int search_sql_msg_search_result_by_api(struct search_content_object *obj,
SEARCH_DEBUG_LOG("1st string : %s", text_1line);
- if ((text_1line) && (strlen(text_1line) > 0 ))
- strncpy(sel_mem_info->main_buf, markup_keyword, MAX_LENGTH_PER_LINE - 1);
+ if ((text_1line) && (strlen(text_1line) > 0 )) {
+ sel_mem_info->text1 = strdup(markup_keyword);
+ }
} else {
/* SMS Case */
err = msg_get_str_value(msgList.msg_struct_info[i],
@@ -1928,8 +1934,9 @@ int search_sql_msg_search_result_by_api(struct search_content_object *obj,
&is_word_in_title);
SEARCH_DEBUG_LOG("1st string : %s", text_1line);
- if ((text_1line) && (strlen(text_1line) > 0))
- strncpy(sel_mem_info->main_buf, markup_keyword, MAX_LENGTH_PER_LINE - 1);
+ if ((text_1line) && (strlen(text_1line) > 0)) {
+ sel_mem_info->text1 = strdup(markup_keyword);
+ }
}
err = msg_get_list_handle(msgList.msg_struct_info[i],
@@ -1981,12 +1988,12 @@ int search_sql_msg_search_result_by_api(struct search_content_object *obj,
/* Set text_2line */
markup_keyword = search_markup_keyword(str_number, keyword, &is_word_in_str);
- if (j == 0 || is_word_in_str == true) {
+ if (j == 0) {
if (strlen(str_name) > 0) {
- strncpy(sel_mem_info->sub_buf, str_name, MAX_LENGTH_PER_LINE - 1);
+ sel_mem_info->text2 = strdup(str_name);
}
} else {
- strncpy(sel_mem_info->sub_buf, markup_keyword, MAX_LENGTH_PER_LINE - 1);
+ sel_mem_info->text2 = strdup(markup_keyword);
}
/* Check Whether Thumbnail Image exist or not */
@@ -1996,14 +2003,12 @@ int search_sql_msg_search_result_by_api(struct search_content_object *obj,
contacts_list_h list;
unsigned int count = 0;
- img_path = obj->obj_icon_path;
-
ret = contacts_connect2();
if (ret != CONTACTS_ERROR_NONE) {
SEARCH_DEBUG_WARNING("Fail to connect contact service!");
- if (img_path != NULL) {
- strncpy(sel_mem_info->icon1_path, img_path, MAX_LENGTH_PER_PATH - 1);
+ if (obj->obj_icon_path != NULL) {
+ sel_mem_info->icon1 = strdup(obj->obj_icon_path);
}
continue;
} else {
@@ -2022,15 +2027,16 @@ int search_sql_msg_search_result_by_api(struct search_content_object *obj,
}
if (img_path != NULL) {
- strncpy(sel_mem_info->icon1_path , img_path,
- MAX_LENGTH_PER_PATH -1 );
+ sel_mem_info->icon1 = strdup(img_path);
+ } else if (obj->obj_icon_path != NULL) {
+ sel_mem_info->icon1 = strdup(obj->obj_icon_path);
}
contacts_list_destroy(list, true);
ret = contacts_disconnect2();
}
} else {
if (obj->obj_icon_path) {
- strncpy(sel_mem_info->icon1_path, obj->obj_icon_path, MAX_LENGTH_PER_PATH - 1);
+ sel_mem_info->icon1 = strdup(obj->obj_icon_path);
}
}
@@ -2039,8 +2045,6 @@ int search_sql_msg_search_result_by_api(struct search_content_object *obj,
}
}
- SEARCH_DEBUG_LOG("sel_mem_info->sub_buf : %s", sel_mem_info->sub_buf);
-
gen_item = search_add_genlist_item(SEARCH_GENLIST_ITEM,
obj,
ad->itc_pslist_2line_1icon,
@@ -2071,6 +2075,9 @@ int search_sql_msg_search_result_by_api(struct search_content_object *obj,
}
out_func:
+ if (search_s != NULL) {
+ msg_release_struct(&search_s);
+ }
SEARCH_FUNC_END;
return ret;
}
diff --git a/src/search_bar.cpp b/src/search_bar.cpp
index 72d4c0a..203ae62 100755
--- a/src/search_bar.cpp
+++ b/src/search_bar.cpp
@@ -279,6 +279,7 @@ Evas_Object *search_searchbar_category_icon_add(char* img, Evas_Object *parent,
char buf[MAX_LENGTH_PER_PATH] = { 0, };
Evas_Object* cate_icon = NULL;
+ double scale = elm_config_scale_get();
if (img != NULL ) {
cate_icon = elm_icon_add(parent);
@@ -297,8 +298,8 @@ Evas_Object *search_searchbar_category_icon_add(char* img, Evas_Object *parent,
elm_image_resizable_set(cate_icon, EINA_FALSE, EINA_FALSE);
}
- evas_object_size_hint_min_set(cate_icon, width * elm_scale_get(), height * elm_scale_get());
- evas_object_size_hint_max_set(cate_icon, width * elm_scale_get(), height * elm_scale_get());
+ evas_object_size_hint_min_set(cate_icon, width * scale, height * scale);
+ evas_object_size_hint_max_set(cate_icon, width * scale, height * scale);
}
SEARCH_FUNC_END;
diff --git a/src/smartsearch.cpp b/src/smartsearch.cpp
index fdef7af..fe1e9d1 100755
--- a/src/smartsearch.cpp
+++ b/src/smartsearch.cpp
@@ -647,10 +647,18 @@ static void __search_app_resume(void *data)
SEARCH_FUNC_START;
struct appdata *ad = (struct appdata *)data;
+ SEARCH_RET_IF(ad == NULL);
if (ad->win_main) {
elm_object_focus_set(ad->back_btn, EINA_FALSE);
}
+
+ 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;
}