From cab20d8212c08775a148c5cf7b26848bafe95fa3 Mon Sep 17 00:00:00 2001 From: "aman.jeph" Date: Thu, 16 Jul 2020 16:06:18 +0530 Subject: [PATCH] Follow Issue has been fixed in the changes 1. Usb video content now visible in app 2. Default thumbnail is used if video thumbnail is not available 3. fit and crop thumbnail keeping the aspect ratio 4. Implemented sort by option based on the new guideline Change-Id: I22b94eab94462194a42f71ef069bd9e631a608d6 Signed-off-by: aman.jeph --- include/mp-video-value-define.h | 3 + playview/src/core/vp-media-contents.c | 18 ++-- res/edje/vp-videolist-custom-gengrid.edc | 51 ++++++---- res/images/default_thumbnail.png | Bin 0 -> 2634 bytes res/po/en_US.po | 2 +- src/common/mp-util-media-service.c | 88 +++++++++--------- src/video-player.c | 2 +- src/view/mp-video-list-remove-view.c | 72 +++++++-------- src/view/mp-video-list-share-via-view.c | 26 ++++-- src/view/mp-video-list-view-folder.c | 23 +++-- src/view/mp-video-list-view-item-of-folder.c | 54 +++++------ src/view/mp-video-list-view-main.c | 2 +- src/view/mp-video-list-view-thumbnail.c | 62 ++++++------- src/view/mp-video-search-view.c | 20 ++-- src/widget/mp-video-list-sort-ctrl.c | 92 +++++++++---------- 15 files changed, 267 insertions(+), 248 deletions(-) create mode 100755 res/images/default_thumbnail.png diff --git a/include/mp-video-value-define.h b/include/mp-video-value-define.h index 7435fab..0ffe02e 100755 --- a/include/mp-video-value-define.h +++ b/include/mp-video-value-define.h @@ -18,6 +18,9 @@ #ifndef _VIDEO_VALUE_DEFINE_ #define _VIDEO_VALUE_DEFINE_ +//BASE_SCALE +#define CURRENT_BASE_SCALE 1.8 + //PLAY_TIME_FORMAT #define PLAY_TIME_FORMAT "02u:%02u:%02u" diff --git a/playview/src/core/vp-media-contents.c b/playview/src/core/vp-media-contents.c index 3f9932e..a67d45f 100755 --- a/playview/src/core/vp-media-contents.c +++ b/playview/src/core/vp-media-contents.c @@ -349,7 +349,7 @@ bool vp_media_contents_get_video_id(const char *szFilePath, char szTmpStr[4096] = { 0, }; snprintf(szTmpStr, 4096, - "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"", + "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=2 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"", szFilePath); nRet = media_filter_create(&pFilterHandle); @@ -450,7 +450,7 @@ bool vp_media_contents_get_video_thumbnail_path(const char *szFilePath, char szTmpStr[4096] = { 0, }; snprintf(szTmpStr, 4096, - "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"", + "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=2 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"", szFilePath); nRet = media_filter_create(&pFilterHandle); @@ -667,7 +667,7 @@ bool vp_media_contents_get_content_info(const char *szFilePath, char szTmpStr[4096] = { 0, }; snprintf(szTmpStr, 4096, - "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"", + "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=2 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"", szFilePath); nRet = media_filter_create(&pFilterHandle); @@ -1963,7 +1963,7 @@ bool vp_media_contents_get_cloud_attribute(const char *szFilePath, char szTmpStr[4096] = { 0, }; snprintf(szTmpStr, 4096, - "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"", + "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=2 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"", szFilePath); nRet = media_filter_create(&pFilterHandle); @@ -2051,7 +2051,7 @@ bool vp_media_contents_set_location_tag(const char *szFilePath, char szTmpStr[4096] = { 0, }; snprintf(szTmpStr, 4096, - "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"", + "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=2 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"", szFilePath); nRet = media_filter_create(&pFilterHandle); @@ -2152,7 +2152,7 @@ bool vp_media_contents_get_location_tag(const char *szFilePath, char szTmpStr[4096] = { 0, }; snprintf(szTmpStr, 4096, - "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"", + "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=2 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"", szFilePath); nRet = media_filter_create(&pFilterHandle); @@ -2252,7 +2252,7 @@ bool vp_media_contents_set_weahter_tag(const char *szFilePath, char szTmpStr[4096] = { 0, }; snprintf(szTmpStr, 4096, - "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"", + "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=2 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"", szFilePath); nRet = media_filter_create(&pFilterHandle); @@ -2353,7 +2353,7 @@ bool vp_media_contents_get_weahter_tag(const char *szFilePath, char szTmpStr[4096] = { 0, }; snprintf(szTmpStr, 4096, - "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"", + "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=2 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"", szFilePath); nRet = media_filter_create(&pFilterHandle); @@ -2563,7 +2563,7 @@ bool vp_media_contents_file_is_exist(const char *szFilePath) char szTmpStr[4096] = { 0, }; snprintf(szTmpStr, 4096, - "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"", + "MEDIA_TYPE = 1 AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=2 OR MEDIA_STORAGE_TYPE=101) AND MEDIA_PATH = \"%s\"", szFilePath); nRet = media_filter_create(&pFilterHandle); diff --git a/res/edje/vp-videolist-custom-gengrid.edc b/res/edje/vp-videolist-custom-gengrid.edc index a75d9d8..49d5bb4 100755 --- a/res/edje/vp-videolist-custom-gengrid.edc +++ b/res/edje/vp-videolist-custom-gengrid.edc @@ -225,6 +225,13 @@ group { "videolist/progressbar" //color: 255 0 0 255; } } + rect { "base_bg" nomouse; scale; + desc { "default"; + rel.to: "base"; + color: 238 239 241 255; + //color: 0 0 0 0; + } + } spacer { "drag_bg"; desc { "default"; rel.to: "base"; @@ -376,7 +383,7 @@ group { "elm/gengrid/item/videolist/default"; } } } - spacer { "icon_area"; nomouse; scale; + rect { "icon_area"; mouse; scale; desc { "default"; rel1 { to: "left_padding"; @@ -386,14 +393,15 @@ group { "elm/gengrid/item/videolist/default"; to: "text_area"; relative: 1.0 0.0; } + color: 0 0 0 0; } } swallow { "elm.icon"; mouse; scale; desc { "default"; rel1.to: "icon_area"; rel1.relative: 0.0 0.0; - rel2.to: "progress_area"; - rel2.relative: 1.0 0.0; + rel2.to: "icon_area"; + rel2.relative: 1.0 1.0; color_class: "gengrid_item/default/icon"; } desc { "disabled"; @@ -412,6 +420,10 @@ group { "elm/gengrid/item/videolist/default"; rel2.relative: 1.0 0.0; //rel2.offset: 0 -6; align: 1.0 0.0; + hid; + } + desc { "show"; + inherit: "default"; vis; } } @@ -420,7 +432,6 @@ group { "elm/gengrid/item/videolist/default"; min: 0 4; max: -1 4; align: 0.0 1.0; - //fixed: 0 1; rel1 { to: "icon_area"; relative: 0.0 1.0; @@ -430,15 +441,15 @@ group { "elm/gengrid/item/videolist/default"; relative: 1.0 1.0; } } - desc { "show"; - inherit: "default"; - min: 0 4; - max: -1 4; - } } swallow { "elm.progress"; nomouse; scale; desc { "default"; rel.to: "progress_area"; + hid; + } + desc { "show"; + inherit: "default"; + vis; } } rect { "effect_cover"; nomouse; scale; @@ -498,37 +509,37 @@ group { "elm/gengrid/item/videolist/default"; transition: GLIDE_EASE_OUT(0.25); } program { "show_progress"; - signal: "elm,state,progess,show"; - signal: "elm"; + signal: "elm,state,elm.progress,visible"; + source: "elm"; action: STATE_SET "show"; - target: "progress_area"; + target: "elm.progress"; } program { "hide_progress"; - signal: "elm,state,progess,hide"; - signal: "elm"; + signal: "elm,state,elm.progress,hidden"; + source: "elm"; action: STATE_SET "default"; - target: "progress_area"; + target: "elm.progress"; } program { "show_check"; - signal: "videolist,checkbox,show"; - signal: "elm"; + signal: "elm,state,elm.check,visible"; + source: "elm"; action: STATE_SET "show"; target: "elm.check"; } program { "hide_check"; - signal: "videolist,checkbox,hide"; - signal: "elm"; + signal: "elm,state,,elm.check,hidden"; + source: "elm"; action: STATE_SET "default"; target: "elm.check"; } GENGRID_PROGRAM_DEFAULT( target: "elm.icon"; - target: "elm.progress"; target: "effect_cover"; target: "elm.text"; target: "elm.sub.text"; target: "event"; target: "elm.check"; + target: "elm.progress"; ) } } diff --git a/res/images/default_thumbnail.png b/res/images/default_thumbnail.png new file mode 100755 index 0000000000000000000000000000000000000000..5b4044fa87d8c7a3da50f98c5f4da05bef687b9d GIT binary patch literal 2634 zcmds(`8V4M7si8HDkYWC)T>CQRidpaEiEG==>*>(h-Hkmj98DQttF@>l$N0yX{*$( z2u2ufETNIMiqTry5kabHO)V8;jXjpp_pf-*d(V09^TR!#d!BRdFE_*9)>1)URUQNa zDc}K|!-3PjNlxaV*WbLKePD+ouHc>I4k})blnw&POW<)>rx>sKqN^b;=CGc7_v+>R zeS2lB&KBg2x_OXYf=&i^nL%K476|`F9G|W`FTBs>)6x$|mTjjpd32aGsn_iZ5bN!U zY)65_JqqVSoO6XAw4yiW}qmp^bri^9uf=N7AKyTCzsKWWAi@Uzu zb4u->;CR)^)NFGQd%(Q;*V7|z44gW!r4n&_H2B9TNqp=nY6xR z-WEBf>bdt%Ce1i+?juPH+lJm!_$US}6VJVVfZ7^OSiRHFFmKmhkUa0nvikC!%WNMj zGcxw?Gex_Ll{AThv)>qghX}OB-lC%paT2C|RKJQ7P9jxmdmA{FoMO}oN_6bsszpXo z=p0>9naAZ=yZ*u1UNeYc*Vv@@^Q(*cW7nZlFByU{(HHETA$pkwTy|}0 zO^LhdR=u1dHpdW#fN9L%`h)DVCM&AZ9e?C{B`%K{7%Eh$Sj}pUFv3dr)Q6&g;jPp( zKSj+5YQnWam>Y4iXWYIp%;AJhzErOo+;g+XUT^lRsEfij+|i%k{~VKCFcnC+FMME3 z<(rU?9h!W*uMX4_goF7Eoq+ffjk%4zJ1?&INmhJEADFr&U`M476v82U)2t#vKchxU zKS{vti=n*@A>M3vuVysqXVf^A5D!BGY{Zt?LmfGs$uhjNVb3d7IOkrmJNrU3EV}3X z<#&^J7gHQ!B-cI*M%1j&eF_y~te!^yjE<#SO>dQxWiJ_%iT$Aok(>89vV%7^q9;l^ zr|MIh;++xw-TZv#@5@f8q~BW)xh`DkTOf2A*(m^pV+K1_&k%K@nU6MeJk%A)@QCp~ zKdm+0pfdtMeHZ5MgYx&y3vsRJPQ@w!3U=XVR3OVwWgCjdQfM+pU2nWMP1>T5)s3+# zRtfzL(~o@gETCDX`7n{>KZ2L9c=$hzh>nFSJLP4jW-npuoWPH^veqeo9|k#0(v z`p0x>W89=TrWxnA{g(UtW!JVj3;8m&wH|p@x3R9o#5~{jz4>|UBh*mWXWiYk)dy+T z;M_RB0HnP%FcH=tA}n~^qDb&;#fILEy1Q~pQLXUdCB`QjWVkq)&`5{8k;s*& zCdSRImjAv59tJ^W*C(nTt@u_}UmyJZ4jHv!OBegX*Ny$+rYPDTS{UeW6otSM31&C9 zSYqGRXFzTz9+cvq}+zKCYoZ6SA8~hk?x}_*n0vK?382tncpcfaI z!y1S&W#~2s45*UH)00Gq!v@bsb=DBnIwa%BkExA6y<@@#FmL(Z}P2NYg1tEgBSh1o$bt;fX7b0)Leh2Hc1&^-JyZ} zM4h~oTT5s!op-ge8JBa??$u2^%P#-nIQ73X8Cw3fcokg?_7-Aq)Q~odjSy+ce4Z$N z5+Rtrqo8@w7aabuacq5JAEaZUEKrZp(YLuoH3(}^u$HC%O5tvf?lJ?eIc8~Bg*PRW z#7X5>9OLB>T}RtPe>$}m7M8J`Y648mH$85K&IDI$XlhJ$Y`px%9*&0HzG~&6m*jSd7cGuqAra$-;^(@vtYE+#{zS?JE{ah-jBOxL15*U zaU_)))=)HrxISgv`D5f{>_~Pwrf#;`UAL|8-aUMaxw!j8dgf^8Tw=$$^8kNG z56d52aatO#8rS9+y>JtVN)B7BA;z>M1Llqg@|(7lWP-Fx4C)*Fg0o2AQW53%}q7l*qzV|xKKb?D|xzqC1l5v(VoRDJG%*|OEZ+q4m zanI3!D7M{-cfJYXXR5~+%2Ju;eU3>IGBMsCK9DIPqBAiTLPuKtR5%DitemIndex; char edj_path[1024] = { 0 }; - char *path = app_get_resource_path(); - snprintf(edj_path, 1024, "%s%s/%s", path, "edje", VIDEO_CUSTOM_THEME); - free(path); if (!strcmp(pPart, "elm.icon")) { char *pThumbIconUri = mp_util_svc_get_video_thumbnail(nVideoItemIndex); + + Evas_Object *img = elm_image_add(pObject); + if(pThumbIconUri == NULL) { - VideoLogError("thumbnail url is invalid"); - return NULL; + char *path = app_get_resource_path(); + snprintf(edj_path, 1024, "%s%s/%s", path, "images", "default_thumbnail.png"); + free(path); + elm_image_aspect_fixed_set(img, EINA_TRUE); + elm_image_file_set(img, edj_path, NULL); + } else { + elm_image_fill_outside_set(img, EINA_TRUE); + elm_image_file_set(img, pThumbIconUri, NULL); + free(pThumbIconUri); } - Evas_Object *img = elm_image_add(pObject); - elm_image_file_set(img, pThumbIconUri, NULL); - elm_image_aspect_fixed_set(img, EINA_FALSE); + + elm_image_aspect_fixed_set(img, EINA_TRUE); elm_image_preload_disabled_set(img, EINA_FALSE); evas_object_size_hint_weight_set(img, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(img, EVAS_HINT_FILL, EVAS_HINT_FILL); item_data->icon = img; - free(pThumbIconUri); - return img; } else if(!strcmp(pPart, "elm.progress")) { + + // get layout edc + char *path = app_get_resource_path(); + snprintf(edj_path, 1024, "%s%s/%s", path, "edje", VIDEO_CUSTOM_THEME); + free(path); //enable progess for video items elm_object_item_signal_emit(item_data->item, "elm,state,progess,show", "elm"); // Add progess bar diff --git a/src/view/mp-video-list-share-via-view.c b/src/view/mp-video-list-share-via-view.c index aea84f5..301095d 100755 --- a/src/view/mp-video-list-share-via-view.c +++ b/src/view/mp-video-list-share-via-view.c @@ -914,31 +914,39 @@ static Evas_Object *__mp_share_view_get_grid_icon_cb(void *pUserData, int nVideoItemIndex = item_data->itemIndex; char edj_path[1024] = { 0 }; - char *path = app_get_resource_path(); - snprintf(edj_path, 1024, "%s%s/%s", path, "edje", VIDEO_CUSTOM_THEME); - free(path); if (!strcmp(pPart, "elm.icon")) { char *pThumbIconUri = mp_util_svc_get_video_thumbnail(nVideoItemIndex); + + Evas_Object *img = elm_image_add(pObject); + if(pThumbIconUri == NULL) { - VideoLogError("thumbnail url is invalid"); - return NULL; + char *path = app_get_resource_path(); + snprintf(edj_path, 1024, "%s%s/%s", path, "images", "default_thumbnail.png"); + free(path); + elm_image_aspect_fixed_set(img, EINA_TRUE); + elm_image_file_set(img, edj_path, NULL); + } else { + elm_image_fill_outside_set(img, EINA_TRUE); + elm_image_file_set(img, pThumbIconUri, NULL); + free(pThumbIconUri); } - Evas_Object *img = elm_image_add(pObject); - elm_image_file_set(img, pThumbIconUri, NULL); - elm_image_aspect_fixed_set(img, EINA_FALSE); + elm_image_preload_disabled_set(img, EINA_FALSE); evas_object_size_hint_weight_set(img, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(img, EVAS_HINT_FILL, EVAS_HINT_FILL); item_data->icon = img; - free(pThumbIconUri); return img; } else if(!strcmp(pPart, "elm.progress")) { + // get layout edc + char *path = app_get_resource_path(); + snprintf(edj_path, 1024, "%s%s/%s", path, "edje", VIDEO_CUSTOM_THEME); + free(path); //enable progess for video items elm_object_item_signal_emit(item_data->item, "elm,state,progess,show", "elm"); // Add progess bar diff --git a/src/view/mp-video-list-view-folder.c b/src/view/mp-video-list-view-folder.c index 2b5268f..402ee0a 100755 --- a/src/view/mp-video-list-view-folder.c +++ b/src/view/mp-video-list-view-folder.c @@ -261,23 +261,30 @@ static char *mp_folder_view_get_label_of_folder_cb(void *pUserData, * @param pPart * @return */ -static Evas_Object *mp_folder_view_get_icon_of_folder_cb(void *pUserData, - Evas_Object *pObject, - const char *pPart) +static Evas_Object *mp_folder_view_get_icon_of_folder_cb(void *pUserData,Evas_Object *pObject, const char *pPart) { stGengridItemData *item_data = pUserData; int nFolderItemIndex = item_data->folderIndex; if (!strcmp(pPart, "elm.icon")) { char *pThumbIconUri = mp_util_get_folder_thumbnail(nFolderItemIndex, mp_sort_ctrl_get_sort_state()); + + Evas_Object *img = elm_image_add(pObject); + if(pThumbIconUri == NULL) { - VideoLogError("thumbnail url is invalid"); - return NULL; + char edj_path[1024] = {0, }; + char *path = app_get_resource_path(); + snprintf(edj_path, 1024, "%s%s/%s", path, "images", "default_thumbnail.png"); + free(path); + elm_image_aspect_fixed_set(img, EINA_TRUE); + elm_image_file_set(img, edj_path, NULL); + } else { + elm_image_fill_outside_set(img, EINA_TRUE); + elm_image_file_set(img, pThumbIconUri, NULL); + free(pThumbIconUri); } - Evas_Object *img = elm_image_add(pObject); - elm_image_file_set(img, pThumbIconUri, NULL); - elm_image_aspect_fixed_set(img, EINA_FALSE); + elm_image_preload_disabled_set(img, EINA_FALSE); evas_object_size_hint_weight_set(img, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(img, EVAS_HINT_FILL, EVAS_HINT_FILL); diff --git a/src/view/mp-video-list-view-item-of-folder.c b/src/view/mp-video-list-view-item-of-folder.c index 5f08ac5..401f770 100755 --- a/src/view/mp-video-list-view-item-of-folder.c +++ b/src/view/mp-video-list-view-item-of-folder.c @@ -282,20 +282,28 @@ Evas_Object *__mp_folder_item_view_get_icon_of_video_item_cb(void if (!strcmp(pPart, "elm.icon")) { char *pThumbIconUri = mp_util_svc_get_video_thumbnail(nVideoItemIndex); + + Evas_Object *img = elm_image_add(pObject); + if(pThumbIconUri == NULL) { - VideoLogError("thumbnail url is invalid"); - return NULL; + char *path = app_get_resource_path(); + snprintf(edj_path, 1024, "%s%s/%s", path, "images", "default_thumbnail.png"); + free(path); + elm_image_aspect_fixed_set(img, EINA_TRUE); + elm_image_file_set(img, edj_path, NULL); + } else { + elm_image_fill_outside_set(img, EINA_TRUE); + elm_image_file_set(img, pThumbIconUri, NULL); + free(pThumbIconUri); } - Evas_Object *img = elm_image_add(pObject); - elm_image_file_set(img, pThumbIconUri, NULL); - elm_image_aspect_fixed_set(img, EINA_FALSE); + + elm_image_aspect_fixed_set(img, EINA_TRUE); elm_image_preload_disabled_set(img, EINA_FALSE); evas_object_size_hint_weight_set(img, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(img, EVAS_HINT_FILL, EVAS_HINT_FILL); item_data->icon = img; - free(pThumbIconUri); return img; } @@ -744,23 +752,12 @@ static int __mp_folder_item_view_get_sort_type(void) static void __mp_folder_item_view_update_video_items(void *pVideosGenlist) { if (!pVideosGenlist) { - VideoLogInfo - ("[ERR] pVideosGenlist or g_pMainViewWidget are NULL."); + VideoLogInfo("[ERR] pVideosGenlist or g_pMainViewWidget are NULL."); return; } VideoLogInfo(""); - - Elm_Object_Item *pNextGenlistItem = NULL; - Elm_Object_Item *pCurrGenlistItem = - elm_genlist_first_item_get(pVideosGenlist); - - while (pCurrGenlistItem) { - - pNextGenlistItem = elm_genlist_item_next_get(pCurrGenlistItem); - elm_genlist_item_update(pCurrGenlistItem); - pCurrGenlistItem = pNextGenlistItem; - } + elm_gengrid_realized_items_update((Evas_Object*)pVideosGenlist); } /** @@ -769,15 +766,14 @@ static void __mp_folder_item_view_update_video_items(void *pVideosGenlist) static void __mp_folder_item_view_db_result_data_update_cb(void) { if (!g_pFolderViewHandle) { - VideoLogInfo - ("g_pFolderViewHandle handles of list view are not existed."); + VideoLogInfo("g_pFolderViewHandle handles of list view are not existed."); return; } VideoLogInfo(""); - if (!g_pFolderViewHandle->pVideosGenlist) { - VideoLogInfo("g_pMainViewHandle->pVideosGenlist is NULL."); + if (!g_pFolderViewHandle->pFolderItemGengrid) { + VideoLogInfo("g_pMainViewHandle->pFolderItemGengrid is NULL."); return; } if (g_pFolderViewHandle->pFolderUrl) { @@ -790,8 +786,7 @@ static void __mp_folder_item_view_db_result_data_update_cb(void) VideoLogError("url is NULL."); } - __mp_folder_item_view_update_video_items(g_pFolderViewHandle-> - pVideosGenlist); + __mp_folder_item_view_update_video_items(g_pFolderViewHandle->pFolderItemGengrid); } /** @@ -832,11 +827,9 @@ static void __mp_folder_item_view_result_user_cb(MpListUpdateType VideoLogInfo(""); if (__mp_folder_item_view_update_video_list(eUpdateType)) { - Elm_Object_Item *pItem = - elm_genlist_first_item_get(g_pFolderViewHandle-> - pVideosGenlist); + Elm_Object_Item *pItem = elm_gengrid_first_item_get(g_pFolderViewHandle->pFolderItemGengrid); if (pItem) { - elm_genlist_item_bring_in(pItem, ELM_GENLIST_ITEM_SCROLLTO_IN); + elm_gengrid_item_bring_in(pItem, ELM_GENGRID_ITEM_SCROLLTO_IN); } } } @@ -1719,8 +1712,7 @@ void mp_folder_item_view_change_language(void) */ void mp_folder_item_view_update_video_list(MpListUpdateType eUpdateType) { - if (!g_pFolderViewHandle || !g_pFolderViewWidget - || !g_pFolderViewHandle->pVideosGenlist) { + if (!g_pFolderViewHandle || !g_pFolderViewWidget) { VideoLogError("handles of list view are not existed."); return; } diff --git a/src/view/mp-video-list-view-main.c b/src/view/mp-video-list-view-main.c index 8515849..6ceb22b 100755 --- a/src/view/mp-video-list-view-main.c +++ b/src/view/mp-video-list-view-main.c @@ -230,7 +230,7 @@ void mp_list_view_sort_item_cb(void *pUserData, Evas_Object * pObject, MpFooterLibraryMainListTabType footerTabType = (MpFooterLibraryMainListTabType) pUserData; if (FOOTER_TAB_TYPE_PERSONAL == footerTabType) { - mp_sort_ctrl_show((void *) __mp_list_view_result_data_update_cb); + mp_sort_ctrl_show( __mp_list_view_result_data_update_cb); } else { VideoLogError("invalid footer type"); } diff --git a/src/view/mp-video-list-view-thumbnail.c b/src/view/mp-video-list-view-thumbnail.c index 4727948..7d60789 100755 --- a/src/view/mp-video-list-view-thumbnail.c +++ b/src/view/mp-video-list-view-thumbnail.c @@ -649,9 +649,7 @@ static bool __mp_thumbnail_view_normal_is_top_view(void) return FALSE; } if (mp_mgr_get_library_naviframe()) { - int count = - eina_list_count(elm_naviframe_items_get - (mp_mgr_get_library_naviframe())); + int count = eina_list_count(elm_naviframe_items_get(mp_mgr_get_library_naviframe())); return (count == 1); } return FALSE; @@ -680,11 +678,8 @@ static void __mp_thumbnail_view_update_cb(int nError, const char *szPath, return; } - if (nVideoItemIndex < 0 - || nVideoItemIndex >= - mp_util_svc_get_video_list_size_for_checking_index()) { - VideoSecureLogError("nVideoItemIndex is invalid = %d", - nVideoItemIndex); + if (nVideoItemIndex < 0 || nVideoItemIndex >= mp_util_svc_get_video_list_size_for_checking_index()) { + VideoSecureLogError("nVideoItemIndex is invalid = %d", nVideoItemIndex); return; } @@ -798,27 +793,21 @@ static void __mp_thumbnail_view_gengrid_realize_cb(void *pUserData, stGengridItemData *item_data = elm_object_item_data_get((Elm_Object_Item *) pEventInfo); int nVideoItemIndex = item_data->videoIndex; VideoLogInfo("Select nVideoItemIndex: %d", nVideoItemIndex); - if (nVideoItemIndex < 0 - || nVideoItemIndex >= - mp_util_svc_get_video_list_size_for_checking_index()) { - VideoSecureLogError("nVideoItemIndex is invalid = %d", - nVideoItemIndex); + + if (nVideoItemIndex < 0 || nVideoItemIndex >= mp_util_svc_get_video_list_size_for_checking_index()) { + VideoSecureLogError("nVideoItemIndex is invalid = %d", nVideoItemIndex); return; } int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type(); char *pThumbIconUri = mp_util_svc_get_video_thumbnail(nVideoItemIndex); - VideoSecureLogInfo("pThumbIconUri = %s:%d", pThumbIconUri, - nVideoItemIndex); + VideoSecureLogInfo("pThumbIconUri = %s:%d", pThumbIconUri, nVideoItemIndex); + if (!pThumbIconUri) { if (nVideoItemIndex < nVideoListSize - 1) { - mp_util_svc_register_thumbnail_update_func(nVideoItemIndex, - __mp_thumbnail_view_update_empty_cb, - (void *)item_data); + mp_util_svc_register_thumbnail_update_func(nVideoItemIndex, __mp_thumbnail_view_update_empty_cb, (void *)item_data); } else { - mp_util_svc_register_thumbnail_update_func(nVideoItemIndex, - (void *)__mp_thumbnail_view_update_cb, - (void *)item_data); + mp_util_svc_register_thumbnail_update_func(nVideoItemIndex, (void *)__mp_thumbnail_view_update_cb, (void *)item_data); } } else { free(pThumbIconUri); @@ -885,35 +874,40 @@ static Evas_Object *__mp_thumbnail_view_get_grid_icon_cb(const void *pUserData, { stGengridItemData *item_data = (void*)pUserData; int nVideoItemIndex = item_data->videoIndex; - char edj_path[1024] = { 0 }; - char *path = app_get_resource_path(); - snprintf(edj_path, 1024, "%s%s/%s", path, "edje", VIDEO_CUSTOM_THEME); - free(path); if (!strcmp(pPart, "elm.icon")) { + char *pThumbIconUri = mp_util_svc_get_video_thumbnail(nVideoItemIndex); + + Evas_Object *img = elm_image_add(pObject); + if(pThumbIconUri == NULL) { - VideoLogError("thumbnail url is invalid"); - return NULL; + char *path = app_get_resource_path(); + snprintf(edj_path, 1024, "%s%s/%s", path, "images", "default_thumbnail.png"); + free(path); + elm_image_aspect_fixed_set(img, EINA_TRUE); + elm_image_file_set(img, edj_path, NULL); + } else { + elm_image_fill_outside_set(img, EINA_TRUE); + elm_image_file_set(img, pThumbIconUri, NULL); + free(pThumbIconUri); } - Evas_Object *img = elm_image_add(pObject); - elm_image_file_set(img, pThumbIconUri, NULL); - elm_image_aspect_fixed_set(img, EINA_FALSE); + elm_image_preload_disabled_set(img, EINA_FALSE); evas_object_size_hint_weight_set(img, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(img, EVAS_HINT_FILL, EVAS_HINT_FILL); item_data->icon = img; - free(pThumbIconUri); - return img; } else if(!strcmp(pPart, "elm.progress")) { - //enable progess for video items - elm_object_item_signal_emit(item_data->item, "elm,state,progess,show", "elm"); + char *path = app_get_resource_path(); + snprintf(edj_path, 1024, "%s%s/%s", path, "edje", VIDEO_CUSTOM_THEME); + free(path); + // Add progess bar Evas_Object *progessbar = elm_layout_add(pObject); Eina_Bool ret = elm_layout_file_set(progessbar, edj_path, "videolist/progressbar"); diff --git a/src/view/mp-video-search-view.c b/src/view/mp-video-search-view.c index e3335c2..d11ab9a 100755 --- a/src/view/mp-video-search-view.c +++ b/src/view/mp-video-search-view.c @@ -464,21 +464,27 @@ Evas_Object *mp_search_view_get_icon_of_video_item_cb(void *pUserData, Evas_Obje if (!strcmp(pPart, "elm.icon")) { char *pThumbIconUri = mp_util_svc_get_video_thumbnail(nVideoItemIndex); + char edj_path[1024] = {0, }; + + Evas_Object *img = elm_image_add(pObject); + if(pThumbIconUri == NULL) { - VideoLogError("thumbnail url is invalid"); - return NULL; + char *path = app_get_resource_path(); + snprintf(edj_path, 1024, "%s%s/%s", path, "images", "default_thumbnail.png"); + free(path); + elm_image_aspect_fixed_set(img, EINA_TRUE); + elm_image_file_set(img, edj_path, NULL); + } else { + elm_image_fill_outside_set(img, EINA_TRUE); + elm_image_file_set(img, pThumbIconUri, NULL); + free(pThumbIconUri); } - Evas_Object *img = elm_image_add(pObject); - elm_image_file_set(img, pThumbIconUri, NULL); - elm_image_aspect_fixed_set(img, EINA_FALSE); elm_image_preload_disabled_set(img, EINA_FALSE); evas_object_size_hint_weight_set(img, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(img, EVAS_HINT_FILL, EVAS_HINT_FILL); item_data->icon = img; - free(pThumbIconUri); - return img; } return NULL; diff --git a/src/widget/mp-video-list-sort-ctrl.c b/src/widget/mp-video-list-sort-ctrl.c index a7e481f..929f3dd 100755 --- a/src/widget/mp-video-list-sort-ctrl.c +++ b/src/widget/mp-video-list-sort-ctrl.c @@ -135,14 +135,14 @@ void mp_sort_ctrl_set_sort_state(MpListSortType nListSortType) * @param pPart * @return */ -static char *mp_sort_ctrl_get_label_of_genlist_cb(const void *pUserData, +static char *mp_sort_ctrl_get_label_of_genlist_cb(void *pUserData, Evas_Object * pObject, const char *pPart) { int nIndex = (int) pUserData; - if (!strcmp(pPart, "elm.text") || !strcmp(pPart, "elm.text.main.left")) { + if (!strcmp(pPart, "elm.text")) { switch (nIndex) { case MP_LIST_SORT_BY_RECENTLY_ADDED: return strdup(VIDEOS_SORTBYOPT_OPT_DATE_MOST_RECENT); @@ -154,6 +154,24 @@ static char *mp_sort_ctrl_get_label_of_genlist_cb(const void *pUserData, return NULL; } +static void __mp_sort_ctrl_popup_dismissed_cb(void *data, Evas_Object *obj, void *event_info) +{ + mp_sort_ctrl_delete_handle(); +} + + +static void __mp_sort_ctrl_radio_animation_finished(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + if(g_pSortCtrlHandle) { + ListSortCtrlCbFunc fFunc = g_pSortCtrlHandle->ListSortCtrlUserCbFunc; + elm_popup_dismiss(g_pSortCtrlHandle->pPopUpHandle); + + if (fFunc) { + fFunc(); + } + } +} + /** * * @param pUserData @@ -161,8 +179,7 @@ static char *mp_sort_ctrl_get_label_of_genlist_cb(const void *pUserData, * @param pPart * @return */ -static Evas_Object *mp_sort_ctrl_get_icon_of_genlist_cb(const void - *pUserData, +static Evas_Object *mp_sort_ctrl_get_icon_of_genlist_cb(void *pUserData, Evas_Object * pObject, const char *pPart) @@ -175,7 +192,7 @@ static Evas_Object *mp_sort_ctrl_get_icon_of_genlist_cb(const void return NULL; } - if (!strcmp(pPart, "elm.swallow.end") || !strcmp(pPart, "elm.icon.2")) { + if (!strcmp(pPart, "elm.icon") ) { pTmpRadio = elm_radio_add(pObject); elm_radio_state_value_set(pTmpRadio, nIndex); @@ -190,6 +207,8 @@ static Evas_Object *mp_sort_ctrl_get_icon_of_genlist_cb(const void evas_object_smart_callback_add(pTmpRadio, "changed", __mp_sort_ctrl_select_radio_cb, (void *) pUserData); + elm_object_signal_emit(pTmpRadio, "elm,activate,radio,on", "elm"); + elm_object_signal_callback_add(pTmpRadio, "animation,finished", "", __mp_sort_ctrl_radio_animation_finished, (void*)pUserData); evas_object_show(pTmpRadio); } @@ -252,14 +271,6 @@ static void mp_sort_ctrl_select_item_cb(void *pUserData, g_pSortCtrlHandle->nCurrListSortType); mp_sort_ctrl_set_sort_state(g_pSortCtrlHandle->nCurrListSortType); - - ListSortCtrlCbFunc fFunc = - g_pSortCtrlHandle->ListSortCtrlUserCbFunc; - mp_sort_ctrl_hide(); - - if (fFunc) { - fFunc(); - } } } @@ -326,8 +337,7 @@ static void __mp_sort_ctrl_realized(void *data, Evas_Object * obj, Elm_Object_Item *pItem = elm_genlist_last_item_get(obj); if (pItem) { - elm_object_item_signal_emit(pItem, "elm,state,bottomline,hide", - ""); + elm_object_item_signal_emit(pItem, "elm,state,bottomline,hide", "elm"); } } @@ -375,7 +385,7 @@ bool mp_sort_ctrl_show(ListSortCtrlCbFunc pListSortCtrlCb) g_pSortCtrlHandle->pPopUpHandle = elm_popup_add(mp_util_get_main_window_handle()); - elm_object_style_set(g_pSortCtrlHandle->pPopUpHandle, "theme_bg"); + elm_popup_align_set(g_pSortCtrlHandle->pPopUpHandle, ELM_NOTIFY_ALIGN_FILL, 0.5); eext_object_event_callback_add(g_pSortCtrlHandle->pPopUpHandle, EEXT_CALLBACK_BACK, @@ -387,37 +397,36 @@ bool mp_sort_ctrl_show(ListSortCtrlCbFunc pListSortCtrlCb) mp_util_get_main_window_handle(), "rotation,changed", __mp_sort_ctrl_rotate_cb, NULL); + evas_object_smart_callback_add(g_pSortCtrlHandle->pPopUpHandle, "dismissed", __mp_sort_ctrl_popup_dismissed_cb, NULL); - elm_object_domain_translatable_part_text_set(g_pSortCtrlHandle-> - pPopUpHandle, + elm_object_domain_translatable_part_text_set(g_pSortCtrlHandle->pPopUpHandle, "title,text", VIDEOS_STRING, VIDEOS_SORTBYPOP_HEADER_SORT_BY_IDS); - evas_object_size_hint_weight_set(g_pSortCtrlHandle->pPopUpHandle, - EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + + evas_object_size_hint_weight_set(g_pSortCtrlHandle->pPopUpHandle, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_event_callback_add(g_pSortCtrlHandle->pPopUpHandle, EVAS_CALLBACK_MOUSE_UP, __mp_sort_ctrl_mouse_up_cb, NULL); + g_pSortCtrlHandle->pBox = elm_box_add(g_pSortCtrlHandle->pPopUpHandle); + evas_object_size_hint_weight_set(g_pSortCtrlHandle->pBox, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + + MP_DEL_ITC(g_pSortCtrlHandle->stListSortItc); g_pSortCtrlHandle->stListSortItc = elm_genlist_item_class_new(); // Set item of Genlist. - g_pSortCtrlHandle->stListSortItc->item_style = "default"; //"1text.1icon.2/popup"; - g_pSortCtrlHandle->stListSortItc->func.text_get = - (void *) mp_sort_ctrl_get_label_of_genlist_cb; - g_pSortCtrlHandle->stListSortItc->func.content_get = - (void *) mp_sort_ctrl_get_icon_of_genlist_cb; + g_pSortCtrlHandle->stListSortItc->item_style = "1line"; + g_pSortCtrlHandle->stListSortItc->func.text_get = mp_sort_ctrl_get_label_of_genlist_cb; + g_pSortCtrlHandle->stListSortItc->func.content_get = mp_sort_ctrl_get_icon_of_genlist_cb; g_pSortCtrlHandle->stListSortItc->func.state_get = NULL; g_pSortCtrlHandle->stListSortItc->func.del = NULL; // Create genlist handle - g_pSortCtrlHandle->pGenList = - elm_genlist_add(g_pSortCtrlHandle->pPopUpHandle); - evas_object_size_hint_weight_set(g_pSortCtrlHandle->pGenList, - EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(g_pSortCtrlHandle->pGenList, - EVAS_HINT_FILL, EVAS_HINT_FILL); + g_pSortCtrlHandle->pGenList = elm_genlist_add(g_pSortCtrlHandle->pBox); + evas_object_size_hint_weight_set(g_pSortCtrlHandle->pGenList, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(g_pSortCtrlHandle->pGenList, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_smart_callback_add(g_pSortCtrlHandle->pGenList, "language,changed", @@ -426,8 +435,7 @@ bool mp_sort_ctrl_show(ListSortCtrlCbFunc pListSortCtrlCb) evas_object_smart_callback_add(g_pSortCtrlHandle->pGenList, "realized", __mp_sort_ctrl_realized, NULL); - g_pSortCtrlHandle->pGroupRadio = - elm_radio_add(g_pSortCtrlHandle->pGenList); + g_pSortCtrlHandle->pGroupRadio = elm_radio_add(g_pSortCtrlHandle->pGenList); mp_sort_ctrl_get_sort_state(); @@ -446,22 +454,14 @@ bool mp_sort_ctrl_show(ListSortCtrlCbFunc pListSortCtrlCb) nListCount++; g_pSortCtrlHandle->nListCount = nListCount; - g_pSortCtrlHandle->pBox = elm_box_add(g_pSortCtrlHandle->pPopUpHandle); + evas_object_show(g_pSortCtrlHandle->pGenList); + elm_box_pack_end(g_pSortCtrlHandle->pBox, g_pSortCtrlHandle->pGenList); - mp_widget_ctrl_set_popup_min_size(g_pSortCtrlHandle->pBox, - g_pSortCtrlHandle->nListCount, - VIDEOS_POPUP_114); - evas_object_size_hint_weight_set(g_pSortCtrlHandle->pBox, - EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(g_pSortCtrlHandle->pBox, - EVAS_HINT_FILL, EVAS_HINT_FILL); + // Height of one genlist ITEM is 72unit + evas_object_size_hint_min_set(g_pSortCtrlHandle->pBox, -1, nListCount*72); - elm_box_pack_end(g_pSortCtrlHandle->pBox, g_pSortCtrlHandle->pGenList); - elm_object_content_set(g_pSortCtrlHandle->pPopUpHandle, - g_pSortCtrlHandle->pBox); + elm_object_content_set(g_pSortCtrlHandle->pPopUpHandle, g_pSortCtrlHandle->pBox); - evas_object_show(g_pSortCtrlHandle->pBox); - evas_object_show(g_pSortCtrlHandle->pGenList); evas_object_show(g_pSortCtrlHandle->pPopUpHandle); return TRUE; -- 2.34.1