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