update the media db after rotating the image 99/38999/2 accepted/tizen/tv/20150509.061819 submit/tizen/20150508.060730
authorJehun Lim <jehun.lim@samsung.com>
Wed, 6 May 2015 11:03:03 +0000 (20:03 +0900)
committerJehun Lim <jehun.lim@samsung.com>
Wed, 6 May 2015 11:16:30 +0000 (20:16 +0900)
Change-Id: Iebada4e6f5c90d8c90a5cead41c48cb571e9d61d
Signed-off-by: Jehun Lim <jehun.lim@samsung.com>
include/data/mediainfo.h
src/data/mediadata.cpp
src/data/mediainfo.cpp
src/view/photo-viewer/photoviewer_view.cpp

index 9e76953..70a3070 100644 (file)
@@ -32,12 +32,16 @@ public:
        time_t CreatedTime(void);
        time_t Time(void);
        int Source(void);
+       media_info_h MediaInfo(void);
 
        bool SetLocationTag(const char *location_tag);
        bool SetCreatedTime(time_t created_time);
        bool SetSource(int source);
+       bool SetMediaInfo(media_info_h media_h);
 
        bool Duplicate(CNameInfo *obj);
+
+       bool UpdateDb(void);
 };
 
 #endif
index 9d90d7e..682d7a4 100644 (file)
@@ -415,8 +415,7 @@ bool CMediadata::m_HandleEachMediaInfo(media_info_h media_h)
 
                if (!m_HandleEachImageInfo(media_h, minfo))
                        goto error;
-       }
-       else if (type == MEDIA_CONTENT_TYPE_VIDEO) {
+       } else if (type == MEDIA_CONTENT_TYPE_VIDEO) {
                minfo = new CVideoInfo;
                if (!minfo) {
                        _ERR("MediaInfo Create Failed");
@@ -494,6 +493,8 @@ bool CMediadata::m_HandleEachMediaInfo(media_info_h media_h)
        }
        minfo->SetSource(val);
 
+       minfo->SetMediaInfo(media_h);
+
        m->folder_medialist = eina_list_append(m->folder_medialist, minfo);
 
        return true;
index e1423bd..e2823c4 100644 (file)
@@ -21,6 +21,8 @@
 #include "util.h"
 
 struct SMediaInfo {
+       media_info_h media_h;
+
        char *location_tag;
        time_t created_time;
        int source;
@@ -53,6 +55,8 @@ void CMediaInfo::Destroy(void)
 
        CExtNameInfo::Destroy();
 
+       media_info_destroy(m->media_h);
+
        delete[] m->location_tag;
        delete m;
 
@@ -102,6 +106,14 @@ int CMediaInfo::Source(void)
        return source;
 }
 
+media_info_h CMediaInfo::MediaInfo(void)
+{
+       if (!m)
+               return NULL;
+
+       return m->media_h;
+}
+
 bool CMediaInfo::SetLocationTag(const char *location_tag)
 {
        if (!m)
@@ -139,6 +151,20 @@ bool CMediaInfo::SetSource(int source)
        return true;
 }
 
+bool CMediaInfo::SetMediaInfo(media_info_h media_h)
+{
+       if (!m)
+               return false;
+
+       if (media_info_clone(&(m->media_h), media_h)
+               != MEDIA_CONTENT_ERROR_NONE) {
+               _ERR("Media info clone error");
+               return false;
+       }
+
+       return true;
+}
+
 bool CMediaInfo::Duplicate(CNameInfo *obj)
 {
        if (!m)
@@ -155,6 +181,21 @@ bool CMediaInfo::Duplicate(CNameInfo *obj)
                return false;
        if (!SetSource(dst->Source()))
                return false;
+       if (!SetMediaInfo(dst->MediaInfo()))
+               return false;
+
+       return true;
+}
+
+bool CMediaInfo::UpdateDb(void)
+{
+       char *media_id;
+
+       media_info_get_media_id(m->media_h, &media_id);
+
+       if (media_info_refresh_metadata_to_db(media_id)
+               != MEDIA_CONTENT_ERROR_NONE)
+               return false;
 
        return true;
 }
index a05e0ea..26b2e21 100644 (file)
@@ -330,6 +330,11 @@ void CPhotoViewerView::m_OnRotateBtnClicked(Evas_Object *obj,
        evas_object_image_save(internalimage, file_path,
                NULL, "quality=100");
 
+       if (!minfo->UpdateDb()) {
+               _ERR("Update db failed");
+               return;
+       }
+
        m_DrawContentArea(minfo);
        m_DrawTopArea(minfo);