2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
18 using System.Runtime.InteropServices;
20 using Tizen.Internals;
22 internal static partial class Interop
24 internal static partial class ApplicationManager
26 internal enum ErrorCode
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
40 internal enum AppContextEvent
46 internal enum AppManagerEventStatusType
53 internal enum AppManagerEventType
59 internal enum AppManagerEventState
66 internal enum AppInfoAppComponentType
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)
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)
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)
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)
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)
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)
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)
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)
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);
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)
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)
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);
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);
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);
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);
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);
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)
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)
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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)
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)
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)
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)
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)
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
347 [NativeStruct("struct rua_rec", Include="rua.h", PkgConfig="rua")]
348 [StructLayout(LayoutKind.Sequential)]
349 internal struct RuaRec
352 internal IntPtr pkgName;
353 internal IntPtr appPath;
355 internal IntPtr launchTime;
356 internal IntPtr instanceId;
357 internal IntPtr instanceName;
358 internal IntPtr icon;
360 internal IntPtr image;
361 internal IntPtr compId;
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);
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);
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);
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);
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);
384 [DllImport(Libraries.Rua, EntryPoint = "rua_clear_history")]
385 internal static extern ErrorCode RuaClearHistory();
386 //int rua_clear_history(void);