[JIRA:TT-21] Musicplayer disappears when home button was pressed
[profile/tv/apps/native/musicplayer.git] / src / main.cpp
index ce0f967..e6df0a0 100644 (file)
@@ -52,6 +52,8 @@ private:
        CPlaybackView *m_cPlaybackView;
        CContextView *m_cContextView;
 
+       CViewMgr *m_pViewMgr;
+
 private:
 
        static void sm_CbPushView(void* cookie, CBaseView *pHideView, CBaseView *pShowView)
@@ -114,9 +116,9 @@ public:
 
        virtual void OnTerminate(void)
        {
-               CViewMgr::GetInstance()->RemoveView(m_cBaseView);
-               CViewMgr::GetInstance()->RemoveView(m_cPlaybackView);
-               CViewMgr::GetInstance()->RemoveView(m_cContextView);
+               m_pViewMgr->RemoveView(m_cBaseView);
+               m_pViewMgr->RemoveView(m_cPlaybackView);
+               m_pViewMgr->RemoveView(m_cContextView);
 
                CSortMgr::Finalize();
                CViewMgr::Finalize();
@@ -134,17 +136,25 @@ public:
 
        virtual void OnPause(void)
        {
-               elm_exit();
+               _DBG("Musicplayer app is paused");
+               m_pViewMgr->Pause();
+
        }
 
+       virtual void OnResume(void)
+       {
+               _DBG("Musicplayer app is Resumed");
+               m_pViewMgr->Resume();
+       }
+
+
        virtual void OnAppControl(app_control_h app_control)
        {
                _DBG("");
-               CViewMgr* viewmgr = NULL;
-               int r;
                char *album_id;
                char *uri;
                char *source;
+               int r;
 
                _DBG("");
                r = app_control_get_extra_data(app_control, PARAM_ALBUM, &album_id);
@@ -181,8 +191,8 @@ public:
                _DBG("");
 
                CViewMgr::Initialize(ad.win, (void*)"path");
-               viewmgr = CViewMgr::GetInstance();
-               if (!viewmgr) {
+               m_pViewMgr = CViewMgr::GetInstance();
+               if (!m_pViewMgr) {
                        _ERR(" viewmgr init failed ");
                        CMusicController::Finalize();
                        goto error;
@@ -196,9 +206,9 @@ public:
                m_cContextView = new CContextView(MUSIC_CONTEXT_VIEW);
                _DBG("");
 
-               viewmgr->AddView(m_cBaseView);
-               viewmgr->AddView(m_cPlaybackView);
-               viewmgr->AddView(m_cContextView);
+               m_pViewMgr->AddView(m_cBaseView);
+               m_pViewMgr->AddView(m_cPlaybackView);
+               m_pViewMgr->AddView(m_cContextView);
                _DBG("");
 
 
@@ -207,10 +217,10 @@ public:
                cb.cookie = this;
                cb.cbPushView = sm_CbPushView;
                cb.cbPopView = sm_CbPopView;
-               viewmgr->AddCallback(&cb);
+               m_pViewMgr->AddCallback(&cb);
                _DBG("");
 
-               if (!viewmgr->PushView(MUSIC_BASE_VIEW, ad.arglist)) {
+               if (!m_pViewMgr->PushView(MUSIC_BASE_VIEW, ad.arglist)) {
                        _ERR(" view push failed ");
                        CViewMgr::Finalize();
                        CMusicController::Finalize();