summaryrefslogtreecommitdiff
path: root/Tizen.Applications.Common/Interop/Interop.ApplicationManager.cs
blob: 4d45cdbd0c189143ad2ef322df2df4a9d17953ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
/*
 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
 *
 * Licensed under the Apache License, Version 2.0 (the License);
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an AS IS BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

using System;
using System.Runtime.InteropServices;

internal static partial class Interop
{
    internal static partial class ApplicationManager
    {
        internal enum ErrorCode
        {
            None = Tizen.Internals.Errors.ErrorCode.None,
            InvalidParameter = Tizen.Internals.Errors.ErrorCode.InvalidParameter,
            OutOfMemory = Tizen.Internals.Errors.ErrorCode.OutOfMemory,
            IoError = Tizen.Internals.Errors.ErrorCode.IoError,
            NoSuchApp = -0x01110000 | 0x01,
            DbFailed = -0x01110000 | 0x03,
            InvalidPackage = -0x01110000 | 0x04,
            AppNoRunning = -0x01110000 | 0x05,
            RequestFailed = -0x01110000 | 0x06,
            PermissionDenied = Tizen.Internals.Errors.ErrorCode.PermissionDenied
        }

        internal enum AppContextEvent
        {
            Launched = 0,
            Terminated = 1
        }

        internal enum AppManagerEventStatusType
        {
            All = 0x00,
            Enable = 0x01,
            Disable = 0x02
        }

        internal enum AppManagerEventType
        {
            Enable = 0,
            Disable = 1
        }

        internal enum AppManagerEventState
        {
            Started = 0,
            Completed = 1,
            Failed = 2
        }

        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        internal delegate void AppManagerEventCallback(string appType, string appId, AppManagerEventType eventType, AppManagerEventState eventState, IntPtr eventHandle, IntPtr userData);
        //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)


        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        internal delegate void AppManagerAppContextEventCallback(IntPtr handle, AppContextEvent state, IntPtr userData);
        //void(* app_manager_app_context_event_cb)(app_context_h app_context, app_context_event_e event, void *user_data)

        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        internal delegate bool AppManagerAppInfoCallback(IntPtr handle, IntPtr userData);
        //bool(* app_manager_app_info_cb )(app_info_h app_info, void *user_data)

        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        internal delegate bool AppManagerAppContextCallback(IntPtr handle, IntPtr userData);
        //bool(* app_manager_app_context_cb)(app_context_h app_context, void *user_data)

        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        internal delegate bool AppInfoFilterCallback(IntPtr handle, IntPtr userData);
        //bool(* app_info_filter_cb )(app_info_h app_info, void *user_data)

        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        internal delegate bool AppInfoMetadataCallback(string key, string value, IntPtr userData);
        //bool(* app_info_metadata_cb )(const char *metadata_key, const char *metadata_value, void *user_data)

        [DllImport(Libraries.AppManager, EntryPoint = "app_manager_set_app_context_event_cb")]
        internal static extern ErrorCode AppManagerSetAppContextEvent(AppManagerAppContextEventCallback callback, IntPtr userData);
        //int app_manager_set_app_context_event_cb( app_manager_app_context_event_cb callback, void * user_data)

        [DllImport(Libraries.AppManager, EntryPoint = "app_manager_unset_app_context_event_cb")]
        internal static extern void AppManagerUnSetAppContextEvent();
        //void app_manager_unset_app_context_event_cb (void);

        [DllImport(Libraries.AppManager, EntryPoint = "app_manager_foreach_running_app_context")]
        internal static extern ErrorCode AppManagerForeachRunningAppContext(AppManagerAppContextCallback callback, IntPtr userData);
        //int app_manager_foreach_running_app_context(app_manager_app_context_cb callback, void *user_data)

        [DllImport(Libraries.AppManager, EntryPoint = "app_manager_foreach_app_context")]
        internal static extern ErrorCode AppManagerForeachAppContext(AppManagerAppContextCallback callback, IntPtr userData);
        //int app_manager_foreach_app_context(app_manager_app_context_cb callback, void *user_data)

        [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_app_context")]
        internal static extern ErrorCode AppManagerGetAppContext(string applicationId, out IntPtr handle);
        //int app_manager_get_app_context(const char* app_id, app_context_h *app_context);

        [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_app_id")]
        internal static extern ErrorCode AppManagerGetAppId(int processId, out string applicationId);
        //int app_manager_get_app_id (pid_t pid, char **appid);

        [DllImport(Libraries.AppManager, EntryPoint = "app_manager_is_running")]
        internal static extern ErrorCode AppManagerIsRunning(string applicationId, out bool running);
        //int app_manager_is_running (const char *appid, bool *running);

        [DllImport(Libraries.AppManager, EntryPoint = "app_manager_resume_app")]
        internal static extern ErrorCode AppManagerResumeApp(IntPtr handle);
        //int app_manager_resume_app (app_context_h handle);

        [DllImport(Libraries.AppManager, EntryPoint = "app_manager_request_terminate_bg_app")]
        internal static extern ErrorCode AppManagerRequestTerminateBgApp(IntPtr handle);
        //int app_manager_request_terminate_bg_app (app_context_h handle);

        [DllImport(Libraries.AppManager, EntryPoint = "app_manager_foreach_app_info")]
        internal static extern ErrorCode AppManagerForeachAppInfo(AppManagerAppInfoCallback callback, IntPtr userData);
        //int app_manager_foreach_app_info(app_manager_app_info_cb callback, void *user_data)

        [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_app_info")]
        internal static extern ErrorCode AppManagerGetAppInfo(string applicationId, out IntPtr handle);
        //int app_manager_get_app_info(const char * app_id, app_info_h * app_info)

        [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_shared_data_path")]
        internal static extern ErrorCode AppManagerGetSharedDataPath(string applicationId, out string path);
        //int app_manager_get_shared_data_path (const char *appid, char **path);

        [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_shared_resource_path")]
        internal static extern ErrorCode AppManagerGetSharedResourcePath(string applicationId, out string path);
        //int app_manager_get_shared_resource_path (const char *appid, char **path);

        [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_shared_trusted_path")]
        internal static extern ErrorCode AppManagerGetSharedTrustedPath(string applicationId, out string path);
        //int app_manager_get_shared_trusted_path (const char *appid, char **path);

        [DllImport(Libraries.AppManager, EntryPoint = "app_manager_get_external_shared_data_path")]
        internal static extern ErrorCode AppManagerGetExternalSharedDataPath(string applicationId, out string path);
        //int app_manager_get_external_shared_data_path (const char *appid, char **path);

        [DllImport(Libraries.AppManager, EntryPoint = "app_manager_event_create")]
        internal static extern ErrorCode AppManagerEventCreate(out IntPtr handle);
        //int app_manager_event_create (app_manager_event_h *handle);

        [DllImport(Libraries.AppManager, EntryPoint = "app_manager_event_set_status")]
        internal static extern ErrorCode AppManagerEventSetStatus(IntPtr handle, AppManagerEventStatusType statusType);
        //int app_manager_event_set_status (app_manager_event_h handle, int status_type);

        [DllImport(Libraries.AppManager, EntryPoint = "app_manager_set_event_cb")]
        internal static extern ErrorCode AppManagerSetEventCallback(IntPtr handle, AppManagerEventCallback callback, IntPtr userData);
        //int app_manager_set_event_cb (app_manager_event_h handle, app_manager_event_cb callback, void *user_data);

        [DllImport(Libraries.AppManager, EntryPoint = "app_manager_unset_event_cb")]
        internal static extern ErrorCode AppManagerUnSetEventCallback(IntPtr handle);
        //int app_manager_unset_event_cb (app_manager_event_h handle);

        [DllImport(Libraries.AppManager, EntryPoint = "app_manager_event_destroy")]
        internal static extern ErrorCode AppManagerEventDestroy(IntPtr handle);
        //int app_manager_event_destroy (app_manager_event_h handle);

        [DllImport(Libraries.AppManager, EntryPoint = "app_context_destroy")]
        internal static extern ErrorCode AppContextDestroy(IntPtr handle);
        //int app_context_destroy(app_context_h app_context)

        [DllImport(Libraries.AppManager, EntryPoint = "app_context_get_app_id")]
        internal static extern ErrorCode AppContextGetAppId(IntPtr handle, out string applicationId);
        //int app_context_get_app_id(app_context_h app_context, char **app_id)

        [DllImport(Libraries.AppManager, EntryPoint = "app_context_get_pid")]
        internal static extern ErrorCode AppContextGetPid(IntPtr handle, out int processId);
        //int app_context_get_pid (app_context_h app_context, pid_t *pid)

        [DllImport(Libraries.AppManager, EntryPoint = "app_context_get_app_state")]
        internal static extern ErrorCode AppContextGetAppState(IntPtr handle, out int state);
        //int app_context_get_app_state (app_context_h app_context, app_state_e *state)

        [DllImport(Libraries.AppManager, EntryPoint = "app_context_is_terminated")]
        internal static extern ErrorCode AppContextIsTerminated(IntPtr handle, out bool terminated);
        //int app_context_is_terminated (app_context_h app_context, bool *terminated);

        [DllImport(Libraries.AppManager, EntryPoint = "app_context_is_equal")]
        internal static extern ErrorCode AppContextIsEqual(IntPtr first, IntPtr second, out bool equal);
        //int app_context_is_equal (app_context_h lhs, app_context_h rhs, bool *equal);

        [DllImport(Libraries.AppManager, EntryPoint = "app_context_is_sub_app")]
        internal static extern ErrorCode AppContextIsSubApp(IntPtr handle, out bool is_sub_app);
        //int app_context_is_sub_app(app_context_h app_context, bool *is_sub_app);

        [DllImport(Libraries.AppManager, EntryPoint = "app_context_clone")]
        internal static extern ErrorCode AppContextClone(out IntPtr destination, IntPtr source);
        //int app_context_clone (app_context_h *clone, app_context_h app_context);

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_create")]
        internal static extern ErrorCode AppInfoCreate(string applicationId, out IntPtr handle);
        //int app_info_create (const char *app_id, app_info_h *app_info);

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_destroy")]
        internal static extern ErrorCode AppInfoDestroy(IntPtr handle);
        //int app_info_destroy (app_info_h app_info);

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_app_id")]
        internal static extern ErrorCode AppInfoGetAppId(IntPtr handle, out string applicationId);
        //int app_info_get_app_id (app_info_h app_info, char **app_id);

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_exec")]
        internal static extern ErrorCode AppInfoGetExec(IntPtr handle, out string exec);
        //int app_info_get_exec (app_info_h app_info, char **exec);

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_label")]
        internal static extern ErrorCode AppInfoGetLabel(IntPtr handle, out string label);
        //int app_info_get_label (app_info_h app_info, char **label);

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_localed_label")]
        internal static extern ErrorCode AppInfoGetLocaledLabel(string applicationId, string locale, out string label);
        //int app_info_get_localed_label (const char *app_id, const char *locale, char **label);

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_icon")]
        internal static extern ErrorCode AppInfoGetIcon(IntPtr handle, out string path);
        //int app_info_get_icon (app_info_h app_info, char **path)

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_package")]
        internal static extern ErrorCode AppInfoGetPackage(IntPtr handle, out string package);
        //int app_info_get_package (app_info_h app_info, char **package)

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_get_type")]
        internal static extern ErrorCode AppInfoGetType(IntPtr handle, out string type);
        //int app_info_get_type (app_info_h app_info, char **type)

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_foreach_metadata")]
        internal static extern ErrorCode AppInfoForeachMetadata(IntPtr handle, AppInfoMetadataCallback callback, IntPtr userData);
        //int app_info_foreach_metadata(app_info_h app_info, app_info_metadata_cb callback, void *user_data)

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_is_nodisplay")]
        internal static extern ErrorCode AppInfoIsNodisplay(IntPtr handle, out bool noDisplay);
        //int app_info_is_nodisplay (app_info_h app_info, bool *nodisplay)

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_is_equal")]
        internal static extern ErrorCode AppInfoIsEqual(IntPtr first, IntPtr second, out bool equal);
        //int app_info_is_equal (app_info_h lhs, app_info_h rhs, bool *equal)

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_is_enabled")]
        internal static extern ErrorCode AppInfoIsEnabled(IntPtr handle, out bool enabled);
        //int app_info_is_enabled (app_info_h app_info, bool *enabled)

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_is_onboot")]
        internal static extern ErrorCode AppInfoIsOnBoot(IntPtr handle, out bool onBoot);
        //int app_info_is_onboot (app_info_h app_info, bool *onboot)

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_is_preload")]
        internal static extern ErrorCode AppInfoIsPreLoad(IntPtr handle, out bool preLoaded);
        //int app_info_is_preload (app_info_h app_info, bool *preload)

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_clone")]
        internal static extern ErrorCode AppInfoClone(out IntPtr destination, IntPtr source);
        //int app_info_clone(app_info_h * clone, app_info_h app_info)

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_filter_create")]
        internal static extern ErrorCode AppInfoFilterCreate(out IntPtr handle);
        //int app_info_filter_create(app_info_filter_h * handle)

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_filter_destroy")]
        internal static extern ErrorCode AppInfoFilterDestroy(IntPtr handle);
        //int app_info_filter_destroy(app_info_filter_h handle)

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_filter_add_bool")]
        internal static extern ErrorCode AppInfoFilterAddBool(IntPtr handle, string property, bool value);
        //int app_info_filter_add_bool(app_info_filter_h handle, const char *property, const bool value)

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_filter_add_string")]
        internal static extern ErrorCode AppInfoFilterAddString(IntPtr handle, string property, string value);
        //int app_info_filter_add_string(app_info_filter_h handle, const char *property, const char *value)

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_filter_count_appinfo")]
        internal static extern ErrorCode AppInfoFilterCountAppinfo(IntPtr handle, out int count);
        //int app_info_filter_count_appinfo(app_info_filter_h handle, int *count)

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_filter_foreach_appinfo")]
        internal static extern ErrorCode AppInfoFilterForeachAppinfo(IntPtr handle, AppInfoFilterCallback callback, IntPtr userData);
        //int app_info_filter_foreach_appinfo(app_info_filter_h handle, app_info_filter_cb callback, void * user_data)

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_metadata_filter_create")]
        internal static extern ErrorCode AppInfoMetadataFilterCreate(out IntPtr handle);
        //int app_info_metadata_filter_create (app_info_metadata_filter_h *handle)

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_metadata_filter_destroy")]
        internal static extern ErrorCode AppInfoMetadataFilterDestroy(IntPtr handle);
        //int app_info_metadata_filter_destroy (app_info_metadata_filter_h handle)

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_metadata_filter_add")]
        internal static extern ErrorCode AppInfoMetadataFilterAdd(IntPtr handle, string key, string value);
        //int app_info_metadata_filter_add (app_info_metadata_filter_h handle, const char *key, const char *value)

        [DllImport(Libraries.AppManager, EntryPoint = "app_info_metadata_filter_foreach")]
        internal static extern ErrorCode AppInfoMetadataFilterForeach(IntPtr handle, AppInfoFilterCallback callback, IntPtr userData);
        //int app_info_metadata_filter_foreach (app_info_metadata_filter_h handle, app_info_filter_cb callback, void *user_data)
    }
}