11a879ca9a2ce21c0c06fa361666a72141a557a4
[platform/core/csapi/tizenfx.git] / src / Tizen.Applications.Common / Interop / Interop.ApplicationManager.cs
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (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://www.apache.org/licenses/LICENSE-2.0
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 using System;
18 using System.Runtime.InteropServices;
19
20 internal static partial class Interop
21 {
22     internal static partial class ApplicationManager
23     {
24         internal enum ErrorCode
25         {
26             None = Tizen.Internals.Errors.ErrorCode.None,
27             InvalidParameter = Tizen.Internals.Errors.ErrorCode.InvalidParameter,
28             OutOfMemory = Tizen.Internals.Errors.ErrorCode.OutOfMemory,
29             IoError = Tizen.Internals.Errors.ErrorCode.IoError,
30             NoSuchApp = -0x01110000 | 0x01,
31             DbFailed = -0x01110000 | 0x03,
32             InvalidPackage = -0x01110000 | 0x04,
33             AppNoRunning = -0x01110000 | 0x05,
34             RequestFailed = -0x01110000 | 0x06,
35             PermissionDenied = Tizen.Internals.Errors.ErrorCode.PermissionDenied
36         }
37
38         internal enum AppContextEvent
39         {
40             Launched = 0,
41             Terminated = 1
42         }
43
44         internal enum AppManagerEventStatusType
45         {
46             All = 0x00,
47             Enable = 0x01,
48             Disable = 0x02
49         }
50
51         internal enum AppManagerEventType
52         {
53             Enable = 0,
54             Disable = 1
55         }
56
57         internal enum AppManagerEventState
58         {
59             Started = 0,
60             Completed = 1,
61             Failed = 2
62         }
63
64         internal enum AppInfoAppComponentType
65         {
66             UiApp = 0,
67             ServiceApp = 1,
68             WidgetApp = 2,
69             WatchApp = 3
70         }
71
72         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
73         internal delegate void AppManagerEventCallback(string appType, string appId, AppManagerEventType eventType, AppManagerEventState eventState, IntPtr eventHandle, IntPtr userData);
74         //void(* app_manager_event_cb)(const char *type, const char *app_id, app_manager_event_type_e event_type, app_manager_event_state_e event_state, app_manager_event_h handle, void *user_data)
75
76
77         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
78         internal delegate void AppManagerAppContextEventCallback(IntPtr handle, AppContextEvent state, IntPtr userData);
79         //void(* app_manager_app_context_event_cb)(app_context_h app_context, app_context_event_e event, void *user_data)
80
81         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
82         internal delegate bool AppManagerAppInfoCallback(IntPtr handle, IntPtr userData);
83         //bool(* app_manager_app_info_cb )(app_info_h app_info, void *user_data)
84
85         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
86         internal delegate bool AppManagerAppContextCallback(IntPtr handle, IntPtr userData);
87         //bool(* app_manager_app_context_cb)(app_context_h app_context, void *user_data)
88
89         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
90         internal delegate bool AppInfoFilterCallback(IntPtr handle, IntPtr userData);
91         //bool(* app_info_filter_cb )(app_info_h app_info, void *user_data)
92
93         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
94         internal delegate bool AppInfoMetadataCallback(string key, string value, IntPtr userData);
95         //bool(* app_info_metadata_cb )(const char *metadata_key, const char *metadata_value, void *user_data)
96
97         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
98         internal delegate bool AppInfoCategoryCallback(string category, IntPtr userData);
99         //bool (*app_info_category_cb) (const char *category, void *user_data)
100
101         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_set_app_context_event_cb")]
102         internal static extern ErrorCode AppManagerSetAppContextEvent(AppManagerAppContextEventCallback callback, IntPtr userData);
103         //int app_manager_set_app_context_event_cb( app_manager_app_context_event_cb callback, void * user_data)
104
105         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_unset_app_context_event_cb")]
106         internal static extern void AppManagerUnSetAppContextEvent();
107         //void app_manager_unset_app_context_event_cb (void);
108
109         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_foreach_running_app_context")]
110         internal static extern ErrorCode AppManagerForeachRunningAppContext(AppManagerAppContextCallback callback, IntPtr userData);
111         //int app_manager_foreach_running_app_context(app_manager_app_context_cb callback, void *user_data)
112
113         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_foreach_app_context")]
114         internal static extern ErrorCode AppManagerForeachAppContext(AppManagerAppContextCallback callback, IntPtr userData);
115         //int app_manager_foreach_app_context(app_manager_app_context_cb callback, void *user_data)
116
117         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_app_context")]
118         internal static extern ErrorCode AppManagerGetAppContext(string applicationId, out IntPtr handle);
119         //int app_manager_get_app_context(const char* app_id, app_context_h *app_context);
120
121         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_app_id")]
122         internal static extern ErrorCode AppManagerGetAppId(int processId, out string applicationId);
123         //int app_manager_get_app_id (pid_t pid, char **appid);
124
125         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_is_running")]
126         internal static extern ErrorCode AppManagerIsRunning(string applicationId, out bool running);
127         //int app_manager_is_running (const char *appid, bool *running);
128
129         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_resume_app")]
130         internal static extern ErrorCode AppManagerResumeApp(IntPtr handle);
131         //int app_manager_resume_app (app_context_h handle);
132
133         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_request_terminate_bg_app")]
134         internal static extern ErrorCode AppManagerRequestTerminateBgApp(IntPtr handle);
135         //int app_manager_request_terminate_bg_app (app_context_h handle);
136
137         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_foreach_app_info")]
138         internal static extern ErrorCode AppManagerForeachAppInfo(AppManagerAppInfoCallback callback, IntPtr userData);
139         //int app_manager_foreach_app_info(app_manager_app_info_cb callback, void *user_data)
140
141         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_app_info")]
142         internal static extern ErrorCode AppManagerGetAppInfo(string applicationId, out IntPtr handle);
143         //int app_manager_get_app_info(const char * app_id, app_info_h * app_info)
144
145         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_shared_data_path")]
146         internal static extern ErrorCode AppManagerGetSharedDataPath(string applicationId, out string path);
147         //int app_manager_get_shared_data_path (const char *appid, char **path);
148
149         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_shared_resource_path")]
150         internal static extern ErrorCode AppManagerGetSharedResourcePath(string applicationId, out string path);
151         //int app_manager_get_shared_resource_path (const char *appid, char **path);
152
153         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_shared_trusted_path")]
154         internal static extern ErrorCode AppManagerGetSharedTrustedPath(string applicationId, out string path);
155         //int app_manager_get_shared_trusted_path (const char *appid, char **path);
156
157         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_external_shared_data_path")]
158         internal static extern ErrorCode AppManagerGetExternalSharedDataPath(string applicationId, out string path);
159         //int app_manager_get_external_shared_data_path (const char *appid, char **path);
160
161         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_event_create")]
162         internal static extern ErrorCode AppManagerEventCreate(out IntPtr handle);
163         //int app_manager_event_create (app_manager_event_h *handle);
164
165         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_event_set_status")]
166         internal static extern ErrorCode AppManagerEventSetStatus(IntPtr handle, AppManagerEventStatusType statusType);
167         //int app_manager_event_set_status (app_manager_event_h handle, int status_type);
168
169         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_set_event_cb")]
170         internal static extern ErrorCode AppManagerSetEventCallback(IntPtr handle, AppManagerEventCallback callback, IntPtr userData);
171         //int app_manager_set_event_cb (app_manager_event_h handle, app_manager_event_cb callback, void *user_data);
172
173         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_unset_event_cb")]
174         internal static extern ErrorCode AppManagerUnSetEventCallback(IntPtr handle);
175         //int app_manager_unset_event_cb (app_manager_event_h handle);
176
177         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_event_destroy")]
178         internal static extern ErrorCode AppManagerEventDestroy(IntPtr handle);
179         //int app_manager_event_destroy (app_manager_event_h handle);
180
181         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_terminate_app")]
182         internal static extern ErrorCode AppManagerTerminateApp(IntPtr handle);
183         //int app_manager_terminate_app (app_context_h app_context);
184
185         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_app_context_by_instance_id")]
186         internal static extern ErrorCode AppManagerGetAppContextByInstanceId(string applicationId, string instanceId, out IntPtr handle);
187         //int app_manager_get_app_context_by_instance_id (const char *app_id, const char *instance_id, app_context_h *app_context);
188
189         [DllImport(Libraries.AppManager, EntryPoint = "app_context_destroy")]
190         internal static extern ErrorCode AppContextDestroy(IntPtr handle);
191         //int app_context_destroy(app_context_h app_context)
192
193         [DllImport(Libraries.AppManager, EntryPoint = "app_context_get_app_id")]
194         internal static extern ErrorCode AppContextGetAppId(IntPtr handle, out string applicationId);
195         //int app_context_get_app_id(app_context_h app_context, char **app_id)
196
197         [DllImport(Libraries.AppManager, EntryPoint = "app_context_get_package_id")]
198         internal static extern ErrorCode AppContextGetPackageId(IntPtr handle, out string packageId);
199         //int app_context_get_package_id(app_context_h app_context, char **package_id)
200
201         [DllImport(Libraries.AppManager, EntryPoint = "app_context_get_pid")]
202         internal static extern ErrorCode AppContextGetPid(IntPtr handle, out int processId);
203         //int app_context_get_pid (app_context_h app_context, pid_t *pid)
204
205         [DllImport(Libraries.AppManager, EntryPoint = "app_context_get_app_state")]
206         internal static extern ErrorCode AppContextGetAppState(IntPtr handle, out int state);
207         //int app_context_get_app_state (app_context_h app_context, app_state_e *state)
208
209         [DllImport(Libraries.AppManager, EntryPoint = "app_context_is_terminated")]
210         internal static extern ErrorCode AppContextIsTerminated(IntPtr handle, out bool terminated);
211         //int app_context_is_terminated (app_context_h app_context, bool *terminated);
212
213         [DllImport(Libraries.AppManager, EntryPoint = "app_context_is_equal")]
214         internal static extern ErrorCode AppContextIsEqual(IntPtr first, IntPtr second, out bool equal);
215         //int app_context_is_equal (app_context_h lhs, app_context_h rhs, bool *equal);
216
217         [DllImport(Libraries.AppManager, EntryPoint = "app_context_is_sub_app")]
218         internal static extern ErrorCode AppContextIsSubApp(IntPtr handle, out bool is_sub_app);
219         //int app_context_is_sub_app (app_context_h app_context, bool *is_sub_app);
220
221         [DllImport(Libraries.AppManager, EntryPoint = "app_context_clone")]
222         internal static extern ErrorCode AppContextClone(out IntPtr destination, IntPtr source);
223         //int app_context_clone (app_context_h *clone, app_context_h app_context);
224
225         [DllImport(Libraries.AppManager, EntryPoint = "app_info_create")]
226         internal static extern ErrorCode AppInfoCreate(string applicationId, out IntPtr handle);
227         //int app_info_create (const char *app_id, app_info_h *app_info);
228
229         [DllImport(Libraries.AppManager, EntryPoint = "app_info_destroy")]
230         internal static extern ErrorCode AppInfoDestroy(IntPtr handle);
231         //int app_info_destroy (app_info_h app_info);
232
233         [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_app_id")]
234         internal static extern ErrorCode AppInfoGetAppId(IntPtr handle, out string applicationId);
235         //int app_info_get_app_id (app_info_h app_info, char **app_id);
236
237         [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_exec")]
238         internal static extern ErrorCode AppInfoGetExec(IntPtr handle, out string exec);
239         //int app_info_get_exec (app_info_h app_info, char **exec);
240
241         [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_label")]
242         internal static extern ErrorCode AppInfoGetLabel(IntPtr handle, out string label);
243         //int app_info_get_label (app_info_h app_info, char **label);
244
245         [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_localed_label")]
246         internal static extern ErrorCode AppInfoGetLocaledLabel(string applicationId, string locale, out string label);
247         //int app_info_get_localed_label (const char *app_id, const char *locale, char **label);
248
249         [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_icon")]
250         internal static extern ErrorCode AppInfoGetIcon(IntPtr handle, out string path);
251         //int app_info_get_icon (app_info_h app_info, char **path)
252
253         [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_package")]
254         internal static extern ErrorCode AppInfoGetPackage(IntPtr handle, out string package);
255         //int app_info_get_package (app_info_h app_info, char **package)
256
257         [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_type")]
258         internal static extern ErrorCode AppInfoGetType(IntPtr handle, out string type);
259         //int app_info_get_type (app_info_h app_info, char **type)
260
261         [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_app_component_type")]
262         internal static extern ErrorCode AppInfoGetAppComponentType(IntPtr handle, out AppInfoAppComponentType type);
263         //int app_info_get_app_component_type(app_info_h app_info, app_info_app_component_type_e *type)
264
265         [DllImport(Libraries.AppManager, EntryPoint = "app_info_foreach_metadata")]
266         internal static extern ErrorCode AppInfoForeachMetadata(IntPtr handle, AppInfoMetadataCallback callback, IntPtr userData);
267         //int app_info_foreach_metadata(app_info_h app_info, app_info_metadata_cb callback, void *user_data)
268
269         [DllImport(Libraries.AppManager, EntryPoint = "app_info_is_nodisplay")]
270         internal static extern ErrorCode AppInfoIsNodisplay(IntPtr handle, out bool noDisplay);
271         //int app_info_is_nodisplay (app_info_h app_info, bool *nodisplay)
272
273         [DllImport(Libraries.AppManager, EntryPoint = "app_info_is_equal")]
274         internal static extern ErrorCode AppInfoIsEqual(IntPtr first, IntPtr second, out bool equal);
275         //int app_info_is_equal (app_info_h lhs, app_info_h rhs, bool *equal)
276
277         [DllImport(Libraries.AppManager, EntryPoint = "app_info_is_enabled")]
278         internal static extern ErrorCode AppInfoIsEnabled(IntPtr handle, out bool enabled);
279         //int app_info_is_enabled (app_info_h app_info, bool *enabled)
280
281         [DllImport(Libraries.AppManager, EntryPoint = "app_info_is_onboot")]
282         internal static extern ErrorCode AppInfoIsOnBoot(IntPtr handle, out bool onBoot);
283         //int app_info_is_onboot (app_info_h app_info, bool *onboot)
284
285         [DllImport(Libraries.AppManager, EntryPoint = "app_info_is_preload")]
286         internal static extern ErrorCode AppInfoIsPreLoad(IntPtr handle, out bool preLoaded);
287         //int app_info_is_preload (app_info_h app_info, bool *preload)
288
289         [DllImport(Libraries.AppManager, EntryPoint = "app_info_clone")]
290         internal static extern ErrorCode AppInfoClone(out IntPtr destination, IntPtr source);
291         //int app_info_clone(app_info_h * clone, app_info_h app_info)
292
293         [DllImport(Libraries.AppManager, EntryPoint = "app_info_foreach_category")]
294         internal static extern ErrorCode AppInfoForeachCategory(IntPtr handle, AppInfoCategoryCallback callback, IntPtr userData);
295         //int app_info_foreach_category(app_info_h app_info, app_info_category_cb callback, void *user_data)
296
297         [DllImport(Libraries.AppManager, EntryPoint = "app_info_filter_create")]
298         internal static extern ErrorCode AppInfoFilterCreate(out IntPtr handle);
299         //int app_info_filter_create(app_info_filter_h * handle)
300
301         [DllImport(Libraries.AppManager, EntryPoint = "app_info_filter_destroy")]
302         internal static extern ErrorCode AppInfoFilterDestroy(IntPtr handle);
303         //int app_info_filter_destroy(app_info_filter_h handle)
304
305         [DllImport(Libraries.AppManager, EntryPoint = "app_info_filter_add_bool")]
306         internal static extern ErrorCode AppInfoFilterAddBool(IntPtr handle, string property, bool value);
307         //int app_info_filter_add_bool(app_info_filter_h handle, const char *property, const bool value)
308
309         [DllImport(Libraries.AppManager, EntryPoint = "app_info_filter_add_string")]
310         internal static extern ErrorCode AppInfoFilterAddString(IntPtr handle, string property, string value);
311         //int app_info_filter_add_string(app_info_filter_h handle, const char *property, const char *value)
312
313         [DllImport(Libraries.AppManager, EntryPoint = "app_info_filter_count_appinfo")]
314         internal static extern ErrorCode AppInfoFilterCountAppinfo(IntPtr handle, out int count);
315         //int app_info_filter_count_appinfo(app_info_filter_h handle, int *count)
316
317         [DllImport(Libraries.AppManager, EntryPoint = "app_info_filter_foreach_appinfo")]
318         internal static extern ErrorCode AppInfoFilterForeachAppinfo(IntPtr handle, AppInfoFilterCallback callback, IntPtr userData);
319         //int app_info_filter_foreach_appinfo(app_info_filter_h handle, app_info_filter_cb callback, void * user_data)
320
321         [DllImport(Libraries.AppManager, EntryPoint = "app_info_metadata_filter_create")]
322         internal static extern ErrorCode AppInfoMetadataFilterCreate(out IntPtr handle);
323         //int app_info_metadata_filter_create (app_info_metadata_filter_h *handle)
324
325         [DllImport(Libraries.AppManager, EntryPoint = "app_info_metadata_filter_destroy")]
326         internal static extern ErrorCode AppInfoMetadataFilterDestroy(IntPtr handle);
327         //int app_info_metadata_filter_destroy (app_info_metadata_filter_h handle)
328
329         [DllImport(Libraries.AppManager, EntryPoint = "app_info_metadata_filter_add")]
330         internal static extern ErrorCode AppInfoMetadataFilterAdd(IntPtr handle, string key, string value);
331         //int app_info_metadata_filter_add (app_info_metadata_filter_h handle, const char *key, const char *value)
332
333         [DllImport(Libraries.AppManager, EntryPoint = "app_info_metadata_filter_foreach")]
334         internal static extern ErrorCode AppInfoMetadataFilterForeach(IntPtr handle, AppInfoFilterCallback callback, IntPtr userData);
335         //int app_info_metadata_filter_foreach (app_info_metadata_filter_h handle, app_info_filter_cb callback, void *user_data)
336
337         [StructLayout(LayoutKind.Sequential)]
338         internal struct RuaRec
339         {
340             internal int id;
341             internal IntPtr pkgName;
342             internal IntPtr appPath;
343             internal IntPtr arg;
344             internal IntPtr launchTime;
345             internal IntPtr instanceId;
346             internal IntPtr instanceName;
347             internal IntPtr icon;
348             internal IntPtr uri;
349             internal IntPtr image;
350         };
351
352         [DllImport(Libraries.Rua, EntryPoint = "rua_history_get_rec")]
353         internal static extern ErrorCode RuaHistoryGetRecord(out RuaRec record, IntPtr table, int nRows, int nCols, int row);
354         //int rua_history_get_rec(struct rua_rec *rec, char** table, int nrows, int ncols, int row);
355
356         [DllImport(Libraries.Rua, EntryPoint = "rua_history_load_db")]
357         internal static extern ErrorCode RuaHistoryLoadDb(out IntPtr table, out int nRows, out int nCols);
358         //int rua_history_load_db(char*** table, int *nrows, int *ncols);
359
360         [DllImport(Libraries.Rua, EntryPoint = "rua_history_unload_db")]
361         internal static extern ErrorCode RuaHistoryUnLoadDb(ref IntPtr table);
362         //int rua_history_unload_db(char*** table);
363
364         [DllImport(Libraries.Rua, EntryPoint = "rua_delete_history_with_pkgname")]
365         internal static extern ErrorCode RuaDeleteHistoryWithPkgname(string pkgName);
366         //int rua_delete_history_with_pkgname(char* pkg_name);
367
368         [DllImport(Libraries.Rua, EntryPoint = "rua_delete_history_with_apppath")]
369         internal static extern ErrorCode RuaDeleteHistoryWithApppath(string appPath);
370         //int rua_delete_history_with_apppath(char* app_path);
371
372         [DllImport(Libraries.Rua, EntryPoint = "rua_clear_history")]
373         internal static extern ErrorCode RuaClearHistory();
374         //int rua_clear_history(void);
375     }
376 }