Release 4.0.0-preview1-00051
[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         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
65         internal delegate void AppManagerEventCallback(string appType, string appId, AppManagerEventType eventType, AppManagerEventState eventState, IntPtr eventHandle, IntPtr userData);
66         //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)
67
68
69         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
70         internal delegate void AppManagerAppContextEventCallback(IntPtr handle, AppContextEvent state, IntPtr userData);
71         //void(* app_manager_app_context_event_cb)(app_context_h app_context, app_context_event_e event, void *user_data)
72
73         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
74         internal delegate bool AppManagerAppInfoCallback(IntPtr handle, IntPtr userData);
75         //bool(* app_manager_app_info_cb )(app_info_h app_info, void *user_data)
76
77         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
78         internal delegate bool AppManagerAppContextCallback(IntPtr handle, IntPtr userData);
79         //bool(* app_manager_app_context_cb)(app_context_h app_context, void *user_data)
80
81         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
82         internal delegate bool AppInfoFilterCallback(IntPtr handle, IntPtr userData);
83         //bool(* app_info_filter_cb )(app_info_h app_info, void *user_data)
84
85         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
86         internal delegate bool AppInfoMetadataCallback(string key, string value, IntPtr userData);
87         //bool(* app_info_metadata_cb )(const char *metadata_key, const char *metadata_value, void *user_data)
88
89         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_set_app_context_event_cb")]
90         internal static extern ErrorCode AppManagerSetAppContextEvent(AppManagerAppContextEventCallback callback, IntPtr userData);
91         //int app_manager_set_app_context_event_cb( app_manager_app_context_event_cb callback, void * user_data)
92
93         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_unset_app_context_event_cb")]
94         internal static extern void AppManagerUnSetAppContextEvent();
95         //void app_manager_unset_app_context_event_cb (void);
96
97         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_foreach_running_app_context")]
98         internal static extern ErrorCode AppManagerForeachRunningAppContext(AppManagerAppContextCallback callback, IntPtr userData);
99         //int app_manager_foreach_running_app_context(app_manager_app_context_cb callback, void *user_data)
100
101         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_foreach_app_context")]
102         internal static extern ErrorCode AppManagerForeachAppContext(AppManagerAppContextCallback callback, IntPtr userData);
103         //int app_manager_foreach_app_context(app_manager_app_context_cb callback, void *user_data)
104
105         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_app_context")]
106         internal static extern ErrorCode AppManagerGetAppContext(string applicationId, out IntPtr handle);
107         //int app_manager_get_app_context(const char* app_id, app_context_h *app_context);
108
109         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_app_id")]
110         internal static extern ErrorCode AppManagerGetAppId(int processId, out string applicationId);
111         //int app_manager_get_app_id (pid_t pid, char **appid);
112
113         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_is_running")]
114         internal static extern ErrorCode AppManagerIsRunning(string applicationId, out bool running);
115         //int app_manager_is_running (const char *appid, bool *running);
116
117         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_resume_app")]
118         internal static extern ErrorCode AppManagerResumeApp(IntPtr handle);
119         //int app_manager_resume_app (app_context_h handle);
120
121         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_request_terminate_bg_app")]
122         internal static extern ErrorCode AppManagerRequestTerminateBgApp(IntPtr handle);
123         //int app_manager_request_terminate_bg_app (app_context_h handle);
124
125         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_foreach_app_info")]
126         internal static extern ErrorCode AppManagerForeachAppInfo(AppManagerAppInfoCallback callback, IntPtr userData);
127         //int app_manager_foreach_app_info(app_manager_app_info_cb callback, void *user_data)
128
129         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_app_info")]
130         internal static extern ErrorCode AppManagerGetAppInfo(string applicationId, out IntPtr handle);
131         //int app_manager_get_app_info(const char * app_id, app_info_h * app_info)
132
133         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_shared_data_path")]
134         internal static extern ErrorCode AppManagerGetSharedDataPath(string applicationId, out string path);
135         //int app_manager_get_shared_data_path (const char *appid, char **path);
136
137         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_shared_resource_path")]
138         internal static extern ErrorCode AppManagerGetSharedResourcePath(string applicationId, out string path);
139         //int app_manager_get_shared_resource_path (const char *appid, char **path);
140
141         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_shared_trusted_path")]
142         internal static extern ErrorCode AppManagerGetSharedTrustedPath(string applicationId, out string path);
143         //int app_manager_get_shared_trusted_path (const char *appid, char **path);
144
145         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_external_shared_data_path")]
146         internal static extern ErrorCode AppManagerGetExternalSharedDataPath(string applicationId, out string path);
147         //int app_manager_get_external_shared_data_path (const char *appid, char **path);
148
149         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_event_create")]
150         internal static extern ErrorCode AppManagerEventCreate(out IntPtr handle);
151         //int app_manager_event_create (app_manager_event_h *handle);
152
153         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_event_set_status")]
154         internal static extern ErrorCode AppManagerEventSetStatus(IntPtr handle, AppManagerEventStatusType statusType);
155         //int app_manager_event_set_status (app_manager_event_h handle, int status_type);
156
157         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_set_event_cb")]
158         internal static extern ErrorCode AppManagerSetEventCallback(IntPtr handle, AppManagerEventCallback callback, IntPtr userData);
159         //int app_manager_set_event_cb (app_manager_event_h handle, app_manager_event_cb callback, void *user_data);
160
161         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_unset_event_cb")]
162         internal static extern ErrorCode AppManagerUnSetEventCallback(IntPtr handle);
163         //int app_manager_unset_event_cb (app_manager_event_h handle);
164
165         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_event_destroy")]
166         internal static extern ErrorCode AppManagerEventDestroy(IntPtr handle);
167         //int app_manager_event_destroy (app_manager_event_h handle);
168
169         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_terminate_app")]
170         internal static extern ErrorCode AppManagerTerminateApp(IntPtr handle);
171         //int app_manager_terminate_app (app_context_h app_context);
172
173         [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_app_context_by_instance_id")]
174         internal static extern ErrorCode AppManagerGetAppContextByInstanceId(string applicationId, string instanceId, out IntPtr handle);
175         //int app_manager_get_app_context_by_instance_id (const char *app_id, const char *instance_id, app_context_h *app_context);
176
177         [DllImport(Libraries.AppManager, EntryPoint = "app_context_destroy")]
178         internal static extern ErrorCode AppContextDestroy(IntPtr handle);
179         //int app_context_destroy(app_context_h app_context)
180
181         [DllImport(Libraries.AppManager, EntryPoint = "app_context_get_app_id")]
182         internal static extern ErrorCode AppContextGetAppId(IntPtr handle, out string applicationId);
183         //int app_context_get_app_id(app_context_h app_context, char **app_id)
184
185         [DllImport(Libraries.AppManager, EntryPoint = "app_context_get_package_id")]
186         internal static extern ErrorCode AppContextGetPackageId(IntPtr handle, out string packageId);
187         //int app_context_get_package_id(app_context_h app_context, char **package_id)
188
189         [DllImport(Libraries.AppManager, EntryPoint = "app_context_get_pid")]
190         internal static extern ErrorCode AppContextGetPid(IntPtr handle, out int processId);
191         //int app_context_get_pid (app_context_h app_context, pid_t *pid)
192
193         [DllImport(Libraries.AppManager, EntryPoint = "app_context_get_app_state")]
194         internal static extern ErrorCode AppContextGetAppState(IntPtr handle, out int state);
195         //int app_context_get_app_state (app_context_h app_context, app_state_e *state)
196
197         [DllImport(Libraries.AppManager, EntryPoint = "app_context_is_terminated")]
198         internal static extern ErrorCode AppContextIsTerminated(IntPtr handle, out bool terminated);
199         //int app_context_is_terminated (app_context_h app_context, bool *terminated);
200
201         [DllImport(Libraries.AppManager, EntryPoint = "app_context_is_equal")]
202         internal static extern ErrorCode AppContextIsEqual(IntPtr first, IntPtr second, out bool equal);
203         //int app_context_is_equal (app_context_h lhs, app_context_h rhs, bool *equal);
204
205         [DllImport(Libraries.AppManager, EntryPoint = "app_context_is_sub_app")]
206         internal static extern ErrorCode AppContextIsSubApp(IntPtr handle, out bool is_sub_app);
207         //int app_context_is_sub_app (app_context_h app_context, bool *is_sub_app);
208
209         [DllImport(Libraries.AppManager, EntryPoint = "app_context_clone")]
210         internal static extern ErrorCode AppContextClone(out IntPtr destination, IntPtr source);
211         //int app_context_clone (app_context_h *clone, app_context_h app_context);
212
213         [DllImport(Libraries.AppManager, EntryPoint = "app_info_create")]
214         internal static extern ErrorCode AppInfoCreate(string applicationId, out IntPtr handle);
215         //int app_info_create (const char *app_id, app_info_h *app_info);
216
217         [DllImport(Libraries.AppManager, EntryPoint = "app_info_destroy")]
218         internal static extern ErrorCode AppInfoDestroy(IntPtr handle);
219         //int app_info_destroy (app_info_h app_info);
220
221         [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_app_id")]
222         internal static extern ErrorCode AppInfoGetAppId(IntPtr handle, out string applicationId);
223         //int app_info_get_app_id (app_info_h app_info, char **app_id);
224
225         [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_exec")]
226         internal static extern ErrorCode AppInfoGetExec(IntPtr handle, out string exec);
227         //int app_info_get_exec (app_info_h app_info, char **exec);
228
229         [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_label")]
230         internal static extern ErrorCode AppInfoGetLabel(IntPtr handle, out string label);
231         //int app_info_get_label (app_info_h app_info, char **label);
232
233         [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_localed_label")]
234         internal static extern ErrorCode AppInfoGetLocaledLabel(string applicationId, string locale, out string label);
235         //int app_info_get_localed_label (const char *app_id, const char *locale, char **label);
236
237         [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_icon")]
238         internal static extern ErrorCode AppInfoGetIcon(IntPtr handle, out string path);
239         //int app_info_get_icon (app_info_h app_info, char **path)
240
241         [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_package")]
242         internal static extern ErrorCode AppInfoGetPackage(IntPtr handle, out string package);
243         //int app_info_get_package (app_info_h app_info, char **package)
244
245         [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_type")]
246         internal static extern ErrorCode AppInfoGetType(IntPtr handle, out string type);
247         //int app_info_get_type (app_info_h app_info, char **type)
248
249         [DllImport(Libraries.AppManager, EntryPoint = "app_info_foreach_metadata")]
250         internal static extern ErrorCode AppInfoForeachMetadata(IntPtr handle, AppInfoMetadataCallback callback, IntPtr userData);
251         //int app_info_foreach_metadata(app_info_h app_info, app_info_metadata_cb callback, void *user_data)
252
253         [DllImport(Libraries.AppManager, EntryPoint = "app_info_is_nodisplay")]
254         internal static extern ErrorCode AppInfoIsNodisplay(IntPtr handle, out bool noDisplay);
255         //int app_info_is_nodisplay (app_info_h app_info, bool *nodisplay)
256
257         [DllImport(Libraries.AppManager, EntryPoint = "app_info_is_equal")]
258         internal static extern ErrorCode AppInfoIsEqual(IntPtr first, IntPtr second, out bool equal);
259         //int app_info_is_equal (app_info_h lhs, app_info_h rhs, bool *equal)
260
261         [DllImport(Libraries.AppManager, EntryPoint = "app_info_is_enabled")]
262         internal static extern ErrorCode AppInfoIsEnabled(IntPtr handle, out bool enabled);
263         //int app_info_is_enabled (app_info_h app_info, bool *enabled)
264
265         [DllImport(Libraries.AppManager, EntryPoint = "app_info_is_onboot")]
266         internal static extern ErrorCode AppInfoIsOnBoot(IntPtr handle, out bool onBoot);
267         //int app_info_is_onboot (app_info_h app_info, bool *onboot)
268
269         [DllImport(Libraries.AppManager, EntryPoint = "app_info_is_preload")]
270         internal static extern ErrorCode AppInfoIsPreLoad(IntPtr handle, out bool preLoaded);
271         //int app_info_is_preload (app_info_h app_info, bool *preload)
272
273         [DllImport(Libraries.AppManager, EntryPoint = "app_info_clone")]
274         internal static extern ErrorCode AppInfoClone(out IntPtr destination, IntPtr source);
275         //int app_info_clone(app_info_h * clone, app_info_h app_info)
276
277         [DllImport(Libraries.AppManager, EntryPoint = "app_info_filter_create")]
278         internal static extern ErrorCode AppInfoFilterCreate(out IntPtr handle);
279         //int app_info_filter_create(app_info_filter_h * handle)
280
281         [DllImport(Libraries.AppManager, EntryPoint = "app_info_filter_destroy")]
282         internal static extern ErrorCode AppInfoFilterDestroy(IntPtr handle);
283         //int app_info_filter_destroy(app_info_filter_h handle)
284
285         [DllImport(Libraries.AppManager, EntryPoint = "app_info_filter_add_bool")]
286         internal static extern ErrorCode AppInfoFilterAddBool(IntPtr handle, string property, bool value);
287         //int app_info_filter_add_bool(app_info_filter_h handle, const char *property, const bool value)
288
289         [DllImport(Libraries.AppManager, EntryPoint = "app_info_filter_add_string")]
290         internal static extern ErrorCode AppInfoFilterAddString(IntPtr handle, string property, string value);
291         //int app_info_filter_add_string(app_info_filter_h handle, const char *property, const char *value)
292
293         [DllImport(Libraries.AppManager, EntryPoint = "app_info_filter_count_appinfo")]
294         internal static extern ErrorCode AppInfoFilterCountAppinfo(IntPtr handle, out int count);
295         //int app_info_filter_count_appinfo(app_info_filter_h handle, int *count)
296
297         [DllImport(Libraries.AppManager, EntryPoint = "app_info_filter_foreach_appinfo")]
298         internal static extern ErrorCode AppInfoFilterForeachAppinfo(IntPtr handle, AppInfoFilterCallback callback, IntPtr userData);
299         //int app_info_filter_foreach_appinfo(app_info_filter_h handle, app_info_filter_cb callback, void * user_data)
300
301         [DllImport(Libraries.AppManager, EntryPoint = "app_info_metadata_filter_create")]
302         internal static extern ErrorCode AppInfoMetadataFilterCreate(out IntPtr handle);
303         //int app_info_metadata_filter_create (app_info_metadata_filter_h *handle)
304
305         [DllImport(Libraries.AppManager, EntryPoint = "app_info_metadata_filter_destroy")]
306         internal static extern ErrorCode AppInfoMetadataFilterDestroy(IntPtr handle);
307         //int app_info_metadata_filter_destroy (app_info_metadata_filter_h handle)
308
309         [DllImport(Libraries.AppManager, EntryPoint = "app_info_metadata_filter_add")]
310         internal static extern ErrorCode AppInfoMetadataFilterAdd(IntPtr handle, string key, string value);
311         //int app_info_metadata_filter_add (app_info_metadata_filter_h handle, const char *key, const char *value)
312
313         [DllImport(Libraries.AppManager, EntryPoint = "app_info_metadata_filter_foreach")]
314         internal static extern ErrorCode AppInfoMetadataFilterForeach(IntPtr handle, AppInfoFilterCallback callback, IntPtr userData);
315         //int app_info_metadata_filter_foreach (app_info_metadata_filter_h handle, app_info_filter_cb callback, void *user_data)
316
317         [StructLayout(LayoutKind.Sequential)]
318         internal struct RuaRec
319         {
320             internal int id;
321             internal IntPtr pkgName;
322             internal IntPtr appPath;
323             internal IntPtr arg;
324             internal IntPtr launchTime;
325             internal IntPtr instanceId;
326             internal IntPtr instanceName;
327             internal IntPtr icon;
328             internal IntPtr uri;
329             internal IntPtr image;
330         };
331
332         [DllImport(Libraries.Rua, EntryPoint = "rua_history_get_rec")]
333         internal static extern ErrorCode RuaHistoryGetRecord(out RuaRec record, IntPtr table, int nRows, int nCols, int row);
334         //int rua_history_get_rec(struct rua_rec *rec, char** table, int nrows, int ncols, int row);
335
336         [DllImport(Libraries.Rua, EntryPoint = "rua_history_load_db")]
337         internal static extern ErrorCode RuaHistoryLoadDb(out IntPtr table, out int nRows, out int nCols);
338         //int rua_history_load_db(char*** table, int *nrows, int *ncols);
339
340         [DllImport(Libraries.Rua, EntryPoint = "rua_history_unload_db")]
341         internal static extern ErrorCode RuaHistoryUnLoadDb(ref IntPtr table);
342         //int rua_history_unload_db(char*** table);
343
344         [DllImport(Libraries.Rua, EntryPoint = "rua_delete_history_with_pkgname")]
345         internal static extern ErrorCode RuaDeleteHistoryWithPkgname(string pkgName);
346         //int rua_delete_history_with_pkgname(char* pkg_name);
347
348         [DllImport(Libraries.Rua, EntryPoint = "rua_delete_history_with_apppath")]
349         internal static extern ErrorCode RuaDeleteHistoryWithApppath(string appPath);
350         //int rua_delete_history_with_apppath(char* app_path);
351
352         [DllImport(Libraries.Rua, EntryPoint = "rua_clear_history")]
353         internal static extern ErrorCode RuaClearHistory();
354         //int rua_clear_history(void);
355     }
356 }