From: aman.jeph Date: Mon, 19 Oct 2020 11:19:21 +0000 (+0530) Subject: [TIZENIOT-1962] [TIZENIOT-1963] [TIZENIOT-1971] fixed following issues X-Git-Tag: submit/tizen/20201029.115430~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b8f582263af943b45099221fb5acaa7607f6d48b;p=profile%2Fiot%2Fapps%2Fnative%2Fvideo-player.git [TIZENIOT-1962] [TIZENIOT-1963] [TIZENIOT-1971] fixed following issues 1. fixed done button always enable in subtitle settings 2. add white background files or folder for which thumbnail is not available 3. added external storage icon Change-Id: I75e20b6e1d48a120c867168ea67c3a851c870144 Signed-off-by: aman.jeph --- diff --git a/playview/src/feature/vp-subtitle.c b/playview/src/feature/vp-subtitle.c index 06892d4..1cc79d8 100755 --- a/playview/src/feature/vp-subtitle.c +++ b/playview/src/feature/vp-subtitle.c @@ -64,6 +64,18 @@ static void _vp_subtitle_cancel_button_cb(void *data, Evas_Object * obj, const c static void _vp_subtitle_page_back_key_cb(void *data, Evas_Object *obj, void *event_info); +static void _vp_subtitle_done_button_disable_state_update(Evas_Object *layout, Eina_Bool disable) { + if(layout == NULL) { + VideoLogError("Layout is invalid, can't change done button state"); + return; + } + if(disable) { + elm_object_signal_emit(layout, "done_button,state,disable", "vp"); + } else { + elm_object_signal_emit(layout, "done_button,state,enable", "vp"); + } +} + /* callback functions */ /** * @@ -96,6 +108,8 @@ static void __vp_subtitle_check_change_cb(void *pUserData, (void *) pSubtitle->pUserData); } } + Evas_Object *layout = elm_object_part_content_get(pSubtitle->pPageLayout, "title_content"); + _vp_subtitle_done_button_disable_state_update(layout, EINA_FALSE); } /** @@ -404,6 +418,7 @@ static Evas_Object* _vp_subtitle_create_title_content(Evas_Object* parent, Subti elm_object_signal_callback_add(layout, "cancel_button,clicked", "vp", _vp_subtitle_cancel_button_cb, (void*)pSubtitle); elm_object_signal_callback_add(layout, "done_button,clicked", "vp", _vp_subtitle_done_button_cb, (void*)pSubtitle ); + _vp_subtitle_done_button_disable_state_update(layout, EINA_TRUE); evas_object_show(layout); @@ -419,6 +434,8 @@ static void _vp_subtitle_alignement_selected(void *data, Evas_Object * obj, con if (pSubtitle->pCloseCb) { pSubtitle->pCloseCb((int)VP_SUBTITLE_MODE_ALIGNMENT, TRUE, (void *) pSubtitle->pUserData); } + Evas_Object *layout = elm_object_part_content_get(pSubtitle->pPageLayout, "title_content"); + _vp_subtitle_done_button_disable_state_update(layout, EINA_FALSE); } static void _vp_subtitle_font_size_selected(void *data, Evas_Object * obj, const char *emission, const char *source) @@ -428,6 +445,8 @@ static void _vp_subtitle_font_size_selected(void *data, Evas_Object * obj, cons if (pSubtitle->pCloseCb) { pSubtitle->pCloseCb((int) VP_SUBTITLE_MODE_SIZE, TRUE, (void *) pSubtitle->pUserData); } + Evas_Object *layout = elm_object_part_content_get(pSubtitle->pPageLayout, "title_content"); + _vp_subtitle_done_button_disable_state_update(layout, EINA_FALSE); } static void _vp_subtite_update_subtitle_settings_layout(Evas_Object *layout, SubtitlePopup *pSubtitle) @@ -507,6 +526,11 @@ static Evas_Object* _vp_subtitle_create_base_layout(Evas_Object *parent, Subtitl elm_object_part_content_set(layout, "on_off_button", pSubtitle->pActivationCheck); _vp_subtite_update_subtitle_settings_layout(layout, pSubtitle); + if(bShow) { + elm_object_signal_emit(layout, "subtitle,on", "vp"); + } else { + elm_object_signal_emit(layout, "subtitle,off", "vp"); + } elm_object_signal_callback_add(layout, "alignment,clicked", "vp", _vp_subtitle_alignement_selected, (void*)pSubtitle); elm_object_signal_callback_add(layout, "font_size,clicked", "vp", _vp_subtitle_font_size_selected, (void*)pSubtitle); diff --git a/res/edje/vp-videolist-custom-gengrid.edc b/res/edje/vp-videolist-custom-gengrid.edc index 37b1fd1..1803313 100755 --- a/res/edje/vp-videolist-custom-gengrid.edc +++ b/res/edje/vp-videolist-custom-gengrid.edc @@ -272,7 +272,7 @@ group { "videolist/progressbar" group { "elm/gengrid/item/videolist/default"; inherit: "elm/gengrid/item/videolist_event/default"; - data.item: "contents" "elm.icon elm.progress elm.check"; + data.item: "contents" "elm.icon elm.progress elm.check elm.storage.icon"; data.item: "texts" "elm.text elm.sub.text"; parts { @@ -396,6 +396,10 @@ group { "elm/gengrid/item/videolist/default"; } color: 0 0 0 0; } + desc { "white_bg"; + inherit: "default"; + color: 255 255 255 255; + } } swallow { "elm.icon"; mouse; scale; desc { "default"; @@ -410,6 +414,22 @@ group { "elm/gengrid/item/videolist/default"; color_class: "gengrid_item/default/icon_disabled"; } } + swallow { "elm.storage.icon"; nomouse; scale; + desc { "default"; + rel1.to: "elm.icon"; + rel1.relative: 0.0 0.0; + rel2.to: "elm.icon"; + rel2.relative: 0.0 0.0; + min: 40 40; + max: 40 40; + align: 0.0 0.0; + hid; + } + desc { "show"; + inherit: "default"; + vis; + } + } swallow { "elm.check"; nomouse; scale; desc { "default"; min: 38 38; @@ -533,7 +553,32 @@ group { "elm/gengrid/item/videolist/default"; action: STATE_SET "default"; target: "elm.check"; } + program { "show_storage_icon"; + signal: "elm,state,elm.storage.icon,visible"; + source: "elm"; + action: STATE_SET "show"; + target: "elm.storage.icon"; + } + program { "hide_storage_icon"; + signal: "elm,state,elm.storage.icon,hidden"; + source: "elm"; + action: STATE_SET "default"; + target: "elm.storage.icon"; + } + program { "icon_white_bg_set"; + signal: "icon,white_bg"; + source: "vp"; + action: STATE_SET "white_bg"; + target: "icon_area"; + } + program { "icon_default_bg_set"; + signal: "icon,default_bg"; + source: "vp"; + action: STATE_SET "default"; + target: "icon_area"; + } GENGRID_PROGRAM_DEFAULT( + target: "icon_area"; target: "elm.icon"; target: "effect_cover"; target: "elm.text"; @@ -541,6 +586,7 @@ group { "elm/gengrid/item/videolist/default"; target: "event"; target: "elm.check"; target: "elm.progress"; + target: "elm.storage.icon"; ) } } diff --git a/res/images/default_thumbnail.png b/res/images/default_thumbnail.png index 5b4044f..2800f40 100755 Binary files a/res/images/default_thumbnail.png and b/res/images/default_thumbnail.png differ diff --git a/res/images/icon_external_drive.png b/res/images/icon_external_drive.png new file mode 100755 index 0000000..70d2c7d Binary files /dev/null and b/res/images/icon_external_drive.png differ diff --git a/src/common/mp-util-media-service.c b/src/common/mp-util-media-service.c index e9e1ac9..c513cc2 100755 --- a/src/common/mp-util-media-service.c +++ b/src/common/mp-util-media-service.c @@ -2086,10 +2086,13 @@ MpMediaStorageType mp_util_svc_get_folder_storage(const int ret = storage_foreach_device_supported(_storage_device_supported_cb, &storage_rec); if (ret != STORAGE_ERROR_NONE || storage_rec.storage_id == -1) { - VideoLogError("Get storage id failed!"); + VideoLogError("failed to status of storage"); + MP_FREE_STRING(folder_path); return storage_local; } + MP_FREE_STRING(folder_path); + ret = storage_get_type(storage_rec.storage_id, &storage_type); if (ret != STORAGE_ERROR_NONE) { VideoLogError("Get storage type failed!"); @@ -2105,6 +2108,22 @@ MpMediaStorageType mp_util_svc_get_folder_storage(const int return storage_local; } +static bool mp_util_svc_storage_callback(int storage_id, storage_type_e type, + storage_state_e state, const char *path, void *user_data) { + + storage_rec_s *storage_rec = (storage_rec_s*)user_data; + + if (!(storage_rec && storage_rec->file_url && path)) { + return true; + } + + if (strncmp(path, storage_rec->file_url, strlen(path)) == 0) { + storage_rec->storage_id = storage_id; + return false; + } + return true; +} + /** * Get folder storage of the video @@ -2120,13 +2139,38 @@ MpMediaStorageType mp_util_svc_get_video_storage(const int nVideoItemIndex) return storage_local; } - if (nVideoItemIndex < 0 - || nVideoItemIndex >= - mp_util_svc_get_video_list_size_for_checking_index()) { + if (nVideoItemIndex < 0 || nVideoItemIndex >= mp_util_svc_get_video_list_size_for_checking_index()) { VideoLogError("Error number of list item."); return storage_local; } + char *file_path = mp_util_svc_get_video_url(nVideoItemIndex); + + + storage_rec_s storage_rec; + storage_rec.storage_id = -1; + storage_rec.file_url = file_path; + storage_type_e storage_type = 0; + int ret = storage_foreach_device_supported(mp_util_svc_storage_callback, &storage_rec); + if(ret != STORAGE_ERROR_NONE) { + VideoLogError("Failed to get storage status, [Error Code: %d]", ret); + MP_FREE_STRING(file_path); + return storage_local; + } + + MP_FREE_STRING(file_path); + + ret = storage_get_type(storage_rec.storage_id, &storage_type); + if (ret != STORAGE_ERROR_NONE) { + VideoLogError("Failed to get storage type [Error Code: %d]", ret); + return storage_local; + } + + if (storage_type == STORAGE_TYPE_INTERNAL) { + storage_local = MP_MEDIA_TYPE_STORAGE_INTERNAL; + } else if (storage_type == STORAGE_TYPE_EXTERNAL) { + storage_local = MP_MEDIA_TYPE_STORAGE_EXTERNAL; + } return storage_local; } diff --git a/src/view/mp-video-list-remove-view.c b/src/view/mp-video-list-remove-view.c index 94c8c23..60f6fe8 100755 --- a/src/view/mp-video-list-remove-view.c +++ b/src/view/mp-video-list-remove-view.c @@ -852,6 +852,7 @@ static Evas_Object *__mp_remove_folder_view_get_grid_icon_cb(void *pUserData, Ev free(path); elm_image_aspect_fixed_set(img, EINA_TRUE); elm_image_file_set(img, edj_path, NULL); + elm_object_item_signal_emit(item_data->item, "icon,white_bg", "vp"); } else { elm_image_fill_outside_set(img, EINA_TRUE); elm_image_file_set(img, pThumbIconUri, NULL); @@ -883,6 +884,20 @@ static Evas_Object *__mp_remove_folder_view_get_grid_icon_cb(void *pUserData, Ev item_data->checkbox = checkbox; return checkbox; } + else if(!strcmp(pPart, "elm.storage.icon") && (mp_util_svc_get_folder_storage(nFolderItemIndex) == MP_MEDIA_TYPE_STORAGE_EXTERNAL)) + { + char edj_path[1024] = {0, }; + char *path = app_get_resource_path(); + snprintf(edj_path, 1024, "%s%s/%s", path, "images", "icon_external_drive.png"); + free(path); + + Evas_Object *img = elm_image_add(pObject); + elm_image_file_set(img, edj_path, NULL); + 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); + + return img; + } return NULL; } @@ -994,6 +1009,17 @@ static Evas_Object *__mp_remove_view_get_grid_icon_cb(void *pUserData, Evas_Obje item_data->checkbox = checkbox; return checkbox; } + else if(!strcmp(pPart, "elm.storage.icon") && (mp_util_svc_get_video_storage(nVideoItemIndex) == MP_MEDIA_TYPE_STORAGE_EXTERNAL)) { + char *path = app_get_resource_path(); + snprintf(edj_path, 1024, "%s%s/%s", path, "images", "icon_external_drive.png"); + + Evas_Object *img = elm_image_add(pObject); + elm_image_file_set(img, edj_path, NULL); + 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); + + return img; + } return NULL; } #endif diff --git a/src/view/mp-video-list-share-via-view.c b/src/view/mp-video-list-share-via-view.c index d246feb..16b5883 100755 --- a/src/view/mp-video-list-share-via-view.c +++ b/src/view/mp-video-list-share-via-view.c @@ -1010,6 +1010,18 @@ static Evas_Object *__mp_share_view_get_grid_icon_cb(void *pUserData, item_data->checkbox = checkbox; return checkbox; } + else if(!strcmp(pPart, "elm.storage.icon") && (mp_util_svc_get_video_storage(nVideoItemIndex) == MP_MEDIA_TYPE_STORAGE_EXTERNAL)) { + char *path = app_get_resource_path(); + snprintf(edj_path, 1024, "%s%s/%s", path, "images", "icon_external_drive.png"); + free(path); + + Evas_Object *img = elm_image_add(pObject); + elm_image_file_set(img, edj_path, NULL); + 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); + + return img; + } return NULL; } #endif diff --git a/src/view/mp-video-list-view-folder.c b/src/view/mp-video-list-view-folder.c index 14ec6b0..bef69c7 100755 --- a/src/view/mp-video-list-view-folder.c +++ b/src/view/mp-video-list-view-folder.c @@ -279,6 +279,7 @@ static Evas_Object *mp_folder_view_get_icon_of_folder_cb(void *pUserData,Evas_Ob free(path); elm_image_aspect_fixed_set(img, EINA_TRUE); elm_image_file_set(img, edj_path, NULL); + elm_object_item_signal_emit(item_data->item, "icon,white_bg", "vp"); } else { elm_image_fill_outside_set(img, EINA_TRUE); elm_image_file_set(img, pThumbIconUri, NULL); @@ -293,6 +294,20 @@ static Evas_Object *mp_folder_view_get_icon_of_folder_cb(void *pUserData,Evas_Ob return img; } + else if(!strcmp(pPart, "elm.storage.icon") && (mp_util_svc_get_folder_storage(nFolderItemIndex) == MP_MEDIA_TYPE_STORAGE_EXTERNAL)) + { + char edj_path[1024] = {0, }; + char *path = app_get_resource_path(); + snprintf(edj_path, 1024, "%s%s/%s", path, "images", "icon_external_drive.png"); + free(path); + + Evas_Object *img = elm_image_add(pObject); + elm_image_file_set(img, edj_path, NULL); + 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); + + return img; + } return NULL; } 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 cea661e..cd1ced3 100755 --- a/src/view/mp-video-list-view-item-of-folder.c +++ b/src/view/mp-video-list-view-item-of-folder.c @@ -345,6 +345,10 @@ Evas_Object *__mp_folder_item_view_get_icon_of_video_item_cb(void } else if(!strcmp(pPart, "elm.progress")) { + char *path = app_get_resource_path(); + snprintf(edj_path, 1024, "%s%s/%s", path, "edje", VIDEO_CUSTOM_THEME); + free(path); + Evas_Object *progessbar = elm_layout_add(pObject); elm_layout_file_set(progessbar, edj_path, "videolist/progressbar"); evas_object_size_hint_weight_set(progessbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); @@ -355,6 +359,18 @@ Evas_Object *__mp_folder_item_view_get_icon_of_video_item_cb(void __mp_folder_item_view_set_playback_progress(nVideoItemIndex, item_data); return progessbar; } + else if(!strcmp(pPart, "elm.storage.icon") && (mp_util_svc_get_video_storage(nVideoItemIndex) == MP_MEDIA_TYPE_STORAGE_EXTERNAL)) { + char *path = app_get_resource_path(); + snprintf(edj_path, 1024, "%s%s/%s", path, "images", "icon_external_drive.png"); + free(path); + + Evas_Object *img = elm_image_add(pObject); + elm_image_file_set(img, edj_path, NULL); + 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); + + return img; + } return NULL; } diff --git a/src/view/mp-video-list-view-select.c b/src/view/mp-video-list-view-select.c index e287f28..2540dc2 100755 --- a/src/view/mp-video-list-view-select.c +++ b/src/view/mp-video-list-view-select.c @@ -342,7 +342,7 @@ static void __mp_select_view_gengrid_item_selected_cb(void *pUserData, VideoLogInfo("Show rename popup"); g_pRenameLayout = mp_rename_ctrl_show(g_pSelectHandle->pNaviFrameHandle, NULL, - (void *)__mp_select_view_result_view_update_cb, + __mp_select_view_result_view_update_cb, nSelectedIndex); } } @@ -414,6 +414,19 @@ static Evas_Object *__mp_select_view_get_grid_icon_cb(void *pUserData, Evas_Obje item_data->icon = img; return img; } + else if(!strcmp(pPart, "elm.storage.icon") && (mp_util_svc_get_video_storage(nVideoItemIndex) == MP_MEDIA_TYPE_STORAGE_EXTERNAL)) { + char edj_path[1024] = {0,}; + char *path = app_get_resource_path(); + snprintf(edj_path, 1024, "%s%s/%s", path, "images", "icon_external_drive.png"); + free(path); + + Evas_Object *img = elm_image_add(pObject); + elm_image_file_set(img, edj_path, NULL); + 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); + + return img; + } return NULL; } diff --git a/src/view/mp-video-list-view-thumbnail.c b/src/view/mp-video-list-view-thumbnail.c index ca5b265..21384fb 100755 --- a/src/view/mp-video-list-view-thumbnail.c +++ b/src/view/mp-video-list-view-thumbnail.c @@ -909,6 +909,19 @@ static Evas_Object *__mp_thumbnail_view_get_grid_icon_cb(void *pUserData, Evas_O return progessbar; } + else if(!strcmp(pPart, "elm.storage.icon") && (mp_util_svc_get_video_storage(nVideoItemIndex) == MP_MEDIA_TYPE_STORAGE_EXTERNAL)) + { + char *path = app_get_resource_path(); + snprintf(edj_path, 1024, "%s%s/%s", path, "images", "icon_external_drive.png"); + free(path); + + Evas_Object *img = elm_image_add(pObject); + elm_image_file_set(img, edj_path, NULL); + 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); + + return img; + } return NULL; }