2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 // Licensed under the Flora License, Version 1.0 (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 , __pPresentationModel(presentationModel)
49 FileMoveTimer::~FileMoveTimer(void)
51 delete __pMoveIndexList;
54 IList * FileMoveTimer::TimerStart(void)
57 if (&__moveToDir == null || __moveToDir.IsEmpty())
59 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
63 if (__pMoveIndexList == null || __pMoveIndexList->GetCount() <= 0)
65 AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
68 if (__isCopyOperation == true)
70 SetActionMode(FILE_ACTION_COPY);
72 if (__pMoveIndexList->GetCount() > 0)
74 if (File::IsFileExist(__moveToDir) == false)
76 Directory::Create(__moveToDir, true);
78 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
79 return __pPresentationModel->GetContentIdListAtIndexN(*__pMoveIndexList);
87 result FileMoveTimer::TimerExpired(const Object* contentId)
90 return __pPresentationModel->MoveToContentFile(*static_cast<const ContentId*>(contentId), __moveToDir, __isCopyOperation);
93 void FileMoveTimer::TimerCancel(int, enum FileActionCancelRes res)
96 if (res == CANCEL_USER)
98 String albumName = __pPresentationModel->ConvertToAlbumName(__moveToDir);
100 if (albumName != EMPTY_SPACE)
102 IList* pDirectoryList = new (std::nothrow) ArrayList(SingleObjectDeleter);
103 pDirectoryList->Add(new (std::nothrow) String(__moveToDir));
104 __pPresentationModel->SetCurrentAlbumInfo(albumName, *pDirectoryList);
105 __pPresentationModel->SetCurrentAlbumContentType(CONTENT_TYPE_ALL);
106 delete pDirectoryList;
108 SceneManager* pSceneManager = SceneManager::GetInstance();
109 pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST));
115 void FileMoveTimer::TimerComplete(int, enum FileActionCompleteRes res)
117 AppLogDebug("ENTER");
118 String albumName = __pPresentationModel->ConvertToAlbumName(__moveToDir);
120 if (albumName != EMPTY_SPACE)
122 IList* pDirectoryList = new (std::nothrow) ArrayList(SingleObjectDeleter);
123 pDirectoryList->Add(new (std::nothrow) String(__moveToDir));
124 __pPresentationModel->SetCurrentAlbumInfo(albumName, *pDirectoryList);
125 __pPresentationModel->SetCurrentAlbumContentType(CONTENT_TYPE_ALL);
126 delete pDirectoryList;
128 SceneManager* pSceneManager = SceneManager::GetInstance();
129 pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST));
134 void FileMoveTimer::SetCopy(void)
136 __isCopyOperation = true;
139 void FileMoveTimer::ClearCopy(void)
141 __isCopyOperation = false;