st_VideoListViewMainViewWidget *pMainWidget;
void *pNaviFrameHandle;
void *pNaviframeItem;
- void *pVideosGenlist;
+ void *pVideosGenlist; // only required because of long press code..it is not used anywhere else...remove when remove long press source.
Evas_Object *pFolderItemGengrid;
Elm_Gengrid_Item_Class *pFolderItemGIC;
typedef struct {
Evas_Object *pNocontentLayout;
Evas_Object *pBackButton;
-
- Eina_List *pVideolistItemList;
+ Evas_Object *pFolderItemViewBaseLayout;
+ Evas_Object *pTitleContent;
+ Eina_List *pVideolistItemList; // only required because of long press code..it is not used anywhere else...remove when remove long press source.
} st_VideoFolderViewWidget;
st_VideoFolderViewHandle *g_pFolderViewHandle = NULL;
static void mp_folder_view_cancel_thumbnail_update(int nIndexGenlist);
static int __mp_folder_item_view_get_sort_type(void);
void mp_folder_item_view_check_more_button_of_toolbar(void);
-static void __mp_folder_soft_back_button_cb(void *data, Evas_Object * obj, void *event_info);
+static void __mp_folder_item_view_soft_back_button_cb(void *data, Evas_Object * obj, void *event_info);
/**
*
*
* @param nIndexGenlist
*/
+ // Note: Only used in long press operation
static void mp_folder_view_cancel_thumbnail_update(int nIndexGenlist)
{
if (!g_pFolderViewWidget) {
* @param obj
* @param event_info
*/
+ // Note: Only used in long press operation
static void __mp_folder_item_view_video_item_del_cb(void *data,
Evas_Object * obj,
void *event_info)
{
Evas_Object* button = elm_button_add(parent);
elm_object_style_set(button, "naviframe/back_btn/default");
- evas_object_smart_callback_add(button, "clicked", __mp_folder_soft_back_button_cb, NULL);
+ evas_object_smart_callback_add(button, "clicked", __mp_folder_item_view_soft_back_button_cb, NULL);
+ evas_object_show(button);
return button;
}
void mp_folder_item_view_update_base_layout_content(Evas_Object* content)
{
- VideoLogError("g_pFolderViewWidget->pBackButton: %p", g_pFolderViewWidget->pBackButton);
+ if(g_pFolderViewWidget->pFolderItemViewBaseLayout == NULL)
+ {
+ VideoLogError("baselayout [%p] may be invalid", g_pFolderViewWidget->pFolderItemViewBaseLayout);
+ }
mp_folder_view_set_is_item_view(true);
- Evas_Object* old_content = mp_list_view_base_layout_content_set(content);
+ Evas_Object* old_content = elm_object_part_content_get(g_pFolderViewWidget->pFolderItemViewBaseLayout, "elm.content.swallow");
+ if(content == old_content)
+ {
+ VideoLogInfo("Content already swallowed");
+ return;
+ }
+ old_content = elm_object_part_content_unset(g_pFolderViewWidget->pFolderItemViewBaseLayout, "elm.content.swallow");
if(old_content == g_pFolderViewWidget->pNocontentLayout)
{
MP_DEL_OBJ(g_pFolderViewWidget->pNocontentLayout);
g_pFolderViewWidget->pNocontentLayout = NULL;
+ } else {
+ evas_object_hide(old_content);
}
- char *folder_name = mp_util_svc_get_video_folder_name(g_pFolderViewHandle->nFolder_index);
- if(g_pFolderViewWidget->pBackButton == NULL)
- {
- g_pFolderViewWidget->pBackButton = __mp_folder_item_view_create_back_button(g_pFolderViewHandle->pNaviframeItem);
- }
- evas_object_show(g_pFolderViewWidget->pBackButton);
- mp_list_view_update_naviframe_title(folder_name, g_pFolderViewWidget->pBackButton);
- mp_folder_item_view_check_more_button_of_toolbar();
- MP_FREE_STRING(folder_name);
+ elm_object_part_content_set(g_pFolderViewWidget->pFolderItemViewBaseLayout, "elm.content.swallow", content);
+ evas_object_show(content);
}
/**
*
* @param nItemSortType
* @param eUpdateType
- * @param pVideosGenlist
+ * @param pFolderItemGengrid
* @return
*/
static bool __mp_folder_item_view_arrange_video_list(int nItemSortType,
g_pFolderViewHandle->currentItemCount = nVideoListSize;
elm_gengrid_clear(pFolderItemGengrid);
+ Evas_Object *current_content = NULL;
if (nVideoListSize > 0) {
VideoLogError("Video Count: %d", nVideoListSize);
__mp_folder_item_view_append_gengrid_items(pFolderItemGengrid);
evas_object_show(pFolderItemGengrid);
- g_pFolderViewHandle->pCurrentLayout = pFolderItemGengrid;
+ current_content = pFolderItemGengrid;
} else {
VideoLogError("Adding no content layout");
if(g_pFolderViewWidget->pNocontentLayout == NULL)
evas_object_hide(pFolderItemGengrid);
//show no content layout
evas_object_show(g_pFolderViewWidget->pNocontentLayout);
- g_pFolderViewHandle->pCurrentLayout = g_pFolderViewWidget->pNocontentLayout;
+ current_content = g_pFolderViewWidget->pNocontentLayout;
}
- mp_folder_item_view_update_base_layout_content(g_pFolderViewHandle->pCurrentLayout);
+ mp_folder_item_view_update_base_layout_content(current_content);
return true;
}
mp_ft_ctrl_hide_more_popup();
char *szFolderPath = NULL;
- szFolderPath =
- mp_util_svc_get_video_folder_url(g_pFolderViewHandle->
- nFolder_index);
- mp_search_view_push((void *) mp_mgr_get_library_naviframe(),
- szFolderPath);
+ szFolderPath = mp_util_svc_get_video_folder_url(g_pFolderViewHandle->nFolder_index);
+ mp_search_view_push((void *) mp_mgr_get_library_naviframe(),szFolderPath);
MP_FREE_STRING(szFolderPath);
- mp_search_view_register_update_list_func
- (__mp_folder_item_view_result_user_cb,
- __mp_folder_item_view_result_view_update_cb);
+ mp_search_view_register_update_list_func(__mp_folder_item_view_result_user_cb, __mp_folder_item_view_result_view_update_cb);
}
-/**
- *
- * @param pUserData
- * @param pObject
- * @param pEventInfo
- */
-void __mp_folder_item_view_search_item_cb(void *pUserData,
- Evas_Object * pObject,
- void *pEventInfo)
-{
- VideoLogInfo("");
-
- __mp_folder_item_view_show_search_view();
-}
// Naviframe title button
/**
/**
*
- * @param pVideosGenlist
+ * @param pVideosGengrid
*/
-static void __mp_folder_item_view_update_video_items(void *pVideosGenlist)
+static void __mp_folder_item_view_update_video_items(Evas_Object *pVideosGengrid)
{
- if (!pVideosGenlist) {
- VideoLogInfo("[ERR] pVideosGenlist or g_pMainViewWidget are NULL.");
+ if (!pVideosGengrid) {
+ VideoLogInfo("[ERR] pVideosGengrid is NULL.");
return;
}
VideoLogInfo("");
- elm_gengrid_realized_items_update((Evas_Object*)pVideosGenlist);
+
+ elm_gengrid_realized_items_update(pVideosGengrid);
}
/**
__mp_folder_item_view_append_gengrid_items(g_pFolderViewHandle->pFolderItemGengrid);
}
-static Eina_Bool delete_folder_item_view_idler_cb(void *data)
+static void mp_folder_item_view_destroy()
{
VideoLogError("");
if(g_pFolderViewHandle == NULL)
{
VideoLogError("g_pFolderViewHandle is invalid");
- return ECORE_CALLBACK_CANCEL;
+ return;
}
+
+ mp_util_db_set_update_fun(g_pFolderViewHandle->euLev, NULL);
elm_gengrid_clear(g_pFolderViewHandle->pFolderItemGengrid);
MP_DEL_GRID_ITC(g_pFolderViewHandle->pFolderItemGIC);
MP_DEL_OBJ(g_pFolderViewHandle->pFolderItemGengrid);
- g_pFolderViewHandle->nPlayVideoIndex = -1;
- MP_FREE_STRING(g_pFolderViewHandle->pFolderUrl);
if (g_pFolderViewWidget) {
MP_DEL_OBJ(g_pFolderViewWidget->pNocontentLayout);
MP_DEL_OBJ(g_pFolderViewWidget->pBackButton);
+ MP_DEL_OBJ(g_pFolderViewWidget->pTitleContent);
+ MP_DEL_OBJ(g_pFolderViewWidget->pFolderItemViewBaseLayout);
free(g_pFolderViewWidget);
g_pFolderViewWidget = NULL;
}
+
+ g_pFolderViewHandle->nPlayVideoIndex = -1;
+ MP_FREE_STRING(g_pFolderViewHandle->pFolderUrl);
+
evas_object_smart_callback_del((Evas_Object *)mp_util_get_main_window_handle(),
"wm,rotation,changed",
__mp_folder_item_view_rotate_cb);
free(g_pFolderViewHandle);
g_pFolderViewHandle = NULL;
- return ECORE_CALLBACK_CANCEL;
+}
+
+void mp_folder_item_view_pop()
+{
+ if(g_pFolderViewHandle == NULL)
+ {
+ VideoLogError("g_pFolderViewHandle is invalid");
+ return;
+ }
+ VideoLogInfo("");
+ if(g_pFolderViewHandle->pUpdateListUserCbFunc)
+ {
+ g_pFolderViewHandle->pUpdateListUserCbFunc(LIST_UPDATE_TYPE_ALL);
+ }
+}
+
+static void __mp_folder_item_view_trans_finished_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ if(g_pFolderViewHandle == NULL)
+ {
+ VideoLogError("g_pFolderViewHandle is invalid");
+ return;
+ }
+ VideoLogInfo("");
+ mp_folder_item_view_destroy();
+ evas_object_smart_callback_del(obj, "transition,finished", __mp_folder_item_view_trans_finished_cb);
}
/**
* @param obj
* @param event_info
*/
-void __mp_folder_soft_back_button_cb(void *data, Evas_Object * obj, void *event_info)
+static void __mp_folder_item_view_soft_back_button_cb(void *data, Evas_Object * obj, void *event_info)
{
+ if(g_pFolderViewHandle == NULL)
+ {
+ VideoLogError("g_pFolderViewHandle is invalid");
+ return;
+ }
VideoLogInfo(" ");
+ elm_naviframe_item_pop(g_pFolderViewHandle->pNaviFrameHandle);
+}
+
+static void __mp_folder_item_view_back_button_cb(void *data, Elm_Object_Item *item)
+{
if(g_pFolderViewHandle == NULL)
{
VideoLogError("g_pFolderViewHandle is invalid");
return;
}
+ VideoLogInfo("");
g_pFolderViewHandle->bExist = true;
- mp_list_view_view_type_set(MP_LIST_VIEW_AS_FOLDER_LIST);
mp_folder_view_set_is_item_view(false);
- //deleting the folder view in idler callback, as this callback object will also be deleted.
- ecore_idler_add(delete_folder_item_view_idler_cb, NULL);
- g_pFolderViewHandle->pUpdateListUserCbFunc(LIST_UPDATE_TYPE_ALL);
+ evas_object_smart_callback_add(g_pFolderViewHandle->pNaviFrameHandle, "transition,finished", __mp_folder_item_view_trans_finished_cb, NULL);
+ mp_folder_item_view_pop();
}
static Evas_Object* _create_gengrid(Evas_Object *parent)
return gengrid;
}
+Evas_Object *__mp_folder_item_view_create_base_layout(void *pParent)
+{
+ if (!pParent) {
+ VideoLogError("parent is invalid");
+ return NULL;
+ }
+
+ VideoLogInfo("");
+
+ 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(pParent);
+ 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);
+
+ return layout;
+}
+
+static void __mp_folder_item_view_search_view_launch(void *data, Evas_Object *o, const char *emission, const char *source)
+{
+ VideoLogError("Launching search view");
+ __mp_folder_item_view_show_search_view();
+}
+
+
+Evas_Object* mp_folder_item_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");
+ free(res_path);
+ 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);
+
+ elm_object_signal_callback_add(layout, "searchbar,clicked", "vp", __mp_folder_item_view_search_view_launch, NULL);
+
+ return layout;
+}
+
+
+
/**
*
* @param pParent
VideoLogInfo("");
- g_pFolderViewHandle->pFolderItemGengrid = _create_gengrid(pParent);
+ if(g_pFolderViewWidget->pFolderItemViewBaseLayout == NULL)
+ {
+ g_pFolderViewWidget->pFolderItemViewBaseLayout = __mp_folder_item_view_create_base_layout(pParent);
+ }
+
+ g_pFolderViewHandle->pFolderItemGengrid = _create_gengrid(g_pFolderViewWidget->pFolderItemViewBaseLayout);
if(g_pFolderViewHandle->pFolderItemGengrid == NULL)
{
VideoLogError("Faied to create folder item gengrid");
}
__mp_folder_item_view_update_video_list(LIST_UPDATE_TYPE_ALL);
+
g_pFolderViewHandle->bLandscape = false;
evas_object_smart_callback_add((Evas_Object *)mp_util_get_main_window_handle(),
"wm,rotation,changed",
__mp_folder_item_view_rotate_cb, NULL);
-}
+ char *folder_name = mp_util_svc_get_video_folder_name(g_pFolderViewHandle->nFolder_index);
-void mp_folder_item_view_remove()
-{
- VideoLogInfo("");
- if(g_pFolderViewWidget){
- __mp_folder_soft_back_button_cb(NULL, g_pFolderViewWidget->pBackButton, NULL);
+ g_pFolderViewHandle->pNaviframeItem = elm_naviframe_item_push(g_pFolderViewHandle->pNaviFrameHandle, folder_name,
+ NULL,
+ NULL,
+ g_pFolderViewWidget->pFolderItemViewBaseLayout,
+ NULL);
+ if(g_pFolderViewWidget->pBackButton == NULL)
+ {
+ g_pFolderViewWidget->pBackButton = __mp_folder_item_view_create_back_button(g_pFolderViewHandle->pNaviframeItem);
}
-}
+ elm_object_item_part_content_set(g_pFolderViewHandle->pNaviframeItem, "elm.swallow.prev_btn", g_pFolderViewWidget->pBackButton);
+ elm_object_item_signal_emit(g_pFolderViewHandle->pNaviframeItem, "elm,state,prev_btn,show", "elm");
+
+
+ // Adding title content
+ if(g_pFolderViewWidget->pTitleContent == NULL)
+ {
+ g_pFolderViewWidget->pTitleContent = mp_folder_item_view_create_title_content(g_pFolderViewHandle->pNaviframeItem);
+ }
+ elm_object_item_part_content_set(g_pFolderViewHandle->pNaviframeItem, "title_content", g_pFolderViewWidget->pTitleContent);
+ elm_object_item_signal_emit(g_pFolderViewHandle->pNaviframeItem, "elm,state,title_content,show", "elm");
+
+ elm_naviframe_item_pop_cb_set(g_pFolderViewHandle->pNaviframeItem, __mp_folder_item_view_back_button_cb, g_pFolderViewHandle);
+ elm_naviframe_item_title_enabled_set(g_pFolderViewHandle->pNaviframeItem, EINA_TRUE, EINA_FALSE);
+
+ mp_folder_item_view_check_more_button_of_toolbar();
+ MP_FREE_STRING(folder_name);
+}
/**
*
g_pFolderViewHandle->pMainHandle = main_handle;
g_pFolderViewHandle->pMainWidget = main_widget;
g_pFolderViewHandle->pNaviFrameHandle = g_pFolderViewHandle->pMainHandle->pNaviFrameHandle;
- g_pFolderViewHandle->pNaviframeItem = g_pFolderViewHandle->pMainHandle->pNaviFrameItem;
g_pFolderViewHandle->pUpdateListUserCbFunc = change_view_cb;
g_pFolderViewHandle->nFolder_index = folder_index;
g_pFolderViewHandle->bExist = false;
g_pFolderViewHandle->euLev = MP_DB_UPDATE_LEV_1;
- __mp_folder_item_view_init(g_pFolderViewHandle->pMainWidget->pListViewBaselayout);
+ __mp_folder_item_view_init(g_pFolderViewHandle->pNaviFrameHandle);
g_pFolderViewHandle->nPlayVideoIndex = -1;
mp_util_db_set_update_fun(g_pFolderViewHandle->euLev, __mp_folder_item_view_db_changed_cb);
}
VideoLogInfo("");
- if (g_pFolderViewHandle->pVideosGenlist) {
- int nGenItemIndex = g_pFolderViewHandle->nPlayVideoIndex;
- VideoLogInfo("%d", nGenItemIndex);
-
- int nGenlistIndex = nGenItemIndex;
- if (!g_pFolderViewHandle->bLandscape)
- nGenlistIndex =
- nGenlistIndex / VP_GENLIST_THUMB_PORTRAIT_COUNT;
- else
- nGenlistIndex =
- nGenlistIndex / VP_GENLIST_THUMB_LANDSPACE_COUNT;
+ if (g_pFolderViewHandle->pFolderItemGengrid) {
+ int nVideoIndex = g_pFolderViewHandle->nPlayVideoIndex;
+ VideoLogInfo("%d", nVideoIndex);
- Elm_Object_Item *pTmpVideoGenlistItem = NULL;
- pTmpVideoGenlistItem =
- elm_genlist_nth_item_get((const Evas_Object *)
- g_pFolderViewHandle->pVideosGenlist,
- nGenlistIndex);
mp_util_svc_destory_video_item_list();
- mp_util_svc_extract_video_list_from_folder(g_pFolderViewHandle->
- pFolderUrl,
- __mp_folder_item_view_get_sort_type
- (), MP_LIST_VIEW_ALL);
- mp_util_svc_update_thumbnail_info(g_pFolderViewHandle->
- nPlayVideoIndex);
- elm_genlist_item_update(pTmpVideoGenlistItem);
- if (pTmpVideoGenlistItem) {
- elm_genlist_item_selected_set(pTmpVideoGenlistItem,
- EINA_FALSE);
- Evas_Object *pIconContent =
- elm_object_item_part_content_get(pTmpVideoGenlistItem,
- "elm.icon.1");
- if (!pIconContent) {
- VideoLogError("");
- return;
- }
- Evas_Object *pProgressbar =
- elm_layout_content_get(pIconContent,
- "elm.progressbar.icon");
-
- if (pProgressbar) {
- elm_layout_content_unset(pIconContent,
- "elm.progressbar.icon");
- MP_DEL_OBJ(pProgressbar);
- }
-
- elm_genlist_item_fields_update(pTmpVideoGenlistItem,
- "elm.text.sub.left.bottom",
- ELM_GENLIST_ITEM_FIELD_TEXT);
+ mp_util_svc_extract_video_list_from_folder(g_pFolderViewHandle->pFolderUrl, __mp_folder_item_view_get_sort_type(), MP_LIST_VIEW_ALL);
+ mp_util_svc_update_thumbnail_info(g_pFolderViewHandle->nPlayVideoIndex);
+
+ Elm_Object_Item *item = elm_gengrid_nth_item_get(g_pFolderViewHandle->pFolderItemGengrid, nVideoIndex);
+ if(item)
+ {
+ elm_gengrid_item_update(item);
}
}
}