Send touch cancel event to widget when the scroller beginning to scroll 79/76179/2
authorjuhee,park <juhee82.park@samsung.com>
Thu, 23 Jun 2016 05:20:41 +0000 (14:20 +0900)
committerjuhee,park <juhee82.park@samsung.com>
Thu, 23 Jun 2016 05:24:36 +0000 (14:24 +0900)
Change-Id: I489ae434aa92b9e74a3b51d53bdb89a74b7a3a45
Signed-off-by: juhee,park <juhee82.park@samsung.com>
src/add_widget_viewer/add_widget_viewer.c
src/cluster_data.c
src/cluster_db.c
src/cluster_view.c
src/widget_viewer.c

index bd2acc8..c5fa63e 100755 (executable)
@@ -579,6 +579,6 @@ static void __add_widget_viewer_preview_clicked_cb(void *data, Evas_Object *obj,
 
        cluster_view_set_state(VIEW_STATE_NORMAL);
 
-       cluster_data_insert_widget(widget_id, widget_id, type);
+       cluster_data_insert_widget(widget_id, NULL, type);
        free(widget_id);
 }
index 1fba6fa..09eadaf 100755 (executable)
@@ -119,7 +119,7 @@ static void __cluster_data_insert_default_data(void)
        new_item->pos_y = 0;
        new_item->pos_x = 0;
        new_item->pkg_name = strdup("org.tizen.calendar.widget");
-       new_item->content_info = strdup("org.tizen.calendar.widget");
+       new_item->content_info = NULL;
        new_item->type = WIDGET_SIZE_TYPE_4x4;
        new_item->period = 0.0;
        new_item->allow_duplicate = 1;
index cc0aa38..73246ec 100755 (executable)
@@ -141,7 +141,7 @@ bool cluster_db_get_list(Eina_List **cluster_list)
                str = (const char *) sqlite3_column_text(stmt, COL_PKG_NAME);
                item->pkg_name = (!str || !strlen(str)) ? NULL : strdup(str);
                str = (const char *) sqlite3_column_text(stmt, COL_CONTENT_INFO);
-               item->content_info = (!str || !strlen(str)) ? NULL : strdup(str);
+               item->content_info = (!str || !strlen(str) || strncmp(str, "(null)", strlen("(null)")) == 0 ) ? NULL : strdup(str);
                item->type = sqlite3_column_int(stmt, COL_TYPE);
                item->period = sqlite3_column_double(stmt, COL_PERIOD);
                item->allow_duplicate = sqlite3_column_int(stmt, COL_ALLOW_DUPLICATE);
index cf379fa..738a8bd 100755 (executable)
@@ -143,7 +143,7 @@ static void __cluster_view_edit_move_anim_done(void *data);
 
 static Eina_Bool __cluster_view_scroll_timer_cb(void *data);
 
-static void __cluster_view_scroll_anim_start_cb(void *data, Evas_Object *obj, void *event_info);
+static void __cluster_view_scroll_drag_start_cb(void *data, Evas_Object *obj, void *event_info);
 static void __cluster_view_scroll_anim_stop_cb(void *data, Evas_Object *obj, void *event_info);
 static void __cluster_view_allpage_get_page_pos(int page_idx, int *w, int *h);
 static int __cluster_view_allpage_get_page_index(int x, int y);
@@ -233,7 +233,7 @@ Evas_Object *__cluster_view_create_base_gui(Evas_Object *win)
        evas_object_event_callback_add(cluster_view_s.scroller, EVAS_CALLBACK_MOUSE_UP, __clsuter_view_scroller_up_cb, NULL);
 
        evas_object_smart_callback_add(cluster_view_s.scroller, "scroll,anim,stop", __cluster_view_scroll_anim_stop_cb, NULL);
-       evas_object_smart_callback_add(cluster_view_s.scroller, "scroll,anim,start", __cluster_view_scroll_anim_start_cb, NULL);
+       evas_object_smart_callback_add(cluster_view_s.scroller, "scroll,drag,start", __cluster_view_scroll_drag_start_cb, NULL);
 
        cluster_view_s.box = elm_box_add(cluster_view_s.scroller);
        elm_box_horizontal_set(cluster_view_s.box, EINA_TRUE);
@@ -1463,9 +1463,16 @@ static Eina_Bool __cluster_view_scroller_long_press_time_cb(void *data)
 
        return ECORE_CALLBACK_CANCEL;
 }
-static void __cluster_view_scroll_anim_start_cb(void *data, Evas_Object *obj, void *event_info)
+static void __cluster_view_scroll_drag_start_cb(void *data, Evas_Object *obj, void *event_info)
 {
        cluster_view_s.is_srolling = true;
+       cluster_page_t *current_page = (cluster_page_t *)eina_list_nth(cluster_view_s.page_list, cluster_view_s.current_page);
+       Eina_List *find_list = NULL;
+       widget_data_t *item;
+       LOGD("Current Page : %d", cluster_view_s.current_page);
+       EINA_LIST_FOREACH(current_page->widget_list, find_list, item) {
+               widget_viewer_send_cancel_click_event(item);
+       }
 }
 
 static void __cluster_view_scroll_anim_stop_cb(void *data, Evas_Object *obj, void *event_info)
index 018f62d..f6e2c98 100755 (executable)
@@ -32,6 +32,11 @@ static int count = 0;
 #endif
 static void __widget_viewer_delete_btn_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
 
+static void __widget_viewer_created_cb(void *data, Evas_Object *obj, void *event_info);
+static void __widget_viewer_faulted_cb(void *data, Evas_Object *obj, void *event_info);
+static void __widget_viewer_update_cb(void *data, Evas_Object *obj, void *event_info);
+static void __widget_viewer_extra_info_updated_cb(void *data, Evas_Object *obj, void *event_info);
+
 void widget_viewer_init(Evas_Object *win)
 {
        widget_viewer_evas_init(win);
@@ -46,6 +51,7 @@ void widget_viewer_add_widget(Evas_Object *parent, widget_data_t *item, int *wid
 {
        Evas_Object *widget_layout;
 
+       LOGD("pkg : %s , Content INfo : %s", item->pkg_name, item->content_info);
        widget_layout = elm_layout_add(parent);
        elm_layout_file_set(widget_layout, util_get_res_file_path(EDJE_DIR"/widget.edj"), GROUP_WIDGET_LY);
        evas_object_size_hint_weight_set(widget_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@@ -61,13 +67,19 @@ void widget_viewer_add_widget(Evas_Object *parent, widget_data_t *item, int *wid
 
 #ifndef _TEST_
        int w, h;
-       Evas_Object *widget = widget_viewer_evas_add_widget(widget_layout, item->pkg_name, NULL, item->period);
+       Evas_Object *widget = widget_viewer_evas_add_widget(widget_layout, item->pkg_name, item->content_info, item->period);
        evas_object_size_hint_align_set(widget, EVAS_HINT_FILL, EVAS_HINT_FILL);
        evas_object_size_hint_weight_set(widget, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
 
        //Notify widget_size_type_e to widget application.
        widget_service_get_size(item->type, &w, &h);
        evas_object_resize(widget, w, h);
+
+       evas_object_smart_callback_add(widget, WIDGET_SMART_SIGNAL_WIDGET_CREATED, __widget_viewer_created_cb, item);
+       evas_object_smart_callback_add(widget, WIDGET_SMART_SIGNAL_WIDGET_FAULTED, __widget_viewer_faulted_cb, item);
+       evas_object_smart_callback_add(widget, WIDGET_SMART_SIGNAL_UPDATED, __widget_viewer_update_cb, item);
+       evas_object_smart_callback_add(widget, WIDGET_SMART_SIGNAL_EXTRA_INFO_UPDATED, __widget_viewer_extra_info_updated_cb, item);
+
 #else // for TEST
 /*     Evas_Object *widget = evas_object_rectangle_add(evas_object_evas_get(widget_layout));
        evas_object_size_hint_align_set(widget, EVAS_HINT_FILL, EVAS_HINT_FILL);
@@ -105,6 +117,7 @@ static void __widget_viewer_delete_btn_clicked_cb(void *data, Evas_Object *obj,
 
 void widget_viewer_send_cancel_click_event(widget_data_t *item)
 {
+       LOGD("Send to : %s", item->pkg_name);
        Evas_Object *widget_obj = NULL;
        widget_obj = elm_object_part_content_get(item->widget_layout, WIDGET_CONTENT);
        widget_viewer_evas_cancel_click_event(widget_obj);
@@ -148,3 +161,55 @@ void widget_viewer_thumbnail_delete(widget_data_t *item)
                elm_object_part_content_set(item->widget_layout, WIDGET_CONTENT, item->widget_content);
        }
 }
+
+static void __widget_viewer_created_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       widget_data_t *widget = (widget_data_t*) data;
+       LOGD("Pkg : %s ", widget->pkg_name);
+       const char *content_info = widget_viewer_evas_get_content_info(widget->widget_content);
+       if (content_info) {
+               if (widget->content_info) {
+                       free(widget->content_info);
+                       widget->content_info = NULL;
+               }
+               widget->content_info = strdup(content_info);
+               LOGD("content info :%s",widget->content_info);
+               cluster_data_update(widget);
+       }
+}
+static void __widget_viewer_faulted_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       widget_data_t *widget = (widget_data_t*) data;
+       LOGD("Pkg : %s ", widget->pkg_name);
+}
+static void __widget_viewer_update_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       widget_data_t *widget = (widget_data_t*) data;
+       LOGD("Pkg : %s ", widget->pkg_name);
+       const char *content_info = widget_viewer_evas_get_content_info(widget->widget_content);
+       if (content_info) {
+               if (widget->content_info) {
+                       free(widget->content_info);
+                       widget->content_info = NULL;
+               }
+               widget->content_info = strdup(content_info);
+               LOGD("content info :%s",widget->content_info);
+               cluster_data_update(widget);
+       }
+}
+
+static void __widget_viewer_extra_info_updated_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       widget_data_t *widget = (widget_data_t*) data;
+       LOGD("Pkg : %s ", widget->pkg_name);
+       const char *content_info = widget_viewer_evas_get_content_info(widget->widget_content);
+       if (content_info) {
+               if (widget->content_info) {
+                       free(widget->content_info);
+                       widget->content_info = NULL;
+               }
+               widget->content_info = strdup(content_info);
+               LOGD("content info :%s",widget->content_info);
+               cluster_data_update(widget);
+       }
+}