From 4506b2bebb647593c1bd9bd1656cba47fc3d5157 Mon Sep 17 00:00:00 2001 From: "aman.jeph" Date: Sun, 14 Jun 2020 18:18:47 +0530 Subject: [PATCH] Updated GUI of video library Change-Id: Ifc62126d87f256f20dc19947f1ed7d0299e32db8 Signed-off-by: aman.jeph --- include/view/mp-video-list-view-folder.h | 2 + include/view/mp-video-list-view-thumbnail.h | 3 + project_def.prop | 4 +- res/edje/popup_progressbar.edc | 4 +- res/edje/vp-common.edc | 17 + res/edje/vp-ctxpopup-option.edc | 3 + res/edje/vp-custom-winset-style.edc | 4 +- res/edje/vp-main-layout.edc | 3 + res/edje/vp-search-view-internal.edc | 2 + res/edje/vp-searchbar.edc | 293 ++++++ res/edje/vp-videolist-custom-gengrid.edc | 427 +++++++++ res/images/app_main_bg.png | Bin 0 -> 17724 bytes res/images/icon_search_clear.png | Bin 0 -> 351 bytes res/images/icon_video_search.png | Bin 0 -> 658 bytes res/images/search_bar_bg.png | Bin 0 -> 1096 bytes res/images/search_icon_bg.png | Bin 0 -> 737 bytes res/images/video_playback_tracker.png | Bin 0 -> 166 bytes src/video-player.c | 2 +- src/view/mp-video-list-view-folder.c | 41 +- src/view/mp-video-list-view-main.c | 89 +- src/view/mp-video-list-view-thumbnail.c | 982 +++++--------------- src/viewMgr/videos-view-mgr.c | 9 +- 22 files changed, 1135 insertions(+), 750 deletions(-) create mode 100755 res/edje/vp-common.edc create mode 100755 res/edje/vp-searchbar.edc create mode 100755 res/edje/vp-videolist-custom-gengrid.edc create mode 100755 res/images/app_main_bg.png create mode 100755 res/images/icon_search_clear.png create mode 100755 res/images/icon_video_search.png create mode 100755 res/images/search_bar_bg.png create mode 100755 res/images/search_icon_bg.png create mode 100755 res/images/video_playback_tracker.png diff --git a/include/view/mp-video-list-view-folder.h b/include/view/mp-video-list-view-folder.h index e3a895a..89ff6c5 100755 --- a/include/view/mp-video-list-view-folder.h +++ b/include/view/mp-video-list-view-folder.h @@ -20,6 +20,8 @@ #include "mp-video-list-view-common.h" #include "mp-video-type-define.h" +void mp_folder_view_folder_list_set(void *pMainHandle, void *pMainViewWidget, + MpListUpdateType eUpdateType, UpdateListItemsCbFunc pUpdateVideoListUserCb); void mp_folder_view_destroy(void); void mp_folder_view_arrange_folder_list(void *pMainViewHandle, void *pMainViewWidget, diff --git a/include/view/mp-video-list-view-thumbnail.h b/include/view/mp-video-list-view-thumbnail.h index 8463aa3..b6b1e56 100755 --- a/include/view/mp-video-list-view-thumbnail.h +++ b/include/view/mp-video-list-view-thumbnail.h @@ -20,6 +20,9 @@ #include "mp-video-list-view-common.h" +bool mp_thumbnail_view_list_content_set(void *pMainViewHandle, void *pMainViewWidget, + MpListUpdateType eUpdateType, UpdateListItemsCbFunc pUpdateVideoListUserCb); + bool mp_thumbnail_view_arrange_list_item(void *pMainViewHandle, void *pMainViewWidget, MpListUpdateType eUpdateType, diff --git a/project_def.prop b/project_def.prop index 3455f9e..4c19932 100755 --- a/project_def.prop +++ b/project_def.prop @@ -59,7 +59,7 @@ USER_EDCS_FONT_DIRS_ABS = # EDC Flags USER_EXT_EDC_KEYS = EDC0 -USER_EXT_EDC0_EDCS = res/edje/vp-custom-winset-style.edc playview/res/edje/pv-brightness-popup.edc playview/res/edje/pv-normal-top-control.edc res/edje/vp-main-listview-internal.edc playview/res/edje/pv-speed-popup.edc res/edje/vp-remove-list-internal.edc res/edje/vp-ctxpopup-option.edc res/edje/vp-device-list-internal.edc res/edje/vp-search-view-internal.edc playview/res/edje/pv-chapter-main-new.edc res/edje/vp-thumbnail-view.edc playview/res/edje/pv-trim-control.edc playview/res/edje/pv-volume.edc playview/res/edje/pv-progressbar.edc res/edje/vp-images.edc playview/res/edje/pv-normal-control.edc playview/res/edje/pv-tag-buddy.edc playview/res/edje/pv-gesture.edc playview/res/edje/pv-volume-popup.edc playview/res/edje/pv-multi-main.edc playview/res/edje/pv-minicontroller.edc playview/res/edje/pv-zoom-guide.edc res/edje/landscape_thumbnail.edc playview/res/edje/pv-subtitle-color-popup.edc playview/res/edje/pv-popup.edc res/shared/res/video.edc res/edje/panel.edc playview/res/edje/pv-sensor-popup.edc playview/res/edje/pv-bookmark-item.edc res/edje/vp-main-layout.edc playview/res/edje/pv-subtitle.edc res/edje/vp-motion-popup.edc res/edje/popup_progressbar.edc playview/res/edje/pv-custom-winset.edc res/edje/vp-main-listview-preview.edc res/edje/vp-naviframe.edc playview/res/edje/pv-resource.edc playview/res/edje/pv-bookmark.edc playview/res/edje/pv-trim-item.edc playview/res/edje/pv-normal-function.edc res/edje/vp-speedbox-popup.edc playview/res/edje/pv-trim-top-control.edc playview/res/edje/pv-normal-main.edc playview/res/edje/pv-tag-preview.edc playview/res/edje/pv-trim-main.edc res/edje/vp-genlist-no-item.edc playview/res/edje/pv-colorselector.edc playview/res/edje/pv-lockscreenmini.edc +USER_EXT_EDC0_EDCS = res/edje/vp-searchbar.edc res/edje/vp-custom-winset-style.edc playview/res/edje/pv-brightness-popup.edc playview/res/edje/pv-normal-top-control.edc res/edje/vp-main-listview-internal.edc playview/res/edje/pv-speed-popup.edc res/edje/vp-remove-list-internal.edc res/edje/vp-ctxpopup-option.edc res/edje/vp-device-list-internal.edc res/edje/vp-search-view-internal.edc playview/res/edje/pv-chapter-main-new.edc res/edje/vp-thumbnail-view.edc playview/res/edje/pv-trim-control.edc playview/res/edje/pv-volume.edc playview/res/edje/pv-progressbar.edc res/edje/vp-images.edc playview/res/edje/pv-normal-control.edc playview/res/edje/pv-tag-buddy.edc playview/res/edje/pv-gesture.edc playview/res/edje/pv-volume-popup.edc playview/res/edje/pv-multi-main.edc playview/res/edje/pv-minicontroller.edc playview/res/edje/pv-zoom-guide.edc res/edje/landscape_thumbnail.edc playview/res/edje/pv-subtitle-color-popup.edc playview/res/edje/pv-popup.edc res/shared/res/video.edc res/edje/panel.edc playview/res/edje/pv-sensor-popup.edc playview/res/edje/pv-bookmark-item.edc res/edje/vp-main-layout.edc playview/res/edje/pv-subtitle.edc res/edje/vp-motion-popup.edc res/edje/popup_progressbar.edc playview/res/edje/pv-custom-winset.edc res/edje/vp-main-listview-preview.edc res/edje/vp-naviframe.edc playview/res/edje/pv-resource.edc playview/res/edje/pv-bookmark.edc playview/res/edje/pv-trim-item.edc playview/res/edje/pv-normal-function.edc res/edje/vp-speedbox-popup.edc playview/res/edje/pv-trim-top-control.edc playview/res/edje/pv-normal-main.edc playview/res/edje/pv-tag-preview.edc playview/res/edje/pv-trim-main.edc res/edje/vp-genlist-no-item.edc playview/res/edje/pv-colorselector.edc playview/res/edje/pv-lockscreenmini.edc USER_EXT_EDC0_EDCS_IMAGE_DIRS = edje/images playview/res/edje/images res/images USER_EXT_EDC0_EDCS_IMAGE_DIRS_ABS = USER_EXT_EDC0_EDCS_SOUND_DIRS = edje/sounds res/edje @@ -69,5 +69,5 @@ USER_EXT_EDC0_EDCS_FONT_DIRS_ABS = # Resource Filter USER_RES_INCLUDE = -USER_RES_EXCLUDE = res/**/*.edc res/images vp-main/res/edje/images +USER_RES_EXCLUDE = res/**/*.edc vp-main/res/edje/images diff --git a/res/edje/popup_progressbar.edc b/res/edje/popup_progressbar.edc index 69bc432..8a37248 100755 --- a/res/edje/popup_progressbar.edc +++ b/res/edje/popup_progressbar.edc @@ -14,8 +14,10 @@ * limitations under the License. */ -collections { +#include "vp-common.edc" +collections { +base_scale: CURRENT_BASE_SCALE; group { name: "popup_center_progress_move_copy"; #define DEMO_POPUP_PROGRESSVIEW_CONTENT_MIN 568 154 #define DEMO_POPUP_PROGRESSVIEW_TITLE_MIN 568 60 diff --git a/res/edje/vp-common.edc b/res/edje/vp-common.edc new file mode 100755 index 0000000..6d5e5af --- /dev/null +++ b/res/edje/vp-common.edc @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define CURRENT_BASE_SCALE 1.8 diff --git a/res/edje/vp-ctxpopup-option.edc b/res/edje/vp-ctxpopup-option.edc index c955f5e..5edeb6e 100755 --- a/res/edje/vp-ctxpopup-option.edc +++ b/res/edje/vp-ctxpopup-option.edc @@ -20,10 +20,13 @@ // /////////////////////////////////////////////////////////////////////////////////////// +#include "vp-common.edc" + #define FONT_ROM "Tizen:style=Roman" #define FONT_MED "Tizen:style=Medium" collections { +base_scale: CURRENT_BASE_SCALE; group { name:"video/option/ctxpopup"; parts { diff --git a/res/edje/vp-custom-winset-style.edc b/res/edje/vp-custom-winset-style.edc index 592d77d..af1cd5c 100755 --- a/res/edje/vp-custom-winset-style.edc +++ b/res/edje/vp-custom-winset-style.edc @@ -15,6 +15,7 @@ */ #include "image_res.edc" //#include "tizen-hd-inc.edc" +#include "vp-common.edc" externals { external: "elm"; @@ -29,6 +30,7 @@ collections { param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP"; } } + base_scale: CURRENT_BASE_SCALE; #include "vp-controlbar.edc" #include "vp-layout.edc" #include "vp-gengrid.edc" @@ -44,5 +46,5 @@ collections { #include "vp-custom-genlist-miltiline.edc" #include "vp-numberinfo.edc" #include "vp-entry-popup.edc" - #include "vp-toolbar.edc" + #include "vp-videolist-custom-gengrid.edc" } diff --git a/res/edje/vp-main-layout.edc b/res/edje/vp-main-layout.edc index 0a51e80..09f2363 100755 --- a/res/edje/vp-main-layout.edc +++ b/res/edje/vp-main-layout.edc @@ -23,7 +23,10 @@ /* elm_layout -> fundamental template style */ /*************************************************/ +#include "vp-common.edc" + collections { + base_scale: CURRENT_BASE_SCALE; group { name: "elm/layout/application/video/default"; images { image: VIDEO_STROE_DEFAULT_TOP_BG_IMAGE COMP; diff --git a/res/edje/vp-search-view-internal.edc b/res/edje/vp-search-view-internal.edc index c0de815..02dbecb 100755 --- a/res/edje/vp-search-view-internal.edc +++ b/res/edje/vp-search-view-internal.edc @@ -19,8 +19,10 @@ #include "image_res.edc" #include "vp_font.edc" +#include "vp-common.edc" collections { + base_scale: CURRENT_BASE_SCALE; group { name: "search.view.internal"; diff --git a/res/edje/vp-searchbar.edc b/res/edje/vp-searchbar.edc new file mode 100755 index 0000000..5090594 --- /dev/null +++ b/res/edje/vp-searchbar.edc @@ -0,0 +1,293 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#define SEARCH_BAR_WIDTH 428 +#define SEARCH_BAR_HEIGHT 48 +#define SEARCH_BAR_LEFT_MARGIN 296 +#define SEARCH_ICON_BG_WIDTH 64 +#define SEARCH_ICON_BG_HEIGHT 40 +#define SEARCH_ICON_SIZE 28 28 +#define MORE_ICON_SIZE 48 48 +#define CLEAR_ICON_SIZE 15 15 +#define SEARCH_BAR_MORE_PADDING 20 48 +#define SEARCH_BAR_EXPANDED_WIDTH 360 +#define SEARCH_BAR_INPUTFILED_SIZE 260 26 +#define ICON_SPACING 20 48 + + +images { + image: "search_icon_bg.png" COMP; + image: "search_bar_bg.png" COMP; + image: "icon_video_search.png" COMP; + image: "icon_search_clear.png" COMP; + image: "app_main_bg" COMP; +} + +collections { + base_scale: 2.6; + group { name: "homepage/searchbar"; + parts { + part { name: "base"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: SEARCH_BAR_WIDTH SEARCH_BAR_HEIGHT; + max: -1 SEARCH_BAR_HEIGHT; + } + } + part { name: "margin.left"; + type: SPACER; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + min: SEARCH_BAR_LEFT_MARGIN SEARCH_BAR_HEIGHT; + max: -1 SEARCH_BAR_HEIGHT; + fixed: 0 1; + rel1.to: "base"; + rel1.relative: 0.0 0.0; + rel2.to: "base"; + rel2.relative: 0.0 1.0; + align: 0.0 0.0; + //color: 0 0 255 255; + } + description { state: "searchbar_show" 0.0; + inherit: "default" 0.0; + min: 0 SEARCH_BAR_HEIGHT; + max: 0 SEARCH_BAR_HEIGHT; + } + } + part { name: "search.icon.base"; + type: IMAGE; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + min: SEARCH_ICON_BG_WIDTH SEARCH_ICON_BG_HEIGHT; + max: -1 SEARCH_ICON_BG_HEIGHT; + fixed: 0 1; + rel1 { + to_x: "margin.left"; + to_y: "base"; + relative: 1.0 0.0; + } + rel2 { + to_x: "margin.left"; + to_y: "base"; + relative: 1.0 1.0; + } + image.normal: search_icon_bg.png; + align: 0.0 0.5; + } + description { state: "searchbar_show" 0.0; + inherit: "default" 0.0; + image.normal: search_bar_bg.png; + min: SEARCH_BAR_EXPANDED_WIDTH SEARCH_ICON_BG_HEIGHT; + } + } + part { name: "search.inputfiled.swallow"; + type: SWALLOW; + scale: 1; + mouse_events: 1; + description { state: "default" 0.0; + min: 0 0; + max: 0 0; + rel.to: "search.icon.base"; + align: 0.0 0.5; + visible: 0; + } + description { state: "show" 0.0; + inherit: "default" 0.0; + min: SEARCH_BAR_INPUTFILED_SIZE; + max: SEARCH_BAR_INPUTFILED_SIZE; + rel1 { + to_x: "search.icon"; + to_y: "search.icon.base"; + relative: 1.0 0.0; + offset: 12 0; + } + rel2 { + to_x: "clear.icon"; + to_y: "search.icon.base"; + relative: 0.0 1.0; + offset: -12 0; + } + visible: 1; + } + } + part { name: "search.icon"; + type: IMAGE; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + min: SEARCH_ICON_SIZE; + max: SEARCH_ICON_SIZE; + fixed: 1 1; + rel1 { + to: "search.icon.base"; + relative: 0.0 0.0; + offset: 16 0; + } + rel2 { + to: "search.icon.base"; + relative: 0.0 1.0; + } + image.normal: icon_video_search.png; + align: 0.0 0.5; + } + } + part { name: "clear.icon"; + type: IMAGE; + scale: 1; + description { state: "default" 0.0; + min: CLEAR_ICON_SIZE; + max: CLEAR_ICON_SIZE; + fixed: 1 1; + rel1 { + to: "search.icon.base"; + relative: 1.0 0.0; + } + rel2 { + to: "search.icon.base"; + relative: 1.0 1.0; + offset: -16 0; + } + image.normal: icon_search_clear.png; + align: 1.0 0.5; + visible: 0; + } + description { state: "show_clear" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { name: "padding.searchbar.more"; + type: SPACER; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + min: ICON_SPACING; + max: ICON_SPACING; + rel1 { + to_x: "search.icon.base"; + to_y: "base"; + relative: 1.0 0.0; + } + rel2 { + to_x: "search.icon.base"; + to_y: "base"; + relative: 1.0 1.0; + } + align: 0.0 0.0; + } + } + part { name: "more.icon.swallow"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + min: MORE_ICON_SIZE; + max: MORE_ICON_SIZE; + fixed: 1 1; + rel1 { + to: "padding.searchbar.more"; + relative: 1 0; + } + rel2 { + to: "base"; + relative: 1 1; + } + visible: 1; + } + description { state: "hide" 0.0; + inherit: "default" 0.0; + visible:0; + } + } + part { name: "search.icon.space.touch"; + type: RECT; + scale: 1; + mouse_events: 1; + description { state: "default" 0.0; + rel1.to: "search.icon.base"; + rel1.relative: 0.0 0.0; + rel2.to: "search.icon.base"; + rel2.relative: 1.0 1.0; + color: 0 0 0 0; + visible: 1; + } + description { state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + } + programs { + program{ name: "search_icon_touch"; + signal: "mouse,clicked,1"; + source: "search.icon.space.touch"; + after: "show_search_bar"; + } + program { name: "show_search_bar"; + signal: "searchbar,show"; + source: "vp"; + action: STATE_SET "searchbar_show" 0.0; + target: "margin.left"; + target: "search.icon.base"; + after: "show_inputfield"; + } + program { name: "show_inputfield"; + signal: "searchbar,inputfiled,show"; + source: "vp"; + action: STATE_SET "show" 0.0; + target: "search.inputfiled.swallow"; + after: "show_clear_button"; + after: "hide_touch_space"; + } + program { name: "hide_touch_space"; + signal: "search,icon,touch,hide"; + source: "vp"; + action: STATE_SET "hide" 0.0; + target: "search.icon.space.touch"; + } + program { name: "show_clear_button"; + signal: "searchbar,clear_button,show"; + source: "vp"; + action: STATE_SET "show_clear" 0.0; + target: "clear.icon"; + } + program{ name: "clear_icon_touch"; + signal: "mouse,clicked,1"; + source: "clear.icon"; + action: STATE_SET "default" 0.0; + target: "clear.icon"; + after: "searchbar_default_state"; + } + program { name: "searchbar_default_state"; + signal: "searchbar,state,default"; + source: "vp"; + action: STATE_SET "default" 0.0; + target: "search.inputfiled.swallow"; + target: "search.icon.base"; + target: "margin.left"; + target: "search.icon.space.touch"; + } + program { name: "hide_clear_button"; + signal: "searchbar,clear_button,hide"; + source: "vp"; + action: STATE_SET "default" 0.0; + target: "clear.icon"; + } + } + } +} + diff --git a/res/edje/vp-videolist-custom-gengrid.edc b/res/edje/vp-videolist-custom-gengrid.edc new file mode 100755 index 0000000..c152cd5 --- /dev/null +++ b/res/edje/vp-videolist-custom-gengrid.edc @@ -0,0 +1,427 @@ +/* + * Copyright (c) 2020 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define GLIDE_EASE_OUT(duration) CUBIC_BEZIER (duration) 0.25 0.46 0.45 1.0 +#define GENGRID_PROGRAM_DEFAULT( TARGET ) \ + program { "default"; \ + signal: "elm,state,default"; \ + source: "elm"; \ + action: STATE_SET "default"; \ + TARGET \ + } \ + +styles { + style { name: "grid_default_text"; + base: "font=Tizen:weight=Regular:width=BreezeSans font_size=18 color=#000C2B align=center ellipsis=1.0"; + } +} + +images { + image: "video_playback_tracker.png" COMP; +} + +color_classes { + color_class { "gengrid_item/default/icon_disabled"; + color: 255 255 255 76; + } + color_class { "gengrid_item/default/icon"; + color: 255 255 255 255; + } + color_class { "gengrid_item/default/effect"; + color: 38 38 38 102; + } +} + +group { "gengrid/layout" + parts { + spacer { "base"; nomouse; scale; + desc { "default"; + } + } + spacer { "left.padding"; nomouse; scale; + desc { "default"; + min: 32 0; + max: 32 -1; + align: 0.0 0.0; + rel1 { + to: "base"; + relative: 0.0 0.0; + } + rel2 { + to: "base"; + relative: 0.0 1.0; + } + } + } + spacer { "right.padding"; nomouse; scale; + desc { "default"; + min: 32 0; + max: 32 -1; + align: 1.0 0.0; + rel1 { + to: "base"; + relative: 1.0 0.0; + } + rel2 { + to: "base"; + relative: 1.0 1.0; + } + } + } + swallow { "elm.content.swallow"; scale; + desc { "default"; + rel1.to: "left.padding"; + rel1.relative: 1.0 0.0; + rel2.to: "right.padding"; + rel2.relative: 0.0 1.0; + } + } + } +} + +group { "elm/gengrid/item/videolist_event/default" + inherit_only: 1; + + parts { + rect { "event"; nomouse; repeat; scale; + desc { "default"; + rel.to: "base"; + color: 0 0 0 0; + } + desc { "disabled"; + inherit: "default"; + hid; + } + } + } + programs { + /* Program for enabled event */ + program { "enabled"; + signal: "elm,state,enabled"; + source: "elm"; + action: STATE_SET "default"; + target: "event"; + after: "on_enabled"; + } + /* Program for disabled event */ + program { "disabled"; + signal: "elm,state,disabled"; + source: "elm"; + action: STATE_SET "disabled"; + target: "event"; + after: "on_disabled"; + } + program { "enable_event_pass"; + signal: "elm,event,pass,enabled"; + source: "elm"; + script { + set_mouse_events(PART:"event", 0); + } + } + program { "disable_event_pass"; + signal: "elm,event,pass,disabled"; + source:"elm"; + script { + set_mouse_events(PART:"event", 1); + } + } + program { "enable_event_repeat"; + signal: "elm,event,repeat,enabled"; + source: "elm"; + script { + set_repeat_events(PART:"event", 1); + } + } + program { "disable_event_repeat"; + signal: "elm,event,repeat,disabled"; + source:"elm"; + script { + set_repeat_events(PART:"event", 0); + } + } + } +} + +group { "videolist/progressbar" + parts { + spacer { "base"; scale; + desc { "default"; + //color: 255 0 0 255; + } + } + spacer { "drag_bg"; + desc { "default"; + rel.to: "base"; + } + } + part { "elm.cur.progressbar"; + scale; + dragable { + confine: "drag_bg"; + x: 1 1 1; + y: 0 0 0; + } + desc { "default"; + min: 0 4; + fixed: 1 1; + vis; + rel.to: "drag_bg"; + } + } + image { "elm.progress"; nomouse; scale; + desc { "default"; + image.normal: video_playback_tracker.png; + fixed: 1 1; + rel1 { + to: "drag_bg"; + } + rel2 { + to_x: "elm.cur.progressbar"; + to_y: "drag_bg"; + offset: -1 -1; + } + vis; + } + } + } +} + +group { "elm/gengrid/item/videolist/default"; + inherit: "elm/gengrid/item/videolist_event/default"; + data.item: "contents" "elm.icon elm.progress"; + data.item: "texts" "elm.text elm.sub.text"; + + parts { + spacer { "base"; scale; + desc { "default"; + } + } + spacer { "left_padding"; nomouse; scale; + desc { "default"; + min: 12 0; + max: 12 0; + align: 0.0 0.0; + fixed: 1 0; + rel1.to: "base"; + rel1.relative: 0.0 0.0; + rel2 { + relative: 0.0 1.0; + to: "base"; + } + } + } + spacer { "right_padding"; nomouse; scale; + desc { "default"; + min: 12 0; + max: 12 0; + align: 1.0 0.0; + fixed: 1 0; + rel1 { + relative: 1.0 0.0; + to: "base"; + } + rel2.to: "base"; + rel2.relative: 1.0 1.0; + } + } + spacer { "bottom_padding"; nomouse; scale; + desc { "default"; + min: 0 40; + max: -1 40; + align: 0.0 1.0; + fixed: 0 1; + rel1 { + to_x: "left_padding"; + to_y: "base"; + relative: 1.0 1.0; + } + rel2 { + to_x: "right_padding"; + to_y: "base"; + relative: 0.0 1.0; + } + } + } + spacer { "text_area"; nomouse; scale; + desc { "default"; + min: 0 56; + max: -1 56; + align: 0.0 1.0; + fixed: 0 1; + rel1 { + to: "bottom_padding"; + relative: 0.0 0.0; + } + rel2 { + to: "bottom_padding"; + relative: 1.0 0.0; + } + } + } + textblock { "elm.sub.text"; nomouse; scale; + desc { "default"; + min: 0 22; + max: -1 22; + fixed: 0 1; + align: 0.5 1.0; + rel1 { + relative: 0.0 1.0; + to: "text_area"; + } + rel2 { + to: "text_area"; + relative: 1.0 1.0; + } + text { + style: "grid_default_text"; + align: 0.5 0.5; + min: 0 0; + } + } + } + textblock { "elm.text"; nomouse; scale; + desc { "default"; + min: 0 22; + max: -1 22; + fixed: 0 1; + align: 0.5 1.0; + rel1 { + relative: 0.0 0.0; + to: "elm.sub.text"; + } + rel2 { + to: "elm.sub.text"; + relative: 1.0 0.0; + } + text { + style: "grid_default_text"; + align: 0.5 0.5; + min: 0 0; + } + } + } + spacer { "icon_area"; nomouse; scale; + desc { "default"; + rel1 { + to: "left_padding"; + relative: 1.0 0.0; + } + rel2 { + to: "text_area"; + relative: 1.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; + color_class: "gengrid_item/default/icon"; + } + desc { "disabled"; + inherit: "default"; + color_class: "gengrid_item/default/icon_disabled"; + } + } + spacer { "progress_area"; nomouse; scale; + desc { "default"; + min: 0 4; + max: -1 4; + align: 0.0 1.0; + fixed: 0 1; + rel1 { + to: "icon_area"; + relative: 0.0 1.0; + } + rel2 { + to: "icon_area"; + relative: 1.0 1.0; + } + } + } + swallow { "elm.progress"; nomouse; scale; + desc { "default"; + rel.to: "progress_area"; + } + } + rect { "effect_cover"; nomouse; scale; + desc { "default"; + rel.to: "elm.icon"; + color: 0 0 0 0; + color_class: "gengrid_item/default/effect"; + } + desc { "pressed"; + inherit: "default"; + color: 255 255 255 255; + } + } + // event area + rect { "event"; + desc { "default"; + rel.to: "base"; + } + desc { "disabled"; + inherit: "default"; + hid; + } + } + } + programs { + program { "play_sound"; + signal: "elm,state,clicked"; + source: "elm"; + script { + run_program(PROGRAM:"touch_sound"); + } + } + program { "touch_sound"; + action: RUN_PLUGIN "touch_sound"; + } + program { "on_enabled"; + action: STATE_SET "default"; + target: "elm.icon"; + target: "effect_cover"; + } + program { "on_disabled"; + action: STATE_SET "disabled"; + target: "elm.icon"; + } + program { "selected"; + signal: "elm,state,selected"; + source: "elm"; + action: STATE_SET "pressed"; + target: "effect_cover"; + transition: GLIDE_EASE_OUT(0.25); + } + program { "unselected"; + signal: "elm,state,unselected"; + source: "elm"; + action: STATE_SET "default"; + target: "effect_cover"; + transition: GLIDE_EASE_OUT(0.25); + } + GENGRID_PROGRAM_DEFAULT( + target: "elm.icon"; + target: "elm.progress"; + target: "effect_cover"; + target: "elm.text"; + target: "elm.sub.text"; + target: "event"; + ) + } +} diff --git a/res/images/app_main_bg.png b/res/images/app_main_bg.png new file mode 100755 index 0000000000000000000000000000000000000000..87552135319abe4af9d188ea0a45ced8802c6bce GIT binary patch literal 17724 zcmeI4&npCB7{{O8VNJ|t9cbH&EeAx}gNu{hZ5Mlygmn<399)#RIG`a3wU<3u#XLYbr<`JiO3ym zi*yndnxZqKy3EV@)J>0hDHspOx>WNwsSYg=`6(6&bxrg?UWMEg(3BnR@^yT*(OaDg ztsRc--84B1RF6MskV6uZ&Qn@>=&q6e;z9#yx-a7!>Cw4D&A1(lR{eOBSyHDLMJmXZ z9XVa;(Swb$pLMIA0KLhL;mQUbioV}>!MD;Yz4UHt{%4VyZNm}h+Z>h(a^0FSZSQdQ ziC}MgS$QJ2wT2^8%B_=nsFrx? z_-?5sx3%Up6iEfSGE9SQo-hr(m_dVWAHb$0IKif5+m4|dgj#`$X0>XmW~gYv2`nX6 zt69?z2CLu%2CL0fhu0l^Hmx)96|YSj`D z%n+O)m?4}rOF%FK!3=zFV1oiQfCkV28h8Z$4-INO@yxjZB3Ab;z-ofkge(n?NPz~> z02)98Qpdjb0mPROUqT`!Z-}4)G=K)sz#{+}Km)G@=myXL8bAY&0B8UWycVDvKm%w1 z4Lky%0W|PhfNlT{zeU4thhA$Q6L4*v3m`Hez67KgBgGhpIB;?`X!w&fq?Mw_QAGijwc`q`Ex4thf|PSR8#We zs#Cz6#0X=Q8Tr$V&^wCQ-AO?XIt3~a{Y1GeGrMPoBZQrk1pmHka9hjrM679{L>Uzt!FD(&A2X5t!KGi xQ-17(@7JvRE}{YbFve<3@p9*}YTH?@;=dEau@HV8$A$m^002ovPDHLkV1nNpl5qe4 literal 0 HcmV?d00001 diff --git a/res/images/icon_video_search.png b/res/images/icon_video_search.png new file mode 100755 index 0000000000000000000000000000000000000000..9318e77c2424a377d5c7e55102f6c80c336bc845 GIT binary patch literal 658 zcmV;D0&V??P)Nkl!WB#I7LZX2T&)1+gm#t{|j>kO~47gj8VM z0j|Jw5H85R1y>L;Bas{on|YF~5ANPwPl2X^R=bDDjWAAt@bG*KjRI0jl1fVM!g-N@&j+)uYv}^ zW_ub(Y+!b`YGW8^`UoD@Z(}v`JqSUO+yu+I#9g)Oo<{)fj1fKs+quG<_sW75tj-AG zO9&j|+JjozMMkYdn%3{|)xn(~l>?J<){rFEnbnygybIRW=eT#%BB;>pXte0gvwc}7 z-IPlI1K4a2K+LcJ-F(Hn9TjJ2wHJuI@eQ7zVO%)Xk|tVWv$3}&f=RZO>OG!qhJE29ygF|2vhgdnC_nVHCx6u4AaYu_t-{fk>_r?@&++V8 zrL@VW_iMmAsu~($8<rTL1t6 literal 0 HcmV?d00001 diff --git a/res/images/search_bar_bg.png b/res/images/search_bar_bg.png new file mode 100755 index 0000000000000000000000000000000000000000..71b2d97d1e5af37b8a90bcc64810ca27077e07fb GIT binary patch literal 1096 zcmeAS@N?(olHy`uVBq!ia0y~yV9WrrH8|LSgmf(2Br9J}V!^>A4%x2M)3*Pf0EEKV5@oSY0Z6FVZh z1XP4nZmMm*G6kms_&W4csgBiCn-Up%{{ERGndRipFp|Mr1fOp4@`X2WqXK(TtqkpSqSI5VfQFbN^jEgllFjojmNIp?My|IyrOJl)- z1rAK<4atIq)e>hfJb2swSumk@9#Fi2saWfScjQtDu}i^BR>tCt?u}oIqbAMO2Fh@m zFo`$J75w;L;pB#fd;EKr%?6vahpR?haJ~)57U2&U_e^_o66^q}##+I`b(Kbj&F9Xf z9>`qq=PSrrA~Wh6H!XbH+p#0q&sO4sJX8MJdfRz{AnznNJXqafVJ3KC=1-Fk%o`%q zfMO1f$F&OhZ%7FK|CV-P=1%U4=Np0M14D+9RjTo^V4;oCXU+#YAJ&+GogT{Z=Vo;G zxidwkyYyFSoK%9kW24Z8_l!>;E(H2OBcT7la@7U=4C}82Po4_$E*FFS^oDsGO>o6_))Ga@oHQfx6u!v}xP7e!P5t8WFneudWqd*)rMz8_8kxs9_i&SCeFhw4s1 z=dbWzu>Hux=`COP8ip+aYW%WK#fE3kqE=84IfOFpoqscz_1^kbI^BVwPD^@6+dU#o^O!K`Cgi*o;kU42#%oHJ4mxQe6>VI_u&=ka)k} z1M>$CE-|y#oz6_ZFuAFUdjoI8rx#gU)Ik9h%v9beELgbd?22gil9xKh;S9+K*b+)- z3*T@9x;>y_wZqQ636Ym}T)dX-#%P=A7HhU;56_yH^)r7s-JX04lvN@YFr_X&DSzPp mf%gYe6Ks_7&ZX`7&Um!vcI1)npZdU}fx*+&&t;ucLK6VoanpSO literal 0 HcmV?d00001 diff --git a/res/images/search_icon_bg.png b/res/images/search_icon_bg.png new file mode 100755 index 0000000000000000000000000000000000000000..e0910aeeb8eab93c5affa6ef906920a17613b10b GIT binary patch literal 737 zcmV<70v`Q|P)n<2JneLtXs=B+ns>C$K z%oYRdfi=KNU`2QqOmoVn!zO^Yz?<;A0-j0w+;oEW_tecGGg}G_0~>(V-HiPY@4g0} z0uLm8X!?JR00hN%1KWZ5O(*Zud*6UD;BFHTlLDA!ig)skAZ|(eRA-D@0A@B9*bnUJ zlO<>BZ`~ViNcvGVVI=@FTLc^h*3Q&d^m(3_z||^G_y<6+{IP_TkL+InmpeV73c$ex z+`i7?#w3l@9)o7)>)ipQEF+S9Unr#X05e+xoCfBltUchT!-aT6wgX7n^*e2PU((Ie z1I%m)I0ei}-1C~$SKI;QCwwxrPrz!M@TG75;k1Lq}u zY)^^#jnFs59Hg**nGy@jz@tIG7o;8)egV!&^4~vM;Q(PXa5!-nxF%^l>R446NqH%h zu0I(7hvMP!y2L!edk3yavUa`dilg5BaU58l2!waQB}v|0@|WaL9)AQ}@2WiBjwsX% z56r@%$xp!RfDWKmnzqRJePI`{1@Oj+K^AX>cnsW;)SBu;8v%%unAx%rENvUWsPQZC z5V$Al{ZxwAo&rq=nwfWxYz%F39y~1!K~%4+%O1x1X6BE##(Cqz6G`4K*R}itUpL;> T#fL~p00000NkvXXu0mjfbe~N` literal 0 HcmV?d00001 diff --git a/res/images/video_playback_tracker.png b/res/images/video_playback_tracker.png new file mode 100755 index 0000000000000000000000000000000000000000..2c58676ffafd94fac7c5c9f2f3f154d53d714046 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^r9jNW!3HEZR2AF+af+QhLpXq-h9ji|$dC1OaSXBW ze|zPipo4)x>%;%D$!<{#m~VAV4qDM5w9+ADQ`(#@6K<@1@b`Y=)h(HBw;BZZFJk36 zZ4}lzLvP`}7gF;7MJ+@gO<|q8J47jAPSt(=TY}E2k^9dY>`2{alT{#ad|7GFPoPB% Mp00i_>zopr0L4cpListViewBaselayout, VIDEOS_NOCONTENT_MSG_NO_VIDEOS_IDS, VIDEOS_NOCONTENT_MSG_NO_VIDEOS_DESC_IDS); - elm_object_part_content_unset(g_pFolderView-> + Evas_Object *old_content = elm_object_part_content_unset(g_pFolderView-> pMainWidget->pListViewBaselayout, SWALLOW_LISTVIEW_CONTENT); + evas_object_hide(old_content); if (g_pFolderView->pVideosGenlist) { evas_object_hide(g_pFolderView->pVideosGenlist); } @@ -1134,6 +1136,32 @@ static void __mp_folder_view_rotate_cb(void *data, Evas_Object * obj, __mp_folder_view_append_grid_layout(g_pFolderView->pVideosGenlist); } + + +/** + * @brief set the folder list on toolbar item select callback + * @param pMainViewHandle + * @param pMainViewWidget + * @param eUpdateType + * @param pUpdateVideoListUserCb + */ +void mp_folder_view_folder_list_set(void *pMainHandle, void *pMainViewWidget, + MpListUpdateType eUpdateType, UpdateListItemsCbFunc pUpdateVideoListUserCb) +{ + VideoLogDebug("IN"); + if(g_pFolderView == NULL) + { + mp_folder_view_arrange_folder_list(pMainHandle, pMainViewWidget, eUpdateType, pUpdateVideoListUserCb); + } else { + Evas_Object *curr_content = elm_object_part_content_get(g_pFolderView->pMainWidget->pListViewBaselayout, SWALLOW_LISTVIEW_CONTENT); + if(curr_content != g_pFolderView->pCurrentLayout) + { + curr_content = elm_object_part_content_unset(g_pFolderView->pMainWidget->pListViewBaselayout, SWALLOW_LISTVIEW_CONTENT); + evas_object_hide(curr_content); + elm_object_part_content_set(g_pFolderView->pMainWidget->pListViewBaselayout, SWALLOW_LISTVIEW_CONTENT, g_pFolderView->pCurrentLayout); + } + } +} /** * * @param pMainViewHandle @@ -1175,11 +1203,6 @@ void mp_folder_view_arrange_folder_list(void *pMainViewHandle, mp_util_get_main_window_handle ()); - elm_object_item_part_text_set(g_pFolderView-> - pMainHandle->pNaviFrameItem, - "elm.text.title", - VIDEOS_TITLE_OPT_FOLDER); - VideoLogInfo(""); int nFolderListSize = 0; @@ -1198,7 +1221,7 @@ void mp_folder_view_arrange_folder_list(void *pMainViewHandle, if (nFolderListSize > 0) { if (g_pFolderView->pNocontentlayout) { - elm_object_part_content_unset(g_pFolderView->pNocontentlayout, + elm_object_part_content_unset(g_pFolderView->pMainWidget->pListViewBaselayout, SWALLOW_LISTVIEW_CONTENT); MP_DEL_OBJ(g_pFolderView->pNocontentlayout); } @@ -1229,6 +1252,8 @@ void mp_folder_view_arrange_folder_list(void *pMainViewHandle, __mp_folder_view_add_genlist_cb(g_pFolderView->pVideosGenlist); #endif } + Evas_Object *old_content = elm_object_part_content_unset(g_pFolderView->pMainWidget->pListViewBaselayout, SWALLOW_LISTVIEW_CONTENT); + evas_object_hide(old_content); elm_object_part_content_set(g_pFolderView-> pMainWidget->pListViewBaselayout, SWALLOW_LISTVIEW_CONTENT, @@ -1239,8 +1264,10 @@ void mp_folder_view_arrange_folder_list(void *pMainViewHandle, "wm,rotation,changed", __mp_folder_view_rotate_cb, NULL); evas_object_show(g_pFolderView->pVideosGenlist); + g_pFolderView->pCurrentLayout = g_pFolderView->pVideosGenlist; } else { __mp_folder_view_create_no_content(); + g_pFolderView->pCurrentLayout = g_pFolderView->pNocontentlayout; } mp_list_view_update_count_layout(); diff --git a/src/view/mp-video-list-view-main.c b/src/view/mp-video-list-view-main.c index 0dfc34e..76a3fa0 100755 --- a/src/view/mp-video-list-view-main.c +++ b/src/view/mp-video-list-view-main.c @@ -64,9 +64,22 @@ #include "mp-util-config.h" +#define TOOLBAR_BUTTON_VIDEOS "Videos" +#define TOOLBAR_BUTTOn_FOLDERS "Folders" + static st_VideoListViewMainViewHandle *g_pMainViewHandle = NULL; static st_VideoListViewMainViewWidget *g_pMainViewWidget = NULL; +typedef struct _toolbar_item_data +{ + Elm_Object_Item *videos_item; + Elm_Object_Item *folders_item; +}toolbar_item_data; + +static toolbar_item_data g_pToolbarItemData = {NULL, NULL}; + + + /*///////////////////////////////////////////////////*/ /* Pre-define function for building.*/ @@ -1157,6 +1170,7 @@ Evas_Object *mp_list_view_create_base_layout(void *pParent) evas_object_size_hint_weight_set (g_pMainViewWidget->pListViewBaselayout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_weight_set(g_pMainViewWidget->pListViewBaselayout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(g_pMainViewWidget->pListViewBaselayout, EVAS_HINT_FILL, EVAS_HINT_FILL); @@ -1186,6 +1200,63 @@ static void __mp_list_personal_view_display(void) LIST_UPDATE_TYPE_ALL); } +static void +toolbar_videos_item_cb(void *data, Evas_Object *obj, void *event_info) +{ + VideoLogInfo("Called"); + mp_thumbnail_view_list_content_set(g_pMainViewHandle, g_pMainViewWidget, + LIST_UPDATE_TYPE_ALL, (void *)__mp_list_view_result_user_cb); +} + +static void +toolbar_folders_item_cb(void *data, Evas_Object *obj, void *event_info) +{ + VideoLogInfo("Called"); + mp_folder_view_folder_list_set(g_pMainViewHandle, g_pMainViewWidget, + LIST_UPDATE_TYPE_ALL, (void *)__mp_list_view_result_user_cb); +} + +Evas_Object* mp_list_view_create_toolbar(Evas_Object* naviframe) +{ + Evas_Object *toolbar; + + toolbar = elm_toolbar_add(naviframe); + + elm_object_style_set(toolbar, "tabbar"); + elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_EXPAND); + elm_toolbar_transverse_expanded_set(toolbar, EINA_TRUE); + + g_pToolbarItemData.videos_item = elm_toolbar_item_append(toolbar, NULL, TOOLBAR_BUTTON_VIDEOS, toolbar_videos_item_cb, NULL); + g_pToolbarItemData.folders_item = elm_toolbar_item_append(toolbar, NULL, TOOLBAR_BUTTOn_FOLDERS, toolbar_folders_item_cb, NULL); + + ///elm_toolbar_select_mode_set(toolbar, ELM_OBJECT_SELECT_MODE_ALWAYS); + + return toolbar; +} + +Evas_Object* mp_list_view_create_title_content(Evas_Object* naviframe) +{ + Evas_Object* layout = elm_layout_add(naviframe); + char path[1024] = {0, }; + char *res_path = app_get_resource_path(); + snprintf(path, 1024, "%s%s/%s", res_path, "edje", "vp-searchbar.edj"); + elm_layout_file_set(layout, path, "homepage/searchbar"); + + Evas_Object* more_button = elm_button_add(layout); + elm_object_style_set(more_button, "naviframe/more"); + elm_object_part_content_set(layout, "more.icon.swallow", more_button); + + Evas_Object *entry = elm_entry_add(layout); + elm_entry_single_line_set(entry, EINA_TRUE); + elm_entry_scrollable_set(entry, EINA_TRUE); + eext_entry_selection_back_event_allow_set(entry, EINA_TRUE); + evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_object_part_content_set(layout, "search.inputfiled.swallow", entry); + + return layout; +} + /** * * @param pNaviFrameHandle @@ -1219,16 +1290,21 @@ void mp_list_view_init_widget(void *pNaviFrameHandle) } g_pMainViewHandle->pNaviFrameItem = - elm_naviframe_item_push(g_pMainViewHandle->pNaviFrameHandle, - VIDEOS_TITLE_VIDEO, NULL, NULL, - g_pMainViewWidget->pListViewBaselayout, - NULL); + elm_naviframe_item_push(g_pMainViewHandle->pNaviFrameHandle, NULL, NULL, NULL, + g_pMainViewWidget->pListViewBaselayout, NULL); + + Evas_Object* toolbar = mp_list_view_create_toolbar(g_pMainViewHandle->pNaviFrameHandle); + elm_object_item_part_content_set(g_pMainViewHandle->pNaviFrameItem, "toolbar", toolbar); + elm_object_item_signal_emit(g_pMainViewHandle->pNaviFrameItem, "elm,state,toolbar,show", "elm"); + + Evas_Object* title_content = mp_list_view_create_title_content(g_pMainViewHandle->pNaviFrameHandle); + elm_object_item_part_content_set(g_pMainViewHandle->pNaviFrameItem, "title_content", title_content); + elm_object_item_signal_emit(g_pMainViewHandle->pNaviFrameItem, "elm,state,title_content,show", "elm"); elm_naviframe_item_pop_cb_set(g_pMainViewHandle->pNaviFrameItem, mp_list_view_back_btn_cb, g_pMainViewHandle); - elm_naviframe_item_title_enabled_set(g_pMainViewHandle->pNaviFrameItem, - EINA_TRUE, EINA_FALSE); + //elm_naviframe_item_title_enabled_set(g_pMainViewHandle->pNaviFrameItem, EINA_FALSE, EINA_FALSE); evas_object_smart_callback_add(g_pMainViewHandle->pNaviFrameHandle, "transition,finished", mp_list_view_naviframe_transition_effect_cb, @@ -1244,6 +1320,7 @@ void mp_list_view_init_widget(void *pNaviFrameHandle) if (g_pMainViewHandle->nListTabType == LIST_TAB_TYPE_PERSONAL) { __mp_list_personal_view_display(); } + elm_toolbar_item_selected_set(g_pToolbarItemData.videos_item, EINA_TRUE); } /** diff --git a/src/view/mp-video-list-view-thumbnail.c b/src/view/mp-video-list-view-thumbnail.c index fee0caf..3eaab08 100755 --- a/src/view/mp-video-list-view-thumbnail.c +++ b/src/view/mp-video-list-view-thumbnail.c @@ -64,37 +64,35 @@ /*the max update waiting time is VIDEO_WALL_UPDATE_TIMER*VIDEO_WALL_UPDATE_TIMER_COUNTER*/ #define VIDEO_WALL_UPDATE_TIMER_COUNTER 6 +// Width is ICON(280) + LEFT_PADDING(12) RIGHT_PADDING(12) +#define GENGRID_ITEM_WIDTH 304 +//Height is ICON(160) + TEXT_PART(56) + Bottom_PADDING(40) +#define GENGRID_ITEM_HEIGHT 256 + +typedef struct _stGengridItemData{ + Elm_Object_Item *item; + Evas_Object *icon; + Evas_Object *progress_layout; + int videoIndex; +}stGengridItemData; + typedef struct { UpdateListItemsCbFunc fViewCbFunc; st_VideoListViewMainViewHandle *pMainHandle; st_VideoListViewMainViewWidget *pMainWidget; - Evas_Object *pVideosGenlist; - - Eina_List *pVideoItemList; + Evas_Object *pCurrentLayout; + Evas_Object *pVideolistGengrid; + Evas_Object *pGengridContainer; + Elm_Gengrid_Item_Class *pVideolistGIC; Ecore_Idler *pPlayIdler; - Ecore_Timer *pStartWallTimer; - Ecore_Idler *pWallResolutionIdler; MpListUpdateType eUpdateType; - - /*wall */ - Eina_List *pWallHandleList; Evas_Object *pNocontentlayout; - - Elm_Genlist_Item_Class *pGenGridItc; - Elm_Genlist_Item_Class *pGenGridZoomItc; - Elm_Genlist_Item_Class *pNoItemItc; - Elm_Gengrid_Item_Class *pGenGridItc_l; - Elm_Gengrid_Item_Class *pGenGridItc_r; - + stGengridItemData *pSelectedItemData; bool bLandscape; - int nSelectedVideoItem; - int nUpdateTimerCounter; - int zoom_level; } stThumbnailView; - static stThumbnailView *g_pThumbnailView = NULL; @@ -109,117 +107,11 @@ static void __mp_thumbnail_view_realize_genlist_item_cb(void *pUserData, Evas_Object * pObject, void *pEventInfo); -static void __mp_thumbnail_view_append_gengrid_items(Evas_Object * - pGengrid, - int nGenItemIndex); -static Evas_Object *__mp_thumbnail_view_create_gengrid(Evas_Object * - parent, int nWidth, - int nHeight); +static void __mp_thumbnail_view_append_gengrid_items(Evas_Object *pGengrid); static void __mp_thumbnail_view_reset(MpListUpdateType eUpdateType); - -/** - * - * @return - */ -static int mp_thumbnail_get_portrait_count() -{ - if (g_pThumbnailView->zoom_level == VP_ZOOM_IN_MAX) - return VP_GENLIST_THUMB_PORTRAIT_COUNT_ZOOM_IN; - - return VP_GENLIST_THUMB_PORTRAIT_COUNT; -} - -/** - * - * @return - */ -static int mp_thumbnail_get_landscape_count() -{ - if (g_pThumbnailView->zoom_level == VP_ZOOM_IN_MAX) - return VP_GENLIST_THUMB_LANDSPACE_COUNT_ZOOM_IN; - - return VP_GENLIST_THUMB_LANDSPACE_COUNT; -} - -/** - * - * @param height - * @param width - */ -void mp_thumbnail_get_icon_dimensions(int *height, int *width) -{ - int winHeight = 0; - int winWidth = 0; - elm_win_screen_size_get(mp_util_get_main_window_handle(), NULL, NULL, - &winWidth, &winHeight); - - bool bLandscape = mp_rotate_ctrl_check_landspace(); - if (bLandscape) { - *width = winHeight / mp_thumbnail_get_landscape_count(); - } else { - *width = winWidth / mp_thumbnail_get_portrait_count(); - } - - if (g_pThumbnailView->zoom_level == VP_ZOOM_IN_MAX) - *height = VP_ALBUM_THUMB_ICON_HEIGHT_ZOOM_IN * MP_SCALE; - else - *height = VP_ALBUM_THUMB_ICON_HEIGHT * MP_SCALE; -} - -/** - * - * @param nIndexGenlist - */ -void mp_thumbnail_view_cancel_thumbnail_update(int nIndexGenlist) -{ - if (!g_pThumbnailView) { - VideoLogError(""); - return; - } - - bool bLandscape = mp_rotate_ctrl_check_landspace(); - int nVideoItemIndex = 0; - int nItemCount = VP_GENLIST_THUMB_PORTRAIT_COUNT; - - if (bLandscape) { - nItemCount = VP_GENLIST_THUMB_LANDSPACE_COUNT; - } - - nVideoItemIndex = nIndexGenlist * nItemCount; - int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type(); - VideoLogInfo("realize is %d--%d--%d", nItemCount, nVideoItemIndex, - nVideoListSize); - - int nIndex = 0; - for (; (nIndex < nItemCount) && (nVideoItemIndex < nVideoListSize); - nIndex++) { - nVideoItemIndex = nVideoItemIndex + nIndex; - - mp_util_svc_cancel_thumbnail_update(nVideoItemIndex); - } - -} - -/** - * - * @param nVideoItemIndex - * @return - */ -int mp_thumbnail_view_thumbnail_to_genlist_index(int nVideoItemIndex) -{ - /*nVideoItemIndex = 0-->max */ - if (nVideoItemIndex < 0) { - VideoLogDebug("invalid nVideoItemIndex"); - return 0; - } - int nItemCount = mp_thumbnail_get_portrait_count(); - int nGenlistIndex = 0; - if (g_pThumbnailView->bLandscape) { - nItemCount = mp_thumbnail_get_landscape_count(); - } - nGenlistIndex = nVideoItemIndex / nItemCount; - return nGenlistIndex; -} +static void __mp_thumbnail_view_gengrid_realize_cb(void *pUserData, + Evas_Object *pObject, + void *pEventInfo); /** * @@ -283,202 +175,16 @@ static Eina_Bool __mp_thumbnail_view_play_video_idler_cb(void *pUserData) return ECORE_CALLBACK_CANCEL; } -/** - * - * @param pUserData - * @param pObject - * @param pPart - * @return - */ -static Evas_Object *__mp_thumbnail_view_get_icon_of_grid_cb(const void - *pUserData, - Evas_Object * - pObject, - const char - *pPart) -{ - if (!g_pThumbnailView || !pObject) { - VideoLogError("g_pMainViewWidgetOfThumbnailList is NULL"); - return NULL; - } - - int nGenItemIndex = (int) pUserData; - int nHeight = 0; - int nWidth = 0; - mp_thumbnail_get_icon_dimensions(&nHeight, &nWidth); - - Evas_Object *pGengrid = - __mp_thumbnail_view_create_gengrid(pObject, nWidth, nHeight); - __mp_thumbnail_view_append_gengrid_items(pGengrid, nGenItemIndex); - - return pGengrid; -} - -/** - * - * @param data - * @param obj - * @param event_info - */ -static void __mp_thumbnail_view_video_item_del_cb(void *data, - Evas_Object * obj, - void *event_info) -{ - if (!g_pThumbnailView || !event_info - || !g_pThumbnailView->pVideoItemList) { - VideoLogError("g_pMainViewWidge is NULL"); - return; - } - int nIndexGenlist = 0; - Elm_Object_Item *pCurrentItem = (Elm_Object_Item *) event_info; - - Eina_List *pCurList = NULL; - Elm_Object_Item *pTmpVideoItem = NULL; - EINA_LIST_FOREACH(g_pThumbnailView->pVideoItemList, pCurList, - pTmpVideoItem) { - if (pCurrentItem == pTmpVideoItem) { - nIndexGenlist = (int) elm_object_item_data_get(pCurrentItem); - mp_thumbnail_view_cancel_thumbnail_update(nIndexGenlist); - pTmpVideoItem = NULL; - pCurList->data = NULL; - break; - } - } -} - #ifdef ENABLE_LONGPRESS static void __mp_thumbnail_view_free_video_wall_item(char *pVideoItemId) { - if (!pVideoItemId || !g_pThumbnailView - || !g_pThumbnailView->pWallHandleList) { + if (!pVideoItemId || !g_pThumbnailView ) { VideoLogError(""); return; } } #endif -/** - * - * @param pGenlist - * @return - */ -static bool __mp_thumbnail_view_append_grid_layout(void *pGenlist) -{ - if (!pGenlist || !g_pThumbnailView) { - VideoLogError("error handle."); - return FALSE; - } - int nIndex = 0; - int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type(); - if (nVideoListSize <= 0) { - VideoLogWarning("nVideoListSize = %d", nVideoListSize); - return FALSE; - } - - MP_DEL_ITC(g_pThumbnailView->pGenGridItc); - g_pThumbnailView->pGenGridItc = elm_genlist_item_class_new(); - - g_pThumbnailView->pGenGridItc->item_style = "video/1icon.thumbnail"; - g_pThumbnailView->pGenGridItc->func.text_get = NULL; - g_pThumbnailView->pGenGridItc->func.content_get = - (void *) __mp_thumbnail_view_get_icon_of_grid_cb; - g_pThumbnailView->pGenGridItc->func.state_get = NULL; - g_pThumbnailView->pGenGridItc->func.del = NULL; - g_pThumbnailView->pGenGridItc->decorate_item_style = NULL; - - MP_DEL_ITC(g_pThumbnailView->pGenGridZoomItc); - g_pThumbnailView->pGenGridZoomItc = elm_genlist_item_class_new(); - g_pThumbnailView->pGenGridZoomItc->item_style = - "video/1icon.thumbnail.zoom"; - g_pThumbnailView->pGenGridZoomItc->func.text_get = NULL; - g_pThumbnailView->pGenGridZoomItc->func.content_get = - (void *) __mp_thumbnail_view_get_icon_of_grid_cb; - g_pThumbnailView->pGenGridZoomItc->func.state_get = NULL; - g_pThumbnailView->pGenGridZoomItc->func.del = NULL; - g_pThumbnailView->pGenGridZoomItc->decorate_item_style = NULL; - - int nGenlistRow = 0; - nGenlistRow = - mp_thumbnail_view_thumbnail_to_genlist_index(nVideoListSize - 1); - Elm_Object_Item *pTmpVideoGenlistItem = NULL; - - if (g_pThumbnailView->zoom_level == VP_ZOOM_IN_MAX) { - for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) { - pTmpVideoGenlistItem = - elm_genlist_item_append(pGenlist, - g_pThumbnailView->pGenGridZoomItc, - (void *) nIndex, NULL, - ELM_GENLIST_ITEM_NONE, NULL, NULL); - - g_pThumbnailView->pVideoItemList = - eina_list_append(g_pThumbnailView->pVideoItemList, - pTmpVideoGenlistItem); - elm_object_item_del_cb_set(pTmpVideoGenlistItem, - __mp_thumbnail_view_video_item_del_cb); - } - } else { - for (nIndex = 0; nIndex <= nGenlistRow; nIndex++) { - pTmpVideoGenlistItem = - elm_genlist_item_append(pGenlist, - g_pThumbnailView->pGenGridItc, - (void *) nIndex, NULL, - ELM_GENLIST_ITEM_NONE, NULL, NULL); - - g_pThumbnailView->pVideoItemList = - eina_list_append(g_pThumbnailView->pVideoItemList, - pTmpVideoGenlistItem); - elm_object_item_del_cb_set(pTmpVideoGenlistItem, - __mp_thumbnail_view_video_item_del_cb); - } - } - - - MP_DEL_TIMER(g_pThumbnailView->pStartWallTimer); - g_pThumbnailView->nUpdateTimerCounter = 0; - - return TRUE; -} - -/** - * - * @param pUserData - * @param pObject - * @param pPart - * @return - */ -Evas_Object *__mp_thumbnail_view_get_icon_of_no_item_cb(const void - *pUserData, - Evas_Object * - pObject, - const char *pPart) -{ - char edj_path[1024] = { 0 }; - - char *path = app_get_resource_path(); - snprintf(edj_path, 1024, "%s%s/%s", path, "edje", - VIDEO_PLAYER_NO_ITEM_EDJ); - free(path); - if (!strcmp(pPart, "elm.icon")) { - int width = NO_ITEM_GENLIST_WIDTH * elm_config_scale_get(); - int height = NO_ITEM_GENLIST_HEIGHT * elm_config_scale_get(); - - Evas_Object *pNoItemLayout = NULL; - pNoItemLayout = elm_layout_add(pObject); - elm_layout_file_set(pNoItemLayout, edj_path, - GENLIST_NOITEM_EDJ_GROUP); - evas_object_size_hint_min_set(pNoItemLayout, width, height); - - elm_object_part_text_set(pNoItemLayout, - SWALLOW_LISTVIEW_NO_ITEM_TEXT, - VIDEOS_NOCONTENT_MSG_NO_VIDEOS_DESC); - evas_object_show(pNoItemLayout); - return pNoItemLayout; - } - - return NULL; -} - - /*//////////////////////////////////////////////////*/ /* External APIs*/ /** @@ -503,9 +209,9 @@ static void __mp_thumbnail_view_rotate_cb(void *data, Evas_Object * obj, } else { g_pThumbnailView->bLandscape = false; } - elm_genlist_clear(g_pThumbnailView->pVideosGenlist); - __mp_thumbnail_view_append_grid_layout - (g_pThumbnailView->pVideosGenlist); + elm_gengrid_clear(g_pThumbnailView->pVideolistGengrid); + __mp_thumbnail_view_append_gengrid_items(g_pThumbnailView->pVideolistGengrid); + } /** @@ -520,9 +226,6 @@ int _grid_view_zoom_out(void *data, Evas_Object * view) (st_VideoListViewMainViewWidget *) data; g_pThumbnailView->zoom_level = ad->zoom_level; - elm_genlist_clear(g_pThumbnailView->pVideosGenlist); - __mp_thumbnail_view_append_grid_layout - (g_pThumbnailView->pVideosGenlist); return 0; } @@ -539,13 +242,86 @@ int _grid_view_zoom_in(void *data, Evas_Object * view) (st_VideoListViewMainViewWidget *) data; g_pThumbnailView->zoom_level = ad->zoom_level; - elm_genlist_clear(g_pThumbnailView->pVideosGenlist); - __mp_thumbnail_view_append_grid_layout - (g_pThumbnailView->pVideosGenlist); return 0; } +Evas_Object* _create_gengrid(Evas_Object *parent) +{ + if(parent == NULL) + { + VideoLogError("gengrid parent is invalid"); + return NULL; + } + Evas_Object *gengrid = elm_gengrid_add(parent); + evas_object_size_hint_weight_set(gengrid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(gengrid, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_gengrid_item_size_set(gengrid, GENGRID_ITEM_WIDTH, GENGRID_ITEM_HEIGHT); +#ifdef ENABLE_LONGPRESS + evas_object_smart_callback_add(gengrid, "longpressed", + __mp_thumbnail_view_gengrid_long_press_cb, + NULL); +#endif + evas_object_smart_callback_add(gengrid, "realized", + __mp_thumbnail_view_gengrid_realize_cb, + NULL); + + return gengrid; +} + +Evas_Object* _create_gengrid_container_layout(Evas_Object *parent) +{ + if(parent == NULL) + { + VideoLogError("parent layout is invalid"); + return NULL; + } + 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); + + Evas_Object* layout = elm_layout_add(parent); + elm_layout_file_set(layout, edj_path, "gengrid/layout"); + evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + + if(layout == NULL) + { + VideoLogError("Failed to create gengrid contaienr layout"); + return NULL; + } + + Evas_Object* gengrid = _create_gengrid(layout); + if( gengrid ) + { + elm_object_part_content_set(layout, "elm.content.swallow", gengrid); + g_pThumbnailView->pVideolistGengrid = gengrid; + } + return layout; +} + + +bool mp_thumbnail_view_list_content_set(void *pMainViewHandle, void *pMainViewWidget, + MpListUpdateType eUpdateType, UpdateListItemsCbFunc pUpdateVideoListUserCb) +{ + VideoLogDebug(""); + if(g_pThumbnailView == NULL) + { + return mp_thumbnail_view_arrange_list_item(pMainViewHandle, pMainViewWidget, eUpdateType, pUpdateVideoListUserCb); + } else { + Evas_Object *curr_content = elm_object_part_content_get(g_pThumbnailView->pMainWidget->pListViewBaselayout, SWALLOW_LISTVIEW_CONTENT); + if(curr_content != g_pThumbnailView->pCurrentLayout) + { + curr_content = elm_object_part_content_unset(g_pThumbnailView->pMainWidget->pListViewBaselayout, SWALLOW_LISTVIEW_CONTENT); + evas_object_hide(curr_content); + elm_object_part_content_set(g_pThumbnailView->pMainWidget->pListViewBaselayout, SWALLOW_LISTVIEW_CONTENT, g_pThumbnailView->pCurrentLayout); + return TRUE; + } + } + return FALSE; +} + /** * * @param pMainViewHandle @@ -560,6 +336,7 @@ bool mp_thumbnail_view_arrange_list_item(void *pMainViewHandle, UpdateListItemsCbFunc pUpdateVideoListUserCb) { + srand((unsigned int)time(NULL)); VideoLogInfo(""); if (!pMainViewHandle || !pMainViewWidget || !pUpdateVideoListUserCb) { @@ -587,14 +364,11 @@ bool mp_thumbnail_view_arrange_list_item(void *pMainViewHandle, g_pThumbnailView->pMainWidget = pMainViewWidget; g_pThumbnailView->eUpdateType = eUpdateType; g_pThumbnailView->zoom_level = VP_ZOOM_IN_DEFAULT; - g_pThumbnailView->bLandscape = - mp_rotate_ctrl_check_landspace_by_win((Evas_Object *) - mp_util_get_main_window_handle - ()); + g_pThumbnailView->bLandscape = mp_rotate_ctrl_check_landspace_by_win((Evas_Object *)mp_util_get_main_window_handle()); - st_VideoListViewMainViewHandle *pMainHandle = - g_pThumbnailView->pMainHandle; - g_pThumbnailView->pVideosGenlist = pMainHandle->pVideosGenlist; + st_VideoListViewMainViewHandle *pMainHandle = g_pThumbnailView->pMainHandle; + // To do what is this used for ? + //g_pThumbnailView->pVideosGenlist = pMainHandle->pVideosGenlist; int nVideoListSize = 0; @@ -613,73 +387,53 @@ bool mp_thumbnail_view_arrange_list_item(void *pMainViewHandle, mp_ft_ctrl_destroy(); } - - if (!g_pThumbnailView->pVideosGenlist) { - g_pThumbnailView->pVideosGenlist = - elm_genlist_add(g_pThumbnailView-> - pMainWidget->pListViewBaselayout); - elm_scroller_bounce_set(g_pThumbnailView->pVideosGenlist, - EINA_FALSE, EINA_TRUE); - evas_object_size_hint_weight_set(g_pThumbnailView->pVideosGenlist, - EVAS_HINT_EXPAND, - EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(g_pThumbnailView->pVideosGenlist, - EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_genlist_mode_set(g_pThumbnailView->pVideosGenlist, - ELM_LIST_COMPRESS); - elm_scroller_single_direction_set(g_pThumbnailView->pVideosGenlist, - ELM_SCROLLER_SINGLE_DIRECTION_HARD); - evas_object_show(g_pThumbnailView-> - pMainWidget->pListViewBaselayout); - } - - elm_object_part_content_set(g_pThumbnailView-> - pMainWidget->pListViewBaselayout, - SWALLOW_LISTVIEW_CONTENT, - g_pThumbnailView->pVideosGenlist); if (nVideoListSize > 0) { - if (g_pThumbnailView->pNocontentlayout) { - elm_object_part_content_unset - (g_pThumbnailView->pNocontentlayout, - SWALLOW_LISTVIEW_CONTENT); + Evas_Object *old_content = elm_object_part_content_unset(g_pThumbnailView->pMainWidget->pListViewBaselayout, SWALLOW_LISTVIEW_CONTENT); + if (g_pThumbnailView->pNocontentlayout && old_content == g_pThumbnailView->pNocontentlayout ) { MP_DEL_OBJ(g_pThumbnailView->pNocontentlayout); + } else { + evas_object_hide(old_content); + } + if(g_pThumbnailView->pGengridContainer == NULL) + { + g_pThumbnailView->pGengridContainer = _create_gengrid_container_layout(g_pThumbnailView->pMainWidget->pListViewBaselayout); } - _vp_pinch_add_event(g_pThumbnailView->pMainWidget, - g_pThumbnailView-> - pMainWidget->pListViewBaselayout); - __mp_thumbnail_view_append_grid_layout - (g_pThumbnailView->pVideosGenlist); + _vp_pinch_add_event(g_pThumbnailView->pMainWidget, g_pThumbnailView->pMainWidget->pListViewBaselayout); + + __mp_thumbnail_view_append_gengrid_items(g_pThumbnailView->pVideolistGengrid); + // Keep track of the current layout to set content + g_pThumbnailView->pCurrentLayout = g_pThumbnailView->pGengridContainer; } else { - g_pThumbnailView->pNocontentlayout = - mp_create_nocontent_layout(g_pThumbnailView-> - pMainWidget->pListViewBaselayout, - VIDEOS_NOCONTENT_MSG_NO_VIDEOS_IDS, - VIDEOS_NOCONTENT_MSG_NO_VIDEOS_DESC_IDS); - elm_object_part_content_unset(g_pThumbnailView-> - pMainWidget->pListViewBaselayout, - SWALLOW_LISTVIEW_CONTENT); - if (g_pThumbnailView->pVideosGenlist) { - evas_object_hide(g_pThumbnailView->pVideosGenlist); + if(g_pThumbnailView->pNocontentlayout == NULL) + { + g_pThumbnailView->pNocontentlayout = + mp_create_nocontent_layout(g_pThumbnailView->pMainWidget->pListViewBaselayout, + VIDEOS_NOCONTENT_MSG_NO_VIDEOS_IDS, + VIDEOS_NOCONTENT_MSG_NO_VIDEOS_DESC_IDS); + } + elm_object_part_content_unset(g_pThumbnailView->pMainWidget->pListViewBaselayout, SWALLOW_LISTVIEW_CONTENT); + if (g_pThumbnailView->pGengridContainer) { + evas_object_hide(g_pThumbnailView->pGengridContainer); } - evas_object_show(g_pThumbnailView-> - pMainWidget->pListViewBaselayout); - elm_object_part_content_set(g_pThumbnailView-> - pMainWidget->pListViewBaselayout, + evas_object_show(g_pThumbnailView->pMainWidget->pListViewBaselayout); + elm_object_part_content_set(g_pThumbnailView->pMainWidget->pListViewBaselayout, SWALLOW_LISTVIEW_CONTENT, g_pThumbnailView->pNocontentlayout); + // Keep track of the current layout to set content + g_pThumbnailView->pCurrentLayout = g_pThumbnailView->pNocontentlayout; } evas_object_smart_callback_add((Evas_Object *) mp_util_get_main_window_handle(), "wm,rotation,changed", __mp_thumbnail_view_rotate_cb, NULL); - mp_list_common_set_callabcks(g_pThumbnailView->pMainHandle, - __mp_thumbnail_view_language_changed_genlist_cb, - __mp_thumbnail_view_realize_genlist_item_cb, - NULL, NULL); + // mp_list_common_set_callabcks(g_pThumbnailView->pMainHandle, + // __mp_thumbnail_view_language_changed_genlist_cb, + // __mp_thumbnail_view_realize_genlist_item_cb, + // NULL, NULL); - evas_object_show(g_pThumbnailView->pVideosGenlist); + evas_object_show(g_pThumbnailView->pGengridContainer); return TRUE; } @@ -690,22 +444,21 @@ bool mp_thumbnail_view_arrange_list_item(void *pMainViewHandle, */ int mp_thumbnail_view_get_selected_video_item_index(void) { - if (!g_pThumbnailView) { + if (!g_pThumbnailView && (g_pThumbnailView->pSelectedItemData)) { VideoLogError(""); return 0; } + int index = g_pThumbnailView->pSelectedItemData->videoIndex; + VideoLogInfo("Selected item video index : %d", index); - VideoLogInfo("g_pThumbnailView->nSelectedVideoItem : %d", - g_pThumbnailView->nSelectedVideoItem); - - return g_pThumbnailView->nSelectedVideoItem; + return index; } /** * * @param nVideoItemIndex */ -static void __mp_thumbnail_view_update_video_items(int nVideoItemIndex) +static void __mp_thumbnail_view_update_video_items(Elm_Object_Item *item, int nVideoItemIndex) { if (!g_pThumbnailView) { VideoLogError("g_pMainViewHandleOfThumbnailList are not existed."); @@ -713,54 +466,7 @@ static void __mp_thumbnail_view_update_video_items(int nVideoItemIndex) } mp_util_svc_update_thumbnail_info(nVideoItemIndex); -} - -/** - * - * @param nVideoItemIndex - */ -void mp_thumbnail_view_update_genlist_item(int nVideoItemIndex) -{ - - if (!g_pThumbnailView || !g_pThumbnailView->pVideosGenlist) { - VideoSecureLogError("invalid handle."); - return; - } - - if (!g_pThumbnailView->pVideoItemList) { - VideoSecureLogError - ("g_pThumbnailView->pVideosGenlist is not existed."); - return; - } - - int nGenistIndex = - mp_thumbnail_view_thumbnail_to_genlist_index(nVideoItemIndex); - Elm_Object_Item *pTmpVideoGenlistItem = - (Elm_Object_Item *) eina_list_nth(g_pThumbnailView->pVideoItemList, - nGenistIndex); - if (pTmpVideoGenlistItem) { - VideoLogWarning("Update index: %d", nVideoItemIndex); - Evas_Object *gengrid = - elm_object_item_part_content_get(pTmpVideoGenlistItem, - "elm.icon"); - if (gengrid) { - int nCount = - (mp_rotate_ctrl_check_landspace() ? - VP_GENLIST_THUMB_LANDSPACE_COUNT : - VP_GENLIST_THUMB_PORTRAIT_COUNT); - int nIndex = nVideoItemIndex % nCount; - Elm_Object_Item *updateItem = - elm_gengrid_first_item_get(gengrid); - while (nIndex > 0 && updateItem) { - updateItem = elm_gengrid_item_next_get(updateItem); - --nIndex; - } - - VideoLogWarning("updateItem: %p", updateItem); - if (updateItem) - elm_gengrid_item_update(updateItem); - } - } + elm_gengrid_item_update(item); } #ifdef ENABLE_LONGPRESS @@ -1018,8 +724,8 @@ static bool __mp_thumbnail_view_normal_is_top_view(void) */ static void __mp_thumbnail_view_update_cb(int nError, const char *szPath, void *pUserData) -{ - int nVideoItemIndex = (int) pUserData; +{ stGengridItemData *item_data = pUserData; + int nVideoItemIndex = item_data->videoIndex; VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex); @@ -1028,11 +734,6 @@ static void __mp_thumbnail_view_update_cb(int nError, const char *szPath, return; } - if (!g_pThumbnailView) { - VideoLogError("g_pMainViewWidgetOfThumbnailView is not existed."); - return; - } - if (!__mp_thumbnail_view_normal_is_top_view()) { VideoLogError("Main list view is not top view."); return; @@ -1046,15 +747,7 @@ static void __mp_thumbnail_view_update_cb(int nError, const char *szPath, return; } - __mp_thumbnail_view_update_video_items(nVideoItemIndex); - - - if (g_pThumbnailView->pVideosGenlist) { - mp_thumbnail_view_update_genlist_item(nVideoItemIndex); - } else { - VideoLogError - ("[ERR] No exist g_pMainViewWidgetOfNormalList->pVideolistItemList."); - } + __mp_thumbnail_view_update_video_items(item_data->item, nVideoItemIndex); } /** @@ -1072,24 +765,6 @@ static void __mp_thumbnail_view_update_empty_cb(int nError, VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex); } -/** - * - * @param pUserData - * @param pObject - * @param pEventInfo - */ -static void __mp_thumbnail_view_realize_genlist_item_cb(void *pUserData, - Evas_Object * - pObject, - void *pEventInfo) -{ - if (!pEventInfo || !g_pThumbnailView) { - VideoLogError - ("invalid pEveninfo 0r g_pMainViewWidgetOfThumbnailList"); - return; - } -} - /** * * @param pUserData @@ -1107,7 +782,6 @@ static void __mp_thumbnail_view_language_changed_genlist_cb(void VideoLogError("pObject is NULL"); return; } - elm_genlist_realized_items_update(pObject); } /** @@ -1138,9 +812,9 @@ static void __mp_thumbnail_view_gengrid_long_press_cb(void *pUserData, VideoLogError("pEventInfo is not existed."); return; } + stGengridItemData *item_data = elm_object_item_data_get((Elm_Object_Item *) pEventInfo); + int nVideoItemIndex = item_data->videoIndex; - int nVideoItemIndex = - (int) elm_object_item_data_get((Elm_Object_Item *) pEventInfo); VideoLogInfo("Select nVideoItemIndex: %d", nVideoItemIndex); if (nVideoItemIndex < 0 || nVideoItemIndex >= @@ -1169,12 +843,13 @@ static void __mp_thumbnail_view_gengrid_long_press_cb(void *pUserData, mp_option_ctrl_show(g_pThumbnailView->pMainHandle->pNaviFrameHandle, (const char *) title, nVideoItemIndex, pRegisteCbFunc, __mp_thumbnail_view_result_pop_up, - g_pThumbnailView->pVideosGenlist, + /* is it the correct user data here*/ + g_pThumbnailView->pVideolistGengrid, MP_LIST_OPTION_CLOUD_DOWNLOAD_ITEM); if (mp_option_ctrl_get_handle()) { - evas_object_data_set(g_pThumbnailView->pVideosGenlist, "popup", + evas_object_data_set(g_pThumbnailView->pVideolistGengrid, "popup", mp_option_ctrl_get_handle()); - elm_object_scroll_freeze_push(g_pThumbnailView->pVideosGenlist); + elm_object_scroll_freeze_push(g_pThumbnailView->pVideolistGengrid); } MP_FREE_STRING(pRegisteCbFunc); MP_FREE_STRING(title); @@ -1188,8 +863,8 @@ static void __mp_thumbnail_view_gengrid_long_press_cb(void *pUserData, * @param pEventInfo */ static void __mp_thumbnail_view_gengrid_realize_cb(void *pUserData, - Evas_Object * pObject, - void *pEventInfo) + Evas_Object * pObject, + void *pEventInfo) { if (!pEventInfo) { @@ -1198,9 +873,8 @@ static void __mp_thumbnail_view_gengrid_realize_cb(void *pUserData, } vp_share_view_update_share_panel(); - - int nVideoItemIndex = - (int) elm_object_item_data_get((Elm_Object_Item *) pEventInfo); + 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 >= @@ -1217,15 +891,12 @@ static void __mp_thumbnail_view_gengrid_realize_cb(void *pUserData, if (!pThumbIconUri) { if (nVideoItemIndex < nVideoListSize - 1) { mp_util_svc_register_thumbnail_update_func(nVideoItemIndex, - __mp_thumbnail_view_update_empty_cb, - (void *) - 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 *) - nVideoItemIndex); + (void *)__mp_thumbnail_view_update_cb, + (void *)item_data); } } else { free(pThumbIconUri); @@ -1233,35 +904,6 @@ static void __mp_thumbnail_view_gengrid_realize_cb(void *pUserData, } } -/** - * - * @param parent - * @param nWidth - * @param nHeight - * @return - */ -static Evas_Object *__mp_thumbnail_view_create_gengrid(Evas_Object * - parent, int nWidth, - int nHeight) -{ - Evas_Object *pGengrid = - mp_util_create_gengrid(parent, nWidth, nHeight, EINA_TRUE); - if (!pGengrid) { - VideoLogError("pVideoGrid is not existed."); - return NULL; - } -#ifdef ENABLE_LONGPRESS - evas_object_smart_callback_add(pGengrid, "longpressed", - __mp_thumbnail_view_gengrid_long_press_cb, - NULL); -#endif - evas_object_smart_callback_add(pGengrid, "realized", - __mp_thumbnail_view_gengrid_realize_cb, - NULL); - - return pGengrid; -} - /** * * @param pUserData @@ -1276,7 +918,8 @@ static char *__mp_thumbnail_view_get_label_of_grid_item_cb(const void const char *pPart) { - int nVideoItemIndex = (int) pUserData; + const stGengridItemData *item_data = pUserData; + int nVideoItemIndex = item_data->videoIndex; if (!strcmp(pPart, "elm.text")) { char *szTitle; @@ -1289,11 +932,9 @@ static char *__mp_thumbnail_view_get_label_of_grid_item_cb(const void } return szTitleUtf8; - } else if (!strcmp(pPart, "elm.text.2")) { + } else if (!strcmp(pPart, "elm.sub.text")) { return mp_util_svc_get_duration_str_time(nVideoItemIndex); - } else { } - return NULL; } @@ -1304,79 +945,44 @@ static char *__mp_thumbnail_view_get_label_of_grid_item_cb(const void * @param pPart * @return */ -static Evas_Object *__mp_thumbnail_view_get_grid_icon_cb(const void - *pUserData, - Evas_Object * - pObject, - const char - *pPart) +static Evas_Object *__mp_thumbnail_view_get_grid_icon_cb(const void *pUserData, + Evas_Object *pObject, + const char *pPart) { - int nVideoItemIndex = (int) pUserData; - char edj_path[1024] = { 0 }; + 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_PLAYER_IMAGE_NAME_EDJ); + snprintf(edj_path, 1024, "%s%s/%s", path, "edje", VIDEO_CUSTOM_THEME); free(path); - if (!strcmp(pPart, "elm.swallow.icon")) { - char *pThumbIconUri = - mp_util_svc_get_video_thumbnail(nVideoItemIndex); - Evas_Object *thumb = NULL; - int nWidth = 0; - int nHeight = 0; - - thumb = elm_image_add(pObject); - elm_image_preload_disabled_set(thumb, EINA_FALSE); - elm_image_smooth_set(thumb, EINA_FALSE); - elm_image_prescale_set(thumb, 50 * MP_SCALE); - elm_image_file_set(thumb, pThumbIconUri, NULL); - elm_image_object_size_get(thumb, &nWidth, &nHeight); - if (nWidth > nHeight) { - elm_image_aspect_fixed_set(thumb, EINA_FALSE); - } - if (thumb) - evas_object_show(thumb); - MP_FREE_STRING(pThumbIconUri); - return thumb; - } else if (!strcmp(pPart, "elm.progressbar.icon")) { - return NULL; - - } else if (!strcmp(pPart, "elm.lock.icon")) { - char *pVideoFile = mp_util_svc_get_video_url(nVideoItemIndex); - bool bRet = mp_util_check_video_personal_status((const char *) - pVideoFile); - MP_FREE_STRING(pVideoFile); - if (bRet) { - Evas_Object *pLockIcon = elm_image_add(pObject); - elm_image_file_set(pLockIcon, edj_path, - VIDEO_LIST_VIEW_ICON_PERSONAL_LOCK); - evas_object_size_hint_align_set(pLockIcon, EVAS_HINT_FILL, - EVAS_HINT_FILL); - evas_object_size_hint_weight_set(pLockIcon, EVAS_HINT_EXPAND, - EVAS_HINT_EXPAND); - evas_object_show(pLockIcon); - return pLockIcon; - } else { - return NULL; - } - } else if (!strcmp(pPart, "elm.dropbox.icon")) { - bool bRet = mp_util_svc_is_cloud_storage(nVideoItemIndex); - if (bRet) { - Evas_Object *pDropboxIcon = elm_image_add(pObject); - elm_image_file_set(pDropboxIcon, edj_path, - VIDEO_LIST_VIEW_ICON_DROPBOX); - evas_object_size_hint_align_set(pDropboxIcon, EVAS_HINT_FILL, - EVAS_HINT_FILL); - evas_object_size_hint_weight_set(pDropboxIcon, - EVAS_HINT_EXPAND, - EVAS_HINT_EXPAND); - evas_object_show(pDropboxIcon); - return pDropboxIcon; - } else { - return NULL; - } - } + if (!strcmp(pPart, "elm.icon")) { + char *pThumbIconUri = mp_util_svc_get_video_thumbnail(nVideoItemIndex); + 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; + + return img; + } + else if(!strcmp(pPart, "elm.progress")) + { + Evas_Object *progessbar = elm_layout_add(pObject); + Eina_Bool ret = elm_layout_file_set(progessbar, edj_path, "videolist/progressbar"); + VideoLogInfo("layout file set %s %s",(ret? "Successful": "Failed"), pPart); + evas_object_size_hint_weight_set(progessbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(progessbar, EVAS_HINT_FILL, EVAS_HINT_FILL); + double value = (((double) rand() ) / RAND_MAX ); + edje_object_part_drag_value_set(elm_layout_edje_get(progessbar), "elm.cur.progressbar", value, 0.0); + + item_data->progress_layout = progessbar; + return progessbar; + } return NULL; } @@ -1399,7 +1005,7 @@ static void __mp_thumbnail_view_select_grid_item_cb(void *pUserData, VideoLogInfo("[ERR]No have pUserData"); return; } - Evas_Object *pPopup = evas_object_data_get(g_pThumbnailView->pVideosGenlist, "popup"); /* Get popup */ + Evas_Object *pPopup = evas_object_data_get(g_pThumbnailView->pVideolistGengrid, "popup"); /* Get popup */ if (pPopup) { VideoLogInfo("long press is called"); return; /* If popup exists, do nothing */ @@ -1416,7 +1022,8 @@ static void __mp_thumbnail_view_select_grid_item_cb(void *pUserData, return; } - int nVideoItemIndex = (int) pUserData; + stGengridItemData *item_data = pUserData; + int nVideoItemIndex = item_data->videoIndex; int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type(); VideoLogDebug("nVideoItemIndex = %d--%d", nVideoItemIndex, @@ -1428,8 +1035,7 @@ static void __mp_thumbnail_view_select_grid_item_cb(void *pUserData, } VideoLogInfo("nVideoItemIndex : %d", nVideoItemIndex); - - g_pThumbnailView->nSelectedVideoItem = nVideoItemIndex; + g_pThumbnailView->pSelectedItemData = item_data; MP_DEL_IDLER(g_pThumbnailView->pPlayIdler); g_pThumbnailView->pPlayIdler = @@ -1444,14 +1050,17 @@ static void __mp_thumbnail_view_select_grid_item_cb(void *pUserData, * @param event_info */ static void __mp_thumbnail_view_grid_item_del_cb(void *pUserdata, - Evas_Object * obj, - void *event_info) + Evas_Object * obj, + void *event_info) { - if (!g_pThumbnailView || !event_info - || !g_pThumbnailView->pVideoItemList) { + if (!g_pThumbnailView || !event_info) { VideoLogError("g_pMainViewWidge is NULL"); return; } + stGengridItemData *item_data = pUserdata; + Elm_Object_Item *item = event_info; + elm_object_item_data_set(item, NULL); + free(item_data); } /** @@ -1459,77 +1068,39 @@ static void __mp_thumbnail_view_grid_item_del_cb(void *pUserdata, * @param pGengrid * @param nGenItemIndex */ -static void __mp_thumbnail_view_append_gengrid_items(Evas_Object * - pGengrid, - int nGenItemIndex) +static void __mp_thumbnail_view_append_gengrid_items(Evas_Object *pGengrid) { if (!g_pThumbnailView) { VideoLogError(""); return; } - MP_DEL_GRID_ITC(g_pThumbnailView->pGenGridItc_l); - g_pThumbnailView->pGenGridItc_l = elm_gengrid_item_class_new(); - - g_pThumbnailView->pGenGridItc_l->item_style = "video/album_grid"; - g_pThumbnailView->pGenGridItc_l->func.text_get = - (void *) __mp_thumbnail_view_get_label_of_grid_item_cb; - g_pThumbnailView->pGenGridItc_l->func.content_get = - (void *) __mp_thumbnail_view_get_grid_icon_cb; - g_pThumbnailView->pGenGridItc_l->func.state_get = NULL; - g_pThumbnailView->pGenGridItc_l->func.del = NULL; - + if(g_pThumbnailView->pVideolistGIC == NULL) + { + g_pThumbnailView->pVideolistGIC = elm_gengrid_item_class_new(); + g_pThumbnailView->pVideolistGIC->item_style = "videolist"; + g_pThumbnailView->pVideolistGIC->func.text_get = + (void *) __mp_thumbnail_view_get_label_of_grid_item_cb; + g_pThumbnailView->pVideolistGIC->func.content_get = + (void *) __mp_thumbnail_view_get_grid_icon_cb; + g_pThumbnailView->pVideolistGIC->func.state_get = NULL; + g_pThumbnailView->pVideolistGIC->func.del = NULL; + } - int nCount = - (mp_rotate_ctrl_check_landspace() ? - mp_thumbnail_get_landscape_count() : - mp_thumbnail_get_portrait_count()); - int nIndex = nGenItemIndex * nCount; - int nMaxIndex = nIndex + nCount; int nVideoListSize = mp_util_svc_get_number_of_video_item_by_type(); Elm_Object_Item *gridItem = NULL; - for (; (nIndex < nMaxIndex) && (nIndex < nVideoListSize); nIndex++) { - gridItem = - elm_gengrid_item_append(pGengrid, - g_pThumbnailView->pGenGridItc_l, - (void *) nIndex, - __mp_thumbnail_view_select_grid_item_cb, - (void *) nIndex); - elm_gengrid_item_select_mode_set(gridItem, - ELM_OBJECT_SELECT_MODE_ALWAYS); - elm_object_item_del_cb_set(gridItem, - __mp_thumbnail_view_grid_item_del_cb); - elm_object_item_data_set(gridItem, (void *) nIndex); - } -} - -/** - * - */ -static void __mp_thumbnail_view_free_genlist_item_list(void) -{ - if (!g_pThumbnailView) { - VideoLogError(""); - return; - } - - if (g_pThumbnailView->pVideoItemList) { - Elm_Object_Item *pTmpVideoGenlistItem = NULL; - EINA_LIST_FREE(g_pThumbnailView->pVideoItemList, - pTmpVideoGenlistItem) { - if (pTmpVideoGenlistItem) { - int nIndex = - (int) elm_object_item_data_get(pTmpVideoGenlistItem); - mp_thumbnail_view_cancel_thumbnail_update(nIndex); - elm_object_item_del(pTmpVideoGenlistItem); - } - - pTmpVideoGenlistItem = NULL; - } - - g_pThumbnailView->pVideoItemList = NULL; + int nIndex = 0; + for (nIndex = 0; nIndex < nVideoListSize; nIndex++) { + stGengridItemData *item_data = calloc(1, sizeof(stGengridItemData)); + item_data->videoIndex = nIndex; + item_data->item = elm_gengrid_item_append(pGengrid, + g_pThumbnailView->pVideolistGIC, + (void *) item_data, + __mp_thumbnail_view_select_grid_item_cb, + (void *) item_data); + elm_gengrid_item_select_mode_set(gridItem, ELM_OBJECT_SELECT_MODE_ALWAYS); + elm_object_item_del_cb_set(gridItem, __mp_thumbnail_view_grid_item_del_cb); } - } /** @@ -1540,21 +1111,17 @@ void mp_thumbnail_view_destroy(void) VideoLogInfo(""); if (g_pThumbnailView) { - __mp_thumbnail_view_free_genlist_item_list(); + elm_gengrid_clear(g_pThumbnailView->pVideolistGengrid); - MP_DEL_ITC(g_pThumbnailView->pGenGridItc); - MP_DEL_ITC(g_pThumbnailView->pGenGridZoomItc); MP_DEL_IDLER(g_pThumbnailView->pPlayIdler); - MP_DEL_TIMER(g_pThumbnailView->pStartWallTimer); - MP_DEL_IDLER(g_pThumbnailView->pWallResolutionIdler); - MP_DEL_GRID_ITC(g_pThumbnailView->pGenGridItc_l); - MP_DEL_GRID_ITC(g_pThumbnailView->pGenGridItc_r); - MP_DEL_OBJ(g_pThumbnailView->pVideosGenlist); + MP_DEL_OBJ(g_pThumbnailView->pVideolistGengrid); + MP_DEL_GRID_ITC(g_pThumbnailView->pVideolistGIC); + MP_DEL_OBJ(g_pThumbnailView->pGengridContainer); + g_pThumbnailView->pCurrentLayout = NULL; free(g_pThumbnailView); g_pThumbnailView = NULL; - evas_object_smart_callback_del((Evas_Object *) - mp_util_get_main_window_handle(), + evas_object_smart_callback_del((Evas_Object *)mp_util_get_main_window_handle(), "wm,rotation,changed", __mp_thumbnail_view_rotate_cb); } @@ -1567,31 +1134,19 @@ void mp_thumbnail_view_destroy(void) static void __mp_thumbnail_view_reset(MpListUpdateType eUpdateType) { if (g_pThumbnailView) { - __mp_thumbnail_view_free_genlist_item_list(); + elm_gengrid_clear(g_pThumbnailView->pVideolistGengrid); - MP_DEL_ITC(g_pThumbnailView->pGenGridItc); - MP_DEL_ITC(g_pThumbnailView->pGenGridZoomItc); MP_DEL_IDLER(g_pThumbnailView->pPlayIdler); - MP_DEL_TIMER(g_pThumbnailView->pStartWallTimer); - MP_DEL_IDLER(g_pThumbnailView->pWallResolutionIdler); - - MP_DEL_GRID_ITC(g_pThumbnailView->pGenGridItc_l); - MP_DEL_GRID_ITC(g_pThumbnailView->pGenGridItc_r); g_pThumbnailView->fViewCbFunc = NULL; g_pThumbnailView->pMainHandle = NULL; g_pThumbnailView->pMainWidget = NULL; - g_pThumbnailView->nSelectedVideoItem = 0; - g_pThumbnailView->nUpdateTimerCounter = 0; - g_pThumbnailView->pVideosGenlist = NULL; + g_pThumbnailView->pSelectedItemData = NULL; + g_pThumbnailView->pCurrentLayout = NULL; g_pThumbnailView->eUpdateType = LIST_UPDATE_TYPE_NONE; - if (g_pThumbnailView->pVideosGenlist) { - elm_genlist_clear(g_pThumbnailView->pVideosGenlist); - } - evas_object_smart_callback_del((Evas_Object *) - mp_util_get_main_window_handle(), - "wm,rotation,changed", - __mp_thumbnail_view_rotate_cb); + evas_object_smart_callback_del((Evas_Object *)mp_util_get_main_window_handle(), + "wm,rotation,changed", + __mp_thumbnail_view_rotate_cb); } } @@ -1601,41 +1156,18 @@ static void __mp_thumbnail_view_reset(MpListUpdateType eUpdateType) */ void mp_thumbnail_view_update_played_item(void) { - if (!g_pThumbnailView || (g_pThumbnailView->nSelectedVideoItem < 0)) { + if (!g_pThumbnailView || (g_pThumbnailView->pSelectedItemData == NULL)) { VideoLogInfo("No item to update."); return; } - VideoLogInfo("%d", g_pThumbnailView->nSelectedVideoItem); + VideoLogInfo("%d", g_pThumbnailView->pSelectedItemData->videoIndex); - if (g_pThumbnailView->pVideosGenlist) { - int nGenItemIndex = g_pThumbnailView->nSelectedVideoItem; + if (g_pThumbnailView->pVideolistGengrid) { + int nGenItemIndex = g_pThumbnailView->pSelectedItemData->videoIndex; - int nGenlistIndex = nGenItemIndex; - g_pThumbnailView->bLandscape = - mp_rotate_ctrl_check_landspace_by_win((Evas_Object *) - mp_util_get_main_window_handle - ()); - if (g_pThumbnailView->bLandscape) { - nGenlistIndex = - nGenlistIndex / mp_thumbnail_get_landscape_count(); - } else { - nGenlistIndex = - nGenlistIndex / mp_thumbnail_get_portrait_count(); - } - Elm_Object_Item *pTmpVideoGenlistItem = NULL; - pTmpVideoGenlistItem = - elm_genlist_nth_item_get((const Evas_Object *) - g_pThumbnailView->pVideosGenlist, - nGenlistIndex); - mp_util_svc_update_thumbnail_info - (g_pThumbnailView->nSelectedVideoItem); - - Evas_Object *pGengrid = - elm_object_item_part_content_get(pTmpVideoGenlistItem, - "elm.icon"); - Elm_Object_Item *pTmpVideoGengridItem = NULL; - pTmpVideoGengridItem = elm_gengrid_selected_item_get(pGengrid); - elm_gengrid_item_update(pTmpVideoGengridItem); + mp_util_svc_update_thumbnail_info(nGenItemIndex); + + elm_gengrid_item_update(g_pThumbnailView->pSelectedItemData->item); } } @@ -1644,21 +1176,13 @@ void mp_thumbnail_view_update_played_item(void) */ void mp_thumbnail_view_update_video_list(void) { - if (!g_pThumbnailView || !g_pThumbnailView->pVideosGenlist) { + if (!g_pThumbnailView || !g_pThumbnailView->pVideolistGengrid) { VideoLogWarning - ("[ERR] pVideosGenlist or g_pMainViewWidget are NULL."); + ("[ERR] pVideolistGengrid or g_pMainViewWidget are NULL."); return; } VideoLogInfo(""); - Elm_Object_Item *pNextGenlistItem = NULL; - Elm_Object_Item *pCurrGenlistItem = - elm_genlist_first_item_get(g_pThumbnailView->pVideosGenlist); - - while (pCurrGenlistItem) { - elm_genlist_item_update(pCurrGenlistItem); - pNextGenlistItem = elm_genlist_item_next_get(pCurrGenlistItem); - pCurrGenlistItem = pNextGenlistItem; - } + elm_gengrid_realized_items_update(g_pThumbnailView->pVideolistGengrid); } diff --git a/src/viewMgr/videos-view-mgr.c b/src/viewMgr/videos-view-mgr.c index 3d0848f..9bc717d 100755 --- a/src/viewMgr/videos-view-mgr.c +++ b/src/viewMgr/videos-view-mgr.c @@ -140,10 +140,13 @@ static Evas_Object *__mp_mgr_create_bg(Evas_Object * pWin) /* default BG */ Evas_Object *bg = NULL; + char path[1024] = {0, }; + char *res_path = app_get_resource_path(); + snprintf(path, 1024, "%s%s\%s", res_path, "images", "app_main_bg.png"); + VideoLogInfo("Main BG Path: %s", path); + bg = elm_bg_add(pWin); - Eina_Bool ret = elm_bg_file_set(bg, - "/usr/apps/org.tizen.videos/res/images/core_theme_bg_01.png", - NULL); + Eina_Bool ret = elm_bg_file_set(bg, path, NULL); if (ret != true) { VideoLogInfo("failed to set layout bg"); } -- 2.34.1