From e51d60505650dcbd3a89b09209f0a50093cdbdf2 Mon Sep 17 00:00:00 2001 From: Minkyu Kang Date: Thu, 23 Jul 2015 14:30:42 +0900 Subject: [PATCH 01/16] viewer: disable ff/rew button Since have problem about callback of player, disabled ff/rew button for a while. Change-Id: I44d89f5f0a8889b0e8a1f6c532b2eb1485f2833e Signed-off-by: Minkyu Kang --- src/view/viewer.c | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) diff --git a/src/view/viewer.c b/src/view/viewer.c index 77fec5d..9f78195 100644 --- a/src/view/viewer.c +++ b/src/view/viewer.c @@ -35,7 +35,7 @@ #define STYLE_VIEWER_BTN "viewer_btn" #define PART_VIEWER_BTN "control_btn" -#define PLAY_BTN_LOC 2 +#define PLAY_BTN_LOC 1 #define VIEWER_TIMEOUT 3.0 #define VIEWER_SEPARATOR "/ " @@ -88,10 +88,6 @@ struct _btn_info { static struct _btn_info btn_movie[] = { { .name = SRC_BTN_PREV, - .loc = 0, - }, - { - .name = SRC_BTN_REW, .loc = 1, }, { @@ -99,12 +95,8 @@ static struct _btn_info btn_movie[] = { .loc = 2, }, { - .name = SRC_BTN_FF, - .loc = 3, - }, - { .name = SRC_BTN_NEXT, - .loc = 4, + .loc = 3, }, }; @@ -125,18 +117,10 @@ static struct _btn_info btn_video[] = { .loc = 0, }, { - .name = SRC_BTN_REW, - .loc = 1, - }, - { .name = SRC_BTN_PLAY, .loc = 2, }, { - .name = SRC_BTN_FF, - .loc = 3, - }, - { .name = SRC_BTN_GALLERY_NEXT, .loc = 4, }, @@ -159,8 +143,8 @@ static void _callback_video(void *data, const char *ev); static struct _viewer_info viewer_info[] = { { .btns = btn_movie, - .btn_count = 5, - .focus_loc = 2, + .btn_count = 3, + .focus_loc = 1, .callback = _callback_movie, }, { @@ -171,8 +155,8 @@ static struct _viewer_info viewer_info[] = { }, { .btns = btn_video, - .btn_count = 5, - .focus_loc = 4, + .btn_count = 3, + .focus_loc = 2, .callback = _callback_video, }, }; -- 2.7.4 From 29c48a5e3b4be084b89893e0a0c475653e1b6b5a Mon Sep 17 00:00:00 2001 From: Jehun Lim Date: Thu, 23 Jul 2015 21:38:28 +0900 Subject: [PATCH 02/16] base: modify the argument of layoutmgr_update_layout Change-Id: Id483943c3917acf0eb1f916a653e102e7875313d Signed-off-by: Jehun Lim --- src/layout/gallery.c | 11 +++++------ src/layout/movie.c | 11 +++++------ src/layout/music.c | 11 +++++------ src/view/base.c | 2 +- 4 files changed, 16 insertions(+), 19 deletions(-) diff --git a/src/layout/gallery.c b/src/layout/gallery.c index eac45df..5dad688 100644 --- a/src/layout/gallery.c +++ b/src/layout/gallery.c @@ -376,8 +376,8 @@ static void _hide(void *layout_data) static void _update(void *layout_data, int update_type, void *data) { + struct view_update_data *vdata; struct _priv *priv; - int index; bool update; if (!layout_data) { @@ -386,25 +386,24 @@ static void _update(void *layout_data, int update_type, void *data) } priv = layout_data; + vdata = data; switch (update_type) { case UPDATE_CONTENT: _update_content_list(priv); break; case UPDATE_FOCUS: - if (!data) { + if (!vdata) { _ERR("invalid argument"); return; } - index = *(int *)data; - - if (priv->cur_index != index) + if (priv->cur_index != vdata->index) update = true; else update = false; - listmgr_update_focus_item(priv->listmgr, index, update); + listmgr_update_focus_item(priv->listmgr, vdata->index, update); break; default: diff --git a/src/layout/movie.c b/src/layout/movie.c index 3e92362..e6c5289 100644 --- a/src/layout/movie.c +++ b/src/layout/movie.c @@ -579,8 +579,8 @@ static void _hide(void *layout_data) static void _update(void *layout_data, int update_type, void *data) { + struct view_update_data *vdata; struct _priv *priv; - int index; bool update; if (!layout_data) { @@ -589,6 +589,7 @@ static void _update(void *layout_data, int update_type, void *data) } priv = layout_data; + vdata = data; switch (update_type) { case UPDATE_CONTENT: @@ -596,19 +597,17 @@ static void _update(void *layout_data, int update_type, void *data) _update_recent_item(priv); break; case UPDATE_FOCUS: - if (!data) { + if (!vdata) { _ERR("invalid argument"); return; } - index = *(int *)data; - - if (priv->cur_index != index) + if (priv->cur_index != vdata->index) update = true; else update = false; - listmgr_update_focus_item(priv->listmgr, index, update); + listmgr_update_focus_item(priv->listmgr, vdata->index, update); _update_recent_item(priv); break; default: diff --git a/src/layout/music.c b/src/layout/music.c index 2c8b373..76313b5 100644 --- a/src/layout/music.c +++ b/src/layout/music.c @@ -548,8 +548,8 @@ static void _hide(void *layout_data) static void _update(void *layout_data, int update_type, void *data) { + struct view_update_data *vdata; struct _priv *priv; - int index; bool update; if (!layout_data) { @@ -558,6 +558,7 @@ static void _update(void *layout_data, int update_type, void *data) } priv = layout_data; + vdata = data; switch (update_type) { case UPDATE_CONTENT: @@ -565,19 +566,17 @@ static void _update(void *layout_data, int update_type, void *data) _update_playing_item(priv); break; case UPDATE_FOCUS: - if (!data) { + if (!vdata) { _ERR("invalid argument"); return; } - index = *(int *)data; - - if (priv->cur_index != index) + if (priv->cur_index != vdata->index) update = true; else update = false; - listmgr_update_focus_item(priv->listmgr, index, update); + listmgr_update_focus_item(priv->listmgr, vdata->index, update); _update_playing_item(priv); break; default: diff --git a/src/view/base.c b/src/view/base.c index 928031a..9e50dd9 100644 --- a/src/view/base.c +++ b/src/view/base.c @@ -308,7 +308,7 @@ static void _update(void *view_data, int update_type, void *data) layoutmgr_update_layout(priv->lmgr, g_menu_item[priv->current_layout].layout_id, - update_type, (void *)&vdata->index); + update_type, vdata); } static void _destroy(void *view_data) -- 2.7.4 From baa5c776e27b319c506124e609a5cfd4e4669cfa Mon Sep 17 00:00:00 2001 From: Jehun Lim Date: Thu, 23 Jul 2015 22:03:12 +0900 Subject: [PATCH 03/16] music: update now playing item Change-Id: I1af01a4b4558f974636750aa99b4e369d6b61bc8 Signed-off-by: Jehun Lim --- src/layout/music.c | 56 +++++++++++++++++++----------------------------------- 1 file changed, 20 insertions(+), 36 deletions(-) diff --git a/src/layout/music.c b/src/layout/music.c index 76313b5..746e4f7 100644 --- a/src/layout/music.c +++ b/src/layout/music.c @@ -14,11 +14,9 @@ * limitations under the License. */ -#include #include #include #include -#include #include #include #include @@ -358,49 +356,29 @@ static void _update_content_list(struct _priv *priv) _update_content_info(priv); } -static void _update_playing_item(struct _priv *priv) +static void _update_playing_item(struct _priv *priv, int index) { - GList *list; + Eina_List *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_MUSIC, 1, &list); - if (r != APP_CONTENTS_ERROR_NONE) { - _ERR("failed to get movie recent list"); + list = mediadata_get_medialist(priv->md); + am = eina_list_nth(list, index); + if (!am) { + _ERR("failed to get app media"); 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->playing_info = am; + info = app_media_get_info(am); + if (!info) { + _ERR("failed to get app media info"); + return; } + priv->playing_info = am; + if (!listmgr_update_play_info(priv->listmgr, info)) _ERR("failed to update now playing item"); - - - g_list_free(list); } static bool _create(layoutmgr *lmgr, void *data) @@ -563,7 +541,14 @@ static void _update(void *layout_data, int update_type, void *data) switch (update_type) { case UPDATE_CONTENT: _update_content_list(priv); - _update_playing_item(priv); + break; + case UPDATE_PLAY_INFO: + if (!vdata) { + _ERR("invalid argument"); + return; + } + + _update_playing_item(priv, vdata->index); break; case UPDATE_FOCUS: if (!vdata) { @@ -577,7 +562,6 @@ static void _update(void *layout_data, int update_type, void *data) update = false; listmgr_update_focus_item(priv->listmgr, vdata->index, update); - _update_playing_item(priv); break; default: break; -- 2.7.4 From 5cb6a9d874ecbe5ed9777702e4ae87e459fc7ae2 Mon Sep 17 00:00:00 2001 From: Jehun Lim Date: Thu, 23 Jul 2015 19:08:20 +0900 Subject: [PATCH 04/16] listmgr: add the function to update focus to play info Change-Id: I62e2aed712596bcddac31b9f0da11ba1914b41f5 Signed-off-by: Jehun Lim --- include/util/listmgr.h | 3 ++- src/layout/gallery.c | 2 +- src/layout/movie.c | 8 +------- src/layout/music.c | 13 +------------ src/util/listmgr.c | 47 ++++++++++++++++++++++++++++++++++++++--------- 5 files changed, 43 insertions(+), 30 deletions(-) diff --git a/include/util/listmgr.h b/include/util/listmgr.h index d146532..48f21fe 100644 --- a/include/util/listmgr.h +++ b/include/util/listmgr.h @@ -54,6 +54,7 @@ bool listmgr_draw_list_area(struct listmgr *lmgr); bool listmgr_update_content_list(struct listmgr *lmgr, Eina_List *list); bool listmgr_update_play_info(struct listmgr *lmgr, app_media_info *info); -bool listmgr_update_focus_item(struct listmgr *lmgr, int index, bool update); +bool listmgr_focus_content_list(struct listmgr *lmgr, int index, bool update); +bool listmgr_focus_play_info(struct listmgr *lmgr); #endif /* __AIR_MEDIAHUB_LISTMGR_H__ */ diff --git a/src/layout/gallery.c b/src/layout/gallery.c index 5dad688..3e3e839 100644 --- a/src/layout/gallery.c +++ b/src/layout/gallery.c @@ -403,7 +403,7 @@ static void _update(void *layout_data, int update_type, void *data) else update = false; - listmgr_update_focus_item(priv->listmgr, vdata->index, update); + listmgr_focus_content_list(priv->listmgr, vdata->index, update); break; default: diff --git a/src/layout/movie.c b/src/layout/movie.c index e6c5289..ceb236f 100644 --- a/src/layout/movie.c +++ b/src/layout/movie.c @@ -581,7 +581,6 @@ static void _update(void *layout_data, int update_type, void *data) { struct view_update_data *vdata; struct _priv *priv; - bool update; if (!layout_data) { _ERR("failed to get layout data"); @@ -602,12 +601,7 @@ static void _update(void *layout_data, int update_type, void *data) return; } - if (priv->cur_index != vdata->index) - update = true; - else - update = false; - - listmgr_update_focus_item(priv->listmgr, vdata->index, update); + listmgr_focus_play_info(priv->listmgr); _update_recent_item(priv); break; default: diff --git a/src/layout/music.c b/src/layout/music.c index 746e4f7..4d6f3c5 100644 --- a/src/layout/music.c +++ b/src/layout/music.c @@ -528,7 +528,6 @@ static void _update(void *layout_data, int update_type, void *data) { struct view_update_data *vdata; struct _priv *priv; - bool update; if (!layout_data) { _ERR("failed to get layout data"); @@ -551,17 +550,7 @@ static void _update(void *layout_data, int update_type, void *data) _update_playing_item(priv, vdata->index); break; case UPDATE_FOCUS: - if (!vdata) { - _ERR("invalid argument"); - return; - } - - if (priv->cur_index != vdata->index) - update = true; - else - update = false; - - listmgr_update_focus_item(priv->listmgr, vdata->index, update); + listmgr_focus_play_info(priv->listmgr); break; default: break; diff --git a/src/util/listmgr.c b/src/util/listmgr.c index ff25f0c..9ea9d6c 100644 --- a/src/util/listmgr.c +++ b/src/util/listmgr.c @@ -375,21 +375,50 @@ static Evas_Object *_draw_list_item(struct listmgr *lmgr, struct group_info *gi) return ly; } -bool listmgr_update_focus_item(struct listmgr *lmgr, int index, bool update) +bool _focus_to_content(struct listmgr *lmgr, Evas_Object *base) +{ + Evas_Object *content; + + content = elm_object_part_content_get(base, PART_ITEM_CONTENT); + if (!content) { + _ERR("failed to get content"); + return false; + } + + lmgr->scr_focus = EINA_FALSE; + elm_object_focus_set(content, EINA_TRUE); + + return true; +} + +bool listmgr_focus_play_info(struct listmgr *lmgr) +{ + if (!lmgr) { + _ERR("failed to get listmgr"); + return false; + } + + if (!_focus_to_content(lmgr, lmgr->play_info)) { + _ERR("failed to focus to content"); + return false; + } + + return true; +} + +bool listmgr_focus_content_list(struct listmgr *lmgr, int index, bool update) { Eina_List *item, *l; - Evas_Object *ly, *grid, *content; + Evas_Object *ly, *grid; Elm_Object_Item *it; int count; + int r; if (!update) { - content = elm_object_part_content_get(lmgr->focused, - PART_ITEM_CONTENT); - - lmgr->scr_focus = EINA_FALSE; - elm_object_focus_set(content, EINA_TRUE); - - return true; + r = _focus_to_content(lmgr, lmgr->focused); + if (!r) + _ERR("failed to focus to content"); + return r; } item = elm_box_children_get(lmgr->box); -- 2.7.4 From 85a1ff422afccebecc76ad56342609d61de05c48 Mon Sep 17 00:00:00 2001 From: Minkyu Kang Date: Thu, 23 Jul 2015 21:34:41 +0900 Subject: [PATCH 05/16] update the app media info after adding item to recent Change-Id: I9b3b5ed1fc93c456343bc1cbf23ec7b167a7f1af Signed-off-by: Minkyu Kang --- src/view/mplayer.c | 36 ++++++++++++++++++++++++++++++------ src/view/viewer.c | 32 +++++++++++++++++++++++++++++--- 2 files changed, 59 insertions(+), 9 deletions(-) diff --git a/src/view/mplayer.c b/src/view/mplayer.c index 5cb99ef..a548f46 100644 --- a/src/view/mplayer.c +++ b/src/view/mplayer.c @@ -83,6 +83,28 @@ static struct _btn_info btn_player[] = { }, }; +static void _add_to_recent(struct _priv *priv) +{ + app_media *am; + app_media_info *mi; + + am = eina_list_nth(priv->playlist.list, priv->playlist.cur); + if (!am) { + _ERR("failed to get app_media"); + return; + } + + mi = app_media_get_info(am); + if (!mi) { + _ERR("failed to getting media info"); + return; + } + + app_contents_recent_add(CONTENTS_MEDIA, mi->media_id); + + app_media_update(am); +} + static void _draw_playlist(struct _priv *priv) { struct _list_data *ld; @@ -158,12 +180,12 @@ static void _update_info(struct _priv *priv, app_media_info *mi) /* update progressbar */ progressbar_reset(priv->progress, 0, mi->audio->duration); - /* update history */ - app_contents_recent_add(CONTENTS_MEDIA, mi->media_id); - /* update play info */ vdata.index = priv->playlist.cur; viewmgr_update_view(VIEW_BASE, UPDATE_PLAY_INFO, &vdata); + + /* update history */ + _add_to_recent(priv); } static void _mplayer_show(struct _priv *priv) @@ -177,10 +199,10 @@ static void _mplayer_show(struct _priv *priv) return; } - _update_info(priv, mi); - - if (!priv->bar_show) + if (!priv->bar_show) { + _update_info(priv, mi); return; + } ctl = priv->ctl; ctl->ops->show(ctl->handle); @@ -189,6 +211,8 @@ static void _mplayer_show(struct _priv *priv) _draw_music_info(priv, mi); _draw_progressbar(priv, mi); _draw_playlist(priv); + + _update_info(priv, mi); } static void _mplayer_hide(struct _priv *priv) diff --git a/src/view/viewer.c b/src/view/viewer.c index 9f78195..2948ec7 100644 --- a/src/view/viewer.c +++ b/src/view/viewer.c @@ -161,6 +161,28 @@ static struct _viewer_info viewer_info[] = { }, }; +static void _add_to_recent(struct _priv *priv) +{ + app_media *am; + app_media_info *mi; + + am = eina_list_nth(priv->playlist.list, priv->playlist.cur); + if (!am) { + _ERR("failed to get app_media"); + return; + } + + mi = app_media_get_info(am); + if (!mi) { + _ERR("failed to getting media info"); + return; + } + + app_contents_recent_add(CONTENTS_MEDIA, mi->media_id); + + app_media_update(am); +} + /* * NOTE: Workaround * we assumed that if video content have the copyright then it's a movie. @@ -257,6 +279,8 @@ static void _image_loaded_detail(void *data, Evas_Object *obj, void *ev) priv = data; priv->photo_pre = NULL; + + _add_to_recent(priv); } static void _draw_contents(struct _priv *priv, int id, app_media_info *mi) @@ -404,8 +428,10 @@ static void _set_played_position(struct _priv *priv, int position) } r = video_meta_update_to_db(video); - if (r != MEDIA_CONTENT_ERROR_NONE) + if (r != MEDIA_CONTENT_ERROR_NONE) { _ERR("failed to update db"); + return; + } app_media_update(am); } @@ -468,8 +494,6 @@ static bool _viewer_show(struct _priv *priv) _draw_contents(priv, id, mi); - app_contents_recent_add(CONTENTS_MEDIA, mi->media_id); - return true; } @@ -684,6 +708,8 @@ static void _player_play(struct _priv *priv) playermgr_play(priv->player, mi->file_path, mi->video->position); + _add_to_recent(priv); + break; default: _ERR("player was not created"); -- 2.7.4 From f27b05b1d3cfae299ce5f9eb092578d48fc29e5d Mon Sep 17 00:00:00 2001 From: Jehun Lim Date: Fri, 24 Jul 2015 14:39:35 +0900 Subject: [PATCH 06/16] movie: modify the method to get recently watched item Change-Id: I493d4314f25d3b86015254ca20202871569192ad Signed-off-by: Jehun Lim --- CMakeLists.txt | 1 - packaging/org.tizen.mediahub.spec | 1 - src/layout/movie.c | 49 +++++++++++---------------------------- 3 files changed, 13 insertions(+), 38 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1138f9e..9245e39 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,6 @@ PROJECT("mediahub" C) INCLUDE(FindPkgConfig) pkg_check_modules(PKGS REQUIRED - glib-2.0 elementary capi-appfw-application capi-media-player diff --git a/packaging/org.tizen.mediahub.spec b/packaging/org.tizen.mediahub.spec index 89f74f0..969283d 100644 --- a/packaging/org.tizen.mediahub.spec +++ b/packaging/org.tizen.mediahub.spec @@ -8,7 +8,6 @@ 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/src/layout/movie.c b/src/layout/movie.c index ceb236f..9d8d39a 100644 --- a/src/layout/movie.c +++ b/src/layout/movie.c @@ -14,11 +14,9 @@ * limitations under the License. */ -#include #include #include #include -#include #include #include #include @@ -386,49 +384,29 @@ static void _update_content_list(struct _priv *priv) _update_content_info(priv); } -static void _update_recent_item(struct _priv *priv) +static void _update_recent_item(struct _priv *priv, int index) { - GList *list; + Eina_List *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"); + list = mediadata_get_medialist(priv->md); + am = eina_list_nth(list, index); + if (!am) { + _ERR("failed to get app media"); 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; + info = app_media_get_info(am); + if (!info) { + _ERR("failed to get app media info"); + 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) @@ -593,7 +571,6 @@ 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 (!vdata) { @@ -602,7 +579,7 @@ static void _update(void *layout_data, int update_type, void *data) } listmgr_focus_play_info(priv->listmgr); - _update_recent_item(priv); + _update_recent_item(priv, vdata->index); break; default: break; -- 2.7.4 From acab3c486e748a45be0a8083943e0dd7168e7922 Mon Sep 17 00:00:00 2001 From: Minkyu Kang Date: Fri, 24 Jul 2015 14:45:39 +0900 Subject: [PATCH 07/16] musicplayer: modify play icon Change-Id: Ia2b079afa852632d68fa65f38fe46440ff523ba4 Signed-off-by: Minkyu Kang --- include/view/mplayer.h | 4 ++-- res/edc/images/ic_mini_player_play_foc.png | Bin 0 -> 3609 bytes res/edc/images/ic_mini_player_play_nor.png | Bin 0 -> 2003 bytes res/edc/images/ic_music_list_play.png | Bin 807 -> 0 bytes res/edc/images/ic_music_list_play_foc.png | Bin 687 -> 0 bytes res/edc/widgets/genlist.edc | 10 ++++------ src/view/mplayer.c | 11 ++++------- 7 files changed, 10 insertions(+), 15 deletions(-) create mode 100644 res/edc/images/ic_mini_player_play_foc.png create mode 100644 res/edc/images/ic_mini_player_play_nor.png delete mode 100644 res/edc/images/ic_music_list_play.png delete mode 100644 res/edc/images/ic_music_list_play_foc.png diff --git a/include/view/mplayer.h b/include/view/mplayer.h index 988daf9..94d9897 100644 --- a/include/view/mplayer.h +++ b/include/view/mplayer.h @@ -61,7 +61,7 @@ #define IMAGE_MUSIC_SHUFFLE_DIS_NORMAL "btn_music_contr_shuffle_dis.png" #define IMAGE_MUSIC_REPEAT_FOCUS "btn_music_contr_repeat_foc.png" #define IMAGE_MUSIC_REPEAT_NORMAL "btn_music_contr_repeat_nor.png" -#define IMAGE_MUSIC_LIST_PLAY "ic_music_list_play.png" -#define IMAGE_MUSIC_LIST_PLAY_FOC "ic_music_list_play_foc.png" +#define IMAGE_MUSIC_LIST_PLAY "ic_mini_player_play_nor.png" +#define IMAGE_MUSIC_LIST_PLAY_FOC "ic_mini_player_play_foc.png" #endif diff --git a/res/edc/images/ic_mini_player_play_foc.png b/res/edc/images/ic_mini_player_play_foc.png new file mode 100644 index 0000000000000000000000000000000000000000..bf5d08e85a183c82036a7bf94babf7c3bd25337e GIT binary patch literal 3609 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 literal 0 HcmV?d00001 diff --git a/res/edc/images/ic_mini_player_play_nor.png b/res/edc/images/ic_mini_player_play_nor.png new file mode 100644 index 0000000000000000000000000000000000000000..c06083062e45879abe96ca10e814fa13e03f7aca GIT binary patch literal 2003 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 diff --git a/res/edc/images/ic_music_list_play_foc.png b/res/edc/images/ic_music_list_play_foc.png deleted file mode 100644 index cced49401316ff3afed36a78e81d2d8d21fb981f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 687 zcmV;g0#N;lP)dftjn0U^r_ndjAXYSndo(Z6fwVn&+sm~aVYF1Oasq4Bd z$4KJ&aBT29KmEO1n1pq8wut1y${qz$d&H@`)02D~H2OMA( zfC_1bJ#RNmiV6U$4737<*#)XB5%PH$wue}v3hWX#0mBr53X?{d*oXf#i8$7I@SZPKY#+YXnBAVKLM-a0rVUi zrUIIE+t+XdrP`#{{cAjf|2geyKd_kg$VGdu!DTLJ;T@R&Z2 zoKfJb3p@iuGibKg9yuZ4%-xjE?58Pc11(7-ZNZMTsCkd|5lP=W-;}3Z^~s3?`)vB=s`y^`pzVy zoeO>0Ec8M|*aNDpv>Zj2sRDb=I{s(srQgF+%I8%dBt^O1VafIxiuG}Bois7R1PKx* zMw<2dI9GIcwl&ZmIJbQUPT1z5-@q9#4((CRYf3kCO(T+y^;tz_l`)OPf&cz1;1>}T VOB41>-kbmc002ovPDHLkV1gAqH_ZS5 diff --git a/res/edc/widgets/genlist.edc b/res/edc/widgets/genlist.edc index c93f86d..3e035dc 100644 --- a/res/edc/widgets/genlist.edc +++ b/res/edc/widgets/genlist.edc @@ -14,7 +14,7 @@ * limitations under the License. */ -#define LIST_TRANSITION_TIME 0.30 +#define LIST_TRANSITION_TIME 0.35 group { name: "elm/genlist/item/music_list/default"; @@ -84,7 +84,7 @@ group { description { state: "default" 0.1; inherit: "default" 0.0; - min: 40 140; + min: 54 140; } } part { @@ -93,7 +93,7 @@ group { scale: 1; description { state: "default" 0.0; - min: 40 40; + min: 54 54; rel1 { to: "image_bg"; relative: 0.5 0.5; @@ -109,7 +109,6 @@ group { description { state: "default" 0.1; inherit: "default" 0.0; - min: 40 40; fixed: 1 1; image.normal: IMAGE_MUSIC_LIST_PLAY; visible: 1; @@ -117,7 +116,6 @@ group { description { state: "focused" 0.1; inherit: "default" 0.0; - min: 40 40; fixed: 1 1; image.normal: IMAGE_MUSIC_LIST_PLAY_FOC; visible: 1; @@ -143,7 +141,7 @@ group { description { state: "default" 0.1; inherit: "default" 0.0; - min: 28 140; + min: 18 140; } } part { diff --git a/src/view/mplayer.c b/src/view/mplayer.c index a548f46..64348ab 100644 --- a/src/view/mplayer.c +++ b/src/view/mplayer.c @@ -494,27 +494,24 @@ static void _list_item_del(void *data, Evas_Object *obj) static char *_list_text_get(void *data, Evas_Object *obj, const char *part) { struct _list_data *ld; - app_media *am; app_media_info *mi; - Elm_Object_Item *item; + int index; char buf[1024]; if (!data) return NULL; ld = data; - am = ld->am; - item = ld->item; + index = elm_genlist_item_index_get(ld->item); - mi = app_media_get_info(am); + mi = app_media_get_info(ld->am); if (!mi) { _ERR("failed to get media info"); return NULL; } if (!strcmp(part, PART_ELM_TEXT_TITLE)) { - snprintf(buf, sizeof(buf), "%02d. %s", - elm_genlist_item_index_get(item), mi->title); + snprintf(buf, sizeof(buf), "%02d. %s", index, mi->title); } else if (!strcmp(part, PART_ELM_TEXT_ARTIST)) { snprintf(buf, sizeof(buf), "%s / %s", mi->audio->artist, mi->audio->album); -- 2.7.4 From 9a87a3906e2a63ffa1a7c1afbdd3d29436234c82 Mon Sep 17 00:00:00 2001 From: Minkyu Kang Date: Fri, 24 Jul 2015 15:15:59 +0900 Subject: [PATCH 08/16] workaround: modify query string (due to sqlite bug) Change-Id: Ic020e02c5331426ae6bade8d320eb7427174449d Signed-off-by: Minkyu Kang --- src/layout/gallery.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/layout/gallery.c b/src/layout/gallery.c index 3e3e839..0cd9130 100644 --- a/src/layout/gallery.c +++ b/src/layout/gallery.c @@ -28,8 +28,12 @@ #include "util/listmgr.h" #include "util/util.h" +/* + FIXME #define LIST_MEDIA_COND "media_type=0 OR \ (media_type=1 AND copyright LIKE \"Unknown\")" +*/ +#define LIST_MEDIA_COND "(media_type=0 OR media_type=1) AND copyright LIKE \"Unknown\"" #define TEXT_NOCONTENT "No Photo & Video" -- 2.7.4 From 52c9f5586b35dac146e25d0b732af80a9cf26bb9 Mon Sep 17 00:00:00 2001 From: Minkyu Kang Date: Fri, 24 Jul 2015 18:10:29 +0900 Subject: [PATCH 09/16] stop the musicplayer when play the video Change-Id: Ib6534edb2ec8a94f292a77f7d7adac86a546c644 Signed-off-by: Minkyu Kang --- src/view/mplayer.c | 8 +++----- src/view/viewer.c | 6 ++++++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/view/mplayer.c b/src/view/mplayer.c index 64348ab..a981523 100644 --- a/src/view/mplayer.c +++ b/src/view/mplayer.c @@ -816,16 +816,14 @@ static void _update(void *view_data, int update_type, void *data) return; } - if (!data) { - _ERR("invalid parameter"); - return; - } - priv = view_data; vdata = data; switch (update_type) { case UPDATE_CONTENT: + if (!vdata) + break; + priv->playlist.list = vdata->list; priv->playlist.cur = vdata->index; diff --git a/src/view/viewer.c b/src/view/viewer.c index 2948ec7..91553d6 100644 --- a/src/view/viewer.c +++ b/src/view/viewer.c @@ -436,6 +436,11 @@ static void _set_played_position(struct _priv *priv, int position) app_media_update(am); } +static void _update_to_player(struct _priv *priv) +{ + viewmgr_update_view(VIEW_MPLAYER, UPDATE_PLAYER, NULL); +} + static bool _viewer_show(struct _priv *priv) { struct _viewer_info *info; @@ -703,6 +708,7 @@ static void _player_play(struct _priv *priv) } _remove_thumbnail(priv); + _update_to_player(priv); progressbar_start(priv->progress); playermgr_play(priv->player, mi->file_path, -- 2.7.4 From f68cea1063321fc0bc1ecfa18f22eabc2280b082 Mon Sep 17 00:00:00 2001 From: Minkyu Kang Date: Fri, 24 Jul 2015 18:56:51 +0900 Subject: [PATCH 10/16] player: don't use playermgr callbacks It can be occurred some problems. Change-Id: Id0361d5078d0fda73fb059888fc49ef7c6cd4d2c Signed-off-by: Minkyu Kang --- src/view/viewer.c | 42 +++++++++--------------------------------- 1 file changed, 9 insertions(+), 33 deletions(-) diff --git a/src/view/viewer.c b/src/view/viewer.c index 91553d6..2674c58 100644 --- a/src/view/viewer.c +++ b/src/view/viewer.c @@ -679,10 +679,6 @@ static int _player_get_position(void *data) return playermgr_get_position(priv->player); } -static struct progressbar_ops _progressbar_ops = { - .get_value = _player_get_position, -}; - static void _player_play(struct _priv *priv) { app_media_info *mi; @@ -754,27 +750,16 @@ static void _player_complete_cb(void *data) if (priv->viewer.cur == VIEWER_MOVIE) _pop_view(priv); - else if (priv->viewer.cur == VIEWER_VIDEO) + else if (priv->viewer.cur == VIEWER_VIDEO) { _viewer_show(priv); + _show_bar(data); + } } -static void _player_set_position_cb(void *data) -{ - struct _priv *priv; - struct controller *ctl; - - if (!data) - return; - - priv = data; - - /* FIXME: what will you do here? */ - progressbar_pause(priv->progress); - playermgr_pause(priv->player); - - ctl = priv->viewer.ctl[priv->viewer.cur]; - ctl->ops->signal(ctl->handle, PLAY_BTN_LOC, SIG_SET_PLAY); -} +static struct progressbar_ops _progressbar_ops = { + .get_value = _player_get_position, + .complete_cb = _player_complete_cb, +}; static void _callback_movie(void *data, const char *ev) { @@ -787,12 +772,10 @@ static void _callback_movie(void *data, const char *ev) priv = data; if (!strcmp(ev, SRC_BTN_PREV)) { - playermgr_set_position(priv->player, 0, - _player_set_position_cb, priv); + playermgr_set_position(priv->player, 0, NULL, NULL); } else if (!strcmp(ev, SRC_BTN_NEXT)) { ms = playermgr_get_duration(priv->player); - playermgr_set_position(priv->player, ms - 1000, - _player_set_position_cb, priv); + playermgr_set_position(priv->player, ms - 500, NULL, NULL); } else if (!strcmp(ev, SRC_BTN_PLAY)) { _player_play(priv); } @@ -915,13 +898,6 @@ static Evas_Object *_create(Evas_Object *win, void *data) return NULL; } - r = playermgr_set_completed_cb(player, _player_complete_cb, priv); - if (!r) { - _ERR("failed to set callback"); - playermgr_destroy(player); - return NULL; - } - priv->player = player; r = _ui_init(priv); -- 2.7.4 From de440fa5ec040f93aa6ed003b4bc4bf244e764d4 Mon Sep 17 00:00:00 2001 From: Minkyu Kang Date: Fri, 24 Jul 2015 19:26:11 +0900 Subject: [PATCH 11/16] timeout_handler: set to NULL before returning Change-Id: Ie330ba933aff88f0020401d0f3b66dc7b18d1466 Signed-off-by: Minkyu Kang --- src/util/timeout_handler.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/util/timeout_handler.c b/src/util/timeout_handler.c index c4805f1..d66ac3b 100644 --- a/src/util/timeout_handler.c +++ b/src/util/timeout_handler.c @@ -43,11 +43,12 @@ static Eina_Bool _timer_cb(void *data) handle = data; + handle->timer = NULL; + if (!handle->enable) return ECORE_CALLBACK_CANCEL; handle->timeout_cb(handle->timeout_data, 0, NULL); - handle->timer = NULL; return ECORE_CALLBACK_CANCEL; } -- 2.7.4 From e92311588d7b21c348d4cccb19798abb879e1e72 Mon Sep 17 00:00:00 2001 From: Minkyu Kang Date: Mon, 27 Jul 2015 10:10:54 +0900 Subject: [PATCH 12/16] fix transition values Change-Id: Id5f7328452b503b8e61026575e08bde4398c0d6a Signed-off-by: Minkyu Kang --- include/define.h | 6 ++++++ res/edc/view/viewer.edc | 6 ++---- res/edc/widgets/button.edc | 52 ++++++++++++++++++++++----------------------- res/edc/widgets/gengrid.edc | 24 ++++++++++----------- res/edc/widgets/genlist.edc | 6 ++---- 5 files changed, 47 insertions(+), 47 deletions(-) diff --git a/include/define.h b/include/define.h index 64d7cca..7be9410 100644 --- a/include/define.h +++ b/include/define.h @@ -73,4 +73,10 @@ #define SIG_SOURCE_ELM "elm" #define SIG_SOURCE_SRC "src" +/* transition */ +#define TRANSITION_FOCUS DECELERATE 0.20 +#define TRANSITION_CLICK DECELERATE 0.20 +#define TRANSITION_SHOW_BAR LINEAR 0.20 +#define TRANSITION_SHOW_ICON LINEAR 0.35 + #endif /* __AIR_MEDIAHUB_DEFINE_H__ */ diff --git a/res/edc/view/viewer.edc b/res/edc/view/viewer.edc index 7bd52c4..ead1612 100644 --- a/res/edc/view/viewer.edc +++ b/res/edc/view/viewer.edc @@ -14,8 +14,6 @@ * limitations under the License. */ -#define TRANSITION_TIME 0.25 - group { name: GRP_VIEWER_VIEW; images { @@ -489,7 +487,7 @@ group { target: "toparea"; target: "bottomarea"; target: PART_VIEWER_SLIDER; - transition: LINEAR TRANSITION_TIME; + transition: TRANSITION_SHOW_BAR; } program { name: SIG_SHOW_BAR; @@ -499,7 +497,7 @@ group { target: "toparea"; target: "bottomarea"; target: PART_VIEWER_SLIDER; - transition: LINEAR TRANSITION_TIME; + transition: TRANSITION_SHOW_BAR; after: SIG_SHOWED_BAR; } program { diff --git a/res/edc/widgets/button.edc b/res/edc/widgets/button.edc index c67bfc2..b41e7ff 100644 --- a/res/edc/widgets/button.edc +++ b/res/edc/widgets/button.edc @@ -21,8 +21,6 @@ #define STATE_PLAY 0 #define STATE_PAUSE 1 -#define TRANSITION_TIME 0.17 - group { name: "elm/button/base/base_btn_menu"; data.item: "focus_highlight" "on"; @@ -219,7 +217,7 @@ group { target: "bg_left"; target: "bg_right"; target: "elm.text"; - transition: LINEAR TRANSITION_TIME; + transition: TRANSITION_FOCUS; } program { name: "unfocused"; @@ -245,7 +243,7 @@ group { target: "bg_left"; target: "bg_right"; target: "elm.text"; - transition: LINEAR TRANSITION_TIME; + transition: TRANSITION_FOCUS; } program { name: "unfocus,foc,anim"; @@ -254,7 +252,7 @@ group { target: "bg_left"; target: "bg_right"; target: "elm.text"; - transition: LINEAR TRANSITION_TIME; + transition: TRANSITION_FOCUS; } program { name: "selected"; @@ -273,7 +271,7 @@ group { target: "bg_left"; target: "bg_right"; target: "elm.text"; - transition: LINEAR TRANSITION_TIME; + transition: TRANSITION_FOCUS; } program { name: "unselected"; @@ -292,7 +290,7 @@ group { target: "bg_left"; target: "bg_right"; target: "elm.text"; - transition: LINEAR TRANSITION_TIME; + transition: TRANSITION_FOCUS; } } } @@ -365,7 +363,7 @@ group { action: STATE_SET "focused" 0.0; target: "bg_text"; target: "elm.text"; - transition: LINEAR TRANSITION_TIME; + transition: TRANSITION_FOCUS; } program { name: "unfocused"; @@ -374,7 +372,7 @@ group { action: STATE_SET "default" 0.0; target: "bg_text"; target: "elm.text"; - transition: LINEAR TRANSITION_TIME; + transition: TRANSITION_FOCUS; } } } @@ -442,7 +440,7 @@ group { action: STATE_SET "selected" 0.0; target: "bg"; target: "color"; - transition: LINEAR TRANSITION_TIME; + transition: TRANSITION_FOCUS; } program { name: "unfocused"; @@ -451,7 +449,7 @@ group { action: STATE_SET "default" 0.0; target: "bg"; target: "color"; - transition: LINEAR TRANSITION_TIME; + transition: TRANSITION_FOCUS; } } } @@ -771,28 +769,28 @@ group { action: STATE_SET "selected" 0.0; target: "bg"; target: "color"; - transition: LINEAR TRANSITION_TIME; + transition: TRANSITION_FOCUS; } program { name: "focused,pause"; action: STATE_SET "selected_pause" 0.0; target: "bg"; target: "color"; - transition: LINEAR TRANSITION_TIME; + transition: TRANSITION_FOCUS; } program { name: "unfocused,play"; action: STATE_SET "default" 0.0; target: "bg"; target: "color"; - transition: LINEAR TRANSITION_TIME; + transition: TRANSITION_FOCUS; } program { name: "unfocused,pause"; action: STATE_SET "default_pause" 0.0; target: "bg"; target: "color"; - transition: LINEAR TRANSITION_TIME; + transition: TRANSITION_FOCUS; } } } @@ -1013,28 +1011,28 @@ group { action: STATE_SET "selected" 0.0; target: "bg"; target: "color"; - transition: LINEAR TRANSITION_TIME; + transition: TRANSITION_FOCUS; } program { name: "focused,pause"; action: STATE_SET "selected_pause" 0.0; target: "bg"; target: "color"; - transition: LINEAR TRANSITION_TIME; + transition: TRANSITION_FOCUS; } program { name: "unfocused,play"; action: STATE_SET "default" 0.0; target: "bg"; target: "color"; - transition: LINEAR TRANSITION_TIME; + transition: TRANSITION_FOCUS; } program { name: "unfocused,pause"; action: STATE_SET "default_pause" 0.0; target: "bg"; target: "color"; - transition: LINEAR TRANSITION_TIME; + transition: TRANSITION_FOCUS; } } } @@ -1569,7 +1567,7 @@ group { target: "part_focus2"; target: "part_focus3"; target: "bg_text"; - transition: LINEAR 0.17; + transition: TRANSITION_FOCUS; after: "focus,in,anim,2"; } program { @@ -1594,7 +1592,7 @@ group { target: "part_focus2"; target: "part_focus3"; target: "bg_text"; - transition: LINEAR 0.17; + transition: TRANSITION_FOCUS; after: "focus,out,anim,2"; } program { @@ -1622,14 +1620,14 @@ group { source: SIG_SOURCE_SRC; action: STATE_SET "selected" 0.0; target: "map"; - transition: DECELERATE 0.2; + transition: TRANSITION_CLICK; after: "after_selected"; } program { name: "after_selected"; action: STATE_SET "default" 0.0; target: "map"; - transition: DECELERATE 0.2; + transition: TRANSITION_CLICK; after: "item_selected"; } program { @@ -2167,7 +2165,7 @@ group { target: PART_PLAYING_CONTENT_TITLE; target: PART_PLAYING_CONTENT_ARTIST; target: PART_PLAYING_CONTENT_ALBUM; - transition: LINEAR 0.17; + transition: TRANSITION_FOCUS; after: "focus,in,anim,2"; } program { @@ -2193,7 +2191,7 @@ group { target: "part_focus2"; target: "part_focus3"; target: "bg_text"; - transition: LINEAR 0.17; + transition: TRANSITION_FOCUS; after: "focus,out,anim,2"; } program { @@ -2217,14 +2215,14 @@ group { source: SIG_SOURCE_SRC; action: STATE_SET "selected" 0.0; target: "map"; - transition: DECELERATE 0.2; + transition: TRANSITION_CLICK; after: "after_selected"; } program { name: "after_selected"; action: STATE_SET "default" 0.0; target: "map"; - transition: DECELERATE 0.2; + transition: TRANSITION_CLICK; after: "item_selected"; } program { diff --git a/res/edc/widgets/gengrid.edc b/res/edc/widgets/gengrid.edc index b298f33..9ba63a0 100644 --- a/res/edc/widgets/gengrid.edc +++ b/res/edc/widgets/gengrid.edc @@ -400,7 +400,7 @@ group { target: "part_focus2"; target: "part_focus3"; target: "elm.bg.text"; - transition: LINEAR 0.17; + transition: TRANSITION_FOCUS; after: "focus,in,anim,2"; } program { @@ -424,7 +424,7 @@ group { target: "part_focus2"; target: "part_focus3"; target: "elm.bg.text"; - transition: LINEAR 0.17; + transition: TRANSITION_FOCUS; after: "focus,out,anim,2"; } program { @@ -444,14 +444,14 @@ group { source: "elm"; action: STATE_SET "selected" 0.0; target: "map"; - transition: DECELERATE 0.2; + transition: TRANSITION_CLICK; after: "after_selected"; } program { name: "after_selected"; action: STATE_SET "default" 0.0; target: "map"; - transition: DECELERATE 0.2; + transition: TRANSITION_CLICK; after: "item_selected"; } program { @@ -832,7 +832,7 @@ group { target: "part_focus3"; target: "part_focus4"; target: PART_ELM_TEXT_PLAYTIME; - transition: LINEAR 0.17; + transition: TRANSITION_FOCUS; } program { name: "go_passive"; @@ -843,7 +843,7 @@ group { target: "part_focus2"; target: "part_focus3"; target: "part_focus4"; - transition: LINEAR 0.17; + transition: TRANSITION_FOCUS; after: "focus,out,anim"; } program { @@ -865,14 +865,14 @@ group { source: "elm"; action: STATE_SET "selected" 0.0; target: "map"; - transition: DECELERATE 0.2; + transition: TRANSITION_CLICK; after: "after_selected"; } program { name: "after_selected"; action: STATE_SET "default" 0.0; target: "map"; - transition: DECELERATE 0.2; + transition: TRANSITION_CLICK; after: "item_selected"; } program { @@ -1472,7 +1472,7 @@ group { target: "part_focus2"; target: "part_focus3"; target: "elm.bg.text"; - transition: LINEAR 0.17; + transition: TRANSITION_FOCUS; after: "focus,in,anim,2"; } program { @@ -1498,7 +1498,7 @@ group { target: "part_focus2"; target: "part_focus3"; target: "elm.bg.text"; - transition: LINEAR 0.17; + transition: TRANSITION_FOCUS; after: "focus,out,anim,2"; } program { @@ -1518,14 +1518,14 @@ group { source: "elm"; action: STATE_SET "selected" 0.0; target: "map"; - transition: DECELERATE 0.2; + transition: TRANSITION_CLICK; after: "after_selected"; } program { name: "after_selected"; action: STATE_SET "default" 0.0; target: "map"; - transition: DECELERATE 0.2; + transition: TRANSITION_CLICK; after: "item_selected"; } program { diff --git a/res/edc/widgets/genlist.edc b/res/edc/widgets/genlist.edc index 3e035dc..7309809 100644 --- a/res/edc/widgets/genlist.edc +++ b/res/edc/widgets/genlist.edc @@ -14,8 +14,6 @@ * limitations under the License. */ -#define LIST_TRANSITION_TIME 0.35 - group { name: "elm/genlist/item/music_list/default"; data.item: "selectraise" "on"; @@ -340,7 +338,7 @@ group { target: "image_padding"; target: "image_bg"; target: "time_padding"; - transition: LINEAR LIST_TRANSITION_TIME; + transition: TRANSITION_SHOW_ICON; after: "select,image"; } program { @@ -368,7 +366,7 @@ group { target: "image_padding"; target: "image_bg"; target: "time_padding"; - transition: LINEAR LIST_TRANSITION_TIME; + transition: TRANSITION_SHOW_ICON; } } } -- 2.7.4 From a6ba9214024dfd477565feb29560844e82f2d527 Mon Sep 17 00:00:00 2001 From: Jehun Lim Date: Thu, 23 Jul 2015 21:25:04 +0900 Subject: [PATCH 13/16] base: add favorite icon Change-Id: I3e5e526d47513c0b8114d78d944f1e489a250518 Signed-off-by: Jehun Lim --- include/define.h | 1 + include/layout/movie.h | 5 + include/layout/music.h | 5 + include/view/base.h | 2 + res/edc/widgets/button.edc | 242 ++++++++++++++++++++++++++++++++++- res/edc/widgets/gengrid.edc | 197 ++++++++++++++++++++++------ res/images/ic_thumbnail_favorite.png | Bin 0 -> 1039 bytes src/layout/gallery.c | 18 +++ src/layout/movie.c | 33 ++++- src/layout/music.c | 19 +++ 10 files changed, 477 insertions(+), 45 deletions(-) create mode 100644 res/images/ic_thumbnail_favorite.png diff --git a/include/define.h b/include/define.h index 7be9410..077b1c6 100644 --- a/include/define.h +++ b/include/define.h @@ -61,6 +61,7 @@ #define PART_ELM_TEXT_PLAYTIME "elm.text.playtime" #define PART_ELM_SWALLOW_THUMBNAIL "elm.swallow.thumbnail" #define PART_ELM_SWALLOW_VIDEO "elm.swallow.video" +#define PART_ELM_SWALLOW_FAVORITE "elm.swallow.favorite" /* signal */ #define SIG_BTN_CLICKED "btn,clicked" diff --git a/include/layout/movie.h b/include/layout/movie.h index 8d45163..2712ba6 100644 --- a/include/layout/movie.h +++ b/include/layout/movie.h @@ -29,12 +29,17 @@ #define PART_NOCONTENT "part.nocontent" #define PART_CONTENT_INFO "part.content_info" #define PART_RECENT_CONTENT_THUMBNAIL "part.recent_content_thumbnail" +#define PART_RECENT_CONTENT_FAVORITE "part.recent_content_favorite" #define PART_RECENT_CONTENT_TITLE "part.recent_content_title" #define PART_RECENT_CONTENT_DATE "part.recent_content_date" #define PART_RECENT_CONTENT_PROGRESS "part.recent_content_progress" #define PART_RECENT_CONTENT_TOTAL "part.recent_content_total" #define PART_RECENT_CONTENT_SLIDER "part.recent_content_slider" +/* signal */ +#define SIG_RECENT_SHOW_FAV "show,favorite" +#define SIG_RECENT_HIDE_FAV "hide,favorite" + /* style */ #define STYLE_GRID_MOVIE_ITEM "movie_item" #define STYLE_BTN_RECENT_CONTENT "base_btn_recent" diff --git a/include/layout/music.h b/include/layout/music.h index 8d10464..f08ceab 100644 --- a/include/layout/music.h +++ b/include/layout/music.h @@ -25,10 +25,15 @@ /* part */ #define PART_PLAYING_CONTENT_THUMBNAIL "part.playing_content_thumbnail" +#define PART_PLAYING_CONTENT_FAVORITE "part.playing_content_favorite" #define PART_PLAYING_CONTENT_TITLE "part.playing_content_title" #define PART_PLAYING_CONTENT_ARTIST "part.playing_content_artist" #define PART_PLAYING_CONTENT_ALBUM "part.playing_content_album" +/* signal */ +#define SIG_PLAYING_SHOW_FAV "show,favorite" +#define SIG_PLAYING_HIDE_FAV "hide,favorite" + /* style */ #define STYLE_GRID_SONG_ITEM "song_item" #define STYLE_BTN_PLAYING_CONTENT "base_btn_playing" diff --git a/include/view/base.h b/include/view/base.h index c7f791a..d30855c 100644 --- a/include/view/base.h +++ b/include/view/base.h @@ -37,6 +37,8 @@ #define IMAGE_THUMBNAIL_PICTURE "ic_thumbnail_picture.png" #define IMAGE_THUMBNAIL_SONG "ic_thumbnail_song.png" #define IMAGE_THUMBNAIL_PLAY IMAGEDIR"/ic_thumbnail_play.png" +#define IMAGE_THUMBNAIL_FAVORITE IMAGEDIR"/ic_thumbnail_favorite.png" +#define IMAGE_PLAY_INFO_FAVORITE "ic_title_favorite.png" /* style */ #define STYLE_BTN_MENU "base_btn_menu" diff --git a/res/edc/widgets/button.edc b/res/edc/widgets/button.edc index b41e7ff..b629783 100644 --- a/res/edc/widgets/button.edc +++ b/res/edc/widgets/button.edc @@ -18,6 +18,9 @@ #define STATE_FOCUSED 1 #define STATE_SELECTED 2 +#define STATE_SHOW 0 +#define STATE_HIDE 1 + #define STATE_PLAY 0 #define STATE_PAUSE 1 @@ -1042,6 +1045,10 @@ group { data.item, "focus_highlight" "on"; images { image: IMAGE_PREVIEW_PLAY COMP; + image: IMAGE_PLAY_INFO_FAVORITE COMP; + } + script { + public fav_state; } parts { part { @@ -1123,6 +1130,66 @@ group { } } part { + name: "padding_favorite"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + rel1 { + to: "bg"; + relative: 1.0 0.0; + } + rel2 { + to: "bg"; + relative: 1.0 0.0; + } + min: 14 18; + align: 1.0 0.0; + fixed: 1 1; + } + } + part { + name: PART_RECENT_CONTENT_FAVORITE; + type: IMAGE; + scale: 1; + description { + state: "default" 0.0; + rel1 { + to: "padding_favorite"; + relative: 0.0 1.0; + } + rel2 { + to: "padding_favorite"; + relative: 0.0 1.0; + } + min: 42 42; + align: 1.0 0.0; + color: 255 255 255 150; + fixed: 1 1; + visible: 0; + map { + perspective_on: 1; + perspective: "map"; + } + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + image.normal: IMAGE_PLAY_INFO_FAVORITE; + visible: 1; + } + description { + state: "default,selected" 0.0; + inherit: "default" 0.0; + map.on: 1; + } + description { + state: "show,selected" 0.0; + inherit: "show" 0.0; + map.on: 1; + } + } + part { name: "part_focus1"; type: RECT; mouse_events: 0; @@ -1543,6 +1610,14 @@ group { } programs { program { + name: "load"; + signal: "load"; + source: ""; + script { + set_int(fav_state, STATE_HIDE); + } + } + program { name: "go_active"; signal: "elm,action,focus"; source: "elm"; @@ -1572,13 +1647,38 @@ group { } program { name: "focus,in,anim,2"; - action: STATE_SET "selected" 0.0; - target: "defaultbg_text"; + script { + new state; + state = get_int(fav_state); + if (state == STATE_SHOW) { + set_state(PART:PART_RECENT_CONTENT_FAVORITE, + "show,selected", 0.0); + } else { + set_state(PART:PART_RECENT_CONTENT_FAVORITE, + "default,selected", 0.0); + } + set_state(PART:"defaultbg_text", "selected", 0.0); + } } program { name: "go_passive"; signal: "elm,action,unfocus"; source: "elm"; + script { + new state; + state = get_int(fav_state); + if (state == STATE_SHOW) { + set_state(PART:PART_RECENT_CONTENT_FAVORITE, + "show", 0.0); + } else { + set_state(PART:PART_RECENT_CONTENT_FAVORITE, + "default", 0.0); + } + run_program(PROGRAM:"focus,out,anim,start"); + } + } + program { + name: "focus,out,anim,start"; action: STATE_SET "default" 0.0; target: PART_RECENT_CONTENT_TITLE; target: PART_RECENT_CONTENT_DATE; @@ -1634,6 +1734,26 @@ group { name: "item_selected"; action: SIGNAL_EMIT SIG_ITEM_SELECTED SIG_SOURCE_EDC; } + program { + name: SIG_RECENT_SHOW_FAV; + signal: SIG_RECENT_SHOW_FAV; + source: SIG_SOURCE_SRC; + script { + set_int(fav_state, STATE_SHOW); + set_state(PART:PART_RECENT_CONTENT_FAVORITE, + "show", 0.0); + } + } + program { + name: SIG_RECENT_HIDE_FAV; + signal: SIG_RECENT_HIDE_FAV; + source: SIG_SOURCE_SRC; + script { + set_int(fav_state, STATE_HIDE); + set_state(PART:PART_RECENT_CONTENT_FAVORITE, + "default", 0.0); + } + } } } @@ -1642,6 +1762,10 @@ group { data.item, "focus_highlight" "on"; images { image: IMAGE_PREVIEW_PLAY COMP; + image: IMAGE_PLAY_INFO_FAVORITE COMP; + } + script { + public fav_state; } parts { part { @@ -1707,6 +1831,63 @@ group { } } part { + name: "padding_favorite"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + rel1.to: "bg_padding"; + rel2 { + to: "bg_padding"; + relative: 0.0 0.0; + } + min: 14 18; + align: 1.0 0.0; + fixed: 1 1; + } + } + part { + name: PART_PLAYING_CONTENT_FAVORITE; + type: IMAGE; + scale: 1; + description { + state: "default" 0.0; + rel1 { + to: "padding_favorite"; + relative: 0.0 1.0; + } + rel2 { + to: "padding_favorite"; + relative: 0.0 1.0; + } + min: 42 42; + align: 1.0 0.0; + color: 255 255 255 150; + fixed: 1 1; + visible: 0; + map { + perspective_on: 1; + perspective: "map"; + } + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + image.normal: IMAGE_PLAY_INFO_FAVORITE; + visible: 1; + } + description { + state: "default,selected" 0.0; + inherit: "default" 0.0; + map.on: 1; + } + description { + state: "show,selected" 0.0; + inherit: "show" 0.0; + map.on: 1; + } + } + part { name: "part_focus1"; type: RECT; mouse_events: 0; @@ -2144,6 +2325,14 @@ group { } programs { program { + name: "load"; + signal: "load"; + source: ""; + script { + set_int(fav_state, STATE_HIDE); + } + } + program { name: "go_active"; signal: "elm,action,focus"; source: "elm"; @@ -2170,13 +2359,38 @@ group { } program { name: "focus,in,anim,2"; - action: STATE_SET "selected" 0.0; - target: "defaultbg_text"; + script { + new state; + state = get_int(fav_state); + if (state == STATE_SHOW) { + set_state(PART:PART_PLAYING_CONTENT_FAVORITE, + "show,selected", 0.0); + } else { + set_state(PART:PART_PLAYING_CONTENT_FAVORITE, + "default,selected", 0.0); + } + set_state(PART:"defaultbg_text", "selected", 0.0); + } } program { name: "go_passive"; signal: "elm,action,unfocus"; source: "elm"; + script { + new state; + state = get_int(fav_state); + if (state == STATE_SHOW) { + set_state(PART:PART_PLAYING_CONTENT_FAVORITE, + "show", 0.0); + } else { + set_state(PART:PART_PLAYING_CONTENT_FAVORITE, + "default", 0.0); + } + run_program(PROGRAM:"focus,out,anim,start"); + } + } + program { + name: "focus,out,anim,start"; action: STATE_SET "default" 0.0; target: "defaultbg_text"; target: PART_PLAYING_CONTENT_TITLE; @@ -2229,5 +2443,25 @@ group { name: "item_selected"; action: SIGNAL_EMIT SIG_ITEM_SELECTED SIG_SOURCE_EDC; } + program { + name: SIG_PLAYING_SHOW_FAV; + signal: SIG_PLAYING_SHOW_FAV; + source: SIG_SOURCE_SRC; + script { + set_int(fav_state, STATE_SHOW); + set_state(PART:PART_PLAYING_CONTENT_FAVORITE, + "show", 0.0); + } + } + program { + name: SIG_PLAYING_HIDE_FAV; + signal: SIG_PLAYING_HIDE_FAV; + source: SIG_SOURCE_SRC; + script { + set_int(fav_state, STATE_HIDE); + set_state(PART:PART_PLAYING_CONTENT_FAVORITE, + "default", 0.0); + } + } } } diff --git a/res/edc/widgets/gengrid.edc b/res/edc/widgets/gengrid.edc index 9ba63a0..12f38ca 100644 --- a/res/edc/widgets/gengrid.edc +++ b/res/edc/widgets/gengrid.edc @@ -18,7 +18,7 @@ group { name: "elm/gengrid/item/movie_item/default"; data.item: "selectraise" "on"; data.item: "texts" "elm.text.title"; - data.item: "contents" "elm.swallow.thumbnail"; + data.item: "contents" "elm.swallow.thumbnail elm.swallow.favorite"; data.item: "focus_highlight" "on"; images { image: IMAGE_PREVIEW_PLAY COMP; @@ -140,6 +140,53 @@ group { } } part { + name: "padding_favorite"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + rel1 { + to: "defaultbg"; + relative: 1.0 0.0; + } + rel2 { + to: "defaultbg"; + relative: 1.0 0.0; + } + min: 14 18; + align: 1.0 0.0; + fixed: 1 1; + } + } + part { + name: PART_ELM_SWALLOW_FAVORITE; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { + to: "padding_favorite"; + relative: 0.0 1.0; + } + rel2 { + to: "padding_favorite"; + relative: 0.0 1.0; + } + min: 28 28; + align: 1.0 0.0; + fixed: 1 1; + map { + perspective_on: 1; + perspective: "map"; + } + } + description { + state: "selected" 0.0; + inherit: "default" 0.0; + map.on: 1; + } + } + part { name: "part_focus1"; type: RECT; mouse_events: 0; @@ -396,6 +443,7 @@ group { target: "defaultbg"; target: "default_image"; target: PART_ELM_SWALLOW_THUMBNAIL; + target: PART_ELM_SWALLOW_FAVORITE; target: "part_focus1"; target: "part_focus2"; target: "part_focus3"; @@ -431,6 +479,7 @@ group { name: "focus,out,anim,2"; action: STATE_SET "default" 0.0; target: PART_ELM_SWALLOW_THUMBNAIL; + target: PART_ELM_SWALLOW_FAVORITE; target: "defaultbg"; target: "default_image"; target: "part_focus1"; @@ -465,7 +514,7 @@ group { name: "elm/gengrid/item/gallery_item/default"; data.item: "selectraise" "on"; data.item: "texts" "elm.text.playtime"; - data.item: "contents" "elm.swallow.thumbnail elm.swallow.video"; + data.item: "contents" "elm.swallow.thumbnail elm.swallow.video elm.swallow.favorite"; data.item: "focus_highlight" "on"; images { image: IMAGE_THUMBNAIL_PICTURE COMP; @@ -613,6 +662,53 @@ group { } } part { + name: "padding_favorite"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + rel1 { + to: "defaultbg"; + relative: 1.0 0.0; + } + rel2 { + to: "defaultbg"; + relative: 1.0 0.0; + } + min: 8 8; + align: 1.0 0.0; + fixed: 1 1; + } + } + part { + name: PART_ELM_SWALLOW_FAVORITE; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { + to: "padding_favorite"; + relative: 0.0 1.0; + } + rel2 { + to: "padding_favorite"; + relative: 0.0 1.0; + } + min: 28 28; + align: 1.0 0.0; + fixed: 1 1; + map { + perspective_on: 1; + perspective: "map"; + } + } + description { + state: "selected" 0.0; + inherit: "default" 0.0; + map.on: 1; + } + } + part { name: "part_focus1"; type: RECT; mouse_events: 0; @@ -827,6 +923,7 @@ group { target: "default_image"; target: PART_ELM_SWALLOW_THUMBNAIL; target: PART_ELM_SWALLOW_VIDEO; + target: PART_ELM_SWALLOW_FAVORITE; target: "part_focus1"; target: "part_focus2"; target: "part_focus3"; @@ -851,6 +948,7 @@ group { action: STATE_SET "default" 0.0; target: PART_ELM_SWALLOW_THUMBNAIL; target: PART_ELM_SWALLOW_VIDEO; + target: PART_ELM_SWALLOW_FAVORITE; target: "defaultbg"; target: "default_image"; target: "part_focus1"; @@ -886,7 +984,7 @@ group { name: "elm/gengrid/item/song_item/default"; data.item: "selectraise" "on"; data.item: "texts" "elm.text.title elm.text.artist elm.text.album"; - data.item: "contents" "elm.swallow.thumbnail"; + data.item: "contents" "elm.swallow.thumbnail elm.swallow.favorite"; data.item: "focus_highlight" "on"; images { image: IMAGE_THUMBNAIL_SONG COMP; @@ -1198,16 +1296,13 @@ group { description { state: "default" 0.0; rel1 { - to: "elm.bg.text"; - relative: 1.0 0.0; + to: PART_ELM_SWALLOW_FAVORITE; + relative: 0.0 0.0; } rel2 { - to: "elm.bg.text"; - relative: 1.0 0.0; + to: PART_ELM_SWALLOW_FAVORITE; + relative: 0.0 0.0; } - min: 102 22; - align: 1.0 0.0; - fixed: 1 1; } } part { @@ -1250,7 +1345,7 @@ group { } } part { - name: "elm.padding.artist.left"; + name: "elm.padding.artist"; type: SPACER; scale: 1; description { @@ -1259,29 +1354,10 @@ group { to: PART_ELM_TEXT_TITLE; relative: 0.0 1.0; } - rel2 { - to: PART_ELM_TEXT_TITLE; - relative: 0.0 1.0; - } - min: 0 14; - align: 0.0 0.0; - fixed: 1 1; - } - } - part { - name: "elm.padding.artist.right"; - type: SPACER; - scale: 1; - description { - state: "default" 0.0; - rel1 { - to: PART_ELM_TEXT_TITLE; - relative: 1.0 1.0; - } rel2.to: PART_ELM_TEXT_TITLE; - min: 78 14; - align: 0.0 0.0; - fixed: 1 1; + min: 0 14; + align: 0.5 0.0; + fixed: 0 1; } } part { @@ -1291,10 +1367,10 @@ group { description { state: "default" 0.0; rel1 { - to: "elm.padding.artist.left"; - relative: 1.0 1.0; + to: "elm.padding.artist"; + relative: 0.0 1.0; } - rel2.to: "elm.padding.artist.right"; + rel2.to: "elm.padding.artist"; text { font: FONT_LIGHT; size: 24; @@ -1373,6 +1449,53 @@ group { } } part { + name: "padding_favorite"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + rel1 { + to: "defaultbg_text"; + relative: 1.0 0.0; + } + rel2 { + to: "defaultbg_text"; + relative: 1.0 0.0; + } + min: 15 22; + align: 1.0 0.0; + fixed: 1 1; + } + } + part { + name: PART_ELM_SWALLOW_FAVORITE; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { + to: "padding_favorite"; + relative: 0.0 1.0; + } + rel2 { + to: "padding_favorite"; + relative: 0.0 1.0; + } + min: 28 28; + align: 1.0 0.0; + fixed: 1 1; + map { + perspective_on: 1; + perspective: "map"; + } + } + description { + state: "selected" 0.0; + inherit: "default" 0.0; + map.on: 1; + } + } + part { name: "border_up"; type: RECT; scale: 1; @@ -1467,6 +1590,7 @@ group { action: STATE_SET "selected" 0.0; target: "defaultbg"; target: PART_ELM_SWALLOW_THUMBNAIL; + target: PART_ELM_SWALLOW_FAVORITE; target: "default_image"; target: "part_focus1"; target: "part_focus2"; @@ -1505,6 +1629,7 @@ group { name: "focus,out,anim,2"; action: STATE_SET "default" 0.0; target: PART_ELM_SWALLOW_THUMBNAIL; + target: PART_ELM_SWALLOW_FAVORITE; target: "default_image"; target: "defaultbg"; target: "part_focus1"; diff --git a/res/images/ic_thumbnail_favorite.png b/res/images/ic_thumbnail_favorite.png new file mode 100644 index 0000000000000000000000000000000000000000..4ac0e4b4415fdb288bfab2d215b199bd2bb0da30 GIT binary patch literal 1039 zcmV+q1n~QbP)(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ1`~<2+=oJhG=iYlTv-KISDgyp$ePiXQJ(Wlum6>`S@oDULCc z2}UZRUa=x-&wz^QST^mruz+$HUP?a-V0=%2B0wxgFL)`{`LKd)+KDNqSN8;HtUNfJ zb`B^-fB+C6=_(}R>S-&WUFQ(MAb@dWF)kueS9L(Zz>&EL zGQcbW@vf?vhzVB!OlcA91L3W)J7On>ha6Z7+&Jz8fTIb6uHJyH*XT%WC^5ia7>jK( znF+=UuC2DQ>bE}z@Tn$3P6Y3+`cdG<`OVRhc$^&uY!|;<>CiWwL@^w!7NOy_nT3nG9BUl&WwC#UCwKcYx(u9OMY znn7+ZI8&{eCy2VkZkj{t>~q-|ncvO4G)7>IoM%OqzJo8oykDYDJe*BC2UvGNCKBWqLNisUe;zi?p;EbhIG3-VU0H2y zI4zY>a0k?+2vqN;VR|g>>0vM-3=DFGV5Yd-I2swe$4sG8G}mg&(Of=wf4UG<+bs)n z2-&oA&{#Rx6VO;;FR5M{N@^_q)4-+K+P7G}&86tKO3h4Onyr1gvKApRpk5Y%-syVk z;!Xs9Jvv>k$d5|VMWS6zwJHSfES8$TGUG00*sfy!_b=~%2LQ`Oh|7DYyIBAL002ov JPDHLkV1lkN(Cq*K literal 0 HcmV?d00001 diff --git a/src/layout/gallery.c b/src/layout/gallery.c index 0cd9130..288a80b 100644 --- a/src/layout/gallery.c +++ b/src/layout/gallery.c @@ -43,6 +43,8 @@ #define BOX_PADDING 62 +#define IMAGE_FAVORITE_ALPHA 150 + struct _priv { Evas_Object *base; Evas_Object *layout; @@ -124,6 +126,22 @@ static Evas_Object *_grid_content_get(void *data, evas_object_show(image); } + } else if (!strcmp(part, PART_ELM_SWALLOW_FAVORITE)) { + int r, g, b, a; + + if (!info->favorite) + return NULL; + + image = util_add_image(obj, IMAGE_THUMBNAIL_FAVORITE); + if (!image) { + _ERR("failed to create image object"); + return NULL; + } + + evas_object_color_get(image, &r, &g, &b, &a); + evas_object_color_set(image, r, g, b, IMAGE_FAVORITE_ALPHA); + + evas_object_show(image); } return image; diff --git a/src/layout/movie.c b/src/layout/movie.c index 9d8d39a..c944dd4 100644 --- a/src/layout/movie.c +++ b/src/layout/movie.c @@ -40,6 +40,8 @@ #define BOX_PADDING 62 +#define IMAGE_FAVORITE_ALPHA 150 + struct _priv { Evas_Object *base; Evas_Object *layout; @@ -95,22 +97,36 @@ static Evas_Object *_grid_content_get(void *data, return NULL; am = data; + info = app_media_get_info(am); + if (!info) { + _ERR("failed to get media info"); + return NULL; + } image = NULL; if (!strcmp(part, PART_ELM_SWALLOW_THUMBNAIL)) { - info = app_media_get_info(am); - if (!info) { - _ERR("failed to get media info"); - evas_object_del(image); + image = util_add_image(obj, info->thumbnail_path); + if (!image) { + _ERR("failed to create image object"); return NULL; } - image = util_add_image(obj, info->thumbnail_path); + evas_object_show(image); + } else if (!strcmp(part, PART_ELM_SWALLOW_FAVORITE)) { + int r, g, b, a; + + if (!info->favorite) + return NULL; + + image = util_add_image(obj, IMAGE_THUMBNAIL_FAVORITE); if (!image) { _ERR("failed to create image object"); return NULL; } + evas_object_color_get(image, &r, &g, &b, &a); + evas_object_color_set(image, r, g, b, IMAGE_FAVORITE_ALPHA); + evas_object_show(image); } @@ -167,6 +183,13 @@ static bool _update_recent(void *data, Evas_Object *base) strftime(buf, sizeof(buf), "%Y.%m.%d", &tm); elm_object_part_text_set(recent, PART_RECENT_CONTENT_DATE, buf); + if (info->favorite) + elm_object_signal_emit(recent, SIG_RECENT_SHOW_FAV, + SIG_SOURCE_SRC); + else + elm_object_signal_emit(recent, SIG_RECENT_HIDE_FAV, + SIG_SOURCE_SRC); + progressbar_reset(priv->prog, info->video->position, info->video->duration); diff --git a/src/layout/music.c b/src/layout/music.c index 4d6f3c5..98c7571 100644 --- a/src/layout/music.c +++ b/src/layout/music.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include @@ -109,6 +110,17 @@ static Evas_Object *_grid_content_get(void *data, } evas_object_show(image); + } else if (!strcmp(part, PART_ELM_SWALLOW_FAVORITE)) { + if (!info->favorite) + return NULL; + + image = util_add_image(obj, IMAGE_THUMBNAIL_FAVORITE); + if (!image) { + _ERR("failed to create image object"); + return NULL; + } + + evas_object_show(image); } return image; @@ -163,6 +175,13 @@ static bool _update_playing_info(void *data, Evas_Object *base) elm_object_part_text_set(content, PART_PLAYING_CONTENT_ALBUM, info->audio->album); + if (info->favorite) + elm_object_signal_emit(content, SIG_PLAYING_SHOW_FAV, + SIG_SOURCE_SRC); + else + elm_object_signal_emit(content, SIG_PLAYING_HIDE_FAV, + SIG_SOURCE_SRC); + return true; } -- 2.7.4 From e2ef7fd929ff54d06e2ab0ecd9ed12d38e176c6f Mon Sep 17 00:00:00 2001 From: Jehun Lim Date: Mon, 27 Jul 2015 10:48:19 +0900 Subject: [PATCH 14/16] music: add animation for item border Change-Id: If11c489ed1aa8c754e6ed400ad0cdbd6ae4c5223 Signed-off-by: Jehun Lim --- res/edc/widgets/button.edc | 37 +++++++++++++++++++++++-------------- res/edc/widgets/gengrid.edc | 45 +++++++++++++++++++++++++++++---------------- 2 files changed, 52 insertions(+), 30 deletions(-) diff --git a/res/edc/widgets/button.edc b/res/edc/widgets/button.edc index b629783..317bc5a 100644 --- a/res/edc/widgets/button.edc +++ b/res/edc/widgets/button.edc @@ -2237,7 +2237,7 @@ group { } } part { - name: "border_up"; + name: "border_top"; type: RECT; scale: 1; description { @@ -2251,16 +2251,24 @@ group { align: 0.5 0.0; color: COLOR_ITEM_BORDER; fixed: 0 1; + map { + perspective_on: 1; + perspective: "map"; + } + } + description { + state: "selected" 0.0; + inherit: "default" 0.0; + map.on: 1; } } part { name: "border_left"; - type: RECT; - scale: 1; + inherit: "border_top"; description { state: "default" 0.0; rel1 { - to: "border_up"; + to: "border_top"; relative: 0.0 1.0; } rel2 { @@ -2269,18 +2277,16 @@ group { } min: 1 0; align: 0.0 0.5; - color: COLOR_ITEM_BORDER; fixed: 1 0; } } part { name: "border_right"; - type: RECT; - scale: 1; + inherit: "border_top"; description { state: "default" 0.0; rel1 { - to: "border_up"; + to: "border_top"; relative: 1.0 1.0; } rel2 { @@ -2289,14 +2295,12 @@ group { } min: 1 0; align: 1.0 0.5; - color: COLOR_ITEM_BORDER; fixed: 1 0; } } part { name: "border_bottom"; - type: RECT; - scale: 1; + inherit: "border_top"; description { state: "default" 0.0; rel1 { @@ -2307,10 +2311,7 @@ group { to: "border_right"; relative: 0.0 1.0; } - min: 0 1; align: 0.5 1.0; - color: COLOR_ITEM_BORDER; - fixed: 0 1; } } part { @@ -2369,6 +2370,10 @@ group { set_state(PART:PART_PLAYING_CONTENT_FAVORITE, "default,selected", 0.0); } + set_state(PART:"border_top", "selected", 0.0); + set_state(PART:"border_left", "selected", 0.0); + set_state(PART:"border_right", "selected", 0.0); + set_state(PART:"border_bottom", "selected", 0.0); set_state(PART:"defaultbg_text", "selected", 0.0); } } @@ -2396,6 +2401,10 @@ group { target: PART_PLAYING_CONTENT_TITLE; target: PART_PLAYING_CONTENT_ARTIST; target: PART_PLAYING_CONTENT_ALBUM; + target: "border_top"; + target: "border_left"; + target: "border_right"; + target: "border_bottom"; after: "focus,out,anim"; } program { diff --git a/res/edc/widgets/gengrid.edc b/res/edc/widgets/gengrid.edc index 12f38ca..12372b4 100644 --- a/res/edc/widgets/gengrid.edc +++ b/res/edc/widgets/gengrid.edc @@ -1496,7 +1496,7 @@ group { } } part { - name: "border_up"; + name: "border_top"; type: RECT; scale: 1; description { @@ -1510,16 +1510,25 @@ group { align: 0.5 0.0; color: COLOR_ITEM_BORDER; fixed: 0 1; + map { + perspective_on: 1; + perspective: "map"; + } + } + description { + state: "selected" 0.0; + inherit: "default" 0.0; + map.on: 1; + } } part { name: "border_left"; - type: RECT; - scale: 1; + inherit: "border_top"; description { state: "default" 0.0; rel1 { - to: "border_up"; + to: "border_top"; relative: 0.0 1.0; } rel2 { @@ -1528,31 +1537,30 @@ group { } min: 1 0; align: 0.0 0.5; - color: COLOR_ITEM_BORDER; fixed: 1 0; } } part { name: "border_right"; - type: RECT; - scale: 1; + inherit: "border_top"; description { state: "default" 0.0; rel1 { - to: "border_up"; + to: "border_top"; + relative: 1.0 1.0; + } + rel2 { + to: "bg"; relative: 1.0 1.0; } - rel2.to: "bg"; min: 1 0; align: 1.0 0.5; - color: COLOR_ITEM_BORDER; fixed: 1 0; } } part { - name: "border_down"; - type: RECT; - scale: 1; + name: "border_bottom"; + inherit: "border_top"; description { state: "default" 0.0; rel1 { @@ -1563,10 +1571,7 @@ group { to: "border_right"; relative: 0.0 1.0; } - min: 0 1; align: 0.5 1.0; - color: COLOR_ITEM_BORDER; - fixed: 0 1; } } } @@ -1603,6 +1608,10 @@ group { name: "focus,in,anim,2"; action: STATE_SET "selected" 0.0; target: "defaultbg_text"; + target: "border_top"; + target: "border_left"; + target: "border_right"; + target: "border_bottom"; } program { name: "go_passive"; @@ -1613,6 +1622,10 @@ group { target: PART_ELM_TEXT_ARTIST; target: PART_ELM_TEXT_ALBUM; target: "defaultbg_text"; + target: "border_top"; + target: "border_left"; + target: "border_right"; + target: "border_bottom"; after: "focus,out,anim"; } program { -- 2.7.4 From abca270367b9719de76a0024357aac0c727aa8a3 Mon Sep 17 00:00:00 2001 From: Jehun Lim Date: Mon, 27 Jul 2015 14:33:21 +0900 Subject: [PATCH 15/16] listmgr: set flag after focusing to grid item Change-Id: I7979118cdf4b7e23d4526d35d7c3ed741e66566d Signed-off-by: Jehun Lim --- src/util/listmgr.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/util/listmgr.c b/src/util/listmgr.c index 9ea9d6c..39e829f 100644 --- a/src/util/listmgr.c +++ b/src/util/listmgr.c @@ -120,6 +120,7 @@ static void _mouse_move_cb(int id, void *data, Evas *e, Evas_Object *obj, if (!elm_object_item_focus_get(it)) { lmgr->scr_focus = EINA_FALSE; elm_object_item_focus_set(it, EINA_TRUE); + lmgr->scr_focus = EINA_TRUE; } break; -- 2.7.4 From 3e89bebfa222c5a402209a2ac21ac18162ecc3a5 Mon Sep 17 00:00:00 2001 From: Jehun Lim Date: Mon, 27 Jul 2015 15:13:00 +0900 Subject: [PATCH 16/16] base: adjust the height of play info content Change-Id: Icaf03bf8c25377f30c041eaedad9284d96e37d13 Signed-off-by: Jehun Lim --- res/edc/view/base.edc | 18 +----------------- src/util/listmgr.c | 2 ++ 2 files changed, 3 insertions(+), 17 deletions(-) diff --git a/res/edc/view/base.edc b/res/edc/view/base.edc index f1d4bb8..b5aefc2 100644 --- a/res/edc/view/base.edc +++ b/res/edc/view/base.edc @@ -145,27 +145,12 @@ group { name: GRP_LIST_ITEM; parts { part { - name: "area"; - type: RECT; - scale: 1; - description { - state: "default" 0.0; - min: 0 704; - fixed: 0 1; - visible: 0; - } - } - part { name: PART_ITEM_TITLE; type: SWALLOW; scale: 1; description { state: "default" 0.0; - rel1.to: "area"; - rel2 { - to: "area"; - relative: 1.0 0.0; - } + rel2.relative: 1.0 0.0; min: 0 36; align: 0.5 0.0; fixed: 0 1; @@ -197,7 +182,6 @@ group { to: "padding_content"; relative: 0.0 1.0; } - rel2.to: "area"; } } } diff --git a/src/util/listmgr.c b/src/util/listmgr.c index 39e829f..eb8b820 100644 --- a/src/util/listmgr.c +++ b/src/util/listmgr.c @@ -529,7 +529,9 @@ bool listmgr_update_play_info(struct listmgr *lmgr, app_media_info *info) if (!lmgr->show_play_info) { elm_box_pack_start(lmgr->box, lmgr->play_info); + evas_object_size_hint_align_set(lmgr->play_info, 0.0, 0.0); evas_object_show(lmgr->play_info); + lmgr->show_play_info = EINA_TRUE; lmgr->focused = lmgr->play_info; } -- 2.7.4