[TSAM-9688] Removed selected info in case of deleting file 01/97101/2 submit/tizen_3.0/20161114.095431 submit/tizen_3.0/20161114.133638 submit/tizen_mobile/20161112.124107
authorRahul Dadhich <r.dadhich@samsung.com>
Fri, 11 Nov 2016 06:44:50 +0000 (12:14 +0530)
committerRahul Dadhich <r.dadhich@samsung.com>
Fri, 11 Nov 2016 06:47:29 +0000 (12:17 +0530)
Change-Id: I90c2f75f2397679e7cc5c1c79cc2298e22d26fac
Signed-off-by: Rahul Dadhich <r.dadhich@samsung.com>
widget/inc/gl_widget.h
widget/src/gl_widget_create.c
widget/src/gl_widget_main.c

index 968a3ae..9c69fbc 100644 (file)
@@ -42,6 +42,8 @@ typedef struct widget_data {
 
 int gl_widget_create(_widget_data *data, int w, int h);
 Eina_Bool gl_widget_timer_cb(void *data);
+void gl_widget_add_timer(_widget_data *widget_data);
+void gl_widget_update_image_selection_data(_widget_data *widget_data);
 
 #endif// GL_WIDGET_H
 /* End of a file */
index cf976d0..7a0c912 100644 (file)
@@ -176,6 +176,22 @@ void _gl_launch_iv(void *data, Evas_Object *obj, void *event_info)
        }
 }
 
+void gl_widget_update_image_selection_data(_widget_data *widget_data)
+{
+       DbgPrint("images count : %d and selected images count : %d" , widget_data->images_count, widget_data->selected_count);
+       int i;
+       for (i = widget_data->selected_count - 1; i >=0 ; i--) {
+
+               if (!gl_widget_file_exists(widget_data->selected_images[i])) {
+                       strncpy(widget_data->selected_images[i], widget_data->selected_images[widget_data->selected_count - 1],
+                                                                               strlen(widget_data->selected_images[widget_data->selected_count - 1]));
+                       free(widget_data->selected_images[widget_data->selected_count - 1]);
+                       widget_data->selected_count--;
+               }
+       }
+       DbgPrint("images count : %d and selected images count : %d" , widget_data->images_count, widget_data->selected_count);
+}
+
 static Eina_Bool gl_widget_animator_cb(void *data)
 {
        dlog_print(DLOG_ERROR, LOG_TAG, "ENTRY gl_widget_animator_cb");
@@ -196,7 +212,6 @@ static Eina_Bool gl_widget_animator_cb(void *data)
                Evas_Object *content = elm_object_part_content_get(layout, buffer);
                elm_object_part_content_unset(layout, buffer);
                evas_object_hide(content);
-
                if (swallows_in_loops[loop_count % NUMBER_OF_ITERATION][i] == 1) {
                        widget_data->images_count = widget_data->images_count % widget_data->selected_count;
                        Evas_Object *image_object = elm_image_add(layout);
@@ -234,6 +249,16 @@ static Eina_Bool gl_widget_animator_cb(void *data)
        return EINA_TRUE;
 }
 
+void gl_widget_remove_sel_info() {
+       char* data_path = app_get_data_path();
+       if (data_path) {
+               char dbPath[1024] = { 0 };
+               snprintf(dbPath, 1024, "%s%s", data_path, "selectedimages.eet");
+               remove(dbPath);
+               free(data_path);
+       }
+}
+
 static Eina_Bool gl_widget_animator_for_one(void *data)
 {
        _widget_data *widget_data = (_widget_data *)data;
@@ -244,10 +269,12 @@ static Eina_Bool gl_widget_animator_for_one(void *data)
                return EINA_FALSE;
        }
 
-       if (!gl_widget_file_exists(widget_data->selected_images[0])) {
-
-               free(widget_data->selected_images[widget_data->selected_count - 1]);
-               widget_data->selected_count--;
+       if (widget_data->selected_count == 0 || !gl_widget_file_exists(widget_data->selected_images[0])) {
+               ErrPrint("Showing no content layout");
+               if (widget_data->selected_count != 0) {
+                       free(widget_data->selected_images[widget_data->selected_count - 1]);
+                       widget_data->selected_count--;
+               }
                Evas_Object *btn = elm_object_part_content_unset(
                                widget_data->layout,
                                "Edit_button");
@@ -263,6 +290,11 @@ static Eina_Bool gl_widget_animator_for_one(void *data)
                                "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES");
                elm_object_signal_emit(layout, "show", "elm");
                widget_data->is_ug_launched = false;
+               if (widget_data->timer) {
+                       ecore_timer_del(widget_data->timer);
+                       widget_data->timer= NULL;
+               }
+               gl_widget_remove_sel_info();
 
                elm_object_signal_callback_add(widget_data->layout, "mouse,clicked,1", "bg", gl_widget_on_no_image_cb, widget_data);
        }
@@ -824,6 +856,7 @@ static void gl_widget_on_no_image_cb(void *data, Evas_Object *obj,
                                      const char *emission, const char *source)
 {
        _widget_data *widget_data = (_widget_data *)data;
+       DbgPrint("gl_widget_on_no_image_cb");
        if (!widget_data) {
                ErrPrint("Invalid userdata!!");
                return;
@@ -834,7 +867,7 @@ static void gl_widget_on_no_image_cb(void *data, Evas_Object *obj,
                ErrPrint("Invalid layout!!");
                return;
        }
-
+       DbgPrint("Launching ug-gallery application");
        gl_widget_launch_gallery_ug(widget_data);
 }
 
@@ -925,12 +958,14 @@ int gl_widget_create(_widget_data *widget_data, int w, int h)
        widget_data->layout = layout;
 
        if (!gl_widget_load_preselected_images(widget_data)) {
+               DbgPrint("Adding no image layout");
                elm_object_domain_translatable_part_text_set(layout, "TitleText", "gallery",
                        "IDS_GALLERY_OPT_GALLERY_ABB");
                elm_object_domain_translatable_part_text_set(layout, "HelpText", "gallery",
                        "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES");
                elm_object_signal_callback_add(layout, "mouse,clicked,1", "bg", gl_widget_on_no_image_cb, widget_data);
        } else {
+               DbgPrint("Adding images");
                if (widget_data->selected_count >= IMAGES_THRESHOLD) {
                        gl_widget_animator_cb(widget_data);
                } else {
@@ -950,4 +985,19 @@ int gl_widget_create(_widget_data *widget_data, int w, int h)
 
        return 0;
 }
+
+void gl_widget_add_timer(_widget_data *widget_data)
+{
+       DbgPrint("Adding timer -> selected image count: %d", widget_data->selected_count);
+       widget_data->timer = ecore_timer_loop_add(TIMER_INTERVAL,
+                       gl_widget_timer_cb, widget_data);
+       if (widget_data->selected_count >= IMAGES_THRESHOLD) {
+               gl_widget_animator_cb(widget_data);
+       } else if (widget_data->selected_count >= 2) {
+               gl_widget_animator_cb_for_less_than_five_images(widget_data);
+       } else {
+               gl_widget_animator_for_one(widget_data);
+       }
+       DbgPrint("Adding timer over");
+}
 /* End of a file */
index 0858b4d..5530cfc 100644 (file)
@@ -116,8 +116,13 @@ int widget_Create(widget_context_h context, bundle *content, int w, int h, void
        elm_config_accel_preference_set("3d");
 
        struct widget_data *widget_data = NULL;
-
-       widget_data = calloc(1, sizeof(*widget_data));
+       widget_data = (struct widget_data *)getWidgetData(context);
+       if (!widget_data) {
+               DbgPrint("creating new widget data");
+               widget_data = calloc(1, sizeof(*widget_data));
+       } else {
+               DbgPrint("got widget data from context");
+       }
        if (!widget_data) {
                DbgPrint("failed to create instance");
                return WIDGET_ERROR_OUT_OF_MEMORY;
@@ -221,9 +226,8 @@ int widget_Resume(widget_context_h context, void *data)
                        widget_data->timer= NULL;
        }
        if (widget_data->selected_count) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "Adding timer");
-               widget_data->timer = ecore_timer_loop_add(TIMER_INTERVAL,
-                                    gl_widget_timer_cb, widget_data);
+               gl_widget_update_image_selection_data(widget_data);
+               gl_widget_add_timer(widget_data);
        }
        return WIDGET_ERROR_NONE;
 }