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 result r = Directory::Create(__moveToDir, true);
78 AppLog(" The Directory create result is %s",GetErrorMessage(r));
85 AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
86 return __pPresentationModel->GetContentIdListAtIndexN(*__pMoveIndexList);
94 result FileMoveTimer::TimerExpired(const Object* contentId)
97 return __pPresentationModel->MoveToContentFile(*static_cast<const ContentId*>(contentId), __moveToDir, __isCopyOperation);
100 void FileMoveTimer::TimerCancel(int, enum FileActionCancelRes res)
102 AppLogDebug("ENTER");
104 if (res == CANCEL_USER || (res == CANCEL_SYS_ERROR && GetMovedCount() > 0))
106 String albumName = __pPresentationModel->ConvertToAlbumName(__moveToDir);
108 if (albumName != EMPTY_SPACE)
110 IList* pDirectoryList = new (std::nothrow) ArrayList(SingleObjectDeleter);
111 pDirectoryList->Add(new (std::nothrow) String(__moveToDir));
112 __pPresentationModel->SetCurrentAlbumInfo(albumName, *pDirectoryList);
113 __pPresentationModel->SetCurrentAlbumContentType(CONTENT_TYPE_ALL);
114 delete pDirectoryList;
116 SceneManager* pSceneManager = SceneManager::GetInstance();
117 pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST));
120 else if (res == CANCEL_SYS_ERROR && GetMovedCount() == 0)
122 if (__isCopyOperation == true)
124 MessageBox messageBox;
125 messageBox.Construct(L"", L"Unable to copy files.",
126 MSGBOX_STYLE_NONE, 3000);
128 messageBox.ShowAndWait(modalResult);
134 void FileMoveTimer::TimerComplete(int, enum FileActionCompleteRes res)
136 AppLogDebug("ENTER");
137 String albumName = __pPresentationModel->ConvertToAlbumName(__moveToDir);
139 if (albumName != EMPTY_SPACE)
141 IList* pDirectoryList = new (std::nothrow) ArrayList(SingleObjectDeleter);
142 pDirectoryList->Add(new (std::nothrow) String(__moveToDir));
143 __pPresentationModel->SetCurrentAlbumInfo(albumName, *pDirectoryList);
144 __pPresentationModel->SetCurrentAlbumContentType(CONTENT_TYPE_ALL);
145 delete pDirectoryList;
147 SceneManager* pSceneManager = SceneManager::GetInstance();
148 pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST));
153 void FileMoveTimer::SetCopy(void)
155 __isCopyOperation = true;
158 void FileMoveTimer::ClearCopy(void)
160 __isCopyOperation = false;