//
// Copyright (c) 2012 Samsung Electronics Co., Ltd.
//
-// Licensed under the Flora License, Version 1.0 (the License);
+// Licensed under the Flora License, Version 1.1 (the License);
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
IList* FileListPresentationModel::__pContentInfoList = null;
FileListPresentationModel::FileListPresentationModel(void)
- : __albumContentType(CONTENT_TYPE_ALL)
- , __appControlMode(APP_CONTROL_MODE_MAIN)
+ : __pContentManager(null)
+ , __albumContentType(CONTENT_TYPE_ALL)
+ , __appControlMode(APPCONTROL_MODE_MAIN)
, __appControlMediaType(APPCONTROL_MEDIA_TYPE_IMAGE)
, __appControlSelectionMode(APPCONTROL_SELECTION_MODE_SINGLE)
+ , __pContentIdList(null)
, __updateProgressStatus(false)
{
AppLogDebug("ENTER");
FileListPresentationModel::~FileListPresentationModel(void)
{
AppLogDebug("ENTER");
+ DeviceManager::RemoveDeviceEventListener(DEVICE_TYPE_STORAGE_CARD, *this);
AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
}
__pThumbnailEvent = new (std::nothrow) ThumbnailEvent();
__pThumbnailEvent->AddListener(*pThumbnailEventListener, true);
+ DeviceManager::AddDeviceEventListener(DEVICE_TYPE_STORAGE_CARD, *this);
+
ContentUpdateEventListener::GetInstance();
__pContentManager = new (std::nothrow) ContentManager();
__pContentManager->Construct();
if (operationId.CompareTo(APPCONTROL_OPERATION_ID_MAIN) == 0)
{
- __appControlMode = APP_CONTROL_MODE_MAIN;
+ __appControlMode = APPCONTROL_MODE_MAIN;
}
else if (operationId.CompareTo(APPCONTROL_OPERATION_ID_PICK) == 0)
{
- __appControlMode = APP_CONTROL_MODE_PICK;
+ __appControlMode = APPCONTROL_MODE_PICK;
+ String mimeType = pApp->GetMimeType();
+ if (mimeType.IsEmpty() != true)
+ {
+ if (mimeType.StartsWith(APPCONTROL_DATA_VIDEO, 0) == true)
+ {
+ __appControlMediaType = APPCONTROL_MEDIA_TYPE_VIDEO;
+ }
+ }
if (pArguments != null)
{
const String* selectionMode = static_cast<const String*>(pArguments->GetValue(String(APPCONTROL_KEY_SELECTION_MODE)));
}
else if (operationId.CompareTo(APPCONTROL_OPERATION_ID_CONFIGURE) == 0)
{
- __appControlMode = APP_CONTROL_MODE_SETTING;
+ __appControlMode = APPCONTROL_MODE_SETTING;
}
AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
}
String
-FileListPresentationModel::GetFileNameFromFullPath(const String& fullPath, bool withExt) const
+FileListPresentationModel::GetFileNameFromFullPath(const String& fullPath, const bool withExt) const
{
AppLogDebug("ENTER");
if (fullPath.CompareTo(EMPTY_SPACE) == 0)
FileListPresentationModel::GetThumbnailInSyncCacheN(const int index, String*& pName, Bitmap*& pThumbnail)
{
AppLogDebug("ENTER : index(%d)", index);
- Bitmap* pOrgBitmap = null;
- Bitmap* pDstBitmap = null;
+ Bitmap* pOriginalBitmap = null;
+ Bitmap* pDestinationBitmap = null;
ContentInfo* pContentInfo = null;
if (__pContentInfoList != null && index < __pContentInfoList->GetCount())
if (pThumbnailInfo != null)
{
pName = new (std::nothrow) String(pThumbnailInfo->GetFilePath());
- pOrgBitmap = pThumbnailInfo->GetBitmapN();
+ pOriginalBitmap = pThumbnailInfo->GetBitmapN();
}
if ((pThumbnailInfo != null)&&(pThumbnailInfo->GetContentType() == CONTENT_TYPE_VIDEO))
{
- if (pOrgBitmap != null)
+ if (pOriginalBitmap != null)
{
- pDstBitmap = CoverVideoOverlayedImageOnThumbnailN(*pOrgBitmap, *pThumbnailInfo);
- delete pOrgBitmap;
+ pDestinationBitmap = CoverVideoOverlayedImageOnThumbnailN(*pOriginalBitmap, *pThumbnailInfo);
+ delete pOriginalBitmap;
}
}
else
{
- pDstBitmap = pOrgBitmap;
+ pDestinationBitmap = pOriginalBitmap;
}
- if (pDstBitmap != null)
+ if (pDestinationBitmap != null)
{
Bitmap* pThumbnailBgBitmap = ResourceManager::GetBitmapN(IDB_VIDEOTHUMBNAIL_BG);
Rectangle thumbnailRect(RECTANGLE_THUMBNAIL_OFFSET_POSION);
- pDstBitmap->Scale(Dimension(RECTANGLE_THUMBNAIL_OFFSET_POSION.width - RECTANGLE_THUMBNAIL_OFFSET_POSION.x
+ pDestinationBitmap->Scale(Dimension(RECTANGLE_THUMBNAIL_OFFSET_POSION.width - RECTANGLE_THUMBNAIL_OFFSET_POSION.x
, RECTANGLE_THUMBNAIL_OFFSET_POSION.height - RECTANGLE_THUMBNAIL_OFFSET_POSION.y));
if (pThumbnailBgBitmap != null)
{
pThumbnailBgBitmap->Scale(DIMENSION_REAL_ICON);
- pThumbnail = GetShadedBackgroundBitmapN(*pThumbnailBgBitmap, *pDstBitmap, thumbnailRect);
+ pThumbnail = GetShadedBackgroundBitmapN(*pThumbnailBgBitmap, *pDestinationBitmap, thumbnailRect);
delete pThumbnailBgBitmap;
- delete pDstBitmap;
+ delete pDestinationBitmap;
}
else
{
- pThumbnail = pDstBitmap;
+ pThumbnail = pDestinationBitmap;
}
}
else
}
result
-FileListPresentationModel::GetThumbnailVideoInSyncCacheN(const int index, String*& pName, Bitmap*& pThumbnail, String*& pDuration)
+FileListPresentationModel::GetThumbnailVideoInSyncCacheN(const int index,
+ String*& pName, Bitmap*& pThumbnail, String*& pDuration) const
{
AppLogDebug("ENTER : index(%d)", index);
ContentInfo* pContentInfo = null;
- Bitmap* pOrgBitmap = null;
+ Bitmap* pOriginalBitmap = null;
if (__pContentInfoList != null && index < __pContentInfoList->GetCount())
{
if (pThumbnailInfo != null)
{
pName = new (std::nothrow) String(pThumbnailInfo->GetFilePath());
- pOrgBitmap = pThumbnailInfo->GetBitmapN();
+ pOriginalBitmap = pThumbnailInfo->GetBitmapN();
pDuration = new (std::nothrow) String(CommonUtil::DurationToTimeString(pThumbnailInfo->GetDuration()));
}
else
pDuration = new (std::nothrow) String(CommonUtil::DurationToTimeString(0));
}
- if (pOrgBitmap != null)
+ if (pOriginalBitmap != null)
{
Bitmap* pThumbnailBgBitmap = ResourceManager::GetBitmapN(IDB_VIDEOTHUMBNAIL_BG);
Rectangle thumbnailRect(RECTANGLE_VIDEO_THUMBNAIL_OFFSET_POSION);
- pOrgBitmap->Scale(Dimension(RECTANGLE_VIDEO_THUMBNAIL_OFFSET_POSION.width - RECTANGLE_VIDEO_THUMBNAIL_OFFSET_POSION.x
+ pOriginalBitmap->Scale(Dimension(RECTANGLE_VIDEO_THUMBNAIL_OFFSET_POSION.width - RECTANGLE_VIDEO_THUMBNAIL_OFFSET_POSION.x
, RECTANGLE_VIDEO_THUMBNAIL_OFFSET_POSION.height - RECTANGLE_VIDEO_THUMBNAIL_OFFSET_POSION.y));
if (pThumbnailBgBitmap != null)
{
pThumbnailBgBitmap->Scale(Dimension(W_WIDE_THUMBNAIL, H_WIDE_THUMBNAIL));
- pThumbnail = GetShadedBackgroundBitmapN(*pThumbnailBgBitmap, *pOrgBitmap, thumbnailRect);
+ pThumbnail = GetShadedBackgroundBitmapN(*pThumbnailBgBitmap, *pOriginalBitmap, thumbnailRect);
delete pThumbnailBgBitmap;
}
- delete pOrgBitmap;
+ delete pOriginalBitmap;
}
else
{
}
void
-FileListPresentationModel::CancelThumbnailRequest(const int index)
-{
- AppLogDebug("ENTER : index(%d)", index);
- /*ContentInfo* pContentInfo = null;
-
- if (__pContentInfoList != null && index < __pContentInfoList->GetCount())
- {
- pContentInfo = static_cast<ContentInfo*>(__pContentInfoList->GetAt(index));
- if (pContentInfo == null)
- {
- AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
- return;
- }
- __pThumbnailProvider->CancelThumbnailRequest(pContentInfo->GetContentId(), __pThumbnailEvent);
- }*/
- AppLogDebug("EXIT");
-}
-
-void
-FileListPresentationModel::ClearThumbnailRequests(bool appTerminating)
+FileListPresentationModel::ClearThumbnailRequests(const bool appTerminating)
{
AppLogDebug("ENTER");
{
__pIconListViewCache->RemoveAt(0, true);
}
- AppLogDebug("[CHASEFIRE] (all:%d) Add Thumbail(%ls)",__pIconListViewCache->GetCount(),
+ AppLogDebug("[CHASEFIRE] (all:%d) Add Thumbail(%ls)", __pIconListViewCache->GetCount(),
pThumbnailInfo->GetFilePath().GetPointer());
__pIconListViewCache->Add(pThumbnailInfo);
}
}
void
-FileListPresentationModel::OnContentCreated()
+FileListPresentationModel::OnContentCreated(void)
{
AppLogDebug("ENTER");
if (__updateProgressStatus == true)
}
void
-FileListPresentationModel::OnContentUpdated()
+FileListPresentationModel::OnContentUpdated(void)
{
AppLogDebug("ENTER");
if (__updateProgressStatus == true)
AppLogDebug("EXIT update in application");
return;
}
+ //Clear the ImageCaches when content is updated like rotate.
+ ClearImageCache();
+
IFormContentUpdateEventListener* pInterface = null;
if (__pContentEventListener == null)
{
}
void
-FileListPresentationModel::OnContentDeleted()
+FileListPresentationModel::OnContentDeleted(void)
{
AppLogDebug("ENTER");
if (__updateProgressStatus == true)
if (__pIconListViewCache != null)
{
int loopCount = __pIconListViewCache->GetCount();
- for (int i = 0 ; i < loopCount; ++i)
+ for (int i = 0; i < loopCount; ++i)
{
pTempThumbnailInfo = static_cast<ThumbnailInfo*>(__pIconListViewCache->GetAt(i));
if (contentId == pTempThumbnailInfo->GetContentId())
pThumbnailInfo = new (std::nothrow) ThumbnailInfo();
Bitmap* pBitmap = pTempThumbnailInfo->GetBitmapN();
- pThumbnailInfo->Construct(pTempThumbnailInfo->GetContentId(),
- pTempThumbnailInfo->GetFilePath(), *pBitmap,
- pTempThumbnailInfo->GetContentType(), pTempThumbnailInfo->GetDuration());
+ pThumbnailInfo->Construct(pTempThumbnailInfo->GetContentId(), pTempThumbnailInfo->GetFilePath(),
+ *pBitmap, pTempThumbnailInfo->GetContentType(), pTempThumbnailInfo->GetDuration());
delete pBitmap;
break;
}
File::Remove(destPath);
}
- if (pContentInfo->GetContentType() == CONTENT_TYPE_IMAGE)
+ r = File::Copy(filePath, destPath, false);
+
+ if ( r == E_STORAGE_FULL)
{
- r = File::Copy(filePath, destPath, false);
- if (r == E_SUCCESS)
- {
- if (r == E_SUCCESS)
- {
- ImageContentInfo contentInfo;
- r = contentInfo.Construct(&destPath);
- if (r == E_SUCCESS)
- {
- __pContentManager->CreateContent(contentInfo);
- r = GetLastResult();
- TryCatch(!IsFailed(r),,"CreateContent::the value is %s",GetErrorMessage(r));
- if (!isCopyOperation)
- {
- r = __pContentManager->DeleteContent(contentId);
- TryCatch(!IsFailed(r),,"DeleteContent::the value is %s",GetErrorMessage(r));
- }
- }
- }
- }
+ File::Remove(destPath);
}
- else if (pContentInfo->GetContentType() == CONTENT_TYPE_VIDEO)
+ ContentManager::ScanFile(destPath);
+
+ if ( r == E_SUCCESS )
{
- r = File::Copy(filePath, destPath, false);
- if (r == E_SUCCESS)
+ if ( isCopyOperation == false)
{
- VideoContentInfo contentInfo;
- r = contentInfo.Construct(&destPath);
- {
- __pContentManager->CreateContent(contentInfo);
- r = GetLastResult();
- TryCatch(!IsFailed(r),,"CreateContent::the value is %s",GetErrorMessage(r));
- if (!isCopyOperation)
- {
- r = __pContentManager->DeleteContent(contentId);
- TryCatch(!IsFailed(r),,"DeleteContent::the value is %s",GetErrorMessage(r));
- }
- }
+ File::Remove(filePath); // if Move Op remove original file
+ ContentManager::ScanFile(filePath);
}
}
- CATCH:
+
delete pContentInfo;
AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
return r;
}
+void
+FileListPresentationModel::ClearProviderId(void)
+{
+ __providerId.Clear();
+}
+
result
FileListPresentationModel::StartAppControl(const String& providerId, const String& operationId,
const String* pUriData, const Tizen::Base::String* pMimeType, const HashMap* pDataList,
{
AppLogDebug("ENTER");
AppControl* pAc = AppManager::FindAppControlN(providerId, operationId);
+
+ AppLogDebug("rashmi b4(%ls)", __providerId.GetPointer());
+ ClearProviderId();
+ __providerId.Append(providerId);
+ AppLogDebug("rashmi after(%ls)", __providerId.GetPointer());
+
if (pAc == null)
{
AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
}
__albumName = albumName;
+ __providerId.Clear();
if (__pDirectoryList != null)
{
__pContentInfoList = null;
}
- if (GetAppControlMode() == APP_CONTROL_MODE_PICK)
+ if (GetAppControlMode() == APPCONTROL_MODE_PICK)
{
AppControlMediaType appControlMediaType = GetAppControlMediaType();
if (appControlMediaType == APPCONTROL_MEDIA_TYPE_IMAGE)
}
result
-FileListPresentationModel::RefreshCurrentAlbumContentInfoList(ContentType contentType)
+FileListPresentationModel::RefreshCurrentAlbumContentInfoList(const ContentType contentType)
{
AppLogDebug("ENTER");
result r = RefreshContentInfoList(contentType);
}
result
-FileListPresentationModel::RefreshContentInfoList(ContentType contentType)
+FileListPresentationModel::RefreshContentInfoList(const ContentType contentType)
{
AppLogDebug("ENTER");
if ((contentType != CONTENT_TYPE_ALL) && (contentType != CONTENT_TYPE_IMAGE) && (contentType != CONTENT_TYPE_VIDEO))
}
String
-FileListPresentationModel::GetCurrentAlbumName(void)
+FileListPresentationModel::GetCurrentAlbumName(void) const
{
AppLogDebug("ENTER");
AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
}
void
-FileListPresentationModel::SetCurrentAlbumName(String& albumName)
+FileListPresentationModel::SetCurrentAlbumName(const String& albumName)
{
AppLogDebug("ENTER");
if (&albumName == null)
}
ContentType
-FileListPresentationModel::GetCurrentAlbumContentType(void)
+FileListPresentationModel::GetCurrentAlbumContentType(void) const
{
AppLogDebug("ENTER");
AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
}
void
-FileListPresentationModel::SetCurrentAlbumContentType(ContentType contentType)
+FileListPresentationModel::SetCurrentAlbumContentType(const ContentType contentType)
{
AppLogDebug("ENTER");
__albumContentType = contentType;
}
IList*
-FileListPresentationModel::GetAlbumDirectoryListN(void)
+FileListPresentationModel::GetAlbumDirectoryListN(void) const
{
AppLogDebug("ENTER");
IList* pAlbumDirectoryList = new (std::nothrow) ArrayList(SingleObjectDeleter);
}
IList*
-FileListPresentationModel::GetAlbumContentInfoList(void)
+FileListPresentationModel::GetAlbumContentInfoList(void) const
{
AppLogDebug("ENTER");
IList* pContentList = new (std::nothrow) ArrayList(SingleObjectDeleter);
}
ContentInfo*
-FileListPresentationModel::GetContentInfo(int index)
+FileListPresentationModel::GetContentInfo(const int index) const
{
AppLogDebug("ENTER");
if (__pContentInfoList == null || __pContentInfoList->GetCount() == 0)
return pContentInfo;
}
-IList* FileListPresentationModel::GetContentIdListAtIndexN(const IList& indexList)
+IList* FileListPresentationModel::GetContentIdListAtIndexN(const IList& indexList) const
{
IList* pContentIdList = new (std::nothrow) ArrayList(SingleObjectDeleter);
int loopCount = indexList.GetCount();
}
int
-FileListPresentationModel::GetCurrentAlbumContentInfoCount(void)
+FileListPresentationModel::GetCurrentAlbumContentInfoCount(void) const
{
AppLogDebug("ENTER");
if (__pContentInfoList == null)
}
ContentId
-FileListPresentationModel::GetContentInfoIndex(int index)
+FileListPresentationModel::GetContentInfoIndex(const int index) const
{
AppLogDebug("ENTER");
if (__pContentInfoList == null || __pContentInfoList->GetCount() == 0)
}
String
-FileListPresentationModel::GetContentFilePath(int index)
+FileListPresentationModel::GetContentFilePath(const int index) const
{
AppLogDebug("ENTER index(%d)", index);
if (__pContentInfoList == null || __pContentInfoList->GetCount() == 0)
const ThumbnailInfo& thumbmailInfo)
{
AppLogDebug("ENTER");
- Bitmap* overlayedImage = null;
+ Bitmap* pOverlayedImage = null;
if (&thumbmailInfo != null)
{
Font durFont;
durFont.Construct(FONT_STYLE_PLAIN, FONT_SIZE_DURATION);
durCanvas.SetFont(durFont);
- durCanvas.DrawText(Point(W_DURATION_TEXT, H_DURATION_TEXT), CommonUtil::DurationToTimeString(duration), COLOR_TEXT_OUTLINE);
+ durCanvas.DrawText(Point(W_DURATION_TEXT, H_DURATION_TEXT),
+ CommonUtil::DurationToTimeString(duration), COLOR_TEXT_OUTLINE);
Bitmap durBitmap;
- durBitmap.Construct(durCanvas,durCanvas.GetBounds());
- mainCanvas.DrawBitmap(durRect,durBitmap);
+ durBitmap.Construct(durCanvas, durCanvas.GetBounds());
+ mainCanvas.DrawBitmap(durRect, durBitmap);
- overlayedImage = new (std::nothrow) Bitmap();
- overlayedImage->Construct(mainCanvas,mainCanvas.GetBounds());
+ pOverlayedImage = new (std::nothrow) Bitmap();
+ pOverlayedImage->Construct(mainCanvas, mainCanvas.GetBounds());
}
AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
- return overlayedImage;
+ return pOverlayedImage;
}
Bitmap*
FileListPresentationModel::GetShadedBackgroundBitmapN(Bitmap& bgBitmap,
- const Bitmap& orgBitmap,
- const Rectangle& orgBitmapPosition)
+ const Bitmap& originalBitmap, const Rectangle& originalBitmapPosition) const
{
AppLogDebug("ENTER");
- if (&orgBitmap == null || &orgBitmap == null)
+ if (&originalBitmap == null || &originalBitmap == null)
{
AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
Canvas mainCanvas;
mainCanvas.Construct(bufferInfo);
mainCanvas.Clear();
- mainCanvas.DrawBitmap(orgBitmapPosition, orgBitmap);
+ mainCanvas.DrawBitmap(originalBitmapPosition, originalBitmap);
Bitmap* pMainImage = new (std::nothrow) Bitmap();
pMainImage->Construct(mainCanvas,mainCanvas.GetBounds());
}
void
-FileListPresentationModel::SetUpdateProgressStatus(bool status)
+FileListPresentationModel::SetUpdateProgressStatus(const bool status)
{
AppLogDebug("ENTER status = %d",status);
__updateProgressStatus = status;
ImageFormat imageFormat;
Image img;
String filePath = GetContentFilePath(index);
- r = img.Construct();
+ ContentType contentType = ContentManagerUtil::CheckContentType(filePath);
+ if (contentType == CONTENT_TYPE_VIDEO)
+ {
+ return r;
+ }
+ r = img.Construct();
if (r == E_SUCCESS)
{
{
r = pRotatedBuffer->EncodeToFile(filePath, imageFormat, true, 100);
delete pRotatedBuffer;
+ ContentManager::ScanFile(filePath);
}
-
- ContentManager::ScanFile(filePath);
return r;
}
+
+void
+FileListPresentationModel::ClearImageCache(void)
+{
+ AppLogDebug("FileListPresentationModel::ClearImageCache ++");
+
+ if(__pIconListViewCache != null)
+ {
+ AppLogDebug("rashmi __providerId(%ls)", __providerId.GetPointer());
+ bool clearThumbnailReq = true;
+ while(__pIconListViewCache->GetCount() != 0)
+ {
+ //This is to Clear the Thumbnail Reuqests only Once
+ if(clearThumbnailReq == true)
+ {
+ ClearThumbnailRequests();
+ clearThumbnailReq = false;
+ }
+ __pIconListViewCache->RemoveAt(0, true);
+ }
+ }
+ AppLogDebug("FileListPresentationModel::ClearImageCache --");
+}
+
+void
+FileListPresentationModel::OnDeviceStateChanged(DeviceType deviceType, const Tizen::Base::String& state)
+{
+ AppLogDebug("ENTER");
+ if (deviceType == DEVICE_TYPE_STORAGE_CARD && state == DEVICE_STORAGE_CARD_UNMOUNTED)
+ {
+ IFormContentUpdateEventListener* pInterface = null;
+ IEnumerator* pEventEnum = __pContentEventListener->GetEnumeratorN();
+ while (pEventEnum->MoveNext() == E_SUCCESS)
+ {
+ pInterface = static_cast<IFormContentUpdateEventListener*>(pEventEnum->GetCurrent());
+ pInterface->OnContentUpdated();
+ }
+ delete pEventEnum;
+ }
+ AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}