GetAppFeature() is added.
[platform/framework/native/appfw.git] / src / app / inc / FAppPkg_PackageAppInfoImpl.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 /**
19  * @file        FAppPkg_PackageAppInfoImpl.h
20  * @brief       This is the header file for the _PackageAppInfoImpl class.
21  */
22
23 #ifndef _FAPP_PKG_INTERNAL_APP_INFO_IMPL_H_
24 #define _FAPP_PKG_INTERNAL_APP_INFO_IMPL_H_
25
26 #include <FAppTypes.h>
27 #include <FBaseObject.h>
28 #include <FBaseString.h>
29 #include <FOspConfig.h>
30 #include <FAppPkgPackageManager.h>
31 #include <FBaseInternalTypes.h>
32 #include <FBaseColHashMapT.h>
33
34 namespace Tizen { namespace Graphics
35 {
36 class Bitmap;
37 } }
38
39 namespace Tizen { namespace App { namespace Package
40 {
41
42 class _LaunchConditionInfoImpl;
43 class _NotificationInfoImpl;
44 class _AppFeatureInfoImpl;
45 class _DataControlInfoImpl;
46 class _AppControlResolutionInfoImpl;
47 class _AppControlCapabilityInfoImpl;
48 class _AppControlInfoImpl;
49
50 class _OSP_EXPORT_ _PackageAppInfoImpl
51         : public Tizen::Base::Object
52 {
53 public:
54         const AppId& GetAppId(void) const;
55         result SetAppId(const AppId& appId);
56
57         const Tizen::Base::String& GetAppName(void) const;
58         result SetAppName(const Tizen::Base::String& appName);
59
60         const Tizen::Base::String& GetAppDisplayName(void) const;
61         result SetAppDisplayName(const Tizen::Base::String& appDiplayName);
62
63         const Tizen::Base::String& GetAppMenuIconPath(void) const;
64         result SetAppMenuIconPath(const Tizen::Base::String& iconPath);
65
66         const Tizen::Base::String& GetAppSettingIconPath(void) const;
67         result SetAppSettingIconPath(const Tizen::Base::String& appSettingIcon);
68
69         const Tizen::Base::String& GetAppNotificationIconPath(void) const;
70         result SetAppNotificationIconPath(const Tizen::Base::String& notificationIconPath);
71
72         Tizen::Graphics::Bitmap* GetAppMenuIconN(void) const;
73
74         Tizen::Base::Collection::HashMap* GetAppMetadataListN(void) const;
75         Tizen::Base::Collection::ArrayList* GetAppCategoryListN(void) const;
76
77         bool IsMenuIconVisible(void) const;
78         result SetMenuIconVisible(bool visible);
79
80         bool IsMainApp(void) const;
81         result SetMainApp(bool mainApp);
82
83         result AddCategory(Tizen::Base::String* pCategory);
84
85         Tizen::Base::String GetAppFeature(const Tizen::Base::String& key) const;
86
87         static _PackageAppInfoImpl* GetInstance(PackageAppInfo* pPackageAppInfo);
88
89         result Construct(const AppId& appId);
90
91         // to be reviewed
92         _PackageAppInfoImpl(void);
93         virtual ~_PackageAppInfoImpl(void);
94
95         const Tizen::Base::String& GetName(void) const;
96         result SetName(const Tizen::Base::String& name);
97
98         const Tizen::Base::String& GetType(void) const;
99         result SetType(const Tizen::Base::String& type);
100
101         const Tizen::Base::String& GetDefault(void) const;
102         result SetDefault(const Tizen::Base::String& defaultApp);
103
104         Tizen::Base::Collection::ArrayList* GetLaunchConditionListN(void) const;
105         Tizen::Base::Collection::ArrayList* GetLaunchConditionList(void) const;
106         result AddLaunchCondition(const _LaunchConditionInfoImpl& launchCondition);
107
108         Tizen::Base::Collection::ArrayList* GetNotificationListN(void) const;
109         Tizen::Base::Collection::ArrayList* GetNotificationList(void) const;
110         result AddNotification(const _NotificationInfoImpl& notification);
111
112         Tizen::Base::Collection::ArrayList* GetAppFeatureListN(void) const;
113         Tizen::Base::Collection::ArrayList* GetAppFeatureList(void) const;
114         Tizen::Base::Collection::HashMapT<Tizen::Base::String, _AppFeatureInfoImpl*>* GetAppFeatureMapN(void) const;
115         result AddAppFeature(const _AppFeatureInfoImpl& appFeature);
116
117         Tizen::Base::Collection::ArrayList* GetDataControlListN(void) const;
118         Tizen::Base::Collection::ArrayList* GetDataControlList(void) const;
119         result AddDataControl(_DataControlInfoImpl* pDataControl);
120
121         Tizen::Base::Collection::ArrayList* GetAppControlListN(void) const;
122         Tizen::Base::Collection::ArrayList* GetAppControlList(void) const;
123         result AddAppControl(_AppControlInfoImpl* pAppControl);
124
125         const Tizen::Base::String& GetPackageName(void) const;
126         result SetPackageName(const Tizen::Base::String& packageName);
127
128         const Tizen::Base::String& GetMainmenuIcon(void) const;
129         result SetMainmenuIcon(const Tizen::Base::String& icon);
130
131         const Tizen::Base::String& GetSettingIcon(void) const;
132         result SetSettingIcon(const Tizen::Base::String& icon);
133
134         const Tizen::Base::String& GetQuickpanelIcon(void) const;
135         result SetQuickpanelIcon(const Tizen::Base::String& icon);
136
137         bool IsMainmenuVisible(void) const;
138         result SetMainmenuVisible(bool visible);
139
140         // to be reviewed
141         result AddName(const Tizen::Base::String& language, const Tizen::Base::String& name);
142         Tizen::Base::Collection::HashMap* GetNameList(void) const;
143
144         int GetUniqueId(void) const;
145         int GetPkgId(void) const;
146
147         result SetUniqueId(int id);
148         result SetPkgId(int id);
149
150         result AddAppControl(void);
151
152         int GetAppFeature(void) const;
153         result SetAppFeature(int feature);
154
155 private:
156         static int CategoryHandler(const char* pCategoryName, void* pUserData);
157         static int MetadataHandler(const char* pKey, const char* pValue, void* pUserData);
158
159 private:
160         _PackageAppInfoImpl(const _PackageAppInfoImpl& value);
161         _PackageAppInfoImpl& operator =(const _PackageAppInfoImpl& source);
162
163         AppId __appId;
164         Tizen::Base::String __appName;
165         Tizen::Base::String __appDiplayName;
166         Tizen::Base::String __appIconPath;
167         Tizen::Base::String __appSettingIconPath;
168         Tizen::Base::String __appNotificationIconPath;
169
170         bool __launchingIconVisible;
171         bool __mainApp;
172         bool __fromDatabase;
173
174         Tizen::Base::String __name;
175         Tizen::Base::String __type;
176         Tizen::Base::String __default;
177
178         Tizen::Base::Collection::ArrayList* __pLaunchConditionImplList;
179         Tizen::Base::Collection::ArrayList* __pNotificationImplList;
180         Tizen::Base::Collection::ArrayList* __pAppFeatureImplList;
181         Tizen::Base::Collection::ArrayList* __pDataControlImplList;
182         Tizen::Base::Collection::ArrayList* __pAppControlImplList;
183         Tizen::Base::Collection::ArrayList* __pAppCategoryList;
184
185         Tizen::Base::String __mainmenuIcon;
186         Tizen::Base::String __settingIcon;
187         Tizen::Base::String __tickerIcon;
188         Tizen::Base::String __quickpanelIcon;
189         Tizen::Base::String __launchImageIcon;
190
191         Tizen::Base::String __packageName;
192         Tizen::Base::Collection::HashMap* __pNameList;
193
194         int __uniqueId;
195         int __pkgId;
196
197         // to be reviewed
198         int __appFeature;
199
200         void* __pAppInfoHandle;
201
202         friend class PackageAppInfo;
203
204 }; // _PackageAppInfoImpl
205
206 class _OSP_EXPORT_ _LaunchConditionInfoImpl
207         : public Tizen::Base::Object
208 {
209 public:
210         _LaunchConditionInfoImpl(void);
211         virtual ~_LaunchConditionInfoImpl(void);
212
213         const Tizen::Base::String& GetName(void) const;
214         result SetName(const Tizen::Base::String& name);
215
216         const Tizen::Base::String& GetValue(void) const;
217         result SetValue(const Tizen::Base::String& value);
218
219 private:
220         _LaunchConditionInfoImpl(const _LaunchConditionInfoImpl& value);
221         _LaunchConditionInfoImpl& operator =(const _LaunchConditionInfoImpl& source);
222
223         Tizen::Base::String __name;
224         Tizen::Base::String __value;
225
226 }; // _LaunchConditionInfoImpl
227
228 class _OSP_EXPORT_ _NotificationInfoImpl
229         : public Tizen::Base::Object
230 {
231 public:
232         _NotificationInfoImpl(void);
233         virtual ~_NotificationInfoImpl(void);
234
235         const Tizen::Base::String& GetName(void) const;
236         result SetName(const Tizen::Base::String& name);
237
238         const Tizen::Base::String& GetValue(void) const;
239         result SetValue(const Tizen::Base::String& value);
240
241 private:
242         _NotificationInfoImpl(const _NotificationInfoImpl& value);
243         _NotificationInfoImpl& operator =(const _NotificationInfoImpl& source);
244
245         Tizen::Base::String __name;
246         Tizen::Base::String __value;
247 }; // _NotificationInfoImpl
248
249 class _OSP_EXPORT_ _AppFeatureInfoImpl
250         : public Tizen::Base::Object
251 {
252 public:
253         _AppFeatureInfoImpl(void);
254         virtual ~_AppFeatureInfoImpl(void);
255
256         const Tizen::Base::String& GetName(void) const;
257         result SetName(const Tizen::Base::String& name);
258
259         const Tizen::Base::String& GetValue(void) const;
260         result SetValue(const Tizen::Base::String& value);
261
262 private:
263         _AppFeatureInfoImpl(const _AppFeatureInfoImpl& value);
264         _AppFeatureInfoImpl& operator =(const _AppFeatureInfoImpl& source);
265
266         Tizen::Base::String __name;
267         Tizen::Base::String __value;
268
269 }; // _AppFeatureInfoImpl
270
271 class _OSP_EXPORT_ _DataControlTypeImpl
272         : public Tizen::Base::Object
273 {
274 public:
275                 _DataControlTypeImpl(void);
276         virtual ~_DataControlTypeImpl(void);
277
278         const Tizen::Base::String& GetType(void) const;
279         result SetType(const Tizen::Base::String& type);
280
281         const Tizen::Base::String& GetAccess(void) const;
282         result SetAccess(const Tizen::Base::String& access);
283
284 private:
285         _DataControlTypeImpl(const _DataControlTypeImpl& value);
286         _DataControlTypeImpl& operator =(const _DataControlTypeImpl& source);
287
288         Tizen::Base::String __type;
289         Tizen::Base::String __access;
290
291 }; // _DataControlTypeImpl
292
293 class _OSP_EXPORT_ _DataControlInfoImpl
294         : public Tizen::Base::Object
295 {
296 public:
297         _DataControlInfoImpl(void);
298         virtual ~_DataControlInfoImpl(void);
299
300         const Tizen::Base::String& GetProviderId(void) const;
301         result SetProviderId(const Tizen::Base::String& providerId);
302
303         Tizen::Base::Collection::ArrayList* GetControlTypeList(void) const;
304         result AddControlType(_DataControlTypeImpl* pControlType);
305
306 private:
307         _DataControlInfoImpl(const _DataControlInfoImpl& value);
308         _DataControlInfoImpl& operator =(const _DataControlInfoImpl& source);
309
310         Tizen::Base::String __providerId;
311         Tizen::Base::Collection::ArrayList* __pControlTypeList;
312
313 }; // _DataControlInfoImpl
314
315 class _OSP_EXPORT_ _AppControlResolutionInfoImpl
316         : public Tizen::Base::Object
317 {
318 public:
319         _AppControlResolutionInfoImpl(void);
320         virtual ~_AppControlResolutionInfoImpl(void);
321
322         Tizen::Base::String* GetUriScheme(void) const;
323         result SetUriScheme(Tizen::Base::String* pUriScheme);
324
325         Tizen::Base::String* GetMimeType(void) const;
326         result SetMimeType(Tizen::Base::String* pMimeType);
327
328 private:
329         _AppControlResolutionInfoImpl(const _AppControlResolutionInfoImpl& value);
330         _AppControlResolutionInfoImpl& operator =(const _AppControlResolutionInfoImpl& source);
331
332         Tizen::Base::String* __pUriScheme;
333         Tizen::Base::String* __pMimeType;
334
335 }; // _AppControlResolutionInfoImpl
336
337 class _OSP_EXPORT_ _AppControlCapabilityInfoImpl
338         : public Tizen::Base::Object
339 {
340 public:
341         _AppControlCapabilityInfoImpl(void);
342         virtual ~_AppControlCapabilityInfoImpl(void);
343
344         int GetUniqueId(void) const;
345         result SetUniqueId(int uniqueId);
346
347         int GetAppControlId(void) const;
348         result SetAppControlId(int uniqueId);
349
350         const Tizen::Base::String& GetOperationId(void) const;
351         result SetOperationId(const Tizen::Base::String& operationId);
352
353         Tizen::Base::Collection::ArrayList* GetResolutionList(void) const;
354         result AddResolution(_AppControlResolutionInfoImpl* pResolution);
355
356 private:
357         _AppControlCapabilityInfoImpl(const _AppControlCapabilityInfoImpl& value);
358         _AppControlCapabilityInfoImpl& operator =(const _AppControlCapabilityInfoImpl& source);
359
360         int __uniqueId;
361         int __appControlId;
362         Tizen::Base::String __operationId;
363         Tizen::Base::Collection::ArrayList* __pResolutionList;
364
365 }; // _AppControlCapabilityInfoImpl
366
367 class _OSP_EXPORT_ _AppControlInfoImpl
368         : public Tizen::Base::Object
369 {
370 public:
371         _AppControlInfoImpl(void);
372         virtual ~_AppControlInfoImpl(void);
373
374         int GetUniqueId(void) const;
375         result SetUniqueId(int uniqueId);
376
377         const Tizen::Base::String& GetProviderId(void) const;
378         result SetProviderId(const Tizen::Base::String& providerId);
379
380         const Tizen::Base::String& GetCategory(void) const;
381         result SetCategory(const Tizen::Base::String& category);
382
383         Tizen::Base::Collection::ArrayList* GetCapabilityList(void) const;
384         result AddCapability(_AppControlCapabilityInfoImpl* pCapability);
385
386 private:
387         _AppControlInfoImpl(const _AppControlInfoImpl& value);
388         _AppControlInfoImpl& operator =(const _AppControlInfoImpl& source);
389
390         int __uniqueId;
391         Tizen::Base::String __providerId;
392         Tizen::Base::String __category;
393         Tizen::Base::Collection::ArrayList* __pCapabilityList;
394
395 }; // _AppControlInfoImpl
396
397 } } } // Tizen::App::Package
398
399 #endif // _FAPP_PKG_INTERNAL_APP_INFO_IMPL_H_