+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __AIR_FAVORITE_APP_H__
-#define __AIR_FAVORITE_APP_H__
-
-#include <Elementary.h>
-
-struct app_data;
-
-Eina_List *get_app_favorite_list(void);
-char *get_app_id(struct app_data *adata);
-char *get_app_name(struct app_data *adata);
-char *get_app_icon(struct app_data *adata);
-void free_app_favorite_list(Eina_List *list);
-
-#endif /* __AIR_FAVORITE_APP_H__ */
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __AIR_FAVORITE_MEDIA_H__
-#define __AIR_FAVORITE_MEDIA_H__
-
-#include <Elementary.h>
-#include <app_contents.h>
-#include <media_info.h>
-#include <app_media.h>
-
-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);
-char *get_media_album_name(app_media *am);
-int get_media_duration(app_media *am);
-int get_media_favorite_image_count(void);
-int get_media_favorite_video_count(void);
-void free_media_favorite_list(Eina_List *list);
-
-#endif /* __AIR_FAVORITE_MEDIA_H__ */
--- /dev/null
+#ifndef __AIR_FAVORITE_DATAMGR_H__
+#define __AIR_FAVORITE_DATAMGR_H__
+
+#include <Elementary.h>
+
+enum item_type {
+ ITEM_TV,
+ ITEM_MOVIE,
+ ITEM_PHOTO,
+ ITEM_VIDEO,
+ ITEM_GALLERY,
+ ITEM_MUSIC,
+ ITEM_APPS,
+ ITEM_WEBS,
+};
+
+enum data_type {
+ DATA_NAME = 0,
+ DATA_THUMBNAIL,
+ DATA_PATH,
+ DATA_ARTIST,
+ DATA_ALBUM_NAME,
+ DATA_DURATION,
+};
+
+struct datamgr {
+ Eina_List *(*get_favorites)(enum item_type type);
+ void (*free_favorites)(Eina_List *list);
+ int (*get_count)(enum item_type type);
+ char *(*get_data)(void *data, enum data_type type);
+ bool (*action)(Elm_Object_Item *it);
+};
+
+struct datamgr *get_media_datamgr(void);
+struct datamgr *get_apps_datamgr(void);
+
+#endif /* __AIR_FAVORITE_DATAMGR_H__ */
#define STR_CNT_TV "channels"
#define STR_CNT_MOVIE "movies"
#define STR_CNT_GALLERY "files"
-#define STR_CNT_GALLERY_IMAGE "photos"
+#define STR_CNT_GALLERY_PHOTO "photos"
#define STR_CNT_GALLERY_VIDEO "videos"
#define STR_CNT_MUSIC "songs"
#define STR_CNT_APPS "apps"
#include <glib.h>
#include <stdlib.h>
#include <pkgmgr-info.h>
+#include <aul.h>
#include <app_contents.h>
#include <app_debug.h>
-#include "data/app.h"
+#include "datamgr.h"
struct app_data {
char *id;
pkgmgrinfo_appinfo_destroy_appinfo(pah);
}
-Eina_List *get_app_favorite_list(void)
+static Eina_List *_get_favorites(enum item_type type)
{
GList *id_list = NULL;
Eina_List *l = NULL;
+ if (type != ITEM_APPS)
+ return NULL;
+
if (app_contents_get_favorite_list(CONTENTS_APP, &id_list)
!= APP_CONTENTS_ERROR_NONE) {
_ERR("Get app favorite id list failed.");
return l;
}
-char *get_app_id(struct app_data *adata)
+static char *_get_data(void *data, enum data_type type)
{
- if (!adata) {
- _ERR("Invalid argument.");
- return NULL;
- }
-
- return adata->id;
-}
+ struct app_data *adata;
-char *get_app_name(struct app_data *adata)
-{
- if (!adata) {
+ if (!data) {
_ERR("Invalid argument.");
return NULL;
}
+ adata = data;
- return adata->name;
-}
+ switch (type) {
+ case DATA_NAME:
+ return adata->name;
-char *get_app_icon(struct app_data *adata)
-{
- if (!adata) {
- _ERR("Invalid argument.");
+ case DATA_THUMBNAIL:
+ return adata->icon;
+
+ default:
+ _ERR("Invalid data type.");
return NULL;
}
-
- return adata->icon;
}
-void free_app_favorite_list(Eina_List *list)
+static void _free_favorites(Eina_List *list)
{
struct app_data *adata;
adata = NULL;
}
}
+
+static bool _action(Elm_Object_Item *it)
+{
+ struct app_data *adata;
+ int r;
+
+ if (!it) {
+ _ERR("Invalid argument.");
+ return false;
+ }
+
+ adata = elm_object_item_data_get(it);
+ if (!adata || !adata->id)
+ return false;
+
+ r = aul_open_app(adata->id);
+ if (r == AUL_R_EINVAL) {
+ _ERR("Wrong app id");
+ return false;
+ }
+
+ return true;
+}
+
+static struct datamgr _dmgr = {
+ .get_data = _get_data,
+ .get_count = NULL,
+ .get_favorites = _get_favorites,
+ .free_favorites = _free_favorites,
+ .action = _action,
+};
+
+struct datamgr *get_apps_datamgr(void) {
+ return &_dmgr;
+}
#include <glib.h>
#include <media_content.h>
+#include <app_contents.h>
+#include <app_media.h>
#include <app_debug.h>
-#include "data/media.h"
+#include "define.h"
+#include "datamgr.h"
static void _media_favorite_list_foreach(gpointer data, gpointer user_data)
{
*l = eina_list_append(*l, am);
}
-Eina_List *get_media_favorite_list(enum app_contents_type type)
+static Eina_List *_get_favorites(enum item_type type)
{
GList *id_list = NULL;
Eina_List *l = NULL;
+ enum app_contents_type contents_type;
- if (app_contents_get_favorite_list(type, &id_list)
+ switch (type) {
+ case ITEM_MOVIE:
+ contents_type = CONTENTS_MOVIE;
+ break;
+
+ case ITEM_GALLERY:
+ contents_type = CONTENTS_GALLERY;
+ break;
+
+ case ITEM_MUSIC:
+ contents_type = CONTENTS_MUSIC;
+ break;
+
+ default:
+ _ERR("Unhandled media type.");
+ return NULL;
+ }
+
+ if (app_contents_get_favorite_list(contents_type, &id_list)
!= APP_CONTENTS_ERROR_NONE) {
_ERR("Get media favorite id list failed.");
return NULL;
return l;
}
-char *get_media_id(app_media *am)
+static char *_get_video_duration(app_media_info *minfo)
{
- app_media_info *minfo;
+ int duration, h, m, s, sec;
+ char str[SIZE_STR];
- if (!am) {
- _ERR("Invalid argument.");
+ if (!minfo || !minfo->video ||
+ minfo->media_type != MEDIA_CONTENT_TYPE_VIDEO)
return NULL;
- }
- minfo = app_media_get_info(am);
- if (!minfo) {
- _ERR("Get app_media_info failed.");
- return NULL;
- }
+ duration = minfo->video->duration;
- return minfo->media_id;
-}
+ sec = duration / 1000;
+ h = sec / 3600;
+ m = (sec % 3600) / 60;
+ s = sec % 60;
-char *get_media_name(app_media *am)
-{
- app_media_info *minfo;
-
- if (!am) {
- _ERR("Invalid argument.");
- return NULL;
- }
+ if (h)
+ snprintf(str, sizeof(str), "%d:%02d:%02d", h, m, s);
+ else
+ snprintf(str, sizeof(str), "%d:%02d", m, s);
- minfo = app_media_get_info(am);
- if (!minfo) {
- _ERR("Get app_media_info failed.");
- return NULL;
- }
-
- return minfo->display_name;
+ return strdup(str);
}
-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;
-
- if (!am) {
- _ERR("Invalid argument.");
- return NULL;
- }
-
- minfo = app_media_get_info(am);
- if (!minfo) {
- _ERR("Get app_media_info failed.");
- return NULL;
- }
-
- return minfo->file_path;
-}
-
-char *get_media_thumbnail(app_media *am)
-{
- app_media_info *minfo;
-
- if (!am) {
- _ERR("Invalid argument.");
- return NULL;
- }
-
- minfo = app_media_get_info(am);
- if (!minfo) {
- _ERR("Get app_media_info failed.");
- return NULL;
- }
-
- return minfo->thumbnail_path;
-}
-
-char *get_media_artist(app_media *am)
+static char *_get_data(void *data, enum data_type type)
{
+ app_media *am;
app_media_info *minfo;
- if (!am) {
+ if (!data) {
_ERR("Invalid argument.");
return NULL;
}
+ am = data;
minfo = app_media_get_info(am);
if (!minfo) {
return NULL;
}
- return minfo->audio->artist;
-}
+ switch (type) {
+ case DATA_NAME:
+ return minfo->title;
-char *get_media_album_name(app_media *am)
-{
- app_media_info *minfo;
+ case DATA_THUMBNAIL:
+ return minfo->thumbnail_path;
- if (!am) {
- _ERR("Invalid argument.");
- return NULL;
- }
+ case DATA_PATH:
+ return minfo->file_path;
- minfo = app_media_get_info(am);
- if (!minfo) {
- _ERR("Get app_media_info failed.");
- return NULL;
- }
-
- return minfo->audio->album;
-}
+ case DATA_DURATION:
+ if (minfo->video)
+ return _get_video_duration(minfo);
-int get_media_duration(app_media *am)
-{
- app_media_info *minfo;
+ case DATA_ARTIST:
+ if (minfo->audio)
+ return minfo->audio->artist;
- if (!am) {
- _ERR("Invalid argument.");
- return -1;
- }
+ case DATA_ALBUM_NAME:
+ if (minfo->audio)
+ return minfo->audio->album;
- minfo = app_media_get_info(am);
- if (!minfo) {
- _ERR("Get app_media_info failed.");
- return -1;
+ default:
+ _ERR("Unhandled data type.");
}
- if (!minfo->video)
- return -1;
-
- return minfo->video->duration;
+ return NULL;
}
-int get_media_favorite_image_count(void)
+static int _get_count(enum item_type type)
{
GList *id_list = NULL;
int cnt;
+ enum app_contents_type contents_type;
- if (app_contents_get_favorite_list(CONTENTS_PHOTO, &id_list)
- != APP_CONTENTS_ERROR_NONE) {
- _ERR("Get media favorite id list failed.");
+ if (type == ITEM_PHOTO)
+ contents_type = CONTENTS_PHOTO;
+ else if (type == ITEM_VIDEO)
+ contents_type = CONTENTS_VIDEO;
+ else
return 0;
- }
-
- cnt = g_list_length(id_list);
- app_contents_free_favorite_list(id_list);
- return cnt;
-}
-
-int get_media_favorite_video_count(void)
-{
- GList *id_list = NULL;
- int cnt;
-
- if (app_contents_get_favorite_list(CONTENTS_VIDEO, &id_list)
+ if (app_contents_get_favorite_list(contents_type, &id_list)
!= APP_CONTENTS_ERROR_NONE) {
- _ERR("Get media favorite id list failed.");
+ _ERR("Get favorite id list failed.");
return 0;
}
return cnt;
}
-void free_media_favorite_list(Eina_List *list)
+static void _free_favorites(Eina_List *list)
{
app_media *am;
app_media_destroy(am);
}
}
+
+static bool _action(Elm_Object_Item *it)
+{
+ /* It should be implemented later. */
+
+ return true;
+}
+
+static struct datamgr _dmgr = {
+ .get_data = _get_data,
+ .get_count = _get_count,
+ .get_favorites = _get_favorites,
+ .free_favorites = _free_favorites,
+ .action = _action,
+};
+
+struct datamgr *get_media_datamgr(void) {
+ return &_dmgr;
+}
#include "define.h"
#include "grid.h"
-#include "data/app.h"
+#include "datamgr.h"
#define STR_APPS "Apps"
#define STYLE_APPS "style.apps"
static char *_text_get(void *data, Evas_Object *obj, const char *part)
{
- struct app_data *adata;
+ struct datamgr *dmgr;
+ char *name = NULL;
if (!data) {
_ERR("Data is NULL.");
return NULL;
}
- adata = data;
- return strdup(get_app_name(adata));
+ dmgr = get_apps_datamgr();
+ if (!dmgr || !dmgr->get_data)
+ return NULL;
+
+ name = dmgr->get_data(data, DATA_NAME);
+ if (!name)
+ return NULL;
+
+ return strdup(name);
}
static Evas_Object *_content_get(void *data, Evas_Object *obj, const char *part)
{
- struct app_data *adata;
+ struct datamgr *dmgr;
Evas_Object *img, *ly, *icon_bg, *text_bg = NULL;
char *icon;
int idx;
_ERR("Data is NULL.");
return NULL;
}
- adata = data;
if (!strcmp(part, PART_THUMB_ICON)) {
- icon = get_app_icon(adata);
+ dmgr = get_apps_datamgr();
+ if (!dmgr || !dmgr->get_data)
+ return NULL;
+
+ icon = dmgr->get_data(data, DATA_THUMBNAIL);
img = elm_image_add(obj);
if (!img) {
static Eina_List *_create_item_list(void)
{
- return get_app_favorite_list();
+ struct datamgr *dmgr;
+
+ dmgr = get_apps_datamgr();
+ if (!dmgr || !dmgr->get_favorites)
+ return NULL;
+
+ return dmgr->get_favorites(ITEM_APPS);
}
static void _destroy_item_list(Eina_List *list)
{
+ struct datamgr *dmgr;
+
if (!list)
return;
- free_app_favorite_list(list);
+ dmgr = get_apps_datamgr();
+ if (!dmgr || !dmgr->free_favorites)
+ return;
+
+ dmgr->free_favorites(list);
}
static void _item_selected(Elm_Object_Item *it)
{
- struct app_data *adata;
- int r;
+ struct datamgr *dmgr;
if (!it) {
_ERR("Invalid argument.");
return;
}
- adata = elm_object_item_data_get(it);
- r = aul_open_app(get_app_id(adata));
- if (r == AUL_R_EINVAL)
- _ERR("Wrong app id");
+ dmgr = get_apps_datamgr();
+ if (!dmgr || !dmgr->action)
+ return;
+
+ if (!dmgr->action(it))
+ _ERR("The item action failed.");
}
static struct grid_data _gdata = {
#include "define.h"
#include "grid.h"
-#include "data/media.h"
+#include "datamgr.h"
#define STR_GALLERY "Gallery"
#define STYLE_GALLERY "style.gallery"
static char *_text_get(void *data, Evas_Object *obj, const char *part)
{
- app_media *am;
- int duration, h, m, s, sec;
- char str[SIZE_STR];
+ struct datamgr *dmgr;
+ char *duration = NULL;
if (!data) {
_ERR("Data is NULL.");
return NULL;
}
- am = data;
- if (get_media_type(am) != MEDIA_CONTENT_TYPE_VIDEO)
+ dmgr = get_media_datamgr();
+ if (!dmgr || !dmgr->get_data)
return NULL;
- duration = get_media_duration(am);
-
- sec = duration / 1000;
- h = sec / 3600;
- m = (sec % 3600) / 60;
- s = sec % 60;
-
- if (h)
- snprintf(str, sizeof(str), "%d:%02d:%02d", h, m, s);
- else
- snprintf(str, sizeof(str), "%d:%02d", m, s);
+ duration = dmgr->get_data(data, DATA_DURATION);
+ if (!duration)
+ return NULL;
- return strdup(str);
+ return duration;
}
static Evas_Object *_content_get(void *data, Evas_Object *obj, const char *part)
{
- app_media *am;
+ struct datamgr *dmgr;
Evas_Object *img;
char *img_path;
_ERR("Invalid argument.");
return NULL;
}
- am = data;
+
+ dmgr = get_media_datamgr();
+ if (!dmgr || !dmgr->get_data)
+ return NULL;
if (!strcmp(part, PART_THUMB_ICON)) {
- img_path = get_media_thumbnail(am);
+ img_path = dmgr->get_data(data, DATA_THUMBNAIL);
if (!img_path)
img_path = DEFAULT_IMAGE_PNG;
return img;
} else if (!strcmp(part, PART_THUMB_PLAY_ICON) &&
- get_media_type(am) == MEDIA_CONTENT_TYPE_VIDEO) {
+ dmgr->get_data(data, DATA_DURATION)) {
img = elm_image_add(obj);
if (!img) {
_ERR("elm_image_add failed.");
static Eina_List *_create_item_list(void)
{
- return get_media_favorite_list(CONTENTS_GALLERY);
+ struct datamgr *dmgr;
+
+ dmgr = get_media_datamgr();
+ if (!dmgr || !dmgr->get_favorites)
+ return NULL;
+
+ return dmgr->get_favorites(ITEM_GALLERY);
}
static void _destroy_item_list(Eina_List *list)
{
+ struct datamgr *dmgr;
+
if (!list)
return;
- free_media_favorite_list(list);
+ dmgr = get_media_datamgr();
+ if (!dmgr || !dmgr->free_favorites)
+ return;
+
+ dmgr->free_favorites(list);
}
static void _item_selected(Elm_Object_Item *it)
{
+ struct datamgr *dmgr;
+
if (!it) {
_ERR("Invalid argument.");
return;
}
- /* FIXME: The mediahub should be implemented. */
+ dmgr = get_media_datamgr();
+ if (!dmgr || !dmgr->action)
+ return;
+
+ if (!dmgr->action(it))
+ _ERR("The item action failed.");
}
static struct grid_data _gdata = {
#include "define.h"
#include "grid.h"
-#include "data/media.h"
+#include "datamgr.h"
#define STR_MOVIE "Movie"
#define STYLE_MOVIE "style.movie"
static char *_text_get(void *data, Evas_Object *obj, const char *part)
{
- app_media *am;
+ struct datamgr *dmgr;
+ char *name = NULL;
if (!data) {
_ERR("Data is NULL.");
return NULL;
}
- am = data;
- return strdup(get_media_name(am));
+ dmgr = get_media_datamgr();
+ if (!dmgr || !dmgr->get_data)
+ return NULL;
+
+ name = dmgr->get_data(data, DATA_NAME);
+ if (!name)
+ return NULL;
+
+ return strdup(name);
}
static Evas_Object *_content_get(void *data, Evas_Object *obj, const char *part)
{
- app_media *am;
+ struct datamgr *dmgr;
Evas_Object *icon, *img, *text_bg;
char *thumbnail;
int idx;
_ERR("Invalid argument.");
return NULL;
}
- am = data;
+
+ dmgr = get_media_datamgr();
+ if (!dmgr || !dmgr->get_data)
+ return NULL;
if (!strcmp(part, PART_THUMB_ICON)) {
- thumbnail = get_media_thumbnail(am);
+ thumbnail = dmgr->get_data(data, DATA_THUMBNAIL);
if (!thumbnail) {
icon = elm_icon_add(obj);
return NULL;
}
- elm_icon_thumb_set(icon, get_media_path(am), NULL);
+ elm_icon_thumb_set(icon,
+ dmgr->get_data(data, DATA_PATH), NULL);
elm_image_aspect_fixed_set(icon, EINA_FALSE);
return icon;
static Eina_List *_create_item_list(void)
{
- return get_media_favorite_list(CONTENTS_MOVIE);
+ struct datamgr *dmgr;
- return NULL;
+ dmgr = get_media_datamgr();
+ if (!dmgr || !dmgr->get_favorites)
+ return NULL;
+
+ return dmgr->get_favorites(ITEM_MOVIE);
}
static void _destroy_item_list(Eina_List *list)
{
+ struct datamgr *dmgr;
+
if (!list)
return;
- free_media_favorite_list(list);
+ dmgr = get_media_datamgr();
+ if (!dmgr || !dmgr->free_favorites)
+ return;
+
+ dmgr->free_favorites(list);
}
static void _item_selected(Elm_Object_Item *it)
{
+ struct datamgr *dmgr;
+
if (!it) {
_ERR("Invalid argument.");
return;
}
- /* FIXME: The mediahub should be implemented. */
+ dmgr = get_media_datamgr();
+ if (!dmgr || !dmgr->action)
+ return;
+
+ if (!dmgr->action(it))
+ _ERR("The item action failed.");
}
static struct grid_data _gdata = {
#include "define.h"
#include "grid.h"
-#include "data/media.h"
+#include "datamgr.h"
#define STR_MUSIC "Music"
#define STYLE_MUSIC "style.music"
static char *_text_get(void *data, Evas_Object *obj, const char *part)
{
- app_media *am;
+ struct datamgr *dmgr;
+ char *text = NULL;
if (!data) {
_ERR("Data is NULL.");
return NULL;
}
- am = data;
+
+ dmgr = get_media_datamgr();
+ if (!dmgr || !dmgr->get_data)
+ return NULL;
if (!strcmp(part, PART_THUMB_TEXT))
- return strdup(get_media_name(am));
+ text = dmgr->get_data(data, DATA_NAME);
else if (!strcmp(part, PART_THUMB_SUBTEXT1))
- return strdup(get_media_artist(am));
+ text = dmgr->get_data(data, DATA_ARTIST);
else if (!strcmp(part, PART_THUMB_SUBTEXT2))
- return strdup(get_media_album_name(am));
+ text = dmgr->get_data(data, DATA_ALBUM_NAME);
+
+ if (!text)
+ return NULL;
- return NULL;
+ return strdup(text);
}
static Evas_Object *_content_get(void *data, Evas_Object *obj, const char *part)
{
- app_media *am;
+ struct datamgr *dmgr;
Evas_Object *icon, *img;
char *thumbnail;
_ERR("Invalid argument.");
return NULL;
}
- am = data;
- thumbnail = get_media_thumbnail(am);
+ dmgr = get_media_datamgr();
+ if (!dmgr || !dmgr->get_data)
+ return NULL;
+
+ thumbnail = dmgr->get_data(data, DATA_THUMBNAIL);
if (!thumbnail) {
icon = elm_icon_add(obj);
return NULL;
}
- elm_icon_thumb_set(icon, get_media_path(am), NULL);
+ elm_icon_thumb_set(icon, dmgr->get_data(data, DATA_PATH), NULL);
elm_image_aspect_fixed_set(icon, EINA_FALSE);
return icon;
static Eina_List *_create_item_list(void)
{
- return get_media_favorite_list(CONTENTS_MUSIC);
+ struct datamgr *dmgr;
+
+ dmgr = get_media_datamgr();
+ if (!dmgr || !dmgr->get_favorites)
+ return NULL;
+
+ return dmgr->get_favorites(ITEM_MUSIC);
}
static void _destroy_item_list(Eina_List *list)
{
+ struct datamgr *dmgr;
+
if (!list)
return;
- free_media_favorite_list(list);
+ dmgr = get_media_datamgr();
+ if (!dmgr || !dmgr->free_favorites)
+ return;
+
+ dmgr->free_favorites(list);
}
static void _item_selected(Elm_Object_Item *it)
{
+ struct datamgr *dmgr;
+
if (!it) {
_ERR("Invalid argument.");
return;
}
- /* FIXME: The mediahub should be implemented. */
+ dmgr = get_media_datamgr();
+ if (!dmgr || !dmgr->action)
+ return;
+
+ if (!dmgr->action(it))
+ _ERR("The item action failed.");
}
static struct grid_data _gdata = {
#include "define.h"
#include "utils.h"
-#include "data/media.h"
-#include "data/app.h"
#include "grid.h"
+#include "datamgr.h"
const char *str_count[] = {
STR_CNT_TV,
static void _draw_content_count(Evas_Object *base, int count, int id)
{
+ struct datamgr *dmgr;
char str[SIZE_STR];
if (!base) {
elm_object_signal_emit(base, SIG_INVISIBLE, PART_COUNT_DIVIDE_LINE);
if (!strcmp(str_count[id], STR_CNT_GALLERY)) {
+ dmgr = get_media_datamgr();
+ if (!dmgr || !dmgr->get_count)
+ return;
+
snprintf(str, sizeof(str), "%d %s %d %s",
- get_media_favorite_image_count(),
- STR_CNT_GALLERY_IMAGE,
- get_media_favorite_video_count(),
+ dmgr->get_count(ITEM_PHOTO),
+ STR_CNT_GALLERY_PHOTO,
+ dmgr->get_count(ITEM_VIDEO),
STR_CNT_GALLERY_VIDEO);
elm_object_part_text_set(base, PART_CONTENTS_SUBCOUNT, str);
elm_object_signal_emit(base, SIG_VISIBLE,