summaryrefslogtreecommitdiff
path: root/src/common/mp-view-manager.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/mp-view-manager.c')
-rwxr-xr-xsrc/common/mp-view-manager.c1235
1 files changed, 1235 insertions, 0 deletions
diff --git a/src/common/mp-view-manager.c b/src/common/mp-view-manager.c
new file mode 100755
index 0000000..09dfe77
--- /dev/null
+++ b/src/common/mp-view-manager.c
@@ -0,0 +1,1235 @@
+/*
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
+ *
+ * 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.
+ */
+
+
+
+#include "mp-view-manager.h"
+#include "mp-edit-view.h"
+#include "mp-playlist-view.h"
+#include "mp-track-view.h"
+#include "mp-common.h"
+#include "mp-menu.h"
+#include "mp-play-view.h"
+#include "mp-search.h"
+#include "mp-widget.h"
+#include "mp-library.h"
+#include "mp-util.h"
+
+#define MP_OPTION_HEADER_COND(type) type == MP_VIEW_CONTENT_NEW_PLAYLIST\
+ || type == MP_VIEW_CONTENT_NEW_PLAYLIST_BY_SWEEP\
+ || type == MP_VIEW_CONTENT_NEW_PLAYLIST_BY_EDIT
+
+typedef struct
+{
+ mp_view_content_t content_type;
+ int view_index;
+ Evas_Object *view_layout;
+ Evas_Object *controlbar;
+ Elm_Object_Item *control_buttons[MP_NAVI_CONTROL_BUTTON_MAX];
+ Elm_Object_Item *edit_button;
+ Elm_Object_Item *search_button;
+ Elm_Object_Item *cancel_button;
+ Elm_Object_Item *navi_item;
+} mp_view_histroy_t;
+
+
+void
+mp_view_manager_push_view_content(view_data_t * view_data, Evas_Object * content, mp_view_content_t type)
+{
+ int view_idx = -1;
+ mp_view_histroy_t *last_history;
+
+ startfunc;
+
+ MP_CHECK(view_data);
+ MP_CHECK_VIEW_DATA(view_data);
+ MP_CHECK(content);
+ MP_CHECK(view_data->navibar);
+
+ struct appdata *ad = view_data->ad;
+ MP_CHECK(ad);
+
+ Elm_Object_Item *navi_item = elm_naviframe_top_item_get(view_data->navibar);
+ if (navi_item)
+ {
+ Evas_Object *top_view = elm_object_item_content_get(navi_item);
+ MP_CHECK(top_view);
+
+ mp_view_layout_progress_timer_freeze(top_view);
+ }
+
+ view_idx = mp_view_manager_count_view_content(view_data);
+ DEBUG_TRACE("view_idx: %d", view_idx);
+ last_history = calloc(sizeof(mp_view_histroy_t), 1);
+
+ last_history->content_type = type;
+ last_history->view_index = view_idx;
+ last_history->view_layout = content;
+
+ /*
+ last_history->navi_item =
+ elm_navigationbar_ex_item_push(view_data->navibar, content, "music/title_option_header");
+ */
+ if(MP_VIEW_CONTENT_PLAY == type || MP_OPTION_HEADER_COND(type))
+ {
+ elm_naviframe_prev_btn_auto_pushed_set(view_data->navibar, EINA_FALSE);
+ last_history->navi_item =
+ elm_naviframe_item_push(view_data->navibar, NULL, NULL, NULL, content, "1line/music");
+ }
+ else
+ last_history->navi_item =
+ elm_naviframe_item_push(view_data->navibar, NULL, NULL, NULL, content, "1line/music");
+
+ mp_view_manager_set_option_header_visible(last_history->navi_item, last_history->content_type);
+
+ if(view_idx == 0)
+ {
+ mp_library_controlbar_visible_set(ad, true);
+ elm_naviframe_item_title_visible_set(last_history->navi_item, false);
+ }
+ else
+ mp_library_controlbar_visible_set(ad, false);
+
+ evas_object_data_set(content, "navi_item", last_history->navi_item);
+
+ if (view_idx) //It shouldn't be set true when first navi content is pushed. Effect finished callback not called in this case..
+ ad->navi_effect_in_progress = TRUE;
+
+ ad->view_history = g_list_append(ad->view_history, last_history);
+
+ endfunc;
+
+}
+
+/* Musc call this api befor del navigationbar. it prevent destroying info ug layout*/
+void
+mp_view_manager_unswallow_info_ug_layout(struct appdata *ad)
+{
+ MP_CHECK(ad);
+}
+
+void
+mp_view_manager_pop_view_content(view_data_t * view_data, bool pop_to_first, bool pop_content)
+{
+ MP_CHECK(view_data);
+ MP_CHECK_VIEW_DATA(view_data);
+
+ struct appdata *ad = view_data->ad;
+ MP_CHECK(ad);
+
+ GList *view_item = g_list_last(ad->view_history);
+ MP_CHECK(view_item);
+ MP_CHECK(view_data->navibar);
+
+ mp_view_histroy_t *last_history = view_item->data;
+
+ mp_view_manager_unswallow_info_ug_layout(ad);
+
+ if (!pop_to_first)
+ {
+ elm_naviframe_item_pop(view_data->navibar);
+ ad->navi_effect_in_progress = TRUE;
+ SAFE_FREE(view_item->data);
+ ad->view_history =
+ g_list_delete_link(ad->view_history, view_item);
+ view_item = g_list_last(ad->view_history);
+ last_history = view_item->data;
+ }
+ else
+ {
+ if (last_history->view_index == 0)
+ {
+ DEBUG_TRACE("");
+ return;
+ }
+ elm_naviframe_item_pop_to(elm_naviframe_bottom_item_get(view_data->navibar));
+ while (last_history->view_index > 0)
+ {
+ SAFE_FREE(view_item->data);
+ ad->view_history =
+ g_list_delete_link(ad->view_history, view_item);
+ view_item = g_list_last(ad->view_history);
+ MP_CHECK(view_item);
+ last_history = view_item->data;
+ }
+ }
+
+ mp_view_manager_set_option_header_visible(last_history->navi_item, last_history->content_type);
+
+ Elm_Object_Item *navi_item = elm_naviframe_top_item_get(view_data->navibar);
+ MP_CHECK(navi_item);
+ Evas_Object *top_view = elm_object_item_content_get(navi_item);
+ MP_CHECK(top_view);
+
+ mp_view_layout_progress_timer_thaw(top_view);
+
+}
+
+void
+mp_view_manager_pop_to_view_content(view_data_t * view_data, mp_view_content_t type)
+{
+ MP_CHECK(view_data);
+ MP_CHECK_VIEW_DATA(view_data);
+
+ struct appdata *ad = view_data->ad;
+ MP_CHECK(ad);
+
+ GList *view_item = g_list_last(ad->view_history);
+ MP_CHECK(view_item);
+ MP_CHECK(view_data->navibar);
+
+ mp_view_histroy_t *last_history = view_item->data;
+ bool find_view = false;
+
+ mp_view_manager_unswallow_info_ug_layout(ad);
+
+ if (last_history->content_type != type) {
+ while (last_history->view_index > 0)
+ {
+ DEBUG_TRACE("Content type: %d", last_history->content_type);
+ if (last_history->content_type == type)
+ {
+ find_view = true;
+ }
+ SAFE_FREE(view_item->data);
+ ad->view_history =
+ g_list_delete_link(ad->view_history, view_item);
+ view_item = g_list_last(ad->view_history);
+ MP_CHECK(view_item);
+ last_history = view_item->data;
+
+ if (find_view)
+ {
+ elm_naviframe_item_pop_to(last_history->navi_item);
+ break;
+ }
+ }
+ }
+
+ mp_view_manager_set_option_header_visible(last_history->navi_item, last_history->content_type);
+
+ Elm_Object_Item *navi_item = elm_naviframe_top_item_get(view_data->navibar);
+ MP_CHECK(navi_item);
+ Evas_Object *top_view = elm_object_item_content_get(navi_item);
+ MP_CHECK(top_view);
+
+ mp_view_layout_progress_timer_thaw(top_view);
+
+}
+
+int
+mp_view_manager_count_view_content(view_data_t * view_data)
+{
+ MP_CHECK_VAL(view_data, -1);
+ MP_CHECK_VIEW_DATA(view_data);
+
+ GList *histroy = view_data->ad->view_history;
+ mp_retvm_if(!histroy, 0, "last_item not exist");
+
+ return g_list_length(histroy);
+}
+
+Evas_Object *
+mp_view_manager_get_last_view_layout(struct appdata * ad)
+{
+ MP_CHECK_NULL(ad);
+ MP_CHECK_NULL(ad->library);
+
+ Evas_Object *cur_view = ad->library->cur_view;
+ MP_CHECK_NULL(cur_view);
+
+ view_data_t *cur_view_data = evas_object_data_get(cur_view, "view_data");
+ MP_CHECK_NULL(cur_view_data);
+ MP_CHECK_VIEW_DATA(cur_view_data);
+
+ GList *last_item = g_list_last(ad->view_history);
+ MP_CHECK_NULL(last_item);
+
+ mp_view_histroy_t *last_history = last_item->data;
+ MP_CHECK_NULL(last_history);
+
+ return last_history->view_layout;
+}
+
+Elm_Object_Item *
+mp_view_manager_get_play_view_navi_item(struct appdata *ad)
+{
+ startfunc;
+ MP_CHECK_NULL(ad);
+ MP_CHECK_NULL(ad->library);
+
+ mp_view_histroy_t *history;
+ Evas_Object *cur_view = ad->library->cur_view;
+ MP_CHECK_NULL(cur_view);
+
+ view_data_t *cur_view_data = evas_object_data_get(cur_view, "view_data");
+ MP_CHECK_NULL(cur_view_data);
+ MP_CHECK_VIEW_DATA(cur_view_data);
+
+ GList *item = g_list_last(ad->view_history);
+ MP_CHECK_NULL(item);
+
+ do
+ {
+ history = item->data;
+ if (history->content_type == MP_VIEW_CONTENT_PLAY)
+ {
+ return history->navi_item;
+ }
+ item = g_list_previous(item);
+ }
+ while (item);
+
+ return NULL;
+}
+
+void
+mp_view_manager_play_view_title_label_set(struct appdata *ad, const char *title)
+{
+ startfunc;
+ Elm_Object_Item *navi_item;
+ MP_CHECK(ad);
+
+ navi_item = mp_view_manager_get_play_view_navi_item(ad);
+ if(navi_item)
+ elm_object_item_text_set(navi_item, title);
+
+}
+
+Evas_Object *
+mp_view_manager_get_first_view_layout(struct appdata *ad)
+{
+ MP_CHECK_NULL(ad);
+ MP_CHECK_NULL(ad->library);
+
+ Evas_Object *cur_view = ad->library->cur_view;
+ MP_CHECK_NULL(cur_view);
+
+ view_data_t *cur_view_data = evas_object_data_get(cur_view, "view_data");
+ MP_CHECK_NULL(cur_view_data);
+ MP_CHECK_VIEW_DATA(cur_view_data);
+
+ GList *first_item = g_list_first(ad->view_history);
+ MP_CHECK_NULL(first_item);
+
+ mp_view_histroy_t *last_history = first_item->data;
+ MP_CHECK_NULL(last_history);
+
+ return last_history->view_layout;
+}
+
+Evas_Object *
+mp_view_manager_get_edit_view_layout(struct appdata * ad)
+{
+ mp_view_histroy_t *history = NULL;
+
+ MP_CHECK_NULL(ad);
+ MP_CHECK_NULL(ad->library);
+
+ Evas_Object *cur_view = ad->library->cur_view;
+ MP_CHECK_NULL(cur_view);
+
+ view_data_t *cur_view_data = evas_object_data_get(cur_view, "view_data");
+ MP_CHECK_NULL(cur_view_data);
+ MP_CHECK_VIEW_DATA(cur_view_data);
+
+ GList *item = g_list_last(ad->view_history);
+ MP_CHECK_FALSE(item);
+
+ do
+ {
+ history = item->data;
+ if (history->content_type == MP_VIEW_CONTENT_EDIT)
+ {
+ return history->view_layout;
+ }
+ item = g_list_previous(item);
+ }
+ while (item);
+
+ return NULL;
+}
+
+
+bool
+mp_view_manager_is_play_view(struct appdata * ad)
+{
+ MP_CHECK_FALSE(ad);
+ MP_CHECK_FALSE(ad->library);
+
+ Evas_Object *cur_view = ad->library->cur_view;
+ MP_CHECK_FALSE(cur_view);
+
+ view_data_t *cur_view_data = evas_object_data_get(cur_view, "view_data");
+ MP_CHECK_FALSE(cur_view_data);
+ MP_CHECK_VIEW_DATA(cur_view_data);
+
+ GList *last_item = g_list_last(ad->view_history);
+ MP_CHECK_FALSE(last_item);
+
+ mp_view_histroy_t *last_history = last_item->data;
+ MP_CHECK_FALSE(last_history);
+
+ if (last_history->content_type == MP_VIEW_CONTENT_PLAY)
+ return TRUE;
+ else
+ return FALSE;
+
+}
+
+Evas_Object *
+mp_view_manager_get_view_layout(struct appdata * ad, mp_view_content_t type)
+{
+ mp_view_histroy_t *history = NULL;
+
+ MP_CHECK_NULL(ad);
+ MP_CHECK_NULL(ad->library);
+
+ Evas_Object *cur_view = ad->library->cur_view;
+ MP_CHECK_NULL(cur_view);
+
+ view_data_t *cur_view_data = evas_object_data_get(cur_view, "view_data");
+ MP_CHECK_NULL(cur_view_data);
+ MP_CHECK_VIEW_DATA(cur_view_data);
+
+ GList *item = g_list_last(ad->view_history);
+ MP_CHECK_FALSE(item);
+
+ do
+ {
+ history = item->data;
+ if (history->content_type == type)
+ {
+ return history->view_layout;
+ }
+ item = g_list_previous(item);
+ }
+ while (item);
+
+ return NULL;
+}
+
+
+void
+mp_view_manager_update_list_contents(view_data_t * view_data, bool update_edit_list)
+{
+ MP_CHECK(view_data);
+ MP_CHECK_VIEW_DATA(view_data);
+
+ mp_view_histroy_t *history = NULL;
+ struct appdata *ad = view_data->ad;
+ MP_CHECK(ad);
+
+ GList *item = g_list_last(ad->view_history);
+ MP_CHECK(item);
+ do
+ {
+ history = item->data;
+ if (history->content_type == MP_VIEW_CONTENT_LIST)
+ {
+ mp_layout_data_t *layout_data = evas_object_data_get(history->view_layout, "layout_data");
+ if(layout_data)
+ {
+ if(layout_data->edit_mode && !update_edit_list)
+ {
+ DEBUG_TRACE("skip update edit view");
+ item = g_list_previous(item);
+ continue;
+ }
+ if(layout_data->album_delete_flag)
+ {
+ DEBUG_TRACE("skip update album view or artist view");
+ item = g_list_previous(item);
+ continue;
+ }
+ }
+ mp_view_layout_update(history->view_layout);
+ }
+ item = g_list_previous(item);
+ }
+ while (item);
+
+}
+
+void
+_mp_view_manager_set_back_button(Evas_Object * navibar, mp_view_histroy_t * last_history, Evas_Smart_Cb cb, void *data)
+{
+ MP_CHECK(last_history);
+
+ Evas_Object *button = NULL;
+ if(cb)
+ {
+ button = mp_widget_create_button(navibar, "naviframe/back_btn/music/default", NULL, NULL, cb, data);
+ elm_object_item_part_content_set(last_history->navi_item, ELM_NAVIFRAME_ITEM_PREV_BTN, button);
+ }
+ else
+ {
+ elm_object_item_part_content_set(last_history->navi_item, ELM_NAVIFRAME_ITEM_PREV_BTN, NULL);
+ }
+}
+
+void
+_mp_view_manager_set_title_button(Evas_Object * navibar, mp_view_histroy_t * last_history, char *label, char *icon_path,
+ mp_navi_control_button_type type, Evas_Smart_Cb cb, void *data)
+{
+ startfunc;
+ Evas_Object *button = NULL;
+ Evas_Object *control_bar = NULL;
+
+ MP_CHECK(navibar);
+ MP_CHECK(last_history);
+
+ if (!last_history->controlbar)
+ {
+ last_history->controlbar = elm_toolbar_add(navibar);
+ elm_toolbar_shrink_mode_set(last_history->controlbar, ELM_TOOLBAR_SHRINK_EXPAND);
+ if(MP_OPTION_HEADER_COND(last_history->content_type))
+ {
+ elm_object_style_set(last_history->controlbar, "music/naviframe");
+ elm_object_item_part_content_set(last_history->navi_item, ELM_NAVIFRAME_ITEM_OPTIONHEADER, last_history->controlbar);
+ }
+ else
+ {
+ elm_object_style_set(last_history->controlbar, "music/naviframe");
+ elm_object_item_part_content_set(last_history->navi_item, ELM_NAVIFRAME_ITEM_CONTROLBAR, last_history->controlbar);
+ }
+ }
+
+ control_bar = last_history->controlbar;
+ MP_CHECK(control_bar);
+
+ if(MP_OPTION_HEADER_COND(last_history->content_type))
+ {
+ if (label || icon_path)
+ {
+
+ button = elm_button_add(control_bar);
+ elm_object_style_set(button, "music/navigationbar_control/multiline");
+
+ evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(button, EVAS_HINT_FILL, 0.5);
+
+ if (label)
+ elm_object_text_set(button, label);
+
+ evas_object_smart_callback_add(button, "clicked", cb, data);
+ elm_object_focus_allow_set(button, EINA_FALSE); /* Cancel the rename mode without be focused */
+
+ evas_object_show(button);
+ }
+
+ last_history->control_buttons[type] = elm_toolbar_item_append(control_bar, NULL, NULL, NULL, NULL);
+ elm_object_item_part_content_set(last_history->control_buttons[type], "object", button);
+
+ if (label)
+ {
+ if (!strcmp(GET_SYS_STR("IDS_COM_SK_EDIT"), label) ||!strcmp(GET_STR("IDS_MUSIC_BODY_ADD_TO_PLAYLIST"), label))
+ {
+ last_history->edit_button = last_history->control_buttons[type];
+ }
+ else if (!strcmp(GET_SYS_STR("IDS_COM_SK_SEARCH"), label))
+ {
+ last_history->search_button = last_history->control_buttons[type];
+ }
+ else if (!strcmp(GET_SYS_STR("IDS_COM_SK_CANCEL"), label))
+ {
+ last_history->cancel_button = last_history->control_buttons[type];
+ }
+ }
+ }
+ else
+ {
+ if(!icon_path && !label) {
+ last_history->control_buttons[type] = elm_toolbar_item_append(control_bar, NULL, NULL, NULL, NULL);
+ elm_object_item_disabled_set(last_history->control_buttons[type], EINA_TRUE);
+ }
+ else
+ {
+ button = elm_button_add(control_bar);
+ elm_object_style_set(button, "music/bottom_control");
+
+ evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(button, EVAS_HINT_FILL, 0.5);
+
+ evas_object_smart_callback_add(button, "clicked", cb, data);
+ elm_object_focus_allow_set(button, EINA_FALSE); /* Cancel the rename mode without be focused */
+
+ if(icon_path)
+ {
+ Evas_Object *icon = elm_icon_add(control_bar);
+ elm_icon_file_set(icon, icon_path, NULL);
+ elm_object_content_set(button, icon);
+ }
+
+ evas_object_show(button);
+
+ Elm_Object_Item *item = elm_toolbar_item_append(control_bar, NULL, NULL, NULL, NULL);
+ elm_object_item_part_content_set(item, "object", button);
+ last_history->control_buttons[type] = item;
+ }
+
+ if (label)
+ {
+ if (!strcmp(GET_SYS_STR("IDS_COM_SK_EDIT"), label) ||!strcmp(GET_STR("IDS_MUSIC_BODY_ADD_TO_PLAYLIST"), label))
+ {
+ last_history->edit_button = last_history->control_buttons[type];
+ }
+ else if (!strcmp(GET_SYS_STR("IDS_COM_SK_SEARCH"), label))
+ {
+ last_history->search_button = last_history->control_buttons[type];
+ }
+ else if (!strcmp(GET_SYS_STR("IDS_COM_SK_CANCEL"), label))
+ {
+ last_history->cancel_button = last_history->control_buttons[type];
+ }
+ }
+ }
+}
+
+void
+mp_view_manager_set_title_and_buttons(view_data_t * view_data, char *title, void *data)
+{
+ startfunc;
+ Evas_Object *content = NULL;
+ int i = 0;
+
+ MP_CHECK(view_data);
+ MP_CHECK_VIEW_DATA(view_data);
+
+ struct appdata *ad = view_data->ad;
+ MP_CHECK(ad);
+
+ GList *last_item = g_list_last(ad->view_history);
+ MP_CHECK(last_item);
+
+ mp_view_histroy_t *last_history = last_item->data;
+ MP_CHECK(last_history);
+
+ content = last_history->view_layout;
+ MP_CHECK(content);
+
+ Evas_Object *navibar = view_data->navibar;
+ MP_CHECK(navibar);
+
+ if (title)
+ {
+ DEBUG_TRACE("title: %s", title);
+ elm_object_item_text_set(last_history->navi_item, title);
+ }
+
+ //delete all buttons...
+
+ for (i = 0; i < MP_NAVI_CONTROL_BUTTON_MAX; i++)
+ {
+ if (last_history->control_buttons[i])
+ {
+ elm_object_item_del(last_history->control_buttons[i]);
+ last_history->control_buttons[i] = NULL;
+ }
+ }
+ last_history->edit_button = NULL;
+ last_history->search_button = NULL;
+ last_history->cancel_button = NULL;
+
+ //destroy back button
+ _mp_view_manager_set_back_button(navibar, last_history, NULL, NULL);
+
+ if (last_history->content_type == MP_VIEW_CONTENT_LIST)
+ {
+ mp_layout_data_t *layout_data = evas_object_data_get(last_history->view_layout, "layout_data");
+ MP_CHECK(layout_data);
+ MP_CHECK_LAYOUT_DATA(layout_data);
+
+ DEBUG_TRACE("MP_VIEW_CONTENT_LIST. category: %d, rename mode: %d, add tracks : %d ",
+ layout_data->category, layout_data->rename_mode, layout_data->ad->b_add_tracks);
+ DEBUG_TRACE("layout_data->playlist_id: %d", layout_data->playlist_id);
+
+ if (layout_data->edit_mode)
+ {
+ if (layout_data->ad->b_add_tracks)
+ {
+ DEBUG_TRACE("");
+ _mp_view_manager_set_title_button(navibar, last_history, GET_STR("IDS_MUSIC_BODY_ADD_TO_PLAYLIST"),
+ MP_ICON_NAVI_ADD_TO_PLST, MP_NAVI_CONTROL_BUTTON1,
+ mp_track_view_add_to_playlist_done_cb, data);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON2, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON3, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON4, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history,
+ GET_SYS_STR("IDS_COM_SK_CANCEL"), MP_ICON_NAVI_CANCEL,
+ MP_NAVI_CONTROL_BUTTON5,
+ mp_track_view_add_to_playlist_cancel_cb, data);
+ }
+ else
+ {
+ if (layout_data->category == MP_LAYOUT_TRACK_LIST)
+ {
+ DEBUG_TRACE("");
+ if (layout_data->view_data->view_type == MP_VIEW_TYPE_PLAYLIST)
+ {
+ _mp_view_manager_set_title_button(navibar, last_history,
+ GET_STR("IDS_MUSIC_OPT_REMOVE"),
+ MP_ICON_NAVI_DELETE,
+ MP_NAVI_CONTROL_BUTTON1,
+ mp_edit_view_delete_cb, data);
+ }
+ else
+ {
+ _mp_view_manager_set_title_button(navibar, last_history,
+ GET_STR("IDS_MUSIC_OPT_DELETE"),
+ MP_ICON_NAVI_DELETE,
+ MP_NAVI_CONTROL_BUTTON1,
+ mp_edit_view_delete_cb, data);
+ }
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON2, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history,
+ GET_STR("IDS_MUSIC_BODY_ADD_TO_PLAYLIST"), MP_ICON_NAVI_ADD_TO_PLST,
+ MP_NAVI_CONTROL_BUTTON3,
+ mp_edit_view_add_to_plst_cb, data);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON4, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history,
+ GET_SYS_STR("IDS_COM_SK_CANCEL"),
+ MP_ICON_NAVI_CANCEL, MP_NAVI_CONTROL_BUTTON5,
+ mp_edit_view_cencel_cb, data);
+
+ }
+ else if (layout_data->category == MP_LAYOUT_GROUP_LIST)
+ {
+ DEBUG_TRACE("");
+ _mp_view_manager_set_title_button(navibar, last_history,
+ GET_STR("IDS_MUSIC_BODY_ADD_TO_PLAYLIST"), MP_ICON_NAVI_ADD_TO_PLST,
+ MP_NAVI_CONTROL_BUTTON1,
+ mp_edit_view_add_to_plst_cb, data);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON2, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON3, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON4, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history,
+ GET_SYS_STR("IDS_COM_SK_CANCEL"),
+ MP_ICON_NAVI_CANCEL, MP_NAVI_CONTROL_BUTTON5,
+ mp_edit_view_cencel_cb, data);
+
+ }
+ else
+ {
+ DEBUG_TRACE("");
+ _mp_view_manager_set_title_button(navibar, last_history,
+ GET_STR("IDS_MUSIC_OPT_DELETE"),
+ MP_ICON_NAVI_DELETE, MP_NAVI_CONTROL_BUTTON1,
+ mp_edit_view_delete_cb, data);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON2, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON3, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON4, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history,
+ GET_SYS_STR("IDS_COM_SK_CANCEL"),
+ MP_ICON_NAVI_CANCEL, MP_NAVI_CONTROL_BUTTON5,
+ mp_edit_view_cencel_cb, data);
+
+ }
+ }
+
+ }
+ else
+ {
+ if(!layout_data->ad->b_add_tracks)
+ _mp_view_manager_set_back_button(navibar, last_history, mp_common_back_button_cb, view_data);
+
+ if (title)
+ layout_data->navibar_title = g_strdup(title);
+
+ if (AUDIO_SVC_TRACK_BY_ALBUM == layout_data->track_type
+ || AUDIO_SVC_TRACK_BY_ARTIST == layout_data->track_type)
+ layout_data->navibar_title = g_strdup(layout_data->type_str);
+
+ layout_data->callback_data = data;
+ if (layout_data->category != MP_LAYOUT_PLAYLIST_LIST)
+ {
+ if (layout_data->ad->b_add_tracks)
+ {
+ DEBUG_TRACE("");
+ _mp_view_manager_set_title_button(navibar, last_history,
+ GET_STR("IDS_MUSIC_BODY_ADD_TO_PLAYLIST"),
+ MP_ICON_NAVI_ADD_TO_PLST, MP_NAVI_CONTROL_BUTTON5,
+ mp_track_view_add_to_playlist_done_cb, data);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON2, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON3, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON4, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history,
+ GET_SYS_STR("IDS_COM_SK_CANCEL"),
+ MP_ICON_NAVI_CANCEL, MP_NAVI_CONTROL_BUTTON1,
+ mp_track_view_add_to_playlist_cancel_cb,
+ data);
+ }
+ else if (layout_data->track_type == AUDIO_SVC_TRACK_BY_PLAYLIST)
+ {
+ if (!mp_view_manager_get_view_layout(ad, MP_VIEW_CONTENT_SEARCH))
+ {
+ DEBUG_TRACE("");
+ _mp_view_manager_set_title_button(navibar, last_history,
+ GET_SYS_STR("IDS_COM_SK_EDIT"), MP_ICON_NAVI_EDIT,
+ MP_NAVI_CONTROL_BUTTON1,
+ mp_common_edit_button_cb, data);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON2, NULL, NULL);
+ if (layout_data->playlist_id > 0)
+ _mp_view_manager_set_title_button(navibar, last_history,
+ GET_SYS_STR("IDS_COM_ADD"),
+ MP_ICON_NAVI_NEW,
+ MP_NAVI_CONTROL_BUTTON3,
+ mp_playlist_view_add_button_cb,
+ data);
+ else
+ _mp_view_manager_set_title_button(navibar, last_history,
+ GET_SYS_STR("IDS_COM_SK_SEARCH"),
+ MP_ICON_NAVI_SEARCH,
+ MP_NAVI_CONTROL_BUTTON3,
+ mp_common_search_button_cb,
+ data);
+
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON4, NULL, NULL);
+ }
+ else
+ {
+ DEBUG_TRACE("");
+ _mp_view_manager_set_title_button(navibar, last_history,
+ GET_SYS_STR("IDS_COM_SK_EDIT"), MP_ICON_NAVI_EDIT,
+ MP_NAVI_CONTROL_BUTTON1,
+ mp_common_edit_button_cb, data);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON2, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON3, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON4, NULL, NULL);
+ }
+ }
+ else
+ {
+ if (layout_data->category == MP_LAYOUT_GROUP_LIST)
+ {
+ if (!mp_view_manager_get_view_layout(ad, MP_VIEW_CONTENT_SEARCH))
+ {
+ DEBUG_TRACE("");
+ _mp_view_manager_set_title_button(navibar, last_history,
+ GET_STR("IDS_MUSIC_BODY_ADD_TO_PLAYLIST"),
+ MP_ICON_NAVI_EDIT,
+ MP_NAVI_CONTROL_BUTTON1,
+ mp_common_edit_button_cb,
+ data);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL,
+ NULL, MP_NAVI_CONTROL_BUTTON2,
+ NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history,
+ GET_SYS_STR("IDS_COM_SK_SEARCH"),
+ MP_ICON_NAVI_SEARCH,
+ MP_NAVI_CONTROL_BUTTON3,
+ mp_common_search_button_cb,
+ data);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL,
+ NULL, MP_NAVI_CONTROL_BUTTON4,
+ NULL, NULL);
+ }
+ else
+ {
+ DEBUG_TRACE("");
+ _mp_view_manager_set_title_button(navibar, last_history,
+ GET_STR("IDS_MUSIC_BODY_ADD_TO_PLAYLIST"),
+ MP_ICON_NAVI_EDIT,
+ MP_NAVI_CONTROL_BUTTON1,
+ mp_common_edit_button_cb,
+ data);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL,
+ NULL, MP_NAVI_CONTROL_BUTTON2,
+ NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL,
+ NULL, MP_NAVI_CONTROL_BUTTON3,
+ NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL,
+ NULL, MP_NAVI_CONTROL_BUTTON4,
+ NULL, NULL);
+ }
+ }
+ else
+ {
+ if (!mp_view_manager_get_view_layout(ad, MP_VIEW_CONTENT_SEARCH))
+ {
+ DEBUG_TRACE("");
+ _mp_view_manager_set_title_button(navibar, last_history,
+ GET_SYS_STR("IDS_COM_SK_EDIT"),
+ MP_ICON_NAVI_EDIT,
+ MP_NAVI_CONTROL_BUTTON1,
+ mp_common_edit_button_cb,
+ data);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL,
+ NULL, MP_NAVI_CONTROL_BUTTON2,
+ NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history,
+ GET_SYS_STR("IDS_COM_SK_SEARCH"),
+ MP_ICON_NAVI_SEARCH,
+ MP_NAVI_CONTROL_BUTTON3,
+ mp_common_search_button_cb,
+ data);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL,
+ NULL, MP_NAVI_CONTROL_BUTTON4,
+ NULL, NULL);
+ }
+ else
+ {
+ DEBUG_TRACE("");
+ _mp_view_manager_set_title_button(navibar, last_history,
+ GET_SYS_STR("IDS_COM_SK_EDIT"),
+ MP_ICON_NAVI_EDIT,
+ MP_NAVI_CONTROL_BUTTON1,
+ mp_common_edit_button_cb,
+ data);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL,
+ NULL, MP_NAVI_CONTROL_BUTTON2,
+ NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL,
+ NULL, MP_NAVI_CONTROL_BUTTON3,
+ NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL,
+ NULL, MP_NAVI_CONTROL_BUTTON4,
+ NULL, NULL);
+ }
+ }
+ }
+ }
+ else
+ {
+ DEBUG_TRACE("");
+ _mp_view_manager_set_title_button(navibar, last_history, GET_SYS_STR("IDS_COM_SK_EDIT"),
+ MP_ICON_NAVI_EDIT, MP_NAVI_CONTROL_BUTTON1,
+ mp_common_edit_button_cb, data);
+ _mp_view_manager_set_title_button(navibar, last_history,
+ GET_STR("IDS_MUSIC_BODY_CREATE_PLAYLIST"), MP_ICON_NAVI_NEW,
+ MP_NAVI_CONTROL_BUTTON2,
+ mp_playlist_view_create_playlist_button_cb,
+ data);
+ _mp_view_manager_set_title_button(navibar, last_history, GET_SYS_STR("IDS_COM_SK_SEARCH"),
+ MP_ICON_NAVI_SEARCH, MP_NAVI_CONTROL_BUTTON3,
+ mp_common_search_button_cb, data);
+ }
+ }
+
+ }
+ else if (last_history->content_type == MP_VIEW_CONTENT_NEW_PLAYLIST)
+ {
+ DEBUG_TRACE("MP_VIEW_CONTENT_NEW_PLAYLIST. ");
+ mp_layout_data_t *layout_data = evas_object_data_get(last_history->view_layout, "layout_data");
+ if (layout_data)
+ {
+ MP_CHECK_LAYOUT_DATA(layout_data);
+ if (layout_data->view_mode == MP_VIEW_MODE_EDIT)
+ {
+ DEBUG_TRACE("");
+ _mp_view_manager_set_title_button(navibar, last_history, GET_SYS_STR("IDS_COM_SK_DONE"),
+ MP_ICON_NAVI_DONE, MP_NAVI_CONTROL_BUTTON1,
+ mp_edit_view_create_new_done_cb, data);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON2, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON3, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history,
+ GET_SYS_STR("IDS_COM_SK_CANCEL"), MP_ICON_NAVI_CANCEL,
+ MP_NAVI_CONTROL_BUTTON4,
+ mp_edit_view_create_new_cancel_cb, data);
+ }
+ }
+ else
+ {
+ DEBUG_TRACE("");
+ _mp_view_manager_set_title_button(navibar, last_history, GET_SYS_STR("IDS_COM_SK_DONE"),
+ MP_ICON_NAVI_DONE, MP_NAVI_CONTROL_BUTTON1,
+ mp_playlist_view_create_new_done_cb, data);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON2, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON3, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON4, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history, GET_SYS_STR("IDS_COM_SK_CANCEL"),
+ MP_ICON_NAVI_CANCEL, MP_NAVI_CONTROL_BUTTON5,
+ mp_playlist_view_create_new_cancel_cb, data);
+ }
+ }
+ else if (last_history->content_type == MP_VIEW_CONTENT_NEW_PLAYLIST_BY_SWEEP)
+ {
+ DEBUG_TRACE("MP_VIEW_CONTENT_NEW_PLAYLIST_BY_SWEEP. ");
+ _mp_view_manager_set_title_button(navibar, last_history, GET_SYS_STR("IDS_COM_SK_DONE"),
+ MP_ICON_NAVI_ADD_TO_PLST, MP_NAVI_CONTROL_BUTTON1,
+ mp_menu_add_to_play_list_done_create_cb, data);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON2, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON3, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history, GET_SYS_STR("IDS_COM_SK_CANCEL"),
+ MP_ICON_NAVI_CANCEL, MP_NAVI_CONTROL_BUTTON4,
+ mp_menu_add_to_play_list_cancel_create_cb, data);
+ }
+ else if (last_history->content_type == MP_VIEW_CONTENT_NEW_PLAYLIST_BY_EDIT)
+ {
+ DEBUG_TRACE("MP_VIEW_CONTENT_NEW_PLAYLIST_BY_SWEEP. ");
+ _mp_view_manager_set_title_button(navibar, last_history, GET_SYS_STR("IDS_COM_SK_DONE"),
+ MP_ICON_NAVI_ADD_TO_PLST, MP_NAVI_CONTROL_BUTTON1,
+ mp_edit_view_create_new_done_cb, data);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON2, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history, NULL, NULL,
+ MP_NAVI_CONTROL_BUTTON3, NULL, NULL);
+ _mp_view_manager_set_title_button(navibar, last_history, GET_SYS_STR("IDS_COM_SK_CANCEL"),
+ MP_ICON_NAVI_CANCEL, MP_NAVI_CONTROL_BUTTON4,
+ mp_edit_view_create_new_cancel_cb, data);
+ }
+ else if (last_history->content_type == MP_VIEW_CONTENT_SEARCH)
+ {
+ DEBUG_TRACE("MP_VIEW_CONTENT_SEARCH. ");
+ _mp_view_manager_set_back_button(navibar, last_history, mp_common_back_button_cb, view_data);
+ }
+ else if (last_history->content_type == MP_VIEW_CONTENT_PLAY)
+ {
+ DEBUG_TRACE("MP_VIEW_CONTENT_PLAY. ");
+ mp_play_view_set_snd_path_sensitivity(ad);
+ }
+ else if (last_history->content_type == MP_VIEW_CONTENT_INFO)
+ {
+ DEBUG_TRACE("MP_VIEW_CONTENT_INFO. ");
+ _mp_view_manager_set_back_button(navibar, last_history, mp_play_view_info_back_cb, ad);
+ }
+ else
+ {
+ WARN_TRACE("unexpected value: %d", last_history->content_type);
+ }
+}
+
+void
+mp_view_manager_set_now_playing(view_data_t * view_data, bool show)
+{
+ MP_CHECK(view_data);
+ MP_CHECK_VIEW_DATA(view_data);
+
+ mp_view_histroy_t *history = NULL;
+ struct appdata *ad = view_data->ad;
+ MP_CHECK(ad);
+
+ GList *item = g_list_last(ad->view_history);
+ GList *last_item = item;
+ MP_CHECK(item);
+ do
+ {
+ history = item->data;
+ if (history->content_type == MP_VIEW_CONTENT_LIST)
+ {
+ if (show)
+ {
+ mp_view_layout_show_now_playing(history->view_layout);
+ if(item != last_item) //freeze timer not to update every view. update top view.
+ mp_view_layout_progress_timer_freeze(history->view_layout);
+ mp_view_layout_set_now_playing_info(history->view_layout);
+ }
+ else
+ mp_view_layout_hide_now_playing(history->view_layout);
+ }
+ item = g_list_previous(item);
+ }
+ while (item);
+
+}
+
+void
+mp_view_manager_freeze_progress_timer(struct appdata *ad)
+{
+ Evas_Object *top_view = mp_view_manager_get_last_view_layout(ad);
+ if (top_view)
+ mp_view_layout_progress_timer_freeze(top_view);
+
+ mp_play_view_progress_timer_freeze(ad);
+}
+
+void
+mp_view_manager_thaw_progress_timer(struct appdata *ad)
+{
+ mp_retm_if(!ad->prohibit_aul_relaunch, "app is in background. not thaw progress timer.. ");
+
+ Evas_Object *top_view = mp_view_manager_get_last_view_layout(ad);
+ if (top_view)
+ mp_view_layout_progress_timer_thaw(top_view);
+
+ mp_play_view_progress_timer_thaw(ad);
+}
+
+Elm_Object_Item *
+mp_view_manager_get_edit_controlbar_item(struct appdata *ad)
+{
+ MP_CHECK_NULL(ad);
+ MP_CHECK_NULL(ad->library);
+
+ Evas_Object *cur_view = ad->library->cur_view;
+ MP_CHECK_NULL(cur_view);
+
+ view_data_t *cur_view_data = evas_object_data_get(cur_view, "view_data");
+ MP_CHECK_NULL(cur_view_data);
+ MP_CHECK_VIEW_DATA(cur_view_data);
+
+ GList *last_item = g_list_last(ad->view_history);
+ MP_CHECK_NULL(last_item);
+
+ mp_view_histroy_t *last_history = last_item->data;
+ MP_CHECK_NULL(last_history);
+
+ return last_history->edit_button;
+}
+
+Elm_Object_Item *
+mp_view_manager_get_search_controlbar_item(struct appdata * ad)
+{
+ MP_CHECK_NULL(ad);
+ MP_CHECK_NULL(ad->library);
+
+ Evas_Object *cur_view = ad->library->cur_view;
+ MP_CHECK_NULL(cur_view);
+
+ view_data_t *cur_view_data = evas_object_data_get(cur_view, "view_data");
+ MP_CHECK_NULL(cur_view_data);
+ MP_CHECK_VIEW_DATA(cur_view_data);
+
+ GList *last_item = g_list_last(ad->view_history);
+ MP_CHECK_NULL(last_item);
+
+ mp_view_histroy_t *last_history = last_item->data;
+ MP_CHECK_NULL(last_history);
+
+ return last_history->search_button;
+}
+
+Elm_Object_Item *
+mp_view_manager_get_cancel_controlbar_item(struct appdata * ad)
+{
+ MP_CHECK_NULL(ad);
+ MP_CHECK_NULL(ad->library);
+
+ Evas_Object *cur_view = ad->library->cur_view;
+ MP_CHECK_NULL(cur_view);
+
+ view_data_t *cur_view_data = evas_object_data_get(cur_view, "view_data");
+ MP_CHECK_NULL(cur_view_data);
+ MP_CHECK_VIEW_DATA(cur_view_data);
+
+ GList *last_item = g_list_last(ad->view_history);
+ MP_CHECK_NULL(last_item);
+
+ mp_view_histroy_t *last_history = last_item->data;
+ MP_CHECK_NULL(last_history);
+
+ return last_history->cancel_button;
+}
+
+
+Elm_Object_Item *
+mp_view_manager_get_controlbar_item(struct appdata * ad, mp_navi_control_button_type type)
+{
+ MP_CHECK_NULL(ad);
+ MP_CHECK_NULL(ad->library);
+
+ Evas_Object *cur_view = ad->library->cur_view;
+ MP_CHECK_NULL(cur_view);
+
+ view_data_t *cur_view_data = evas_object_data_get(cur_view, "view_data");
+ MP_CHECK_NULL(cur_view_data);
+ MP_CHECK_VIEW_DATA(cur_view_data);
+
+ GList *last_item = g_list_last(ad->view_history);
+ MP_CHECK_NULL(last_item);
+
+ mp_view_histroy_t *last_history = last_item->data;
+ MP_CHECK_NULL(last_history);
+
+ return last_history->control_buttons[type];
+}
+
+void
+mp_view_manager_pop_info_view(struct appdata *ad)
+{
+ MP_CHECK(ad);
+ MP_CHECK(ad->library);
+ MP_CHECK(ad->playing_view);
+
+ view_data_t *view_data = evas_object_data_get(ad->library->cur_view, "view_data");
+ MP_CHECK(view_data);
+
+ mp_view_manager_pop_to_view_content(view_data, MP_VIEW_CONTENT_PLAY);
+
+ MP_CHECK(ad->playing_view);
+ if (ad->playing_view->layout)
+ evas_object_show(ad->playing_view->layout);
+}
+
+void
+mp_view_manager_pop_play_view(struct appdata *ad)
+{
+ MP_CHECK(ad);
+ MP_CHECK(ad->library);
+
+ view_data_t *view_data;
+
+ view_data = evas_object_data_get(ad->library->cur_view, "view_data");
+ MP_CHECK(view_data);
+
+ if (ad->playing_view)
+ mp_view_manager_pop_to_view_content(view_data, MP_VIEW_CONTENT_PLAY);
+}
+
+void
+mp_view_manager_clear(struct appdata *ad)
+{
+ MP_CHECK(ad);
+
+ GList *view_item = g_list_last(ad->view_history);
+
+ while (ad->view_history)
+ {
+ SAFE_FREE(view_item->data);
+ ad->view_history =
+ g_list_delete_link(ad->view_history, ad->view_history);
+ }
+
+}
+
+void
+mp_view_manager_set_option_header_visible(Elm_Object_Item *navi_item, mp_view_content_t content_type)
+{
+ DEBUG_TRACE("content type: %d", content_type);
+ if(MP_OPTION_HEADER_COND(content_type))
+ elm_object_item_signal_emit(navi_item, ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_OPEN);
+ else
+ elm_object_item_signal_emit(navi_item, ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_CLOSE);
+
+}
+