summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt1
-rw-r--r--include/util/util.h4
-rw-r--r--packaging/org.tizen.mediahub.spec1
-rw-r--r--res/edc/widgets/button.edc9
-rw-r--r--src/layout/movie.c53
-rw-r--r--src/util/util.c20
6 files changed, 83 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 49b3cad..e0f0e99 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -18,6 +18,7 @@ PROJECT("mediahub" C)
INCLUDE(FindPkgConfig)
pkg_check_modules(PKGS REQUIRED
+ glib-2.0
elementary
capi-appfw-application
capi-media-player
diff --git a/include/util/util.h b/include/util/util.h
index dd4bbb7..3ee45ae 100644
--- a/include/util/util.h
+++ b/include/util/util.h
@@ -17,6 +17,9 @@
#ifndef __AIR_MEDIAHUB_UTIL_H__
#define __AIR_MEDIAHUB_UTIL_H__
+#include <media_content.h>
+#include <app_media.h>
+
Evas_Object *util_add_box(Evas_Object *base);
Evas_Object *util_add_gengrid(Evas_Object *base,
int item_size_x, int item_size_y);
@@ -28,5 +31,6 @@ void util_time_string(char *str, int size, unsigned int ms, bool full);
void util_up_string(char *str);
int util_get_media_index(Eina_List *list, void *info);
+app_media *util_find_media_info(Eina_List *list, const char *id);
#endif /* __AIR_MEDIAHUB_UTIL_H__ */
diff --git a/packaging/org.tizen.mediahub.spec b/packaging/org.tizen.mediahub.spec
index 969283d..89f74f0 100644
--- a/packaging/org.tizen.mediahub.spec
+++ b/packaging/org.tizen.mediahub.spec
@@ -8,6 +8,7 @@ Source0: %{name}-%{version}.tar.gz
Source1: %{name}.manifest
BuildRequires: cmake
+BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(elementary)
BuildRequires: pkgconfig(capi-appfw-application)
BuildRequires: pkgconfig(capi-media-player)
diff --git a/res/edc/widgets/button.edc b/res/edc/widgets/button.edc
index 0b66c7a..e51d82f 100644
--- a/res/edc/widgets/button.edc
+++ b/res/edc/widgets/button.edc
@@ -1050,6 +1050,7 @@ group {
description {
state: "default" 0.0;
min: 740 614;
+ color: 0 0 0 0;
}
}
part {
@@ -1244,7 +1245,7 @@ group {
rel2.to: "bg";
min: 0 198;
align: 0.5 1.0;
- color: COLOR_ITEM_BG;
+ color: COLOR_TEXT_BG;
fixed: 0 1;
map {
perspective_on: 1;
@@ -1266,7 +1267,7 @@ group {
state: "default" 0.0;
rel1.to: "defaultbg_text";
rel2.to: "defaultbg_text";
- color: COLOR_ITEM_BG;
+ color: COLOR_TEXT_BG;
map {
perspective_on: 1;
perspective: "map";
@@ -1439,7 +1440,7 @@ group {
relative: 0.0 1.0;
}
text {
- font: TEXT_LIGHT;
+ font: FONT_LIGHT;
size: 20;
align: 0.0 0.5;
}
@@ -1470,7 +1471,7 @@ group {
}
rel2.to: "padding_text_time";
text {
- font: TEXT_LIGHT;
+ font: FONT_LIGHT;
size: 20;
align: 1.0 0.5;
}
diff --git a/src/layout/movie.c b/src/layout/movie.c
index 20f623e..a9df8fc 100644
--- a/src/layout/movie.c
+++ b/src/layout/movie.c
@@ -14,9 +14,11 @@
* limitations under the License.
*/
+#include <glib.h>
#include <Elementary.h>
#include <media_content.h>
#include <app_debug.h>
+#include <app_contents.h>
#include <app_media.h>
#include <gridmgr.h>
#include <layoutmgr.h>
@@ -126,6 +128,7 @@ static bool _update_recent(void *data, Evas_Object *base)
{
Evas_Object *recent, *image;
app_media_info *info;
+ struct tm tm;
struct _priv *priv;
char buf[32];
@@ -161,7 +164,8 @@ static bool _update_recent(void *data, Evas_Object *base)
elm_object_part_text_set(recent, PART_RECENT_CONTENT_TITLE,
info->title);
- util_time_string(buf, sizeof(buf), info->played_time, false);
+ localtime_r(&info->played_time, &tm);
+ strftime(buf, sizeof(buf), "%Y.%m.%d", &tm);
elm_object_part_text_set(recent, PART_RECENT_CONTENT_DATE, buf);
progressbar_reset(priv->prog, info->video->position,
@@ -362,6 +366,51 @@ static void _update_content_list(struct _priv *priv)
priv->media_list = list;
}
+static void _update_recent_item(struct _priv *priv)
+{
+ GList *list;
+ app_media *am;
+ app_media_info *info;
+ struct recent_data *recent;
+ int r;
+
+ list = NULL;
+ info = NULL;
+
+ r = app_contents_get_recent_list(CONTENTS_MOVIE, 1, &list);
+ if (r != APP_CONTENTS_ERROR_NONE) {
+ _ERR("failed to get movie recent list");
+ return;
+ }
+
+ recent = (struct recent_data *)g_list_nth_data(list, 0);
+
+ if (recent) {
+ am = util_find_media_info(mediadata_get_medialist(priv->md),
+ recent->id);
+ if (!am) {
+ _ERR("failed to get app media");
+ g_list_free(list);
+ return;
+ }
+
+ info = app_media_get_info(am);
+ if (!info) {
+ _ERR("failed to get app media info");
+ g_list_free(list);
+ return;
+ }
+
+ priv->recent_info = am;
+ }
+
+ if (!listmgr_update_play_info(priv->listmgr, info))
+ _ERR("failed to update recently watched item");
+
+
+ g_list_free(list);
+}
+
static bool _create(layoutmgr *lmgr, void *data)
{
struct listmgr *listmgr;
@@ -523,6 +572,7 @@ static void _update(void *layout_data, int update_type, void *data)
switch (update_type) {
case UPDATE_CONTENT:
_update_content_list(priv);
+ _update_recent_item(priv);
break;
case UPDATE_FOCUS:
if (!data) {
@@ -533,6 +583,7 @@ static void _update(void *layout_data, int update_type, void *data)
index = *(int *)data;
listmgr_update_focus_item(priv->listmgr, index);
+ _update_recent_item(priv);
break;
default:
break;
diff --git a/src/util/util.c b/src/util/util.c
index 8446b7a..28f6f0d 100644
--- a/src/util/util.c
+++ b/src/util/util.c
@@ -18,6 +18,8 @@
#include <Elementary.h>
#include <app_debug.h>
+#include "util/util.h"
+
Evas_Object *util_add_box(Evas_Object *base)
{
Evas_Object *box;
@@ -173,3 +175,21 @@ int util_get_media_index(Eina_List *list, void *data)
return -1;
}
+
+app_media *util_find_media_info(Eina_List *list, const char *id)
+{
+ Eina_List *l;
+ app_media *am;
+ app_media_info *info;
+
+ EINA_LIST_FOREACH(list, l, am) {
+ info = app_media_get_info(am);
+ if (!info)
+ continue;
+
+ if (!strcmp(info->media_id, id))
+ return am;
+ }
+
+ return NULL;
+}