sync with tizen_2.0
[platform/framework/native/appfw.git] / inc / FAppAppControl.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 /**
19  * @file                FAppAppControl.h
20  * @brief               This is the header file for the %AppControl class.
21  *
22  * This header file contains the declarations of the %AppControl class.
23  */
24
25 #ifndef _FAPP_APPCONTROL_H_
26 #define _FAPP_APPCONTROL_H_
27
28 #include <FBaseObject.h>
29 #include <FBaseString.h>
30 #include <FAppTypes.h>
31
32 namespace Tizen { namespace Base { namespace Collection {
33 class IList;
34 class IMap;
35 }}}
36
37 namespace Tizen { namespace App
38 {
39
40 class IAppControlEventListener;
41 class IAppControlResponseListener;
42
43 /**
44 * @if OSPDEPREC
45 * The Contact %AppControl ID. @n
46 *
47 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_contact.htm">Contact Application Control</a>.
48 *
49 * @brief        <i> [Deprecated] </i>
50 * @deprecated This variable is provided only for backward compatibility and will be deleted in the near future.
51 *                               Instead of this variable, use the literal, L"tizen.contacts".
52 * @since        2.0
53 * @endif
54 */
55 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_CONTACT;
56
57 /**
58 * @if OSPDEPREC
59 * The Calendar %AppControl ID. @n
60 *
61 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_calendar.htm">Calendar Application Control</a>.
62 *
63 * @brief        <i> [Deprecated] </i>
64 * @deprecated This variable is provided only for backward compatibility and will be deleted in the near future.
65 *                               Instead of this variable, use the literal, L"tizen.calendar" or L"tizen.events".
66 * @since        2.0
67 * @endif
68 */
69 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_CALENDAR;
70
71 /**
72 * @if OSPDEPREC
73 * The Todo %AppControl ID.
74 *
75 * @brief        <i> [Deprecated] </i>
76 * @deprecated This application control provider name is deprecated.
77 * @b OPERATION_PICK:
78 * @since        2.0
79 *
80 * @remarks      This constant is currently not available.
81 * @endif
82 */
83 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_TODO;
84
85 /**
86 * @if OSPDEPREC
87 * The Dial %AppControl ID. @n
88 *
89 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_call.htm">Call Application Control</a>.
90 *
91 * @brief        <i> [Deprecated] </i>
92 * @deprecated This variable is provided only for backward compatibility and will be deleted in the near future.
93 *                               Instead of this variable, use the literal, L"tizen.phone" with operation L"http://tizen.org/appcontrol/operation/dial".
94 * @since        2.0
95 * @endif
96 */
97 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_DIAL;
98
99 /**
100 * @if OSPDEPREC
101 * The Call %AppControl ID. @n
102 * Makes a phone call. @n
103 *
104 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_call.htm">Call Application Control</a>.
105 *
106 * @brief        <i> [Deprecated] </i>
107 * @deprecated This variable is provided only for backward compatibility and will be deleted in the near future.
108 *                               Instead of this variable, use the literal, L"tizen.phone" with operation L"http://tizen.org/appcontrol/operation/call".
109 * @since        2.0
110 * @privilege    %http://tizen.org/privilege/systeminfo
111 *
112 * @remarks Privilege is required to use this application control.
113 * @endif
114 */
115 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_CALL;
116
117
118 /**
119 * @if OSPDEPREC
120 * The Message %AppControl ID. @n
121 *
122 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_message.htm">Message Application Control</a>.
123 *
124 * @brief        <i> [Deprecated] </i>
125 * @deprecated This variable is provided only for backward compatibility and will be deleted in the near future.
126 *                               Instead of this variable, use the literal, L"tizen.messages".
127 * @since        2.0
128 *
129 * @remarks An MMS attachment may contain either an image, audio, video, vCard, vCalendar or a combination of an image, audio, vCard, and vCalendar files. @n
130 * MMS attachments cannot contain a video in combination with an image or an audio file.
131 * @endif
132 */
133 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_MESSAGE;
134
135 /**
136 * @if OSPDEPREC
137 * The Email %AppControl ID. @n
138 *
139 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_email.htm">Email Application Control</a>.
140 *
141 * @brief        <i> [Deprecated] </i>
142 * @deprecated This variable is provided only for backward compatibility and will be deleted in the near future.
143 *                               Instead of this variable, use the literal, L"tizen.email".
144 * @since        2.0
145 * @endif
146 */
147 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_EMAIL;
148
149 /**
150 * @if OSPDEPREC
151 * The Media %AppControl ID. @n
152 *
153 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_media.htm">Media Application Control</a>.
154 *
155 * @brief        <i> [Deprecated] </i>
156 * @deprecated This variable is provided only for backward compatibility and will be deleted in the near future.
157 *                               Instead of this variable, use the literal, L"tizen.filemanager" or L"tizen.gallery".
158 * @since        2.0
159 * @endif
160 */
161 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_MEDIA;
162
163 /**
164 * @if OSPDEPREC
165 * The Image %AppControl ID. @n
166 *
167 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_image.htm">Image Application Control</a>.
168 *
169 * @brief        <i> [Deprecated] </i>
170 * @deprecated This variable is provided only for backward compatibility and will be deleted in the near future.
171 *                               Instead of this variable, use the literal, L"tizen.imageviewer".
172 * @since        2.0
173 * @endif
174 */
175 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_IMAGE;
176
177 /**
178 * @if OSPDEPREC
179 * The Video %AppControl ID. @n
180 *
181 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_video.htm">Video Application Control</a>.
182 *
183 * @brief        <i> [Deprecated] </i>
184 * @deprecated This variable is provided only for backward compatibility and will be deleted in the near future.
185 *                               Instead of this variable, use the literal, L"tizen.videoplayer".
186 * @since        2.0
187 * @endif
188 */
189 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_VIDEO;
190
191 /**
192 * @if OSPDEPREC
193 * The Audio %AppControl ID. @n
194 *
195 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_audio.htm">Audio Application Control</a>.
196 *
197 * @brief        <i> [Deprecated] </i>
198 * @deprecated This variable is provided only for backward compatibility and will be deleted in the near future.
199 *                               Instead of this variable, use the literal, L"tizen.musicplayer".
200 * @since        2.0
201 * @endif
202 */
203 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_AUDIO;
204
205 /**
206 * @if OSPDEPREC
207 * The Browser %AppControl ID. @n
208 *
209 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_browser.htm">Browser Application Control</a>.
210 *
211 * @brief        <i> [Deprecated] </i>
212 * @deprecated This variable is provided only for backward compatibility and will be deleted in the near future.
213 *                               Instead of this variable, use the literal, L"tizen.internet".
214 * @since        2.0
215 * @privilege    %http://tizen.org/privilege/web.service
216 * @endif
217 */
218 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_BROWSER;
219
220 /**
221 * @if OSPDEPREC
222 * The Camera %AppControl ID. @n
223 *
224 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_camera.htm">Camera Application Control</a>.
225 *
226 * @brief        <i> [Deprecated] </i>
227 * @deprecated This variable is provided only for backward compatibility and will be deleted in the near future.
228 *                               Instead of this variable, use the literal, L"tizen.camera".
229 * @since        2.0
230 * @endif
231 */
232 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_CAMERA;
233
234 /**
235 * @if OSPDEPREC
236 * The Bluetooth %AppControl ID. @n
237 *
238 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_bluetooth.htm">Bluetooth Application Control</a>.
239 *
240 * @brief        <i> [Deprecated] </i>
241 * @deprecated This variable is provided only for backward compatibility and will be deleted in the near future.
242 *                               Instead of this variable, use the literal, L"tizen.bluetooth".
243 * @since        2.0
244 * @endif
245 */
246 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_BT;
247
248 /**
249 * @if OSPDEPREC
250 * The Setting %AppControl ID. @n
251 *
252 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_settings.htm">Settings Application Control</a>.
253 *
254 * @brief        <i> [Deprecated] </i>
255 * @deprecated This variable is provided only for backward compatibility and will be deleted in the near future.
256 *                               Instead of this variable, use the literal, L"tizen.settings".
257 * @since        2.0
258 * @endif
259 */
260 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_SETTINGS;
261
262 /**
263 * @if OSPDEPREC
264 * The Contact %AppControl provider ID. @n
265 *
266 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_contact.htm">Contact Application Control</a>.
267 *
268 * @brief        <i> [Deprecated] </i>
269 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
270 *                               Instead of this variable, use the literal, L"tizen.contacts".
271 * @since        2.0
272 * @endif
273 */
274 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_PROVIDER_CONTACT;
275
276 /**
277 * @if OSPDEPREC
278 * The Certificate Manager %AppControl provider ID. @n
279 *
280 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_certmgr.htm">Certificate Manager Application Control</a>.
281 *
282 * @brief        <i> [Deprecated] </i>
283 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
284 *                               Instead of this variable, use the literal, L"tizen.certificatemanager".
285 * @since                2.0
286 * @endif
287 */
288 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_PROVIDER_CERTIFICATE_MANAGER;
289
290 /**
291 * @if OSPDEPREC
292 * The Calendar %AppControl provider ID. @n
293 *
294 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_calendar.htm">Calendar Application Control</a>.
295 *
296 * @brief        <i> [Deprecated] </i>
297 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
298 *                               Instead of this variable, use the literal, L"tizen.calendar" or L"tizen.events".
299 * @since        2.0
300 * @endif
301 */
302 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_PROVIDER_CALENDAR;
303
304 /**
305 * @if OSPDEPREC
306 * The Call %AppControl provider ID. @n
307 * Makes a phone call. @n
308 *
309 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_call.htm">Call Application Control</a>.
310 *
311 * @brief        <i> [Deprecated] </i>
312 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
313 *                               Instead of this variable, use the literal, L"tizen.phone".
314 * @since                        2.0
315 * @privilege    %http://tizen.org/privilege/systeminfo
316 *
317 * @remarks Privilege is required to use this application control.
318 * @endif
319 */
320 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_PROVIDER_CALL;
321
322 /**
323 * @if OSPDEPREC
324 * The Message %AppControl provider ID. @n
325 *
326 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_message.htm">Message Application Control</a>.
327 *
328 * @brief        <i> [Deprecated] </i>
329 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
330 *                               Instead of this variable, use the literal, L"tizen.messages".
331 * @since        2.0
332 *
333 * @remarks      An MMS attachment may contain either an image, audio, video, vCard, vCalendar or a combination of an image, audio, vCard, and vCalendar files. @n
334 *           MMS attachments cannot contain a video in combination with an image or an audio file. @n
335 *                       From Tizen 2.0, the CC and BCC recipients are merged with the TO recipients when launching the MMS app control.
336 * @endif
337 */
338 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_PROVIDER_MESSAGE;
339
340 /**
341 * @if OSPDEPREC
342 * The Email %AppControl provider ID. @n
343 *
344 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_email.htm">Email Application Control</a>.
345 *
346 * @brief        <i> [Deprecated] </i>
347 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
348 *                               Instead of this variable, use the literal, L"tizen.email".
349 * @since        2.0
350 * @endif
351 */
352 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_PROVIDER_EMAIL;
353
354 /**
355 * @if OSPDEPREC
356 * The Media %AppControl provider ID. @n
357 *
358 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_media.htm">Media Application Control</a>.
359 *
360 * @brief        <i> [Deprecated] </i>
361 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
362 *                               Instead of this variable, use the literal, L"tizen.filemanager" or L"tizen.gallery".
363 * @since        2.0
364 * @endif
365 */
366 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_PROVIDER_MEDIA;
367
368 /**
369 * @if OSPDEPREC
370 * The Image %AppControl provider ID. @n
371 *
372 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_image.htm">Image Application Control</a>.
373 *
374 * @brief        <i> [Deprecated] </i>
375 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
376 *                               Instead of this variable, use the literal, L"tizen.imageviewer".
377 * @since        2.0
378 * @endif
379 */
380 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_PROVIDER_IMAGE;
381
382 /*
383 * @if OSPDEPREC
384 * The ImageCrop application control provider ID @n
385 *
386 * @brief        <i> [Deprecated] </i>
387 * @deprecated   This variable is provided only for backward compatibility and will be deleted in a future release.
388 *                               use the literal, L"tizen.imageeditor", instead of this variable.
389 * @since        2.0
390 * @endif
391 */
392 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_PROVIDER_IMAGE_EDITOR;
393
394 /**
395 * @if OSPDEPREC
396 * The Video %AppControl provider ID. @n
397 *
398 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_video.htm">Video Application Control</a>.
399 *
400 * @brief        <i> [Deprecated] </i>
401 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
402 *                               Instead of this variable, use the literal, L"tizen.videoplayer".
403 * @since        2.0
404 * @endif
405 */
406 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_PROVIDER_VIDEO;
407
408 /**
409 * @if OSPDEPREC
410 * The Audio %AppControl provider ID. @n
411 *
412 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_audio.htm">Audio Application Control</a>.
413 *
414 * @brief        <i> [Deprecated] </i>
415 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
416 *                               Instead of this variable, use the literal, L"tizen.musicplayer".
417 * @since        2.0
418 * @endif
419 */
420 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_PROVIDER_AUDIO;
421
422 /**
423 * @if OSPDEPREC
424 * The Browser %AppControl provider ID. @n
425 *
426 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_browser.htm">Browser Application Control</a>.
427 *
428 * @brief        <i> [Deprecated] </i>
429 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
430 *                               Instead of this variable, use the literal, L"tizen.internet".
431 * @since                        2.0
432 * @privilege    %http://tizen.org/privilege/web.service
433 *
434 * @remarks Privilege is required to use this application control.
435 * @endif
436 */
437 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_PROVIDER_BROWSER;
438
439 /**
440 * @if OSPDEPREC
441 * The Camera %AppControl provider ID. @n
442 *
443 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_camera.htm">Camera Application Control</a>.
444 *
445 * @brief        <i> [Deprecated] </i>
446 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
447 *                               Instead of this variable, use the literal, L"tizen.camera".
448 * @since        2.0
449 * @endif
450 */
451 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_PROVIDER_CAMERA;
452
453 /**
454 * @if OSPDEPREC
455 * The Bluetooth %AppControl provider ID. @n
456 *
457 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_bluetooth.htm">Bluetooth Application Control</a>.
458 *
459 * @brief        <i> [Deprecated] </i>
460 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
461 *                               Instead of this variable, use the literal, L"tizen.bluetooth".
462 * @since        2.0
463 *
464 * @remarks Bluetooth functionality cannot be tested on the Emulator.
465 * @endif
466 */
467 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_PROVIDER_BLUETOOTH;
468
469 /**
470 * @if OSPDEPREC
471 * The Setting %AppControl provider ID. @n
472 *
473 * For more information, see <a href="../org.tizen.native.appprogramming/html/guide/app/appcontrol_settings.htm">Settings Application Control</a>.
474 *
475 * @brief        <i> [Deprecated] </i>
476 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
477 *                               Instead of this variable, use the literal, L"tizen.settings".
478 * @since    2.0
479 * @endif
480 */
481 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_PROVIDER_SETTINGS;
482
483 //
484 // The AllShare application control provider ID. @n
485 //
486 // @since               2.0
487 // @visibility  internal
488 // @privlevel   user
489 // @privilege    ALLSHARE
490 //
491 // @remarks Privilege is required to use this application control. @n
492 //      'path' is the main key of the all keys. Other keys' value are the extra information for the main key's value. @n
493 //      'path' and 'type' values must be filled mandatorily and the others are optional. @n
494 //      More than one content can be added if the 'path' key and value item is added in the input list.
495 //
496 // @li  Input dataList : @n
497 // <table border=1 cellpadding="1" cellspacing="1">
498 // <tr>
499 //   <th>Key</th>
500 //   <th>value</th>
501 //   <th>description</th>
502 // </tr>
503 // <tr>
504 //   <td>path</td>
505 //   <td>Path, such as /Media/Images/sampleImage.jpg or http://localhost:8080/sampleVideo.mp4 or http://mycompany.com/sampleImage.jpg"</td>
506 //   <td>This is the main key. @n Path to the media file to be shared.</td>
507 // </tr>
508 // <tr>
509 //   <td>type</td>
510 //   <td>image|audio|video</td>
511 //      <td>Type of the media file.</td>
512 // </tr>
513 // <tr>
514 //   <td>title</td>
515 //   <td>Title, such as MyTitle</td>
516 //   <td>Title of the media file.</td>
517 // </tr>
518 // <tr>
519 //   <td>duration</td>
520 //   <td>Duration in milliseconds, such as 60000 (60secs)</td>
521 //      <td>Duration of the media file.</td>
522 // </tr>
523 // <tr>
524 //   <td>bitrate</td>
525 //   <td>Bit rate in kilo-bits per second, such as 192</td>
526 //      <td>Bit rate of the media file.</td>
527 // </tr>
528 // <tr>
529 //   <td>width</td>
530 //   <td>Width in pixel, such as 640</td>
531 //      <td>Width of the media file</td>
532 // </tr>
533 // <tr>
534 //   <td>height</td>
535 //   <td>Height in pixel, such as 480</td>
536 //      <td>Height of the media file</td>
537 // </tr>
538 //<tr>
539 //      <td>size</td>
540 //      <td>Size in bytes, such as 512000 (500KB)</td>
541 //      <td>Size of the media file.</td>
542 //</td>
543 //<tr>
544 //      <td>mimeType</td>
545 //      <td>Mime type, such as audio/mp3</td>
546 //      <td>Mime type of the media file.</td>
547 //</tr>
548 //<tr>
549 //      <td>artist</td>
550 //      <td>Artist, such as TizenSinger</td>
551 //      <td>Artist of media file.</td>
552 //</tr>
553 //<tr>
554 //      <td>albumTitle</td>
555 //      <td>Album title, such as TizenAlbum</td>
556 //      <td>Album title of media file.</td>
557 //</tr>
558 // </table>
559 //
560 // @n
561 // @li  Example code for AllShare: @n
562 // @code
563 //     void
564 //     MyAppClass::AllShareAppControlSample(void)
565 //     {
566 //         ArrayList* pDataList = new ArrayList();
567 //
568 //         pDataList->Construct();
569 //         pDataList->Add(*new String(L"path:/mycompany.com/sampleImage.jpg"));
570 //         pDataList->Add(*new String(L"type:image"));
571 //         pDataList->Add(*new String(L"title:MyImage"));
572 //         pDataList->Add(*new String(L"width:640"));
573 //         pDataList->Add(*new String(L"height:480"));
574 //         pDataList->Add(*new String(L"size:51200"));
575 //         pDataList->Add(*new String(L"mimeType:image/jpg"));
576 //         pDataList->Add(*new String(L"path:http://mycompany.com/sampleVideo.mp4"));
577 //         pDataList->Add(*new String(L"type:video"));
578 //         pDataList->Add(*new String(L"title:MyVideo"));
579 //         pDataList->Add(*new String(L"duration:600000"));
580 //         pDataList->Add(*new String(L"width:320"));
581 //         pDataList->Add(*new String(L"height:240"));
582 //         pDataList->Add(*new String(L"size:2097152"));
583 //         pDataList->Add(*new String(L"mimeType:video/mp4"));
584 //         pDataList->Add(*new String(L"path:http://mycompany.com/sampleAudio.mp3"));
585 //         pDataList->Add(*new String(L"type:audio"));
586 //         pDataList->Add(*new String(L"title:MyAudio"));
587 //         pDataList->Add(*new String(L"duration:200000"));
588 //         pDataList->Add(*new String(L"size:3565158"));
589 //         pDataList->Add(*new String(L"mimeType:audio/mp3"));
590 //         pDataList->Add(*new String(L"artist:TizenSinger"));
591 //         pDataList->Add(*new String(L"albumTitle:TizenAlbum"));
592 //
593 //         AppControl* pAc = AppManager::FindAppControlN(APPCONTROL_PROVIDER_ALLSHARE, APPCONTROL_OPERATION_SHARE);
594 //         if (pAc)
595 //         {
596 //             pAc->Start(pDataList, null);
597 //             delete pAc;
598 //         }
599 //
600 //         pDataList->RemoveAll(true);
601 //         delete pDataList;
602 //     }
603 //
604 // @endcode
605 //
606 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_PROVIDER_ALLSHARE;
607
608 /**
609 * @if OSPDEPREC
610 * Operation Add. @n
611 * Adds an application item.
612 *
613 * @brief        <i> [Deprecated] </i>
614 * @deprecated This variable is provided only for backward compatibility and will be deleted in the near future.
615 *                               Instead of this variable, use the literal, L"http://tizen.org/appcontrol/operation/add".
616 * @since        2.0
617 * @endif
618 */
619 _OSP_EXPORT_ extern const Tizen::Base::String OPERATION_ADD;
620
621 /**
622 * @if OSPDEPREC
623 * Operation Pick. @n
624 * Picks some application item(s).
625 *
626 * @brief        <i> [Deprecated] </i>
627 * @deprecated This variable is provided only for backward compatibility and will be deleted in the near future.
628 *                               Instead of this variable, use the literal, L"http://tizen.org/appcontrol/operation/pick".
629 * @since        2.0
630 * @endif
631 */
632 _OSP_EXPORT_ extern const Tizen::Base::String OPERATION_PICK;
633
634 /**
635 * @if OSPDEPREC
636 * Operation Edit. @n
637 * Edits an application item.
638 *
639 * @brief        <i> [Deprecated] </i>
640 * @deprecated This variable is provided only for backward compatibility and will be deleted in the near future.
641 *                               Instead of this variable, use the literal, L"http://tizen.org/appcontrol/operation/edit".
642 * @since        2.0
643 * @endif
644 */
645 _OSP_EXPORT_ extern const Tizen::Base::String OPERATION_EDIT;
646
647 /**
648 * @if OSPDEPREC
649 * Operation View. @n
650 * Shows the application content.
651 *
652 * @brief        <i> [Deprecated] </i>
653 * @deprecated This variable is provided only for backward compatibility and will be deleted in the near future.
654 *                               Instead of this variable, use the literal, L"http://tizen.org/appcontrol/operation/view".
655 * @since        2.0
656 * @endif
657 */
658 _OSP_EXPORT_ extern const Tizen::Base::String OPERATION_VIEW;
659
660 /**
661 * @if OSPDEPREC
662 * Operation Play. @n
663 * Plays the application content.
664 *
665 * @brief        <i> [Deprecated] </i>
666 * @deprecated This variable is provided only for backward compatibility and will be deleted in the near future.
667 *                               Instead of this variable, use the literal, L"http://tizen.org/appcontrol/operation/view".
668 * @since        2.0
669 * @endif
670 */
671 _OSP_EXPORT_ extern const Tizen::Base::String OPERATION_PLAY;
672
673 /**
674 * @if OSPDEPREC
675 * Operation Default. @n
676 *
677 * Uses the default operation specific to the application control.
678 * An application control can export its functionality using an operation. If the application control exports only one operation, OPERATION_DEFAULT can act as an alias for the operation.
679 *
680 * @brief        <i> [Deprecated] </i>
681 * @deprecated This variable is provided only for backward compatibility and will be deleted in the near future.
682 *                               Instead of this variable, use the literal, L"http://tizen.org/appcontrol/operation/main".
683 * @since        2.0
684 * @endif
685 */
686 _OSP_EXPORT_ extern const Tizen::Base::String OPERATION_DEFAULT;
687
688 /**
689 * @if OSPDEPREC
690 * Operation Capture.
691 *
692 * @brief        <i> [Deprecated] </i>
693 * @deprecated This variable is provided only for backward compatibility and will be deleted in the near future.
694 *                               Instead of this variable, use the literal, L"http://tizen.org/appcontrol/operation/createcontent".
695 * @since        2.0
696 * @endif
697 */
698 _OSP_EXPORT_ extern const Tizen::Base::String OPERATION_CAPTURE;
699
700
701 /**
702 * @if OSPDEPREC
703 * Operation Add. @n
704 * Adds an application item.
705 *
706 * @brief        <i> [Deprecated] </i>
707 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
708 *                               Instead of this variable, use the literal, L"http://tizen.org/appcontrol/operation/add".
709 * @since        2.0
710 * @endif
711 */
712 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_OPERATION_ADD;
713
714 /**
715 * @if OSPDEPREC
716 * Operation Call. @n
717 * Makes a call to the specified phone number.
718 *
719 * @brief        <i> [Deprecated] </i>
720 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
721 *                               Instead of this variable, use the literal, L"http://tizen.org/appcontrol/operation/call".
722 * @since        2.0
723 * @endif
724 */
725 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_OPERATION_CALL;
726
727 /**
728 * @if OSPDEPREC
729 * Operation Capture.
730 *
731 * @brief        <i> [Deprecated] </i>
732 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
733 *                               Instead of this variable, use the literal, L"http://tizen.org/appcontrol/operation/createcontent".
734 * @since        2.0
735 * @endif
736 */
737 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_OPERATION_CAPTURE;
738
739 /**
740 * @if OSPDEPREC
741 * Operation Compose.
742 *
743 * @brief        <i> [Deprecated] </i>
744 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
745 *                               Instead of this variable, use the literal, L"http://tizen.org/appcontrol/operation/compose".
746 * @since        2.0
747 * @endif
748 */
749 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_OPERATION_COMPOSE;
750
751 /**
752 * @if OSPDEPREC
753 * Operation Configure Settings.
754 *
755 * @brief        <i> [Deprecated] </i>
756 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
757 *                               Instead of this variable, use the literal, L"http://tizen.org/appcontrol/operation/configure".
758 * @since        2.0
759 * @endif
760 */
761 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_OPERATION_CONFIGURE;
762
763 /**
764 * @if OSPDEPREC
765 * Operation Default. @n
766 *
767 * Uses the default operation specific to the application control.
768 * An application control can export its functionality using an operation. If the application control exports only one operation, OPERATION_DEFAULT can act as an alias for the operation.
769 *
770 * @brief        <i> [Deprecated] </i>
771 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
772 *                               Instead of this variable, use the literal, L"http://tizen.org/appcontrol/operation/main".
773 * @since 2.0
774 * @endif
775 */
776 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_OPERATION_DEFAULT;
777
778 /**
779 * @if OSPDEPREC
780 * Operation Dial. @n
781 * Launches the dial screen for making a call.
782 *
783 * @brief        <i> [Deprecated] </i>
784 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
785 *                               Instead of this variable, use the literal, L"http://tizen.org/appcontrol/operation/dial".
786 * @since        2.0
787 * @endif
788 */
789 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_OPERATION_DIAL;
790
791 /**
792 * @if OSPDEPREC
793 * Operation Edit. @n
794 * Edits an application item.
795 *
796 * @brief        <i> [Deprecated] </i>
797 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
798 *                               Instead of this variable, use the literal, L"http://tizen.org/appcontrol/operation/edit".
799 * @since        2.0
800 * @endif
801 */
802 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_OPERATION_EDIT;
803
804 /**
805 * @if OSPDEPREC
806 * Operation Main. @n
807 *
808 * All the application exports the implicit %AppControl with %APPCONTROL_OPERATION_MAIN operation.
809 *
810 * @brief        <i> [Deprecated] </i>
811 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
812 *                               Instead of this variable, use the literal, L"http://tizen.org/appcontrol/operation/main".
813 *       @since  2.0
814 * @endif
815 */
816 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_OPERATION_MAIN;
817
818 /**
819 * @if OSPDEPREC
820 * Operation Pick. @n
821 * Picks some application item(s).
822 *
823 * @brief        <i> [Deprecated] </i>
824 * @deprecated   This variable is providyed only for backward compatibility and will be deleted in the near future.
825 *                               Instead of this variable, use the literal, L"http://tizen.org/appcontrol/operation/pick".
826 * @since        2.0
827 * @endif
828 */
829 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_OPERATION_PICK;
830
831 /**
832 * @if OSPDEPREC
833 * Operation Play. @n
834 * Plays the application content.
835 *
836 * @brief        <i> [Deprecated] </i>
837 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
838 *                               Instead of this variable, use the literal, L"http://tizen.org/appcontrol/operation/view".
839 * @since        2.0
840 * @endif
841 */
842 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_OPERATION_PLAY;
843
844 /**
845 * @if OSPDEPREC
846 * Operation Record. @n
847 * Records the content.
848 *
849 * @brief        <i> [Deprecated] </i>
850 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
851 *                               Instead of this variable, use the literal, L"http://tizen.org/appcontrol/operation/createcontent".
852 * @since        2.0
853 * @endif
854 */
855 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_OPERATION_RECORD;
856
857 /**
858 * @if OSPDEPREC
859 * Operation Share. @n
860 * Shares the contents.
861 *
862 * @brief        <i> [Deprecated] </i>
863 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
864 *                               Instead of this variable, use the literal, L"http://tizen.org/appcontrol/operation/share".
865 * @since        2.0
866 * @endif
867 */
868 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_OPERATION_SHARE;
869
870 /**
871 * @if OSPDEPREC
872 * Operation View. @n
873 * Shows the application content.
874 *
875 * @brief        <i> [Deprecated] </i>
876 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
877 *                               Instead of this variable, use the literal, L"http://tizen.org/appcontrol/operation/view".
878 * @since        2.0
879 * @endif
880 */
881 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_OPERATION_VIEW;
882
883 /**
884 * @if OSPDEPREC
885 * Operation Crop. @n
886 * Shows image with the crop rectangle.
887 *
888 * @brief        <i> [Deprecated] </i>
889 * @deprecated   This variable is provided only for backward compatibility and will be deleted in the near future.
890 *                               Instead of this variable, use the literal, L"http://tizen.org/appcontrol/operation/crop".
891 * @since        2.0
892 * @endif
893 */
894 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_OPERATION_CROP;
895
896 /**
897  * @if OSPDEPREC
898  * Not specified category.
899  *
900  * @brief       <i> [Deprecated] </i>
901  * @deprecated  This variable is provided only for backward compatibility and will be deleted in the near future.
902  * @since       2.0
903  * @endif
904  */
905 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_CATEGORY_NONE;
906
907 /**
908  * @if OSPDEPREC
909  * The audio category.
910  *
911  * @brief       <i> [Deprecated] </i>
912  * @deprecated  This variable is provided only for backward compatibility and will be deleted in the near future.
913  * @since       2.0
914  * @endif
915  */
916 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_CATEGORY_AUDIO;
917
918 /**
919  * @if OSPDEPREC
920  * The browser category.
921  *
922  * @brief       <i> [Deprecated] </i>
923  * @deprecated  This variable is provided only for backward compatibility and will be deleted in the near future.
924  * @since       2.0
925  * @endif
926  */
927 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_CATEGORY_BROWSER;
928
929 /**
930  * @if OSPDEPREC
931  * The Bluetooth device category.
932  *
933  * @brief       <i> [Deprecated] </i>
934  * @deprecated  This variable is provided only for backward compatibility and will be deleted in the near future.
935  * @since       2.0
936  * @endif
937  */
938 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_CATEGORY_BLUETOOTH;
939
940 /**
941  * @if OSPDEPREC
942  * The calendar category.
943  *
944  * @brief       <i> [Deprecated] </i>
945  * @deprecated  This variable is provided only for backward compatibility and will be deleted in the near future.
946  * @since       2.0
947  * @endif
948  */
949 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_CATEGORY_CALENDAR;
950
951 /**
952  * @if OSPDEPREC
953  * The certificate category.
954  *
955  * @brief       <i> [Deprecated] </i>
956  * @deprecated  This variable is provided only for backward compatibility and will be deleted in the near future.
957  * @since       2.0
958  * @endif
959  */
960 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_CATEGORY_CERTIFICATE;
961
962 /**
963  * @if OSPDEPREC
964  * The contact category.
965  *
966  * @brief       <i> [Deprecated] </i>
967  * @deprecated  This variable is provided only for backward compatibility and will be deleted in the near future.
968  * @since       2.0
969  * @endif
970  */
971 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_CATEGORY_CONTACT;
972
973 /**
974  * @if OSPDEPREC
975  * The document category.
976  *
977  * @brief       <i> [Deprecated] </i>
978  * @deprecated  This variable is provided only for backward compatibility and will be deleted in the near future.
979  * @since       2.0
980  * @endif
981  */
982 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_CATEGORY_DOCUMENT;
983
984 /**
985  * @if OSPDEPREC
986  * The email category.
987  *
988  * @brief       <i> [Deprecated] </i>
989  * @deprecated  This variable is provided only for backward compatibility and will be deleted in the near future.
990  * @since       2.0
991  * @endif
992  */
993 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_CATEGORY_EMAIL;
994
995 /**
996  * @if OSPDEPREC
997  * The media category. @n
998  * Specifying App::APPCONTROL_CATEGORY_MEDIA is equivalent to specifying all the App::APPCONTROL_CATEGORY_AUDIO,
999  * App::APPCONTROL_CATEGORY_IMAGE, and App::APPCONTROL_CATEGORY_VIDEO categories.
1000  *
1001  * @brief       <i> [Deprecated] </i>
1002  * @deprecated  This variable is provided only for backward compatibility and will be deleted in the near future.
1003  * @since       2.0
1004  * @endif
1005  */
1006 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_CATEGORY_MEDIA;
1007
1008 /**
1009  * @if OSPDEPREC
1010  * The MMS category.
1011  *
1012  * @brief       <i> [Deprecated] </i>
1013  * @deprecated  This variable is provided only for backward compatibility and will be deleted in the near future.
1014  * @since       2.0
1015  * @endif
1016  */
1017 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_CATEGORY_MMS;
1018
1019 /**
1020  * @if OSPDEPREC
1021  * The image category.
1022  *
1023  * @brief       <i> [Deprecated] </i>
1024  * @deprecated  This variable is provided only for backward compatibility and will be deleted in the near future.
1025  * @since       2.0
1026  * @endif
1027  */
1028 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_CATEGORY_IMAGE;
1029
1030 /**
1031  * @if OSPDEPREC
1032  * The security category.
1033  *
1034  * @brief       <i> [Deprecated] </i>
1035  * @deprecated  This variable is provided only for backward compatibility and will be deleted in the near future.
1036  * @since       2.0
1037  * @endif
1038  */
1039 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_CATEGORY_SECURITY;
1040
1041 /**
1042  * @if OSPDEPREC
1043  * The SMS category.
1044  *
1045  * @brief       <i> [Deprecated] </i>
1046  * @deprecated  This variable is provided only for backward compatibility and will be deleted in the near future.
1047  * @since       2.0
1048  * @endif
1049  */
1050 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_CATEGORY_SMS;
1051
1052 /**
1053  * @if OSPDEPREC
1054  * The settings category.
1055  *
1056  * @brief       <i> [Deprecated] </i>
1057  * @deprecated  This variable is provided only for backward compatibility and will be deleted in the near future.
1058  * @since       2.0
1059  * @endif
1060  */
1061 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_CATEGORY_SETTINGS;
1062
1063 /**
1064  * @if OSPDEPREC
1065  * The video call category.
1066  *
1067  * @brief       <i> [Deprecated] </i>
1068  * @deprecated  This variable is provided only for backward compatibility and will be deleted in the near future.
1069  * @since       2.0
1070  * @endif
1071  */
1072 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_CATEGORY_VIDEO_CALL;
1073
1074 /**
1075  * @if OSPDEPREC
1076  * The voice call category.
1077  *
1078  * @brief       <i> [Deprecated] </i>
1079  * @deprecated  This variable is provided only for backward compatibility and will be deleted in the near future.
1080  * @since       2.0
1081  * @endif
1082  */
1083 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_CATEGORY_VOICE_CALL;
1084
1085 /**
1086  * @if OSPDEPREC
1087  * The video category.
1088  *
1089  * @brief       <i> [Deprecated] </i>
1090  * @deprecated  This variable is provided only for backward compatibility and will be deleted in the near future.
1091  * @since       2.0
1092  * @endif
1093  */
1094 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_CATEGORY_VIDEO;
1095
1096 /**
1097  * @if OSPDEPREC
1098  * The complete URI handling category corresponding to AppManager::StartAppControl().
1099  *
1100  * @brief       <i> [Deprecated] </i>
1101  * @deprecated  This variable is provided only for backward compatibility and will be deleted in the near future.
1102  * @since       2.0
1103  * @endif
1104  */
1105 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_CATEGORY_URI;
1106
1107 /**
1108  * @if OSPDEPREC
1109  * The %AppControl operation is successful.
1110  *
1111  * @brief       <i> [Deprecated] </i>
1112  * @deprecated  This variable is provided only for backward compatibility and will be deleted in the near future.
1113  * @since       2.0
1114  * @endif
1115  */
1116 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_RESULT_SUCCEEDED;
1117
1118 /**
1119  * @if OSPDEPREC
1120  * The %AppControl operation has failed.
1121  *
1122  * @brief       <i> [Deprecated] </i>
1123  * @deprecated  This variable is provided only for backward compatibility and will be deleted in the near future.
1124  * @since       2.0
1125  * @endif
1126  */
1127 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_RESULT_FAILED;
1128
1129 /**
1130  * @if OSPDEPREC
1131  * The %AppControl operation is canceled.
1132  *
1133  * @brief       <i> [Deprecated] </i>
1134  * @deprecated  This variable is provided only for backward compatibility and will be deleted in the near future.
1135  * @since       2.0
1136  * @endif
1137  */
1138 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_RESULT_CANCELED;
1139
1140 /**
1141  * @if OSPDEPREC
1142  * The %AppControl is terminated without sending the result.
1143  *
1144  * @brief       <i> [Deprecated] </i>
1145  * @deprecated  This variable is provided only for backward compatibility and will be deleted in the near future.
1146  * @since       2.0
1147  * @endif
1148  */
1149 _OSP_EXPORT_ extern const Tizen::Base::String APPCONTROL_RESULT_TERMINATED;
1150
1151 /**
1152 * @class        AppControl
1153 * @brief        This class represents the application control behavior.
1154 * @since        2.0
1155 *
1156 *       @final  This class is not intended for extension.
1157 *
1158 *       The %AppControl class represents the application control behavior that provides a standard mechanism for using specific operations exported by other applications.
1159 *
1160 * For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/app/app_controls.htm">Application Controls</a>.
1161 *
1162 * @see  Tizen::App::AppManager
1163 *
1164 *  The following example demonstrates how to use the %AppControl class.
1165 *
1166 *
1167 * @code
1168 *
1169 *       using namespace Tizen::Base::Collection;
1170 *       using namespace Tizen::App;
1171 *
1172 *       void
1173 *       MyAppClass::AppControlCallSample(void)
1174 *       {
1175 *               HashMap extraData;
1176 *               String telKey = L"tel";
1177 *               String telVal = L"1234567890";
1178 *               String typeKey = L"type";
1179 *               String typeVal = L"voice";
1180 *
1181 *               extraData.Construct();
1182 *               extraData.Add(&telKey, &telVal);
1183 *               extraData.Add(&typeKey, &typeVal);
1184 *
1185 *               AppControl* pAc = AppManager::FindAppControlN(L"tizen.phone", L"http://tizen.org/appcontrol/operation/call");
1186 *               if(pAc)
1187 *               {
1188 *                       pAc->Start(null, null, &extraData, null);
1189 *                       delete pAc;
1190 *               }
1191 *       }
1192 *
1193 * @endcode
1194 */
1195 class _OSP_EXPORT_ AppControl
1196         : public Tizen::Base::Object
1197 {
1198 public:
1199         /**
1200          * This destructor overrides Tizen::Base::Object::~Object().
1201          *
1202          * @since       2.0
1203          */
1204         virtual ~AppControl(void);
1205
1206         /**
1207          * @if OSPDEPREC
1208          * Starts the resolved application control. @n
1209          * Once the application starts, it goes to the background and the target
1210          * application control is displayed.
1211          *
1212          * @brief       <i> [Deprecated] </i>
1213          * @deprecated  This method is deprecated because IAppControlEventListener method is deprecated and replaced by
1214          *                              IAppControlResponseListener due to lack of argument capability. @n
1215          *                              Instead of using this method, use Start().
1216          * @since       2.0
1217          * @privilege   %http://tizen.org/privilege/application.launch
1218          *
1219          * @return              An error code
1220          * @param[in]   pDataList       The data list to deliver to the resolved application control @n
1221          *                                                      The maximum size of the list is 4096 bytes.
1222          * @param[in]   pListener       The application control callback listener @n
1223          *                                                      Some application controls need to get the callback result by implementing the IAppControlEventListener interface.
1224          * @exception   E_SUCCESS                               The method is successful.
1225          * @exception   E_MAX_EXCEEDED                  The size of @c pDataList has exceeded the maximum limit.
1226          * @exception   E_OBJ_NOT_FOUND                 The target application control resource is not found.
1227          * @exception   E_IN_PROGRESS                   The application control is in progress: @n
1228          *                                       - The application has already started an %AppControl. @n
1229          *                                       - The target application has already started.
1230          * @exception   E_PRIVILEGE_DENIED              The application does not have the privilege to call this method.
1231          * @exception   E_SYSTEM                                The method cannot proceed due to a severe system error.
1232          * @remarks             If the IAppControlEventListener instance (@c pListener) needs to get the
1233          *               callback result for an application control, it must be valid till
1234          *               IAppControlEventListener::OnAppControlCompleted() is invoked.
1235          *               For example, a form object listener must not be deleted before the
1236          *               system invokes %IAppControlEventListener::OnAppControlCompleted().
1237          * @see AppManager::FindAppControlN()
1238          * @see AppManager::FindAppControlsN()
1239          * @endif
1240          */
1241         result Start(const Tizen::Base::Collection::IList* pDataList, IAppControlEventListener* pListener);
1242
1243         /**
1244          * Starts the found application control. @n
1245          * Once the found application starts, the calling application goes to the background and the found
1246          * application is displayed.
1247          *
1248          * @since       2.0
1249          * @privilege   %http://tizen.org/privilege/application.launch
1250          *
1251          * @return              An error code
1252          * @param[in]   pUriData        A pointer to the URI data
1253          * @param[in]   pDataType       A pointer to the MIME type (RFC 2046) data
1254          * @param[in]   pExtraData      A pointer to an argument map of key and value pair where the key is of type String and the value is of type String to deliver to the resolved application @n
1255          *                                                      The maximum size is 16 kilo bytes.
1256          * @param[in]   pListener       The application control callback listener @n
1257          *                                                      Some application need to get the result by implementing the IAppControlResponseListener interface.
1258          * @exception   E_SUCCESS                               The method is successful.
1259          * @exception   E_MAX_EXCEEDED                  The size of @c pExtraData has exceeded the maximum limit.
1260          * @exception   E_OBJ_NOT_FOUND                 The target application control is not found.
1261          * @exception   E_IN_PROGRESS                   The application control is in progress: @n
1262          *                                      - The application has already started an %AppControl.
1263          * @exception   E_PRIVILEGE_DENIED              The application does not have the privilege to call this method.
1264          * @exception   E_SYSTEM                                The method cannot proceed due to a severe system error.
1265          * @remarks             If the calling application needs to get some result for application control,
1266          *                              it must be valid till IAppControlResponseListener::OnAppControlCompleteResponseReceived() is invoked.
1267          *                              For example, a form object listener must not be deleted before the
1268          *                              system invokes %IAppControlResponseListener::OnAppControlCompleteResponseReceived().
1269          * @see AppManager::FindAppControlN()
1270          * @see AppManager::FindAppControlsN()
1271          */
1272         result Start(const Tizen::Base::String* pUriData, const Tizen::Base::String* pDataType, const Tizen::Base::Collection::IMap* pExtraData, IAppControlResponseListener* pListener);
1273
1274         /**
1275          * Finds the matching application control with given operation ID, URI pattern, data type, and category and
1276          * starts the found one. @n
1277          * If there are more than one application controls found, then the selection is shown for user and the one that the user selects is started.
1278          * When the found application control is started, the URI pattern, MIME type, and extra data is delivered using IAppControlProviderEventListener.
1279          *
1280          * @since       2.0
1281          * @privilege   %http://tizen.org/privilege/application.launch
1282          *
1283          * @return  An error code
1284          * @param[in]   operationId     The operation ID
1285          * @param[in]   pUriPattern             A URI pattern which is used for application control resolution and is delivered as the argument
1286          * @param[in]   pDataType   The MIME type (RFC 2046) or file extension @n
1287          *                          The '.' prefix must be used when specifying the file extension.
1288          * @param[in]   pCategory       The application control category
1289          * @param[in]   pExtraData      A pointer to an argument map of key and value pair where the key is of type String and the value is of type String to deliver to the resolved application @n
1290          *                                                      The maximum size is 16 kilo bytes.
1291          * @param[in]   pListener   A listener that gets notified
1292          * @exception   E_SUCCESS           The method is successful.
1293          * @exception   E_MAX_EXCEEDED      The size of @c pDataList has exceeded the maximum limit.
1294          * @exception   E_OBJ_NOT_FOUND     The application control is not found.
1295          * @exception   E_PRIVILEGE_DENIED  The application does not have the privilege to call this method.
1296          * @exception   E_SYSTEM                                The method cannot proceed due to a severe system error.
1297          * @see IAppControlResponseListener
1298          */
1299         static result FindAndStart(const Tizen::Base::String& operationId, const Tizen::Base::String* pUriPattern, const Tizen::Base::String* pDataType, const Tizen::Base::String* pCategory, const Tizen::Base::Collection::IMap* pExtraData, IAppControlResponseListener* pListener);
1300
1301         /**
1302          * Stops the event listener from receiving the application control result.
1303          *
1304          * @since       2.0
1305          *
1306          * @param[in]   pListener       The listener to stop receiving the application control result
1307          */
1308         static void StopAppControlResponseListener(IAppControlResponseListener* pListener);
1309
1310         /**
1311          * Gets the name of the application that provides the features represented by this %AppControl instance.
1312          *
1313          * @since                       2.0
1314          *
1315          * @return              The name of the application providing this %AppControl instance
1316          */
1317         Tizen::Base::String GetAppName(void) const;
1318
1319         /**
1320          * Gets the associated application ID.
1321          *
1322          * @since       2.0
1323          *
1324          * @return      The application ID
1325          */
1326         AppId GetAppId(void) const;
1327
1328         /**
1329          * @if OSPDEPREC
1330          * Gets the associated application control provider ID.
1331          *
1332          * @brief       <i> [Deprecated] </i>
1333          * @deprecated  This method is deprecated because application ID replaced the role of provider ID. @n
1334          *                              Instead of using this method, use GetAppId().
1335          * @since                       2.0
1336          *
1337          * @return              The application control provider ID
1338          * @endif
1339          */
1340         Tizen::Base::String GetAppControlProviderId(void) const;
1341
1342         /**
1343          * Gets the associated operation ID.
1344          *
1345          * @since                       2.0
1346          *
1347          * @return              The operation ID
1348          */
1349         Tizen::Base::String GetOperationId(void) const;
1350
1351         /**
1352          * Gets the associated application control categories.
1353          *
1354          * @since       2.0
1355          *
1356          * @return      A pointer to the list of application control categories, @n
1357          *               else @c null if an error occurs
1358          * @exception   E_SUCCESS       The method is successful.
1359          * @exception   E_OUT_OF_MEMORY         The memory is insufficient.
1360          * @exception   E_SYSTEM                        A system error has occurred.
1361          * @remarks     The specific error code can be accessed using the GetLastResult() method.
1362          */
1363         Tizen::Base::Collection::IList* GetCategoryListN(void) const;
1364
1365
1366         /**
1367          * Stops the activated application control. @n
1368          * The %Stop() method works only with the following %AppControls provided by the platform:
1369          * App::APPCONTROL_PROVIDER_AUDIO, App::APPCONTROL_PROVIDER_BLUETOOTH, @n
1370          * App::APPCONTROL_PROVIDER_CALENDAR, App::APPCONTROL_PROVIDER_CAMERA, @n
1371          * App::APPCONTROL_PROVIDER_CERTIFICATE_MANAGER, App::APPCONTROL_PROVIDER_CONTACT, @n
1372          * App::APPCONTROL_PROVIDER_EMAIL, App::APPCONTROL_PROVIDER_IMAGE, @n
1373          * App::APPCONTROL_PROVIDER_MEDIA, App::APPCONTROL_PROVIDER_MESSAGE, @n
1374          * and App::APPCONTROL_PROVIDER_VIDEO.
1375          *
1376          * @since               2.0
1377          *
1378          * @return          An error code
1379          * @exception E_SUCCESS                        The method is successful.
1380          * @exception E_SYSTEM                         A system error has occurred.
1381          * @exception E_INVALID_OPERATION        The application control is not permitted to call this method.
1382          * @remarks     This method is asynchronous.
1383          */
1384         result Stop(void);
1385
1386 private:
1387         /**
1388          * This constructor is intentionally declared as private so that only the platform can create an instance.
1389          *
1390          * @since       2.0
1391          */
1392         AppControl(void);
1393
1394         /**
1395          * The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.
1396          *
1397          * @since       2.0
1398          */
1399         AppControl(const AppControl& rhs);
1400
1401         /**
1402          * The implementation of this copy assignment operator is intentionally blank and declared as private to prohibit copying of objects.
1403          *
1404          * @since       2.0
1405          */
1406         AppControl& operator =(const AppControl& rhs);
1407
1408
1409 private:
1410         class _AppControlImpl * __pAppControlImpl;
1411
1412         friend class _AppControlImpl;
1413 }; // AppControl
1414
1415 } } // Tizen::App
1416
1417 #endif // _FAPP_APPCONTROL_H_