Gallery grid: Fix the grid thumbnail to show play icon when data is video 09/44109/1
authorHyojung Jo <hj903.jo@samsung.com>
Fri, 17 Jul 2015 01:44:11 +0000 (10:44 +0900)
committerHyojung Jo <hj903.jo@samsung.com>
Fri, 17 Jul 2015 01:44:11 +0000 (10:44 +0900)
Change-Id: I7515e57eae61aaf5364183872827729d7b654550
Signed-off-by: Hyojung Jo <hj903.jo@samsung.com>
CMakeLists.txt
include/data/media.h
include/define.h
res/widgets/gengrid_gallery.edc
src/data/media.c
src/grid/grid_gallery.c

index 0a37bfc..a015b96 100644 (file)
@@ -88,5 +88,7 @@ CONFIGURE_FILE(${PACKAGE_NAME}.xml.in ${PACKAGE_NAME}.xml)
 
 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})
 INSTALL(FILES ${PACKAGE_NAME}.xml DESTINATION ${PACKAGEDIR})
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/res/images/ DESTINATION
+               ${IMGDIR})
 
 ADD_SUBDIRECTORY(res)
index 569bbf8..53358c9 100644 (file)
@@ -25,6 +25,7 @@
 Eina_List *get_media_favorite_list(enum app_contents_type type);
 char *get_media_id(app_media *am);
 char *get_media_name(app_media *am);
+media_content_type_e get_media_type(app_media *am);
 char *get_media_path(app_media *am);
 char *get_media_thumbnail(app_media *am);
 char *get_media_artist(app_media *am);
index 4030ec0..4c9ebf1 100644 (file)
@@ -36,6 +36,7 @@
 #define PART_THUMB_SUBTEXT "part.thumb.subtext"
 #define PART_THUMB_ICON_BG "part.thumb.icon.bg"
 #define PART_THUMB_TEXT_BG "part.thumb.text.bg"
+#define PART_THUMB_PLAY_ICON "part.thumb.play.icon"
 
 /* Style */
 #define STYLE_MENU_BTN "style.menu.button"
@@ -71,4 +72,7 @@
 /* Image */
 #define PLAY_ICON_PNG "ic_thumbnail_play.png"
 
+/* Path */
+#define PATH_PLAY_ICON_PNG IMGDIR"/ic_thumbnail_play.png"
+
 #endif /* __AIR_FAVORITE_DEFINE_H__ */
index cbb0213..4ab0723 100644 (file)
@@ -18,7 +18,7 @@ group {
        name, "elm/gengrid/item/style.gallery/default";
        data.item, "focus_highlight" "on";
        data.item, "text" "part.thumb.text";
-       data.item, "contents" "part.thumb.icon";
+       data.item, "contents" "part.thumb.icon part.thumb.play.icon";
        parts {
                part {
                        name, PART_THUMB_ICON;
@@ -34,7 +34,7 @@ group {
                }
 
                part {
-                       name, "padding.play.icon";
+                       name, "padding.thumb.play.icon";
                        type, SPACER;
                        scale, 1;
                        description {
@@ -47,18 +47,18 @@ group {
                }
 
                part {
-                       name, "part.play.icon";
+                       name, PART_THUMB_PLAY_ICON;
                        type, SWALLOW;
                        scale, 1;
                        description {
                                state, "default" 0.0;
                                min, 80 80;
                                rel1 {
-                                       to, "padding.play.icon";
+                                       to, "padding.thumb.play.icon";
                                        relative, 1.0 1.0;
                                }
                                rel2 {
-                                       to, "padding.play.icon";
+                                       to, "padding.thumb.play.icon";
                                        relative, 1.0 1.0;
                                }
                                align, 0.0 0.0;
index d722934..e35e6d1 100644 (file)
@@ -120,6 +120,24 @@ char *get_media_name(app_media *am)
        return minfo->display_name;
 }
 
+media_content_type_e get_media_type(app_media *am)
+{
+       app_media_info *minfo;
+
+       if (!am) {
+               _ERR("Invalid argument.");
+               return -1;
+       }
+
+       minfo = app_media_get_info(am);
+       if (!minfo) {
+               _ERR("Get app_media_info failed.");
+               return -1;
+       }
+
+       return minfo->media_type;
+}
+
 char *get_media_path(app_media *am)
 {
        app_media_info *minfo;
index a01e593..c39c69e 100644 (file)
@@ -54,32 +54,49 @@ static Evas_Object *_content_get(void *data, Evas_Object *obj, const char *part)
        }
        am = data;
 
-       thumbnail = get_media_thumbnail(am);
+       if (!strcmp(part, PART_THUMB_ICON)) {
+               thumbnail = get_media_thumbnail(am);
 
-       if (!thumbnail) {
-               icon = elm_icon_add(obj);
-               if (!icon) {
-                       _ERR("elm_icon_add failed.");
+               if (!thumbnail) {
+                       icon = elm_icon_add(obj);
+                       if (!icon) {
+                               _ERR("elm_icon_add failed.");
+                               return NULL;
+                       }
+
+                       elm_icon_thumb_set(icon, get_media_path(am), NULL);
+                       elm_image_aspect_fixed_set(icon, EINA_FALSE);
+
+                       return icon;
+               }
+
+               img = elm_image_add(obj);
+               if (!img) {
+                       _ERR("elm_image_add failed.");
                        return NULL;
                }
 
-               elm_icon_thumb_set(icon, get_media_path(am), NULL);
-               elm_image_aspect_fixed_set(icon, EINA_FALSE);
+               elm_image_file_set(img, thumbnail, NULL);
+               elm_image_aspect_fixed_set(img, EINA_FALSE);
+               evas_object_show(img);
 
-               return icon;
-       }
+               return img;
+       } else if (!strcmp(part, PART_THUMB_PLAY_ICON) &&
+                       get_media_type(am) == MEDIA_CONTENT_TYPE_VIDEO) {
+               img = elm_image_add(obj);
+               if (!img) {
+                       _ERR("elm_image_add failed.");
+                       return NULL;
+               }
 
-       img = elm_image_add(obj);
-       if (!img) {
-               _ERR("elm_image_add failed.");
-               return NULL;
-       }
+               elm_image_file_set(img, PATH_PLAY_ICON_PNG, NULL);
+               elm_image_aspect_fixed_set(img, EINA_FALSE);
+               evas_object_show(img);
 
-       elm_image_file_set(img, thumbnail, NULL);
-       elm_image_aspect_fixed_set(img, EINA_FALSE);
-       evas_object_show(img);
+               return img;
+       }
 
-       return img;
+       return NULL;
 }
 
 static struct grid_class _gclass = {