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 internal static partial class Interop
22 internal static partial class ApplicationManager
24 internal enum ErrorCode
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
38 internal enum AppContextEvent
44 internal enum AppManagerEventStatusType
51 internal enum AppManagerEventType
57 internal enum AppManagerEventState
64 internal enum AppInfoAppComponentType
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)
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)
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)
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)
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)
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)
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)
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)
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);
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)
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)
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);
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);
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);
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);
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);
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)
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)
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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)
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)
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)
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)
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)
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
337 [StructLayout(LayoutKind.Sequential)]
338 internal struct RuaRec
341 internal IntPtr pkgName;
342 internal IntPtr appPath;
344 internal IntPtr launchTime;
345 internal IntPtr instanceId;
346 internal IntPtr instanceName;
347 internal IntPtr icon;
349 internal IntPtr image;
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);
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);
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);
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);
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);
372 [DllImport(Libraries.Rua, EntryPoint = "rua_clear_history")]
373 internal static extern ErrorCode RuaClearHistory();
374 //int rua_clear_history(void);