add icon for favorite photo 82/47582/3
authorSoohye Shin <soohye.shin@samsung.com>
Sun, 6 Sep 2015 08:38:23 +0000 (17:38 +0900)
committerSoohye Shin <soohye.shin@samsung.com>
Mon, 7 Sep 2015 06:39:26 +0000 (15:39 +0900)
Change-Id: Icf145ffef8ecca251d9c4c5d6427ec73777ec820
Signed-off-by: Soohye Shin <soohye.shin@samsung.com>
edje/widget/gengrid.edc
images/ic_thumbnail_favorite_02.png [new file with mode: 0644]
include/defs.h
src/data/data_photo.c
src/view/view_photo.c

index fab6192..c3b00e5 100644 (file)
@@ -17,7 +17,7 @@
 group {
        name, "elm/gengrid/item/gengrid_item/default";
        data.item, "selectraise" "on";
-       data.item, "contents" "elm.swallow.icon";
+       data.item, "contents" "elm.swallow.content elm.swallow.icon";
        data.item, "focus_highlight" "on";
        parts {
                part {
@@ -87,7 +87,7 @@ group {
                        }
                }
                part {
-                       name, PART_SWALLOW_ICON;
+                       name, PART_SWALLOW_CONTENT;
                        type, SWALLOW;
                        scale, 1;
                        clip_to, "clip";
@@ -96,6 +96,45 @@ group {
                                fixed, 1 1;
                        }
                }
+               part {
+                       name, "pad.favorite";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       to, PART_SWALLOW_CONTENT;
+                                       relative, 1.0 0.0;
+                               }
+                               rel2 {
+                                       to, PART_SWALLOW_CONTENT;
+                                       relative, 1.0 0.0;
+                               }
+                               min, 8 8;
+                               fixed, 1 1;
+                               align, 1.0 0.0;
+                               visible, 0;
+                       }
+               }
+               part {
+                       name, PART_SWALLOW_ICON;
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       to, "pad.favorite";
+                                       relative, 0.0 1.0;
+                               }
+                               rel2 {
+                                       to, "pad.favorite";
+                                       relative, 0.0 1.0;
+                               }
+                               min, 30 30;
+                               fixed, 1 1;
+                               align, 1.0 0.0;
+                       }
+               }
        }
        programs {
                program {
diff --git a/images/ic_thumbnail_favorite_02.png b/images/ic_thumbnail_favorite_02.png
new file mode 100644 (file)
index 0000000..ca2b1c2
Binary files /dev/null and b/images/ic_thumbnail_favorite_02.png differ
index 132a694..29cdebf 100644 (file)
 #define IMAGE_RECENT_THUMB_APP IMAGEDIR"/ic_default_app.png"
 #define IMAGE_RECENT_THUMB_CHANNEL IMAGEDIR"/ic_default_tv.png"
 #define IMAGE_RECENT_THUMB_SETTING IMAGEDIR"/ic_default_setting"
+#define IMAGE_PHOTO_FAVORITE IMAGEDIR"/ic_thumbnail_favorite_02.png"
 
 #define MAX_ITEM_COUNT 8
 #define MAX_USER_COUNT 9
index d1228b6..f31e876 100644 (file)
 #include <app_debug.h>
 #include <Eina.h>
 #include <media_content.h>
+#include <app_contents.h>
 
 #include "data_photo.h"
 #include "datamgr.h"
+#include "defs.h"
 
 #define MEDIA_CONDITION_IMAGE "MEDIA_TYPE=0"
 
 static bool _get_media(media_info_h m, void *data)
 {
        int r;
-       char *thumb;
+       char *thumb, *mediaid;
        Eina_List **list;
+       struct datamgr_item *di;
+       bool favorite;
 
        if (!m) {
                _ERR("Invalid argument");
@@ -42,7 +46,25 @@ static bool _get_media(media_info_h m, void *data)
                return false;
        }
 
-       *list = eina_list_append(*list, thumb);
+       r = media_info_get_media_id(m, &mediaid);
+       if (r != MEDIA_CONTENT_ERROR_NONE || !mediaid)
+               _ERR("failed to get media id");
+
+       favorite = false;
+       r = app_contents_favorite_check(CONTENTS_PHOTO, mediaid, &favorite);
+       if (r != APP_CONTENTS_ERROR_NONE)
+               _ERR("failed to get favorite");
+
+       di = calloc(1, sizeof(*di));
+       if (!di) {
+               _ERR("failed to calloc datamgr item");
+               return false;
+       }
+       di->icon = strdup(thumb);
+       if (favorite)
+               di->focus_icon = strdup(IMAGE_PHOTO_FAVORITE);
+
+       *list = eina_list_append(*list, di);
 
        return true;
 }
index 777fa0e..30c7cc9 100644 (file)
@@ -95,14 +95,14 @@ static void _delete_popup(struct _priv *priv)
 
 static void _select_done(struct _priv *priv, Evas_Object *obj)
 {
-       char *thumb;
+       struct datamgr_item *di;
 
        _delete_popup(priv);
        elm_object_focus_allow_set(priv->grid, EINA_TRUE);
-       thumb = elm_object_item_data_get(priv->cur);
-       if (thumb) {
+       di = elm_object_item_data_get(priv->cur);
+       if (di && di->icon) {
                viewmgr_update_view(VIEW_USER_EDIT,
-                               UPDATE_TYPE_PHOTO, thumb);
+                               UPDATE_TYPE_PHOTO, di->icon);
                                viewmgr_pop_view();
        }
 }
@@ -272,14 +272,30 @@ static Evas_Object *_add_photo_grid(struct _priv *priv)
 static Evas_Object *_get_grid_content(void *data, Evas_Object *obj,
                const char *part)
 {
+       struct datamgr_item *di;
        Evas_Object *img = NULL;
 
-       if (!strcmp(part, PART_SWALLOW_ICON)) {
-               img = utils_add_icon(obj, data, NULL);
+       if (!data) {
+               _ERR("Invalid argument");
+               return NULL;
+       }
+
+       di = data;
+
+       if (!strcmp(part, PART_SWALLOW_CONTENT)) {
+               img = utils_add_icon(obj, di->icon, NULL);
                if (!img) {
                        _ERR("failed to add image");
                        return NULL;
                }
+       } else if (!strcmp(part, PART_SWALLOW_ICON)) {
+               if (di->focus_icon) {
+                       img = utils_add_icon(obj, di->focus_icon, NULL);
+                       if (!img) {
+                               _ERR("failed to add imgae");
+                               return NULL;
+                       }
+               }
        }
 
        return img;
@@ -339,17 +355,17 @@ static void _add_viewer_popup(struct _priv *priv, char *file)
 
 static void _select_item(void *data, Evas_Object *obj, void *ei)
 {
+       struct datamgr_item *di;
        struct _priv *priv = data;
-       char *thumb;
 
-       thumb = elm_object_item_data_get(ei);
-       if (!thumb) {
+       di = elm_object_item_data_get(ei);
+       if (!di) {
                _ERR("failed to get data");
                return;
        }
 
        elm_object_focus_allow_set(priv->grid, EINA_FALSE);
-       _add_viewer_popup(priv, thumb);
+       _add_viewer_popup(priv, di->icon);
 
        priv->cur = ei;
 }
@@ -360,7 +376,7 @@ static bool _add_photo_item(struct _priv *priv, Evas_Object *grid,
        Elm_Gengrid_Item_Class *ic;
        Elm_Object_Item *item;
        Eina_List *l;
-       char *thumb;
+       struct datamgr_item *di;
 
        elm_gengrid_clear(grid);
 
@@ -376,13 +392,13 @@ static bool _add_photo_item(struct _priv *priv, Evas_Object *grid,
        ic->func.state_get = NULL;
        ic->func.del = NULL;
 
-       EINA_LIST_FOREACH(dlist, l, thumb) {
-               item = elm_gengrid_item_append(grid, ic, thumb,
+       EINA_LIST_FOREACH(dlist, l, di) {
+               item = elm_gengrid_item_append(grid, ic, di,
                                _select_item, priv);
                if (!item)
                        continue;
 
-               elm_object_item_data_set(item, thumb);
+               elm_object_item_data_set(item, di);
                priv->plist = eina_list_append(priv->plist, item);
        }