2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 // Licensed under the Flora License, Version 1.1 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
8 // http://floralicense.org/license/
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an AS IS BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
18 * @file GlFileListPresentationModel.cpp
19 * @brief This is the implementation file for FileListPresentationModel class.
25 #include "GlCommonUtil.h"
26 #include "GlFileListPresentationModel.h"
27 #include "GlContentUpdateEventListener.h"
28 #include "GlGalleryApp.h"
29 #include "GlThumbnailEvent.h"
30 #include "GlThumbnailEventArg.h"
31 #include "GlThumbnailProvider.h"
34 using namespace Tizen::App;
35 using namespace Tizen::Base;
36 using namespace Tizen::Base::Collection;
37 using namespace Tizen::Base::Runtime;
38 using namespace Tizen::Base::Utility;
39 using namespace Tizen::Content;
40 using namespace Tizen::Graphics;
41 using namespace Tizen::Io;
42 using namespace Tizen::Media;
43 using namespace Tizen::System;
45 static const String CONTENT_INFO_ORDER = L"ContentFileName";
47 static const int SIZE_PAGE_NO = 1;
48 static const int SIZE_CONUNT_PER_PAGE = 3000;
49 static const int SIZE_ICON_LIST_CACHE = 50;
50 static const int W_DURATION_TEXT = 44;
51 static const int H_DURATION_TEXT = 4;
52 static const int W_DURATION = 171;
53 static const int H_DURATION = 32;
54 static const int W_DEFAULT_THUMBNAIL = 171;
55 static const int H_DEFAULT_THUMBNAIL = 127;
56 static const int W_WIDE_THUMBNAIL = 171;
57 static const int H_WIDE_THUMBNAIL = 127;
58 static const int W_PLAY_FG = 64;
59 static const int H_PLAY_FG = 64;
60 static const int GAP_W_PLAY_FG = (W_DEFAULT_THUMBNAIL -W_PLAY_FG)/2;
61 static const int GAP_H_PLAY_FG = (H_DEFAULT_THUMBNAIL - H_PLAY_FG)/2;
62 static const int GAP_H_DURATION = H_DEFAULT_THUMBNAIL - H_DURATION;
63 static const int ALPHA_DURATION = 70;
64 static const int FONT_SIZE_DURATION = 24;
65 static const Dimension DIMENSION_REAL_ICON (171,127);
66 static const Rectangle RECTANGLE_THUMBNAIL_OFFSET_POSION (1, 1, 171, 127);
67 static const Rectangle RECTANGLE_VIDEO_THUMBNAIL_OFFSET_POSION (1, 1, 171, 127);
68 static const Color COLOR_DURATION_BG (Color::GetColor(COLOR_ID_BLACK));
69 static const Color COLOR_TEXT_OUTLINE (Color::GetColor(COLOR_ID_WHITE));
71 static const String RESERVED_CAMERA_PATH = Environment::GetMediaPath() + L"Camera";
72 static const String RESERVED_CAMERA_PATH_EXT = Environment::GetExternalStoragePath() + L"Camera";
73 static const String RESERVED_DOWNLOAD_PATH = Environment::GetMediaPath() + L"Downloads";
75 FileListPresentationModel* FileListPresentationModel::__pPresentationModelInstance = null;
76 ThumbnailProvider* FileListPresentationModel::__pThumbnailProvider = null;
77 ThumbnailEvent* FileListPresentationModel::__pThumbnailEvent = null;
78 ArrayList* FileListPresentationModel::__pPresentationModelListener = null;
79 ArrayList* FileListPresentationModel::__pContentEventListener = null;
80 ArrayList* FileListPresentationModel::__pIconListViewCache = null;
81 IList* FileListPresentationModel::__pDirectoryList = null;
82 IList* FileListPresentationModel::__pContentInfoList = null;
84 FileListPresentationModel::FileListPresentationModel(void)
85 : __pContentManager(null)
86 , __albumContentType(CONTENT_TYPE_ALL)
87 , __appControlMode(APPCONTROL_MODE_MAIN)
88 , __appControlMediaType(APPCONTROL_MEDIA_TYPE_IMAGE)
89 , __appControlSelectionMode(APPCONTROL_SELECTION_MODE_SINGLE)
90 , __pContentIdList(null)
91 , __updateProgressStatus(false)
94 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
97 FileListPresentationModel::~FileListPresentationModel(void)
100 DeviceManager::RemoveDeviceEventListener(DEVICE_TYPE_STORAGE_CARD, *this);
101 if (__pContentIdList)
103 __pContentIdList->RemoveAll(true);
104 delete __pContentIdList;
105 __pContentIdList = null;
107 delete __pContentManager;
108 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
111 FileListPresentationModel*
112 FileListPresentationModel::GetInstance(void)
114 AppLogDebug("ENTER");
115 if (__pPresentationModelInstance == null)
119 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
121 return __pPresentationModelInstance;
125 FileListPresentationModel::Construct(void)
127 AppLogDebug("ENTER");
129 IThumbnailEventListener* pThumbnailEventListener = static_cast<IThumbnailEventListener*>(this);
130 __pThumbnailEvent = new (std::nothrow) ThumbnailEvent();
131 __pThumbnailEvent->AddListener(*pThumbnailEventListener, true);
133 DeviceManager::AddDeviceEventListener(DEVICE_TYPE_STORAGE_CARD, *this);
135 ContentUpdateEventListener::GetInstance();
136 __pContentManager = new (std::nothrow) ContentManager();
137 __pContentManager->Construct();
139 if (__pIconListViewCache != null)
141 __pIconListViewCache->RemoveAll(true);
142 delete __pIconListViewCache;
143 __pIconListViewCache = null;
145 __pIconListViewCache = new (std::nothrow) ArrayList(SingleObjectDeleter);
146 __pIconListViewCache->Construct(SIZE_ICON_LIST_CACHE);
148 if (__pDirectoryList != null)
150 delete __pDirectoryList;
152 __pDirectoryList = new (std::nothrow) ArrayList(SingleObjectDeleter);
154 if (__pContentInfoList != null)
156 delete __pContentInfoList;
158 __pContentInfoList = new (std::nothrow) ArrayList(SingleObjectDeleter);
160 __pPresentationModelListener = new (std::nothrow) ArrayList();
161 __pPresentationModelListener->Construct();
163 __pContentEventListener = new (std::nothrow) ArrayList();
164 __pContentEventListener->Construct();
166 __pThumbnailProvider = ThumbnailProvider::GetInstance();
168 GalleryApp* pApp = static_cast<GalleryApp*>(GalleryApp::GetInstance());
169 const IMap* pArguments = pApp->GetAppControlArguments();
170 String operationId = pApp->GetAppControlOperationId();
172 if (operationId.CompareTo(APPCONTROL_OPERATION_ID_MAIN) == 0)
174 __appControlMode = APPCONTROL_MODE_MAIN;
176 else if (operationId.CompareTo(APPCONTROL_OPERATION_ID_PICK) == 0)
178 __appControlMode = APPCONTROL_MODE_PICK;
180 String mimeType = pApp->GetMimeType();
181 if (mimeType.IsEmpty() != true)
183 if (mimeType.StartsWith(APPCONTROL_DATA_VIDEO, 0) == true)
185 __appControlMediaType = APPCONTROL_MEDIA_TYPE_VIDEO;
188 if (pArguments != null)
190 const String* selectionMode = static_cast<const String*>(pArguments->GetValue(String(APPCONTROL_KEY_SELECTION_MODE)));
192 if (pApp->GetMimeType().StartsWith(APPCONTROL_DATA_VIDEO, 0) == true)
194 __appControlMediaType = APPCONTROL_MEDIA_TYPE_VIDEO;
197 if (selectionMode != null && selectionMode->CompareTo(APPCONTROL_DATA_MULTIPLE) == 0)
199 __appControlSelectionMode = APPCONTROL_SELECTION_MODE_MULTIPLE;
203 else if (operationId.CompareTo(APPCONTROL_OPERATION_ID_CONFIGURE) == 0)
205 __appControlMode = APPCONTROL_MODE_SETTING;
208 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
214 FileListPresentationModel::CreateInstance(void)
216 AppLogDebug("ENTER");
217 __pPresentationModelInstance = new (std::nothrow) FileListPresentationModel();
218 result r = __pPresentationModelInstance->Construct();
219 if (IsFailed(r) == true)
221 delete __pPresentationModelInstance;
222 __pPresentationModelInstance = null;
223 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
228 std::atexit(DestroyInstance);
229 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
233 FileListPresentationModel::DestroyInstance(void)
235 AppLogDebug("ENTER");
237 delete __pThumbnailEvent;
239 if (__pIconListViewCache != null)
241 __pIconListViewCache->RemoveAll(true);
242 delete __pIconListViewCache;
243 __pIconListViewCache = null;
246 if (__pDirectoryList != null)
248 delete __pDirectoryList;
249 __pDirectoryList = null;
252 if (__pContentInfoList != null)
254 delete __pContentInfoList;
255 __pContentInfoList = null;
258 if (__pPresentationModelListener != null)
260 delete __pPresentationModelListener;
261 __pPresentationModelListener = null;
264 if (__pContentEventListener != null)
266 delete __pContentEventListener;
267 __pContentEventListener = null;
270 delete __pPresentationModelInstance;
271 __pPresentationModelInstance = null;
273 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
277 FileListPresentationModel::GetFileNameFromFullPath(const String& fullPath, const bool withExt) const
279 AppLogDebug("ENTER");
280 if (fullPath.CompareTo(EMPTY_SPACE) == 0)
282 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
287 String delim(DIRECTORY_SEPARATOR);
288 StringTokenizer st(fullPath,delim);
290 while (st.HasMoreTokens())
292 st.GetNextToken(token);
297 AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
303 String subDelim(FILE_EXT_SEPARATOR);
304 StringTokenizer subSt(token, subDelim);
306 subSt.GetNextToken(subToken);
307 AppLogDebug("EXIT 3(%s)", GetErrorMessage(GetLastResult()));
314 FileListPresentationModel::GetDirecotyNameFromFullPath(const String& fullPath)const
316 AppLogDebug("ENTER");
317 if (fullPath == null)
319 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
323 String delim(DIRECTORY_SEPARATOR);
324 StringTokenizer st(fullPath,delim);
326 while (st.HasMoreTokens())
328 st.GetNextToken(token);
330 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
336 FileListPresentationModel::IsContainContentInDirectory(const String& directoryPath, ContentType contentType) const
338 AppLogDebug("ENTER");
339 IListT<ContentType>* pContentTypeList = new (std::nothrow) ArrayListT<ContentType>();
340 if (&directoryPath == null || pContentTypeList == null)
342 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
347 if (contentType == CONTENT_TYPE_IMAGE || contentType == CONTENT_TYPE_ALL)
349 pContentTypeList->Add(CONTENT_TYPE_IMAGE);
351 if (contentType == CONTENT_TYPE_VIDEO || contentType == CONTENT_TYPE_ALL)
353 pContentTypeList->Add(CONTENT_TYPE_VIDEO);
356 ContentDirectory contentDirectory;
357 result r = contentDirectory.Construct(*pContentTypeList);
358 if (pContentTypeList != null)
360 delete pContentTypeList;
362 TryReturn(r == E_SUCCESS, false, "[%s] Unable to construct ContentDirectory", GetErrorMessage(r));
364 bool returnValue = false;
365 int pageNo = SIZE_PAGE_NO;
366 int countPerPage = SIZE_CONUNT_PER_PAGE;
368 IList* pContentList = contentDirectory.GetContentDirectoryItemListN(directoryPath, pageNo, countPerPage,
369 CONTENT_INFO_ORDER, SORT_ORDER_ASCENDING);
371 if (pContentList == null || pContentList->GetCount() <= 0)
380 if (pContentList != null)
384 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
390 FileListPresentationModel::GetThumbnailInSyncCacheN(const int index, String*& pName, Bitmap*& pThumbnail)
392 AppLogDebug("ENTER : index(%d)", index);
393 Bitmap* pOriginalBitmap = null;
394 Bitmap* pDestinationBitmap = null;
395 ContentInfo* pContentInfo = null;
397 if (__pContentInfoList != null && index < __pContentInfoList->GetCount())
399 pContentInfo = static_cast<ContentInfo*>(__pContentInfoList->GetAt(index));
400 if (pContentInfo == null)
402 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
409 AppLogDebug("EXIT 2 __pContentInfoList(%x) index(%d)", __pContentInfoList, index);
413 ThumbnailInfo* pThumbnailInfo = GetThumbnailInfoFromInternalBufferN(pContentInfo->GetContentId());
414 if (pThumbnailInfo != null)
416 pName = new (std::nothrow) String(pThumbnailInfo->GetFilePath());
417 pOriginalBitmap = pThumbnailInfo->GetBitmapN();
420 if ((pThumbnailInfo != null)&&(pThumbnailInfo->GetContentType() == CONTENT_TYPE_VIDEO))
422 if (pOriginalBitmap != null)
424 pDestinationBitmap = CoverVideoOverlayedImageOnThumbnailN(*pOriginalBitmap, *pThumbnailInfo);
425 delete pOriginalBitmap;
430 pDestinationBitmap = pOriginalBitmap;
433 if (pDestinationBitmap != null)
435 Bitmap* pThumbnailBgBitmap = ResourceManager::GetBitmapN(IDB_VIDEOTHUMBNAIL_BG);
436 Rectangle thumbnailRect(RECTANGLE_THUMBNAIL_OFFSET_POSION);
437 pDestinationBitmap->Scale(Dimension(RECTANGLE_THUMBNAIL_OFFSET_POSION.width - RECTANGLE_THUMBNAIL_OFFSET_POSION.x
438 , RECTANGLE_THUMBNAIL_OFFSET_POSION.height - RECTANGLE_THUMBNAIL_OFFSET_POSION.y));
439 if (pThumbnailBgBitmap != null)
441 pThumbnailBgBitmap->Scale(DIMENSION_REAL_ICON);
442 pThumbnail = GetShadedBackgroundBitmapN(*pThumbnailBgBitmap, *pDestinationBitmap, thumbnailRect);
443 delete pThumbnailBgBitmap;
444 delete pDestinationBitmap;
448 pThumbnail = pDestinationBitmap;
456 if (pThumbnailInfo != null)
458 delete pThumbnailInfo;
461 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
467 FileListPresentationModel::GetThumbnailVideoInSyncCacheN(const int index,
468 String*& pName, Bitmap*& pThumbnail, String*& pDuration) const
470 AppLogDebug("ENTER : index(%d)", index);
471 ContentInfo* pContentInfo = null;
472 Bitmap* pOriginalBitmap = null;
474 if (__pContentInfoList != null && index < __pContentInfoList->GetCount())
476 pContentInfo = static_cast<ContentInfo*>(__pContentInfoList->GetAt(index));
477 if (pContentInfo == null)
479 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
485 AppLogDebug("EXIT 2 __pContentInfoList(%x) index(%d)", __pContentInfoList, index);
489 ThumbnailInfo* pThumbnailInfo = GetThumbnailInfoFromInternalBufferN(pContentInfo->GetContentId());
490 if (pThumbnailInfo != null)
492 pName = new (std::nothrow) String(pThumbnailInfo->GetFilePath());
493 pOriginalBitmap = pThumbnailInfo->GetBitmapN();
494 pDuration = new (std::nothrow) String(CommonUtil::DurationToTimeString(pThumbnailInfo->GetDuration()));
498 pName = new (std::nothrow) String(EMPTY_SPACE);
499 pDuration = new (std::nothrow) String(CommonUtil::DurationToTimeString(0));
502 if (pOriginalBitmap != null)
504 Bitmap* pThumbnailBgBitmap = ResourceManager::GetBitmapN(IDB_VIDEOTHUMBNAIL_BG);
505 Rectangle thumbnailRect(RECTANGLE_VIDEO_THUMBNAIL_OFFSET_POSION);
506 pOriginalBitmap->Scale(Dimension(RECTANGLE_VIDEO_THUMBNAIL_OFFSET_POSION.width - RECTANGLE_VIDEO_THUMBNAIL_OFFSET_POSION.x
507 , RECTANGLE_VIDEO_THUMBNAIL_OFFSET_POSION.height - RECTANGLE_VIDEO_THUMBNAIL_OFFSET_POSION.y));
508 if (pThumbnailBgBitmap != null)
510 pThumbnailBgBitmap->Scale(Dimension(W_WIDE_THUMBNAIL, H_WIDE_THUMBNAIL));
511 pThumbnail = GetShadedBackgroundBitmapN(*pThumbnailBgBitmap, *pOriginalBitmap, thumbnailRect);
512 delete pThumbnailBgBitmap;
514 delete pOriginalBitmap;
521 if (pThumbnail != null)
523 pThumbnail->Scale(Dimension(W_WIDE_THUMBNAIL, H_WIDE_THUMBNAIL));
526 if (pThumbnailInfo != null)
528 delete pThumbnailInfo;
530 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
536 FileListPresentationModel::RequestThumbnail(const int index)
538 AppLogDebug("ENTER : index(%d)", index);
539 ContentInfo* pContentInfo = null;
541 if (__pContentInfoList != null && index < __pContentInfoList->GetCount())
543 pContentInfo = static_cast<ContentInfo*>(__pContentInfoList->GetAt(index));
544 if (pContentInfo == null)
546 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
552 AppLogDebug("EXIT 2 __pContentInfoList(%x) index(%d)", __pContentInfoList, index);
557 __pThumbnailProvider->RequestThumbnail(pContentInfo->GetContentId(), __pThumbnailEvent);
562 FileListPresentationModel::RequestThumbnail(const ContentId& contentId)
564 __pThumbnailProvider->RequestThumbnail(contentId, __pThumbnailEvent);
568 FileListPresentationModel::ClearThumbnailRequests(const bool appTerminating)
570 AppLogDebug("ENTER");
572 if (__pThumbnailProvider != null)
574 __pThumbnailProvider->ClearThumbnailRequests(appTerminating);
581 FileListPresentationModel::OnThumbnailReceivedN(IEventArg& eventArg)
583 AppLogDebug("ENTER");
585 if (&eventArg != null)
587 ThumbnailEventArg* pThumbnailEventArg = static_cast<ThumbnailEventArg*>(&eventArg);
588 if (pThumbnailEventArg == null)
590 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
594 ThumbnailInfo* pThumbnailInfo = pThumbnailEventArg->GetThumbnailInfoN();
595 if (pThumbnailInfo == null)
597 AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
602 bool isMatch = false;
603 ContentId contentId = pThumbnailInfo->GetContentId();
605 if (__pIconListViewCache != null)
607 IEnumerator* pEnum = __pIconListViewCache->GetEnumeratorN();
608 Bitmap* pBitmap = null;
609 while (pEnum->MoveNext() == E_SUCCESS)
611 ThumbnailInfo* pTempThumbnailInfo = static_cast<ThumbnailInfo*>(pEnum->GetCurrent());
613 if (contentId == pTempThumbnailInfo->GetContentId())
615 AppLogDebug("[CHASEFIRE] PM receive (%ls)", pThumbnailInfo->GetFilePath().GetPointer());
616 pBitmap = pThumbnailInfo->GetBitmapN();
617 pTempThumbnailInfo->SetBitmap(*pBitmap);
620 pTempThumbnailInfo->SetContentType(pThumbnailInfo->GetContentType());
621 pTempThumbnailInfo->SetDuration(pThumbnailInfo->GetDuration());
622 delete pThumbnailInfo;
630 if (isMatch == false)
632 if (SIZE_ICON_LIST_CACHE <= __pIconListViewCache->GetCount())
634 __pIconListViewCache->RemoveAt(0, true);
636 AppLogDebug("[CHASEFIRE] (all:%d) Add Thumbail(%ls)", __pIconListViewCache->GetCount(),
637 pThumbnailInfo->GetFilePath().GetPointer());
638 __pIconListViewCache->Add(pThumbnailInfo);
643 int loopCount = __pContentInfoList->GetCount();
644 for (int i = 0; i < loopCount; ++i)
646 if (contentId == (static_cast<ContentInfo*>(__pContentInfoList->GetAt(i)))->GetContentId())
653 IAlbumEventListener* pInterface = null;
654 IEnumerator* pEventEnum = __pPresentationModelListener->GetEnumeratorN();
655 while (pEventEnum->MoveNext() == E_SUCCESS)
657 pInterface = static_cast<IAlbumEventListener*>(pEventEnum->GetCurrent());
658 pInterface->OnThumbnailDecoded(index);
662 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
666 FileListPresentationModel::OnContentCreated(void)
668 AppLogDebug("ENTER");
669 if (__updateProgressStatus == true)
671 AppLogDebug("EXIT update in application");
674 IFormContentUpdateEventListener* pInterface = null;
675 if (__pContentEventListener == null)
680 IEnumerator* pEventEnum = __pContentEventListener->GetEnumeratorN();
681 while (pEventEnum->MoveNext() == E_SUCCESS)
683 pInterface = static_cast<IFormContentUpdateEventListener*>(pEventEnum->GetCurrent());
684 if (pInterface != null)
686 pInterface->OnContentUpdated();
694 FileListPresentationModel::OnContentUpdated(const ContentId& contentId)
696 AppLogDebug("ENTER");
697 RequestThumbnail(contentId);
702 FileListPresentationModel::OnContentUpdated(void)
704 AppLogDebug("ENTER");
705 if (__updateProgressStatus == true)
707 AppLogDebug("EXIT update in application");
710 //Clear the ImageCaches when content is updated like rotate.
711 if (__pContentEventListener->GetCount())
716 IFormContentUpdateEventListener* pInterface = null;
717 if (__pContentEventListener == null)
722 IEnumerator* pEventEnum = __pContentEventListener->GetEnumeratorN();
723 while (pEventEnum->MoveNext() == E_SUCCESS)
725 pInterface = static_cast<IFormContentUpdateEventListener*>(pEventEnum->GetCurrent());
726 pInterface->OnContentUpdated();
733 FileListPresentationModel::OnContentDeleted(void)
735 AppLogDebug("ENTER");
736 if (__updateProgressStatus == true)
738 AppLogDebug("EXIT update in application");
741 IFormContentUpdateEventListener* pInterface = null;
742 if (__pContentEventListener == null)
747 IEnumerator* pEventEnum = __pContentEventListener->GetEnumeratorN();
748 while (pEventEnum->MoveNext() == E_SUCCESS)
750 ClearThumbnailRequests();
751 pInterface = static_cast<IFormContentUpdateEventListener*>(pEventEnum->GetCurrent());
752 pInterface->OnContentUpdated();
759 FileListPresentationModel::AddPresentationModelListener(const IAlbumEventListener* listener)
761 AppLogDebug("ENTER");
762 __pPresentationModelListener->Add((Object*)listener);
763 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
767 FileListPresentationModel::RemovePresentationModelListener(const IAlbumEventListener& listener)
769 AppLogDebug("ENTER");
770 __pPresentationModelListener->Remove(listener);
771 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
775 FileListPresentationModel::AddContentEventListener(const IFormContentUpdateEventListener* listener)
777 AppLogDebug("ENTER");
778 if (__pContentEventListener != null)
780 __pContentEventListener->RemoveAll();
781 __pContentEventListener->Add((Object*)listener);
782 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
787 FileListPresentationModel::RemoveContentEventListener(const IFormContentUpdateEventListener* listener)
789 AppLogDebug("ENTER");
790 __pContentEventListener->Remove(*listener);
791 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
795 FileListPresentationModel::GetThumbnailInfoFromInternalBufferN(const ContentId& contentId) const
797 AppLogDebug("ENTER");
798 ThumbnailInfo* pThumbnailInfo = null;
799 ThumbnailInfo* pTempThumbnailInfo = null;
800 if (__pIconListViewCache != null)
802 int loopCount = __pIconListViewCache->GetCount();
803 for (int i = 0; i < loopCount; ++i)
805 pTempThumbnailInfo = static_cast<ThumbnailInfo*>(__pIconListViewCache->GetAt(i));
806 if (contentId == pTempThumbnailInfo->GetContentId())
809 pThumbnailInfo = new (std::nothrow) ThumbnailInfo();
810 Bitmap* pBitmap = pTempThumbnailInfo->GetBitmapN();
811 pThumbnailInfo->Construct(pTempThumbnailInfo->GetContentId(), pTempThumbnailInfo->GetFilePath(),
812 *pBitmap, pTempThumbnailInfo->GetContentType(), pTempThumbnailInfo->GetDuration());
818 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
820 return pThumbnailInfo;
824 FileListPresentationModel::ShowAnimation(void)
826 IFormContentUpdateEventListener* pInterface = null;
827 IEnumerator* pEventEnum = __pContentEventListener->GetEnumeratorN();
828 while (pEventEnum->MoveNext() == E_SUCCESS)
830 pInterface = static_cast<IFormContentUpdateEventListener*>(pEventEnum->GetCurrent());
831 pInterface->ShowAnimation();
837 FileListPresentationModel::StopAnimation(void)
839 IFormContentUpdateEventListener* pInterface = null;
840 IEnumerator* pEventEnum = __pContentEventListener->GetEnumeratorN();
841 while (pEventEnum->MoveNext() == E_SUCCESS)
843 pInterface = static_cast<IFormContentUpdateEventListener*>(pEventEnum->GetCurrent());
844 pInterface->StopAnimation();
849 FileListPresentationModel::DeleteContentFileList(const IList& contentIndexList)
851 AppLogDebug("ENTER");
852 if (&contentIndexList == null || contentIndexList.GetCount() <= 0)
854 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
859 IList * pContentIdList = new (std::nothrow) ArrayList(SingleObjectDeleter);
860 int loopCount = contentIndexList.GetCount();
861 for (int i = 0; i < loopCount; ++i)
863 const Integer* pIndex = static_cast<const Integer*>(contentIndexList.GetAt(i));
865 if ((pIndex != null) && (pIndex->ToInt())>=0 && __pContentInfoList->GetCount() > pIndex->ToInt())
867 pContentIdList->Add(new (std::nothrow) ContentId((static_cast<ContentInfo*>
868 (__pContentInfoList->GetAt(pIndex->ToInt())))->GetContentId()));
872 loopCount = pContentIdList->GetCount();
873 for (int i = 0; i < loopCount; ++i)
875 ContentId* pContentId = static_cast<ContentId*>(pContentIdList->GetAt(i));
876 if (pContentId != null)
878 ContentInfo* cntInfo = __pContentManager->GetContentInfoN(*pContentId);
881 String filePath = cntInfo->GetContentPath();
883 DeleteContentFile(filePath);
887 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
893 FileListPresentationModel::GetCollisionIndexListN(const IList& contentIndexList, const String& destDirectory)
895 AppLogDebug("ENTER");
896 if (&contentIndexList == null || contentIndexList.GetCount() <= 0 || &destDirectory == null
897 || destDirectory.IsEmpty() == true)
899 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
904 if (File::IsFileExist(destDirectory) == false)
906 AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
911 IList * pCollisionInfoList = new (std::nothrow) ArrayList(SingleObjectDeleter);
912 ContentInfo* pContentInfo = null;
913 int loopCount = contentIndexList.GetCount();
914 for (int i = 0; i < loopCount; ++i)
916 const Integer* pIndex = static_cast<const Integer*>(contentIndexList.GetAt(i));
918 if ((pIndex != null) && (pIndex->ToInt()) >= 0 && __pContentInfoList->GetCount() > pIndex->ToInt())
920 pContentInfo = const_cast<ContentInfo*>(static_cast<const ContentInfo*>(__pContentInfoList->GetAt(pIndex->ToInt())));
921 String filePath = pContentInfo->GetContentPath();
922 String fileName = GetFileNameFromFullPath(filePath, true);
925 if (destDirectory.EndsWith(DIRECTORY_SEPARATOR) == true)
927 destPath.Append(destDirectory);
928 destPath.Append(fileName);
932 destPath.Append(destDirectory);
933 destPath.Append(DIRECTORY_SEPARATOR);
934 destPath.Append(fileName);
937 if (File::IsFileExist(destPath) == true)
939 pCollisionInfoList->Add(*(new (std::nothrow) String(pIndex->ToString() + MULTI_ITEM_SEPARATOR + fileName)));
943 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
945 return pCollisionInfoList;
949 FileListPresentationModel::MoveToContentFileList(const IList& contentIndexList, const String& destDirectory)
951 AppLogDebug("ENTER");
952 result r = E_SUCCESS;
953 if (&contentIndexList == null || contentIndexList.GetCount() <= 0 || &destDirectory == null || destDirectory.IsEmpty() == true)
955 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
960 if (File::IsFileExist(destDirectory) == false)
962 Directory::Create(destDirectory, true);
965 delete __pContentIdList;
966 __pContentIdList = new (std::nothrow) ArrayList(SingleObjectDeleter);
967 int loopCount = contentIndexList.GetCount();
968 for (int i = 0; i < loopCount; ++i)
970 const Integer* pIndex = static_cast<const Integer*>(contentIndexList.GetAt(i));
972 if ((pIndex != null) && (pIndex->ToInt())>=0 && __pContentInfoList->GetCount() > pIndex->ToInt())
974 __pContentIdList->Add(new (std::nothrow) ContentId((static_cast<ContentInfo*>(__pContentInfoList->GetAt(pIndex->ToInt())))->GetContentId()));
979 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
985 FileListPresentationModel::DeleteContentFile(const String& filePath)
987 AppLogDebug("ENTER");
988 result r = E_SUCCESS;
989 r = File::Remove(filePath);
990 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
996 FileListPresentationModel::MoveToContentFile(const String& filePath, const String& destDirectory, const bool isCopyOperation)
998 AppLogDebug("ENTER");
999 if (destDirectory.IsEmpty() == true)
1001 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
1004 result r = E_SUCCESS;
1006 if (filePath.GetLength() < 4)
1008 AppLogDebug("EXIT 3(%s)", GetErrorMessage(GetLastResult()));
1013 if (destDirectory.EndsWith(DIRECTORY_SEPARATOR) == true)
1015 destPath.Append(destDirectory);
1016 destPath.Append(GetFileNameFromFullPath(filePath, true));
1020 destPath.Append(destDirectory);
1021 destPath.Append(DIRECTORY_SEPARATOR);
1022 destPath.Append(GetFileNameFromFullPath(filePath, true));
1025 if (destPath.CompareTo(filePath) == 0)
1027 AppLogDebug("EXIT 4(%s)", GetErrorMessage(GetLastResult()));
1031 if (File::IsFileExist(destPath) == true)
1033 File::Remove(destPath);
1036 r = File::Copy(filePath, destPath, false);
1038 if (r == E_STORAGE_FULL)
1040 File::Remove(destPath);
1045 if (isCopyOperation == false)
1047 File::Remove(filePath); // if Move Op remove original file
1050 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
1056 FileListPresentationModel::ClearProviderId(void)
1058 __providerId.Clear();
1062 FileListPresentationModel::StartAppControl(const String& providerId, const String& operationId,
1063 const String* pUriData, const Tizen::Base::String* pMimeType, const HashMap* pDataList,
1064 IAppControlResponseListener* pListener)
1066 AppLogDebug("ENTER");
1067 AppControl* pAc = AppManager::FindAppControlN(providerId, operationId);
1070 __providerId.Append(providerId);
1074 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
1077 result r = pAc->Start(pUriData, pMimeType, pDataList, pListener);
1081 GalleryApp* pGalleryApp = static_cast<GalleryApp*>(GalleryApp::GetInstance());
1082 pGalleryApp->SetFrameEnabled(false);
1087 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
1093 FileListPresentationModel::SetCurrentAlbumInfo(const String& albumName, const IList& directoryList)
1095 AppLogDebug("ENTER");
1097 if (&directoryList != null)
1099 if (__pDirectoryList != null && __pDirectoryList->GetCount() > 0)
1101 bool isMatched = false;
1102 int outterLoopCount = __pDirectoryList->GetCount();
1103 int innerLoopCount = 0;
1104 for (int i = 0; i < outterLoopCount; ++i)
1107 innerLoopCount = directoryList.GetCount();
1108 for (int j = 0; j < innerLoopCount; ++j)
1110 if (static_cast<String*>(__pDirectoryList->GetAt(i))->CompareTo(
1111 *(const_cast<String*>(static_cast<const String*>(directoryList.GetAt(j))))) == 0)
1119 outterLoopCount = directoryList.GetCount();
1120 for (int i = 0; i < outterLoopCount; ++i)
1123 innerLoopCount = __pDirectoryList->GetCount();
1124 for (int j = 0; j < innerLoopCount; ++j)
1126 if (const_cast<String*>(static_cast<const String*>(directoryList.GetAt(i)))->CompareTo(
1127 *(static_cast<String*>(__pDirectoryList->GetAt(j)))) == 0)
1137 __albumName = albumName;
1138 __providerId.Clear();
1140 if (__pDirectoryList != null)
1142 delete __pDirectoryList;
1144 __pDirectoryList = new (std::nothrow) ArrayList(SingleObjectDeleter);
1146 int loopCount = directoryList.GetCount();
1147 for (int i = 0; i < loopCount; ++i)
1149 __pDirectoryList->Add(new (std::nothrow) String(*(const_cast<String*>
1150 (static_cast<const String*>(directoryList.GetAt(i))))));
1153 if (__pContentInfoList != null)
1155 delete __pContentInfoList;
1156 __pContentInfoList = null;
1159 if (GetAppControlMode() == APPCONTROL_MODE_PICK)
1161 AppControlMediaType appControlMediaType = GetAppControlMediaType();
1162 if (appControlMediaType == APPCONTROL_MEDIA_TYPE_IMAGE)
1164 __albumContentType = CONTENT_TYPE_IMAGE;
1166 else if (appControlMediaType == APPCONTROL_MEDIA_TYPE_VIDEO)
1168 __albumContentType = CONTENT_TYPE_VIDEO;
1171 __pContentInfoList = GetContentInfoListInDirectoryListN(*__pDirectoryList, __albumContentType);
1172 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
1178 FileListPresentationModel::RefreshCurrentAlbumContentInfoList(const ContentType contentType)
1180 AppLogDebug("ENTER");
1181 result r = RefreshContentInfoList(contentType);
1182 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
1188 FileListPresentationModel::AddDirectoryIfNew(const String& dirName)
1191 bool isMatched = false;
1192 int dirCount = __pDirectoryList->GetCount();
1194 fullDirName = Environment::GetMediaPath();
1195 fullDirName.Append(dirName);
1197 if (__albumName != ALL_ALBUMS_REAL_NAME) //we are not in All albums
1202 for (int i = 0; i < dirCount; ++i)
1204 if (static_cast<String*>(__pDirectoryList->GetAt(i))->CompareTo(fullDirName) == 0)
1213 __pDirectoryList->Add(new (std::nothrow) String(fullDirName));
1218 FileListPresentationModel::RefreshContentInfoList(const ContentType contentType)
1220 AppLogDebug("ENTER");
1221 if ((contentType != CONTENT_TYPE_ALL) && (contentType != CONTENT_TYPE_IMAGE) && (contentType != CONTENT_TYPE_VIDEO))
1223 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
1228 if ((__pDirectoryList == null) || (__pDirectoryList->GetCount() <= 0))
1230 AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
1235 __albumContentType = contentType;
1237 if (__pContentInfoList != null)
1239 delete __pContentInfoList;
1240 __pContentInfoList = null;
1243 __pContentInfoList = GetContentInfoListInDirectoryListN(*__pDirectoryList, __albumContentType);
1244 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
1250 FileListPresentationModel::GetCurrentAlbumName(void) const
1252 AppLogDebug("ENTER");
1253 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
1259 FileListPresentationModel::SetCurrentAlbumName(const String& albumName)
1261 AppLogDebug("ENTER");
1262 if (&albumName == null)
1264 __albumName = EMPTY_SPACE;
1268 __albumName = albumName;
1270 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
1274 FileListPresentationModel::GetCurrentAlbumContentType(void) const
1276 AppLogDebug("ENTER");
1277 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
1279 return __albumContentType;
1283 FileListPresentationModel::SetCurrentAlbumContentType(const ContentType contentType)
1285 AppLogDebug("ENTER");
1286 __albumContentType = contentType;
1287 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
1291 FileListPresentationModel::GetAlbumDirectoryListN(void) const
1293 AppLogDebug("ENTER");
1294 IList* pAlbumDirectoryList = new (std::nothrow) ArrayList(SingleObjectDeleter);
1295 if (__pDirectoryList == null)
1297 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
1299 return pAlbumDirectoryList;
1302 String* pDirectory = null;
1303 int loopCount = __pDirectoryList->GetCount();
1304 for (int i = 0; i < loopCount; ++i)
1306 pDirectory = static_cast<String*>(__pDirectoryList->GetAt(i));
1307 pAlbumDirectoryList->Add(new (std::nothrow) String(*pDirectory));
1309 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
1311 return pAlbumDirectoryList;
1315 FileListPresentationModel::GetAlbumContentInfoList(void) const
1317 AppLogDebug("ENTER");
1318 IList* pContentList = new (std::nothrow) ArrayList(SingleObjectDeleter);
1319 if (__pContentInfoList == null)
1321 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
1323 return pContentList;
1326 ContentInfo* pContentInfo = null;
1327 int loopCount = __pContentInfoList->GetCount();
1328 for (int i = 0; i < loopCount; ++i)
1330 pContentInfo = static_cast<ContentInfo*>(__pContentInfoList->GetAt(i));
1331 pContentList->Add(pContentInfo);
1333 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
1335 return pContentList;
1339 FileListPresentationModel::GetContentInfo(const int index) const
1341 AppLogDebug("ENTER");
1342 if (__pContentInfoList == null || __pContentInfoList->GetCount() == 0)
1344 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
1349 if (index < 0 || index >= __pContentInfoList->GetCount())
1351 AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
1355 ContentInfo* pContentInfo = static_cast<ContentInfo*>(__pContentInfoList->GetAt(index));
1356 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
1358 return pContentInfo;
1361 IList* FileListPresentationModel::GetContentIdListAtIndexN(const IList& indexList) const
1363 AppLogDebug("ENTER");
1364 IList* pContentIdList = new (std::nothrow) ArrayList(SingleObjectDeleter);
1365 int loopCount = indexList.GetCount();
1366 for (int i = 0; i < loopCount; ++i)
1368 const Integer* pIndex = static_cast<const Integer*>(indexList.GetAt(i));
1370 if ((pIndex != null) && (pIndex->ToInt())>=0 && __pContentInfoList->GetCount() > pIndex->ToInt())
1372 ContentInfo* pContentInfo = const_cast<ContentInfo*>(static_cast<const ContentInfo*>(__pContentInfoList->GetAt(pIndex->ToInt())));
1373 pContentIdList->Add(new (std::nothrow) ContentId(pContentInfo->GetContentId()));
1376 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
1377 return pContentIdList;
1381 FileListPresentationModel::GetCurrentAlbumContentInfoCount(void) const
1383 AppLogDebug("ENTER");
1384 if (__pContentInfoList == null)
1386 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
1390 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
1392 return __pContentInfoList->GetCount();
1396 FileListPresentationModel::GetContentInfoIndex(const int index) const
1398 AppLogDebug("ENTER");
1399 if (__pContentInfoList == null || __pContentInfoList->GetCount() == 0)
1401 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
1406 if (index < 0 || index >= __pContentInfoList->GetCount())
1408 AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
1412 ContentInfo* pContentInfo = static_cast<ContentInfo*>(__pContentInfoList->GetAt(index));
1413 ContentId contentId = pContentInfo->GetContentId();
1414 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
1420 FileListPresentationModel::GetContentFilePath(const int index) const
1422 AppLogDebug("ENTER index(%d)", index);
1423 if (__pContentInfoList == null || __pContentInfoList->GetCount() == 0)
1425 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
1430 if (index < 0 || index >= __pContentInfoList->GetCount())
1432 AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
1437 ContentInfo* pContentInfo = static_cast<ContentInfo*>(__pContentInfoList->GetAt(index));
1438 String contentPath = pContentInfo->GetContentPath();
1439 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
1445 FileListPresentationModel::CoverVideoOverlayedImageOnThumbnailN(Bitmap& thumbnail,
1446 const ThumbnailInfo& thumbmailInfo)
1448 AppLogDebug("ENTER");
1449 Bitmap* pOverlayedImage = null;
1451 if (&thumbmailInfo != null)
1453 long duration = thumbmailInfo.GetDuration();
1456 if (&thumbnail != null)
1458 BufferInfo bufferInfo;
1459 thumbnail.Lock(bufferInfo, INFINITE);
1461 mainCanvas.Construct(bufferInfo);
1465 Rectangle mainRect(0, 0, W_DEFAULT_THUMBNAIL, H_DEFAULT_THUMBNAIL);
1466 mainCanvas.Construct(mainRect);
1467 mainCanvas.FillRectangle(Color::GetColor(COLOR_ID_BLACK), mainRect);
1470 Rectangle playRect(GAP_W_PLAY_FG, GAP_H_PLAY_FG, W_PLAY_FG, H_PLAY_FG);
1471 Bitmap* playBitmap = ResourceManager::GetBitmapN(IDB_VIDEOTHUMBNAIL_PLAY);
1472 if (playBitmap != null)
1474 mainCanvas.DrawBitmap(playRect, *playBitmap);
1479 Rectangle durSize(0, 0, W_DURATION, H_DURATION);
1480 Rectangle durRect(0, GAP_H_DURATION, W_DURATION, H_DURATION);
1481 Color durColor(COLOR_DURATION_BG);
1482 durColor.SetAlpha(ALPHA_DURATION);
1483 durCanvas.Construct(durSize);
1484 durCanvas.FillRectangle(durColor, durSize);
1486 durFont.Construct(FONT_STYLE_PLAIN, FONT_SIZE_DURATION);
1487 durCanvas.SetFont(durFont);
1488 durCanvas.DrawText(Point(W_DURATION_TEXT, H_DURATION_TEXT),
1489 CommonUtil::DurationToTimeString(duration), COLOR_TEXT_OUTLINE);
1491 durBitmap.Construct(durCanvas, durCanvas.GetBounds());
1492 mainCanvas.DrawBitmap(durRect, durBitmap);
1494 pOverlayedImage = new (std::nothrow) Bitmap();
1495 pOverlayedImage->Construct(mainCanvas, mainCanvas.GetBounds());
1497 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
1499 return pOverlayedImage;
1503 FileListPresentationModel::GetShadedBackgroundBitmapN(Bitmap& bgBitmap,
1504 const Bitmap& originalBitmap, const Rectangle& originalBitmapPosition) const
1506 AppLogDebug("ENTER");
1507 if (&originalBitmap == null || &originalBitmap == null)
1509 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
1514 BufferInfo bufferInfo;
1515 bgBitmap.Lock(bufferInfo, INFINITE);
1518 mainCanvas.Construct(bufferInfo);
1520 mainCanvas.DrawBitmap(originalBitmapPosition, originalBitmap);
1522 Bitmap* pMainImage = new (std::nothrow) Bitmap();
1523 pMainImage->Construct(mainCanvas,mainCanvas.GetBounds());
1524 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
1530 FileListPresentationModel::GetContentInfoListInDirectoryListN(const IList& contentDirectoryList,
1531 ContentType contentType)const
1533 AppLogDebug("ENTER");
1534 IList* pContentList = new (std::nothrow) ArrayList(SingleObjectDeleter);
1536 if ((&contentDirectoryList == null) || (contentDirectoryList.GetCount() == 0)
1537 || ((contentType != CONTENT_TYPE_IMAGE) && (contentType != CONTENT_TYPE_VIDEO) && (contentType != CONTENT_TYPE_ALL)))
1539 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
1540 return pContentList;
1543 ContentDirectory contentDirectory;
1544 IListT<ContentType>* pContentTypeList = new (std::nothrow) ArrayListT<ContentType>();
1545 if (contentType == CONTENT_TYPE_IMAGE || contentType == CONTENT_TYPE_ALL)
1547 pContentTypeList->Add(CONTENT_TYPE_IMAGE);
1549 if (contentType == CONTENT_TYPE_VIDEO || contentType == CONTENT_TYPE_ALL)
1551 pContentTypeList->Add(CONTENT_TYPE_VIDEO);
1553 result r = contentDirectory.Construct(*pContentTypeList);
1554 delete pContentTypeList;
1558 int pageNo = SIZE_PAGE_NO;
1559 int countPerPage = SIZE_CONUNT_PER_PAGE;
1560 String* pContentDirectory = null;
1562 int loopCount = contentDirectoryList.GetCount();
1563 for (int i = 0; i < loopCount; ++i)
1565 IList* pIList = null;
1566 pContentDirectory = const_cast<String*>(static_cast<const String*>(contentDirectoryList.GetAt(i)));
1567 if (pContentDirectory != null)
1569 pIList = contentDirectory.GetContentDirectoryItemListN(*pContentDirectory, pageNo, countPerPage,
1570 CONTENT_INFO_ORDER, SORT_ORDER_NONE);
1574 pContentList->AddItems(*pIList);
1579 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
1581 return pContentList;
1585 FileListPresentationModel::ConvertToAlbumName(const String& targetPath)const
1587 AppLogDebug("ENTER");
1589 if (&targetPath == null || targetPath.GetLength() == 0)
1594 if (targetPath == RESERVED_CAMERA_PATH || targetPath == RESERVED_CAMERA_PATH_EXT)
1596 albumName = ResourceManager::GetString(L"IDS_MEDIABR_BODY_CAMERA_ROLL_ABB");
1598 else if (targetPath == RESERVED_DOWNLOAD_PATH)
1600 albumName = ResourceManager::GetString(L"IDS_COM_BODY_DOWNLOADS");
1604 String directoryName = GetDirecotyNameFromFullPath(targetPath);
1605 albumName = directoryName;
1612 FileListPresentationModel::GetAppControlMode(void) const
1614 AppLogDebug("Enter");
1615 AppLogDebug("Exit");
1617 return __appControlMode;
1621 FileListPresentationModel::GetAppControlMediaType(void) const
1623 AppLogDebug("Enter");
1624 AppLogDebug("Exit");
1626 return __appControlMediaType;
1629 AppControlSelectionMode
1630 FileListPresentationModel::GetAppControlSelectionMode(void) const
1632 AppLogDebug("Enter");
1633 AppLogDebug("Exit");
1635 return __appControlSelectionMode;
1639 FileListPresentationModel::SetUpdateProgressStatus(const bool status)
1641 AppLogDebug("ENTER status = %d",status);
1642 __updateProgressStatus = status;
1643 AppLogDebug("EXIT");
1647 FileListPresentationModel::RotateImage(const Tizen::Content::ContentId& contentId, RotateMode rotateMode)
1649 result r = E_SUCCESS;
1650 ImageBuffer rotateBuffer;
1651 ImageBuffer* pRotatedBuffer = null;
1652 ImageFormat imageFormat;
1654 ContentInfo* cntInfo = __pContentManager->GetContentInfoN(contentId);
1659 String filePath = cntInfo->GetContentPath();
1662 ContentType contentType = ContentManagerUtil::CheckContentType(filePath);
1663 if (contentType == CONTENT_TYPE_VIDEO)
1668 r = img.Construct();
1672 imageFormat = img.GetImageFormat(filePath);
1674 r = rotateBuffer.Construct(filePath);
1677 if (rotateMode == ROTATE_MODE_RIGHT)
1679 pRotatedBuffer = rotateBuffer.RotateN(IMAGE_ROTATION_90);
1683 pRotatedBuffer = rotateBuffer.RotateN(IMAGE_ROTATION_270);
1687 if (pRotatedBuffer != null)
1689 r = pRotatedBuffer->EncodeToFile(filePath, imageFormat, true, 100);
1690 delete pRotatedBuffer;
1691 ContentManager::ScanFile(filePath);
1699 FileListPresentationModel::ClearImageCache(void)
1701 AppLogDebug("ENTER");
1703 if(__pIconListViewCache != null)
1705 bool clearThumbnailReq = true;
1706 while(__pIconListViewCache->GetCount() != 0)
1708 //This is to Clear the Thumbnail Reuqests only Once
1709 if(clearThumbnailReq == true)
1711 ClearThumbnailRequests();
1712 clearThumbnailReq = false;
1714 __pIconListViewCache->RemoveAt(0, true);
1717 AppLogDebug("EXIT");
1721 FileListPresentationModel::OnDeviceStateChanged(DeviceType deviceType, const Tizen::Base::String& state)
1723 AppLogDebug("ENTER");
1724 if (deviceType == DEVICE_TYPE_STORAGE_CARD && state == DEVICE_STORAGE_CARD_UNMOUNTED)
1726 IFormContentUpdateEventListener* pInterface = null;
1727 IEnumerator* pEventEnum = __pContentEventListener->GetEnumeratorN();
1728 while (pEventEnum->MoveNext() == E_SUCCESS)
1730 pInterface = static_cast<IFormContentUpdateEventListener*>(pEventEnum->GetCurrent());
1731 pInterface->OnContentUpdated();
1735 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));