Modification for CPlaybackView to exist in the view stack always. 81/37981/2
authorKim Tae Soo <taesoo46.kim@samsung.com>
Thu, 9 Apr 2015 07:05:59 +0000 (16:05 +0900)
committerKim Tae Soo <taesoo46.kim@samsung.com>
Thu, 9 Apr 2015 07:12:36 +0000 (16:12 +0900)
: CPlaybackView should always exist in view stack to handle remote key event for playback.

Change-Id: Ifea2bca8320338dbedac035de06e76ef98bcf787
Signed-off-by: Kim Tae Soo <taesoo46.kim@samsung.com>
src/main.cpp
src/views/base-view.cpp
src/views/common-ui.cpp
src/views/playback-view.cpp
src/views/song-layout.cpp

index a98f343..ce2272d 100644 (file)
@@ -223,6 +223,13 @@ public:
                m_pViewMgr->AddCallback(&cb);
                _DBG("");
 
+               if (!m_pViewMgr->PushView(MUSIC_PLAYBACK_VIEW, NULL, false)) {
+                       _ERR(" view push failed ");
+                       CViewMgr::Finalize();
+                       CMusicController::Finalize();
+                       goto error;
+               }
+
                if (!m_pViewMgr->PushView(MUSIC_BASE_VIEW, ad.arglist)) {
                        _ERR(" view push failed ");
                        CViewMgr::Finalize();
index c3fc929..ff8cea2 100644 (file)
@@ -319,8 +319,13 @@ void CMusicBaseView::m_GotoPlayback(void)
        memset(&parcel, 0, sizeof(SParcel));
        parcel.updateType = E_PLAYLIST_UPDATE;
 
-       if (!CViewMgr::GetInstance()->PushView(MUSIC_PLAYBACK_VIEW, &parcel))
-               _ERR(" viewmgr  push view  MUSIC_PLAYBACK_VIEW failed ");
+       t_OnHide();
+
+       if (!CViewMgr::GetInstance()->UpdateView(MUSIC_PLAYBACK_VIEW, &parcel))
+               _ERR("CViewMgr::UpdateView MUSIC_PLAYBACK_VIEW failed ");
+
+       if (!CViewMgr::GetInstance()->ShowView(MUSIC_PLAYBACK_VIEW))
+               _ERR("CViewMgr::ShowView MUSIC_PLAYBACK_VIEW failed ");
 }
 
 
@@ -1131,8 +1136,13 @@ void CMusicBaseView::OnMouseClicked(int id, Evas_Object *obj)
                        state = m->mhandle->PlayState();
 
                        if (state != PLAY_STATUS_INITIAL) {
-                               if (!CViewMgr::GetInstance()->PushView(MUSIC_PLAYBACK_VIEW, NULL))
-                                       _ERR(" viewmgr  push view failed ");
+                               t_OnHide();
+
+                               if (!CViewMgr::GetInstance()->UpdateView(MUSIC_PLAYBACK_VIEW, NULL))
+                                       _ERR("CViewMgr::UpdateView failed");
+
+                               if (!CViewMgr::GetInstance()->ShowView(MUSIC_PLAYBACK_VIEW))
+                                       _ERR("CViewMgr::ShowView failed");
 
                                return;
                        }
index 352056f..c52004b 100644 (file)
@@ -161,11 +161,21 @@ void CCommonUI::UpdatePlaybackView(EAddType type,
        switch (type) {
        case ADD_TYPE_FRESH:
                {
+                       if (CViewMgr::GetInstance()->CheckTop(MUSIC_CONTEXT_VIEW))
+                               if (!vmgr->HideView(MUSIC_CONTEXT_VIEW))
+                                       _ERR("CViewMgr::HideView failed");
+
+                       if (!vmgr->HideView(MUSIC_BASE_VIEW))
+                               _ERR("CViewMgr::HideView failed");
+
                        SParcel parcel;
                        memset(&parcel, 0, sizeof(SParcel));
                        parcel.updateType = E_PLAYLIST_UPDATE;
-                       if (!vmgr->PushView((const char *)MUSIC_PLAYBACK_VIEW, &parcel))
-                               _ERR("PushView of PlaybackView Failed");
+                       if (!vmgr->UpdateView((const char *)MUSIC_PLAYBACK_VIEW, &parcel))
+                               _ERR("UpdateView of PlaybackView Failed");
+
+                       if (!vmgr->ShowView((const char *)MUSIC_PLAYBACK_VIEW))
+                               _ERR("ShowView of PlaybackView Failed");
                }
                return;
 
index f1028f3..6459d9f 100644 (file)
@@ -298,6 +298,11 @@ void CPlaybackView::m_OnCtxtUpdate(EActionType type, int lid)
                focusedItem = m->focused_item;
        }
 
+       if (!CViewMgr::GetInstance()->HideView(MUSIC_BASE_VIEW))
+               _ERR("CViewMgr::HideView failed");
+
+       t_OnShow();
+
        if (focusedItem) {
                elm_genlist_item_show(focusedItem, ELM_GENLIST_ITEM_SCROLLTO_IN);
                elm_object_item_focus_set(focusedItem, EINA_TRUE);
@@ -968,7 +973,17 @@ void CPlaybackView::m_KeyBackPress(void)
        }
 
        t_OnHide();
-       m->mgr->PopView();
+
+       if (!CViewMgr::GetInstance()->ShowView(MUSIC_BASE_VIEW))
+               _ERR("CViewMgr::ShowView failed");
+
+       if (CViewMgr::GetInstance()->CheckTop(MUSIC_CONTEXT_VIEW)) {
+               if (!CViewMgr::GetInstance()->UpdateView(MUSIC_CONTEXT_VIEW, NULL))
+                       _ERR("CViewMgr::UpdateView failed");
+
+               if (!CViewMgr::GetInstance()->ShowView(MUSIC_CONTEXT_VIEW))
+                       _ERR("CViewMgr::ShowView failed");
+       }
 }
 
 
index 5eb8d35..8e4f1dd 100644 (file)
@@ -447,8 +447,14 @@ void CSongLayout::m_GotoPlayback(void)
        memset(&parcel, 0, sizeof(SParcel));
        parcel.updateType = E_PLAYLIST_UPDATE;
 
-       if (!m->vmgr->PushView(MUSIC_PLAYBACK_VIEW, &parcel))
-               _ERR(" viewmgr  push view  MUSIC_PLAYBACK_VIEW failed ");
+       if (!m->vmgr->HideView(MUSIC_BASE_VIEW))
+               _ERR("CViewMgr::HideView MUSIC_BASE_VIEW failed ");
+
+       if (!m->vmgr->UpdateView(MUSIC_PLAYBACK_VIEW, &parcel))
+               _ERR("CViewMgr::UpdateView MUSIC_PLAYBACK_VIEW failed ");
+
+       if (!m->vmgr->ShowView(MUSIC_PLAYBACK_VIEW))
+               _ERR("CViewMgr::ShowView MUSIC_PLAYBACK_VIEW failed ");
 }