create CMediaContentListener in the mediadata constructor 98/39698/4
authorJehun Lim <jehun.lim@samsung.com>
Wed, 20 May 2015 13:48:21 +0000 (22:48 +0900)
committerJehun Lim <jehun.lim@samsung.com>
Thu, 21 May 2015 07:03:31 +0000 (16:03 +0900)
Change-Id: Ie3bdf00e7be2550aca073b33347a6bb82d709517
Signed-off-by: Jehun Lim <jehun.lim@samsung.com>
include/data/mediadata.h
src/data/mediadata.cpp
src/main.cpp

index 1eb513f..3be2eec 100644 (file)
@@ -44,7 +44,7 @@ private:
        bool m_DestroyFilter(filter_h filter);
 
 public:
-       CMediadata() : m(0) {};
+       CMediadata() : CMediaContentListener(), m(0) {};
        ~CMediadata() {};
 
        static bool Initialize(void);
index debb9a7..1210ce7 100644 (file)
@@ -125,8 +125,6 @@ void CMediadata::DestroyMediaList(void)
 
        if (m->folder_medialist)
                m_DeleteMediaList(E_TYPE_FOLDER_MEDIA);
-
-       CMediaContentListener::Destroy();
 }
 
 bool CMediadata::m_CreateFilter(filter_h *filter, int type)
@@ -483,23 +481,34 @@ bool CMediadata::Initialize(void)
        if (!instance)
                return false;
 
+       if (!instance->Create()) {
+               _ERR("MediaContentListener create failed");
+               goto err;
+       }
+
        instance->m = new SMediadata;
        if (!instance->m) {
                _ERR("Mediadata init failed");
-               delete instance;
-               instance = NULL;
-               return false;
+               instance->Destroy();
+               goto err;
        }
 
        ret = media_content_connect();
        if (ret != MEDIA_CONTENT_ERROR_NONE) {
                _ERR("Media Content Connect Failed");
-               return false;
+               instance->Destroy();
+               delete instance->m;
+               goto err;
        }
 
        g_ref_count++;
 
        return true;
+
+err:
+       delete instance;
+       instance = NULL;
+       return false;
 }
 
 void CMediadata::Finalize(void)
@@ -515,10 +524,8 @@ void CMediadata::Finalize(void)
        g_ref_count--;
 
        if (g_ref_count == 0) {
-               instance->m_DeleteFolderList();
-               instance->m_DeleteEventList();
-               instance->m_DeleteMediaList(E_TYPE_MEDIA);
-               instance->m_DeleteMediaList(E_TYPE_FOLDER_MEDIA);
+               instance->DestroyMediaList();
+               instance->Destroy();
 
                ret = media_content_disconnect();
                if (ret != MEDIA_CONTENT_ERROR_NONE)
@@ -558,11 +565,6 @@ bool CMediadata::CreateMediaList(int source_type, int media)
 
        m_DestroyFilter(m->filter);
 
-       if (!CMediaContentListener::Create()) {
-               _ERR("MediaContentListener create failed");
-               return false;
-       }
-
        return true;
 }
 
index c230a69..e89c5f4 100644 (file)
@@ -294,7 +294,6 @@ bool CGalleryApp::m_CreatePhotoViewerView(void)
                return false;
        }
 
-       m->pMediadata->DestroyMediaList();
        m->pMediadata->CreateMediaList(m->source, m->media_type);
 
        vd->minfo = m->pMediadata->FindMediaInfo(m->pMediadata->MediaList(), m->id);