License Agreement changes
[apps/osp/Gallery.git] / src / GlContentUpdateEventListener.cpp
1 //
2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
3 //
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
7 //
8 //     http://floralicense.org/license/
9 //
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.
15 //
16
17 /**
18  * @file                GlContentUpdateEventListener.cpp
19  * @brief               This is the implementation file for ContentUpdateEventListener class.
20  */
21
22 #include "GlContentUpdateEventListener.h"
23 #include "GlFileListPresentationModel.h"
24 #include "GlAlbumListPresentationModel.h"
25
26 using namespace Tizen::Base;
27 using namespace Tizen::Base::Collection;
28 using namespace Tizen::Content;
29
30 ContentUpdateEventListener* ContentUpdateEventListener::__pContentUpdateEventListener = null;
31
32 ContentUpdateEventListener::ContentUpdateEventListener(void)
33         : __pContentManager(null)
34         , __isSingleFileUpdate(false)
35 {
36         AppLogDebug("ENTER");
37         AppLogDebug("EXIT");
38 }
39
40 ContentUpdateEventListener::~ContentUpdateEventListener(void)
41 {
42         AppLogDebug("ENTER");
43         __pContentManager->RemoveContentUpdateEventListener(*this);
44         AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
45 }
46
47 ContentUpdateEventListener*
48 ContentUpdateEventListener::GetInstance(void)
49 {
50         AppLogDebug("ENTER");
51         if (__pContentUpdateEventListener == null)
52         {
53                 CreateInstance();
54         }
55         AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
56
57         return __pContentUpdateEventListener;
58 }
59
60 void ContentUpdateEventListener::AddContentListener(void)
61 {
62         __pContentManager->AddContentUpdateEventListener(*this);
63 }
64
65 void ContentUpdateEventListener::RemoveContentListener(void)
66 {
67         __pContentManager->RemoveContentUpdateEventListener(*this);
68 }
69
70 result
71 ContentUpdateEventListener::Construct(void)
72 {
73         AppLogDebug("ENTER");
74
75         __pContentManager = new (std::nothrow) ContentManager();
76         __pContentManager->Construct();
77         __pContentManager->AddContentUpdateEventListener(*this);
78
79         AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
80         return E_SUCCESS;
81 }
82
83 void
84 ContentUpdateEventListener::CreateInstance(void)
85 {
86         AppLogDebug("ENTER");
87         __pContentUpdateEventListener = new (std::nothrow) ContentUpdateEventListener();
88         result r = __pContentUpdateEventListener->Construct();
89         if (IsFailed(r) == true)
90         {
91                 delete __pContentUpdateEventListener;
92                 __pContentUpdateEventListener = null;
93                 AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
94
95                 return;
96         }
97
98         std::atexit(DestroyInstance);
99         AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
100 }
101
102 void
103 ContentUpdateEventListener::DestroyInstance(void)
104 {
105         AppLogDebug("ENTER");
106
107         delete __pContentUpdateEventListener;
108         __pContentUpdateEventListener = null;
109
110         AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
111 }
112
113 void
114 ContentUpdateEventListener::OnContentFileCreated(Tizen::Content::ContentId contentId, Tizen::Content::ContentType contentType, result r)
115 {
116         AppLogDebug("ENTER");
117         __isSingleFileUpdate = true;
118         AlbumListPresentationModel::GetInstance()->OnContentCreated();
119         FileListPresentationModel::GetInstance()->OnContentCreated();
120
121         AppLogDebug("EXIT");
122 }
123
124 void
125 ContentUpdateEventListener::OnContentFileUpdated(Tizen::Content::ContentId contentId, Tizen::Content::ContentType contentType, result r)
126 {
127         AppLogDebug("ENTER");
128         __isSingleFileUpdate = true;
129         AlbumListPresentationModel::GetInstance()->OnContentUpdated();
130         FileListPresentationModel::GetInstance()->OnContentUpdated();
131
132         AppLogDebug("EXIT");
133 }
134
135 void
136 ContentUpdateEventListener::OnContentFileDeleted(Tizen::Content::ContentId contentId, Tizen::Content::ContentType contentType, result r)
137 {
138         AppLogDebug("ENTER");
139         __isSingleFileUpdate = true;
140         AlbumListPresentationModel::GetInstance()->OnContentDeleted();
141         FileListPresentationModel::GetInstance()->OnContentDeleted();
142
143         AppLogDebug("EXIT");
144 }
145
146 void
147 ContentUpdateEventListener::OnContentDirectoryScanCompleted(const Tizen::Base::String& directoryPath, result r)
148 {
149         AppLogDebug("ENTER");
150         if (__isSingleFileUpdate == false)
151         {
152                 AlbumListPresentationModel::GetInstance()->OnContentDeleted();
153                 FileListPresentationModel::GetInstance()->OnContentDeleted();
154         }
155         else
156         {
157                 __isSingleFileUpdate = false;
158         }
159         AppLogDebug("EXIT");
160 }