Merged code from tizen_3.0 branch 03/118803/1 accepted/tizen_mobile accepted/tizen/mobile/20170315.104915 accepted/tizen/unified/20170315.104940 submit/tizen/20170315.051751
authorbhutani.92 <bhutani.92@samsung.com>
Tue, 14 Mar 2017 04:31:49 +0000 (10:01 +0530)
committerbhutani.92 <bhutani.92@samsung.com>
Tue, 14 Mar 2017 06:28:20 +0000 (11:58 +0530)
Change-Id: I3e932fd79d048b394c530b03af4b028177c1fee1
Signed-off-by: bhutani.92 <bhutani.92@samsung.com>
12 files changed:
include/ge-icon.h
include/ge-ugdata.h
res/black_theme/edc/attach-panel-gallery.edc
res/black_theme/edc/images/gengrid_thumb_selected.png [new file with mode: 0644]
res/black_theme/edc/images/gengrid_thumb_shadow.png [new file with mode: 0644]
res/black_theme/edc/images/gengrid_thumb_stroke.png [new file with mode: 0644]
res/black_theme/images/attach_image_gallery.png [new file with mode: 0644]
src/data/ge-data-type.c
src/data/ge-data.c
src/data/ge-local-data.c
src/gallery-efl.c
src/view/ge-albums.c

index 25d3994..38b7311 100644 (file)
@@ -21,5 +21,6 @@
 
 #define GE_ICON_CONTENTS_BROKEN GE_IMAGES_DIR"Contents_broken_351X261.png"
 #define GE_ICON_MEMORY_CARD PREFIX"/res/images/"PACKAGE"/images/T01_album_icon_sd_card.png"
+#define GE_ICON_GALLERY PREFIX"/res/images/"PACKAGE"/images/attach_image_gallery.png"
 
 #endif                                                 //__GE_ICON_H__
index 230bd54..73bcf3d 100644 (file)
@@ -227,7 +227,6 @@ extern "C" {
                Evas_Object *split_view;
                Elm_Gengrid_Item_Class *gic;
                Elm_Gengrid_Item_Class *gic_first;
-               Elm_Gengrid_Item_Class *no_content;
                Elm_Object_Item *nf_it;
                Elm_Object_Item *done_it;
 
index aa5fdd6..4ecb09d 100644 (file)
 
 #include "attach-panel-gallery-edc-res.h"
 
+//****************************************************************************//
+// Gengrid
+//****************************************************************************//
+
+#define GENGRID_ITEM_DEFAULT_REORDER_BG_NOR 0 0 0 0
+#define GENGRID_ITEM_DEFAULT_REORDER_BG_SEL 255 255 255 255
+#define GENGRID_ITEM_DEFAULT_BG_COLOR 0 0 0 0
+#define GENGRID_ITEM_DEFAULT_IMAGE_PADDING_LEFT_TOP 1 1
+#define GENGRID_ITEM_DEFAULT_IMAGE_PADDING_RIGHT_BOTTOM 1 1
+#define GENGRID_ITEM_DEFAULT_ICON_PADDING_LEFT_TOP 20 10 // 2 8
+#define GENGRID_ITEM_DEFAULT_ICON_PADDING_RIGHT_BOTTOM 20 20 // 2 8
+#define GENGRID_ITEM_DEFAULT_TEXT_PADDING_BOTTOM 39
+#define GENGRID_ITEM_DEFAULT_IMAGE_BORDER 10 10 10 10
+#define GENGRID_ITEM_DEFAULT_TEXT_COLOR 0 0 0 255
+#define GENGRID_ITEM_DEFAULT_TEXT_SIZE 20
+
 externals {
    external: "elm";
    external: "feedback";
@@ -61,61 +77,330 @@ collections {
                        rel2 { relative: (W-GAP_W)/W (H-GAP_H)/H;} \
                } \
        }
-group {
-               name: "elm/gengrid/item/gengrid_first_item/default";
-               data.item: "texts" "tile_layout_text tile_layout_text_second";
-               parts {
-                       part {
-                               name: "background";
-                               type, RECT;
-                               scale : 1;
-                               description {
-                                       state: "default" 0.0;
-                                       rel1 { relative: 8/720 18/1280; }
-                                       rel2 { relative: 716/720 1270/1280;}
-                                       color: 61 185 204 255;
-                               }
-                       }
-                       part {
-                               name: "tile_layout_text_second";
-                               type: TEXT;
-                               mouse_events: 1;
-                               scale : 1;
-                               description {
-                                       state: "default" 0.0;
-                                       rel1 { relative: 0.0 65/173; to: "background";}
-                                       rel2 { relative: 1.0 108/173; to: "background";}
-                                       text {
-                                               size: 43;
-                                               text: "ABC";
-                                               min: 1 0;
-                                               align: 0.5 0.5;
-                                       }
-                               }
-                       }
-                       part {
-                               name: "content_swallow";
-                               type: RECT;
-                               mouse_events: 1;
-                               scale: 1;
-                               description {
-                                       state: "default" 0.0;
-                                       rel1 { relative: 0.0 0.0; to: "background";}
-                                       rel2 { relative: 1.0 1.0; to: "background";}
-                                       color: 0 0 0 0;
-                               }
-                       }
-               }
-               programs {
-                       program {
-                               name: "touch_snd";
-                               source: "content_swallow";
-                               signal: "mouse,clicked,1";
-                               transition: DECELERATE 0.2;
-                               action: RUN_PLUGIN "touch_sound_plugin";
-                       }
+
+       group { name: "elm/gengrid/item/thumb_ge/default";
+   data.item: "texts" "elm.text";
+   data.item: "contents" "elm.swallow.icon";
+   images {
+      image: "gengrid_thumb_selected.png" COMP;
+      image: "gengrid_thumb_shadow.png" COMP;
+      image: "gengrid_thumb_stroke.png" COMP;
+   }
+   parts {
+      part { name: "base";
+         mouse_events: 0;
+         scale: 1;
+         type: RECT;
+         description { state: "default" 0.0;
+            color: GENGRID_ITEM_DEFAULT_BG_COLOR;
+         }
+      }
+      part { name: "bg";
+         clip_to: "disclip";
+         mouse_events: 0;
+         type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            visible: 0;
+            color: GENGRID_ITEM_DEFAULT_BG_COLOR;
+            rel1 {
+               relative: 0.0 0.0;
+            }
+            rel2 {
+               relative: 1.0 1.0;
+            }
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+            rel1 {
+               relative: 0.0 0.0;
+            }
+            rel2 {
+               relative: 1.0 1.0;
+            }
+         }
+      }
+      part { name: "elm.swallow.pad";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            align: 0.0 0.5;
+            rel1 {
+               to_y: "elm.padding.text.bottom";
+               relative: 0.0 1.0;
+            }
+            rel2 {
+               to_y: "elm.text";
+               relative: 0.0  0.0;
+               offset:   -1   -1;
+            }
+         }
+      }
+      part { name: "elm.padding.icon.left-top";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            align: 0 0;
+            min: GENGRID_ITEM_DEFAULT_ICON_PADDING_LEFT_TOP;
+            rel1 {
+               relative: 0.0  0.0;
+            }
+            rel2 {
+               relative: 0.0  0.0;
+            }
+         }
+      }
+      part { name: "elm.padding.icon.right-bottom";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            align: 1 1;
+            min: GENGRID_ITEM_DEFAULT_ICON_PADDING_RIGHT_BOTTOM;
+            rel1 {
+               relative: 1 1;
+            }
+            rel2 {
+               to_y: "elm.swallow.pad";
+               relative: 1 0;
+            }
+         }
+      }
+      part { name: "elm.padding.image.left-top";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            align: 0 0;
+            min: GENGRID_ITEM_DEFAULT_IMAGE_PADDING_LEFT_TOP;
+            rel1 {
+               relative: 0.0  0.0;
+            }
+            rel2 {
+               relative: 0.0  0.0;
+            }
+         }
+      }
+      part { name: "elm.padding.image.right-bottom";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 1;
+            align: 1 1;
+            min: GENGRID_ITEM_DEFAULT_IMAGE_PADDING_RIGHT_BOTTOM;
+            rel1 {
+               relative: 1 1;
+            }
+            rel2 {
+               to_y: "elm.swallow.pad";
+               relative: 1 0;
+            }
+         }
+      }
+      part { name: "elm.image.shadow";
+         clip_to: "disclip";
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            align: 0.5 0.5;
+            rel1 {
+               to: "elm.padding.image.left-top";
+               relative: 1 1;
+            }
+            rel2 {
+               to: "elm.padding.image.right-bottom";
+               relative: 0 0;
+            }
+            image
+            {
+               normal: "gengrid_thumb_shadow.png";
+               border: GENGRID_ITEM_DEFAULT_IMAGE_BORDER;
+               border_scale: 1;
+            }
+         }
+      }
+      part { name: "elm.swallow.icon";
+         clip_to: "disclip";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            align: 0.5 0.5;
+            min: 118 118;
+            max: 118 118;
+            rel1 {
+               to: "elm.padding.icon.left-top";
+               relative: 1 1;
+            }
+            rel2 {
+               to: "elm.padding.icon.right-bottom";
+               relative: 0 0;
+            }
+         }
+      }
+      part { name: "elm.image.stroke";
+         clip_to: "disclip";
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            align: 0.5 0.5;
+            rel1 {
+               to: "elm.padding.image.left-top";
+               relative: 1 1;
+            }
+            rel2 {
+               to: "elm.padding.image.right-bottom";
+               relative: 0 0;
+            }
+            image
+            {
+               normal: "gengrid_thumb_stroke.png";
+               border: GENGRID_ITEM_DEFAULT_IMAGE_BORDER;
+               border_scale: 1;
+            }
+         }
+      }
+      part { name: "elm.image.selected";
+         clip_to: "disclip";
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 1 0;
+            align: 0.5 0.5;
+            visible: 0;
+            rel1 {
+               to: "elm.padding.image.left-top";
+               relative: 1 1;
+            }
+            rel2 {
+               to: "elm.padding.image.right-bottom";
+               relative: 0 0;
+            }
+            image {
+               normal: "gengrid_thumb_selected.png";
+               border: GENGRID_ITEM_DEFAULT_IMAGE_BORDER;
+               border_scale: 1;
+            }
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
+      part { name: "elm.padding.text.bottom";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            fixed: 0 1;
+            align: 0.5 0;
+            min: 0 GENGRID_ITEM_DEFAULT_TEXT_PADDING_BOTTOM;
+            rel1 {
+               relative: 0 1;
+            }
+            rel2 {
+               relative: 1 1;
+            }
+         }
+      }
+      part { name: "elm.text";
+         clip_to: "disclip";
+         type: TEXT;
+         mouse_events: 0;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1 {
+               to_x: "elm.padding.image.left-top";
+               relative: 1.0  1.1;
+               offset: 0 0;
+            }
+            rel2 {
+               to_x: "elm.padding.image.right-bottom";
+               to_y: "elm.padding.text.bottom";
+               relative: 0.0  1.1;
+            }
+            align: 0.5 1;
+            color: GENGRID_ITEM_DEFAULT_TEXT_COLOR;
+            text {
+               font: "SLP:style=Regular";
+               size: GENGRID_ITEM_DEFAULT_TEXT_SIZE;
+               min: 0 1;
+               align: 0.5 1;
+               text_class: "grid_item";
+            }
+         }
+         description { state: "selected" 0.0;
+            inherit: "default" 0.0;
+         }
+      }
+      part { name: "disclip";
+         type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "bg";
+            rel2.to: "bg";
+         }
+         description { state: "disabled" 0.0;
+            inherit: "default" 0.0;
+            color: 255 255 255 64;
+         }
+      }
+      part { name: "event";
+         type: RECT;
+         scale: 1;
+         repeat_events: 1;
+         description {
+            state: "default" 0.0;
+            color: 0 0 0 0;
+         }
+      }
+   }
+   programs {
+        // signal: elm,state,%s,active
+        //   a "check" item named %s went active
+        // signal: elm,state,%s,passive
+        //   a "check" item named %s went passive
+        // default is passive
+      program { name:    "go_active";
+         signal:  "elm,state,selected";
+         source:  "elm";
+         action:  STATE_SET "selected" 0.0;
+         target:  "bg";
+         target:  "elm.text";
+         target:  "elm.image.selected";
+      }
+      program { name:    "go_passive";
+         signal:  "elm,state,unselected";
+         source:  "elm";
+         action:  STATE_SET "default" 0.0;
+         target:  "bg";
+         target:  "elm.text";
+         target:  "elm.image.selected";
+         transition: LINEAR 0.1;
+      }
+      program { name:    "go_disabled";
+         signal:  "elm,state,disabled";
+         source:  "elm";
+         action:  STATE_SET "disabled" 0.0;
+         target:  "disclip";
+      }
+      program { name:    "go_enabled";
+         signal:  "elm,state,enabled";
+         source:  "elm";
+         action:  STATE_SET "default" 0.0;
+         target:  "disclip";
+      }
+               program {
+                       name: "touch_snd";
+                       source: "event";
+                       signal: "mouse,clicked,1";
+                       transition: DECELERATE 0.2;
+                       action: RUN_PLUGIN "touch_sound_plugin";
                }
        }
+}
+
 group {
                name: "nocontent";
                parts {
@@ -150,45 +435,12 @@ group {
        }
 
 group {
-               name: "elm/gengrid/item/no_content/default";
-               data.item: "contents" "content_swallow ";
-               parts {
-                       part {
-                               name: "background";
-                               type, RECT;
-                               scale : 1;
-                               description {
-                                       state: "default" 0.0;
-                                       rel1 { relative: 0.0 0.0; }
-                                       rel2 { relative:1.0 1.0; }
-                                       color: 255 255 255 255;
-                               }
-                               description {
-                                       state: "visible" 0.0;
-                                       rel1 { relative: 0.0 0.6; }
-                                       rel2 { relative:1.0 1.0; }
-                                       color: 0 255 0 255;
-                               }
-                       }
-                       part {
-                               name: "content_swallow";
-                               type: SWALLOW;
-                               scale : 1;
-                               description {
-                                       state: "default" 0.0;
-                                       rel1 { relative: 0.0 0.0; to: "background";}
-                                       rel2 { relative: 1.0 1.0; to: "background";}
-                               }
-                       }
-               }
-       }
-
-group {
                name: "elm/gengrid/item/gengrid_items/default";
                data.item: "contents" "content_swallow checkbox_swallow sd_card_icon";
                images {
                        image: No_thumbnail_351X261.png COMP;
                        image: gallery_icon_sd_card.png COMP;
+                       image: "gengrid_thumb_selected.png" COMP;
                }
                parts {
                        part {
@@ -220,11 +472,11 @@ group {
                                        state: "default" 0.0;
                                        rel1 {
                                                relative: 0 0;
-                                               to: background;
+                                               to: "background";
                                        }
                                        rel2 {
                                                relative: 1 1;
-                                               to: background;
+                                               to: "background";
                                        }
                                        image.normal: No_thumbnail_351X261.png;
                                }
@@ -232,11 +484,11 @@ group {
                                        state: "hidden" 0.0;
                                        rel1 {
                                                relative: 0 0;
-                                               to: background;
+                                               to: "background";
                                        }
                                        rel2 {
                                                relative: 1 1;
-                                               to: background;
+                                               to: "background";
                                        }
                                        visible: 0;
                                        image.normal: No_thumbnail_351X261.png;
@@ -253,6 +505,22 @@ group {
                                        rel2 { relative: 1.0 1.0; to: "background";}
                                }
                        }
+                       part { name: "focus_bg";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       visible: 0;
+                                       image.normal: "gengrid_thumb_selected.png";
+                                       image.border: 10 10 10 10;
+                                       image.border_scale: 1;
+                               }
+                               description { state: "enabled" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
                        part {
                                name: "checkbox_swallow";
                                type: SWALLOW;
@@ -290,7 +558,7 @@ group {
                                        rel2 { relative: (180 - 9)/180 (180 - 9)/180; to: "content_swallow";}
                                        image.normal: gallery_icon_sd_card.png;
                                }
-               }
+                       }
                        part {
                                name: "sd_card_icon";
                                type: SWALLOW;
@@ -369,6 +637,19 @@ group {
                                action: STATE_SET "default" 0.0;
                                target: "sd_card_icon_img_bg";
                        }
+                       program { name:    "go_active";
+                               signal:  "elm,state,selected";
+                               source:  "elm";
+                               action:  STATE_SET "enabled" 0.0;
+                               target:  "focus_bg";
+                       }
+                       program { name:    "go_passive";
+                               signal:  "elm,state,unselected";
+                               source:  "elm";
+                               action:  STATE_SET "default" 0.0;
+                               target:  "focus_bg";
+                               transition: LINEAR 0.1;
+                       }
                }
        }
 
diff --git a/res/black_theme/edc/images/gengrid_thumb_selected.png b/res/black_theme/edc/images/gengrid_thumb_selected.png
new file mode 100644 (file)
index 0000000..524c6f1
Binary files /dev/null and b/res/black_theme/edc/images/gengrid_thumb_selected.png differ
diff --git a/res/black_theme/edc/images/gengrid_thumb_shadow.png b/res/black_theme/edc/images/gengrid_thumb_shadow.png
new file mode 100644 (file)
index 0000000..dd2c63c
Binary files /dev/null and b/res/black_theme/edc/images/gengrid_thumb_shadow.png differ
diff --git a/res/black_theme/edc/images/gengrid_thumb_stroke.png b/res/black_theme/edc/images/gengrid_thumb_stroke.png
new file mode 100644 (file)
index 0000000..35fdb93
Binary files /dev/null and b/res/black_theme/edc/images/gengrid_thumb_stroke.png differ
diff --git a/res/black_theme/images/attach_image_gallery.png b/res/black_theme/images/attach_image_gallery.png
new file mode 100644 (file)
index 0000000..81a614d
Binary files /dev/null and b/res/black_theme/images/attach_image_gallery.png differ
index 8f912d3..d850035 100644 (file)
@@ -17,6 +17,7 @@
 #include <media_content.h>
 #include "ge-data-type.h"
 #include "ge-debug.h"
+#include "ge-ugdata.h"
 
 int _ge_data_type_new_media(ge_media_s ** item)
 {
@@ -52,32 +53,14 @@ static int __ge_data_type_free_media(ge_media_s ** item)
        return 0;
 }
 
-static int __ge_data_type_free_album(ge_album_s ** album)
+int _ge_data_type_free_geitem(void **pitem)
 {
-       GE_CHECK_VAL(album, -1);
-       GE_CHECK_VAL(*album, -1);
-       ge_album_s *tmp_album = *album;
-
-       GE_FREEIF(tmp_album->uuid);
-       GE_FREEIF(tmp_album->display_name);
-       GE_FREEIF(tmp_album->path);
-       GE_FREE(tmp_album);
-       *album = NULL;
-       return 0;
-}
-
-int _ge_data_type_free_geitem(void **item)
-{
-       GE_CHECK_VAL(item, -1);
-       GE_CHECK_VAL(*item, -1);
+       GE_CHECK_VAL(pitem, -1);
+       GE_CHECK_VAL(*pitem, -1);
        int ret = -1;
 
-       if (((ge_album_s *) * item)->gtype == GE_TYPE_ALBUM) {
-               ret = __ge_data_type_free_album((ge_album_s **) item);
-       } else if (((ge_media_s *) * item)->gtype == GE_TYPE_MEDIA ||
-                          ((ge_media_s *) * item)->gtype == GE_TYPE_WEB_MEDIA) {
-               ret = __ge_data_type_free_media((ge_media_s **) item);
-       }
+       ge_item **pitem_data = (ge_item **)pitem;
+       ret = __ge_data_type_free_media(&(*pitem_data)->item);
 
        if (ret < 0) {
                return -1;
index e80ffc6..32d6674 100644 (file)
@@ -230,7 +230,10 @@ int _ge_data_create_thumb(ge_media_s * item,
        GE_CHECK_VAL(item->media_h, -1);
        int ret = -1;
        ge_sdbg("File[%s]", item->file_url);
-
+       if (item->b_create_thumb) {
+               ge_dbgE("thumbnail generation request already sent, ignoring duplicate request");
+               return 0;
+       }
        ret = media_info_create_thumbnail(item->media_h, callback, data);
        if (ret != MEDIA_CONTENT_ERROR_NONE) {
                ge_dbgE("Failed to create thumbnail[%d]!", ret);
index f3b8efb..36600d4 100644 (file)
@@ -35,6 +35,7 @@ static bool __ge_local_data_get_media_list_cb(media_info_h media,
        Eina_List **elist = (Eina_List **) (td->userdata);
 
        if (_ge_data_util_clone_media(media, &item, td->with_meta)) {
+               item->b_create_thumb = false;
                *elist = eina_list_append(*elist, item);
                return true;
        } else {
index c2ecf55..085a364 100644 (file)
@@ -209,7 +209,6 @@ void _ge_free_thumb_data(ge_ugdata * ugd)
 
        GE_GENGRID_ITC_FREE(ugd->thumbs_d->gic);
        GE_GENGRID_ITC_FREE(ugd->thumbs_d->gic_first);
-       GE_GENGRID_ITC_FREE(ugd->thumbs_d->no_content);
 
        GE_FREEIF(ugd->thumbs_d);
 
@@ -618,6 +617,9 @@ static void _ge_message(ui_gadget_h ug, app_control_h msg,
 
                if (display_mode) {
                        if (!strcmp(display_mode, "single")) {
+                               if (!ugd->b_multifile) {
+                                       return;
+                               }
                                //change to single selection
                                ge_dbg("single_selection ");
                                if (ugd->nocontents) {
@@ -644,7 +646,10 @@ static void _ge_message(ui_gadget_h ug, app_control_h msg,
                                elm_naviframe_item_title_enabled_set(ugd->nf_it,
                                                                                                         EINA_FALSE,
                                                                                                         EINA_FALSE);
-                       } else if (display_mode && !strcmp(display_mode, "multiple")) {
+                       } else if (!strcmp(display_mode, "multiple")) {
+                               if (ugd->b_multifile) {
+                                       return;
+                               }
                                //change to multi selection
                                ge_dbg("multiple_selection");
                                if (ugd->nocontents) {
index 8bd847c..2fc5c44 100644 (file)
@@ -28,6 +28,8 @@
 
 #define DEFAULT_THUMBNAIL "/opt/usr/share/media/.thumb/thumb_default.png"
 
+static Evas_Object* __ge_create_gengrid(ge_ugdata* ugd);
+
 static void _ge_grid_move_stop_cb(void *data, Evas_Object * obj, void *ei)
 {
        ge_dbg("");
@@ -100,17 +102,6 @@ static Eina_Bool __ge_main_back_cb(void *data, Elm_Object_Item * it)
        return EINA_FALSE;
 }
 
-void AppGetResource(const char *edj_file_in, char *edj_path_out,
-                                       int edj_path_max)
-{
-       char *res_path = app_get_resource_path();
-       if (res_path) {
-               snprintf(edj_path_out, edj_path_max, "%s%s", res_path,
-                                edj_file_in);
-               free(res_path);
-       }
-}
-
 Evas_Object *ge_thumb_show_part_icon_image(Evas_Object * obj, char *path,
                                                                                   int item_w, int item_h)
 {
@@ -291,8 +282,7 @@ __ge_check_state_changed_cb(void *data, Evas_Object * obj, void *ei)
        }
 }
 
-static Evas_Object *__ge_nocontent_get(void *data, Evas_Object * obj,
-                                                                          const char *part)
+static Evas_Object *__ge_nocontent_get(void *data)
 {
        ge_ugdata *ugd = (ge_ugdata *) data;
 
@@ -424,10 +414,19 @@ static Evas_Object *__ge_gengrid_item_content_get(void *data,
        return layout;
 }
 
-static char *__ge_gengrid_text_get_cb(void *data, Evas_Object * obj,
-                                                                         const char *part)
+Evas_Object *
+_ge_gengrid_content_get(void *data, Evas_Object *obj, const char *part)
 {
-       return strdup(GE_STR_GALLERY);
+   if (!strcmp(part, "elm.swallow.icon"))
+     {
+        Evas_Object *image = elm_icon_add(obj);
+        elm_image_file_set(image, GE_ICON_GALLERY, NULL);
+        evas_object_size_hint_aspect_set(image,
+                       EVAS_ASPECT_CONTROL_VERTICAL,
+                               1, 1);
+        return image;
+     }
+   return NULL;
 }
 
 static void
@@ -768,7 +767,7 @@ static void __ge_cancel_cb(void *data, Evas_Object * obj, void *ei)
                        gitem->checked = false;
                }
        }
-
+       _ge_free_sel_info(app_data);
        app_data->selected_elist = eina_list_free(app_data->selected_elist);
        elm_naviframe_item_pop(app_data->naviframe);
 }
@@ -848,16 +847,19 @@ int ge_update_gengrid(ge_ugdata * ugd)
                }
        }
 
-       elm_gengrid_clear(ugd->thumbs_d->gengrid);
+       Evas_Object* gengrid = __ge_create_gengrid(ugd);
+
        if (ugd->thumbs_d->medias_cnt > 0) {
+
                if (ugd->nocontents) {
+                       elm_object_part_content_unset(ugd->albums_view, "contents");
                        evas_object_del(ugd->nocontents);
                        ugd->nocontents = NULL;
                }
-               elm_gengrid_item_size_set(ugd->thumbs_d->gengrid, size, size);
-               elm_gengrid_item_append(ugd->thumbs_d->gengrid,
+               elm_gengrid_item_append(gengrid,
                                                                ugd->thumbs_d->gic_first,
                                                                NULL, __ge_launch_ug_gallery, ugd);
+               elm_gengrid_item_size_set(gengrid, size, size);
 
                for (i = 0; i < ugd->thumbs_d->medias_cnt; i++) {
                        gitem = eina_list_nth(ugd->thumbs_d->medias_elist, i);
@@ -890,36 +892,17 @@ int ge_update_gengrid(ge_ugdata * ugd)
 
                        gitem->ugd = ugd;
                        gitem->elm_item =
-                               elm_gengrid_item_append(ugd->thumbs_d->gengrid,
+                               elm_gengrid_item_append(gengrid,
                                                                                ugd->thumbs_d->gic, gitem,
                                                                                __ge_gengrid_item_sel_cb, gitem);
 
                        item_cnt++;
                        gitem->sequence = item_cnt + 1;
                }
+               elm_object_part_content_set(ugd->albums_view, "contents", gengrid);
        } else {
-               double scale = elm_config_scale_get();
-               if (ugd->attach_panel_display_mode == ATTACH_PANEL_FULL_MODE) {
-                       if ((scale - 1.8) < 0.0001) {
-                               elm_gengrid_item_size_set(ugd->thumbs_d->gengrid, win_w,
-                                                                                 FULL_MODE_PORTRAIT_HEIGHT_WVGA);
-                       } else {
-                               elm_gengrid_item_size_set(ugd->thumbs_d->gengrid, win_w,
-                                                                                 FULL_MODE_PORTRAIT_HEIGHT);
-                       }
-               } else {
-                       if ((scale - 1.8) < 0.0001) {
-                               elm_gengrid_item_size_set(ugd->thumbs_d->gengrid, win_w,
-                                                                                 HALF_MODE_PORTRAIT_HEIGHT_WVGA);
-                       } else {
-                               elm_gengrid_item_size_set(ugd->thumbs_d->gengrid, win_w,
-                                                                                 HALF_MODE_PORTRAIT_HEIGHT);
-                       }
-               }
-
-               ugd->nocontents = _ge_nocontents_create(ugd);
-               elm_gengrid_item_append(ugd->thumbs_d->gengrid,
-                                                               ugd->thumbs_d->no_content, ugd, NULL, ugd);
+               ugd->nocontents = __ge_nocontent_get(ugd);
+               elm_object_part_content_set(ugd->albums_view, "contents", ugd->nocontents);
        }
 
        Evas_Object *btn = NULL;
@@ -941,7 +924,6 @@ int ge_update_gengrid(ge_ugdata * ugd)
        char *text = g_strdup_printf(pd_selected, ugd->thumbs_d->tot_selected);
        elm_object_item_text_set(ugd->nf_it, text);
        GE_FREEIF(text);
-
        return 0;
 }
 
@@ -1040,6 +1022,35 @@ static void __ge_grid_unrealized(void *data, Evas_Object * obj, void *ei)
        }
 }
 
+static Evas_Object* __ge_create_gengrid(ge_ugdata* ugd) {
+       Evas_Object* gengrid;
+       char edj_path[PATH_MAX] = { 0 };
+       gengrid = elm_gengrid_add(ugd->albums_view);
+       ugd->thumbs_d->gengrid = gengrid;
+       _ge_ui_reset_scroller_pos(gengrid);
+       elm_gengrid_align_set(gengrid, 0.0, 0.0);
+       elm_gengrid_horizontal_set(gengrid, EINA_FALSE);
+       elm_scroller_bounce_set(gengrid, EINA_FALSE, EINA_TRUE);
+       elm_scroller_policy_set(gengrid, ELM_SCROLLER_POLICY_OFF,
+                       ELM_SCROLLER_POLICY_AUTO);
+       evas_object_size_hint_weight_set(gengrid, EVAS_HINT_EXPAND,
+                       EVAS_HINT_EXPAND);
+       if ((ugd->attach_panel_display_mode != ATTACH_PANEL_FULL_MODE)) {
+               elm_scroller_movement_block_set(gengrid,
+                               ELM_SCROLLER_MOVEMENT_BLOCK_VERTICAL);
+       }
+       evas_object_smart_callback_add(gengrid, "scroll,anim,stop",
+                       _ge_grid_move_stop_cb, ugd);
+       evas_object_smart_callback_add(gengrid, "scroll,drag,stop",
+                       _ge_grid_move_stop_cb, ugd);
+       evas_object_smart_callback_add(gengrid, "realized", __ge_grid_realized,
+                       ugd);
+       evas_object_smart_callback_add(gengrid, "unrealized", __ge_grid_unrealized,
+                       ugd);
+       ugd->thumbs_d->image_layout_list = NULL;
+       ugd->thumbs_d->check_list = NULL;
+       return gengrid;
+}
 
 int ge_create_gengrid(ge_ugdata * ugd)
 {
@@ -1087,16 +1098,6 @@ int ge_create_gengrid(ge_ugdata * ugd)
                eina_list_count(ugd->thumbs_d->medias_elist);
        ge_dbg("Grid view all medias count: %d", ugd->thumbs_d->medias_cnt);
 
-       Evas_Object *gengrid;
-       char edj_path[PATH_MAX] = { 0, };
-
-
-       AppGetResource(GE_EDJ_FILE, edj_path, (int) PATH_MAX);
-
-       gengrid = elm_gengrid_add(ugd->albums_view);
-       ugd->thumbs_d->gengrid = gengrid;
-       elm_theme_extension_add(NULL, edj_path);
-
        int win_x = 0;
        int win_y = 0;
        int win_w = 0;
@@ -1104,36 +1105,7 @@ int ge_create_gengrid(ge_ugdata * ugd)
 
        elm_win_screen_size_get(ugd->win, &win_x, &win_y, &win_w, &win_h);
        int size = (win_w / 4);
-
-       _ge_ui_reset_scroller_pos(gengrid);
-       elm_gengrid_align_set(gengrid, 0.0, 0.0);
-#ifdef _USE_SCROL_HORIZONRAL
-       /* horizontal scrolling */
-       elm_gengrid_horizontal_set(gengrid, EINA_TRUE);
-       elm_scroller_bounce_set(gengrid, EINA_TRUE, EINA_FALSE);
-#else
-       elm_gengrid_horizontal_set(gengrid, EINA_FALSE);
-       elm_scroller_bounce_set(gengrid, EINA_FALSE, EINA_TRUE);
-#endif
-       elm_scroller_policy_set(gengrid, ELM_SCROLLER_POLICY_OFF,
-                                                       ELM_SCROLLER_POLICY_AUTO);
-       evas_object_size_hint_weight_set(gengrid, EVAS_HINT_EXPAND,
-                                                                        EVAS_HINT_EXPAND);
-
-       if ((ugd->attach_panel_display_mode != ATTACH_PANEL_FULL_MODE)) {
-               elm_scroller_movement_block_set(gengrid,
-                                                                               ELM_SCROLLER_MOVEMENT_BLOCK_VERTICAL);
-       }
-
-       evas_object_smart_callback_add(gengrid, "scroll,anim,stop",
-                                                                  _ge_grid_move_stop_cb, ugd);
-       evas_object_smart_callback_add(gengrid, "scroll,drag,stop",
-                                                                  _ge_grid_move_stop_cb, ugd);
-       evas_object_smart_callback_add(gengrid, "realized", __ge_grid_realized,
-                                                                  ugd);
-       evas_object_smart_callback_add(gengrid, "unrealized",
-                                                                  __ge_grid_unrealized, ugd);
-
+       Evas_Object* gengrid = __ge_create_gengrid(ugd);
        ugd->thumbs_d->gic = elm_gengrid_item_class_new();
 
        if (ugd->thumbs_d->gic) {
@@ -1148,24 +1120,14 @@ int ge_create_gengrid(ge_ugdata * ugd)
        ugd->thumbs_d->gic_first = elm_gengrid_item_class_new();
 
        if (ugd->thumbs_d->gic_first) {
-               ugd->thumbs_d->gic_first->item_style = "gengrid_first_item";
-               ugd->thumbs_d->gic_first->func.text_get = __ge_gengrid_text_get_cb;
-               ugd->thumbs_d->gic_first->func.content_get = NULL;
+               ugd->thumbs_d->gic_first->item_style = "thumb_ge";
+               ugd->thumbs_d->gic_first->func.text_get = NULL;
+               ugd->thumbs_d->gic_first->func.content_get = _ge_gengrid_content_get;
                ugd->thumbs_d->gic_first->func.state_get = NULL;
                ugd->thumbs_d->gic_first->func.del = NULL;
 
        }
 
-       ugd->thumbs_d->no_content = elm_gengrid_item_class_new();
-
-       if (ugd->thumbs_d->no_content) {
-               ugd->thumbs_d->no_content->item_style = "no_content";
-               ugd->thumbs_d->no_content->func.text_get = NULL;
-               ugd->thumbs_d->no_content->func.content_get = __ge_nocontent_get;
-               ugd->thumbs_d->no_content->func.state_get = NULL;
-               ugd->thumbs_d->no_content->func.del = NULL;
-       }
-
        if (ugd->thumbs_d->medias_cnt > 0) {
                elm_gengrid_item_size_set(gengrid, size, size);
                elm_gengrid_item_append(gengrid,
@@ -1200,24 +1162,13 @@ int ge_create_gengrid(ge_ugdata * ugd)
                        item_cnt++;
                        gitem->sequence = item_cnt + 1;
                }
-       } else {
-               ugd->nocontents = _ge_nocontents_create(ugd);
-               double scale = elm_config_scale_get();
-               if ((scale - 1.8) < 0.0001) {
-                       elm_gengrid_item_size_set(gengrid, win_w,
-                                                                         HALF_MODE_PORTRAIT_HEIGHT_WVGA);
-               } else {
-                       elm_gengrid_item_size_set(gengrid, win_w,
-                                                                         HALF_MODE_PORTRAIT_HEIGHT);
-               }
-               elm_gengrid_item_append(gengrid,
-                                                               ugd->thumbs_d->no_content, ugd, NULL, ugd);
+               evas_object_show(gengrid);
 
+               elm_object_part_content_set(ugd->albums_view, "contents", gengrid);
+       } else {
+               ugd->nocontents = __ge_nocontent_get(ugd);
+               elm_object_part_content_set(ugd->albums_view, "contents", ugd->nocontents);
        }
-       evas_object_show(gengrid);
-
-       elm_object_part_content_set(ugd->albums_view, "contents", gengrid);
-
        char *pd_selected = GE_STR_PD_SELECTED;
        char *text = g_strdup_printf(pd_selected, ugd->thumbs_d->tot_selected);
        ugd->nf_it =