From e8d1abe237d10f8e85ff5e599794c720a5ce65a1 Mon Sep 17 00:00:00 2001 From: Donghyun Lee Date: Tue, 3 Nov 2015 17:44:19 +0900 Subject: [PATCH] sample description updated by LB --- .../html/images/circleambientanalogwatch_wn0.png | Bin 39962 -> 34485 bytes .../html/images/circleambientanalogwatch_wn1.png | Bin 10014 -> 13885 bytes .../html/images/circleambientanalogwatch_wn2.png | Bin 48195 -> 52814 bytes .../html/images/circleambientanalogwatch_wn4.png | Bin 15716 -> 20287 bytes .../html/images/circleambientanalogwatch_wn5.png | Bin 118158 -> 14542 bytes .../html/images/circleambientanalogwatch_wn6.png | Bin 5544 -> 9080 bytes .../images/data-control-consumer-connections.png | Bin 0 -> 100981 bytes .../data-control-consumer-event-handler-final.png | Bin 0 -> 20448 bytes .../images/data-control-consumer-event-handler.png | Bin 0 -> 80221 bytes .../images/data-control-consumer-map-layout.png | Bin 0 -> 30670 bytes .../images/data-control-consumer-sql-layout.png | Bin 0 -> 30979 bytes ...r-views.png => data-control-consumer-views.png} | Bin .../html/images/data-control-consumer-workflow.png | Bin 0 -> 47850 bytes .../data-control-consumer-map-layout.png | Bin 39801 -> 0 bytes .../data-control-consumer-sql-layout.png | Bin 41401 -> 0 bytes ...ata-control-consumer-ui-builder-connections.png | Bin 86140 -> 0 bytes ...rol-consumer-ui-builder-event-handler-final.png | Bin 18041 -> 0 bytes ...a-control-consumer-ui-builder-event-handler.png | Bin 81178 -> 0 bytes .../data-control-consumer-workflow.png | Bin 56403 -> 0 bytes .../data_control_consumer_naviframe_view.png | Bin 93668 -> 0 bytes .../data_control_consumer_view_map.png | Bin 31858 -> 0 bytes .../data_control_consumer_view_sql.png | Bin 41771 -> 0 bytes .../data_control_consumer_naviframe_view.png | Bin 0 -> 88874 bytes .../html/images/data_control_consumer_view_map.png | Bin 0 -> 11323 bytes .../html/images/data_control_consumer_view_sql.png | Bin 0 -> 13527 bytes .../html/images/eom_mode.png | Bin 0 -> 152974 bytes .../html/images/shortcut_homescreen_view.png | Bin 93354 -> 77834 bytes .../html/images/shortcut_main_view.png | Bin 26270 -> 32377 bytes .../html/images/shortcut_uri_launched.png | Bin 78431 -> 72014 bytes .../html/images/shortcut_uri_request.png | Bin 50527 -> 52393 bytes org.tizen.sampledescriptions/html/index.htm | 7 + .../html/mobile_n/account_sample_sd_mn.htm | 191 ----- .../html/mobile_n/appcommon_sd_mn.htm | 660 +++++++-------- .../html/mobile_n/bluetoothchat_sd_mn.htm | 2 + .../html/mobile_n/cairo_basic_sd_mn.htm | 4 +- .../html/mobile_n/cairo_evasgl_sd_mn.htm | 8 +- .../html/mobile_n/calculator_sd_mn.htm | 7 + .../html/mobile_n/contacts_sd_mn.htm | 78 +- .../html/mobile_n/context_history_sd_mn.htm | 109 +-- .../html/mobile_n/context_trigger_sd_mn.htm | 217 +++-- .../html/mobile_n/data_control_consumer_sd_mn.htm | 683 ++++++++------- .../html/mobile_n/data_control_provider_sd_mn.htm | 455 +++++----- .../html/mobile_n/efl_core_samples_sd_mn.htm | 47 +- .../html/mobile_n/eom_sd_mn.htm | 280 +++++++ .../html/mobile_n/evas_gl_sd_mn.htm | 13 +- .../html/mobile_n/event_sd_mn.htm | 896 +++++++++----------- .../html/mobile_n/file_manager_sd_mn.htm | 127 +-- .../html/mobile_n/glview11_cube_sd_mn.htm | 13 +- .../html/mobile_n/glview_cube_sd_mn.htm | 5 +- .../html/mobile_n/glview_shader_sd_mn.htm | 5 +- .../html/mobile_n/gps_consumer_sd_mn.htm | 1 + .../html/mobile_n/gps_service_sd_mn.htm | 10 +- .../html/mobile_n/hybridservice_sd_mn.htm | 5 + .../html/mobile_n/internationalization_sd_mn.htm | 462 +++++----- .../html/mobile_n/launchonevent_sd_mn.htm | 145 ++++ .../html/mobile_n/lbs_geofence_sd_mn.htm | 605 +++++++------- .../html/mobile_n/lbs_maps_sd_mn.htm | 846 ++++++++++--------- .../html/mobile_n/mediaapp_sd_mn.htm | 8 +- .../html/mobile_n/mediacontroller_client_sd_mn.htm | 4 +- .../html/mobile_n/mediacontroller_server_sd_mn.htm | 4 +- .../html/mobile_n/messageport_sd_mn.htm | 2 +- .../html/mobile_n/notificationmanager_sd_mn.htm | 161 ++-- .../html/mobile_n/oauth2_sd_mn.htm | 310 +++---- .../html/mobile_n/oauth_sd_mn.htm | 322 ++++--- .../html/mobile_n/paint_sd_mn.htm | 2 +- .../html/mobile_n/piano_sd_mn.htm | 26 +- .../html/mobile_n/preference_sd_mn.htm | 8 +- .../html/mobile_n/puzzle_sd_mn.htm | 2 +- .../html/mobile_n/resource_manager_sd_mn.htm | 454 +++++----- .../html/mobile_n/scheduler_sd_mn.htm | 21 +- .../html/mobile_n/sd_mn.htm | 224 ++--- .../html/mobile_n/selfcamera_sd_mn.htm | 2 + .../html/mobile_n/service_adaptor_sd_mn.htm | 272 +++--- .../html/mobile_n/shortcut_sd_mn.htm | 232 +++--- .../html/mobile_n/simple_home_sd_mn.htm | 2 + .../html/mobile_n/sketch_sd_mn.htm | 4 +- .../html/mobile_n/syncadapterapp_sd_mn.htm | 925 +++++++++++---------- .../html/mobile_n/syncadapterserviceapp_sd_mn.htm | 174 ++-- .../html/mobile_n/systeminfo_sd_mn.htm | 2 +- .../html/mobile_n/tts_sd_mn.htm | 113 +-- .../html/mobile_n/ui_app_store_sd_mn.htm | 8 +- .../html/mobile_n/ui_clock_sd_mn.htm | 148 ++-- .../html/mobile_n/ui_components_sd_mn.htm | 52 +- .../html/mobile_n/ui_ecore_thread_1_sd_mn.htm | 13 +- .../html/mobile_n/ui_ecore_thread_2_sd_mn.htm | 24 +- .../html/mobile_n/ui_ecore_thread_3_sd_mn.htm | 2 +- .../html/mobile_n/ui_elmtransit_sd_mn.htm | 2 +- .../html/mobile_n/ui_email_sd_mn.htm | 3 - .../html/mobile_n/ui_gallery_sd_mn.htm | 1 + .../html/mobile_n/ui_image_sd_mn.htm | 2 +- .../html/mobile_n/ui_inlist_sd_mn.htm | 3 +- .../html/mobile_n/ui_job_sd_mn.htm | 8 +- .../html/mobile_n/ui_language_change_sd_mn.htm | 1 + .../html/mobile_n/ui_layout_samples_sd_mn.htm | 2 +- .../html/mobile_n/ui_setting_sd_mn.htm | 2 + .../html/mobile_n/ui_theme_extension_sd_mn.htm | 179 ++-- .../html/mobile_n/voice_control_elm_sd_mn.htm | 208 ++--- .../html/mobile_n/voice_control_sd_mn.htm | 280 +++---- .../html/mobile_n/volume_sd_mn.htm | 3 +- .../html/mobile_w/archivemanager_mw.htm | 17 +- .../html/mobile_w/bluetoothchat_mw.htm | 8 +- .../html/mobile_w/calculator_mw.htm | 4 +- .../html/mobile_w/calendar_mw.htm | 12 +- .../html/mobile_w/calllog_mw.htm | 18 +- .../html/mobile_w/chatter_mw.htm | 18 +- .../html/mobile_w/compass_mw.htm | 4 +- .../html/mobile_w/contactsexchanger_mw.htm | 9 +- .../html/mobile_w/downloadmanager_mw.htm | 4 +- .../html/mobile_w/eventmanager_mw.htm | 21 +- .../html/mobile_w/exerciseplanner_mw.htm | 8 +- .../html/mobile_w/filemanager_mw.htm | 7 +- .../html/mobile_w/hybridwebapp_mw.htm | 6 +- .../html/mobile_w/jpegexifeditor_mw.htm | 3 +- .../html/mobile_w/mediacontent_mw.htm | 8 +- .../html/mobile_w/moneybook_mw.htm | 2 +- .../html/mobile_w/piano_mw.htm | 4 +- .../html/mobile_w/sd_mw.htm | 108 ++- .../html/mobile_w/selfcamera_mw.htm | 10 +- .../html/mobile_w/sensorball_mw.htm | 4 +- .../html/mobile_w/systeminfo_mw.htm | 4 +- .../html/mobile_w/touchpaint_mw.htm | 4 +- .../html/mobile_w/uicomponent_mw.htm | 4 +- .../html/wearable_n/cairo_basic_sd_wn.htm | 4 +- .../html/wearable_n/cairo_evasgl_sd_wn.htm | 8 +- .../wearable_n/circleambientanalogwatch_wn.htm | 539 ++++++------ .../wearable_n/circlecircular_camera_sd_wn.htm | 318 +++---- .../html/wearable_n/circlesensors_sd_wn.htm | 198 ++--- .../html/wearable_n/evas_gl_sd_wn.htm | 11 +- .../html/wearable_n/glview11_cube_sd_wn.htm | 13 +- .../html/wearable_n/glview_cube_sd_wn.htm | 5 +- .../html/wearable_n/glview_shader_sd_wn.htm | 5 +- .../wearable_n/rectnotificationmanager_sd_wn.htm | 4 +- .../html/wearable_n/rectwidgetviewer_sd_wn.htm | 313 ++++--- .../html/wearable_n/sd_wn.htm | 27 +- .../html/wearable_w/altimeter_ww.htm | 9 +- .../html/wearable_w/basicwatch_ww.htm | 9 +- .../html/wearable_w/calculator_ww.htm | 1 + .../html/wearable_w/camera_ww.htm | 1 + .../html/wearable_w/digitalwatch_ww.htm | 11 +- .../html/wearable_w/minigallery_ww.htm | 5 +- .../html/wearable_w/moneybook_ww.htm | 2 +- .../html/wearable_w/sd_ww.htm | 36 +- .../html/wearable_w/stopwatch_ww.htm | 12 +- .../html/wearable_w/sunburnmonitor_ww.htm | 1 + .../html/wearable_w/voicerecorder_ww.htm | 2 +- org.tizen.sampledescriptions/index.xml | 9 +- 146 files changed, 6193 insertions(+), 5733 deletions(-) create mode 100644 org.tizen.sampledescriptions/html/images/data-control-consumer-connections.png create mode 100644 org.tizen.sampledescriptions/html/images/data-control-consumer-event-handler-final.png create mode 100644 org.tizen.sampledescriptions/html/images/data-control-consumer-event-handler.png create mode 100644 org.tizen.sampledescriptions/html/images/data-control-consumer-map-layout.png create mode 100644 org.tizen.sampledescriptions/html/images/data-control-consumer-sql-layout.png rename org.tizen.sampledescriptions/html/images/{data_control_consumer/Data-Control-Consumer-ui-builder-views.png => data-control-consumer-views.png} (100%) create mode 100644 org.tizen.sampledescriptions/html/images/data-control-consumer-workflow.png delete mode 100644 org.tizen.sampledescriptions/html/images/data_control_consumer/data-control-consumer-map-layout.png delete mode 100644 org.tizen.sampledescriptions/html/images/data_control_consumer/data-control-consumer-sql-layout.png delete mode 100644 org.tizen.sampledescriptions/html/images/data_control_consumer/data-control-consumer-ui-builder-connections.png delete mode 100644 org.tizen.sampledescriptions/html/images/data_control_consumer/data-control-consumer-ui-builder-event-handler-final.png delete mode 100644 org.tizen.sampledescriptions/html/images/data_control_consumer/data-control-consumer-ui-builder-event-handler.png delete mode 100644 org.tizen.sampledescriptions/html/images/data_control_consumer/data-control-consumer-workflow.png delete mode 100644 org.tizen.sampledescriptions/html/images/data_control_consumer/data_control_consumer_naviframe_view.png delete mode 100644 org.tizen.sampledescriptions/html/images/data_control_consumer/data_control_consumer_view_map.png delete mode 100644 org.tizen.sampledescriptions/html/images/data_control_consumer/data_control_consumer_view_sql.png create mode 100644 org.tizen.sampledescriptions/html/images/data_control_consumer_naviframe_view.png create mode 100644 org.tizen.sampledescriptions/html/images/data_control_consumer_view_map.png create mode 100644 org.tizen.sampledescriptions/html/images/data_control_consumer_view_sql.png create mode 100644 org.tizen.sampledescriptions/html/images/eom_mode.png delete mode 100644 org.tizen.sampledescriptions/html/mobile_n/account_sample_sd_mn.htm create mode 100644 org.tizen.sampledescriptions/html/mobile_n/eom_sd_mn.htm create mode 100644 org.tizen.sampledescriptions/html/mobile_n/launchonevent_sd_mn.htm diff --git a/org.tizen.sampledescriptions/html/images/circleambientanalogwatch_wn0.png b/org.tizen.sampledescriptions/html/images/circleambientanalogwatch_wn0.png index cd023566830c426f3403b74bfe79150fde25ff9e..b1e94be8bd3188fb179f8bd83feb18a0426ba803 100644 GIT binary patch literal 34485 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 I1>4B~17mquuK)l5 literal 39962 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�I@3NPXuR3&073uS8C=K9{xJ6oLamss%ES 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 diff --git a/org.tizen.sampledescriptions/html/images/circleambientanalogwatch_wn1.png b/org.tizen.sampledescriptions/html/images/circleambientanalogwatch_wn1.png index 39d3ebb6250742471bf6105cb5a50911a452309f..394e876430637ec3b56edf0da9375f7196e98341 100644 GIT binary patch literal 13885 zcmeIYWmr|w*FAbb;t&FdMmhvUx{-!M2+~MPmq>Sa96~~*8&srAx*MfLM7q0EK=Qx% zz3+YQ`+m3|?$`TVo`=0p?7hy~YtA|57-R29Rb{!ym`^Yv5Xj?~@^E#qKYI9wqJgd0 z>+KIjHsb5j^}OLDDlxArMTJx6;z8s@4v!4ldRXjx;Z&rD+_U9W3A4T0kJ4 zGg%r|ni|{0q8AHiQi_PckBScJL{J)aspvq$1V$EG3_Jw{ZQeAIS|?0K28Dbe7x5@I zHZX=rjTJiza|(TpHa|9`01@@$dfBJo-Jh0=jp4i6NwLk+)2y0N^bRO?vOJF(Um$jo z6cubKq`#+cd5v8n2$R7Pf(NZJr**ldM}l1Xi-p*XVAbE~sK_MMV86BJy5%;(| zQfUTAfuTqpt_gyQ&_F_ngmeAnVPQN zt&f&CNO5fy%w%?sqmr;lIt?fU5k(-OZOKmF*LELYGcg|%r@!vaR~A{XABipUK`L#; zkbDx@zP>SgbgsyRr{mhOash#yG&^+uW`;frv<_Jw^|(J2zm>~<3JJ7)`N0VSF@!U) zYyPMa?}tJl@Z2DlN=fpwPEytmG>T5txlXJbWByPnhMq1dJSj}`KniE$XQjbX%;Ce8 zlq|*^za=PnJJhVh6CH8byIwcoh&tk4nLx8UnOlM|P$UPS1SYgI2qe=e9r{=(Nm|$? zZKpg6el!EkcLbptoniu?JePWuCe3Sk$`es%WT6NH*`@^H0SI^SO?ZnO*THO`9XbgYe=Fbvq+?hBr>3+_REmCxz9$QZKzHX^1 zK~{`Jv%xC5QtXnxCzV>IkD4R@nvGU@px_6|bYSqKcu3KhP)W+`ywXvglK)CW!N3cf z!4SZB6sp$6M3?wg@f%|k>|YP5DK}Syjyx;;EJZt1@v?uzQS*8+BpDs04 znALySD3Gn=t@Eyx;J)Tdqy8`6Mdkl%Lwa2Djz5QnntQd0;;dCkp9DSTU1jkfM`Xk$I3-q`vw> zHXcpZugNLEwVS$`hMVT_T8E{M#g{1I2WFB&5@QlM3x{S=@t5L-VyxGvuLm{biVQXU z%4J{kXsi}t{7x=;U7V%5t3j?|RV4g1qS)%IgQoZ=f8EmG7v5KmTowlJijz~4bxPz*)Jo)bTlvfP3$wno$~5a<2jNKe zD=--_$yvpXpk{4qOl!;+VipoBiN5$-&R+cPGkIP!+@syT@E|q2%`hRhF-4fEDO_EGfmO~R7$3zMy zWZ%o;#=Pw_SY=qX>$B@CU_@i2WmHt!Q94LhS8Dw7?2GU#;aB~`L&N#Qf719eM7bup zH#0UfCNmc6jrBbBSnIylHCVi?Ueo)cdr;S6AEqay`&s9;-kTcPvaGVFf11mh3t@$g z%8AM)*?+9ME062G*A>;1RjyB=&6d~M)%lrNnUYx5_m+1bB(^5{HTk{26-9p>F^y9~ zsYmJW^39p>h1QFO^pVU1alhWP(rm%=G?Qro} zM}*FkF|HIokFhyvmqqv$JQ==_Va25)RKcde$0AnDZX+@y(8Sv$-p6jKJ2at_rSsBO zkwS=_rJUd1wr%ld|1@GHYXxi7ha{C_;EkhK-bmM3SRru{J3i}+WQkV@Wxy9Oi3HCP${3tvnY9g*h^^P^J3`b`OLcB7|K)>-}375 ztNDx<*~IDYG_C1C-r4ZQ;&I)1-;tJLff)^IP!;3a!K~{;r*eSAG7fSnTI*|`}ke>%OC1KhbwBc zQR-~8mf8qai#U1BVy+UQJ`dMID-~&os$;R6P$}8hPAT_qW%O2h7i8G^Be=5`>D?~Y zYs~d9zumdX{WmH)9J-6OCRgEEAzQ_ORo>*Ns*KibpgK7K1I>1i|{ zwftqdy|KWSt&fvjoU)OEWB+)1=G)^%t#A8(&t+ygQihpln?vfP8w=V+8d@w0zmE(H zi)((;Jkz|=zCIx7vklS z#oL$3*LH8pl)XLzkZ+D zw?gj-_gdS&z*xMXdi-L>J;tYW8GW4EozjYu!$vCoBwaQ`BmG+6RKH1ONNnuS&Vu)i z+$=S2Ca;LDm%^#$_qQ|K!Q+WmC!;Z0Nm+jW?EmJBXY=cPHqAyBZEzh9oA6whf63fO zZwj{vj~JXZxSmwct`lfCXs1`aFtXcm-4VG<99QXY&TLLEZ!~ztlJbO`a_< zGJn?UbxeH!XChljbiVb}+u@@3;_o8yyuUNk?Z{yBvgkOc58Eu@n>1$f>PirZ_frTYFa!em zcMta45QrNm1hQicfxJkCKu8=u81>3RAkVE|!X-65XZEtZG&QyB?k~zBgMXQ7!Y%M6 z)sUPdWEj;V32?rClOEDo70I<0|12Z_?p3|CDz6Pf0fvesBf${5i9kRx`%I&-BN@G3 zUbXs<8hKPqeBY^Uy7mhQ_|))*nTADysP;lHrxtGiW@P%p_fX6y$7L74imXW&e{7DQ znJ&M*jZS7ibMeFcXy3W7#&#ubehu7JGVU54%D!@^VJB4b&dkMUdg|3L*)5sI#a)^1 zoF>&$%5|pJ^E<-|YWmCSYB#x>pE4zQt@7tq^msebCswU@VOv+WohdoPI(Eb`HoAPK zChNa(_RKSNml5ToDz0Lwz1=~>@k+(ff?Q2d*Rjx^88!ADUxI?uq>mAgGxFA|hbN4Q zZTf#!_`4hoo%gxSY}g#<=*DDy5Ejs`7qYVSv9l~n8Nci4@?o3U-^fgx%$a_{R{uD! z+$fHZFMTpcT2R~4M>pg1;P_o<@XjwAcbF4V#y%?jfedk+q*j#>U5!)EI%22~ma_c6 zwsZT#ALz@!!_5ul4rDDQ+xObn-3-R{&QC3w2+!F)SPS|g5|Ncj?ovMJXg~A^<4;TZU?ck} zccT;ZxXCFcjp(?EeOzd_Pm8rs;2l5QH3FSx{N>!(`)73m#)kv}^k}EvZLl@JAuU7Da%#ed$32Wu=n?8v@(IGmq98_Kb8=c*x zP;nQAje$YOhYcr1q|gaBww!5f3)t}gXA3sn371NGoN|U=GTSi=AISRpH-#DGi!=t!y zk(^UqT_3-UCt|;8N&Y=-RNktGcXaQ4CXricmC;{1Hgd4?3g zk!aFJV@w7cfi0WO4@=#*ghV=~LZ{(^a1?>o#rO1G#F8Bly3F6V3+e)F{^^o%L4{BQ zx;+}HHmM*&Q6%wse-gSqCaGi^8r>9nfqP}C(9iIJ-?hTw&_8yUy|oTTLurCAzi{kM z>?F+lr->%;cntWTbaj^8bHw5Y%|E%igkb66*peeXkqyg-apHRV ztBL$Gi~4wuN_3K~g-qZVyUGF~=HA{?#mz!J1k3HLY)+z_c=uc;$YRu@Pi}qAeakr( z@lkH-4eV`@!+B*^WJ=Pg&KcqxkzbEV_cj77e?DUq$7nkfy_c>8Bu_@Aek-5JsQt?AAM^R&dn% z{&Di|-3VP8b^y0Pf9y}yhPWqT3y;u5X89#Ml<7p=9VG&DsBH}lelGT-r%+Hj>2c`o z)(3phjJj82;hLBvAy!s)q!1zPZfTJS4y1)&8s>G}ahWYGZAXGpa@z};KJ8zANh?w> zD#E;!lP**6xZdZ#w@s3bvw;$wg>7=&KrGr>v`OTP=yf7sd{B^>ZXuRHr%S)#ob4vya)aWUX;&Ms2@<*aYj3Qyj?-4|G;D33 z3t8pS>|A$DICvH}aYBAGRddOV1U9kp3#VJMo#nx4j% z;kzJ%-kJpMvJm-iO%upX*xvKKnFT+iiM8_6`Sh$=VFD5eU3^Sga zW(OAwkTD; zcAg?aJ{!KfH${7ufsxP;RHArK@Pk9ic#g`Vu|{B$lA$3sdb@nI2T^EK6+D zif`L{Zp0`O(JkTu@j|?cUe>`5nt)Va0qHtorjE zV=*a@eZ)CrHsB2mPrrgE!Qs5NzTmI7?;5}pvE==)q7B_|MK z-i-C3jh{v7NZRoEZ%yJ7c%MOFopl}#pF+b|aL>;h-kAjLP>KHB+6b>~^OJ<@n3@Dp z+uF^NaKf%G4&y`u0&YA;vl~j(^M<+~8F~Axn#NIaj>{~+YCVsus_v>UFZcYap7*N@ zdGTx~tUyvSUSB8hle#T7PM;YrE^o2sSFIw|#d;1|H)FE5>1kxyQ!}RV=e9RKa1=|GEKDDCbUYX%Ix4N}ji*}2CMr^6tG9{0r=a_A zS_n~%Rd;8vj7UnOdgSMX1jn68l^bz=a&p#8QS#frEG?~97yYwfIQw(ko}rA0?|FHg zlNcTI6GVy|BVoX)X+-n%G(MecL}Uq*(608I?KL<-b9i6gl=@%$ob5$!gAS+p zXDa`kO3K<$)<*0L&pFAUdG02B2IrU#S4Ey-zy1xKSJf$(iulcFV}&GL(n>x&m`9|6 z?9ulyCH@P)Y37uJrNB5N)0#)!jhvfpXo2lH)UrE&-jRJNaWNV3BkPm@UpvHqz5DN- zyvs74J4<(qn$!!8j+Ci9>{Hps-?}SqH2K`_%;4i6t}{Ls`aed@Q`t?nOQI$-5!sdW zWM33L^T(GIGakckhho83%T`%vMl=7<4F`k%r{w z7OW(}#$?<{yGaR2ib6&)B2LfJOt77w%;(vhnYt5qlQKl-Fc}gZ`dN~OERdIZFPx02 z>@kOP$@_aRIIBZpx9=%?Inll^ZV4^^RvS<@B@OvfDT-8B6Y_$DhleM1yOsa<+#JPf z-+SrN&6Z$|JXPbl2B)p#CyNULj!P2Q7nkna>x<>}^}jPSsqyiFiA*ZN z2*-aX7JCb=*GVHxNeW!{Ma%^!z+rtE9I#nj|47Cr&Po%48%{NQCi44r&>OCyVeGmsCy@u(FGKIJp}5-tUp#pT^&D`TAaPEdu&Wi zWMq7t0E?Kl1B^vG>BCW3UoWuWe{B~-A%y>{(2#MV*~4Kdoe%5${CsP^S%90HJ3c#m z#4P_bZD!{Dd+T26$nsKWNQ39GX-T__t833hiT3jLHU?eS@oK-*`VS%y!$*94eBb~& z@AEwj0Re%zW)EC1FRupgzbsUu-l2;(8v^;znwlD?`#V3)*RN^m>7@y$zb7&|o$u*t zYHBY1F4BnKYE988)1qf$Lf0!JuD74>s$cYv4h==YgNglHBe0#SM1qGlx@_hb7h?+8 z&q>(Xv2}HINx*elz4_A9(^a*!!pQ~fjgOW(_pg?Zmb+P(Cc763>tCN67rIh?|NdRj zc}+eetl-x#b*}nW$7N)74UJ{cAGpl=a?8tcYOF@X3kvAJ>9LubnJw?^MAg2V%&)G- zhljo=7s#)y#8XyQJ~}z+YW2C`wD>`Y2jk}9QPb26tzYoQVrOS(yF1?)&QR0RLNhWl zYG`hzfBqZ`#2*#53=(eY+gkzzbaN!Dd$~JetVEk5hEkZguC9($(2-_mXQ$HZ)Uu(m zv2$<`izTU8iTYL63!*qG(XMp9cb>0WsJyqZrZN$CKa{sA)YaAFQ&Xobor*twf|uTH ztgRsuDuitI=bK5WsHi})kkHrWQ6H_FRtRi%!bl-#vf4%-j^?E<6o4zFOOH9uFvfl zo<5D-pQ^UNLO^RQhr8CkCvuq&;H|B#(Qt9W9-(1NxViC(U2V}{US87h@)ClIXB!cB zSP=0&9Ts>vjhIy@@UvpdiQdsJy_``8$rNo?bVUV+vx|$Gwsu5Q(~G$#H>?NXsi~1x zR>lz#5s`q)D=JFAef#Xkk01XDYY47bpe9Qg08g>&J)YwR5WR;2VoAcZw6v6$mw%W- zadGj{zs;OzqGbXm<)wL#MY~!ho7yL!Og%4;Xfd&{5;8KPL9GQNK*BTovokWH)z;Q} z9xWj~j2T19g$xe`FuNMf(e^N0RCILjO-tIqfV_3Bp6_ul$-|LP$jS4@tZ5Rzd%kiN zBRNCO?8MpjwY9V3vK%5sK|$%5o+bkTj30>-8yg!xxQ>T{G(A0yh>Q#ZfO>Ot(^FLW ziZLWHF;R#2!{EB3von6Q0=NcxxmdWWDxQIX0X#uaP_ScWrfGg!(%6_rL{!wo!2uWj zffIpT>K)~)pufJpj&65gSM>s1=H~MF=UTZvXo_;ACPnLpg zjpsG2-LG=c-S$nBYte8%LH9T5H09=R@mXVTAg(6U)fRhL8x}h9aNZQkF*i?d@BD!K zyN8cb2azpFi8;GDS&hR@40Sp*reN4+A79a~)Z=l-RH?(^X90WAa4vQ(Sp~Q}#xXR{ZBE*h`29 ze8%Y}Wzs-gD(;i^=`1^ZHvhk8VbF2o%oEO~OpJfLE0d?mvb?ng)z;P)6cUO&+~Pw6 z6%nyLUMPOius)bV&&s-2TiZP`K_u*P5DK&mSkF4!>0d=0=l1>_-1Ky9h93udjE+P> z=zdR3@wJaE+6a5UQA^rCrF}Fohszh zjbUj81x%1fpxeDYvh#3vm(3CLn-P`8Ls{F{Fx{W2t@z9Mb;8EP-X5n`@3Du62Q>Id zVKXK=TH4Hv9zeU}{tO?0h-%0CUQ|D%&D3h11@B$9xkeXskaIM2I(mBfMMW5(_n^T# zJ3EnP>+HHC379JF=U;r)WWj@hEPO!5S83d+{jrqY`7+U*#vKsb#WqTGT&f<>IcY7@fM?^(+X&d>W0@xleR4Hg{ zqXOkDub|MC^juq2Qxhdj3W-k2*H^^Z+1c^t(&_i)q!|b>4V|Z#*D~nK14BcA6EZno z9J~Rs6-yLnH)y~!3b^I_H9qciFefyWBTfwu1r619zKIAP>aplY^7!#%a8{^nLFa0J zT$S^>0v_zwuV0{3A%Qu7W(BYuGBPp}|K0qdzbGgw0ysL_8lwjcE(B2tjt6sixKx0j zAtfaxQ&dR`VGkG9>O;b$k_`ut%JTd<(0Wa-&rVKHL8SO>2yNcIb2?dj38uJG-+l|a z7eH+5u^gk@9c??q9N?-Ow0b9@&V8u4LayUlFZ{r$lpb1K%wjuR_qar>473fga-((} za&qz*D$yt40!UxDeiclm67z++xVQk90Z?=D2M&mUg4Gjr-y=mp+uGWG+SG1=E=W3& zala5tDGb;l4qb3u94=rQTuv)+JeZV}l&XeCNVcd?RR42A%#TS)wEXp{FP>IvNWfA3r`JA!xSVVHH%f zDN0+wy%=cB&z1F`v#{tv7l6?;F)=~PW!l4Ir=p}pgxX@#jb?6T72RkhApx;pXu$xz z-rU^Wc)rQaRHnYP6dTlks)!eN+uhYWiWjcX$jHcn!NKm~41r#9sT#bTjkoP6XlPN$ zhM+TCHa@h}mKF*Cb%>Z46jAlT3vgVn)5v9lum-q_KR^C1(zd|{*zaz>GhrRW4?vC3wGMXjSuX){CS^I=MEZmt!| z+*~Z+L?(-Eejug~Gh$_9%bT##-^ayj=sx>NQW=9dPj|*K0AwE&y)+)mr%#`jMzVyr zCQ3*EnvMPZ2?4nckn{Ey@D+4nVPR0Nf60&pHa#DB-^-U6Xt-3^K0ZDVhu$|RNM2GAPfk$N z|G6CLy@|JVVM=_jBVJ|jKQ{6`Mn%J+V3r-7nbD&VbcBfdoWl(bsZLH#@F*$YudJ9_ z^FG0Y0dbO$m`I9W(fx7MW)}zZi0EhnEF~aJ2%>eKYn4j)`H7w%%tud6>4^AV z;*s;)LST8hxe)z2TNtW=u5KhqCFvqfIspNa6b_@lnc84f0}L#z?tiD73CYRfe|IP8LHGa?;o#s1IxYp0zS-N` ztF#)WIs;%NLta)^2BW5q>*|ssBqT%(N`MbZJWR_BTc6ZBEcOAV^6*wCavjT-!bYLpf(|83(|lF-t6$60pL zs$5d0_d8GXU$YexyL(^tgfuAOp(lIbe*G6NWlZln8=tg!}5Di z2*&p>Gn5PL(k0;HRRyGdH2+=}j`1tWz*VNyu+8E{#@>E=qdyc2JRNf`w~nsJt;0Rm za4zP%^6?E9C0RJhvqC4=l(AB(I{mHF4(lQ7my$_LL%ur>7k(|qb_FJNrlOf8Jdjn)vl({#H&dv=Ct zDGe8|Apl<3Wm@*t`F9dNmj&`+&NodL)0u{2$<+@onT|r1F^>6)0|)TPa$gm;Dpx7) zsfK$M800H|!~2iFCiOLOpHVo;WC1F$%{Rs1-w|Z8Fc5;3Xc!S_0e4NJ9OA40u7S`$LHQH%eoVp@>Il9c|3pU}f@K|7$nm*KEgL`ad}?*@TbvWSRctL9<(i zZkw+Vpht%K!Uk{NRJm*_%QN5uFgFDatE^4=OeR6$Go`oRv&}ZfOsqIE9yFjWzZMru z0fPfTI8eJLNBhb03_!R8QYW14V+-;mIwiq_pMdd|1mKw{k{wrncL7!(DRd=*TZ@2< z0gm$^m}6qFvB|hYU5rM;a-OoXVuRKS%Dkh+>ooquhv2?GS&)uTd}p(=vc?Kka@^x! zC`gTsjXKTl`|nyYY-;t6*H?hl!$Vn4vXlV_Je0!&Hzgz@S_ZU5m6x@?d{nDF}VCA={YkC3qHN<|CcH4 zzF`57B};&wuMF3at9~Ajm7F5xUf~GN;eCq_dTXWKEPtt9EhZpB4gR+;fbYWTeP+$e z%WJ&#GY>2t9R6@Fr+|Q*t1GYlTm!9a7+5|EVRv9N1EUV;ytBhaqnMrH00$r?-uDB!);kI$6mUQv!9)4p z{mISGM+OBAL_)kggJ}jbGP2&~QxOpgP^-Z-#z69ex+f01TIzhn^+8WhPl`RIemdt* zs*npKmAHS*n`U=6lH)s#Lb8zRcG41Q@CP_hAfO9i5psclDJCWc)FrF~HGMDgBZB@gqV*nuLS|_}?^Oau4kfxUD@3iu2bY?|Zpq-ta+UwV- zMn;R9n1X-+sTXMujR85Zw6PHmMB#s2(;g@(1x3uuM8-TI>K{060==B$*_Il}Pz6HA zcjI1kT{r(u^)H_?Gj9P(T5tCIs~T`%seua#)G{g%EY`I%TGs`mz%xDuo)|47~*Dedu)t{qJ$)^S^(4flAK>BKkBvE$zWf98BQ| zC=Wb6If1M7_VfT&4pI1wudA!ehGJl77`wD&{NTO;%mOP&aG#u(Muvbs7`Gb#kySP} z__y3Z5dx3D7Vl_${6Hp}I1gla2s*B;g@r}Q?bx9UV71EGBGW4r^MNYg1BX8#qTUY| zJy@6|M!rEokI`%Y2@eJI6!@8lO(DOlZ#qlP zZf+0xA{$GA@mW3c!w39KAr~|-AvlnCz(=G_kY55K2pE@DUAwERkIJ;3Z+sdCg}egp zT}-w52mmtFBQ^ez>2!ahh@Ptggar#i2h=MrwO9|x4+%IkGjm5Wn?4*#TT9FI>TLT# z2n-KDaJVY>eLW!aRau#3zy!fsy+*p&nZVL6H+X;nJR+hnKx+}Z9iZ#tMe6{UAOhex z@bw?i0bG@iuC587g=|+mE*nF{o4`Mkd-H}82=v%bpBMn&_dWT}+4~Qw+9}TwY5a|4ht<_rXyS6vVh_6ZnB&fc)Z|d#0q}w-3H>pN6GS7fR%hZ zK0aP?RsmJ=U^##L#{1xg0mmBP4Hz8U>Ou$U!nDy0z)P~-|5oqY7?6|T9H1cJl9E9U z*x&qby`7l;>`atAILw(Z+%PB0-$?uVwltL3?*1uTaRNXEL`)90B$&y`+V`n8Kc9@<#-N}epr7y^>_KROK`aA=aGl*O8eMQ-_PfSSBEQLCMm=f#VPM!yPHGWZ%Ahvr4XxiFs*`!bqR5vtwBS?&^JBaXq$3 z7+kN&94wl!0d8LXRWrC}L&wA0w`LX~{RT!y5AB8MwX>QlS#FuyJRRyt0UGwVakAc-54_&oOcOWi5Qvb< zv#z@7Aw{_}U(@-X@!U)#VdfptG_*si;9EotHxufn94WQV^^Jqwdy>)&8cPr>R`obOpdAPWf2{{Kx_}T_~`6ox?>fQpQ*|lOtCEvBesYw z9NZUQ5*rH0HEbPzmLk3)5O^9RjarN}=_F`8Y zR<}kSdvkT~HqUohCcxUvGrjf+cl*#XV5vf|to6CnvG+kWO)&yE(eS+xO^{vvM!r1bS+%JvDr0Znk@3peqBO zplp>e=(R72@|E1AC)%vD4Y#j3bKYqG@b-1hecrB%i}K)WbN+&nwAW`9Hs@jX>B9HA z6#=wOV&IEEWiFeI@H3w`->#mM$+=zs_amp7gVkxJMXtQs^&DGcNxP#LIW~$ewGEA} zfVPZsDYi0S@XC0P9a%iH*}Q3?dbf0bj}AFrX}Zq7=ywFq=R#h}D8tL8jD!CVW6XZC literal 10014 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 j`+tMUlA5=XZB*Jobz=RRoogr*%6gfT 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

@*<`iJ0{qEk~-6XMZ>Ap(9PaIyVG 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 diff --git a/org.tizen.sampledescriptions/html/images/circleambientanalogwatch_wn4.png b/org.tizen.sampledescriptions/html/images/circleambientanalogwatch_wn4.png index 1a9b70ac01c02377b4d83c5f8b20c6d0e236e513..1f970f9cce1c067049c53138a2a9757f01968b55 100644 GIT binary patch literal 20287 zcmX6^WmsEX6QmS(FBEro_u}qeq`12~4est%q_{(IcPn1p-QE4Wyx)%yc*0H2-E($# zW_A*$C@+Bs_Z1Ed3=C09QdAjuzW8{+Kmk7m)DGi;Cs=z)EhjKAc=V6QC$RKPY%nl5 z1q%@oMMZNvXFDfzJ9{E25fLJLM>|ssYZEXq_oXZqGgXyCEdKko8)2EypNTSd%9t=j z%EA#pG2$p_h+$ErLy2=2F_pSe#l#?RhjKzcM@RpR#8jd~2!~sM-XYG54#*D;A9>#N z%D0+pyWbmotDhIxFTc*Jn}F_uK}eQlRbu~%P$Eo#x)CtgH?X1S3dg$h^>1epG)k>NI&B0ZQsrQhBR*w3toG_Ox!+KI%NpK{{Bh|o-K_Gy4frPcB^lW~iIv|;ESpfxlY2&l%TzR+TD7=Rn3e`DzJNW)

x%M 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 CF#^T_ diff --git a/org.tizen.sampledescriptions/html/images/circleambientanalogwatch_wn5.png b/org.tizen.sampledescriptions/html/images/circleambientanalogwatch_wn5.png index 7f571ca973a912abc0770dcd9717311d1770b319..03b7aeb655d355187540a4ce84322a564da15477 100644 GIT binary patch literal 14542 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 literal 118158 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 literal 5544 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 diff --git a/org.tizen.sampledescriptions/html/images/data-control-consumer-connections.png b/org.tizen.sampledescriptions/html/images/data-control-consumer-connections.png new file mode 100644 index 0000000000000000000000000000000000000000..d06244ac86c3d21e7e6827a4d99f24195f5c07eb GIT binary patch literal 100981 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 literal 0 HcmV?d00001 diff --git a/org.tizen.sampledescriptions/html/images/data-control-consumer-event-handler-final.png b/org.tizen.sampledescriptions/html/images/data-control-consumer-event-handler-final.png new file mode 100644 index 0000000000000000000000000000000000000000..6f0024164cd853794163718486bd55e3c6a98758 GIT binary patch literal 20448 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 Tp)Dv|00000NkvXXu0mjfWuv); literal 0 HcmV?d00001 diff --git a/org.tizen.sampledescriptions/html/images/data-control-consumer-event-handler.png b/org.tizen.sampledescriptions/html/images/data-control-consumer-event-handler.png new file mode 100644 index 0000000000000000000000000000000000000000..9508541778e6192efefe1d2719a8f127bc242274 GIT binary patch literal 80221 zcmagG1yq|&*ER~p-GWo3SaB#6cPTAyrFf76rMMJ_;I1uhK}w;x6?ZQbE2X%*2M-XE z6Q1Y&-v4}OopsKv6~ctM@64Wk?Q8blvu~ocG?WQ&X>d_cPzc_}<$u&`6UFZ)xZNet33AllK;v|^=X(t2)X3yaz z=+o%T`0v7P(IwE+jbRhG^yG2;Cgf%SI#QvH)$V_rAY(uK00_LsRb`0Dh3{GcQs!53 zX&FFdtW~$#&{T**R?+>?yibSgK?LPaHcxRlU2+jJJzf|c=&PhTP4OEBv}axZ!<7ExnI?`@ zXU^vTv^5LjjcE-S!mr0bF2)Ua?G%R)x04-;pn$peT!esFUKiwXLtn~;^h&>jCGJtz-hzblZ`A*dq<1Lm& z;M)&m@A1UX+8K@A5e7*ci9qTEJU3cs>biDs;B)jvj6RIpfnca?QY!fm$#9kd4hf!% z(I;Fq6)eOiph)wie9|1id4(1v7PBXYlnVeTM!(4=r=e%(osh<@SkeNhMp-=wMT1UO z$$N}LV846Z`>dc0=q=7lA+V2y-J1jU`_33XYCh6s7>2bQR|8h}f;|ZJq}`|?a4MgE zjrS2P#_h}S(cgU4mF^)2<@o8wtp7{r?zI^R5p<5Sz|oi1AMlk{PH}bA>dDjORVfjG zIfreKp;qv-j9#s1grZy{gcC;Aqly$h5;;f^Jram1s!sgAI3zV*nH&LAffP36K z*l%KqpPZy$KkC7gA;BYsca4DfV-OZ#O5j2@JRN8W`t?2TX)P~XY6y6F2+*McNHvW zuyZ`z3D+h@E^^q0B0BE5uU@LMnKMkh29y84gwn^@ziYXH;KSfJK&T|~Y$HH&gC~M< zp&RdTc*~)DqOF`CBhg(dLmqdMiU0I1}B-m zw7gem6EW0Wl7L(M&_Yo@7xi1E?JnGN?+ZNQM54r}TnUmCtE69>ZOdiSS$&R1&|Byd z9Yga2;ReZ@FTaj={g+lSiSU@DDajCByu))>f+2wSfZuTzC1V+Igl!n6g1V9HcU1q(Eiz}y3NI`4*dWaGUCWZJlq&8d(eh-l& z(C_8ZvE7y%iHGj&ND&TKi6rk2JDy?Ofk?IlHm-X3P>=Y>6BaAzYM&`WGG5}Ht0o(z z6-ZXB)pnsI@=Q!1cuFCra)E~Hl$gE$HK@?YaAI(5G$@2g^k}dAoa)6i-|OJ={_3|d zcl^Lcm<~(5q{QG~JkGO;@ofCif*>0#OI&4KdCz9n=g_&jQNqSm04#=4;q`NDj$w|4 z`TaB?5i~qlA(}UW52-2Rjd$pSP~9~_y6C6=U`1H{1*e3NU`iB_w3F$z>oDXQ4w5F= z&L)!RBHo%*xh9Ibt|QZhr(Z2_1Eh>H}xw z(w@aX$$Tm#HbU6vXpm{nfEKcm%=9WQ)s|h;lh8(0-1u{*G6E2kGo)>%SJCpcnK!U< z()gPCaN^jyIDBnba7kZZ#{kuWHFRUD%J+tkvhNKS>m*W)H+E4BGwCjWlzN z76u|_xY#9E7q^R#8FOr)t6|{(CIgN$M00-W=CGs#YGX)9){~rPncH)%6NJrxU*gY~ zI4b7Z%~>&?HU;M@bM$7K@wy=3-x-xPvUcCm9hSU-xyvA_=4rhcCn=ZI(cUlp01SPa z+wDl8eZ}Gs;j|3N`|aS-`co7x)PtOw!a44JlW{w3pmXTN!vYS2_QDNHy>8`p1z84vv(InwX(L zpd0s7-zk(CoDE_0DN;3Bv4V&j^`DqIArJO zocymfO#~5xyEvfVu+DXROnPz`BsDi@(dP}XaDowUAzj#=`xbyg>gW*Hkki&39~vN~ zo=m&ozaA1lzkw5W59|gVNW8=}oD9U5B!nu5IAfoXnH(rP{*Qx(c}Oh}LD0&9db)`H zKPQLa|3!ylg;ckOA*$PKXsG_D{fZ>Mcep}yuJQH&UB`qWRBIqISb}-d+9__lo*%4?3erp}+M=U?-JCo8pF445GEss!hYdjR{h4kn#&EN%)*r?|;56R}W zAXuoFpw@EQB>x@3Z-CCbjsW4&lfhPV-3cVoplEUtcl=w*dJEpd1o;2cD1wt>5e6>h zj6>HVwQzbgSR}B;PYu-Ybdq7)RcIM_aW~ghl5y%!>+tr1jy}i9%Ev>48 zzjAlK5HT_~-c7y`myqZZ5D~F$YhTwLrZj_6f$mD|_73h696JjZYuf2nZ*y0B;Laf0 zGjek8m8!Ucbs9){NY~EiLd?vv5{rB=CtNWMTXXXMWF>e zMXv5zApZu4N88X07kOP@OdTnJa>pvaYvT5U=cB(Ey<)ajoF0@zH;a$v)z{%CEB^#? zJ}T>2Y5y%a*snJV@uOertbt!hNT^*xf{P1v*);d@TQ#4-Pgio4fIz;F_GMacwHuv= zHx2Z4o*S@Cds^#y^zg)4lS9bgCN?{?h0UucY5&#G&0z{g_Ff-K$Kx$aw5 zHlG}gQqxokXVcR1iwW?q3evrBRdNAT9^k=rPsDnJ= zy75y_M61#J<#FQPHWbIou|{kCtfwIr9@eYlDdfr5jqIZE%>9fzFi=_3q9CAiJxfsd z8ya7yXhPWN!`_E_KC2JS3tJb7r$K`e;%XWi%`1eYuVB@zIlD+RHSe%OvQ`e{ov~^3 zw?SVuP4$+YDk6_h;#%59akWz<_V%-7mcG6!jjc0!Z%6nf5;1t2T#MXO7|@y&T?HT` zT(T-Lf;-6Y&$N4Yb#J%^hPyDmyq(2mfz)2_Kf3-ak!B3z0s(pt2^@~gzLy#3u2)Yo zkF!to9UZ|EmWT)jpPlv8|a4wv_&Bqqv6;+iN$Cbn3>%%LdoViYz0qBldf;*`Iea`Ng(J z!QjYlsjB-bgPRw7SB+^lw=-5RYv-MP(9T{KMtkizoK&+Um#a$M4bl@p$3f^Gcb+moib0||XRV8Ax$?3FV zi=5N}#=aUNwxKLXS;~IpWh%`JRFQu>#P3Us>vBDeW5NYk+~PbBZx)FSPQcWgZL;z{ z|M~Wh{~3r#a8toWXr`#K@miX8(T`vJVbZu+=wvLv=?BI3k4maK2ZU8D=1jYxiC)e`a-Mz)#TFAVXQFY1?WkT%Feq zZzOE)Y4@e+E?h0%4W!cW;EMYy#yW4}S>D9C_$9u~{H+PknT*JM4ed~l8206BS-aEr(SGrI4>fIF& z-6fHniT-_GETTmluq+y@VEb8nRpdD97Mj5ax1G|>3l5bKwmjqoqN8Iz)8aq(FEg3_ zl2d=5LHlZa+X`FSli)|kMH8ZS0I~PH#*WP8AO(lTOYrgv^|WL6D56K^mWHZXA`a>$ zxRgu(>gsq@w0V^w@ZNu&(wA<3`)Ni#!~o;+`Z~rd&if}fmQAE~iW_RA!c8A&)$HgJ zS5C*3maRY5zOV_Eqc(DF^B8Y6096$5g~hC$OrD6S=-@A_V)ON?%n|wv&NMFsI~&_p z;JCC?WZM8EdQFieIfV(+MjkT?xyI)J?1!FY=4i!P?FxCpaN=FX}<&43$^}- z3u@}@kU`X1#Fx<0;pQl`;PD3{Y?*N5x4DJAHSMz(!^2VDs1poCh%HG{gjG zw)qg?;6%S3874oZ@BQ@)MMnd=-T`z_?*ES0%-i_gde{)h+u;nHdyLO^dg?XC?}Eio zdiZb?JgH^wzw}6$W5{ha+hR^TOt+^qDoRz^%J?a7OuDoApSMDnV!&Z8oS1=FO1_wM z(`fr~vW*kb1=_=@xuxLoLCGA*Vn{%V&XhDKrzo`mWQ8n<)_SaTyd_490hFUrJtXUg zsuA-bu2DIx=G7o`-+4^KB}Fne#=koT!fgIeGk3s?408oYJkg-*O{nR~T7RMT$7NPS8lAbg744H) z^xWxoV)K&l<&Uk6xj>+zS!?LG9hLrYUuLKxsZpzh3zsm!tfwSNcQGoYd}!bdd#Lhm z2yt=nF$y83Eykl6s{k#~ZT5XhXc27DY&03?sx4Lom0@V41UoInMwNbP&dE$H%aW%% zn@^bVIv%RstAEW=^(vsax#{7?JX;i@U1FJRq!U^frwX}=SF|}s5f6tFEw`hB9j=tT zz4@mA>`nx@Hg$ZqCju zJ*Id9l;lbXJ5k;X#tw_UASMo^5qo>}ye$9~wbyyF;CW7*s;sA@h)t&~?DWnBYn zk#f{N94@CFOs6-n4GtFv;#8k+tVe)~oUk{nAI*3z4!QXNSdBtP&?c zK}QFvEv#v?PqWbi+{M@E48xZuaV`De{OWgYfcN28;u^UJ@l-TN>3(*KJ&5~EMqnKP zx3jCF#ykniqu(8(0)fa5tkw*XLD$%%Ze|p*42T6FWZ~vSK^`5sM(IL_p&mNQhD(Vy zfXEcIO-fJS&8nAd_VU6+i=P+mT&2~17ds_#)O~zWFh@ogzY{GM=cSKL@`I?ywr)}{ zkMUXtC0c1Lqg^7tE-Vy6BpF?pR$#pd8oY6niHwLqq6#4YJpL2Y=|>?#2ASBoJz{ja zIE4TNmG~$xv%%3s>IQ|{m`1^6-5mI#M9UyA5|6}>nC?q()%P~4vN73yGrs=!!d5Lb z2#)J!aCmrlm6&Eko9^;!$!1!HfCikv9xRtV2*+1|5VpWVMBJRYclbbl_-=g>er@3s zO8V^3h|j9n=S2NKe(S4^spUg0(P5#5+6#^TsdO9Txe`&avF?VNQGU7~xLPBEOxsAP zz0jg-wKsBPo61`Rh$Bc~sxXA^w+A(c@*tQN*b?WFlPrjGTY0zA%3nZbg>?D-63tBhbt`ML%mr zX=uOUoM?~g?g)$;t56Vm2*=#qi^na2R=*hto+LII=8^m8fPNj3r(iM4I5^PCj+xzm z4K?@bwlEnRezo)CgZJ@VbW!x1W_rqm;}wf$ZG+gx6KO+^8E0mRv##Tk>dn5fPHghj z_!>0!q|c_&5p}fKq^VJx9B-+P$`u@R- zwG%4`-1H*6IgR>bg-#bNj^?&Qp)eg28Tz2Hz>=idKZ$2QzuyP2(5u4gLr*16Gh7%% zo&Xu7rMpj-$7>kS&@@9x5Ka-}pD(Z%hA7VT)mF0=Og|IT2Sz6Au13y8rSS6cDJv^S zj{3SSWoP%88)H;~#lqHx4N^YEncFlF*x913lLr#!3f}O~=!U9d-7smj%i7~kSabmy zKaVW(^Ki<%6iMt}MPR$p-laPt?(grn12r_njW_bB+`qV_lx!+)X@3R0W#07#gb)rC zR5{}xhu2zyu9;ivo=z8%>IEnqY03iJa9_Bxy~iRn8GeN@W$MkUbLsaJ(O{jmw9M?6 z8DO~iBJU!`FQ^wJVVY|sgcfJtX+~Au& ztvsX>3tGu`REox4X~Qd+!f6g*N3)f`F)wjuIf>dG+oBpk1cv2}DGu=~Z0+#RRYiaD zd_pl)wn#G#awZ*{zZgJ-!o=blC^prChzN&vv9-rX`jLrZM*nBL1$B$JGtPzOC?qRj z?4C|6CX(c+IP75HT44WI%KQpOa`xU(VhW!pXFunWx^~QXiiF!{F3~z@i}d%47s)~w?!=Fqm&u}_qE$?KDS1l=}1o?4uCTnUYjSr6c?@d zVaxD6PLGh3m*$61-lZ1e2r0ReNm1!Y0c9~ug=?lQ2jMKPs$o8c^xN&t6Co8|rEX^g z2cU@?s4AdDa^v1I2xzMDfMxBu5O-yZqJ0)$;k_D6o+6{EC40 zhSjzw%r~FJT%2u)t$&t~PvyC~7;w0F;Je>2lUT7>0ee7kp2S)Q&F^D#*kH3bZ1EfXWzN6$i7K>7o zh7FGnP?2oh21EIj?!=hjeVf|*q!VOP1ENQKoZ#fMVXkT=1qC#kY~x8O(TMLqT|GqJ zJ$pFkKtH}v`ZK_NsVTiTZAE*1ac0&Z>zI|3oB99}{kp&WGZ4T+-$M_65cTKBmM$#J z(lrck$OwSmmaH_pl&jHu)qO9bO<>dZY2kzCTBxFSN{eRYB_6VeL5ZT240mA(tBEY| z+cGtPX^}1e+l*@@nj=+ zR2XG;&?k4d8t$UQ;R9=#beaYyRMF$d#aa3K;;Z}MU_;K89E?y;OcLeto%uK1jRk(2 zM!RD@koZ4Cy;U+4CD{vy)Z;6-tUiFV=@fPC*hqOzyKm=ovFGn`R>*oc-1J}i8q`K3 z!;Tju7~xI1_hes!uY;viOk^;t14x>E*@=GEM%K)VkhWBAUWA26SU8nYiX@&!I)4yy zN>5=HJVEhSRATF@CHo|=cI$V$ZsLpT1e78GtrD{U8m&s}@ddD8ByI;Wa|mNm`n7Ph z-52XruB#V5nn$)~mMqs$`u@r?Ha%;gQpSWdU6)ySXM#=+0p&eez*}sH8XX?wmEw}4 zD5hWWhs$f3utP(i*W$Fn9f8`b zuBdFw^?N)b+K-KnQnyZ9-z*^}i{g@quwZs73YY2kC>|7JkoG>2rO@iA=cNrh+^h43 z`kAGm7AFjXXZY4p@Geq$%G4b%(z7Fyq3aq?v41z;&jEj|CB0_%B7P2Zj$4Npqh+AS z+mArGTU0q30KKAi+a$6$-1T$48{q-y|Bbfqrv|`ZZ-7B@zBi`R2d8Z2vv_|8MAHy! z`HxAme-aISOTV7e;C*&^_6+?V4UO1$i_Yz1TW%kRFV%_q&Bk3cqr+ky)_ou0vlr+5 zmd+G~j^?;uLMw+=L|K(}aPV>aevURxz7UOW+1D1@TJ3jjK?GyR#wa+Mibz^FO#4kU zmy-8xT;9HKAXML|syV!HTAM?ih0{qTF5S`B%D7V46cNM%lnxK0n zKH|FHk2-rR83z4@i!al2Yhri?qLd=H6GcWS+@4OK$UE5cWIl=Ei28G5wy1Y};3Kzw zcFpVpdY&*~n_tyIJL5%4Oidc~P=MtsT}({Q>Jug5ius0hnfFYFK-o@QgDxKFFkxd# zlqEe+*p@~-U=t9?eNY7O+NKmb`%}0Jl6~Nt=+Eri@W#Yoem==?&#bwrp&)XX73&Ir z&Hv;{sO#P(IY8v9sOdY^yKy>-T^6c>b&{w~Z#)9W<5HgX;LS*)4OwrhUc$WY_$BeU z3F$e+?FNWq+1d_!^_)Z4@g@Y^B?H3|y-#3+n**0(sD9jnMad8MNnN}W9X@Y4I-1JRN#gl0J zv~}g)?C^^%BoZpKV-AU>Y?ro29v&P_{#gmF<;6V;2Cql38+9rQ%vHQ;y3`|AVM!$(8@GSVAcOisuGtNQgzr_0Y7#9x8 zPi4|y&!5Y@;7C}EGl)b}uQYYL&s~!y$gixWn0cF8T4gVH3PHE&Z@lpopOoTftM>A# zl%U&tN6j^XbVwii;{D-lmCfuIUk5t(?4CWQW*FDIAdyvc(ZG=Hzc2V9 zqEu(6HZFO{(v8rogj90GAs*73Ti7TVK)@fm^Q4F|Oa<}(;Ku1_V;cqp&7P{~nl z^Y5Ekht2_h|32AhTg@fu1?eOZ+rAs0oSZf=Gjizfk|l5u-(v7aK{0u%~ zUSC(Q`a|03gkJt>N$6j&G|y)k!0@SiX46#p_F47m%)7~xW9w|^W^rylo`K9gUr9ut zwBl2{ltxoA1qIEm++RXxYL=6T*W1IH}|c^sD`%aG0? zeyLruoafu`Mnk8(4ub_7u|>&mm5nNGAKG$aV|Q>Cg%j<{D}VDY@a`7oiB#vzQ0UsV zo$t(Z9v2?F@gDf7t&XcHe|n2CI5g;z-uI?8A~h#3uXk<_I|37nB{CAznmQ22BD1BX zjq4eFR5f-|>m4%}%V9hj*~ye$+PbvDhX0}?vzWI4yr@ za`@F=K3NA%}4QhXDZ6Qk1sMvmDY;?qWA z))Ldg@XAJevE|1LoAeLeza0ngrrPf6exv-E-PP#hUm`WzWC%i1G{6YQc zWvWh;h{)ff;#yQ5b%H%lkKvf^KU-lH=-f@vrVHD(S5)+#aIu)ak*Evn8sRktKhP!f z+LD<0h?snNaE~qq*~O{N@ULI}$BRv@nfk&d)YQ~30uKN3WbXX=Xnc|JH{jsf5?*<& z1FsaG9x0jG(bE*vOr3UIE}7|?u~``Jn%Vh-{9(qKC_LS&ncBFJQ^!56dfTwGkCfzO z^`rYpotkmLLE}r!8|NRC7tTM@&z*l{>PuG&m-uG+l;t=bN>@JK+Vk-{d|EZjLFJC7 z496iM{+Gyd#`oUXXb&A9Dyo&#t;NI#LcR2&I-+X@3_11=_g~q&f5DfsR0;-SBTu!I z&AXClMS_TA(CG+g)k0^`HG`W2AP42LCOOl>{N6N=G#^~ZBq3q^+0J^k#a$T}Un(~> z^+z{b=8ojfzFm1o1_%i;Px!K3Kr86q9;{rleC)EXB2hQZ`cC_A$$is;eT(!mQreL& ziONTTJ|Xn)-~3h1=0N}u4pYv~jub@8Iv!%;U-!T{85u*t@IdWv7@-dV8M&DP8z8CR zN;pFRdXCI#mPJig{-m=Vs`LXOD#`_J)6>0X7moCzFn#`{|QES6*4A%e5IPGxy!T7is);4|TfzUTb&JO%O zpyAWmgcd_1tbPE91CKsCySE#Bs4sGIsN zCV~X`c{-1zX~2Cc8&3ROuGU~L_+_Hqa)}e)&gw_L?bVNhmHtMK8dpLWdSc6e1B@Pw z9lssJj2)#qQYMPeKO7>5&iwrs21vubZ&>g(y4BnEFfLA=h%^NwMN&lyVc*hO?9ZE8 z;(uVbJ^j&mR@pfGp~lMjB|~#1&kY91%S(ili}R~N`UN`H-Q8E&UE%`dF(TQo@h37+ z)TFeX$2DB5th2_ev5NfeM_obm&y3ZAo-_4a>OASs8frMvZTkO4oN&p%uxrTt8&K9T zvy)<-X*N>w4^)ww%|@zy;Xt>k(&s;b=tu#Tk2Rdz{Scd({-ui)=f>^|3Fby5s>R+u z!hQMxxiXGdcH{`Ul@$5abr(iyX?l2IV3dTH2CmmQ17IVs67eVm|H{^!z}jY_deSY8 z`Fr%a4q7P89hs)A2}D+zAaNSZgvRM0JI{G3t68pv)>eZ~?wemy`DloZDvP&XC09u6 z`lokZeO@6vO;j(fVVJhBYzRhLT=n*&{{1)*Ck>BS{fh(zyCH)k`E^k&Vtw6WYiH*f zw-DgoKLF`-J{u(@Ag~yYLR?{BW+9+MvP$9h5j`J+*QMm-x+4h2Rf3QQ#mM4VC(K3) z9mym$uIygfVh+xXf4Me_89 zG(DPq`iQRd)umgN=B?Hv7LFgGdfD(eL&wy>oU3HOf&Q6{urQl3+&(<0Bx<*z!}J%! z(@zp-nlhVYWK_f|-$5=~Nz+(#B#UaRn2D$n_hFG}D=R^wgP7%!Ki@FE_{{+u;IT5V zsd`++9vZWJhZyX(hTJisUBhWlpN}oY{zexWW+S^gJ}lGv;8w>mD_;(sw&w3`t5kB6%n0 z1(JpTYwdmlNR3y{mLM@=RP{(q>E~TWhnp!r`q_38|B?ZNSAg0VPYW5qE#17WL;vk2 zU&5j0Vs1a8dk%erOX6%jUR;vQIH5X^^9#(V;gto*r5=^1FOe61I<6M|z~C7nj*}3V zVDWM1IJZF5tNwgT6?l+V=d zx>~qPm*1fJ(Wk1(5Y>L7sL9o1!LH$fTKHT4apM0$!Xs!Od$;e9v)+$1WGLYty)3GD zlxEiLABIZ-c^N$-{16HLFBOT6Z(&{yO(U)_u{@B1W4!sxEZT$I0MrP~?dsWCBbcU| z`leeknoOrjWcASBHRo~t4O&}H$U9`A(DqLqf5Rl*^9R~QX5?Y)+d#Z2EO}yjSL{e4 zhF5>01z(R;$xaNXBwczoM^5F5o5aT|S!yt|*(!ba6Wp^KR(7})d;b@oyDlfYu#?{V z*7}U1%599_z)lOw&Vo|ivEy(i@*jb_lTc%@&fPwW6Pk6#D1;=>>bkHT3n#GHj`(2l zvTeN95l^tO*@VRF(M4%?7lheIsdR+*A%}f--TO_h$YL@?V!@!^71}rZ*=4QQnyxh~ ztccoB^yvKMDk$QTj43T15SVDgeJpc+piZapQ!&Nhx(34a5PLN#vpc1U-gIS?1p#3t zTYkKnkW5>bN^I7(9$xu_ZiBT&KL8i*L_6xa2E^F;MIt z%EGMa)Y_RQcqY!|T&s5PDR()}TBld9-tX2@%;G0vOtf9{H3skI!HJ^lA_pW-rgh*% zt1f0-$#1B$5Gfe&qUOpCaZ#2=<+NI8Np+~@3P~-2vX6$MxIBIAEqwcmBO$g`dSBHH z@vQPb5wJL7b+>k>rsyF5?Dy~ATMu7*UH?23FXkNFhx&GUXABakk#jE9isoXeMfJ@raZN}7}`@yqPHp;ZVEo_ zshzWbt=^fC(H9IkCs0r^6uk45n3|kR=!tG?77>Xr$P*T7@W`+HPOJ@IfyB25Ew*5k zI-bg^TaZ5SJeD(1BgIu2nfxOdw%_KSL3bjjV9gN|6QeydnNSdI*g{bMh54}tZl1u&w6~ z`PhLI<{-ANWKuAW2xL3d_AIrp7V3MX?tfuK2;Y&X>GWkG1d6#4A};(nJ3sNf+hYCs z0vO*K~%F1|^G3fLI>b-ykmSt`IU;$C{H5VAD151qC#HvHF&>vlxN* zecb2nntjRhj&ex$j#7FbL5tJdWiacHXxee?TGFRQG!7|4cagq`%-}vS<<=5m$BPhg zOzfHlg-8nDJScyJ^R>X*5)#i51`{#DQlKpf#Q!a5zCVSqIOA)4Ld#U-#XHH z8W_HoN28={%JG?Ri1BWTbxYVIAGYuYdL$KdbYP|yM^teA*UDQ+2rfx$M>o57hg@EbOUxTz?KJV0)#%b3$b8VmVmUe?v%z%ZPt+ zHsPrM3-E*#ZqEqDyQk2uBUR~7-&I*&$ZYxJc0SI*Ylz8>Z(qP?8#oodnLtaL@@_lyowJ{HkQ_%5fpoe?vM26!p}-rmh#y$;u2YO`4~Y{C`RBXt+=M2fi+n+ zx`1PSpsrUt5^s#h-RC_oQXXn9;t<8V9QPLgz7{?6M*sf*{~CRnUbXX#@#j2eb+60i zee4s{iK5DL591$jnU8ZsNMpa&HOfd_lE^Im&aG@^Iu>xYy6`8eF^#Q3SmY-^V+3Yp zDioZP(|_BG>Cg3z6y#H<7KNap<2vZh`^84b`$74G2Ca09VPZT7fvEOU@UOH$wO@15 z2)_*aQw4PkOx_&vkeW4OI>|ta*;7DKB?u*THo@u;i?)Vu3tNLuBCgvsyM}8`)a}qn zD~lqw=@X{XU3G zAA~zIt7(2eWK0ssO^B1eN%E8$oe#{Iqsb>b9$$}4Tp~*f81M)Nr?OM2zy)BthEz7I zF5q)s@=v1~2tVEB;Z6^fHihy0_C)pe`aLd9xjkM6lV4>Ds@81JVDc`~ZD{UZLt5DZ z^qs*ZukGm47A3`&!VlWt)8Q>ePc$A4eE*|@uf{#C^-V8N#0kZ@%Q29(4R>vwmjgBM zoNR4`{ISLq4Oy&5fKR4X*w4Ps2AAZW(VwHDq2V3tYR-xUDk^RME>=Ac{H@?tAzX6T zQL^Z1hx8;HzrB$8PF_f6M&fI3WHMK zv-gAi3~@uQ!#6A~(sf~)o;YU=3CjhxT2m9pt+AakdSS>9Kts>qyKIw5=|KVVu+`H2 zS6xM@;Z0v$;g(OwLj*BcF z*LaN3@;_)*CI;Khr$I0uA;&s^7-F|{*&a!~=Q+DWZr=`-vlkx5n)RQ+b{fYH->%X? zI?lJY6(GYiosBMx$}xK`cr-G>OsCG%EjWb%<RvtDEiB`g=PA5 z^@E8=1K7{qOW>t+NZz&hRx#_wRx(;tT&Ii7&Z_;c+*b|c_= z$w5I+{ag=T2^cMYO!5#$Z|j?2EGfemU<$+*cO|=W%-wrRrD)$md|@VyEJp}R$TPbn zx-7iY&nY#4GV|8!a03&KDWBCU>#;e_Ugh_3!Y^_+5FZVB>Z%7ew7gj~22GXBl+b)5 z2l-!0uyc`X;tMOVvx?1>Qd_wVOs$^ARf&5OQ!#iwR;(vI(x+^#?7HloscIjnCCQG< z0iS>%eJ8zYyXXER?(gYoN^JM?N<9DaO7zaWK)_k`5X>(I%1*c3A?nYJCnJ>^>E$3vjV9Iez6pia$duP%pf98N)2+pz9KdP%bN!oGd;ec%7ee8P$E zC{Z+_zkLf(qCt;VdCEw;?JnfC~-qpQolUVVG*^891 zG=KXnT?u1NE`~g+>!NO46bTd}LP8ZVVWbu6{oUObBp*}N{C)qe>im(zEPiMzN}C?! z2B*zSf~W;q`7QO&7m2!L$o@VR?+bk45FTGpu>Kns%hdv18|GkPVHv)UzDWxN?F*Lx z4t?|LQj@$IwIup{M6L5?Y_hgLG33!)TVZfLiJe-*bJ;+LOeufk@WtpM(YrbIx-Owe zM?NOgL;48d{8;?y_1Q_t8B!21xHIT*wtAIvAFy?R+*w%vyv=hu+yEAf{isK#12fsc z6lczmj1LYTjdvnK%{ElrBHz9RpUAAfcAya*~2dX9~a?;)&C%Pk@Ld19)l+t?XZN(x!ljESlG zPa(4snlZ_ni!Xc%eM2QkUY!1l@{Z^7k&be78V-F%Y*ag6j(yLqEJ-EOOt=;Cme;-}U7;%eahgi$nN7oBDTWP>*8!#sBUt&l2Z_9e>Pv24k zr?2|E*Vg~BhsqQH{(DHKLA%Qu)rzTh*@Opf=GbL0PqV+-yIWk;cCBc76J*LwmppXJFtuW@EJV9-_!T(_2uOr0caB zIefGx6izn1CAo7<3~#c=L7er zd^PG#{}6IquyroHS_L5~4aNhvg2p$m>+x?s9Ufb@a3}V_Hg!*y0*|2%WY);PFgM08 zK2Icih}~p16 zvb-M^r7htVo!^y1R~bT2J8A>H9hXnN#n& z@mS1iN@1|i5_;7C)m8V!M79Bf9EI;V1+X?GgQ=n#4-w(_*867%bIF@k@B7RVHYQ|!)TDq=h_5pH$iad3;@^bpV5SBl z!f21koOi41#MTj0!u(NXI}|CiBG?SeF8GQ0EhX>ns)*k&>~|U8Rg=OO@35wrMrLpr zOsX2+LMb~Ju_CuyMH78A5DIRYZY>YIh^k|+yVEZhJGYdhE`}{g)gDuJ<}R-CHg@&= zcwlxjZjKA|&oWum(FDAmov2<4^zrxI64+{V$-Ey@&IQh%eNSH0MC6{+of$Qs zf`?W=`FkH7PgILa|L$_X_o*lbAxGFbk}XakRkM4RJOrd;aJ=7r3SJ2mOWf@=p;P$r zaBMk$KbzS3@Vo2b_R}5ZY?tT`IlllYpTVBc074dandjIe+e?(*?etK}x#=O);t}XxXrT5v+P;WXKn%=SOBJcfTJChD^ z8{@&rNeJrD&=5sC9yZcH#rNg1R8he-GBV038Nh%$lzjjGrgIBfNVxrG8!eg7Umx)8 z+qW&%&aN(C+TqDbClKv@Yi;crT+;`7LC@P~y`SFsJR>E_n+}oFL<2XBuucWtc>@ra zXQJ@^Y10RLW{_1zm)b_!_;BpRh7W}A8lX~WBB%Bcc8DT-^a)#zx#W2b^0^A58hNyH+4m| z=Yz&L=I65VB5TU@>B_vi*{h$>emOC}$+e^_wNqAfl(>GMx^|J>w4Q665c-KQ>|K+k z-z#ZhR@b6~Vx?Wn+~+Lj>6~4l9`l2<@vkn(LpS1S2}s*U0Ab7xe+WaU zk8~N>yg^vfKh)!oI@Mo*%kEDBKE0s2X_=n+@x4BNP25D96dTU4Y$5Tu!ah$u)&2{KYd zx@&9#Qlq4m8X=+r(nyb#W`sy7F}fQz7~6N_^E~f&yvO?o>^Sb-_jR4udH(7m5BA7h z&+LxsesadTX}N}c6+*aC4D%4p#w#vKnhtlFHgn>rjjGm8Tp91) zVIW{bYa@65>M#>3PHNfz??6l-y<9m=G}P=j*emr+P1lsf#LJJvB=+U^ z<2|&WE#}fclvo{KQ1tsoLo-1GW}d)}e0KHL8R`jA4R#!rR8bMvJgfKJp1!!t^`B#I z7C7cIN1)U^99*yQ$+}q`!=~}bwncS|QP1ayWP!`VW=ebcQT1%zeR{n>Wl0X+pblBf z%xL?X#)Fgl@!Ob-okL|CqVb$)sP@>}YMTAJl>i>=2fl^R2F!QiZHt4(1RBmxr<7g& zuw^39+P-?Hcf1X=gLvt;j7*~=zYs>`rpDoVR>4(W4$_J3=YLY;*})b^pQ%#RyY zUuig>WENs77&RgyHp5Y`jBIVqsFFmS^xKeM-&jS?B@5{GQNF#t_^PksDWzmrr=2Co9rqE@6rVV2IRgP6!E5ZU%DFdXqn}Rui1l|P^^WEF zPK?}6v|rdI=m#eQkQnC*(MlW()CzJ%fKyQ?3z?S}Q?@d`=x(N*p|}F$FTlvE2dlhg zAc%C2tlSw;Ii&vSI#&toMrngBw;6?K6ev^8ytw`uFo(nd@PW|ei^uy94C+j~VBI}z zzNxbPEV_z(c5Bq+0enR)Zmjp`1+d2$sBfH$d`D4O6Dvg6d_-1qx#4M+9yheivRQan zVAlLemN`Hp2I>AVdSS%!JmZqDSWb3KQu`Z4D9SVpA^tGEckNLGnad#!Z%%f+_14tA z5M7m=q*8(}K*-bZCR{$p5&ackWqk!>Uonmb-{zjuRzC9`O z8N|p;)JQL6Ol`?pJtTXib<|B@uhyb$fUfF+-R3j5N*;vF23J9jJpVGM$2~3cfcb!}1 zBI#^x3r^(~q(WzNc%<)3=YFcAsF#-yof2eOC(C0FYG_>cdI^5z?A;j!(mD;@HtF33vpc3@FC1F;R%N~iH?U%f(^mr17gcmy=janRB(+x^pFIUFpZ zBH^U^I9px(kmQimRv&*`o>i;x&=xpR_DIZe)0Z4o87Tk>927qA%WwhLwfz1 zHORs*z>y(?V}qJE+=zLNaAbJ2J9%d`^~9c<7jBe#ytlv6xmiZDFjRVn&;6fQl^k&J z6%>#0!F=WA<%J0Qoy6ep;Kqo14nsGDg()Lxxs&WN4l${XB_-PUhsi+CaX)k&6$n%; zrYDczJJ*zymipwdu)01UUv&8Rc^M{I$xpB|WK|J#O+jO`^B>`)k*bu0j=1bSMzo@K z)cT;BHm}Q8yQKa}u>PwU`Y9aNga{UO=W~hlo>QAszJYuGSM%q0rtQt($MY}9<7IvO zr5Z(M+$-zN#m~R*G2Rrua!yJ|Nvz9PR_kPY&Xf_WBIHSeip%kszb^ zfgs*Y68q`XwaAAVo1mMu*)v~vix)^*Je8?TC|3ydx)%$lf9kzXH5&d6UCtGkLmr%H zjOkc7EAsF|(adk9BNzpq^+c3bIiQ|M4F(Jp3`z_^$lc9u;gzo{IV$zqIXiEK zA|Rf-xU12RW#QF9AK1W;|;T7(b?vm5EXd@%fVPy{0QNtK+om23&H0P5_zyp|0 znO1OD9(c6my}J;8vlnQo9Dgn38O*ufVL2qgAzW@w6tcyDMzkw^uF*_!Oew{eTpgb9 z&^ObYscEb!gqgDw5)7u{ z-Mc99T&fx1-AG1*00y2_!ZHOI4wG#EZ{!|m-B2A-guE8tr8_Slsd@6ecu1OCP(iuO zT;qOpBw>mF$#2n;7`8H`G9&fWi@tfgrY;*ovQApF#_3+=f0pB_9kAW?DS_@$U=UFA zp?r~%5$-1ga+ZOP9QE>mjEp0RiI5#n3)nFG$oTKuX=rNpQxetian^Wy@*J8**kgCB z3qykEVlk&gdeUEhYetBqqzt$XmTdBNu6EJXUg;TTKT%iRmUxIUC#8{k9x1lY=fiCf zi@ejR)OGYopV;cDVuu$SPp4M&6G_Q_~Co#uWMqn4#F8s9$=o!`Z&Aj0vFjQX7bWTX*I(cX1Oy_+`>b2@U zWMjS#G(2|>0e?b+v|BrWgL$izp1qj-y|MEeoRBH&*4J|H8^7gck3nYw^u))~=BI#Y zXz0}oH>?06EsfB&6KJ8(#M{>WJ-?xl6zJm7^CK~W-*ziqQhB!=AEFnmu4=wi_1Rpc zhRH|8PdjH(Q2iWvr{o>ufC#RySul0H_NwKaJ2u*(`en;P$Np%SByNv#H~?T+D+*NqQ_JyO)fH>doSq@`bXA_d;IhwQi8y?OHulDH}Orv4LlM3qDNcJc2N;ntCDiiQ+gthQ)-vj&<3z!-+88uJ&AjYLH?Qy5 zg%LW1ddp1YtMV!aG=^)ZpP9a;DC}jf>+S0k<1Hrs5W_eB_~y44 z+^+@uRex@)Ny}%Ip8Y;(&d#rNze^Mn$@mb;Mq3 zu^fU~mwgfkf5XnsERAbQ+=Ia>wq~nJ6|tr{+&&1_mUdzl+q(DU3MW)@ z%s_L$uYas^8Np24C@-?vgu9YLL^LTSq?6f2G}Acun5~ z33V5~L+g+qTE2f+O5t;BA0#|9c%%yrjrLjv4mRY6fPh<={e&V0&U+DU#OIeU>?1SU zEO-Hu#YA8_OqT%XX!>qlMElb=pKTN$C_4OKCl zFo~m&jb4IWT*+!<&*<5|(@X`T%E)~4vzcYa(MYy>(T*54&rdDJY~s(LW>coWLzD76 zsHyTm($cUj7#yZTWEO4wA1Xumq2}^>ZO*Grm9ebpDeX-$!l$Ad936nJpC9l!pHg-V zCcW}LJ<2UBV+{_R1f(|o#fkPNEyX;n9Va#&68Ek8YnA0ZCAoF7o7py89{nz)fE?^U zy2=y(v;LkYL-``3^PciM5ut1OH|OKjS$A^_J3=C^M_gbUj3!Z?^`_d$W0pte89<|& z{z|Kt0(w;7m=({{{Qw!vuHJDxR5@ysr4XP7hcLGQ8@sKoZSUj+5W|8nZFGBoyinHX zC)=L0_=|J<0Z_judj#3b25)^|E@NmM#?MesR8Q`GNpos?x}t6jm6W)z-PMAzdp%p+ zKO0GpF|Lo~Te2-999)f_=pPM~QaZvE3#jMnU-AR+;YaNuk*<6BC0PO(?K|m=hYxcy zy6v-CI+fOoN7tQ%2%{4mnDlcO+*5ELfXC259PwQ;^B?hDp7-&H=9fZ>mUBBSrycLS zlx*SV++548(+eio{x2eA*HMzt@weu&3gg@D^Mr!j~tB!7Ks(V*hGt6HMG(ny?@ zABlLxR;OYa;i?;~oK)Y$b9hAYE#DbvI|czOCvLG$j8gEts!6Mf*0zz7O0u0tqF9T% z>USB>r!2k5HBZiC`rZab5k{stw2_CjKNlBuN(i@-Brm!&ZegZ$i#(*?a9sqS0F{y^ z9K*T`U(_tHyLC4*SU@*NNyz-1u(OM&ojd#eW3Q$xSSQJGXwig-_VjCC)y>vD-jia3 ze=qp1_Je3LU(9m91-YVIN?KZeQIV!G(Rb-;^df+_UKj|^4vDs%YtZZe%$7xcm0;RW4J%E zoOt(-aMxzKVK!bPW&O1g&xMnyuj zFTRRr2r2jT8G-)1H?w3c|R*1Q^3Q zF@J?H;fgvW9B%cU1JH2#!ZQ>-SMY_w)x%W*Ttzf39L7xOIoATrTGPUi%U$#GQk7Tg zI64Njy$6V7`snS(Fn9hkTH1ve^`Ab9Zx|#x2`wc1f=;h1t8p`_W!;5Q!IRtE@Qwx5 z$wlVSPQ}!)(6Yw%nht-4FC4`5~oIb}wE` zU)e`Ji^Yv`YD(4n?dCWimuzpSnrX5MpGWE`ONI2!s;1QV4&6S;iq_tECt3ejMG=aZ{Jl9zFKXaPeSEYxgpno^l$2ev*5R&jSI~FL;|QRjVM%Gw6=xfto(BS!Rp2X>w^4cduv2Z5p+lqm}VP@;=Yh3G_q&a~xmjO%yZQpEG~{PZH7X_tf-rv@{J8u)P~MZ)g@ zUwo>>f&K+-#J5{1j5#J$0U{ib>1WWg}4NC3VlG`%y!s9vD z*i;#e+ZJsxz05gXRb$VVDXVKU_EXDSA$Ctz8e;l;{CPoB$@AK?DtmAZMx-*Fur^W< z1&1ezT?F#cy8KACOH=umjem+Ev|t* za$gG9H*b<)e#OPbUd>TmUAITGx|;w!wLG%2@_JWS*C=_%?X_h5RA6tVhK9y#XXg|Z zvz*QO20^LG%IWcO{vU+^WI;)LHjlivmJAkS%kT8jfB$9My2##Oj_1t5OuV2r62G3@ zQcnwXp_{MRU8#Uw{^yaalZ#8~QS&6;lRX$#f6)gT0~El^2mtu-QCdf|)LYI%a7RBY zH~if>j~Ckl`gjv+rY)DtT3TjL{N1ya(*KZIGM4nNMsqa10BP-a2OD?mfl_*_LUiVr&g^R@xr zEbUwyNPYT2>q=z~!Vm#-%iZZQ6dvqWb`9uYZf|V<`#eksbVwI;aI2p}7s#9-v^5?S{v2Fz93a|3Npjw>-`smz zfG+`iBosAC`~j_1Lu;t5FRK6gYntI@|1R25 zX%W#sN*=85uK(CeQSiQ54lBxLS%|1!?CfN?yTBP`0FW0ObFQ%UMUNAcQ&h0o0CE~i zDRH)Ytx}S=F55Sw^VjcmrRf z0Tz6|jq^G;8`?k|nyKFKaaYk)m=7}yUs$`u5uc2FUlj^cj<{e`nKyN%ePxMZ_z8~z z+Evyh&^9IYhgK9!g}<{u%7q;uvb(hQQSl8B)bh$o-!Kn65FT{AQ<((L09Y3+Ejq}{ z#^%o@RH%DHm!nr#7MN-0V-TTH=xCdPvrvak@vf1@P<)+IIFq?O&6X-dpKa$z`s98_ zJKV-7q&=BANq`hZE@I1+s5D1L)#lC%e`!E2Lcg`w|4jEu?B?ae_Su%K3e7|jdaiQG=2LNz4??p4r+ml2rhOdqJ)o>0oH?Ac3n@o!8x2fAY+CQGBQPW7GK(wuefJJc$Ya>~8hujRD;M zBr~67{ybct-1!&!JkBnIIV|?b+hlDg7g%5!X)ros-I6znODOJ=(p_gGJ37~&_$vEk z8MU9!?yYr`|6b77dRZ`vBEr+_@U4TuvYxi2HVsP|C7 zG9ZAdS1bDx-UcAVZ5J^%t~JJ8?8y1jy++-pD)WrYcPk>SFG4S*sPy$M?+{W)``?@C zKe~js@e{I_*enwb)9h`~_8w_jm|9L~1YnmUX4=>?)w0%-+;DajeQ%SD2=(;zv~x+^ zKWDm`)$OB~dv~ysDeMW6!Ck$FlCdHClO;MlAgIM>BbAG6c`vf@@o~=_=07>gK_@-I z{x8}n-*afDBNqL+gf_6rG_}(A2K!i0bP0_8o|9S;d3VXO+h>G_wpyh&xQgWOjG~oya}&xOyO?_#+Bi@}Qi$UkZ_LP_t!t zw_Hi&ddY)_nwl}>XZ;2PcN0p#a=q9Hqf>c*Gc32~m%6Fxi2ruY#HY2u7pnUx27l8j zv}EBV8f&HTmRXXAlgH~Bmh|l>IU_JB#%Rg913KAe9;`9{;n=NdpX|QdY^;f80I7Mc zv)M4Zv{mmD7>8!XjHb8Twk0-eE0A0Ayqp8e-R4vR#K!}Up6lTbd8|ma$jgkN%8QbQ zr^&~71HiAxwD()O$QMvS16V5XMxG&0#qVe=``g7uvL9cat-l9%Xi*OPlv%*WRes5U z*PUEK6RMZGw#xAIn=i@DW7!|Ivnpy4e;ow`!FNrn(-xkSuj+p=_+((E*V=M%GDAT@ z@%~UqdMtS|DF2PPZXaq4y56!_1TJkeJn6z`kaVz zUYWB5+FIP9$y#jmudX_PvCcF!UOG~;HypS(_%+8;6tyuH1w$=jQbj&sXRFxOH){rE zy_3{H$}UVOs2`b7uk9%TYXvaE!8p^gm(kfcuLJ`C~~VR@KPU7beJaWG&Tqn@?wh_fZmByGVixF!A$R z1M;!T(VxRNb`pw0yF;06oOl`GuzSB&N!a!Y?p!X8KLh1bec{l>^ z%~2s~`?+gwc$fr0QZv<}84SAOH*TOV+gM*GbLvm!5MkYbC|6EPSEQ|1KhlhD;L zoA?P5#cPH*FF}c+qRES`Dili;%$V}#&6`UB)@v*%8gt}0=8QTa@4<39XHF3f=Y6GL zH4ERZG)$u{xl1UjMmtrc{(F8s$pa4C%k!%CD0wu3f$ z>grksYwTXHUAz1`d1_>j;Vco5HLEXV=5s>jQ}CxDLwZ~hBp&Rw=z}g)8OeZc#27H25fay0ss;@Y*uTRr86!s<^1AHXmjyl5~k2F6Fa z8puFU0x7MCT+5-$0m1#_n>x#ReJ7U#K1G>;t-bZwq^ct?h}qJP$IGD1ZY|i))aoN` z!MR9>oPbxVO-%wJXhe6nf~dGTKEPQ{lmo?h3I=M=Kl#L^@(-xoI+F>j?$xzqW4q0f z`&6rvH;2*zBAT!I2hC!)g!V0T>$|#~0UzMM3jJ@#<#vX>j0F2~*>@X6EPwj+sb|EW zZEi3v0DlpeN-|V1StMv9U#o3UQptGR{QcAwXL3q1D1YvIn?E4cyx!rQx%1|^jtL~* zr{0C>y0x`628)7;i%@Pc?r|dbIpw_9h8q|N&I>h^L(619r{RY~t4sFlr%aNERRDT0 z+|7a(+KT+1VNuI_N(3Mzc(Nt9acl2Nj)EX}&R^|zL z0;^^rIyf)J;{tDRzewpbP zh~6|uj3C;fM?v|Z_^uv6m)tePZ1QPZ;D7o7XQJxB>40{I$N!i^2 zv)J*-j>J)N%_}wopkOJKAyB#T^d;3B^ZQaTOfbka7zGCJ9YKbLV(Su{Ab2w5@Y(SFqxNTlXEjZPxkg0lLFI&zLk{H^S;k_^Iz+6 zhqH2eL5qiP*FkkwxOluYB?IESxta*y_#8DyZ1g_#P$!WnQVco@-^b+5Cq2emQv; zNWEC_!1%fn@3)S!qJ(awK`sVd(jh_68>B@F-`4!c^-K!`!iPu>rXZFT02p}B46B!f=$h!UAmHcX7Z|G$Qn+aLP-ZNikA1lS*@9!fvhmZG2 zQ2({wQdSSB6V!I#G3Z}ou zw!tU=-^JTl?IUk*KDIQ*c5?VDitvp5v#)cv-Q#j>W?6V}v$~x3Yp&fU`V*LXpf00SN5g8_u2ae8?5~RVVWWOy5g1MLo zTa2nB^`r9>Tu`Ij9vM>#9#%?gsLV)Pp9mqWbx)pu^ip-7-d7L>`;Z1peHE~5+YI!F z_P@v1-=BA0cxawjG>48jacfTWT;cYgA-e^(UEi55fGTNqe~&eHvO zpW@9pQT9^Z(=*B6?a!mH!`C6*_qPRf(V~Gvj6=;Cj=ev3@o+ouF_S5V0|dQe#?K&b=YaNgA-z)xI^e7O-O`eYRCI z2u>JaOwGL&*|-1aw1J+%QplyzGa@3VC$_{60@^UceJAYBTWqkWq%!4ODn({;Y^24N zip8z5UddL=-gSZoubgM+b@x(o7jcF&1>Zf zPqfEcS_|G)f2Z{sJF5k_Fu~ba+WB)`7eLv@Lj)(Yr2h1B67>cM*J!c=u#bIIW{T|Z zCt<6hEj(eeW$gv{bMI83<)Es^JVU42V`^L5-U9d%iM}e+bhhmeW z0`5W^UaaQ=^sveoh79t!i@)*;iXowfFFL0qc|N93B7r4R7h>|= zBJsJ61wfMxeueI?-w$t=DUE^s{dYE7=t^Ejmk^6+J#G61@KQS$hcMc@TZ9qN75oCI z8fESTU4L4)VIBcH-QB7(ffF#iBuHF;E9l(e1lvDII0L_A{T$LJY~}xk%}t;s4y3TB z`DN>C%FX5u5B<`fQ1NWslKQ4Sw zGzpF^xw=OMGCwgRwgQ2Gtc)VM7DK_c^n(tic(xuu3E%-GW|KkBF}9-QpGZ&A9M`|d zov*I_#Gypg1=4(o9;_RkZ}1l{u^DQ;27gie#T1!TaV6+*MMnr909yZlN_!yXc^<}% z{@f_Zlkpz%#HkgDp8(>Y0FWIJ_hGi@$na|k?jAu5&|{Mj5SH;gKWAVULOx%(&x;S+ zY?r=kN;<$uXja21PTNPC!(o(uMQ>Tva#D%R82sto%D!|Wmu?pw_Qyr7@|qLa7j?HE z5f8P5K<*fJ!WhOMhfvR1XYi>r9Z+AhA*iJ-G{(1-_5+fj51+*s8YANjoS8V;@1y6o z0oarA(ZN#1ogXao4g!|tWGA^dR&|;=(1`4}{^E7d!omR|WhrnC8G#yWT?8IiEBimP zap&44^GnVdh+Q#tvj&}Z5s9;k(GGK$i=B8j__PH>Fd;9D z%cF{^iZQ#M-nj{AFa;)hUs4DzZ-j>0gdR$prv6b?xNgK(#`uY5)726 z>F|p^r{3OV0YJU}KRy04Z29$YeD!d!HpJyqja4xB`eFyxj^C|mov#c&I#t&C%nX&Lrz-9(gekjRw(+U{<`rM|BGh74jEi=St8 zqJ%+7^{^Iql$5y2TF!(+LqqKf-%dXmq@txwyWjs!f=<4jRg=#E_4*P@a~Aq!bz|yH zZ*ntB?t8SxYb!dyoN&`w=Bm76Ri(_^O=;7pE(M&_R^-Jif8PE7I#8K`8HZx)8&WAWK zi$Byr|2n4B9#DD2ua$+`$#Bk6;)tu>fC6vsH?{HpoY)Q!f*NphmVYUGOrKo>2F5kM z1FZ^u^ZcgPx(Wtvdg;;#f2^&Yau$bjOtNlg+Jr-Nn*?@FcVUF{%JCfRH&IT@sn=a_ zV$Kk(&x7TCC)EcJh%6!d8e5YUB#pk??N5P7I9^^}d5-tOn)|3zIuSZ9Uo+)`O9jJT zC_wixi8np|eI+*7wk|qEnJrX3v4%rE*x=~U;=>16kREVPn2e&*y456Vyx7E^ithwEpZbcH$=H3K9+?VKlW5O(+qY_T#w;?It`0f)@7XHV}dUBmJ zF8}_%l=q+|hZh@*4aVk3sB_NI{fre|`}Dc7psQhV7W$;3f)WkOEhI`jhcG}Z*wi~- z_B45uNtzrCE8DOd$VIl*+Hn0{4J$v?V9N~P+6RTFg%s-B&>(?ffWEv8ZUznN53*l$X6SK4VJ9OCNJB))4_7*xYdmVJU$?b%X4moXL z{4y9l<$%!8)*iU1v=CQN;NauqGr--$X)agXY^7{n8O+@O0XzSZgn*uX#hnc(8O8VS zT_k__KoseZ_~KA~Ih(@Cpa*>HWnCB-X4P@H zZl;R86X1Vw3F&J;94#HA};n&HLosxI#5#n zo;?HMG%HVdP)3lYKmGZyJTEJ*DzBks&A=IbL*sY2P_^ej3??WdSdCIN;iDJixsJ+`OJAWCwebu;T$WmBY zZ%XKbRBVI-ATxSm3Azk#UMP;t?mfUI#L^Xf7i0}6)M5L$1QiErk#K_qUh~e+;qlS8 z5w9jZGBOjp3;TTV913R^%=z-#aVL2d-n(lb`;lKdb*}4U|ahKs#cTMx9uiuUVE|>#0%f%qU%y|lK||=q;v0+ zdy4&XzhXi#h>tv~>Uf%mq~~qj-BdxRXXv$X>S|hTt4~!N(E@5ql|jKckAn@D6qA)3 zc88Jvn_+`{RFqv<#pSh+2jVADkLuIjBLKo;ftIQ0w${= zC%o^QQt2|1QC64xq1}L(Ttt!mO<~Evoert*!-f*IsDGp{ z9#oL8x`8Jhmt;?@wJ~B1P|6m?AGYa}vto#*nDn`+h&sq+nWm-cg0Y^Ry~Cup&+@Oy z95{qSc#3)bWf~@bPm3O6n#TI8uH5K?X=c*zk^+T-I#MlXNl`VJ=FXJh@o#fCtp(Iw zo|WQC2qFt0ZS?i^rFOs%n4mRj?0h&+at?L<9RuLEk=i+sMu&(W`c- z5|L5`AY#z{^Cs%4qTa*3D^lg;=6LpljtYMhj?W#tqq$#}=_Ul>KIL>ows)}dssDBV z76MTqGZ{b-*1zPRrNDSB^7Jo3=$#W&Ekzz@wn5ZSpbemnwSM)6K7f_Zs^1sXdB^@1 z;kW%&=L;rcNg*J}W#KwuknOcd`!&84zsT&iZQKiunM%~xY`E1w%Y&LMYeukxq|>a(<`5S}f-yeW>cCgnl>u3S&QKhQ;0%|279PW{{p>-T+!K&iRd^Pp*Wx?UmF1?k%ZLNEy* zA_|n)Rr5Wsvt_?K_~!YkOT*@z1xUbf(g2%Z%ZK>3DIQP?KeQa30&Vo+! zxWKT^LgwDZF~0bOf_>F~!n_ryc*J@8?w(Hd(a8;g*%vKz**Y3g2h81|`MWnsg6Scm z#LV34=xMHp#ukFLTlCAxUV85X7|v@U5xJ&0$l|@Z26k28-Xnd(kY9Cxc5$7j^JCg& zO}b7%?woG+ydH7~@TIu)($fPoIYNNk@I=fTzV}s9V^_x#eV*!lDi-OtpWS=E`EgZP zm$yTm#FJvAq2UEK**G54@eJv^^!UNd54ZHvb7#TPL$)H+BastMtA1t9lwVRz_}Ej2 z63|7J&)m$+Ih6G6{r<`;ZOiM8=`Xr!{$T-vT>h1heKDrR41RJgqLDGc^6DbIxmZZ& z1C?CO$Wz(QQ^36tv7tVkEMmTWpuQ+)5N(8T5hbsIBI0$tyf>cJ^=!w z*FY}EGlEIqU6l^{bRlV0i#AJrzG#uPB=pIwoq&|>1z@YyXFA<;`YRd;FKa)oa)}zG zUv0k4POJ!VUoqy~8H&%pd5gpRlnnjoqa4b3pI6~s$-~8~yaHw=47#L7U3+Po zBT0z-5&Ski2gb1La-ivHB>TD3I-9e!d%ZPbf5RNn`ZNawbH;AjVzQ#T3+uurt3~LA zXgUrsK<7o`_ZCmdhr!~_?^7j31g!^&{X zP>UF1P8p5uUCl~XS|08Ml+KHwuN#Ys2WW^9;xMoP$ zhv{;E(rk>3GrIpayy zdph1jLhyh#bzZ#^c{+;gXG?RV$GkIT#*03B#sl_Q{2w}p@1GQqAEIoHMu$T;aGZcY zNlu}FL5zQYQb?F|MossYkj%@p#%z<=hMzaHXr|!Yk!3@S#Y_YSwX8^i6r~IdvM7cS zm~uzc_VBmWr{D4O-!*V!gpjKy%c1DnJ>e!_4BEo72#9x)d(X2Ni8|p{*OCy~s#+6c z$j4QcMroC)h26og?!*_Y49PpsFh&*gpP-S_@|2l=UIS_h8G-E2y$HG2M%DjxAL&Ih3)u{YG+C3! zgGC;mu1W9EPTW**CxNyI5lNn+=3G*KJzwy(`ScV=7rpofxMMZwK{NqGaZch~S5I8l z*%FJ3urP^fzJ3^rme)B5P@bHNG~Txm?-^8UxuFh?AUm_4ecuwBYlx%kBap{ZAgHN6 zyF2i|-6a;mLgyRRngt%;XW0+#T4vkm-*Xx&(9uU#Hcbegj0Z&nh|1F8h|wdl4!;n5 zEHH8Fv@s4QYZ}y*82wQ;uV#00wW6c+G#)T6P`@u?<2?1*AHX?*f;IV$JIfm&sj7L8 z*9~hri~m7{hIIDIKthCzPV#2p7t}6{F1f&2)hoBAg?hEamm)8S9*gcugWjh{I3IO| z#~M^u*W}dUE>7fuWSVz@h_zdaxCraRc#2OfvU#O>Y?9|)wcCnu zNwv`Gm6z>1H0JKNEA*ZVi+C)5kX50RiqoGAHSxK|7U;mm_ zVzVVgJf$$JJx!<4<9?}yC^)S89^YiO427f7%hzJ#orElUf|Mi9_W+jUoV9Fb@k?&_A^Rz*dDoxE-ws}GAc?9mO&_@HZrXdblJ zQ_8@$b2RwROzigV?slRiVK9z{jXsrls1Zy&oR$ct6~rql+L2p7(%pO6DuMdt$%JNF zj!DFBk+&W=E9K+Sim`FAkOch!kr31=+$TUL!QM1&S9wEoT~nn<^8u3MGUGZCm`Dvdia%kb>aY$`?n+-W=6R-9j6jJY63 z<(22LhH&PThoitn5T`1!)%ldSd9FQL>wR8Lr<0Ggw#FtMTzMEtLAchnwppSP zI;o2&9}{%m*3^9&-xK7H54|OkTc`hgAcCvssS;TkH_-g|Qz_nuMI_Wl-k6eM`UW6l zPQ*@;bMfErUo9j@A0L+8LJH|BA%r%v^TF`Ibc}$|S?Zoi%ChOK5%GHzh!5YW$ZdeD zB2Fc#-Qx!Av7|yjvCMB56sUXi9dyiYon^P)J65_H-IHtMwXSi8L1UahPHZHE8wQX^3y^m z&kEsmDzu1K_`S`}jA|U{^kwXkbe`NP%c#May8x0&O!?M_M0KAbtK0(OE_vay>o3*b z^(}~)f73I45wo-4sI5z#S6X}3PipjiT4MO4i1gKkP^6aUW$u0Vm`bXaryHrb}C&+e}a1-B2ph`SZC;O*mDTeiA9=#vhB1%F3%jj zR2B)?oYnK3-9Uc4)&@180d%lTTUCs^iBNeANL}sh-}0$L2wz=*tR<4%PLf`0%83mD zFcVt|5!vTd53KOsX^~dI85qZe+Av1`2W~?%djZhuKk;kkVZfnL_``S zrH2p^X;6?xLO_sGq#3$Hr6dOw7=uQ-yBR|197?)-nDae{>$>mvdA9%Kw)sInFvEEs z$2yL+_O<_304VST4y2FAoQgZOZ^0QKT=j4sp0C?}p8nPIK2{DOGw7 zO5vfAzIRZnaYt=(SPinK$Vn-{YhClYEi0O;@=np?zB1-&Gk?W@l753K2Iew)v-Y`Jf(i-oZCU zOA?VQsp&I3MhTKeLF+)D4OtTjZ0WyrVoZCo1|>oi?md;Ja!tE%Yv@3UtXAk3z(sbL z@{7#dW^?bgspNc<7(61k^mWvKW&tzPj6ooasy#?a4T5o(a6Ne!`B6G&tT_cg`#Baa zh3?N$q56s~cP+?U%Uky@LdUgdbnj&)44(U%eX?5q_N1;?I(&rbBSMahxRwzQy#(9G)F)t{tKHu?-)H+;Cnp~4XUT^UERI6uN*kG2%xa;#pB+M=a%srBk2p5! zNNm9cqmid7y4fo4rT;;N=nHO3R+`NQ#eKwQC|W-B|DYBWRh6)Ul~g5gmZ)%%_|pm!hBt3akMsvS?zkp6^6t z8c?vp>d&1q5jg^;!9c+sL+R9_8!uWGYO?>ykNg8)5;!u)oUf5LO1w_Kwe<9}@f*`E z<2OV;vhnt&s7-KA$QdVXJBs$^qM4zp za`Ji43O4a!8r~h1?{PDYf#)%an7zHdE9Mn^&~q#bJ6k(DmZ3F)g9`ocvZV^KM{z;` zs)bf%K=&Fr_^7rQLo-h2KgV=d|BEj_(bN4LUSPcb?fVaTb3rKn5>r?lBz@h^Sy|aI z5_PM2h!y>0(6j>r3HCT~2W<=t-qe#ppds1f(!_^uZWnjqg7UK|y$9H-1nM({WK>V` z^YRK)vEUJ0JUnigZx&G=y#6}mu~0_nTI;*B3b4}3{a%&%N1LD(D4+i)ynX@0t9Yo) zD7f9={oweK^7at&3iFtX z41UOA6=y&V(S-d)F?E>E_)r010h8)GDqe=f@7&#cw25#*(d}@v`!%843GYIUg<8pV z8w1^>`x)5hUr-;P_ym5(04%KV<`jWdUQN{7tW0noM~|p|?76K8u-pz7V3xiFDN+ua z51d8{g9HGBz_eZ>^+<=lh<{e|*Ddf_P`N0)ZR|S22Cq#TE!wOc3=)qPjoi;x=5@lu z!%dR|X+X!g5mVUPJO#{+!4k9m`v%8Rv_WK@DD%4aq>+)4AlY|m9~@!xKW+@Fva7I{ zvLNrnRTFN4gg%RM3A-v$Pw935hu63(*A%>9*muT6hO8~-zmFrrkFP%-l=$@@ePU1A z!)v;oeYUn2iP8841q70z$)@%$rZTjTQJ|X-0NoD6Xf-ejHeDXbA+K^D)m-eQgWQV-d!n$Z2de_hs4JfyC#i=yPg-30+?6=H3CwLyJ)x&2gQei8U;YysI-= z>TK?)lXuOmGxLY~v~YZzrb->^Zok~iDBoA$)itM~kkq|G>{|g>N&(Hf`2N=J?q){> zmxwdH0?2^DqNa?Y)fZ}WI8HI`Of7zFtFMKJ$Ejk8jBnIuphg#1f4=S~Ixs5y@xyJv zHRvS-<=sivwBcViXAU-~{&yLD{-4W82bqop{3j44&r#z=wP(9_4hqWlLL0AtV75Lf zYaq>Yj)}MKwEiv!mrr=Aos3s?3=Q?~!v6S@f1uvq!c9v_=e-P`t9CVwvsN){@@KaH z{=Ivk=OY42cI!)W`e!=W>9v(C$B0a|(x@m2Yfbr;6iR?B>`L3B@Ua~=Sm_0jv5qAa z1rb81-l=nNJ;X*ve*8C3{BKbKLm2N#hPuu^*%usK^V=7!Y^WP$GoH7ZK=4EZW6Ad? zdp=M99cKEQlKFj-wF`um3=O&9P0Wr*y2Rm7pYj|qzJ1dtLv${)b8GiTBf$hb*1S?L zw3+ie!36mSg!gN){O{wRQ!ozCTW49I&Gshv%(1D-ekgx}oE!0CYqE6^_hCY>%;Wk} zeTD*yJrkEqd}45Q5HK4{gN3O>7Rzw+Ij#CCjKGS4jLufB3JrK+Y#LycJ3&I95b49u zoQ*~H=d}&q&YP)`kxSvB0z4NdR|E$Yj@-p_9$bS(!%kr5J^eHM)nCp@T8Qzam|gBe0**c2|Y|G&Qkz~@l9~4 zC>w#Rd6m;V8kGLpij2ZLo`XT}-v82o8w$Wa6)QAcNNk_@>3MgxkGl%~91FrE8n2eXMn@Jbj>k{XnTZfVBVug{9c#LY;Ghhe@;`KBNi;%P z#8D41J;b*45Y{-U-*%9#y`SyX|FCd3zy@>!byS@c>LAb;Z1fM`uXQ?S-B30~lZFr| zFIZ{@d%8|08Ybe}6*tDR2cjk32@#lrmn|^%VebM2cXnu~tEi`v&+qD@3?fhEy}fIF z;U%RXTg^URVNI5Fcrdv~WOWH*`4R|`M9|>O7Gt6{jkvsUgFdrAH%kFC7b!~s5{8Vn zbjVXE?RwktG~hZszO*gmI&|m(hnHLbB?nEmEa1?se@wPoTHsiwB(40O4omc`0g61k z?)xqJNLLAW2nXG_3Hl)s;t_%$`H+@5Z{Kl^0o21|;~e9^7@`8~=x~REN;Eime`=lX*PtCM52g zQp-fGJwfXd*unt9ouv*sLf?aw%qwL73fxKlK1yV z2cZrQ+-e+Mbtu7kce|HhhnR-KVz$w}=dn)w@{}*%sET=FML|1JB1OJ=Eo4nHwA8`i zR?$&YaAZ!?2V;H&aw543*Q7Ek8rS|sh$0(~t zw{e5e+4jLJ6$%g4g1Q2R=Bz0Wbiy*4@)% z_yK{h6i1Ypn#wj0>AhZZU;{@H+Y%CKUA$9)g@+HJrN;>N?EM8{XSSHMVBEfh!tp%i zYu!WyaCYViVrHfKoQ*VP?Bt>>B90`3bw7-iFqG4vgJ&6n*Cxe>Qo8pFZ&5s&} zGjd+-ufGy})M3_H5zV<+w?gH~+z=9TllMK>;y-|K~q->%Vp)fHQJ3&nmn%mDPQGy_5v;Cw!IuX)4^OJCY|8dC8 zOAssm4)+HHTlx}921Ofi01{H7V?W|Fe))p*x8pTFl=MAbABFG#3*KqLG@{9f(}^&p z+8DlENU=?}?RvQ~j=6yw6D4uwoUOq#E3mo}ZTo)(%5t^SzZ#jF+X0iS|Iw(}DGA2H zyffP-`cBlLzb^kih{oQ|JK$O<#4u99F;ZY}>KX0YJB5jO>6nwHTfkhMl1sxkW+ltH z4_|Kx<)rU{+_e_z2Xr}Xmy2tg!EGtJE-Dd#wjlHor$JO%@ZW;k;3c`bP;D(m*D=Yh zxif6Jsao0=Ha0@CqhRyDY$lC*5vbq95_h(muLAd`%CL8x_S*i`dp{%E-(8~#n3z5m zUWHcI-R`kHS_Q}=N(CdWf@ zulGEB7gt+fH)Is9`E=i0U;loa=R{;m;T1ymlqt*a#L)L@)4ab-4Qou3)(c6b0X&!nZQk{O(g7 z&T&%^Z&du}Jd)6o;~pCU^Q^4h_x?xL0WeAcyp1_2{~=fqnE1mN7e`uh6i`nGWLzEd&`l!wH$<`ZGK{kaEpZ&}zH zoYm*DHCBOT{L9cs6l|ARnw<6*ld>*%#&+1xZ!4DNLjNHokfIZyVP@tJ?|=SM;+ipf z-F4Go`4Yl%53PbPt>b$rTJN#-_$*Rl=1Fa2;xE46qLp6+fcq!Ta}lNroG!;xHW_l% z5wmhHtCP*+2lH>WtKbt#-w;YEX5-+X@o?)Kp3;sW{^(QMw|hqbl!#ZB*d{7v3CD@k zhIO+dxnQPyH)TUNzpr=m7CxHXesp7ZE-*j|?z*z7aSv|&CAaKm+^Vig)Kq-Kr6MIS z3Y=|>U!3XV`qwRseq$88Nfk;IlQ+|%2(rHv+@M_&>=qoasi`?gMc}JE4lcocFfRyN zAX(->yQt({iZvlntPvL!)bhuBqNbzw6?w(>OEc*(3g4LgT-0cyI z3ZvUL4BVeN(nFI3@>c{F`{1cSkb7^wJx?uV*(W5^+xQ@1#x2>Se)?);NEamnGb5vj<=O^XR~=$;Kt1}}Ehi!5TQ6Dx8S+V_q5 zTw^U!^sE{G!F~KMmTGkgE87u)HMTi?7R9={8Poj2R;+t(kSrj;ll_oF}Irh=+_~6{Fv1fwgrt?D~gF9xnFs#L;LXxQgxzMg`PxB9<|vyD zSuGvNum`BaIrn)&I{rlslnitO0X_&NU6|_bzTd|=rP`jZq#_~ zQw;;TEMHGjpLJ#0C%??vQQI!(fg?t*-m;9oW{EHLH~Boa_T63Jy+FZXB6LvCCQ)$k zYaxO?i8ap2;_7Lq3|OrLNfgWfkSIXtia2Yn`p5NLRtOd!6xd_&MLu~Gz0 z{CaI0@d5K(7C)iB09bpR<^uz2*o4#ho`4!)5{ES1rV7VQ8sG+cY5n#xN`&)$hgZc5MY-P7gJ46Lb=qY?94j7d ziWbA|SZw@pwd5vq+a#><=uj#BFm+X`W>=R|~E^z2& zhVD0TP(&paIGGW&ITf}y9qd1ghKAv~i+=f4LilHZyz`T|DEP-DP3;&P%=IZUf8U`# zq7^XtpyX9XC1`xL-7O>jzLf7xBY|~rDkZQ(4xWBdKm~&X>?J?7HMIe?*DvnJT)#Yp z%Kjv|?mFgxb|>oZd|k;eIMOCJ`jQFuk{y;pYGgVt^8(n z{NS?7>g6nChw9DXcsy&0-dcFy#+nK<@5MMGUJ5YLKP?`!pY@*w`6*YR-J}y7lzM@b zF;n9E87vNpNG3vnH)vP>7wLSpPJ=n`K!8YJ7TPIf-W5$C58%k}&x2;FU1jkYp^!wN zkd2O}->EJph z@rvf_Af1ap(U<0zb`;Vu;m7Gh!z8H|eBurPG4b#h7It`;xDcl4(s&_x%kP1DklZ>9 z8SXk(U@weL`~N{ky$tuOLieYsnT}cz8b>|Fw@J1^!qJo8Cl4M4|E>xL=|FwoK#~x+ zQHp{=uwAWT*mSE+HDA@o>E1Kf3o}P(O-y6cjQhflRKSvS$^Ybx8U@$`O&bZ(~LUash{NrXDlp2E=EgXG2h z?*56;KL!DtLsxGZ-vQt@Ej%h7j3*-a52~nKFqq7VRT?F%seAJ+M*iYB0nc%ffqx74 z*LIQo8ksk9S~~)0Os$D@JURY=HK6O-X&rWxOQ-cSH0lm>3^af53&j@+%S}!^O66NU zS~89_d3U~GWou_gEUdBSb7Q5#k+t*>2fV1wP2w84hPax!dOxd_cFH6h?2q#y-1WAG zSACu04_dr*+a-)0ejS9QJVzgIenfkrX%7)zW8mK-E%Vox+y~F`9uf2%5}0qH+W$fCU60P3 z&MWNWzJ|m6Bc-@(b6;Xv^Kapnm|Q!F!IGuYC)uh(B~{(MZ#u?jpWqbP4=g!aj80tT zTjUozqHc7gg87aj_b*QteFmAef*2hV2EH3g{+A2ll>Nb%`hF8Cy&ESv;(wB z9#Dt8WT$>|q?XPPchso}3Q~w94l~A7bQ1W799zunL1Xye($<$?15QOj$w6Nri1#Sh zqc%oACu#hzf^;}%nRc3R>-fJ1qvCZglaq5fbj}*!GEN&H1C~gYFlBwrythE;S>ESy zg&f4o46X&qb}D5ot4w;_f#JXjtpKZPk+IaJbdmcRhZAo7MA+ehNU0Z;7S$0n)Fl0S z{#Hpn@$33EPs+oN;uw**nh_JQ2*#pQG_(!n99yTZnnUYB@PM zw{$x_(YJNgXb>G!o9yidN^6b>5{06kEH8R2Y%s1FkdHA@Y8B2jJ$_+hCmV!>t)(Tg zG1rTGT?zTd{nxnW)wJ%_oBzSqi2QQ#TCz?a_XA7k7}>3@YXv2Tg;#0Al6);O)3I@X zDQu%H%QGfFUr0nI>ov}(f=G+IVlW%R1`@cwi=6b+vXLCATTQ5gzB6ZFyJ=AnjTE$w z7Qt)01@Kk*oH}u<*KF18Hby)9E-~sxFw1yS0O)zZM{;)!0!U^-(Ox(3@t;zn+gQ;Q z;A1bU06(5Qlr-G-*Qdg7W5uKe>U)AkGMXryJqWrBXr62E$#V{qbv3WvrMBK;FEz1n zkTIU+?l%B8yi8+(cIn7bC!_O%GkVq8n!`d&im6W8GxLznu&wrptm)}z%+}wuoPRwX z3FX*xpHAx%1$iFVZ#&_GA69Eh4*9j#7&gW=EI+I`3=if%9V^D}yGeu(n&;^%dGt`g zGAE=3Q^+zf_oH!cx~g>4c#edftC#boqLn+SGDjMt4=*uGlh5Y_1 zMgkbxQ(fP}r9f`s?tKRSRe$7j)OD>zGL#8afSd(0Zjhtn)}sIRy?{OvmLtj}xw2^v zNXcFNWuGJmn_>%%t9l!6yhj43P~g-Cz^?2+B*tmN|Mnn*-?)&^zRB}Az?uoY%h38pL@ORGSBxSks#q4e?wEhN$GgL zCR9r1-dDov|6N!J00%W*YgLo)POx44um z0cj%AK5~H+E=%l;9Y}Eu@Go-5#=6sqd>V)9QP=ZoA zHE1{h-^4hNzXI4Vf*ES4iD}iTTwS;Sd98C|CThseX4-xG305jGwaNq8q4{z4IV-DA zR!CFu|F~}WNb~UWe0UFzLeO+>7Wp{;*zqX|PjBDw+}Qm&k>Ij|#tiSlgzI<7^epm2+Ws#5|%e0{MMF`XLh`Z61x5TJ9sav+fn_0Pq62q<4AXcZ6IK-!c zY!cMFTU-TF4@Mt0k$sEn?!&&Yd_mp8qSE?uZDJ+naJ+?x?lijVbzTe6ZQ}~BdeYlL z<9V|~74@rUG?C^Zp8qP!`7gjppP0SBHVKYw#QbiB{2G?iQ7gYOyT#=VM&O&fNjCXc zWwxVJe*-H_CxNL^hC>!F9pT(rMdnZ3CBT}XlqqsI5JVAuP5uKrzW%)!=!E5UpBRU` zE%%s5KDdpCf$gE6#FQT5pIGFD2PNRV1-}=*)l>~=pavlbcUDt)m}MRoBp$?1@R0n& zWr=zZGWa*yw!#G&E5*5|8zdtFS;DJ1r-nx%b_xINjDq6AWKfLBjBWHS{su_wPa^P* z2Av(>Jd%Hn)#!opkx2K|PhRv1PYX0}iak4}D9O`~yj5vY++hbPFwuUne^;c0AXK8s zvA|kcJ#h2Ohl(gkTuv~fyz>iW*MzgQ{iZubT&n)3yL>75H|Asn=f`Tg>%x$a$^0BKoQa{KVAcKk^}ip$rc#*pZxNhegy#m?hI~i<*!?ZFx$reDNc_(l zgWYi0fh^cCfYEWE%7CT@3`tVrly`DUy``D>aqN+m1$o$2fquAo)Qd1d{y+0CWx?vd z-`xTln>o&c_D@f9|Di<^apHWZ0WCJ5>?P-( zdj?XM6Ngzz4s{BzHY5?E1R-pxMQ?tDLdzg#5{EcNE9MD{Yqki++|R(Gg#Tg;P${fuqJ37}NnRjBBcthPZx;FTQK5w=Wm|*(LA{T#A>~pVLh2TE zJgu~^h_B|X*4U-mWQJ}Dn2Vc1UqXWEwl)=w^_XA(__^%OkUl*$4Y_j|e&I7TITcaM z@R5_J3DEL^vaEEuuXtICy^pV|^zoiC>x56sWw~BX$R2i0WYJH*je~c=W#8ui_-XX# z`7FoxA1WK4o=rVXe59KA#FbN???&lItjJKT2*3I9_D?UKP#E7&o}sF_`;pj9S>T0g zRINWO#Vas6y!%nmqr14>K8W)S&xdC1(PtgIr~dnXf;&F0H5I1bZMK{1jtOe+v;QRVq@`X}LL-Qi(K!RW%ykMJJuYM(G>5_Y=+aj0Fp~O-ESK&KEv)c?~O{eup!f zYiMNtGFksHSCaL1W8E&P(<}oi3 zQ`9*7LYdhvK?N&@;Ai3|GD7qm?&8q#MMc0V6^JQy5Tm&GDz~UQrFs>$OU$6p>T^movx7yWSva!>r{(7xn^MWO@v|uh zVzN{2PsgPA8INSj#sW>dMrrZm;iNW=jAkLLNa)aGe)MH+-uELa!zzoS{tQ`zIlnb# zFK7<~w~QV~=Hi6GhCuh+pJr`E5xTi>d-&k20CluxMzPYnCQY@6*->2Om%fU5eKfAU?%1vy3`}m-nnb ze`e5~*r2zpbsH5~!2f~@IIJ+C1ti62$eYzU2t6HUnj>9b_54nrS=bLea@icYDjS=; z@?;38cIgvuhtPa-NhlR(aDHaj`r_!)bte?gzV4BO>!0eRuUrd0EL(f4(?ZzlzHnu&Xz>_AI-e_R)D-@QRz5Z+_#T z_qpe$@A-;gRto*DU_uhBz^AHtPcyU6HIInmXu3a1>Md`d8uSKg4XP?Rgqv*F-?KgO z(snmX}0e-C2LiS7K{; z^Qynwx-{>$hzYyb{QkLhJUk$azHVf`-BzQefS*iKL;I;1j@DY$j{YIW173 zb~!M8(6P%p8$Fsuy)>2U+&K0b7)XEEb&)H3VANEAxMhA=5Fep6%2)0?VszhL{u?9` z3EglIu|6CYuKDe$qq&39&aW3zJIQF|qP0Q*ru&egw}w$C0tp7@=>nVNG-?{AnZL*X z^sOZGj?B6%8__YDc-DMM@fv;a{!-#~jc!iw5NDs5~V*njOpJ;;? zfHw<;Blzdp7iIOvuB!LVzopn}8T17$RGBu>oTfhM^!O;YkTU5{0f3g%PYD-%Z)VH= z^`&ODu0%<-UQZx4Ay9p@R5`8Nf*G75`Rd6vysd!F+q&OyWK*%R5sy~)l-KCWK#Bh% zf!cCgQu>M=#d(TA)+brxvECm^eKv~)+`@h*!slm>-%TWHw8n~zxOtQLK2*WgKZZJx zKT%Rk$e3-?U)A){oAY0jHLTrInk>00c{cV?P3;f2VUtCex|f3{7xZI)>OoY!#5S&^ z+3XH--ZcYGhW>fFHAlngzo;s_wD4|*xi!m&cpnWx@5e8N+>xr(s`^SP-@U2Q6{orh zlFxSAea{ESnvzG7KdJAVPwQPyLOeHFO-L1wo-9-anoGrpQeoF{ZV?Q(rbx0pE*39T zsd7|8i3kK4CUj2y9p2gAOi3{CUS5O$w01h@kQ^D|-rO{{@wZ9ftC`>u@-r!>bUQMZ(j^?afD2$ zd`QLBai|RM~Wdz17!Rb@xk7eHZKm*TqY?2#lPlvn6sfNA&(x)!> z`$YlMOogF%fiW**70nY@uZCaZiQT0^Z-O_)cRwtx{m9*Z8vQ%jmrwd(F?nn`X&HN> zsnImkrY<5$P1pO!p61+K>!|Mh3}umNib1^G&zhl0u@f55IG3{NJ!>;%=*Hc%iBwIsh)d@#^DpaI=rfe2_@D8rFq3nN5 z|FA~_l7Udj-Y)o1$#G7j0I>PB{l)J7gIDPN?{eV}9|?~-3(YRSVEpp8`&`$n;@i{w z#NT~6cTn)K6&Oq79pG2?3v@c}+OiMqS$F=0_#_>}jV7L2E&}7am2!dz&-Oc{>S&YC zl0?`V#bWbU39kq(ZxoB+KRKL8=*s>5&+%>>sa@r@VH*ieUe1%VrvZ#Q6Ic(SyBa;N zOkMQGo;?Q7ZIrkE*v>GVzG|?=mIY>-QfY4GI3HH;X0z4+6*mHlZQh%2C*pC=r!-BT zKP&@|vKHHc{${|^j&7rE0(h_oB}DDw0A##w*3gH0tOV%dK;ZcTDOWhg?NCc$PT3bN7MxC*uteI^J$)axvx;QO18 z9e+|*927vbmBJaXC{C8-bB@b&>E(wCCeR>Qd=zQ+9k=E+wxy(=f z!YJ9lqEhQ`ESN`AN3a%k?lx)3iD;2fq@9uQDcZ%u*&NSh#{Qn$#zDOy-?SLwzW!(V zp;GhhlMUtU`4dF%{D$%E&vP6rhg%;fOJxPsU407v*BG7vu&fG%n5OrCpxO$(-i+TCI$)c>YmQ@(5SCi=JFtX(q=31b90q z&|QIm7M23!(^WBUG2U(bEMk+VhBU1BBB3vW2+<#p|;V~t?V&DjGheBE1< zviS7inz8Y>DN~kgLLR$j7OgJsZ5;vp9rOkgfKtoH0Q0zC*PjDF zPMS#g2z><~j3k6X$e74cw%A$fLkWO0?pOQlA^8{do@@_hg!1v_NPKJH%sgmHix3hl z+2o`8xNsq7DP$}EG{xYvf@dyqp=?OHzn2YKy*3U@H0SQaAT<{j1pp@thK7dIcM}AD z_iTQp1_-?#p~`IftXKO}UC9=~**|^KyY*C|_n>!Cr4)MI-dRLLSPKZGbE z35Htcbgg^$W1!2vzMpK^Ar_x6{!!|Vo|2p6RhgWc??Aa+!&&Z|3G&VEa{n|HhOERA zRwr>k10SX?*9_PE6U*n-oWD9Qc}9yyZ>sDT~fNbIeqhb`=9Q$D6^hp3dR>QfdOo1yIu-5#kIkLHlaEQX< zd@Znvs(E4uN_94lJ-81ro}J>n;6X34-rx$yzmfAu1lQaY#eVylH3dSMeAAQeu4O#~ zi&hX@20ita1aj$neI3u{vS562cUtZ3RC6y?boCxewiVXdOs@H?x3Q1;ARQSkTv(uU zA?N2ZK@J|)xM;r5>}M6@X3=+{7f0*+RVoNcB&og0)EdyR2wILm!u5!Eo;NOqV2lpLJg{e;L#+P3zrFw&_}PeMHmX z$>_v0!M;KMXe%tD*TjuK&Qu;Wv3d#xG;qr7C_C^*VCBvh(07!;m`Ku0moYB^N%R^TN*I0X{7*J2R zw|+B6Zt_FMZ(IA#tmE>Lb^i^xz2~h~|Duz3eMyzcF1}r^Ot$s*&g{!@&M35W2(Xp4 zvm>EhRaB(^<0lV0=sy^_b;NM`F|b6VHXe;ol0pF6^Rvk`wEEqw#pg>1VD4Ab!@YZ4<4)&(s>x+T(35fSGu5DWDdwt!if2Vw6>Xb4MhS&au zha%&^5W0)sKSRmFZ8q@Dm{>>mTXSI<3$7TKm(j3l*k;` zk_bPU3k$ed*qI_|@fGb53B-|g4IIpi)=j#+Rs}o-)WsuY2@KnqZI=fEU z8dnWjUurQZ6o1KbUp9mcu#;+mRYP!R9Udicpi4J)HV^>%sA>K*q65-^Z2xN&vCB$8 z(c9k~d_gn>NCf~Kkbm0I6Mr0EAHL1l8MPOUoG|M6Tfl3B0 z)%WyKC~D8zCSwVpwH4@1yQpko0Wt^=y6hunMQ=pIDG8zYiaIdICz>1OzuXZQhU@Pj z$D^V$VAcBi%^+Nm042%Uz%8J^EcioLSvyp9!4}(ls7K}R=pBnY+kl)rlN@efkCLy} zP3`+g*qlcv5lSjM*rVL>-o6$I#Ol^(oM(qZy-N*v`l#}_!+Dm4nG)blz!j^;1i5T@ zfD3(b)z)2fNitK{j@CzZ9Vha+?@80!rE@Nq45R&_rxK`2@)t2yA0%aiPWc5V+tqgnKU@ zXFb3?OPz^ui154(>!sofHa-zlY(G8%tV;(Ikjo`w=NUdmJ;cErsenw<_rgMEBa!!= zRAFF~t83;{k=@5HsIAz+JA->A>jss3-Q&>>SX;QeqPMeEVZ;i3&=@fo%E?a=pX0GYjBqu9U|ODoG;^ z?74rO^38Lzm96_}HTfw@$tua~GO#{L~(o*#vLgG-qR4 zhfjhrbp$3(@|c`66%+Qj_2aI;_Hd7^Id`#EABtJW=rcI&RXmO;lc!s@*X!IKr3k&` zo#KYG<+n15K@$Rf-3B@Fu5ymf@k(C4uj0P0R9%l}tl2Y&uY*R;gja zG6G*|-LKE!;lp??6^poved@<>n!M7$YAgFu_QG_+=|k!;`~WfLy-nvcW>H#99HL4W zq6Wwvj`pY^2;%1ZMc@w;S@5X0M5ivnvR+~GJ`WF%uAxt*;_WOA(<~<<^`s9GkWt@* zr(gjr$_-Nxiv*9{HE#K|SE(xrW5TMzT_|br2YcO7LBfVu=MsMg+j8dHgkDh;Jum}{ z8=Jf3S0v6MS9coe=w!z__2{y&T-9T+n_|bEdQ_Mj+?IR)bk}5Iufv*g{V8iBj2$AN zodZk~E_ePdR@z3|f!PfEvg&jR>vcj?S!Lrn5f85Y1Om5v=vna6JoT0k94;UA@L>Oe z;{Csq;4Wj{yOd}xleoR8+(b-Mxp@M2D=Rl3GOn|6u&Q%>U41tl7jGalhjNIW_R=|| zv!y+KL&PBq+759(ovm;%DA1asD#qjqH-}5THsD_3nHRYg>LUx+;X;#zF7#}k>da}O zIHODPrG+-iA^u+LqU#Z#Eqz0OJbUhns#pV%!C>gF{z*1x5&wZ#7J>ikrcH}8l$mL4@9>8jM(|+vZ!y%~0 zrSv7~6{5`r*_2bYI0}{6WEIC}^X{N0pdbw)!88IaIo@A-sV>-K@wCd(CqoEe`kG&( zOeW^h&8cv9il_7K%e&FSiwh7=AOIRR*HFcl-uH3SCJGaZLT%+zs(BVz-w=3>PByw3&N57G%%fV$JU_e zm#UYcVf{Sy?c1H-3vx>KK4g%bW|obNxPXJNrpemji(4K`oyTCh0G8BnVPr=jas>g$ zXS>j_Wy*$YE8i?n%#ikQ`uo$XJ}iQ+cpo3UjaE{Y+kfkMK}T9Tz&Y5RJk{4m1YKE$ z!+L9q%qAHbu*M-x5Ao&tDE`*Vla!_nCIHW4;WT|Ig7G$^5zKupn{5M!2n+LUIeV>o zFpPnZKj6QQ-y1FXQ0%G3^U!x4bC?ZoD^o*<1}8R7*nT13aXvmi-k(#HkYHB-D>4V* z=Gs$y=#mXTCC|~Aco^0mr-&lhBt-S)Jb72u^@fKfAoXb{SPi_vcAck8sq;q;F*s~) zY$wdF^)5eiSo5=lME6~duedl=9nGK}zlAK42KH0sufd>ljXDf15fQ7~gT8X;cb`>N z0E^G>6Aj%zdnY0^<(#Eft6H6td>=s;wZTz_r6%57XR@WtS~xFs6Em+*N8}JHb%4tOm zTXoZt5E3*F?LP<^{kn70KaJ#LES5i$^VxQ-ms-?xZSLj8z-5U4?T1cK9*rFAA@8LY zz2LjeYY3Pi$b3(+AIK@r-z1vwRPKM+0->k`+D`d`30KPZ_0^g2k;E!OfQu zaK@PoV}VKy{Z)5xbc{)JxpxMvq2+Nc_HH%@L<5{H&tjTAqo5%Kg^$6oYCRe}JFMVG zZ@gLSWgJ!fuI~@ySFlbTeAXo6vJ{A9b&Zf$Ib&~ztEb+=lT&16Lr|xpSmu2X2dZ<0 zp6trR-nbzfi{FmoEv~=Y6~~-l)0f=guCCMPeS_;#m#oQ#fso1S>f%`E&M2XT+wv0` zxfKDkdWo#A6iVR8H&+OVfX1y00m0&>9nf+nLm*2XR;3WNDQyCV?gR%4K#cb1l3&QB zXe^drDMvP>di(<{34Up6?@$N7mQot|8b!0mKeW)15IpXfHT*BJ=7R;ro@T8X1vV3-GCepQ>v173w$p-m?s)J7d zfuYxF+t1=g1|Rff7|YEYvYQVbCn%I5NNCR|j?$NjQ9#wazci6QiO^(a}4vu283U z(3dZqjJiALE9{A(-^AMM6ce(QED3LIvNAuz*moh@K6R}^y@TDuN_cK1d!I9kYwwxL zE}qWla;|AIB?srA+Pb21i}FO0{VKj1{y@MI+XznkKE`XQxm!6%z~(&XQhp%%IK!3B z3EuaNOeWZj)Cr)OyLupEf0EoTmLommt?QYBva+C|oLdQ;TFK*PKK!fGG7DL~jWmmM zGmJa*Mn%`6E`hwdYXU2|(xaI1=}_1WC2RJQ2v=4Ib~1lI3d8Bmw3RV9Y>xAUzY21t z&f|SyGrpo(b28a|H%$Tsw$VKZTfQS29UW~m{6$%(zB~(ZThX14Se_kQK?}UJp1xfh zj9r9?5`nb&S!tojqq4)g97=g5B-lw4(PV?9uzygJHAi%VCkIlXlKplDcC}?&X4w%X z$boj(P84HC$b(#uY)g~Plw-pY`Tu!}?zMNIPE9`^hL80bmnV0Z{&1O_jdk$%B)02Mz$kai8@JTlMphF zk?lBSmX(M|PGvRhy_LOBQT7(c-s2n&=l6Uab$#mdet*8df3NE%FVFE9_xt^Ee+ma; zZBpK@o9UI`i)c%@WH8l{DAZ*s6yu-Xno@!D6+mJIJ#01&^-9bG=V8YDf|<0d%~^Dl znIE(*Hp|y0{R;;s*Xub~WfM|xpU-)qIx=vt67k)S^m3fiVgh}{hu`}r^q3E$YM>gw^N{nyK#N<1S?9~hVa4GE0z$cL6?b#ncK0W=2_lEZ| zDta3dQ@qZ^{oYr~s%m}ZBBe`b=c87M013gR#+65hv<&(k)HjVE#*KFvm$C<#@o&GF z@|$ydld8e*nca+~W0KNfq8k&Xwxn@vLQ{^v9`?LX)12(*|I%Vvpb{SfukprZj_1>H z-50;bB=-6E!S0pD+NGBpbrWJ$zQZ2gMT+mAPt7o{5CNQ}X{(#^&PBWdW}U1^Md;l5 z;^9z5>iW>%08uwqQn(xB8ZARl(YWq?WS0rlD+WLYK2el64oxhyy7zd z#|x9Vth1uXet|yE@eH z#36aFr7n)^^;I||RE$CWxExtbobfY31Bupe$!f_*Q~bku=Lc=3Z{Oz*g`T>5!9f_M za-2UsSF-g+qc;|*>$W`V=YS|>-JSrPXxca#Zk%3o!Zbwefrlg5G-$drL~3fe+I#oz ziA_r-@;5sTnO?@L^_(LbAc@~>Qt0|2`OzA-c2ArIH!tpFdt`~flELLxi&lKI5G-*Z*yK4-45s~qdSiyMFHKV>q4%HbROV>T-YUOYB^-qXE ztE?6CA~DXzrbl@NgN(W%+8Hpkw;ZexvxHpoS{2@_uYRV0k5-6U^4ThP90G>_C(tKy z1b5zW0dh;wE>qC0#bpJpJ<)na?tpwc%`g+45Zf zt$T9hzu;}X{xZwmj7MeYZEKdKx*YU#|GA&-&1>ewK*pKVHwbPnt*LoRtHX(Ud4$ns zuX+@!IOf#gN#fZLxawO%uTE8PVc>sIq+Rr%DoJCnwWJiK z=}HJD@^{6~$E;4-L#>;f)_a^9l_(cw{*l$X*CI}uZ`(CJQF~aF5NgvB#aN5dZT!h> ziz%8{GW$|bJbr(j^O)#?b=`;_IbulgZOzi5OUnFj1*i*hC6YeVKUVRd2z@iluyqI7 zW1-_5XIuK6%ixvF&*V+xnTm}WawTNaT{B8KYokwXb_s@CZZ^pxDukA@2ZUAX8!gtJGp}yTwyH4_=T0?U5Uv(vJrdE{ z*A-mrs%_p+pmi!r;|to=T~Tl-)VpD8B7mrXDcxO?;l>Ij(n)@DDt%OXr(dY&nn%eE z3oN`jHn7X0zwNA3UWNXwO-n7&^vQ|S!~ARKDj7R6ZwlQFUh}X_(2OrP{0GjcZrx15 zmz{Bhw&k33p_#hX=eC%_^2lcV5nd&;du0{Uh~z{UAnv)*@!|Xh(5*-|=G?jB@MMK* zZ^tj_z&?X&hN#Z!S(w)3@{ar3v$>4Uo-D&*K5zlx`=Z8SlW}(@?XXTy5ULmOmbP`e ztngFr0cr&KMwRaet&Qzflmg=ILLAjbb0h3FC^$kcbGFN@_6FJU1ta7VSyg)^ydaQ?nC!4`+_`5gZ-qiA$}{3LbZj zk!ynS(q;)2yNmbxOl}J<$iH@4sbkk$AHIfvUtxFEee0UnkVjwPs(kz<9$N*QqKabk z=tQ9pu^-2G^By*Ptu78qi+Xh%>Qzp>{N8=1snJWPmEbnjGN>nJv00JowA`jLv-t2u z%W*FYJV9?v&ax#Ds4mJ*bEqRV$_skpnvx2SSah^8i-v-E`*W>3b4OBT#1l50WdLp! z_3^2bwEI02P3UA&jX5i$CytqSE16^W{8NHB+Ur=fk%RE;;{68&U!05x*zeTGZ)(-} zj;zcg)$WD$$WkU9Qp)L+x|SZtb_D29qILr6zm{K@yC`UY${=pSsFQ;lE^1>;f_mON^}ovaWhL zXU4qlaTzP_a#G21E!NPsi$8&e@ukC0sasoQ8qU1SFrHZ`LmI*b8Pc`|WSnLGarazeSYb?Sdyrt4HvS;3QXHL5 zCeBu(=Ct&Uw6gTH+mlhM)ZxM3La#-BG$;a0maobqz|G!g@C@+f@;)qiuruUA9sA>F z>Ga}^47K8eO!fFvnc#Uu77Msb5-ajg9u?K_`IzXx$NV!Qzz!`{QE)IZmw-H9EJ$A_^U80`h1>pKyuO z9NJsYSnP(A#9*-W}qX7kJWQzNm69#an?bi9w1vM$e=5VGoubl+{|p**PH#U~ed z%&uWINVxV{j}P#K1v}>BwZl9`Upo%A;L@FI{q+HnU?3 zPFi4^V<)^qqqr6%6<)OV*k8L&bg^bC;cJ()SI5{<9)h=#ReN&)%$HWTq1_!rd=vfw z=LUW^J97wX3Y*>)NqjWE9bfVIB4>a+E!p^gk2$wJT9+pM<~qIB?$THI3*#PE`zQ%*9=*!tyt_ry)IKtFfso`nF+&ail(7=5 zP8WjN6te=-ip`?CrMh>x3Qv6k9|GVnvT7rv(~1=%A@o&ULqEu9xrvgR%xYmugnYta2Rc7|qz_ikt?TNUX1kegsL3;J|<1CL^4E;ew9W z3=i<&irF|qsSuw9rqO!@X!i22FJ$QG%kg12pM69`xg_^vRI+Kw7l=3nIs2KtE=S61+pQX?Smnuc z-K+?F<~>~0>P`5`qss8w@WLVD?2k_tKR(_Oq2ust)l`jXKd{Dxc3;r<4nByddDMV< z=12pJyi~>Nxr^8IW;{9hThE5k_Whsomy5(3cx*d@Vo*t$)6-Y)8nB+bh%1zPkle%J zhXwTLb>+DUcbQHR2P0S(;`s&go<(XxR0(5%1#+ZNO7-3uvw^;R%f=72(=XHx|+12byy*Q(;%erNcK7fI0 z-bJ|8(Mc!Uq$?FWi{)BUYdbsw*5b7Hk|a1iGr9H-TZ|h@XKmKmKw^h0k8G2+t&^^& z!)6LJ>2{znu?irtM3%>7W8~DqD^JUN{N8}8=AhaJi&#qE+NPD(A2@$X#&eMYU;AYp z-I#4i8y-Xzy!%xtl1c4ip7Q&y0b(WssR5KJY$`Hiash9?iB;PVl`)mo%ATiR44A9{ zT9#bL%Sw-pU5hNzJ_5&w-g}q7YcsyRoT2vh6AoLVsny_OSYV|!zkr<~uOy0l$AM;# ze+BcsAb?+QVyiV*>Niyt8IyixcwY_uo1ucPW(egKN?)?-4{tmSRkLlj8*Ueu2RTf! z$hR=t1c^oD1|0#^q;I6w^N`W0#Yey=uM}tnV32%$#hT6tiNAAWJcy7WMw2X@<#j3hcjuafVH$mo$|FW_E2AkMc6E95pQC{-Hzl?lb1t-dC61G;gO= zHK9$TI1I;fk;yoLp>2J%tM$f`G&(dL7BIhjlsuLVJwk5A#zY8xuXgV_=F+{>J8NeG z>`Kp3BkFiz^2;>;OojW~27k5WP!_=Pj%MYeG5j>B?+Tod?2TPf=b!oeR`q&aca?Cd zOWNHtP?V#5dt>rr=E)F!k2kpHS$euro$OrXmpxtVIb`AMAGoA5#g%GxDg=bOn2gw3U@ zXMTWcXGIfl_(-;}ucrUN!I*^ag}b!f5KjQo*%=9vfV0~IOcSWi;w^V4(^RcX*$#Ob zgpz1b%QgoPx3yOev^}l4?jskby9vO14FdxMHs2>-&kG4f2)n;C^<7qZmKP!C?U~Me zrcGL`Bzo7~>5DfmBVCiyr_-!MB10+VCOa2v8^2OKF2i!s?Lqik@68EAcZQQYdGg%U zZf}Grf!Cm|)j>hoFAs#q&NzlAfWQm0C)%*y#B2xnx@6Ihs3wc|- zp@|@xtTtmp9~QBCcrJI6#~wsN=J`)+gaLN~5X<~KDFA5E+N&bO*NP#Ml19(Fr&>FQ zr}kway<^~r0Z}~{`R5}~>EBP7QuEd^9;A&5%u&n9jgY&dMIW8PLx;Y2Bp|qBy2giE z=MW30KD{`#Rgt2uc2!W}G^;ZoI*;BbgC{Z%08_oE$gb*zzzkpqMo6NT^Js6MsJe)}fRHqO@DN144R5K~i{ zr{K`8+h}>8wP=zhN7y1P&086l%#XI&yEwTfZ}9@2946YiLKcJZH5nFs^QV$O)>NUV z29YI9$hzMfxxeEyP^Q)vIk?Ulq0?6VY9QJ^1chYHed=fc$<^Q5uYKpZu!0g356B8= z&`>hUG_3kg-?=Ym2s;hMUTU9{XWKTF;OVbk4b-y2-Q8J5gpVh~w2C2V9rw@_BtdB} zBi$fmNfL36oE*$kJ|8!VEpmU5Mz}Q@ z)(34C#A3tOY-KjoZQ@f*OJ1Tp_XY;~Q*wvBNdG`CR4#?HD}f}Scdev3(!5SlY?R@u z!ZovtpJK1eNsNza_3OqhN#us-aE$LB`RAX-fU#cC$H!8;zDnQI1#Yw9+TKO=#;8a< zRKqtM`!$i`Yhu65(+BXspXl9u6k|Nl2Y>BXGpk@zZ}q`X#!Ub@gLNI)N`_1J_K_{q zcs0UWkjZTHW)msVLaIV;*!BFjRnk|dbki=dQaQiQ+~Fi!!#wJEzZQBNuEyiWtE^P)hCTz~ z2BHpYcTe1rDW@5KUa+0G^TW^P7DG$B+;D0ubE8dYBe|Cx%y|ksQ?}#ru-t1Y)+FwZ z4^kliY>dn9X1b#UdmYz!l(8c$bep=iic`5&iJ6CEDeZQ#<>_qXvb*5sT0u)`S&+NX z7Ak3xD%OOh1;Jh-B>DK}B%8F(>s?Fn2Fo))gX6rdk+&R^{u(jhxxO(YjE9(U_EXTY zCn0u$fq{=n70=v+)Vi3Y(892DzZD)2B2Pog_HS)YP_UZ$LqZ6 zy^U;*FJE}_)+ayY3B?poS5B^e3B%`&=?J%u-|Tqq7S|MnHIAZ)e$X<=yk@?UZ4!Ma z+Ol~k^lmeFr}vYIr#7RI@mbjsPql>M1iqd~_7{OmRbFts&SM;++|l4}Tu-y`Ci0BJ z0P#tMXVu-|^W|qS$VWH!T(=nTlTl);`s&CxTxoh+bI%$jY+GRpea@Om3R?WpEw6so zi@jKFtBRaVC+h?u&W^G*`^b*Oxk*W7A4i-$UX1@0c&PnT;)krL&`XzA_^4^chVOiq zJycd!K2e(e@nMX~f;evq8)&Sl0NCQ^oNW_iWxqR)XBd)LLRB8vDZ8A8naK z$a}kbVKLU^5el!ZBt0PPc1=ZFL(VNrn%slyWbp?eqN>4)pJ{~TPjx^K)D;Tv2R_mf za&ze(DPKmGA&vA;GAItzJ$_2#DZmiN!^~~A(V3bjLp`Idm}6MF5iejp{S4)mc6X1U zyb(85__Q@|&h|;0;i{>*(HAm3hC0*kBD&h*8$C_sg?60|fNgM2+?rJh{dv`jM%-{A zPGv*qXLe{+e`(}N)ak65aR;A7S;Y4rZik;`Rk~^ne=6r5*?Zc9%)r@~qyZ_&H`Go( z&h=h{E+_lOpk+@%vq|96Ih&D{pC%Ml+P8UIgGQ~Z)+|j^$Jj|vFR7crD%q-u-CC>0}{0aL1UHW^{l8rsS z>h%oyt@pfSk$p7JrR!Rw7EjXU6cLMCp>yVNn_@$>wD$HU$20$h%GF}*tXMJTc%p3h zo0t^K@kf_UOiR0r(C`wuU)EjyYby4mr@IHA0vc2)&B1K!4R zO7qdF_Vd0B`8>?>M4C+%f(=PHx|Kxg+pS4```G34bkEMoP59k45)5BsZ2CTN79Mbb zqGPSTQ{z^}Po)o1o`&aiBw9@pD_)k`4dZ%vKTWnfRPhQ?ig@N48)uiWfw9n6l2zHe? zaTMbLzp;2BM#tZ`!zKg8C}*nYRHe^IK~2%pe=eJVv#qrKXdi=Du`uhjVs34yqYJG? zq@^l>2h-GktYwq?+({t;t^0b>wtSyr zGehH=VmDYVoTauXPN}&qQr~U3B=@wTruwKib8ZW)njfd@lS_;iF02k5#&HA&eLXT( zj;jw0YQuR&d?`(vtEL%|bJ0qY^;Y%C-EnxZ=itze((XK8O^e01m3rb;&+`rixp>D` z{}Wy=9=WveNkYPEutQqsZ2GlU4yLt899FPzouG}jmGk*ap6X6g*hW(sLf|KW)M~6A z?09Va(3wONqEW{@77BaJ6_Gp0$9zZbFJgZbwDfD7&U=$}-RD@HA%ELB9mCk>7jYct z?Pu_NF7$z@crMCdGf$V$it776UON+;;XcRGac%t)ffE&9N-6SI)sCP;jhB}KRqNsy zQb%-)4XSb-5f6r~zB%jaqg1*BmmV(#ES(#QQ0+}-IsQe2_@i5C6?>t`e2T8|)8zF$ zyi;7p!}*YW_DWq>KEqPYl zgMTe}X;@}!2oSS{ge#jxeCuJD_x7=RKQdRnn^SXWXrDOPX9r@yBhM+o0L)UoHeh4v zM?o{IX|rV_d&gQOXP#y7uB*6P{oL{``n+|3b0ehotQOeuSk_I8sc=S?(`_FMxDsnI z7|FV&$7}Z-<}yMBMJ2tdU9WarY#?Bw1&erY1&JxqIanJ#kIJ z&=EU`T2JO^{~a0+@%fVKQn$I~c%hig?u6INi2Irs2Y>c?dY&Kn}KCbk`niVYW^4~-Rz35Ou- zh^?lwRdiYMBNVhM9USN-D|;NR9qmrWVRR^EjaB1yhsqL4T5`#tho6^&a35BG zeO93FIQ^ws@Uqzh7bzVU3PbYEv)+?)bPRbZgaPvOp955I%PD!loDew08{D@q^Z2F< ze!9XFY7;SS!dNGsKX|!&&m;)JF7Om?3-~k=1ouH zP2d+j5!S#Br(&|XGT~%mCGgdO^XClWsp_etbvdid`1UN;#G0-k9e zzE86f_y#3REjcx;=F8nV1@7n|XD|JC1Ap-KMT*}mPuE?#kJ6{_2ym!){EY74QfjA0 zy#M9=QM)`$VrE?X8thr1!I8&Ih%oZ7{G#j4$B64}U7s+PSKf4Xg;Bp|gi#%gNoQQY z*u`U4uYkQFyq=F`W%vB}jblMZK%sZnp%TlNNIpV=)jWTa_F_^7eNlkBF+Hr2bu!Kj z0R-*K@!9=r7%ai(3-9V~=8o7}u>Ug-p9^xYIoqgKFdi%G0jmG>B+g-6uxrmSO95+X zeob3-h)}XxZy3vS@r#EQTUmZ4QsgUNhZ%7-cEp7}{JhlhTGnD~aVYm!2dtr7-mcBT zMXD~(2ydw8R|?kF`aqNj3BXE|4+h2usi~>{Cau()DtBHaCW`1(>0I14wxTrWZlPW< z#kX=+p_sb47FT9O)Or=Xszjb@hksHFIo5MsP9~fpfV0Nq0sTZa6~op=e;?v_G=JYp zv`O>S*-sp^AIRRSB$CrohI3#`FqDdP;&-X7uV@}0RwfU2#){>PT$qeoWQ#mYd+3U~ zDr?>$>gAC|ne)Q)LTrT&?T?wgnW!}|xSFreOa%`5XQQQi=&OU>go{*j+dR16TgM=O zd{CM3K+$Z^cd=?nKnU0vIe#iv>E5+#NXc!)1exZP{yWs$I%H=oEOEv4GbY3W>+w znXP@_@BY&*Jb$UlNy&$%pT`4Wt?pu|XS=Y$`A^;U&vamX?I$#A6|==07w;a(i%2q! z?Hf4ywBUPsSa5heN{D(xJAbOBuaau~JDQG1S?vl&MM23ki!TH9(oB0;LosAYpo(+g zsmA@KV)nV#=PnT`3s@#OOmKMvpLd6j5_wk6_`3{QAAX59c|~5jdj~~3!d*7El=agE z&e|!A_}?p6f4ibRfHJbDS|RL=5PjZLnzPCiWnJe(D#6_PFGmk}UiCIM6qy zFK$>ZD5!`lri{A73Zt5!Rh1n!t#}iMd{D9&E@`i!qZ21i@mBW~rg9^S@Sx#XP1!JQ zPvx2`eP&OVx`sxm_Z}XrbdnRyv&?m89v_Z-dw-BLwelWRyGEpW1~{p}Wsx`lhG4x% zeNCn=qGha~Ya%!9^c`n8a&`zQx?vdZJ*WG@dsjE!d&268_gWJLe*4>~jm*@GhIL6@ zj-t>Rp0lf`l;+ao#G4i;cz>pf>|V4`}<&`_ZGu`dj@p>OMsj7D;NTUkt$ zo$JM9vEISEwQhgX{vn!5cpkH594%Z^+T}3TANk<3FzvJv;9R#;Or;uqB5;~PY||G_N@|ZL=oGvc|0ktr-WX(4JSD6 zgHukf6O7X9`6jJ-k`J0X)e*tFD8ae3_7`XKPqkE;RGt|yP7ny45{@NWatNs{Ezn_-`|_O(wzOB=yOzYi}^J z+O0$?RwaI9*qEu*z-NWLmFPH{%A=B3J)H<1maaF(K7W2p8W`;rP!L_|wO<(NOin7H zn~IB1hhe>mE7xku^qnh`{TpS)2C>pf-bqitVAgzB@fk$~bf8PLg0!&gjgxAQS1Y`Y zjEvZ*Ls1J4=;P&)tDC%IG6NH@zfPPk^Qti8VMD~><*0595j{4~p&MgSXOan#8bAA- zH$=)Y;U}YVMgA|IExV-Jrekc zI3w1He0v+VGtE=VuvvP``>uW9qnkx}qp#f-W5R*1?)I5#S#Mp>8?R#*yV8}mLugK% z)Y!rw!_W7Mlrl#Q=;;d;*RFQwMyANexX4q##VC2mE6#5PI^&R1Q%hI+s_DjmR(h;0 z#zf)}2t*vKVn}ykVQXI+qx6W!ooim%t)-jxd}ZGS>f;P1ueepm7*?Lc_RFNcU&%|f zvyOY7{|A0$u;-nZMm^T zRc#-Y5!zDkLU@0z%hJrulgDUh6{g5@Q)uRVD`lJigWU@n)zK0K62XnrLgmU?2RU^(vU{vNi??MzXg+<2V01~0> z{d@lHZx*kQ{;^qO#E|4@96hsgyDsx%KUIowKef|S6H}W~;Yp~ZBnFroGLK98|It2J zxqlg}4K@pjxKx8=qSn+UTPqO5mNqOo=Ub{z__F&flv?gu1` z2KT+Rv@~3RuTx)81KAjTEm*OjgN+uNzJND+C^On)wnxEo#3h2?&H~Ke~JS_SK&Wp2!0Sq!rbb z6>kHZ-xE9Q5~~tjU_wa^9YoIUXXkP3a$f*d`1j< zR$uw#tl16>aL%edom9Jc@$7l-8n3;fB=c65WgAf1svRSy%(SNu`=vE&AUp38CiYbU z`!EuuqP#*4XIX?zTd*ZOmyQh%uG))-&1~@g4Bs|a za=L|1&GhQVTua~ifKL1JN1G93^`?jZ8O}CABJLx<>)?w0Wc^ZAT5*Cw+C0b;`J@@osJ2QBN>FsI!T8vsYU5~EG zUfQJdUWQqjt{1Xbr`p5|xlYIjV<72Rv@u6ZPu}|W+=gjoC2YPCKQI@)vHK7oQ{Txl zd2CU2u$qKg0VZE{U@hBvAG}%(fw=Y>KgF_VmoN(4>`{u5+yi&--c@}IH#_hxqF3!i zPLil@aE@gfN1gorLsrT+8N-iw2mC`z&2m(nvR5aNV~OUT2@4&ykTUbQ2J6X+lT26h zkFNM#G&k5ZHKC-}W~_;FCTBUtzikzeBUq!V!eQ}^>8&lT$vB&|#ALo8`ZZEot&ZK| zmV_A>pufzVk3yLXXfsvfW7XkRN=BpGx;&Ap0*IEWtu_hLIEl;WsSj{uSCH>h&wuB5 z|A06%nl8uicxG@}txp=++uI*g>YmzU6(fjrD6{g~(t94a zozj;izBA#4fn+56Cw%&wj@FfIi~d*5?XTIjBqfU#mAf?VvavLdjwZ6an6xd0)_C7mQbLckkk9ImU+?L5O?EBu)*_lr1FXr`xY@>3CAdD9JcFezIGMwyce!+}5 z9l9V^o#ihMgql|V-e=)4n(pZ#b7NO%CA<23-1#4bTdOhXspIqzaUpGQP;O`(8Bz_AQY`#*Eb$o*uQL<#)~ zV2l&Y2u%o_>)zh3iNlVMv@b*e8E}Py$X@sQS(Az}o%#}z1`BfCDkmv+_kVDDfpix2 z^!lLUV{jRn1X6W*5N>IDxvaJK;tPlLndL@e}W39za~j2D;=^4=`SlQ+j-EyJ%v8yEi%3T2^@TMTEBcfp=mTQlMj`1 zK=avj;Ns0F$!-0KsgCv$Xb*s{fI1!COizRgMo3@)*@Es*+W)B{Q-!~MdaN@uGn15% zS{!7lsrIiFx9b-c5n{z?=(2Ps+cY+de=g1k?+%n+;+_N?%=k(z$b4E7B8sq&1uorS-O>E*iLHdECqvHwrMB%Yh856y@L=G@mA~Ke!;9R3Efraa3Xk^pvaOd(mKk_u*T6f$E=@Pj5~81Z)s|7bNiwnJ8#?Z;b7j%1+f`D|*pOajT_5^NkxlOFG$?dV=kG(QD?fjX8W2K%QCOO2%R~ z(!EDY)Ot&?4P6q`7xZn8C=svh!Gz(cb@0;EaKGkto+Z<2TQ)nlON!G zPHz#$bJ>b(nBI$mfHH&l@o}5pXvpaJW zW}yXp45#3;_>hz0U00Z-Fu7LXZ#IL^=b$~>fnH@O%TS`3!)wDTs}mz*6$U{r?I0g5!rOKOj&e|-@#v-$UDhJkUH06h*7A7>BG2Rtd@3%;KqO#MADr9%dR!7 zgkIuFfnz_TN}Px_qdcIUr5;V0S~v_#Sz{7mSV+mK%REu5z8 z==)P$`1E!R5R!#=dwP1l1JC`|0?F)odTOuFON)zD$B%v4IWVoFcHXL&!n#|8w=4*r zL$@>AT6_LDsH2QP>2xb7HWD3+@hS2~Dtt-i=K%kCs5Vhy&KB?4rgjIm1DhuF!CNgy zKuxj9YKPbFw!)wnRtmkl<);ZNU{dM@93wlY>a|BGD)ipeXvG#Mx$MoWO*{z-z0{JD zdxZx|C;wX>v#$u-&xy+9@~M{*+>(wqA?$VimSa;3QXQ7LWN*UBY{X#_U~rs@a0~t3 z;5#s5>9&mTmIqU6|2m@nl^ofq*A84^>`X#kVWpmHKBgEU#-MoSxKrJ65gR#aT_CBi z9&>9VMNduJUx%*i#IfUc;eHW=gZawOCN!0So1ph)7C_uuew734^k;~`j18FU1w8o* z(;b4hq!%H{5!e;}mLvQ@vWHO8 z3g3%8{y;oe)lf`6L65u1@fc-pKLe-Fx*MLajSc_8f{##B zousp76XR|K3OB5f%xE05Uxvu2j@e!&Q}KqzZd9FuwdWcGjzshqoFwA@Tz^oL#9UP2 z(q_`duken^Z;a1m?_r44KpJa|kIrJ2m6 zWeXa6S+~WoaI4v9+GcfR>>rikUoEp=l9H6`yl!HD7fZNbM@NSy!%wN>43KDWU;-Q- z8k|x7gX`WVlpE?QrC=*QJp&3Ln}l?-{pI|R>WU;TfAQi4lvzb6-{j_sXdja9P(BpZ z7E>})P_j{A5xhy21ZNRoXv%{*M)+pWUz6R-jIwmO&AeEu(R-N-udzmgfF@W?oOv%rJjE>#xe=u`&B&g%-dv ze^f6vc5dFzp=ID1^OT+`ey3k^+0!-QJs-xjr|EVQf>WbEjrD28_aiIwy~Kbm6SN^1LmZ= z#QFTmRysJ#A7F>^T;37D8hQm(Gm%$|Nh7)d0)lt>-h^E3ffu4Ash(yZ9sT0J5@_6A zGSdu`zVLQdD7~)j>tBKoamLSs9Fn2EihxVh194&O#J}{A8VWi*bF3EL!^vL`v z6b(2*HE(QfJ#$l#SsZj^q)#2JhY+7Z0aZ(LSGFVe+ zXZ?^UPWxv&=1Fsyc|T}F_+jpR{O%iQ3l+GC`VnV5%^kn~{~pPS6hudx_!za!EJEGd%7eP67K~NO(bm)+QrijmNS8 zd8<|jWx1;BHq7zhrSfrN*;69>>E(fAb*M~|2pt;*jZ=}5ZyKMb$?9bOu2e@Q{iad{ zN(M%`Lh^Vb>A?SRxNHi;(~T2dfeGlojy-H&%>m$8a9z#d)t81BTiX?W9Uwz(ZRZhf zQ5K4@SEen7w3xR#BxV`-2p|{gi+^We8p$8nH@Ipca>anIH3g~BQ!7jRLhWRdtS{Hs z!8chgvH=9S@dV`O?1@2&DDY|Hdzsc4;^I*G62k4egCrGHD+_o_ZMpL^Yc?y$8t@inrIT^&pu|e1vlF+I9M<5#mbsCt69v zkJMCYhYvmA8#@O8#CQowNz31Xpd7I+VG9{0dTq{^iqWQ%dQ%|RSNk4aL`&Ws6$eZj zY}-&Odg}8-#P!Wg*>R#is@jltyjm>8X?4~{_}YtoIwO+l_u9~BCvFm)Czj~$bN$*s z&1@7BxeJ9G77E}V*Ybnar&TC1x{P!2$wm*DYav$34|Sd_vOa=pAn=)Fe2f`*>o-d3 zYdvo7!#x0IxxY6vSsb)%`4#c2B0}rsczSsSgShl<4RfT*N?Cg!ZK?XlqaA=69xMkE z&Vd97Mh?CN?HWqyoUz0tK82xb96uxI$0~Ka-r*1r-^Z=hTi#zH0{0$Q(iN5yg(^{c z2GD?xqhFO4g4W;N3`5%Cw^)<(&xOEH`?IhJ@&AztgLY#QFT_SSMjjqhSg^|+!$^rw zQBjV|5wC~St~7rR%vW(L{U8!TgzuBzk)%U)k|zh)0O4*4+YGKBcHB=AZ?V-yMG{X< zZ9<4(3bLulZeU*yjHvg4EXPmcz_@AWy?T@f{T4P9PUVL>_mnXE6u7`-J^#2W%6Hhu zquJv_xh`byu^PXBQyHKl54x$8!^^GLhZDfwbyRZhS)Z}294mhFhVv*cb$?{zkE@yk zEUk9(j#&DSX45>bzI_dY4uzBJV#=n{R7<@-a2+M=2WGizq?J3m&Q=4xdiU|;Lx}Jg zPoSct6jgz0dFq|9-Bb6%J@!1xh5xnMGzqMj(lhCjqdjmv8i0(z`p@?!ydH(TUMT+E zIHsXYzx1{VZyYP@yJbY_;Lm-m)mLAKu%QXniL(4`(4j{ zKtQk=RL{|_G4suspb1RhuG1G-9tY=Bxo zNZx-hR~`iJ?&lKr{anumMp!zfrodi8Z!w5~AebzLSKxdl`-m%!n z(i&KyJ50-Z^GnoG+`{ba^Qx+<-?evndHDoXuv`VjZ4LH4V5v`HKVU>Ny?|*W&x`24 z=nB%zmBaGr7pd&(!qwGPcmMqxq)5=_?FGYV!du8 z8Q8yxtE(caMZN1!IcIX?vu9+qTvsPvu6TKR?jQ0;pM^k-diphU1VE)vese&%+ zIYfB@w9y#^udOS+bi#OkK0Z>(-ira_1Kj`l*2bTmrm}y~Dcg~%-Kyf)Ro9W>;o;w# z{pr&uNHzkUnsMUSw@T2#!+yO$a!dm6b^xzJXsYr*fozHZa?qBDLuh)>Jh=~OeM3+z z^&$6x(P$dp{B!onzf$bJW@%s8zyNHx$yP=Ny)kjem3&_QI73Pu0XZDQ-a{iJ3b!>V z!&O)N3vDcbC1EbfFS}>?bo;+Ai2U_ekyi#?j{L?Ck7FT{AE- zjNY>7O>+Migzbt3lNCtL%*q`wqgFuki(w*-RM+@fAM}Gp(hSV*@xaOVyI~MzC`@LK ztWfWOId`~n`fvfsf^!bU7-dpBtWNSqHwgNpG;RmP+a3cb!dH%OfmeC<6FZ>X>i}y} zaUKD#wwp5a0FutzERXJDYdh*3Fm;w+nfB#ZYYxrIlA`wgJ#e9+8ewj3E_96MSL+BU zhntcaAPa`+T}I}u;Qr>j|5OBtf3=}ji(q>q>1+eI&y|Lx{f~h>;`tl^Jg{-rq-bBZ z$K4MK=k=e_X>J@>ZI&RnO2OJcz9z_l)0oM1agYyC*-#O_(wPmOEdPCeY#u&*$5hmC zJa1#JrxnUubrU4yhQ#Lou}Ihd>}sJ27Ley`LnJ+H>Mj)*7Fv*slxbF6`s1oWdrhnp24Hs-(72YPmGO(GzPce}+l}(cSOSNYb4)VLd>{x|#g1NiLL_01flckt0iU z?LXBI&_3Re!!)d{EOc>y^^Tb5^rv5?!wx2iYrML#wygfQO!BtW zfy!8Gw*2Zb0HlDwX*i%gvRLXLNq(WjUNkWw6TE-}eR46o-%CtI~Vg07bfdPUESK{fcbr%SU_G#qj}@S;Fst4 zcb`LHa_1GS*!!BOmAASsd-}z33S6o`$5!hU+N*>bJog+U{g`#S66^bII7j=umWhc; z97=kD*JKT{m)WaJw+R&#PbC0%R>qR;h%e0Px?5ZjSI;SG4_}SO1JGrchj-=LX8R-( zX+z^Ie@Oog3vFIniE8a8KFjBnYRB~Ye1iV;uU@GJsBnP&=RwM^FX4+7PfDq|ZbID0 zS?@s;Zn_1TNp{Zrhca@zI-VUSdJx(o3_>71DNOp61(n@RH4_5+&NS8i+t)BHG+G720+@Sqx(IL?g76R$TTyHhc<;iNVVe&u@?~N1xiq@D{<1HP(6dup!OEI`8yq{^=*a$*lCeXF{oYhF`FtYMGvMa6;CHyzG=OJ zoyibFYuNc2LUo?JfZW^cm_KVjl?oD#8O0Aq3LAAIXM!kAvGiw9N&*fgAblTZ18v>8neVH5}DLWl$+C zdtzo=@6F3V^LvT5Kwm`Wxr<5p`I?5K9Q5fo_S~@lo4x(6FqlvyL8fO0HX2%?CX$%m6$QpHyH>IA|!eIjp^X$-= zt_D2Kmi8qbmClm0YK1vE@x%`x6F??Bs(h{EaETCPDV{b5U%q{8;mR%`TCvw(e=~22 z%aSgHK91!hG5qM`;TGL!n;qoMh&XC$DvX!c;%pZPM_31jAgTss6^zRZ{&%*ua_@GT z^)gT$b*ZhduaANfMAAJ74O8J~Bg8C#F5)Vkrrw<>;e>>G#8}*YoftQiG7)g&ER_es zk)U2Ps#mVJJTX50ZcR{;db?h&~;9h z-XGc-og#!STm8Ere69DlZsQP21N=i#8_)=d`HBu2Njw=P{=2Zq`4L@YP5=G;tcZ2q zIyyR>b5~gf;R|Pw+Pp%X10o7M0+Ft){jD+o zFo()YN)5`I0bWNyHu!jMMa54Xr!IJXA^19RP6`}W1$ffcIO!4OD5WYE;WN?ZW(5Dv zvmMgSAEEQUo#YQ~aAKA&{s5gZG+i$C&%gl_xitb#@NBDi4x=FA-(02FHtOotJ7;0Y zjrWt!oygzxc+h6`wGV&pD9;A@w#F=(;%2!fO^+SZ^Yk1?D32oia!K_y#7FU{_u3}f z4eQD=2`Um~#t3QbeOX;wix{W2)5bG$oWPg0_vxCq_Q9`^2s6!7#P$K$#=h(Q5-U#cqVd z`L^>RaPI&w^vC%1`q$>9IYg>}#x$IWpwzI3?1*{B#sCT^CuT$DdAbEBX@pG#+V9=1 z+ajtn5ozOheR3T@P9)!Rn3$=Ig`F;n^e>62dGCjcPO=v46`PlZFd*}vf)PQZP^dUE z;xWj9jM6=er9a)qK<*8S_0vIlVg{+lEr4PXr5x9@%sGsM8@ZkZPBNi=yfY?1-L&z0 z6U5p>EX7V!E+$(9g*{mBX|7KVL;Gkjd4|LkZUrgr$E)qxGXorKSu{4A&B-_b5`8as zejYUQnBD3>`WGw1hyaEDu1L9#5rp{ewl9o0 z$sxU$Ay6_U%F)9D>CQV(qjE#^xbbDQ>L*9LZ=>RUZc>H4c2N_Jwg+&Y5R;;xj|iC< z99{FAB;h>y*gokRq3kS)IOq;`$3=rNdOI(8-f80GAGUIXA^jlb3Y9M^e zVkgAngDDxyM%MGE*-~uk&#RiGPVcV_x z4~{(;`HU`1wK8A>jq%-~yBO)X`!x#l_KZ+V;jXJ-DUF@>!Rs_<;0Cm~>kYJXPJ%N* zj7M!a4&AtBAel;@b-|0>Y zh`@@yI{=GuMZ-IZs@JZ}s1%;p5=XISZA?fMiO-84JuG-ygt(pyOs{~f4%ui;4wxb5Us~_XKzGF{QY$f) z$h&xXvE2EYG$4ZBzwmHi23-$H@|KUt$eiqEFpz*(He!Ks_zb~lZ5_o|21m8vNQXf^ z2=9Zy+EG{I-G(`Vq7!Xt$`xB0-M4I!~Nu?Ke_CghLr2nU*E^ z9&)}zO0A!p*P(1{Z(M}|W(C6)W2vLr@tjdt5t|?x?pO$~Oq@nsvTRbP5|xrf|HCuU zdYuO7q*gPAa(l80YX?&qbwr;bmm|<84P(-LIWMtN*DB|tr67@tT7^z&#zM@>iFhY! z4@@#lUq&ajpG>Q^Occ|e#D>KMcyW#eSv19jsQ*Ng?-&m2dGPxA4d0Nl8asCM=mum& z$3lUf2P7vlVs}U{G6Bluq|TbVOLu)cD0kqh0#o!v57|B9EnZ+rDfGrUD!fLGdcuVWubIR9m5LKHSzl-WLv#n94)iQ$9K6RWDK z%yyToFCSmgSFYM`E_(36I{F9v2~FZvN|BnkPi9G!%UO(uZ}W*Xp+CsR=yzi zwo4JVsb^3$dlKN^T5|TsxcmmX@WWlaVn-&IoX1X>}RGpNtGsUZ8!r zgsy1?E0?*f{*2^F?k%A%T{(ShAFlSesoudZzRju@zgFE#Td>z@`d#VGJIO)P z7y;M0PsdxP<-=WBV-@Fcxo!KMhW!0RmcCWXYgxhG+bKl*<&U>WanUC~w;l?#ICJoG z^FNas;Z}Qh-OAV$*z1ZR zcpZ8p1@CLp->c!WvuwIvwO+gU6zt)#x~3G!)+6{FD6hJ+J~PPfU~18-0anXKo;s{g zLX?cqP%ToSXE=>fXGFQ?(i+thNC`_fFHvPi4@D)yR;@i$fR(>B*sSteLX&nWgr({x z(UC5spL{(}(}ALvSL5X~qzGzMt7WCq*mJW%Efk@R9f+F@yNA-b&>nRk&*#ng!E*n?4}oH z!-@7l*2Z|F4Q=3~Rz%mhi)2LF*^gn~rSy#RYHKa(v_8G1ekyHi=<5tz&)iDS5 zGT$UWwg6v{C|j-s0>iH_-zPpjH05()yn0EgEp2Et1w@qv)9eYR3x~2pLC;j0$aK!d zM)6e~3pGRgKfbJt*49mMqITP>4O54l+0I=plZmd!8)tutW$o5D5^Eq#hhON;=Kc(A zMA_#D9lTV0N$SIa`k@<*sPV+CBo_IZPWbb#>KxjaA=7fIYd6hN$&rlb=(F3dBVcPp z{DRX{7?|}dsmr+9m0%R(W~VkBxD_+3vjtwI>lkhI117$tfk9WujZHDtW98?+)kGk& zupJ&_KcaesGOjk=d73JA;gpY%7D(cNJR{#DvSKQ>V2nyKI-awgJD%qgQat00ympmX zf6OLHee=kktd^qub43e$H*LUVIze0*v$cnQ!6>w+KF`9+qlM3Nq~5k;oK6gVY^~AI zz)64YL~x&h_wuWmFgs29@Vl?6}s z`wi(X+)ys-SeA)A1hy_*$WC4nG?=?QUq2jnjJ6wxzMu)vCouXL^5KC-UkLGC)wb}A zbhap#!?VkWn|B12KFhB0d?<7g#T*%r$3VkUxb={K?j?TA$?;-{Z=t}{a;rzsy6SpC zGNZSPo7TTP!x5jayTTIlIt2@LXC>j$+% zlF!>$hcv)U&}bL{Q{i5DEh0!FUza>DaCPa;mi@w2>Q&i?80aD%#diY=0w8S={+wps zM2LnpCxLPJ5X_N90)pN#I>yk4;GpkCQlP4HjFb2qEzGbi6MDJA`e)+aJVZB6$)Jbq zJ=G(zsFguho2k?jh-qw0Xs9~uz4NB?nduZE!D37s<8*yP{bo=>vs&2&{I}HB(TK_#+Drll! zfgda~D!*W|x^_sTgW(Q4{6UCvRJKhcdb0Gv>7p0f!PFIo&2+7csTwQq`!e?v+}U^K zD8s3@nFLQ|AK%71MkfYc-&BWAG+?#6Lmw!2mSleGa*vl9eUo!LxgtcRu9m$(c7xaJ zJ!JRCUtb!$IobRDwd@Y$1~nfUu6n2{uM;XB(&AxG16J7Y*0lN;smZs~QZlUYi`dYV RP9FH9chK-a^8QnP{{gv>OYZ;x literal 0 HcmV?d00001 diff --git a/org.tizen.sampledescriptions/html/images/data-control-consumer-map-layout.png b/org.tizen.sampledescriptions/html/images/data-control-consumer-map-layout.png new file mode 100644 index 0000000000000000000000000000000000000000..9a587885a641b1ab46925464972683258a690226 GIT binary patch literal 30670 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%0Dd%(^IH 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 literal 0 HcmV?d00001 diff --git a/org.tizen.sampledescriptions/html/images/data-control-consumer-sql-layout.png b/org.tizen.sampledescriptions/html/images/data-control-consumer-sql-layout.png new file mode 100644 index 0000000000000000000000000000000000000000..02452431aac6c4b411816c14e505bf5326d8a4de GIT binary patch literal 30979 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 G_J05(!o_I- literal 0 HcmV?d00001 diff --git a/org.tizen.sampledescriptions/html/images/data_control_consumer/Data-Control-Consumer-ui-builder-views.png b/org.tizen.sampledescriptions/html/images/data-control-consumer-views.png similarity index 100% rename from org.tizen.sampledescriptions/html/images/data_control_consumer/Data-Control-Consumer-ui-builder-views.png rename to org.tizen.sampledescriptions/html/images/data-control-consumer-views.png diff --git a/org.tizen.sampledescriptions/html/images/data-control-consumer-workflow.png b/org.tizen.sampledescriptions/html/images/data-control-consumer-workflow.png new file mode 100644 index 0000000000000000000000000000000000000000..77226cacadb5223a0f8d00d215f8c02c7570f616 GIT binary patch literal 47850 zcmeFYS5#Bcx9F|dkgB56K~z9$Xi5hW0U>mhPN<>xoJ?OIg~`MLQm;{9FMcLp9r<(Yri^{+0F zRAM57r-Htxj*GRYkGVVenx?s(vnRj0!uu!Q!u&7!1qB3-+_SD-Yc^1REBD?Pw6lCC z)zQFU7yj^353kCIIEA>d0EK+C{D}OBKu91PrTI_#uvB_F_YrX$t($kVv!A?pit;^P z*}5{k!nJIbVoZ8=Wnd$i-GvXw=Q0`S)biRj!#(Is%ghQvBz*a@j+*P@gWUs#XJc?g zK!s<*#AvE@Op({63g#pahiH39%qReICI)~_1(#{;VX`_BE*OKn(Zn`7Vor;SsOD?9 zHiP}!Y};=SO5t{%F2)kEw9 z1;#%bh6cGw2wRaakk8qaJ;=A?VgCfU|9=5ux?)KZ;>CjI5b&WBQIVmHC}1lu2+*p{ zA}ZGYuPYi#Vh_s!msW@Q8vgLZ8I3E~eGe!B9UuZ(>$`M3908pB?ql0lj(ggRHefD? zGoz{qT=eLb7jDtVKj5le+HAVM{W1r>;I#S+&6EGH>SIDF2p|953Qm{8#&<4P+oqHO zHlRP7T&$OI9iuZQ3xT4rbHCt>vWUbLqyXKh*gf1&*8cE|&qc>CTmuhkz#CbnH@v{9|;NS5VX-L#q?2kWlkjPct|A$D@7D9qe_ zIc24Y&<;bNxtto?ysozdfe2Z9s?o@mG7cPcZnC9w5V>>-is8i`PIv6N=mGrt_B6`< z*C{zGpnI(8cowXC+~Ts$;dv55I%lSd4||A@Ik&UXCs^ww?$xoL=k%AX;)d(`6L&&E z7i})8>4&j6=axI|+=hzSr{plKWpo--z;F&Hwf{CbC$--p4`<&JE~KA)<>;(q59c+y zmj0^gL~U2>be=AcuXzoop0tF`(%9O(9P{y35p6qefhRDn{7elzEO#JIXSyi{HbSIBL;hC`wj>vyI|{9|L>Tg(wYe`~1a_Q`POos8VY(%=$A*O<;fks$u)cD0CcOWLx=7Rpy9;5tA6)J^wXQYlyIe%sOaY0A zak)66=IE2%_%I!a^zh=&cnRsmuF63EM667E@rnuq{-jdA5XU=0O=|$c53~*1EIRUsilK!si)@ z59}8W=WOe|Nwec+uM1qLY4ur#WYZ5p>usBkt~H6WNLODqbRD=q)3k6T>1I4z&tZd}?j*GQ2uR0}iLWY$aLG8)?1zh^t2?pAdzkyeo6gRgs?RJ7MIo$|Bfw;Iu0Z>E)62-`umx zdwwgr`L`2i0}>ltypuxZ*LoJWx);4sXP>d_+1{rPI@sNbGAvDne2YeQPM3=|$)yzn zO%E92YSOmO<2=%?vQ5aeLj}X2!;H&qz?QR}`B7M4Kj3l#!)YT!fN-GOe)JT7ZMQz` z=AJ_|E=@OoDbQp!Z4D&{Z3``L||UI9V4^`dM*|Du2Ly7w2eM+{Jes z+{1kY3;O#$4O5CvJzuD}npwY$fjT$rh&FC4bD$+w6@awKsb`MpU9wrDVxh(G5)%R{ zF5~LV^e;u^Xbfx!E16??!JV=?C?fv*q{C;#qoa!>1~!tSUiOJ$xCFG7@8#$$DBcI* z7ZLBGA6;-ldq+)Y*Qufu#@;I)2`ujCUBe`q?(RG2nGqcIK=HC0D)t6v`{{c^t<{bc z)Lr;PAKiQN&uh#|Q{=u*-xs3@l|WYn?1@Um9Tnrw%@KJHtMI{s%WNZ-)~p~T^y%xf zC@0$uxv#Y6h9`ebj`1(|h%I8TQ!TpEK^QES@*1v0G+&(RHbfS*o?pa~8?R58{HO+$ z9oQa1o1;uOqXTajz&Jk6XXp&161Efe&Y%sji&18T-uq?W^+{97rp-E+g&iOvl?ljv zXRwl$q-Mum2J~UDW+l$S=+^Eop-y^cJ}qWJXSEo1%X$;$WWq30dXe z{QpjJ(iYvmn(ITFxgYK9N{X)~kB-0eA6c|U_3ZIO`+3y(-9Pi_%3p=_*MKg*+5cUA zC9ctf_G7_K^#`*MI{QPZT9(%3rhiE6E=%ych4SyNR5PpzXIw0S`B|o%7Sr~w8b_`f z}$3TToiOurB_$Q)2s9@ya2&}2maU5Hd>IG8`V{-(rVcpU*IU!>Lba1WGa|l?>2ht!v=1dzh&S!`0A!o|l4Jd* z0zS=;`fh|5N1hL_N8_Zk>NixDWdv?TPc9FvA0ae2TQ7yGDJGVi`9L8w!LQdqROr7fLm4wXx}`tBLOe}8`uKWt-{X%1cUo^V>dz}mO1IIVuR z&BobQ8~Jmm*;_YRR}|pY^Q`2e#oh^x4jvJR48qg^;(UwiQDCKKlmW!OxKtVEOjOHI+DFC3pJlMzIVkuZYvyk0^=clU^U z$Q;q8qQ~Xf;^iPE@-_z0H*D*65p*tG@Ph+7gmlV?$KD!MKsQ*aWtpp4L+4S zldNNz<*2(K0`NW1L3bN(6f*h@N|lo(XS&T=W{lBSB9Knv)z=2CK{rWIUI7bW9%@_g zrqQZp`b97Qm@w+-=cXOmPXHR8 zOmT^EcXV$&`^unRm!>^CTLzoD@xH-1VCV*CJFK_Hi{reUTB?fN^I|8FO~eKWo5D)r zPjEW}?V}>sqF0^v-27+BkpnNCmv#`Njs?fepp7%dhGrX^xeC|1t;=|b`N=Nfr%gt4 z#z|810d)tqniWPu|peS@?#x&r4^uvUEEmEWc_$vSIo?xX8J z$7(lT*%i={58B*I&^tiae<-hIA7Bgi@=S06YqaXZO;7VjeRiV3B3So|aG5f{oyN~f z(FsFSJphl>b*@K@{v6R_970Bk=yRd$fVH|tY?4iTmT>7p{>)=Lzl(H?l|9Sl)U0RU zoI9Py?LM@T9e9|$U;+Ar8a`0M5pHs_&;NBe2~qq+zDp5?6*B3gZVu)u<5KeueO9i= ziD6ha4l5f18l@kTI?^KNz%5nylQvLxJeR0_6Iu*+tHtyCXjoX(wu3Mr)lu)`U}f#- zheoW)>4UgCQuy56 z*%}moBf)e7X8zKife);t@c7rLZ=#21heosRrXGirZKJa0Kie~R{EHV@p^=Qkhq_#L zuFFuvb#aEjVjs6}e<+_mj^)MSr(Ma;wU;QuUuP+Sn^X_MB{7>z*N`D`Ocs z0*%Ic+u39YDnKh`bd-)%hIMq>qZ>ztThfn^5VxKT{Y>G*Ph?>L*rFasj4Y-sjVnIZ z=6P;jUfFSMG7JMDXoQjS_C41+4!Q2Q=pHQeHZrq$!*}4RRGvi;KJP$BRPB)V=p|Et zkMHpl7r)VPpFt~qnDc6yPT#Ns2?{Ro^(4Ze#)%W>Vm6J-RkcnM014oxyb;dYP#K$DDRbJ5NX0V;&Why* z`Ddbf{OM^bt=yU3bI6ZsGN{`-z)=cpD1Lx1aoYAOu%EOYRX*YEnPrfUo=?gj#o2&v z?s}x7-3B8dFVK|uzll>p!itbB8z?cj(z~S7@RT17sn>C7s?OXf-2jrC%9b?547XxaTno6 zCD%Fa0B^8$xpx_@K745J1!449fw2WyV`QMLL@eYbEFH1fXp4QbWCh zi;FP!>0k06ssw44!}wh>vZIr=$J64CryJ!9PB?jP#lMs)?ZS`BI^52!_$d1zWp3iz z6X8C`Cf9tNcOsmGQ@2{G^(?wx7UNc-3DNT}%i&wQE;Ql*-Bw3E2_f$lng}|ccDM9h z?7oe6)!T|TO7r8oAyl4n0Z`u7_O+!?j}Ty>VwBFh&%Fhe_tJGFMFO=Xu&oxx&a}m2 zauF66uKNt*ClM)RA=qMN81l6D&$HDhX3uhlLyX}raIga%8 z7wR~;quwk0qUvU7n2}OF!O4rP8R8E9>tC)eFuy|(3RewNEr=eP1f2x#!rY9LS9r1R zb@t@bE)@w5y{6KYm-Vbppzm0=%TwkX9ymNm7!a1W;7&Qoz#Z2#u3l#e0NS1{yz2Wb z=rGC9O`BhoOpBgs=3D#oC^%9mb-#4hC(RXA?ZkMDE^^LK5CP~Fel*k8A&jhPaAUQp zpkv7Q_h{bZ)hk>;Rt|I&mQfrI;`6wGIpOA2{nNwTq`O{)SpE!YqFuVl2maX%vtCT_TZDDitd1qTO#W7{ z+B)I=A$_PP&0dz@yNJgJ_4m;pejyA3*{g(n`zCf33ixmx|0phQ(|2i`iu&(n^k@=o zlrN$DbBbzWR%Xib?@N=4%4yd8wL`tukxa-p7R2!W0#5B-tp=_fKYt?cGTK%$D8VN| z9aNWIxi*5d62#>guPELK5OKl`df!?b4<$y)bZLPI}-;ZMA!5dn)f8e^iZ@dKL zb|8QB@K37Q!@Q^YJXClm-F!;v&3g@)1rh6y`=lz3!hb{2uQ}!Dr@p?zW`+?~IL?Xp@k3>!tKB-6rIFVkbT7hV!F zSN?6g77`)j<`!R)VS@q04fAxJ^q)}&+0(RVLfihH)*mS^%Mn8|LkDjQ2bp%EujtxjmuvRE#_wEvwlE;h8}CrogI64 zdsyuWN`b)`Y(YXtrH4HlCZ{b#_;0nycpgsRTS@$To|Vr&I=o1x<$?a)fOOQfs zj1_sYe1&M;7MTzNk(jL_zq)tbBdAi>x`0&wChE=v`>k+gEQp%BSk?zjA|c;o8jS5g zl=V(y0`;nW;0pJha^&4+1`kCg*U1Pg8J6QA9eab-y`YrOt3wfys}O+aXa4=#;}@d? znJm>ivjQ(tdQm$C=2H=-C-%#J7k9hVHb03!5A!%CNyZZ!1DE6o%7a=gi50@wJ=2t&Q?Z2QM z0Kp0IN?!7%l`xKtOo zwFM2%z1t(xr-qyZo1cJrr>vwcgN)b3NBn*}D>jk5(MFj((^)LLC#+7=9H#MG$b9sb zQKCvfPl;)}WKj%cgt6sz@AghXyM@Fzt^Ha)DE~wXG>1X``UINaZF17KPcHPxM4oY{ zRnUQcIHLW-;VY>*QGm<&T!v4aRE68cqG!T;MXMDgY5Z)dyII@ksA|l z$-aXRjSioDlYmJ7^V3DE*OZ?i92_k~+Z9{|2NM`X8=XYQ6OzqA+rdu?`-)4+d!f0T z_vD|S4tz2uaP+ACtX!HJr7B1-tq9#x~N*d zz|}u<8t7Qc`E*vLenkyylbsI;%Z5Ah0hutY71p4k>)6Xh8DV5uv;pIr#pwJ#h_?yM zAbk?Z#8FcRGC06om%)xQr_vS z&-luhW*0T+>(FrB#4`WYOlKusrMuEvm@YSlsM_WPaA5_5d zCnKkISf?T5Czc>9!&G^cZg64hFd!!W5f%_1ev*DhU;R>hL;LqY{1b56K)eWE$MmFa z*P~Swr2rWtOtjRh_r4W($^ZF^M-N&V;G=!PcWuB`Xly0Uz20AL?C`uyb>Sw4N^ZLKE-kT5HYl^yfE)82w+ z8vb$@`Ot}IImzDWZ;%_>s9iOSH(2Y|kq=4O>V&Bq%vx~}^x%m4!2XmV&d*VgC0xeT z$Ii6*TX?ahd`64{&;^t|JuQ@skWXM!!4>%ut{+)ZDQY)X(+v%ep~qLfJz|I8^aBrg zwM(2qpXPJ3M!i-1s-nTO-ZiWd?}vaQhGlV(@x>Y26JeVcws|&e2Y&vut!_1Ux#rUF z%2kIg^FIQlCkPm~ty3rRp_79D#zG>7|HF;`VWDx`NB_Xm|6rk<5C6@L{sWw%bpM+h z{f8(0uP7RQN7%HTEym5l&cn58?=5fiXKd4sgr*<{myapqW&@7y#5MS%DspT`z1$O8 zQ)CWrTu4-DV%>2CFnd?Y99zH<(&yZ*oqy;%VoQ2mIxdIxAn=9ZC#v>YBSNUhZ`6i% zU#d{kqK@p#rdeTG8U;Uo@SZ&`xrm1RC15sStmSrt@RyS}|KWShW66lC&G!2W&&HMW zOy_BpaFK@S`+4x?21+dvj%AnsqLD*`5zws|B4>m@9P=4zrB{fUfyeK@m)L0&Yqpt^ zpyq*JEvk0Pi5 z(q+%VEX0RlRYZ9&mf9?uIj8V{De_tpK>AR-hf%LN<40O5lEUu2A!Q5szx~rGffdf1 zOb96R44W_jqIuJJ3>njMJo6`95(4s$Jo3C0(@uLPDi8q$p7q+B-B8SSo^WD7jwgO% zG;!w9!7l{xPp}vph=RGs_9gqt!L9S_8T;hyg6`($+L$+aDG4l^5^YCG6LG*%UTH}~ za_N$zqX`<77;a|0WeN zCOVHN@#el)AW&zBg=C_#hyev!Fvh)$XW_^rG-d23~;GM+u_u8EC)Lzz))FPqfZL;-8OAl^v zvMgnL4#$d_uZBk()qekT=QQY%7tG^_v7#FHG1q*eYvB>)$L$jXmBAo<2@9){c7?py`%{X5;5`A2%}k5Z`5zU0?CdPw z4D;l@b7E+r<5wnfN9VDFS2Jf5vz6GwJE|Y=whjuE+WW2QHmh;bpH;@~Gy3;!sVsbU zS_>~{fP(wybVyqQS3F^4_@ppKYe5?B}|G4$UG#Sf!<)-=0HUy(R#N` z&{a&htts3dfkl|8XAQ+@h0YFn{@5>GZ*+)xG4$Yd};>NF^f4 z+&Md2`HyAi+@*ucuH3y&ki|RH4!dX_Bl)h}pgagTiHN6|vmoQg8MWS8CdE{B%nsS`b}zC?IeB;G(g8h9MF z0}<~g3Tl zptI+zSDs@_nZneiQUVLuAEyaac0c^$rG9%RQ*mGqIoa1bv4uw*M()cTc;o7+cEj%A zuA|!o9M{)uCjuu3g8BDBQoaYi(6}(`aVk@H^z-qmTxj46<9$*$dP3 z>lZF@O%U&Vf5rLIDy@ESr@^UaV?MuLipY_i+HLO4&qN>+59D0x=NnPcvL;7QT;mkc z7RdrlSV?xU8OyQpnVDm}aD(@rO@iUsX3kRG5Qlux(wXU5b@W;9kVHIWtI@vy5Q#P~ zhwC2_bTbxgQhpB*JsNm&^(E}%&~>*_X0L^SA%I4jS^Q1O<2m$9OQf`k*YCURXlJcY z8DSNPeED=JXxGtb#+yhVW&E_tfP*XwZ`za$@VIE)^8eJb87`I;IWnqNP1WTzla*#W zXbBqH(?Oq)*z9K1&@X(PNz_lQUUg}yl}B?a%Y3?i;nlGkkh46=u>fi}cr|63rV@}> zvPE?otir*`Ph&*fACIfW8*_C+;Dzh+Y&#)j))R9VN0ZXPpqmek+o!Rw)=Xdhp!r6S zHVhr{8JgVpG*@4k^ArX!nEO~A6JipUP`3k};R9ex@*HZblK1aO}AgENR=p0#e z^lhS5CCVsa>a)y1+MPVPXZV#^&xWSgtN=SYJnpF*fJx3E%>(?=>m^MmvNp3UvP8ou z`Tf?oM?N(o{^Avrb=u}9iSm&`$xWuNo0NgQGp%e(#+uS~BPsETlvO|d-%_Hp_rFRd zpOs0NSz7U6EncY8YpW+v9<(fnXkX}gQ+B*sn(bY?H?rLN-MULPKfp~n^2%6Qa)ILO zT*>99>9WXrd_GGdd@}_cQ2ji>B~fau>ZP%TkyAmlN4U1|7R&gPUD<-%rHHHgvL1Lc z*-rc%_w6~*poFE}yen3bT5u;adu6aog+JKnU#p>{P%CcaUQ-=mFLB{s+^WFCi}ZY& zMY87fUOkndy4xKNp_=C5VLyCs>26grMeB}PfpYcRHLF<`e{(pJrEdR}BFiLW`{BS# z|D2Mu=FgHoqE~Uj1U!)=Rep393&S$sIwr7l{PbgBT9gf==nZ^gJ13gp_D!IjM16IM z{|0gVH$r~v2HdohPI8GCiFSQf7^8kA^@t-B6Hf6n1{hRYU5vbv!<;@idfRS1@zbEq zz3?0Zdxd?f*?>Rlh<)8cANKvG)1V++^!T@m4?U)yl2kx9Lh0=fX6tQ?7$Sm-V?)i?P(A<3vVDu+zf12)9#B;}Tes^zzY*M#NF{qIuwDil5 z1!sJ%33ftV#!86yhU!-{36YMbWZKrYSL!?Y>cfr{Y>xnw?vt^~Zrow7c@yS`B3AT( zi<`G>ZFk?>qZBlkcy9=kkgtE})S06eR{zx@t^i&_K5{Fl{da4GLWX9zhP%*_3 z?A(Vu4S>H;Ynsdn{&hjfJDU>!4iVI818cKVM=+>cJ6}Q3m{zSSxL#bI7_=m0F?~9)C@D>wBlNLbS0&R% z1<3bWt{`9Jz^p(?Y=TBczjv491pu3BaE1;}l@zaqDI2c_H6?)%ZjZ^Zx+Ge84VVX{ zAr{|bJWq|vziNuScjKi9gMjtv!+;*aUGC;5xq&ACmbegIP}<6upyEJ1v0HLt7&05+ zn&3Uv=)KHj+7aZqD1fQ*^$Qa*4Pn4V>98&;^tw>)b3O;jN3R-g)A|!oU>R(7R+EQa z$q>-NH}O^i(6X4e{aunFM|H^)V7D%+rwfoEN0{0S`NjUTLo>&0mL#$Hh>Vd zDpZ*a8RxoxMSt>G2P{2xr_bm@Gr*IMF>IZ3=V*9PI3J#_A`IC4I8u-#^EQPrEt^j4 zPViL`JM)c=1&77Vblh-+7Y_ZrA6cu)jXeyGb+pa_gBC6UJf3}zfLJ`tD~w`w`;N3emz9)DMfKzP+@@% zd|?WNVGm>2ogUT_0oY2oZ*loxW)b(a z<)%sbXc!~{@l#u;v?0A?2gda!QSr*RLjp0gcRgCCXp3xG`8I|slS+J5dqdm{m(FB} z3=UIQzrty`?Q`L`Pg?I3YbiWT5dtdM3n=b>M^~-wP1rEi(7mAVtf%V*znbFnQesZz zR}uyceDSjVH1*lq`#a=*>W;^v3;jG;KD^H#sjvc`y%+5C7q^YLp7tSaCctFOI_cU< zn6@YP^bJBmsaKQ*TS}CZ0g`~ezN;1YC4*Tc-iA@wXX?z{^mr; zG*vgeOPPPEUq4dg^m4r$pF!+FEnH>T|Y&S znc?~N#z8tC{G)!LjnoQu_v?xB*GH~u_7g@^H?}l>JbVJ?H~gN=I6W8`WFziG@{reZ z#b4kKw1qo3Y((hMJL!`E>I5Uyis)9;Y1FUW*}=-wvXzgx6o?>Z&W5BGB zej^t5q?F}ssTsf6#yh7JcSW0gYwByuy8pa{{GSbf6Em6b*BeYX8>`o(!L_D}OxVXR z^w+N%8tvz?dgW&@VOh-%h#1_W&#MigAWCqDSf;jVJgr{HwG(c*;5hKwhoyKQM%R z$we2P4`&S%V0qYF#xQ;XYoqx4sIlT5Jof0R7H1?Q!0$%m7ctQRpzMy!=%tM5?VEO3 zG(`-60ecPn5z&fk`||0+h@K{+q7!2IXIKqi1RYMJpEW*N@zYlys&maq6HFH1@}t2L zq34@9o~75CF%SyMnA=^Hcc&-soiMa@`~U19Fw^V2ys>~)elrJD74a}l*!s7#YNDZl zrA)JSg3O=R@jNGp4j7Bf@-+n&zy;rs`dv5e%y5*z4T2&3rc3rS9;A|#liA_(<&N~^ z)vuxL{QV}q^JnG|LAh1U%On(+09FGKRTg(&moXp&K;NvfQ1p)Sd(s9ATSV$I%gh}b zOR&k(bEim;hsG9rRES+*^)}5)=c#$p^4F2`*eYow;Dsl+cpF$QMdlYsuB~c_2A(X+ zG~$A7q#OGUQSBki-O~^G53CajqOy!M+>vKyy+()~u4VHxGqNSsA^#G=@8IM2FfWIw zs+svphJDt}z~4{XtlC{Koi~sEOjyVKrTVRDP9`-!xBRs4^2j=hRCw=9Yw+YrO{Emw zcait&RN0m+`R`4qjYgj^PTnL`8t$`}*LzG3Iw6F8NJQj%othT0bZ_RklCF!YA8vmG z3*LZUN3j*E?v~Scs%NV=!jOd7BqJg3sYP!f!B~dbo1v{M>OSQxZf~fSPmCGYxGx|w z>Y#tp(h%13Z1GQYM;{`WWN~K&aqD*Pqz%|?$wE?2l8IY2BI~LA@vix}^I023VSBph z2Gx(Dp#b#rkV@A71Y3T|QgPLAdaa2A(z$+}NwG0eEY*lVE7$dPv@-}drK8i}LIk?8 zYnKm^--!@6C3*R5j}0*>)~6}0n=$R6K^>DteJ29K=YPAs>Y0wN7;6mWukztw!IO;7 zhUP7Qqc8^F1+p7?W)Y+6rvhfL~XoGBn z`*=v|=hTvbXtm{#v0`&%E4otj1)-WowL-$JMcWU0UTw)r45cl#72%AeUrOD)47B^r zc}jL^q380kFr4dRuh)bXaCd<_>!2tiQ7XJ^KlZNZ)^h^y&da0uV>z8(Cc{>8D&D zA?o8T!1NK`*MqvHPoYWB;S(eLRSvtfeZoWzMp|{~#?9F(^+M_`V@`g3_tD2b`Ntvd zq6_X37eqz#a_wxIZo&CmpUx|r1h0a>;pFH zceS?4Xj!cH^h=K#rx>r<^;!3mFI8|UU(5-p+o!F6TVLf(CKo(9(p*Ism%Wy1ho6$4}!H2;hJkl?X{Y1pNF&V#F+NCR#q ze%8F|xqk54Sd-Q;(fw~@S#>S>!kwM&F?0!Uz-tQE%d?vSfmy86nnlXV(1+Yy1$F8| zTbHXqD4l#pMX}YRquN}8ZWSk_@UK=QpjTq%vqr*Y=DNB4zuc+2dVi9>rZllKexm*p z;`^J9lDXwWg0~zYGmQ@KpYShUe8<1vV~&v`=fc5m5Df^aRQwAbK$aTyvV}nYQ;)Z# zIZsjSAqEzpH%Sk$4-|nzK+>9SWQYJeiajzh331Q*Gvuzh$`Fu_PY}R1L=@?aPeKS7 z{*xz)gm4K0%xnM2|5Mbl0Cn2_lmDlfPfQ*EC(lb%R3)b7{FDEG1^vIS`#+cr`Y-hO z)4cI$jVf8J`?m@De0W&pgY!3-iM)(0(1i#=7=Ylt7&scem&kHplFDj9Jo?s>4ZCZu z*XV{h%Uj(94Ob^av|a#Ap$3@L6;g8rF%yhTUU+<%>Q8Ib1{yfa)mnZeOw71-Z`Bmk zY+=_H*OCA^i<-cyEFkWAhZ0$gwuRZqW)zD&O2JI`tLz6T7$XW~DZ8 zb_N^vFoFn2;KtA-(Kq_{yM5d)Yw}9s@xA`SSa;NfhYDP0qAjG7=dYm9(<^O>qNByU z-mj1*eT+xmmCl6xGH)wOXSKUNh9|F`huLToCx#x5IE2Sdhypje!T%|&L9D_No|Wq? z5;hb;aajYrGM*^6HGMPpD4^c+jh!|gH$e{M(;rQtwaj4UxzNB6@^VzzN*PG@ONft% z0pfV;Bm`YR(Y&yRTy_7JDbXvoQj$MN--<{$atifhD23MPb5=H-r$}<)(Ozh!0~5&p zR&XlWRW{ZBf^i-eD_sywECp=~L}B>KB68foAjRJBa~JQ$rCyU^^40iT>eM z{P3cOo!o3A5x9ZI(+cJ>7F$|kz@ty0SAp=`Z-Hhy!W{FmW5>++3y{d z41Tv2nXC3Zn|L9shq?*RRN&h7UO|BnP32K64mcDg&cB1bGHLeWk{+(K|AhV1+E`KQ zaEIdVa(yn$SK+gp9kba)x~<-uxeozl-KDibN~j;_na^Lq%cdg9@2*p*k(PYl`2u!vgGhF-f#V4 zd9CJX%HQJ^i%dzwb1U0&;)CdQ(-;%2o`i48nf9Kse)!%_t@vMhMB0VUV;)ZrspM>o z`_rOA;7Nt1^QV!UPit{rW{bS1#tR{#IohNpk&UZDF)7M~Eav{S*{*apwae}acw!hC zcoLq#uTN&qJhsSGdZL<`Bt?h!Za)I0A;{l56M_?L*hf01G=MBCZ?%YF3f1?BWD zA@PGGZPKler?T&7%v0G5(?LcBVL832X9T=($i^1T^KEC>Yp-hO9- zHPKx*qSD#+PVJqG=GO~R6j@=R?#HnOp(o_1a1}InXr(jh&vb5SSNDWT11bM`KE2~b10l<}Y7m2=Ai`Hmtfd7d=5 zIj?`&_vhNEyuO|k7{8YHxb&*fbDmhyPbZnnWA7!u6}$`A`b8Ge5`S5i>l#q=P>*>g z%_c!AL@UkL12dF&Z{{0$`~sy~9nC_7)PpCHK_&4?kIV6}JPP_yuRiw4-V+nMgGOzZ zyZ2@u?F9bE`j3G^1jqska$TX`gKMq#JHK20{mJZgRqv_f5>nY~OIu65aCb+6H0L$h zzFi)i%VdI)Eo7HFq9UGusg=weHqLL$T1!JOM3(cXIWHzrTR=X^9X-JVY#OjVI}4pi z04lw`!;Vmd7p(J7%4aCu$&ZMa2&h{Zr${GbWKJ#DgdQ#VjR$URvj@75)1A;QwAm6K zSg{DW6tbF1NKlv4~oU zpi+&_vI#UUsC~C|cczsdWXiBGV(SNW!jyUJDcs>W?zoCzfeLRQgvB=BXHFe4nBZc- z^DeYKC+kkw^a@oTypPmI46y46Y(?Q|M)%<|Ks}*eVNX` zpZ?q3`R6C)Jo_IH=b!f!{XgCl(Hj!@-&V5xFg!S#7*Ms&R+yf2A)L3|IT=2U5tK@n zWRfVc22F(uC+xmI^!#O$C`ET_k+)n-JIm9WlS>tSoltaLrdlM?X@M(Vk2+&X?O!AG z6|jG}3Pl0Z(_Sd@a4!^a#l2`PJCa<{XG&Ww zNTYK@OeFiQBQr54<^2{FyEfc*>&y#-(I^$0T~OI=V%^pCB(jcL@@NrLH8uz-_EV|6 zqll}<=Tr^1)lcMJ<*)uKVin~QyiDKa=l`Pz zL~won{fEucViDil=L18}inVEydMp7jKR4WODHL)OjtyF8CthTHM@T1vYkV8sWiM0 z=cvyaRZyAPNir$1N*OVP0x`kt2TI9aj^5wv1ORAmW!ixJqiPslAES_0gYaeu{r!r) z17)W1{Y{Zic~y$20f5h~Ud$8|k@u`wucV_mnbvEIF^>iq6k(PhE1Y`aS(V9sjeMJ- z^|4q2=i*b>cRgeeg1%;D$;i-5@tahq5@YpXGV9Hj+g2q|Gs&A0s||o~1bz$G=5z>O zw0=Pd%E|Qk94oY3c@^-CBFZBW&AIrfjECx~{)0hTL+u%OMJ~l@s#_C`=<3YItMeQ5vL+H;m{qC9+%#VZ zCXRiuHvJ;YSUUTtoOq@pU{6eLzDcj&{bj8Wmvm{jE7K>4TdK_a2LxtndTwx&*OwK8 z397l-nQzjtehFsQ#Us=M9dlo*ftsBi#1&^eZ;Lsh?LE{-nQ(S85vrp3xNOp$@9Kix z>tix;)=9FX(OT>W4h04fZ1z5~;kiPQoTe+rk)59Wx}IgxK51c4+~^ZAhkO1?*N-7N zSIIPMdyj|sOtZ9;#0^4=j_GbnZtXK(;ch@#_jum9ytr!&d-yn%glr-s@nQD|^GCyj z8S&}b+9UBX0Y6R}zWgmOd%Bb5>ts&C4No!78Svw%Tn z^Fv7EvRqp3OmcO&X0yEA%Ds-Wd;6tEl{HjbaBa*Adl8)Sj@`ObjO8rD_4fNeLHhQA zAA$jeWM6`+!!SB|JP3SWeiln>!O@qAJp_fIe(y1G#=+F_PF?Bqu4k@7(e)i|#c?D8 zA_8rzLlmA8j^vJaustFA1#3kIlV3k3SF6pq$fnX#W}cci!Q1zw(NXgf|3+2}#gN|4 z%T>~sV5Mvr+4@>pd}gdfRyEJJFp>w0;Dgm!8BK8==*??}i}b4AS@URk(B%O8gQ8Xm zkbP@JZP32go+Zzc7GyFv?*?w^>i4xR`sTfRF=mQWxz;+``XDYvaWE-=s zB%W^6vy!|?|7aywVMBea_Nsx;?o`J6fwyoPppK}bByjD?N;m1^(K)i0393Zz+LGwQZ29Q>MP@t7bl z>BD58yd5Rg;5B9^cwv)rnz|ElD3L>c;5;>zdn36;|<76u812=u1 z7n-yy)f7)JOgSScB0}=@LuSq(Ny%;@`k``xH^nbs!td%POakJTrT9${ZC7#H@(GyM zI}u@qF^YR~6kDX7%|L#;%|stv59K>xq;gZLF_IpJRLU)VDqFeX@vZ9q4;u1!NM%xP z@)^&T@MvTc==6npng;2@pT67RY=tNHV^6;-wVdHXWESOYJ0^AjwCv#qt%u!bkYJ&6 z;bIgKB0Mv^CAqi4U^(s(wwD?!_5shEz}-G8gEt4cd{2_xdOdJW_gM_5N|jUloAFE> zO#&Tulv!+9on^RlNVp5M&vd|Ux!eX6G=eJFaYgP=f|OOV*`WnhS1q6w7Cs!DC%H70 z3*cUX)iEAos!*PvPs}OsBe5`rqvXi@dw>$UBA=P*JN|4PR0Y|8#r+2N6xU5NYf9;9 zl>X%Gg{pthlb?SIC>{lMJ^ZxvOIo`}eZ^TC%4q1XtQ5t%?^S=PUMK9{E2-F&a@`LC zFEzEuqZyOAmtd7RNGoEv)xtC@Vh>6tXh@-?4t}o5$IHj);s4xl;H`vM9m&_;y{8Fm z)K=jAh$B{z5ToDvUiGnaZ`767LSGoZI~5}YaBy; z%;U&R3Gh?($E|3334dqS_2{AvEH`y%d$U5tLVGYmU_E0Y{cP8(mFgZXlAZY7A0UfQ zpSnQ;`xJ#d>-IG{Y!qW|iL@VS-55TPN0B~@GiDxPcTF+M*5(*TEp*rMXoi9_oS^hB z?HP*J$|}kd)*W@m`41uA1Jmn_f_7RjZS>X&o0xxcDel)RhVfd$VuV;`knb!KfJS!} zbTA6kHfM|pJNxtXQ-#C$goNa63^78jr;c7l$FD+}dZ`#Fu)GVOFob}+gJAh3Ya$#% zSDG++Cn7>YAAEF7s~D?Zu_q73nY%vOy>nii$;~6KZk+$6yMmr@z)H7S`^zP^{d2OU z5Ep}*tz9YEv&KC|NjS3$>t!hW%TjR-pWVs5$2W;+uZV0;`1y#J_hbqz~3Z4O5P1B?}87<5`4~10`Gupny_A zw@_7)rvlk_g8<*PqNZGxtwY_v#7YVUREh2U{V4rOgWX+A_xY!^Ec#@6?lFJc<{C}PcZ`>?)Q@PvKu-!y zf8|Y?^eAKT+HZpNSB$3FAkSV2nfA3iUq&K-)@`uL!k}apO0Sx3XT~a1e~l?@`YuQD zn6cKqGbhdANwv%Nfl&e~E{m2&K$Fz^{jU-=;07JQ?vr_N8E=ogjew46#M3DmU5XtU zO^Xli%*+e&A)0q!6c^tAc*`#gsh)uBINFhyM_lO=nKD_ZP`nrk zup#B!BpJl9Z|YoG+cbmW^MzD#G>PZ1##lCL6jkE8vA2SCqw@u5(*)mw4ZDxARqUb< zre)4?5!>sb`7e?A$4E2QJtdV_46n}MLW6?D@5x%D;%msZcrsYLwBwR;cCTE?5zU%h zc!*j2k;aca%C#^A6o;Y-IQ_6!u)LNB!aY5zOP~{G!23IV-B~Yp7r)I6F2hE~*E|@s z$nC%YrFFlit4z$F6K*Vhz4p$Lg-PX~G2VllkF*40xo2%drR=#ol~N>yuA`^ppX2~u zjW9I{Pf-4E+0N@>GqPp_!vSU2e;tq{UFZGbvg2ElMv*j4e0@Wg<7YKZ`fN9zzA9$Z z>_g^E^q`*@JZYh~Y+LO|T*{*?ibV#PFewra zWLBDw={_(h=wFjrrWR>VV(~X5wPAr8VK%<(eeD$&oJXnzj%zu=QN*{ol9a~cM3OSY zYF(9|!+Lbb!IfPf-!0YlycgzKQx|;{=}d$+{^bcmYSqtxWWbA*_(V#PA>Qn#hN&jg za$Wu|-AQ~V6I#wj$)9=|3~A?kdIq+HNpK;HAd_h((1ywzf+ZYxR??%gl1eIxznmc1K$KI`DGopy_C! z`K#t9H{phWVv8vt@4VMW23|Cn-8-^U(mpc#2B)-0t2;oAV$lq6!XOFCRIJgPU@c4V zsJpitqfJ;km@b!FQjUm3jPi^-y7gOwsftR>#=}tyT=5ct3sV+kg18Ux#) zz9vMXKUk#p%ma>t7_gc{_1NUKES3|g6SnRl-HhKfxj;lJ&;Co104ntV&p{R-p_K2NhH#)d1VLZG-Hrt=;pW99ScnL*>YStxY<{HGVs({jRO{yB(ex7$6+ra8DVLp5Pw*6U0u3s#6X|B3Skfq33##A*1Rs5 z^-?WFLMSE4uW`V+A21;YXd&FYz)BSK8LDP_OFQdX9J1jKT$8oxy!AG%)GnezUcU69 zz>nv?dB1M$+~A{zTU5yVldw=}!>N9`*uOMKK$*Lsw6 z-IiibEC=DY3dwTuD0yOF^1sOK;xW8fZ~I?b`9FleQZCZ%pDMPU;ktWcecg|(DfpUu zV|;y&m+u3-E|1nMRx2)cl^saf!`PWTk$PDCQf3Aa-~kPECxo+69&+&L&_1O!r%%AXP8KIV_ae7OO53;II6+-MA*BiBu zoj?0mmr8n4CD7UKF`>>fcmEEQ!~!HGX4^ilLElsLGw-UXCDhWGo^EeN;Q}NAyin`d zaW$KBFQY60@#l=7widY0`SDHjd#;6@8Q^6XG_V7>+DyIPsuSeAz!j_0e$bkqUgwA2 z^-~k#+oQ(SAf=oz>R&Z>nsH2^Xo{ATiZlXXO; zw|SB;NZz}uD2FfTVjB7funQ9SzEi7T5#W47sPxZa?EIp@X=ebHp-BKT@d+rLbryNm z_WLB|UxN0ocmS&=Kykhu6_eU>=)|dXtO@D)arpOh)?nNd1La+bMqN9%Cy^4L4_;;| z^2pa)syF(av1KL39J>Gji@Xi-2Rf-gQb{@ycr~Wth7+$X-|H(;72FfCH{D|gQ7OiD zOCNFmN6S9v>;C(SCk0Wewd{qDkRKJa)=*x}C)@j{LN-+gs|OIY2z%iJ024F+NVU)vVxS-;fdfB+6cJx2fo%*7BL4*|2o_(Dn;QuIA&|tQr1KrC)*%=FhZ_ zQc(cZyWNuVHg8}%7J1#mq+Lu?5Lmm@OXg66Pj~BqEG_39xww(K$^c9xB*hhF{s-tW z4~@YTUno4ZZLt7QEHDY0oH5U3-QBb1thz~I7JKX9=XttJU*>6FIBtfG_v4#Ivn)R$ z>bqTB^*B+~6N9TzZAJj;RdeGQfcp!YZvfcaRe-%se7(6J1FZT*qmjR$_t*<5pP`Uz zO3|Oc^zwcxrSZl9)bKx_x|7#X5_7=_Gk_CNF7s5k*yIXELUN}hzqs^~FSl zT)Y_n$7nV1rzqnGp0OA7%)0i6$dr~(TB9KBACTu)JJTIm!N$)2(HiR~ zSdKcI{zRchU2P2Cc1z9uGbeZ5e3|d36lUztkKpc&sO4Bth+H8Pu-v&Iy5tt|UoMwV z39vSXPoL&^(^BAKCc^T{#~N9a-466Jf57txx`l^&Ro?%jt?8cwAc# zmKN|3+DpCv0`bMw;8_LfChy=20HP_&@H0oF6<*nq4-((7>UXuZl@=Qp?}q6V&^ore zwd$-rHIR%!02HsX$R{>q;* z?s{5Sx@BDdi+6Bf5sSKA*jn>lz7GI!lLyLPw_14Ke)`n1IxcYVM}@*3FBE(BeYbVs zMcu6y#*8<83O3yD{7}M=fQ3@kRXG4uwJ>_4YRHuNUso# z-mO|1zFMW00=WzDvRB8CI|EgN6e2J=GrY;3-Q;1L<7$rCv@CVShC6rq(|f;fuA@0` z92z}jBv8g8F+vj!#rmFO7jSR&cNAYGRja`DR$sR9oEy)s7L~*)C;)`d^!SPD{u&DM z20V8~XIr3N_{+UqI#dj}{108HAp~txB1jFlzOxw%)jl@utarKhGZ}IqfcR}C^*$e&ojm)>Iw^`xVZ%l zfFame{`D(a_3s-ZYJMLAeQJVm?ca<40IjyPcrQyo7OMa5X9q3B%gyMwY+MSoD_IVe zdU5n7F$=&Ry}Z>?+lic2abs}i#*zzveK4uz+t!{Es60ll#$(rTqQgi(b=c=Q3)HHXR`BOj~U z{i;)f;la(TH8VzKkCuMQYivQ^`O(1f3nHP{2TOM@$ZyGYg zF`Izc4NY@Rh+=A~oH;g;$3U06|H$oeS$~>2^Hg=Gz#9>04wBxztmxS%I0+ooaUT3C zgU1cx>-SErI=$i+-gywv<2!$g;UP2CjlBtw(^D6Rc=ciR2!)CM)=XIII;;+2-wu-ZiV##t8Muh4GS0J^Nx2Z2&RJD%bd$*)Sa10I$)6LuY{byE43iA5*DQ6H|X(>+b#_TO;_ ze(mx46Ap-daI3dLXU){j9*o)np|Li0>7duSR%JDXlQ8Rad1QN|YT?(Cqi=VcpH1F4eV@1xK|DJs?JmcNk0f~z&2B}nd5FbT^868vqZZ$I^|6DDcsGAa>@EDgHK`jl^&#^zwKza zW3-3&c^4y~vI^#8`J%^~Y}Dvu*?DFdv3aQ0`A*?wl(H^rslSiS=-q-e!7_11tLE*s z`3`OXfsVV6bI)j}1arIX#lR4OK7QntUy^-^^LES3@6l5cB%+?Fu%n9ivoxgB1PS@5z+9Wvbgg zQnBA}sIyFTNS$>|C4;ojevE1oG9^ef4*?5>GHqcHkj^$g5Q|#Ab#`{`2T6^^cS&oX zfV{*X<22ZQr#2AyHm36rno4Q!8Yfp%gQzV@wNFK3cq4M?oe#FAaCA8Ub4A;`!jA+! zBgIWp{)}zRWV_Y9v-GHF!HKEl4M4j(>vCyvTX41T=yzrbAa*=aR*g|*(V+UY^)|R9 zDW45*+f5_9sLo5Ad*7IyDY8ev#)`G614TDd*a+SuU(rm=GlZEQi@jv_u5@eK*-68W z@GCZl+D$D?qI0F7N34~5-T75c!qy*=&~G&sjfCS9VWBSR=%ydzPT5oYeLvOqx686- z1Ud(Vms15+wWPu^_3_?GJ_E3S4v z0&2Mu(EEW=HT|ByslHq};pI#a+%e`)P)m?q)`+uG5WR*~J~B5bHrX+{awr4=fqaPH z|B6Phed$dC(*_R*jr<@8hWQx9)nxV$N8XtGo4Y{u>0Oq02Q-&yt-^C{Oawo&y)}o) zapO7`Beulw71*3uA8n5Dl>6!GRQVMD1wGUk+!K8YAeQ#ArsJP1SCqL`rw*z%KN7p& z^Okp&_()V>-#_*#i@=4Vh4?mHlJkA_#yt5^w)WVs%uLINS{GfRC7@R1bX}y-(DA_UGwSttyD+Mgt$JEc@mqj51e|t(u968SZF+#1&{BX>Sv@3GyVL1@lng4V6Rum!+de?SYWeM1xpdt% z-VE_{&yFv}8Qyv(Hh;QfC2J{ZgscQ=4nZ4(YuC$v-VdgPCt7MwoJn(sr{adI)YceV zXMF&uoO5n-4I4e)&#tAvX(X!lwiw0*uU*V%f~TaQx4Hz}Oyuvf(IXfvL>`}3XzcZS zCNE%mG6&PkU3mWa!M9t=qGlQw3QM@epLk!m(%CH`u0bpy;QOWT`ce^T@6|qEM%d+@ z6C`qgSh}>TtXp@5!(=Ia<2X9%iY#TtBTr$ge?S~Q8&|>op@G$GR0;f_rwv7g!josO zEGd!px34S%0ZaDlpRdot&&4QC;dUq1wWk_jvngcBUnoEA(9d#}?jai~am)5;Cj+~R z!q^n{4Aa9d1@YZuaSG4szQgNHB$$*;);{s*S@t$C9JoLy)W6Vx?YhqxS=cUhlC48LTp#Gs>Tsq^h<>N;4(gs*ZZ zleq)4*As%~pd2q{k-2J=K$nn#JQaO42+A=^FI>+QUJsY%_;VVCrat+_EXBI7doTEp z9oQU=3T^a+og~ner6)M0@@@Cji8-KP2F2;G7N73xRl}1%B%A94iYVvJvF4u0d=|A+ zYBTA$QIgzCeI&*PFZ71%9+xO<^$8ao27G`fICRJb`0r6#3cMWD5+Wnd+wzUb>jhHQ z*!v!@n{}Dmco%`E2AU?gn(h2nY#GWWXIjrFkm?^Yz z!&C|(Be_L0ZzJ1ZWB@sciC=APy~A?nq5_!`GKaO${i6)D3vq) z{LAy0Dhd|{x7ayug33VN~7UlzoNbc0k4@{tx!0SyMhLYtIT=iA&1h zx!Qow4oZ~w<6wu+n{HPy-0Z$52Osn<={yqQ9X=p8lZR0ULjM3QKE{S@skd{8814E5 zbb0Nrn< z6>2A&vacVZ&p54cWZWL2T`?U9y9<=_<~ti7OI3vi5P32<6LZY0A0>$zhTc1`kWUEo0_Z!z#2VHEdnXh~6I5M1_Q)!BEL z=zfE#aacn{*VjV!7@oVS#Wfs)h%woFHNIgnL(NWz!}#Hnj`PmCQaopVXE$y}gRphN zLu(j^g3~fbx8{c9@a-;=lllcLWiF-ZbNVu0>=S9NAXiIz9)fxGNKddtbnl9=Qg{Y& zwT@xpHtCH|@B}(}N+l(&By4zZ&MS$LES#Lk?t>dmIEmj; zws><*}4aVF`BO@YxaiVgLIH^?r3YT^z>aXE8L$l0i4arUsD5e;&&ih zzRQ~p`}0iPW!Ys>x!&SEeTy%HYj`Ye>IwAx2k18Ao75wkh3WaoMus>AeC6Eu(ZOju znt$e~f`5i3pR%-P#NMmuS+&y)_x4^-!5*T-`Ej_^6qKsvb|8EJ0Jk(od@2aV_Xu z?c6Mv9A7luv>}9Fiy3%+RwWurX3llIC{o@F!$GAO>(6Vf{|mdPKn zxDO)~5|rE?OB*+*7~X!5yiS?)%2Dh0-kavp1A*=nDuzMJleyWGNe^-*fS&Gtr1$5CvzBITUiaLXOF^TGmr@6xF`8#7M0PQo|Z#~#iFqR9jfF~YuQ^I z0V87#pHJAv9TZD%NK`|z-cB*MQ4q{%GdT}ek4#`Ut4{hIR??sQ}b8-b%@AUjHu(-qq{D1w>u@c za;j{uR71bXhT4(6h>1$EdtSuEF}OZx)SqY`F6;!|^$jHkst){!Oo`pCeO0y%;uvrr z$ynwp;{4PwZjk8uH#K(mJAd~!*<)0wYM^RWWx*4%N#n{+R2=+W%p#;p)yJ-mn355(|;h}-RCu09-9JJ z!R-^EE{eOR%iJqKQ-Il*U>?B;Lk&xtw)K(hVv-;rcO#kHZTxQ7OGp?{-##r@ZYDSQ zPV775JRlF|^ip*^JgjF}77%ZUMQDG{EdHz4u7nI4@4MLz^=`;C+m$}Bt<#n9;91d4+|?PA49f(&&F*J4!wVKH5=&W# z^Dfv)v;$N0(pbEg*&C1=UYlv{ZTLnGyu1j_53D%cqyHwc46ZIe^#NuD>1lsgq$=af zt^*^U(q{Gql!X6vMm1`o<0bO;>b-ztAYWC~Vm|T<@4{^D3}1p_7!ZaICgm$gcb2?j zli+zQm|8IfdYHsbG@t)^#e;R}CuhMXNG_~aWr8ycM=CY~;@~o@+;mJ}Xm4&)OCZAz zIGbjRje$fWW4}88K9@sk#0#_<6UU&~HVFxOl5P(Lu`>)X@V%7%)E$}kjwY;E^kH}) zdoo6oAR-is{2WKU*k<6zlPF{WJ>Z(}F2N1GYscY5C%|AwF^9j7K5 z+&40-6>sRd*|9`FFp&Gz$12zxyA3BLj@2a5uoI-Hy`f_ZjxS4q%%xDtBEByOue$u`d-8X z{kmbBc|St7@>(RmlJAPdKhF3_f1N>ul-$s`@tui#Wfg8`akn;8e>j>TOP#_`;$N(# z#M8C%6tO$(_JnjMp|3yU-klc@1=>dA!`vej7sl+SFcVT&EbWx4UynH#VRk*98cT|q zi3LD`dDNZOriV>su-pmK+T-^T<8Kj@e>2UOn~YgeeG~UUh%sYYeOm`?ofxypjD0WV zpKA83eR=W`1=d1@fA>7DXuR-u)zOQ@IgfQ4C>ibI@Xh7;fQ$uG0~bT>lp$<`(zXSK zfw%SuwyP$A?&UT07s4ePlSX8Wh?iH6-Lwk_C8&S?hADCD)XEKg4$8Z#BGPWWe9%^B z6G|;hUu=5w$4Udj?4B5oYqXQ(haX8fT9Npj1Q5ZdZ*QViK>Es;Ma#c2ILp_<-9Lr$ zy`QLyK+p`;jj_6@#dAm7v5E zD83#I6z4K52P67QzdZyJ$Xhb$&p^%NCur@^*f|cXB_bzwNEf`cCuI_34s}R{Q7D9m zxja~rz8Z`;vQ2u{>PA%s8fuiW7t-E}&r#r-U{gGG;l1TTwfRK|EG)j&GlzU_0ZYb( zykBm)@@F*Zr!oV1*pK%!CFc{W32W(8N9Z(Gn~2IyaPXkuAGUHOLL6dFhT(&|a&UWJ z-B$(1J@>sYDH&I4U~*#NOLFw>&g9fD7jE0PQuGmq4D2h!5RwO9#uC}`pGYHkvyQ~$hJ`#^<5&b7KinwxP;PfMI@GLH&~Szt7myf#oO z{22N1j-!e?xTwYU!-gnv9w`?$r^eUbiV=PWM-Zj1hR3Sk9$b*B>LwJvyoUu9X$B53 zN)gP*Pme&?SzB8zo%;f+;E_enb!5$P5<|76##UJB@9}b6x49<2nGzhy$YDzN;li4D zI1>%+q%mvpEvx(q?@T?0Nzo1&2@4jWn2p;atFHQyeM6|{l#nE`Wckmy_v^9sB45&W zbn*$(q7S#E*ZuqK3}c^i3XkqRIq4s9zE3eAb90l+C=BD!-c&}{cj92}w^Zd+Wx!3G z$Iui%9n!vg@RP2!Up@Q%L*$ndd`NiowmoVoNT$s!`N@)QZHB^$F~N)nsy-;qB-4nm zRe|bF{C!e3QqyL0_ zw`UeHlca)eakgFmUA4XIOa%{GJf1AGo2lX#!J{1leSo)nhRC#D=F|0kMyw8_fNl21 z_o(-4paqDxX=u2=l{qWFkP;s0sS`$_g9P_bFI;`FXv!}@6tUZveX9NlA0H)-|OqR%wQ?v-3(F38n+$qk&{Z&UoEAWA}6Z_j#kA8H{ zi&So{bJUK9?%l+UH&iaJk{$ZkKV|k>V`Vxqe-RrKA^S{II2h2Ziov$Z54c5i68&4gKLz<+46cP4}uJvzvK6w|cMwwwJ>! zHl#X!ey$6WZ`y&iFa)#3@)LeC32JCL#bS}i`Jy(-m>vPam|pg1vhG1`aZfY09#ygA z@5A=p!c_yyGIL$%E2c9={`Ek6E7e|gTaBP+KNTb;s_GL`nU>spVEh&lIh%D z{F|9NgH%L(c)?75;F=R)gwheYQ>3gyQ|N!mV(3_(c2)eQ!Sp&$zyZo~OJ4Dl$=vm; z?LhO((K_9vdEs8jTr`-9eM&g9ID4H zigrh-9uok!6_)~A7k~soVhM`fu5!#XY%vqjjRy~2G-v?E?4SW-K+th>9S^ps`Bj5> zhak>|;X1a%BMD^%6{|Z#dM?y4oCTq?Cxsco^tVAd=v3H{MpsNnix@Ml)ss`SLu&Vy z@Sr7A!h#jo($RVpdOEUN3!2EFZ!+A8Ni`3Y>RV!;xWS-i_2yKo7#;yT4&zS`RZVmO zvb`sGPR5pEo*V%Y=cgx$QMRmbzrRp!)%~kfDZN4FU5_uCYFg*vLl%06(>W3Cl@ zI&L;7c$Q&Q7fK{YG4(fy56Gt(m9DfT3CO?7b8PP4Cin)w2q-!nBFSV;o6c7WFcWdo zK(_sI4T}$rNy!HG3#9ATYhYx20;cJy>-fE*`mNQ<&s$$lH4X{niHqHVLua5jiJ;`c zF_}O{qgF1#+cvN#hQyS2qqq?CWLHr;LF-lHM(wxHNI=)aqI%m6f#b`S^e)M!gFB~;hT=!5NMKDeUEIhhGDMQ^m8TIq# zj|4jK3lcr>esknY@B;UJr?^|pAfa%j^EKgSlecc9D%63hVVHuc-W*ju%UnsW_%(4! zi&pQBZ}ArQX|5HAK8Gk0OiE6wPON9iEWxG$l`)tFZu<2XAXnr#Fi)bF!xott`Vtr^ zsMEH4wTtb?Fq;z$>=@bAOln(!poM_!~g}spDSf3bEn= zxBFj?BY&mn-cpx)fK;TeWPA{7TMh@-9~ZSodfy6>raKsxz$XjkIvozfY8*SBUx})= zNvH>AVOw1^`2}37$I07#=kS>!?QtEI$w((f2=LP2e(-;v0oh|>uh}h;Bg3d0MPA~* zf_R{n^cTEX!5oV02}$Fpx9xZnS6n8ZP(mIK=;Bxu83*x7VXJT_utat3D+YY;sg|T! z-_iQjLxs>lX#w1qBas`toiPi``E?vVBoup?S%VuhfAO1892T-!+&_HCx|wJ-}I*? z$}ZK7sVq+SnTh5hAJdY|LEKectn)iaT`GoSdZB`7lo{sdIda;|iSuk3;DPy_jD z16%7EDEr`!_fo`P4QdKb@>Ph9oDcTZj3o7s+rNu{AxZc0-epoXymO^p_r+4iO0wO< z*R5nob$6AL`k8JwIm?%?TT46~1SyFbW`C;qP!nWNyNBLO;nA{f{FT>G81U~cNs8JY z8K6RD_-I}8qx)ICq!T^0fXsGRp2d*RjV@b1!Jtj6x|8J|k7Fw<*2XepmCk*GM%Zq| z<>(@XN_e^VI_w)v&LI_4We8LNz43IY-UlN#w{u2``o9k+|J)QR#2zo9wk6lf-42}j zU%Ydg@xX0lz>XSD%kb{}KD`aHSN5^T%;lIcU)e^V+7}mZ5=m=K0?I7_VHV!9Z^%tV zI|>W+NCj&hYYS|u+`Sr)^!8CL;*wuv!6fz_Lzgdg2e`&2G}ABYdY zPPtBH*U3loesud^mGgh2bS_%pe{2d-`rn;~^PsU*#8LHtkUEeZzAy0e_iBZt|Cw}Jn*Yh8{;{&m3 zIRfH95%#R_!GNY(FVCqO5QPGGVr;R~1~RA%2NorIQOK+x4mf9g0f&P4^Ea!|th30K zNJPJ{al>xjfC&o27(hK2Dg2isaOYg@dQ!k>yrfWQ_a?;82*{$@R3namyBWvQn#(2t zgwg!cQLL46g8EkO{u)q>9f~CadgEOnBnMh|esbGo8W{=5t}qCj(1n(n*n_$@7x{HQ zPBkHhY+Weko8f9A9r=EE)^@D-0TZxO!4m^|{@nF@cm2f86}8ub~#-q7SZg{USU zs;^1{s^#r}bk}p`&YMwaV8`HiUk2~?pB|Nb3{R+QuUGw*$C2CysJes;WhAyJ1!J~={?t9?a#WY7Ym7NfCBj-E~b`T zjk=(uhi|KT6XMrn01vj!%egVuW3!nSG7)qTW65HKjjLd(j^_a6)EfZ1wde9XH(G6k zv=a#@fcLite7i?men73fcXDKyNX$c)H2E0B9jV;4@OZVcSHG1Y8b{ojuVtp735pD>yG+sNrLLTxtetQq2T;i8)O z8Q0hWkCe(J-FeX3Ku@iLXPrs6#qKKIe<6>C`sFS`o;M=bXCmQe;CbcrDvY=EVhHqlHZ=3SH&RLNUNPK zwtzV?`5zNm;a7CI=eZwl?%&b8%Z?! z|IVG&Qeoes3d3)It2yQSZ;pJnkGarX7moyhYn^X&H_a8ak-Ttb$uuv+d&^e3i_+z_ zWoT(zYvxq@Q(|Oaam$4Yegx8QMrn50?)GI)b-c`MZPAjFk8xCZaaK972;69tB^m`;Ce1rGGD;E9dNqur* zxE?M>sn!4yPbENhmJ1cjY3ai^z7@dV7F+rQz*|;9#~zAYP;j0J@< zj<9S7>?_IMa=$71-H%=7;hSpLoeM9uTVM$*-1c^2pl@H9fZ_|CB*Iq8ZBAbA_Tbb7 z0Z);npMAAH%c!TGjwODQj3^0t!<1eomA~6D!0|nBWC7xo2$ToCWihJJvi(ZG^W%-J z&B^!8Zr!_1Nf-Yj8ydIERQ=D}%)G8VJ3?38#;xO(Zu#S=}K(}qq$r7?M>-yCn zs0JFGQsa)PsdYQS!oo)XJorfdfYPR={QqIWVx3}BjBB18*oovutYsZDv^Sv^%RHq%bo?y9PRwWj#stEE z>~(r6D_=||%WFM{6GwQX%Yh3g)~0qWj`Zj({axSEPrOg=ZpYT}S=mcAK@sl0T(35- zjD)XrvH01r)7hpo+f~o0f>m05c`I-Ju^F$JX}x0>r;nuO3Banu2_cKP8NHoSEGFTb z<=Q_`0_>a-VZyhX`S;y{owc@!TOrdo z-NGAB*jo_SIh}tLjY>Cou8w34dRcTviv3VpRXI7EwvDOuilbSFZnBjrGkM1XSNZ2u zG>+!y26GhR=*jA}sRF}04xeBRAE5cWiGzxoE+qpwIesZ$S{AiOPrtAWOGOgLLx6ei z6N-m~pP2D>y*x~d2e}48#KhKT=_!sbjZ{QvzX!b>m<=n~cr^OA445Fd+wjc37UZyD zNIdoBW437Aq!Y&4ms^bBYiFqY!-w5L+HsXsOFx|z^MSmOS~Vx0dW46PxCo%tCB3RqUj3PM5U0UY88CO!E9g8I(1!&E6t_by)xR0( zr+xdQtvzjU{8&}_2P{wb8-n<5N~fFT=tP&Z+tJe}4^A1FNiwdI$~%^L_d|J{WiXi! z;m?jvL2v*wZFazG{2R3!e0fa(GYhYZ-pp)l1S))fLi##@mcaXg^}>yUy6e7dl5c&$1&&leyWGBPG8)kEnxp7eLiVqc&*F)-|2cwBLV%T!a3tN zjlYbgvxWF7Ek2&0wzSYt!uKj+OUyBU2%`F_YMK>v1C^5PqkC`GBlQtnl49dd*Cboq z>ug$l{l@a#RKX(H9n!1eJ!Tt^!p00`0IB{7^Ecv#5`d;&DP&QTrmsafQ>8+W)qo9_ zSk%S~`A|u+xlF0NpUsGe_3vsEL;~71ChxeU4cf>XonD#G85?d`K5sxcNmvs`0*un z;)8aA0zsiMY~nWDj*pJIv8-^@66TJpvynP4-~D=9(q^GS*VFWx#IFblNnM!N>(zD6 zur%br<(t1ZBdM#r@jBZoO`dO6g-3XRn0;oWxdyp!m|k|u#wP+(@7z?=*~V!0?ss$Eo$$5!asJ)XG2(OzD7sdS5X$TDT#f5_ zYGcZu=>I#R#l^L=%vUGxuJFm(Dw2WP&}PA4JbW4lgkeg1LDdOw4dg`sT$8DLw` zbGaUvny>woI+j!|T$Y145Ou1UW!Y#1L#t!8KKzypJUG&E8CDNlXd$CGTz<4!Vk)x_ zy!DPRbufY>_20~A$arfIoy)i|G_aG;{Y_EWsPr(Y^I2m0OO5TiC-ELp*P*i@7Q|&zLaHPR4q|y^tp;oU?{< z$-#|Fn#a|RmdY(Q?ZnFaRiPigolrPg`C*f5ls0_xb?Tw1ZxVV;62$1SIBC7+zwq*7eMQuI1v>dFEv$}4IKIBk9{7uH^MEz52)U_MpQ?0Xp34Q_1tvmR6T_<1@Vps2 zeITR1%Jo&U_4=S~RMOj|3K2Y35mne*reF1wr~7w`Mf$=h?8Db=$6rB{matb6*u`+w7j>mi+n z%q|YlycB=YL$pOnAm+U^>Xd6BLko-{ufv zT$)TG93$ZNG!DXW&sd<_BVKHMSF+X2B=%+df_zp`9Mys0sMXS^TOM^oh~;B)PAnQ| z361PmOG?im^`kc{sj^hGedum%R^ekqsFRGakaj&yebOvuY7uwhJoD=BG0nyBe%In8 z{pDx%k#la7IDy-VZ3ZfMrzEB_oynVoWG5aD^e#ROS3k3=4w9Kqk$D6)EH=wS6t;@E z7Y_@#bz*G(RvONy(xi^g-vQ^bJ~E11^;z%Z)t7L)zhsdxidj@t>-u(z5u*BtG?=yy;|k&rC&oSpSU8Jdx8Nlc=)_Gpry$VXm%%xO=BsG;C(e~Y&GqcESl zK|?TjAxwldZa7?|H7nY&woSNkcy1C`C#Apk1MmMXkF+U9f;gWfnilSl&mYS=bxdZ$ zzCu(r;)BqwKM1Vdv_{O&RK}LU8@Y%hU)3+A&W%xO4icn7qdwSOjuAnVz6g>A=a{jq%!upiF6c{mGFaKfyRVK#!aU`N=e#{jnIsF+ z?=nevlCF)wzdS4bsZ<%|ZP}QBTD;FK;;YCuWS6BzB?62a9B)hBXp8Hy69h6H8`0(Fm+LCsO7~p?mRoNKM%T^+^gnU znOYl&Us{o>DZ(GwwygjPH%a-SqcNc=-Kx(H%mcgB&;w%P*At5(FjzECf5V6)ngW?s ziMHq4jQL8-J``;0{5zz9+RU1~t68j)!HZl2{>Kn1_v%qqF3?FKXy0e5zORojPCoN- zxtQjZjoprreL{J}hVYR1!#uI3S`zgy=g;_ASio|F%axZc_NITKy1(u50;awHk;nmx znC+f(d!vqXINFu2=OocmY2j3o4-njEWmeoF1+oq1WaVFj?WUNcvsWbfLtqarZ{APW z-iHg*fk+8Ds#0h<^oDZhV&8sC=SDKHBGN?phk_eXeXL`Q(!$S?;t7Mc2Kaj-dWbad$}0xEj9chsx@pIZrx)+$0T?sg6WuAL zeiz7?3!7cf-wR(`jzIH|ZpFXGqk4d%nD-dviJ6V?%rw3OmBsuJO&7BP(Ve6RUh|{m zHq5I4;!po&HNM7>S0Lg9ZE7c+&R+19`cTBb32Y+Th={Q_-SXfGCtmTl)+_y3jUYXSh`fd)27XVLJC3uqkcxN-Q&>&8i zIFq+*#{A}8@m<5Ub3Xur`r}!_QT>{$^$KRdz{}7Vc~HD~*&k<;G!MXDR$ds}8qg40 z4i(LdMPO89CELS5{g~)|#nn$eT^@;EF@VHeHSb_Tz5A zcS%+a?i`?EtUCh)J~Eim$&Bs-;}Zu9^>y>-2r@hQG~q0IFCOUZ7!8?!yqhF~Y$V0* z722idY5;umj)e@~{Yyq-Vw%BC*^=gbbNA}ZNmKo_bT$>Is@88sL>aRb4CetZY+VM7 z1oWQisII(WDQOlQk1BN|4-P)lqHQkZ5vs(Eg#xSEaG&jZg4arJs{D-*Uf&<7A&t$A z>Lb90-tpPHl6fc@_S0z^bX74|4Lx+3K?zj7+LLnKC4}RHGllG>H&YhXH3FDQn35XI2Jf_Ei4fBq4OlQ z0BebVsObGfOxaNS6fpXw9PcxzYK#_jd7)|naj3H}XG|Jz76>|?Kj!R=DWc1dXHyF4 zwM2({oAqEp5sIg|?DW6+5FvQ>a%x1ZUu`gDlU;VU2BIh-H9=7Ih#hjS< z_yG4Jf1rpWrqK2G2wSmaUnLe!jvk$6+ne4QBS5poFg5}oyJGA~g)MMW18eGUY2Kr? z5=l{69^w-c?t{&*%mwt#Be1%)^op?gXH%Zo9Lu(tG}`svbGM>cexjMdfBLPi;dp?rn^A5J2>_$6!{P148V3O-K zO_9Fthh>O)eNk=oO-p;cdq^dLYT4a}M-CVFG%t#G39pa!o*&GqSI}^M=qr5E_qK>9 z^{a zZ_gAGlY_qh=mKDmpr5P@{J>q&h`uWayk+3jI?opV=A-4O8+~P2cnhgXQP}t1az($>Xnq{Nfu97 z%mV3Ypy1!0_G2Q5x-6`ee%9kKnZ8d$d7$!xHLq30W1(n&;V}lS&6t~-#V=AErvC!XoZe!W1MclQ6f*KPUv4hP)^&C0b z4=-e>d%}vqZ^gQ#kZ8)XVcv?YW_2a|Sgi9vX}=R4C&H|t>s7bo2L%wn*?s)V)MRHH zU~hFd3ZIc?>I6@lt$gq#c#a_c5hZAl!Mt5>cg)S)5^un&T*RH!EieQ3i--6_2BqiG zqa%dmBJQ~K2c7Hs6+436KG}o2p+#md(%P+Dp{IBdrI544UPi+Rf4J1eBobJxFQAh2 z2iNZ#GifYXX3CuS=@QczL4n1r~G(u$76L%G!!ji8&d}B z_C*~Jg~zD$-#?;n@~({S3nS0Cn&`Kh$k+)`D1IPGF;ub>>TMO0ar;i5)1#|^?=61P9DM(+g?`;#neD|S$a4B<;-yB1;HxKfp z3>;fB&oQthvl6SB~mh7F%jFk^~VM4)Y@92koth z*xHsWPn!$>RcWN%hruNLKuK6_=kds8?ctvPrY+i@`2tzaRHu7qdjEX$FhG*o1{e>z z#9m;3cy~LR06MO}752Lil7Zn7IPKpdivJ5a@&Alz{ExC7|KmIDYOVfcsg-7({Kc7T zqp|73Zf~v{c7J|U^LxYk!mqw6`#Rrjf_u1-6kqI z;cI~}-^Gr$E5EraV@>n}h-5bsm4F%?S;S8j`z6qab8Ua*@GA!S{=YtsD zOXiTyIZR*AKI%iwC(Hc$+cuG|a9`3qdHO!qQPypvD!*TmfH(ZW6fC+4bYbfGOwPwq zPtJa$yn)tvM8Po7E2XlB0ZbD1?iE^aq&%Zp&#O>??$4)r9)XJY0l5EsE9!pak{{%I zn<3f0H1hBN4-DFsOX8EYutG@>wIp8t#iRx8)%$LI zKn?p^#FP#6i-U*xt{}kAS6-$D*l(!jdn+ISnNc{34E#@K6q#^c?Y@cfi**q?=%|+} zIfVHKM!>n!Yu%erg({>`lm0*|Bs-uTWd!)X07K2`bvMclOsbmocgHoz3z&KS#Yi}8 z<~griHgs8I8i4(k-;H;EAYX5@eUc`rnL&g6$DAA24ba>=aMO^HkJg4P*e4CpCH-j< zyW!8L-SV9UT*6fVPuEt91FJA4a>!!}0J%^UDj`l_ilH=G1@Ifrs|sM{h~aa1Ci*B0 z3V;*606X|Rw{iVg-&wQw85Sj}a?^BJm;d7*pUoGDkysC9nY_~?1;#ITOzIA4Sv_7h zfwCG%&5-H~j@svld}U=bd$+d$`uKeJj1__UqEVHEUM@{%4)#}!Pe5ki#|~NC%}5~nqBCTA zKC8)nfLnL|h~(f3^-=|+ba9EyF98xYid`2I-mHO$);w~*9Ls=6&s_h^Nb!!$?7Gtt zRA92gk5*`~{#z^xZU9 zvrNZR9^+9{%4+-#lWcg%G~DYbwvhkE{o!vqq`XV40AS0pY)9TGcx3ZqU)|{9KHlOg z9}ZM5l64n;N_{UDNQYov`7#azh%)~xGu!I`0f2D#Cm=1mHMN?V@5{qRNe{v%nDCkG zzktYmB4Cc12xkWZ9na${uTK*9qblH-4;O!K)TM1u0X8q?r?iIjFs9qj^0a_l1xYf$ zLt?aW@Z@qA6OR;`w(J$mOgW&T;nhROX{o|*_(fP4li9}DzT zihqlJ?*2DTa+9lal_vVESN`2!^^wn4_QX|^0__}vXE3;9dd=Z65E0pZ74!p06R}s{ zR#1339X;ShMAE4x=cM};(eWoTKM$`HsFTyg@(<20{b9-n=x6_(CiyEf`b$RRAYStV zm%UYqMHD0eG9r(kT5dOuV-!;qJS$cZv)K`H8;Wx`mKxfP8Cdv%Wd39#kSJM;LtaI| z%hT(Yi%?~10w6u!aCnRjMKwv8%zqq7_v#b_UlmDfV!rbtX|(#fWFtZ&UtK{`6-_Qw=Y5JEGagJPjlMJCc zc>-9BRw4DvM5r6Xf3XpZ|9tQR3M8e@;iQ?MO@vCr3yCmJQ+{uV+-g%8upngnkEq%3 z%hQo<^PHDyItD)MNI)jd>GXZp_y7P*^mK=V(MTOsF|uNxF#HVZQU+P?EElr`9iTN-f)k3+ZJC@K56XE=6Q zn$GT{r5|h?_^50w18-DQPBJEh&V;DSe3q{h6JTMhI)tHwz!Y3eCaz7V9!1p0qphEA z|7qW2-Fu!+$^RhtuT}DI{sksu1l_yshZESwzDweF`vzX<@!YK0y!WY8@L3Dcaf#vc zo@qgcuBDP~hIXtesj}syqMa||g06z&jNZ;yxd)?)W!98~WGpr?`4P!8%E!_97s(JE z=Z|s2Znn$kBMjKcq;j1`w_XT=#~-46#>63G!=LC*fV|!0Q*n)6vj+OvjfNYStb686 zq>z*jie3C<{@J`P{#`Q1!bfWR)R_MA9CbsYwZjn9Z5339w~PXvyjioAvbVPxp#2H9 zOQZ~Y-4$Nv~f?<-Xp#_lTv5lX7OPEWz$Gp>BA ztynJJgIww{>!Wkld<$?@bZ;wgua|(~G@SfVR=d*{;da#7ew>R@ks9YHCHXxZG=%a* zQsDZ^E+6{hOjOFsrl)g!2)@%oNuFTJZ`}0MzkJWMJ4f+I-#@@*!#p42Ku>;0Fafb3 zbQ-PD$WoWtmI&_Njn-n7i^!0J{Sjm}h=ev7#JAboys~g>(5#9zV;8gDNMwzlOr8ojo*zBJ=Fk7H6-&jh7>6qRLkGJy%E#Ly`Y2@8VU5z6 zdX4wI<+acd5;CFv@MOywaMv}3oAr<+;@P{Ib&F|NWENLAM!-vw>tHp=&!Y}tzIzgp zqP6lXg3OCw@}Zem50fH(0Cts)cELM#R&(_MtN!6FAqD~94g1-Wz3fXN9lnESZ`i|T zyPtZVgp21?uRKtohD$}h2&L*U$(Ea|wmh}5mlkiI9;9_ZgI?#6_D4%Re%rLMn1tgS zt07BfH~USv083mFT^dQ$oMy6MrWv*PWYQ=Co}5y;9zg5(PK1rruEE~P9!;am>;(<* zwN;JpoQ+kIHii-XG^=rTdr5!Z-rK|nmdH;a(l@*Nz`*C~aCmfKyJ7pfo>+98q#wxy z-tLx6;)x*IoJ;|($TB;UciA1c#X=8Hm%ySsCgG38TAvkZ3+$cX7eNQD>;e~0e2j&zs z0*J2<+N7}Yxdus$Fo*EPij#!Z&|PD2rZe&Lk-_d5fKy0uVsbigIP54j?HrO5qY(V- ze!7Vk)%OXe=#;H~IvAfc{v=taF3t(~)YA6)anQ>Iso5H7fnO>6KMDf3i7=zI;7qa_ zCMnT~-v+e8>UCTVSJzJ>_{LuvBnw&wk<%cxTLK(yTNgzUgX6WIkIo^=OuxCM#`ZH< zW22{-RhyeYqCaZLKhS0pbXT}LX8{As>2<_>Ln&K3$*WHGxof*e8(GGltFx>pbiav_ zN@gd4z=Swvl(PCE_p}%Kgz?((>y3R+bM=lxO{t8+4lj31dkNU0=a%bfiEF%)=+wmz z)TK@s-Zg$jwrdK^QNBZ{G!iR^ct_??ps4<5*%r!hz`C5rO_?#m+~jfOtyt0 z#ax_&937mD$^ZNWgTxU==dQgD(Sx(_2a|jIeKB-T2DNDf3!0m$DRM9;TS*@-rQU@jx~l`9*PB8{L13tcl3?l>RbBZ*?9niX~9!2H<}wKDn1=+oX;h$n(}3N zi;{hYFj3X55e@#Oc|-N7*^Nz66ygu$YnO;v6__GBbd*TP=s@2hK2_BNlVzlOG8ffN zED9M^nE;B2=&Qbf=?F$Q^ z(6k5dB4kYClnul0Cf><wRGIy z#JP7?s9D>6X&%(#+HyFJCU0^x522?VsXXCZVcvJyuj|JU(=T$_IO-UaI46_5PN*z8 zdwO(hVS3K@?aTBeGBwWPfuT3t3T5wWy@)wIsxf?fbh%4qGz>QQM*TXGc5~e3yQl>H zRSq2blHUCRcITUODn>!2MBv7*Z~!bzJ^xyUmfc6(> zMV_NtNhV3eB!x=<0C1?I3xlR`vpd)>zKMQl^}Z{|i-eGcmmY!Io9XVD*{gmHo9D^~ zaU@B~+Am9|KEN?{(!#NR|48S1;WUF+ya4tWmufX^DIerxv-D&X?KPaMvr)N~=xwG7 zVag@#Y{vQBDVdn!2i1{t?D_0hF$Odx`Mw*KGt%~z>j(4)(Jy%!ox`S}84P&Q(ev+~ z9!gXg8RA=Nr?z@lwm+%2R)%@eR2lf%ngr-$ZcNs+thM|ajFqkHWgqKLz=2Tz&x!j2 zN7J}arU2`y?>7sUM1&5^OW*ju?@W6-%=*om>UJ?-j4_Ey+Tz9ok0kKsx!i>BW^P0+ z)4`JQ4f zqYHI?!m^l0-(l;F?q-bUHxEpuwTNs*!^r3;!Zl;b{SQ#c3*yhXg;hcIJuEx)k!7kRkbMnhRXOUmad{Nopv>hD5;VgG19SjxrNR#5<-dGgQiOM(8XZ)Nc`8ZwEr*kCgig_1rl;GfpDx|7`H zX4U?Aa6TD0vUk+!z3j+0H8RKfD?F;u5AJ)cG_x9XTbc0b#1)P0joj~n>zfMk_emUd z!1WP3`UR!=rJv6i0V>%sDKQ%K1ujDkSG{p-=_%$YIMb z5TN7;JdY06n7Y*c6#GL7I18R?1|=cGPBSaD!e2ut2@PYavmV(+&G8~cI6(6L2OV1} z_TO(cHkBMPumG<#`qpHH`TAKoRo^#@27|UKZuU=oWQ`=M6B zc!X%805I_UHp?0}P0Nch%7RXdroOpoCf?-)bsHOu(S3cyDN@hX@?NsLm)KLS zIHZfG`s&xO!!z9t5q6`IWz^9!-nwTz8-8TkN;WU}`J~t@Q^s=hI6tH{ZnHRl$md6c zV**mBnWsl(U#cBUF3^?=oNkE9xiiur>hD!$9j|lG*QM7}W6e0Ca?-O7TLuV|`tl_n zZ?ZEM>CH1c?w#qvq8oGr5-n11(cd#bPL#xd9Od}V-^vm{Me!9Ay2B^|GSK^d(zvNe z6HYYgY)BiKsm8Q zF3FBu4?S@bKQ?>v&@pkNOUwyI8$ya z?Z$S7T)37-z1#09oed%p%j&}?hHw18^t|Ks`LkQq-n>o|o)KIroW6+pWVLWVSjo8H z^%W^P)Y}CISxhP&i<1#>ka(J?wYVDP&kqu5_~bmY>bx~3^t|4FL$1@^5(Q@{s6JaOC)4sG9NA`l zWX$MEF3n!#vC)ztw-Y%ENlZAETE*ktFa9Kh!OQIt0PY5D<)VfngWM6~)O@q1!myRG zVYsyA&z~6g08jGk7X-b#d!*a1p8&<-CnH*d8?LGfW~(8}S}-`_j23cvNpOtFO^$S< zyzj+2+;5j1rV&U?K3Zz+#sxI5EE5LOnb9m3)O7p~UZf~qD?>kEyi zZxh+JVJmI;f|tDosXRYUjb&`jRSA8Ab3}xWjqgj=?wPqIO-rTgG>i#EF?)2pUd-#c z&O1;{O#@i9$F-BZEB37B_CoyH|cI{xi1OP(y~%<8#-g>LD` zTX$50(>NO3mi42-S&|7U=NXNzJYn9XuNzrhZpynXUif>^!;yEMDlmJJT!&JKXGg@n z(}(=pDgR^vHioSr@r=Frk_PpYF2)H_3^aA`cIH<=VHrUNE*@zS2Q^LAG4w|h*fla1 zD6Z3#?F?(m&4{hk+t4kOCv{vRYw>&6aO!pAxt8T(e6Jh`+e~MdvDa%uci(f;5?Dst z<=y0EMj4ODGiZCFI-lv0O=_8AE^~+HqEOW3`}^5Q?1RIMeDQ}ADz1OW9-9}`^ikTk&jk(AN-SzoX>n4EM-HB&rE zZKCz6lk(vcP9Ya$T>p+S`QT|e6&v4Ng{A$(IIZKZO{+Xizmsx1{*UeS!*fofz4f?4 z!U|$colkjd$q5D_M%f_+l)3&DZhn>zXYD7bQV{#9D&q@ZS7e)%EraZm&!O*a{RMUu zf)Bb3+WS~$VtH*xvJ6lxZfOTPExl=D1sAUM)c_8>g&^L?$zVU7jV7V@W3MUm7*TZX z8TYCO(FmJwKZMc5TW&)opGi3~mh=eXueUQE=+YM7Jv%k@y1R>L@5#Z>34(wi{(75_ zZv==YyWFqag>eJShcjDwDM@;8fB3##e@-~<#N%HL$f_%p>~i@N=1g6WJ_oTfl`keS zm?m@I6@IbGLnm(zd1#7C6VN{H{c8}3F|PLcS22Wz<+aapPBOWr`ldGM_`}~ZADLXy z5_H{;9=8Mk340F^*uRb6lWn8jCGf*Vw23~DM{Wxjp55ROXS3gSfsaq#0=|?L)n1g# HzYX~>e4+~0 literal 0 HcmV?d00001 diff --git a/org.tizen.sampledescriptions/html/images/data_control_consumer/data-control-consumer-map-layout.png b/org.tizen.sampledescriptions/html/images/data_control_consumer/data-control-consumer-map-layout.png deleted file mode 100644 index 91aaec46c6704ba119c2aa546995996e64f5b01e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39801 zcmZU*cRZGT{|9_ZD2bMk5G5g5$sS3WAq|l|laP@;TT~(?4H*rq?2$dn3{i-T?2)}! z*7H8P?%(sr^IWgH>+W)%&ht3FB~;%?JS&Jj2+BL zE-o&|tZc0vO^t7uAG33?44;tNM`%f`}lOT=SNc4rfXTbu9i zGh zk<--F6cxzwaEJUB_B#SH5sw~ydn97r9BS89RG4PEQ(nr{V{szpls|2nva+)IGp&~u zL5g_i4td7sw3;g1rj_h>T-6g36C1R&w8lcU>??v!|L^7dY2^Pt6#tqwQ6ir*?0s(N z{l=;>_CmZS*_A6-ENWjEk3GgG5%1p+IvvR3>zes3T(mLY#jg4puVVWr8}2Kgj!sNW zRM39ZTTbjt9d?9g@M@B}bf>yEMj+2D`xe^uu5$B`-K0|~39QS)=SpUulRhMD%WE%IqlR=e)b4;OIs@|w*-^&2VoW#7D76@|1Lt; zWuk-I#M(Mvf1mHhChZghifHe(zh{CJ0<_iNUHkb#XLW6{tNam50CCY}jY{h36>V*K z8MS1!r#wBS*gU7mY}zv4XvL^pNHJiMm6Z+SH?&P1&vhJPJaL_om6i2Eg4W$27D*w? zy8Y?t=`^2ML~Zv=yU&q~zCPh}8g96Y+iomyb1Yh!kSw%mNxI@+TrAtu(?g=!cYKSF zk58Vlb0_Owtq}CD3my;7}WnO&6H$jZoYH>ezoVv^l#j_5q&oN#8_)a zWw%~hT3T&{Bz~Hw`SB9p*!cML+?-iiz|M{w`-3ejeAXslqFWq>Zp#6 z&YRE%WpV)qe_EEe&f{%rQ8E$vE|U$(`jS#oQeuvSG*1toZD>Dn{CFsCDdT#pkjnF8 zkDfng2nh)ZWRVQ}WYfOyxWXs9t~$K@^0?J5)5;)DKE6lP^gO9{T{35aS-)9EdBxg< zhlHHGcI`v+W3{tqe-=5cuFlpUzxv(x8Lzfhk*Aw(*0plkjn&flbMO8%CF~v^9(Et< zN;ltDys<91n@hcaJiF`g;lq^Jxk+h^`}S2w`K*5}@gv_#OIuMJ&M zay%A~?LMs5-KZf;QBqqQINqM!7<-mEh)p)xC3$USQP`rE@t8q@QiR0KKOMQkryuMw z?)h@J>BGf`jze|BHf+qyHMot|yqmmO*{gp?Q!XT44tf9nko>7r82hI7q4l*DGcz;N z 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

0>vy%l~Weqet6G5YKX(aUgf^f1jZm*O*J9 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й2lRtM`A1C6Zf?1&{B{OA3cWd3HC=;)@mZFw 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�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

N=8f(wMbt)*$Yqq@dy#=*P6?_e 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æ_i$*5OY~*l2EpU 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 diff --git a/org.tizen.sampledescriptions/html/images/data_control_consumer/data_control_consumer_naviframe_view.png b/org.tizen.sampledescriptions/html/images/data_control_consumer/data_control_consumer_naviframe_view.png deleted file mode 100644 index 382cfa2560563eb35647905c940f8db618384c0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 93668 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%0Au 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 sL%X+YDMDRmWDpKm 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 diff --git a/org.tizen.sampledescriptions/html/images/data_control_consumer/data_control_consumer_view_map.png b/org.tizen.sampledescriptions/html/images/data_control_consumer/data_control_consumer_view_map.png deleted file mode 100644 index 99b994070fd225b796344f4e4cc958273cf47bf4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31858 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 OT)m`sG4K4%2mc27-v%xK diff --git a/org.tizen.sampledescriptions/html/images/data_control_consumer/data_control_consumer_view_sql.png b/org.tizen.sampledescriptions/html/images/data_control_consumer/data_control_consumer_view_sql.png deleted file mode 100644 index e1f389a6e48ce3b60e304b49b20f8190bb0776b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41771 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�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

r9;k~!| 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 CjBwfj literal 0 HcmV?d00001 diff --git a/org.tizen.sampledescriptions/html/images/data_control_consumer_view_sql.png b/org.tizen.sampledescriptions/html/images/data_control_consumer_view_sql.png new file mode 100644 index 0000000000000000000000000000000000000000..fd36f2797aa633ee5db8b1039bcc3a3ea0ad52f9 GIT binary patch literal 13527 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 literal 0 HcmV?d00001 diff --git a/org.tizen.sampledescriptions/html/images/eom_mode.png b/org.tizen.sampledescriptions/html/images/eom_mode.png new file mode 100644 index 0000000000000000000000000000000000000000..5f2e97513dc0f5de053266c019169d343405a673 GIT binary patch literal 152974 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%0ApnUXUnuB$(nObnS09Pn& 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

+
  • To access media history:
    • http://tizen.org/privilege/mediahistory.read
    • -
    -
  • -
  • To get the current Wi-Fi BSSID that is used as a filter value of one preset:
  • + +
  • To get the current Wi-Fi BSSID that is used as a filter value of one preset:
    • http://tizen.org/privilege/network.get
    @@ -58,9 +72,8 @@

    Implementation

    -

    History module

    -

    The initialization of Context History sample application is done within the app_create() callback function. The below example shows how to use Context History API to retrieve usage statistics, more precisely, get_frequently_used_apps() retrieves CONTEXT_HISTORY_FREQUENTLY_USED_APP with three filtering options, the timespan of the logs to be processed, the result size, and the audio jack status. +

    The application is initialized within the app_create() callback function. The following example shows how to use the Contextual History API to retrieve usage statistics in the history module: the get_frequently_used_apps() function retrieves the CONTEXT_HISTORY_FREQUENTLY_USED_APP statistics with 3 filtering options (timespan of the logs to be processed, result size, and audio jack status).

     void
    @@ -77,55 +90,55 @@ get_frequently_used_apps(void *data EINA_UNUSED, Evas_Object * obj EINA_UNUSED,
        int total_duration = -1;
        int last_time = -1;
     
    -   /* Create history handle */
    -   context_history_create(&history_h);
    +   // Create history handle
    +   context_history_create(&history_h);
     
    -   /* Create filter handle */
    -   context_history_filter_create(&filter_h);
    +   // Create filter handle
    +   context_history_filter_create(&filter_h);
     
    -   /* Set a filtering option: audio jack status */
    +   // Set a filtering option: audio jack status
        context_history_filter_set_int(filter_h, CONTEXT_HISTORY_FILTER_AUDIO_JACK, CONTEXT_HISTORY_FILTER_AUDIO_JACK_CONNECTED);
     
    -   /* Set a filtering option: timespan */
    +   // Set a filtering option: timespan
        context_history_filter_set_int(filter_h, CONTEXT_HISTORY_FILTER_TIME_SPAN, 30);
     
    -   /* Set a filtering option: result size */
    +   // Set a filtering option: result size
        context_history_filter_set_int(filter_h, CONTEXT_HISTORY_FILTER_RESULT_SIZE, 7);
     
    -   /* Get the statistics */
    -   context_history_get_list(history_h, CONTEXT_HISTORY_FREQUENTLY_USED_APP, filter_h, &list_h);
    -
    -   /* Get the number of records in the retrieved list (may not be equal to the given filter) */
    -   context_history_list_get_count(list_h, &history_count);
    +   // Get the statistics
    +   context_history_get_list(history_h, CONTEXT_HISTORY_FREQUENTLY_USED_APP, filter_h, &list_h);
     
    -   /* Extract records from list */
    -   for (int i = 0; i < history_count; i++) {
    +   // Get the number of records in the retrieved list (may not be equal to the given filter)
    +   context_history_list_get_count(list_h, &history_count);
     
    -      /* Get the current record from the list */
    -      context_history_list_get_current(list_h, &record_h);
    +   // Extract records from list
    +   for (int i = 0; i < history_count; i++) 
    +   {
    +      // Get the current record from the list
    +      context_history_list_get_current(list_h, &record_h);
     
    -      /* Get an attribute: App Id */
    -      context_history_record_get_string(record_h, CONTEXT_HISTORY_APP_ID, &app_id);
    +      // Get an attribute: App ID
    +      context_history_record_get_string(record_h, CONTEXT_HISTORY_APP_ID, &app_id);
     
    -      /* Get an attribute: Total count of use */
    -      context_history_record_get_int(record_h, CONTEXT_HISTORY_TOTAL_COUNT, &total_count);
    +      // Get an attribute: Total count of use
    +      context_history_record_get_int(record_h, CONTEXT_HISTORY_TOTAL_COUNT, &total_count);
     
    -      /* Get an attribute : Total duration of use*/
    -      context_history_record_get_int(record_h, CONTEXT_HISTORY_TOTAL_DURATION, &total_duration);
    +      // Get an attribute : Total duration of use
    +      context_history_record_get_int(record_h, CONTEXT_HISTORY_TOTAL_DURATION, &total_duration);
     
    -      /* Get an attribute : Last time of use */
    -      context_history_record_get_int(record_h, CONTEXT_HISTORY_LAST_TIME, &last_time);
    +      // Get an attribute : Last time of use
    +      context_history_record_get_int(record_h, CONTEXT_HISTORY_LAST_TIME, &last_time);
     
    -      /* Destroy the record handle */
    +      // Destroy the record handle
           context_history_record_destroy(record_h);
           record_h = NULL;
     
    -      /* Use the retreived attributes */
    +      // Use the retrieved attributes
     
    -      /* Move to the next record */
    +      // Move to the next record
           context_history_list_move_next(list_h);
     
    -      /* String attributes need to be freed */
    +      // Free the string attributes
           free(app_id);
           app_id = NULL;
           total_count = -1;
    @@ -133,13 +146,13 @@ get_frequently_used_apps(void *data EINA_UNUSED, Evas_Object * obj EINA_UNUSED,
           last_time = -1;
        }
     
    -   /* Destroy the list handle */
    +   // Destroy the list handle
        context_history_list_destroy(list_h);
     
    -   /* Destroy the filter handle */
    +   // Destroy the filter handle
        context_history_filter_destroy(filter_h);
     
    -   /* Destroy the history handle */
    +   // Destroy the history handle
        context_history_destroy(history_h);
     }
     
    diff --git a/org.tizen.sampledescriptions/html/mobile_n/context_trigger_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/context_trigger_sd_mn.htm index 33c21da..03fe48b 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/context_trigger_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/context_trigger_sd_mn.htm @@ -21,56 +21,60 @@
    -

    Mobile native

    +

    Mobile native

    Context Trigger Sample Overview

    -

    The Context Trigger sample demonstrates how to manage contextual rules using the Context Trigger API. This application displays several rules in a genlist. You can tap each list item to start/stop the rule. When a rule is triggered, a notification will be posted with appropriate message.

    +

    The Context Trigger sample application demonstrates how you can manage contextual rules using the Contextual Trigger API. The application displays several rules in a genlist. You can tap each list item to start or stop the rule. When a rule is triggered, a notification is posted with an appropriate message.

    The following figure illustrates the main view of the Context Trigger.

    Figure: Context Trigger screen

    Context Trigger screen

    Prerequisites

    -

    To ensure proper application execution, the corresponding privileges must be specified in the tizen-manifest.xml file.

    +

    To ensure proper application execution, the following privileges must be set:

      -
    • To post a notification:
    • +
    • To post a notification:
      • http://tizen.org/privilege/notification
      • -
      -
    • To use 'Important Call' rule:
    • +
  • +
  • To use the Important Call rule:
    • http://tizen.org/privilege/telephony
    • http://tizen.org/privilege/callhistory.read
    • -
    -
  • To use 'The 5th-day-no-driving System' rule:
  • + +
  • To use The 5th-day-no-driving System rule:
    • http://tizen.org/privilege/alarm.set
    • -
    -
  • To use 'Home Wi-Fi' rule:
  • + +
  • To use the Home Wi-Fi rule:
    • http://tizen.org/privilege/location
    • http://tizen.org/privilege/network.get
    • -
    -
  • +

    Implementation

    Rule Module

    -

    The initialization of Context Trigger sample application is done within the app_create() callback function. And add_rules() function is responsible for contextual rule registration. Below example shows how to create rule handle for battery rule and register the rule. +

    To initialize the rule module:

    +
      +
    1. +

      Use the app_create() callback function to initialize the Context Trigger sample application. Register the contextual rules with the add_rules() function. The following example shows how to create a rule handle for a battery rule and to register the rule.

      -void add_rules(void)
      +void 
      +add_rules(void)
       {
      -   /* Add rules */
      +   // Add rules
          ruleinfo_arr[RULE_BATTERY].id = add_battery_rule();
          ruleinfo_arr[RULE_CALL].id = add_call_rule();
          ruleinfo_arr[RULE_DRIVING].id = add_driving_rule();
          ruleinfo_arr[RULE_HOME].id = add_home_rule();
       }
       
      -static int add_battery_rule(void)
      +static int 
      +add_battery_rule(void)
       {
          int rule_id;
          context_trigger_rule_h rule;
      @@ -92,7 +96,7 @@ static int add_battery_rule(void)
       
          ruleinfo_arr[RULE_BATTERY].result = context_trigger_add_rule(rule, &rule_id);
          if (ruleinfo_arr[RULE_BATTERY].result != CONTEXT_TRIGGER_ERROR_NONE)
      -      dlog_print(DLOG_ERROR, LOG_TAG, "Failed to add '%s' rule: %d", ruleinfo_arr[RULE_BATTERY].name, ruleinfo_arr[RULE_BATTERY].result);
      +      dlog_print(DLOG_ERROR, LOG_TAG, "Failed to add '%s' rule: %d", ruleinfo_arr[RULE_BATTERY].name, ruleinfo_arr[RULE_BATTERY].result);
       
          context_trigger_rule_entry_destroy(battery_e);
          context_trigger_rule_destroy(rule);
      @@ -100,66 +104,75 @@ static int add_battery_rule(void)
          return rule_id;
       }
       
      - -

      On the application termination, the app_terminate() callback function is called, and all the rules registered are disabled and removed in the remove_rules() function. Enabled rule can be removed after being disabled.

      - +
    2. +
    3. +

      When the Context Trigger application is terminated, the app_terminate() callback function is called, and all registered rules are disabled and removed in the remove_rules() function. An enabled rule can be removed after being disabled.

      -void remove_rules(void)
      +void 
      +remove_rules(void)
       {
      -   /* Get rules */
      +   // Get rules
          int enabled_rule_cnt = 0;
          int disabled_rule_cnt = 0;
          int *enabled_rule_ids = NULL;
          int *disabled_rule_ids = NULL;
          int error = context_trigger_get_own_rule_ids(&enabled_rule_ids, &enabled_rule_cnt, &disabled_rule_ids, &disabled_rule_cnt);
      -   if (error != CONTEXT_TRIGGER_ERROR_NONE) {
      -      dlog_print(DLOG_ERROR, LOG_TAG, "Failed to get rule ids");
      +   if (error != CONTEXT_TRIGGER_ERROR_NONE) 
      +   {
      +      dlog_print(DLOG_ERROR, LOG_TAG, "Failed to get rule ids");
      +
             return;
          }
       
      -   /* Disable and remove enabled rules */
      +   // Disable and remove enabled rules
          int i;
      -   for (i = 0; i < enabled_rule_cnt; i++)   {
      +   for (i = 0; i < enabled_rule_cnt; i++)
      +   {
             context_trigger_disable_rule(enabled_rule_ids[i]);
             context_trigger_remove_rule(enabled_rule_ids[i]);
          }
       
      -   /* Remove disabled rules */
      -   for (i = 0; i < disabled_rule_cnt; i++)   {
      +   // Remove disabled rules
      +   for (i = 0; i < disabled_rule_cnt; i++)
      +   {
             context_trigger_remove_rule(disabled_rule_ids[i]);
          }
       
      -   if (enabled_rule_ids) {
      +   if (enabled_rule_ids) 
      +   {
             free(enabled_rule_ids);
             enabled_rule_ids = NULL;
          }
       
      -   if (disabled_rule_ids) {
      +   if (disabled_rule_ids) 
      +   {
             free(disabled_rule_ids);
             disabled_rule_ids = NULL;
          }
       }
       
      +
    4. +

    View Manager Module

    To create the genlist:

    1. -

      The genlist is created using the elm_genlist_add() function. For the genlist to be displayed properly, a genlist item class has to be created and defined with the elm_genlist_item_class_new() function. The following code snippet demonstrates how to set the item class properties. A text_get and a content_get callback function are defined to create item text and layout creation.

      +

      The genlist is created using the elm_genlist_add() function. For the genlist to be displayed properly, a genlist item class has to be created and defined with the elm_genlist_item_class_new() function. The following code snippet demonstrates how to set the item class properties. The text_get() and a content_get() callback functions are defined for creating the item text and layout.

       Evas_Object *genlist;
      -Elm_Genlist_Item_Class *itc;
      +Elm_Genlist_Item_Class *itc_name, *itc;
       int index;
       
      -/* Create item class */
      +// Create item class
       itc = elm_genlist_item_class_new();
      -itc->item_style = "multiline";
      -itc->func.text_get = gl_text_get_cb;
      -itc->func.content_get = gl_content_get_cb;
      +itc->item_style = "multiline";
      +itc->func.text_get = gl_text_get_cb;
      +itc->func.content_get = gl_content_get_cb;
       
      -/* Genlist */
      -genlist = elm_genlist_add(ad->nf);
      +// Genlist
      +genlist = elm_genlist_add(ad->nf);
       elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
      @@ -170,132 +183,154 @@ evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
       
       
       // For each rule
      -for (index = RULE_FIRST; index < RULE_LAST; index++) {
      -   /* Rule item */
      +for (index = RULE_FIRST; index < RULE_LAST; index++) 
      +{
      +   // Rule item
          elm_genlist_item_append(genlist, itc, (void *)&ruleinfo_arr[index], NULL, ELM_GENLIST_ITEM_NONE, gl_selected_cb, ad);
       }
       
    2. -

      The application's rule_info structure containing its rule information such as name, description, and so on. It is later passed on to the previously defined callback function. The following example shows the gl_text_get_cb, and the gl_content_get_cb callback function. Rule information is retrieved from the parameter and used to create the item layout.

      +

      The application's rule_info structure contains its rule information, such as name and description. It is later passed on to the previously defined callback function. The following example shows the gl_text_get_cb() and the gl_content_get_cb() callback functions. The rule information is retrieved from the parameter and used to create the item layout.

      -static char *gl_text_get_cb(void *data, Evas_Object * obj, const char *part)
      +static char* 
      +gl_text_get_cb(void *data, Evas_Object * obj, const char *part)
       {
          rule_info_s *info = (rule_info_s *) data;
       
      -   if (!strcmp(part, "elm.text"))
      -      return strdup(info->name);
      -   else if (!strcmp(part, "elm.text.multiline"))
      -      return strdup(info->description);
      +   if (!strcmp(part, "elm.text"))
      +      return strdup(info->name);
      +
      +   else if (!strcmp(part, "elm.text.multiline"))
      +      return strdup(info->description);
       
          return NULL;
       }
       
      -static Evas_Object *gl_content_get_cb(void *data, Evas_Object * obj, const char *part)
      +static Evas_Object*
      +gl_content_get_cb(void *data, Evas_Object * obj, const char *part)
       {
          rule_info_s *info = (rule_info_s *) data;
       
      -   if (!strcmp(part, "elm.swallow.end")) {
      +   if (!strcmp(part, "elm.swallow.end"))
      +   {
             Evas_Object *check = elm_check_add(obj);
       
      -      evas_object_smart_callback_add(check, "changed", check_changed_cb, info);
      +      evas_object_smart_callback_add(check, "changed", check_changed_cb, info);
             evas_object_propagate_events_set(check, EINA_FALSE);
       
             evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
             evas_object_size_hint_align_set(check, EVAS_HINT_FILL, EVAS_HINT_FILL);
      -      elm_object_style_set(check, "on&off");
      +      elm_object_style_set(check, "on&off");
             elm_check_state_set(check, false);
      -      elm_check_state_pointer_set(check, &info->enabled);
      +      elm_check_state_pointer_set(check, &info->enabled);
       
      -      if (info->result != CONTEXT_TRIGGER_ERROR_NONE)
      +      if (info->result != CONTEXT_TRIGGER_ERROR_NONE)
                elm_object_disabled_set(check, EINA_TRUE);
       
             return check;
          }
      +
          return NULL;
       }
       
    3. -
    -

    When a genlist item or a check button is clicked, corresponding rule will be enabled or disabled. If the user taps an rule item which fails to be added for some reasons, an error popup will be shown to indicate the reasons.

    +
  • +

    When a genlist item or a check button is clicked, a corresponding rule is enabled or disabled. If the user taps a rule item which fails to be added, an error popup is shown to indicate the error reason.

    -static void gl_selected_cb(void *data, Evas_Object * obj EINA_UNUSED, void *event_info)
    +static void 
    +gl_selected_cb(void *data, Evas_Object * obj EINA_UNUSED, void *event_info)
     {
        Elm_Object_Item *it = (Elm_Object_Item *) event_info;
        elm_genlist_item_selected_set(it, false);
     
        rule_info_s *info = elm_object_item_data_get(it);
     
    -   if (info->result == CONTEXT_TRIGGER_ERROR_NONE) {
    +   if (info->result == CONTEXT_TRIGGER_ERROR_NONE) 
    +   {
           int error = CONTEXT_TRIGGER_ERROR_NONE;
    -      Evas_Object *check = elm_object_item_part_content_get(it, "elm.swallow.end");
    +      Evas_Object *check = elm_object_item_part_content_get(it, "elm.swallow.end");
     
    -      if (elm_check_state_get(check)) {
    -         error = disable_rule(info->id);
    +      if (elm_check_state_get(check)) 
    +      {
    +         error = disable_rule(info->id);
              if (error == CONTEXT_TRIGGER_ERROR_NONE)
    -            elm_check_state_set(check, !info->enabled);
    -      } else {
    -         error = enable_rule(info->id);
    +            elm_check_state_set(check, !info->enabled);
    +      } 
    +      else 
    +      {
    +         error = enable_rule(info->id);
              if (error == CONTEXT_TRIGGER_ERROR_NONE)
    -            elm_check_state_set(check, !info->enabled);
    +            elm_check_state_set(check, !info->enabled);
           }
    -   } else {
    +   } 
    +   else 
    +   {
           create_error_popup(data, info);
        }
     }
     
    -static void check_changed_cb(void *data, Evas_Object * obj, void *event_info EINA_UNUSED)
    +static void 
    +check_changed_cb(void *data, Evas_Object * obj, void *event_info EINA_UNUSED)
     {
        rule_info_s *info = (rule_info_s *) data;
        int error = CONTEXT_TRIGGER_ERROR_NONE;
     
    -   if (elm_check_state_get(obj)) {
    -      error = enable_rule(info->id);
    +   if (elm_check_state_get(obj)) 
    +   {
    +      error = enable_rule(info->id);
           if (error != CONTEXT_TRIGGER_ERROR_NONE)
    -         elm_check_state_set(obj, !info->enabled);
    -   } else {
    -      error = disable_rule(info->id);
    +         elm_check_state_set(obj, !info->enabled);
    +   } 
    +   else 
    +   {
    +      error = disable_rule(info->id);
           if (error != CONTEXT_TRIGGER_ERROR_NONE)
    -         elm_check_state_set(obj, !info->enabled);
    +         elm_check_state_set(obj, !info->enabled);
        }
     }
     
    -static void create_error_popup(appdata_s * ad, void *data)
    +static void 
    +create_error_popup(appdata_s * ad, void *data)
     {
        rule_info_s *info = (rule_info_s *) data;
     
        char *err_msg = NULL;
     
    -   switch (info->result) {
    -   case CONTEXT_TRIGGER_ERROR_PERMISSION_DENIED:
    -      err_msg = ERR_MSG_PERMISSION_DENIED;
    -      break;
    -   case CONTEXT_TRIGGER_ERROR_NOT_SUPPORTED:
    -      err_msg = ERR_MSG_NOT_SUPPORTED;
    -      break;
    -   case CONTEXT_TRIGGER_ERROR_INVALID_RULE:
    -      err_msg = ERR_MSG_INVALID_RULE;
    -      break;
    -   default:
    -      err_msg = ERR_MSG_DEFAULT;
    -      break;
    +   switch (info->result) 
    +   {
    +      case CONTEXT_TRIGGER_ERROR_PERMISSION_DENIED:
    +         err_msg = ERR_MSG_PERMISSION_DENIED;
    +         break;
    +      case CONTEXT_TRIGGER_ERROR_NOT_SUPPORTED:
    +         err_msg = ERR_MSG_NOT_SUPPORTED;
    +         break;
    +      case CONTEXT_TRIGGER_ERROR_INVALID_RULE:
    +         err_msg = ERR_MSG_INVALID_RULE;
    +         break;
    +      default:
    +         err_msg = ERR_MSG_DEFAULT;
    +         break;
        }
     
    -   Evas_Object *popup = elm_popup_add(ad->win);
    +   Evas_Object *popup = elm_popup_add(ad->win);
        elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
        eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, eext_popup_back_cb, NULL);
    -   elm_object_part_text_set(popup, "title,text", info->name);
    +   elm_object_part_text_set(popup, "title,text", info->name);
     
        elm_object_text_set(popup, err_msg);
     
        Evas_Object *btn = elm_button_add(popup);
    -   elm_object_style_set(btn, "popup");
    -   elm_object_text_set(btn, "OK");
    -   elm_object_part_content_set(popup, "button1", btn);
    -   evas_object_smart_callback_add(btn, "clicked", popup_btn_clicked_cb, popup);
    +   elm_object_style_set(btn, "popup");
    +   elm_object_text_set(btn, "OK");
    +   elm_object_part_content_set(popup, "button1", btn);
    +   evas_object_smart_callback_add(btn, "clicked", popup_btn_clicked_cb, popup);
        evas_object_show(popup);
     }
     
    +
  • + + diff --git a/org.tizen.sampledescriptions/html/mobile_n/data_control_consumer_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/data_control_consumer_sd_mn.htm index 39ca6ac..26ba28b 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/data_control_consumer_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/data_control_consumer_sd_mn.htm @@ -19,155 +19,85 @@
    -

    Mobile native

    +

    Mobile native

    Data-Control-Consumer Sample Overview

    -

    - The sample demonstrates how to exchange data between a consumer application and a provider service. There are two methods of data exchange: +

    The Data-Control-Consumer sample application demonstrates how you can exchange data between a consumer application and a provider service using:

      -
    • Map method - using key value pairs;
    • -
    • Sql method - using sql queries.
    • +
    • Map method (key-value pairs)
    • +
    • SQL method (SQL queries)
    -

    -

    The figures below illustrate the application's view.

    -

    Figure: Data-Control-Consumer application screens.

    +

    The following figure illustrates the main views of the Data-Control-Consumer.

    +

    Figure: Data-Control-Consumer screens

    - The 'Map' view - The 'Sql' view + Data-Control-Consumer screens + Data-Control-Consumer screens

    -

    The sample application's user interface consists of two views:

    -
      -
    • Map view - allows to use the 'map' communication method;
    • -
    • Sql view - allows to use the 'sql' communication method.
    • -
    - -

    Both views are divided into two sections:

    +

    The sample application user interface consists of 2 views, which allow you to use the different communication methods (map and SQL). Both views are divided into 2 areas:

      -
    • Input - allows the user to send a request to the provider application;
    • -
    • Output - displays the data received from the provider application.
    • +
    • Input: Allows the user to send a request to the provider application.
    • +
    • Output: Displays the data received from the provider application.
    -

    The structure of the user interface is depicted below.

    -

    Figure: Data-Control-Consumer map view layout structure.

    +

    The structure of the user interface is depicted in the following figures.

    +

    Figure: Map view layout structure

    - Data-Control-Consumer map layout structure + Map view layout structure


    -

    Figure: Data-Control-Consumer slq view layout structure.

    +

    Figure: SQL view layout structure

    - Data-Control-Consumer sql layout structure + SQL view layout structure

    -

    The application's workflow can be divided into the following pipelines:

    +

    The application workflow can be divided into the following pipelines:

      -
    • application initialization;
    • -
    • map request and response;
    • -
    • sql request and response.
    • +
    • Application initialization
    • +
    • Map request and response
    • +
    • SQL request and response
    -

    + +

    The following figure describes the workflow.

    -

    Figure: Data-Control-Consumer application workflow.

    +

    Figure: Application workflow

    - Data-Control-Consumer application workflow + Application workflow

    -

    Prerequisites

    +

    Prerequisites

      -
    • The provider's app ID must be obtained.
    • -
    • Privileges required:
    • +
    • The provider app ID must be obtained.
    • +
    • To ensure proper application execution, the following privileges must be set:
        -
      • http://tizen.org/privilege/datasharing;
      • -
      • http://tizen.org/privilege/appmanager.launch.
      • -
      +
    • http://tizen.org/privilege/datasharing
    • +
    • http://tizen.org/privilege/appmanager.launch
    • +

    Implementation

    -

    GUI

    - -

    The GUI was created using the WYSWIG UI-Builder editor which is a part of the Tizen SDK.

    -

    A GUI project consist of the following elements:

    -
      -
    • app.xml file - contains base UI information;
    • -
    • layout/layout.tuml file - contains the layout structure (widget positions, callback names etc.);
    • -
    • src/managed folder - contains the *.c and *.h files generated by the UI-Builder. This folder is created when the application is built and removed when the 'clean' option is used. It is also updated when the layout.tuml file is saved. Contents of this folder mustn't be modified manually;
    • -
    • src/event_handler folder - contains the event handlers code generated by the UI-Builder. The UI-Builder creates stubs of callback functions that can be edited by the user.
    • -
    - -

    Layout editor

    -

    The user can create the UI using the WYSWIG editor. Widgets can be added and modified using drag&drop. The parameters of the selected widget can be adjusted using the panel on the right (check the UI-Builder documentation for details). There are two project templates for UI-Builder applications: single-view and navigation. The data-control-consumer app is created using the navigation template. The UI uses an elm_conformant widget as root. This is created by default for an UI-Builder application and cannot be changed. An elm_naviframe is used as the conformant's layout. The naviframe can switch between two views: 'Map' and 'Sql'.

    - -

    Figure: UI-Builder View display

    -

    - UI-Builder View display -

    - -

    Note that there are three views available. The first one is the naviframe while the second and third contain the displayed pages. The first view doesn't allow the user to add any widgets using drag&drop. In this view you can select one of the remaining views to be used as the default content pushed to the naviframe.

    - -

    Figure: The naviframe view

    -

    - Naviframe view -

    - -

    Connections

    -

    In order to design the application's view switching, the connections are used. You can access them via the 'Storyboard' tab of the UI-Builder (check Tizen SDK help for details).

    - -

    Figure: UI-Builder connections view

    -

    - UI-Builder connections view -

    - -

    The view1 (the Naviframe view) is connected with the view2. This indicates that the view2 is used as the naviframe's default view. When the user adds a connection between other views it will be displayed here. Note that a new callback code will be created (file will be created if required) in src/managed/connection folder. Also a 'pre' and 'post' functions will be added to one of the files in src/event_handler folder.

    - -

    On view change, the below callback function is invoked.

    -
    -void view2_connection_to_sql_button_onclicked(uib_view2_view_context *vc, Evas_Object *obj, void *event_info)
    -{
    -   view2_to_sql_button_onclicked(vc, obj, event_info);
    -   Elm_Object_Item *navi_item = change_page(vc->parent, "SQL", NULL, NULL, "view3", NULL);
    -   view2_to_sql_button_onclicked_post(navi_item, vc, obj, event_info);
    -}
    -	
    -

    The change_page() function uses the elm_naviframe_item_push() to switch the views. Note that there is no reverse connection from view3 to view2. Instead there is a callback function added to the to_map_button widget that invokes elm_naviframe_item_pop() function, which avoids recurring pages stacking.

    - -

    Event handlers

    -

    The event handler callback stubs are created using the WYSWIG editor

    -

    Figure: Default event_handler name

    -

    - Default event_handler name -

    - -

    Figure: Final name of the callback function

    -

    - Final name of the callback function -

    - -

    Note that the callback's name is followed by the view's name. This is a standard behaviour of the UI-Builder and cannot be changed. After the function stub creation is completed, the user can modify the callback's source code.

    - - -

    Implementation

    - -

    Type definitions

    - +

    Type Definitions

    +

    The main data structure is used as a placeholder for the application main window:

    +
    -/* Base data structure. By default containing the application's main window. */
    -struct _app_data {
    +// Base data structure, by default containing the application main window
    +struct 
    +_app_data 
    +{
        window_obj *win;
     };
     
     typedef struct _app_data app_data;
     
    - -

    Managed content

    -

    Managed content is the part of the source code that is automatically created by the UI-Builder. This code should not be modified by the user as it is altered by the tool each time the project is built.

    +

    The managed content is the part of the source code that is automatically created by the UI Builder. You must not modify this code, as it is altered by the tool each time the project is built.

    -/*Base application structure*/
    +// Base application structure
     typedef struct
     {
        Evas_Object *win;
    @@ -175,53 +105,47 @@ typedef struct
        Evas_Object *conformant;
        Evas_Object *layout;
     } window_obj;
    -
    -
    -/*Base view's layout structure*/
    -typedef struct _uib_view_context
    +// Base view layout structure
    +typedef struct 
    +_uib_view_context
     {
        Evas_Object* parent;
        Evas_Object* root_container;
    -   const char*  view_name;
    +   const char* view_name;
     } uib_view_context;
    -
    - - - -
    -/*Structure used to store the view1's content*/
    -typedef struct _uib_view1_view_context {
    -
    -   /* view's parent object - the Naviframe widget */
    +// Structure used to store the view1 content
    +typedef struct 
    +_uib_view1_view_context 
    +{
    +   // View's parent object - the naviframe component
        Evas_Object *parent;
    -   /* root container UI Component of this view */
    +   // Root container UI component of this view
        Evas_Object* root_container;
    -   /* view class name */
    +   // View class name
        const char *view_name;
    -   /* control context to control this view */
    +   // Control context to control this view
        struct _uib_view1_control_context *cc;
     
    -   /* UI Components in this view */
    +   // UI components in this view
        Evas_Object *naviframe1;
     } uib_view1_view_context;
    -
    -
    -/*Structure used to store the view2's content*/
    -typedef struct _uib_view2_view_context {
    -
    -   /* view's parent object - the Naviframe widget */
    +// Structure used to store the view2 content
    +typedef struct 
    +_uib_view2_view_context 
    +{
    +   // View's parent object - the naviframe component
        Evas_Object *parent;
    -   /* root container UI Component of this view */
    +   // Root container UI component of this view
        Evas_Object* root_container;
    -   /* view class name */
    +   // View class name
        const char *view_name;
    -   /* control context to control this view */
    +   // Control context to control this view
        struct _uib_view2_control_context *cc;
     
    -   /* UI Components in this view */
    +   // UI components in this view
        Evas_Object *grid1;
        Evas_Object *to_sql_button;
        Evas_Object *key_label;
    @@ -239,22 +163,21 @@ typedef struct _uib_view2_view_context {
        Evas_Object *remove_data_button;
        Evas_Object *get_keys_button;
     } uib_view2_view_context;
    -
    -
    -/*Structure used to store the view2's content*/
    -typedef struct _uib_view3_view_context {
    -
    -   /* view's parent object - the Naviframe widget */
    +// Structure used to store the view3 content
    +typedef struct 
    +_uib_view3_view_context 
    +{
    +   // View's parent object - the naviframe component
        Evas_Object *parent;
    -   /* root container UI Component of this view */
    +   // Root container UI component of this view
        Evas_Object* root_container;
    -   /* view class name */
    +   // View class name
        const char *view_name;
    -   /* control context to control this view */
    +   // Control context to control this view
        struct _uib_view3_control_context *cc;
     
    -   /* UI Components in this view */
    +   // UI components in this view
        Evas_Object *grid1;
        Evas_Object *to_map_button;
        Evas_Object *where_label;
    @@ -275,11 +198,11 @@ typedef struct _uib_view3_view_context {
        Evas_Object *sort_column_entry;
        Evas_Object *title_label;
     } uib_view3_view_context;
    -
    -
    -/*Structure that stores the view layout structures*/
    -typedef struct _uib_view_data {
    +// Structure that stores the view layout structures
    +typedef struct 
    +_uib_view_data 
    +{
        Evas_Object* win;
     
        uib_view_context* view1;
    @@ -288,28 +211,41 @@ typedef struct _uib_view_data {
     } uib_view_data;
     
    -

    Note that the uib_view_context is used here while the view's content uses the uib_view1_view_context, uib_view2_view_context, uib_view3_view_context structures. A type-cast between uib_view_context and view structures is often used in UI-Builder code.

    - + + + + + + + + + +
    Note
    The uib_view_context instance is used for the view layouts while the views' content uses the uib_view1_view_context, uib_view2_view_context, and uib_view3_view_context structures. A type-cast between uib_view_context and view structures is often used in the UI Builder code.
    + +

    The following structure is used for the MAP view:

    +
    -/*Structure used by the 'map' part of the consumer application*/
    -static struct {
    +// Structure used by the map part of the consumer application
    +static struct 
    +{
        data_control_map_response_cb map_callback;
        data_control_h provider;
     
    -   On_New_Data_Recieved_Cb new_data_recived_cb;
    -   error_recived_cb_t error_recived_cb;
    +   On_New_Data_Received_Cb new_data_received_cb;
    +   error_received_cb_t error_received_cb;
     
        char *last_key_used;
     } s_info
     
    -

    Application initialization

    +

    Application Initialization

    -

    The entire application's life-cycle is implemented in the main source file using a common Tizen application structure:

    +

    The application life-cycle is implemented in the main source file using a common Tizen application structure:

    -int main(int argc, char **argv)
    +int 
    +main(int argc, char **argv)
     {
        int result = 0;
        app_data *app = app_create();
    @@ -323,17 +259,22 @@ int main(int argc, char **argv)
     }
     
    -

    The app_create() function is mainly used to initialize the base app_data structure.

    +
    • +

      The app_create() function is mainly used to initialize the base app_data structure:

      -app_data *app_create(void)
      +app_data 
      +*app_create(void)
       {
          base_scale_set();
      +
          return calloc(1, sizeof(app_data));
       }
      -
      -

      The app_run() function is used to initialize the application's callbacks and run the standard Tizen app loop.

      +
    • +
    • +

      The app_run() function is used to initialize the application callbacks and run the standard Tizen application loop:

      -int app_run(app_data *app, int argc, char **argv)
      +int 
      +app_run(app_data *app, int argc, char **argv)
       {
          ui_app_lifecycle_callback_s cbs =
          {
      @@ -344,242 +285,370 @@ int app_run(app_data *app, int argc, char **argv)
             .app_control = _on_app_control_cb,
          };
       
      -   app_event_handler_h handlers[5] = {NULL, };
      +   app_event_handler_h handlers[5] = {NULL,};
      +
      +   ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, 
      +                            _on_low_battery_cb, app);
      +   ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, 
      +                            _on_low_memory_cb, app);
      +   ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], 
      +                            APP_EVENT_DEVICE_ORIENTATION_CHANGED, 
      +                            _on_device_orientation_cb, app);
      +   ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, 
      +                            _on_language_changed_cb, app);
      +   ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], 
      +                            APP_EVENT_REGION_FORMAT_CHANGED, 
      +                            _on_region_format_changed_cb, app);
      +
      +   return ui_app_main(argc, argv, &cbs, app);
      +}
      +
    + +

    User Interface

    + +

    The user interface is created using the WYSIWYG UI Builder editor provided with the Tizen SDK. A GUI project consist of the following elements:

    +
      +
    • app.xml file contains the base UI information.
    • +
    • layout/layout.tuml file contains the layout structure (such as UI component positions and callback names).
    • +
    • src/managed folder contains the *.c and *.h files generated by the UI Builder. This folder is created when the application is built and removed when the clean option is used. It is also updated when the layout.tuml file is saved. + + + + + + + + + +
      Note
      Do not modify the content of this folder manually.
    • +
    • src/event_handler folder contains the event handler code generated by the UI Builder. The UI Builder creates stubs of callback functions that you can edit.
    • +
    + +

    Layout Editor

    +

    You can create the UI using the WYSIWYG editor, which allows you to add and modify UI components using drag and drop. The parameters of the selected component can be adjusted using the Properties view. For more information on the UI Builder, see UI Builder.

    +

    There are 2 project templates for UI Builder applications: single-view and navigation. The data-control-consumer application uses the navigation template. The UI uses an elm_conformant component as a root. This is created by default for a UI Builder application and cannot be changed. An elm_naviframe component is used as the conformant's layout. The naviframe can switch between 2 views: Map and SQL.

    + +

    Figure: UI Builder View display

    +

    + UI Builder View display +

    + + + + + + + + + + +
    Note
    3 views are actually available. The first one is the naviframe while the second and third contain the displayed pages (map and SQL). You cannot add any widgets to the first view using drag and drop. In this view, you can only select one of the remaining views to be used as the default content pushed to the naviframe.
    + + +

    Figure: Naviframe view

    +

    + Naviframe view +

    + +

    Connections

    +

    To design the application view switching mechanism, connections are used. You can access them through the Storyboard tab of the UI Builder.

    -   ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, _on_low_battery_cb, app); -   ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, _on_low_memory_cb, app); -   ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, _on_device_orientation_cb, app); -   ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, _on_language_changed_cb, app); -   ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, _on_region_format_changed_cb, app); +

    Figure: UI Builder Storyboard tab

    +

    + UI Builder Storyboard tab +

    -   return ui_app_main(argc, argv, &cbs, app); +

    The view1 (the Naviframe view) is connected with the view2, indicating that the view2 is used as the naviframe default view. When you add a connection between other views, it is displayed here.

    +

    When a new connection is created, new callback code is also created in the src/managed/connection folder (a file is created, if required). In addition, pre and post functions are added to one of the files in the src/event_handler folder.

    + +

    When the view changes, the following callback function is invoked:

    +
    +void 
    +view2_connection_to_sql_button_onclicked(uib_view2_view_context *vc, Evas_Object *obj, void *event_info)
    +{
    +   view2_to_sql_button_onclicked(vc, obj, event_info);
    +   Elm_Object_Item *navi_item = change_page(vc->parent, "SQL", NULL, NULL, "view3", NULL);
    +   view2_to_sql_button_onclicked_post(navi_item, vc, obj, event_info);
     }
     
    +

    The change_page() function uses the elm_naviframe_item_push() function to switch the views. There is no reverse connection from view3 to view2 to avoid recurring page stacking. Instead, there is a callback function added to the to_map_button component that invokes the elm_naviframe_item_pop() function.

    -

    Data exchange with the provider application

    -

    The communication between the consumer and the provider can be done using either the 'sql' or the 'map' method. While the data used by the map and sql methods has a different structure (hash map and database), the data exchange implementation in both cases is very similar:

    -
      -
    • data consumer - send request;
    • -
    • data provider - send response or an error message;
    • -
    • data consumer - react to the data received;
    • -
    • data consumer - update the UI.
    • -
    +

    Event Handlers

    +

    The event handler callback stubs are created using the WYSIWYG editor.

    -

    Map

    -
    Initialization:
    +

    Figure: Default event handler name

    +

    + Default event handler name +

    -

    In order to achieve communication with the provider app, the correct provider app ID must be set. The ID can be found in the provider's manifest. The data_control_map_response_cb must be filled with correct functions.

    +

    The callback name is preceded by the view name. This is a standard behavior of the UI Builder and cannot be changed. After the function stub creation is completed, you can modify the callback source code.

    -
    +

    Figure: Final name of the callback function

    +

    + Final name of the callback function +

    + +

    Data Exchange with the Provider Service

    +

    The communication between the consumer and the provider can be done using either the SQL or map method. While the data used by the map and SQL methods has a different structure (hash map and database), the data exchange implementation in both cases is very similar:

    +
      +
    1. Data consumer sends a request.
    2. +
    3. Data provider sends a response or an error message.
    4. +
    5. Data consumer reacts to the received data.
    6. +
    7. Data consumer updates the UI.
    8. +
    + +

    Implementing the Map Method

    + +

    To provide full communication between the map consumer and the provider, you must initialize some data and implement 4 request functions and 4 callbacks:

    + +
      +
    • Initialize the map communication method. + +

      To achieve communication with the provider service, the correct provider application ID must be set. The ID can be found in the provider's manifest file. The data_control_map_response_cb structure must be filled with the correct functions.

      -void map_consumer_init(On_New_Data_Recieved_Cb new_data_recived_cb, error_recived_cb_t error_recived_cb) +
      +void 
      +map_consumer_init(On_New_Data_Received_Cb new_data_received_cb, error_received_cb_t error_received_cb)
       {
      -   const char *provider_id = "http://data-control-provider.com/datacontrol/provider/data-control-provider"; /* The provider ID */
      -   const char *data_id = "table";
      +   // Provider ID
      +   const char *provider_id = "http://data-control-provider.com/datacontrol/provider/data-control-provider"; 
      +   const char *data_id = "table";
          int ret;
       
      -   /* Create data control handler */
      -   ret = data_control_map_create(&(s_info.provider));
      -   /* ... */
      +   // Create data control handler
      +   ret = data_control_map_create(&(s_info.provider));
       
      -   /* Setting the provider ID*/
      +   // Set the provider ID
          ret = data_control_map_set_provider_id(s_info.provider, provider_id);
      -   /* ... */
       
      -   /* Setting the data ID */
      +   // Set the data ID
          ret = data_control_map_set_data_id(s_info.provider, data_id);
      -   /* ... */
       
      -   /* Response callbacks */
      +   // Response callbacks
          s_info.map_callback.get_cb = __map_get_response_cb;
          s_info.map_callback.set_cb = __map_set_response_cb;
          s_info.map_callback.add_cb = __map_add_response_cb;
          s_info.map_callback.remove_cb = __map_remove_response_cb;
       
      -   /* Register response callback */
      -   ret = data_control_map_register_response_cb(s_info.provider, &s_info.map_callback, NULL);
      -   /* ... /
      +   // Register response callbacks
      +   ret = data_control_map_register_response_cb(s_info.provider, &s_info.map_callback, NULL);
       }
      -
      +
    -

    To provide full communication between the map consumer and the provider, four request functions and four callbacks have to be implemented.

    +
  • Implement the request functions. -
    Request functions:
    -There are four request functions: +

    The request functions are invoked by click events of the get_data_button, set_data_button, remove_data_button and add_data_button buttons placed in the map view. The functions are used to send requests to the provider service, which must send a response. Based on the response type, a specific callback is invoked.

    -
      -
    • data_control_map_add(s_info.provider, key, value, &req_id); - this function is used to add new values to the provider's hash map. If the map doesn't contain the searched key, a new one should be created. Note that one key can hold multiple values. The key string is taken from the key_entry widget and the value from new_value_entry widget.
    • +

      The map view has an extra get_keys_button button, which sends a special get request using a #GET_ALL_KEYS key. In this case, the value received from the provider contains all keys stored by the provider service.

      -
    • data_control_map_get(s_info.provider, key, &req_id); - this function is used to get the values held by the given key. The key string is taken from the key_entry widget.
    • +

      The following request functions are needed:

      + +
        +
      • data_control_map_add() +

        This function adds new values to the provider hash map. If the map does not contain the searched key, a new one must be created.

        +

        Note that 1 key can hold multiple values. The key string is taken from the key_entry UI component and the value from the new_value_entry UI component.

      • -
      • data_control_map_set(s_info.provider, key, old, new, &req_id); - this function is used to update the given value held by the given key. If there is no value equal to old, an error message should be provided. The key string is taken from the key_entry widget, the 'old' string from the old_value_entry widget and the 'new' string from the new_value_entry widget.
      • +
      • data_control_map_get() +

        This function gets the values held by the given key. The key string is taken from the key_entry UI component.

      • -
      • data_control_map_remove(s_info.provider, key, value, &req_id); - this function is used to remove the given value held by the given key. If a key is empty after this operation, it should be removed as well. If there is no value equal to value or key equal to key, an error message should be provided. The key string is taken from the key_entry widget and the value from new_value_entry widget.
      • -
      +
    • data_control_map_set() +

      This function updates the given value held by the given key. If there is no value equal to old, an error message must be provided.

      +

      The key string is taken from the key_entry UI component, the old string from the old_value_entry UI component, and the new string from the new_value_entry UI component.

    • -

      Note that there is one extra button in the map view. The Keys button sends a special get request using a "#GET_ALL_KEYS" key. In this case value received from the provider will contain all keys stored by the provider app.

      +
    • data_control_map_remove() +

      This function removes the given value held by the given key. If a key is empty after this operation, it must be removed as well. If there is no value equal to value or key equal to key, an error message must be provided.

      +

      The key string is taken from the key_entry UI component and the value from the new_value_entry UI component.

    • +
  • -

    The above functions are invoked by click events of the get_data_button, set_data_button, remove_data_button and add_data_button buttons placed in the map view. The above functions are used to send requests to the provider app. The provider app should send a response. Based on the response type, one of the below callbacks is invoked.

    +
  • Implement the callbacks. -
    Callback definitions:
    +

    Each callback is invoked as a result of a request function implemented above:

    +
    • +

      The __map_get_response_cb() callback is invoked when a get request is sent. The values assigned to a given key are passed in the ret_value_list string array. If there was an error, the provider_ret is set to false and an error message is provided.

      -static void __map_get_response_cb(int request_id, data_control_h provider, char **ret_value_list, int ret_value_count, bool provider_ret, const char *error, void *user_data)
      +static void 
      +__map_get_response_cb(int request_id, data_control_h provider, 
      +                      char **ret_value_list, int ret_value_count, 
      +                      bool provider_ret, const char *error, void *user_data)
       {
      -   /* ... */
      +   // Take action
       }
      -
      -

      The above callback is invoked when a get request is sent. The values assigned to a given key are passed in the ret_value_list string array. If there was an error, the provider_ret will be set to false and an error message will be provided.

      - +
    • +
    • +

      The __map_set_response_cb(), __map_add_response_cb(), and __map_remove_response_cb() callbacks work the same way. If a given operation was successful, the provider_ret is set to true. If an error in the communication occurred, the error parameter contains the error message.

      -static void __map_set_response_cb(int request_id, data_control_h provider, bool provider_ret, const char *error, void *user_data)
      +static void 
      +__map_set_response_cb(int request_id, data_control_h provider, 
      +                      bool provider_ret, const char *error, void *user_data)
       {
      -   /* ... */
      +   // Take action
       }
      -
      -
      -static void __map_add_response_cb(int request_id, data_control_h provider, bool provider_ret, const char *error, void *user_data)
      +static void 
      +__map_add_response_cb(int request_id, data_control_h provider, 
      +                      bool provider_ret, const char *error, void *user_data)
       {
      -   /* ... */
      +   // Take action
       }
      -
      -
      -static void __map_remove_response_cb(int request_id, data_control_h provider, bool provider_ret, const char *error, void *user_data)
      +static void 
      +__map_remove_response_cb(int request_id, data_control_h provider, 
      +                         bool provider_ret, const char *error, void *user_data)
       {
      -   /* ... */
      +   // Take action
       }
      -
      +
    -

    The set, add and remove callbacks all work in the same way. They are used to inform if a given operation was successfull (provider_ret == true) or not. If an error in the communication occured, the error parameter should contain the error message. Note that in every callback except for the get one the get request is invoked. This way the UI can be updated with the modified hash map. Note that when error information is received, the function pointed by error_recived_cb() is invoked and a popup with the error message will be displayed.

    +

    In every callback (except __map_get_response_cb()), the get request function is invoked. This way the UI can be updated with the modified hash map.

    +

    When error information is received, the function pointed by error_received_cb() is invoked and a popup with the error message is displayed.

    +
  • +

    Implementing the SQL Method

    - -

    Sql

    +

    To provide full communication between the SQL consumer and the provider, you must initialize some data and implement 4 request functions and 4 callbacks:

    -

    Initialization:

    -The sql consumer's initialization is similar to the map consumer's initialization. First of all, a provider handler has to be created.

    -
    -data_control_sql_create(&s_info.provider);
    -
    +
      +
    • Initialize the SQL communication method. -

      A valid provider_id and data_id have to to be set.

      -
      -data_control_sql_set_provider_id(s_info.provider, provider_id);
      -data_control_sql_set_data_id(s_info.provider, data_id);
      -
      -

      Then, like in the map consumer's case, four request functions and four response callbacks have to be implemented.

      +

      To achieve communication with the provider service:

      +
      • Create a provider handle:
        -/* Setting the callback pointers */
        -   s_info.sql_callback.delete_cb = __sql_delete_response_cb;
        -   s_info.sql_callback.insert_cb = __sql_insert_response_cb;
        -   s_info.sql_callback.select_cb = __sql_select_response_cb;
        -   s_info.sql_callback.update_cb = __sql_update_response_cb;
        -
        -/* Registering the callbacks */
        -   ret = data_control_sql_register_response_cb(s_info.provider, &s_info.sql_callback, NULL);
        -
        -
        - -

        Select request

        -

        The data_control_sql_select function is used to read data from the database. +data_control_sql_create(&s_info.provider); +

      • +
      • Set a valid provider_id and data_id:
        -data_control_sql_select(data_control_h provider, char **column_list, int column_count, const char *where, const char *order, int *request_id);
        -
        -should be used. The column_list parameter is used as the text after the SELECT keyword in a sql query. The column_list is an array of strings. The column_name_entry entry field in the sql view can be used as the input for the column_list. Note however that the string from the entry has to be converted (using the elm_entry_markup_to_utf8()) from markup to utf8 format. If not, some characters, e.g '<', cannot be used. After the conversion, '\n' can be used as a delimiter when the text from the entry field is transformed into the array of strings. The column_count variable is the count of column_list elements. The where parameter is a string. It can contain any correct sql WHERE entry. The where_entry entry field is used to provide an input for this parameter. Of course this text (like any text from an entry widget) has to be converted to utf8 as well. If one of the sort methods is chosen using the radiobuttons, a column name has to be provided using the sort_column_entry field. The order parameter is a concatenation of the sort_column_entry string and an appropriate sort text, e.g. 'Num ASC'. -

        - -

        Insert request

        -

        Insert request uses a bundle structure to generate an sql query. The column_name_entry and column_value_entry entries are used to provide input. The obtained strings are then tokenized and added to the bundle as a key value pair. The first line of the column_name_entry and the first line of the value_name_entry are used as the first pair and so on.

        +data_control_sql_set_provider_id(s_info.provider, provider_id); +data_control_sql_set_data_id(s_info.provider, data_id); +
    • -

      Delete request

      -

      The delete request uses only the 'where' string described earlier. Every line in the database which meets the provided condition will be removed.

      -

      Update request

      -

      The update allows the user to modify a set of rows. Every row that meets the 'where' condition will be updated. To update given fields of a row a bundle is used in the same way as in the 'insert' request.

      +
    • Implement the request functions. -

      Callbacks definitions:

      +

      The request functions are invoked by click events of the select_button, insert_button, set_button and delete_button buttons placed in the SQL view. The functions are used to send requests to the provider service, which must send a response. Based on the response type, a specific callback is invoked.

      -

      The function below is a helper function used in the 'SELECT' response. The row pointed at the result cursor is taken as the argument. The function returns a string containing the row's values. The values are formatted based on their type.

      +

      The following request functions are needed:

      +
        +
      • Select request +

        This function reads data from the database:

        +
        • The column_list parameter is an array of strings used as the text after the SELECT keyword in a SQL query. The column_name_entry entry field in the SQL view can be used as the input for the column_list. However, note that the string from the entry has to be converted (using the elm_entry_markup_to_utf8() function) from markup to the utf8 format. If not, some characters, such as '<', cannot be used. After the conversion, '\n' can be used as a delimiter when the text from the entry field is transformed into the array of strings.

        • +
        • The column_count variable is the count of the column_list elements.

        • +
        • The where parameter is a string, which can contain any correct SQL WHERE entry. The where_entry entry field is used to provide an input for this parameter. This text (like any text from an entry widget) has to be converted to utf8 as well.

        • +
        • If one of the sort methods is chosen using the radio buttons, a column name has to be provided using the sort_column_entry field. The order parameter is a concatenation of the sort_column_entry string and an appropriate sort text, such as Num ASC.

        -static const char *__sql_row_get(result_set_cursor cursor)
        -{
        -   /* ... */
        +data_control_sql_select(data_control_h provider, char **column_list, int column_count, 
        +                        const char *where, const char *order, int *request_id);
        +
      • -   column_count = data_control_sql_get_column_count(cursor); /* Get the current row's column count */ +
      • Insert request +

        This function uses a bundle structure to generate a SQL query.

        +

        The column_name_entry and column_value_entry entries are used to provide input. The obtained strings are then tokenized and added to the bundle as a key-value pair. The first line of the column_name_entry and the first line of the column_value_entry are used as the first pair, and so on.

      • -   for (i = 0; i < column_count; ++i) { +
      • Delete request +

        This function uses only the where string described earlier. Every line in the database which meets the provided condition is removed.

      • -      /* Get the column type (types available: DATA_CONTROL_SQL_COLUMN_TYPE_INT64, -      DATA_CONTROL_SQL_COLUMN_TYPE_DOUBLE, -      DATA_CONTROL_SQL_COLUMN_TYPE_TEXT, -      DATA_CONTROL_SQL_COLUMN_TYPE_BLOB) */ -      data_control_sql_get_column_item_type(cursor, i, &type); +
      • Update request +

        This function modifies a set of rows.

        +

        Every row that meets the where condition is updated. To update the given fields of a row, a bundle is used in the same way as in the insert request.

      • +
    • -      /* Based on the column type the given field's data is appended to the output string*/ -      } -   } +
    • Implement the callbacks. -   /* ... */ -} +
      +// Set the callback pointers
      +s_info.sql_callback.delete_cb = __sql_delete_response_cb;
      +s_info.sql_callback.insert_cb = __sql_insert_response_cb;
      +s_info.sql_callback.select_cb = __sql_select_response_cb;
      +s_info.sql_callback.update_cb = __sql_update_response_cb;
      +
      +// Register the callbacks
      +ret = data_control_sql_register_response_cb(s_info.provider, &s_info.sql_callback, NULL);
       
      -

      The __sql_select_response_cb() is used when the SELECT response was invoked. This function uses the cursor to pass the response. The cursor is an result_set_cursor structure used to represent a sql result set. It can be enumerated to obtain every row in the result. The result is then transformed to an array of strings and sent to the view module so that the UI can be updated. The provider_result boolean value is used to inform whether the data was successfully processed.

      +

      Each callback is invoked as a result of a request function implemented above:

      +
      • +

        The __sql_select_response_cb() function is used when the SELECT response is invoked.

        +

        This function uses the cursor parameter to pass the response. The cursor parameter is a result_set_cursor structure used to represent a SQL result set. It can be enumerated to obtain every row in the result. The result is then transformed to an array of strings and sent to the view module so that the UI can be updated. The provider_result boolean value is used to define whether the data is successfully processed.

        -static void __sql_select_response_cb(int request_id, data_control_h provider, result_set_cursor cursor, bool provider_result, const char *error, void *user_data)
        +static void 
        +__sql_select_response_cb(int request_id, data_control_h provider, result_set_cursor cursor, 
        +                         bool provider_result, const char *error, void *user_data)
         {
        -   /* ... */
        -
        -   /* Iterate through all rows recived from the provider*/
        -   while (data_control_sql_step_next(cursor) == DATA_CONTROL_ERROR_NONE) {
        +   // Iterate through all rows received from the provider
        +   while (data_control_sql_step_next(cursor) == DATA_CONTROL_ERROR_NONE) 
        +   {
               if (!columns)
        -
        -   /* Gets the columns names for the current row. It is assumed that columns names are the same in every row so this function is invoked only once.
        -   The __column_list_get() function returns the names in one properly formatted string */
        +         // Get the columns names for the current row; it is assumed that 
        +         // columns names are the same in every row so this function is invoked only once
        +         // __column_list_get() returns the names in one properly formatted string
                  columns = __column_list_get(cursor);
         
        -      row = __sql_row_get(cursor); /* The __sql_row_get() function returns the content of the row as one properly formatted string. */
        +      // __sql_row_get() returns the content of the row as one properly formatted string
        +      row = __sql_row_get(cursor); 
               response = eina_list_append(response, row);
            }
         
        -   /* The received data is sent to the view module */
        -   if (s_info.new_data_recived)
        -      s_info.new_data_recived(columns, response);
        +   // Received data is sent to the view module
        +   if (s_info.new_data_received)
        +      s_info.new_data_received(columns, response);
         }
         
        -

        The __sql_delete_response_cb, __sql_insert_response_cb and __sql_update_response_cb functions are used only to inform about the result of respective requests.

        +

        The following function is a helper used in the SELECT response. The row pointed at the result cursor is taken as the parameter. The function returns a string containing the row's values. The values are formatted based on their type.

        -static void __sql_delete_response_cb(int request_id, data_control_h provider, bool provider_result, const char *error, void *user_data)
        +static const char 
        +*__sql_row_get(result_set_cursor cursor)
         {
        -   /* ... */
        +   // Get the current row's column count
        +   column_count = data_control_sql_get_column_count(cursor); 
        +
        +   for (i = 0; i < column_count; ++i) 
        +   {
        +      // Get the column type (types available: DATA_CONTROL_SQL_COLUMN_TYPE_INT64,
        +      // DATA_CONTROL_SQL_COLUMN_TYPE_DOUBLE,
        +      // DATA_CONTROL_SQL_COLUMN_TYPE_TEXT,
        +      // DATA_CONTROL_SQL_COLUMN_TYPE_BLOB)
        +      data_control_sql_get_column_item_type(cursor, i, &type);
        +
        +      // Based on the column type, the given field's data is appended to the output string
        +   }
         }
         
        +
      • +
      • +

        The __sql_delete_response_cb, __sql_insert_response_cb, and __sql_update_response_cb functions are used only to provide information about the result of respective requests.

        -static void __sql_insert_response_cb(int request_id, data_control_h provider, long long inserted_row_id, bool provider_result, const char *error, void *user_data)
        +static void 
        +__sql_delete_response_cb(int request_id, data_control_h provider, bool provider_result, 
        +                         const char *error, void *user_data)
         {
        -   /* ... */
        +   // Take action
         }
        -
        -
        -static void __sql_update_response_cb(int request_id, data_control_h provider, bool provider_result, const char *error, void *user_data)
        +static void 
        +__sql_insert_response_cb(int request_id, data_control_h provider, long long inserted_row_id, 
        +                         bool provider_result, const char *error, void *user_data)
         {
        -   /* ... */
        +   // Take action
         }
        -
        -

        Note that every callback uses the provider_result argument to inform about any erroneous situation (e.g. wrong WHERE filter used). In such a case the variable will equal false and the error argument will contain the error information. In case of an error the s_info.info_received function pointer will be invoked. This call is used to display a popup with the error message.

        +static void +__sql_update_response_cb(int request_id, data_control_h provider, bool provider_result, +                         const char *error, void *user_data) +{ +   // Take action +} +
      +

      Every callback uses the provider_result parameter to provide information about any erroneous situation (such as incorrect WHERE filter). In such case, the parameter equals false and the error parameter contains the error information. In an error situation, the s_info.info_received function pointer is invoked, and the call is used to display a popup with the error message.

      +
    - diff --git a/org.tizen.sampledescriptions/html/mobile_n/data_control_provider_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/data_control_provider_sd_mn.htm index f3f46a6..9ac9f42 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/data_control_provider_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/data_control_provider_sd_mn.htm @@ -10,7 +10,7 @@ - Data-Control-Consumer Sample Overview + Data-Control-Provider Sample Overview @@ -19,193 +19,232 @@
    -

    Mobile native

    +

    Mobile native

    -

    Data-Control-Provider Sample Overview

    -

    The sample demonstrates how to exchange data between a consumer application and a provider service. There are two methods of data exchange:

    +

    The Data-Control-Provider sample application demonstrates how you can exchange data between a consumer application and a provider service using:

      -
    • Map method - using key value pairs;
    • -
    • Sql method - using sql queries.
    • +
    • Map method (key-value pairs)
    • +
    • SQL method (SQL queries)
    -

    No user interface is provided as this is a service application that runs in the background. The documentation for the consumer app can be found here.

    +

    This sample has no user interface, as it is a service application that, in the background, provides services for the Data-Control-Consumer application.

    Prerequisites

    -

    To ensure proper application execution, the http://tizen.org/privilege/datasharing privilege must be set and the following data-control entries must be enabled:

    +
    • To ensure proper application execution, the following privilege must be set: +
      • http://tizen.org/privilege/datasharing
    • +
    • To ensure proper application execution, the following data-control entries must be enabled:
        -
      • http://data-control-provider.com/datacontrol/provider/data-control-provider with sql type and ReadWrite access rights;
      • -
      • http://data-control-provider.com/datacontrol/provider/data-control-providers with map type and ReadWrite access rights.
      • -
      +
    • http://data-control-provider.com/datacontrol/provider/data-control-provider with the SQL type and ReadWrite access rights
    • +
    • http://data-control-provider.com/datacontrol/provider/data-control-providers with the map type and ReadWrite access rights
    • +

    Implementation

    -

    Initialization

    +

    Application Initialization

    -

    The entire application's life-cycle is implemented in the main source file using a common Tizen service structure:

    +

    The application life-cycle is implemented in the main source file using a common Tizen service structure:

    -int main(int argc, char* argv[])
    +int 
    +main(int argc, char* argv[])
     {
        char ad[50] = {0,};
        service_app_lifecycle_callback_s event_callback;
    -   app_event_handler_h handlers[5] = {NULL, };
    +   app_event_handler_h handlers[5] = {NULL,};
     
        event_callback.create = service_app_create;
        event_callback.terminate = service_app_terminate;
        event_callback.app_control = service_app_control;
     
    -   service_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, service_app_low_battery, &ad);
    -   service_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, service_app_low_memory, &ad);
    -   service_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, service_app_lang_changed, &ad);
    -   service_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, service_app_region_changed, &ad);
    +   service_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, 
    +                                 service_app_low_battery, &ad);
    +   service_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, 
    +                                 service_app_low_memory, &ad);
    +   service_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, 
    +                                 service_app_lang_changed, &ad);
    +   service_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, 
    +                                 service_app_region_changed, &ad);
     
    -   return service_app_main(argc, argv, &event_callback, ad);
    +   return service_app_main(argc, argv, &event_callback, ad);
     }
     
    -

    The service_app_create function is used to initialize the map provider and the sql provider modules.

    +

    The service_app_create() function is used to initialize the map provider and SQL provider modules.

    + +

    Map Module

    +

    To implement the map module:

    -

    The Map module

    -

    Structure definitions

    +
      +
    1. Define structures. -

      The map module uses the structure below to hold its data:

      +

      The map module uses the following structure to hold its data:

      -static struct {
      -   data_control_provider_map_cb map_callback; /* Provider callbacks */
      -   Eina_Hash *data_map; /* The map structure */
      +static struct 
      +{
      +   data_control_provider_map_cb map_callback; // Provider callbacks
      +   Eina_Hash *data_map; // Map structure
       }
      -
      +
    2. + +
    3. Initialize the map module. -

      Initialization

      +

      Assign callbacks to the callback structure to provide communication with the consumer application. You must also initialize the Eina_Hash structure that holds the map data.

      -

      The map module uses the Eina_Hash structure to hold data. Note that the stored data will be lost when the provider app is killed. Four callback are used to provide communication with the consumer application.

      +

      The stored data is lost when the provider application is killed.

      -Eina_Bool map_provider_initialize(void)
      +Eina_Bool 
      +map_provider_initialize(void)
       {
      -   /* Assigning callback functions to callback structure. */
      +   // Assign callback functions to the callback structure
          s_info.map_callback.get_cb = __get_value_request_cb;
          s_info.map_callback.add_cb = __add_value_request_cb;
          s_info.map_callback.remove_cb = __remove_value_request_cb;
          s_info.map_callback.set_cb = __set_value_request_cb;
       
      -   /* Initialize the map provider using the callback structure. */
      -   int result = data_control_provider_map_register_cb(&s_info.map_callback, NULL);
      -   /* ... */
      +   // Initialize the map provider using the callback structure
      +   int result = data_control_provider_map_register_cb(&s_info.map_callback, NULL);
       
          s_info.data_map = eina_hash_string_djb2_new(__data_map_free_cb);
      -   /* ... */
      +
          return EINA_TRUE;
       }
      -
      +
    4. -

      Callbacks

      - -

      The callback invoked when a 'get' request is sent from the consumer app:

      +
    5. Define the callbacks: +
        +
      • +

        The __get_value_request_cb() callback is invoked when a get request is sent from the consumer:

        -static void __get_value_request_cb(int request_id, data_control_h provider, const char *key, void *user_data)
        +static void 
        +__get_value_request_cb(int request_id, data_control_h provider, 
        +                       const char *key, void *user_data)
         {
            int count = 0;
        -   char **entry = __data_map_get(request_id, key, &count); /* Read the data assigned to the 'key' from the hash map. */
        +   // Read the data assigned to the key from the hash map
        +   char **entry = __data_map_get(request_id, key, &count); 
         
        -   int ret = data_control_provider_send_map_get_value_result(request_id, entry, count); /* Send the operation result to the consumer app. */
        -   /* ... */
        +   // Send the operation result to the consumer
        +   int ret = data_control_provider_send_map_get_value_result(request_id, entry, count); 
         }
        -
        +
      • -

        The callback invoked when a 'set' request is sent from the consumer app:

        +
      • The __set_value_request_cb() callback is invoked when a set request is sent from the consumer:

        -static void __set_value_request_cb(int request_id, data_control_h provider, const char *key, const char *old_value, const char *new_value, void *user_data)
        +static void 
        +__set_value_request_cb(int request_id, data_control_h provider, const char *key, 
        +                       const char *old_value, const char *new_value, void *user_data)
         {
        -   __data_map_set(request_id, key, old_value, new_value); /* Update the hash map. If there is a 'key' in the hash map and it holds a value equal to 'old_value', the value will be updated to 'new_value'. */
        +   // Update the hash map; if there is a key in the hash map and 
        +   it holds a value equal to old_value, the value is updated to new_value
        +   __data_map_set(request_id, key, old_value, new_value); 
         
        -   int ret = data_control_provider_send_map_result(request_id); /* Send the operation result to the consumer app. */
        -   /* ... */
        +   // Send the operation result to the consumer
        +   int ret = data_control_provider_send_map_result(request_id); 
         }
        -
        +
      • -

        The callback invoked when a 'add' request is sent from the consumer app:

        +
      • The __add_value_request_cb() callback is invoked when an add request is sent from the consumer:

        -static void __add_value_request_cb(int request_id, data_control_h provider, const char *key, const char *value, void *user_data)
        +static void 
        +__add_value_request_cb(int request_id, data_control_h provider, 
        +                       const char *key, const char *value, void *user_data)
         {
        -   int count = __data_map_add(request_id, key, value); /* Add a new value equal 'value' the 'key'. If a key equal to 'key' doesn't exist, a new key will be added. */
        -   
        -   int ret = data_control_provider_send_map_result(request_id); /* Send the operation result to the consumer app. */
        -   /* ... */
        +   // Add a new value to a key; if a key equal to 'key' does not exist, a new key is added
        +   int count = __data_map_add(request_id, key, value); 
        +
        +   // Send the operation result to the consumer
        +   int ret = data_control_provider_send_map_result(request_id);
         }
        -
        +
      • -

        The callback invoked when a 'remove' request is sent from the consumer app:

        +
      • The __remove_value_request_cb() callback is invoked when a remove request is sent from the consumer:

        -static void __remove_value_request_cb(int request_id, data_control_h provider, const char *key, const char *value, void *user_data)
        +static void 
        +__remove_value_request_cb(int request_id, data_control_h provider, 
        +                          const char *key, const char *value, void *user_data)
         {
        -   __data_map_remove(request_id, key, value); /* Remove 'value' from 'key'. If the key remains empty after this operation, it will be removed as well. */
        +   // Remove a value from a key; if the key becomes empty after this operation, it is removed as well
        +   __data_map_remove(request_id, key, value); 
         
        -   int ret = data_control_provider_send_map_result(request_id); /* Send the operation result to the consumer app. */
        -   /* ... */
        +   // Send the operation result to the consumer
        +   int ret = data_control_provider_send_map_result(request_id); 
         }
        -
        +
    6. +
    7. Implement the Eina_Hash functions. +

      The map provider part of the application uses the Eina_Hash structure to store data. Every key in the hash can hold multiple values, so a simple key-value pair is not enough. Every key has an Eina_List assigned as its data.

      -

      Eina_Hash functions

      -

      The map provider part of the application uses the Eina_Hash structure to store data. Note that every key in the hash can hold multiple values, so a simple key/value pair is not enough. Every key has an Eina_List assigned as its data. There are five functions in total that allow to interact with the hash map. All of them are invoked by a proper callback.

      +

      There are 5 functions that interact with the hash map, and all of them are invoked by a proper callback:

      -

      The function used to add new data to the hash map. As mentioned before, if a key doesn't exist, a new key should be created:

      +
        +
      • __data_map_add +

        This function adds new data to the hash map. As mentioned before, if a key does not exist, a new key is created.

        -static int __data_map_add(int request_id, const char *key, const char *value)
        +static int 
        +__data_map_add(int request_id, const char *key, const char *value)
         {
        -   /* ... */
        -
        -   entry = (Eina_List *)eina_hash_find(s_info.data_map, key); /* Find an Eina_List assigned to the passed key. */
        +   // Find an Eina_List assigned to the passed key
        +   entry = (Eina_List *)eina_hash_find(s_info.data_map, key); 
         
        -   if (entry) {
        -      /* If an Eina_List is found, a new value is added to it, and the Eina_Hash key is modified accordingly.
        -      Note that the data added to the Eina_List is sorted so the eina_hash_list_* group of functions cannot be used. */
        +   if (entry) 
        +   {
        +      // If an Eina_List is found, a new value is added to it, 
        +      // and the Eina_Hash key is modified accordingly
        +      // Data added to the Eina_List is sorted, so the eina_hash_list_* functions cannot be used
               entry = eina_list_sorted_insert(entry, __data_map_item_value_comparator_cb, strdup(value));
        -      /* ... */
        -   } else {
        -      /* If an Eina_List is not found, a new list is created. A new key is created with the new list used at its value. */
        +   } 
        +   else 
        +   {
        +      // If an Eina_List is not found, a new list is created
        +      // New key is created with the new list as its value
               entry = eina_list_append(NULL, strdup(value));
        -      /* ... */
            }
         
            return eina_list_count(entry);
         }
        -
        +
      • -

        The function below is a special 'get' function. When 'get' request with a special key is sent from the consumer app, an array of all keys in the hash map are sent back instead of a value array:

        +
      • __get_all_keys +

        This function is a special get function. When a get request with the special key is sent from the consumer, an array of all keys in the hash map is sent back instead of a value array.

        -static char **__get_all_keys(int *values_count)
        +static char 
        +**__get_all_keys(int *values_count)
         {
            *values_count = eina_hash_population(s_info.data_map);
            char **ret = calloc(*values_count, sizeof(char *));
            eina_hash_foreach(s_info.data_map, __get_all_keys_cb, (char **)ret);
        +
            return ret;
         }
        -
        +
      • -

        The function used to get an array of values held by the given key:

        +
      • __data_map_get +

        This function gets an array of values held by a given key.

        -static char **__data_map_get(int request_id, const char *key, int *values_count)
        +static char 
        +**__data_map_get(int request_id, const char *key, int *values_count)
         {
        -   /* If the requested key is equal to '#GET_ALL_KEYS', return an array of all available keys. */
        +   // If the requested key is equal to #GET_ALL_KEYS, return an array of all available keys
            if(!__str_cmp_precise(key, GET_ALL_KEYS))
               return __get_all_keys(values_count);
         
        -   /* Find an Eina_List assigned to the given key */
        +   // Find an Eina_List assigned to the given key
            entry = (Eina_List *)eina_hash_find(s_info.data_map, key);
        -   if (!entry) {
        +   if (!entry) 
        +   {
               *values_count = 0;
         
        -      /* If no Eina_List is found, an error message is sent.
        -         Note that this call will automatically set the provider_ret in the consumer's app callback to false. */
        +      // If no Eina_List is found, an error message is sent
        +      // Note that this call automatically sets the provider_ret in the consumer callback to false
               data_control_provider_send_error(request_id, NO_KEY_FOUND);
        +
               return NULL;
            }
         
        -   /* Prepare an array of strings with values assigned to the given key. */
        +   // Prepare an array of strings with values assigned to the given key
            *values_count = eina_list_count(entry);
            char **ret = calloc(*values_count, sizeof(char *));
         
        @@ -214,205 +253,223 @@ static char **__data_map_get(int request_id, const char *key, int *values_count)
               ret[index] = item;
               index++;
            }
        +
            return ret;
         }
        -
        +
      • -

        The function used to update the value assigned to the given key:

        +
      • __data_map_set +

        This function updates the value assigned to a given key.

        -static Eina_Bool __data_map_set(int request_id, const char *key, const char *old, const char *new)
        +static Eina_Bool 
        +__data_map_set(int request_id, const char *key, const char *old, const char *new)
         {
        -   /* ... */
        -
        -   /* Search for the value to modify. */
        +   // Search for the value to modify
            Eina_List *old_data_list = __search_value(entry, key, old);
        -   /* ... */
         
        -   /* Remove the found value. This is used to simplify the sorted insertion to the Eina_List. */
        +   // Remove the found value; this is used to simplify the sorted insertion to the Eina_List
            entry = eina_list_remove_list(entry, old_data_list);
            if (!entry)
        -      dlog_print(DLOG_INFO, LOG_TAG, "entry == NULL");
        +      dlog_print(DLOG_INFO, LOG_TAG, "entry == NULL");
         
        -   /* Insert the new value. */
        +   // Insert the new value
            entry = eina_list_sorted_insert(entry, __data_map_item_value_comparator_cb, strdup(new));
         
        -   /* Modify the key. */
        -   if (!eina_hash_modify(s_info.data_map, key, entry)) {
        -      dlog_print(DLOG_ERROR, LOG_TAG, "Failed to modify a key value pair");
        +   // Modify the key
        +   if (!eina_hash_modify(s_info.data_map, key, entry)) 
        +   {
        +      dlog_print(DLOG_ERROR, LOG_TAG, "Failed to modify a key value pair");
        +
               return EINA_FALSE;
            }
         
            return EINA_TRUE;
         }
        -
        +
      • -

        The function used to remove the value assigned to the given key:

        +
      • __data_map_remove +

        This function removes the value assigned to a given key.

        -static void __data_map_remove(int request_id, const char* key, const char *value)
        +static void 
        +__data_map_remove(int request_id, const char* key, const char *value)
         {
        -   /* ... */
        -
        -   if(eina_list_count(entry) > 1) {
        +   if(eina_list_count(entry) > 1) 
        +   {
               entry = eina_list_remove_list(entry, old_data_list);
        -      if (!eina_hash_modify(s_info.data_map, key, entry)) {
        -         dlog_print(DLOG_ERROR, LOG_TAG, "Failed to modify a key value pair");
        +      if (!eina_hash_modify(s_info.data_map, key, entry)) 
        +      {
        +         dlog_print(DLOG_ERROR, LOG_TAG, "Failed to modify a key value pair");
        +
                  return;
               }
        +   } 
        +   else 
        +   {
        +      // If a key is left empty after the value removal, it is removed
        +      if (!eina_hash_del_by_key(s_info.data_map, key)) 
        +      {
        +         dlog_print(DLOG_ERROR, LOG_TAG, "Failed to remove a key: %s", key);
         
        -   } else {
        -      /* If akey is left empty after the value removal the key should be removed as well. */
        -      if (!eina_hash_del_by_key(s_info.data_map, key)) {
        -         dlog_print(DLOG_ERROR, LOG_TAG, "Failed to remove a key: %s", key);
                  return;
        -      } else {
        -         dlog_print(DLOG_INFO, LOG_TAG, "Key [%s] removed", key);
        +      } 
        +      else 
        +      {
        +         dlog_print(DLOG_INFO, LOG_TAG, "Key [%s] removed", key);
                  text = eina_stringshare_printf(KEY_REMOVED, key);
                  data_control_provider_send_error(request_id, text);
                  eina_stringshare_del(text);
               }
            }
         }
        -
        - - -

        The SQL module

        -

        Structure definitions

        - -

        The map module uses the following structure to hold its data:

        +
      +
    + +

    SQL Module

    +

    To implement the SQL module:

    +
      +
    1. Define structures. +

      The SQL module uses the following structure to hold its data:

      -static struct {
      -   data_control_provider_sql_cb sql_callback; /* Provider callbacks */
      -   sqlite3 *db; /* The map structure */
      +static struct 
      +{
      +   data_control_provider_sql_cb sql_callback; // Provider callbacks
      +   sqlite3 *db; // SQL structure
       } s_info;
       
      +
    2. +
    3. Initialize the SQL module. +

      Assign callbacks to the callback structure to provide communication with the consumer application.

      +

      The SQL module uses a SQLite database to hold data. As opposed to the map module, the SQL module uses an external file to store the data so it is not lost when the application is killed.

      -

      Initialization

      -

      The SQL module uses a SQLite database to hold data. As opposed to the map module, the SQL module uses an external file to store the data so it is not lost when the app is killed. Four callback are used to provide communication with the consumer application.

      - -

      The function below is used to initialize the SQL provider module.

      -void sql_provider_init(void)
      +void 
      +sql_provider_init(void)
       {
      -   int result = __create_database(); /* Create and open a database file */
      +   int result = __create_database(); // Create and open a database file
       
      -   /* Initialize the callback structure with function pointers */
      +   // Assign callback functions to the callback structure
          s_info.sql_callback.select_cb = __select_request_cb;
          s_info.sql_callback.insert_cb = __insert_request_cb;
          s_info.sql_callback.delete_cb = __delete_request_cb;
          s_info.sql_callback.update_cb = __update_request_cb;
       
      -   /* Register the callbacks */
      -   result = data_control_provider_sql_register_cb(&s_info.sql_callback, NULL);
      -   /* ... */
      +   // Register the callbacks
      +   result = data_control_provider_sql_register_cb(&s_info.sql_callback, NULL);
       }
       
      +
    4. +
    5. Define the callbacks: -

      Callbacks

      - -

      The callback invoked when an 'insert' request is sent:

      +
        +
      • +

        The __insert_request_cb() callback is invoked when an insert request is sent:

        -static void __insert_request_cb(int request_id, data_control_h provider, bundle *insert_data, void *user_data)
        +static void 
        +__insert_request_cb(int request_id, data_control_h provider, bundle *insert_data, void *user_data)
         {
        -   /* The insert_data argument contains a list of column name / value pairs. Check the consumer app documentation for details.
        -   Based on the values stored in the bundle a SQL INSERT query is created. */
        +   // insert_data parameter contains a list of column name - value pairs. 
        +   // Check the consumer app documentation for details
        +   // Based on the values stored in the bundle, a SQL INSERT query is created
            command = data_control_provider_create_insert_statement(provider, insert_data);
        -   /* ... */
         
        -   /* The new row is added to the database using standard SQLite API's functions */
        +   // New row is added to the database using standard SQLite API functions 
            ret = sqlite3_exec(s_info.db, command, NULL, NULL, NULL);
        -   /* ... */
        +
            inserted_row_id = sqlite3_last_insert_rowid(s_info.db);
         
        -   /* The operation result is sent back to the consumer application */
        +   // Operation result is sent back to the consumer application
            ret = data_control_provider_send_insert_result(request_id, inserted_row_id);
        -
        -   /* ... */
         }
         
        - -

        The callback invoked when a 'delete' request is sent:

        +
      • +
      • +

        The __delete_request_cb() callback is invoked when a delete request is sent:

        -static void __delete_request_cb(int request_id, data_control_h provider, const char *where, void *user_data)
        +static void 
        +__delete_request_cb(int request_id, data_control_h provider, const char *where, void *user_data)
         {
        -   /* ... */
        -
        -   /* The 'where' text is used to create a SQL DELETE query */
        +   // 'where' text is used to create a SQL DELETE query
            command = data_control_provider_create_delete_statement(provider, where);
        -   /* ... */
         
        -   /* The new row is added to the database using standard SQLite API's functions */
        +   // Row is deleted from the database using standard SQLite API functions
            ret = sqlite3_exec(s_info.db, command, NULL, NULL, NULL);
        -   /* ... */
         
        -   /* The operation result is sent back to the consumer application */
        +   // Operation result is sent back to the consumer application
            ret = data_control_provider_send_delete_result(request_id);
        -   /* ... */
         }
         
        - -

        The callback invoked when a 'select' request is sent:

        +
      • +
      • +

        The __select_request_cb() callback is invoked when a select request is sent:

        -static void __select_request_cb(int request_id, data_control_h provider, const char **column_list,
        -                  int column_count, const char *where, const char *order, void *user_data)
        +static void
        +__select_request_cb(int request_id, data_control_h provider, const char **column_list,
        +                    int column_count, const char *where, const char *order, void *user_data)
         {
        -   /* ... */
        -
        -   /* A SQL SELECT query is created using the callback arguments. Note that some of the arguments can be NULL.
        -   The resulting query:
        -   SELECT column_list[0], column_list[1] .. column_list[column_count - 1] FROM Sample_Table WHERE where ORDER BY order;
        +   // SQL SELECT query is created using the callback arguments
        +   // Some of the arguments can be NULL
        +   // Resulting query:
        +   // SELECT column_list[0], column_list[1] .. column_list[column_count - 1] 
        +   // FROM Sample_Table WHERE where ORDER BY order;
        +
        +   // If the where string is NULL, no filter is used
        +   // If the order string is NULL, no sorting is applied
        +   command = data_control_provider_create_select_statement(provider, column_list, 
        +                                                           column_count, where, order);
        +   if (!command) 
        +   {
        +      dlog_print(DLOG_ERROR, LOG_TAG, "command == NULL");
         
        -   If the where string is NULL, there is no filter used and if order string is NULL there is no sorting applied.
        -   */
        -   command = data_control_provider_create_select_statement(provider, column_list, column_count, where, order);
        -   if (!command) {
        -      dlog_print(DLOG_ERROR, LOG_TAG, "command == NULL");
               return;
        -   } else {
        -      dlog_print(DLOG_ERROR, LOG_TAG, "command == %s", command);
        +   } 
        +   else 
        +   {
        +      dlog_print(DLOG_ERROR, LOG_TAG, "command == %s", command);
            }
         
        -   /* A SQL statement object is created and sent to the consumer application */
        -   ret = sqlite3_prepare_v2(s_info.db, command, strlen(command), &sql_stmt, NULL);
        -   /* ... */
        +   // SQL statement object is created and sent to the consumer application
        +   ret = sqlite3_prepare_v2(s_info.db, command, strlen(command), &sql_stmt, NULL);
         
            ret = data_control_provider_send_select_result(request_id, (void *)sql_stmt);
        -   /* ... */
         
            sqlite3_finalize(sql_stmt);
        -
        -   /* ... */
         }
         
        - -

        The callback invoked when an 'update' request is sent:

        +
      • +
      • +

        The __update_request_cb() callback is invoked when an update request is sent:

        -static void __update_request_cb(int request_id, data_control_h provider, bundle *update_data, const char *where, void *user_data)
        +static void 
        +__update_request_cb(int request_id, data_control_h provider, bundle *update_data, 
        +                    const char *where, void *user_data)
         {
            int ret = -1;
            char *command = NULL;
         
        -
        -   /* The SQL query is created using the bundle structure similar to the structure used in add query and where string similar to the one used in the delete query.
        -   The final query will look like this:
        -   UPDATE Sample_Table SET bundle_key1 = bundle_value_1, bundle_key1 = bundle_value_1, ..., columnN = valueN WHERE where
        -
        -   */
        +   // SQL query is created using a bundle structure similar to the structure used in 
        +   // the add query and a where string similar to the one used in the delete query
        +   // Final query looks like this:
        +   // UPDATE Sample_Table SET bundle_key1 = bundle_value_1, 
        +   // bundle_key1 = bundle_value_1, ..., columnN = valueN WHERE where
            command = data_control_provider_create_update_statement(provider, update_data, where);
        -   if (!command) {
        -      dlog_print(DLOG_ERROR, LOG_TAG, "command == NULL");
        -      return;
        +   if (!command) 
        +   {
        +      dlog_print(DLOG_ERROR, LOG_TAG, "command == NULL");
        +
        +      return
            }
         
        -   /* The generated command is then used as a SQLite query */
        +   // Generated command is then used as a SQLite query
            ret = sqlite3_exec(s_info.db, command, NULL, NULL, NULL);
        -   /* ... */
         
        -   /* After the database update information about the update's result is sent to the consumer app*/
        +   // Information about the database update result is sent to the consumer
            ret = data_control_provider_send_update_result(request_id);
        -   /* ... */
         }
         
        - +
      • +
      +
    6. +
    diff --git a/org.tizen.sampledescriptions/html/mobile_n/efl_core_samples_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/efl_core_samples_sd_mn.htm index 4d253ed..6ad9492 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/efl_core_samples_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/efl_core_samples_sd_mn.htm @@ -21,23 +21,23 @@
    -

    Mobile native

    +

    Mobile native

    EFL Core Samples Overview

    -

    The EFL Core Samples demonstrates how to use EFL and Elementary libraries and related APIs in Tizen. It consists of five main samples: Ecore, Eina, Evas, Elementary, and EDC Script. They describe main principles of using core EFL APIs and their functionalities, and creating basic UI components in your applications.

    - -

    Figure: EFL Core Samples main screen

    -

    EFL Core Samples screen

    +

    The EFL core samples demonstrate how to use the EFL and Elementary libraries and related APIs in Tizen. It consists of 5 main samples: Ecore, Eina, Evas, Elementary, and EDC script. They describe the main principles of using the core EFL APIs and their functionalities, and creating basic UI components in your applications.

    +

    The following figure shows the EFL core samples main screen.

    +

    Figure: EFL core samples main screen

    +

    EFL core samples screen

    Ecore

    -

    EFL Core Sample Ecore demonstrates how to use Ecore library, e.g. using Ecore for animation, multi-threading, handling timers, etc. in your applications.

    - +

    The Ecore core sample demonstrates how to use the Ecore library, such as using Ecore for animation, multi-threading, and handling timers in your applications.

    +

    The following figure shows the Ecore samples main screen.

    Figure: Ecore samples main screen view

    -

    Ecore Samples screen

    +

    Ecore samples screen

    -

    Below a list of Ecore samples that demonstrate using of Ecore APIs

    +

    The following Ecore samples demonstrate the use of the Ecore library:

    • Ecore Animator
    • Ecore Event
    • @@ -53,11 +53,13 @@

      Eina

      -

      EFL Core Sample Eina demonstrates how to use Eina library (inlist, list, stringshare) in your applications.

      +

      The Eina core sample demonstrates how to use the Eina library, such as inlist, list, and stringshare, in your applications.

      +

      The following figure shows the Eina samples main screen.

      Figure: Eina samples main screen view

      -

      Eina Samples screen

      +

      Eina samples screen

      +

      The following Eina samples demonstrate the use of the Eina library:

      • Eina InList
      • Eina List
      • @@ -66,11 +68,13 @@

        Evas

        -

        EFL Core Sample Evas shows how to use Evas object for creation basic UI elements (box, image, rectangle, etc.) and mapping transformations on Evas objects.

        +

        The Evas core sample shows how to use an Evas object for creating basic UI elements, such as box, image, and rectangle, and mapping transformations on Evas objects.

        +

        The following figure shows the Evas samples main screen.

        Figure: Evas samples main screen view

        -

        Evas Samples screen

        +

        Evas samples screen

        +

        The following Evas samples demonstrate the use of Evas objects:

        • Evas Box
        • Evas Event
        • @@ -84,22 +88,27 @@

          Elementary

          -

          EFL Core Sample Elementary show using of Elm_Transit for creation of transtion effects.

          +

          The Elementary core sample shows how to use Elm_Transit for creating transition effects.

          + +

          The following figure shows the Elementary sample main screen.

          -

          Figure: Elementary samples main screen view

          -

          Elementary Samples screen

          +

          Figure: Elementary sample main screen view

          +

          Elementary sample screen

          +

          The following Elementary sample demonstrates the use of Elementary:

          EDC Script

          -

          EFL Core Sample EDC Script shows how to use edc scripting language for creation UI components, their animations, relative positioning, emitting signals, mapping etc.

          +

          The EDC script core sample shows how to use the EDC scripting language for creating UI components, their animations, and relative positioning, and emitting signals and mapping.

          +

          The following figure shows the EDC script samples main screen.

          -

          Figure: EDC Script samples main screen view

          -

          EDC Script  Samples screen

          +

          Figure: EDC script samples main screen view

          +

          EDC script samples screen

          +

          The following EDC script samples demonstrate the use of EDC:

          • Alignment
          • Animation
          • diff --git a/org.tizen.sampledescriptions/html/mobile_n/eom_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/eom_sd_mn.htm new file mode 100644 index 0000000..6c02b6d --- /dev/null +++ b/org.tizen.sampledescriptions/html/mobile_n/eom_sd_mn.htm @@ -0,0 +1,280 @@ + + + + + + + + + + + + + EOM Sample Overview + + + + +
            +
            + +
            +
            +

            Mobile native

            +
            +

            EOM Sample Overview

            +

            The EOM sample application demonstrates how you can use the External Output Manager API to manage the EOM modes.

            + +

            The following figure illustrates the EOM modes. The default mode is mirror mode. If you connect an HDMI cable, the EOM server displays the main LCD image in an external output. If you want to display a different image, set the presentation mode. +

            + +

            Figure: EOM modes

            +

            EOM modes

            + +

            Implementation

            + +

            To use the EOM features:

            +
              +
            1. Initialize the EOM. +

              To use the External Output Manager API, include the eom.h header file and call the eom_init() function:

              + +
              +#include <eom.h>
              +
              +{
              +   eom_init();
              +}
              +
              +
            2. + +
            3. Get the output ID. +

              To retrieve the output ID, use the eom_get_eom_output_ids() function. You need the ID to get information about the output device and to control the external window.

              + +
              +int 
              +sample_get_output_id(const char *output_name)
              +{
              +   eom_output_id *output_ids = NULL;
              +   eom_output_id output_id = 0;
              +   eom_output_type_e output_type = EOM_OUTPUT_TYPE_UNKNOWN;
              +   int id_cnt = 0;
              +   int i;
              +
              +   output_ids = eom_get_eom_output_ids(&id_cnt);
              +   for (i = 0; i < id_cnt; i++) 
              +   {
              +      eom_get_output_type(output_ids[i], &output_type);
              +      if (!strncmp(output_name, "HDMI", 4)) 
              +      {
              +         if (output_type == EOM_OUTPUT_TYPE_HDMIA || output_type == EOM_OUTPUT_TYPE_HDMIB) 
              +         {
              +            output_id = output_ids[i];
              +            break;
              +         }
              +      }
              +   }
              +
              +   if (output_ids)
              +      free (output_ids);
              +	  
              +   return output_id;
              +}
              +
            4. + +
            5. Set the presentation mode. +

              To connect to an external output device in the presentation mode, use the eom_set_output_attribute() function to set the presentation mode priority attribute. If the setting is successful, the External Output Manager module uses the presentation mode when the external output device is connected. +If the function returns EOM_ERROR_NONE, the application can use the external output device.

              +
              +int 
              +set_attribute()
              +{
              +   eom_output_id output_id = 0;
              +   int ret;
              +
              +   output_id = sample_get_output_id("HDMI");
              +   ret = eom_set_output_attribute(output_id, EOM_OUTPUT_ATTRIBUTE_NORMAL);
              +   if (ret != EOM_ERROR_NONE) 
              +   {
              +      // Attribute setting failed, the external output device cannot be used
              +      // Deinitializing
              +      eom_deinit();
              +	  
              +      return -1;
              +   }
              +
              +   return 0;
              +}
              +
            6. + +
            7. Set the external window to display an image to the external output. +

              To set an external window, use the eom_set_output_window() function. This function moves the window to the external output and automatically resizes it to the best resolution of the external output.

              +

              Before calling this function, you must receive a success return from the eom_set_output_attribute() function.

              +
              +int 
              +make_external_window()
              +{
              +   Evas_Object *window;
              +   window = elm_win_add(NULL, "external_window", ELM_WIN_BASIC);
              +   if (eom_set_output_window(output_id, window) == EOM_ERROR_NONE)
              +      return 0;
              +   
              +   evas_object_del (window);
              +
              +   return -1;
              +}
              +
            8. + +
            9. Get the status of the external output device: +
              • +

                You can retrieve information about the external output device details with the following functions:

                +
                • eom_get_output_type(): Get the connection type of the external output.
                • +
                • eom_get_output_mode(): Get the external output mode.
                • +
                • eom_get_output_attribute(): Get the presentation mode priority attribute information.
                • +
                • eom_get_output_attribute_state(): Get the attribute state information: +
                    +
                  • ACTIVE: The application can use the external output.
                  • +
                  • INACTIVE: The application was disconnected from the external output.
                  • +
                  • LOST: The application cannot use the external output because another application has set the attribute. The application can no longer receive the attribute state.
                • +
                • eom_get_output_resolution(): Get the best resolution of the external output device.
                • +
                • eom_get_output_physical_size(): Get the physical size of the external output device.
                • +
              • + +
              • +

                You can receive notifications about state changes of the external output device through callback functions:

                + +
                1. You can define 4 callbacks (add, remove, mode change, and attribute change): +
                  +typedef struct
                  +{
                  +   Evas_Object *external_window;
                  +   int output_id;
                  +} SampleInfo;
                  +
                  +// Triggered when the external output is connected
                  +static void
                  +sample_notify_cb_output_add(eom_output_id output_id, void *user_data)
                  +{
                  +   SampleInfo *info = (SampleInfo*)user_data;
                  +   if (!info->external_window) 
                  +   {
                  +      // Create the external window
                  +      make_external_window(info->external_window);
                  +   }
                  +}
                  +
                  +// Triggered when the external output is disconnected
                  +static void
                  +sample_notify_cb_output_remove(eom_output_id output_id, void *user_data)
                  +{
                  +   SampleInfo *info = (SampleInfo*)user_data;
                  +   if (!info->external_window)
                  +   {
                  +      evas_object_del(info->external_window)
                  +      info->external_window = NULL;
                  +   }
                  +}
                  +
                  +// Triggered when the state of the EOM output attribute changes
                  +static void
                  +sample_notify_cb_attribute_changed(eom_output_id output_id, void *user_data)
                  +{
                  +   SampleInfo *info = (SampleInfo*)user_data;
                  +   eom_output_attribute_e attribute = EOM_OUTPUT_ATTRIBUTE_NONE;
                  +   eom_output_attribute_state_e state = EOM_OUTPUT_ATTRIBUTE_STATE_NONE;
                  +   
                  +   eom_get_output_attribute(output_id, &attribute);
                  +   eom_get_output_attribute_state(output_id, &state);
                  +   
                  +   if (state == EOM_OUTPUT_ATTRIBUTE_STATE_ACTIVE)
                  +   {
                  +      // Start displaying the image to the external output (info->external_window)
                  +   }
                  +   else if (state == EOM_OUTPUT_ATTRIBUTE_STATE_INACTIVE)
                  +   {
                  +      // Stop displaying the image
                  +      // Destroy the external_window
                  +   }
                  +   else if (state == EOM_OUTPUT_ATTRIBUTE_STATE_LOST)
                  +   {
                  +      // Stop displaying the image
                  +      // Destroy the external_window
                  +      // Remove the callbacks
                  +   }
                  +}
                  +
                2. + +
                3. Register the callbacks: +
                  +int 
                  +elm_main()
                  +{
                  +   SampleInfo *info;
                  +   eom_output_mode_e output_mode = EOM_OUTPUT_MODE_NONE;
                  +   int ret;
                  +   info = calloc(sizeof(SampleInfo));
                  +   
                  +   eom_init();
                  +   info->output_id = sample_get_output_id ("HDMI");
                  +   ret = eom_set_output_attribute(info->hdmi_output_id, EOM_OUTPUT_ATTRIBUTE_NORMAL);
                  +   if (ret != EOM_ERROR_NONE) 
                  +   {
                  +      // Cannot use the external output device
                  +      eom_deinit();
                  +   } 
                  +   else 
                  +   {
                  +      eom_get_output_mode(info->output_id, &output_mode);
                  +      if (output_mode != EOM_OUTPUT_MODE_NONE) 
                  +      {
                  +         // Create the external window
                  +         make_external_window(info->external_window);
                  +      }
                  +      // Add the callbacks
                  +      eom_set_output_added_cb(sample_notify_cb_output_add, info);
                  +      eom_set_output_removed_cb(sample_notify_cb_output_remove, info);
                  +      eom_set_attribute_changed_cb(sample_notify_cb_attribute_changed, info);
                  +   }
                  +   elm_run();
                  +}
                  +
                4. + +
                5. When no longer needed, delete the callbacks and call the eom_deinit() function: +
                  +static void 
                  +_destroy()
                  +{
                  +   eom_unset_output_added_cb(sample_notify_cb_output_add);
                  +   eom_unset_output_removed_cb(sample_notify_cb_output_remove);
                  +   eom_unset_attribute_changed_cb(sample_notify_cb_attribute_changed);
                  +   eom_deinit();
                  +}
                  +
                6. +
            10. +
            + + + + + + +
            + +Go to top + + + + + + + \ No newline at end of file diff --git a/org.tizen.sampledescriptions/html/mobile_n/evas_gl_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/evas_gl_sd_mn.htm index 400679e..a07c453 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/evas_gl_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/evas_gl_sd_mn.htm @@ -93,7 +93,7 @@ static void init_evasgl(appdata_s *ad)    ad->cfg->options_bits = EVAS_GL_OPTIONS_NONE;    // Get the window size -   Evas_Coord w,h; +   Evas_Coord w, h;    evas_object_geometry_get(ad->win, NULL, NULL, &ad->surface_w, &ad->surface_h);    // Get the Evas GL handle for doing GL things @@ -186,7 +186,7 @@ static void img_pixel_cb(void *data, Evas_Object *obj)       init_shaders(ad);       glGenBuffers(1, &ad->vbo);       glBindBuffer(GL_ARRAY_BUFFER, ad->vbo); -      glBufferData(GL_ARRAY_BUFFER, 3 * 72 * 4, cube_vertices,GL_STATIC_DRAW); +      glBufferData(GL_ARRAY_BUFFER, 3 * 72 * 4, cube_vertices, GL_STATIC_DRAW);       init_matrix(view);       if (ad->surface_w > ad->surface_h)       { @@ -218,7 +218,7 @@ static void img_pixel_cb(void *data, Evas_Object *obj)    glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, sizeof(float) * 6, (void*)(sizeof(float)*3));    glEnableVertexAttribArray(1); -   glUniformMatrix4fv( glGetUniformLocation(ad->program, "mvpMatrix"), 1, GL_FALSE, mvp); +   glUniformMatrix4fv(glGetUniformLocation(ad->program, "mvpMatrix"), 1, GL_FALSE, mvp);    glDrawArrays(GL_TRIANGLES, 0, 36);    glFlush(); @@ -227,7 +227,10 @@ static void img_pixel_cb(void *data, Evas_Object *obj)
          • Add animators. -

            The scene does not get updated unless the object is marked as such. Games usually use an animator to have a regular update of the scene. The following is an example for a default update refresh rate. The animator callback function is also triggered when the display is off. So you should use ecore_animator_freeze() and ecore_animator_thaw() in app_pause_cb, app_resume_cb for power saving.

            +

            The scene does not get updated unless the object is marked as such. Games usually use an animator to have a regular update of the scene. The following example shows the default update refresh rate.

            + +

            The animator callback function is also triggered when the display is off. Use the ecore_animator_freeze() and ecore_animator_thaw() functions in the app_pause_cb and app_resume_cb callbacks for power saving.

            +
             static Eina_Bool animate_cb(void *data)
             {
            @@ -305,4 +308,4 @@ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga
             
             
             
            -
            +
            \ No newline at end of file
            diff --git a/org.tizen.sampledescriptions/html/mobile_n/event_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/event_sd_mn.htm
            index 456f4dc..4259b6f 100644
            --- a/org.tizen.sampledescriptions/html/mobile_n/event_sd_mn.htm
            +++ b/org.tizen.sampledescriptions/html/mobile_n/event_sd_mn.htm
            @@ -19,105 +19,97 @@
             
             
            -

            Mobile native

            +

            Mobile native

            Event Sample Overview

            -

            - The Tizen API's Event module provides a set of functions enabling listeners creation for specified system and custom events. In order to receive a custom event via created listener, one must be created - and published. This sample application gives an example of custom events creation and publishing as well as the listening for both types of events. -

            -

            The figure below illustrates the view of the application.

            -

            Figure: Event application screens.

            -

            - System events view - Custom events view - Received custom event view +

            The Event sample application demonstrates how you can create listeners for specified system and custom events, and listen to both types of events. To receive a custom event using a listener, the listener must be created and published.

            +

            The following figure illustrates the application view.

            +

            Figure: Event application screens

            +

            + System events view + Custom events view + Received custom event view

            -

            The sample application provides a user interface for previewing available events and their status: +

            The sample application provides a user interface for previewing available events and their status:

              -
            • system events: +
            • System events:
                -
              • battery level and charger status,
              • -
              • USB and earjack status,
              • -
              • display state and auto-rotation mode,
              • -
              • system boot and shutdown status,
              • -
              • memory status,
              • -
              • Wi-Fi, Bluetooth, mobile data and roaming state,
              • -
              • location, GPS and NPS state,
              • -
              • incoming message status,
              • -
              • time, zone and hour format change,
              • -
              • language and region format change,
              • -
              • silent and vibration mode change,
              • -
              • font change;
              • +
              • Battery level and charger status
              • +
              • USB and earjack status
              • +
              • Display state and auto-rotation mode
              • +
              • System boot and shutdown status
              • +
              • Memory status
              • +
              • Wi-Fi, Bluetooth, mobile data, and roaming state
              • +
              • Location, GPS, and NPS state
              • +
              • Incoming message status
              • +
              • Time, time zone, and hour format change
              • +
              • Language and region format change
              • +
              • Silent and vibration mode change
              • +
              • Font change
            • -
            • custom events: +
            • Custom events:
                -
              • custom events are received once they are registered and published by the user via "Custom events" tab.
              • +
              • Custom events are received once they are registered and published by the user using the Custom events tab.
            - The structure of the user interface is depicted below (EDJE layout scripts are used). -

            -

            Figure: Event main layout structure.

            -

            - Event main layout structure -

            -

            - The PART_MAIN_CONTENT swallow is used as a container for any of the below layouts. -

            -

            Figure: Event tabs layout structure.

            -

            - Event tabs layout structure -

            -

            - The final application's view is created by embedding proper widgets into the layouts depicted above. The resulting UI views are shown below. -

            -

            Figure: Event application's UI view.

            -

            - Event application's UI view -

            -
            - The application's workflow can be divided into three logical pipelines: +

            The following figure shows the structure of the user interface. EDJE layout scripts are used.

            +

            Figure: Event main layout structure

            +

            + Event main layout structure +

            +

            The PART_MAIN_CONTENT swallow is used as a container for both available layouts.

            +

            Figure: Event tab layout structure

            +

            + Event tab layout structure +

            +

            The final application view is created by embedding the proper components into the layouts depicted above. The resulting UI views are shown in the following figure.

            +

            Figure: Event application UI view

            +

            + Event application UI view +

            +

            The application workflow can be divided into 3 logical pipelines:

              -
            • application startup,
            • -
            • system events handling,
            • -
            • custom event creation, publishing and receiving,
            • +
            • Application startup
            • +
            • System event handling
            • +
            • Custom event creation, publishing, and receiving
            - which can be described by the following figure: -

            -

            Figure: Event application workflow.

            -

            - Application workflow +

            The following figure describes the workflow.

            +

            Figure: Application workflow

            +

            + Application workflow

            -

            Prerequisites

            -

            - To ensure proper application execution, the following privileges must be set: +

            Prerequisites

            +

            To ensure proper application execution, the following privileges must be set:

              -
            • http://tizen.org/privilege/network.get,
            • -
            • http://tizen.org/privilege/message.read,
            • -
            • http://tizen.org/privilege/display.
            • +
            • http://tizen.org/privilege/network.get
            • +
            • http://tizen.org/privilege/message.read
            • +
            • http://tizen.org/privilege/display
            -

            Implementation

            -

            Type definitions

            +

            Type Definitions

            + +

            The following code shows the structures used as placeholders for various application data:

            -/* The general structure for application's data storage. */
            -struct __appdata {
            +// General structure for application data storage
            +struct 
            +__appdata 
            +{
                viewdata_s view;
             };
            -
            -
            -/* All the Evas_Object objects represent UI widgets. */
            -struct __viewdata {
            +// All the Evas_Object objects represent UI components
            +struct 
            +__viewdata 
            +{
                Evas_Object *win;
                Evas_Object *conform;
                Evas_Object *layout_main_panel;
            @@ -131,116 +123,110 @@ struct __viewdata {
                Evas_Object *custom_ev_submit;
                Evas_Object *custom_ev_list;
                Elm_Genlist_Item_Class *custom_ev_itc;
            -   /* The structure of callbacks handlers used by the Controller module to establish interaction with the Model module. */
            +   // Structure of callbacks handlers used by the Controller module to establish interaction with the Model module
                viewcallbacks_s callbacks;
             };
             
             typedef struct __viewdata viewdata_s;
            -
            -
            -/* All the callbacks handlers are hooked by the Controller module in order to relate the control flow between the View and the Model modules. */
            -struct __viewcallbacks {
            -   /* The callback handler is invoked when the custom event needs to be published. */
            +// All the callback handlers are hooked by the Controller module to relate the control flow between the View and the Model modules
            +struct 
            +__viewcallbacks 
            +{
            +   // Invoked when the custom event needs to be published
                event_do_publish_cb do_publish_cb;
            -   /* The callback handler is invoked at the initialization phase to obtain all the information about system events for UI generation purpose. */
            +   // Invoked at the initialization phase to obtain all the information about system events for UI generation purpose
                event_get_system_info_cb get_system_info_cb;
            -   /* The callback handler is invoked when the user requests to register the custom event handler. */
            +   // Invoked when the user requests to register a custom event handler
                event_set_custom_info_cb set_custom_info_cb;
             };
             
             typedef struct __viewcallbacks viewcallbacks_s;
            -
            -
            -/* The definition of callbacks handlers declared in the viewcallbacks_s structure. */
            -   typedef void (* event_do_publish_cb)(const char *event_name);
            -   typedef bool (* event_get_system_info_cb)(int index, void **ev_info);
            -   typedef bool (* event_set_custom_info_cb)(const char *event_name, void **ev_info);
            -
            +// Definition of callback handlers declared in the viewcallbacks_s structure +typedef void (* event_do_publish_cb)(const char *event_name); +typedef bool (* event_get_system_info_cb)(int index, void **ev_info); +typedef bool (* event_set_custom_info_cb)(const char *event_name, void **ev_info); -
            -/* The structure keeps all the event related information. */
            -struct __system_ev_info {
            -   /* The type of the event - used only for the system events specification.
            -      The type is defined as an enum whose values represents all available system events. */
            +// Structure keeps all the event-related information
            +struct 
            +__system_ev_info 
            +{
            +   // Type of the event - used only for the system events specification
            +   // Type is defined as an enum whose values represent all available system events
                event_type_t type;
            -   /* The name of the event. */
            +   // Name of the event
                char *name;
            -   /* The readable description of the event. */
            +   // Readable description of the event
                char *desc;
            -   /* The status of the event. */
            +   // Status of the event
                char *status_1;
            -   /* The status of the event. Used if the event contains up to two different status information:
            -      - Incoming message type / id; */
            +   // Status of the event. Used if the event contains up to 2 different status information:
            +   // Incoming message type / ID
                char *status_2;
            -   /* The status of the event. Used if the event contains up to three different status information:
            -      - Bluetooth state / LE state / transferring state; */
            +   // Status of the event. Used if the event contains up to 3 different status information:
            +   // Bluetooth state / LE state / transferring state
                char *status_3;
            -   /* Event's callback handler function. */
            +   // Event callback handler function
                event_handler_h event_h;
             };
             
             typedef struct __system_ev_info system_ev_info_s;
             typedef struct __system_ev_info custom_ev_info_s;
            -
            -
            -/* Types of system events defined for source code simplification.
            -   This type definition introduces event's name mapping to its numerical representation. */
            -typedef enum {
            -   ET_BATTERY_CHARGER_STATUS,  /* SYSTEM_EVENT_BATTERY_CHARGER_STATUS */
            -   ET_BATTERY_LEVEL_STATUS,    /* SYSTEM_EVENT_BATTERY_LEVEL_STATUS */
            -   ET_USB_STATUS,              /* SYSTEM_EVENT_USB_STATUS */
            -   ET_EARJACK_STATUS,          /* SYSTEM_EVENT_EARJACK_STATUS */
            -   ET_DISPLAY_STATE,           /* SYSTEM_EVENT_DISPLAY_STATE */
            -   ET_BOOT_COMPLETED,          /* SYSTEM_EVENT_BOOT_COMPLETED */
            -   ET_SYSTEM_SHUTDOWN,         /* SYSTEM_EVENT_SYSTEM_SHUTDOWN */
            -   ET_LOW_MEMORY,              /* SYSTEM_EVENT_LOW_MEMORY */
            -   ET_WIFI_STATE,              /* SYSTEM_EVENT_WIFI_STATE */
            -   ET_BT_STATE,                /* SYSTEM_EVENT_BT_STATE */
            -   ET_LOCATION_ENABLE_STATE,   /* SYSTEM_EVENT_LOCATION_ENABLE_STATE */
            -   ET_GPS_ENABLE_STATE,        /* SYSTEM_EVENT_GPS_ENABLE_STATE */
            -   ET_NPS_ENABLE_STATE,        /* SYSTEM_EVENT_NPS_ENABLE_STATE */
            -   ET_INCOMMING_MSG,           /* SYSTEM_EVENT_INCOMMING_MSG */
            -   ET_TIME_CHANGED,            /* SYSTEM_EVENT_TIME_CHANGED */
            -   ET_TIME_ZONE,               /* SYSTEM_EVENT_TIME_ZONE */
            -   ET_HOUR_FORMAT,             /* SYSTEM_EVENT_HOUR_FORMAT */
            -   ET_LANGUAGE_SET,            /* SYSTEM_EVENT_LANGUAGE_SET */
            -   ET_REGION_FORMAT,           /*SYSTEM_EVENT_REGION_FORMAT  */
            -   ET_SILENT_MODE,             /* SYSTEM_EVENT_SILENT_MODE */
            -   ET_VIBRATION_STATE,         /* SYSTEM_EVENT_VIBRATION_STATE */
            -   ET_SCREEN_AUTOROTATE_STATE, /* SYSTEM_EVENT_SCREEN_AUTOROTATE_STATE */
            -   ET_MOBILE_DATA_STATE,       /* SYSTEM_EVENT_MOBILE_DATA_STATE */
            -   ET_DATA_ROAMING_STATE,      /* SYSTEM_EVENT_DATA_ROAMING_STATE */
            -   ET_FONT_SET                 /* SYSTEM_EVENT_FONT_SET */
            +// Types of system events defined for source code simplification
            +// This type definition introduces event name mapping to its numerical representation
            +typedef enum 
            +{
            +   ET_BATTERY_CHARGER_STATUS, // SYSTEM_EVENT_BATTERY_CHARGER_STATUS
            +   ET_BATTERY_LEVEL_STATUS, // SYSTEM_EVENT_BATTERY_LEVEL_STATUS
            +   ET_USB_STATUS, //SYSTEM_EVENT_USB_STATUS
            +   ET_EARJACK_STATUS, // SYSTEM_EVENT_EARJACK_STATUS
            +   ET_DISPLAY_STATE, // SYSTEM_EVENT_DISPLAY_STATE
            +   ET_BOOT_COMPLETED, // SYSTEM_EVENT_BOOT_COMPLETED
            +   ET_SYSTEM_SHUTDOWN, // SYSTEM_EVENT_SYSTEM_SHUTDOWN
            +   ET_LOW_MEMORY, // SYSTEM_EVENT_LOW_MEMORY
            +   ET_WIFI_STATE, // SYSTEM_EVENT_WIFI_STATE
            +   ET_BT_STATE, // SYSTEM_EVENT_BT_STATE
            +   ET_LOCATION_ENABLE_STATE, // SYSTEM_EVENT_LOCATION_ENABLE_STATE
            +   ET_GPS_ENABLE_STATE, // SYSTEM_EVENT_GPS_ENABLE_STATE
            +   ET_NPS_ENABLE_STATE, // SYSTEM_EVENT_NPS_ENABLE_STATE
            +   ET_INCOMMING_MSG, // SYSTEM_EVENT_INCOMMING_MSG
            +   ET_TIME_CHANGED, // SYSTEM_EVENT_TIME_CHANGED
            +   ET_TIME_ZONE, // SYSTEM_EVENT_TIME_ZONE
            +   ET_HOUR_FORMAT, // SYSTEM_EVENT_HOUR_FORMAT
            +   ET_LANGUAGE_SET, // SYSTEM_EVENT_LANGUAGE_SET
            +   ET_REGION_FORMAT, // SYSTEM_EVENT_REGION_FORMAT
            +   ET_SILENT_MODE, // SYSTEM_EVENT_SILENT_MODE
            +   ET_VIBRATION_STATE, // SYSTEM_EVENT_VIBRATION_STATE
            +   ET_SCREEN_AUTOROTATE_STATE, // SYSTEM_EVENT_SCREEN_AUTOROTATE_STATE
            +   ET_MOBILE_DATA_STATE, // SYSTEM_EVENT_MOBILE_DATA_STATE
            +   ET_DATA_ROAMING_STATE, // SYSTEM_EVENT_DATA_ROAMING_STATE
            +   ET_FONT_SET // SYSTEM_EVENT_FONT_SET
             } event_type_t;
             
            -

            - The Model module declares two arrays: +

            The Model module declares 2 arrays:

            • static system_ev_info_s __system_ev[__SYSTEM_EVENT_COUNT_MAX];
            • static custom_ev_info_s __custom_ev[__CUSTOM_EVENT_COUNT_MAX];
            - which are used to store system and custom events information, respectively. The __SYSTEM_EVENT_COUNT_MAX and - __CUSTOM_EVENT_COUNT_MAX values are both set to 25 as an upperbound limit. -

            +

            The arrays are used to store system and custom event information. The __SYSTEM_EVENT_COUNT_MAX and __CUSTOM_EVENT_COUNT_MAX values are both set to 25 as the upperbound limit.

            -

            Application initialization

            - -

            - The entire application's life-cycle is implemented in the main source file, using a common Tizen application structure: -

            +

            Application Initialization

            +

            To initialize the application:

            +
              +
            1. Implement the entire application life-cycle in the main source file, using a common Tizen application structure:
              -int main(int argc, char *argv[])
              +int 
              +main(int argc, char *argv[])
               {
                  appdata_s ad = {{0,},};
                  int ret = 0;
               
                  ui_app_lifecycle_callback_s event_callback;
              -   app_event_handler_h handlers[5] = {NULL, };
              +   app_event_handler_h handlers[5] = {NULL,};
               
                  event_callback.create = __create_app;
                  event_callback.terminate = __terminate_app;
              @@ -248,56 +234,47 @@ int main(int argc, char *argv[])
                  event_callback.resume = __resume_app;
                  event_callback.app_control = __control_app;
               
              -   ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, __ui_app_low_battery, &ad);
              -   ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, __ui_app_low_memory, &ad);
              -   ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, __ui_app_orient_changed, &ad);
              -   ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, __ui_app_lang_changed, &ad);
              -   ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, __ui_app_region_changed, &ad);
              +   ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, __ui_app_low_battery, &ad);
              +   ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, __ui_app_low_memory, &ad);
              +   ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, __ui_app_orient_changed, &ad);
              +   ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, __ui_app_lang_changed, &ad);
              +   ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, __ui_app_region_changed, &ad);
               
              -   ret = ui_app_main(argc, argv, &event_callback, &ad);
              +   ret = ui_app_main(argc, argv, &event_callback, &ad);
                  if (ret != APP_ERROR_NONE)
              -      controller_log(DLOG_ERROR, "Function ui_app_main() failed with error = %d", ret);
              +      controller_log(DLOG_ERROR, "Function ui_app_main() failed with error = %d", ret);
               
                  return ret;
               }
               
              - -

              - The application's initilization procedure is executed in __create_app() callback function, which is invoked on application's startup. -

              - +
            2. +
            3. Execute the application initialization process in the __create_app() callback function, which is invoked on application startup:
              -static bool __create_app(void *data)
              +static bool 
              +__create_app(void *data)
               {
                  appdata_s *ad = (appdata_s *)data;
               
              -   return controller_init(&ad->view);
              +   return controller_init(&ad->view);
               }
               
              - -

              - Finally, the controller_init() function is invoked, which controls the entire initialization process - (see the code snippet below for details). This function is responsible for attaching callback functions invoked by the View module in order to perform required tasks: +

            4. +
            5. Invoke the controller_init() function, which controls the entire initialization process. This function is responsible for attaching the callback functions invoked by the View module to perform the required tasks:
                -
              • __controller_event_do_publish_cb() - publish the custom event registered by the user;
              • -
              • __controller_event_get_system_info_cb() - query system's event information to populate the list with relevant data;
              • -
              • __controller_event_set_custom_info_cb() - register event handler to be invoked on custom event occurance.
              • +
              • __controller_event_do_publish_cb(): Publish the custom event registered by the user
              • +
              • __controller_event_get_system_info_cb(): Query system event information to populate the list with relevant data
              • +
              • __controller_event_set_custom_info_cb(): Register the event handler to be invoked on custom event occurrence
              - The first and the third callback function is called when the user performs appropriate action from the application's UI. The second callback function is called during the application's UI creation. - The application's UI is afterwards created by the view_create_base_gui() function. Its source code is not listed - within this documentation, as it is not a subject of this document. At the end of the initialization phase, a callback function is attached to each of the available system events within the - __add_system_event_handlers() function (see the function's listing below). -

              -

              - For reference of all model related functions that are not listed here refer to the Model section. -

              - +

              The first and the third callback functions are called when the user performs an appropriate action in the application UI. The second callback function is called during the application UI creation.

              +

              The application UI is created with the view_create_base_gui() function. Its source code is not listed within this topic. At the end of the initialization phase, a callback function is attached to each of the available system events within the __add_system_event_handlers() function.

              +

              For a reference of all model-related functions not listed here, see Model.

              -bool controller_init(viewdata_s *vd)
              +bool 
              +controller_init(viewdata_s *vd)
               {
              -   vd->callbacks.do_publish_cb = __controller_event_do_publish_cb;
              -   vd->callbacks.get_system_info_cb = __controller_event_get_system_info_cb;
              -   vd->callbacks.set_custom_info_cb = __controller_event_set_custom_info_cb;
              +   vd->callbacks.do_publish_cb = __controller_event_do_publish_cb;
              +   vd->callbacks.get_system_info_cb = __controller_event_get_system_info_cb;
              +   vd->callbacks.set_custom_info_cb = __controller_event_set_custom_info_cb;
               
                  if (!view_create_base_gui(vd))
                     return false;
              @@ -306,57 +283,50 @@ bool controller_init(viewdata_s *vd)
               
                  return true;
               }
              -
              -
               static void __add_system_event_handlers(void)
               {
                  int i;
              -   /* Iteration over all available system events. */
              -   for (i = 0; i < model_get_system_events_count(); i++) {
              +   // Iteration over all available system events
              +   for (i = 0; i < model_get_system_events_count(); i++) 
              +   {
                     system_ev_info_s *ev_info = NULL;
               
              -      /* System's event information structure is obtained. */
              -      if (!model_get_system_event_info(i, &ev_info))
              +      // System event information structure is obtained
              +      if (!model_get_system_event_info(i, &ev_info))
                        continue;
               
              -      /* Event's handler is created and a callback function is attached. */
              +      // Event handler is created and a callback function is attached
                     model_add_system_event_handler(ev_info, __system_event_cb, (void *)ev_info);
                  }
               }
               
              +
            6. -

              - The implementation of callback functions attached in the controller_init() function is described below. -

              - +
            7. Attach the implementation of the callback functions in the controller_init() function:
              -static void __controller_event_do_publish_cb(const char *event_name)
              +static void 
              +__controller_event_do_publish_cb(const char *event_name)
               {
              -   controller_log(DLOG_INFO, "Event publishing: '%s'.", event_name);
              +   controller_log(DLOG_INFO, "Event publishing: '%s'.", event_name);
               
                  model_publish_event(event_name);
               }
               
              +
            8. -

              - The __controller_event_get_system_info_cb() is invoked by the View module as long as the function returns - true value. Each time the function is called with incremented index - value. As a result, the system's event information ev_info, stored at specified - index, is returned. The requested data structure is obtained with the - model_get_system_event_info() function. -

              - +
            9. The __controller_event_get_system_info_cb() callback is invoked by the View module as long as the function returns true. Each time, the function is called with an incremented index value. As a result, the system event information ev_info, stored at specified index, is returned. The requested data structure is obtained with the model_get_system_event_info() function.

              -static bool __controller_event_get_system_info_cb(int index, void **ev_info)
              +static bool 
              +__controller_event_get_system_info_cb(int index, void **ev_info)
               {
                  *ev_info = NULL;
               
              -   if (index >= model_get_system_events_count())
              +   if (index >= model_get_system_events_count())
                     return false;
               
                  system_ev_info_s *ev_info_tmp = NULL;
              -   if (!model_get_system_event_info(index, &ev_info_tmp))
              +   if (!model_get_system_event_info(index, &ev_info_tmp))
                     return false;
               
                  *ev_info = (system_ev_info_s *)ev_info_tmp;
              @@ -364,128 +334,121 @@ static bool __controller_event_get_system_info_cb(int index, void **ev_info)
                  return true;
               }
               
              - -

              - The __controller_event_set_custom_info_cb() callback function is invoked by the View model when the user requests to register - custom event. If the registration procedure succeeds (see the __controller_register_custom_event() function's implementation for - details), the reference to the event's information structure is returned via the ev_info argument. -

              - +
            10. +
            11. +

              The __controller_event_set_custom_info_cb() callback is invoked by the View model when the user requests to register custom event. If the registration procedure succeeds (see the __controller_register_custom_event() function implementation for details), the reference to the event information structure is returned using the ev_info parameter.

              -static bool __controller_event_set_custom_info_cb(const char *event_name, void **ev_info)
              +static bool 
              +__controller_event_set_custom_info_cb(const char *event_name, void **ev_info)
               {
                  *ev_info = NULL;
               
                  custom_ev_info_s *ev_info_tmp = NULL;
              -   if (!__controller_register_custom_event(event_name, &ev_info_tmp))
              +   if (!__controller_register_custom_event(event_name, &ev_info_tmp))
                     return false;
               
                  *ev_info = (custom_ev_info_s *)ev_info_tmp;
               
                  return true;
               }
              -
              -
              -bool __controller_register_custom_event(const char *event_name, custom_ev_info_s **ev_info)
              +bool 
              +__controller_register_custom_event(const char *event_name, custom_ev_info_s **ev_info)
               {
                  *ev_info = NULL;
                  bool name_exists = false;
               
              -   /* The event's name, assigned by the user, must be unique, so we have to check if it does not exist yet. */
              -   if (!model_check_event_exists(event_name, &name_exists))
              +   // Event name, assigned by the user, must be unique, so you have to check whether it exists yet
              +   if (!model_check_event_exists(event_name, &name_exists))
                     return false;
               
              -   /* If there is already an event registered with the given name, then the function fails. */
              -   if (name_exists) {
              -      controller_log(DLOG_WARN, "Custom event '%s' already registered.", event_name);
              +   // If there is already an event registered with the given name, the function fails
              +   if (name_exists) 
              +   {
              +      controller_log(DLOG_WARN, "Custom event '%s' already registered.", event_name);
              +
                     return false;
                  }
               
              -   /* Otherwise new event's information structure is created. */
              +   // Otherwise new event information structure is created
                  if (!model_create_custom_event_info(event_name, ev_info))
                     return false;
               
              -   /* Finally, the event's callback function is assigned, to be invoked when the event occurs. */
              +   // Finally, the event callback function is assigned, to be invoked when the event occurs
                  if (!model_add_custom_event_handler(*ev_info, __custom_event_cb, (void *)(*ev_info)))
                     return false;
               
              -   controller_log(DLOG_INFO, "Custom event registered: '%s'.", (*ev_info)->name);
              +   controller_log(DLOG_INFO, "Custom event registered: '%s'.", (*ev_info)->name);
               
                  return true;
               }
               
              +
            12. +
            -

            Application termination

            +

            Application Termination

            -

            - When the application is terminated, the __terminate_app() callback function is called (see the code snippet below). -

            +

            To terminate the application:

            +
              +
            1. When the application is terminated, call the __terminate_app() callback function:
              -static void __terminate_app(void *data)
              +static void 
              +__terminate_app(void *data)
               {
                  appdata_s *ad = (appdata_s *)data;
               
              -   controller_finit(&ad->view);
              +   controller_finit(&ad->view);
               }
               
              +
            2. -

              - All the resources, allocated previously, are released with controller_finit() function, which is responsible for destroying the UI - and detaching system and custom events handlers. -

              - +
            3. Release all previously allocated resources with the controller_finit() function, which is responsible for destroying the UI and detaching system and custom events handlers:
              -void controller_finit(viewdata_s *vd)
              +void 
              +controller_finit(viewdata_s *vd)
               {
                  view_destroy_base_gui(vd);
                  model_finit();
               }
               
              +
            4. -

              - As the UI is not a subject for this documentation, the implementation of the view_destroy_base_gui() function is ommited. - Detaching events handlers is performed in the Model module within the model_finit() function, which calls two internal functions: - __model_release_system_events() and __model_release_custom_events(). -

              - +
            5. Detach the events handlers in the Model module within the model_finit() function, which calls 2 internal functions: __model_release_system_events() and __model_release_custom_events(). +

              As the UI is not a subject for this topic, the implementation of the view_destroy_base_gui() function is omitted.

              -void model_finit(void)
              +void 
              +model_finit(void)
               {
                  __model_release_system_events();
                  __model_release_custom_events();
               }
               
              - -

              - The events handlers detaching procedure relies on __model_remove_event_handler() function (for reference see the - Model section) for each attached event handler regardless of its type (system or custom). The related resources are freed with the - __model_free_system_event_info() and - __model_free_custom_event_info() functions. -

              - +
            6. +
            7. The events handler detaching procedure relies on the __model_remove_event_handler() function for each attached event handler regardless of its type (system or custom). The related resources are freed with the __model_free_system_event_info() and __model_free_custom_event_info() functions. For reference, see Model.
              -static void __model_release_system_events(void)
              +static void 
              +__model_release_system_events(void)
               {
                  int i;
              -   for (i = 0; i < __SYSTEM_EVENT_COUNT_MAX; i++) {
              -      system_ev_info_s *ev_info = &__system_ev[i];
              +   for (i = 0; i < __SYSTEM_EVENT_COUNT_MAX; i++) 
              +   {
              +      system_ev_info_s *ev_info = &__system_ev[i];
               
              -      __model_remove_event_handler(ev_info->event_h);
              +      __model_remove_event_handler(ev_info->event_h);
                     __model_free_system_event_info(ev_info);
                  }
               }
              -
              -
              -static void __model_release_custom_events(void)
              +static void 
              +__model_release_custom_events(void)
               {
                  int i;
              -   for (i = 0; i < __custom_ev_count; i++) {
              -      custom_ev_info_s *ev_info = &__custom_ev[i];
              +   for (i = 0; i < __custom_ev_count; i++) 
              +   {
              +      custom_ev_info_s *ev_info = &__custom_ev[i];
               
              -      __model_remove_event_handler(ev_info->event_h);
              +      __model_remove_event_handler(ev_info->event_h);
                     __model_free_custom_event_info(ev_info);
                  }
               
              @@ -493,345 +456,316 @@ static void __model_release_custom_events(void)
               }
               
              -

              - The __model_free_system_event_info() and - __model_free_custom_event_info() functions are not listed here, as their implementation is based only on - free() function used to free the previously allocated memory. -

              - -

              System events

              +

              The __model_free_system_event_info() and __model_free_custom_event_info() functions are not listed here, as their implementation is based only on the free() function used to free the previously allocated memory.

              +
            8. +
            -

            - After all the system events are successfully hooked in the initialization phase, one can start to handle them once they occur. This is done with the - __system_event_cb() callback function registered within the - __add_system_event_handlers() function (see the Application's initialization for reference). -

            +

            System Events

            +

            After all the system events are successfully hooked in the initialization phase, they can be handled once they occur. This is done with the __system_event_cb() callback function registered within the __add_system_event_handlers() function. For reference, see Application Initialization.

            -static void __system_event_cb(const char *event_name, bundle *event_data, void *user_data)
            +static void 
            +__system_event_cb(const char *event_name, bundle *event_data, void *user_data)
             {
                system_ev_info_s *ev_info = (system_ev_info_s *)user_data;
                char *status_1 = NULL;
                char *status_2 = NULL;
                char *status_3 = NULL;
             
            -   controller_log(DLOG_INFO, "System event '%s' occured.", event_name);
            -
            -   switch (ev_info->type) {
            -   case ET_#event_type#:
            -      if (!model_get_bundle_str(event_data, EVENT_KEY_#name_1#, &status_1) ||
            -         !model_get_bundle_str(event_data, EVENT_KEY_#name_2#, &status_2) ||
            -         !model_get_bundle_str(event_data, EVENT_KEY_#name_3#, &status_3))
            +   controller_log(DLOG_INFO, "System event '%s' occurred.", event_name);
            +
            +   switch (ev_info->type) 
            +   {
            +      case ET_<event_type>:
            +         if (!model_get_bundle_str(event_data, EVENT_KEY_<name_1>, &status_1) ||
            +            !model_get_bundle_str(event_data, EVENT_KEY_<name_2>, &status_2) ||
            +            !model_get_bundle_str(event_data, EVENT_KEY_<name_3>, &status_3))
            +            return;
            +         break;
            +      default:
                      return;
            -      break;
            -   default:
            -      return;
                }
             
            -   /* The status_1 ... status_3 char buffers are copied to the ev_info->status_1 ... ev_info->status_3 */
            -   model_assign_event_status(&ev_info->status_1, status_1);
            -   model_assign_event_status(&ev_info->status_2, status_2);
            -   model_assign_event_status(&ev_info->status_3, status_3);
            +   // status_1 ... status_3 char buffers are copied to the ev_info->status_1 ... ev_info->status_3
            +   model_assign_event_status(&ev_info->status_1, status_1);
            +   model_assign_event_status(&ev_info->status_2, status_2);
            +   model_assign_event_status(&ev_info->status_3, status_3);
             
                view_update_system_events();
             }
             
            -

            - All the information carried by the event is stored in a bundle object structure (event_data) followed by the event's name - (event_name). In order to avoid using inefficient strings comparison function for events distinguishing, the custom - event's type was introduced (see the event_type_t definition in the Type definitions section). - These types are statically preassigned. Based on the value of the type member of the - ev_info structure of system_ev_info_s data type, - the events are distinguished and the event state is obtained from the bundle object. -
            - Each event name and relevant bundle keys are defined by the Event API, which are used here to extract event's status. For this purpose, the - model_get_bundle_str() function is used. For the relation between - the ET_#event_type# and EVENT_KEY_#name_1# - ... EVENT_KEY_#name_3#, see the Event API reference. -
            - Once the valid event's status is obtained, the UI is updated to reflect the current events state using the view_update_system_events() - function. -

            - -

            Custom events

            +

            All the information carried by the event is stored in a bundle object structure (event_data) followed by the event name (event_name). To avoid using an inefficient string comparison function for event distinguishing, the custom event type is used (see the event_type_t definition in the Type Definitions section). These types are statically preassigned. Based on the value of the type member of the ev_info structure of the system_ev_info_s data type, the events are distinguished and the event state is obtained from the bundle object.

            +

            Each event name and the relevant bundle keys are defined by the Event API. To extract the event status, the model_get_bundle_str() function is used. For the relation between the ET_<event_type> and EVENT_KEY_<name_1> ... EVENT_KEY_<name_3>, see the Event API.

            +

            Once the valid event status is obtained, the UI is updated to reflect the current event state using the view_update_system_events() function.

            -

            - Once the user registers a new event using "Register event" button, the __controller_register_custom_event() function is invoked - in a __controller_event_set_custom_info_cb() callback function triggered by the - __view_register_event_button_clicked_cb() function attached to the "Register event" button. In order to clarify the entire - procedure, all the mentioned functions are listed below in the order of invocation. -

            +

            Custom Events

            +

            To manage custom events:

            +
              +
            1. +

              Once the user registers a new event using the Register event button, the __controller_register_custom_event() function is invoked in a __controller_event_set_custom_info_cb() callback function triggered by the __view_register_event_button_clicked_cb() function attached to the Register event button. To clarify the process, all the mentioned functions are listed in the following example in the order of invocation.

              -/* This callback function is invoked on "Register event" button press. */
              -static void __view_register_event_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
              +// Invoked on "Register event" button press
              +static void 
              +__view_register_event_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
               {
                  viewdata_s *vd = (viewdata_s *)data;
                  custom_ev_info_s *ev_info = NULL;
                  char *event_name = NULL;
               
              -   /* The event's name input by the user is obtained. */
              -   if (!__view_get_custom_event_name(vd, &event_name)) {
              -      controller_log(DLOG_WARN, "The custom event has no name assigned.");
              +   // Event name input by the user is obtained
              +   if (!__view_get_custom_event_name(vd, &event_name)) 
              +   {
              +      controller_log(DLOG_WARN, "The custom event has no name assigned.");
              +
                     return;
                  }
               
              -   /* If the event's name is provided properly, the Controller's callback function is invoked
              -      in order to register a new event with the given name.*/
              +   // If the event name is provided properly, the Controller callback function is invoked
              +   // to register a new event with the given name
                  bool ret = false;
              -   if (vd->callbacks.set_custom_info_cb)
              -      ret = vd->callbacks.set_custom_info_cb((const char *)event_name, (void *)&ev_info);
              +   if (vd->callbacks.set_custom_info_cb)
              +      ret = vd->callbacks.set_custom_info_cb((const char *)event_name, (void *)&ev_info);
               
                  free(event_name);
               
                  if (!ret)
                     return;
               
              -   /* Once the custom event is registered successfully, the UI is updated to reflect recent changes. */
              -   elm_genlist_item_append(__viewdata->custom_ev_list,
              -                           __viewdata->custom_ev_itc,
              +   // Once the custom event is registered successfully, the UI is updated to reflect recent changes
              +   elm_genlist_item_append(__viewdata->custom_ev_list,
              +                           __viewdata->custom_ev_itc,
                                          (void *)ev_info,
                                          NULL,
                                          ELM_GENLIST_ITEM_NONE,
                                          __view_custom_event_item_select_cb,
                                          (void *)ev_info);
               }
              -
              -
              -/* The callback function invoked within the __view_register_event_button_clicked_cb(). */
              -static bool __controller_event_set_custom_info_cb(const char *event_name, void **ev_info)
              +// Invoked within the __view_register_event_button_clicked_cb()
              +static bool 
              +__controller_event_set_custom_info_cb(const char *event_name, void **ev_info)
               {
                  *ev_info = NULL;
               
                  custom_ev_info_s *ev_info_tmp = NULL;
              -   /* Custom event registration is performed here. */
              -   if (!__controller_register_custom_event(event_name, &ev_info_tmp))
              +   // Custom event registration is performed here
              +   if (!__controller_register_custom_event(event_name, &ev_info_tmp))
                     return false;
               
                  *ev_info = (custom_ev_info_s *)ev_info_tmp;
               
                  return true;
               }
              -
              -
              -bool __controller_register_custom_event(const char *event_name, custom_ev_info_s **ev_info)
              +bool 
              +__controller_register_custom_event(const char *event_name, custom_ev_info_s **ev_info)
               {
                  *ev_info = NULL;
                  bool name_exists = false;
               
              -   /* Before the custom event is registered, one have to verify if provided name does not exist yet.
              -      There is no dedicated Event's API function which performs this task. In such case
              -      the Model iterates over all registered custom events stored within internal data structure
              -      and compares the name being registered with those alredy registered.*/
              -   if (!model_check_event_exists(event_name, &name_exists))
              +   // Before the custom event is registered, verify whether the provided name exists
              +   // There is no dedicated Event API function which performs this task. In such case,
              +   // the Model iterates over all registered custom events stored within the internal data structure
              +   // and compares the name being registered with those already registered
              +   if (!model_check_event_exists(event_name, &name_exists))
                     return false;
               
              -   if (name_exists) {
              -      controller_log(DLOG_WARN, "Custom event '%s' already registered.", event_name);
              +   if (name_exists) 
              +   {
              +      controller_log(DLOG_WARN, "Custom event '%s' already registered.", event_name);
              +
                     return false;
                  }
               
              -   /* If the custom name fails the extence verification, then the relevant data structure is created
              -      to store event's related information internally. */
              +   // If the custom name fails the existence verification, the relevant data structure is created
              +   // to store event-related information internally
                  if (!model_create_custom_event_info(event_name, ev_info))
                     return false;
               
              -   /* Once the internal data structure is created, the custom event handler is registered
              -      and the callback function attached to the event's handler. */
              +   // Once the internal data structure is created, the custom event handler is registered
              +   // and the callback function attached to the event handler
                  if (!model_add_custom_event_handler(*ev_info, __custom_event_cb, (void *)(*ev_info)))
                     return false;
               
              -   controller_log(DLOG_INFO, "Custom event registered: '%s'.", (*ev_info)->name);
              +   controller_log(DLOG_INFO, "Custom event registered: '%s'.", (*ev_info)->name);
               
                  return true;
               }
               
              +
            2. -

              - For Model-related functions implementation and description, see the Model section. -

              - -

              - After the custom event is registered and appears on the list, it may be published by simple click on relevant list's item. The published item can be hooked only by those applications which are signed - with the publisher's ceriticate. -
              - The entire publishing procedure is shown within the source code below. -

              - +
            3. +

              After the custom event is registered and appears on the list, it can be published by a simple click on the relevant list item. The published item can be hooked only by those applications which are signed with the publisher certificate. The entire publishing process is shown within the following source code.

              -/* This callback function is invoked when the user selects an event's related item on the list. */
              -static void __view_custom_event_item_select_cb(void *data, Evas_Object *obj, void *event_info)
              +// Invoked when the user selects an event-related item on the list
              +static void 
              +__view_custom_event_item_select_cb(void *data, Evas_Object *obj, void *event_info)
               {
                  custom_ev_info_s *ev_info = (custom_ev_info_s *)data;
               
              -   if (!ev_info) {
              -      controller_log(DLOG_ERROR, "ev_info == NULL !!!");
              +   if (!ev_info) 
              +   {
              +      controller_log(DLOG_ERROR, "ev_info == NULL !!!");
              +
                     return;
              -   } else if (!ev_info->name) {
              -      controller_log(DLOG_ERROR, "ev_info->name == NULL !!!");
              +   } 
              +   else if (!ev_info->name) 
              +   {
              +      controller_log(DLOG_ERROR, "ev_info->name == NULL !!!");
              +
                     return;
                  }
               
              -   /* The Controller is requested to publish the event by its name. */
              -   if (__viewdata->callbacks.do_publish_cb)
              -      __viewdata->callbacks.do_publish_cb(ev_info->name);
              +   // Controller is requested to publish the event by its name
              +   if (__viewdata->callbacks.do_publish_cb)
              +      __viewdata->callbacks.do_publish_cb(ev_info->name);
               }
              -
              -
              -/* This callback function is invoked by the __view_custom_event_item_select_cb() function. */
              -static void __controller_event_do_publish_cb(const char *event_name)
              +// Invoked by the __view_custom_event_item_select_cb() function
              +static void 
              +__controller_event_do_publish_cb(const char *event_name)
               {
              -   controller_log(DLOG_INFO, "Event publishing: '%s'.", event_name);
              +   controller_log(DLOG_INFO, "Event publishing: '%s'.", event_name);
               
              -   /* The event is published. */
              +   // Event is published 
                  model_publish_event(event_name);
               }
               
              +
            4. -

              - For Model-related functions implementation and description, see the Model section. -

              - -

              - Once the event is published, the callback function attached to its handler will be invoked within all those applications which are signed with the same certificate as the publisher. - In this case, only Event sample application will receive the event via previously attached __custom_event_cb() callback function. - The implementation of the __custom_event_cb() is shown below. -

              - +
            5. +

              Once the event is published, the callback function attached to its handler is invoked within all those applications which are signed with the same certificate as the publisher. In this case, only the Event sample application receives the event using the previously attached __custom_event_cb() callback function:

              -static void __custom_event_cb(const char *event_name, bundle *event_data, void *user_data)
              +static void 
              +__custom_event_cb(const char *event_name, bundle *event_data, void *user_data)
               {
                  custom_ev_info_s *ev_info = (custom_ev_info_s *)user_data;
                  char *status = NULL;
               
              -   /* Each custom event owns only one predefined key pointing to its status: CUSTOM_EVENT_KEY_STATUS.
              -      The key is defined within this application: CUSTOM_EVENT_KEY_STATUS == "custom_event_status". */
              -   if (!model_get_bundle_str(event_data, CUSTOM_EVENT_KEY_STATUS, &status))
              +   // Each custom event owns only one predefined key pointing to its status: CUSTOM_EVENT_KEY_STATUS
              +   // The key is defined within this application: CUSTOM_EVENT_KEY_STATUS == "custom_event_status"
              +   if (!model_get_bundle_str(event_data, CUSTOM_EVENT_KEY_STATUS, &status))
                     return;
               
              -   /* If the status is successfully obtained from the event's bundle, it is stored within internal data structure. */
              -   model_assign_event_status(&ev_info->status_1, status);
              +   // If the status is successfully obtained from the event bundle, it is stored within the internal data structure
              +   model_assign_event_status(&ev_info->status_1, status);
               
              -   /* Finally, the event's status is displayed on toast message ... */
              -   view_display_custom_event(ev_info->name, ev_info->status_1);
              -   /* ... and on the relevant list's item. */
              +   // Finally, the event status is displayed on a toast message...
              +   view_display_custom_event(ev_info->name, ev_info->status_1);
              +   // ... and on the relevant list item
                  view_update_custom_events();
               }
               
              -

              - For Model-related functions implementation and description, see the Model section. -

              +

              For Model-related function implementation and description, see Model.

              +
            6. +

            Model

            -

            - The responsibility of the application's "Model" module is to operate directly on the Event API and related data. The additional benefit of this module is the simplification of the API function calling: - error checking and message logging is performed here. -
            - Some of the functions implemented within the "Model" module were briefly described in the Application termination section - (__model_release_system_events(), __model_release_custom_events(), - model_finit(), __model_free_system_event_info(), - __model_free_custom_event_info()). Other, the most important functions, are described here. -

            - -

            - Most of the Model functions operate on the system_ev_info_s or - custom_ev_info_s structures which represent the system or custom event internally. -

            - -

            - Adding a handler to the specified event is performed by the model_add_#event_type#_event_handler() function, where - #event_type# stands for system - or custom. -

            +

            The responsibility of the application Model module is to operate directly on the Event API and related data. The additional benefit of this module is the simplification of the API function calling, as error checking and message logging is performed here.

            +

            Some of the functions implemented within the Model module have been briefly described in Application Termination section (__model_release_system_events(), __model_release_custom_events(), model_finit(), __model_free_system_event_info(), __model_free_custom_event_info()). The most important functions are described here.

            +

            Most of the Model functions operate on the system_ev_info_s or custom_ev_info_s structures, which represent the system and custom events internally.

            +

            To operate on the Event API and related data with the Model module:

            +
              +
            1. +

              Add a handler to the specified event with the model_add_<event_type>_event_handler() function, where <event_type> stands for system or custom:

              -bool model_add_#event_type#_event_handler(#event_type#_ev_info_s *ev_info, event_cb callback, void *user_data)
              +bool 
              +model_add_<event_type>_event_handler(<event_type>_ev_info_s *ev_info, event_cb callback, void *user_data)
               {
              -   if (!ev_info || !callback) {
              -      controller_log(DLOG_ERROR, "Wrong argument provided.");
              +   if (!ev_info || !callback) 
              +   {
              +      controller_log(DLOG_ERROR, "Wrong argument provided.");
              +
                     return false;
                  }
               
              -   /* Event's API function is called with name stored in the internal data structure.
              -      The callback function is attached to the event's handler. */
              -   int ret = event_add_event_handler(ev_info->name, callback, user_data, &ev_info->event_h);
              -   if (ret != EVENT_ERROR_NONE) {
              -      controller_log(DLOG_ERROR, "Function event_add_event_handler() failed with error = %d.", ret);
              +   // Event API function is called with name stored in the internal data structure
              +   // Callback function is attached to the event handler
              +   int ret = event_add_event_handler(ev_info->name, callback, user_data, &ev_info->event_h);
              +   if (ret != EVENT_ERROR_NONE) 
              +   {
              +      controller_log(DLOG_ERROR, "Function event_add_event_handler() failed with error = %d.", ret);
              +
                     return false;
                  }
               
                  return true;
               }
               
              +
            2. -

              - Event's handler created with the model_add_#event_type#_event_handler() is released using - __model_remove_event_handler() regardless of its - #event_type#. -

              - +
            3. +

              Release the event handler using the __model_remove_event_handler() function regardless of its <event_type>:

              -bool __model_remove_event_handler(event_handler_h event_handler)
              +bool 
              +__model_remove_event_handler(event_handler_h event_handler)
               {
                  int ret = event_remove_event_handler(event_handler);
              -   if (ret != EVENT_ERROR_NONE) {
              -      controller_log(DLOG_ERROR, "Function event_remove_event_handler() failed with error = %d.", ret);
              +   if (ret != EVENT_ERROR_NONE) 
              +   {
              +      controller_log(DLOG_ERROR, "Function event_remove_event_handler() failed with error = %d.", ret);
              +
                     return false;
                  }
               
                  return true;
               }
               
              - -

              - In order to publish a custom event, the model_publish_event() function must be called with event's name passed in the function's - argument. -

              - +
            4. +
            5. +

              To publish a custom event, the model_publish_event() function must be called with the event name:

              -bool model_publish_event(const char *event_name)
              +bool 
              +model_publish_event(const char *event_name)
               {
                  static unsigned int custom_ev_counter = 0;
               
              -   if (!event_name) {
              -      controller_log(DLOG_ERROR, "Wrong argument provided.");
              +   if (!event_name) 
              +   {
              +      controller_log(DLOG_ERROR, "Wrong argument provided.");
              +
                     return false;
                  }
               
              -   /* The bundle object is the carrier of the event's information.
              -      It must be created and filled with proper data which describes event's status. */
              +   // Bundle object is the carrier of the event information
              +   // It must be created and filled with proper data which describes event status
                  bundle *bundle_ev = bundle_create();
              -   if (!bundle_ev) {
              -      controller_log(DLOG_ERROR, "Function bundle_create() failed.");
              +   if (!bundle_ev) 
              +   {
              +      controller_log(DLOG_ERROR, "Function bundle_create() failed.");
              +
                     return false;
                  }
               
              -   /* The custom event's status is created by simple concatenation of the status counter (custom_ev_counter) followed by the "status value" label. */
              +   // Custom event status is created by simple concatenation of the status counter (custom_ev_counter) followed by the "status value" label
                  custom_ev_counter++;
                  char status[__STATUS_MSG_BUFF] = {0,};
              -   snprintf(status, __STATUS_MSG_BUFF, "status value %u", custom_ev_counter);
              +   snprintf(status, __STATUS_MSG_BUFF, "status value %u", custom_ev_counter);
               
              -   /* The custom event's status string is added to the event's information carrier (bundle object)
              -      with predefined key: CUSTOM_EVENT_KEY_STATUS == "custom_event_status". */
              +   // Custom event status string is added to the event information carrier (bundle object)
              +   // with predefined key: CUSTOM_EVENT_KEY_STATUS == "custom_event_status"
                  int ret = bundle_add_str(bundle_ev, CUSTOM_EVENT_KEY_STATUS, status);
              -   if (ret != EVENT_ERROR_NONE) {
              -      controller_log(DLOG_ERROR, "Function bundle_add_str() failed with error %d.", ret);
              +   if (ret != EVENT_ERROR_NONE) 
              +   {
              +      controller_log(DLOG_ERROR, "Function bundle_add_str() failed with error %d.", ret);
              +
                     return false;
                  }
               
              -   /* Finally, the event (identified by event_name) is published (broadcasted) with the bundle object previously created. */
              +   // Finally, the event (identified by event_name) is published (broadcasted) with the previously created bundle object
                  ret = event_publish_app_event(event_name, bundle_ev);
              -   /* Once the event is published, the associated bundle object is not necessary anymore - it must be freed. */
              +   // Once the event is published, the associated bundle object is not necessary anymore - it must be freed
                  bundle_free(bundle_ev);
               
              -   if (ret != EVENT_ERROR_NONE) {
              -      controller_log(DLOG_ERROR, "Function event_publish_app_event() failed with error %d.", ret);
              +   if (ret != EVENT_ERROR_NONE) 
              +   {
              +      controller_log(DLOG_ERROR, "Function event_publish_app_event() failed with error %d.", ret);
              +
                     return false;
                  }
               
              @@ -839,81 +773,69 @@ bool model_publish_event(const char *event_name)
               }
               
              -

              - The custom event's name must strictly follow the rule defined by the Event's API: -
              -

              event.#app_id#.#custom_name#,
              -
              - where: -
                -
              • #app_id# is the identifier of the calling application;
              • -
              • #custom_name# is a custom name assigned by the user/developer.
              • -
              - For this reason, the supporting __model_format_custom_event_name() function is implemented. -

              - +

              The custom event name must strictly follow the event.<app_id>.<custom_name> naming rule defined by the Event API. In the name, <app_id> is the identifier of the calling application, and <custom_name> is a custom name assigned by you or the user. For this reason, the supporting __model_format_custom_event_name() function is implemented.

              -static void __model_format_custom_event_name(const char *custom_name, char **ev_name)
              +static void 
              +__model_format_custom_event_name(const char *custom_name, char **ev_name)
               {
              -   /* Naming rule is applied. */
              -   int ev_name_len = strlen("event") + strlen(APP_ID) + strlen(custom_name) + 3;
              +   // Naming rule is applied
              +   int ev_name_len = strlen("event") + strlen(APP_ID) + strlen(custom_name) + 3;
                  *ev_name = (char *)calloc(ev_name_len, sizeof(char));
              -   snprintf(*ev_name, ev_name_len, "event.%s.%s", APP_ID, custom_name);
              +   snprintf(*ev_name, ev_name_len, "event.%s.%s", APP_ID, custom_name);
               
              -   /* All whitespaces are removed from the #custom_name# and the string is converted to the lower case. */
              +   // All whitespaces are removed from the <custom_name> and the string is converted to the lower case
                  int i;
              -   for (i = 0; i < ev_name_len; i++) {
              +   for (i = 0; i < ev_name_len; i++) 
              +   {
                     (*ev_name)[i] = tolower((*ev_name)[i]);
               
                     if ((*ev_name)[i] == 32)
              -         (*ev_name)[i] = '_';
              +         (*ev_name)[i] = '_';
                  }
               }
              -
               
              - -

              - Finally, the model_get_bundle_str() function is used to obtain event's status from the associated bundle object based on - known key CUSTOM_EVENT_KEY_STATUS == "custom_event_status". -

              +
            6. +
            7. +

              Use the model_get_bundle_str() function to obtain the event status from the associated bundle object based on the known CUSTOM_EVENT_KEY_STATUS == "custom_event_status" key.

              -bool model_get_bundle_str(bundle *bundle_obj, const char *key, char **str)
              +bool 
              +model_get_bundle_str(bundle *bundle_obj, const char *key, char **str)
               {
                  *str = NULL;
               
                  int ret = bundle_get_str(bundle_obj, key, str);
              -   if (ret != BUNDLE_ERROR_NONE) {
              -      controller_log(DLOG_ERROR, "Function bundle_get_str() failed with error = %d.", ret);
              +   if (ret != BUNDLE_ERROR_NONE) 
              +   {
              +      controller_log(DLOG_ERROR, "Function bundle_get_str() failed with error = %d.", ret);
              +
                     return false;
                  }
               
                  return true;
               }
               
              +
            8. +
            -

            - The remaining functions play supportive roles only, are self-explanatory and do not need to be described here. Only brief information on their role is included below. +

            The following list gives a brief description on the roles of the remaining functions.

            • - model_get_system_events_count() - returns the number of registered system events based on the number of + model_get_system_events_count(): Returns the number of registered system events based on the number of relevant data stored internally.
            • - model_get_system_event_info() - returns the system event's information structure stored internally. + model_get_system_event_info(): Returns the system event information structure stored internally.
            • - model_create_custom_event_info() - creates the custom event's information structure and stores it internally. + model_create_custom_event_info(): Creates the custom event information structure and stores it internally.
            • - model_assign_event_status() - assigns the status message to the specified event's structure stored internally. + model_assign_event_status(): Assigns the status message to the specified event structure stored internally.
            • - model_check_event_exists() - checks whether given event's name is already registered within internal data structure. + model_check_event_exists(): Checks whether given event name is already registered within internal data structure.
            -

            - - diff --git a/org.tizen.sampledescriptions/html/mobile_n/file_manager_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/file_manager_sd_mn.htm index f138cd4..a7b6c01e 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/file_manager_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/file_manager_sd_mn.htm @@ -71,7 +71,8 @@ window_obj *win_create()
          • The _app_add_naviframe() function adds the view manager (elm_naviframe) to the window. Naviframe is created using the ui_utils_navi_add() function.

            -static Evas_Object *_app_add_naviframe(app_data *app)
            +static Evas_Object* 
            +_app_add_naviframe(app_data *app)
             {
                Evas_Object *naviframe = NULL;
                Evas_Object *parent = win_get_host_layout(app->win);
            @@ -83,6 +84,7 @@ static Evas_Object *_app_add_naviframe(app_data *app)
                      win_set_layout(app->win, naviframe);
                   }
                }
            +
                return naviframe;
             }
             
            @@ -90,7 +92,8 @@ static Evas_Object *_app_add_naviframe(app_data *app)
          • The ui_utils_navi_add() function creates and adds the view manager (elm_naviframe) to the parent. In the following example, the parent is the window (elm_win).

            -Evas_Object *ui_utils_navi_add(Evas_Object *parent, Eext_Event_Cb back_cb, void *cb_data)
            +Evas_Object* 
            +ui_utils_navi_add(Evas_Object *parent, Eext_Event_Cb back_cb, void *cb_data)
             {
                RETVM_IF(!parent, NULL, "Parent is NULL");
             
            @@ -110,7 +113,8 @@ Evas_Object *ui_utils_navi_add(Evas_Object *parent, Eext_Event_Cb back_cb, void
             
            1. The main_view_add() function creates the main layout and UI components as genlist and control bar. Then layout inserts to naviframe.
              -int main_view_add(app_data *app, Evas_Object *parent)
              +int 
              +main_view_add(app_data *app, Evas_Object *parent)
               {
                  RETVM_IF(!app, RESULT_TYPE_INVALID_ARG, "App object is NULL");
                  RETVM_IF(!parent, RESULT_TYPE_INVALID_ARG, "Parent object is NULL");
              @@ -131,6 +135,7 @@ int main_view_add(app_data *app, Evas_Object *parent)
                  {
                     ERR("Failed to create layout");
                     _main_view_destroy(data);
              +
                     return RESULT_TYPE_FAIL;
                  }
               
              @@ -141,6 +146,7 @@ int main_view_add(app_data *app, Evas_Object *parent)
                  {
                     ERR("Failed to add view to naviframe");
                     evas_object_del(data->view.navi_layout);
              +
                     return result;
                  }
               
              @@ -149,6 +155,7 @@ int main_view_add(app_data *app, Evas_Object *parent)
                  {
                     ERR("Failed to create widgets");
                     evas_object_del(data->view.navi_layout);
              +
                     return result;
                  }
               
              @@ -157,6 +164,7 @@ int main_view_add(app_data *app, Evas_Object *parent)
                  {
                     ERR("Failed to initialize main view");
                     evas_object_del(data->view.navi_layout);
              +
                     return result;
                  }
               
              @@ -170,7 +178,8 @@ int main_view_add(app_data *app, Evas_Object *parent)
                 

              File Manager main view layout

            2. The ui_utils_genlist_add() function creates the genlist:
              -Evas_Object *ui_utils_genlist_add(Evas_Object *parent, Evas_Object_Event_Cb destroy_cb, void *cb_data)
              +Evas_Object* 
              +ui_utils_genlist_add(Evas_Object *parent, Evas_Object_Event_Cb destroy_cb, void *cb_data)
               {
                  Evas_Object *genlist = elm_genlist_add(parent);
                  RETVM_IF(!genlist, NULL, "Genlist is NULL");
              @@ -189,12 +198,14 @@ Evas_Object *ui_utils_genlist_add(Evas_Object *parent, Evas_Object_Event_Cb dest
               
               
            3. The _main_view_fill() function gets content using the fs_manager_get_storage_list() function and sets to the genlist using the genlist_widget_content_set() function.
              -static int _main_view_fill(main_view_data *data)
              +static int 
              +_main_view_fill(main_view_data *data)
               {
                  int res = fs_manager_get_storage_list(data->view.app->manager, &data->storage_list);
                  RETVM_IF(res != RESULT_TYPE_OK, res, "Fail to get storage list");
               
                  genlist_widget_content_set(data->genlist_widget, data->storage_list);
              +
                  return RESULT_TYPE_OK;
               }
               
              @@ -202,7 +213,8 @@ static int _main_view_fill(main_view_data *data)
            4. The genlist_widget_content_set() function sets the content from the list to the genlist.
              -void genlist_widget_content_set(genlist_widget *widget, const Eina_List *file_list)
              +void 
              +genlist_widget_content_set(genlist_widget *widget, const Eina_List *file_list)
               {
                  RETM_IF(!widget, "Widget is NULL");
               
              @@ -229,7 +241,8 @@ void genlist_widget_content_set(genlist_widget *widget, const Eina_List *file_li
               
              1. The list_view_add() function creates and shows the storage view. It creates the layout and UI components as navigation path, genlist, and control bar. Then the layout is inserted to naviframe.
                -int list_view_add(app_data *app, Evas_Object *parent, const char *path, const char *dir_name)
                +int 
                +list_view_add(app_data *app, Evas_Object *parent, const char *path, const char *dir_name)
                 {
                    RETVM_IF(!app, RESULT_TYPE_INVALID_ARG, "App object is NULL");
                    RETVM_IF(!parent, RESULT_TYPE_INVALID_ARG, "Parent object is NULL");
                @@ -249,10 +262,11 @@ int list_view_add(app_data *app, Evas_Object *parent, const char *path, const ch
                    data->file_list = NULL;
                 
                    data->list_view.navi_layout = ui_utils_layout_add(data->list_view.navi, _list_view_del_cb, data);
                -   if (!data->list_view.navi_layout )
                +   if (!data->list_view.navi_layout)
                    {
                       ERR("Fail to create Layout");
                       _list_view_destroy(data);
                +
                       return RESULT_TYPE_FAIL;
                    }
                 
                @@ -263,6 +277,7 @@ int list_view_add(app_data *app, Evas_Object *parent, const char *path, const ch
                    {
                       ERR("Fail to get file list");
                       evas_object_del(data->list_view.navi_layout);
                +
                       return result;
                    }
                 
                @@ -272,6 +287,7 @@ int list_view_add(app_data *app, Evas_Object *parent, const char *path, const ch
                    {
                       ERR("Fail to add view to naviframe");
                       evas_object_del(data->list_view.navi_layout);
                +
                       return result;
                    }
                 
                @@ -280,6 +296,7 @@ int list_view_add(app_data *app, Evas_Object *parent, const char *path, const ch
                    {
                       ERR("Fail to create widgets");
                       evas_object_del(data->list_view.navi_layout);
                +
                       return result;
                    }
                 
                @@ -315,6 +332,7 @@ navi_path_widget *navi_path_widget_add(view_data *view)
                    {
                       ERR("Layout is NULL");
                       _navi_path_widget_destroy(widget);
                +
                       return NULL;
                    }
                 
                @@ -330,11 +348,12 @@ navi_path_widget *navi_path_widget_add(view_data *view)
                    {
                       ERR("Scroller is NULL");
                       evas_object_del(widget->navi_path_layout);
                +
                       return NULL;
                    }
                 
                    elm_scroller_bounce_set(widget->navi_path_scroller, EINA_TRUE, EINA_FALSE);
                -   elm_scroller_policy_set (widget->navi_path_scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
                +   elm_scroller_policy_set(widget->navi_path_scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
                 
                    evas_object_size_hint_weight_set(widget->navi_path_scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
                    evas_object_size_hint_align_set(widget->navi_path_scroller, EVAS_HINT_FILL, EVAS_HINT_FILL);
                @@ -345,6 +364,7 @@ navi_path_widget *navi_path_widget_add(view_data *view)
                    {
                       ERR("Table is NULL");
                       evas_object_del(widget->navi_path_layout);
                +
                       return NULL;
                    }
                 
                @@ -376,7 +396,8 @@ navi_path_widget *navi_path_widget_add(view_data *view)
                 
              2. The genlist_widget_update() function updates the style of the genlist items. If it is in the edit mode, checkboxes and the Select All genlist is shown.

                -int genlist_widget_update(genlist_widget *widget)
                +int 
                +genlist_widget_update(genlist_widget *widget)
                 {
                    RETVM_IF(!widget->view, RESULT_TYPE_INVALID_ARG, "View object is NULL");
                 
                @@ -401,7 +422,8 @@ int genlist_widget_update(genlist_widget *widget)
                 
              3. The ctrl_bar_widget_mode_update() function updates the buttons in the toolbar. In the edit mode, the toolbar shows the delete, copy, move, and exit functionalities.

                -int ctrl_bar_widget_mode_update(ctrl_bar_widget *widget)
                +int 
                +ctrl_bar_widget_mode_update(ctrl_bar_widget *widget)
                 {
                    RETVM_IF(!widget, RESULT_TYPE_FAIL, "Widget object is NULL");
                    RETVM_IF(!widget->view, RESULT_TYPE_FAIL, "View object is NULL");
                @@ -412,9 +434,9 @@ int ctrl_bar_widget_mode_update(ctrl_bar_widget *widget)
                    return RESULT_TYPE_OK;
                 }
                 
                -static void _ctrl_bar_widget_add_update_buttons(ctrl_bar_widget *widget)
                +static void 
                +_ctrl_bar_widget_add_update_buttons(ctrl_bar_widget *widget)
                 {
                -   ... 
                    if (app->status.curr_mode == MODE_DEFAULT)
                    {
                       Elm_Object_Item *edit_item = elm_toolbar_item_append(widget->ctrl_bar, NULL, FM_TOOLBAR_TEXT_EDIT, _ctrl_bar_widget_edit_btn_cb, widget);
                @@ -433,7 +455,6 @@ static void _ctrl_bar_widget_add_update_buttons(ctrl_bar_widget *widget)
                       elm_toolbar_item_append(widget->ctrl_bar, NULL, FM_TOOLBAR_TEXT_COPY, _ctrl_bar_widget_copy_btn_cb, widget);
                       elm_toolbar_item_append(widget->ctrl_bar, NULL, FM_TOOLBAR_TEXT_CANCEL, _ctrl_bar_widget_cancel_btn_cb, widget);
                    }
                -   ...
                 }
                 
              4. @@ -445,7 +466,8 @@ static void _ctrl_bar_widget_add_update_buttons(ctrl_bar_widget *widget)
              5. The _popup_new_folder_type_create() function creates a popup with an edit field and the OK and Cancel buttons. It sets the text and callback functions.

                -static int _popup_new_folder_type_create(view_data *view)
                +static int 
                +_popup_new_folder_type_create(view_data *view)
                 {
                    Evas_Object *popup = _popup_new(view->navi, NULL, view);
                    RETVM_IF(!popup, RESULT_TYPE_INVALID_ARG, "Fail to create popup");
                @@ -465,7 +487,8 @@ static int _popup_new_folder_type_create(view_data *view)
                 
              6. The _popup_new() function creates a popup (elm_popup) and sets its text and style.

                -static Evas_Object *_popup_new(Evas_Object *parent, const char *text, const void *data)
                +static Evas_Object* 
                +_popup_new(Evas_Object *parent, const char *text, const void *data)
                 {
                    Evas_Object *popup = elm_popup_add(parent);
                    RETVM_IF(!popup, NULL, "Fail to create popup");
                @@ -485,7 +508,8 @@ static Evas_Object *_popup_new(Evas_Object *parent, const char *text, const void
                 
              7. The _popup_editfield_add() creates the edit field from the entry (elm_entry), sets its theme and text.

                -static int _popup_editfield_add(Evas_Object *popup)
                +static int 
                +_popup_editfield_add(Evas_Object *popup)
                 {
                    Evas_Object *entry = elm_entry_add(popup);
                    RETVM_IF(!entry, RESULT_TYPE_INVALID_ARG, "Fail to create entry");
                @@ -512,7 +536,8 @@ static int _popup_editfield_add(Evas_Object *popup)
                 
              8. The _ctrl_bar_widget_copy_btn_cb() function is called when the Copy button is clicked. This function copies the selected items using the list_view_copy_items() function then updates the storage list using the list_view_update() function and shows the popup.

                -static void _ctrl_bar_widget_copy_btn_cb(void *data, Evas_Object *obj, void *eventInfo)
                +static void 
                +_ctrl_bar_widget_copy_btn_cb(void *data, Evas_Object *obj, void *eventInfo)
                 {
                    RETM_IF(!data, "Data is NULL");
                 
                @@ -533,7 +558,8 @@ static void _ctrl_bar_widget_copy_btn_cb(void *data, Evas_Object *obj, void *eve
                 
              9. The list_view_copy_items() function copies selected files to the clipboard using the clipboard_add_data() function and sets the operation type using the clipboard_set_operation() function.

                -int list_view_copy_items(view_data *view)
                +int 
                +list_view_copy_items(view_data *view)
                 {
                    RETVM_IF(!view, RESULT_TYPE_INVALID_ARG, "View object is NULL");
                 
                @@ -558,12 +584,14 @@ int list_view_copy_items(view_data *view)
                 

                The provided fs_manager API is used by the GUI elements to get data the for UI component: list of available storages, list of files and subfolder for specified folder; make copy, move, delete operations on files, and folders.

                To get a list of available storages, use the fs_manager_get_storage_list() function.

                -int fs_manager_get_storage_list(fs_manager *manager, Eina_List **storage_list)
                +int 
                +fs_manager_get_storage_list(fs_manager *manager, Eina_List **storage_list)
                 {
                    RETVM_IF(!manager, RESULT_TYPE_INVALID_ARG, "File manager is NULL");
                    if (manager->is_locked)
                    {
                       ERR("File manager is busy");
                +
                       return RESULT_TYPE_BUSY;
                    }
                 
                @@ -592,6 +620,7 @@ int fs_manager_get_storage_list(fs_manager *manager, Eina_List **storage_list)
                 
                    *storage_list = eina_list_append(*storage_list, pNode_device);
                    *storage_list = eina_list_sort(*storage_list, eina_list_count(*storage_list), _fs_manager_sort_by_name_cb);
                +
                    return RESULT_TYPE_OK;
                 }
                 
                @@ -600,20 +629,22 @@ int fs_manager_get_storage_list(fs_manager *manager, Eina_List **storage_list)

                To check whether an SD card is mounted, the _fs_manager_is_mmc_supported() function is used where the storage_get_external_memory_size() function from the storage API is called. The total size of the external storage is counted. If the size is 0, no SD card is mounted.

                For getting a list of the files and subfolders in the current folder, the fs_manager_get_file_list() function is called. Inside this, the model_utils_read_dir() function is called. It gets 2 Eina_List containers with the current folder's subfolders and files. Using the eina_list_sort() function sorts the lists. The order can be defined using the _fs_manager_sort_by_name_cb() function and merged into the result list using the eina_list_merge() function.

                -int fs_manager_get_file_list(fs_manager *manager, const char *dir_path, Eina_List **file_list)
                +int 
                +fs_manager_get_file_list(fs_manager *manager, const char *dir_path, Eina_List **file_list)
                 {
                -   Ã¢Â€Â¦
                    Eina_List *dirs = NULL;
                    Eina_List *files = NULL;
                    ret = model_utils_read_dir(dir_path, &dirs, &files);
                    if (ret != RESULT_TYPE_OK)
                    {
                -      ERR("Failed to read dir '%s'", dir_path);
                +      ERR("Failed to read dir '%s'", dir_path);
                +
                       return ret;
                    }
                    dirs = eina_list_sort(dirs, eina_list_count(dirs), _fs_manager_sort_by_name_cb);
                    files = eina_list_sort(files, eina_list_count(files), _fs_manager_sort_by_name_cb);
                    *file_list = eina_list_merge(dirs, files);
                +
                    return RESULT_TYPE_OK;
                 }
                 
                @@ -621,9 +652,9 @@ int fs_manager_get_file_list(fs_manager *manager, const char *dir_path, Eina_Lis
              10. The folder content getter, the model_utils_read_dir() function uses the Linux readdir_r() function to read data from folders.

                -int model_utils_read_dir(const char *dir_path, Eina_List **dir_list, Eina_List **file_list)
                +int 
                +model_utils_read_dir(const char *dir_path, Eina_List **dir_list, Eina_List **file_list)
                 {
                -   Ã¢Â€Â¦
                    struct dirent ent_struct;
                    struct dirent *ent = NULL;
                    while ((readdir_r(pDir, &ent_struct, &ent) == 0) && ent)
                @@ -675,16 +706,18 @@ int model_utils_read_dir(const char *dir_path, Eina_List **dir_list, Eina_List *
                 
              11. To create a new folder in the file system, use the fs_manager_create_folder() function that uses the Linux mkdir() method.

                -int fs_manager_create_folder(fs_manager *manager, const char *dir)
                +int 
                +fs_manager_create_folder(fs_manager *manager, const char *dir)
                 {
                    RETVM_IF(!manager, RESULT_TYPE_INVALID_ARG, "File manager is NULL");
                    RETVM_IF(!dir, RESULT_TYPE_INVALID_ARG, "Directory path is NULL");
                -   Ã¢Â€Â¦
                    if (mkdir(dir, DIR_MODE) < 0)
                    {
                -      ERR("Failed to create folder '%s'", dir);
                +      ERR("Failed to create folder '%s'", dir);
                +
                       return RESULT_TYPE_FAIL;
                    }
                +
                    return RESULT_TYPE_OK;
                 }
                 
                @@ -692,15 +725,10 @@ int fs_manager_create_folder(fs_manager *manager, const char *dir)
              12. To create a copy, or move or delete an operation, the fs_manager provides the fs_manager_copy_files(), fs_manager_move_files(), and fs_manager_delete_files() functions. All of them call the private _fs_manager_generate_operation() function. In this method, the fs_operation instance is created.

                -static int _fs_manager_generate_operation(fs_manager *manager,
                -      Eina_List *source_list,
                -      const char *dest_path,
                -      operation_type oper_type,
                -      fs_manager_complete_cb_func func,
                -      void *data)
                +static int 
                +_fs_manager_generate_operation(fs_manager *manager, Eina_List *source_list, const char *dest_path,
                +                               operation_type oper_type, fs_manager_complete_cb_func func, void *data)
                 {
                -   ...
                -
                    manager->user_cb_func = func;
                    manager->user_cb_data = data;
                 
                @@ -709,6 +737,7 @@ static int _fs_manager_generate_operation(fs_manager *manager,
                    {
                       _fs_manager_clear_data(manager);
                       ERR("Failed to allocate memory for file operation");
                +
                       return RESULT_TYPE_FAIL_ALLOCATE_MEMORY;
                    }
                 
                @@ -717,6 +746,7 @@ static int _fs_manager_generate_operation(fs_manager *manager,
                    {
                       _fs_manager_clear_data(manager);
                       ERR("Failed to set operation data");
                +
                       return result;
                    }
                 
                @@ -725,6 +755,7 @@ static int _fs_manager_generate_operation(fs_manager *manager,
                    {
                       _fs_manager_clear_data(manager);
                       ERR("Failed to allocate memory for callback operation data");
                +
                       return RESULT_TYPE_FAIL_ALLOCATE_MEMORY;
                    }
                 
                @@ -750,25 +781,21 @@ static int _fs_manager_generate_operation(fs_manager *manager,
                 
              13. Every file operation that is needed to be done runs separately from the main loop thread. This functionality is provided by the fs_operation API. The fs_manager creates the fs_operation instance, sets the operation data, completes the callback data, and runs this operation by calling the fs_operation_execute() function where a new instance of the ecore_thread is created.

                -int fs_operation_execute(fs_operation *operation,
                -      fs_operation_cb_func cb_func,
                -      fs_operation_cb_data *cb_data)
                +int 
                +fs_operation_execute(fs_operation *operation, fs_operation_cb_func cb_func, fs_operation_cb_data *cb_data)
                 {
                    RETVM_IF(!operation, RESULT_TYPE_INVALID_ARG, "Operation object is NULL");
                    RETVM_IF(!operation->source_list, RESULT_TYPE_FAIL,"File list not set");
                    RETVM_IF(operation->oper_type == OPERATION_TYPE_NONE, RESULT_TYPE_FAIL,"Type of operation not set");
                    RETVM_IF(!operation->dst_path && (operation->oper_type != OPERATION_TYPE_DELETE),
                -         RESULT_TYPE_FAIL, "Destination path not set");
                +            RESULT_TYPE_FAIL, "Destination path not set");
                 
                    operation->cb_func = cb_func;
                    operation->cb_data = cb_data;
                 
                -   operation->exec_thread = ecore_thread_feedback_run(_fs_operation_run,
                -         NULL,
                -         _fs_operation_end,
                -         NULL,
                -         (void*)operation,
                -         EINA_TRUE);
                +   operation->exec_thread = ecore_thread_feedback_run(_fs_operation_run, NULL,
                +                                                      _fs_operation_end, NULL, 
                +                                                      (void*)operation, EINA_TRUE);
                 
                    RETVM_IF(!operation->exec_thread, RESULT_TYPE_FAIL, "Failed to create thread");
                 
                @@ -779,7 +806,8 @@ int fs_operation_execute(fs_operation *operation,
                 
              14. The _fs_operation_run() function is the thread function that runs in the separate thread. The operation is executed in this function file. The result of the operation is set to the callback data.

                -void _fs_operation_run(void *data, Ecore_Thread *thread)
                +void 
                +_fs_operation_run(void *data, Ecore_Thread *thread)
                 {
                    fs_operation *operation = data;
                    int res = RESULT_TYPE_FAIL;
                @@ -797,6 +825,7 @@ void _fs_operation_run(void *data, Ecore_Thread *thread)
                       break;
                    default:
                       ERR("Operation type not set");
                +
                       return;
                       break;
                    }
                @@ -816,13 +845,15 @@ void _fs_operation_run(void *data, Ecore_Thread *thread)
                 
              15. The _fs_operation_end() function runs after the _fs_operation_run() is finished and it runs in the main loop. In this method, the operation callback function is called and the operation result is returned to the operation caller.

                -void _fs_operation_end(void *data, Ecore_Thread *thread)
                +void 
                +_fs_operation_end(void *data, Ecore_Thread *thread)
                 {
                    fs_operation *operation = data;
                    _fs_operation_delete_exec_thread(operation);
                    if (operation->is_canceled)
                    {
                       fs_operation_destroy(operation);
                +
                       return;
                    }
                 
                diff --git a/org.tizen.sampledescriptions/html/mobile_n/glview11_cube_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/glview11_cube_sd_mn.htm
                index b203d31..d77d61b 100644
                --- a/org.tizen.sampledescriptions/html/mobile_n/glview11_cube_sd_mn.htm
                +++ b/org.tizen.sampledescriptions/html/mobile_n/glview11_cube_sd_mn.htm
                @@ -142,10 +142,7 @@ _glview_create(appdata_s *ad)
                    elm_table_pack(ad->table, obj, 1, 1, 3, 1);
                    evas_object_data_set(obj, APPDATA_KEY, ad);
                 
                -   elm_glview_mode_set(obj,
                -                       ELM_GLVIEW_ALPHA |
                -                       ELM_GLVIEW_DEPTH
                -                       );
                +   elm_glview_mode_set(obj, ELM_GLVIEW_ALPHA | ELM_GLVIEW_DEPTH);
                    elm_glview_resize_policy_set(obj, ELM_GLVIEW_RESIZE_POLICY_RECREATE);
                    elm_glview_render_policy_set(obj, ELM_GLVIEW_RENDER_POLICY_ON_DEMAND);
                 
                @@ -276,7 +273,10 @@ destroy_gles(Evas_Object *obj)
                 
              16. Add an animator. -

                The application above is technically working but the scene does not get updated unless the object is marked as such. Games usually use an animator to update the scene regularly. The following example shows a default update refresh rate. The animator callback function is also triggered when the display is off. So you should use ecore_animator_freeze() and ecore_animator_thaw() in app_pause_cb, app_resume_cb for power saving.

                +

                The application above is technically working but the scene does not get updated unless the object is marked as such. Games usually use an animator to update the scene regularly. The following example shows the default update refresh rate.

                + +

                The animator callback function is also triggered when the display is off. Use the ecore_animator_freeze() and ecore_animator_thaw() functions in the app_pause_cb and app_resume_cb callbacks for power saving.

                +
                 static Eina_Bool
                 _anim_cb(void *data)
                @@ -284,6 +284,7 @@ _anim_cb(void *data)
                    appdata_s *ad = data;
                 
                    elm_glview_changed_set(ad->glview);
                +
                    return ECORE_CALLBACK_RENEW;
                 }
                 
                @@ -293,7 +294,7 @@ app_pause(void *data)
                    appdata_s *ad = data;
                    ecore_animator_freeze(ad->anim);
                 }
                ->
                +
                 static void
                 app_resume(void *data)
                 {
                diff --git a/org.tizen.sampledescriptions/html/mobile_n/glview_cube_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/glview_cube_sd_mn.htm
                index 5f30501..b2218fe 100644
                --- a/org.tizen.sampledescriptions/html/mobile_n/glview_cube_sd_mn.htm
                +++ b/org.tizen.sampledescriptions/html/mobile_n/glview_cube_sd_mn.htm
                @@ -182,7 +182,10 @@ static void draw_gl(Evas_Object *obj)
                 	
              17. Add an animator. -

                The application regularly triggers updates of the GLView using the elm_glview_changed_set() function. The animator callback function is also triggered when the display is off. So you should use ecore_animator_freeze() and ecore_animator_thaw() in app_pause_cb, app_resume_cb for power saving.

                +

                The application regularly triggers updates of the GLView using the elm_glview_changed_set() function.

                + +

                The animator callback function is also triggered when the display is off. Use the ecore_animator_freeze() and ecore_animator_thaw() functions in the app_pause_cb and app_resume_cb callbacks for power saving.

                +
                 static Eina_Bool anim(void *data) 
                 {
                diff --git a/org.tizen.sampledescriptions/html/mobile_n/glview_shader_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/glview_shader_sd_mn.htm
                index f869792..d01acc7 100644
                --- a/org.tizen.sampledescriptions/html/mobile_n/glview_shader_sd_mn.htm
                +++ b/org.tizen.sampledescriptions/html/mobile_n/glview_shader_sd_mn.htm
                @@ -220,7 +220,10 @@ static void draw_gl(Evas_Object *obj)
                 	
            5. Add an animator. -

              The application regularly triggers an update of the GLView using the elm_glview_changed_set() function. The animator callback function is also triggered when the display is off. So you should use ecore_animator_freeze() and ecore_animator_thaw() in app_pause_cb, app_resume_cb for power saving.

              +

              The application regularly triggers an update of the GLView using the elm_glview_changed_set() function.

              + +

              The animator callback function is also triggered when the display is off. Use the ecore_animator_freeze() and ecore_animator_thaw() functions in the app_pause_cb and app_resume_cb callbacks for power saving.

              +
               static Eina_Bool anim(void *data) 
               {
              diff --git a/org.tizen.sampledescriptions/html/mobile_n/gps_consumer_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/gps_consumer_sd_mn.htm
              index 8f1870b..d1403ca 100644
              --- a/org.tizen.sampledescriptions/html/mobile_n/gps_consumer_sd_mn.htm
              +++ b/org.tizen.sampledescriptions/html/mobile_n/gps_consumer_sd_mn.htm
              @@ -121,6 +121,7 @@ _circle_init(char *circle_latitude_str, char *circle_longitude_str)
                  if (!circle_latitude_str || !circle_longitude_str)
                  {
                     dlog_print(DLOG_ERROR, LOG_TAG, "Invalid parameter");
              +
                     return;
                  }
               
              diff --git a/org.tizen.sampledescriptions/html/mobile_n/gps_service_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/gps_service_sd_mn.htm
              index cbcaef9..447b208 100644
              --- a/org.tizen.sampledescriptions/html/mobile_n/gps_service_sd_mn.htm
              +++ b/org.tizen.sampledescriptions/html/mobile_n/gps_service_sd_mn.htm
              @@ -45,12 +45,18 @@
                 

              The current implementation requires precise knowledge about the message receiver application (its package name).

              Prerequisites

              -

              To ensure proper application execution, the http://tizen.org/privilege/location privilege must be set and the following features must be enabled: + +

              • To ensure proper application execution, the following privilege must be set:

                +
                  +
                • http://tizen.org/privilege/location
                • +
                +
              • +
              • To ensure proper application execution, the following features must be enabled:

                • http://tizen.org/feature/location
                • http://tizen.org/feature/location.gps
                -

                +

              Implementation

              Location Manager Module

              diff --git a/org.tizen.sampledescriptions/html/mobile_n/hybridservice_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/hybridservice_sd_mn.htm index 9431fd0..e340c58 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/hybridservice_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/hybridservice_sd_mn.htm @@ -68,6 +68,7 @@ int app_run(app_data *app, int argc, char **argv) proxy_client *proxy_client_create() {    proxy_client *const proxy = calloc(1 , sizeof(proxy_client)); +    return proxy; }
              @@ -86,6 +87,7 @@ int proxy_client_register_port(proxy_client *proxy_cl, const char *const port_na       _proxy_client_convert_msg_port_result(temp_id);       ERR("Failed to register local message port");       proxy_cl->local_port_id = 0; +       return result;    } @@ -131,6 +133,7 @@ int proxy_client_send_message(proxy_client *proxy_cl, bundle *const msg)             proxy_cl->remote_port_name);    DBG("Message successfully send to: %s:%s", proxy_cl->remote_app_name, proxy_cl->remote_port_name); +    return result; }
            6. @@ -149,6 +152,7 @@ static void _on_message_received_cb(int port_id, const char *rem_app_name, const    if (port_id != callback_data.proxy_cl->local_port_id)    {       ERR("Receive message by unknown port id = %d", port_id); +       return;    } @@ -185,6 +189,7 @@ static int _on_proxy_client_msg_received_cb(void *data, bundle *const rec_msg)    {       ERR("Failed to generate response bundle");       bundle_free(resp_msg); +       return result;    } diff --git a/org.tizen.sampledescriptions/html/mobile_n/internationalization_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/internationalization_sd_mn.htm index ae3a2d3..020755a 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/internationalization_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/internationalization_sd_mn.htm @@ -19,130 +19,115 @@
              -

              Mobile native

              +

              Mobile native

              Internationalization Sample Overview

              -

              - The sample demonstrates how to provide multilanguage support to the application. There are two different translation machanisms applied: global and local. The global mechanism implements the - text strings translation on language change callback via Settings application. The local mechanism demonstrates how to obtain the list of available languages and how to apply the selected one within the - application's scope only. -
              - This application demonstrates how to automatically apply the text translations: -

                -
              • when the display language is changed via Settings ➜ Language and input ➜ Display language;
              • -
              • when the display language is changed within the application using the i18n functions.
              • -
              -

              -

              The figures below illustrate the view of the application with different languages applied.

              -

              Figure: Internationalization application screens.

              -

              - Main view of the application with en_US language set globally - Main view of the application with ko_KR language set globally - Main view of the application with pl_PL language set locally +

              The Internationalization sample application demonstrates how you can provide multilanguage support to the application. There are 2 different translation mechanisms applied: global and local. The global mechanism implements the text string translation in a language change callback using the Settings application. The local mechanism demonstrates how to obtain the list of available languages and how to apply the selected one within the application's scope only using the i18n functions.

              + +

              The following figure illustrates the view of the application with different languages applied.

              +

              Figure: Internationalization application screens

              +

              + Main view of the application with en_US language set globally + Main view of the application with ko_KR language set globally + Main view of the application with pl_PL language set locally

              -

              The sample application's user interface is divided into three sections: +

              The application has one screen only, in which you can apply text translations in 2 ways:

              +
                +
              • To use a global mechanism, go to Settings > Language and input > Display language and select a new display language.
              • +
              • To use a local mechanism, select a new display language from the drop-down list on the screen and click Apply.
              • +
              + +

              The user interface is divided into 3 sections:

                -
              • top section - provides information on global language change method;
              • -
              • middle section - displays the text which is a subject for translation;
              • -
              • bottom section - provides information on local language change method and the set of widgets enabling language selection and application.
              • +
              • Top section provides information on the global mechanism.
              • +
              • Middle section displays the text which is subject to translation.
              • +
              • Bottom section provides information and components for handling the local mechanism.
              - The structure of the user interface is depicted below (EDJE layout scripts are used). -

              -

              Figure: Internationalization layout structure.

              -

              - Resource Manager layout structure +

              The following figure shows the structure of the user interface. EDJE layout scripts are used.

              + +

              Figure: UI layout structure

              +

              + UI layout structure

              -

              - The final application's view is created by embedding proper widgets into the layout depicted above. The resulting UI view is shown below. +

              The final application view is created by embedding the proper UI components into the layout. The following figure shoes the resulting UI view.

              +

              Figure: Application UI view

              +

              + Application UI view

              -

              Figure: Internationalization application's UI view.

              -

              - Internationalization application's UI view -

              -
              - The application's workflow can be divided into three logical pipelines: + +

              The application workflow can be divided into the following logical pipelines:

                -
              • application's startup,
              • -
              • text translation on global language change,
              • -
              • text translation on local language change,
              • +
              • Application startup
              • +
              • Text translation on a global language change
              • +
              • Text translation on a local language change
              - which can be described by the following figure: -

              -

              Figure: Internationalization application workflow.

              -

              - Application workflow +

              The workflow is described in the following figure.

              +

              Figure: Application workflow

              +

              + Application workflow

              -

              Prerequisites

              -

              -

                -
              • To ensure proper application execution, the strings translation files must be created using Localization tool.
              • -
              • No privilages are required.
              • -
              -

              +

              Prerequisites

              +

              To ensure proper application execution, the string translation files must be created using the Localization Tool.

              -

              Localization tool

              +

              Localization Tool

              -

              - To provide multilanguage support to the application, the Localization tool must be used. In order to invoke the Localization tool, one has to select "String Localize ..." option from project's - context menu. The image below depicts Localization tool view for this project. -

              +

              To provide multilanguage support to the application, use the Localization tool:

              +
              1. To invoke the tool, select the String Localize ... option from the project's context menu. The following figure shows the Localization tool view for this project. -

                Figure: Localization tool view.

                -

                - Localization tool view +

                + Localization tool view +

              2. + +
              3. Add a new language by opening the Add languages window with the Add language button button, and selecting all the needed languages.

                -

                - New language is added by invoking "Add languages" tool (the screenshot is shown below) with button. +

                + Add languages tool view

                -

                Figure: Add languages tool view.

                -

                - Add languages tool view -

                +

                The selected language appear in the Localization tool view.

                +
              4. -

                - Once all the required languages are selected, they will appear in the Localization tool (see the Localization tool view image). Using the "Add string key" button - (), a new text translation identification key is created. In case of this application, the following keys were created: +

              5. Use the Add string key button (Add string key button) to create a new text translation identification key. In case of this application, the following keys are created:
                • IDS_BODY_EXAMPLE_TEXT
                • IDS_BODY_HELLO_WORLD
                - For the keys above one can provide text translations for all selected languages. -

                +

                For the created keys, you can provide text translations in all selected languages.

              -

              - From now on, within the application's source code, the translation keys must be used instead of the plain texts (see the Text translation section for more details). -

              +

              Within the application source code, the translation keys must be used instead of the plain texts.

              Implementation

              -

              Type definitions

              +

              Type Definitions

              +

              The general structure is used as the application data storage:

              -/* The general structure for application's data storage. */
              -struct __appdata {
              +struct 
              +__appdata 
              +{
                  viewdata_s view;
               };
               
               typedef struct __appdata appdata_s;
               
              +

              The callback function of the get_display_language_cb type is called when a display language is selected from the list of all available languages. The callback function of the get_available_locale_cb type is called within the Model module while enumerating all available languages.

              -/* The callback function of get_display_language_cb type is called on display language selection from the list of all available languages. */
               typedef bool (*get_display_language_cb)(const char *locale, char **display_language);
               
              -/* The callback function of get_available_locale_cb type is called within the Model module while enumerating all available languages. */
               typedef bool (*get_available_locale_cb)(const char *locale, void *data);
               
              - +

              The Evas_Object objects represent the UI components in the main view:

              -/* All the Evas_Object objects represent UI widgets. */
              -struct __viewdata {
              +// All the Evas_Object objects represent UI components
              +struct 
              +__viewdata 
              +{
                  Evas_Object *win;
                  Evas_Object *conform;
                  Evas_Object *layout_main_panel;
              @@ -157,14 +142,15 @@ struct __viewdata {
               typedef struct __viewdata viewdata_s;
               
              -

              Application initialization

              - -

              - The entire application's life-cycle is implemented in the main source file using a common Tizen application structure: -

              +

              Application Initialization

              +

              To initialize the application:

              +
                +
              1. +

                Implement the application life-cycle in the main source file using a common Tizen application structure:

                -int main(int argc, char *argv[])
                +int 
                +main(int argc, char *argv[])
                 {
                    appdata_s ad = {{0,},};
                    int ret = 0;
                @@ -178,44 +164,37 @@ int main(int argc, char *argv[])
                    event_callback.resume = __resume_app;
                    event_callback.app_control = __control_app;
                 
                -   ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, __ui_app_low_battery, &ad);
                -   ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, __ui_app_low_memory, &ad);
                -   ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, __ui_app_orient_changed, &ad);
                -   ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, __ui_app_lang_changed, &ad);
                -   ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, __ui_app_region_changed, &ad);
                +   ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, __ui_app_low_battery, &ad);
                +   ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, __ui_app_low_memory, &ad);
                +   ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, __ui_app_orient_changed, &ad);
                +   ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, __ui_app_lang_changed, &ad);
                +   ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, __ui_app_region_changed, &ad);
                 
                -   ret = ui_app_main(argc, argv, &event_callback, &ad);
                +   ret = ui_app_main(argc, argv, &event_callback, &ad);
                    if (ret != APP_ERROR_NONE)
                -      controller_log(DLOG_ERROR, "Function ui_app_main() failed with error = %d", ret);
                +      controller_log(DLOG_ERROR, "Function ui_app_main() failed with error = %d", ret);
                 
                    return ret;
                 }
                 
                - -

                - The application's initilization procedure is executed in the __create_app() callback function, which is invoked on the startup. -

                - +
              2. +
              3. +

                The application initialization procedure is executed in the __create_app() callback function, which is invoked on startup:

                -static bool __create_app(void *data)
                +static bool 
                +__create_app(void *data)
                 {
                    appdata_s *ad = (appdata_s *)data;
                 
                -   return controller_init(&ad->view);
                +   return controller_init(&ad->view);
                 }
                 
                - -

                - Finally, the controller_init() function is invoked, which controls the entire initialization process - (see the code snippet below for details). This function is responsible for: -

                  -
                • creating the user interface (view_create_base_gui());
                • -
                • populating relevant widget with available languages.
                • -
                -

                - +
              4. +
              5. +

                The controller_init() function controls the entire initialization process. This function is responsible for creating the user interface with the view_create_base_gui() function, and populating the relevant component with available languages.

                -bool controller_init(viewdata_s *vd)
                +bool 
                +controller_init(viewdata_s *vd)
                 {
                    if (!view_create_base_gui(vd, __get_display_language_cb))
                       return false;
                @@ -226,30 +205,26 @@ bool controller_init(viewdata_s *vd)
                    return true;
                 }
                 
                - -

                - The model_get_available_locale() function enumerates all languages, where the - __get_available_locale_cb() callback function is invoked for each language. -

                - -

                - For reference of model related functions that are not listed here refer to the Model section. -

                - +
              6. +
              7. +

                The model_get_available_locale() function enumerates all languages, and the __get_available_locale_cb() callback function is invoked for each language.

                +

                For information on the model-related functions that are not listed here, see Model.

                -static bool __get_available_locale_cb(const char *locale, void *data)
                +static bool 
                +__get_available_locale_cb(const char *locale, void *data)
                 {
                    viewdata_s *vd = (viewdata_s *)data;
                    char fpath[512] = { 0, };
                    char *res_path = app_get_resource_path();
                 
                -   /* We need to limit the number of languages to those which are supported by this application. */
                -   /* In order to do that, the existence of relevant translation file is checked.                 */
                -   snprintf(fpath, sizeof(fpath), "%slocale/%s/LC_MESSAGES/$(appName).mo", res_path, locale);
                +   // Limit the number of languages to those which are supported by this application
                +   // To do that, the existence of relevant translation file is checked
                +   snprintf(fpath, sizeof(fpath), "%slocale/%s/LC_MESSAGES/$(appName).mo", res_path, locale);
                    free(res_path);
                 
                -   if (access(fpath, F_OK) != -1) {
                -      controller_log(DLOG_INFO, "Language supported: %s", locale);
                +   if (access(fpath, F_OK) != -1) 
                +   {
                +      controller_log(DLOG_INFO, "Language supported: %s", locale);
                       view_add_locale(vd, locale);
                    }
                 
                @@ -257,141 +232,121 @@ static bool __get_available_locale_cb(const char *locale, void *data)
                 }
                 
                -

                - Within the __get_available_locale_cb() callback function, the relevant widget is populated using the - view_add_locale() function. -

                +

                Within the __get_available_locale_cb() callback function, the relevant component is populated using the view_add_locale() function.

                +
              8. +
              +

              The view-related source code is not listed here, as it is not a subject of this topic.

              -

              - The view related source code is not listed here, as it is not a subject of this document. -

              +

              Text Translation

              -

              Text translation

              - -

              - The application demonstrates two different approaches to the text strings translation: +

              The application demonstrates 2 different approaches to the text string translation:

                -
              • - the first one is based on hooking the application's APP_EVENT_LANGUAGE_CHANGED event. The event's relevant callback - function is invoked on the display language change via the Settings ➜ Language and input ➜ Display language. This is a procedure of global language change. It affects the entire mobile platform - and all of its applications. +
              • Hooking the application APP_EVENT_LANGUAGE_CHANGED event. +

                The event's relevant callback function is invoked when the display language is changed in Settings > Language and input > Display language. This is a global language change procedure. It affects the entire mobile platform and all of its applications.

              • -
              • - The second one does not listen to any external notifications (like APP_EVENT_LANGUAGE_CHANGED event above), but it is based - on language selection from drop-down list. Once the language change is confirmed using the "Apply" button, the desigated text strings will be translated. This is a procedure of local language change, as - it affects only this application and does not influence any other component on the mobile platform. +
              • Selecting a language in a list. +

                Once the language change is confirmed using the Apply button, the designated text strings are translated. This is a local language change procedure, as it affects only this application and does not influence any other component on the mobile platform.

              - Both methods require that the strings translation files are available (see the Localization tool section for more details). -

              +

              Both methods require that the string translation files are available.

              -

              Hangling global language change

              - -

              - Once the display language is changed via the Settings ➜ Language and input ➜ Display language, the __ui_app_lang_changed() - callback function is invoked (see the Application initialization section for details of event hooking with the - __ui_app_lang_changed() callback function). -

              +

              Handling Global Language Changes

              +

              To change the language globally:

              +
                +
              1. +

                Once the display language is globally changed, the __ui_app_lang_changed() callback function is invoked (for event hooking with the __ui_app_lang_changed() callback function, see Application Initialization).

                -static void __ui_app_lang_changed(app_event_info_h event_info, void *user_data)
                +static void 
                +__ui_app_lang_changed(app_event_info_h event_info, void *user_data)
                 {
                    appdata_s *ad = (appdata_s *)user_data;
                 
                    char *language = NULL;
                 
                -   if (!model_get_locale_language(&language))
                +   if (!model_get_locale_language(&language))
                       return;
                 
                -   view_set_language(&ad->view, language);
                +   view_set_language(&ad->view, language);
                    free(language);
                 
                    return;
                 }
                 
                - -

                - When the __ui_app_lang_changed() callback function is invoked, the current language has to be obtained from the system settings, - where the Settings application stores the user's selection regarding the display language. This operation is wrapped by the - model_get_locale_language() function (see the code snippet below for more details). The display language setting is stored - as a key-value pair, where the valid key is identified as the SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE constant value. As a result, - the valid localization code is returned, ex. "en_US" for English (United States) language, "ko_KR" for Korean (Republic of) language, etc. -

                - +
              2. +
              3. +

                When the __ui_app_lang_changed() callback function is invoked, the current language has to be obtained from the system settings, where the Settings application stores the user selection regarding the display language. This operation is wrapped by the model_get_locale_language() function.

                +

                The display language setting is stored as a key-value pair, where the valid key is identified as the SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE constant value. As a result, the valid localization code is returned, such as en_US for US English, and ko_KR for Korean.

                -bool model_get_locale_language(char **language)
                +bool 
                +model_get_locale_language(char **language)
                 {
                    int ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, language);
                -   if (ret != SYSTEM_SETTINGS_ERROR_NONE) {
                -      controller_log(DLOG_ERROR, "Function system_settings_get_value_string() failed with error %d.", ret);
                +   if (ret != SYSTEM_SETTINGS_ERROR_NONE) 
                +   {
                +      controller_log(DLOG_ERROR, "Function system_settings_get_value_string() failed with error %d.", ret);
                +
                       return false;
                    }
                 
                    return true;
                 }
                 
                - -

                - Once the valid localization code is obtained, it is passed to the view_set_language() function, where the - elm_language_set() function applies the language to the application's text strings. -

                - +
              4. +
              5. +

                Once the valid localization code is obtained, it is passed to the view_set_language() function, where the elm_language_set() function applies the language to the application's text strings.

                -bool view_set_language(viewdata_s *vd, const char *locale)
                +bool 
                +view_set_language(viewdata_s *vd, const char *locale)
                 {
                -   if (!locale) {
                -      controller_log(DLOG_ERROR, "Invalid input arguments.");
                +   if (!locale) 
                +   {
                +      controller_log(DLOG_ERROR, "Invalid input arguments.");
                +
                       return false;
                    }
                 
                -   /* This portion of code appends the ".UTF-8" string to the localization code which is required by the elm_language_set() function. */
                -   int str_len = strlen(locale) + strlen(".UTF-8") + 1;
                +   // This portion of code appends the ".UTF-8" string to the localization code which is required by the elm_language_set() function
                +   int str_len = strlen(locale) + strlen(".UTF-8") + 1;
                    char *localization_string = (char *)calloc(str_len, sizeof(char));
                -   snprintf(localization_string, str_len, "%s.UTF-8", locale);
                +   snprintf(localization_string, str_len, "%s.UTF-8", locale);
                 
                -   controller_log(DLOG_INFO, "Language changed to: %s (%s)", locale, localization_string);
                +   controller_log(DLOG_INFO, "Language changed to: %s (%s)", locale, localization_string);
                 
                    elm_language_set(localization_string);
                    free(localization_string);
                 
                -   /* The text strings are translated using the i18n functions. */
                +   // Text strings are translated using the i18n functions
                    __view_display_text_translation(vd);
                 
                    return true;
                 }
                 
                - -

                - The final texts' translation and display is performed by the __view_display_text_translation() function, where the - texts' IDs are used (IDS_BODY_EXAMPLE_TEXT, - IDS_BODY_HELLO_WORLD) together with the i18n_get_text() function. -

                - +
              6. +
              7. +

                The final text translation and display is performed by the __view_display_text_translation() function, where the text IDs (IDS_BODY_EXAMPLE_TEXT and IDS_BODY_HELLO_WORLD) are used together with the i18n_get_text() function.

                -static void __view_display_text_translation(viewdata_s *vd)
                +static void 
                +__view_display_text_translation(viewdata_s *vd)
                 {
                -   elm_object_part_text_set(vd->layout_text_middle, PART_TEXT_MIDDLE_LABEL_TOP, i18n_get_text("IDS_BODY_EXAMPLE_TEXT"));
                -   elm_object_part_text_set(vd->layout_text_middle, PART_TEXT_MIDDLE_LABEL_BOTTOM, i18n_get_text("IDS_BODY_HELLO_WORLD"));
                +   elm_object_part_text_set(vd->layout_text_middle, PART_TEXT_MIDDLE_LABEL_TOP, i18n_get_text("IDS_BODY_EXAMPLE_TEXT"));
                +   elm_object_part_text_set(vd->layout_text_middle, PART_TEXT_MIDDLE_LABEL_BOTTOM, i18n_get_text("IDS_BODY_HELLO_WORLD"));
                 }
                 
                -

                - The i18n_get_text() function is responsible for proper text string selection from the po files according to the current language - setting. -

                - -

                Handling local language change

                +

                The i18n_get_text() function is responsible for the proper text string selection from the .po files according to the current language setting.

                +
              8. +
              -

              - In order to change the language locally, the user is requested to select desired language from the drop-down list of localization codes and confirm using the "Apply" button. Once the "Apply" button is pressed, - the __view_apply_button_click_cb() callback function is called within the View module. -

              +

              Handling Local Language Changes

              +

              Once the language is changed locally, the __view_apply_button_click_cb() callback function is called within the View module.

              -static void __view_apply_button_click_cb(void *data, Evas_Object *obj, void *event_info)
              +static void 
              +__view_apply_button_click_cb(void *data, Evas_Object *obj, void *event_info)
               {
              -   /* The localization code is obtained from the language selection widget. */
              -   const char *locale = elm_object_text_get(__viewdata->hoversel);
              +   // Localization code is obtained from the language selection component
              +   const char *locale = elm_object_text_get(__viewdata->hoversel);
                  viewdata_s *vd = (viewdata_s *)data;
               
                  if (locale)
              @@ -399,100 +354,97 @@ static void __view_apply_button_click_cb(void *data, Evas_Object *obj, void *eve
               }
               
              -

              - Localization code obtained from the language selection widget is passed to the view_set_language() function as an - argument. Further processing is strictly the same as described in the global language change procedure (for reference, see the Hangling global language change section). -

              +

              Localization code obtained from the language selection component is passed to the view_set_language() function as a parameter. Further processing is the same as described in the global language change procedure.

              Model

              -

              - The responsibility of the application's "Model" module is to operate directly on the i18n (localization) API. The additional benefit of this module is the simplification of the API function calling, - error checking and message logging. -
              - One of the functions implemented within the "Model" module was briefly described in the Handling global language change section - (model_get_locale_language()). Other functions are presented here. -

              - -

              - The model_get_available_locale() function is responsible for enumerating all languages with respect to their localization information. - For each localization code, the callback function of get_available_locale_cb type is called. -

              +

              The Model module operates directly on the i18n (localization) API. The additional benefit of this module is the simplification of the API function calling, error checking, and message logging.

              +

              The model_get_locale_language() function implemented within the Model module has been briefly described in Handling Global Language Changes. Other functions are presented here:

              +
              • +

                The model_get_available_locale() function enumerates all languages with respect to their localization information. For each localization code, the callback function of the get_available_locale_cb type is called.

                -bool model_get_available_locale(get_available_locale_cb func_cb, void *data)
                +bool 
                +model_get_available_locale(get_available_locale_cb func_cb, void *data)
                 {
                -   if (!func_cb) {
                -      controller_log(DLOG_ERROR, "Wrong argument provided.");
                +   if (!func_cb) 
                +   {
                +      controller_log(DLOG_ERROR, "Wrong argument provided.");
                +
                       return false;
                    }
                 
                -   /* The number of available locale is acquired. */
                +   // Number of available locales is acquired
                    int i;
                    int32_t count = i18n_ulocale_count_available();
                 
                -   for (i = 0; i < count; i++) {
                -      /* The localization code is obtained by its index. */
                +   for (i = 0; i < count; i++) 
                +   {
                +      // Localization code is obtained by its index
                       const char *locale = i18n_ulocale_get_available(i);
                 
                -      /* For each localization code obtained, the provided callback function is called. */
                -      if (locale && !func_cb(locale, data))
                +      // For each localization code obtained, the provided callback function is called
                +      if (locale && !func_cb(locale, data))
                          break;
                    }
                 
                    return true;
                 }
                -
                - -

                - The model_get_locale_display_language() function is responsible for obtaining the readable display language name based on - its localization code. -

                - +
            7. +
            8. +

              The model_get_locale_display_language() function obtains the readable display language name based on its localization code:

              -bool model_get_locale_display_language(const char *locale, char **display_language)
              +bool 
              +model_get_locale_display_language(const char *locale, char **display_language)
               {
                  i18n_uchar i18n_language[256] = {0,};
               
              -   if (!display_language) {
              -      controller_log(DLOG_ERROR, "Wrong argument provided.");
              +   if (!display_language) 
              +   {
              +      controller_log(DLOG_ERROR, "Wrong argument provided.");
              +
                     return false;
                  }
               
              -   /* The readable display language string is obtained from the localization code. */
              +   // Readable display language string is obtained from the localization code
                  i18n_ulocale_get_display_language(locale, NULL, i18n_language, sizeof(i18n_language));
                  int ret = get_last_result();
              -   if (ret != I18N_ERROR_NONE) {
              -      controller_log(DLOG_ERROR, "Function i18n_ulocale_get_display_language() failed with error %d.", ret);
              +   if (ret != I18N_ERROR_NONE) 
              +   {
              +      controller_log(DLOG_ERROR, "Function i18n_ulocale_get_display_language() failed with error %d.", ret);
              +
                     return false;
                  }
               
              -   /* The returned display language string is stored in an array of i18n_uchar,        */
              -   /* which is represented by the 16-bit unsigned int value, so it can not be simply   */
              -   /* typecasted to the char string. The transformation to the char string             */
              -   /* requires the i18n relevant function application. In order to store               */
              -   /* the display language in a char string, a new memory area is reserved.            */
              +   // Returned display language string is stored in an array of i18n_uchar,
              +   // which is represented by the 16-bit unsigned int value, so it can not be simply
              +   // typecasted to the char string. The transformation to the char string
              +   // requires the i18n relevant function application. To store
              +   // the display language in a char string, a new memory area is reserved
                  int32_t str_len = i18n_ustring_get_length(i18n_language);
                  *display_language = (char *)calloc(str_len + 1, sizeof(char));
                  if (!(*display_language)) {
              -      controller_log(DLOG_ERROR, "Function calloc() failed.");
              +      controller_log(DLOG_ERROR, "Function calloc() failed.");
              +
                     return false;
                  }
               
              -   /* The display language string of type i18n_uchar is copied to the char string, */
              -   /* while the 8 higher bits are truncated from each of the i18n_uchar character. */
              +   // Display language string of type i18n_uchar is copied to the char string
              +   // while the 8 higher bits are truncated from each of the i18n_uchar character
                  i18n_ustring_copy_au_n(*display_language, i18n_language, str_len);
                  ret = get_last_result();
              -   if (ret != I18N_ERROR_NONE) {
              +   if (ret != I18N_ERROR_NONE) 
              +   {
                     free(*display_language);
                     *display_language = NULL;
              -      controller_log(DLOG_ERROR, "Function i18n_ustring_copy_au_n() failed with error %d.", ret);
              +      controller_log(DLOG_ERROR, "Function i18n_ustring_copy_au_n() failed with error %d.", ret);
              +
                     return false;
                  }
               
                  return true;
               }
              -
              +
          diff --git a/org.tizen.sampledescriptions/html/mobile_n/launchonevent_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/launchonevent_sd_mn.htm new file mode 100644 index 0000000..c900467 --- /dev/null +++ b/org.tizen.sampledescriptions/html/mobile_n/launchonevent_sd_mn.htm @@ -0,0 +1,145 @@ + + + + + + + + + + + + + LaunchOnEventServiceApp Sample Overview + + + + +
          +
          + +
          +
          +

          Mobile native

          +
          +

          LaunchOnEventServiceApp Sample Overview

          +

          The LaunchOnEventServiceApp sample application demonstrates how you can use launch-on-event in your application.

          + +

          The LaunchOnEventServiceApp is a service application with no user interface. It is launched by launch-on-event operations. When a launch-on-event operation occurs, a message is shown in the notification window. The operations are earjack connection, USB connection, battery charger connection, and incoming messages.

          +

          This service application can be launched by launch-on-event operations when it is not running.

          + +

          Prerequisites

          +

          To ensure proper application execution, the following privilege must be set:

          +
            +
          • http://tizen.org/privilege/message.read
          • +
          + + +

          Implementation

          + +

          To use launch-on-event:

          +
            +
          1. Add an <app-control> element in the tizen-manifest.xml file for each operation that can launch the application: +
              +
            • Earjack connection: event://tizen.system.event.earjack_status
            • +
            • USB connection: event://tizen.system.event.usb_status
            • +
            • Battery charger connection: event://tizen.system.event.battery_charger_status
            • +
            • Incoming message: event://tizen.system.event.incoming_msg
            • +
            +
            +<app-control>
            +   <operation name=http://tizen.org/appcontrol/operation/launch_on_event/>
            +   <uri name="event://tizen.system.event.earjack_status"/>
            +</app-control>
            +<app-control>
            +   <operation name=http://tizen.org/appcontrol/operation/launch_on_event/>
            +   <uri name="event://tizen.system.event.usb_status"/>
            +</app-control>
            +<app-control>
            +   <operation name=http://tizen.org/appcontrol/operation/launch_on_event/>
            +   <uri name="event://tizen.system.event.battery_charger_status"/>
            +</app-control>
            +<app-control>
            +   <operation name=http://tizen.org/appcontrol/operation/launch_on_event/>
            +   <uri name="event://tizen.system.event.incoming_msg"/>
            +</app-control>
            +
            +
          2. + +
          3. Manage the operations: +
            1. +

              Register the app_control event callback that is called when the launch-on-event operation launches the application:

              +
              +int 
              +main(int argc, char* argv[])
              +{
              +   Service_app_lifecycle_callback_s event_callback;
              +    
              +   Event_callback.app_control = service_app_control;
              +}
              +
            2. + +
            3. If the operation is APP_CONTROL_OPERATION_LAUNCH_ON_EVENT, use the URI to determine which launch-on-event operation occurred:

              +
              +void 
              +service_app_control(app_control_h app_control, void *data)
              +{
              +   char *operation = NULL;
              +   char *uri = NULL;
              +   
              +   ret = app_control_get_operation(app_control, &operation);
              +
              +   if (ret == APP_CONTROL_ERROR_NONE && operation && strncmp(operation, APP_CONTROL_OPERATION_LAUNCH_ON_EVENT, strlen(operation)) == 0)
              +   {
              +      ret = app_control_get_uri(app_control, &uri)
              +
              +      if (ret == APP_CONTROL_ERROR_NONE && uri)
              +      {
              +         if (strncmp(uri, "event://tizen.system.event.earjack-status", strlen(uri)) == 0)
              +         {
              +            // Earjack is connected
              +         }
              +         if (strncmp(uri, "event://tizen.system.event.usb-status", strlen(uri)) == 0)
              +         {
              +            // USB cable is connected
              +         }
              +         if (strncmp(uri, "event://tizen.system.event.battery_charger_status", strlen(uri)) == 0)
              +         {
              +            // Battery charger is connected
              +         }
              +         if (strncmp(uri, "event://tizen.system.event.incoming_msg", strlen(uri)) == 0)
              +         {
              +            // Incoming message received
              +         }
              +      }
              +   }
              +}
              +
            +
          4. +
          + + + + + +
          + +Go to top + + + + + + + \ No newline at end of file diff --git a/org.tizen.sampledescriptions/html/mobile_n/lbs_geofence_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/lbs_geofence_sd_mn.htm index e566208..178307a 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/lbs_geofence_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/lbs_geofence_sd_mn.htm @@ -10,7 +10,7 @@ - LBS Geofence Overview + LBS Geofence Sample Overview @@ -20,16 +20,17 @@
          -

          Mobile native

          +

          Mobile native

          -

          LBS Geofence Overview

          -

          The LBS Geofence application demonstrates how to manage fences and places using the Geofence API.

          -

          The following figure illustrates the main views of the LBS Geofence application.

          +

          LBS Geofence Sample Overview

          + +

          The LBS Geofence sample application demonstrates how to manage fences and places using the Geofence API.

          +

          The following figure illustrates the main view of the LBS Geofence application.

          Figure: Application main view

          Application control view

          -

          In the main view, the user can choose one of the available operations.

          +

          In the main view, the user can select one of the available operations.

          Prerequisites

          To ensure proper application execution, the following privileges must be set:

          @@ -39,6 +40,7 @@

        Implementation

        +

        Application Main View

        The create_base_gui() function has a panel for 10 buttons and 3 entries for displaying the result.

        @@ -50,62 +52,62 @@ create_base_gui(appdata_s *ad)    Evas_Object *grid, *panel;    Elm_Object_Item *nf_it; -   /* Window */ -   ad->win = elm_win_util_standard_add(PACKAGE, PACKAGE); -   elm_win_conformant_set(ad->win, EINA_TRUE); -   elm_win_autodel_set(ad->win, EINA_TRUE); -   evas_object_smart_callback_add(ad->win, "delete,request", win_delete_request_cb, NULL); - -   /* Conformant */ -   ad->conform = elm_conformant_add(ad->win); -   evas_object_size_hint_weight_set(ad->conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); -   elm_win_resize_object_add(ad->win, ad->conform); -   evas_object_show(ad->conform); - -   /* Indicator */ -   elm_win_indicator_mode_set(ad->win, ELM_WIN_INDICATOR_SHOW); -   elm_win_indicator_opacity_set(ad->win, ELM_WIN_INDICATOR_OPAQUE); - -   /* layout */ -   ad->layout = elm_layout_add(ad->conform); -   evas_object_size_hint_weight_set(ad->layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); -   elm_layout_theme_set(ad->layout, "layout", "application", "default"); -   elm_object_content_set(ad->conform, ad->layout); -   evas_object_show(ad->layout); - -   ad->nf = elm_naviframe_add(ad->layout); -   elm_object_part_content_set(ad->layout, "elm.swallow.content", ad->nf); -   eext_object_event_callback_add(ad->nf, EEXT_CALLBACK_BACK, eext_naviframe_back_cb, NULL); -   evas_object_show(ad->nf); - -   /* Grid */ -   grid = elm_grid_add(ad->nf); +   // Window +   ad->win = elm_win_util_standard_add(PACKAGE, PACKAGE); +   elm_win_conformant_set(ad->win, EINA_TRUE); +   elm_win_autodel_set(ad->win, EINA_TRUE); +   evas_object_smart_callback_add(ad->win, "delete,request", win_delete_request_cb, NULL); + +   // Conformant +   ad->conform = elm_conformant_add(ad->win); +   evas_object_size_hint_weight_set(ad->conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); +   elm_win_resize_object_add(ad->win, ad->conform); +   evas_object_show(ad->conform); + +   // Indicator +   elm_win_indicator_mode_set(ad->win, ELM_WIN_INDICATOR_SHOW); +   elm_win_indicator_opacity_set(ad->win, ELM_WIN_INDICATOR_OPAQUE); + +   // Layout +   ad->layout = elm_layout_add(ad->conform); +   evas_object_size_hint_weight_set(ad->layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); +   elm_layout_theme_set(ad->layout, "layout", "application", "default"); +   elm_object_content_set(ad->conform, ad->layout); +   evas_object_show(ad->layout); + +   ad->nf = elm_naviframe_add(ad->layout); +   elm_object_part_content_set(ad->layout, "elm.swallow.content", ad->nf); +   eext_object_event_callback_add(ad->nf, EEXT_CALLBACK_BACK, eext_naviframe_back_cb, NULL); +   evas_object_show(ad->nf); + +   // Grid +   grid = elm_grid_add(ad->nf);    evas_object_size_hint_weight_set(grid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);    evas_object_size_hint_align_set(grid, EVAS_HINT_FILL, EVAS_HINT_FILL); -   elm_object_content_set(ad->nf, grid); +   elm_object_content_set(ad->nf, grid); -   /* Entry */ -   ad->entry = create_entry(grid); -   elm_grid_pack(grid, ad->entry, 0, 5, 90, 10); +   // Entry +   ad->entry = create_entry(grid); +   elm_grid_pack(grid, ad->entry, 0, 5, 90, 10); -   ad->event_entry = create_entry(grid); -   elm_grid_pack(grid, ad->event_entry, 0, 15, 90, 10); +   ad->event_entry = create_entry(grid); +   elm_grid_pack(grid, ad->event_entry, 0, 15, 90, 10); -   ad->status_entry = create_entry(grid); -   elm_grid_pack(grid, ad->status_entry, 0, 25, 90, 10); +   ad->status_entry = create_entry(grid); +   elm_grid_pack(grid, ad->status_entry, 0, 25, 90, 10); -   /* Panel */ +   // Panel    panel = create_panel(grid, ad);    elm_grid_pack(grid, panel, 0, 55, 100, 45); -   nf_it = elm_naviframe_item_push(ad->nf, "Geofence", NULL, NULL, grid, NULL); +   nf_it = elm_naviframe_item_push(ad->nf, "Geofence", NULL, NULL, grid, NULL);    elm_naviframe_item_pop_cb_set(nf_it, win_delete_request_cb, ad); -   /* Show window after base gui is set up */ -   evas_object_show(ad->win); +   // Show the window after the base GUI is set up +   evas_object_show(ad->win); } -

        The create_panel_basic_content() function has 10 buttons and callbacks for create and destroy button.

        +

        The create_panel_basic_content() function creates 10 buttons.

         static Evas_Object *
         create_panel_basic_content(Evas_Object *parent, appdata_s *ad)
        @@ -115,134 +117,134 @@ create_panel_basic_content(Evas_Object *parent, appdata_s *ad)
            table = elm_table_add(parent);
            elm_table_padding_set(table, 10, 0);
         
        -   ad->create_btn = elm_button_add(table);
        -   evas_object_size_hint_weight_set(ad->create_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        -   evas_object_size_hint_align_set(ad->create_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
        -   elm_object_text_set(ad->create_btn, "Create");
        -   elm_object_disabled_set(ad->create_btn, EINA_FALSE);
        -   evas_object_smart_callback_add(ad->create_btn, "clicked", clicked_create_cb, ad);
        -   evas_object_show(ad->create_btn);
        -   elm_table_pack(table, ad->create_btn, 0, 0, 1, 1);
        -
        -   ad->fence_status_btn = elm_button_add(table);
        -   evas_object_size_hint_weight_set(ad->fence_status_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        -   evas_object_size_hint_align_set(ad->fence_status_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
        -   elm_object_text_set(ad->fence_status_btn, "Fence Status");
        -   elm_object_disabled_set(ad->fence_status_btn, EINA_TRUE);
        -   evas_object_smart_callback_add(ad->fence_status_btn, "clicked", show_popup_cb, ad);
        -   evas_object_show(ad->fence_status_btn);
        -   elm_table_pack(table, ad->fence_status_btn, 1, 0, 1, 1);
        -
        -   ad->add_fence_btn = elm_button_add(table);
        -   evas_object_size_hint_weight_set(ad->add_fence_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        -   evas_object_size_hint_align_set(ad->add_fence_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
        -   elm_object_text_set(ad->add_fence_btn, "Add Fence");
        -   elm_object_disabled_set(ad->add_fence_btn, EINA_TRUE);
        -   evas_object_smart_callback_add(ad->add_fence_btn, "clicked", show_popup_cb, ad);
        -   evas_object_show(ad->add_fence_btn);
        -   elm_table_pack(table, ad->add_fence_btn, 0, 1, 1, 1);
        -
        -   ad->add_place_btn = elm_button_add(table);
        -   evas_object_size_hint_weight_set(ad->add_place_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        -   evas_object_size_hint_align_set(ad->add_place_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
        -   elm_object_text_set(ad->add_place_btn, "Add Place");
        -   elm_object_disabled_set(ad->add_place_btn, EINA_TRUE);
        -   evas_object_smart_callback_add(ad->add_place_btn, "clicked", show_popup_cb, ad);
        -   evas_object_show(ad->add_place_btn);
        -   elm_table_pack(table, ad->add_place_btn, 1, 1, 1, 1);
        -
        -   ad->start_btn = elm_button_add(table);
        -   evas_object_size_hint_weight_set(ad->start_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        -   evas_object_size_hint_align_set(ad->start_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
        -   elm_object_text_set(ad->start_btn, "Start");
        -   elm_object_disabled_set(ad->start_btn, EINA_TRUE);
        -   evas_object_smart_callback_add(ad->start_btn, "clicked", show_popup_cb, ad);
        -   evas_object_show(ad->start_btn);
        -   elm_table_pack(table, ad->start_btn, 0, 2, 1, 1);
        -
        -   ad->stop_btn = elm_button_add(table);
        -   evas_object_size_hint_weight_set(ad->stop_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        -   evas_object_size_hint_align_set(ad->stop_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
        -   elm_object_text_set(ad->stop_btn, "Stop");
        -   elm_object_disabled_set(ad->stop_btn, EINA_TRUE);
        -   evas_object_smart_callback_add(ad->stop_btn, "clicked", show_popup_cb, ad);
        -   evas_object_show(ad->stop_btn);
        -   elm_table_pack(table, ad->stop_btn, 1, 2, 1, 1);
        -
        -   ad->remove_fence_btn = elm_button_add(table);
        -   evas_object_size_hint_weight_set(ad->remove_fence_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        -   evas_object_size_hint_align_set(ad->remove_fence_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
        -   elm_object_text_set(ad->remove_fence_btn, "Remove Fence");
        -   elm_object_disabled_set(ad->remove_fence_btn, EINA_TRUE);
        -   evas_object_smart_callback_add(ad->remove_fence_btn, "clicked", show_popup_cb, ad);
        -   evas_object_show(ad->remove_fence_btn);
        -   elm_table_pack(table, ad->remove_fence_btn, 0, 3, 1, 1);
        -
        -   ad->remove_place_btn = elm_button_add(table);
        -   evas_object_size_hint_weight_set(ad->remove_place_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        -   evas_object_size_hint_align_set(ad->remove_place_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
        -   elm_object_text_set(ad->remove_place_btn, "Remove Place");
        -   elm_object_disabled_set(ad->remove_place_btn, EINA_TRUE);
        -   evas_object_smart_callback_add(ad->remove_place_btn, "clicked", show_popup_cb, ad);
        -   evas_object_show(ad->remove_place_btn);
        -   elm_table_pack(table, ad->remove_place_btn, 1, 3, 1, 1);
        -
        -   ad->update_place_btn = elm_button_add(table);
        -   evas_object_size_hint_weight_set(ad->update_place_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        -   evas_object_size_hint_align_set(ad->update_place_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
        -   elm_object_text_set(ad->update_place_btn, "Update Place");
        -   elm_object_disabled_set(ad->update_place_btn, EINA_TRUE);
        -   evas_object_smart_callback_add(ad->update_place_btn, "clicked", show_popup_cb, ad);
        -   evas_object_show(ad->update_place_btn);
        -   elm_table_pack(table, ad->update_place_btn, 0, 4, 1, 1);
        -
        -   ad->destroy_btn = elm_button_add(table);
        -   evas_object_size_hint_weight_set(ad->destroy_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        -   evas_object_size_hint_align_set(ad->destroy_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
        -   elm_object_text_set(ad->destroy_btn, "Destroy");
        -   elm_object_disabled_set(ad->destroy_btn, EINA_TRUE);
        -   evas_object_smart_callback_add(ad->destroy_btn, "clicked", clicked_destroy_cb, ad);
        -   evas_object_show(ad->destroy_btn);
        -   elm_table_pack(table, ad->destroy_btn, 1, 4, 1, 1);
        +   ad->create_btn = elm_button_add(table);
        +   evas_object_size_hint_weight_set(ad->create_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        +   evas_object_size_hint_align_set(ad->create_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
        +   elm_object_text_set(ad->create_btn, "<font_size=30>Create</font_size>");
        +   elm_object_disabled_set(ad->create_btn, EINA_FALSE);
        +   evas_object_smart_callback_add(ad->create_btn, "clicked", clicked_create_cb, ad);
        +   evas_object_show(ad->create_btn);
        +   elm_table_pack(table, ad->create_btn, 0, 0, 1, 1);
        +
        +   ad->fence_status_btn = elm_button_add(table);
        +   evas_object_size_hint_weight_set(ad->fence_status_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        +   evas_object_size_hint_align_set(ad->fence_status_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
        +   elm_object_text_set(ad->fence_status_btn, "<font_size=30>Fence Status</font_size>");
        +   elm_object_disabled_set(ad->fence_status_btn, EINA_TRUE);
        +   evas_object_smart_callback_add(ad->fence_status_btn, "clicked", show_popup_cb, ad);
        +   evas_object_show(ad->fence_status_btn);
        +   elm_table_pack(table, ad->fence_status_btn, 1, 0, 1, 1);
        +
        +   ad->add_fence_btn = elm_button_add(table);
        +   evas_object_size_hint_weight_set(ad->add_fence_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        +   evas_object_size_hint_align_set(ad->add_fence_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
        +   elm_object_text_set(ad->add_fence_btn, "<font_size=30>Add Fence</font_size>");
        +   elm_object_disabled_set(ad->add_fence_btn, EINA_TRUE);
        +   evas_object_smart_callback_add(ad->add_fence_btn, "clicked", show_popup_cb, ad);
        +   evas_object_show(ad->add_fence_btn);
        +   elm_table_pack(table, ad->add_fence_btn, 0, 1, 1, 1);
        +
        +   ad->add_place_btn = elm_button_add(table);
        +   evas_object_size_hint_weight_set(ad->add_place_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        +   evas_object_size_hint_align_set(ad->add_place_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
        +   elm_object_text_set(ad->add_place_btn, "<font_size=30>Add Place</font_size>");
        +   elm_object_disabled_set(ad->add_place_btn, EINA_TRUE);
        +   evas_object_smart_callback_add(ad->add_place_btn, "clicked", show_popup_cb, ad);
        +   evas_object_show(ad-"add_place_btn);
        +   elm_table_pack(table, ad-"add_place_btn, 1, 1, 1, 1);
        +
        +   ad->start_btn = elm_button_add(table);
        +   evas_object_size_hint_weight_set(ad->start_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        +   evas_object_size_hint_align_set(ad->start_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
        +   elm_object_text_set(ad->start_btn, "<font_size=30>Start</font_size>");
        +   elm_object_disabled_set(ad->start_btn, EINA_TRUE);
        +   evas_object_smart_callback_add(ad->start_btn, "clicked", show_popup_cb, ad);
        +   evas_object_show(ad->start_btn);
        +   elm_table_pack(table, ad->start_btn, 0, 2, 1, 1);
        +
        +   ad->stop_btn = elm_button_add(table);
        +   evas_object_size_hint_weight_set(ad->stop_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        +   evas_object_size_hint_align_set(ad->stop_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
        +   elm_object_text_set(ad->stop_btn, "<font_size=30>Stop</font_size>");
        +   elm_object_disabled_set(ad->stop_btn, EINA_TRUE);
        +   evas_object_smart_callback_add(ad->stop_btn, "clicked", show_popup_cb, ad);
        +   evas_object_show(ad->stop_btn);
        +   elm_table_pack(table, ad->stop_btn, 1, 2, 1, 1);
        +
        +   ad->remove_fence_btn = elm_button_add(table);
        +   evas_object_size_hint_weight_set(ad->remove_fence_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        +   evas_object_size_hint_align_set(ad->remove_fence_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
        +   elm_object_text_set(ad->remove_fence_btn, "<font_size=30>Remove Fence</font_size>");
        +   elm_object_disabled_set(ad->remove_fence_btn, EINA_TRUE);
        +   evas_object_smart_callback_add(ad->remove_fence_btn, "clicked", show_popup_cb, ad);
        +   evas_object_show(ad->remove_fence_btn);
        +   elm_table_pack(table, ad->remove_fence_btn, 0, 3, 1, 1);
        +
        +   ad->remove_place_btn = elm_button_add(table);
        +   evas_object_size_hint_weight_set(ad->remove_place_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        +   evas_object_size_hint_align_set(ad->remove_place_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
        +   elm_object_text_set(ad->remove_place_btn, "<font_size=30>Remove Place</font_size>");
        +   elm_object_disabled_set(ad->remove_place_btn, EINA_TRUE);
        +   evas_object_smart_callback_add(ad->remove_place_btn, "clicked", show_popup_cb, ad);
        +   evas_object_show(ad->remove_place_btn);
        +   elm_table_pack(table, ad->remove_place_btn, 1, 3, 1, 1);
        +
        +   ad->update_place_btn = elm_button_add(table);
        +   evas_object_size_hint_weight_set(ad->update_place_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        +   evas_object_size_hint_align_set(ad->update_place_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
        +   elm_object_text_set(ad->update_place_btn, "<font_size=30>Update Place</font_size>");
        +   elm_object_disabled_set(ad->update_place_btn, EINA_TRUE);
        +   evas_object_smart_callback_add(ad->update_place_btn, "clicked", show_popup_cb, ad);
        +   evas_object_show(ad->update_place_btn);
        +   elm_table_pack(table, ad->update_place_btn, 0, 4, 1, 1);
        +
        +   ad->destroy_btn = elm_button_add(table);
        +   evas_object_size_hint_weight_set(ad->destroy_btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        +   evas_object_size_hint_align_set(ad->destroy_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
        +   elm_object_text_set(ad->destroy_btn, "<font_size=30<Destroy</font_size>");
        +   elm_object_disabled_set(ad->destroy_btn, EINA_TRUE);
        +   evas_object_smart_callback_add(ad->destroy_btn, "clicked", clicked_destroy_cb, ad);
        +   evas_object_show(ad->destroy_btn);
        +   elm_table_pack(table, ad->destroy_btn, 1, 4, 1, 1);
         
            evas_object_show(table);
         
            return table;
         }
        -

        The show_popup_cb() function has several functions for remaining buttons.

        +

        The show_popup_cb() function has several functions for the remaining buttons.

         static void
         show_popup_cb(void *data, Evas_Object *obj, void *event_info)
         {
            appdata_s *ad = (appdata_s *)data;
         
        -   if (obj == ad->fence_status_btn)
        +   if (obj == ad->fence_status_btn)
               select_fence_list(ad, get_status_cb);
        -   else if (obj == ad->add_fence_btn)
        +   else if (obj == ad->add_fence_btn)
               select_place_list(ad, add_fence_cb);
        -   else if (obj == ad->add_place_btn)
        -      insert_place_name(ad, ad->add_place_btn, -1, NULL);
        -   else if (obj == ad->start_btn)
        +   else if (obj == ad->add_place_btn)
        +      insert_place_name(ad, ad->add_place_btn, -1, NULL);
        +   else if (obj == ad->start_btn)
               select_fence_list(ad, start_fence_cb);
        -   else if (obj == ad->stop_btn)
        +   else if (obj == ad->stop_btn)
               select_fence_list(ad, stop_fence_cb);
        -   else if (obj == ad->remove_fence_btn)
        +   else if (obj == ad->remove_fence_btn)
               select_fence_list(ad, remove_fence_cb);
        -   else if (obj == ad->remove_place_btn)
        +   else if (obj == ad->remove_place_btn)
               select_place_list(ad, remove_place_cb);
        -   else if (obj == ad->update_place_btn)
        +   else if (obj == ad->update_place_btn)
               select_place_list(ad, update_place_cb);
         }
         

        Application Operation

        -

        To manage contacts:

        -
          +

          Each application operation is activated by clicking the applicable button on the main view:

          +
          • -

            Create a handle of geofence-manager.

            +

            Create a geofence manager handle:

             static void
            @@ -251,33 +253,34 @@ clicked_create_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EIN
                appdata_s *ad = (appdata_s *) data;
                int ret = 0;
             
            -   ret = geofence_manager_create(&(ad->geo_manager));
            -
            -   elm_entry_entry_set(ad->entry, "geofence_manager_create");
            -   showError(ad->event_entry, ret);
            -   elm_entry_entry_set(ad->status_entry, "");
            -
            -   if (ret == GEOFENCE_MANAGER_ERROR_NONE) {
            -      elm_object_disabled_set(ad->create_btn, EINA_TRUE);
            -      elm_object_disabled_set(ad->fence_status_btn, EINA_FALSE);
            -      elm_object_disabled_set(ad->add_fence_btn, EINA_FALSE);
            -      elm_object_disabled_set(ad->add_place_btn, EINA_FALSE);
            -      elm_object_disabled_set(ad->start_btn, EINA_FALSE);
            -      elm_object_disabled_set(ad->stop_btn, EINA_FALSE);
            -      elm_object_disabled_set(ad->remove_fence_btn, EINA_FALSE);
            -      elm_object_disabled_set(ad->remove_place_btn, EINA_FALSE);
            -      elm_object_disabled_set(ad->update_place_btn, EINA_FALSE);
            -      elm_object_disabled_set(ad->destroy_btn, EINA_FALSE);
            -
            -      geofence_manager_set_geofence_event_cb(ad->geo_manager, show_event_cb, ad);
            -      geofence_manager_set_geofence_state_changed_cb(ad->geo_manager, show_state_changed_cb, ad);
            +   ret = geofence_manager_create(&(ad->geo_manager));
            +
            +   elm_entry_entry_set(ad->entry, "<font_size=30><align=left>geofence_manager_create</align></font_size>");
            +   showError(ad->event_entry, ret);
            +   elm_entry_entry_set(ad->status_entry, "<font_size=25><align=left></align></font_size>");
            +
            +   if (ret == GEOFENCE_MANAGER_ERROR_NONE) 
            +   {
            +      elm_object_disabled_set(ad->create_btn, EINA_TRUE);
            +      elm_object_disabled_set(ad->fence_status_btn, EINA_FALSE);
            +      elm_object_disabled_set(ad->add_fence_btn, EINA_FALSE);
            +      elm_object_disabled_set(ad->add_place_btn, EINA_FALSE);
            +      elm_object_disabled_set(ad->start_btn, EINA_FALSE);
            +      elm_object_disabled_set(ad->stop_btn, EINA_FALSE);
            +      elm_object_disabled_set(ad->remove_fence_btn, EINA_FALSE);
            +      elm_object_disabled_set(ad->remove_place_btn, EINA_FALSE);
            +      elm_object_disabled_set(ad->update_place_btn, EINA_FALSE);
            +      elm_object_disabled_set(ad->destroy_btn, EINA_FALSE);
            +
            +      geofence_manager_set_geofence_event_cb(ad->geo_manager, show_event_cb, ad);
            +      geofence_manager_set_geofence_state_changed_cb(ad->geo_manager, show_state_changed_cb, ad);
                }
             }
             
          • -

            Destroy the handle of geofence-manager.

            +

            Destroy the geofence manager handle:

             static void
            @@ -286,270 +289,282 @@ clicked_destroy_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EI
                appdata_s *ad = (appdata_s *) data;
                int ret = 0;
             
            -   geofence_manager_unset_geofence_event_cb(ad->geo_manager);
            -   geofence_manager_unset_geofence_state_changed_cb(ad->geo_manager);
            -
            -   ret = geofence_manager_destroy(ad->geo_manager);
            -
            -   elm_entry_entry_set(ad->entry, "geofence_manager_destroy");
            -	showError(ad->event_entry, ret);
            -	elm_entry_entry_set(ad->status_entry, "");
            -
            -   if (ret == GEOFENCE_MANAGER_ERROR_NONE) {
            -      elm_object_disabled_set(ad->create_btn, EINA_FALSE);
            -      elm_object_disabled_set(ad->fence_status_btn, EINA_TRUE);
            -      elm_object_disabled_set(ad->add_fence_btn, EINA_TRUE);
            -      elm_object_disabled_set(ad->add_place_btn, EINA_TRUE);
            -      elm_object_disabled_set(ad->start_btn, EINA_TRUE);
            -      elm_object_disabled_set(ad->stop_btn, EINA_TRUE);
            -      elm_object_disabled_set(ad->remove_fence_btn, EINA_TRUE);
            -      elm_object_disabled_set(ad->remove_place_btn, EINA_TRUE);
            -      elm_object_disabled_set(ad->update_place_btn, EINA_TRUE);
            -      elm_object_disabled_set(ad->destroy_btn, EINA_TRUE);
            -
            -      ad->geo_manager = NULL;
            +   geofence_manager_unset_geofence_event_cb(ad->geo_manager);
            +   geofence_manager_unset_geofence_state_changed_cb(ad->geo_manager);
            +
            +   ret = geofence_manager_destroy(ad->geo_manager);
            +
            +   elm_entry_entry_set(ad->entry, "<font_size=30><align=left>geofence_manager_destroy</align></font_size>");
            +   showError(ad->event_entry, ret);
            +   elm_entry_entry_set(ad->status_entry, "<font_size=25><align=left></align></font_size>");
            +
            +   if (ret == GEOFENCE_MANAGER_ERROR_NONE) 
            +   {
            +      elm_object_disabled_set(ad->create_btn, EINA_FALSE);
            +      elm_object_disabled_set(ad->fence_status_btn, EINA_TRUE);
            +      elm_object_disabled_set(ad->add_fence_btn, EINA_TRUE);
            +      elm_object_disabled_set(ad->add_place_btn, EINA_TRUE);
            +      elm_object_disabled_set(ad->start_btn, EINA_TRUE);
            +      elm_object_disabled_set(ad->stop_btn, EINA_TRUE);
            +      elm_object_disabled_set(ad->remove_fence_btn, EINA_TRUE);
            +      elm_object_disabled_set(ad->remove_place_btn, EINA_TRUE);
            +      elm_object_disabled_set(ad->update_place_btn, EINA_TRUE);
            +      elm_object_disabled_set(ad->destroy_btn, EINA_TRUE);
            +
            +      ad->geo_manager = NULL;
                }
             }
             
          • -

            Get a status of the selected fence.

            +

            Get the status of the selected fence:

             static void
             get_status_cb(void *data, Evas_Object *obj, void *event_info)
             {
            -   appdata_s *ad = evas_object_data_get(obj, "app_data");
            +   appdata_s *ad = evas_object_data_get(obj, "app_data");
                int geofence_id = (int) data;
                geofence_status_h status = NULL;
                geofence_state_e state;
                int seconds = 0;
                int ret = 0;
                char buf[50] = {};
            -   char *state_str[] = {"UNCERTAIN", "IN", "OUT"};
            +   char *state_str[] = {"UNCERTAIN", "IN", "OUT"};
             
            -   evas_object_del(ad->popup);
            +   evas_object_del(ad->popup);
             
            -   ret = geofence_status_create(geofence_id, &status);
            -   elm_entry_entry_set(ad->entry, "geofence_status_create");
            -   showError(ad->event_entry, ret);
            -   elm_entry_entry_set(ad->status_entry, "");
            +   ret = geofence_status_create(geofence_id, &status);
            +   elm_entry_entry_set(ad->entry, "<font_size=30><align=left>geofence_status_create</align></font_size>");
            +   showError(ad->event_entry, ret);
            +   elm_entry_entry_set(ad->status_entry, "<font_size=25><align=left></align></font_size>");
             
                if (ret != GEOFENCE_MANAGER_ERROR_NONE)
                   return;
             
            -   ret = geofence_status_get_state(status, &state);
            -   elm_entry_entry_set(ad->entry, "geofence_status_get_state");
            -   showError(ad->event_entry, ret);
            -   elm_entry_entry_set(ad->status_entry, "");
            +   ret = geofence_status_get_state(status, &state);
            +   elm_entry_entry_set(ad->entry, "<font_size=30><align=left>geofence_status_get_state</align></font_size>");
            +   showError(ad->event_entry, ret);
            +   elm_entry_entry_set(ad->status_entry, "<font_size=25><align=left></align></font_size>");
             
            -   ret = geofence_status_get_duration(status, &seconds);
            -   elm_entry_entry_set(ad->entry, "geofence_status_get_duration");
            -   showError(ad->event_entry, ret);
            -   elm_entry_entry_set(ad->status_entry, "");
            +   ret = geofence_status_get_duration(status, &seconds);
            +   elm_entry_entry_set(ad->entry, "<font_size=30><align=left>geofence_status_get_duration</align></font_size>");
            +   showError(ad->event_entry, ret);
            +   elm_entry_entry_set(ad->status_entry, "<font_size=25><align=left></align></font_size>");
             
                if (ret != GEOFENCE_MANAGER_ERROR_NONE)
                   return;
             
                ret = geofence_status_destroy(status);
            -   elm_entry_entry_set(ad->entry, "geofence_status_destroy");
            -   showError(ad->event_entry, ret);
            -   snprintf(buf, sizeof(buf), "Fence ID: %d, State: %s, Duration: %d", geofence_id, state_str[state], seconds);
            -   elm_entry_entry_append(ad->status_entry, "");
            -   elm_entry_entry_append(ad->status_entry, buf);
            -   elm_entry_entry_append(ad->status_entry, "");
            +   elm_entry_entry_set(ad->entry, "<font_size=30><align=left>geofence_status_destroy</align></font_size>");
            +   showError(ad->event_entry, ret);
            +   snprintf(buf, sizeof(buf), "Fence ID: %d, State: %s, Duration: %d", geofence_id, state_str[state], seconds);
            +   elm_entry_entry_append(ad->status_entry, "<font_size=25><align=left>");
            +   elm_entry_entry_append(ad->status_entry, buf);
            +   elm_entry_entry_append(ad->status_entry, "</align></font_size>");
             }
             
          • -

            Add a fence according to the input data.

            +

            Add a fence according to the input data:

             static void
             popup_method_value_cb(void *data, Evas_Object *obj, void *event_info)
             {
            -   appdata_s *ad = evas_object_data_get(obj, "app_data");
            -   int place_id = (int)evas_object_data_get(obj, "place_id");;
            +   appdata_s *ad = evas_object_data_get(obj, "app_data");
            +   int place_id = (int)evas_object_data_get(obj, "place_id");
                int method = (int)data;
             
            -   const char *value = elm_entry_entry_get(ad->gen_entry);
            -   const char *value_nd = elm_entry_entry_get(ad->gen_entry_nd);
            +   const char *value = elm_entry_entry_get(ad->gen_entry);
            +   const char *value_nd = elm_entry_entry_get(ad->gen_entry_nd);
             
                geofence_h fence = NULL;
                double latitude = 0.0, longitude = 0.0;
                int geofence_id = -1;
                int ret = 0;
             
            -   if (!strcmp(value, "")) {
            -      show_toast_popup(ad, "Empty Value");
            +   if (!strcmp(value, "")) 
            +   {
            +      show_toast_popup(ad, "Empty Value");
            +
                   return;
                }
            -   if (method == METHOD_GPS) {
            -      if (!strcmp(value_nd, "")) {
            -         show_toast_popup(ad, "Empty Value");
            +   if (method == METHOD_GPS) 
            +   {
            +      if (!strcmp(value_nd, "")) 
            +      {
            +         show_toast_popup(ad, "Empty Value");
            +
                      return;
                   }
                }
             
            -   switch (method) {
            -   case METHOD_GPS:
            -      latitude = atof(value);
            -      longitude = atof(value_nd);
            -      ret = geofence_create_geopoint(place_id, latitude, longitude, 200, "Dubai MR", &fence);
            -      elm_entry_entry_set(ad->entry, "geofence_create_geopoint");
            -      break;
            -   case METHOD_WIFI:
            -      ret = geofence_create_wifi(place_id, value, "Dubai MR", &fence);
            -      elm_entry_entry_set(ad->entry, "geofence_create_wifi");
            -      break;
            -   case METHOD_BT:
            -      ret = geofence_create_bluetooth(place_id, value, "Dubai MR", &fence);
            -      elm_entry_entry_set(ad->entry, "geofence_create_bluetooth");
            -      break;
            -   default:
            -      break;
            +   switch (method) 
            +   {
            +      case METHOD_GPS:
            +         latitude = atof(value);
            +         longitude = atof(value_nd);
            +         ret = geofence_create_geopoint(place_id, latitude, longitude, 200, "Dubai MR", &fence);
            +         elm_entry_entry_set(ad->entry, "<font_size=30><align=left>geofence_create_geopoint</align></font_size>");
            +         break;
            +      case METHOD_WIFI:
            +         ret = geofence_create_wifi(place_id, value, "Dubai MR", &fence);
            +         elm_entry_entry_set(ad->entry, "<font_size=30><align=left>geofence_create_wifi</align></font_size>");
            +         break;
            +      case METHOD_BT:
            +         ret = geofence_create_bluetooth(place_id, value, "Dubai MR", &fence);
            +         elm_entry_entry_set(ad->entry, "<font_size=30><align=left>geofence_create_bluetooth</align></font_size>");
            +         break;
            +      default:
            +         break;
                }
            -   showError(ad->event_entry, ret);
            -   elm_entry_entry_set(ad->status_entry, "");
            +   showError(ad->event_entry, ret);
            +   elm_entry_entry_set(ad->status_entry, "<font_size=25><align=left></align></font_size>");
             
            -   ret = geofence_manager_add_fence(ad->geo_manager, fence, &geofence_id);
            -   showError(ad->event_entry, ret);
            +   ret = geofence_manager_add_fence(ad->geo_manager, fence, &geofence_id);
            +   showError(ad->event_entry, ret);
             
            -   evas_object_del(ad->popup);
            +   evas_object_del(ad->popup);
             }
             
          • -

            Remove the selected fence.

            +

            Remove the selected fence:

             static void
             remove_fence_cb(void *data, Evas_Object *obj, void *event_info)
             {
            -   appdata_s *ad = evas_object_data_get(obj, "app_data");
            +   appdata_s *ad = evas_object_data_get(obj, "app_data");
                int fence_id = (int) data;
                int ret = 0;
             
            -   evas_object_del(ad->popup);
            +   evas_object_del(ad->popup);
             
            -   ret = geofence_manager_remove_fence(ad->geo_manager, fence_id);
            +   ret = geofence_manager_remove_fence(ad->geo_manager, fence_id);
             
            -   elm_entry_entry_set(ad->entry, "geofence_manager_remove_fence");
            -   showError(ad->event_entry, ret);
            -   elm_entry_entry_set(ad->status_entry, "");
            +   elm_entry_entry_set(ad->entry, "<font_size=30><align=left>geofence_manager_remove_fence</align></font_size>");
            +   showError(ad->event_entry, ret);
            +   elm_entry_entry_set(ad->status_entry, "<font_size=25><align=left></align></font_size>");
             }
             
          • -

            Add a place or rename the selected place.

            +

            Add a place or rename the selected place:

             static void
             popup_place_name_cb(void *data, Evas_Object *obj, void *event_info)
             {
            -   appdata_s *ad = evas_object_data_get(obj, "app_data");
            +   appdata_s *ad = evas_object_data_get(obj, "app_data");
                int ret = 0;
                int place_id = (int)data;
            -   const char *place_name = elm_entry_entry_get(ad->gen_entry);
            +   const char *place_name = elm_entry_entry_get(ad->gen_entry);
            +
            +   if (!strcmp(place_name, "")) 
            +   {
            +      show_toast_popup(ad, "Empty Value");
             
            -   if (!strcmp(place_name, "")) {
            -      show_toast_popup(ad, "Empty Value");
                   return;
                }
             
            -   if (place_id < 0) {
            -      ret = geofence_manager_add_place(ad->geo_manager, place_name, &place_id);
            -      elm_entry_entry_set(ad->entry, "geofence_manager_add_place");
            -   } else {
            -      ret = geofence_manager_update_place(ad->geo_manager, place_id, place_name);
            -      elm_entry_entry_set(ad->entry, "geofence_manager_update_place");
            +   if (place_id < 0) 
            +   {
            +      ret = geofence_manager_add_place(ad->geo_manager, place_name, &place_id);
            +      elm_entry_entry_set(ad->entry, "<font_size=30><align=left>geofence_manager_add_place</align></font_size>");
            +   } 
            +   else 
            +   {
            +      ret = geofence_manager_update_place(ad->geo_manager, place_id, place_name);
            +      elm_entry_entry_set(ad->entry, "<font_size=30><align=left>geofence_manager_update_place</align></font_size>");
                }
             
            -   showError(ad->event_entry, ret);
            +   showError(ad->event_entry, ret);
             
            -   if (place_id > 0 && place_id <= 3)
            -      elm_entry_entry_set(ad->status_entry, "The renaming of default place is impossible");
            +   if (place_id > 0 && place_id <= 3)
            +      elm_entry_entry_set(ad->status_entry, "<font_size=25><align=left>The renaming of default place is impossible</align></font_size>");
                else
            -      elm_entry_entry_set(ad->status_entry, "");
            +      elm_entry_entry_set(ad->status_entry, "<font_size=25><align=left></align></font_size>");
             
            -   evas_object_del(ad->popup);
            +   evas_object_del(ad->popup);
             }
             
          • -

            Remove the selected place.

            +

            Remove the selected place:

             static void
             remove_place_cb(void *data, Evas_Object *obj, void *event_info)
             {
            -   appdata_s *ad = evas_object_data_get(obj, "app_data");
            +   appdata_s *ad = evas_object_data_get(obj, "app_data");
                int place_id = (int) data;
                int ret = 0;
             
            -   evas_object_del(ad->popup);
            +   evas_object_del(ad->popup);
             
            -   ret = geofence_manager_remove_place(ad->geo_manager, place_id);
            +   ret = geofence_manager_remove_place(ad->geo_manager, place_id);
             
            -   elm_entry_entry_set(ad->entry, "geofence_manager_remove_place");
            -   showError(ad->event_entry, ret);
            -   if (place_id <= 3)
            -      elm_entry_entry_set(ad->status_entry, "The deletion of default place is impossible");
            +   elm_entry_entry_set(ad->entry, "<font_size=30><align=left>geofence_manager_remove_place</align></font_size>");
            +   showError(ad->event_entry, ret);
            +   if (place_id <= 3)
            +      elm_entry_entry_set(ad->status_entry, "<font_size=25><align=left>The deletion of default place is impossible</align></font_size>");
                else
            -      elm_entry_entry_set(ad->status_entry, "");
            +      elm_entry_entry_set(ad->status_entry, "<font_size=25><align=left></align></font_size>");
             }
             
          • -

            Start the selected fence.

            +

            Start the selected fence:

             static void
             start_fence_cb(void *data, Evas_Object *obj, void *event_info)
             {
            -   appdata_s *ad = evas_object_data_get(obj, "app_data");
            +   appdata_s *ad = evas_object_data_get(obj, "app_data");
                int fence_id = (int) data;
                int ret = 0;
             
            -   evas_object_del(ad->popup);
            +   evas_object_del(ad->popup);
             
            -   ret = geofence_manager_start(ad->geo_manager, fence_id);
            +   ret = geofence_manager_start(ad->geo_manager, fence_id);
             
            -   elm_entry_entry_set(ad->entry, "geofence_manager_start");
            -   showError(ad->event_entry, ret);
            -   elm_entry_entry_set(ad->status_entry, "");
            +   elm_entry_entry_set(ad->entry, "<font_size=30><align=left>geofence_manager_start</align></font_size>");
            +   showError(ad->event_entry, ret);
            +   elm_entry_entry_set(ad->status_entry, "<font_size=25><align=left></align></font_size>");
             }
             
          • -

            Stop the selected fence.

            +

            Stop the selected fence:

             static void
             stop_fence_cb(void *data, Evas_Object *obj, void *event_info)
             {
            -   appdata_s *ad = evas_object_data_get(obj, "app_data");
            +   appdata_s *ad = evas_object_data_get(obj, "app_data");
                int fence_id = (int) data;
                int ret = 0;
             
            -   evas_object_del(ad->popup);
            +   evas_object_del(ad->popup);
             
            -   ret = geofence_manager_stop(ad->geo_manager, fence_id);
            +   ret = geofence_manager_stop(ad->geo_manager, fence_id);
             
            -   elm_entry_entry_set(ad->entry, "geofence_manager_stop");
            -   showError(ad->event_entry, ret);
            -   elm_entry_entry_set(ad->status_entry, "");
            +   elm_entry_entry_set(ad->entry, "<font_size=30><align=left>geofence_manager_stop</align></font_size>");
            +   showError(ad->event_entry, ret);
            +   elm_entry_entry_set(ad->status_entry, "<font_size=25><align=left></align></font_size>");
             }
             
          • -
        +
      diff --git a/org.tizen.sampledescriptions/html/mobile_n/lbs_maps_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/lbs_maps_sd_mn.htm index a988f45..07e5d3f 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/lbs_maps_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/lbs_maps_sd_mn.htm @@ -10,7 +10,7 @@ - LBS Maps Overview + LBS Maps Sample Overview @@ -20,16 +20,16 @@
      -

      Mobile native

      +

      Mobile native

      -

      LBS Maps Overview

      -

      The LBS Maps application demonstrates how to use map services like geocode, place search and route using the Map Service API.

      -

      The following figure illustrates the main views of the LBS Maps application.

      -

      Figure: Application main view

      -

      Application control view +

      LBS Maps Sample Overview

      +

      The LBS Maps application demonstrates how to use map services, such as geocoding, place search, and routing, using the Map Service API.

      +

      The following figure illustrates the main view of the LBS Maps application.

      +

      Figure: LBS Maps main view

      +

      LBS Maps main view

      -

      In the main view, the user can choose one of the available operations.

      +

      In the main view, you can perform various location-based operations, such as searching for locations and having them displayed on the map.

      Prerequisites

      To ensure proper application execution, the following privileges must be set:

      @@ -41,53 +41,56 @@

      Implementation

      Application Main View

      - -

      The create_base_gui() function creates a searchbar and map view panel.

      - +

      To create the application main view:

      +
        +
      1. +

        Create the application layout with the create_base_gui() function:

         static void
         create_base_gui(appdata_s *ad)
         {
        -   /* Window */
        -   ad->win = elm_win_util_standard_add(PACKAGE, PACKAGE);
        -   elm_win_conformant_set(ad->win, EINA_TRUE);
        -   elm_win_autodel_set(ad->win, EINA_TRUE);
        -
        -   if (elm_win_wm_rotation_supported_get(ad->win)) {
        -      int rots[4] = { 0, 90, 180, 270 };
        -      elm_win_wm_rotation_available_rotations_set(ad->win, (const int *)(&rots), 4);
        +   // Window
        +   ad->win = elm_win_util_standard_add(PACKAGE, PACKAGE);
        +   elm_win_conformant_set(ad->win, EINA_TRUE);
        +   elm_win_autodel_set(ad->win, EINA_TRUE);
        +
        +   if (elm_win_wm_rotation_supported_get(ad->win)) 
        +   {
        +      int rots[4] = {0, 90, 180, 270};
        +      elm_win_wm_rotation_available_rotations_set(ad->win, (const int *)(&rots), 4);
            }
         
        -   evas_object_smart_callback_add(ad->win, "delete,request", win_delete_request_cb, NULL);
        +   evas_object_smart_callback_add(ad->win, "delete,request", win_delete_request_cb, NULL);
         
        -   /* Conformant */
        -   ad->conform = elm_conformant_add(ad->win);
        -   elm_win_indicator_mode_set(ad->win, ELM_WIN_INDICATOR_SHOW);
        -   elm_win_indicator_opacity_set(ad->win, ELM_WIN_INDICATOR_OPAQUE);
        -   evas_object_size_hint_weight_set(ad->conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        -   elm_win_resize_object_add(ad->win, ad->conform);
        -   evas_object_show(ad->conform);
        +   // Conformant
        +   ad->conform = elm_conformant_add(ad->win);
        +   elm_win_indicator_mode_set(ad->win, ELM_WIN_INDICATOR_SHOW);
        +   elm_win_indicator_opacity_set(ad->win, ELM_WIN_INDICATOR_OPAQUE);
        +   evas_object_size_hint_weight_set(ad->conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        +   elm_win_resize_object_add(ad->win, ad->conform);
        +   evas_object_show(ad->conform);
         
        -   /* layout */
        -   ad->layout = elm_layout_add(ad->conform);
        -   evas_object_size_hint_weight_set(ad->layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        -   elm_layout_theme_set(ad->layout, "layout", "application", "default");
        -   elm_object_content_set(ad->conform, ad->layout);
        -   evas_object_show(ad->layout);
        +   // Layout
        +   ad->layout = elm_layout_add(ad->conform);
        +   evas_object_size_hint_weight_set(ad->layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        +   elm_layout_theme_set(ad->layout, "layout", "application", "default");
        +   elm_object_content_set(ad->conform, ad->layout);
        +   evas_object_show(ad->layout);
         
        -   ad->nf = elm_naviframe_add(ad->layout);
        -   elm_object_part_content_set(ad->layout, "elm.swallow.content", ad->nf);
        -   eext_object_event_callback_add(ad->nf, EEXT_CALLBACK_BACK, eext_naviframe_back_cb, NULL);
        -   evas_object_show(ad->nf);
        +   ad->nf = elm_naviframe_add(ad->layout);
        +   elm_object_part_content_set(ad->layout, "elm.swallow.content", ad->nf);
        +   eext_object_event_callback_add(ad->nf, EEXT_CALLBACK_BACK, eext_naviframe_back_cb, NULL);
        +   evas_object_show(ad->nf);
         
        -   create_map_view(ad->nf);
        +   create_map_view(ad->nf);
         
        -   /* Show window after base gui is set up */
        -   evas_object_show(ad->win);
        +   // Show the window after the base GUI is set up
        +   evas_object_show(ad->win);
         }
         
        - -

        The create_map_view() function creates a searchbar and map view panel.

        +
      2. +
      3. +

        Create a searchbar and a map view panel with the create_map_view() function:

         Evas_Object*
         create_map_view(Evas_Object *parent)
        @@ -98,7 +101,8 @@ create_map_view(Evas_Object *parent)
         
            MapLocationView(view_layout);
         
        -   Elm_Object_Item *navi_item = elm_naviframe_item_push(parent, "Maps Service Sample", NULL, NULL, view_layout, NULL);
        +   Elm_Object_Item *navi_item = elm_naviframe_item_push(parent, "Maps Service Sample", 
        +                                                        NULL, NULL, view_layout, NULL);
            elm_naviframe_item_pop_cb_set(navi_item, __map_view_delete_request_cb, (void *)NULL);
         
            m_parent_evas_obj = parent;
        @@ -114,29 +118,33 @@ MapLocationView(Evas_Object *view_layout)
         
            app_get_resource(MAP_VIEW_EDJ_FILE, edj_path, (int)PATH_MAX);
         
        -   dlog_print(DLOG_ERROR, LOG_TAG, "edj_path : %s", edj_path);
        +   dlog_print(DLOG_ERROR, LOG_TAG, "edj_path : %s", edj_path);
         
        -   elm_layout_file_set(view_layout, edj_path, "map-view");
        +   elm_layout_file_set(view_layout, edj_path, "map-view");
            evas_object_size_hint_weight_set(view_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
            evas_object_size_hint_align_set(view_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
            evas_object_show(view_layout);
         
        -   if (!m_map_obj_layout) {
        +   if (!m_map_obj_layout) 
        +   {
               m_map_obj_layout = __create_map_object(view_layout);
        -      if (m_map_obj_layout == NULL) {
        -         dlog_print(DLOG_ERROR, LOG_TAG, "failed to create map object");
        +      if (m_map_obj_layout == NULL) 
        +      {
        +         dlog_print(DLOG_ERROR, LOG_TAG, "failed to create map object");
        +
                  return ;
               }
            }
         
        -   elm_object_part_content_set(view_layout, "map", m_map_obj_layout);
        +   elm_object_part_content_set(view_layout, "map", m_map_obj_layout);
         
            if (!m_searchbar_obj)
               m_searchbar_obj = __create_map_searchbar(view_layout);
         
        -   if (m_searchbar_obj) {
        +   if (m_searchbar_obj) 
        +   {
               elm_genlist_realized_items_update(m_searchbar_obj);
        -      elm_object_part_content_set(view_layout, "searchbar", m_searchbar_obj);
        +      elm_object_part_content_set(view_layout, "searchbar", m_searchbar_obj);
            }
         
            elm_object_focus_set(m_map_obj_layout, EINA_TRUE);
        @@ -145,22 +153,27 @@ MapLocationView(Evas_Object *view_layout)
            elm_object_focus_custom_chain_append(view_layout, m_searchbar_obj, NULL);
         }
         
        - -

        The __create_map_object() function creates map view panel and has callbacks for scroll, longpress and click events on map

        +
      4. +
      5. +

        Create callbacks for scroll, longpress, and click events on the map with the __create_map_object() function:

         static Evas_Object*
         __create_map_object(Evas_Object *layout)
         {
            char edj_path[PATH_MAX] = {0, };
         
        -   if (m_map_evas_object != NULL) {
        -      /* WERROR("m_map_evas_object is created already"); */
        +   if (m_map_evas_object != NULL) 
        +   {
        +      // WERROR("m_map_evas_object is created already");
        +
               return m_map_evas_object;
            }
         
            m_map_evas_object = elm_map_add(layout);
        -   if (m_map_evas_object == NULL) {
        -      dlog_print(DLOG_ERROR, LOG_TAG, "m_map_evas_object is NULL");
        +   if (m_map_evas_object == NULL) 
        +   {
        +      dlog_print(DLOG_ERROR, LOG_TAG, "m_map_evas_object is NULL");
        +
               return NULL;
            }
         
        @@ -171,15 +184,15 @@ __create_map_object(Evas_Object *layout)
            Evas_Object *map_obj_layout = elm_layout_add(layout);
         
            app_get_resource(MAP_VIEW_EDJ_FILE, edj_path, (int)PATH_MAX);
        -   elm_layout_file_set(map_obj_layout, edj_path, "map_object");
        +   elm_layout_file_set(map_obj_layout, edj_path, "map_object");
            evas_object_size_hint_weight_set(map_obj_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
            evas_object_size_hint_align_set(map_obj_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
            evas_object_show(map_obj_layout);
        -   elm_layout_content_set(map_obj_layout, "content", m_map_evas_object);
        +   elm_layout_content_set(map_obj_layout, "content", m_map_evas_object);
         
        -   evas_object_smart_callback_add(m_map_evas_object, "scroll", __maps_scroll_cb, (void *)NULL);
        -   evas_object_smart_callback_add(m_map_evas_object, "longpressed", __maps_longpress_cb, (void *)NULL);
        -   evas_object_smart_callback_add(m_map_evas_object, "clicked", __maps_clicked_cb, (void *)NULL);
        +   evas_object_smart_callback_add(m_map_evas_object, "scroll", __maps_scroll_cb, (void *)NULL);
        +   evas_object_smart_callback_add(m_map_evas_object, "longpressed", __maps_longpress_cb, (void *)NULL);
        +   evas_object_smart_callback_add(m_map_evas_object, "clicked", __maps_clicked_cb, (void *)NULL);
         
            elm_map_zoom_set(m_map_evas_object, 15);
            elm_map_region_bring_in(m_map_evas_object, DEFAULT_LON, DEFAULT_LAT);
        @@ -187,64 +200,69 @@ __create_map_object(Evas_Object *layout)
            return map_obj_layout;
         }
         
        - -

        The __create_map_searchbar() function creates searchbar which is placed on top of map view.

        +
      6. +
      7. +

        Use the __create_map_searchbar() function to create a searchbar to be placed on top of the map view:

         static Evas_Object*
         __create_map_searchbar(Evas_Object *parent)
         {
            Evas_Object *searchbar_obj = elm_genlist_add(parent);
            if (searchbar_obj == NULL)
        -      dlog_print(DLOG_ERROR, LOG_TAG, "searchbar is NULL");
        +      dlog_print(DLOG_ERROR, LOG_TAG, "searchbar is NULL");
            evas_object_size_hint_weight_set(searchbar_obj, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
            evas_object_size_hint_align_set(searchbar_obj, EVAS_HINT_FILL, EVAS_HINT_FILL);
            elm_genlist_mode_set(searchbar_obj, ELM_LIST_COMPRESS);
            evas_object_show(searchbar_obj);
        -   evas_object_smart_callback_add(searchbar_obj, "realized", __searchbar_gl_realized_cb, NULL);
        +   evas_object_smart_callback_add(searchbar_obj, "realized", __searchbar_gl_realized_cb, NULL);
         
            Elm_Genlist_Item_Class *search_itc = elm_genlist_item_class_new();
        -   search_itc->item_style = "entry.icon";
        -   search_itc->func.text_get = NULL;
        -   search_itc->func.content_get = __searchbar_gl_content_cb;
        -   search_itc->func.del = NULL;
        +   search_itc->item_style = "entry.icon";
        +   search_itc->func.text_get = NULL;
        +   search_itc->func.content_get = __searchbar_gl_content_cb;
        +   search_itc->func.del = NULL;
         
            elm_genlist_item_append(searchbar_obj, search_itc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
            elm_genlist_item_class_free(search_itc);
            elm_object_focus_custom_chain_append(parent, searchbar_obj, NULL);
        +
            return searchbar_obj;
         }
         
        - -

        The create_search_view() function creates searchbar and place category view for place search.

        +
      8. +
      9. +

        Define the place search view:

        +
        1. Create a searchbar and a place category view with the create_search_view() function:
           Evas_Object *
           create_search_view(Evas_Object *parent)
           {
              __poi_result_obtained = false;
           
          -   char edj_path[PATH_MAX] = {0, };
          +   char edj_path[PATH_MAX] = {0,};
           
              app_get_resource(SEARCH_VIEW_EDJ_FILE, edj_path, (int)PATH_MAX);
           
          -   dlog_print(DLOG_DEBUG, LOG_TAG, "edj_path : %s", edj_path);
          +   dlog_print(DLOG_DEBUG, LOG_TAG, "edj_path : %s", edj_path);
           
              m_search_view_layout = elm_layout_add(parent);
          -   elm_layout_file_set(m_search_view_layout, edj_path, "result-view");
          +   elm_layout_file_set(m_search_view_layout, edj_path, "result-view");
              evas_object_size_hint_weight_set(m_search_view_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
              evas_object_size_hint_align_set(m_search_view_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
           
              Evas_Object *searchbar_obj = __create_searchbar(m_search_view_layout);
              if (searchbar_obj == NULL)
          -      dlog_print(DLOG_ERROR, LOG_TAG, "searchbar_obj is NULL");
          -   elm_object_part_content_set(m_search_view_layout, "searchbar", searchbar_obj);
          +      dlog_print(DLOG_ERROR, LOG_TAG, "searchbar_obj is NULL");
          +   elm_object_part_content_set(m_search_view_layout, "searchbar", searchbar_obj);
           
              Evas_Object *scroller = elm_scroller_add(m_search_view_layout);
              elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
           
              m_search_content_layout = __create_search_category_genlist(scroller);
          -   elm_object_part_content_set(m_search_view_layout, "list", m_search_content_layout);
          +   elm_object_part_content_set(m_search_view_layout, "list", m_search_content_layout);
           
          -   Elm_Object_Item *navi_item = elm_naviframe_item_push(parent, "Search", NULL, NULL, m_search_view_layout, NULL);
          +   Elm_Object_Item *navi_item = elm_naviframe_item_push(parent, "Search", NULL, NULL, 
          +                                                        m_search_view_layout, NULL);
              elm_naviframe_item_title_enabled_set(navi_item, EINA_FALSE, EINA_FALSE);
           
              elm_naviframe_item_pop_cb_set(navi_item, __search_view_delete_request_cb, (void *)NULL);
          @@ -256,8 +274,9 @@ create_search_view(Evas_Object *parent)
              return m_search_view_layout;
           }
           
          - -

          The __create_searchbar() function creates a searchbar for place search.

          +
        2. +
        3. +

          Define the place search searchbar with the __create_searchbar() function:

           static Evas_Object*
           __create_searchbar(Evas_Object *parent)
          @@ -266,14 +285,14 @@ __create_searchbar(Evas_Object *parent)
              evas_object_size_hint_weight_set(searchbar_obj, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
              evas_object_size_hint_align_set(searchbar_obj, EVAS_HINT_FILL, EVAS_HINT_FILL);
              evas_object_show(searchbar_obj);
          -   elm_layout_theme_set(searchbar_obj, "layout", "searchbar", "default");
          +   elm_layout_theme_set(searchbar_obj, "layout", "searchbar", "default");
           
          -   /* entry */
          +   // Entry
              Evas_Object *editfield = create_editfield(searchbar_obj);
              eext_entry_selection_back_event_allow_set(editfield, EINA_TRUE);
              evas_object_size_hint_weight_set(editfield, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
              evas_object_size_hint_align_set(editfield, EVAS_HINT_FILL, EVAS_HINT_FILL);
          -   Evas_Object *entry = elm_object_part_content_get(editfield, "elm.swallow.content");
          +   Evas_Object *entry = elm_object_part_content_get(editfield, "elm.swallow.content");
              evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
              evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
              elm_entry_single_line_set(entry, EINA_TRUE);
          @@ -282,18 +301,18 @@ __create_searchbar(Evas_Object *parent)
              elm_entry_input_panel_layout_set(entry, ELM_INPUT_PANEL_LAYOUT_NORMAL);
              elm_entry_input_panel_return_key_type_set(entry, ELM_INPUT_PANEL_RETURN_KEY_TYPE_SEARCH);
              eext_entry_selection_back_event_allow_set(entry, EINA_TRUE);
          -   elm_object_part_text_set(entry, "elm.guide", "Search");
          +   elm_object_part_text_set(entry, "elm.guide", "Search");
              elm_entry_prediction_allow_set(entry, EINA_FALSE);
           
              evas_object_show(entry);
           
          -   elm_object_part_content_set(searchbar_obj, "elm.swallow.content", entry);
          +   elm_object_part_content_set(searchbar_obj, "elm.swallow.content", entry);
           
              return searchbar_obj;
           }
          -
          - -

          The __create_search_category_genlist() function creates some predefined search categories for place search below the searchbar.

          +
        4. +
        5. +

          Use the __create_search_category_genlist() function to create some predefined search categories for the place search below the searchbar:

           static Evas_Object*
           __create_search_category_genlist(Evas_Object *parent)
          @@ -302,46 +321,48 @@ __create_search_category_genlist(Evas_Object *parent)
              elm_list_mode_set(search_category_genlist, ELM_LIST_COMPRESS);
              evas_object_show(search_category_genlist);
           
          -   /* category */
          +   // Category
              Elm_Genlist_Item_Class *category_itc = elm_genlist_item_class_new();
          -   category_itc->item_style = "type1";
          -   category_itc->func.content_get = NULL;	/* __search_category_gl_content_get_cb; */
          -   category_itc->func.text_get = __search_category_gl_text_get_cb;
          -
          -   for (int i = 0; i < NUM_OF_CATEGORY; i++) {
          -      elm_genlist_item_append(search_category_genlist,
          -            category_itc,
          -            (void *)i,
          -            NULL,
          -            ELM_GENLIST_ITEM_NONE,
          -            __search_category_gl_select_cb,
          -            (void *)i);
          +   category_itc->item_style = "type1";
          +   category_itc->func.content_get = NULL; // __search_category_gl_content_get_cb;
          +   category_itc->func.text_get = __search_category_gl_text_get_cb;
          +
          +   for (int i = 0; i < NUM_OF_CATEGORY; i++) 
          +   {
          +      elm_genlist_item_append(search_category_genlist, category_itc, (void *)i, NULL,
          +                              ELM_GENLIST_ITEM_NONE, __search_category_gl_select_cb, (void *)i);
              }
           
              elm_genlist_item_class_free(category_itc);
          +
              return search_category_genlist;
           }
           
          -const char *category_list_text[] = {
          -   "Food and Drink",
          -   "Transport",
          -   "Hotels",
          -   "Shopping",
          -   "Leisure"
          +const char* 
          +category_list_text[] = 
          +{
          +   "Food and Drink",
          +   "Transport",
          +   "Hotels",
          +   "Shopping",
          +   "Leisure"
           };
           
           static char*
           __search_category_gl_text_get_cb(void *data, Evas_Object *obj, const char *part)
           {
              int index = (int)data;
          -   if (!strcmp(part, "elm.text"))
          +   if (!strcmp(part, "elm.text"))
                 return strdup(category_list_text[index]);
           
              return NULL;
           }
           
          - -

          The create_route_view() function creates 2 searchbars for source and destination.

          +
      10. +
      11. +

        Define the route search view:

        +
        1. +

          Create 2 searchbars for the starting point and destination with the create_route_view() function:

           void
           create_route_view(Evas_Object *parent)
          @@ -353,18 +374,19 @@ create_route_view(Evas_Object *parent)
              app_get_resource(ROUTE_VIEW_EDJ_FILE, edj_path, (int)PATH_MAX);
           
              Evas_Object *m_view_layout = elm_layout_add(parent);
          -   elm_layout_file_set(m_view_layout, edj_path, "route-view");
          +   elm_layout_file_set(m_view_layout, edj_path, "route-view");
              evas_object_size_hint_weight_set(m_view_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
              evas_object_size_hint_align_set(m_view_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
              evas_object_show(m_view_layout);
           
              m_route_searchbox_layout = __create_route_searchbox(m_view_layout);
              if (m_route_searchbox_layout != NULL)
          -      elm_object_part_content_set(m_view_layout, "searchbar-box", m_route_searchbox_layout);
          +      elm_object_part_content_set(m_view_layout, "searchbar-box", m_route_searchbox_layout);
           
              m_route_view_layout = m_view_layout;
           
          -   Elm_Object_Item *navi_item = elm_naviframe_item_push(parent, "Search", NULL, NULL, m_route_view_layout, NULL);
          +   Elm_Object_Item *navi_item = elm_naviframe_item_push(parent, "Search", NULL, NULL, 
          +                                                        m_route_view_layout, NULL);
              elm_naviframe_item_title_enabled_set(navi_item, EINA_FALSE, EINA_FALSE);
           
              m_route_parent_obj = parent;
          @@ -374,8 +396,9 @@ create_route_view(Evas_Object *parent)
              find_route();
           }
           
          - -

          The __create_route_searchbox() function creates 2 editfields for source and destination.

          +
        2. +
        3. +

          Create 2 editfields for the starting point and destination with the __create_route_searchbox() function:

           static Evas_Object*
           __create_route_searchbox(Evas_Object *parent)
          @@ -384,41 +407,42 @@ __create_route_searchbox(Evas_Object *parent)
              app_get_resource(ROUTE_VIEW_EDJ_FILE, edj_path, (int)PATH_MAX);
           
              Evas_Object *searchbox_layout = elm_layout_add(parent);
          -   elm_layout_file_set(searchbox_layout, edj_path, "searchbox-layout");
          +   elm_layout_file_set(searchbox_layout, edj_path, "searchbox-layout");
              evas_object_size_hint_weight_set(searchbox_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
              evas_object_size_hint_align_set(searchbox_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
              evas_object_show(searchbox_layout);
           
          -   /* set icon */
          +   // Set icon
              Evas_Object *icon_layout = elm_layout_add(searchbox_layout);
          -   elm_layout_file_set(icon_layout, edj_path, "searchbox-icon-layout");
          +   elm_layout_file_set(icon_layout, edj_path, "searchbox-icon-layout");
              evas_object_size_hint_weight_set(icon_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
              evas_object_size_hint_align_set(icon_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
              evas_object_show(icon_layout);
           
          -   /* set Searchbox entry */
          +   // Set the searchbox entry
              Evas_Object *entry_layout = elm_layout_add(searchbox_layout);
          -   elm_layout_file_set(entry_layout, edj_path, "searchbox-entry-layout");
          +   elm_layout_file_set(entry_layout, edj_path, "searchbox-entry-layout");
              evas_object_size_hint_weight_set(entry_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
              evas_object_size_hint_align_set(entry_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
              evas_object_show(entry_layout);
          -   elm_object_part_content_set(searchbox_layout, "searchbox-entry", entry_layout);
          +   elm_object_part_content_set(searchbox_layout, "searchbox-entry", entry_layout);
           
          -   /* Set From */
          +   // Set starting point
              Evas_Object *searchbar_from_obj = __create_searchbar_from(entry_layout);
          -   elm_object_part_content_set(entry_layout, "entry-from", searchbar_from_obj);
          +   elm_object_part_content_set(entry_layout, "entry-from", searchbar_from_obj);
           
          -   /* Set dest */
          +   // Set destination
              Evas_Object *searchbar_to_obj = __create_searchbar_to(entry_layout);
          -   elm_object_part_content_set(entry_layout, "entry-to", searchbar_to_obj);
          +   elm_object_part_content_set(entry_layout, "entry-to", searchbar_to_obj);
           
          -   elm_object_part_content_set(parent, "searchbar-box", searchbox_layout);
          +   elm_object_part_content_set(parent, "searchbar-box", searchbox_layout);
           
              return searchbox_layout;
           }
           
          - -

          The __create_searchbar_from() function creates creates editfield for displaying source.

          +
        4. +
        5. +

          Use the __create_searchbar_from() function to create an editfield for displaying the starting point:

           static Evas_Object*
           __create_searchbar_from(Evas_Object *layout)
          @@ -427,18 +451,19 @@ __create_searchbar_from(Evas_Object *layout)
              eext_entry_selection_back_event_allow_set(editfield, EINA_TRUE);
              evas_object_size_hint_weight_set(editfield, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
              evas_object_size_hint_align_set(editfield, EVAS_HINT_FILL, EVAS_HINT_FILL);
          -   Evas_Object *entry = elm_object_part_content_get(editfield, "elm.swallow.content");
          +   Evas_Object *entry = elm_object_part_content_get(editfield, "elm.swallow.content");
              elm_entry_input_panel_enabled_set(entry, EINA_FALSE);
              eext_entry_selection_back_event_allow_set(entry, EINA_TRUE);
              elm_object_focus_allow_set(entry, EINA_FALSE);
           
          -   elm_entry_entry_set(entry, "Map Center Location");
          +   elm_entry_entry_set(entry, "Map Center Location");
           
              return entry;
           }
           
          - -

          The __create_searchbar_to() function creates editfield for displaying destination.

          +
        6. +
        7. +

          Use the __create_searchbar_to() function to create an editfield for displaying the destination:

           static Evas_Object*
           __create_searchbar_to(Evas_Object *layout)
          @@ -447,7 +472,7 @@ __create_searchbar_to(Evas_Object *layout)
              eext_entry_selection_back_event_allow_set(editfield, EINA_TRUE);
              evas_object_size_hint_weight_set(editfield, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
              evas_object_size_hint_align_set(editfield, EVAS_HINT_FILL, EVAS_HINT_FILL);
          -   Evas_Object *entry = elm_object_part_content_get(editfield, "elm.swallow.content");
          +   Evas_Object *entry = elm_object_part_content_get(editfield, "elm.swallow.content");
              elm_entry_input_panel_enabled_set(entry, EINA_FALSE);
              eext_entry_selection_back_event_allow_set(entry, EINA_TRUE);
              elm_entry_input_panel_enabled_set(entry, EINA_FALSE);
          @@ -457,58 +482,61 @@ __create_searchbar_to(Evas_Object *layout)
              double tLng = 0.0;
              char *name = NULL;
           
          -   map_get_selected_poi_lat_lng(&tLat, &tLng, &name);
          +   map_get_selected_poi_lat_lng(&tLat, &tLng, &name);
           
              elm_entry_entry_set(entry, name);
           
              return entry;
           }
           
          +
      12. +

      Application Operation

      -

      To use map services:

      +

      To use the map service:

      1. -

        Create a handle of maps-service.

        +

        Create a maps service handle:

         void
         create_maps_service_handle()
         {
        -   int error = maps_service_create(MAPS_PROVIDER, &__maps_service_handler);
        +   int error = maps_service_create(MAPS_PROVIDER, &__maps_service_handler);
            bool supported = false;
         
        -   /* Set the provider Key to access the services from provider */
        +   // Set the provider key to access the services from provider
            maps_service_set_provider_key(__maps_service_handler, PROVIDER_TEST_KEY);
         
        -   /* Check if Routing is available */
        +   // Check which services are available
            error = maps_service_provider_is_service_supported(__maps_service_handler,
        -         MAPS_SERVICE_SEARCH_ROUTE, &supported);
        +         MAPS_SERVICE_SEARCH_ROUTE, &supported);
            __is_routing_supported = (error == MAPS_ERROR_NONE) ? supported : false;
         
            error = maps_service_provider_is_service_supported(__maps_service_handler,
        -         MAPS_SERVICE_SEARCH_PLACE, &supported);
        +         MAPS_SERVICE_SEARCH_PLACE, &supported);
            __is_place_search_supported = (error == MAPS_ERROR_NONE) ? supported : false;
         
            error = maps_service_provider_is_service_supported(__maps_service_handler,
        -         MAPS_SERVICE_REVERSE_GEOCODE, &supported);
        +         MAPS_SERVICE_REVERSE_GEOCODE, &supported);
            __is_revgeocode_supported = (error == MAPS_ERROR_NONE) ? supported : false;
         }
         
      2. -

        Destroy the handle of maps-service.

        +

        Destroy the maps service handle:

         void
         destroy_maps_service_handle()
         {
        -   if (__maps_service_handler) {
        +   if (__maps_service_handler) 
        +   {
               int error = maps_service_destroy(__maps_service_handler);
               if (error != MAPS_ERROR_NONE)
        -         dlog_print(DLOG_ERROR, LOG_TAG, "Failed to destroy maps service [%d]", error);
        +         dlog_print(DLOG_ERROR, LOG_TAG, "Failed to destroy maps service [%d]", error);
         
               __maps_service_handler = NULL;
            }
        @@ -516,8 +544,10 @@ destroy_maps_service_handle()
         
      3. +
      4. Get the reverse geocode: +
        1. -

          Perform Longpress gesture on the particular location in the map and request reverse geocode.

          +

          Perform a longpress gesture on a particular location on the map and request the reverse geocode:

           int
          @@ -526,15 +556,15 @@ request_revgeocode(maps_service_h maps, double latitude, double longitude)
              int request_id = -1;
           
              maps_preference_h preference = NULL;
          -   maps_preference_create(&preference);
          +   maps_preference_create(&preference);
           
          -   int error = maps_service_reverse_geocode(maps,					/* maps service handle */
          -                  latitude,				/* center location */
          -                  longitude,				/* search radius from center location */
          -                  preference,				/* reverse geocode preference */
          -                  __maps_service_reverse_geocode_cb,	/* callback */
          -                  (void *)NULL,				/* user_data */
          -                  &request_id);				/* request_id */
          +   int error = maps_service_reverse_geocode(maps, // Maps service handle
          +                                            latitude, // Center location
          +                                            longitude, // Search radius from center location
          +                                            preference, // Reverse geocode preference
          +                                            __maps_service_reverse_geocode_cb, // Callback
          +                                            (void *)NULL, // User data
          +                                            &request_id); // Request ID
           
              if (error != MAPS_ERROR_NONE)
                 __request_id = GEO_REQ_ID_IDLE;
          @@ -549,7 +579,7 @@ request_revgeocode(maps_service_h maps, double latitude, double longitude)
           
        2. -

          Get the reverse geocode result

          +

          Get the reverse geocode result:

           void
          @@ -557,131 +587,162 @@ __maps_service_reverse_geocode_cb(maps_error_e result, int request_id, int index
           {
              __request_id = GEO_REQ_ID_IDLE;
           
          -   if (result != MAPS_ERROR_NONE) {
          -      /* Invalid Result */
          -      dlog_print(DLOG_ERROR, LOG_TAG, "Invalid Reverse Geocode Result");
          +   if (result != MAPS_ERROR_NONE) 
          +   {
          +      // Invalid result
          +      dlog_print(DLOG_ERROR, LOG_TAG, "Invalid Reverse Geocode Result");
                 handle_addr_notification(NULL);
          +
                 return;
              }
           
              char resultText[1024] = {0, };
          -   strcpy(resultText, "");
          +   strcpy(resultText, "");
           
              char *street = NULL;
          -   maps_address_get_street(address, &street);
          -   if (street != NULL) {
          +   maps_address_get_street(address, &street);
          +   if (street != NULL) 
          +   {
                 strcat(resultText, street);
                 free(street);
                 street = NULL;
          -   } else {
          -      dlog_print(DLOG_ERROR, LOG_TAG, "Street is NULL");
          +   } 
          +   else 
          +   {
          +      dlog_print(DLOG_ERROR, LOG_TAG, "Street is NULL");
              }
           
              char *district = NULL;
          -   maps_address_get_district(address, &district);
          -   if (district != NULL) {
          -      if (strlen(resultText) > 0)
          -         strcat(resultText, ", ");
          +   maps_address_get_district(address, &district);
          +   if (district != NULL) 
          +   {
          +      if (strlen(resultText) > 0)
          +         strcat(resultText, ", ");
                 strcat(resultText, district);
                 free(district);
                 district = NULL;
          -   } else {
          -      dlog_print(DLOG_ERROR, LOG_TAG, "District is NULL");
          +   } 
          +   else 
          +   {
          +      dlog_print(DLOG_ERROR, LOG_TAG, "District is NULL");
              }
           
              char *city = NULL;
          -   maps_address_get_city(address, &city);
          -   if (city != NULL) {
          -      if (strlen(resultText) > 0)
          -         strcat(resultText, ", ");
          +   maps_address_get_city(address, &city);
          +   if (city != NULL) 
          +   {
          +      if (strlen(resultText) > 0)
          +         strcat(resultText, ", ");
                 strcat(resultText, city);
                 free(city);
                 city = NULL;
          -   } else {
          -      dlog_print(DLOG_ERROR, LOG_TAG, "City is NULL");
          +   } 
          +   else 
          +   {
          +      dlog_print(DLOG_ERROR, LOG_TAG, "City is NULL");
              }
           
              char *state = NULL;
          -   maps_address_get_state(address, &state);
          -   if (state != NULL) {
          -      if (strlen(resultText) > 0)
          -         strcat(resultText, ", ");
          +   maps_address_get_state(address, &state);
          +   if (state != NULL) 
          +   {
          +      if (strlen(resultText) > 0)
          +         strcat(resultText, ", ");
                 strcat(resultText, state);
                 free(state);
                 state = NULL;
          -   } else {
          -		dlog_print(DLOG_ERROR, LOG_TAG, "State is NULL");
          +   } 
          +   else 
          +   {
          +      dlog_print(DLOG_ERROR, LOG_TAG, "State is NULL");
              }
           
              char *country = NULL;
          -   maps_address_get_country(address, &country);
          -   if (country != NULL) {
          -      if (strlen(resultText) > 0)
          -         strcat(resultText, ", ");
          +   maps_address_get_country(address, &country);
          +   if (country != NULL) 
          +   {
          +      if (strlen(resultText) > 0)
          +         strcat(resultText, ", ");
                 strcat(resultText, country);
                 free(country);
                 country = NULL;
          -   } else {
          -      dlog_print(DLOG_ERROR, LOG_TAG, "Country is NULL");
          +   } 
          +   else 
          +   {
          +      dlog_print(DLOG_ERROR, LOG_TAG, "Country is NULL");
              }
           
              char *country_code = NULL;
          -   maps_address_get_country_code(address, &country_code);
          -   if (country_code != NULL) {
          -      if (strlen(resultText) > 0)
          -         strcat(resultText, ", ");
          +   maps_address_get_country_code(address, &country_code);
          +   if (country_code != NULL) 
          +   {
          +      if (strlen(resultText) > 0)
          +         strcat(resultText, ", ");
                 strcat(resultText, country_code);
                 free(country_code);
                 country_code = NULL;
          -   } else {
          -      dlog_print(DLOG_ERROR, LOG_TAG, "Country Code is NULL");
          +   } 
          +   else 
          +   {
          +      dlog_print(DLOG_ERROR, LOG_TAG, "Country Code is NULL");
              }
           
              char *county = NULL;
          -   maps_address_get_county(address, &county);
          -   if (county != NULL) {
          -      if (strlen(resultText) > 0)
          -         strcat(resultText, ", ");
          +   maps_address_get_county(address, &county);
          +   if (county != NULL) 
          +   {
          +      if (strlen(resultText) > 0)
          +         strcat(resultText, ", ");
                 strcat(resultText, county);
                 free(county);
                 county = NULL;
          -   } else {
          -      dlog_print(DLOG_ERROR, LOG_TAG, "County is NULL");
          +   } 
          +   else 
          +   {
          +      dlog_print(DLOG_ERROR, LOG_TAG, "County is NULL");
              }
           
              char *postal_code = NULL;
          -   maps_address_get_postal_code(address, &postal_code);
          -   if (postal_code != NULL) {
          -      if (strlen(resultText) > 0)
          -         strcat(resultText, ", ");
          +   maps_address_get_postal_code(address, &postal_code);
          +   if (postal_code != NULL) 
          +   {
          +      if (strlen(resultText) > 0)
          +         strcat(resultText, ", ");
                 strcat(resultText, postal_code);
                 free(postal_code);
                 postal_code = NULL;
          -   } else {
          -      dlog_print(DLOG_ERROR, LOG_TAG, "Postal Code is NULL");
          +   } 
          +   else 
          +   {
          +      dlog_print(DLOG_ERROR, LOG_TAG, "Postal Code is NULL");
              }
           
          -   if (strlen(resultText) > 0) {
          +   if (strlen(resultText) > 0) 
          +   {
                 revgeocode_result = (revgeocode_s *)malloc(sizeof(revgeocode_s));
           
          -      if (!revgeocode_result) {
          +      if (!revgeocode_result) 
          +      {
                    handle_addr_notification(NULL);
          -         return ;
          +
          +         return;
                 }
           
                 char *top = strdup(resultText);
          -      strtok(top, ",");
          -      if (top == NULL || !strcmp(top, resultText)) {
          +      strtok(top, ", ");
          +      if (top == NULL || !strcmp(top, resultText)) 
          +      {
                    if (top) free(top);
          -         strcpy(top, "Selected location");
          +         strcpy(top, "Selected location");
                 }
          -      dlog_print(DLOG_ERROR, LOG_TAG, "addr %s, set name as %s", resultText, top);
          -      strcpy(revgeocode_result->name, top);
          -      if (strlen(resultText) > 0)
          -         strcpy(revgeocode_result->address, &resultText[strlen(top) + 2]);
          +      dlog_print(DLOG_ERROR, LOG_TAG, "addr %s, set name as %s", resultText, top);
          +      strcpy(revgeocode_result->name, top);
          +      if (strlen(resultText) > 0)
          +         strcpy(revgeocode_result->address, &resultText[strlen(top) + 2]);
                 else
          -         strcpy(revgeocode_result->address, (char *)"Not found");
          -   } else
          +         strcpy(revgeocode_result->address, (char *)"Not found");
          +   } 
          +   else
                 revgeocode_result = NULL;
           
              handle_addr_notification(revgeocode_result);
          @@ -690,13 +751,17 @@ __maps_service_reverse_geocode_cb(maps_error_e result, int request_id, int index
           }
           
        3. - +
        +
      5. +
      6. Perform a place search: +
        1. -

          Perform place search by clicking the searchbar in the main application view and selecting any of the predefined search category list

          +

          Perform a place search by clicking the searchbar in the main application view and selecting any of the predefined search categories:

           int
          -request_place(maps_service_h maps, double lat, double lon, char *search_keyword, place_type category_type, int distance, int max_results, place_s **place_res)
          +request_place(maps_service_h maps, double lat, double lon, char *search_keyword, place_type category_type, 
          +              int distance, int max_results, place_s **place_res)
           {
              int ret = 0;
              int request_id = 0;
          @@ -706,84 +771,88 @@ request_place(maps_service_h maps, double lat, double lon, char *search_keyword,
              maps_place_category_h category = NULL;
              maps_coordinates_h coords = NULL;
           
          -   if (distance < 1)
          +   if (distance < 1)
                 distance = POI_SERVICE_CATEGORY_SEARCH_RADIUS;
           
          -   maps_preference_create(&preference);	/* Create Maps Preference */
          -   maps_place_filter_create(&filter);		/* Create Maps Place Filter */
          +   maps_preference_create(&preference); // Create maps preference
          +   maps_place_filter_create(&filter); // Create maps place filter
           
          -   if (category_type != none_category) {
          -      /* CATEGORY Search */
          -      maps_place_category_create(&category);	/* Create place_category */
          +   if (category_type != none_category) 
          +   {
          +      // Category search
          +      maps_place_category_create(&category); // Create place_category
           
          -      maps_place_category_set_name(category, __get_category_name(category_type));	/* Set Category Name for place search */
          +      maps_place_category_set_name(category, __get_category_name(category_type)); // Set category name for place search
           
          -      ret = maps_place_filter_set_category(filter, category);	/* Set place_category to filter */
          +      ret = maps_place_filter_set_category(filter, category); // Set place_category to filter
           
          -      if (ret != MAPS_ERROR_NONE) {
          -         dlog_print(DLOG_ERROR, LOG_TAG, "maps_place_filter_set error [%d]", ret);
          +      if (ret != MAPS_ERROR_NONE) 
          +      {
          +         dlog_print(DLOG_ERROR, LOG_TAG, "maps_place_filter_set error [%d]", ret);
                    goto EXIT;
                 }
          -   } else {
          -      /* Keyword Search */
          -      dlog_print(DLOG_DEBUG, LOG_TAG, "poi search keyword : %s", search_keyword);
          -
          -      ret = maps_place_filter_set_place_name(filter, search_keyword);	/* Keyword Search. No POI category search */
          -      if (ret != MAPS_ERROR_NONE) {
          -         dlog_print(DLOG_ERROR, LOG_TAG, "maps_place_filter_set error [%d]", ret);
          +   } 
          +   else 
          +   {
          +      // Keyword search
          +      dlog_print(DLOG_DEBUG, LOG_TAG, "poi search keyword : %s", search_keyword);
          +
          +      ret = maps_place_filter_set_place_name(filter, search_keyword); // Keyword search. No POI category search
          +      if (ret != MAPS_ERROR_NONE) 
          +      {
          +         dlog_print(DLOG_ERROR, LOG_TAG, "maps_place_filter_set error [%d]", ret);
                    goto EXIT;
                 }
              }
           
          -   maps_preference_set_max_results(preference, max_results);	/* Set Max Results Preference */
          +   maps_preference_set_max_results(preference, max_results);	// Set max results preference
           
          -   maps_coordinates_create(lat, lon, &coords);	/* Create maps coordinates for radius search */
          -   if (coords == NULL) {
          -      dlog_print(DLOG_ERROR, LOG_TAG, "coords is NULL");
          +   maps_coordinates_create(lat, lon, &coords); // Create maps coordinates for radius search
          +   if (coords == NULL) 
          +   {
          +      dlog_print(DLOG_ERROR, LOG_TAG, "coords is NULL");
                 goto EXIT;
              }
           
          -   /* Places Search */
          -   ret = maps_service_search_place(maps,
          -            coords,
          -            distance,
          -            filter,
          -            preference,
          -            __maps_service_search_place_cb,
          -            (void *) place_res,
          -            &request_id);
          -
          -   if (ret != MAPS_ERROR_NONE) {
          -      dlog_print(DLOG_ERROR, LOG_TAG, "failed to poi_service_search.");
          +   // Place search
          +   ret = maps_service_search_place(maps, coords, distance, filter, preference,
          +                                   __maps_service_search_place_cb, (void *) place_res, &request_id);
          +
          +   if (ret != MAPS_ERROR_NONE) 
          +   {
          +      dlog_print(DLOG_ERROR, LOG_TAG, "failed to poi_service_search.");
                 __request_id = POI_REQ_ID_IDLE;
                 goto EXIT;
          -   } else {
          +   } 
          +   else 
          +   {
                 __request_id = request_id;
          -      dlog_print(DLOG_ERROR, LOG_TAG, "request_id : %d", __request_id);
          +      dlog_print(DLOG_ERROR, LOG_TAG, "request_id : %d", __request_id);
              }
           
          -EXIT:
          -   if (coords)
          -      maps_coordinates_destroy(coords);
          -   if (category)
          -      maps_place_category_destroy(category);
          -   if (filter)
          -      maps_place_filter_destroy(filter);
          -   maps_preference_destroy(preference);
          +   EXIT:
          +      if (coords)
          +         maps_coordinates_destroy(coords);
          +      if (category)
          +         maps_place_category_destroy(category);
          +      if (filter)
          +         maps_place_filter_destroy(filter);
          +      maps_preference_destroy(preference);
           
          -   return ret;
          +      return ret;
           }
           
        2. -

          Get the place result.

          +

          Get the place search result:

           static bool
          -__maps_service_search_place_cb(maps_error_e error, int request_id , int index, int length , maps_place_h place , void *user_data)
          +__maps_service_search_place_cb(maps_error_e error, int request_id, int index, 
          +                               int length, maps_place_h place, void *user_data)
           {
          -   dlog_print(DLOG_DEBUG, LOG_TAG, "Place result >> index [%d]/ length [%d]", index, length);
          +   dlog_print(DLOG_DEBUG, LOG_TAG, "Place result >> index [%d]/ length [%d]", index, length);
           
              place_s** place_result = (void *) user_data;
           
          @@ -791,9 +860,11 @@ __maps_service_search_place_cb(maps_error_e error, int request_id , int index, i
              static double cur_lat, cur_lon;
              double distance = 0.0;
           
          -   if (error != MAPS_ERROR_NONE) {
          +   if (error != MAPS_ERROR_NONE) 
          +   {
                 __request_id = POI_REQ_ID_IDLE;
                 on_poi_result(length);
          +
                 return false;
              }
           
          @@ -801,48 +872,55 @@ __maps_service_search_place_cb(maps_error_e error, int request_id , int index, i
              double latitude = 0.0, longitude = 0.0;
           
              if (index == 0)
          -      map_get_poi_lat_lng(&cur_lat, &cur_lon);
          +      map_get_poi_lat_lng(&cur_lat, &cur_lon);
           
              place_result[index] = (place_s *) malloc(sizeof(place_s));
           
          -   /* Place Name */
          -   maps_place_get_name(place , &name);
          -   strcpy(place_result[index]->__place_name, name);
          +   // Place name
          +   maps_place_get_name(place, &name);
          +   strcpy(place_result[index]->__place_name, name);
           
          -   /* Place Location */
          -   maps_place_get_location(place,  &coordinates);
          -   maps_coordinates_get_latitude(coordinates, &latitude);
          -   maps_coordinates_get_longitude(coordinates, &longitude);
          -   place_result[index]->__lat = latitude;
          -   place_result[index]->__lon = longitude;
          +   // Place location
          +   maps_place_get_location(place, &coordinates);
          +   maps_coordinates_get_latitude(coordinates, &latitude);
          +   maps_coordinates_get_longitude(coordinates, &longitude);
          +   place_result[index]->__lat = latitude;
          +   place_result[index]->__lon = longitude;
              maps_coordinates_destroy(coordinates);
           
          -   /* Distance Calculation */
          -   location_manager_get_distance(cur_lat, cur_lon, latitude, longitude, &distance);
          +   // Distance calculation
          +   location_manager_get_distance(cur_lat, cur_lon, latitude, longitude, &distance);
              distance = distance * 0.001;
          -   place_result[index]->__distance = distance;
          +   place_result[index]->__distance = distance;
           
              if (index == (length-1))
                 on_poi_result(length);
           
              __request_id = POI_REQ_ID_IDLE;
           
          -   /* Release the place result */
          +   // Release the place result
              maps_place_destroy(place);
          +
              return true;
           }
           
        3. - +
        +
      7. +
      8. Perform a route search: +
        1. -

          Perform route search from map center location to selected place result by clicking direction icon in the searchbar in main application view.

          +

          Perform a route search from the map center location to a selected place result by clicking the direction icon in the searchbar in the main application view:

           int
          -request_route(maps_service_h maps, double src_lat, double src_lon, double dest_lat, double dest_lon, route_s **res)
          +request_route(maps_service_h maps, double src_lat, double src_lon, 
          +              double dest_lat, double dest_lon, route_s **res)
           {
          -   if (maps == NULL) {
          -      dlog_print(DLOG_ERROR, LOG_TAG, "maps service handle is NULL");
          +   if (maps == NULL) 
          +   {
          +      dlog_print(DLOG_ERROR, LOG_TAG, "maps service handle is NULL");
          +
                 return false;
              }
           
          @@ -851,33 +929,30 @@ request_route(maps_service_h maps, double src_lat, double src_lon, double dest_l
              maps_coordinates_h origin = NULL;
              maps_coordinates_h destination = NULL;
           
          -   /* Origin Coordinates */
          -   maps_coordinates_create(src_lat, src_lon, &origin);
          -   /* Destination Coordinates */
          -   maps_coordinates_create(dest_lat, dest_lon, &destination);
          +   // Origin coordinates
          +   maps_coordinates_create(src_lat, src_lon, &origin);
          +   // Destination coordinates
          +   maps_coordinates_create(dest_lat, dest_lon, &destination);
           
          -   /* Maps Preference */
          +   // Maps preference
              maps_preference_h preference = NULL;
          -   maps_preference_create(&preference);
          +   maps_preference_create(&preference);
           
          -   /* Set Route Transport mode Preference */
          -   /* Transport Mode - Car */
          +   // Set route transport mode preference to car
              maps_preference_set_route_transport_mode(preference, MAPS_ROUTE_TRANSPORT_MODE_CAR);
           
          -   /* Route Search */
          -   int error = maps_service_search_route(maps,
          -            origin,
          -            destination,
          -            preference,
          -            __maps_service_search_route_cb,
          -            (void *) res,
          -            &request_id);
          -
          -   if (error == MAPS_ERROR_NONE) {
          -      dlog_print(DLOG_ERROR, LOG_TAG, "request_id : %d", request_id);
          +   // Route search
          +   int error = maps_service_search_route(maps, origin, destination, preference,
          +                                         _maps_service_search_route_cb, (void *) res, &request_id);
          +
          +   if (error == MAPS_ERROR_NONE) 
          +   {
          +      dlog_print(DLOG_ERROR, LOG_TAG, "request_id : %d", request_id);
                 __route_request_id = request_id;
          -   } else {
          -      dlog_print(DLOG_ERROR, LOG_TAG, "Route Service Request Failed ::  [%d]", error);
          +   } 
          +   else 
          +   {
          +      dlog_print(DLOG_ERROR, LOG_TAG, "Route Service Request Failed ::  [%d]", error);
                 __route_request_id = ROUTE_REQ_ID_IDLE;
              }
           
          @@ -892,86 +967,98 @@ request_route(maps_service_h maps, double src_lat, double src_lon, double dest_l
           
        2. -

          Get the route result.

          +

          Get the route search result:

           bool
          -__maps_route_segment_maneuver_cb(int index, int total, maps_route_maneuver_h maneuver, void *user_data)
          +__maps_route_segment_maneuver_cb(int index, int total, 
          +                                 maps_route_maneuver_h maneuver, void *user_data)
           {
              route_s **route_result = (route_s **) user_data;
           
              double _distance = 0.0;
          -   maps_route_maneuver_get_distance_to_next_instruction(maneuver, &_distance);
          +   maps_route_maneuver_get_distance_to_next_instruction(maneuver, &_distance);
           
          -   /* Route Segment Maneuver Instruction Text */
          +   // Route segment maneuver instruction text
              char *instruction = NULL;
          -   maps_route_maneuver_get_instruction_text(maneuver, &instruction);
          +   maps_route_maneuver_get_instruction_text(maneuver, &instruction);
           
          -   if (instruction) {
          -      strcpy(((*route_result)->__maneuver[__maneuver_count]).__instruction, instruction);
          +   if (instruction) 
          +   {
          +      strcpy(((*route_result)->__maneuver[__maneuver_count]).__instruction, instruction);
                 free(instruction);
                 instruction = NULL;
          -   } else
          -      strcpy(((*route_result)->__maneuver[__maneuver_count]).__instruction, "");
          +   } 
          +   else
          +      strcpy(((*route_result)->__maneuver[__maneuver_count]).__instruction, "");
           
          -   /* Route Segment Maneuver Road Name */
          +   // Route segment maneuver road name
              char *road_name = NULL;
          -   maps_route_maneuver_get_road_name(maneuver, &road_name);
          +   maps_route_maneuver_get_road_name(maneuver, &road_name);
           
          -   if (road_name) {
          -      strcpy(((*route_result)->__maneuver[__maneuver_count]).__street_name, road_name);
          +   if (road_name) 
          +   {
          +      strcpy(((*route_result)->__maneuver[__maneuver_count]).__street_name, road_name);
                 free(road_name);
                 road_name = NULL;
          -   } else
          -      strcpy(((*route_result)->__maneuver[__maneuver_count]).__street_name, "");
          +   } 
          +   else
          +      strcpy(((*route_result)->__maneuver[__maneuver_count]).__street_name, "");
           
          -   ((*route_result)->__maneuver[__maneuver_count]).__origin_lat = segment_origin.latitude;
          -   ((*route_result)->__maneuver[__maneuver_count]).__origin_lon = segment_origin.longitude;
          -   ((*route_result)->__maneuver[__maneuver_count]).__dest_lat = segment_destination.latitude;
          -   ((*route_result)->__maneuver[__maneuver_count]).__dest_lon = segment_destination.longitude;
          +   ((*route_result)->__maneuver[__maneuver_count]).__origin_lat = segment_origin.latitude;
          +   ((*route_result)->__maneuver[__maneuver_count]).__origin_lon = segment_origin.longitude;
          +   ((*route_result)->__maneuver[__maneuver_count]).__dest_lat = segment_destination.latitude;
          +   ((*route_result)->__maneuver[__maneuver_count]).__dest_lon = segment_destination.longitude;
           
          -   /* Route Segment Maneuver turn type */
          +   // Route segment maneuver turn type
              maps_route_turn_type_e turn_type = MAPS_ROUTE_TURN_TYPE_NONE;
          -   maps_route_maneuver_get_turn_type(maneuver, &turn_type);
          +   maps_route_maneuver_get_turn_type(maneuver, &turn_type);
           
          -   strcpy(((*route_result)->__maneuver[__maneuver_count]).__turn_string, turn_id_string[turn_type]);
          +   strcpy(((*route_result)->__maneuver[__maneuver_count]).__turn_string, 
          +          turn_id_string[turn_type]);
           
              __maneuver_count++;
           
              maps_route_maneuver_destroy(maneuver);
          +
              return true;
           }
           
           bool
           __maps_route_segment_cb(int index, int total, maps_route_segment_h segment, void *user_data)
           {
          -   if (!segment) {
          -      dlog_print(DLOG_ERROR, LOG_TAG, "critical error : FAILED");
          +   if (!segment) 
          +   {
          +      dlog_print(DLOG_ERROR, LOG_TAG, "critical error : FAILED");
          +
                 return false;
              }
           
              maps_coordinates_h origin = NULL, destination = NULL;
           
          -   /* Segment Origin Coordinates */
          -   maps_route_segment_get_origin(segment, &origin);
          -   maps_coordinates_get_latitude(origin, &(segment_origin.latitude));
          -   maps_coordinates_get_longitude(origin, &(segment_origin.longitude));
          +   // Segment origin coordinates
          +   maps_route_segment_get_origin(segment, &origin);
          +   maps_coordinates_get_latitude(origin, &(segment_origin.latitude));
          +   maps_coordinates_get_longitude(origin, &(segment_origin.longitude));
              maps_coordinates_destroy(origin);
           
          -   dlog_print(DLOG_DEBUG, LOG_TAG, "Segment Origin Lat : %f, Lon : %f", segment_origin.latitude, segment_origin.longitude);
          +   dlog_print(DLOG_DEBUG, LOG_TAG, "Segment Origin Lat : %f, Lon : %f", 
          +              segment_origin.latitude, segment_origin.longitude);
           
          -   /* Segment Destination Coordinates */
          -   maps_route_segment_get_destination(segment, &destination);
          -   maps_coordinates_get_latitude(destination, &(segment_destination.latitude));
          -   maps_coordinates_get_longitude(destination, &(segment_destination.longitude));
          +   // Segment destination coordinates
          +   maps_route_segment_get_destination(segment, &destination);
          +   maps_coordinates_get_latitude(destination, &(segment_destination.latitude));
          +   maps_coordinates_get_longitude(destination, &(segment_destination.longitude));
              maps_coordinates_destroy(destination);
           
          -   dlog_print(DLOG_DEBUG, LOG_TAG, "Segment Destination Lat : %f, Lon : %f", segment_destination.latitude, segment_destination.longitude);
          +   dlog_print(DLOG_DEBUG, LOG_TAG, "Segment Destination Lat : %f, Lon : %f", 
          +              segment_destination.latitude, segment_destination.longitude);
           
          -   /* Segment Maneuvers information */
          +   // Segment maneuvers information
              maps_route_segment_foreach_maneuver(segment, __maps_route_segment_maneuver_cb, user_data);
           
              maps_route_segment_destroy(segment);
          +
              return true;
           }
           
          @@ -985,73 +1072,86 @@ __parse_route_data(maps_route_h route, int index, int total, void *user_data)
              long duration = 0;
              int ret = 0;
           
          -   /* Cloning the route */
          -   if (ret != MAPS_ERROR_NONE || !route) {
          -      dlog_print(DLOG_ERROR, LOG_TAG, "Route Response error [%d]", ret);
          +   // Clone the route
          +   if (ret != MAPS_ERROR_NONE || !route) 
          +   {
          +      dlog_print(DLOG_ERROR, LOG_TAG, "Route Response error [%d]", ret);
          +
                 return false;
              }
           
          -   /* Route - Total Distance */
          -   maps_route_get_total_distance(route, &distance);
          -   /* Route - Distance Unit */
          -   maps_route_get_distance_unit(route, &dist_unit);
          -
          -   /* Changing everything to KM (by default) */
          -   if (dist_unit == MAPS_DISTANCE_UNIT_M) {
          -      dlog_print(DLOG_DEBUG, LOG_TAG, "distance : %.5f m", distance);
          -      distance = distance / 1000;	/* convert the distance into km */
          -   } else if (dist_unit == MAPS_DISTANCE_UNIT_KM) {
          -      dlog_print(DLOG_DEBUG, LOG_TAG, "distance : %.5f km", distance);
          +   // Get the total distance
          +   maps_route_get_total_distance(route, &distance);
          +   // Get the distance unit
          +   maps_route_get_distance_unit(route, &dist_unit);
          +
          +   // Change everything to KM (by default)
          +   if (dist_unit == MAPS_DISTANCE_UNIT_M) 
          +   {
          +      dlog_print(DLOG_DEBUG, LOG_TAG, "distance : %.5f m", distance);
          +      distance = distance / 1000; // Convert the distance into KM
          +   } 
          +   else if (dist_unit == MAPS_DISTANCE_UNIT_KM) 
          +   {
          +      dlog_print(DLOG_DEBUG, LOG_TAG, "distance : %.5f km", distance);
              }
           
          -   /* Route - Total Duration */
          -   maps_route_get_total_duration(route, &duration);
          -   dlog_print(DLOG_DEBUG, LOG_TAG, "duration : %ld sec", duration);
          -   duration = (duration + 30) / 60;	/*converting duration to minutes */
          +   // Get the total duration
          +   maps_route_get_total_duration(route, &duration);
          +   dlog_print(DLOG_DEBUG, LOG_TAG, "duration : %ld sec", duration);
          +   duration = (duration + 30) / 60; // Convert the duration to minutes
           
              (*route_result) = (route_s *)malloc(sizeof(route_s));
           
          -   (*route_result)->__distance = distance;
          -   (*route_result)->__duration = duration;
          +   (*route_result)->__distance = distance;
          +   (*route_result)->__duration = duration;
           
              __maneuver_count = 0;
           
          -   /* Check if maneuver path data is supported */
          +   // Check whether maneuver path data is supported
              bool supported = false;
          -   int error = maps_service_provider_is_data_supported(get_maps_service_handle(), MAPS_ROUTE_SEGMENTS_PATH, &supported);
          +   int error = maps_service_provider_is_data_supported(get_maps_service_handle(), 
          +                                                       MAPS_ROUTE_SEGMENTS_PATH, &supported);
              const bool is_route_segment_path_supported = (error == MAPS_ERROR_NONE) ? supported : false;
           
          -   /* Check if maneuver sements data is supported */
          -   error = maps_service_provider_is_data_supported(get_maps_service_handle(), MAPS_ROUTE_SEGMENTS_MANEUVERS, &supported);
          +   // Check whether maneuver segment data is supported 
          +   error = maps_service_provider_is_data_supported(get_maps_service_handle(), 
          +                                                   MAPS_ROUTE_SEGMENTS_MANEUVERS, &supported);
              const bool is_route_segment_maneuvers_supported = (error == MAPS_ERROR_NONE) ? supported : false;
           
          -   if ((is_route_segment_path_supported) && (is_route_segment_maneuvers_supported)) {
          -   /* Allow segment maneuvers and path usage */
          +   if ((is_route_segment_path_supported) && (is_route_segment_maneuvers_supported)) 
          +   {
          +      // Allow segment maneuvers and path usage
                 maps_route_foreach_segment(route, __maps_route_segment_cb, (void *)route_result);
              }
           
          -   (*route_result)->__maneuver_count = __maneuver_count;
          +   (*route_result)->__maneuver_count = __maneuver_count;
           
              return true;
           }
           
           bool
          -__maps_service_search_route_cb(maps_error_e error, int request_id, int index, int total, maps_route_h route, void *user_data)
          +__maps_service_search_route_cb(maps_error_e error, int request_id, int index, 
          +                               int total, maps_route_h route, void *user_data)
           {
              route_s **route_result = (route_s **) user_data;
           
              __parse_route_data(route, index, total, (void *) user_data);
           
          -   dlog_print(DLOG_DEBUG, LOG_TAG, "distance :: %f", (*route_result)->__distance);
          +   dlog_print(DLOG_DEBUG, LOG_TAG, "distance :: %f", (*route_result)->__distance);
           
              on_route_result();
           
              maps_route_destroy(route);
          +
              return true;
           }
           
        +
      9. +
      + diff --git a/org.tizen.sampledescriptions/html/mobile_n/mediaapp_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/mediaapp_sd_mn.htm index 45417d4..9833b67 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/mediaapp_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/mediaapp_sd_mn.htm @@ -404,6 +404,7 @@ _process_colorspace_convert(color_converter_view *view)    error = image_sample_util_convert_colorspace(view->decoded_buffer, dest_colorspace, src_buff, w, h, src_colorspace);    RETVM_IF(IMAGE_UTIL_ERROR_NONE != error, false, "image_sample_util_convert_colorspace error");    view->decode_time = get_ticks() - time_begin; +    return true; } @@ -831,6 +832,7 @@ image_sample_util_convert_colorspace(uchar *dest, image_util_colorspace_e dest_c          return IMAGE_UTIL_ERROR_NOT_SUPPORTED_FORMAT;       }    } +    return error; } @@ -865,6 +867,7 @@ frame_extractor_frame_get(const frame_extractor *extractor, unsigned char **fram          free(buf);       }    } +    return result; } @@ -1139,7 +1142,7 @@ _create_player(camera_player_view *this)       player_set_uri(player, SAMPLEMPEG4);       player_set_uri(player, get_resource_path(SAMPLEMPEG4)); -      player_set_display(player, PLAYER_DISPLAY_TYPE_EVAS, GET_DISPLAY(this->video_rect)); +      player_set_display(player, PLAYER_DISPLAY_TYPE_EVAS, GET_DISPLAY(this->video_rect));       player_set_display_mode(player, PLAYER_DISPLAY_MODE_FULL_SCREEN);       player_set_display_visible(player, true);       player_prepare(player); @@ -1214,7 +1217,7 @@ _create_video_recorder(video_recorder_player_view *view)    if (camera_create(CAMERA_DEVICE_CAMERA0, &view->camera) == CAMERA_ERROR_NONE)    { -      // ... skip some code +      // Skip some code       recorder_create_videorecorder(view->camera, &view->recorder);       if (view->recorder) @@ -1281,7 +1284,6 @@ _create_camera(camera_capture_view *view)       Evas_Object *edje_layout = elm_layout_edje_get(view->layout);       edje_object_calc_force(edje_layout);       _get_geometry_camera_win(view, &x, &y, &w, &h); -      ...    }    else    { diff --git a/org.tizen.sampledescriptions/html/mobile_n/mediacontroller_client_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/mediacontroller_client_sd_mn.htm index ed774a3..c83b95b 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/mediacontroller_client_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/mediacontroller_client_sd_mn.htm @@ -93,6 +93,7 @@ __create_player_client(void)    {       dlog_print(DLOG_DEBUG, LOG_TAG, "Didn't get information about latest server");    } +    return; } @@ -142,6 +143,7 @@ __destroy_player_client(void)    {       free(s_player_data.app_name);    } +    return; } @@ -171,4 +173,4 @@ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga - + \ No newline at end of file diff --git a/org.tizen.sampledescriptions/html/mobile_n/mediacontroller_server_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/mediacontroller_server_sd_mn.htm index 2751930..b9afa50 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/mediacontroller_server_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/mediacontroller_server_sd_mn.htm @@ -73,7 +73,7 @@ play_media(media_info_h media_info, appdata_s *ad)    mc_server_set_metadata(ad->player_controller, MC_META_MEDIA_DATE, date);    mc_server_set_metadata(ad->player_controller, MC_META_MEDIA_COPYRIGHT, copyright);    mc_server_set_metadata(ad->player_controller, MC_META_MEDIA_DESCRIPTION, description); -   mc_server_set_metadata(ad->player_controller, MC_META_MEDIA_TRACK_NUM, track_num); +   mc_server_set_metadata(ad->player_controller, MC_META_MEDIA_TRACK_NUM, track_num);    mc_server_update_metadata(ad->player_controller);    // Update shuffle mode information for clients @@ -160,4 +160,4 @@ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga - + \ No newline at end of file diff --git a/org.tizen.sampledescriptions/html/mobile_n/messageport_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/messageport_sd_mn.htm index 09c4833..9a9e5d3 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/messageport_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/messageport_sd_mn.htm @@ -53,7 +53,7 @@

      UI layout structure of the data sink UI component structure of the data sink

      -

      The application workflow can be divided into the following logical pipelines, illustrated in the following figure:

      +

      The application workflow can be divided into the following logical pipelines, illustrated in the following figure.

      • Application startup
      • Bundled text message sending
      • diff --git a/org.tizen.sampledescriptions/html/mobile_n/notificationmanager_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/notificationmanager_sd_mn.htm index 81bb76b..233abc2 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/notificationmanager_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/notificationmanager_sd_mn.htm @@ -57,9 +57,9 @@

        If the user clicks the list item related to the creation of the notification, the notify_cb() or notify_normal_cb() function is called to create the notification.

        If the user clicks the list item related to the removal of a notification, the remove_notification_cb() function is called to remove the normal and simple notification.

        -static void create_notification(notification_data *notify_data)
        +static void 
        +create_notification(notification_data *notify_data)
         {
        -   ...
            // Remove all notifications before creating a new one
         
            notify_data->notification = create_notification(MAIN_MENU_PATH, title_text, 
        @@ -70,15 +70,14 @@ static void create_notification(notification_data *notify_data)
               notification_post(notify_data->notification);
            }
         
        -    ...
            // Set the information result message
         }
         
        -static void remove_notification_cb(notification_data *notify_data)
        +static void 
        +remove_notification_cb(notification_data *notify_data)
         {
            RETM_IF(!notify_data, "notify_data is NULL");
            bool is_success = delete_notification_items();
        -    ...
            // Set the information result message
         
            badge_remove(PACKAGE);
        @@ -90,9 +89,9 @@ static void remove_notification_cb(notification_data *notify_data)
         

        If the user clicks the list item related to the creation of the notification by the application control, the notify_by_app_control_cb() function is called to create the notification by the application control. The function sets extra data to the appcontrol, so the data can be used after passing the control to the application.

        If the user clicks the list item related to the removal of a notification by the application control, the remove_notification_cb() function is called to remove the appcontrol notification.

        -static void notify_by_app_control_cb(notification_data *notify_data)
        +static void 
        +notify_by_app_control_cb(notification_data *notify_data)
         {
        -   ...
            // Remove all notifications before creating a new one
         
            notify_data->notification = create_notification(ICON2_PATH, notification_app, 
        @@ -102,38 +101,34 @@ static void notify_by_app_control_cb(notification_data *notify_data)
               notification_status_message_post(app_message_text);
               const char *array_result[] = { result_1_text, result_2_text, NULL };
               const char *array_key[] = { SERVICE_DATA_TEXT, SERVICE_DATA_TO, NULL };
        -      ...
               // Set extra data to app control 
               notification_post(notify_data->notification);
            }
         
        -    ...
            // Set the information result message
         }
         
        -static void remove_notification_cb(notification_data *notify_data)
        +static void 
        +remove_notification_cb(notification_data *notify_data)
         {
            RETM_IF(!notify_data, "notify_data is NULL");
            bool is_success = delete_notification_items();
        -    ...
            // Set the information result message
         
            badge_remove(PACKAGE);
         }
         
        -void launch_arguments_set(notification_h notification, const char *argument,...)
        +void 
        +launch_arguments_set(notification_h notification, const char *argument, ...)
         {
            app_control_h service = NULL;
            int err = app_control_create(&service);
            RETM_IF(err != SERVICE_ERROR_NONE, "service_create failure ");
         
        -   ...
            if (argument)
            {
               app_control_add_extra_data(service, MESSAGE_POST, argument);
            }
        -
        -   ...
         }
         
        @@ -142,9 +137,9 @@ void launch_arguments_set(notification_h notification, const char *argument,...)

        If the user clicks the list item related to the creation of the notification by the application ID, the set_badge_number_by_app_id_cb() function is called to create the notification by the application ID.

        If the user clicks the list item related to the removal of a notification by the application ID, the remove_badge_number_by_app_id_cb() function is called to remove the notification by the application ID.

        -static void notify_by_app_id_cb(notification_data *notify_data)
        +static void 
        +notify_by_app_id_cb(notification_data *notify_data)
         {
        -   ...
            // Remove all notifications before creating a new one
         
            notify_data->notification = create_notification(ICON2_PATH, title_text,  
        @@ -152,38 +147,34 @@ static void notify_by_app_id_cb(notification_data *notify_data)
            if (notify_data->notification)
            {
               notification_status_message_post(app_message_text);
        -      ...
               // Set App package to app control 
         
               notification_post(notify_data->notification);
            }
         
        -    ...
            // Set the information result message
         }
        -static void remove_notification_by_app_id_cb(notification_data *notify_data)
        +
        +static void 
        +remove_notification_by_app_id_cb(notification_data *notify_data)
         {
            RETM_IF(!notify_data, "notify_data is NULL");
            bool is_success = delete_notification_by_app_id();
         
        -    ...
            // Set the information result message
         }
         
        -void launch_arguments_set(notification_h notification, const char * pkgname
        -,...)
        +void 
        +launch_arguments_set(notification_h notification, const char * pkgname, ...)
         {
            app_control_h service = NULL;
            int err = app_control_create(&service);
            RETM_IF(err != SERVICE_ERROR_NONE, "service_create failure ");
         
        -   ...
            if (pkgname)
            {
               app_control_set_app_id(service, pkgname);
            }
        -
        -   ...
         }
         
        @@ -192,17 +183,19 @@ void launch_arguments_set(notification_h notification, const char * pkgname

        If the user clicks the list item related to increases in the badge number, the set_badge_number_by_app_id_cb() function is called to increase the badge number.

        To remove the badge number using the application ID, decrease the badge number or remove it if the badge count equals to 0.

        -static void set_badge_number_by_app_id_cb(notification_data *notify_data)
        +static void 
        +set_badge_number_by_app_id_cb(notification_data *notify_data)
         {
            RETM_IF(!notify_data, "notify_data is NULL");
         
            unsigned int count = 0;
            bool is_success = increase_badge(&count);
         
        -    ...
            // Set the information result message
         }
        -static void remove_badge_number_by_app_id_cb(notification_data *notify_data)
        +
        +static void 
        +remove_badge_number_by_app_id_cb(notification_data *notify_data)
         {
            RETM_IF(!notify_data, "notify_data is NULL");
         
        @@ -218,7 +211,6 @@ static void remove_badge_number_by_app_id_cb(notification_data *notify_data)
               err = badge_set_count(PACKAGE, --count);
            }
         
        -    ...
            // Set the information result message
         }
         
        @@ -229,8 +221,8 @@ static void remove_badge_number_by_app_id_cb(notification_data *notify_data)

        The on-going notification management is implemented in the <ongoing-notifications.c> file.

        The create_ongoing_notification() function creates an on-going notification. This function sets the notification property and image and title text.

        -static notification_h create_ongoing_notification( const char *image_path, const char 
        -   *title_text)
        +static 
        +notification_h create_ongoing_notification(const char *image_path, const char *title_text)
         {
            notification_h ongoing_notification = notification_create(NOTIFICATION_TYPE_ONGOING);
            RETVM_IF(!ongoing_notification, NULL, "notify is NULL");
        @@ -245,7 +237,8 @@ static notification_h create_ongoing_notification( const char *image_path, const
         

        The delete_ongoing_notification() function removes the on-going notification, resets the press count and progress value of this notification.

        -static int delete_ongoing_notification(notification_data *data)
        +static int 
        +delete_ongoing_notification(notification_data *data)
         {
            int err = NOTIFICATION_ERROR_NONE;
            if (data)
        @@ -258,6 +251,7 @@ static int delete_ongoing_notification(notification_data *data)
               data->press_count = 0;
               data->progress_value = 0;
            }
        +
            return err;
         }
         
        @@ -268,15 +262,14 @@ static int delete_ongoing_notification(notification_data *data)

        If the user clicks the list item related to the creation of an on-going notification, the proper function is called according to the on-going activity type, such as percentage, byte, or text.

        If the user clicks the list item related to the removing of an on-going notification, the remove_ongoing_notification_cb() function is called to remove the percentage, byte, and text of on-going notifications.

        -static void ongoing_notification_cb(notification_data *notify_data)
        +static void 
        +ongoing_notification_cb(notification_data *notify_data)
         {
            RETM_IF(!notify_data, "notify_data is NULL");
        -   ...
         
            notify_data->press_count++;
            if (!notify_data->notification)
            {
        -      ...
               notify_data->notification = create_ongoing_notification(ICON2_PATH,
                  notify_data->name);
         
        @@ -297,29 +290,24 @@ static void ongoing_notification_cb(notification_data *notify_data)
            // Set the information result
         
            // If a notification of such type is already created then just update it, if not, post it
        -   ...
         }
         
         // The ongoing_notification_byte_cb and ongoing_notification_text_cb functions are 
         // similar to the above ongoing_notification_cb function
         
        -static void remove_ongoing_notification_cb(notification_data *notify_data)
        +static void 
        +remove_ongoing_notification_cb(notification_data *notify_data)
         {
            RETM_IF(!notify_data, "notify_data is NULL");
         
        -   ...
            notification_data *data = ongoing_notification_data_get(ONGOING_NOTIFICATION_PERCENT);
            int err = delete_ongoing_notification(data);
        -   ...
            data = ongoing_notification_data_get(ONGOING_NOTIFICATION_BYTE);
            err = delete_ongoing_notification(data);
        -   ...
            data = ongoing_notification_data_get(ONGOING_NOTIFICATION_TEXT);
            err = delete_ongoing_notification(data);
        -   ...
         
            // Set information result
        -   ...
         }
         
        @@ -328,70 +316,57 @@ static void remove_ongoing_notification_cb(notification_data *notify_data)

        To manage on-going notifications that use implicit appcontrol resolution, use the ongoing_notification_by_app_control_cb() function. It sets the extra data to appcontrol, so the data can be used after passing the control to the application.

        To remove on-going notifications that use implicit appcontrol resolution, use the remove_notification_by_app_control_cb() function.

        -static void ongoing_notification_by_app_control_cb(notification_data *notify_data)
        +static void 
        +ongoing_notification_by_app_control_cb(notification_data *notify_data)
         {
            RETM_IF(!notify_data, "notify_data is NULL");
        -   ...
         
            notify_data->press_count++;
            if (!notify_data->notification)
            {
        -      ...
               notify_data->notification = create_ongoing_notification(ICON1_PATH,
                  notify_data->name);
            }
            RETM_IF(!notify_data->notification, "ongoing_notification is NULL");
         
            // Set progress to notification
        -   ...
         
            notification_content_text_set(notify_data->notification, percentage_content_text,
               notify_data->press_count);
         
            // Increase badge
        -   ...
         
            // Set the information result
        -   ...
         
            // Set extra data to appcontrol
        -   ...
         
            // If a notification of such type is already created then just update it, if not, post it
        -   ...
         }
         
        -void launch_arguments_set(
        -   ...
        -   const char *argument,
        -   ...
        -   )
        +void 
        +launch_arguments_set(..., const char *argument, ...)
         {
            app_control_h service = NULL;
            int err = app_control_create(&service);
            RETM_IF(err != SERVICE_ERROR_NONE, "service_create failure ");
         
        -   ...
            // Set extra data to appcontrol
            if (argument)
            {
               app_control_add_extra_data(service, MESSAGE_POST, argument);
            }
        -   ...
         }
         
        -static void remove_notification_by_app_control_cb(notification_data *notify_data)
        +static void 
        +remove_notification_by_app_control_cb(notification_data *notify_data)
         {
            RETM_IF(!notify_data, "notify_data is NULL");
         
        -   notification_data *data = ongoing_notification_data_get(
        -      ONGOING_NOTIFICATION_BY_APP_CONTROL);
        +   notification_data *data = ongoing_notification_data_get(ONGOING_NOTIFICATION_BY_APP_CONTROL);
            int err = delete_ongoing_notification(data);
            // Remove badge
        -   ...
         
            // Set the information result
        -   ...
         }
         
        @@ -400,64 +375,54 @@ static void remove_notification_by_app_control_cb(notification_data *notify_data

        To notify a specified user using the application ID of the on-going activity, the ongoing_notification_by_app_id_cb() function is called. It sets the application ID to the appcontrol, so the proper application is called.

        The remove_ongoing_notification_by_app_id_cb() function is used to remove the notification for the specified application ID.

        -static void ongoing_notification_by_app_id_cb(notification_data *notify_data)
        +static void 
        +ongoing_notification_by_app_id_cb(notification_data *notify_data)
         {
            RETM_IF(!notify_data, "notify_data is NULL");
        -   // ...
         
            notify_data->press_count++;
            if (!notify_data->notification)
            {
        -      // ...
               notify_data->notification = create_ongoing_notification(ICON1_PATH,
                  notify_data->name);
            }
            RETM_IF(!notify_data->notification, "ongoing_notification_byte is NULL");
         
        -   // Sets the initial size for the ongoing type
        -   // ...
        +   // Set the initial size for the ongoing type
           
            notification_content_text_set(notify_data->notification, byte_content_text,
                  notify_data->press_count);
         
        -   // Sets information result
        -   // ...
        +   // Set information result
         
        -   // Sets application id to appcontrol
        -   // ...
        +   // Set application ID to appcontrol
         
            // If a notification of such type is already created then just update it, if not - post it
        -   // ...
         }
         
        -void launch_arguments_set(
        -   // ...
        -   const char *argument,
        -   // ...
        -   )
        +void 
        +launch_arguments_set(..., const char *argument, ...)
         {
            app_control_h service = NULL;
            int err = app_control_create(&service);
            RETM_IF(err != SERVICE_ERROR_NONE, "service_create failure ");
         
        -   // ... 
        -   // Sets application id to appcontrol
        +   // Set application ID to appcontrol
            if (pkgname)
            {
               app_control_set_app_id(service, pkgname);
            }
        -   // ...
         }
         
        -static void remove_ongoing_notification_by_app_id_cb(notification_data *notify_data)
        +static void 
        +remove_ongoing_notification_by_app_id_cb(notification_data *notify_data)
         {
            RETM_IF(!notify_data, "notify_data is NULL");
         
            notification_data *data = ongoing_notification_data_get(ONGOING_NOTIFICATION_BY_APP_ID);
            int err = delete_ongoing_notification(data);
         
        -   // Sets information result
        -   // ...
        +   // Set information result
         }
         
        @@ -467,32 +432,32 @@ static void remove_ongoing_notification_by_app_id_cb(notification_data *notify_d

        The _tab_view_layout_fill_cb() function calls the appropriate notification function where the result information is set. Then the layout_view_add() function is invoked.

        In the layout_view_add() function, the result information is used to create the result layout.

        -static void _tab_view_layout_fill_cb(void *data, Evas_Object *obj, void *event_info)
        -{
        -   ...
        -   
        +static void 
        +_tab_view_layout_fill_cb(void *data, Evas_Object *obj, void *event_info)
        +{ 
            notification_data *notification_info = (notification_data *)data;
            notification_info->callback(notification_info);
            layout_view_add(navi, notification_info);
         }
         
        -static void notify_cb(notification_data *notify_data)
        +static void 
        +notify_cb(notification_data *notify_data)
         {
        -   ...
            // Set the result information  
            snprintf(notify_data->result_text, TEXT_MAX_LEN, "%s%s<br><br>%s<br>%s<br><br>%s<br>%s<br>",
        -         result_message, (notify_data->notification) ? result_message_success_text :
        -         result_message_failure_text, notify_message_text, _text,launch_argument_text,
        -         app_message_text);
        +            result_message, (notify_data->notification) ? result_message_success_text :
        +            result_message_failure_text, notify_message_text, _text, launch_argument_text,
        +            app_message_text);
         }
         
        -Evas_Object *layout_view_add(Evas_Object *parent, notification_data *notify_info)
        +Evas_Object* 
        +layout_view_add(Evas_Object *parent, notification_data *notify_info)
         {
        -   ...
        -   // create result layout
        +   // Create the result layout
            _layout_view_fill(data->layout, notify_info);
        -   data->navi_item = elm_naviframe_item_push(data->navi, data->name, NULL, NULL, data->layout,
        -      NULL);
        +   data->navi_item = elm_naviframe_item_push(data->navi, data->name, NULL, NULL,
        +                                             data->layout, NULL);
        +
            return data->layout;
         }
         
        diff --git a/org.tizen.sampledescriptions/html/mobile_n/oauth2_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/oauth2_sd_mn.htm index 0390f17..b79c047 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/oauth2_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/oauth2_sd_mn.htm @@ -11,16 +11,6 @@ OAuth2 Sample Overview - @@ -35,76 +25,57 @@ figure figcaption {

        OAuth2 Sample Overview

        -

        The OAuth2 sample application demonstrates how to get access token from various resource owners such as Google, Facebook, Twitter, etc. which uses OAuth2 protocol RFC6749.

        +

        The OAuth2 sample application demonstrates how to get access tokens from various resource owners that use the OAuth2 protocol RFC6749, such as Google, Facebook, and Twitter.

        The following figure illustrates the main view of the OAuth2 application in its normal state.

        -

        The main screen has the list of various resource providers along with it's authorization grant type as shown below.

        Figure: OAuth2 main view

        -

        OAuth2 main view

        +

        OAuth2 main view

        + +

        The application main screen has a list of various resource providers along with their authorization grant type.

        Prerequisites

        -
          -
        1. -

          To ensure proper application execution, the following privileges must be set:

            +
          • To ensure proper application execution, the following privileges must be set:

            +
            • http://tizen.org/privilege/network.get
            • http://tizen.org/privilege/internet
            • -
            -
          • - +
        2. -

          The dummy client Id and dummy client secret in the oauth2_provider_configs.h should be replaced with respective App Id and App secret in the oauth2sample application. Refer to the respective service owner to get the keys.

          -

          For example, the Google client Id and secret can be gotten in Developers console through below steps.

          -

            -
          1. Sign-in into your Google account, go to the Developers Console, and click Create an empty project.
          2. -
          3. In a dialog box that appears, provide a Project name and a Project Id for the oauth2sample and click Create button. Then, an activity will begin and be shown in the bottom of the view.
          4. -
          5. At left sidebar, select APIs in API & auth and click enable API button in Google+ API.
          6. -
          7. Select Credentials in API & auth, then click OAuth consent screen for setting up Product name.
          8. -
          9. Click Add credentials button and select credential as OAuth 2.0 client ID.
          10. -
          11. Select others and fill the name of client (ex. org.tizen.oauth2sample).
          12. -
          13. Then, you can get the client Id and secret.
          14. -
          -

          All the client Id and secret which are used in oauth2sample should be obtained from the respective resource owner providers and replaced them with dummy Id and secret in oauth2_provider_configs.h.

        3. +

          The dummy client ID and dummy client secret in the oauth2_provider_configs.h file must be replaced with the respective App ID and App secret in the OAuth2 sample application.

          +

          Obtain the needed client IDs and secrets from the respective resource owners. For example, the Google client ID and secret can be obtained from the Developers Console as follows:

          +
            +
          1. Go to Developers Console, sign in to your Google account, and click Create an empty project.
          2. +
          3. In the New Project dialog box, enter a Project name and a project ID for the OAuth2 sample and click Create. An activity begins and is shown at the bottom of the view.
          4. +
          5. When the activity is completed, in the left sidebar, select API & auth > APIs > Google+ API, and click Enable API.
          6. +
          7. In the left sidebar, select API & auth > Credentials, click OAuth consent screen, and set up Product name. Click Save.
          8. +
          9. Click Add credentials and select OAuth 2.0 client ID.
          10. +
          11. Select Other, enter the client name, such as org.tizen.oauth2sample, click Create. +

            The client ID and secret are displayed in a popup window.

          + +
      +

      Implementation

      The OAuth 2.0 specification is defined in [RFC 6749] and it builds on the OAuth 1.0 [RFC 5849] deployment experience, as well as additional use cases and extensibility requirements gathered from the wider IETF community. The OAuth 2.0 protocol is not backward-compatible with OAuth 1.0.

      -

      An authorization grant is a credential representing the resource owner's authorization (to access its protected resources) used by the client to obtain an access token. This specification defines four grant types -- authorization code, implicit, resource owner password credentials, and client credentials -- as well as an extensibility mechanism for defining additional types.

      -

      The four different types of authorization grant are explained below using the sample app with examples.

      +

      An authorization grant is a credential representing the resource owner's authorization (to access its protected resources) used by the client to obtain an access token. The specification defines 4 grant types, the authorization code, implicit, resource owner password credentials, and client credentials, as well as an extensibility mechanism for defining additional types.

      +

      The 4 authorization grant types are explained in the following examples.

      + +

      Authorization Code

      -

      1. Authorization code

      The authorization code is obtained by using an authorization server as an intermediary between the client and resource owner. Instead of requesting authorization directly from the resource owner, the client directs the resource owner to an authorization server, which in turn directs the resource owner back to the client with the authorization code.

      -

      The authorization code provides some important security benefits, such as the ability to authenticate the client, as well as the transmission of the access token directly to the client without passing it through the resource owner's user-agent and potentially exposing it to others, including the resource owner. We will explain this with example of Google as resource owner.

      - -

      After you press Google button, the following window will appear.

      -

      Figure: Google Authorization

      - -
      -
      - missing -
      Screen 1: Sign in -
      -
      - -
      - missing -
      Screen 2: Permission -
      -
      - -
      - missing -
      Screen 3: Response token -
      -
      -
      +

      The authorization code provides some important security benefits, such as the ability to authenticate the client, as well as the transmission of the access token directly to the client without passing it through the resource owner's user-agent and potentially exposing it to others, including the resource owner. The following example explains this with Google as the resource owner.

      -

      You can enter your Google account credentials to get the access token (as shown in Screen 1).

      -

      After you click on the sign in key and once your account gets verified you will be taken to permission window (as shown in Screen 2) where you can click on the accept key to get the access token.

      -

      The response will be visible on the home screen as a pop up (as shown in Screen 3).

      -

      You can cancel the operation by pressing the back key or by choosing the deny button on the screen 2.

      +

      Figure: Google authorization

      +

      Sign in Permission Response token

      + +
      1. After you click Google [Code] on the main screen, the sign-in screen appears (on the left in the above figure). Enter your Google account credentials to get the access token.

      2. +
      3. After you click Sign in and your account gets verified, the permission window appears (in the middle in the above figure). Click Allow to give the permission.

      4. +
      5. The response is visible on the home screen as a pop-up (on the right in the above figure).

      + +

      To cancel the operation, press the back key or click Deny for the permission.

       void
      @@ -113,26 +84,21 @@ start_google_oauth_cb(void *data, Evas_Object *obj, void *event_info)
          win_data = (Evas_Object *) data;
       
          oauth2_manager_h mgr = NULL;
      -   int ret = oauth2_manager_create(&mgr);
      +   int ret = oauth2_manager_create(&mgr);
       
          oauth2_request_h request = NULL;
      -   ret = oauth2_request_create(&request);
      +   ret = oauth2_request_create(&request);
       
          ret = oauth2_request_set_auth_end_point_url(request, GOOGLE_AUTH_URL);
      -
          ret = oauth2_request_set_token_end_point_url(request, GOOGLE_REQ_TOK_URL);
      -
          ret = oauth2_request_set_redirection_url(request, GOOGLE_REDIRECT_URL);
      -
          ret = oauth2_request_set_client_id(request, GOOGLE_CLIENT_ID);
      -
          ret = oauth2_request_set_client_secret(request, GOOGLE_CLIENT_SECRET);
      -
      -   ret = oauth2_request_set_scope(request, GOOGLE_SCOPE);
      -
      +   ret = oauth2_request_set_scope(request, "GOOGLE_SCOPE");
          ret = oauth2_request_set_response_type(request, OAUTH2_RESPONSE_TYPE_CODE);
       
      -   if (mgr && request) {
      +   if (mgr && request) 
      +   {
             ret = oauth2_manager_request_token(mgr, request, token_response_cb, NULL);
          }
       }
      @@ -140,231 +106,203 @@ start_google_oauth_cb(void *data, Evas_Object *obj, void *event_info)
       void
       token_response_cb(oauth2_response_h response, void *user_data)
       {
      -   dlog_print(DLOG_INFO, LOG_TAG, "token_response_cb");
      +   dlog_print(DLOG_INFO, LOG_TAG, "token_response_cb");
       
          char *acc_token = NULL;
      -   oauth2_response_get_access_token(response, &acc_token);
      +   oauth2_response_get_access_token(response, &acc_token);
       
          char *ref_token = NULL;
      -   oauth2_response_get_refresh_token(response, &ref_token);
      +   oauth2_response_get_refresh_token(response, &ref_token);
          google_refresh_token = ref_token;
       
          long long int expires_in = 0;
      -   oauth2_response_get_expires_in(response, &expires_in);
      +   oauth2_response_get_expires_in(response, &expires_in);
       
          char displayStr[1024] = {0,};
      -   if (acc_token) {
      -      displayStr[0] = '\0';
      -      strcpy(displayStr, "access token= ");
      +   if (acc_token) 
      +   {
      +      displayStr[0] = '\0';
      +      strcpy(displayStr, "access token= ");
             strcat(displayStr, acc_token);
      -   } else {
      +   } 
      +   else 
      +   {
             oauth2_error_h e_handle =  NULL;
       
      -      oauth2_response_get_error(response, &e_handle);
      +      oauth2_response_get_error(response, &e_handle);
             char *error_val = NULL;
      -      oauth2_error_get_custom_data(e_handle, "error", &error_val);
      +      oauth2_error_get_custom_data(e_handle, "error", &error_val);
             if (error_val)
                strcpy(displayStr, error_val);
      -      else {
      +      else 
      +      {
                int error_code = 0;
                int platform_error_code = 0;
       
      -         oauth2_error_get_code(e_handle, &error_code,
      -            &platform_error_code);
      -         if (error_code != 0 || platform_error_code != 0) {
      -            sprintf(displayStr, "Error=[%d][%d]",
      +         oauth2_error_get_code(e_handle, &error_code, &platform_error_code);
      +         if (error_code != 0 || platform_error_code != 0) 
      +         {
      +            sprintf(displayStr, "Error=[%d][%d]",
                   error_code, platform_error_code);
      -         } else
      -            strcpy(displayStr, "Unknown server error");
      +         } 
      +         else
      +            strcpy(displayStr, "Unknown server error");
             }
          }
       
      -   if (ref_token) {
      -      strcat(displayStr, "\r\n");
      -      strcat(displayStr, "refresh token = ");
      +   if (ref_token) 
      +   {
      +      strcat(displayStr, "\r\n");
      +      strcat(displayStr, "refresh token = ");
             strcat(displayStr, ref_token);
          }
       
      -   if (expires_in != 0) {
      -      strcat(displayStr, "\r\n");
      -      strcat(displayStr, "expires in= ");
      +   if (expires_in != 0) 
      +   {
      +      strcat(displayStr, "\r\n");
      +      strcat(displayStr, "expires in= ");
             char expires_str[128] = {0};
      -      sprintf(expires_str, "%lld", expires_in);
      +      sprintf(expires_str, "%lld", expires_in);
             strcat(displayStr, expires_str);
          }
       
          create_popup(displayStr , win_data);
      +
          return;
       }
       
      -

      2. Implicit code

      -

      In the implicit flow, the client is issued an access token directly (as a result of the resource owner authorization). The grant type is implicit, as no intermediate credentials (such as an authorization code) are issued.

      +

      Implicit Code

      -

      Implicit grants improve the responsiveness and efficiency of some clients (such as a client implemented as an in-browser application), since it reduces the number of round trips required to obtain an access token. We will explain this with example of Facebook as resource owner.

      +

      In the implicit flow, the client is issued an access token directly (as a result of the resource owner authorization). The grant type is implicit, as no intermediate credentials (such as an authorization code) are issued.

      -

      After you press Facebook button, the following window will appear.

      -

      Figure: Facebook Authorization

      +

      Implicit grants improve the responsiveness and efficiency of some clients (such as a client implemented as an in-browser application), since it reduces the number of round trips required to obtain an access token. The following example explains this with Facebook as the resource owner.

      -
      -
      - missing -
      Screen 1: Authorization -
      -
      +

      Figure: Facebook authorization

      -
      - missing -
      Screen 2: Response token -
      -
      +

      Authorization Response token

      - -
      +
      1. After you click Facebook [Implicit] on the main screen, the log-in screen appears (on the left in the above figure). Enter your Facebook account credentials to get the access token.

      2. +
      3. After you click Log In and your account gets verified, the response is visible on the home screen as a pop-up (on the right in the above figure).

      -

      You can enter your Facebook account credentials to get the access token (as shown in figure 1).

      -

      After you click on the sign in key and once your account gets verified the response will be visible on the home screen as a pop up(as shown in figure 2).

      -

      You can cancel the operation by pressing the back key.

      +

      To cancel the operation, press the back key.

       void
       start_fb_oauth_cb(void *data, Evas_Object *obj, void *event_info)
       {
          oauth2_manager_h mgr = NULL;
      -   int ret = oauth2_manager_create(&mgr);
      +   int ret = oauth2_manager_create(&mgr);
       
          win_data = (Evas_Object *) data;
       
          oauth2_request_h request = NULL;
      -   ret = oauth2_request_create(&request);
      +   ret = oauth2_request_create(&request);
       
          ret = oauth2_request_set_auth_end_point_url(request, FACEBOOK_AUTH_URL);
      -
          ret = oauth2_request_set_redirection_url(request, OAUTH2_REDIRECT_URL);
      -
          ret = oauth2_request_set_client_id(request, FACEBOOK_CLIENT_ID);
      -
          ret = oauth2_request_set_scope(request, FACEBOOK_SCOPE);
      -
          ret = oauth2_request_set_response_type(request, OAUTH2_RESPONSE_TYPE_TOKEN);
       
      -   if (mgr && request) {
      +   if (mgr && request) 
      +   {
             ret = oauth2_manager_request_token(mgr, request, token_response_cb, NULL);
          }
       }
       
      -

      3. Client credentials

      -

      The client credentials can be used as an authorization grant when the authorization scope is limited to the protected resources under the control of the client, or to protected resources previously arranged with the authorization server. Client credentials are typically used as an authorization grant when the client is acting on its own behalf (the client is also the resource owner) or is requesting access to protected resources based on an authorization previously arranged with the authorization server.

      -

      We will explain this with example of Twitter as resource owner.

      -

      After you press Twitter button, the following response window will appear.

      -

      Figure: Twitter Authorization

      - -
      -
      - missing -
      Response token -
      -
      -
      +

      Client Credentials

      + +

      Client credentials can be used as an authorization grant when the authorization scope is limited to the protected resources under the control of the client, or to protected resources previously arranged with the authorization server.

      + +

      Client credentials are typically used as an authorization grant when the client is acting on its own behalf (the client is also the resource owner) or is requesting access to protected resources based on an authorization previously arranged with the authorization server. The following example explains this with Twitter as the resource owner.

      + +

      Figure: Twitter authorization

      + +

      Twitter authorization +

      + +

      After you click Twitter [Client Credentials] on the main screen, the response is visible on the home screen as a pop-up (in the above figure).

       void
       start_twitter_apponly_oauth_cb(void *data, Evas_Object *obj, void *event_info)
       {
          oauth2_manager_h mgr = NULL;
      -   int ret = oauth2_manager_create(&mgr);
      +   int ret = oauth2_manager_create(&mgr);
       
          oauth2_request_h request = NULL;
      -   ret = oauth2_request_create(&request);
      +   ret = oauth2_request_create(&request);
       
          win_data = (Evas_Object *) data;
       
          ret = oauth2_request_set_auth_end_point_url(request, TWITTER_AUTH_URL);
      -
          ret = oauth2_request_set_token_end_point_url(request, TWITTER_REQ_TOK_URL);
      -
          ret = oauth2_request_set_redirection_url(request, OAUTH2_REDIRECT_URL);
      -
          ret = oauth2_request_set_client_id(request, TWITTER_CONS_KEY);
      -
          ret = oauth2_request_set_client_secret(request, TWITTER_CONS_SEC);
      -
          ret = oauth2_request_set_grant_type(request, OAUTH2_GRANT_TYPE_CLIENT_CREDENTIALS);
      -
          ret = oauth2_request_set_client_authentication_type(request, OAUTH2_CLIENT_AUTHENTICATION_TYPE_BASIC);
       
      -   if (mgr && request) {
      +   if (mgr && request) 
      +   {
             ret = oauth2_manager_request_token(mgr, request, token_response_cb, NULL);
          }
       }
       
      -

      4. Resource owner password credentials

      +

      Resource Owner Password Credentials

      +

      The resource owner password credentials (such as username and password) can be used directly as an authorization grant to obtain an access token.

      -

      Even though this grant type requires direct client access to the resource owner credentials, the resource owner credentials are used for a single request and are exchanged for an access token. This grant type can eliminate the need for the client to store the resource owner credentials for future use, by exchanging the credentials with a long-lived access token or refresh token. We will explain this with example of Salesforce as resource owner.

      +

      Even though this grant type requires direct client access to the resource owner credentials, the resource owner credentials are used for a single request and are exchanged for an access token. This grant type can eliminate the need for the client to store the resource owner credentials for future use, by exchanging the credentials with a long-lived access token or refresh token. The following example explains this with Salesforce as the resource owner.

      -

      After you press Salesforce button, the following response window will appear.

      -

      Figure: Salesforce Authorization

      +

      Figure: Salesforce authorization

      -
      -
      - missing -
      Response token -
      -
      -
      +

      Salesforce authorization +

      + +

      After you click Salesforce [Password] on the main screen, the response is visible on the home screen as a pop-up (in the above figure).

       void
       start_salesforce_oauth_code_cb(void *data, Evas_Object *obj, void *event_info)
       {
          oauth2_manager_h mgr = NULL;
      -   int ret = oauth2_manager_create(&mgr);
      +   int ret = oauth2_manager_create(&mgr);
       
          oauth2_request_h request = NULL;
      -   ret = oauth2_request_create(&request);
      +   ret = oauth2_request_create(&request);
       
          win_data = (Evas_Object *) data;
       
          ret = oauth2_request_set_auth_end_point_url(request, SALESFORCE_AUTH_URL);
      -
          ret = oauth2_request_set_token_end_point_url(request, SALESFORCE_REQ_TOK_URL);
      -
          ret = oauth2_request_set_redirection_url(request, OAUTH2_REDIRECT_URL);
      -
      -   ret = oauth2_request_set_client_id(request,   SALESFORCE_CLIENT_ID);
      -
      +   ret = oauth2_request_set_client_id(request, SALESFORCE_CLIENT_ID);
          ret = oauth2_request_set_client_secret(request, SALESFORCE_CLIENT_SECRET);
      -
          ret = oauth2_request_set_grant_type(request, OAUTH2_GRANT_TYPE_PASSWORD);
      -
          ret = oauth2_request_set_user_name(request, SALESFORCE_CLIENT_USER_NAME);
      -
          ret = oauth2_request_set_password(request, SALESFORCE_CLIENT_PASSWORD);
       
      -   if (mgr && request) {
      +   if (mgr && request) 
      +   {
             ret = oauth2_manager_request_token(mgr, request, token_response_cb, request);
          }
       }
      -
       
      -

      Clear cache and cookies data

      -

      This will delete all the data related to stored credentials from all the resource owner website from the sample appliation.

      -

      After successful deletion of data the following pop up screen will appear.

      - -

      Figure: clear cache and cookies data

      -
      -
      - missing -
      Response message -
      -
      -
      +

      Clearing Cache and Cookie Data

      + +

      To delete all data related to the stored credentials from all the resource owner Web site from the sample application, use the clear_cache_and_cookies_cb() function.

      + +

      Figure: Clearing cache and cookie data

      +

      Clearing cache and cookie data

      + +

      After you click Clear all cache and cookie data on the main screen and the data is successfully deleted, the response is visible on the home screen as a pop-up (in the above figure).

       void
      @@ -372,7 +310,8 @@ clear_cache_and_cookies_cb(void *data, Evas_Object *obj, void *event_info)
       {
          win_data = (Evas_Object *) data;
       
      -   if (mgr1 != NULL) {
      +   if (mgr1 != NULL) 
      +   {
             oauth2_manager_clear_cache(mgr1);
             oauth2_manager_clear_cookies(mgr1);
       
      @@ -380,8 +319,9 @@ clear_cache_and_cookies_cb(void *data, Evas_Object *obj, void *event_info)
       
             flag = 1;
       
      -      popStr = "cache and cookie data cleared!!!";
      -      create_popup(popStr , win_data);
      +      popStr = "cache and cookie data cleared!!!";
      +      create_popup(popStr, win_data);
      +
             return;
          }
       }
      @@ -397,7 +337,5 @@ clear_cache_and_cookies_cb(void *data, Evas_Object *obj, void *event_info)
       
       
      - - diff --git a/org.tizen.sampledescriptions/html/mobile_n/oauth_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/oauth_sd_mn.htm index 6736784..21920c3 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/oauth_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/oauth_sd_mn.htm @@ -10,17 +10,7 @@ - OAuth Sample Overview - + LibOAuth Sample Overview @@ -35,73 +25,60 @@ figure figcaption {

      LibOAuth Sample Overview

      -

      The OAuth sample application demonstrates how to get access token from various resource owners such as Twitter and Tumblr which uses OAuth protocol RFC5849.

      -

      The following figure illustrates the main view of the OAuth application in its normal state.

      -

      The main screen has the list of various resource providers as shown below.

      +

      The LibOAuth sample application demonstrates how you can get access tokens from various resource owners, such as Twitter and Tumblr, who use the OAuth protocol RFC5849.

      +

      The following figure illustrates the main view of the LibOAuth application.

      + +

      Figure: LibOAuth main view

      +

      LibOAuth main view

      -

      Figure: OAuth main view

      -

      OAuth main view

      +

      The application opens with the main screen that lists various resource providers. To get an access token from a specific provider, select the provider from the list.

      Prerequisites

      -
        -

      1. To ensure proper application execution, the following privileges must be set:

        +
          +
        • +

          To ensure proper application execution, the following privileges must be set:

          • http://tizen.org/privilege/network.get
          • http://tizen.org/privilege/internet
          -

          Internet connection should be enabled in the device.

          +
        • +
        • Internet connection must be enabled in the device.
        • +
        • The system time in the device must be adjusted to the respective time zone and the time must be accurate.
        • +
        • The dummy client ID and dummy client secret in the oauth_provider_configs.h file must be replaced with the respective App ID and App secret in the LibOAuth sample application. +

          Obtain the needed client IDs and secrets from the respective resource owners. For example, the Twitter client ID and secret can be obtained from Twitter Apps as follows:

          +
            +
          1. Go to Twitter Apps, sign in to your Twitter account, and click Create New App.
          2. +
          3. Provide the application Name, Description, and URL for the LibOAuth sample and click Create your Twitter application.
          4. +
          5. Obtain the client ID (consumer key) and secret by selecting (manage keys and access tokens) beside Application Settings > Consumer key.
          6. +
        • -
        • The system time in the deice should be adjusted to the respective time zone and the time should be accurate.

        • -
        • The dummy client Id and dummy client secret in the oauth_provider_configs.h should be replaced with respective App Id and App secret in the liboauthsample application. Refer to the respective service owner to get the keys.

          -

          For example, the Twitter client Id and secret can be gotten in Twitter Apps through below steps.

          -

            -
          1. Sign-in into your Twitter account, go to the Twitter Apps, and click Create New App button.
          2. -
          3. Provide application's Name, Description, and URL for the liboauthsample and click Create your Twitter application button.
          4. -
          5. Then, you can get the client Id(Consumer key) and secret by selecting (manage keys and access tokens) beside Consumer key in Application Settings.
          6. -
          -

          All the client Id and secret which are used in liboauthsample should be obtained from the respective resource owner providers and replaced them with dummy Id and secret in oauth_provider_configs.h.

        • -
      -

      Implementation

      +
    -

    The OAuth 1.0 specification is defined in [RFC 5849] and it builds on the OAuth 1.0 [RFC 5849] deployment experience, as well as additional use cases and extensibility requirements gathered from the wider IETF community.

    -

    OAuth 1.0 provides a method for clients to access server resources on behalf of a resource owner (such as a different client or an end-user). It also provides a process for end-users to authorize third-party access to their server resources without sharing their credentials (typically, a username and password pair), using user-agent redirections.

    +

    Implementation

    -

    1. Twitter

    -

    Twitter uses three-legged authorization process as shown in the diagram below.

    -

    The three-legged OAuth flow allows your application to obtain an access token by redirecting a user to resource provider and having them authorize your application.

    +

    The OAuth 1.0 specification is defined in [RFC 5849] and it builds on the OAuth 1.0 [RFC 5849] deployment experience, as well as additional use cases and extensibility requirements gathered from the wider IETF community.

    +

    OAuth 1.0 provides a method for clients to access server resources on behalf of a resource owner (such as a different client or an end user). It also provides a process for end users to authorize third-party access to their server resources without sharing their credentials (typically, a username and password pair), using user-agent redirections.

    -

    Figure: Three Leg Authorization

    +

    Twitter

    +

    The following figure illustrates the 3-legged authorization process of Twitter. The 3-legged OAuth flow allows your application to obtain an access token by redirecting a user to resource provider and having them authorize your application.

    -
    -
    - missing - -
    -
    +

    Figure: 3-leg authorization

    -

    After you press Twitter button on the OAuth sample app main page, the following window will appear.

    -

    Figure: Twitter Authorization

    - -
    -
    - missing -
    Screen 1: Authorization -
    -
    - -
    - missing -
    Screen 2: Response token -
    -
    -
    +

    +3-leg authorization + +

    -

    You can enter your Twitter account credentials to get the access token (as shown in figure 1).

    -

    After you click on the sign in key and once your account gets verified the response will be visible on the home screen as a pop up(as shown in figure 2).

    +

    After you select Twitter Login on the main screen, the sign-in window appears. To get the access token, enter your Twitter account credentials and click Sign in. Once your account gets verified, the response is displayed on the screen as a popup.

    You can cancel the operation by pressing the back key.

    +

    Figure: Twitter authorization

    + +

    + Twitter authorization Twitter authorization +

     static oauth_provider_data_s*
    @@ -110,28 +87,28 @@ __create_tw_data(void)
     {
        oauth_provider_data_s *provider = calloc(1, sizeof(oauth_provider_data_s));
     
    -   provider->app_info = calloc(1, sizeof(oauth_provider_app_info_s));
    -   provider->app_info->cons_key = calloc(1, MAX_STR_LEN);
    -   provider->app_info->cons_secret = calloc(1, MAX_STR_LEN);
    +   provider->app_info = calloc(1, sizeof(oauth_provider_app_info_s));
    +   provider->app_info->cons_key = calloc(1, MAX_STR_LEN);
    +   provider->app_info->cons_secret = calloc(1, MAX_STR_LEN);
     
    -   provider->provider_name = calloc(1, MAX_URL_LEN);
    -   provider->token_url = calloc(1, MAX_URL_LEN);
    -   provider->auth_url = calloc(1, MAX_URL_LEN);
    -   provider->acc_tok_url = calloc(1, MAX_URL_LEN);
    +   provider->provider_name = calloc(1, MAX_URL_LEN);
    +   provider->token_url = calloc(1, MAX_URL_LEN);
    +   provider->auth_url = calloc(1, MAX_URL_LEN);
    +   provider->acc_tok_url = calloc(1, MAX_URL_LEN);
     
    -   snprintf(provider->provider_name, MAX_URL_LEN - 1, "%s", TWITTER_NAME);
    -   snprintf(provider->app_info->cons_key , MAX_STR_LEN - 1, "%s", TWITTER_CONS_KEY);
    -   snprintf(provider->app_info->cons_secret, MAX_STR_LEN - 1, "%s", TWITTER_CONS_SEC);
    +   snprintf(provider->provider_name, MAX_URL_LEN - 1, "%s", TWITTER_NAME);
    +   snprintf(provider->app_info->cons_key , MAX_STR_LEN - 1, "%s", TWITTER_CONS_KEY);
    +   snprintf(provider->app_info->cons_secret, MAX_STR_LEN - 1, "%s", TWITTER_CONS_SEC);
     
    -   snprintf(provider->token_url, MAX_URL_LEN - 1, "%s", TWITTER_REQ_TOK_URL);
    -   snprintf(provider->auth_url, MAX_URL_LEN - 1, "%s", TWITTER_AUTH_URL);
    -   snprintf(provider->acc_tok_url, MAX_URL_LEN - 1, "%s", TWITTER_ACC_TOK_URL);
    +   snprintf(provider->token_url, MAX_URL_LEN - 1, "%s", TWITTER_REQ_TOK_URL);
    +   snprintf(provider->auth_url, MAX_URL_LEN - 1, "%s", TWITTER_AUTH_URL);
    +   snprintf(provider->acc_tok_url, MAX_URL_LEN - 1, "%s", TWITTER_ACC_TOK_URL);
     
        return provider;
     }
     
     
    -/*Step 1 : Get Request Token*/
    +// Step 1: Get request token
     int
     get_access_token(oauth_provider_data_s *provider_data, on_access_token_received_cb cb, void *user_data)
     {
    @@ -140,15 +117,17 @@ get_access_token(oauth_provider_data_s *provider_data, on_access_token_received_
           __curl = curl_easy_init();
     
        oauth_provider_data_full_s *oauth_full = calloc(1, sizeof(oauth_provider_data_full_s));
    -   oauth_full->provider_info = provider_data;
    -   oauth_full->cb = cb;
    -   oauth_full->user_data = user_data;
    +   oauth_full->provider_info = provider_data;
    +   oauth_full->cb = cb;
    +   oauth_full->user_data = user_data;
     
    -   char *oauth_header = __get_oauth_header(provider_data->token_url, provider_data->app_info->cons_key, provider_data->app_info->cons_secret, NULL, NULL);
    +   char *oauth_header = __get_oauth_header(provider_data->token_url, provider_data->app_info->cons_key, 
    +                                           provider_data->app_info->cons_secret, NULL, NULL);
        int curl_err = 0;
        long http_code = 0;
    -   char *resp = __curl_post_request(provider_data->token_url, oauth_header, NULL, &curl_err, &http_code);
    -   if (resp == NULL) {
    +   char *resp = __curl_post_request(provider_data->token_url, oauth_header, NULL, &curl_err, &http_code);
    +   if (resp == NULL) 
    +   {
           if (curl_err == CURLE_OK)
              return OAUTH_ERROR_SERVER;
           else
    @@ -158,168 +137,159 @@ get_access_token(oauth_provider_data_s *provider_data, on_access_token_received_
        char *token = NULL;
        char *token_sec = NULL;
     
    -   __parse_reply(resp, &token, &token_sec);
    -   if ((token == NULL) || (token_sec == NULL)) {
    +   __parse_reply(resp, &token, &token_sec);
    +   if ((token == NULL) || (token_sec == NULL)) 
    +   {
           SAFE_DELETE(token);
           SAFE_DELETE(token_sec);
     
           return OAUTH_ERROR_SERVER;
        }
     
    -   oauth_full->token_temp = token;
    +   oauth_full->token_temp = token;
     
    -   oauth_full->token = calloc(1, sizeof(oauth_provider_token_s));
    -   oauth_full->token->acc_tok_secret = token_sec;
    +   oauth_full->token = calloc(1, sizeof(oauth_provider_token_s));
    +   oauth_full->token->acc_tok_secret = token_sec;
     
        char url[MAX_URL_LEN] = {0, };
    -   snprintf(url, MAX_URL_LEN - 1, "%s?oauth_token=%s", oauth_full->provider_info->auth_url, oauth_full->token_temp);
    +   snprintf(url, MAX_URL_LEN - 1, "%s?oauth_token=%s", oauth_full->provider_info->auth_url, oauth_full->token_temp);
        __show_web_view(oauth_full, url);
     
    -   oauth_full->loading_popup = elm_popup_add(oauth_full->login_win);
    -   elm_popup_content_text_wrap_type_set(oauth_full->loading_popup, ELM_WRAP_MIXED);
    -   elm_object_text_set(oauth_full->loading_popup, "Loading...");
    -   elm_popup_orient_set(oauth_full->loading_popup, ELM_POPUP_ORIENT_BOTTOM);
    +   oauth_full->loading_popup = elm_popup_add(oauth_full->login_win);
    +   elm_popup_content_text_wrap_type_set(oauth_full->loading_popup, ELM_WRAP_MIXED);
    +   elm_object_text_set(oauth_full->loading_popup, "Loading...");
    +   elm_popup_orient_set(oauth_full->loading_popup, ELM_POPUP_ORIENT_BOTTOM);
     
    -   evas_object_show(oauth_full->loading_popup);
    +   evas_object_show(oauth_full->loading_popup);
     
        return OAUTH_ERROR_NONE;
     }
     
    -/*Step 2 : Get Authorization (User enters his/her credentials, and allows access to this app)*/
    +// Step 2: Get authorization (user enters their credentials, and allows access to this app)
     static int
     __show_web_view(oauth_provider_data_full_s *oauth_full, const char *url)
     {
        int w = 400;
        int h = 400;
     
    -   system_info_get_platform_int("tizen.org/feature/screen.width", &w);
    -   system_info_get_platform_int("tizen.org/feature/screen.height", &h);
    +   system_info_get_platform_int("tizen.org/feature/screen.width", &w);
    +   system_info_get_platform_int("tizen.org/feature/screen.height", &h);
     
    -   oauth_full->login_win = elm_win_util_standard_add("Login", "");
    -   eext_object_event_callback_add(oauth_full->login_win, EEXT_CALLBACK_BACK, __handle_back_key, oauth_full);
    +   oauth_full->login_win = elm_win_util_standard_add("Login", "");
    +   eext_object_event_callback_add(oauth_full->login_win, EEXT_CALLBACK_BACK, __handle_back_key, oauth_full);
     
        ewk_init();
     
        Evas *canvas = NULL;
     
    -   oauth_full->content_box = elm_box_add(oauth_full->login_win);
    -   elm_box_padding_set(oauth_full->content_box, 0, 3);
    -   evas_object_size_hint_weight_set(oauth_full->content_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    -   evas_object_size_hint_align_set(oauth_full->content_box, 0.0, 0.0);
    -   evas_object_show(oauth_full->content_box);
    +   oauth_full->content_box = elm_box_add(oauth_full->login_win);
    +   elm_box_padding_set(oauth_full->content_box, 0, 3);
    +   evas_object_size_hint_weight_set(oauth_full->content_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    +   evas_object_size_hint_align_set(oauth_full->content_box, 0.0, 0.0);
    +   evas_object_show(oauth_full->content_box);
     
    -   canvas = evas_object_evas_get(oauth_full->login_win);
    +   canvas = evas_object_evas_get(oauth_full->login_win);
     
    -   oauth_full->ewk_view = ewk_view_add(canvas);
    -   if (oauth_full->ewk_view == NULL)
    +   oauth_full->ewk_view = ewk_view_add(canvas);
    +   if (oauth_full->ewk_view == NULL)
           return OAUTH_ERROR_SYSTEM;
     
    -   ewk_view_url_set(oauth_full->ewk_view, url);
    -   evas_object_size_hint_min_set(oauth_full->ewk_view, w, h);
    +   ewk_view_url_set(oauth_full->ewk_view, url);
    +   evas_object_size_hint_min_set(oauth_full->ewk_view, w, h);
     
    -   evas_object_size_hint_weight_set(oauth_full->ewk_view, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    -   evas_object_size_hint_align_set(oauth_full->ewk_view, EVAS_HINT_FILL, EVAS_HINT_FILL);
    +   evas_object_size_hint_weight_set(oauth_full->ewk_view, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    +   evas_object_size_hint_align_set(oauth_full->ewk_view, EVAS_HINT_FILL, EVAS_HINT_FILL);
     
    -   evas_object_smart_callback_add(oauth_full->ewk_view, "url,changed", __on_web_url_change, oauth_full);
    -   evas_object_smart_callback_add(oauth_full->ewk_view, "load,error", __on_web_url_load_error, oauth_full);
    -   evas_object_smart_callback_add(oauth_full->ewk_view, "load,finished", __on_web_url_load_finished, oauth_full);
    +   evas_object_smart_callback_add(oauth_full->ewk_view, "url,changed", __on_web_url_change, oauth_full);
    +   evas_object_smart_callback_add(oauth_full->ewk_view, "load,error", __on_web_url_load_error, oauth_full);
    +   evas_object_smart_callback_add(oauth_full->ewk_view, "load,finished", __on_web_url_load_finished, oauth_full);
     
    -   elm_box_pack_end(oauth_full->content_box, oauth_full->ewk_view);
    -   evas_object_show(oauth_full->ewk_view);
    +   elm_box_pack_end(oauth_full->content_box, oauth_full->ewk_view);
    +   evas_object_show(oauth_full->ewk_view);
     
    -   evas_object_show(oauth_full->login_win);
    +   evas_object_show(oauth_full->login_win);
     
        return 0;
     }
     
    -/*Step 3 : Get Access Token*/
    +// Step 3: Get access token
     static void
     _on_auth_grant_received(oauth_provider_data_full_s *oauth_full, const char *reply)
     {
    -   if (reply == NULL){
    -      SAFE_DELETE(oauth_full->token);
    +   if (reply == NULL)
    +   {
    +      SAFE_DELETE(oauth_full->token);
           __send_response(OAUTH_ERROR_SERVER, oauth_full);
    +
           return;
        }
     
    -   gchar **full_list = g_strsplit(reply, "&", 5);
    +   gchar **full_list = g_strsplit(reply,"&", 5);
     
        char *token_full = full_list[0];
    -   if (token_full == NULL){
    -      SAFE_DELETE(oauth_full->token);
    +   if (token_full == NULL)
    +   {
    +      SAFE_DELETE(oauth_full->token);
           __send_response(OAUTH_ERROR_SERVER, oauth_full);
    +
           return;
        }
     
    -   if (full_list[1] == NULL){
    -      SAFE_DELETE(oauth_full->token);
    +   if (full_list[1] == NULL)
    +   {
    +      SAFE_DELETE(oauth_full->token);
           __send_response(OAUTH_ERROR_SERVER, oauth_full);
    +
           return;
        }
     
        char *verf_full = full_list[1];
    -   if (verf_full == NULL){
    -      SAFE_DELETE(oauth_full->token);
    +   if (verf_full == NULL)
    +   {
    +      SAFE_DELETE(oauth_full->token);
           __send_response(OAUTH_ERROR_SERVER, oauth_full);
    +
           return;
        }
     
    -   gchar **token_list = g_strsplit(token_full, "=", 3);
    +   gchar **token_list = g_strsplit(token_full, "=", 3);
     
    -   if (oauth_full->token_temp != NULL) {
    -      free(oauth_full->token_temp);
    -      oauth_full->token_temp = NULL;
    +   if (oauth_full->token_temp != NULL) 
    +   {
    +      free(oauth_full->token_temp);
    +      oauth_full->token_temp = NULL;
        }
     
    -   oauth_full->token_temp = strdup(token_list[1]);
    +   oauth_full->token_temp = strdup(token_list[1]);
     
    -   gchar **verf_list = g_strsplit(verf_full, "=", 3);
    -   if (verf_list == NULL){
    -      SAFE_DELETE(oauth_full->token);
    +   gchar **verf_list = g_strsplit(verf_full, "=", 3);
    +   if (verf_list == NULL)
    +   {
    +      SAFE_DELETE(oauth_full->token);
           __send_response(OAUTH_ERROR_SERVER, oauth_full);
    +
           return;
        }
     
    -   oauth_full->verifier_temp = strdup(verf_list[1]);
    +   oauth_full->verifier_temp = strdup(verf_list[1]);
     
        __start_access_token_request(oauth_full);
     }
     
    -

    2. Tumblr

    -

    Tumblr, like Twitter, follows the three-legged verification flow.

    -

    The difference is that the user will always be prompted to authorize access to your application, even if access was previously granted.

    - -

    After you press Tumblr button, the following window will appear.

    -

    Figure: Tumblr Authorization

    +

    Tumblr

    +

    Tumblr, like Twitter, follows the 3-legged verification flow. The difference is that the user is always prompted to authorize access to the application, even if access has been previously granted.

    -
    -
    - missing -
    Screen 1: Authorization -
    -
    +

    After you select Tumblr Login on the main screen, the log-in window appears. To get the access token, enter your Tumblr account credentials and click Log in. Once your account gets verified, a permission window opens and you must authorize access by clicking Allow. The response is displayed on the screen as a popup.

    -
    - missing -
    Screen 2: Permission -
    -
    +

    You can cancel the operation by pressing the back key or by clicking No way.

    -
    - missing -
    Screen 3: Response token -
    -
    +

    Figure: Tumblr authorization

    - -
    - -

    You can enter your Tumblr account credentials to get the access token (as shown in Screen 1).

    -

    After you click on the sign in key and once your account gets verified you will be taken to permission window (as shown in Screen 2) where you can click on the "allow" key to get the access token.

    -

    The response will be visible on the home screen as a pop up (as shown in Screen 3).

    -

    You can cancel the operation by pressing the back key or by choosing the "No way" button on the screen 2.

    +

    + Tumblr authorization Tumblr authorization Tumblr authorization +

     static oauth_provider_data_s*
    @@ -327,22 +297,22 @@ __create_tumblr_data(void)
     {
        oauth_provider_data_s *provider = calloc(1, sizeof(oauth_provider_data_s));
     
    -   provider->app_info = calloc(1, sizeof(oauth_provider_app_info_s));
    -   provider->app_info->cons_key = calloc(1, MAX_STR_LEN);
    -   provider->app_info->cons_secret = calloc(1, MAX_STR_LEN);
    +   provider->app_info = calloc(1, sizeof(oauth_provider_app_info_s));
    +   provider->app_info->cons_key = calloc(1, MAX_STR_LEN);
    +   provider->app_info->cons_secret = calloc(1, MAX_STR_LEN);
     
    -   provider->provider_name = calloc(1, MAX_URL_LEN);
    -   provider->token_url = calloc(1, MAX_URL_LEN);
    -   provider->auth_url = calloc(1, MAX_URL_LEN);
    -   provider->acc_tok_url = calloc(1, MAX_URL_LEN);
    +   provider->provider_name = calloc(1, MAX_URL_LEN);
    +   provider->token_url = calloc(1, MAX_URL_LEN);
    +   provider->auth_url = calloc(1, MAX_URL_LEN);
    +   provider->acc_tok_url = calloc(1, MAX_URL_LEN);
     
    -   snprintf(provider->provider_name, MAX_URL_LEN - 1, "%s", TUMBLR_NAME);
    -   snprintf(provider->app_info->cons_key , MAX_STR_LEN - 1, "%s", TUMBLR_CONS_KEY);
    -   snprintf(provider->app_info->cons_secret, MAX_STR_LEN - 1, "%s", TUMBLR_CONS_SEC);
    +   snprintf(provider->provider_name, MAX_URL_LEN - 1, "%s", TUMBLR_NAME);
    +   snprintf(provider->app_info->cons_key , MAX_STR_LEN - 1, "%s", TUMBLR_CONS_KEY);
    +   snprintf(provider->app_info->cons_secret, MAX_STR_LEN - 1, "%s", TUMBLR_CONS_SEC);
     
    -   snprintf(provider->token_url, MAX_URL_LEN - 1, "%s", TUMBLR_REQ_TOK_URL);
    -   snprintf(provider->auth_url, MAX_URL_LEN - 1, "%s", TUMBLR_AUTH_URL);
    -   snprintf(provider->acc_tok_url, MAX_URL_LEN - 1, "%s", TUMBLR_ACC_TOK_URL);
    +   snprintf(provider->token_url, MAX_URL_LEN - 1, "%s", TUMBLR_REQ_TOK_URL);
    +   snprintf(provider->auth_url, MAX_URL_LEN - 1, "%s", TUMBLR_AUTH_URL);
    +   snprintf(provider->acc_tok_url, MAX_URL_LEN - 1, "%s", TUMBLR_ACC_TOK_URL);
     
        return provider;
     }
    @@ -358,7 +328,5 @@ __create_tumblr_data(void)
     
     
    - - diff --git a/org.tizen.sampledescriptions/html/mobile_n/paint_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/paint_sd_mn.htm index db26545..6b5da53 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/paint_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/paint_sd_mn.htm @@ -930,7 +930,7 @@ freehand_update(void) rect_update():

    Creates a rectangle object.

    Rectangle is made with 2 parts: a frame and the fill. After the parts are created, the frame part is moved to the appropriate position.

    -

    The fill part's initial position is translated (from the frame part's initial position) by OBJECT_BORDER in both horizontal and vertical directions. Each time the mouse_move_cb() callback is called, the frame and fill parts are resized accordingly. To calculate the width and the height of the frame part, substract the mouse cursor coordinates (x2 = s_info.start.x < s_info.curr.x; y2 = s_info.start.y < s_info.curr.y;) from the start point coordinates. In case of the fill part, the size is further reduced by 2 * OBJECT_BORDER.

    +

    The fill part's initial position is translated (from the frame part's initial position) by OBJECT_BORDER in both horizontal and vertical directions. Each time the mouse_move_cb() callback is called, the frame and fill parts are resized accordingly. To calculate the width and the height of the frame part, subtract the mouse cursor coordinates (x2 = s_info.start.x < s_info.curr.x; y2 = s_info.start.y < s_info.curr.y;) from the start point coordinates. In case of the fill part, the size is further reduced by 2 * OBJECT_BORDER.

    Rectangle drawing

    diff --git a/org.tizen.sampledescriptions/html/mobile_n/piano_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/piano_sd_mn.htm index 2362bd4..d2068e5 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/piano_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/piano_sd_mn.htm @@ -47,7 +47,7 @@ void piano_createview(void *data)    _registerKeyDown(data);    _createNoteTimer(data); } -… + static void _createnotes(void *data) {    _createWhiteNotes(data); @@ -55,7 +55,7 @@ static void _createnotes(void *data)    _noteButton_fill_rect(data); } -… + static void _createBlackNotes(void *data) {    RETM_IF(!data, "data is NULL"); @@ -76,12 +76,12 @@ static void _createBlackNotes(void *data)       note->ad = ad;       note->prev = prev_note; -      if ( prev_note) +      if (prev_note)       {          prev_note->next = note;       } -      _noteButton_fill( note, i ); +      _noteButton_fill(note, i);       prev_note = note;    } } @@ -106,10 +106,10 @@ static void _noteButton_fill(void* data, int index)    if (note->type == PIANO_NOTE_BLACK)    { -      snprintf(note->sound_name, MAXNAMLEN, "black_%d.wav", index + 1 ); +      snprintf(note->sound_name, MAXNAMLEN, "black_%d.wav", index + 1);       char part_name[MAXNAMLEN] = { 0 }; -      snprintf( part_name, MAXNAMLEN, "note_black_%d", index + 1 ); +      snprintf(part_name, MAXNAMLEN, "note_black_%d", index + 1);       elm_object_part_content_set(note->ad->win->layout, part_name, note->button);       elm_object_theme_set(note->button, note->ad->win->theme); @@ -117,10 +117,10 @@ static void _noteButton_fill(void* data, int index)    }    if (note->type == PIANO_NOTE_WHITE)    { -      snprintf(note->sound_name, MAXNAMLEN, "white_%d.wav", index + 1 ); +      snprintf(note->sound_name, MAXNAMLEN, "white_%d.wav", index + 1);       char part_name[MAXNAMLEN] = { 0 }; -      snprintf( part_name, MAXNAMLEN, "note_white_%d", index + 1 ); +      snprintf(part_name, MAXNAMLEN, "note_white_%d", index + 1);       elm_object_part_content_set(note->ad->win->layout, part_name, note->button);       elm_object_theme_set(note->button, note->ad->win->theme); @@ -157,15 +157,15 @@ void piano_note_touch_down(void *data, Evas_Point coord_on_main_win, Eina_Bool c    note_struct *note = (note_struct*) data;    Evas_Coord button_left = 0, button_top = 0, button_width = 0, button_height = 0; -   evas_object_geometry_get(note->button, &button_left, &button_top, &button_width, &button_height ); +   evas_object_geometry_get(note->button, &button_left, &button_top, &button_width, &button_height); -   if ( PIANO_NOTE_WHITE == note->type ) +   if (PIANO_NOTE_WHITE == note->type)    { -      if ( check_collision && (coord_on_main_win.y - button_top) < PIANO_NOTE_BORDER_OFFSET ) +      if (check_collision && (coord_on_main_win.y - button_top) < PIANO_NOTE_BORDER_OFFSET)       {          piano_note_touch_down(note->prev, coord_on_main_win, EINA_FALSE);       } -      else if ( check_collision && button_height - (coord_on_main_win.y - button_top) < PIANO_NOTE_BORDER_OFFSET ) +      else if (check_collision && button_height - (coord_on_main_win.y - button_top) < PIANO_NOTE_BORDER_OFFSET)       {          piano_note_touch_down(note->next, coord_on_main_win, EINA_FALSE);       } @@ -197,7 +197,7 @@ void piano_player_play(void *data)    int ret = player_start(note->player);    _print_player_state(note->player); -   RETM_IF( ret != PLAYER_ERROR_NONE, "ret=%d, note->player=%p", ret, note->player); +   RETM_IF(ret != PLAYER_ERROR_NONE, "ret=%d, note->player=%p", ret, note->player); } diff --git a/org.tizen.sampledescriptions/html/mobile_n/preference_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/preference_sd_mn.htm index 857af05..8067ed8 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/preference_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/preference_sd_mn.htm @@ -29,7 +29,7 @@

    The Preference sample application demonstrates how to work with custom preferences stored in an underlying database. The preferences are stored as key-value pairs with a defined value type (integer, double, boolean, or string). You can use the preferences as an application configuration storage, where the key-value pairs remain valid for subsequent launches of the related application.

    The following figure illustrates the application view.

    Figure: Preference screen

    -

    Preference screen

    +

    Preference screen

    You can:

      @@ -75,7 +75,7 @@

      Figure: Application workflow

      Application workflow

      Prerequisites

      -

      The following privilege must be set:

      +

      To ensure proper application execution, the following privilege must be set:

      • http://tizen.org/privilege/systemsettings
      @@ -886,7 +886,7 @@ view_genlist_item_add(key_value_t *key_value)    // Creating new elm_genlist item    Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new(); -   itc->item_style = "double_label";// Item style (2 text labels and content swallow) +   itc->item_style = "double_label"; // Item style (2 text labels and content swallow)    itc->func.text_get = genlist_item_label_get; // Function setting the item text    itc->func.content_get = genlist_item_content_get; // Function setting the item swallow content    itc->func.state_get = NULL; @@ -1235,4 +1235,4 @@ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga - + \ No newline at end of file diff --git a/org.tizen.sampledescriptions/html/mobile_n/puzzle_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/puzzle_sd_mn.htm index 23f3e2c..33a8af1 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/puzzle_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/puzzle_sd_mn.htm @@ -257,4 +257,4 @@ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga - + \ No newline at end of file diff --git a/org.tizen.sampledescriptions/html/mobile_n/resource_manager_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/resource_manager_sd_mn.htm index fca9ae6..760f2dc 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/resource_manager_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/resource_manager_sd_mn.htm @@ -19,140 +19,114 @@
      -

      Mobile native

      +

      Mobile native

      Resource Manager Sample Overview

      -

      - The Tizen API's Resource Manager module provides a small set of functions enabling "objects" extraction from the application's prior created resources. The "objects" extraction process is based on the - environment the application is running in: language and/or screen's DPI. Currently supported objects which may be handled by the Resource Manager are images, sounds, layouts and custom binary files. - The Resource Manager's operational principle is to deliver an object relevant to the current application's environment. -
      - This application demonstrates how to automatically pick an image and layout matching: +

      The Resource Manager sample application demonstrates how you can extract objects from the application's previously created resources. The object extraction process is based on the environment the application is running in: language and the screen DPI. Currently supported objects that can be handled by the Resource Manager are images, sounds, layouts, and custom binary files. The operational principle of the Resource Manager application is to deliver an object relevant to the current application environment.

      +

      The sample application demonstrates how to automatically pick an image and layout matching:

        -
      • the language changed via Settings application;
      • -
      • the device's screen DPI.
      • +
      • Language changed in the Settings application
      • +
      • Device screen DPI
      -

      -

      The figures below illustrate the view of the application running in four different screen's DPI settings as well as different language settings.

      -

      Figure: Resource Manager application screens.

      -

      - Main view of the application running with the DPI=240 - Main view of the application running with the DPI=300 - Main view of the application running with the DPI=380 - Main view of the application running with the DPI=480 -
      - Main view of the application running with the DPI=240 - Main view of the application running with the DPI=300 - Main view of the application running with the DPI=380 - Main view of the application running with the DPI=480 -

      - -

      The sample application provides a user interface for automatic changes previewing only. In order to influence the application, one have to change the environment settings: +

      The following figure illustrates the view of the application running in four different screen DPI settings as well as different language settings.

      +

      Figure: Resource Manager application screens

      +

      + Main view of the application running with the DPI=240 + Main view of the application running with the DPI=300 + Main view of the application running with the DPI=380 + Main view of the application running with the DPI=480

      +

      + Main view of the application running with the DPI=240 + Main view of the application running with the DPI=300 + Main view of the application running with the DPI=380 + Main view of the application running with the DPI=480 +

      + +

      The Resource Manager sample application provides a user interface for automatic change preview only. To influence the application, change the environment settings:

        -
      • by changing Display language in Settings application - Settings application ➜ Language and input ➜ Display language.
      • -
      • - screen's DPI - by creating new mobile emulator image with default density value altered with the custom one, chosen from one of the following ranges: +
      • Language: change the display language in the Settings application by going to Settings application > Language and input > Display language.
      • +
      • Screen DPI: Create a new mobile emulator image with the default density value altered with a custom one, chosen from the following ranges:
          -
        • 0 to 240 - LDPI;
        • -
        • 241 to 300 - MDPI;
        • -
        • 301 to 380 - HDPI;
        • -
        • 381 to 480 - XHDPI;
        • -
        • 481 to 600 - XXHDPI.
        • +
        • 0 to 240 - LDPI
        • +
        • 241 to 300 - MDPI
        • +
        • 301 to 380 - HDPI
        • +
        • 381 to 480 - XHDPI
        • +
        • 481 to 600 - XXHDPI
      - The structure of the user interface is depicted below (EDJE layout scripts are used). -

      -

      Figure: Resource Manager layout structure.

      -

      - Resource Manager layout structure -

      -

      - The final application's view is created by embedding proper widgets into the layout depicted above. The resulting UI view is shown below. +

      The following figure shows the structure of the user interface. EDJE layout scripts are used.

      +

      Figure: Resource Manager layout structure

      +

      + Resource Manager layout structure

      -

      Figure: Resource Manager application's UI view.

      -

      - Resource Manager application's UI view +

      The final application view is created by embedding the proper components into the layout depicted above. The following figure shows the resulting UI view.

      +

      Figure: Resource Manager application UI view

      +

      + Resource Manager application's UI view

      -
      - The application's workflow can be divided into three logical pipelines: + +

      The application workflow can be divided into 3 logical pipelines:

        -
      • application startup,
      • -
      • image extraction relevant to the screen's DPI,
      • -
      • image and layout extraction relevant to the current language,
      • +
      • Application startup
      • +
      • Image extraction relevant to the screen DPI
      • +
      • Image and layout extraction relevant to the current language
      - which can be described by the following figure: -

      -

      Figure: Resource Manager application workflow.

      -

      - Application workflow -

      - -

      Prerequisites

      -

      -

        -
      • To ensure proper application execution, the resources must be created using Resource Explorer tool.
      • -
      • No privilages are required.
      • -
      -

      - -

      Resource Explorer

      - -

      - Resource Explorer is a tool enabling the developer to create the resources structure assigned to an application. The tool is launched by opening Resource Explorer window from SDK's top menu: - Window ➜ Show View ➜ Other... ➜ Resource Explorer (Tizen tab). By pressing the - Resource Explorer settings button button, the Resource Configuration Dialog appears, where - one can define separate resource's directories for languages and/or resolution settings. The related directories names are created automatically and are not changeable. For this sample application, - the resources structure are defined as shown at the image below. +

      The workflow is described by the following figure.

      +

      Figure: Resource Manager application workflow

      +

      + Application workflow

      -

      - Resource Configuration Dialog view +

      Prerequisites

      +

      To ensure proper application execution, the resources must be created using the Resource Explorer tool. It enables you to create the resource structure assigned to an application.

      + +

      Resource Explorer

      +

      The Resource Explorer tool is launched by opening the Resource Explorer view from the IDE menu: Window > Show View > Other... > Resource Explorer. Press Resource Explorer settings button to open the Resource Configuration Dialog, where you can define separate resource directories for languages and resolution settings. The related directory names are created automatically and are not changeable. For this sample application, the resource structure is defined as shown in the following figure.

      +

      Figure: Resource Configuration Dialog view

      +

      + Resource Configuration Dialog view

      -

      - Once the resource directories structure is created, one can put relevant resource files in target directories. In case of this sample application, two types of images and a layout script were uploaded: +

      Once the resource directory structure is created, you can add relevant resource files in the target directories. In this sample application, 2 types of images and a layout script are uploaded:

        -
      • 'tizen.png' - the Tizen's logo adapted to each resolution respectively;
      • -
      • 'flag.png' - the national flag relevant to each supported language;
      • -
      • 'language.edc' - the layout script relevant to each supported language.
      • +
      • tizen.png: The Tizen logo adapted to each resolution respectively
      • +
      • flag.png: The national flag relevant to each supported language
      • +
      • language.edc: The layout script relevant to each supported language
      - The name of each of the resolution related file is set to 'tizen.png' and to 'flag.png' / 'language.edc' for the each language related resource. -

      +

      The name of each of the resolution-related files is set to tizen.png and to flag.png. The file name for the language related file is language.edc for each language-related resource.

      -

      - During the application's packaging process, the 'res.xml' file is created and uploaded to the application's resource directory. This file is populated with a set of information acquired from Resource Explorer - and can't be edited manually, as it is replaced by the Resource Explorer each time the application is rebuilt. -

      +

      During the application packaging process, the res.xml file is created and uploaded to the application resource directory. This file is populated with a set of information acquired from the Resource Explorer. It cannot be edited manually, as it is replaced by the Resource Explorer each time the application is rebuilt.

      -

      - In the application's source code, after the Resource Manager API is initialized, the relevant resource file's path is acquired using the - app_resource_manager_get(app_resource_e type, const char *id, char **path) function, where +

      In the application source code, after the Resource Manager API is initialized, the relevant resource file path is acquired using the app_resource_manager_get() function, where the parameters are:

        -
      • type - specifies the type of the resource (image, sound, layout and bin are currently supported);
      • -
      • id - specifies the identifier of the resource (file name with extension);
      • -
      • path - pointer to the path where the expected resource (file) is stored.
      • +
      • type: Type of the resource (image, sound, layout, and bin are currently supported)
      • +
      • id: Identifier of the resource (file name with extension)
      • +
      • path: Pointer to the path where the expected resource (file) is stored
      - The Resource Manager will look for the file matching the type and - id with respect to the current environment (resolution and language). As a result, the appropriate file path is returned. -

      +

      The Resource Manager looks for the file matching the type and id with respect to the current environment (resolution and language). As a result, the appropriate file path is returned.

      +

      Implementation

      -

      Type definitions

      +

      Type Definitions

      + +

      The following code shows the structures used as placeholders for various application data:

      -/* The general structure for application's data storage. */
      -struct __appdata {
      +// General structure for application data storage
      +struct 
      +__appdata 
      +{
          viewdata_s view;
       };
      -
      -
      -/* All the Evas_Object objects represent UI widgets. */
      -struct __viewdata {
      +// All Evas_Object objects represent UI components
      +struct 
      +__viewdata 
      +{
          Evas_Object *win;
          Evas_Object *conform;
          Evas_Object *layout_main_panel;
      @@ -164,20 +138,20 @@ struct __viewdata {
       typedef struct __viewdata viewdata_s;
       
      -

      Application initialization

      - -

      - The entire application's life-cycle is implemented in the main source file, using a common Tizen application structure: -

      +

      Application Initialization

      +

      To initialize the application:

      +
        +
      1. Implement the entire application life-cycle in the main source file, using a common Tizen application structure:
        -int main(int argc, char *argv[])
        +int 
        +main(int argc, char *argv[])
         {
            appdata_s ad = {{0,},};
            int ret = 0;
         
            ui_app_lifecycle_callback_s event_callback;
        -   app_event_handler_h handlers[5] = {NULL, };
        +   app_event_handler_h handlers[5] = {NULL,};
         
            event_callback.create = __create_app;
            event_callback.terminate = __terminate_app;
        @@ -185,49 +159,39 @@ int main(int argc, char *argv[])
            event_callback.resume = __resume_app;
            event_callback.app_control = __control_app;
         
        -   ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, __ui_app_low_battery, &ad);
        -   ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, __ui_app_low_memory, &ad);
        -   ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, __ui_app_orient_changed, &ad);
        -   ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, __ui_app_lang_changed, &ad);
        -   ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, __ui_app_region_changed, &ad);
        +   ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, __ui_app_low_battery, &ad);
        +   ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, __ui_app_low_memory, &ad);
        +   ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, __ui_app_orient_changed, &ad);
        +   ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, __ui_app_lang_changed, &ad);
        +   ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, __ui_app_region_changed, &ad);
         
        -   ret = ui_app_main(argc, argv, &event_callback, &ad);
        +   ret = ui_app_main(argc, argv, &event_callback, &ad);
            if (ret != APP_ERROR_NONE)
        -      controller_log(DLOG_ERROR, "Function ui_app_main() failed with error = %d", ret);
        +      controller_log(DLOG_ERROR, "Function ui_app_main() failed with error = %d", ret);
         
            return ret;
         }
         
        - -

        - The application's initilization procedure is executed in __create_app() callback function, which is invoked on application's startup. -

        - +
      2. +
      3. Initialize the application with the __create_app() callback function, which is invoked on application startup:
        -static bool __create_app(void *data)
        +static bool 
        +__create_app(void *data)
         {
            appdata_s *ad = (appdata_s *)data;
         
        -   return controller_init(&ad->view);
        +   return controller_init(&ad->view);
         }
         
        - -

        - Finally, the controller_init() function is invoked, which controls the entire initialization process - (see the code snippet below for details). This function is responsible for: +

      4. +
      5. Invoke the controller_init() function, which controls the entire initialization process. This function is responsible for:
          -
        • - Resource Manager engine initialization (model_init()); -
        • -
        • - User interface creation (view_create_base_gui()) and initialization - (__controller_init_dpi()). -
        • +
        • Resource Manager engine initialization (model_init())
        • +
        • User interface creation (view_create_base_gui()) and initialization (__controller_init_dpi())
        -

        -
        -bool controller_init(viewdata_s *vd)
        +bool 
        +controller_init(viewdata_s *vd)
         {
            if (!model_init())
               return false;
        @@ -240,201 +204,168 @@ bool controller_init(viewdata_s *vd)
            return true;
         }
         
        - -

        - For reference of model related functions that are not listed here refer to the Model section. -

        - -

        - The view related source code is not listed here, as it is not a subject of this document. -

        - -

        - The model_init() function simply invokes - app_resource_manager_init() API function in order to get access to the Resource Manager engine (see the code snippet below for reference). -

        - +
          +
        1. +

          Invoke the app_resource_manager_init() function with the model_init() function to get access to the Resource Manager engine:

          -bool model_init(void)
          +bool 
          +model_init(void)
           {
              return __model_init_app_resource_manager();
           }
          -
          -
          -bool __model_init_app_resource_manager(void)
          +bool 
          +__model_init_app_resource_manager(void)
           {
              int ret = app_resource_manager_init();
          -   if (ret != APP_RESOURCE_ERROR_NONE) {
          -      controller_log(DLOG_ERROR, "Function app_resource_manager_init() failed with error %d.", ret);
          +   if (ret != APP_RESOURCE_ERROR_NONE) 
          +   {
          +      controller_log(DLOG_ERROR, "Function app_resource_manager_init() failed with error %d.", ret);
          +
                 return false;
              }
           
              return true;
           }
           
          - -

          - The __controller_init_dpi() function gets the 'tizen.png' image's file path from the Resource Manager and updates the view with the - image relevant to the screen's DPI. -

          - +
        2. +
        3. +

          Use the __controller_init_dpi() function to get the tizen.png image file path from the Resource Manager and update the view with the image relevant to the screen DPI:

          -static void __controller_init_dpi(viewdata_s *vd)
          +static void 
          +__controller_init_dpi(viewdata_s *vd)
           {
              char *file_path = NULL;
           
          -   if (!model_get_app_resource(APP_RESOURCE_TYPE_IMAGE, "tizen.png", &file_path))
          +   if (!model_get_app_resource(APP_RESOURCE_TYPE_IMAGE, "tizen.png", &file_path))
                 return;
           
              view_show_dpi_image(vd, file_path);
              free(file_path);
           }
           
          +

          For reference of the Model-related functions that are not listed here, see Model. The view-related source code is not listed here, as it is not a subject of this topic.

          +
        4. +
        +
      6. +
      -

      - For reference of model related functions that are not listed here refer to the Model section. -

      - -

      - The view related source code is not listed here, as it is not a subject of this document. -

      - -

      Application termination

      - -

      - When the application is terminated, the __terminate_app() callback function is called (see the code snippet below). -

      +

      Application Termination

      +

      To terminate the application:

      +
        +
      1. When the application is terminated, call the __terminate_app() callback function:
        -static void __terminate_app(void *data)
        +static void 
        +__terminate_app(void *data)
         {
            appdata_s *ad = (appdata_s *)data;
         
        -   controller_finit(&ad->view);
        +   controller_finit(&ad->view);
         }
         
        - -

        - All the resources, allocated previously, are released with controller_finit() function, which is responsible for - closing the Resource Manager's API session and destroying the UI. -

        - +
      2. +
      3. Release the previously allocated resources with the controller_finit() function, which is responsible for closing the Resource Manager API session and destroying the UI:
        -void controller_finit(viewdata_s *vd)
        +void 
        +controller_finit(viewdata_s *vd)
         {
            model_finit();
            view_destroy_base_gui(vd);
         }
         
        - -

        - As the UI is not a subject for this documentation, the implementation of the view_destroy_base_gui() function is ommited. - Closing the Resource Manager's API session is performed in the Model module within the model_finit() function, which calls an - internal function __model_release_app_resource_manager(). -

        - +
      4. +
      5. Close the Resource Manager API session in the Model module within the model_finit() function, which calls the internal __model_release_app_resource_manager() function. +

        As the UI is not a subject for this topic, the implementation of the view_destroy_base_gui() function is omitted.

        -bool model_finit(void)
        +bool 
        +model_finit(void)
         {
            return __model_release_app_resource_manager();
         }
        -
        -
        -bool __model_release_app_resource_manager(void)
        +bool 
        +__model_release_app_resource_manager(void)
         {
            int ret = app_resource_manager_release();
        -   if (ret != APP_RESOURCE_ERROR_NONE) {
        -      controller_log(DLOG_ERROR, "Function app_resource_manager_release() failed with error %d.", ret);
        +   if (ret != APP_RESOURCE_ERROR_NONE) 
        +   {
        +      controller_log(DLOG_ERROR, "Function app_resource_manager_release() failed with error %d.", ret);
        +
               return false;
            }
         
            return true;
         }
         
        +
      6. +
      -

      Resource files handling

      +

      Resource File Handling

      -

      - Once the resources are defined using Resource Explorer and appropriate resource files are uploded to the destination folders, one can start using these files. - For the demonstration purpose, three scenarions were chosen: +

      Once the resources are defined using the Resource Explorer tool and appropriate resource files are uploaded to the destination folders, you can start using these files. For demonstration purposes, 3 scenarios are chosen:

        -
      • displaying the image related to the current DPI setting;
      • -
      • displaying the image related to the current locale setting;
      • -
      • setting the layout related to the current locale setting.
      • +
      • Displaying the image related to the current DPI setting
      • +
      • Displaying the image related to the current locale setting
      • +
      • Setting the layout related to the current locale setting
      -

      - -

      - In the first case, there are 5 image files (each name is set to 'tizen.png') depicting the Tizen's logo with resolution label attached. Each of the images is stored in a different folder with respect to the - DPI setting: 'res/contents/LDPI', 'res/contents/MDPI', 'res/contents/HDPI', 'res/contents/XHDPI', 'res/contents/XXHDPI'. On application's startup, during the initialization procedure - (Application initialization section), the __controller_init_dpi() function is called, which obtains - the path to the relevant image based on the current screen's settings. The core function, performing described task is - model_get_app_resource() (for reference, see the Model section). -

      +

      In the first scenario, there are 5 image files depicting the Tizen logo with resolution label attached. Each of the images with their name set to tizen.png is stored in a different folder with respect to the DPI setting. The folders are res/contents/LDPI, res/contents/MDPI, res/contents/HDPI, res/contents/XHDPI, and res/contents/XXHDPI.

      +

      On application startup, during the initialization procedure (see Application Initialization), the __controller_init_dpi() function is called, which obtains the path to the relevant image based on the current screen settings. The core function performing the described task is the model_get_app_resource() function. For reference, see Model.

      -static void __controller_init_dpi(viewdata_s *vd)
      +static void 
      +__controller_init_dpi(viewdata_s *vd)
       {
          char *file_path = NULL;
       
      -   /* Obtains the path to the 'tizen.png' file with respect to the current screen's settings. */
      -   if (!model_get_app_resource(APP_RESOURCE_TYPE_IMAGE, "tizen.png", &file_path))
      +   // Obtains the path to the tizen.png file with respect to the current screen settings
      +   if (!model_get_app_resource(APP_RESOURCE_TYPE_IMAGE, "tizen.png", &file_path))
             return;
       
      -   /* The obtained image file is displayed. */
      +   // Obtained image file is displayed
          view_show_dpi_image(vd, file_path);
          free(file_path);
       }
       
      -

      - In the second and third cases, there are 48 image files (each name is set to 'flag.png') depicting the national flags and 48 layout files (each name is set to 'language.edc') creating the text fields - related to all supported languages. Each of the images and layouts are stored in a different folder: - 'res/contents/az_AZ', 'res/contents/ca_ES', ... , 'res/contents/zh_TW'. Once, the user changes the current language (Settings application ➜ Language and input ➜ Display language), - the callback function __ui_app_lang_changed() is invoked (see the Application initialization section). - This callback function hooks APP_EVENT_LANGUAGE_CHANGED event. At the entry point of the - __ui_app_lang_changed() function, the current locale is obtained using - model_get_locale() function in order to be later set as a current language for the application - (elm_language_set()). Finally, the - controller_set_language() function is invoked, which is responsible for obtaining and displaying the language relevant image. -

      - +

      In the second and third scenario, there are 48 image files (each name is set to flag.png) depicting the national flags, and 48 layout files (each name is set to language.edc) creating the text fields related to all supported languages. Each of the images and layouts are stored in a different folder. The folders are res/contents/az_AZ, res/contents/ca_ES, ..., res/contents/zh_TW.

      +

      When the current language is changed (in Settings > Language and input > Display language), the __ui_app_lang_changed() callback function is invoked (see Application Initialization). This callback function hooks the APP_EVENT_LANGUAGE_CHANGED event. At the entry point of the __ui_app_lang_changed() function, the current locale is obtained using the model_get_locale() function to be later set as a current language for the application with the elm_language_set() function.

      +

      Finally, the controller_set_language() function is invoked, which is responsible for obtaining and displaying the language-relevant image.

      -static void __ui_app_lang_changed(app_event_info_h event_info, void *user_data)
      +static void
      +__ui_app_lang_changed(app_event_info_h event_info, void *user_data)
       {
          appdata_s *ad = (appdata_s *)user_data;
          char *locale = NULL;
       
      -   if (!model_get_locale(&locale))
      +   if (!model_get_locale(&locale))
             return;
       
          elm_language_set(locale);
       
      -   controller_log(DLOG_INFO, "Language set to: %s.", locale);
      +   controller_log(DLOG_INFO, "Language set to: %s.", locale);
       
          if (locale)
             free(locale);
       
      -   controller_set_language(&ad->view);
      +   controller_set_language(&ad->view);
       
          return;
       }
      -
      -
      -void controller_set_language(viewdata_s *vd)
      +void 
      +controller_set_language(viewdata_s *vd)
       {
          char *file_path = NULL;
       
      -   /* Obtains the path to the 'language.edj' file with respect to the current language's settings. */
      -   if (model_get_app_resource(APP_RESOURCE_TYPE_LAYOUT, "language.edj", &file_path)) {
      +   // Obtains the path to the language.edj file with respect to the current language settings
      +   if (model_get_app_resource(APP_RESOURCE_TYPE_LAYOUT, "language.edj", &file_path)) 
      +   {
             const char *rel_file_path = NULL;
       
      -      /* The layout's file path must be transformed to the relative one, as the elm_layout widget does not accept absolute paths. */
      -      if (__controller_get_relative_resource_file_path(file_path, &rel_file_path))
      -         /* If successful, then the layout file is uploaded and inserted to the PART_MAIN_BOTTOM_PANEL_LANGUAGE_PANEL swallow of the main layout. */
      +      // Layout file path must be transformed to the relative one, as the elm_layout component does not accept absolute paths
      +      if (__controller_get_relative_resource_file_path(file_path, &rel_file_path))
      +         // If successful, the layout file is uploaded and inserted to the PART_MAIN_BOTTOM_PANEL_LANGUAGE_PANEL swallow of the main layout
                view_show_language_layout(vd, rel_file_path);
          }
       
      @@ -443,45 +374,34 @@ void controller_set_language(viewdata_s *vd)
       
          file_path = NULL;
       
      -   /* Obtains the path to the 'flag.png' file with respect to the current language's settings. */
      -   if (model_get_app_resource(APP_RESOURCE_TYPE_IMAGE, "flag.png", &file_path))
      -      /* If successful, then the image is displayed. */
      +   // Obtains the path to the flag.png file with respect to the current language settings
      +   if (model_get_app_resource(APP_RESOURCE_TYPE_IMAGE, "flag.png", &file_path))
      +      // If successful, the image is displayed
             view_show_language_info(vd, file_path);
       
          if (file_path)
             free(file_path);
       }
       
      - -

      - For all Model related functions, see the Model section. -

      +

      For all Model-related functions, see Model.

      Model

      -

      - The responsibility of the application's "Model" module is to operate directly on the Resource Manager API. The additional benefit of this module is that the simplification of the API function calling, - error checking and message logging is performed here. -
      - Some of the functions implemented within the "Model" module were briefly described in the Application initialization and Application termination sections - (model_init(), model_finit(), - __model_init_app_resource_manager(), - __model_release_app_resource_manager(). Other functions are briefly described here. -

      - -

      - The path to the resource file pointed by the type and id - is obtained with the model_get_app_resource() function. -

      +

      The responsibility of the application Model module is to operate directly on the Resource Manager API. The additional benefit of this module is the simplification of the API function calling, as error checking and message logging is performed here.

      +

      Some of the functions implemented within the Model module were described in Application Initialization and Application Termination sections (model_init(), model_finit(), __model_init_app_resource_manager(), and __model_release_app_resource_manager()). Other functions are described here.

      +

      The path to the resource file pointed by the type and id is obtained with the model_get_app_resource() function:

      -bool model_get_app_resource(app_resource_e type, const char *id, char **path)
      +bool 
      +model_get_app_resource(app_resource_e type, const char *id, char **path)
       {
          *path = NULL;
       
          int ret = app_resource_manager_get(type, id, path);
      -   if (ret != APP_RESOURCE_ERROR_NONE) {
      -      controller_log(DLOG_ERROR, "Function app_resource_manager_get() failed with error %d.", ret);
      +   if (ret != APP_RESOURCE_ERROR_NONE) 
      +   {
      +      controller_log(DLOG_ERROR, "Function app_resource_manager_get() failed with error %d.", ret);
      +
             return false;
          }
       
      diff --git a/org.tizen.sampledescriptions/html/mobile_n/scheduler_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/scheduler_sd_mn.htm
      index 2880e80..6866017 100644
      --- a/org.tizen.sampledescriptions/html/mobile_n/scheduler_sd_mn.htm
      +++ b/org.tizen.sampledescriptions/html/mobile_n/scheduler_sd_mn.htm
      @@ -40,7 +40,8 @@
       
    • Navigate between lists of events in a daily or monthly order, navigate between lists of events, display event details, and access editing options. When the application starts, it enumerates events and displays them in a selected order.
      -static void tabbar_daily_clicked_cb(void *data, Evas_Object *obj, void *event_info)
      +static void 
      +tabbar_daily_clicked_cb(void *data, Evas_Object *obj, void *event_info)
       {
          main_view_data *ad = (main_view_data *)data;
          if (data && ad->gl_allday)
      @@ -56,7 +57,8 @@ static void tabbar_daily_clicked_cb(void *data, Evas_Object *obj, void *event_in
       

      The lists of events can be retrieved from the calendar database:

      -static void get_daily_events(void *data, Evas_Object *gen_list, Eina_Bool no_all_day, Eina_Bool daily)
      +static void 
      +get_daily_events(void *data, Evas_Object *gen_list, Eina_Bool no_all_day, Eina_Bool daily)
       {
          calendar_error_e error = CALENDAR_ERROR_NONE;
       
      @@ -105,7 +107,6 @@ static void get_daily_events(void *data, Evas_Object *gen_list, Eina_Bool no_all
       
          for (int i = 0; i < count; i++)
          {
      -      ...
             //  fill in list here 
             ad->added_rec_pos++;
          }
      @@ -124,7 +125,8 @@ static void get_daily_events(void *data, Evas_Object *gen_list, Eina_Bool no_all
       

      When an event is clicked on the list, the _item_sel_cb callback is called and the details_view_add() function is executed:

      -void details_view_add(window_obj *win, Evas_Object *parent, int index)
      +void 
      +details_view_add(window_obj *win, Evas_Object *parent, int index)
       {
          RETM_IF(!win || !parent, "Passed NULL input data");
       
      @@ -140,6 +142,7 @@ void details_view_add(window_obj *win, Evas_Object *parent, int index)
          {
             calendar_disconnect();
             free(data);
      +
             return;
          }
       
      @@ -176,7 +179,8 @@ void details_view_add(window_obj *win, Evas_Object *parent, int index)
       

      Adding events and modifying event details

      -static void save_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
      +static void 
      +save_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
       {
          create_view_data *ad = (create_view_data *)data;
          RETM_IF(!ad, "Passed NULL input data");
      @@ -187,6 +191,7 @@ static void save_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
          if (strlen(title) == 0)
          {
             create_warning_popup(ad, WARNING_POPUP_TEXT);
      +
             return;
          }
       
      @@ -243,7 +248,8 @@ static void save_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
       

      There is a series of popup windows with options to choose from.

      -static void _show_btn_context_popup(void *data, Evas_Smart_Cb func, int n_labels, char **label, EVENT_PARAM_TYPE type)
      +static void 
      +_show_btn_context_popup(void *data, Evas_Smart_Cb func, int n_labels, char **label, EVENT_PARAM_TYPE type)
       {
          RETM_IF(!data, "Passed NULL input data");
          create_view_data *ad = (create_view_data *)data;
      @@ -309,7 +315,8 @@ static void _show_btn_context_popup(void *data, Evas_Smart_Cb func, int n_labels
       

      Customizing editing and recurrence

      -void save_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
      +void 
      +save_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
       {
          RETM_IF(!data, "Passed NULL input data");
          edit_view_data *view_data = (edit_view_data *)data;
      diff --git a/org.tizen.sampledescriptions/html/mobile_n/sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/sd_mn.htm
      index bb9c864..ac80a87 100644
      --- a/org.tizen.sampledescriptions/html/mobile_n/sd_mn.htm
      +++ b/org.tizen.sampledescriptions/html/mobile_n/sd_mn.htm
      @@ -43,9 +43,9 @@
            Description 
            
       	
      -     Application Common
      -     Demonstrates how you can use Application Common module of the Tizen API for application related information extraction.
      -    
      +	 Application Common
      +	 Demonstrates how you can extract application-related information.
      +	
       	
            Application Control
            Demonstrates how you can search for applications supporting specific classes of operations and run them using the operation contexts.
      @@ -78,23 +78,39 @@
            Contacts 
            Demonstrates how you can manage contacts.
           
      +	 
      +     Context History 
      +     Demonstrates how you can retrieve device usage statistics using the Contextual History API.
      +    	
      +	 
      +     Context Trigger 
      +     Demonstrates how you can manage contextual rules using the Context Trigger API.
      +    
           
            Data-Control-Consumer
      -     Demonstrates how to implement Data-Control-Consumer application using both sql and map methods.
      +     Demonstrates how you can implement a data control consumer application using both SQL and map methods.
           
           
            Data-Control-Provider
      -     Demonstrates how to implement Data-Control-Provider service using both sql and map methods.
      +     Demonstrates how you can implement a data control provider service using both SQL and map methods.
           
       	 
      +     EFL Core 
      +     Demonstrates how you can use the EFL and Elementary libraries and related APIs in Tizen.
      +    
      +	 
      +     EOM 
      +     Demonstrates how you can use the EOM mode with the External Output Manager API.
      +    	
      +	 
            EvasGLCube 
            Demonstrates how you can implement a cube that can be rotated on the screen through Evas_GL.
           
       	
      -     Event
      -     Demonstrates how to implement event listeners and publish custom events using Event API.
      -    
      -	
      +	 Event
      +	 Demonstrates how you can implement event listeners and publish custom events.
      +	
      +	 
            File Manager 
            Demonstrates how you can implement a complex view using EFL UI components and containers.
           
      @@ -108,7 +124,7 @@
           
       	 
            GLViewShader 
      -     Demonstrates how you can render more complex geometric shapes with OepnGL® ES and use Elementary GLView helper macros to port existing code.
      +     Demonstrates how you can render more complex geometric shapes with OpenGL® ES and use Elementary GLView helper macros to port existing code.
           
           
            GPS Consumer
      @@ -118,13 +134,29 @@
            GPS Service
            Demonstrates how you can implement a Tizen service providing geolocation data using the IPC mechanism from the Tizen API.
           
      -	
      +	 
            HybridServiceApp 
            Demonstrates how you can communicate with a Tizen Web application (HybridWebApp) to manage the timer for the Web application.
           
       	
      -     Internationalization
      -     Demonstrates how to provide multilanguage support to the application using two different translation machanisms: global and local.
      +	Internationalization
      +	 Demonstrates how you can provide multilanguage support to the application using 2 different translation mechanisms.
      +	
      +	 
      +     LaunchOnEventServiceApp 
      +     Demonstrates how you can use launch-on-event in your application.
      +    
      +	 
      +     LBS Geofence 
      +     Demonstrates how you can manage fences and places.
      +    
      +	 
      +     LBS Maps 
      +     Demonstrates how you can use map services, such as geocode, place search, and routing.
      +    
      +	
      +     LibOauth
      +     Demonstrates how you can  get access tokens from various resource owners, such as Twitter and Tumblr, who use the OAuth protocol RFC5849.
           
       	 
            Lockscreen 
      @@ -146,10 +178,18 @@
            Message Port
            Demonstrates how you can implement a data exchange mechanism using the Message Port API.
           
      +	
      +     Metadata Editor
      +     Demonstrates how you can retrieve and modify metadata.
      +    
       	 
            Notification Manager 
            Demonstrates how you can present a notification to the user.
           
      +	
      +     Oauth2
      +     Demonstrates how you can get access tokens from various resource owners that use the OAuth2 protocol RFC6749.
      +    
           
            Paint
            Demonstrates how you can draw on an Evas canvas.
      @@ -171,8 +211,12 @@
            Demonstrates how you can implement a complex view using recursive composition of the standard EFL components.
           
       	
      -     Resource Manager
      -     Demonstrates how to use Resource Manager API together with the SDK's Resource Explorer to benefit from tasks' automation.
      +	 Resource Manager
      +	 Demonstrates how you can use the Resource Manager API together with the SDK's Resource Explorer to benefit from task automation.
      +	
      +	 
      +     Sample Account 
      +     Demonstrates how you can implement an account provider which can add and configure an account.
           
       	 
            Scheduler 
      @@ -191,14 +235,14 @@
            SensorApp 
            Demonstrates how you can retrieve data from various Tizen sensor types.
           
      -    
      +     
            Service Adaptor
            Demonstrates how you can download files from cloud storages.
           
      -    
      -     Shortcut
      -     Demonstrates how to create an application's shortcut in Homescreen as well as how to register to receive shortcut requests form other applications using the Shortcut API.
      -    
      +	
      +	 Shortcut
      +	 Demonstrates how you can create an application shortcut on the home screen and receive shortcut requests from other applications.
      +	
           
            Simple Homescreen
            Demonstrates how you can implement a simple Homescreen-like application.
      @@ -212,12 +256,12 @@
            Demonstrates how you can implement a complex view using recursive composition of the standard EFL UI components and containers in a component hierarchy.
           
       	
      -     Sync Adapter App
      -     Demonstrates how you can add different sync requests to sync manager for scheduling of data synchronization tasks
      +	 Sync Adapter App
      +	 Demonstrates how you can add different sync requests to the sync manager to schedule data synchronization tasks.
       	
       	
      -     Sync Adapter Service App
      -     Demonstrates how sync callbacks are to be implemented to handle sync requests from sync adapter UI app
      +	 Sync Adapter Service App
      +	 Demonstrates how you can implement sync callbacks to handle sync requests from the Sync Adapter App application.
       	
       	
            System Info
      @@ -227,35 +271,35 @@
            Taskmanager
            Demonstrates how you can manage running applications as well as acquire information about them.
           
      +	
      +     Thumbnail Util
      +     Demonstrates how you can get a custom-size thumbnail image.
      +    
      +	
      +     TTS
      +     Demonstrates how you can use the TTS (Text-To-Speech) feature in your application.
      +    
       	 
            UI Components  
            Demonstrates how you can implement an interactive application GUI with basic Elementary UI components.
           	
       	
      -     Volume
      -     Demonstrates how you can acquire and set the device sound levels.
      +     Voice Control
      +     Demonstrates how you can use the Voice Control API to initialize, deinitialize, add, and remove voice commands.
           
      -	 
      -     [UI Sample] Alignment 
      -     Demonstrates how you can place objects on the layout.
      +	
      +     Voice Control for EFL Components
      +     Demonstrates how you can register voice commands for EFL-supported UI components.
           
      -	 
      -     [UI Sample] Animation 
      -     Demonstrates how you can animate an object using EDC context.
      +	
      +     Volume
      +     Demonstrates how you can acquire and set the device sound levels.
           
       	 
      -     [UI Sample] Animator 
      -     Demonstrates how you can display rectangles with an animation effect using EFL animator and timer functions.  
      -    	
      -	 
            [UI Sample] ApplicationStore 
            Demonstrates how you can implement an application store view with several boxes and buttons.
           
       	 
      -     [UI Sample] Box 
      -     Demonstrates how you can display a number of rectangles using the EFL smart object.  
      -    	
      -	 
            [UI Sample] Calculator 
            Demonstrates how you can implement a simple calculator application with complex views.
           
      @@ -264,82 +308,14 @@
            Demonstrates how you can implement a clock application with different views.
           
       	 
      -     [UI Sample] Ecore Thread 1 
      -     Demonstrates how you can move a button using EFL thread-related functions.  
      -    
      -	 
      -     [UI Sample] Ecore Thread 2 
      -     Demonstrates how you can design threads to work together with the Ecore main loop by considering synchronization and mutual exclusion.  
      -    
      -	 
      -     [UI Sample] Ecore Thread 3 
      -     Demonstrates how you can design threads to work together with the Ecore main loop by considering asynchronization and mutual exclusion.   
      -    
      -	 
      -     [UI Sample] Ecore Thread 4 
      -     Demonstrates how you can move a button using EFL thread feedback functions.  
      -    
      -	 
      -     [UI Sample] Ecore Thread 5 
      -     Demonstrates how you can use the multi-thread functionality by EAPI.  
      -    
      -	 
      -     [UI Sample] EcoreEvent 
      -     Demonstrates how you can create an event handler using EFL Ecore event functions.  
      -    	
      -	 
      -     [UI Sample] EDC Map 
      -     Demonstrates how you can implement 3D effects using the EDC map.  
      -    	
      -	 
      -     [UI Sample] EDCformat 
      -     Demonstrates how you can organize and use the EDC.
      -    
      -	 
      -     [UI Sample] Elm Transit 
      -     Demonstrates how you can add the translation and rotation effect on the Evas object.  
      -    	
      -	 
            [UI Sample] Email 
            Demonstrates how you can implement a complex email application view.
           
       	 
      -     [UI Sample] Evas Map 
      -     Demonstrates how you can display a rectangle and an image which are applied by the Evas map using EFL Evas map util functions.  
      -    	
      -	 
      -     [UI Sample] Evas Map Mapping 
      -     Demonstrates how you can apply UV mapping to an Evas object (button) by using EFL Evas map util functions.  
      -    	
      -	 
      -     [UI Sample] Evas Map Rotation 
      -     Demonstrates how you can rotate a button in 3D using EFL map functions.  
      -    
      -	 
      -     [UI Sample] Evas Event 
      -     Demonstrates how you can register a callback function on Evas or an Evas object for a specific event.  
      -    	
      -	 
            [UI Sample] Gallery 
            Demonstrates how you can implement a gallery view to display images. 
           
       	 
      -     [UI Sample] Idler 
      -     Demonstrates how you can operate the idler functionality in Ecore.  
      -    
      -	 
      -     [UI Sample] Image 
      -     Demonstrates how you can display an image on the canvas using EFL image object functions.  
      -    
      -	 
      -     [UI Sample] InList 
      -     Demonstrates how you can manage inline lists using EFL InList functions.  
      -    
      -	 
      -     [UI Sample] Job 
      -     Demonstrates how you can add and delete an Ecore_Job, and show how they always execute in the added order. 
      -    	
      -	 
            [UI Sample] LanguageChange 
            Demonstrates how you can implement an application that supports multiple languages and language change at runtime. 
           
      @@ -348,29 +324,9 @@
            Demonstrates how you can implement a common layout for your application. 
           	
       	 
      -     [UI Sample] LayoutSignal 
      -     Demonstrates how you can implement an instant messaging application through EFL UI components and containers. 
      -    
      -	 
      -     [UI Sample] List 
      -     Demonstrates how you can use double-linked list data structure using EFL list functions.  
      -    		
      -	 
            [UI Sample] MessageBubble 
            Demonstrates how you can manage communication between Edje code and C code through EFL UI components and containers. 
           
      -		 
      -     [UI Sample] Proxy Object 
      -     Demonstrates how you can make a proxy object for an Evas object.  
      -    
      -	 
      -     [UI Sample] Rectangle 
      -     Demonstrates how you can display a rectangle on the canvas using EFL Evas object functions and how to move and resize the rectangle.   
      -    
      -	 
      -     [UI Sample] RelativePositioning 
      -     Demonstrates how you can place an object on the basis of another object.
      -    
       	 
            [UI Sample] SNS 
            Demonstrates how you can implement a scrollable view with tables and buttons through EFL UI components and containers.    
      @@ -378,18 +334,6 @@
       	 
            [UI Sample] Setting 
            Demonstrates how you can implement a Settings application with pop-up menus and different views through EFL UI components and containers.   
      -    
      -	 
      -     [UI Sample] StringShare 
      -     Demonstrates how you can store a string and use it in multiple places throughout a program.  
      -    	
      -	 
      -     [UI Sample] ThemeExtension 
      -     Demonstrates how you can modify the look and feel of your application with custom themes and styles.   
      -    
      -	 
      -     [UI Sample] Timer 
      -     Demonstrates how you can use Ecore timer and adjust the specific timers in the timer list.  
           	
           
          
      diff --git a/org.tizen.sampledescriptions/html/mobile_n/selfcamera_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/selfcamera_sd_mn.htm
      index f57ecf5..07ac307 100644
      --- a/org.tizen.sampledescriptions/html/mobile_n/selfcamera_sd_mn.htm
      +++ b/org.tizen.sampledescriptions/html/mobile_n/selfcamera_sd_mn.htm
      @@ -102,6 +102,7 @@ static Eina_Bool _main_view_start_preview(main_view *view)
                }
             }
          }
      +
          return !result;
       }
       
      @@ -125,6 +126,7 @@ static Eina_Bool _main_view_timer_cb(void *data)       {          camera_start_capture(view->camera, _main_view_capture_cb, _main_view_capture_completed_cb, view);       } +       return ECORE_CALLBACK_CANCEL;    } } diff --git a/org.tizen.sampledescriptions/html/mobile_n/service_adaptor_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/service_adaptor_sd_mn.htm index 14cee62..96645cd 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/service_adaptor_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/service_adaptor_sd_mn.htm @@ -25,37 +25,54 @@
    • Service Adaptor Sample Overview

      -

      The Service Adaptor sample demonstrates how to download files from cloud storage using Service Adaptor APIs.

      +

      The Service Adaptor sample demonstrates how you can download files from a cloud storage using the Service Adaptor API.

      The following figure illustrates the main views of the Service Adaptor application.

      Figure : Service Adaptor main views

      -

      Service Adaptor main views

      +

      Service Adaptor main views Service Adaptor main views Service Adaptor main views

      +

      Service Adaptor main views Service Adaptor main views Service Adaptor main views

      + +

      The application opens with the main screen, which lists the plugins available in the system. The sample application contains 10 dummy plugins, and if you install a cloud storage plugin (such as dropbox), it is added at the top of the list.

      + +

      To use a plugin:

      +
        +
      1. On the main screen, select the plugin you want by clicking it. +

        The list of files included in the cloud storage is displayed.

      2. +
      3. To see the file details, click the file in the file list.
      4. +
      5. To download a file, click Download on the file details screen. +

        On the file download screen, click Start. When the download is complete, click OK.

      6. +
      -

      There are 10 dummy plugins in the sample application. If you install a cloud storage plugin (eg, dropbox), it will be added in the top of the plugins.

      Implementation

      -

      To connect service adaptor:

      +

      To use the service adaptor:

        -
      1. Connect to service adaptor and search any plugin is installed. +
      2. Connect to the service adaptor and search for any installed plugins:
        -static void foreach_plugin()
        +static void 
        +foreach_plugin()
         {
            Evas_Object *list = ad.main_list;
         
            int ret = 0;
            service_adaptor_h service_adaptor = NULL;
        -   ret = service_adaptor_create(&service_adaptor);
        -   if (SERVICE_ADAPTOR_ERROR_NONE != ret) {
        -      log_error("Service adaptor create failed");
        +   ret = service_adaptor_create(&service_adaptor);
        +   if (SERVICE_ADAPTOR_ERROR_NONE != ret) 
        +   {
        +      log_error("Service adaptor create failed");
        +
               return;
            }
         
            ret = service_adaptor_foreach_plugin(service_adaptor, _plugin_iterator_cb, (void *)list);
        -   if (SERVICE_ADAPTOR_ERROR_NO_DATA == ret) {
        -      log_info("There is no available plugin");
        -   } else if (SERVICE_ADAPTOR_ERROR_NONE != ret) {
        -      log_error("Plugin foreach failed");
        +   if (SERVICE_ADAPTOR_ERROR_NO_DATA == ret) 
        +   {
        +      log_info("There is no available plugin");
        +   } 
        +   else if (SERVICE_ADAPTOR_ERROR_NONE != ret) 
        +   {
        +      log_error("Plugin foreach failed");
               ret = service_adaptor_destroy(service_adaptor);
               service_adaptor = NULL;
            }
        @@ -64,22 +81,24 @@ static void foreach_plugin()
         
            int i = 0;
         
        -   while (NULL != fake_plugins[i]) {
        +   while (NULL != fake_plugins[i]) 
        +   {
               elm_list_item_append(list, fake_plugins[i], NULL, NULL, _show_plugin_view, NULL);
               ++i;
            }
         }
         
        -

        If there are any installed plugins, _plugin_iterator_cb callback is called and the plugin is added in the list:

        +

        If there are any installed plugins, the _plugin_iterator_cb() callback is called and the plugin is added to the list:

        -static bool _plugin_iterator_cb(char *plugin_uri, int service_mask, void *user_data)
        +static bool 
        +_plugin_iterator_cb(char *plugin_uri, int service_mask, void *user_data)
         {
            Evas_Object *list = (Evas_Object *)user_data;
        -   log_debug("plugin uri : %s, masked : ", plugin_uri,
        -      (SERVICE_PLUGIN_SERVICE_AUTH & service_mask), (SERVICE_PLUGIN_SERVICE_STORAGE & service_mask));
        -   if ((service_mask & SERVICE_PLUGIN_SERVICE_AUTH) && (service_mask & SERVICE_PLUGIN_SERVICE_STORAGE)) {
        -
        +   log_debug("plugin uri : %s, masked : <auth(%d), storage(%d)>", plugin_uri,
        +             (SERVICE_PLUGIN_SERVICE_AUTH & service_mask), (SERVICE_PLUGIN_SERVICE_STORAGE & service_mask));
        +   if ((service_mask & SERVICE_PLUGIN_SERVICE_AUTH) && (service_mask & SERVICE_PLUGIN_SERVICE_STORAGE)) 
        +   {
               elm_list_item_append(list, strdup(plugin_uri), NULL, NULL, _show_plugin_view, strdup(plugin_uri));
            }
         
        @@ -88,57 +107,57 @@ static bool _plugin_iterator_cb(char *plugin_uri, int service_mask, void *user_d
         
      3. -
      4. Select plugin (cloud storage). -

        When any plugin is clicked on the list, the file list of cloud storage will be shown in the next screen:

        -

        Figure : File list

        -

        Service Adaptor File list

        +
      5. Display the plugin file list. +

        When a plugin is selected on the list, the cloud storage file list is shown on the next screen:

        +
        -static void _show_plugin_view(void* data, Evas_Object* obj, void* event_info)
        +static void 
        +_show_plugin_view(void* data, Evas_Object* obj, void* event_info)
         {
            char *plugin_uri = (char *)data;
         
            Evas_Object *glist = elm_genlist_add(ad.win);
            ad.file_list = glist;
         
        -   if (plugin_uri) {
        -      /* get files list from this plugin */
        +   if (plugin_uri) 
        +   {
        +      // Get the file list from the plugin
               if (NULL != ad.plugin)
                  service_plugin_destroy(ad.plugin);
         
               ad.plugin = NULL;
        -      service_adaptor_create_plugin(g_service_adaptor, plugin_uri, &ad.plugin);
        +      service_adaptor_create_plugin(g_service_adaptor, plugin_uri, &ad.plugin);
         
        -   /* TODO It must be hide using config file or User input. Because it is security information */
        -      service_plugin_add_property(ad.plugin, SERVICE_PLUGIN_PROPERTY_APP_KEY, "enasvv4l8hdbmhn");
        +      // TODO Hide using config file or user input, because this is security information
        +      service_plugin_add_property(ad.plugin, SERVICE_PLUGIN_PROPERTY_APP_KEY, "enasvv4l8hdbmhn");
         
        -      /* TODO It must be hide using config file or User input. Because it is security information */
        -      service_plugin_add_property(ad.plugin, SERVICE_PLUGIN_PROPERTY_APP_SECRET, "uqhl4pp8mo7hmgn");
        +      // TODO Hide using config file or user input, because this is security information
        +      service_plugin_add_property(ad.plugin, SERVICE_PLUGIN_PROPERTY_APP_SECRET, "uqhl4pp8mo7hmgn");
               service_plugin_start(ad.plugin, (SERVICE_PLUGIN_SERVICE_AUTH | SERVICE_PLUGIN_SERVICE_STORAGE));
        -      service_storage_get_file_list(ad.plugin, "/", _service_storage_result_cb, NULL);
        -   } else {
        +      service_storage_get_file_list(ad.plugin, "/", _service_storage_result_cb, NULL);
        +   } 
        +   else 
        +   {
               int i = 0;
        -      while (NULL != fake_files[i].filename) {
        +      while (NULL != fake_files[i].filename) 
        +      {
                  file_data_t *m_file = (file_data_t *)calloc(1, sizeof(file_data_t));
         
        -         m_file->filename = strdup(fake_files[i].filename);
        -         m_file->type = fake_files[i].type;
        -         m_file->size = fake_files[i].size;
        -         m_file->fake = 1;
        -         m_file->list_item = elm_genlist_item_append(glist,
        -            ad.list_class,
        -            (void *)&fake_files[i],
        -            NULL,
        -            ELM_GENLIST_ITEM_NONE,
        -            _show_file_details_view,
        -            (const void *)m_file);
        -            ++i;
        +         m_file->filename = strdup(fake_files[i].filename);
        +         m_file->type = fake_files[i].type;
        +         m_file->size = fake_files[i].size;
        +         m_file->fake = 1;
        +         m_file->list_item = elm_genlist_item_append(glist, ad.list_class, (void *)&fake_files[i],
        +                                                     NULL, ELM_GENLIST_ITEM_NONE,
        +                                                     _show_file_details_view, (const void *)m_file);
        +         ++i;
               }
            }
         
            evas_object_size_hint_weight_set(glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
            evas_object_show(glist);
         
        -   ad.current_plugin_navi_item = elm_naviframe_item_push(ad.navi, "File list", NULL, NULL, glist, NULL);
        +   ad.current_plugin_navi_item = elm_naviframe_item_push(ad.navi, "File list", NULL, NULL, glist, NULL);
         
            elm_list_item_selected_set(elm_list_selected_item_get(ad.main_list), EINA_FALSE);
         }
        @@ -146,16 +165,14 @@ static void _show_plugin_view(void* data, Evas_Object* obj, void* event_info)
         
      6. -
      7. File details. -

        When selecting a file, you can get file details including filename, file path and file size by __file_iterator_cb .

        - -

        Figure: file details

        -

        file details

        +
      8. Display the file details. +

        When a file is selected on the file list, its details (filename, file path and file size) are shown on the next screen:

        -static bool __file_iterator_cb(service_storage_file_h file, void *user_data)
        +static bool 
        +__file_iterator_cb(service_storage_file_h file, void *user_data)
         {
        -   /* TODO change logic for defend memory leak. */
        +   // TODO Change logic for defend memory leak
         
            file_data_t *m_file = (file_data_t *)calloc(1, sizeof(file_data_t));
         
        @@ -163,22 +180,20 @@ static bool __file_iterator_cb(service_storage_file_h file, void *user_data)
            unsigned long long size = 0;
            bool is_dir = false;
         
        -   service_storage_file_is_dir(file, &is_dir);
        -   service_storage_file_get_size(file, &size);
        -   service_storage_file_get_logical_path(file, &name);
        +   service_storage_file_is_dir(file, &is_dir);
        +   service_storage_file_get_size(file, &size);
        +   service_storage_file_get_logical_path(file, &name);
         
        -   m_file->filename = strdup(name);
        -   m_file->type = is_dir ? "directory" : "file";
        -   m_file->size = (int)size;
        -   m_file->fake = 0;
        -   m_file->list_item = NULL;
        +   m_file->filename = strdup(name);
        +   m_file->type = is_dir ? "directory" : "file";
        +   m_file->size = (int)size;
        +   m_file->fake = 0;
        +   m_file->list_item = NULL;
         
        -   log_info("\nfilename: \"%s\"\ntype: \"%s\"\nsize: %i\nfake: %i\nlist_item: %p\n",
        -      m_file->filename ? m_file->filename : "",
        -      m_file->type,
        -      m_file->size,
        -      m_file->fake,
        -      m_file->list_item ? m_file->list_item : 0);
        +   log_info("\nfilename: \"%s\"\ntype: \"%s\"\nsize: %i\nfake: %i\nlist_item: %p\n",
        +            m_file->filename ? m_file->filename : "", m_file->type,
        +            m_file->size, m_file->fake,
        +            m_file->list_item ? m_file->list_item : 0);
         
            ecore_event_add(ad.event_file_info_received, m_file, event_file_info_received_cleanup_cb, NULL);
         
        @@ -187,95 +202,106 @@ static bool __file_iterator_cb(service_storage_file_h file, void *user_data)
         
      9. -
      10. Download a file. -

        You can download file when you select download and start.

        -

        Figure : File Download

        -

        Service Adaptor Download -  Service Adaptor Download Progress -  Service Adaptor Download Complete

        +
      11. Download a file: +
        -static void start_download(void *data)
        +static void 
        +start_download(void *data)
         {
        -   if (NULL == data) {
        -      dlog_print(DLOG_ERROR, LOG_TAG, "Null pointer: data");
        +   if (NULL == data) 
        +   {
        +      dlog_print(DLOG_ERROR, LOG_TAG, "Null pointer: data");
        +
               return;
            }
         
            file_data_t *file_data = data;
            service_storage_task_h download_task;
            int err = SERVICE_ADAPTOR_ERROR_NONE;
        -   dlog_print(DLOG_INFO, LOG_TAG, "Download file path: %s", file_data->filename);
        +   dlog_print(DLOG_INFO, LOG_TAG, "Download file path: %s", file_data->filename);
         
        -   GString *dest_file = g_string_new("/tmp/");
        -   g_string_append(dest_file, file_data->filename);
        +   GString *dest_file = g_string_new("/tmp/");
        +   g_string_append(dest_file, file_data->filename);
         
            if (SERVICE_ADAPTOR_ERROR_NONE !=
        -      (err = service_storage_create_download_task(ad.plugin, file_data->filename, dest_file->str, &download_task))) {
        -      dlog_print(DLOG_ERROR, LOG_TAG, "Download task creation failed.");
        -
        -      switch (err) {
        -      case SERVICE_ADAPTOR_ERROR_PERMISSION_DENIED:
        -         dlog_print(DLOG_ERROR, LOG_TAG, "Permission denied");
        -         break;
        -      case SERVICE_ADAPTOR_ERROR_INVALID_STATE:
        -         dlog_print(DLOG_ERROR, LOG_TAG, "The handle's state is invalid");
        -         break;
        -      case SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER:
        -         dlog_print(DLOG_ERROR, LOG_TAG, "Invalid parameter");
        -         break;
        -      case SERVICE_ADAPTOR_ERROR_NO_DATA:
        -         dlog_print(DLOG_ERROR, LOG_TAG, "There is no files");
        -         break;
        -      case SERVICE_ADAPTOR_ERROR_TIMED_OUT:
        -         dlog_print(DLOG_ERROR, LOG_TAG, "Timed out");
        -         break;
        -      case SERVICE_ADAPTOR_ERROR_IPC_UNSTABLE:
        -         dlog_print(DLOG_ERROR, LOG_TAG, "IPC failed with Service Adaptor Daemon");
        -         break;
        -      case SERVICE_ADAPTOR_ERROR_NOT_SUPPORTED:
        -         dlog_print(DLOG_ERROR, LOG_TAG, "Not supported API in this plugin");
        -         break;
        -      case SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED:
        -         dlog_print(DLOG_ERROR, LOG_TAG, "Failed in Plugin internal");
        -         break;
        -      case SERVICE_ADAPTOR_ERROR_UNKNOWN:
        -      default:
        -         dlog_print(DLOG_ERROR, LOG_TAG, "Unknown error");
        -         break;
        +       (err = service_storage_create_download_task(ad.plugin, file_data->filename, dest_file->str, &download_task))) 
        +   {
        +      dlog_print(DLOG_ERROR, LOG_TAG, "Download task creation failed.");
        +
        +      switch (err) 
        +      {
        +         case SERVICE_ADAPTOR_ERROR_PERMISSION_DENIED:
        +            dlog_print(DLOG_ERROR, LOG_TAG, "Permission denied");
        +            break;
        +         case SERVICE_ADAPTOR_ERROR_INVALID_STATE:
        +            dlog_print(DLOG_ERROR, LOG_TAG, "The handle's state is invalid");
        +            break;
        +         case SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER:
        +            dlog_print(DLOG_ERROR, LOG_TAG, "Invalid parameter");
        +            break;
        +         case SERVICE_ADAPTOR_ERROR_NO_DATA:
        +            dlog_print(DLOG_ERROR, LOG_TAG, "There is no files");
        +            break;
        +         case SERVICE_ADAPTOR_ERROR_TIMED_OUT:
        +            dlog_print(DLOG_ERROR, LOG_TAG, "Timed out");
        +            break;
        +         case SERVICE_ADAPTOR_ERROR_IPC_UNSTABLE:
        +            dlog_print(DLOG_ERROR, LOG_TAG, "IPC failed with Service Adaptor Daemon");
        +            break;
        +         case SERVICE_ADAPTOR_ERROR_NOT_SUPPORTED:
        +            dlog_print(DLOG_ERROR, LOG_TAG, "Not supported API in this plugin");
        +            break;
        +         case SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED:
        +            dlog_print(DLOG_ERROR, LOG_TAG, "Failed in Plugin internal");
        +            break;
        +         case SERVICE_ADAPTOR_ERROR_UNKNOWN:
        +         default:
        +            dlog_print(DLOG_ERROR, LOG_TAG, "Unknown error");
        +            break;
               }
         
               char *msg = NULL;
        -      service_adaptor_get_last_error_message(&msg);
        +      service_adaptor_get_last_error_message(&msg);
         
        -      if (msg) {
        -         dlog_print(DLOG_ERROR, LOG_TAG, "error msg: %s", msg);
        +      if (msg) 
        +      {
        +         dlog_print(DLOG_ERROR, LOG_TAG, "error msg: %s", msg);
                  free(msg);
               }
               g_string_free(dest_file, TRUE);
        +
               return;
            }
         
            g_string_free(dest_file, TRUE);
         
        -   if (SERVICE_ADAPTOR_ERROR_NONE != service_storage_set_task_progress_cb(download_task, download_task_progress_cb, NULL)) {
        -      dlog_print(DLOG_ERROR, LOG_TAG, "Setting callback for download task failed.");
        +   if (SERVICE_ADAPTOR_ERROR_NONE != 
        +       service_storage_set_task_progress_cb(download_task, download_task_progress_cb, NULL)) 
        +   {
        +      dlog_print(DLOG_ERROR, LOG_TAG, "Setting callback for download task failed.");
               service_storage_destroy_task(download_task);
        +
               return;
            }
         
        -   if (SERVICE_ADAPTOR_ERROR_NONE != service_storage_set_task_state_changed_cb(download_task, download_task_state_cb, NULL)) {
        -      dlog_print(DLOG_ERROR, LOG_TAG, "Setting callback for download task failed.");
        +   if (SERVICE_ADAPTOR_ERROR_NONE != 
        +       service_storage_set_task_state_changed_cb(download_task, download_task_state_cb, NULL)) 
        +   {
        +      dlog_print(DLOG_ERROR, LOG_TAG, "Setting callback for download task failed.");
               service_storage_destroy_task(download_task);
        +
               return;
            }
         
        -   if (SERVICE_ADAPTOR_ERROR_NONE != service_storage_start_task(download_task)) {
        -      dlog_print(DLOG_ERROR, LOG_TAG, "Starting download task failed.");
        +   if (SERVICE_ADAPTOR_ERROR_NONE != service_storage_start_task(download_task)) 
        +   {
        +      dlog_print(DLOG_ERROR, LOG_TAG, "Starting download task failed.");
               service_storage_destroy_task(download_task);
        +
               return;
            }
         }
        -
        +
      diff --git a/org.tizen.sampledescriptions/html/mobile_n/shortcut_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/shortcut_sd_mn.htm index 6af34dd..cfa0988 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/shortcut_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/shortcut_sd_mn.htm @@ -25,117 +25,111 @@

      Shortcut Sample Overview

      -

      The Shortcut sample application demonstrates how to create an application's shortcut in Homescreen as well as how to register to receive -shortcut requests from other applications using the Shortcut API.

      +

      The Shortcut sample application demonstrates how you can create an application shortcut on the home screen as well as register to receive shortcut requests from other applications using the Shortcut API.

      -

      There are two types of shortcuts you can create:

      +

      The following figure illustrates the application main view (on the left) and the created URI shortcut displayed on the homescreen (on the right).

      + +

      Figure: Shortcut main view and home screen

      +

      Shortcut main view Shortcut home screen

      + +

      The application opens with the main view, where you can create 2 types of shortcuts:

        -
      • LAUNCH_BY_APP - used to add the package itself as a shortcut. That means that after the shortcut is selected, the application that created it is launched/resumed;
      • -
      • LAUNCH_BY_URI - used to launch the application with the given data defined by URI passed to the function that creates the shortcut. When such a shortcut is selected, -the application that created it is launched/resumed. The difference is that additional data (URI) is passed to the launch request which can be later retrieved by the launched application -and handled accordingly.
      • +
      • LAUNCH_BY_APP application shortcut is used to add the package itself as a shortcut. +

        This means that after the shortcut is selected, the application that created it is launched or resumed.

      • +
      • LAUNCH_BY_URI URI shortcut is used to launch the application with the given data defined by a URI passed to the function that creates the shortcut. +

        When a URI shortcut is selected, the application that created it is launched or resumed. The difference compared to the application shortcut is that additional data (URI) is passed to the launch request which can be later retrieved by the launched application and handled accordingly.

      -

      For example, if you have an application that allows the user to display pictures, you can create a feature of creating a shortcut on Homescreen to a specified photo. Then, when selected, -the shortcut will allow for the specified file to be opened in your application. URI can be used for example to pass a path to a file -(e.g. file:///home/myhome/Photos/1_photo.jpg) or a website address -(e.g. http://www.tizen.org). As this is an application that demonstrates the use of Shortcut API only, instead of implementing its own URI handling, it uses App Control API to launch the default application for -viewing the data specified by it - whether it is a picture, a video, an audio file or a website.

      - - -- - - - -
      -

      Figure 1: Shortcut application view

      -

      Shortcut default screen

      -

      Figure 2: Created URI shortcut displayed in Homescreen

      -

      Shortcut displayed on Homescreen

      - +

      For example, if you have an application that allows the user to display pictures, you can create a feature of adding on the home screen a shortcut to a specified photo. When selected, the shortcut allows the specified file to be opened in your application. The URI can be used, for example, to pass a path to a file (such as file:///home/myhome/Photos/1_photo.jpg) or a Web site address (such as http://www.tizen.org). As this application demonstrates the use of the Shortcut API only, instead of implementing its own URI handling, it uses the App Control API to launch the default application for viewing the data specified by it - whether it is a picture, a video, an audio file, or a Web site.

      + +

      Prerequisites

      -

      To ensure proper application execution, the following privileges must be specified:

      +

      To ensure proper application execution, the following privileges must be set:

        -
      • http://tizen.org/privilege/shortcut - to create shortcuts;
      • -
      • http://tizen.org/privilege/appmanager.launch - to handle URI launch requests.
      • +
      • To create shortcuts: +
          +
        • http://tizen.org/privilege/shortcut
        • +
        +
      • +
      • To handle URI launch requests: +
          +
        • http://tizen.org/privilege/appmanager.launch
        • +
        +

      Implementation

      -In order to use the Shortcut API, you need to include the <shortcut_manager.h> header file in your application. +

      To use the functions and data types of the Shortcut API, include the <shortcut_manager.h> header file in your application.

      -

      Creating a shortcut

      +

      Creating a Shortcut

      -

      You can add a shortcut of your application to the Homescreen application to make it easier and quicker for the user to launch your application. -The shortcut_add_to_home() function can be used to do that. It creates a shortcut request -that is delivered to every application that has registered to receive such requests, including Homescreen. It's up to the receiving application -to create a shortcut based on the data defined in the request.

      +

      You can add a shortcut of an application to the home screen to make it easier and quicker to launch. To add a shortcut, use the shortcut_add_to_home() function. It creates a shortcut request that is delivered to every application that has registered to receive such requests, including the home screen. It is up to the receiving application to create a shortcut based on the data defined in the request.

      -int shortcut_add_to_home(const char *name, shortcut_type type, const char *uri, const char *icon, int allow_duplicate, result_cb_t result_cb, void *data);
      +int 
      +shortcut_add_to_home(const char *name, shortcut_type type, const char *uri, const char *icon, 
      +                     int allow_duplicate, result_cb_t result_cb, void *data);
       

      The shortcut_add_to_home() function takes the following parameters:

        -
      • name - the name of the shortcut;
      • -
      • type - the type of the shortcut (LAUNCH_BY_APP or - LAUNCH_BY_URI, described above);
      • -
      • uri - additional launch data, if applicable;
      • -
      • icon - the icon of the shortcut. This parameter can be set to NULL, in which case the default icon of your application will be used.
      • -
      • allow_duplicate - variable defining whether the shortcut can be duplicated (1 - allow duplicates, 0 - only one copy of this shortcut can exist at once);
      • -
      • result_cb - a callback function that will be called when the result of adding the shortcut is received;
      • -
      • data - additional user data passed to the result_cb function.
      • +
      • name: The name of the shortcut.
      • +
      • type: The type of the shortcut (LAUNCH_BY_APP or + LAUNCH_BY_URI).
      • +
      • uri: Additional launch data, if applicable.
      • +
      • icon: The icon of the shortcut. This parameter can be set to NULL, in which case the default icon of your application is used.
      • +
      • allow_duplicate: Variable defining whether the shortcut can be duplicated (1 - allow duplicates, 0 - only one copy of this shortcut can exist at a time).
      • +
      • result_cb: Callback function that is called when the result of adding the shortcut is received.
      • +
      • data: Additional user data passed to the result_cb function.
      -

      In this sample application, a shortcut is created when one of the Plus buttons are clicked. By default, -duplicated shortcuts are allowed. The application allows you to alter the name and URI of a shortcut to be created by editing the relevant -Elm_Entry widgets visible on the screen. The icon -cannot be changed and its file is located in the shared folder of the project. Remember that if you want to use an image from your application's resources as an icon, -it has to be included in the shared folder for other applications to be able to access it.

      +

      In this sample application, a shortcut is created when one of the plus buttons is clicked. By default, +duplicated shortcuts are allowed. The application allows you to alter the name and URI of a shortcut to be created by editing the relevant Elm_Entry components visible on the screen. The icon cannot be changed and its file is located in the shared folder of the project. Remember that if you want to use an image from your application resources as an icon, it has to be included in the shared folder for other applications to be able to access it.

      -

      After the shortcut request has been handled, the result_cb callback is invoked, if defined. -You can use it to track and handle possible errors of the shortcut creation procedure. An example of such a callback function is listed below.

      +

      After the shortcut request has been handled, the result_cb callback is invoked, if defined. You can use it to track and handle possible errors of the shortcut creation procedure.

      -static int __res_cb(int ret, void *data)
      +static int 
      +__res_cb(int ret, void *data)
       {
      -   if (ret < 0) {
      -      dlog_print(DLOG_INFO, LOG_TAG, "Failed to add shortcut to Homescreen");
      -   } else {
      -      dlog_print(DLOG_INFO, LOG_TAG, "Successfully added shortcut to Homescreen");
      +   if (ret < 0) 
      +   {
      +      dlog_print(DLOG_INFO, LOG_TAG, "Failed to add shortcut to Homescreen");
      +   } 
      +   else 
      +   {
      +      dlog_print(DLOG_INFO, LOG_TAG, "Successfully added shortcut to Homescreen");
          }
       
          return 0;
       }
       
      -

      Registering for new shortcut requests

      +

      Registering for New Shortcut Requests

      -

      Your application can also register to receive shortcut requests from other applications. It is done using the -shortcut_set_request_cb() function. It takes a pointer to a callback function to be invoked -when there's a new shortcut request, as well as additional user data as arguments. In this sample application, a callback function that's responsible for displaying a popup -with the shortcut request info is passed as the user data.

      +

      Your application can register to receive shortcut requests from other applications using the shortcut_set_request_cb() function. It takes as parameters a pointer to a callback function to be invoked when there is a new shortcut request, as well as additional user data. In this sample application, a callback function that is responsible for displaying a popup with the shortcut request info is passed as the user data.

      -int shortcut_controller_register_for_requests(show_reqest_popup req_popup_cb)
      +int 
      +shortcut_controller_register_for_requests(show_request_popup req_popup_cb)
       {
          return shortcut_set_request_cb(__request_cb, req_popup_cb);
       }
       
      -

      The __request_cb function is called every time there's a new shortcut request. -All the relevant shortcut's parameters are passed as arguments to this function. This is where a new shortcut should be created. The sample application -doesn't implement shortcuts creation, but displays the received shortcut info in a popup. The req_cb -function that was passed as additional user data is used to do that.

      +

      The __request_cb function is called every time there is a new shortcut request. All the relevant shortcut parameters are passed as parameters to this function. This is where a new shortcut must be created. The sample application does not implement shortcut creation, but displays the received shortcut info in a popup instead. The req_cb function that was passed as additional user data is used to do that.

      -static int __request_cb(const char *package_name, const char *name, int type, const char *content_info, const char *icon, int pid,
      -				double period, int allow_duplicate, void *data)
      +static int 
      +__request_cb(const char *package_name, const char *name, int type, const char *content_info, 
      +             const char *icon, int pid, double period, int allow_duplicate, void *data)
       {
      -   show_reqest_popup req_cb = (show_reqest_popup)data;
      +   show_request_popup req_cb = (show_request_popup)data;
       
      -   dlog_print(DLOG_INFO, LOG_TAG, "Received request: package name [%s] icon path [%s] shortcut name [%s]", package_name, icon, name);
      +   dlog_print(DLOG_INFO, LOG_TAG, 
      +              "Received request: package name [%s] icon path [%s] shortcut name [%s]", 
      +              package_name, icon, name);
       
          if (req_cb)
             req_cb(package_name, name, type, content_info, icon);
      @@ -144,26 +138,26 @@ static int __request_cb(const char *package_name, const char *name, int type, co
       }
       
      -

      Based on the request's shortcut type, the relevant shortcut request data is displayed in the popup: name of the package that made the request, -name of the shortcut, icon and URI, if applicable.

      +

      Based on the request shortcut type, the relevant shortcut request data is displayed in the popup: name of the package that made the request, name of the shortcut, icon, and URI, if applicable.

      + +

      Figure: Received shortcut request popup

      +

      Received shortcut request popup

      -

      Figure 3: Received shortcut request popup

      -

      Shortcut default screen

      +

      Handling URI Launch Requests

      -

      Handling URI launch requests

      +

      To handle launch requests:

      -

      When an application receives launch request, app_control callback function is invoked. -The function has to be first defined in an ui_app_lifecycle_callback_s structure -and passed to the ui_app_main() function which runs the main loop of the application. -Below you can see the exemplary code of the main() function which shows how the callback are attached.

      +
      1. +

        When the application receives a launch request, the app_control callback function is invoked. The function has to be first defined in a ui_app_lifecycle_callback_s structure and passed to the ui_app_main() function, which runs the main loop of the application:

        -int main(int argc, char *argv[])
        +int 
        +main(int argc, char *argv[])
         {
            int ret = 0;
         
            ui_app_lifecycle_callback_s event_callback = {0,};
        -   app_event_handler_h handlers[5] = {NULL, };
        +   app_event_handler_h handlers[5] = {NULL,};
         
            event_callback.create = __app_create;
            event_callback.terminate = __app_terminate;
        @@ -171,68 +165,76 @@ int main(int argc, char *argv[])
            event_callback.resume = __app_resume;
            event_callback.app_control = __app_control;
         
        -   ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, __ui_app_low_battery, NULL);
        -   ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, __ui_app_low_memory, NULL);
        -   ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, __ui_app_orient_changed, NULL);
        -   ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, __ui_app_lang_changed, NULL);
        -   ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, __ui_app_region_changed, NULL);
        -
        -   ret = ui_app_main(argc, argv, &event_callback, NULL);
        +   ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, 
        +                            __ui_app_low_battery, NULL);
        +   ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, 
        +                            __ui_app_low_memory, NULL);
        +   ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, 
        +                            __ui_app_orient_changed, NULL);
        +   ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, 
        +                            __ui_app_lang_changed, NULL);
        +   ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, 
        +                            __ui_app_region_changed, NULL);
        +
        +   ret = ui_app_main(argc, argv, &event_callback, NULL);
            if (ret != APP_ERROR_NONE)
        -      dlog_print(DLOG_ERROR, LOG_TAG, "ui_app_main() is failed. err = %d", ret);
        +      dlog_print(DLOG_ERROR, LOG_TAG, "ui_app_main() is failed. err = %d", ret);
         
            return ret;
         }
        -
        - -

        When a shortcut in Homescreen is selected, a launch request is made by Homescreen. In addition, if the selected shortcut is of URI type, the URI -is passed to the application using app_control. To retreive it, you have to -invoke app_control_get_uri() function. The listing below shows how to do that. -First, the URI is retreived and then, if it's not NULL, it is passed to the __launch_default_view_app() -function.

        +
      2. +
      3. +

        When a shortcut on the home screen is selected, a launch request is made by the home screen. In addition, if the selected shortcut is of the URI type, the URI is passed to the application using app_control. To retrieve it, you must invoke the app_control_get_uri() function. The URI is retrieved and if it is not NULL, it is passed to the __launch_default_view_app() function.

        -static void __app_control(app_control_h app_control, void *data)
        +static void 
        +__app_control(app_control_h app_control, void *data)
         {
            char *uri = NULL;
         
        -   app_control_get_uri(app_control, &uri);
        +   app_control_get_uri(app_control, &uri);
         
        -   if (uri) {
        +   if (uri) 
        +   {
               __launch_default_view_app(uri);
            }
         }
        -
        +
      4. -

        As said before, the sample application doesn't implement its own files or websites displaying. Instead, it uses App Control API to launch the default -application for every URI type. The code below is used to do that. To learn more about App Control API usage, please refer to the Application Control sample application.

        +
      5. +

        The sample application does not implement the display of its own files or Web sites. Instead, it uses the App Control API to launch the default application for every URI type using the following code. To learn more about App Control API usage, see the Application Control sample application.

        -static void __launch_default_view_app(char *uri)
        +static void 
        +__launch_default_view_app(char *uri)
         {
            app_control_h service;
         
        -   if(app_control_create(&service) != APP_CONTROL_ERROR_NONE) {
        -      dlog_print(DLOG_INFO, LOG_TAG, "Failed to create app control handle");
        +   if (app_control_create(&service) != APP_CONTROL_ERROR_NONE) 
        +   {
        +      dlog_print(DLOG_INFO, LOG_TAG, "Failed to create app control handle");
        +
               return;
            }
         
        -   if(app_control_set_operation(service, APP_CONTROL_OPERATION_VIEW) != APP_CONTROL_ERROR_NONE ||
        -         app_control_set_operation(service, APP_CONTROL_OPERATION_VIEW) != APP_CONTROL_ERROR_NONE ||
        -         app_control_set_uri(service, uri) != APP_CONTROL_ERROR_NONE ||
        -         app_control_send_launch_request(service, NULL, NULL) != APP_CONTROL_ERROR_NONE) {
        -      dlog_print(DLOG_INFO, LOG_TAG, "Failed to set app control to launch default application for %s", uri);
        +   if (app_control_set_operation(service, APP_CONTROL_OPERATION_VIEW) != APP_CONTROL_ERROR_NONE ||
        +       app_control_set_operation(service, APP_CONTROL_OPERATION_VIEW) != APP_CONTROL_ERROR_NONE ||
        +       app_control_set_uri(service, uri) != APP_CONTROL_ERROR_NONE ||
        +       app_control_send_launch_request(service, NULL, NULL) != APP_CONTROL_ERROR_NONE) 
        +   {
        +      dlog_print(DLOG_INFO, LOG_TAG, "Failed to set app control to launch default application for %s", uri);
            }
         
        -   if(app_control_destroy(service) != APP_CONTROL_ERROR_NONE)
        -      dlog_print(DLOG_INFO, LOG_TAG, "Failed to destroy app control handle");
        +   if (app_control_destroy(service) != APP_CONTROL_ERROR_NONE)
        +      dlog_print(DLOG_INFO, LOG_TAG, "Failed to destroy app control handle");
         }
        -
        +
      6. +
      -

      Below you can see the result of selecting a URI shortcut created by the application. You can see that the default application for displaying web pages is launched.

      +

      The following figure shows the result of selecting a URI shortcut created by the application. The default application for displaying Web pages is launched.

      -

      Figure 4: Launched URI shortcut

      -

      Shortcut default screen

      +

      Figure: Launched URI shortcut

      +

      Launched URI shortcut

      diff --git a/org.tizen.sampledescriptions/html/mobile_n/simple_home_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/simple_home_sd_mn.htm index 3b9d935..39b2047 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/simple_home_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/simple_home_sd_mn.htm @@ -226,8 +226,10 @@ Evas_Object *_grid_content_get(void *data, Evas_Object *obj, const char *part)          return bg;       } +       return image;    } +    return NULL; } diff --git a/org.tizen.sampledescriptions/html/mobile_n/sketch_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/sketch_sd_mn.htm index 7c07fb9..c843c78 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/sketch_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/sketch_sd_mn.htm @@ -561,7 +561,7 @@ _eraser_button_cb(void *data, Evas_Object *obj, void *event_info)    ad->b = 255;    ad->a = 255; -   evas_object_image_file_set(eraser, IMG_DIR"eraser2.png",NULL); +   evas_object_image_file_set(eraser, IMG_DIR"eraser2.png", NULL);    elm_object_part_content_set(ad->layout, "eraser", eraser);    evas_object_show(eraser); @@ -690,7 +690,7 @@ save_select_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)    {       _D("folder 'sketch' is already exists");    } -   evas_object_image_save(ad->img,"/opt/usr/media/Images/sketch/save.jpg",NULL,"quality=100 compress=0"); +   evas_object_image_save(ad->img, "/opt/usr/media/Images/sketch/save.jpg", NULL, "quality=100 compress=0");    return; diff --git a/org.tizen.sampledescriptions/html/mobile_n/syncadapterapp_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/syncadapterapp_sd_mn.htm index 858d80b..9ee968f 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/syncadapterapp_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/syncadapterapp_sd_mn.htm @@ -10,6 +10,7 @@ + Sync Adapter App Sample Overview @@ -23,29 +24,33 @@

      Mobile native

      - -

      Sync Adapter App Sample Overview

      -

      The application opens with the Sync Adapter App screen, which displays a list of Sync Adapter App features.

      +

      The Sync Adapter App sample demonstrates how you can add different sync requests to the sync manager to schedule data synchronization tasks.

      The following figure illustrates the home screen of the application.

      Figure: Sync Adapter App home screen view

      -

      sync adapter home screen view +

      Sync Adapter App home screen view

      +

      The application opens with the main screen, which displays a list of Sync Adapter App features:

        -
      • To create an account, click Create an account
      • -
      • To set as accountless mode, click Set as accountless
      • -
      • To request all sync jobs with corresponding settings, click Start sync with settings
      • -
      • To get and remove all registered sync jobs, click Manage sync jobs
      • +
      • To create an account, click Create an account.
      • +
      • To set the sync in the accountless mode, click Set as accountless.
      • +
      • To request all sync jobs with corresponding settings, click Start sync with settings.
      • +
      • To get and remove all registered sync jobs, click Manage sync jobs.
      -

      The application uses the libaccounts-svc module to work with the accounts database and the elementary module to support the UI requirements.

      - +

      The application uses the libaccounts-svc module to work with the accounts database and the elementary module to support the UI requirements.

      Prerequisites

      -
        -
      1. Sync Adapter App's app id must be "org.tizen.syncadapterapp.ui". Because Sync Adapter Service App use this ID as fixed value, when the app communicates with Sync Adapter App. Otherwise, app control communication will not be operated properly.
        Also, Sync Adapter App's package name must be "org.tizen.syncadapterapp" as same with Sync Adapter Service App's.
      2. -
      3. Sync Adapter App and Sync Adapter Service App packages should be built as coupled each other. For building them like that, please follow below steps. On your Tizen IDE, click right button on Sync Adapter App and select Properties. Once you select Project References, you can find Sync Adapter Service App. Select the check box for the service application, and click OK. In the Project Explorer view, a message (with the Sync Adapter App) appears next to the Sync Adapter Service App project name that you have added to the package.
      4. -
      5. To ensure proper application execution, the following privileges must be set: +
          +
        • Sync Adapter App's app ID must be org.tizen.syncadapterapp.ui, because the Sync Adapter Service App uses this ID as a fixed value when it communicates with the Sync Adapter App UI application. Otherwise, the application control communication does not operate properly. +

          In addition, the Sync Adapter App package name must be org.tizen.syncadapterapp (same as the Sync Adapter Service App).

        • +
        • The Sync Adapter App and Sync Adapter Service App packages must be coupled during the build process. To couple the packages: +
          1. On the Tizen IDE, right-click the Sync Adapter App project and select Properties.
          2. +
          3. Select Project References and find Sync Adapter Service App.
          4. +
          5. Select the Sync Adapter Service App check box and click OK.
          +

          In the Project Explorer view, a with the Sync Adapter App message appears next to the Sync Adapter Service App project name showing that you have coupled it successfully.

        • +
        • +

          To ensure proper application execution, the following privileges must be set:

          • http://tizen.org/privilege/account.read
          • http://tizen.org/privilege/account.write
          • @@ -55,531 +60,591 @@
          • http://tizen.org/privilege/contact.read
        • -
        • Launch the Sync Adapter Service App which acts as a sync adapter to this UI application. The service application must be built and included along with Sync Adapter App into the package. SYNC_ADAPTER_SERVICE_APP_ID must be assigned as the app id of service application which acts as sync adapter. -
          Please refer Sync Adapter Service App for reference. +
        + +

        Implementation

        + +

        Application Initialization

        + +

        To initialize the application:

        + +
          +
        1. Launch the Sync Adapter Service App, which acts as a sync adapter to this UI application. The service application must be built and included along with the Sync Adapter App UI application in the package. +

          The SYNC_ADAPTER_SERVICE_APP_ID must be defined as the App ID of the service application which acts as a sync adapter. For more information, see Sync Adapter Service App Sample Overview.

          -#define SYNC_ADAPTER_SERVICE_APP_ID "org.tizen.syncadapterapp.service"
          +#define SYNC_ADAPTER_SERVICE_APP_ID "org.tizen.syncadapterapp.service"
           
           static void
           create_sync_main_menu(appdata_s *ad)
           {
          -	app_control_h app_control;
          -	int ret = app_control_create(&app_control);
          -	if (ret != APP_CONTROL_ERROR_NONE) {
          -		dlog_print(DLOG_INFO, LOG_TAG, "Creating app_control handle is failed [%s]", get_error_message(ret));
          -		return;
          -	}
          -
          -	ret = app_control_set_app_id(app_control, SYNC_ADAPTER_SERVICE_APP_ID);
          -	if (ret != APP_CONTROL_ERROR_NONE) {
          -		dlog_print(DLOG_INFO, LOG_TAG, "Setting app id is failed [%s]", get_error_message(ret));
          -		return;
          -	}
          -
          -	ret = app_control_send_launch_request(app_control, NULL, NULL);
          -	if (ret == APP_CONTROL_ERROR_NONE)
          -		dlog_print(DLOG_INFO, LOG_TAG, "Launching sync service app successfully [%s]", SYNC_ADAPTER_SERVICE_APP_ID);
          -	else {
          -		dlog_print(DLOG_INFO, LOG_TAG, "Launching sync service app is failed [%s]", get_error_message(ret));
          -		return;
          -	}
          -	...
          -	...
          -}
          +   app_control_h app_control; +   int ret = app_control_create(&app_control); +   if (ret != APP_CONTROL_ERROR_NONE) +   { +      dlog_print(DLOG_INFO, LOG_TAG, "Creating app_control handle is failed [%s]", get_error_message(ret)); + +      return; +   } + +   ret = app_control_set_app_id(app_control, SYNC_ADAPTER_SERVICE_APP_ID); +   if (ret != APP_CONTROL_ERROR_NONE) +   { +      dlog_print(DLOG_INFO, LOG_TAG, "Setting app id is failed [%s]", get_error_message(ret)); + +      return; +   } + +   ret = app_control_send_launch_request(app_control, NULL, NULL); +   if (ret == APP_CONTROL_ERROR_NONE) +      dlog_print(DLOG_INFO, LOG_TAG, "Launching sync service app successfully [%s]", SYNC_ADAPTER_SERVICE_APP_ID); +   else +   { +      dlog_print(DLOG_INFO, LOG_TAG, "Launching sync service app is failed [%s]", get_error_message(ret)); + +      return; +   } +} +
        2. -
        3. If you click Start Sync button from Start sync with settings without selecting account mode, sync request API can not be delivered and you can see the pop-up message, "Select account mode first" like the first below image. So, first of all, create an account or set as accountless from main screen. The second and third below images show the case of selecting Create an account and Set as accountless. Then, you can add sync jobs with account mode you selected unlike the first below image. -

          Figure: Select account mode

          -

          Choice Account Create Account Set Accountless

          -

          If you clicked Create an account, you can create a dummy account for passing it to sync manager API. Enable sync support on the account.

          + +
        4. If you click Start Sync on the Start sync with settings screen without selecting an account mode, the Sync Request API cannot deliver the request, and a popup text is shown at the bottom of the screen (on the left in the following figure).

          You must first create an account or set up as accountless on the main screen. Afterwards, you can add sync jobs with the account mode you selected.

          + +

          Select account Create account Set as accountless

          + +
          • +

            Click Create an account to create a dummy account and pass it to the Sync Manager API (the result is shown in the middle in the above figure). Enable sync support on the account.

             static void
             create_account()
             {
            -	account_id = 10;
            +   account_id = 10;
             
            -	int ret = account_create(&account);
            -	dlog_print(DLOG_INFO, LOG_TAG, "account_create = %d", ret);
            +   int ret = account_create(&account);
            +   dlog_print(DLOG_INFO, LOG_TAG, "account_create = %d", ret);
             
            -	ret = account_set_user_name(account, "dummy_user");
            -	dlog_print(DLOG_INFO, LOG_TAG, "account_set_user_name = %d", ret);
            +   ret = account_set_user_name(account, "dummy_user");
            +   dlog_print(DLOG_INFO, LOG_TAG, "account_set_user_name = %d", ret);
             
            -	ret = account_set_email_address(account, "dummy_user@syncadapterapp.com");
            -	dlog_print(DLOG_INFO, LOG_TAG, "account_set_email_address = %d", ret);
            +   ret = account_set_email_address(account, "dummy_user@syncadapterapp.com");
            +   dlog_print(DLOG_INFO, LOG_TAG, "account_set_email_address = %d", ret);
             
            -	ret = account_set_capability(account, ACCOUNT_SUPPORTS_CAPABILITY_CALENDAR, ACCOUNT_CAPABILITY_ENABLED);
            -	dlog_print(DLOG_INFO, LOG_TAG, "account_set_capability = %d", ret);
            +   ret = account_set_capability(account, ACCOUNT_SUPPORTS_CAPABILITY_CALENDAR, ACCOUNT_CAPABILITY_ENABLED);
            +   dlog_print(DLOG_INFO, LOG_TAG, "account_set_capability = %d", ret);
             
            -	ret = account_set_capability(account, ACCOUNT_SUPPORTS_CAPABILITY_CONTACT, ACCOUNT_CAPABILITY_ENABLED);
            -	dlog_print(DLOG_INFO, LOG_TAG, "account_set_capability = %d", ret);
            +   ret = account_set_capability(account, ACCOUNT_SUPPORTS_CAPABILITY_CONTACT, ACCOUNT_CAPABILITY_ENABLED);
            +   dlog_print(DLOG_INFO, LOG_TAG, "account_set_capability = %d", ret);
             
            -	ret = account_set_sync_support(account, ACCOUNT_SYNC_STATUS_IDLE);
            -	dlog_print(DLOG_INFO, LOG_TAG, "account_set_sync_support = %d", ret);
            +   ret = account_set_sync_support(account, ACCOUNT_SYNC_STATUS_IDLE);
            +   dlog_print(DLOG_INFO, LOG_TAG, "account_set_sync_support = %d", ret);
             
            -	ret = account_insert_to_db(account, &account_id);
            -	dlog_print(DLOG_INFO, LOG_TAG, "Account id is = %d", account_id);
            +   ret = account_insert_to_db(account, &account_id);
            +   dlog_print(DLOG_INFO, LOG_TAG, "Account id is = %d", account_id);
             
            -	is_accountless = false;
            +   is_accountless = false;
             }
          • -
          • If you clicked Set as accountless, you can set account mode as accountless to use sync manager API without an account. + +
          • Click Set as accountless to set up the sync manager without an account (the result is shown on the right in the above figure):
             static void
             set_accountless()
             {
            -	int ret = ACCOUNT_ERROR_NONE;
            -
            -	ret = account_delete_from_db_by_package_name(PKG_NAME);
            -	if (ret == ACCOUNT_ERROR_NONE) {
            -		dlog_print(DLOG_INFO, LOG_TAG, "account delete success");
            -		if (account) {
            -			ret = account_destroy(account);
            -			if (ret == ACCOUNT_ERROR_NONE)
            -			dlog_print(DLOG_INFO, LOG_TAG, "account handle is removed successfully");
            -		}
            -	}
            -
            -	account_id = -1;
            -	is_accountless = true;
            -
            -	dlog_print(DLOG_INFO, LOG_TAG, "Dummy account is set again as = %d", account_id);
            +   int ret = ACCOUNT_ERROR_NONE;
            +
            +   ret = account_delete_from_db_by_package_name(PKG_NAME);
            +   if (ret == ACCOUNT_ERROR_NONE) 
            +   {
            +      dlog_print(DLOG_INFO, LOG_TAG, "account delete success");
            +      if (account) 
            +      {
            +         ret = account_destroy(account);
            +         if (ret == ACCOUNT_ERROR_NONE)
            +            dlog_print(DLOG_INFO, LOG_TAG, "account handle is removed successfully");
            +      }
            +   }
            +
            +   account_id = -1;
            +   is_accountless = true;
            +
            +   dlog_print(DLOG_INFO, LOG_TAG, "Dummy account is set again as = %d", account_id);
             }
            -
          • -
        - + +
    + -

    On Demand Sync

    +

    On Demand Sync

    +

    To request an on demand sync:

    Figure: On Demand Sync

    -

    On Demand On Demand Sync

    - -

    Request On Demand Sync

    +

    On Demand Sync On Demand Sync

    +
      -
    1. To perform On Demand Sync, select On Demand Sync from Start sync with settings. Click on Start Sync button which will trigger corresponding sync manager API as shown below. +
    2. To perform an on demand sync, select On Demand Sync as the Sync types on the Start sync with settings screen. Click Start Sync to trigger the corresponding sync manager functions:
       static void
       cb_add_on_demand_sync(void* pData, Evas_Object* pObj, void* pEvent_info)
       {
      -	viewdata_s* viewData = pData;
      -
      -	int ret = SYNC_ERROR_NONE;
      -	if (is_accountless) {
      -		dlog_print(DLOG_INFO, LOG_TAG, "Sync Adapter App: request accountless On Demand Sync");
      -		ret = sync_manager_on_demand_sync_job(NULL, "OnDemand", sync_option, NULL, &on_demand_sync_job_id);
      -	} else {
      -		dlog_print(DLOG_INFO, LOG_TAG, "Sync Adapter App: request On Demand Sync with an account");
      -		account_query_account_by_user_name(query_account_cb, "dummy_user", NULL);
      -
      -		account_h account;
      -		account_create(&account);
      -		account_query_account_by_account_id(account_id, &account);
      -
      -		viewData->account_id = account_id;
      -
      -		ret = sync_manager_on_demand_sync_job(account, "OnDemand", sync_option, NULL, &on_demand_sync_job_id);
      -
      -		account_destroy(account);
      -	}
      -
      -	if (ret != SYNC_ERROR_NONE)
      -		dlog_print(DLOG_INFO, LOG_TAG, "Sync manager failed with error code %d", ret);
      -	else
      -		dlog_print(DLOG_INFO, LOG_TAG, "sync manager added on demand sync id %d", on_demand_sync_job_id);
      +   viewdata_s* viewData = pData;
      +
      +   int ret = SYNC_ERROR_NONE;
      +   if (is_accountless) 
      +   {
      +      dlog_print(DLOG_INFO, LOG_TAG, "Sync Adapter App: request accountless On Demand Sync");
      +      ret = sync_manager_on_demand_sync_job(NULL, "OnDemand", sync_option, NULL, &on_demand_sync_job_id);
      +   } 
      +   else 
      +   {
      +      dlog_print(DLOG_INFO, LOG_TAG, "Sync Adapter App: request On Demand Sync with an account");
      +      account_query_account_by_user_name(query_account_cb, "dummy_user", NULL);
      +
      +      account_h account;
      +      account_create(&account);
      +      account_query_account_by_account_id(account_id, &account);
      +
      +      viewData->account_id = account_id;
      +
      +      ret = sync_manager_on_demand_sync_job(account, "OnDemand", sync_option, NULL, &on_demand_sync_job_id);
      +
      +      account_destroy(account);
      +   }
      +
      +   if (ret != SYNC_ERROR_NONE)
      +      dlog_print(DLOG_INFO, LOG_TAG, "Sync manager failed with error code %d", ret);
      +   else
      +      dlog_print(DLOG_INFO, LOG_TAG, "sync manager added on demand sync id %d", on_demand_sync_job_id);
       }
    3. +
    4. When the sync manager schedules a sync job for this request, the sync callbacks in the Sync Adapter Service App are invoked. +

      When the sync job is completed, the service application communicates the same information to the Sync Adapter App UI application using an application control. The UI application shows a popup to notify the user about the status.

      -
    5. Once, the sync manager schedules a sync job for this request, sync callback functions in Sync Adapter Service App will be invoked. Upon completion of the sync job, the service application will communicate the same to Sync Adapter App by using app control with its operation. Also, the Sync Adapter App will show a popup to notify the user about the status.
       static void
       app_control(app_control_h app_control, void *data)
       {
      -	char *operation;
      -	int ret = app_control_get_operation(app_control, &operation);
      -	if (ret != APP_CONTROL_ERROR_NONE) {
      -		dlog_print(DLOG_INFO, LOG_TAG, "failed to get operation");
      -		return;
      -	} else
      -		dlog_print(DLOG_INFO, LOG_TAG, "get operation: [%s]", operation);
      -
      -	dlog_print(DLOG_INFO, LOG_TAG, "Sync Job completed by sync-service");
      -
      -	if (strcmp(operation, "http://tizen.org/appcontrol/operation/default")) {
      -		Evas_Object *popup;
      -		Evas_Object *win = NF;
      -
      -		popup = elm_popup_add(win);
      -		elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
      -		eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, eext_popup_back_cb, NULL);
      -		evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
      -
      -		if (operation && !strcmp(operation, "http://tizen.org/appcontrol/operation/on_demand_sync_complete")) {
      -			dlog_print(DLOG_INFO, LOG_TAG, "On Demand Sync is completed");
      -			elm_object_text_set(popup, "On Demand Sync is completed");
      -		}
      -		...
      -		...
      -
      -		elm_popup_timeout_set(popup, TIME_FOR_POPUP);
      -		evas_object_show(popup);
      -	}
      -
      -	return;
      -}
      +   char *operation; +   int ret = app_control_get_operation(app_control, &operation); +   if (ret != APP_CONTROL_ERROR_NONE) +   { +      dlog_print(DLOG_INFO, LOG_TAG, "failed to get operation"); + +      return; +   } +   else +      dlog_print(DLOG_INFO, LOG_TAG, "get operation: [%s]", operation); + +   dlog_print(DLOG_INFO, LOG_TAG, "Sync Job completed by sync-service"); + +   if (strcmp(operation, "http://tizen.org/appcontrol/operation/default")) +   { +      Evas_Object *popup; +      Evas_Object *win = NF; + +      popup = elm_popup_add(win); +      elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0); +      eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, eext_popup_back_cb, NULL); +      evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + +      if (operation && !strcmp(operation, "http://tizen.org/appcontrol/operation/on_demand_sync_complete")) +      { +         dlog_print(DLOG_INFO, LOG_TAG, "On Demand Sync is completed"); +         elm_object_text_set(popup, "On Demand Sync is completed"); +      } +      elm_popup_timeout_set(popup, TIME_FOR_POPUP); +      evas_object_show(popup); +   } + +   return; +} +
    +

    Periodic Sync

    - -

    Periodic Sync

    +

    To request a periodic sync:

    Figure: Periodic Sync

    -

    Periodic Periodic Sync

    +

    Periodic Sync Periodic Sync

    -

    Request Periodic Sync

      -
    1. To perform Periodic Sync, select Periodic Sync from Start sync with settings. Click on Start Sync button which will trigger corresponding sync manager API as shown below. +
    2. To perform a periodic sync, select Periodic Sync as the Sync types on the Start sync with settings screen. Click Start Sync to trigger the corresponding sync manager functions: +
       static void
       cb_add_periodic_sync(void* pData, Evas_Object* pObj, void* pEvent_info)
       {
      -	viewdata_s* viewData = pData;
      -	int ret = SYNC_ERROR_NONE;
      -
      -	if (is_accountless) {
      -		dlog_print(DLOG_INFO, LOG_TAG, "Sync Adapter App: request accountless Periodic Sync");
      -		ret = sync_manager_add_periodic_sync_job(NULL, "Periodic", sync_interval, sync_option, NULL, &periodic_sync_job_id);
      -	} else {
      -		dlog_print(DLOG_INFO, LOG_TAG, "Sync Adapter App: request Periodic Sync with an account");
      -		account_query_account_by_user_name(query_account_cb, "dummy_user", NULL);
      -
      -		account_h account;
      -		account_create(&account);
      -		account_query_account_by_account_id(account_id, &account);
      -
      -		viewData->account_id = account_id;
      -
      -		ret = sync_manager_add_periodic_sync_job(account, "Periodic", sync_interval, sync_option, NULL, &periodic_sync_job_id);
      -
      -		account_destroy(account);
      -	}
      -
      -	if ((sync_option == SYNC_OPTION_NONE) | (sync_option == SYNC_OPTION_NO_RETRY)) {
      -		Evas_Object *popup;
      -		Evas_Object *win = NF;
      -
      -		popup = elm_popup_add(win);
      -		elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
      -		eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, eext_popup_back_cb, NULL);
      -		evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
      -
      -		if (sync_interval == SYNC_PERIOD_INTERVAL_30MIN)
      -			elm_object_text_set(popup, "It is expected in 30mins");
      -		...
      -		...
      -
      -		elm_popup_timeout_set(popup, TIME_FOR_POPUP);
      -		evas_object_show(popup);
      -	}
      -
      -	if (ret != SYNC_ERROR_NONE)
      -		dlog_print(DLOG_INFO, LOG_TAG, "Sync manager failed with error code %d", ret);
      -	else
      -		dlog_print(DLOG_INFO, LOG_TAG, "sync manager added periodic sync id %d", periodic_sync_job_id);
      -}
      +   viewdata_s* viewData = pData; + +   int ret = SYNC_ERROR_NONE; + +   if (is_accountless) +   { +      dlog_print(DLOG_INFO, LOG_TAG, "Sync Adapter App: request accountless Periodic Sync"); +      ret = sync_manager_add_periodic_sync_job(NULL, "Periodic", sync_interval, sync_option, NULL, &periodic_sync_job_id); +   } +   else +   { +      dlog_print(DLOG_INFO, LOG_TAG, "Sync Adapter App: request Periodic Sync with an account"); +      account_query_account_by_user_name(query_account_cb, "dummy_user", NULL); + +      account_h account; +      account_create(&account); +      account_query_account_by_account_id(account_id, &account); + +      viewData->account_id = account_id; + +      ret = sync_manager_add_periodic_sync_job(account, "Periodic", sync_interval, sync_option, NULL, &periodic_sync_job_id); + +      account_destroy(account); +   } + +   if ((sync_option == SYNC_OPTION_NONE) | (sync_option == SYNC_OPTION_NO_RETRY)) +   { +      Evas_Object *popup; +      Evas_Object *win = NF; + +      popup = elm_popup_add(win); +      elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0); +      eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, eext_popup_back_cb, NULL); +      evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + +      if (sync_interval == SYNC_PERIOD_INTERVAL_30MIN) +         elm_object_text_set(popup, "It is expected in 30mins"); + +      elm_popup_timeout_set(popup, TIME_FOR_POPUP); +      evas_object_show(popup); +   } +   if (ret != SYNC_ERROR_NONE) +      dlog_print(DLOG_INFO, LOG_TAG, "Sync manager failed with error code %d", ret); +   else +      dlog_print(DLOG_INFO, LOG_TAG, "sync manager added periodic sync id %d", periodic_sync_job_id); +} +
    3. -
    4. Once, the sync manager schedules a sync job for this request, sync callback functions in Sync Adapter Service App will be invoked periodically. Upon completion of the sync job, the service application will communicate the same to Sync Adapter App by using app control with its operation. Also, the Sync Adapter App will show a popup to notify the user about the status. +
    5. When the sync manager schedules a sync job for this request, the sync callback functions in the Sync Adapter Service App are invoked periodically. When the job is completed, the service application communicates the same information to the Sync Adapter App UI application by using an application control. The UI application shows a popup to notify the user about the status.
       static void
       app_control(app_control_h app_control, void *data)
       {
      -	char *operation;
      -	int ret = app_control_get_operation(app_control, &operation);
      -	if (ret != APP_CONTROL_ERROR_NONE) {
      -		dlog_print(DLOG_INFO, LOG_TAG, "failed to get operation");
      -		return;
      -	} else
      -		dlog_print(DLOG_INFO, LOG_TAG, "get operation: [%s]", operation);
      -
      -	dlog_print(DLOG_INFO, LOG_TAG, "Sync Job completed by sync-service");
      -
      -	if (strcmp(operation, "http://tizen.org/appcontrol/operation/default")) {
      -		Evas_Object *popup;
      -		Evas_Object *win = NF;
      -
      -		popup = elm_popup_add(win);
      -		elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
      -		eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, eext_popup_back_cb, NULL);
      -		evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
      -
      -		...
      -		else if (operation && !strcmp(operation, "http://tizen.org/appcontrol/operation/periodic_sync_complete")) {
      -			dlog_print(DLOG_INFO, LOG_TAG, "Periodic Sync is completed");
      -			elm_object_text_set(popup, "Periodic Sync is completed");
      -		}
      -		...
      -
      -		elm_popup_timeout_set(popup, TIME_FOR_POPUP);
      -		evas_object_show(popup);
      -	}
      -
      -	return;
      -}
      +   char *operation; +   int ret = app_control_get_operation(app_control, &operation); +   if (ret != APP_CONTROL_ERROR_NONE) +   { +      dlog_print(DLOG_INFO, LOG_TAG, "failed to get operation"); + +      return; +   } +   else +      dlog_print(DLOG_INFO, LOG_TAG, "get operation: [%s]", operation); + +   dlog_print(DLOG_INFO, LOG_TAG, "Sync Job completed by sync-service"); + +   if (strcmp(operation, "http://tizen.org/appcontrol/operation/default")) +   { +      Evas_Object *popup; +      Evas_Object *win = NF; + +      popup = elm_popup_add(win); +      elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0); +      eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, eext_popup_back_cb, NULL); +      evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); +      if (operation && !strcmp(operation, "http://tizen.org/appcontrol/operation/periodic_sync_complete")) +      { +         dlog_print(DLOG_INFO, LOG_TAG, "Periodic Sync is completed"); +         elm_object_text_set(popup, "Periodic Sync is completed"); +      } +      elm_popup_timeout_set(popup, TIME_FOR_POPUP); +      evas_object_show(popup); +   } + +   return; +} +
    +

    Data Change Sync

    - -

    Data Change Sync

    +

    To request a data change sync:

    Figure: Data Change Sync

    -

    Data Change Data Change Sync Data Change Event

    +

    Data Change Sync Data Change Sync Data Change Sync

    -

    Request Data Change Sync

      -
    1. To perform Data Change Sync, select Data Change Sync from Start sync with settings. Click on Start Sync button which will trigger corresponding sync manager API as shown below. +
    2. To perform a data change sync, select Data Change Sync as the Sync types on the Start sync with settings screen. Click Start Sync to trigger the corresponding sync manager functions:
       static void
       cb_add_data_change_sync(void* pData, Evas_Object* pObj, void* pEvent_info)
       {
      -	viewdata_s* viewData = pData;
      -	int ret = SYNC_ERROR_NONE;
      -	int idx = 0;
      -
      -	if (is_accountless) {
      -		dlog_print(DLOG_INFO, LOG_TAG, "Sync Adapter App: request accountless Data Change Sync");
      -
      -		for (idx = 0; idx < NUM_OF_CAPABILITY; idx++) {
      -			if (data_change_id[idx] == -1) {
      -				ret = sync_manager_add_data_change_sync_job(NULL, sync_capability, sync_option, NULL, &data_change_sync_job_id);
      -				data_change_id[idx] = data_change_sync_job_id;
      -				dlog_print(DLOG_INFO, LOG_TAG, "[accountless] restored data_change_id[%d] = %d", idx, data_change_id[idx]);
      -				break;
      -			} else {
      -				if (idx == NUM_OF_CAPABILITY-1) {
      -					dlog_print(DLOG_INFO, LOG_TAG, "data_change_id[idx] is full");
      -					break;
      -				}
      -				continue;
      -			}
      -		}
      -	} else {
      -		dlog_print(DLOG_INFO, LOG_TAG, "Sync Adapter App: request Data Change Sync with an account");
      -		account_query_account_by_user_name(query_account_cb, "dummy_user", NULL);
      -
      -		account_h account;
      -		account_create(&account);
      -		account_query_account_by_account_id(account_id, &account);
      -
      -		viewData->account_id = account_id;
      -
      -		for (idx = 0; idx < NUM_OF_CAPABILITY; idx++) {
      -			if (data_change_id[idx] == -1) {
      -				ret = sync_manager_add_data_change_sync_job(account, sync_capability, sync_option, NULL, &data_change_sync_job_id);
      -				data_change_id[idx] = data_change_sync_job_id;
      -				dlog_print(DLOG_INFO, LOG_TAG, "[account] restored data_change_id[%d] = %d", idx, data_change_id[idx]);
      -				break;
      -			} else {
      -				if (idx == NUM_OF_CAPABILITY-1) {
      -					dlog_print(DLOG_INFO, LOG_TAG, "data_change_id[idx] is full");
      -					break;
      -				}
      -				continue;
      -			}
      -		}
      -		account_destroy(account);
      -	}
      -
      -	if (ret != SYNC_ERROR_NONE)
      -		dlog_print(DLOG_INFO, LOG_TAG, "Sync manager failed with error code %d", ret);
      -	else {
      -		if (data_change_sync_job_id != -1)
      -			dlog_print(DLOG_INFO, LOG_TAG, "sync manager added data change sync id %d", data_change_sync_job_id);
      -	}
      -}
      +   viewdata_s* viewData = pData; + +   int ret = SYNC_ERROR_NONE; +   int idx = 0; + +   if (is_accountless) +   { +      dlog_print(DLOG_INFO, LOG_TAG, "Sync Adapter App: request accountless Data Change Sync"); + +      for (idx = 0; idx < NUM_OF_CAPABILITY; idx++) +      { +         if (data_change_id[idx] == -1) +         { +            ret = sync_manager_add_data_change_sync_job(NULL, sync_capability, sync_option, NULL, &data_change_sync_job_id); +            data_change_id[idx] = data_change_sync_job_id; +            dlog_print(DLOG_INFO, LOG_TAG, "[accountless] restored data_change_id[%d] = %d", idx, data_change_id[idx]); +            break; +         } +         else +         { +            if (idx == NUM_OF_CAPABILITY-1) +            { +               dlog_print(DLOG_INFO, LOG_TAG, "data_change_id[idx] is full"); +               break; +            } +            continue; +         } +      } +   } +   else +   { +      dlog_print(DLOG_INFO, LOG_TAG, "Sync Adapter App: request Data Change Sync with an account"); +      account_query_account_by_user_name(query_account_cb, "dummy_user", NULL); + +      account_h account; +      account_create(&account); +      account_query_account_by_account_id(account_id, &account); + +      viewData->account_id = account_id; + +      for (idx = 0; idx < NUM_OF_CAPABILITY; idx++) +      { +         if (data_change_id[idx] == -1) +         { +            ret = sync_manager_add_data_change_sync_job(account, sync_capability, sync_option, NULL, &data_change_sync_job_id); +            data_change_id[idx] = data_change_sync_job_id; +            dlog_print(DLOG_INFO, LOG_TAG, "[account] restored data_change_id[%d] = %d", idx, data_change_id[idx]); +            break; +         } +         else +         { +            if (idx == NUM_OF_CAPABILITY-1) +            { +               dlog_print(DLOG_INFO, LOG_TAG, "data_change_id[idx] is full"); +               break; +            } +            continue; +         } +      } +      account_destroy(account); +   } +   if (ret != SYNC_ERROR_NONE) +      dlog_print(DLOG_INFO, LOG_TAG, "Sync manager failed with error code %d", ret); +   else +   { +      if (data_change_sync_job_id != -1) +         dlog_print(DLOG_INFO, LOG_TAG, "sync manager added data change sync id %d", data_change_sync_job_id); +   } +} +
    3. - -
    4. The sync manager stores the data change sync request. Whenever there is a change in corresponding db which is selected through Capability types, sync manager schedules a sync job for the data. Sync callback functions in Sync Adapter Service App will be invoked accordingly. Upon completion of the upload sync job, the service application will communicate the same to Sync Adapter App by using app control with its operation. Also, the Sync Adapter App will show a popup to notify the user about the status. +
    5. The sync manager stores the data change sync request. Whenever there is a change in the corresponding database (selected through Capability types), the sync manager schedules a sync job for the data. Sync callback functions in Sync Adapter Service App are invoked accordingly. +

      When the upload of the sync job is completed, the service application communicates the same information to the Sync Adapter App UI application using an application control. The UI application shows a popup to notify the user about the status.

       static void
       app_control(app_control_h app_control, void *data)
       {
      -	char *operation;
      -	int ret = app_control_get_operation(app_control, &operation);
      -	if (ret != APP_CONTROL_ERROR_NONE) {
      -		dlog_print(DLOG_INFO, LOG_TAG, "failed to get operation");
      -		return;
      -	} else
      -		dlog_print(DLOG_INFO, LOG_TAG, "get operation: [%s]", operation);
      -
      -	dlog_print(DLOG_INFO, LOG_TAG, "Sync Job completed by sync-service");
      -
      -	if (strcmp(operation, "http://tizen.org/appcontrol/operation/default")) {
      -		Evas_Object *popup;
      -		Evas_Object *win = NF;
      -
      -		popup = elm_popup_add(win);
      -		elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
      -		eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, eext_popup_back_cb, NULL);
      -		evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
      -
      -		...
      -		...
      -		else if (operation && !strcmp(operation, "http://tizen.org/appcontrol/operation/data_change_sync_complete")) {
      -			dlog_print(DLOG_INFO, LOG_TAG, "Data Change Sync is completed");
      -			elm_object_text_set(popup, "Data Change Sync is completed");
      -		}
      -
      -		elm_popup_timeout_set(popup, TIME_FOR_POPUP);
      -		evas_object_show(popup);
      -	}
      -
      -	return;
      -}
      +   char *operation; +   int ret = app_control_get_operation(app_control, &operation); +   if (ret != APP_CONTROL_ERROR_NONE) +   { +      dlog_print(DLOG_INFO, LOG_TAG, "failed to get operation"); + +      return; +   } +   else +      dlog_print(DLOG_INFO, LOG_TAG, "get operation: [%s]", operation); + +   dlog_print(DLOG_INFO, LOG_TAG, "Sync Job completed by sync-service"); + +   if (strcmp(operation, "http://tizen.org/appcontrol/operation/default")) +   { +      Evas_Object *popup; +      Evas_Object *win = NF; + +      popup = elm_popup_add(win); +      elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0); +      eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, eext_popup_back_cb, NULL); +      evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + +      else if (operation && !strcmp(operation, "http://tizen.org/appcontrol/operation/data_change_sync_complete")) +      { +         dlog_print(DLOG_INFO, LOG_TAG, "Data Change Sync is completed"); +         elm_object_text_set(popup, "Data Change Sync is completed"); +      } + +      elm_popup_timeout_set(popup, TIME_FOR_POPUP); +      evas_object_show(popup); +   } + +   return; +} +
    +

    Getting All Sync Jobs

    -

    Foreach sync jobs

    -

    Figure: Foreach sync jobs

    +

    To query all sync jobs requested by the Sync Adapter App, click Manage sync jobs in the main screen.

    + +

    Figure: Get all sync jobs

    Foreach Sync Jobs

    -

    Request to get all sync jobs

    -
  • To query all sync jobs requested by the Sync Adapter App, select Manage sync jobs from home screen view. The corresponding sync manager API will be called as shown below. +

    The corresponding sync manager functions are called:

     bool
    -sync_adapter_sample_foreach_sync_job_cb(account_h account, const char *sync_job_name, const char *sync_capability, int sync_job_id, bundle* sync_job_user_data, void *user_data)
    +sync_adapter_sample_foreach_sync_job_cb(account_h account, const char *sync_job_name, const char *sync_capability, 
    +                                        int sync_job_id, bundle* sync_job_user_data, void *user_data)
     {
    -	char sync_job_info[MAX_SIZE];
    -	memset(sync_job_info, 0, sizeof(sync_job_info));
    -
    -	if (sync_job_name) {
    -		if (!strcmp(sync_job_name, "OnDemand")) {
    -			on_demand_sync_job_id = sync_job_id;
    -			sprintf(sync_job_info, "[%d] %s %s", sync_job_id, strdup(sync_job_name), strdup(displayed_option));
    -			dlog_print(DLOG_INFO, LOG_TAG, "[%d] %s %s", sync_job_id, sync_job_name, displayed_option);
    -		} else if (!strcmp(sync_job_name, "Periodic")) {
    -			periodic_sync_job_id = sync_job_id;
    -			sprintf(sync_job_info, "[%d] %s %s", sync_job_id, strdup(sync_job_name), strdup(displayed_interval));
    -			dlog_print(DLOG_INFO, LOG_TAG, "[%d] %s %s", sync_job_id, sync_job_name, displayed_interval);
    -		}
    -		on_demand_sync_job_id = -1;
    -	} else if (sync_capability) {
    -		if (!strcmp(sync_capability, SYNC_SUPPORTS_CAPABILITY_CALENDAR))
    -			sprintf(sync_job_info, "[%d] Data Change for %s", sync_job_id, strdup("Calendar"));
    -		...
    -		...
    -		dlog_print(DLOG_INFO, LOG_TAG, "[%d] DataChange", sync_job_id);
    -	} else if (cnt_sync_jobs == 0)
    -		return true;
    -
    -	int idx, temp_idx = 0;
    -
    -	for (idx = 0; idx < MAX_NUM; idx++) {
    -		if (list_of_sync_jobs[idx][0] == '\0') {
    -			remove_sync_job[idx] = sync_job_id;
    -			temp_idx = idx;
    -			break;
    -		}
    -	}
    -	strcpy(list_of_sync_jobs[temp_idx], sync_job_info);
    -	dlog_print(DLOG_INFO, LOG_TAG, "copy to list_of_sync_jobs[%d] : %s", temp_idx, list_of_sync_jobs[temp_idx]);
    -
    -	cnt_sync_jobs++;
    -
    -	return true;
    +   char sync_job_info[MAX_SIZE];
    +   memset(sync_job_info, 0, sizeof(sync_job_info));
    +
    +   if (sync_job_name) 
    +   {
    +      if (!strcmp(sync_job_name, "OnDemand")) 
    +      {
    +         on_demand_sync_job_id = sync_job_id;
    +         sprintf(sync_job_info, "[%d] %s %s", sync_job_id, strdup(sync_job_name), strdup(displayed_option));
    +         dlog_print(DLOG_INFO, LOG_TAG, "[%d] %s %s", sync_job_id, sync_job_name, displayed_option);
    +      } 
    +      else if (!strcmp(sync_job_name, "Periodic")) 
    +      {
    +         periodic_sync_job_id = sync_job_id;
    +         sprintf(sync_job_info, "[%d] %s %s", sync_job_id, strdup(sync_job_name), strdup(displayed_interval));
    +         dlog_print(DLOG_INFO, LOG_TAG, "[%d] %s %s", sync_job_id, sync_job_name, displayed_interval);
    +      }
    +      on_demand_sync_job_id = -1;
    +   }
    +   else if (sync_capability) 
    +   {
    +      if (!strcmp(sync_capability, SYNC_SUPPORTS_CAPABILITY_CALENDAR))
    +         sprintf(sync_job_info, "[%d] Data Change for %s", sync_job_id, strdup("Calendar"));
    +
    +      dlog_print(DLOG_INFO, LOG_TAG, "[%d] DataChange", sync_job_id);
    +   } 
    +   else if (cnt_sync_jobs == 0)
    +      return true;
    +
    +   int idx, temp_idx = 0;
    +
    +   for (idx = 0; idx < MAX_NUM; idx++) 
    +   {
    +      if (list_of_sync_jobs[idx][0] == '\0') 
    +      {
    +         remove_sync_job[idx] = sync_job_id;
    +         temp_idx = idx;
    +         break;
    +      }
    +   }
    +   strcpy(list_of_sync_jobs[temp_idx], sync_job_info);
    +   dlog_print(DLOG_INFO, LOG_TAG, "copy to list_of_sync_jobs[%d] : %s", temp_idx, list_of_sync_jobs[temp_idx]);
    +
    +   cnt_sync_jobs++;
    +
    +   return true;
     }
     
    -...
    -...
    -
     void
     on_manage_sync_jobs_cb(void *data, Evas_Object *obj, void *event_info)
     {
    -	...
    -	...
    +   int ret = sync_manager_foreach_sync_job(sync_adapter_sample_foreach_sync_job_cb, NULL);
     
    -	int ret = sync_manager_foreach_sync_job(sync_adapter_sample_foreach_sync_job_cb, NULL);
    +   for (idx = 0; idx < MAX_NUM; idx++) 
    +   {
    +      if (list_of_sync_jobs[idx][0] != '\0')
    +         dlog_print(DLOG_INFO, LOG_TAG, "after copying to list_of_sync_jobs[%d] : %s", idx, list_of_sync_jobs[idx]);
    +   }
     
    -	for (idx = 0; idx < MAX_NUM; idx++) {
    -		if (list_of_sync_jobs[idx][0] != '\0')
    -			dlog_print(DLOG_INFO, LOG_TAG, "after copying to list_of_sync_jobs[%d] : %s", idx, list_of_sync_jobs[idx]);
    -	}
    +   itc = elm_genlist_item_class_new();
    +   itc->item_style = "type1";
    +   itc->func.content_get = get_content_registered_sync_jobs;
    +   itc->func.text_get = get_text_registered_sync_jobs;
    +   itc->func.del = gl_del_cb;
     
    -	itc = elm_genlist_item_class_new();
    -	itc->item_style = "type1";
    -	itc->func.content_get = get_content_registered_sync_jobs;
    -	itc->func.text_get = get_text_registered_sync_jobs;
    -	itc->func.del = gl_del_cb;
    +   n_items = cnt_sync_jobs;
     
    -	n_items = cnt_sync_jobs;
    +   for (idx = 0; idx < n_items; idx++) 
    +   {
    +      foreach_id = calloc(sizeof(list_item_data_s), 1);
    +      foreach_id->type = 6;
    +      foreach_id->index = idx;
     
    -	for (idx = 0; idx < n_items; idx++) {
    -		foreach_id = calloc(sizeof(list_item_data_s), 1);
    -		foreach_id->type = 6;
    -		foreach_id->index = idx;
    +      it = elm_genlist_item_append(genlist, itc, foreach_id, NULL, ELM_GENLIST_ITEM_TREE, NULL, nf);
     
    -		it = elm_genlist_item_append(genlist, itc, foreach_id, NULL, ELM_GENLIST_ITEM_TREE, NULL, nf);
    +      foreach_id->item = it;
    +   }
     
    -		foreach_id->item = it;
    -	}
    +   evas_object_smart_callback_add(genlist, "selected", genlist_selected_cb, NULL);
    +   elm_genlist_item_class_free(itc);
     
    -	evas_object_smart_callback_add(genlist, "selected", genlist_selected_cb, NULL);
    -	elm_genlist_item_class_free(itc);
    +   NF = nf;
     
    -	NF = nf;
    -
    -	if (ret == SYNC_ERROR_NONE)
    -		evas_object_show(genlist);
    -	else
    -		dlog_print(DLOG_INFO, LOG_TAG, "Error %d", ret);
    +   if (ret == SYNC_ERROR_NONE)
    +      evas_object_show(genlist);
    +   else
    +      dlog_print(DLOG_INFO, LOG_TAG, "Error %d", ret);
    +}
    +
    - ... - ... -} -
  • +

    Removing All Sync Jobs

    +

    To remove registered sync jobs requested by the Sync Adapter App, select the sync jobs to be removed on the Manage sync jobs screen and click Remove.

    +

    Figure: Removing sync jobs

    +

    Removing sync jobs

    -

    Remove sync jobs

    -

    Figure: Remove sync jobs

    -

    Remove Sync Jobs

    +

    The corresponding sync manager functions are called:

    -

    Request to remove sync jobs

    -
  • To remove registered sync jobs requested by the Sync Adapter App, select check of each sync job from Manage sync jobs. Once clicking Remove button, checked sync job will be removed. The corresponding sync manager API will be called as shown below.
     void
     on_remove_selected_sync_jobs_cb(void *data, Evas_Object *obj, void *event_info)
     {
    -	int idx, idx2;
    -
    -	for (idx = 0; idx < cnt_sync_jobs; idx++) {
    -		if (list_of_remove_sync_job[idx]) {
    -			sync_manager_remove_sync_job(remove_sync_job[idx]);
    -			list_of_remove_sync_job[idx] = false;
    -			for (idx2 = 0; idx2 < NUM_OF_CAPABILITY; idx2++) {
    -				if (data_change_id[idx2] == remove_sync_job[idx]) {
    -					data_change_id[idx2] = -1;
    -					break;
    -				}
    -			}
    -			remove_sync_job[idx] = -1;
    -		}
    -	}
    -
    -	on_demand_sync_job_id = -1;
    -	periodic_sync_job_id = -1;
    -
    -	if (is_all_checked) {
    -		memset(data_change_id, -1, sizeof(data_change_id));
    -	}
    -
    -	Evas_Object *nf = data;
    -	elm_naviframe_item_pop(nf);
    -	on_manage_sync_jobs_cb(data, obj, event_info);
    -}
    -
  • +   int idx, idx2; + +   for (idx = 0; idx < cnt_sync_jobs; idx++) +   { +      if (list_of_remove_sync_job[idx]) +      { +         sync_manager_remove_sync_job(remove_sync_job[idx]); +         list_of_remove_sync_job[idx] = false; +         for (idx2 = 0; idx2 < NUM_OF_CAPABILITY; idx2++) +         { +            if (data_change_id[idx2] == remove_sync_job[idx]) +            { +               data_change_id[idx2] = -1; +               break; +            } +         } +         remove_sync_job[idx] = -1; +      } +   } + +   on_demand_sync_job_id = -1; +   periodic_sync_job_id = -1; + +   if (is_all_checked) +   { +      memset(data_change_id, -1, sizeof(data_change_id)); +   } + +   Evas_Object *nf = data; +   elm_naviframe_item_pop(nf); +   on_manage_sync_jobs_cb(data, obj, event_info); +} + +
    diff --git a/org.tizen.sampledescriptions/html/mobile_n/syncadapterserviceapp_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/syncadapterserviceapp_sd_mn.htm index 60a2eb4..5ce18e2 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/syncadapterserviceapp_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/syncadapterserviceapp_sd_mn.htm @@ -24,18 +24,20 @@

    Mobile native

    - - -

    Sync Adapter Service Sample Overview

    -

    The Sync Adapter Service App acts as a sync adapter to Sync Adapter App. The service application handles all sync requests from Sync Adapter App.

    - - +

    Sync Adapter Service App Sample Overview

    +

    The Sync Adapter Service App sample application demonstrates how you can create an application that acts as a sync adapter to the Sync Adapter App UI application. The service application handles all sync requests from the UI application. The Sync Adapter Service App sample demonstrates how the sync callbacks are implemented to handle sync requests.

    Prerequisites

    -
      -
    1. Sync Adapter Service App's app id must be "org.tizen.syncadapterapp.service". Because Sync Adapter App use this ID as fixed value, when the app communicates with Sync Adapter Service App. Otherwise, app control communication will not be operated properly.
      Also, Sync Adapter Service App's package name must be "org.tizen.syncadapterapp" as same with Sync Adapter App's.
    2. -
    3. Sync Adapter App and Sync Adapter Service App packages should be built as coupled each other. For building them like that, please follow below steps. On your Tizen IDE, click right button on Sync Adapter App and select Properties. Once you select Project References, you can find Sync Adapter Service App. Select the check box for the service application, and click OK. In the Project Explorer view, a message (with the Sync Adapter App) appears next to the Sync Adapter Service App project name that you have added to the package.
    4. -
    5. To ensure proper application execution, the following privileges must be set: +
        +
      • Sync Adapter Service App's app ID must be org.tizen.syncadapterapp.service, because the Sync Adapter App uses this ID as a fixed value when it communicates with the Sync Adapter Service App. Otherwise, the application control communication does not operate properly. +

        In addition, the Sync Adapter Service App package name must be org.tizen.syncadapterapp (same as the Sync Adapter App).

      • +
      • The Sync Adapter App and Sync Adapter Service App packages must be coupled during the build process. To couple the packages: +
        1. On the Tizen IDE, right-click the Sync Adapter App project and select Properties.
        2. +
        3. Select Project References and find Sync Adapter Service App.
        4. +
        5. Select the Sync Adapter Service App check box and click OK.
        +

        In the Project Explorer view, a with the Sync Adapter App message appears next to the Sync Adapter Service App project name showing that you have coupled it successfully.

      • +
      • +

        To ensure proper application execution, the following privileges must be set:

        • http://tizen.org/privilege/account.read
        • http://tizen.org/privilege/account.write
        • @@ -44,88 +46,98 @@
        • http://tizen.org/privilege/packagemanager.info
      • -
      • Register the service application as a sync adapter by passing the sync callback functions to the following sync adapter API. -
        -bool service_app_create(void *data)
        -{
        -	dlog_print(DLOG_INFO, LOG_TAG, "service_app_create called");
        -
        -	sync_adapter_set_callbacks(handleStartSync, handleStopSync);
        -	...
        -	...
        +
      - return true; -} -
    6. -
    +

    Implementation

    +

    Application Initialization

    -

    Start Sync

    -

    Handle Start Sync

    -
  • Whenever sync manager schedules a sync job for Sync Adapter App, the following callback function will be tirgger to perform the sync job. -The Sync Adapter Service App will communicates to Sync Adapter App by using app control. +

    Register the service application as a sync adapter by passing the sync callbacks to the sync_adapter_set_callbacks() function:

    -static bool handleStartSync(account_h account, const char *sync_job_name, const char *sync_capability, bundle *sync_job_user_data)
    +bool 
    +service_app_create(void *data)
     {
    -	dlog_print(DLOG_INFO, LOG_TAG, "HandleStartSync called in service app");
    -
    -	bool is_data_change = sync_capability ? true : false;
    -
    -	if (sync_job_name)
    -		dlog_print(DLOG_INFO, LOG_TAG, "Sync Job Name [%s]", sync_job_name);
    -	else
    -		dlog_print(DLOG_INFO, LOG_TAG, "Data Change Sync Job Capability [%s]", sync_capability);
    -
    -	if (account) {
    -		int id;
    -		account_get_account_id(account, &id);
    -		dlog_print(DLOG_INFO, LOG_TAG, "account [%d] ", id);
    -	} else
    -		dlog_print(DLOG_INFO, LOG_TAG, "accountless case");
    -
    -	app_control_h app_control;
    -	int ret = app_control_create(&app_control);
    -	ret = app_control_set_app_id(app_control, SYNC_ADAPTER_APP_ID);
    -	if (ret == APP_CONTROL_ERROR_NONE)
    -		dlog_print(DLOG_INFO, LOG_TAG, "Launching sync UI app successfully [%s]", SYNC_ADAPTER_APP_ID);
    -	else
    -		dlog_print(DLOG_INFO, LOG_TAG, "Launching sync UI app failed [%s]", get_error_message(ret));
    -
    -	if (is_data_change) {
    -		ret = app_control_set_operation(app_control, "http://tizen.org/appcontrol/operation/data_change_sync_complete");
    -	} else {
    -		bool is_periodic = !strcmp(sync_job_name, "Periodic") ? true : false;
    -		if (is_periodic)
    -			ret = app_control_set_operation(app_control, "http://tizen.org/appcontrol/operation/periodic_sync_complete");
    -		else
    -			ret = app_control_set_operation(app_control, "http://tizen.org/appcontrol/operation/on_demand_sync_complete");
    -	}
    -	dlog_print(DLOG_INFO, LOG_TAG, "sync operation is completed");
    -
    -	app_control_send_launch_request(app_control, NULL, NULL);
    -
    -	return true;
    -}
    -
  • +   dlog_print(DLOG_INFO, LOG_TAG, "service_app_create called"); +   sync_adapter_set_callbacks(handleStartSync, handleStopSync); +   return true; +} + -

    Stop Sync

    -

    Handle Stop Sync

    -
  • This callback function is a notification to inform Sync Adapter Service App to stop and safely cancel ongoing sync job (if any). -
    -static void handleStopSync(account_h account, const char *capability)
    -{
    -	dlog_print(DLOG_INFO, LOG_TAG, "HandleStopSync called in service app");
     
    -	int id;
    -	account_get_account_id(account, &id);
    -	dlog_print(DLOG_INFO, LOG_TAG, "details %d, %s ", id, capability);
    -	dlog_print(DLOG_INFO, LOG_TAG, "HandleStopSync called in client");
    -}
    -
  • +

    Sync Start

    +

    Whenever the sync manager schedules a sync job for the Sync Adapter App UI application, the following callback is triggered to perform a sync job. The Sync Adapter Service App communicates the information to the Sync Adapter App UI application using an application control.

    +
    +static bool 
    +handleStartSync(account_h account, const char *sync_job_name, const char *sync_capability, bundle *sync_job_user_data)
    +{
    +   dlog_print(DLOG_INFO, LOG_TAG, "HandleStartSync called in service app");
    +
    +   bool is_data_change = sync_capability ? true : false;
    +
    +   if (sync_job_name)
    +      dlog_print(DLOG_INFO, LOG_TAG, "Sync Job Name [%s]", sync_job_name);
    +   else
    +      dlog_print(DLOG_INFO, LOG_TAG, "Data Change Sync Job Capability [%s]", sync_capability);
    +
    +   if (account)
    +   {
    +      int id;
    +      account_get_account_id(account, &id);
    +
    +      dlog_print(DLOG_INFO, LOG_TAG, "account [%d]", id);
    +   } 
    +   else
    +      dlog_print(DLOG_INFO, LOG_TAG, "accountless case");
    +
    +   app_control_h app_control;
    +   int ret = app_control_create(&app_control);
    +   ret = app_control_set_app_id(app_control, SYNC_ADAPTER_APP_ID);
    +   if (ret == APP_CONTROL_ERROR_NONE)
    +      dlog_print(DLOG_INFO, LOG_TAG, "Launching sync UI app successfully [%s]", SYNC_ADAPTER_APP_ID);
    +   else
    +      dlog_print(DLOG_INFO, LOG_TAG, "Launching sync UI app failed [%s]", get_error_message(ret));
    +
    +   if (is_data_change) 
    +   {
    +      ret = app_control_set_operation(app_control, "http://tizen.org/appcontrol/operation/data_change_sync_complete");
    +   } 
    +   else 
    +   {
    +      bool is_periodic = !strcmp(sync_job_name, "Periodic") ? true : false;
    +      if (is_periodic)
    +         ret = app_control_set_operation(app_control, "http://tizen.org/appcontrol/operation/periodic_sync_complete");
    +      else
    +         ret = app_control_set_operation(app_control, "http://tizen.org/appcontrol/operation/on_demand_sync_complete");
    +   }
    +   dlog_print(DLOG_INFO, LOG_TAG, "sync operation is completed");
    +
    +   app_control_send_launch_request(app_control, NULL, NULL);
    +
    +   return true;
    +}
    +
    + + + +

    Sync Stop

    + +

    To safely stop and cancel any ongoing sync jobs, use the following callback function:

    +
    +static void 
    +handleStopSync(account_h account, const char *capability)
    +{
    +   dlog_print(DLOG_INFO, LOG_TAG, "HandleStopSync called in service app");
    +
    +   int id;
    +   account_get_account_id(account, &id);
    +   dlog_print(DLOG_INFO, LOG_TAG, "details %d, %s ", id, capability);
    +   dlog_print(DLOG_INFO, LOG_TAG, "HandleStopSync called in client");
    +}
    +
    diff --git a/org.tizen.sampledescriptions/html/mobile_n/systeminfo_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/systeminfo_sd_mn.htm index d007b03..ed068bb 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/systeminfo_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/systeminfo_sd_mn.htm @@ -273,4 +273,4 @@ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga - + \ No newline at end of file diff --git a/org.tizen.sampledescriptions/html/mobile_n/tts_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/tts_sd_mn.htm index ec93b10..d5d4318 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/tts_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/tts_sd_mn.htm @@ -11,7 +11,7 @@ - SelfCamera Sample Overview + TTS Sample Overview @@ -26,120 +26,121 @@

    TTS Sample Overview

    -

    This sample application helps you to use TTS (Text-To-Speech) api in your application, service or other purpose.

    -

    The following figure illustrates the main view of the TTS sample application and how it works. The application set the language and the voice type of text and add the text which user want to read-out. Because this application stores the added text information, it is possible to get the number of added text at now and the list of them. By click buttons, you can also request play/pause/stop.

    +

    The TTS sample application demonstrates how you can use the TTS (Text-To-Speech) feature in your application or service.

    +

    The following figure illustrates the main view of the TTS sample application.

    Figure: Application view

    TTS sample application view

    +

    In the application, set the language and voice type of text, and add the text which you want to be read aloud. Because the application stores the added text information, you can view the number of added texts and a text list. To request play, pause or stop, use the applicable buttons.

    +

    Implementation

    To implement the TTS application:

    1. Create the layout for the application. -

      For this sample application, native widgets are applied include genlist and entry, and the structure appdata_s and some global value include the GList *g_tts_text_list have information for those widget implementation. However, this decription concentrates on how to use TTS api not for native widget usage. If you need support or more information for these widget, "UI Components" sample application can help.

      +

      This sample application uses native UI components (including a genlist and entry), and the appdata_s structure and some global values (including the GList *g_tts_text_list) to manage the UI component implementation. However, this topic concentrates on how to use the TTS API and not the UI components. For more information on UI component usage, see the UI Components sample application.

    2. Initialize TTS. -

      At the application starting, the init_tts() function creates the tts handle and sets the callback functions for the state changed and utterance completed. (You can find the more type of callback function in TTS api set.) At the next, the application obtains the default TTS voice(language and voice type) and connects to TTS service for working. the __tts_utterance_completed_cb() is called when the reading for each added text is finished. so, this application removes it from the added text list.

      +

      At the application startup, the init_tts() function creates the TTS handle and sets the callback functions for the state change and utterance completed events (for additional callbacks, see the TTS API). Then the application obtains the default TTS voice (language and voice type) and connects to the TTS service.

      + +

      The __tts_utterance_completed_cb() function is called when the reading for each added text is finished. At that point, the application removes the text from the added text list.

      -static void __tts_state_changed_cb(tts_h tts, tts_state_e previous, tts_state_e current, void* user_data)
      -{
      -   ...
      -}
      +static void 
      +__tts_state_changed_cb(tts_h tts, tts_state_e previous, tts_state_e current, void* user_data) {}
       
      -static void __tts_utterance_completed_cb(tts_h tts, int utt_id, void* user_data)
      -{
      -   ...
      -}
      +static void 
      +__tts_utterance_completed_cb(tts_h tts, int utt_id, void* user_data) {}
       
      -static int init_tts(appdata_s *ad)
      +static int 
      +init_tts(appdata_s *ad)
       {
      -   // Create tts handle
      -   if (0 != tts_create(&g_tts))
      +   // Create TTS handle
      +   if (0 != tts_create(&g_tts))
          {
      -      ...
             return -1;
          }
          // Set state changed callback
          if (0 != tts_set_state_changed_cb(g_tts, __tts_state_changed_cb, ad))
          {
      -      ...
             tts_destroy(g_tts);
      +
             return -1;
          }
      -   // Set Utterance completed callback
      +   // Set utterance completed callback
          if (0 != tts_set_utterance_completed_cb(g_tts, __tts_utterance_completed_cb, ad))
          {
      -      ...
             tts_destroy(g_tts);
      +
             return -1;
          }
      -   // Get Default voice
      +   // Get default voice
          char *language = NULL;
          int voice_type;
      -   if (0 != tts_get_default_voice(g_tts, &language, &voice_type))
      +   if (0 != tts_get_default_voice(g_tts, &language, &voice_type))
          {
      -      ...
             tts_destroy(g_tts);
      +
             return -1;
          }
          if (NULL != language)
          {
      -      ...
             free(language);
          }
      -   // Connect tts service
      +   // Connect to TTS service
          if (0 != tts_prepare(g_tts))
          {
      -      ...
             tts_destroy(g_tts);
      +
             return -1;
          }
      +
          return 0;
       }
       
      -
    3. -
    4. Deinitialize TTS. -

      The deinit_tts() is called for disconnect service and destroy handle when the application is finalized. If you want to only disconnect service, the tts_unprepare() helps you

      +

      When the TTS feature is no longer needed, call the deinit_tts() function to disconnect the service and destroy the handle.

      +

      If you want to only disconnect the service but not destroy the handle, use the tts_unprepare() function.

      -static voice deinit_tts(appdata_s *ad)
      +static voice 
      +deinit_tts(appdata_s *ad)
       {
      -   ...
      -   // Destroy tts handle (Disconnect service included)
      +   // Destroy TTS handle (service disconnect is included)
          if (0 != tts_destroy(g_tts))
          {
      -      ...
      +      // Do something
          }
       }
       
    5. -
    6. Get supported voice list. -

      This application shows the supported TTS voice list when the "Select Voice" item is clicked. The __voice_item_selected_cb() is the callback function for click event, and the __show_voice_list() calls the tts_foreach_supported_voices() for get the supported voice list.

      +
    7. Get the supported voice list. +

      The application shows the supported TTS voice list when the Select Voice item is clicked. The __voice_item_selected_cb() function is the callback for the click event, and the __show_voice_list() function calls the tts_foreach_supported_voices() function for get the supported voice list.

      -static bool __tts_supported_voice_cb(const char* engine_id, const char* language, int voice_type, void* user_data)
      +static bool 
      +__tts_supported_voice_cb(const char* engine_id, const char* language, int voice_type, void* user_data)
       {
      -   ...
          // If you want to continue to get next supported voice
          return true;
          // If you want to stop
          return false;
       }
       
      -static void __show_voice_list(appdata_s *ad)
      +static void 
      +__show_voice_list(appdata_s *ad)
       {
          if (0 != tts_foreach_supported_voices(g_tts, __tts_supported_voice_cb, ad))
          {
      -      ...
      +      // Do something
          }
       }
       
      -static void __voice_item_selected_cb(void *data, Evas_Object *obj, void *event_info)
      +static void 
      +__voice_item_selected_cb(void *data, Evas_Object *obj, void *event_info)
       {
          appdata_s *ad = (appdata_s *)data;
          __show_voice_list(ad);
      @@ -147,63 +148,65 @@ static void __voice_item_selected_cb(void *data, Evas_Object *obj, void *event_i
       
    8. -
    9. Add text with current voice. -

      When the "Add text" item is clicked, the __add_text_item_selected_cb() function is called. in this function, the tts_add_text() is called for add text which is filled in the input entry with the current selected voice. In this application, these added text is stored via GList for show the list.

      +
    10. Add the text with the current voice. +

      When the user clicks Add text, the __add_text_item_selected_cb() function is called. In this function, the tts_add_text() function adds the text from the input entry with the current selected voice. In this application, the added text is stored with the GList to show the list.

       __add_text_item_selected_cb(void *data, Evas_Object *obj, void *event_info)
       {
          appdata_s *ad = (appdata_s *)data;
      -   char *text = elm_entry_entry_get(ad->entry);
      +   char *text = elm_entry_entry_get(ad->entry);
          if (NULL != text)
          {
             int utt_id;
      -      if (0 != tts_add_text(g_tts, text, g_current_voice->language, g_current_voice->voice_type, TTS_SPEED_AUTO, &utt_id))
      +      if (0 != tts_add_text(g_tts, text, g_current_voice->language, g_current_voice->voice_type, TTS_SPEED_AUTO, &utt_id))
             {
      -         ...
      +         // Do something
             }
             else
             {
      -         ...
      +         // Do something
             }
          }
       }
       
    11. -
    12. Play/Pause reading -

      The "Play" item is changed following the current tts state.(When the state is TTS_STATE_PLAYING, the text of item is changed to "Pause") The __play_pause_item_selected_cb() is called when the item is clicked. Then, the application calls TTS api following the state inside it .

      +
    13. Play or pause the reading. +

      The Play button text changes according to the current TTS state (when the state is TTS_STATE_PLAYING, the text changes to Play). The __play_pause_item_selected_cb() callback is called when the button is clicked. Within the callback, the application calls the TTS API based on the state.

      -static void __play_pause_item_selected_cb(void *data, Evas_Object *obj, void *event_info)
      +static void 
      +__play_pause_item_selected_cb(void *data, Evas_Object *obj, void *event_info)
       {
          if (TTS_STATE_READY == g_current_state || TTS_STATE_PAUSED == g_current_state)
          {
             if (0 != tts_play(g_tts))
             {
      -         ...
      +         // Do something
             }
          }
          else if (TTS_STATE_PLAYING == g_current_state)
          {
             if (0 != tts_pause(g_tts))
             {
      -         ...
      +         // Do something
             }
          }
       }
       
    14. -
    15. Stop reading -

      The "Stop" item invokes the __stop_item_selected_cb() callback funtions and the tts_stop() is called inside it. the tts_stop() remove all the added text, so this applcation also remove the stored text list.

      +
    16. Stop the reading. +

      The Stop button invokes the __stop_item_selected_cb() callback and the tts_stop() function is called inside the callback. The tts_stop() function removes all the added text, so the application also removes the stored text list.

      -static void __stop_item_selected_cb(void *data, Evas_Object *obj, void *event_info)
      +static void 
      +__stop_item_selected_cb(void *data, Evas_Object *obj, void *event_info)
       {
          if (0 != tts_stop(g_tts))
          {
      -      ...
      +      // Do something
          }
       }
       
      diff --git a/org.tizen.sampledescriptions/html/mobile_n/ui_app_store_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/ui_app_store_sd_mn.htm index ffdb470..82ba980 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/ui_app_store_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/ui_app_store_sd_mn.htm @@ -138,6 +138,7 @@ add_main_view(appdata_s *ad)    item_content = create_item_content(main_view, content_height, 0);    evas_object_show(item_content);    elm_box_pack_end(main_view, item_content); +}

      The add_item_table() function creates a table and packs the button component into it.

      @@ -157,6 +158,7 @@ add_item_table(Evas_Object *parent, int content_height)    content = create_button(content_table, ic);    evas_object_show(content);    elm_table_pack(content_table, content, 0, 0, 1, 1); +} static Evas_Object* create_button(Evas_Object *parent, Evas_Object *content) @@ -173,7 +175,9 @@ create_button(Evas_Object *parent, Evas_Object *content)
         evas_object_smart_callback_add(button, "pressed", pressed_cb, content);
          evas_object_smart_callback_add(button, "unpressed", unpressed_cb, content);
      -   evas_object_smart_callback_add(button, "clicked", clicked_cb, content);
      +   evas_object_smart_callback_add(button, "clicked", clicked_cb, content); +} +

      The create_label() function creates a label component.

      @@ -183,6 +187,7 @@ create_label(Evas_Object *parent, const char * text) {    Evas_Object *text_obj = elm_label_add(button);    elm_object_text_set(text_obj, text); +    return text_obj; } @@ -197,6 +202,7 @@ create_image(Evas_Object *parent, const char *image_path, int min_height)    Evas_Object *ic = elm_image_add(button);    elm_image_file_set(ic, path, NULL);    evas_object_size_hint_min_set(ic, 0, min_height); +    return ic; } diff --git a/org.tizen.sampledescriptions/html/mobile_n/ui_clock_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/ui_clock_sd_mn.htm index 0caf1dc..6a1f188 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/ui_clock_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/ui_clock_sd_mn.htm @@ -160,53 +160,52 @@ create_alarm_view(appdata_s *ad)    box = elm_box_add(ad->nf);    evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);    evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL); -   ... -   ... -   ...    elm_box_pack_end(box, grid1);    elm_box_pack_end(box, grid2);    elm_box_pack_end(box, btn); -   return box; +   return box; +} +

      A grid containing bg and label objects is created and added to the box container. Each object in the grid has its own relative coordinates for positioning.

      grid1 = elm_grid_add(box);
      -   evas_object_size_hint_weight_set(grid1, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
      -   evas_object_size_hint_align_set(grid1, EVAS_HINT_FILL, EVAS_HINT_FILL);
      -   evas_object_show(grid1);
      +evas_object_size_hint_weight_set(grid1, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
      +evas_object_size_hint_align_set(grid1, EVAS_HINT_FILL, EVAS_HINT_FILL);
      +evas_object_show(grid1);
       
      -   bg1 = create_bg(grid1, 1);
      -   elm_grid_pack(grid1, bg1, 0, 0, 100, 100);
      +bg1 = create_bg(grid1, 1);
      +elm_grid_pack(grid1, bg1, 0, 0, 100, 100);
       
      -   label1 = elm_label_add(grid1);
      -   elm_object_text_set(label1, "<font_size=110><color=#ffffff>07:26</color></font_size>");
      -   evas_object_show(label1);
      -   elm_grid_pack(grid1, label1, 22, 8, 100, 100);
      +label1 = elm_label_add(grid1);
      +elm_object_text_set(label1, "<font_size=110><color=#ffffff>07:26</color></font_size>");
      +evas_object_show(label1);
      +elm_grid_pack(grid1, label1, 22, 8, 100, 100);
       
      -   label2 = elm_label_add(grid1);
      -   elm_object_text_set(label2, "<font_size=22><color=#a6a6a6>wed, January 1</color></font_size>");
      -   evas_object_show(label2);
      -   elm_grid_pack(grid1, label2, 35, 78, 100, 100);
      +label2 = elm_label_add(grid1);
      +elm_object_text_set(label2, "<font_size=22><color=#a6a6a6>wed, January 1</color></font_size>");
      +evas_object_show(label2);
      +elm_grid_pack(grid1, label2, 35, 78, 100, 100);
       
      -   grid2 = elm_grid_add(box);
      -   evas_object_size_hint_weight_set(grid2, EVAS_HINT_EXPAND, 0.0);
      -   evas_object_size_hint_align_set(grid2, EVAS_HINT_FILL, EVAS_HINT_FILL);
      -   evas_object_size_hint_min_set(grid2, -1, 430);
      -   evas_object_show(grid2);
      +grid2 = elm_grid_add(box);
      +evas_object_size_hint_weight_set(grid2, EVAS_HINT_EXPAND, 0.0);
      +evas_object_size_hint_align_set(grid2, EVAS_HINT_FILL, EVAS_HINT_FILL);
      +evas_object_size_hint_min_set(grid2, -1, 430);
      +evas_object_show(grid2);
       
      -   bg2 = create_bg(grid2, 2);
      -   elm_grid_pack(grid2, bg2, 0, 0, 100, 100);
      +bg2 = create_bg(grid2, 2);
      +elm_grid_pack(grid2, bg2, 0, 0, 100, 100);
       
      -   img = create_img(grid2, "no_alarm.png");
      -   elm_grid_pack(grid2, img, 32, 32, 36, 36);
      +img = create_img(grid2, "no_alarm.png");
      +elm_grid_pack(grid2, img, 32, 32, 36, 36);
       
      -   label3 = elm_label_add(grid2);
      -   elm_object_text_set(label3, "<b><font_size=22><color=#ffffff>No alarms</color></font_size></b>");
      -   evas_object_show(label3);
      -   elm_grid_pack(grid2, label3, 40, 68, 100, 100);
      +label3 = elm_label_add(grid2);
      +elm_object_text_set(label3, "<b><font_size=22><color=#ffffff>No alarms</color></font_size></b>");
      +evas_object_show(label3);
      +elm_grid_pack(grid2, label3, 40, 68, 100, 100);
       
      -   btn = create_btn(box, "Create alarm");
      +btn = create_btn(box, "Create alarm");

      The bg, img, and btn objects are created for reusability.

      @@ -321,9 +320,6 @@ create_landscape_alarm_view(appdata_s *ad)    box1 = elm_box_add(ad->nf);    evas_object_size_hint_weight_set(box1, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);    evas_object_size_hint_align_set(box1, EVAS_HINT_FILL, EVAS_HINT_FILL); -   ... -   ... -   ...    elm_box_pack_end(box1, box2);    elm_box_pack_end(box1, btn); @@ -342,29 +338,29 @@ create_landscape_alarm_view(appdata_s *ad)

      The grid object minimum height value has been set. A scroller is automatically added in the list.

      -
         grid1 = elm_grid_add(box);
      -   evas_object_size_hint_weight_set(grid1, EVAS_HINT_EXPAND, 0.0);
      -   evas_object_size_hint_align_set(grid1, EVAS_HINT_FILL, EVAS_HINT_FILL);
      -   evas_object_size_hint_min_set(grid1, -1, 265);
      -   evas_object_show(grid1);
      +
      grid1 = elm_grid_add(box);
      +evas_object_size_hint_weight_set(grid1, EVAS_HINT_EXPAND, 0.0);
      +evas_object_size_hint_align_set(grid1, EVAS_HINT_FILL, EVAS_HINT_FILL);
      +evas_object_size_hint_min_set(grid1, -1, 265);
      +evas_object_show(grid1);
       

      In the landscape view, the relative coordinate values of the grid items change. To ensure that the view can be maintained, rearrange the items.

      -
         if (ad->current_degree == 0 || ad->current_degree == 180) 
      -   {
      -      elm_grid_pack(grid1, label1, 22, 17, 100, 100);
      -      elm_grid_pack(grid1, label2, 35, 62, 100, 100);
      -      elm_grid_pack(grid1, label3, 36, 73, 100, 100);
      -   }
      -   else 
      -   {
      -      elm_grid_pack(grid1, label1, 33, 16, 100, 100);
      -      elm_grid_pack(grid1, label2, 40, 58, 100, 100);
      -      elm_grid_pack(grid1, label3, 41, 69, 100, 100);
      -   }
      +
      if (ad->current_degree == 0 || ad->current_degree == 180) 
      +{
      +   elm_grid_pack(grid1, label1, 22, 17, 100, 100);
      +   elm_grid_pack(grid1, label2, 35, 62, 100, 100);
      +   elm_grid_pack(grid1, label3, 36, 73, 100, 100);
      +}
      +else 
      +{
      +   elm_grid_pack(grid1, label1, 33, 16, 100, 100);
      +   elm_grid_pack(grid1, label2, 40, 58, 100, 100);
      +   elm_grid_pack(grid1, label3, 41, 69, 100, 100);
      +}
       

      Timer View

      @@ -379,37 +375,37 @@ To ensure that the view can be maintained, rearrange the items.

      A box containing grid and button objects is created and added to the naviframe.

      A grid containing label and table objects is created and added to the inner box container. Each object in the grid has its own relative coordinates for positioning. A table is created and added to the grid container.

      -
      table = elm_table_add(grid2);
      -   evas_object_show(table);
      -   elm_table_padding_set(table, 5, 5);
      -   elm_table_homogeneous_set(table, EINA_TRUE);
      +
      +table = elm_table_add(grid2);
      +evas_object_show(table);
      +elm_table_padding_set(table, 5, 5);
      +elm_table_homogeneous_set(table, EINA_TRUE);
       
      -
      -   index = 0;
      -   for (i = 0; i < 2; i++) 
      +index = 0;
      +for (i = 0; i < 2; i++) 
      +{
      +   for (j = 0; j < 6; j++) 
          {
      -      for (j = 0; j < 6; j++) 
      +      index++;
      +      if (index == 6)
      +         snprintf(buf, sizeof(buf), "%s", "<font_size=50>Del</font_size>");
      +      else if (index == 11)
      +         snprintf(buf, sizeof(buf), "%s", "<font_size=50>0</font_size>");
      +      else if (index == 12)
      +         snprintf(buf, sizeof(buf), "%s", "<font_size=40>Start</font_size>");
      +      else 
             {
      -         index++;
      -         if (index == 6)
      -            snprintf(buf, sizeof(buf), "%s", "<font_size=50>Del</font_size>");
      -         else if (index == 11)
      -            snprintf(buf, sizeof(buf), "%s", "<font_size=50>0</font_size>");
      -         else if (index == 12)
      -            snprintf(buf, sizeof(buf), "%s", "<font_size=40>Start</font_size>");
      -         else 
      -         {
      -            if (index > 6)
      -               snprintf(buf, sizeof(buf), "%s%d%s", "<font_size=50>", index -1, "</font_size>");
      -            else
      -               snprintf(buf, sizeof(buf), "%s%d%s", "<font_size=50>", index, "</font_size>");
      -         }
      -         btn = create_btn(grid2, buf);
      -         elm_table_pack(table, btn, j, i, 1, 1);
      +         if (index > 6)
      +            snprintf(buf, sizeof(buf), "%s%d%s", "<font_size=50>", index -1, "</font_size>");
      +         else
      +            snprintf(buf, sizeof(buf), "%s%d%s", "<font_size=50>", index, "</font_size>");
             }
      +      btn = create_btn(grid2, buf);
      +      elm_table_pack(table, btn, j, i, 1, 1);
          }
      +}
       
      -   elm_grid_pack(grid2, table, 0, 0, 100, 100);
      +elm_grid_pack(grid2, table, 0, 0, 100, 100);
       
      diff --git a/org.tizen.sampledescriptions/html/mobile_n/ui_components_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/ui_components_sd_mn.htm index 70795a0..f948aee 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/ui_components_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/ui_components_sd_mn.htm @@ -44,31 +44,31 @@ File name Description - - accessibility.c - This file creates and initializes a view, which displays Accessibility API usage scenarios. You can enter particular component to view and manage it. - - - - accessibility/screen_reader.c - This file creates and initializes a view, which displays Screen Reader related usage scenario of Accessibility. You can enable/disable it and check other options about it. - - - - accessibility/screen_reader/description.c - This file creates and initializes a view, which displays the UI Description screen. You can view and test how Screen Reader reads names/description of different buttons. - - - - accessibility/screen_reader/reading_order.c - This file creates and initializes a view, which displays the UI Reading Order screen. You can view and test how custom and default reading order works. - - - - accessibility/screen_reader/custom_frame.c - This file creates and initializes a view, which displays the Custom Frame screen. You can view and test Screen Reader's behavior on default and custom frames. - - + + accessibility.c + This file creates and initializes a view, which displays the Accessibility API usage scenarios. You can enter a particular component to view and manage it. + + + + accessibility/screen_reader.c + This file creates and initializes a view, which displays the Screen Reader-related accessibility usage scenario. You can enable or disable the Screen Reader and check its options. + + + + accessibility/screen_reader/description.c + This file creates and initializes a view, which displays the UI Description screen. You can view and test how the Screen Reader reads names and descriptions of different buttons. + + + + accessibility/screen_reader/reading_order.c + This file creates and initializes a view, which displays the UI Reading Order screen. You can view and test how the custom and default reading order works. + + + + accessibility/screen_reader/custom_frame.c + This file creates and initializes a view, which displays the Custom Frame screen. You can view and test the Screen Reader behavior on default and custom frames. + + button.c
      button.edc @@ -247,4 +247,4 @@ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga - + \ No newline at end of file diff --git a/org.tizen.sampledescriptions/html/mobile_n/ui_ecore_thread_1_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/ui_ecore_thread_1_sd_mn.htm index bfcf679..97e3ee5 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/ui_ecore_thread_1_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/ui_ecore_thread_1_sd_mn.htm @@ -52,29 +52,29 @@ ecore_thread_1_cb(void *data, Evas_Object *obj, void *event_info)    Evas_Object *btn;    Elm_Object_Item *nf_it; -   /* Base Layout */ +   // Base layout    ad->layout = elm_layout_add(ad->win);    elm_layout_theme_set(ad->layout, "layout", "application", "default");    evas_object_size_hint_weight_set(ad->layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);    evas_object_show(ad->layout); -   //Create a Button +   // Create a button    btn = elm_button_add(ad->layout);    elm_object_text_set(btn, "Ecore Thread Main Loop");    evas_object_resize(btn, ELM_SCALE_SIZE(400), ELM_SCALE_SIZE(100));    evas_object_show(btn); -   //Create a thread -   if (!pthread_create(&thread_id, NULL, thread_run, btn)) +   // Create a thread +   if (!pthread_create(&thread_id, NULL, thread_run, btn))       perror("pthread_create!\n"); -   /* Push base layout into naviframe */ +   // Push base layout into naviframe    nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, ad->layout, "empty");    elm_naviframe_item_pop_cb_set(NULL, naviframe_pop_cb, ad); }
      -

      The ecore_thread_main_loop_begin() and ecore_thread_main_loop_end() functions allow you to call the evas_object_move() function in critical sections. The ecore_thread_main_loop_begin() function can block the section for a while, and mutual exclusion is performed in the main loop. Finally, when you exit from current naviframe or window you should correctly handle thread termination (see call of naviframe_pop_cb()).

      +

      The ecore_thread_main_loop_begin() and ecore_thread_main_loop_end() functions allow you to call the evas_object_move() function in critical sections. The ecore_thread_main_loop_begin() function can block the section for a while, and mutual exclusion is performed in the main loop. Finally, when you exit from the current naviframe or window, you must handle the thread termination correctly (see the naviframe_pop_cb() function).

       static void *thread_run(void *arg)
      @@ -110,7 +110,6 @@ static Eina_Bool
       naviframe_pop_cb(void *data, Elm_Object_Item *it)
       {
          void *thread_result;
      -
          thread_finish = EINA_TRUE;
          pthread_join(thread_id, &thread_result);
       
      diff --git a/org.tizen.sampledescriptions/html/mobile_n/ui_ecore_thread_2_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/ui_ecore_thread_2_sd_mn.htm
      index 046e043..8599697 100644
      --- a/org.tizen.sampledescriptions/html/mobile_n/ui_ecore_thread_2_sd_mn.htm
      +++ b/org.tizen.sampledescriptions/html/mobile_n/ui_ecore_thread_2_sd_mn.htm
      @@ -37,9 +37,9 @@
       
       

      Implementation

      -

      The ecore_thread_2_cb() function creates the scene which consists of a button (Evas object) with text. It also creates a thread by using the pthread_create() function.

      +

      The ecore_thread_2_cb() function creates the scene which consists of a button (Evas object) with text. It also creates a thread by using the pthread_create() function.

      -

      A parameter of the pthread_create() function is the thread_run() callback. In the thread_run() callback, the ecore_main_loop_thread_safe_call_sync() function is used with the thread_safe_call_sync_cb() callback. The thread_safe_call_sync_cb() callback is in the critical section, to make threads safe for the main loop. Finally, when you exit from current naviframe or window you should correctly handle thread termination (see call of naviframe_pop_cb()).

      +

      A parameter of the pthread_create() function is the thread_run() callback. In the thread_run() callback, the ecore_main_loop_thread_safe_call_sync() function is used with the thread_safe_call_sync_cb() callback. The thread_safe_call_sync_cb() callback is in the critical section, to make threads safe for the main loop. Finally, when you exit from the current naviframe or window, you must handle the thread termination correctly (see the naviframe_pop_cb() function).

       #include <pthread.h>
      @@ -71,10 +71,10 @@ thread_run(void *arg)
          Evas_Object *btn = arg;
          double t = 0.0;
          Evas_Coord x, y;
      -   
      +
          user_data data;
          data.btn = btn;
      -   
      +
          while (!thread_finish) 
          {
             x = 150 + (150 * sin(t));
      @@ -82,7 +82,7 @@ thread_run(void *arg)
       
             data.x = x;
             data.y = y;
      -      
      +
             ecore_main_loop_thread_safe_call_sync(thread_safe_call_sync_cb, &data);
             usleep(1000);
             t += 0.001;
      @@ -94,11 +94,10 @@ thread_run(void *arg)
          return NULL;
       }
       
      -static Eina_Bool
      +Eina_Bool
       naviframe_pop_cb(void *data, Elm_Object_Item *it)
       {
          void *thread_result;
      -
          thread_finish = EINA_TRUE;
          pthread_join(thread_id, &thread_result);
       
      @@ -109,31 +108,30 @@ void
       ecore_thread_2_cb(void *data, Evas_Object *obj, void *event_info)
       {
          appdata_s *ad = data;
      -
          Evas_Object *btn;
      +
          Elm_Object_Item *nf_it;
       
      -   /* Base Layout */
      +   // Base layout
          ad->layout = elm_layout_add(ad->win);
          elm_layout_theme_set(ad->layout, "layout", "application", "default");
          evas_object_size_hint_weight_set(ad->layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
          evas_object_show(ad->layout);
       
      -   //Create a Button
      +   // Create a button
          btn = elm_button_add(ad->layout);
          elm_object_text_set(btn, "Thread Safe Sync");
          evas_object_resize(btn, ELM_SCALE_SIZE(350), ELM_SCALE_SIZE(100));
          evas_object_show(btn);
       
      -   //Create a thread
      +   // Create a thread
          if (!pthread_create(&thread_id, NULL, thread_run, btn))
             perror("pthread_create!\n");
       
      -   /* Push base layout into naviframe */
      +   // Push base layout into naviframe
          nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, ad->layout, "empty");
          elm_naviframe_item_pop_cb_set(nf_it, naviframe_pop_cb, ad);
       }
      -
       
      diff --git a/org.tizen.sampledescriptions/html/mobile_n/ui_ecore_thread_3_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/ui_ecore_thread_3_sd_mn.htm index f538196..0e087ef 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/ui_ecore_thread_3_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/ui_ecore_thread_3_sd_mn.htm @@ -88,7 +88,7 @@ thread_run(void *arg)       if (thread_finish)       {          thread_finish = EINA_FALSE; -         pthread_mutex_unlock(&lock); //unlock before break +         pthread_mutex_unlock(&lock); // Unlock before break          break;       }       pthread_mutex_unlock(&lock); diff --git a/org.tizen.sampledescriptions/html/mobile_n/ui_elmtransit_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/ui_elmtransit_sd_mn.htm index cab0a64..068046b 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/ui_elmtransit_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/ui_elmtransit_sd_mn.htm @@ -52,7 +52,7 @@ elm_transit_object_add(transit, btn);

      The following code snippet gives the transit effects, such as translation or rotation. In addition, it enables you to set options for the transit. The elm_transit_repeat_times_set() function sets the total animation time. The default count is 1, and the number of repeats is 3. So the total number of repeats is 4. The elm_transit_auto_reverse_set() function sets whether the effect is reversed. If you set the number by 1, the effect is reversed. The elm_transit_duration_set() function sets the time for how long the effect lasts.

      -elm_transit_effect_translation_add(transit,0, 0, 200, 200);
      +elm_transit_effect_translation_add(transit, 0, 0, 200, 200);
       elm_transit_effect_rotation_add(transit, 0, 180);
       elm_transit_repeat_times_set(transit, 3);
       elm_transit_auto_reverse_set(transit, 1);
      diff --git a/org.tizen.sampledescriptions/html/mobile_n/ui_email_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/ui_email_sd_mn.htm
      index a573c61..4e41a65 100644
      --- a/org.tizen.sampledescriptions/html/mobile_n/ui_email_sd_mn.htm
      +++ b/org.tizen.sampledescriptions/html/mobile_n/ui_email_sd_mn.htm
      @@ -133,7 +133,6 @@ The create_genlist()
       	
       
      -	[UI Sample] Image Sample Sample Overview  
      +	[UI Sample] Image Sample Overview  
       
       
       
      diff --git a/org.tizen.sampledescriptions/html/mobile_n/ui_inlist_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/ui_inlist_sd_mn.htm
      index 1cb191c..1b049e8 100644
      --- a/org.tizen.sampledescriptions/html/mobile_n/ui_inlist_sd_mn.htm
      +++ b/org.tizen.sampledescriptions/html/mobile_n/ui_inlist_sd_mn.htm
      @@ -64,6 +64,7 @@ int sort_cb(const void *d1, const void *d2)
          l2 = d2;
          x1 = EINA_INLIST_CONTAINER_GET(l1, struct my_struct);
          x2 = EINA_INLIST_CONTAINER_GET(l2, struct my_struct);
      +
          return x1->a - x2->a;
       }
       
      @@ -121,7 +122,7 @@ create_base_gui(appdata_s *ad)
       
          while (list)
          {
      -      struct my_struct *aux = EINA_INLIST_CONTAINER_GET(list,struct my_struct);
      +      struct my_struct *aux = EINA_INLIST_CONTAINER_GET(list, struct my_struct);
             list = eina_inlist_remove(list, list);
             free(aux);
          }
      diff --git a/org.tizen.sampledescriptions/html/mobile_n/ui_job_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/ui_job_sd_mn.htm
      index a9aa415..a27f93c 100644
      --- a/org.tizen.sampledescriptions/html/mobile_n/ui_job_sd_mn.htm
      +++ b/org.tizen.sampledescriptions/html/mobile_n/ui_job_sd_mn.htm
      @@ -11,7 +11,7 @@
       	
       	
       
      -	[UI Sample] Job Sample Sample Overview  
      +	[UI Sample] Job Sample Overview  
       
       
       
      @@ -28,7 +28,7 @@
       
       

      The Job sample shows how an Ecore_Job can be added, how it can be deleted, and how they always execute in the added order.

      -

      At first, one callback function is declared, which prints strings passed to it in the data pointer. In the main function, jobs are added using callback mentioned above.

      +

      At first, a callback function is declared, printing strings passed to it in the data pointer. In the main function, jobs are added using the callback.

      To see the process, dlogutil in the sdb shell is used. In the sdb shell, enter dlogutil [LOGTAG].

      @@ -36,7 +36,7 @@
       sh-4.1# dlogutil job
      -arc = 2, optind = 1 ,Kb 0, rotate 4
      +arc = 2, optind = 1, Kb 0, rotate 4
       --------- beginning of /dev/log_system
       --------- beginning of /dev/log_main
       D/job     ( 5389): Created jobs 1, 2, 3.
      @@ -95,7 +95,7 @@ create_base_gui(appdata_s *ad)
          // Show the window after the base GUI is set up 
          evas_object_show(ad->win);
       
      -   // job 
      +   // Job 
          Ecore_Job *job1, *job2, *job3;
          char *str1 = "Job 1 started.";
          char *str2 = "Job 2 started.";
      diff --git a/org.tizen.sampledescriptions/html/mobile_n/ui_language_change_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/ui_language_change_sd_mn.htm
      index 7493e3b..7de7cb5 100644
      --- a/org.tizen.sampledescriptions/html/mobile_n/ui_language_change_sd_mn.htm
      +++ b/org.tizen.sampledescriptions/html/mobile_n/ui_language_change_sd_mn.htm
      @@ -87,6 +87,7 @@ timer_cb(void *data)
       {
          appdata_s *ad = data;
          ad->count++;
      +
          return ECORE_CALLBACK_RENEW;
       }
      diff --git a/org.tizen.sampledescriptions/html/mobile_n/ui_layout_samples_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/ui_layout_samples_sd_mn.htm index 4ce2c76..be1bc01 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/ui_layout_samples_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/ui_layout_samples_sd_mn.htm @@ -24,7 +24,7 @@

      Mobile native

    -

    [UI Sample] LayoutSample Overview

    +

    [UI Sample] LayoutSample Sample Overview

    The [UI Sample] LayoutSample application demonstrates how to make a common layout, such as an edit field, no content, or search bar. Since Tizen provides some common layouts, you do not need to make the layouts yourself.

    diff --git a/org.tizen.sampledescriptions/html/mobile_n/ui_setting_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/ui_setting_sd_mn.htm index ecbd803..0cdf752 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/ui_setting_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/ui_setting_sd_mn.htm @@ -105,6 +105,7 @@ keydown_cb(void *data, int type, void *event)    {       // Hide the window       elm_win_lower(ad->win); +       return ECORE_CALLBACK_DONE;    }    else if (ev->keyname && !strcmp(ev->keyname, KEY_MORE)) @@ -116,6 +117,7 @@ keydown_cb(void *data, int type, void *event)          evas_object_del(ad->popup);          ad->popup = NULL;       } +       return ECORE_CALLBACK_DONE;    } diff --git a/org.tizen.sampledescriptions/html/mobile_n/ui_theme_extension_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/ui_theme_extension_sd_mn.htm index b8d73af..e60da03 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/ui_theme_extension_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/ui_theme_extension_sd_mn.htm @@ -141,8 +141,44 @@ create_content(appdata_s *ad)
    -
    -
    + 
    +    
    +    
    +    
    +   
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    + 
        group
        {
           name: "elm/button/base/default";
    @@ -223,15 +259,13 @@ create_content(appdata_s *ad)
                 {
                    state: "disabled" 0.0;
                    inherit: "default" 0.0;
    -               visible:0;
    +               visible: 0;
                 }
              }
              part
              {
                 name: "padding_left_top";
    -...
    -...
    -...
    + 
           programs
           {
              program
    @@ -323,9 +357,7 @@ create_content(appdata_s *ad)
                 name: "touch_sound";
                 action: RUN_PLUGIN "touch_sound";
              }
    -...
    -...
    -...
    + 
              program
              {
                 name: "disable";
    @@ -355,13 +387,13 @@ create_content(appdata_s *ad)
     #define BUTTON_ICON_HEIGHT 46
     #define BUTTON_ICON_WIDTH 46
     #define BUTTON_TEXT_SIZE 30
    -
    + 
     #define STYLE_TAGS \
        tag:  "br" "\n";\
        tag:  "ps" "ps";\
        tag:  "tab" "\t";\
        tag:  "b" "+ font_weight=Bold";
    -
    + 
     styles
     {
        style
    @@ -383,7 +415,7 @@ styles
           STYLE_TAGS
        }
     }
    -
    + 
     collections
     {
        group
    @@ -399,6 +431,7 @@ collections
              image: "green.png" COMP;
              image: "red.png" COMP;
           }
    + 
           parts
           {
              part
    @@ -418,6 +451,7 @@ collections
                    visible: 0;
                 }
              }
    + 
              part
              {
                 name: "bg";
    @@ -439,42 +473,38 @@ collections
                 {
                    state: "disabled" 0.0;
                    inherit: "default" 0.0;
    -               visible:0;
    +               visible: 0;
                 }
              }
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
              part
              {
                 name: "padding_left_top";
    -...
    -...
    -...
    + 
           programs
           {
              program
    @@ -508,6 +538,7 @@ collections
                    }
                 }
              }
    + 
              program
              {
                 name: "unpressed";
    @@ -539,36 +570,33 @@ collections
                    }
                 }
              }
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -...
    -...
    -...
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
    + 
              program
              {
                 name: "disable";
    @@ -587,9 +615,8 @@ collections
                 target: "bg";
                 target: "elm.text";
              }
    -
    -
    -
    + 
    + 
     
    diff --git a/org.tizen.sampledescriptions/html/mobile_n/voice_control_elm_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/voice_control_elm_sd_mn.htm index 25becc2..6d3fe61 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/voice_control_elm_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/voice_control_elm_sd_mn.htm @@ -11,7 +11,7 @@ - Voice Control for EFL Widgets Sample Overview + Voice Control for EFL Components Sample Overview @@ -24,164 +24,138 @@

    Mobile native

    -

    Voice Control for EFL Widgets Sample Overview

    +

    Voice Control for EFL Components Sample Overview

    -

    You can register voice commands for EFL-supported UI components to allow the user to interact with visible UI components inside the application using their voice commands. The Voice control elementary library recognizes spoken commands from registered UI components.

    +

    The Voice Control for EFL Components application demonstrates how you can register voice commands for EFL-supported UI components. The voice commands allow the user to interact with visible UI components inside the application with their voice. The Voice Control elementary library recognizes spoken commands from registered UI components.

    -

    You have no need to consider how to recognize voice commands or start and stop the recognition process. A preloaded voice application handles the process automatically. You just need to set the command and hint on every EFL elementary component on which you want to use the voice command.

    +

    You do not need to consider how to recognize voice commands or start and stop the recognition process. A preloaded voice recognition application handles the process automatically. You only need to set the command and hint on every EFL elementary component on which you want to use the voice command.

    + +

    The following figure illustrates the main view of the Voice Control for EFL Components. On the right side, the application screen has the Voice Control elementary features enabled. When the screen is updated, any UI components that have a registered command and hint are shown with a voice tooltip (hint). When the user speaks the hint, the callback function related to the UI component is executed.

    Figure: Application view

    -

    TTS sample application view

    -

    -

    The following figure illustrates the application screen when the Voice Control elementary features are enabled. When the screen is updated, any UI components that have a registered command and hint are shown with a voice tooltip (hint). When the user speaks the hint, the callback function of the action related to the UI component is executed.

    -

    -

    Figure: Application view with hints

    -

    TTS sample application view

    +

    Application view Application view

    Implementation

    -

    To implement the voice-control-elm application:

    +

    To implement the Voice Control elementary application:

    1. Create the layout for the application. -

      For this sample application, native widgets are applied include button, checkbox, genlist, toolbar, slider and the structure appdata_s and some global value have information for those widget implementation. However, this description concentrates on how to use voice-control-elm api not for native widget usage. If you need support or more information for these widget, "UI Components" sample application can help.

      +

      For this sample application, the applied native components include a button, checkbox, genlist, toolbar, and slider. The appdata_s structure and some global values have information for implementing those components. This sample concentrates on how to use the Voice Control elementary; for more information on native UI component usage, see the UI Components sample.

    2. Include the <voice_control_elm.h> header file in your application: -
      #include <voice_control_elm.h>
      +
      +#include <voice_control_elm.h>
      +
    3. -
    4. Initialize the Voice Control Elementary library with the vc_elm_initialize() function: -
      static bool app_create(void *data)
      -{
      -   int ret;
      -   ret = vc_elm_initialize();
      -   if (VC_ELM_ERROR_NONE != ret)
      -   {
      -      // Error handling
      -   }
      -}
      +
    5. Initialize the Voice Control elementary library with the vc_elm_initialize() function: +
      +static bool 
      +app_create(void *data)
      +{
      +   int ret;
      +   ret = vc_elm_initialize();
      +   if (VC_ELM_ERROR_NONE != ret)
      +   {
      +      // Error handling
      +   }
      +}
      +
    6. Create a handle for each UI component for which you want to set a command and hint. Use the vc_elm_create_object() function to create a handle for Evas_Objects, and the vc_elm_create_item() function for Elm_Object_Items.
      -static vc_elm_h first_view[7];
      -static vc_elm_h tabbar_view[2];
      -
      -static Evas_Object *create_basic(appdata_s *ad)
      -{
      -   int ret;
      -   Evas_Object *button; 
      -   // ...
      +static vc_elm_h first_view[7];
      +static vc_elm_h tabbar_view[2];
      +
      +static Evas_Object*
      +create_basic(appdata_s *ad)
      +{
      +   int ret;
      +   Evas_Object *button; 
       	
      -   // Creating Evas_Object button
      -   button = elm_button_add(ad->win);
      -   ret = vc_elm_create_object(button, &first_view[0]);
      -   if (VC_ELM_ERROR_NONE != ret) 
      -   {
      -      // Error handling
      -   }
      -   // ...
      -}
      -
      -static Evas_Object *create_toolbar(appdata_s *ad)
      -{
      -   int ret;
      -   Evas_Object *toolbar;
      -   Elm_Object_Item *it;
      -   // ...
      -
      -   // Creating Evas_Object button
      -   toolbar = elm_toolbar_add(ad->nf);
      -   it = elm_toolbar_item_append(toolbar, NULL, "First", toolbar_it_cb, ad);
      -   ret = vc_elm_create_item(it, &tabbar_view[0]);
      -   if (VC_ELM_ERROR_NONE != ret) 
      -   {
      -      // Error handling
      -   }
      -   // ...
      -}
      +   // Creating Evas_Object button
      +   button = elm_button_add(ad>>win);
      +   ret = vc_elm_create_object(button, &first_view[0]);
      +   if (VC_ELM_ERROR_NONE != ret) 
      +   {
      +      // Error handling
      +   }
      +}
      +
      +static Evas_Object*
      +create_toolbar(appdata_s *ad)
      +{
      +   int ret;
      +   Evas_Object *toolbar;
      +   Elm_Object_Item *it;
      +
      +   // Creating Elm_Object_Item toolbar
      +   toolbar = elm_toolbar_add(ad->nf);
      +   it = elm_toolbar_item_append(toolbar, NULL, "First", toolbar_it_cb, ad);
      +   ret = vc_elm_create_item(it, &tabbar_view[0]);
      +   if (VC_ELM_ERROR_NONE != ret) 
      +   {
      +      // Error handling
      +   }
      +}
       
    7. - -
    8. When voice control is no longer needed, destroy the handle and deinitialize the library: -
      static void nf_back_cb(void *data, Evas_Object *obj, void *event_info)
      -{
      -   int index;
      -   // ...
      -   for (index = 0; index < 7; ++index);
      -      vc_elm_destroy(first_view[index]);
      -   // ...
      -}
      -
      -static void app_terminate(void *data) 
      -{
      -   vc_elm_deinitialize();
      -}
      -
    9. - -
    10. Use the handle created for a specific UI component to set a command the user must speak in order to perform actions on the UI component: +
    11. Use the handle created for a specific UI component to set a command the user must speak to perform actions on the UI component:
      -static vc_elm_h first_view[7];
      -static vc_elm_h tabbar_view[2];
      +static vc_elm_h first_view[7];
      +static vc_elm_h tabbar_view[2];
       
      -static Evas_Object *create_basic(appdata_s *ad)
      -{
      -   Evas_Object *button; 
      +static Evas_Object*
      +create_basic(appdata_s *ad)
      +{
      +   Evas_Object *button; 
       	
      -   // Creating Evas_Object button
      -   button = elm_button_add(ad->win);
      -   vc_elm_create_object(button, &first_view[0]);,
      -   vc_elm_set_command(first_view[0], &first_view_cmd[0]);
      -   // ...
      -}
      +   // Creating Evas_Object button
      +   button = elm_button_add(ad->win);
      +   vc_elm_create_object(button, &first_view[0]);
      +   vc_elm_set_command(first_view[0], &first_view_cmd[0]);
      +
       
    12. To show the command on the screen as a tooltip, set a hint (tooltip) for the UI component:
      -static vc_elm_h first_view[7];
      -static vc_elm_h tabbar_view[2];
      -
      -static Evas_Object *create_basic(appdata_s *ad)
      -{
      -   Evas_Object *button; 
      -	
      -   // Creating Evas_Object button
      -   button = elm_button_add(ad->win);
      -   vc_elm_create_object(button, &first_view[0]);,
      -   vc_elm_set_command(first_view[0], &first_view_cmd[0]);
      -   vc_elm_set_command_hint(first_view[0], &first_view_cmd[0]);
      -   // ...
      -}
      +   vc_elm_set_command_hint(first_view[0], &first_view_cmd[0]);
       
    13. Set the hint direction and offset (X and Y coordinates).

      By default, the hint tooltip is shown so that it does not cover the underlying UI component and does not intersect with other hints.

      -static vc_elm_h first_view[7];
      -static vc_elm_h tabbar_view[2];
      -
      -static Evas_Object *create_basic(appdata_s *ad)
      -{
      -   Evas_Object *button; 
      -	
      -   // Creating Evas_Object button
      -   button = elm_button_add(ad->win);
      -   vc_elm_create_object(button, &first_view[0]);,
      -   vc_elm_set_command(first_view[0], &first_view_cmd[0]);
      -   vc_elm_set_command_hint(first_view[0], &first_view_cmd[0]);
      -   vc_elm_set_command_hint_direction(first_view[0], VC_ELM_DIRECTION_CENTER);
      -   // ...
      -}
      +   vc_elm_set_command_hint_direction(first_view[0], VC_ELM_DIRECTION_CENTER);
      +}
       
      -
    14. +
    15. When voice control is no longer needed, destroy the handle and deinitialize the library: +
      +static void 
      +nf_back_cb(void *data, Evas_Object *obj, void *event_info)
      +{
      +   int index;
      +
      +   for (index = 0; index < 7; ++index);
      +      vc_elm_destroy(first_view[index]);
      +}
      +
      +static void 
      +app_terminate(void *data) 
      +{
      +   vc_elm_deinitialize();
      +}
      +
      +
    diff --git a/org.tizen.sampledescriptions/html/mobile_n/voice_control_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/voice_control_sd_mn.htm index 0f4090c..490bda4 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/voice_control_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/voice_control_sd_mn.htm @@ -12,11 +12,7 @@ Voice Control Sample Overview - + @@ -24,198 +20,188 @@
    -
    +

    Mobile native

    Voice Control Sample Overview

    -

    The purpose of this sample application is to demonstrate how -to use the voice control API to initialize, deinitialize, add commands, remove -commands and retrieve valuable infromation.

    -

    The following figure illustrates the main view of the Voice -Control sample application and how it works. The application -can register commands using 'Select Command List' menu. If developer -selects first command list on first row, the 'play, stop, pause, rewind' -commands will be registered. And start and stop voice control can be triggered -by voice manager application. The voice manager application which is created by -manufacturer can be executed. In case of SDK mobile, you can find it as voice -button on quick panel as below 3rd images. When you start voice control pressing -voice button, voice manager application will be shown on bottom of the screen. -

    - -

    Figure: Voice control Application main view

    -

    Voice Control sample application view

    +

    The Voice Control sample application demonstrates how you can use the Voice control API to initialize, deinitialize, add, and remove voice commands and retrieve information.

    + +

    The following figure illustrates the views of the Voice Control.

    + +

    Figure: Voice control views

    +

    Voice Control views

    + +

    To register commands for voice control, click Select Command List and select the commands you want to register (command lists are shown in the second screenshot above).

    + +

    A voice manager application (created by the device manufacturer) is used to start and stop the voice control. To start or stop the voice control, use the voice button in the quick panel (third screenshot above).

    + +

    After the voice control has been start from the quick panel voice button, the voice manager application is shown at the bottom of the Voice Control screen (last screenshot above).

    Implementation

    To implement the Voice Control application:

      -
    1. Initialize Voice Control -

      For using Voice control library, you should initialize Voice control at the -first, in the init_vc() function. -It can initialize voice control and set the callback functions for the state changed and -receiving result from Voice control Service. And then, the application try to connect to -Voice control Service for handshaking information and data by vc_prepare() function. -

      - +
    2. Initialize voice control. +

      To use the Voice Control library, you must initialize voice control using the init_vc() function.

      +

      The function sets callback functions to receive the state change events and results from the Voice Control service. The application tries to connect to the Voice Control service for handshaking information and data using the vc_prepare() function.

      -static void __vc_service_state_changed_cb(vc_service_state_e previous, vc_service_state_e current, void* user_data)
      +static void 
      +__vc_service_state_changed_cb(vc_service_state_e previous, vc_service_state_e current, void* user_data)
       {
      -    ...
      +   // Callback actions
       }
       
      -static void __vc_result_cb(vc_result_event_e event, vc_cmd_list_h vc_cmd_list, const char* result, void *user_data)
      +static void 
      +__vc_result_cb(vc_result_event_e event, vc_cmd_list_h vc_cmd_list, const char* result, void *user_data)
       {
      -    ...
      +   // Callback actions
       }
       
      -static int init_vc(appdata_s *ad)
      +static int 
      +init_vc(appdata_s *ad)
       {
      -    ...
      -    ret = vc_initialize();
      -    if (VC_ERROR_NONE != ret) {
      -        ...
      -        return -1;
      -    }
      -
      -    ret = vc_set_result_cb(__vc_result_cb, ad);
      -    if (VC_ERROR_NONE != ret) {
      -        ...
      -        return -1;
      -    }
      -
      -    ret = vc_set_service_state_changed_cb(__vc_service_state_changed_cb, ad);
      -    if (VC_ERROR_NONE != ret) {
      -        ...
      -    return -1;
      -    }
      -
      -    ret = vc_prepare();
      -    if (VC_ERROR_NONE != ret) {
      -        ...
      -        return -1;
      -    }
      -
      -    return 0;
      +   ret = vc_initialize();
      +   if (VC_ERROR_NONE != ret) 
      +   {
      +      return -1;
      +   }
      +
      +   ret = vc_set_result_cb(__vc_result_cb, ad);
      +   if (VC_ERROR_NONE != ret) 
      +   {
      +      return -1;
      +   }
      +
      +   ret = vc_set_service_state_changed_cb(__vc_service_state_changed_cb, ad);
      +   if (VC_ERROR_NONE != ret) 
      +   {
      +      return -1;
      +   }
      +
      +   ret = vc_prepare();
      +   if (VC_ERROR_NONE != ret) 
      +   {
      +      return -1;
      +   }
      +
      +   return 0;
       }
      -
       
    3. -
    4. Deinitialize TTS. -

      The deinit_VC() is called to disconnect service -and to destroy command list when the application is finalized. If you want to only disconnect service, the -vc_unprepare() helps you. -

      - +
    5. Create and set the command list. +

      To set commands, create a command list and add a command on the list. You can also remove commands from the list or change the list. When you no longer need the commands, destroy the list.

      -static void __vc_destroy_command_list(void)
      -{
      -    if (0 != vc_cmd_list_destroy(g_cmd_list, true)) {
      -        ...
      -    }
      -}
      -
      -static void deinit_vc(appdata_s *ad)
      +static void 
      +__vc_create_command_list(cmd_list_index_e cmd_list_idx)
       {
      -    __vc_destroy_command_list();
      -
      -    if (0 != vc_deinitialize()) {
      -        ...
      -    }
      +   if (0 != vc_cmd_list_create(&g_cmd_list)) 
      +   {
      +      // Take action
      +   }
      +
      +   int i;
      +   for (i = 0; i < MAX_COMMAND_NUM; i++) 
      +   {
      +      vc_cmd_h cmd;
      +      if (0 != vc_cmd_create(&cmd)) 
      +      {
      +         // Take action
      +      }
      +      if (0 != vc_cmd_set_command(cmd, "play")) 
      +      {
      +         vc_cmd_destroy(cmd);
      +      }
      +      if (0 != vc_cmd_set_type(cmd, VC_COMMAND_TYPE_FOREGROUND)) 
      +      {
      +         vc_cmd_destroy(cmd);
      +      }
      +      if (0 != vc_cmd_list_add(g_cmd_list, cmd)) 
      +      {
      +         vc_cmd_destroy(cmd);
      +      }
      +   }
      +
      +   if ( 0 != vc_set_command_list(g_cmd_list, VC_COMMAND_TYPE_FOREGROUND)) 
      +   {
      +      vc_cmd_list_destroy(g_cmd_list, true);
      +   }
       }
       
    6. -
    7. Create and set command list -

      If you want to set commands, you need to create command list and add command on command list. -And you can also remove commands on the command list or change the command list. -And if you don't want to use commands any more, you can destroy command list. -

      - +
    8. Check the service state. +

      If you set the service state change callback, you can check the voice control service state: ready, recording, or processing. Based on the service state, you can change the application mode, state, and look and feel.

      -static void __vc_create_command_list(cmd_list_index_e cmd_list_idx)
      +static void 
      +__vc_service_state_changed_cb(vc_service_state_e previous, vc_service_state_e current, void* user_data)
       {
      -    if (0 != vc_cmd_list_create(&g_cmd_list)) {
      -        ...
      -    }
      -
      -    int i;
      -    for (i = 0; i < MAX_COMMAND_NUM; i++) {
      -        vc_cmd_h cmd;
      -        if (0 != vc_cmd_create(&cmd)) {
      -            ...
      -        }
      -        if (0 != vc_cmd_set_command(cmd, "play")) {
      -            ...
      -            vc_cmd_destroy(cmd);
      -        }
      -        if (0 != vc_cmd_set_type(cmd, VC_COMMAND_TYPE_FOREGROUND)) {
      -            ...
      -            vc_cmd_destroy(cmd);
      -        }
      -        if (0 != vc_cmd_list_add(g_cmd_list, cmd)) {
      -            ...
      -            vc_cmd_destroy(cmd);
      -        }
      -    }
      -
      -    if ( 0 != vc_set_command_list(g_cmd_list, VC_COMMAND_TYPE_FOREGROUND)) {
      -        ...
      -        vc_cmd_list_destroy(g_cmd_list, true);
      -    }
      +   // Take action
      +}
      +
      +static int 
      +init_vc(appdata_s *ad)
      +{
      +   ret = vc_set_service_state_changed_cb(__vc_service_state_changed_cb, ad);
      +   if (VC_ERROR_NONE != ret) 
      +   {
      +      return -1;
      +   }
      +
      +   return 0;
       }
       
    9. -
    10. Get service state changed -

      If you set service state changed callback, you can check -voice control service state. It shows you that voice service control is ready, -recording or processing state. Using this service state, you can change -application's mode, state or look&feel. -

      +
    11. Get a recognized result. +

      If you want to get the recognized command, you must set a result callback function.

      +

      You can get both the recognized result text and a command list with command information.

      -static void __vc_service_state_changed_cb(vc_service_state_e previous, vc_service_state_e current, void* user_data)
      +static void 
      +__vc_result_cb(vc_result_event_e event, vc_cmd_list_h vc_cmd_list, const char* result, void *user_data)
       {
      -    ...
      +   // Take action
       }
       
      -static int init_vc(appdata_s *ad)
      +static int 
      +init_vc(appdata_s *ad)
       {
      -    ...
      -    ret = vc_set_service_state_changed_cb(__vc_service_state_changed_cb, ad);
      -    if (VC_ERROR_NONE != ret) {
      -        return -1;
      -    }
      -    ...
      -    return 0;
      +   ret = vc_set_result_cb(__vc_result_cb, ad);
      +   if (VC_ERROR_NONE != ret) 
      +   {
      +      return -1;
      +   }
      +
      +   return 0;
       }
       
    12. -
    13. Get recognized result -

      If you want to get the recognized command, you should set result callback function. -You can get not only recognized result text, but also command list which has command information. -

      - +
    14. Deinitialize voice control. +

      The deinit_vc() function is called to disconnect the service and to destroy the command list when the application is terminated. If you only want to disconnect the service, use the vc_unprepare() function.

      -static void __vc_result_cb(vc_result_event_e event, vc_cmd_list_h vc_cmd_list, const char* result, void *user_data)
      +static void 
      +__vc_destroy_command_list(void)
       {
      -    ...
      +   if (0 != vc_cmd_list_destroy(g_cmd_list, true)) 
      +   {
      +      // Take action
      +   }
       }
       
      -static int init_vc(appdata_s *ad)
      +static void 
      +deinit_vc(appdata_s *ad)
       {
      -    ...
      -    ret = vc_set_result_cb(__vc_result_cb, ad);
      -    if (VC_ERROR_NONE != ret) {
      -        return -1;
      -    }
      -    ...
      -    return 0;
      +   __vc_destroy_command_list();
      +
      +   if (0 != vc_deinitialize()) 
      +   {
      +      // Take action
      +   }
       }
       
    15. diff --git a/org.tizen.sampledescriptions/html/mobile_n/volume_sd_mn.htm b/org.tizen.sampledescriptions/html/mobile_n/volume_sd_mn.htm index 65ab0fe..6316e5c 100644 --- a/org.tizen.sampledescriptions/html/mobile_n/volume_sd_mn.htm +++ b/org.tizen.sampledescriptions/html/mobile_n/volume_sd_mn.htm @@ -34,12 +34,11 @@

      Prerequisites

      -

      The following privilege must be set:

      +

      To ensure proper application execution, the following privilege must be set:

      • http://tizen.org/privilege/volume.set
      -

      Implementation

      The application uses the volume_controller_type enum to manage different volume types easily:

      diff --git a/org.tizen.sampledescriptions/html/mobile_w/archivemanager_mw.htm b/org.tizen.sampledescriptions/html/mobile_w/archivemanager_mw.htm index 22df4c2..ca26b15 100644 --- a/org.tizen.sampledescriptions/html/mobile_w/archivemanager_mw.htm +++ b/org.tizen.sampledescriptions/html/mobile_w/archivemanager_mw.htm @@ -359,7 +359,6 @@ function onKeyboardClosed() e.listeners( {    'helpers.keyboard.closed': onKeyboardClosed, -   (...) }); @@ -398,7 +397,6 @@ function showStandardMode(options) function registerRoutes() {    router.register('views/modes/standard/show', showStandardMode); -   (...) } @@ -424,17 +422,12 @@ function createArchive(name, sizes) function onFolderSizeRead(ev) { -   createArchive( -      nameView.getName(), -      ev.detail.sizes -   ); +   createArchive(nameView.getName(), ev.detail.sizes); } e.listeners( { -   (...)    'model.filesystem.foldersize.read': onFolderSizeRead, -   (...) });
    16. @@ -523,6 +516,7 @@ function addToArchive(files, archive, progress)    if (!file)    {       e.fire('completed', progress); +       return;    } @@ -621,6 +615,7 @@ function onFilesListClick(ev)    if (mode === ARCHIVE_MODE)    {       e.fire('selection.changed'); +       return;    } @@ -689,7 +684,6 @@ function onFilelistElementSelected(ev) e.listen( {    'views.filelist.selected': onFilelistElementSelected, -   (...) }); @@ -895,13 +889,12 @@ var extractPreviewBtn = null; function onExtractPreviewBtnClick() { -   popupView.showExtractConfirm( fileList.getPath().getFullArchiveName() ); +   popupView.showExtractConfirm(fileList.getPath().getFullArchiveName()); } function bindEvents() { -   extractPreviewBtn.addEventListener('click', onExtractPreviewBtnClick -   ); +   extractPreviewBtn.addEventListener('click', onExtractPreviewBtnClick); } function init() diff --git a/org.tizen.sampledescriptions/html/mobile_w/bluetoothchat_mw.htm b/org.tizen.sampledescriptions/html/mobile_w/bluetoothchat_mw.htm index 9cb8f1a..0022b9f 100644 --- a/org.tizen.sampledescriptions/html/mobile_w/bluetoothchat_mw.htm +++ b/org.tizen.sampledescriptions/html/mobile_w/bluetoothchat_mw.htm @@ -11,7 +11,7 @@ - BluetoothChat Overview + BluetoothChat Sample Overview @@ -34,7 +34,7 @@
    -

    BluetoothChat Overview

    +

    BluetoothChat Sample Overview

    The BluetoothChat sample application demonstrates how you can create a chat application that uses a Bluetooth connection for sending messages.

    For information on creating the sample application project in the IDE, see Creating Sample Applications, and on the coding of the sample application, see Bluetooth Chat task.

    The following figure illustrates the main screens of the BluetoothChat.

    @@ -485,9 +485,7 @@ searchServer: function ClientModel_searchServer()          /* Handle searching finished event */       }    }; -   this.client.adapter.discoverDevices( -   discoverDevicesSuccessCallback, -   function onDiscoverDevicesError() +   this.client.adapter.discoverDevices(discoverDevicesSuccessCallback, function onDiscoverDevicesError()    {       /* Handle searching error */    }); diff --git a/org.tizen.sampledescriptions/html/mobile_w/calculator_mw.htm b/org.tizen.sampledescriptions/html/mobile_w/calculator_mw.htm index 1477198..101aa96 100644 --- a/org.tizen.sampledescriptions/html/mobile_w/calculator_mw.htm +++ b/org.tizen.sampledescriptions/html/mobile_w/calculator_mw.htm @@ -543,6 +543,7 @@ addDecimal: function addDecimal() removeLastChar: function removeLastChar(str) {    'use strict'; +    return str.substring(0, str.length - 1).replace(this.EXPONENTIAL_REGEXP, ''); }, @@ -753,7 +754,7 @@ calculate: function calculate() calculate: function calculate() {    'use strict'; -   /* jslint evil:true */ +   /* jslint evil: true */    /* jslint unparam: true */    var evaluation = '',        result, @@ -764,6 +765,7 @@ calculate: function calculate()           {              throw new DivisionByZeroError();           } +           return '/ ' + number;        }; diff --git a/org.tizen.sampledescriptions/html/mobile_w/calendar_mw.htm b/org.tizen.sampledescriptions/html/mobile_w/calendar_mw.htm index 1f7c02d..1c0b12d 100644 --- a/org.tizen.sampledescriptions/html/mobile_w/calendar_mw.htm +++ b/org.tizen.sampledescriptions/html/mobile_w/calendar_mw.htm @@ -160,9 +160,9 @@ function getDaysMatrix(date)

    The Calendar sample application contains a single screen that organizes the calendar data in the monthly view.

    The screen contains the following elements:

      -
    • div element with the month-header id displays the name of the month and the number of the year.
    • -
    • div element with the month-content id displays the days of the selected month.
    • -
    • div element with month-footer id displays the navigation buttons that enable switching between months.
    • +
    • div element with the month-header ID displays the name of the month and the number of the year.
    • +
    • div element with the month-content ID displays the days of the selected month.
    • +
    • div element with month-footer ID displays the navigation buttons that enable switching between months.
    <!--index.html-->
     <div class="ui-page ui-page-active invisible" id="month-page">
    @@ -265,12 +265,10 @@ function markDay(date, className)
     {
        var dateString = typeof date === 'string' ?
                 date : d.toDataString(date),
    -      today = document.querySelector(
    -         '[data-date="' + dateString + '"]'
    -      );
    +      today = document.querySelector('[data-date="' + dateString + '"]');
     
        if (today) 
    -	{
    +   {
           today.classList.add(className);
        }
     }
    diff --git a/org.tizen.sampledescriptions/html/mobile_w/calllog_mw.htm b/org.tizen.sampledescriptions/html/mobile_w/calllog_mw.htm
    index 2105a7c..4221fa4 100644
    --- a/org.tizen.sampledescriptions/html/mobile_w/calllog_mw.htm
    +++ b/org.tizen.sampledescriptions/html/mobile_w/calllog_mw.htm
    @@ -11,7 +11,7 @@
     	
     	
     
    -	CallLog Overview  
    +	CallLog Sample Overview  
     
     
     
    @@ -35,7 +35,7 @@
     
    -

    CallLog Overview

    +

    CallLog Sample Overview

    The CallLog sample application demonstrates how you can view the detailed call history from the device or from a specific caller.

    For information on creating the sample application project in the IDE, see Creating Sample Applications, and on the coding of the sample application, see Call Log task.

    The following figure illustrates the main screens of the CallLog.

    @@ -52,15 +52,16 @@
  • An active SIM card
  • If the call history is empty, the application cannot be used.
  • The application does not work on the Emulator.
  • -
  • +
  • To ensure proper application execution, the following privileges must be set:

    • http://tizen.org/privilege/application.launch
    • http://tizen.org/privilege/callhistory.read
    • http://tizen.org/privilege/callhistory.write
    • http://tizen.org/privilege/contact.read
    • -
  • + +

    Source Files

    You can create and view the sample application project including the source files in the IDE.

    @@ -228,8 +229,8 @@ showCallHistory: function Ui_showCallHistory(callEntries)    /* Return duplicated entries */    function filterForSameEntry(element)    { -      return self.getNumber(current) === self.getNumber(element) && -      current.direction === element.direction; +      return self.getNumber(current) === self.getNumber(element) +             && current.direction === element.direction;    }     for (i = 0; i < len; i = i + 1) @@ -304,10 +305,7 @@ makeCall: function App_makeCall(phoneNumber) {    var self = this,        appControl = new tizen.ApplicationControl('http://tizen.org/appcontrol/operation/call', 'tel:' + phoneNumber); -   tizen.application.launchAppControl( -   appControl, -   null, -   function onCallSuccess() +   tizen.application.launchAppControl(appControl, null, function onCallSuccess()    {       setTimeout(function unlockButtons()       { diff --git a/org.tizen.sampledescriptions/html/mobile_w/chatter_mw.htm b/org.tizen.sampledescriptions/html/mobile_w/chatter_mw.htm index 548a072..62708c3 100644 --- a/org.tizen.sampledescriptions/html/mobile_w/chatter_mw.htm +++ b/org.tizen.sampledescriptions/html/mobile_w/chatter_mw.htm @@ -11,7 +11,7 @@ - Chatter Overview + Chatter Sample Overview @@ -34,7 +34,7 @@
    -

    Chatter Overview

    +

    Chatter Sample Overview

    The Chatter sample application demonstrates how you can send and receive text messages between devices and view the message history of a specific caller.

    For information on creating the sample application project in the IDE, see Creating Sample Applications, and on the coding of the sample application, see Chatter task.

    The following figure illustrates the main screens of the Chatter.

    @@ -204,6 +204,7 @@ prepareMessages: function Model_prepareMessages(callback)             {                return 1;             } +             return 0;          }          messages.sort(compare); @@ -331,7 +332,7 @@ showContactsLoaded: function App_showContactsLoaded()          {             return -1;          } -         if (a.caller > b.caller) +         if (a.caller > b.caller)          {             return 1;          } @@ -472,10 +473,8 @@ sendMessage: function App_sendMessage(text, numbers)       app.ui.showSendErrorPopup(message);    };    /* Send message */ -   this.model.sendMessage(numbers, text,app.model.prepareMessages.bind( -   app.model, -   app.ui.showMessageChat), -   onError); +   this.model.sendMessage(numbers, text, +                          app.model.prepareMessages.bind(app.model, app.ui.showMessageChat), onError); } @@ -497,10 +496,7 @@ sendMessage: function Model_sendMessage(num, text, onSuc, onErr)    message = new tizen.Message('messaging.sms', {plainBody: text, to: [num]});    try    { -      this.smsService.sendMessage( -      message, -      onSuc, -      function onError(e) +      this.smsService.sendMessage(message, onSuc, function onError(e)       {          onSuc();          console.error( diff --git a/org.tizen.sampledescriptions/html/mobile_w/compass_mw.htm b/org.tizen.sampledescriptions/html/mobile_w/compass_mw.htm index b613fc3..d639121 100644 --- a/org.tizen.sampledescriptions/html/mobile_w/compass_mw.htm +++ b/org.tizen.sampledescriptions/html/mobile_w/compass_mw.htm @@ -11,7 +11,7 @@ - Compass Overview + Compass Sample Overview @@ -33,7 +33,7 @@
    -

    Compass Overview

    +

    Compass Sample Overview

    The Compass sample application demonstrates how you can use the W3C DeviceOrientation Event in your application to monitor the device orientation.

    For information on creating the sample application project in the IDE, see Creating Sample Applications, and on the coding of the sample application, see Compass task.

    The following figure illustrates the main screen of the Compass.

    diff --git a/org.tizen.sampledescriptions/html/mobile_w/contactsexchanger_mw.htm b/org.tizen.sampledescriptions/html/mobile_w/contactsexchanger_mw.htm index 963ee4f..6f91563 100644 --- a/org.tizen.sampledescriptions/html/mobile_w/contactsexchanger_mw.htm +++ b/org.tizen.sampledescriptions/html/mobile_w/contactsexchanger_mw.htm @@ -11,7 +11,7 @@ - ContactsExchanger Overview + ContactsExchanger Sample Overview @@ -35,7 +35,7 @@
    -

    ContactsExchanger Overview

    +

    ContactsExchanger Sample Overview

    The ContactsExchanger sample application demonstrates how you can share contact card details between 2 NFC (Near Field Communication) devices or through an NFC tag.

    For information on creating the sample application project in the IDE, see Creating Sample Applications, and on the coding of the sample application, see Contacts Exchanger task.

    The following figure illustrates the main screens of the ContactsExchanger.

    @@ -420,10 +420,7 @@ $(document).ready(app.init.bind(app));          try          {             newMessage = this.nfc.phoneNumber2NDEF(fullContact); -            target.sendNDEF( -            newMessage, -            this.sucSendToTarget.bind(this), -            this.errSendToTarget.bind(this)); +            target.sendNDEF(newMessage, this.sucSendToTarget.bind(this), this.errSendToTarget.bind(this));          }          catch (e)          { diff --git a/org.tizen.sampledescriptions/html/mobile_w/downloadmanager_mw.htm b/org.tizen.sampledescriptions/html/mobile_w/downloadmanager_mw.htm index cd1f401..7dda0d1 100644 --- a/org.tizen.sampledescriptions/html/mobile_w/downloadmanager_mw.htm +++ b/org.tizen.sampledescriptions/html/mobile_w/downloadmanager_mw.htm @@ -11,7 +11,7 @@ - DownloadManager Overview + DownloadManager Sample Overview @@ -33,7 +33,7 @@
    -

    DownloadManager Overview

    +

    DownloadManager Sample Overview

    The DownloadManager sample application demonstrates how you can asynchronously download the content of an URL to the device storage.

    For information on creating the sample application project in the IDE, see Creating Sample Applications, and on the coding of the sample application, see Download Manager task.

    The following figure illustrates the main screens of the DownloadManager.

    diff --git a/org.tizen.sampledescriptions/html/mobile_w/eventmanager_mw.htm b/org.tizen.sampledescriptions/html/mobile_w/eventmanager_mw.htm index 2a97872..6e7a458 100644 --- a/org.tizen.sampledescriptions/html/mobile_w/eventmanager_mw.htm +++ b/org.tizen.sampledescriptions/html/mobile_w/eventmanager_mw.htm @@ -11,7 +11,7 @@ - EventManager Overview + EventManager Sample Overview @@ -33,7 +33,7 @@
    -

    EventManager Overview

    +

    EventManager Sample Overview

    The EventManager sample application demonstrates how you can add, edit, and delete calendar events in your application.

    For information on creating the sample application project in the IDE, see Creating Sample Applications, and on the coding of the sample application, see Event Manager task.

    The following figure illustrates the main screens of the EventManager.

    @@ -63,11 +63,11 @@
    - + - + @@ -173,7 +173,7 @@ changeListener = /** * Adds a callback for the change listener * @param {object} changeCallback -* @returns {number} Listener id +* @returns {number} Listener ID */ function addChangeListener(changeCallback) { @@ -290,7 +290,8 @@ function add(summary, isAllDay, startDate, endDate, alarm)          alarms: [alarm]       });       defaultCalendar.add(item); -   return item; + +      return item;    }    catch (error)    { @@ -307,7 +308,7 @@ function createAlarm(timeDuration) {    try    { -   return new tizen.CalendarAlarm(timeDuration, 'SOUND'); +      return new tizen.CalendarAlarm(timeDuration, 'SOUND');    }    catch (error)    { @@ -321,7 +322,7 @@ function createAlarm(timeDuration) /* js/models/calendar.js */ /** * Updates the calendar event -* @param {number} id Id of event to update +* @param {number} id ID of the event to update * @param {string} summary Event summary * @param {boolean} isAllDay Is event all day * @param {tizen.TZDate} startDate Event start date @@ -348,7 +349,7 @@ function update(id, summary, isAllDay, startDate, endDate, alarm) /** * Retrieves an event with the given ID from the calendar -* @param {number} id Event id +* @param {number} id Event ID * @returns {tizen.CalendarEvent} Event retrieved from calendar */ function get(id) @@ -369,7 +370,7 @@ function get(id) /* js/models/calendar.js */ /** * Removes an event with the given ID from the calendar. -* @param {number} id Event id +* @param {number} id Event ID */ function remove(id) { diff --git a/org.tizen.sampledescriptions/html/mobile_w/exerciseplanner_mw.htm b/org.tizen.sampledescriptions/html/mobile_w/exerciseplanner_mw.htm index 1851057..d6b7210 100644 --- a/org.tizen.sampledescriptions/html/mobile_w/exerciseplanner_mw.htm +++ b/org.tizen.sampledescriptions/html/mobile_w/exerciseplanner_mw.htm @@ -11,7 +11,7 @@ - ExercisePlanner Overview + ExercisePlanner Sample Overview @@ -32,7 +32,7 @@
    -

    ExercisePlanner Overview

    +

    ExercisePlanner Sample Overview

    The ExercisePlanner sample application demonstrates how you can add or delete alarms in your application. Also it demonstrates how the application can react on those alarms.

    For information on creating the sample application project in the IDE, see Creating Sample Applications.

    The following figure illustrates the main screens of the ExercisePlanner.

    @@ -62,7 +62,7 @@
    - + @@ -195,7 +195,7 @@ getId: function getId() /** * Creates a new system alarm connected with the exercise * @param {Object} exercise -* @param {string} id of added alarm +* @param {string} ID of the added alarm */ add: function addAlarm(exercise) { diff --git a/org.tizen.sampledescriptions/html/mobile_w/filemanager_mw.htm b/org.tizen.sampledescriptions/html/mobile_w/filemanager_mw.htm index 5fa7f8a..93a6ae0 100644 --- a/org.tizen.sampledescriptions/html/mobile_w/filemanager_mw.htm +++ b/org.tizen.sampledescriptions/html/mobile_w/filemanager_mw.htm @@ -11,7 +11,7 @@ - FileManager Overview + FileManager Sample Overview @@ -32,7 +32,7 @@
    -

    FileManager Overview

    +

    FileManager Sample Overview

    The FileManager sample application demonstrates how you can manage the files stored on the device.

    For information on creating the sample application project in the IDE, see Creating Sample Applications, and on the coding of the sample application, see File Manager task.

    The following figure illustrates the main screens of the FileManager.

    @@ -176,8 +176,7 @@ getFilesList: function SystemIO_getFilesList(dir, onSuccess) {    try    { -      dir.listFiles( -      function success(files) +      dir.listFiles(function success(files)       {          var tmp = [],          len = files.length, diff --git a/org.tizen.sampledescriptions/html/mobile_w/hybridwebapp_mw.htm b/org.tizen.sampledescriptions/html/mobile_w/hybridwebapp_mw.htm index 315f1b8..d7f1b4c 100644 --- a/org.tizen.sampledescriptions/html/mobile_w/hybridwebapp_mw.htm +++ b/org.tizen.sampledescriptions/html/mobile_w/hybridwebapp_mw.htm @@ -11,7 +11,7 @@ - HybridWebApp Overview + HybridWebApp Sample Overview @@ -33,7 +33,7 @@
    -

    HybridWebApp Overview

    +

    HybridWebApp Sample Overview

    The Hybrid Web App illustrates the communication between the applications installed on the device.

    For information on creating the sample application project in the IDE, see Creating Sample Applications.

    The following figure illustrates the main screen of the HybridWebApp.

    @@ -158,7 +158,7 @@ function onGetAppsContextSuccess(contexts)    } } -

    The following function launches the service by calling the tizen.application.launch()( function with ID of the service and callbacks passed as input parameters:

    +

    The following function launches the service by calling the tizen.application.launch() function with ID of the service and callbacks passed as input parameters:

     function launchServiceApp() 
     {
    diff --git a/org.tizen.sampledescriptions/html/mobile_w/jpegexifeditor_mw.htm b/org.tizen.sampledescriptions/html/mobile_w/jpegexifeditor_mw.htm
    index 2825fed..5c19545 100644
    --- a/org.tizen.sampledescriptions/html/mobile_w/jpegexifeditor_mw.htm
    +++ b/org.tizen.sampledescriptions/html/mobile_w/jpegexifeditor_mw.htm
    @@ -365,7 +365,7 @@ function getImages(onSuccess, onError)
                 title: content.title,
                 path: content.contentURI,
                 thumbnailPath: content.thumbnailURIs.length ? content.thumbnailURIs[0] : null
    -      });
    +         });
           }
           onSuccess(result.sort(comparePaths));
        }, onError, null,
    @@ -401,6 +401,7 @@ function createExifInfo(imageUri)
     {
        var exifInfo = new tizen.ExifInformation();
        exifInfo.uri = imageUri;
    +
        return exifInfo;
     }
    diff --git a/org.tizen.sampledescriptions/html/mobile_w/mediacontent_mw.htm b/org.tizen.sampledescriptions/html/mobile_w/mediacontent_mw.htm index c850eab..d968dca 100644 --- a/org.tizen.sampledescriptions/html/mobile_w/mediacontent_mw.htm +++ b/org.tizen.sampledescriptions/html/mobile_w/mediacontent_mw.htm @@ -11,7 +11,7 @@ - MediaContent Overview + MediaContent Sample Overview @@ -33,7 +33,7 @@
    -

    MediaContent Overview

    +

    MediaContent Sample Overview

    The MediaContent sample application demonstrates how content information can be retrieved from the Web Device API.

    For information on creating the sample application project in the IDE, see Creating Sample Applications, and on the coding of the sample application, see Media Content task.

    The following figure illustrates the screens of the MediaContent application.

    @@ -41,13 +41,13 @@

    MediaContent screens

    The application opens with the screen where you can choose the type of storage to check. After choosing the storage, you can choose the type of files to be retrieved. To view the details of the file, click the file name.

    -

    Prerequisites

    +

    Prerequisites

    To ensure proper application execution, the following privileges must be set:

    • http://tizen.org/privilege/content.read
    • http://tizen.org/privilege/content.write
    - +

    Source Files

    You can create and view the sample application project including the source files in the IDE.

    index.htmlThis is a starting file from which the application stars loading. It contains the layout of the application screens.This is a starting file from which the application starts loading. It contains the layout of the application screens.
    app.jsThis is a starting file from which the JavaScript code stars loading.This is a starting file from which the JavaScript code starts loading.
    js/
    index.htmlThis is a starting file from which the application stars loading. It contains the layout of the application screens.This is a starting file from which the application starts loading. It contains the layout of the application screens.
    js/
    diff --git a/org.tizen.sampledescriptions/html/mobile_w/moneybook_mw.htm b/org.tizen.sampledescriptions/html/mobile_w/moneybook_mw.htm index b403d31..88700d4 100644 --- a/org.tizen.sampledescriptions/html/mobile_w/moneybook_mw.htm +++ b/org.tizen.sampledescriptions/html/mobile_w/moneybook_mw.htm @@ -65,7 +65,7 @@ - + diff --git a/org.tizen.sampledescriptions/html/mobile_w/piano_mw.htm b/org.tizen.sampledescriptions/html/mobile_w/piano_mw.htm index 5aebbaf..7b29d59 100644 --- a/org.tizen.sampledescriptions/html/mobile_w/piano_mw.htm +++ b/org.tizen.sampledescriptions/html/mobile_w/piano_mw.htm @@ -11,7 +11,7 @@ - Piano Overview + Piano Sample Overview @@ -32,7 +32,7 @@
    -

    Piano Overview

    +

    Piano Sample Overview

    The Piano sample application demonstrates how you can create a piano application using the W3C Audio API.

    For information on creating the sample application project in the IDE, see Creating Sample Applications, and on the coding of the sample application, see Piano task.

    The following figure illustrates the main screen of the Piano.

    diff --git a/org.tizen.sampledescriptions/html/mobile_w/sd_mw.htm b/org.tizen.sampledescriptions/html/mobile_w/sd_mw.htm index 9c8acd0..e3b37aa 100644 --- a/org.tizen.sampledescriptions/html/mobile_w/sd_mw.htm +++ b/org.tizen.sampledescriptions/html/mobile_w/sd_mw.htm @@ -60,15 +60,15 @@
    @@ -151,6 +151,14 @@

    This sample is also explained in the tutorials: Task: File Manager.

    + + + + + + + + - + + + + + + + + + - + + + + + + + + + + + + + @@ -209,6 +268,14 @@

    This sample is also explained in the tutorials: Task: Sensor Ball.

    + + + + + + + + - + + + + + - + + + + +
    index.htmlThis is a starting file from which the application stars loading. It contains the layout of the application screens.This is a starting file from which the application starts loading. It contains the layout of the application screens.
    js/main.js Calculator Demonstrates how you can create a calculator with basic mathematical operations using:
    Calendar Demonstrates how you can create a calendar displaying the month using:
    FlashlightDemonstrates how you can let the user to switch on the LED diode (camera flash) on the device using: + +
    FMRadio Demonstrates how you can listen to the FM radio and manage the stations using:
      @@ -166,6 +174,14 @@
    JPEGExifEditorDemonstrates how you can browse JPEG images stored on device and read and edit their Exif data using: + +
    MediaContent Demonstrates how you can retrieve information about media files from internal and external memories and update the metadata of the files using: @@ -173,7 +189,26 @@
  • Content API
  • System Information API
  • This sample is also explained in the tutorials: Task: Media Content.

    MemoDemonstrates how you can store dates and get content information from a database using: + +
    MirrorDemonstrates how you can handle the front camera in your application using: + +
    MoneyBook Demonstrates how you can save and load data in a database storage using: @@ -181,7 +216,23 @@
  • Web SQL Database API
  • Morse Code FlashlightDemonstrates how you can send messages in Morse code through the camera flash LED diode using: + +
    PageNavigationDemonstrates how you can handle page navigation with JavaScript using: + +
    Piano Demonstrates how you can create a piano application using: @@ -189,6 +240,14 @@
  • HTML5 audio element API
  • This sample is also explained in the tutorials: Task: Piano.

    ScreenOrientationDemonstrates how you can access the current screen orientation using: + +
    SelfCamera
    ShapeEditorDemonstrates how you can create and edit various shapes with SVG using: + +
    SoundManager Demonstrates how you can manage custom sound profiles using:
      @@ -217,20 +284,40 @@
    SpiritLevelDemonstrates how you can monitor the inclination of the device using: + +
    Systeminfo Demonstrates how you can retrieve system-related information and display it in your application using:

    This sample is also explained in the tutorials: Task: System Information.

    SystemSettingsDemonstrates how you can obtain and set various system settings on a mobile device using: +
    TouchPaint Demonstrates how you can create a simple paint application through touch events and the Canvas element using:

    This sample is also explained in the tutorials: Task: Touch Paint.

    UIComponent Demonstrates how you can use Tizen Advanced UI (TAU) components using: @@ -239,6 +326,13 @@

    This sample is also explained in the UI Component Reference.

    WiFi InfoDemonstrates how you can display Wi-Fi connection information using: +
    diff --git a/org.tizen.sampledescriptions/html/mobile_w/selfcamera_mw.htm b/org.tizen.sampledescriptions/html/mobile_w/selfcamera_mw.htm index b708380..ed6d5a8 100644 --- a/org.tizen.sampledescriptions/html/mobile_w/selfcamera_mw.htm +++ b/org.tizen.sampledescriptions/html/mobile_w/selfcamera_mw.htm @@ -11,7 +11,7 @@ - SelfCamera Overview + SelfCamera Sample Overview @@ -34,7 +34,7 @@
    -

    SelfCamera Overview

    +

    SelfCamera Sample Overview

    The SelfCamera sample application demonstrates how you can use the front camera in your application.

    For information on creating the sample application project in the IDE, see Creating Sample Applications, and on the coding of the sample application, see Self Camera task.

    The following figure illustrates the main screen of the SelfCamera application.

    @@ -123,7 +123,7 @@ SelfCamera.prototype.startPreview = function startPreview()       if (typeof (navigator.getUserMedia) === 'function')       {          /* Ask the user to grant permissions to use media objects */ -         navigator.getUserMedia(options,this.onCaptureVideoSuccess.bind(this), +         navigator.getUserMedia(options, this.onCaptureVideoSuccess.bind(this),                                 this.onCaptureVideoError.bind(this));       }    } @@ -193,8 +193,8 @@ SelfCamera.prototype.captureImage = function captureImage(video)    service = new tizen.ApplicationControl('http://tizen.org/appcontrol/operation/view', file);    onReply =    { -      onsuccess: function noop() { return; }, -      onfailure: function noop() { return; } +      onsuccess: function noop() {return;}, +      onfailure: function noop() {return;}    };    try diff --git a/org.tizen.sampledescriptions/html/mobile_w/sensorball_mw.htm b/org.tizen.sampledescriptions/html/mobile_w/sensorball_mw.htm index abfa067..feca3ef 100644 --- a/org.tizen.sampledescriptions/html/mobile_w/sensorball_mw.htm +++ b/org.tizen.sampledescriptions/html/mobile_w/sensorball_mw.htm @@ -11,7 +11,7 @@ - SensorBall Overview + SensorBall Sample Overview @@ -32,7 +32,7 @@
    -

    SensorBall Overview

    +

    SensorBall Sample Overview

    Sensor Ball is an application that simulates behavior of the ball in three different environments.

    The application reads the accelerometer values of the device and changes the position of the ball to simulate inertia and gravity forces. The user can impact the movement of the ball by changing the orientation of the device.

    diff --git a/org.tizen.sampledescriptions/html/mobile_w/systeminfo_mw.htm b/org.tizen.sampledescriptions/html/mobile_w/systeminfo_mw.htm index 623d09b..7b4d34b 100644 --- a/org.tizen.sampledescriptions/html/mobile_w/systeminfo_mw.htm +++ b/org.tizen.sampledescriptions/html/mobile_w/systeminfo_mw.htm @@ -11,7 +11,7 @@ - Systeminfo Overview + Systeminfo Sample Overview @@ -33,7 +33,7 @@
    -

    Systeminfo Overview

    +

    Systeminfo Sample Overview

    The SystemInfo sample application demonstrates how system-related information can be retrieved using Web Device API.

    For information on creating the sample application project in the IDE, see Creating Web Sample Applications, and on the coding of the sample application, see System Information task.

    The following figure illustrates the main screen and example details of the Systeminfo.

    diff --git a/org.tizen.sampledescriptions/html/mobile_w/touchpaint_mw.htm b/org.tizen.sampledescriptions/html/mobile_w/touchpaint_mw.htm index c39fe80..2310501 100644 --- a/org.tizen.sampledescriptions/html/mobile_w/touchpaint_mw.htm +++ b/org.tizen.sampledescriptions/html/mobile_w/touchpaint_mw.htm @@ -11,7 +11,7 @@ - TouchPaint Overview + TouchPaint Sample Overview @@ -32,7 +32,7 @@
    -

    TouchPaint Overview

    +

    TouchPaint Sample Overview

    The TouchPaint sample application demonstrates how you can create a simple paint application using the touch events and a Canvas element.

    For information on creating the sample application project in the IDE, see Creating Web Sample Applications, and on the coding of the sample application, see Touch Paint task.

    The following figure illustrates the main screen of TouchPaint.

    diff --git a/org.tizen.sampledescriptions/html/mobile_w/uicomponent_mw.htm b/org.tizen.sampledescriptions/html/mobile_w/uicomponent_mw.htm index 300fcea..58069ac 100644 --- a/org.tizen.sampledescriptions/html/mobile_w/uicomponent_mw.htm +++ b/org.tizen.sampledescriptions/html/mobile_w/uicomponent_mw.htm @@ -11,7 +11,7 @@ - UIComponent Overview + UIComponent Sample Overview @@ -31,7 +31,7 @@
    -

    UIComponent Overview

    +

    UIComponent Sample Overview

    The UIComponent sample application demonstrates how you can use TAU UI components.

    For information on creating the sample application project in the IDE, see Creating Sample Applications.

    The following figure illustrates the main screen of the UIComponent.

    diff --git a/org.tizen.sampledescriptions/html/wearable_n/cairo_basic_sd_wn.htm b/org.tizen.sampledescriptions/html/wearable_n/cairo_basic_sd_wn.htm index 94f2994..f71dc65 100644 --- a/org.tizen.sampledescriptions/html/wearable_n/cairo_basic_sd_wn.htm +++ b/org.tizen.sampledescriptions/html/wearable_n/cairo_basic_sd_wn.htm @@ -65,7 +65,7 @@ typedef struct appdata } appdata_s; -
  • To display the Cairo drawing on the screen, create the Elm_window and the Evas_object image. +
  • To display the Cairo drawing on the screen, create the Elm_window and the Evas_Object image.

    When creating the Elm_window, you can set the name as your PACKAGE name. It is created when you create this project in the Tizen SDK.

     // Window
    @@ -118,7 +118,7 @@ cairo_drawing(void *data)
     

    In the following example, you can draw the polygon and rectangle. You must use the cairo_surface_flush() function. This function call implements any pending drawings for the surface.

        cairo_translate(ad->cairo, 0.1 * d, 0.1 * d);
    -   cairo_set_line_width(ad->cairo,2);
    +   cairo_set_line_width(ad->cairo, 2);
        cairo_set_source_rgba(ad->cairo, 0.0, 0.0, 1.0, 1.0);
     
        cairo_move_to(ad->cairo, 0.2 * d , 0.2 * d);
    diff --git a/org.tizen.sampledescriptions/html/wearable_n/cairo_evasgl_sd_wn.htm b/org.tizen.sampledescriptions/html/wearable_n/cairo_evasgl_sd_wn.htm
    index 541bc8e..a5b125e 100644
    --- a/org.tizen.sampledescriptions/html/wearable_n/cairo_evasgl_sd_wn.htm
    +++ b/org.tizen.sampledescriptions/html/wearable_n/cairo_evasgl_sd_wn.htm
    @@ -88,7 +88,7 @@ eext_object_event_callback_add(ad->win, EEXT_CALLBACK_BACK, win_back_cb, ad);
     evas_object_show(ad->win);
     
  • -
  • Create the Evas_object image: +
  • Create the Evas_Object image:
     ad->img = evas_object_image_filled_add(evas_object_evas_get(ad->win));
     evas_object_show(ad->img);
    @@ -101,7 +101,7 @@ evas_object_show(ad->img);
     evas_object_geometry_get(ad->win, NULL, NULL, &ad->width, &ad->height);
     

    Initialize the variables related to the Evas_GL within the appdata structure.

    -

    For creating the EvasGL object, you can use the Evas_object image created before.

    +

    For creating the EvasGL object, you can use the Evas_Object image created before.

     Evas_Native_Surface ns;
     ad->evas_gl = evas_gl_new(evas_object_evas_get(ad->img));
    @@ -214,7 +214,7 @@ void cairo_drawing(void *data)
     
  • Add the animator function callback.

    The following is an example of a default update refresh rate. You can add the animator after creating Cairo and EvasGL.

    -

    Add the animator function callback with the ecore_animator_add() function. The evas_object_image_pixels_dirty_set() function updates the Evas_object image which is connected to EvasGL. After this, the Evas_object image updates with the evas_object_image_pixels_get_callback_set() callback function calls whenever Evas renders.

    +

    Add the animator function callback with the ecore_animator_add() function. The evas_object_image_pixels_dirty_set() function updates the Evas_Object image which is connected to EvasGL. After this, the Evas_Object image updates with the evas_object_image_pixels_get_callback_set() callback function calls whenever Evas renders.

     static Eina_Bool _animate_cb(void *data)
     {
    @@ -281,4 +281,4 @@ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga
     
     
     
    -
    +
    \ No newline at end of file
    diff --git a/org.tizen.sampledescriptions/html/wearable_n/circleambientanalogwatch_wn.htm b/org.tizen.sampledescriptions/html/wearable_n/circleambientanalogwatch_wn.htm
    index ab3b01a..c75fbb2 100644
    --- a/org.tizen.sampledescriptions/html/wearable_n/circleambientanalogwatch_wn.htm
    +++ b/org.tizen.sampledescriptions/html/wearable_n/circleambientanalogwatch_wn.htm
    @@ -11,7 +11,7 @@
     	
     	
     
    -	The (Circle) Ambient Analog Watch Sample Overview
    +	(Circle) Ambient Analog Watch Sample Overview
     
     
     
    @@ -28,384 +28,387 @@
     
     

    The (Circle) Ambient Analog Watch sample application demonstrates how to implement a simple watch application with ambient mode support.

    -

    The following figure illustrates two screens of the (Circle) Ambient Analog Watch sample application: the normal mode watch view, the ambient mode watch view and the cipher disc selection view.

    +

    The following figure illustrates the 3 screens of the (Circle) Ambient Analog Watch sample application: the normal mode watch view, the ambient mode watch view, and the cipher disc selection view.

    -

    Figure 1: (Circle) Ambient Analog Watch views

    +

    Figure: (Circle) Ambient Analog Watch views

    - (Circle) Ambient Analog Watch views - (Circle) Ambient Analog Watch views - (Circle) Ambient Analog Watch views + (Circle) Ambient Analog Watch views + (Circle) Ambient Analog Watch views + (Circle) Ambient Analog Watch views

    -

    The current time is displayed as follows:

    +

    The elements on the screen display the current time:

      -
    • red dot indicates seconds,
    • -
    • small blue dot indicates hours,
    • -
    • large blue dot indicates minutes.
    • +
    • Red dot indicates seconds
    • +
    • Small blue dot indicates hours
    • +
    • Large blue dot indicates minutes
    -

    Above the current date there are indicators for battery level and WiFi RSSI.

    -

    To enter cipher disc selection view, you have to click the gear wheel button. From there you can select which cipher disc style you want to use.

    +

    The indicators for battery level and Wi-Fi RSSI are located above the current date.

    +

    To select the cipher disc style, click the gear wheel button and select the style in the cipher disc selection view.

    -

    Figure 2: (Circle) Ambient Analog Watch widgets structure

    +

    Figure: (Circle) Ambient Analog Watch component structure

    - (Circle) Sensors widgets structure + (Circle) Ambient Analog Watch component structure

    Prerequisites

    -

    To ensure proper application execution, the -http://tizen.org/privilege/network.get privilege must be set.

    +

    To ensure proper application execution, the following privilege must be set:

    +
      +
    • http://tizen.org/privilege/network.get
    • +

    Implementation

    -

    Main module

    -

    The main() function of the sample application is show below. The application loop -is started when the watch_app_main() -function is invoked. An object of watch_app_lifecycle_callback_s type can be passed to it. -Notice how it differs from ui_app_lifecycle_callback_s typed used in the standard application type. -The watch_app_lifecycle_callback_s structure introduces three new callback pointers to: +

    Main Module

    + +

    In the main() function, the application loop starts when the watch_app_main() function is invoked. An object of the watch_app_lifecycle_callback_s type can be passed to it.

    +

    The watch_app_lifecycle_callback_s type differs from the ui_app_lifecycle_callback_s type used in a standard UI application. The watch_app_lifecycle_callback_s structure introduces 3 new callback pointers to:

      -
    • watch_app_time_tick_cb - called every second when the application is in normal mode, giving the application a chance to refresh the time indicator,
    • -
    • watch_app_ambient_tick_cb - called every minute when the application is in ambient, giving the application a chance to refresh the time indicator,
    • -
    • watch_app_ambient_changed_cb - called whenever the application enters normal or ambient mode.
    • +
    • watch_app_time_tick_cb: Called every second when the application is in the normal mode, giving the application a chance to refresh the time indicator.
    • +
    • watch_app_ambient_tick_cb: Called every minute when the application is in the ambient mode, giving the application a chance to refresh the time indicator.
    • +
    • watch_app_ambient_changed_cb: Called whenever the application enters the normal or ambient mode.
    -int main(int argc, char *argv[])
    +int 
    +main(int argc, char *argv[])
     {
    -  int ret = 0;
    +   int ret = 0;
     
    -  watch_app_lifecycle_callback_s event_callback = {0,};
    +   watch_app_lifecycle_callback_s event_callback = {0,};
     
    -  event_callback.create = app_create;
    -  event_callback.resume = app_resume;
    -  event_callback.pause = app_pause;
    -  event_callback.terminate = app_terminate;
    -  event_callback.time_tick = app_time_tick;
    -  event_callback.ambient_tick = app_time_tick;
    -  event_callback.ambient_changed = app_ambient_changed;
    +   event_callback.create = app_create;
    +   event_callback.resume = app_resume;
    +   event_callback.pause = app_pause;
    +   event_callback.terminate = app_terminate;
    +   event_callback.time_tick = app_time_tick;
    +   event_callback.ambient_tick = app_ambient_tick;
    +   event_callback.ambient_changed = app_ambient_changed;
     
    -  ret = watch_app_main(argc, argv, &event_callback, NULL);
    -	// Error handling ...
    +   ret = watch_app_main(argc, argv, &event_callback, NULL);
    +   // Error handling
     
    -  return ret;
    +   return ret;
     }
    -
    -
    -static void app_time_tick(watch_time_h watch_time, void *data)
    +static void 
    +app_time_tick(watch_time_h watch_time, void *data)
     {
    -	// Variable definitions and error handling ...
    -  __get_date_from_watch_time(watch_time,
    -                &year, &month, &day, &day_of_week,
    -                &hours, &minutes, &seconds);
    +   // Variable definitions and error handling
    +   __get_date_from_watch_time(watch_time, &year, &month, &day, &day_of_week,
    +                              &hours, &minutes, &seconds);
     
    -  controller_tick(hours, minutes, seconds, year, month, day, day_of_week);
    +   controller_tick(hours, minutes, seconds, year, month, day, day_of_week);
     }
    -
    -
    -static void app_ambient_changed(bool ambient_mode, void *data)
    +static void
    +app_ambient_changed(bool ambient_mode, void *data)
     {
    -  controller_set_ambient_mode(ambient_mode);
    +   controller_set_ambient_mode(ambient_mode);
     }
    -
    -
    -static void __get_date_from_watch_time(const watch_time_h watch_time,
    -                      int *year, int *month, int *day, int *day_of_week,
    -                      int *hours, int *minutes, int *seconds)
    +static void 
    +__get_date_from_watch_time(const watch_time_h watch_time, int *year, 
    +                           int *month, int *day, int *day_of_week,
    +                           int *hours, int *minutes, int *seconds)
     {
    -  watch_time_get_hour24(watch_time, hours);
    -  watch_time_get_minute(watch_time, minutes);
    -  watch_time_get_second(watch_time, seconds);
    -  watch_time_get_year(watch_time, year);
    -  watch_time_get_month(watch_time, month);
    -  watch_time_get_day(watch_time, day);
    -  watch_time_get_day_of_week(watch_time, day_of_week);
    +   watch_time_get_hour24(watch_time, hours);
    +   watch_time_get_minute(watch_time, minutes);
    +   watch_time_get_second(watch_time, seconds);
    +   watch_time_get_year(watch_time, year);
    +   watch_time_get_month(watch_time, month);
    +   watch_time_get_day(watch_time, day);
    +   watch_time_get_day_of_week(watch_time, day_of_week);
     }
     
    -

    Controller module

    -

    Three important functions of this module are presented below. The controller_start_application() -is called at the application's startup. It sets up the view and adds the -__wifi_rssi_level_changed_cb() -callback to monitor WiFi signal strength's changes. It also sets the current time on the watch view.

    - +

    Controller Module

    +

    The controller module has 3 important functions:

    +
      +
    • +

      controller_start_application() is called at the application startup.

      +

      It sets up the view and adds the __wifi_rssi_level_changed_cb() callback to monitor Wi-Fi signal strength changes. It also sets the current time on the watch view.

      -bool controller_start_application(int width, int height,
      -                    int hour, int min, int sec,
      -                    int year, int month, int day, int week_day)
      +bool 
      +controller_start_application(int width, int height, int hour, int min, int sec,
      +                             int year, int month, int day, int week_day)
       {
      -  if (!view_create_gui(width, height))
      -    return false;
      +   if (!view_create_gui(width, height))
      +      return false;
       
      -  if (wifi_monitor_init())
      -    wifi_monitor_start_measure(__wifi_rssi_level_changed_cb);
      +   if (wifi_monitor_init())
      +      wifi_monitor_start_measure(__wifi_rssi_level_changed_cb);
       
      -  view_set_time(hour, min, sec, year, month, day, week_day);
      +   view_set_time(hour, min, sec, year, month, day, week_day);
       
      -  return true;
      +   return true;
       }
       
      +
    • -

      The controller_set_ambient_mode() function is called from -app_ambient_changed() -callback, defined in the main module. This way, the application can track whether it is in ambient or normal mode. -It is recommended to stop any power consuming operations in the ambient mode. For example, you can change the display state to one that has most of its pixels dark.

      - +
    • +

      controller_set_ambient_mode() function is called from the app_ambient_changed() callback.

      +

      It is defined in the main module, allowing the application to track whether it is in the ambient or normal mode. In the ambient mode, stop any power consuming operations; for example, you can change the display state to one that has most of its pixels dark.

      -void controller_set_ambient_mode(bool ambient_mode)
      +void 
      +controller_set_ambient_mode(bool ambient_mode)
       {
      -  cdata.ambient_mode = ambient_mode;
      -  view_set_ambient(cdata.ambient_mode);
      -  if (cdata.ambient_mode) {
      -    wifi_monitor_stop_measure();
      -  } else {
      -    wifi_monitor_start_measure(__wifi_rssi_level_changed_cb);
      -  }
      +   cdata.ambient_mode = ambient_mode;
      +   view_set_ambient(cdata.ambient_mode);
      +   if (cdata.ambient_mode) 
      +   {
      +      wifi_monitor_stop_measure();
      +   } 
      +   else 
      +   {
      +      wifi_monitor_start_measure(__wifi_rssi_level_changed_cb);
      +   }
       }
       
      -

      Aside from updating the time and date indicators, the controller_tick() -function reads the battery level and sets up the battery display accordingly. It happens only in ambient mode. -The controller_tick() -is called with one second interval when the application is in normal mode -and with one minute interval when it is in ambient mode.

      - +
    • +
    • +

      controller_tick() function is called with a 1-second interval when the application is in the normal mode and with a 1-minute interval when it is in the ambient mode.

      +

      The function updates the time and date indicators. In addition, in the ambient mode, it reads the battery level and sets up the battery display accordingly.

      -void controller_tick(int hour, int min, int sec,
      -            int year, int month, int day, int week_day)
      +void 
      +controller_tick(int hour, int min, int sec, int year, 
      +                int month, int day, int week_day)
       {
      -  int batt_percent = 0;
      -  view_set_time(hour, min, sec, year, month, day, week_day);
      -  if (!cdata.ambient_mode) {
      -    device_battery_get_percent(&batt_percent);
      -    view_set_batt(batt_percent);
      -  }
      +   int batt_percent = 0;
      +   view_set_time(hour, min, sec, year, month, day, week_day);
      +   if (!cdata.ambient_mode) 
      +   {
      +      device_battery_get_percent(&batt_percent);
      +      view_set_batt(batt_percent);
      +   }
       }
       
      +
    • +
    + +

    Main View Module

    + +

    To implement the main view:

    -

    Main view module

    - -

    The watch_app_get_elm_win() -function is used to obtain a special watch type window. This way the application can receive ambient/normal mode switch events properly.

    -

    The next step is creating two circular indicators. In order to do it, first it is neccesary to create an elementary widget and associate it with -the circular surface.

    -

    The elm_layout widget has been chosen for this operation. -Once the indicators_layout pointer is obtained, it is possible to -call eext_circle_surface_layout_add() function and obtain a pointer -(indicators_layout_surface) to a -Eext_Circle_Surface object associated with this layout.

    -

    These two pointers can now be used to create circle objects - time indicators. The pointers are passed to the -__create_time_indicator() -function and from there to the circle_indicator_create() -function from circle indicator module.

    -

    Up to this point in view_create_gui() -function, this application would look like in Figure 3 (left).

    -

    Next, the main layout is created. It consists, among others, of circular black background with two transparent rings as in Figure 3 (right). -The main layout object is stacked above circular objects and the effect can be seen in Figure 1.

    -

    Finally, the ambient digital clock layout is created. It is hidden until the application enters the ambient mode. It is shown in Figure 1 (middle).

    - -

    Figure 3: Two circle indicators and the background

    +
      +
    1. Create the main screen elements: + +
        +
      1. Use the watch_app_get_elm_win() function to obtain a special watch type window. This way the application can receive the mode switch events properly (from normal to ambient and back).

      2. +
      3. Create 2 circular indicators:

        +
        • Create an elementary component and associate it with the circular surface. +

          Use the elm_layout component to obtain the indicators_layout pointer.

          +
        • +
        • Call the eext_circle_surface_layout_add() function to obtain a pointer (indicators_layout_surface) to a Eext_Circle_Surface object associated with the layout.
        + +

        The 2 pointers can now be used to create circle objects, or the time indicators. The pointers are passed to the __create_time_indicator() function and from there to the circle_indicator_create() function from the circle indicator module.

        + +

        Up to this point in the view_create_gui() +function, the application screen looks like the left view in the following figure.

        +
      4. +
      5. Create the main layout. It consists, among others, of a circular black background with 2 transparent rings (shown on the right in the following figure).

        +

        When the main layout object is stacked above circular objects, the resulting effect is the final application screen (shown on the left in the (Circle) Ambient Analog Watch views figure).

      6. +
      7. Create the ambient digital clock layout. It is hidden until the application enters the ambient mode.

        +

        The ambient layout is shown in the middle in the (Circle) Ambient Analog Watch views figure.

      - Two circle indicators and the background - Two circle indicators and the background + Two circle indicators and the background + Two circle indicators and the background

      -
      -bool view_create_gui(int width, int height)
      +bool 
      +view_create_gui(int width, int height)
       {
      -  Evas_Object *indicators_layout = NULL;
      -  Eext_Circle_Surface *indicators_layout_surface = NULL;
      +   Evas_Object *indicators_layout = NULL;
      +   Eext_Circle_Surface *indicators_layout_surface = NULL;
       
      -  watch_app_get_elm_win(&vd.win);
      +   watch_app_get_elm_win(&vd.win);
       
      -	// Error handling ...
      +   // Error handling
       
      -  evas_object_resize(vd.win, width, height);
      +   evas_object_resize(vd.win, width, height);
       
      -  indicators_layout = elm_layout_add(vd.win);
      +   indicators_layout = elm_layout_add(vd.win);
       
      -	// Error handling ...
      +   // Error handling
       
      -  evas_object_resize(indicators_layout, width, height);
      -  evas_object_show(indicators_layout);
      -  indicators_layout_surface = eext_circle_surface_layout_add(indicators_layout);
      +   evas_object_resize(indicators_layout, width, height);
      +   evas_object_show(indicators_layout);
      +   indicators_layout_surface = eext_circle_surface_layout_add(indicators_layout);
       
      -	// Error handling ...
      +   // Error handling
       
      -  __create_time_indicator(&vd.hours_minutes_indicator, indicators_layout_surface, indicators_layout,
      -              (HOURS_INDICATOR_REL_SIZE * (float)width/2.0),
      -              TIME_INDICATOR_THICKNESS,
      -              TIME_INDICATOR_R_COLOR,
      -              TIME_INDICATOR_G_COLOR,
      -              TIME_INDICATOR_B_COLOR);
      +   __create_time_indicator(&vd.hours_minutes_indicator, indicators_layout_surface, indicators_layout,
      +                           (HOURS_INDICATOR_REL_SIZE * (float)width/2.0),
      +                           TIME_INDICATOR_THICKNESS, TIME_INDICATOR_R_COLOR,
      +                           TIME_INDICATOR_G_COLOR, TIME_INDICATOR_B_COLOR);
       
      -  __create_time_indicator(&vd.seconds_indicator, indicators_layout_surface, indicators_layout,
      -              (MINUTES_INDICATOR_REL_SIZE * (float)width/2.0),
      -              TIME_INDICATOR_THICKNESS,
      -              TIME_INDICATOR_R_COLOR,
      -              TIME_INDICATOR_G_COLOR,
      -              TIME_INDICATOR_B_COLOR);
      +   __create_time_indicator(&vd.seconds_indicator, indicators_layout_surface, indicators_layout,
      +                           (MINUTES_INDICATOR_REL_SIZE * (float)width/2.0),
      +                           TIME_INDICATOR_THICKNESS, TIME_INDICATOR_R_COLOR,
      +                           TIME_INDICATOR_G_COLOR, TIME_INDICATOR_B_COLOR);
       
      -  vd.main_layout = __create_layout(MAIN_LAYOUT_EDJE_FILE, MAIN_GRP, width, height);
      -  evas_object_show(vd.main_layout);
      +   vd.main_layout = __create_layout(MAIN_LAYOUT_EDJE_FILE, MAIN_GRP, width, height);
      +   evas_object_show(vd.main_layout);
       
      -	// Other UI elements creation code ...
      +   // Other UI elements creation code
       
      -  vd.ambient_clock = ambient_clock_create(vd.main_layout);
      -  elm_layout_content_set(vd.main_layout, AMBIENT_SWALLOW_PART, vd.ambient_clock);
      +   vd.ambient_clock = ambient_clock_create(vd.main_layout);
      +   elm_layout_content_set(vd.main_layout, AMBIENT_SWALLOW_PART, vd.ambient_clock);
       
      -	// Common code ...
      +   // Common code
       }
      -
      -
      -static const Circle_Indicator *__create_time_indicator(const Circle_Indicator **indicator,
      +static const Circle_Indicator*
      +__create_time_indicator(const Circle_Indicator **indicator,
                               Eext_Circle_Surface *indicators_layout_surface,
                               Evas_Object *indicators_layout,
                               int radius, int thickness, int r, int g, int b)
       {
      -  *indicator = circle_indicator_create(indicators_layout, indicators_layout_surface);
      +   *indicator = circle_indicator_create(indicators_layout, indicators_layout_surface);
       
      -  if (!*indicator)
      -    return NULL;
      +   if (!*indicator)
      +      return NULL;
       
      -  circle_indicator_set_radius(*indicator, radius);
      -  circle_indicator_set_thickness(*indicator, thickness);
      -  circle_indicator_set_color(*indicator, r, g, b,
      -                TIME_INDICATOR_R_COLOR_2,
      -                TIME_INDICATOR_G_COLOR_2,
      -                TIME_INDICATOR_B_COLOR_2);
      -  circle_indicator_show(*indicator, true);
      +   circle_indicator_set_radius(*indicator, radius);
      +   circle_indicator_set_thickness(*indicator, thickness);
      +   circle_indicator_set_color(*indicator, r, g, b, TIME_INDICATOR_R_COLOR_2,
      +                              TIME_INDICATOR_G_COLOR_2, TIME_INDICATOR_B_COLOR_2);
      +   circle_indicator_show(*indicator, true);
       
      -  return *indicator;
      +   return *indicator;
       }
       
      - -

      Each time a time tick occurs, the controller module calls view_set_time() -function. One of its roles is to set the proper positions of dot indicators. This is calculated when a message is sent to the main layout object -using edje_object_message_send() function. -

      - +
    2. +
    3. +

      Each time a time tick occurs, the controller module calls the view_set_time() function. One of its roles is to set the proper positions of the dot indicators. This is calculated when a message is sent to the main layout object using the edje_object_message_send() function.

      -void view_set_time(int hours, int minutes, int seconds,
      -            int year, int month, int day, int week_day)
      +void 
      +view_set_time(int hours, int minutes, int seconds, int year, 
      +              int month, int day, int week_day)
       {
      -	// Other variable definitions ...
      -
      -	Edje_Message_Int_Set *msg = NULL;
      +   // Other variable definitions
       
      -  if (!vd.ambient) {
      +   Edje_Message_Int_Set *msg = NULL;
       
      -	// Calculations ...
      +   if (!vd.ambient) 
      +   {
      +      // Calculations
       
      -    circle_indicator_set(vd.seconds_indicator, 0.0, ((float)seconds) / 60.0);
      -    circle_indicator_set(vd.hours_minutes_indicator,
      -              ((float)hours_12) / 12.0 + ((float)minutes) / 60.0 / 12.0,
      -              ((float)minutes) / 60.0);
      +      circle_indicator_set(vd.seconds_indicator, 0.0, ((float)seconds) / 60.0);
      +      circle_indicator_set(vd.hours_minutes_indicator,
      +                           ((float)hours_12) / 12.0 + ((float)minutes) / 60.0 / 12.0,
      +                           ((float)minutes) / 60.0);
       
      -	// Date string setting ...
      +      // Date string setting
       
      -    msg = alloca(sizeof(Edje_Message_Int_Set) + 2 * sizeof(int));
      +      msg = alloca(sizeof(Edje_Message_Int_Set) + 2 * sizeof(int));
       
      -	// Error handling ...
      +      // Error handling
       
      -    msg->count = 3;
      -    msg->val[0] = hours_12;
      -    msg->val[1] = minutes;
      -    msg->val[2] = seconds;
      +      msg->count = 3;
      +      msg->val[0] = hours_12;
      +      msg->val[1] = minutes;
      +      msg->val[2] = seconds;
       
      -    edje_object_message_send(elm_layout_edje_get(vd.main_layout), EDJE_MESSAGE_INT_SET, SET_TIME_MSG_ID, msg);
      -  }
      +      edje_object_message_send(elm_layout_edje_get(vd.main_layout), EDJE_MESSAGE_INT_SET, 
      +                               SET_TIME_MSG_ID, msg);
      +   }
       
      -  ambient_clock_set_time(vd.ambient_clock, hours, minutes);
      +   ambient_clock_set_time(vd.ambient_clock, hours, minutes);
       }
       
      - -

      Once the message is received, it is processed by edje layout object's script function:

      - +
    4. +
    5. +

      Once the message is received, it is processed by the edje layout object's script function:

       script
       {
      -  public bool:ambient_mode = false;
      -
      -  public message(Msg_Type:type, id, ...)
      -  {
      -    static Float:h = 0.0;
      -    static Float:m = 0.0;
      -    static Float:s = 0.0;
      -    static Float:rx = 0.0;
      -    static Float:ry = 0.0;
      -
      -    if (type == MSG_INT_SET && id == SET_TIME_MSG_ID)
      -    {
      -      h = getarg(2);
      -      m = getarg(3);
      -      s = getarg(4);
      -
      -      rx = sin( 360.0 * (h / 12.0 + m / 60.0 / 12.0), DEGREES);
      -      ry = cos( 360.0 * (h / 12.0 + m / 60.0 / 12.0), DEGREES);
      -      custom_state(PART:HOURS_DOT_PART, "default", 0.0);
      -      set_state_val(PART:HOURS_DOT_PART, STATE_REL1,
      -              0.5 + HOURS_MINS_DOT_RADIUS*rx - HOURS_DOT_SIZE / 2.0,
      -              0.5 - HOURS_MINS_DOT_RADIUS*ry - HOURS_DOT_SIZE / 2.0);
      -      set_state_val(PART:HOURS_DOT_PART, STATE_REL2,
      -              0.5 + HOURS_MINS_DOT_RADIUS*rx + HOURS_DOT_SIZE / 2.0,
      -              0.5 - HOURS_MINS_DOT_RADIUS*ry + HOURS_DOT_SIZE / 2.0);
      -      set_state(PART:HOURS_DOT_PART, "custom", 0.0);
      -
      -      rx = sin( 360.0 * m / 60.0, DEGREES);
      -      ry = cos( 360.0 * m / 60.0, DEGREES);
      -      custom_state(PART:MINUTES_DOT_PART, "default", 0.0);
      -      set_state_val(PART:MINUTES_DOT_PART, STATE_REL1,
      -              0.5 + HOURS_MINS_DOT_RADIUS*rx - MINUTES_DOT_SIZE / 2.0,
      -              0.5 - HOURS_MINS_DOT_RADIUS*ry - MINUTES_DOT_SIZE / 2.0);
      -      set_state_val(PART:MINUTES_DOT_PART, STATE_REL2,
      -              0.5 + HOURS_MINS_DOT_RADIUS*rx + MINUTES_DOT_SIZE / 2.0,
      -              0.5 - HOURS_MINS_DOT_RADIUS*ry + MINUTES_DOT_SIZE / 2.0);
      -      set_state(PART:MINUTES_DOT_PART, "custom", 0.0);
      -
      -      rx = sin( 360.0 * s / 60.0, DEGREES);
      -      ry = cos( 360.0 * s / 60.0, DEGREES);
      -      custom_state(PART:SECONDS_DOT_PART, "default", 0.0);
      -      set_state_val(PART:SECONDS_DOT_PART, STATE_REL1,
      -              0.5 + SECONDS_DOT_RADIUS*rx - SECONDS_DOT_SIZE / 2.0,
      -              0.5 - SECONDS_DOT_RADIUS*ry - SECONDS_DOT_SIZE / 2.0);
      -      set_state_val(PART:SECONDS_DOT_PART, STATE_REL2,
      -              0.5 + SECONDS_DOT_RADIUS*rx + SECONDS_DOT_SIZE / 2.0,
      -              0.5 - SECONDS_DOT_RADIUS*ry + SECONDS_DOT_SIZE / 2.0);
      -      set_state(PART:SECONDS_DOT_PART, "custom", 0.0);
      -    }
      -  }
      +   public bool: ambient_mode = false;
      +
      +   public message(Msg_Type:type, id, ...)
      +   {
      +      static Float: h = 0.0;
      +      static Float: m = 0.0;
      +      static Float: s = 0.0;
      +      static Float: rx = 0.0;
      +      static Float: ry = 0.0;
      +
      +      if (type == MSG_INT_SET && id == SET_TIME_MSG_ID)
      +      {
      +         h = getarg(2);
      +         m = getarg(3);
      +         s = getarg(4);
      +
      +         rx = sin(360.0 * (h / 12.0 + m / 60.0 / 12.0), DEGREES);
      +         ry = cos(360.0 * (h / 12.0 + m / 60.0 / 12.0), DEGREES);
      +         custom_state(PART:HOURS_DOT_PART, "default", 0.0);
      +         set_state_val(PART:HOURS_DOT_PART, STATE_REL1,
      +                       0.5 + HOURS_MINS_DOT_RADIUS*rx - HOURS_DOT_SIZE / 2.0,
      +                       0.5 - HOURS_MINS_DOT_RADIUS*ry - HOURS_DOT_SIZE / 2.0);
      +         set_state_val(PART:HOURS_DOT_PART, STATE_REL2,
      +                       0.5 + HOURS_MINS_DOT_RADIUS*rx + HOURS_DOT_SIZE / 2.0,
      +                       0.5 - HOURS_MINS_DOT_RADIUS*ry + HOURS_DOT_SIZE / 2.0);
      +         set_state(PART:HOURS_DOT_PART, "custom", 0.0);
      +
      +         rx = sin(360.0 * m / 60.0, DEGREES);
      +         ry = cos(360.0 * m / 60.0, DEGREES);
      +         custom_state(PART:MINUTES_DOT_PART, "default", 0.0);
      +         set_state_val(PART:MINUTES_DOT_PART, STATE_REL1,
      +                       0.5 + HOURS_MINS_DOT_RADIUS*rx - MINUTES_DOT_SIZE / 2.0,
      +                       0.5 - HOURS_MINS_DOT_RADIUS*ry - MINUTES_DOT_SIZE / 2.0);
      +         set_state_val(PART:MINUTES_DOT_PART, STATE_REL2,
      +                       0.5 + HOURS_MINS_DOT_RADIUS*rx + MINUTES_DOT_SIZE / 2.0,
      +                       0.5 - HOURS_MINS_DOT_RADIUS*ry + MINUTES_DOT_SIZE / 2.0);
      +         set_state(PART:MINUTES_DOT_PART, "custom", 0.0);
      +
      +         rx = sin(360.0 * s / 60.0, DEGREES);
      +         ry = cos(360.0 * s / 60.0, DEGREES);
      +         custom_state(PART:SECONDS_DOT_PART, "default", 0.0);
      +         set_state_val(PART:SECONDS_DOT_PART, STATE_REL1,
      +                       0.5 + SECONDS_DOT_RADIUS*rx - SECONDS_DOT_SIZE / 2.0,
      +                       0.5 - SECONDS_DOT_RADIUS*ry - SECONDS_DOT_SIZE / 2.0);
      +         set_state_val(PART:SECONDS_DOT_PART, STATE_REL2,
      +                       0.5 + SECONDS_DOT_RADIUS*rx + SECONDS_DOT_SIZE / 2.0,
      +                       0.5 - SECONDS_DOT_RADIUS*ry + SECONDS_DOT_SIZE / 2.0);
      +         set_state(PART:SECONDS_DOT_PART, "custom", 0.0);
      +      }
      +   }
       }
       
      +
    6. +
    + +

    Circle Indicator View Module

    -

    Circle indicator view module

    +

    The circle indicator is a complex object that holds pointers to 2 circle objects:

    +
    • One circle object displays an arc to indicate the current time value progress.
    • +
    • One circle object shows the arc of the progress yet to come.
    -

    The circle indicator is a complex object, as shown in Figure 2. It holds pointers to two circle objects. One circle object is used to display an arc -to indicate current time value progress. The second one shows the arc of progress yet to come. The creation code is shown below.

    +

    To create the circle indicator:

    -const Circle_Indicator *circle_indicator_create(Evas_Object *parent, Eext_Circle_Surface *indicators_layout_surface)
    +const Circle_Indicator*
    +circle_indicator_create(Evas_Object *parent, Eext_Circle_Surface *indicators_layout_surface)
     {
    -  Circle_Indicator *indicator = NULL;
    +   Circle_Indicator *indicator = NULL;
     
    -  indicator = calloc(1, sizeof(Circle_Indicator));
    +   indicator = calloc(1, sizeof(Circle_Indicator));
     
    -  if (!indicator)
    -    return NULL;
    +   if (!indicator)
    +      return NULL;
     
    -  indicator->indicating_indicator = eext_circle_object_add(parent, indicators_layout_surface);
    -  eext_circle_object_angle_min_max_set(indicator->indicating_indicator, 0, 360);
    +   indicator->indicating_indicator = eext_circle_object_add(parent, indicators_layout_surface);
    +   eext_circle_object_angle_min_max_set(indicator->indicating_indicator, 0, 360);
     
    -  indicator->bg_indicator = eext_circle_object_add(parent, indicators_layout_surface);
    -  eext_circle_object_angle_min_max_set(indicator->bg_indicator, 0, 360);
    +   indicator->bg_indicator = eext_circle_object_add(parent, indicators_layout_surface);
    +   eext_circle_object_angle_min_max_set(indicator->bg_indicator, 0, 360);
     
    -  evas_object_data_set(indicator->bg_indicator, CI_DATA_KEY, indicator);
    -  evas_object_event_callback_add(indicator->bg_indicator, EVAS_CALLBACK_DEL, __evas_object_before_delete_cb, NULL);
    +   evas_object_data_set(indicator->bg_indicator, CI_DATA_KEY, indicator);
    +   evas_object_event_callback_add(indicator->bg_indicator, EVAS_CALLBACK_DEL,
    +                                  __evas_object_before_delete_cb, NULL);
     
    -  return indicator;
    +   return indicator;
     }
     
    diff --git a/org.tizen.sampledescriptions/html/wearable_n/circlecircular_camera_sd_wn.htm b/org.tizen.sampledescriptions/html/wearable_n/circlecircular_camera_sd_wn.htm index 8f5e717..67f2b4b 100644 --- a/org.tizen.sampledescriptions/html/wearable_n/circlecircular_camera_sd_wn.htm +++ b/org.tizen.sampledescriptions/html/wearable_n/circlecircular_camera_sd_wn.htm @@ -11,7 +11,7 @@ - The (Circle) Circular Camera Overview + (Circle) Circular Camera Sample Overview @@ -24,219 +24,235 @@

    Wearable native

  • -

    The (Circle) Circular Camera Sample Overview

    +

    (Circle) Circular Camera Sample Overview

    -

    The (Circle) Circular Camera sample application demonstrates how you can handle Camera API, among others how to start camera preview and capture images.

    +

    The (Circle) Circular Camera sample application demonstrates how you can handle the Camera API to, for example, start a camera preview and capture images.

    -

    The following figure illustrates two screens of the (Circle) Circular Camera sample application: the camera preview window and the camera attributes menu views.

    +

    The following figure illustrates the main screens of the (Circle) Circular Camera application: the camera preview and the camera attribute menu.

    -

    Figure 1: (Circle) Circular camera views

    -

    (Circle) Circular camera views (Circle) Circular camera views

    +

    Figure: (Circle) Circular Camera screens

    +

    (Circle) Circular Camera screens (Circle) Circular Camera screens

    -

    Click the red camera button to capture a picture or press the preview to enter the camera attributes list.

    -

    From there you can set any camera attributes this application makes available for you.

    +

    The application opens with the camera preview screen:

    +
      +
    • To capture an image, click the red camera button.
    • +
    • To access the camera attribute menu, press the preview. +

      In the menu, set the available camera attributes.

    • +
    -

    Figure 2: (Circle) Circular camera UI structure

    -

    (Circle) Circular camera UI structure + +

    Figure: UI structure

    +

    UI structure

    Prerequisites

    -

    To ensure proper application execution, the http://tizen.org/privilege/mediastorage and -the http://tizen.org/privilege/camera privileges -must be set. Also, there should be the camera device installed on your device.

    + +
      +
    • To ensure proper application execution, the following privileges must be set: +
      • http://tizen.org/privilege/mediastorage
      • +
      • http://tizen.org/privilege/camera
      +
    • +
    • The camera device must be installed on the device.

    Implementation

    -

    Preview surface view module

    -

    The most important part of the view is the camera preview surface creation. For this purpose you can use the -evas filled image.

    +

    Preview Surface View Module

    +

    The most important part of the view is the creation of the camera preview surface. For this purpose, you can use the +evas filled image:

    -Evas_Object *preview_surface_create(Evas_Object *parent, previev_surface_long_press_cb cb)
    +Evas_Object 
    +*preview_surface_create(Evas_Object *parent, preview_surface_long_press_cb cb)
     {
    -  Evas_Object *surface = evas_object_image_filled_add(evas_object_evas_get(parent));
    -	// Common initialization code
    -  return surface;
    +   Evas_Object *surface = evas_object_image_filled_add(evas_object_evas_get(parent));
    +   // Common initialization code
    +
    +   return surface;
     }
     
    -

    Cam controller module

    -

    The cam module is the essential part of this application. It allows for the various camera attributes to be set.

    -

    The initialization function takes the preview surface (shown in view section) as a parameter. It creates a camera handle and -adds callbacks for the following events: -

      -
    • state change,
    • -
    • operation interruption,
    • -
    • error.
    • -
    -

    +

    Cam Controller Module

    +

    The cam controller module is an essential part of this application, as it allows the various camera attributes to be set:

    + +
      +
    1. Initialize the module. +

      The initialization function takes the preview surface (created in the view module) as a parameter. It creates a camera handle and +adds callbacks for the state change, operation interruption, and error events:

      -bool cam_init(const void *evas_display_surface)
      +bool 
      +cam_init(const void *evas_display_surface)
       {
      -	// Common initialization code
      +   // Common initialization code
       
      -  cmd.evas_display_surface = (void *)evas_display_surface;
      +   cmd.evas_display_surface = (void *)evas_display_surface;
       
      -  ok = (CAMERA_ERROR_NONE == camera_create(CAMERA_DEVICE_CAMERA0, &cmd.camera));
      -  ok &= (CAMERA_ERROR_NONE == camera_set_state_changed_cb(cmd.camera, __camera_state_changed_cb, NULL));
      -  ok &= (CAMERA_ERROR_NONE == camera_set_interrupted_cb(cmd.camera, __camera_interrupted_cb, NULL));
      -  ok &= (CAMERA_ERROR_NONE == camera_set_error_cb(cmd.camera, __camera_error_cb, NULL));
      +   ok = (CAMERA_ERROR_NONE == camera_create(CAMERA_DEVICE_CAMERA0, &cmd.camera));
      +   ok &= (CAMERA_ERROR_NONE == camera_set_state_changed_cb(cmd.camera, __camera_state_changed_cb, NULL));
      +   ok &= (CAMERA_ERROR_NONE == camera_set_interrupted_cb(cmd.camera, __camera_interrupted_cb, NULL));
      +   ok &= (CAMERA_ERROR_NONE == camera_set_error_cb(cmd.camera, __camera_error_cb, NULL));
       
      -  camera_get_capture_format(cmd.camera, &cmd.pixel_format);
      +   camera_get_capture_format(cmd.camera, &cmd.pixel_format);
       
      -  return ok;
      +   return ok;
       }
      -
      -
      -static void __camera_state_changed_cb(camera_state_e previous, camera_state_e current,
      -											bool by_policy, void *user_data)
      +
      +static void 
      +__camera_state_changed_cb(camera_state_e previous, camera_state_e current,
      +                          bool by_policy, void *user_data)
       {
      -  dlog_print(DLOG_INFO, LOG_TAG, "Camera state has changed from: %d to: %d by policy: %d", previous, current, by_policy);
      +   dlog_print(DLOG_INFO, LOG_TAG, "Camera state has changed from: %d to: %d by policy: %d", 
      +              previous, current, by_policy);
       }
      -
      -
      -static void __camera_interrupted_cb(camera_policy_e policy, camera_state_e previous,
      -										camera_state_e current, void *user_data)
      +
      +static void 
      +__camera_interrupted_cb(camera_policy_e policy, camera_state_e previous,
      +                        camera_state_e current, void *user_data)
       {
      -  dlog_print(DLOG_INFO, LOG_TAG, "Camera state interrupted. State has changed from: %d to: %d by policy: %d",
      -        previous, current, policy);
      +   dlog_print(DLOG_INFO, LOG_TAG, "Camera state interrupted. State has changed from: %d to: %d by policy: %d",
      +              previous, current, policy);
       }
       
      -

      It is important to free the camera handle and release its resources when an error occurs.

      + +

      When an error occurs, you must free the camera handle and release its resources:

      -static void __camera_error_cb(camera_error_e error, camera_state_e current_state, void *user_data)
      +static void 
      +__camera_error_cb(camera_error_e error, camera_state_e current_state, void *user_data)
       {
      -  dlog_print(DLOG_ERROR, LOG_TAG, "Camera error: %s has occurred; current state: %d, deinitializing",
      -        get_error_message(error), current_state);
      -  cam_deinit();
      +   dlog_print(DLOG_ERROR, LOG_TAG, "Camera error: %s has occurred; current state: %d, deinitializing",
      +              get_error_message(error), current_state);
      +   cam_deinit();
       }
       
      -

      Once the initialization is succesfully finished, the preview function can be called. Please note that -the camera state is always checked at the beginning. Starting the preview will fail unless the camera is in one of the following states: -

        -
      • CAMERA_STATE_CREATED,
      • -
      • CAMERA_STATE_CAPTURED.
      • -
      -You might also notice how the preview surface (previously passed as an argument to the initialization function) is used in -camera_set_display() -function. The GET_DISPLAY() API macro has to be used as it is a portable way to convert the -Evas_Object * -to the -camera_display_h -.

      +
    2. + +
    3. Set up the camera preview. +

      Once the initialization is successfully finished, you can call the preview function.

      +

      The camera state is always checked at the beginning, and the preview can only be started if the camera is in the CAMERA_STATE_CREATED or CAMERA_STATE_CAPTURED state.

      + +

      The preview surface (previously passed as a parameter to the initialization function) is used in the camera_set_display() function. The GET_DISPLAY() API macro must be used, as it is a portable way to convert the Evas_Object * to the +camera_display_h handle.

      -bool cam_start_preview(void)
      +bool 
      +cam_start_preview(void)
       {
      -  camera_state_e state = CAMERA_STATE_NONE;
      -  int width = 0;
      -  int height = 0;
      +   camera_state_e state = CAMERA_STATE_NONE;
      +   int width = 0;
      +   int height = 0;
       
      -  camera_get_state(cmd.camera, &state);
      +   camera_get_state(cmd.camera, &state);
       
      -  if (state == CAMERA_STATE_PREVIEW)
      -    return true;
      +   if (state == CAMERA_STATE_PREVIEW)
      +      return true;
       
      -  if (state != CAMERA_STATE_CREATED && state != CAMERA_STATE_CAPTURED)
      -    return false;
      +   if (state != CAMERA_STATE_CREATED && state != CAMERA_STATE_CAPTURED)
      +      return false;
       
      -  if (CAMERA_ERROR_NONE == camera_get_recommended_preview_resolution(cmd.camera, &width, &height)) {
      -    camera_set_preview_resolution(cmd.camera, width, height);
      -  } else {
      -    return false;
      -  }
      +   if (CAMERA_ERROR_NONE == camera_get_recommended_preview_resolution(cmd.camera, &width, &height)) 
      +   {
      +      camera_set_preview_resolution(cmd.camera, width, height);
      +   } 
      +   else 
      +   {
      +      return false;
      +   }
       
      -  camera_set_display(cmd.camera, CAMERA_DISPLAY_TYPE_EVAS, GET_DISPLAY(cmd.evas_display_surface));
      -  camera_set_display_mode(cmd.camera, CAMERA_DISPLAY_MODE_FULL);
      -  camera_set_display_visible(cmd.camera, true);
      -  camera_start_focusing(cmd.camera, true);
      +   camera_set_display(cmd.camera, CAMERA_DISPLAY_TYPE_EVAS, GET_DISPLAY(cmd.evas_display_surface));
      +   camera_set_display_mode(cmd.camera, CAMERA_DISPLAY_MODE_FULL);
      +   camera_set_display_visible(cmd.camera, true);
      +   camera_start_focusing(cmd.camera, true);
       
      -  return (CAMERA_ERROR_NONE == camera_start_preview(cmd.camera));
      +   return (CAMERA_ERROR_NONE == camera_start_preview(cmd.camera));
       }
      -
      - -

      Once the preview is successfully set up, the camera view is visible on the screen and it is possible to capture photos.

      -

      Photo taking is implemented in cam_start_capturing(), +

    4. +
    5. Capture images. +

      Once the preview is successfully set up, the camera view is visible on the screen and you can capture images.

      +

      The image capture is implemented in the cam_start_capturing(), __camera_capturing_cb() and -__camera_capture_completed_cb() functions.

      +__camera_capture_completed_cb() functions:

      + +
      • Start the capture process:
        -bool cam_start_capturing(void)
        +bool 
        +cam_start_capturing(void)
         {
        -  camera_state_e state = CAMERA_STATE_NONE;
        +   camera_state_e state = CAMERA_STATE_NONE;
         
        -  if (CAMERA_PIXEL_FORMAT_INVALID == cmd.pixel_format) {
        -    dlog_print(DLOG_ERROR, LOG_TAG, "Error - capture format hasn't been selected");
        -    return false;
        -  }
        +   if (CAMERA_PIXEL_FORMAT_INVALID == cmd.pixel_format) 
        +   {
        +      dlog_print(DLOG_ERROR, LOG_TAG, "Error - capture format hasn't been selected");
         
        -  camera_get_state(cmd.camera, &state);
        +      return false;
        +   }
         
        -  if (state == CAMERA_STATE_CAPTURING)
        -    return true;
        +   camera_get_state(cmd.camera, &state);
         
        -  if (state == CAMERA_STATE_NONE || (state != CAMERA_STATE_PREVIEW && !cam_start_preview()))
        -    return false;
        +   if (state == CAMERA_STATE_CAPTURING)
        +      return true;
         
        -  if (!max_width || !max_height)
        -    camera_foreach_supported_capture_resolution(cmd.camera, __supported_capture_resolution_cb, NULL);
        +   if (state == CAMERA_STATE_NONE || (state != CAMERA_STATE_PREVIEW && !cam_start_preview()))
        +      return false;
         
        -  if (max_width && max_height)
        -    camera_set_capture_resolution(cmd.camera, max_width, max_height);
        +   if (!max_width || !max_height)
        +      camera_foreach_supported_capture_resolution(cmd.camera, __supported_capture_resolution_cb, NULL);
         
        -  return (CAMERA_ERROR_NONE == camera_start_capture(cmd.camera, __camera_capturing_cb, __camera_capture_completed_cb, NULL));
        +   if (max_width && max_height)
        +      camera_set_capture_resolution(cmd.camera, max_width, max_height);
        +
        +   return (CAMERA_ERROR_NONE == camera_start_capture(cmd.camera, __camera_capturing_cb, 
        +                                                     __camera_capture_completed_cb, NULL));
         }
        -
        -

        Once the camera device has filled the image buffer, the -__camera_capturing_cb() -callback is called. This is the place to save the captured photo. The -camera_image_data_s -structure contains a raw image data buffer and information about its dimensions and buffer length. -This application allows the user to select between different types of camera images format. One of them is -CAMERA_PIXEL_FORMAT_JPEG which is already encoded. -The rest of the formats are raw types. This is why jpeg format is distinguished in the following code.

        +
      • +
      • +

        Once the camera device has filled the image buffer, the __camera_capturing_cb() +callback is called to save the captured photo. The camera_image_data_s structure contains a raw image data buffer and information about the image dimensions and buffer length.

        +

        This application allows the user to select between different camera image formats. One of them is CAMERA_PIXEL_FORMAT_JPEG, which is already encoded. Because the rest of the formats are raw types, the JPEG format is distinguished in the following code.

        -static void __camera_capturing_cb(camera_image_data_s *image, camera_image_data_s *postview,
        -                    camera_image_data_s *thumbnail, void *user_data)
        +static void 
        +__camera_capturing_cb(camera_image_data_s *image, camera_image_data_s *postview,
        +                      camera_image_data_s *thumbnail, void *user_data)
         {
        -  FILE *f = NULL;
        -  int w = 0;
        -  char currently_saved_file[PATH_MAX] = {0,};
        -
        -  if (cmd.pixel_format == CAMERA_PIXEL_FORMAT_INVALID || !image)
        -    return;
        -
        -  if (image->format == CAMERA_PIXEL_FORMAT_JPEG) {
        -    snprintf(currently_saved_file, PATH_MAX, SAVE_FILE_PATH_PATTERN, time(NULL));
        -    f = fopen(currently_saved_file, "w+");
        -    if (!f) {
        -      dlog_print(DLOG_ERROR, LOG_TAG, "Could not obtain handle for file %s ", currently_saved_file);
        -      return;
        -    }
        +   FILE *f = NULL;
        +   int w = 0;
        +   char currently_saved_file[PATH_MAX] = {0,};
         
        -    do {
        -      w += fwrite(image->data + w, sizeof(unsigned char), image->size - w, f);
        -    } while (w < image->size);
        +   if (cmd.pixel_format == CAMERA_PIXEL_FORMAT_INVALID || !image)
        +      return;
         
        -    fclose(f);
        -  } else {
        -    __encode_to_jpeg(image->data, image->width, image->height, currently_saved_file);
        -  }
        +   if (image->format == CAMERA_PIXEL_FORMAT_JPEG) 
        +   {
        +      snprintf(currently_saved_file, PATH_MAX, SAVE_FILE_PATH_PATTERN, time(NULL));
        +      f = fopen(currently_saved_file, "w+");
        +      if (!f) 
        +      {
        +         dlog_print(DLOG_ERROR, LOG_TAG, "Could not obtain handle for file %s ", currently_saved_file);
        +
        +         return;
        +      }
        +
        +      do 
        +      {
        +         w += fwrite(image->data + w, sizeof(unsigned char), image->size - w, f);
        +      } while (w < image->size);
        +
        +      fclose(f);
        +   } 
        +   else 
        +   {
        +      __encode_to_jpeg(image->data, image->width, image->height, currently_saved_file);
        +   }
         }
        -
        - -

        When the capture callback returns and the camera's internal state is updated, another callback is invoked - -__camera_capture_completed_cb(). This -gives the developer a chance to change the camera state from CAMERA_STATE_CAPTURED -to -CAMERA_STATE_PREVIEW and allows the camera -view to be continuously displayed again.

        +
      • +
      • +

        When the capture callback returns and the camera's internal state is updated, the __camera_capture_completed_cb() callback is invoked. Within this callback, you can change the camera state from CAMERA_STATE_CAPTURED to CAMERA_STATE_PREVIEW to allow the camera view to be continuously displayed again.

        -static void __camera_capture_completed_cb(void *user_data)
        +static void 
        +__camera_capture_completed_cb(void *user_data)
         {
        -  cam_start_preview();
        +   cam_start_preview();
         }
        -
        +
    diff --git a/org.tizen.sampledescriptions/html/wearable_n/circlesensors_sd_wn.htm b/org.tizen.sampledescriptions/html/wearable_n/circlesensors_sd_wn.htm index cd11dd0..ec98247 100644 --- a/org.tizen.sampledescriptions/html/wearable_n/circlesensors_sd_wn.htm +++ b/org.tizen.sampledescriptions/html/wearable_n/circlesensors_sd_wn.htm @@ -26,135 +26,139 @@

    (Circle) Sensors Sample Overview

    -

    The (Circle) Sensors sample application demonstrates how to handle sensors API and get data from device's sensors.

    +

    The (Circle) Sensors sample application demonstrates how to handle the Sensor API and get data from the device sensors.

    -

    The following figure illustrates two screens of the (Circle) Sensors sample application: main and settings views.

    +

    The following figure illustrates the (Circle) Sensors screens: main and settings views.

    Figure: (Circle) Sensors views

    -

    (Circle) Sensors views (Circle) Rotary Timer main views

    +

    (Circle) Sensors views (Circle) Sensors views

    -

    Click gear wheel button to enter settings view.

    -

    From there you can select which device's sensors you want to monitor. In this sample there is a limit of four sensors monitored simultaneously.

    +

    Click gear wheel button to enter the settings view. In the settings view, you can select which device sensors you want to monitor. In this sample, at most 4 sensors can be monitored simultaneously.

    -

    Figure: (Circle) Sensors widgets structure

    -

    (Circle) Sensors widgets structure +

    Figure: (Circle) Sensors UI component structure

    +

    (Circle) Sensors UI component structure

    Implementation

    -

    Device sensors controller module

    - -

    This is the most essential module in the sample application. The device_sensors_init() -function makes necessary setup of module's static array - available_sens_descr.

    -

    The helper sens_descr array contains objects of -sensor_description_s type, defined in the application. Each object of this type consist of:

    -
      -
    1. sensor_type_e API type enumeration - unique sensor identifier,
    2. -
    3. full sensor name,
    4. -
    5. sensor name abbreviation,
    6. -
    7. sensor's maximum and minimum value.
    8. -
    - -

    The device_sensors_init() function iterates over all known sensor types and checks -if they are supported on the current device. If so, the sensor handle is obtained (sensor_get_default_sensor() -) and a listener is created (sensor_create_listener()).

    -

    Next, it is necessary to bind the sensor listener with a callback function -(the sole parameter of device_sensors_init()) which will be called each time a sensor -data is ready to be obtained. You can pass a time interval value to sensor_listener_set_event_cb() -function. It defines an interval at which the listener object will poll the bound sensor. You can set this value to anything between 10 and 1000 ms. Also, it is worth noting that the sensor listener is set to be active even when the watch's screen is off. -It is done with sensor_listener_set_option() function.

    -

    The device_sensors_init() also uses -sensor_get_min_range() and -sensor_get_max_range() functions to get expected sensor minimum and maximum readings' values. -These values are stored in respective elements of sens_descr array.

    -

    Once the loop is over, the available_sens_descr array contains pointers to sensor_description_s structures which describe all available sensors.

    +

    The controller is the most essential module in the sample application. It initializes the sensors with the device_sensors_init() +function:

    + +
    1. +

      The device_sensors_init() +function makes necessary setup of the module's static array: available_sens_descr. The sens_descr helper array contains sensor_description_s type objects defined in the application. Each object of this type consist of:

      +
        +
      • sensor_type_e API type enumeration - a unique sensor identifier
      • +
      • Full sensor name
      • +
      • Sensor name abbreviation
      • +
      • Sensor maximum and minimum value
      • +
      +
      -const static sensor_description_s sens_descr[SENSOR_LAST] = {
      -  {SENSOR_ACCELEROMETER, "Accelerometer", "ACC", 0.0, 0.0},
      -  {SENSOR_GRAVITY, "Gravity sensor", "GRAV", 0.0, 0.0},
      -  {SENSOR_LINEAR_ACCELERATION, "Linear acceleration sensor", "LINA", 0.0, 0.0},
      -  {SENSOR_MAGNETIC, "Magnetic sensor", "MAG", 0.0, 0.0},
      -  {SENSOR_ROTATION_VECTOR, "Rotation Vector sensor", "ROT", 0.0, 0.0},
      -  {SENSOR_ORIENTATION, "Orientation sensor", "ORI", 0.0, 0.0},
      -  {SENSOR_GYROSCOPE, "Gyroscope sensor", "GYRO", 0.0, 0.0},
      -  {SENSOR_LIGHT, "Light sensor", "L", 0.0, 0.0},
      -  {SENSOR_PROXIMITY, "Proximity sensor", "PROX", 0.0, 0.0},
      -  {SENSOR_PRESSURE, "Pressure sensor", "PRES", 0.0, 0.0},
      -  {SENSOR_ULTRAVIOLET, "Ultraviolet sensor", "UV", 0.0, 0.0},
      -  {SENSOR_TEMPERATURE, "Temperature sensor", "TEMP", 0.0, 0.0},
      -  {SENSOR_HUMIDITY, "Humidity sensor", "HUM", 0.0, 0.0},
      -  {SENSOR_HRM, "Heart Rate Monitor sensor", "HRT", 0.0, 0.0},
      -  {SENSOR_HRM_LED_GREEN, "HRM (LED Green) sensor", "HRTG", 0.0, 0.0},
      -  {SENSOR_HRM_LED_IR, "HRM (LED IR) sensor", "HRTI", 0.0, 0.0},
      -  {SENSOR_HRM_LED_RED, "HRM (LED RED) sensor", "HRTR", 0.0, 0.0}
      +const static 
      +sensor_description_s sens_descr[SENSOR_LAST] = 
      +{
      +   {SENSOR_ACCELEROMETER, "Accelerometer", "ACC", 0.0, 0.0},
      +   {SENSOR_GRAVITY, "Gravity sensor", "GRAV", 0.0, 0.0},
      +   {SENSOR_LINEAR_ACCELERATION, "Linear acceleration sensor", "LINA", 0.0, 0.0},
      +   {SENSOR_MAGNETIC, "Magnetic sensor", "MAG", 0.0, 0.0},
      +   {SENSOR_ROTATION_VECTOR, "Rotation Vector sensor", "ROT", 0.0, 0.0},
      +   {SENSOR_ORIENTATION, "Orientation sensor", "ORI", 0.0, 0.0},
      +   {SENSOR_GYROSCOPE, "Gyroscope sensor", "GYRO", 0.0, 0.0},
      +   {SENSOR_LIGHT, "Light sensor", "L", 0.0, 0.0},
      +   {SENSOR_PROXIMITY, "Proximity sensor", "PROX", 0.0, 0.0},
      +   {SENSOR_PRESSURE, "Pressure sensor", "PRES", 0.0, 0.0},
      +   {SENSOR_ULTRAVIOLET, "Ultraviolet sensor", "UV", 0.0, 0.0},
      +   {SENSOR_TEMPERATURE, "Temperature sensor", "TEMP", 0.0, 0.0},
      +   {SENSOR_HUMIDITY, "Humidity sensor", "HUM", 0.0, 0.0},
      +   {SENSOR_HRM, "Heart Rate Monitor sensor", "HRT", 0.0, 0.0},
      +   {SENSOR_HRM_LED_GREEN, "HRM (LED Green) sensor", "HRTG", 0.0, 0.0},
      +   {SENSOR_HRM_LED_IR, "HRM (LED IR) sensor", "HRTI", 0.0, 0.0},
      +   {SENSOR_HRM_LED_RED, "HRM (LED RED) sensor", "HRTR", 0.0, 0.0}
       };
      -
      -
       static sensor_description_s *available_sens_descr[SENSOR_LAST + 1] = {NULL,};
      -
      +
    2. +
    3. The device_sensors_init() function iterates over all known sensor types and checks whether they are supported on the current device. If so, the sensor handle is obtained (sensor_get_default_sensor()) and a listener is created (sensor_create_listener()).

      -bool device_sensors_init(sensor_event_cb cb)
      +bool 
      +device_sensors_init(sensor_event_cb cb)
       {
      -  //Variables declarations ...
      -
      -  for (i = 0; i < SENSOR_LAST; i++)
      -    if (SENSOR_ERROR_NONE == sensor_is_supported(sens_descr[i].type, &supported) &&
      -      supported) {
      -
      -        sensor = NULL;
      -        listener = NULL;
      -
      -        if (SENSOR_ERROR_NONE != sensor_get_default_sensor(sens_descr[i].type, &sensor)) {
      -          //Error handling ...
      -        }
      -
      -        if (SENSOR_ERROR_NONE != sensor_create_listener(sensor, &listener)) {
      -          //Error handling ...
      -        }
      -
      -        if (SENSOR_ERROR_NONE != sensor_listener_set_event_cb(listener,
      -                    POLL_INTERVAL,
      -                    cb,
      -                    (void *)sens_descr[i].type)
      -          ) {
      -          //Error handling ...
      -        }
      -
      -        sensor_listener_set_option(listener, SENSOR_OPTION_ON_IN_SCREEN_OFF);
      +   // Variable declarations
      +
      +   for (i = 0; i < SENSOR_LAST; i++)
      +   {
      +      if (SENSOR_ERROR_NONE == sensor_is_supported(sens_descr[i].type, &supported) &&
      +          supported) 
      +      {
      +         sensor = NULL;
      +         listener = NULL;
      +
      +         if (SENSOR_ERROR_NONE != sensor_get_default_sensor(sens_descr[i].type, &sensor)) 
      +         {
      +            // Error handling
      +         }
      +
      +         if (SENSOR_ERROR_NONE != sensor_create_listener(sensor, &listener)) 
      +         {
      +            // Error handling
      +         }
      +
    4. + +
    5. The sensor listener is bound with a callback function +(the sole parameter of the device_sensors_init() function), which is called each time sensor data is ready to be obtained.

      +

      You can pass a time interval value to the sensor_listener_set_event_cb() function. It defines an interval at which the listener object polls the bound sensor. You can set this value to anything between 10 and 1000 ms.

      +
      +         if (SENSOR_ERROR_NONE != sensor_listener_set_event_cb(listener, POLL_INTERVAL,
      +                                                               cb, (void *)sens_descr[i].type))
      +         {
      +            // Error handling
      +         }
      +
      +
    6. +
    7. With the sensor_listener_set_option() function, the sensor listener is set to be active even when the watch screen is off.

      +
      +         sensor_listener_set_option(listener, SENSOR_OPTION_ON_IN_SCREEN_OFF);
      +
      +
    8. +
    9. +

      The sensor_get_min_range() and +sensor_get_max_range() functions are used to get the expected sensor minimum and maximum reading values. These values are stored in the respective elements of the sens_descr array.

      +

      Once the loop is over, the available_sens_descr array contains pointers to the sensor_description_s structures which describe all available sensors.

      -        sensor_get_min_range(sensor, (float *)&sens_descr[i].min_range); -        sensor_get_max_range(sensor, (float *)&sens_descr[i].max_range); +
      +         sensor_get_min_range(sensor, (float *)&sens_descr[i].min_range);
      +         sensor_get_max_range(sensor, (float *)&sens_descr[i].max_range);
       
      -        available_sens_descr[j++] = (sensor_description_s *)sens_descr + i;
      -        sens_listeners[sens_descr[i].type] = listener;
      -    }
      +         available_sens_descr[j++] = (sensor_description_s *)sens_descr + i;
      +         sens_listeners[sens_descr[i].type] = listener;
      +      }
      +   }
       
      -  return initiated = true;
      +   return initiated = true;
       }
      -
      +
    -

    To start/stop listening to sensor data, the client module has to call device_sensors_start_listening() -or device_sensors_stop_listening() function -and pass a sensor identifier to it.

    +

    To start or stop listening to sensor data, the client module calls the device_sensors_start_listening() or device_sensors_stop_listening() function +and passes a sensor identifier to it:

    -bool device_sensors_start_listening(const sensor_type_e sensor)
    +bool 
    +device_sensors_start_listening(const sensor_type_e sensor)
     {
    -  if (sensor < SENSOR_ACCELEROMETER || sensor >= SENSOR_LAST)
    +  if (sensor < SENSOR_ACCELEROMETER || sensor >= SENSOR_LAST)
         return false;
     
       sensor_listener_start(sens_listeners[sensor]);
     
       return true;
     }
    -
    -
    -void device_sensors_stop_listening(const sensor_type_e sensor)
    +void 
    +device_sensors_stop_listening(const sensor_type_e sensor)
     {
    -  if (sensor < SENSOR_ACCELEROMETER || sensor >= SENSOR_LAST)
    +  if (sensor < SENSOR_ACCELEROMETER || sensor >= SENSOR_LAST)
         return;
     
       sensor_listener_stop(sens_listeners[sensor]);
    diff --git a/org.tizen.sampledescriptions/html/wearable_n/evas_gl_sd_wn.htm b/org.tizen.sampledescriptions/html/wearable_n/evas_gl_sd_wn.htm
    index 346a802..e27e320 100644
    --- a/org.tizen.sampledescriptions/html/wearable_n/evas_gl_sd_wn.htm
    +++ b/org.tizen.sampledescriptions/html/wearable_n/evas_gl_sd_wn.htm
    @@ -93,7 +93,7 @@ static void init_evasgl(appdata_s *ad)
        ad->cfg->options_bits = EVAS_GL_OPTIONS_NONE;
     
        // Get the window size
    -   Evas_Coord w,h;
    +   Evas_Coord w, h;
        evas_object_geometry_get(ad->win, NULL, NULL, &ad->surface_w, &ad->surface_h);
     
        // Get the Evas GL handle for doing GL things
    @@ -186,7 +186,7 @@ static void img_pixel_cb(void *data, Evas_Object *obj)
           init_shaders(ad);
           glGenBuffers(1, &ad->vbo);
           glBindBuffer(GL_ARRAY_BUFFER, ad->vbo);
    -      glBufferData(GL_ARRAY_BUFFER, 3 * 72 * 4, cube_vertices,GL_STATIC_DRAW);
    +      glBufferData(GL_ARRAY_BUFFER, 3 * 72 * 4, cube_vertices, GL_STATIC_DRAW);
           init_matrix(view);
           if (ad->surface_w > ad->surface_h) 
           {
    @@ -218,7 +218,7 @@ static void img_pixel_cb(void *data, Evas_Object *obj)
        glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, sizeof(float) * 6, (void*)(sizeof(float)*3));
        glEnableVertexAttribArray(1);
     
    -   glUniformMatrix4fv( glGetUniformLocation(ad->program, "mvpMatrix"), 1, GL_FALSE, mvp);
    +   glUniformMatrix4fv(glGetUniformLocation(ad->program, "mvpMatrix"), 1, GL_FALSE, mvp);
        glDrawArrays(GL_TRIANGLES, 0, 36);
     
        glFlush();
    @@ -227,7 +227,10 @@ static void img_pixel_cb(void *data, Evas_Object *obj)
     
     
     
  • Add animators. -

    The scene does not get updated unless the object is marked as such. Games usually use an animator to have a regular update of the scene. The following is an example for a default update refresh rate. The animator callback function is also triggered when the display is off. So you should use ecore_animator_freeze() and ecore_animator_thaw() in app_pause_cb, app_resume_cb for power saving.

    +

    The scene does not get updated unless the object is marked as such. Games usually use an animator to have a regular update of the scene. The following example shows the default update refresh rate.

    + +

    The animator callback function is also triggered when the display is off. Use the ecore_animator_freeze() and ecore_animator_thaw() functions in the app_pause_cb and app_resume_cb callbacks for power saving.

    +
     static Eina_Bool animate_cb(void *data)
     {
    diff --git a/org.tizen.sampledescriptions/html/wearable_n/glview11_cube_sd_wn.htm b/org.tizen.sampledescriptions/html/wearable_n/glview11_cube_sd_wn.htm
    index 1c46295..78c16e5 100644
    --- a/org.tizen.sampledescriptions/html/wearable_n/glview11_cube_sd_wn.htm
    +++ b/org.tizen.sampledescriptions/html/wearable_n/glview11_cube_sd_wn.htm
    @@ -142,10 +142,7 @@ _glview_create(appdata_s *ad)
        elm_table_pack(ad->table, obj, 1, 1, 3, 1);
        evas_object_data_set(obj, APPDATA_KEY, ad);
     
    -   elm_glview_mode_set(obj,
    -                       ELM_GLVIEW_ALPHA |
    -                       ELM_GLVIEW_DEPTH
    -                       );
    +   elm_glview_mode_set(obj, ELM_GLVIEW_ALPHA | ELM_GLVIEW_DEPTH);
        elm_glview_resize_policy_set(obj, ELM_GLVIEW_RESIZE_POLICY_RECREATE);
        elm_glview_render_policy_set(obj, ELM_GLVIEW_RENDER_POLICY_ON_DEMAND);
     
    @@ -276,7 +273,10 @@ destroy_gles(Evas_Object *obj)
     
  • Add an animator. -

    The application above is technically working but the scene does not get updated unless the object is marked as such. Games usually use an animator to update the scene regularly. The following example shows a default update refresh rate. The animator callback function is also triggered when the display is off. So you should use ecore_animator_freeze() and ecore_animator_thaw() in app_pause_cb, app_resume_cb for power saving.

    +

    The application above is technically working but the scene does not get updated unless the object is marked as such. Games usually use an animator to update the scene regularly. The following example shows the default update refresh rate.

    + +

    The animator callback function is also triggered when the display is off. Use the ecore_animator_freeze() and ecore_animator_thaw() functions in the app_pause_cb and app_resume_cb callbacks for power saving.

    +
     static Eina_Bool
     _anim_cb(void *data)
    @@ -284,6 +284,7 @@ _anim_cb(void *data)
        appdata_s *ad = data;
     
        elm_glview_changed_set(ad->glview);
    +
        return ECORE_CALLBACK_RENEW;
     }
     
    @@ -293,7 +294,7 @@ app_pause(void *data)
        appdata_s *ad = data;
        ecore_animator_freeze(ad->anim);
     }
    ->
    +
     static void
     app_resume(void *data)
     {
    diff --git a/org.tizen.sampledescriptions/html/wearable_n/glview_cube_sd_wn.htm b/org.tizen.sampledescriptions/html/wearable_n/glview_cube_sd_wn.htm
    index da9a70e..9b3986d 100644
    --- a/org.tizen.sampledescriptions/html/wearable_n/glview_cube_sd_wn.htm
    +++ b/org.tizen.sampledescriptions/html/wearable_n/glview_cube_sd_wn.htm
    @@ -182,7 +182,10 @@ static void draw_gl(Evas_Object *obj)
     	
  • Add an animator. -

    The application regularly triggers updates of the GLView using the elm_glview_changed_set() function. The animator callback function is also triggered when the display is off. So you should use ecore_animator_freeze() and ecore_animator_thaw() in app_pause_cb, app_resume_cb for power saving.

    +

    The application regularly triggers updates of the GLView using the elm_glview_changed_set() function.

    + +

    The animator callback function is also triggered when the display is off. Use the ecore_animator_freeze() and ecore_animator_thaw() functions in the app_pause_cb and app_resume_cb callbacks for power saving.

    +
     static Eina_Bool anim(void *data) 
     {
    diff --git a/org.tizen.sampledescriptions/html/wearable_n/glview_shader_sd_wn.htm b/org.tizen.sampledescriptions/html/wearable_n/glview_shader_sd_wn.htm
    index e7648e5..9718a7f 100644
    --- a/org.tizen.sampledescriptions/html/wearable_n/glview_shader_sd_wn.htm
    +++ b/org.tizen.sampledescriptions/html/wearable_n/glview_shader_sd_wn.htm
    @@ -220,7 +220,10 @@ static void draw_gl(Evas_Object *obj)
     	
  • Add an animator. -

    The application regularly triggers an update of the GLView using the elm_glview_changed_set() function. The animator callback function is also triggered when the display is off. So you should use ecore_animator_freeze() and ecore_animator_thaw() in app_pause_cb, app_resume_cb for power saving.

    +

    The application regularly triggers an update of the GLView using the elm_glview_changed_set() function.

    + +

    The animator callback function is also triggered when the display is off. Use the ecore_animator_freeze() and ecore_animator_thaw() functions in the app_pause_cb and app_resume_cb callbacks for power saving.

    +
     static Eina_Bool anim(void *data) 
     {
    diff --git a/org.tizen.sampledescriptions/html/wearable_n/rectnotificationmanager_sd_wn.htm b/org.tizen.sampledescriptions/html/wearable_n/rectnotificationmanager_sd_wn.htm
    index 44df9e3..adf388c 100644
    --- a/org.tizen.sampledescriptions/html/wearable_n/rectnotificationmanager_sd_wn.htm
    +++ b/org.tizen.sampledescriptions/html/wearable_n/rectnotificationmanager_sd_wn.htm
    @@ -52,7 +52,7 @@
     
     static notification_h
     create_notification(const char *icon_path, const char *title_text, 
    -                    const char *content_text,const char *sound_path)
    +                    const char *content_text, const char *sound_path)
     {
        notification_h notify = notification_create(NOTIFICATION_TYPE_NOTI);
        if (notify)
    @@ -444,7 +444,7 @@ notify_cb(notification_data *notify_data)
        snprintf(notify_data->result_text, TEXT_MAX_LEN, " %s<br><br> %s%s<br><br> %s<br> %s<br><br> %s<br> %s<br>",
                 notify_data->fullname, result_message, 
                 (notify_data->notification) ? result_message_success_text : result_message_failure_text, 
    -            notify_message_text, _text,launch_argument_text, app_message_text);
    +            notify_message_text, _text, launch_argument_text, app_message_text);
     }
     
     void 
    diff --git a/org.tizen.sampledescriptions/html/wearable_n/rectwidgetviewer_sd_wn.htm b/org.tizen.sampledescriptions/html/wearable_n/rectwidgetviewer_sd_wn.htm
    index afe7699..52f59d9 100644
    --- a/org.tizen.sampledescriptions/html/wearable_n/rectwidgetviewer_sd_wn.htm
    +++ b/org.tizen.sampledescriptions/html/wearable_n/rectwidgetviewer_sd_wn.htm
    @@ -11,7 +11,7 @@
     	
     	
     
    -	The (Rectangle) Widget Viewer Overview
    +	(Rectangle) Widget Viewer Sample Overview
     
     
     
    @@ -26,246 +26,239 @@
     
     

    (Rectangle) Widget Viewer Sample Overview

    -

    The (Rectangle) Widget viewer sample application demonstrates how you can use widget service and viewer API.

    +

    The (Rectangle) Widget viewer sample application demonstrates how you can use the Widget Service and Widget Viewer APIs.

    -

    The following figure illustrates two screens of the (Rectangle) Widget viewer sample application: widget and widgets list views.

    +

    The following figure illustrates the screens of the (Rectangle) Widget Viewer application: widget and widget list views.

    -

    Figure 1: (Rectangle) Widget viewer views

    -

    (Rectangle) Widget viewer views (Rectangle) Widget viewer views

    +

    Figure: (Rectangle) Widget Viewer views

    +

    (Rectangle) Widget Viewer views (Rectangle) Widget Viewer views

    -

    Click the button to enter list view of widgets installed in the system.

    -

    From there you can select which widget you want to view.

    +

    Click Widget list to view the list of widgets installed in the system. In the list, you can select which widget you want to view.

    -

    Figure 2: (Rectangle) Widget viewer UI structure

    -

    (Rectangle) Widget viewer UI structure +

    The following figure shows the (Rectangle) Widget Viewer UI structure.

    +

    Figure: UI structure

    +

    UI structure

    Prerequisites

    -

    To ensure proper application execution, the http://tizen.org/privilege/widget.viewer privilege -must be set. Also there should be some widget applications preinstalled in the system. You could use one of the sample widget applications delivered with SDK. -You can see it in figure 1. It's documentation can be found here.

    +
    • To ensure proper application execution, the http://tizen.org/privilege/widget.viewer privilege +must be set.

    • +
    • Some widget application must be preinstalled in the system. You can use the Widget Animation sample delivered with the SDK.

    Implementation

    -

    Controller module

    +

    Controller Module

    -

    There are two importatnt functions in this module:

    +

    The controller module contains 2 important functions:

      -
    • __refresh_avaialable_widgets()
    • -
    • __widget_list_cb().
    • -
    - -

    The __refresh_avaialable_widgets() function calls the -API widget_service_get_widget_list() function, which in turn calls -the __widget_list_cb() callback function synchronously for each installed widget found in the system.

    -

    The __widget_list_cb() callback function takes the following arguments

    -
      -
    • pkgid - the identifier of the widget's package;
    • -
    • widget_id - the identifier of the widget, which may be the same as pkgid;
    • -
    • is_prime - indicates whether the widget is the default one;
    • -
    • data - user defined data. In this example we set the boolean flag to indicate that the old view content should be cleared only once.
    • -
    - -

    The __widget_list_cb() callback passes widget unique id and name to the view part of this application. -This is how the list of available widgets is created. The procedure repeats each time you enter widget list view. -List has to be refreshed because at any time widgets can be installed/uninstalled in the system.

    - +
  • __refresh_available_widgets() +

    The function calls the widget_service_get_widget_list() function, which in turn calls the __widget_list_cb() callback function synchronously for each installed widget found in the system.

    -static bool __refresh_avaialable_widgets(void)
    +static bool 
    +__refresh_available_widgets(void)
     {
    -  int res = TIZEN_ERROR_NONE;
    -  bool clear_list = true;
    +   int res = TIZEN_ERROR_NONE;
    +   bool clear_list = true;
     
    -  res = widget_service_get_widget_list(__widget_list_cb, &clear_list);
    +   res = widget_service_get_widget_list(__widget_list_cb, &clear_list);
     
    -  if (res < 0)
    -    dlog_print(DLOG_WARN, LOG_TAG, "Error obtaining widgets list or no widgets installed: %s", get_error_message(res));
    +   if (res < 0)
    +      dlog_print(DLOG_WARN, LOG_TAG, "Error obtaining widgets list or no widgets installed: %s", get_error_message(res));
     
    -  return true;
    +   return true;
     }
     
    +
  • +
  • __widget_list_cb() +

    The callback function takes the following parameters:

    +
      +
    • pkgid: Identifier of the widget package
    • +
    • widget_id: Identifier of the widget, which can be the same as pkgid
    • +
    • is_prime: Indicates whether the widget is the default one
    • +
    • data: User defined data. In this example, the boolean flag is set to indicate that the old view content must be cleared only once.
    • +
    +

    The __widget_list_cb() callback passes the unique widget ID and name to the view part of the application. The following example shows how the list of available widgets is created. The procedure repeats each time you enter the widget list view. The list has to be refreshed because at any time widgets can be installed or uninstalled in the system.

    -static int __widget_list_cb(const char *pkgid, const char *widget_id, int is_prime, void *data)
    +static int 
    +__widget_list_cb(const char *pkgid, const char *widget_id, int is_prime, void *data)
     {
    -  char *widget_name = NULL;
    +   char *widget_name = NULL;
     
    -  if (data && *(bool *)data) {
    -    view_clear_widgets_options();
    -    *(bool *)data = false;
    -  }
    +   if (data && *(bool *)data) 
    +   {
    +      view_clear_widgets_options();
    +      *(bool *)data = false;
    +   }
     
    -  dlog_print(DLOG_INFO, LOG_TAG, "widget-package: %s widget-id: %s widget is prime: %d", pkgid, widget_id, is_prime);
    +   dlog_print(DLOG_INFO, LOG_TAG, "widget-package: %s widget-id: %s widget is prime: %d", pkgid, widget_id, is_prime);
     
    -  if (!widget_service_get_nodisplay(widget_id)) {
    -    widget_name = widget_service_get_name(widget_id, NULL);
    -    view_add_widget_to_options(strndup(widget_id, NAME_MAX), widget_name);
    -    free(widget_name);
    -  }
    +   if (!widget_service_get_nodisplay(widget_id)) 
    +   {
    +      widget_name = widget_service_get_name(widget_id, NULL);
    +      view_add_widget_to_options(strndup(widget_id, NAME_MAX), widget_name);
    +      free(widget_name);
    +   }
     
    -  return WIDGET_ERROR_NONE;
    +   return WIDGET_ERROR_NONE;
     }
     
    +
  • + -

    View module

    +

    View Module

    -

    In order to use widget viewer API, it has to be initiated with the widget_viewer_evas_init() function.

    -

    Don't forget to use the widget_viewer_evas_fini() function at application exit.

    +

    To implement the view module:

    +
      +
    1. +

      Initialize the widget viewer with the widget_viewer_evas_init() function.

      +

      Use the widget_viewer_evas_fini() function at application exit.

      -#define WIDGET_CONTAINER_SIZE 100
      -#define WIDGET_SIZES_COUNT 13
      -
      +#define WIDGET_CONTAINER_SIZE 100 +#define WIDGET_SIZES_COUNT 13 -
      -bool view_create_gui(refresh_options_event_callback cb)
      +bool 
      +view_create_gui(refresh_options_event_callback cb)
       {
      -  int result = TIZEN_ERROR_NONE;
      +   int result = TIZEN_ERROR_NONE;
       
      -  vd.win = elm_win_util_standard_add(PACKAGE, PACKAGE);
      +   vd.win = elm_win_util_standard_add(PACKAGE, PACKAGE);
       
      -	// Error handling...
      +   // Error handling
       
      -  if (!__create_widget_view())
      -    return false;
      +   if (!__create_widget_view())
      +      return false;
       
      -  result = widget_viewer_evas_init(vd.widget_view);
      +   result = widget_viewer_evas_init(vd.widget_view);
       
      -	// Error handling...
      +   // Error handling
       
      -  vd.options_list = options_list_create(vd.win, __options_item_selection_changed);
      +   vd.options_list = options_list_create(vd.win, __options_item_selection_changed);
       
      -	// Error handling and common initialization code...
      +   // Error handling and common initialization code
       }
      -
      -
      -static bool __create_widget_view(void)
      +
      +static bool 
      +__create_widget_view(void)
       {
      -	// Variables declarations...
      +   // Variable declarations
       
      -  vd.widget_view = elm_layout_add(vd.win);
      +   vd.widget_view = elm_layout_add(vd.win);
       
      -	// Error handling and common initialization code...
      +   // Error handling and common initialization code
       
      -  grid = elm_grid_add(vd.widget_view);
      +   grid = elm_grid_add(vd.widget_view);
       
      -	// Error handling...
      +   // Error handling
       
      -  elm_grid_size_set(grid, WIDGET_CONTAINER_SIZE, WIDGET_CONTAINER_SIZE);
      -  elm_layout_content_set(vd.widget_view, MAIN_LAYOUT_WIDGET_CONTAINER, grid);
      +   elm_grid_size_set(grid, WIDGET_CONTAINER_SIZE, WIDGET_CONTAINER_SIZE);
      +   elm_layout_content_set(vd.widget_view, MAIN_LAYOUT_WIDGET_CONTAINER, grid);
       
      -  elm_layout_signal_callback_add(vd.widget_view, OPTIONS_CLICKED_SIG, MAIN_LAYOUT_OPTIONS_LIST_BUTTON,
      -										__option_button_click_cb, NULL);
      -  evas_object_show(vd.widget_view);
      +   elm_layout_signal_callback_add(vd.widget_view, OPTIONS_CLICKED_SIG, MAIN_LAYOUT_OPTIONS_LIST_BUTTON,
      +                                  __option_button_click_cb, NULL);
      +   evas_object_show(vd.widget_view);
       
      -  return true;
      +   return true;
       }
       
      - -

      For displaying the widget, the elm_layout with the elm_grid -are used as a container (see figure 2).

      -

      Each time the user selects a new widget to display (see figure 1, right), the following code is executed:

      - +
    2. +
    3. +

      For displaying the widget, the elm_layout with the elm_grid are used as a container. Each time the user selects a new widget to display, the __options_item_selection_changed() function is executed:

      +
        +
      1. Get the selected widget ID to display.
      2. +
      3. To display widget properly, obtain the widget supported sizes with the widget_service_get_supported_sizes() function. +

        Note that supported_sizes_count is an in/out parameter. Set it to any number to limit the length of resulting tables: widths and heights. The supported_sizes_count contains the length of these tables upon the function return.

      4. +
      5. If the widget ID is valid and it supports non-zero sizes, create an Evas_Object widget with the widget_viewer_evas_add_widget() function.

      -static void __options_item_selection_changed(void)
      +static void 
      +__options_item_selection_changed(void)
       {
      -	// Variables declarations...
      -
      -  const char *widget_id = options_list_get_selected_item_data(vd.options_list);
      +   // Variable declarations
       
      -	// Error handling...
      +   const char *widget_id = options_list_get_selected_item_data(vd.options_list);
       
      -  result = widget_service_get_supported_sizes(widget_id, &supported_sizes_count, &widths, &heights);
      +   // Error handling
       
      -	// Error handling...
      +   result = widget_service_get_supported_sizes(widget_id, &supported_sizes_count, &widths, &heights);
       
      -  wgt = widget_viewer_evas_add_widget(vd.widget_view, widget_id, NULL, WIDGET_VIEWER_EVAS_DEFAULT_PERIOD);
      +   // Error handling
       
      -	// Error handling...
      +   wgt = widget_viewer_evas_add_widget(vd.widget_view, widget_id, NULL, WIDGET_VIEWER_EVAS_DEFAULT_PERIOD);
       
      -  widget_viewer_evas_set_permanent_delete(wgt, 1);
      -  evas_object_smart_callback_add(wgt, WIDGET_SMART_SIGNAL_WIDGET_FAULTED, __widget_failure_evas_smart_cb, NULL);
      -  evas_object_smart_callback_add(wgt, WIDGET_SMART_SIGNAL_WIDGET_DELETED, __widget_failure_evas_smart_cb, NULL);
      -  evas_object_smart_callback_add(wgt, WIDGET_SMART_SIGNAL_PROVIDER_DISCONNECTED, __widget_failure_evas_smart_cb, NULL);
      -  evas_object_show(wgt);
      +   // Error handling
       
      -  grid = elm_layout_content_get(vd.widget_view, MAIN_LAYOUT_WIDGET_CONTAINER);
      -  elm_grid_clear(grid, EINA_TRUE);
      -
      -  elm_grid_pack(grid, wgt, 0, 0,
      -          (int)((float)widths[0] / (float)vd.screen_w * (float)WIDGET_CONTAINER_SIZE),
      -          (int)((float)heights[0] / (float)vd.screen_h * (float)WIDGET_CONTAINER_SIZE));
      +   widget_viewer_evas_set_permanent_delete(wgt, 1);
      +   evas_object_smart_callback_add(wgt, WIDGET_SMART_SIGNAL_WIDGET_FAULTED, __widget_failure_evas_smart_cb, NULL);
      +   evas_object_smart_callback_add(wgt, WIDGET_SMART_SIGNAL_WIDGET_DELETED, __widget_failure_evas_smart_cb, NULL);
      +   evas_object_smart_callback_add(wgt, WIDGET_SMART_SIGNAL_PROVIDER_DISCONNECTED, __widget_failure_evas_smart_cb, NULL);
      +   evas_object_show(wgt);
      +
      +
    4. +
    5. +

      The grid content is cleared with the elm_grid_clear() function and the previous Evas_Object widget is deleted.

      +

      The new Evas_Object widget is packed into the grid and scaled to fit the screen dimensions. To simplify the sample application, only the first supported size is chosen from the list (widths[0] and heights[0]).

      +
      +   grid = elm_layout_content_get(vd.widget_view, MAIN_LAYOUT_WIDGET_CONTAINER);
      +   elm_grid_clear(grid, EINA_TRUE);
       
      -  widget_size_type_e type = WIDGET_SIZE_TYPE_UNKNOWN;
      +   elm_grid_pack(grid, wgt, 0, 0, (int)((float)widths[0] / (float)vd.screen_w * (float)WIDGET_CONTAINER_SIZE),
      +                 (int)((float)heights[0] / (float)vd.screen_h * (float)WIDGET_CONTAINER_SIZE));
       
      -  result = widget_service_get_size_type(widths[0], heights[0], &type);
      +   widget_size_type_e type = WIDGET_SIZE_TYPE_UNKNOWN;
       
      -  if (result == 0)
      -    result = widget_service_get_need_of_frame(widget_id, type, &needs_frame);
      +   result = widget_service_get_size_type(widths[0], heights[0], &type);
      +
      +
    6. +
    7. +

      Some widgets need a frame (border) around them to be rendered. You can check this with the widget_service_get_need_of_frame() function. If a widget needs a surrounding frame, it is decorated with a red border by sending SHOW_FRAME_SIG to the elm_layout instance.

      +
      +   if (result == 0)
      +      result = widget_service_get_need_of_frame(widget_id, type, &needs_frame);
       
      -	// Error handling...
      +   // Error handling
       
      -  if (needs_frame) {
      -    elm_layout_signal_emit(vd.widget_view, SHOW_FRAME_SIG, "");
      -  } else {
      -    elm_layout_signal_emit(vd.widget_view, HIDE_FRAME_SIG, "");
      -  }
      +   if (needs_frame) 
      +   {
      +      elm_layout_signal_emit(vd.widget_view, SHOW_FRAME_SIG, "");
      +   } 
      +   else 
      +   {
      +      elm_layout_signal_emit(vd.widget_view, HIDE_FRAME_SIG, "");
      +   }
       
      -	// Common code...
      +   // Common code
       }
       
      - -

      The firs step in __options_item_selection_changed() -function is to get the selected widget id to display. Next, to display widget properly, the widget supported sizes are obtained by a call to -widget_service_get_supported_sizes(). -Note that supported_sizes_count is in/out parameter. -Set it to any number to limit the length of resulting tables: widths -and heights. The supported_sizes_count -will contain length of these tables upon the function return.

      -

      If widget id is valid and it supports non zero sizes, it is the time to create widget -Evas_Object with the -widget_viewer_evas_add_widget() call.

      - -

      At the beginning, the grid content is cleared (elm_grid_clear()) -and previous widget Evas_Object is deleted.

      -

      Then the new widget Evas_Object is packed into grid and scaled versus screen dimension. -To simplify the sample application, only the first supported size is chosen from the list -(widths[0] and -heights[0]). - -

      Some widgets need a frame (border) around them to be rendered. One can check this with -widget_service_get_need_of_frame() function call. -If a widget needs a surrounding frame, then it is decorated with red border by sending -SHOW_FRAME_SIG to the -elm_layout. -

      - -

      Also note that the newly created widget supports the following callbacks:

      +
    8. +
    9. When the widget is created, it supports the following callbacks:

        -
      • WIDGET_SMART_SIGNAL_WIDGET_FAULTED
      • -
      • WIDGET_SMART_SIGNAL_WIDGET_DELETED
      • -
      • WIDGET_SMART_SIGNAL_PROVIDER_DISCONNECTED
      • +
      • WIDGET_SMART_SIGNAL_WIDGET_FAULTED
      • +
      • WIDGET_SMART_SIGNAL_WIDGET_DELETED
      • +
      • WIDGET_SMART_SIGNAL_PROVIDER_DISCONNECTED
      -

      These events may occur upon some error in widget application or it's deinstallation. In case any of these events occur, the -__widget_failure_evas_smart_cb() callback function is called and -grid content is cleared. +

      These events can occur upon some error in the widget application or its uninstallation. If any of these events occur, the __widget_failure_evas_smart_cb() callback function is called and the grid content is cleared.

      -static void __widget_failure_evas_smart_cb(void *data, Evas_Object *obj, void *event_info)
      +static void 
      +__widget_failure_evas_smart_cb(void *data, Evas_Object *obj, void *event_info)
       {
      -  Evas_Object *grid = NULL;
      -  widget_evas_event_info_s *ev = (widget_evas_event_info_s *)event_info;
      +   Evas_Object *grid = NULL;
      +   widget_evas_event_info_s *ev = (widget_evas_event_info_s *)event_info;
       
      -  grid = elm_layout_content_get(vd.widget_view, MAIN_LAYOUT_WIDGET_CONTAINER);
      +   grid = elm_layout_content_get(vd.widget_view, MAIN_LAYOUT_WIDGET_CONTAINER);
       
      -  dlog_print(DLOG_INFO, LOG_TAG, "Removing widget %s on event %d error %d", ev->widget_app_id, ev->event, ev->error);
      +   dlog_print(DLOG_INFO, LOG_TAG, "Removing widget %s on event %d error %d", ev->widget_app_id, ev->event, ev->error);
       
      -  elm_grid_clear(grid, EINA_TRUE);
      -  elm_layout_signal_emit(vd.widget_view, HIDE_FRAME_SIG, "");
      +   elm_grid_clear(grid, EINA_TRUE);
      +   elm_layout_signal_emit(vd.widget_view, HIDE_FRAME_SIG, "");
       }
       
      +
    10. +
    + diff --git a/org.tizen.sampledescriptions/html/wearable_n/sd_wn.htm b/org.tizen.sampledescriptions/html/wearable_n/sd_wn.htm index b2c970c..f093923 100644 --- a/org.tizen.sampledescriptions/html/wearable_n/sd_wn.htm +++ b/org.tizen.sampledescriptions/html/wearable_n/sd_wn.htm @@ -49,6 +49,10 @@ (Rectangle) UI Components Demonstrates how you can implement UI components in a rectangular view. + + (Circle) Ambient Analog Watch + Demonstrates how you can implement a simple watch application with ambient mode support. + (Circle) Bluetooth Chat Demonstrates how you can send and receive data between 2 devices. @@ -60,13 +64,10 @@ (Circle) Cairo EvasGL Demonstrates how you can implement the Cairo GL backend with the Evas_GL surface. - + - (Circle) Ambient Analog Watch - Demonstrates how you can implement a simple watch application with ambient mode support. - - (Circle) Circular camera - Demonstrates how you can handle Camera API, among others how to start camera preview and capture images. + (Circle) Circular Camera + Demonstrates how you can handle camera features, such as start a camera preview and capture images. (Circle) Email @@ -75,10 +76,10 @@ (Circle) Rotary Timer Demonstrates how you can implement a circular digital clock with a timer function. - - + + (Circle) Sensors - Demonstrates how you can implement an application utilizing the device's sensors. + Demonstrates how you can implement an application utilizing the device sensors. (Circle) Setting Time @@ -103,11 +104,11 @@ (Rectangle) UI Dialer Demonstrates how you can implement a rectangular dialer view. - + - (Rectangle) Widget viewer - Demonstrates how you can use widget service and viewer API. - + (Rectangle) Widget Viewer + Demonstrates how you can use the widget service and viewer. + Analog Watch Demonstrates how you can implement an analog watch application. diff --git a/org.tizen.sampledescriptions/html/wearable_w/altimeter_ww.htm b/org.tizen.sampledescriptions/html/wearable_w/altimeter_ww.htm index 57f03db..50876ae 100644 --- a/org.tizen.sampledescriptions/html/wearable_w/altimeter_ww.htm +++ b/org.tizen.sampledescriptions/html/wearable_w/altimeter_ww.htm @@ -450,8 +450,10 @@ define(          {             settings[property] = value;             saveSettings(); +             return true;          } +          return false;       } @@ -463,8 +465,10 @@ define(          if (settings[property] === undefined)          {             console.error('Settings not initialized yet.'); +             return null;          } +          return settings[property];       } @@ -581,10 +585,9 @@ define(          else          {             /* Add the new item and subtract the one shifted out */ -            averagePressure += ( -               currentPressure - previousPressures.shift() -            ) / len; +            averagePressure += (currentPressure - previousPressures.shift()) / len;          } +          return averagePressure;       } diff --git a/org.tizen.sampledescriptions/html/wearable_w/basicwatch_ww.htm b/org.tizen.sampledescriptions/html/wearable_w/basicwatch_ww.htm index 4aacd45..46f0dac 100644 --- a/org.tizen.sampledescriptions/html/wearable_w/basicwatch_ww.htm +++ b/org.tizen.sampledescriptions/html/wearable_w/basicwatch_ww.htm @@ -46,6 +46,12 @@

    The application opens with the main screen that shows the current time.

    When the ambient mode is enabled, the watch application with a limited UI can be displayed on the idle screen to reduce power consumption.

    +

    Prerequisites

    +

    To ensure proper application execution, the following privilege must be set:

    +
      +
    • http://tizen.org/privilege/alarm
    • +
    +

    Source Files

    You can create and view the sample application project including the source files in the IDE.

    @@ -76,13 +82,14 @@

    Implementation

    The config.xml file contains the application information required to install and launch the application. The category name (http://tizen.org/category/wearable_clock) defines the application to be installed as a wearable clock application.

    -

    To enable a custom UI for the ambient mode, the ambient_support attribute must be set to enable. Additionally, the http://tizen.org/privilege/alarm privilege must be set to get timetick events, which occur once a minute to enable the UI to be updated.

    +

    To enable a custom UI for the ambient mode, the ambient_support attribute must be set to enable.

     <widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/BasicWatch" version="1.0.0" viewmodes="maximized">
        <tizen:category name="http://tizen.org/category/wearable_clock"/>
        <tizen:application id="OEYCjlM8hl.BasicWatch" package="OEYCjlM8hl" required_version="2.3" ambient_support="enable"/>
     
    +   <!--Get timetick events, occuring once a minute to enable the UI to be updated-->
        <tizen:privilege name="http://tizen.org/privilege/alarm"/>
        <tizen:setting background-support="disable" encryption="disable" hwkey-event="enable"/>
     </widget>
    diff --git a/org.tizen.sampledescriptions/html/wearable_w/calculator_ww.htm b/org.tizen.sampledescriptions/html/wearable_w/calculator_ww.htm
    index 3544fcc..df86853 100644
    --- a/org.tizen.sampledescriptions/html/wearable_w/calculator_ww.htm
    +++ b/org.tizen.sampledescriptions/html/wearable_w/calculator_ww.htm
    @@ -332,6 +332,7 @@ calculate: function calculate()
           {
              throw new DivisionByZeroError();
           }
    +
           return '/ ' + number;
        };
     
    diff --git a/org.tizen.sampledescriptions/html/wearable_w/camera_ww.htm b/org.tizen.sampledescriptions/html/wearable_w/camera_ww.htm
    index 1797f5a..dc5ea69 100644
    --- a/org.tizen.sampledescriptions/html/wearable_w/camera_ww.htm
    +++ b/org.tizen.sampledescriptions/html/wearable_w/camera_ww.htm
    @@ -591,6 +591,7 @@ function startTakingPicture()
        if (!cameraControl) 
        {
           cancelTakingPicture();
    +
           return;
        }
        cameraControl.image.onshutter = onShutter;
    diff --git a/org.tizen.sampledescriptions/html/wearable_w/digitalwatch_ww.htm b/org.tizen.sampledescriptions/html/wearable_w/digitalwatch_ww.htm
    index 1c2da1a..d3ed57b 100644
    --- a/org.tizen.sampledescriptions/html/wearable_w/digitalwatch_ww.htm
    +++ b/org.tizen.sampledescriptions/html/wearable_w/digitalwatch_ww.htm
    @@ -43,6 +43,13 @@
      

    The application opens with the main screen that shows the current time and battery status.

    When the ambient mode is enabled, the watch application with a limited UI can be displayed on the idle screen to reduce power consumption.

    + +

    Prerequisites

    +

    To ensure proper application execution, the following privilege must be set:

    +
      +
    • http://tizen.org/privilege/alarm
    • +
    +

    Source Files

    You can create and view the sample application project including the source files in the IDE.

    @@ -73,7 +80,7 @@

    Implementation

    The config.xml file contains the application information required to install and launch the application. The category name (http://tizen.org/category/wearable_clock) defines the application to be installed as a wearable clock application.

    -

    To enable a custom UI for the ambient mode, the ambient_support attribute must be set to enable. Additionally, the http://tizen.org/privilege/alarm privilege must be set to get timetick events, which occur once a minute to enable the UI to be updated.

    +

    To enable a custom UI for the ambient mode, the ambient_support attribute must be set to enable.

    @@ -81,6 +88,8 @@
     <widget xmlns="http://www.w3.org/ns/widgets">
        <tizen:category name="http://tizen.org/category/wearable_clock" />
        <tizen:application id="PxRGFrcVm7.DigitalWatch" package="PxRGFrcVm7" required_version="2.3" ambient_support="enable"/>
    +
    +   <!--Get timetick events, occuring once a minute to enable the UI to be updated-->
        <tizen:privilege name="http://tizen.org/privilege/alarm"/>
        <tizen:setting background-support="disable" encryption="disable" hwkey-event="enable"/>
     </widget>
    diff --git a/org.tizen.sampledescriptions/html/wearable_w/minigallery_ww.htm b/org.tizen.sampledescriptions/html/wearable_w/minigallery_ww.htm index 57b8f5e..abc290e 100644 --- a/org.tizen.sampledescriptions/html/wearable_w/minigallery_ww.htm +++ b/org.tizen.sampledescriptions/html/wearable_w/minigallery_ww.htm @@ -135,10 +135,7 @@ function deleteFile(fileUri)    resource,    function del(dir)    { -      dir.deleteFile( -      resource + '/' + name, - -      function scan() +      dir.deleteFile(resource + '/' + name, function scan()       {          tizen.content.scanFile(fileUri, function success() {}, function failed(e) {}),       }, diff --git a/org.tizen.sampledescriptions/html/wearable_w/moneybook_ww.htm b/org.tizen.sampledescriptions/html/wearable_w/moneybook_ww.htm index 212450b..fdef04d 100644 --- a/org.tizen.sampledescriptions/html/wearable_w/moneybook_ww.htm +++ b/org.tizen.sampledescriptions/html/wearable_w/moneybook_ww.htm @@ -63,7 +63,7 @@
    - + diff --git a/org.tizen.sampledescriptions/html/wearable_w/sd_ww.htm b/org.tizen.sampledescriptions/html/wearable_w/sd_ww.htm index a629ab6..3cce3e6 100644 --- a/org.tizen.sampledescriptions/html/wearable_w/sd_ww.htm +++ b/org.tizen.sampledescriptions/html/wearable_w/sd_ww.htm @@ -57,13 +57,20 @@ + + + + - + + + + + + + + + - + + + + +
    index.htmlThis is a starting file from which the application stars loading. It contains the layout of the application screens.This is a starting file from which the application starts loading. It contains the layout of the application screens.
    js/main.js
    App ManagerDemonstrates how you can manage applications installed on a device using: +
    AppCaller and AppCallee Demonstrates how you can use the application control to call other applications based on the operation type using:
    BasicWatch Demonstrates how you can create a simple clock application through the Canvas element using:
      @@ -116,6 +123,14 @@
    HeartRateMonitorDemonstrates how you can measure the device user's current heart rate using: + +
    HelloTizen Demonstrates how you can receive hardware key events and display text on the screen using:
      @@ -148,6 +163,15 @@
    PuzzleDemonstrates how you can create a puzzle game using: + +
    SensorBall Demonstrates how you can create an application that simulates ball behavior in 3 different environments using: @@ -155,7 +179,15 @@
  • Sensor API
  • Sound ManagerDemonstrates how you can manage custom sound profiles using: + +
    SpinningArrow Demonstrates how you can rotate images and use rotary events using: diff --git a/org.tizen.sampledescriptions/html/wearable_w/stopwatch_ww.htm b/org.tizen.sampledescriptions/html/wearable_w/stopwatch_ww.htm index 6ed8229..39f736f 100644 --- a/org.tizen.sampledescriptions/html/wearable_w/stopwatch_ww.htm +++ b/org.tizen.sampledescriptions/html/wearable_w/stopwatch_ww.htm @@ -201,6 +201,7 @@ tick: function tick()       return this;    }    (...) /* Execute callbacks */ +    return this; } @@ -224,6 +225,7 @@ run: function run()          break;       case 'running':          /* Already running */ +          return this;       case 'stopped':          throw new Error('Can\'t run a stopped timer again'); @@ -249,6 +251,7 @@ pause: function pause()    }    this.status = 'paused';    this.timePaused = Date.now(); +    return this; } @@ -260,6 +263,7 @@ stop: function stop()    clearInterval(this.id);    this.status = 'stopped';    this.timePaused = null; +    return this; } @@ -295,12 +299,12 @@ getTimeElapsed: function getTimeElapsed() /* js/models/timer.js */ lap: function lap() { -   var lapObj = new Lap( -      this.lapNo, -      /* Lap time is total time minus previous lap time */ -      this.getTimeElapsed() - this.lastLapTime); +   var lapObj = new Lap(this.lapNo, +                        /* Lap time is total time minus previous lap time */ +                        this.getTimeElapsed() - this.lastLapTime);    this.lastLapTime = this.getTimeElapsed();    this.lapNo += 1; +    return lapObj; } diff --git a/org.tizen.sampledescriptions/html/wearable_w/sunburnmonitor_ww.htm b/org.tizen.sampledescriptions/html/wearable_w/sunburnmonitor_ww.htm index dc783f4..0386f54 100644 --- a/org.tizen.sampledescriptions/html/wearable_w/sunburnmonitor_ww.htm +++ b/org.tizen.sampledescriptions/html/wearable_w/sunburnmonitor_ww.htm @@ -136,6 +136,7 @@ function init()    {       console.error('API is not supported!', error.message);       e.fire('not.supported'); +       return;    } diff --git a/org.tizen.sampledescriptions/html/wearable_w/voicerecorder_ww.htm b/org.tizen.sampledescriptions/html/wearable_w/voicerecorder_ww.htm index a068dda..3afa281 100644 --- a/org.tizen.sampledescriptions/html/wearable_w/voicerecorder_ww.htm +++ b/org.tizen.sampledescriptions/html/wearable_w/voicerecorder_ww.htm @@ -371,7 +371,7 @@ function onAudioControlError(error) */ function registerStream(mediaStream) { -   navigator.tizCamera.createCameraControl(;mediaStream, onAudioControlCreated, onAudioControlError); +   navigator.tizCamera.createCameraControl(mediaStream, onAudioControlCreated, onAudioControlError); } diff --git a/org.tizen.sampledescriptions/index.xml b/org.tizen.sampledescriptions/index.xml index 4085ba4..8c85925 100644 --- a/org.tizen.sampledescriptions/index.xml +++ b/org.tizen.sampledescriptions/index.xml @@ -84,7 +84,10 @@ + + + @@ -95,6 +98,7 @@ + @@ -118,6 +122,7 @@ + @@ -145,9 +150,11 @@ + - + + -- 2.7.4