From: Jehun Lim Date: Wed, 6 May 2015 11:03:03 +0000 (+0900) Subject: update the media db after rotating the image X-Git-Tag: accepted/tizen/tv/20150509.061819^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4bae1c3de2bf045ae5ad38a9cd6921e9fa55432a;p=profile%2Ftv%2Fapps%2Fnative%2Fgallery.git update the media db after rotating the image Change-Id: Iebada4e6f5c90d8c90a5cead41c48cb571e9d61d Signed-off-by: Jehun Lim --- diff --git a/include/data/mediainfo.h b/include/data/mediainfo.h index 9e76953..70a3070 100644 --- a/include/data/mediainfo.h +++ b/include/data/mediainfo.h @@ -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 diff --git a/src/data/mediadata.cpp b/src/data/mediadata.cpp index 9d90d7e..682d7a4 100644 --- a/src/data/mediadata.cpp +++ b/src/data/mediadata.cpp @@ -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; diff --git a/src/data/mediainfo.cpp b/src/data/mediainfo.cpp index e1423bd..e2823c4 100644 --- a/src/data/mediainfo.cpp +++ b/src/data/mediainfo.cpp @@ -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; } diff --git a/src/view/photo-viewer/photoviewer_view.cpp b/src/view/photo-viewer/photoviewer_view.cpp index a05e0ea..26b2e21 100644 --- a/src/view/photo-viewer/photoviewer_view.cpp +++ b/src/view/photo-viewer/photoviewer_view.cpp @@ -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);