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 FileMoveTimer.cpp
19 * @brief This is the source file for FileMoveTimer class.
28 #include "GlFileListPresentationModel.h"
29 #include "GlFileMoveTimer.h"
31 using namespace Tizen::Base;
32 using namespace Tizen::Base::Collection;
33 using namespace Tizen::Base::Utility;
34 using namespace Tizen::Content;
35 using namespace Tizen::Io;
36 using namespace Tizen::Ui;
37 using namespace Tizen::Ui::Controls;
38 using namespace Tizen::Ui::Scenes;
40 FileMoveTimer::FileMoveTimer(String& destDirectory, IList* list, FileListPresentationModel* presentationModel,
41 IFileOpInvalidateListener* pInvalidate, bool isCopyOperation)
42 : GlTimerBase(pInvalidate, FILE_ACTION_MOVE)
43 , __pMoveIndexList(list)
44 , __moveToDir(destDirectory)
45 , __isCopyOperation(false)
46 , __pPresentationModel(presentationModel)
50 FileMoveTimer::~FileMoveTimer(void)
52 delete __pMoveIndexList;
55 IList * FileMoveTimer::TimerStart(void)
58 if (&__moveToDir == null || __moveToDir.IsEmpty())
60 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
64 if (__pMoveIndexList == null || __pMoveIndexList->GetCount() <= 0)
66 AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
69 if (__isCopyOperation == true)
71 SetActionMode(FILE_ACTION_COPY);
73 if (__pMoveIndexList->GetCount() > 0)
75 if (File::IsFileExist(__moveToDir) == false)
77 Directory::Create(__moveToDir, true);
79 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
80 return __pPresentationModel->GetContentIdListAtIndexN(*__pMoveIndexList);
88 result FileMoveTimer::TimerExpired(const Object* contentId)
91 return __pPresentationModel->MoveToContentFile(*static_cast<const ContentId*>(contentId), __moveToDir, __isCopyOperation);
94 void FileMoveTimer::TimerCancel(int, enum FileActionCancelRes res)
97 if (res == CANCEL_USER)
99 String albumName = __pPresentationModel->ConvertToAlbumName(__moveToDir);
101 if (albumName != EMPTY_SPACE)
103 IList* pDirectoryList = new (std::nothrow) ArrayList(SingleObjectDeleter);
104 pDirectoryList->Add(new (std::nothrow) String(__moveToDir));
105 __pPresentationModel->SetCurrentAlbumInfo(albumName, *pDirectoryList);
106 __pPresentationModel->SetCurrentAlbumContentType(CONTENT_TYPE_ALL);
107 delete pDirectoryList;
109 SceneManager* pSceneManager = SceneManager::GetInstance();
110 pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST));
116 void FileMoveTimer::TimerComplete(int, enum FileActionCompleteRes res)
118 AppLogDebug("ENTER");
119 String albumName = __pPresentationModel->ConvertToAlbumName(__moveToDir);
121 if (albumName != EMPTY_SPACE)
123 IList* pDirectoryList = new (std::nothrow) ArrayList(SingleObjectDeleter);
124 pDirectoryList->Add(new (std::nothrow) String(__moveToDir));
125 __pPresentationModel->SetCurrentAlbumInfo(albumName, *pDirectoryList);
126 __pPresentationModel->SetCurrentAlbumContentType(CONTENT_TYPE_ALL);
127 delete pDirectoryList;
129 SceneManager* pSceneManager = SceneManager::GetInstance();
130 pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST));
135 void FileMoveTimer::SetCopy(void)
137 __isCopyOperation = true;
140 void FileMoveTimer::ClearCopy(void)
142 __isCopyOperation = false;