Fix Bug: When a song is removed from the list of playback view, playback view should... 43/37343/2
authorKim Tae Soo <taesoo46.kim@samsung.com>
Wed, 25 Mar 2015 01:10:19 +0000 (10:10 +0900)
committerKim Tae Soo <taesoo46.kim@samsung.com>
Wed, 25 Mar 2015 01:25:36 +0000 (10:25 +0900)
Change-Id: If562c80f8ba6bfb96d59fea709db08eb57311c2b
Signed-off-by: Kim Tae Soo <taesoo46.kim@samsung.com>
src/main.cpp
src/views/playback-view.cpp

index a98f343..28fcf8f 100644 (file)
@@ -69,7 +69,8 @@ private:
        static void sm_CbPopView(void* cookie, const char *szDestroyViewId, CBaseView *pShowView)
        {
                const char *viewId = pShowView->ViewId();
-               if (!strcmp(viewId, MUSIC_CONTEXT_VIEW))
+               if (!strcmp(viewId, MUSIC_CONTEXT_VIEW) ||
+                       !strcmp(viewId, MUSIC_PLAYBACK_VIEW))
                        CViewMgr::GetInstance()->UpdateView(viewId, NULL);
        }
 
index aff7a1c..aba56e8 100644 (file)
@@ -266,6 +266,7 @@ void CPlaybackView::sm_CbCtxtUpdate(void *dt, enum EActionType type, int lid)
 {
        SPlaybackView *m = (SPlaybackView *)dt;
        SItemInfo *itinfo = NULL;
+       Elm_Object_Item *focucedItem = NULL;
 
        if (!m)
                return;
@@ -283,8 +284,15 @@ void CPlaybackView::sm_CbCtxtUpdate(void *dt, enum EActionType type, int lid)
        if (type == ACTION_TYPE_DELETE) {
                itinfo->check_status = true;
                m->parent->m_DeleteSelectedItems();
+
+               if (!m->mgr->PopView()) {
+                       _ERR("CViewMgr::PopView failed");
+                       return;
+               }
+
+               focucedItem = m->cs_itinfo->item;
        }
-       else if (type == ACTION_TYPE_PLAY) {
+       else { // ACTION_TYPE_PLAY
                if (m->ctxtinfo->status == PLAY_STATUS_PLAY)
                        m->parent->m_KeyPausePress();
                else {
@@ -293,18 +301,16 @@ void CPlaybackView::sm_CbCtxtUpdate(void *dt, enum EActionType type, int lid)
                        else
                                m->parent->m_HandleGenlistItemActivated(m->eoPlaylist, itinfo->item);
                }
-       }
-       else {
-               _ERR(" Wrong ctxt add type in plaback view ");
-               ASSERT(0);
-       }
 
-       if (!m->mgr->PopView()) {
-               _ERR("CViewMgr::PopView failed");
-               return;
+               if (!m->mgr->PopView()) {
+                       _ERR("CViewMgr::PopView failed");
+                       return;
+               }
+
+               focucedItem = m->focused_item;
        }
 
-       elm_object_item_focus_set(m->focused_item, EINA_TRUE);
+       elm_object_item_focus_set(focucedItem, EINA_TRUE);
 }
 
 
@@ -1799,12 +1805,15 @@ void CPlaybackView::t_OnUpdate(void *data)
 {
        ASSERT(m);
 
-       if (!data)
-               return;
+       SParcel *parcel;
+       int updateType;
 
-       SParcel *parcel = (SParcel *)data;
-       int updateType = parcel->updateType;
-       char *key = (char *)parcel->keyEvent;
+       if (!data)
+               updateType = E_PLAYLIST_UPDATE;
+       else {
+               parcel = (SParcel *)data;
+               updateType = parcel->updateType;
+       }
 
        switch (updateType) {
        case E_PLAYLIST_UPDATE:
@@ -1819,11 +1828,11 @@ void CPlaybackView::t_OnUpdate(void *data)
                break;
 
        case E_KEY_PRESS:
-               m_HandleKeyPress(key);
+               m_HandleKeyPress((char *)parcel->keyEvent);
                break;
 
        case E_KEY_RELEASE:
-               m_HandleKeyUnpress(key);
+               m_HandleKeyUnpress((char *)parcel->keyEvent);
                break;
 
        default: