• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef BUNDLE_MGR_H_
17 #define BUNDLE_MGR_H_
18 #include <vector>
19 
20 #include "napi/native_common.h"
21 #include "napi/native_node_api.h"
22 
23 #include "hilog_wrapper.h"
24 #include "ohos/aafwk/content/want.h"
25 #include "bundle_mgr_interface.h"
26 #include "application_info.h"
27 
28 struct QueryParameter {
29     int flags;
30     std::string userId;
31 };
32 
33 struct AsyncAbilityInfoCallbackInfo {
34     napi_env env;
35     napi_async_work asyncWork;
36     napi_deferred deferred;
37     napi_ref callback = 0;
38     OHOS::AAFwk::Want want;
39     std::vector<OHOS::AppExecFwk::AbilityInfo> abilityInfos;
40     bool ret = false;
41 };
42 
43 struct AsyncBundleInfoCallbackInfo {
44     napi_env env;
45     napi_async_work asyncWork;
46     napi_deferred deferred;
47     napi_ref callback = 0;
48     std::string param;
49     OHOS::AppExecFwk::BundleFlag bundleFlag;
50     OHOS::AppExecFwk::BundleInfo bundleInfo;
51     bool ret = false;
52 };
53 
54 struct AsyncApplicationInfoCallbackInfo {
55     napi_env env;
56     napi_async_work asyncWork;
57     napi_deferred deferred;
58     napi_ref callback = 0;
59     std::string bundleName;
60     OHOS::AppExecFwk::ApplicationFlag applicationFlag;
61     int userId;
62     OHOS::AppExecFwk::ApplicationInfo appInfo;
63     bool ret = false;
64 };
65 
66 struct AsyncPermissionDefCallbackInfo {
67     napi_env env;
68     napi_async_work asyncWork;
69     napi_deferred deferred;
70     napi_ref callback = 0;
71     std::string permissionName;
72     OHOS::AppExecFwk::PermissionDef permissionDef;
73     bool ret = false;
74 };
75 
76 struct AsyncPermissionCallbackInfo {
77     napi_env env;
78     napi_async_work asyncWork;
79     napi_deferred deferred;
80     napi_ref callback = 0;
81     std::string bundleName;
82     std::string permission;
83     int ret = -1;
84 };
85 
86 struct AsyncBundleInfosCallbackInfo {
87     napi_env env;
88     napi_async_work asyncWork;
89     napi_deferred deferred;
90     napi_ref callback = 0;
91     OHOS::AppExecFwk::BundleFlag bundleFlag;
92     std::vector<OHOS::AppExecFwk::BundleInfo> bundleInfos;
93     bool ret = false;
94 };
95 
96 struct AsyncApplicationInfosCallbackInfo {
97     napi_env env;
98     napi_async_work asyncWork;
99     napi_deferred deferred;
100     napi_ref callback = 0;
101     OHOS::AppExecFwk::ApplicationFlag applicationFlag;
102     int userId;
103     std::vector<OHOS::AppExecFwk::ApplicationInfo> appInfos;
104     bool ret = false;
105 };
106 
107 struct InstallResult {
108     std::string resultMsg;
109     int32_t resultCode;
110 };
111 
112 struct AsyncInstallCallbackInfo {
113     napi_env env;
114     napi_async_work asyncWork;
115     napi_deferred deferred;
116     napi_ref callback = 0;
117     std::vector<std::string> hapFiles;
118     std::string param;
119     OHOS::AppExecFwk::InstallParam installParam;
120     InstallResult installResult;
121 };
122 
123 struct AsyncGetBundleInstallerCallbackInfo {
124     napi_env env;
125     napi_async_work asyncWork;
126     napi_deferred deferred;
127     napi_ref callback = 0;
128 };
129 
130 struct AsyncFormInfosCallbackInfo {
131     napi_env env;
132     napi_async_work asyncWork;
133     napi_deferred deferred;
134     napi_ref callback = 0;
135     std::vector<OHOS::AppExecFwk::FormInfo> formInfos;
136     bool ret = false;
137 };
138 
139 struct AsyncFormInfosByModuleCallbackInfo {
140     napi_env env;
141     napi_async_work asyncWork;
142     napi_deferred deferred;
143     napi_ref callback = 0;
144     std::string bundleName;
145     std::string moduleName;
146     std::vector<OHOS::AppExecFwk::FormInfo> formInfos;
147     bool ret = false;
148 };
149 
150 struct AsyncFormInfosByAppCallbackInfo {
151     napi_env env;
152     napi_async_work asyncWork;
153     napi_deferred deferred;
154     napi_ref callback = 0;
155     std::string bundleName;
156     std::vector<OHOS::AppExecFwk::FormInfo> formInfos;
157     bool ret = false;
158 };
159 
160 struct AsyncShortcutInfosCallbackInfo {
161     napi_env env;
162     napi_async_work asyncWork;
163     napi_deferred deferred;
164     napi_ref callback = 0;
165     std::string bundleName;
166     std::vector<OHOS::AppExecFwk::ShortcutInfo> shortcutInfos;
167     bool ret = false;
168 };
169 
170 struct AsyncModuleUsageRecordsCallbackInfo {
171     napi_env env;
172     napi_async_work asyncWork;
173     napi_deferred deferred;
174     napi_ref callback = 0;
175     int32_t number;
176     std::vector<OHOS::AppExecFwk::ModuleUsageRecord> moduleUsageRecords;
177     bool ret = false;
178 };
179 
180 struct AsyncRegisterAllPermissions {
181     napi_env env;
182     napi_async_work asyncWork;
183     napi_ref callback = 0;
184 };
185 
186 struct AsyncRegisterPermissions {
187     napi_env env;
188     napi_async_work asyncWork;
189     napi_ref callback = 0;
190     std::vector<int32_t> uids;
191 };
192 
193 struct AsyncUnregisterPermissions {
194     napi_env env;
195     napi_async_work asyncWork;
196     napi_ref callback = 0;
197     std::vector<int32_t> uids;
198     bool ret = false;
199 };
200 
201 extern napi_value g_classBundleInstaller;
202 
203 napi_value GetApplicationInfos(napi_env env, napi_callback_info info);
204 napi_value GetApplicationInfo(napi_env env, napi_callback_info info);
205 napi_value QueryAbilityInfos(napi_env env, napi_callback_info info);
206 napi_value GetBundleInfos(napi_env env, napi_callback_info info);
207 napi_value GetBundleInfo(napi_env env, napi_callback_info info);
208 napi_value GetBundleArchiveInfo(napi_env env, napi_callback_info info);
209 napi_value GetPermissionDef(napi_env env, napi_callback_info info);
210 napi_value GetBundleInstaller(napi_env env, napi_callback_info info);
211 napi_value Install(napi_env env, napi_callback_info info);
212 napi_value Uninstall(napi_env env, napi_callback_info info);
213 napi_value BundleInstallerConstructor(napi_env env, napi_callback_info info);
214 napi_value GetAllFormsInfo(napi_env env, napi_callback_info info);
215 napi_value GetFormsInfoByApp(napi_env env, napi_callback_info info);
216 napi_value GetFormsInfoByModule(napi_env env, napi_callback_info info);
217 napi_value GetShortcutInfos(napi_env env, napi_callback_info info);
218 napi_value GetModuleUsageRecords(napi_env env, napi_callback_info info);
219 napi_value RegisterAllPermissionsChanged(napi_env env, napi_callback_info info);
220 napi_value UnregisterPermissionsChanged(napi_env env, napi_callback_info info);
221 napi_value CheckPermission(napi_env env, napi_callback_info info);
222 void CreateAbilityTypeObject(napi_env env, napi_value value);
223 void CreateAbilitySubTypeObject(napi_env env, napi_value value);
224 void CreateDisplayOrientationObject(napi_env env, napi_value value);
225 void CreateLaunchModeObject(napi_env env, napi_value value);
226 void CreateModuleUpdateFlagObject(napi_env env, napi_value value);
227 void CreateFormTypeObject(napi_env env, napi_value value);
228 void CreateColorModeObject(napi_env env, napi_value value);
229 void CreateGrantStatusObject(napi_env env, napi_value value);
230 void CreateModuleRemoveFlagObject(napi_env env, napi_value value);
231 void CreateSignatureCompareResultObject(napi_env env, napi_value value);
232 void CreateShortcutExistenceObject(napi_env env, napi_value value);
233 void CreateQueryShortCutFlagObject(napi_env env, napi_value value);
234 void CreateInstallErrorCodeObject(napi_env env, napi_value value);
235 #endif /* BUNDLE_MGR_H_ */
236