LunaSysMgr
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
webosapp.h
Go to the documentation of this file.
1 /* @@@LICENSE
2 *
3 * Copyright (c) 2011-2012 Hewlett-Packard Development Company, L.P.
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 * LICENSE@@@ */
18 
19 
20 
21 
22 #ifndef WEBOSAPP_H_
23 #define WEBOSAPP_H_
24 
25 #include "externalapp.h"
26 #include <QString>
27 #include <QMap>
28 #include <QPointer>
29 
30 class IconBase;
31 
32 namespace DimensionsSystemInterface
33 {
34 
35 class AppMonitor;
36 
37 namespace WOAppVisibility
38 {
39  enum Enum
40  {
44  };
45 }
46 namespace WOAppOrigin
47 {
48  enum Enum
49  {
50  INVALID = 0,
51  Unknown, // catch-all
52  ROM, // index entry, use specific ones below
53  ROMImage, // provided on the image coming out of the factory; core apps needed for critical functions (e.g. Phone app)
54  NonROM, // index entry, use specific ones below
55  NonROMPlatform, // provided by the factory, but not on the ROM image; feature apps not critical for operation (e.g. doc viewer)
56  NonROMUpdating, // company apps that are intended to be able to update outside the OTA ROM update cycle; otherwise identical to NonROMPlatform
57  NonROMPartnerVendor, // provided by a launch partner; feature apps not critical for operation (e.g. facebook)
58  User, //index entry, use specific ones below
59  UserInstalled // the general apps; installed by the user from an app catalog/other source
60  };
61 }
62 
63 namespace WOAppIconType
64 {
65  enum Enum
66  {
70  };
71 }
72 
73 class WebOSApp : public ExternalApp
74 {
75  Q_OBJECT
76 public:
77 
78  friend class AppMonitor;
79 
80  WebOSApp(const QString& appId,const QString& iconFilePath);
81  virtual ~WebOSApp();
82 
83  virtual bool isValid() const;
84 
85  virtual IconBase * mainAppIcon() const;
86  virtual QList<IconBase *> auxAppIcons() const;
87  virtual QString launchpointIdOfIcon(const QUuid& iconUid,WOAppIconType::Enum * p_r_type = 0) const;
88 
89  virtual QString launchPointTile(const QString& launchPointId) const;
90  virtual QString appId() const;
91  virtual QString title() const;
92  virtual QString version() const;
93  virtual QString category() const;
94 
95  virtual bool nonRemovableSystemApp() const;
96  virtual bool platformApp() const;
97  virtual bool userInstalledApp() const;
98  virtual bool removableOrHideable() const;
99 
100 protected:
101 
102  QString m_appId;
105  QString m_appLocationPath; //on the filesys
108 
109  typedef QMap<QString,QPointer<IconBase> > LaunchPointsMap;
110  typedef LaunchPointsMap::iterator LaunchPointsMapIter;
111  typedef LaunchPointsMap::const_iterator LaunchPointsMapConstIter;
112 
113  LaunchPointsMap m_launchPointsMapById; //includes the main launch point
114 
115 };
116 
117 } //end namespace
118 
119 #endif /* WEBOSAPP_H_ */