From 925fc665c65c61a6d332464dc656f3b70bb35e84 Mon Sep 17 00:00:00 2001 From: Sehong Na Date: Sat, 31 May 2014 12:29:30 +0900 Subject: [PATCH] Initialize Tizen 2.3 --- .cproject | 815 +++++++ .project | 92 + CMakeLists.txt | 45 + LICENSE.Flora | 206 ++ NOTICE | 3 + inc/PhnAppUtility.h | 102 + inc/PhnCallInfo.h | 160 ++ inc/PhnCallLogPresentationModel.h | 91 + inc/PhnCallLogViewByPopup.h | 105 + inc/PhnCallRejectInfo.h | 71 + inc/PhnCallSettingDataService.h | 179 ++ inc/PhnCalllogManager.h | 274 +++ inc/PhnCommonUtils.h | 179 ++ inc/PhnDialAppForm.h | 57 + inc/PhnDialContactInfo.h | 85 + inc/PhnDialPresentationModel.h | 93 + inc/PhnDialerKeypad.h | 101 + inc/PhnEmergencyDialForm.h | 83 + inc/PhnErrorMsgPopup.h | 78 + inc/PhnIAppStateChangeListner.h | 37 + inc/PhnICallLogViewByPopupListener.h | 46 + inc/PhnICalllogChangeListener.h | 39 + inc/PhnIPopupItemSelectListener.h | 48 + inc/PhnISettingsEventListener.h | 54 + inc/PhnLogsDetailForm.h | 244 +++ inc/PhnLogsDetailItemProvider.h | 124 ++ inc/PhnPanelFactory.h | 46 + inc/PhnPhoneApp.h | 118 + inc/PhnPhoneAppFrame.h | 46 + inc/PhnPhoneFormFactory.h | 50 + inc/PhnRetrieveSuggestionsTasks.h | 119 + inc/PhnSceneRegister.h | 43 + inc/PhnSettingsAddNumberForm.h | 205 ++ inc/PhnSettingsBarringPwdForm.h | 92 + inc/PhnSettingsCallAccessoryForm.h | 133 ++ inc/PhnSettingsCallAnsweringForm.h | 120 + inc/PhnSettingsCallForwardWaitBarrForm.h | 215 ++ inc/PhnSettingsCallStatusTonesForm.h | 130 ++ inc/PhnSettingsDeleteListForm.h | 122 ++ inc/PhnSettingsEditRejectMsgForm.h | 92 + inc/PhnSettingsForwardToNumberForm.h | 180 ++ inc/PhnSettingsMainMenuForm.h | 149 ++ inc/PhnSettingsManager.h | 238 ++ inc/PhnSettingsMoreOptionsForm.h | 184 ++ inc/PhnSettingsPresentationModel.h | 175 ++ inc/PhnSettingsRejectListForm.h | 117 + inc/PhnSettingsRejectMsgsForm.h | 119 + inc/PhnSettingsSpeedDialForm.h | 129 ++ inc/PhnSpeedDialInfo.h | 70 + inc/PhnSpeedDialPopup.h | 78 + inc/PhnSuggestionItemProvider.h | 55 + inc/PhnTabDialer.h | 223 ++ inc/PhnTabLogs.h | 220 ++ inc/PhnTabLogsItemProvider.h | 75 + inc/PhnTypes.h | 775 +++++++ inc/PhnUnknownLogsDetailForm.h | 167 ++ lib/nofile.dummy | 0 manifest.xml | 48 + packaging/apps.Phone.spec | 85 + res/eng-GB.xml | 236 ++ res/screen-density-xhigh/00_Nocontents_text.png | Bin 0 -> 5167 bytes res/screen-density-xhigh/00_button_03.png | Bin 0 -> 4467 bytes res/screen-density-xhigh/00_button_contact_ef.png | Bin 0 -> 3918 bytes res/screen-density-xhigh/00_button_delete.png | Bin 0 -> 2529 bytes .../00_button_expand_closed.png | Bin 0 -> 3280 bytes .../00_button_expand_closed_ef.png | Bin 0 -> 3415 bytes .../00_button_expand_opened.png | Bin 0 -> 3276 bytes .../00_button_expand_opened_ef.png | Bin 0 -> 3267 bytes res/screen-density-xhigh/00_icon_Back.png | Bin 0 -> 2798 bytes res/screen-density-xhigh/00_icon_Back_press.png | Bin 0 -> 3047 bytes res/screen-density-xhigh/00_icon_more.png | Bin 0 -> 1497 bytes res/screen-density-xhigh/00_icon_more_press.png | Bin 0 -> 1570 bytes res/screen-density-xhigh/00_index list_bg.png | Bin 0 -> 2812 bytes .../00_indexlist_icon_opened.png | Bin 0 -> 3471 bytes .../00_list_group_bg_bottom_ef.#.png | Bin 0 -> 3153 bytes .../00_list_group_bg_center_ef.#.png | Bin 0 -> 2893 bytes res/screen-density-xhigh/00_list_group_bg_ef.#.png | Bin 0 -> 3310 bytes .../00_list_group_bg_top_ef.#.png | Bin 0 -> 3138 bytes res/screen-density-xhigh/00_list_process_01.png | Bin 0 -> 2164 bytes res/screen-density-xhigh/00_list_process_02.png | Bin 0 -> 2130 bytes res/screen-density-xhigh/00_list_process_03.png | Bin 0 -> 2071 bytes res/screen-density-xhigh/00_list_process_04.png | Bin 0 -> 2213 bytes res/screen-density-xhigh/00_list_process_05.png | Bin 0 -> 2195 bytes res/screen-density-xhigh/00_list_process_06.png | Bin 0 -> 2165 bytes res/screen-density-xhigh/00_list_process_07.png | Bin 0 -> 2154 bytes res/screen-density-xhigh/00_list_process_08.png | Bin 0 -> 2259 bytes res/screen-density-xhigh/00_list_process_09.png | Bin 0 -> 2256 bytes res/screen-density-xhigh/00_list_process_10.png | Bin 0 -> 2170 bytes res/screen-density-xhigh/00_list_process_11.png | Bin 0 -> 2124 bytes res/screen-density-xhigh/00_list_process_12.png | Bin 0 -> 2169 bytes res/screen-density-xhigh/00_list_process_13.png | Bin 0 -> 2206 bytes res/screen-density-xhigh/00_list_process_14.png | Bin 0 -> 2223 bytes res/screen-density-xhigh/00_list_process_15.png | Bin 0 -> 2237 bytes res/screen-density-xhigh/00_list_process_16.png | Bin 0 -> 2150 bytes res/screen-density-xhigh/00_list_process_17.png | Bin 0 -> 2147 bytes res/screen-density-xhigh/00_list_process_18.png | Bin 0 -> 2116 bytes res/screen-density-xhigh/00_list_process_19.png | Bin 0 -> 2217 bytes res/screen-density-xhigh/00_list_process_20.png | Bin 0 -> 2202 bytes res/screen-density-xhigh/00_list_process_21.png | Bin 0 -> 2165 bytes res/screen-density-xhigh/00_list_process_22.png | Bin 0 -> 2110 bytes res/screen-density-xhigh/00_list_process_23.png | Bin 0 -> 2246 bytes res/screen-density-xhigh/00_list_process_24.png | Bin 0 -> 2204 bytes res/screen-density-xhigh/00_list_process_25.png | Bin 0 -> 2131 bytes res/screen-density-xhigh/00_list_process_26.png | Bin 0 -> 2107 bytes res/screen-density-xhigh/00_list_process_27.png | Bin 0 -> 2155 bytes res/screen-density-xhigh/00_list_process_28.png | Bin 0 -> 2185 bytes res/screen-density-xhigh/00_list_process_29.png | Bin 0 -> 2188 bytes res/screen-density-xhigh/00_list_process_30.png | Bin 0 -> 2198 bytes .../00_list_square_thumbnail_normal.png | Bin 0 -> 2992 bytes .../00_list_square_thumbnail_press.png | Bin 0 -> 3015 bytes res/screen-density-xhigh/00_popup_bg_ef.9.png | Bin 0 -> 3626 bytes .../00_popup_bubble_tail_bottom.png | Bin 0 -> 3671 bytes .../00_popup_bubble_tail_top.png | Bin 0 -> 3381 bytes .../00_reorder_group_list_bg.png | Bin 0 -> 2916 bytes res/screen-density-xhigh/00_volume_icon_Mute.png | Bin 0 -> 3492 bytes res/screen-density-xhigh/00_winset_Back.png | Bin 0 -> 3109 bytes res/screen-density-xhigh/00_winset_more.png | Bin 0 -> 3310 bytes res/screen-density-xhigh/00_winset_more_press.png | Bin 0 -> 3306 bytes res/screen-density-xhigh/C01-1_Back_btn_normal.png | Bin 0 -> 1582 bytes res/screen-density-xhigh/C01-1_Back_btn_press.png | Bin 0 -> 1600 bytes .../C01-1_Reject_message_arrow_01.png | Bin 0 -> 2929 bytes .../C01-1_Reject_message_arrow_02.png | Bin 0 -> 2948 bytes .../C01-1_Reject_message_bg.png | Bin 0 -> 3489 bytes res/screen-density-xhigh/C01-1_animation_bg.png | Bin 0 -> 9104 bytes res/screen-density-xhigh/C01-1_bg.png | Bin 0 -> 128622 bytes res/screen-density-xhigh/C01-1_button_01_press.png | Bin 0 -> 1668 bytes .../C01-1_button_02_normal.png | Bin 0 -> 1631 bytes .../C01-1_button_03_normal.png | Bin 0 -> 1680 bytes res/screen-density-xhigh/C01-1_button_05_press.png | Bin 0 -> 2959 bytes res/screen-density-xhigh/C01-1_button_bg.png | Bin 0 -> 3393 bytes res/screen-density-xhigh/C01-1_button_call.png | Bin 0 -> 1586 bytes .../C01-1_button_call_press.png | Bin 0 -> 1584 bytes res/screen-density-xhigh/C01-1_button_press.png | Bin 0 -> 3357 bytes res/screen-density-xhigh/C01-1_contact_btn.png | Bin 0 -> 1640 bytes .../C01-1_contact_btn_press.png | Bin 0 -> 1646 bytes res/screen-density-xhigh/C01-1_icon_Pause.png | Bin 0 -> 3696 bytes res/screen-density-xhigh/C01-1_icon_Play.png | Bin 0 -> 3975 bytes .../C01-1_icon_Reject_with_Message.png | Bin 0 -> 3406 bytes .../C01-1_icon_button_press.png | Bin 0 -> 3944 bytes res/screen-density-xhigh/C01-1_icon_call.png | Bin 0 -> 3674 bytes res/screen-density-xhigh/C01-1_icon_call_press.png | Bin 0 -> 3312 bytes res/screen-density-xhigh/C01-1_icon_contacts.png | Bin 0 -> 3992 bytes .../C01-1_icon_contacts_press.png | Bin 0 -> 3946 bytes .../C01-1_icon_end call_press_wh.png | Bin 0 -> 3409 bytes res/screen-density-xhigh/C01-1_icon_headset.png | Bin 0 -> 4075 bytes .../C01-1_icon_headset_dim.png | Bin 0 -> 4037 bytes .../C01-1_icon_headset_press.png | Bin 0 -> 4042 bytes .../C01-1_icon_headset_press_wh.png | Bin 0 -> 3469 bytes .../C01-1_icon_message_press_wh.png | Bin 0 -> 3489 bytes .../C01-1_icon_speaker_press.png | Bin 0 -> 4036 bytes res/screen-density-xhigh/C01-1_icon_stop.png | Bin 0 -> 2932 bytes res/screen-density-xhigh/C01-1_icon_stop_dim.png | Bin 0 -> 2934 bytes res/screen-density-xhigh/C01-1_icon_stop_press.png | Bin 0 -> 2932 bytes .../C01-1_icon_stop_press_wh.png | Bin 0 -> 2928 bytes .../C01-1_icon_video call_press_wh.png | Bin 0 -> 4568 bytes .../C01-1_lock_icon_accept.png | Bin 0 -> 4136 bytes .../C01-1_lock_icon_accept_arrow.png | Bin 0 -> 2974 bytes .../C01-1_lock_icon_accept_arrow_press.png | Bin 0 -> 2988 bytes .../C01-1_lock_icon_accept_press.png | Bin 0 -> 4150 bytes .../C01-1_lock_icon_reject.png | Bin 0 -> 3614 bytes .../C01-1_lock_icon_reject_arrow.png | Bin 0 -> 3013 bytes .../C01-1_lock_icon_reject_arrow_press.png | Bin 0 -> 2977 bytes .../C01-1_lock_icon_reject_press.png | Bin 0 -> 3627 bytes .../C01-1_outgoingcall_No caller ID.png | Bin 0 -> 69772 bytes res/screen-density-xhigh/C01-1_voice_call_icon.png | Bin 0 -> 6004 bytes .../C01-3_Nocontacts_Dialer.PNG | Bin 0 -> 3718 bytes res/screen-density-xhigh/C01-3_button_01.png | Bin 0 -> 16598 bytes res/screen-density-xhigh/C01-3_button_01_dim.png | Bin 0 -> 16598 bytes res/screen-density-xhigh/C01-3_button_01_press.png | Bin 0 -> 13919 bytes res/screen-density-xhigh/C01-3_button_02.png | Bin 0 -> 10941 bytes res/screen-density-xhigh/C01-3_button_02_dim.png | Bin 0 -> 11006 bytes res/screen-density-xhigh/C01-3_button_02_press.png | Bin 0 -> 14438 bytes .../C01-3_button_contacts_bg.png | Bin 0 -> 3474 bytes .../C01-3_dialer_btn_1line_bg.9.png | Bin 0 -> 1280 bytes .../C01-3_dialer_btn_1line_bg.png | Bin 0 -> 3713 bytes .../C01-3_dialer_btn_2line_bg.9.png | Bin 0 -> 1173 bytes .../C01-3_dialer_btn_2line_bg.png | Bin 0 -> 3666 bytes .../C01-3_dialer_btn_3line_bg.9.png | Bin 0 -> 1290 bytes .../C01-3_dialer_btn_3line_bg.png | Bin 0 -> 3706 bytes .../C01-3_dialer_btn_4line_bg.9.png | Bin 0 -> 1268 bytes .../C01-3_dialer_btn_4line_bg.png | Bin 0 -> 3699 bytes .../C01-3_dialer_btn_5line_bg.9.png | Bin 0 -> 1200 bytes .../C01-3_dialer_btn_5line_bg.png | Bin 0 -> 3660 bytes .../C01-3_dialer_btn_call_bg.9.png | Bin 0 -> 1274 bytes .../C01-3_dialer_btn_call_bg.png | Bin 0 -> 3712 bytes .../C01-3_dialer_btn_option_bg.9.png | Bin 0 -> 1164 bytes .../C01-3_dialer_btn_option_bg.png | Bin 0 -> 3303 bytes .../C01-3_dialer_btn_option_press.9.png | Bin 0 -> 411 bytes .../C01-3_dialer_btn_option_press.png | Bin 0 -> 3063 bytes .../C01-3_dialer_btn_press.9.png | Bin 0 -> 3846 bytes .../C01-3_dialer_btn_press.png | Bin 0 -> 6466 bytes res/screen-density-xhigh/C01-3_dialer_icon_01.png | Bin 0 -> 3715 bytes .../C01-3_dialer_icon_01_press.png | Bin 0 -> 3608 bytes .../C01-3_dialer_icon_clear.png | Bin 0 -> 4701 bytes .../C01-3_dialer_icon_star.png | Bin 0 -> 3477 bytes .../C01-3_dialer_search_field_bg.png | Bin 0 -> 3162 bytes res/screen-density-xhigh/C01-3_field_btn_clear.png | Bin 0 -> 3279 bytes res/screen-density-xhigh/C01-3_icon_call.png | Bin 0 -> 3592 bytes res/screen-density-xhigh/C01-3_icon_call_dim.png | Bin 0 -> 3510 bytes res/screen-density-xhigh/C01-3_icon_call_press.png | Bin 0 -> 2410 bytes res/screen-density-xhigh/C01-3_icon_clear.png | Bin 0 -> 4223 bytes res/screen-density-xhigh/C01-3_icon_delete.png | Bin 0 -> 3619 bytes res/screen-density-xhigh/C01-3_icon_expand_01.png | Bin 0 -> 1376 bytes .../C01-3_icon_expand_01_press.png | Bin 0 -> 1356 bytes res/screen-density-xhigh/C01-3_icon_expand_02.png | Bin 0 -> 1396 bytes .../C01-3_icon_expand_02_press.png | Bin 0 -> 1338 bytes res/screen-density-xhigh/C01-3_icon_message.png | Bin 0 -> 3860 bytes .../C01-3_icon_message_dim.png | Bin 0 -> 3537 bytes .../C01-3_icon_message_press.png | Bin 0 -> 3694 bytes res/screen-density-xhigh/C01-3_icon_voicecall.png | Bin 0 -> 5365 bytes res/screen-density-xhigh/C01-3_keypad_bg.png | Bin 0 -> 41103 bytes res/screen-density-xhigh/C01-3_keypad_bg_h.png | Bin 0 -> 66835 bytes .../C01-3_keypad_bg_reduction.png | Bin 0 -> 3367 bytes .../C01-3_keypad_number_00.png | Bin 0 -> 4225 bytes .../C01-3_keypad_number_01.png | Bin 0 -> 1984 bytes .../C01-3_keypad_number_02.png | Bin 0 -> 3695 bytes .../C01-3_keypad_number_03.png | Bin 0 -> 4293 bytes .../C01-3_keypad_number_04.png | Bin 0 -> 2733 bytes .../C01-3_keypad_number_05.png | Bin 0 -> 3951 bytes .../C01-3_keypad_number_06.png | Bin 0 -> 4704 bytes .../C01-3_keypad_number_07.png | Bin 0 -> 2786 bytes .../C01-3_keypad_number_08.png | Bin 0 -> 4577 bytes .../C01-3_keypad_number_09.png | Bin 0 -> 4648 bytes .../C01-3_keypad_number_asterisk.png | Bin 0 -> 2922 bytes .../C01-3_keypad_number_auto_answer.png | Bin 0 -> 3389 bytes .../C01-3_keypad_number_mute.png | Bin 0 -> 3204 bytes .../C01-3_keypad_number_sharp.png | Bin 0 -> 3155 bytes res/screen-density-xhigh/C01-3_keypad_press.png | Bin 0 -> 8429 bytes res/screen-density-xhigh/C01-3_keypad_press_h.png | Bin 0 -> 8269 bytes .../C01-3_number saerch_bg_01.png | Bin 0 -> 38299 bytes .../C01-3_number saerch_bg_02.png | Bin 0 -> 46672 bytes .../C01-3_number saerch_bg_h_01.png | Bin 0 -> 35950 bytes .../C01-3_number saerch_bg_h_02.png | Bin 0 -> 38589 bytes .../C01-3_number saerch_bg_h_03.png | Bin 0 -> 37740 bytes res/screen-density-xhigh/C01-3_option_icon.png | Bin 0 -> 3228 bytes res/screen-density-xhigh/C01-3_option_icon_dim.png | Bin 0 -> 3214 bytes .../C01-3_option_icon_press.png | Bin 0 -> 3645 bytes .../C01-3_predictive_circle_button_normal.png | Bin 0 -> 6717 bytes .../C01-3_predictive_circle_button_press.png | Bin 0 -> 7873 bytes res/screen-density-xhigh/C01-3_search_bg.png | Bin 0 -> 46534 bytes res/screen-density-xhigh/C01-3_search_field.png | Bin 0 -> 3311 bytes res/screen-density-xhigh/C01-3_search_icon.png | Bin 0 -> 3581 bytes res/screen-density-xhigh/C01-3_tab_divider.png | Bin 0 -> 2812 bytes res/screen-density-xhigh/C01-3_title_divider.png | Bin 0 -> 2812 bytes .../C01-3_toolbar_icon_back.png | Bin 0 -> 2017 bytes .../C01-3_toolbar_icon_back_press.png | Bin 0 -> 3849 bytes .../C01-3_toolbar_icon_more.png | Bin 0 -> 1403 bytes .../C01-3_toolbar_icon_more_press.png | Bin 0 -> 3211 bytes res/screen-density-xhigh/C01-4_btn_icon_call.png | Bin 0 -> 3294 bytes .../C01-4_btn_icon_call_dim.png | Bin 0 -> 3253 bytes .../C01-4_btn_icon_message.png | Bin 0 -> 3341 bytes .../C01-4_btn_icon_message_dim.png | Bin 0 -> 3341 bytes .../C01-4_btn_icon_video_call.png | Bin 0 -> 3204 bytes .../C01-4_btn_icon_video_call_dim.png | Bin 0 -> 3173 bytes res/screen-density-xhigh/C01-4_circle_button.png | Bin 0 -> 13968 bytes .../C01-4_circle_button_press.png | Bin 0 -> 15848 bytes .../C01-4_circle_icon_call.png | Bin 0 -> 5191 bytes .../C01-4_circle_icon_call_press.png | Bin 0 -> 3763 bytes res/screen-density-xhigh/C01-4_circle_icon_sms.png | Bin 0 -> 5135 bytes .../C01-4_circle_icon_sms_press.png | Bin 0 -> 3719 bytes .../C01-4_controlbar_icon_cancel.png | Bin 0 -> 3286 bytes .../C01-4_controlbar_icon_done.png | Bin 0 -> 3508 bytes res/screen-density-xhigh/C01-4_icon_Blocked.png | Bin 0 -> 4363 bytes .../C01-4_icon_call_blocked.png | Bin 0 -> 1740 bytes res/screen-density-xhigh/C01-4_icon_dialed.png | Bin 0 -> 3549 bytes .../C01-4_icon_message_blocked.png | Bin 0 -> 1423 bytes .../C01-4_icon_missed-call.png | Bin 0 -> 4600 bytes res/screen-density-xhigh/C01-4_icon_received.png | Bin 0 -> 3445 bytes res/screen-density-xhigh/C01-4_icon_rejected.png | Bin 0 -> 4160 bytes res/screen-density-xhigh/C01-4_list_icon_call.png | Bin 0 -> 3246 bytes res/screen-density-xhigh/C01-4_list_icon_mms.png | Bin 0 -> 3484 bytes res/screen-density-xhigh/C01-4_list_icon_sms.png | Bin 0 -> 3252 bytes .../C01-4_list_icon_vt-call.png | Bin 0 -> 3613 bytes res/screen-density-xhigh/C01-5_icon_cancel.png | Bin 0 -> 3990 bytes res/screen-density-xhigh/C01-5_icon_cancel_web.png | Bin 0 -> 4159 bytes .../C01-5_icon_cancel_web_press.png | Bin 0 -> 3974 bytes .../C01-5_icon_speeddial_check.png | Bin 0 -> 4224 bytes res/screen-density-xhigh/C01-5_icon_voicecall.png | Bin 0 -> 3572 bytes .../C01_3_dialer_icon_option.png | Bin 0 -> 3019 bytes .../M01_contact_default_image.png | Bin 0 -> 5425 bytes .../M01_contact_default_image_press.png | Bin 0 -> 5959 bytes res/screen-density-xhigh/more.png | Bin 0 -> 3081 bytes res/screen-density-xhigh/more_press.png | Bin 0 -> 3091 bytes res/screen-size-normal/IDL_CALL_BLOCK_POPUP.xml | 37 + .../IDL_CALL_LOG_DETAIL_FORM.xml | 82 + .../IDL_CALL_LOG_VIEWBY_POPUP.xml | 22 + res/screen-size-normal/IDL_DIALER_KEYPAD_PANEL.xml | 73 + res/screen-size-normal/IDL_DIAL_FORM.xml | 25 + res/screen-size-normal/IDL_EMERGENCY_DIAL_FORM.xml | 28 + res/screen-size-normal/IDL_ERROR_MSG_POPUP.xml | 17 + res/screen-size-normal/IDL_PANEL_DIALER.xml | 99 + res/screen-size-normal/IDL_PANEL_LOGS.xml | 22 + .../IDL_RESTRICTED_CALL_LOG_DETAIL_FORM.xml | 28 + .../IDL_SETTINGS_ADD_EDIT_REJECT_MSGS_FORM.xml | 26 + .../IDL_SETTINGS_ADD_NUMBER_FORM.xml | 27 + .../IDL_SETTINGS_AUTO_AREA_CODE_FORM.xml | 27 + .../IDL_SETTINGS_CALL_ACCESSORY_FORM.xml | 23 + .../IDL_SETTINGS_CALL_ANSWERING_FORM.xml | 27 + ...IDL_SETTINGS_CALL_FORWARD_WAIT_BARRING_FORM.xml | 23 + .../IDL_SETTINGS_DELETE_LIST_FORM.xml | 32 + .../IDL_SETTINGS_FORWARDTO_NUMBER_FORM.xml | 43 + .../IDL_SETTINGS_MAINMENU_FORM.xml | 23 + .../IDL_SETTINGS_MOREOPTIONS_FORM.xml | 23 + .../IDL_SETTINGS_NOREPLY_FORWARDTO_NUMBER_FORM.xml | 48 + .../IDL_SETTINGS_REJECTLIST_FORM.xml | 27 + .../IDL_SETTINGS_REJECTMSGS_FORM.xml | 27 + .../IDL_SETTINGS_SET_BARRING_PWD__FORM.xml | 32 + .../IDL_SETTINGS_SPEEDDIAL_FORM.xml | 118 + .../IDL_SETTINGS_STATUS_TONES_FORM.xml | 23 + res/screen-size-normal/IDL_SPEED_DIAL_POPUP.xml | 23 + shared/data/Call_Connect.ogg | Bin 0 -> 6617 bytes shared/data/Call_Disconnect.ogg | Bin 0 -> 8157 bytes shared/data/Call_RecordStart.wav | Bin 0 -> 22768 bytes shared/data/Call_WaitingTone.wav | Bin 0 -> 78244 bytes shared/data/ringtone_sdk.mp3 | Bin 0 -> 213228 bytes shared/res/screen-density-xhigh/mainmenu.png | Bin 0 -> 57662 bytes shared/trusted/nofile.dummy | 0 src/PhnAppUtility.cpp | 356 +++ src/PhnCallInfo.cpp | 353 +++ src/PhnCallLogPresentationModel.cpp | 333 +++ src/PhnCallLogViewByPopup.cpp | 473 ++++ src/PhnCallRejectInfo.cpp | 69 + src/PhnCallSettingDataService.cpp | 819 +++++++ src/PhnCalllogManager.cpp | 1567 +++++++++++++ src/PhnCommonUtils.cpp | 999 +++++++++ src/PhnDialAppForm.cpp | 170 ++ src/PhnDialContactInfo.cpp | 257 +++ src/PhnDialPresentationModel.cpp | 362 ++++ src/PhnDialerKeypad.cpp | 541 +++++ src/PhnEmergencyDialForm.cpp | 357 +++ src/PhnErrorMsgPopup.cpp | 257 +++ src/PhnLogsDetailForm.cpp | 1933 +++++++++++++++++ src/PhnLogsDetailItemProvider.cpp | 787 +++++++ src/PhnPanelFactory.cpp | 60 + src/PhnPhoneApp.cpp | 530 +++++ src/PhnPhoneAppEntry.cpp | 53 + src/PhnPhoneAppFrame.cpp | 60 + src/PhnPhoneFormFactory.cpp | 271 +++ src/PhnRetrieveSuggestionsTasks.cpp | 632 ++++++ src/PhnSceneRegister.cpp | 86 + src/PhnSettingsAddNumberForm.cpp | 1413 ++++++++++++ src/PhnSettingsBarringPwdForm.cpp | 351 +++ src/PhnSettingsCallAccessoryForm.cpp | 550 +++++ src/PhnSettingsCallAnsweringForm.cpp | 364 ++++ src/PhnSettingsCallForwardWaitBarrForm.cpp | 1503 +++++++++++++ src/PhnSettingsCallStatusTonesForm.cpp | 429 ++++ src/PhnSettingsDeleteListForm.cpp | 845 ++++++++ src/PhnSettingsEditRejectMsgForm.cpp | 304 +++ src/PhnSettingsForwardToNumberForm.cpp | 796 +++++++ src/PhnSettingsMainMenuForm.cpp | 465 ++++ src/PhnSettingsManager.cpp | 2002 +++++++++++++++++ src/PhnSettingsMoreOptionsForm.cpp | 1029 +++++++++ src/PhnSettingsPresentationModel.cpp | 484 +++++ src/PhnSettingsRejectListForm.cpp | 590 +++++ src/PhnSettingsRejectMsgsForm.cpp | 496 +++++ src/PhnSettingsSpeedDialForm.cpp | 1337 ++++++++++++ src/PhnSpeedDialInfo.cpp | 57 + src/PhnSpeedDialPopup.cpp | 214 ++ src/PhnSuggestionItemProvider.cpp | 114 + src/PhnTabDialer.cpp | 2291 ++++++++++++++++++++ src/PhnTabLogs.cpp | 1392 ++++++++++++ src/PhnTabLogsItemProvider.cpp | 607 ++++++ src/PhnTypes.cpp | 567 +++++ src/PhnUnknownLogsDetailForm.cpp | 723 ++++++ 364 files changed, 39518 insertions(+) create mode 100644 .cproject create mode 100644 .project create mode 100644 CMakeLists.txt create mode 100644 LICENSE.Flora create mode 100644 NOTICE create mode 100644 inc/PhnAppUtility.h create mode 100644 inc/PhnCallInfo.h create mode 100644 inc/PhnCallLogPresentationModel.h create mode 100644 inc/PhnCallLogViewByPopup.h create mode 100644 inc/PhnCallRejectInfo.h create mode 100644 inc/PhnCallSettingDataService.h create mode 100644 inc/PhnCalllogManager.h create mode 100644 inc/PhnCommonUtils.h create mode 100644 inc/PhnDialAppForm.h create mode 100644 inc/PhnDialContactInfo.h create mode 100644 inc/PhnDialPresentationModel.h create mode 100644 inc/PhnDialerKeypad.h create mode 100644 inc/PhnEmergencyDialForm.h create mode 100644 inc/PhnErrorMsgPopup.h create mode 100644 inc/PhnIAppStateChangeListner.h create mode 100644 inc/PhnICallLogViewByPopupListener.h create mode 100644 inc/PhnICalllogChangeListener.h create mode 100644 inc/PhnIPopupItemSelectListener.h create mode 100644 inc/PhnISettingsEventListener.h create mode 100644 inc/PhnLogsDetailForm.h create mode 100644 inc/PhnLogsDetailItemProvider.h create mode 100644 inc/PhnPanelFactory.h create mode 100644 inc/PhnPhoneApp.h create mode 100644 inc/PhnPhoneAppFrame.h create mode 100644 inc/PhnPhoneFormFactory.h create mode 100644 inc/PhnRetrieveSuggestionsTasks.h create mode 100644 inc/PhnSceneRegister.h create mode 100644 inc/PhnSettingsAddNumberForm.h create mode 100644 inc/PhnSettingsBarringPwdForm.h create mode 100644 inc/PhnSettingsCallAccessoryForm.h create mode 100644 inc/PhnSettingsCallAnsweringForm.h create mode 100644 inc/PhnSettingsCallForwardWaitBarrForm.h create mode 100644 inc/PhnSettingsCallStatusTonesForm.h create mode 100644 inc/PhnSettingsDeleteListForm.h create mode 100644 inc/PhnSettingsEditRejectMsgForm.h create mode 100644 inc/PhnSettingsForwardToNumberForm.h create mode 100644 inc/PhnSettingsMainMenuForm.h create mode 100644 inc/PhnSettingsManager.h create mode 100644 inc/PhnSettingsMoreOptionsForm.h create mode 100644 inc/PhnSettingsPresentationModel.h create mode 100644 inc/PhnSettingsRejectListForm.h create mode 100644 inc/PhnSettingsRejectMsgsForm.h create mode 100644 inc/PhnSettingsSpeedDialForm.h create mode 100644 inc/PhnSpeedDialInfo.h create mode 100644 inc/PhnSpeedDialPopup.h create mode 100644 inc/PhnSuggestionItemProvider.h create mode 100644 inc/PhnTabDialer.h create mode 100644 inc/PhnTabLogs.h create mode 100644 inc/PhnTabLogsItemProvider.h create mode 100644 inc/PhnTypes.h create mode 100644 inc/PhnUnknownLogsDetailForm.h create mode 100644 lib/nofile.dummy create mode 100644 manifest.xml create mode 100644 packaging/apps.Phone.spec create mode 100644 res/eng-GB.xml create mode 100644 res/screen-density-xhigh/00_Nocontents_text.png create mode 100644 res/screen-density-xhigh/00_button_03.png create mode 100644 res/screen-density-xhigh/00_button_contact_ef.png create mode 100644 res/screen-density-xhigh/00_button_delete.png create mode 100644 res/screen-density-xhigh/00_button_expand_closed.png create mode 100644 res/screen-density-xhigh/00_button_expand_closed_ef.png create mode 100644 res/screen-density-xhigh/00_button_expand_opened.png create mode 100644 res/screen-density-xhigh/00_button_expand_opened_ef.png create mode 100644 res/screen-density-xhigh/00_icon_Back.png create mode 100644 res/screen-density-xhigh/00_icon_Back_press.png create mode 100644 res/screen-density-xhigh/00_icon_more.png create mode 100644 res/screen-density-xhigh/00_icon_more_press.png create mode 100644 res/screen-density-xhigh/00_index list_bg.png create mode 100644 res/screen-density-xhigh/00_indexlist_icon_opened.png create mode 100644 res/screen-density-xhigh/00_list_group_bg_bottom_ef.#.png create mode 100644 res/screen-density-xhigh/00_list_group_bg_center_ef.#.png create mode 100644 res/screen-density-xhigh/00_list_group_bg_ef.#.png create mode 100644 res/screen-density-xhigh/00_list_group_bg_top_ef.#.png create mode 100644 res/screen-density-xhigh/00_list_process_01.png create mode 100644 res/screen-density-xhigh/00_list_process_02.png create mode 100644 res/screen-density-xhigh/00_list_process_03.png create mode 100644 res/screen-density-xhigh/00_list_process_04.png create mode 100644 res/screen-density-xhigh/00_list_process_05.png create mode 100644 res/screen-density-xhigh/00_list_process_06.png create mode 100644 res/screen-density-xhigh/00_list_process_07.png create mode 100644 res/screen-density-xhigh/00_list_process_08.png create mode 100644 res/screen-density-xhigh/00_list_process_09.png create mode 100644 res/screen-density-xhigh/00_list_process_10.png create mode 100644 res/screen-density-xhigh/00_list_process_11.png create mode 100644 res/screen-density-xhigh/00_list_process_12.png create mode 100644 res/screen-density-xhigh/00_list_process_13.png create mode 100644 res/screen-density-xhigh/00_list_process_14.png create mode 100644 res/screen-density-xhigh/00_list_process_15.png create mode 100644 res/screen-density-xhigh/00_list_process_16.png create mode 100644 res/screen-density-xhigh/00_list_process_17.png create mode 100644 res/screen-density-xhigh/00_list_process_18.png create mode 100644 res/screen-density-xhigh/00_list_process_19.png create mode 100644 res/screen-density-xhigh/00_list_process_20.png create mode 100644 res/screen-density-xhigh/00_list_process_21.png create mode 100644 res/screen-density-xhigh/00_list_process_22.png create mode 100644 res/screen-density-xhigh/00_list_process_23.png create mode 100644 res/screen-density-xhigh/00_list_process_24.png create mode 100644 res/screen-density-xhigh/00_list_process_25.png create mode 100644 res/screen-density-xhigh/00_list_process_26.png create mode 100644 res/screen-density-xhigh/00_list_process_27.png create mode 100644 res/screen-density-xhigh/00_list_process_28.png create mode 100644 res/screen-density-xhigh/00_list_process_29.png create mode 100644 res/screen-density-xhigh/00_list_process_30.png create mode 100644 res/screen-density-xhigh/00_list_square_thumbnail_normal.png create mode 100644 res/screen-density-xhigh/00_list_square_thumbnail_press.png create mode 100644 res/screen-density-xhigh/00_popup_bg_ef.9.png create mode 100644 res/screen-density-xhigh/00_popup_bubble_tail_bottom.png create mode 100644 res/screen-density-xhigh/00_popup_bubble_tail_top.png create mode 100644 res/screen-density-xhigh/00_reorder_group_list_bg.png create mode 100644 res/screen-density-xhigh/00_volume_icon_Mute.png create mode 100644 res/screen-density-xhigh/00_winset_Back.png create mode 100644 res/screen-density-xhigh/00_winset_more.png create mode 100644 res/screen-density-xhigh/00_winset_more_press.png create mode 100644 res/screen-density-xhigh/C01-1_Back_btn_normal.png create mode 100644 res/screen-density-xhigh/C01-1_Back_btn_press.png create mode 100644 res/screen-density-xhigh/C01-1_Reject_message_arrow_01.png create mode 100644 res/screen-density-xhigh/C01-1_Reject_message_arrow_02.png create mode 100644 res/screen-density-xhigh/C01-1_Reject_message_bg.png create mode 100644 res/screen-density-xhigh/C01-1_animation_bg.png create mode 100644 res/screen-density-xhigh/C01-1_bg.png create mode 100644 res/screen-density-xhigh/C01-1_button_01_press.png create mode 100644 res/screen-density-xhigh/C01-1_button_02_normal.png create mode 100644 res/screen-density-xhigh/C01-1_button_03_normal.png create mode 100644 res/screen-density-xhigh/C01-1_button_05_press.png create mode 100644 res/screen-density-xhigh/C01-1_button_bg.png create mode 100644 res/screen-density-xhigh/C01-1_button_call.png create mode 100644 res/screen-density-xhigh/C01-1_button_call_press.png create mode 100644 res/screen-density-xhigh/C01-1_button_press.png create mode 100644 res/screen-density-xhigh/C01-1_contact_btn.png create mode 100644 res/screen-density-xhigh/C01-1_contact_btn_press.png create mode 100644 res/screen-density-xhigh/C01-1_icon_Pause.png create mode 100644 res/screen-density-xhigh/C01-1_icon_Play.png create mode 100644 res/screen-density-xhigh/C01-1_icon_Reject_with_Message.png create mode 100644 res/screen-density-xhigh/C01-1_icon_button_press.png create mode 100644 res/screen-density-xhigh/C01-1_icon_call.png create mode 100644 res/screen-density-xhigh/C01-1_icon_call_press.png create mode 100644 res/screen-density-xhigh/C01-1_icon_contacts.png create mode 100644 res/screen-density-xhigh/C01-1_icon_contacts_press.png create mode 100644 res/screen-density-xhigh/C01-1_icon_end call_press_wh.png create mode 100644 res/screen-density-xhigh/C01-1_icon_headset.png create mode 100644 res/screen-density-xhigh/C01-1_icon_headset_dim.png create mode 100644 res/screen-density-xhigh/C01-1_icon_headset_press.png create mode 100644 res/screen-density-xhigh/C01-1_icon_headset_press_wh.png create mode 100644 res/screen-density-xhigh/C01-1_icon_message_press_wh.png create mode 100644 res/screen-density-xhigh/C01-1_icon_speaker_press.png create mode 100644 res/screen-density-xhigh/C01-1_icon_stop.png create mode 100644 res/screen-density-xhigh/C01-1_icon_stop_dim.png create mode 100644 res/screen-density-xhigh/C01-1_icon_stop_press.png create mode 100644 res/screen-density-xhigh/C01-1_icon_stop_press_wh.png create mode 100644 res/screen-density-xhigh/C01-1_icon_video call_press_wh.png create mode 100644 res/screen-density-xhigh/C01-1_lock_icon_accept.png create mode 100644 res/screen-density-xhigh/C01-1_lock_icon_accept_arrow.png create mode 100644 res/screen-density-xhigh/C01-1_lock_icon_accept_arrow_press.png create mode 100644 res/screen-density-xhigh/C01-1_lock_icon_accept_press.png create mode 100644 res/screen-density-xhigh/C01-1_lock_icon_reject.png create mode 100644 res/screen-density-xhigh/C01-1_lock_icon_reject_arrow.png create mode 100644 res/screen-density-xhigh/C01-1_lock_icon_reject_arrow_press.png create mode 100644 res/screen-density-xhigh/C01-1_lock_icon_reject_press.png create mode 100644 res/screen-density-xhigh/C01-1_outgoingcall_No caller ID.png create mode 100644 res/screen-density-xhigh/C01-1_voice_call_icon.png create mode 100644 res/screen-density-xhigh/C01-3_Nocontacts_Dialer.PNG create mode 100644 res/screen-density-xhigh/C01-3_button_01.png create mode 100644 res/screen-density-xhigh/C01-3_button_01_dim.png create mode 100644 res/screen-density-xhigh/C01-3_button_01_press.png create mode 100644 res/screen-density-xhigh/C01-3_button_02.png create mode 100644 res/screen-density-xhigh/C01-3_button_02_dim.png create mode 100644 res/screen-density-xhigh/C01-3_button_02_press.png create mode 100644 res/screen-density-xhigh/C01-3_button_contacts_bg.png create mode 100644 res/screen-density-xhigh/C01-3_dialer_btn_1line_bg.9.png create mode 100644 res/screen-density-xhigh/C01-3_dialer_btn_1line_bg.png create mode 100644 res/screen-density-xhigh/C01-3_dialer_btn_2line_bg.9.png create mode 100644 res/screen-density-xhigh/C01-3_dialer_btn_2line_bg.png create mode 100644 res/screen-density-xhigh/C01-3_dialer_btn_3line_bg.9.png create mode 100644 res/screen-density-xhigh/C01-3_dialer_btn_3line_bg.png create mode 100644 res/screen-density-xhigh/C01-3_dialer_btn_4line_bg.9.png create mode 100644 res/screen-density-xhigh/C01-3_dialer_btn_4line_bg.png create mode 100644 res/screen-density-xhigh/C01-3_dialer_btn_5line_bg.9.png create mode 100644 res/screen-density-xhigh/C01-3_dialer_btn_5line_bg.png create mode 100644 res/screen-density-xhigh/C01-3_dialer_btn_call_bg.9.png create mode 100644 res/screen-density-xhigh/C01-3_dialer_btn_call_bg.png create mode 100644 res/screen-density-xhigh/C01-3_dialer_btn_option_bg.9.png create mode 100644 res/screen-density-xhigh/C01-3_dialer_btn_option_bg.png create mode 100644 res/screen-density-xhigh/C01-3_dialer_btn_option_press.9.png create mode 100644 res/screen-density-xhigh/C01-3_dialer_btn_option_press.png create mode 100644 res/screen-density-xhigh/C01-3_dialer_btn_press.9.png create mode 100644 res/screen-density-xhigh/C01-3_dialer_btn_press.png create mode 100644 res/screen-density-xhigh/C01-3_dialer_icon_01.png create mode 100644 res/screen-density-xhigh/C01-3_dialer_icon_01_press.png create mode 100644 res/screen-density-xhigh/C01-3_dialer_icon_clear.png create mode 100644 res/screen-density-xhigh/C01-3_dialer_icon_star.png create mode 100644 res/screen-density-xhigh/C01-3_dialer_search_field_bg.png create mode 100644 res/screen-density-xhigh/C01-3_field_btn_clear.png create mode 100644 res/screen-density-xhigh/C01-3_icon_call.png create mode 100644 res/screen-density-xhigh/C01-3_icon_call_dim.png create mode 100644 res/screen-density-xhigh/C01-3_icon_call_press.png create mode 100644 res/screen-density-xhigh/C01-3_icon_clear.png create mode 100644 res/screen-density-xhigh/C01-3_icon_delete.png create mode 100644 res/screen-density-xhigh/C01-3_icon_expand_01.png create mode 100644 res/screen-density-xhigh/C01-3_icon_expand_01_press.png create mode 100644 res/screen-density-xhigh/C01-3_icon_expand_02.png create mode 100644 res/screen-density-xhigh/C01-3_icon_expand_02_press.png create mode 100644 res/screen-density-xhigh/C01-3_icon_message.png create mode 100644 res/screen-density-xhigh/C01-3_icon_message_dim.png create mode 100644 res/screen-density-xhigh/C01-3_icon_message_press.png create mode 100644 res/screen-density-xhigh/C01-3_icon_voicecall.png create mode 100644 res/screen-density-xhigh/C01-3_keypad_bg.png create mode 100644 res/screen-density-xhigh/C01-3_keypad_bg_h.png create mode 100644 res/screen-density-xhigh/C01-3_keypad_bg_reduction.png create mode 100644 res/screen-density-xhigh/C01-3_keypad_number_00.png create mode 100644 res/screen-density-xhigh/C01-3_keypad_number_01.png create mode 100644 res/screen-density-xhigh/C01-3_keypad_number_02.png create mode 100644 res/screen-density-xhigh/C01-3_keypad_number_03.png create mode 100644 res/screen-density-xhigh/C01-3_keypad_number_04.png create mode 100644 res/screen-density-xhigh/C01-3_keypad_number_05.png create mode 100644 res/screen-density-xhigh/C01-3_keypad_number_06.png create mode 100644 res/screen-density-xhigh/C01-3_keypad_number_07.png create mode 100644 res/screen-density-xhigh/C01-3_keypad_number_08.png create mode 100644 res/screen-density-xhigh/C01-3_keypad_number_09.png create mode 100644 res/screen-density-xhigh/C01-3_keypad_number_asterisk.png create mode 100644 res/screen-density-xhigh/C01-3_keypad_number_auto_answer.png create mode 100644 res/screen-density-xhigh/C01-3_keypad_number_mute.png create mode 100644 res/screen-density-xhigh/C01-3_keypad_number_sharp.png create mode 100644 res/screen-density-xhigh/C01-3_keypad_press.png create mode 100644 res/screen-density-xhigh/C01-3_keypad_press_h.png create mode 100644 res/screen-density-xhigh/C01-3_number saerch_bg_01.png create mode 100644 res/screen-density-xhigh/C01-3_number saerch_bg_02.png create mode 100644 res/screen-density-xhigh/C01-3_number saerch_bg_h_01.png create mode 100644 res/screen-density-xhigh/C01-3_number saerch_bg_h_02.png create mode 100644 res/screen-density-xhigh/C01-3_number saerch_bg_h_03.png create mode 100644 res/screen-density-xhigh/C01-3_option_icon.png create mode 100644 res/screen-density-xhigh/C01-3_option_icon_dim.png create mode 100644 res/screen-density-xhigh/C01-3_option_icon_press.png create mode 100644 res/screen-density-xhigh/C01-3_predictive_circle_button_normal.png create mode 100644 res/screen-density-xhigh/C01-3_predictive_circle_button_press.png create mode 100644 res/screen-density-xhigh/C01-3_search_bg.png create mode 100644 res/screen-density-xhigh/C01-3_search_field.png create mode 100644 res/screen-density-xhigh/C01-3_search_icon.png create mode 100644 res/screen-density-xhigh/C01-3_tab_divider.png create mode 100644 res/screen-density-xhigh/C01-3_title_divider.png create mode 100644 res/screen-density-xhigh/C01-3_toolbar_icon_back.png create mode 100644 res/screen-density-xhigh/C01-3_toolbar_icon_back_press.png create mode 100644 res/screen-density-xhigh/C01-3_toolbar_icon_more.png create mode 100644 res/screen-density-xhigh/C01-3_toolbar_icon_more_press.png create mode 100644 res/screen-density-xhigh/C01-4_btn_icon_call.png create mode 100644 res/screen-density-xhigh/C01-4_btn_icon_call_dim.png create mode 100644 res/screen-density-xhigh/C01-4_btn_icon_message.png create mode 100644 res/screen-density-xhigh/C01-4_btn_icon_message_dim.png create mode 100644 res/screen-density-xhigh/C01-4_btn_icon_video_call.png create mode 100644 res/screen-density-xhigh/C01-4_btn_icon_video_call_dim.png create mode 100644 res/screen-density-xhigh/C01-4_circle_button.png create mode 100644 res/screen-density-xhigh/C01-4_circle_button_press.png create mode 100644 res/screen-density-xhigh/C01-4_circle_icon_call.png create mode 100644 res/screen-density-xhigh/C01-4_circle_icon_call_press.png create mode 100644 res/screen-density-xhigh/C01-4_circle_icon_sms.png create mode 100644 res/screen-density-xhigh/C01-4_circle_icon_sms_press.png create mode 100644 res/screen-density-xhigh/C01-4_controlbar_icon_cancel.png create mode 100644 res/screen-density-xhigh/C01-4_controlbar_icon_done.png create mode 100644 res/screen-density-xhigh/C01-4_icon_Blocked.png create mode 100644 res/screen-density-xhigh/C01-4_icon_call_blocked.png create mode 100644 res/screen-density-xhigh/C01-4_icon_dialed.png create mode 100644 res/screen-density-xhigh/C01-4_icon_message_blocked.png create mode 100644 res/screen-density-xhigh/C01-4_icon_missed-call.png create mode 100644 res/screen-density-xhigh/C01-4_icon_received.png create mode 100644 res/screen-density-xhigh/C01-4_icon_rejected.png create mode 100644 res/screen-density-xhigh/C01-4_list_icon_call.png create mode 100644 res/screen-density-xhigh/C01-4_list_icon_mms.png create mode 100644 res/screen-density-xhigh/C01-4_list_icon_sms.png create mode 100644 res/screen-density-xhigh/C01-4_list_icon_vt-call.png create mode 100644 res/screen-density-xhigh/C01-5_icon_cancel.png create mode 100644 res/screen-density-xhigh/C01-5_icon_cancel_web.png create mode 100644 res/screen-density-xhigh/C01-5_icon_cancel_web_press.png create mode 100644 res/screen-density-xhigh/C01-5_icon_speeddial_check.png create mode 100644 res/screen-density-xhigh/C01-5_icon_voicecall.png create mode 100644 res/screen-density-xhigh/C01_3_dialer_icon_option.png create mode 100644 res/screen-density-xhigh/M01_contact_default_image.png create mode 100644 res/screen-density-xhigh/M01_contact_default_image_press.png create mode 100644 res/screen-density-xhigh/more.png create mode 100644 res/screen-density-xhigh/more_press.png create mode 100644 res/screen-size-normal/IDL_CALL_BLOCK_POPUP.xml create mode 100644 res/screen-size-normal/IDL_CALL_LOG_DETAIL_FORM.xml create mode 100644 res/screen-size-normal/IDL_CALL_LOG_VIEWBY_POPUP.xml create mode 100644 res/screen-size-normal/IDL_DIALER_KEYPAD_PANEL.xml create mode 100644 res/screen-size-normal/IDL_DIAL_FORM.xml create mode 100644 res/screen-size-normal/IDL_EMERGENCY_DIAL_FORM.xml create mode 100644 res/screen-size-normal/IDL_ERROR_MSG_POPUP.xml create mode 100644 res/screen-size-normal/IDL_PANEL_DIALER.xml create mode 100644 res/screen-size-normal/IDL_PANEL_LOGS.xml create mode 100644 res/screen-size-normal/IDL_RESTRICTED_CALL_LOG_DETAIL_FORM.xml create mode 100644 res/screen-size-normal/IDL_SETTINGS_ADD_EDIT_REJECT_MSGS_FORM.xml create mode 100644 res/screen-size-normal/IDL_SETTINGS_ADD_NUMBER_FORM.xml create mode 100644 res/screen-size-normal/IDL_SETTINGS_AUTO_AREA_CODE_FORM.xml create mode 100644 res/screen-size-normal/IDL_SETTINGS_CALL_ACCESSORY_FORM.xml create mode 100644 res/screen-size-normal/IDL_SETTINGS_CALL_ANSWERING_FORM.xml create mode 100644 res/screen-size-normal/IDL_SETTINGS_CALL_FORWARD_WAIT_BARRING_FORM.xml create mode 100644 res/screen-size-normal/IDL_SETTINGS_DELETE_LIST_FORM.xml create mode 100644 res/screen-size-normal/IDL_SETTINGS_FORWARDTO_NUMBER_FORM.xml create mode 100644 res/screen-size-normal/IDL_SETTINGS_MAINMENU_FORM.xml create mode 100644 res/screen-size-normal/IDL_SETTINGS_MOREOPTIONS_FORM.xml create mode 100644 res/screen-size-normal/IDL_SETTINGS_NOREPLY_FORWARDTO_NUMBER_FORM.xml create mode 100644 res/screen-size-normal/IDL_SETTINGS_REJECTLIST_FORM.xml create mode 100644 res/screen-size-normal/IDL_SETTINGS_REJECTMSGS_FORM.xml create mode 100644 res/screen-size-normal/IDL_SETTINGS_SET_BARRING_PWD__FORM.xml create mode 100644 res/screen-size-normal/IDL_SETTINGS_SPEEDDIAL_FORM.xml create mode 100644 res/screen-size-normal/IDL_SETTINGS_STATUS_TONES_FORM.xml create mode 100644 res/screen-size-normal/IDL_SPEED_DIAL_POPUP.xml create mode 100644 shared/data/Call_Connect.ogg create mode 100644 shared/data/Call_Disconnect.ogg create mode 100644 shared/data/Call_RecordStart.wav create mode 100644 shared/data/Call_WaitingTone.wav create mode 100644 shared/data/ringtone_sdk.mp3 create mode 100644 shared/res/screen-density-xhigh/mainmenu.png create mode 100644 shared/trusted/nofile.dummy create mode 100644 src/PhnAppUtility.cpp create mode 100644 src/PhnCallInfo.cpp create mode 100644 src/PhnCallLogPresentationModel.cpp create mode 100644 src/PhnCallLogViewByPopup.cpp create mode 100644 src/PhnCallRejectInfo.cpp create mode 100644 src/PhnCallSettingDataService.cpp create mode 100644 src/PhnCalllogManager.cpp create mode 100644 src/PhnCommonUtils.cpp create mode 100644 src/PhnDialAppForm.cpp create mode 100644 src/PhnDialContactInfo.cpp create mode 100644 src/PhnDialPresentationModel.cpp create mode 100644 src/PhnDialerKeypad.cpp create mode 100644 src/PhnEmergencyDialForm.cpp create mode 100644 src/PhnErrorMsgPopup.cpp create mode 100644 src/PhnLogsDetailForm.cpp create mode 100644 src/PhnLogsDetailItemProvider.cpp create mode 100644 src/PhnPanelFactory.cpp create mode 100644 src/PhnPhoneApp.cpp create mode 100644 src/PhnPhoneAppEntry.cpp create mode 100644 src/PhnPhoneAppFrame.cpp create mode 100644 src/PhnPhoneFormFactory.cpp create mode 100644 src/PhnRetrieveSuggestionsTasks.cpp create mode 100644 src/PhnSceneRegister.cpp create mode 100644 src/PhnSettingsAddNumberForm.cpp create mode 100644 src/PhnSettingsBarringPwdForm.cpp create mode 100644 src/PhnSettingsCallAccessoryForm.cpp create mode 100644 src/PhnSettingsCallAnsweringForm.cpp create mode 100644 src/PhnSettingsCallForwardWaitBarrForm.cpp create mode 100644 src/PhnSettingsCallStatusTonesForm.cpp create mode 100644 src/PhnSettingsDeleteListForm.cpp create mode 100644 src/PhnSettingsEditRejectMsgForm.cpp create mode 100644 src/PhnSettingsForwardToNumberForm.cpp create mode 100644 src/PhnSettingsMainMenuForm.cpp create mode 100644 src/PhnSettingsManager.cpp create mode 100644 src/PhnSettingsMoreOptionsForm.cpp create mode 100644 src/PhnSettingsPresentationModel.cpp create mode 100644 src/PhnSettingsRejectListForm.cpp create mode 100644 src/PhnSettingsRejectMsgsForm.cpp create mode 100644 src/PhnSettingsSpeedDialForm.cpp create mode 100644 src/PhnSpeedDialInfo.cpp create mode 100644 src/PhnSpeedDialPopup.cpp create mode 100644 src/PhnSuggestionItemProvider.cpp create mode 100644 src/PhnTabDialer.cpp create mode 100644 src/PhnTabLogs.cpp create mode 100644 src/PhnTabLogsItemProvider.cpp create mode 100644 src/PhnTypes.cpp create mode 100644 src/PhnUnknownLogsDetailForm.cpp diff --git a/.cproject b/.cproject new file mode 100644 index 0000000..d0e82d5 --- /dev/null +++ b/.cproject @@ -0,0 +1,815 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..8a36535 --- /dev/null +++ b/.project @@ -0,0 +1,92 @@ + + + Phone + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + ?children? + ?name?=outputEntries\|?children?=?name?=entry\\\\\\\|\\\|?name?=entry\\\\\\\|\\\|?name?=entry\\\\\\\|\\\|?name?=entry\\\\\\\|\\\|?name?=entry\\\\\\\|\\\|\|| + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + sbi-make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc:/PhoneApp/Debug-Tizen-Emulator} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + true + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + org.tizen.nativecpp.apichecker.core.builder + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.tizen.nativecpp.apichecker.core.tizenCppNature + + diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..ea89824 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,45 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) + +# Target name and PKGID +## TODO : set application name and ID +SET(this_target Phone) +SET(PKGID zktdpemtmw) + +# include directory +INCLUDE_DIRECTORIES( + /usr/include/glib-2.0 + /usr/lib/glib-2.0/include + /usr/include/osp + /usr/include/vconf + /usr/include/media + /usr/include/telephony-client + /usr/include/contacts-svc + /usr/include/msg-service + inc + ) + +# Source files +FILE(GLOB ${this_target}_SOURCE_FILES + src/*.cpp +) + +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE") + + +# Create executable +SET(CMAKE_EXECUTABLE_SUFFIX ".exe") +ADD_EXECUTABLE (${this_target} ${${this_target}_SOURCE_FILES}) + +# Set link libraries and link options +## TODO : add more link libraries and options +TARGET_LINK_LIBRARIES(${this_target} -L/usr/lib/osp osp-appfw osp-uifw osp-social osp-messaging osp-media osp-image osp-image-core osp-telephony msg_mapi) +TARGET_LINK_LIBRARIES(${this_target} -L/usr/lib capi-media-sound-manager SLP-tapi vconf contacts-service2) +TARGET_LINK_LIBRARIES(${this_target} -Xlinker --allow-shlib-undefined -pthread -pie) + +# Copy info, data, res, and icons directories +INSTALL(TARGETS ${this_target} DESTINATION ../usr/apps/${PKGID}/bin) + +# Copy resource +INSTALL(FILES ${CMAKE_SOURCE_DIR}/manifest.xml DESTINATION ../usr/apps/${PKGID}/info) +INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/res DESTINATION ../usr/apps/${PKGID}) +INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/shared DESTINATION ../usr/apps/${PKGID}) diff --git a/LICENSE.Flora b/LICENSE.Flora new file mode 100644 index 0000000..03f0c77 --- /dev/null +++ b/LICENSE.Flora @@ -0,0 +1,206 @@ +Flora License + +Version 1.1, April, 2013 + +http://floralicense.org/license/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, +and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by +the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and +all other entities that control, are controlled by, or are +under common control with that entity. For the purposes of +this definition, "control" means (i) the power, direct or indirect, +to cause the direction or management of such entity, +whether by contract or otherwise, or (ii) ownership of fifty percent (50%) +or more of the outstanding shares, or (iii) beneficial ownership of +such entity. + +"You" (or "Your") shall mean an individual or Legal Entity +exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, +including but not limited to software source code, documentation source, +and configuration files. + +"Object" form shall mean any form resulting from mechanical +transformation or translation of a Source form, including but +not limited to compiled object code, generated documentation, +and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, +made available under the License, as indicated by a copyright notice +that is included in or attached to the work (an example is provided +in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, +that is based on (or derived from) the Work and for which the editorial +revisions, annotations, elaborations, or other modifications represent, +as a whole, an original work of authorship. For the purposes of this License, +Derivative Works shall not include works that remain separable from, +or merely link (or bind by name) to the interfaces of, the Work and +Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original +version of the Work and any modifications or additions to that Work or +Derivative Works thereof, that is intentionally submitted to Licensor +for inclusion in the Work by the copyright owner or by an individual or +Legal Entity authorized to submit on behalf of the copyright owner. +For the purposes of this definition, "submitted" means any form of +electronic, verbal, or written communication sent to the Licensor or +its representatives, including but not limited to communication on +electronic mailing lists, source code control systems, and issue +tracking systems that are managed by, or on behalf of, the Licensor +for the purpose of discussing and improving the Work, but excluding +communication that is conspicuously marked or otherwise designated +in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity +on behalf of whom a Contribution has been received by Licensor and +subsequently incorporated within the Work. + +"Tizen Certified Platform" shall mean a software platform that complies +with the standards set forth in the Tizen Compliance Specification +and passes the Tizen Compliance Tests as defined from time to time +by the Tizen Technical Steering Group and certified by the Tizen +Association or its designated agent. + +2. Grant of Copyright License. Subject to the terms and conditions of +this License, each Contributor hereby grants to You a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable +copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the +Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of +this License, each Contributor hereby grants to You a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable +(except as stated in this section) patent license to make, have made, +use, offer to sell, sell, import, and otherwise transfer the Work +solely as incorporated into a Tizen Certified Platform, where such +license applies only to those patent claims licensable by such +Contributor that are necessarily infringed by their Contribution(s) +alone or by combination of their Contribution(s) with the Work solely +as incorporated into a Tizen Certified Platform to which such +Contribution(s) was submitted. If You institute patent litigation +against any entity (including a cross-claim or counterclaim +in a lawsuit) alleging that the Work or a Contribution incorporated +within the Work constitutes direct or contributory patent infringement, +then any patent licenses granted to You under this License for that +Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the +Work or Derivative Works thereof pursuant to the copyright license +above, in any medium, with or without modifications, and in Source or +Object form, provided that You meet the following conditions: + + 1. You must give any other recipients of the Work or Derivative Works + a copy of this License; and + 2. You must cause any modified files to carry prominent notices stating + that You changed the files; and + 3. You must retain, in the Source form of any Derivative Works that + You distribute, all copyright, patent, trademark, and attribution + notices from the Source form of the Work, excluding those notices + that do not pertain to any part of the Derivative Works; and + 4. If the Work includes a "NOTICE" text file as part of its distribution, + then any Derivative Works that You distribute must include a readable + copy of the attribution notices contained within such NOTICE file, + excluding those notices that do not pertain to any part of + the Derivative Works, in at least one of the following places: + within a NOTICE text file distributed as part of the Derivative Works; + within the Source form or documentation, if provided along with the + Derivative Works; or, within a display generated by the Derivative Works, + if and wherever such third-party notices normally appear. + The contents of the NOTICE file are for informational purposes only + and do not modify the License. + +You may add Your own attribution notices within Derivative Works +that You distribute, alongside or as an addendum to the NOTICE text +from the Work, provided that such additional attribution notices +cannot be construed as modifying the License. You may add Your own +copyright statement to Your modifications and may provide additional or +different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works +as a whole, provided Your use, reproduction, and distribution of +the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, +any Contribution intentionally submitted for inclusion in the Work +by You to the Licensor shall be under the terms and conditions of +this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify +the terms of any separate license agreement you may have executed +with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade +names, trademarks, service marks, or product names of the Licensor, +except as required for reasonable and customary use in describing the +origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or +agreed to in writing, Licensor provides the Work (and each +Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +implied, including, without limitation, any warranties or conditions +of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A +PARTICULAR PURPOSE. You are solely responsible for determining the +appropriateness of using or redistributing the Work and assume any +risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, +whether in tort (including negligence), contract, or otherwise, +unless required by applicable law (such as deliberate and grossly +negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, +incidental, or consequential damages of any character arising as a +result of this License or out of the use or inability to use the +Work (including but not limited to damages for loss of goodwill, +work stoppage, computer failure or malfunction, or any and all +other commercial damages or losses), even if such Contributor +has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing +the Work or Derivative Works thereof, You may choose to offer, +and charge a fee for, acceptance of support, warranty, indemnity, +or other liability obligations and/or rights consistent with this +License. However, in accepting such obligations, You may act only +on Your own behalf and on Your sole responsibility, not on behalf +of any other Contributor, and only if You agree to indemnify, +defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason +of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Flora License to your work + +To apply the Flora License to your work, attach the following +boilerplate notice, with the fields enclosed by brackets "[]" +replaced with your own identifying information. (Don't include +the brackets!) The text should be enclosed in the appropriate +comment syntax for the file format. We also recommend that a +file or class name and description of purpose be included on the +same "printed page" as the copyright notice for easier +identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Flora License, Version 1.1 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://floralicense.org/license/ + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/NOTICE b/NOTICE new file mode 100644 index 0000000..a5964ea --- /dev/null +++ b/NOTICE @@ -0,0 +1,3 @@ +Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved. +Except as noted, this software is licensed under Flora License, Version 1.1. +Please, see the LICENSE.Flora file for Flora License, Version 1.1 terms and conditions. diff --git a/inc/PhnAppUtility.h b/inc/PhnAppUtility.h new file mode 100644 index 0000000..cce5eb2 --- /dev/null +++ b/inc/PhnAppUtility.h @@ -0,0 +1,102 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnAppUtility.h + * @brief This is the header file for the %AppUtility class. + * + * This header file contains the declarations for %AppUtility class. + */ +#ifndef _PHN_APP_UTILITY_H_ +#define _PHN_APP_UTILITY_H_ + +#include +#include +#include + +enum KeypadTextPosition +{ + POSITION_LEFT, + POSITION_RIGHT, + POSITION_CENTER, + POSITION_TOP_LEFT, + POSITION_TOP_CENTER, + POSITION_BOTTOM_LEFT, + POSITION_BOTTOM_CENTER, + POSITION_SUGGESTION_NAME, + POSITION_SUGGESTION_NUMBER +}; + +enum TableViewItemPos +{ + TABLEVIEWITEMPOS_SINGLE_ITEM, + TABLEVIEWITEMPOS_TOP, + TABLEVIEWITEMPOS_CENTER, + TABLEVIEWITEMPOS_BOTTOM, +}; + +enum TableViewItemType +{ + TABLEVIEWITEMTYPE_SINGLE_TXT, + TABLEVIEWITEMTYPE_MAIN_TXT, + TABLEVIEWITEMTYPE_SUB_TXT, +}; + +/** + * @class AppUtility + * @brief This class provides common functionalities across application through static member functions. + * Its instance cannot needed. + * + */ +class AppUtility +{ +private: + AppUtility(void); + AppUtility(const AppUtility& obj); + virtual ~AppUtility(void); + +public: + /** + * Fetches the String from resources based on + * resource id provided by "stringId". + */ + static Tizen::Base::String GetResourceString(const Tizen::Base::String& stringId); + + /** + * Fetches the Bitmap from resources and + * scales it to specified width and height, if provided. + */ + static Tizen::Graphics::Bitmap* GetBitmapFromResourcesN(const Tizen::Base::String& imagePath, int imgWidth = 0, int imgHeight = 0); + + //Function used to set backgorund bitmap to table item based on its position in GroupedTableView. + static void SetBackgroundBitmapToTableItem(Tizen::Ui::Controls::TableViewItem* pTableItem, TableViewItemPos position); + //Function is used to set and change expand icon to expandable item based on its state. + static void SetExpandIconToTableItem(Tizen::Ui::Controls::TableViewItem* pTableItem, bool isExpanded); + //Function to get Font size for settings view + static int GetSettingsItemFontSize(void); + //Function to get the Item Size based on the Font size that is set + static int GetSettingsItemRectSize(void); + //SubText Rect Size + static int GetSettingsSubItemSize(void); + //MainText Rect Size + static int GetSettingsMainItemSize(void); + //function to get Global font size + static void GetGlobalFontAndItemHeight(float *fontSize, float *itemHeight); + //funcstion to convert string to pointer character array + static char* ConvertStringToPointerCharArrayN(const Tizen::Base::String& strToConvert); +}; + +#endif // _PHN_APP_UTILITY_H_ diff --git a/inc/PhnCallInfo.h b/inc/PhnCallInfo.h new file mode 100644 index 0000000..832c3bf --- /dev/null +++ b/inc/PhnCallInfo.h @@ -0,0 +1,160 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnCallInfo.h + * @brief This is the header file for the %CallInfo class. + * + * This header file contains the declarations for %CallInfo class. + */ +#ifndef _PHN_CALL_INFO_H_ +#define _PHN_CALL_INFO_H_ + +#include +#include +#include "PhnTypes.h" + +/** + * @class CallInfo + * @brief This class holds information about currently active Single party, + * mutli-party or conference calls. + * + */ +class CallInfo + : public Tizen::Base::Object +{ +public: + enum CallType + { + VOICE_CALL, + VIDEO_CALL, // Currently not supported + }; + +public: + // Default Constructor. + CallInfo(void); + virtual ~CallInfo(void); + + //returns if a call is conference call or not + bool IsConferenceCall(void); + //Sets the conferenceflag for a call + void SetConference(bool isConferenceCall); + //returns if a call is emergency call or not + bool IsEmergency(void); + //Sets if a call is emergency call + void SetEmergency(bool isEmergency); + //get the call Handle + Tizen::Base::Long* GetCallHandle(void); + //Set the call handle + void SetCallHandle(unsigned int handle); + //Get for Contact Number for the call + Tizen::Base::String& GetContactNumber(void); + //Set the contact number for the call + void SetContactNumber(Tizen::Base::String& contactNumber); + //Sets the contact info for the call + void SetContactInfo(const Tizen::Social::Contact& contact); + //returns contact info if present in contacts db + const Tizen::Social::Contact* GetContactInfo(void); + //returns if a call is held call or not + bool IsOnHold(void); + //Sets the held call for the call + void SetOnHold(bool onHold); + //get the connected time for the call + long long GetCallConnectTime(void); + //Sets the connected time when call started + void SetCallConnectTime(long long connectTime); + //get the notified / dialed time when call started + long long GetCallNotificationTime(void); + //Sets the notified / dialed time when call started + void SetCallNotificationTime(long long callNotificationTime); + //gets the end call cause + Tizen::Base::String& GetEndCallCause(void); + //Sets the end call cause + void SetEndCallCause(Tizen::Base::String& pEndCause); + //gets the caller list for a conference call + Tizen::Base::Collection::IListT* GetCallerList(void); + //Adds a call to conference call list + result AddCallToCallerList(CallInfo& callInfo); + //removes a call from the conference call list + result RemoveCallFromCallerList(int index); + //returns the number of calls in conference + int GetCallerListCount(void); + //sets the type of the call for the logs application + void SetCalllogType(CallLogType callLogType); + //returns the type of the call log + CallLogType GetCalllogType(void); + /** + * This is the equality operator for this CallInfo. + * returns true, if both have same value for call handle. + * + * @param[in] rhs A reference to the %CallInfo instance + */ + bool operator ==(const CallInfo& rhs) const; + + /** + * This is the InEquality operator for this CallInfo. + * returns true, if value for call handle is different. + * + * @param[in] rhs A reference to the %CallInfo instance + */ + bool operator !=(const CallInfo& rhs) const; + + /** + * This is the assignment operator for this class. + * @param[in] rhs A reference to the %CallInfo instance + */ + CallInfo& operator =(const CallInfo& rhs); + + // this funtion fetches the contact person's name. + Tizen::Base::String* FetchCallerNameN(void); + // this funtion fetches the contact person's photo id, if present. + Tizen::Graphics::Bitmap* FetchCallerPhotoN(void); + +private: + bool __isConfCall; + CallType __callType; + + ///Calllog type information like outgoing, incoming, missed call + CallLogType __calllogType; + + //To uniquely identify both Single / Conf. Call. + Tizen::Base::Long* __pCallHandle; + + bool __isEmergency; + + //applicable only for Single Call + Tizen::Base::String __contactNumber; + + //call is held + bool __isOnHold; + + //system time when call connected + long long __callConnectTime; + + //system time when the call was notified / dialed + long long __callNotificationTime; + + //end call cause + Tizen::Base::String* __pEndCallCause; + + //callHandles for individual callers in conf. calls + Tizen::Base::Collection::ArrayListT* __pParticipantCallHandles; + + //used to store previously fetched contact. + Tizen::Social::Contact* __pContact; +}; + +#endif // _PHN_CALL_INFO_H_ diff --git a/inc/PhnCallLogPresentationModel.h b/inc/PhnCallLogPresentationModel.h new file mode 100644 index 0000000..5d216b8 --- /dev/null +++ b/inc/PhnCallLogPresentationModel.h @@ -0,0 +1,91 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnCallLogPresentationModel.h + * @brief This is the header file for the %CalLogPresentationModel class. + * + * This header file contains the declarations for %CalLogPresentationModel class. + */ + +#ifndef PHNLOGPRESENTATIONMODEL_H_ +#define PHNLOGPRESENTATIONMODEL_H_ + +#include +#include +#include "PhnCalllogManager.h" +#include "PhnICalllogChangeListener.h" +#include "PhnTypes.h" + +class CallLogManager; + +class CalLogPresentationModel: public Tizen::App::IAppControlResponseListener +{ +public: + //create a singleton instance + static CalLogPresentationModel* GetInstance(void); + + void AddCalllogChangeListener(ICalllogChangeListener& listner); + void DeleteCalllogByDbId(int dbId); + void DeleteItemAtGroupIndex(int groupIndex, int itemIndex); + void RemoveCalllogChangeListner(ICalllogChangeListener& listner); + void ResetAndNotifyCalllogData(void); + int GetAllCallLogCount(void); + int GetCallLogsViewedCount(void); + Tizen::Base::Collection::ArrayListT* GetCallogListByNumberFromDatabaseN(char* pNumber); + int GetCalllogCountByNumber(void); + void GetCalllogContactName(Tizen::Base::String number, Tizen::Base::String& name); + Tizen::Base::Collection::IListT* GetCalllogListByNumValues(void); + //result GetCallLogItemAtIndex(int index, CallLogDetails* calllogInfo); + //Used to make an outgoing call + ErrorCodes DialCall(const Tizen::Base::String& contactNumber); + result LaunchAddContactsAppControl(Tizen::Base::String& contactNumber); + //Called when the application control is completed. + virtual void OnAppControlCompleteResponseReceived(const Tizen::App::AppId& appId, const Tizen::Base::String& operationId, Tizen::App::AppCtrlResult appControlResult, const Tizen::Base::Collection::IMap* pExtraData); + + //Set the seen status + void SetMissedCallSeenStatus(CallLogDetails* pDetails); + void UpdateCallLogList(void); + int GetUnknownLogCount(int dbId); + Tizen::Base::Collection::ArrayList* GetCallLogGroups(void); + + //API to check if the database is updated + bool IsDataUpdated(void); + + static void setCallLogViewbyID(CallLogType id); + static int getCallLogViewbyID(); +private: + CalLogPresentationModel(); + virtual ~CalLogPresentationModel(); + + result Construct(void); + static void CreateInstance(void); + static void DestroyInstance(void); + //used to make an outgoing call request using call appcontrol + result LaunchCallAppControl(const Tizen::Base::String& contactNumber); + // Get the sim info + result GetSimInfo(void); + bool IsSimAvailable(void); + +private: + static CalLogPresentationModel* __pInstance; + CallLogManager* __pCallMgr; + //used to check if call AppControl is already running + bool __isCallAppControlRunning; + +}; + +#endif /* PHNLOGPRESENTATIONMODEL_H_ */ diff --git a/inc/PhnCallLogViewByPopup.h b/inc/PhnCallLogViewByPopup.h new file mode 100644 index 0000000..f38dde3 --- /dev/null +++ b/inc/PhnCallLogViewByPopup.h @@ -0,0 +1,105 @@ +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +/* + * PhnCallLogMoreOptionPopup.h + * + * Created on: Mar 13, 2013 + * Author: sekhar.b + */ + +#ifndef PHNCALLLOGVIEWBYPOPUP_H_ +#define PHNCALLLOGVIEWBYPOPUP_H_ + +#include +#include +#include "PhnICallLogViewByPopupListener.h" +#include "PhnTabLogsItemProvider.h" + +class CallLogViewByPopup + : public Tizen::Ui::Controls::Popup + , public Tizen::Ui::Controls::IListViewItemEventListener + , public Tizen::Ui::Controls::IListViewItemProvider + , public Tizen::Ui::IActionEventListener + , public Tizen::Ui::IPropagatedKeyEventListener +{ +public: + CallLogViewByPopup(ICallLogViewByPopupListener& listener); + virtual ~CallLogViewByPopup(); + + // IListViewItemEventListener + virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus state){}; + virtual void OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status); + virtual void OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction){}; + virtual void OnListViewItemLongPressed(Tizen::Ui::Controls::ListView& listView, int index, int elementId, bool& invokeListViewItemCallback){}; + //IListViewItemProvider + virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int index, int itemWidth); + virtual bool DeleteItem(int index, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth); + virtual int GetItemCount(void); + void UpdateViewByPopupList(); + + result ConstructViewbyPopup(); + void AddOptionsToList(); + result ConstructBlockPopup(Tizen::Base::String& phoneNumber, bool isCallRejected, bool isMsgBeRejected); + bool GetCallBlock(); + bool GetMessageBlock(); + ///IActionEventListener + virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId); + + //IPropagatedKeyEventListener + virtual bool OnKeyReleased(Control& source, const KeyEventInfo& keyEventInfo); + virtual bool OnKeyPressed(Control& source, const KeyEventInfo& keyEventInfo){ return false; } + virtual bool OnPreviewKeyPressed(Control& source, const KeyEventInfo& keyEventInfo){ return false; } + virtual bool OnPreviewKeyReleased(Control& source, const KeyEventInfo& keyEventInfo){ return false; } + virtual bool TranslateKeyEventInfo(Control& source, KeyEventInfo& keyEventInfo) { return false; } + +enum LogViewTypeID +{ + IDA_ALL_LOGS, + IDA_MISSED_CALLS, + IDA_DIALED_CALLS, + IDA_RECEIVED_CALLS, + IDA_REJECTED_CALLS, + IDA_CANCEL, + IDA_BLOCK_CALL, + IDA_BLOCK_MESSAGE, + IDA_BLOCK_OK, + IDA_BLOCK_CANCEL, +}; + +private: + //CustomDataProvider* __pDataProvider; + ICallLogViewByPopupListener& __popupListener; + Tizen::Ui::Controls::Label* __pBlockInfo; + Tizen::Ui::Controls::CheckButton* __pButtonAllLogs; + Tizen::Ui::Controls::CheckButton* __pButtonMissedCalls; + Tizen::Ui::Controls::CheckButton* __pButtonDialedCalls; + Tizen::Ui::Controls::CheckButton* __pButtonReceivedCalls; + Tizen::Ui::Controls::CheckButton* __pButtonRejectedCalls; + Tizen::Ui::Controls::CheckButton* __pButtonBlockCall; + Tizen::Ui::Controls::CheckButton* __pButtonBlockMessage; + Tizen::Ui::Controls::Button* __pButtonCancel; + Tizen::Ui::Controls::Button* __pButtonBlockOk; + Tizen::Ui::Controls::Button* __pButtonBlockCancel; + ListView* __pListView; + + bool __isBlockCallSelected; + bool __isBlockMessageSelected; + Tizen::Base::Collection::ArrayList* __pOptionsList; + float __fontSize; + float __itemHeight; + static int __selectedViewByIndex; +}; + +#endif /* PHNCALLLOGMOREOPTIONPOPUP_H_ */ diff --git a/inc/PhnCallRejectInfo.h b/inc/PhnCallRejectInfo.h new file mode 100644 index 0000000..e9a0121 --- /dev/null +++ b/inc/PhnCallRejectInfo.h @@ -0,0 +1,71 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnCallRejectInfo.h + * @brief This is the header file for the %CallRejectInfo class. + * + * This header file contains the declarations for %CallRejectInfo class. + */ +#ifndef _PHN_CALL_REJECT_INFO_H_ +#define _PHN_CALL_REJECT_INFO_H_ + +#include +#include "PhnTypes.h" + +/** + * @class CallRejectInfo + * @brief This class holds information about currently active Single party calls. + * + */ +class CallRejectInfo + : public Tizen::Base::Object +{ + +public: + // Default Constructor + CallRejectInfo(void); + virtual ~CallRejectInfo(void); + /** + * This is the equality operator for this CallRejectInfo. + * returns true, if both have same value for call handle. + * + * @param[in] rhs A reference to the %CallRejectInfo instance + */ + bool operator ==(const CallRejectInfo& rhs) const; + + /** + * This is the InEquality operator for this CallRejectInfo. + * returns true, if value for call handle is different. + * + * @param[in] rhs A reference to the %CallRejectInfo instance + */ + bool operator !=(const CallRejectInfo& rhs) const; + + /** + * This is the assignment operator for this class. + * @param[in] rhs A reference to the %CallRejectInfo instance + */ + CallRejectInfo& operator =(const CallRejectInfo& rhs); + +public: + int rowId; + Tizen::Base::String phoneNumber; + CallRejectMatchCondition rejectCondition; + bool isActivated; +}; + +#endif // _PHN_CALL_REJECT_INFO_H_ diff --git a/inc/PhnCallSettingDataService.h b/inc/PhnCallSettingDataService.h new file mode 100644 index 0000000..21d00ad --- /dev/null +++ b/inc/PhnCallSettingDataService.h @@ -0,0 +1,179 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnCallSettingDataService.h + * @brief This is the header file for the %CallSettingDataService class. + * + * This header file contains the declarations for %CallSettingDataService class. + */ +#ifndef _PHN_CALL_SETTING_DATA_SERVICE_H_ +#define _PHN_CALL_SETTING_DATA_SERVICE_H_ + +#include +#include +#include +#include "PhnCallRejectInfo.h" +#include "PhnSpeedDialInfo.h" + +/** + * @class CallSettingDataService + * @brief This class providing database service APIS to CallRejectInfo Application forms + * + */ +class CallSettingDataService +{ +public: + /** + * Creates an instance of its own. + * creates CallSettingDataService(singleton) if it does not exist else returns the existing form + */ + static CallSettingDataService* CreateInstance(void); + + virtual ~CallSettingDataService(void); + + ///Opens the Database. + /** + * Only one Database is maintained. Its name is hardcoded. + * It is assumed that OpenDB is called once while starting the application and CloseDB is called once while closing application. + */ + result OpenDatabase(void); + + ///Closes the Database + result CloseDatabase(void); + + ///Creates a database table to store CallRejectInfo information + result CreateCallRejectTableDatabase(void); + ///Creates a database table to store SpeedDial information + result CreateSpeedDialTableDatabase(void); + ///Adds a CallRejectInfo to the database + result AddCallRejectInfoToDatabase(CallRejectInfo* pNewItem); + + ///Deletes a CallRejectInfo from Database + /** + * @param an array of indexs of the CallRejectInfos to be deleted + * @param number of CallRejectInfo to be deleted + */ + result DeleteCallRejectInfoListFromDatabase(Tizen::Base::Collection::ArrayList* pIndexArray); + + /// Deletes a CallRejectInfo from Database + /** + * @param index of the CallRejectInfo to be deleted + */ + result DeleteCallRejectInfoFromDatabase(int index); + + ///Updates the CallRejectInfo details(contents, modification time etc) in Database + /** + * @param index of the CallRejectInfo to be updated + * @param a reference to CallRejectInfoInfo structure having the updated info + */ + result UpdateCallRejectInfoDatabase(int aIndex, CallRejectInfo* pCallRejectInfoItem); + + ///Gets one CallRejectInfo from the database + /** + * @param index of the CallRejectInfo to be fetched + * @param a reference to CallRejectInfoInfo structure into which the CallRejectInfo data is to be stored + */ + result GetCallRejectInfoFromDatabase(int aIndex, CallRejectInfo& dbItem); + + /// Gets all the CallRejectInfo from database into the linked list + /** + * @param a linked list reference to store the result + */ + result GetAllCallRejectInfoFromDatabaseN(Tizen::Base::Collection::ArrayListT& callRejectInfoList); + + ///Finds the number of entries in the database + /** + * @param an int reference to store the result + */ + result GetCallRejectCount(int& count); + + ///Searches for a keyword in the CallRejectInfo Contents from Database + /** + * @param search keyword + * @param Linked list to store the result of the search + */ + bool IsCallToBeRejected(Tizen::Base::String& phoneNumber); + + ///Adds a SpeedDialInfo to the database + result AddSpeedDialInfoToDatabase(SpeedDialInfo* pNewItem); + + /// Deletes a SpeedDialInfo from Database + /** + * @param index of the SpeedDialInfo to be deleted + */ + result DeleteSpeedDialInfoFromDatabase(int aIndex); + ///Updates the SpeedDialInfo details(contents, modification time etc) in Database + /** + * @param index of the SpeedDialInfo to be updated + * @param a reference to SpeedDialInfo structure having the updated info + */ + result UpdateSpeedDialInfoDatabase(int aIndex, SpeedDialInfo* pSpeedDialInfoItem); + + /// Gets all the SpeedDialInfo from database into the linked list + /** + * @param a linked list reference to store the result + */ + Tizen::Base::Collection::IMapT* GetAllSpeedDialInfoMapFromDatabaseN(void); + + //Gets the SpeedDialContact mapped against "aIndex", if any. Else returns null. + Tizen::Base::String* GetSpeedDialContactN(int aIndex); + +private: + /** + * Constructor + * made private as CallSettingDataService a singleton. + */ + CallSettingDataService(void); + + /** + * Copy constructor + * made private as CallSettingDataService a singleton. + */ + CallSettingDataService(const CallSettingDataService& dataService); + + /** + * Operator = + * made private as CallSettingDataService a singleton. + */ + CallSettingDataService& operator =(const CallSettingDataService& dataService); + + //checks if the condition is applicable for the passed phoneNumber + bool CheckRejectCondition(Tizen::Base::String& phoneNumber, CallRejectInfo& callRejectInfo); + + ///singleton CallSettingDataService object + static CallSettingDataService* __pCallSettingDataService; + + void SyncWithCurrentAddressbookStatus(Tizen::Base::Collection::HashMapT* pSpeedDialInfoList); + + /// Database object + /** + * Its made static as we need only one instance of it across different CallSettingDataService object calls. + * Its created while calling OpenDB and distructed while calling CloseDB. + */ + static Tizen::Io::Database* __pDatabase; + + ///name of the database + const Tizen::Base::String __strDbName; + + /// an Enumerator used to iterate through the results of a database query. + Tizen::Io::DbEnumerator* __pEnum; + + /// Used to create and execute database statements(queries) + Tizen::Io::DbStatement* __pStmt; +}; + +#endif /* _PHN_CALL_SETTING_DATA_SERVICE_H_ */ diff --git a/inc/PhnCalllogManager.h b/inc/PhnCalllogManager.h new file mode 100644 index 0000000..4f7ed59 --- /dev/null +++ b/inc/PhnCalllogManager.h @@ -0,0 +1,274 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnCalllogManager.h + * @brief This is the header file for the %CallLogManager class. + * + * This header file contains the declarations for %CallLogManager, %CallLogDetails, %LogListComparer class. + */ + +#ifndef _PHN_CALL_LOG_MANAGER_H_ +#define _PHN_CALL_LOG_MANAGER_H_ +#include "contacts.h" +#include +#include "PhnCallInfo.h" +#include "PhnTypes.h" +#include "PhnICalllogChangeListener.h" + +class CallLogDetails; + +/** + * @class LogListComparer + * @brief LogListComparer provides comparison functions used to + * sort an arraylist of CallLogDetails. + * + */ +class LogListComparer +: public Tizen::Base::Collection::IComparer + { +public: + LogListComparer() {}; + virtual ~LogListComparer() {}; + result Compare (const Tizen::Base::Object& obj1, const Tizen::Base::Object& obj2, int& cmp) const; +}; + +class LogGroupListComparer +: public Tizen::Base::Collection::IComparer + { +public: + LogGroupListComparer() {}; + virtual ~LogGroupListComparer() {}; + result Compare (const Tizen::Base::Object& obj1, const Tizen::Base::Object& obj2, int& cmp) const; +}; + +class LogListByNumberComparer +: public Tizen::Base::Collection::IComparerT +{ +public: + LogListByNumberComparer() {}; + virtual ~LogListByNumberComparer() {}; + result Compare (const CallLogDetails& obj1, const CallLogDetails& obj2, int& cmp) const; +}; + + +/** + * @class CallLogDetails + * @brief CallLogDetails used to store information call logs. + * + */ +class CallLogDetails +: public Tizen::Base::Object +{ +public: + CallLogDetails(); + virtual ~CallLogDetails(); + bool operator ==(const CallLogDetails& rhs) const; + bool operator !=(const CallLogDetails& rhs) const; + CallLogDetails& operator =(const CallLogDetails& rhs); + + void SetCalllogDbId(int id); + int GetCalllogDbId(void); + void SetCalllogType(contacts_phone_log_type_e type); + CallLogType GetCalllogType(void); + void SetContactDbId(int id); + int GetContactDbId(void); + void SetFirstName(char* name); + char* GetFirstName(void); + void SetLastName(char* name); + char* GetLastName(void); + void SetDisplayName(char* name); + char* GetDisplayName(void); + void SetContactImagePath(char* path); + char* GetContactImagePath(void); + void SetPhoneNumber(char* number); + char* GetPhoneNumber(void); + void SetShortMessage(char* message); + char* GetShortMessage(void); + void SetStartTime(time_t time); + time_t GetStartTime(void); + void SetDuration(int duration); + int GetDuration(void); + void ConvertTimetoDateTime(void); + Tizen::Base::DateTime GetDateTime(void); + int GetConsecutiveNoCounter(void); + void SetConsecutiveNoCounter(int consecutiveNoCounter); + Tizen::Base::Collection::ArrayList* GetCallLogDbIds(); + void SetCallLogDbIds(Tizen::Base::Collection::ArrayList* dbIds); + + +private: + //TODO: Naming conventions to be followed. + //NOTE: Below fields are not owned. + int calllog_db_id; /**< Call log entry id */ + CallLogType calllog_type; /**< Call log entry type */ + int contact_db_id; /**< Contact's id in database */ + char* first_name; /**< Contact's first name (also known as given name) */ + char* last_name; /**< Contact's last name (also known as family name) */ + char* display_name; /**< Display name (how contact's name should be presented) */ + char* contact_image_path; /**< Path to image with contact's picture */ + // contact_number_type_e phone_number_type; /**< Phone number type (i.e.: work, cell) */ + char* phone_number; /**< Phone number */ + char* short_message; /**< Short message for this log */ + time_t startTime; /**< Timestamp of this change */ + int duration_sec; + Tizen::Base::DateTime dateTime; + int __consecutiveNoCounter; + Tizen::Base::Collection::ArrayList* __pDBIds; + +}; + +/** + * @class CallLogManager + * @brief CallLogManager is a singleton class used to save and retrieve call log related data. + * + */ + +class GroupItemClass; + +class CallLogManager +{ +public: + static CallLogManager* GetInstance(void); + +private: + CallLogManager(void); + virtual ~CallLogManager(void); + void DeleteAllCallLogCacheEntries(void); + result Construct(void); + static void CreateInstance(void); + static void DestroyInstance(void); +public: + + result AddCallogInfoToDatabase(CallInfo* calllogInfo); + void ResetAndNotifyCalllogData(void); + //Tizen::Base::Collection::HashMapT* GetCallogListByNumberFromDatabaseN(char* number); + Tizen::Base::Collection::ArrayListT* GetCallogListByNumberFromDatabaseN(char* number); + unsigned long GetDuration(long long start_time); + bool GetAllCallogDataFromDatabseCB(); + bool QueryCallogDatabse(contacts_list_h* list); + void CreateCallLogGroup(CallLogDetails* pCalllogInfo, Tizen::Base::String title); + GroupItemClass* GetGroupWithTitle(Tizen::Base::String title); + void DeleteItemAtGroupIndex(int groupIndex, int itemIndex); + bool GetCallogListByNumberFromDatabaseCB(char *number); + void CopyDataToCallLogDetails(CallLogDetails* calllogInfo , contacts_record_h record); + + Tizen::Base::Collection::ArrayList* GetCallLogGroups(); + + Tizen::Base::Collection::IListT* GetCalllogListKeys(void); + Tizen::Base::Collection::IListT* GetCalllogListValues(void); + Tizen::Base::Collection::IMapEnumeratorT* GetCalllogListEnum(void); + + Tizen::Base::Collection::IListT* GetCalllogListByNumKeys(void); + Tizen::Base::Collection::IListT* GetCalllogListByNumValues(void); + Tizen::Base::Collection::IMapEnumeratorT* GetCalllogListByNumEnum(void); + void DeleteCalllogByDbId(int dbId); + void DeleteAllCalllog(void); + int GetAllCallLogCount(void); + int GetCallLogsViewedCount(void); + int GetCalllogCountByNumber(void); + //Used to get the latest dialed or incoming number from call log database. + Tizen::Base::String* GetLatestCallLogFromDbN(void); + //Used to fetch list of call from unknown numbers from logs. + Tizen::Base::Collection::HashMapT* GetCallogListByUnknownNumberFromDatabaseN(char* number); + + //checks whether the call log is voice/video/msg/email + bool IsVoiceCall(CallLogDetails* pLatestCallLog); + //Checks if the number is valid + bool CheckNumberIsValid(Tizen::Base::String phoneNumber); + void SortCalllogList(void); + void SortCalllogListByNumber(void); + + void AddCalllogChangeListener(ICalllogChangeListener& listner ); + void RemoveCalllogChangeListner(ICalllogChangeListener& listner ); + void GetCalllogContactName(Tizen::Base::String number,Tizen::Base::String& name); + //Called when call log db is changed + static void ContactsDbchangedcb(const char* view_uri, void* user_data); + void UpDateMissedCallSeenStatus(CallLogDetails* pDetails); + void UpdateCallLogList(void); + + int GetUnknownLogCount(int dbId); + static void setCallLogViewbyID(CallLogType id); + static CallLogType getCallLogViewbyID(); + + bool GetCurrentDateTime(Tizen::Base::DateTime& dt); + contacts_phone_log_type_e GetCallLogType(CallLogType type); + + bool GetDirtyFlag(void); +private: + + static CallLogType __callLogViewbyID; + int __callLogsViewedCount; + static CallLogManager* __pCallogManager; + Tizen::Base::Collection::ArrayList*/** */ __pCalllogGroupList; + Tizen::Base::Collection::HashMapT* __pCalllogDBIds; + Tizen::Base::Collection::ArrayListT* __pCalllogListByNumber; + Tizen::Base::Collection::HashMapT* __pCalllogUnkownListByNumber; + char* __pNumber; + Tizen::Base::Collection::ArrayListT* __pCalllogChangeListerners; + bool __bDbDirty; +}; + + +/** + * @class GroupItemClass + * @brief This class helps in storing group item data + * + */ +class GroupItemClass + :public Tizen::Base::Object +{ +private: + Tizen::Base::String __titleText; + Tizen::Base::Collection::ArrayList* __pData; + +public: + GroupItemClass(void); + virtual ~GroupItemClass(void); + + /** + * This function sets the titleText for the History object + * + * @return No return type + * @param titleText The titleText for the History + */ + void SetTitleText(Tizen::Base::String titleText); + + /** + * This function sets the data for the History object + * + * @return No return type + * @param pData The data for the History + */ + void SetLogData(Tizen::Base::Collection::ArrayList* pData); + + /** + * This function gets the GetTitleText of History + * + * @return A String + * @param No parameter + */ + Tizen::Base::String GetTitleText(void); + + /** + * This function gets the GetHistoryData of History + * + * @return A Pointer to ArrayList + * @param No parameter + */ + Tizen::Base::Collection::ArrayList* GetLogData(void); +}; +#endif // _PHN_CALL_LOG_MANAGER_H_ diff --git a/inc/PhnCommonUtils.h b/inc/PhnCommonUtils.h new file mode 100644 index 0000000..74c7f14 --- /dev/null +++ b/inc/PhnCommonUtils.h @@ -0,0 +1,179 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnCommonUtils.h + * @brief This is the header file for the %DialUtil class. + * + * This header file contains the declarations for commonly used functions. + */ +#ifndef _PHN_COMMON_UTILS_H_ +#define _PHN_COMMON_UTILS_H_ + +#include +#include + +enum DialerFontStyle +{ + FONT_CALLING_TEXT, + FONT_KEYPAD_NUMBER, + FONT_KEYPAD_TEXT, + FONT_KEYPAD_P, + FONT_KEYPAD_PLUS, + FONT_KEYPAD_CANCEL, + FONT_SUGGESTION_NAME, + FONT_SUGGESTION_MOBILE, + FONT_SUGGESTION_NUMBER, + FONT_SUGGESTION_LIST_NUMBER, + FONT_HIGHLIGHT_SEARCH_KEYWORD, + FONT_EXPAND_BUTTON_TEXT, + FONT_SEARCH_TEXT, + FONT_SPEEDDIAL_BTN_NUMBER, +}; + +//Command Ids used in Dialer tab. Always append new command ids at bottom. +enum DialCommandIds +{ + NUM_KEY1 = 1, + NUM_KEY2, + NUM_KEY3, + NUM_KEY4, + NUM_KEY5, + NUM_KEY6, + NUM_KEY7, + NUM_KEY8, + NUM_KEY9, + PAUSE_KEY, + NUM_KEY0, + HASH_KEY, + CALL_KEY, + CLEAR_KEY, + CANCEL_KEY, + WAIT_KEY, + STAR_KEY, + PLUS_KEY, + DIAL_CMD_TOTAL_COUNT, +}; + +enum LogContextActionIds +{ + IDA_LIST_ELEMENT_CALL = 105, + IDA_LIST_ELEMENT_VIDEO_CALL, + IDA_LIST_ELEMENT_MESSAGE, + IDA_LIST_ELEMENT_DELETE, +}; + +extern const int ID_NAME_STRING; +extern const int ID_NUMBER_STRING; +extern const int ID_TIME_STRING; +extern const int ID_CONTACT_BITMAP; +extern const int ID_CALLTYPE_BITMAP; +extern const int ID_NAME_STRING_COUNTER; +extern const int ID_LOGCALL_BITMAP; +extern const int ID_NAME_STRING_FONT_SIZE; + + +extern const int X_TEXT_LINE1_ITEM; +extern const int Y_TEXT_LINE1_ITEM; +extern const int H_TEXT_LINE1_ITEM; +extern const int W_TEXT_LINE1_ITEM; +extern const int W_TEXT_LINE1_ITEM_RIGHT_MARGIN; +extern const int W_TEXT_LINE1_ITEM_COUNTER; + +extern const int X_TEXT_LINE2_ITEM; +extern const int Y_TEXT_LINE2_ITEM; +extern const int H_TEXT_LINE2_ITEM; +extern const int W_TEXT_LINE2_ITEM; +extern const int W_TEXT_LINE2_ITEM_RIGHT_MARGIN; +extern const int W_TEXT_LINE2_ITEM_RIGHT_MARGIN_DELETE; + +extern const int X_TEXT_TIME_ITEM; +extern const int Y_TEXT_TIME_ITEM; +extern const int H_TEXT_TIME_ITEM; +extern const int W_TEXT_TIME_ITEM; +extern const int X_TEXT_TIME_ITEM_RIGHT_MARGIN; + +extern const int X_CONTACT_BITMAP_ITEM; +extern const int Y_CONTACT_BITMAP_ITEM; +extern const int H_CONTACT_BITMAP_ITEM; +extern const int W_CONTACT_BITMAP_ITEM; + +extern const int X_CALLTYPE_BITMAP_ITEM; +extern const int Y_CALLTYPE_BITMAP_ITEM; +extern const int H_CALLTYPE_BITMAP_ITEM; +extern const int W_CALLTYPE_BITMAP_ITEM; + +extern const int X_LOGCALL_BITMAP_ITEM; +extern const int Y_LOGCALL_BITMAP_ITEM; +extern const int W_LOGCALL_BITMAP_ITEM; +extern const int H_LOGCALL_BITMAP_ITEM; +extern const int X_LOGCALL_BITMAP_RIGHT_MARGIN; + +extern const int X_DIALER_BTN_TXT; +extern const int W_DIALER_BTN_NUM_TXT; +extern const int W_DIALER_BTN_ALPHA_TXT; + +/** + * @class DialUtil + * @brief This class provides static public utility functions to dialer module. + * + */ +class DialUtil +{ +private: + DialUtil(void){}; + DialUtil(const DialUtil& obj){}; + virtual ~DialUtil(void){}; + +public: + //used to get text font for button in dialer tab. + static Tizen::Graphics::Font* GetTextFontN(int textFontStyle); + //used to get text color for button in dialer tab. + static Tizen::Graphics::Color* GetTextColorN(int textColor, int buttonStatus); + //Function to check if keyword is numeric. This function assumes that a string starting with digit will be numeric. + //If needed, it might be implemented in more generic way to check all characters for digits. + static bool IsNumericString(Tizen::Base::String& keyWord); + //Call 9 Patch + static void DrawClear9PatchToCanvas(Tizen::Graphics::Canvas& pCanvas, const Tizen::Base::String& bgImg); + //Call 9 Patch + static void DrawCall9PatchToCanvas(Tizen::Graphics::Canvas& pCanvas, const Tizen::Base::String& bgImg); + //Sets the 'bgImg' image to 'pCanvas' Canvas, if image is a 9-patch image. + static void Draw9PatchToCanvas(Tizen::Graphics::Canvas& pCanvas, const Tizen::Base::String& bgImg); + //Sets the background image to canvas without any checks for the bounds + static void DrawBitmapToCanvas(Tizen::Graphics::Canvas& pCanvas, const Tizen::Base::String& bgImg); + //Used to set image to canvas. + static void DrawImageToCanvas(const Tizen::Base::String& image, Tizen::Graphics::Dimension imageDimention, Tizen::Graphics::Canvas& pCanvas, int pos); + //Used to set image to Keypad buttons according to the latest GUI. + static void DrawKeypadImageToCanvas(const Tizen::Base::String& image, Tizen::Graphics::Dimension imageDimention, Tizen::Graphics::Canvas& pCanvas, int pos); + //Used to convert text to Enriched text and set it to canvas. + static void DrawTextToCanvas(const Tizen::Base::String& buttonText, int fontSize, Tizen::Graphics::Canvas& pCanvas, int pos, int buttonStatus); + //Draw Customized keypad button's subtext according to the latest UI + static void DrawKeypadTextToCanvas(const Tizen::Base::String& buttonText, int fontSize, Tizen::Graphics::Canvas& pCanvas, int pos, int buttonStatus); + //Used to set nnormal, pressed image to button. + static void DrawCanvasToButton(Tizen::Graphics::Canvas* pCanvasNormal, Tizen::Graphics::Canvas* pCanvasPressed, Tizen::Ui::Controls::Button* pButton); + //Used to convert provided digit to its equivalent String instance. + static Tizen::Base::String ConvertDialedNumberToString(int dialNumber); + //Function used to fetch a list of possible names mapped to 'nextCharPos'. + static Tizen::Base::Collection::IList* FetchPossibleNamesListN(const Tizen::Base::String& prevSearchStr, int nextCharPos); + //Function used to convert substring of 'name' to keys typed, eg. Ani -> 264 + static void ConvertNameToNumericKeys(Tizen::Base::String& subContactName, Tizen::Base::String& possibleKeysTyped); + //Function to return return EnrichedText with Text + Highlighted matched keyword, if any. + static Tizen::Graphics::EnrichedText* ConstructEnrichedTextN(Tizen::Base::String& text,Tizen::Base::String& matchedKeyword, int textFontStyle, Tizen::Graphics::Dimension txtDimension); + //Used to draw Enriched text with highlighted keyword to canvas. + static void DrawTextAndHighlightedKeywordToCanvas(Tizen::Base::String& buttonText, Tizen::Base::String& matchedKeyword, int fontSize, Tizen::Graphics::Canvas& pCanvas, int pos); +}; + +#endif /* _PHN_COMMON_UTILS_H_ */ diff --git a/inc/PhnDialAppForm.h b/inc/PhnDialAppForm.h new file mode 100644 index 0000000..e4b24a7 --- /dev/null +++ b/inc/PhnDialAppForm.h @@ -0,0 +1,57 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnDialAppForm.h + * @brief The Dial application form + * + */ +#ifndef _PHN_DIAL_APP_FORM_H_ +#define _PHN_DIAL_APP_FORM_H_ + +#include +#include + +/** + * @class DialAppForm + * @brief This class presents a main form for Phone application. + * + */ +class DialAppForm + : public Tizen::Ui::Controls::Form + , public Tizen::Ui::IActionEventListener + , public Tizen::Ui::Controls::IFormBackEventListener + , public Tizen::Ui::Controls::IFormMenuEventListener +{ +public: + DialAppForm(void); + virtual ~DialAppForm(void); + bool Initialize(void); + +public: + virtual result OnInitializing(void); + virtual result OnTerminating(void); + virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source); + virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId); + //IFormMenuEventListener + virtual void OnFormMenuRequested(Tizen::Ui::Controls::Form& source); + +protected: + static const int ID_HEADER_DIALER; + static const int ID_HEADER_LOGS; +}; + +#endif //_PHN_DIAL_APP_FORM_H_ diff --git a/inc/PhnDialContactInfo.h b/inc/PhnDialContactInfo.h new file mode 100644 index 0000000..92f51d8 --- /dev/null +++ b/inc/PhnDialContactInfo.h @@ -0,0 +1,85 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnDialContactInfo.h + * @brief This is the header file for the %DialContactInfo class. + * + * This header file contains the declarations for %DialContactInfo class. + */ +#ifndef _PHN_DIAL_CONTACT_INFO_H_ +#define _PHN_DIAL_CONTACT_INFO_H_ + +#include + +/** + * @class DialContactInfo + * @brief This is a light-weight class used to provides display name, + * phone number and Thumbnail using simple methods. + * + */ +class DialContactInfo: public Tizen::Base::Object +{ +public: + DialContactInfo(void); + virtual ~DialContactInfo(void); + /* + //Used to create new 'DialContactInfo' object which is clone of 'this' object. + DialContactInfo* CloneN(void); + */ + //display name + void SetDisplayName(Tizen::Base::String& pDisplayName); + Tizen::Base::String& GetDisplayName(void) const; + //phone number + void SetPhoneNumber(Tizen::Base::String& pPhoneNumber); + Tizen::Base::String& GetPhoneNumber(void) const; + //matched search string + void AddSearchKey(Tizen::Base::String& pSearchString); + void RemoveSearchKey(int index); + void ReplaceSearchKey(int index, Tizen::Base::String& pSearchString); + //Used to get the first matched search key + Tizen::Base::String* GetSearchKey(void); + Tizen::Base::Collection::IList* GetSearchKeyList(void); + //Used to transfer ownership of 'pBitmap' to 'DialContactInfo'. + void SetThumbnail(Tizen::Graphics::Bitmap* pBitmap); + Tizen::Graphics::Bitmap* GetThumbnailN(void) const; + //Coll Log Db Id + void SetCallLogDbId(int callLogDbId); + int GetCallLogDbId(void); + //Checks whether the value of the specified instance is equal to the value of the current instance of %Object. + virtual bool Equals(const Object& obj) const; + /** + * Used to return new 'DialContactInfo' object with the same state + * as the object on which this function is called. + */ + DialContactInfo* CloneN(void); + void SetRecordId(Tizen::Social::RecordId recordID); + Tizen::Social::RecordId GetRecodrdId(void); + +private: + //Copy Constructor - we dont want any bitwise copy. + DialContactInfo(const DialContactInfo& obj); + +private: + int __callLogDbId; + Tizen::Base::String* __pDisplayName; + Tizen::Base::String* __pPhoneNumber; + Tizen::Graphics::Bitmap* __pThumbnail; + Tizen::Base::Collection::ArrayList* __pSearchKeyList; + Tizen::Social::RecordId __recordID; +}; + +#endif // _PHN_DIAL_CONTACT_INFO_H_ diff --git a/inc/PhnDialPresentationModel.h b/inc/PhnDialPresentationModel.h new file mode 100644 index 0000000..6017634 --- /dev/null +++ b/inc/PhnDialPresentationModel.h @@ -0,0 +1,93 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnDialPresentationModel.h + * @brief This is the header file for the %DialPresentationModel class. + * + * This header file contains the declarations for %DialPresentationModel class. + */ +#ifndef PHNDIALPRESENTATIONMODEL_H_ +#define PHNDIALPRESENTATIONMODEL_H_ + +#include +#include +#include +#include "PhnRetrieveSuggestionsTasks.h" +#include "PhnTypes.h" + +class DialContactInfo; +class DialTabDialer; +class SettingsManager; + +/** + * @class DialPresentationModel + * @brief This class acts as an interface between the Dialer Screen and core engine. + */ +class DialPresentationModel + : public Tizen::App::IAppControlResponseListener + , public ISuggestionsRetrievedEventListener +{ +public: + DialPresentationModel(DialTabDialer& pParentPanel); + ~DialPresentationModel(); + + /** + * Used to fetch the contacts suggestion list. + * Starts a new thread for async search of contacts, call logs with phone number and name. + */ + bool FetchSuggestionList(const Tizen::Base::String& searchString); + //Used to fetch Speed dial mapping for pressed button, if present. + Tizen::Base::String* FetchSpeedDialNumberN(int actionId); + //Used to fetch contact at specified index from search result list. + DialContactInfo* GetSuggestionAtIndex(int index); + //Used to fetch the no. of suggested contacts in search result list. + int GetNumberOfSuggestions(void); + //clear search results + void ClearSearchResults(void); + //Used to open contacts "Add" AppControl + void AddContactsToAddressBook(Tizen::Base::String& contactNumber); + //Used to open Messaging "Compose" AppControl + result OpenMessagingAppControl(Tizen::Base::String& contactNumber); + //Used to open contacts "Add" AppControl + result LaunchAddContactsAppControl(Tizen::Base::String& contactNumber); + //Used to fetch latest dialed or caller number from call logs + Tizen::Base::String* FetchLatestNumberFromLogsN(void); + //Used to make an outgoing call + ErrorCodes DialCall(const Tizen::Base::String& contactNumber); + +protected: + // Get the sim info + result GetSimInfo(void); + //used to make an outgoing call request using call appcontrol + result LaunchCallAppControl(const Tizen::Base::String& contactNumber); + //Called when the application control is completed. + virtual void OnAppControlCompleteResponseReceived(const Tizen::App::AppId& appId, const Tizen::Base::String& operationId, Tizen::App::AppCtrlResult appControlResult, const Tizen::Base::Collection::IMap* pExtraData); + // Called when the retrieval of contact suggestion list is completed + virtual void HandleContactsRetrievalCompleted(Tizen::Base::Collection::IList* pContactsList); +private: + SettingsManager* __pSettingsManager; + Tizen::Base::Collection::ArrayList* __pNumberSuggestionList; + //Used to Control access to __pNumberSuggestionList + Tizen::Base::Runtime::Mutex __mutex; + Tizen::Base::String* __pSearchString; + /// Worker thread + Tizen::Base::Runtime::Thread* __pSearchThread; + RetrieveContactsListTask* __pAsyncSearchTask; + DialTabDialer& __parentDialerPanel; +}; + +#endif /* PHNDIALPRESENTATIONMODEL_H_ */ diff --git a/inc/PhnDialerKeypad.h b/inc/PhnDialerKeypad.h new file mode 100644 index 0000000..79f63c0 --- /dev/null +++ b/inc/PhnDialerKeypad.h @@ -0,0 +1,101 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnDialerKeypad.h + * @brief This is the header file for the %DialerKeypad class. + * + * This header file contains the declarations for %DialerKeypad class. + */ +#ifndef _PHN_DIALER_KEYPAD_H_ +#define _PHN_DIALER_KEYPAD_H_ + +#include +#include +#include +#include "PhnTypes.h" + +/** + * @class DialerKeypad + * @brief This class presents a Panel based UI for keypads used in Dialer Tab. + * + */ +class DialerKeypad + : public Tizen::Ui::Controls::Panel +{ +private: + enum ButtonState + { + BTN_NORMAL, + BTN_PRESS, + BTN_DIM, + }; + +public: + DialerKeypad(DialerState openedState); + virtual ~DialerKeypad(void); + + bool ConstructPanel(Tizen::Ui::IActionEventListener* pActionListener, + Tizen::Ui::ITouchLongPressGestureEventListener* pLongTapListener,Tizen::Ui::ITouchEventListener* pTouchListner); + /** + * Overrides this method to provide user-specific initialization code after the control is added to a container. + * @remarks OnInitializing() is called when the control is about to be added to a container. + * @remarks To cancel adding this control to the parent, return E_FAILURE in this method. + * @see OnTerminating() + */ + virtual result OnInitializing(void); + /** + * Overrides this method to provide user-specific termination code. + * @return An error code + * @remarks OnTerminating() is called right before the control is removed successfully from the container. + * @remarks To cancel removing this control from the parent, return E_FAILURE in this method. + * @see OnInitializing() + */ + virtual result OnTerminating(void); + + virtual result OnDraw(void); + //void add listeners to last row buttons + void AddListenersToLastRowButtons(); + //set/unset the focus to buttons + void SetFocusToButtons(bool keypad, bool lastrow); + // Set Bitmap to the Buttons in panel. + void SetBitmapToKeypadButtons(void); + //Enable/Disable the keypad tone + void SetKeypadTone(bool enable); + +private: + + //Adds Action listener and Long press detectors to buttons. + void AddListenersToButtons(void); + //used to determine whether to show cancel button + bool IsShowCancelButton(void); + //used to determine whether to show voice mail + bool IsShowVoiceMailIcon(void); + //used to determine whether to show video call button + bool IsShowVideoCallButton(void); + +private: + //Acts as Action listener & LongPress Gesture Listener + Tizen::Ui::IActionEventListener* __pParentActionListener; + Tizen::Ui::ITouchLongPressGestureEventListener* __pParentLongTapListener; + Tizen::Ui::ITouchEventListener* __pParentTouchListner; + //Long press gesture detectors for buttons + Tizen::Base::Collection::ArrayList* __pLongPressDetectors; + //Identifies dialer keypad opened from which state + DialerState __openedState; +}; + +#endif // _PHN_DIALER_KEYPAD_H_ diff --git a/inc/PhnEmergencyDialForm.h b/inc/PhnEmergencyDialForm.h new file mode 100644 index 0000000..e3d3935 --- /dev/null +++ b/inc/PhnEmergencyDialForm.h @@ -0,0 +1,83 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnEmergencyDialForm.h + * @brief This is the header file for the EmergencyDialForm class. + * + * This header file contains the declarations for EmergencyDialForm class. + */ +#ifndef _PHN_EMERGENCY_DIAL_FORM_H_ +#define _PHN_EMERGENCY_DIAL_FORM_H_ + +#include +#include + +class DialerKeypad; +class ErrorMsgPopup; + +/** + * @class EmergencyDialForm + * @brief This class presents Emergency dial form. + * + */ +class EmergencyDialForm + : public Tizen::Ui::Controls::Form + , public Tizen::App::IAppControlResponseListener + , public Tizen::Ui::Scenes::ISceneEventListener + , public Tizen::Ui::IActionEventListener + , public IPopupClosedEventListener + , public Tizen::Ui::ITouchLongPressGestureEventListener +{ +public: + EmergencyDialForm(void); + virtual ~EmergencyDialForm(void); + bool Initialize(void); + +public: + virtual result OnInitializing(void); + virtual result OnTerminating(void); + virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs); + virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId); + virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId); + + //Event Listeners from TouchLongPressGestureDetector + // Called when a long press gesture is detected. + virtual void OnLongPressGestureDetected(Tizen::Ui::TouchLongPressGestureDetector& gestureDetector); + //Called when a long press detection is canceled. + virtual void OnLongPressGestureCanceled(Tizen::Ui::TouchLongPressGestureDetector& gestureDetector){} + + //Event Listener method from IPopupClosedEventListener + virtual void HandlePopupClosed(void); + //Called when the application control is completed. + virtual void OnAppControlCompleteResponseReceived(const Tizen::App::AppId& appId, const Tizen::Base::String& operationId, Tizen::App::AppCtrlResult appControlResult, const Tizen::Base::Collection::IMap* pExtraData); + +private: + //Used to construct dialer keypad. + void ConstructKeypad(void); + //Used to show formatted contact number in text field. + void ShowFormattedText(Tizen::Ui::Controls::EditField* pEditField, int actionId); + //Used to prepare for MOCall and switch to emergency outgoing call screen. + void DialEmergencyCall(const Tizen::Base::String& contactNumber); + result LaunchCallAppControl(const Tizen::Base::String& contactNumber); + +private: + DialerKeypad* __pDialKeypad; + ErrorMsgPopup* __pErrorMsgPopup; + bool __isAppControlLaunched; +}; + +#endif // _PHN_EMERGENCY_DIAL_FORM_H_ diff --git a/inc/PhnErrorMsgPopup.h b/inc/PhnErrorMsgPopup.h new file mode 100644 index 0000000..d10ac0d --- /dev/null +++ b/inc/PhnErrorMsgPopup.h @@ -0,0 +1,78 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnErrorMsgPopup.h + * @brief This is the header file for the %ErrorMsgPopup class. + * + * This header file contains the declarations for %ErrorMsgPopup class. + */ +#ifndef _PHN_ERROR_MSG_POPUP_H_ +#define _PHN_ERROR_MSG_POPUP_H_ + +#include +#include + +/** + * @class IPopupClosedEventListener + * @brief This interface is used to notify the popup is closed event to Scenes. + * + */ +class IPopupClosedEventListener +{ +public: + virtual ~IPopupClosedEventListener(void){}; + // Called when the error message Pop-up is closed. + virtual void HandlePopupClosed(void) = 0; +}; + +/** + * @class ErrorMsgPopup + * @brief This class shows message popup in error condition. + * + */ +class ErrorMsgPopup: public Tizen::Ui::Controls::Popup + ,public Tizen::Base::Runtime::ITimerEventListener +{ +public: + ErrorMsgPopup(IPopupClosedEventListener* pEventListener); + virtual ~ErrorMsgPopup(void); + /** + * Function is used to show error message popup + * based on the error code received. + */ + void ShowErrorMsgPopupN(int errorCode); + + //From ITimerEventListener + virtual void OnTimerExpired(Tizen::Base::Runtime::Timer& timer); + +private: + void ConstructPopup(int errorCode); + //Function is used to fetch error messages based on error code + Tizen::Base::String FetchErrorMessage(int errorCode); + //draws and shows the popup on screen + void ShowPopup(void); + +private: + //Timer used to show message + Tizen::Base::Runtime::Timer* __pTimer; + //Listener to popup closed event. + IPopupClosedEventListener* __pEventListener; + //used to close the popup + int __popupModalResult; +}; + +#endif // _PHN_ERROR_MSG_POPUP_H_ diff --git a/inc/PhnIAppStateChangeListner.h b/inc/PhnIAppStateChangeListner.h new file mode 100644 index 0000000..f2c6437 --- /dev/null +++ b/inc/PhnIAppStateChangeListner.h @@ -0,0 +1,37 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnIAppStateChangeListner.h + * @brief This is the header file for the IPhnIAppStateChangeListner class. + */ + +#ifndef _PHN_STATE_CHANGE_LISTNER_H_ +#define _PHN_STATE_CHANGE_LISTNER_H_ + +#include + +class IAppStateChangeListener + : public Tizen::Base::Object +{ +public: + virtual ~IAppStateChangeListener(void) {} + + virtual void OnForeground(void) = 0; + virtual void OnBackground(void) = 0; +}; + +#endif /* _PHN_STATE_CHANGE_LISTNER_H_ */ diff --git a/inc/PhnICallLogViewByPopupListener.h b/inc/PhnICallLogViewByPopupListener.h new file mode 100644 index 0000000..1e9c6b8 --- /dev/null +++ b/inc/PhnICallLogViewByPopupListener.h @@ -0,0 +1,46 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +/* + * PhnICallLogViewByPopupListener.h + * + * Created on: Mar 13, 2013 + * Author: sekhar.b + */ + +#ifndef PHNICALLLOGVIEWBYPOPUPLISTENER_H_ +#define PHNICALLLOGVIEWBYPOPUPLISTENER_H_ + +#include +/** + * @class ICallLogViewByPopupListener + * @brief Class ICallLogViewByPopupListener is listener for popup log type selection. + * + */ +class ICallLogViewByPopupListener + : public Tizen::Base::Runtime::IEventListener +{ +public: + /** + * This is the destructor for this class. + */ + virtual ~ICallLogViewByPopupListener(void) {} + + /** + * On Item selected. + */ + virtual void OnItemSelected() = 0; +}; + +#endif /* PHNICALLLOGVIEWBYPOPUPLISTENER_H_ */ diff --git a/inc/PhnICalllogChangeListener.h b/inc/PhnICalllogChangeListener.h new file mode 100644 index 0000000..8a0784f --- /dev/null +++ b/inc/PhnICalllogChangeListener.h @@ -0,0 +1,39 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @file PhnICalllogChangeListener.h + * @brief This is the header file for the %ICalllogChangeListener class. + * + * This header file contains the declarations for %ICalllogChangeListener class. + */ +#ifndef _PHN_CALL_LOG_CHANGE_LISTENER_H_ +#define _PHN_CALL_LOG_CHANGE_LISTENER_H_ + +/** + * @class ICalllogChangeListener + * @brief This class presents call back function from call log module. + * + */ +class ICalllogChangeListener +{ +public: + virtual ~ICalllogChangeListener(void){}; + + virtual void OnCalllogChanged(void) = 0; + +}; + +#endif //_PHN_CALL_LOG_CHANGE_LISTENER_H_ diff --git a/inc/PhnIPopupItemSelectListener.h b/inc/PhnIPopupItemSelectListener.h new file mode 100644 index 0000000..576ad07 --- /dev/null +++ b/inc/PhnIPopupItemSelectListener.h @@ -0,0 +1,48 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnIPopupItemSelectListener.h + * @brief This is the header file for the %IPopupItemSelectListener class. + * + * This header file contains the declarations for %IPopupItemSelectListener class. + */ +#ifndef _IPOPUP_ITEM_SELECT_LISTENER_H_ +#define _IPOPUP_ITEM_SELECT_LISTENER_H_ + +#include + +/** + * @class IPopupItemSelectListener + * @brief Class IPopupItemSelectListener is listener for popup object deletion. + * + */ +class IPopupItemSelectListener + : public Tizen::Base::Runtime::IEventListener +{ +public: + /** + * This is the destructor for this class. + */ + virtual ~IPopupItemSelectListener(void) {} + + /** + * On Item selected. + */ + virtual void OnItemSelected(int itemIndex) = 0; +}; + +#endif // _IPOPUP_ITEM_SELECT_LISTENER_H_ diff --git a/inc/PhnISettingsEventListener.h b/inc/PhnISettingsEventListener.h new file mode 100644 index 0000000..935cc50 --- /dev/null +++ b/inc/PhnISettingsEventListener.h @@ -0,0 +1,54 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnISettingsEventListener.h + * @brief This is the header file for the %ISettingsEventListener class. + * + * This header file contains the declarations for %ISettingsEventListener class. + */ +#ifndef _PHN_I_SETTINGS_EVENT_LISTENER_H_ +#define _PHN_I_SETTINGS_EVENT_LISTENER_H_ + +#include "PhnTypes.h" + +/** + * @class ISettingsEventListener + * @brief This interface is used to listen to events from Telephony Manager. + * + */ +class ISettingsEventListener +{ +public: + virtual ~ISettingsEventListener(void){}; + + //Handle the response for getCallWaiting request + virtual void HandleGetCallWaitingResponse(bool isCallSuccessful, bool callWaitingActivated) = 0; + //Handle the response for setCallWaiting request + virtual void HandleSetCallWaitingResponse(bool isCallSuccessful, bool isCallWaitingEnabled) = 0; + //Handle the response for getCallForwarding request + virtual void HandleGetCallForwardResponse(bool isCallSuccessful, CallForwardCondition callFwdCondition, const Tizen::Base::String& callFwdNumber, bool callForwardActivated, int noReplyWaitTime) = 0; + //Handle the response for setCallForwarding request + virtual void HandleSetCallForwardResponse(bool isCallSuccessful, CallForwardCondition callFwdCondition, const Tizen::Base::String& callFwdNumber, bool isCallForwardActivated, int noReplyWaitTime) = 0; + //Handle the response for setcallBarring request + virtual void HandleSetCallBarringResponse(int result, CallBarringType callBarringType, bool isBarringActivated) = 0; + //Handle the response for getCallBarring request + virtual void HandleGetCallBarringResponse(int result, CallBarringType callBarringType, bool isBarringActivated) = 0; + //Handle flight mode change + virtual void HandleFlightMode(bool isFlightModeActivated) = 0; +}; + +#endif // _PHN_I_SETTINGS_EVENT_LISTENER_H_ diff --git a/inc/PhnLogsDetailForm.h b/inc/PhnLogsDetailForm.h new file mode 100644 index 0000000..5f519b7 --- /dev/null +++ b/inc/PhnLogsDetailForm.h @@ -0,0 +1,244 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnLogsDetailForm.h + * @brief This is the header file for the %DlLogsDetailForm class. + * + * This header file contains the declarations for %DlLogsDetailForm class. + */ +#ifndef _PHN_LOGS_DETAIL_FORM_H_ +#define _PHN_LOGS_DETAIL_FORM_H_ + +#include +#include +#include +#include "PhnCallLogPresentationModel.h" +#include "PhnCallLogViewByPopup.h" +#include "PhnIAppStateChangeListner.h" +#include "PhnICallLogViewByPopupListener.h" +#include "PhnLogsDetailItemProvider.h" + +class CallLogDetails; +class CallLogManager; + +/** + * @class DlLogsDetailForm + * @brief This class presents a form based UI for call log details scene. + * + */ +class DlLogsDetailForm + : public Tizen::Ui::Controls::Form + , public Tizen::Ui::IActionEventListener + , public Tizen::App::IAppControlResponseListener + , public Tizen::Ui::Controls::IFormBackEventListener + , public Tizen::Ui::IOrientationEventListener + , public Tizen::Ui::Scenes::ISceneEventListener + , public Tizen::Ui::IWindowEventListener + , public Tizen::Base::Runtime::ITimerEventListener + , public Tizen::Ui::Controls::IGroupedListViewItemEventListener + , public IAppStateChangeListener + , public ICalllogChangeListener + , public ICallLogViewByPopupListener + , public Tizen::Ui::Controls::IFormMenuEventListener + , public Tizen::Ui::IPropagatedKeyEventListener + , public Tizen::System::ISettingEventListener +{ + +// Construction +public: + ///DlLogsDetailForm constructor + DlLogsDetailForm(void); + + ///DlLogsDetailForm destructor + virtual ~DlLogsDetailForm(void); + + ///Initializes the DlLogsDetailForm form + /* + * @param: Whether Initialize is success or not + */ + bool Initialize(); + + ///This functions gets called during form OnInitializing + /* + * @param: result + */ + result OnInitializing(void); + + ///This functions gets called during form terminating + /* + * @param: result + */ + result OnTerminating(void); + + ///IActionEventListener + virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId); + + ///IFormBackEventListener method + virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source); + + void SetFormMode(bool mode); + + void SetAllListItems(bool checked); + + void UnCheckAllItems(void); + + void GetUpdatedListFromDatabase(); + + bool DeleteSelectedCalllog(void); + + /// IGroupedListViewItemEventListener + virtual void OnGroupedListViewContextItemStateChanged(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex, int elementId, Tizen::Ui::Controls::ListContextItemStatus state){} + virtual void OnGroupedListViewItemStateChanged(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex, int elementId, Tizen::Ui::Controls::ListItemStatus state); + virtual void OnGroupedListViewItemSwept(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex, Tizen::Ui::Controls::SweepDirection direction){} + + ///ISceneEventListener + virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs); + ///ISceneEventListener + virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId); + void UpdateForm(void); + /** + * Called when the application control is completed. + */ + virtual void OnAppControlCompleteResponseReceived(const Tizen::App::AppId& appId, const Tizen::Base::String& operationId, Tizen::App::AppCtrlResult appControlResult, const Tizen::Base::Collection::IMap* pExtraData); + //IPropagatedKeyEventListener + virtual bool OnKeyReleased(Control& source, const KeyEventInfo& keyEventInfo); + virtual bool OnKeyPressed(Control& source, const KeyEventInfo& keyEventInfo){ return false; } + virtual bool OnPreviewKeyPressed(Control& source, const KeyEventInfo& keyEventInfo){ return false; } + virtual bool OnPreviewKeyReleased(Control& source, const KeyEventInfo& keyEventInfo){ return false; } + virtual bool TranslateKeyEventInfo(Control& source, KeyEventInfo& keyEventInfo) { return false; } + + void ShowDeletePopup(void); + void HideDeletePopup(void); + virtual void OnTimerExpired(Tizen::Base::Runtime::Timer &timer); + virtual void OnWindowActivated(const Tizen::Ui::Window &source); + virtual void OnWindowDeactivated(const Tizen::Ui::Window &source){} + result RemoveLogsList(); + + //Called when App comes to foreground + virtual void OnForeground(void); + //Called when App goes to background + virtual void OnBackground(void); + + void SetListItemSelectStatus(bool status); + //Called when callog list changes + virtual void OnCalllogChanged(void); + + void StoreItemselection(int groupIndex, int itemIndex, int elementId, ListItemStatus state); + void ManageItemSelection(void); + bool IsScecneVisible(); + void SetSceneVisible(bool sceneMode); + void ShowBlockPopup(void); + //Used to show error message box + void ShowDuplicateErrorMessageBox(Tizen::Base::String& message); + void ShowInvalidMessageNumberMessageBox(Tizen::Base::String& message); + void ShowInvalidNumberMessageBox(String& number); + //Handles userevents + virtual void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs); + //From IPopupEventListener + void OnItemSelected(); + void ViewContactDetail(void); + //void ShowContextMenu(); + ///IOrientationEventListener + virtual void OnOrientationChanged(const Control& source, Tizen::Ui::OrientationStatus orientationStatus); + //ISettingEventListener + virtual void OnSettingChanged(Tizen::Base::String& key); + //IFormMenuEventListener + virtual void OnFormMenuRequested(Tizen::Ui::Controls::Form& source); + void ShowOptionsMenu(); + void ManageUserDetail(); + void GetTextWidthHeight(String str, float fontSize, float *width, float *height); + + bool IsValidMessageNumber(const String& phoneNumber); + bool IsValidCallNumber(const String& phoneNumber); + void ShowDeleteConfirmationPopup(); +private: + ///Call button + Tizen::Ui::Controls::Button* __pButtonCall; + + ///Message button + Tizen::Ui::Controls::Button* __pButtonMessage; + + ///Contact Image + Tizen::Ui::Controls::Button* __pButtonContactImage; + + ///Contact name + Tizen::Ui::Controls::Panel* __pPanelName; + Tizen::Ui::Controls::Panel* __pPanelNumberUnsaved; + + ///Contact number + Tizen::Ui::Controls::Label* __pLabelNumber; + Tizen::Ui::Controls::Label* __pLabelBlocked; + + ///Form footer + Tizen::Ui::Controls::Footer* __pFormFooter; + + ///More option footer item + Tizen::Ui::Controls::ButtonItem __footerItemMore; + + ///Delete footer item + Tizen::Ui::Controls::FooterItem __pFooterItemDelete; + + ///Grouped list view + Tizen::Ui::Controls::GroupedListView* __pList; + + Tizen::Ui::Controls::CheckButton* __pSelectAll; + + //Selected pop up label + Tizen::Ui::Controls::Label* __pSelectedLabel; + + LogsDetailItemProvider* __pDataProvider; + + //Used only when device has HardWare key + Tizen::Ui::Controls::OptionMenu* __pOptionMenu; + + ///List view height + int __listHeight; + + ///form mode + bool __isEditMode; + + bool __isSelectAll; + bool __isPresentInContacts; + + int __listItemCount; + int __selectedItemCount; + Tizen::Base::Collection::ArrayListT* __calllogListByNum; + CalLogPresentationModel* __pLogPresentor; + int __calllogCount; + Tizen::Base::String __number; + bool __isMsgAppControlLaunched; + bool __isCallAppControlLaunched; + + + Tizen::Base::Runtime::Timer __deleteLogsTimer; + Tizen::Ui::Controls::Popup* __pDeletePopup; + Tizen::Ui::Controls::Popup* __pConfirmationDeletePopup; + + int __deleteGroupIndex; + int __deleteItemIndex; + + Tizen::Base::Collection::ArrayList* __pCallLogId; + CallLogViewByPopup* __pLogsBlockPopup; + bool __isSceneVisible; + bool __isContactAppControlLaunched; + bool __isCallBeRejected; + bool __isMsgBeRejected; + Tizen::Base::String __contactName; + bool __isDeleteInProgress; +}; + +#endif /*_PHN_LOGS_DETAIL_FORM_H_*/ diff --git a/inc/PhnLogsDetailItemProvider.h b/inc/PhnLogsDetailItemProvider.h new file mode 100644 index 0000000..639ad74 --- /dev/null +++ b/inc/PhnLogsDetailItemProvider.h @@ -0,0 +1,124 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnDlLogsDetailItemProvider.h + * @brief This is the header file for the %DlLogsDetailItemDataProvider class. + * + * This header file contains the declarations for %DlLogsDetailItemDataProvider class. + */ +#ifndef _PHN_LOGS_DETAIL_ITEM_PROVIDER_H_ +#define _PHN_LOGS_DETAIL_ITEM_PROVIDER_H_ + +#include +#include +#include +#include "PhnCallLogPresentationModel.h" + +using namespace Tizen::Base::Collection; +using namespace Tizen::Base; +using namespace Tizen::Ui; +using namespace Tizen::Ui::Controls; + +class CallLogManager; +class CallLogDetails; + +class CallLogDetailGroup + :public Tizen::Base::Object +{ + +public: + CallLogDetailGroup(void); + virtual ~CallLogDetailGroup(void); + + Tizen::Base::Collection::ArrayList* GetLogData(void); + Tizen::Base::String GetTitleText(void); + void SetLogData(Tizen::Base::Collection::ArrayList* pData); + void SetTitleText(Tizen::Base::String titleText); + +private: + Tizen::Base::String __groupTitleText; + Tizen::Base::Collection::ArrayList* __pGroupElements; +}; + + + + +class LogsDetailItemProvider + : public Tizen::Ui::Controls::IGroupedListViewItemProvider +{ + +public: + LogsDetailItemProvider(); + virtual ~LogsDetailItemProvider(); + + void CreateCalllogDetailGroups(); + void GetCurrentDateTime(Tizen::Base::DateTime& dt); + int GetDaysDifferenceBetweenDates(DateTime date1, DateTime date2); + CallLogDetailGroup* GetGroupWithTitle(String title); + void GetItemAtGroupIndex(int groupIndex, int itemIndex, CallLogDetails** pCalllogDetails); + bool IsGroupPresent(String title); + void ResetDetailsList(void); + void SetViewMode(bool mode); + + // IGroupedListViewItemProvider + virtual int GetGroupCount(void); + virtual int GetItemCount(int groupIndex); + virtual Tizen::Ui::Controls::GroupItem* CreateGroupItem(int groupIndex, int itemWidth); + virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::GroupItem* pItem, int itemWidth); + virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int groupIndex, int itemIndex, int itemWidth); + virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth); +private: + void GetCallogIconBitmap(CallLogType logType,Tizen::Graphics::Bitmap*& iconType, Tizen::Graphics::Bitmap*& iconArrow, Tizen::Base::String& text); + void GetTimeText(DateTime datetime,Tizen::Base::String& dateText); + bool IsTimeToBeDisplayed(CallLogType type); +protected: + static const int ID_NAME_STRING; + static const int ID_NUMBER_STRING; + static const int ID_TIME_STRING; + static const int ID_CALLTYPE_BITMAP; + + static const int X_TEXT_LINE1_ITEM; + static const int Y_TEXT_LINE1_ITEM; + static const int H_TEXT_LINE1_ITEM; + static const int W_TEXT_LINE1_ITEM; + + static const int X_TEXT_LINE2_ITEM; + static const int Y_TEXT_LINE2_ITEM; + static const int H_TEXT_LINE2_ITEM; + static const int W_TEXT_LINE2_ITEM; + + static const int X_TEXT_TIME_ITEM; + static const int Y_TEXT_TIME_ITEM; + static const int H_TEXT_TIME_ITEM; + static const int W_TEXT_TIME_ITEM; + + + static const int X_CALLTYPE_BITMAP_ITEM; + static const int Y_CALLTYPE_BITMAP_ITEM; + static const int H_CALLTYPE_BITMAP_ITEM; + static const int W_CALLTYPE_BITMAP_ITEM; + +private: + CalLogPresentationModel* __pLogPresentor; + bool __isEditMode; + Tizen::Base::Collection::IListT* __pCalllogDetailListByNumber; + Tizen::Base::Collection::ArrayList* __pCallLogDetailGroups; + float __fontSize; + float __itemHeight; +}; + +#endif /* _PHN_LOGS_DETAIL_ITEM_PROVIDER_H_ */ diff --git a/inc/PhnPanelFactory.h b/inc/PhnPanelFactory.h new file mode 100644 index 0000000..457aad6 --- /dev/null +++ b/inc/PhnPanelFactory.h @@ -0,0 +1,46 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnPanelFactory.h + * @brief This is the header file for the %PanelFactory class. + * + * This header file contains the declarations for %PanelFactory class. + */ +#ifndef _PHN_PANEL_FACTORY_H_ +#define _PHN_PANEL_FACTORY_H_ + +#include + +extern const wchar_t* PANEL_DIALER; +extern const wchar_t* PANEL_LOGS; + +/** + * @class PanelFactory + * @brief This class provides the Panel factory for Dial application + * + */ +class PanelFactory + : public Tizen::Ui::Scenes::IPanelFactory +{ +public: + PanelFactory(void); + virtual ~PanelFactory(void); + + virtual Tizen::Ui::Controls::Panel* CreatePanelN(const Tizen::Base::String& panelId, const Tizen::Ui::Scenes::SceneId& sceneId); +}; + +#endif // _PHN_PANEL_FACTORY_H_ diff --git a/inc/PhnPhoneApp.h b/inc/PhnPhoneApp.h new file mode 100644 index 0000000..b4c5480 --- /dev/null +++ b/inc/PhnPhoneApp.h @@ -0,0 +1,118 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnPhoneApp.h + * @brief This is the header file for the %PhoneApp class. + * + * This header file contains the declarations for %PhoneApp class. + */ +#ifndef _PHN_PHONE_APP_H_ +#define _PHN_PHONE_APP_H_ + +#include +#include +#include +#include +#include "vconf.h" + +class IAppStateChangeListener; + +/** + * @class PhoneApp + * @brief PhoneApp must inherit from UiApp class + * which provides basic features necessary to define an UiApp. + * + */ +class PhoneApp + : public Tizen::App::UiApp + , public Tizen::System::IScreenEventListener + , public Tizen::App::IAppControlProviderEventListener + , public Tizen::App::IActiveAppEventListener + , public Tizen::System::ISettingEventListener + , public Tizen::Ui::IActionEventListener +{ +public: + + static Tizen::App::UiApp* CreateInstance(void); + +public: + PhoneApp(void); + virtual ~PhoneApp(void); + +public: + bool OnAppInitializing(Tizen::App::AppRegistry& appRegistry); + bool OnAppInitialized(void); + bool OnAppWillTerminate(void); + bool OnAppTerminating(Tizen::App::AppRegistry& appRegistry, bool forcedTermination = false); + void OnForeground(void); + void OnBackground(void); + void OnLowMemory(void); + void OnBatteryLevelChanged(Tizen::System::BatteryLevel batteryLevel); + void OnScreenOn(void); + void OnScreenOff(void); + //Called when application becomes active + virtual void OnActiveAppChanged(const Tizen::Base::String& appId); + //SettingsEventListener + void OnSettingChanged(Tizen::Base::String& key); + // Called when the application control request is received from the caller application. + virtual void OnAppControlRequestReceived(RequestId reqId, const Tizen::Base::String& operationId, const Tizen::Base::String* pUriData, const Tizen::Base::String* pMimeType, const Tizen::Base::Collection::IMap* pExtraData); + //Used to send response message to AppControl requester. + void SendAppControlResponseMessage(Tizen::App::AppCtrlResult appCtrlResult, const Tizen::Base::Collection::IMap* pExtraData); + + //Used to query whether application is initialized as AppControl. + bool IsOpenAsAppControl(void); + //Used to get the initial scene Id + Tizen::Ui::Scenes::SceneId GetInitialScene(void); + //Used to set initial scene id + void SetInitialScene(Tizen::Ui::Scenes::SceneId initialSceneId); + //Used to get launch arguments at application launch + Tizen::Base::Collection::IList* GetAppLaunchArguments(void); + + void AddAppStateChangeListener(const IAppStateChangeListener& listener); + void RemoveAppStateChangeListener(const IAppStateChangeListener& listener); + + virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId); + //Called when call state is changed + static void OnCallStateChange(keynode_t *node, void *user_data); + +private: + //internal function to process AppControl request. + void ProcessAppControlRequest(RequestId reqId, const Tizen::Base::String& operationId,const Tizen::Base::String* pUriData, const Tizen::Base::Collection::IMap* pArgsMap); + //internal function to handle AppControl Request for Dial. + void HandleDialerAppControlRequest(RequestId reqId,const Tizen::Base::String* pUriData, const Tizen::Base::Collection::IMap* pArgsMap); + //internal function to handle AppControl Request for call Settings. + void HandleSettingsAppControlRequest(RequestId reqId,const Tizen::Base::Collection::IMap* pArgsMap); + //Used to destroy launch application pop-up + void DestroyLaunchOptionPopup(); + + long long GetAvailableMemory(void); + +private: + //Used to implement AppControl Specific features. + bool __isOpenAsAppControl; + Tizen::Base::Collection::ArrayList* __pLaunchArgs; + //Used to store initial scene id + Tizen::Ui::Scenes::SceneId __initialSceneId; + Tizen::Base::Collection::ArrayList __listenerList; + Tizen::Base::String __currentDisplayLanguage; + Tizen::Base::String __currentFontSize; + RequestId __appControlRequestId; + Tizen::Ui::Controls::Popup* __pAppPopup; + Tizen::Base::String __operatioID; +}; + +#endif // _PHN_PHONE_APP_H_ diff --git a/inc/PhnPhoneAppFrame.h b/inc/PhnPhoneAppFrame.h new file mode 100644 index 0000000..e451193 --- /dev/null +++ b/inc/PhnPhoneAppFrame.h @@ -0,0 +1,46 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnPhoneAppFrame.h + * @brief This is the header file for the %PhoneAppFrame class. + * + * This header file contains the declarations for %PhoneAppFrame class. + */ +#ifndef _PHN_PHONE_APP_FRAME_H_ +#define _PHN_PHONE_APP_FRAME_H_ + +#include +#include + +/** + * @class PhoneAppFrame + * @brief This class presents a main application frame and performs scene registration. + * + */ +class PhoneAppFrame + : public Tizen::Ui::Controls::Frame +{ +public: + PhoneAppFrame(void); + virtual ~PhoneAppFrame(void); + +public: + virtual result OnInitializing(void); + virtual result OnTerminating(void); +}; + +#endif // _PHN_PHONE_APP_FRAME_H_ diff --git a/inc/PhnPhoneFormFactory.h b/inc/PhnPhoneFormFactory.h new file mode 100644 index 0000000..086270f --- /dev/null +++ b/inc/PhnPhoneFormFactory.h @@ -0,0 +1,50 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnPhoneFormFactory.h + * @brief This is the header file for the %FormFactory class. + * + * This header file contains the declarations for %FormFactory class. + */ +#ifndef _PHN_PHONE_FORM_FACTORY_H_ +#define _PHN_PHONE_FORM_FACTORY_H_ + +#include +#include "PhnTypes.h" + +/** + * @class FormFactory + * @brief This class presents a form factory functionality for all forms. + * + */ +class FormFactory + : public Tizen::Ui::Scenes::IFormFactory +{ +public: + FormFactory(void); + virtual ~FormFactory(void); + + //Factory Method from IFormFactory + virtual Tizen::Ui::Controls::Form* CreateFormN(const Tizen::Base::String& formId, const Tizen::Ui::Scenes::SceneId& sceneId); + +private: + //Used to create forms related to Call Settings module + Tizen::Ui::Controls::Form* CreateCallSettingsForm(const Tizen::Base::String& formId, const Tizen::Ui::Scenes::SceneId& sceneId); + +}; + +#endif // _PHN_PHONE_FORM_FACTORY_H_ diff --git a/inc/PhnRetrieveSuggestionsTasks.h b/inc/PhnRetrieveSuggestionsTasks.h new file mode 100644 index 0000000..8058eaa --- /dev/null +++ b/inc/PhnRetrieveSuggestionsTasks.h @@ -0,0 +1,119 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnRetrieveSuggestionsTasks.h + * @brief This is the header file for the %RetrieveContactsListTask class. + * + * This header file contains the declarations for %RetrieveContactsListTask class. + */ +#ifndef _PHN_RETRIEVE_SUGGESTIONS_TASKS_H_ +#define _PHN_RETRIEVE_SUGGESTIONS_TASKS_H_ + +#include +#include + +class DialContactInfo; +//class CallLogDetails; + +/** + * @class ISuggestionsRetrievedEventListener + * @brief This is event listener interface for informing that + * the retrieval of contact suggestion list is completed. + */ +class ISuggestionsRetrievedEventListener +{ +public: + virtual ~ISuggestionsRetrievedEventListener(void){}; + + /** + * Called when the retrieval of contact suggestion list is completed. + * Ownership transferred for 'pContactsMap' to listener. + */ + virtual void HandleContactsRetrievalCompleted(Tizen::Base::Collection::IList* pContactsMap) = 0; +}; + +/** + * @class RetrieveContactsListTask + * @brief This Class used to provide Thread functionality for all Search Tasks asynchronously. + * + */ +class RetrieveContactsListTask + : public Tizen::Base::Object + , public Tizen::Base::Runtime::IRunnable +{ +public: + RetrieveContactsListTask( ISuggestionsRetrievedEventListener& pEventListener); + //Destructor + ~RetrieveContactsListTask(void); + //2nd phase contruct to initialize search string and old search results if present. + result Construct(Tizen::Base::String& searchString,const Tizen::Base::Collection::IList* oldSearchResults); + ///called when the thread for search task starts + virtual Tizen::Base::Object* Run(void); + +private: + //internal function to search speed-dial numbers and add to list + void SearchSpeedDialForNumberN(void); + //internal function to search contacts by phone number and add to list. + void SearchContactsForNumber(void); + //internal function to searches call logs for phone number and add to list. + /*void SearchCallLogsForNumber(void);*/ + //internal function to search contacts by name and add to list. + void SearchContactsForName(void); + //internal function to save contacts starting with 'searchStr'. + void SearchContactsWithInitialChar(Tizen::Base::String& searchStr); + //internal function to update the already fetched suggestion list + void UpdateSuggestionList(void); + + //internal function to save searched contact by number to single consolidated list. + void SaveContactsToListByNumber(Tizen::Base::Collection::IList& saveList, Tizen::Base::String& matchedString); + /** + * internal function to convert Contact to DialContactInfo. + * return null, if the contact does not have any phone numbers assigned to it. + */ + DialContactInfo* ConvertToDialContactN(Tizen::Social::Contact& contact, Tizen::Base::String& matchedString, bool isSpeedDialContact = false); + /*DialContactInfo* ConvertLogDetailsToDialContactN(CallLogDetails& logDetails);*/ + +private: + Tizen::Social::Addressbook* __pAddressBook; + ISuggestionsRetrievedEventListener& __pEventListener; + Tizen::Base::Collection::ArrayList* __pContactsList; + Tizen::Base::String* __pNumberStr; +}; + +/** + * @class SuggestionListComparer + * @brief This Class is used to compare 2 objects of 'DialContactInfo' type and returns the comparison results. + * This class can be used to sort an ArrayList of 'DialContactInfo' objects. + */ +class SuggestionListComparer +: public Tizen::Base::Collection::IComparer +{ +public: + SuggestionListComparer(){}; + virtual ~SuggestionListComparer(){}; + /** + * Used to compare two reference of 'DialContactInfo' and return 'cmpResult' as the comparison result. + * + * @code + * < 0 if the value of @c obj1 is less than the value of @c obj2 + * == 0 if the value of @c obj1 is equal to the value of @c obj2 + * > 0 if the value of @c obj1 is greater than the value of @c obj2 + */ + virtual result Compare(const Tizen::Base::Object& objRef1, const Tizen::Base::Object& objRef2, int& cmpResult) const; +}; + +#endif // _PHN_RETRIEVE_SUGGESTIONS_TASKS_H_ diff --git a/inc/PhnSceneRegister.h b/inc/PhnSceneRegister.h new file mode 100644 index 0000000..7cdd5bf --- /dev/null +++ b/inc/PhnSceneRegister.h @@ -0,0 +1,43 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnSceneRegister.h + * @brief This is the header file for the %SceneRegister class. + * + * This header file contains the declarations for %SceneRegister class. + */ +#ifndef _PHN_SCENE_REGISTER_H_ +#define _PHN_SCENE_REGISTER_H_ + +#include "PhnTypes.h" + +/** + * @class SceneRegister + * @brief This class presents function to register all scenes. + * + */ +class SceneRegister +{ +public: + SceneRegister(void); + ~SceneRegister(void); + + //This function is used to register all scenes. + static result RegisterAllScenes(void); +}; + +#endif // _PHN_SCENE_REGISTER_H_ diff --git a/inc/PhnSettingsAddNumberForm.h b/inc/PhnSettingsAddNumberForm.h new file mode 100644 index 0000000..9f52940 --- /dev/null +++ b/inc/PhnSettingsAddNumberForm.h @@ -0,0 +1,205 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnSettingsAddNumberForm.h + * @brief This is the header file for the %SettingsAddNumberForm class. + * + * This header file contains the declarations for %SettingsAddNumberForm class. + */ +#ifndef _PHN_SETTINGS_ADD_NUMBER_FORM_H_ +#define _PHN_SETTINGS_ADD_NUMBER_FORM_H_ + +#include +#include + +/** + * @class SettingsAddNumberForm + * @brief This class presents a settings form based UI for call settings. + * + */ +class SettingsAddNumberForm + : public Tizen::Ui::IActionEventListener + , public Tizen::Ui::Controls::Form + , public Tizen::Ui::Controls::IGroupedTableViewItemProvider + , public Tizen::Ui::Controls::IGroupedTableViewItemEventListener + , public Tizen::Ui::Scenes::ISceneEventListener + , public Tizen::Ui::ITextEventListener + , public Tizen::Ui::IKeypadEventListener + , public Tizen::App::IAppControlResponseListener + , public Tizen::Ui::IOrientationEventListener + , public Tizen::Ui::Controls::IFormBackEventListener + , public Tizen::Ui::IPropagatedKeyEventListener +{ +public: + enum FormType + { + FORMTYPE_NUMBER_TO_REJECT, + FORMTYPE_AUTO_AREA_CODE, + }; + +public: + SettingsAddNumberForm(FormType formType); + virtual ~SettingsAddNumberForm(void); + void Initialize(void); + +public: + virtual result OnInitializing(void); + virtual result OnTerminating(void); + //From IActionEventListener + virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId); + //From ISceneEventListener + virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs); + virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId); + + //From IGroupedTableViewItemEventListener - Called when the state of a TableViewGroupItem is changed. + virtual void OnGroupedTableViewGroupItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status){}; + //From IGroupedTableViewItemEventListener - Called when the state of a TableViewItem in the GroupedTableView is changed. + virtual void OnGroupedTableViewItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status); + //From IGroupedTableViewItemEventListener - Called when the TableViewContextItem is opened or closed. + virtual void OnGroupedTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated){}; + + //From IGroupedTableViewItemProvider - Gets the total number of groups. + virtual int GetGroupCount(void); + //From IGroupedTableViewItemProvider - Gets the total number of items in the specified group. + virtual int GetItemCount(int groupIndex); + //From IGroupedTableViewItemProvider - Gets the group item for the specified index from the item provider. + virtual Tizen::Ui::Controls::TableViewGroupItem* CreateGroupItem(int groupIndex, int itemWidth); + //From IGroupedTableViewItemProvider - Deletes the specified group item. + virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem); + //From IGroupedTableViewItemProvider - Updates the specified group item. + virtual void UpdateGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem); + //From IGroupedTableViewItemProvider - Creates the specified item. + virtual Tizen::Ui::Controls::TableViewItem* CreateItem(int groupIndex, int itemIndex, int itemWidth); + //From IGroupedTableViewItemProvider - Deletes the specified item. + virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem); + //From IGroupedTableViewItemProvider - Updates the specified item. + virtual void UpdateItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem); + //From IGroupedTableViewItemProvider - Gets the default height of an group item. + virtual int GetDefaultGroupItemHeight(void); + //From IGroupedTableViewItemProvider - Gets the default height of an item. + virtual int GetDefaultItemHeight(void); + + //From IKeypadEventListener + virtual void OnKeypadWillOpen(Tizen::Ui::Control& source); + virtual void OnKeypadOpened(Tizen::Ui::Control& source); + virtual void OnKeypadClosed(Tizen::Ui::Control& source); + virtual void OnKeypadActionPerformed(Tizen::Ui::Control& source, Tizen::Ui::KeypadAction keypadAction){}; + virtual void OnKeypadBoundsChanged(Tizen::Ui::Control& source){}; + + //Launches contacts app control for pick operation + void LaunchContactsAppControl(void); + //From IAppControlResponseListener + virtual void OnAppControlCompleteResponseReceived(const Tizen::App::AppId& appId, const Tizen::Base::String& operationId, Tizen::App::AppCtrlResult appControlResult, const Tizen::Base::Collection::IMap* pExtraData); + + // Called when a text is changed. + virtual void OnTextValueChanged(const Tizen::Ui::Control& source); + // Called when a change made to the text is canceled. + virtual void OnTextValueChangeCanceled(const Tizen::Ui::Control& source); + //From IOrientationEventListener + virtual void OnOrientationChanged(const Tizen::Ui::Control& source, Tizen::Ui::OrientationStatus orientationStatus); + //From IFormBackEventListener - Called when the current Form reverts back to the previous Form. + virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source); + //Searches addressbook for the number and sets the contact bitpmap + void SearchAndSetBitmapToContactButton(Tizen::Base::String& phoneNumber); + + //IPropagatedKeyEventListener + virtual bool OnKeyPressed(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){ return false; }; + virtual bool OnKeyReleased(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo); + virtual bool OnPreviewKeyPressed(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){ return false; } + virtual bool OnPreviewKeyReleased(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){ return false; } + virtual bool TranslateKeyEventInfo(Control& source, Tizen::Ui::KeyEventInfo& keyEventInfo) { return false; } + +private: + // This function is used to collapse selective groups while form initialization only. + void CollapseSelectiveGroups(Tizen::Ui::Controls::GroupedTableView* pMainMenuTableView); + //Function is used to initialize header and headerItems. + void InitializeHeaderAndFooter(void); + //Function is used to initialize numeric edit field. + void InitializeNumberEditField(Tizen::Ui::Controls::TableViewItem* pItem); + void UpdateCallRejectionDetail(); + //Initialize group table view. + result InitializeGroupedTableView(void); + // This function is used to create list items which come under "GROUP_CRITERIA_OPTIONS". + Tizen::Ui::Controls::TableViewItem* CreateCriteriaOptionsMenuItem(int itemIndex, int itemWidth); + // This function is used to create "GROUP_ENTER_NUMBER". + Tizen::Ui::Controls::TableViewItem* CreateContactEditFieldItem(int itemWidth); + // This function is used to create "GROUP_SELECT_CRITERIA". + Tizen::Ui::Controls::TableViewItem* CreateExpandableCriteriaItem(int itemWidth); + // This function is used to handle selection of 'GROUP_SELECT_CRITERIA'. + void ToggleGroupExpansion(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex); + // This function is used to handle selection of matching criteria. + void HandleMatchingCriteriaSelected(Tizen::Ui::Controls::GroupedTableView& tableView, int itemIndex, Tizen::Ui::Controls::TableViewItemStatus status); + //Function is used to go to previous form, based on current form state. + void GoBackToPreviousForm(void); + Tizen::Base::String FetchTextForCriteria(int itemIndex); + //Used to show error message box + void ShowDuplicateErrorMessageBox(Tizen::Base::String& message); + //Used to enable or disable save button + void EnableSaveButton(bool isEnable); + //Used to set selected contact's photo to Button + void SetBitmapToContactButton(Tizen::Graphics::Bitmap* pContactPhoto); + //Shows invalid contact pop-up + void ShowInvalidContactPopup(void); + +private: + //Main Group Items for group list view + enum CriteriaGroupId + { + GROUP_ENTER_NUMBER, + GROUP_SELECT_CRITERIA, + GROUP_CRITERIA_OPTIONS, + GROUP_TOTALCOUNT, + }; + + //Items for 'GROUP_ENTER_NUMBER' + enum GroupEnterNumberItems + { + ENTERNUMBER_EDITFIELD, + ENTERNUMBER_TOTALCOUNT, + }; + + //Items for 'GROUP_SELECT_CRITERIA' + enum GroupSelectCriteriaItems + { + SELECTCRITERIA_MATCH_CRITERIA, + SELECTCRITERIA_TOTALCOUNT, + }; + //Items for 'GROUP_CRITERIA_OPTIONS' + enum GroupCriteriaOptionsItems + { + CRITERIAOPTIONS_EXACT, + CRITERIAOPTIONS_STARTSWITH, + CRITERIAOPTIONS_ENDSWITH, + CRITERIAOPTIONS_INCLUDE, + CRITERIAOPTIONS_TOTALCOUNT, + }; + //used to store form state. + FormType __formType; + GroupCriteriaOptionsItems __selectedCriteria; + bool __isCriteriaOptionsMenuExpanded; + bool __isMatchCriteriaMenuItemSelected; + Tizen::Base::String __activePrefixDialingNumber; + bool __isContactAppControlLaunched; + Tizen::Ui::Controls::EditField* __pEditFieldNumber; + Tizen::Ui::Controls::Button* __pContactBtn; + bool __isKeypadShown; + Tizen::Ui::Controls::Popup* __pInvalidContactPopup; + Tizen::Base::String __editFieldText; + Tizen::Base::String __pickedContactId; +}; + +#endif //_PHN_SETTINGS_ADD_NUMBER_FORM_H_ diff --git a/inc/PhnSettingsBarringPwdForm.h b/inc/PhnSettingsBarringPwdForm.h new file mode 100644 index 0000000..9cd3286 --- /dev/null +++ b/inc/PhnSettingsBarringPwdForm.h @@ -0,0 +1,92 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnSettingsBarringPwdForm.h + * @brief This is the header file for the %SettingsBarringPwdForm class. + * + * This header file contains the declarations for %SettingsBarringPwdForm class. + */ +#ifndef _PHN_SETTINGS_BARRING_PWD_FORM_H_ +#define _PHN_SETTINGS_BARRING_PWD_FORM_H_ + +#include +#include +#include "PhnErrorMsgPopup.h" +#include "PhnTypes.h" + +/** + * @class SettingsBarringPwdForm + * @brief This class presents a settings form based UI for call settings barring password. + * + */ +class SettingsBarringPwdForm + : public Tizen::Ui::IActionEventListener + , public Tizen::Ui::ITextEventListener + , public Tizen::Ui::Controls::Form + , public Tizen::Ui::Scenes::ISceneEventListener + , public IPopupClosedEventListener + , public Tizen::Ui::Controls::IFormBackEventListener + , public Tizen::Ui::IPropagatedKeyEventListener + , public Tizen::Ui::IOrientationEventListener +{ +public: + SettingsBarringPwdForm(void); + virtual ~SettingsBarringPwdForm(void); + void Initialize(void); + +public: + virtual result OnInitializing(void); + virtual result OnTerminating(void); + //From IActionEventListener + virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId); + //From ISceneEventListener + virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs); + virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId); + //From ITextEventListener + virtual void OnTextValueChanged(const Tizen::Ui::Control& source); + virtual void OnTextValueChangeCanceled(const Tizen::Ui::Control& source); + + //Event Listener method from IPopupClosedEventListener + virtual void HandlePopupClosed(void); + + //From IFormBackEventListener - Called when the current Form reverts back to the previous Form. + virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source); + + //IPropagatedKeyEventListener + virtual bool OnKeyPressed(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){ return false; }; + virtual bool OnKeyReleased(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo); + virtual bool OnPreviewKeyPressed(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){ return false; } + virtual bool OnPreviewKeyReleased(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){ return false; } + virtual bool TranslateKeyEventInfo(Control& source, Tizen::Ui::KeyEventInfo& keyEventInfo) { return false; } + + virtual void OnOrientationChanged(const Tizen::Ui::Control& source, Tizen::Ui::OrientationStatus orientationStatus); + +private: + //Function is used to initialize header and footer items. + void InitializeHeaderAndFooter(void); + void ShowErrorMessage(int errorCode); + +private: + //call Barring condition to be set + CallBarringType __callBarringCondition; + //State of the condition to be set; + bool __conditionState; + //Ownership + ErrorMsgPopup* __pErrorMsgPopup; +}; + +#endif //_PHN_SETTINGS_BARRING_PWD_FORM_H_ diff --git a/inc/PhnSettingsCallAccessoryForm.h b/inc/PhnSettingsCallAccessoryForm.h new file mode 100644 index 0000000..d44a85b --- /dev/null +++ b/inc/PhnSettingsCallAccessoryForm.h @@ -0,0 +1,133 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnSettingsCallAccessoryForm.h + * @brief This is the header file for the %SettingsCallAccessoryForm class. + * + * This header file contains the declarations for %SettingsCallAccessoryForm class. + */ +#ifndef _PHN_SETTINGS_CALL_ACCESSORY_FORM_H_ +#define _PHN_SETTINGS_CALL_ACCESSORY_FORM_H_ + +#include +#include + +class SettingsPresentationModel; + +/** + * @class SettingsCallAccessoryForm + * @brief This class presents a settings form based UI for call settings - call status tones. + * + */ +class SettingsCallAccessoryForm + : public Tizen::Ui::IActionEventListener + , public Tizen::Ui::Controls::Form + , public Tizen::Ui::Controls::IFormBackEventListener + , public Tizen::Ui::Controls::IGroupedTableViewItemProvider + , public Tizen::Ui::Controls::IGroupedTableViewItemEventListener + , public Tizen::Ui::Scenes::ISceneEventListener + , public Tizen::Ui::IOrientationEventListener +{ +public: + SettingsCallAccessoryForm(void); + virtual ~SettingsCallAccessoryForm(void); + void Initialize(void); + +public: + virtual result OnInitializing(void); + virtual result OnTerminating(void); + virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId); + virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source); + virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs); + virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId); + + //From IGroupedTableViewItemEventListener - Called when the state of a TableViewGroupItem is changed. + virtual void OnGroupedTableViewGroupItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status){}; + //From IGroupedTableViewItemEventListener - Called when the state of a TableViewItem in the GroupedTableView is changed. + virtual void OnGroupedTableViewItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status); + //From IGroupedTableViewItemEventListener - Called when the TableViewContextItem is opened or closed. + virtual void OnGroupedTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated){}; + + //From IGroupedTableViewItemProvider - Gets the total number of groups. + virtual int GetGroupCount(void); + //From IGroupedTableViewItemProvider - Gets the total number of items in the specified group. + virtual int GetItemCount(int groupIndex); + //From IGroupedTableViewItemProvider - Gets the group item for the specified index from the item provider. + virtual Tizen::Ui::Controls::TableViewGroupItem* CreateGroupItem(int groupIndex, int itemWidth); + //From IGroupedTableViewItemProvider - Deletes the specified group item. + virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem); + //From IGroupedTableViewItemProvider - Updates the specified group item. + virtual void UpdateGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem); + //From IGroupedTableViewItemProvider - Creates the specified item. + virtual Tizen::Ui::Controls::TableViewItem* CreateItem(int groupIndex, int itemIndex, int itemWidth); + //From IGroupedTableViewItemProvider - Deletes the specified item. + virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem); + //From IGroupedTableViewItemProvider - Updates the specified item. + virtual void UpdateItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem); + //From IGroupedTableViewItemProvider - Gets the default height of an group item. + virtual int GetDefaultGroupItemHeight(void); + //From IGroupedTableViewItemProvider - Gets the default height of an item. + virtual int GetDefaultItemHeight(void); + //From IOrientationEventListener + virtual void OnOrientationChanged(const Tizen::Ui::Control& source, Tizen::Ui::OrientationStatus orientationStatus); + +private: + //create call Accessory menu + result InitializeGroupedTableView(void); + // This function is used to collapse selective groups while form initialization only. + void CollapseSelectiveGroups(Tizen::Ui::Controls::GroupedTableView* pCallAccessoryTableView); + // This function is used to create list items which come under "GROUP_OUTCALL_CONDITION". + Tizen::Ui::Controls::TableViewItem* CreateExpandableItem(int groupIndex, int itemIndex, int itemWidth); + // This function is used to create list items which come under "GROUP_CALLERID_OPTIONS" + Tizen::Ui::Controls::TableViewItem* CreateOutCallConditionOptionsItem(int itemIndex, int itemWidth); + //Used to fetch text for outgoing call menu options + Tizen::Base::String FetchSubTextForOutCallConditionOptions(void); + // Function is used to handle item selection for "GROUP_CALLERID_OPTIONS" + void HandleOutCallConditionOptionsSelected(Tizen::Ui::Controls::GroupedTableView& tableView, int itemIndex, Tizen::Ui::Controls::TableViewItemStatus state); + +private: + //Groups for menu + enum TonesMenuGroupId + { + GROUP_BT_SETTINGS_HEADING, + GROUP_OUTCALL_CONDITION, + GROUP_OUTCALL_CONDITION_OPTIONS, + GROUP_OUTCALL_CONDITION_HLPTXT, + GROUP_TOTALCOUNT, //always the last element to get group count + }; + + //Items for "GROUP_OUTCALL_CONDITION" group + enum OutCallConditionItems + { + OUTCALL_CONDITION_MENU, + OUTCALL_CONDITION_TOTALCOUNT, + }; + + //Items for 'GROUP_OUTCALL_CONDITION_OPTIONS' + enum GroupOutCallConditionOptionsItems + { + OUTCALL_CONDITION_MENUOPTION_LOCK_DEVICE, + OUTCALL_CONDITION_MENUOPTION_UNLOCK_DEVICE, + OUTCALL_CONDITION_MENUOPTION_TOTALCOUNT, //No of options in drop down menu + }; + + //Singleton. + SettingsPresentationModel* __pSettingsPresentor; + bool __isCallConditionOptionsExpanded; +}; + +#endif //_PHN_SETTINGS_CALL_ACCESSORY_FORM_H_ diff --git a/inc/PhnSettingsCallAnsweringForm.h b/inc/PhnSettingsCallAnsweringForm.h new file mode 100644 index 0000000..e612d3f --- /dev/null +++ b/inc/PhnSettingsCallAnsweringForm.h @@ -0,0 +1,120 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnSettingsCallAnsweringForm.h + * @brief This is the header file for the %SettingsCallAnsweringForm class. + * + * This header file contains the declarations for %SettingsCallAnsweringForm class. + */ +#ifndef _PHN_SETTINGS_CALL_ANSWERING_FORM_H_ +#define _PHN_SETTINGS_CALL_ANSWERING_FORM_H_ + +#include +#include + +class SettingsPresentationModel; + +/** + * @class SettingsCallAnsweringForm + * @brief This class presents a settings form based UI for call settings - call status tones. + * + */ +class SettingsCallAnsweringForm + : public Tizen::Ui::IActionEventListener + , public Tizen::Ui::Controls::Form + , public Tizen::Ui::Controls::IFormBackEventListener + , public Tizen::Ui::Controls::IGroupedTableViewItemProvider + , public Tizen::Ui::Controls::IGroupedTableViewItemEventListener + , public Tizen::Ui::Scenes::ISceneEventListener + , public Tizen::Ui::IOrientationEventListener +{ +public: + SettingsCallAnsweringForm(void); + virtual ~SettingsCallAnsweringForm(void); + void Initialize(void); + +public: + virtual result OnInitializing(void); + virtual result OnTerminating(void); + virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId); + virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source); + virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs); + virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId); + + //From IGroupedTableViewItemEventListener - Called when the state of a TableViewGroupItem is changed. + virtual void OnGroupedTableViewGroupItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status){}; + //From IGroupedTableViewItemEventListener - Called when the state of a TableViewItem in the GroupedTableView is changed. + virtual void OnGroupedTableViewItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status); + //From IGroupedTableViewItemEventListener - Called when the TableViewContextItem is opened or closed. + virtual void OnGroupedTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated){}; + + //From IGroupedTableViewItemProvider - Gets the total number of groups. + virtual int GetGroupCount(void); + //From IGroupedTableViewItemProvider - Gets the total number of items in the specified group. + virtual int GetItemCount(int groupIndex); + //From IGroupedTableViewItemProvider - Gets the group item for the specified index from the item provider. + virtual Tizen::Ui::Controls::TableViewGroupItem* CreateGroupItem(int groupIndex, int itemWidth); + //From IGroupedTableViewItemProvider - Deletes the specified group item. + virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem); + //From IGroupedTableViewItemProvider - Updates the specified group item. + virtual void UpdateGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem); + //From IGroupedTableViewItemProvider - Creates the specified item. + virtual Tizen::Ui::Controls::TableViewItem* CreateItem(int groupIndex, int itemIndex, int itemWidth); + //From IGroupedTableViewItemProvider - Deletes the specified item. + virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem); + //From IGroupedTableViewItemProvider - Updates the specified item. + virtual void UpdateItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem); + //From IGroupedTableViewItemProvider - Gets the default height of an group item. + virtual int GetDefaultGroupItemHeight(void); + //From IGroupedTableViewItemProvider - Gets the default height of an item. + virtual int GetDefaultItemHeight(void); + //From IOrientationEventListener + virtual void OnOrientationChanged(const Tizen::Ui::Control& source, Tizen::Ui::OrientationStatus orientationStatus); + +private: + //create call answering menu + result InitializeGroupedTableView(void); + +private: + //Groups for menu + enum TonesMenuGroupId + { + GROUP_ANSWER_CALL_KEY, + GROUP_ANSWER_CALL_KEY_HLPTXT, + GROUP_END_CALL_KEY, + GROUP_END_CALL_KEY_HLPTXT, + GROUP_TOTALCOUNT, //always the last element to get group count + }; + + //Items for "GROUP_ANSWER_CALL_KEY" group + enum AnswerCallItems + { + ANSWER_CALL_KEY_HOMEKEY, + ANSWER_CALL_TOTALCOUNT, + }; + + //Items for "GROUP_END_CALL_KEY" group + enum EndCallItems + { + END_CALL_KEY_POWERKEY, + END_CALL_KEY_TOTALCOUNT, + }; + //Singleton. + SettingsPresentationModel* __pSettingsPresentor; +}; + +#endif //_PHN_SETTINGS_CALL_ANSWERING_FORM_H_ diff --git a/inc/PhnSettingsCallForwardWaitBarrForm.h b/inc/PhnSettingsCallForwardWaitBarrForm.h new file mode 100644 index 0000000..403348f --- /dev/null +++ b/inc/PhnSettingsCallForwardWaitBarrForm.h @@ -0,0 +1,215 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnSettingsCallForwardWaitBarrForm.h + * @brief This is the header file for the %SettingsCallForwardWaitBarrForm class. + * + * This header file contains the declarations for %SettingsCallForwardWaitBarrForm class. + */ +#ifndef _PHN_SETTINGS_CALL_FORWARD_WAIT_BARR_FORM_H_ +#define _PHN_SETTINGS_CALL_FORWARD_WAIT_BARR_FORM_H_ + +#include +#include +#include "PhnErrorMsgPopup.h" +#include "PhnISettingsEventListener.h" + +class SettingsPresentationModel; + +/** + * @class SettingsCallForwardWaitBarrForm + * @brief This class presents a settings form based UI for call settings - Forwarding, waiting, barring call . + * + */ +class SettingsCallForwardWaitBarrForm + : public ISettingsEventListener + , public IPopupClosedEventListener + , public Tizen::Ui::IActionEventListener + , public Tizen::Ui::Controls::Form + , public Tizen::Ui::Controls::IFormBackEventListener + , public Tizen::Ui::Controls::IGroupedTableViewItemProvider + , public Tizen::Ui::Controls::IGroupedTableViewItemEventListener + , public Tizen::Ui::Scenes::ISceneEventListener + , public Tizen::Ui::IOrientationEventListener +{ +public: + enum FormType + { + FORMTYPE_CALLFORWARDING_TYPE, //decide voice/video type for forwarding + FORMTYPE_VOICE_CALLFORWARDING, //actual options for call forwarding + FORMTYPE_CALLBARRING_TYPE, //decide voice/video type for barring + FORMTYPE_VOICE_CALLBARRING, //actual options for call barring + FORMTYPE_CALL_WAITING, //call waiting options + }; + +public: + SettingsCallForwardWaitBarrForm(FormType formType); + virtual ~SettingsCallForwardWaitBarrForm(void); + void Initialize(void); + +public: + virtual result OnInitializing(void); + virtual result OnTerminating(void); + //From IActionEventListener + virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId); + //From IFormBackEventListener + virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source); + //From ISceneEventListener + virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs); + virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId); + + //From IGroupedTableViewItemEventListener - Called when the state of a TableViewGroupItem is changed. + virtual void OnGroupedTableViewGroupItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status){}; + //From IGroupedTableViewItemEventListener - Called when the state of a TableViewItem in the GroupedTableView is changed. + virtual void OnGroupedTableViewItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status); + //From IGroupedTableViewItemEventListener - Called when the TableViewContextItem is opened or closed. + virtual void OnGroupedTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated){}; + + //From IGroupedTableViewItemProvider - Gets the total number of groups. + virtual int GetGroupCount(void); + //From IGroupedTableViewItemProvider - Gets the total number of items in the specified group. + virtual int GetItemCount(int groupIndex); + //From IGroupedTableViewItemProvider - Gets the group item for the specified index from the item provider. + virtual Tizen::Ui::Controls::TableViewGroupItem* CreateGroupItem(int groupIndex, int itemWidth); + //From IGroupedTableViewItemProvider - Deletes the specified group item. + virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem); + //From IGroupedTableViewItemProvider - Updates the specified group item. + virtual void UpdateGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem); + //From IGroupedTableViewItemProvider - Creates the specified item. + virtual Tizen::Ui::Controls::TableViewItem* CreateItem(int groupIndex, int itemIndex, int itemWidth); + //From IGroupedTableViewItemProvider - Deletes the specified item. + virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem); + //From IGroupedTableViewItemProvider - Updates the specified item. + virtual void UpdateItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem); + //From IGroupedTableViewItemProvider - Gets the default height of an group item. + virtual int GetDefaultGroupItemHeight(void); + //From IGroupedTableViewItemProvider - Gets the default height of an item. + virtual int GetDefaultItemHeight(void); + + //From ISettingsEventListener + virtual void HandleGetCallWaitingResponse(bool isCallSuccessful, bool callWaitingActivated); + virtual void HandleSetCallWaitingResponse(bool isCallSuccessful, bool isCallWaitingEnabled); + virtual void HandleGetCallForwardResponse(bool isCallSuccessful, CallForwardCondition callFwdCondition, const Tizen::Base::String& callFwdNumber, bool callForwardActivated, int noReplyWaitTime); + virtual void HandleSetCallForwardResponse(bool isCallSuccessful, CallForwardCondition callFwdCondition, const Tizen::Base::String& callFwdNumber, bool isCallForwardActivated, int noReplyWaitTime); + virtual void HandleGetCallBarringResponse(int result, CallBarringType callBarringType, bool isBarringActivated); + virtual void HandleSetCallBarringResponse(int result, CallBarringType callBarringType, bool isBarringActivated); + + virtual void HandleFlightMode(bool isFlightModeActivated){}; + //Event Listener method from IPopupClosedEventListener + virtual void HandlePopupClosed(void); + //From IOrientationEventListener + virtual void OnOrientationChanged(const Tizen::Ui::Control& source, Tizen::Ui::OrientationStatus orientationStatus); + virtual void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs); + +private: + //Function is used to initialize group table menu + result InitializeGroupedTableView(void); + // Function is used to create list items which come under "CallTypeItemIds" + Tizen::Ui::Controls::TableViewItem* CreateSettingCallTypeMenuItem(int itemIndex, int itemWidth); + // Function is used to handle item selection which come under "CallTypeItemIds" + void HandleCallTypeSelected(int itemIndex); + // Function is used to create list items under "CallForwardItemIds" + Tizen::Ui::Controls::TableViewItem* CreateCallForwardingOptions(int itemIndex, int itemWidth); + // Function is used to handle item selection for "CallForwardItemIds" + void HandleCallForwardingOptionSelected(int itemIndex, Tizen::Ui::Controls::TableViewItemStatus status); + // Function is used to create list items only which come under "CallBarringItemIds" + Tizen::Ui::Controls::TableViewItem* CreateCallBarringOptions(int itemIndex, int itemWidth); + // Function is used to handle item selection for "CallBarringItemIds" + void HandleCallBarringOptionSelected(int itemIndex, Tizen::Ui::Controls::TableViewItemStatus status); + // This function is used to create list items which come under "CallBarringItemIds" + Tizen::Ui::Controls::TableViewItem* CreateCallWaitingOptions(int itemIndex, int itemWidth); + // Function is used to handle item selection for "CallWaitingItemIds" + void HandleCallWaitingOptionSelected(Tizen::Ui::Controls::TableViewItem* pItem, int itemIndex, Tizen::Ui::Controls::TableViewItemStatus status); + // Used to show error message popup + void ShowErrorMessage(int errorCode); + //used to un-check all items in group + void UncheckAllOptions(void); + //Used to fetch processing animation and construct animation list. + void ConstructAnimationList(void); + +private: + //Groups supported by group table view + enum CallGroupTypes + { + CALLTYPE_GROUP, + CALLWAITING_GROUP, + CALLBARRING_GROUP, + CALLFORWARDING_GROUP, + CALLGROUP_COUNT, + }; + //Setting ids for "CALLFORWARDING_GROUP" group + enum CallForwardItemIds + { + CALLFORWARD_ALWAYS, + CALLFORWARD_IF_BUSY, + CALLFORWARD_IF_NO_REPLY, + CALLFORWARD_IF_OUT_OF_REACH, + CALLFORWARD_TOTALITEMCOUNT, //always the last element to get settings count + }; + //Setting ids for "CALLBARRING_GROUP" group + enum CallBarringItemIds + { + CALLBARRING_ALL_OUTGOING_CALL, + CALLBARRING_INTERNATIONAL_CALL, + CALLBARRING_INTERNATIONAL_EXCEPT_HOME, + CALLBARRING_ALL_INCOMING_CALL, + CALLBARRING_INCOMING_WHILE_ROAMING, + CALLBARRING_TOTALCOUNT, //always the last element to get settings count + }; + //Setting ids for "CALLWAITING_GROUP" group + enum CallWaitingItemIds + { + CALLWAITING_ITEM, + CALLWAITING_TOTALCOUNT, //always the last element to get settings count + }; + + enum CallTypeItemIds + { + CALLTYPE_VOICE_CALL, +// CALLTYPE_VIDEO_CALL, + CALLTYPE_TOTALCOUNT, //always the last element to get group count + }; + + //used to record which view to open - Call Forwarding, Barring, Waiting. + FormType __formType; + SettingsPresentationModel* __pSettingsPresentor; + //Ownership + ErrorMsgPopup* __pErrorMsgPopup; + //used to check if 'CALLFORWARD_ALWAYS' is activated + bool __isCallForwardAlwaysActivated; + //For processing animation + Tizen::Base::Collection::ArrayList* __pAnimationFrameList; + //Used to check if call waiting status is available. + bool __isCallWaitingStatusAvailable; + //Used to check the call barring status + bool __isCallBarringAllOutStatusAvailable; + bool __isCallBarringIntlCallStatusAvailable; + bool __isCallBarringIntlCallExptHomeStatusAvailable; + bool __isCallBarringIntlCallAllIncomingStatusAvailable; + bool __isCallBarringIntlCallIncomingRoamStatusAvailable; + //Used to check call waiting is Enabled + bool __isCallWaitingEnabled; + //Constants to save CallBarring values + bool __allOutGoingCalls; + bool __internationalCalls; + bool __internationalExceptHome; + bool __allIncomingCalls; + bool __incomingWhileRoaming; + +}; + +#endif //_PHN_SETTINGS_CALL_FORWARD_WAIT_BARR_FORM_H_ diff --git a/inc/PhnSettingsCallStatusTonesForm.h b/inc/PhnSettingsCallStatusTonesForm.h new file mode 100644 index 0000000..fb27929 --- /dev/null +++ b/inc/PhnSettingsCallStatusTonesForm.h @@ -0,0 +1,130 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnSettingsCallStatusTonesForm.h + * @brief This is the header file for the %SettingsCallStatusTonesForm class. + * + * This header file contains the declarations for %SettingsCallStatusTonesForm class. + */ +#ifndef _PHN_SETTINGS_CALL_STATUS_TONES_FORM_H_ +#define _PHN_SETTINGS_CALL_STATUS_TONES_FORM_H_ + +#include +#include + +class SettingsPresentationModel; + +/** + * @class SettingsCallStatusTonesForm + * @brief This class presents a settings form based UI for call settings - call status tones. + * + */ +class SettingsCallStatusTonesForm + : public Tizen::Ui::IActionEventListener + , public Tizen::Ui::Controls::Form + , public Tizen::Ui::Controls::IFormBackEventListener + , public Tizen::Ui::Controls::IGroupedTableViewItemProvider + , public Tizen::Ui::Controls::IGroupedTableViewItemEventListener + , public Tizen::Ui::Scenes::ISceneEventListener + , public Tizen::Ui::IOrientationEventListener +{ +public: + SettingsCallStatusTonesForm(void); + virtual ~SettingsCallStatusTonesForm(void); + void Initialize(void); + +public: + virtual result OnInitializing(void); + virtual result OnTerminating(void); + virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId); + virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source); + virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs); + virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId); + + //From IGroupedTableViewItemEventListener - Called when the state of a TableViewGroupItem is changed. + virtual void OnGroupedTableViewGroupItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status){}; + //From IGroupedTableViewItemEventListener - Called when the state of a TableViewItem in the GroupedTableView is changed. + virtual void OnGroupedTableViewItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status); + //From IGroupedTableViewItemEventListener - Called when the TableViewContextItem is opened or closed. + virtual void OnGroupedTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated){}; + + //From IGroupedTableViewItemProvider - Gets the total number of groups. + virtual int GetGroupCount(void); + //From IGroupedTableViewItemProvider - Gets the total number of items in the specified group. + virtual int GetItemCount(int groupIndex); + //From IGroupedTableViewItemProvider - Gets the group item for the specified index from the item provider. + virtual Tizen::Ui::Controls::TableViewGroupItem* CreateGroupItem(int groupIndex, int itemWidth); + //From IGroupedTableViewItemProvider - Deletes the specified group item. + virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem); + //From IGroupedTableViewItemProvider - Updates the specified group item. + virtual void UpdateGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem); + //From IGroupedTableViewItemProvider - Creates the specified item. + virtual Tizen::Ui::Controls::TableViewItem* CreateItem(int groupIndex, int itemIndex, int itemWidth); + //From IGroupedTableViewItemProvider - Deletes the specified item. + virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem); + //From IGroupedTableViewItemProvider - Updates the specified item. + virtual void UpdateItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem); + //From IGroupedTableViewItemProvider - Gets the default height of an group item. + virtual int GetDefaultGroupItemHeight(void); + //From IGroupedTableViewItemProvider - Gets the default height of an item. + virtual int GetDefaultItemHeight(void); + //From IOrientationEventListener + virtual void OnOrientationChanged(const Tizen::Ui::Control& source, Tizen::Ui::OrientationStatus orientationStatus); + +private: + //create call reminders status menu + result InitializeGroupedTableView(void); + +private: + //Groups for menu + enum TonesMenuGroupId + { + GROUP_CALL_CONNECT, + GROUP_CALL_CONNECT_HLPTXT, + GROUP_CALL_REMINDER, + GROUP_CALL_REMINDER_HLPTXT, + GROUP_CALL_END, + GROUP_CALL_END_HLPTXT, + GROUP_TOTALCOUNT, //always the last element to get group count + }; + + //Items for "GROUP_CALL_CONNECT" group + enum CallConnectItems + { + CALLCONNECT_CONNECT_TONE, + CALLCONNECT_TOTALCOUNT, + }; + + //Items for "GROUP_CALL_REMINDER" group + enum CallReminderItems + { + CALLREMINDER_MINUTE_REMINDERS, + CALLREMINDER_TOTALCOUNT, + }; + + //Items for "GROUP_CALL_END" group + enum CallEndItems + { + CALLEND_END_TONE, + CALLEND_TOTALCOUNT, + }; + + //Singleton. + SettingsPresentationModel* __pSettingsPresentor; +}; + +#endif //_PHN_SETTINGS_CALL_STATUS_TONES_FORM_H_ diff --git a/inc/PhnSettingsDeleteListForm.h b/inc/PhnSettingsDeleteListForm.h new file mode 100644 index 0000000..1288602 --- /dev/null +++ b/inc/PhnSettingsDeleteListForm.h @@ -0,0 +1,122 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnSettingsDeleteListForm.h + * @brief This is the header file for the %SettingsDeleteListForm class. + * + * This header file contains the declarations for %SettingsDeleteListForm class. + */ +#ifndef _PHN_SETTINGS_DELETE_LIST_FORM_H_ +#define _PHN_SETTINGS_DELETE_LIST_FORM_H_ + +#include +#include +#include "PhnCallRejectInfo.h" + +class SettingsPresentationModel; + +/** + * @class SettingsDeleteListForm + * @brief This class presents a settings form based UI for call settings - delete numbers to reject, + * delete rejection messages. + * + */ +class SettingsDeleteListForm + : public Tizen::Ui::IActionEventListener + , public Tizen::Ui::Controls::Form + , public Tizen::Ui::Controls::IFormBackEventListener + , public Tizen::Ui::Controls::IListViewItemProvider + , public Tizen::Ui::Controls::IListViewItemEventListener + , public Tizen::Ui::Scenes::ISceneEventListener + , public Tizen::Ui::IPropagatedKeyEventListener +{ +public: + enum ListOfType + { + LISTOF_NUMBERS, + LISTOF_MESSAGES, + }; + +public: + SettingsDeleteListForm(ListOfType listOfType); + virtual ~SettingsDeleteListForm(void); + void Initialize(void); + +public: + virtual result OnInitializing(void); + virtual result OnTerminating(void); + virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId); + virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs); + virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId); + virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source); + //Initialize list view's main menu + result InitializeListView(void); + void ShowDeleteConfirmationPopup(int deleteCommandIdYes); + + void InitializeSelectLabel(); + + //From IListViewItemEventListener + virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus state); + virtual void OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status); + virtual void OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction); + virtual void OnListViewItemLongPressed(Tizen::Ui::Controls::ListView& listView, int index, int elementId, bool& invokeListViewItemCallback); + + //From IListViewItemProvider + virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int index, int itemWidth); + virtual bool DeleteItem(int index, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth); + virtual int GetItemCount(void); + + //IPropagatedKeyEventListener + virtual bool OnKeyReleased(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo); + virtual bool OnKeyPressed(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){ return false; } + virtual bool OnPreviewKeyPressed(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){ return false; } + virtual bool OnPreviewKeyReleased(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){ return false; } + virtual bool TranslateKeyEventInfo(Control& source, Tizen::Ui::KeyEventInfo& keyEventInfo) { return false; } + +private: + // Funtion is used to fetch list of rejected call numbers. + void FetchNumbersRejectList(void); + // Funtion is used to fetch list of "reject with messages". + void FetchRejectMsgsList(void); + // Funtion is used to initialise footer and footer items. + void InitializeFooter(void); + // Function is used to create "rejected number" items for list view. + Tizen::Ui::Controls::CustomItem* CreateListItemForNumbers(int index, int itemWidth); + // Function is used to create "reject with message" items for list view. + Tizen::Ui::Controls::CustomItem* CreateListItemForMsgs(int index, int itemWidth); + //used to select all items when selecting "Select All" + void SelectAllItems(bool isSelect); + //used to delete rejected numbers list + void DeleteRejectNumbersList(void); + //used to delete rejected messages list + void DeleteRejectMsgsList(void); + +private: + ListOfType __listOfType; + //list of rejected numbers + Tizen::Base::Collection::ArrayListT* __pNumbersList; + //list of reject msgs + Tizen::Base::Collection::IMapT* __pMsgsMap; + //not owned + SettingsPresentationModel* __pSettingsPresentor; + int __checkedItemCount; + //Selected pop up label + Tizen::Ui::Controls::Label* __pSelectedLabel; + Tizen::Ui::Controls::Popup* __pConfirmationDeletePopup; +}; + +#endif //_PHN_SETTINGS_DELETE_LIST_FORM_H_ diff --git a/inc/PhnSettingsEditRejectMsgForm.h b/inc/PhnSettingsEditRejectMsgForm.h new file mode 100644 index 0000000..8cb0015 --- /dev/null +++ b/inc/PhnSettingsEditRejectMsgForm.h @@ -0,0 +1,92 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnSettingsEditRejectMsgForm.h + * @brief This is the header file for the %SettingsEditRejectMsgForm class. + * + * This header file contains the declarations for %SettingsEditRejectMsgForm class. + */ +#ifndef _PHN_SETTINGS_EDIT_REJECT_MSG_FORM_H_ +#define _PHN_SETTINGS_EDIT_REJECT_MSG_FORM_H_ + +#include +#include + +class SettingsPresentationModel; + +/** + * @class SettingsEditRejectMsgForm + * @brief This class presents a settings form based UI for editing reject messages from call settings. + * + */ +class SettingsEditRejectMsgForm + : public Tizen::Ui::IActionEventListener + , public Tizen::Ui::IPropagatedKeyEventListener + , public Tizen::Ui::ITextEventListener + , public Tizen::Ui::Controls::Form + , public Tizen::Ui::Scenes::ISceneEventListener + , public Tizen::Ui::Controls::IFormBackEventListener + , public Tizen::Ui::IOrientationEventListener +{ +public: + enum FormMode + { + FORMMODE_NEW_MESSAGE, + FORMMODE_EDIT_MESSAGE, + }; + +public: + SettingsEditRejectMsgForm(FormMode formMode); + virtual ~SettingsEditRejectMsgForm(void); + bool Initialize(void); + +public: + virtual result OnInitializing(void); + virtual result OnTerminating(void); + virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId); + virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs); + virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId); + + //From ITextEventListener + virtual void OnTextValueChanged(const Tizen::Ui::Control& source); + virtual void OnTextValueChangeCanceled(const Tizen::Ui::Control& source); + + //From IFormBackEventListener - Called when the current Form reverts back to the previous Form. + virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source); + //IPropagatedKeyEventListener + virtual bool OnKeyPressed(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){ return false; }; + virtual bool OnKeyReleased(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo); + virtual bool OnPreviewKeyPressed(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){ return false; } + virtual bool OnPreviewKeyReleased(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){ return false; } + virtual bool TranslateKeyEventInfo(Control& source, Tizen::Ui::KeyEventInfo& keyEventInfo) { return false; } + + //From IOrientationEventListener + virtual void OnOrientationChanged(const Tizen::Ui::Control& source, Tizen::Ui::OrientationStatus orientationStatus); + +private: + //Function is used to initialize header and footer items. + void InitializeHeaderAndFooter(void); + +private: + int __itemIndex; + //used to store form mode. + FormMode __formMode; + SettingsPresentationModel* __pSettingsPresentor; + Tizen::Base::String __editRejectMsg; +}; + +#endif //_PHN_SETTINGS_EDIT_REJECT_MSG_FORM_H_ diff --git a/inc/PhnSettingsForwardToNumberForm.h b/inc/PhnSettingsForwardToNumberForm.h new file mode 100644 index 0000000..38e7322 --- /dev/null +++ b/inc/PhnSettingsForwardToNumberForm.h @@ -0,0 +1,180 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnSettingsForwardToNumberForm.h + * @brief This is the header file for the %SettingsForwardToNumberForm class. + * + * This header file contains the declarations for %SettingsForwardToNumberForm class. + */ +#ifndef _PHN_SETTINGS_FORWARD_TO_NUMBER_FORM_H_ +#define _PHN_SETTINGS_FORWARD_TO_NUMBER_FORM_H_ + +#include +#include +#include "PhnTypes.h" +#include "PhnErrorMsgPopup.h" + +class SettingsPresentationModel; + +/** + * @class SettingsForwardToNumberForm + * @brief This class presents a settings form based UI for saving forwarding call settings. + * + */ +class SettingsForwardToNumberForm + : public IPopupClosedEventListener + , public ISettingsEventListener + , public Tizen::Ui::IActionEventListener + , public Tizen::Ui::IKeypadEventListener + , public Tizen::Ui::ITextEventListener + , public Tizen::Ui::Controls::Form + , public Tizen::Ui::Controls::IGroupedTableViewItemProvider + , public Tizen::Ui::Controls::IGroupedTableViewItemEventListener + , public Tizen::Ui::Scenes::ISceneEventListener + , public Tizen::App::IAppControlResponseListener +{ +public: + enum ForwardCondition + { + FORWARDCONDITION, + FORWARDCONDITION_NOREPLY, + }; + +public: + SettingsForwardToNumberForm(ForwardCondition forwardCondition); + virtual ~SettingsForwardToNumberForm(void); + bool Initialize(void); + +public: + virtual result OnInitializing(void); + virtual result OnTerminating(void); + virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId); + virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs); + virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId); + + //From IGroupedTableViewItemEventListener - Called when the state of a TableViewGroupItem is changed. + virtual void OnGroupedTableViewGroupItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status){}; + //From IGroupedTableViewItemEventListener - Called when the state of a TableViewItem in the GroupedTableView is changed. + virtual void OnGroupedTableViewItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status); + //From IGroupedTableViewItemEventListener - Called when the TableViewContextItem is opened or closed. + virtual void OnGroupedTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated){}; + + //From IGroupedTableViewItemProvider - Gets the total number of groups. + virtual int GetGroupCount(void); + //From IGroupedTableViewItemProvider - Gets the total number of items in the specified group. + virtual int GetItemCount(int groupIndex); + //From IGroupedTableViewItemProvider - Gets the group item for the specified index from the item provider. + virtual Tizen::Ui::Controls::TableViewGroupItem* CreateGroupItem(int groupIndex, int itemWidth); + //From IGroupedTableViewItemProvider - Deletes the specified group item. + virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem); + //From IGroupedTableViewItemProvider - Updates the specified group item. + virtual void UpdateGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem); + //From IGroupedTableViewItemProvider - Creates the specified item. + virtual Tizen::Ui::Controls::TableViewItem* CreateItem(int groupIndex, int itemIndex, int itemWidth); + //From IGroupedTableViewItemProvider - Deletes the specified item. + virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem); + //From IGroupedTableViewItemProvider - Updates the specified item. + virtual void UpdateItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem); + //From IGroupedTableViewItemProvider - Gets the default height of an group item. + virtual int GetDefaultGroupItemHeight(void); + //From IGroupedTableViewItemProvider - Gets the default height of an item. + virtual int GetDefaultItemHeight(void); + + //From IKeypadEventListener + virtual void OnKeypadWillOpen(Tizen::Ui::Control& source); + virtual void OnKeypadOpened(Tizen::Ui::Control& source){}; + virtual void OnKeypadClosed(Tizen::Ui::Control& source); + virtual void OnKeypadActionPerformed(Tizen::Ui::Control& source, Tizen::Ui::KeypadAction keypadAction){}; + virtual void OnKeypadBoundsChanged(Tizen::Ui::Control& source){}; + + //From ISettingsEventListener + virtual void HandleGetCallWaitingResponse(bool isCallSuccessful, bool callWaitingActivated){}; + virtual void HandleSetCallWaitingResponse(bool isCallSuccessful, bool isCallWaitingEnabled){}; + virtual void HandleGetCallForwardResponse(bool isCallSuccessful, CallForwardCondition callFwdCondition, const Tizen::Base::String& callFwdNumber, bool callForwardActivated, int noReplyWaitTime); + virtual void HandleSetCallForwardResponse(bool isCallSuccessful, CallForwardCondition callFwdCondition, const Tizen::Base::String& callFwdNumber, bool isCallForwardActivated, int noReplyWaitTime){}; + virtual void HandleGetCallBarringResponse(int result, CallBarringType callBarringType, bool isBarringActivated){}; + virtual void HandleSetCallBarringResponse(int result, CallBarringType callBarringType, bool isBarringActivated){}; + virtual void HandleFlightMode(bool isFlightModeActivated){} + + //Event Listener method from IPopupClosedEventListener + virtual void HandlePopupClosed(void); + + //Launches contacts app control for pick operation + void LaunchContactsAppControl(void); + //From IAppControlResponseListener + virtual void OnAppControlCompleteResponseReceived(const Tizen::App::AppId& appId, const Tizen::Base::String& operationId, Tizen::App::AppCtrlResult appControlResult, const Tizen::Base::Collection::IMap* pExtraData); + // Called when a text is changed. + virtual void OnTextValueChanged(const Tizen::Ui::Control& source); + // Called when a change made to the text is canceled. + virtual void OnTextValueChangeCanceled(const Tizen::Ui::Control& source); + +private: + // This function is used to collapse selective groups while form initialization only. + void CollapseSelectiveGroups(Tizen::Ui::Controls::GroupedTableView* pMainMenuTableView); + // Function is used to initialise header and headerItems. + void InitializeHeader(void); + // Funtion is use dto initalise numeric edit field. + void InitializeNumberEditField(void); + // Function is used to initialise group table view and add item provider. + result InitializeGroupedTableView(void); + // Function is used to create list items which come under "GroupWaitTimeOptionsItems". + Tizen::Ui::Controls::TableViewItem* CreateWaitingTimeOptionsMenuItems(int itemIndex, int itemWidth); + // This function is used to create "SELECTWAITTIME_WAIT_TIME". + Tizen::Ui::Controls::TableViewItem* CreateExpandableWaitingItem(int itemWidth); + // This function is used to handle selection of 'GroupSelectWaitTimeItems'. + void ToggleGroupExpansion(Tizen::Ui::Controls::GroupedTableView& tableView, int itemIndex); + // This function is used to handle selection of waiting time. + void HandleSelectedWaitingTime(Tizen::Ui::Controls::GroupedTableView& tableView, int itemIndex, Tizen::Ui::Controls::TableViewItemStatus status); + Tizen::Base::String FetchTextForSelectedOption(int selectedWaitTimeOption); + void ShowErrorMessage(int errorCode); + +private: + //Main groups available in list view. + enum WaitingTimeGroupId + { + GROUP_SELECT_WAIT_TIME, + GROUP_WAIT_TIME_OPTIONS, + GROUP_TOTALCOUNT, + }; + //Items for 'GROUP_SELECT_WAIT_TIME' + enum GroupSelectWaitTimeItems + { + SELECTWAITTIME_WAIT_TIME, + SELECTWAITTIME_TOTALCOUNT, //No of options in "GROUP_ENTER_WAIT" drop down menu + }; + //Items for 'GROUP_WAIT_TIME_OPTIONS' + enum GroupWaitTimeOptionsItems + { + WAITTIMEOPTIONS_FIVE_SEC = 5, + WAITTIMEOPTIONS_TEN_SEC = 10, + WAITTIMEOPTIONS_FIFTEEN_SEC = 15, + WAITTIMEOPTIONS_TWENTY_SEC = 20, + WAITTIMEOPTIONS_TWENTYFIVE_SEC = 25, + WAITTIMEOPTIONS_THIRTY_SEC = 30, + }; + + ForwardCondition __forwardCondition; + //call forward condition to be set + CallForwardCondition __callForwardCondition; + SettingsPresentationModel* __pSettingsPresentor; + GroupWaitTimeOptionsItems __selectedWaitTime; + bool __isWaitTimeOptionsMenuExpanded; + //Ownership + ErrorMsgPopup* __pErrorMsgPopup; +}; + +#endif //_PHN_SETTINGS_FORWARD_TO_NUMBER_FORM_H_ diff --git a/inc/PhnSettingsMainMenuForm.h b/inc/PhnSettingsMainMenuForm.h new file mode 100644 index 0000000..3ad8012 --- /dev/null +++ b/inc/PhnSettingsMainMenuForm.h @@ -0,0 +1,149 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnSettingsMainMenuForm.h + * @brief This is the header file for the %SettingsMainMenuForm class. + * + * This header file contains the declarations for %SettingsMainMenuForm class. + */ +#ifndef _PHN_SETTINGS_MAIN_MENU_FORM_H_ +#define _PHN_SETTINGS_MAIN_MENU_FORM_H_ + +#include +#include + +/** + * @class SettingsMainMenuForm + * @brief This class presents a main menu form based UI for call settings. + * + */ +class SettingsMainMenuForm + : public Tizen::Ui::IActionEventListener + , public Tizen::Ui::Controls::Form + , public Tizen::Ui::Controls::IFormBackEventListener + , public Tizen::Ui::Controls::IGroupedTableViewItemProvider + , public Tizen::Ui::Controls::IGroupedTableViewItemEventListener + , public Tizen::Ui::Scenes::ISceneEventListener + , public Tizen::Ui::IOrientationEventListener +{ +public: + SettingsMainMenuForm(void); + virtual ~SettingsMainMenuForm(void); + bool Initialize(void); + +public: + virtual result OnInitializing(void); + virtual result OnTerminating(void); + virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId); + virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source); + virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs); + virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId); + + //From IGroupedTableViewItemEventListener - Called when the state of a TableViewGroupItem is changed. + virtual void OnGroupedTableViewGroupItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status){}; + //From IGroupedTableViewItemEventListener - Called when the state of a TableViewItem in the GroupedTableView is changed. + virtual void OnGroupedTableViewItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status); + //From IGroupedTableViewItemEventListener - Called when the TableViewContextItem is opened or closed. + virtual void OnGroupedTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated){}; + + //From IGroupedTableViewItemProvider - Gets the total number of groups. + virtual int GetGroupCount(void); + //From IGroupedTableViewItemProvider - Gets the total number of items in the specified group. + virtual int GetItemCount(int groupIndex); + //From IGroupedTableViewItemProvider - Gets the group item for the specified index from the item provider. + virtual Tizen::Ui::Controls::TableViewGroupItem* CreateGroupItem(int groupIndex, int itemWidth); + //From IGroupedTableViewItemProvider - Deletes the specified group item. + virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem); + //From IGroupedTableViewItemProvider - Updates the specified group item. + virtual void UpdateGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem); + //From IGroupedTableViewItemProvider - Creates the specified item. + virtual Tizen::Ui::Controls::TableViewItem* CreateItem(int groupIndex, int itemIndex, int itemWidth); + //From IGroupedTableViewItemProvider - Deletes the specified item. + virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem); + //From IGroupedTableViewItemProvider - Updates the specified item. + virtual void UpdateItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem); + //From IGroupedTableViewItemProvider - Gets the default height of an group item. + virtual int GetDefaultGroupItemHeight(void); + //From IGroupedTableViewItemProvider - Gets the default height of an item. + virtual int GetDefaultItemHeight(void); + + //From IOrientationEventListener + virtual void OnOrientationChanged(const Tizen::Ui::Control& source, Tizen::Ui::OrientationStatus orientationStatus); + //update the table view bounds and table items based on current orientation + void UpdateTableViewBounds(Tizen::Ui::OrientationStatus orientationStatus); + +private: + //Function is used to initialize group table view. + result InitializeGroupedTableView(void); + +private: + //Groups for main menu + enum MainMenuGroupId + { + GROUP_CALL_REJECTION, + GROUP_CALL_REJECTION_HLPTXT, + GROUP_REJECT_MSG, + GROUP_REJECT_MSG_HLPTXT, + //GROUP_CALL_ANSWERING, + //GROUP_CALL_ANSWERING_HLPTXT, + GROUP_CALL_ACCESSORY, + GROUP_CALL_ACCESSORY_HLPTXT, + GROUP_MAIN_CALL_SETTINGS, +// GROUP_VIDEOCALL_SETTING, +// GROUP_VOICEMAIL_SETTING, + GROUP_TOTALCOUNT, //always the last element to get group count + }; + + //Items for 'GROUP_CALL_REJECTION' + enum GroupCallRejectionItems + { + CALLREJECTION_CALLREJECT_SETTINGS, + CALLREJECTION_TOTALCOUNT, + }; + + //Items for 'GROUP_REJECT_MSG' + enum GroupRejectMsgItems + { + REJECTMSG_REJECT_MESSAGES_SETTINGS, + REJECTMSG_TOTALCOUNT, + }; + + //Items for 'GROUP_CALL_ANSWERING' + enum GroupCallAnsweringItems + { + CALL_ANSWERING_KEY_SETTINGS, + CALL_ANSWERING_TOTALCOUNT, + }; + + //Items for 'GROUP_CALL_ACCESSORY' + enum GroupCallAccessoryItems + { + CALL_ACCESSORY_SETTINGS, + CALL_ACCESSORY_TOTALCOUNT, + }; + + //Setting id's for "GROUP_MAIN_CALL_SETTINGS" group + enum GroupMainCallSettingsItems + { + //MAINCALLSETTINGS_SPEEDDIAL, + MAINCALLSETTINGS_CALLFORWARDING, + MAINCALLSETTINGS_MORECALLSETTINGS, + MAINCALLSETTINGS_TOTALCOUNT, //always the last element to get settings count + }; +}; + +#endif //_PHN_SETTINGS_MAIN_MENU_FORM_H_ diff --git a/inc/PhnSettingsManager.h b/inc/PhnSettingsManager.h new file mode 100644 index 0000000..e2dfd44 --- /dev/null +++ b/inc/PhnSettingsManager.h @@ -0,0 +1,238 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnSettingsManager.h + * @brief This is the header file for the %SettingsManager class. + * + * This header file contains the declarations for %SettingsManager class. + */ +#ifndef _PHN_SETTINGS_MANAGER_H_ +#define _PHN_SETTINGS_MANAGER_H_ + +#include +#include +#include +#include +#include +#include +#include "ITapiCall.h" +#include "ITapiSs.h" +#include "tapi_common.h" +#include "TapiUtility.h" +#include "TelCall.h" +#include "TelSs.h" +#include "vconf.h" +#include "PhnCallRejectInfo.h" +#include "PhnISettingsEventListener.h" +#include "PhnTypes.h" +#include "PhnCallSettingDataService.h" + +/** + * @class SettingsManager + * @brief This class provides functionality to set and fetch settings related to voice call, e.g. Call barring, + * call forwarding, etc. + */ +class SettingsManager +: public Tizen::System::ISettingEventListener +{ +public: + //create a singleton instance + static SettingsManager* GetInstance(void); + +private: + //constructor + SettingsManager(void); + SettingsManager(SettingsManager& manager); + SettingsManager& operator =(const SettingsManager& manager); + + result Construct(void); + static void CreateInstance(void); + static void DestroyInstance(void); + +public: + // Add the observer for setting events + void AddSettingEventListener(ISettingsEventListener* pSettingsEventListener); + //remove the observer for setting events + void RemoveSettingEventListener(ISettingsEventListener* pSettingsEventListener); + // Set the call Forwarding status + int SetCallForwardStatus(const Tizen::Base::String& phoneNumber, CallForwardCondition callFwdCondition, bool activateFwding, int noReplyTime = TAPI_SS_CF_NO_REPLY_TIME_30_SECS); + // Get the call Forwarding status + int GetCallForwardStatus(CallForwardCondition callFwdCondition); + // callback function to handle response for set call forward request + static void HandleSetForwardResponse(TapiHandle* pHandle, int result, void* pData, void* pUserData); + // callback function to handle response for get call forward request + static void HandleGetForwardResponse(TapiHandle* pHandle, int result, void* pData, void* pUserData); + // Set the call barring status + int SetCallBarringStatus(const Tizen::Base::String& password, CallBarringType callBarringType, bool activateBarring); + // callback function to handle response for set call barring request + static void HandleSetBarringResponse(TapiHandle* pHandle, int result, void* pData, void* pUserData); + // Get the call barring status + int GetCallBarringStatus(CallBarringType callBarringType); + // callback function to handle response for set call barring request + static void HandleGetBarringResponse(TapiHandle* pHandle, int result, void* pData, void* pUserData); + // Set the call waiting status + int SetCallWaitingStatus(bool activateWaiting); + // callback function to handle response for set call waiting request + static void HandleSetWaitingResponse(TapiHandle* pHandle, int result, void* pData, void* pUserData); + // Get the call waiting status + int GetCallWaitingStatus(void); + // callback function to handle response for set call waiting request + static void HandleGetWaitingResponse(TapiHandle* pHandle, int result, void* pData, void* pUserData); + // Get the reject message list + Tizen::Base::Collection::IMapT* GetRejectMessageListN(void); + //Set the reject message count to 6 + void SetRejectMessageListCount(void); + // Add/edit the message list at the given index + result SetRejectMessage(int messageIndex, const Tizen::Base::String& rejectMessage); + // delete the message from the list + result RemoveRejectMessage(const Tizen::Base::Collection::IListT& deleteKeyList); + // get the prefix dialing list + Tizen::Base::Collection::IList* GetPrefixDialListN(void); + // Set the number to the prefix dial list + result SetPrefixDialNumber(int phoneNumberIndex, const Tizen::Base::String& phoneNumber); + // Get the number set at 'phoneNumberIndex'. + result GetPrefixDialNumberAtIndex(int phoneNumberIndex, Tizen::Base::String& phoneNumber); + // Set the prefix dial status + result SetPrefixDialingStatus(bool enablePrefixDialing); + // Set the active prefix dial to be used + result SetActivePrefixDialingValue(int prefixDialIndex); + // Get the active prefix dial to be used + result GetActivePrefixDialingValue(int& prefixDialIndex); + // Get the prefix dialing status + bool GetPrefixDialingStatus(void); + // Set the video call image path + result SetVideoCallImagePath(const Tizen::Base::String& imagePath); + // Get the video call image path + result GetVideoCallImagePath(Tizen::Base::String& imagePath); + // Set the call line identity + result SetCallLineIdentity(CallLineIdentity identity); + // Get the call line identity + result GetCallLineIdentity(CallLineIdentity& identity); + // Add the number to the call reject list + result AddToCallRejectList(const Tizen::Base::String& phoneNumber, CallRejectMatchCondition rejectCondition, bool isActivated = false); + // Add the number to the message reject list + result AddToMessageRejectList(const Tizen::Base::String& phoneNumber, _MSG_FILTER_TYPE_E matchType); + bool GetMsgFilterListIndex(const Tizen::Base::String& phoneNumber); + Tizen::Base::String* GetFilterText(int index, int type); + //Open message handle session + result OpenMsgHandleSession(); + //Closes message handle session + void CloseMsgHandleSession(); + // Get the call reject list + Tizen::Base::Collection::IListT* GetCallRejectList(void); + // Update the call reject number already present + result UpdateCallRejectRow(int rowId, const Tizen::Base::String& phoneNumber, bool activate, CallRejectMatchCondition rejectCondition); + // Remove the call reject item + result RemoveCallRejectRow(int rowId); + // Set the reject "unknown" status + result SetUnknownRejectStatus(bool activate); + // Get the reject "unknown" status + bool GetUnknownRejectStatus(void); + // checks if the call is to be rejected + bool IsCallToBeRejected(Tizen::Base::String& phoneNumber); + // Set the call alert status + result SetCallAlertStatus(CallAlertStatus callAlertStatus); + // Get the call alert status + result GetCallAlertStatus(CallAlertStatus& callAlertStatus); + // Set the call connect tone status + result SetCallConnectToneStatus(bool activate); + // Get the call connect tone status + bool GetCallConnectToneStatus(void); + // Set the minute minder tone status + result SetMinuteMinderToneStatus(bool activate); + // Get the minute minder tone status + bool GetMinuteMinderToneStatus(void); + // Set the call End tone status + result SetCallEndToneStatus(bool activate); + // Get the call End tone status + bool GetCallEndToneStatus(void); + //Set the speed dial mapping + result SetSpeedDialMapping(const Tizen::Base::String& contactId, int numberToMap); + // Get the speed dial mapping list + Tizen::Base::Collection::IMapT* GetSpeedDialMappingN(void); + //Remove the speed dial mapping + result RemoveSpeedDialMapping(int rowId); + //Change the speed dial mapped + result UpdateSpeedDialMapping(int rowId, const Tizen::Base::String& contactId, int numberToMap); + //fetch the mapped speed dial contact no. + Tizen::Base::String* GetMappedSpeedDialNumberN(int aIndex); + //Fetch Contacts details by contact id + Tizen::Social::Contact* FetchContactDetailsN(const Tizen::Base::String& contactId); + //Sets the Call State + result SetCallState(CallState callState); + //Get the Call State + result GetCallState(CallState& callState); + // Activate or Deactivate Home Key to accept the incoming calls. + result EnableCallAnsweringKey(bool activate); + // Check if incoming call is accepted by Home Key. + bool IsCallAnsweringKeyEnabled(void); + // Activate or Deactivate Power Key to end the calls. + result EnableCallEndingKey(bool activate); + // Check if call is ended by Power Key. + bool IsCallEndingKeyEnabled(void); + // Activate or De-activate outgoing calls when device is locked. + // activate = true, to enable making calls when device is locked. + result EnableOutgoingCallWhenLocked(bool activate); + // Check if making call is possible when device is locked. + bool IsOutgoingCallEnabledWhenLocked(void); + + void AddSystemEventListener(void); + + void RemoveSystemEventListener(void); + + virtual void OnSettingChanged(Tizen::Base::String& key); + + bool GetFlightModeStatus(void); + +private: + + enum ForwardResponseType + { + SET_CALLFORWARD_RESPONSE, + GET_CALLFORWARD_RESPONSE, + }; + enum BarringResponseType + { + SET_CALLBARRING_RESPONSE, + GET_CALLBARRING_RESPONSE, + }; + enum WaitingResponseType + { + SET_CALLWAITING_RESPONSE, + GET_CALLWAITING_RESPONSE, + }; +private: + virtual ~SettingsManager(void); + //notify event listeners for Setting or Getting Call Forwarding status events. + void NotifyForwardingEventListeners(ForwardResponseType responseType, bool isCallSuccessful, CallForwardCondition callFwdCondition, const Tizen::Base::String& callFwdNumber, bool isCallForwardActivated, int noReplyWaitTime); + //notify event listeners for Setting or Getting Call Barring status events. + void NotifyBarringEventListeners(BarringResponseType responseType, int result, CallBarringType callBarringType, bool isBarringActivated); + //notify event listeners for Setting or Getting Call Waiting status events. + void NotifyWaitingEventListeners(WaitingResponseType responseType, bool isCallSuccessful, bool isCallWaitingActivated); + +private: + static SettingsManager* __pInstance; + //handle to Telephony API + TapiHandle* __pTapiHandle; + Tizen::Base::Collection::ArrayListT* __pSettingsEventListener; + CallSettingDataService* __pCallSettingDataService; + msg_handle_t __pMsgHandle; + msg_struct_list_s* __pFilterList; //! List of filter + Tizen::Base::Collection::ArrayListT* __pNumberFilterIndex; +}; + +#endif // _PHN_SETTINGS_MANAGER_H_ diff --git a/inc/PhnSettingsMoreOptionsForm.h b/inc/PhnSettingsMoreOptionsForm.h new file mode 100644 index 0000000..18f0604 --- /dev/null +++ b/inc/PhnSettingsMoreOptionsForm.h @@ -0,0 +1,184 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnSettingsMoreOptionsForm.h + * @brief This is the header file for the %SettingsMoreOptionsForm class. + * + * This header file contains the declarations for %SettingsMoreOptionsForm class. + */ +#ifndef _PHN_SETTINGS_MORE_OPTIONS_FORM_H_ +#define _PHN_SETTINGS_MORE_OPTIONS_FORM_H_ + +#include +#include + +class SettingsPresentationModel; + +/** + * @class SettingsMoreOptionsForm + * @brief This class presents a additional settings form for call settings. + * + */ +class SettingsMoreOptionsForm + : public Tizen::Ui::IActionEventListener + , public Tizen::Ui::Controls::Form + , public Tizen::Ui::Controls::IFormBackEventListener + , public Tizen::Ui::Controls::IGroupedTableViewItemProvider + , public Tizen::Ui::Controls::IGroupedTableViewItemEventListener + , public Tizen::Ui::Scenes::ISceneEventListener + , public Tizen::Ui::IOrientationEventListener +{ +public: + SettingsMoreOptionsForm(void); + virtual ~SettingsMoreOptionsForm(void); + bool Initialize(void); + +public: + virtual result OnInitializing(void); + virtual result OnTerminating(void); + virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId); + virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source); + virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs); + virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId); + + // Function is used to initialise group table view. + result InitializeGroupedTableView(void); + + //From IGroupedTableViewItemEventListener - Called when the state of a TableViewGroupItem is changed. + virtual void OnGroupedTableViewGroupItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status){}; + //From IGroupedTableViewItemEventListener - Called when the state of a TableViewItem in the GroupedTableView is changed. + virtual void OnGroupedTableViewItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status); + //From IGroupedTableViewItemEventListener - Called when the TableViewContextItem is opened or closed. + virtual void OnGroupedTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated){}; + + //From IGroupedTableViewItemProvider - Gets the total number of groups. + virtual int GetGroupCount(void); + //From IGroupedTableViewItemProvider - Gets the total number of items in the specified group. + virtual int GetItemCount(int groupIndex); + //From IGroupedTableViewItemProvider - Gets the group item for the specified index from the item provider. + virtual Tizen::Ui::Controls::TableViewGroupItem* CreateGroupItem(int groupIndex, int itemWidth); + //From IGroupedTableViewItemProvider - Deletes the specified group item. + virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem); + //From IGroupedTableViewItemProvider - Updates the specified group item. + virtual void UpdateGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem); + //From IGroupedTableViewItemProvider - Creates the specified item. + virtual Tizen::Ui::Controls::TableViewItem* CreateItem(int groupIndex, int itemIndex, int itemWidth); + //From IGroupedTableViewItemProvider - Deletes the specified item. + virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem); + //From IGroupedTableViewItemProvider - Updates the specified item. + virtual void UpdateItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem); + //From IGroupedTableViewItemProvider - Gets the default height of an group item. + virtual int GetDefaultGroupItemHeight(void); + //From IGroupedTableViewItemProvider - Gets the default height of an item. + virtual int GetDefaultItemHeight(void); + + //From IOrientationEventListener + virtual void OnOrientationChanged(const Tizen::Ui::Control& source, Tizen::Ui::OrientationStatus orientationStatus); + +private: + // This function is used to create list items which come under "GROUP_CALLERID" & "GROUP_CALL_ALERT". + Tizen::Ui::Controls::TableViewItem* CreateExpandableItem(int groupIndex, int itemIndex, int itemWidth); + // This function is used to create list items which come under "GROUP_CALLERID_OPTIONS" + Tizen::Ui::Controls::TableViewItem* CreateCallerIdOptionsItem(int itemIndex, int itemWidth); + // This function is used to create list items which come under "GROUP_CALL_ALERT_OPTIONS" + Tizen::Ui::Controls::TableViewItem* CreateCallerAlertOptionsItem(int itemIndex, int itemWidth); + // This function is used to create list menu items + Tizen::Ui::Controls::TableViewItem* CreateSettingMenuItem(int groupIndex, int itemIndex, int itemWidth); + // Function is used to handle item selection for individual items. + void HandleSelectedSettings(int groupIndex, int itemIndex); + // Function is used to handle item selection for "GROUP_CALLERID_OPTIONS" + void HandleSelectedCallerIdOptions(Tizen::Ui::Controls::GroupedTableView& tableView, int itemIndex, Tizen::Ui::Controls::TableViewItemStatus state); + // Function is used to handle item selection for "GROUP_CALL_ALERT_OPTIONS" + void HandleSelectedCallAlertOptions(Tizen::Ui::Controls::GroupedTableView& tableView, int itemIndex, Tizen::Ui::Controls::TableViewItemStatus state); + //Function to fetch text for caller id options + Tizen::Base::String FetchSubTextForSelectedCallerId(); + //Function to fetch text for caller alert options + Tizen::Base::String FetchSubTextForSelectedCallerAlert(); + //update the table view bounds and table items based on current orientation + void UpdateTableViewBounds(Tizen::Ui::OrientationStatus orientationStatus); + +private: + //Groups + enum MoreMenuGroupId + { + GROUP_CALLERID, + GROUP_CALLERID_OPTIONS, + GROUP_CALL_SETTINGS, + GROUP_CALL_SETTINGS_HLPTXT, + GROUP_CALL_REMINDER, + GROUP_CALL_REMINDER_HLPTXT, + //GROUP_CALL_ALERT, + //GROUP_CALL_ALERT_OPTIONS, + GROUP_AREACODE, + GROUP_AREACODE_HLPTXT, + GROUP_TOTALCOUNT, //always the last element to get group count + }; + //Items for 'GROUP_CALLERID' + enum GroupCallerIdItems + { + CALLERID_CALLER_SETTING, + CALLERID_TOTALCOUNT, + }; + //Items for 'GROUP_CALLERID_OPTIONS' + enum GroupCallerIdOptionsItems + { + CALLEROPTIONS_BY_NETWORK, + CALLEROPTIONS_SHOW, + CALLEROPTIONS_HIDE, + CALLEROPTIONS_TOTALCOUNT, //No of options in "caller id" drop down menu + }; + //Items for "GROUP_CALL_SETTINGS" group + enum CallSettingsItems + { + CALLSETTINGS_CALL_BARRING, + CALLSETTINGS_CALL_WAITING, + CALLSETTINGS_TOTALCOUNT, + }; + //Items for "GROUP_CALL_REMINDER" group + enum CallReminderItems + { + CALLREMINDER_STATUS_TONES, + CALLREMINDER_TOTALCOUNT, + }; + //Item for "GROUP_CALL_ALERT" + enum GroupCallAlertItems + { + CALLALERT_SETTING, + CALLALERT_TOTALCOUNT, + }; + //Option Items for "GROUP_CALL_ALERT_OPTIONS" + enum GroupCallAlertOptionsItems + { + CALLALERT_OPTIONS_OFF, + CALLALERT_OPTIONS_SOUND, + CALLALERT_OPTIONS_VIBRATION, + CALLALERT_OPTIONS_TOTALCOUNT, + }; + //Item for "GROUP_AREACODE" group + enum GroupAreaCodeItems + { + AREACODE_AUTO_AREA_CODE, + AREACODE_TOTALCOUNT, + }; + + SettingsPresentationModel* __pSettingsPresentor; + bool __isCallerIdExpanded; + bool __isCallAlertExpanded; + Tizen::Base::String __autoAreaCode; +}; + +#endif //_PHN_SETTINGS_MORE_OPTIONS_FORM_H_ diff --git a/inc/PhnSettingsPresentationModel.h b/inc/PhnSettingsPresentationModel.h new file mode 100644 index 0000000..881bdac --- /dev/null +++ b/inc/PhnSettingsPresentationModel.h @@ -0,0 +1,175 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnSettingsPresentationModel.h + * @brief This is the header file for the %SettingsPresentationModel class. + * + * This header file contains the declarations for %SettingsPresentationModel class. + */ +#ifndef _PHN_SETTINGS_PRESENTATION_MODEL_H_ +#define _PHN_SETTINGS_PRESENTATION_MODEL_H_ + +#include +#include +#include "PhnISettingsEventListener.h" + +class SettingsManager; +class CallRejectInfo; +class SpeedDialInfo; + +/** + * @class SettingsPresentationModel + * @brief This class provides data to settings forms and provides functions + * to interact with Settings manager. + * + */ +class SettingsPresentationModel: public ISettingsEventListener +{ +public: + //create a singleton instance + static SettingsPresentationModel* GetInstance(void); + +private: + SettingsPresentationModel(void); + SettingsPresentationModel(SettingsPresentationModel& presentor); + virtual ~SettingsPresentationModel(void); + SettingsPresentationModel& operator =(const SettingsPresentationModel& presentor); + + //perform 2nd phase initialization + result Construct(void); + static void CreateInstance(void); + static void DestroyInstance(void); + +public: + // Add the observer for setting events + result AddSettingEventListener(ISettingsEventListener* pSettingsEventListener); + //remove the observer for setting events + void RemoveSettingEventListener(void); + + // Get the reject message list + Tizen::Base::Collection::IMapT* GetRejectMessageListN(void); + //Set the reject message list count + void SetRejectMessageListCount(void); + // Add the number to the call reject list + result AddToCallRejectList(const Tizen::Base::String& phoneNumber, CallRejectMatchCondition rejectCondition, bool isActivated = false); + // Add the number to the message reject list + result AddToMessageRejectList(const Tizen::Base::String& phoneNumber, _MSG_FILTER_TYPE_E matchType); + bool GetMsgFilterListIndex(const Tizen::Base::String& phoneNumber); + // Get the call reject list + Tizen::Base::Collection::IListT* GetCallRejectList(void); + // Set the number to the prefix dial list + result SetPrefixDialNumber(int phoneNumberIndex, const Tizen::Base::String& phoneNumber); + // Set the active prefix dial to be used + result SetActivePrefixDialingValue(int prefixDialIndex); + // Set the prefix dial status + result SetPrefixDialingStatus(bool enablePrefixDialing); + // Get the active prefix dial number to be used + result GetActivePrefixDialNumber(Tizen::Base::String& phoneNumber); + // Set the call barring status + int SetCallBarringStatus(const Tizen::Base::String& password, CallBarringType callBarringType, bool activateBarring); + // Get the call Forwarding status + int GetCallForwardStatus(CallForwardCondition callFwdCondition); + // Set the call Forwarding status + int SetCallForwardStatus(const Tizen::Base::String& phoneNumber, CallForwardCondition callFwdCondition, bool activateFwding, int noReplyTime); + // Get the call barring status + int GetCallBarringStatus(CallBarringType callBarringType); + // Set the call waiitng status + int SetCallWaitingStatus(bool activateWaiting); + // Get the call waiting status + int GetCallWaitingStatus(void); + // Set the call connect tone status + result SetCallConnectToneStatus(bool activate); + // Get the call connect tone status + bool GetCallConnectToneStatus(void); + // Set the minute minder tone status + result SetMinuteMinderToneStatus(bool activate); + // Get the minute minder tone status + bool GetMinuteMinderToneStatus(void); + // Set the call End tone status + result SetCallEndToneStatus(bool activate); + // Get the call End tone status + bool GetCallEndToneStatus(void); + // Update the call reject number already present + result UpdateCallRejectRow(int rowId, const Tizen::Base::String& phoneNumber, bool activate, CallRejectMatchCondition rejectCondition); + // Remove the call reject item + result RemoveCallRejectRow(int rowId); + // Add/edit the message list at the given index + result SetRejectMessage(int messageIndex, const Tizen::Base::String& rejectMessage); + // delete the message from the list + result RemoveRejectMessage(const Tizen::Base::Collection::IListT& deleteKeyList); + // checks if the call is to be rejected + bool IsCallToBeRejected(Tizen::Base::String& phoneNumber); + //Set the speed dial mapping + result SetSpeedDialMapping(const Tizen::Base::String& contactId, int numberToMap); + // Get the speed dial mapping list + Tizen::Base::Collection::IMapT* GetSpeedDialMappingN(void); + //remove speed dial mapping for given 'rowId'. + result RemoveSpeedDialMapping(int rowId); + //update speed dial mapping for given 'rowId'. + result UpdateSpeedDialMapping(int rowId, const Tizen::Base::String& contactId, int numberToMap); + // Set the call line identity + result SetCallLineIdentity(CallLineIdentity identity); + // Get the call line identity + result GetCallLineIdentity(CallLineIdentity& identity); + // Set the call alert status + result SetCallAlertStatus(CallAlertStatus callAlertStatus); + // Get the call alert status + result GetCallAlertStatus(CallAlertStatus& callAlertStatus); + // Set the reject "unknown" status + result SetUnknownRejectStatus(bool activate); + // Get the reject "unknown" status + bool GetUnknownRejectStatus(void); + //Fetch Contacts details by contact id + Tizen::Social::Contact* FetchContactDetailsN(const Tizen::Base::String& contactId); + //Sets the call state + result SetCallState(CallState callState); + //Get the call state + result GetCallState(CallState& callState); + //Get Flight mode status + bool GetFlightModeStatus(void); + // Activate or Deactivate Home Key to accept the incoming calls. + result EnableCallAnsweringKey(bool activate); + // Check if incoming call is accepted by Home Key. + bool IsCallAnsweringKeyEnabled(void); + // Activate or Deactivate Power Key to end the calls. + result EnableCallEndingKey(bool activate); + // Check if call is ended by Power Key. + bool IsCallEndingKeyEnabled(void); + // Activate or De-activate outgoing calls when device is locked. + // activate = true, to enable making calls when device is locked. + result EnableOutgoingCallWhenLocked(bool activate); + // Check if making call is possible when device is locked. + bool IsOutgoingCallEnabledWhenLocked(void); + +protected: + //From ISettingsEventListener + virtual void HandleGetCallWaitingResponse(bool isCallSuccessful, bool callWaitingActivated); + virtual void HandleSetCallWaitingResponse(bool isCallSuccessful, bool isCallWaitingEnabled); + virtual void HandleGetCallForwardResponse(bool isCallSuccessful, CallForwardCondition callFwdCondition, const Tizen::Base::String& callFwdNumber, bool callForwardActivated, int noReplyWaitTime); + virtual void HandleSetCallForwardResponse(bool isCallSuccessful, CallForwardCondition callFwdCondition, const Tizen::Base::String& callFwdNumber, bool isCallForwardActivated, int noReplyWaitTime); + virtual void HandleGetCallBarringResponse(int result, CallBarringType callBarringType, bool isBarringActivated); + virtual void HandleSetCallBarringResponse(int result, CallBarringType callBarringType, bool isBarringActivated); + virtual void HandleFlightMode(bool isFlightModeActivated){}; + +private: + static SettingsPresentationModel* __pInstance; + //Owned. Is responsible for destroying the instance + SettingsManager* __pSettingsMgr; + ISettingsEventListener* __pSettingsEventListener; +}; + +#endif // _PHN_SETTINGS_PRESENTATION_MODEL_H_ diff --git a/inc/PhnSettingsRejectListForm.h b/inc/PhnSettingsRejectListForm.h new file mode 100644 index 0000000..aa133e4 --- /dev/null +++ b/inc/PhnSettingsRejectListForm.h @@ -0,0 +1,117 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnSettingsRejectListForm.h + * @brief This is the header file for the %SettingsRejectListForm class. + * + * This header file contains the declarations for %SettingsRejectListForm class. + */ +#ifndef _PHN_SETTINGS_REJECT_LIST_FORM_H_ +#define _PHN_SETTINGS_REJECT_LIST_FORM_H_ + +#include +#include +#include "PhnCallRejectInfo.h" +#include "PhnIAppStateChangeListner.h" + +class SettingsPresentationModel; + +/** + * @class SettingsRejectListForm + * @brief This class presents a form based UI for call settings. + * + */ +class SettingsRejectListForm + : public Tizen::Ui::IActionEventListener + , public Tizen::Ui::Controls::Form + , public Tizen::Ui::Controls::IFormBackEventListener + , public Tizen::Ui::Controls::IGroupedTableViewItemProvider + , public Tizen::Ui::Controls::IGroupedTableViewItemEventListener + , public Tizen::Ui::Scenes::ISceneEventListener + , public Tizen::Ui::IOrientationEventListener + , public IAppStateChangeListener +{ +public: + SettingsRejectListForm(void); + virtual ~SettingsRejectListForm(void); + bool Initialize(void); + +public: + virtual result OnInitializing(void); + virtual result OnTerminating(void); + virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId); + virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source); + virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs); + virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId); + + //From IGroupedTableViewItemEventListener - Called when the state of a TableViewGroupItem is changed. + virtual void OnGroupedTableViewGroupItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status){}; + //From IGroupedTableViewItemEventListener - Called when the state of a TableViewItem in the GroupedTableView is changed. + virtual void OnGroupedTableViewItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status); + //From IGroupedTableViewItemEventListener - Called when the TableViewContextItem is opened or closed. + virtual void OnGroupedTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated){}; + + //From IGroupedTableViewItemProvider - Gets the total number of groups. + virtual int GetGroupCount(void); + //From IGroupedTableViewItemProvider - Gets the total number of items in the specified group. + virtual int GetItemCount(int groupIndex); + //From IGroupedTableViewItemProvider - Gets the group item for the specified index from the item provider. + virtual Tizen::Ui::Controls::TableViewGroupItem* CreateGroupItem(int groupIndex, int itemWidth); + //From IGroupedTableViewItemProvider - Deletes the specified group item. + virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem); + //From IGroupedTableViewItemProvider - Updates the specified group item. + virtual void UpdateGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem); + //From IGroupedTableViewItemProvider - Creates the specified item. + virtual Tizen::Ui::Controls::TableViewItem* CreateItem(int groupIndex, int itemIndex, int itemWidth); + //From IGroupedTableViewItemProvider - Deletes the specified item. + virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem); + //From IGroupedTableViewItemProvider - Updates the specified item. + virtual void UpdateItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem); + //From IGroupedTableViewItemProvider - Gets the default height of an group item. + virtual int GetDefaultGroupItemHeight(void); + //From IGroupedTableViewItemProvider - Gets the default height of an item. + virtual int GetDefaultItemHeight(void); + //From IOrientationEventListener + virtual void OnOrientationChanged(const Tizen::Ui::Control& source, Tizen::Ui::OrientationStatus orientationStatus); + //From IAppStateChangeListener + virtual void OnForeground(void); + virtual void OnBackground(void); + void UpdateRejectTableView(void); + +private: + // Function is used to initialize group list view. + result InitializeGroupedTableView(void); + // Function is used to fetch list of "rejected call numbers". + void FetchNumbersRejectList(void); + // Function is used to initialize footer and footer items. + void InitializeFooter(void); + +private: + //list of rejected call numbers fetched from Db. + Tizen::Base::Collection::ArrayListT* __pNumbersList; + //matching criteria + enum MatchingCriteriaId + { + CRITERIAID_EXACT, + CRITERIAID_STARTSWITH, + CRITERIAID_ENDSWITH, + CRITERIAID_INCLUDE, + }; + SettingsPresentationModel* __pSettingsPresentor; +}; + +#endif //_PHN_SETTINGS_REJECT_LIST_FORM_H_ diff --git a/inc/PhnSettingsRejectMsgsForm.h b/inc/PhnSettingsRejectMsgsForm.h new file mode 100644 index 0000000..eb5c4cb --- /dev/null +++ b/inc/PhnSettingsRejectMsgsForm.h @@ -0,0 +1,119 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnSettingsRejectListForm.h + * @brief This is the header file for the %SettingsRejectMsgsForm class. + * + * This header file contains the declarations for %SettingsRejectMsgsForm class. + */ +#ifndef _PHN_SETTINGS_REJECT_MSGS_FORM_H_ +#define _PHN_SETTINGS_REJECT_MSGS_FORM_H_ + +#include +#include + +class SettingsPresentationModel; + +/** + * @class SettingsRejectMsgsForm + * @brief This class presents a additional settings form for storing reject messages. + * + */ +class SettingsRejectMsgsForm + : public Tizen::Ui::IActionEventListener + , public Tizen::Ui::Controls::Form + , public Tizen::Ui::Controls::IFormBackEventListener + , public Tizen::Ui::Controls::IGroupedTableViewItemProvider + , public Tizen::Ui::Controls::IGroupedTableViewItemEventListener + , public Tizen::Ui::Scenes::ISceneEventListener + , public Tizen::Ui::IOrientationEventListener +{ +public: + SettingsRejectMsgsForm(void); + virtual ~SettingsRejectMsgsForm(void); + bool Initialize(void); + +public: + virtual result OnInitializing(void); + virtual result OnTerminating(void); + virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId); + virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source); + virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs); + virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId); + + //From IGroupedTableViewItemEventListener - Called when the state of a TableViewGroupItem is changed. + virtual void OnGroupedTableViewGroupItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status){}; + //From IGroupedTableViewItemEventListener - Called when the state of a TableViewItem in the GroupedTableView is changed. + virtual void OnGroupedTableViewItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status); + //From IGroupedTableViewItemEventListener - Called when the TableViewContextItem is opened or closed. + virtual void OnGroupedTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated){}; + + //From IGroupedTableViewItemProvider - Gets the total number of groups. + virtual int GetGroupCount(void); + //From IGroupedTableViewItemProvider - Gets the total number of items in the specified group. + virtual int GetItemCount(int groupIndex); + //From IGroupedTableViewItemProvider - Gets the group item for the specified index from the item provider. + virtual Tizen::Ui::Controls::TableViewGroupItem* CreateGroupItem(int groupIndex, int itemWidth); + //From IGroupedTableViewItemProvider - Deletes the specified group item. + virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem); + //From IGroupedTableViewItemProvider - Updates the specified group item. + virtual void UpdateGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem); + //From IGroupedTableViewItemProvider - Creates the specified item. + virtual Tizen::Ui::Controls::TableViewItem* CreateItem(int groupIndex, int itemIndex, int itemWidth); + //From IGroupedTableViewItemProvider - Deletes the specified item. + virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem); + //From IGroupedTableViewItemProvider - Updates the specified item. + virtual void UpdateItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem); + //From IGroupedTableViewItemProvider - Gets the default height of an group item. + virtual int GetDefaultGroupItemHeight(void); + //From IGroupedTableViewItemProvider - Gets the default height of an item. + virtual int GetDefaultItemHeight(void); + //From IOrientationEventListener + virtual void OnOrientationChanged(const Tizen::Ui::Control& source, Tizen::Ui::OrientationStatus orientationStatus); + +private: + // Function is used to initialise group list view. + result InitializeGroupedTableView(void); + // Function is used to fetch list of "rejected with messages". + void FetchRejectMsgs(void); + void SetRejectMessageCount(void); + // Function is used to initialise footer and footer items. + void InitializeFooter(void); + +private: + //list of reject messages fetched from Db. + Tizen::Base::Collection::IMapT* __pMsgsMap; + //settings presentation model + SettingsPresentationModel* __pSettingsPresentor; + //footer action id + enum FooterActionId + { + IDA_ADD_FOOTER_ITEMID, + IDA_DELETE_FOOTER_ITEMID, + IDA_CANCEL_FOOTER_ITEMID, + }; + //matching criteria + enum MatchingCriteriaId + { + CRITERIAID_EXACT, + CRITERIAID_STARTSWITH, + CRITERIAID_ENDSWITH, + CRITERIAID_INCLUDE, + }; +}; + +#endif //_PHN_SETTINGS_REJECT_MSGS_FORM_H_ diff --git a/inc/PhnSettingsSpeedDialForm.h b/inc/PhnSettingsSpeedDialForm.h new file mode 100644 index 0000000..de1a158 --- /dev/null +++ b/inc/PhnSettingsSpeedDialForm.h @@ -0,0 +1,129 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnSettingsSpeedDialForm.h + * @brief This is the header file for the %SettingsSpeedDialForm class. + * + * This header file contains the declarations for %SettingsSpeedDialForm class. + */ +#ifndef _PHN_SETTINGS_SPEED_DIAL_FORM_H_ +#define _PHN_SETTINGS_SPEED_DIAL_FORM_H_ + +#include +#include +#include +#include "PhnTypes.h" +#include "PhnSpeedDialPopup.h" +#include "PhnIPopupItemSelectListener.h" +#include "PhnIAppStateChangeListner.h" + +class SettingsPresentationModel; +class SpeedDialInfo; + +/** + * @class SettingsSpeedDialForm + * @brief This class presents a additional settings form for setting and updating speed dial settings. + * + */ +class SettingsSpeedDialForm + : public Tizen::Ui::IActionEventListener + , public Tizen::Ui::Controls::Form + , public Tizen::Ui::Controls::IFormBackEventListener + , public Tizen::Ui::Scenes::ISceneEventListener + , public Tizen::App::IAppControlResponseListener + , public Tizen::Social::IAddressbookChangeEventListener + , public IPopupItemSelectListener + , public Tizen::Ui::IPropagatedKeyEventListener + , public IAppStateChangeListener +{ +public: + SettingsSpeedDialForm(void); + virtual ~SettingsSpeedDialForm(void); + bool Initialize(void); + +public: + virtual result OnInitializing(void); + virtual result OnTerminating(void); + //From IActionEventListener + virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId); + //From IFormBackEventListener + virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source); + + //From ISceneEventListener + virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs); + virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId); + //From IAppControlResponseListener + virtual void OnAppControlCompleteResponseReceived(const Tizen::App::AppId& appId, const Tizen::Base::String& operationId, Tizen::App::AppCtrlResult appControlResult, const Tizen::Base::Collection::IMap* pExtraData); + //From IPopupEventListener + void OnItemSelected(int itemIndex); + //Update or Close Invalid Contact Popup + void UpdateInvalidContactPopup(const Tizen::Social::ContactChangeInfo* pInfo); + //From IAddressbookEventListener + virtual void OnContactsChanged(const Tizen::Base::Collection::IList& contactChangeInfoList); + virtual void OnCategoriesChanged(const Tizen::Base::Collection::IList& categoryChangeInfoList){}; + //IPropagatedKeyEventListener + virtual bool OnKeyPressed(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){ return false; }; + virtual bool OnKeyReleased(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo); + virtual bool OnPreviewKeyPressed(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){ return false; } + virtual bool OnPreviewKeyReleased(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){ return false; } + virtual bool TranslateKeyEventInfo(Control& source, Tizen::Ui::KeyEventInfo& keyEventInfo) { return false; } + + //Called when application come to foreground + virtual void OnForeground(void); + virtual void OnBackground(void) {}; + + void ShowInvalidContactPopup(const Tizen::Base::String& contactDisplayName); + +private: + // Function is used to initialise footer and footer items. + void InitializeFooter(void); + // Function is used to initialise buttons and add listener. + void InitializePhotoButtons(const Tizen::Base::String& btnName, const Tizen::Base::String& lblName, ActionId actionId); + // Function is used to initialise voice mail button and add listener. + //void InitializeVoiceMail(void); + //Launches contacts app control for pick operation + void LaunchAppControl(void); + // updates the button according to the button clicked + void UpdateButton(void); + // updates all buttons + void UpdateAllButtons(void); + //Used to reinitalize speed dial delete list + void ReInitializeDeleteList(void); + void SetDefaultImageAndLabelToButton(Tizen::Ui::Controls::Button& btn, Tizen::Ui::Controls::Label& lbl, ActionId actionId); + Tizen::Social::Contact* GetSpeedDialMappedContact(ActionId actionId); + void SetContactThumbnailToButton(Tizen::Ui::Controls::Button& speedDialButton, Tizen::Graphics::Bitmap& contactPhoto, ActionId actionId); + void SetCheckIconInDeleteMode(Tizen::Ui::Controls::Button& speedDialButton, Tizen::Graphics::Bitmap& contactPhoto, ActionId actionId); + void DrawNumericEnrichedTxtToCanvas(Tizen::Base::String& number, Tizen::Graphics::Canvas& canvas); + +private: + Tizen::Base::Collection::HashMapT* __pSpeedDialMappingList; + //Singleton do not delete + SettingsPresentationModel* __pSettingsPresentor; + int __keyToMap; + bool __isUpdate; + bool __isDeleteMode; + Tizen::Social::Addressbook* __pAddressbook; + SpeedDialPopup* __pSpeedDialPopup; + Tizen::Base::Collection::ArrayListT* __pDeleteList; + Tizen::Ui::Scenes::SceneId* __pPreviousSceneId; + bool __isContactAppControlLaunched; + Tizen::Ui::Controls::Popup* __pInvalidContactPopup; + Tizen::Social::RecordId __invalidContactRecordId; + bool __contactUpdate; // Do not remove the CheckMark on SpeedDialButton if its just a contact Update +}; + +#endif //_PHN_SETTINGS_SPEED_DIAL_FORM_H_ diff --git a/inc/PhnSpeedDialInfo.h b/inc/PhnSpeedDialInfo.h new file mode 100644 index 0000000..36295a8 --- /dev/null +++ b/inc/PhnSpeedDialInfo.h @@ -0,0 +1,70 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnSpeedDialInfo.h + * @brief This is the header file for the %SpeedDialInfo class. + * + * This header file contains the declarations for %SpeedDialInfo class. + */ +#ifndef _PHN_SPEED_DIAL_INFO_H_ +#define _PHN_SPEED_DIAL_INFO_H_ + +#include +#include "PhnTypes.h" + +/** + * @class SpeedDialInfo + * @brief This class holds information about speed dial mappings fetched/stored from database. + * + */ +class SpeedDialInfo + : public Tizen::Base::Object +{ + +public: + // Default Constructor + SpeedDialInfo(void); + virtual ~SpeedDialInfo(void); + /** + * This is the equality operator for this SpeedDialInfo. + * returns true, if both have same value for call handle. + * + * @param[in] rhs A reference to the %SpeedDialInfo instance + */ + bool operator ==(const SpeedDialInfo& rhs) const; + + /** + * This is the InEquality operator for this SpeedDialInfo. + * returns true, if value for call handle is different. + * + * @param[in] rhs A reference to the %SpeedDialInfo instance + */ + bool operator !=(const SpeedDialInfo& rhs) const; + + /** + * This is the assignment operator for this class. + * @param[in] rhs A reference to the %SpeedDialInfo instance + */ + SpeedDialInfo& operator =(const SpeedDialInfo& rhs); + +public: + int rowId; + int keyMapping; + Tizen::Base::String contactId; +}; + +#endif // _PHN_SPEED_DIAL_INFO_H_ diff --git a/inc/PhnSpeedDialPopup.h b/inc/PhnSpeedDialPopup.h new file mode 100644 index 0000000..d28fa68 --- /dev/null +++ b/inc/PhnSpeedDialPopup.h @@ -0,0 +1,78 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnSpeedDialPopup.h + * @brief This is the header file for the %SpeedDialPopup class. + * + * This header file contains the declarations for %SpeedDialPopup class. + */ +#ifndef _PHN_SPEED_DIAL_POPUP_H_ +#define _PHN_SPEED_DIAL_POPUP_H_ + +#include +#include + +#include "PhnIPopupItemSelectListener.h" + +/** + * @class SpeedDialPopup + * @brief This class provides popup messages in Speed dial settings form. + * + */ +class SpeedDialPopup + : public Tizen::Ui::Controls::Popup + , public Tizen::Ui::Controls::IListViewItemEventListener + , public Tizen::Ui::Controls::IListViewItemProvider + , public Tizen::Ui::IActionEventListener + , public Tizen::Ui::IPropagatedKeyEventListener +{ + +public: + SpeedDialPopup(IPopupItemSelectListener& listener); + virtual ~SpeedDialPopup(void); + int Initialize(void); + + // IListViewItemEventListener + virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus state); + virtual void OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status); + virtual void OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction); + virtual void OnListViewItemLongPressed(Tizen::Ui::Controls::ListView& listView, int index, int elementId, bool& invokeListViewItemCallback); + + //IListViewItemProvider + virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int index, int itemWidth); + virtual bool DeleteItem(int index, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth); + virtual int GetItemCount(void); + + // From IActionEventListener + void OnActionPerformed(const Tizen::Ui::Control& source, int actionId); + //IPropagatedKeyEventListener + virtual bool OnKeyPressed(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){ return false; }; + virtual bool OnKeyReleased(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo); + virtual bool OnPreviewKeyPressed(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){ return false; } + virtual bool OnPreviewKeyReleased(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){ return false; } + virtual bool TranslateKeyEventInfo(Control& source, Tizen::Ui::KeyEventInfo& keyEventInfo) { return false; } + +private: + void ConstructListData(void); + +private: + Tizen::Ui::Controls::Button* __pCancelButton; + IPopupItemSelectListener& __popupListener; + Tizen::Base::Collection::ArrayList* __pListItemArray; +}; + +#endif // _PHN_SPEED_DIAL_POPUP_H_ diff --git a/inc/PhnSuggestionItemProvider.h b/inc/PhnSuggestionItemProvider.h new file mode 100644 index 0000000..aa96024 --- /dev/null +++ b/inc/PhnSuggestionItemProvider.h @@ -0,0 +1,55 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnSuggestionItemProvider.h + * @brief This is the header file for the %SuggestionItemProvider class. + * + * This header file contains the declarations for %SuggestionItemProvider class. + */ +#include +#include + +#ifndef _PHN_SUGGESTION_ITEM_PROVIDER_H_ +#define _PHN_SUGGESTION_ITEM_PROVIDER_H_ + +using namespace Tizen::Ui; +using namespace Tizen::Ui::Controls; + +class DialPresentationModel; + +/** + * @class SuggestionItemProvider + * @brief This class provides Item provider for search contact list. + * + */ +class SuggestionItemProvider + : public IListViewItemProvider +{ +public: + SuggestionItemProvider(DialPresentationModel& pDialPresentationModel); + ~SuggestionItemProvider(void); + ///IListViewItemProvider method + virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int index, int itemWidth); + ///IListViewItemProvider method + virtual bool DeleteItem(int index, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth); + ///IListViewItemProvider method + virtual int GetItemCount(void); + +private: + DialPresentationModel& __dialPresentationModel; +}; +#endif // _PHN_SUGGESTION_ITEM_PROVIDER_H_ diff --git a/inc/PhnTabDialer.h b/inc/PhnTabDialer.h new file mode 100644 index 0000000..1b95ed4 --- /dev/null +++ b/inc/PhnTabDialer.h @@ -0,0 +1,223 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnTabDialer.h + * @brief This is the header file for the %DialTabDialer class. + * + * This header file contains the declarations for %DialTabDialer class. + */ +#ifndef _PHN_TAB_DIALER_H_ +#define _PHN_TAB_DIALER_H_ + +#include +#include +#include +#include +#include "PhnSuggestionItemProvider.h" +#include "PhnDialPresentationModel.h" +#include "PhnErrorMsgPopup.h" +#include "PhnIAppStateChangeListner.h" + +class DialerKeypad; + +/** + * @class DialTabDialer + * @brief This class provides tab based UI for Dialer. + * + */ +class DialTabDialer + : public Tizen::Ui::Controls::Panel + , public Tizen::Ui::Scenes::ISceneEventListener + , public Tizen::Ui::IActionEventListener + , public Tizen::Ui::Controls::IListViewItemEventListener + , public IPopupClosedEventListener + , public Tizen::Ui::IOrientationEventListener + , public Tizen::Ui::ITouchLongPressGestureEventListener + , public Tizen::Social::IAddressbookChangeEventListener + , public IAppStateChangeListener + , public Tizen::Ui::IPropagatedKeyEventListener + , public Tizen::System::ISettingEventListener + , public Tizen::Ui::ITextEventListener + , public Tizen::Ui::ITouchEventListener +{ +public: + DialTabDialer(void); + virtual ~DialTabDialer(void); + bool Initialize(void); + + virtual result OnInitializing(void); + virtual result OnTerminating(void); + //Used to show suggestions + void ShowSuggestionBox(Tizen::Base::String& name, Tizen::Base::String& mobileNo, Tizen::Base::String& matchedKey, Tizen::Base::String& resultCount); + //Used to hide search results. + void HideSearchGadget(void); + void HideSearchBox(void); + //Used to show "Add to Contacts" button + void ShowAddToContactsButton(void); + //Used to update search results. + void UpdateSearchResults(void); + //Used to show search Box. + void ShowSearchGadget(void); + + //Set the original positions for UseContact and DropDown/DropUp Buttons + void SetOrigPosUseContact(void); + //Set the shifted positions for UseContact and DropDown/DropUp Buttons + void SetShiftedPosUseContact(void); + //Called when App comes to foreground + virtual void OnForeground(void); + //Called when App goes to background + virtual void OnBackground(void); + //Used to set that an AppControl is running + void SetAppControlLaunched(bool launched); + //USed to check if an AppControl is running + bool GetAppControlLaunched(void); + void ShowOptionsMenu(); + void HandleFormBackRequest(); + +protected: + void ShowFormattedText(Tizen::Ui::Controls::EditField* pEditField, Tizen::Base::String contactNumber); + void ShowFormattedText(Tizen::Ui::Controls::EditField* pEditField, int actionId); + //search box create, update and hide + void InitializeSearchBox(void); + //Used to initialize search list view + void InitializeSearchListView(void); + //Used to show search results in list view. + void ShowSearchListView(void); + //Used to hide search results list view. + void HideSearchListView(void); + //Used to initialize EditField for contacts. + void InitializeContactsTextBox(void); + //Used to contruct drop-down menu for search results. + void ConstructSearchMenu(void); + //Used to construct dial keypad. + void ConstructKeypad(void); + //Make an outgoingcall + bool DialOutgoingCall(const Tizen::Base::String& contactNumber); + //Used to add pause + void AddPause(void); + //Used to add pause + void AddWait(void); + //Used to add + + void AddPlus(void); + //Switch to Speed dial settings form. + void SwitchToSpeedDialForm(void); + //Used to get confirmation for assigning speed dial. + void ShowSpeedDialConfirmationPopup(bool isVoiceMail=false); + //Used to show context menu + void ShowContextMenu(); + //Used to show context menu + void ShowPauseWaitMenu(Tizen::Base::String& contactNumber, int portraitAnchorPositionY, + int portraitAnchorPositionX, int landscapeAnchorPositionX, int landscapeAnchorPositionY); + //Used to check if App is in foreground. + bool IsForeground(); + //Used to show silent mode message box + void ShowSilentModeToggle(bool bEnabled); + // + void SetIgnoreClearKey(bool bIgnore); + bool IsClearKeyIgnored(void); + + virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs); + virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId); + virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId); + //IListViewItemEventListener method + virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus status){} + virtual void OnListViewItemLongPressed(Tizen::Ui::Controls::ListView& listView, int index, int elementId, bool& invokeListViewItemCallback){} + virtual void OnListViewItemReordered(Tizen::Ui::Controls::ListView& listView, int indexFrom, int indexTo){} + virtual void OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status); + virtual void OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction){} + virtual void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs); + + ///IOrientationEventListener + virtual void OnOrientationChanged(const Control& source, Tizen::Ui::OrientationStatus orientationStatus); + //Event Listener method from IPopupClosedEventListener + virtual void HandlePopupClosed(void); + // Called from TouchLongPressGestureDetector when a long press gesture is detected. + virtual void OnLongPressGestureDetected(Tizen::Ui::TouchLongPressGestureDetector& gestureDetector); + //Called from TouchLongPressGestureDetector when a long press detection is canceled. + virtual void OnLongPressGestureCanceled(Tizen::Ui::TouchLongPressGestureDetector& gestureDetector){} + // Called by AddressBook to notify when contacts are changed. + virtual void OnContactsChanged(const Tizen::Base::Collection::IList& contactChangeInfoList); + // Called by AddressBook to notify when categories are changed. + virtual void OnCategoriesChanged(const Tizen::Base::Collection::IList& categoryChangeInfoList) {}; + virtual void OnTextValueChanged(const Tizen::Ui::Control& source); + virtual void OnTextValueChangeCanceled(const Tizen::Ui::Control& source){}; + + //IPropagatedKeyEventListener + virtual bool OnKeyPressed(Control& source, const KeyEventInfo& keyEventInfo); + virtual bool OnKeyReleased(Control& source, const KeyEventInfo& keyEventInfo); + virtual bool OnPreviewKeyPressed(Control& source, const KeyEventInfo& keyEventInfo){ return false; } + virtual bool OnPreviewKeyReleased(Control& source, const KeyEventInfo& keyEventInfo){ return false; } + virtual bool TranslateKeyEventInfo(Control& source, KeyEventInfo& keyEventInfo) { return false; } + + //ISettings Event Listener + virtual void OnSettingChanged(Tizen::Base::String& key); + + //ITouchEventListener + virtual void OnTouchPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo & touchInfo); + virtual void OnTouchReleased(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){} + virtual void OnTouchMoved(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){} + virtual void OnTouchFocusIn(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){} + virtual void OnTouchFocusOut(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){} + + enum ActionIds + { + IDA_BTN_SHOW_CONTEXTMENU = 100, + IDA_BTN_USE_CONTACT_DATA, + IDA_BTN_DISPLAY_CONTACTS, + IDA_BTN_ADD_TO_CONTACTS, + IDA_MENU_SPEED_DIAL, + IDA_MENU_SEND_MESSAGE, + IDA_MENU_ADD_PAUSE, + IDA_MENU_ADD_WAIT, + IDA_MENU_EXIT, + IDA_MENU_BACK, + IDA_SPEEDDIAL_POPUP_YES, + IDA_SPEEDDIAL_POPUP_NO, + IDA_SEARCH_FIELD, + IDA_SEARCH_ICON + }; + + //Button Dimensions + static const int IDI_BGBITMAP_WIDTH ; + static const int IDI_BGBITMAP_HEIGHT; + static const int IDI_BGBITMAP_POS_X; + static const int IDI_BGBITMAP_POS_Y; + static const int IDI_TEXT1_SIZE; + static const int IDI_TEXT2_SIZE; + +private: + //Panel* __pSearchBox; + Tizen::Ui::Controls::ListView* __pSearchListView; + Tizen::Ui::Controls::ContextMenu* __pCallContextMenu; + //Used only when device has HardWare key + Tizen::Ui::Controls::OptionMenu* __pOptionMenu; + SuggestionItemProvider* __pSuggestionListProvider; + //Ownership + ErrorMsgPopup* __pErrorMsgPopup; + bool __isSearchListOpened; + DialPresentationModel* __pDialPresentationModel; + DialerKeypad* __pDialKeypad; + Tizen::Ui::Controls::Popup* __pConfirmationPopup; + bool __isAppForeground; + Tizen::Social::Addressbook* __pAddressBook; + bool __isAppControlLaunched; + bool __isContactsUpdated; + DialerState __dialerState; + bool __isClearKeyIgnore; +}; + +#endif // _PHN_TAB_DIALER_H_ diff --git a/inc/PhnTabLogs.h b/inc/PhnTabLogs.h new file mode 100644 index 0000000..46e712b --- /dev/null +++ b/inc/PhnTabLogs.h @@ -0,0 +1,220 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnTabLogs.h + * @brief This is the header file for the %DialTabLogs class. + * + * This header file contains the declarations for %DialTabLogs class. + */ +#ifndef _PHN_TAB_LOGS_H_ +#define _PHN_TAB_LOGS_H_ + +#include +#include +#include +#include +#include "PhnTabLogsItemProvider.h" +#include "PhnICalllogChangeListener.h" +#include "PhnCallLogPresentationModel.h" +#include "PhnIAppStateChangeListner.h" +#include "PhnCallLogViewByPopup.h" +#include "PhnICallLogViewByPopupListener.h" +//#include "calllog.h" + +class CallLogDetails; +class CallLogManager; + +/** + * @class DialTabLogs + * @brief This class provides tab based UI for Call Log. + * + */ +class DialTabLogs + : public Tizen::Ui::Controls::Panel + , public Tizen::Ui::Scenes::ISceneEventListener + , public Tizen::Ui::Controls::IGroupedListViewItemEventListener + , public Tizen::Ui::IActionEventListener + , public ICalllogChangeListener + , public Tizen::Ui::IWindowEventListener + , public Tizen::Ui::IOrientationEventListener + , public Tizen::Base::Runtime::ITimerEventListener + , public Tizen::Social::IAddressbookChangeEventListener + , public IAppStateChangeListener + , public ICallLogViewByPopupListener + , public Tizen::Ui::IPropagatedKeyEventListener + , public Tizen::System::ISettingEventListener +{ +public: + ///DialTabLogs constructor + DialTabLogs(void); + + ///DialTabLogs destructor + virtual ~DialTabLogs(void); + + ///Initializes the DialTabLogs form + /* + * @param: Whether Initialize is success or not + */ + bool Initialize(void); + + ///This functions gets called during form OnInitializing + /* + * @param: result + */ + virtual result OnInitializing(void); + + ///This functions gets called during form terminating + /* + * @param: result + */ + virtual result OnTerminating(void); + + void SetCallLogDisplayMode(bool isEdit); + + void UnCheckAllItems(void); + + ///IActionEventListener + virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId); + ///ISceneEventListener + virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs); + + ///ISceneEventListener + virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId); + + /// IGroupedListViewItemEventListener + virtual void OnGroupedListViewContextItemStateChanged(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex, int elementId, Tizen::Ui::Controls::ListContextItemStatus state); + /// IGroupedListViewItemEventListener + virtual void OnGroupedListViewItemStateChanged(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex, int elementId, Tizen::Ui::Controls::ListItemStatus state); + /// IGroupedListViewItemEventListener + virtual void OnGroupedListViewItemSwept(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex, Tizen::Ui::Controls::SweepDirection direction); + /// ICalllogChangeListener + virtual void OnCalllogChanged(void); + + void SetListItemSelectStatus(bool status); + + void DeleteSelectedCalllog(void); + + void ShowDeletePopup(void); + void HideDeletePopup(void); + virtual void OnTimerExpired(Tizen::Base::Runtime::Timer &timer); + virtual void OnWindowActivated(const Tizen::Ui::Window &source); + virtual void OnWindowDeactivated(const Tizen::Ui::Window &source){} + result RemoveLogsList(void); + //Handles userevents + virtual void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs); + + //Called when App comes to foreground + virtual void OnForeground(void); + //Called when App goes to background + virtual void OnBackground(void); + + void StoreItemselection(int groupIndex, int itemIndex, int elementId, ListItemStatus state); + void ManageItemSelection(void); + bool IsScecneVisible(); + void SetSceneVisible(bool sceneMode); + void ShowLogsViewByPopup(void); + + //From IPopupEventListener + void OnItemSelected(); + void ShowContextMenu(); + ///IOrientationEventListener + virtual void OnOrientationChanged(const Control& source, Tizen::Ui::OrientationStatus orientationStatus); + //From IAddressbookEventListener + virtual void OnContactsChanged(const Tizen::Base::Collection::IList& contactChangeInfoList); + virtual void OnCategoriesChanged(const Tizen::Base::Collection::IList& categoryChangeInfoList){}; + void UpdateCallLogList(void); + //ISettingEventListener + virtual void OnSettingChanged(Tizen::Base::String& key); + void ShowOptionsMenu(); + void CancelDelete(); + void HandleFormBackRequest(); + void ShowDeleteConfirmationPopup(int deleteCommandIdYes); + + //IPropagatedKeyEventListener + virtual bool OnKeyReleased(Control& source, const KeyEventInfo& keyEventInfo); + virtual bool OnKeyPressed(Control& source, const KeyEventInfo& keyEventInfo){ return false; } + virtual bool OnPreviewKeyPressed(Control& source, const KeyEventInfo& keyEventInfo){ return false; } + virtual bool OnPreviewKeyReleased(Control& source, const KeyEventInfo& keyEventInfo){ return false; } + virtual bool TranslateKeyEventInfo(Control& source, KeyEventInfo& keyEventInfo) { return false; } + +private: + //used to handle 'IDA_CHECKBUTTON_SELECT_ALL' + void HandleAllItemSelection(void); + +protected: + //static const int IDA_FOOTER_LOG_MORE = 103; + static const int IDA_CONTEXTMENU_VIEWBY = 104; + static const int IDA_FOOTER_LOG_DELETE = 105; + static const int IDA_FOOTER_LOG_CANCEL = 106; + static const int IDA_CHECKBUTTON_SELECT_ALL = 108; + static const int IDA_CHECKBUTTON_UNSELECT_ALL = 109; + static const int IDA_POPUP_DELETE_CANCEL = 110; + static const int IDA_POPUP_DELETE_YES = 111; + static const int IDA_POPUP_DELETE_NO = 112; + static const int IDA_POPUP_DELETEALL_YES = 113; + +private: + ///Form Footer + Tizen::Ui::Controls::Footer* __pFormFooter; + + ///More option footer item + Tizen::Ui::Controls::ButtonItem __footerItemMore; + + ///Delete footer item + Tizen::Ui::Controls::FooterItem __footerItemDelete; + + ///Grouped list view + Tizen::Ui::Controls::GroupedListView* __plogsListView; + + ///Grouped list view + Tizen::Ui::Controls::CheckButton* __pButtonSelectAll; + + //Selected pop up label + Tizen::Ui::Controls::Label* __pSelectedLabel; + + //Used only when device has HardWare key + Tizen::Ui::Controls::OptionMenu* __pOptionMenu; + + Tizen::Social::Addressbook* __pAddressbook; + + ///Grouped list view item provider + CustomDataProvider* __pDataProvider; + + CalLogPresentationModel* __pLogPresentor; + int __groupCount; + int __itemCount; + bool __isSelectAll; + int __selectedItemCount; + bool __isEditMode; + int calllogCount; + Tizen::Base::Collection::ArrayList* __pArgs; + Tizen::Base::Runtime::Timer __deleteLogsTimer; + Tizen::Ui::Controls::Popup* __pDeletePopup; + Tizen::Ui::Controls::Popup* __pConfirmationDeletePopup; + int __deleteGroupIndex; + int __deleteItemIndex; + Tizen::Base::Collection::ArrayList* __pCallLogId; + bool __isSceneVisible; + CallLogViewByPopup* __pLogsViewbyPopup; + bool __isMsgAppControlLaunched; + bool __isCallAppControlLaunched; + bool __isDeleteInProgress; + float __fontSize; + float __itemHeight; +}; + +#endif // _PHN_TAB_LOGS_H_ diff --git a/inc/PhnTabLogsItemProvider.h b/inc/PhnTabLogsItemProvider.h new file mode 100644 index 0000000..cd58fa8 --- /dev/null +++ b/inc/PhnTabLogsItemProvider.h @@ -0,0 +1,75 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnTabLogsItemProvider.h + * @brief This is the header file for the %CustomDataProvider class. + * + * This header file contains the declarations for %CustomDataProvider class. + */ +#include +#include +#include +#include "PhnCalllogManager.h" + +#ifndef _PHN_TAB_LOGS_ITEM_PROVIDER_H_ +#define _PHN_TAB_LOGS_ITEM_PROVIDER_H_ + +using namespace Tizen::Ui; +using namespace Tizen::Ui::Controls; + +class GroupItemClass; + +/** + * @class CustomDataProvider + * @brief This class provides base class for item providers of calllog application + * + */ +class CustomDataProvider + : public Tizen::Ui::Controls::IGroupedListViewItemProvider +{ +public: + CustomDataProvider(void); + virtual ~CustomDataProvider(void); + + void SetListItemStyle(bool mode); + + // IGroupedListViewItemProvider + virtual int GetGroupCount(void); + virtual int GetItemCount(int groupIndex); + virtual Tizen::Ui::Controls::GroupItem* CreateGroupItem(int groupIndex, int itemWidth); + virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::GroupItem* pItem, int itemWidth); + virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int groupIndex, int itemIndex, int itemWidth); + virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth); + + void GetItemAtGroupIndex(int groupIndex, int itemIndex, CallLogDetails** pCalllogDetails); + +private: + void GetCallogIconBitmap(CallLogType logType,Tizen::Graphics::Bitmap*& iconType, Tizen::Graphics::Bitmap*& iconArrow); + float GetTextWidth(Tizen::Base::String contactName); +private: + bool __isEditStyle; + Tizen::Base::Collection::ArrayList* __pGroupData; + Tizen::Social::Addressbook* __pAddressBook; + Tizen::Ui::Controls::ListContextItem* __pItemContext; + Tizen::Ui::Controls::ListContextItem* __pItemContextForMMLogs; + Tizen::Ui::Controls::ListContextItem* __pItemContextForHidenLogs; + float __fontSize; + float __itemHeight; + +}; + +#endif /* _PHN_TAB_LOGS_ITEM_PROVIDER_H_ */ diff --git a/inc/PhnTypes.h b/inc/PhnTypes.h new file mode 100644 index 0000000..0531a9f --- /dev/null +++ b/inc/PhnTypes.h @@ -0,0 +1,775 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnTypes.h + * @brief This is the header file provides common constants and enums used across application. + * + */ +#ifndef PHNTYPES_H_ +#define PHNTYPES_H_ + +#include +#include +#include +#include "PhnCommonUtils.h" + +//Bitmaps for settings module +extern const wchar_t* IDB_VOICECALL_ICON; +extern const wchar_t* IDB_LIST_EXPAND_CLOSE; +extern const wchar_t* IDB_LIST_EXPAND_CLOSE_PRESSED; +extern const wchar_t* IDB_LIST_EXPAND_OPENED; +extern const wchar_t* IDB_LIST_EXPAND_OPENED_PRESSED; +extern const wchar_t* IDB_BACK_HEADER_ITEM; +extern const wchar_t* IDB_BACK_HEADER_ITEM_PRESSED; +extern const wchar_t* IDB_CANCEL_NORMAL_FOOTER_ITEM; +extern const wchar_t* IDB_CANCEL_PRESS_FOOTER_ITEM; +extern const wchar_t* IDB_CANCEL_HEADER_ITEM; +extern const wchar_t* IDB_PROCESSING_ICONS; +extern const wchar_t* IDB_SELECT_CONTACT__ICON; +extern const wchar_t* IDB_SELECT_CONTACT_ICON_NORMAL; +extern const wchar_t* IDB_SELECT_CONTACT_ICON_PRESSED; +extern const wchar_t* IDB_SELECT_CONTACT_BG_ICON; +extern const wchar_t* IDB_SELECT_CONTACT_PRESS_BG_ICON; +extern const wchar_t* IDB_SETTINGS_SINGLE_LIST_ITEM_BG; +extern const wchar_t* IDB_SETTINGS_TOP_LIST_ITEM_BG; +extern const wchar_t* IDB_SETTINGS_CENTER_LIST_ITEM_BG; +extern const wchar_t* IDB_SETTINGS_BOTTOM_LIST_ITEM_BG; +//bitmap for dialer module +extern const wchar_t* IDB_DIALER_BTN_LINE2_ICON; +extern const wchar_t* IDB_DIALER_BTN_LINE3_ICON; +extern const wchar_t* IDB_DIALER_BTN_LINE4_ICON; +extern const wchar_t* IDB_DIALER_BTN_LINE5_ICON; +extern const wchar_t* IDB_DIALER_STAR_ICON ; +extern const wchar_t* IDB_DIALER_MUTE_ICON ; +extern const wchar_t* IDB_DIALER_VIDEOCALL_ICON ; +extern const wchar_t* IDB_DIALER_CALL_ICON ; +extern const wchar_t* IDB_DIALER_CLEAR_ICON ; +extern const wchar_t* IDB_DIALER_CALL_BG_ICON ; +extern const wchar_t* IDB_BTN_OPTION_BG_ICON ; +extern const wchar_t* IDB_BTN_OPTION_PRESS_BG_ICON; +extern const wchar_t* IDB_BTN_MORE_ICON ; +extern const wchar_t* IDB_BTN_MORE_PRESS_ICON ; +extern const wchar_t* IDB_POPUP_BUBBLE_ICON ; +extern const wchar_t* IDB_POPUP_BUBBLE_PRESS_ICON; +extern const wchar_t* IDB_POPUP_BUBBLE_UP_ICON ; +extern const wchar_t* IDB_POPUP_BUBBLE_UP_PRESS_ICON; +extern const wchar_t* IDB_DIALER_BTN_PRESS_ICON; +extern const wchar_t* IDB_VOICEMAIL_BTN_ICON; +extern const wchar_t* IDB_VOICEMAIL_BTN_PRESS_ICON; +//Added for latest Keypad changes +extern const wchar_t* IDB_KEYPAD_NUMBER_00ICON; +extern const wchar_t* IDB_KEYPAD_NUMBER_01ICON; +extern const wchar_t* IDB_KEYPAD_NUMBER_02ICON; +extern const wchar_t* IDB_KEYPAD_NUMBER_03ICON; +extern const wchar_t* IDB_KEYPAD_NUMBER_04ICON; +extern const wchar_t* IDB_KEYPAD_NUMBER_05ICON; +extern const wchar_t* IDB_KEYPAD_NUMBER_06ICON; +extern const wchar_t* IDB_KEYPAD_NUMBER_07ICON; +extern const wchar_t* IDB_KEYPAD_NUMBER_08ICON; +extern const wchar_t* IDB_KEYPAD_NUMBER_09ICON; +extern const wchar_t* IDB_KEYPAD_NUMBER_ASTERIKICON; +extern const wchar_t* IDB_KEYPAD_NUMBER_VOICEMAILICON; +extern const wchar_t* IDB_KEYPAD_NUMBER_MUTEICON; +extern const wchar_t* IDB_KEYPAD_NUMBER_SHARPICON; +//Keypad Press +extern const wchar_t* IDB_KEYPAD_PRESSICON; +//Keypad button Background +extern const wchar_t* IDB_KEYPAD_BGICON; +//Call 9 Patch +extern const wchar_t* IDB_KEYPAD_CALLDIM9PATCH; +extern const wchar_t* IDB_KEYPAD_CALLPRESS9PATCH; +//Clear 9 Patch +extern const wchar_t* IDB_KEYPAD_CLEARDIM9PATCH; +extern const wchar_t* IDB_KEYPAD_CLEARPRESS9PATCH; +//Display panel Background +extern const wchar_t* IDB_DISPLAYPANEL_BG; +//Call Button +extern const wchar_t* IDB_CALLBUTTON_BG; +//Clear button +extern const wchar_t* IDC_BUTTON_KEYPADCLEAR; +//Bitmap used in Call Log module +extern const wchar_t* IDB_CALLOG_LIST_BG; +extern const wchar_t* IDB_LOG_RECEIVEDCALL_ICON; +extern const wchar_t* IDB_LOG_DIALEDCALL_ICON; +extern const wchar_t* IDB_LOG_MISSEDCALL_ICON; +extern const wchar_t* IDB_LOG_BLOCKEDCALL_ICON; +extern const wchar_t* IDB_LOG_NO_CONTENT; +extern const wchar_t* IDB_CIRCLE_BUTTON_NORMAL; +extern const wchar_t* IDB_CIRCLE_BUTTON_PRESSED; +extern const wchar_t* IDB_LOG_DETAIL_CALL_ICON; +extern const wchar_t* IDB_LOG_DETAIL_CALL_PRESSED_ICON; +extern const wchar_t* IDB_LOG_DETAIL_MSG_ICON; +extern const wchar_t* IDB_LOG_DETAIL_MSG_PRESSED_ICON; +extern const wchar_t* IDB_LOG_CALL_ICON; +extern const wchar_t* IDB_LOG_MMS_ICON; +extern const wchar_t* IDB_LOG_SMS_ICON; +extern const wchar_t* IDB_LOG_EMAIL_ICON; +extern const wchar_t* IDB_LOG_VIDEO_ICON; +extern const wchar_t* IDB_GROUP_LOG_CALL_DELETE_ICON; +extern const wchar_t* IDB_LOG_MORE_ICON; +extern const wchar_t* IDB_LOG_MORE_PRESSED_ICON; + +//String messages +extern const wchar_t* IDS_DIALER_MOBILE_STR; +extern const wchar_t* IDS_DIALER_SPEEDDIAL_POPUP_MSG; +extern const wchar_t* IDS_DIALER_SPEEDDIAL_POPUP_TITLE_MSG; +extern const wchar_t* IDS_DIALER_VOICE_POPUP_MSG; +extern const wchar_t* IDS_DIALER_VOICE_POPUP_TITLE_MSG; +extern const wchar_t* IDS_SPEEDDIAL_POP_YES_BTN_STRING; +extern const wchar_t* IDS_SPEEDDIAL_POP_NO_BTN_STRING; +extern const wchar_t* IDS_DIALER_MENU_ITEM_SEND_MSG; +extern const wchar_t* IDS_DIALER_MENU_ITEM_ADD_CONTACT; +extern const wchar_t* IDS_DIALER_MENU_ITEM_SPEED_DIAL; +extern const wchar_t* IDS_DIALER_MENU_ITEM_ADD_PAUSE; +extern const wchar_t* IDS_DIALER_MENU_ITEM_ADD_WAIT; +extern const wchar_t* IDS_DIALER_MENU_ITEM_EXIT; +extern const wchar_t* IDS_DIALER_MENU_ITEM_BACK; +extern const wchar_t* IDS_SPEED_DIAL_SEARCH_KEY; +extern const wchar_t* IDS_VOICE_CALL_BTN_NAME; +extern const wchar_t* IDS_VIDEO_CALL_BTN_NAME; +extern const wchar_t* IDS_MSG_BTN_NAME; +extern const wchar_t* IDS_PEOPLE_STR; +extern const wchar_t* IDS_MGR_CONF_CALL_LIST_STR; +extern const wchar_t* IDS_LOG_CONTEXT_CALL; +extern const wchar_t* IDS_LOG_CONTEXT_MESSAGE; +extern const wchar_t* IDS_LOG_CONTEXT_VIDEOCALL; +extern const wchar_t* IDS_LOG_CONTEXT_DELETE; +extern const wchar_t* IDS_AM_TIME; +extern const wchar_t* IDS_PM_TIME; +extern const wchar_t* IDS_CALLLOG_NO_NAME; +extern const wchar_t* IDS_CALLLOG_NO_NUMBER; +extern const wchar_t* IDS_CALLLOG_RECEIVED; +extern const wchar_t* IDS_CALLLOG_MISSED; +extern const wchar_t* IDS_CALLLOG_OUTGOING; +extern const wchar_t* IDS_CALLLOG_RECEIVED_MSG; +extern const wchar_t* IDS_CALLLOG_SENT_MSG; +extern const wchar_t* IDS_CALLLOG_REJECTED; +extern const wchar_t* IDS_CALLLOG_DELETE_FOOTER; +extern const wchar_t* IDS_CALLLOG_CANCEL_FOOTER; +extern const wchar_t* IDS_EMERGENCY_CALL; +extern const wchar_t* IDS_SELECT_CALL_LOG ; +extern const wchar_t* IDS_SELECTED_ITEM_STRING; +extern const wchar_t* IDS_SELECT_NUMBER; +extern const wchar_t* IDS_NUMBER_SELECTED; +extern const wchar_t* IDS_NUMBERS_SELECTED; +extern const wchar_t* IDS_SELECT_MESSAGE; +extern const wchar_t* IDS_MESSAGE_SELECTED; +extern const wchar_t* IDS_MESSAGES_SELECTED; +extern const wchar_t* IDS_NO_LOGS; +extern const wchar_t* IDS_FLIGHT_MODE_ON; +extern const wchar_t* IDS_SETTING_WRONG_PASSWORD_TEXT; +extern const wchar_t* IDS_SETTING_SYSTEM_FAILURE_TEXT; +extern const wchar_t* IDS_ADD_TO_CONTACTS; +extern const wchar_t* IDS_CANCEL; +extern const wchar_t* IDS_LOGS_TODAY; +extern const wchar_t* IDS_LOGS_YESTERDAY; +extern const wchar_t* IDS_DELETING_CALL_LOGS; +extern const wchar_t* IDS_CANCEL_DELETING_CALL_LOGS; +extern const wchar_t* IDS_CONTEXTMENU_ITEM_VIEWBY; +extern const wchar_t* IDS_CONTEXTMENU_ITEM_DETAILS; +extern const wchar_t* IDS_CONTEXTMENU_ITEM_BLOCK; +extern const wchar_t* IDS_REJECT_MESSAGE_CREATE; +extern const wchar_t* IDS_DELETE_CONFORMATION_STRING; +extern const wchar_t* IDS_DIALER_VOICE_MAIL_POPUP_MSG; +extern const wchar_t* IDS_LOW_MEMORY_MSG; +extern const wchar_t* IDS_LOW_MEMORY_MSG_TITLE; +extern const wchar_t* IDS_DELETE_YES; +extern const wchar_t* IDS_DELETE_NO; + +//resource string messages for settings module +extern const wchar_t* IDS_BLANK_LANGUAGE; +extern const wchar_t* IDS_BLANK_FONTSIZE; +extern const wchar_t* IDS_KEY_LANGUAGE_CHANGE; +extern const wchar_t* IDS_KEY_FONTSIZE_CHANGE; +extern const wchar_t* IDS_ADD_BTN_STRING; +extern const wchar_t* IDS_SETTING_REJECT_MESSAGE_EMPTY; +extern const wchar_t* IDS_DELETE_BTN_STRING; +extern const wchar_t* IDS_CANCEL_BTN_STRING; +extern const wchar_t* IDS_REMOVE_CONTACT; +extern const wchar_t* IDS_DELETE_NUMBER_TITLE; +extern const wchar_t* IDS_DELETE_MSGS_TITLE; +extern const wchar_t* IDS_SELECT_ALL_LIST_ITEM_STRING; +extern const wchar_t* IDS_DEFAULT_REJECT_ITEM_STRING; +extern const wchar_t* IDS_SETTINGS_MATCHCRITERIA_STRING; +extern const wchar_t* IDS_CALLERID_BYNETWORK_STRING; +extern const wchar_t* IDS_CALLERID_SHOW_STRING; +extern const wchar_t* IDS_CALLERID_HIDE_STRING; +extern const wchar_t* IDS_SETTING_CALLALERT_OFF_STRING; +extern const wchar_t* IDS_SETTING_CALLALERT_SOUND_STRING; +extern const wchar_t* IDS_SETTING_CALLALERT_VIBRATE_STRING; +extern const wchar_t* IDS_SETTING_BARRING_STRING; +extern const wchar_t* IDS_SETTING_WAITING_STRING; +extern const wchar_t* IDS_SETTING_WAITING_HLP_STRING; +extern const wchar_t* IDS_SETTING_STATUS_TONES_STRING; +extern const wchar_t* IDS_SETTING_STATUS_TONES_HLP_STRING; +extern const wchar_t* IDS_SETTING_AUTO_AREACODE_STRING; +extern const wchar_t* IDS_SETTING_AUTO_AREACODE_HLP_STRING; +extern const wchar_t* IDS_SETTING_REJECT_STRING; +extern const wchar_t* IDS_SETTING_REJECT_HLP_STRING; +extern const wchar_t* IDS_SETTING_REJECT_MSG_STRING; +extern const wchar_t* IDS_SETTING_REJECT_MSG_HLP_STRING; +extern const wchar_t* IDS_SETTING_SPEEDDIAL_STRING; +extern const wchar_t* IDS_SETTING_FORWARDING_STRING; +extern const wchar_t* IDS_SETTING_MORE_MAIN_STRING; +extern const wchar_t* IDS_SETTING_MORE_SUB_STRING; +extern const wchar_t* IDS_SETTING_WAITING_TIME_STRING; +extern const wchar_t* IDS_SETTING_WAIT_INTERVAL_STRING; +extern const wchar_t* IDS_SETTING_CONNECTTONE_STRING; +extern const wchar_t* IDS_SETTING_CONNECTTONE_HLP_STRING; +extern const wchar_t* IDS_SETTING_REMINDERS_STRING; +extern const wchar_t* IDS_SETTING_REMINDERS_HLP_STRING; +extern const wchar_t* IDS_SETTING_ENDTONE_STRING; +extern const wchar_t* IDS_SETTING_ENDTONE_HLP_STRING; +extern const wchar_t* IDS_SETTING_FORWARD_CALLTYPE_TITLE; +extern const wchar_t* IDS_SETTING_BARRING_CALLTYPE_TITLE; +extern const wchar_t* IDS_SETTING_VOICEFORWARD_OPTIONS_TITLE; +extern const wchar_t* IDS_SETTING_VOICEBARRING_OPTIONS_TITLE; +extern const wchar_t* IDS_SETTING_WAITING_OPTIONS_TITLE; +extern const wchar_t* IDS_SETTING_CALLTYPE_VOICE_STRING; +extern const wchar_t* IDS_SETTING_VOICEFORWARD_ALWAYS; +extern const wchar_t* IDS_SETTING_VOICEFORWARD_IFBUSY; +extern const wchar_t* IDS_SETTING_VOICEFORWARD_NOREPLY; +extern const wchar_t* IDS_SETTING_VOICEFORWARD_OUTOFREACH; +extern const wchar_t* IDS_SETTING_DEACTIVATE_STATUS; +extern const wchar_t* IDS_SETTING_VOICEBARRING_OUTGOING; +extern const wchar_t* IDS_SETTING_VOICEBARRING_INTERNATIONAL; +extern const wchar_t* IDS_SETTING_VOICEBARRING_EXCEPTHOME; +extern const wchar_t* IDS_SETTING_VOICEBARRING_INCOMING; +extern const wchar_t* IDS_SETTING_VOICEBARRING_WHENROAMING; +extern const wchar_t* IDS_SETTING_CALL_WAITING_OPTIONS; +extern const wchar_t* IDS_MATCHCRITERIA_EXACT; +extern const wchar_t* IDS_MATCHCRITERIA_START; +extern const wchar_t* IDS_MATCHCRITERIA_END; +extern const wchar_t* IDS_MATCHCRITERIA_INCLUDE; +extern const wchar_t* IDS_SETTING_CALLERID_MAIN_STR; +extern const wchar_t* IDS_SETTING_CALLERID_SUB_STR; +extern const wchar_t* IDS_SETTING_CALL_ALERT_MAIN_STR; +extern const wchar_t* IDS_SETTING_CALL_ALERT_SUB_STR; +extern const wchar_t* IDS_SETTING_SAVE_HEADER_ITEM; +extern const wchar_t* IDS_SETTING_CONTACT_BUTTON; +extern const wchar_t* IDS_SETTING_DONE_HEADER_ITEM; +extern const wchar_t* IDS_AREA_CODE_OFF_STR; +extern const wchar_t* IDS_DUPLICATE_REJECT_MSG_ERROR_STRING; +extern const wchar_t* IDS_SETTING_CALL_ANSWER_MSG_HLP_STRING; +extern const wchar_t* IDS_SETTING_CALL_ACCESSORY_MSG_HLP_STRING; +extern const wchar_t* IDS_SETTING_CALL_ANSWERING_STRING; +extern const wchar_t* IDS_SETTING_CALL_ACCESSORY_STRING; +extern const wchar_t* IDS_SETTING_ANSWER_CALL_KEY_HLP_STRING; +extern const wchar_t* IDS_SETTING_END_CALL_KEY_HLP_STRING; +extern const wchar_t* IDS_SETTING_ANSWER_CALL_KEY_STRING; +extern const wchar_t* IDS_SETTING_END_CALL_KEY_STRING; +extern const wchar_t* IDS_SETTING_BT_SETTINGS_HEADING_STRING; +extern const wchar_t* IDS_SETTING_OUTCALL_CONDITION_HLP_STRING; +extern const wchar_t* IDS_SETTING_OUTCALL_CONDITION_MAIN_STRING; +extern const wchar_t* IDS_SETTING_OUTCALL_LOCKDEVICE_STRING; +extern const wchar_t* IDS_SETTING_OUTCALL_UNLOCKDEVICE_STRING; +extern const wchar_t* IDS_VIEWBY_POPUP_TITLE_STRING; +extern const wchar_t* IDS_BLOCK_POPUP_TITLE_STRING; +extern const wchar_t* IDS_VIEWBY_ALL_LOGS_CHKBTN_STRING; +extern const wchar_t* IDS_VIEWBY_MISSED_CALLS_CHKBTN_STRING; +extern const wchar_t* IDS_VIEWBY_DIALED_CALLS_CHKBTN_STRING; +extern const wchar_t* IDS_VIEWBY_RECEIVED_CALLS_CHKBTN_STRING; +extern const wchar_t* IDS_VIEWBY_REJECTED_CALLS_CHKBTN_STRING; +extern const wchar_t* IDS_BLOCK_CALL_CHKBTN_STRING; +extern const wchar_t* IDS_BLOCK_MESSAGE_CHKBTN_STRING; +extern const wchar_t* IDS_VIEWBY_CANCEL_BTN_STRING; +extern const wchar_t* IDS_BLOCK_OK_BTN_STRING; +extern const wchar_t* IDS_BLOCK_CANCEL_BTN_STRING; +extern const wchar_t* IDS_BLOCK_CALL_INFO_STRING; +extern const wchar_t* IDS_BLOCK_MSG_INFO_STRING; +extern const wchar_t* IDS_BLOCK_CALL_MSG_INFO_STRING; +extern const wchar_t* IDS_VOICE_MAIL_DEFAULT_STRING; +extern const wchar_t* IDS_SETTING_ADD_NUMBER_TITLE; +extern const wchar_t* IDS_SETTING_AUTO_AREA_CODE_TITLE; +extern const wchar_t* IDS_SETTING_ADD_REJECT_MSG_TITLE; +extern const wchar_t* IDS_SETTING_SET_BARRING_PWD_TITLE; +extern const wchar_t* IDS_SETTING_EDIT_REJECT_MSG_TITLE; +extern const wchar_t* IDS_SPEED_DIAL_INVALID_CONTACT; +extern const wchar_t* IDS_PHONE; +extern const wchar_t* IDS_SPEED_DIAL_INVALID_CONTACT_OK; +extern const wchar_t* IDS_SILENT_MODE_ENABLED; +extern const wchar_t* IDS_SILENT_MODE_DISABLED; +extern const wchar_t* IDS_INVALID_CONTACT_STRING; + +//control name +extern const wchar_t* IDC_GROUPEDTABLEVIEW; +extern const wchar_t* IDC_LISTVIEW; +extern const wchar_t* IDC_NUMBER_EDITFIELD; +extern const wchar_t* IDC_SELECT_CONTACT_BUTTON; +extern const wchar_t* IDC_FOWARDING_NUMBER_EDITFIELD; +extern const wchar_t* IDC_VOICEMAIL_BUTTON; +extern const wchar_t* IDC_REJECTMSG_EDITFIELD; +extern const wchar_t* IDC_EDITFIELD; +extern const wchar_t* IDC_SELECTEDOPTION_SUBTEXT_LABEL; +extern const wchar_t* IDC_MATCHCRITERIA_MAINTEXT_LABEL; +extern const wchar_t* IDC_ANIMATION_CONTROL; +extern const wchar_t* IDC_TABLEITEM_BG_LABEL; +extern const wchar_t* IDC_ENTER_NUMBER_LABEL; +//Panel +extern const wchar_t* PANEL_DIALER; +extern const wchar_t* PANEL_LOGS; +//Corresponding Settings form name +extern const wchar_t* IDL_FORM_SETTINGS_PREFIX; +extern const wchar_t* IDL_FORM_MAIN_SETTING_MENU; +extern const wchar_t* IDL_FORM_CALL_REJECTLIST_MENU; +extern const wchar_t* IDL_FORM_CALL_REJECTMSGS_MENU; +extern const wchar_t* IDL_FORM_SPEED_DIAL; +extern const wchar_t* IDL_FORM_MORE_OPTIONS; +extern const wchar_t* IDL_FORM_CALL_STATUSTONES; +extern const wchar_t* IDL_FORM_CALLTYPE_FORWARD; +extern const wchar_t* IDL_FORM_CALL_FORWARD_OPTIONS; +extern const wchar_t* IDL_FORM_CALLTYPE_BARRING; +extern const wchar_t* IDL_FORM_CALL_BARRING_OPTIONS; +extern const wchar_t* IDL_FORM_CALL_WAITING_OPTIONS; +extern const wchar_t* IDL_FORM_ADD_REJECT_NUMBER; +extern const wchar_t* IDL_FORM_AUTO_AREA_CODE; +extern const wchar_t* IDL_FORM_ADD_REJECT_MSG; +extern const wchar_t* IDL_FORM_EDIT_REJECT_MSG; +extern const wchar_t* IDL_FORM_FORWARD_TO_NUMBER; +extern const wchar_t* IDL_FORM_NOREPLY_FORWARD_TO_NUMBER; +extern const wchar_t* IDL_FORM_SCENE_SET_BARRING_PWD; +extern const wchar_t* IDL_FORM_DEL_NUMBER; +extern const wchar_t* IDL_FORM_DEL_MESSAGE; +extern const wchar_t* IDL_FORM_CALL_ANSWER_OPTIONS; +extern const wchar_t* IDL_FORM_CALL_ACCESSORY_OPTIONS; +//Dialer & Call Log Form names +extern const wchar_t* IDL_FORM_DIAL_APP; +extern const wchar_t* IDL_FORM_CALL_LOG_DETAIL; +extern const wchar_t* IDL_FORM_RESTRICTED_CALL_LOG_DETAIL; +extern const wchar_t* IDL_DIALER_KEYPAD_PANEL; +extern const wchar_t* IDL_FORM_EMERGENCY_DIAL; +// Dialer LastRow Keys +extern const wchar_t* IDC_PANEL_LASTROW; +extern const wchar_t* IDC_BUTTON_CALL; +extern const wchar_t* IDC_BUTTON10; +//Constants - Settings Scene name +extern const wchar_t* IDSCN_SCENE_MAIN_SETTING_MENU; +extern const wchar_t* IDSCN_SCENE_CALL_REJECTLIST_MENU; +extern const wchar_t* IDSCN_SCENE_CALL_REJECTMSGS_MENU; +extern const wchar_t* IDSCN_SCENE_SPEED_DIAL; +extern const wchar_t* IDSCN_SCENE_MORE_OPTIONS; +extern const wchar_t* IDSCN_SCENE_CALL_STATUSTONES; +extern const wchar_t* IDSCN_SCENE_CALLTYPE_FORWARD; +extern const wchar_t* IDSCN_SCENE_CALL_FORWARD_OPTIONS; +extern const wchar_t* IDSCN_SCENE_CALLTYPE_BARRING; +extern const wchar_t* IDSCN_SCENE_CALL_BARRING_OPTIONS; +extern const wchar_t* IDSCN_SCENE_CALL_WAITING_OPTIONS; +extern const wchar_t* IDSCN_SCENE_ADD_REJECT_NUMBER; +extern const wchar_t* IDSCN_SCENE_AUTO_AREA_CODE; +extern const wchar_t* IDSCN_SCENE_ADD_REJECT_MSG; +extern const wchar_t* IDSCN_SCENE_EDIT_REJECT_MSG; +extern const wchar_t* IDSCN_SCENE_FORWARD_TO_NUMBER; +extern const wchar_t* IDSCN_SCENE_NOREPLY_FORWARD_TO_NUMBER; +extern const wchar_t* IDSCN_SCENE_SET_BARRING_PWD; +extern const wchar_t* IDSCN_SCENE_DEL_NUMBER; +extern const wchar_t* IDSCN_SCENE_DEL_MESSAGE; +extern const wchar_t* IDSCN_SCENE_CALL_ANSWER_OPTIONS; +extern const wchar_t* IDSCN_SCENE_CALL_ACCESSORY_OPTIONS; +//Dialer & Call Log Scene names +extern const wchar_t* IDSCN_DIALER; +extern const wchar_t* IDSCN_CALL_LOG; +extern const wchar_t* IDSCN_CALL_LOG_DETAILS; +extern const wchar_t* IDSCN_RESTRICTED_CALL_LOG_DETAILS; +extern const wchar_t* IDSCN_EMERGENCY_DIAL; + +extern const wchar_t* TYPE_VIDEO; +extern const wchar_t* TYPE_VOICE; +extern const wchar_t* TYPE_SMS; +extern const wchar_t* TEL; +extern const wchar_t* TO; +//Contacts app control parameters +extern const wchar_t* CONTACTS_VIEW_TYPE; +extern const wchar_t* CONTACTS_VIEW_TYPE_CONTACT; +extern const wchar_t* CONTACTS_ID_KEY; + +extern const wchar_t* OPERATION_ID_PICK; +extern const wchar_t* OPERATION_ID_VIEW; +extern const wchar_t* OPERATION_ID_ADD; +extern const wchar_t* OPERATION_ID_EDIT; +extern const wchar_t* OPERATION_ID_CONFIGURE; +extern const wchar_t* OPERATION_ID_CAPTURE; +extern const wchar_t* OPERATION_ID_CALL; +extern const wchar_t* OPERATION_ID_COMPOSE; +extern const wchar_t* OPERATION_ID_DIAL; +extern const wchar_t* OPERATION_ID_ADD_CALL; + +extern const wchar_t* PROVIDER_ID_CAMERA; +extern const wchar_t* PROVIDER_ID_GALLERY; +extern const wchar_t* PROVIDER_ID_CALL; +extern const wchar_t* PROVIDER_ID_MESSAGE; +extern const wchar_t* PROVIDER_ID_EMAIL; +extern const wchar_t* PROVIDER_ID_MEDIA; +extern const wchar_t* PROVIDER_ID_CONTACTS; + +extern const wchar_t* RETURN_TYPE_PHONE; +extern const wchar_t* RETURN_TYPE_EMAIL; +extern const wchar_t* RETURN_TYPE_CONTACT_ID; +extern const wchar_t* RETURN_TYPE_ITEM_ID; +extern const wchar_t* CONTACT_KEY_ITEM_ID; + +extern const wchar_t* DELIMITER; +extern const wchar_t* LAUNCHTYPE; +extern const wchar_t* PARAM_ORIGIN_MT; +extern const wchar_t* CALL_HANDLE; +extern const wchar_t* CONTACT_NUMBER; +extern const wchar_t* PARAM_CALL_TYPE; +extern const wchar_t* PARAM_CALL_VALUE_VOICE; +extern const wchar_t* PARAM_PHONE_NUMBER; +extern const wchar_t* INPUT_TYPE_PHONE; +extern const wchar_t* INPUT_TYPE_MAIL; +extern const wchar_t* CONTACT_KEY_ITEM_TYPE ; +extern const wchar_t* ITEM_TYPE_CONTACT ; +extern const wchar_t* ITEM_TYPE_PERSON; +extern const wchar_t* MESSAGE_TYPE; +extern const wchar_t* MESSAGE_SMS_TYPE; +extern const wchar_t* MESSAGE_TEXT; +extern const wchar_t* MESSAGE_TO; + +extern const wchar_t* SELECTION_MODE; +extern const wchar_t* RETURN_TYPE; +extern const wchar_t* SELECTION_MODE_SINGLE; +extern const wchar_t* RETURN_KEY_VALUE; + +//Settings Strings +extern const wchar_t* SETTINGS_FLIGHT_MODE_STR; +extern const wchar_t* SETTING_INFO_KEY_FONT_SIZE; +extern const wchar_t* SETTING_INFO_KEY_TIME_FORMAT; +extern const wchar_t* SETTING_INFO_KEY_DATE_CHANGE; +extern const wchar_t* SETTING_INFO_KEY_CONTACTS_ORDER; + +//Voice Call- Common Command Ids +enum CommandIds +{ + IDA_ADD_CALL = DIAL_CMD_TOTAL_COUNT+1, + IDA_OPEN_CONTACTS, + IDA_VOICE_CALL, + IDA_VIDEO_CALL, + IDA_MESSAGE, + IDA_ADD_TO_CONTACTS, //add current contact to AddressBook + IDA_BACK_EVENT, + IDA_MORE_OPTIONS_MENU, + IDA_CALL_WAITING_OPTION_CHECKED, + IDA_CALL_WAITING_OPTION_UNCHECKED, + IDA_TOTAL_CMD_IDS, +}; + +enum SoundMode +{ + SOUND_MODE_VOICE = 0, + SOUND_MODE_RINGTONE, + SOUND_MODE_MEDIA +}; + +//Type of the call (incoming, outgoing etc for call log database +enum CallLogType +{ + CALL_LOG_TYPE_ALL, + + CALL_LOG_TYPE_VOICE_INCOMING, + CALL_LOG_TYPE_VOICE_OUTGOING, + CALL_LOG_TYPE_VOICE_MISSED, + CALL_LOG_TYPE_VOICE_MISSED_UNSEEN, + CALL_LOG_TYPE_VOICE_REJECTED, + CALL_LOG_TYPE_VOICE_BLOCKED, + + CALL_LOG_TYPE_VIDEO_INCOMING, + CALL_LOG_TYPE_VIDEO_OUTGOING, + CALL_LOG_TYPE_VIDEO_MISSED, + CALL_LOG_TYPE_VIDEO_REJECTED, + CALL_LOG_TYPE_VIDEO_BLOCKED, + + CALL_LOG_TYPE_SMS_INCOMING, + CALL_LOG_TYPE_SMS_OUTGOING, + CALL_LOG_TYPE_SMS_BLOCKED, + + CALL_LOG_TYPE_MMS_INCOMING, + CALL_LOG_TYPE_MMS_OUTGOING, + CALL_LOG_TYPE_MMS_BLOCKED, + + CALL_LOG_TYPE_EMAIL_INCOMING, + CALL_LOG_TYPE_EMAIL_OUTGOING, + CALL_LOG_TYPE_MAX, + +}; + +enum DialerState +{ + DIALER_STATE_FIRST_SCENE = 0, + DIALER_STATE_NORMAL_APPCONTROL, + DIALER_STATE_EMERGENCY_APPCONTROL, + DIALER_STATE_ADD_CALL_APPCONTROL, +}; + +//Error code to handle error scenarios +enum ErrorCodes +{ + ERROR_NONE, + ERROR_INVALID_INPUT, + ERROR_DIAL_FAILED, + ERROR_INVALID_NUMBER, + ERROR_REJECT_FAILED, + ERROR_JOIN_FAILED, + ERROR_SWAP_FAILED, + ERROR_END_CALL_FAILED, + ERROR_END_FROM_CONFERENCE_FAILED, + ERROR_SPLIT_FROM_CONFERENCE_FAILED, + ERROR_CODE_SIM_INITIALIZATION_FAILED, + ERROR_NOT_EMERGENCY_NUM, + ERROR_TAPI_INIT_FAILED, + ERROR_TAPI_ERROR, + ERROR_BARRING_PWD_TOO_LONG, + ERROR_FLIGHT_MODE_SET, + ERROR_SYSTEM_FAILURE, + ERROR_WRONG_BARRING_PASSWORD, + ERROR_GENERAL, +}; + +enum DialerRequestType +{ + REQUEST_SHOW_SUGGESTION, + REQUEST_SHOW_ADD_TO_CONTACTS, + REQUEST_SHOW_SPEED_DIAL_POPUP, + REQUEST_SHOW_VOICE_MAIL_POPUP, + REQUEST_CALL_SPEED_DIAL_NUM, +}; + +enum LogRequestType +{ + REQUEST_CHANGE_EDIT_MODE, + REQUEST_CHANGE_VIEWBY, + REQUEST_CHANGE_BLOCK, +}; + +enum IncomingCallFormRequestType +{ + REQUEST_ITEM_SELECTED, +}; + +enum UpdateTableView +{ + REQUEST_UPDATE_TABLE, +}; + +//Action Ids for Settings module & Speed dial +enum ActionId +{ + IDA_VOICEMAIL = 1, + IDA_SELECT_PHOTO2, + IDA_SELECT_PHOTO3, + IDA_SELECT_PHOTO4, + IDA_SELECT_PHOTO5, + IDA_SELECT_PHOTO6, + IDA_SELECT_PHOTO7, + IDA_SELECT_PHOTO8, + IDA_SELECT_PHOTO9, + IDA_SELECT_CONTACT, +}; + +enum FooterActionId +{ + IDA_ADD_FOOTER_ITEMID = IDA_SELECT_CONTACT + 1, + IDA_DELETE_FOOTER_ITEMID, + IDA_CANCEL_FOOTER_ITEMID, + IDA_SAVE_FOOTER_ITEMID, + IDA_POPUP_INVALID_OK, + IDA_NOACTION_ITEMID, +}; + +enum HeaderActionId +{ + IDA_SAVE_HEADER_ITEMID = IDA_NOACTION_ITEMID + 1, + IDA_CANCEL_HEADER_ITEMID, +}; + +enum PopupActionId +{ + IDA_BUTTON_CLOSE_SPEED_DIAL_POPUP = IDA_CANCEL_HEADER_ITEMID + 1, + IDA_UPDATE_SPEED_DIAL, + IDA_REMOVE_SPEED_DIAL, +}; +enum CallForwardCondition +{ + CALL_FORWARD_ALL, /* Forward All Calls */ + CALL_FORWARD_BUSY, /* Forward if Busy */ + CALL_FORWARD_NO_REPLY, /* Forward if No Reply */ + CALL_FORWARD_NOT_REACHABLE /* Forward if Not Reachable */ +}; + +enum CallBarringType +{ + CALL_BARRING_ALL_OUTGOING, /* Barring All Outgoing Calls */ + CALL_BARRING_INTERNATIONAL_OUTGOING, /* Barring Outgoing International Calls */ + CALL_BARRING_INTERNATIONAL_EXCEPT_HOME, /* Barring Outgoing International Calls except to Home Country */ + CALL_BARRING_ALL_INCOMING, /* Barring All Incoming Calls */ + CALL_BARRING_INCOMING_ROAMING /* Barring Incoming Calls when roam*/ +}; + +enum CallLineIdentity +{ + CALL_LINE_IDENTITY_DEFAULT = 0, /**< Calling line identity will be sent. Based on network setting, Line identity will presented to the called party. */ + CALL_LINE_IDENTITY_SHOW, /**< Display calling line identity */ + CALL_LINE_IDENTITY_HIDE /**< Hide the display of Calling line identity */ +}; + +enum CallRejectMatchCondition +{ + CALL_REJECT_MATCH_EXACTLY = 1, + CALL_REJECT_MATCH_START, + CALL_REJECT_MATCH_END, + CALL_REJECT_MATCH_INCLUDE, +}; + +enum CallRejectUpdateField +{ + CALL_REJECT_UPDATE_RULE = 1, + CALL_REJECT_UPDATE_NUMBER, + CALL_REJECT_UPDATE_ACTIVATE +}; + +enum CallAlertStatus +{ + CALL_ALERT_OFF = 0, + CALL_ALERT_SOUND, + CALL_ALERT_VIBRATE +}; + +enum CallState +{ + /** No call connected */ + CALL_STATE_CALL_OFF = 0, + /** Voice call is connecting */ + CALL_STATE_CALL_VOICE_CONNECTING, + /** Voice call is connected */ + CALL_STATE_CALL_VOICE_ACTIVE, + /** Video call is connecting */ + CALL_STATE_CALL_VIDEO_CONNECTING, + /** Video call is connecting */ + CALL_STATE_CALL_VIDEO_ACTIVE, + + CALL_STATE_MAX + +}; + +//Constants +extern const wchar_t* IDI_KEY2_TXT; +extern const wchar_t* IDI_KEY3_TXT; +extern const wchar_t* IDI_KEY4_TXT; +extern const wchar_t* IDI_KEY5_TXT; +extern const wchar_t* IDI_KEY6_TXT; +extern const wchar_t* IDI_KEY7_TXT; +extern const wchar_t* IDI_KEY8_TXT; +extern const wchar_t* IDI_KEY9_TXT; + +//Settings UI contants +// Colors used in List views // +extern const unsigned int COLOR_GROUP_ITEM_BG; +extern const unsigned int COLOR_LIST_MENU_ITEM; +extern const unsigned int COLOR_SECONDDEPTH_ITEM_BG; +extern const unsigned int COLOR_HELP_ITEM_BG; +extern const unsigned int COLOR_NORMAL_MAIN_TXT; +extern const unsigned int COLOR_NORMAL_SUB_TXT; +extern const unsigned int COLOR_NORMAL_SELECTED_OPTION_SUB_TXT; +extern const unsigned int COLOR_PRESS_SUB_TXT; +extern const unsigned int COLOR_PRESS_MAIN_TXT; +extern const unsigned int COLOR_HELP_TXT; +extern const unsigned int COLOR_LEFT_HEADER_EXPAND_ITEMS; +//Main List Option text +extern const unsigned int COLOR_MAIN_TXT; +extern const unsigned int COLOR_REJECT_MESSAGE_TXT; +//Main List text +extern const int NORMAL_FONT_SIZE_MAIN_TXT; +extern const int GIANT_FONT_SIZE_MAIN_TXT; +extern const int HUGE_FONT_SIZE_MAIN_TXT; +extern const int LARGE_FONT_SIZE_MAIN_TXT; +extern const int SMALL_FONT_SIZE_MAIN_TXT; +extern const int FONT_SIZE_SUB_TXT; + +extern const int NORMAL_ITEMRECT_SIZE; +extern const int GIANT_ITEMRECT_SIZE; +extern const int HUGE_ITEMRECT_SIZE; +extern const int LARGE_ITEMRECT_SIZE; +extern const int SMALL_ITEMRECT_SIZE; + +extern const int NORMAL_MAINTEXTRECT_SIZE; +extern const int GIANT_MAINTEXTRECT_SIZE; +extern const int HUGE_MAINTEXTRECT_SIZE; +extern const int LARGE_MAINTEXTRECT_SIZE; +extern const int SMALL_MAINTEXTRECT_SIZE; + +extern const int NORMAL_SUBTEXTRECT_SIZE; +extern const int GIANT_SUBTEXTRECT_SIZE; +extern const int HUGE_SUBTEXTRECT_SIZE; +extern const int LARGE_SUBTEXTRECT_SIZE; +extern const int SMALL_SUBTEXTRECT_SIZE; + +//Help text +extern const int FONT_SIZE_HELP_TXT; +extern const int W_HDR_FTR_ICON; +extern const int H_HDR_FTR_ICON; +//Processing Animation constants +extern const int IDI_ANIM_DURATION; +extern const int IDI_ANIM_PROGRESS_COUNT; +//Delete List +extern const unsigned int COLOR_NORMAL_ITEM_BG; +extern const unsigned int COLOR_PRESS_ITEM_BG; +extern const unsigned int COLOR_SELECTALL_ITEM_BG; + +// Dimensions used in Settings List views // +// menu item height +extern const int H_LIST_HIDDENGROUP_ITEM; +extern const int H_LIST_NORMAL_MENU_ITEM; +extern const int H_LIST_DROPDOWN_MENU_ITEM; +extern const int H_LIST_MENU_SINGLELINE_HLPTXT_ITEM; +extern const int H_LIST_MENU_TWOLINE_HLPTXT_ITEM; +extern const int H_EDITOR_LIST_ITEM; +//text item height +extern const int H_LIST_NORMAL_TXT_ITEM; +extern const int H_LIST_SUB_TXT_ITEM; +//Two line text for Drop down menu item +extern const int H_LIST_DROPDOWN_TXT_ITEM; +//single line text +extern const int X_LIST_MENU_TEXT_ITEM; +extern const int Y_LIST_MENU_TEXT_ITEM; +//Help text +extern const int X_LIST_MENU_HLPTXT_ITEM; +extern const int Y_LIST_MENU_HLPTXT_ITEM; +//custom Item for Bg line +extern const int Y_CUSTOM_BG_ELEMENT; +//Position for delete list item +extern const int X_DEL_LIST_ELEMENT; +extern const int Y_DEL_LIST_ELEMENT; +extern const int Y_POS_TABLEVIEW_LS; +extern const int Y_POS_TABLEVIEW_PR; + +// Dimensions for icons // +//Expand icon for DropDown Menu Items +extern const int W_EXPAND_ICON; +extern const int H_EXPAND_ICON; +extern const int W_SLIDER_ICON; +extern const int H_SLIDER_ICON; +extern const int W_ANIMATION_MARGIN; +//contact icon for Add Rejected Number view +extern const int W_CONTACT_ICON; +extern const int H_CONTACT_ICON; +//Dimensions for custom bg line +extern const int W_CUSTOM_BG_ELEMENT; +//Item Width for delete list +extern const int W_DELETE_LIST_ITEM; +//Width of Blue Header Rectangle for expandable group items +extern const int W_LEFT_HEADER_EXPAND_ITEMS; + +#endif /* PHNTYPES_H_ */ diff --git a/inc/PhnUnknownLogsDetailForm.h b/inc/PhnUnknownLogsDetailForm.h new file mode 100644 index 0000000..1508c38 --- /dev/null +++ b/inc/PhnUnknownLogsDetailForm.h @@ -0,0 +1,167 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnUnknownLogsDetailForm.h + * @brief This is the header file for the %UnknownLogsDetailForm class. + * + * This header file contains the declarations for %UnknownLogsDetailForm class. + */ +#ifndef _PHN_UNKNOWN_LOGS_DETAIL_FORM_H_ +#define _PHN_UNKNOWN_LOGS_DETAIL_FORM_H_ + +#include +#include +#include +#include +#include "PhnCallLogPresentationModel.h" +#include "PhnIAppStateChangeListner.h" + +using namespace Tizen::Base::Collection; +using namespace Tizen::Base; +using namespace Tizen::Ui; +using namespace Tizen::Ui::Controls; + +class CallLogDetails; + +/** + * @class UnknownLogsDetailForm + * @brief This class presents a form based UI for call log details scene. + * + */ +class UnknownLogsDetailForm + : public Tizen::Ui::Controls::Form + , public Tizen::Ui::IActionEventListener + , public ICalllogChangeListener + , public Tizen::Ui::Controls::IFormBackEventListener + , public Tizen::Ui::Controls::IGroupedListViewItemProvider + , public Tizen::Ui::IPropagatedKeyEventListener + , public Tizen::Ui::Scenes::ISceneEventListener + , public Tizen::System::ISettingEventListener +{ + +// Construction +public: + ///UnknownLogsDetailForm constructor + UnknownLogsDetailForm(void); + + ///UnknownLogsDetailForm destructor + virtual ~UnknownLogsDetailForm(void); + + ///Initializes the UnknownLogsDetailForm form + /* + * @param: Whether Initialize is success or not + */ + bool Initialize(); + + ///This functions gets called during form OnInitializing + /* + * @param: result + */ + result OnInitializing(void); + + ///This functions gets called during form terminating + /* + * @param: result + */ + result OnTerminating(void); + + ///IActionEventListener + virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId); + + //ICalllogChangeListener + virtual void OnCalllogChanged(void); + + ///IFormBackEventListener method + virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source); + + // IGroupedListViewItemProvider + virtual int GetGroupCount(void); + virtual int GetItemCount(int groupIndex); + virtual Tizen::Ui::Controls::GroupItem* CreateGroupItem(int groupIndex, int itemWidth); + virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::GroupItem* pItem, int itemWidth); + virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int groupIndex, int itemIndex, int itemWidth); + virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth); + + //IPropagatedKeyEventListener + virtual bool OnKeyReleased(Control& source, const KeyEventInfo& keyEventInfo); + virtual bool OnKeyPressed(Control& source, const KeyEventInfo& keyEventInfo){ return false; } + virtual bool OnPreviewKeyPressed(Control& source, const KeyEventInfo& keyEventInfo){ return false; } + virtual bool OnPreviewKeyReleased(Control& source, const KeyEventInfo& keyEventInfo){ return false; } + virtual bool TranslateKeyEventInfo(Control& source, KeyEventInfo& keyEventInfo) { return false; } + + ///ISceneEventListener + virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs); + ///ISceneEventListener + virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId); + + //ISettingEventListener + virtual void OnSettingChanged(Tizen::Base::String& key); + void ShowDeletePopup(); + void GetCurrentDateTime(DateTime& dt); + int GetDaysDifferenceBetweenDates(DateTime date1, DateTime date2); + void GetTimeText(DateTime datetime,Tizen::Base::String& dateText); + void GetCallogIconBitmap(CallLogType logType,Tizen::Graphics::Bitmap*& iconType, Tizen::Graphics::Bitmap*& iconArrow, Tizen::Base::String& text); + bool IsTimeToBeDisplayed(CallLogType type); + +protected: + static const int ID_NAME_STRING; + static const int ID_NUMBER_STRING; + static const int ID_TIME_STRING; + static const int ID_CALLTYPE_BITMAP; + + static const int X_TEXT_LINE1_ITEM; + static const int Y_TEXT_LINE1_ITEM; + static const int W_TEXT_LINE1_ITEM; + + static const int X_TEXT_LINE2_ITEM; + static const int Y_TEXT_LINE2_ITEM; + static const int H_TEXT_LINE2_ITEM; + static const int W_TEXT_LINE2_ITEM; + + static const int X_TEXT_TIME_ITEM; + static const int Y_TEXT_TIME_ITEM; + static const int H_TEXT_TIME_ITEM; + static const int W_TEXT_TIME_ITEM; + + static const int X_CALLTYPE_BITMAP_ITEM; + static const int Y_CALLTYPE_BITMAP_ITEM; + static const int H_CALLTYPE_BITMAP_ITEM; + static const int W_CALLTYPE_BITMAP_ITEM; + +private: + Tizen::Ui::Controls::Label* __pUnknownNumber; + ///Form footer + Tizen::Ui::Controls::Footer* __pFormFooter; + + ///Delete footer item + Tizen::Ui::Controls::FooterItem __pFooterItemDelete; + + ///Grouped list view + Tizen::Ui::Controls::GroupedListView* __pList; + + Tizen::Ui::Controls::Popup* pDeletePopup; + + CalLogPresentationModel* __pLogPresentor; + + CallLogDetails* __pCalllogInfo; + + float __fontSize; + float __itemHeight; + +}; + +#endif /*_PHN_LOGS_DETAIL_FORM_H_*/ diff --git a/lib/nofile.dummy b/lib/nofile.dummy new file mode 100644 index 0000000..e69de29 diff --git a/manifest.xml b/manifest.xml new file mode 100644 index 0000000..0672a2f --- /dev/null +++ b/manifest.xml @@ -0,0 +1,48 @@ + + + zktdpemtmw + 1.0.0 + C++App + + true + true + true + + + 2.2 + + http://tizen.org/privilege/application.launch + http://tizen.org/privilege/appusage + http://tizen.org/privilege/setting + http://tizen.org/privilege/telephony + http://tizen.org/privilege/contact.read + http://tizen.org/privilege/messaging.read + http://tizen.org/privilege/messaging.write + + + + + + Phone + Phone + + + mainmenu.png + + + + http://tizen.org/appcontrol/operation/configure + http://tizen.org/appcontrol/operation/dial + tel + + + + + On + On + Off + On + + + + diff --git a/packaging/apps.Phone.spec b/packaging/apps.Phone.spec new file mode 100644 index 0000000..c314bfb --- /dev/null +++ b/packaging/apps.Phone.spec @@ -0,0 +1,85 @@ +Name: apps.Phone +Summary: Phone application +Version: 1.0.0.0 +Release: 1 +Group: TO_BE/FILLED_IN +License: Flora-1.1 +Source0: %{name}-%{version}.tar.gz +BuildRequires: cmake +BuildRequires: pkgconfig(osp-appfw) +BuildRequires: pkgconfig(osp-uifw) +BuildRequires: pkgconfig(osp-social) +BuildRequires: pkgconfig(osp-messaging) +BuildRequires: pkgconfig(osp-media) +BuildRequires: pkgconfig(osp-image) +BuildRequires: pkgconfig(osp-image-core) +BuildRequires: pkgconfig(osp-shell) +BuildRequires: pkgconfig(osp-telephony) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(capi-media-sound-manager) +BuildRequires: pkgconfig(vconf) +BuildRequires: pkgconfig(tapi) +BuildRequires: pkgconfig(mm-sound) +BuildRequires: pkgconfig(contacts-service2) +BuildRequires: pkgconfig(msg-service) +BuildRequires: osp-appfw-internal-devel +BuildRequires: osp-uifw-internal-devel +BuildRequires: osp-media-internal-devel +BuildRequires: hash-signer + + # runtime requires +Requires: osp-installer + +%description +Verification application: Phone + +%prep +%setup -q + +%build +MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'` +%ifarch %{ix86} +%if 0%{?simulator} +CXXFLAGS="$CXXFLAGS -D_OSP_DEBUG_ -D_OSP_X86_ -D_OSP_EMUL_" cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER} +%else +CXXFLAGS="$CXXFLAGS -D_OSP_DEBUG_ -D_OSP_X86_ " cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER} +%endif +%else +CXXFLAGS="$CXXFLAGS -D_OSP_DEBUG_ -D_OSP_ARMEL_" cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER} +%endif + +# Call make instruction with smp support +make %{?jobs:-j%jobs} + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}/usr/share/license +cp LICENSE.Flora %{buildroot}/usr/share/license/%{name} + +%make_install +###### for package signing step ###### +PKG_ID=zktdpemtmw +%define tizen_sign 1 +%define tizen_sign_base /usr/apps/${PKG_ID} +%define tizen_sign_level platform +%define tizen_author_sign 1 +%define tizen_dist_sign 1 + +%post +/sbin/ldconfig +PKG_ID=zktdpemtmw +echo "/usr/etc/package-manager/backend/tpk -i /usr/apps/"${PKG_ID} +/usr/etc/package-manager/backend/tpk -i /usr/apps/${PKG_ID} +cp -f /usr/lib/osp/osp-ui-app-loader /usr/apps/${PKG_ID}/bin/Phone +/usr/bin/vconftool set -t int memory/call/state "0" -g 6521 -i -f + +%postun +/sbin/ldconfig +PKG_ID=zktdpemtmw +echo "/usr/etc/package-manager/backend/tpk -u "${PKG_ID} +/usr/etc/package-manager/backend/tpk -u ${PKG_ID} + +%files +%defattr(-,root,root,-) +/usr/apps/* +/usr/share/license/%{name} diff --git a/res/eng-GB.xml b/res/eng-GB.xml new file mode 100644 index 0000000..b23e779 --- /dev/null +++ b/res/eng-GB.xml @@ -0,0 +1,236 @@ + + + + If no reply + Details + Show + Call Connect Tone + Delete + Exit + Back + There will be a signal sound when the line is connected + Match criteria + Sep + Manage Call mode + Int'l calls + Done + seconds + Hide + No Logs + Add wait + Yes + %d Messages Selected + Voice Call + Minute Reminders + Wrong Password + Enter Correct Password + Error + System Failure + Reject Messages + .Name + already in use + There will be a signal sound when the line is disconnected + During a call, notify me of incoming calls + Set Reject Messages + If busy + Remove + < Create > + Cancel + Includes + Call Forwarding + Auto Area Code + Invalid Number. + Rejected Call + People + Add Contact + Off + Speed Dial + Oct + AM + Ends With + Speed Dial + Cancel + Change Contact + No Number + Save + Contact + Rejected Calls + Call Rejection + %d Number Selected + Cancel + Automatically add area code to number display panel + No Name + Barring Password length should be less than or equal to 4. + Apr + Speed Dial + Delete? + Jun + Jul + Mobile + Waiting Time + Call Waiting + If out of reach + Incoming When Roaming + TAPI Server Initialization Failed. + Received Calls + Add + Message + Voice Call Forwarding + View by + May + Edit + Missed Calls + Show my caller ID + Ok + Mar + Received Message + Alerts during calls + Add To Contacts + Select Speed Dial + Block + Send Message + Exactly the same as + Accept call after + Outgoing Call + Message + Cancel + Call Waiting + TAPI Error occurred. + Call Status Tones + Emergency Calls Only. + Putting held calls(%d) on hold + Putting active calls(%d) on hold + Ending All Calls + Unknown + Ending Call + Ending Active Calls(%d) + Split From Conference Failed. + Ending Held Calls(%d) + Ending Call With + Putting %ls on hold + Calls from this number already blocked + Messages from this number already blocked + Calls and messages from this number already blocked + Call Forwarding + %d Numbers Selected + View by + Please disable Flight Mode to Call + Add 2-sec pause + Call Waiting + Select All + Call End Tone + Sound + Call Barring + All Incoming Calls + Select Number + %d Message Selected + Off + Starts With + Voice Call + Invalid Parameters Passed. + Sound settings during calls + Int'l calls except home + Delete + No + Select Log + Missed Call + Received Call + Feb + All Logs + Dec + Select Number + Sim initialization is failed or not completed. + Select Message + Call Barring + View by + Block + Nov + Call + Sound + Deleting Logs + Vibration + Reject With Message + Cancel + All outgoing calls + Video Call + Manage Conference Call + Sent Message + Enter Number + Assign now? + No Speed Dial Assigned. + Cancel + Yesterday + By network + Close + Send + Emergency Call + PM + Show + Call Not Allowed. + Dialed Calls + Edit Reject Messages + General Error. + Additional Settings + Voice Call Barring + Reject Failed. + Always + There will be signal sounds every minute + Video Call + Swap Failed. + Deactivated + End From Conference failed. + Join Failed. + Aug + Today + Jan + Selected (%d) + Already In Use + Manage Call Answering/Ending Settings + Set Accessory Option For Call + Call Answering/Ending + Accessory Settings For Call + Accept Incoming Calls By Pressing The Home Key + Press The Power Key To End Calls. This Will Not Turn Off The Screen. + Accept Calls Using Home + The Power Key Ends Calls + BT Headset Settings For Outgoing Calls + Make Calls Even When Device Locked + Outgoing Call Conditions + Even When Device Locked + Only When Device Unlocked + Enter Number + Voice Mail + Add + Auto Area Code + Add + Password + Edit + No Voice Mail Assigned.\n Assign Now? + Low Memory + Memory Low, Delete some data + Yes + No + Phone + Invalid Contact: + Ok + Select All + Call + Call Rejection + Reject Messages + Accessory Settings For Call + Additional Settings + Call Status Tones + Enter Password + Keypad + Logs + Silent Mode Enabled + Silent Mode Disabled + Assign now? + No Voice Mail Assigned. + Is Invalid Messaging Number + Is Invalid Number + Unknown + Invalid Contact + diff --git a/res/screen-density-xhigh/00_Nocontents_text.png b/res/screen-density-xhigh/00_Nocontents_text.png new file mode 100644 index 0000000000000000000000000000000000000000..3d68f0aac7d01a3297f77285b1d98d630caff51d GIT binary patch literal 5167 zcmaJ^by!qiw?2f!07DEpq%a^QF-j;%4lN}mtpi9XjYta4P!58GNDd$<-GU;`fP{#o z(k0!Xgf!g2-~FEN`{Um4kMpeO*?XTA?|R>T)`_^It4>A1N&x@>m8OP@0RRxeE*>z5 zu<|^5C5m9k-8IY}0{|uc#X|(7rV&n1=si?czH`UX&CBhvqnkUIrm`}ZyQiD|LuWex z@EuDxbTBepVUpXQ+C^$%(XX}K3>d*&2FOS>LmZzFH#zNXEO*u@qkc0~Rh5+OOD2{i zIvO3ts4on8K`}x$&;2$!hLt>Kkc#aMtvJjhH;L^%a|G?}k5 zNLdqGrz(oJ_@%I1$4Jop-1!ConQ@GSYIjb3d#Fo$dZePOsPBucHi6FJHa2r-3%y0| ziU2U<71VzwELO>iz6C zk=w0E3+t~YfoBda_wgpD&WAy=C;NLp8)tbj*R3$>qz6A+zU^w~u=lid*-Da3D9>m^!X`-3(1SJ)UA;xg9Y*p~AomVR!jRvUNg3vfO7B)nez+G|XOzT6MUN9CIQ8?2#f zZz=m8cwI}4Vamkyd46D(i;~J(>ML@j8HyWYc# zAw})1<#&ro>LT`Rd*Azz(qUBb~1XB!RB4X6#c8t|+L z7vLl`Sb5?*#~wIUkV(H5=DPYNY(9Pd^St;x+dTKS1x31zqDS_D;jDnc*GIQm7HAhF z7C?5%*OiRlr5a4;XBj~yW6Y5ySycvQ`p@&}C7z^8cZV=(YUPx?P5930$n3cPux#0@ z7CM>0shiYiGSIc6zMQm7vg-q(3TF)Iz&Z%9;9z7h2NoY#S+aI6%lAl@4kN^kYir3% zDKsf=#->75LQfgvzEULIPT)&m6B08jD9kOKDx@^tG43*oDY$1CSgK|$Za7y!{v)x- zxG??BnjxE^L&2^5=Y!=)-nEDU)k!jqH>OPf_2hNXk1Od?7Km=mufUo58Ey0c;{T& zUE1IAf%v%jv~*T=Hd76BYH|g0Z)xAs?&$v3{kD53MG_}>ZTR{UZV5MxoBo6{_ca%; z%CD-n)2x^`&o$eus&@@Dmp02WH8!`ZR4Yj@xiVB&QkMtKtI>_uEy@^j_+0+Gst%B3pM+QEj|;Zs}b=gs(r_`ur0m#1=MRL@7Li#W_Vf*ybHWRSTlGnLwt zwy6-U#2@#4{-XR-f1zK2@=XH5X}UN_ zPgxJ+@NtPp%vLPUq-41KQ;tvJzV#Nf{2zJGH*@lHvNxu#Pnq5Sb_4(E%cm~A&u$s_ z!={y=@ti+6_do9k^3Yd^97rNCN*D{`;{*Sv+)dF6GUIlCDn>VyqB3ig7?omzOM(}g zOSm1stjCsc?=L0y#PvL+4!aYyJk&>Ky=WczIS9fZ_B_laTp`*WYs%VxElJX+e?s~3 zw91i6qRJG`;hLUwnaFKPA^AelN3vr#Y9(qF+C}Znz73kDn`%01u}g~zl}fofH%^~y z>^z@MpQW4&U``hMV&(3a)zh*Ymd8{eN+&FnsHlzAz4`i=60J}^Q`D7hdY>!N6n-rn zEe>$8eyM)!h_a;+r|!0fkdFVW^|*RTKi)R+9N~qUQ2v70dTlE0Nt{duQ>r(Y%XK-K zhHD|O;$l6Jh1@#vRSv5Ti}v1K#dcv8XKk*LpTsy5$U2=WV~a1DiBMD_bC-?G1%`#l zDje)g?3=nHzDg$+WnAsv_*VIKJoZM~)|>MUx)!>bS5-OTS|%bKri%^5kEAPPJ^aQg z<`^$s4ZjO2maTqKCFC-wSF~Z0R2tO4=da_0x!3$PxcMWI(;B5Q#X?x%+QjgNm7b}X z+4M*2qwsV#dB%trr3~ZDNsP}%1SWhJ*q*z6ZAzJV{h^?!wdO&u{eb<-;*>~+1$AO! z(qa;|E7j=O2de42A2#;>sE&&zbqkEwg;XimylaxJuD8qU?CHLxV3cjNYjk8JwK*{P z(R%p6wSSW>p#G1<`rx=l{r;(ZXXCgrk+II8{h-~k=5gh|LTNi&crPi^oO> z$pFbI84q>UaLtcFjsZC%gP5VKYwFY;mmAO0w|qpXq^OKvrnS%VxU2Zhuk4dg?{iYg zjCn@|6wi=-zwFK7z#;YsnYx{-hBHh(wy?3N)%zyjKeRgKf1*BqnI=s_*39qrj#1~s zv6bNO@ebR)QRxZkfkC2&6R7dGRRK%3J=2e9+_q|Iy=Def&m)&^)!*u|+^+W8t{7jS zH>oyBEt9$Lvg)-edlvs)ucI!lF157A(y3){2EKycza7bXJeUndM0r0 zc=&$LurKd8o+Up1oRlPa=fqZAWSlT>a@lGa=m3EK6#zho0Knln!L9(n69fRPq5wc9 z8335wUfpj~BaEiznkq_0zGLf?Gaf%QSkW_Xg6HbYL|*|rv{djM+*C9;1PoFycP3RN z?NG(jHg`hP(lG3pEi%u+;@-s{_Wo+CK^a2B>qryphZ1GA4y-#}8yhab{I73>p$$X} z129DY&D@=_StE1z^YdF(sEEN%!)KqUNQh>=4a8!7oX$W#b?JD9d0Ulw57xrpQt(pv zY`md$1h44)FOxh)l;@+?oTH`7TG`Ib!^7C+Gzvrrl$jRhL4<)aE23I2k*Zl{3dyU= z=vua857s4Izq&#DWvGZN!&16n(5>{ZI(}CWi5iKjT!>j>a8xxKkEJ9SfS5=0VufJ- zcjdy|3H-<5h2MPHf3~?0Y#x4og8w?L*iDE_n{4T^0-seNydTdadVlUXPwlUlZ?$s+ zDy`~-+&X7;e0wjE^2I;%O(oRuP)>&n0X*}ZVPJ1-N()}y+i?zv!V1Dcc`B&rna?L- z_;t>Mz0;GMDy`k@nUCN`2B;u8-|N;oGty6^Eg8&Vz!UN-B8A%}|X_x_(+^iNfPOlCB;fHtokmJzOeVzfh8%I85{%5G%0ANx=4gQ3J(yIFfP-zZ(agv^d~n1H6O@r z$uLBom+a{Xp7e3+7k=qsKPPfap1zYj*Pe=raJo0N5#xK}FyX4&m-i{?@2`w%?g@1_`;gzy$aD86WifWG96=y(&8EDejY z-yny?Iz>oOKw=9mZf^QVlJO(TsS-65U&&jq6WBub=q#n)CHvILzj!<-Wcsnm!Ea-> zWGVO=$C)wa)zcT)Cb#tf(X*qXClNnhXvOue4Al$!{V{lq!b8+h_~NTlN93>Ycq!t? zJcRTX`U&a1&_$soFB;d+Pw0@nMYzZ`qrjS~X@$AZwl4H{QfnP}O|t#ZRGvUkyj3?w zaJJL-dnzmSKmfv>(}hY)0fTu$wrJl)CWt8C{68Fm6j3O~!jT93gySz+AhB8mXt)Tm z@e|IcikCn`b+W7%ohFBrgW?Gw{u>?1i&pEFT?--dBsAjqZcFpfiMXFa`!Ws4F2|T7y3K5!j>s{N2@050;f{EHZjS(Ip<4alI&$t(9KT;uSuY=o9QN$9aO|5 zT!?bk$rg|4+tNSHNyKZ0q(gG6NJ^i)o1}$q3Hi4)`MSKZ!ubYLd}|MM@2(ucGl+lw z!wD&N^Sfxs+rPAXMXiSVDN#61s0fW$B&rRYYfSL!BPPkaV5{_hvUPadk%7QjegwWo zCx;^zuNY+PT0svZTvf1-Pwn_zMmW;Y|zUGC}cShzw-!-*o+; zLTvDam?Ul7XjX|FGCxSrmho&eC4^9i(tpxU>Vh2q)SjL1AD@m_y!TgI3H~TzlEYof z4yy!z;)~08B>7+A47m`oTK^f(sHsyI#q~xPMGES15jy-y3ff*~j;<3rrn;`!2p#W4jYu6`q6qWhyOWp|`gZDjVh_yW z7u;DTh`)3pRQ55E?4zwcWca9-v3N2ibMw2#9;bz(Ll0WcXs;c*WMqQ|Y`iz7?DFBM zHFfVzJwH`!4j)F)Fktr9kS$au3Tn4Z-+p&z!UCTDY^+|Pdf9am_7Wb7f8C%fzn5Od zoTU>`<8Eo(wM04GmYX|$N;9MrW!{YuUGIQ@m~U(SzIn9I<5exocGpWdaMr*Ir4ijXXXQw3ySqBI9W|%6>|V9=S`L{(j~R{nOnDRu zPFLB9hnmam6uWlvAr{o~>pt!JpW*)=J+CR)$R^jWNt_T-UEaL`!YGAuV*4iF$svh( z5bScu~RHdq-2n+!Vhn2FvKb1B0EvFKVWhQyUXD(acC`$r9`fr zn1n65Z_;@Q@y|{hY;7X{CK!UfGeOyH6&2(i)0aTFhs2|EphvXOH;-f^nkJ^EYG0#; pGo&w}FTPG(1l|8vV|Tm-+$!$6N&~9?MVQC{O;uf$QY0$)e*kHiUgQ7( literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_button_03.png b/res/screen-density-xhigh/00_button_03.png new file mode 100644 index 0000000000000000000000000000000000000000..b0a47b2aa95c2da3e35d73d0f44fa0803ce0c90a GIT binary patch literal 4467 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 FV1kTqX~X~k literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_button_contact_ef.png b/res/screen-density-xhigh/00_button_contact_ef.png new file mode 100644 index 0000000000000000000000000000000000000000..c445088235a9706ab7a84e23be8be1f5edf1b90a GIT binary patch literal 3918 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_button_delete.png b/res/screen-density-xhigh/00_button_delete.png new file mode 100644 index 0000000000000000000000000000000000000000..bef468872093586c59d750121054f5ed329a7012 GIT binary patch literal 2529 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_button_expand_opened.png b/res/screen-density-xhigh/00_button_expand_opened.png new file mode 100644 index 0000000000000000000000000000000000000000..4db0f6ae059ba9fc923e8e92e95faa8452ec8c18 GIT binary patch literal 3276 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_icon_more_press.png b/res/screen-density-xhigh/00_icon_more_press.png new file mode 100644 index 0000000000000000000000000000000000000000..3a135097366db9d6b268d59882d67e10cb32a046 GIT binary patch literal 1570 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_indexlist_icon_opened.png b/res/screen-density-xhigh/00_indexlist_icon_opened.png new file mode 100644 index 0000000000000000000000000000000000000000..4a07f55dc9ce64c5daee130a34917458d89ceff8 GIT binary patch literal 3471 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_list_group_bg_ef.#.png b/res/screen-density-xhigh/00_list_group_bg_ef.#.png new file mode 100644 index 0000000000000000000000000000000000000000..6929e03fe2359937158692f5fc76acb0c31cf42b GIT binary patch literal 3310 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_list_group_bg_top_ef.#.png b/res/screen-density-xhigh/00_list_group_bg_top_ef.#.png new file mode 100644 index 0000000000000000000000000000000000000000..dafa6a26cd6aedffcf3727f2fe99e06999fd819e GIT binary patch literal 3138 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_list_process_01.png b/res/screen-density-xhigh/00_list_process_01.png new file mode 100644 index 0000000000000000000000000000000000000000..5c8fbb45afc943f680a4f895acd07eb786c9224b GIT binary patch literal 2164 zcmbVOX;c&E8cra^h@uFnU=fFi)GLr=LIOzyOfpFXAtVI^6tIM3BvZ-KBtSsaK-sI9 zB1&;VS!{8E0#Z?^he)ZYh|bcsK+W zOH;nM0sCMu<~xzFNNuDbh$&IZiDDCmsFSNuHU{IfNv9G^cEMU84vt3@zJzDZEd&6O z`Vt~&0gC)cO)oPv3aGJqKFf?N=c#|R%ipb zz6A7yC`F`9KAq=HW7BAK4$YGXf*=Q?^5_hR;z@-(=`;p+-o}Tx3<^Z&ks&Swai}23 z1L+Wr!JyFSR4SJWa>?v@Zh%6g6)Pn0ye@+3&T*l?R3VM=Afdp+cltu)B2t*-OCTmRPc^54gRwGHUl&@CGfw%c(A|KHA;BvW(zPqWN#p&e+NzHfbW@&59_3iQUP(W@~MUlxeL z;3@;S>@eMLPoqF#FU!u4u*e}@lxgq&ud5Y}{J0x@zD0Hde5UB@>Q^fprZU2xw1#g; zjJ;(vfKZN>b@Pv3%<;nO9Ka`Qpe+71X0U(br*Eenk1UL6EQGFUOIGni&^lH|-sK0ZCjwzTI#x-uzta#LP7o zSB|T__vcSf!{kJrWA``R_iN{aoWu z4{|B%^5C#G*Y^dfDVLk%?j?qr>x;JMheeFMxo_e0XJsu#mckCK|6zG`MTJG%6?b8- zi_-yDR?%~prprl!GDGw6ZZf_WhqI|e8h){(7mm32Wn+Ydy$3#FfwwV%df64h!%V%% z#zOI_SvdoHrxo}*=*ak!g`)lAc}wUSod;zf>BNs7J>o5(>#uTqdwV}wfoEl%TY_~> z+AYV-4=z4>0e@g;tsuE=4mIclLVXUyI$zSGX+!VZ{bZped@U!SVFnp@@?$w+b>Ck3XAUDX`u+FcJle;9h zgn*QEJZrtx@nqk(c0Ok_!*ldSRUKjqdzJM|UiWJHZqZ#A&*#w7z_0AKH0Ac(Z!ERV zIA?PhPFgM1A?Xnhup5L%gOPN2*{|G)h_ve3gDxd^Uh$h^^PTc3HU-X3&8u1;M0I7I zr&Nj##N7)WUZ#zXxRLg_KH9eZ_gkl14$bb1Q@LSERU^feL*r(W+@ET)WskSJp1o#C zb6oU-p1nfV>A~oA)_d(J7>z8rW3Xi%{Bi18tWyt8e{E~R<(0FJG1j%fklgmUP>;p% Wku10Syd?_Le?R~)m|Me%&G-*f>|$I1 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_list_process_02.png b/res/screen-density-xhigh/00_list_process_02.png new file mode 100644 index 0000000000000000000000000000000000000000..eeec62e90e235881fef75fbedc14679a9dd917ee GIT binary patch literal 2130 zcmbVNc~ld39-nXqL_kCk5E%j%6(8|2Q-n#$LLG*zmdbH900ac7q>?d3GK4S~3<#z`6pA;F@K$EYR6@14OzE<0 zfrlzZ3W;1L!DOJ$qHrgcu40jJPv3wB??a&q!!8{gbYJcsV=U!Xr(F| z{jVDzL@Q&nPKhrmTi29>&K_ieK|B9m&>6cNC*<_ z!$prVTxD`OIz-Ms1!_vDN`^x z$c>?s5im|76Jwc5U3uO`%R?2C3{=clU{dgHewmUF=u`PH*9Z3H2UEFRUEINR8a0?p zrTB7!DTpuPLt5gB|DT*exHFKhIsT_vmbdT@)J@;FKE8N=c~BXCV-)z+$Xj6}0|0}4 z;k@8j^@Hg$Wb-&|t>JDtbeMo9&h>kRIeONJ&;J7fw}+Rq%;~mp ziEl+P7os-uDNsF6o$DzuR9ZC6ZX{&1DfgCm0@f4lUPay;W%kMr%LMx~PVU;x%@)wQ zjTPv@QR0dG4!4u{4Z35zl%(&^G~Dht6`Q>&YS)U)&x!Qe#bcMWn>}_IC3jb0+kIvU2oC9 zW#ySPacVzn-wDHkt`0y#@wm2S`Ec?*1;oY+b*er=4I~If~R>N+MraLW^iyY zF|Z=P?$R8lzN?@6`2V6isD7X0u>q?wiTq~2m6Rj+#{BVR%6 zolq>kFhG?`>d1o!r5J|&)8F6UZDpX@xwOfc0k^Zk@W}A+>*k6^S19k{&*`DNBY;)U z*}VEQW@UlThhF6xus^i{o(_H4G+;Fi$93x2todc8zAY5s4gC@00a$Ep)jzglouDq! zmQi5q=G`82AuKenRXZ!Z(Ulz3V|YA!A-z|yUu#=q($HKy;#mEgk=y#bdY?4SyrV^9 zbNTJ03O#lQaq-G$)X%T@9d`btuyWEGsQKcn3;!}~j&p||f8#zsrPr~?UBLFMf?=a> zr^;6bvO@t5z~`quL3nNKXw5CBraL14e!IBxYt%jhyNY;A?_SORLV-r}h_L@76H}(e|u;1I+&iA-%hExl@av=CX(UeCCw7ocWe5b2XDv`dY?uu7p|9CC5 zYa6ZAWZ~RjEVoA0Wjq+l7(2E)<)=@lw5Ml?+WH+ugBjBm0y6MRzDbK~RBfO0lQ*w_ qY?Exc{rgwvQ-M^#$)U-KU<6EMsSi{I-0^5G$oysMnVeg6TXfItlZ literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_list_process_03.png b/res/screen-density-xhigh/00_list_process_03.png new file mode 100644 index 0000000000000000000000000000000000000000..45f82b984ed4c587782f70ee4bd8a7622e80f0ad GIT binary patch literal 2071 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_list_process_06.png b/res/screen-density-xhigh/00_list_process_06.png new file mode 100644 index 0000000000000000000000000000000000000000..1e47db8fb37f8367cae0d3b06ae8cccff5c40d5d GIT binary patch literal 2165 zcmbVOdsGv57M=h`Kqyf_c_@Y;MP5l}LIMdyNHQRg@`eQuMG0hpsU(49FahNdDN8{q z1?%pCYN^oZ0<{!45EKPdj%a}`NCBl-6qSdvAS~`K_*mSDg1dis`p3>WGr!mO-S6J} zyZ4+ai3rDv&*nW3TY3`^weiNaGxQwlR_AeBxN zi*<3mLCdiybAff=7R7`%8Uk>^neMSIXz@mEw@E8Jt zE^Z#vgTWIpAWuFI0zE+%Wt}Vfe{x2{ouTQ9<9~`}V+*f9-Sl1Qk>RZ| z-t*Zg02rJPf_X8@@%e;n;dlKkSoZu2U!I4Qe%%w44@2DSo{X572r#iZp1fvWq;lbgy_Q zX7b?eS?^nAuG*r++C0P40ndQQNBbwgEg^Os)v_vpyH1z2KUn~j8^e)1)1hNFBraiv zM67WfQnqVXEnY2+mH+)fk&;Y$epE!}icPG(xY^m?-#>^q`@qA8$t@inFY*w?abQ#X z+LI^sm`2mwTw`2h_Gz+%zAUh^{4}DH=jHvo!Y2IMEmy+SL{Cr8nKNf>ZA*Qlz%F&f ziQV?cM~MpO1-;IfFJJC>?t3sXantPV?Bd|Sz#8dM^mjH@7OKgu0hH}~An{oE9_UYAZp`h^6@k9gFNdv2`^=D1XUpob= zJdITrwt+UC;UfmN$rWDOlZ2}kf3g&^NTg#w1BU;MBdVa$YD3#D>$($vBHsFYK=`0PkY z!lvmxnu*qEhev3}oaM;Q;L*uj-FI&1GU@y75@)CP3g%1wwgM=xZ6?lyf5fZLzwc?& ze6C-{gZ)trdOteT*D78NQ?B(D{G{!^W8iGKJJrgHn{LL~SC~i%*$l*#8T)0{M0W}M z6vCDzzBn9>>nw(608WWf9QHwMOkTCz3B5R+3zmNRBTF zwhs44Lh0U>t*(HcckGSQWlduXquZ{|b?AqhKYnBR3(;@pgU=?vI1W!jk%35~b^R;( zudxpZ9&WN@qlMR#t}geEXfA~9jDLMFxw5ArvRid180&(}3w9I#@U*Zhptqnwlc?4Z z@=bW&rQ?qKy<1E=*{REImy2ua`r+(0@cbxy|#cYivn8E6@}GmyI6213hw^l(?52eXXbaz`@Y}t`@Wgt z$cRWjYa>rVh=~qtQ7LG0L2DC0j*VxdP-GIfQ@)#TB4Yvq@{<7#!TEldrh?GG_g$_cfFr?8~;(CWR;8Ey* z-S{Zl5Rm}%ofq;3=ut;$rjIOe2mKyi`W7IA{L2+3-3fp;{ zZ2ou3pk{?XIcNLfC*7}j4-%h`#y*nz`gYv=^{-lw)3BU*8zfiZxG0`uqD;7&g{>^XBYZ zq|NuK5cKx5#nDM1x*=qbH|dClUu#QYSLqxojU6I!^h`x4*^>;D~=-a{;!R9+uPgi z^}+Omlj;hY*Zp%{xuIY%2M8XRfP~6J*S5IZgof04Jz{Uz%|E+qa*ZwQ=Q-kEI5|0a z=F!73JFn#dps~ZTZ8cyVm^yYkRByHVMPTaVdY85Z=Cx#-cvoOpII_p2{-PHyWbbv; zoD9DX*n~2Jmc=AK1r$4-OkTGfVZdu|(b2uFYX!llt=hyrjvUvQy2a|GyEnYb*A0>R z73DUSb8Kh;sbgX_y3}s)q#b!47VN7S*hLyQ-TOoqR>B8g=5-7~HQ5wkkY;qQZfN!zg&XK;3A!y13zVZ zXQ8_J)Uwy>6!N*W&s1`B|DO{V9P8m08J(8QKTup8v$*P9=gKop0o)?bIi3L}E|E#u zeW%U!F1|ev4!Hd@mKo;$+p^-DB_{F^d|}+TYmJFpe={TTY&y8uJ8i|^M_o^S8o%xS zBKl?KLOQi7^_QV51!!m8k;nP&$nG1%-`}x(Eqa{?$^dKNC0M$d;wW2f`TI*H5#rOr Hl>GkyjnqLG literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_list_process_08.png b/res/screen-density-xhigh/00_list_process_08.png new file mode 100644 index 0000000000000000000000000000000000000000..0cabf18ff550b561b38399f1fac6a07ad7e42481 GIT binary patch literal 2259 zcmbVOc~}!?9v%o+qhLfq6tR;aiYUoU?u4X}i=!IA1my6*kPHyXWim7o4w zt0IS`7T5*4tazfr?joYH9D=K?BCQtjYPAR|y1Ek;cmMF|A3M)8^IgC9eSg>YJhLM< zI>H@44-Wu8?r@fz|a7|3$+*&%1i_WQ;~GFj!*jK^f?l!R`E#* z3@Icvh>#3*WVR8JXGg~=von<(6)E&HkZ0jy1X=`DfEKMrXX0A;q_@0WY;NDCkifSl zXeOWZ&Z$IcEGW_&5s*QKf|U>x2AOm+Oouph&N7e+!4L(eQXp0^3~?DOE(C+`9}=c! zRHboc;_&xc*osfeKv4siLNS}oWHXJdH>Oiy4u?a5s1zzS7_$gAZPK9%OR&!5KgA$M zOiH8LfU5O6(9Wnx)n}o666Wc<5VQuV^aHWZ^gdBo$|x3vfdZ2uidJin>#em3l_CFi z7|Y#n3)u}ZZ@4i=HC7abMyyw6X%QV7CFYZ`6S7LJ z;)b&&EQWx=U<(;E2@JzR5naOOh^REWh{k4c#8Vs}!?FY{CKF`h9y|)1S}zo z$q|NgsB|_}FoliMnNWpJiA?FLG2QoA(Qjh8A|s+e^~N~8UNhAJu^D<)Z_3acK#`n5 zhQS22PNg@S?B#hEtr#(?zd%&sM!gn%n_sT_Bl@&(NW_F#;R2dSWRF|Gpwk2*8kHp! zP+=C#B)!L~{-2ytFlQ+C=J=mxncBiS&_4ap`q<*bQNK`h>`TUJlMk&xexu#n{ zwV*7DgL&4%ywQ@tg?VnN20l^Xa}m zk_My!<&JC~uYY{mLHe|YMQi@zUEM%b|M{Wl*zx1vZc7<(`vW&AZ>04u&qS^8@7n_W z_+V5OeyuSGEGt;)>Vu01 z;{d3;yZcr}dHJ@J=g#HKf70CCTyaeMa-MvtL$52LpkCHQqoDaM)n&Qbv?Cq)gs6HJ+Eo_+js8V=^7as>AsvmbW1Liy*euDT=7F|JW7~|e9-#u z2*=8(0|&PxCMCVtx^?TLBRK|>Nq)Me1znYpu(@*hY}h|0_m?%cnKauot_9Rj6V^6+ zSbp4++R@R`*x1m}a=GG7$;5`t%%!rD4O!>uolWFg=fYET>pfoc`1p9r*w|Q7L`s;Y zv>6b#;I0q{BdE3p55T>Atl!()`*3@Ed-1Nu&;0!SP8Q`C=RPM_zM7p|?-}NP#IJni zlY1JCW=kIL@?b*2{g|w3*X}m@w-WH{ARv)2Su?i8c_=+!eMsC^UUjwb@eQAu=l#5Z zc^7!TX(0lq;=+6B(Lsqt#C#56zNhoLxj<)X;hdt-#2JeTgS+n8xH*+oAf6a-VjN$J z_uAfj_j>Vs$+iy9#h%VmcS4~JI`H*21+b=io-Y)1QZu_Jx;ZJghUhij<~U@vv;?*S zmdMd(&LQLb9g4hZ74-TUrOJ(D9ga1`RQcbB;9su{#QOH|+khl5E(usBeua0i#tjd+>@E!SDe}-r z@?{&&2DjAZ4OWI89&C;1YrTwH@9!wTI+0XRbbruVEy$l<%4Y(xzTeA!2$SzG`y-C$ zKHLQa{i(~UR@b=aAL~#7`9azH7X%KmVo&*34<^2JX{!l=nLr6% zFONRnd5ina&kW|ma{_0q7%e@c*J zYNzXp+}_^1kJ2X>zESR%S**6IkSbta)9X79wmq)WWJUg&^V6E{Qyf9&<9|v+X5HZp zEYhs5UyU-@(Bm`BBTj6+Fx0}h2u!$5bFjhLmCjvo$gPXDlat6ZoFgvuODfrI)$Xz4 zs&3h9k}rvmyEUtt@I^%6E)U)e(^*&jj_F=NO_mY7*0UtRbYW+iho9%&g55nAf#GsD zg_~@-s6Ddn=TG+D?tjrRD&0AM@6q-6*_=Y}+-|f{F;Fg=@kv-@ z%sxTglXYtYmg`&(1ot*>-(KM*a{;4%_e)7}dA{LZVq}0ktLpX(#9Z)IUQZXi@4N#$ z<$3ek_?3$X&!5Xl^=WTdxi>fEV%*s|qoM`bo`(Z6chq>q-~7Ig`02}@4Yg^d^R=Ir zdBo2ec#(D?rXVAEpsRo1Pa3D)g|%}<2fJRIP?z;C!<%r=m$m|bGaU4(J9c-o{Wl{@ L5-n~JuFw4sc}{jG literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_list_process_09.png b/res/screen-density-xhigh/00_list_process_09.png new file mode 100644 index 0000000000000000000000000000000000000000..94bba2b3b0a02d6535f95badd45e3ba769eed4b8 GIT binary patch literal 2256 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 YfPlw^!<_BU6o$V6p&*jq%9RxS2kGimm;e9( literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_list_process_11.png b/res/screen-density-xhigh/00_list_process_11.png new file mode 100644 index 0000000000000000000000000000000000000000..264e6b5d56fcd5cc897c7a01c61a8f93aaab167e GIT binary patch literal 2124 zcmbVNc~ld39-j!yLKKbRvRLdG5M?3BOhO0=1j$*DQ;sHpxa1fhU@{?zkRY{bywS&1 zz&=@At)=+z;Cxnb6_IjOYDHX?O-pRWq9R++l>#m3P896^;p-ne@6G&<`Fy^g@AaEG z5Fh)#Gu{&q0DyC3gdhPM!)>>t1NLlC=2@}f9lcPZPee2I1yU^na22Qw0V7q?EF=Mu zDvWtwBcT9bm#IvW=p`}HY&oi;NNpI3L8Zai01&#-ppnXR5j`kFvXp8LY2soB2~;XL zBrzifiqY_qY-L2D7D+6OO_CSp%2^81#xO9{z{U)y5WN&MsJ5wfYy*e%$}St5+qS7B z@D)U#%OSmXN)i(f@=+}UGAIyP4h6wrP#^^kgjj*B0FVa35EZ6TAto7y*bF8cg29E0 zgsEv2nd}6CXh92GaY)&Ey@pMt78Ddv3g{G6n?;3LEEW}_QE4^E3{6Z zfc);pThY2CqXwZSAUbrrR*uyp(|eJO*5EeaMg8C(VKqTY|_yHFep~46=;FZR-V_<3J|R_A5n<3s0w_QU$*is`g9S*4}zE?E}hS}#m!{|(z$#( zjmhKEU?vB0Hht6j*y7FMLDblZ(PBqql|~!{0QNoK)FKCM~nCtQ=1EICt(N-pgGjo9mlk8l-qW z(7CkYqLFu$bP%_M*yr;6Y$1iBnFuS&`dh{NS~EEF^Srh9(r=SJU0rs@{+4EkCWlF? z>DH~pv=1+|83*2-ne!KJw!eG#?nHim{!TTDt{)e-RW;Ne5_#86Op~u7n;hC^Cm&B< zHtgIPcD}vclC|;P@bHJ0@4pY#rXR*h2CHvYch%=L<4h?*M89;8oY@t(Z%j{5fBVx< z2mov`d|(eHScqOXvh9GxB1d;I@ryQvqcb3q;RW}~PKoVu`D63l!2R0*lv~=#PSx(% z@gxXAmJMv0@j2LSPI;!Ak4j5RTPpN^cQAhor_~wwX6*Qbg4Wa> z?yXEF^Mc@x2`(iP}Hmr=mwbDN%a4 zSnR*|<^r-=qMom0YV9^^)O!lN$*#F3Ak0Qu*ilkInvmCrl8^dGxdzm>qi z5x_c?+kfh${XL$9QOPCq9<$>W!fZ`WORLv%CnCOlxryMH=Th4cC3PPtXUWR;Km5}w zlVjfe(6Onj9(XXFwRy_CrloC)FjyxncyarOk91$r`EI~k*?grw&0u{z2u&(*_7UT& zKWS~H-)sBj#LW%w=TyWym=5~*-nui*Qg4%eP&U@Mo^>+kvPy2D<4od;9dTK^)~v@_ zJSG0Tu8ae#`kxR@1EhUC-(`jPJqMhp#VPojCE zOX~eTpWdTaizXUZ0V8XgXuvV+v;xmg2EHwZejq=LYL6uphL^am>@2qHL+ZI!EiDx{ zU9b{JNd&C;2WDKwd=(Jj7V^k^zKZe#v3g#$$L>#eS-9vXfGFT&BqAh^QQiHa-f$PkEst{DJ-+UIRYn zOh|D|WB-lgBO>wW>WEm+Emch1G0(3mLoZtfd(Pf$ap)+2?%Xb2mY3}!Sbi!=?!oxg z{XV?c{hvo}4OrgUpqew?8O_zDTo<0Qm!x+*4UTX4*Kx2EJuKl+w{)=DZC`_PxH YpiGp}A5MJ6w*B8Dg|ULOybSYy0o@-#KL7v# literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_list_process_12.png b/res/screen-density-xhigh/00_list_process_12.png new file mode 100644 index 0000000000000000000000000000000000000000..c49841e8be7efe89c675c14e8ca6908f2cb22869 GIT binary patch literal 2169 zcmbVOc~leE8ov=pfr20fS@hW ztJo!r?QK150RZ;=2%Z36L(Q)>5&s^OuIs`VcXe2zIu4VlvxG_%u*Fy^3h`yaG*o~J z#o6m_puqrGNTl(J>cr?MrU;Xfg=P#{BU9jP0D?m_3ZZB%s)kb0G^w0LdUn2n1WCm# z(sFt<9IfD@>C%WCB^sBrBwm!WR>TmKLOz9pHB4NA3{?vujVwd1Vrp2VH+q@4Y(A!t zpf?cpS{CW8Q;E^B5EoOT5SU?x3~2_w+t zL&B{o#S*4~7d~kV-?2#PYPEt%p=4!ck+Y~|OqoVO7z_pl_NVy!`{4*bRkmC$)cDC& zbEh=$P?bn2Rj8$y95QPZrec|D776$CZ3r?&bo4vLa@Ay_@RU(BLInjO!xWj!9M>DP zN-aSD>&AQ0s`zXLN)ezcEK@1M>mivtMaFaY_lC?s+#6<$Qi>Nvn8CwDnKD$a=JQx2 z{Dv%+ikaa-VS#iuogT!YQ^ODh;c#hTK@6@xmByt8(HXoc9q;1?@Yoz)pg)hx<b|<;qzvVKyN>r%El<^prG1URF>6jW* zrDF<+8%HN2&~m9LnqvCKSCWGGOmnnUZeQG$&4S)l~*;Fpq95j~%bM|77RI7=5U-&cTNx2~CXJa^t|+q|_Tk(H6U<3+fuL-I2czblc&5kgPu7 z#I37OK4`nJbEQ`#3fn!f>alvf`}y(u+Gk_C^B&D3#W4GBje8qfq!Duu#t~!0( zm*7hn|L{R?Z)5!G=@^+dYt`2!BjvhRZe3}|cH4c)J@oLO#2(xEd0oMpA8kw{kyRao zgM+`mc<}<8HEUK#lwG?eKu+gb9rEex>A8HazW(Lt_;^OQ!EmysrY1(O*H?|jlzNr7 zS%H0{Kyu;7;T_#BEsv@&4C_{c2Eq`}wP24|T=(XU($ePU#YL^Ftsx09)K1w@cyu|x z^6*ecM`_%+Tqg6Y1qfKa$W=S&p_@Z<;X{pS!%52`e)?9W)tYL@7tgWOdX_4#>Q^)| z3JGo_GaZWxZT;rXzBx2B)K#IqYcOnEYZwN;!ejdj(Aeyroy{;cZjG+~!Uc6pIlAJG zI5U&Je_P>i$VNVJ?wcE%YiOmIR6cv`FAZ13r5{~l?G1?ZmNZzO7H#2lUEY)>+{X#_ z;%y*Y?y%9F;HzwIExCIC=J>*RNmSvVld^HXGJdaTRKy@Fpf4%57h!8Zxa4^UNeO za&2ErB2s1#0GMOU6;KQ6PE&qgM7VTZTa?Uhum>M6l&PwITUHS{ZrT-_yzPg*EuMFy z33kQZ_lb+PT1A~R#l754+Sqoj*OdqXQ$^os;*oxXsrr_wx^dyjGx~}Z1mfPJ?Hkfl z+&iz1A8n4T(Q(S_$Q&jW};7 zW@Lt0GG08J0?s7s8bN+eH=Uqc?v;Sm4v!-x|qRo>>;{ByaJuYp4sTwCMXo|KOAdO4^xc3xrm8T`E(qIU0XnO7@>P z`BWJs87(hc!B(s(b5$;L8QZzi!Hqgzxi??&i!kN+-jJv<#~~-_c}SULarq0j)t2ZD zfLc@&d3fbmv6ABgvV*T%69#mlO`qsCKxGd(*~ahsyd0u_Z|k1FD`ev+``-Mm3F`@M z7t6|A+r`xxmym&cuy4EfLr!UDy^_7up|TpTwYl<_t<<9U{1ux~(P~e{j>L$*+I#6m zsrsiz(PItmKzoqHudZbf6g%`<`tG}3e{N0L%m-&n_JmXIE;~eTy1w~XU7-idV#1B{ z$A>@58TuKY)VwCv+-UCKzv-*~8LT2>t>tHX{^9iJUjrq-9HjVF&Hj8^;xtVsn6QRH Y#)7=VAN-J4ZT=bHhb`gNa#A+^2Og7WX8-^I literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_list_process_13.png b/res/screen-density-xhigh/00_list_process_13.png new file mode 100644 index 0000000000000000000000000000000000000000..cdec394348148126f3abeeb3160d1231f9521b07 GIT binary patch literal 2206 zcmbVOX;2es8ty2EVn8{Dg7Ins2!bT(96&NK5)vY)2!<#u9!rxnAwmv2jRY7qptv&1 zp#<^5C^Igipdf+{h@cz-ide3&&M=FNawukyVh{=t-HwX0Kdkw&UDf@)-}k-G`@CmW zXM}E8V{Z1f82|w0L4iC0zWN#7c_#SxqI72uzSv^{5m=Za21|rd1mK7j(FhnMgC&Rn zfyGHXTM-`sm>VM%Mqm-a>)9fOj0_ue$ZDAqM+1P*YPAv;#UU6NjYy<&U()NEIua-q z`;x+$!PH9gS85zQ6VY?qEV<`9uSqy^kP#X z@Y6%W*-&u|TfpOg;=*^nq*x47vMH3r#6)r;ovc756o|!QQK&Qujpl)Cc&L)(7_9b? zs~l%7@DP;WJvl5s$D76Da{U<) z6ae|ty=Z)IFI?pCXgm&M78@j2VX$0;%<@Wc-cMNWUt-x@6oD}XDpV-qXFDJ?R)Hy0 zu?i)~4P%laFkC7ZD-u?PpTK6L+5f0adVgq zI)_WAdHHi_kQd}h`h*q#KRKh|&QJ`^@juNndxUqOLHykM_~!HQAaZ7C<)&XpwEtpn{XB4kFJ-#qsHt>s~%SFL>E} z@NxPP{Hz)CYqNuFB==$+NW{5g7PYw+6W{HEj%<6q+&@=2+*99 zCKB#Awrc4)+pmWXjpYLeQ?n#m0uXY|xU0&+`@55XD9Vi2o^vTT<8OJ>(+k!s;C-Xc(*(Dtb&jueWlz~bt2RuBtp{RNU6UD6RssE{&nvD73vDu&gOr2c0~b_lw^;pArF~6n z&f@%5Vwrq%$(;qpmKxi^Z~oP~!EXB68@j(|P|~?YFM)X#oe?pa*&c3n9c6oT@Qi*U z$s}X+rp6R}c4N=e!qGE@Z(b%96en{wl`WJ6bwvMa{VIj{s?9H(b;kZ8(BiJP>Wtjd zFr{OZ=+c|?i_K-Yo6B0{hAwuP?259OCzpA1JgWfL*oP_o~Nt8uMUk7#i~Nn?U=KvQ9o zQ#sB#(bX|G2OYwGcofS}HjSH9CSIr=&<|j73t+UQ|1H=;$cfP8MEtV7hSpksv22gY zgXj#c>DzqZY|lgjVPtJ!BFC;zHW>EAWgg+j@0U`{G)MHbB5z57!}qG?T0js3HwJ1xy4kKM3%Z!r#bOwj9ykP+(bc4f$Vm@ckrfLv^1 z=HIq<&F(*(H<@tRbZp5xCWi=LX>7EsSNrr&EAv~P7$31F7%gA%RphQo+lVvQDfXoP z^HopWfWU79ovj4__HR0Pdw8Apc|_971@7#H>vQz4*Nv@CeG8#u^5Wb!vX)43?k|6F z+Q!*5x7upai}SR9M)s7tqkM18fcyQp-jNP7`?-F1ezSW92?DozdJ3Evl@DBPeaTPv zrFPTZGDSu88vA3wtKsF(sDi*q_M~YxtUt?d_xBk;*I7JZ zdu_a>e5~(y``rP)_Ry4YbCGVTc;zWgq4kcYvK9AS*5m`nfbE`|x;aE3y(2B8d+E)u Q41Wwk0ULOi{iD+U3xaBlTmS$7 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_list_process_14.png b/res/screen-density-xhigh/00_list_process_14.png new file mode 100644 index 0000000000000000000000000000000000000000..aeb2852957be1d38837fcb94e411f48a3c4957de GIT binary patch literal 2223 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_list_process_16.png b/res/screen-density-xhigh/00_list_process_16.png new file mode 100644 index 0000000000000000000000000000000000000000..5bb072b07b976d613d1dd68022721b2219c71fcd GIT binary patch literal 2150 zcmbVNYgiL!7M@^4z+fY&NTm`6DIz49$qf@hatD+kivc2HAtob)kc-Jcf>>^fEftrW zpjHH=h>~~%D=Jn9T~rWl)m4{nyDlm$v_)Z;rwU80J5g}=hfja(_dGM-?S0RC&iT$a zQydc=?&|Ws3jhGFkrBdJtmoPvCr9jUQEh*Sb)Kk5hHlhtLrro60`Qc&tq3VnBTq$Q z5xFvZdoL0K0CTpfq%u?{iQ*`98j9SGp_ny#j12%GVP?Htp+->BRwPxW4F$(8cY-99 zG89Z;N+5||fTXD+b{LS2JEEnE9cl$z35KmDg_t>*0S$u6NoGxk*2po3g0Jmzu(5ra z3X)z!P<1Hy#wnR3h9uA#5E7FDkrfaNCb1Y4m;tdF>>v^if*~qQqe8)C7~(L4IS@>m zX&|O%P;TSI3dJ*8*en!GLs314N;R2G6ce4IGo(^sHk(a_XjB@Fj3LOzY%MA`leI?Q zSqnnMs4%GXs7j|L*)7Vq>N3$#5cBj+2pYXa^474{IFl$WWmL0VPlYKERim-T^%`wN zW0C*5@lLc+nyp8uv4~NZX;5J2vCVgujOFh4h3r7g8_ouU3Of{ehES)-)F4_kQWy$i zI~1i#$q}y>1v7a}=4w8ZE`nj0FJOpPvjsFdLqK26WD93)yo<}CK_a>kVhIF%1`LZ} z9xGTRX0sU#7M~#uhJ$Chky;}v*D8=%T@|J~!)5+1mm@GBa#UxK>U0^i6%doALv_Y9 zot`Av$fUre1eI2)Ga2p2^Cns$Vo+rvO0hwwA-&EoNA(VUx)>6$pkOhNE)dw`<}n#` zo`6mZ=JRN9Fw6pHxXS-0XH?7?s=YY=r&wl}unM#f-**U=Q_^aQ_CR63^aG&{qR(!ivuk{pWzv}xyu}{+WA4? zs7%f+_%38gY{2axM+_T(r@Za5we~OSMV*(=jd_LNs*H|~8-CU?_VVEd*7D`cd)8O) zW8%~fweI@tY?V5wl<85sAY|BYajmCXYAVa^Jo8KLb?}mx(&O{@^7^{#rq`sBaeTLB zm7}t|Xis8FJ=NpiE(Ik4>dIBscknnbv#wx?#M%D|&~xx0*r4dSx3`$-^Vkd%TNn-( z+ve3DX}XHr`vm?+gN1p|hqT*yB*GE5&t+jUUaE9S-X;C*8LS?@o#%@uFbb1EhGqQp z$i$YV*EgQse9J32ZRXtmmh=NMz7qoZE5z}3p;@}G!Au*v&^ z-uTJ4>YMp>h5_ue^Qy{}lQW&gI{dN1JMVeQ+I1+Ok&xpHI< zuebzw??<#f-G+($nSE7E^B6DNd6>HJV%kqjC;PY8l;-5*bPn6Xp3{@vQHE2*_b0da zMEQSlXXT!_r$1MWnZfEdw|du_`*Z$TIOXWKK7Bvn(F?R)o#&pgX<~wDqdM+POzq&{ zm9BvIs;~MA>Q>5>drFQ;omp|VUm1j?lZ3!c+{%A_(sQ97El~HiIy+U*O-dDXHx2sP zl3Si1E53QI`Oz9yblzHS=Aq5NGb{djbnpCJXPkJWPvhC(>is{Tz=wY@f4n!nxMFTb z{H;38k`phkSn!QbxNknw$F$WPf0-MW;FF)8_0=kTqeXRgbhm#JZo;(Cp`smc4kXTB zP&RT#1l;$kcYO@rM_SW1ds*@R5fCA99e0CAX$kNdVX%#`(_?;a)bt?=ZvVh_NnIlT zq3@(~mNXMyEx#c2PoD|mhc7+EPFAQR2WQ>356BLA)Y7 z9M{C}TYuMTPUufqu_@>Wa0?V?Dq=gQ4wN1h545(FHI!Kb|MrKIm&wb!Y<=ytE?M9+`^@Os3fRce;XS4JfDf99?s8mAOK%N=9NhU$IsaR{E?z);c0$K G;eP;oA4-$} literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_list_process_17.png b/res/screen-density-xhigh/00_list_process_17.png new file mode 100644 index 0000000000000000000000000000000000000000..b7e6eb62a13269a062956a5f8552a42b62b5f8b9 GIT binary patch literal 2147 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 Vg$_pHatFiDLl`HL-5k1M>z})@Y?}Z8 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_list_process_20.png b/res/screen-density-xhigh/00_list_process_20.png new file mode 100644 index 0000000000000000000000000000000000000000..b50abde7adc2e6147e10d480b7e8bfd1367d1942 GIT binary patch literal 2202 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_list_process_24.png b/res/screen-density-xhigh/00_list_process_24.png new file mode 100644 index 0000000000000000000000000000000000000000..3dfea10bb6ad16aa0d8a83aac52619569ba529fd GIT binary patch literal 2204 zcmbVOYg7|w8vY^(B!F_W4GMM$UMVCq$s~|SAXg-46uDFoY6;0;f+Q1@p#+x2;KAJ@ z$f8hhD2vyYT3K5w3JTteK)n@PEmB31Do2GPisibv6BT!Vc=}`KoSEUbQ&RJ zC07Y6jZ#dji_9@$u{q1))H!R_d<`Q!3<|XfNCkR~P(c=bhQTbb2pO;R3dp@p%wj;V zAjDcB%4kT6n=pvWgoD&D4}o|n6G34<$`6FtFaom>HVY08LSO+mSO6o?n~OnO zGilNUF|vp^w#bu^p(O~TfW^wn%3@}5n7C;T3*qzmESSw=vx7)PkU85xs4PJSv;U+9 z8D>_SbVfpl8z7rTRVtoI2pOcOuS3uqmCCn@4dyqAB2&h)sEjOx3A6NiTU@WuW+Ddr zuN&_~o8z*L7%K)d7iXE9|Uwlo`Msy6J-qz!Xy2^1Z}7g+_FBraF_kud42O~If&G#OEZ^n?$|f) z+0<|9`dA6n-zRB3yng~v=INjv@_;4hv=qAE47bdE(bpV!u9t>_?V&UWk>FR~9eZ>Y zcJA8`b?nrkag-{m-H+c;-BxW?kDr#VuBn?@W^{szznCf#JjuVGwLf`@S7XJs5r@I< zg)-^(6Jc%#<9(|hk2{&rc}`g$JX^gnWh~jbID=AkKUYv>$7oja7kd}%is;c7KBxZH zwR3I{XXCIke`HZELl^~SZe?%Znsja3D$jQC%(uIo>3D80IJ@y^89#id$=gSKhAJr@ z^8$pMV$l|t^R=y`L)l*FVeq49M{qSm^qH6ry~I`3kR9+8@LI3V@s-S(v1=Z%kF29A z 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_list_process_26.png b/res/screen-density-xhigh/00_list_process_26.png new file mode 100644 index 0000000000000000000000000000000000000000..b57750f1c21c94374ad13ed8b18e78503ec3c5e9 GIT binary patch literal 2107 zcmbVNc~}#78lG@pN@_t6M8?4jLNd88NHiowf?RSG6a_LLndEr?VKSgGX}sw^(6f~_Lk)=m`M{llk!>^#rR@0j;}zvK6PGsRI6 z>lZk9H~;{!Ko%m2#>aK$+s+1mo>Oig!iOdL-~@dPma5N|Yf(UiU@0glQ_0iNXjG2m zY;Q*c0l+d<8JnO_2oK{cFcn2^#!!qZ4bBFDz_mt=T#r_H`6ez~DD9EBv$qFi)2C|tH8k5Rn^87(Ml}3eWbePH^)2MtFhfk$}a~FhL z(;}(-Xo+;r7QPZd>3Y3}55w8n*_3Ps1=FU%G#-x!Q|U0BPR0>rU5;8WHAC3Ok zjrXE;u{jzPjz)EuL94*eBh_b~jOXt64Vi(sH~dJg5*c`Wr#bk)Y3_2%B zM5l3RY-o;){69H^ac5w2ar{rQ%x~cpXr8_+eSGn*c~CXpFL0Kh6!CK1IN z`z9-Bkz-VsHt|`>rl?jYCuzfJ#mYlj-(9fmK@q+IX)M)v7aTb7Z$1_AQ7k@lT-`o# zsHjH4hIWrk-gR{Q?9r?5FWhy>Xg}u{bmHanoq0{;+?_BCcdl3O3;+TEj4&`TaNnb2 zY;d1&?>DI(nI}m@8}5lZJ3BwA^WIcQDmnhFb3_+5wnlY^EfCDL!) zCc^f&y{C(jRfMn=9mk1RNQvL~d31enGoadcd})4~g~?XEn(@bb&*?{6uC9biPTK>^ z5BAip;K;AFx26p^=2L)GMbjVAntaFpMTGp59}rs`fJe86v-Y2e;I0T+W5oxmZ)wZ_ ziEKUOdHF{hRg#HdNBpkTw&BZ*u|HY3`Kopm>UmKBZ}e!4D-eUch)KJD{!V~knT^o3 z*{b*#5vS5(JS2ktXW$ue%5!$I<4O5OfQnovU$$D882W@0Z+Rsc=(kEGc{mqX9QA)a zXn8j0bEZ=tbK6$ZkiChcIs-JPe}R9u;^Q)=CMJ~KK7i6L0UMY}{B_E5mi$_+h+je~ z=h&J&Nxh?+6sk(KUj+LBVW_OI#UM25TvOV<{rabePfDOa)#c~rE*3XS_Y10vs%rl_ z#7K-ml}ngU2w91v9@D!{9_*^IaQD30^o@X;P8#2kv^qopt}oQ|jM?m60PqY;vPi27 z$eKK7LYcvO#Iwtyzqre3W8O+&&nVE4V`_J87EhOywB^+tv`^^|T~&Vcq)ndV&a(2e z)h+jZKY!Jw%`N)RM^l;S)>^Nd7%8pjWci5_|6bU&YEq^-lj!u-!W&l>`wgwB@(=g$ zgz>`^6N$wt*5JGT4~2_fDge3ltcbUAKe~f(VNo1C$#$JrewgXl22|+r@r^)% zpuMiX(}B_Ql=I=0kbCZf7h6);@bYCfu2BE*@XN=*!i5V9Lv}q~Qxun;abn|S?iOMG zZjJ#FX7iVR$|0O;DBdvsx|V$Y!tBpK2eJ|4#)9FRqq%4`pZn=HaGAIFu<)>MFxqm* zWA}kz_AfoL)=*tsT0I=;wQO0cv$J!(YkzllH#VA;w(Zi?*j09NMMnl@Hu7F%M8vNH z!^3$GE1$JLZ%l4$Yn$*;I8ra=Uc32N@oKQ5%H00mp3TVw8({iyoENdH`?&dcE(?y3 J)CFzJ{|y)bF!TTb literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_list_process_27.png b/res/screen-density-xhigh/00_list_process_27.png new file mode 100644 index 0000000000000000000000000000000000000000..c8cee33656acb03857d8c41b9e2b5da4a1986658 GIT binary patch literal 2155 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_list_process_30.png b/res/screen-density-xhigh/00_list_process_30.png new file mode 100644 index 0000000000000000000000000000000000000000..98680892b67d8ba022daec469054784f32e20bf7 GIT binary patch literal 2198 zcmbVOc~}!?9{zwtBh@Y*r6{W%LRG9JnaOFQ!Q7BSFhUffKnckZvXD$nCK9M8Vg*YP zDWU}tYZVW)Dq5|89IguXKR-r1WC{WGPiHf^_`1FsR=b8Dg_x-)U>wBKb zRY!(S@Sf%k0GOZ*lSL7u$o*2r5Z^U1vjq*nlOWkkYI(qEV>M zkg?(-x&Q#LWRoTqk5xqo^q85hb7SaEvz1^2uwbFns?(>UIFy7MO%@@wucn>~nG8Z| z3`Yg4tWq?^6qad2qcbBl`pi^4-#}d$0xfU~2m@vm*FjEmn#C?~3aKyc3W<n?Z$M zLhw`}^_5exDm5g6dbn-7>xAvbb30Aj@gV1gwN+QU?zjfq!9?3J;Q?QoHUC)aMXef zwd-vrD{jIpklUgz33K2=D&gs?5X@GU>WyKG{dJ;)+ZKkE)QxUZj6n%8V|dN>H#1%DP>}f^I!Lu z2Sjv z^#{JGO8kD#@C1A5v(||83R?4jx{N1|^$gT!jJOv5qvz`7%b!2mYBqT^c&=OP@qKmm zRZg+|)|kF?cMr>3j1j_Z(+wE5sCTeJVLbs&w|aJDD3a@Dw@Z7Yf$U5VfJ(Jnsw;Ci zGn}3x(vlsE#{zAqD@&{SN+JY-YI63$oZjItuIcVOCxbl*sJb5F(}GPG4T$yh$|~Iq zklD%f-EeMy-klR3*F_G`@;zT#BUWqVL6x3xfzO$ON1D#lX;M0^e$Rf-T2Gps@)rc&1O>1$$daZVZ~1cafWC66*Wil%6wH`p;N%vi>{^q=JkPl zX9rM0Y|hYktDj{I&N&aV+HZ7~0UxTVt=l6p(DMmBuR@#^QS9pQYJiI?y^?dsOwk7H z;qiD&uw!GdHFey&^#$9bQ==WPEzG&JY^Cd+-k;jnF0S7PRjZKQ(JWd#WmVAeo4br1 zqU)dKc>9a`Ev4Ce=wOX{B)%{~`$LG?8$>^ON~6?n3QlbUO77aa9p*ELD-puNN8m+-8{;F7_?!L!ZH&5LH%mrMFpmeQwNM^uL8KLcCc z^A|5}o~@~Q{&-+OcC7fvl$DoT8f|Nry5zpnIqMRwSqn{)``#zVEsuJ>Bxb|W(74T6 zeYl{fsi|pjR*Ws;@_bQd(eAWoa&RHG)7V(GHcqR}J$>rb6`~lb>K#+re}3W9^V_6^ z8?>qqe2yGFIue(VutvVZY^MG5_U({Q;^Tiwj%lD`knhluUcP!t)_~yUc#-yR-a?Cl}Qh)a;mnxb6p& v)Q@|8{4s2M%7ftdv3xp+1^vf8hUPW^N_cit%Z379_n(4N9x3})l9=^7f<$U= literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_list_square_thumbnail_normal.png b/res/screen-density-xhigh/00_list_square_thumbnail_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..c20f0b8a1eab1e942580b54d85567ead4f5f9582 GIT binary patch literal 2992 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 P`-gV2bH$Zo$*2AUmA@oU literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_list_square_thumbnail_press.png b/res/screen-density-xhigh/00_list_square_thumbnail_press.png new file mode 100644 index 0000000000000000000000000000000000000000..bbfa9b3f8d541e8b803492c0f69c1424f75d2172 GIT binary patch literal 3015 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_popup_bg_ef.9.png b/res/screen-density-xhigh/00_popup_bg_ef.9.png new file mode 100644 index 0000000000000000000000000000000000000000..f19a0ab42652ccfb1f0b515b31e7c6da1369254e GIT binary patch literal 3626 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 LNkvXXu0mjf>3LP@ literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_reorder_group_list_bg.png b/res/screen-density-xhigh/00_reorder_group_list_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..9e57e51c976859ae9379348b7a46656681fcbf73 GIT binary patch literal 2916 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_winset_more.png b/res/screen-density-xhigh/00_winset_more.png new file mode 100644 index 0000000000000000000000000000000000000000..473d5aa6a8e79dbe3d1ca8bda054d524fc548545 GIT binary patch literal 3310 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/00_winset_more_press.png b/res/screen-density-xhigh/00_winset_more_press.png new file mode 100644 index 0000000000000000000000000000000000000000..cc82721426d7838c7764744883ddb7112d39b7ff GIT binary patch literal 3306 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-1_Reject_message_arrow_02.png b/res/screen-density-xhigh/C01-1_Reject_message_arrow_02.png new file mode 100644 index 0000000000000000000000000000000000000000..420b6080f50004063e55c339b16d8b38a45f361f GIT binary patch literal 2948 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 Q#S8#LT{E33h)c}B0Qc4l2mk;8 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-1_animation_bg.png b/res/screen-density-xhigh/C01-1_animation_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..17df09a77627258c2de42dd5e7344e55fa26d5b8 GIT binary patch literal 9104 zcmeI1=TlV6*2Wt_auSIm91sLVa&*YdkfXrh3_&Fih)7hDAV>}eL?kl^DmjRtgG0_B zVGxiw1jzydSAv6*u6o|8x9a%8`v=U2uCD6+tkr9;+Rv}MYR6nP(x#(6M-2d=)78;1 z1>n^CpM#S8#|jpqo&95?^3bvH27u=5&p`q*v)KWlHgzED+dq^YQtC@C?ALwT)2va=C(WMfgXjGOCoY{1DAhD@svM3Isxo zTL`Dic9~hu_LOa=npmrU28UFr48zBrJ^*r)Sbn_i&XFIEz5<7nOTf_I6kTf~Ke=FM zw{W~PQ0k!uz?@I;;IW8!^|=s5@({P)02b?z-6geXZvoWte@d{4GikF;|yf)FR&$DRP((BKz? z_f)HPQ39Zm8!B9>&biydF49bXzUA~(3(cX8TsV}!y%ov`rFIB8?`3nT>>*SrvcHl` z*hc(=8kbD7iF0JK2fbLU`CEEr4~FlylsPRz^`TT`>fMxQZFwi7N$g^gd%u zEjnaOar`{*qM1!D=qJhQNSemNdCYaVww1k3L87d+YLgVZfz-pp$a-zbC!tj)${%Ro zz_3N~=fbs~(Y$x?k<3hF&CPo6_4=H0yjYR^oka2ut)M-26@YJW=mM7rxsOBcx!))kEs;>cpBU`KKIvcF6>DBu{5 zLonhX(G=GV+K*j(o>1gd*lA4x^EY&GBDb-$YkgM1zL>Dw@)>#~c(yMpr30ezk zqY`na(JN*XX48e#g{+3k3VRh|C9e6Ld374TO?L`6({mbcgya~w7tZ)Mtb9KoBz^=x za{FGmr%j6_ucqZE$J652l{#cS-Ich+yYOF3VAtE!VEMKwwrO+WN!UT9=ObEwYca&T zbXqU)FSvEObv_p$7vL4pH(WE^%rrH`7F;S&G*C3?>hJ4+)<2pdo24u{Cbg2ak~Nk! zTVrGCXDNay!n}3Vty;7!u-L@Z--)njhp8}#>)G6h}K1br!&C0DTbYcFPn zYYH=&xa>{UppMq$HnMB>=jE>5zFH2 zobGN|)brW%ygnB&w1>{B&T8E#!oS><+jQBCntIwN^Yl`Vg|zqkwr0UCHWbt8H<~J^365fHND1d z?m0IjW?>KbP8?1GP6k0?$VCzqX-ueksMV>1{eb(tO$n+Bc*n0*6C3LBxma};^~8te z50_fXd7ZmIKPu-Xtfb?Ta4z%_SA#!|zNfHVwvB5GrWK5cia2i;Ddezb-s5qT zQdVe?411jP$P-$^YnY5dt)Z5k?)8>AMpPYl+=;6Z=T4z`=UV-!?6id_H3nMn32rGg zCQMOa^~dx;QcH6#_iyx7_uwDNXKy_{*DxX_f}5@(cqPgBO!lh?(i?O2Bary-}+leb;g<)XW=S@m)>m3W<;rbO-;V%Yo;9>H7H6OL5gHR8=l%ne7JMjQ`x52^{O6)`2N`>6+R*UOFEJU6;X zhe(eo_~&^+Vow2H6Ek4d`0Qx=*<7l?wsfI(C}YeB~Z;0xakxo z@5Kj}%~1^hb&m_hC4LKb1`U9}DM3D|Vhh^p1`)cDragImqMxjTbX+63~5 zuz};Gy+j7s>BNl0-blL0^_(jz5Xii$*U{=>A#A{5Kp=@7tU0){rLOZiG@`PuEYpr1&&vZ}3g)__5@T`^KsI zbfB0YlE7yl-v=4C?8Ugblsn=w7Oq_R`53bDbmryQdROCCamntCnYo2)(9==NlGtAf zy&FeeTRpMXw{w4`f}C`a*FJW@%gt{8ip)OwXdgcozObIMVU_bw1%w=ph_HWRS?GV( z@^kD&NXK=cjKH$>n3W{W?b mz(n8tufEx7vYhjy2QPx#Ih+$#Ie+}}0J@q+8Wm8RhyMk&*fB%^ literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-1_bg.png b/res/screen-density-xhigh/C01-1_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..0f9b4805ba6dd76c633a040978405bc8f8673eb9 GIT binary patch literal 128622 zcmZsBWl$VUuX8P3WiPqNqfQLvVkpsnrb=H=$;=;ltRqM$(M?%`(d^u-PU@LkK(bI{lOM<(^S zbtkVD6`ZQ(rb~)Rrz;;DOp?UHL61eK8bx2UN~$yPMo9^kdaN)CB|bhlj#P&WHwJqJ z24nPN;--HT)DaHGt&)HDW+!ZPcx3m0 zM>YhT$sIt5*=$Si31dV8JOxQgax(N|^Z}537jQ5E{Tey_d~YKW1Sj%YW=O$5k@~%o z-m75-lK^CY#LJfhWR;PE^D*bsv;YXsd&=@h0+^=KlOh!+ z0qBVBq7(s+5`bFprx+!G5g&lWUTs(mu)+=CQ!%vv2xx2v^v@9DGyyPi0em`9;p_lZ ze}Lr}Bcm_iXBL1&`NmN4nzNn|!tozcSxu6iOkzqQrkLE{FboZO-m%T7kaLoVSRq?w z%km8RWl;)*2odbuP5}UgNu>W}dkgcO!LOg05s7cZx8Objp(7Zqt@q)F;2L*X0ASZE zXb#TB+e{TKfgbD%FJ`_#b^MG|==~UL-$WqW3Ml-yW_auVKiDW0C3dc^9v&R5s1D1U zT1^-R!W{-J`VC=Uo`WQzkM}!$drTn$<{=+YpLPbP?$pcPf|Id+T5lXBe1Nv&AfPl0 z48tncokkoa`#MD5;uW*wZUxF1qUDp>|1i%ZZ1=XgUQwjCg#nGu(n$VE+?D1wC=Y6^ zghpQddyfFXO}E>?Up7pXV8^gsun*!=2KJ$l84zr*lKc$-_^impqd(CsGl~fSC>Dlr zG|Exm4N!3PqrV+M+Ze!sT8jLXXBr-qCzQvw4Swrk$zB^O&lWM=NW)>t`&X7ms9(o1 zBE=n_XV9PnU&@`}#R@ZjfUPG43sr6mlh}%WEegpx#)vT`*mX3AYj5@P^?P-sNY2maKMCLO82xUCAEm7-KXm5Xs^ zZN2!j6UYj4W<6S{q~b)1AhR`&1ZxS>3Zs1e#}pWX!(aG#Muy~nzvseAv6=kMP>WkL zLe==G7NtA--Uj^J2bCy9sUJ%O)kmJr>Ydz2BXuLqm5-HlZ<&PNtYL{_q5RYtWMxRH zRBK`Bdh<=B{yfpV^88m_#(!K@ zIYJ+)7*odAY+af##8SEFILE>d@(zX$1P`bW=xjRl|Je1vFT1Yt5O~k9ts_z z+hq#K8I)w}ZdMlQzY$I_k*_Oi({0d+tRxol&K8>vBU4c;t1C`hpmHR4d~|9!_Ud}G znf6XIW7cqf^52K!jAN8LA6&c$(y-Ae2R6za3JeMdN*{`bO!acgg;>f_eLhkC(@aPf zL6)0=5l0(G0BO<$cA9D$OByu?uYOf^dG%H`j=`d{@B18_ukKc{<<|>&c^k+J(}%gfRNQ~SH9~L3 zWkO%aouQEYBmB)xl7@G5{aQ!Cd`MQI%qq<)WA|rL=bU88qVg|gf;guUvwfz0*Adr| z5*Bn8dKNW}6OD^(U5(Ci_Hqez3H8zGsp;bBr7YnbDgI>vNDd@tIcK}w(!|$$dT>s&>l8 z!xi-P`Zm|LKr07pa)pG(ny%9wg$Q#J93%axY{8 z|JxFFsCwOh zGvEC&f1j7roHKY{x!!Oga^Z9lxlu4BRKT8ZEa*8qG^Vhlb2ul1Q;^2zvRxabrJxn! z&w7MjhevtMk*q7dy6x|ZoGPal!?Qb7zpVS(1%eM&MRsb?0 zY!N>YbAXCqW+Vrc=n%OOQ{>mD9|82Bcp33^yN9OLbGf*}PB~J!gwVRs!+|<_$FZ}- zI{HUQ=1kIz6MndM(DBkNhSiZ(>`)LcYj|Y1VT4S)dz2B?9Djze&)kNB=eFXDV!Gm1 zjsw4zSOd4JFo$$CkF(^OXqQlz%m|OY@zkPGo{`EIwYOqC9Q7h!zw~WG&u=65^7e4{ z{mCf(`D78G~cIQ$q{l?lEpFK5c@F4WBU!#3_39I&WX%L zttgmrywkk-$f5Bg`7EhN*pKOtU>Vn8=TFwE#2$4#_01gde6sBCbglwY;=TM~$w`Ud zBjQ8xt0;H@ph}#OGF;E zG--59J;^$G1}SibZNvAFI?`^v9=%I;fb$(kMpnH#aN*I zPUAqs>nxvrldYVim;GvLZQ7+ZB|W!vvh@S{VV#yBS4h&>PxV%R+-dD!=t7Fa4LB|@ zEiW*L=Xt|&y|~REVl%VtOyG9eMd-CVuY`z&Nc2d|nB8=E-88Kq5*v0HW;cjixSn{O zNWxPVv_`vgyR+*%&0IP!e)P8b+duxJ&KI58yzBM5CPOSO=8H*f_TK(*d;IfwzfHCo zGtXysYo%?+XZ|62XJfeq(f#FH_2?Ppg z30Vn~5qJ@&`R}F0#P(!7VE>>M3Se6>OFlWg7(Q7~PR1Mbw0OEaGnYA6lyQ@h0&)!~ zgPruBQZ}rQ4350(8}}9D|9to9^?bl*!-wXwWSccwCICS0mTd7y8Gv+} zrJ^XO@4I#e8&763U3iP0oj*f{Ol=*4$8Ka54k>J8=iZzTKo~y%#yVGu=w2_hA7zZB zx|lA#8uh8+VB7#(hGl1QOr0S_ni0142rC&G;5b1(f)|l^xh)004BFc6h}uc81gu{8#lYnWe4F3~-g%ZmylpBdD3HA$y#j*$Zyf6S zyw8I|qktAWkF1x^1y^5y^Dj{DM?ERXrSJEZZR^RcGx>ZV;W6ka61ehsO91@ea1Z@Q z-FOTj$KLC4@P83yAGtuU&?{Om0w8qczldl4h{va}hm%Xp;%#_++-XU{>w@(aaV4Ar z4&Lre*htxbl(r#!_8gIUy92ZZUy&EgHN3oDenx>0-d@)%=K_ym&r|+EM}oln&zpYs z_b`wP?=znC{xY<-!14_8|1mgNlzz5*>#xNx_cMY1?L|q%BIuS=`qU5sbwWu&v=z|E zU(dZhX7xVR!=CD2pA8(MKvzC}#7HlTqyq^pOIHLfl-*!h4&fc>&&5s7R`hlwegkw} zX0za$KoSSU72LNE0QvwXa=^FUKi2ofymny?X1APY*^jvlfe`XXdz@* z^nAU>AsKPg{NVQ6c)QmDaR5V@f1BEVe+5LW2I&B%WxVE|2ww9+!s}4u?t%i4EAJEU zdj)8x9`L;D+5r#Y?GP>Fauo~Q3PQ*SkPluNgb9O6e)>VSq3lD{J`qzv-dOjefJ+@o zIJ3(`d+{!`IPfLL;d%Yx+^}UC_HXPE^ac-Mz^z(fxBjeJ0MlwOftLHj@*ekt7Qb)$ zYeRR*-F}S7>^>tRgrU?A58cbxj0K49#|OxlK$yu6&dl(3-!f>Z9DdOZ}z^#!de1ISo zuN$AMF?hA-1Ls=&6-FRjX8L>3a^j(R_f>ZqT-x6O!BnvJEgtwGJRG=V4o`{v2S0d4 zIIxk{zvleKTY3UqZO^OYze0D=5Q#od>;IwkBOiW#nNZ;K>UZget$rarX^5W-!#j{L`zH)1f z1+G!SoWd?FbczPSd2qkBf&wjgPvDmnIEz7+%=IiB>-0YF#2gqpKj#C48wOnxINTR_ zy9FI?!S!5Of%|;{Er)wG5&c1j`9Y(J_uFj{+TXOGK{wmfJD)2>L_L{6(5+{{D139X z=JaxD+rS!{lYb9p;4UvNpNu%}YZ`=H#vk4^edOkQ z1T5YjweaHUJGuRba=dMh51Vkhx#XFHey!RBx`;g)=8h*cSq8NH+1J{r0k`Z2FvpJN z`MZlo!8dV5fzHO?M=!2KTgRc*!mrhW`Cwi|zu?2Z;l*ak_P-i9DhvmH)cZu^AkpIf zziIrRX#@6bO%|U(X9O+2^t<;5Nua!($SJH`eprCBpw<5~?tIQ`Fv96`|72mlE%W9c zo>#5?6eB__aNneBQw6xw{T zR)7)F12ann{W*r#p1Zh=xJfr}Uq2VX)ZrUow^j=%O2I#ehM=IJ#g`ji84Rdcx6CD? zOh)uS42@r&HYJA;e-)l87^8r?=+H&*4TskGr5UXdc*sq%`DqY{;Ow-JdD+?y?32FD z119UgM-+Akw%6@y$zB0{4xc0frVE%%;aW9uI|KpghNjU$(}Di4ec=c!4`2|Sq$G?y zZwq9l5flUue1!NkV?gzYwq(vbfuj3=9g^1y{Gq4Idp@fnGU1fxr$N${icg%tAf8o_ zjrnaN6Jo&SUbKoFuHuT*fNNU~+6Nu*-0=1wfTwFf=FkM-KdQjxuKzCKOhNaxTEQ;3 zC=mKD1ioyWxBc8p`@8{u@CDi@Kl?OD^zC%QmGl46aP$M8VNecJe@H;!qXaxfHp7Bh z7-0bNsZcuWMhkk{yM@+0ociP~f*mP)JU&aGIs}dGyncY4p7tF_V!Zr+N(m&qK(xE7 zIhql9R1jG!nDQAe6P#I;i-^ljLHe(LK126UeFFOlY@XUL5&In1LyZmJ`2)G2z}**b zX#_!itvusqxGoH1iYTaz=u`9c0%o zi)uff14)lw01sE7@@!0YAju& zrr!V&xnI9fC^%Kfh3vzW3RG<`o(Jze{rzf%*)$o3U!)&Vmj|VQtJ_r&C!E-sBQqNR zp(}?&r~GXtqvxRX51PDT&>1%WfL_pN&QAEzlADWwZxBI&$Zk){1#HNqQxKTX(XO*x z5RSvg$a1wzmd>^NDp=MK*>xK%!pv4c_Q;m4@cc6MSkoy8F}B?LD7iek3H%H5oTQ#E z_<_JzpLjj}j}Zg{Wt;Y!kJO;zbajrO$(4sbeaYNjIKBAE>K7yf>(lw$ng~y8rr(-0 ze~r0%zUSdY#NQe>fG$N7cVS@=&_#3yBOpd=-Kze%?=KL?t_@coa{7ay@{)X1W{u!p zVy`Ms1FJ0oj6g01fAi_dob6h5lF|lA(-eLY+?HzdmEJvcnyV9D=0|gmidFr4?{?vH zz3o*2dPnP5wtboV_=nAqlp#G}eYk5`x)bo*+>f$$TIQzgN|GW)>4Q`@f4}US8Lhe@ z4({x;SMIhC#jnT0vo0qjj`YmRSmSugE%HQ8)Mw&I<#{ z3-Gu{ic!Ib#NGi3_Fja5iI#^=JL=*+D0UjO^XHwp7^nP-;`u5Mey1)8w{Mc!B2s?d zTqg0Ttznl-g{uuy@V=5-R@}OJHXbeCVfuo>KReN3_AAAuYpbHlp?3AWu54l=qJ*e3GF;V%k9yOUgwlEs( zuJG2`I;1QtJZ@@`bBI;D@i$3=Gp9!XXZlK_hYx5PzCl5l2Me$|k%aR!9?NVAL8N0q zx1(5(M>}ZOd^Rk|_kwv+&f)qFLjHQ|joNDY=eKxD=*%ZY&y~+A2ND^3DSLE_Vnd{< z6{sWYBc^%ynZF`Y(Rv;M&c$h$>W_D6c66x8WTjJIo3JL6X&S#Zhok;jSAhomRC{dqa=KU0i5|}3rVZo z>1Mp#^1E=*v!cp@DM18RmvM6dIZ3VyGwt7GCpE!=7?!Uwq7Q!)9}QP&Q}4MUl|yd; z=gj8ldIe(ie>xmw>h4J?0^f<+6Fmq0lExa6E_vcQ-E#X3U-uCSY7cFsmn}Xbi3GTs z{Pao;8F0`DV#%AnU`z9v_Kz9)q`9nT5N;{X)jz^&i7kBcvcWf<*c}Mr8EaG?rqu}I znqhcZ;M-WFcRV}mQVp2P3;IG<*KT?YHG^o)k-1(xBmJ#LZ#V7qhmT8%Qg2uffLo1R zV2G(RnXFad3hnJJsbnKEUNh)2@A5npO~R zNnq{+?PRgjJj>V>KF;_9iKla9Q-J6GFetQkfxK?qqQeN7vfYa?=Uw60ieCdwY4UDF z{Y!$2uBnqbfVZ9z75(pSM2lo-$lJPy2!at&ogZBB~9) z5AEpp0mBHHKyY5Xuw!@85(cXYsuQs|6XiudXDQkkgrm+cR{XG;{;OKo)`{yEGtX4P zhN9M(v-pSCqvtsu%w_(yCxVTx#T-!GDDMV=QLR~Z??|2xp2J>a+K|<~0h^B>-SWGA zu?BG1?u*q^?~HXUg{>LE7;?znw@P4?sf&4@Sm-YzQRxB&|9j}>l|Sb|nBouI?^11(yQ98~b`Y931uq=7^5WR{VC(9|_Zzr1%5XSGEtr&#kM) zCp8AZ{IB?)I5spQ_pf30oBB1Ve+hp+d;Fq(x^<=fy~`6I=-pJ*p20tO<^SckBK1pP z!Yw4S@UQBtE_HU2eiK15`;P`Q0_LuITH&Aj1?-O&-4DOo}mG|`a zZ*Kr@RD*-(xKsBIsuDgd1e$|@Qe6PEkAc35|9mGc&f@c_kDmo`KvW9*QuMR_1djEcehs;+L zgM9vzRL?~l=O>XM1uHYXO@W}5Nkf|-uCKMnEgzds zW(20${45y=vUDT4D2On9yH$>JE~7bB$;ss@e7?-(T#g#xL%Y7PVWu1wiVL!Id^W(e zSbF&Jz1N-MN5#-3;{!hgKvo5Q*SW9r=pv{5n(rqsq|n(>)8eG(tMHT%<1-GwVh3M{J<+*ZaDSfF_ z;qE-_#_TndWyJ6s9r4Kg0BJH&W*izrzeE)#r{Kgk?9e@{U=vTW9sVoxu+hn9W7 zw#9e2G7=8n=ocpX^@q*7a}YsHZkbm2oc+a;x@F9TRc4zSYBzT$h4AR*U9rBUNu+gH zNHX1IyO)ADK=3g7n+d~LtysXbj^wTsU%A9Vuy_TB7D?uqt!xw9C3U{G{%D4da` zKpL=E9i&;l<6jIoQ*Oki6vBF3r>)x$^4cTKe9VOx*FT%bWCNDc4!r)BhnBlRlR$zr zl7IaNsSE{5CKjE}Bd>0@xqsms4Cca)pXxxSHFj?XIKpeWqmex_pxJQ#7L8*0w=j_T z`KQh6qOztPDc&WJ;rIx5 z_U<*Xk@4|>*-aZO^+0A(GWKPUtc8z7N{XI(AM}Th>(97wk+3WhuC-xkw@yQkmby*S zyjBCHVCZ>O9TScA=lmev3DwHUM5isTIqI!|OV>ueX0CGlD#uCdfs|K&z7<0{&n;8p zru${!cRFZCS}vB~#XD<-7U&gRcV_sg^;uG==NZ1AuU@Ew$Zyvu7ouy|2*Nq} zDdo2-_;t0ENMp79p~<+w5dZA_P;N2tDR>pu_1^BOopo7Us9(5ldnxG31#e{X+bj+M z%O@j~)<1yB+4IqDD<8Tcgu+fIq>bSbu1@_nTy{tGtRgY2;a|lk+9ZoF9J`)^5<2b6ay-s z3X~KiY*(nZX^rJRaEKZ$pcLeadPg@frFqFy5(d69FvK02sX-D(M8I-(Yn=WAYJ-^9 zO^Zv~=Ak&Ta@QP$!j#JTTq!d-^GMjFZw(+tXDMed$OLUp(R5d&e4WD1_^9#w5 zzHZH0-&r|&fiy~Bv*6&-uh@Hz19_Pezu2gXG+HCZ0`}wL%}7MOz(b)8=B!Oo0?Qw{ z7?`Ypj0BYlnf9AOdxcfw?N4l3f3#%@5E62gYC1Ryte#eGxv-)gEU=Q+(~QmcxCgGs z?e_NqqdI>muwKvP)@KJu!gDjvo60C_qFElFZx6>p;8gx0`3P+`#D6YVg>>2U&C>x1pv|Y}qyQQ9M!45^(f|4t$Tr z+k(;XQV8A(18sZTXjjbK^QJarJYQv~-{)GOnS8dc{^^Q8)Vpo4v65-A_&IR#Tl7VZ z`exGCRgdGX*2{I2fPKUD=D73g)|>|-0evS1_Aj+Z8Yt|M=}v;R9|IgHts^!%aCfuqj3O!1xr{8v&U5b}cgnA*8)>a7$8qNBZX+8B>5_Br591!B=CI_6-U~(oKDB zDLW;>zi1sc>wCi)a&kUc#@Z(VZ+5SZb@G}F2;%e^rDx02QhPkSHMM^0dEPfJiysl` z=1>F~uv~OrE<3#T4Hl}hIhKAum!}~4h5bHTu=aJ6uCsW_#8n;%qbpF*z8 zsT_nqNzyWuD%sxo+DafGlxq>5ZrRJklWL-GM36vr)pIjS&F#$@-j&VF1i*5=!B1?{ z!pEi}3#~5?6QSc;mZ0SbSJe-}CS^(f>79$j(lC&-@C9I4!){{=sdD}v)K6u3^8;wd z8micxFLgws>fFDI!WMa5UjKd=n=oUq$1*kWF-*B)GqijA-u#1d?AQ4IlBNq?-fJx> z!C9&$feky+ZE~CswJQGZyj+#0+VXbFG&VT1^7Q~_M7APGRaGAIXIqVSvxa+uh_X;m zMZiNoqo500)yb#6wMS|HMTI*JfxY-jXH-`D25VXE%PyNL-4I}II2nAqhpWS^-{tcp z{XtL%LCWtHHC=NEns9iT^~Fchbdz6SdWyM}!7t|nhA;jTii?l{>8woAiBtI}fOJNqB81ULb35s$t}nuMf%LLBVg!fn{>K z4B5?X+NexSvQSo>z}*}Z91(dol2q{!WqzuXK`3!)!0M;(CnhX5tVX)X)7gT2xKp_N zjugVW!GFz@FWx1i_((0G;!I+7#~I%RBlr0lvCeotnOlS;PpGzEmVkR z>>yE=7NTfTldmd!ypnAG81YwN? zNcXR7yIHBm{(DwBTSN8`FT`S`viOI^=a5-zI^dR0;OZnKi^%_L=u>_DT7k^!R`+{ghPTq0nRbRYZ@W2v zbv=&QerX{b;TbCUx_orUM5WLFetr=>=T?|mFDb4MQZu7MlU&3TIIWjvd=C7!(-Bgj z=*+Kjt_g$1tZA}*r7<^WcXy2Gj{hn=ee*%CL?| zL~$|+zwUukUN7$b$>NJKJvo*qPVzqsMwX9F2Tlo+5UC@I5t3;xkzb_Al_Hthzvu|O z-W3q163cpy^N7n3nR@NR92Q6ct{;o&JsyiH%l_iSxyW;uV!x4oAH_b=2&(v&WBy1& z^%hX+^N8IxH?{wmhLQbwp`CR^f!3|023YlFm^$!G9t}IETr!J~k?@r^qLr_W0$rhE zb|h{rgqeDT&o;B2)aeE-8dIvmGn~5bilRKoUYKbfHC)MSq(xh4s+1U`g7$48h`FP` zY+xSEnQ8Uia9veO2LBm56H(}atUzGAm(hUZTO^F{YTU_lngayfD>lEV!#~Ozfau$% zy)|U28+T3utn^4_Z8-H?YE6RgBs8?l)W!%2T3v}rRRo28%#I)Zt=7w7vYXkRP#^di zbzrqh5moBG7v1595w)3b`})uWNkytX3ee1o`pl}&)Not4n=;Yh6T)?GUTPv3xu{u! ze#0e)ap8)PSOavC=iSulCHfual6LPTyZ$6Y!k!`(dH*5;P(c3V+%XZ7@k(RhB}!q+ zs9!cik_wN*EvzD@i2Klqn`Ib{rr#pM)GG3Fql@GeO-(0Gr)^X_OXgbdt4K;ZiyI<8 z!rPWdLyh7{K*ijcPGh8NPe+8wxh7JYZF3<(9{p^ZTwEnm!5A9wAQF~|1Q`L( zk!y^owZ(6NMxRG<^1lkvaD5-!;J{DFcNFjORBE&icV3iD%>ojm@HXv;eSft54Vu5D z!}~xr^^MbA3a|17r=tjaomjd3IyUh=49X$iDBiE%mT}pb(3dToqMDk!|Moj zce{Ry33+Sl;;ED0&1tiu3x)bc1edYa$M$u$Yl-s2v6-&@dGnC(o=dm_$EZt+u-mxV*nT_!QNsf$^4{ z?O-gDJco?)v&e!dcKOa(T#Os8-{2-1f)Z!ZD*SuOFZrq?w>bpSpZpvNi!S-^ZBHAG z)RWum_(9m%QHoAf6aM^gc9 zdF44`@%3-3pp*zRBtVu5<)^1yUh0uOAIpT>O5RV|pAjP;nmUi$ySBijPz6YPy2ZS# zJ`7$!VE$YEp{gw2aL;!ueXm$(+LA$RDqx(b6qsEdW9n#&ay*EK*z~s1Qg$s`?&n!$ z5PruJaA8{7d7`>V(I0~@+@G#%or$hw5jzEx(J;2z)_kMZa$^3T!S>jMZSci1CdafQ z${u!~ZYe8QfqlqBL8;2D#e{@%;<|9s{)LJIWfW6Y6r*Usqt!*b;P6%8w4b@!*1Nf4 zQ?!H_Idrp|b1&C>Z1q7^z5!P?%~4Ab`8O~ToUl2!PP+&lrjF|Q$2TveRjoog4RbD+ zMIA1CBk&CpI;9IyPpum=8|vpy>m{jWNONrNvWL?QOEe7-h@268F{UWJDb+<9{vvo( zZG8(O5&o<iEy|4V|-KnF=~TO~#5s}tu+VJ~6DduHL|FJx4<#z{6D-u=#Qv&Fj{ zAbpPSYtov1Uh{Q5LykIYHYifI+w<68ss(n87UwVLTg(e3CKXIC)E)Jgw7ogi>Bw<) z)v!A#9YkJJA8oSj2Ju*O9swo;5XB)7>kW>@5`PlCkYcX6n}0a^+@a9;ldcN&umJ5M zvYwIX=91js=pZ4N?+mpk0CdycdHQXw^vMR~FS22L&r1{>m5a4m#dX)5o3G(yxDR(q zBxPm!BvD=Znscbk9kgYFsUJnMK@TYlDgAQie^NJcMptcUNpk(OCLF(EQ=WfT)bv=A zIel56Vm=Ekba(8ga-r1Z$i@Vdf5p3`l6ArSF13$Wrc&-PQEY0R`?~SlSIm*w^qtdW zXvmmC>L5!hL>a^vu4UNxp3t*NTcLV*g{W+!X5rttXl=$kPu?H%8}s)mV)#Y$8MpJP z0rn?yxBBUkjiz!{(LSteS|3f(o5z2K=aimXlRxoaeNiw^e|ppnG;0+x_u)rKw^DkV z28(3v0YV$m*y{D`O_Xfin$zZ3$vq6Q*EuXVjz*! znIXyGKK}}604{ab&%(d#2l*`VcAwE*4b!7{wO6}7{@%|AFis6Mv6O`}kEIar$RHpH zC_?yu|7QHIqwlS(@Vxv$J(LiX{zLNuP`e49CV0Ag{IV7MNZB5Fbz~@Yd-{538WaRZ zhVIG$XW`KE*9UI!GwJvG?fnAIYZvkZ!{-WMiaFHtoyCSA7U7M8&pp_vd;6641@IEP zZ2;XD6&h23a@+Tjt%rCw(DFx(-zU_`mt*QiMIM~l8JJ8#BM*5}JzN3{d)-|W!&ZW; zv`cNztv8A1watc(t+J4cR0KJQlZ12RA{ymV{rw;#Uf4a^NnzySb5A&2s;M1*$Ke3; zr&xKf?b^$T%-8)R-Er%f$(6oQa?>wW$4B|$V2|UmA^w|TFze44%s7~=AlhK@5e;81 zR%mtQ78P|2(wVovf@8L8kLYEdvx#9y0kQ9AOs1n-^>DDJ>`CKdk0;4rlV4s`f{sP+ z7fR&wcjWMWtSW!J{E`#rAF}Z&(po8y&2mag)^bejD?oDe7pYz5))S!2w+G6&l$fNf zqmtrSH#W|)RMBrBlydr*~le594G=xSTYqb%#Pw~dPtgVh^wC&%o66JaP ztF8j?LVgcMk+Tp5fdziz!mL>vVtqV)|M**c_CHENsYVOY*0sa$OP>`aGJ=NF1YWeHyufBw5`6V#lY z3xEfG5Y1W@$i#s60KI#N-OnA@E;Ns=ZnQpOT(TRh^L+JxF($w+>bp35ck9U|5d7)L zJMmc1eED+y7JY#UDCR|wI-z{KVYv6+>2>dRoKNmfT272%(RI;Dt>M$j^^D@}Y@n0C z$`vf=SA4{Wv7$IP28#v-J}E6n*NSXkzBx0KV;s6)ztp%UdNT6`5>+Hu)GbT;Zx%Cl z)2oG`mF~Uq_)1?K0Sgl65!Z?Tp0yD|9`)n_^`8PfkkS0SV?yk4Ld3}l?5c=?Y{U+y z_H+gk5mZ7E%nqIb`4*McQpe8RIrMMrK6e#V!OnIF*$ZK{Wy_S^0LkiGZ`4 z-fH5t$Vt_p6~%@&s9273%14vEIkOFSV>Pn1d{+wt zQs({^f0JDNy-{I3IlM3%IztjrNnV5-aOh+%nn@b0hHCtiu!YXpOE-u1G^1{#djt zI_U;s=S`a8=rHD$TVkG7c(qIr3J0J27gJXXrSq;yzr)wvKOx(i^MEm_yp zUwgTfDab$?`tq9DuXf@b1vSR=o!l~yvef4^yfErwvClG6nU)^RcuEOm71_8f)=h3f zk*|q~l{>x&#;*3PMV*5i5Ld1YQas{@VzQyl)}A!Wy;J&D%t`Y3E-hK*(C|b(6BW&6 zk$gfjwv?eBFHD!4QM4DCaUFa2)(6QaKQmr_(d_-!J)UrUyNRza!jN+#Ys?}#%?fb} zZkGWATTm-(cD|38eZL2OzizI-(K)4*<}cx4sClIB-N|$b=U97gw)E{#i_Fa6wf(B{ zeVA6|FTF`ehXbcsd92-|QA(t;(x(iu?vLNfES;aXtl9@geLm`>@tm50nJsZ>2Z_u% z+~;%Ax1-*^6HFJ+*l%OOu9=kQzFtwVpNBR0e{74bpFXn@>YLP9&k$0)n< zUkh^9)7Se_2Rs)64$0ii`XNhS&@Oa(!}Z_!mi|*Eb288$$;l2k3;p_j-jg(BZix$0 z$YXCHR9U~1WsJO|9flf3+48S^L)|CZP6{#bWH|Yv`+z+l--y_C<3ik8+xO zpkcJoE^NrjC*2&k9eLmuU)*iyNB#29YS-|E?ptm&oIf$^LlJ02lcF^UPw8mKbsf!| zv{;!fir|vyTJCf&mt6`}B0x)k^-BPfw4wp0n&e0CK@RW0AQnN?krP!~yyQ-8Bo6mN zdLaB&sZ%Z%&!kcPsiOYJ_sAvhq~p@TY)`8&!q}(0LqPnZ_1bN~(u50M zIH8LX(g0drD&`TDwH|-1i3DC~pJs2Op1`h-Yx&%&50H$UhtAWl!kRy8QY(Qtq#h=~ zw^I3&_(j-jEhJxJMwNi-$d+M7PgZNT05WOY_h?%wvOI=9gJuPR%T=09NuFF ziJ9Y$$G2x;+k!qhChU*SL(mtEwpyH7iJt_>X%1Dvm}PTG*5qM`Fh}w|yLLMC$>s*q z#ZMM^pyEu;MUe>=yLaD97yea=Zp*!Cd+eWRiD*TEUEGB?Q!ZhwF3N4|e%;F*2VuM> z?`KzB;iCF98)L1-mP$E?u?(QcYm8H6y7g3UEg6QKb!xfjSck1#ypgEPJ~K%A(sA|3 z%}$1aksqm4tVyd^%JQX*a-d9^HYg}BZVr|YqhQm`c* z4=pmD#Db#4LY6}EpBbDK8=^<*9j<*%2vdqc!)bFf&P^_Uoag#=Ym{_>lg& zyOT@(Ws5vhy4n*!DB)nZ`ZdSRUs}e6guVZJu)IG!8qI3j^F&yK~H(H&b19vjYhq%HLO}g zw{l)*^pr`ntFk4g^qtWBa|=7MDLhFp$qd$m6UpQaG*c3L6w7UTB!X| zhqW?ulwkBHSvr~@V>-L{nJg2@l0;uJ%VaNu_Wu(%v}k7QGh3A!H5+-_*=*^_HaZ)q z%GkmxDDuUBr~af2iYIe$Nws%*2s*Q3>{sj+MsQdiM)|xxPmW;` zYGvsf{mIGM#;y8g1lx4e?X*Y2ufp;Uf0u))N@ zL;kCh3Wn@G;Ygo%x~1A?$;5{4o6NTtCOmer>O!@YwHx5Ce1>HbxuN(X_@QXn{#!Dt z9s|;q8j^?i%H^j9RgrXwlC6=~@J!i5C!5G@-ce5W1O35zZv0$qGcbhQ_P1?DtW*O? z+n|gi>4<(``7<1<8WB<>JyciQP9jwOZh)XJKq!PvBnX?3BzW1F8x1fO?Em%+#xUOBNbFr{aB zS$gF-#q<9aE zRyEp0gA`4YS5{kQ=&C3CK0_hc8k$#PL_`N|f~E9YR+}Xu{KEe|s`|pa*xYX+pR3nf zGLS+zs}68JVigUsEM`}0z6gCRg^HGOW&Jk$TN}mpS@WsK~Rd3?r01dbOy@-lRqD4)$5n^u*7OT)RaV|77}v8u{7Nt7?Cm!>C?>q%d;_51fYsudqd4{c0o)qP(X7!StaUpqGov2N~V3swGDD~-o6 zkee@DnAgM^rJ_LAZ>7?Y)>?sM$&MBQ-L?oz;oulAG4zvQCT}a8(|^z)#S{Q|@uiLX zu?)Odm`6Vv|2#F&N-nQWt!wb{o0DTAYf-a{1DQBoeWdh=hdG+YAI^K09;t%i$x&9- zb`2vGq!I-~E8EP{HL8iLjB&CE$zdYGFU#FTfApb)#k3dwZ*j*iu;o+LYE$uAar*h# zSdX9Pj026!F8mKvRU~zXTc>c7e^iur6)7^QI5m)Ai^Oq|a^Kq*Wyp8`m`(JZ;D6s# zj*20Y+i^Upsa;ln^a-hJxR*7LM=nSB=gS;Y;TE$ofk;mESrKW>LdmBkL_JPZcS#|d9<(MhnKX?(sWXKrnpg}Bx;4ngd@v&@g< zbNQw%K-xj@h@GQORaJOtzLXc__#^r^MsFna*I)fyj2a3)L9?s63l1X9Q*56Djk(Dr zA9D~qkJ!#UW7EIb{^LBoH$migK9uDHW4M^pZIvzf!sqU=#3o1jk8*FQf{)xqWZS9a z*O8wsm%)p8}bBAWCD)YkQUn9J48jiKtn(N z*b4ejLbEB|M}zTxNW6n{e-TugvX{_JpsK^G{#QWsPq!sRmLl75zMy%W6#S;lv^Km^-v^43js^iU3UyA4yF{c=0|ESLCuhO06tg<9szIRQ!l<_#!J8U>) z(R<(6k(4?U!z||bmZ?jE->ZH>#5v(tfTQ~y+-V;!oOyG9wmm%dz85BbIWasOr9{66oqojPp#~>MpMJq z`pc{YI?h{t?-kWEdugBpvfLGrq-+ManA1t2NhH(gDHnz`hX4ia`M-aDAZO5$nXIwb z6Qxurm}YVHSeXu{e~SibZKP@3kxZ%*o(RPK{rrbAv`9&b-8+A(Q0slhLx=5WK_eU& z3{v(?Zu#(=sP6>#M}(b(hwan-+o>OT}l1brQfFca|77*aS+h$U#Vq1 zfosM3NY4KUD?rr0vL?PzFtN1Ig{z?#+Hv1L1H(nSYjE&%KB`eKNgAhEAtW#%h5tkuKln!oqo6Oz(=v+M`#I z^EEXJBzbr^ZhcR%#17%YA?lDQ)jR$0uH1`=n$sIF3BYJdP*Fg8+KnfVY}0j6fhDhr z(6p6^a`|Z`+@h22-yZ;;;>;|&@Qz0%N~{{=x&LxvDpcVXgq zmUyE2j^YE~l(htlN(5*XC5JVG+89bby4Y`RQjB_)rg9VJj2^kKEVnR(VECFW))ffY zP^w7?EOgB#4K!8q{|SLmW!0`6I$|Csl@ilSm!sZtmQq#|B1+Pi9$Bi{kf<2I28m>g z@aL>mQNM9$;Yg$Bvg|GIzbsKEx*?xS z%yy_+Um?LB5i6}OkS-{$S>~D6wo-$?8(Ra3hd0$q)T%)1_$H-X>{%W#?_Sk&;MG4` zBHUUbleDJWYPNot2#!JA@1gCgt;&0z?xCDq+AR`5MTlyr?$L(h(T_n#W|Zh?Fe|sS z9RXu2?otakXgNaaS=*x4Z8ZayUMgcko62n$aY53(`f75+tgnCH`JT6MSwZJ&5|1N2 z>9wnho8nQHJQ8KfJbVwTL^VUHkj<2AMr$+=a0o_3)`&92lcU3q6IqpID4aa&zoj+? zUKS+;kb$NvP4t%S=7l01-#?WDOHjc=Z5Aa-Pgu60nL+`8WNQgzKHCJn^>isIaY{5Y z?hBeSRL$3`u?c9cD*IFQ&9Sswa0mp(YQ7ladLKMQILmAuw@5Hc@kC9CBVVa>gcZ%C z;Ia1TE~~gpuqs+}p)eBA5J5jNm=&aO1vfnq>r;6EQgO>#D;{Hgf~I&(i`l`{ks~R{@^4z7^bwpmYU5r2IN4MX`Ld2{HAK!~{9AgdoD&H6?u}wRGnr zi6SA1GKq8A2S^zg&9*nQOd(aM(f~9dT0mo4Ss79;hUTgoW#B1jItZWMHh>its#y0? zMKDr>UXz1~;!PsvVY(M*eCSzjV3ph2-CkgrIk{vAFIoDgf|v)N6Ba1D=2bhXD$#o= zi@L}5tXw*kVEu)elu2Nb4DB6H_Mxh0*poJC{ ztO597yaOsk!6>sq2&l6>bORTK=Ta-$MWsDmVa+G#U8rL-_yL86>=Kx^R@XXOK+A@X zFJjO=n-scIqJkj^CMH--q~#QZE2k70U|P4CA%uKk;NIPTuR!as|pXMh;bF zgzk|J`;+X?w#Oa=XFLWWiSCkj!KNOpwPr94<*Z_;IzoScVL{Ve?XtyFX;&ZyRaaTR zNzhTna!^=|G{6_i=_VU;m%qjxX<9U2)lFQn(F%K&LdQ>bjIuIt$-O0m0>me)6P z_4>9AHZ-DAM?nz|i}MY!K1E!fz5i$Ww;8x#@*nO}bYj>_Jy?THEXZZ0ex<2~D=M7= zaR;kOQJjkM^-s?2B0*i~Rt4vH%NI9rI(L+_QYqMKg;^9|s8d;Ou4QHU^7(N0QY%?% zPTf4DZyAZEwSJkoEM#|WCGAdXoWr!Z=CgETv1*(ct>e9X)7+9uYO^ub;(`IFF(?L> z01V3kU7~@=1A*#R{N6%Jo%$iY#u=Zou`K|SggUaJ=^Tg&)W8oBB8fZnqPswp1uxvE zdE%Y5Y$N3Ts z$FopQw)e*;g+5c)cP5DrA-&aE?TKwu6bO?}%yWo@G}xL;nXoQ@ge;MEEQ}DzjP?nT zsVN(~gdna`kUwSPkZf5p@XD`VCFs5Cq+(?06v)rFWln=E&{dIr4WTB`QvnB63__FW z#J_~*PtdV&x{TR@4?&Bm3SDNw$ehn{Ozk>vigR5Gz2u+?laxW-=)~-k1FtIHscc3* zAX;+$=$kDX07_^_=oDxkc{UXyWD=)+9%L%PLBqq}fO3U`_EhVv7Tpg4nqv z5jDb~NP+#`&x2`R0L_#vIMk52>Ic?30Fowg$Ej|8lRnyD-lWckB!nzO{Hc{o((DPL zJn8|>Sd~CKgx^Ku*b+^v!9v}@DA_9k4P0fb<~g)6%Wu8mz2TOAN(K(m1UjQbYxTjQ zOfyXCXvn}^L*|&oO~|HiwF~gkmQ_0>A&-k8?*z2*QAq(y0G$VW#6yWD`Ea+L!dB+0 ztOi1rGT0&zC8pxQXh4&~F0lnskKshH1dS+7H+0ALQqs{3f}(#D31K2y2kdDYl>^D= zAYbxsSQ@FctQ0w=foEg%Hk0-3T>+-il%B8zT{m{ECdt5Na0oUc*y$+?+Jn9axc!c& zJ=qAIL}sEinAbQpt$qcmRRrr=Jgmx2w841vkUh|_OMGW!utmGCvXgVB=;Z*y-_7OM z7zlC*w$eJG)Gr%Gf{xin1#X-cs^4>tjQ@?<+32Z(CI#hK`6AWx#!Wwm!N2eN7V zqkQkvV$n$++Q@A=#B)Wb^{?!<^F?fH66@bSl4>#k9p()*%m26SN_Hzy^FHK7< zD-YgQ3DMzYC)KSS9>m4Ij3QfaQA+ykS433*O1!h|94ot^_24wVIM?C%%_))!-*H09`&8NxevUb(}$OWE=%pD%rBlKH8>e7eg1%FKWp z54mea4G8#36&Pv7-LY3pfkXn4XP%6b&d8)pN!EM20N z-IfB5ElowELeymakR_P(Zv@&VOIvewD6(}hXD|qi4Fz{X=J`!DNV&y>0(IzA!`wP( zO6iK>b%X;G|FY(hzjWbZW541|Ra3-Ov#uyZr3WaSEl|JD0qJ)nVTHV zoU8zt=6vp?=B-i&pZ0!g#W7q%gqg(K4?M6&ouT1cmL)T1s40aSR4!0UG<2d#I`hn4 z{XBI_89?K}DUg?#$sIv!p=&0KT@OQksk~nT3C=WDEIyxs+C?Qe<(p8m?MP3RLR2>W zjLNQ3Q>KJ70b$f+(gINe7lTn!G~v1gD3`_U8!R$^z;%h!^SxGQ3X!A5Wai>9r3l8z zTCRuiKyZE41RLkm2hc-7N~0xkM&wy3U{YGl?|dC2Hw24X!VBSq8fh0SBff{5$lS#g zLuN>dgYjN*aJo^7%_qP@wp1#e`MqXE0Ew_Z*>R}+|9#ITDRreZ^!=zF)kkf?V$qZJ z6}n7~sOcl61EaDJE~sH1LybW}^uLT1EYl_88Z^-)wbro~jKg3`l!(q&Lu920NOtBy zZ&*fT-cu=DDN$D?r5>xnXE4Gpz;IquFBnie5k}Qvl6$jw|!c#dU{NAR;o3-GdQ<1~$w%M{{u_frTo(+n8Jvj2H1lk`RtjvSPPfW)HIP)l59$oN8Z|RL zVn_LJtQ}*E1^^;K*`l_&Oqv6X%(bGZtDsvVJ7bg(0yX5r z5hpj1In|_1o=<@SLoi2ZmXBsi9b!n=Dw3Ab5-k7(an=Pw-!61J>K5bY=6nOgU@A;< z3riM{ghorHIZWu1x{7E@{N2E+=xJ_MDOtpQd<$CXxfKC^4xplhaNR4V)Eb3i63v)( zf=3uQX(91EC^WTeMOQsgXslS^{;vpdnCFrEfV5X=DsfPlS7S>=pc9f;xBjB{x+6i& z32Yv6EKC;S9>B&jQ1B~gt0u5Ku@17Y9+;RN%Kk$kjBF4{|84^hw3;snJC(@-PO863 z-6UtIc4P;|`B8vg9^jd0Pf%F28qpb9x#&6gtDmel9R+#LcAkxs-zep_AzAj7J0+M{ z=|VxpA*zzlF~cT4#Q*-k|8M`75&w&s{ZC0FVp7yg5OgCaq*|fMBZijgN~|dnrNhPs zDNz}oe4{29XB0}AM5IFxqYx4(pI7V?Wl1L$vg+w(xdqt}71!|k$I?@Kgt=YDtl zgVbUr$4CO`T9__<*`C*#R(lyxZ%N&lc%}s(Qa(R~?iW=QatQ|=8k@Pm<`>&2+SC1u#n2NwMQ1Iw5J|lFiWJi zjv6GOIVOq}-)BV87&6g)Y1JgH^i#gF&3cS6Vc4C28K@rrxUCMMujRruaR8T;~UFA=g_yaFmhFpKJo6Wv{b`*o=*rXnz*IWd6XO%Jq*3N{-SwNiyaLeq(G zzmP+8WO202+QnLxV@-Gv0!-1O<60PEvVg{~rb=b0D#U(aup^X50b69SE=qJj1J30Z zIM@J7A=oiC=bWNdCREmA!&f;#Z~8O|)gIUl3`3j+Y98L2fppo5nqr=LekJT%$lrVU zBABe(^@b&*yh5Hc#h>E&sdd|}lTFvbT$dJVPUyjrfTaXVbS0wt{qX26v$IH#r+Rpi z73*g?xZ9iR5pjUg>f+O1?ivQF#l~}>jbWOy@FQq?I^0iZs zaT%O!?kd&b4g>-rJK#+Ywm>8!+^9SNVxJ+4!D%p1Q>WE7q#72Y8Pf8fr`o}=k+PR< zIYV-n;|G|QA6B+hQ-V^gZIdjr<0+=FX?>4fb_pD8CRN*2qXiA@O2jHCLsuiH|CXKo z9F#;`_b`;QU05fz8+$LgC)Q4=rj2UB8 z?CY?NeFsEW2|cXM#Qdh^MLz}`zSeuTNmTpB?}y!B(?ES9-qglu|Jc(p-pFU# zy?`v zd-Eti3q2~G%jVEHiBJA35aa_@8$jj&lV=~Z!?9!^E5?|6 zkCoi`-IO{4bL$a0o?$AWX0UqRKC)Jb^p!(n%jaZ5S>TXVV_r*a0(C0UlfwNSgGY8# zJm5{AgZbz-4pax_C~cs!UqHrOai8N5wQ3vlnjn@W$18Ej(AZxpb%EK*AGQDX-~QYG z%Z%?m&>ylE-|<7SWBdc2YIm9X9?S1ttK%9svh3q;zy3S5BvPQ}Kkx^QC-`Un;BR`< zPd}_`SNZG%Q9*e2MPJao{JaoK8{pTN;D$=Cd(s=v_AN`f`NB4ty=M(=LyYl+| z`KST-&I6u$_qX5l#m@pW^1IJJ?aztle)02BAbQ{Q^Ootc{tOSP@XzT|-u?W~89Hp& z3BPQe)I|KIaCrNjaO0T@^7v=uIN!K8e`f&w?|4{z@jGwi_rC4raetZc&2il3%katl z#BVrbuT?=_+4p~!ZMnC*uQ&w!;x)yK--NF}i{I`q@fVzt@BHXr^Zsv&pHMPiSZ>$G z{p=!P`*BL%P$6NtAlXgHn@7NN8ApISk=gE=)+_Tw+v^tINJcM8fnIwhsjS|Cqse6l{o)P>EVLu{A&n?h{^&oA@2N11Z2R)&>* zg4UMn>t2aBV0_~|JcB!{C??Mt-g6!doQ-|+yr_~UMKFf>jZ+I;DVy&R8%>j_?6P2% z@t=cq_OmVYDrkADhYg4m^Gx6Zqb;}1xyS;S>{*ml6;JN3Yh9B}ol;=(j&anZHGE>C4x*Yn&o7Y#O zLv`4B3Me^b#j%I8JOfQL0_|b}#X{lD2ZVnR3lw;k1$h8zV_$OJF=c&FV=+TCuQV+# z)mt;0AF$G(yoEkva>R4Qm`s>Vjzbz*B*ogs{7XtRFJHI&&`L86vjsNzEd)DW6lxGW z&=Yvn4P45;G)<(w>x{0y&xu(&O#u6T9>r4PE~a2Bi1co3&WAe{nE{_2w=`zxsI@!j z@ksP*P#lanpDO(EuS7P_KS=FCqBYhG_vj(OJ!Vsz$#7HUrT}^Cf8zA zEziEpCDDV8=IJz1oNi_y5c(wH?|102tiZKurJ2*0)mK>-*XrkW$i!Z>+23m|@B%^( z(WV~lXynMvccu4wl?(@M)e(Kja=XJNOWlM7p?gxK?}q>tCMS&6dK6oP;o;-#5AWp- z+waAG&5G#9hD8ed{fq18?tQ+$>J~w#9zcoKw!QlRG&k~C8Q83JtEAoiR?pm)STM%# zdRtCYTuD9Cbbyq@W*M@AO#lSr68yeGHOXhHc3TP;P61BJZ^(m;l`IQ9y6F?=rIo~4 z?!Q#`QyiYYVV?4QMRI-}^!3*gL6n9L%~?-|Cx#|@p8mfHupnsYm^oRYBUnImp-K4x z_p{vj&61tCxKYFVcHGz|DAk~8u4vU5bwVJ4MyRhkC`bK%Cf4=$hm%;x+CuUWbLdO; zjw`Qoq$i8tX|~Fp*;X8(u`VRVxhrVllg=PM^eHEU#80lM z#*})gxjjKeKn0I=$KhKi_NfP(+-EL}!H5qK^Zhi%<;=o8XWc}h#Bcm_X6h$EFdI1s z4#;5L^ZbVMx2B+;f#&r6V-x!K{QD)qmr%9Lj7bL`L@g?$2c|1H3dcM$vV_pnyE$Nk z3W;`>V7av*MCGyr#}V&m7l!w2UPhWbi;#7jYlw4Q{v~`@lo~%2QZN6{AvpG@eHG4p z?;jwn8xZdVeM)*rgVP2mE_++Wzpg544I+wKt&8zP8kqCP*$*BHP%TvLzy@?t1r*fq z^Qa^3|7RCLh_ZYh9@8}sXaiR6*u4r+{=XfLqToBvWGz7gRcal8V={3EB=D^=Nj6g=l=Aopn#WuM%?Xf~ z8oqdlA(hw&cLam@!IeC>&g?|Cb5Ox@9?mPz<2xfyYH&baDmkhDsnV;~T7e6YsyZF5 zIz3sWgxH@#L<@a4T7(VJRw#tsIS4w#(@L_NVwH(^LG!eywi}pG-ikq;=O%A?j9sOL ziJLm`B%4s~%$3Z?`;OYXFTbXoFbS4geK67c)`Yp(5p(061V0Rjmm|J|j$^ zOae7z;BJ;{FeUydVqBeiA60&<{fGps>ixOE2D-`!iVta7!j84h)gCDl2U-2#`5eg> zvIg<*pQY?m(p&JhGThm$tx@f>h7WX$kWc36?$_ymOkxr;E@oC00|Jd@l2sJ2vWlc2 zWVyRao(RWPFb{;*$G#0%3TUW*;BM0Ktw>t=Rk3aJ0V zp$wSiYX!1`O=%ZfQg%^#gi^N>e6O9nr7CeMO1egxxTWktl?_CL=4Tw!(q5?=Dh4zV zO^K{H{U-O+`t&&{uROAfo>1+zY#&ncs-;z@S7(G2zc9^#?e<5}e4!+gjZ|xK*TPti zJbY+rs3uP4c)o;#5`iab{3Hsz15sbOhn3Q8*Z7j{L#3Wl4%W0$INy^)t-`cAO2aK~ zvhB)$B1=#O!~Bej^Rzjq9LlSZCEnUTWTq>f5w#LF3At>n5KffyW3sBMK1Y|t*~zyH zPGZ>XAEGErP1<9z3L@B6Wp!TxoP&*QAG%gJpvUMk0x!pUu(@AtV=jbCNA(lCc1hLN zhk9{CB@UU!F4Dv0UzhUa%I;$3@$Pt{O~n9Wfg!k#w=|CuAkjWk?H{C_OA3okGN0e8 z>-6B$hx9TILz8Pq-3ZKfTeZbNw@@Dc@zyR@SbWNO-rpRw4R1|VF!df0mh}be#uq8r zgcRc1Xg*U4Mf#nRji!X4%2mP)qufYz-jv7DcLR^f@x6_!SD%&X%f$#SRakW6g7OHjTBb=V66II8}k4pvjNKA`i} zx$=;{pUD>HUh#=$0I0AIa{@9HF1LS1ri1U38fRYE>pC>0JPg z3NmfuhsxTI(zb?jC{+H;QiZzF_nlNJIVdLU3NrnwLN2%y9Sq}MF+&I`h z!TX&x{S`knG5L+ne}{{J7Z=(0Wd8aE*u7r)^O@oQg)fc*H65!8OUU&Fd;0R3yUXj* z@r{T+#&6oo-Kz+43~g1msxq&9v2Ll+pEEER-1?py56#zJuVvM-Js-hKkN46&`bt}o z8UtUYrIkWD_m=X`I`Sp)rZ3{`ZAfxHdL?MDa-#G8J^Y@daQ|lXR28p(>5k|8i?;u> zOLqJBKeC?RbZ+02B3glllU_Y2PBC^z-L(8v_oQf?Pe~lwiLSk6O{FLdSmGUO!Pqt@ zD6QGmZv)j$Qg-ul zq5X3v+%|*u!dVJ3o0i=yU5?USTa+Zx1byDY)`L4?(+vzC|KO|uV4E}C;Tsvz_G4fR z_>?cgjk^L<2C}hJ>Zqx+2*#QD{07I%;U|*-cWv*Z;xo z1AsnQtJt*uXjyLmz|ou9MvjXLlhmk+uCAb}xD%0JYx8a{YYT4Sh0n+C?Ck(F!+oFl zg<1J431*oC0&Szey>U_4s}82^vBr(=wrH1&@74jk_;J1FlCc9$?P zjgLmdk*r!^+Kdd`JYe+txs=O}c`%pW{J@)>+*2(GxR0QQVG-NEi%M#ap)(BZn3pE= zu%_yNHX~%{Q#fko#>7Dp2U2sXH-uEj^z?>u8$;$e6wKoxC7MVN(t*oIV%JYx4K13# z$1BNVifYl6_`|oXXs@#UG8^)<+-p0i0M?{lOf&+f`>OLcciuzH5R?SkbPuefTF&Rdja(B_+2Df7-K*}56c5OI79J)&5&^E z3+`>^D?xDfzw-T|10Y}%V9Pjy7mZ8v`!TRn)jZw{Ky7Zp)CH>877GPbI2y}h^T%bz zv_K^p^jGQ{z-&COYT;oQYjD_i))^B|u%MWgO7L}4AP0@621G1_nGy7@Gh(?n8aJM- zXQ7NVVJ!=yZ-}QeqcGvP@{1>3<{@8RG1PHD(QEuaSv1*fTxF#Nh93;nR^m#4K2rzU!E zha6bbYwGj2yTO}9%nYT9(Vi~Ozut*BpFBqsL9TyiU?YA`CJr zzOgC2&JGArM85r;46qHs^>DMG83miOI{8E~ca%s@B8v%Z1k@m^Ig&E8dq1?1QkL?j zcJSx&udAGJ4rDL|z0traN)e5pWuupSk5h&s1Ux8de%x!Y9v8`Uo5|IY)#a9m$tWq^ z+Awq}pN}TBs|rqmykC%#BUMOC0+?y=%!1Ng8R(<<9nM9A9&Xtc?rEBf>2Pz%I9M8! zc63UFDvP)aXd*z>6jM}}E;z|M3YRKDI?fc^zX!ETXTYkMP%BGABJ27c3c9EiGm$sk zJsiyuSNbprB)X4QrI5u*^@l*iWNLJ-agb*`Lk!l{+JTkRXrgk;UU$u1ww0+9QP#4Y zv4GmV|ITtoweZOXZhV|nYbBb}++HVZjpEK`;*3Ae-}S$j$LOx}2Q~q;okQL8ZSai2 zL*l6Xiy!h)b_sqDAdvP3XVi*G&VC4*#}7!EcS00Q^N6|VKnK(?0Z8clv+b*5YKV^P zSdRryyyJ4t=PO5OV|eFty)~5Jnhrldm^P}H_%pR?T1u4|Hy^fOo2s}D>MlP_Cs5+J z-HZR;u=5w~6%?DM0$`RL5W(Yy`yH+aL{icv#o4YQ^XCN)`C$LUu-{GyQ0tf|$~zOB z@=@rpw#~hnWMfWfvFlm%fyu>>o1p@nT(oM;GLmz%N5B&m5l5Q3j5a5929|i1D-mum z8ev_T42YnC@$msECdL`cK`aL;qt?%W9M?rbFq*W@X)T#NMYCl~oRJXpNK=H`w`ns^ zZc!^r4!|7uFN5J#F(sm5lv1=wIt0Bl&PF*p4Z+iC6`kxkSB1+K=U9smh{s0kr z3LaNk3vn#lh#6|8)C=6uf#t^YgeUHA7d^CL9#YFu>!2%A4QCk3{v?4HuyJJ*6Teea!v}KTyMWC^85T>gm6q0#eCKPHnE^wJj4Ta>G@Uc6C0}a zLF)ZyNtPsMG6lXVXB-&#>x+Fi!BcEZXCCg1XQ8KPSI?ouhVr)xIbAVKQI&3Nm8dtw zxsxP{RPhN2ai`P?z_b=c@z&dKpUkq@uM$8b(?Hh!jR81M1e(vk51QK)=`bXX4>CZU z4iLlwn{NEi?F@xbQ)?v2Y;Tl8?gDXC$GzbRjNG2W*eM>%f(DyVbVkd=s0s7Yms`79 zs5MHE?0Ba8zR2!-A?tFKG&1shwL_w)Jd#wugFe{BJdB!KY7m<+CEsQPvb4%m(1*5` zkTJJfp+j~=djk}~c*mVO{y}bi>PmiSK_OTY2z~Zu$}wz$HY8DzoE6q* zRs7r$K|&+F3u3UdbxkIl7Qdr5jE+6{fOV>}C`o}O{_<=$6$k%}I zq_%_bHLB{>42h!gYhznyxW7&Op==${TG41fU_w$a+!=@r;0*%Jgt%>838@o`&_)Dp zg|YMJ)D-x^DN_Kj7!UZ|SP$%*oaK-r6arZfT{C3g=-Uen0NoT)<=$14ctq6f%BPX; zLWHE1y+h1}2Cy#?>Pwx=@jZ_t!9s)|3_zd&a;YjaX?(8VCqx!eo+4}$sga(>Ms+Mg zkPY$HiXU9tPm%H|Ri~O@p|gaBB{kCXjW*FVb^NAZXXIrISyLgnV>@V-v=c5@>G z5RzAh31QCrOwsig0Nc{!$-$ z!RP==p&&Jui=wp4VJ=638Or}xX^)}@!CWDW6Wr1kH%i3Pn25n?2rcbhEUpBITG5a* z>1t4Gd6jUYuwY}?!@F>USX$4r*7dz7wNR=A36S#TWyXRve96p7MI?=gNqjmi8v7Xl z2BbJkksSE*cdYsU_#gk{|1iY^O{;@YeRE`UX=oq&IbP=Lxe8x>QpgUiultsJE5(|_ z9h0YWN`o&fknRE6E$C-=Sbk!-!9DpRVVg0E%EU~W)FGBbn^mcSANTt+txj@$^K>_x z6CwCzrjdTUaCLGI0C?;3N?VT6Zmg<({jF`DF?!>#F(9A(nO6j@&EWP-e*9ZszUSx0 zua~XD*V~clgEtpsN9~EtmHoud_Z$M8-|Y^Mw~~^)Nlwk+0YyKvE9g@^U;C)y_4MbP ziEhhgBh-gZEKjuG_cL+kvEe1E6FcDR_Wr|mxSd$!H(1ZRpQy?nH-3ZlN_^z!4IAnN zybAq%nS*@MO5x+*H2?iq91DE%u>}bfY)XM&_$J)=-(SDO^-|(4*WV4Y8m*MJXW^)6 z(>>@DudNOeGAz$JUO$%~B+$ipB*gP|CIg>*kgvS#D9!6Z>2_ZI zwN=^iihYqCY1wsdfAHqL@0!mrVZ|@mdAzbRFYy#NHGJHAcI?{eh=di}UYemb?=Qq6 zgOoG3Hv2cKirw^Ew@=51UhgY|B{f6$-8TMn0%`cdBk*>>eb9_HO>~cj`&JAQ_$gdO zA%>hK<{^rF$@9eXyZxf*iFCgc2ptsL$b{e(J^+{X^&41*`*r>LJ;j$vs;CoaZX2OXyA63xBKX<#& zXs<<0o_*c5w$eoNFULrPDw&D9go0_6(@V@zR=3u6aDv_$OgySx=pMPTE^$b6KHY_3 zrs3?+-`FdIU=tnbkTop%^o%Wapg&ku3OfZMR216kJWHCjt(+!=z5H7GR!*vp$Meoq zK`iht@=bTWG5FDB8-y(*QhZ2F_;s}9jNIi?^u?{$Gah@>jpualrY5`9GG z6hsCvX1-9_+XR#Vnc0CLI>k2E183t55x}b+=&gEazc?Y8ApXcISZNAq;() z792%oX#qPvQXyJR6T_s}vw=?4&G&^$)lW|oW+mB>!=;EggO#8SvO;|Irl~HKDkU^DaV?-U&Gjc}NOf!HePFx6q7@04JwRC%dF^@5*iMZ6GS=dRziqin5`x!fN zEK#VJ1FxuDE}rHMy*-h(ygYYJIAPUQ#lbm+KvJF$bMKmkdU`FJc}PsZE0QRWT?`R< zUIq#*7D`Hq&H$1VyLta&Qy7P!A7fUm|=K^pqEBjzAsc1AP*$AW2RvPFkd;pbk&-#Q6ye+^040M#JRLO?CgGiPzg%s*d6=KV9p1XE7z+j0O$MO5jX*%9YsX~&rYM4H9- zJHAa{C3k&v1qOLy7zhYgL0!UGqa3oOpcI2ju#L|Rpl=#I^!09u-YD;He13s@ zJ6jSsnKQzUDp-K0E%NJfeE*4dKaE0)Urfob>weBv);usv__fILS{-wM(X_xoawdpD zCvrb4w0h*Slp&%5Gf-Vo33)G1jlRH3F2}O^T>mr#i2Ur9&WRWTr)T3}MHLqX=)f!C zj%evX^SWTmBh+xo>oHS>D^Q43mWThXRYL@tk3{{M0{G*-Rv0Mu;#)#0+^P@^0;hVU z#y#9OR4OePan66aka*;yx2k7(1^XuFNkW2?Dlu*_o9SHBHuE4@7yKstOJMhhs)dW3 zI@s}bCWHqiZ)x}HVk_sr3f=Cx*H^H-GH6+9slG=(&q%Cfo<+7q(H^!agXSFSp2PO% zeRBhw;RTO7TmgcM(s9XT=S@!jOFakAjpxJ-QbyM#RYAVH6aPi#Bx@!o1Gn#4ZG=ow zPrm`7TvRv~@@0qSYzBn-ngZjIRZ@!sHxcZ{$|%ajH5&CixL=Me60E-?h@2sLq(zCA zk>{29RwI@3GOWRVt!+Rq)s!*M3tHum;JGp_O=Bmi<5IO_WuakEs)Pu2G_NV_(^y)kP)C7)it2)7qG1Xs(s5v&m@Z|nOiKwdhYX~4iOcRFCnX6Y zlfgRD{oA~MwLjBZNqjv1J||Qgf~GLJ$pB1L#)&KbtVo#WJdFuT9nPY7SIYaDg92p1 zz3cs$f^=%%UAkV8evi{C6rjWtN8OUg0? z9C+wiHHsRkTL`o{BqNG2JiI?EjU21$Wi*4R?GWiZ(e`DBusbp{bc|k90H5m0K(Rj| z*k@vT%55KDsZ7S-uLx~v`zq^Sk=by4lu90J$d5)=9e}LHL>QEnd5w(qNCSwa0T2i!mNM1iLN5w-Cw&YuFYLaW%^ z83Xu(wI|Gx>ut4a|`cq2q&Z0-yK8uMv-g5%) z{&#H~A?wZ8Z421Y%0e^T6ndt0r zgKiQvZ?iooL5-Vl$!4vveZC=hvZB>4t{q-JO1mNFX;!B=5Xp(^21C0%<_@Fd;DpUK zbIZ7K>(K1UR!j$SeNKaehVeus%eZxh+xYa$Ca>|zC0iG)0vl-FaNj|62JJQ}U2GVg zkCl3qWmWq8#)BMx{3urxrnukB?`~M~uFuCHvao;TEicX;`@Xr4FC9i{kFiOQGV;A{ zoI9U@(ga(bJM;DIJ;va&Nm`pk9=5ls(U{<+y_dNhUU?5;0*mCqgnbyM6AH+hbbEI#kxqmG+$xkeCb1pg?NKc0WH zJY$UEd50L1(dDxCs};+mk;eu+E_2H?B<5r)E-msOCTTVbItc<9=()lP=_W5q9Z~pST=kBgPvt0Dk=K1cEZ{{ zS3NI-y@1o)FiZmp<_6Z@^3X%S+;d7H6`_vk`mPt}7LWj@$f&~EETL3+4eYrVD`)>9 z`aer60r1Q^+;jsYPQEZR2xk?GRc$NWQC6Dv zG`Q;#_M;8bv!N75r{J?qx2Q2CmUav|BKUvrp9&xI@foXJ*?51meKr~&ZXcFHqXk2_ zfA_8e?PIz1Oj{prr%E!)*uu3^pqUsk07YZ)r`j@W=;H{7vOl2vqg!Zg0uOngIq zrdHT&FVGq(>Vb1sOHE_QWP2XZ z4)H|qzuI%Fe;>m+w2H=C8Yt~DaHXV)>uky?c{D68s>F{Qu!CHyskGTBg^9I-R0Z{S z4g;D2jS8E#FZKHyr7pqQhE@}!NA1wnK*W%!de*J{cIrjM&@UKhs9M?fEjCx$UcBRi zICPlh)lBu9ph+~4%V)k_3Nzm=wyLpOiky@E!={Yf$-j$#%g%0hyD!*%CMjq{>KCg+ zpPlVQjlTx@<<=%p_!ZU!2Wb`syJ`um>O?JDv2|=yb#bmL? zFw4jH0rv6p_Jp?>6MT(2_`#_-6eV`-dzFy;c&DnN+h3v-y;HfIHJRy(O33G6N`)a^0fX-K%+LJX&uX1G21M4b)_9P=C z2$pV|?>4xQRN)=V1+f4|BG^)06qI2KRUeJ^_;Yhms6FnY&KNF$O;g(|l(ot^X?pLM2wH8&h(Voq z*%)f5_ru7jQo%4tgbKMD;-Y3+|9e(AJy!^DOtObV!YFG0xk*-`sz_PrN1=fNA)p&F zL)Kv!&Jf1^t|d-|5Ot^#c0KsdhWGIAR^~LGsxp`{Pt4dm9KWHz(^{z$~n5MG}$-pX+@PG#Q&+L5*I3W-?dXr-C?!& zphnkL15l`HA#x(PEZ_FFLWinIz?uO?2u%Py@_$Z2G3Kgc{iRidb5@!}*O&9&&NVb_ zs{|H`2fwWVNkF#0dNhsyNL5X0w7GR!L<<1n=@S?LL>ntzrm8Y%?t(yr^B=*rh)#Yo z#zm;1rUZkppj`ItBXi1&F012EB{x1A}RQ@b{@i_~VzgjPu8G#mqM=~!rrMb9K-5}bp44CuktW7=Jk-3-4{ zom!i<+|5q$W;qS*@6Tn!9=#V+#!@suA5UPgAnXDnwn+&^N>nz-PjMp$q9&&|FS>n{ z76qE!a5}=S1tl)X0Vs@4=SmX8fTP%~bS!8n&GRNk0)$(6iQ)|M z)E^!wYTCL_8f10m!$i0c;+PDB?Sd#fd%vr#s%Krrx&?&5|Aw5>hAw;3N$|-_coE^HLs#PK^>5fJ~1`Ll2nuKyYu?n+jd{IK3Uj@ zW%|(r3*^Jwrezfts6m|xrQg^qIeV(EBW5ISIAWsbFo9rC?2pW;fGm_|dv7I@nn(G< z4%kxqvkRT$tg4EA*wnwn!bIuHKK^?Cyalp&B%uzoFl4vnq2*O_Q}Ux>R;icLCbN`F z9qtI6r-lESwFjDvV~H6R2Bhq9T(T<>U|+xz@z8pH|8qEikuMlaf&9n7+KM6wCUOzi zkCs*0NUNy3M{5JXN2%m!j=*2K9eOkZ!b4x5e?BQ|I|f~%<$KzpO1yNkvO)^E2z>;_ zuR_;ceqYd3yIKVj+N30xT{@ZMc|%%v>E8x~=RAdZV6|NIC}m%P=$t}YNpP;MS~+D6 z$XXn1O9@hu?52*Z3h%S4cs$P+AMv0sRRW+F^%iX%rL7@a>@cw9Y!z}jFP9tBkR$M@ zZEFU%6)dr~w{MsN!_Mgj`>d$(#ITYjHU=LIUnM|i9`cZ`R;MIbok@_F&-VmRGgDQ` z{5AFhLRWFD_MrP=XHqzJir#3SU{MW&Q&wmW`vx-X!*%}s5EKi7oa(`{!h&bZ1|7G4 zaN<(*$RVJ~V_K$Re(pW<-DDcfbao=KW*1*uaa(^rBW$93)0e?Am%KY?NnDI2z{21^ zqOXw%!Wnn4R2UD09l6?ZtjH1-mXZ?H3NF1U+w;CLw3$)7pVjwc`Sf__nFcZyi;Mr< z=NXj(m*P%Do_SWA?uQDwYW#pi1=`UQdoU)epOVE^sumwQwcPlA(L<6*0LOJGvkrs* zrnhjBG4m*5lkSI33qq6}lp?zj0%^a)ZvgjLLsMFyo2s1nsHb<{Cdfkzh%DX6N^L$^ zqQu?}9wd4&Y=_CR>~UZEl5|O328s=jG6q!Aa@!JYs9Fjh)1;;)okatriPGxGEveJ4 zaagY{Ybore^mt;+_uLIxs0E%2>Ebxkijte93MX!$MzCf`W#p-b7(swkr<15R`gN_2 zzH)YZso2&&Y`|(sGq@YF!|whm2Q-uo(O^0_929g9e6}UjuwidIF_{-FPI7}9Ocxq- z372_Eh;fKg3q{1W9S3)-2e03t#Ivl5cI5u>vZ@;zIe9lB)Ope0CNuS{{hdmoi1WRw z!q*J zb0tuiHpGln>0$3@bOM-UJvX^uUSMvkl5vF{Lxe}w29U*!dg=5)M&Z}PjYB=LY}DNz zpQRO|Fg0wKq{>+`fK*mMqxH0Rj#GVD4LQ~sVR3WWGm30Ixn;UHwhkaF_NmcrwAc z+(e?wB7n|IOdBTfRZuahNabf6xMh_xo@r)|FbYj!rGo&*?kqnACh8;^%uur{` z--L*2TiXvDBAl-&fNs*vhB1tj&$M2luzW4655<&ax4ysg-@Ca9eUY_-V>5(L0Z2g9 z1A@|LUK9qUSe@+G?|;J{PScanxfByhWcKXsjbHeXu^gKKyH}+-3r8Cyx|i%-rsll8 zfsF~E>WRTk^6?&pW)pO;0$Lo>n$UsqImoT1=<5&yOR$MBFtDDV-ze*7w3;sMdn9&@ z20?lM_0{fem63HksNwyt(t7^RnpTwT-bNBR~Vd3)R6+7zJvG=(;}(O~-W^(qj!En`A4BKlyWi zlAoV8o`M^GVWZEg+Af;BSl%%=)CTgZm>d=8lXE_{ZRjP{G>~2(DOcv$U@Z`lAqT&o6^sKOuKxL!Wh--ARglZPDyVO1u0?-TKkUZ0HORmOMQNg>=V)T^qUT6mDZe)_vVNmTF zYxDd2-0}8Py`Y-YpxWrj)^2?N%Sws6U_u31yNPp*S+V}z=52@XQhnLBUJ=c^p(!mV z&XkK?4Z?~>{m?e@z#2H_i;o}RYq|5Uov(H>cu4PHdSK!uakQI{i8&0l?e-gNdx9oe zYi_=yCHMV^YM1V@#PoXGy?#O+@9;5-kgS9B$jl>;tVC}c|22Tg0Z2TDO>kM=6+zrAQ=V2Q^3ktVL?WKhKH9m zD<)O%8ckFB&}Ifux-x!KB73ft@4-fewbJlS=opKGErN&Emmp|$hOO}Yo(e*~p5j8M^QZQ7O1o1W+H3>BZjy>2DSB{V;z8j(3flM&AqtRiSh0gPhb zk2R%SpwIMq zH^ly)igFf*NFi)pk6U4&S*D9K-2N&B;82xiz00Bkpg7yXtfptB$DWpk>=P1Pc&3@# z(XPEYeMA9-7^3-D!A0F5n6>F_3^a-oYgu2JVng2}h_)^I*dk9^=1@2*pDw*wC-iU%V&b43fQS{>Kqa173dwFS3#=rG2fkm-s6}$|dY@p;lQn@;H#nrwENHATinHm= zEhdz;FBl4frWIwxW`@gs4o6fbe9u6Hj>5VS&11Ch)B&W@@|cDsfre97M!PYAD!;{T zfaMt@j?Y0F((`-66x6VEaWaV(W&8d@CBhn^8Q9O6{xerVi)^^luvJ8oR>D};RruQv?VWpN9tf*nPx8}!@*!ueA7Tls#~ z_J{(i=Bgi?N>jm#QT?YB=d$dJGqs_1Hd5{M1)-6VQW(i@3(!-KkfC5n6i74+s(n2O zCsZBtyxR#Nq#1((;32Y|^xgibMQugN^} zNi{CCkf!7+X6DDcirb*>qP#RGkz1hgsVWN?0;M`IdN_QP;ZajFlcD_qDvp9ebvmP6 zop5-JqsJ=sLKZ^2=bcld#ME~ksS`KcM4XMJs8Kb zC#G2ImXvbmh*(<_!u^bcE9BHSJ~&AmT8NJO&6-rA8BSAZr0R==RQ%Arv06K&+D()I zWhbhHUXmU25N#doecu10F_@w+G@t3DMUFdV{oN3oQr+{YX&W@Kw4DUN?fJ56i3(RS zasy+KP(6)EbYnj@N|ZH$uuYSD6uZdtJdmij4NM{`fJXg&fjVlOiZy9zm~XCR^ZK`| zMEqjaj^|pvI!((>5RUH#3^>0>Awv0VYsbM1KylTX|2J#ObzrJ%X52`iaShF&)d93BxKYonB0uZVl-z-U6hV_2)q)E3 zT(+3Xx)Pmd$XrfixGF`1*H%IJT^DpPi+7kTFTHQ7Qz9rl&SK<~_3XnEx3-cThKbg{ zl&c{LT^K!!W_1?NnrRV_@TC&=3Cfi<;wteA?%k_Y1u=|xMj+?;giG3xJOt8c;nac% z!lyD<2}uyup3V=xDIq37W-IY5<1%=p<3wK}+pcZb0!{R70~G7iNZDtnOQ9Z$qpS=D zZdeBUp}y<=eAB!vw{xnzoEK4BLau>WB>Unx-4n-drTmMe;A|q>pdRS#nm>%IL9MQl zUCIhXDf?2Owh9%7NXy7s{0KtI_w=mPlW)w{q6U~(lH*(Wylk|Gg9Obat2a=4hb}q@ zvVAcaj%QxkKP1U!cV@HHaJs!K4N-gUT|^AX8gp@bwYI^W4Z`7z-V6@cz6@36%(u z5jL5z64eRSa?mvFi5lkO_tznn9D^CYJyZv(@I76}XM6Cp+RuWo(N+7U?{0^vwSoYgb zV`;W60ixmjz52MLP)|K`Vy&GQ)2&zaopOs%eLv49tIByz0a>zWG`L*L^%_fSxSu4Lt2a40_}?o>XbsT!zA=i0$L+%Q_!uQ`<` zN4LIAc2or5%Fh-5SuZm-@eA6LByFrSi8Xlx?oRfmFQXNzsD4JJHdR5O1;9MHtfU^p z;LyOB0OSnT^w{sMv?2F$MVcE!$BhgH2)A**>MzpI@^l%<)5?&96?#jWprZSIH3|UC z1~?5#Ml@vT%R{y=kU1XiiYm~fbzN_-$RANR(Q%bT@g#}QW>-wO3$8$~V_+)b?a=i_3kDJ{@H7vW!qe_9U7LB{M*<*|gbGv?Vk=_Gqd)P<|xR48UfZ*gFBV8q5VS z-U-z&TgI0mRV|$TqN^;}mJJEn{xK!mSt9~Nj|@Fv)&v>2#Wmup1B#hvN}@7aga&Nv zIPrIIk(iwr+w{=b62))W1<>0-y7oJwMWxxMty0}Ipk5p>-?(tAtCbWql7YrYm(X^o zid7>J1~b=M(5H zDB7e?Z;A7I_JlHJasB#H5>`3*<}wb2me}m!sr9lv`umYN&k?nKfpu+7HVjT;Lj>m% zP-Lm)T!xSPxsXfNIRM7Sr=i|?_xY7uxFVoRgaJ*sYZ49IMU|?@cU7!H4NfygAd~F2 zFGYblM#b#G2u<`)oz(6Fd6Q_gPB=^qoz7%^bZ7ouhufjK)J`nOVn1c8_u=5YZYOtb z^Uqeov6T=Icn@oWP|uCb7J>#w3OQsNwr(o52_RW*1)Ke^IfJf1p!pqZxuct!i|Uh* zN^+~c8{0~d8a9sFaVC3UMFO#S6)9m?b19|mn1qfnQ@R%UcaFAJ(=0+4D&Pj3+?-Qe z)fnyypG+MPJu=uG&{^H3oi`w?ts3OE+)fvu5@pIHUw~qPEYKkf??;1IGJN~9BRA?`0!p}{{4^e2sfxi zPHJp8&pSqYUD-#!=UsaVK6#Gu!f$PdE_XIF^;1qXt&TtXQ$MO&$s4B#pIKIH&gYIu z9dlrQ<0{@Y|FRuz$4TP_rzd2-p;qLxmZ>*+D(>o6|p7 z{L(K<2*bMfyGq*BiG0*%ZAw@%!(z(N{hl5}S}-+?=@A;9>lYAICiVv8qJcv$1dk<+ zDcFla7|Vc{g@nTM8>ina2?SkV2E_MA9^|y+Y&;p5!bPMWbegsOWd3NRCi!qc73a7> z&;-K1?I8`1;FX@3{14o^q`th;n&PRC6iL)Iq}nz&gjiBE!YAapoH=#~cwToH$`DH( z=JIzku(UBzccr@&$7>7sN}~1Clm^#et&p$HD|o2!Syj>t=835<-l9?~MTH|8n{+;N ziOUU^o;Oh{$z>`m&Gnt1BQjss=cAxx(2U^jel!9~h0`8U6M<=JGB*R#Q2t#$ z$DL+3+;ui%%>ZRhuo)`>9+hPtE>2@N*aTx`2%UZB-`g;g&<)B%?Fb>~? zdT4; z#tuy;2iuj1>QRR%qjcP(5Dkz(=5%ACu%nh(M-&XGVU>FtOlYTx!JSPpprzkm;v&$b;e5 zo)Eoc6bTKHnnNZDXhI}lm@7k`2e%=g);;iQV9@9CC_!r^&yC_&r~qV#Q6bG6Qufz8lP&ot*@(uae)82 zQt4cXn>-;0?{vxwggrMdn65_V=)o{sFpt*DB2iDEdZG4Py% zB>}<9@Cpz#HbY-MpcmSba*s-CvxQ{yekYv}t2{bzL#%T%*n}yVLO081+kWG8X-Wdq zPUfl)ZIX^LK-BMh?CBC&=g9Ldo&699?}7?bMD)!dA@ALTzTY(|T1psslX%!PqqLub z=jcLAClCc-fEjLA-7HXgodJvzGOA|^yBBx9WUcP@q$B_*nOKW(YVLLn9M;{P+$3s+ z@39}m#LZT&b_J%vBq%oTCUEf;8Z_sA5Vt8yMHL{Zy5IH!l%VgjF?Vch5CRbE6P&>< z2yn+q-D?CWHlkY1k)k3HgT+na68RGJrN(AJwVQYEF$9dkc>jI+{HQh`)$iUZX-Yph z*}u+Lz{Z%VwIM!%;BzKR(MST*s<)sPFee`4=RiMa&k|POkC_k!*Lmk=&15p)Jm6a- zDBkt1G(3)3%GvEaD4;*D?&zU*KQYe4tvHlTa|zh$#Js#om0DbA3* z*^FKgAkPDuWPek+)l%skJ|Lzls~sQ;n-(Ni&d$s;o|Y^tmn)IWI%^=R*E7T& zr|7|}92jrt&q=TK90Ea=c%-(T3PfC-pm|6%aDyVrLi^i+hKJQjvRc|p=6}o7NQ5K~ zRe0*%`7ENIzMRPtss}nTH-~U=VFxK_Rsh96tFP|RGj7nY(6a>ywH*Oe2x)BgIyi=V zabuK2T>+qcm!kSu=%EWqjHjtg2$HLG@;P*P`JXf}>h~!mE-d#KiF}~EjPbPpQR~S2S3$bs2Y=SsR4CHta*l6e+klnCGlw*I#v6Hk$zq^muH?=)3PRr}ZY#tO z)`LmRoXtKIhOi6E?Z2}*x!W}RjjTGz7}I1<@H+LP2q&0m0Fzh8aDIF@0_&c(D875{ zlPcG@lZhvOQ&Ppcsa>OW0Bw^x+oW(aQ72VuG%Y2$RfgIQ+xMlp{_!@&nUz}nL!;{!KPzVLC_-u;or6Pv+A!GeZn5yJ@EmPT|o@EF!gwJU-R zNr2rYD(HuLv8}fCwglaj>gIfp9g5uew?;m;TZhn$BW5!o<>Flexu2aj&Hq2&+5W0P z%EoK%bI7C;+pp5d`}EXrI0gtqXS&kN!VGas*h^*ic0-XH4W&;*S;oGsj}HdW`8%QB zzk~f{)UEkj8!hv`Z%Y`v3;%))VD;%nUjnxI!T_`Vq5S^j?8(i>urHlJ3=st-uQ{qj zB%Mk&@eQ}#6fHoy=5}16iv%VSZn*XzlKG~qz)}yVE?#FgLP^!m$qy$YB(}@vx z4xnk{WQMpW$C_hmT~ZSEGj>0mk3Lw>>jwpF7X%LX?@B{Djyqse8$c%`!N}=91<UOBegLf&pQ;%z{M(6;0>Fg-q*wt1Sf@w)-`4XbV_9M~i|%DJV+H_tr82kctLo;k z1KJLV?}0c93Xb}K^4xl*8}fDr|N&d-mqI;dospHt!)Iq+qBi=4_wQLYM&WUk2S057FtKZL|K zcg@j2ZU@rl!g(#rj5ly5IZ~>{>PN1kpz#zJT97SAW|;}vNE|cQ81%EgGeQMe7+{Oc z3RvRqD_LBxnwB3H4ZZ?RLAV01!oX?0RDzvW`+0Ea(JIzEvec6-&$6T9)RihdBdqF2 zb4v`Yd$EtR4%arctW38iH8*y+7G&wfS+6-UefNE?9j%%7VW*@kO5_FHasM}vxOHO< z7_}9xlt?VenxjKO{qwyKzJqn1b>x{_o(0LunO=z#NhJnn+XOtblYe(1OXU4e!^AS~ zm}}R``T@oKoJrMk@A)W6nU^i}H$7%Y(PloZG-2c(uyPlREctVjFb&k_KzjLD3kfK= zSkgLPZv-BFvEz8u3+CD`mrXN1d7Hu}g#BAy#{`tfAl+<29-Z~neQ&^eBG4Qn%saBR z4H|$!U8#$i7KU1eyQ+G@pSnBz+sQhp3EUl*=Gu0nR!mZ&1c4^OTyB%}hlmCPrYG z6|q}TLi7}rKUPLsVlkO6c=j1hcsQEm))e)=gyqBwoxqNOf)mr=m4E)`&;-;pp$*I# zl0fU+4U>9}urTc&5lZys-XdGg25qi-aj|lxdJ*;cx&~ix%0cV$TUISneTnS7lSdz* zQ6ZFvW8pS!cNPb)=(Pb24YxcKG##+3k|4;@V_rSDlr(u%6&$L-yz4=g6J?1pAZmxj zVH=nA%d^Omw9!wGqvysorYeGD=5RMgE=B_+45jTzfz`8sTqVfNsq5z(AS&jWMk=Fm zoFlWuS!+ZqD+f{}AwGIiI*XWt3Tj)hjp7x$S_YRAPd42^95stX1L2lC-CV(2=+bh zA>CO8vR_w|Sq*)hsI1Zt5N2A=qIx{H9GBI~j4`nfv`@@k1@;V}OL;m%Elo~`eIk#Q zTHTju)v+AECCCzi zNVX9VcwX{VjJMhH4j8MTipSSI(w_Rhpptm4Wq7bHEtW#c(fP2PQKCu}E1IZ=q@;9h zHV~l{$x1wW63bgt>)mm9^-GfL0UNVL-r;1Yx{= zStw?$tMEG*FQKLJ*mrZ9kxSd&++8HGjD06jSX0{(ox1s4Cm+Lp* zupmZgxhVi}EMaEF`w7iDXBTPPGFa)M?wlEuvqnWw^Ts~Ah%MLa&<%?*{yzOyb?tuK zIRl$Bpzu&gMDCO&H)Y^_DTrvRPM5hx@;WzUeAQ&VKA%J5K9Hz@rnU}CG&T;$fO2Xz zb3KgsGA|Cq4Jy`8DTO@r|IrOM9(Tl75cbR@g zp9yI=Y|!+NZBUI`Qg0PtmB0|IJwjiqt;Y}-`YVxF3@#4x9+VPfYRS;;6ghB=_E`FL^aEJS6rI5*xN2$FyDXyX>dP^JbkDt9=}x&BlTLgGn_d=w zdaQVEMyU6>%D3!#Ttt8y@1saRxr*9)IdC}Ce*!?|91Z20X-n@&bn{sLb__^2_IbY z<72*605rbh)>=`gkw`@T4kdBg{NDlLYsgpca}RcuHP8xn*IgAk ze9!4t)B#nCNXar=R0JbE4YK}knS#};frLfJnU|CNM@`F_OPMRDxAh$;ddB}#ei^F8XVcKHMX+hXKaC~ zgbnNX7z&cM@h@FF-Gr3%I2xwo5tcxHD^aS7g(X8?+i4mW8_wZop;TF0Qw!+xjmPZ)sE;U#z~NrKyEf%ELAeu^T!M zwy9hUN}JSGF|CRz_7s~UoRX~W_F`*GwC0Aic^G1rTgbde2&^PI=myiF+e%cALigok z4?24#--(+M=7m(yWc_}j*q42#Rg*Lzru)A{g|KcgGsNEnKDftXAvfbdKp&m49i+ga zBLB@aEc2z@i^X)O7PreD*b9BwSiws9L0>CuOOc}A9R=p;-m|~4kS{e|so@-Tm-vMM zTFZ2A?oSs$`)_p!-j0<5vd5KU(6bAm^;uF<)GS85R!HEkUqW-N=X{m>uS&*eHL44C z=fF(P&dUo#ab_U<>is#56|8!W_rwYq&GY`u_AMZt(2|tbzTqFB_8+FJHP9?-9Vj9D zSCPxghy1};1<=u><(|&&`DQ|vCV=+hJl5!*Wj`eyF5Qsh4N;!V!A}s9gD1`i;0%I zuqy%^CnS&5#O;j%9tE&^exLhHq_QPkw)%KJ&tg;&6Y6_d*QQf&!=A&EcC~dxjSwVR z^8_6#YB(Y`*?Sui6F4`^qtRG@Qo|JgQQBGFSoj1-ar$0m@1ymH&w>c@WHXZND7twU zxZ}0X{o`4b>qzdi0rLr(U>sTQPr0stRV!%c5H(T{Ho|wUP`Zby-h8C_EXjjX5p*Q9 z85Q9>*7f1esf_y%`RFO}Vd^@vIz$x$0w)m*$Jz?dgMF^yaVH*^JnE3}##(@dv*pW% zINBtRwj$46-zM^|Mdv7CKJPEcpwxCrL^o*OSx%-n)F?c$?`XHPz!6gpCW-$z*uSX(x2Z~p{D1BFr$Kk*CQE6n%jB7<60@uR% zevXy_?+EmJtW8iV%!yz{mos&MgLVo78>O-SJ2f31n$p#fRd>iPFtMBs#Q>#H)}xCf z3ci(fdM#5_LlQG{)K0A|4Q*u>7tFHSGtcYw1ijR4uUn_vdepE4Hd4R&jJKqYdjv^Q zWKB}YxC8q~>NSawcM{DIBX4)hwbt=ZW2`XbA&kP(BZTW=_vFQKr+(Gfcd#@Bwb__1+M&)~ds6wy^6l9;*qn9gEHz zqEe~PRh}0Z_zJf6oD*0K0m=x;aj0j({;bGFVa?GN!3asjWa)z-gy<#&M z25cRF8>b#vvL~Zeu)wV+X_vZ85m@`bq%>;AnIQiN|s*q&)3bDY9A9 zT?@$F0Q$}<%K*A-Az?i~oCD}geKQ8oOhoyg44_L1ZVK?g`($e5eRS#~P4sMKTPc1bMRM6((4>ZPZ|E$=ejpIPkEv3Va;miZ9gL8-C zOiWdb{cN)8S*AqbrPQ`z?9sgMEM^DS^-8|9{x?+frop4Z(zdA6ouIFGFu0LZ%xAU; zMGVu9sF`?!5H|}hl2w#L&({JlY4rx}m)23hFyuEJU## z;OgP$sjL+CC$(W2)me9aW4Yg1ZMte#3glSs%+(A{t77`S_w-JL74A_v14`jjGo+Z1 zUDvnBhW^KWvh3$8fe9&9y_g40EYo0J=V(dwEq6kd(1t%N^r2d&*+k3ORFwuV^o}B| z4fgXg7|vwCQEXA%2{z8Oo;8w9qL7SH=e((A90Um=)MUc-Z)DKHI3O3NELKWO-JLDL zj1^IsP_1RHOmKtIQ_@^{2g{;gNxwg*O}gH}KfiAm@>FZ-tIin*|FA5B!7R3-)^j|C z>ALP*0=-Mx;uhFfm8q!Pgz9LfjH|v>3=B9`*z5ZP@me(QNv#raH&Rf>f$q*OC8(qb z3$x72L$>ldgO{aPn~o@qwKJo33#D^S8UL3gH7HOV5G#AjVBmh4KPvGs%H z?t>_$Xj$LatwlITB5)!r4Pq5SLt&}QRC$aS?EH$ui)19>lY!tM(C;6H1CpD+sHveC zh99(4boB3{^cc!^98nPt2!Y(ssdAw7jY?%B1{&xnEwf!I!Jgvpl|bG^6TZ__%JC~+XcYlWzPM~P6@2X);$cAu)~^Sw!_%A z+iLrnq5J3}Q12x2Scsm-DU|){Oz-tJ?rpAm{dyIp#s_(k~dlHY;C6Ed3=j_1R_#b_VHyh@@Lfu>}&G(|$eAjO` zl_9%yM&`9GJ!XHBAbBF|^C1X%gpe9jix7tyJ#5d$czSUE-`Z62CE9s1+%!D%Q{dh^ zPc&+`+w@-T=YtdyuWj?gK(h|Nx*nP8$hNZweJNIuHt09R1ba3ua3js$W{GR7-*na6 z0HqwWZJ+;*vt$hgHIhNuVyR-+@gRE?&A)s5v=pzdkbg z;LgmX1c$e;I)In#EN%{2cfme(?Wnu++R*le^HIvXok3VNZn``1zv;T^P7XRsrpeaq zsBN40?WPCpuOYS;C0(m|^!!fzA!9_bC2!9Zo7lyZ++|gHo48p%zPP-v{M-m|KK=Fh zWzYKh*ImkI_=acUD*@6cRtmTO(a@<(doA*7|DHB>cJUK0I#tVeuOZLz3y1s8Kjr+| zx_zZK@qA=~@X7Op-S*&Pi-J2_kB@G8{d;Wo2l!f>f?r}UUbq}z?I-Zs6W}YK319YT zpZMN+SN3pMa}jJ%&HSSG+n*;%%YBHfxG=KOBQ?v|nDyOWN%BQzjX*a{qzv{RM&a2ky6LqWtQk zbL=kL_4%4W`sJLVLt>#GGfk1R^9fS+C#UAMiSGk1+Qq=*TH})|ha2bo&X8eRBKDZs z$JU0Q`-t_@ox)3>T_|&J-PcJHxKgwfNPz>31Us zcYg(+a9VdB2Y=ctzxY9$Dd1N^fHp|~Sdds0nx?&!*XRY~c_RRtJ}&pS^)Bp#ArHRh z2u#YSpLIU?5H>JOxfS4IIC|mxUcu{s9ZZ8S`2zkn%RB|LpIzOrsSx5TZo~@-4?dLa z0$;oOcYmj&FJ&^e7%$mZUJSezAAQJt;!`(mw3+<;4aEokK^zhn-}>3i`UCs?7AKEg zhW4C#M<->h(my#xSy?9h304FVym4*nJokj)=H4R+&Ue>%-te+2fJfz8V4kkyFl6T! z;U0^L|Gjg^JOZT%`@6mKgZWfnDuygPi-uKZf{yhgp07$R6IoX3ZU-Kcaoc$-P!8`G z*b*|!3L*<(S(4#9s7@;D{pi@D+I%5Q{PX!C=DDcQ%xbfd7uU^Ilr1bg(E>pgWCd(U7ECeS`1nOI+QhHs z5dK12T0}pL<|7%zOVl1>-$I*NXwsRF0rlX1gL$M(d(j}+G>&lLbBM48YdC6xo*AOy zd+w(X28w;jO$g&tqq}TinSwPz^8^_{2Kt#mBT=m|5_Q@8&ng$-n#>(&LIoG64;Df> zYo)9-$O;c<-hB_!n5`GJjQ>j?mauHd+-!=Wqbk{r{L>AG=yLL%BZmqbQIxc7CBGLu zOz)I=NvavJI_1dpol6+g4q};l+@K?IbZePE9%mVHR3Xa@C_+p9yb=qtbj5}ny;9N9 zj%wD!vphV!e-#6L(w6XIF;Rxn0sd#Qig>6G2Av=%!r|T^AyEenpO?oidjV@=;)2FB zqFR!fM>&Z|(?s!Q=zG+y4lDY1JQIx7C)i58E67)`tS;`H`bqmZmwUX>O}77DJ(6iw ze4N3whO-+N*nt!&qZ7R`<#XIep9}bqJkKVJMSh>_@V8*@3cAN||Nlds9daXA{!i>!cd_pMVJmKQg~snv-Z+K`V^1f*8RIX1)(dE`v1}1PTkUt@4h<1z zCK2^~a1=Kv27;G00gD4=s$2DjdXVkLEWg|%JSd7|(`>0Ge`ik}htU-^S8GkVt#Eazb!9UQ5qL8MF3%uE za##&Zq|sacTrJcRDRi#MX}_&@5TXl;gi0z)u#y7l=G!1kg>{;pt-+;LNx&h=32%@K z9aC>JWbGXC{9Mm;t`)kf3Ke-o{K_m4s}4SN01@3sBUFOPCd`Fn_#`3oVK+g?O(8~M zC*cB|zMmoHK0^HA?mni|zMxNE>r6&w2URig32H5CAniAJ!`5$95eq?cb34PFgP?SM zmRN=7s@>Gm*QECxyWr8N5UK;lPCP~QYg74JQQO9RX6J95#xfKQrLeznx&vrzEBbQG zQ5lH9KBUi)EOHwmD?n5P?G|@WIU{e+uz{}X`&@u1uj21dKVO;2JvtV)RBzD5 zYSGG|S~ncRM6bA(tBOwi#2XlFO02e?hwYIv^NzdPi}9G|j%-N?!aq&q=ndD9FWVko zC5*M^>cfg~_4{6}XCSD}3ZcrM6eTpxxXLH-e-LUB2|(uCj?cehI|%zyV5#t)Eg%9_ zFFhnFK@WTG?yoSga&j7tGg1{K`t`mJ+_E~i=|vq@5F2?9N{MShDvMIc0FhER~deQ4bq^po9<8JpK)P>vhN0 zRUX5`gdNhpsF$(I$Dp3((1PFwawuxC$NRA>yEQB}=PNu^01?lru*#MNN>IcaD(A2i z=L)aHrv8(NV+og()$>y({dF^P6N()AKkrOs0gb^{neh0Om-BN4_F$m_Ch4i zg)`b~JVj|Pp^yqjtaQI^IfRoj0YMfzB9f@v^PWGPp+R2@C~{;F6^Owfqn~tSK#bvD))fV)F>9L)$^CgT{*$IlJyF!%n2{P&sJwNv?O5LiG zSI_r}3Gz}>o8pU91}=G68(2<*-a9IH%rv8sox3=-46KZ>#gr8d&p-Eo_gQ}jTVR`+ zLL(e^-l^4K*+_pv_fxfBg=X)$NAt1AdPTY>_yL)huy1le` zK^)cR-;!E=1_;CXi3lL(Q@#08bY~`U)=z>xuOW>6fk(p^FR@hYCD+@B@k)L`le|@| zW@H)3i3~-BWftX)MVYh3qH9~B#PC{+ht0p(88y6mzIJB;VM8rY zwYv4yKg_6|tSZ#91N^>I%`IR<*^HqBj%|#gq-(JA8!1tod~N5eeQz?9|D1d&Y+jQa zVTndAHhPg4OZC1wp`7b`De(rk!jUh(mD6`TA z5W4pUn*)Hpyjey^pd#C`~XNYHdlD;(WB5(AAE71-i|DD6Lp!-#_IZ?9V z{Q%knY>$rw&=UDgC2m}m2KjhnvY_{l+2NzAE7o!vS|IL7p{0ObDXn8z3`KH<1jcEj zeD#1k2SVJorl44db6etiJx1r9jhdSKA-3V*v<j(EXBR_Vlc(Nf`TfRCN11lzx7Cd0v%q_qBatPMYwv_jexoGF#>2WiF zZiC+oRfTYwceYl=Dx3o7)B;vXQIk*uVhNs{-V~*Qf1)V`HZl>RIHpS6Nd3wiv9;vC z%itwCfPkZDQ5l8Dos2hW9%2V9tml6{(!Yo|gb)=%=)$uMpa5Gyq`x;nA8ZqhZt%e- zSCQYMRBcPlhPJ3*ePc6E#f^Q>uQ3VSVVSIeMyICy#*U5xdw{b_7oIQpwiZgY`QZaY zKY!;-^r3teFZ2qfnP-XG^@RbClgxYt19kk575bUlY^}5aIH^ZQU*uUfmI#FD-}U*6 zd`5kB;OtsJU(O?XnvUhQh@G|c@~+n()4lF>tmsOJ>-kF$aiHlod_AAlvt+;-q@}Lf ziX`qV06gW~5~dz>_gxPs5_q5$ObAAq*F&1IPOURQevY1UF%E#$DXA6O7M9hz7oEJR zXO~!)<8I2y$DRWbp;_HDns~kS*bs zC|<86*dCB-IE=|UVYcYc_l0`n`TsqHY&`|S=w-Xl9e2Ip1man?`2OB#%CIpccn=q} zDrOdc57B@R`L-~D169Q1971-%ElRZw*ZmF5HiG2|D@sMDf!@%8wfuKb2h6!`OtApr zVoHE>dgunue7nkFLr*ijBvuxEKivJz%>42D;e(0uimD0>i_P%pFb@VV9s`lF#bX6~ znTBxb8f0NYska}P%|~Ws;S8n#%PJ#hh)KLpaO4!hOfby=P|ur$Z&?-wz0d1+5FIoH zfRcPx{qrksGqVRgg~0WVZ=F^+cA(Iv1UJ!SA(SO`hO!q{W8VUR*JK-YW`0EnXaX=f ztWa@_8eBHzvbLh$P1*a4f~kU$*66bO8yyMUNA0pva8`~@38v0kq6Yx815H`%Ek&uZ zbO}9cY7<>ak5FSkX?@90C-|FTSgQtX*9hZ-`a3N|&0%eiBf84c2JOQZt?bLUW3}b< zLL93qXihaSNx|&&t2<;#_Wb-R z4%@ak0UBwm17{6BhxvTTwMO;7bH%E=C->jkBcJkgGDTte->_?KD7Q|sa9~?C(y_!f zW5o#z6z80}+~2l!db+foU=d~Y8^|l11FTz^{C3|pDsHl`7`XKq z^VH5nx9t#?$2w;J)5V0Ua)Tz2#GT?|TBk}vgC`5eIgX)dgai_fjbrf@r!{aA6Zf>} zy90=vPo-gQUI9O#rw|c=3W6aB@4PBg zK_5WzEbpMds!=$cHjcEff``O)%_XK1uqn@rO%E|l4}N+RiA{+|Ru~+|s6)HylGPt@=(BF*(K^(E>jj?>A1O`DBc6{ysP*_PY( zeutGn{g*P?$K>Ohq*FL^2>Z}!_ab%F^gbne&N0C(&$nSvy3;$)7XxUAKsHQb@@~oJ z&z#lj1T;hB5lqCK&!9;kfLP6ePKWjMixkPw2aNMPRt%us5G&Arf8p>Jt9M^=sR6Yh zs)|G442eu)VRTBPV7<|9UO_#5JQ(1oY*+T;l7T z5}4LIF?yv!UiV$TEDbb4u6$n>q>84|Mu_QpJ)~CGm+qwk=ec;MEF=SOM9)}#K(HDqY zDae@YUv>Ju{4pA**HpzCLyv4MEC;sA*NC#R>rtjeE1T9p_W=r-Q<1G!hvW^gLMH=x z|3U&z4Ock3aKlIY7ezt506^+>ROEr#P8ExQVORQrsA^ZNGh@UOnP{<>Z_-QQdLmt`_ax`^=^s@&*an0)+!E0G1{Cch5sEJcs`%CC#orZVn;D1`D%h>ku?KO}dW9#4G<2*NoggxlI0EILM}!x~~G`m?Hz zdR>_aY~=IllRqXsfUqVZQt!~@3TrU*zpHM0?ggq9hcXrDf>2VRb*R%Q{&oVeADLLpEHI z#PB))L)i=MfJjg;hRz`3nOLdBOp!DQ8dwZUxM*S8rkzNLA}vptutH7SrG^z@qX#CA zO4mx-1fKhxaa<|*|J>r*RUp9uX!M_d{nlHwtJe@-RFPp4dtj|OP+tZl?n(1#jg(2t z%oGqkc$Kt(ES+O)*Ea0f-LaOyHF1wiJTnK$n(!7DG_H z8uc=oiqu-5_8W8~u{U9ZCVMZ%jh-0ze(yYlTFt z+UbDKqLFe%jbJm?Duc1h)EtoFJf$){GEPvQFNI^&qn4m1>hqy(vGBiHiS&3sg(e>) z5MJ;pJWa0NyK^1%GP3@KgoDcdz4>6E^b0X&?IFO}@{6)&(A_{*SK{}6muL|0<^aQ5 znOse4Rv~r7zJ}=N2eqQ3#GMt}Dfo-g^t(cy)Vx2oSDeD0Q+OJ~Ree7U2>viEGwr`_ zifYSF1}%rzm98P851$|&nR?}tu>qM#N}ok*kFsTBZb9gGb`Z> znsrzATTp%#ouMQOqROW^XPRcHq^>y}qmjBV7W*zeGG&qCvg;Aoonbza=3J$a!{1M9 zC=y*J)OemNgESBNs?~Xjeqa>4Z_9GF^^Z-^_o??{A4H-gBZGgl`A(L0sN_#PJ}0Ti zxyAo$(r9LTZ#%RFrF1u|O$G!#w8#v@S~dVGHBuH>V z1km))QE4oQzC=@lURvyNMT+-XnGZN2$>Qw_d1Iuc+XqY&zw>JWv@~PgL+lbLWxKNj zq!q>$)kEA5Bt^rCrab`D7{$PY$qsoK1L(eRfF>A^2<{a@vd~b?=b;^_(2chngV$~j}W zyhK89Lrkd%>F^9hC~W0L<%X8TXurP~gj3oH4at^ogi5w+GB6&|2DX9C5L%C?cLqne z#F_tk&d-}+-P!1E?&J*<1%cD-ah_W~arY@`Ixt!RwA^kek>M8uXztF!#y_=VyJ~qD zsugH@(6hKJHg}<~j*edB!vVBpak5F?=;(ni=5k##8*oq$J?}=?=d*CR9=JU40lL0w#@;$*sE8ns4FLeMtlM?I z&g10EqR+2?z})&@lGC~$jvm7bxNNahNJAdyKCSe8?)M&593W8ip;kx^&S0kNm%H50 z{awi|ECe3Vlcc;%-yhxQ(Eu!%L=Sw6$=R{0%9<;;AsuhB`rr+eJkrPS0E|-90rf;I zYr|3bxX-rt}DdQx5%i!7UyI3j7c%rx71;&?L0<43pupK2+h#`gm@U8m$Io-`eoc>v(mKko)bZ0}k`FZtz!06x#!ww-JX3p?DE#hjEsD0~~>LubqyC!~J5HDt^n38t8M40RNTJr}L;6svtqhPV=d<0Dz2tSfls9^? z2I`-V8&L+(-8y|FfSyW}pADeR`tu=roPcd1R(wA80cA#OyH76UFqwPyegIts#%=`A zubibj0kkj3Ve`q{88ys(y)OjNv}$0j3!rzaunC~YvL0@(=NLfSmj}=`aG#cBGJR(u zl0)rRl_UVokn-OCeKdgXPjxFFzVlD=9%lq{Z>Q!~lrIXPw}IQe09qvwQ@%Pa+}8!r z_MrfJ$lith#GcyiD*|YtI@<=&G8@Lmmc9@`i*@EJ0W_y|$9R6*0NQQ_(E0yvc$*~? zx(J}zdZ!dXa|a|{KX1Fh8MbkD7+$o^b}i z;^w^27W^5W1sidq-Wcioar688Gl{M0D0b%q{T&^51iK2ZKt0#ae&fzoHU0tHa}`M> zQ24TUehH&}-TS1;|Ke6Qyz!|(f6x7Yul-cU@v(2~y>W_!(JO5s!?M&-zvm`G;&DFy zA(Vt|7OEh(*UtBdnV`3cG+ivu0@shtQv9dc!@=`R{i^;z`Euby2WX_A=8`mzY-#$! zx&$FKTnp$J6euWxd|#TUX}S7gE9C*hl)ErSC8o}tw{Cyi_%m@Xy7i$~fb@IDz68#~ zh>`oQ!wXi16rm1z9shKG8E?XMKK%KLha4#bA!`7P=6qZqRj0gtk6vn6Eq|}tU5;M1 zqp$TekGv#q&z)kHU$ZDMp=49TJ&Hmjk+<5)J@*g1(r4u}Nyl^QmjZ(47-xT9veK@+W$NlMSG@Budqdl6 zxJR8zx)@$Ws1_wDN^|C7DpzGDzDl}(6Sd2#fvIoJmOmI5+37VTCMNrr{+>yRSC?p- z(OuMmLuAUBXYh=sG=A<$ZTk+t6NZgMTNYsYGC?&uI9*wvh+{(cmU>K&bQMb6Z92O<2Cct+H1Cb`qsQbw>jnUQ0@6QU7 zx}ruClv-D$A5!1nRf0C$yt{ts0re?W4MdiC!jb+re6jtoTb`n4MR^*|x4=yvFM|~> zCupG&Yn41B%C*unakwAKwqq#=4beK_m0laHwU8r2Dy;^4T?Q)m6-Btgv?x1Vr3#nW z^*pQ=lE-u!Dd8VB_8%hft?SoQbE3Fjih(w`q#kPQ{U zTCKKt9SF${-SNa%XK}_KbSz1Lz+_VNB$~B#O$OFTxC_pILg*e`3FMnU9K2IA)PSo6 zA*>Q0s(}GiZb;J^)YR|S=UT|K&q8iCE^*DAB(D)2$LqVN^dg2%vw#g@2dU&4m7Y^UZ^oGqh0QThTZLc;e3q#KFPE0hcapl=Y+d&+)TwwoR5hS$|Sf=D>k zoxBkzS<^1ct$|8*xxURCx?u~2!FOQ?HV^YeZ_%nx)h=;{H54DtKKQ^HJl`;IL5W+S2Ky#(j9Osb&&-p#5l7Xi zbw@Jl6)3H8O3N0U;fZhgt(Sb-*p&9-uOsIYFMI$u|BV;l^+sUDIQV(qe{nphf_&T% zG!eTPRI}JDAE))JqbSO<2B5dzKGQ`uvMzkx&Is*gt#rBzpt~?P7N^{eoZq(CO=W=F z`&(^>KgJ6(YoN*XKrC!R_NX{PM+$8|#dU+B(-MQ6~j4^!`ihct!-UN?C`|p}u zOhj`l>b6?k2M~V>NNT0C$qTW^7NVRQfu~+TKKB+g3a`w% z@2|dk_&hfC=EQto&R*QeApQTYa#U0l9u~PuUp+Q_CGs~#5St~%4q{!c4Q`I8j z1vFxpzgglOZ$XuWvS+2Va@VdNQ@MIz*nK8WReCAuw4F!)H7XOeERiC#J|CR06qzx? z3dJX8wdpQAHG%B4=#)Sfb8CdZ-+mr}qOyUbADkxH*`q$23jCIQ?y9tBafT%DFnfvS zqyx~P$=B<9#egO4bKVut)32&pZ0|7b&cBX!lOx#2Ws{t78)K83GqQcZ<9x|nky*vckc^w9vl+ntMB*ZdvCUV1=;w>0PnLgunVQ*_i+0wRI#(es49_oP@X(xb35}K~^B!mit)#ny1M(>|o z9c@v+yF3uTLy?}yXIZH80=#oR+}xhKe;DAZ zH@sV5W?;bA%erBr9J$|-E!JqZpj66rQHrUnya=+IkG-)e?I8KXg_9auNOI|f?l9i1 zSCtSI8TCRRv~!bf6-u|EV8lL3+tbBv$CRtokw_oC$?{vAD)w?r2jtLfv)=?$`G z6AwCCR2{p(CL=H-AMOo4-5mTzs)=n|P!4M+tfcL$SGIEEjy1FE+wb9*#rh5sJ|Ewx`8DrGagFJ=v=_k|k-Q<@Gb?;L=UoG4 z8eEj7?VSZ5&hyBbPMe9yAekVbc<_l5^tbPP*EGhy zR`{-V9k1Lj>1k73+Y`1oAJu5moS?%@s*bjE6I0{3r%dwiyt*pN>w$D(T*~JknWk~W zhk#g=T65GKp5*$kl@?zG43}Zf{3-zVJ%CTD4ua;vX1(r%kq;h2iEnj6y8CAbmA+jmUFrQKz{{ z6qvzqw3kKt<6YnL?)5WE5VEZiL7}$@z8wsr>Y~=)&jL|LPWt}vVi{QjsHJ$?Pnt#a z_-sicZwz*om0tTE^tT1U;|jYtk>MAV)j-ixS&1Gf#$GR<8JWdNc@|WJuJ6esS*H7F zg%o7ST0#$E9jJ*dKpuJIGt(E8Y>9uhloPlk=;y`pi;U@;;c@gJsvMWP1q^lWmT1s? zGc$WQYA>?~S=%!Z5r~N1$E#0=>cI^FoB_JyvE*|vmGcr&X9*Ul{)|G3SV>hkJub`b zFazv7ytB!S9_QDJO!{pOx-i-N`)4cc7; zQ1ZHas+5^WJF=X7Y>}@tPwy|s1mCzGP0tt*O!kFPmT?rnKLKF!`@j?|P*4_H;HdTY z^HIwB8lgoCQM>OV+<@LA1iLgdTZ{;z;30p%Gwz)nkND#VhQV;A&T~&oL&de9^H_$* zdA!$EwNRYjen{hS0Y_Id%(_3Q3X^o)^F-BlATEyK(ywoR27&SW1HMyBZZ3LqQ3F=NJ|_rwK=6sP1p8q9U{xSVzip1ulXX3_1-6-2XcF zhYH$K{BZEupRo*4VlGKNY++2T_^(4Jz|x&oEw~6qF7wz^J^mG}A=2oD*`CKSS9N_) z#~3dCr$D|d%`Q7a%Ja|Ps_g9ZJy*;H*=0~r14gs{dKfYhUl=yC<9;(RQ zNO2yR0+G6WM%5t2?7>=kZS(wfUZQtYrR#K_Fo(TzP=1-K@6}ZuJXQgP7aY(!1 zsEEl5OmnnHfT}wzG0}iP^-Iu>7$8r5%R!I?9qnA^9v>g|nSipwmZB~fTQ69Ga<0ZGFYAaMLOHm9!2z0bpwHN z9%VH#$HK_=sqOCI|GE~TVPKTzXzW_F?B1T~9(np-Il$@M6^wJVUW@WVg*3% zXHQdqkHh`W?F3#p_AgoF)~-@HwO6>gFeGER!JQrKb52G@Z@2gYXpLft?(YJtE&;&S z3H9B!ij!PREH~{Uw_CSx)663Xi;R~>vd`7gIkew-Gai=lEUEV_Jj|cqJ}s3i+`kKV|3&Q()eYGVD{jWc zV`*$M6x3Ue@!;LyK7}~Fx84IUt*4%N=Z(`o^L)-uVCN`z-yexhJ9{@Sz^6%P#iOe- z@t(XoJyT!Zy0e#ghCkYr-I$x^Xr;x<5j6?ajob3V@Ul2w`_Jia1#5+1uz~MuR$s7N zf24ie-X3UsMeFjeoA!15LkMr9-VeP!=%(4WLt^#r-o19TotXA+$gx`zjP~`lL|U~N z-UB`OvI)uo!X{{Y$&ld#AMir_hk3;H?OCp1-0US>vVH{B>&xRKn8mB6nRdzmNA>0P zj0L_&>}wnRi&`rWPs>wsc@{HR3VtQlMHSeZ6MJF1qT%G>YQX6gt825%#5Whfyh8o>r>gP_JlxBSxF2wz7>q(hBl$3FHfEAHRlr#F+s z%cx>aIPVFKAXSBrv%K~+M)L0RR`><2_%7p+J1T?ysU0>rBlt?ai#84xBEJNY?q`3b zapo!L4`0Jx*;9L~1jugCOm!*xnU(CUXS|S1;=GYZqTD5@Lr>nf8!v#OGt_gx8jckDw_w35B-&7h zze^BcQ-{>OYDHH;;F#2n3DV2J^NV|Ea~5-3xI+AeC(rQ=zY8iU0GiPkeJVBqw$^ep21BH@b9Dci!m+oz;&Rx2bWtTE6L@sX(J6C>6VoW?|X7Rq%Uk9px5V@X=CPp_Ps^uKow#Gpm+AnB^m z1Z54I%#af?o!^#IZHS~o1A(BZ3OmeP0z|{(%dQ6L)HIyDC%<0c9X}3h@FH(pTy8WwT(9 z;s%8FS?}yPtY?yf2iZMuuvDS~jFvz?^`T?ex?#m;kQ$8gj1!wkC7#)?J<7kx83(C< zjNq=1%0oDFxFb7{dcFitezdtP)vh>T?b>UQKi!KXH5)+Hd(L=PMvh!YFtNB%-J*%y zLS|hH1&aBuekk6rR>vgR%z!WRyDbv&~r+=b?O z7M`ILtqbpG*0Dh{dOjRLDYj&J)*8TOw4*+6B>>0ZtnMLi|ma<)JfSa$$P zXo``%&5&G+tLW1<0a8mC2?50~`EOU^AzY5g8Qm}%s#6{-FpWA2kNVE)7)$6bXbo_^ zO;G`+L^F`ekw+ro-=8(X)Dd_irCOrB>I#t9BbLU}Tu@M%D^?rHt#Do+l_%|9`{Fd% zv<8HlHt-M&#kKVJxWP|b6{36Y(pD+05l?{)5ZDbc`6^warZSzl5~iS8^YqivMHOa* zj8;jO4QFpzQO(o$XFrDtEp%x)Myqf->q1?5m_L=2h-!{C?J5wca|o~%K(nCjJQO9| z#ey;oOlL7Q3>?~?WQa;>Q!-%Lh%Ul1v&y{+5S*bQ1pp-42@d&Zv~7ivocO&}$hT`Y z)N^ADg__{QQ_xwUJb{p}4?gMHW?3l9i_walEnzJ>YKznFcEw<)_=yQ(#zu+O^@^`t zjS`?~0$yn8`zJISeXw3)QTOlOTR0LAa@RVe2~3~ZC$H87N-=tvqzqH?n1Pj>)p3&H zpsy44m9yn%&Srx027+#lg4-Fs9}wP1UIBFBx%8Qsd;JARJ4Au3^U9%o0DsZouy7`# zF{Y9`JJ9H$R0ZMqx7$E~E>J!a1QR^S4oN>KJ(m+apqkP<-Y>OzUp$tPbM!n>@b8xq zo;2Fw`+3hQgy4Mji}1)S8c$ALFgknxP7j_J%JYyO>-KQmvmK3J#&wAct%PG4c=%vP zK)Slc$bAoU1qAvoJDNrEn&=OXk+ts)fd-E!4PKlYvx{ff?a3-U$oX?>g^=uwH^V$Z zNq`fl=5Ag>2jG0TQ2`I;aR0YAq;8X?t4|qwpAXF->tGf>2W>PyX?iNuGFk9{zwnKf#-(#C5g=IwX~h>^mTuzCgjl4^fpuDnW3Fr4W(% zST)Vl1|q;A!?`GSF!)cEj4BQ}zZU-b;7Q@9TZkxV-u%CflON(RJZA#{*Z2v?&;58j z1I*cL1elERqmL;P0^RXIv&4#!n3|nFMo>?4e>X&R^4qxdK$%mh-p zXl84jwk!|KK{AIFX|m@QSNT^YM~qU3c%~lSkYmYy!lNHMw?GIexumo3Ymp_D4+MCj zR5pAvw%W$8SdNM<2$!{?Gek=a8Jd*RHC-0Rjz_g304E);XNwoIdodJu2(~w>ixS~E z6M81qz%1dM+hGbXtJ{Z#6i8b;+|r{*Jx$iJgrvBhKwoVMrDM;b?uU=7hHY-~S(!Wy zDUp)0w>6+yszl$>j0yWeff|-}n%sRZ8G4pUp6=s47i=-wvS`P341LzMEbJL7UiDRmAJ6r&Zt^Tg~7$q>S|tIR$HL5FIi>RO~~0Av$; zZbR!Pl~R@JA1bOyd45gP1yVucf$09K0`Tztg~#(sPSmDQSIV>fK~`aYCXi?SaXE1w zp_~lXf%RYuob3)n#LV%RvuTgoHGl>z31Cxl`;fdO{xC8kA=xkaN^8PA51%YCk@6gN zCLsZ|Xg$CcH3b?wY)hYg(AT$D^ixthzDOkpZB6heA^44c?k&<5#X)*QX?py-mg5%N zExWZp-D+>trKi#gY+lQ*Yzzz~wvKRr$BnujBh#|0xV34W4C{?^zu9mME4t&5YR?w* zXH5fp{jkQaFgmxnNZD#rPPrc7(i8@3lB8iDuz#EKTX%`(_ZCX8O~(kbn_?EvvEw9% zkS^C}ex3zrcNwqUqwSf$!yQ`!8x!2ms$CFwzdqwp_w~b{^~&#I6KH*i zc95TVq8o1}CTr0Co0!0U)lh(4!eVo8c2zSWbToaJ*Ia~I_wVN>XuSRK~Z9gqI74X{taKer@R}5o&Wfz zg2~O(!&j|~nh3gkaCVNZqca>29`|PiY;nPRdv>4PH`By+=UTD<)xjXzYoe1Kqq7>K zphP_=m$zX|8Ic=JNj2^3IXJ}++F3*fA$?Ec6gk-&9uyi+6Cn<7wvoJerd$vGN0*~7 zque8ila!Iep@%*)X@NxXSq0?J4mgUbfAz9YNd!y6iRNc&i=rVq0jP9opT52(X};tC7PPcO&~(cNn{5 zcK&(8z-@aOMa;oPR+a2PzngNeg)Xxx)6n)bu4u_8Z~joRROG59MPFXp^Yr(nH&xKs z)xJ=~b74#|m^CIh1JkOmA6{Piw2lzU2@j`IZLKiMzIvgzWsp7O{ zePg?ZL*}ncLJ*AMDli>-PegekXfJ7Q4FY`fc=&~c;!77h&leEKP*`{X-D*WFH8&qsY{SmCSRIrsSnO{kerTyuj3kn_OGp@jL`9 zC@WcZtu|XfQOD@%N0K_5NM%PkIIVo<)Z<;hp9dRzo7H+Kw@wu2r>-h+Z$<>^`U4Sa zhTP9+X@kXH0Op*2=CAS_R5Iff6{L2daxwjcft{j zu}J;`#j?tj>}72PU*`aCXj9lOz_ZbRK>}m~2=V96Y;0g>V=3A0c!L$BDMWwnTV6u* zEgTRCU>+e44qiB*+>eQ7@K%Y=?S^*zrGB>1EN&AtlPdCR7=*j{d2)N$TqdSq&P~KV ztVv+f1**Eb7fwndl0x>bkJ9L1i5Lf6Yp-(u#H7sfQ0f# zMTCJ0@y8TcX$K$?Fc-*U%t_IlH<6f~^ne$-&A2GTG^Eq6DNj?4_v=c43vCP@8RO82_;7cNQL4PT2FEnY-xUf>oo zjzF-f6DzqEs1=5kmyB_O4u@*;-=eDJp3D`K81(PNi_&{QBv1#<*jg!(wUfFux?0Ep z@1kLChAN??jl4y9rv#+odcO^Xn3*J|ssU1v#I(j|%{vRyH0O}zPK%%Q+FXv;S-4%e zw49UUj78e^Irc{k!tdRwfLKndkd}Z}Zs>dPyv}E(Rpue@3l0v9niN`6Dt`9YrwBgB z5338d70b)XqQ#b+LfRL9Lqye{)xAe*>GRi@JHzfKiGTaHmgDbr+^+WI8ti!z-NH6v z0^u`d1j~J|lqk^=_4`?x_%eodzr-SFpmphj*6VxAa+V7Ro`>UHisb{Wi=OM?Ck;gQ zrGZl@7fH_6iXNdUw8(*vaG0tA_d+2#*aB5K8rH>}`7;4(^&u*j37lMwmjinw?$c|q zX5yY;QFw~q51%QL;;f2oQayaSg={q9#~09@r<#Gg^W)KYMDA-ZbU}E2Vb&?o!|5<0 zxyTA$MbR#u-^?V!$`49v$|=Z6+E(PeB2S1_jm|+csJ9)@l>1E+ZhHjNWT1frL=Qe9 zonB6mJzAJq%t$j6oVeHi*m*X(^BwGqXq%b-Z0e20SPpfSujf5o?)|wakxmxD0(b7I z#78XbFF+9}K~nCWcA}%SRBs$0-WuT`3z;Bu8)g3nTVc-5&%n6A1C^%jk%0(dAG0kC z*Efwu#84pL6@~;n^BhA}__A$qpd2#!s$>jd4-hoYI@;F?PlWX^2%tuo{N2o8Q-?Hn z1Q(>HclB#53Li!uq9!c9#Di9q5*n9ZO*#aZ086SWhAQ6m=T*G4*3p1^DkX4v+S*)+ z5x@gPs}nVb;6-P^KK@kkkee`D^gxymG;BHA?(!)Jsp*hc!Q!gY$y=@S>i(4C(3)S1)UTkn#33U$4XBYRVyEz zNl-LT4f98(S;Z|%tRP&FP#HAIlkb2jJhP|xLcCmO+e;1>vufTzyI3k)H~W?=#Ee+2 z0un1r8p5<(;pr#yBQnezi2A+qjz%i|0qt6&a!`>4f#PSa5V+Jc>4l8EtMJ}s?Nji` zmF*&ovl_X&yusaN(N+jxZafQjDvEfhy()#Tr!OfO1p7pe&0Pkna29k~Ydi}rH7M@) zXrqmfdNtx>>tIf3Owq&%ai#ZL_+*Sf`RE5JmBi`Gn}-r3;owibc&6T_9VN z$)i%Un1NLf24z|BLvsL$>CpiYx%Y~Q0NV3^q#?q5zCSidwrio-1=8DQaO!6Id9LvW zH3^2N-nE+D=tDuRu{EUk*!Ht+5%im`LbWYy*R9(>P#_ewY`yDi!iM{Hvph}7OaxGO z*lN(P1DxmBCylqaq-krpG5Cmk@1i1SDb0HqIx*XK5<_#D3FMo34C;Uh9L7JoRQerBy2dnapQn*?(Hk@c>64FS|D~vN0+Qk z34+PWe)G$7-@h7o#U{IG+gQ}Eu;2gge)N>TxKA=*H#moP?f~8VK&%+uI{+Vxs=#}} zPUl~93ng~;{`S4A!TMA8Wg8uaY=0WTIvGIkH=D1&VE+AWCp|uB z$v$;P69)AQp5Y5Qi$BG_`ib|T?F_f|6SrToiJYKMD^jKD??3Y-X!B(CjM%)zE8;5l zsqgx-^ZUWY`^u|Jhf4KdsMkbjA8wcP)+;;Mte%hEu-_f-7DWKu_olaK_NVRED+d5y zV9mbGT72p=UgZ_$lp}BGaX)Src0x+SvBVed&Wn!fWA=KpBOj0%crmm5@{<|+g)?)* zeaC_A_irrF+5YeX!&J7Pr;zl41b^Z<)Leo4Gk-Zi` z-<1y8VhkSE_~cXFBszSRbp2E3xFxds=tH`7L+G~;|N7|pq(1uFo1c~wFWQu=pD;yF z1FARgo_H7zHyyD8`)LuTaU%QGef$tn?ytrywx99pHNb=+K%YIlWRukKC<+7myyf8i zh70B$UyhI25~!qupR~95khT1J`zh>yPlK-7p@xOp(Cl%rKl6j)PL$T}Da5SSy&bqq zGv}MYk6EfazqeT>@k_H3A?|MV2RKP16Zefk?^jsH|379sz#o|~`EAOb z+mpRpOMG}CpR6x`^S(8X2`B=zUpLjyF5_N7{2rJ7cSUFTJxjm&O#FuTfy~f|^#>ot zZo8#;^vY?-a0&F1F4W~FJA$PNnd+O)-&ajG*Z3#5=Wm;d{vEElswI590%&+NeiN%I znuGADZE2&rp6%N2(It4Yc2D)~)7j8pR=J!J`8`O@U0kp6MR!thu%4@TRcORG#Rm*MB|xO#BGj0f>ebsbG-fxKe zyR!rPtxRcqC+QuWl!M9Jgu87y=na9rAd4+hO$&>%05CU*QAX6}WW@ie_i9 z;+I%kqH;n*)~~egHF&efACIz;0|$|p3xyMbSoFwfyCQs|fSe|+6w5Pov&n)H5U zLIMO&|9Ee+n-Vt8cKlWtoJzt*l(|#za6}W?7<)zi{`;d)mgck^=IBaQmuxmfDo0PI zMpJMF9nSwnZyXL^&du2lB!C5ckj#KOXvyi|!clmov1>G9X(K=yAwYlOTze#E-a;!~ z8$mTqTadrR&x`L$n3>7L_(|vIAJVyZn7_zCLv><}87ZNO`D1xE|hrsxi zRaNGntEeO(e)K6Y(`6hmHQ8ai!a`JvXNj0g7J0ydaWpMN=pFg{{vP2x1>z(i1x<$< zXtDau>8S6up}_?{E(&ma<|#5vo9X8A$90D8q#ZwzWhf9haP~lAeM6X}sU$dG@H-&C zL38zRvL{7R1Ca8rh--0(tbcsl!vtV0nW%D#&R2Qe`+S7IR8x57lM99;WHQOof5DDA5C%~eKLb_I$C#iSHT#6U$A5GSnHr} zJU@hPwmE_9{~RkK*g$PS>Jf)b77AC!x(fG?&*wjGUGjAR8K|7!5!$z+7yXLi%zZ@a_894G|1tSii~ClVmQ#dH2X z^rj(`*SN@ystdg~h{qD+0m%6e?<}gdSL}T(oY{a$yQm#t``m{;D*>ts9$z$*1Y~T; zb1kv_UIL2AC!CMB!{VUPh$24cw!PbtvnXW1fWx^qq!|cWgJJa8VFRlk%8FEHDNy^Y zuu*VzK zCdLfA#nE>0fkr8yF1!inFTcMBkQ4BM@MDh%`T=H-cmO*<#J_ot4EE!G{+MwLAc>ik zRGtes7(9s7ylgQycTOFJ8;(n4fQ!f#@b)pO2P}~kknY7zm=cMeHbG8wupHhut%E3H zZFbnx1|ME!CuH$6-aVuQtTQha#H?aPMNL4SPZG6mVm=Ge7PgcQY6LhX(}Dx}-hWl~ z(|X6*gVu-=$5!xPi*s@%WlH#Aw!|XC;=y)fZV2D%@XW?vB5dKVUs;~a4Hx*vz zk{Hg6l%UL6DL9<>zQNz+jEMAcUuzxT`VT&_iYr4z$+mX~09on!NJ62&erK(}J$d5- zzyI@vj01aRtgM27R-n2EB!-|dLn^XWhb;$2=fP^&=m6)G0E2`5o#o_OFQ17^24rO& z%7Q6Sm0ch*>~=1d;eV?T_9}BUWjR?P4;j=ev-^sEd7yJ5j05Y5Rg$ygFmaK~)~l;p zM8II1ArDi|Zcm^|YuqolT(BbR0gs6t@n3DwbVQ8fP!{K%U9}0|^$G#n3g`@?!h;yo z1fwXSpQ*7(udJOZ`#m{N+GuNc_4|04prNEX4hG3S-zyfqP{Ukb!-AF?}8&pV)>U>bJRnQ{ih|`N>@(Gry9H06* z--&%|*F`;2_LV_bozED33SRp8d)+l5Yjh^ntb;bz|n zlKYGt{;a_#Q5-R-?HpLC!|po4j>=o(kU}T*8zO;wM^RtU8qG47kJIxN6sBD{89IZ5 z9fl>aDQoP2{8x6`t?`SIWLpkLQw;1QJFFc(_vYPD;e&T{ztO0A3esGaL@L3QIJMg{ zUsizqG`J?(05;)rg%8}V51N!x@jC@~$5J?z*jWppz{#wiYnQz)Uxy;CUN3iF7u{tp zBBm^w^W8b^sJ5gTjS>!I`}-=G+hMA1yEU3c!Uscof-*NlR>2t}1gG~gqOW`>Jh(sD zW{t|E%2MN-c)UFNT!wZebm}E1N2=gRL&Bpugq=-NkB|PHiX}()d~5S~BKUnYz%GyK zgSjJgXMxfhR?l188*FI?wsYD|;D+u+D*SKMI-xf~XwNJv?t<3T_3e6f0u;slQ0;4I z*AfqP2#Q@*Ro5>ZCk`~3zK!~=6!ajWSnnVm09MN6Q>@8P@T7{mIJzdR?s?c<0In^h zTS)ui2_XUMXDM3bJY(4piE(zusQ)9hDS$nY`JE7b`n8k_A+ndTcc5fV@8J}dVyFDY z3FB>&w$deSfbyh=S^xR=tzdfCLjYNC821PL!vk0k(-ebRoe^a36`%!9g>SnOkr{rh z2!C>use}A-`BCaVwnP$*rDk(Je*;=G9|l{}Z%l*0+y}!yG+0$(EdM3zXaKd1-Upj? zw&h1!s~M0lbs8K0ztqRimcG~a#h$vs;81BU2u+|8NGrC2b=e5EzLvhAxkrYE0zPGN z)h)p;sAZ#_@awARL4r^cp%OJw5n5MHKT6tHYF1Wy2YSUGKCfBu=$)zmcu7WKi9^H3 zaFHK7aPbLIAW9Xqo2`=J=DSR$Ih7T8XLcHlk5*a8VQrNwab&# zh>zf2*Y2MrIK83YHGTrngZSFH0r}m<`M*B5gx1@Z3-9Y023e7#SplWpghuZDu> zOVjT#byT{J9t@$2&b=s)~(1jlE%*Bgg!ulXK6 z!0|Kh=Q)G=vt4*t^?CYij}b;cA*kbyJn1))YgFV%czAEQGsN3SyWP|+JKZ0l4ufYXawQ7{3;v!pM{^t>tra(S3?Hms-*$!{>6*s|BP4l$z)68; zN@mYE7m#7F_fNq6xw=mdw|lFIv}$s>I%q|Lo9lAMdJx|F4L@TU{RRFGL7R%rwm;x| zd))3@`AHC;|7ADMcOWp~1v7O{-6#cp`7%EYuaW{~2ABwi4_i`W?@ag}{Q~GPqF9Ga zvKqW&Qh0H4`60|rJK<75n=L<(e*c1iSyKm%0e_L)c=i(9+&rV=W=I7pTlz!G3Z+RL!uu!~6s1rV zXmOz_e$N_iQl9m6t|ZLceFfr=nduP>qJcpHNqc?{KHcav8k3)mPQ?<92Xgq$4*{yl z?k5hEB5v3r)!T*f{);^um8$Xs*Uhl5{S53f;(k!}`?ES8iI5B4_3ehw&O{EoWYexU z-eiDPFpCaa1@34e!K5+W@j3_znB_{pM9>^;>~9e?klASm17C?UmG960!hr;4?+5^n zI@540tQQ0dg>jA@j7d;BcG&5A@YlfGIpE1~K@XE#AXY5$Ljr!{r=D!ZWEV#$fWm%#-FD2LU{;R`0fV~(HFf)Al@ESn@-`LZ*p`nt4fhO~c z3%p-5ZTOA2?Dgw543|qTdD|8GzUYzKVCSx2Ghh{1A|eO`F~Zk%=p|Sl+j+TPFrU@X zYbUl)`}YuK4}=UoiWwo*q35xEBhy*NvCWH!M@eN|cUl{1C;-PN*%W`- z@{CEauV7W-M8c`Rbc)EZo{1GM19xgq017HV23vp*O(e{$i1Iqp-M6GBF{u;ryOCxV zStLNd_wF!G)g5P7oqYPU0{IWIMSp@Jj6me=F+N7Z++DBrGK4gYI*|e~##I_$E46|^ znG&==R}n6RE~mf=j!q?zd&sdw;08DXE)|g`cuRU`90*x>Kz8&YzE^ZAi$#IbHNn9x z*UuRpcs*L!4;s%fVISiVFo-M@r%SwZI>3orfyF$U=s|bBq@XPith$#UN#o!mpKEKs z?YgHRQADkXPWj7Zpx441kJxYOcjDr8A7EEve`mQ)#wtQj)0+XCJ8=QoKMj>3Hj8($ zJ{>ER`@O4wtc>!Rf;FQ!uDtnixR~#FUj}9*=+rP^zb#j=LOGbR$7tPan4CqVE)*Bc z!3HH7(c=b%5M|jzl!j=IZ&6l*h`?QGRWX@{9vI(Zqw%`c1$j9fThW`Q3fzuO#-Lv- z19lk9NZzSZ6hl6_eUHXLJhB4=;e>_Ax2{Xui~kPFMgQcHoLyVY<)-m6E=XXq5+L_J zkTJ^c=%CeN*4R6U*JmBy_xv#DmugfmD(%CZWurfA)yChMK+a++K_~lUib-GtaX4q- zGQ?fW33%7SZ0ph?;C}70SpuwxQ)}3>ULxMwfuYFmVRL42_z%Mp=N3&V9!s#k#dKcN z;|Y3RfK|cfhvbk`HQ^4}1d;(izSsmAI1hMdc$5C(`aY{Ddaz^0W2qnorT)a(gc92- z9aa2s*{@R{5LE_PB+Pg;#U6fVEZ17=_|}hjA!Pe@Y5l-@doZj*2*%246Ef5pbKu43 zl*LDZQB}OL-B)T0$r(%r#D*I`8zCt|mw-WX=#eYTp{{xT>w!q4tU5@R=VUB-30;N9 zrbti!4=gsoteLm9C>f*6heh#RB0xrHdttQC3`5c;s}E7RhON2RBfZ}Y6atxs{l9Bhk>cIk5)2r1`hF1SW^_@X0tqNyXWopqLA4rrKO=*huUC^A% zM-lo*a9BF~&K>+%TLO`OdhyR_4sooyG}wv|EfLkZDe%~3{i!&3i2~kM1*)uk%39aS zA+(^)#ou>#9^J;EMxd{VZa#o^N_ipi{$&wXdb3E}7+6mRTkGjDU=M+c-C39ap3k@J zIs@uq94MQ?&3A6Hj@5aj!r?`SP9`}h@X0`bWEBL8v;07ZErDad-M73cGT9@l*4W|y zicDvzQ`?`yx1EK4+w`8!Q|pO-P&!Z1E;MHHL!Ddxo;cWWA~*D9Jb)F8zl@p0GJg^Sv7?}`ci)|Vpba+upqoidgVO$#VWSi z!p1Yy%&lWdZ0(Z#XzuW<{b5H6+Z&^wjMp>uzjdHXuY!qwJys1$9MOsvDn-Cgrjvga z9R|Pj<2qRD{~o{krET!HDYw>~aI!?089ntFlNxO4=6cetLw#q^>J;wb2tvCW*9Jf4 z33OligFPrNHVMGT{|pq5{17n#)i5DGciPJA*OC+l?fbKN4>1IX)B^PY>lmL##+xB8 zG)~I{BBsZ-qXgm8Xh#IV5p$!1vDsjl%a*cBcF|pr8d>5uKD@aHmN#p6+We?z%OOUmL zqi_}xi8wx?&s}W*ncvwRw44=AgB=x)O>03PocT|n4WB9-Iau`B=b`~Qc>XyJMrZ0D zgr}meS`+fF*A5bqcGMeyYdA|SdC{BNzr_hw;Y^>r2MK<8xK7vmR14U40m8*d< zQ^uEl`0_z4$C!Dl8p3z*Tvm~b(z@3>ACL~c%ZprE5Am_Ce2`5$zmoEQJaC*J?BA1{ z>av;iS#bN(CcPgzORjqYf#TR=qsQ#`C-95qz4D=s>iUta*P-2NS%UQV0tegM z_YGh#GO$6+hO=`5FT^J-RSk7Ro`_D_d6igipM2hka>I|p8D9~q;E>e}8T(`nL$73V zFxW>k?9H##@q(5-rF`D!?F%@W2!8-_`62!0V{WOm_|`N13hVW<5gD)2s&{R{{CgQvtZUC&Q4q}#{B zA9wE_{l&x9uV#BbUWXoq?T1_WtdjAh1@IyA=Lfe3dsfcgGyB0!-Ji2Zeg^R2NyAUR zE!f57OC>CuKQ$x9ovTGs&A?M+#YV#$- zC!0>Q3m>$hid{XJf9@|_y>5+L0YM-wV3_VDuYphZiHk5M?FQ!6J};3qw$OLHds;gj z=;YKwAEk7}>7f@BC=Dfy8Xl%_XrI5|-F%=bUDesFKv_r0Yzd#Bk4$Z@016WQEF->_>1fBmCzIC^;Qm zd4WBxZf%6wUdboA4}&t#%BI+tzANwraJIS*>P#5>iS}g!)Ix#|49F^7xs`P;Mj*?( z^Bzsg1}dx#!iR=fD5k;_Q--l2Fze^U!6{n3qYGz-+KLUutkq**6N_hWoQ# zcDcBGyU}$Q&Udos+=K%cXMl!Oi}R8W`t}W@>3XqEf{<7SMdkjC1D%f&h)@t(ht#V-KRnQZv@3!^^N)et@a;kNHXDa-i`JGGPQ7As)>1xkI5=qQw>fjL;nmHJvI^fjaOX&a?h1XH!7V| zl-@R9fW?Hq*Y#t!B|)qrQ!cQKY4d4<=t$wvj(4F~JmoZLzhN zMhL?Og=mvtDvW{FHt=wro(EIhb~R(Lv@hq7Zj}GS-f8r0tHysJg8k`-+9M*%xi()g zjxr2DJ(p(ZRMj}w+Mr4d%u|Z48=!HTWl(X5y{Bo}hge~%T%E`Mg9z~n72#M#e24(S z#+o+sgEHxBnJ{2j2c2i7YACcBB3q&gk!+>t#RAvOGqx=MGN{{UgvRXP&}x{6BX3D- z@{Pmlu_;Tm4O)gJ#UqF7EiB_&)$MXc?}E}?v70)?QB}4ss{>q3n7YnGakdu#tBI=4 zoB48gI_eUC*F-y!ESP?$77@;kCjzLOTvG8Bc4%;A>RqaOGG*r2Wzjobl3EmPl7 z4Tu(s)O6;_3tWdBba@YZ$cVLyTk3PmI)I=!fH!;Ov0mp{iFe{kGErBHL|!Sa#NjWA zYDeJ9>RS4>jy(sWtYO(%Erm9dfu^p2?VNhnU!Oj}uXPn6aDXcu zD(pJqV+IzF{%+K0tC}fcQ@ta5O#1aiSruB@=kG!W9nf8(A@QTSKDcTH=&*_lu0{XM$1O4a;)7$RSXcX?EagtS&Nx0rRH%BicMF7V03*{A=q(W*Vh>yX2sqLp zRg;SYHhn_l`JsTU1Z4H`1V_~~Epl@Tp%Ch@J2PnS27o5ui$0}t-Za!Dp86)Cl5_s| z7l4qt@t<=Dr#F^h&X+$x;a=a))}h*IHjur#2kMg&gBh|}T{#LegAWk|;$1EyRykOS zf^JwV081WTInMCL;zUF^?2x4R=*KqIVr#w}5~Lo@YaFN}54-ArBm%j3e<@0ea04goD@?K8C(4Cr zP(F?o2Oc-EV!_42WEz-M0a+Mw)i+kOZbV_RIPt4;P1n3h3DfWju69*P& zDz`{Dqk$eAP8Ruu!nqs&(~ z4!IJK2R_s_Y^xd9wG}8GT4xo>tiz;WX6k;`|Y{p(#Qp$WTIuBA4`HN zKjAL8eWd3FbF5#~d+LPX;YoU=z|o#1>~NCNCk=k-fEKMV_#nabDUU@w8v4XGW#Y}S z?vGebR{`z%U?JKTkk0S?70>5k)wBPTF4kl+HbqTf|~xG7t>yRPhtMY>I0w zOFwrHIYnaPKn|t+^%KLH0jlZBkSfy>_lh3IE)ENXZ*h#ff&S zRoMlJ^05PIT{3Ii+8dgd1r*g%>A)AD?B&a#Jtv#+%fCJK0rQCG!r2Q*4?lZ0bzXP9 z&8WXWEZ@;Q1fMXqryg|{FkdL_oY-ANzDkstf8~IB{O_!DDU&$sy3=UxM}#1QO{%Sm zApy=m(7$^R_Bl{WwFk5?o^fDWSd>y{-ghwvu+``-b;G*iArRQtiSnVzIk<6ZW)IK9 z4;;VrA4AO9Z<0gvP;$hvgg$h1lYl=#PL*&%4#^ zRp-0hyXQTH%m_uT9*w)6Q-b#NtE9NZ8MS&I+umyBnb{J2Hl@o$ZxRnO`l=nxhw2$p zZwZ*s`)`iZC?~pLkJ*jNRZokF|=>C|Sx z&Rtcj6E({FVS@tr0GHN54edfJ_a(gQNh z6D`C*160qep)rWM?n=NBk@CUlB+3BIhCVmg3cUUfRa{=ERdwbaWx(l&dwp9Pp7}gg z0P5_x!Onia|9Q?{OQBHc@4xRN9Wn_;0>bH9M^u9B1HwMDZU4a=XWIujx4Zv_YNkaQ zLV{Sm+)nEcF~h9d=l=qZG(-rIDk=vloU%ae2z^v$L~5gBVZe^1F4Gd5s*Ocij1m#( zqv_GkK+ET-R)r9C~dDiJ}p)wl?QS71A%FJ0~4;k-3? zQtm@HScPVHGP#6wz)<0k7Vn3q?E(b?C+hLW?KJo*96+OxeXxM!K+A!|r)MtVtTuyF z)t%a*_V5Sg(hZ_T7pTXe;-k_uI+WUCQHz10t~YU~b9PPakVzF$)#|=~+uPS8!N~h0 zoGQ%-*&!#eXlJYzR=o9wR=)f%^miuDp!7Xm3K3)5)|IMCJ8W`InuT7}|$; z^l3d6=?l7nb(SD7u}$;XAVxv61jw_nWoO?E)IV?W2t+HZ_IZx2Vk+!EKJcHgbwr8; zgc#}P zlG_SGCDzOW2r6>J&X)Ef(htWej^#5bH`TiQ_B6E&6R|L`M%`I)n;}G~u!PUwfVMLz z_Bd`CKiA&AM+59%^Xk?;bf)4=nPV1 z{TT0j;-k*C@@4OiJ?nKi78JD%o9&~% zzp7d&@!{9Kmdx3jI|FN~7XsTimiE_*?LHZhk+A|MVi${(O?wbx55Zcwg^j3@R?-3l zeE1{K+s9Jw#dg=Mf5FvlOW{;RE(ixUoI9sJO$PET(!Y2Z`ys$nwMi1>N-T!3^7+&O zD$|fwsusDdzFMa~QUXK|pVFTx7IJ8WEy<5@cs z*kv)7%GB=hE_L<}UC>r%{7Y=b9X=$=42A~Qsuyr=$GfGkhZc6;e%IyLCz=3}EeS-UFpmU({R6)hQ zDv^OzK9?Oo@U+|9tgdoE6^@whl|5nnK5?L-N@z<%0VPrriWUZ!v_h}5c1%G}9O%>+ zz9f)8%fRA>K?ATax0y^Y3h&Y3um>1AmJakAzmy@Xc0wk;*eXSLp9`byT#Wb_lu|2Wp2xIa@aCjJgG_3~H*$ zdx-sSelN~y*}Di^NlHEV8wdIgzsj6?OYh*(Fe?1MCl-8Z+GA9KLM)y8A!nlrt_&X< zawQb@!-1emy!3}j4fppur>8Ps4QY&HjYY1u1p0Qo*#=om=|Rl~V}lX`VLz1V+C=IA zwt+5X!XsCpw0;mSSY*{Zb-tWy!rmDVXN4a*&_%1@V+Yz+#WxOg>02FX&D{CvhC88C zLdVGjY;4gN4$~KM!2}#B@?fbn&c8i;v}G^zSrR$ySvkugM=ly!bb=SI`4mS_D!IMS z63UTEuHIDg9?FAp(rk&vDzk>R3KygU7vJTyW39z=2#V*xm+6865_-q?&nbLYOO`yJKa*jOmAO4K{D7$+994k-I#M9Si{jUNF|_NmW34!v2uPd!3Sn~g)B zcZ#6J;&>yPMsqq2JGgtDP2{!&=ZsYjJX1E_V~6KZiuRpE*4(zZ@W4F~{kE?(`vKRk z5i+XufjmsV2oVZop+x{HCY9OHJQzye2^AWqXX5~v-Fg+i)LOvH4X)FkpTH)5V{3o! z@9A%yG5)X?+|14r3b>h0)q{)NBN zI9r~Ipcb#>t6#r#4iSQJu=qIL<4Xs90bsDDMW(b0KMFj~?T~_3N|}Tgbp*d*^s36@ z{qx`f6k>$=g1a~>+I~dqyn0&HqEM6Bu0(dFjGV7a-Z6MJgJu_4Da#CRf;&Wwn_yKu zRxw!7065|UD(~tk(DfKSm_|iZz(s~f6`HWhDW;4gT4jxj3P#3U?imNK>}W)Wv4#r$ zJwaa#)-Z{{nGrocr&P-q%e$?U-p zmTb=|J7|Dsg^FgcQB{l{0BV2KiiPJDk3EaLCnHLrlQ#;-zTEJrNaLF15e^I2s<0tT zXZ_A5C1s*`LtVldJ=2x>orb8hSr_`O88kFda-a)H!+nsF-y>ok$LlLU*QOXumMAj$ z;EbA^KI1dNe;_-4T3J5`PZO0j$)V5K;5Uv$rnBXE` zpge}=oY5$|Fyw_s!HM3lZ)8Js$N%vR0ZRQ82WsKo#n%gZqR~CVz^a@49Hw|~I78Xs z;UVsP-|1Oi-t;)*$;qt9InK=Uu@quz#D~u)cBp+rkqhB^f@=?beXue1!26t+n13nT zyNkKdI*_)Fr2rkZ>Ap60Mq!___XI_YX@iap;sA32Q?LNkTf#8p%k_Zt1x%qNt&ZZ( zfzIoj2govN(p8xd!}C|W2bLtq?sU|12b;B9|A7PT+C$UVTW$yXWFhZB3adlh5qHYn zKZV_xTNuD4he)xrb81<`bRLqP=Ei|WZ+?pz7RrESgD6!Fp4PsMeWtHn^L=tUmo1Ix z%onBc(m>@9m~SrY4uc0=4q@P#UUw-xVVElzD`eyXl<;kVld+q}NI)jJH_?_WQ8{}J zRjmb~_hr9`Sh94Jx{LfH^qWAoh#$opH`O{uf_zz@IrY*ku*PM?-czBl=^su8)t+-% z8lntl?lr^S>4#F9o1eiC`+Vl z1`EJ(Rl&cW2bB5vrUf`vRRztly0C_1*U<@T4kFy&L)+!y6FQ)nWCs8 zc*x8aWREk{nz=;A9cU_?V`oDuBCrV96P=&s5g8-)F@({ynC-~{Ei?Za61LKX?U<>> z+;wOw_DnJVJdtx5TZYvRAt#-SdN3IQ;Rk`X{o7vTWED2SnzHFkNIL#q6tWF~)E2@x zD}hF9xPfoh_hV@uaVXkUX1$&Lvm&V=Dqj!*4l8F_Du|6UDl^d)vKLZ|u=f>({yp_K zS@v(QGRVon9Fd8T?m`FB5dWzUz7EGk6E{7uuhTX*(r39$KWOqjqFocl;qhdAxP|^G zW~Lslq6D-ABNW5|ckDuz2;;pJhj5x#Ac~02U1Y^M|4U&mLc4?!y06Oc$|+jQ{s#q! z&$|!Sevib}G`#PEmC+A37Udvn7_6v}o!cJUAz(r8kC4vD{r2iqIifv!=cMLsXWGdt z@=pfuMrud;`y=n1Q=V(}{JUXbs_e74KW1Y`X}30-|4;;7NOvSuLY30#=@iTCoL&;V!{tD$!q0Y2P5y zidiS{I}xqm$&RJdxe)jAsDiORqjx%QmQ`-iC&(i*XlfCF4-jx5q8(cGw7F*@NNQS@ z7zUl)>4IfQJdEmMAoxN>#Cz-i(!oV@R#!UTxopCaG-1nCjZG!Poo>;WX9Ku+Fo0%l_sexm9F1xtO!k5GqiWB8yDdGD8GRSxL0* z2uzXW-Z4bvc(o-w_-|#(VA~912f)9sVJ0B%smA%GQG7A0*=HM6rNroZ2*77#Lw%k`o83=(o6iOAgPpP<7g zk1wgGw8Q$WK%@)B+9ooOEGh^T6^RYTHTCPYrZsN^Mu&WMFJ12#xcnOw9 z2dW@n)uN)R07BW(95mNd?ZRy(`vBefB)ok>T2E;;kak_N6y=rN!SY_HMl9kVb;SMz+R+8li$!KdnoY)J&aFOt;E+jnyXk?zzPTC6?3I}_$dEld2Rc?J z@i3}HtL{*=`k)SsSC0;qs!1y+^~gFQ_h6f)L&mjXbq;opV%=4^MpQu#QYCCpgthni zoCBRue7H6{@W6X`ptI0Xk3DptT|$t}T4+R<)#{=L!y<2Y`Rf`eb0g(%)Z$o*x(wZs zO6c}b+sx*vd_gQRS07fD&KTc4EPe>hXBL>I=(F{TS)*JwaXo(K?+%j{b%yxx@9%Da zYE?k)!A`>l4(KuW5n9{~o;^x5Ibz%mne|)zP{P}ffHTLk)4L(7n4G^hlPeD5?f7TZlJ2KJl$z5a_3K8pE}?gz*l+BXq2o7q@doCt?X` zlnH$`nqjaup|o2R7SF`(Z83D%&2YbAW|(Yd6J}75fr{MrfYaK|gN7h0w-X$(Z|1nM z$?q#+8j#7%WO;-pSzsM@c7=5d3>463Ec4304;9?do&?$NjF1RjVn|H4o;ZAL226D{ zC{Ly(m@E5=_WQr=z|V3AILE^jOg1HtUFvzt+=^u-_l3LWf7Pxa zVDi8RRgWV?`#YdaS?gDh_R>9-gaTg3=S&KdY>s{q2Sj;7#MU6n7VA2+z$AnBAct8ZZ>uV z&`V>&VwVR|@OqGeTaluZ=Ti*_mzdw!tWQ_rD6=Ma2~xt$p-z*z>m$hq6xFvr{irg1 z=#J=~v6XG6bXV=^bu2c|v_sd@qqVEe$|ALtU;|WIWO8jbfDPycCee93hf~( zcN%^XkJL}6Ej!$A`UvKBptpLrsd5QbhoTyb&6!_I*&2o1Ra9V0WXE00AB2j_^sRnY zqs1vLGtk(k)f-0*4YzS%A|`K4lvgc6mwu2q)r!by z)2f4Fuf!B_ivzn-kxY8kd1x2XvqncB9-ZpyTt3h>h_ts49caqdGQIWj-%+%bP$2`P zOdK|6azpkKoH2$Bo!(Qn4)oeO(8^I|a=N&2nXC8()md6qTguOW^x+vc2C9Q`>LTeBPkJ1j4XC+I0|$C!myb78vLbc)giWXFfs2oG zNXHp{>k&|9Yg%d`(SucP33}QQ_u~VpqR?jgus+Bj;c+rh_JF(N@vO&Pu0zAzCQq-* z=9oVc^CXQUU1NpWa#xk*MdN7L5g?#Q!6&W_hn#FvnF zvxmXl<^PUVPVg(lAw10lhBYg3z_W(|8MGcTCTR>cOC5>xPDc;${CT?X>p_r+jtH^U z4_z{$3@On#%*&Le@#q+o4tlJFuu*Z?orRW3vI$B%M|zV{JJd5*0d$cl$=mmdBb{}k z_Jh9v>eXZ^eSnHSzId*wFo7`C0%PI?wB2Ef72q^S^gg<-P=EQr9cr$mFevA~Gb5HoEXw%qxGf`Ywy; zLFMel6A-aK-8-v(O^a#FkSVZPKlVnaFelB~OtR z5tu)gJmO`}hg&y1{uud4g&W`7&D#ReSoJazSCC;iL!lG+uG;+t;^ zFGE3(rHDiXT1C0^$x6 zbS_sW8sp~kZJR&ATo zV2R8i{x^ISr6boEaRjnm^DYcZ70{)Rd;sWs*`k6#Fr|Qu8sl1}wKm_iFIO(X*w;mc zD1O{9T~(zcTMkOuFzV{47Itquk$clMqzRui~$;zZG;7Uz3 z@<5;BDoejj3H<2OhHkjiIeo__^Qd63xJd=tk2;Rk9c&aWRBaBw+e+rX%ye~pBybTH@KEj08@V(yY+$S)k<%1R9b{Sj1GtRu zEV}X**25M~b7x+ns??(l*yEt9W?*xb(-5`N1(fdxr(^A4aUhj3#l@_XD-eVNMFb_5 z#}@5~B4Kg}r$=%vRQX^uEgP!c!M;DDO)~H0JXmb%S-BnIumv9zU_(?QEy~uR608O3 z4aHi=*%OD%&%ADIt``JbV9pJQR=kwyw+WK$c?fV#>7Qg*G6M=IQ$aE0?h-(2B?s{f zcu+>Gbc=&U)%@{z-s-wM%D^W1{|HCA8Wzx5nXc*pXqD0SP@^e%Y@x#9{$u;D`(drl z`}Ge}kTzWg;7KEXRTgSq^6ANI>v1Scpj`><**cbcvf0Oys0MYrMeZ%u%u-KEfYBIp z#R^`8=EJrESCuUBOf!S+466&%O5=Gw{3&E3dD4~R@e_tbr02H@8a1E20AO; zL=;an^$s#qo{y%77!UTQCd&Ej*-*4!up3xLcS4I$13Q?{2<3p!?0;`2TW3N0Ciqy} z;74;$z5PeCLap83tY6ft?Hz)0pno7wHY1gIKAyh)m1kKGulr7sHwqT3ZkPPgbN-Fx zAq?WB`q^=QaQc24OyFmaxVZ_>vl-T5=C5o6p8gVl;c$Fv zKJc6GXiyf%XMb5DfbtL21Kj-Yzm((LFU+T>=gE2gXbV)wz;C%ce__Y@@q6jrQMMAF z-ZT8l>ODtid7?+2>{M=Y_&tY1t?+g|KRV!lA;-CR{zpY_JX{B}c;7>WrWN>)xBx{! zy1%-gAA>(y5#Zx*ZMU3_*9}1$^$##lke>Ua{+jy5KU0u@@rZ*Tzy2S81OC8j$e(+j z@i+Ml{6${n(~>QNDgH%oqU(_O>)*>CKJstBr}&#)p1*8T=BYi#-%4ft=tF+}qWta( zn3|FQbZdU}R-2^RA0Efy*S}MuG{67tP33($(QKAmEa79XC(M8{Co3VolF7l^ZGqS= z>*Wd@+I=pLhC2J4SPxVB2%l-v*(}jkVtSfOL2}4`a66?gF=4wsJpUzhm$}7O^kI6l z?KD5*Kukr|yYAj|2)b8BhQ~+y&ksX7GZw-)P$SlzYT_y4ecR!$_nDXLK%Jw=q@R8` z*-hbhd$Dn@%y|RzhB2aq1XeGLAn>b3PJhxjt7FwCEYAl6%ES^G2#cbT`uP1oBgK*N zLvm)#;=puq_VL4olFqPDoOUa#KHU5;+QLOZpERY9_z?;biA&*ZuM!%ucKg4NteX7E zw&K1E1|^48w5~Ia*KHOSm{qV`?FlLbE0%{sL26MZZI~@=VV6mu+Dt8 z(weAbaQMvTt;2e$bHr6FOyv+Sd7R4kSO7YjI-Hgs6kwWJ~`bR`*sn(td zMOjTdM0h_yv;}tpO`t^3tX0$AiQ@jTsd9Oc5dl+3wJ%RXk^VH14cgyY>kE-#a7D;F zEICu0KA8pn+x;hg`Z(NXMAC;u)gHdz|2w!6bV(*b@!;T|y)Dy7o)ehY6sGKV*Ny31 z5nj#GGUq8WA}ewGuD4V6{sh-gp(tpre)S#|!3$F%VBfbq6ydzUh z{Of_kj7jRDeX8mFh!UjWlCTuX4g~G7v(*B|3RL)#_vwYLLNxTz2$;xf3fUmLc}TkJ zyP58i117ZOFpB9Z!1Op4(G_TU1rwx);mR;>*ZIe-Fz-qF;_h3-M@75b5|P9+(h>Y1 z_-Or?V{P00vz|7?KhbSy@K~m15V5gPX+%(W{w^D{zVBuUCw}@Ck_Q+EL!BO7#=g!#~ z7L!A`vZE~xun9|bL=VJwpi7hNg`X}B_Z7i;~bpnoHzD=!E7IPPaWieO283qoXz zrC7le2m5+38;|`QYljWi(<84IWPPn}%D2m47ly$d>^fhE?v0<&T3Q91V}|lQ&I5cD zh#}VjJgW8So89ZI+Y|Pz4ot71&o0O-QY#|jIcTPI5gn*_nP8Tvg053axqoYG?B(Y_ zW{ty!^aEzA^{Ts{w>{FuXF(BMXeK}#KtU;Qsk0&^7>a&lw4_xiIeS~+F71#%AyrvA zW8AXO0h|3@b&bFolSAI+9b!dGUY{8IDD6OPCkmJ=)H(`4dNhh{&@ z5MsN3{a&`~{Xmsu_BA{riN)?S)!z}fQ;Vle!y6(l<+O$0vq4eIG4lZCQ&OErn;zAR z%63;wy^%l%5B5^3G6jPOiPYoYDF$EYvz3&j1@I~3Tsds69hdGKafRWK%saD6 z3>kK-Kvju@0$kj=aF%MC1rduZX~njVsszZT89;QlKkc8(3T=oYOom!Vkomcnz?_Uk z6|yQym<;;5ameMJ%WIkJGE8R%!&wm-#ygrtK0~H#WXq2={jV=CGZG5Kb^#qL`ZW>f z&pBx(1;DNZo%|Jq4Ejp=p^QW`;WFgAYl8{83~ny*GgQc!iI0#g6jkv~Wq<`Yk5Js_ zosX2nnW!RaTTfbnV&0bN0+!i6dXf#q7PA~y3;hxka1jVP8ff9zitmkk9pOopt)S#d z^5i!*Tb?-$=-&f@uxiEDft6MyGI=X3I+7wL zn9A6*fiRkPpGk(Q6^mp`Hjw`LQri7auEDfxF+07kLb$3H7Qx3L_Ib%{c!Fa$nSG`T zBarQfZoJEPMYSC<@KD^Ykf`vkOum!vOvr2-qN2iuNKCOp<%WtaneFaLkX#Fl3c|5_7O0QftoTzsQdAV; zI&bb;RYl6lQfzESd-`ui#Zs3RRw|HeRcj%&DqNG8NNV=?=qLtr&}0>9iM)W~`Rdek z))RPePjt0YTE_>p*}JY_M>_OOsRwv1Mb}j9B>I{To@RQ1$D9z@p`@+V-hX|~TE++$ z@nb#DHlyXfKn|*){$3PDv^Tj_#Sa@F>~x^{&L44gDvqlMx^E2KPaJ4@s8`6!DU9h) z9O%N3JtEx*xO8}E^#2qGnyY5ZOVRuv;Xp4DX;)`uXH2c5*8!nd`~1*>UX26YX<}^3 zty>4WP^!P+K--FvEoEm18ZEo!#||`=^7$(`(A;T;4KYP^KAtZ)%X=<;+x*D#(t(ES|(`n6CFv~~Jr)~z^PcApfPm!3gF z9@;G(=x27;?X4Jci6=F-K;nVke(XS7)=lL=e?s&DEa4jb1_zquCp~qb`KLS3*yybt zkYB!h*!C0Q>BrZ)++>h|2M+W)aJNiAE( ze;vqu6Mzl@ETuE!mq*U{!(Sj@^gK*OoG#mbm2r_BY&XN)Qcc5F7))wA^T%W9{!zPr z%RKjeCd3e;YbIqnaF+H}4u-mWe)dzoQo9In=mTYf3CI77NVlW6^W(fwg-r z@BUgQbOx7cTsJFU9O697NUqoXEMXrZpBwvi-H;-$@*3M%AhKt^%UiaW>o5lX3ZfF6 z#=A%G$ma_8p2UhM67OUhbre{)3ZZoNh1BWXuI%@Ke)xQUT#pebG*gH53^{d!F?ni0A>1U6mpOzV> z!HPq!KA=wbD;TC%a)^9+)9OzOy$?4;?b`)>5&>SXFQZ#l7$`h)+X@oZ{UItW$9viG z5Xg6l+E6%O_xCVAH&y}57wECW*u@1L>jrSGuDh-{Lz}{K!+-8fUS)Zj^+d9-0D}XK zzzUD+9WJyQcb1qOqwl$gc>m%+q@XZ&y{G~a!DP*VzQP3iorG_DvcMX~uYqajTWZK{ z6&ck4F=bQAsA>{z1p=*pJi@c>&iX3PJmcS>I&13wV|{de5RyjS9~NqtkMxMn zq#x+2S_<)o<@05|v5O!CumC^Pv7J&uQ<+nLBWI}kzSX`$h*Gl_S>s(b7-d$y)Q`Y( ze_`#bp0UE$TW$Ct9d+|fxs}LH?c)k>vm3YF99L z^=?;qqEHCl%-K{1=$77r_I0QJ@QJLBg#_YCFgF!s3O=|HA-$9a&m>N)M3FJ&zKsJ- zQPwZpEvOVfb+95Y$U_GY>V4J4<}+u*WlAdtnyrFh=@iDnkyRA{mxd|3&nK#y=n5tH zwFElI4)uNmBerp%-CMFN!F3J=L)OVdve^tg+eFKC;fN1uv4 zX74~>RhR@*xnw($t8+oDkIDLTleF8Vg1;hU)SZ^GCB|IdKSFj315)C6LNILvx1->(Cn5Tr(wPzy=Vhi*4e7adlkcCtCDZa&radNAzoDu#@XJ4oI2*dtxq zb(Q7Ytj}?`7F-Pu==-{lfK#6hzc26q@ zFj8C!$GpmbB?lSX9IbK#*D8kK95N4@1SDW!+t6kuy><{ihXN7-4$C^!R*@jq-`}<4 ziZ=}tv40`P&k#ZPyB{FU5Hy*d)YmMbS<%=sgDK7X+`WpLlb*Xmn{ut@p`c*HWS?xI zSL6Az$PTWp??{@|E$NXT0|F((wXf|4O6|>~zpILQJ_e1?AZJ$_ETw8Vpkj>s^^fCf z>2X0-K)iyv%-`>jPs>pp01BQ6?LZ&72c&X58DQOgU#QPe+#5p83Jav{6<9Ok9xUIZ?P1hJ=&StUv`=j2B^lYJf{I`u0l;nT@=NG~$5I2=)pXTr;62dh)gy^0x7TD;N% zB*~gNJFx-KuO&PTC}StIg^5~7*?I`;a1ogmo72u&(SpCS0ERtnnAR%}QQl+pq+qc1BKI0f$muMo^TfY}rGUByg;SS5}%i)bWE8$`Kct zSBKFF?~pq61z)zjoc_a1Z@&!}@SY6FBd&uW9&BjgW@sthAaPg6l6pj+!gwFn7z?X7F@TG6XVz7Q!xfBx9cb%!$4jY&}?O!Hq2y41EIErn~sM)_@9H zEjl^n`r%1mKST!I-_y^BKOqMHGO&KsHz+fn;R9i^yS z9~Aby8D_-;*5sWnLu)ZYzkSo{iPa8{Rm5m`=scD0*f+I0hB3yk18APRDz zwXu`u-ymg=veUdVa|>`pDuIcGAzG(UnDS8H?Fi)dE`_3E<< z8=J%8xIM*FEDydl*xV?{2fD2Mx8q(*SxT)kt{Y5c)vtZR$Z)M~T0!jt_UnpJRD0QI z`hrx#_UmBIepPw9+imPkf$zJba6DqsV?$+IDb{NpTha%OcMMrycrfh`v0OzvLW?NC z{pagNLBS~5eE@6YrvBzJO|9y8L1Hr81%>FX&qL>T`M%Zbd|=zJo&uy4G?rI7@2}K# zdA*6%xDHjXPH|8Uq07%HfHWD(2R9`cufr%4Y|d5GA=r7%{tqDftL^bRa;WxL=RYAt zgXB=y51c(cq8aj%KX~T-uN=@B#_X;^MJ|r9RnkpsLAOXf>I8gjpsN@X^WW zZXXt;TY!~|V7pWtP1Pw)q^ZVzt2fCuvB@n;5mIA@Xn@T6^tDOq3Ar6;`a|dOdBc=F zOhW)uR$ba1S1DQssetBqU0Q?bfKw-$%<8ii#EKygnB~yn_t5e5!U|>od?@1*t zF_~KW4jt|J3RKky3f7mB;V88I>$$^DmKhGDN%7MdNk86U(v$X35 zZfy$|N*|er!H=a4IPSKy`~8o*B_Om|MSXwR2%CQ11B~?U44G~Cv;O}3Q>VO^Z-Hc1 zrGfs%l71+*+cNkc>j4FasT(f0jad6&t56I9poPeHPA$T4 znM=M^4!Cw8U&cYPa}rmCCfepyiwzH40T(0gw%K!nPX8#{^H}&n<*Se)k%cC}TLDq& zB|pEt4-$0K7)s`lTbXSR}_8eAAvif zLp{sApD0lDYHUeVr@J^4C$>dEa;&SeTfBa&?x%zg08=S=g97P#V;{meLEvE4 z3Ec_>0wv3u&W~-1S@+UOKCVmAVkJ=nC5*y`puyU|p2o7S66BT0RC#B*VHHsw_^eeFvLJ%;WfBCc$3F-15gxYaeHHIt zx8!J@Bx~tF-LAhjw#qorg#%}YgtAhi@cI#Yl)FkXpt6Da7hQ%9td}M_$U9^0zMtz! z4-MJ{j_iKw^0IKCt1s{!KA_EtDrd(x(X(`*H->7}{ZPFF?Xzi-U986O?&zK=11#+p zdG??Os#LEJo|LP_SkVrw9<`H-O$1cIMApu<|13EIRXNaG!i3H972PvzD6d^VD?`aD zws^_%>RNJeE~C|!Hl8~iYYGRNnHIV3g+vP05_!kU#J$?+H}zB^mt7Og2d<N$}Xr+PvH@nO)f`jO(k3FsJ zIy5Ph@Gn<6q^O)N!64K+QZXoyFkiNtucqoknIRX76uWkGh)cR-F1&T%Ay`gPc&NTP z0pU!sw2*QI+d*(u6=UQ7V3SFV0fs>Va7;V@t3@(G?wSEsi4u zT3lPQ9-zO|_GjT8vGxh1D-T6(hEo05|N1%( z&w+D2is&(;!?eA73s1N*3$K-uf;NJq?Y+%7ycUwsE|72CjQxU?8rJpmxQ0ube}ZSX zSsJQLc6MCvR7}At%witj0VIa9oM%^-kVKI67esF=|isl~V+{o{ zayg5(()3l%m(LD95#b~$s#e~XokU0HFL3!8u6&v6GK3v52k+S!P??{5z!%9!InOMl zlja^du>VmwgYFxhP0YaQ8o3Xq<<_5n#8ecTeN+n(dhwlJu5#WF{XSgz*{qj}GHS)A|hFaCn254?=LKgZ}(;2jg0%31>@uW>FB=;+HX8Z+dh zWI8$#8d7hVidMNaJehk(u1pArI;juyP82wuWs5)ulM_yZYzyDP@bv!{jU{#&stN{( zk$WQsLmi<=$Pi&A2y|I&fp9=!&LCC+Im8Sh1tupj4o$GaAH4!3nN|{+w!lJIX28NZ zX3Q!Wcjg+3^jQxI$aJgmG7M~VG^&2n?tj-MVn@E?oMDt_V=d2w`8`m>G^}d}`p%_^ z6%2Hg=BVl+OSFfDeA5Qns$vq;kl~^nif202l|)rmG!8+!77>kGUS)Hwv&Cdr#I1#Q z<|&41;&6J$F3WUAysNKJ9MH7&#eUo9%(1OR)!E(TXxmk`&N}iNQkBM0V^`Y%56tJ& z_5sCmzYn&UQGzb@$F|Z3VY6f5(>nUO>SZy;g=VSR=9u+oikoauB;%k+>Bc%i0SkFZ zF<6fb35S|#lwB@FR`A0Rs<@|cL#}<*Et1Ab_S>S0l~h&Nt|5{MGT$v=MauTrNFW!J z2G)0h$A^v|^7VcyI&AKut^{NQq7!h@TtctPl1&YP;=-53 zgH_@}rxKey*v#1o%@f-0N!Ra|aJ4u1zv78PQVAOeVUNoT-7p{@SkfM=s5G`lq=H4J zFYnyG+HuPGlu5y(9ut+obLjW5qQ7klaSzJgJ3@u%VAY=UXUJHUQ~Hp0`ay4QY9|6# zhq;Jqh?eRC>LK6VS}3;1+-|n|USDDC*y&m}IKx=mRxhB3x!nGJ=&W4XMJsjZ1C-Fl zzO1GKQl}es@6z6z)*;_R56U6YhAC}5)J?KQA;eF~8KFqJ=-KE_=h8)b@pNBC!7&_gums7)>ps^;booQY4? zwRQ*^1lFHD6S9TJ?qTui78fJj8-{Ik?~LXNtLn((D~Zi(<{L&Cs5l_#u-+^c1)r|2 zRPanVw|sO^+AhbRUFg@-L#lR|kH1d+{*E~B^VhGadi8hP>352RKR>vw+`Tqx9N0Pn z-haarq8Mz~Y_m5htF%5`nVpgEPBfm`ht3q-Au(iI(RNMUI z!5{t}9^0wt@itWC#rJ=G(@MvTX)ebfO6_#RLj2&si4aGzgDRLBTTM7lY+}`;$9^ux zXDeaoJcWWzc$8R=h+fc!=(>fC0i0EZ*z108A3(4+&>q0?8@p1qW>A#99F_B7E)`w& z*!Rzc8rX%fo_pL6`{V1Uesc5S4B%a2vpB1U!Tm*ZU}L)w3t9-?^6W`&0~W%8DE;-s1_WL6{>5 z*sGc72M?XTwN%=Pu5z(K+-Vuwc#-w!-=-Tb%zwY?&Z;GPREZs3QgT+1FtJ~& zGyub+uu>*JBfA{;n)8Hi&K>J7yG+Iwp@o>ef6gKYES&|{JDd4uAtDeMtY=`SXZ5AH zX}^1w0(JNtICAI#FUfuNu3!2CSOsmZcrMcd;v0_3TaWj5UFY!Zz&W_77F0O;%MJ9A zH)z4_n7(w@nkq&P^CVFBI?s_gS0uER(e@}BeGj3Od^^W#;fcR-pc$#WRgVpt;AoG# z*g3A<0Yfucx)w@ZC}D=0fIgu-W#)hyrm3OWbPec5If#$4H33eLbtH&Q-Mt#}K-Y+Z zOMxhHJE|crAd3DY?!*KUJX4!Ln5D(5`|BBAk6J*CI@} zt<|3`vj*ztjv%tr@r3@+qLCYDu%JEjch5tQ~*;u~-7w+_}Q2ux6N&K>HN&8C$ZXDH-%;r|@* zH_-R&%lm=tY=l=|$NOUx&jNA+&@2|$T1P~YSslm%N`Il872wnTg{*K%qMVKxPF!%& zup}I4^%lo+K=&tv*!4~hLlAXJz-R}B?U*trwnqjz4^#DM$Bjp3oOa|R`7<-I@;$Y_ z>+6Gm$0GaiEQnN!PL*I-U)j2#*O``7|N94l81H4fn9D$BYGTVLnTXYvbrdoaghP2933&x zU*h{poM2IIi)~#j?mboO7xLd>KPsji07Brz7Bo) zbo#n#WA#rkFnxf7>0~ncp7;Z-vWVh*9xHf>%fQ|lJQXt0vp0B3;WcW+5bYIGP)8_M zU}{pL1@w^osf3<0s;CZhL}V3F9@74N-z+_$u+~~%-;KlXYes?XX^b=2WN-l2QxzRd z6iv}YaVgRY*=bicF#e|hrOFx~w!c?6k~FU81*4>iBwTMBEG92Sh6^!4smrajnAs~w zh`cw{<1@y#7oSJC`;}~u=C`st9FC@SYBTiB5sZDxaJ=DtViUQ?evD022J#CL`|*8- zY`+&wrB31xoGuO;^sGi<+YdomdgGOzi{Mk8KQsUVPz4po~wD4a!v zEsu-mJySR^`G6n}BusP0^A$0*-T62&CNgL`9K=0Kj-2V8jf-`JlTYteA1Rph&!4Jo z@1FVlo#9}*^z0i#@rFym3xD5>h*=yeGij(KD)^PD4&+?kU0I~0H(9 z-XBS4Sx$#9-LE3365)F!8Hhpvw4Kn{u+O;7FvuVh#f(MYswhXU?O>0={6xlN%#mtQ z(hWw+ZG1?o@qK~-UGA+hK_&5gR))?v-^LFD6Zi(w*IpacIgj;T`f~p{BnB++6e;@J z2->e4h^v(d*(p?+jtw;1DuO|%6b%slPxa$BQ2Po-C!ez=N?Mlza&c=uKz-TLuY!)q z6)3;SbfRKtQa!T}73QZ*lCj+(lI9q7j=Dx#Q^76)X$4WXt$OhD{6kuQ3R97Yc5c$g zD)E8p><0&b1*4=ebWYN#7^*<8W4p3R1ko61t8HvSCW3RKR3B|P}SymdW zu|YorrdWgXv=$^Zq^Bjn?}^MNG;oK|mEwRs&v%x;EEHe``>N*_WYrP2RVcss)vAPm z)6Lw!O!1&8>MBC6qdRgrHDy_9^aE@KsySlUy!5QUeqE!?R1odS2Gu(tu*`TI(*5O|1 z?C)_@**bu2UmPmz+6O~^s_(X)0Vv+P2vGNfG}|AwL(JF%Er#bP_^%DL3pNA2V%{!% z)aGr(971UzvB3^UbG9F1Cs#yC^?=aMnAKF|5G;L<&IxLw8z?;B=6fY+(Uu+^(gE#T z+*XfZhXMn;oJT-;mv;k`RgGLj1?Lh=3I5qs_^$ie;6Y1*5kM~0WMU zND)sK#hi~Ouv3W{i5VTM)#$Ouv&$&BA777@RyqIi7^w4ZE2(>AdeqVjM)p`T5^1qfKbgXR39VC3`?=C8yFOz7XDk&XJf-uq6VR@4c{86Mst@+Dwq{5vAokU;CcNQp;@DPL zUVGG*)rL|JbkTcu;9!Zs-{_YD9X$;Sa{KVL)5!cSk8xaOugl)_+Pf&7z6@(b=mQpo6Cs+t`|}pL4j19s3^kL})4dl3jwxxbn;2m6J-8k?)@$ zW&q*(d@wlS?{7U!HiWOVF(!j(ghdpzMna)6^ z?3}&#Jr}(Pv_sft{SJX@?Rq%hy?1U@K=B?Uw7e{ZC<4PT?Jou2jgI#F4;XX=cTZqq z1zG?lcV`c?0g`_DMc4Ozy4z>F;TaTg!EYan3Qg2sDEb~KOt>4y^Y4mqw!B`9b3oof zRoENH@w(5Phc`&Rm&L@tm-fC3rwTYs+l_0{IoIvAQsK+uQ0ul0;hnha&ujL@_OdhS zXJ3!7$PK`9Tnpd-(+(~=%tp5tS6`}25cqkeIMC*~3j)snH4{J|3^Tw>;=O;=4zr(u z$_F$fw)=9F?Ki%x_vuSB>Nk%7Z_gy+cgFRT-SE*S8efU$`f6-ITsAY?FUF+*@=V~0 zTn-UuSM`D&VSVHIk6vCJ6@%}ICusbS;5WR_+hM8f-!Jfu1AV2t8XQ%K;WX5A$Jhl0 zio!BY`3E%x6@m2yckp>xLkBGl)ouEItWLx0fnp02q;YT|KL>59A{ra8=>4kFaa`pP zre3QJ<|kIpZUsj`|7{ULx)L_(Jwfd{+Y1WOLQ<95T(g1faWlU7WBO^8UB|wph6;vi zmDxxnB>PY@MebsZC=s!!l#Vn}L&E`W<~qJt{Mm(p+@|Ad{6Uoe*25$Ct_{^s4QuoL zUO-n{>b!H^&Y<7}6Uvwv!j`!nK;Jm5CIPWIzp`IF{9NrXl1o|~pQ682k~WDuEx>CP z(noG3x|(P99onhjc*FWG~we(rw2+|GhsHnD&cvu#N%bVlkXgl=JRk5Xp~ zYh7YKzk?FoLJuNqf52h7r~N~JXRAk6l`U`nnV9haB&Jv-M>eCG`1KP#-tzvayN(U5 zdGTFKuZ2XK6npIlFq_o5YO89hWogDv&9A|u*r@maTBw`I5$Ty@3Hgx&T>ug*Xq2U( ztC&ip6;VOisU$o4_dx$o9BA!K_BrRA{Yps zZWJX@s4)@1C(sI|=oKjcr<9(N{&|-QSs#kM&kCa_Y>m4gtnt}}i4mNdDcR0nR1KkBZYb~I*?Zq0h zTVJdK&7;VyZXD=l(!+vGg?4N)xVkcYoODXJz3#zH-#O4LXN4VkQjRdR108H~v=w|X zq^Pm&YbHbm+gq7fiO|*tJrO4L-m|YWg`Fs2Pc}yCix}}m%eDydF7~(OWIWMksUhBANNL@8g4ZLg`styI2riRSgX0iGN0!6_1RGX;NW}qFc0y(Oz zm%=HJdllFM@{LAfog(V9@eSn{&-}4*c0}O5t{#)y*`7fiA+pp7TIn}q`e zbai7F4ZCDU9%%GybmU4!lXb83n#Wic&|S{gQ{+)PnGE#}RBcHUs%dU*&t)7b`!X7O^Oxxosb9vUI0+ z4tx{Qd;tgX-Sk9jOIg?uetKBd3-e> zYHV!*-JMbb=GI=LWFeb-Ra;nGDTwS5gb{)`x9T(<8CFuUzh(1joFju%E!^{R(&Fw% z^~x$!3&e*BE&}CP-W$L64bsQ0)-Voi#KE;hS>hU1GpuUhYVC~&Y=%$#Iuro1{ih?T zqj`Ya2(`#^nW44>-f1+;u;jW@pCKl{JzEWOU*^`>P zk*!^HIP$LY7iKI<+P~g0>;44se7=(qU^&KjJI|*t0KwF|_9{6Rv+P-tM{;8_P6wE* z0-uOkjeMrX5vC&V68b?yi;Bf=NC00ZQS-n$*1__N#g~XP$rzwe!B98%%2plUC>)2I zXMnLe@8L67;n~8>N=tY^Y%e0UykHi9;I=>*&zmm#tOuNoqKUyuew=tCa1?AHsWxV5iZZvC23F{gm8`xQboa4H_x4h98Ud4Bw50mWTY1u+hn^XEi$=90~x!5TQ?C_@vMEd?CIha<t zCpH$E%iHz?!l@Mz8jA}1RXILxCqqLUW+EFZR$7+8Yo}>t}rST4gIhVRsk^wq4X;UT61y~Ln7!g zU}ce3@{imbMESX1XQsx6;2%05cdP(o+q6(nIISo$)XG3Rz}FxE^&ZfjEJMT|p1B z9>``82Cc68qcJ2as3=Tm*sH97&jKu2#<(7wM zL8~|NdIl!NVy%!JgrKsT2ZZKt*bdg`5v=t6Xg5fXW~M4I3Stp7c$npx3FtxDe4)TJ zUpkqQ|EkbaD5`mRU=Q%&*%Lf>J>s!LGFL-@n?2it5Zo!YFX@<813{%nws)Yrp@eh+ z0r>Nhr7-dXJuJ4EqVVtxg4xLR;&i79>q1T z{Cv43&~Z*nF7mAJ3RN^)3?AeY%X(<3@Bmv9i^7Y8-1H6^Bw-1K01G#w4e!5u))vFY z@!vp00(l@AVnDc$dJ{>WyFX+iT<8XuAtJE4T6w@UzL5erP=Gd|2sG5b7xvjYO@y~8&{kayu}gN$=s+Vg(WxOY zkt@@E`z~t<;X)wgx9pi9bmgH6u;}uOXnd_r8h|Pjn}czbtQa+uU=BpI1I;E`*be?R z!H!;(Y$I|MQ>yA1ACQtC2d{#M8-R#uPJP&GiwVT+?IqY;SD!wc?R$dx!R`BQ@kpgT^}Ae>Qm|-8-#9Cs&Oq_s@(Lwq zi^LA;F|-(Xr-O~A;oA3|@`=uB*NTakEv@xKb?;U$auwJNe$q?6>>R(<=@kpldFk@% znM1u6kF|RkQlmH>Mt|He^a7D(1^uXZu3TC>D@(0^R>J{28a!oC+?g&Eq^KXSSy+p!$NB+6M>~li6UKWdTJ+1If*wPkpTzd1MF#Hi@SS+i zL%#=t(_dy}s@{~vzF36&0V)R4w&JjPXQV0GhDlCj2!2umtKVaTWGtfs`%QRu*Hn+_ z+5s{YGy2=fqxy#QwiO@JjTf}hA8Av3q_g&F8P6(WTV2tZj|RmhKf$J)FEge!teyY9 zEx%-HK4E!M;IHHoSTlIObLBf@X&6m8#2)?x9}p`xzW`a<7BHF{@BBobBD*g=N;|)! z`9w%?wHx?kK}0(qmB$n?sae=&Y|he7`(S(N*3XiWADoZJ!57ft4gKu#AR&+IvsUfZ zK7+mcr!T-`Mx@}=+2@R1dS#9oS>4`|>S9Xz$g(GkT#$)$CC>;bi7O#8EBC)p;!xl3 z%oR%)RzX(%;Fc)t>LYi9cP46gJ>-IR*bX-?&wiFz5g{^IW}qt#7uigO)vzKP02zT% zmNqGRZ>wBi3KNSc!4{%u7{sUOnbJRY=_iV1lJdn+ak&D9BAe}iMv-L=8NG3=Zz}>NijP+Boj=Z3rfjA7UQcrf{n#$CeM_q3~k{+&?I9J znOMvcgb|`pn9TDYKC`{bUjM5;;!qC6xpBI5wN%Y^Af2G-#1>g)^ZjHI04kphOK}o< zr5yCLZKq0hY1I`_Mb1W>;TP+tbC+TF)49n(Ib{OE+b0XX$fQ>w8Nex$fxaCkvmCG3 z`x}7Jk?L9q^Dfqh;dO>#hQ(Zl6n@CpIlF?X_U`AWD8;CBcs?IKQGs|UC1k9_WeE4j z>j!$OY8a%EuNN70RN@XAM21j;=Zyy&btxh6c1SRgeaB>Gi4O_%wKzAC;*Wm_cV)s&AdO z%>!4o^ERRfu^Nojh#3l;3`+gESn!+K)>tNGGf)t`l;l%%fjF=lHrn$UsA6zq%ar4V z^ehfO(cH;euOqPI=}W7iWwn0H-j2k!E@mOz3|2*NAK3~EXBLGn?%G*_RrEj`?zPAO zmB!TM{XwxvN4`SYG7U2Ez!G5 zRzo~2GbgTtw}3=!CwBVWuvhlNfg{DR8B@M0Wnd{YjGF1|I$zZ6i&O@(2x{B4$Fmd5 zqB6Jy4A=#KW{D!~e+dVlqJ2^i35FKC66Tv_re97$yX_PEXWQ!)v>6c$Tr(&_1znV@ zIFrrhH&-K)n-Wz8NN=BdkEjP(1ZXT+$|Lep#9>cKhiJ^yF<~}v z@jX#|e{ytK2e@p(-&q@LdxjM)tE(_<#?2*kXnz*uCsMFPT3usbvM#qZwrpJK~JMk{cgOQ~uw-yC*ft=3Kph{xSu4K|< z!R8ku5H^SvOR!TVq7ltfkcMm&)@P1=GrEX!c0*I5Dks9=ctL`><^VtyPKjJDLP2eZ z0<-hlXRJK&F5@?kO_?TnLnh0fyUK9YjC!W6$=)M_c}Xy27)2vefCghiNr109s0^MN zZe36+3$4?rnEKRN284sI8ePNtaaDWHsubiiGbh1Gf$8n%3i4#WY!@krG*oMvnp*%> z@E~*zd^Ri7Y5Ql6Epk`^2blR?+le_e)rOTP_g7I(NyZM$l_~mc?FwfgVoQ5Xj*Q47 zTGaf+aBSUzM(QBy40IKQsi0_ys!Qku;s%+iNYV>iAQBB0=NKq-RqZ&dthYVOp2<-_ zGZw@ADB2F_=-WkwL(qk%3}rDH@6d)EKDWtbMnn-B{pxVuVL*)_@3Pc?c74kJh9z>U zXR(pVX3M=Q+7&xbJaTrNpUnp8%)(5vU~z`3WFy-Tn7x+?K%MSS$Q{WRx*jR@76nQX z<6SBel{OoGe*VAs7ysgaTMvO5eyeP;=RW@+Zn)6@a*zI-zn@Q{>A&N3`76q!z51iq z`ok})3l={-R6lyzI&1#(eA-{_6#R|8{vW_a{mCQhzxf*|!aw@`|K{)UG{60i!9M&k zZ}mGr^>4ZEpZH{d-gAEbO;u0D*VUV=qLs%OBlr-ntqKZ0fWH$TRAY4p9IjvdE-|+C zr%E1g)DV5~iSegA*Uy%>J#K$~c=z*X?bhVM^nXf@eMlSo!NWYd*5!S=xmfFL$43a5 z#mfSZ7rn!csLQv1=HbHc{TP0tE$*xg@xkYc*#Z8+_p=5k;}7&uKScRg75w4H>33`z z%1^>CKK3s^-S0e;Pa&)RfM>&>@marZt!l-jFn;*ZR{quWv2&ok4}3z$yd-cmQJW|a z*}|Kmnz!=`&&BBIKXdu2>ERJL%P=YYmn z_9T_~@&3*ipaBgidf--CELX~OhK?}(Yqnfv%h@M2sOoXfl|#uy=2}K#Ifsch_Vl}6 zqSTD{$Z$dvi9=dk0bEw}Fxnn>+e05I+DXYkWy?-4d;TLtv>hT9CGr<3CWY@`&V&D9 zzS&ZV^9&c+AZa3_-3e?~h-PjaXUl;78~U~+WPk`RMGEm+>v;dK*PE*M(l0AeWS`%K zyJt;#;0RsxC$S0-AAGEvW!?=Fo@X+Z-+e#4qt~{Zcf7xVbc122%Btttw8L}Y9fTxZ z3W0OY!oMxDfDtG;;7}fy9=p#0h0}bV2Zx+OkH~uKANzd%u({?Tw<-GUo}|t%JD6AY zR`|8x3bei9!d?T%X1>BT{=wL$grH+knk>^Kiu-5sOJK~)t-BpEo)7zmp(JzyUVP(W zoBfr&zxMzj6Mu1N=?X)PX^!Fg{KH^P8=G>TE$F^gq*e-ZKNby@HLf#2p`RF9fM9#6 zmmj>p@3h4>ech42(M4+JfF+aNIc53xnFLd}Z5rCgDSykZC2Q^S2w zwhR~GzM?eRiB|@iNaqKd?o&11 zhdufPMQbpih8*q>M3ctNS+R!V7sl|(Md|UVof~WWZc+VKXa#jW#`yseU>Kp+@ghJJ zII(i#ooQ|WK`{ZW&uU!jrU$sDtVO?{3J_c1jMrbHnF^JOMvBx5`eFeyR_Sa96Q}N+ zydX?OB_*CYcKIYcO8~jPM}-2@R2pLl!s`Batc}q2F2cApP_%SmWP@TNW=Kj1>CPr% zmHW`Mrsm#HY>&Ohafm20G10JgFtCbs5ZI;z6Tl~S?K;r5x*aGh26|o4futAwv1!;5 z6FqoA*Q{LqfCE_3e>)~d6yy-*e^}%g-6I@OZn}Q#ct0YntJO~`L1^wLO0BsXn+y$O zTHZxnEpmgg49hY?~)YsSKEOufPIXh~NfV>O}MI#Qx<%3G46eOgP?LkzR zy3nwoh&+|YK@<4rfju?k6&>h=2*QFi2FO`?1SPg2xrPGLRt_|Sf9?R5!Ppe^ny7zK{9U(0ZB89@^AV4s?DvqQ)wEq!vpvyNiO;94_>clJCFGy5bA zEBH_Ge6kr2RZvO+y_OR&C=_r!fA&7qCws-UgXB4ZIlT=qoTlW4~osIGm6lz<%gi;SYl zrYQUACd!ekzALv&wN&pZ(GWLTtfhd&gkbG~m{^R^p?Qce1f^=6MM35%(ixfb^w3+B z>Lfr9(kopk@-`XiF%MTe2O0_o5_J?_cX2Sa8$Pz?4f zW2hIGBJ(3JMU|{lkS=1f7puy8uJtILW*q>K)!-x{TBvzSirGl*G-VJSHLbo4~lL}%rQSQcG9yC9G=G{rW1kO?Fm`h-Ol9TOxVvM?x6 zE|G&Vx2|GHubODDNQ0UbCAvdh;7)o6RqrKbCOYH)t|F^eUdHG7|Rlkv2XxYEP|XT!Tvr-djeG;jxckpfIdWv<&O|_GbfexU)uzY zXm_;s9~Y4pbOlS{U@x0A2tkv|;8x^I#bH9>3*C1H*{6eYNLka5resmJK`xMK8n;XC z)auNI1o28{FycU;p-iK9|K-2@m;dXnQ=VmT9}hA9mPtFyQuXlp;wS82kkg}bmE6_a z7jB+qhjY5aJp7#!>>kvbHz2cs*HwwS}UR;TNsTx^lasaqgJ4Atg_xbVPzy5YD zHc$1lBf0x1QfBg=qFnq48RVz0_GA;vJH-oXk}?Ck`INZ7KUEj&=XXOweGAr8jXt5z z|IZ(CgIg`WKCK`0Tn+4hJOpNWa$`1-+|Tb4p0A%qNz$Y|TbuULuCc$pjRK;oFn+l1 zN;OjgB=&Dtu?OT#(63v~Ry`@D!Rn=-=uAGNcjxLO=iSep(SP6+J@o57b@NE-O!*&; z!%@AyR0fSvFmL=Nvu$th+m?Quay)Lw1ft#ErF`sSG2*uR;KK1Oy-ES)Qqpkg-9eZIhPX7T*6AkVTlgK7C_)*90N;kxEUBWX!D`XKUFE1Y!|h(QqY+}OeBJ=L6u zq-_yln<1ex{St?ru5DD3z68cG6}jKTbhcf}t_gkCB~pD$(xKFaUF&}_{FvH>7*T|C zwu{#=Fgz1E)-{qDSGG#ZS`7I6f9Kvnck3+>|8@WKkPzVMr72z>amv?Lm5%kTE92aS zI+I0-JkvI>W{S9&nXy$ydL}-XzzXep=K%K+(ok`K99IDIK~-;{669UiNaWLtOF~ zBvBO-4!E9cVLIP@t07UDCgqvW^z5Q-!@4V~Zfa92%8+2Ja%Y7d^WpL z)8{sr@~B)#$$w2rq@;Z^==K*=#(V;Kl^h79>$O^b?p4fVt`E+6_kdNol)6PD2j$g$ zLIF#ex1}uIK3?F>8GEF6mmYS5c0Ami2XfHkJXlo0jA#w$>`--Bg`KHvm1L6Jv^#F8 zk~eC|)4D7ByR(JzcqKv^lzIj2bIIo@2jWdisX*FkmjtzbMG^6KEvVH>vh;L}#&1U> zu#aD{Nro*&T2nn!0b|SlQMhvJTO$e+r^9QtvO{&J%y&-)RW8EAH`?zHRuMo7)}%I7 zC_Y~fl~i%oW=&MTIGYE%hEn*0Q?SwCP=vwQR&3M)NC6A9b zKD`C$0Kw-$w+n#MGx>#ec3BTN8akChY@PK78K*yoTF4hK;MVdZ415uS# z`G}~3unly(9_lK>H|d2>QAAeg5PcAoNyq#rHVU5^`n5|fJOW6;qu<@CiZd&`ex~SZ zobcZx*lDGh0ml-ENgvp<&Y8zgUQsYa;`#Oe$=B?C5#|V&KR0y0`rJCf`1Dkm77j_* zT6GE_D-DP85Zk#zS^fH`0~f}oMW1+`CDz5o_y2d@0m$ighi1V%jeFz4ssg=lt2iuX zZ&KO}tqNEUSu(^K*YLp-^w_FjtE4^tUZ+*yH*B zJ5T>=O0*}YwLyb$Z5OX~mF?~l5Osh+vvy$^gC+%ucvug!SIk-WbsZUI8u8_EZtrrv zX@ZG^A&18m_PD9$*qko?n{N7QSHV#rU1rQ(yw{Cbe$SIaqCaLjg=N7U^8do&Ux@s`p{n2wgBuRLGU%^cr^n1}h*~|Z@%aups|JB-??8M` zlm@3JJ&tqQS&Kuwuy~kOs5k{i(bpeQkZfcEi`)MF{4beHW|Orww#MuaD-fcSqMkYP z2m~DJrCaD+S)CeM_0riwC%_!Gl%cek&GB4wNeDn&qQCuvs;rb7ZF%rAws`OH_qhn| zqzR1%@1IlT1mSM(`wQ9x)#21_PCFl`r8j;f7YdwsZ|6^2VDZ!MwO5(jp6gFlNWXvg zC8{j~2jBWG4!Oj?H^_ii!#5tbffs(67Bfcw>LnvDf21?H2C7*eMBk@|FTM8C`A4Fi zQb59f!8G(qA`ghZRtNYiJoqv}C3=8S!sYAhiT!oG^BAUZlWfMU$zk2i4HF&8&iGsT{KtcQYZ*QR{RC4JP-;o$unj zDOS!K2QKwhqsg$H$tih$HaOG}^(=MXU>)}gameDB<6$Yw>ZA(C|9plD#R+{b6J4o* zp=Cz|Xt6&U65GA03II*ESJS+Z9hE>dIgGVkG>ya^TK72 zgZ;%m64~dgGUv$3Tem|&w{V<|JcP?wsrnmJy%G@{Iwn3WXun8jt87G!AYcyS5}A)X zL*SWY;4(82XPNP;xFN#SmPPm>4K>|_NSliknA~gYt)cT%jdyts4-gLT)Io|}zajzv zvyXc4w(0>4IFyz&B76`9)1-S>VEG|M0Rvb>%MeVAeqd8ntr8BT50>Pe!UqmCAzJn_ zOrv+^Y=%|zOVoaDsh>#|+?!8Hqf} zt{TVS2dI(z+DX%XAQt`}()C$?G&3fMdMBxuJ7@tE`<_TjEbk!7*3lBWj2=3#Xi&~a z>8_k5+6Ux7fYw=YOCB)MS8z@WC&1#cTTP@`OJh++vY86%ZMZCHb`-Gkzst`=gb~Pz zxg|c=!l{DPb}QshJ?kuF!r`>RHb9_qpd($RTa;C$I3)zH>_{jW5*Y|u5DN(iBcTOc zDg}|9TgO-_UDj5^VK^fYWT4A$r(~aKe2E4s4%@*F{u-adu`=I&qRy~0CrCx5QMSyP zDh;B&Mc1}4=fp^hxCa%f62aKz$CV z8)MNY?sQ&SC6ISG)la&ARpn=!E>ho(J}d14){cJ??VTu4ZjCOW%tR}|2qavY#6|8z^)Q6t+R(jrM53qL%zl5DDQCyrs^4<0+FG57m4GVqiPljP-Sx~ z=tC7aN}JsvSjvh*6U}SZ1NCV?!HLvNlz5E5*?+%8_ImnA)$uM~bB_(Z!$}waP3x6( zpG95a*@5zY1VsJ$UjF)Ts{6~eBq-SC!#6m-^^Y5{ak*TzPU`g1elaM1A6l0zmBaXz z`&sD1qU~abv#wOm&roK6g3A5Sb`=jz2uvT=6WQDS*}VztGe*@Hx;wr!YWT z=Plw4Lu+O`Rmfa*->qweWREu4vHLPJk@~7xWq*I8@_T%LMUU_1P?h$TDw}-UHx*<( ze7dYI9_fNg5B2WJm(Hso0>t`g&Xf;TxzZorsxhd~VWof|{5;b4R%1*VoTD~sm2Nzj587y7DEP* zDXWtTcQV^dasJ&lvd&zqN=KPtvS+~sNQ&xl>3V*M){~lmwnV9#lQ77ag8`((NQc}% zNiS@(FzhmsAtS|@ji4B}c{y8JK(pU^B$@(& z*=;f=J{W_*R#n+N1)vy*ulp5a2de;4_%B&kD_--=YIkA#v#!dpM>uW2YoRRUe1OKo z(!TiFOk`WJlrB{`^*I_qu90ZU1EkKH!oN|OX~AO(33wwm<;@`igqg)<&}6p2uV5bSuKhU?S+^}qht|MRLw zh<}ItYSL-s??^ZYVdSrWN`HZ*Yvk`lO?;F&{_J^wfkbm;&h0<0I4gzu2AVPT!w?K>i9^`;XnbC(n;R{lYd(F8u4R<=&r~Dd z@ynKzC4HtX`^(-dTR?fe|K3bLUgb&pa(F_~qQkkhDfFvk&dfh7%TQDl0F=Lbyc?EY zYvm>=*M~$;l#t*7nA={GT^0*$%9;MhNR=qQv5oQK)zYD0oEMMxXS^gL9g9=%TRi;l z_{r~YAV-hQYQHDr0lU+9Vjk1(c|oQ8h6E(nmbN|8=lTbu?k0M4fe-fp<(-Q3;^r3^ z`CGYCpBpTd>PfZ!y5G-!>y1MGN*7&Gc{7jh`;!nXBFueG)6y@VD^an*?l|9@qX0%Zz!mwzjeX)IbySpOnplb7dh9Z!Mhx9 zzu~0v<%@L;6^@eJb>JIvp7b~2x*oEzL(aK4D&Z5y{uR+U{QTAHTqUl>U0T2);?QH@ zp0;qU^(wuhfaFlYkW<@Jee zjrTFTk(h*o63+c{$Ryt_vM*;VUd&CN$tE3wYF->rKz~*=H5QE3+oF5TzZ4B_Ipi*J zii_!cIi=e;m3A_f8udZqJa*b|74IdQN2@$5NEg`O4v^Jh}jIZ(6-njqgVxm9i_JV z{)BksN8yP*!)Oau0+g()2q_;07*O}iRP@B10a#na8*C=}p98btXFqQy{v={iF-?V5 z<2Lxo-Ti#bZu>K)T@A8}_B~2{5RtT6bf}U?%RdWB2cYmy(ug3u1I?7FH1QOg%u@8%!@$oC zYOP^p(h#V{?BxFr8tA zyxWF)HvMOqk`0kCo*ST4c<@5+C~qWoZpj~ zNwYGB6ii=?Bqsv5hZY<9oqej?sXTH&!th^C6xr{|*t81}*($TDyr+|3vxh7U1w68e zrMCC*yBQkDQ}O93!VJ?I84d3mM#=!~NC_n*SYWV=n562%$R&qtPFAlta2?of85DFH zB4fxfK{;X%VVgxx>At&>DhuW-mz^O<1Jz_K5 zz=o~t)gHHH3OrA{TBFlJX6Flw3a=ZIXXf!hvcK^9-FyMX`<+a@{+t!4=aAO)x;u_7 z8chCyv^BVWldmP1e1L*s%2B?mj327&<*=1w0v(?Pux}Q&j=&Nk;}e1C>69F*tci{9 z7&3~8gd5R8Y8bQxz<;45}i#rf(}PSBB<8uO!RVDZ?3H1 z?cIUEW3|Bvo1nDL&UOqc}*E2kapy zw^^wo=!~bjWRzrHAK9T+;p}%rR$vU7!pFl0o{GG|I-AZ(619?q^GCH_Q^CoxlaiY)QGpRXA6cqeIuk)9reRuxb zzxlua&HuD4;@FBU1`66uBkB5VzQ`8DsL?{v(K1l^EMWeC(1Q~x(oM8W1;l7bNhq>v zv<6URJ0$yC=s`=*M;}!MyUcX5V?$1`P83=B4mv2}VB*efT_4YwfwvjhfH@sl2~#$R z*-$e-exL;xpthpl38sIH#k(pjO`lArIN$WjI((NF1PD?CQf==>#%>dH}du~GyXv)^CnBmMw8>y;A zLCBGCK%*;l{LM}wdt9F=%Ap_27V zsbo$&pBEMin4upUEObUJ5H8_=>g9xciGc?W>rC&~I8A(?W2C(8hm3OaBtlYuTAu$yX=A!~`!0H)p?#t6_mR*AtU z;RuHsZjpZQ#8?7L+Ol3!9mbqhN1|jlWevCYboA9s<|P}OMAaHff52wSv=5;lS5DatuXjF7N!goOQ6)SOL!#^aFP(Q!3UJMY$4p36QGN;XM9) z=5Yo~@p#H?MU!`dD7!&qD^?L`#tg`17&KM8!dUk>-UtcQrr`5c!OZyk$)b62V4RxR{BDl z?4qU?u)1DF*ocZK<}r!oT3ydtN8b)DlUgo7WcI`2up$zO0d$2!1UE?4#VT-IqGb%e zN*CSVv%`Tt=@l!2Tx)$n4$f&mK=+uS$hspKpL{8z@&z8!5=W;FVJcsM*L%fzuNt6( zhIa4?#XJiH6*8Bg-c$+*{y+iE02E{iRu0AhDjAo1z^u}?2mbxbvB$L{y~)3zlrA(= zF8d)V2*ZP7Q{)me_@$X8_oD+Ty!2wM&| zUan*}xOv}G^<6usLp7Ghv#R$roW)`Y*HuDGo*NWIDPGS&4%Z71fWm=5V7kE)j_er_ zqD&9D84g6Wu2oRPhy6Qy_X$0?=H@kI6Sbbx=>JXYo@?z4a#`k<2?3BhQxJ1EDD_LO zb|J@S3K^>D_iqp#-l{w6Y!uldmpByqD<*hsORIeWWH&VVvU0DKPD(Rh-~aooGT;YUTpP$)Zgtm;rBt{XKwp>Wo{w+$I#rvwO>ocL8tO3s*wCa3QnD2T4H+@hm;4838m zAUWVES5@8~F=&Z&;e}#>26uv5XBNmX@?()52)X@X@QdO6Ld_)vP#@8EuE8TjuxN%1 zQGo{8EH$FD%y91fFbGKV{>55BoCD#YxNNO(rcey_bpT)rB_`ePs4FBpXc4|bXN4E) z$rHF9*gP9R+!X|yDbjGA=5rk*7+MFstXjeAY#RWm0Gtr$AY>Ql~dvzbDQ;xH2~{?=ysu$0R?ihq@DN*>lXommg=(Qp(81g#ibP3m|D?~N$fbo-j1DqK z`L5?264hY3f{qgjCmYN#JF^rC6)qhVMAm3gOiIbJ=s+X-oXCrSwHE&Ezx{vyr&J6E zM57*REvNjC7GWEU7tY`D{;gL+LWqt$Mds@4cS2GgpvaD(N)^rilcP+)B%NDO5?yD9&=P4l3eQ21&!l_2B*G)xZIyJK*ViXB4?q;og6hSxb)z zrOM{^xr74(^rS~FdqktuAe=d!T8K`X8$5)+YhmC&m0LSwu|-yJ%Ufig)%q1j~|HVXm%)hAG4C@d}p&{_R?9xKtquvXT;so)8p7!hDZedFvcnr^pVxCdkKF z0%uvZg^XK5wb5p#fb1%Z9$=r0fV3GYe`SA-y2nmAqZEK6Oo&Wj_uSwgL`5@<0^9y# zcbJfpHBmQXsfOg0D&%;Cv(A-ptJ09OuTUz)5?!TaSKIOD%;_oBhE~`QWaOFjqyeNL z15imGN66~I3<#WWTQylO}|)cfteqH2 zubh>BE2tZPcImbVr^thXOaHY>u=3;}CC`@czA)`JiyTzie{|WHSe;;Cq`S(JD+P{K zk2Dg@kA}&rAe)k7;-@qUa2k_=P`;m;Ql`zcr&N4k;1tdl1GIIyzvwd1F$fb`sVh51 z-{YNzO8vQ{XdU;66y6bLaG+f_7c1kziZ)oFIF)5JKKF%Q4kQH(6U3T2%;Fu6tZ<-> z9)mC}r!DX;CVK}t2H{nY=~4qlF2$7B`?f_i?Ib8k&zSscHE^7J=s^_FU|b%5_{RIb zecf8)069T}KYi z7DgTo_W)u5TR6p){jzX!_xVB|&I<3m5azX#n=D#51hNrAhKv>=u1?jNA;OT4b&;bV zQCm;ge|pTxOgaLQRb6Yxv{wybQ9DPn5xl@rje`y-XiE!n1zqCNndd4C;|xrJg9>$( z5+Dk4geqYeat76%00ncCssJ|NsGf8+tD`np>|4h(p#C>>$r?rGE*gS3OoxD|kgS%t zw3StZc&HfdqPSpa6rFt*S-}#6eyh&g^|XFi1xknX^mi3ZiNn57UJqwLca!tg@M%BX zhm33ylRw=ImD@|vPS7zEUayCGZ;A?8slQR*K%4p5vG<|C0oFM8IYZB)#YT~GVAUuP z`EC2wg_Oanp!HVKH_gmmi_!?fA)}P+ia>eZYi2uYb%%|sh2EBy|1aGJAypn=>`*((41cHqUsNHq}}D+R^eTgqy{ zqPZW4IMhvsY}eNq?~+ohv0<(1KcdJ$s>EMa2^0rF;rz15hLt^fvR3Hte?mTpL5;zC zjSgHc+xkoCvbmziN@b9+@}5?KLdq7$4HnrVh^;MoYT71Ezjqc(yNpV!!)tV`BdS?h z1<4G#!ub^#55Ag7-+~iUw4lh(d;7x3s;l%Kindj&lM1U1u>h3B>RG=qVj8cSl&Zce zOjX~6(=74+3q`&>@`ct9M*q4NpoZyn3H!Fu4-A#yl)-h*U*;rmnPfE=@5XZl{igW> z=Ul4ZWZ|^QzUYcaz@8rp(xZaMK=KWyM9z{z; zg2L}hX9a3juN*6FyW#(5nFsK3p))_R_ z;z4BK5=mLV!jyi)E@fL77Bj07JxWE)U`M?3%fQ7l`wGZ8rWcKAKUbo;_KKOCOmmzr z54Y2X^@vP?8PivivWR|oo8O?xwy-KNCB%+^AsR~vjI6DG2-@eeAoB({(k2uLg^Xsr z{@Z!fF#`tIV<Qub{(%y-KK0%@ocE4Pin zryJ}LI2u;flanIOWyyAA^AE~t+GfiY&@&(_U?}~-fFmy}H=f8uJFvd0!?dR{fLQ_A zLg38XbYRRNBN9(RB-o4I;b`9#G7xKa>*a`UyaI$Ef-9M9b_6;Zz8LwRlCC8tIltW5fDJ-EBfl}KtX193V?oPg3y-=QS}{E2~8Br8qq;e zd$FUpHf&5v>xACcOy(W>kUT$mq6&xFix_pI!5L>Yn5TP9)mf3C_tkLcss^v>!5v9j zDyYO=D}aJ(F3zFa|Ft67ON5zo^kusAs;Xni$PscdvAZe zVYpV|%!^za6wIH3q=wGCU%k<*E8&{c2$d{AQz8#Iw{9@0uT)By)HpQ(Kk|&Cg+wzE zYGxp$tdk&!SQQw7&RSqw^47gf0{tt)kgm=2{_;c>av-%lKQ*M7t)@AwW!5^$h0VxR z)bei<%xZxHl3*M4f3GkQmy@6nHbYm^Rg0h|WfAsk7444_1{((FSok8yi5Wdt9R@cW zyaGEUuKVs+6O68n-7b<&@L_pcT{L&?wC>2~2WxF~X&qp?B&Z79qR-aZr|OR4ZnV{z zb&bi7<&$G9Ta>H2@GW1~;3lffYKl`iGX=I4B(w^bp7L2Kt1UMYx_VrJrh8VOut2O7 zv`A|QoIu|j1T`=($yulzWNp7BcBze^mU1?O*}SPVg9GRoA0eYzB!z!w<#G?ZBM%B? zftZ1HK^x>q;r&j`S(Tiz49E+jwM7lF*6c+&-`t`I!0WO^zr5n5MM>o?-5wxhgZwjB zn9(kfNI^M59G6Rka8qJoPX%6QeE&GvEwta#RJisOaK#ZfomKVo0$85uOi_73D0+eF z8+NbL4@da^R~%p>XVYh>4VBxn1i&vBP^VDu*id(sXd zl=Vbrga*7e`n7V1+9THbpa9|0QtNCg$UD;_aF_$GV|u#j^%S9zvY{TYd{(TH+YyA< z|4I!D#d{xk_^8^WB(8+R*`HZsP$gz7GJNAf3j3Kxn#WR%cU8 z|4|@DINf;tkJp2-eZJDs^x(R_ z5Y+V&E~THU%z{p)l#Uu3t#k(Nhd#*BFK3GXnB72IY`J696=~!16ETEn-U#V=oq9>0 z?R%HOTN=|;Ezp6ivR>lXA3UahaD+a__ZLW~&<6X>9N!I|E-S<=pN7KObUT#;7ze1| zV8Wl+`>VM+6;M1?2}pcC9xQjEKlXnfcoNQcdDVm{c@b5O>F%Y6T_2wfOHPY@l?%ff z51#$W`e6Hy4_1oxC6SQjf?MPp#tyO^XCbjvgd2$t;9z9xs7}`&Wsxz!=xHJqU!vYP z@Ulc9QuqiN(0HwZoMA0XfHvDL(&ZG`e86UYSgS+o%4%JLDVU5@gl#jJWc>cFT0uFj zE89looDvc%4d90~u3p`ME9v_5itqAMwh7#_bUfU5CyG_w^rHr=pk@G6DWXd^rm|%L zfE~_i!ajAFv?0qM`?^I2MB=y`P;x(br!sWa@EY>439w4)?}QzSrrJ|9PBx&pNYA$l zdS{KC!#I3}FnG7PmcSBD6PYkhFza%=F88XVlryj_TFes6-x2{xQrfiuzKXc|`qasgeBWdvOh4zwWH()7|?OklDrv>TWf1li|?G{}Tv znt&VVsFqz#PfG?5W2fcTvQobRM4Q3RY?jVy7aJSe9b-X{*}L^%VI9B3wT9!BDq z4ZS_nkTO#CkpdInUL;D$oxVkDE!CHq_mA*rm7)()4wH3_h15rKlo|sw^9O#jSxCW7??&$Da|D=tUv}jhOOT{`)15RKtLXCChO(7^Ixn zKn~L&oYB}y0+xYLItM9Tjv}xzEllZ5W@H=0YO0uVSQOaGuC0&hIc)-f<}-=PrBx8n z0i`9{KSDT==DWHCoxK+lQpY;JOJJ@G3^3D!7TZ~KYeu{qD9@bt1O1+g>6KEyI-F)p zIz$zKKmz^f&xiD1lFt_#|KMSa9d}7=H*pCgA3%NuFg}st6){613KZr2rN zqQ|9Rz11ZObQy@HNn4b%v_n)bDW?CAEuO6(UOPVaOhDp@5t3DVH#M2#~w#oGq-SK(gx0s8Y~!@1YyzPpE0iDROg&0aTTub3&V%xR)ncOGf1NECC`cK| zJs6Mz7ri+jtg30Evs?}PVujv6Jj2Z0w5v;2L)T)x@=`2d&x%|j1r*w!rCLP+8ZEY5 zWtJ=aTJbe(?gZ4ivqj4kD1-ppZ8Zx21C7q3uBtjOtFzz2zewIW8@rBj_)hDJ&aGM! zvM`gS1zqBLU?nYbedisrNm)DW{g)k1|5`-_k)o=D-j}eB{MF%sHfV-iUdSYYtn8)? zHGR;e2%?;`tSVT7=fW^);(-~G;11{g`w#!&|NC+ay)vd^{({^EPcURK>tLQmvx&c! zU4+7dVzV<4%Y|}?Su+-(<13e!sYn%A_v@t$1v82Siyqe!b2v`AQ&X%%^fe{@A>p4X z8u&W}7lw=+E@&vngmP>$iV??ig}yfGa=9L&D|p6Kk{8V9NVFwzTVhmHss08kCAw{) zbU?!qCQa-){3&%f+G=8g`EXENG!(-#OSF64Ej(Vq0U5KLxn`y?2$HiYk)j1oDn#3l zx1YvAWM$-6IXvX{Trjm!3`y#^gA#>64Xk-nfiHVDhCFmFkQ9?#i zW$;$CHQ|0H5{H~&S8FYYzyzkUg9)|kfK9)*&_z@zDXNvlL1!6G0+W^1n9uhBVMV0D zFeFck7DdLkihS?m;2GsDyIB`gslFSMjA|m-Kr*=N4H1k$b8WRmRW{g_311jDe2$%*m6)y;Z#p-Ys7-ZDKn{B{ zD_E5`O%AV2Auwfzh<->5B~BaMDPy==>4S6dEbb^}reg&Zof_J(s)|MJ<*W92VjNW^0hD!Qr5|O>3iRhd_%1hMLq(Bo z9h_J-2yH_Yjxwk-Sc@`i8iT{sVjSAv>}N*ocb^m#8T`2aG1z0|DF|ncI$KWxALf!R zB13mpP{@c!60q+XTm_UdtD};q!0?9qz9I=&6h`PIkH$3qh)uLzf1UkgG_wqDabd$q}4oiByt;Yk&?D=2J|u z2U=<2eDp084HVDvJvhpxhXPGX8A4HxLT5kY<;g%z5eo@!U=YQJcFRRZ}NOKfJ8FM_fXUtm`v!xUv4P>+-BjJa|^1l9Sr zMW{+a3pR5~0)~veO~ijgSyt`nol7iN^kqjdwgafU5~&JB3jvvo!cGs|3S1rPSowkD zDpJ+1r83c}?^EQK-1!PHmsm>?m&tY{iNoBtwP902cV7d=G?=rTsue+zRiwM5hSg*t znKczU1WvVu21LMwchK9pa$+;ECn*&w+Vaf>g{ly2h;BUj50V2;;S6b%ko$9eKW8MN zLjN9VW_r_}2Tkd$pxsdnRL3dW*q#SKfQQ!4mE1E0eH%ClQjiJAH=`ZeNeXOpYPgXBts~vvvlRV-92oL!@N@#X=PZs}NfVuv!f%-Ye~Sl@*DlZQNPX zYESc&d=qpbGg85o+212-qTT1bY{`I%vLzFWNWhj)jsax=6>+Q)0_@aY!BzH1y1wqv zgBP3|}yPVi-U19qCV#Sxkv7Tj-%y zXEqsu<%3I~OcE$gsI#V$eQ^06@rc+3RjrFR0eW5_A#yMyYh~03iUeO^9F5B(=ccS5 zrG4czyMhn*aOG-g%I`98Kgc2XKGh~?Wav@Q6w&Q{bxfU2(>GGwDemrW#ob*F4#iu% zxI2`C6^G(h+}#dvic8VrP>Sopy}*IDPrlrDzC7P^C*S+$`=*mjHghGjdu8^wGrP&` ztO1!|Bpj3NBt2a7hvljom&RQ9Zl3B*BghaA9}+hPbBEnMDH-;#>#Wt4$5aO<+CvaU z*XLh7cc|p?tql}T|f2JdL z8Q+-u8QC^TBa#2KW&!oAUtp8nmcd=rkv|^w=pVPh>$m#56{F4wdmp8RO%>&HkIrQ9 zeQ~ZQSik>H7{D zpTsl57bjh(j0Q!v$urukK#9%tJIf-@m5y37iQ~Mipix>x5rUR5B^zG)rA;H^_!Np; zt~dMb_^}YJU2;cq>6c1WeGj~oYoD<#4u688S=`)uk)*Jw^?)A`%BD~2K2z!TzXbdO z2Jy{08wriBIaHswID!!vDuwAGEla={`ia9pY9=~iK@n1*Q7XI98yqw@r7A{P`kuRpCx zZ78dKgVeq+^mFQr>jq1(2aA;N>&a+$Z=S%@9(ph9W4jionFH%kE#~HP0A$)*WiEE8 z$GWsbGXc6ld&Vj9*6G9qlqD;+sTr*|1_O({N`K zKI-!8ZMN>^^DLnbDSeTWlx4qzapabBq~+(EePsR!4&Vktu$nLxiE@L%J+wffG_*38yjH!xl4}AOG~|RRAe`!& zPjSMsxAO5w&ZkpejTkfnyQSmo+~dnVGu?*pRGDMOGRH8b)3h!6Nx>`Vx*&r6R|xZM z)?*mDq4R|ZuX0I4NehL!`D2p0*0&x55xd5YezB3Ah`ts$qgfrTuL!x}D#A&k^^_FL z;7)Xghv0V623MZ0qv`_FPArAj@pOmr%gU&389#ke34-y|3k1=`qVm{_BS@{r+pi(; z0A*2d*%i|Wsy)DG^125siVvo32!t!L;~U2}{VaFYRXN!dwzGR{Tnu(K6^swG-EXv) z3J7#XM%P*_9xmB3?zOf<)g3vPn+BGQ&J8Ee={qsS7?0|HYBymYDhn zB>gX6`%FtwEw{X-SQ?#oB(-lEnNB=HG126VPC%%(Cj0^D#>4cdrJ=|8#=pJ;Wtm!Ew3+xO{Hd z_W&)d3qc>XaDq_D59E9qbRWhrwq20P8}b3IFV$Zm1CBV>+P#H8qOzSDG7(yNNhU`# zz?N>S^UD|~qQykXH_Qg9&1=t2Opc=EI28o1EWK+#1KsK2&}Arem(xj>bc8TO-gBE^ zBOz<*8qN3~J@Sua;yjI>*=N z=VUytLtu_N%>11{V8j;Qent7R9sI-yu}ac;pUi6VP>B`#c5GcXX}eCm0)CevcFGJh zCZ_7S_7+y}qOyb*Y@DP^epbRbbz{T~zbqViY~JSFpC05JPOlu)v$%VAmb$sOu9DG2 zz?<<1t^KO--Be3wAhp(`H}v^_V<)r(Y6<`{xPp((pk5)PD;aVTM5O_fO(3u#vgtyx zsMV8oW?}0nR&C4bl9+&76~f}wWbf@behTEqbd7SNdsfa6YOh5nzzJ#RE05VswkO0-q2W7t6wF_#3=MS-22O zgm|m^h%pNPlRl2#2xw zxvz4ih})3YO}=3kd51f#GC{ST6@bl)ESZUMmJ&KI$$gbvU4o;a>%~J_X=%!r1&k1_ zMb6ZOOSnfrmG2&{&aO7zR66W+^tHxaTONMGOAnAeEY|+4zo&+qsk_3=S2;o;>{FD# zAkvuNVfNM_nY2>_+Q1PNBx9_asEhRC&H~?8dJ>wN2kZ)twF|9!*nX?gS7)XaM0`)& z=?R^B`6WRaGwN_=Am&<6lT1rV)LW0NF625$`)b(=AV#BNqubVTo49rB-43k=CIA_y zE_XWeo)>_W=A1CciHnR7O^M}g8%3P(M)R25>8DvFG(heV7D4T7>lEd?D~DA*(k#=; zkq=%OA#S|q_x##s#xr5hw!5?y77w$f!zVMP``|L+xAXp0NCKL+4}p!f%_Fikutmg) zc+e5@buIFPpk`5UCwk)Z^4zpD6KsT%jw8Xvc*e7@!< zO?~D^^?+I<%BQ|b*50e#*V!W)9FlhW`G-Hu+Aec3sx$ra1DP&<_&Sur-3_)>=UpWUPx6`KFnf9n~mx559|a} znSz>&=#-BG*pbWpY%0&nUyI@-WiTkCs?B@?+N+OMHlf2nJ;!wJoAsA8dpWG%d!CGB zqTasor9hYoefl8RzP(p=s2J*oAa!Vu7~_2wC&+T$&S4Yc0pVacw)^mDcAd9zxDTpC z;>PCE!~4E!DpG}o7thr{gIoo(o<7SwjDT=uEjSZYRb80dq5)T-ZO+-1<(-sI3A|_G z@Vak&wRX1ug(nP6Wzt{a%sCGQt|~jmR`xan;!6n|c3ET0q4@T`3HvnZ=F``QX9#M6 zZ;&=TgJY2i0pbKshIBRwphD`3CQn`*i_UlhL1bV*0A4o7Um#^YYitb;;|rCx8~)Qf zHQW-v&!~@_zsnAg1s;Kbd+q30(?cExAF8b~)d+?{R9+hl()!t}=nEhx{j~EptCV%8 z#7TcTV_BSP!3&ciB)1@xqu+VdEz{KuK6}p`a|`mg*}#5XBXPg7=UZQ)zoV+0R3K4V zO|jC6)utO=|6J`%G^o}WUhh4O`X#?31}gyowu@U+`F)9zuF*qzH%+N>fMsbFv&pS> zOo!53Km)pIn`GwA1#`2whJxuGM&m%x6o-Mb(MseRcuF018rZ?(Y5a-;W!{U*HRCg5 zzK_vRA(uNSf?Df+`WM;|hv7I#9d;~cU>rz@!_nU{rl?FmsRk*$e(&I#@=Dkpo-723 zg)%MB20axz``tFh&Aa5;DX5wY^lJpbhr>c?l--H?rOGI#B(pOgcTkQHGhUhG{-y5< zstb!h@N4?Wp_km0p@`Yeg9tau@h4cUK3{P9?k+_F0;4GKky|L^3b%~;*JVajsNNeg zoc&eiw~kA6UoPn_-{9e& z<^{U^-rhsi71u$ju-I)wZ6EVgEnqR@g;oGbAVuM{czAMfU@gv!O?M(@Q%|f=xYE@! zOXwWyT3Aw*_Hg9q<%aJc2~f1(8;g#G+V_EGW%1DUE9I^p4VQWrwI{pA9U&A5Oju#m z{qgN2Udp7t{_sZDV)rnIB~%6l@jr=G4gAG5krIKgq!b@`3=r8KaKi_fnLw| zt~O8J^*zi-aV7#WG`2VAJ{@XY@JfANt+;viMuSI^x9fO2nGsVudxatLfa8$Ub(t1n z0Pkr>Udi2<$;$OBn|WWmqpnnB;8?Vum^zVmnQ$>&fTrRmWW=A!1rg-inEI>PPg3W? z4vk@@B!r$tRT|cX+4gYPnC?;>`{LIbR!o)3$4m|jJbq|p2ES1!Emb%B1a+)wB$Ie+=V`@o9sLRICA85lixF z;zk;TWE9pJ+1}#Vc}QcIy2v8%!OrnYiL)}wV_R^^z=h>Tb9Ra&i$@;Mm;$5I|OP$!pn`cPXq1izm z-E)IY9h$O`Yw3&4PR2; z$+gEqC?nrU9j^~>OY-?RBmwJTqtxtPQe4JYbaqahbeUJ8ljBZbXv%v?s0h`(?@LCa z3l)r@GCl;>(We&cyklYgQqELAGmC;^a&tp-mf`{XyRM|;H%lx&zc&?bWO}_s3^`9v zua;B=zc7#^VIAj2?b+u^pJV={En#F(E6 zIYc^5DK(H5QaaW|CXD8??@In6SjQ0AJ0;c%4EFx4ul9AuhG>?gC^XOKOxq)7JFUpv z6m3URZ&UwlpjOIw4dHkJz)ezA{vuR*QlD z~K7U^z+L1LES_*JQKO zUPHP^!BmZRBCHA78*4wYP0JC9Ofz{RNGhOxa*IsrEon86a z#Un=h?)Uy8-2(lFlIYOdn@@p(Js~kS$Hj;40k@KJ$>b7|8U9^Vxq7fovi#LqA9Q}W z*L}_8^W?EFP=mp3j9FbqXozvu z@KCBjWwI-714{J2gm?!=x`7}4^|o_hd!}Wc2dzpAc8_dEz%qt$`XXPse3Ta7KzDMK z6&<2GpjC=bkKpx9bqS~{##Jef?&&XB{$ll6V|F)V))a5^78YH{Q7A0>#i(D%<;_x% zqo#aK&#~XVL>o}dZ?IpdArHny<%JgU6n_gjuTe}>WRSA!>NHPcjaT$3kMY}m8W~E8 zZYjm!_zKy~vXn(I`#9jMh0SSfbQ0@8YR#jEtI-*?U&19761co5&>CbM4Jqpjx9%qcCv82u+-bt4TAKg@dorUoM7dw@Lf9As7C-2-T*KN)9M_z3RB6`!ZrR+hkmY-KDuEk% z8mu2U#QQ&T)p*BY`O+{DBPSqv*B7L6W_Qt!n!<*RsL`1}A_T8ZaFAB=m{VQYvfeXb zx+5?QoEP1-6pc4qBVkP9$hDK&(_^P1>77uOVv<_3SuWEW@2Q`P;A!xOtU4}9slzJ% zK5!7o9C-^6psfAQ?#(G>j$H0HRhEgwab-b-iGpa;!nOBt^Evl`>L3(vTOuf4wJQ0y z$vH#yqJ4HZCYTZT)p&Ywp#!{!ekLj-@55h@=cH;w@3%Y_`AyHQXri&4Hg13Wd0Brqg8b~0zX>2wlY>p%xcO~{gjhL`rvb=b z<5v@Hz>8MfkK(dA@uyFDfvJk~z@UqbugX4*OXAczl2); z(;RuMl-J~dD+OQ$6*ksXg1!->*q+dZA6^OJ2=3(3r_oTfg*g}=!PkKU8iET5EZLEG znD;QpT*y?5saZg~Z#L8k(PJ=(Ed;gsU?ZRq(RN83;zZfS!c`1LaXmSXprF;6gG7fCx_EZwYJbu4se1tq%bR3i<+GBR-6zY7hkg^bXfI)xhu6=~J#@OO& z7dg(8?q+Di8LfjiRs1_u;7+5o*RTa60kJ)X*)R{NHM!S(%-sDjQgHa(rt$bxOU(%n zC92C{G4Ycw;M)TYk2UhP$7AU#W@pw$sfQCnFE#`-_RVuIrMkQvGB^H$Xgy?rq%~G_iZ!?H9LRJPo$diR0KN~Y|n+sAi=6URfJFJ z4Bz`1qpEeIn@*o2;p)`Wf^NGf8rr}l;FdD%gGuQdRTg8QG-1=I+pU$xh5p&@idut> zHsP={LyuYOSGUotb&+XkX1RO<^>M<`!7O{8iuD?Pd2rTD!+i@6Q^me~<+?`VP#lT? zl!j!OtoA!~6G)|xNyWCiIl;$gY7WHYW>#bnYcEMYA;$dxn(laZkVy!Z9x6JYBEhR& zvWiRT?pWYulQuzxKTdvAOwmVJJ%{Jch@jbAz0uSe>ng8sX=3|`vRcV{y+>&B4&5`7 zy7zp+t}NTS>|oqW@(53v|J}N@VFS!PJfFk7GV}9T2#^P2q|&>QPxJ{d-VEP?*`)7y zZjb~QGrsMH zPt$Y-MVLv^(xgpcMAy`rHqZBhdx-F^^%rU>3tld)CfMdHe!CLxW}M=(Iw9wah5Z_Y{!c zxSV)#t;hG6^gnVt);4_8CJws$-PHO_(~93I*Jd$ z*HiwIcpiSa=U>=O`kmsDE&T$8R!^{PlTEI_c!9T}FPpWS`!H|aIbRy`qQC=9VgnYB z-5)Lz4kBL2a*jXi??d8}Op&4zSlMdO+P!-h`^ZS0{xT-LDgNWSSn{pU1-U z1(LtjaX1Da9h2Tst;RiozjWvUK|PDhL57~Juw26rd2(PHogwKNaIIc zfkg71RRYrm(vAHGUVkd9m+L8*Lf;WJq8moZpHq*svf=O{aGx2uD{HT0(#hbL>2Q_YY#+unyV#uY|8kxQ`^36_mxQiRmw%fp~ z3g<8{`A%X@sGX!!UBG+RZR`2*xF8|T;9wzatJFr8Z^20m)sIQLgfk&(UeBc;R-?_N zz)?y(I24m+-z9CqF$dM#@C{*ou-34_QN`R9?>)7Zg&8@jHpWwIMwr@&hKlt=tjIf~ zf*+p(A-&J_b0DLZ7M=T$SuBo^WtqD`@TC`DQ@8|{r*9;8bcW$HL* zIe)72|9+L(Ld$kIPqtW(e&;*-q&R`F`>rq0Yi!)I43nNTuhB;5f6zXh1| zg5}s0>qW063+7XVE+CKMtx*DR9cznfbkUD1BrmUOK7F9V$8h|L*xdGRU(zu_TUg>E z=H{m|P@%V_Bxh9pWQ?v~?)PPW`op*0fE|@Pm=EbB2q#Wtw!IXpg%Qizr3PB_gtbO` zP9b@pSTc&g%&@FWnZwDHkEXj8HZe1)Q^(wK++uuGPQhESI}gCWp8QTXx^5%3$8rOh zBsKTUJu;BiFUOLz(#U!4=lHhwn%jOI)zM#c+T!bL5RoXk=u?44P><#dNu{+)Yn_rI zU-R7(hSHdV!UqpBJE9{fTP56l!e%>T;G0`6r{lAOtKP|F< zeftYF|K9#V(H|83LD8Rx_J76ae|Hgo$$wnMA6N0mRs2tL6wo znc}d@0RRAsFbtKDD@49pdt36GYgH3KE-Q(USRx8fAq+Ad1_UYaWDFFlWvQ41lPR(@ zyD@(Ncn4BRV~JSN7M>he(_|J5&8XIrYyj{NG-_q?bc_I#u~e0Y4^1|;L7+;(hqkgr zh)65Il&Y{C9Tt@nDV67>%ee|DFaY#7@<;(SM#w;;Izyx98TrtxE|1(>u3-qAg%Ig{ z=uJ|wA~7hybr{H^AwF`1O$XUb8l8!7ncNK^1EC`@odF{pA3DNgad-$FoO>WLnog0z zlc1q)SXi=0U<5>hBA~Stcf?B&EtI^N3iEJ2blxbl)4Y8Co4-|?1AF5U_p!I|Vdz33Ql@z;#j_&zSF`Scwz3UWsc#K@^Kd2e+y;3f!Qd z#fwBdp+-;0G;&Oc@*z@zrcx<*+z=MW&zBp5qP~7~dI&w3DPV-MIVkGK3}LfF(RnV4 z%d^y&hM4Cn-f}}1D?OsCp`DMEF)8k{Yer&>H0!J>L|T*czKpo?;0G8x!1 z*nbUr{)%*uWxHTo@~~ihOhdX|N80+{L~J(zSicaWK~m%JAMt!;)F;jX)2&CD)hf|Q ztaI^7PwFX1VzcfPR6_K1gxED*E}@pu3L9(gOKn_B#dg*9RSm`cK_x50g|+9SlWT8A z>~EQFF|=?h>{<3D-#=Ddoj^v<=E~J=TU5a(0%p5xDsN_ z+}Q9-BQ?jp*RyL~J;nXl_2yRzMdc+n54^=@Zr^9i`lo{~?@EXs+MMdf-!SaunOkPs zvZ8J2N9yqL*Aqu>Vw8RmDSf_vvw# zM3GA=pKR-yZu`2rFHh8qtgnc$LT~EN4ghJUcGD_jGNFOYCZlUNY8X zx~JW3CDH!0ogEybF!oG5wv#nCTg&1`^AYDQ%9N^WoF$cw^>?WH@b;l6XZQ6Kb|iI_ z+x6r=?Y&a={^~D+J3IO#8N)w+GZJ4{HwM5y167rQbqZHDbvnP4i? z&9r)VEjw``fn{w{xK15hFTFaN;Qm{K%YnZKI(Li;j%~c;HGJby)0pqbz^BWy&YlxN mG-Xv!D(&G1nyNGKYv&|@o2PZ!8zIcJ{1=2Fk!XEzQsFdr;GM9FNMB$9kZm15_3YQ&HO_l>)6T&^9epDF+26oD5dmAhEQmX@ItK^75@y z1W}ZSOm5;lgehCyWIRQt+X**3*9n^gg*iP1ggN!x*ir=CA7i;oevkWnKHt~pvM)L+ zoZ;-{3;+N_9)T+9l}Wz_$GPyj;*p|*e0EUW&?mA)MQYpwHO6%#F z0V@m=EDevakXWoGDo$T|T|HUqeiA0zzqp z%vVVzD560LL1G}64YSm6AOZ#ku#o_m7r4vR*xjAlKhGO_eV-zfzYGpb44 zK;eWQv@5DM6B(3{NoV@11f5}8R&Sha6WuV#q%uGV8@87;1ym^hAF9($qm7gjd!6rp z3LE3h1`JYSMk0e$(}PR(wTCkBB_yVz2r`Z!(xQl2|Sq0XO1$4UuJ> zz$+Adx!y>r^lD6w3YoM58^<+#5gHtfz+5Sct_?;IDZA-o_FA`3vpVhJjn;-Z8) zLx<_9DX!)B%uQ*O6KD;=OUR=Z<4E-ITv(BE<`5-*$4Zt zK~G)L?y+yDZA%}fjgRSRx0AH3wVTje05JQe92LcxdLC`+(k>LaSCs!;Jn)&1{CJpa zrmK(AZ-uLLjr;rHMvZ{QVB2C%aFZYHJdH=qVSsa=5H;&seiZ^1A&k&u-`5Tblit>PZpQt=j$2 zsw1=(cKF_VaTRP<H7M(v~xf|AjDoSdu9SJ3F6vJ&JyB0M$ty(Q(EN?tfWP;_c z740jm+?!^|s1UDiz2M!de3E_b+tz|bVb${>+sIB{Ucbw`iMdW*IgbwXzg(Aip}b_4 zNOCA_&B4N&yB7w_=8HDK+mQz!SKf%M-jg@?(lhCyzTTW{rNe>yiG7Y0wwxPWw;rcA zQ~L6Dujqds2#}vTeqxec?2Jgsj~BFXK=ZN~_p?tOWsE<#E!X#F*SxXmYE@+}>tKOz z-_b>B&zGAlSL+76vIky161-@~n@WoOor?|^`kt?9ZHdVccJ02Bkh|0ctf*bLAV2Ad zrRo>L|7505`ZiNaPH^SXGOV7pFE<1av^7^NZyh^lUG`*f<=yy^Gk`U|m||2t9wg&? zt+uXu;;-Je+5S|6_Ca#j=_~z9OOvV^GF{s9zI;I0zSH#70zUV>ZQ;X<--34h-jsCA ymj1Rg6zDSr z1<%~X^wgl##FWaylc_cg49rTIArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XP}#GU}mUbW};_k zVqj@vsiRh+i#(Mch>H3D2mX`VkM*2oZxQ#zd*q`*i_F@Av`lL zCBM8Ftlrnx$}_LHBrz{J)zigR321^|W@d_&ftj0=i-n=9i;J*(J3ovn(~mttdZN0qkX~Ox$j9 z#%Uf@ZwhX=xZu>Q4|I$^C}NQ!8YToxJs>7L*#bH6grAxROzlO$Wc}w=&p%*pVexcv z45_&FCi;B7kfTW5ZtLg-!L1V|d_(whd!s_Gyt-InAjNmA+dgkudHyl`1GCEy%RBhm zMD!gK5awTUeO}HQ&$S&g9h-CyEz@pHO+PN#!L_xbXlD5gcQ!NONk1#z&(6Pp+dO0E z(o_Ml?MWYgJ-rlKS2?-g(r%f8%;z6Bo;*IgHTrv)oZXJw^RKW>xU~AIWZm4eIx&$p zm05OEZ`3Eu%ACdc=D$+HpR1p%w`|;c_0EqCaew!0ocH|lQKy9gYGFEB`zG(Leg5yU z@^QZT+c}>rvCYn7kcI?&*ZOpbN27}@Z!r&?)0qq zTmgp~FGU~jAN)&99^B*P`&V%Hu>QQ~t6eIT=k7GQo?*G+a^7JT-FY3%S34ghhcQ^n zbsiJ?W-i^}E5hzGQ_zpmUeVyipWY8&OZ$tR+5)|POO#B=Yc^0|Ff#bWE;^atAI^9o943w4JGi6iX zgsBS|l=Mw}-p;Dm)SkD?%`SW*=d3$_PaCwcU0L_@wz7qgvdwNc(TLqsL>&d!O?v*( za`l$wl_zYPbe$)QOSSpB8*t6KG%?oP_M}ylTIiAG%AfM~^MtSJ*vJvSb^R^V9jv^* zvCVH+F3RG1qne@dN@{DiKr37H()MNX&2AS2wmnh(o_&F1mX)+Y*o7HFCOwj~tOA=0 zudi6faO+9rT;3a-zqw8jUpepIk6YoYZV{(AOZv^HF6cet7Ob8nP@KZx61KWDBUVuA z{O78W#ZKF1!#Z9ZvRqI@}O&I?MgOh|fqIqm2Lb#L+O zr3>TMJ0EH2I^d9YE>>^q^{~$(UsNWnoRS)uFe@#C!D=p_MIW;n`^DVdS2Ita5$9^X zq%W(PcYPm2=ey`F%+o$;Si985b2E4NYbI~G-XRes-xBeAdtbr&DL>u&s?&PeUsQ=G zoV}_yCqj^;;l=x(S8p%g{8{__JiC|v|3wlQc=YBn957wH4pc{Yy85}Sb4q9e0MsXg Ah5!Hn literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-1_button_05_press.png b/res/screen-density-xhigh/C01-1_button_05_press.png new file mode 100644 index 0000000000000000000000000000000000000000..b68bd66ddb40f0994bb0f33d7ae1895e2f5e2f46 GIT binary patch literal 2959 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 Fe*kJ>WMcpT literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-1_button_call_press.png b/res/screen-density-xhigh/C01-1_button_call_press.png new file mode 100644 index 0000000000000000000000000000000000000000..d580d24f05fa526698f323b94d3fc377572fad9e GIT binary patch literal 1584 zcmeAS@N?(olHy`uVBq!ia0vp^d_Y{l!3HGt5*!nNlw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6H#24v4 zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL` zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTcwn`Gtf;oFf&vzGto0N zF|ahT)KM@pFf`CNG}1RP*EKY-GBvj{FjRm7C7^9ZDQQ+gE^bh}fIM5JjFOT9D}DX) z@^Za$W4-*MbbUihOG|wNBYh(yU7!lx;>x^|#0uTKVr7^KE~&-IMVSR9nfZANAQKal z@=Hr>m4GgVcpgi&u1T;Y}Gc(1?$-uzH%*@!;#l_gt(9qS;(bUDs&Dp}p z(Za&n)YQZUrq?AuximL5uLPzy1)m37xbI(>8PqO3RXK0ouu7R!vwb2~S`J)pdM_V?NS=KE{kZ{N)#xbS}0 z(MPf$KLf;X2yBqCu{@%HZE6;54*U=XEZ}{%# z+GE%JlK-wfZ8pvO(0U!K9~tsx0WZH!covzI^{BbSeLaH50k`c>+u1MpTH+tP) z#-H@D`uJ|?m-@6&t*Pucf3~WN=j)x>_kSP%Y+b%H?iO(j4Hm3&EC==~w9b8dX0`bF zSj(h`m+su%^Lw)6;?ob8xT!B&=zIJ#XXC<0Hqt7=lfQ~JC-(NKHWr&{8VY4pJG_wN zPpD9Cn0Ni~g@39om$%u^6A_tx_dRoHgO-Q1$i!#YI+P^?Q$3zOxbbjia!s%D9e0z8 z@)a$nTBkIP-4hI+#7tej%A0}5vBCJj)dCiad+sK_pEQEl+q(LSwqBZ>HRElE1#?D7 z%I3<@;L?_4zYz0Ho{dW+Lm7mNSg#hH%UHBZTqf96eU*;*vKI<3-Y)j!ZFug=ydr() z#H)S(^}`KT-74fWaVX(WWoB_OHs7SiC?XdzW%X3cbwaVa%j20YyvUxpdG3VHO5TK+ z^?d<0E4mzdQ&K%jUoiU5U(uwTzSHfP#b?e1rXuwh7=F$$_#W+K=1)KHe9863;|32)w=dTy z4?ej-rMBAm$LaL$--p)m=S;2nyiYAB^TXz&`HXA~g*pw4%TJxo1eM{Qu6{1-oD!M< D;S*MW literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-1_button_press.png b/res/screen-density-xhigh/C01-1_button_press.png new file mode 100644 index 0000000000000000000000000000000000000000..de4c3f92777b26e445f4d9c4b8cce56144d719ea GIT binary patch literal 3357 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-1_contact_btn.png b/res/screen-density-xhigh/C01-1_contact_btn.png new file mode 100644 index 0000000000000000000000000000000000000000..19b11994e47fa79c0ae241c85758d23f79f0f99a GIT binary patch literal 1640 zcmaJ>dr;GM91kD}LVW>K9^1v>kU40YK9m*;LQ}L#6-o~}#vG*$QXox8QYjTw6vc@X z(Mb`VJ9WSq6K-Xv><~q~IXO>p6ZJsBIp%Oh@qFLJ$5I5`A7i;oevkWnKHt~p@>#;l zrJQO0(*OYAD3+lrcAd|@Y3^?9*DY_3kX`&3xrRw1GMRiWg#j^oA_D^zxONSu!nFE= zyiP0<09+u0TEl3R@e&<@bF~f(*Nl@a8vr7s&7@YBgE3$Rw#HzTLibxwL7+h|g;GRH zo|2SdS%zg63QMxARO>7`I^1m7%gbVbB(mbEQLmOCG6gD4MX54gvpUY zZ<5j|6F?b3VW5c13)AryA>bk*7ZLKrLUAa_=OH{8;lsSeVF*tmS}frq;MfDP(I|bU zM1{tU#bQrVD2ri82@L1w=X3J~T!LByBVw@_=J8=ZKa53$(FI0EYYsEgLE{Q2M(Zd8 z$ruPD=up&V5GFhRJi0O{zD>)lZ%aIw==slYt$B{nwz! zuUPjuwiC8x4->}6jI7%!*46{te2oC$d_#f8sLj21KUU^=C;GGr9z7HVXCvD@MP;cU z_~V!CzwXu8C>?qICiv=$7aP^2w%NyHQ`v9FJ}jG-EDO~L4MX~B&7OS)j|$=H)a_Nq zVA`2Jv)^xP`+*bdF23|Xyf-CT(c>YI!v~MvsIab}E_C|VrC+ERI+6xAT(J-RqO6_% zWU!(6p*l3QfAz`84I-Z4p1~>pjw6{*}+xn#+dY z{gY0F*&mYgDwboCKJFImfq9c#qcu_E0|tM2Bx1KfTg~*%^bB}#Ft~kRUT?&%w%L2! z{mLyTgS#Zfeu3cH?$Ws%f$)-HKCj0m@y@Eij?a=|Zc>vqSdQe5vPMShvZTYF3;QRT(P zn%l$fv(`#W;B{W9F6FuTEaaO@EzfRUAIyrLwd;{k)*|)ZUb)>92hUt$+(~Ky<7b+>w#$`1dR1E78W- H^iBT&Pf>3@ literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-1_contact_btn_press.png b/res/screen-density-xhigh/C01-1_contact_btn_press.png new file mode 100644 index 0000000000000000000000000000000000000000..629c5b76e6f844a581b15911a8aa1ab8b6c57ef8 GIT binary patch literal 1646 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-1_icon_Reject_with_Message.png b/res/screen-density-xhigh/C01-1_icon_Reject_with_Message.png new file mode 100644 index 0000000000000000000000000000000000000000..24759b0abd7e529e992ba9276f367ba8e0fbc1a9 GIT binary patch literal 3406 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-1_icon_button_press.png b/res/screen-density-xhigh/C01-1_icon_button_press.png new file mode 100644 index 0000000000000000000000000000000000000000..35d77b53a6f056899d9e91c9f88346cff479bc02 GIT binary patch literal 3944 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-1_icon_call_press.png b/res/screen-density-xhigh/C01-1_icon_call_press.png new file mode 100644 index 0000000000000000000000000000000000000000..ca0f49c07b64c3efcfd7393258ba54b95c7e2084 GIT binary patch literal 3312 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-1_icon_contacts_press.png b/res/screen-density-xhigh/C01-1_icon_contacts_press.png new file mode 100644 index 0000000000000000000000000000000000000000..4838c2092cdde7031e2151cddeef7a86db5c405e GIT binary patch literal 3946 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 Ef>b$MD*ylh literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-1_icon_end call_press_wh.png b/res/screen-density-xhigh/C01-1_icon_end call_press_wh.png new file mode 100644 index 0000000000000000000000000000000000000000..c3d97a17b26b35379079569657a8a64387e6aa05 GIT binary patch literal 3409 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-1_icon_headset.png b/res/screen-density-xhigh/C01-1_icon_headset.png new file mode 100644 index 0000000000000000000000000000000000000000..e604393db7820aa0d0a2f8b6ab0d585ed874deab GIT binary patch literal 4075 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-1_icon_headset_press.png b/res/screen-density-xhigh/C01-1_icon_headset_press.png new file mode 100644 index 0000000000000000000000000000000000000000..0020f422ad4aa4f8f493541db71cea0c24957e63 GIT binary patch literal 4042 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-1_icon_message_press_wh.png b/res/screen-density-xhigh/C01-1_icon_message_press_wh.png new file mode 100644 index 0000000000000000000000000000000000000000..8d658a0bfefbb66ca8096133da868bbf54fc867f GIT binary patch literal 3489 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 P00000NkvXXu0mjfGID0c literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-1_icon_speaker_press.png b/res/screen-density-xhigh/C01-1_icon_speaker_press.png new file mode 100644 index 0000000000000000000000000000000000000000..46a0c9e27509aaf097c5d34f5a24bf37ca3b83b8 GIT binary patch literal 4036 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-1_icon_stop.png b/res/screen-density-xhigh/C01-1_icon_stop.png new file mode 100644 index 0000000000000000000000000000000000000000..6ce0b4a53c289016c0b4148423ffa99d57d83ce5 GIT binary patch literal 2932 zcmZWrWmFXE7X1)}p}U1kmvle43>IH+DnR)sK`38FW`f=&QU|fCyz8+o=+yMxgM_VG{mfK9K zCrd|A!$j0eLthI<2$uyk1;vmdAi_;bW01&QJjZC>Nvo|*#6D1zNSKy}N@X+`rAQ{5 zC0XZwlNR$fF?r~0CH$@Tblb`1=w;K4+E(=;x^ax8145ClCu1&$qNsp!(teBS@9A4v z7uSd)p`d=2rg&^%V@ zC|T-nha&(KWiVb}dw3CoqpHQ>z+50U!8MI^7QDtU=bn= zYvy$RXInb` zt-hUKg&>3|&zP05;H#hN7rI6K0Og_o!XJQpT72U0p+@z72mo3|Q6hDk>_?p}q8-Gy zI&Us?lAk-t$3ppfx}Y>rGB?z%04L$k5sCD z)PI~Ig`GleQKUqg0}y&=?)gLlmt+KQ8iYA7?v%SzkBBaXk83cI!JNl1Lrzc1A{owQ zrN?og8gN4~!Ct2&LwNv5N1w;H=}NtfYA{#*O3?(vmMgHu>bxQU;ua*8pUzZN@Fm~_ zn`)|j@z$3rPwM$}HCVr7$9EPInVtud;(guF`a7benXbe2Jk=CceQb4is|j0^j$Oy< zgNf*(v^z-UiGrbA&YYTh2qT2atX?_SEk0S=c~S*Z!dUYzL7vQV!w&*2w7+{;T%@HE z5PG7#({$17|~D~`r6=^K{Ryvdqm^JMls@p}I~sD*Yhi_;|Mi}l3tw(j?w z?}SIe6qNCdG5v{1A=UyG5*8$DFw6T~qf*w%6xM#Yq=M9L?p7Xkp05=`1S9f5!-Ydb(_N8nHSYNuC?`Xk-M@shKO=|Q&z=4ijwOQs2`ns@>rxb_kyD} zMYXb`SP>>;AY`05YO{}Ndl+Y{ zXj6i)vUOYuF_II?$y3}MDJ1dwgeI}Ml&`mvxcD` z7VhyvTNX^}BAJocz?j3tlqAFGVeuR_@dEa~#ew#9gP>!7hn292V{}1dLDyb6{{6oE zzSn-j!s`*)*TRK1GJ#*Z2VmdKH^$Y;UuQ{rFIPvJ!c3!(OCrXO8=W=Wo&!Ig*KnU~<>E4MUQ}^rk>97k zkT`ETr*ubB2*xGES;woV`6VLQ#-(!Pg2xwNfy-Kdw6e993XoE!itoh?OMQY_AKKQhJzIT|gie4pO3un%i7;x|lEyi^n#g#Et zh|`HGWosBEn%sH$FHIVea;8-N1Nvb8G_uexjxHpR#JK!;;w;Qwgwy0ePsBLv#gB|O zxlq1dnG(?rY^-3#^EM+&qs0QHLZ1przm8wn8%^Bn?P+Ymd*PNkfX+RfV@l_eL6r@Xr-q z{d|43N7qHS@&Z#5Z)h#Xf!J)XzOUGz;vb49TVuR=JN_Wi-G!Mw2UCQE&2p3TpLjI88e>v&Ed!o8hw6CT@}OJap~RN0j|n>kbuDd*-tP%hv7uy_1R8!wSFDui#1 z!N9O@KdXFfb1xgjjVi0d-@%XIf8g@_6N^pGGp7&7_u0eSe#!or!rQf-T&N9x!dnqo z8Bcjkxu5BuHJ+%~CRJ{qW}o>u)R_4A@AVT-5MGe*QekGWU#B=GRN)rs)3gSM^9!V55`i_S?GvJ@!tzh_&1pFEmz#~ zeQMvIEi^$Z6WUiPTgq+9IQxT-K?e=^4SMU3*7@(19DR0zc2q7iCr$fXU$y4fV(q=L z`(f=(;T|X3?1c)r#iRDnznQM4rwSES7uyfRd{25$j+dDhBLf64aKo*0!GilWZKiFG zM;d#YbFjsPDRsNch1s7APw#gG7afi-=$;VA#f)8M9H&#mZl>p@564r+?-t%sQ&e14 z54hMqFN2M_jR_PoU%t5uoB&YD1%TQ2g=4SIwf42XmL@!8{>MT+X@?|**0}w^ zH literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-1_icon_stop_dim.png b/res/screen-density-xhigh/C01-1_icon_stop_dim.png new file mode 100644 index 0000000000000000000000000000000000000000..1bfe8d5e8c2924eae9e09b45ecc06ff8c7042bb9 GIT binary patch literal 2934 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 H)H(9MySh?- literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-1_icon_video call_press_wh.png b/res/screen-density-xhigh/C01-1_icon_video call_press_wh.png new file mode 100644 index 0000000000000000000000000000000000000000..2b58ccc147c30a6fe792a00fabbb9ad38c63cfe3 GIT binary patch literal 4568 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 Awg3PC literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-1_lock_icon_reject.png b/res/screen-density-xhigh/C01-1_lock_icon_reject.png new file mode 100644 index 0000000000000000000000000000000000000000..de951cc41cdd16eca52ed1ec9a4bf7a52077b9a1 GIT binary patch literal 3614 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 Hu0mjf)ccnE literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-1_lock_icon_reject_arrow_press.png b/res/screen-density-xhigh/C01-1_lock_icon_reject_arrow_press.png new file mode 100644 index 0000000000000000000000000000000000000000..d1c03e2b18c2cd26362f39396ed0dd967b7525d5 GIT binary patch literal 2977 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-1_outgoingcall_No caller ID.png b/res/screen-density-xhigh/C01-1_outgoingcall_No caller ID.png new file mode 100644 index 0000000000000000000000000000000000000000..57c5d57c5d2a82d3b578aa581f5bbe7d04e378d6 GIT binary patch literal 69772 zcma&NXIN8hur<6xfY6I5y#!HEI*RlXihxK}igXZxAcWqViFBkXB1n@aBE5!=6r~fI zQWC0^fE0ny6u~z>KF|4ezUzEHxN?!~z3)5steIJ}W)f?lr%6l2P6Yq}?Hw)kdjLQ( z3IL!*3UcB*@t@4gh%b~LT4vq=K+W{$4+Lanu>t^Z1#O8qx&1oipTQ@s&`|MFYmhFyF>xKr}_+e@j1UBFC~L^3~%1dCBsg} z+qX$M`f_8yiHXSgONPQUaa7Zg72f>B@Pe4Qfzzen0+-3wp~?LC6SDhtG4FyA;Ta04yj`wFrP|fRNeg{P%%eQowf5{^2rUAOhG5 zJXxCnkl81%gF%4BOWsSM+~)w4$stA^fXf4ABPMaTfd}HiMaR1zWr1lCK>UuWqZUxr z0CZp&sA~WU8bI7ICh|H!8VuO>@$m%!5wC%Z8vCXSdqNcqctPSxy{=Jcx*~fUWkDh0 z2{APl<-Ufw!y&;lt(g)sa#U7yvB!gpHjGi`B9t<;jtV^Zctjq;PBMT;Jnojy3eKdLVZLYfA9= zb2hj0lAC5`R##T0wLhv_*bSJ5o;!8fbeNvG{s>d}b$qzk{`Cs#h80Sa^klJX=s@Q! z=g14nh=;RlNt(YJsDJfr6il6kFMYkM0UEJn-rGdJF*jE$*G4uTg-J@bIM(|KH!0&opzd0!YU@ zFFXOjTK$Ts(Lk+oF9iUo=b{9wR5%VgS%o{uIXlT_JE?!!N=2w%`Pik(pi1=!$?0W# zz3i##wW#4LEo6Y77-W)6}aq6-%>6Xyj9mKJt;sNMg>-9QCSWSB#g+!;hB2>9I*lYQ5qe>#UHQ zA6>;od%9JtWrQhH><6nam(i5=uveLsfm>n^?MJHpNiU#ocTh@^`l~|ixK*?s=seJy z)+&Z_UXf(PQc6>TBMiF)E~gaVt>bTI{PB_X;SGuC2U@~>lNXYh#2A8O)ILgIxe%*% zL!c>{g{=GbOdy`BM6^k6daXvM+_9LVb}d*(=>EH&-}Tc=s)+ zvLC`c3s3HUy>@Tlu{PT(!>Z&exkLI572|@8dvnEkMvS+T%vH8QSfgd|puKP4I&ZTnerHz`74{m6#r>%nz{Ap;TE`|5TI9+4QWQDLg zvH7!Brt1{3O*~`kH4>MW*i6U2rhn~j{6G*b7;@?P09C4XDt{`6pqSD7lA@CN5^7_D z@t{%Cd+Yn56&l7j?=Qcn{QRoaxFp+P^FGIYr}y&3(IrmB?ncUmVPU zhPl-?%dI_7YJ0ZY0AXGi+R`Xr)UA*F)x$F(eu6FOXIw4M6ieRc$*SGdzG+%}kMPn_ z8M2)2d6MO$M~T1oE{zZtH-GW_^{>}CiX?TKBpfVVN?xVCdQhrWYFMhd*(O!7{Vuzx z?RJaVDT+>|S6jeRK+`D+Lza!dKXZTX9o0K#T}8RW3eggmw;Xvb>i!?x-tDC4v|A%{ zbll&~2e#pVa)yeX8J!`1zB|;Uc|cxEbA=p7gJD(pbj#CSflI6xw`Ztk)eTd7YnN)5 zwiNNaX-uKui$;P5eY|sz;{yZyy+&Th(fmXO~}{ zY$|FWS)3X^Rdny9w55bLhbEjU zLTICB=t{ZFxx&2bye`U_$jxV9vUZe1KOMZ<5OaDk!Z0#@a~aJvc>SYu_WjHWO(zzo zChu@U%(K|LPX|TQlteQ*dgl7tRzi_(#j*PCUf zWd-T^8}nv1L(&}$eGP;9-R?Oykqc^1_W&8m4XsQ*-dr9PkOB%v=`DWZK#P^m=pu>w}QS+ZHVN7T`5 z=*xrb2X|cWa>|MdR!F(IwlDnJCPaVD{z|D=^n$S5E0|7< zp3KW#6$Zg#=J>1oO#W9BsRFyWx|}YHjY*BgOsiQ6a_jAD3F-#D*m~Z2EAYyvn{S0z zn<50>C%5X*>da-zN40#3Oeo5PyiB1n4lRiIqF=ggnpP3k#vi2Xg0k)$ zc-mPHa@nLdrdo{*-JG4;w$gtfX0}jo_cJP+L+Mg%T*XBkOWLI;)7NGLRym^G2R^)> zeOdRu^kdVb5yx@IjkS4^91FTvC24DEbZ)dW*gDz;le+E0quV&KwBc*GmT$MyZeu$f!L3J&uzvBuWlN9=9zQN8F0sd|8T%O;nfEhJEgo7l>klc7 zO@5mX`lX5Eq0f?3FbmWs81*}2H=a(UIPH(bXQyU|hKc@|wZ-M5gYov5g~#;n-FVKb?+>^sVSQk7 zy4~qN>(BMQV1ZtLB?S89+Hd%e>cjh^?@m+LQc`}Cg3}4V>~D(Th#PmPlzh9`yxC$mF*b2D zF|JNe_*M27W zq5uEC^#8seEb0HX$p3jhnaKae2qyV4QlO2-XKg4nXyau2Rj(~uT^Mg0kCIfrnqnv&lo zhB?x9taoO;LbPud%YP;x=b{>N?L3{nux7XLjwQlnZYhlG#A5wiH1+Y*$A4h(2O$lz z;{N3nBj5p7%q9WpI}zlAT4T`KWbUK0dT|#1FL=fgbVJX8n$Tcw8Aq;j^tD1B^4v^d zhV1bi$xQp8R55=p@k#%n#fJnLXbsyY`M6`RIu95!!^x6i-C=5auqsbyNeI6h$5CaK#I??i1gSl%2m z*Z70!e|+i{4F-XZ4=m|gd*M$C_vSgC)u1*a$O7z`R^MI(3p>s9rQCW*4!+HepF90S zrQoo_s6Nq8{yCJ0?pwUh`?ng*gqyoO)B4HQi+X1o0&QoS&F?hlgsdk5w34PTtzagY zGsF{ryuI~E*c^jSv{&gLul=+5+}C&d6*{f(IbH>h%fC3Fc{l8T!b8 zfG%gAo$aEv>$;cVs~zQZ9W{>|l@C~t_gY&q;L1%pjVtN@8E8>W8;J(XU9Ir;KOt@qycM+|?gw7Robcgf`$4(!d$zOuR8`AfzJ*$(&yA;Xw~;siJkV_Q(PI)P^_qbIpDAopNTu zqxqm*D~cnK4@E_2LqY=Y{?NNY+uOG2hum^Y513&>^w(MpM8HWYp!8R(egsrK?Kn*s zbzG>bim~%w-}+K_dJPe7?1Jw!?)JtlGv675?@Qp0V>^}`!3FtC637n&LtM$5HJCg> zIrdi*PE4M83)1dW7Buv*yAhC+A24&jh(`-67)|muj+&$n(D_W+)|@6~q5k|a`CsRy z$g)`Uw61a;G$rryqgCn+9o~dakPOw4)(KaX8mVnQ<~9cjPN5tai-XfY9eBo5?`nO{ z=?!LNUADChzx_!e;A2Ms1-c15xdTR|qf5~PsC!U_YX;=GGmuXgVAj?n*{5&u)p^=z z>hZj|x|w&Bg+y%piOF)+iwf?E-loVkRBw~9`AhNZ=4obc*|i_T-#^>bR&hWMOkaHE z1Y!GG#;m)!Y%W9ki&stt#x`p*U|xK83;sx<}D#TydG;3<$#- zg=wxgBxbi>0Nz2(mjy|8OQc#w!Zm5MrucGc z8PfhWiQJSy6ZOW9SERX{|Ayqcg>u3XDq0B_MK)#*)4R}TUO$s1tPVVb{tWf#>F4cVjaC?Kg5+cZa{d)99h@Wxw)6%rl#`ABeZ_;JFn#EM8(@5T zQ~slUX327!%x4#l)?bwC+dhkD3d zS{pe@;&mg66hdcNwWD%CPWGUeF(4^?uQNE`$>$Xi-NhoRLdDDQ0DPf_*Q0IQ zFYTApyocGbp=kr(=eE)O3?EWi#^jX7qX*pdP;zig7|&QPgqs8R><+cW=)5E_3c)nt z(V;dbdPfM33Y_4yBO9sXgvv|sI5hcRH+IfmY^4w`0LkDFVW#)Y$OdkV8N7CTz;9z+ zrP08DMR)K*jjxX)$^*2}z!flv06n=EO*T~DJ9CUnU84}>P;-!|Q3U1E_t?jD^5=Il z8E}EpVWq4; z;1MAg(~gfBXr&oxrJ+%ZF*#;*!8v{oaz-dWl#Fl3Oj}MMQqCoSb}Aa7R!3i0Izp@R zhkg*#6-AaQ4Thj3u;PBC1^z*r%#`42RQPbnyJhV3>gc`Un2iHtQ*srt8*sK;AXv0E_n*b z5nw*wI=sIjed5->)geE~Ax;~e?02u7C;p93q!NGGnBp78MCULjg7FqPJup+{onW-QLkjo>si$vXgtXw|mQh_dnZr60o_= zv{3LQ4cQ8WOa{-#v|R+QDwQXx+Np9S00)Xm{aZ6m-7v6>G$??{hle?L%=1(jT#PFj*Ddc2 z1d6TXH6wzq%6a8B<8>sAq*T1@7oKi#eay^sAit$)m@1WENyCY!6L!Kld_!%13`(Rg z2~Bl&F0Z5=bHnZb#3w-i%`&7Ip(vMk<7I=|1eB`MT+5L*GCkv51w20{)H0&V-qQ$N%9ihb2le!Oa?ro_(2GY2qbt|Q*4wARyd<1QhhW=aSj!J|z0?~VhUxoA5%Asc~Or0j7=E$!H& zO(J*x!&f>9FFMWikggxfq&9Ca9*9rIiXz*uZE;?`Qhzlz0(vUmzLBhq#ivM#Z*#c9 z0WA5q^NYF9oJmA9wcK`io0?GY0IIzs=Z_p}7n=gqfK28SJz-n!U|7&sg&yfobm|<* z%*7$&emS>hH8zjf*X|V}Ba88jBC(KnF7` zw163g_o=B1w^31kTiIge;U!~#*SzfE)-7vnlsRF690+}m$Qy9J_QK6NCJSP+bFu2R z6Ld9yEPyxNjl*?aPfDG`rMD`pXVlBGFkp5T=6%3{-d<>iqzd(Tago*dR*`JSll6F?q*Ytu>IjE&C=zxQcA$ zw%3o@xLVM+Jnt5FE9@l~@B~S1D!j!(Ms0drg=m2QW)ibymDY&aC>le8Tz0 zvlwaVfk5_TsVW6>4+G5Lv>N%Y>D%E@;^|k`(dQ3e^@cUOZRh@R%|G>$p0L6QeU+e4 zXW$1~+ZLK#i;q#&TW-k0?l)y8B@JHUXdUxKn%Qp%8v0^ z0RIDI;t*-fH)k>D;u9>|*|SIb*x%scREf_H62611v)a4$ijGO%$uvQL4$z0DNNDJ9 zsUD2vJz2YupSP#=MpOk`p+V0X!2KYtXWR}Z=f#hkd>#bDT4o^Bn*PP5T;A?1W0p5{ zmT6GD0J5C0OGU2>np5Q^O3Asw|@`a zRtL8P-i^x-QmjJ;!8-|kB=8i5ho%LHKK%g)e*~A5>dv6#4&R(W0Z)giJ=D!K4#S zO6AY3gFB-02QD{M;6!ReFFAAM&oR$|BRJmaKn3jMxj#h0mlepJ#E`vyI`bVMI7dDL ziO%eZ7ss{FDp4-xq(J1$!^v4+{1ZSn&?vksPr9X8{stCw{WE0}qhyN0X9 zpYxESI0Bte66#jWuKTx6U?RnM-9vh}c|+HLrP~}C$veWyN7=4yxsnVB(YIuUP2dSB zqf^0gQ6tlH_&Vjd1=FKo=}~2G=^z}=;n{BXg$!Et?-q+&Bz3goeiv;lZefqqQ{ED* zkUvlsxR7H^cSU;ZQ9?KJW^5gW4(yFME+f=@;%3lu_A3RX zkY%fbk@;uyn3;W<0CMA_y6xy43jh(EuLh>Z*qtw|d_NSi;0AVfL)EDpqx^)%ohiGNGJ9EJROL)M6}rjW-|alktz)d|zvQaEp>O^U zg5xlZo$jkuQJ(+7X*sJjvZVhwX4DffUT(;o}<>;t)*)RYlPZpOkkQWjFEhp|6KUW^P+g>+S z{57POB}~9fShn zadfy}R{jC))UA|17s^A0=3dIjuW0g>-E(9RC3Nk50TKrAsNp_qRfa8LStq z1;|Q5q1#eU5@@>9X8Cn-e8qiL`Tc3Xv4?QQoTJ^!wQ3nmsWRD*x%!QLEogBOaUF z$@KDB+;wg&iPPzgUe};##nob*f?#m;z&%a{rJlv1v-NDb``kh!@&FN76or|sqh)q) z-d~XO<6g;4m;al40+g=Yy&^qm>4e2_*)|ESOU+pyxLd)jM~>GTx@zeZCLwPQKeXU} zoq#gw3$5JiYWQQD%e%8fjNyZP<@a?e^plfzdKSCd77ZivpXIR`t%LD_~*$1yzce=oBcb*h$j zJ|*7{+a@I5CGsOgGG?j4_e5d*@RV>TF+7RW*5e%XG4p6ql_NK^`69+1Uv*4_3Q#HoFZTw%{W%x=}Cw{W&5ji1{@G-R$RCPmsC2GDiZ(U;xI5Slui5|UfvVo9IO z*?zxRsYP99TBsH{{^`uzfz{^DbN9J~&L4MIfo^XKe}THnQ^8SD9qAmokr224LUKn_ zBva26(lseJP3&S|G(J(p+?2*$j9EO^VKFGLp@Ae_ zWwj0f#-cW?S?$_U5uA3X8tZ2Q|ASDKH%-z%x&YkC?payok{ zcWzSLsd6r(re|mw1F9 z)7v(sJ~|Hj;=zRpZP)hk{?Ijba zjmGfRAHnxO&9u3Khl#c3=36J*pKutq;Y{@ommDx6W#r_c`1ywnF__uYh$&slUr<|m zw(}LWwr&!6w7u{@UyUXeR3H#HC~qG;eBXEHh0oXuf)3@muEY(%dDc%#FbcpFJK^-L z)iqx+U!WL|!jJkcEC)c+kHqj}$U6BxgU*GBPh`&0=NR3c;)Qo!vEjW;G$YC}0WM4( zJ)8g$uV73w!(UjBa|y~`U;I&clAQ#Rk*3`R|N1glG*IL6iGjOsO(b_nAt@3vnn3DU zPTp*n9df>2v@REE#-Z7VX3Pj-Ky>>Qt8R-93Tsue6wNWw(tRlZMDBcigJu*)x6Zj- zDrMhA0na_BzwUGUJM?pegdUDngCp!uarw#M`Wq^34BTvY9nGmp^}gvare%G{CFx|JpV=0#moW)!|6 zoSO14=i2a##xsp`I>_RRs1>41My)Q~#9k0v1X;|Jj4G9CYR30V)>YU(_oU;#h2Ti2 zqK!yh7|TN}xnzu!j_}5ymt@=lP1+CjDi$NPLRhLLRBY{NgLU%JRp0bevMytv*j=QW z8F(v1*mL(mTtZ6@6*uKYN-isM#)ms+ZbxU1|Dw$2lt}z;w|gtK-|u9DkGSnnjq2`h z5u{JC0>NRTQ^+AnBlFqh>%ees>eGQ|_~MUs#za}j^<31^I>nQGUT6njea&30mLk6w zU`F+_=R@dMC`Urn67*c9;=C9PxGl`+?y(>9CC?d*vl#(mKHiik4 zE=0E0VIG5604J>sq@UODN&UNDPt^lSjBt z%Aw{CB!YLvQ&u`I6Ggzw%!{6+%n~u&9rma7I%@PBI#vNDAciC3H{L`1_tG~RGqz}I zndv#w)us|I*>OR)Ic#H?(|5k|i3ya82dNUH81KhS4gkH_;8qvPzcxcowOPLQUjnpCeRIZ%sfKpQ-|4IbXOk@wiUugh-1=Jw%pp1-A| z-bIDMI;4|``xK&+ImFWRnfiT6t4_)vg}_=!{@{QY6YHiLNu4~;WX-QUU(eDnO^~e6 zFU~ut$A(=((XSY5!bxXTjD95?YUgr8+0_}qglu=^De|_9wXbMfzLhP0?@LQ%_^#2i zN^84Q8#6r*XQ@CP(j*do#BF~VzW>~h*W5nDSfw<26gP97xA}U$xR2t?-`o7LRamE- zKOz*7Xe72hy4OXJsD)O1SAS@|sc|h1(@90S!j}+2v%+Ugw+5b#xBCqhWDc-od7v@a znh_S~4u;#@^{_DyM~qaJjz9NqbG=%Ab7lGBkAMhLiS!tv_Q`-aV5I$Nt13UjV~ZYe zH7yAhDZe=qns%j1ZNb6^$;f)X1Frx+@(;=^J`*HE}5DgTPdrw$Jy^&VU-= z!~w`j=1Lr}lIjEhrmc;1ReQ>jlnXhB*=X7f+dA4TwIq>{p&2b+oV3zD17`zm)kBb$ zGs$_y=73y9Ql<9X=L=c>$j2bp1iL@^ir7CorK~w)h0%=hK<7E3SWcv-TSIFy z1PiOB9#cy96C1uV>dLk^BVPw8d{&N@yXJ%97BS#>iZ|=av78$H=Dhw!)NR6sPJutrx~-Izgyz>>0mQ<96(@33VfZ^SG8q{TQiLY`zlT z0UlM#J*wwD_LZxHT-KNjyRjks0a9EH?FiGe>a8W* zhgk%-5^da|Za?QgB;F@$G4P&Ij=N334%G{Sq@mpeQ<7_Cv5aZeM~=nD{@&R~%cHa& zE2VBD_scCb2KPmOO!20pL2{a*ReADk9(uMVV`NYkkL)C-m1VF_#UW7@Eoi8xl!zG& zJia?R$oT+6oP{}kv0sB%;IGY8lQAx4+QW#97WtRQBy_FYCwjuEfBbw3%Rg{-EpG;iPI+mu7(_@S_9&uQi)3SWz8+R-)lYO)FEz!|X5Q&%w+bOU4_2XhaG>`emk zgbVS*x!s>pi**ssEU##ddM90GOc?Aps#LI+H$Inh2~xzCM#2%iY~#|;3Z}9&f`a?aMafd zj}m!I0YV8un2Mez55h1dS3qg&Eabf)xrkyZ21M@6krpmFQ|0Y-{we-+OP<_@HlhG& zGShfF7fzGUNffYLJ7h)jKSXmcJR%rysh9`kV)Zur42%m9$!MX0>$&#}TkH#4f{6mxm~uT>LYy!ooc5_g z%3`G4ICmIvtQ2e(;X8+H!nuBO+U{Tn#*Q9xRJjkp-F~(jO{`!So>n_S=jUtmbTZf* z);oM7-Ol0cMp}PV7mA!I%8?&?&M&-t7=3qPR@wBmXCzsrQfmmv<|xonVN7go58Z@S z30>Tj&FPh^@Q2Gw8W&x{wvFd$2#adrV!3*HT}|Vu2Q`(npC{2le`XSE$;g0O8;lb; zvW?H%Hpq2Y?0RR=L&cts7K;Rof&j2~F9;fBb)73Oy=62uo9=1t8FxbEnMlVQYxLRt z93b0S)BYQQZp)4-ZsAkCQoWsJRW;mOP_HUJ_c*1zam}d`!tWkb_`Pg z%v_uqw0(O?MQm?RH_UyqY7R@z{S#^)WQ*175>JJrW>#og%q@-59bP;PafrAwum1ah z?V|<9q=ID0<61U@X)$+w;q;xnoo=FXnqF9JI_`~M=|uZ9CO2x|jaGIKY){dJ6yEAR z5rnXeAXyJUSzWFczC1G0W(pZM^ZN%>{?V_5ikxgi>UWhEnszzorDl|pXFpH&e^P+S zyZid*eEUv0UA-3OS}Zqb^!kWa^1!%2_bT>*Kz#I!CH5$hv;!dWhITm>FBb?=7h!a# zGpN+US;JdMvV)LvqV6r1ym+*t$=NV&Q(uq|De_yg#L4D4hKYq$*P5a}B#G~0Kc}dq zKWKyhiBG79*k6&Oxw{VYjc{VVgl}t`@;}$OP9_5uoS?0erWeNCOx`W*+!tJIrY*Gk zP(?d-p;pP+4&>tq@{an6gvmQ})5r`-w0j}zJ`jb~n=w-4>HNX4SGEe($e9WQePLJw zld5F^#-PDR+{J3K?7Lk4jw(a;2<6C^I|(M71%o6U{>rop7XS>@GM3KQhvrrusi>dF(?btV){!jjBqAQkMS+cqXEc8QuRcsI8h&3t}il|9Pi21nA;h&Xq z;N24M?J2z>m$N7gff-hPb>#mGs&6#oa1h~yzAE_N!bjg!DNf+-@wT1&XP`8k+U=p zC$8Vr{2L(Xc~dVX+)Mlx;FYx~ixVrs+^*5+!-Y&2%gA}~i0I&;2tZF3Dk5$XD|JNE z(AJQBoCPbrn6k-K82rapNpLuOOP0nQ%bb|lu}A=S0e7{NY2p3PrK3aOv7x8tbS)$; z)-i4*M7~n09o#I`vCJJLFMsVuJ|XJ;Fm`O#Bl6!=RCmH_kZMJqRBSlliE>H>rMN^c zG;uLgWa-oCoGMHVfiv80nLiL0F>LUj7HJDj`&3v%M56si3nvMgU^*S(ws|xNUrn~g zX9T9UhvXyD{S?QPV#q`M5)V~tT(r2gkwnn-TCSdLld|z@wui%cbAN zzHS%wb0T(UA8k;4!j(S`{+r$qw6FSy3!atA)9sdxcO8qQIH-``ew0m zTUBaRGUwmQC>?WCYRC-dQW>OJ76QA@pIyB8_Vgx3YUf_88$o>{R`egiY509eh)*m> zFDNG^^V5oQ*w5AxtIj1qC0To}2DMs09z{_o*U!w%bvx<9s&}*AY$e((25CuNoH{-0 zZ`xw!j~pp`-U-{H+a{lrjiMv@UJfnkdFWj@$$*-Z9c3DjWyk|omIGJ1R;TMWYnm8va3AyzI39Og(yj%E3Hdzc%_+*bQ^i`B<=SmA1JnBg$gnh!r-*1 zHw^eGy_o*JOWIBCp9)^naXV1@2Bxw=Is3f@j_g|(ukQSjB!>>VXIM#Y8LwmU3F`X#7eyqqI9*$y4&jMS0p zsG2OZcE6vr`&n8?0Y#)$XIhUPxJaILq#OpWb>`cQSVubw4SV{13F0@nNyakRN}d_tZ)Dy8X}n6wpX%w4)T>emaYgd`Os;_KfIL##lOqiRac@jm{z$2Bj4in_6~egCHZNl(|1`s?_Uqj3BuVGaSd z3>J_hdU0XvbgM2du%Uhj_<{vZ6$P3kT}N-$*qTev;%j{(?#YKNT0#`cuV|!Q{pqx$ z@%!Mq5f{x|x;#tnTs-_(alh@uIJj{W2`Bty`xOS44=q&EB}S)*yJHM(jkBT~oY3qB zq~u$#f8xUnaLQo6oYMJj$OU1J(sD_EGP}wBfJr-UgvZ>aoKR>vzOhX--LJMimF!)+ zBUgncHu7$v$+eMsm= zSG~0MnCm|I7F`uM5^ft`;I>+|G}F#a0;l}IlhN_|4^zwb*{>6zU;li1(p#dAGQA~|xJBxxvHdf^+fh3>s&COZm@ z%K>@2Fy{#bDYBV-!cl$%JkHhe#?CL9*B$saitPSrZ&c*5`yguR?K`3faaFzLJ!gA> z42xdq=#z^K+fRKGJw)qhM=rs@iiIsas&&<|@OAKda&|%gfZYch$=rX~D{&x~O=iTt zX`Q4^_mWeT$JLB_WHWuv128fl%n*Ge1ec42Bw^=vs7dO-JN+(lm`p#MA0RI#uN!Bz za%9cMDY0GFQm0+J^!@u8gT34c7r&uhm+0Yr$hLvppsp2|!8h-;TY80u* z4#UpRyQOuF2H*XMlwKK^h{E4)8zKPi99O(0O)KVlB|$z+I(B*HguBifp2hn9-rf&SbTI;?JVUtlS@x7 znGY)U=v(*nybU&>sX0*bF-6kRU%Nu&>%=kAUL&!`G8G#sr*p%sE|J&E54i$8sE~vk zrNd>b?fi{Yv`Y50$#ZYxxZ_F*R>TPyK@S_aEsq)jsvfG9yz?#L4?{-zhPL<9(u#P~ zV61@$@ee(~YHj5Wa9If|#8m6jl}E2rA8ez1Vm+c&!Q*~p&GflRAwFy~=hr`4WM116 zN%4A20)Hcboq80BDjEGdtYMiedvJ2wF5_&VfNZyQtJ6L-Sw6zJp!}wb3NiMuhLW+Yb}|e-}sNtUFkye6iPNI0`#dYK~T0g*@P!&Eqcr{p=j#S9iZEw_EO>uD3WyKpYyCU3UDJS;77XsY&j1lJ920} zRoNU$Q$CyKUX<%1T)yPgu^MJsN?ELF+rytMIG-EbzB zgVJN~`aM6tcdE+G$@zLTPBQ4}w8RxQB25~-4988`0b^E20Jfl|1 zKNBDKa+_!mc2Aa*lnFzxZ~o>0cq1C4CHz=`mB4duV7dR%zV!Fd@4*X)*Wc`4pHhVI zpAD8|nVQdfDtYV@=QtF;=XOYmd8Mh--q)=YithrCl7yW`h4RpMG*s>@Qa>3s_-c}E zl}<3uR6D-qAl~rfZ5n7?=`N&q3#uvE+D`rYOGiscmqas->#Q#*o+H5L2^$QUGzN~0 zZO=>@-SGsq5hiC-)WJ$W{X;^#(@W*HZ6YK8gt3E~2k1S75&PDEMj4_}jx0}$z6|-d zE_3-SFSCuDeC@Q|HOnICJH%U&2ntc!)5J?q817npSm+gavM-=^{qRV5@EmtKf874& ztTE}daS%9=CAXaL{l1<8gqu+F^kKxqJ})X%CKL=pVNiwXk;Gfxogc}T_$??l19-}& zm?qCV6;2b~gCj1mhcJ4;frrxUnDflcW?OK%3*}xXcPZ-N;TO1c9+-BKo5V^7&&w1! zwoJw0KS#}f`66=^nn@_uZP;1Wc-nzpuulKsmS|)JkpX+s6r~CBK$|>i!)x&%S5jyY z$&=bk;4#B)N@f_C>dv3pwd=(>-tyV9CzGvJrj^!bbrbLOpJX$9y<0a)0<5vo_pt_t zRZaz;*Sl0~ZNESmoyht58y2+m_2dnrHP8E{MOv%l)XwPDJK<&wLJFhC zPef8#%(@Le`NGs3E|@pz-rM?7%$`d~@65{GwKnWzl4!6VFl|~(ulJf}^zb9YMml!z z{9b#y@9O7?2eK4hyGOjT+WGp+l`OL3{H8Lj&d4B{u4b5 z^|aE+i6dRIvvYH25DpFw8?lHJb&ibfyFJqfHP0d#Y`lJ-9Y5(m?_7EJWRK;^o<;l5 z(hor_0LMj5k<`zquhU#Z%vG+9&;;Njp~Jyq$D6EQaKeBs_Xb(2Gn}$d@_6W3fwd>W zxLhr;`|u(~4{Lxjc@k+l1A`(tx6m%PX0?8!04d|Q9E%Oq41+N42?15(1N4W{Xil$n zE+$ErB1`0TqC&=C(;UMjPc*kbY8MgNB(dh7BMu+~c!L?=E!0bjGN-in?L(!*(Nft| zp(b>1Sb`{QWBTiRiTnY)YOfXs$1!dH%;OtT`XsTLD)7%l){9WqXSb5c_{O+H55|(( zexIK{v8330-#H`0fLP#p>fG{pZu9WG-!$x#Y3t%uvGds{M|CYbKbO_j?jUra zu8J|r=G%Qh9Gl;5N3Lr!gqo<<|CndScuD=pzWU1=KMNkY0ZinT_!Q&pxMEs}gV1>I z&ycfKRBuaK$XbL3Kj*T*Wuiy(bdXZXN1s|cB3Pt13a_&p6rA6sFagG_$~e*V&DJRL zpUM3UGxLETaTeDE_xOfP@eo%iPZfw`jf!LiRmDLtYPES&^AJ23lQjVhl42oXlS0BTD=pI;d2Nz3)c6;LW>1m+H`= zVr+Nuj5}Y2{^4}^x{J7*X_Gzu#{mE~NRGrPHZ(yBo9f$UL4Fm(1wl!8Vlip$YHv9( z=E`M@O5wDo5pM0O_T1w}9vT#ScgP05*u|M=Tt4^d4y)OMwDiMR@!Ta8q{+S-#=Z<&kU;|pbRtN5mWXm6`Wf4x- zM1{+hNQc9@{FvrQ>;f{Yev>NL-N zxx^`8LMu$}cD=jO5_`r&%-hI55?~vvbJ0;~}YY?OE6Pe7S;UU>?_ z)rrx?Xwoc~(h!R}@X#YZufUSUHW9vv7P*JF!{BdHyN&W_)lU(e=JPNwg85iA zqnZ(M#FL$i-3TuIpc<6%FHKn?D}7xT_2#tcjr>_nTHBVuSDEvNEK!-Tnf4K&HoJ%M zDcqmi+=bY){Qc{dd*IBQUrRi{yIOw#61xHQuXUDBNOqbCz@>J3PazgaXKHta1z>); z&$%w1J3J|%+XmU#s4;QL1dhX#rm02j;XgtH$H{ZIk0vgB>FDixmXUOCrGV1I3U&|_ z(?A~6z?v>jh?CfSj#)ZZaM-DPW7rif=)6-DfG!Q z=5**e7lrs(_u_2i1yNM9Vi(4W*zZ&`UiUr8Q!}BvnLC=+Q*8s@@HzH8Kdn3yoHLkAG4TY5yna_k&e;U^n*8k3anWKI^{_`unxFlIh0ep+e@}mgd>Hfli>v z^XI{am?Eog7+cJhWN*A}>0~I>Lfp9|ozf-UAl)G$rIdh_ zNC`uCNSCD2-AG8o(5-Yg3`2K!$9w$!Uq0|@;JVJ4nSJ(N`(Eq$3XJ_fC_xKZp@Xin zg`@6tT_RMQdVLQq9uVI-Lx1Ap7k+!D(0LPZUoub)!&g-k7+Dvc6~0%L45!frj{G- zhR`kHn62A7Lef_1HrFm4TZ5Dbj#~y@BL7U+R6d^a*y340DW@q1`qZ91~QY82rJIFzD=TE?M?%~U`b8GiR{ zG;>-KD7qh|?CKP}wjdB?uwa`Kz+B|cq^I8L??daP`$LWZNaEq46!J+%oBnxll~ntV z=ED1uP=(?b7cO|35q%nc)9T?}#@OmZ(C9Uqa{UqGoCGQ(m0W9+p-dg7lrw6c@B4t~ zw_IhwQ!|MiiUUTt98VL7qZAA9@FAWUpBKW`&=dY7+6OXaL($It_eM`<=19I=NM@6S z3xS?vpC=^A9{XNysb9=GR$jcr7@eVGhXG$7AOQz^>s9L#U6E$QX1`xv?os?s{;u5Z zpWH8`DD)Rjk_}!h3Ba47E*U_GK&wq-zQXahToa8sygOk(MbN5T!hd>@F)PTrj&TkQu z_dE2<8~R^Zla(FY@vJ!tX1!~U{2}%AGapV59OV3HUHX3SFs^>7H}A*xcWKyV7HlzT z-jF#+>TnH6TfIBDKj+m0$bVLBU`DZ7~`i@J=F2$}QH!6Q?Y$#1#?tch<4i`^Q=LEKlMf6l3Ads)c!zk`i}sS5t5AcJInv zlHb{&x8H8qx6NuH3*O|^&lDP-$8J$mx#q>xsZ)0XOXMO3ydq1p!0M<#5Nz)ZRqqai z+hmlo{#pV<`o4%v8G1;G{yfOImj4)GY}tSP;fptcTo3KNr2y^y zBD^(pa19=?6nR<%xKR0jL->GS`}`5f*uAGmy6%Kw9%Ty8mMtm?K*cftwK^ulb&sRJ zU0uNBiwM(TtdIU%`occic2ErPGM8q^vEHc<$ONYoc``jVzu_v%NfWG>;|nq&cvg17 zsjYUiqeJQ9`v?Cw%XYrv6zkaHu=l)Y`nJyWOt$lAeee;t!7LYR`gkRpT%QH0EA@8J z?=jK%F^&59NA{%DGPUh@c1?8B2Yhr3!am0*H$U%Jr((bS<}pS&#oXb_%t3X>r#>*# zOz3$89$;=O5TjwveAj|+D>bJ!TFi-2d5JjTfbqma>Fxv=O4jiwUTE9l4pX#J0!a2-D)m|O%l&RtZqOL>_Q1l1a>R+q@#Xe@}>zEk{O3QsAl!SVY5lGr1t zF**9fh*53_i;2G0nqtOFzW=&X>at-1y1?3XM!0{CwE_}pppBOCa9C^pO)=@^r}B56 zU-wm#gDt0E+)`_l#{(hh6m#jg_tq9%lyURd{?Duvj$r7W*%1JL{40>)3jL7%5&Lf! zd=h){5_@yHNMi!bY=x~!SfdAq`LH53WozcbA2w*CLIMpCiRZ+Xb1tg;tdqNr=bs9W z*y1|8mD0|qQrqpb&-IcqUSp(<+u1C0G2>lOhwu_v^K3w{!P1cJTipG(PQ z**AVgL8{fS@akFt4OqnNW>fj28NtVU+S;ljr)gs3$vS!uBTUu6!8rT?9$vA0W7JQ(prM;^`r?B06WA_`@Eb0DV8LU%wtLL;y+%bOMGH!pFl6;!-i+BEZ z!`ii=8zAt_YSh!rjJWrEV5Ux~&{t<{PQ><0b1v__n{OvKPeT(fyWV*>S!r#^X))tXzjRO>0~Sz5Szw zb|f7naC-%^Drmu9cm_R9r2};^0SyasvmjL$@HPI{qzJM0z0a#hB2(iJVfyfL&XvWS{P)u3@|jI6v1Lb${nmShA@z> zXeS=(;r&Zd^pB3`%Ue%ty5r#s75=Qu{vT!n0&#%24Vc~c8cWc)(=ShZa2{6mK)5Rp zZ7bf}k?p$}e(5}JD|r_ubcKWoAEpj+31eP)qm=RH=;^&lQl=Yv6^z?>)9x+d*T{40 zSXel}uoQufeQln$^&@n2V*KOQWZ}CqG3gTOovF6G{ZHk(#d`y-CQEx*1}F?%_xFG# zdj;pJshuXOu^pI4>B_WrBCun0xEVts3uUg*}R=RHs6$wUB^922F zrN)|04`zp-u*)YRS%qy8%qmI4O|ZuDw0pe*MnuEFb?a&Iwe4muk_Fu#I$1Z?sSmkO zyooCra({tq49yS$1oWHSEv$kT!3jy<=3ooaQ9A@}A}<7O`IfLM68#`#!k_;-rg*MV zVNK{kNyohfCq?EvmMZPk7gPx9^_HdPSSIBuE`@WaZHpR zl;@F-rz}gqz7DUMY?fa75?5jn7p#sVit?-W(lNJgfLnx(R(%7K?=R30E~dK`{A*BAEYNvG>%STF3Z)J zm7mi@g_6|LD|lwH)D5@;BC%>Rk*JtMS38qCTGLk^OF1Arf)69 z8Aaas3(Q@o-Pn1#hUKd7V}m!S;@rr48kw9WfbI$~o%j-Cx1{I4l3P%4x}Xma#gV$i zl8Y$^@95pE%adbpzl+Qy=7d^-|4T2 zx=AOK#+ahQ7@mjf4s)H0O#Hcm)8)BD9nP-W_#y28KF=2%do@$0YvcYs+H~W<8yWYW zMBlvgmX#*HNG@8QZM*@Cd#pBwW5(J9vi?is1lMYnRi;fjRkQ)zNF_A{?30D>f2rsC zEqdgK5xb;)2?c6^<8bq(XVXXm7hc{PD5FxfnbL;DAlckp8`zmqnp`aZNNRF}2L4TfoE1hacR~yEg@4lgHMEi|z~LZ}EURU-54YbT zm6CLFT#2O>@ZZCbNr_m@JAWS}XYUP#O6+xqT)cP@tsWXRh>sq-8fU-=)0S9WTmwP0 zhzXM^3~1{@y$)s`dkWt+6(skFRxVZjx>Lg$Q64_oIFvizSU#7GW{Dekiwi4ZoA9q^nYK4LLf2QN#G5kI4 zW;tb+(N5%#+pYzl;@8Qn+MXy31^zSgT=Pcr7z7-vOY579Gt4z`3%SE3`kDu_S_(V* zH?!=kI@a#uW5Lzqz z(>?77cu2B3t_(V^4tsDUZ+^iMSE6SHQ6jxp-{5Y5?c87Fl?4RLgwxHcDHm9O7m7I> z$i7tKqP)Jhr`(CJn?_E9Nbt~tS->N7SH9f3K?e{IdzRnx%8zS zUxtQ?1Q3>1)3_T^v%TuIiOhp8%CX*-L<2Q>r3D8*b4_h2o{wy%TU(3G>dLXPz?r-Px^UXJK z+_cK!0-#KNlf}P-rr8?1L|x{^=$U#$FoiaBFfsv^l(}GBZ0{CYk3~~Ea^8`3lot{J z3ZhP@Z);qo{xfA|N-Y?#!~1)@JgmIT7#O4**G1JebIxoFc)0CY7Ok2UjqR*vsKbd2 z@yflgy8y3TmuH`;uAG;5K-1+0Ot^>RzZffTNv0^V?1b#-6}EJ4Hm8E2G$qiy#ij9H zpEKXRkQs=nJ*d`x3}K2x+u9jc{`R4CY7*Xh>yxgcdw|bRvyE=OQ={O#Knu)bqzIW_p zH4SpX^h-Z+1zdgM0zlzW+RS4Keq{&-H}+czo^wyB2AmJA$8~iUS;YcAvU4 z-!s93xcHZ{Xa`8C-T_e~c*!mIjb#~u50XyhY^IhDt|C2so3v1Bd zQ)A_xq1CVnnIJ$9a^9JMzDnRWcU#gRL%FfVxVbnm5Y&D!xB(`5|CtIosJ1i0q<3*? znfx2C^G#p_zB2W0==8SfN25A6k!h)K8S4d*P?3psAYQ8hre@exi!r+0N!f8===Z$7=CI-HqX9+o zH|)&ZX==X<-nMKeTFgX;>&T>!`HYH3JLbHp7b-TCQ%~0Zc+h_B3<(W-PMs2+*y9uZ z5l9RoCGbV|Cr8&*UbE@Awppl?{Y>J)SsFv@af~@)A%fj$s}460{%&&N3jc+Y(fG4` z@{aby6S**-Cb?omXSK`f;0O+6irj|<8=y`Mdo~9Uq%QDFRdicaZFp%cn%5SR?VMwn ztD+A#NP9+uzz@G+AybCN#(&cFemyxYB2{4|uE;oTc->JQ=2%sICM&m1jyEW;M}gis z)wH-+e=J4dPE0WA-U zna6)OUh*zJY|Lj{;l(&oCksc@)h@V!H@XLtjz8XaMa9D9=ufWlMt=>abz0us!P=g> z-#y00w@31}tlh|zt#}H(3Ytl!2`p|4@uYo1F2B2>vmVLE9-w|aQjdAbKftLmcJ87{ z4K=OmbsS2AouXnf_ywPuwyyJHtph1nT_Ji&<9W zod-?5dq&u=-w1GK!GFZ5ML_qJrwElQyX$Oj9trr^2Yhg5=cEelrE&*?A?4_@1ug0{ z%VG!W;mhQ=$CtAzrE~UN0*LRPbgW+ZRsCQDfh2|lW|vv zMGmAG3cGjBe~7W9H9VjS6)=!ijz)uZ%$5wnbj(oqN7IDN~bA-9A zLPi#I+dvtycAs7JfL4Q@RFE5exX2##EFHX9i+SuS6zBI*(&c+|bbgpu zMvZu9=|B4p1zL(yjZ$jN%fe)6#h7Tz&Sjt{sg>wp17U3Ca4LFOi@pov7tC4&R1|En zmJW)>)bT3*gep`QeG&`0l7b;12)kp9WAd$qBg?7NWMu}kT9z4Ov>Nb?RkNJ7$mF2w3(QEIu>bA;;C zG}!kXkGmP3%{re?Xa#wE2`OtK5Of61YTjx-Mx}p~;wHUV`nE-4jnQEiE-vv+{|Hm( zE^kk7VXgTiRL3OU70!xU4B^TJTl^QbzQNcS4;0|t*8-3tLtt`@vR}M+%0ub%SzL&d zi_nkWZHB);d2EdNWYw~Me4p!^Xf^fGoMgc&*u$CNia&;SpM~Ojb12x2L-Btb_dTJY z+LF-6ah#{|Ip^59U`X*cY;llpX{hGKm-RNC=_E81YGv_jI@UQ$eC zkKL|cZOk#=9Z?cL`GPRoHql;h7%_%EaU@!@6bue(tPq={$QvAE_lcX$2*I7UG848? zS@ADnw;37KzenLTjI-T87q}qfR7633)r~NDYy*VJaX~^Izoi4^F#kGY5GBkC4XPDruLOq_jiafl`{0nTen#fISIjB9l{W7I*u?`O$g>waBh@ zU%RsTp`zvZc?FD&6;R^);-W!GOwQbhY669!r6Us%`{`=vBc#D82Vul8$K=+({izbi zfCdq0kUS3Ix;^}b*?{u&ZTbL=4awWRB&KG1=+`Rs{yp!ua?Y{R{cY7yve*y!CDamk zXT|9O;ff{8FhEAUS8J6)cv_M!Ilj`sunAZ=w!PkvU*$RW&Aod-rfE**L%@Yehh<5J z+68Bdc8*i|Zx;#83;6pM+mfIp+e@+W(Tr$uk8Ba|x9e*j)s>}JYtGn`<;)5ckBg&K zk!LCnW3y)Dd=>bhs=qAbbm4V(UxeRgYPeE2TR51IWk~%Z)qNfC;{sIoz!rG&q>^z{ z3)=H>qGXMq^%iuHS`^ga#ctJAOww`yozuC71Ce^P1*kuX15pivQ2o=bpZs2B|ZIVSh-zIt6$m)IvKx6 zOHydiQu5U{Ub$kdtTKp31ahbf5SFdB^hPV(2vlH&$=pz}y6(E}Id>E6~7 z7ZA0CFqbB`gK=vjn1i1ds%RQ*B7Iy5?Z#L{Q+<=R^Py$Tv$ z#O~wu!fgdcGF{iJNP$0>SO4a*dU&N&&<2wlrWnd08CVDFMxsHvcOqlqaFP4dK}h;r zT;ZFRB*Ys>322~rY@B=ni&=`GZO|Y+C14XjHSeo!A_mRfYk&$>>`Z;OEM9G_Z_C-6 z2-weu)<{@5haO3Pz0enyNz{v|D)0Itdy+T>R}(Z8H&Bof+s0{knU0laR|sK2@zFzH z5Lz0x7yXe>N>OqyzL^ia;AwfD$jZCz6L}x&MTJs9{dd;!f_V1cCMi%-BNFMEX7>Gb z<#pFrO(v-o@Z8%q^3%CHW(&QyOQfxFIEzmP;(TOCu~yMSF?jNLy&F7}?DA=h{ac{y zvsc;Ad4exp)a|j=w(JalEc_xd80VLx+w}ix*kBd64tq)npB}b|I<(l-Hf72ftwh-*W+d zO$r^d;wrNU$Sk?m)6_sP+|`$9op>^6N#S6^(iiDywVlGFiV`xJ7pLtetxE(h6N8 z>t514X80Wn&n#0hD*7SbCD*-4OKjw)uI=q!lPclEp-+xoe^lNS&mF+!4;3jX(~CVE zi-w*qA@@k&Vq=Y8U>#zpQaoo@o9)=!$pfK2;W&yinJb9hiD0-FQ2(lwEO`MrXjqUG zyk7E!N`JD3!`?Z()-X&T%CuQYROBh-If!^Gc&J%;yquvw&aL z6yZub*lkB%u)2G$$$kdmNan!0veNUV^oCaw$n&RUHr35KI;gIa$c9js=Vzz^!)R_8<>1);hx{H&X*^ta6v~Qp!Fa zp&g+29AF3-cDA*(UA}4J@|x&-o;`USh01e%AIp*?VN2YClFKeNUwv^ivxf%(%9Q_L z3?(xcXv~m2XC8L;DJ66Va?)Ilvv5H?`fU9G&JSfR#&P@PaiyJaSapR}tU2l$BSl1} z_J-_fO3I1gRFGa8%~<60?(%gADuZA}P$bnl7-7t=9%e~?rd>*JX%OtQW3|w`?Rf1k zvnI^Lt-a-lHvadVNie&!*YGCsw9!xo0`>VbqAD;0cE<0nUM!+-R}|&DTlCgNW7DUm zp^nD22fKc(Bz-QxTe$~fbCdz?Df7!-C@|DY`ON70Zrx>OW~$qlp{kd)y%}>hkG3LL zoaZ;bX@@+>YFi;p*wq=i{;9NOBqO84-@Wnnp9QYDzm`H-N$kWk`?TAL@WzZvJ{@W> zalJP+A%3&Og?Mkvw73bHZ}59)sNKLGqkJ4yO&w9ibIskaZfVzO@v>F$ zTZnb`!;ghe9O_T~Rmpm^ef}LZfBV$%#D^p|reg~uZPa*u4}$z6o=2*RJ*#J;W$Kl* zg~ErPy0<%*jaOT?5k~}Lxa!;LQ}Z1m2uVq_BMT1<&Iz9RNJw6G28wXK}_|yn|6Uz{>%jn9{qjZ$%zkmMYSXt%RPmzB{`kt%zF9wOk z(PfFI+I@43z2Huui{fi%C~3FUCY;-wSBEQ8X~eU%wLm-Qvo0z65!h+N>pFWKusa= zH@$29)?^6mb9O?ETnjP{LfmKj?L-UGn&jxd}i62#?DPRBP|;(A#<~<6%C=Ac~T!q3*##NV4 z^Sxo}^=;Ybz*$@wsql5NyVX_D0E0B)-yNgVz_I6B=Fe?H#Am&;MR6+Czm^^nyk^dl zpT$LEW_Cgcoyo-nwX>mQdADS#LK0MH{aVTKG7=y9uV2^rhS(a@Q?vAINf-I65NX-T z20b-b^IcIeJH|6F4Z2bk>$D`E6ooRZ$wfN6UPOj5s$b5RS{!$IMAVCQ?nWFii+pxc zNAf~QoSXeqw4kjfcqHAK{1;Y^egy9VJZasJ_>}0)HsfvjnHbBv`L!21e`iDM#pksb zHS`B-2uo$4FjAOe%lXq3!DhaaaCW<;?`O-7%eyn-X3N5OMc`ZYLr25$(kuJrdFAC{ z$IZ=6qP|4K7Ap9?)cJke%($BPAI$Btm`bq3uDMPzn2X;G^Mg*%gWLkY`MnRq-nhI` z-Rih9z0%J;sXwuIDY4JCX9pf^VZ`}g=oqaB)w3l=sw*#1?0p-Bik~Mt=ImR}LdaJ9 zt_zL{avv7)-}ofOD6^Wym4pt$C0ZA2Nf!<)v+<18PSGqW3!)2|!sjt{dSi;Mukvu& z^|=Me<{WDRh|ac`t#&e)^!wmD)2<&YebUvw~?2%P}%ac%EmauTbA9j;VHW&_emOuk0CZ$0gi0UR@T172fjS-8QuMt^f4P%y zm>Q8twHmxr89Ik0WaoTR$cIU)y_Z!YoQjql#_W5r%>dpN?mAcxVs!XV4OjRS0TIuf z5d5|w*bXvroZeU`hZsUASOdTC!gA83DGP zOoPr0Q@7J}U#Q@`6IGeNK?ua`h&LF8kWBIt^==nk%Z*AbhTA~eodZX})Ym%nPZ1VbA7p8`lp+Z2eXplE2_xUKvHLjGvB%y5^^xQE-xfh8DD8YOpKS=X z5`QZp!n|X4NKQW6EFXaGGW8%s2Xq5+B7yN;EMnQB?iC$vZ5L=@&hH|>KZ`g3{hhW> z`m0iQ3!PATo5CRDy9=#6U(fOOgQ#ljMB%Xu7P*I2eOYz3iE*;`gtXs3GsGiW|D;i3 zB*jMYxaXttf=jrEx$pux#}bD(f0jA2pgDJkmcGl5V%-g0L* z_!UPvI-4wPajmR>KUBHSfL0p|+WkB{+x313HJ%9tm_1sxL*8f~)*-&x6IMFY6J84N zxcJlEgj=2wpN&}yt}Kh%bvZ!;vVKqqI&B4Ipn|q!wG28$A~NE$c8S`H0^|yI(k}Jw zcUB~4vqd|b!*e{7bHbDEpWpsZpsMTr>cUZU@X+z{kliCJIrHYK8|iDhYgA%>l`G+h z&PTm^NLRh}vmszk7@s0?T|ZR85Bq>F6Ta`+{Mf>ZOu{>g*N4aN&!EbksuEZDYBWRQ zA%cXa!Wbiux`H$fHNqZ8h|g~X6nh{p%EAdX zZKB53Us8P$86(6?R~0)E$S&h$5Jdb#^Y%pxXCjmwW)V~y+M&$JA!Ih{toqDDaeDH3 z$DtwDY5SnoA&NbYbCr$ygboIiv$rHj?9<7saV4#CF6)_uv-TF9?rMUm+e#|vF;NM8 zA`6F!%k+fF0JidJ6j?j{Sn_0C@IwxiZFgua82e2x&*@*ZbmL!}8NY0cMfal^UX`w#u;4JjWNHuCZHc>Q!H*D%nIhxt zTmSVGiPJck9DkpXGeXm5jzwr&rUE^+ZMYQ}vO^{$UbX~l=VQ#rZct6~%l~9BH>&HN z%DP^~pqa1a>5?NnQYWs-l!mX-cN7yqE|0_C5$*^RV+oanz5v%QS!j|tyVQx z!VhMe%1`_bshX`DXjp7|xO3=f2tv+?A{dTy{k;4=hUO(nEiU4nhZjXuHe!cs#oCSO zx69?&EPam#-Pb|hNb&j#DPo=&gH5&w??nEEt8!Zi1CKEgbMZc_j!kh0t1^qrXTdGD4rKT0uVMP z$x367ulABJuCK3a6TgnxWR*V?*V7qJu+^0ucWZfVsVGRff3xeY*kas)u;>m}MnDJ(r@RQLFIc12r?t6}TZ7XCe{gkr>gCj0>M&&)TJlR|h zC=?r4bGjIZkaIq)t~y4a5dkrnW_ZT+3vIC3V!4s`KXd~2>kL9h5wxwyzmz^`3v}J? zOJGx_OEJ2Mgkkac;w)We02L_2?xJFLh1&162%?4C>qUrE)H|t`5ZjX+pVn8w4evSa zQKe+D#OCqK#yO?tx+aZcT~6NKEdi$3qr9+&sRkP$<0IOCpNf!<)@Pd*2iX%-5s z)2LbWN*!RA*!ygT?)15*8bfZ;xr7|#O_hU)ak>E3>r}&K|;JRWH;|kM|*?&Y}FO+)9k|3F(c1`$AHI_0Cy^JL}y* z?$r;AS~o?QRp72(OYde{U=k<8{Hh6O>W&1p)o_b=U2Rlzk5T|wwFdfu?Vw-+V%n%G z%kPi6SMe5-ZR%i$aYn3MJn(*uq~iRSrD?A&Q9{<0=IMd~t9LL|V2MiWqm6&?prB}A zNs3KV?B+HH=IC+4K~;noU*a@^7tcNmG32PwE@XE$qoBkl8(KK7x}^xjlS*eqYuo_g z7*^CS6)jKo*crojyt$EA3Grwitw`RuR^mqESF>TP2MN8>dFcERb)OyFaQ3HyPM>Zh zx4JkT_Jj0BfzoO6JNSKJoW-jecD8b2#&xw3>`k`x$~x^IP<*LH#s+xsqL=Pa@nG~H z_DDsz`zWGZAM3Qwfao#iY-oH;_2sj zm?@?=|EA6brS6Uqk#)k(obytUve>HO32bx_cJ$yHz~kOo1fnd*kE%R2^LfMJ-kzly zacwStlfhbHAbk0Rcw#R%WxIt6XN8o7EH?!s*C?r8YFrq&_V1Pk$;m+Zb}FtZ@!^H65*V6)$<%W{5ZBpf>);SW{L^7)@U8V;A% zgmQ&JGAcPuloM25JEZ44nwuz-WZ7>naU}_DH&4hZ6_?m%w6cG9d@4R#kp;bYqrEFO zmivY#kv*-Aw2CWN9~G|mjxeW|J!m$nfmi9+ z@2yR1Vn!|WL&>5a$Mw?Ak#Ub>B<&}|&jRRNd#d#-(a*;*ElZIqHF7>j(znPCk=BwS1 z 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≥ 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 YcmiYEAgW0J^QM6>(#lfh62`&*2jk=iR{#J2 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_button_01_press.png b/res/screen-density-xhigh/C01-3_button_01_press.png new file mode 100644 index 0000000000000000000000000000000000000000..7575c34ff2b6346b97ff3cbd99fe3c11116f7d51 GIT binary patch literal 13919 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 V@!Wogznl*MKFF%dfI()V{{g~F^xyyh literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_button_02_dim.png b/res/screen-density-xhigh/C01-3_button_02_dim.png new file mode 100644 index 0000000000000000000000000000000000000000..160ea8cff164224218920a570cc0961b7d4489d0 GIT binary patch literal 11006 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_button_02_press.png b/res/screen-density-xhigh/C01-3_button_02_press.png new file mode 100644 index 0000000000000000000000000000000000000000..01a7a09ad1115a87db07ced5023c9cad19f99108 GIT binary patch literal 14438 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 AKL7v# literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_dialer_btn_1line_bg.9.png b/res/screen-density-xhigh/C01-3_dialer_btn_1line_bg.9.png new file mode 100644 index 0000000000000000000000000000000000000000..598b82b40c2a4b60c2346620ebf4af7d893b1a3b GIT binary patch literal 1280 zcmV+b1^@bqP)_936Nk6jtL=zkU)VDP)I0HDwLtf07M zSua6!{j=AjleZszGja3b&*RGv$ngAq(*MEAFX@TJCy_*7x6>EU04gZeE*69oc@54! z3zDfdjRH1ayzyXiX65Urqu0J9y|bT?^u=Y899v+keQchz4qf>xoE%&c6uri&n*Pcv zEO|WEJ~(S|NHE3G(AqV z=+Rjh@;69GH=uNo31n~gBnLprP|tTie)R3g{O6?o{Crk8cg1?ANNsAAnDMS3L|N|y z2xJ1~0u8%Vn*il-BcN%QZax03XXZAGd@J#_1pwTbS``#LC@4n4iTnrLiYbEzYkHcSE$LotBAzMY7^>N!C+PSVu`S%{kEWWC5V+kR-xAhl@n6o$q^ z?F)%#0d)x?sewh>>>-zoTSafcf`)^Z-G_C+K23YG_UH-o+`<>^rfe7BRs*+Oiazc{ zI0?6EzovOWYcqg07{1b)mb6tWK=cJZrH#JiQjKGhY}UfJ0b2HTT?fDw3pJ;zO9rTc z6_;X6xfI+bs(KwX8no=2lzHGEco{r&JXk8grJA2H0K&%sAR+_pFu=M)#is?Nckdbi zzJ)vhyyO55-~bNb01n^)4&VR|-~bNb01n^)4&VR|-~bNbfZYL*=LjIX0^m*N01n^) z4&VR|-~bNb01n^)4&VR|-~bNb01o&+0-pOo>wj+~xAPp)>e{w9RJ=A8jiW7i`0D-Q zfZk~m?ieP%$dOHB(QXw-*T$mr=B{BF8-}vaT)y)wOzsz&eQ)TQB*7!6i5foqHx<5K ze6ZUdO^31aV;8P{ml(ZT&>9e-_19w^1cl;1(UL3{A5FK1>nml`9cn(2JUlq}dyJML zc5;f9BO^S`B4@sXgIz3o$sc+wB7B7kzmpxVryBXg^$te`I3HlNAG{sGwlhnS)cHSZ zJ4aYEVTF@JB-q+V^oAseuU47SClEc9N05!4!uEg-28WDsM6W>y;=@Kf{XLF#KK0ip zXhT~;_)ipU`ccw?4_Rpto)Kg`ASh-VoPo2T!R#|R28XOggV`)-7NVlp)95-}vT>F* zQPFSEGAz^kzCg=zITJY^*vg_|H@Ga%A_LY6X6C8FlB8e^5EdOR0Tr4Q5T2l*F{n8! z3;m6mOz2)X1812%V@s2XZIgjsK$^@6K{J8WUC4~lyPk$<1!S~~GH#)OMrMc>4!2b^QW-8eF^p0000*S0xa-TVWomzKp# z03fITpFlv)M-~7eGjxN&jEr18eLY{gdU|nc!(g0VKAtXa&z%9le;#d$gq!X#DdLw; zpt`YPA9OuU7)dxypb23NseD3Qq%=CQT%YF{jXP-7)d|`9^I{2-lEM-hjYTNp$!3Yy zx$=`D3u5C3FIR#J+^1Xdn%GfG<($LQKI;&u{>3@r&`sW6ICCfcz)PNq}~JRQsd*F}Kva&}?f^*jrG$Z|Y-R zk}w89B`^tE1gL0$!q8cKra&GcU^nFGum%{30(SgwHYb5F^jUTg2(bFV#R$qv1vu%Q zW7Pmxd7xtKNxV8>{s>@j(e0K6W<`NV+GZ|Vz_&)AeUyg01|XpT9vR0*2?B&cfL%W~ zw?FVU8(`2lGE+DduAI~ zDjqIL{rh+r0P<29|G7QB_8+CH8Xc8RYM`PiSL~AyyR{uK z=0Xf>#&q6EYB`C=;)M_6pzj5HcqeY1RC=T zOyc332rc#_MV~veG1eN*sq+1Rc*Iq7tESk8@ET*qUljE)Oo`0Bw;K86Kb?HVa*~E77gvYo;1hHc8WS%}xOYTKQIcBsxYGva zo!o1PWj}~;3in5?qu0CECDz&2xsI&J&<-lzU(QTd1xyB?>9B6lY)EbpIcJHhA_{U$ zmP$UuX{C}ap_QK-Ouib&l+a7Q%8?z3WYX3xtjtfJyywd7ig)|E?b}Sdl+Iz0`O|D- zXh(B9bDQAAkAgCqF|scfDZq+iA!b3c`mub?(ko(}OknMUKavsK%i7AO&h|u@3pEG@ zGo}ubrR${grLze^;H70nWy@vch-1VMJh}9#X-Jg@Lc(;dl=N3dIid`0v}ej@iY%2c zi77*tc*2#xgj!t35m|KUbs56G80S^nuC?}Zk~^~2`ipS6Q$P6vS@Y=i=q=zQ;^X4e)!)^} z<(TMWiUf<~_2l*XMutc7N2ar-P>NzR;#;UK)C>ySXlLnfDbi5V(B!OLvu;^rfoo`e z5oIZBQD}~^w5ipoL|5`ow^X(i(-vb4(hSOTr;%OX4jTpG`O$SvoLe#9w<^qgeuK#=BRG-I<8 zYYp^6g57RtQ`Dp;k{OA48F?I=5T_e41kO|fqu6?v`rFoZd{4b?RsttZ(WqKf=YGk; zSDZA?4HvWcX;|`;V6KJ4%b#8Su;0cT0lDykzTq*Mle zrZ6wlEZMBw3wE&>o-#+9Yd_b$FAEl`l78|0JN9b-IA#^SO1>7voCWE(@e24n+IbRH z%v1`d6OqeM(Tg>B{NX=U8le)VMBXEMKi(v=fKK*KwSDc;aBF8#Cy1^imV*HL1h)a{@CRbPN)jtDHY zL^i-M1wRy;TAhmrMn~k8;a}h<@C&#!Zepq4e&+1OIF2o-^{?cgsRgT6{I$}+_XPw9 zp+Ds^<$S4qS&LV$iYwbW%eeHgsWkBL-tQxrAh;&xrfQhM{F-8)P=uQ#PYds9QuRIf zeuF;n6Qz`J%u(iU*YbUQtjE33HFb{y!5@4=s9nU+F*_^(HYTIT%tah0uxt+ppB z`>J!WrI;yYtDD8ygT*(`+Wqp5#}_s6L{X7rH>sz|)UdnB*~vrEl+k;+kCkL)SCxIP zcdm+IV@_jyxy(2DH$zp-OpwsCslA!e@vQOBnMavvKRkj9uXo$`SidgxcJ^|7AMlqD zdwTNZa=*iG(U1M0084GS9?bbh;MVoL`qcDi@nsroTG}lkLDun=qlDl)aJSN?OMsIx>`YmeY z<>i(CCSDs?AgAT$5bq0&IG+z3B_cNu@okPRf$TPI-ko`Bk$WVupu>xv@=#mb3Cf@T zMw(SvxiIgUr8f4?Nl+aDFV4cuPazCsIU~JXuWUq}q+oZ1yL^CE2)%yyH8I_)H*3$* z9d2`Lv3|Z(i#>Sr^7X}#q6)zvVxMTcR_AY0m9HFM`!w;Vkn@3#Lw78r`uV7nxa=?= zYwdFln{q|ReXD|@%Lhf7)PI75U++fPbEW~lzX`Rlm)pnk@|Q8#q_Mt&zBh_4a%htb z-d8pS^+g_*IYsY!20glS%Y3B&<|&y63r;LW7C>s;G7`u7hPPf;)DPK$BgBYk6Y8UV z>y8EgLj^7FEbn-j7-B`;F%qbelCo!ao5ely)&EZC(Epz8kVDH?7Bo%bFBW8|>!(}F zp452^)y7MC(DCm`*`_p*LI(n8*G*2i993aokK{&Hbl*%709as{2=M z4)aflQ=YC3oEPZ0D{6AaOIuM?O4T)MR8%|Y_e{QUJLG0+-<&%^($0}ERo9h486_&* zIBL9bRQt25n$JPUeLG)mg%QGz!w(V2?~Jq+ZsQ2m?00Sm=U3UcByg3H368~%pgv!U zFFhx%df@#Hl16<~{-W_LjZ@<%b6G{Xs3LHv>#G3ftR}g;K6!tL4m(Iwm<%}-T~WLI z)js-}=Zpv^H^oo+<*jarQx(QJd}S3b;3t&=K3`^hijAL^Tm~mi4mngJ=RYZL7jCEh zuSmDr`@vZFu<9*QE+CO-x03t9)NpM&>Z40H8~w=i)(`}19#J3hEa6N@>oZ*)zJ zTnC%1wVBE*lFvLr6E2PEwrP7r^KU$cxK`{o`)whW6#)0Y{#J{a%^JkDovb5X;5gAqJ+|>bt6?GeMKq@ zLr@VC4+#kh8$JRokl3+8d;=DIib6#zR+sy~89Pa%WZWthAkIivvgUDq=lsvP+2sB^ zI@-IKzYgr`+_nz!)pgLpH-ly}PnxFrbR-ga_K0D;i1m_bzR+#k&xc(1Io!u{yyqv; zOe!Ea|3K5UXAtDDrX3DjR(FpcSHp%I4aZ`=FGsASAD1v|6;Ia|2?DVx1~>rQ3q>JMIiq7sTFOaSFrOhR?|&aY+{ zWJmDxjjvW#Kl=7Qf=<;Nth&6;%5Pm|V`unUyuwNgYb<~2(ml5@eNED>et^1r?J%kl zkj+YV0lHA;9M2rV=hi+J0gs)kv!SW;EL%G#7JlbWuCUDHJFNfp`TJ@zcUm#5p|Eb- zfS?i~*8_vmiR_`}g^h21MCJ&NK+V7puFS+)mMqV)zTwI*A9iX*&QLC|#J23;p?|v;#m7^nn7ez z0Fs6AqA9%F3Gwx*%Ng#__K2003Li*01P|(&j7H=2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz0Gt1WdyD`^fPV*o_5lG1KmY;|fB*y_009U<00Izz00bZa0SNGa z1pN2U{B8k0YacK+$F%-7jzu>QcH7yKJ%8>_NOkG@Po?>H+cGy8=@RQrwSAb zw;JzpM{39OGxd9r0D)j+*plTeOOG!J?aiSIQdSdSFV0(aXa8OJ$1cO3ibZQ;` z4g^A`@EPE@SDIzct2JS2K=5$i!1u5Q1RET-Sv1fGSS_O7@S>Hg{v6AW-GLOC7L_+N z>gDfpS$Ardhabr zl#GNikN-D#UhI9HcW0fw)?Vu*JvPy$AY~y10DwYYPs{v{40lQ=CcJZUJH+iBNc{9{ zUIGBwgZ~K+$jfH}08&#A5a{t^ci#Ztm+roPocbUTr{4=-H;?D801&)bU;zbN95AS0 zRxdOS6JhTSea-2KIn6bbVRRY%LR=)&28mq73-o5)G}_t(tV2bK_^GL|6nZmZ@;9XO zMB7{+Q)50Qz8SgR2>awU+kx2~zipmV-K#z?XqqHK5tC=@NtwyO$SX8CXx3u}`vx|) zMb)E7dHn!t;wBfamslP=;3`5{`4KmY=o^3+JWWOnpo|eHakc~;)uCqYQ#@EK9x5P1 z-jEnZ2dIapYJLXPb?{&XIs6tt5dq*Z>g==yJQe{Q1R{5*0a(FRZWtb5`<{y)uP6iH zeBhd>1-L5#)st3lv;l}XK<8%IrvS{00OI=AZhAm{3xJxSCTj$U$pLY*#JGn5K^WjL z#KRK|#O4BYI%n3(zaQ07?+M){mD{M?%B!FqWlJpLPh@Q^${{$R&-jQ=*72TWp1NpH zNG`Kvlr+`)`4|8cWzgSUdyWmBpsbykkWEEW+KU`^5#qR=oVIRvCae6^0bnB_0(~ni z*2Dr+B7}M0e&jnLaDPTt6o^T7YotNmEdNipuNnK!UFB~3LM{5ekkJqycIf(sGXO~8qxyNVvQHu6h zex+3Lqx$DaT-Ytx5k*3vF+}{pk!vv#&*=?>CzY5nH|~n7TaSP?nU`}okY`=~}Ul^^8Ipw@CZmROySWZzu^B=XW2 ziV)vld|^>ZkuBc)Ugb`;n5GIE6i4kd5lQtu7Z)Aq)ohR#CdqUjZQ!mZuNq*fx2nc( zPr7uTYzQKtjnYPu$Pxr;ayoKo=s}DiCi8mboNT<(G>as1B>1srJp$aB<%VDQ+i3pw zF*!*}BtZ0pd1h(T9*9wgC4&0ocxjVBk^-&i_w*Y|z*DqSI#WL8JO{!R2x&bQp3LDz z7q3Plh4;dokA~v53$}Z=rM6kOxz21!3!K#bORg+71 zc|s+$+!w4?5@CZ)BDCo>>NN$Gm=!hHZ*>fCk~uRs1q*X|QB=hTM#=Q?H;ga5ekIhN zgJo||R;jEgRscyENLe?TpTBogBihRGzse6VA=wiwgP%vdS*1IDxcQLvv$RpGgzHnU z%4~Qxq)M;KtV;K&Q?~ZFtl)E}cDv1W6s5+XfxuG%U1-|G{enG<1&ft3(lQ2P6~)V1 z(MqpU*5Y=ppe~=XlbphD&tQc{zGbT+oqPY-!o{#)toOgNOI>mZVG}to;S%`-lXAa| zzppa8*x=G{Gmu@cI;hk!%Mrd2o6(9^{xqZWR);FZW8mo)@0Ry~_rNE9LVhlOL*ql^ zlRR_d*3S<=D;X&n4UUhEe;l99l|iUT%t`Jc_7HQ3wHAjb!B2#d<;btD`iC_a|@XfZ@w3pG8wVGs_R29xbd+UEAhmjR6%=J6-giEzZZ)CV5 z)QJ(=(qG$qlG&LV-WL8At3pJPus~VG{)9c^<(C(9idKrNc@z03YT^AC*#}}!$RzdT zywn!*!RW(2j{*zCv@Vnp+WIo)JTW=RFnUxJt}2RP9atIa+%^cf^tamxow_VQG$DG9 z%a`g-WKTR!5|%%VNq=})Xe0IVd+!iv-E0S~M)n~~+-t2m!W3j01#RBr5px#Hu&$Y_ zZz&C`#5kTZs{T=Z@nK7KOIdDJa@EFuOb*pD)G}(?>sx3aw+4#j!MWf8Z z)|dq&He}})QasUf z5m&}gAxbN(n5}MjR+}H^YcFViQt?NQ6tpV+O2CmX+$Brs_@bH@mSNy zQo3CJ=?B~~Z4d3nJ7j6Rp|uD*WVf^0Q=w7WKV*q?i~jzjcq_tc<*#p$Lf$i`Rmaxw z+K5j6P-CyCXWb*w-OYGjM`V_yJ8|Jh%X7zerVufkwPweE@dd1^^hs}O>6RGb^pW#| z%fUOW3BDs;xy$drR8;k~x=gxFxgG4TiWJ&XW>>;@;gmiU3yWVU)~vo9U;fcv5`&Km zF15!XL9L&7O%8wjCI(>hQNE zOFT>C8MhhNYyImcj9P6{<-t|dHl3Owhu5QYZwj+#l=@CVbvQ%)Bn9jE8Bz^oP&ow77wDQGofdbDFs;t;Sr*LmmQWqBE$Ba zC)PZvd{5h`12(3#amjm19ZC~V&%OqnH7@Nuu>NYDSEp$2eHd`4e49CKI@q4yo>$xY z)T{L*w6i(P4RgR+C^xZk(HZia0XI8SsGzdac^>ME>Bn5IF|0(q5Wr51wl4$;oYZuf zcGzF2A8RatRuX2^Y;Tw6PnRP-Q9(uL=w)3DVO-4QZN_C973h9iZrW%(Mf_2rysCo2 zrrHba!A%)x(q)prkn#58?Px6{gIL7X%+cHgItN`0KZ9p>dA}~j9-@wz>y`$31~|SA z2TMsjyRf=G?haZGVn6+~MrFGFnln-m=l-|h(&BsBbtZFWCXN6<=lsT5N@VHo-{f@G zGdBi+P(A>F#Q?xx+#L@9AW$3t4jlkMF$Vw`ec##l>i__LxW1MKIC$~rl5sMRHWTW1 zWT0Z^*w3+_^{HB~qqNiQ`b>+8*2BAF;3`S~ssCc#H&#yi(3`C5TiB7Pdq2=xB?W)f zMM}SH?Pvy6nQ8D~kUcjUa-S-50*nhjJTUlBNSoP?*{48X3m4w}ZraELT{zHa(e@SM zy2yF}B;yL(6#G6(m!+=;_`)%xo>HEbo5!LAjlV>-55KOK4;Sf_yb2ieW$yFA2 z@)MnAKXLo|M(H~tm$DB)m>^JQyC3#n#7+0H(qv>7V?S%t!gJ}a{H8I6s0aMjVq=gOTq@5JDO6|;h{my}*2@(F=%%58yXG{4yV z$k_lMoY6b!c|4H!Ps9TEC!taLUqQC|#02-e#*R?z_O=IJB6u@10=XS$hsEZHZ$paqQW2|1E_RQhaHbi9mF%^96o~j;${@S*;Cm%A zFRb`_(MFuBQReeVJyt6*#HHx=kjc5PPS&iDO$WyKN)Tt*8uY^Tgp8iU-+&ibK`gSa8 z0)sC|?-@qE#B)KBf4#VB9F?c=tj1EYS$rjyoNTT4kZI_sNYFSmpNfe7( z!>>%cboHa(i%`hFNy%9DDxcL80_|yh9o5lazhWp2xWn3edUmN}$r{P=4x~sn>=HP^ dINh^3z^V6&5xFJ)=&rPYzP5>0t)@ft{{cc`_~rlr literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_dialer_btn_3line_bg.9.png b/res/screen-density-xhigh/C01-3_dialer_btn_3line_bg.9.png new file mode 100644 index 0000000000000000000000000000000000000000..820ca772fe309e3e205477b4769640f396a8b40b GIT binary patch literal 1290 zcmV+l1@-!gP)tR9jSua}MS&aRi;^{&At28tn=LjvIt2q6&CfFY$xgOY}WsFE~Q5K%)> zTai?1udDuqURJs3Wq(2Mdeh$Y2eeXppqkD*UK_B9!4W}KH7k8G?9RN;%=gXQeXq~A zw}*PMZ%^5lC}&aOOC+B6b#y$J3%tvG+d8%+aV}~Y#*4vV@a4n0{syAbvR?DM?yGo* zZ#nQLY*%qEObB@iLWc-Bq?l%+PfD{~cQ2cZvTdPS5b)+OBb`$J!PH zq~Rz{0*8InBl_t5$~O%ZpSDMCr_RpSKd(im*xti(hOO0g4q4-i zYdrVG#Ipdk?l_foXN47eDxg|ja>#K}aAxEs*&j_W1>N35=;Ct5nd zSr2ITjeuqi$-3EyLPN_tNtp-#;AL&HzqV9BfJ7c}0I|*hAQPMHFF=nxWa4uYF^3Nf zfV)rtz)JxT009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0r;N)=raUR0r+nK#61uI z0T2KI5C8!X009sH0T2KI5C8!X009tyg9kkGhSq~?$(>)_|EA(>TeQ{CYQbl)E1-9p zI;jyFineTPi>}hGhHP7OLEkl+vC))0G`sv8I`@n9zQ=mf)JhJ}YNz=hCVYSQ#%`}Q z9c|^E6ARxTAA5fnYrq)Q;_WnOH~!30va)+?y4PG^sYa^YWPfkdnfLyPvot^q>BtCA zvz1R~d{GXzho$!)YD77wsDR(``S;1rbi_ zEHznLNGwIG-R2FYCjJPkM|vdH9w}}Q*kW+V7)Q)l$ZeVqCr zV5H$ES&x3rQ$wtINwp>gv$WjItlXN|$)e#ExU9e;18W60^Hf`kqFELoe03}ZOz65qtXT%SjGXhduy5RC z!p33_=5l++jwTb&CWBgFo7@S(c7m<5%hb%y`XE*-5&M*^TAd7#L24gXYJ6N7z zlPQ2;HP|xTLlCJ7*$KaD)JvLGCx;AYtI-EzF{hZ(rvQ>~Rl*I;w<_UVo>ghjeyH-2 z%vRf-T~B8hgCJIl$o>rg(vl4h+ZrW2Pi=Vn7n3zA6%p(6ssI2007*qoM6N<$f_qF; AcmMzZ literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_dialer_btn_3line_bg.png b/res/screen-density-xhigh/C01-3_dialer_btn_3line_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..6198e8819439c3ce6c68e3bd11f359c36d1477ab GIT binary patch literal 3706 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_dialer_btn_4line_bg.png b/res/screen-density-xhigh/C01-3_dialer_btn_4line_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..3f5c80e86d50ee199e966f296019316baf8a50e6 GIT binary patch literal 3699 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_dialer_btn_5line_bg.9.png b/res/screen-density-xhigh/C01-3_dialer_btn_5line_bg.9.png new file mode 100644 index 0000000000000000000000000000000000000000..75e5b7cde6dc5e790efc8d0720dea9936d30b4c6 GIT binary patch literal 1200 zcmV;h1W)^kP)~C?Gys8m~95>)o}Nopsi+6MsbcpoyKN)Z`mWiDl9%N@XQY93m4+a#w^Z z_!0aHB!t8rmt61*;1cl<3Tlf$!@RS$<2K&lq^*$38EIr|cK19p?>TdKUZ1bK!5j0L zjdN|&FJ_M~lX=;f&%e}~SaYAXzk90SGN@^q=fmOfYZs%@x8E_%w|W_SGvGLHU=7bC z*oAckX$97G{Z$0Ipz9Yxmem`II+0K;cI8sox*X6Q6>E5gckpfl>$Stf!w0*&yL@9~gRiZv@p8G`nx#_d;d>MLdx~MD0P4NMLXpV8ML@hxat?{Z zQMb0Xt{og4{I$8cDT6I7E%EvJc|JEcCw~_f7Uch#nVG-)Q<>YUVGV~2#sI-dq+D(h zJOL17==tfLJKyi@?C{mq)mE@4=j`k(FBA$qn;ZT~)vONy!AT$&Vl+7n#}MPqA<5x)kxPzZ=2tIL(CHF}`^NItJ4p_NLdC5zXb5`e)} zii;EMD4Jaob5tf?RF}+!o9xCAn&D{U;{}GqLi>|~Hvy?+lB+s95WByrYOJ6}%zl)x zl*!G*5dfEHWMU#-tJS&!6dC|Ux9$cFtE%Ysb;V#w+!I{J#{nWKsDRvf!8t7;sIhyB z&Tb2-W&@fzgu8)Q#{jsM*|B`$)BwZ!QUtFB4SOM^#nVW%1h|#t4%|QhGNTg%rv~WO zSE^y}0?-$+Gkr!}d*%QU{9_4-vh05czy%=y0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY=~AOQXx0h|E;698Q_0uX=z1Rwwb2tWV=5P$##AOHafKmY=~fE}}E0VKO^DsHw# zvt*XRXYg+T^uA9{PV#|7;;1b;YR`MNMK>F}@vvI0-bd&DNxkpIVv&!Hjd90G{L!hg z8(rufThlL_X1G$R{IIgJa-uZ=eeXkqgPg^kUs|o{hW);GYkH%(zE_L)lpv z2-KX-z}Pv0XR}%EBocpyWA@jo!9Ej#Z>YMR_inED`FhaOubO56E&k(IC%>4Uo_>Tx zPEAe8pn0J=WWml6TzfbEt=RqNLY{3!vpx*!@eyx(K%2n%BB&-9MqnHPMA|PjyM$6iwYUjoH>50L=Lmkx zWYWPZ)3V7xKS+fST;qt9g1)G8lp?AH3B_8wO$O3P?T;KR-d>!hH3@P-SD8F1<1 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_dialer_btn_5line_bg.png b/res/screen-density-xhigh/C01-3_dialer_btn_5line_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..88801b3509a6c5ff6af85cc7147efb197daddd55 GIT binary patch literal 3660 zcma);HS*tMZhb{{`)7q{om01&X0V~T*8?$Ik=uAV`3 zW5Pb_dYjM@vYSBS!)TLvK^#PsIx!sii*&|4RO;%uEW>#*IEjg233SGSq;bRx1X~b<>K|O+5>^Q( z=Jo+72^*X^UfgkE0au|43Qst@2|59+fN2s!pj#i+Ey^1GK(Ph;<@`=$*szuO!XeW|D_nwrS3OZHE>( zh<4MM+BZ=xE8$eUh%*+FA~3)+_29IzCU}FRv?c}Ax+`G?CkvI@IO1IB@=?P5yEiTY z;H1sFXNI2;C(JcseFFJ#tbC`L#{-19Xs7rBz%w;&Vc2Mc@(>{asO5!&YE@azdKd+} z@mYKDmU~EU?WEs9xchq{ln`R4FjhZ1fy%cK{;2Utvuh}

UeJUkr-NIPTgcFEiscg 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 VAolEe{l9YswABsNsv&l7{||-g;rRdn literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_dialer_btn_call_bg.9.png b/res/screen-density-xhigh/C01-3_dialer_btn_call_bg.9.png new file mode 100644 index 0000000000000000000000000000000000000000..38a69e6b379675e99feb6c6bd105b10f07e4a368 GIT binary patch literal 1274 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 X5~liU{k-zN;(&&Vu5z7{UD*Et?<5B^ literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_dialer_btn_option_bg.9.png b/res/screen-density-xhigh/C01-3_dialer_btn_option_bg.9.png new file mode 100644 index 0000000000000000000000000000000000000000..795c5135e2e0531f2da8bacdd11f170b53a0f7fe GIT binary patch literal 1164 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_dialer_btn_option_press.png b/res/screen-density-xhigh/C01-3_dialer_btn_option_press.png new file mode 100644 index 0000000000000000000000000000000000000000..76cbd4694e674ec08307efad67178e5e5d0313c6 GIT binary patch literal 3063 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 FV1f_VtB3#q literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_dialer_btn_press.9.png b/res/screen-density-xhigh/C01-3_dialer_btn_press.9.png new file mode 100644 index 0000000000000000000000000000000000000000..549481eae1b5caa430d0f6fedae68d28c5f2ba43 GIT binary patch literal 3846 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_dialer_btn_press.png b/res/screen-density-xhigh/C01-3_dialer_btn_press.png new file mode 100644 index 0000000000000000000000000000000000000000..6dc22bc37e57dd5cdde4381074e893ff9cbd45b9 GIT binary patch literal 6466 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_dialer_icon_01.png b/res/screen-density-xhigh/C01-3_dialer_icon_01.png new file mode 100644 index 0000000000000000000000000000000000000000..5753355233ad4d9c3512d36274dbadb15f10aaf9 GIT binary patch literal 3715 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_dialer_icon_01_press.png b/res/screen-density-xhigh/C01-3_dialer_icon_01_press.png new file mode 100644 index 0000000000000000000000000000000000000000..b79f2c667a16fa863e28fdab63864deaf9b6fefe GIT binary patch literal 3608 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_dialer_icon_clear.png b/res/screen-density-xhigh/C01-3_dialer_icon_clear.png new file mode 100644 index 0000000000000000000000000000000000000000..719cde765a40842a95ce259f8bb9cd85f7997605 GIT binary patch literal 4701 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 AumAu6 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_field_btn_clear.png b/res/screen-density-xhigh/C01-3_field_btn_clear.png new file mode 100644 index 0000000000000000000000000000000000000000..4858fb69b982190df758219c11bd0b083c604ae6 GIT binary patch literal 3279 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 N002ovPDHLkV1iR`9cusp literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_icon_call.png b/res/screen-density-xhigh/C01-3_icon_call.png new file mode 100644 index 0000000000000000000000000000000000000000..01747f5a8d590181c6f8423aa4c62a43c33c6d40 GIT binary patch literal 3592 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 Oo7q^}VhYh`BL4{ibW}M2 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_icon_call_dim.png b/res/screen-density-xhigh/C01-3_icon_call_dim.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0ad66bbf95f138b97b0429d372c317f44700cb GIT binary patch literal 3510 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_icon_call_press.png b/res/screen-density-xhigh/C01-3_icon_call_press.png new file mode 100644 index 0000000000000000000000000000000000000000..7bdf8e8208631db755de528b33e22093b99e2b11 GIT binary patch literal 2410 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_icon_expand_01_press.png b/res/screen-density-xhigh/C01-3_icon_expand_01_press.png new file mode 100644 index 0000000000000000000000000000000000000000..2cdeaa35ed2453fbb889f23bb72f2de76d9e6779 GIT binary patch literal 1356 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 E08=R8RR910 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_icon_message.png b/res/screen-density-xhigh/C01-3_icon_message.png new file mode 100644 index 0000000000000000000000000000000000000000..e53f31a0d119bd659d1a0d04d71f2f592185fb52 GIT binary patch literal 3860 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 LNkvXXu0mjfeTaYl literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_icon_message_press.png b/res/screen-density-xhigh/C01-3_icon_message_press.png new file mode 100644 index 0000000000000000000000000000000000000000..38a11705d292fdd4bb4bed68bc0dd1b70816357b GIT binary patch literal 3694 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 T1G!(b00000NkvXXu0mjf%nJiK literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_keypad_bg.png b/res/screen-density-xhigh/C01-3_keypad_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..edaa63d3921554afbf22ccb2a8a42e6244b71257 GIT binary patch literal 41103 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 G`hNh>h_-?N literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_keypad_bg_h.png b/res/screen-density-xhigh/C01-3_keypad_bg_h.png new file mode 100644 index 0000000000000000000000000000000000000000..7527a6d35619b087f1b4364566ee38d08c8afc73 GIT binary patch literal 66835 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

+ + + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/res/screen-size-normal/IDL_CALL_LOG_VIEWBY_POPUP.xml b/res/screen-size-normal/IDL_CALL_LOG_VIEWBY_POPUP.xml new file mode 100644 index 0000000..b17e8c5 --- /dev/null +++ b/res/screen-size-normal/IDL_CALL_LOG_VIEWBY_POPUP.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + diff --git a/res/screen-size-normal/IDL_DIALER_KEYPAD_PANEL.xml b/res/screen-size-normal/IDL_DIALER_KEYPAD_PANEL.xml new file mode 100644 index 0000000..f6a84fb --- /dev/null +++ b/res/screen-size-normal/IDL_DIALER_KEYPAD_PANEL.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/res/screen-size-normal/IDL_DIAL_FORM.xml b/res/screen-size-normal/IDL_DIAL_FORM.xml new file mode 100644 index 0000000..f931e41 --- /dev/null +++ b/res/screen-size-normal/IDL_DIAL_FORM.xml @@ -0,0 +1,25 @@ + + + + + + 720 +
+ + + + +
+ + +
+
+ + + + + +
+
diff --git a/res/screen-size-normal/IDL_EMERGENCY_DIAL_FORM.xml b/res/screen-size-normal/IDL_EMERGENCY_DIAL_FORM.xml new file mode 100644 index 0000000..3d4d462 --- /dev/null +++ b/res/screen-size-normal/IDL_EMERGENCY_DIAL_FORM.xml @@ -0,0 +1,28 @@ + + + + + 720 +
+ + + + + + + + + + + + + + + +
diff --git a/res/screen-size-normal/IDL_ERROR_MSG_POPUP.xml b/res/screen-size-normal/IDL_ERROR_MSG_POPUP.xml new file mode 100644 index 0000000..7d8ecc6 --- /dev/null +++ b/res/screen-size-normal/IDL_ERROR_MSG_POPUP.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + diff --git a/res/screen-size-normal/IDL_PANEL_DIALER.xml b/res/screen-size-normal/IDL_PANEL_DIALER.xml new file mode 100644 index 0000000..040ac73 --- /dev/null +++ b/res/screen-size-normal/IDL_PANEL_DIALER.xml @@ -0,0 +1,99 @@ + + + + + + 720 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/res/screen-size-normal/IDL_PANEL_LOGS.xml b/res/screen-size-normal/IDL_PANEL_LOGS.xml new file mode 100644 index 0000000..afa94ea --- /dev/null +++ b/res/screen-size-normal/IDL_PANEL_LOGS.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + diff --git a/res/screen-size-normal/IDL_RESTRICTED_CALL_LOG_DETAIL_FORM.xml b/res/screen-size-normal/IDL_RESTRICTED_CALL_LOG_DETAIL_FORM.xml new file mode 100644 index 0000000..9a5e943 --- /dev/null +++ b/res/screen-size-normal/IDL_RESTRICTED_CALL_LOG_DETAIL_FORM.xml @@ -0,0 +1,28 @@ + + + + + + 720 +
+ + + + +
+ + +
+ + + + + + +
diff --git a/res/screen-size-normal/IDL_SETTINGS_ADD_EDIT_REJECT_MSGS_FORM.xml b/res/screen-size-normal/IDL_SETTINGS_ADD_EDIT_REJECT_MSGS_FORM.xml new file mode 100644 index 0000000..15facef --- /dev/null +++ b/res/screen-size-normal/IDL_SETTINGS_ADD_EDIT_REJECT_MSGS_FORM.xml @@ -0,0 +1,26 @@ + + + + + 720 +
+ + + + +
+ + +
+
+ + +
+ + + + + +
diff --git a/res/screen-size-normal/IDL_SETTINGS_ADD_NUMBER_FORM.xml b/res/screen-size-normal/IDL_SETTINGS_ADD_NUMBER_FORM.xml new file mode 100644 index 0000000..1cbdcb7 --- /dev/null +++ b/res/screen-size-normal/IDL_SETTINGS_ADD_NUMBER_FORM.xml @@ -0,0 +1,27 @@ + + + + + + 720 +
+ + + + +
+ + +
+
+ + +
+ + + + + +
diff --git a/res/screen-size-normal/IDL_SETTINGS_AUTO_AREA_CODE_FORM.xml b/res/screen-size-normal/IDL_SETTINGS_AUTO_AREA_CODE_FORM.xml new file mode 100644 index 0000000..c5f0b63 --- /dev/null +++ b/res/screen-size-normal/IDL_SETTINGS_AUTO_AREA_CODE_FORM.xml @@ -0,0 +1,27 @@ + + + + + + 720 +
+ + + + +
+ + +
+
+ + +
+ + + + + +
diff --git a/res/screen-size-normal/IDL_SETTINGS_CALL_ACCESSORY_FORM.xml b/res/screen-size-normal/IDL_SETTINGS_CALL_ACCESSORY_FORM.xml new file mode 100644 index 0000000..7ce05c0 --- /dev/null +++ b/res/screen-size-normal/IDL_SETTINGS_CALL_ACCESSORY_FORM.xml @@ -0,0 +1,23 @@ + + + + + + 720 +
+ + + + +
+ + +
+ + + + + +
diff --git a/res/screen-size-normal/IDL_SETTINGS_CALL_ANSWERING_FORM.xml b/res/screen-size-normal/IDL_SETTINGS_CALL_ANSWERING_FORM.xml new file mode 100644 index 0000000..2225227 --- /dev/null +++ b/res/screen-size-normal/IDL_SETTINGS_CALL_ANSWERING_FORM.xml @@ -0,0 +1,27 @@ + + + + + + 720 +
+ + + + +
+ + +
+
+ + +
+ + + + + +
diff --git a/res/screen-size-normal/IDL_SETTINGS_CALL_FORWARD_WAIT_BARRING_FORM.xml b/res/screen-size-normal/IDL_SETTINGS_CALL_FORWARD_WAIT_BARRING_FORM.xml new file mode 100644 index 0000000..ef000b0 --- /dev/null +++ b/res/screen-size-normal/IDL_SETTINGS_CALL_FORWARD_WAIT_BARRING_FORM.xml @@ -0,0 +1,23 @@ + + + + + + 720 +
+ + + + +
+ + +
+ + + + + +
diff --git a/res/screen-size-normal/IDL_SETTINGS_DELETE_LIST_FORM.xml b/res/screen-size-normal/IDL_SETTINGS_DELETE_LIST_FORM.xml new file mode 100644 index 0000000..84e76fd --- /dev/null +++ b/res/screen-size-normal/IDL_SETTINGS_DELETE_LIST_FORM.xml @@ -0,0 +1,32 @@ + + + + + + 720 +
+ + + + +
+ + +
+
+ + +
+ + + + + + +
diff --git a/res/screen-size-normal/IDL_SETTINGS_FORWARDTO_NUMBER_FORM.xml b/res/screen-size-normal/IDL_SETTINGS_FORWARDTO_NUMBER_FORM.xml new file mode 100644 index 0000000..90b7820 --- /dev/null +++ b/res/screen-size-normal/IDL_SETTINGS_FORWARDTO_NUMBER_FORM.xml @@ -0,0 +1,43 @@ + + + + + + 720 +
+ + + + +
+ + +
+ + + + + + + + + +
diff --git a/res/screen-size-normal/IDL_SETTINGS_MAINMENU_FORM.xml b/res/screen-size-normal/IDL_SETTINGS_MAINMENU_FORM.xml new file mode 100644 index 0000000..638edcd --- /dev/null +++ b/res/screen-size-normal/IDL_SETTINGS_MAINMENU_FORM.xml @@ -0,0 +1,23 @@ + + + + + + 720 +
+ + + + +
+ + +
+ + + + + +
diff --git a/res/screen-size-normal/IDL_SETTINGS_MOREOPTIONS_FORM.xml b/res/screen-size-normal/IDL_SETTINGS_MOREOPTIONS_FORM.xml new file mode 100644 index 0000000..5e55f20 --- /dev/null +++ b/res/screen-size-normal/IDL_SETTINGS_MOREOPTIONS_FORM.xml @@ -0,0 +1,23 @@ + + + + + + 720 +
+ + + + +
+ + +
+ + + + + +
diff --git a/res/screen-size-normal/IDL_SETTINGS_NOREPLY_FORWARDTO_NUMBER_FORM.xml b/res/screen-size-normal/IDL_SETTINGS_NOREPLY_FORWARDTO_NUMBER_FORM.xml new file mode 100644 index 0000000..8370023 --- /dev/null +++ b/res/screen-size-normal/IDL_SETTINGS_NOREPLY_FORWARDTO_NUMBER_FORM.xml @@ -0,0 +1,48 @@ + + + + + + 720 +
+ + + + +
+ + +
+ + + + + + + + + + + + + + +
diff --git a/res/screen-size-normal/IDL_SETTINGS_REJECTLIST_FORM.xml b/res/screen-size-normal/IDL_SETTINGS_REJECTLIST_FORM.xml new file mode 100644 index 0000000..765c858 --- /dev/null +++ b/res/screen-size-normal/IDL_SETTINGS_REJECTLIST_FORM.xml @@ -0,0 +1,27 @@ + + + + + + 720 +
+ + + + +
+ + +
+
+ + +
+ + + + + +
diff --git a/res/screen-size-normal/IDL_SETTINGS_REJECTMSGS_FORM.xml b/res/screen-size-normal/IDL_SETTINGS_REJECTMSGS_FORM.xml new file mode 100644 index 0000000..2e38527 --- /dev/null +++ b/res/screen-size-normal/IDL_SETTINGS_REJECTMSGS_FORM.xml @@ -0,0 +1,27 @@ + + + + + + 720 +
+ + + + +
+ + +
+
+ + +
+ + + + + +
diff --git a/res/screen-size-normal/IDL_SETTINGS_SET_BARRING_PWD__FORM.xml b/res/screen-size-normal/IDL_SETTINGS_SET_BARRING_PWD__FORM.xml new file mode 100644 index 0000000..46a0eec --- /dev/null +++ b/res/screen-size-normal/IDL_SETTINGS_SET_BARRING_PWD__FORM.xml @@ -0,0 +1,32 @@ + + + + + + 720 +
+ + + + +
+ + +
+
+ + +
+ + + + + + +
diff --git a/res/screen-size-normal/IDL_SETTINGS_SPEEDDIAL_FORM.xml b/res/screen-size-normal/IDL_SETTINGS_SPEEDDIAL_FORM.xml new file mode 100644 index 0000000..11fdffd --- /dev/null +++ b/res/screen-size-normal/IDL_SETTINGS_SPEEDDIAL_FORM.xml @@ -0,0 +1,118 @@ + + + + + 720 +
+ + + + +
+ + +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/res/screen-size-normal/IDL_SETTINGS_STATUS_TONES_FORM.xml b/res/screen-size-normal/IDL_SETTINGS_STATUS_TONES_FORM.xml new file mode 100644 index 0000000..b92aaac --- /dev/null +++ b/res/screen-size-normal/IDL_SETTINGS_STATUS_TONES_FORM.xml @@ -0,0 +1,23 @@ + + + + + + 720 +
+ + + + +
+ + +
+ + + + + +
diff --git a/res/screen-size-normal/IDL_SPEED_DIAL_POPUP.xml b/res/screen-size-normal/IDL_SPEED_DIAL_POPUP.xml new file mode 100644 index 0000000..4e3f9fa --- /dev/null +++ b/res/screen-size-normal/IDL_SPEED_DIAL_POPUP.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + diff --git a/shared/data/Call_Connect.ogg b/shared/data/Call_Connect.ogg new file mode 100644 index 0000000000000000000000000000000000000000..046e5113d080f28e0f4e822c0c03ed9767d5d035 GIT binary patch literal 6617 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 literal 0 HcmV?d00001 diff --git a/shared/data/Call_Disconnect.ogg b/shared/data/Call_Disconnect.ogg new file mode 100644 index 0000000000000000000000000000000000000000..00dcde0a460564d2e98fc04d414cda1afb2dffb7 GIT binary patch literal 8157 zcmdT}dt4J&zCRNJOhUv-2yCF}orC}h4>#da!9qKPfJp>}Kos!N@KPSW0O?j;dk2U# zgoq(T1d1+%hsqUJ6kM%sZ$vv6<`F<2m^y*_$?Q%+2273Oi!dsmhep=#u%&s^xtv{6Fb|dRwk;%zUZ8EM~Dd^P`(aREBHIP_9{!y z?`+6AFFw#*d|rGOuV96Y;1vlW58B&m7JYsA*yTko!F{7LR_`DuWkdMn%@XXqsKcUG ziDxULbQrbkfy1@PoIG<(F(@V3Ant4~W`)ems)Yj*stL}TxXNDd3uE5P9t*E+|Cq?5g7kXz__`x+}J3 zdG*{~)a9tFJWK;Q6eKN-{rmu{UxD?0{{HE$zh2IE7HDxgwHnZp-_-fPuC?j)x&QY? zzBx>;%`PnTA$~~#)_N=u=-Cv+0$iB4=1tc13PPfBCLa|sG zD}^;X6J$`-P6?~bb!t^4%RD4JWPz=%+`7f#=Xk%Gk!rEbUy1C!N~3v5bVyC{S?c`5 z&)tBn7v_e1=_a#(@B=T{Qr4KAf>NY>k6aoEzdT~ zcgkNyQLXc{?n3}T7EOxYx7N-4v8b}RQ>+NE_-)x_Zkvic*WGukdE-Fjfe%tH|6{7T zq};AK4#2Bktk&}@dBr2*11;sufJ5z8LqONzqZdOi1RZ-(eRCN4vx`_~mbr9a;}sfv zuib9$3tueWH@oP|k<-ny5e1EkLoasn%;iF%(2LKD54M|`uNn^XosiBOW4n*BVNG3E zzV}|n@f~{{lpGqJ0{vN&yQ04I)A|k2fmiO`@!4NWKRdqT^BcRqh^V>u%9Z^xa)1oR zq&*xhSqABJO9dtq&l>nea5ti6D$VSh zZx%Jy7o2Q*_+bBnudS}XjU27MGEZNVSJfmkSpT)_We~oMoW;e$v+5uiIYYmR9GlcT z7Dm(2pd}MwSDr*cHIun<6RC;ruNnYGPBQmGueWj>;yy1KLeKF{b_<7`|H1`<-2;Fp z^q-h#Yjjdh-DHMKe4Zf^T-pMVwT0O#(8I%jG*-Xzt$wBU-wdhencA#g-VCJLf zcWU_SPNMr%Gwn_=?a@Ip08UDQQh4rhl=bYBpey&PqUMrQTcdVOEB7yc^6q?~eERPE z#JZ^3>9H`l(;#p=Ks;ov{6HERfq?4Vt@AHDjxtYe4NK(m4fUN>^Ow2BHTfCj$>Etz z^_^PWjUlSy^S|J&o496bqN=VTh>iTA&lp?K%UXpNaiv4RT=KLn{WBG(mtZG^}OXhK+ zCv^GStTPmIqqR$|xxVw8ZC1Oes?J#wZh@onvC=AQ*JHUR*U-b%T!Z9RYZoV4FT_u&MK>@tE=n71!0L#prdM1G^>9HHZL;s$tsw1!&FqdRH*X0`|6eX-TfY+ zVpwJScJ$R}eAC_s4+M>t$*jU|0FF2~!=Fp5U9b57RG8ET>2QNwAs*(HEETkKvyG99 z+3?wPbDJe#sG;O?vT9G(#mH$io+WFtHsMrBBh z1AycX+~2e^Pf=KoFEB9y;GJnG!BomaGQD)Bz5Qy&PAr=u``3zxaf?}9n3!#h5&3r9 zXcF&(m=sE1-?PY>-!YlB{&J&QrRpBK(Hz=gv1C;DMy@M_WLkE~<@*-3p?COxb4m}y zx*J*`XMON+h6^C_HUsd+k<3zEowe5n%|!!S0Whgm(ji{!T2{jBJN@$dWzZUnpKaUYW>4?FULFssz z(t^n!#(9mT;q4#c8^SEm-} zsA2u}7S8Oj;dYC$!!n*xDD~^e3F@#+W>ia|s}+d*Jysf(;_Owb4yaG?Ft2TUVee2{ zAzb>ORu+gU7$jRa15$OQsB%yHv4OEWb{tM3z^I0*L9O5cP=~2Hpt^8jcEedz5Q36f z6Us!MzjnYioqO2<*FGLOjlVE8JUYA(MOj|0`n3av&T01sdj%c#mk|&KwTdx2C42^t zshpR5Nz@7E#R}j=(6RY&a#+Eg_EmY*NrxJ1mjXNBx%q{7O2BNd%03Y!lV-)g?4U^d zM87Pf71|TVB?){2f(Ms|_C(PZb3+n{ot1~_U>xS7>~_0Is`7l<>aehWnd_Bj)YSiv z$QQ^XHymGcCCA+2IqG$u%e{*3F?a%#-C^<(7~Rleye;aC0_kxkf7;vb*w=U~b*7Th zNa*a71=YQOaD|{+%o#@MhMdFV?x$QlE9We{$9K zN0bE$gNGZkFMs^Z6yp!wIr~cgrtzw|L6Z=ud$(9wr+=ol+-*NN}xEViPR z{~v(l0Wipe$2`Svt!fYtHNX=fOcMzJXv-Y{LApOYAJlzQwDD`^)xmp`_=CdZ_3D|1y2-4=-MS>`k~j(^7(cX(K)AdSKsxB?V$gEL zHY#03r%!Q0m@MX5UCDU91Hg16tXh2`-?%g@dPMl^eitBKNyB{nx0QV{L99+=U7+K@Gd#(wqWt%y5ZWgZl z?0!in=K?avQLkUSwx;dOJqMvYN7p_$MfZ*Kg_{6j7edEKlC-xdnk4Nn`1C)h?2iET zf)AAfgYy4eE8zJ1`1%9~1w@Wop9eoLzxmzs#^67`8E7zY8KspcSJx>2gd+$Hjyl5pG2dlBtsl z8pG%|OkXl=GP#9#uOgCIZ?Yqca}@VX!kE-GbTFfLg7F56iOshw1N@Lo7%cD=fbGR3 zcg`haC;||V8sP~8tbtkEIBVjT7~tm%LlNh~afA*-HYQ+T2c0JPak75?4Dz01&h9VX z>p??LoiEuvRB-d^gu5yFy`N4BErR9z-~QYGe9-@T0BGsrc~l?F z56I$Kmj`-$(3+KzC0B7lii5~TAe9Baxeg=p;~YbQxS|t4o0J90))4T z&+!2@Iz_XC!`)_{fFBDJSaZoRFbO@qWn78}Na`x>cR&ucheD0X_%`I8H%~HL#$HE| zAkzr_2I7wN5!YbI;*jGG6D&C6OwtTi(8Uyaffl(8Pv*v0TX0fzJ`TkANfzv_wh2QJ z`Jq+J1VN^)L+#pi9y8#Q&E#5#*aDDp z2cG{i5X^>?t#AW#Zcl}N{^NKA|I@;xn?io#n-kr?-{ofh*r_9tQ+xv#;Q?7034#hm zh?;xh9~u*U`&hYD3dog%KEngc7HNeAg(NMD8Q?oldUA0B^XJhH+>%nsk#gxmO0zrO zo(`^qkr>C=CMqLO6FgoFCRp0U5}OCpXjxG~Z{E3khsN-&MR@=&2f8ZZV2*PzEOmC8 z2c(jDydb}QS<-awkSvE}@uo@ChT>wwQnPS~=HxO%Vy9^y6#~?wIt~k4v`=eJkgpp{ zLwg%65=MHyS1t$K3D_&GArz#JFh2FO2!R?+xY*8YEl{{qpUiLtBKNhbJxBJ8c-93d zJnK~QljW&S#kt&Ee1%{ynOY;#RJw>X7(1?!+h{GfrRPfxfrueHJ{rxUr1rw|-d|0p{v3M1<08_qCZY7z!9}Xm^lF0FUknxEPHV6&0dOgWW@C ztT43a*)axqg4T-y8^#jPfx3}zFgbvLowr~jFtH-2XMjYXLV=zzWkNHq5u!Acr`)Rv zl$~Z7p3Xs=4nE2TWGx5KNk18#jsK*j70=xUK2iWVn?I`3%^!8n1N#R<_kE!$IeAo) zU^Tzn`Q%i=f)yT>%2Ze5vGA*1S^5Bh_Bz)Kehv12IDV4>bf$2Io_+{FmlR`07;swL zENjTo8e-OI7gaNCXq8XVT`+P1E|~@tW;$eOLA{g`hE6i92Tuo`0)x0*KqIs$d|!s| z$cTW-4KPcPsqhZ-h}Ma^+1$ZLw@j80N7!x=F>Ray8ON`Kbxbp{5OHKBdP2GF41j~~ zywQcE9x}-?DKM}qa(oGb?fADi`W(LXcV5x3=Mc=M{POugt8M_%Epx$p*H)f-_TjVa z1?L`gI(*Wzt?=2JXYXC~jr@Fz?K-*P)U|UX<03cD5P4C~?ka)dU?yJvPDR5L9^q_^ z?OAo3zv3^umL~KpP1v~Q^M59N0KhAh-;JP zCoIB*F$Y2!e)D+33fC=$rTz^Grz2!s$PCv_%2-s9Q@cfr`^`2pJ$99$ey8!7Aaf36IS}ZJn-wtvL0w2p&*>(b znqW%G7zsc;2;8Jaz6QNOl1x+Qk}e@}j>$c`KuywlcW$FR*`diRD4hCk1aY@=lmhWb zEKP8HQd7KV`{6M4iSSn8uA>Qs3-emXCKh%}^@0}77lWg6GiFhY+qZlc)cTjk4!4W%?$A}Z<(z*ub39$PDRhZ{!}mX;&i?vQXi6Ij z=tm0sag-?6`XfPU>s``VzEvV$u`e#B7Nbq@mjV+hiQi(ps8RvUS$hRIIFpP!Vtd1RJ0UO$yOH1f|y z6ThK+!eDSox|tyB=0VX>2W&3XLEAQ}1TNGG0U#YzO&l1L0xgRyTbh}ZN(1YF5k$n^ zkvCgm?gfYw9guRkC6hK!WNj@$DTD(YK|y&X;L|}K#@TWsE8evnsUQGP{6|V4u;nr# z5hxQ-m`-OSbS>NX1S-0+yDS?WF}cdz3-65RMHBU@9ko+H~$DhmN30 zPPdxcWqj^(;KYt~3=L&V^O-a^htAs6B+*9+E`)l7>B!kzBmgw}lrXk+vtx%+PS6#E zO<@Ye&m3b8tpE0>$F&&5=I|Bjyq53N7929mCfj_n3EAZ zjYMSIkceVhd-lb432q}%1I|Ne>x!#Tql+QI5gAck+0Q^6g-&<~rdXgc`7EZ%he@9b zCc$Z-OQk|L;;;mFY-l9ZW&kF^l7l!Z$U<99w1Z%Yp9GQP99(k9i^S+L`L!`$*2Fys zX-y^EH*z~={O#|rnW^ezjaLg>JKlIIn^0X{nAp;vKk7iZwK&Sbn!fGl$KKN3(tG+O z|Ft9UnWgRDZ70~F@zz__HuYLhhT8ZVDGDq%eQvq|T?yz}v3t~%*9s|}y{q{&8lshe zfvikjP&!TKy~=x);PJaT`Vs6d8%KaYpw&P(>`hXN%K3X7pxZ*fA=Yo$;42h%j=;FA zI$;F07-@>&2zj_W2t9_o$N%0P5Hsu$P&XiS(#HUlDFqTC*1;ShFtAan`F-8ff^SdB zSlux*o%y>yjLrLztV*K+p<7@VJG)UiBPHP{VcYWiIy&j2fD6;LtZ4zOtt}8%t7bR3va^Yq(LzUu}d3?)*uQ$?y zGy1;%poOtx$)=|v1Fz{`V-U4k8V_&D2lUYiXYgj<_LD#Vl-aq-NZ&d*`q!_1eDr?f zCsNK7d$~S~0Xj8YkX+rJ*|mTW*|%t5Hy9}EmB@5@jCC5Vu^KUqECRw|vP?>okMo3c zCa5d}h(U$C2aM1c_|zEXav7k%*SCH5e?5=7^{GQ__~KK~ZalwoW?!@<)kmHr-5>`^ zXS@^2gM*cTxM4?u(jI_j9{dY=undc+&~m~I@%~~j8Ov{;!x0|v0XEo=!+AijHKYN; z#@dq(;2dxNbVb*@iPbCd{`U6upF=Yrz7`wA(rxxWecvHs{rWjDokNFuSBjB1Qd`qOxyLl2lJlaIp6hN=lcg<_BF%6tn!q5J?q)ey=F$n$Hl!FPY~n! zjU6y+-jV=kf*?p-L1PIb_AEhAgdYEyIep3Wb!he9pZ{9mzZUqf1^#P+|61U`7Wl6P z{{JnYDF3%M|MRXb=lDN=6#PiI-v7LRk0w}LYJwwZw70!u`~QD>N{WDsZ+-BJ1($&S z|9Ri`j-_=(lJFwh6CH4c5rKq1;Z3*^_83P}(v(DH4<6^0RHaC1L|=QtkBA@!5p#&$ zL@FT=UC0^a8uA;mE13)#SmlxwBrf0|S!S5OGQBlQ#$3~9mM8qraxyJw_UlvKZ~KUT z-2;aB`}tmXpX`{zt(CgBY^aqgM!woy*sox~^WUHU`Qppsl=7)>A2e>T%pks1uhKVp z4D>4tniZNGx-xWOXs@;@ZGGB)5aJUcdj&X`sehKY8-9J0@#!uVbfw`+)uYczDv-ey-I#3lfIMCPsjqjg6Cw+$arucgK9`_pP*3mIZ zRV9x!UaQqt*cH|1XXmufDa(y6SX5*#y;)gU)3Y(pI8R6;9Uiv zvi()7>PW+V>lR{^%GY6&Yk>EUeqRPI3+f*9B(N#)r=Z|qCU|AwM}9NC+PHkHyFqzb zziwDib?H??LGRq&*|V}c=Zg883iDpkuV257ZY(m*m9lABQ{fozR^atfn~(i(_>cEj z`w#ZF`kxB88L-D+@~!n;;Bv<92Ez;XhW#}m6>p0A6>QJDksF_PJD)FbDheo7SN>U( z+1StADBWj%*F`y-JWluu{>6dsf~>*ALXWlG)NWF{^P$s%X12+8zwNMq9V2vT`lY&4 zN%w-FoN<}Eo=wUelpUMb=SAqNrix`XOPj7)bi`uSb%!}_U3_l%{}a?Jq$p%eXhCS- zwqb2Q3UvUCxD ziWh15+w+!UF4pe`%W*)-`-lcx?M0 z+lB@8^sRMWYqx>k!K<2k)g)9zyoxLw@_b-kx7<&1_vL+55MC5p7E@jFj&B(veoK33 zD;)oFUG90@=el2RpcqonuAzNZ_?O|`!v=($@Y~=K<2Zp^D5bSrs@qzbRMK47_jy9@ z-Ry|$`s|Rr?1I0F&sVIkDR0_u4In$H=fYB5J;Qu!{7(k=YBwl+Nyjk}*E)U^KBMia zfUmt=oPyPEN^eumyC18Dly(Nr>0BcFhPL{O{LqJ6pZG7o#-Qvq(FVwlw7UW9w6XC2?RpA|aUKgzS8 zzD%`L>0$nJM9`wyYJh$RAa2?FKn#czoZ+ zIXEYOZz_T z74gfK33ZoV-zYx$JUjcVXNgZgd%7(nB#X;)EVPu&tNQSrrsWm?g6yuT)!+A=6)?43 z|A>MQo_5uAU)qi9lGaJzJ~XJm_eH12>OzGz&#NC-CBC{-kd-qpGcjX$#y8I@vwqHt zD%@AHy7FXgbyFwHIXRInwj1Mm-e+Ub=CJt@Rh^$inWJWZ(7jV)`v<{Hn=Nh!?7w2Y zrAI9%>KrOZzPeN}D|cBInfd0~2U!nt);{+u`W$F?dlzdcvDOnC)r0i3=Ollk?V%1e zk!PdMba@ojwX1 zH5b-Askm5tq#z@AP_}p0_^iC_guHeyju&4l@9`$Q{z^-p@Fg9u`_Sc;cV(bmSVPCL zon4|FqZV`?8u2tNICz_HAGg)^lUY5`UQ)NOGO*<0i(Pp)v*WY+W+h~kc`FMFi}K6H zRF8RQF@y=})CKJ}XIF21pi8@&4j)BUbgt<vA~YIkyum1q`getX@%T1@=&LrJN9UQD1`C<)pL)NpLRBt%1<>+s54ZK zE4}>Eui#qVp4>gTH}Z0ymlfWBHNB$njcbF(v{VXZ%k74{_VXDPIJ|9B`|ys|j$d{B zIecxq!NDEY zvSY78i}n{*zHlyV`_iMhspLV$k8gbH$F?{MI!dp}cl2>T>hn=RZt#S*kJ~wgMYRhF z)dtai?Yt6Q66}LidkGgl%ivJ|=FO(p^`()o1{Y0yIqGHaBBxh5rK?`cZ+g{hTe|WI zL>8BZ)$Hcs;xo|iOhDJ5s-WM3mIY4oU*LPev!`pkW0j^Kvrf*ptTY^|A5wFmYH0;m z7FQDY%IDS7S363_R0LMPtR39c$Gld$L#JzII!k!q#JwIS1Bwak&zX-S=B@8$f+EzQ%- zXTR^jHhtPG@~!f|;#urA+j+JFp^ahVh^fMUlS^~WyIwV6)%Ra_u9#Flt^A{kcdx&$ zzFKp%zP-WD5-jzgf>d{OZyXa`65MkQUMYxIS=6eRB z@oJsvZAtZ-s?tikD!%IXH*~G_-HN6$#--MiQa1U7P1LCD9rgR2_q#f}SGl+MNOP}r zTj09Hnbdc*XSD}8h90b}6t0;gTa1kz>kYLNYQBEk`EBCc>op7N&eVV2w4mj(*<08w zlhl{&IrS~wdWT~D4QCJ60#}{eao5u>0nWktQ}zYgd#dG(iI^*uSidukGwg00RKKfk zZLNRp+}f|}hj5oVn#OuN(WxI>(NiBnhS>CUdsu}*?xKZj7e z2O4ixHztH^lpgTs&G{|En4t3Uki!*_Gvb*bOgFsJFHp|446Z4z4K2C|B|t{SO5 zX1B$`&G|z z(Kw}fTFXUKxb?B{y*z|;X3DtlG-bMX_S+q=>!&(>pygyV?RJwpzg*kpw|<7q_cdvd6d!3(5dN0LrVSV`g!&0hS0_fO-BrQ#vzs} z{#ypY9UnQw*ngoLuAx-B86!DZNfPz^Zu22TA9rVpC+hEG~Djr+}et+xeA9z|THOpKGN zUcFMAq+4RwXvf)S*!8iSsry80Qm<1zWNYXKvP^j_B@1a*$-K@q)c9pfrQxz6$1uFb z&DhD5VD_?>@lVAUasg3DU1p|pPgG^yK4K^SGB zI#=bX>cBa%>GVwMB{4`jC^ZU`d86f_xzse?-(+29xnOQb&{@JhxuEMLR(INYh3$MZHF~om;|&GFPb}a-niY zsutY&c^2OE*!ZsHo0j1%2UW#@Q`7I-i?M#EsXDzWP6QoNAl}|~Y zn$P^rmT`|%Gu0{TLiK6&2=x+`?J|_}N0fI807gdXa~ym$ZqgU{7$JR4Y`QRnt^@)oxB; zN3n@a7Hy!kl!~lV?#U~pNU?%HVcl=JZT2@mH9a%=n(vygTND$`6l6*@W*9?E`KElc zuk|QDKy;7`m6POHx}F)wZB#ACI{8s^RP&97R}X@%7jmDmT^SSg7de%%%DaKfOZ-%8 z7fT=WA`@XMF=|XZOjFI@S<ZVE3Jb+|6O{{vnDxUL4Oi7}Kkd4Y3*;zU(jOGKa{+2=JJEnDz$ZAS5Z?&AZzJY!z z(g-D!7(=Dgo@{?ERz<5Rg@~4o5rqU*3iqTVWcbZR9*?2zvEM_&n%L8 z1&|PJ-ePvNR9fn+-ok3pByCh&$VAGXnZ~Z?W@4<->Pc!}^+lDNYAWz_gh`?|Q)5XT zaZ8>q*@;j1)7G<=I`c~NQ1e`Ko_V8Xf^{~ZB#_b)*`Rz*W>Ef2EE~%y+&a}o)j8E1 zm5H0dJ!Ca(A7(5)g&Iiu5;gKw>05EMFod6NePsFEGQcw1^3*Z~h;kGH#KF>!a+cyi z4x$#&tC=s^VD2zi&ed`$+)B=kJIuPUGnfPPS?U+WsKJVxTq)ibZt-Q-C~KDGq~&i5 zVO?r<<16@dp+Z#2{gtJ}b+VAEp$nKDtS>j0+r%yB26Hl-#7447ObhKz2O~lmln3%& zX@$5**u@uGXIlNOZq{h)YOBe*mG2|87el2!@^obhT z5xb79XCjzkbRUdWr2H(8mfDHVLKl8J#>uxlu)MKEThCZ0@R34KaguaYZc^gOEz}+Q z9vAUBkI$##K;U(;hKZ;Z56j+cBeQcwPfwX2o18Z92y>DB`4I)0GQ zU5uB$mXnk`f}~t%dnSXK!2ZLsTqqaKMR9uW0Xv+%%#_jf)JxRx(pV1BUTBd;M!+y

SVOZ9Um6-d?Oy(8c3AkE9t{_%o9Mf-Ei#9At7w&v2t&jaafH+; z?U6rH%9Q1h={xcrIgYwPdDCCh=jbdtpZ=TPO825Os5t5r3gE+t?Mj*aseDh0ld{E) z;wNH9F&y$O7L!F^X}9DlpOfR15@kM0+B-;p>H^gr)*_e~W*igE$n;4%l-^ENkOAa) zVyE&{c9$1R73l3Q<_UL&`$Dbofw)g}mJUlF$m#NIRJXSi9m!O3B2`Y!reDyJ%yecU zGlB7AQs_SPA*zz}C&ysVdMS58WYAwyAw%#H zzZV@bQoJn4rxhGCAd?WU%BipDC$t`#^+zla=p=aVFeQ=`$kV9!&w_p*%c;_I$yLe~ zPl?+w#xLUEVv86josb;lbr@?U_<;>bRCbX%YCXn_q^Hr}(QD{0V5dxKCe@5OzJ*vy z)GAYzD)~pbot!SMlzK=sB&-lcF+y4-rAYqr2Kk*lMR~4_Byxx$7|?F8BFMkX!(}_UP`WN%lI}`nl3pGl zuaO_fe#&~KRvAa!hZnbz6=XOyk(x(Mr($5Gv#=8jOAP}{azUA)_yJj`;W zaUzZ|Dkm^f1T=dF-B!rMTcl~LeK92?632N8t1W5G@q}3^- zA(u&shkuMjZ*m=Zk$g(#laKIw8##@PBqic8agdlt#1J~71eRZ;#43);EBU&-NB&m+ zN}hvjnfx=PH6t!;0;+sO*HD2((;EoFK9Y6XAmXP9#qh64x-sB%(9e zutp_QxdH#}h3wyAoaw;UB#bs3kI}H*TxAs)w5v*<($q@anZTkMuuu3CLQ5HmasP=#ZI|w#6URYiaZ}H+zd3FzviuR2yi|_nNzySN6>WD<2 z`Kq+0MMX`I?%xp3I-Z<-s_f5U$=%Y2luR{#Za+EHqvx|BJ`?h$T$$W$Y;gR&9*2W} zwZCp!P&y&~&aFd#o;|hsq~Xl8s~hfZ%wAlX%YWk3(3Xhtjkg=+J}ziX^3a5SCqL-n z@1PrPT3?=-+3((O*MGlQe!>3gSGT1{JD&G@+edPDejVDa$HmyLL%WPf8~RyXQp|}C z{k?ru+YPTvXJi)Mi~Nhba`Q5M!|U(Q(&}E^u05{|aJ|{?z=uB#*gVv2#Aic~4|o`T zE!@-V4ZFK}LFt;z>;JsHdGT7u>+f#q@5es-y*RgiD>>A4Z)nG^Z+fc+d>I$nKeea& zgT&x)*Zp*ap}6AP{PeW-_uHiWm@@f+KK-A(Bjs(H2|CMVa`1}IO7xmOSNfjsRn%SV z_)S2%6HR^Ae6}Jle@ptl2Se{A-E&P{pWZt^rsB8eX!>s#U2sk0=;*B8ZheRLGIjqU zVpt&Q@(Uf(va|Ah!K92)4|D%X`R8^jpMD{KSH)k=h165$$$^t2sP4@%hMxVSOH1*)vU>9d~rrGXD4N%ixb?5NCsnMpa*3TrABHBjOS^(NQ7eiPab>(DRatB$Y3l7nV= zFVZKntN9ZRb(NOlh=Sd@U2^v4c6gCfnpyL?X*adkVX~KN(5GQAjMHgSbDSA;lu6kd?E6Wz@g^qGP;62#CDR6gCT%ebqo7WBJ1-c~q zjL>Lks54jfE-!fXQE_=OS2n3?{JW(_Z}~iz;Lz9Yd+%UBHo!d~!f&Z}oZDN6ODacV zwPkKoms+o?e&r)eAD3RNIP+#u18wfFe5rcw5aK3yb!xNUucl2WpJVQO^&2#I$lF%F zNv;X0JXKm=oKRd^^5^Siwf7C2^b?opc*H~P_gzqG$n%h2g1r24J)-qLtGXKT#Gy;B>HNu#-$4wKzpcz@wn??1+WuWz--A5JT^$EkC?(%hzQT2)l}){?SU z2TK2XT~YH@b3VV7ex>W?(%$RyHuwD_0uK1;eJb5{Ij&R_9l<}qJ za%@=QsXYgK6?xuq*Smb;a9Mqj>LqGTs~T_BhP}zC>{t0$m0yipLtA6D z@Rr)AS?f5$wZh|#*EH|WUYp&2c0OybRohc4vA3yx)0?`)x4Wvts&~BEQ(M{KXUyl% z65Ti#T{}m6=RaKpmwM-)_1#f%zr+y43}KKt#}L>wtl`)C5e=)Gp0%j0_od_1a8qA#?=;uhaB{1tvS?aT8^5S;soPq&@?B}e9z#3JP-!=HT@`8f#Br$e zQI}gTzd8@q*V~n;S27l5tuP6d<%Y(p`fKmDzB^TK-*l)Y*RoVO8XkeRQ)D>TgPAR z!ZmK}UE(`&qs83f*lcRpU++`DzTUO5qWLdVZ^4Z)GBY*Z?0xiRr(c~rJO8Awv7f75 z#Vw+cMex(jJ6e`Bb4_C#*EQa4a%t&muH+xchp0%di{?9Bt=$}Z(e9k?drcbmfWAp& zN~EyMveiTyErykbmxl4iWOEf{8caEJt2LwTCOIr|-0FDRA;pf=9^zh8oDwChG7oG? zY}(f_y58{a@A}+Eqk*!l6Niu_H%Kem-_$R0=A9?O4^QkzYiDx7RE~7nN|=h8XE)~7 ze^T$<5YhB`%VbN1xQ%q?^xBW@KX?2>-&OzIVYXd>W;ENIjFdjIrWi|`A2e=n7|}4g z@j$c1*pB~4-a!YeBkdMD9(6k8+}}A_PdiM~`f&$HH|dV0vgKaW+y*_SWs_Gbm(kt;|nzhQj1GTx+#%R=IPFueaS1Ko|TkJgb zZmpnOZx>~!*LBkD;kMB+gjp=Js?Gnj1REloo0_IHCmN0$7hBSV#fm3=h)dGw?Jn9c za2W0|)_$YTsIFy`s1b^r7-wxX^+QearJ--jBI81{hWC{Q6AS1#ZofKC>!S14jn)>Z zPjVvdNruW3g$hfRX|?fs%b^ynv9GDUl>4YvCuHgu)%PkWt%C+I#xWV7$}iFuD$`i7uvbnz1F6w{WwRuM7bnhwYEpy zzuGX=u+*@mWr8Wtx>)3h1GI^&)5O^2+plsM?9jo!ooLDYq=+^R6^i+rWgdmy3Ta8WuhUwS#5A> z(VA{qiiOU~YU*b;Mm<8iOXqBNO}ANlP|b3lw3cv_K1K+mOld9sTb8v0 zqUx^MuI;7!P`6yG0|Rr9`G`8EcuOh#Gs{%-HztiK+SI{(#Ztsika*<~#jtj&{pw|! zE1F)Kw(6-|By$H$M825BXIVC(O25lgYkF;Nd#iP-18fWJNA)AVmT!su1wG&2`rM+krlJ=4v3Ohh zM7f9B_BZr=$n-rbAS@frMALfeCNW)ckjum>ffcs#U!$_KSx7|t0A)S#iVUKMGF?!4 z3FK(*2lh7eJ3Wr7M2}2qf~XeiP=Cv|7%hp`CHz^zO}Yktz>)feu4anZ`P?OL66&r6 z%t^Wjb%F?0lB6%hIYK&ri`S!$@r!r^m8=-z2l4`S7}cU=<}Nb_^%w({O>Rf)hthZA zMB!W1tprrj=AnJP^pm0`lPG7VFYCdr=eBUpTnwvaj#Cm5r)-f}F`2(?ZEJP5uCgve zU2&+?EMFjoQIBYzDP!Zf;iz7h*H{xXhI zq2eK+E>lW>Mc<^#PywsM-BA`QF&1hioXD z!GxoNI*RfnQg&|1v+o#lTn{kgj$i3BT3h@z@&>U-StkD^JrRe9j94$|#rdK=>ILa? zs`8NdgIt7)*mv|*rHsQo#f3@XGtyDOC6+f(jKW;0&5`;R|=IWL^<&V`5gD^Yfb%c6NNmLd!A6~R0ao$qdAQww3 zq`{DCAu1*!&09cnfIkS=5lF;V$VHcHE-DENbr+@z7xeQ2RaHRU$(BkFxk zsABz2UqjDQXka03D4)q9#;1j^_@4ZCs5_4Z=aa1bLGGhRvp2vX2CB8{C8}8N1aLl{ z;HBfj9_wp!nrXD@Yg43opJg>)CazJ!s8ojM4yhl3vm&*Tnn$W4b{DN7zmi`IJFREU zvrRXQH;t3AtB$g665Qn5#20i5dsM|~?r5?RHv`lgxz$Vvm8|rTYWW(=Jo7eFZ_{qm zd~>BGoe!4ID1)fSjFCI7ex@0zjnFR9c&jIH;mj?vvvO7(#`m?{G8Gs%81sxNrh(wV zu85Fqq!c;BXR;_^N;*dOE>ekrVmY5Ojpelt+T+H%_Ru> zb9SbxNPSLIshODIsaIpVkSY2r25(R{A6n$m=8PN{!U39Om^ha90ai5K}NmXYSwrcX={ zOeN;^*2TgN$)8wEoo9A(CRLVNP;XLyt7>4K8Ja2v%UmxE1hX{3($(?{xWMQ9YOs@C z2@fitp3JW0B2{0hTvTx!!G1$u17{Z`FB54Y->SC$0d8f2bu!}da7hNMeTEvrWU&(W zr>Yd3Zzgw=jbxTmN5B(RiJgV>*4>su^JOz-$+g(=Cxyk*9Ayo;j_%2x2ll+w&g$<~ z8@V>@=k$-{UgfG(2b{)Rk6IR3QY<^Isr+csUuFrB%%^9td$|d!MAdNBPVP(gCD@u+ z;tP3)*bGMG4@oVuI3Mb$~A=H@epsl&uN`8)9! z-V0p)6mz^e&75k9=AFcFc?NNky2{Mw{sFg_qF$vw1=i~lbA#GOESA3!&+`4O)4+By zmQ$9yVBtwgkn4$ZYCV&WeY+Dl*VEi1b|uqDeLzlEj!Ba6D}T^RfbsFS7F!*KAH{*P z2l&Ik=oof7+OJkkR%LKm;Kj=+e|T@LQ~5L?vrgetgqafZBqEs_3chL~ zXX13Kn;gNtW|q*;$@av2`MJ1Qm;x4Vu63K$pZ60!6OGb-r8hXPC}tR|=H`GydcoE) zXR$l(B;J6POhX=#W}O69E5~}BHweq6NTrTAPIY5eV>cyKPOAHy$mW5^JV(A&T;v5J zArx4>tamI$mc`aD_#;ARDO=t^gi~kfII~%=}42zCB}#KVM|c;kEcVZ3}T_;FIR{qf}e1O{}cN}lJLEF4wjul zTqG$vn9;IF*%tOCy9VsletHmqDy({~Lc$cqDqtn-!iIMeU+j zA(z<7?q++!7whQW$RyS(U1VDFgsmck7-5ePD~3x0u7*AWu9QiOeHJjzwPAS8Oki64S*M(kEai z`=G)YNabOUi`cb)0b{U*x3*nKGxOC<~E6JizXI8oMGvH-T#yMm+%+GlMv+oa0Q~6{Q zJ~N?)C#JyLUx5+&Lc9aU*&^l27nB5IJnH}Z!JTF$y;}6mmEXGn?{gG)+A#W3o#0Vuxc96HAwIA%X3VdNA_?Qr)nm7q7 zrBOcg$MAG5wH%C9dorF_18>(#vCtq%JSx5vM@qHeh!?}#3_KA_od9!F3#MuVrKi3n zGhm}B$~oCzK8?I&gfvq+C$&LcJxZxlHo+6WlQcC5nS+g2X+Xta0atKY(IcCCE3HR{ z(g!^*fhD>w&r!Tk{a-=Kz|>uEL#5PBFc!_^C~y_kN?T>VoFfgAn!)Bh6KQD{KHPFn zp07j`JXY#pY~o+w+Gc{skdXnpA&>i# z?n)z8!Loaa-9HTN%4d@PN*+RXRRJG+a3<>*W*3 zeW${YnTTiUV0_((%ZMR&$Y|uSCxF?7lo$0YxY-fJIfaA=tEDZ{6zH;0x&W4OhwKI} zqz{o#Oe0^Az0v0+bqGuqjkRO~gLf5d*$%K#`OAI9 zIC#6I|1yAE!DTJRC!AgqD{-fD4BSu!*swKVo3??s;*<%>B}EI4>pr0+2Y|EMM;;|N zg5C2W?}CFef&b}-9!KS`!4QrI3zrDX+JhZB4@PJ_afVQl!@#)L%&Gk zxw2B}pw!CO%x1h;HFn)gUMJXcB z60pvHLX&0Cyb^pD7;P}4pD147$Qoo5H0TT+)`CBK4v%z36j%#xE{RA)+d1%cTS5Rg zc0$>#ECMGs3(s31VJ1F<)*fy5gA=ttgK(@NJB)u8-ctkVBf)~6gH)fw+r!|C-@!G< zVh%l#0F6I|h4RT-vIacyK5__IPi!DO&}%Rl%3DCk8gPm`z~WXRT5ZNDgBW5P=Ap1x zv?JXSoo|D=?S>Ny$01QSu%sOLLqGU`m2ywf+2R;tPbA{gWIV!QsT1If4d4Nz;fIT0 z8JD#B{EA#7cZTLgN;iyOjF>ot`~n=~3^JB zR?6X#LBxDw3tH`j#il?Wn#cn}SHk*(uosMg7Za6qg~KS@TcvMDM#FFZK&VCeqO(kyuWQf%o+AM>%-N$JkMC zfQdZ?D;$SJSE2iJ;_JviU4L~mfJ2R;wz2By3m4Cp!FcP&`urI_^~+8W@$S;R?T z#DV+(oN8~_mM3lillIsL#vv;F1wV|(svQe&Tmh?b7)9v=+vp24b010S43EP|zYpnnaR)o`HPSqVhHrOI_k zK7u$#)Z!j}JjPu{ehzzC;JY~F6szFhXW*LWgO#6&GYD63Cmg370}4lC%u2!&>um@* z4DrSX>+TGYi+vQ#9eCq;K>2O3#f?Cffae@oZ9YC_S&cRmA$=1f%{8F)I`k%#k1%Hrc=?&| z-%ISw0c1z44J|nD^YCd5Q1Tpc#^#IVm}v_TlM1hKkf9qq)(304EjadSSm-CP(0y>8 zAWVsZ28-b3G9?iHIZMcz^Ffbdl)gv*m{D5 z#%a8Lz~&P9dz>ApLH4&(saN8lT_fV&=h#a&U^Neb?eAfnKq3b^#3E8uz+X?W+Q?Rk z?jq_9MyyK#iUeG5VWZu^g&X{oh!ZrOkrN^C0;fG--}BJ84_18|qESbT9gh|5)EX-W zA#$I>9^#B#_9SA=I_!z(V5u;8IS(hUwm{!@h~68p3vIyfaIBmCM1R!w60uTPp!*M; z>-YnbiLGZ>%5nB+J!Ih#m)b*f3TLwR0c!?_1v;3-|c2dS!%6O2aWsDdsFiPJ{W|g=N|TmPRWAK`w;U_Vjdcib3ah{(Z87L34~7p zs(O-+&}9$CQV{3n163?e#yp4iO_1sn_%#jsk3_GVz|?D4`XM68LPSd=+OI^5Fv#Qs z%#Oi|v$Y+M_e+u4eSon)fCq~a*W%&9V~|^|WWz$gVXuCGy}C23eIGq0A6WFV)y&~ zbha{ES%?!S$MGKnV#Z*s(nA>cVQZ{BgPs$y`i!un?fg!(5&(4R;gcTtYp3!M*6o8_ z<^nv(6B?YWF<>R0K)i~?Zg(9KW+deC!_F0os5BiYc!*4;E4;N05i%KT?*b%Sgni77 zs6zXnu%bs`7aar?FUJbYz*>z$>z%;WW31P-)?H{m=5%a51GEWR4}vU_*n?xSQWAiG zVq{P~a4u&9*6CS9n#+g2DOex1|L$8+7<~}z z5RWJkgBa@tycJsnyXz+NYy?Iu`Y zEuMG7zR9g8cXYsMELtxmHerq1cJ57hJq6?V;f}8WSV;tG7b82H2McV14U#dN0?$Na zrs=Tkd^~30bq}07B5iefVB;qGT}R7Q#QiFK8efa|BG95YqHZ5Z6$QC$-!@ba?b9LK z_15;c;qyGSH$oRzw1|R*Vxh$_Ttl(veS|T*p?wp2Jw%^V$|2az_9_13=>HgdfeE`) z2-?{sn-AnH$MaP5?S_6dWXprKF2E8==y3)k+;5f7gm~wMeo>IDH+px4mHi{p#48d;?M0OIMY*ebzrWoyu@cbHgm8RC#I<$91D{olA z7te0cU59gCw(m9I(WVJ8x(=7^{FLo`3t$+$hg*AGEZU){h*!4nK2WfNOlVby{qZfH z4QR~~&KNZqezbkhL3`|#ei)y`4)qpNe9+rnTl<8xecH1qQdn2g$H2kE}5USY3q3{sW@m3iKTY>GVKt4m@-i zDV82d8+*^ZdGa~6_WLk~by(2K*T&%u5 zh&X$J?uF~eNLd2PZtYrpJ{u8psbXe6Jqs~FwM8y4rhz%=RSF78p8%+ux$dgNl3LK7b7&w}LF;f1Tv$%du3 z@SP)Y+6}S~La#oMDFkbQ22!i>ep+iBxP%_InD!oh0{r)WJx>Le=KZf(qOs~oMCeq+ zfZfnzIj&X8wpM@CE6#{CL7?==g30)eSK#FyQ` z_*`V!v$6YcZr#ZmanIcYo>w%Knu!kP@nS~W` z1pCr?>=^qo$2hER+c%dS#JD4{e?_(KGSe}~bs)qK)?W!!T}A$pinE~SfyMc-wQFnU zyc=UrK+gOLGL~7;{seThpie(U%9YT-wjXcD95e7AZ|tvWXt4=>W?+{D0|BY-Axe2c z%lR1hEOyF!*e_4F?#Cfm7dIgJ=+=8eJ?>y4Am4iYuSsbO%WgsYR3Zft-wUhSEHwxE??ik^2XDz0@B#{JTO-a@v^tH)Rba9J<8wel z4|rn=)7;QZKHxGV(zdOeKyOQpq z-Og4-Er!lpfI-`SN?`6j=rIqz*Z^tPqTeKVA{eWq8os!Uc6-rpk8%XFJj8nEu`&W7 zQ}6$k8}xuyw#ZxuyF3O?FF@DxK!(jujjdMginimh8s=i2S@6ps$f<{~ZBZu)v0yDE zS_y3IMZa_)%C@=(!Lkd1i}iT?Pqb}9AKOlP9CG0kE0`?I}^z5YgZ7^R^wP2YT7QoAABAFJOj5NR)_qE@QnH zV+Yp4E*}9IGvM>3xaMJx9|`-lN8~YKkGl(mBtoB`aP0(g&jGvd{StxkM?s_M=rInu zb%R$p#NA@(dk_6mFhdq{t0t^*H;fkzpU0uk`@D-rM6hKZH!$KUXnhIov!M6?nXe4O zxc$(hGyLI?QFK5ej}h^)b!c4-D`a7|$M9+fuvmis8?Yy<;X8lKXtP{5Ja>Q{-{%z; zth?8k_c<<6|S)dMYKfX87#`v}CmewZn+)vje|XG5iJJsv}ZIS&t} zLo-`GY};}FJdS zHxt+U6=1834!Ka(W?g@ zwwTc#GkW1Y0_*am%1qe3zSYtm(9C8z8-m~W@_?^6^pl`>6J~h}yH(@a zmM5EFZ3+GGHrC_&pZDJ)X8Yza+vELZYeBZIEoVsQ1%KKyb}!h#8Gf|+pKtYlHT19{ z&9*8F@ai=XWxyN?)|VD?yhmIhWPE@5W1RP~z=oe%XjTsY*sgL&*a-P-dA}{&SL3pM z>zNH{wpDD48&$2NE3o$aC}FE*_G``EyTMOhXm5e0d9cq-`2IAa)A`o5SOncAV89nR zj6wTBSX*)E8--rpz&6{u7T!V%+dYo$vaOu=E5g_sWo+NUrftQ)Z3Vo)6R}y?_8n`s z?_c}R-3o^`&ajdf=CWDL1CrXe+UtG%DuCzGfPlxqSr+CghZhAzJ&*qlJ+`c{A0m5a z*vu7PFu|Hn7Bs8G^>7wx47Ae%Q z?ECwdtB6`BT4VWDAT$$FSz2RP6yz9&cr+20Ee9Edi1dDUZG?TYVCUPd5%M}@vt_F9 zWzu16e2EZRhG8CW*u#cKTP$wEWy7E?Zfjw857@~6--zT2$?1Rn@cw@7A;y2$y7K>H zC$`n^9k51hx$`ir;$isxpZj40JeCRhufywS@c7Sttp#}TfILy?7t^{fZTAZjuwa|Jhdu!K!0$4MUvl04YiAt^e73lA+6x_)(){ kV7>TZal_;L4;}4~*8%_6AG94fY^2TN!Q$DwI-}h#>YlQDqW=wLq~93s9!B&pDarv`N||P4dp>y?fVkz4zC9|GoF+_YYa? zbZ4F4{`U8MYwyj}2Wx6RyiF>ZK5p8?y7@0NT8Ts=l@v)<-7EehBaswKw36qadHI>8 z;xkUy5HGet*?=*LstL#ue)5r$d)xmt)71 z$CDZH^Qh!eNxQsVeolE#*`evs3^EQfmRd`#V;o}~`>1`?R5TTt88eeaNfe= zv+c9(-R5qypcnL$)sxkaD;`&vicQ6b@`v*C)AQ30CLT;Ik1mf63=Ry=^v?87bWL<6 zxCFNXufUka>@D~f{3Q1zH%pi$RC}sDo&HWgALhgByVrL&_cr%l>A%u{d(rJhD@#|F zHkUV-KdyURx5c!@bdT*GTeY*=Ig6e}cc2bb$y735pf3>lKEgS|ImR}|MxGX-a4obig+xs zmRKu|mBueMUuw=P&nt=VDUvCYY$lr_^Kd10B{m~8BUIEbx>q4!k)|2oj{DUKdBNw|bcDs6Ay+d`7Lxs+Z?A3z7tAZ8HLj@r?9dOWRgDx6B2()N_;DU({K z);(PQaCvoUbty09rR)0F^*_-2K<|X^3EkVn+rumUEBz9W#4}15CEUy1%TbuZF4o1a z!|Sk)*YWdR^IaRg8@;oGvxA4DhojAj=EV2u@6(!srZBg7ZgH!kRne?&Ru3`^GTdsp z)w15c-d;sjQ8FY${UTaM%Zx>1Q4`ff=^Q%88Os@q%iuE1)6CPXRjyS&DSuKfu71g9 zna?uIlgpEvW1C}+kRx=P?>1l56?M(y=kbT|AslDptPIO=Mx=}H;$L>Z?7rZ;;JX~U z9IB7k$7@rysjbOSp#+8xFn#)Z~}){Tyhjt~{1mY^kwVkm|~ z96CZDp-(tZI3;$8eU*8YxmI7RKUi_FVt?8GvL&)5GCEJ^yZXBNzUuj^CmxAMb_I3? zk{%HuDIDMqaI^5N8*?}gkHc%ZwcMw|r$Upb$um4KJn&-V#R%#_JtO)?^sUIP$ek}b zUt}+{mkp^HQgK;#Syyf@H*d3Tv%Ttk)!9Th(LbS|&;VutvjuHIH`6!Mf&oQ{k0aejw;hr7aG z;dh3e;f{Dmd{1gmDv%9i$4SRYH1ZXz>l6EJzYYV(8jfKlksGHg}uT)iXX+~`)T2{aMW|uL!Kkg*Z0)-kiRG6knza4 zWPGRIsh?<`XePhA)49{Ri{3?FKo@Sz;aap7DQE@V>F9K{TidOyku|Q?uGW(G*<7-@ zWW02|G?)!$_onuy$a|CbCmwdXce;re4X5E$ScQXZkR{$G^OJevG3`xzuLQ3IABjB@ z8=4%NB)<0*_7#fd#d0zam6}RTyP@6izU6(3$L_H&q!v;`(NLsfR7|mm1zFG(Y6{h9 z@3cQ_dDcSa`ptry@i!|xD@@{%#3hN(CTWwD#A`uSP@UAC)H+R06NzWe!8vZCZ=#z~GaASY zWKN=!Xd}Ime$Dxsv(?sWQ<+s}vOaF9xTV5T<|rfU=9SzlIkJw(da94qN2&wW0kY0M z5k3*#;@;vW;0gFDdzGDmXW)a}K`tev1hP&)349VD>z1rvvW}@dl_%@^+p=%V4pbbd zn4_PgC+ogoE7(XL_<{a`<`It^jDsP0B0@!|O^!{D1=a;tl1IjB$7&l?4JwjfNS-12 zhUA@wctiYZ=xT`Mqs8vU?lb%uz909C*-D0^Y?M8W593C@k&n0{t}0)ZkK{L!=awax zC3k0bi=B@|@`U^e`5NUKCCQ5;nyRMWw!dvB z`F5~ju%SiWq9%Emn{e#iTccY$kx%fK6WlGk~bXK761`?&i! zlJ^Vlf}7NV)^KZheE0b7NxhSLNuA)NoRriJQa?x?nQoeHB6UUSR5~Zn6X-V7c4H0? zp+jgHy^NmboaQ8T>8$Cj>0RBsI#RDl-CA9=x`@;h0hC3 zk|xP)>1?U0NLAD#k{6jEn;@$bsTX-nM7+8pyIgd+=q-^UBFCl2rE^3Il7eKX2)T2l z5II*kSJ)}?hR8gTXGNY9sTcW+$X`W166p{*E^<*sJZde(MA9O85pwnmA20w0zyKHk z17H9QfB`T72EYIq00UqE41fVJ00zJS7ytuc01SWuFaQR?02lxRU;qq&0WbgtzyKHk z17H9QfB`T72EYIq00UqE41fVJ00zJS7ytuc01SWuFaQR?02lxRU;qq&0WbgtzyKHk z17H9QfB`T72EYIq00UqE41fVJ00zJS7ytuc01SWuFaQR?02lxRU;qq&0WbgtzyKHk z17H9QfB`T72EYIq00UqE41fVJ00zJS7ytuc01SWuFaQR?02lxRU;qq&0WbgtzyKHk z17H9QfB`T72EYIq00UqE41fVJ00zLo{|5syiAkrTNSxk)0Y`%m}J5h)fqnmw9r{ZCG1Pi2{Y zroUZedTx4dWPW6Rd|`ZHo@Ab+Q`#wY$Q-i27XP(4DNo9uD1D;z-LiMfzEpgvcu)DB z@*dSasx2bTB6o=_RW4OdQ%qBwD?L{lm&fJb%f6S5k&cmW$ZyE+%kIk_={wSQK6yS_ z)Kk<`7psd|Bi6_tLVpN#208;5{1^NiM1mseKsvBLv_Eun^ycVY-FJ1fNj6!QDa(A2 z{~*6mwotaLY+2c=id7Yj`bPaB^C9yv`!IXh8FpTzFVaC2M0Uo`)S)``3-t^2g5w3p z-PXIU&l#UHrZs5|t)f*u@*a7sq*d}z_MxmHWk?N(4~TCKZ4GVnZSy_ge!#t#-^+Wj z2j|!v`DykXK8H8(8+g0h?ta1dg74|j)1k|;%dz9hC&ZTrq^AF7+ z;~-OhrDCG!RP0+H_{oFklLY-4QXIr4l4W)$d1JA$c&cKm zg1k3*f8t@LeWsmwiP14SffC5b7#ZTNgX*A&#}aFawbEE={8IC!=DhN}lK7q?nIg$% zvKcZDS7KLUGeR>$b-p^E&24kP!@t9y$LDc^O|V%JANJvW{640gd{OCIx;E*guoE*5HIbbUB7X^aSgZu zUt_PaBk@SQfLp-5F1#+(dTKohf5JaFGB|Rv`(n4N*VQ{TH#GNV(VIo5OHY^La$Me` zYteO?x=f9>M%z=)r<_aarSt)G01aXWG3}@wji<-c3a7%Uv?*;*nVvGKb!y$i^i&->v$bM z-!SpyI!yv=0mRl|B?d$DT zR23ydGSn}kWwgv#G!`{cO_a`|bDXi9vA7H_!#vGA&06JJ<&*L!=t!{jiX(w@>v z$|dDo30Ja7x=A{^e{_E)l}V-J>3D6pHeBPc@t<*@aT^7rFoYYznXn1FSvR{CZ^hMo zHUGZreb+JXG4F@L4}c? zKSn)9*^mttF-440WEdKT7Ey~RG5y)!v%F{d*zmDoux7Akv~sjkE`Gi!d{LN@nUNWm z9G09Mn;g3uyc+ED_IZ!Gj=HAsQ~14jFZQ#3R*98Z$LY8@ALnohdbgO z@ja+!cosr4|$F}U*A*TL;jwOL&hWHlJT8-r+%V& zqM7{ePUlYNE_xSz0bRH;hilPVq@Wdar=!!+Zf&=+M%K7myIM=$XLHHslJU~<(qJ~2 z-J9B*BJWM!pLp2m-svV@G@OQ0VHFOtL6&%%%unWt$Fw)?y%M|}zWCtuAaOwAp*&NbA@M=tgv84U?+Gu7pDMnJ{{Vl0y{wld@pTh-6G!6htoy8+ z#NVv&tT2g35|<=Co1{%r60ZeSL3L7lQtLE1O(dQ<2j{qnzKL!|&1fJqkU5D?qK))M z`Zeck&Q@EiO=VV@$@;jZ;+6_WnWK!Xn^$tL#06cAE^#h2go}6MEFE_i+hWk zfG6Oq>{WIKo`DZ?2f37x639CJB=AXqtXr~v$vUR;RGzHsZ_Bm@y z;nwi@?(yA|dMEXgI>AXfDXANzevmpc-89`q>Wb2-bWWfr&~2#g#vC3(htM*589mK8 z%}MIgS<_k5ySjIEq+XG_wYq3^5vgPDUU%=M?n~XIzV-Nf{Lgrv@w_3tAvAK0+#UFi z8@goLa{5+|zq|TCh+p2HXllog_udY}*>U%<-kdt~(>b^du|5yLF-M8I0$vw&aIsf_p zxc}?WbU^Q1@T%|B-v4e1cCD$BJXy zg4=@R-slIe4_rg|A^atL3A;s(a!0u(!V=+{`DWqn&&kQ z6%7?tsw&m-vg2jrO2(CR$~t9ZrDLU`d?4o6&CrF4`=P)dG@pS8PUH_A8WT%$k^^2gbt-x;u zek<@>f!_-JR^Yb+zZLkc!2cfwT3R5GmjC-Cl7IjAM}-(uxbS)8KMUldb$MSAP{)RE zo1SOCR?184#HLo681x?m8~t?NT;VfeGmoFWIn+@%wzS93v*5=nobzx4GPMbVW={~5 zN;XP*7A>b7NzL*<(m&E{P>$BHYitfx_)A8B^0VMfNsm?`(Q)2f?83xRZyUWyGgpb! z?5aV#nN6#*ma(P@iX=}<0KS=FM4pZ9bjqsoR4+i6da(YG?|e%Q_B{7kv9LrX^5<#E z+tY`K?ptcK=RpWqRMyY*pbnn)n%F(}h;S}2uNdI*@MBWC_(vI(>anE{zz5~+Y%{~( zGZj=$fkBiIkK;dQJ2X|kv+Cch1^SKOwsJ$)vE7}eTw zmH#Sir7m@r;d8AXQi*HD`&rB@xgxrmx0oD-J*v;OT-Lfl4|qc>wtT85q#q}1^D0H- zOAx{hyb^q$l=l9A41a0nfNhnhDyKWHN1G68x~5PJm;eP|!#bHgF@E0-shO%O1iz`? z)?D+P@L)^{Fie~h%I?4jODZ=Zb=nFa%hKlv5N3z#nA}Q`_LOG%V>{E?Pt^=_@SCDI|=A zwhHtzzSHysk0>@&xNWg;fB10P{etb{S3tht0Q(SnUh^f-y_zd3Pbo@uq+0COG-YRx zU`^m}0QBOcg;(j7h&|DMj^&jJ1qp0cXBuwQK89SwCAg=H6Tkt{<-Aqo^z;w)C6-HC zE%*+cqAfKKsy_fjkw@jt7C}qC6%XMd@az@IjjdkP5gTvR0t_45?OOsle}sF21lC7+Q(pq0$%>XGADFDJ)M$~|5D@v`WCO@rs9wg zLhWh&7c~v+s&rMF9BpG8kcA9qVNg6AXefHeoS7wTy5uUUwkp%Wh)SgE>cu1qFfHuq zf|o#Var=T7)GL{PhUeLY73&mpKzi9XV`(4=y-(PkvryO!yb;oKml46#t92_(yUKQg zeHHi0A6s`dC^OQi&-0<;cfeD@2~ItxK0)+V=>Aj_z{|>;Rc7bd#zQD1b9E5|$OeWM zDHwxM_{Lk#O;v}KRB)L(RX@zvrlk#5#ik z)e+Mk5_{+V6b67k!a+H+2sfa61ILY!vbo@K#pH_nwi{u8W|%sqV4(OC00>^OtI(gD zn>>jclL`%HtCm*>TpOG2Wkr}I{urQKe7~@g&O=(F7aSidTPp!DqBiOOs+|cLfqTTA zQfx?4|CslPJSv?S+G4S4p$Y{!QhVK;UEdq_frQIzFY*J*;^n*n_$4Vb{dWyZHT^-C zf?E05UKXJv8foOhGvW=vIli3rBQa;Dc^0qE_Ol-GHvj@vBw*vQ#xU$9IF~z8gbGAcaRc1A{ zZ$U@#S)hYJ$&R6&&1^4SSFa+0aMg_Ja@Ulm{aKaFcu_AvEq+-Tp!Y^1VxJwx$^pu@ zpkMt<-?z3SqzJd4+qYN+>=%J~zsPISdxUOVVC8s4DcD21!|VvsV8=<`T)L>zwF}5m|_IDOmp2Z(LXJvEq)^JRdFRC6yfqpNfTiF`uFBJ zS{;Z`*tF{`$WV{;)8rd@t3;*1AH^@YQ*rAd+iRQjC{1Uulk#2VF^4jWM82UPEPN;K z2N3ybtj}2|o8a!f)wwD*=u|~&9GtbBgWkz99oj40vSwvypL9K7ZxGJkaWgBp|TCR(Fe2{-4wBw$h-1C7SP z$-8%2(XnE-txtG!<{oNB0YQ8a=qre_TVceBx!y^-T(ua4sd`kOcTt;qWF1NFnH)eS zmKU-Z+mRz;NGG*wp|U4vQQy?#YU3?d>`*ST_*rt+y?H5=H|aY^e26;{17|}amVzHdN19ubhv{qnfrTGKw zt$b3s%5g1Ph1f@*TX;>}8KCnSEO*worq1qH)xA{!=ukOoet9-E??W$P2l=akF5-m+ zY?=t(5N@&EtSD9N03l^7jUxgRpm;(H4=x0Oufhqr7UIOTj=^+uyi5*`Qfw(7X-#R6 zX3U~U@^6bS17(6*&SLELmK(mY`seCi;92GTs+CT8ERNjBNGno{BjUwHc}yAVPGc`u zdbL;C6`Z7guB-4~OPs^>;>;K901Tpk^SRXQ%$f#_Ev;g|;xTx%Y@+F}x{aws;_I9_ z!jHf(;enh=LWk7Cx&qVEvb*4Ag`{GLjU67DIe}V}UoYAO3>08E6EV{h7rh5`1CytK zt6EoYad{h2S>u^Ui=eSYPMRs#D7GN$LmnHs8CJOIR$|CO8f36}99Q zQ6lNTLPG1J@^K0W$k+BTuMZweLy{KfeiA+f^u<4T6?iU`6BuQz*Bk}w75a+Kc1dI! zycca_K|Aqy-~(UE9*pjrOc&}Jx2iw5L=~)F?)l z4pOcJr)y>!g2_yI4`<>|EWQJXMLqKh$V%A#`tFu8ZJvUo_^K6Hj@Q425y)-xibQvT znZofQ$qQP8g$WW)!s&~Nxxyz=5Fzz^ZZTq@~O z+K%7=vqb9y$14_;=Ud;0yy;v@EN_SCBw!I>xmU5DTfDv#dZ&6)lKQZ!zRo?dr^rqW zP2p>Cqj+D@7-nXct8u+cQjJgz0>`S)=x%vuB_?2yoZf;pfJdaxA4=_+i4FI(i7IX> z-heyHI+)tjbxW-z?9CY@d<#qwKFCQU&P$z8H^y|l>;rg3!KlcwIU9(XxzuO*2GM3< zqCm*`8*?D>%llk6M?DOLs3_H=U9TH!P_3A2i^AehVo%{Dh7S2Gw!k^R>Q<6^nR=!E zqwi$P25gX{6r2E#i3s_R!d zfrZAjvJ=T!|5cG^XG8|UOK6J=#Nr9SFMc2PO!U;|=N@B?Pt_BgrLtEqa>ts`*?bm` z&j416+ZRrzzd#&}E_6Jt9I0FZj@SHQFxCEo9LN3O_A5RMh(ts4I+Oh{S^Y$dTU(;w zD*n^bEt~4k!=fZ+9zk>o_^TMo)8Qy70{?NtHqG`V^?xe)j_%Pp2o^o7aIRPYwBt`> z4ax2lf8^%W98iq{jjAU#OFXD%G&;^Y$?ub-eym_2?F4*bWQ84BiB_Hm9hz1~pWm8t z3V($6ruZiCOSm_;E$L_4li&*TXl<%uvSLbkruAs(MS3k+kvC7Y5AX_#xpHi%g;o10 zxo1{@7nNPBxX!V$b;u0H-K68h#OI4vGNoCJrbn)s)l$_=aJ+h#Zi`o(U}02jvS1=$ z6~(~5X6^;+Heod!#+=8g6C!pakV&6nRX-0cn=>YX# z;9S+GYQFnS)6J|>W@%AGyhJ>t@BqCLVTyioq*onQ9s|c|B!+XfD$&LSjR0RX zC)pocr?W!$EaLJhiq?up+JL!p{czZIk|x(E+zl)&&f$^pQ&ZOZO@3VhYfOzn!%!duKewGppvKY5}NMovP{SQN-ohZ&=g#96%(#QE-Y@2LCtm z(%!qWz49Sw(NK)<{I^oZ;>Ymz6z@$^zm_|blnx6ApPB#B7AO`f#*{lOGeeuw|0SQy z>n>UY1O$D#jo4zypUHI5UULAvu9Q?korSTU$Wr>+!p&m0_(stY=G3f_O&-_D>anU7 z;28Bn-8e5K;YZ(KNBIK)i>NOD81+Wx-{I%BLlqu{8eCQeF&P8Z&?SW89H{UJFj-iY zGn!bQs;c{9@|T5^)FBmC>%oQx8E=y5;+$wYFjp{xqr)^Oy877q7wV14y&kH{cKzA7 z2=#-(EBa6TM4Vc5p3wo7+o*RctAff+N$P#{i+sWsIQDPOdcibcpQvO0amv<==?(u` z?d8`L5Cu|OYk~yR($)~`a^?#60fAz4&H%z==*xh?IH^ntHY)zDFxmbM%QGKRQwpr2 zZh)D;hb=?bG`I7P)%91e1?Q=rRioXjnl@+MW$$KsqzAd*g`0s@#hrPb z@Ox9P`{72N<|)`$IiXT*mqlFg>$E!sg<=9QkbjZ&IQwN>>N#9vP^|(Ls#P^O&&l}l z?0u}Rd^8{sKPz}mOGo%4A^VETQOYMEs0k#S#QYQ{K8H7}cnu&IzRNvA>JDpFUu%A* z?W$Oy=v4mNQWWZxzLY#Yk1bjN#0B%X65JBV<=QTW*_x~1c_q5)m%|=yK^#c7*r{TR z_*Kyd=C!QLP3_&<>W!*RU@vuF9ozf1`6hZM`vboSs20HszEHiHWnrjYQ9)8#z*%MG z#tVTxP!_?)1B=%IGlfk#`-z-1P7q@jYMF``3Rn3fYoCTcGyb9w@)wDQ0V@Q1Idp8_ zmi@lj`hfa0n5NQHshr40GHMmWPLuH zCR%^Qx+u&ks6MOisA86HF(v$GA$Tl<{j%^tF^&I;DFC{H zOnZnw&xRFP3o&_I#%%Pz5JGUDO<4o4{I_bGX|osKI4rXh5yhULdq1~|eV?=*k%(gh zn{2Q2H)^&TD($E0x+a2KyXq<=U!chY+R8#5w#S5pS+HuAQoVzWnOF{M9hA;C(pIR zt*+hMu&((n>^o{0u9UQxwV?>oN+&7fw2v=SiSPfs;lESy;e*SNL1%a6D}f4Wr1cI- zRem?jvfvLj^R4tr;8jZL8OOeqU*w~O8tMM_`1VC5d~Sb4X5eIbudh$vnLk4{%Up<* zJTk2)zcsmosO`w&Ei`i44eyu=@6VdA4`j_%u3B5#2CAmWDqY*Ab;+gNk+{0J$?;OV zMi%)wLp9jc5@H|*Fz*U_N>NgpU^inOyfS1m-Bs_GJ(BCSJMEOldD){l1mPFSLEwA7 zjWj%!=%1i#QG|ctz+aVrxd$Zr;Ckm=5nYqq5e?57gBzdN;I6F1ftA0WDNHqsYR^J@ zk%s5@0ZvFf#T-t%?3Bi{c51m*zE~Djtu`uyc^Ly}J&InG{3$^T;*61q)NpHyUeigw zU4E-4`RaAv`H-;$c3v*f~bIZ60;yKcYd$1l-`srR*g0ct=kXtP$m~{ zDX~a~7nibDq6(uJTcP&5yodaTrqsN(K?^_6@bI@vN+jw0e)L|Mq57>RwHhvOUCJ-t zVpqn<*@YZHSR~CUSyXU{3{6w{`TAeVtFoP7Q{^-_KhXiVEQc#zB7Gs=lY0~Yyan{2 zt4WH}vO*<7H?4Lfv@L0M{&QfQG$fqLJ&m5-x9uLyog(j@bW{-E(Qs)J{Yz0@Ar{!(xGJ_n?! z6PnEZDjXtJ01xwbkhIX}wF7khmB(dn@Keh`8H_1=tTT2&EWa!t}o zkizVV@HFIEOqxICALK1%pj96MP^Vd)i$lp5^T&mws0rAMy1Rz^sxLBK>9vZZPJVnW zrZIW1rb`zCp1d{0+bO4fb85aTcFRU9j#dBd-2|DHyjO5wu~aUq;w{IHX};=OSlJc4 zE90u(>yHJLX@e<=g83yJskV48dsJ3>475GeW|Ru#-8Dk4k5rvh@lNcB|K4V+tf&NZ@m8Mc!5 zOEgak0myk%3F{#{yr-%sC=SX>6$@+5`fjJJB)akz08^y>L=D^#nB4e5=d}t`sZ91* z^}z77E&>}&eNgzcBrNG%e2OJRRYyQ8RQpXnO>WoZS?mp+5HW^Wa7`kX7>i(Zf5y4` z4yGGwsC-oE-10Iz(6}Od6=#;Pqcp2TTF`-fF?F@yth=PVD7ykms~)&FCHCW<7XM}ez4Rd>#ja& ztOyonjHfLqN|k(-oD`gArXin(t1L6hPROszkCx?F(UGZ0KNA$FCH9h{q6GC*`ugB7 zBUNpa-777sFgvC+9Yz1ibqNPZZvgZ1g{0NcskNE9eC0_QMggz>;d$J01HUWxiTE!m zSv)7F1ecqb=#Eux2d~QHO0mAmk4QU7US5!2QY{2GD#*Ggz*Z_t1)MgQ90q^{i#Z5b5!f`Gs|q{jkAxqYZ0R zuVpDACmt3)AX~My+a>OF*Qz}Q<~6rv;PxQXEm_NLZP&0$@PMA^58U5;7`3#c~&+R z{7^}A>zl*a?l}nYN@<1oU9JNkYDw{ms%eUCvY6s$4WqU#w2?SC{|Yc!iWeQ_s?leg z@Xp>9_ey`s+$y56b8v5Z85Lh-D{)Gq0zT^sa!_Qb^=jF1`2sn=?2Ki7xE!&WxmWN* zLXsRR+DDs~fvJCQ9H}j&AL01g2uBAwPlUszE}$y^1qq&NshzKzkaPqsc($sY zhuA{Kb94U|uaiy{8*@J5UL?%!aaE6#j<7@dOxMFdHx)@H7NnN+mTnVX;oQug(b!_& zRz9ILD%+#Rn*OSPk)fr1C@PdZm5dY!nadEg@E}W*W~Tg^+*EeidNUG7E@kB>9pOhw zS>YzCINedFHhfk6l!2w&D`q$wnhG!)ZhO%T>2?5B3RB{?BV7L*U`$M;0;-Z>bQPt;7l5uQdKaaBu^SBe$M_Ut9vZNUZJIw z=E!q2Ev9`Tb7nbx34e}cz2rW>6=MXvIW)yQUDHM$mG9G@x0ObjS(DkXipkQ|CCtJN zluX#KfJfh6bzjB@`&KS>ahrQ!AMu`u=1M6*&%9HF=a84)H`VhL|HvLIde+SGElcS` z{F*lbm?51Z%Hi$9Oo@MX{;UX;ev}be`8HYp`$S?P5VPW zQvO4eV)?Iuh^S!D1m`6kB@n)po}a0xpJsZKbc7zI1Iq8)Ga3hFkKqg#c98N)#uqFk zm#5zJ!}O1p7i5P(V%0A9=)_Fi@tk(zHPXA{`MK-yTUt(etW{0m5t&q(r`uh78#;w_ zGXEPeMrsgtn(qk{UhHe zUs4vgxWnC%70l0qa!I75Ur|2Imwq8Q$H-CZWG71D6)zoaniivbbFIR$(oev?{NbeI z&{eerU4il+SqyYnUGp4l*^6JBbcD51K)f?&7_LiVi95Aw8+cOoREg0)^E*>Fk>?ih zOFBvi3HxwbWqV`C>}|?Bl%~nQsF#>5^&K(?&~g0!lFJgT;0vP(e!0PFexm6o|0OTd zVr+uwCX}AFpcpQ_Te7E+Kz#(8TQ|qBS@ld-SE{Y3a&Cy$t3kq01SiZY|F~ zEA}v}iVYWvq{B6KT(-i}FMI(pl=+w7m4q$1Tl9=}G^2NY(6~k&PCCN1a*^X$qbmD9 z&K_YWsT&CAdq@LQ3;kDh8|)Up0Brm$(Gc zNaC?-{hN7%K9E05vQF}W{|93`T+(pB zyhGDh9+9upZm?aA22kzTXOs78U5T{tGNnDNIY2W^P`#JsgFxjVS3{hP-N!qd^s8K8 zLf%_~5n}cls<$eR${r|yntr}PDJ+4E zzQ|J|m%I~HG6y1KVXSp$GJBqsFDmm}G~s;Y8|FR1cS)#ZNKso_M#kIV4r6<@Pj;>} zz2bo*x9Lx`fGZdFmA(az=g%NLh90k#=(;8MV2Z+Cb;7fzWiftY?s@Toq$3>7nT?x} zIOOJ4oda*lUMOMu%YJ$44D#>-N=b=yfN%(>UpB1qv3*qe&}2sVs-9(1)Uz`M^jJ}A z$;qT6C>a>Ue+}stwPuQ3E6>q3Sy9pPsJE=4#bL>{l7odg)L*bYb^8n#Rlj7>Qn2ES zb3*)Y42?HVG)_7cc%IjpxGZI{Z*X(*-Y?4WtD4B z^EqsgrxZ<*+QqfG0AV0xl6PzMpNbo@h~iR>##fzkni$WUpG9r;fDZW)VsB`>WE(A1{wwRI=v|%Zb+yRxr*j{O zhe^F6NlpaoZEo$hRqg}7%2HK}^prrCw3p;91^JfaN*Jtqhx%sgLM%#IXc8PN1Ix@SpHd4oou5& z;JcIAbAco;*+$3Er)DxkPfY2Ww(@bM-O6{^zr|9r5ge>AE7=-m6&xiK(gOaW`k?Z= z>>`*^HQ7x`FmQu&Vxoc4Gvc+mH}D@@tR8-~MDaw{QHj@0tz7`6Cf^bE0Dx2@9L7C@ zp4Sw0^sA7Sw#Y>4Nyg2=|I&R_bkUcR$CBp)J99RY6X|5VU-n*pTfVH!l5C?1!~y0e z!BvSq=?DX9f(&o)g>kkTBY#+$R&mOaXcV9uIah=Q()+;a{Pm<7sH}FLZi(`(EK5;S zwbnDVr7K>TyIed}nj=1&vjev;A$O0j`U!rLy;nwcTm2VO1!PKr3m{5+3#W6IW_N9@ zv+pZkU&@#NP>(d-toLLDX&;M_k}VRPz{%)@ish31 zC5H>UQk!7k>p(-LDkRGUzf@dJw$c8W8g8zrRkAhw%$rNRpYqsuuqLc{F594ZSbfmD z4lmW8t6PWlXf4@qyyJbsW)gO`U!m=|d#Cf^atwN4u<);nuH`*yKc(y^qn zpd&?{b}L}f4@&OAdEnv7*RF}pv#~FE=S5wl)#B#d(S(hVquz(r8x${Pjfx{R|N8Ev zOe22C>yjkL71eMDVMOs;$?S;&Bgu>)H+)UD(e~6mg}X|=N{GdqSUD(j#A?mghUCZP zl(M0gL_-IJo{=J$FNu~sEppSG8Mo{IFlp57=Cl%~Nh<(k0grqt zb(_CMSE|&?YQWi5D)-*RX5671ytspOikOkx3O}%AeKLE}6f)T+&cWEi1(Y8d@F71(uC&m*#pc$3*f=0{zSRl@;U{Ek|h^wxR zt+FPo3eY{U@q?Ek+Ux_gMs7n+N6sp85pr_#@Bq?|F$xT0EOL(^ayxY*dM)Jw6V3Wg zJ%k0*`!#(JXq=m^qpSm*D!(SCOv^^wNa^$+w7#U_*}c-f#?}V@bM3Tub^PZURbLVR zmc9*rl_;T4m7*SO#elc_g7**85aWn*i z;!?iHf=chtt5(0S3^93G9rohLefkm?L;(9+OEX z^vN9A1ov}oas5i&XX7&GqIxMLjH)MJV7quzxNYe}u&FR~w3An2X{~S2Z7>Txzrrt5 z`Iu?6D5sex;5aCf?A!(^HK5}Dr1{S}ZVdb9V?PYZ&l_SE3)y)_P3;hc0N;Ia}&wkkwf|Dfij; zcpAc-tOrhDM|YWbByNVT;c6xr&4mW7C^4mA8~#%4$xiG zU$*{Ld$sX&#uog2MkRLuFUXuvbikp_+XBV*d4^Uxt)b4otB#k5BZiUwX0790f-v2wzmF#O`9@%5!y0Iyf(a}ObtN@?-4in zU)j1D#^|~lk2yvJ8x!AZfHBXRRsX4FGinRD1N#iGkV~X@ z!ZxR6N85UHEJXc#o!I={Ju=)j^)}i^J<55+i?DxE3bXg7ybi5(O)zcOt<^KE7k&T6 zuBG3`kr*er3wWzo-AQ!_dSYi?#BMVT(d{)1v)>4Cn<0qx#75=-o{D>wu^N9W<4)s- z+PBsp`W3o5<432m{s^Q;7KL(%eT8S@?4@nPh|~HveA3CG!#wCxS?uj#)}m zaW3-Cu}dg(vfe|Q>+Q}A(`wx-{RQjD+D(lMGDhS7VSGta&t#n><{<_)mj)KuFB(Sb zY77SZ^twRv7X*zofi;zPmRrF1j{B8f6Z_)pVBM?VsT*#Z>N**knbMMVol=uL#c>XV z_6t2Nb#vJ79&9d6QYTpGURR_njerf(vbYD5)K8JGqv~2Z)emvrH_p{X^;}z~e{fTq z%w~L);pOJ>&M`xT$?%PFO2B2CXqc>%8do`Tg8wD9BJYzPvKH_rac|S9IA}UP#_)Z& zOw-@ey*8z~$2Sy1A7%5Y9L_mjU(PZr4t)apzG1Z6Z+fj8tUqY^;k_R{0eg*|L+{C5 z%QLZ>NG2q=WpnVoW3q9MuDjum?VX<#k7k}GOk^T?F)p7ufN&!7anl_C0$ZM8v2LFc z?yL!JZ|Q{UNk*_Y@p8F*`fO}F*s$nY?|4f`ycI_rrV@Xw=VUqj7?3Si__DWawqUMvZj#ok&_Z&T?Yp>sl{$XiG69n5Pu18 zPyECz;Qin}XI#Z=GW?BiYU`|C{WhJ$c+q*felR40QjsUHckwKoo3tmG`Dwc&8c(g6 zpbzN|nfrQ7;rFR@Ok3I=&OzQ)_E5^HtT?1=i0hJ?4(eX(cUcQ-dpC+Q$oMggtK9B9 z3hOO#JYsh;(Y^n`#QsXo!B_p(Oh>hF&4R- zbeuJrH<|m4-Ue5k-Y+)X7qqO`Khixid0g!qGN602GpU)JL&;g+L2ZS85A`){aAzkg z#!&rs%Omgp=yKR8Y=3$&cL~qM!jaQZ16%F}ZI1QERY~e+ZP)w_O=X$u34NFeZiw58 zIfd{nv!ZFAe~+!5VYTjWW7P2__*Y8~N*MmBS`LG)n zu7nOmpQMiB9OlK@LCT_RX9}~S%yrH5P`6DFu}=3*iuFn#jQd8P&K<|w&RRt3h+LI$ z)eUzP85iqz84B!E13%-J;JL)dOjeTmJH|7-F9Xq}txZol&TgI4c-ncOzB9y(dQI-b zUd_{U9@4&JcBNg9_&g~Vu0EEe-rb`P-%f>Kn6%@ZoxGduNtF9pq?B=?j;?{GE4q*R ztyXevQ6nlNjO)NSz-`N;v3?SlB5pK`>b}^Gh84Oh!wWmB?nv_##4BPJtAux$+nbSz z=Vf$lEUevc{jR^9q%L(02tiX$Wc8<EFH=q7L7ubbRDHf4VljJ;Mi!?% z!knjRIBSyBzmol^L6D2}x1AB=aUH|}wSB9tZ&YWT#ouAPM zADYf&_8?H0Ic`k~vQueEgZ0WnNE4R?;- zmphbqkhPCA3wbj^3$AzcGj2&zC)m3LPRAF(1BAWIblzufDMN!NWwvWd^9yYR!(m;u zaieo~JsR=^b%b2Rp3SS~yrtPN|E85kSl%K_TYW;e#mx2G3U5f&pu^NPoK;EcODKx0 z9x1y*GhK5{k96<#ORSAPSfeGq6h~#O<(BYrSytk4gra#&ozosOY}Hj5ZrP!Ai<>(l zP7=e+Jl-MhPzDpZG@JHL+bl$Oc)PC8lg=FXx@)NNI(b>eTeeLeCR3 zMqi*0o0Xn*k8_eS zyP899lIh|LrJTK%H;i+GItQJe+9v$b-OKDvQeSA<<{ca@fDOc^(-WLYyarZBa!=HW zmPoM3`M`K6Nqv)Tq5odf_DmrmovGovx&4?&2#HL7T<=%d<{0+qHW*co9YIRVPh>gi zIcs=w*2mCaVz0oyL>=D8mgRbb4rQL^e%r7O8q6M)+%s!{V}T*@Id}CbB2Q|Xzo~_{# zsdv#@>P*f;-d*-)N^RD>l;@!%uKlJjx(~@rS?$xsUZh{ch3V6{g*-m1iTE1P(!8?{ z=b#u5=ro3-c3q%nb0%UgQJ&m(d$>~=-S7)DjwRED#v0Z?*0nLgT(HoiWV%R@r?98- zPILOw24awD9V3@LdNW@y(%a4VJp&_*voWS_r!)3(5xj5ANyJ9Dv{@0@YcDgL(iIqU9VhEhiEoHBQVFXtN!>|5h`XHr zGp6uOw0_kqbmvT0UGmV@6lnH7%3bzU-eAs4>LGNO)Rkd~XO$VLpP-*?ndGHLeQ6l1 znpVLX$cwN>k{6;%TUymmaaI^_>UtU$*arC5HVw$E$7>l+xhC#N=6yl|{LeThkg)AH zTuM@Z;}{>bB#t6)k&d!D@fh66bT#%DED~k-%$CD?w=UH@z&&nJ&@v4*kQ`zS;^{cmG&(k#mK&Yr zone`xN9)&^o81e;KW z&bs=OkfJO*c`$nn?*wNsZ9ImPHY)PQ6E%0yx7FLsmpsx)OKMk4d)j`^INlg`l-wih zDFhQDxcVpW9?Vc<-B7!?aY}{=Ka{bN+rs_EoIyk+Go>eR-R?;0ooA#ucGN|iA0m82 zI*Y^`$#v5&;9jLWV_x4XYq`E$chYpi^(-_i#h$f-a+duEZvf{#^*nk+>Y*^#bIi=s z&(e>x4Dco*rD^q;m$a{(Zpm4nK;DdUw~VUa;tUyI>G~L^*;@H0HVHB{_}7dJTy>KA z8$vJm)_D5>*M7}#N4L)S(9tjWJ+TD2owSUV$0Km(&^=f`j1%jX>@&CZVO@&3y?b>7 z06m!2Xdm?=rVY#qT(UabTmQ8w!e!ki0?h$T*4n=REGB~}H4u6#bWWP_rG}v6Frdpj`Kg4?5 zcPKU?y*KVMJ&&8kYt1SoL6M^p#=4n~vBoFKG`HG*JrIij3&#_8B=6pO?qbG#{NoH~ zqpCK?1{f4NiOJ~vT0aHiL){~D*qwOCIMZlbFeB6UM1r0i%b)rldYyTPCo}RZH3O4D zo6YIT8^=ad{>pMddWCwr7MZGbD1*W}rFMFwIHM8AV@%`*xiaQPq6D$7nOUc_XC_aP zZ-hH$)ybMSBi<70na$h*+z|Z*&YVtcq}5)q*6Xdhqo%E{!=ZL5PqO+_RweuTV2+yl z5xq9`Ww?juUvoSCvLyA6-kQk8wD*{Ow40n(yf|wy`4TD{vabHR6K?`_Lk;6?On|hvqJ&r{J>EyTxYs zIM(<26g|XT?4H(ufv(7|q6TAl>6oNtVub%zXQTZJDTS7lBhV3<$2H@GfF4&hKH*mNP8F4h^o>NLhq z&QNee3kd}!zfAg`hU2I8#kPkni9Yq-NjeT!Ki8~u3&VD32lPTJiPIxV{W_&xHkeY_ zkm7cmp!za>f9o0F#@N90Hn`(-IyW^r>qR6qa$X`)x7D%G_%2C(q5WvGNt}eo3Cox= z?o#feWPkjTk=|5S+u7FJP@SY+=KQz5Hv~i-BxkaVdHXrDXooS2((Xry-tLw~`u_R~ z^9oNe{4mv%Y_Y>Rt$Cx_RLbV8jFh>d*{**~UR}1~yLCwIfJSsiB@W8y&9!qC%tOTC zh)c~q>q7RNq!t2Wi+xz#o#ye$bfICoxqY|^x+2*mIyLsH{bI!$>UGCV%Uml$_>{d_ zT*`QM8{Qy}nW{ryPIZPCd& zi*BT0m<{U3H7PPy;}_7%rB`8QBxo6^BICmYL zhHI6+G3#;5q%~Jg>{b!5JyCvEK z)(`7UIu4$9k>w;Mkbkv!f}NdaW0mf>L1TO7H#VKl%q18Z$GE4tK}I*io6NL$x!+^E zXsFOBjk(Sr!9Fe3$e*OWEClZtr-?QfI}dg@8t_(I9_Wkplg&@v(C`yz2D$@P$yRb3 zS)a)xvs$I(Hhgt2vrvpo(^xyv&ufgqJeaxEo-73mLEn#G32&VkRX@x<+1k%M+$wg% z>n}Dh&uqcgQid{~)BBR|p&{vKn|yTx+^=ml)^CpV+Na^8knV`-I0HFGT|qg5N1%Mr z?J;JZ-hI)bbj%@(%Qja6^aZu7r(m+BH8kY%&Gk`;hNEHkXf+tiAdyOu&qC{cC@yiZ+d7PYwhpt5!sd68GVuhumtRx^tt$jnS%JPzyt^0ywP;u7V<%2G}t6eHdVoN zGDlKBVs^sj#Cq2nZM#iAQ`Bzow{Pm2LBt_wdS;BVncO$~GxSq9$9urq&UDFq#7PhS z*L(|}N)XbKtRjYz2toCL{1qDQK5pq~x@KA8J``FA5u=)kV;OB(W9a#W@9>)DF2RpZ zqj{IfZ{6z!B0%c>Yy)`&6JU*^jmK@x*w`cv{OOotMwn;VKh>7UEU*mh-&7>a$|O;z zVK^{aOi+umL(F&0AqT8(X?%GmAMd2CW({N>A(v!dfZh(5c+0JyOp7e1Tm$PNEk*>1 z2xFXL%}buH3<-s_3-xnhlDQfWp$}$NGwh_XS&ve_HZ1WBw{A17wCG&V>({mnMNT17 z7;{)*dJYkS%x(Fr{)%h7kAJ%oCUp|#UnQ}2D1#bF8EWKXXCkbEsj&>U#2Iv z*S<5+OKG*}x0L(LCgy2sTWn4`y|KA=r#;Ku!_0Kl__Cnm4?p_3B4-+Td%BTS|L#d^fpK>CKlrAQmnJPhk0(|5~X?)jlk5E#lwoWoek zdQE>on1k4oC=YgYi7nSmmDa&tb@&H#X!aR$TV{9GVcHv9G$Y(}EO6ej((E;n?SpIk z$A-bSV{)k)W;L@t^$KP=Y<_HBZIQjsG|&9EV_5)fQf8dNZJ>2vb!I*yFU)p9>%vpK zX6t1W*TQo>4Nge(LL4Mqr_W<8WHb|*sIic3p>=MBWv>Zkb-FPPUdUC{G}0x;EY@6l z9^n=IM>7!o;0&4{nD{oWcXMQYsy`b+nZYbzNofVR-Wgq*!hVsXzd6&q+HS8+#M0AQ z*xl4H^C=UgWMbZ@y^LyoKWtjl8FSb{tlJg;J5z+OpbcXom>tMJ|A(P#@RuX&f@9n2 zdCIe9f{krk8{0NEwl}tI=ZiLWGV^Rr_t-YR`xi|A=G?AR=box+dJ9ZXf34+&_Oxaq za>g{y!%Mg*V!lthSe_@_$X`Xhme6?6=EKNw%^2-M%WK~ibYFVCpiVYg&X=CxQpmj6 z5!VRgH~6P!r*66}FPMwl!CWrd50T|X;=}ACgahGejv{>?+#GJyuXEfDKP22?!(zI8 zJ2Y9efXT$Mf`e?Ub>B55@EqeqSIbx?`93#UI!dmReG%l-x1lfl##@GI&uXqBGIJd8 z@cq>N`~uk=IV_FyiYbA3PtPIK1mvpbmey;T>K}yB(EAFhP!IV>37b2eG&>q`nhd95 zSkt8Q*s6l{I613U^b|5ci^NeDjBgC7?ThpbcnsXzz;TX?OeD7FbdofakA$4U-;8nC zX@O7HX1eDZ98zN(;GS#`oumZ-zJ@tF- zdqW5D&sgojx%vPR#WPtg@hwB$>;ip2vm1V4c;sY8>7=ime{9Ub8 z+6S8M$Y_(#eJ;M1@|^cfI#J$V_LGlL<)~5K$>yKPc};U|l4Xc54_!&yBDf(NF7GO} zao3R##xU;dMkoA5GeXC-y$`&?CNVQavmln7AhEEqL`>wngAdMC3VdCk;^-XiM(D>r zFLpu4p>v`i%=NhS!5g+Gx_Zrju);Xj^)vdKG=!^>be8L6c;Rlk6HWF%wCvE{(CkEN zOqV@l5}DL?{0MkDw5$hTNu8Xy=BYMqN3LtOYadwfej|D#Ju1-1y2(wFaoo=&b@Xpn zf$x)} zD3$pR`z;`_{jK|^aln_25!cSxQnH@gK{`Z!Q?^Y|OH-mp`O+<|wC6S7kg?{$UOuXZ z`i0+1HeUWz`hvHCaw#5mk2Cc|?rX}m?W`~SH!!)3wL%%Blpm0M<1k3v=u_uQ!yY)G z5$Su_TZUTTC$r+BXV4GmFYzPRLHz#EK6@`c9$pC$VV3iMk;lZfoJo>2c?;;V@E-;S z%L#0^Vs)=I1xSkNn!9T}i87zJOFB|MQwAn(+6vSy?(rCUuhp} zW+BH+KblrDNnNvhDo+)E^0&H{bjm{5Mmzvn|(r8_;t4L%|DK7dcCMjhjjC z6#MAfU^KvWnmxKPHg=GN8_(<~nh*J)67gmBQ^Jezeuq!r7hrjle!k;icn@I{`=!_h zt$?PAHZm2sw!zi5v$`ft9X#E5&c%#%zR zHfuj!nTC%v8hg0^#O{%)yk64I@{O{7f>SgHDg|_!LhVzHA30?{<{gV-(zN{kvflDt z(sjHxlu7Y#?oQxb{m>9}>#R{QNsMP46-ptYe1c><=Nqv+vfX*ba1iFhee|2`D?$tK z2UrsE3+N$)6)$4-#t#ZjwzmX$bqaoExaEvQ?8K{_B@&sO1FaLbVZ6bV`^Q<`+Ao@6 z$QYB^y)!<6a)Nh4+E?CD_MLC0Do_hSr_mvgH5~yWbocSmuW2&`2V|Y(e@U&}9po!9 zDd;pLq)IbU$FMyKT*0E5WYHif4kg5PHk&Alzz(HhD%=vjuTOF`59bpU>`mfwXfyP$ z=qGa@?sV{%tz75V{D2FL16}`%UMIEX{*vU%%VaUZ0Xhn>_9Dw=?OV-Zq}FuG(>uYU zCh;}k>Acd;{I=BPiI1MJ=_>MCb5MKF67-d#XVNu-?=l782;;bFk}kT!)gLezm*$P` zs%>s?BJMhKooGGO1f3EOWsf9`5BGHZ)OUp^!7{@ehdHbvd}V7v9~=uc6Xh_Av5f(x zZH2B;gFwJ$Uk$ar%PFADXRdX=9ADtAlz zlDCiYGA{9~GffBYT$8q~^`?J6hR*m~7?+9VnIGoc?LX@XL4~2UfDcJUb$JTsZm8Lxc znU1>C<1un?-VA9w`DhtI(1UgoRpwQhMc}`aYwOGg?>*EQ8ecF`)<*ufv?WhRrp7n8 znWk1qt){i^qjgB24fZ1AoiGzZ$+INwIm?OLB0Zh!4LjjNc!U0z{d?#w{tv68_ziRf z`Xx$Z`El4#hMlKp!><5G@HqQLTal_cdnA0hP1aTDq%Xr9@#k6VwSNG+J7)UJQy#xW z`NF#+?I7m>L^wy)CKTRL<~ro3X0dj<v)G!+!1sn9!9IL}~3FFzv#l_GJXp(3*vnOs; z@RaSHF0Qe|^Nhz`n3$F{m0K%GmOloF(4YPWZSY;U9MS&Lyg@`}jpsmO0JS&Y0V?}T ziskz#io|YDh3Pb+*1Xj^EZzN5%mq3|r~;LH2oPa6=}NS#E8kcOQ(>phXnPjCf~#R3 z7p;XpLNfp&FbGhX?|7{50k4OL8L-Y4ku+j}9TwZ67LZY>VeG(O43KQIbxut#qBnMQ zzlt3tJGh0?Jo!>tFTpul1l7_9S^8;zYY5u&=7Zior~vglzqzc1e7$rvuM1^Syv{ww zG#P2q@N^rkUVj;;J7bLy17YRECEGYfL|x>Z^R3|~oCA;4Z?i85O~kKaB}C_;b5K~c zm^B~QOgi`Kcwfp! z-X>{Fd4cRB-%0I++TlHJMuY!ukT%`Y*@s78qYV(OkmbsAq$ciu@{`zK?j~b8V$;k4 zh;S?LFV@0v0cLE4++rh}OH7YM9K#IT;Gyt4eX^rjm`mWWXNccJ%b~ph5su<+2N9cF z$Az2VcE*0Lo6$WaG54N?EB_)3369X2n09`P<-N8Nu)8MHAy4y!mxAJdmMY~2X(xUU z>dr*HM{NFplxZ$#?^|rXH|SpU_k!CpiM&iQp4&i*MUT1`8htPs{s|CaT(AdjD|57H zJoF1XBp%J4Ls%1@?Xc-5!OP%u!%IhH_!Hq0`@Ogt>J24}S~B(6cwm(6j4q+!BKM3I z*Th(B@>On3BA4%#Z4tO>6VOL}b1W;hr5Xb=(cIc=N}Q!`=96Uw@-qMtPEm^DZ9SJw zdl9`RpzUNm<6n%?(F=t&GOT=^M8#2%`bWb~tnm+=1?TJA+UX%bPQrQx@ah_rBYw|% zf&Ue%u>Y&?315JZ7)CkwMwStqbHox0#DZ=K4>6S3VS!?6f6%1|Ak9qs-0XN0IfK_j znk?@n!w3e@ZlP>mi@Bw?LQ|-1GBbCxyY&Uv+e@ZP{gI_q5Ev@ z5lF&rW}Ft{0rQ0<9XZ>G=OZ(mXAGA?7v8P^X@4EMhQALw%~|Ll=#wa$MZ!a1R&ELK z>NgxUIGpXH5a|tPz9b6O%GwIO^etc-?PHB6J%n`Un!B@5>odm`pOO1zI&gd^v zPwra@L4HB@RxpJA3ytxAu{_o4HNOz4x!SWX(VUviFOnw7UrH0aD5ZPih9_Wpi5N6L zwN6W0KLN9yt`j_xVdR%3V(u~0%jjg+5HN8i!(qS?ZU*<^{$s8dO@!`2m%=ob2+Uf2FM~?AneZ2U}%AJ))u;uW*IWWRPUY<&!ddzO^^!ZNwN?8D0K|# zruVHm9sG9_03s-S7StA6x?re`Etg3x-1Fp;*aSDp)E}Y3>i{C03M|8ZV7wPnpr4RV z>|wVg4v*wJHyEzL)8J3wPK+LQ;PtH5;uFvqXq%{(`2trN1- zY}g9#g0l_x9B;yBz%9qW;zv*cBo%dMl5ly!9k#E!WH}m>w13=%u{+o z@EBBXg`|!%gtRi6=V}S?sxz$6XWC7{Z#W}!ujp^+Uno;t#HzsiLU_kp{T%oSK!k42 zS&{BU6vra|0imG#!mEsa*qH&Xb)#-JEYcR3Pk7$NVe(M!9Wg~FmE`lXsPj-aeg9g| z=$~s-4GV3%{Sj0Obw2l^C?xJLB(QTyviN-OC9BiGHb~7ooIOJx44sz4Z7;kkoX$fr zHsd=-Z+k?x1ExbJmTisaZR8;CAZ;^eGe4QXnk}aauy?~9JOSHn%X#Z@XQ_X1yaqpv z_KCHhvx@zgUQaZloFS$+-&t)haB4h5L$?wU{5WcyF^I)wuB1{3PZJwLbG)5hE1Uv% zxsMg`qb?KLQ^}08j7FM-?8o+tQ$l!Osr!}twzqdM5~X9F6S`3j(JY{T70oUbl;oxf zn|TMSCOz43m;35SS+c7iaSpGm^mKBk%=&y=;rpyoL66uSxU1^t=kQnH-OyCKrl7;j zKM*5lck{I^k?Y0=u^rBxRZ*p-DLao4A^3wE^Ft?ZChAodbAco%A4 zRh=mLr(|^1M&v(tN8D}x`eus@P|YtCl!MHeUATkp1Mr24!9^R2x>kNi=6S0K^Fb=u z=)$?m!+Ee(+7M{WB0>JtASpZZkQ3;l?oi{g}8vN($Q3U~HC$VXchK5J~O9$eJx z&tJtyYOQ7{c8vKYX-=+Qv8HfT=0$NQ(s|!Vt-8Xks`zuYbYG*+F%z?y_c*OK|A=yA z!Leo!_%E@4xn4H?Tee7*uYOt)K;*t3#PQ-;nV!NT<-5EUDcjlE35RuR{oRrQDoqiy z=8$n>I7%yr4(3c#PE_v9Q9}{htnfu+W=*1Kp{l&(82AepC5qS|Qi%D&=B*X?GH;3{ zq?Nv*T5jbrb)$-2-dXe6)eqNAkeO~Q$ZWp2pm#G7KaSbxENB{9wqNx`eX=q|H_uNa zFOoFN>aMu0%*xxCJd9Nzdu$nB7bzyFh{cC%Mwr?}KGLViKjsuD-z&CeuaPaM76r2n z{;K9hJe8>=QUBWpp=NUAshs@R$|Z$6GTMl?6O0}YOsxp0o~rtn7io65g?P8%WO}Ti zRQWW&RoV~k8MM+NZ9HDuRaLD{s|xDo2bh$8(id4P6-$--at|ftGap2+nvc{TD`u)T z6wj!gZk`jhFeWA~$z7p5rf_5(0~wfKKvK}`Dnii+)xOd|1KKeMeUU3odzx=i78WAu z!-YFQdPpnyY`ICrRFf+j;Ln~(1gU6s#;U?9WuN>-sVdIDsIKN>WzU$aC(%oaa@fu?iZLFF`_DH^FFJiL0k3QT9SLP<^-JH&WwWM#PGR znXd|;DL>^MO?knd3KHqI)jut1sk%~hx0+)77#azZf)d$o1zR~b=QR|d%?@8MifXEg z@>GjUX!Sd+|BDOR{FK#sHTV-)HO> zIS7Ayry_GI+N*0+L&{%j#<-hsuLbkdbp_?h()S|ci_rbJKU0_He^KTZ#?p5PzvA0?7Q^4mF>0pTQGN&h$3rK473OF3 zDEy=xk$)@|!~Kq0YX7%kTuMPod&%@Cy~|ysY_Axc^+mFgZ1$hjc`6b0ZWX)iMPr?#D`qtBbebXmkMcu- zB7KSA2#)98rfFGTsT!$1Q*jNs>}^T>EP^wR7v4~+^IoJ_*;f-YZ6E8Al7XP=N2+TL zTSH8c6!bk?tsp7q=IEhT^oL=iacm8-xQl95iMei&by>WaRgv5$Z@O_$3afU0+|Jgfce8%z2u zK9y-G+^y`9SDIYRS{)x@wb#up>7v3HkE}tAx5Em06Eq_Sr~IS%p6!q^X`4fJhU3*Y ziiW9lB_HdjgS=Z4`&r8GylcwCg$)_+M1{nQ-mA#DiZP(-f0ggih}|b~%LIAp|10>Y ztj|A|Hk#KR)8u&B$OnjHQim!}>n#2ao*rT2L&l zwVTQ#Lm9v15r83*vjUv5ziQE#YNiOli_2nR&3GB$y# zH|15O$T)S0i#AU^rgWt0XwjnTyM_Uwdg>S1t?d6m)i>l&WexWorY5#LYkjLKW;TdF-}YnpyLJ7C-MyEp4x@KrgnU~{uW z{4*et?sL;CfH;TLd6lcRr+o#abK-TGm4$nhqw?Iz0oH~18Y{hi3pjhY;vO}hjGMwJ z`ZK6!jz{rFQJc+z+S2Za@W!XruZl*g>Pl|ccd;!`{Exje_R{l+8+rrivh_Ef;sYeT^RkT(M)nCg;!(`7sd|%2=!Bi#_^5QV>aU{XRm=5AUEQby+fLfV?2U(~qu7E;_EVmCkNlq3L%1P?c>cthqkrp7EY@ldE#_+;}N?l$oWfUhBWwNzsP=d2}vS@tuCIdZmh`LHP z8z4?p@o!FR`3<@YQ3q*+)CVS3~S4Zkc(#aHVo; zo;;-^+ZQhe`A{!PW~(s8Sv5zEox{&*vmkuV55-4?J-ZvUiG~V~Hb$zgfL&CU?5U@K zl&S^nZYeACRx6JcvNFZui$s}Es*P2gP&-smc@ND~S1K;X|IuuD!F8oQUzPTN_Xsn> zncg(3?5)b7E~y-%+YZ>paF96~EF7-<19I`WtkZls?nwM8glKkP{%mAsfoM;%2tJaG6p*wPc}vf^1PP4U;-SLSO`GILB)@7#Q4YsK!Y)>0|uB*?a2Th*rMlFCv# zwsEB6BKk4NwqBEe0=(<%(>;P#`1kHq_+GhOJykuoq9elb9welR#$~iG+@>_=F;bUv z`k*-WzZ-^>Zc&{r8d^QaUML`=k`~c3#&6bNP?sl{@%Kh%7FT(YHeBDrWwvRm}k7-pwFCD&MbJ|%*^ND?zp;Y z(#oT%8z5mjN1NfhMihX|(cOUA&dmEOWjZ@6LAD*N*OdIDiWX67rWuLhO|*89Ci}kP ziNcmW61q+67(QccTO%sor21Vl8)RU*<1N{=l)iammAeZinH|M-#Oc0i+P0N%)e#l5 zJXy2RrNzGC?`zhxV87Cw52PtP59YjcUekrL29;0!zA_yopMD|{B)2nv6n0cr=Z*rL zk`%{Tf7GokSqG|KTr-%%DwZjRWY3o!rb2*SY^Z)$bWAn4v|EGO#z%GJ zRHwYno1x4voRQI8^dF&*cL{R5Vv||{Qg<2fNp}MGRM0j3e8EQL>U?QhC0B*s?${0b z%m-E9qE%I?`q_a-a!4{fi=~h#`{XW6QZlQfPIIW1Sh7J?ReYg#m3d(F4g-~h%_S*Y zC~jsgmCga#WJmR%s^%3vRaKX!Hxe8@&?C9eQ#SsA3l<;q}Qo75+qBdE#ts}1{0ud6N;6;x*#P6jztoQ$45USS2PyDQ}c z#+68&DZBP~@fuZ+k|lMAE&F11fL)x<%~5I#otg6`?SK<*pN>?;D=JdWD&sXNotrVM zct_J-=5JBXC@5(L35Mb9u75NG%312`>R<&<>+>!k)`==JW*3fEF3uZ~a+p0i(arXu z9#^_g6)bXBw>6fAdeaEd|FTago+^krTc8Ho;_x@)=$fqJ&8m+jL+YPczs6DQhUBcg zfy$#GVSA>SNZRe&q#aoKQyo)b%ki2qt|!?2{MpTv1-q1?d{i?mUyS|W+}-rF%%F0r z?^Y6YY5wyhqxeMTyTYzYZSK6}1+2_?s#R0By=0?mQt{iGfhJ;P89f0_%qdf>S4_>` zCVN0_6MAa+xB7R{NmZ}X!UnZ1m`DTZlP~k;E87>Y$QUkC5ypDAB3CPRs`J$6%YB-S zZZqzNpabYL+m)O0Gt!J)E&77va$|bgXYj61t|I9N1%8svfL%~P)raM7NgB)yN7)um z9S^(#KZ|$OjyJakiF7u(GsmaMR@}_|bIiFES?0*_=ls-_MDw0>z z4J(31N~Khr)fuGeKhHTXZ^@{P(9A<>9~W;|buAfRx6m>!cAfbtX+^F`i4>x<_Dg1x zUH-Q^MO9%@jcP)frxE4s4N{ILr5(>-qMTb`Zq`Sz2bb-Bu31-}tG=r?Rn#N@c?*aa zM3(`x9jsgj=Etw>^NFptNWHT3s>)wfT}?Nh2;pg8W!tmYDIS2--P<5d|52D^`nP6y z@ln;QlKlF0)=lwOtP9D(+~&$dg@ZB=i+hnueLu9jDlKY^+E!NGByr6LDaYx}qWSZc z(fqV#9r;tRbeF10Uxoph{)a0|wY9zhq~qejnFk9Cm7d&F$q!g7<4dd=pwFCC{at*z zh7FQWljsj2ScsrS290!R|sP)t@an)Qnf23HXO3uPN>;yQ`YAV098MhaX=&` z-tnrDriusZ*6Mxb-!<*sr*R_$-e&U)<|%jQ4@^tv6=JLoUE`RtCcx%;S5@d}feqvf z5(>x?rzxl8-cH)X>>3+w83g8;gR0NPb80iqu1G(|HTj#IMuk%GGwZqZGi5~3qi0p0 zE_$o_uhiV|(B6b{b0(&u@+T^*3x21s7wYi;c#7fHfaAK7%O{vv#QeRB}o+w0Lh##CR!;r=No8IoA{`6+1v0BA0eMlxnn8o2%EBKhPw(*Wp?Vs+x^0n58_DKP#<2 zZ!CuA#5XM{GpRZjwXS-jGx^7m*GpWP6@_f&^4uRu516xJ>n#iGMuMk!S3IJYVEzs` zY{87$_=fmpB1T8?@B8h_S+wzUUBkM>+=RHkpfHlO`(YJ(1S)M zRqR!-RHs&4f!lhH;|qib(jOO$REqKsrvAk(M57(bMqgMK& zqB^HeeiVE|VV(I=Ey#LNH7`l6V_PiI7R-rB*||=I9t0sbNL1u$fo%P5&}ST~o@GxO zFFGpFf4Jzh5&5H)YYS4-&k0<(6K)CoqkOFTvHDBJ5oDbA9r$v_pbUCpXXTN+$0$Z8X)bCI|R>!EMzwkgMLoIt)w_ zYm;~6wo+gU7Nl1TyAwUWmU>}L%hD|+@~ZyGO7}wSH*Rjqo9xMXxqWP7Q|g0>41Mq7x9h>KMU{jzA-F> zHgU5r&tWq^F`csvaxwx9@jHZR^i<9<9#`;Mv`E$q>L&2xHdt#*|NTDZ=gB|ab=zX? zSc_z+R93U5w5ut9OYbsY$M;#T)LbdT7HzC*Z`2NRQR?*rS%)qvk3z)HcoN3kGH2><{6|md2jlqW`qKg58Nr_)iIN6pRo~srx~V0+l~aLU{5ms5k8QOfhLK^vUd^Ahu1n9^qDXV zKCP!ZSYbQ9n1vH}gPLS^p^}NkWd+yRt^j?;5BM+RaMy$A7E*vSSMnSh3GT>K>G#nN z-)qZVZN26r!Z3gHOi%ErME(OQR(?Yok*v{E;OP{|IB-YKv;Pj>!j&?2i{*jxRA_Zc#s-6Bau z1KTJ@ptcZJ#Ag1&x&xDKZ**d(w*0+ycz7u?()7{YC61-E;&qgwd$)t+7?^6w^e653kWBtXl%3u-6&)g(&DZWEbN&{fP4;eVoS)&%xI0 zgP!6DhidU9tQ_%SXgttoIGM#bcd)?TT;B!ugUTsfYobF*^_-Ow8}tGww%*VOV7B;M zfSn#1et}e)76XOp3(7~{A+UR?mk#AGrhZGLdncL0U@vt;d(QINw;fHQZxgJO#h_xz zGA@`8bXUss-z&3WTtsqFo^<+X|r}r2-EMCe!MR*y$?Z^U}sU5J~aME!lyp1r0 zy+eE-?9nqt!G7*(UKHhyuM8 z{*N&edmuoxth4%20Xt?OV~Nl#tAjEmqd9kpMUhj^pN7xy5O|aR zp8Y^*DSjQxCE5h`=)XlhSuOCxLTl}l^}XRT*lGCVq(zOy-JBj0EmSS*CloOrVKn}K ztQk5qybsx9qI&*~52dW+%>tDp$jBmNDPfN2rDbEe@uycllKw{!dz2Eohh z!QzY1AZUi@9&-!sX3%M4=v%`?WV~^z>sfR!iOxMH@j{nn6@t}3_tVZFw$y7Qn%@Z4 ze8`J5*UqeU%0=1 zm|YU`;pnWZqRG$>h$goNLzeIgrFft@*YaD^PNOVduemok^@FrAv)_9I)rn^1=gIK$e5rs} zL*~U#yW5y%B6N6~uE{zMXwJ7YjtPCTVhAHi;mjrOk4$o2HM{_tsGC3=TpW6Wf5hU6 z_dwI2D!LuP@!B-N zQxiW{bx4tZ?M?Rsm> zN0Q*Tx)nBV(2C7s5=7}hnS4>a2Pgqc!v8s184kdkVU}U5V-L{%^kc6S--6metweK} zt#G4*_iPQibXbHOG(K|CV@*I|`dSi%cF4{FZSY;R+4n!N<@ai|NIP@Db3DpHCAO~B19y|!a zn})kT#rBdbxFl%;>LW`P?4$)y-F&Sr3&FX{*1j^I_x42@sJHnf8Bsn$I*!+ZvMlZf zTmGF05&lbe+#2_*Fa?ZJ!Ya^d3M6wm--*u1bEn2o3=mt4g#KS_V~# z#@;(ce%2b=7L+P0Q1K0j(ZElJQ_7KcdEYM}f15*r1!{KF72yhkUu zT??$megRv40?z|JKNhb;K%c`KUz%8I8O^AwJS)kMOg1hLu*(o6%F3vm#&ecYU4z$7l!`Ft~ z_9tM={|>%onB?3QnM~wxT;flVU3OTwi_sc8BVe&E)Cu8*NPE)>H!c2$OyZ?TV^EgN z#_vvhfJ%5tmNDSz25Eg}z4tIGn^wh7lA+{)me_ zYZICi+SQiBzQI6qK29)6=7Fjt`?;-v?uY5F1Dz%Zex;jX3kQm@Or{HTntK2djdVObhLnkhlj(|3w$O<`~&X7nrB_+HM6m1BK}rQAg+?)I&^QClPvt`#W6vP4HcK zv4Q4Hi^K^Z*l)#;AuRM$SjRYn{T1kGyRFNEMxRK{PzkFr0I zLb8^l0o=3FnJ^gP3Gg!gPW#AEKE5^UB~ZJ~hU!G~Sqtz-La*#c0fVW5YYms3#gS{o zJ{*SRBczs%7xrM-FzJCe)=@ecydPO?s&x;K(*XBuDfK{j*;9UkItOsi26Hbh4qmD) zu;lt`P&2^PkOSU1yi~)zM22I_-5I7iNHc&4T-%|*M8G}4y_M_{R0NcOO5%h_H|J?^ zt~SAyddNWxH{gE*J=r>_E3{Np%zTb(3TD{b=m)`6WT3ITYe#fAshl%iQVN|0{-JZg zg|ZB|n+QND_#1JUwt47@*OWIvrx<|VNfrDd)cXmccf1*=rNJMxFD>=HV`v6_J?JzD z^hh$CYbRyI)UF4{R!Dom5pLRg2gSI4Ouh&LSiVd=oV}iKC432ZWX`~s;Eq5E_%3{c zFqgdXmE9nk;${U|ABKg86bj>wg%{au34UG$uLd3 zz+B+{k(fvA$^QkOZkhBN?>xmBpX+HfeM5vWPuI)3-#-}WegcAvpbL+YyyLVX&5P!` zIv9z_D7de_i#--B1-hRtqMm@=QN_<#pYgU3$?-$K4*m(>HjH(yjSL35pC<8hNDnx| z0Y(q(>Hyld1>n^xfCz`&@z^V}hs%`Op=6nr-=Fp$itkIZEYMQm(Et%@y&F+%+6O)v zR4!AR!t;>Z#y`8Kn06zn@N8X~wNrqA9mSXhD)7LgLEb-7OXnF88?K;agpA!9$)=JP#1_MMm#T`iA z7b|cFjT1oS-s>jW41vc$VOlJV$}U0|#24B11WF|4SYmh$pM>d#*^Y5x1%bitCf)+2 zL+wR7nKN+5gEpH;KLpM}b^s+{P4ohZ!QCn;hE~b$2!_*j=sbVKV$+IXCz5Y2@k~x& zsZOAXw?W6G4jzU&F;V6zG?35$D$R2Mzu+G)%|1_6#> zu^kCc!);;yB}xJ+$xdQATS*ufp6Q?g-`ab4El>h7BDI9$?4#l%kWZ!(S{P5UhQLJI z2VG})DiSv~ckhq&B_9Tg_$sKathwMJtvPxJ;GWmO)3w&#Gq3j2QCEPMp;!t-{iO4G z<0%i~%{?yxgUJR{!**+#{}9GV=L)aNUO_oP2^b*eN2AU(BOX}{uhDO?cMEawBGwsE zcW4|`En3Cegnt;SwLb-TWrjg&it}w`H!+9f1ryh2fCvMD3#C(_+PYMygwG($O=a$G zaX(qcgTSvxq))*#x*pZwjhLrs#qdAcLQAUeD{3&!$mh!%p_oL=y-yCr4!XMm2Txo0 zq)uqt9TkzD|)ZacdNadl*(^O>OrJ^8nkzCcvX{E3SM zd)SBTXTf4*C{O~fiFPKv5Lbn4mwx`21I_W56BE2fz`MJqP2hDLr`E(jrJDUCMt$ zEkKzV~a6ff7Hr$;A96UqeZ@Q5-b>JZOBjXxi z#yf!*^bR{jP((7FCjnmF0aL>`;7cPBV3trk1>ypZa2!mdZ-OFwXZ=FBJ+jNV$@M0> zhNR<6kURtI?v7vz9gP|8&#-ai7Lt`-ePGnv|H-s38|YBVb5qYU#o%B__MxX(%9=rh-SV}E1@EZ6I7n}R)Ylb9?~Og0r#0&Q?F!e*c_ zZDV)|tKby|ufrF9OIQhJnl<3|?2FLD_<^MaciIfPzv0DzBc!^Q#j=6I^q%A`V0XEK z|IzxOulX)mzJXuwuDxrX;|(OXQG4;9NPj~er1OAN^>cifr`A-Bbb|ZpwpzdW*I|Cs z{eqpct3cJgnS&v9iwazwjS#XK-l$(^ZxM>(BFy!oET|W7eyst%wC|ySy-0r&4#PUb zQRm&r5+Z|BDLw|Ue1vcagM}Rx2v`s4`oTAm6{a8Vf_N=C23)>BAdB=qpGn(~@_PlA z_1Z#sw^nHp`JSMf(|+*%($A1tQpbHtro`{Mr<<-IL*Pp~wrx$IC3Z3BG_Pg*p!Z@M zdjN4)WVN%@-~(M)uNOEhp~v{+ERCoy&`nPl)iBF(9N=zR0`Mvq8EtIsnh{MSo#Et4 zu0iW$^@6*=mv-Gh$J$ZX6*eJ0(=v|%XwEkR@6}J}sx*&3om!q4=sjibsBI0`07Urg zn}aT+brC3JFQK!N(cpe+RE*-b8y6tc;fU^vEjwtyQkZ2xSG^RPCZ52)K&T399P`1% z^%?FDw83Y?QwW*tuHu;h%frI1%naPjV7X1Ip9fDsz8On_FYOm8mAhW@5U{(s0tWpi z8tpe(eA@PKCg2Dh@6kjCHO$*7{R&Nx-s63sWF;PW(ty*VGn}q#5ALUUm__vaf~m6W zP%p`E&J@zE=yKO~V^?GyxLM4z7YC2vE->4PsL)^tE&j>!;0waT9V~!XW`GEtoxLJt z;$!v+@mlDUY`^dpV=eZ5V36%QI9G>|)~1E-FR|t1n_Q604A`BMzmOI}P4vyPJkYj< z=V(plXWkyD@6_e|uhMrAN1DrnDC^=}&wbN(q#wKt_=mWG@4($87aoxv0ym3YIWLHj zNWD{HX{NCF`sx2g-tg|DM$yzcuvL{!)Jd@N%iK(&>pj1U_1;_yBZB zCKXZ`-!P)UZ|er#D7XlDXrg|4!|VdgXPRmuS1d&$J6H<9%M# zESi}gmp+9)N-lF3kw3+jx;vUqA=BXBx*@jz0;>S`+$DS`TM7LuzQ@K9djjtH%-{j; zCB9*#LlJi4zp-MXet?%NMJJgDa7DpF`xyNexG%ELxYl(qI-T^J(@k<78Y{aYm`!J6 zX8AilDOu54wBmEEBAa(NO)Po6@cOjUSd%$R&&qDP-M6>C01RZ6! zpoJ0+_a%uG`|bK^oQrIP3-x;2(qJC08`Cee%Ekic7mqy%IG}Gh1{q3V9lXupa~Q)n z2ou;7#M7alvU9@wjD^@Yfep6N`Y}koc8__EM-aD@MsR9G8>KbkY~D!fcT`J%AKPrh zGTjXWNX78aMvbBz;WP+mi$j7CYcgqHobH=sdt`iS*la%I#D!*KhEgYSHVFhm4lh9e z5C1AU)LUiiZB8{$w{7&SijZ-Q)KBap-T@wqZKLF3xe=GA$$rK<-9~WL`2(?b_`TF1 zvx;qGjirAfO3(|!-@Os%PRBu@>PCg~607l6%5?^rRm~VkMHA{14I!_$+7)z8cWZob z_!6oUK}|VD&tt5nm6MFv9r2x^JHGXvt{%GYZm2od#vYRLJR6;UmNOxEz40a3S=ChT z(RFeUjeJCJA)RFpkTKJ@X9kl=oP%-1a)MNTKQvp-GXHVxT=q`rUHYV~m(3PSdoeB~%3PoHryKQke;TB^HV#6x zgnU4dksNI{sM%O~civm#weSObZ{3zgNkd=F2jdY>7nGM)1d>D3Q`;q1ii1oPZcm`C zbszGgVSd9`xP@hhKLy*C$rTSt5~sA0%Z1-)7f=Jen@q1Y{02ee1+CR~Kh&O3%r2MU zlOHC3kbUJ5?ZT50K8}7zy*k_wB=VAZ@Jy z4c{>>^8Q9q=qrWi3R`|eV5go-jPaBicWTx&@S2kJpBy(Lsid`Bq3ma} zA$h(m$bAL6(*WldeXpj)4ZSr}jbGjI_!ufA_yG+}$w}TLX~kZH4+WRl{?U$W1Q}zn z+3faB#;jrN6*W)#CnYIquBbnw5cA3R+586n*08McCdgN67kY(X!hR*`pFA$*3q%yO zrPju;yN4KiYqmEmY^u-9lDqJ(%IGQ8$$Z&tE{U`^a>v2fOPUThJk_vF7d)0k zYg)0OqkMS^7Nlh!Wxd694whPZ+IEeehCawSkP_Sl+k=@U-kr2FrCQ!3JW8LA#)4eA z@$jRDJB?YoDRz4J0HGP@FX@KlPATJ{sr-c$VqEKbWpFjEZ+Ozw+b|G#%YKvVd3Y!# z<#O^#=@U*%;*+q|zEfA)c(#EK-!e`0K0`Ta6NP)_t5aSl9TJx_b=diVG>~b?Y7{j- zMY>w|2M9Pf^NRRO(#n*L@?OF}pc}XI?lnasB zlH0^`T=|9@P5(5YHRT4PJ12e+q}I-Zx~8lEsmx@~Jdo|x+0N8mZhXO<{h~$$};z`+(d#py>w4mQwsO{J2YiNsXvRv@f!QE6q zG$Uz6N{!qrd`3TrR{DmU*TL@_t~auE9qlm4iw(1x(#gpMDU+ae{L_@q@g%p^z}M_+ zc-W*gWPo@5DEStz9-O_4$+x6soGC<8xEaWr3N+qnz{C4YEy1k*l9n%=C7%weeoY)> zN^v&>df`XcOmEE1WKZSV5N_@wNO{2jVi@^+PstLtYt zZC~d#E4WmVp@<6J=GDjkCSP7Vxa66Hfx#o;x-v%Q%I z9)`dPiX`QnkPSXZ9Y>qGH^|Dmpe}yM3oCW1cQr0^*ygPbrqHM#4=V9oVQ0tptIa58 z@_y18@|TwTHBFQ3arW^WA38;OG3cRiXXM|wO%K=^ z_Ofza=o@|>E_sq|O*!S=3(o0u`jy2QHS0Ku-3OktgH|cLl#b}F%*_s4jjQUHmFDE_ z&^71%Q2IyxJ>%1kaX#@OVQAEQ1@-nk!}R8M)Ql@m)?d|4Ebyqf+Y}=m=kl%J;n3HV z?}o((Om~|nH@9R~E-v)c57avrovLy{-+#X7o*$4I_M);odKdRZ=K#r_#^=g)`QPh8 z@?<6JYRB_8?Yekn1szmWDE0=A_D*!TVMwlPD)~I`OLRx=S@uE0H>O6%tLW`^amptY zR|B`B_xLSiE2|5N_UrR?zZLw1-rm?Gb#jgMuMM4{j7M+KJB;4w)~Dr(N}objw@m+j z(ZuQ$^lmTSeOw@;=&igPGRSwg(ST0nX2(M^N&vBeDl$~X9^n-SmGW-|JpXZdP&hzy-BAi99lWP z<$~;z>q&og*feE+sK0-sORn^z=6w~X3-Wc}>zj+@HQQM`=AcJP;M0mI<+6|;eI7Wj zH@)5vTh>4SfbP3Ir_z!-one5(4DUn1Rf@fet3i%lKiECPzg^o_9GZ7V*O))8ys=R& zneSZT+dXu+@>1B1fT!GFrCM4KRLP14>%;UL3+pPw(EF?wxjh-MB5Z9xm?E zD^0SBaRpjkfqr4}shTNVIy1&|NYDa>htfC1#mCq2tnq05{?eAbuXXk44ea~te>A!{ z(mw7XE@;$81WobGWnSkl)GRJ8)N6I43k>M(jg&OjWtHFN&`HXbVf_N$ciSqDY;CFB zR@g;9L~ktIT~*dPfr@p%5^yPOl(JW7lkXDrMmN53R(V_g8C_6bUGZzRar}Ne%Ik8_ zSBe_N;ozCx!yL*D&2|2zC-V;L`sa5=zmc-ibjR_q&!Uhn%BK{mf!}+$GkaOr8e`E( zeX;JBf-fuHYtE8Zxp?{OLMJO#VW<2ryIzq^Zy8q^Q^@F->)$SVuKHwKXFAutS71xn z)5_eCiN3!$y=Cr;Ru>2If6`6OTUruY$MLV&AMlC@{!MXR(KGnE*G7A#p;z6OlDT=u zbf4#6C<|>IX8zQvhp#5&38hpqK2Yj0484v1)#?pJAL?cL;KCl2y;{DM?Q`AjA09SQ zSr!`Q@8W8d9%{Z^ky=oLM!lq{vU(9)Ot0}c9T=tPtXvgx)rWWd(X_E)SlNX9A9M%v zOeGn0R}GyUp7s7P__kt)LK_tBm1g$}zq>Y|qK~PUP`}D}&mqgZBDhU4Pcb>@T~9~5 zeOyD$cg1vGj&68CVfm(}GzsfG%5P5SK;`>kV*(DiT}N*=QdM0o?57{2uPt0!b*@!O zwYqH&_$sWgvTvx9-#+KJBu_T&FAp!sKr?)9abNU?omqCtp4)>~DvA|92e0*h$067l zQQyBbBk#O!K)zquvkk*dyBz2H3=DBrc30#DCVTW|GST~sx)rCRb=2{K)fHo#_eoE= z==^>T9i;3YcGJJywMq7Q%lgW3g-ZP@{j8!c)oa>ns3Y#4fp^2=lm#Jg`rdc?+PtWd zDc9uxuA7nfT8W`HnOEB{@sb7~R9sXH3eNL7Wk1sJX5IOcPx5}#?Z`h=#x;bPr#rd$ z9tr8JG>6SZZ)#mYQ|z|t6KKY9)B6>6uJmttQ?|hMO@F(vVakfor~RW{m9pgKl8QR? zGN_Y!eNkrhDD-xWDIVJcJrzO9wIP{4zD}v8lMQc{Ey@2Cje2#->AJlJlYNNy0<^N- zu1F6`@G7!f$zP~_y5#x1Wc22`Ugf_w)|tCFf9ER?jYn(v2LZ3Re@#8pR#w%!=q-JM zepTVk%EFeu@)$SPe|T6Qbgduoo8vM{>eM`_Vq-z2u2es{cwJ3rZWH6;=@`^sVNisI zpr3&_nv6~Lxusq5&*|#&-YtC_y&L+v!)5O~!DWh>im5?sJp=4caPr#I#jbg|y1@kx z%2zjClaxC5_L~^`G+NC~2>8h@OTMV}xvKQSq52o~)rD_X9c^`|3f(>k*c7Hl*Se?Q zap!gDdFFU|LP54pk$1niM{Nx^&h9K)T`W}S73YI@cyDod!q}_+#nN1Ky!)eHn@Mcw zY5K@6ej6E*3T&Nsh*40lpnh{23!m4tSkw6&$rR(vUz7?M0rVmw(hmONhO7~M|em3 z5ncsB+Z1ON&j;6grPwbt?5xw59L`JCZO`9PcCVok{k@T5pY(6O=wttkh%4)8Au?XD~h9p*pWb%adP;#28W7^we6pHXzCI+Fc_?&dKw zup!J@xgn&|r>B$DT-xw;*`EA#-J!g@C7bHz82+#?^Lj4$C&ecUeb6W`5Bt-6ZSCtN zi}DI|HTjX{TN+QJ)x{j&%n)zoxv=_xjqZ1;mkrW^%_}R;7TD`+^&^X4si|UzGszye14Gc<8WA$mXQkuQrX=)s^cPSU z^?9>O2iJEuu5tJf-DhqpCM)Izeee0aT{YLIw!B!KSF0OPaH)KB(;CSkXSrWos8YE! zY)(L?n;rE->(VM?;T-)8ePQ9qsuiub<%isc2FwZzSN02y_PgVJ4*h;mQTe2TCS7FS z&0??Gb6kMkd!8=@y`accTn_%x`>ez3#>Mp?m&)_gbiMK$OXUrWX@p~>k4s3IB398H zXz*CcgmIf{<`na2Zaq*ixx&ABJbHW2Zok!`(MmP?YYRbcPss~g(kr(X4$!aHk11lS z2DW`mO?6KVID(#~t3tN>`Z$-He`_3CZptsv&CDBKa;tVdUt$;S^*eg1I-wXJ?C4!< zzsqp8jxD*6cSpB1|KqZ24R=hQ=&fA~L!`>KuoZ#BJWkOg+56QsMK{no%C3;F&^LFL zb#d+He;Zwg6`|w(r@PLU1+~OgMxwjjIsL7o@2Wl7MYNB{n81=Sd*$YkR-aK$er8j{ z>9WJ<+&h?;Ub3=og5d;uS8?~?Luk~?f~KP*e51X@`rud@Y z3qhma7O>mBj9TB8RQ+zzUVR_^qQb8$zeRs};sIJ+_=iO*zX<))@1V<<(wCaIRopD_ z(%0z+7LTpD!**xRdi)XSqo`KIhD`R^>NvtQ1g$P!&cBbY^_NN$>jRB*9p-uO48E$E zq*xSm#&bG)JKOkLbMb(@7G3XxW93hw-#A+a`lF>G`47;y26?5$^?AlfN6M!@I7<#YXKS_<2jqF`_ZJMP zXlRO(_HcRA@8wW`WkOh;{}XQ0LZhijzvMY^fazW>LryJVwU zUalO2?sk{-zZQL1t#5mZ&UOzAyb{)?*dF5UyTWOhxqD-2Sz3M#TFw1d@={%A!(#hA zUR3bMij|6npbxx8+Z*|(>b@=6lh>fj&!@^KG`?lt>(tHnKnSlmALbZ%0sWlx0$N=h zL^IA{{p`Y3l}lQFlO1+l%p}+Ur!9OU*DOLt$d9JfdL~p28mb{c_ z)b%LXQy$dRPcq&4hOarqQMoK^O#tOSh-zrPP^Bu`pr55rMepbBgWlLP)6G4gXPAd_ zNa!#>R~Mt?W>e>iEd@&b%)H2wO=vYY(yoW+>w&jJTSH3%lf0_zR~TnE3`De2FP}_+0|*v&y^&W`c-DvFXyhw=Q;QDddV-!|4ScV_Zjw|n;Tos)K*p`mY=PN ztIcV?Xgo(>axV5*?LEM|mxs=&ikfSj*MibmB zi3pdZs_1XrRaFl(cP=cvoPGPJ8ad_eKHU43Pno|mG*x*uwA|yO!M%7+##gsSr)K4r z*S#iJd+rNWBnHW^313-?>o~AvzuJ(hWp*@ytLcS*u7EjhdH

(GetParent()); + if(pForm == null) + { + AppLog("pForm == null"); + return; + } + //find the no. of search rows to be shown - Maximum 5 can be shown. + int noOfItems = MAX_SEARCH_LIST_ITEMS; + if(pForm->GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE || pForm->GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE_REVERSE) + { + noOfItems = MAX_SEARCH_LIST_ITEMS_LANDSCAPE; + } + if(__pDialPresentationModel->GetNumberOfSuggestions() < (noOfItems+1)) + { + noOfItems = __pDialPresentationModel->GetNumberOfSuggestions() - 1; + } + if(noOfItems <= 0) + { + return; + } + + if(pForm->GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE || pForm->GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE_REVERSE) + { + if(noOfItems > 1) + { + SetShiftedPosUseContact(); + } + else if(noOfItems <= 1) + { + SetOrigPosUseContact(); + } + } + + Panel* pSearchListPanel = static_cast(GetControl(IDC_PANEL_SEARCH_LIST, true)); + Rectangle searchPanelbounds = pSearchListPanel->GetBounds(); + if(pForm->GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE || pForm->GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE_REVERSE) + { + if(noOfItems > 1) + { + searchPanelbounds.y = 360; + searchPanelbounds.height = 500; + } + if(noOfItems <= 1) + { + searchPanelbounds.y = 480; + searchPanelbounds.height = 250; + + } + } + pSearchListPanel->SetBounds(searchPanelbounds); + pSearchListPanel->SetShowState(true); + pSearchListPanel->InvalidateBounds(searchPanelbounds); + + + if (__pSearchListView != null) + { + //update new bounds + Rectangle searchListbounds = __pSearchListView->GetBounds(); + if(pForm->GetOrientationStatus() == ORIENTATION_STATUS_PORTRAIT || pForm->GetOrientationStatus() == ORIENTATION_STATUS_PORTRAIT_REVERSE) + { + searchListbounds.height = H_SEARCHLIST_ITEM * noOfItems; + if(__pDialKeypad != null) + { + __pDialKeypad->SetFocusToButtons(false, false); + } + } + else + { + searchListbounds.height = H_SEARCHLIST_ITEM * noOfItems; + AppLog("noOfItems= %d", noOfItems); + if(noOfItems > 0) + { + __pDialKeypad->SetFocusToButtons(true, false); + } + else + { + __pDialKeypad->SetFocusToButtons(true, true); + } + } + __pSearchListView->SetMinimumSize(Dimension(searchListbounds.width - 100,searchListbounds.height)); + __pSearchListView->SetBounds(searchListbounds); + if(pSearchListPanel->GetBounds().y + __pSearchListView->GetBounds().height > pForm->GetClientAreaBounds().height) + { + searchListbounds.height -= (pSearchListPanel->GetBounds().y + __pSearchListView->GetBounds().height) - pForm->GetClientAreaBounds().height; + __pSearchListView->SetMinimumSize(Dimension(searchListbounds.width - 100,searchListbounds.height)); + __pSearchListView->SetBounds(searchListbounds); + } + __pSearchListView->InvalidateBounds(searchListbounds); + __pSearchListView->SetItemProvider(*__pSuggestionListProvider); + __pSearchListView->UpdateList(); + __pSearchListView->ScrollToItem(0); + + } + + //"Pull UP" Button + Button* pButtonPullUp = static_cast(GetControl(IDC_BUTTON_DROP_DOWN, true)); + Canvas pCanvasNormalPullUp; + pCanvasNormalPullUp.Construct(pButtonPullUp->GetBounds()); + Canvas pCanvasPressedPullUp; + pCanvasPressedPullUp.Construct(pButtonPullUp->GetBounds()); + int resultCount = __pDialPresentationModel->GetNumberOfSuggestions(); + //Add text, Bg to normal state + DialUtil::Draw9PatchToCanvas(pCanvasNormalPullUp, IDB_BTN_OPTION_BG_ICON); + DialUtil::DrawTextToCanvas(Integer::ToString(resultCount), FONT_EXPAND_BUTTON_TEXT, pCanvasNormalPullUp, POSITION_CENTER, BUTTON_STATUS_NORMAL); + DialUtil::DrawImageToCanvas(IDB_POPUP_BUBBLE_UP_ICON, Dimension(W_SUGGESTION_POPUP_BUBBLE_ICON, H_SUGGESTION_POPUP_BUBBLE_ICON), pCanvasNormalPullUp, POSITION_BOTTOM_CENTER); + //Add text, Bg to pressed state + DialUtil::Draw9PatchToCanvas(pCanvasPressedPullUp, IDB_BTN_OPTION_PRESS_BG_ICON); + DialUtil::DrawTextToCanvas(Integer::ToString(resultCount), FONT_EXPAND_BUTTON_TEXT, pCanvasPressedPullUp, POSITION_CENTER, BUTTON_STATUS_NORMAL); + DialUtil::DrawImageToCanvas(IDB_POPUP_BUBBLE_UP_PRESS_ICON, Dimension(W_SUGGESTION_POPUP_BUBBLE_ICON, H_SUGGESTION_POPUP_BUBBLE_ICON), pCanvasPressedPullUp, POSITION_BOTTOM_CENTER); + //add background to button + DialUtil::DrawCanvasToButton(&pCanvasNormalPullUp, &pCanvasPressedPullUp, pButtonPullUp); + __isSearchListOpened = true; + AppLogDebug("EXIT"); + return; +} + +void +DialTabDialer::HideSearchListView(void) +{ + AppLog("Enter"); + Panel* pSearchListPanel = static_cast(GetControl(IDC_PANEL_SEARCH_LIST, true)); + pSearchListPanel->SetShowState(false); + pSearchListPanel->Invalidate(true); + + Button* pButtonDropDown = static_cast(GetControl(IDC_BUTTON_DROP_DOWN, true)); + pButtonDropDown->SetShowState(true); + pButtonDropDown->Invalidate(true); + if(__pDialKeypad != null) + { + __pDialKeypad->SetFocusToButtons(true, true); + } + + //"DropDown" Button + if (__isSearchListOpened == true) + { + Canvas pCanvasNormalDropDown; + pCanvasNormalDropDown.Construct(pButtonDropDown->GetBounds()); + Canvas pCanvasPressedDropDown; + pCanvasPressedDropDown.Construct(pButtonDropDown->GetBounds()); + int resultCount = __pDialPresentationModel->GetNumberOfSuggestions(); + //Add text, Bg to normal state + DialUtil::Draw9PatchToCanvas(pCanvasNormalDropDown, IDB_BTN_OPTION_BG_ICON); + DialUtil::DrawTextToCanvas(Integer::ToString(resultCount), FONT_EXPAND_BUTTON_TEXT, pCanvasNormalDropDown, POSITION_CENTER, BUTTON_STATUS_NORMAL); + DialUtil::DrawImageToCanvas(IDB_POPUP_BUBBLE_ICON, Dimension(W_SUGGESTION_POPUP_BUBBLE_ICON, H_SUGGESTION_POPUP_BUBBLE_ICON), pCanvasNormalDropDown, POSITION_BOTTOM_CENTER); + //Add text, Bg to pressed state + DialUtil::Draw9PatchToCanvas(pCanvasPressedDropDown, IDB_BTN_OPTION_PRESS_BG_ICON); + DialUtil::DrawTextToCanvas(Integer::ToString(resultCount), FONT_EXPAND_BUTTON_TEXT, pCanvasPressedDropDown, POSITION_CENTER, BUTTON_STATUS_NORMAL); + DialUtil::DrawImageToCanvas(IDB_POPUP_BUBBLE_PRESS_ICON, Dimension(W_SUGGESTION_POPUP_BUBBLE_ICON, H_SUGGESTION_POPUP_BUBBLE_ICON), pCanvasPressedDropDown, POSITION_BOTTOM_CENTER); + //add background to button + DialUtil::DrawCanvasToButton(&pCanvasNormalDropDown, &pCanvasPressedDropDown, pButtonDropDown); + } + __isSearchListOpened = false; + + return; +} + +void +DialTabDialer::ShowSearchGadget(void) +{ + //Commenting as search is not supported for 2.1 + /*Button* pButtonSearchIcon = static_cast(GetControl(IDC_BUTTON_SEARCHICON, true)); + pButtonSearchIcon->SetShowState(true); + Button* pButtonSearchField = static_cast(GetControl(IDC_BUTTON_SEARCHFIELD, true)); + pButtonSearchField->SetShowState(true); + Button* pButtonClear = static_cast(GetControl(IDC_BUTTON_KEYPADCLEAR, true)); + pButtonClear->SetShowState(false); + Invalidate(true);*/ + return; +} + + +void +DialTabDialer::HideSearchGadget(void) +{ + //Commenting as search is not supported for 2.1 + /*Button* pButtonSearchIcon = static_cast(GetControl(IDC_BUTTON_SEARCHICON, true)); + pButtonSearchIcon->SetShowState(false); + Button* pButtonSearchField = static_cast(GetControl(IDC_BUTTON_SEARCHFIELD, true)); + pButtonSearchField->SetShowState(false); + Button* pButtonClear = static_cast(GetControl(IDC_BUTTON_KEYPADCLEAR, true)); + pButtonClear->SetShowState(true);*/ + return; +} + + +void +DialTabDialer::ConstructSearchMenu(void) +{ + AppLogDebug("ENTER"); + + //Construct button for menu open and close + Button* pButtonSearchField = static_cast(GetControl(IDC_BUTTON_SEARCHFIELD, true)); + pButtonSearchField->SetActionId(IDA_SEARCH_FIELD); + pButtonSearchField->AddActionEventListener(*this); + Button* pButtonSearchIcon = static_cast(GetControl(IDC_BUTTON_SEARCHICON, true)); + pButtonSearchIcon->SetActionId(IDA_SEARCH_ICON); + pButtonSearchIcon->AddActionEventListener(*this); + //Hiding as search is not supported for 2.1 + pButtonSearchIcon->SetShowState(false); + pButtonSearchField->SetShowState(false); + + AppLogDebug("EXIT"); + return; +} + +void +DialTabDialer::ConstructKeypad(void) +{ + AppLogDebug("ENTER"); + //Construct Alpha numeric Keypad + if(__pDialKeypad == null) + { + __pDialKeypad = new (std::nothrow) DialerKeypad(__dialerState); + __pDialKeypad->ConstructPanel(this, this, this); + //add keypad to dial panel + AddControl(__pDialKeypad); + __pDialKeypad->AddListenersToLastRowButtons(); + } + AppLogDebug("EXIT"); + return; +} + +void +DialTabDialer::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs) +{ + AppLogDebug("ENTER"); + //When outgoing call is made and immediately before a call is made if + // we switch to logs then __isAppControlLaunched wont be set to false anywhere else + //as OnforeGround of logs will get called instead . Hence Keypad wont work. + SetAppControlLaunched(false); + PhoneApp* pPhoneApp = static_cast(PhoneApp::GetInstance()); + EditField* pEditField = static_cast(GetControl(IDC_NUMERIC_EDITFIELD, true)); + if(pEditField != null) + { + pEditField->SetFocus(); + } + String editText(L""); + + //While coming from Logs scene, disable footer + Form* pForm = dynamic_cast(GetParent()); + if(pForm == null) + { + AppLog("pForm == null"); + return; + } + pForm->GetFooter()->SetShowState(false); + pForm->AddOrientationEventListener(*this); + Tizen::System::SettingInfo::AddSettingEventListener(*this); + Label* pLastRowLabel = static_cast(GetControl(IDC_LABEL_LASTROW_BG, true)); + OrientationStatus orientationStatus = pForm->GetOrientationStatus(); + if (orientationStatus == ORIENTATION_STATUS_PORTRAIT || orientationStatus == ORIENTATION_STATUS_PORTRAIT_REVERSE) + { + pLastRowLabel->SetShowState(false); + } + else if (orientationStatus == ORIENTATION_STATUS_LANDSCAPE || orientationStatus == ORIENTATION_STATUS_LANDSCAPE_REVERSE) + { + pLastRowLabel->SetShowState(true); + } + + //If opened as AppControl then it is either from Single Active Call + //or Conf. Call screen with 'Add Call' scenario. + __dialerState = DIALER_STATE_FIRST_SCENE; + if (pPhoneApp->IsOpenAsAppControl() == true) + { + AppLogDebug("IsOpenAsAppControl"); + __dialerState = DIALER_STATE_ADD_CALL_APPCONTROL; + if(pArgs != null) + { + String* pPhoneNumber = static_cast(pArgs->GetAt(0)); + if(pPhoneNumber != null && pPhoneNumber->IsEmpty() == false) + { + AppLogDebug("DIALER_STATE_NORMAL_APPCONTROL"); + //From AppControl request for normal call + editText.Append(*pPhoneNumber); + __dialerState = DIALER_STATE_NORMAL_APPCONTROL; + } + delete pArgs; + pArgs = null; + } + else + { + if(pEditField != null) + { + editText = pEditField->GetText(); + } + } + } + else + { + if(pEditField != null) + { + editText = pEditField->GetText(); + } + } + + if(__pDialKeypad != null) + { + if(__dialerState == DIALER_STATE_ADD_CALL_APPCONTROL) + { + __pDialKeypad->SetKeypadTone(false); + } + else + { + __pDialKeypad->SetKeypadTone(true); + } + } + + //If this is not an AppControlRequest and editText is empty, then fetch auto area code. + if(editText.IsEmpty() == true) + { + //Fetch auto area code setting, if present + SettingsPresentationModel::GetInstance()->GetActivePrefixDialNumber(editText); + if(editText.IsEmpty() == false) + { + editText.Replace(L"P",L";"); + editText.Replace(L"p",L";"); + } + } + + if(pEditField != null) + { + ShowFormattedText(pEditField,editText); + pEditField->SetFocus(); + pEditField->Invalidate(true); + __pDialPresentationModel->ClearSearchResults(); + //show search results + if (pEditField->GetTextLength() == 0) + { + ShowSearchGadget(); + HideSearchBox(); + } + else + { + HideSearchGadget(); + UpdateSearchResults(); + } + } + + if (__pDialKeypad != null) + { + __pDialKeypad->SetBitmapToKeypadButtons(); + __pDialKeypad->Invalidate(true); + } + pPhoneApp->AddAppStateChangeListener(*this); + //Add address book listener to listen to contacts changed events + if(__pAddressBook != null) + { + __pAddressBook->SetAddressbookChangeEventListener(this); + } + //Set the last row position and height programatically + Panel* plastRowPanel = static_cast(GetParent()->GetControl(IDC_PANEL_LASTROW,true)); + int yPos = pForm->GetClientAreaBounds().height - plastRowPanel->GetBounds().height; + plastRowPanel->SetPosition(0,yPos); + Invalidate(true); + if(pEditField != null) + { + pEditField->AddTextEventListener(*this); + } + AppLogDebug("EXIT"); + return; +} + +void +DialTabDialer::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId) +{ + AppLogDebug("ENTER"); + //While coming from Logs scene, disable footer + Form* pForm = static_cast(GetParent()); + pForm->RemoveOrientationEventListener(*this); + PhoneApp* pPhoneApp = static_cast(PhoneApp::GetInstance()); + //hide search result list, if shown. + if (__isSearchListOpened == true) + { + HideSearchListView(); + } + + if(__pConfirmationPopup != null) + { + __pConfirmationPopup->SetShowState(false); + } + pPhoneApp->RemoveAppStateChangeListener(*this); + //remove contact change event listener + if(__pAddressBook != null) + { + __pAddressBook->SetAddressbookChangeEventListener(null); + } + EditField* pEditField = static_cast(GetControl(IDC_NUMERIC_EDITFIELD, true)); + /*Commented due to defect N_SE_52186 + int startpos=-1,endpos=-1; + pEditField->GetBlockRange(startpos,endpos); + AppLogDebug("GetBlockRange %d %d",startpos,endpos); + if(startpos != -1) + { + pEditField->Remove(); + pEditField->ReleaseBlock(); + }*/ + pEditField->RemoveTextEventListener(*this); + Tizen::System::SettingInfo::RemoveSettingEventListener(*this); + AppLogDebug("EXIT"); + return; +} + +void +DialTabDialer::OnActionPerformed(const Control& source, int actionId) +{ + AppLogDebug("ENTER"); + + PhoneApp* pApp = static_cast(UiApp::GetInstance()); + EditField* pEditField = static_cast(GetControl(IDC_NUMERIC_EDITFIELD, true)); + if (pEditField == null || GetAppControlLaunched() == true) + { + AppLogDebug("GetAppControlLaunched() == true"); + return; + } + + switch (actionId) + { + case IDA_SEARCH_FIELD: + case IDA_SEARCH_ICON: + { + //Put Search click launch code here + AppLog("Search ICON/Field Clicked"); + AppManager* pAppManager = AppManager::GetInstance(); + pAppManager->LaunchApplication(PROVIDER_ID_CONTACTS); + } + break; + + case IDA_BTN_SHOW_CONTEXTMENU: + { + // Show the ContextMenu + String contactNo = pEditField->GetText(); + contactNo.Replace(L"-",L""); + ShowOptionsMenu(); + if (__isSearchListOpened == true) + { + HideSearchListView(); + } + } + break; + + case NUM_KEY1: + case NUM_KEY2: + case NUM_KEY3: + case NUM_KEY4: + case NUM_KEY5: + case NUM_KEY6: + case NUM_KEY7: + case NUM_KEY8: + case NUM_KEY9: + case NUM_KEY0: + case CLEAR_KEY: + case HASH_KEY: + { + //append / clear last character to contact + int oldtextlen = pEditField->GetTextLength(); + ShowFormattedText(pEditField, actionId); + if (pEditField->GetTextLength() == 0) + { + __pDialPresentationModel->ClearSearchResults(); + ShowSearchGadget(); + HideSearchBox(); + } + else + { + if(oldtextlen != pEditField->GetTextLength()) + { + HideSearchGadget(); + UpdateSearchResults(); + } + } + } + break; + + case CALL_KEY: + { + //If context menu is shown do not trigger call + //As platform sends release event when context menu is shown + if(__pCallContextMenu != null && __pCallContextMenu->GetShowState() == true) + { + return; + } + if (pEditField->GetTextLength() > 0) + { + Button* pButtonCall = static_cast(GetControl(IDC_BUTTON_CALL, true)); + pButtonCall->SetFocus(); + String contactNo = pEditField->GetText(); + contactNo.Replace(L"-",L""); + // Regular expression to check the beginning is with Pause/Wait + String phoneNumberPattern(L"^(,|;)"); + RegularExpression checkPhoneNumber; + checkPhoneNumber.Construct(phoneNumberPattern); + //If phone number starts with , or ; then show an error popup + bool resultMatch = checkPhoneNumber.Match(contactNo,false); + if(resultMatch == true) + { + MessageBox numberStartsWithPW; + String msg(L"Phone number "); + msg.Append(contactNo); + msg.Append(L" is Invalid"); + numberStartsWithPW.Construct(L"Invalid Number", msg, MSGBOX_STYLE_NONE,3000); + int modalResult = 0; + numberStartsWithPW.ShowAndWait(modalResult); + return; + } + if (DialOutgoingCall(contactNo) == true) + { + __pDialPresentationModel->ClearSearchResults(); + pEditField->Clear(); + pEditField->SetTextSize(IDI_MAX_TXT_FONT); + pEditField->Invalidate(true); + ShowSearchGadget(); + HideSearchBox(); + } + return; + } + else + { + //show latest dialed or incoming number from Logs + String* number = __pDialPresentationModel->FetchLatestNumberFromLogsN(); + if(number != null) + { + ShowFormattedText(pEditField,*number); + UpdateSearchResults(); + HideSearchGadget(); + delete number; + } + } + } + break; + + case PAUSE_KEY: + { + ShowFormattedText(pEditField,STAR_KEY); + if (pEditField->GetTextLength() == 0) + { + ShowSearchGadget(); + HideSearchBox(); + } + else + { + HideSearchGadget(); + UpdateSearchResults(); + } + } + break; + + /*case HASH_KEY: + { + pEditField->AppendText(L"#"); + if (pEditField->GetTextLength() == 0) + { + ShowSearchGadget(); + HideSearchBox(); + } + else + { + HideSearchGadget(); + UpdateSearchResults(); + } + } + break;*/ + +/* case VIDEOCALL_KEY: + { + //Not yet Supported + } + break;*/ + + case CANCEL_KEY: + { + if(pApp->IsOpenAsAppControl() == true) + { + pApp->Terminate(); + return; + } + } + break; + + case IDA_BTN_ADD_TO_CONTACTS: + { + if(pEditField->GetTextLength() > 0) + { + String contactNo = pEditField->GetText(); + contactNo.Replace(L"-",L""); + result r = __pDialPresentationModel->LaunchAddContactsAppControl(contactNo); + if (r == E_SUCCESS) + { + //This is fix for N_SE-46530 + Button* pButtonAddContacts = static_cast(GetControl(IDC_BUTTON_ADD_CONTACTS, true)); + pButtonAddContacts->SetFocus(); + SetAppControlLaunched(true); + } + return; + } + } + break; + + case IDA_SPEEDDIAL_POPUP_YES: + { + if(__pConfirmationPopup != null) + { + __pConfirmationPopup->SetShowState(false); + } + SwitchToSpeedDialForm(); + } + break; + + case IDA_SPEEDDIAL_POPUP_NO: + { + if(__pConfirmationPopup != null) + { + __pConfirmationPopup->SetShowState(false); + } + } + break; + + case IDA_MENU_ADD_PAUSE: + { + AddPause(); + } + break; + + case IDA_MENU_ADD_WAIT: + { + AddWait(); + } + break; + + case IDA_MENU_EXIT: + { + //Close Phone App + pApp->Terminate(); + return; + } + break; + + case IDA_MENU_SEND_MESSAGE: + { + String contactNo = pEditField->GetText(); + contactNo.Replace(L"-",L""); + String tempContactNumber; + int commaIndex = 0; + int semiColonIndex = 0; + int index = 0; + contactNo.IndexOf(",", 0, commaIndex); + contactNo.IndexOf(";", 0, semiColonIndex); + + if(commaIndex != -1 && semiColonIndex != -1) + { + index = commaIndex < semiColonIndex ? commaIndex : semiColonIndex; + } + else if(commaIndex != -1 || semiColonIndex != -1) + { + index = commaIndex > semiColonIndex ? commaIndex : semiColonIndex; + } + else + { + index = contactNo.GetLength(); + } + contactNo.SubString(0, index, tempContactNumber); + result r = __pDialPresentationModel->OpenMessagingAppControl(tempContactNumber); + if(r == E_SUCCESS) + { + SetAppControlLaunched(true); + } + return; + } + break; + + case IDA_MENU_SPEED_DIAL: + { + SwitchToSpeedDialForm(); + return; + } + break; + + case IDA_BTN_USE_CONTACT_DATA: + { + DialContactInfo* pDialInfo = __pDialPresentationModel->GetSuggestionAtIndex(0); + if(pDialInfo != null) + { + //fetch contact number + String phNumber = pDialInfo->GetPhoneNumber(); + String contactNo = pEditField->GetText(); + contactNo.Replace(L"-",L""); + if(phNumber.Equals(contactNo) == false) + { + pEditField->Clear(); + ShowFormattedText(pEditField,phNumber); + pEditField->Invalidate(true); + if (__isSearchListOpened == true) + { + HideSearchListView(); + } + UpdateSearchResults(); + } + } + } + break; + + case IDA_BTN_DISPLAY_CONTACTS: + { + if (__isSearchListOpened == true) + { + Form* pForm = dynamic_cast(GetParent()); + int noOfItems = MAX_SEARCH_LIST_ITEMS; + if(__pDialPresentationModel->GetNumberOfSuggestions() < (noOfItems+1)) + { + noOfItems = __pDialPresentationModel->GetNumberOfSuggestions() - 1; + } + if(pForm != null && (pForm->GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE || pForm->GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE_REVERSE)) + { + if(noOfItems > 1) + { + SetOrigPosUseContact(); + } + } + HideSearchListView(); + } + else + { + ShowSearchListView(); + } + } + break; + + default: + break; + } + pEditField->Invalidate(true); + + AppLogDebug("EXIT"); + return; +} + +void +DialTabDialer::OnLongPressGestureDetected(TouchLongPressGestureDetector& gestureDetector) +{ + AppLogDebug("ENTER"); + Form *pForm = dynamic_cast(GetParent()); + if(pForm == null) + { + return; + } + if (GetAppControlLaunched() == true) + { + //If call AppControl is already launched, ignore any further requests. + return ; + } + + if (gestureDetector.GetControl() != null) + { + Button* pButton = static_cast(gestureDetector.GetControl()); + int actionId = pButton->GetActionId(); + switch(actionId) + { + case NUM_KEY1: + case NUM_KEY2: + case NUM_KEY3: + case NUM_KEY4: + case NUM_KEY5: + case NUM_KEY6: + case NUM_KEY7: + case NUM_KEY8: + case NUM_KEY9: + { + //first check if there is any number present in the edit fiels + EditField* pEditField = static_cast(GetControl(IDC_NUMERIC_EDITFIELD, true)); + if(pEditField->GetTextLength() != 0) + { + //append / clear last character to contact + int oldtextlen = pEditField->GetTextLength(); + ShowFormattedText(pEditField, actionId); + if (pEditField->GetTextLength() == 0) + { + __pDialPresentationModel->ClearSearchResults(); + ShowSearchGadget(); + HideSearchBox(); + } + else + { + if(oldtextlen != pEditField->GetTextLength()) + { + HideSearchGadget(); + UpdateSearchResults(); + } + } + pEditField->Invalidate(true); + break; + } + //Check if Speed Dial setting exist for pressed key + String* contactNumber = __pDialPresentationModel->FetchSpeedDialNumberN(actionId); + if(contactNumber != null) + { + ArrayList* pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter); + pArgs->Construct(); + //pass ownership to arraylist + pArgs->Add(contactNumber); + SendUserEvent(REQUEST_CALL_SPEED_DIAL_NUM,pArgs); + } + else + { + //show speed Dial Confirmation Popup msg + if(actionId == NUM_KEY1) + { + SendUserEvent(REQUEST_SHOW_VOICE_MAIL_POPUP,null); + } + else + { + SendUserEvent(REQUEST_SHOW_SPEED_DIAL_POPUP,null); + } + } + + } + break; + + case PAUSE_KEY: + { + Button* pPauseButton = static_cast(pForm->GetControl(IDC_BUTTON10,true)); + Panel* pLastRowPanel = static_cast(pForm->GetControl(IDC_PANEL_LASTROW,true)); + int portraitAnchorPositionY = pForm->GetHeight() - pLastRowPanel->GetHeight() - pPauseButton->GetHeight(); + int landscapeAnchorPositionY = pForm->GetHeight() - pPauseButton->GetHeight(); + int portraitAnchorPositionX = pPauseButton->GetWidth()/2; + int landscapeAnchorPositionX = pPauseButton->GetWidth(); + EditField* pEditField = static_cast(GetControl(IDC_NUMERIC_EDITFIELD, true)); + if(pEditField != null && pEditField->GetTextLength() > 0) + { + String contactNo = pEditField->GetText(); + contactNo.Replace(L"-",L""); + ShowPauseWaitMenu(contactNo, portraitAnchorPositionY, portraitAnchorPositionX, + landscapeAnchorPositionX, landscapeAnchorPositionY); + } + + } + break; + + case HASH_KEY: + { + //Handle Mute / UnMute + EditField* pEditField = static_cast(GetControl(IDC_NUMERIC_EDITFIELD, true)); + if(pEditField->GetTextLength() == 0) + { + bool enabled = false; + String title = L"http://tizen.org/setting/sound.silent_mode"; + SettingInfo::GetValue(title, enabled); + //enable or disable the phone silent mode. + result r = E_FAILURE; + r = SettingInfo::SetValue(title, !enabled); + if(r == E_SUCCESS) + { + ShowSilentModeToggle(!enabled); + } + } + else + { + int oldtextlen = pEditField->GetTextLength(); + ShowFormattedText(pEditField, actionId); + if(oldtextlen != pEditField->GetTextLength()) + { + HideSearchGadget(); + UpdateSearchResults(); + } + pEditField->Invalidate(true); + + } + } + break; + + case CLEAR_KEY: + { + EditField* pEditField = static_cast(GetControl(IDC_NUMERIC_EDITFIELD, true)); + if (pEditField != null && pEditField->GetTextLength() > 0) + { + pEditField->Clear(); + pEditField->SetTextSize(IDI_MAX_TXT_FONT); + //pEditField->SetCursorPosition(0); + pEditField->SetFocus(); + pEditField->Invalidate(true); + HideSearchBox(); + ShowSearchGadget(); + } + } + break; + case CALL_KEY: + { + //Removed this to not show the context menu on long tapping the call button + /*Button* pCallButton = static_cast(pForm->GetControl(IDC_BUTTON_CALL,true)); + Panel* pLastRowPanel = static_cast(pForm->GetControl(IDC_PANEL_LASTROW,true)); + int portraitAnchorPositionY = pForm->GetHeight() - pLastRowPanel->GetHeight() + + ((pLastRowPanel->GetHeight()- pCallButton->GetHeight())/2); + int landscapeAnchorPositionY = portraitAnchorPositionY; + int portraitAnchorPositionX = pLastRowPanel->GetWidth()/2; + int landscapeAnchorPositionX = pForm->GetWidth()/2 + pLastRowPanel->GetWidth()/2 - pCallButton->GetWidth()/2; + EditField* pEditField = static_cast(GetControl(IDC_NUMERIC_EDITFIELD, true)); + if(pEditField != null && pEditField->GetTextLength() > 0) + { + String contactNo = pEditField->GetText(); + contactNo.Replace(L"-",L""); + ShowPauseWaitMenu(contactNo, portraitAnchorPositionY, portraitAnchorPositionX, + landscapeAnchorPositionX, landscapeAnchorPositionY); + }*/ + + } + break; + case NUM_KEY0: + { + AddPlus(); + } + break; + + default: + break; + } + } + + AppLogDebug("EXIT"); + return; +} + +void +DialTabDialer::ShowPauseWaitMenu(Tizen::Base::String& contactNumber, + int portraitAnchorPositionY, int portraitAnchorPositionX, + int landscapeAnchorPositionX, int landscapeAnchorPositionY ) +{ + + AppLogDebug("ENTER"); + Form *pForm = dynamic_cast(GetParent()); + + if(__pCallContextMenu != null) + { + delete __pCallContextMenu; + __pCallContextMenu = null; + } + __pCallContextMenu = new (std::nothrow) ContextMenu(); + __pCallContextMenu->Construct(Point(0, 0), CONTEXT_MENU_STYLE_LIST); + //minimum available option count + int visibleItems = MIN_CONTEXT_MENU_ITEMS + 1; + __pCallContextMenu->AddItem(AppUtility::GetResourceString(IDS_DIALER_MENU_ITEM_ADD_PAUSE), IDA_MENU_ADD_PAUSE); + __pCallContextMenu->AddItem(AppUtility::GetResourceString(IDS_DIALER_MENU_ITEM_ADD_WAIT), IDA_MENU_ADD_WAIT); + __pCallContextMenu->AddActionEventListener(*this); + __pCallContextMenu->SetFocusable(true); + __pCallContextMenu->SetMaxVisibleItemsCount(visibleItems); + // Set the anchor position of the ContextMenu + if(pForm != null && (pForm->GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE || pForm->GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE_REVERSE)) + { + __pCallContextMenu->SetAnchorPosition(Point(landscapeAnchorPositionX, landscapeAnchorPositionY)); + } + else + { + __pCallContextMenu->SetAnchorPosition(Point(portraitAnchorPositionX, portraitAnchorPositionY)); + } + // Show the ContextMenu + __pCallContextMenu->Show(); + + AppLogDebug("EXIT"); + return; + +} + + +void +DialTabDialer::AddPause(void) +{ + EditField* pEditField = static_cast(GetControl(IDC_NUMERIC_EDITFIELD, true)); + if (pEditField != null && pEditField->GetTextLength() > 0) + { + ShowFormattedText(pEditField,PAUSE_KEY); + HideSearchGadget(); + UpdateSearchResults(); + pEditField->Invalidate(true); + } + + return; +} + +void +DialTabDialer::AddWait(void) +{ + EditField* pEditField = static_cast(GetControl(IDC_NUMERIC_EDITFIELD, true)); + if (pEditField != null) + { + ShowFormattedText(pEditField,WAIT_KEY); + if (pEditField->GetTextLength() == 0) + { + ShowSearchGadget(); + HideSearchBox(); + } + else + { + HideSearchGadget(); + UpdateSearchResults(); + } + pEditField->Invalidate(true); + } + + return; +} + +void +DialTabDialer::AddPlus(void) +{ + EditField* pEditField = static_cast(GetControl(IDC_NUMERIC_EDITFIELD, true)); + if (pEditField != null) + { + ShowFormattedText(pEditField,PLUS_KEY); + if (pEditField->GetTextLength() == 0) + { + ShowSearchGadget(); + HideSearchBox(); + } + else + { + HideSearchGadget(); + UpdateSearchResults(); + } + pEditField->Invalidate(true); + } + return; +} + +bool +DialTabDialer::DialOutgoingCall(const String& contactNumber) +{ + AppLogDebug("Enter"); + bool isSuccess = false; + if (__isAppControlLaunched == true) + { + //If call AppControl is already launched, ignore any further requests. + return isSuccess; + } + + if(__dialerState == DIALER_STATE_FIRST_SCENE || __dialerState == DIALER_STATE_NORMAL_APPCONTROL) + { + ErrorCodes error = __pDialPresentationModel->DialCall(contactNumber); + if (error == ERROR_NONE) + { + __isAppControlLaunched = true; + isSuccess = true; + } + else + { + __isAppControlLaunched = false; + isSuccess = false; + //Show error message Popup + if (__pErrorMsgPopup == null) + { + __pErrorMsgPopup = new (std::nothrow) ErrorMsgPopup(this); + __pErrorMsgPopup->ShowErrorMsgPopupN(error); + } + } + } + else + { + //Dialer was launched as AppControl in "AddCall" Scenario. + if (__dialerState == DIALER_STATE_ADD_CALL_APPCONTROL) + { + isSuccess = true; + PhoneApp* pApp = static_cast(UiApp::GetInstance()); + /* HashMap resultData; + resultData.Construct(); + resultData.Add(new (std::nothrow) String(PARAM_PHONE_NUMBER), new (std::nothrow) String(contactNumber)); + //send "APP_CTRL_RESULT_SUCCEEDED" and 'contactNumber' as result. + PhoneApp* pApp = static_cast(UiApp::GetInstance()); + pApp->SendAppControlResponseMessage(APP_CTRL_RESULT_SUCCEEDED, &resultData); + resultData.RemoveAll(true);*/ + __pDialPresentationModel->DialCall(contactNumber); + AppLogDebug("Terminating"); + pApp->Terminate(); + } + } + return isSuccess; +} + +void +DialTabDialer::SwitchToSpeedDialForm(void) +{ + SceneManager* pSceneManager = SceneManager::GetInstance(); + AppAssert(pSceneManager); + pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SCENE_SPEED_DIAL), null); + return; +} + +void +DialTabDialer::ShowSpeedDialConfirmationPopup(bool isVoiceMail) +{ + String popupTitleMsg; + String popupMsg; + Label* pMsgLabel; + if(__pConfirmationPopup == null) + { + FloatRectangle rect = GetBoundsF(); + __pConfirmationPopup = new (std::nothrow) Popup(); + __pConfirmationPopup->Construct(true, FloatDimension(W_SPEEDDIAL_POPUP, H_SPEEDDIAL_POPUP)); + + rect = __pConfirmationPopup->GetBoundsF(); + pMsgLabel = new (std::nothrow) Label(); + if(isVoiceMail == true) + { + popupTitleMsg = AppUtility::GetResourceString(IDS_DIALER_VOICE_POPUP_TITLE_MSG); + popupMsg = AppUtility::GetResourceString(IDS_DIALER_VOICE_POPUP_MSG); + } + else + { + popupTitleMsg = AppUtility::GetResourceString(IDS_DIALER_SPEEDDIAL_POPUP_TITLE_MSG); + popupMsg = AppUtility::GetResourceString(IDS_DIALER_SPEEDDIAL_POPUP_MSG); + } + __pConfirmationPopup->SetTitleText(popupTitleMsg); + __pConfirmationPopup->SetPropagatedKeyEventListener(this); + __pConfirmationPopup->Invalidate(true); + pMsgLabel->Construct(Rectangle(0, IDI_PADDING, rect.width, H_POPUP_MSG_LABEL), popupMsg); + pMsgLabel->SetName(IDC_SPEED_DIAL_TXT_LABEL); + pMsgLabel->SetTextConfig(44,LABEL_TEXT_STYLE_NORMAL); + pMsgLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT); + pMsgLabel->SetTextVerticalAlignment(ALIGNMENT_MIDDLE); + __pConfirmationPopup->AddControl(*pMsgLabel); + + rect = pMsgLabel->GetBoundsF();; + Button *pButtonNo = new (std::nothrow) Button(); + String btnName = AppUtility::GetResourceString(IDS_SPEEDDIAL_POP_NO_BTN_STRING); + pButtonNo->Construct(Rectangle(rect.x+ IDI_PADDING, (rect.y + rect.height + IDI_PADDING), ((rect.width - (3 * IDI_PADDING)) / 2), H_POPUP_BTN), btnName); + pButtonNo->SetActionId(IDA_SPEEDDIAL_POPUP_NO); + pButtonNo->AddActionEventListener(*this); + + rect = pButtonNo->GetBoundsF(); + btnName = AppUtility::GetResourceString(IDS_SPEEDDIAL_POP_YES_BTN_STRING); + Button *pButtonYes = new (std::nothrow) Button(); + pButtonYes->Construct(Rectangle((rect.x + rect.width + IDI_PADDING), rect.y, rect.width, rect.height), btnName); + pButtonYes->SetActionId(IDA_SPEEDDIAL_POPUP_YES); + pButtonYes->AddActionEventListener(*this); + __pConfirmationPopup->AddControl(*pButtonYes); + + + __pConfirmationPopup->AddControl(pButtonNo); + } + else + { + if(isVoiceMail == true) + { + popupTitleMsg = AppUtility::GetResourceString(IDS_DIALER_VOICE_POPUP_TITLE_MSG); + popupMsg = AppUtility::GetResourceString(IDS_DIALER_VOICE_POPUP_MSG); + } + else + { + popupTitleMsg = AppUtility::GetResourceString(IDS_DIALER_SPEEDDIAL_POPUP_TITLE_MSG); + popupMsg = AppUtility::GetResourceString(IDS_DIALER_SPEEDDIAL_POPUP_MSG); + } + __pConfirmationPopup->SetTitleText(popupTitleMsg); + pMsgLabel = static_cast(__pConfirmationPopup->GetControl(IDC_SPEED_DIAL_TXT_LABEL, true)); + pMsgLabel->SetText(popupMsg); + + } + //Show Popup message + __pConfirmationPopup->SetShowState(true); + __pConfirmationPopup->Show(); +} + +void +DialTabDialer::ShowAddToContactsButton(void) +{ + Panel* pSearchPanel = static_cast(GetControl(IDC_PANEL_SEARCH_BOX, true)); + Button* pButtonContacts = static_cast(GetControl(IDC_BUTTON_USE_CONTACT, true)); + Button* pButtonDropDown = static_cast(GetControl(IDC_BUTTON_DROP_DOWN, true)); + Button* pButtonAddContacts = static_cast(GetControl(IDC_BUTTON_ADD_CONTACTS, true)); + pButtonContacts->SetShowState(false); + pButtonDropDown->SetShowState(false); + pButtonAddContacts->SetShowState(true); + pSearchPanel->SetShowState(true); + pSearchPanel->Invalidate(true); + return; +} + +void +DialTabDialer::OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs) +{ + switch(requestId) + { + case REQUEST_SHOW_SUGGESTION: + { + String* pDisplayname = static_cast (pArgs->GetAt(0)); + String* pMobileNo = static_cast (pArgs->GetAt(1)); + String* pMatchedSearchStr = static_cast (pArgs->GetAt(2)); + String* pResultCount = static_cast (pArgs->GetAt(3)); + if(pDisplayname != null && pMobileNo != null && pMatchedSearchStr != null && pResultCount != null) + { + if (__isSearchListOpened == true) + { + HideSearchListView(); + } + ShowSuggestionBox(*pDisplayname, *pMobileNo, *pMatchedSearchStr, *pResultCount); + } + delete pArgs; + } + break; + + case REQUEST_SHOW_ADD_TO_CONTACTS: + { + if (__isSearchListOpened == true) + { + HideSearchListView(); + } + ShowAddToContactsButton(); + } + break; + + case REQUEST_CALL_SPEED_DIAL_NUM: + { + if(pArgs != null) + { + String *number = static_cast (pArgs->GetAt(0)); + //dial a call. + if(number != null) + { + DialOutgoingCall(*number); + } + delete pArgs; + } + } + break; + + case REQUEST_SHOW_VOICE_MAIL_POPUP: + { + ShowSpeedDialConfirmationPopup(true); + } + break; + case REQUEST_SHOW_SPEED_DIAL_POPUP: + { + //show speed Dial Confirmation Popup msg + ShowSpeedDialConfirmationPopup(); + } + break; + } + +} +void +DialTabDialer::SetShiftedPosUseContact(void) +{ + Panel* pSearchPanel = static_cast(GetControl(IDC_PANEL_SEARCH_BOX, true)); + Panel* pPanelUseContact = static_cast(pSearchPanel->GetControl(IDC_PANEL_USE_CONTACT, true)); + Panel* pPanelDropDown = static_cast(pSearchPanel->GetControl(IDC_PANEL_DROPDOWN, true)); + + Point pointUseContact = pPanelUseContact->GetPosition(); + pointUseContact.y = 0; + Point pointDropDown = pPanelDropDown->GetPosition(); + pointDropDown.y = 10; + + pPanelUseContact->SetPosition(pointUseContact.x,pointUseContact.y); + pPanelDropDown->SetPosition(pointDropDown.x,pointDropDown.y); + + pPanelUseContact->SetShowState(true); + pPanelDropDown->SetShowState(true); + + SetControlAlwaysOnTop(*pPanelUseContact,true); + SetControlAlwaysOnTop(*pPanelDropDown,true); + pSearchPanel->Invalidate(true); +} +void +DialTabDialer::SetOrigPosUseContact(void) +{ + Panel* pSearchPanel = static_cast(GetControl(IDC_PANEL_SEARCH_BOX, true)); + Panel* pPanelUseContact = static_cast(pSearchPanel->GetControl(IDC_PANEL_USE_CONTACT, true)); + Panel* pPanelDropDown = static_cast(pSearchPanel->GetControl(IDC_PANEL_DROPDOWN, true)); + + Point pointUseContact = pPanelUseContact->GetPosition(); + pointUseContact.y = 119; + Point pointDropDown = pPanelDropDown->GetPosition(); + pointDropDown.y = 147; + + pPanelUseContact->SetPosition(pointUseContact.x,pointUseContact.y); + pPanelDropDown->SetPosition(pointDropDown.x,pointDropDown.y); + + SetControlAlwaysOnTop(*pPanelUseContact,true); + SetControlAlwaysOnTop(*pPanelDropDown,true); + pSearchPanel->Invalidate(true); +} + +void +DialTabDialer::ShowSuggestionBox(String& name, String& mobileNo, String& matchedKey, String& resultCount) +{ + AppLogDebug("ENTER"); + String nameWithEllipsis(name); + String mobileNoWithEllipsis(mobileNo); + //"UseContact" Button + Button* pButtonUseContacts = static_cast(GetControl(IDC_BUTTON_USE_CONTACT, true)); + Button* pButtonDropDown = static_cast(GetControl(IDC_BUTTON_DROP_DOWN, true)); + //This is the button width where the Text with Ellipsis will be displayed + int buttonMaxWidth = pButtonUseContacts->GetBounds().width - IDI_RIGHT_MARGIN_USE_CONTACT_BTN - ELLIPSIS_LENGTH; + //Constructing text element and font to get the text extent of name + TextElement* pTextElement = new (std::nothrow) TextElement(); + pTextElement->Construct(nameWithEllipsis); + Font* nameTextfont = new (std::nothrow) Font(); + nameTextfont->Construct(FONT_STYLE_PLAIN, 44); + FloatDimension textDimension; + nameTextfont->GetTextExtent(nameWithEllipsis, nameWithEllipsis.GetLength(), textDimension); + if(textDimension.width > buttonMaxWidth) + { + nameWithEllipsis.Append(L"..."); + } + //Removing the extra length in name and appending ellipsis + while(textDimension.width > buttonMaxWidth) + { + nameWithEllipsis.Remove(nameWithEllipsis.GetLength() - 4, 1); + nameTextfont->GetTextExtent(nameWithEllipsis, nameWithEllipsis.GetLength(), textDimension); + } + + + //Constructing text element and font to get the text extent of mobileNo + TextElement* pMobileNoElement = new (std::nothrow) TextElement(); + pMobileNoElement->Construct(mobileNoWithEllipsis); + Font* mobileNoFont = new (std::nothrow) Font(); + mobileNoFont->Construct(FONT_STYLE_PLAIN, 35); + mobileNoFont->GetTextExtent(mobileNoWithEllipsis, mobileNoWithEllipsis.GetLength(), textDimension); + if(textDimension.width > buttonMaxWidth) + { + mobileNoWithEllipsis.Append(L"..."); + } + while(textDimension.width > buttonMaxWidth) + { + mobileNoWithEllipsis.Remove(mobileNoWithEllipsis.GetLength() - 4, 1); + mobileNoFont->GetTextExtent(mobileNoWithEllipsis, mobileNoWithEllipsis.GetLength(), textDimension); + } + + + + delete pTextElement; + pTextElement = null; + + delete pMobileNoElement; + pMobileNoElement = null; + + + delete nameTextfont; + nameTextfont = null; + + delete mobileNoFont; + mobileNoFont = null; + + + Canvas pCanvasNormalContacts; + pCanvasNormalContacts.Construct(pButtonUseContacts->GetBounds()); + Canvas pCanvasPressedContacts; + pCanvasPressedContacts.Construct(pButtonUseContacts->GetBounds()); + String mobileStr = AppUtility::GetResourceString(IDS_DIALER_MOBILE_STR); + pCanvasNormalContacts.SetBackgroundColor(COLOR_SEARCHLIST_BG); + pCanvasNormalContacts.Clear(); + //Add text, Bg to normal state + DialUtil::DrawTextAndHighlightedKeywordToCanvas(nameWithEllipsis, matchedKey, FONT_SUGGESTION_NAME, pCanvasNormalContacts, POSITION_SUGGESTION_NAME); + DialUtil::DrawTextAndHighlightedKeywordToCanvas(mobileNoWithEllipsis, matchedKey, FONT_SUGGESTION_MOBILE, pCanvasNormalContacts, POSITION_SUGGESTION_NUMBER); + //Add text, Bg to pressed state + pCanvasPressedContacts.SetBackgroundColor(COLOR_SEARCHLIST_PRESS_BG); + pCanvasPressedContacts.Clear(); + DialUtil::DrawTextAndHighlightedKeywordToCanvas(nameWithEllipsis, matchedKey, FONT_SUGGESTION_NAME, pCanvasPressedContacts, POSITION_SUGGESTION_NAME); + DialUtil::DrawTextAndHighlightedKeywordToCanvas(mobileNoWithEllipsis, matchedKey, FONT_SUGGESTION_MOBILE, pCanvasPressedContacts, POSITION_SUGGESTION_NUMBER); + //add normal, pressed bg bitmap to button + DialUtil::DrawCanvasToButton(&pCanvasNormalContacts, &pCanvasPressedContacts, pButtonUseContacts); + + //"DropDown" Button + Canvas pCanvasNormalDropDown; + pCanvasNormalDropDown.Construct(pButtonDropDown->GetBounds()); + Canvas pCanvasPressedDropDown; + pCanvasPressedDropDown.Construct(pButtonDropDown->GetBounds()); + //Add text, Bg to normal state + DialUtil::Draw9PatchToCanvas(pCanvasNormalDropDown, IDB_BTN_OPTION_BG_ICON); + DialUtil::DrawTextToCanvas(resultCount, FONT_EXPAND_BUTTON_TEXT, pCanvasNormalDropDown, POSITION_CENTER, BUTTON_STATUS_NORMAL); + DialUtil::DrawImageToCanvas(IDB_POPUP_BUBBLE_ICON, Dimension(W_SUGGESTION_POPUP_BUBBLE_ICON, H_SUGGESTION_POPUP_BUBBLE_ICON), pCanvasNormalDropDown, POSITION_BOTTOM_CENTER); + //Add text, Bg to pressed state + DialUtil::Draw9PatchToCanvas(pCanvasPressedDropDown, IDB_BTN_OPTION_PRESS_BG_ICON); + DialUtil::DrawTextToCanvas(resultCount, FONT_EXPAND_BUTTON_TEXT, pCanvasPressedDropDown, POSITION_CENTER, BUTTON_STATUS_NORMAL); + DialUtil::DrawImageToCanvas(IDB_POPUP_BUBBLE_PRESS_ICON, Dimension(W_SUGGESTION_POPUP_BUBBLE_ICON, H_SUGGESTION_POPUP_BUBBLE_ICON), pCanvasPressedDropDown, POSITION_BOTTOM_CENTER); + //add background to button + DialUtil::DrawCanvasToButton(&pCanvasNormalDropDown, &pCanvasPressedDropDown, pButtonDropDown); + + Button* pButtonAddContacts = static_cast(GetControl(IDC_BUTTON_ADD_CONTACTS, true)); + pButtonAddContacts->SetShowState(false); + + Form* pForm = dynamic_cast(GetParent()); + int noOfItems = MAX_SEARCH_LIST_ITEMS; + if(__pDialPresentationModel->GetNumberOfSuggestions() < (noOfItems+1)) + { + noOfItems = __pDialPresentationModel->GetNumberOfSuggestions() - 1; + } + if(pForm != null && (pForm->GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE || pForm->GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE_REVERSE)) + { + SetOrigPosUseContact(); + } + pButtonUseContacts->SetShowState(true); + pButtonDropDown->SetShowState(true); + pButtonDropDown->Invalidate(true); + Panel* pSearchPanel = static_cast(GetControl(IDC_PANEL_SEARCH_BOX, true)); +/* FloatRectangle originalrect = pSearchPanel->GetBoundsF(); + FloatPoint floatpoint = CoordinateSystem::AlignToDevice(pSearchPanel->GetPositionF()); + result r; + r =pSearchPanel->SetPosition(floatpoint); + + Label* pEditFieldBgLbl = static_cast(GetControl(L"IDC_LABEL_BACKGROUND", true)); + originalrect = pEditFieldBgLbl->GetBoundsF(); + FloatRectangle floatrect = CoordinateSystem::AlignToDevice(pEditFieldBgLbl->GetBoundsF()); + r =pEditFieldBgLbl->SetBounds(floatrect); + pEditFieldBgLbl->Invalidate(true); + + + Panel* pLastRowPanel = static_cast(GetControl(IDC_PANEL_LASTROW, true)); + floatrect = CoordinateSystem::AlignToDevice(pLastRowPanel->GetBoundsF()); + r =pLastRowPanel->SetBounds(floatrect); + pLastRowPanel->Invalidate(true);*/ + + pSearchPanel->SetShowState(true); + pSearchPanel->Invalidate(true); + + int totalSuggestions; + Integer::Parse(resultCount, totalSuggestions); + if(totalSuggestions <= 1) + { + pButtonDropDown->SetShowState(false); + pButtonDropDown->Invalidate(false); + } + + AppLogDebug("EXIT"); + return; +} + +void +DialTabDialer::OnListViewItemStateChanged(ListView& listView, int index, int elementId, ListItemStatus status) +{ + DialContactInfo* pDialInfo = __pDialPresentationModel->GetSuggestionAtIndex(index+1); + if(pDialInfo != null) + { + String phNumber = pDialInfo->GetPhoneNumber(); + EditField* pTextBox = static_cast(GetControl(IDC_NUMERIC_EDITFIELD, true)); + if(pTextBox != null) + { + pTextBox->Clear(); + ShowFormattedText(pTextBox,phNumber); + pTextBox->Invalidate(true); + } + HideSearchListView(); + UpdateSearchResults(); + } + return; +} + +void +DialTabDialer::OnOrientationChanged(const Control& source, OrientationStatus orientationStatus) +{ + AppLogDebug("Enter"); + Layout* pLayout = GetLayoutN(); + if (pLayout != null) + { + pLayout->Update(); + } + Form* pForm = static_cast(GetParent()); + + + if (orientationStatus == ORIENTATION_STATUS_LANDSCAPE || orientationStatus == ORIENTATION_STATUS_LANDSCAPE_REVERSE) + { + Label* pKeypadBgLbl = static_cast(GetControl(L"IDC_LABEL_KEYPAD", true)); + pKeypadBgLbl->SetBounds(pKeypadBgLbl->GetX(),pKeypadBgLbl->GetY(),GetWidth()/2,pKeypadBgLbl->GetHeight()); + } + + Label* pEditFieldBgLbl = static_cast(GetControl(L"IDC_LABEL_BACKGROUND", true)); + Dimension editFieldBgLblDimen = pEditFieldBgLbl->GetSize(); + if (orientationStatus == ORIENTATION_STATUS_LANDSCAPE || orientationStatus == ORIENTATION_STATUS_LANDSCAPE_REVERSE) + { + editFieldBgLblDimen.height = 461; + } + else if(orientationStatus == ORIENTATION_STATUS_PORTRAIT || orientationStatus == ORIENTATION_STATUS_PORTRAIT_REVERSE) + { + editFieldBgLblDimen.height = 315; + } + pEditFieldBgLbl->SetSize(editFieldBgLblDimen); + + //Show last row label bg in landscape only. + Panel* pLastRowPanel = static_cast(GetControl(IDC_PANEL_LASTROW, true)); + Rectangle lastRowRect = pLastRowPanel->GetBounds(); + lastRowRect.y = pForm->GetClientAreaBounds().height - lastRowRect.height; + pLastRowPanel->SetBounds(lastRowRect); + Label* pLastRowLabel = static_cast(pLastRowPanel->GetControl(IDC_LABEL_LASTROW_BG, true)); + if (orientationStatus == ORIENTATION_STATUS_LANDSCAPE || orientationStatus == ORIENTATION_STATUS_LANDSCAPE_REVERSE) + { + pLastRowLabel->SetShowState(true); + } + else if(orientationStatus == ORIENTATION_STATUS_PORTRAIT || orientationStatus == ORIENTATION_STATUS_PORTRAIT_REVERSE) + { + pLastRowLabel->SetShowState(false); + } + + EditField* pEditField = static_cast(GetControl(IDC_NUMERIC_EDITFIELD, true)); + if (pEditField->GetTextLength() > 0) + { + if (__pDialPresentationModel->GetNumberOfSuggestions() == 0) + { + ShowAddToContactsButton(); + } + else + { + //contact suggestion is present, change it bitmap based on new orientation + DialContactInfo* pDialInfo = __pDialPresentationModel->GetSuggestionAtIndex(0); + if (pDialInfo != null) + { + String name = pDialInfo->GetDisplayName(); + String mobileNo = pDialInfo->GetPhoneNumber(); + String* pMatchedSearchStr = pDialInfo->GetSearchKey(); + String resultCount; + resultCount.Append(__pDialPresentationModel->GetNumberOfSuggestions()); + ShowSuggestionBox(name, mobileNo, *pMatchedSearchStr, resultCount); + } + //Check if search list view is open + if(__isSearchListOpened == true) + { + HideSearchListView(); + ShowSearchListView(); + } + } + } + + //reset the bitmaps to button based on new orientation. + if (__pDialKeypad != null) + { + __pDialKeypad->SetBitmapToKeypadButtons(); + __pDialKeypad->Invalidate(true); + } + + Invalidate(true); + return; +} + +void +DialTabDialer::HandlePopupClosed(void) +{ + Draw(); + if(__pErrorMsgPopup != null) + { + __pErrorMsgPopup->SetShowState(false); + } + return; +} + +void +DialTabDialer::OnForeground(void) +{ + AppLogDebug("Enter"); + __isAppForeground = true; + + //If app control was launched + //as we do not know if it success or failed + // we need to UpdateSearchResults + //Returned from app control if app control does not + //send any response we need to do this + EditField* pEditField = static_cast(GetControl(IDC_NUMERIC_EDITFIELD, true)); + String editText(L""); + if(pEditField != null) + { + editText = pEditField->GetText(); + //Commented this for bug number N_SE-51976 + //Uncommenting for PLM P131002-02247 + pEditField->SetFocus(); + } + + if(editText.IsEmpty() == true) + { + //Fetch auto area code setting, if present + SettingsPresentationModel::GetInstance()->GetActivePrefixDialNumber(editText); + if(editText.IsEmpty() == false) + { + editText.Replace(L"P",L";"); + editText.Replace(L"p",L";"); + } + if(pEditField != null) + { + ShowFormattedText(pEditField,editText); + //pEditField->SetCursorPosition(editText.GetLength()); + pEditField->Invalidate(true); + //show search results + if (pEditField->GetTextLength() == 0) + { + ShowSearchGadget(); + HideSearchBox(); + } + else + { + HideSearchGadget(); + UpdateSearchResults(); + } + } + } + + + SetAppControlLaunched(false); +} + +void +DialTabDialer::OnBackground(void) +{ + AppLogDebug("Enter"); + __isAppForeground = false; + if (__isSearchListOpened == true) + { + HideSearchListView(); + } +} + +bool +DialTabDialer::IsForeground() +{ + AppLogDebug("Enter %d",__isAppForeground); + return __isAppForeground; +} + +void +DialTabDialer::OnContactsChanged(const IList& contactChangeInfoList) +{ + if(contactChangeInfoList.GetCount() > 0) + { + //clear old search results + __pDialPresentationModel->ClearSearchResults(); + UpdateSearchResults(); + } +} + +void +DialTabDialer::SetAppControlLaunched(bool launched) +{ + AppLogDebug("%d",__isAppControlLaunched); + __isAppControlLaunched = launched; +} + +bool +DialTabDialer::GetAppControlLaunched(void) +{ + AppLogDebug("%d",__isAppControlLaunched); + return __isAppControlLaunched; +} + +void +DialTabDialer::OnTextValueChanged(const Tizen::Ui::Control& source) +{ + AppLogDebug("OnTextValueChanged"); + EditField* pEditField = static_cast(GetControl(IDC_NUMERIC_EDITFIELD, true)); + if (pEditField->GetTextLength() == 0) + { + pEditField->SetTextSize(IDI_MAX_TXT_FONT); + ShowSearchGadget(); + HideSearchBox(); + } + else + { + String number = pEditField->GetText(); + pEditField->Clear(); + ShowFormattedText(pEditField,number); + HideSearchGadget(); + UpdateSearchResults(); + } +} + +void +DialTabDialer::ShowOptionsMenu() +{ + AppLogDebug("Enter"); + if(__pOptionMenu != null) + { + AppLogDebug("__pOptionMenu != null"); + delete __pOptionMenu; + __pOptionMenu = null; + } + __pOptionMenu = new (std::nothrow) OptionMenu(); + __pOptionMenu->Construct(); + __pOptionMenu->AddItem(AppUtility::GetResourceString(IDS_DIALER_MENU_ITEM_SEND_MSG), IDA_MENU_SEND_MESSAGE); + __pOptionMenu->AddItem(AppUtility::GetResourceString(IDS_DIALER_MENU_ITEM_SPEED_DIAL), IDA_MENU_SPEED_DIAL); + __pOptionMenu->AddActionEventListener(*this); + __pOptionMenu->SetShowState(true); + __pOptionMenu->Show(); +} +void +DialTabDialer::HandleFormBackRequest() +{ + AppLogDebug("Enter"); + PhoneApp* pPhoneApp = static_cast(UiApp::GetInstance()); + if(pPhoneApp->IsOpenAsAppControl() == true) + { + //launched as "AddCall" AppControl, send response + pPhoneApp->SendAppControlResponseMessage(APP_CTRL_RESULT_CANCELED, null); + } + pPhoneApp->Terminate(); +} + +bool +DialTabDialer::OnKeyReleased(Control& source, const KeyEventInfo& keyEventInfo) +{ + AppLogDebug("Enter"); + if(keyEventInfo.GetKeyCode() == KEY_BACK || keyEventInfo.GetKeyCode() == KEY_ESC) + { + if(__pConfirmationPopup != null && __pConfirmationPopup->GetShowState() == true) + { + __pConfirmationPopup->SetShowState(false); + return true; + } + } + return false; +} +bool +DialTabDialer::OnKeyPressed(Control& source, const KeyEventInfo& keyEventInfo) +{ + EditField* pEditField = static_cast(GetControl(IDC_NUMERIC_EDITFIELD, true)); + if(source.Equals(*pEditField)) + { + if(keyEventInfo.GetKeyCode() == KEY_BACKSPACE || keyEventInfo.GetKeyCode() == KEY_DELETE) + { + return true; + } + } + + return false; +} + +void +DialTabDialer::ShowSilentModeToggle(bool bEnabled) +{ + // Creates an instance of MessageBox + String message = (bEnabled ? AppUtility::GetResourceString(IDS_SILENT_MODE_ENABLED):AppUtility::GetResourceString(IDS_SILENT_MODE_DISABLED)); + MessageBox silentMsgBox; + + silentMsgBox.Construct(L"", message, MSGBOX_STYLE_NONE, 2000); + // Calls ShowAndWait() : Draws and Shows itself and processes events + SetFocus(); + int modalResult; + silentMsgBox.ShowAndWait(modalResult); +} + +void +DialTabDialer::OnTouchPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo) +{ + AppLogDebug("Enter"); +} + +void +DialTabDialer::SetIgnoreClearKey(bool bIgnore) +{ + __isClearKeyIgnore = bIgnore; +} +bool +DialTabDialer::IsClearKeyIgnored(void) +{ + return __isClearKeyIgnore; +} + +void +DialTabDialer::OnSettingChanged(Tizen::Base::String& key) +{ + if(key.Equals(String(SETTING_INFO_KEY_CONTACTS_ORDER)) == true) + { + UpdateSearchResults(); + } +} diff --git a/src/PhnTabLogs.cpp b/src/PhnTabLogs.cpp new file mode 100644 index 0000000..4a923ec --- /dev/null +++ b/src/PhnTabLogs.cpp @@ -0,0 +1,1392 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnTabLogs.cpp + * @brief The Logs Tab + */ + +#include +#include +#include +#include +#include +#include "PhnPhoneApp.h" +#include "PhnAppUtility.h" +#include "PhnTypes.h" +#include "PhnCommonUtils.h" +#include "PhnTabLogs.h" +#include "PhnSceneRegister.h" +#include "PhnCalllogManager.h" +#include "PhnTypes.h" + +using namespace Tizen::App; +using namespace Tizen::Base; +using namespace Tizen::Base::Collection; +using namespace Tizen::Base::Utility; +using namespace Tizen::Ui::Controls; +using namespace Tizen::Graphics; +using namespace Tizen::Media; +using namespace Tizen::Social; +using namespace Tizen::Ui; +using namespace Tizen::Ui::Scenes; + +const int W_NOCONTENTS_IMAGE = 280; +const int H_NOCONTENTS_IMAGE = 280; +//List view height +const int H_TOAST_MSG = 48; +const int H_SELECTALL_CHK_BOX = 112; + +const wchar_t* IDL_PANEL_LOGS = L"IDL_PANEL_LOGS"; +const wchar_t* IDC_LABEL_SELECTED_POPUP = L"IDC_LABEL_SELECTED_POPUP"; +const unsigned int COLOR_LABEL_SELECTED = Color32<68, 68, 68>::Value; +const unsigned int COLOR_LABEL_SELECTED_TEXT = Color32<255, 255, 255>::Value; +static const unsigned int COLOR_ITEM_DELETE_TEXT = Color32<255, 255, 255>::Value; +static const unsigned int COLOR_ITEM_DELETE_BACKGROUND = Color32<208, 82, 82>::Value; +static const unsigned int COLOR_ITEM_DELETE_PRESSED_BACKGROUND = Color32<194, 71, 71>::Value; + +static const int W_DELETE_POPUP = 720; +static const int H_DELETE_POPUP = 308; +static const int Y_DELETE_POPUP_TITLE = 20; +static const int H_DELETE_POPUP_ELEMENT = 60; +static const int H_DELETE_POPUP_PROGRESS = 60; +static const int Y_DELETE_POPUP_CANCEL_BUTTON = 214; +static const int H_DELETE_POPUP_CANCEL_BUTTON = 74; +static const int W_DELETE_POPUP_CANCEL_BUTTON = 394; + +static const int FONT_SIZE_DELETE_POPUP_TEXT = 36; +//static const int X_MORE = 55; + +static const unsigned int COLOR_DELETE_POPUP_TEXT = Color32<128, 128, 128>::Value; +DialTabLogs::DialTabLogs(void) +{ + __pDataProvider = new CustomDataProvider(); + __pFormFooter = null; + __plogsListView = null; + __isEditMode = false; + __pButtonSelectAll = null; + __groupCount = 0; + __itemCount = 0; + __isSelectAll = false; + __selectedItemCount = 0; + __pLogPresentor = null; + __pArgs = null; + __deleteLogsTimer.Construct(*this); + __deleteGroupIndex = 0; + __deleteItemIndex = 0; + __pDeletePopup = null; + __pConfirmationDeletePopup = null; + __pCallLogId = null; + __isSceneVisible = false; + __pLogsViewbyPopup = null; + __isMsgAppControlLaunched = false; + __isCallAppControlLaunched = false; + __pOptionMenu = null; + __isDeleteInProgress = false; + __pAddressbook = null; +} + +DialTabLogs::~DialTabLogs(void) +{ + AppLogDebug("Enter"); + if (__pDataProvider != null) + { + delete __pDataProvider; + __pDataProvider = null; + } + if (__pLogPresentor != null) + { + __pLogPresentor->RemoveCalllogChangeListner(*this); + __pLogPresentor = null; + } + if (__pCallLogId != null) + { + __pCallLogId->RemoveAll(); + delete __pCallLogId; + __pCallLogId = null; + } + if(__pLogsViewbyPopup != null) + { + delete __pLogsViewbyPopup; + __pLogsViewbyPopup = null; + } +} + +bool +DialTabLogs::Initialize(void) +{ + result r = Construct(IDL_PANEL_LOGS); + TryCatch(r == E_SUCCESS, , "DialTabLogs::Initialise() - Fail to initialise Call log panel"); + return true; + + CATCH: + return false; +} + +result +DialTabLogs::OnInitializing(void) +{ + result r = E_SUCCESS; + // Layout setting + Form* pForm = dynamic_cast(GetParent()); + if(pForm == null) + { + return E_FAILURE; + } + + pForm->AddOrientationEventListener(*this); + + RelativeLayout* pRelativeLayout = dynamic_cast(pForm->GetLandscapeLayoutN()); + if (pRelativeLayout != null) + { + pRelativeLayout->SetHorizontalFitPolicy(*this, FIT_POLICY_PARENT); + pRelativeLayout->SetVerticalFitPolicy(*this, FIT_POLICY_PARENT); + delete pRelativeLayout; + } + + pRelativeLayout = dynamic_cast(pForm->GetPortraitLayoutN()); + if (pRelativeLayout != null) + { + pRelativeLayout->SetHorizontalFitPolicy(*this, FIT_POLICY_PARENT); + pRelativeLayout->SetVerticalFitPolicy(*this, FIT_POLICY_PARENT); + delete pRelativeLayout; + } + + __pFormFooter = pForm->GetFooter(); + if (__pFormFooter != null) + { + __pFormFooter->SetShowState(true); + __pFormFooter->SetStyle(FOOTER_STYLE_BUTTON_ICON_TEXT); + __pFormFooter->AddActionEventListener(*this); + + __footerItemDelete.Construct(IDA_FOOTER_LOG_DELETE); + String delStr = AppUtility::GetResourceString(IDS_DELETE_BTN_STRING); + __footerItemDelete.SetText(delStr); + __pFormFooter->AddItem(__footerItemDelete); + + } + + __pButtonSelectAll = static_cast(GetControl("IDC_CHECKBUTTON_SELECTALL")); + if (__pButtonSelectAll != null) + { + __pButtonSelectAll->SetShowState(false); + __pButtonSelectAll->SetActionId(IDA_CHECKBUTTON_SELECT_ALL, IDA_CHECKBUTTON_UNSELECT_ALL); + __pButtonSelectAll->AddActionEventListener(*this); + __pButtonSelectAll->SetTextVerticalAlignment(ALIGNMENT_MIDDLE); + } + __pAddressbook = AddressbookManager::GetInstance()->GetAddressbookN(DEFAULT_ADDRESSBOOK_ID); + if (__pAddressbook == null) + { + AppLogDebug("Address Book in null!"); + } + + //create a list view + __plogsListView = new (std::nothrow) GroupedListView(); + if (__plogsListView != null) + { + __plogsListView->Construct(Rectangle(pForm->GetX(), pForm->GetY(), pForm->GetWidth(), pForm->GetClientAreaBounds().height), GROUPED_LIST_VIEW_STYLE_INDEXED, true, SCROLL_STYLE_FADE_OUT); + __plogsListView->AddGroupedListViewItemEventListener(*this); + Bitmap* pNoContentBitmap = AppUtility::GetBitmapFromResourcesN(IDB_LOG_NO_CONTENT,W_NOCONTENTS_IMAGE,H_NOCONTENTS_IMAGE); + if(pNoContentBitmap != null) + { + __plogsListView->SetBitmapOfEmptyList(pNoContentBitmap); + + } + __plogsListView->SetTextOfEmptyList(AppUtility::GetResourceString(IDS_NO_LOGS)); + __plogsListView->SetTextColorOfEmptyList(Color(128,128,128)); + r = AddControl(__plogsListView); + TryCatch(r == E_SUCCESS, , "Calllog list control not added"); + } + + __pSelectedLabel = static_cast(GetControl(IDC_LABEL_SELECTED_POPUP)); + if(__pSelectedLabel != null) + { + SetControlAlwaysOnTop(*__pSelectedLabel,true); + __pSelectedLabel->SetBackgroundColor(COLOR_LABEL_SELECTED); + __pSelectedLabel->SetTextColor(COLOR_LABEL_SELECTED_TEXT); + __pSelectedLabel->SetShowState(false); + } + + __pCallLogId = new(std::nothrow) ArrayList(); + r = __pCallLogId->Construct(); + + CATCH: + return r; +} + +result +DialTabLogs::OnTerminating(void) +{ + result r = E_SUCCESS; + delete __pDeletePopup; + __pDeletePopup = null; + delete __pConfirmationDeletePopup; + __pConfirmationDeletePopup = null; + __plogsListView = null; + delete __pOptionMenu; + if (__pAddressbook != null) + { + delete __pAddressbook; + __pAddressbook = null; + } + return r; +} + +void +DialTabLogs::DeleteSelectedCalllog(void) +{ + ShowDeletePopup(); +} + +void +DialTabLogs::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs) +{ + AppUtility::GetGlobalFontAndItemHeight(&__fontSize, &__itemHeight); + __pLogPresentor = CalLogPresentationModel::GetInstance(); + __pLogPresentor->AddCalllogChangeListener(*this); + + PhoneApp* pPhoneApp = static_cast(PhoneApp::GetInstance()); + pPhoneApp->AddAppStateChangeListener(*this); + Tizen::System::SettingInfo::AddSettingEventListener(*this); + + __plogsListView->SetItemProvider(*__pDataProvider); + __isMsgAppControlLaunched = false; + __isCallAppControlLaunched = false; + + if (__pFormFooter != null) + { + __pFormFooter->SetShowState(true); + if(__pLogPresentor->GetCallLogsViewedCount() > 0) + { + __pFormFooter->SetItemEnabled(0, true); + } + else + { + __pFormFooter->SetItemEnabled(0, false); + } + } + //Check if opened in edit mode + if(__isEditMode == true) + { + //Check if "select all" is already selected + if (__pButtonSelectAll->IsSelected() == true) + { + //HandleAllItemSelection(); + } + //If there is no items selected the reset the display mode + else if(__selectedItemCount == 0) + { + SetCallLogDisplayMode(false); + } + } + if(__pLogPresentor->IsDataUpdated()) + { + UpdateCallLogList(); + } + SetSceneVisible(true); + ManageItemSelection(); + const Form* pForm = dynamic_cast(GetParent()); + if(pForm != null) + { + if((pForm->GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE || pForm->GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE_REVERSE) && __isEditMode == true) + { + Rectangle newRect(pForm->GetX(), H_SELECTALL_CHK_BOX + 20, pForm->GetWidth(), (pForm->GetClientAreaBounds().height - H_SELECTALL_CHK_BOX - H_TOAST_MSG)); + __plogsListView->SetBounds(newRect); + } + else if(__isEditMode == true) + { + Rectangle newRect(pForm->GetX(), H_SELECTALL_CHK_BOX, pForm->GetWidth(), (pForm->GetClientAreaBounds().height - H_SELECTALL_CHK_BOX - H_TOAST_MSG)); + __plogsListView->SetBounds(newRect); + } + else + { + __plogsListView->SetBounds(pForm->GetX(), pForm->GetY(), pForm->GetWidth(), pForm->GetClientAreaBounds().height); + } + } + if(__pAddressbook != null) + { + __pAddressbook->SetAddressbookChangeEventListener(this); + } +} + +void +DialTabLogs::HandleAllItemSelection(void) +{ + SetListItemSelectStatus(true); + __itemCount = __pLogPresentor->GetCallLogsViewedCount(); + __selectedItemCount = __itemCount; + String text; + String selItemStr = L""; + selItemStr = AppUtility::GetResourceString(IDS_SELECTED_ITEM_STRING); + text.Format(100, selItemStr.GetPointer(), __itemCount); + __pSelectedLabel->SetText(text); + __pSelectedLabel->Invalidate(false); +} + +void +DialTabLogs::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId) +{ + AppLogDebug("Enter"); + PhoneApp* pPhoneApp = static_cast(PhoneApp::GetInstance()); + pPhoneApp->RemoveAppStateChangeListener(*this); + Tizen::System::SettingInfo::RemoveSettingEventListener(*this); + SetSceneVisible(false); + __pLogPresentor->RemoveCalllogChangeListner(*this); + __pLogPresentor = null; + if(__pAddressbook != null) + { + __pAddressbook->SetAddressbookChangeEventListener(null); + } +} + +void +DialTabLogs::OnGroupedListViewItemStateChanged(GroupedListView& listView, int groupIndex, int itemIndex, int elementId, ListItemStatus state) +{ + if (__isMsgAppControlLaunched == true || __isCallAppControlLaunched == true) + { + //AppControl already launched. + return; + } + + if (__isEditMode == false) + { + __pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter); + __pArgs->Construct(); + CallLogDetails* pCalllogInfo = null; + __pDataProvider->GetItemAtGroupIndex(groupIndex, itemIndex, &pCalllogInfo); + if(pCalllogInfo != null && pCalllogInfo->GetPhoneNumber() == null) + { + CallLogDetails* calllogInfoargs = new (std::nothrow) CallLogDetails(); + *calllogInfoargs = *pCalllogInfo; + __pArgs->Add(calllogInfoargs); + SceneManager* pSceneManager = SceneManager::GetInstance(); + pSceneManager->GoForward( ForwardSceneTransition(IDSCN_RESTRICTED_CALL_LOG_DETAILS, SCENE_TRANSITION_ANIMATION_TYPE_NONE, + SCENE_HISTORY_OPTION_NO_HISTORY), __pArgs); + __pArgs = null; + } + else if(pCalllogInfo != null) + { + __pArgs->Add((new String(pCalllogInfo->GetPhoneNumber()))); + SceneManager* pSceneManager = SceneManager::GetInstance(); + pSceneManager->GoForward( ForwardSceneTransition(IDSCN_CALL_LOG_DETAILS, SCENE_TRANSITION_ANIMATION_TYPE_NONE, + SCENE_HISTORY_OPTION_NO_HISTORY), __pArgs); + __pArgs = null; + } + } + else + { + String text; + if (state == LIST_ITEM_STATUS_CHECKED) + { + __selectedItemCount++; + StoreItemselection(groupIndex, itemIndex, elementId, state); + } + else if (state == LIST_ITEM_STATUS_UNCHECKED) + { + __selectedItemCount--; + StoreItemselection(groupIndex, itemIndex, elementId, state); + } + if (__selectedItemCount == __itemCount) + { + __pButtonSelectAll->SetSelected(true); + } + else + { + __pButtonSelectAll->SetSelected(false); + } + if (__selectedItemCount == 0) + { + __pFormFooter->SetItemEnabled(0, false); + String selStr = AppUtility::GetResourceString(IDS_SELECT_CALL_LOG); + __pSelectedLabel->SetText(selStr); + } + else + { + __pFormFooter->SetItemEnabled(0, true); + String selItemStr = L""; + selItemStr = AppUtility::GetResourceString(IDS_SELECTED_ITEM_STRING); + text.Format(100, selItemStr.GetPointer(), __selectedItemCount); + __pSelectedLabel->SetText(text); + } + __pFormFooter->Invalidate(true); + __pButtonSelectAll->Invalidate(false); + __pSelectedLabel->Invalidate(false); + } +} + +void +DialTabLogs::OnGroupedListViewContextItemStateChanged(GroupedListView& listView, int groupIndex, int itemIndex, int elementId, ListContextItemStatus state) +{ + //Empty implementation + CallLogDetails* pCalllogInfo = null; + __pDataProvider->GetItemAtGroupIndex(groupIndex, itemIndex, &pCalllogInfo); + __deleteGroupIndex = groupIndex; + __deleteItemIndex = itemIndex; + if(pCalllogInfo != null) + { + + switch (elementId) + { + case IDA_LIST_ELEMENT_DELETE: + { + ShowDeleteConfirmationPopup(IDA_POPUP_DELETE_YES); + } + break; + case IDA_LIST_ELEMENT_CALL: + { + __isCallAppControlLaunched = true; + char* pPhoneNumber = pCalllogInfo->GetPhoneNumber(); + if(pPhoneNumber == null) + { + __isCallAppControlLaunched = false; + break; + } + PhoneApp* pPhoneApp = static_cast(UiApp::GetInstance()); + if (pPhoneApp->IsOpenAsAppControl() == false) + { + __pLogPresentor->DialCall(String(pPhoneNumber)); + } + else + { + //launched as AppControl + /*HashMap resultData; + resultData.Construct(); + resultData.Add(new (std::nothrow) String(PARAM_PHONE_NUMBER), new (std::nothrow) String(pPhoneNumber)); + //send "APP_CTRL_RESULT_SUCCEEDED" and 'contactNumber' as result. + pPhoneApp->SendAppControlResponseMessage(APP_CTRL_RESULT_SUCCEEDED, &resultData); + resultData.RemoveAll(true);*/ + __pLogPresentor->DialCall(String(pPhoneNumber)); + pPhoneApp->Terminate(); + } + } + break; + + case IDA_LIST_ELEMENT_MESSAGE: + { + result r = E_SUCCESS; + char* pPhoneNumber = pCalllogInfo->GetPhoneNumber(); + if(pPhoneNumber == null) + { + break; + } + //launch message AppControl + __isMsgAppControlLaunched = true; + String phoneNumber=L""; + phoneNumber.Append(pPhoneNumber); + + HashMap extraData; + extraData.Construct(); + + extraData.Add(new (std::nothrow) String(MESSAGE_TYPE), new (std::nothrow) String(MESSAGE_SMS_TYPE)); + + + String tempContactNumber; + int commaIndex = 0; + int semiColonIndex = 0; + int index = 0; + phoneNumber.IndexOf(",", 0, commaIndex); + phoneNumber.IndexOf(";", 0, semiColonIndex); + + if(commaIndex != -1 && semiColonIndex != -1) + { + index = commaIndex < semiColonIndex ? commaIndex : semiColonIndex; + } + else if(commaIndex != -1 || semiColonIndex != -1) + { + index = commaIndex > semiColonIndex ? commaIndex : semiColonIndex; + } + else + { + index = phoneNumber.GetLength(); + } + phoneNumber.SubString(0, index, tempContactNumber); + + + extraData.Add(new (std::nothrow) String(MESSAGE_TO), new (std::nothrow) String(tempContactNumber)); + + String uri = L"sms:"; + uri.Append(tempContactNumber); + r = AppControl::FindAndStart(OPERATION_ID_COMPOSE,&uri,null,null,null,null); + /*AppControl* pAc = AppManager::FindAppControlN(PROVIDER_ID_MESSAGE, OPERATION_ID_COMPOSE); + if (pAc != null) + { + r = pAc->Start(null, null, &extraData, null); + if(r != E_SUCCESS) + { + //AppControl request failed, reset flag. + __isMsgAppControlLaunched = false; + } + + delete pAc; + } + + extraData.RemoveAll(true);*/ + + } + break; + case IDA_LIST_ELEMENT_VIDEO_CALL: + { + //todo: call once video call implemented + return; + } + break; + default: + break; + } + } +// listView.UpdateList(); +} + +void +DialTabLogs::OnGroupedListViewItemSwept(GroupedListView& listView, int groupIndex, int itemIndex, SweepDirection direction) +{ + //Empty implementation +} + +void +DialTabLogs::OnActionPerformed(const Control& source, int actionId) +{ + CallLogDetails* pCalllogInfo = null; + __pDataProvider->GetItemAtGroupIndex(__deleteGroupIndex, __deleteItemIndex, &pCalllogInfo); + switch (actionId) + { + case IDA_CONTEXTMENU_VIEWBY: + { + ShowLogsViewByPopup(); + } + break; + + case IDA_FOOTER_LOG_DELETE: + { + if (__isEditMode == false) + { + SetCallLogDisplayMode(true); + } + else + { + ShowDeleteConfirmationPopup(IDA_POPUP_DELETEALL_YES); + } + } + break; + + case IDA_CHECKBUTTON_SELECT_ALL: + { + __pCallLogId->RemoveAll(); + HandleAllItemSelection(); + } + break; + + case IDA_CHECKBUTTON_UNSELECT_ALL: + { + SetListItemSelectStatus(false); + __pCallLogId->RemoveAll(); + __selectedItemCount = 0; + String selStr = AppUtility::GetResourceString(IDS_SELECT_CALL_LOG); + __pSelectedLabel->SetText(selStr); + __pSelectedLabel->Invalidate(false); + } + break; + + case IDA_POPUP_DELETE_CANCEL: + { + __deleteLogsTimer.Cancel(); + HideDeletePopup(); + } + break; + + case IDA_POPUP_DELETE_YES: + { + if(pCalllogInfo != null) + { + if(pCalllogInfo->GetConsecutiveNoCounter() > 1) + { + Tizen::Base::Collection::ArrayList* dbIds = pCalllogInfo->GetCallLogDbIds(); + for(int i=0; i < dbIds->GetCount(); ++i) + { + Integer* in = (Integer*)dbIds->GetAt(i); + int p = in->ToInt(); + __pLogPresentor->DeleteCalllogByDbId(p); + } + } + else + { + __pLogPresentor->DeleteCalllogByDbId(pCalllogInfo->GetCalllogDbId()); + } + __pLogPresentor->DeleteItemAtGroupIndex(__deleteGroupIndex, __deleteItemIndex); + if(__pLogPresentor->GetCallLogsViewedCount() > 0) + { + __pFormFooter->SetItemEnabled(0, true); + } + else + { + __pFormFooter->SetItemEnabled(0, false); + } + __pFormFooter->Invalidate(true); + if(__pConfirmationDeletePopup != null) + { + __pConfirmationDeletePopup->SetShowState(false); + } + __deleteGroupIndex = 0; + __deleteItemIndex = 0; + } + } + break; + + case IDA_POPUP_DELETEALL_YES: + { + if(__pConfirmationDeletePopup != null) + { + __pConfirmationDeletePopup->SetShowState(false); + } + DeleteSelectedCalllog(); + } + break; + + + case IDA_POPUP_DELETE_NO: + { + if(__pConfirmationDeletePopup != null) + { + __pConfirmationDeletePopup->SetShowState(false); + } + } + break; + + default: + break; + } +} + +void +DialTabLogs::SetListItemSelectStatus(bool status) +{ + int groupIndex = 0; + int itemIndex = 0; + int itemCount = 0; + + __isSelectAll = status; + CallLogDetails* pCalllogInfo = null; + for (; groupIndex < __groupCount; groupIndex++) + { + itemCount = __plogsListView->GetItemCountAt(groupIndex); + for (itemIndex = 0; itemIndex < itemCount; itemIndex++) + { + __plogsListView->SetItemChecked(groupIndex, itemIndex, status); + if(status == true) + { + __pDataProvider->GetItemAtGroupIndex(groupIndex, itemIndex, &pCalllogInfo); + __pCallLogId->Add(new Integer(pCalllogInfo->GetCalllogDbId())); + } + } + } + __pFormFooter->SetItemEnabled(0, status); + __pFormFooter->Invalidate(true); + __plogsListView->Invalidate(true); +} + +void +DialTabLogs::SetCallLogDisplayMode(bool isEdit) +{ + AppLogDebug("Enter %d",isEdit); + if(isEdit == __isEditMode) + { + AppLog("Delete process return"); + return; + } + if( __pFormFooter == null) + { + AppLog("__pFormFooter == null"); + return; + } + + __itemCount = __pLogPresentor->GetCallLogsViewedCount(); + __groupCount = __plogsListView->GetGroupCount(); + __pButtonSelectAll->SetSelected(false); + if (isEdit == false) + { + __isEditMode = false; + __pDataProvider->SetListItemStyle(false); + __plogsListView->SetSweepEnabled(true); + const Form* pForm = dynamic_cast(GetParent()); + if(pForm == null) + { + return; + } + __plogsListView->SetBounds(pForm->GetX(), pForm->GetY(), pForm->GetWidth(), pForm->GetClientAreaBounds().height); + __plogsListView->UpdateList(); + __pFormFooter->RemoveItemAt(1); + + if(__pLogPresentor->GetCallLogsViewedCount() > 0) + { + __pFormFooter->SetItemEnabled(0, true); + } + else + { + __pFormFooter->SetItemEnabled(0, false); + } + __pButtonSelectAll->SetShowState(false); + __pSelectedLabel->SetShowState(false); + __pSelectedLabel->Invalidate(false); + __pFormFooter->Invalidate(true); + } + else + { + __isEditMode = true; + const Form* pForm = dynamic_cast(GetParent()); + if(pForm == null) + { + return; + } + __pDataProvider->SetListItemStyle(isEdit); + __plogsListView->SetSweepEnabled(false); + + //reset size to allow "SELECT ALL" & "TOAST MSG" + if(pForm->GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE || pForm->GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE_REVERSE) + { + Rectangle newRect(pForm->GetX(), H_SELECTALL_CHK_BOX + 20, pForm->GetWidth(), (pForm->GetClientAreaBounds().height - H_SELECTALL_CHK_BOX - H_TOAST_MSG)); + __plogsListView->SetBounds(newRect); + } + else + { + Rectangle newRect(pForm->GetX(), H_SELECTALL_CHK_BOX, pForm->GetWidth(), (pForm->GetClientAreaBounds().height - H_SELECTALL_CHK_BOX - H_TOAST_MSG)); + __plogsListView->SetBounds(newRect); + } + UnCheckAllItems(); + __plogsListView->UpdateList(); + __pButtonSelectAll->SetShowState(true); + __pFormFooter->SetItemEnabled(0, false); + __selectedItemCount = 0; + String selStr = AppUtility::GetResourceString(IDS_SELECT_CALL_LOG); + __pSelectedLabel->SetText(selStr); + __pSelectedLabel->SetShowState(true); + __pSelectedLabel->Invalidate(false); + __pFormFooter->Invalidate(true); + } + Draw(); +} + +void +DialTabLogs::UnCheckAllItems(void) +{ + int itemCount = 0; + __groupCount = __plogsListView->GetGroupCount(); + for(int groupIndex = 0; groupIndex < __groupCount; groupIndex++) + { + itemCount = __plogsListView->GetItemCountAt(groupIndex); + for(int itemIndex = itemCount-1; itemIndex >=0 ; itemIndex--) + { + bool isSelected = __plogsListView->IsItemChecked(groupIndex, itemIndex); + if(isSelected == true) + { + __plogsListView->SetItemChecked(groupIndex,itemIndex,false); + } + } + } + __plogsListView->Invalidate(true); + __selectedItemCount = 0; +} + +void DialTabLogs::OnCalllogChanged(void) +{ + // If select all was selected before and some new calls are added (Auto rejeted call) + //Then we will not update the call log list. + if(__isEditMode == false) + { + if(__pConfirmationDeletePopup != null) + { + delete __pConfirmationDeletePopup; + __pConfirmationDeletePopup = null; + } + UpdateCallLogList(); + } + //It won't update the log list when delete is on progress. + /*else if(__isEditMode == true && __isDeleteInProgress == false) + { + __plogsListView->UpdateList(); + __plogsListView->Invalidate(false); + }*/ + //Update the log list for all MO/MT/MSG if the log list is in edit mode and delete is not on progress + else if(__isEditMode == true && __isDeleteInProgress == false) + { + if(__plogsListView != null) + { + __pLogPresentor->UpdateCallLogList(); + __plogsListView->UpdateList(); + __plogsListView->Invalidate(false); + if(__pLogPresentor->GetCallLogsViewedCount() == 0) + { + SetCallLogDisplayMode(false); + } + } + } + if(IsScecneVisible() == true && __isDeleteInProgress == false) + { + ManageItemSelection(); + } +} + +void +DialTabLogs::UpdateCallLogList() +{ + AppLogDebug("Enter"); + + __pLogPresentor->UpdateCallLogList(); + __plogsListView->UpdateList(); + if (__pFormFooter != null) + { + if(__pLogPresentor->GetAllCallLogCount() > 0) + { + __pFormFooter->SetShowState(true); + __pFormFooter->SetItemEnabled(0,true); + } + if(__pLogPresentor->GetCallLogsViewedCount() > 0) + { + __pFormFooter->SetItemEnabled(0, true); + } + else + { + __pFormFooter->SetItemEnabled(0, false); + } + __pFormFooter->Invalidate(true); + } +} + +void +DialTabLogs::ShowDeletePopup(void) +{ + __isDeleteInProgress = true; + if (__pDeletePopup != null) + { + delete __pDeletePopup; + __pDeletePopup = null; + } + if(__selectedItemCount == 0) + { + AppLogDebug("Wrong state"); + return; + } + __deleteGroupIndex = 0; + __deleteItemIndex = 0; + + __pDeletePopup = new (std::nothrow) Popup(); + __pDeletePopup->Construct(false, Dimension(W_DELETE_POPUP, H_DELETE_POPUP)); + __pDeletePopup->AddWindowEventListener(*this); + + Rectangle clientBounds = __pDeletePopup->GetClientAreaBounds(); + + Label* pLabelTitle = new (std::nothrow) Label(); + pLabelTitle->Construct(Rectangle(0, Y_DELETE_POPUP_TITLE, clientBounds.width, H_DELETE_POPUP_ELEMENT), AppUtility::GetResourceString(IDS_DELETING_CALL_LOGS)); + pLabelTitle->SetTextColor(COLOR_DELETE_POPUP_TEXT); + pLabelTitle->SetTextConfig(FONT_SIZE_DELETE_POPUP_TEXT, LABEL_TEXT_STYLE_BOLD); + pLabelTitle->SetTextHorizontalAlignment(ALIGNMENT_LEFT); + + __pDeletePopup->AddControl(*pLabelTitle); + + Progress* pProgress = new (std::nothrow) Progress(); + pProgress->Construct(Rectangle(0, Y_DELETE_POPUP_TITLE + H_DELETE_POPUP_ELEMENT, clientBounds.width, H_DELETE_POPUP_PROGRESS), 0, __selectedItemCount); + + __pDeletePopup->AddControl(*pProgress); + + Label* pLabelPercentage = new (std::nothrow) Label(); + pLabelPercentage->Construct(Rectangle(0, pProgress->GetY() + pProgress->GetHeight(), clientBounds.width / 2, H_DELETE_POPUP_ELEMENT), Integer::ToString(pProgress->GetPercentComplete()) + L"%"); + pLabelPercentage->SetTextHorizontalAlignment(ALIGNMENT_LEFT); + pLabelPercentage->SetTextColor(COLOR_DELETE_POPUP_TEXT); + pLabelPercentage->SetTextConfig(FONT_SIZE_DELETE_POPUP_TEXT, LABEL_TEXT_STYLE_NORMAL); + + __pDeletePopup->AddControl(*pLabelPercentage); + + String currentOfTotal(Integer::ToString(pProgress->GetValue()) + L" / " + Integer::ToString(__selectedItemCount)); + Label* pLabelTotal = new (std::nothrow) Label(); + pLabelTotal->Construct(Rectangle(clientBounds.width / 2, pLabelPercentage->GetY(), clientBounds.width / 2, H_DELETE_POPUP_ELEMENT), currentOfTotal); + pLabelTotal->SetTextHorizontalAlignment(ALIGNMENT_RIGHT); + pLabelTotal->SetTextColor(COLOR_DELETE_POPUP_TEXT); + pLabelTotal->SetTextConfig(FONT_SIZE_DELETE_POPUP_TEXT, LABEL_TEXT_STYLE_NORMAL); + + __pDeletePopup->AddControl(*pLabelTotal); + + Button* pCancelButton = new (std::nothrow) Button(); + pCancelButton->Construct(Rectangle((clientBounds.width - W_DELETE_POPUP_CANCEL_BUTTON) / 2, Y_DELETE_POPUP_CANCEL_BUTTON, W_DELETE_POPUP_CANCEL_BUTTON, H_DELETE_POPUP_CANCEL_BUTTON)); + pCancelButton->SetText(AppUtility::GetResourceString(IDS_CANCEL_DELETING_CALL_LOGS)); + pCancelButton->SetActionId(IDA_POPUP_DELETE_CANCEL); + pCancelButton->AddActionEventListener(*this); + + __pDeletePopup->AddControl(pCancelButton); + __pDeletePopup->Show(); + +} + +void +DialTabLogs::OnWindowActivated (const Tizen::Ui::Window &source) +{ + __deleteLogsTimer.Start(1); +} + +void +DialTabLogs::OnTimerExpired(Tizen::Base::Runtime::Timer &timer) +{ + Progress* pProgress = static_cast(__pDeletePopup->GetControl(1)); + + pProgress->SetValue(pProgress->GetValue() + 1); + pProgress->Invalidate(false); + + Label* pLabelPercentage = static_cast

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 literal 0 HcmV?d00001 diff --git a/shared/res/screen-density-xhigh/mainmenu.png b/shared/res/screen-density-xhigh/mainmenu.png new file mode 100644 index 0000000000000000000000000000000000000000..6370d07c46c342a201940d2eb349c1f585394859 GIT binary patch literal 57662 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 q +#include +#include "PhnAppUtility.h" +#include "PhnTypes.h" + +using namespace Tizen::App; +using namespace Tizen::Base; +using namespace Tizen::Ui::Controls; +using namespace Tizen::Graphics; +using namespace Tizen::System; + +AppUtility::AppUtility(void) +{ +} + +AppUtility::~AppUtility(void) +{ +} + +String +AppUtility::GetResourceString(const String& stringId) +{ + String resourceString(L""); + AppResource* pAppResource = AppResource::GetInstance(); + if (pAppResource) + { + pAppResource->GetString(stringId, resourceString); + } + + return resourceString; +} + +Bitmap* +AppUtility::GetBitmapFromResourcesN(const String& imagePath, int imgWidth, int imgHeight) +{ + Bitmap* pBitmap = null; + AppResource* pAppResource = AppResource::GetInstance(); + if (pAppResource) + { + pBitmap = pAppResource->GetBitmapN(imagePath); + if (pBitmap && imgWidth > 0 && imgHeight > 0) + { + //scale bitmap to predefined size + pBitmap->SetScalingQuality(BITMAP_SCALING_QUALITY_MID); + pBitmap->Scale(Dimension(imgWidth, imgHeight)); + } + } + return pBitmap; +} + +void +AppUtility::SetBackgroundBitmapToTableItem(TableViewItem* pTableItem, TableViewItemPos position) +{ + Label* pBgItemLbl = static_cast(pTableItem->GetControl(IDC_TABLEITEM_BG_LABEL, true)); + if (pBgItemLbl != null) + { + pTableItem->RemoveControl(pBgItemLbl); + } + //add a new background + pBgItemLbl = new (std::nothrow) Label(); + pBgItemLbl->Construct(Rectangle(Point(0,0),Dimension(pTableItem->GetWidth(), pTableItem->GetHeight())), L""); + pBgItemLbl->SetName(IDC_TABLEITEM_BG_LABEL); + + Bitmap* pNormalBitmap = null; + String normalBitmapPath(L""); + switch (position) + { + case TABLEVIEWITEMPOS_SINGLE_ITEM: + { + normalBitmapPath.Append(IDB_SETTINGS_SINGLE_LIST_ITEM_BG); + } + break; + + case TABLEVIEWITEMPOS_TOP: + { + normalBitmapPath.Append(IDB_SETTINGS_TOP_LIST_ITEM_BG); + } + break; + + case TABLEVIEWITEMPOS_CENTER: + { + normalBitmapPath.Append(IDB_SETTINGS_CENTER_LIST_ITEM_BG); + } + break; + + case TABLEVIEWITEMPOS_BOTTOM: + { + normalBitmapPath.Append(IDB_SETTINGS_BOTTOM_LIST_ITEM_BG); + } + break; + } + + AppResource* pAppResource = AppResource::GetInstance(); + if (pAppResource != null) + { + //normal background bitmap + Bitmap* pBitmap = pAppResource->GetBitmapN(normalBitmapPath); + if (pBitmap->IsNinePatchedBitmap() == true) + { + Canvas normalCanvas; + normalCanvas.Construct( Rectangle( Point(0, 0), Dimension(pBgItemLbl->GetSize()) ) ); + normalCanvas.DrawNinePatchedBitmap(normalCanvas.GetBounds() , *pBitmap); + + pNormalBitmap = new (std::nothrow) Bitmap(); + pNormalBitmap->Construct(normalCanvas, normalCanvas.GetBounds()); + } + delete pBitmap; + } + + if (pNormalBitmap != null) + { + pBgItemLbl->SetBackgroundBitmap(*pNormalBitmap); + delete pNormalBitmap; + pNormalBitmap = null; + } + + //Add background label to table item + pTableItem->AddControl(pBgItemLbl); + pTableItem->SetControlAlwaysAtBottom(*pBgItemLbl, true); +} + +void +AppUtility::SetExpandIconToTableItem(TableViewItem* pTableItem, bool isExpanded) +{ + Bitmap* pNormalIcon = null; + Bitmap* pPressIcon = null; + + if (!isExpanded) + { + pNormalIcon = GetBitmapFromResourcesN(IDB_LIST_EXPAND_CLOSE, W_EXPAND_ICON, H_EXPAND_ICON); + pPressIcon = GetBitmapFromResourcesN(IDB_LIST_EXPAND_CLOSE_PRESSED, W_EXPAND_ICON, H_EXPAND_ICON); + } + else + { + pNormalIcon = GetBitmapFromResourcesN(IDB_LIST_EXPAND_OPENED, W_EXPAND_ICON, H_EXPAND_ICON); + pPressIcon = GetBitmapFromResourcesN(IDB_LIST_EXPAND_OPENED_PRESSED, W_EXPAND_ICON, H_EXPAND_ICON); + } + + int itemWidth = pTableItem->GetWidth(); + Rectangle iconRect((itemWidth - W_EXPAND_ICON - X_LIST_MENU_TEXT_ITEM - 16), + ((H_LIST_DROPDOWN_MENU_ITEM - H_EXPAND_ICON) / 2), W_EXPAND_ICON, H_EXPAND_ICON); + + //normal canvas + Canvas* pBgCanvas = new (std::nothrow) Canvas(); + pBgCanvas->Construct(Rectangle(0,0, pTableItem->GetWidth(), pTableItem->GetHeight())); + pBgCanvas->DrawBitmap(iconRect, *pNormalIcon); + Bitmap* pActualBgBmp = new (std::nothrow) Bitmap(); + pActualBgBmp->Construct(*pBgCanvas,pBgCanvas->GetBounds()); + pTableItem->SetBackgroundBitmap(pActualBgBmp, TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL); + delete pBgCanvas; + delete pActualBgBmp; + + //pressed canvas + pBgCanvas = new (std::nothrow) Canvas(); + pBgCanvas->Construct(Rectangle(0,0, pTableItem->GetWidth(), pTableItem->GetHeight())); + pBgCanvas->SetBackgroundColor(COLOR_PRESS_ITEM_BG); + pBgCanvas->Clear(); + pBgCanvas->DrawBitmap(iconRect, *pPressIcon); + pActualBgBmp = new (std::nothrow) Bitmap(); + pActualBgBmp->Construct(*pBgCanvas,pBgCanvas->GetBounds()); + pTableItem->SetBackgroundBitmap(pActualBgBmp, TABLE_VIEW_ITEM_DRAWING_STATUS_PRESSED); + delete pBgCanvas; + delete pActualBgBmp; + + delete pNormalIcon; + pNormalIcon = null; + delete pPressIcon; + pPressIcon = null; +} + + +int +AppUtility::GetSettingsMainItemSize(void) +{ + int itemSize = NORMAL_MAINTEXTRECT_SIZE; + String fontSizeValue; + //TODO: un-comment this, once it is finalized to support system font size. + if (SettingInfo::GetValue(SETTING_INFO_KEY_FONT_SIZE, fontSizeValue) == E_SUCCESS) + { + if (fontSizeValue.Equals(L"giant", false)) + { + itemSize = GIANT_MAINTEXTRECT_SIZE; + } + else if (fontSizeValue.Equals(L"huge", false)) + { + itemSize = HUGE_MAINTEXTRECT_SIZE; + } + else if (fontSizeValue.Equals(L"large", false)) + { + itemSize = LARGE_MAINTEXTRECT_SIZE; + } + else if (fontSizeValue.Equals(L"small", false)) + { + itemSize = SMALL_MAINTEXTRECT_SIZE; + } + } + return itemSize; +} + + +int +AppUtility::GetSettingsSubItemSize(void) +{ + int itemSize = NORMAL_SUBTEXTRECT_SIZE; + String fontSizeValue; + //TODO: un-comment this, once it is finalized to support system font size. + if (SettingInfo::GetValue(SETTING_INFO_KEY_FONT_SIZE, fontSizeValue) == E_SUCCESS) + { + if (fontSizeValue.Equals(L"giant", false)) + { + itemSize = GIANT_SUBTEXTRECT_SIZE; + } + else if (fontSizeValue.Equals(L"huge", false)) + { + itemSize = HUGE_SUBTEXTRECT_SIZE; + } + else if (fontSizeValue.Equals(L"large", false)) + { + itemSize = LARGE_SUBTEXTRECT_SIZE; + } + else if (fontSizeValue.Equals(L"small", false)) + { + itemSize = SMALL_SUBTEXTRECT_SIZE; + } + } + return itemSize; +} + + + +int +AppUtility::GetSettingsItemRectSize(void) +{ + int itemSize = NORMAL_ITEMRECT_SIZE; + String fontSizeValue; + //TODO: un-comment this, once it is finalized to support system font size. + if (SettingInfo::GetValue(SETTING_INFO_KEY_FONT_SIZE, fontSizeValue) == E_SUCCESS) + { + if (fontSizeValue.Equals(L"giant", false)) + { + itemSize = GIANT_ITEMRECT_SIZE; + } + else if (fontSizeValue.Equals(L"huge", false)) + { + itemSize = HUGE_ITEMRECT_SIZE; + } + else if (fontSizeValue.Equals(L"large", false)) + { + itemSize = LARGE_ITEMRECT_SIZE; + } + else if (fontSizeValue.Equals(L"small", false)) + { + itemSize = SMALL_ITEMRECT_SIZE; + } + } + return itemSize; +} + + +int +AppUtility::GetSettingsItemFontSize(void) +{ + int fontSize = NORMAL_FONT_SIZE_MAIN_TXT; + String fontSizeValue; + + + //TODO: un-comment this, once it is finalized to support system font size. + if (SettingInfo::GetValue(SETTING_INFO_KEY_FONT_SIZE, fontSizeValue) == E_SUCCESS) + { + if (fontSizeValue.Equals(L"giant", false)) + { + fontSize = GIANT_FONT_SIZE_MAIN_TXT; + } + else if (fontSizeValue.Equals(L"huge", false)) + { + fontSize = HUGE_FONT_SIZE_MAIN_TXT; + } + else if (fontSizeValue.Equals(L"large", false)) + { + fontSize = LARGE_FONT_SIZE_MAIN_TXT; + } + else if (fontSizeValue.Equals(L"small", false)) + { + fontSize = SMALL_FONT_SIZE_MAIN_TXT; + } + } + return fontSize; +} + +void +AppUtility::GetGlobalFontAndItemHeight(float *fontSize, float *itemHeight) +{ + String fontSizeString; + SettingInfo::GetValue(L"http://tizen.org/setting/font.size", fontSizeString); + AppLogDebug("fontSize: %ls", fontSizeString.GetPointer()); + if (fontSizeString == L"small") + { + *fontSize = 36.f; + *itemHeight = 140.f; + } + else if (fontSizeString == L"medium") + { + *fontSize = 44.f; + *itemHeight = 140.f; + } + else if (fontSizeString == L"large") + { + *fontSize = 64.f; + *itemHeight = 157.f; + } + else if (fontSizeString == L"huge") + { + *fontSize = 81.f; + *itemHeight = 176.f; + } + else if (fontSizeString == L"giant") + { + *fontSize = 106.f; + *itemHeight = 205.f; + } +} + +char* +AppUtility::ConvertStringToPointerCharArrayN(const String& strToConvert) +{ + AppLogDebug("ENTER"); + int length = strToConvert.GetLength() * 4 + 1; // For null terminated. + char* pChar = new (std::nothrow) char[length]; + if (pChar) + { + const wchar_t* pWchar = strToConvert.GetPointer(); + wcstombs(pChar, pWchar, (size_t) length); + } + AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult())); + return pChar; +} diff --git a/src/PhnCallInfo.cpp b/src/PhnCallInfo.cpp new file mode 100644 index 0000000..22bd1e9 --- /dev/null +++ b/src/PhnCallInfo.cpp @@ -0,0 +1,353 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnCallInfo.cpp + * @brief Call Information class + */ +#include "PhnAppUtility.h" +#include "PhnCallInfo.h" +#include + +using namespace Tizen::Base; +using namespace Tizen::Base::Collection; +using namespace Tizen::Graphics; +using namespace Tizen::Media; +using namespace Tizen::Social; + +CallInfo::CallInfo(void) +{ + //by Default, neither a conference call nor emergency call + __isConfCall = false; + __isEmergency = false; + __callType = VOICE_CALL; + __isOnHold = false; + __callConnectTime = 0; + __callNotificationTime = 0; + __pCallHandle = null; + __pEndCallCause = null; + __pParticipantCallHandles = null; + __pContact = null; +} + +CallInfo::~CallInfo(void) +{ + if (__pCallHandle) + { + delete __pCallHandle; + } + + if (__pEndCallCause) + { + delete __pEndCallCause; + } + + if (__pParticipantCallHandles) + { + delete __pParticipantCallHandles; + __pParticipantCallHandles = null; + } + if (__pContact != null) + { + delete __pContact; + } +} + +Long* +CallInfo::GetCallHandle(void) +{ + return __pCallHandle; +} + +void +CallInfo::SetCallHandle(unsigned int handle) +{ + if (__pCallHandle != null) + { + delete __pCallHandle; + } + __pCallHandle = new (std::nothrow) Long(handle); +} + +bool +CallInfo::IsConferenceCall(void) +{ + return __isConfCall; +} + +void +CallInfo::SetConference(bool isConferenceCall) +{ + __isConfCall = isConferenceCall; +} + +bool +CallInfo::IsEmergency(void) +{ + return __isEmergency; +} + +void +CallInfo::SetEmergency(bool isEmergency) +{ + __isEmergency = isEmergency; +} + +String& +CallInfo::GetContactNumber(void) +{ + return __contactNumber; +} + +void +CallInfo::SetContactNumber(String& contactNumber) +{ + if (__isConfCall == false) + { + __contactNumber = contactNumber; + } +} + +void +CallInfo::SetContactInfo(const Contact& contact) +{ + if (__pContact != null) + { + delete __pContact; + __pContact = null; + } + __pContact = new (std::nothrow) Contact(contact); +} + +bool +CallInfo::IsOnHold(void) +{ + return __isOnHold; +} + +void +CallInfo::SetOnHold(bool onHold) +{ + __isOnHold = onHold; +} + +long long +CallInfo::GetCallConnectTime(void) +{ + return __callConnectTime; +} + +void +CallInfo::SetCallConnectTime(long long connectTime) +{ + __callConnectTime = connectTime; +} + +long long +CallInfo::GetCallNotificationTime(void) +{ + return __callNotificationTime; +} + +void +CallInfo::SetCallNotificationTime(long long callNotificationTime) +{ + __callNotificationTime = callNotificationTime; +} + +String& +CallInfo::GetEndCallCause(void) +{ + return *(__pEndCallCause); +} + +void +CallInfo::SetEndCallCause(String& pEndCause) +{ + if (__pEndCallCause != null) + { + delete __pEndCallCause; + } + __pEndCallCause = new (std::nothrow) String(pEndCause); +} + +IListT* +CallInfo::GetCallerList(void) +{ + return __pParticipantCallHandles; +} + +int +CallInfo::GetCallerListCount(void) +{ + if (__pParticipantCallHandles != null) + { + return __pParticipantCallHandles->GetCount(); + } + return -1; +} + +result +CallInfo::AddCallToCallerList(CallInfo& callInfo) +{ + if (__pParticipantCallHandles == NULL) + { + __pParticipantCallHandles = new (std::nothrow) ArrayListT(); + } + result r = E_FAILURE; + CallInfo* pNewCallInfo = new (std::nothrow) CallInfo(); + *pNewCallInfo = callInfo; + r = __pParticipantCallHandles->Add(*pNewCallInfo); + pNewCallInfo = NULL; + return r; +} + +result +CallInfo::RemoveCallFromCallerList(int index) +{ + result r = E_FAILURE; + if (__pParticipantCallHandles == NULL) + { + return r; + } + r = __pParticipantCallHandles->RemoveAt(index); + return r; +} + +void +CallInfo::SetCalllogType(CallLogType callLogType) +{ + __calllogType = callLogType; +} + +CallLogType +CallInfo::GetCalllogType(void) +{ + return __calllogType; +} + +bool +CallInfo::operator ==(const CallInfo& rhs) const +{ + return (this->__pCallHandle->Equals(*(rhs.__pCallHandle))); +} + +bool +CallInfo::operator !=(const CallInfo& rhs) const +{ + return (!(this->__pCallHandle->Equals(*(rhs.__pCallHandle)))); +} + +CallInfo& +CallInfo::operator =(const CallInfo& rhs) +{ + if (this != null) + { + this->__isConfCall = rhs.__isConfCall; + this->__callType = rhs.__callType; + this->__isEmergency = rhs.__isEmergency; + this->__contactNumber = rhs.__contactNumber; + this->__isOnHold = rhs.__isOnHold; + //call connected time + this->__callConnectTime = rhs.__callConnectTime; + //call notification time + this->__callNotificationTime = rhs.__callNotificationTime; + this->__calllogType = rhs.__calllogType; + //copy call handle, if exist + if (this->__pCallHandle != null) + { + delete this->__pCallHandle; + this->__pCallHandle = null; + } + if (rhs.__pCallHandle != null) + { + this->__pCallHandle = new (std::nothrow) Long(*(rhs.__pCallHandle)); + } + + //copy end call cause, if any exist + if (this->__pEndCallCause != null) + { + delete this->__pEndCallCause; + this->__pEndCallCause = null; + } + if (rhs.__pEndCallCause) + { + this->__pEndCallCause = new (std::nothrow) String(*(rhs.__pEndCallCause)); + } + + //Add participant call list + if (this->__pParticipantCallHandles != null) + { + delete this->__pParticipantCallHandles; + this->__pParticipantCallHandles = null; + } + if (rhs.__pParticipantCallHandles != null) + { + this->__pParticipantCallHandles = new (std::nothrow) ArrayListT(); + this->__pParticipantCallHandles->Construct(*(rhs.__pParticipantCallHandles)); + } + if (this->__pContact != null) + { + delete this->__pContact; + this->__pContact = null; + } + if (rhs.__pContact != null) + { + this->__pContact = new (std::nothrow) Contact(*(rhs.__pContact)); + } + } + + return *this; +} + +String* +CallInfo::FetchCallerNameN(void) +{ + String displayName(L""); + + //get caller name from already fetched contact info + if (__pContact != null) + { + //fetch name to be displayed + __pContact->GetValue(CONTACT_PROPERTY_ID_DISPLAY_NAME, displayName); + if (displayName.IsEmpty()) + { + String firstName(L""); + String lastName(L""); + __pContact->GetValue(CONTACT_PROPERTY_ID_FIRST_NAME, firstName); + __pContact->GetValue(CONTACT_PROPERTY_ID_LAST_NAME, lastName); + displayName.Append(firstName + " " + lastName); + } + } + + return new (std::nothrow) String(displayName); +} + +Bitmap* +CallInfo::FetchCallerPhotoN(void) +{ + if (__pContact != null) + { + return __pContact->GetThumbnailN(); + } + return null; +} + +const Contact* +CallInfo::GetContactInfo(void) +{ + return __pContact; +} diff --git a/src/PhnCallLogPresentationModel.cpp b/src/PhnCallLogPresentationModel.cpp new file mode 100644 index 0000000..5ed98f5 --- /dev/null +++ b/src/PhnCallLogPresentationModel.cpp @@ -0,0 +1,333 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnCallLogPresentationModel.cpp + * @brief The Call Logs Presentation Model + */ + +#include +#include +#include "PhnCallLogPresentationModel.h" + +using namespace Tizen::App; +using namespace Tizen::Base; +using namespace Tizen::Telephony; +using namespace Tizen::Base::Collection; + +CalLogPresentationModel* CalLogPresentationModel::__pInstance = null; + +CalLogPresentationModel::CalLogPresentationModel() + : __pCallMgr(null), __isCallAppControlRunning(false) +{ +} + +CalLogPresentationModel::~CalLogPresentationModel() +{ + AppControl::StopAppControlResponseListener(this); + __pCallMgr = null; +} + +void +CalLogPresentationModel::CreateInstance(void) +{ + __pInstance = new (std::nothrow) CalLogPresentationModel(); + result r = __pInstance->Construct(); + if(IsFailed(r)) + { + delete __pInstance; + __pInstance = null; + return; + } + + std::atexit(DestroyInstance); +} + +result +CalLogPresentationModel::Construct(void) +{ + __pCallMgr = CallLogManager::GetInstance(); + return E_SUCCESS; +} + +CalLogPresentationModel* +CalLogPresentationModel::GetInstance(void) +{ + if (__pInstance == null) + { + CreateInstance(); + } + return __pInstance; +} + +void +CalLogPresentationModel::DestroyInstance(void) +{ + if (__pInstance != null) + { + delete __pInstance; + __pInstance = null; + } +} + +void +CalLogPresentationModel::AddCalllogChangeListener(ICalllogChangeListener& listner ) +{ + if(__pCallMgr == null) + { + __pCallMgr = CallLogManager::GetInstance(); + } + __pCallMgr->AddCalllogChangeListener(listner); +} + +void +CalLogPresentationModel::RemoveCalllogChangeListner(ICalllogChangeListener& listner) +{ + if(__pCallMgr == null) + { + __pCallMgr = CallLogManager::GetInstance(); + } + __pCallMgr->RemoveCalllogChangeListner(listner); +} + +int +CalLogPresentationModel::GetAllCallLogCount(void) +{ + if(__pCallMgr == null) + { + __pCallMgr = CallLogManager::GetInstance(); + } + return __pCallMgr->GetAllCallLogCount(); +} + +int +CalLogPresentationModel::GetCallLogsViewedCount() +{ + if(__pCallMgr == null) + { + __pCallMgr = CallLogManager::GetInstance(); + } + return __pCallMgr->GetCallLogsViewedCount(); +} + +void +CalLogPresentationModel::DeleteCalllogByDbId(int dbId) +{ + if(__pCallMgr == null) + { + __pCallMgr = CallLogManager::GetInstance(); + } + __pCallMgr->DeleteCalllogByDbId(dbId); +} + +void +CalLogPresentationModel::DeleteItemAtGroupIndex(int groupIndex, int itemIndex) +{ + if(__pCallMgr == null) + { + __pCallMgr = CallLogManager::GetInstance(); + } + __pCallMgr->DeleteItemAtGroupIndex(groupIndex, itemIndex); +} + +void +CalLogPresentationModel::ResetAndNotifyCalllogData(void) +{ + if(__pCallMgr == null) + { + __pCallMgr = CallLogManager::GetInstance(); + } + __pCallMgr->ResetAndNotifyCalllogData(); +} + +void +CalLogPresentationModel::UpdateCallLogList() +{ + if(__pCallMgr == null) + { + __pCallMgr = CallLogManager::GetInstance(); + } + __pCallMgr->UpdateCallLogList(); +} + +int +CalLogPresentationModel::GetUnknownLogCount(int dbId) +{ + if(__pCallMgr == null) + { + __pCallMgr = CallLogManager::GetInstance(); + } + return __pCallMgr->GetUnknownLogCount(dbId); +} + +Tizen::Base::Collection::ArrayListT* +CalLogPresentationModel::GetCallogListByNumberFromDatabaseN(char* pNumber) +{ + if(__pCallMgr == null) + { + __pCallMgr = CallLogManager::GetInstance(); + } + return __pCallMgr->GetCallogListByNumberFromDatabaseN(pNumber); +} + +ErrorCodes +CalLogPresentationModel::DialCall(const String& contactNumber) +{ + AppLogDebug("ENTER"); + result r = E_FAILURE; + +/* if (__isCallAppControlRunning == true) + { + AppLogDebug("__isCallAppControlRunning == true"); + //AppControl is already running, ignore this event. + return ERROR_NONE; + }*/ + r = LaunchCallAppControl(contactNumber); + if (r == E_SUCCESS) + { + __isCallAppControlRunning = true; + return ERROR_NONE; + } + else + { + return ERROR_DIAL_FAILED; + } +} + +result +CalLogPresentationModel::LaunchCallAppControl(const String& contactNumber) +{ + result r = E_FAILURE; + + HashMap extraData; + extraData.Construct(); + extraData.Add(new (std::nothrow) String(PARAM_PHONE_NUMBER), new (std::nothrow) String(contactNumber)); + extraData.Add(new (std::nothrow) String(PARAM_CALL_TYPE), new (std::nothrow) String(PARAM_CALL_VALUE_VOICE)); + + AppControl* pAppControl = AppManager::FindAppControlN(PROVIDER_ID_CALL, OPERATION_ID_CALL); + if (pAppControl != null) + { + r = pAppControl->Start(null, null, &extraData, null); + delete pAppControl; + } + + extraData.RemoveAll(true); + return r; +} + +void +CalLogPresentationModel::OnAppControlCompleteResponseReceived(const AppId& appId, const String& operationId, AppCtrlResult appControlResult, const IMap* pExtraData) +{ + //reset 'isAppControlLaunched' + __isCallAppControlRunning = false; +} + +int +CalLogPresentationModel::GetCalllogCountByNumber(void) +{ + if(__pCallMgr == null) + { + __pCallMgr = CallLogManager::GetInstance(); + } + return __pCallMgr->GetCalllogCountByNumber(); +} + +Tizen::Base::Collection::IListT* +CalLogPresentationModel::GetCalllogListByNumValues(void) +{ + if(__pCallMgr == null) + { + __pCallMgr = CallLogManager::GetInstance(); + } + return __pCallMgr->GetCalllogListByNumValues(); +} + +void +CalLogPresentationModel::GetCalllogContactName(String phoneNumber,String& contactName) +{ + if(__pCallMgr == null) + { + __pCallMgr = CallLogManager::GetInstance(); + } + __pCallMgr->GetCalllogContactName(phoneNumber,contactName); +} + +result +CalLogPresentationModel::LaunchAddContactsAppControl(String& contactNumber) +{ + result r = E_FAILURE; + HashMap extraData; + extraData.Construct(); + bool isEmail(contactNumber.Contains(L"@")); + + if(isEmail == true) + { + extraData.Add(new (std::nothrow) String(INPUT_TYPE_MAIL), new (std::nothrow) String(contactNumber)); + } + else + { + extraData.Add(new (std::nothrow) String(INPUT_TYPE_PHONE), new (std::nothrow) String(contactNumber)); + } + extraData.Add(new (std::nothrow) String(CONTACT_KEY_ITEM_TYPE), new (std::nothrow) String(ITEM_TYPE_CONTACT)); + AppControl* pAc = AppManager::FindAppControlN(PROVIDER_ID_CONTACTS, OPERATION_ID_ADD); + if (pAc != null) + { + r = pAc->Start(null, null, &extraData, this); + delete pAc; + } + + extraData.RemoveAll(true); + return r; +} + +void +CalLogPresentationModel::SetMissedCallSeenStatus(CallLogDetails* pDetails) +{ + if(__pCallMgr == null) + { + __pCallMgr = CallLogManager::GetInstance(); + } + __pCallMgr->UpDateMissedCallSeenStatus(pDetails); +} + +ArrayList* +CalLogPresentationModel::GetCallLogGroups(void) +{ + if(__pCallMgr == null) + { + __pCallMgr = CallLogManager::GetInstance(); + } + return __pCallMgr->GetCallLogGroups(); +} + +void +CalLogPresentationModel::setCallLogViewbyID(CallLogType id) +{ + CallLogManager::setCallLogViewbyID(id); +} + +int +CalLogPresentationModel::getCallLogViewbyID() +{ + return CallLogManager::getCallLogViewbyID(); +} + +bool +CalLogPresentationModel::IsDataUpdated(void) +{ + return __pCallMgr->GetDirtyFlag(); +} + diff --git a/src/PhnCallLogViewByPopup.cpp b/src/PhnCallLogViewByPopup.cpp new file mode 100644 index 0000000..6c73d54 --- /dev/null +++ b/src/PhnCallLogViewByPopup.cpp @@ -0,0 +1,473 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnCallLogViewByPopup.cpp + * @brief The Logs Tab + */ + +#include +#include +#include +#include +#include +#include "PhnAppUtility.h" +#include "PhnCallLogViewByPopup.h" +#include "PhnCallLogPresentationModel.h" +#include "PhnTabLogs.h" +#include "PhnTypes.h" + +using namespace Tizen::Base; +using namespace Tizen::Base::Collection; +using namespace Tizen::Base::Utility; +using namespace Tizen::App; +using namespace Tizen::Graphics; +using namespace Tizen::Social; +using namespace Tizen::Ui; +using namespace Tizen::Ui::Controls; +using namespace Tizen::Ui::Scenes; + +static const wchar_t* IDC_VIEWBY_LISTVIEW = L"IDC_VIEWBY_LISTVIEW"; +static const wchar_t* IDC_VIEWBY_CANCEL = L"IDC_BUTTON_CANCEL"; +static const wchar_t* IDC_BLOCK_CALL = L"IDC_BLOCK_CALL"; +static const wchar_t* IDC_BLOCK_MESSAGE = L"IDC_BLOCK_MESSAGE"; +static const wchar_t* IDC_BLOCK_OK = L"IDC_BLOCK_OK"; +static const wchar_t* IDC_BLOCK_CANCEL = L"IDC_BLOCK_CANCEL"; +static const wchar_t* IDC_BLOCK_INFO = L"IDC_BLOCK_INFO"; +static const wchar_t* IDL_CALL_LOG_VIEWBY_POPUP = L"IDL_CALL_LOG_VIEWBY_POPUP"; +static const wchar_t* IDL_CALL_BLOCK_POPUP = L"IDL_CALL_BLOCK_POPUP"; + +const int W_POPUP = 600; +const int H_POPUP = 520; +const int H_POPUP_TITLE = 72; +const int POPUP_TITLE_PADDING = 20; +const int W_CANCEL_BUTTON = 350; +const int H_CANCEL_BUTTON = 72; +const int CANCEL_BUTTON_PADDING = 30; +const int H_LIST = 300; +const int H_LIST_ITEM = 112; +const int H_VIEW_BY_LIST_ITEM = 127; +const int W_LIST_ITEM = 112; +const int HORIZONTAL_PADDING = 16; +const int VERTICAL_PADDING = 85; + +int CallLogViewByPopup::__selectedViewByIndex = IDA_ALL_LOGS; + +CallLogViewByPopup::CallLogViewByPopup(ICallLogViewByPopupListener& listener) + : __popupListener(listener) +{ + __pButtonAllLogs = null; + __pButtonMissedCalls = null; + __pButtonDialedCalls = null; + __pButtonReceivedCalls = null; + __pButtonRejectedCalls = null; + __pButtonBlockCall = null; + __pButtonBlockMessage = null; + __pButtonCancel = null; + __pButtonBlockOk = null; + __pButtonBlockCancel = null; + __pBlockInfo = null; + __isBlockCallSelected = false; + __isBlockMessageSelected = false; + __pListView = null; + __pOptionsList = null; +} + +CallLogViewByPopup::~CallLogViewByPopup() +{ + if(__pOptionsList != null) + { + delete __pOptionsList; + __pOptionsList = null; + } +} + +result +CallLogViewByPopup::ConstructViewbyPopup() +{ + result r = E_SUCCESS; + r = Construct(IDL_CALL_LOG_VIEWBY_POPUP); + if(r == E_FAILURE) + { + AppLogException("CallLogViewbyPopup construction failed"); + return r; + } + SetPropagatedKeyEventListener(this); + AppUtility::GetGlobalFontAndItemHeight(&__fontSize, &__itemHeight); + + AddOptionsToList(); + + __pListView = static_cast(GetControl(IDC_VIEWBY_LISTVIEW)); + __pListView->AddListViewItemEventListener(*this); + __pListView->SetItemProvider(*this); + + Button* pCancelButton = static_cast(GetControl(IDC_VIEWBY_CANCEL));; + pCancelButton->SetActionId(IDA_CANCEL); + pCancelButton->AddActionEventListener(*this); + + TryReturn(r == E_SUCCESS, r, "CallOptionPopup::AddControl() failed"); + + __pListView->UpdateList(); + __pListView->SetItemChecked(0, true); + __pListView->Invalidate(true); + return r; +} + +void +CallLogViewByPopup::AddOptionsToList() +{ + __pOptionsList = new (std::nothrow) ArrayList(SingleObjectDeleter); + __pOptionsList->Construct(); + String cmdString; + + //show options. Selected option should be on top of the list view + switch(__selectedViewByIndex) + { + case IDA_ALL_LOGS: + { + cmdString = AppUtility::GetResourceString(IDS_VIEWBY_ALL_LOGS_CHKBTN_STRING); + __pOptionsList->Add(new String(cmdString)); + cmdString = AppUtility::GetResourceString(IDS_VIEWBY_MISSED_CALLS_CHKBTN_STRING); + __pOptionsList->Add(new String(cmdString)); + cmdString = AppUtility::GetResourceString(IDS_VIEWBY_DIALED_CALLS_CHKBTN_STRING); + __pOptionsList->Add(new String(cmdString)); + cmdString = AppUtility::GetResourceString(IDS_VIEWBY_RECEIVED_CALLS_CHKBTN_STRING); + __pOptionsList->Add(new String(cmdString)); + cmdString = AppUtility::GetResourceString(IDS_VIEWBY_REJECTED_CALLS_CHKBTN_STRING); + __pOptionsList->Add(new String(cmdString)); + } + break; + + case IDA_MISSED_CALLS: + { + cmdString = AppUtility::GetResourceString(IDS_VIEWBY_MISSED_CALLS_CHKBTN_STRING); + __pOptionsList->Add(new String(cmdString)); + cmdString = AppUtility::GetResourceString(IDS_VIEWBY_ALL_LOGS_CHKBTN_STRING); + __pOptionsList->Add(new String(cmdString)); + cmdString = AppUtility::GetResourceString(IDS_VIEWBY_DIALED_CALLS_CHKBTN_STRING); + __pOptionsList->Add(new String(cmdString)); + cmdString = AppUtility::GetResourceString(IDS_VIEWBY_RECEIVED_CALLS_CHKBTN_STRING); + __pOptionsList->Add(new String(cmdString)); + cmdString = AppUtility::GetResourceString(IDS_VIEWBY_REJECTED_CALLS_CHKBTN_STRING); + __pOptionsList->Add(new String(cmdString)); + } + break; + + case IDA_DIALED_CALLS: + { + cmdString = AppUtility::GetResourceString(IDS_VIEWBY_DIALED_CALLS_CHKBTN_STRING); + __pOptionsList->Add(new String(cmdString)); + cmdString = AppUtility::GetResourceString(IDS_VIEWBY_ALL_LOGS_CHKBTN_STRING); + __pOptionsList->Add(new String(cmdString)); + cmdString = AppUtility::GetResourceString(IDS_VIEWBY_MISSED_CALLS_CHKBTN_STRING); + __pOptionsList->Add(new String(cmdString)); + cmdString = AppUtility::GetResourceString(IDS_VIEWBY_RECEIVED_CALLS_CHKBTN_STRING); + __pOptionsList->Add(new String(cmdString)); + cmdString = AppUtility::GetResourceString(IDS_VIEWBY_REJECTED_CALLS_CHKBTN_STRING); + __pOptionsList->Add(new String(cmdString)); + } + break; + + case IDA_RECEIVED_CALLS: + { + cmdString = AppUtility::GetResourceString(IDS_VIEWBY_RECEIVED_CALLS_CHKBTN_STRING); + __pOptionsList->Add(new String(cmdString)); + cmdString = AppUtility::GetResourceString(IDS_VIEWBY_ALL_LOGS_CHKBTN_STRING); + __pOptionsList->Add(new String(cmdString)); + cmdString = AppUtility::GetResourceString(IDS_VIEWBY_MISSED_CALLS_CHKBTN_STRING); + __pOptionsList->Add(new String(cmdString)); + cmdString = AppUtility::GetResourceString(IDS_VIEWBY_DIALED_CALLS_CHKBTN_STRING); + __pOptionsList->Add(new String(cmdString)); + cmdString = AppUtility::GetResourceString(IDS_VIEWBY_REJECTED_CALLS_CHKBTN_STRING); + __pOptionsList->Add(new String(cmdString)); + } + break; + + case IDA_REJECTED_CALLS: + { + cmdString = AppUtility::GetResourceString(IDS_VIEWBY_REJECTED_CALLS_CHKBTN_STRING); + __pOptionsList->Add(new String(cmdString)); + cmdString = AppUtility::GetResourceString(IDS_VIEWBY_ALL_LOGS_CHKBTN_STRING); + __pOptionsList->Add(new String(cmdString)); + cmdString = AppUtility::GetResourceString(IDS_VIEWBY_MISSED_CALLS_CHKBTN_STRING); + __pOptionsList->Add(new String(cmdString)); + cmdString = AppUtility::GetResourceString(IDS_VIEWBY_DIALED_CALLS_CHKBTN_STRING); + __pOptionsList->Add(new String(cmdString)); + cmdString = AppUtility::GetResourceString(IDS_VIEWBY_RECEIVED_CALLS_CHKBTN_STRING); + __pOptionsList->Add(new String(cmdString)); + } + break; + + + } + +} + +int +CallLogViewByPopup::GetItemCount(void) +{ + if (__pOptionsList != null) + { + return __pOptionsList->GetCount(); + } + return 0; +} + +ListItemBase* +CallLogViewByPopup::CreateItem(int index, int itemWidth) +{ + String* strText = static_cast(__pOptionsList->GetAt(index)); + ListAnnexStyle style = LIST_ANNEX_STYLE_RADIO; + CustomItem* pItem = new CustomItem(); + pItem->Construct(Dimension(itemWidth, H_VIEW_BY_LIST_ITEM), style); + pItem->AddElement(Rectangle(HORIZONTAL_PADDING, 0, W_POPUP - HORIZONTAL_PADDING - 105, H_VIEW_BY_LIST_ITEM), index, *strText,__fontSize, Color::GetColor(COLOR_ID_BLACK), Color::GetColor(COLOR_ID_BLACK), Color::GetColor(COLOR_ID_BLACK), true); + + return pItem; +} + +void +CallLogViewByPopup::OnListViewItemStateChanged(ListView& listView, int index, int elementId, ListItemStatus status) +{ + String* strText = static_cast(__pOptionsList->GetAt(index)); + if(strText->CompareTo(AppUtility::GetResourceString(IDS_VIEWBY_ALL_LOGS_CHKBTN_STRING)) == 0) + { + Popup::SetShowState(false); + CalLogPresentationModel::setCallLogViewbyID(CALL_LOG_TYPE_ALL); + __selectedViewByIndex = IDA_ALL_LOGS; + __popupListener.OnItemSelected(); + } + else if(strText->CompareTo(AppUtility::GetResourceString(IDS_VIEWBY_MISSED_CALLS_CHKBTN_STRING)) == 0) + { + Popup::SetShowState(false); + CalLogPresentationModel::setCallLogViewbyID(CALL_LOG_TYPE_VOICE_MISSED); + __selectedViewByIndex = IDA_MISSED_CALLS; + __popupListener.OnItemSelected(); + } + else if(strText->CompareTo(AppUtility::GetResourceString(IDS_VIEWBY_DIALED_CALLS_CHKBTN_STRING)) == 0) + { + Popup::SetShowState(false); + CalLogPresentationModel::setCallLogViewbyID(CALL_LOG_TYPE_VOICE_OUTGOING); + __selectedViewByIndex = IDA_DIALED_CALLS; + __popupListener.OnItemSelected(); + } + else if(strText->CompareTo(AppUtility::GetResourceString(IDS_VIEWBY_RECEIVED_CALLS_CHKBTN_STRING)) == 0) + { + Popup::SetShowState(false); + CalLogPresentationModel::setCallLogViewbyID(CALL_LOG_TYPE_VOICE_INCOMING); + __selectedViewByIndex = IDA_RECEIVED_CALLS; + __popupListener.OnItemSelected(); + } + else if(strText->CompareTo(AppUtility::GetResourceString(IDS_VIEWBY_REJECTED_CALLS_CHKBTN_STRING)) == 0) + { + Popup::SetShowState(false); + CalLogPresentationModel::setCallLogViewbyID(CALL_LOG_TYPE_VOICE_REJECTED); + __selectedViewByIndex = IDA_REJECTED_CALLS; + __popupListener.OnItemSelected(); + } + else + { + Popup::SetShowState(false); + } + + return; +} + +bool +CallLogViewByPopup::DeleteItem(int index, ListItemBase* pItem, int itemWidth) +{ + delete pItem; + pItem = null; + return true; +} + +void +CallLogViewByPopup::UpdateViewByPopupList() +{ + AppUtility::GetGlobalFontAndItemHeight(&__fontSize, &__itemHeight); + __pListView->UpdateList(); + __pListView->Invalidate(true); +} + +result +CallLogViewByPopup::ConstructBlockPopup(Tizen::Base::String& phoneNumber, bool isCallRejected, bool isMsgBeRejected) +{ + result r = E_SUCCESS; + r = Construct(IDL_CALL_BLOCK_POPUP); + if(r == E_FAILURE) + { + AppLogException("CallBlockPopup construction failed"); + return r; + } + SetPropagatedKeyEventListener(this); + __pButtonBlockCall = static_cast(GetControl(IDC_BLOCK_CALL)); + __pButtonBlockMessage = static_cast(GetControl(IDC_BLOCK_MESSAGE)); + __pBlockInfo = static_cast(GetControl(IDC_BLOCK_INFO)); + __pButtonBlockOk = static_cast(GetControl(IDC_BLOCK_OK)); + __pButtonBlockCancel = static_cast(GetControl(IDC_BLOCK_CANCEL)); + + String cmdString; + cmdString = AppUtility::GetResourceString(IDS_BLOCK_POPUP_TITLE_STRING); + cmdString.Append(" "); + cmdString.Append(phoneNumber); + SetTitleText(cmdString); + + if(__pBlockInfo != null) + { + __pBlockInfo->SetShowState(false); + } + if(__pButtonBlockCall != null) + { + cmdString = AppUtility::GetResourceString(IDS_BLOCK_CALL_CHKBTN_STRING); + __pButtonBlockCall->SetText(cmdString); + __pButtonBlockCall->SetActionId(IDA_BLOCK_CALL, IDA_BLOCK_CALL); + __pButtonBlockCall->AddActionEventListener(*this); + } + if(__pButtonBlockMessage != null) + { + cmdString = AppUtility::GetResourceString(IDS_BLOCK_MESSAGE_CHKBTN_STRING); + __pButtonBlockMessage->SetText(cmdString); + __pButtonBlockMessage->SetActionId(IDA_BLOCK_MESSAGE, IDA_BLOCK_MESSAGE); + __pButtonBlockMessage->AddActionEventListener(*this); + } + if(__pButtonBlockOk != null) + { + cmdString = AppUtility::GetResourceString(IDS_BLOCK_OK_BTN_STRING); + __pButtonBlockOk->SetText(cmdString); + __pButtonBlockOk->SetActionId(IDA_BLOCK_OK); + __pButtonBlockOk->AddActionEventListener(*this); + __pButtonBlockOk->SetEnabled(false); + } + if(__pButtonBlockCancel != null) + { + cmdString = AppUtility::GetResourceString(IDS_BLOCK_CANCEL_BTN_STRING); + __pButtonBlockCancel->SetText(cmdString); + __pButtonBlockCancel->SetActionId(IDA_BLOCK_CANCEL); + __pButtonBlockCancel->AddActionEventListener(*this); + } + if(__pButtonBlockCall == null || __pButtonBlockOk == null || __pButtonBlockCancel == null) + { + return r; + } + if((isCallRejected == true || isMsgBeRejected ==true) && __pBlockInfo != null) + { + if(isCallRejected == true && isMsgBeRejected ==true) + { + cmdString = AppUtility::GetResourceString(IDS_BLOCK_CALL_MSG_INFO_STRING); + } + else if(isCallRejected == true) + { + cmdString = AppUtility::GetResourceString(IDS_BLOCK_CALL_INFO_STRING); + } + else + { + cmdString = AppUtility::GetResourceString(IDS_BLOCK_MSG_INFO_STRING); + } + + __pBlockInfo->SetText(cmdString); + __pBlockInfo->SetTextHorizontalAlignment(ALIGNMENT_CENTER); + __pBlockInfo->SetShowState(isCallRejected || isMsgBeRejected); + + __pButtonBlockCall->SetSelected(isCallRejected); + __pButtonBlockCall->SetEnabled(!isCallRejected); + __pButtonBlockCall->SetPosition(__pButtonBlockCall->GetX(), __pButtonBlockCall->GetY() + H_LIST_ITEM); + __pButtonBlockCall->SetBounds(__pButtonBlockCall->GetX(), __pButtonBlockCall->GetY(), __pButtonBlockCall->GetWidth(), __pButtonBlockCall->GetHeight()); + __pButtonBlockMessage->SetSelected(isMsgBeRejected); + __pButtonBlockMessage->SetEnabled(!isMsgBeRejected); + __pButtonBlockMessage->SetPosition(__pButtonBlockMessage->GetX(), __pButtonBlockMessage->GetY() + H_LIST_ITEM); + __pButtonBlockMessage->SetBounds(__pButtonBlockMessage->GetX(), __pButtonBlockMessage->GetY(), __pButtonBlockMessage->GetWidth(), __pButtonBlockMessage->GetHeight()); + __pButtonBlockOk->SetPosition(__pButtonBlockOk->GetX(), __pButtonBlockOk->GetY() + H_LIST_ITEM); + __pButtonBlockCancel->SetPosition(__pButtonBlockCancel->GetX(), __pButtonBlockCancel->GetY() + H_LIST_ITEM); + SetBounds(GetX(), GetY(), GetWidth(), GetHeight() + H_LIST_ITEM); + } + else + { + __pButtonBlockOk->SetBounds(__pButtonBlockOk->GetX(), __pButtonBlockOk->GetY(), __pButtonBlockOk->GetWidth(), __pButtonBlockOk->GetHeight()); + __pButtonBlockCancel->SetBounds(__pButtonBlockCancel->GetX(), __pButtonBlockCancel->GetY(), __pButtonBlockCancel->GetWidth(), __pButtonBlockCancel->GetHeight()); + } + + return r; +} + +void +CallLogViewByPopup::OnActionPerformed(const Control& source, int actionId) +{ + switch(actionId) + { + case IDA_BLOCK_CALL: + { + __isBlockCallSelected = !__isBlockCallSelected; + __pButtonBlockOk->SetEnabled(__isBlockCallSelected || __isBlockMessageSelected); + __pButtonBlockOk->Invalidate(__isBlockCallSelected || __isBlockMessageSelected); + } + break; + + case IDA_BLOCK_MESSAGE: + { + __isBlockMessageSelected = !__isBlockMessageSelected; + __pButtonBlockOk->SetEnabled(__isBlockCallSelected || __isBlockMessageSelected); + __pButtonBlockOk->Invalidate(__isBlockCallSelected || __isBlockMessageSelected); + } + break; + + case IDA_CANCEL: + { + Popup::SetShowState(false); + } + break; + + case IDA_BLOCK_OK: + { + Popup::SetShowState(false); + __popupListener.OnItemSelected(); + } + break; + + case IDA_BLOCK_CANCEL: + { + Popup::SetShowState(false); + } + break; + + default:break; + + } +} + +bool +CallLogViewByPopup::GetCallBlock() +{ + return __isBlockCallSelected; +} + +bool +CallLogViewByPopup::GetMessageBlock() +{ + return __isBlockMessageSelected; +} + +bool +CallLogViewByPopup::OnKeyReleased(Control& source, const KeyEventInfo& keyEventInfo) +{ + AppLogDebug("Enter"); + if(keyEventInfo.GetKeyCode() == KEY_BACK || keyEventInfo.GetKeyCode() == KEY_ESC) + { + Popup::SetShowState(false); + return true; + } + return false; +} + + diff --git a/src/PhnCallRejectInfo.cpp b/src/PhnCallRejectInfo.cpp new file mode 100644 index 0000000..7cbbac5 --- /dev/null +++ b/src/PhnCallRejectInfo.cpp @@ -0,0 +1,69 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnCallRejectInfo.cpp + * @brief Call Reject info class + */ +#include "PhnCallRejectInfo.h" + +using namespace Tizen::Base; +using namespace Tizen::Base::Collection; + +CallRejectInfo::CallRejectInfo(void) +{ +} + +CallRejectInfo::~CallRejectInfo(void) +{ +} + +bool +CallRejectInfo::operator ==(const CallRejectInfo& rhs) const +{ + /*return (this->rowId == rhs.rowId);*/ + if ((this->phoneNumber == rhs.phoneNumber) + && (this->rejectCondition == rhs.rejectCondition)) + { + return true; + } + return false; +} + +bool +CallRejectInfo::operator !=(const CallRejectInfo& rhs) const +{ + /*return (!(this->rowId == rhs.rowId));*/ + if ((this->phoneNumber == rhs.phoneNumber) + && (this->rejectCondition == rhs.rejectCondition)) + { + return false; + } + return true; +} + +CallRejectInfo& +CallRejectInfo::operator =(const CallRejectInfo& rhs) +{ + if (this != null) + { + this->rowId = rhs.rowId; + this->phoneNumber.Append(rhs.phoneNumber); + this->rejectCondition = rhs.rejectCondition; + this->isActivated = rhs.isActivated; + } + return *this; +} diff --git a/src/PhnCallSettingDataService.cpp b/src/PhnCallSettingDataService.cpp new file mode 100644 index 0000000..99a31c5 --- /dev/null +++ b/src/PhnCallSettingDataService.cpp @@ -0,0 +1,819 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnCallSettingDataService.cpp + * @brief Call Database class + */ + +#include +#include +#include +#include "PhnCallSettingDataService.h" + +using namespace Tizen::Base; +using namespace Tizen::Base::Collection; +using namespace Tizen::Io; +using namespace Tizen::App; +using namespace Tizen::Social; + +CallSettingDataService* CallSettingDataService::__pCallSettingDataService = null; +Database* CallSettingDataService::__pDatabase = null; + +CallSettingDataService::CallSettingDataService(void) +: __strDbName(App::GetInstance()->GetAppSharedPath() + L"trusted/CallRejectInfoListDataBase") +{ + __pStmt = null; + __pEnum = null; + + return; +} + +CallSettingDataService::~CallSettingDataService(void) +{ + if (__pDatabase != null) + { + delete __pDatabase; + __pDatabase = null; + } + __pCallSettingDataService = null; + return; +} + +CallSettingDataService* +CallSettingDataService::CreateInstance(void) +{ + if (__pCallSettingDataService == null) + { + __pCallSettingDataService = new (std::nothrow) CallSettingDataService(); + } + return __pCallSettingDataService; +} +result +CallSettingDataService::OpenDatabase(void) +{ + result r = E_SUCCESS; + + // create the database if it doesn't exist + if (__pDatabase != null) + { + return E_OBJ_ALREADY_EXIST; + } + __pDatabase = new (std::nothrow) Database(); + r = __pDatabase->Construct(__strDbName, "a+"); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::OpenDatabase() database construct failed"); + + r = CreateCallRejectTableDatabase(); + // TryCatch(r == E_SUCCESS, , "CallSettingDataService::OpenDatabase() call reject Create Table failed"); + r = CreateSpeedDialTableDatabase(); + // TryCatch(r == E_SUCCESS, , "CallSettingDataService::OpenDatabase() speed dial Create Table failed"); + + return r; + + CATCH: + delete __pDatabase; + __pDatabase = null; + return r; +} + +result +CallSettingDataService::CreateCallRejectTableDatabase(void) +{ + String sqlQuery; + result r = E_SUCCESS; + + sqlQuery.Append(L"CREATE TABLE IF NOT EXISTS CallRejectInfoTable(id INTEGER PRIMARY KEY AUTOINCREMENT,phonenumber TEXT,rejectcondition INT,activated INT)"); + + r = __pDatabase->ExecuteSql(sqlQuery, true); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::CreateCallRejectInfoTableDatabase() Create Table failed"); + + return r; + + CATCH: + return r; +} + +result +CallSettingDataService::CreateSpeedDialTableDatabase(void) +{ + String sqlQuery; + result r = E_SUCCESS; + + sqlQuery.Append(L"CREATE TABLE IF NOT EXISTS SpeedDialTable(id INTEGER PRIMARY KEY AUTOINCREMENT,contactInfo TEXT,keyMappedTo INT)"); + + r = __pDatabase->ExecuteSql(sqlQuery, true); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::CreateCallRejectInfoTableDatabase() Create Table failed"); + + return r; + + CATCH: + return r; +} + +result +CallSettingDataService::CloseDatabase(void) +{ + if (__pEnum != null) + { + delete __pEnum; + __pEnum = null; + } + if (__pStmt != null) + { + delete __pStmt; + __pStmt = null; + } + if (__pDatabase != null) + { + delete __pDatabase; + __pDatabase = null; + } + + return E_SUCCESS; +} + +result +CallSettingDataService::AddCallRejectInfoToDatabase(CallRejectInfo* pNewItem) +{ + String statement; + __pStmt = null; + __pEnum = null; + result r = E_FAILURE; + + TryCatch(pNewItem != null, , "CallSettingDataService::AddCallRejectInfoToDatabase() no item to add"); + + __pDatabase->BeginTransaction(); + + statement.Append(L"INSERT INTO CallRejectInfoTable(phonenumber,rejectcondition,activated) VALUES (?,?,?)"); + __pStmt = __pDatabase->CreateStatementN(statement); + r = GetLastResult(); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::AddCallRejectInfoToDatabase() CreateStatementN failed"); + if (__pStmt != null) + { + r = __pStmt->BindString(0, pNewItem->phoneNumber); + __pStmt->BindInt(1, pNewItem->rejectCondition); + __pStmt->BindInt(2, pNewItem->isActivated); + + __pEnum = __pDatabase->ExecuteStatementN(*__pStmt); + } + r = GetLastResult(); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::AddCallRejectInfoToDatabase() Add CallRejectInfo to DB failed"); + + r = __pDatabase->CommitTransaction(); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::AddCallRejectInfoToDatabase() CommitTransaction to DB failed"); + + if (__pStmt != null) + { + delete __pStmt; + __pStmt = null; + } + if (__pEnum != null) + { + delete __pEnum; + __pEnum = null; + } + return r; + + CATCH: + return r; +} + +result +CallSettingDataService::DeleteCallRejectInfoListFromDatabase(ArrayList* pIndexArray) +{ + result r = E_SUCCESS; + IEnumerator* pEnum = null; + Integer* index; + + TryCatch(pIndexArray != null, , "CallSettingDataService::DeleteCallRejectInfoListFromDatabase() no item to delete"); + + pEnum = pIndexArray->GetEnumeratorN(); + index = null; + if (pEnum != null) + { + while (pEnum->MoveNext() == E_SUCCESS) + { + index = static_cast(pEnum->GetCurrent()); + r = DeleteCallRejectInfoFromDatabase(index->ToInt()); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::AddCallRejectInfoToDatabase() Add CallRejectInfo to DB failed"); + } + delete pEnum; + pEnum = null; + } + + if (pIndexArray != null) + { + pIndexArray->RemoveAll(true); + delete pIndexArray; + pIndexArray = null; + } + return r; + + CATCH: + if (pEnum != null) + { + delete pEnum; + pEnum = null; + } + if (pIndexArray != null) + { + pIndexArray->RemoveAll(true); + delete pIndexArray; + pIndexArray = null; + } + return r; +} + +result +CallSettingDataService::DeleteCallRejectInfoFromDatabase(int aIndex) +{ + String statement; + __pStmt = null; + __pEnum = null; + result r = E_SUCCESS; + + __pDatabase->BeginTransaction(); + + statement.Append(L"DELETE FROM CallRejectInfoTable WHERE id = ?"); + __pStmt = __pDatabase->CreateStatementN(statement); + r = GetLastResult(); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::DeleteCallRejectInfoFromDatabase CreateStatementN failed"); + if (__pStmt != null) + { + __pStmt->BindInt(0, aIndex); + __pEnum = __pDatabase->ExecuteStatementN(*__pStmt); + } + r = GetLastResult(); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::DeleteCallRejectInfoFromDatabase Delete CallRejectInfo from DB failed"); + + __pDatabase->CommitTransaction(); + + if (__pStmt != null) + { + delete __pStmt; + __pStmt = null; + } + if (__pEnum != null) + { + delete __pEnum; + __pEnum = null; + } + return r; + + CATCH: + return r; +} + +result +CallSettingDataService::UpdateCallRejectInfoDatabase(int aIndex, CallRejectInfo* pCallInfoItem) +{ + String statement; + __pStmt = null; + __pEnum = null; + result r = E_SUCCESS; + + TryCatch(pCallInfoItem != null, , "CallSettingDataService::UpdateCallRejectInfoDatabase() no item to update"); + + __pDatabase->BeginTransaction(); + + statement.Append(L"UPDATE CallRejectInfoTable SET phonenumber=?,rejectcondition=?,activated=? WHERE id=?"); + __pStmt = __pDatabase->CreateStatementN(statement); + r = GetLastResult(); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::UpdateCallRejectInfoDatabase CreateStatementN failed"); + if (__pStmt != null) + { + r = __pStmt->BindString(0, pCallInfoItem->phoneNumber); + __pStmt->BindInt(1, pCallInfoItem->rejectCondition); + __pStmt->BindInt(2, pCallInfoItem->isActivated); + __pStmt->BindInt(3, aIndex); + + __pEnum = __pDatabase->ExecuteStatementN(*__pStmt); + } + r = GetLastResult(); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::UpdateCallRejectInfoDatabase Update CallRejectInfo in DB failed"); + + __pDatabase->CommitTransaction(); + + if (__pStmt != null) + { + delete __pStmt; + __pStmt = null; + } + if (__pEnum != null) + { + delete __pEnum; + __pEnum = null; + } + return r; + + CATCH: + return r; +} + +result +CallSettingDataService::GetCallRejectInfoFromDatabase(int aIndex, CallRejectInfo& dbItem) +{ + String statement; + __pStmt = null; + __pEnum = null; + result r = E_SUCCESS; + __pDatabase->BeginTransaction(); + statement.Append(L"SELECT id,phonenumber,rejectcondition,activated FROM CallRejectInfoTable WHERE id=?"); + __pStmt = __pDatabase->CreateStatementN(statement); + r = GetLastResult(); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::GetCallRejectInfoFromDatabase CreateStatementN failed"); + + __pStmt->BindInt(0, aIndex); + __pEnum = __pDatabase->ExecuteStatementN(*__pStmt); + r = GetLastResult(); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::GetCallRejectInfoFromDatabase Get CallRejectInfo from DB failed"); + + if (__pEnum != null) + { + int activateflag; + int rejectCondition; + __pEnum->GetIntAt(0, dbItem.rowId); + __pEnum->GetStringAt(1, dbItem.phoneNumber); + __pEnum->GetIntAt(2, rejectCondition); + __pEnum->GetIntAt(3, activateflag); + dbItem.rejectCondition = (CallRejectMatchCondition)rejectCondition; + dbItem.isActivated = (bool)activateflag; + } + __pDatabase->CommitTransaction(); + + + delete __pStmt; + __pStmt = NULL; + + if (__pEnum != null) + { + delete __pEnum; + __pEnum = NULL; + } + return r; + + CATCH: + return r; +} + +result +CallSettingDataService::GetAllCallRejectInfoFromDatabaseN(ArrayListT& callRejectInfoList) +{ + String sql; + __pEnum = null; + result r = E_SUCCESS; + __pDatabase->BeginTransaction(); + + sql.Append(L"SELECT id,phonenumber,rejectcondition,activated from CallRejectInfoTable"); + __pEnum = __pDatabase->QueryN(sql); + r = GetLastResult(); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::GetAllCallRejectInfoFromDatabase Get CallRejectInfo from DB failed"); + + //check if the query returned any result and then iterate through the results + if (__pEnum != null) + { + while (__pEnum->MoveNext() == E_SUCCESS) + { + CallRejectInfo* pCallRejectInfoItem = new (std::nothrow) CallRejectInfo; + int activateflag; + int rejectCondition; + __pEnum->GetIntAt(0, pCallRejectInfoItem->rowId); + __pEnum->GetStringAt(1, pCallRejectInfoItem->phoneNumber); + __pEnum->GetIntAt(2, rejectCondition); + __pEnum->GetIntAt(3, activateflag); + pCallRejectInfoItem->rejectCondition = (CallRejectMatchCondition)rejectCondition; + pCallRejectInfoItem->isActivated = (bool)activateflag; + callRejectInfoList.Add(*pCallRejectInfoItem); + } + } + __pDatabase->CommitTransaction(); + if (__pEnum != null) + { + delete __pEnum; + __pEnum = NULL; + } + return r; + + CATCH: + return r; +} + +result +CallSettingDataService::GetCallRejectCount(int& count) +{ + String statement; + result r = E_SUCCESS; + __pStmt = null; + __pEnum = null; + + __pDatabase->BeginTransaction(); + statement.Append(L"SELECT COUNT (*) FROM CallRejectInfoTable"); + __pStmt = __pDatabase->CreateStatementN(statement); + r = GetLastResult(); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::GetCount CreateStatementN failed"); + if (__pStmt != null) + { + __pEnum = __pDatabase->ExecuteStatementN(*__pStmt); + } + r = GetLastResult(); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::GetCount Count from DB failed"); + + if (__pEnum != null) + { + r = __pEnum->MoveNext(); + __pEnum->GetIntAt(0, count); + } + __pDatabase->CommitTransaction(); + + if (__pStmt != null) + { + delete __pStmt; + __pStmt = NULL; + } + if (__pEnum != null) + { + delete __pEnum; + __pEnum = NULL; + } + return r; + + CATCH: + return r; +} + +bool +CallSettingDataService::IsCallToBeRejected(String& phoneNumber) +{ + bool isCallToBeRejected = false; + String statement; + __pStmt = null; + __pEnum = null; + result r = E_SUCCESS; + __pDatabase->BeginTransaction(); + + //statement.Append(L"SELECT * FROM CallRejectInfoTable WHERE phonenumber LIKE ?"); + statement.Append(L"SELECT * FROM CallRejectInfoTable WHERE activated=?"); + + __pStmt = __pDatabase->CreateStatementN(statement); + r = GetLastResult(); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::SearchFromDataBase CreateStatementN failed"); + + //__pStmt->BindString(0, phoneNumber); + if (__pStmt != null) + { + __pStmt->BindInt(0,(int)true); + __pEnum = __pDatabase->ExecuteStatementN(*__pStmt); + } + r = GetLastResult(); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::SearchFromDataBaseN search failed"); + + //check if the query returned any result and then iterate through the results + if (__pEnum != null) + { + while (__pEnum->MoveNext() == E_SUCCESS) + { + CallRejectInfo* pCallRejectInfoItem = new (std::nothrow) CallRejectInfo; + int activateflag; + int rejectCondition; + __pEnum->GetIntAt(0, pCallRejectInfoItem->rowId); + __pEnum->GetStringAt(1, pCallRejectInfoItem->phoneNumber); + __pEnum->GetIntAt(2, rejectCondition); + __pEnum->GetIntAt(3, activateflag); + pCallRejectInfoItem->rejectCondition = (CallRejectMatchCondition)rejectCondition; + pCallRejectInfoItem->isActivated = (bool)activateflag; + if (CheckRejectCondition(phoneNumber, *pCallRejectInfoItem) == true) + { + delete pCallRejectInfoItem; + isCallToBeRejected = true; + break; + } + delete pCallRejectInfoItem; + } + } + __pDatabase->CommitTransaction(); + + if (__pStmt != null) + { + delete __pStmt; + __pStmt = NULL; + } + if (__pEnum != null) + { + delete __pEnum; + __pEnum = NULL; + } + return isCallToBeRejected; + + CATCH: + return isCallToBeRejected; +} + +bool +CallSettingDataService::CheckRejectCondition(String& phoneNumber, CallRejectInfo& callRejectInfo) +{ + bool isCallToBeRejected = false; + switch (callRejectInfo.rejectCondition) + { + case CALL_REJECT_MATCH_EXACTLY: + { + if (callRejectInfo.phoneNumber.CompareTo(phoneNumber) == 0) + { + isCallToBeRejected = true; + } + } + break; + case CALL_REJECT_MATCH_START: + { + isCallToBeRejected = phoneNumber.StartsWith(callRejectInfo.phoneNumber, 0); + } + break; + case CALL_REJECT_MATCH_END: + { + isCallToBeRejected = phoneNumber.EndsWith(callRejectInfo.phoneNumber); + } + break; + case CALL_REJECT_MATCH_INCLUDE: + { + isCallToBeRejected = phoneNumber.Contains(callRejectInfo.phoneNumber); + } + break; + default: + break; + } + + return isCallToBeRejected; +} +result +CallSettingDataService::AddSpeedDialInfoToDatabase(SpeedDialInfo* pNewItem) +{ + String statement; + __pStmt = null; + __pEnum = null; + result r = E_FAILURE; + + TryCatch(pNewItem != null, , "CallSettingDataService::AddSpeedDialInfoToDatabase() no item to add"); + + __pDatabase->BeginTransaction(); + + statement.Append(L"INSERT INTO SpeedDialTable(contactInfo,keyMappedTo) VALUES (?,?)"); + __pStmt = __pDatabase->CreateStatementN(statement); + r = GetLastResult(); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::AddSpeedDialInfoToDatabase() CreateStatementN failed"); + if (__pStmt != null) + { + r = __pStmt->BindString(0, pNewItem->contactId); + __pStmt->BindInt(1, pNewItem->keyMapping); + + __pEnum = __pDatabase->ExecuteStatementN(*__pStmt); + } + r = GetLastResult(); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::AddSpeedDialInfoToDatabase() Add SpeedDialInfo to DB failed"); + + r = __pDatabase->CommitTransaction(); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::AddSpeedDialInfoToDatabase() CommitTransaction to DB failed"); + + if (__pStmt != null) + { + delete __pStmt; + __pStmt = null; + } + if (__pEnum != null) + { + delete __pEnum; + __pEnum = null; + } + return r; + + CATCH: + return r; +} + +result +CallSettingDataService::DeleteSpeedDialInfoFromDatabase(int aIndex) +{ + String statement; + __pStmt = null; + __pEnum = null; + result r = E_SUCCESS; + + __pDatabase->BeginTransaction(); + + statement.Append(L"DELETE FROM SpeedDialTable WHERE id = ?"); + __pStmt = __pDatabase->CreateStatementN(statement); + r = GetLastResult(); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::DeleteSpeedDialInfoFromDatabase CreateStatementN failed"); + if (__pStmt != null) + { + __pStmt->BindInt(0, aIndex); + __pEnum = __pDatabase->ExecuteStatementN(*__pStmt); + } + r = GetLastResult(); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::DeleteSpeedDialInfoFromDatabase Delete SpeedDialInfo from DB failed"); + + __pDatabase->CommitTransaction(); + + if (__pStmt != null) + { + delete __pStmt; + __pStmt = null; + } + if (__pEnum != null) + { + delete __pEnum; + __pEnum = null; + } + return r; + + CATCH: + return r; +} + +result +CallSettingDataService::UpdateSpeedDialInfoDatabase(int aIndex, SpeedDialInfo* pSpeedDialInfoItem) +{ + String statement; + __pStmt = null; + __pEnum = null; + result r = E_SUCCESS; + + TryCatch(pSpeedDialInfoItem != null, , "CallSettingDataService::UpdateSpeedDialInfoDatabase() no item to update"); + + __pDatabase->BeginTransaction(); + + statement.Append(L"UPDATE SpeedDialTable SET contactInfo=?,keyMappedTo=? WHERE id=?"); + __pStmt = __pDatabase->CreateStatementN(statement); + r = GetLastResult(); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::UpdateSpeedDialInfoDatabase CreateStatementN failed"); + if (__pStmt != null) + { + r = __pStmt->BindString(0, pSpeedDialInfoItem->contactId); + __pStmt->BindInt(1, pSpeedDialInfoItem->keyMapping); + __pStmt->BindInt(2, aIndex); + + __pEnum = __pDatabase->ExecuteStatementN(*__pStmt); + } + r = GetLastResult(); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::UpdateSpeedDialInfoDatabase Update SpeedDialInfo in DB failed"); + + __pDatabase->CommitTransaction(); + + if (__pStmt != null) + { + delete __pStmt; + __pStmt = null; + } + if (__pEnum != null) + { + delete __pEnum; + __pEnum = null; + } + return r; + + CATCH: + return r; +} + +IMapT* +CallSettingDataService::GetAllSpeedDialInfoMapFromDatabaseN(void) +{ + String sql; + __pEnum = null; + result r = E_SUCCESS; + HashMapT* pSpeedDialInfoList = null; + r = __pDatabase->BeginTransaction(); + + sql.Append(L"SELECT id,contactInfo,keyMappedTo from SpeedDialTable"); + __pEnum = __pDatabase->QueryN(sql); + r = GetLastResult(); + TryCatch(r == E_SUCCESS, , "CallSettingDataService::GetAllSpeedDialInfoFromDatabase Get SpeedDialInfo from DB failed"); + + //check if the query returned any result and then iterate through the results + if (__pEnum != null) + { + pSpeedDialInfoList = new (std::nothrow) HashMapT(); + pSpeedDialInfoList->Construct(10); + while (__pEnum->MoveNext() == E_SUCCESS) + { + SpeedDialInfo* pSpeedDialInfoItem = new (std::nothrow) SpeedDialInfo(); + int keyMappedTo;; + __pEnum->GetIntAt(0, pSpeedDialInfoItem->rowId); + __pEnum->GetStringAt(1, pSpeedDialInfoItem->contactId); + __pEnum->GetIntAt(2, keyMappedTo); + pSpeedDialInfoItem->keyMapping = keyMappedTo; + pSpeedDialInfoList->Add(keyMappedTo ,*pSpeedDialInfoItem); + } + } + + __pDatabase->CommitTransaction(); + + if (__pEnum != null) + { + delete __pEnum; + __pEnum = NULL; + } + SyncWithCurrentAddressbookStatus(pSpeedDialInfoList); + return pSpeedDialInfoList; + + CATCH: + return pSpeedDialInfoList; +} + +void +CallSettingDataService::SyncWithCurrentAddressbookStatus(HashMapT* pSpeedDialInfoList) +{ + AddressbookManager* pAddressbookManager = AddressbookManager::GetInstance(); + Addressbook* pAddressbook = pAddressbookManager->GetAddressbookN(DEFAULT_ADDRESSBOOK_ID); + + if(pAddressbook == null || pSpeedDialInfoList == null) + { + return; + } + + IListT* pSpeedDialList = pSpeedDialInfoList->GetValuesN(); + IEnumeratorT *pSpeedDialListEnum = pSpeedDialList->GetEnumeratorN(); + while(pSpeedDialListEnum->MoveNext() == E_SUCCESS) + { + SpeedDialInfo speeDialInfo; + RecordId recordId = INVALID_RECORD_ID; + pSpeedDialListEnum->GetCurrent(speeDialInfo); + Integer::Parse(speeDialInfo.contactId, recordId); + + Contact* pMappedContact = pAddressbook->GetContactN(recordId); + if(pMappedContact == null) + { + DeleteSpeedDialInfoFromDatabase(speeDialInfo.rowId); + pSpeedDialInfoList->Remove(speeDialInfo.keyMapping); + } + else + { + delete pMappedContact; + } + } + delete pAddressbook; + delete pSpeedDialListEnum; + delete pSpeedDialList; + +} + +String* +CallSettingDataService::GetSpeedDialContactN(int aIndex) +{ + result r = E_SUCCESS; + String statement; + __pStmt = null; + __pEnum = null; + String* fetchedInfo = null; + + __pDatabase->BeginTransaction(); + + statement.Append(L"SELECT contactInfo from SpeedDialTable WHERE keyMappedTo=?"); + __pStmt = __pDatabase->CreateStatementN(statement); + r = GetLastResult(); + TryCatch(r == E_SUCCESS, , "GetSpeedDialInfoN - CreateStatementN failed"); + if (__pStmt != null) + { + __pStmt->BindInt(0, aIndex); + + __pEnum = __pDatabase->ExecuteStatementN(*__pStmt); + } + r = GetLastResult(); + TryCatch(r == E_SUCCESS, , "GetSpeedDialInfoN - ExecuteStatementN failed"); + + //check if the query returned any result and then iterate through the results + if (__pEnum != null && __pEnum->MoveNext() == E_SUCCESS) + { + String contact; + __pEnum->GetStringAt(0, contact); + fetchedInfo = new (std::nothrow) String(contact); + } + + __pDatabase->CommitTransaction(); + + if (__pStmt != null) + { + delete __pStmt; + __pStmt = null; + } + if (__pEnum != null) + { + delete __pEnum; + __pEnum = null; + } + return fetchedInfo; + + CATCH: + return fetchedInfo; +} diff --git a/src/PhnCalllogManager.cpp b/src/PhnCalllogManager.cpp new file mode 100644 index 0000000..0245aee --- /dev/null +++ b/src/PhnCalllogManager.cpp @@ -0,0 +1,1567 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnCalllogManager.cpp + * @brief This class provides call log APIs + */ +#include "PhnAppUtility.h" +#include "PhnCalllogManager.h" +#include + +using namespace Tizen::Base; +using namespace Tizen::Base::Collection; +using namespace Tizen::Base::Utility; +using namespace Tizen::Graphics; +using namespace Tizen::System; +using namespace Tizen::Locales; +using namespace Tizen::Ui::Controls; + +CallLogManager* CallLogManager::__pCallogManager = null; +CallLogType CallLogManager::__callLogViewbyID = CALL_LOG_TYPE_ALL; + +static int TOTAL_CALL_LOGS_TO_FETCH = 500; + +result +LogListByNumberComparer::Compare(const CallLogDetails& obj1, const CallLogDetails& obj2, int& cmp) const +{ + CallLogDetails* log1 = const_cast((&obj1)); + CallLogDetails* log2 = const_cast((&obj2)); + if(log1 == null || log2 == null) + { + return E_FAILURE; + } + log1->ConvertTimetoDateTime(); + DateTime date1 = log1->GetDateTime(); + //AppLog(" %d %d %s %d:%d:%d", log1->GetCalllogDbId(), log1->GetCalllogType(), log1->GetPhoneNumber(), date1.GetDay(), date1.GetMonth(), date1.GetYear()); + log2->ConvertTimetoDateTime(); + DateTime date2 = log2->GetDateTime(); + //AppLog(" %d %d %s %d:%d:%d", log2->GetCalllogDbId(), log2->GetCalllogType(), log2->GetPhoneNumber(), date2.GetDay(), date2.GetMonth(), date2.GetYear()); + cmp = date2.CompareTo(date1); + return E_SUCCESS; +} + +result +LogListComparer::Compare(const Object& obj1, const Object& obj2, int& cmp) const +{ + CallLogDetails* log1 = dynamic_cast(const_cast(&obj1)); + CallLogDetails* log2 = dynamic_cast(const_cast(&obj2)); + if(log1 == null || log2 == null) + { + return E_FAILURE; + } + log1->ConvertTimetoDateTime(); + DateTime date1 = log1->GetDateTime(); + //AppLog(" %d %d %s %d:%d:%d", log1->GetCalllogDbId(), log1->GetCalllogType(), log1->GetPhoneNumber(), date1.GetDay(), date1.GetMonth(), date1.GetYear()); + log2->ConvertTimetoDateTime(); + DateTime date2 = log2->GetDateTime(); + //AppLog(" %d %d %s %d:%d:%d", log2->GetCalllogDbId(), log2->GetCalllogType(), log2->GetPhoneNumber(), date2.GetDay(), date2.GetMonth(), date2.GetYear()); + cmp = date2.CompareTo(date1); + return E_SUCCESS; +} + +result +LogGroupListComparer::Compare(const Object& obj1, const Object& obj2, int& cmp) const +{ + GroupItemClass* grp1 = dynamic_cast(const_cast(&obj1)); + GroupItemClass* grp2 = dynamic_cast(const_cast(&obj2)); + if(grp1 == null || grp2 == null) + { + return E_FAILURE; + } + CallLogDetails* log1 = static_cast(grp1->GetLogData()->GetAt(0)); + CallLogDetails* log2 = static_cast(grp2->GetLogData()->GetAt(0)); + if(log1 == null || log2 == null) + { + return E_FAILURE; + } + log1->ConvertTimetoDateTime(); + DateTime date1 = log1->GetDateTime(); + //AppLog(" %d %d %s %d:%d:%d", log1->GetCalllogDbId(), log1->GetCalllogType(), log1->GetPhoneNumber(), date1.GetDay(), date1.GetMonth(), date1.GetYear()); + log2->ConvertTimetoDateTime(); + DateTime date2 = log2->GetDateTime(); + //AppLog(" %d %d %s %d:%d:%d", log2->GetCalllogDbId(), log2->GetCalllogType(), log2->GetPhoneNumber(), date2.GetDay(), date2.GetMonth(), date2.GetYear()); + cmp = date2.CompareTo(date1); + return E_SUCCESS; +} + +CallLogDetails::CallLogDetails(void) +{ + dateTime.SetValue(0,0,0); + first_name = null; + last_name = null; + display_name = null; + contact_image_path = null; + phone_number = null; + short_message = null; + contact_db_id = -1; + __consecutiveNoCounter = 1; + __pDBIds = null; +} + +CallLogDetails::~CallLogDetails(void) +{ + //NOTE: none of the fields are owned. Free() them will lead to crash. +} + +bool +CallLogDetails::operator ==(const CallLogDetails& rhs) const +{ + if(this->calllog_db_id == rhs.calllog_db_id) + { + return true; + } + return false; +} + +bool +CallLogDetails::operator !=(const CallLogDetails& rhs) const +{ + if(this->calllog_db_id != rhs.calllog_db_id) + { + return true; + } + return false; +} + +CallLogDetails& +CallLogDetails::operator =(const CallLogDetails& rhs) +{ + this->calllog_db_id = rhs.calllog_db_id; + this->contact_db_id = rhs.contact_db_id; + this->calllog_type = rhs.calllog_type; + this->duration_sec = rhs.duration_sec; + if(rhs.first_name != null) + { + this->first_name = strdup(rhs.first_name); + } + if(rhs.last_name != null) + { + this->last_name = strdup(rhs.last_name); + } + if(rhs.display_name != null) + { + this->display_name = strdup(rhs.display_name); + } + if(rhs.contact_image_path != null) + { + this->contact_image_path = strdup(rhs.contact_image_path); + } + if(rhs.short_message != null) + { + this->short_message = strdup(rhs.short_message); + } + this->duration_sec = rhs.duration_sec; + this->dateTime = rhs.dateTime; + this->__consecutiveNoCounter = rhs.__consecutiveNoCounter; + if(rhs.__pDBIds != null ) + { + this->__pDBIds = new (std::nothrow) ArrayList(); + this->__pDBIds->Construct(); + for(int index = 0; index < rhs.__pDBIds->GetCount(); index++) + { + Integer dbid = *(static_cast(rhs.__pDBIds->GetAt(index))); + this->__pDBIds->Add(new (std::nothrow) Integer(dbid)); + } + + } + if(rhs.phone_number != null) + { + this->phone_number = strdup(rhs.phone_number); + } + this->startTime = rhs.startTime; + return *this; +} + + +void +CallLogDetails::SetCalllogDbId(int id) +{ + calllog_db_id = id; +} + + +int +CallLogDetails::GetCalllogDbId(void) +{ + return calllog_db_id; +} + +void +CallLogDetails::SetCalllogType(contacts_phone_log_type_e type) +{ + switch (type) + { + case CONTACTS_PLOG_TYPE_VOICE_INCOMMING: + calllog_type = CALL_LOG_TYPE_VOICE_INCOMING; + break; + case CONTACTS_PLOG_TYPE_VOICE_OUTGOING: + calllog_type = CALL_LOG_TYPE_VOICE_OUTGOING; + break; + case CONTACTS_PLOG_TYPE_VOICE_INCOMMING_UNSEEN: + calllog_type = CALL_LOG_TYPE_VOICE_MISSED_UNSEEN; + break; + case CONTACTS_PLOG_TYPE_VOICE_INCOMMING_SEEN: + calllog_type = CALL_LOG_TYPE_VOICE_MISSED; + break; + case CONTACTS_PLOG_TYPE_VOICE_REJECT: + calllog_type = CALL_LOG_TYPE_VOICE_REJECTED; + break; + case CONTACTS_PLOG_TYPE_VOICE_BLOCKED: + calllog_type = CALL_LOG_TYPE_VOICE_BLOCKED; + break; + + + case CONTACTS_PLOG_TYPE_VIDEO_INCOMMING: + calllog_type = CALL_LOG_TYPE_VIDEO_INCOMING; + break; + case CONTACTS_PLOG_TYPE_VIDEO_OUTGOING: + calllog_type = CALL_LOG_TYPE_VIDEO_OUTGOING; + break; + case CONTACTS_PLOG_TYPE_VIDEO_INCOMMING_UNSEEN: + case CONTACTS_PLOG_TYPE_VIDEO_INCOMMING_SEEN: + calllog_type = CALL_LOG_TYPE_VIDEO_MISSED; + break; + case CONTACTS_PLOG_TYPE_VIDEO_REJECT: + calllog_type = CALL_LOG_TYPE_VIDEO_REJECTED; + break; + case CONTACTS_PLOG_TYPE_VIDEO_BLOCKED: + calllog_type = CALL_LOG_TYPE_VIDEO_BLOCKED; + break; + + case CONTACTS_PLOG_TYPE_MMS_INCOMMING: + calllog_type = CALL_LOG_TYPE_MMS_INCOMING; + break; + case CONTACTS_PLOG_TYPE_MMS_OUTGOING: + calllog_type = CALL_LOG_TYPE_MMS_OUTGOING; + break; + case CONTACTS_PLOG_TYPE_MMS_BLOCKED: + calllog_type = CALL_LOG_TYPE_SMS_BLOCKED; + break; + + case CONTACTS_PLOG_TYPE_SMS_INCOMMING: + calllog_type = CALL_LOG_TYPE_SMS_INCOMING; + break; + case CONTACTS_PLOG_TYPE_SMS_OUTGOING: + calllog_type = CALL_LOG_TYPE_SMS_OUTGOING; + break; + case CONTACTS_PLOG_TYPE_SMS_BLOCKED: + calllog_type = CALL_LOG_TYPE_SMS_BLOCKED; + break; + + case CONTACTS_PLOG_TYPE_EMAIL_RECEIVED: + calllog_type = CALL_LOG_TYPE_EMAIL_INCOMING; + break; + case CONTACTS_PLOG_TYPE_EMAIL_SENT: + calllog_type = CALL_LOG_TYPE_EMAIL_OUTGOING; + break; + + default: + break; + } +} + +CallLogType +CallLogDetails::GetCalllogType(void) +{ + return calllog_type; +} + +void +CallLogDetails::SetContactDbId(int id) +{ + contact_db_id = id; +} + +int +CallLogDetails::GetContactDbId(void) +{ + return contact_db_id; +} + +void +CallLogDetails::SetFirstName(char* name) +{ + first_name = strdup(name); +} + +char* +CallLogDetails::GetFirstName(void) +{ + return first_name; +} + +void +CallLogDetails::SetLastName(char* name) +{ + last_name = strdup(name); +} + +char* +CallLogDetails::GetLastName(void) +{ + return last_name; +} + +void +CallLogDetails::SetDisplayName(char* name) +{ + display_name = strdup(name); +} + +char* +CallLogDetails::GetDisplayName(void) +{ + return display_name; +} + +void +CallLogDetails::SetContactImagePath(char* name) +{ + contact_image_path = strdup(name); +} + +char* +CallLogDetails::GetContactImagePath(void) +{ + return contact_image_path; +} + +void +CallLogDetails::SetPhoneNumber(char* name) +{ + phone_number = strdup(name); +} + +char* +CallLogDetails::GetPhoneNumber(void) +{ + return phone_number; +} + +void +CallLogDetails::SetShortMessage(char* name) +{ + short_message = strdup(name); +} + +char* +CallLogDetails::GetShortMessage(void) +{ + return short_message; +} + +void +CallLogDetails::ConvertTimetoDateTime(void) +{ + DateTime dtNow; + struct tm* time = null; + time = gmtime(&startTime); + LocaleManager localManager; + TimeZone tz; + if(time != null) + { + dtNow.SetValue(time->tm_year+1900,time->tm_mon+1, time->tm_mday,time->tm_hour, time->tm_min, time->tm_sec); + + } + localManager.Construct(); + tz = localManager.GetSystemTimeZone(); + dateTime = tz.UtcTimeToWallTime(dtNow); + + +} + +void +CallLogDetails::SetStartTime(time_t time) +{ + startTime = time; + ConvertTimetoDateTime(); +} + +time_t +CallLogDetails::GetStartTime(void) +{ + return startTime; +} + +DateTime +CallLogDetails::GetDateTime(void) +{ + return dateTime; +} + +void +CallLogDetails::SetDuration(int duration) +{ + duration_sec = duration; +} + +int +CallLogDetails::GetDuration(void) +{ + return duration_sec; +} + +int +CallLogDetails::GetConsecutiveNoCounter() +{ + return __consecutiveNoCounter; +} + +void +CallLogDetails::SetConsecutiveNoCounter(int consecutiveNoCounter) +{ + __consecutiveNoCounter = consecutiveNoCounter; +} + +Tizen::Base::Collection::ArrayList* +CallLogDetails::GetCallLogDbIds() +{ + return __pDBIds; +} + +void +CallLogDetails::SetCallLogDbIds(Tizen::Base::Collection::ArrayList* dbIds) +{ + __pDBIds = dbIds; +} + +CallLogManager* +CallLogManager::GetInstance(void) +{ + if(__pCallogManager == null) + { + CreateInstance(); + } + return __pCallogManager; +} + +void +CallLogManager::CreateInstance(void) +{ + __pCallogManager = new CallLogManager(); + result r = __pCallogManager->Construct(); + if(IsFailed(r)) + { + delete __pCallogManager; + __pCallogManager = null; + return; + } + std::atexit(DestroyInstance); +} +void +CallLogManager::DestroyInstance(void) +{ + contacts_disconnect2(); + delete __pCallogManager; +} +result +CallLogManager::Construct(void) +{ + int ret = contacts_connect2(); + if(ret != 0) + { + return E_FAILURE; + } + + __callLogViewbyID = CALL_LOG_TYPE_ALL; + __callLogsViewedCount = 0; + + __pCalllogGroupList = new (std::nothrow) ArrayList(); + __pCalllogGroupList->Construct(); + __pCalllogChangeListerners = new (std::nothrow) ArrayListT; + __pCalllogChangeListerners->Construct(10); + __pCalllogDBIds = new (std::nothrow) HashMapT(); + __pCalllogDBIds->Construct(100); + + //GetAllCallogDataFromDatabseCB(); + contacts_db_add_changed_cb(_contacts_phone_log._uri,CallLogManager::ContactsDbchangedcb,this); + SortCalllogList(); + //TODO + //calllog_add_calllog_db_changed_cb(changed_db_cb, this); + return E_SUCCESS; + +} +///////////////////////////////////////Calllog Manager//////////////////////////////////////////////////////////////////////////////// +CallLogManager::CallLogManager(void) +{ + __pCalllogGroupList = null; + __pCalllogListByNumber = null; + __pNumber = null; + __pCalllogChangeListerners = null; + __bDbDirty = true; +} + +CallLogManager::~CallLogManager(void) +{ + AppLogDebug("Enter"); + contacts_db_remove_changed_cb(_contacts_phone_log._uri,CallLogManager::ContactsDbchangedcb,null); + DeleteAllCallLogCacheEntries(); + if(__pCalllogListByNumber != null) + { + __pCalllogListByNumber = null; + } + if(__pNumber != null) + { + delete __pNumber; + __pNumber = null; + } + if(__pCalllogDBIds != null) + { + __pCalllogDBIds->RemoveAll(); + delete __pCalllogDBIds; + } + if(__pCalllogChangeListerners != null) + { + delete __pCalllogChangeListerners; + } + __pCallogManager = null; +} + +void +CallLogManager::DeleteAllCallLogCacheEntries(void) +{ + if(__pCalllogGroupList != null) + { + ArrayList* pCalllogList = null; + GroupItemClass* pGroupInfo = null; + for(int index = 0; index < __pCalllogGroupList->GetCount(); index++) + { + pGroupInfo = static_cast(__pCalllogGroupList->GetAt(index)); + if(pGroupInfo != null) + { + pCalllogList = pGroupInfo->GetLogData(); + if(pCalllogList != null) + { + pCalllogList->RemoveAll(); + delete pCalllogList; + pCalllogList = null; + } + delete pGroupInfo; + pGroupInfo = null; + } + } + __pCalllogGroupList->RemoveAll(); + delete __pCalllogGroupList; + __pCalllogGroupList = null; + } +} +unsigned long +CallLogManager::GetDuration(long long start_time) +{ + time_t curr_time; + unsigned long call_duration_in_sec = 50; + curr_time = time(0); + call_duration_in_sec = curr_time - start_time; + return call_duration_in_sec; +} + +void +CallLogManager::CopyDataToCallLogDetails(CallLogDetails* calllogInfo , contacts_record_h getrec) +{ + int logid=0; + contacts_record_get_int(getrec,_contacts_phone_log.id,&logid); + calllogInfo->SetCalllogDbId(logid); + + contacts_phone_log_type_e logType=CONTACTS_PLOG_TYPE_NONE; + contacts_record_get_int(getrec,_contacts_phone_log.log_type,(int*)&logType); + calllogInfo->SetCalllogType(logType); + + int log_time=0; + contacts_record_get_int(getrec,_contacts_phone_log.log_time,&log_time); + calllogInfo->SetStartTime((time_t)log_time); + + char* address = null; + int ret = contacts_record_get_str(getrec,_contacts_phone_log.address,&address); + if(ret == 0 && address != null) + { + calllogInfo->SetPhoneNumber(address); + free(address); + } + + int duration=0; + contacts_record_get_int(getrec,_contacts_phone_log.extra_data1,&duration); + calllogInfo->SetDuration(duration); + + char* shortMsg=0; + contacts_record_get_str(getrec,_contacts_phone_log.extra_data2,&shortMsg); + if(shortMsg) + calllogInfo->SetShortMessage(shortMsg); + +} + +bool +CallLogManager::GetAllCallogDataFromDatabseCB() +{ + contacts_list_h list=NULL; + unsigned int count = 0; + int ret = 0; + __callLogsViewedCount = 0; + + if(QueryCallogDatabse(&list) == false) + { + AppLogDebug("Getting records from callLog database is failed!"); + return false; + } + ret = contacts_list_get_count(list,&count); + contacts_list_first(list); + + DateTime today, yesterday, tomorrow; + TimeSpan oneDay(1,0,0,0); + GetCurrentDateTime(today); + today.Subtract(today.GetTimeOfDay()); + + yesterday = today; + yesterday.Subtract(oneDay); + tomorrow = today; + tomorrow.Add(oneDay); + + String title; + DateTime calllogDate; + + for (unsigned int i = 0; i < count; i++) + { + contacts_record_h getrec=0; + ret = contacts_list_get_current_record_p(list,&getrec); + if(ret == 0) + { + contacts_phone_log_type_e logType=CONTACTS_PLOG_TYPE_NONE; + contacts_record_get_int(getrec,_contacts_phone_log.log_type,(int*)&logType); + + if(logType != CONTACTS_PLOG_TYPE_EMAIL_RECEIVED && logType !=CONTACTS_PLOG_TYPE_EMAIL_SENT) + { + CallLogDetails* pCalllogInfo = new CallLogDetails(); + CopyDataToCallLogDetails(pCalllogInfo, getrec); + + if(__pCalllogDBIds->Add(pCalllogInfo->GetCalllogDbId(),pCalllogInfo->GetCalllogDbId()) == E_SUCCESS) + { + __callLogsViewedCount++; + //find title + pCalllogInfo->ConvertTimetoDateTime(); + calllogDate = pCalllogInfo->GetDateTime(); + title.Clear(); + if(calllogDate >= today && calllogDate < tomorrow) + { + title.Append(AppUtility::GetResourceString(IDS_LOGS_TODAY)); + } + else if(calllogDate >= yesterday && calllogDate < today) + { + title.Append(AppUtility::GetResourceString(IDS_LOGS_YESTERDAY)); + } + else + { + title.Format(30,L"%d/%d/%d",calllogDate.GetDay(), calllogDate.GetMonth(), calllogDate.GetYear()); + } + CreateCallLogGroup(pCalllogInfo, title); + } + else + { + delete pCalllogInfo; + } + } + } + //move to next record + ret = contacts_list_next(list); + if (ret != 0) + { + continue; + } + contacts_record_destroy(getrec,true); + } + contacts_list_destroy(list,false); + return true; +} + +int +CallLogManager::GetUnknownLogCount(int dbId) +{ + int calLogCount = 0; + int ret = 0; + contacts_filter_h filter=NULL; + contacts_query_h query = NULL; + + contacts_filter_create(_contacts_phone_log._uri,&filter); + contacts_filter_add_int(filter,_contacts_phone_log.id, CONTACTS_MATCH_EQUAL, dbId); + contacts_query_create(_contacts_phone_log._uri,&query); + contacts_query_set_filter(query,filter); + ret = contacts_db_get_count_with_query(query,&calLogCount); + if(ret != CONTACTS_ERROR_NONE) + { + AppLogDebug("contacts_db_get_count_with_query failed %d",ret); + } + contacts_filter_destroy(filter); + contacts_query_destroy(query); + + return calLogCount; +} + +bool +CallLogManager::QueryCallogDatabse(contacts_list_h* list) +{ + contacts_filter_h filter=NULL; + contacts_query_h query = NULL; + int ret = 0; + //get all logs + if(getCallLogViewbyID() == CALL_LOG_TYPE_ALL) + { + int calLogCount = 0; + contacts_db_get_count(_contacts_phone_log._uri,&calLogCount); + if(calLogCount > TOTAL_CALL_LOGS_TO_FETCH) + { + ret = contacts_db_get_all_records(_contacts_phone_log._uri,calLogCount - TOTAL_CALL_LOGS_TO_FETCH,calLogCount,list); + } + else + { + ret = contacts_db_get_all_records(_contacts_phone_log._uri,0,TOTAL_CALL_LOGS_TO_FETCH,list); + } + if (ret != 0) + { + return false; + } + } + else + { + contacts_filter_create(_contacts_phone_log._uri,&filter); + //get Received/Dialed call logs only + if (getCallLogViewbyID() == CALL_LOG_TYPE_VOICE_INCOMING || getCallLogViewbyID() == CALL_LOG_TYPE_VOICE_OUTGOING) + { + contacts_filter_add_int(filter,_contacts_phone_log.log_type, CONTACTS_MATCH_EQUAL, GetCallLogType(getCallLogViewbyID())); + } + else + { + //get Missed/Missed Unseen call logs only or rejected/blocked call logs only + contacts_filter_add_int(filter,_contacts_phone_log.log_type, CONTACTS_MATCH_EQUAL, GetCallLogType(getCallLogViewbyID())); + contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_OR); + contacts_filter_add_int(filter,_contacts_phone_log.log_type, CONTACTS_MATCH_EQUAL, GetCallLogType((CallLogType)(getCallLogViewbyID()+1))); + } + contacts_query_create(_contacts_phone_log._uri,&query); + contacts_query_set_filter(query,filter); + ret = contacts_db_get_records_with_query(query,0,TOTAL_CALL_LOGS_TO_FETCH,list); + if (ret != 0) + { + contacts_filter_destroy(filter); + contacts_query_destroy(query); + return false; + } + contacts_filter_destroy(filter); + contacts_query_destroy(query); + } + return true; +} + +void +CallLogManager::CreateCallLogGroup(CallLogDetails* pCalllogInfo, String title) +{ + GroupItemClass* pGroupItemClass; + ArrayList* pData = null; + //find if group with this title is already found + pGroupItemClass = GetGroupWithTitle(title); + if (pGroupItemClass != null) + { + pData = pGroupItemClass->GetLogData(); + + String today = AppUtility::GetResourceString(IDS_LOGS_TODAY); + String yesterday = AppUtility::GetResourceString(IDS_LOGS_YESTERDAY); + + //In case of Today or Yesterday logs group, if logs with same number present consecutively we will show the count instead of multiple entries. + if((today.CompareTo(pGroupItemClass->GetTitleText()) == 0) || (yesterday.CompareTo(pGroupItemClass->GetTitleText()) == 0)) + { + CallLogDetails* pCurrCalllogInf = static_cast(pData->GetAt(0)); + //Club the logs if they have same contact number and present consecutively. + //But do not club if the log are hidden and present consecutively. + if((String::Compare(String(pCurrCalllogInf->GetPhoneNumber()), String(pCalllogInfo->GetPhoneNumber())) == 0) && + (pCurrCalllogInf->GetPhoneNumber() != null || pCalllogInfo->GetPhoneNumber() != null)) + { + Tizen::Base::Collection::ArrayList* dbIds = pCurrCalllogInf->GetCallLogDbIds(); + if(dbIds == null) + { + dbIds = new ArrayList(); + dbIds->Construct(); + dbIds->Add(new Integer(pCalllogInfo->GetCalllogDbId())); + dbIds->Add(new Integer(pCurrCalllogInf->GetCalllogDbId())); + } + else + { + dbIds->InsertAt(new Integer(pCalllogInfo->GetCalllogDbId()), 0); + } + pCalllogInfo->SetConsecutiveNoCounter(pCurrCalllogInf->GetConsecutiveNoCounter() + 1); + pCalllogInfo->SetCallLogDbIds(dbIds); + pData->RemoveAt(0, true); + __callLogsViewedCount--; + } + } + pData->InsertAt(pCalllogInfo,0); + pGroupItemClass->SetLogData(pData); + } + else + { + //Create a new group + pGroupItemClass = new(std::nothrow) GroupItemClass(); + pGroupItemClass->SetTitleText(title); + + __pCalllogGroupList->InsertAt(pGroupItemClass, 0); + pData = pGroupItemClass->GetLogData(); + if(pData == null) + { + pData = new ArrayList(); + } + pData->InsertAt(pCalllogInfo,0); + pGroupItemClass->SetLogData(pData); + } +} + +GroupItemClass* +CallLogManager::GetGroupWithTitle(String title) +{ + GroupItemClass* pGroupInfo = null; + int count = __pCalllogGroupList->GetCount(); + for(int index = 0; index < count; index++) + { + pGroupInfo = static_cast(__pCalllogGroupList->GetAt(index)); + if(pGroupInfo == null) + { + return null; + } + String title1 = pGroupInfo->GetTitleText(); + if( title.CompareTo(title1) == 0) + { + return pGroupInfo; + } + } + return null; +} + +void +CallLogManager::DeleteItemAtGroupIndex(int groupIndex, int itemIndex) +{ + if(__pCalllogGroupList != null) + { + GroupItemClass* pGroupInfo = null; + ArrayList* list = null; + pGroupInfo = static_cast(__pCalllogGroupList->GetAt(groupIndex)); + if(pGroupInfo != null) + { + list = pGroupInfo->GetLogData(); + list->RemoveAt(itemIndex,true); + } + } +} + +bool +CallLogManager::GetCurrentDateTime(DateTime& dt) +{ + DateTime dtNow; + LocaleManager localManager; + result r = E_FAILURE; + TimeZone tz; + + r = SystemTime::GetCurrentTime(UTC_TIME, dtNow); + if (IsFailed(r)) + { + return false; + } + localManager.Construct(); + tz = localManager.GetSystemTimeZone(); + dt = tz.UtcTimeToWallTime(dtNow); + + return true; +} + +void +CallLogManager::ResetAndNotifyCalllogData(void) +{ + __bDbDirty = true; + IEnumeratorT* pListenerEnum = null; + result r = E_FAILURE; + if (__pCalllogChangeListerners != null) + { + pListenerEnum = __pCalllogChangeListerners->GetEnumeratorN(); + while ((r = pListenerEnum->MoveNext()) != E_OUT_OF_RANGE) + { + ICalllogChangeListener* pListener; + r = pListenerEnum->GetCurrent(pListener); + pListener->OnCalllogChanged(); + + } + } + +} + +void +CallLogManager::UpdateCallLogList() +{ + DeleteAllCallLogCacheEntries(); + if(__pCalllogDBIds != null) + { + __pCalllogDBIds->RemoveAll(); + delete __pCalllogDBIds; + __pCalllogDBIds = null; + } + + __pCalllogGroupList = new (std::nothrow) ArrayList(); + __pCalllogGroupList->Construct(); + __pCalllogDBIds = new (std::nothrow) HashMapT; + __pCalllogDBIds->Construct(100); + GetAllCallogDataFromDatabseCB(); + SortCalllogList(); + __bDbDirty = false; +} + + + +IListT* +CallLogManager::GetCalllogListByNumValues(void) +{ + if(__pCalllogListByNumber != null) + { + return __pCalllogListByNumber->GetItemsN(0, __pCalllogListByNumber->GetCount()); + } + return null; +} + +bool +CallLogManager::GetCallogListByNumberFromDatabaseCB(char* number) +{ + + contacts_filter_h filter=NULL; + contacts_list_h list=NULL; + contacts_query_h query = NULL; + unsigned int count = 0; + int ret = 0; + + contacts_filter_create(_contacts_phone_log._uri,&filter); + contacts_filter_add_str(filter,_contacts_phone_log.address,CONTACTS_MATCH_EXACTLY,number); + contacts_query_create(_contacts_phone_log._uri,&query); + contacts_query_set_filter(query,filter); + + ret = contacts_db_get_records_with_query(query,0,0,&list); + if (ret != 0) + { + contacts_filter_destroy(filter); + contacts_query_destroy(query); + return false; + } + contacts_filter_destroy(filter); + contacts_query_destroy(query); + + + contacts_list_get_count(list,&count); + contacts_list_first(list); + for(unsigned int i=0;iInsertAt(*calllogInfo, 0); + } + + } + + delete calllogInfo; + ret = contacts_list_next(list); + if (ret != 0) + { + continue; + } + contacts_record_destroy(getrec,true); + } + + return true; +} + +Tizen::Base::Collection::ArrayListT* +CallLogManager::GetCallogListByNumberFromDatabaseN(char* number) +{ + __pCalllogListByNumber = new (std::nothrow) Tizen::Base::Collection::ArrayListT(); + __pCalllogListByNumber->Construct(100); + if(__pNumber != null) + { + delete __pNumber; + } + int len = strlen(number) + 1; + __pNumber = new (std::nothrow) char[len]; + strcpy(__pNumber,number); + + GetCallogListByNumberFromDatabaseCB(number); + + if (__pCalllogListByNumber->GetCount() > 0) + { + SortCalllogListByNumber(); + return __pCalllogListByNumber; + } + delete __pCalllogListByNumber; + __pCalllogListByNumber = null; + return null; +} + +HashMapT* +CallLogManager::GetCallogListByUnknownNumberFromDatabaseN(char* number) +{ + //Used to fetch list of call from unknown numbers from logs. + __pCalllogUnkownListByNumber = new (std::nothrow) HashMapT(); + __pCalllogUnkownListByNumber->Construct(100); + if(__pNumber != null) + { + delete __pNumber; + } + int len = strlen(number) + 1; + __pNumber = new (std::nothrow) char[len]; + strcpy(__pNumber,number); + + GetCallogListByNumberFromDatabaseCB(number); + if (__pCalllogUnkownListByNumber->GetCount() > 0) + { + return __pCalllogUnkownListByNumber; + } + delete __pCalllogUnkownListByNumber; + __pCalllogUnkownListByNumber = null; + return null; +} + +void +CallLogManager::DeleteCalllogByDbId(int dbId) +{ + contacts_db_delete_record(_contacts_phone_log._uri,dbId); +} + +void +CallLogManager::DeleteAllCalllog(void) +{ + if(__pCalllogGroupList != null) + { + ArrayList* pCalllogList = null; + GroupItemClass* pGroupInfo = null; + CallLogDetails* pLatestCallLog; + int count =0; + + for(int index = 0; index < __pCalllogGroupList->GetCount(); index++) + { + pGroupInfo = static_cast(__pCalllogGroupList->GetAt(index)); + + if(pGroupInfo != null) + { + pCalllogList = pGroupInfo->GetLogData(); + if(pCalllogList != null) + { + count = pCalllogList->GetCount(); + for(int i=0; i< count; i++) + { + pLatestCallLog = static_cast(pCalllogList->GetAt(i)); + contacts_db_delete_record(_contacts_phone_log._uri,pLatestCallLog->GetCalllogDbId()); + } + pCalllogList->RemoveAll(); + delete pCalllogList; + pCalllogList = null; + } + delete pGroupInfo; + pGroupInfo = null; + } + } + __pCalllogGroupList->RemoveAll(); + delete __pCalllogGroupList; + __pCalllogGroupList = null; + } + + contacts_phone_log_reset_statistics(); + AppLogDebug("Exit"); +} + +int +CallLogManager::GetAllCallLogCount(void) +{ + int calLogCount = 0; + contacts_filter_h filter=NULL; + contacts_query_h query = NULL; + int ret = 0; + + contacts_filter_create(_contacts_phone_log._uri,&filter); + + contacts_filter_add_int(filter,_contacts_phone_log.log_type, CONTACTS_MATCH_EQUAL, CONTACTS_PLOG_TYPE_VOICE_INCOMMING); + contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_OR); + + contacts_filter_add_int(filter,_contacts_phone_log.log_type, CONTACTS_MATCH_EQUAL, CONTACTS_PLOG_TYPE_VOICE_OUTGOING); + contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_OR); + + contacts_filter_add_int(filter,_contacts_phone_log.log_type, CONTACTS_MATCH_EQUAL, CONTACTS_PLOG_TYPE_VIDEO_INCOMMING); + contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_OR); + + contacts_filter_add_int(filter,_contacts_phone_log.log_type, CONTACTS_MATCH_EQUAL, CONTACTS_PLOG_TYPE_VIDEO_OUTGOING); + contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_OR); + + contacts_filter_add_int(filter,_contacts_phone_log.log_type, CONTACTS_MATCH_EQUAL, CONTACTS_PLOG_TYPE_VOICE_INCOMMING_UNSEEN); + contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_OR); + + contacts_filter_add_int(filter,_contacts_phone_log.log_type, CONTACTS_MATCH_EQUAL, CONTACTS_PLOG_TYPE_VOICE_INCOMMING_SEEN); + contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_OR); + + contacts_filter_add_int(filter,_contacts_phone_log.log_type, CONTACTS_MATCH_EQUAL, CONTACTS_PLOG_TYPE_VIDEO_INCOMMING_UNSEEN); + contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_OR); + + contacts_filter_add_int(filter,_contacts_phone_log.log_type, CONTACTS_MATCH_EQUAL, CONTACTS_PLOG_TYPE_VIDEO_INCOMMING_SEEN); + contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_OR); + + contacts_filter_add_int(filter,_contacts_phone_log.log_type, CONTACTS_MATCH_EQUAL, CONTACTS_PLOG_TYPE_VOICE_REJECT); + contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_OR); + + contacts_filter_add_int(filter,_contacts_phone_log.log_type, CONTACTS_MATCH_EQUAL, CONTACTS_PLOG_TYPE_VIDEO_REJECT); + contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_OR); + + contacts_filter_add_int(filter,_contacts_phone_log.log_type, CONTACTS_MATCH_EQUAL, CONTACTS_PLOG_TYPE_VOICE_BLOCKED); + contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_OR); + + contacts_filter_add_int(filter,_contacts_phone_log.log_type, CONTACTS_MATCH_EQUAL, CONTACTS_PLOG_TYPE_VIDEO_BLOCKED); + contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_OR); + + contacts_filter_add_int(filter,_contacts_phone_log.log_type, CONTACTS_MATCH_EQUAL, CONTACTS_PLOG_TYPE_MMS_INCOMMING); + contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_OR); + + contacts_filter_add_int(filter,_contacts_phone_log.log_type, CONTACTS_MATCH_EQUAL, CONTACTS_PLOG_TYPE_MMS_OUTGOING); + contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_OR); + + contacts_filter_add_int(filter,_contacts_phone_log.log_type, CONTACTS_MATCH_EQUAL, CONTACTS_PLOG_TYPE_SMS_INCOMMING); + contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_OR); + + contacts_filter_add_int(filter,_contacts_phone_log.log_type, CONTACTS_MATCH_EQUAL, CONTACTS_PLOG_TYPE_SMS_OUTGOING); + contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_OR); + + contacts_filter_add_int(filter,_contacts_phone_log.log_type, CONTACTS_MATCH_EQUAL, CONTACTS_PLOG_TYPE_SMS_BLOCKED); + contacts_filter_add_operator(filter, CONTACTS_FILTER_OPERATOR_OR); + + contacts_filter_add_int(filter,_contacts_phone_log.log_type, CONTACTS_MATCH_EQUAL, CONTACTS_PLOG_TYPE_MMS_BLOCKED); + + contacts_query_create(_contacts_phone_log._uri,&query); + contacts_query_set_filter(query,filter); + + ret = contacts_db_get_count_with_query(query,&calLogCount); + if(ret != CONTACTS_ERROR_NONE) + { + AppLogDebug("contacts_db_get_count_with_query failed %d",ret); + } + contacts_filter_destroy(filter); + contacts_query_destroy(query); + + AppLogDebug("contacts_db_get_count_with_query %d",calLogCount); + return calLogCount; +} + +int +CallLogManager::GetCallLogsViewedCount() +{ + AppLogDebug("%d",__callLogsViewedCount); + return __callLogsViewedCount; +} + +int +CallLogManager::GetCalllogCountByNumber(void) +{ + if(__pCalllogListByNumber != null) + { + return __pCalllogListByNumber->GetCount(); + } + return 0; +} + +void +CallLogManager::SortCalllogList(void) +{ + LogGroupListComparer grpCmparer; + LogListComparer cmp; + if(__pCalllogGroupList != null) + { + __pCalllogGroupList->Sort(grpCmparer); + ArrayList* pCalllogList = null; + GroupItemClass* pGroupInfo = null; + for(int index = 0; index < __pCalllogGroupList->GetCount(); index++) + { + pGroupInfo = static_cast(__pCalllogGroupList->GetAt(index)); + if(pGroupInfo != null) + { + pCalllogList = pGroupInfo->GetLogData(); + if(pCalllogList != null) + { + pCalllogList->Sort(cmp); + } + + } + } + + } + +} + +void +CallLogManager::SortCalllogListByNumber(void) +{ + LogListByNumberComparer cmp; + __pCalllogListByNumber->Sort(cmp); +} + +String* +CallLogManager::GetLatestCallLogFromDbN(void) +{ + String* latestNumber = null; + bool found = false; + if(__bDbDirty == true) + { + AppLogDebug("__bDbDirty == true"); + UpdateCallLogList(); + } + if (__pCalllogGroupList != null) + { + GroupItemClass* pGroupInfo; + CallLogDetails* pLatestCallLog; + ArrayList* callLogList; + int groupCount = __pCalllogGroupList->GetCount(); + int count; + for(int index = 0; index < groupCount; index++) + { + found = false; + pGroupInfo = static_cast(__pCalllogGroupList->GetAt(index)); + callLogList = pGroupInfo->GetLogData(); + count = callLogList->GetCount(); + for(int i = 0; i < count; i++) + { + pLatestCallLog = static_cast(callLogList->GetAt(i)); + if(pLatestCallLog->GetPhoneNumber() == null) + { + continue; + } + if(!(IsVoiceCall(pLatestCallLog))) + { + continue; + } + latestNumber = new String(pLatestCallLog->GetPhoneNumber()); + if(CheckNumberIsValid(*latestNumber)) + { + found = true; + break; + } + else + { + latestNumber = null; + } + } + if(found == true) + { + break; + } + } + } + + return latestNumber; +} + +bool +CallLogManager::IsVoiceCall(CallLogDetails* pLatestCallLog) +{ + contacts_record_h record; + + Tizen::Base::Collection::ArrayList* dbIds = pLatestCallLog->GetCallLogDbIds(); + if(dbIds == null) + { + switch(pLatestCallLog->GetCalllogType()) + { + case CALL_LOG_TYPE_VOICE_INCOMING: + case CALL_LOG_TYPE_VOICE_OUTGOING: + case CALL_LOG_TYPE_VOICE_MISSED: + case CALL_LOG_TYPE_VOICE_MISSED_UNSEEN: + case CALL_LOG_TYPE_VOICE_REJECTED: + case CALL_LOG_TYPE_VOICE_BLOCKED: + { + return true; + } + break; + + default: + { + return false; + } + } + } + else + { + int dbIdCount = dbIds->GetCount(); + for(int index = 0; index < dbIdCount; ++index) + { + Integer* in = (Integer*)dbIds->GetAt(index); + int recordId = in->ToInt(); + int res = contacts_db_get_record(_contacts_phone_log._uri, recordId, &record); + if(res == CONTACTS_ERROR_NONE) + { + contacts_phone_log_type_e logType = CONTACTS_PLOG_TYPE_NONE; + contacts_record_get_int(record,_contacts_phone_log.log_type,(int*)&logType); + + switch(logType) + { + case CONTACTS_PLOG_TYPE_VOICE_INCOMMING: + case CONTACTS_PLOG_TYPE_VOICE_OUTGOING: + case CONTACTS_PLOG_TYPE_VOICE_INCOMMING_UNSEEN: + case CONTACTS_PLOG_TYPE_VOICE_INCOMMING_SEEN: + case CONTACTS_PLOG_TYPE_VOICE_REJECT: + case CONTACTS_PLOG_TYPE_VOICE_BLOCKED: + { + return true; + } + break; + + default: + { + break; + } + } + } + } + } + + return false; +} + +bool +CallLogManager::CheckNumberIsValid(String phoneNumber) +{ + //Pattern to compare all characters except 0-9 * # P ; , + + String phoneNumberPattern(L"[^0-9*#P,p+;]"); + RegularExpression checkPhoneNumber; + checkPhoneNumber.Construct(phoneNumberPattern); + //If there is any character other than these listed above then display invalid number + bool resultMatch = checkPhoneNumber.Match(phoneNumber,false); + //return false for patterns other than 0-9 * # P ; , + + if(resultMatch == true) + { + //return phone number is invalid + return false; + } + + return true; + +} + +ArrayList* CallLogManager::GetCallLogGroups() +{ + return __pCalllogGroupList; +} + +void CallLogManager::AddCalllogChangeListener(ICalllogChangeListener& listner ) +{ + if(!__pCalllogChangeListerners->Contains(&listner)) + __pCalllogChangeListerners->Add(&listner); + +} + +void CallLogManager::RemoveCalllogChangeListner(ICalllogChangeListener& listner) +{ + __pCalllogChangeListerners->Remove(&listner); +} + +void CallLogManager::GetCalllogContactName(String number,String& name) +{ + + ByteBuffer* pByteBuffer; + char * charname=NULL; + pByteBuffer = StringUtil::StringToUtf8N(number); + + contacts_filter_h filter=NULL; + contacts_list_h list=NULL; + contacts_query_h query = NULL; + unsigned int count = 0; + + if(number.Contains(L"@")) + { + contacts_filter_create(_contacts_contact_email._uri,&filter); + contacts_filter_add_str(filter,_contacts_contact_email.email,CONTACTS_MATCH_EXACTLY,(const char*)pByteBuffer->GetPointer()); + contacts_query_create(_contacts_contact_email._uri,&query); + contacts_query_set_filter(query,filter); + } + else + { + contacts_filter_create(_contacts_contact_number._uri,&filter); + contacts_filter_add_str(filter,_contacts_contact_number.number,CONTACTS_MATCH_EXACTLY,(const char*)pByteBuffer->GetPointer()); + contacts_query_create(_contacts_contact_number._uri,&query); + contacts_query_set_filter(query,filter); + } + + int ret = contacts_db_get_records_with_query(query,0,0,&list); + if (ret != 0) + { + contacts_filter_destroy(filter); + contacts_query_destroy(query); + return ; + } + + contacts_filter_destroy(filter); + contacts_query_destroy(query); + + + contacts_list_get_count(list,&count); + AppLogDebug("%d",count); + if(count > 0) + { + contacts_record_h getrec=0; + contacts_list_first(list); + contacts_list_get_current_record_p(list,&getrec); + + contacts_record_get_str(getrec,_contacts_contact_number.display_name,&charname); + AppLogDebug("%s",charname); + if(charname) + { + String buffer(charname); + name.Clear(); + name.Append(buffer); + + } + contacts_record_destroy(getrec,true); + } + delete pByteBuffer; +} + +void CallLogManager::ContactsDbchangedcb(const char* view_uri, void* user_data) +{ + AppLogDebug("Enter"); + CallLogManager* pCallLogMgr = (CallLogManager*) user_data; + if(pCallLogMgr == null || view_uri == null) + { + AppLogDebug("return"); + return; + } + + if(String(view_uri).Equals(String(_contacts_phone_log._uri)) == true) + { + pCallLogMgr->ResetAndNotifyCalllogData(); + } +} + +void +CallLogManager::UpDateMissedCallSeenStatus(CallLogDetails* pDetails) +{ + contacts_record_h record; + int res = contacts_db_get_record(_contacts_phone_log._uri, pDetails->GetCalllogDbId(), &record); + if(res == CONTACTS_ERROR_NONE) + { + if(pDetails->GetCalllogType() == CALL_LOG_TYPE_VOICE_MISSED_UNSEEN) + { + contacts_record_set_int(record,_contacts_phone_log.log_type,CONTACTS_PLOG_TYPE_VOICE_INCOMMING_SEEN); + pDetails->SetCalllogType(CONTACTS_PLOG_TYPE_VOICE_INCOMMING_SEEN); + res = contacts_db_update_record(record); + AppLogDebug("contacts_db_update_record %d",res); + } + } +} + +void +CallLogManager::setCallLogViewbyID(CallLogType id) +{ + __callLogViewbyID = id; +} + +CallLogType +CallLogManager::getCallLogViewbyID() +{ + return __callLogViewbyID; +} + + +bool +CallLogManager::GetDirtyFlag(void) +{ + return __bDbDirty; +} + + +contacts_phone_log_type_e +CallLogManager::GetCallLogType(CallLogType type) +{ + contacts_phone_log_type_e callLogType = CONTACTS_PLOG_TYPE_MAX; + switch (type) + { + case CALL_LOG_TYPE_VOICE_INCOMING: + callLogType = CONTACTS_PLOG_TYPE_VOICE_INCOMMING; + break; + + case CALL_LOG_TYPE_VOICE_OUTGOING: + callLogType = CONTACTS_PLOG_TYPE_VOICE_OUTGOING; + break; + + case CALL_LOG_TYPE_VOICE_MISSED: + callLogType = CONTACTS_PLOG_TYPE_VOICE_INCOMMING_SEEN; + break; + + case CALL_LOG_TYPE_VOICE_MISSED_UNSEEN: + callLogType = CONTACTS_PLOG_TYPE_VOICE_INCOMMING_UNSEEN; + break; + + case CALL_LOG_TYPE_VOICE_REJECTED: + callLogType = CONTACTS_PLOG_TYPE_VOICE_REJECT; + break; + + case CALL_LOG_TYPE_VOICE_BLOCKED: + callLogType = CONTACTS_PLOG_TYPE_VOICE_BLOCKED; + break; + + default: + break; + } + + return callLogType; +} + + + +GroupItemClass::GroupItemClass() +{ + __pData = null; +} + +GroupItemClass::~GroupItemClass() +{ + +/* if(__pData) + { + delete __pData; + }*/ +} + +void +GroupItemClass::SetTitleText(String titleText) +{ + __titleText = titleText; +} + +void +GroupItemClass::SetLogData(ArrayList* pData) +{ + __pData = pData; +} + +String +GroupItemClass::GetTitleText(void) +{ + return __titleText; +} + +ArrayList* +GroupItemClass::GetLogData(void) +{ + return __pData; +} + + diff --git a/src/PhnCommonUtils.cpp b/src/PhnCommonUtils.cpp new file mode 100644 index 0000000..8e2c810 --- /dev/null +++ b/src/PhnCommonUtils.cpp @@ -0,0 +1,999 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file CommonUtils.cpp + * @brief commonly used functions + */ + +#include +#include +#include +#include "PhnAppUtility.h" +#include "PhnCommonUtils.h" + +using namespace Tizen::App; +using namespace Tizen::Base; +using namespace Tizen::Graphics; +using namespace Tizen::Ui::Controls; +using namespace Tizen::Base::Collection; + +const int ID_NAME_STRING = 100; +const int ID_NUMBER_STRING = 101; +const int ID_TIME_STRING = 102; +const int ID_CONTACT_BITMAP = 103; +const int ID_CALLTYPE_BITMAP = 104; +const int ID_NAME_STRING_COUNTER = 105; +const int ID_LOGCALL_BITMAP = 50; +const int ID_NAME_STRING_FONT_SIZE = 44; +static const int X_LIST_DISPNAME = 26; +static const int Y_LIST_DISPNAME = 22; +static const int X_LIST_NUMBER = 26; +static const int Y_LIST_NUMBER = 76;//22+54; + +const int X_TEXT_LINE1_ITEM = 16; +const int Y_TEXT_LINE1_ITEM = 10; +const int H_TEXT_LINE1_ITEM = 60; +const int W_TEXT_LINE1_ITEM = 560; +const int W_TEXT_LINE1_ITEM_RIGHT_MARGIN = 170; +const int W_TEXT_LINE1_ITEM_COUNTER = 80; + +const int X_TEXT_LINE2_ITEM = 64; +const int Y_TEXT_LINE2_ITEM = 70; +const int H_TEXT_LINE2_ITEM = 48; +const int W_TEXT_LINE2_ITEM = 256; +const int W_TEXT_LINE2_ITEM_RIGHT_MARGIN = 230; +const int W_TEXT_LINE2_ITEM_RIGHT_MARGIN_DELETE = 96; + +const int X_TEXT_TIME_ITEM = 440; +const int Y_TEXT_TIME_ITEM = 70; +const int H_TEXT_TIME_ITEM = 48; +const int W_TEXT_TIME_ITEM = 256; +const int X_TEXT_TIME_ITEM_RIGHT_MARGIN = 280; + +const int X_CONTACT_BITMAP_ITEM = 592; +const int Y_CONTACT_BITMAP_ITEM = 0; +const int H_CONTACT_BITMAP_ITEM = 177; +const int W_CONTACT_BITMAP_ITEM = 177; + +const int X_CALLTYPE_BITMAP_ITEM = 16; +const int Y_CALLTYPE_BITMAP_ITEM = 70 + 8; +const int H_CALLTYPE_BITMAP_ITEM = 32; +const int W_CALLTYPE_BITMAP_ITEM = 32; + +//New Keypad Button Images for numbers +const int X_DIALER_BTN_IMG = 0; +const int Y_DIALER_BTN_IMG = 10; + +//Call Patch Coordinates +const int X_CALL_PATCH = 36; +const int Y_CALL_PATCH = 18; +const int W_CALL_PATCH = 444; +const int H_CALL_PATCH = 104; + +//Clear Button Patch Coordinates +const int X_CLEAR_PATCH = 0; +const int Y_CLEAR_PATCH = 18; +const int W_CLEAR_PATCH = 180; +const int H_CLEAR_PATCH = 104; + +const int X_LOGCALL_BITMAP_ITEM = 660; +const int Y_LOGCALL_BITMAP_ITEM = 10; +const int W_LOGCALL_BITMAP_ITEM = 38; +const int H_LOGCALL_BITMAP_ITEM = 38; +const int X_LOGCALL_BITMAP_RIGHT_MARGIN = 60; + +const int X_DIALER_BTN_TXT = 13; +const int W_DIALER_BTN_NUM_TXT = 77; +const int W_DIALER_BTN_ALPHA_TXT = 121; + +const int W_ENRICHED_TEXT = 190; +const int X_ENRICHED_TEXT = 143; +const int IDI_RIGHT_MARGIN_USE_CONTACT_BTN = 160; +const int H_USE_CONTACT_BTN = 60; + +Font* +DialUtil::GetTextFontN(int textFontStyle) +{ + Font* font = new (std::nothrow) Font(); + + switch (textFontStyle) + { + case FONT_CALLING_TEXT: + { + font->Construct(FONT_STYLE_PLAIN, 94); + } + break; + + case FONT_SEARCH_TEXT: + { + font->Construct(FONT_STYLE_PLAIN, 36); + } + break; + + case FONT_KEYPAD_NUMBER: + { + font->Construct(FONT_STYLE_PLAIN, 116); + } + break; + + case FONT_KEYPAD_TEXT: + { + font->Construct(FONT_STYLE_PLAIN, 28); + } + break; + + case FONT_KEYPAD_P: + { + font->Construct(FONT_STYLE_PLAIN, 28); + } + break; + + case FONT_KEYPAD_PLUS: + { + font->Construct(FONT_STYLE_PLAIN, 40); + } + break; + + case FONT_KEYPAD_CANCEL: + { + font->Construct(FONT_STYLE_PLAIN, 34); + } + break; + + case FONT_SUGGESTION_NAME: + { + font->Construct(FONT_STYLE_PLAIN, 44); + } + break; + + case FONT_SUGGESTION_MOBILE: + { + font->Construct(FONT_STYLE_PLAIN, 35); + } + break; + + case FONT_SUGGESTION_NUMBER: + { + font->Construct(FONT_STYLE_PLAIN, 32); + } + break; + + case FONT_SUGGESTION_LIST_NUMBER: + { + font->Construct(FONT_STYLE_PLAIN, 40); + } + break; + case FONT_EXPAND_BUTTON_TEXT: + { + font->Construct(FONT_STYLE_PLAIN, 30); + } + break; + case FONT_SPEEDDIAL_BTN_NUMBER: + { + font->Construct(FONT_STYLE_BOLD, 86); + } + break; + } + return font; +} + +Color* +DialUtil::GetTextColorN(int textColor, int buttonStatus) +{ + Color* color = new (std::nothrow) Color(); + + if (buttonStatus == BUTTON_STATUS_PRESSED) + { + //color->SetColorComponents(249, 249, 249); + color->SetColorComponents(145, 135, 114); + return color; + } + + switch (textColor) + { + case FONT_CALLING_TEXT: + { + color->SetColorComponents(0, 0, 0); + } + break; + + case FONT_SEARCH_TEXT: + { + color->SetColorComponents(156, 159, 162); + } + break; + + case FONT_SPEEDDIAL_BTN_NUMBER: + case FONT_KEYPAD_NUMBER: + { + color->SetColorComponents(255, 255, 255); + } + break; + + case FONT_KEYPAD_TEXT: + case FONT_KEYPAD_P: + case FONT_KEYPAD_PLUS: + { + color->SetColorComponents(145, 135, 114); + } + break; + + case FONT_KEYPAD_CANCEL: + { + color->SetColorComponents(255, 255, 255); + } + break; + + case FONT_SUGGESTION_NAME: + { + color->SetColorComponents(0, 0, 0); + } + break; + + case FONT_SUGGESTION_MOBILE: + { + color->SetColorComponents(153, 153, 153); + } + break; + + case FONT_HIGHLIGHT_SEARCH_KEYWORD: + { + color->SetColorComponents(59, 115, 182); + } + break; + case FONT_SUGGESTION_NUMBER: + { + color->SetColorComponents(153, 153, 153); + } + break; + + case FONT_SUGGESTION_LIST_NUMBER: + { + color->SetColorComponents(50, 50, 50); + } + break; + case FONT_EXPAND_BUTTON_TEXT: + { + color->SetColorComponents(50, 50, 50); + } + break; + } + return color; +} + +bool +DialUtil::IsNumericString(Tizen::Base::String& keyWord) +{ + bool isDigit = false; + String digitStr(L""); + if(keyWord.SubString(0,1,digitStr) == E_SUCCESS) + { + int digit; + if(Integer::Parse(digitStr,digit) == E_SUCCESS) + { + isDigit = true; + } + } + return isDigit; +} +void +DialUtil::DrawBitmapToCanvas(Tizen::Graphics::Canvas& pCanvas, const Tizen::Base::String& bgImg) +{ + AppResource* pAppResource = AppResource::GetInstance(); + Bitmap* pBitmap = pAppResource->GetBitmapN(bgImg); + if(pBitmap != null) + { + pCanvas.DrawBitmap(pCanvas.GetBounds(),*pBitmap); + delete pBitmap; + } +} + +void +DialUtil::DrawClear9PatchToCanvas(Tizen::Graphics::Canvas& pCanvas, const Tizen::Base::String& bgImg) +{ + AppResource* pAppResource = AppResource::GetInstance(); + Bitmap* pBitmap = pAppResource->GetBitmapN(bgImg); + if (pBitmap->IsNinePatchedBitmap()) + { + pCanvas.DrawNinePatchedBitmap(Rectangle(X_CLEAR_PATCH,Y_CLEAR_PATCH,W_CLEAR_PATCH,H_CLEAR_PATCH), *pBitmap); + } + pCanvas.DrawBitmap(Rectangle(X_CLEAR_PATCH,Y_CLEAR_PATCH, W_CLEAR_PATCH, H_CLEAR_PATCH), *pBitmap); + delete pBitmap; + +} + +void +DialUtil::DrawCall9PatchToCanvas(Tizen::Graphics::Canvas& pCanvas, const Tizen::Base::String& bgImg) +{ + AppResource* pAppResource = AppResource::GetInstance(); + Bitmap* pBitmap = pAppResource->GetBitmapN(bgImg); + if (pBitmap->IsNinePatchedBitmap()) + { + pCanvas.DrawNinePatchedBitmap(Rectangle(X_CALL_PATCH,Y_CALL_PATCH,W_CALL_PATCH,H_CALL_PATCH), *pBitmap); + } + pCanvas.DrawBitmap(Rectangle(X_CALL_PATCH,Y_CALL_PATCH, W_CALL_PATCH, H_CALL_PATCH), *pBitmap); + delete pBitmap; + +} + +void +DialUtil::Draw9PatchToCanvas(Canvas& pCanvas, const String& bgImg) +{ + AppResource* pAppResource = AppResource::GetInstance(); + Bitmap* pBitmap = pAppResource->GetBitmapN(bgImg); + + pBitmap->GetWidth(); + if (pBitmap->IsNinePatchedBitmap()) + { + pCanvas.DrawNinePatchedBitmap(pCanvas.GetBounds(), *pBitmap); + } + else + { + pCanvas.DrawBitmap(pCanvas.GetBounds(),*pBitmap); + } + delete pBitmap; + + return; +} + + +void +DialUtil::DrawKeypadImageToCanvas(const Tizen::Base::String& image, Tizen::Graphics::Dimension imageDimention, Tizen::Graphics::Canvas& pCanvas, int pos) +{ + //create and scale bitmap + Bitmap* pBitmap = AppUtility::GetBitmapFromResourcesN(image, imageDimention.width, imageDimention.height); + //Find position to draw bitmap + Point bitmapPos(0, 0); + + switch(pos) + { + case POSITION_TOP_CENTER: + { + bitmapPos.SetPosition((pCanvas.GetBounds().width - pBitmap->GetWidth()) / 2,Y_DIALER_BTN_IMG); + } + break; + case POSITION_BOTTOM_CENTER: + { + //bitmapPos.SetPosition(X_DIALER_BTN_IMG,Y_DIALER_BTN_IMG); + bitmapPos.SetPosition((pCanvas.GetBounds().width - pBitmap->GetWidth()) / 2, 20 + pCanvas.GetBounds().height / 2 + (pCanvas.GetBounds().height / 2 - pBitmap->GetHeight()) / 2); + } + break; + } + + pCanvas.DrawBitmap(Rectangle(bitmapPos, Dimension(pBitmap->GetWidth(), pBitmap->GetHeight())), *pBitmap); + delete pBitmap; + pBitmap = null; + + return; + +} + + + + +void +DialUtil::DrawImageToCanvas(const String& image, Dimension imageDimention, Canvas& pCanvas, int pos) +{ + //create and scale bitmap + Bitmap* pBitmap = AppUtility::GetBitmapFromResourcesN(image, imageDimention.width, imageDimention.height); + + //Find position to draw bitmap + Point bitmapPos(0, 0); + switch (pos) + { + case POSITION_LEFT: + { + bitmapPos.SetPosition(X_DIALER_BTN_TXT + (W_DIALER_BTN_NUM_TXT - pBitmap->GetWidth()) / 2, (pCanvas.GetBounds().height - pBitmap->GetHeight()) / 2); + } + break; + + case POSITION_RIGHT: + { + bitmapPos.SetPosition(X_DIALER_BTN_TXT + W_DIALER_BTN_NUM_TXT + ((W_DIALER_BTN_ALPHA_TXT - pBitmap->GetWidth()) / 2), (pCanvas.GetBounds().height - pBitmap->GetHeight()) / 2); + } + break; + + case POSITION_CENTER: + { + bitmapPos.SetPosition((pCanvas.GetBounds().width - pBitmap->GetWidth()) / 2, (pCanvas.GetBounds().height - pBitmap->GetHeight()) / 2); + } + break; + + case POSITION_BOTTOM_CENTER: + { + bitmapPos.SetPosition((pCanvas.GetBounds().width - pBitmap->GetWidth()) / 2, pCanvas.GetBounds().height / 2 + (pCanvas.GetBounds().height / 2 - pBitmap->GetHeight()) / 2); + } + break; + } + + //draw bitmap + pCanvas.DrawBitmap(Rectangle(bitmapPos, Dimension(pBitmap->GetWidth(), pBitmap->GetHeight())), *pBitmap); + delete pBitmap; + pBitmap = null; + + return; +} + +void +DialUtil::DrawKeypadTextToCanvas(const String& buttonText, int textFontStyle, Canvas& pCanvas, int pos, int buttonStatus) +{ + AppLogDebug("ENTER"); + if (buttonText == null) + { + return; + } + + //get text font + Font* font = GetTextFontN(textFontStyle); + + //get text color + Color* textColor = GetTextColorN(textFontStyle, buttonStatus); + + //create text element + TextElement* pTextElement = new (std::nothrow) TextElement(); + pTextElement->Construct(buttonText); + pTextElement->SetTextColor(*textColor); + pTextElement->SetFont(*font); + delete textColor; + + //get dimensions of the text + FloatDimension textDimension; + font->GetTextExtent(buttonText, buttonText.GetLength(), textDimension); + if(textFontStyle != FONT_KEYPAD_NUMBER) + { + textDimension.height += font->GetDescender(); + } + + //create enriched text + EnrichedText* pEnrichedText = new (std::nothrow) EnrichedText(); + pEnrichedText->Construct(textDimension); + pEnrichedText->Add(*pTextElement); + + //set the position of the text in canvas + Point textPos(0, 0); + switch (pos) + { + case POSITION_BOTTOM_CENTER: + { + textPos.SetPosition(((pCanvas.GetBounds().width - pEnrichedText->GetWidth()) / 2), + 20 + pCanvas.GetBounds().height / 2 + + ((pCanvas.GetBounds().height / 2 + - pEnrichedText->GetHeight()) / 2)); + } + break; + } + + //Draw EnrichedText to canvas + pCanvas.DrawText(textPos, *pEnrichedText); + + // Cleans up + pEnrichedText->RemoveAll(true); + delete pEnrichedText; + delete font; + + AppLogDebug("EXIT"); + return; +} + +void +DialUtil::DrawTextToCanvas(const String& buttonText, int textFontStyle, Canvas& pCanvas, int pos, int buttonStatus) +{ + if (buttonText == null) + { + return; + } + + //get text font + Font* font = GetTextFontN(textFontStyle); + + //get text color + Color* textColor = GetTextColorN(textFontStyle, buttonStatus); + + //create text element + TextElement* pTextElement = new (std::nothrow) TextElement(); + pTextElement->Construct(buttonText); + pTextElement->SetTextColor(*textColor); + pTextElement->SetFont(*font); + delete textColor; + + //get dimensions of the text + FloatDimension textDimension; + font->GetTextExtent(buttonText, buttonText.GetLength(), textDimension); + if(textFontStyle != FONT_KEYPAD_NUMBER) + { + textDimension.height += font->GetDescender(); + } + + //create enriched text + EnrichedText* pEnrichedText = new (std::nothrow) EnrichedText(); + pEnrichedText->Construct(textDimension); + pEnrichedText->Add(*pTextElement); + + //set the position of the text in canvas + Point textPos(0, 0); + switch (pos) + { + case POSITION_LEFT: + { + //Margin 13, rectangle for left text (13,0,77, height of canvas), center aligned + textPos.SetPosition(X_DIALER_BTN_TXT + ((W_DIALER_BTN_NUM_TXT - pEnrichedText->GetWidth()) / 2), (pCanvas.GetBounds().height - pEnrichedText->GetHeight()) / 2); + } + break; + + case POSITION_RIGHT: + { + //rectangle for right text (13+77,0, 121, height of canvas), center aligned + textPos.SetPosition(X_DIALER_BTN_TXT + W_DIALER_BTN_NUM_TXT + ((121 - pEnrichedText->GetWidth()) / 2), (pCanvas.GetBounds().height - pEnrichedText->GetHeight()) / 2); + } + break; + + case POSITION_CENTER: + { + //rectangle for image : entire canvas, center aligned + textPos.SetPosition((pCanvas.GetBounds().width - pEnrichedText->GetWidth()) / 2, (pCanvas.GetBounds().height - pEnrichedText->GetHeight()) / 2); + } + break; + + case POSITION_TOP_LEFT: + { + textPos.SetPosition(10, (pCanvas.GetBounds().height / 2 - pEnrichedText->GetHeight()) / 2); + } + break; + + case POSITION_TOP_CENTER: + { + textPos.SetPosition((pCanvas.GetBounds().width - pEnrichedText->GetWidth()) / 2, (pCanvas.GetBounds().height / 2 - pEnrichedText->GetHeight()) / 2); + } + break; + + case POSITION_BOTTOM_LEFT: + { + textPos.SetPosition(10, pCanvas.GetBounds().height / 2 + ((pCanvas.GetBounds().height / 2 - pEnrichedText->GetHeight()) / 2)); + } + break; + + case POSITION_BOTTOM_CENTER: + { + int width = pEnrichedText->GetWidth(); + if(width > W_ENRICHED_TEXT) + { + textPos.SetPosition(X_ENRICHED_TEXT, pCanvas.GetBounds().height / 2 + ((pCanvas.GetBounds().height / 2 - pEnrichedText->GetHeight()) / 2)); + } + else + { + textPos.SetPosition(10 + ((pCanvas.GetBounds().width - pEnrichedText->GetWidth()) / 2), pCanvas.GetBounds().height / 2 + ((pCanvas.GetBounds().height / 2 - pEnrichedText->GetHeight()) / 2)); + } + + } + break; + case POSITION_SUGGESTION_NAME: + { + textPos.SetPosition(X_LIST_DISPNAME,Y_LIST_DISPNAME); + } + break; + case POSITION_SUGGESTION_NUMBER: + { + textPos.SetPosition(X_LIST_NUMBER,Y_LIST_NUMBER); + } + break; + } + + + //Draw EnrichedText to canvas + pCanvas.DrawText(textPos, *pEnrichedText); + + // Cleans up + pEnrichedText->RemoveAll(true); + delete pEnrichedText; + delete font; + + AppLogDebug("EXIT"); + return; +} + +void +DialUtil::DrawCanvasToButton(Canvas* pCanvasNormal, Canvas* pCanvasPressed, Button* pButton) +{ + Bitmap* pNormalBgBmp = new (std::nothrow) Bitmap(); + pNormalBgBmp->Construct(*pCanvasNormal, pCanvasNormal->GetBounds()); + + pButton->SetNormalBackgroundBitmap(*pNormalBgBmp); + + if (pCanvasPressed != null) + { + Bitmap* pPressedBgBmp = new (std::nothrow) Bitmap(); + pPressedBgBmp->Construct(*pCanvasPressed, pCanvasPressed->GetBounds()); + pButton->SetPressedBackgroundBitmap(*pPressedBgBmp); + delete pPressedBgBmp; + pPressedBgBmp = null; + } + else + { + pButton->SetPressedBackgroundBitmap(*pNormalBgBmp); + } + + pButton->SetDisabledBitmap(Point(0, 0), *pNormalBgBmp); + pButton->Invalidate(true); + delete pNormalBgBmp; + pNormalBgBmp = null; + + return; +} + +String +DialUtil::ConvertDialedNumberToString(int dialNumber) +{ + switch (dialNumber) + { + case NUM_KEY1: + { + return L"1"; + } + case NUM_KEY2: + { + return L"2"; + } + case NUM_KEY3: + { + return L"3"; + } + case NUM_KEY4: + { + return L"4"; + } + case NUM_KEY5: + { + return L"5"; + } + case NUM_KEY6: + { + return L"6"; + } + case NUM_KEY7: + { + return L"7"; + } + case NUM_KEY8: + { + return L"8"; + } + case NUM_KEY9: + { + return L"9"; + } + break; + case NUM_KEY0: + { + return L"0"; + } + break; + case HASH_KEY: + { + return L"#"; + } + break; + case PAUSE_KEY: + { + return L";"; + } + break; + case WAIT_KEY: + { + return L","; + } + break; + case STAR_KEY: + { + return L"*"; + } + break; + case PLUS_KEY: + { + return L"+"; + } + break; + } + return null; +} + +IList* +DialUtil::FetchPossibleNamesListN(const String& prevSearchStr, int nextDigit) +{ + //Fetch matching names for mapping char for digit, e.g. 2->ABC, 3->DEF. + ArrayList* pNamesList = new (std::nothrow) ArrayList(SingleObjectDeleter); + pNamesList->Construct(8); + + if(nextDigit >=2 && nextDigit <= 9) + { + switch(nextDigit) + { + case 2: + { + pNamesList->Add((new String(prevSearchStr+L"a"))); + pNamesList->Add((new String(prevSearchStr+L"b"))); + pNamesList->Add((new String(prevSearchStr+L"c"))); + pNamesList->Add((new String(prevSearchStr+L"A"))); + pNamesList->Add((new String(prevSearchStr+L"B"))); + pNamesList->Add((new String(prevSearchStr+L"C"))); + } + break; + + case 3: + { + pNamesList->Add((new String(prevSearchStr+L"d"))); + pNamesList->Add((new String(prevSearchStr+L"e"))); + pNamesList->Add((new String(prevSearchStr+L"f"))); + pNamesList->Add((new String(prevSearchStr+L"D"))); + pNamesList->Add((new String(prevSearchStr+L"E"))); + pNamesList->Add((new String(prevSearchStr+L"F"))); + } + break; + + case 4: + { + pNamesList->Add((new String(prevSearchStr+L"g"))); + pNamesList->Add((new String(prevSearchStr+L"h"))); + pNamesList->Add((new String(prevSearchStr+L"i"))); + pNamesList->Add((new String(prevSearchStr+L"G"))); + pNamesList->Add((new String(prevSearchStr+L"H"))); + pNamesList->Add((new String(prevSearchStr+L"I"))); + } + break; + + case 5: + { + pNamesList->Add((new String(prevSearchStr+L"j"))); + pNamesList->Add((new String(prevSearchStr+L"k"))); + pNamesList->Add((new String(prevSearchStr+L"l"))); + pNamesList->Add((new String(prevSearchStr+L"J"))); + pNamesList->Add((new String(prevSearchStr+L"K"))); + pNamesList->Add((new String(prevSearchStr+L"L"))); + } + break; + + case 6: + { + pNamesList->Add((new String(prevSearchStr+L"m"))); + pNamesList->Add((new String(prevSearchStr+L"n"))); + pNamesList->Add((new String(prevSearchStr+L"o"))); + pNamesList->Add((new String(prevSearchStr+L"M"))); + pNamesList->Add((new String(prevSearchStr+L"N"))); + pNamesList->Add((new String(prevSearchStr+L"O"))); + } + break; + + case 7: + { + pNamesList->Add((new String(prevSearchStr+L"p"))); + pNamesList->Add((new String(prevSearchStr+L"q"))); + pNamesList->Add((new String(prevSearchStr+L"r"))); + pNamesList->Add((new String(prevSearchStr+L"s"))); + pNamesList->Add((new String(prevSearchStr+L"P"))); + pNamesList->Add((new String(prevSearchStr+L"Q"))); + pNamesList->Add((new String(prevSearchStr+L"R"))); + pNamesList->Add((new String(prevSearchStr+L"S"))); + } + break; + + case 8: + { + pNamesList->Add((new String(prevSearchStr+L"t"))); + pNamesList->Add((new String(prevSearchStr+L"u"))); + pNamesList->Add((new String(prevSearchStr+L"v"))); + pNamesList->Add((new String(prevSearchStr+L"T"))); + pNamesList->Add((new String(prevSearchStr+L"U"))); + pNamesList->Add((new String(prevSearchStr+L"V"))); + } + break; + + case 9: + { + pNamesList->Add((new String(prevSearchStr+L"w"))); + pNamesList->Add((new String(prevSearchStr+L"x"))); + pNamesList->Add((new String(prevSearchStr+L"y"))); + pNamesList->Add((new String(prevSearchStr+L"z"))); + pNamesList->Add((new String(prevSearchStr+L"W"))); + pNamesList->Add((new String(prevSearchStr+L"X"))); + pNamesList->Add((new String(prevSearchStr+L"Y"))); + pNamesList->Add((new String(prevSearchStr+L"Z"))); + } + break; + + } + } + return pNamesList; +} + +void +DialUtil::ConvertNameToNumericKeys(String& subContactName, String& possibleKeysTyped) +{ + for(int charPos=0;charPos < subContactName.GetLength();charPos++) + { + wchar_t nextChar; + subContactName.GetCharAt(charPos,nextChar); + switch(nextChar) + { + case 'a':case 'A': + case 'b':case 'B': + case 'c':case 'C': + possibleKeysTyped.Append(2); + break; + + case 'd':case 'D': + case 'e':case 'E': + case 'f':case 'F': + possibleKeysTyped.Append(3); + break; + + case 'g':case 'G': + case 'h':case 'H': + case 'i':case 'I': + possibleKeysTyped.Append(4); + break; + + case 'j':case 'J': + case 'k':case 'K': + case 'l':case 'L': + possibleKeysTyped.Append(5); + break; + + case 'm':case 'M': + case 'n':case 'N': + case 'o':case 'O': + possibleKeysTyped.Append(6); + break; + + case 'p':case 'P': + case 'q':case 'Q': + case 'r':case 'R': + case 's':case 'S': + possibleKeysTyped.Append(7); + break; + + case 't':case 'T': + case 'u':case 'U': + case 'v':case 'V': + possibleKeysTyped.Append(8); + break; + + case 'w':case 'W': + case 'x':case 'X': + case 'y':case 'Y': + case 'z':case 'Z': + possibleKeysTyped.Append(9); + break; + + default: + break; + } + } +} + +EnrichedText* +DialUtil::ConstructEnrichedTextN(String& text, String& matchedKeyword, int textFontStyle, Dimension txtDimension) +{ + //get text font + Font* fontName = DialUtil::GetTextFontN(textFontStyle); + //get text color + Color* textColor = DialUtil::GetTextColorN(textFontStyle, BUTTON_STATUS_NORMAL); + //highlighted text Color + Color* highlightedTxtColor = DialUtil::GetTextColorN(FONT_HIGHLIGHT_SEARCH_KEYWORD, BUTTON_STATUS_NORMAL); + + EnrichedText* pEnrichedName = new (std::nothrow) EnrichedText(); + pEnrichedName->Construct(txtDimension); + pEnrichedName->SetTextWrapStyle(TEXT_WRAP_NONE); + //Text is divided in 3 parts - pre-text, highlighted matchedKeyword, post-text. + String preTxt(L""); + String highlightTxt(L""); + String postTxt(L""); + if(matchedKeyword.IsEmpty() == false) + { + int searchIndex; + result r = text.IndexOf(matchedKeyword,0,searchIndex); + if(r == E_SUCCESS) + { + if(searchIndex > 0) + { + text.SubString(0,searchIndex,preTxt); + } + text.SubString(searchIndex, matchedKeyword.GetLength(),highlightTxt); + text.SubString((searchIndex + matchedKeyword.GetLength()),postTxt); + } + else + { + preTxt = text; + } + } + + TextElement* pTextName = null; + if(preTxt.IsEmpty() == false) + { + //create text element + pTextName = new (std::nothrow) TextElement(); + pTextName->Construct(preTxt); + pTextName->SetFont(*fontName); + pTextName->SetTextColor(*textColor); + //ownership of 'pTextName' transferred to 'pEnrichedName' + pEnrichedName->Add(*pTextName); + } + + if(highlightTxt.IsEmpty() == false) + { + //create text element + pTextName = new (std::nothrow) TextElement(); + pTextName->Construct(highlightTxt); + pTextName->SetFont(*fontName); + // Highlighted search text + pTextName->SetTextColor(*highlightedTxtColor); + pEnrichedName->Add(*pTextName); + } + + if(postTxt.IsEmpty() == false) + { + //create text element + pTextName = new (std::nothrow) TextElement(); + pTextName->Construct(postTxt); + pTextName->SetFont(*fontName); + pTextName->SetTextColor(*textColor); + pEnrichedName->Add(*pTextName); + } + + delete fontName; + delete textColor; + delete highlightedTxtColor; + + return pEnrichedName; +} + +void +DialUtil::DrawTextAndHighlightedKeywordToCanvas(String& buttonText, String& matchedKeyword, int textFontStyle, Canvas& pCanvas, int pos) +{ + if (buttonText == null) + { + return; + } + + //Convert to enriched text with highlighted keyword + Dimension txtDimension (pCanvas.GetBounds().width - IDI_RIGHT_MARGIN_USE_CONTACT_BTN, H_USE_CONTACT_BTN); + EnrichedText* pEnrichedText = ConstructEnrichedTextN(buttonText, matchedKeyword, textFontStyle, txtDimension); + + //set the position of the text in canvas + Point textPos(0, 0); + switch (pos) + { + case POSITION_SUGGESTION_NAME: + { + textPos.SetPosition(X_LIST_DISPNAME,Y_LIST_DISPNAME); + } + break; + + case POSITION_SUGGESTION_NUMBER: + { + textPos.SetPosition(X_LIST_NUMBER,Y_LIST_NUMBER); + } + break; + } + + //Draw EnrichedText to canvas + pCanvas.DrawText(textPos, *pEnrichedText); + // Cleans up + pEnrichedText->RemoveAll(true); + delete pEnrichedText; + + AppLogDebug("EXIT"); + return; +} diff --git a/src/PhnDialAppForm.cpp b/src/PhnDialAppForm.cpp new file mode 100644 index 0000000..5d2a56f --- /dev/null +++ b/src/PhnDialAppForm.cpp @@ -0,0 +1,170 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file DlAppForm.cpp + * @brief The Dial application form + */ + +#include +#include "PhnCommonUtils.h" +#include "PhnDialAppForm.h" +#include "PhnPhoneApp.h" +#include "PhnSceneRegister.h" +#include "PhnTypes.h" +#include "PhnTabDialer.h" +#include "PhnTabLogs.h" + +using namespace Tizen::Base; +using namespace Tizen::App; +using namespace Tizen::Ui; +using namespace Tizen::Ui::Controls; +using namespace Tizen::Ui::Scenes; + +const int DialAppForm::ID_HEADER_DIALER = 101; +const int DialAppForm::ID_HEADER_LOGS = 103; +static const wchar_t* IDL_DIAL_FORM = L"IDL_DIAL_FORM"; + +DialAppForm::DialAppForm(void) +{ +} + +DialAppForm::~DialAppForm(void) +{ +} + +bool +DialAppForm::Initialize(void) +{ + Construct(IDL_DIAL_FORM); + + return true; +} + +result +DialAppForm::OnInitializing(void) +{ + result r = E_SUCCESS; + + Header* pHeader = GetHeader(); + pHeader->SetTabEditModeEnabled(false); + pHeader->AddActionEventListener(*this); + // Setup back event listener + SetFormBackEventListener(this); + SetFormMenuEventListener(this); + return r; +} + +result +DialAppForm::OnTerminating(void) +{ + SetFormBackEventListener(null); + return E_SUCCESS; +} + +void +DialAppForm::OnActionPerformed(const Control& source, int actionId) +{ + SceneManager* pSceneManager = SceneManager::GetInstance(); + AppAssert(pSceneManager); + + PhoneApp* pPhoneApp = static_cast(UiApp::GetInstance()); + switch (actionId) + { + case ID_HEADER_DIALER: + { + pSceneManager->GoForward( ForwardSceneTransition(IDSCN_DIALER, SCENE_TRANSITION_ANIMATION_TYPE_NONE, + SCENE_HISTORY_OPTION_NO_HISTORY)); + pPhoneApp->SetInitialScene(IDSCN_DIALER); + } + break; + + case ID_HEADER_LOGS: + { + pSceneManager->GoForward( ForwardSceneTransition(IDSCN_CALL_LOG, SCENE_TRANSITION_ANIMATION_TYPE_NONE, + SCENE_HISTORY_OPTION_NO_HISTORY)); + pPhoneApp->SetInitialScene(IDSCN_CALL_LOG); + } + break; + + default: + break; + } +} + +void +DialAppForm::OnFormBackRequested(Form& source) +{ + //if this is launched as normal application, then exit. + AppLog("Enter"); + SceneManager* pSceneManager = SceneManager::GetInstance(); + if(pSceneManager == null) + { + return; + } + DialTabDialer *tabDialer = null; + DialTabLogs *tabLogs = null; + + if(pSceneManager->GetCurrentSceneId() == IDSCN_DIALER) + { + tabDialer = dynamic_cast(pSceneManager->GetCurrentScene()->GetPanel()); + if(tabDialer != null) + { + tabDialer->HandleFormBackRequest(); + } + } + else if(pSceneManager->GetCurrentSceneId() == IDSCN_CALL_LOG) + { + tabLogs = dynamic_cast(pSceneManager->GetCurrentScene()->GetPanel()); + if(tabLogs != null) + { + tabLogs->HandleFormBackRequest(); + } + } +} + +void +DialAppForm::OnFormMenuRequested(Controls::Form& source) +{ + AppLog("Enter"); + SceneManager* pSceneManager = SceneManager::GetInstance(); + if(pSceneManager == null) + { + return; + } + DialTabDialer *tabDialer = null; + DialTabLogs *tabLogs = null; + + if(pSceneManager->GetCurrentSceneId() == IDSCN_DIALER) + { + AppLogDebug("GetCurrentSceneId() == IDSCN_DIALER"); + tabDialer = dynamic_cast(pSceneManager->GetCurrentScene()->GetPanel()); + if(tabDialer != null) + { + tabDialer->ShowOptionsMenu(); + } + } + else if(pSceneManager->GetCurrentSceneId() == IDSCN_CALL_LOG) + { + AppLogDebug("GetCurrentSceneId() == IDSCN_CALL_LOG"); + tabLogs = dynamic_cast(pSceneManager->GetCurrentScene()->GetPanel()); + if(tabLogs != null) + { + tabLogs->ShowOptionsMenu(); + } + } + AppLog("Exit"); +} diff --git a/src/PhnDialContactInfo.cpp b/src/PhnDialContactInfo.cpp new file mode 100644 index 0000000..d4d4648 --- /dev/null +++ b/src/PhnDialContactInfo.cpp @@ -0,0 +1,257 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnDialContactInfo.cpp + * @brief Dial Contact Info class + */ +#include "PhnDialContactInfo.h" + +using namespace Tizen::Base; +using namespace Tizen::Graphics; +using namespace Tizen::Social; +using namespace Tizen::Base::Collection; + +DialContactInfo::DialContactInfo(void) { + __pDisplayName = null; + __pPhoneNumber = null; + __pThumbnail = null; + __pSearchKeyList = null; + //By default, value is '0' - indicates it is not fetched from call logs + __callLogDbId = 0; +} + +DialContactInfo* +DialContactInfo::CloneN(void) +{ + //Used to create new 'DialContactInfo' object which is clone of 'this' object. + //We cant use Copy Contructor, since we will need 2-phase constructor in this case. + + result r = E_SUCCESS; + DialContactInfo* cloneObj = new (std::nothrow) DialContactInfo(); + cloneObj->__pDisplayName = new (std::nothrow) String(*this->__pDisplayName); + cloneObj->__pPhoneNumber = new (std::nothrow) String(*this->__pPhoneNumber); + + //Thumbnail + if(this->__pThumbnail != null) + { + Bitmap& pSrcTn = *(this->__pThumbnail); + cloneObj->__pThumbnail = new (std::nothrow) Bitmap(); + r = cloneObj->__pThumbnail->Construct( pSrcTn, Rectangle(0, 0, pSrcTn.GetWidth(), pSrcTn.GetHeight())); + } + TryCatch(r == E_SUCCESS,,"Object Cloning failed"); + + //list of search key. + if(this->__pSearchKeyList != null && this->__pSearchKeyList->GetCount() > 0) + { + cloneObj->__pSearchKeyList = new (std::nothrow) ArrayList(SingleObjectDeleter); + r = cloneObj->__pSearchKeyList->Construct(); + TryCatch(r == E_SUCCESS,,"Object Cloning failed"); + + for (int index = 0; index < this->__pSearchKeyList->GetCount(); index++) + { + String* key = static_cast(this->__pSearchKeyList->GetAt(index)); + r = cloneObj->__pSearchKeyList->Add(new (std::nothrow) String(*key)); + TryCatch(r == E_SUCCESS,,"Object Cloning failed"); + } + } + + return cloneObj; + CATCH: + //failed + delete cloneObj; + cloneObj = null; + return cloneObj; +} + +DialContactInfo::~DialContactInfo(void) { + if(__pDisplayName != null) + { + delete __pDisplayName; + } + if(__pPhoneNumber != null) + { + delete __pPhoneNumber; + } + if(__pSearchKeyList != null) + { + __pSearchKeyList->RemoveAll(); + delete __pSearchKeyList; + } + if(__pThumbnail != null) + { + delete __pThumbnail; + } +} + +bool +DialContactInfo::Equals(const Object& obj) const +{ + DialContactInfo* objInfo = dynamic_cast(const_cast(&obj)); + if(objInfo != null && __recordID == objInfo->GetRecodrdId()) + { + return true; + } + else + { + return false; + } + /*if(objInfo != null && __pPhoneNumber->Equals(objInfo->GetPhoneNumber())) + { + return true; + } + return false;*/ + + +} + +void +DialContactInfo::AddSearchKey(String& pSearchString) +{ + if(__pSearchKeyList == null) + { + __pSearchKeyList = new (std::nothrow) ArrayList(SingleObjectDeleter); + __pSearchKeyList->Construct(); + } + __pSearchKeyList->Add(new (std::nothrow) String(pSearchString)); +} + +void +DialContactInfo::RemoveSearchKey(int index) +{ + if(__pSearchKeyList != null && index >= 0 && index < __pSearchKeyList->GetCount()) + { + __pSearchKeyList->RemoveAt(index); + } +} + +void +DialContactInfo::ReplaceSearchKey(int index, String& pSearchString) +{ + if(__pSearchKeyList != null && (index >= 0 && index < __pSearchKeyList->GetCount())) + { + __pSearchKeyList->RemoveAt(index); + __pSearchKeyList->InsertAt(new String(pSearchString),index); + } +} + +IList* +DialContactInfo::GetSearchKeyList(void) +{ + return __pSearchKeyList; +} + +String* +DialContactInfo::GetSearchKey(void) +{ + if(__pSearchKeyList != null && __pSearchKeyList->GetCount() > 0) + { + return (static_cast(__pSearchKeyList->GetAt(0))); + } + return null; +} + +void +DialContactInfo::SetDisplayName(String& pDisplayName) +{ + if(__pDisplayName != null) + { + delete __pDisplayName; + } + __pDisplayName = new (std::nothrow) String(pDisplayName); +} + +String& +DialContactInfo::GetDisplayName(void) const +{ + return *__pDisplayName; +} + +void +DialContactInfo::SetPhoneNumber(String& pPhoneNumber) +{ + if(__pPhoneNumber != null) + { + delete __pPhoneNumber; + } + __pPhoneNumber = new (std::nothrow) String(pPhoneNumber); +} + +String& +DialContactInfo::GetPhoneNumber(void) const +{ + return *__pPhoneNumber; +} + +void +DialContactInfo::SetThumbnail(Bitmap* pBitmap) +{ + if(__pThumbnail != null) + { + delete __pThumbnail; + __pThumbnail = null; + } + + if(pBitmap != null) + { + __pThumbnail = pBitmap; + __pThumbnail->SetScalingQuality(BITMAP_SCALING_QUALITY_MID); + __pThumbnail->Scale(Dimension(96, 96)); + } +} + +Bitmap* +DialContactInfo::GetThumbnailN(void) const +{ + Bitmap* pThumbnail = null; + result r = E_FAILURE; + if(__pThumbnail != null) + { + pThumbnail = new (std::nothrow) Bitmap(); + r = pThumbnail->Construct( *__pThumbnail, Rectangle(0, 0, __pThumbnail->GetWidth(), + __pThumbnail->GetHeight())); + TryCatch(r == E_SUCCESS,,"[%s] Thumbnail contruction failed", GetErrorMessage(r)); + } + return pThumbnail; + +CATCH: + delete pThumbnail; + return null; +} + +void +DialContactInfo::SetCallLogDbId(int callLogDbId) +{ + __callLogDbId = callLogDbId; +} + +int +DialContactInfo::GetCallLogDbId(void) +{ + return __callLogDbId; +} + +void +DialContactInfo::SetRecordId(Tizen::Social::RecordId recordID) +{ + __recordID = recordID; +} + +RecordId +DialContactInfo::GetRecodrdId(void) +{ + return __recordID; +} diff --git a/src/PhnDialPresentationModel.cpp b/src/PhnDialPresentationModel.cpp new file mode 100644 index 0000000..57068f7 --- /dev/null +++ b/src/PhnDialPresentationModel.cpp @@ -0,0 +1,362 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnDialPresentationModel.cpp + * @brief Dial presentation model class + */ +#include +#include +#include "PhnAppUtility.h" +#include "PhnCalllogManager.h" +#include "PhnCommonUtils.h" +#include "PhnDialContactInfo.h" +#include "PhnDialPresentationModel.h" +#include "PhnPhoneApp.h" +#include "PhnSettingsManager.h" +#include "PhnTabDialer.h" +#include "PhnTypes.h" + +using namespace Tizen::App; +using namespace Tizen::Base; +using namespace Tizen::Base::Collection; +using namespace Tizen::Base::Runtime; +using namespace Tizen::Social; +using namespace Tizen::Telephony; + +DialPresentationModel::DialPresentationModel(DialTabDialer& parentPanel) : __parentDialerPanel(parentPanel) +{ + AppLogDebug("ENTER"); + __pNumberSuggestionList = null; + __pSearchString = null; + __pSettingsManager = null; + __pAsyncSearchTask = null; + __pSearchThread = null; + __mutex.Create(); + AppLogDebug("EXIT"); +} + +DialPresentationModel::~DialPresentationModel() +{ + AppLogDebug("ENTER"); + AppControl::StopAppControlResponseListener(this); + ClearSearchResults(); + if (__pSearchThread != null) + { + AppLogDebug("__pSearchThread != null"); + //Wait until the previous thread finished execution. + //otherwise "start_thread()" crashes. + __pSearchThread->Join(); + delete __pSearchThread; + __pSearchThread = null; + delete __pAsyncSearchTask; + __pAsyncSearchTask = null; + } + + AppLogDebug("EXIT"); +} + +void +DialPresentationModel::ClearSearchResults(void) +{ + if(__pNumberSuggestionList != null) + { + __mutex.Acquire(); + __pNumberSuggestionList->RemoveAll(); + delete __pNumberSuggestionList; + __pNumberSuggestionList = null; + __mutex.Release(); + } + if(__pSearchString != null) + { + delete __pSearchString; + __pSearchString = null; + } +} + +bool +DialPresentationModel::FetchSuggestionList(const String& searchString) +{ + bool newSearch = false; + if (__pSearchThread != null) + { + //Wait until the previous thread finished execution. + //otherwise "start_thread()" crashes. + __pSearchThread->Join(); + delete __pSearchThread; + __pSearchThread = null; + delete __pAsyncSearchTask; + __pAsyncSearchTask = null; + } + + result r = E_SUCCESS; + __pAsyncSearchTask = new (std::nothrow) RetrieveContactsListTask( *this); + //check if this search string is subset of previous search string + if(__pSearchString != null && searchString.StartsWith(*__pSearchString,0)) + { + newSearch = false; + __pSearchString->Clear(); + __pSearchString->Append(searchString); + __mutex.Acquire(); + r = __pAsyncSearchTask->Construct(*__pSearchString, __pNumberSuggestionList); + __mutex.Release(); + } + else + { + newSearch = true; + __pSearchString = new (std::nothrow) String(searchString); + r = __pAsyncSearchTask->Construct(*__pSearchString, null); + } + TryCatch(r == E_SUCCESS,,"Async Task construction failed"); + + //Start Async Task to search for contacts, call logs, Speed dial. + __pSearchThread = new (std::nothrow) Thread(); + r = __pSearchThread->Construct(*__pAsyncSearchTask); + TryCatch(r == E_SUCCESS,,"Thread construction failed"); + r = __pSearchThread->Start(); + TryCatch(r == E_SUCCESS,,"Failed to start Thread"); + + return newSearch; + +CATCH: + //clear previous search results + ClearSearchResults(); + delete __pAsyncSearchTask; + __pAsyncSearchTask = null; + delete __pSearchThread; + __pSearchThread = null; + return true; +} + +void +DialPresentationModel::HandleContactsRetrievalCompleted(IList* pContactsList) +{ + __mutex.Acquire(); + if(__pNumberSuggestionList != null) + { + __pNumberSuggestionList->RemoveAll(); + delete __pNumberSuggestionList; + __pNumberSuggestionList = null; + } + + if(pContactsList != null && pContactsList->GetCount() > 0) + { + //Taking Ownership of List. + __pNumberSuggestionList = static_cast(pContactsList); + + //inform Tab Dialer to update view. + DialContactInfo* pDialInfo = null; + //Fetch the contact's info at a given index + if (__pNumberSuggestionList != null && __pNumberSuggestionList->GetCount() > 0) + { + pDialInfo = static_cast(__pNumberSuggestionList->GetAt(0)); + } + + if(pDialInfo != null) + { + //send first search result + ArrayList* pArgs = new (std::nothrow) ArrayList(SingleObjectDeleter); + pArgs->Construct(); + + //Send display name, mobile number, matched search string and result count. + String* argDisplayName = new (std::nothrow) String(); + argDisplayName->Append(pDialInfo->GetDisplayName()); + pArgs->Add(argDisplayName); + + String* argMobilNum = new (std::nothrow) String(); + argMobilNum->Append(pDialInfo->GetPhoneNumber()); + pArgs->Add(argMobilNum); + + String* argSearchString = new (std::nothrow) String(); + argSearchString->Append(*(pDialInfo->GetSearchKey())); + pArgs->Add(argSearchString); + + //fetch total no. of results + String* argResCount = new (std::nothrow) String(); + argResCount->Append(__pNumberSuggestionList->GetCount()); + pArgs->Add(argResCount); + __parentDialerPanel.SendUserEvent(REQUEST_SHOW_SUGGESTION,pArgs); + } + } + else + { + //remove old search key + if(__pSearchString != null) + { + delete __pSearchString; + __pSearchString = null; + } + //Show "Add to contact" + __parentDialerPanel.SendUserEvent(REQUEST_SHOW_ADD_TO_CONTACTS,null); + //empty list + delete pContactsList; + pContactsList = null; + } + __mutex.Release(); +} + +DialContactInfo* +DialPresentationModel::GetSuggestionAtIndex(int index) +{ + DialContactInfo* pDialInfo = null; + __mutex.Acquire(); + //Fetch the contact's info at a given index + if (__pNumberSuggestionList != null + && __pNumberSuggestionList->GetCount() > 0 + && (index >= 0 && index < __pNumberSuggestionList->GetCount())) + { + pDialInfo = static_cast(__pNumberSuggestionList->GetAt(index)); + } + __mutex.Release(); + return pDialInfo; +} + +int +DialPresentationModel::GetNumberOfSuggestions(void) +{ + int resultCount = 0; + if(__pNumberSuggestionList != null) + { + __mutex.Acquire(); + resultCount = __pNumberSuggestionList->GetCount(); + __mutex.Release(); + } + return resultCount; +} + +String* +DialPresentationModel::FetchSpeedDialNumberN(int rowId) +{ + if(__pSettingsManager == null) + { + __pSettingsManager = SettingsManager::GetInstance(); + } + return __pSettingsManager->GetMappedSpeedDialNumberN(rowId); +} + +String* +DialPresentationModel::FetchLatestNumberFromLogsN(void) +{ + String* pRetString = CallLogManager::GetInstance()->GetLatestCallLogFromDbN(); + return pRetString; +} + +result +DialPresentationModel::LaunchAddContactsAppControl(String& contactNumber) +{ + result r = E_FAILURE; + HashMap extraData; + extraData.Construct(); + + extraData.Add(new (std::nothrow) String(INPUT_TYPE_PHONE), new (std::nothrow) String(contactNumber)); + extraData.Add(new (std::nothrow) String(CONTACT_KEY_ITEM_TYPE), new (std::nothrow) String(ITEM_TYPE_CONTACT)); + AppControl* pAc = AppManager::FindAppControlN(PROVIDER_ID_CONTACTS, OPERATION_ID_ADD); + if (pAc != null) + { + r = pAc->Start(null, null, &extraData, this); + delete pAc; + } + + extraData.RemoveAll(true); + return r; +} + +ErrorCodes +DialPresentationModel::DialCall(const String& contactNumber) +{ + AppLogDebug("ENTER"); + result r = E_FAILURE; + r = LaunchCallAppControl(contactNumber); + if (r == E_SUCCESS) + { + return ERROR_NONE; + } + else + { + return ERROR_DIAL_FAILED; + } +} + +result +DialPresentationModel::LaunchCallAppControl(const String& contactNumber) +{ + result r = E_FAILURE; + + AppLogDebug("Enter"); + HashMap extraData; + extraData.Construct(); + extraData.Add(new (std::nothrow) String(PARAM_PHONE_NUMBER), new (std::nothrow) String(contactNumber)); + extraData.Add(new (std::nothrow) String(PARAM_CALL_TYPE), new (std::nothrow) String(PARAM_CALL_VALUE_VOICE)); + + AppControl* pAppControl = AppManager::FindAppControlN(PROVIDER_ID_CALL, OPERATION_ID_CALL); + if (pAppControl != null) + { + r = pAppControl->Start(null, null, &extraData, null); + delete pAppControl; + } + + extraData.RemoveAll(true); + AppLogDebug("Exit"); + return r; +} + +result +DialPresentationModel::OpenMessagingAppControl(String& contactNumber) +{ + //launch message + result r = E_SUCCESS; + String uri = L"sms:"; + uri.Append(contactNumber); + r = AppControl::FindAndStart(OPERATION_ID_COMPOSE,&uri,null,null,null,this); + /*HashMap extraData; + extraData.Construct(); + + extraData.Add(new (std::nothrow) String(MESSAGE_TYPE), new (std::nothrow) String(MESSAGE_SMS_TYPE)); + extraData.Add(new (std::nothrow) String(MESSAGE_TO), new (std::nothrow) String(contactNumber));*/ + + /*AppControl* pAc = AppManager::FindAppControlN(PROVIDER_ID_MESSAGE, OPERATION_ID_COMPOSE); + if (pAc != null) + { + r = pAc->Start(null, null, &extraData, this); + delete pAc; + } + extraData.RemoveAll(true);*/ + + return r; +} + +void +DialPresentationModel::OnAppControlCompleteResponseReceived(const AppId& appId, const String& operationId, AppCtrlResult appControlResult, const IMap* pExtraData) +{ + //reset 'isAppControlLaunched' + AppLogDebug("Enter"); +// __parentDialerPanel.SetAppControlLaunched(false); + + if (appId.Equals(String(PROVIDER_ID_CONTACTS)) && operationId.Equals(String(OPERATION_ID_ADD))) + { + if (appControlResult == APP_CTRL_RESULT_SUCCEEDED) + { + //delete search string to start new search + if(__pSearchString != null) + { + delete __pSearchString; + __pSearchString = null; + } + //Fetch latest added contact and show in suggestion list. + __parentDialerPanel.UpdateSearchResults(); + } + } +} diff --git a/src/PhnDialerKeypad.cpp b/src/PhnDialerKeypad.cpp new file mode 100644 index 0000000..8290687 --- /dev/null +++ b/src/PhnDialerKeypad.cpp @@ -0,0 +1,541 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnDialerKeypad.cpp + * @brief Dial Contact Info class + */ +#include "PhnDialerKeypad.h" +#include "PhnAppUtility.h" +#include "PhnCommonUtils.h" +#include "PhnPhoneApp.h" +#include "PhnTabDialer.h" +#include "PhnTypes.h" + +using namespace Tizen::App; +using namespace Tizen::Base; +using namespace Tizen::Ui; +using namespace Tizen::Graphics; +using namespace Tizen::Ui::Controls; +using namespace Tizen::Base::Collection; + +//Constants +const wchar_t* IDC_BUTTON_KEYPADCALL = L"IDC_BUTTON_CALL"; +const wchar_t* IDC_BUTTON_KEYPADCLEAR = L"IDC_BUTTON_CLEAR"; +const wchar_t* IDC_BUTTON_NAME = L"IDC_BUTTON"; +const int W_VOICEMAIL_ICON = 50; +const int H_VOICEMAIL_ICON = 40; +const int W_STAR_ICON = 218; +const int H_STAR_ICON = 90; +const int W_MUTE_ICON = 50; +const int H_MUTE_ICON = 40; +const int W_VIDEOCALL_ICON = 76; +const int H_VIDEOCALL_ICON = 76; +const int W_CALL_ICON = 76; +const int H_CALL_ICON = 76; +const int W_CLEAR_ICON = 76; +const int H_CLEAR_ICON = 44; +const int X_CALL_KEY = 12; +const int MAX_SLIDEDOWN_PIXELS = 110; + +//Button Image width and height +const int W_KEYPAD_BUTTON = 218; +const int H_KEYPAD_BUTTON = 90; +const int TOP_MARGIN = 33; + +DialerKeypad::DialerKeypad(DialerState openedState) : Panel() +{ + __openedState = openedState; + __pParentActionListener = null; + __pParentLongTapListener = null; + __pLongPressDetectors = null; + __pParentTouchListner = null; +} + +DialerKeypad::~DialerKeypad(void) +{ + if(__pLongPressDetectors != null) + { + __pLongPressDetectors->RemoveAll(); + delete __pLongPressDetectors; + } +} + +result +DialerKeypad::OnDraw(void) +{ + result r = E_SUCCESS; + return r; +} + +void +DialerKeypad::AddListenersToLastRowButtons() +{ + //Get Control of the buttons + Button* pCallButton = static_cast(GetParent()->GetControl(IDC_BUTTON_KEYPADCALL, true)); + Button* pClearButton = static_cast(GetParent()->GetControl(IDC_BUTTON_KEYPADCLEAR, true)); + + //Set Action ID for each of the buttons + pCallButton->SetActionId(CALL_KEY); + pClearButton->SetActionId(CLEAR_KEY); + + //Add Action Listeners to control the action events + if(__pParentActionListener != null) + { + pCallButton->AddActionEventListener(*__pParentActionListener); + pClearButton->AddActionEventListener(*__pParentActionListener); + } + + //Add Long Press detector for the clear key + TouchLongPressGestureDetector* pLongPressDetector = new (std::nothrow) TouchLongPressGestureDetector(); + pLongPressDetector->Construct(); + pLongPressDetector->SetCancelTouchEventOnSuccessEnabled(true); + pLongPressDetector->AddLongPressGestureEventListener(*__pParentLongTapListener); + pClearButton->AddGestureDetector(pLongPressDetector); + __pLongPressDetectors->Add(pLongPressDetector); + + //Add Long Press detector for the Call key + TouchLongPressGestureDetector* pLongPressCallDetector = new (std::nothrow) TouchLongPressGestureDetector(); + pLongPressCallDetector->Construct(); + pLongPressCallDetector->SetCancelTouchEventOnSuccessEnabled(true); + pLongPressCallDetector->AddLongPressGestureEventListener(*__pParentLongTapListener); + pCallButton->AddGestureDetector(pLongPressCallDetector); + __pLongPressDetectors->Add(pLongPressCallDetector); + +} + +bool +DialerKeypad::ConstructPanel(IActionEventListener* pActionListener, + ITouchLongPressGestureEventListener* pLongTapListener,ITouchEventListener* pTouchListner) +{ + result r = E_FAILURE; + + TryCatch(pActionListener != null,,"pActionListener is null"); + TryCatch(pLongTapListener != null,,"pLongTapListener is null"); + + //set parent panel which acts as action listener + __pParentActionListener = pActionListener; + __pParentLongTapListener = pLongTapListener; + __pParentTouchListner = pTouchListner; + + r = Construct(IDL_DIALER_KEYPAD_PANEL); + TryCatch(r == E_SUCCESS, , "Panel::Construct() failed"); + + //Add action listener and long press gesture listeners. + AddListenersToButtons(); + return true; +CATCH: + return false; +} + +result +DialerKeypad::OnInitializing(void) +{ + result r = E_SUCCESS; + if(__openedState == DIALER_STATE_EMERGENCY_APPCONTROL) + { + //reset size and position for emergency dial form + Rectangle rect = GetBounds(); + rect.y = rect.y + MAX_SLIDEDOWN_PIXELS; + r = SetBounds(rect); + } + + RelativeLayout* pRelativeLayout = dynamic_cast(GetParent()->GetLandscapeLayoutN()); + Label* pKeypadBgLbl = static_cast(GetParent()->GetControl(L"IDC_LABEL_KEYPAD", true)); + if (pRelativeLayout != null) + { + pRelativeLayout->SetRelation(*this, pKeypadBgLbl, RECT_EDGE_RELATION_LEFT_TO_LEFT); + pRelativeLayout->SetRelation(*this, pKeypadBgLbl, RECT_EDGE_RELATION_RIGHT_TO_RIGHT); + pRelativeLayout->SetRelation(*this, pKeypadBgLbl, RECT_EDGE_RELATION_TOP_TO_TOP); + pRelativeLayout->SetRelation(*this, pKeypadBgLbl, RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM); + delete pRelativeLayout; + } + + pRelativeLayout = dynamic_cast(GetParent()->GetPortraitLayoutN()); + if (pRelativeLayout != null) + { + pRelativeLayout->SetHorizontalFitPolicy(*this, FIT_POLICY_PARENT); + pRelativeLayout->SetRelation(*this, pKeypadBgLbl, RECT_EDGE_RELATION_TOP_TO_TOP); + pRelativeLayout->SetMargin(*this,0,0,TOP_MARGIN,0); + + Panel* pLastRowPanel = static_cast(GetParent()->GetControl(IDC_PANEL_LASTROW, true)); + pRelativeLayout->SetRelation(*this, pLastRowPanel, RECT_EDGE_RELATION_BOTTOM_TO_TOP); + delete pRelativeLayout; + } + + return r; +} + +void +DialerKeypad::SetKeypadTone(bool enable) +{ + for (int i = 1; i <= 12; i++) + { + //initialize buttons and add action listener + String buttonName(IDC_BUTTON_NAME); + buttonName.Append(i); + Button* pButton = static_cast(GetControl(buttonName, true)); + if(pButton == null) + { + continue; + } + + if (enable == false) + { + AppLogDebug("__openedState == DIALER_STATE_ADD_CALL_APPCONTROL"); + pButton->SetEffectSoundEnabled(false); + } + else + { + AppLogDebug("__openedState == DIALER_STATE_FIRST_SCENE"); + pButton->SetEffectSoundEnabled(true); + } + } +} + +void +DialerKeypad::AddListenersToButtons(void) +{ + //Construct array to store LongPress touch detectors + __pLongPressDetectors = new (std::nothrow) ArrayList(SingleObjectDeleter); + __pLongPressDetectors->Construct(14); + for (int i = 1; i <= 12; i++) + { + //initialize buttons and add action listener + String buttonName(IDC_BUTTON_NAME); + buttonName.Append(i); + Button* pButton = static_cast(GetControl(buttonName, true)); + if(pButton == null) + { + continue; + } + pButton->SetActionId(i); + SetControlAlwaysOnTop(*pButton,true); + + //Add Listeners + if(__pParentActionListener != null) + { + pButton->AddActionEventListener(*__pParentActionListener); + } + + if(__pParentLongTapListener != null) + { + //If __openedState is Emergency Call AppControl then add LongPress detector for only 'CLEAR_KEY'. + if ( (i == NUM_KEY1 && (IsShowVoiceMailIcon() == true)) + || ((i >= NUM_KEY2 && i <= HASH_KEY) && (__openedState != DIALER_STATE_EMERGENCY_APPCONTROL)) + || (i == CLEAR_KEY) ) + { + //Construct and Add gesture detector to "0-9,P,#,Clear" buttons + TouchLongPressGestureDetector* pLongPressDetector = new (std::nothrow) TouchLongPressGestureDetector(); + pLongPressDetector->Construct(); + pLongPressDetector->SetCancelTouchEventOnSuccessEnabled(true); + pLongPressDetector->AddLongPressGestureEventListener(*__pParentLongTapListener); + pButton->AddGestureDetector(*pLongPressDetector); + //stored in an array list + __pLongPressDetectors->Add(pLongPressDetector); + } + } + } +} + +void +DialerKeypad::SetBitmapToKeypadButtons(void) +{ + AppLogDebug("ENTER"); + + //NOTE:- Since "pButton->GetHeight()" works fine for only 1st button in landscape mode, + //and for subsequent buttons(2->9), it returns 0.This causes blank bitmap issue,e.g, N_SE-33113. + //SO, we are using button width and height for only first button and use same rect for other butons. + String firstbutton(IDC_BUTTON_NAME); + firstbutton.Append(1); + Button* pFirstButton = static_cast(GetControl(firstbutton, true)); + Rectangle canvasRect(0, 0, pFirstButton->GetWidth(), pFirstButton->GetHeight()); + + //Create the buttons of the keypad + for (int i = 1; i <= 14; i++) + { + //initialize buttons and add action listener + String buttonName(IDC_BUTTON_NAME); + buttonName.Append(i); + Button* pButton = static_cast(GetControl(buttonName, true)); + if(pButton == null) + { + continue; + } + + //Draw text/image and background in a canvas and add it to the button + Canvas* pCanvasNormal = new (std::nothrow) Canvas(); + pCanvasNormal->Construct(canvasRect); + Canvas* pCanvasPressed = new (std::nothrow) Canvas(); + pCanvasPressed->Construct(canvasRect); + + String number(DialUtil::ConvertDialedNumberToString(pButton->GetActionId())); + Dimension imageDim(W_KEYPAD_BUTTON, H_KEYPAD_BUTTON); + switch (pButton->GetActionId()) + { + case NUM_KEY1: + { + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_01ICON, imageDim, *pCanvasNormal, POSITION_TOP_CENTER); + //Set canvas for pressed state of the button + DialUtil::DrawBitmapToCanvas(*pCanvasPressed, IDB_KEYPAD_PRESSICON); + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_01ICON, imageDim, *pCanvasPressed, POSITION_TOP_CENTER); + if(IsShowVoiceMailIcon() == true) + { + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_VOICEMAILICON, Dimension(W_VOICEMAIL_ICON, H_VOICEMAIL_ICON), *pCanvasNormal, POSITION_BOTTOM_CENTER); + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_VOICEMAILICON, Dimension(W_VOICEMAIL_ICON, H_VOICEMAIL_ICON), *pCanvasPressed, POSITION_BOTTOM_CENTER); + } + } + break; + + case NUM_KEY2: + { + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_02ICON, imageDim, *pCanvasNormal, POSITION_TOP_CENTER); + DialUtil::DrawKeypadTextToCanvas(IDI_KEY2_TXT, FONT_KEYPAD_TEXT, *pCanvasNormal, POSITION_BOTTOM_CENTER, BUTTON_STATUS_NORMAL); + DialUtil::DrawBitmapToCanvas(*pCanvasPressed, IDB_KEYPAD_PRESSICON); + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_02ICON, imageDim, *pCanvasPressed, POSITION_TOP_CENTER); + DialUtil::DrawKeypadTextToCanvas(IDI_KEY2_TXT, FONT_KEYPAD_TEXT, *pCanvasPressed, POSITION_BOTTOM_CENTER, BUTTON_STATUS_PRESSED); + } + break; + + case NUM_KEY3: + { + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_03ICON, imageDim, *pCanvasNormal, POSITION_TOP_CENTER); + DialUtil::DrawKeypadTextToCanvas(IDI_KEY3_TXT, FONT_KEYPAD_TEXT, *pCanvasNormal, POSITION_BOTTOM_CENTER, BUTTON_STATUS_NORMAL); + DialUtil::DrawBitmapToCanvas(*pCanvasPressed, IDB_KEYPAD_PRESSICON); + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_03ICON, imageDim, *pCanvasPressed, POSITION_TOP_CENTER); + DialUtil::DrawKeypadTextToCanvas(IDI_KEY3_TXT, FONT_KEYPAD_TEXT, *pCanvasPressed, POSITION_BOTTOM_CENTER, BUTTON_STATUS_PRESSED); + } + break; + + case NUM_KEY4: + { + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_04ICON, imageDim, *pCanvasNormal, POSITION_TOP_CENTER); + DialUtil::DrawKeypadTextToCanvas(IDI_KEY4_TXT, FONT_KEYPAD_TEXT, *pCanvasNormal, POSITION_BOTTOM_CENTER, BUTTON_STATUS_NORMAL); + DialUtil::DrawBitmapToCanvas(*pCanvasPressed, IDB_KEYPAD_PRESSICON); + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_04ICON, imageDim, *pCanvasPressed, POSITION_TOP_CENTER); + DialUtil::DrawKeypadTextToCanvas(IDI_KEY4_TXT, FONT_KEYPAD_TEXT, *pCanvasPressed, POSITION_BOTTOM_CENTER, BUTTON_STATUS_PRESSED); + } + break; + + case NUM_KEY5: + { + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_05ICON, imageDim, *pCanvasNormal, POSITION_TOP_CENTER); + DialUtil::DrawKeypadTextToCanvas(IDI_KEY5_TXT, FONT_KEYPAD_TEXT, *pCanvasNormal, POSITION_BOTTOM_CENTER, BUTTON_STATUS_NORMAL); + DialUtil::DrawBitmapToCanvas(*pCanvasPressed, IDB_KEYPAD_PRESSICON); + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_05ICON, imageDim, *pCanvasPressed, POSITION_TOP_CENTER); + DialUtil::DrawKeypadTextToCanvas(IDI_KEY5_TXT, FONT_KEYPAD_TEXT, *pCanvasPressed, POSITION_BOTTOM_CENTER, BUTTON_STATUS_PRESSED); + } + break; + + case NUM_KEY6: + { + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_06ICON, imageDim, *pCanvasNormal, POSITION_TOP_CENTER); + DialUtil::DrawKeypadTextToCanvas(IDI_KEY6_TXT, FONT_KEYPAD_TEXT, *pCanvasNormal, POSITION_BOTTOM_CENTER, BUTTON_STATUS_NORMAL); + DialUtil::DrawBitmapToCanvas(*pCanvasPressed, IDB_KEYPAD_PRESSICON); + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_06ICON, imageDim, *pCanvasPressed, POSITION_TOP_CENTER); + DialUtil::DrawKeypadTextToCanvas(IDI_KEY6_TXT, FONT_KEYPAD_TEXT, *pCanvasPressed, POSITION_BOTTOM_CENTER, BUTTON_STATUS_PRESSED); + } + break; + + case NUM_KEY7: + { + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_07ICON, imageDim, *pCanvasNormal, POSITION_TOP_CENTER); + DialUtil::DrawKeypadTextToCanvas(IDI_KEY7_TXT, FONT_KEYPAD_TEXT, *pCanvasNormal, POSITION_BOTTOM_CENTER, BUTTON_STATUS_NORMAL); + DialUtil::DrawBitmapToCanvas(*pCanvasPressed, IDB_KEYPAD_PRESSICON); + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_07ICON, imageDim, *pCanvasPressed, POSITION_TOP_CENTER); + DialUtil::DrawKeypadTextToCanvas(IDI_KEY7_TXT, FONT_KEYPAD_TEXT, *pCanvasPressed, POSITION_BOTTOM_CENTER, BUTTON_STATUS_PRESSED); + } + break; + + case NUM_KEY8: + { + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_08ICON, imageDim, *pCanvasNormal, POSITION_TOP_CENTER); + DialUtil::DrawKeypadTextToCanvas(IDI_KEY8_TXT, FONT_KEYPAD_TEXT, *pCanvasNormal, POSITION_BOTTOM_CENTER, BUTTON_STATUS_NORMAL); + DialUtil::DrawBitmapToCanvas(*pCanvasPressed, IDB_KEYPAD_PRESSICON); + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_08ICON, imageDim, *pCanvasPressed, POSITION_TOP_CENTER); + DialUtil::DrawKeypadTextToCanvas(IDI_KEY8_TXT, FONT_KEYPAD_TEXT, *pCanvasPressed, POSITION_BOTTOM_CENTER, BUTTON_STATUS_PRESSED); + } + break; + + case NUM_KEY9: + { + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_09ICON, imageDim, *pCanvasNormal, POSITION_TOP_CENTER); + DialUtil::DrawKeypadTextToCanvas(IDI_KEY9_TXT, FONT_KEYPAD_TEXT, *pCanvasNormal, POSITION_BOTTOM_CENTER, BUTTON_STATUS_NORMAL); + DialUtil::DrawBitmapToCanvas(*pCanvasPressed, IDB_KEYPAD_PRESSICON); + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_09ICON, imageDim, *pCanvasPressed, POSITION_TOP_CENTER); + DialUtil::DrawKeypadTextToCanvas(IDI_KEY9_TXT, FONT_KEYPAD_TEXT, *pCanvasPressed, POSITION_BOTTOM_CENTER, BUTTON_STATUS_PRESSED); + } + break; + + case PAUSE_KEY: + { + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_ASTERIKICON, Dimension(W_STAR_ICON, H_STAR_ICON), *pCanvasNormal, POSITION_TOP_CENTER); + DialUtil::DrawKeypadTextToCanvas(L"P", FONT_KEYPAD_P, *pCanvasNormal, POSITION_BOTTOM_CENTER, BUTTON_STATUS_NORMAL); + DialUtil::DrawBitmapToCanvas(*pCanvasPressed, IDB_KEYPAD_PRESSICON); + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_ASTERIKICON, Dimension(W_STAR_ICON, H_STAR_ICON), *pCanvasPressed, POSITION_TOP_CENTER); + DialUtil::DrawKeypadTextToCanvas(L"P", FONT_KEYPAD_P, *pCanvasPressed, POSITION_BOTTOM_CENTER, BUTTON_STATUS_PRESSED); + } + break; + + case NUM_KEY0: + { + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_00ICON, imageDim, *pCanvasNormal, POSITION_TOP_CENTER); + DialUtil::DrawKeypadTextToCanvas(L"+", FONT_KEYPAD_PLUS, *pCanvasNormal, POSITION_BOTTOM_CENTER, BUTTON_STATUS_NORMAL); + DialUtil::DrawBitmapToCanvas(*pCanvasPressed, IDB_KEYPAD_PRESSICON); + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_00ICON, imageDim, *pCanvasPressed, POSITION_TOP_CENTER); + DialUtil::DrawKeypadTextToCanvas(L"+", FONT_KEYPAD_PLUS, *pCanvasPressed, POSITION_BOTTOM_CENTER, BUTTON_STATUS_PRESSED); + } + break; + + case HASH_KEY: + { + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_SHARPICON, imageDim, *pCanvasNormal, POSITION_TOP_CENTER); + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_MUTEICON, Dimension(W_MUTE_ICON, H_MUTE_ICON), *pCanvasNormal, POSITION_BOTTOM_CENTER); + DialUtil::DrawBitmapToCanvas(*pCanvasPressed, IDB_KEYPAD_PRESSICON); + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_SHARPICON, imageDim, *pCanvasPressed, POSITION_TOP_CENTER); + DialUtil::DrawKeypadImageToCanvas(IDB_KEYPAD_NUMBER_MUTEICON, Dimension(W_MUTE_ICON, H_MUTE_ICON), *pCanvasPressed, POSITION_BOTTOM_CENTER); + } + break; + + /* case VIDEOCALL_KEY: + { + DialUtil::Draw9PatchToCanvas(*pCanvasNormal, IDB_DIALER_BTN_LINE5_ICON); + DialUtil::DrawImageToCanvas(IDB_DIALER_VIDEOCALL_ICON, Dimension(W_VIDEOCALL_ICON, H_VIDEOCALL_ICON), *pCanvasNormal, POSITION_CENTER); + + DialUtil::Draw9PatchToCanvas(*pCanvasPressed, IDB_DIALER_BTN_PRESS_ICON); + DialUtil::DrawImageToCanvas(IDB_DIALER_VIDEOCALL_ICON, Dimension(W_VIDEOCALL_ICON, H_VIDEOCALL_ICON), *pCanvasPressed, POSITION_CENTER); + } + break;*/ + + case CANCEL_KEY: + { + DialUtil::Draw9PatchToCanvas(*pCanvasNormal, IDB_DIALER_BTN_LINE5_ICON); + DialUtil::DrawTextToCanvas(AppUtility::GetResourceString(IDS_CANCEL), FONT_KEYPAD_CANCEL, *pCanvasNormal, POSITION_CENTER, BUTTON_STATUS_NORMAL); + + DialUtil::Draw9PatchToCanvas(*pCanvasPressed, IDB_DIALER_BTN_PRESS_ICON); + DialUtil::DrawTextToCanvas(AppUtility::GetResourceString(IDS_CANCEL), FONT_KEYPAD_CANCEL, *pCanvasPressed, POSITION_CENTER, BUTTON_STATUS_NORMAL); + } + break; + + case CALL_KEY: + { + DialUtil::DrawCall9PatchToCanvas(*pCanvasNormal, IDB_KEYPAD_CALLDIM9PATCH); + DialUtil::DrawImageToCanvas(IDB_DIALER_CALL_ICON, Dimension(W_CALL_ICON, H_CALL_ICON), *pCanvasNormal, POSITION_CENTER); + DialUtil::DrawCall9PatchToCanvas(*pCanvasPressed, IDB_KEYPAD_CALLPRESS9PATCH); + DialUtil::DrawImageToCanvas(IDB_DIALER_CALL_ICON, Dimension(W_CALL_ICON, H_CALL_ICON), *pCanvasPressed, POSITION_CENTER); + } + break; + + case CLEAR_KEY: + { + DialUtil::DrawClear9PatchToCanvas(*pCanvasNormal, IDB_KEYPAD_CLEARDIM9PATCH); + DialUtil::DrawImageToCanvas(IDB_DIALER_CLEAR_ICON, Dimension(W_CLEAR_ICON, H_CLEAR_ICON), *pCanvasNormal, POSITION_CENTER); + DialUtil::DrawClear9PatchToCanvas(*pCanvasPressed, IDB_KEYPAD_CLEARPRESS9PATCH); + DialUtil::DrawImageToCanvas(IDB_DIALER_CLEAR_ICON, Dimension(W_CLEAR_ICON, H_CLEAR_ICON), *pCanvasPressed, POSITION_CENTER); + } + break; + } + + //Set the final Bitmap to Button + DialUtil::DrawCanvasToButton(pCanvasNormal, pCanvasPressed, pButton); + delete pCanvasNormal; + pCanvasNormal = null; + delete pCanvasPressed; + pCanvasPressed = null; + } + AppLogDebug("EXIT"); + return; +} + +void +DialerKeypad::SetFocusToButtons(bool keypad, bool lastrow) +{ + AppLogDebug("Enter"); + int totalControls = GetControlCount(); + for(int index = 0; index < totalControls; ++index) + { + GetControl(index)->SetFocusable(keypad); + GetControl(index)->Invalidate(true); + } + + Panel* pLastRowPanel = static_cast(GetParent()->GetControl(IDC_PANEL_LASTROW, true)); + totalControls = pLastRowPanel->GetControlCount(); + for(int index = 0; index < totalControls; ++index) + { + pLastRowPanel->GetControl(index)->SetFocusable(lastrow); + pLastRowPanel->GetControl(index)->Invalidate(true); + } +} + +bool +DialerKeypad::IsShowCancelButton(void) +{ + //'Cancel' is shown instead of 'Video Call' when opened in 'DIALER_STATE_ADD_CALL_APPCONTROL'. + bool isShowCancel = false; + if (__openedState == DIALER_STATE_ADD_CALL_APPCONTROL) + { + isShowCancel = true; + } + return isShowCancel; +} + +bool +DialerKeypad::IsShowVoiceMailIcon(void) +{ + //voice mail icon is not shown when opened from any APPCONTROL or from DIALER_STATE_ADD_CALL_APPCONTROL. + bool isShowVoiceMail = false; + if (__openedState == DIALER_STATE_FIRST_SCENE) + { + isShowVoiceMail = true; + } + return isShowVoiceMail; +} + +bool +DialerKeypad::IsShowVideoCallButton(void) +{ + //video call button is shown in 'DIALER_STATE_FIRST_SCENE' , 'DIALER_STATE_NORMAL_APPCONTROL'. + bool isShowVideoCall = true; + if ((__openedState == DIALER_STATE_EMERGENCY_APPCONTROL) || (__openedState == DIALER_STATE_ADD_CALL_APPCONTROL)) + { + isShowVideoCall = false; + } + return isShowVideoCall; +} + +result +DialerKeypad::OnTerminating(void) +{ + AppLog("Enter"); + for (int index = 0; index < __pLongPressDetectors->GetCount(); index++) + { + TouchLongPressGestureDetector* pLongPressDetector = static_cast(__pLongPressDetectors->GetAt(index)); + Button* pButton = static_cast(pLongPressDetector->GetControl()); + pButton->RemoveGestureDetector(pLongPressDetector); + } + for (int i = 1; i <= 12; i++) + { + //initialize buttons and add action listener + String buttonName(IDC_BUTTON_NAME); + buttonName.Append(i); + Button* pButton = static_cast(GetControl(buttonName, true)); + if(pButton == null) + { + continue; + } + } + return E_SUCCESS; +} diff --git a/src/PhnEmergencyDialForm.cpp b/src/PhnEmergencyDialForm.cpp new file mode 100644 index 0000000..26e8f94 --- /dev/null +++ b/src/PhnEmergencyDialForm.cpp @@ -0,0 +1,357 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnEmergencyDialForm.cpp + * @brief Base class for all Call forms + */ +#include +#include +#include "PhnAppUtility.h" +#include "PhnCommonUtils.h" +#include "PhnDialerKeypad.h" +#include "PhnErrorMsgPopup.h" +#include "PhnEmergencyDialForm.h" +#include "PhnPhoneApp.h" +#include "PhnTypes.h" + +using namespace Tizen::Base; +using namespace Tizen::Base::Collection; +using namespace Tizen::App; +using namespace Tizen::Ui; +using namespace Tizen::Ui::Controls; +using namespace Tizen::Ui::Scenes; +using namespace Tizen::Graphics; +using namespace Tizen::Telephony; + +//resources +static const wchar_t* IDL_EMERGENCY_DIAL_FORM = L"IDL_EMERGENCY_DIAL_FORM"; +const wchar_t* IDC_LABEL_EMERGENCY = L"IDC_LABEL_EMERGENCY"; +const wchar_t* IDC_PANEL_EMERGENCY_DISPLAY_DATA = L"IDC_PANEL_EMERGENCY_DISPLAY_DATA"; +const wchar_t* IDC_EDITFIELD_NUMBER = L"IDC_EDITFIELD_NUMBER"; +//color +const unsigned int COLOR_LABEL_BG = Color32<43, 107, 144>::Value; +const int MAX_NUMBER_WITH_SEPERATOR = 11; +const int MIN_NUMBER_WITH_TWO_SEPERATOR = 7; +const int MIN_NUMBER_WITH_ONE_SEPERATOR = 3; +const int MAX_TXT_LENGTH_WITH_SEPERATOR = 12; +const int MAX_VISIBLE_TXT_WITH_MIN_FONT = 18; +const int IDI_DELTA_FONT_SIZE = 5; +const int IDI_MAX_TXT_FONT = 94; +const int IDI_MIN_TXT_FONT = 67; +const int IDI_MAX_LIMIT_LENGTH = 18; + +EmergencyDialForm::EmergencyDialForm(void) +{ + __pDialKeypad = null; + __pErrorMsgPopup = null; + __isAppControlLaunched = false; +} + +EmergencyDialForm::~EmergencyDialForm(void) +{ + AppControl::StopAppControlResponseListener(this); + if(__pDialKeypad != null) + { + __pDialKeypad = null; + } +} + +bool +EmergencyDialForm::Initialize(void) +{ + Construct(IDL_EMERGENCY_DIAL_FORM); + return true; +} + +result +EmergencyDialForm::OnInitializing(void) +{ + result r = E_SUCCESS; + ConstructKeypad(); + return r; +} + +void +EmergencyDialForm::ConstructKeypad(void) +{ + AppLogDebug("ENTER"); + //Construct Alpha numeric Keypad + if(__pDialKeypad == null) + { + __pDialKeypad = new (std::nothrow) DialerKeypad(DIALER_STATE_EMERGENCY_APPCONTROL); + __pDialKeypad->ConstructPanel(this, this,null); + AddControl(__pDialKeypad); + } + AppLogDebug("EXIT"); + return; +} + +void +EmergencyDialForm::ShowFormattedText(EditField* pEditField, int actionId) +{ + AppLogDebug("ENTER"); + String contactNumber = pEditField->GetText(); + contactNumber.Replace(L"-",L""); + if(actionId == CLEAR_KEY) + { + contactNumber.Remove(contactNumber.GetLength() - 1, 1); + } + else + { + contactNumber.Append(DialUtil::ConvertDialedNumberToString(actionId)); + } + + int textLength = contactNumber.GetLength(); + if(textLength == 0) + { + pEditField->Clear(); + AppLogDebug("EXIT"); + return; + } + //Insert separator if required + if(textLength < MAX_NUMBER_WITH_SEPERATOR) + { + if(textLength > MIN_NUMBER_WITH_TWO_SEPERATOR) + { + contactNumber.Insert(L"-",MIN_NUMBER_WITH_TWO_SEPERATOR); + } + if(textLength > MIN_NUMBER_WITH_ONE_SEPERATOR) + { + contactNumber.Insert(L"-",MIN_NUMBER_WITH_ONE_SEPERATOR); + } + } + //update text length + textLength = contactNumber.GetLength(); + //need to change font to fit inside text box + //With size 94 -> 12 chars, 67 -> 18 chars + int fontSize = pEditField->GetTextSize(); + if((actionId == CLEAR_KEY) && (textLength <= MAX_VISIBLE_TXT_WITH_MIN_FONT)) + { + //clearing + fontSize += IDI_DELTA_FONT_SIZE; + } + else if(textLength > MAX_TXT_LENGTH_WITH_SEPERATOR) + { + //appending + fontSize -= IDI_DELTA_FONT_SIZE; + } + + if(fontSize > IDI_MAX_TXT_FONT) + { + fontSize = IDI_MAX_TXT_FONT; + } + if(fontSize < IDI_MIN_TXT_FONT) + { + fontSize = IDI_MIN_TXT_FONT; + } + pEditField->SetTextSize(fontSize); + //set text to edit field + pEditField->SetText(contactNumber); + + AppLogDebug("EXIT"); + return; +} + +void +EmergencyDialForm::OnActionPerformed(const Control& source, int actionId) +{ + EditField* pEditField = static_cast(GetControl(IDC_EDITFIELD_NUMBER, true)); + if (pEditField == null) + { + return; + } + + switch (actionId) + { + case NUM_KEY1: + case NUM_KEY2: + case NUM_KEY3: + case NUM_KEY4: + case NUM_KEY5: + case NUM_KEY6: + case NUM_KEY7: + case NUM_KEY8: + case NUM_KEY9: + case NUM_KEY0: + case CLEAR_KEY: + { + if(pEditField->GetTextLength() >= IDI_MAX_LIMIT_LENGTH && actionId != CLEAR_KEY) + { + //Maximum capacity reached, Don't append any more numbers. + AppLogDebug("EXIT"); + return; + } + //append / clear last character to contact + ShowFormattedText(pEditField, actionId); + } + break; + + case CALL_KEY: + { + //Check if number is present and Call AppControl is not already launched. + if (pEditField->GetTextLength() > 0 && __isAppControlLaunched == false) + { + String contactNo = pEditField->GetText(); + contactNo.Replace(L"-",L""); + DialEmergencyCall(contactNo); + return; + } + } + break; + + case PAUSE_KEY: + { + pEditField->AppendText(L"*"); + } + break; + + case HASH_KEY: + { + pEditField->AppendText(L"#"); + } + break; + + case CANCEL_KEY: + { + PhoneApp* pApp = static_cast(UiApp::GetInstance()); + pApp->Terminate(); + } + break; + + default: + break; + } + pEditField->Invalidate(false); + + return; +} + +void +EmergencyDialForm::OnLongPressGestureDetected(TouchLongPressGestureDetector& gestureDetector) +{ + if (gestureDetector.GetControl() != null) + { + Button* pButton = static_cast(gestureDetector.GetControl()); + int actionId = pButton->GetActionId(); + switch(actionId) + { + case CLEAR_KEY: + { + EditField* pEditField = static_cast(GetControl(IDC_EDITFIELD_NUMBER, true)); + if (pEditField != null && pEditField->GetTextLength() > 0) + { + pEditField->Clear(); + pEditField->SetTextSize(IDI_MAX_TXT_FONT); + pEditField->Invalidate(false); + } + } + break; + } + } +} + +result +EmergencyDialForm::OnTerminating(void) +{ + result r = E_SUCCESS; + return r; +} + +void +EmergencyDialForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs) +{ +} + +void +EmergencyDialForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId) +{ +} + +void +EmergencyDialForm::DialEmergencyCall(const String& contactNumber) +{ + AppLogDebug("ENTER"); + ErrorCodes errorCode = ERROR_NONE; + + //Check if dialing emergency call is possible + //Check if sim is available + + result r = LaunchCallAppControl(contactNumber); + if (r != E_SUCCESS) + { + errorCode = ERROR_DIAL_FAILED; + } + + + if (errorCode == ERROR_NONE) + { + __isAppControlLaunched = true; + } + else + { + //Show error message Popup + if (__pErrorMsgPopup == null) + { + __pErrorMsgPopup = new (std::nothrow) ErrorMsgPopup(this); + __pErrorMsgPopup->ShowErrorMsgPopupN(errorCode); + } + } + AppLogDebug("EXIT"); + return; +} + +result +EmergencyDialForm::LaunchCallAppControl(const String& contactNumber) +{ + result r = E_FAILURE; + + HashMap extraData; + extraData.Construct(); + extraData.Add(new (std::nothrow) String(PARAM_PHONE_NUMBER), new (std::nothrow) String(contactNumber)); + + AppControl* pAppControl = AppManager::FindAppControlN(PROVIDER_ID_CALL, OPERATION_ID_CALL); + if (pAppControl != null) + { + r = pAppControl->Start(null, null, &extraData, this); + delete pAppControl; + } + + extraData.RemoveAll(true); + return r; +} + +//Called when the application control is completed. +void +EmergencyDialForm::OnAppControlCompleteResponseReceived(const AppId& appId, const String& operationId, AppCtrlResult appControlResult, const IMap* pExtraData) +{ + //reset 'isAppControlLaunched' + __isAppControlLaunched = false; + //TODO: check if we need to show any error message here from Call module, in any case. +} + + +void +EmergencyDialForm::HandlePopupClosed(void) +{ + EditField* pEditField = static_cast(GetControl(IDC_EDITFIELD_NUMBER, true)); + //clear text + pEditField->Clear(); + Draw(); + delete __pErrorMsgPopup; + __pErrorMsgPopup = null; + return; +} diff --git a/src/PhnErrorMsgPopup.cpp b/src/PhnErrorMsgPopup.cpp new file mode 100644 index 0000000..9cb9cd3 --- /dev/null +++ b/src/PhnErrorMsgPopup.cpp @@ -0,0 +1,257 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnErrorMsgPopup.cpp + * @brief Error message pop class + */ +#include +#include "PhnAppUtility.h" +#include "PhnErrorMsgPopup.h" +#include "PhnTypes.h" + + +using namespace Tizen::Base; +using namespace Tizen::Ui; +using namespace Tizen::Ui::Controls; +using namespace Tizen::Graphics; +using namespace Tizen::Base::Utility; +using namespace Tizen::Base::Runtime; + +const int IDI_VERTICAL_LINE_SPACING = 20; +const int W_ERROR_MSG_POPUP = 720; +const int IDI_VERTICAL_MARGIN = 39; +static const wchar_t* IDL_ERROR_MSG_POPUP = L"IDL_ERROR_MSG_POPUP"; +static const wchar_t* IDC_MSG_TEXTBOX = L"IDC_MSG_TEXTBOX"; +static const wchar_t* IDS_DIAL_ERROR_MSG = L"IDS_DIAL_ERROR_MSG"; +static const wchar_t* IDS_JOIN_FAILED_ERROR_MSG = L"IDS_JOIN_FAILED_ERROR_MSG"; +static const wchar_t* IDS_REJECT_FAILED_ERROR_MSG = L"IDS_REJECT_FAILED_ERROR_MSG"; +static const wchar_t* IDS_CALL_SWAP_ERROR_MSG = L"IDS_CALL_SWAP_ERROR_MSG"; +static const wchar_t* IDS_END_PARTICIPANT_ERROR_MSG = L"IDS_END_PARTICIPANT_ERROR_MSG"; +static const wchar_t* IDS_SPLIT_PARTICIPANT_ERROR_MSG = L"IDS_SPLIT_PARTICIPANT_ERROR_MSG"; +static const wchar_t* IDS_SIM_INIT_ERROR_MSG = L"IDS_SIM_INIT_ERROR_MSG"; +static const wchar_t* IDS_EMERGENCY_CALLS_ONLY_ERROR_MSG = L"IDS_EMERGENCY_CALLS_ONLY_ERROR_MSG"; +static const wchar_t* IDS_INVALID_ARGS_ERROR_MSG = L"IDS_INVALID_ARGS_ERROR_MSG"; +static const wchar_t* IDS_TAPI_INIT_ERROR_MSG = L"IDS_TAPI_INIT_ERROR_MSG"; +static const wchar_t* IDS_GENERAL_TAPI_ERROR_MSG = L"IDS_GENERAL_TAPI_ERROR_MSG"; +static const wchar_t* IDS_LONG_BARRING_PWD_ERROR_MSG = L"IDS_LONG_BARRING_PWD_ERROR_MSG"; +static const wchar_t* IDS_INVALID_NUMBER_ERROR_MSG = L"IDS_INVALID_NUMBER_ERROR_MSG"; +static const wchar_t* IDS_GENERAL_ERROR_MSG = L"IDS_GENERAL_ERROR_MSG"; + +ErrorMsgPopup::ErrorMsgPopup(IPopupClosedEventListener* pEventListener) +: __pEventListener(pEventListener) +{ + __pTimer = null; +} + +ErrorMsgPopup::~ErrorMsgPopup(void) +{ + if (__pTimer) + { + __pTimer->Cancel(); + delete __pTimer; + __pTimer = null; + } +} + +void +ErrorMsgPopup::ConstructPopup(int errorCode) +{ + Construct(IDL_ERROR_MSG_POPUP); + //Fetch error message + String msg = FetchErrorMessage(errorCode); + + //Set text to Message box + TextBox* pMsgTxtBox = static_cast(GetControl(IDC_MSG_TEXTBOX)); + pMsgTxtBox->SetLineSpacing(1,1); + pMsgTxtBox->SetText(msg); + pMsgTxtBox->SetEnabled(false); + pMsgTxtBox->SetTextAlignment(ALIGNMENT_CENTER); + pMsgTxtBox->SetTextColor(TEXT_BOX_TEXT_COLOR_NORMAL, Color(0, 0, 0)); + pMsgTxtBox->SetTextColor(TEXT_BOX_TEXT_COLOR_DISABLED, Color(0, 0, 0)); + + Rectangle msgTxtBoxRect = pMsgTxtBox->GetBounds(); + //get no. of lines to show message + int noOfLines = pMsgTxtBox->GetLineCount(); + pMsgTxtBox->SetSize(msgTxtBoxRect.width,((noOfLines * msgTxtBoxRect.height) + IDI_VERTICAL_LINE_SPACING)); + + Dimension popUpDimen = GetSize(); + popUpDimen.height = pMsgTxtBox->GetHeight() + (2 * IDI_VERTICAL_MARGIN); + SetSize(popUpDimen); + + SetControlAlwaysOnTop(*pMsgTxtBox,true); + RelativeLayout* relPopUpLayout = static_cast(GetLayoutN()); + if(relPopUpLayout != null) + { + // Set Relations between msgtextbox and Popup + relPopUpLayout->SetCenterAligned(*pMsgTxtBox, CENTER_ALIGN_HORIZONTAL); + relPopUpLayout->SetCenterAligned(*pMsgTxtBox, CENTER_ALIGN_VERTICAL); + } + //construct timer + __pTimer = new (std::nothrow) Timer(); + __pTimer->Construct(*this); +} + +void +ErrorMsgPopup::ShowErrorMsgPopupN(int errorCode) +{ + //Construct the message popup + ConstructPopup(errorCode); + //Show popup message + ShowPopup(); +} + +void +ErrorMsgPopup::ShowPopup(void) +{ + AppLogDebug("Popup launched"); + __popupModalResult = 0; + //start timer to show popup + __pTimer->Start(2000); + SetShowState(true); + Show(); +} + +void +ErrorMsgPopup::OnTimerExpired(Tizen::Base::Runtime::Timer& timer) +{ + //Call default implementation of "Object.Equals()" + //returns true, if they are pointing to same address. + if (__pTimer->Equals(timer)) + { + SetShowState(false); + //notify the listener + __pEventListener->HandlePopupClosed(); + } +} + +String +ErrorMsgPopup::FetchErrorMessage(int errorCode) +{ + String msg(L""); + switch (errorCode) + { + case ERROR_NONE: + break; + + case ERROR_DIAL_FAILED: + { + msg.Append(AppUtility::GetResourceString(IDS_DIAL_ERROR_MSG)); + } + break; + + case ERROR_JOIN_FAILED: + { + msg.Append(AppUtility::GetResourceString(IDS_JOIN_FAILED_ERROR_MSG)); + } + break; + + case ERROR_REJECT_FAILED: + { + msg.Append(AppUtility::GetResourceString(IDS_REJECT_FAILED_ERROR_MSG)); + } + break; + + case ERROR_SWAP_FAILED: + { + msg.Append(AppUtility::GetResourceString(IDS_CALL_SWAP_ERROR_MSG)); + } + break; + + case ERROR_END_FROM_CONFERENCE_FAILED: + { + msg.Append(AppUtility::GetResourceString(IDS_END_PARTICIPANT_ERROR_MSG)); + } + break; + + case ERROR_SPLIT_FROM_CONFERENCE_FAILED: + { + msg.Append(AppUtility::GetResourceString(IDS_SPLIT_PARTICIPANT_ERROR_MSG)); + } + break; + + case ERROR_CODE_SIM_INITIALIZATION_FAILED: + { + msg.Append(AppUtility::GetResourceString(IDS_SIM_INIT_ERROR_MSG)); + } + break; + + case ERROR_NOT_EMERGENCY_NUM: + { + msg.Append(AppUtility::GetResourceString(IDS_EMERGENCY_CALLS_ONLY_ERROR_MSG)); + } + break; + + case ERROR_INVALID_INPUT: + { + msg.Append(AppUtility::GetResourceString(IDS_INVALID_ARGS_ERROR_MSG)); + } + break; + + case ERROR_TAPI_INIT_FAILED: + { + msg.Append(AppUtility::GetResourceString(IDS_TAPI_INIT_ERROR_MSG)); + } + break; + + case ERROR_TAPI_ERROR: + { + msg.Append(AppUtility::GetResourceString(IDS_GENERAL_TAPI_ERROR_MSG)); + } + break; + + case ERROR_BARRING_PWD_TOO_LONG: + { + msg.Append(AppUtility::GetResourceString(IDS_LONG_BARRING_PWD_ERROR_MSG)); + } + break; + + case ERROR_INVALID_NUMBER: + { + msg.Append(AppUtility::GetResourceString(IDS_INVALID_NUMBER_ERROR_MSG)); + } + break; + + case ERROR_FLIGHT_MODE_SET: + { + msg.Append(AppUtility::GetResourceString(IDS_FLIGHT_MODE_ON)); + } + break; + + case ERROR_SYSTEM_FAILURE: + { + msg.Append(AppUtility::GetResourceString(IDS_SETTING_SYSTEM_FAILURE_TEXT)); + } + break; + + case ERROR_WRONG_BARRING_PASSWORD: + { + msg.Append(AppUtility::GetResourceString(IDS_SETTING_WRONG_PASSWORD_TEXT)); + } + break; + + case ERROR_GENERAL: + default: + { + msg.Append(AppUtility::GetResourceString(IDS_GENERAL_ERROR_MSG)); + } + break; + } + + return msg; +} + + diff --git a/src/PhnLogsDetailForm.cpp b/src/PhnLogsDetailForm.cpp new file mode 100644 index 0000000..0d9b15a --- /dev/null +++ b/src/PhnLogsDetailForm.cpp @@ -0,0 +1,1933 @@ +// +// Copyright (c) 2012 Samsung Electronics Co., Ltd. +// +// Licensed under the Flora License, Version 1.1 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://floralicense.org/license/ +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an AS IS BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file PhnLogsDetailForm.cpp + * @brief Call log details form + */ +#include +#include +#include +#include +#include +#include "PhnPhoneApp.h" +#include "PhnAppUtility.h" +#include "PhnLogsDetailForm.h" +#include "PhnSceneRegister.h" +#include "PhnCalllogManager.h" +#include "PhnCallLogPresentationModel.h" +#include "PhnCallRejectInfo.h" +#include "PhnDialPresentationModel.h" +#include "PhnSettingsPresentationModel.h" +#include "PhnTypes.h" + +using namespace Tizen::App; +using namespace Tizen::Base; +using namespace Tizen::Base::Collection; +using namespace Tizen::Graphics; +using namespace Tizen::Media; +using namespace Tizen::Social; +using namespace Tizen::Ui; +using namespace Tizen::Ui::Controls; +using namespace Tizen::Ui::Scenes; +using namespace Tizen::Base::Utility; +//resources +const wchar_t* IDL_CALL_LOG_DETAIL_FORM = L"IDL_CALL_LOG_DETAIL_FORM"; +const wchar_t* IDC_BUTTON_CONTACT_IMAGE = L"IDC_BUTTON_CONTACT_IMAGE"; +const wchar_t* IDC_LABEL_NAME = L"IDC_LABEL_NAME"; +const wchar_t* IDC_LABEL_NUMBER_COUNT = L"IDC_LABEL_NUMBER_COUNT"; +const wchar_t* IDC_LABEL_UNSAVED_NUMBER = L"IDC_LABEL_UNSAVED_NUMBER"; +const wchar_t* IDC_LABEL_COUNT = L"IDC_LABEL_COUNT"; +const wchar_t* IDC_LABEL_NUMBER = L"IDC_LABEL_NUMBER"; +const wchar_t* IDC_LABEL_NUMBER_UNSAVED = L"IDC_LABEL_NUMBER_UNSAVED"; +const wchar_t* IDC_LABEL_BLOCKED = L"IDC_LABEL_BLOCKED"; +const wchar_t* IDC_BUTTON_MESSAGE = L"IDC_BUTTON_MESSAGE"; +const wchar_t* IDC_SELECTALL = L"IDC_SELECTALL"; +const wchar_t* IDC_LABEL_DETAIL_SELECTED = L"IDC_LABEL_DETAIL_SELECTED"; +const wchar_t* IDC_PANEL_NAME = L"IDC_PANEL_NAME"; +const wchar_t* IDC_PANEL_NUMBER_UNSAVED = L"IDC_PANEL_NUMBER_UNSAVED"; +const wchar_t* IDS_ALREADY_USED_MSG = L"IDS_ALREADY_USED_MSG"; + +const int IDA_CALL_LOG_CALL = 201; +const int IDA_CALL_LOG_MESSAGE = 202; +const int IDA_FOOTER_BUTTON_LEFT = 203; +const int IDA_FOOTER_BUTTON_RIGHT = 204; +const int IDA_SELECT_ALL_CHECKED = 205; +const int IDA_SELECT_ALL_UNCHECKED = 206; +const int IDA_POPUP_DELETE_CANCEL = 207; +const int IDA_FOOTER_LOG_MORE = 208; +const int IDA_CONTEXTMENU_DETAILS = 209; +const int IDA_CONTEXTMENU_ADDTOCONTACT = 210; +const int IDA_CONTEXTMENU_BLOCK = 211; +const int IDA_POPUP_DELETE_YES = 212; +const int IDA_POPUP_DELETE_NO = 213; + +static const wchar_t* IDS_INVALID_NUMBER_ERROR_MSG = L"IDS_INVALID_NUMBER_ERROR_MSG"; +static const wchar_t* IDS_MESSAGE_NUMBER_IS_INVALID = L"IDS_MESSAGE_NUMBER_IS_INVALID"; +static const wchar_t* IDS_CALL_NUMBER_IS_INVALID = L"IDS_CALL_NUMBER_IS_INVALID"; + +const int W_BUTTON = 48; +const int H_BUTTON = 48; +const int W_BLOCKED_ICON = 56; +const int H_BLOCKED_ICON = 56; +//static const int X_MORE = 55; + +const wchar_t* FORMAT_STR = L"%ls (%d)"; + +static const int W_DELETE_POPUP = 720; +static const int H_DELETE_POPUP = 308; +static const int Y_DELETE_POPUP_TITLE = 20; +static const int H_DELETE_POPUP_ELEMENT = 60; +static const int H_DELETE_POPUP_PROGRESS = 34; +static const int Y_DELETE_POPUP_CANCEL_BUTTON = 214; +static const int H_DELETE_POPUP_CANCEL_BUTTON = 74; +static const int W_DELETE_POPUP_CANCEL_BUTTON = 394; + +static const int FONT_SIZE_DELETE_POPUP_TEXT = 36; + +static const unsigned int COLOR_DELETE_POPUP_TEXT = Color32<128, 128, 128>::Value; +static const unsigned int COLOR_DELAIL_LABEL_SELECTED = Color32<68, 68, 68>::Value; +const unsigned int COLOR_DELAIL_LABEL_SELECTED_TEXT = Color32<255, 255, 255>::Value; +static const unsigned int COLOR_ITEM_DELETE_BACKGROUND = Color32<208, 82, 82>::Value; +static const unsigned int COLOR_ITEM_DELETE_PRESSED_BACKGROUND = Color32<194, 71, 71>::Value; + + +DlLogsDetailForm::DlLogsDetailForm(void) +{ + __pDataProvider = new LogsDetailItemProvider(); + + __listHeight = 0; + __pButtonCall = null; + __pButtonMessage = null; + __pButtonContactImage = null; + __pPanelNumberUnsaved = null; + __pPanelName = null; + __pLabelNumber = null; + __pFormFooter = null; + __pList = null; + __isEditMode = false; + __isSelectAll = false; + __isPresentInContacts = false; + __listItemCount = 0; + __selectedItemCount = 0; + __calllogListByNum = null; + __pLogPresentor = null; + __calllogCount = 0; + __isMsgAppControlLaunched = false; + __deleteLogsTimer.Construct(*this); + __deleteGroupIndex = 0; + __deleteItemIndex = 0; + __pDeletePopup = null; + __isDeleteInProgress = false; + __pCallLogId = null; + __isSceneVisible = false; + __pLogsBlockPopup = null; + __isContactAppControlLaunched = false; + __isCallBeRejected = false; + __isCallAppControlLaunched = false; + __isMsgBeRejected = false; + __pOptionMenu = null; + __pConfirmationDeletePopup = null; +} + +DlLogsDetailForm::~DlLogsDetailForm(void) +{ + AppControl::StopAppControlResponseListener(this); + if (__pDataProvider != null) + { + delete __pDataProvider; + __pDataProvider = null; + } + if (__pLogPresentor != null) + { + __pLogPresentor->RemoveCalllogChangeListner(*this); + __pLogPresentor = null; + } + if (__pCallLogId != null) + { + __pCallLogId->RemoveAll(); + delete __pCallLogId; + __pCallLogId = null; + } + if(__pLogsBlockPopup != null) + { + delete __pLogsBlockPopup; + __pLogsBlockPopup = null; + } +} + +bool +DlLogsDetailForm::Initialize() +{ + result r = Construct(IDL_CALL_LOG_DETAIL_FORM); + __pCallLogId = new(std::nothrow) ArrayList(); + r = __pCallLogId->Construct(); + + TryCatch(r == E_SUCCESS, , "DlLogsDetailForm::Initialize Fail to initialize Call log detail form"); + return true; +CATCH: + return false; + +} + +result +DlLogsDetailForm::OnInitializing(void) +{ + result r = E_SUCCESS; + + SetFormMenuEventListener(this); + SetFormBackEventListener(this); + AppResource* pAppResource = App::GetInstance()->GetAppResource(); + + __pFormFooter = GetFooter(); + + __pFormFooter->SetStyle(FOOTER_STYLE_BUTTON_TEXT); + __pFormFooter->AddActionEventListener(*this); + + __pFooterItemDelete.Construct(IDA_FOOTER_BUTTON_LEFT); + __pFooterItemDelete.SetText(AppUtility::GetResourceString(IDS_CALLLOG_DELETE_FOOTER)); + __pFormFooter->AddItem(__pFooterItemDelete); + + __pButtonContactImage = static_cast(GetControl(IDC_BUTTON_CONTACT_IMAGE)); + + //todo: set image & show if present in contacts + __pButtonContactImage->SetShowState(false); + __pButtonContactImage->SetFocusable(false); + + __pPanelName = static_cast(GetControl(IDC_PANEL_NAME)); + __pPanelNumberUnsaved = static_cast(GetControl(IDC_PANEL_NUMBER_UNSAVED)); + + __pLabelNumber = static_cast(GetControl(IDC_LABEL_NUMBER)); + __pLabelNumber->SetTextColor(Color::GetColor(COLOR_ID_BLACK)); + __pLabelNumber->SetTextConfig(32, LABEL_TEXT_STYLE_BOLD); + + + __pLabelBlocked = static_cast(GetControl(IDC_LABEL_BLOCKED)); + __pLabelBlocked->SetShowState(false); + + + Bitmap* pBgNormal = pAppResource->GetBitmapN(IDB_CIRCLE_BUTTON_NORMAL ,BITMAP_PIXEL_FORMAT_ARGB8888); + Bitmap* pBgPressed = pAppResource->GetBitmapN(IDB_CIRCLE_BUTTON_PRESSED ,BITMAP_PIXEL_FORMAT_ARGB8888); + Bitmap* pCallNormal = pAppResource->GetBitmapN(IDB_LOG_DETAIL_CALL_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888); + Bitmap* pCallPressed = pAppResource->GetBitmapN(IDB_LOG_DETAIL_CALL_PRESSED_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888); + + __pButtonCall = static_cast(GetControl(IDC_BUTTON_CALL)); + __pButtonCall->SetActionId(IDA_CALL_LOG_CALL); + __pButtonCall->AddActionEventListener(*this); + + if (pBgNormal != null) + { + __pButtonCall->SetNormalBackgroundBitmap(*pBgNormal); + delete pBgNormal; + pBgNormal = null; + } + if (pBgPressed != null) + { + __pButtonCall->SetPressedBackgroundBitmap(*pBgPressed); + delete pBgPressed; + pBgPressed = null; + } + if (pCallNormal != null) + { + __pButtonCall->SetNormalBitmap(Point(0, 0), *pCallNormal); + delete pCallNormal; + pCallNormal = null; + } + if (pCallPressed != null) + { + __pButtonCall->SetPressedBitmap(Point(0, 0), *pCallPressed); + delete pCallPressed; + pCallPressed = null; + } + + pBgNormal = pAppResource->GetBitmapN(IDB_CIRCLE_BUTTON_NORMAL ,BITMAP_PIXEL_FORMAT_ARGB8888); + pBgPressed = pAppResource->GetBitmapN(IDB_CIRCLE_BUTTON_PRESSED ,BITMAP_PIXEL_FORMAT_ARGB8888); + Bitmap* pMsgNormal = pAppResource->GetBitmapN(IDB_LOG_DETAIL_MSG_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888); + Bitmap* pMsgPressed = pAppResource->GetBitmapN(IDB_LOG_DETAIL_MSG_PRESSED_ICON ,BITMAP_PIXEL_FORMAT_ARGB8888); + + __pButtonMessage = static_cast(GetControl(IDC_BUTTON_MESSAGE)); + __pButtonMessage->SetActionId(IDA_CALL_LOG_MESSAGE); + __pButtonMessage->AddActionEventListener(*this); + + if (pBgNormal != null) + { + __pButtonMessage->SetNormalBackgroundBitmap(*pBgNormal); + delete pBgNormal; + pBgNormal = null; + } + if (pBgPressed != null) + { + __pButtonMessage->SetPressedBackgroundBitmap(*pBgPressed); + delete pBgPressed; + pBgPressed = null; + } + if (pMsgNormal != null) + { + __pButtonMessage->SetNormalBitmap(Point(0, 0), *pMsgNormal); + delete pMsgNormal; + pMsgNormal = null; + } + if (pMsgPressed != null) + { + __pButtonMessage->SetPressedBitmap(Point(0, 0), *pMsgPressed); + delete pMsgPressed; + pMsgPressed = null; + } + + __pSelectAll = static_cast(GetControl(IDC_SELECTALL)); + __pSelectAll->SetActionId(IDA_SELECT_ALL_CHECKED, IDA_SELECT_ALL_UNCHECKED); + __pSelectAll->SetSize(GetClientAreaBounds().width, 112); + __pSelectAll->SetShowState(false); + __pSelectAll->AddActionEventListener(*this); + + __pList = new (std::nothrow) GroupedListView(); + if (__pList != null) + { + __listHeight = GetClientAreaBounds().height - __pButtonContactImage->GetBounds().height - __pButtonMessage->GetBounds().height - 40; + int listY = __pButtonContactImage->GetBounds().height + __pButtonMessage->GetBounds().height + 40; + __pList->Construct(Rectangle(0, listY, GetClientAreaBounds().width, __listHeight), GROUPED_LIST_VIEW_STYLE_INDEXED, true, SCROLL_STYLE_FADE_OUT); + + __pList->AddGroupedListViewItemEventListener(*this); + r = AddControl(__pList); + TryCatch(r == E_SUCCESS, , "call log detail list control not added"); + } + + __pSelectedLabel = static_cast(GetControl(IDC_LABEL_DETAIL_SELECTED)); + if(__pSelectedLabel != null) + { + SetControlAlwaysOnTop(*__pSelectedLabel,true); + __pSelectedLabel->SetBackgroundColor(COLOR_DELAIL_LABEL_SELECTED); + __pSelectedLabel->SetTextColor(COLOR_DELAIL_LABEL_SELECTED_TEXT); + __pSelectedLabel->SetShowState(false); + } + return r; +CATCH: + return r; +} + +result +DlLogsDetailForm::OnTerminating(void) +{ + result r = E_SUCCESS; + delete __pConfirmationDeletePopup; + __pConfirmationDeletePopup = null; + return r; +} + +bool +DlLogsDetailForm::DeleteSelectedCalllog(void) +{ + + return false; +} + + +void +DlLogsDetailForm::OnActionPerformed(const Control& source, int actionId) +{ + switch (actionId) + { + + case IDA_CALL_LOG_CALL: + { + if(__isCallAppControlLaunched == true) + { + AppLogDebug("Call AppControl is already launched"); + return; + } + if (__number.IsEmpty() == false) + { + PhoneApp* pPhoneApp = static_cast(UiApp::GetInstance()); + if (pPhoneApp->IsOpenAsAppControl() == false) + { + CalLogPresentationModel* pLogPresentor = CalLogPresentationModel::GetInstance(); + pLogPresentor->DialCall(__number); + __isCallAppControlLaunched = true; + } + else + { + //launched as AppControl + /*HashMap resultData; + resultData.Construct(); + resultData.Add(new (std::nothrow) String(PARAM_PHONE_NUMBER), new (std::nothrow) String(__number)); + //send "APP_CTRL_RESULT_SUCCEEDED" and 'contactNumber' as result. + pPhoneApp->SendAppControlResponseMessage(APP_CTRL_RESULT_SUCCEEDED, &resultData); + resultData.RemoveAll(true);*/ + CalLogPresentationModel* pLogPresentor = CalLogPresentationModel::GetInstance(); + pLogPresentor->DialCall(__number); + pPhoneApp->Terminate(); + } + } + } + break; + + case IDA_CALL_LOG_MESSAGE: + { + if(__isMsgAppControlLaunched == true) + { + //Message AppControl is already launched + return; + } + + //launch message + __isMsgAppControlLaunched = true; + result r = E_SUCCESS; + HashMap extraData; + extraData.Construct(); + + extraData.Add(new (std::nothrow) String(MESSAGE_TYPE), new (std::nothrow) String(MESSAGE_SMS_TYPE)); + String tempContactNumber; + int commaIndex = 0; + int semiColonIndex = 0; + int index = 0; + __number.IndexOf(",", 0, commaIndex); + __number.IndexOf(";", 0, semiColonIndex); + + if(commaIndex != -1 && semiColonIndex != -1) + { + index = commaIndex < semiColonIndex ? commaIndex : semiColonIndex; + } + else if(commaIndex != -1 || semiColonIndex != -1) + { + index = commaIndex > semiColonIndex ? commaIndex : semiColonIndex; + } + else + { + index = __number.GetLength(); + } + __number.SubString(0, index, tempContactNumber); + + extraData.Add(new (std::nothrow) String(MESSAGE_TO), new (std::nothrow) String(tempContactNumber)); + + String uri = L"sms:"; + uri.Append(tempContactNumber); + r = AppControl::FindAndStart(OPERATION_ID_COMPOSE,&uri,null,null,null,this); + if(r != E_SUCCESS) + { + //AppControl failed. + __isMsgAppControlLaunched = false; + } + /*AppControl* pAc = AppManager::FindAppControlN(PROVIDER_ID_MESSAGE, OPERATION_ID_COMPOSE); + if (pAc != null) + { + r = pAc->Start(null, null, &extraData, this); + if(r != E_SUCCESS) + { + //AppControl failed. + __isMsgAppControlLaunched = false; + } + delete pAc; + }*/ + extraData.RemoveAll(true); + } + break; + + case IDA_FOOTER_BUTTON_LEFT: + { + if(__isContactAppControlLaunched == true || __isMsgAppControlLaunched == true || __isCallAppControlLaunched == true) + { + AppLog("AppControl lunching. Can not do delete operation"); + return; + } + const wchar_t* pContact = __number.GetPointer(); + int len = __number.GetLength() + 1; + char* pNumber = new (std::nothrow) char[len]; + wcstombs(pNumber, pContact, len); + if (__isEditMode == false) + { + SetFormMode(true); + UnCheckAllItems(); + __calllogListByNum = __pLogPresentor->GetCallogListByNumberFromDatabaseN(pNumber); + __pList->UpdateList(); + __pList->Invalidate(false); + } + else + { + ShowDeleteConfirmationPopup(); + } + delete[] pNumber; + pNumber = null; + } + break; + + case IDA_POPUP_DELETE_YES: + { + if(__pConfirmationDeletePopup != null) + { + __pConfirmationDeletePopup->SetShowState(false); + } + ShowDeletePopup(); + } + break; + + case IDA_POPUP_DELETE_NO: + { + if(__pConfirmationDeletePopup != null) + { + __pConfirmationDeletePopup->SetShowState(false); + } + } + break; + + case IDA_SELECT_ALL_UNCHECKED: + { + SetListItemSelectStatus(false); + __pCallLogId->RemoveAll(); + __selectedItemCount = 0; + String selStr = AppUtility::GetResourceString(IDS_SELECT_CALL_LOG); + __pSelectedLabel->SetText(selStr); + __pSelectedLabel->Invalidate(false); + } + break; + case IDA_SELECT_ALL_CHECKED: + { + __pCallLogId->RemoveAll(); + SetAllListItems(true); + __selectedItemCount = __listItemCount; + String text; + String selItemStr = L""; + selItemStr = AppUtility::GetResourceString(IDS_SELECTED_ITEM_STRING); + text.Format(100, selItemStr.GetPointer(), __listItemCount); + __pSelectedLabel->SetText(text); + __pSelectedLabel->Invalidate(false); + } + break; + case IDA_POPUP_DELETE_CANCEL: + { + __deleteLogsTimer.Cancel(); + HideDeletePopup(); + } + break; + + case IDA_CONTEXTMENU_DETAILS: + { + ViewContactDetail(); + } + break; + + case IDA_CONTEXTMENU_ADDTOCONTACT: + { + result r = __pLogPresentor->LaunchAddContactsAppControl(__number); + if(r == E_SUCCESS) + { + __isContactAppControlLaunched = true; + } + } + break; + + case IDA_CONTEXTMENU_BLOCK: + { + ShowBlockPopup(); + } + break; + + default: + break; + } +} + +void +DlLogsDetailForm::GetUpdatedListFromDatabase() +{ + AppLogDebug("Enter"); + if(__calllogListByNum != null) + { + AppLog(" list already present, UPDATE"); + __calllogListByNum->RemoveAll(); + delete __calllogListByNum; + __calllogListByNum = null; + } + + const wchar_t* pContact = __number.GetPointer(); + int len = __number.GetLength() + 1; + char* pNumber = new (std::nothrow) char[len]; + wcstombs(pNumber, pContact, len); + __calllogListByNum = __pLogPresentor->GetCallogListByNumberFromDatabaseN(pNumber); + __calllogCount = __pLogPresentor->GetCalllogCountByNumber(); + + delete[] pNumber; +} + +void +DlLogsDetailForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs) +{ + AppLogDebug("Enter"); + AddOrientationEventListener(*this); + PhoneApp* pPhoneApp = static_cast(PhoneApp::GetInstance()); + pPhoneApp->AddAppStateChangeListener(*this); + Tizen::System::SettingInfo::AddSettingEventListener(*this); + __pLogPresentor = CalLogPresentationModel::GetInstance(); + __pLogPresentor->AddCalllogChangeListener(*this); + __isPresentInContacts = false; + __selectedItemCount =0; + __isMsgAppControlLaunched = false; + __isCallAppControlLaunched = false; + if(pArgs != null) + { + __number.Clear(); + String* pNumberStr = static_cast (pArgs->GetAt(0)); + __number.Append(*pNumberStr); + //UpdateForm(); + pArgs->RemoveAll(); + delete pArgs; + pArgs = null; + } + __pList->SetItemProvider(*__pDataProvider); + GetUpdatedListFromDatabase(); + UpdateForm(); + SetFormMode(false); + SetSceneVisible(true); +} + +void +DlLogsDetailForm::UpdateForm(void) +{ + AppLogDebug("Enter"); + SettingsPresentationModel* pSettingsPresentationModel = SettingsPresentationModel::GetInstance(); + bool isCallToBeRejected = pSettingsPresentationModel->IsCallToBeRejected(__number); + __isCallBeRejected = isCallToBeRejected; + __isPresentInContacts = false; + + AppLog("__calllogCount = %d", __calllogCount); + if(__calllogCount == 0) + { + return; + } + __contactName = L""; + Bitmap* pBitmap = null; + Addressbook* pAddressBook = AddressbookManager::GetInstance()->GetAddressbookN(); + if (pAddressBook != null) + { + IList* pNumberContactsList = null; + if(__number.Contains(L"@")) + { + pNumberContactsList = pAddressBook->SearchContactsByEmailN(__number); + } + else + { + pNumberContactsList = pAddressBook->SearchContactsByPhoneNumberN(__number); + } + if(pNumberContactsList != null) + { + IEnumerator* pContactListEnum = pNumberContactsList->GetEnumeratorN(); + while (pContactListEnum->MoveNext() == E_SUCCESS) + { + Contact* pContact = static_cast(pContactListEnum->GetCurrent()); + if(pContact != null) + { + IList* pPhoneNumberList = null; + if(__number.Contains(L"@")) + { + pPhoneNumberList = pContact->GetValuesN(CONTACT_MPROPERTY_ID_EMAILS); + if (pPhoneNumberList != null) + { + IEnumerator* pEnum = pPhoneNumberList->GetEnumeratorN(); + while (E_SUCCESS == pEnum->MoveNext()) + { + Email* pPhoneNumber = (Email*) pEnum->GetCurrent(); + if(pPhoneNumber->GetEmail().Equals(__number) == true) + { + __isPresentInContacts = true; + break; + } + } + delete pEnum; + pPhoneNumberList->RemoveAll(true); + delete pPhoneNumberList; + } + } + else + { + pPhoneNumberList = pContact->GetValuesN(CONTACT_MPROPERTY_ID_PHONE_NUMBERS); + if (pPhoneNumberList != null) + { + IEnumerator* pEnum = pPhoneNumberList->GetEnumeratorN(); + while (E_SUCCESS == pEnum->MoveNext()) + { + PhoneNumber* pPhoneNumber = (PhoneNumber*) pEnum->GetCurrent(); + if(pPhoneNumber->GetPhoneNumber().Equals(__number) == true) + { + __isPresentInContacts = true; + break; + } + } + delete pEnum; + pPhoneNumberList->RemoveAll(true); + delete pPhoneNumberList; + } + } + + + if(__isPresentInContacts == true) + { + //fetch contact name + __contactName.Clear(); + pContact->GetValue(CONTACT_PROPERTY_ID_DISPLAY_NAME, __contactName); + //fetch person's photo + pBitmap = pContact->GetThumbnailN(); //In case of big image, it will return null. + if(pBitmap == null) + { + AppLog("Fetch big image"); + String thumbnailPath; + pContact->GetValue(CONTACT_PROPERTY_ID_THUMBNAIL, thumbnailPath); + if(thumbnailPath.IsEmpty() == true) + { + IList* pCategoryList = pAddressBook->GetCategoriesByContactN(pContact->GetRecordId()); + if(pCategoryList != null && pCategoryList->GetCount() > 0) + { + AppLogDebug("Changes to get thumbnail group photo"); + Category* pCategory = static_cast(pCategoryList->GetAt(0)); + thumbnailPath = pCategory->GetThumbnailPath(); + } + } + ImageBuffer thumbnailImageBuffer; + if (thumbnailImageBuffer.Construct(thumbnailPath) == E_SUCCESS) + { + pBitmap = thumbnailImageBuffer.GetBitmapN(BITMAP_PIXEL_FORMAT_ARGB8888, BUFFER_SCALING_NONE); + } + } + ManageUserDetail(); + //todo: set the contact button image + Canvas* pCanvas = null; + pCanvas = new (std::nothrow) Canvas(); + pCanvas->Construct(Rectangle(0,0,__pButtonContactImage->GetBounds().width,__pButtonContactImage->GetBounds().height)); + //set bitmap to button + if (pBitmap == null) + { + pBitmap = AppUtility::GetBitmapFromResourcesN(L"C01-1_icon_contacts.png", W_CONTACT_BITMAP_ITEM, H_CONTACT_BITMAP_ITEM); + } + else + { + //scale bitmap to predefined size + pBitmap->SetScalingQuality(BITMAP_SCALING_QUALITY_MID); + pBitmap->Scale(Dimension(W_CONTACT_BITMAP_ITEM, H_CONTACT_BITMAP_ITEM)); + } + + pCanvas->DrawBitmap(Rectangle(Point(0, 0), Dimension(pBitmap->GetWidth(), pBitmap->GetHeight())), *pBitmap); + delete pBitmap; + pBitmap = null; + //TODO: chk whether the number is blocked and add icon in top right + bool isMsgBeRejected = SettingsPresentationModel::GetInstance()->GetMsgFilterListIndex(__number); + if (isCallToBeRejected == true || isMsgBeRejected == true) + { + pBitmap = AppUtility::GetBitmapFromResourcesN(L"C01-4_icon_Blocked.png", W_BLOCKED_ICON, H_BLOCKED_ICON); + pCanvas->DrawBitmap(Rectangle(Point(86, 0), Dimension(pBitmap->GetWidth(), pBitmap->GetHeight())), *pBitmap); + delete pBitmap; + pBitmap = null; + } + if(__isEditMode == false) + { + Bitmap* pActualBgBmp = new Bitmap(); + pActualBgBmp->Construct(*pCanvas, pCanvas->GetBounds()); + __pButtonContactImage->SetNormalBackgroundBitmap(*pActualBgBmp); + __pButtonContactImage->SetPressedBackgroundBitmap(*pActualBgBmp); + __pButtonContactImage->SetHighlightedBackgroundBitmap(*pActualBgBmp); + __pButtonContactImage->SetShowState(true); + __pButtonContactImage->Invalidate(false); + delete pCanvas; + delete pActualBgBmp; + } + break; + } + } + } + delete pContactListEnum; + pNumberContactsList->RemoveAll(true); + delete pNumberContactsList; + delete pAddressBook; + pAddressBook = null; + } + } + + if (__isPresentInContacts == false) + { + __isPresentInContacts = false; + //not in contacts rearrage the icons + ManageUserDetail(); + //if(__isEditMode == false) + { + //todo set bitmap + bool isMsgBeRejected = SettingsPresentationModel::GetInstance()->GetMsgFilterListIndex(__number); + if (isCallToBeRejected == true || isMsgBeRejected == true) + { + pBitmap = AppUtility::GetBitmapFromResourcesN(L"C01-4_icon_Blocked.png", W_BLOCKED_ICON, H_BLOCKED_ICON); + __pLabelBlocked->SetBackgroundBitmap(*pBitmap); + delete pBitmap; + pBitmap = null; + } + else + { + Canvas* pCanvas = null; + pCanvas = new (std::nothrow) Canvas(); + pCanvas->Construct(Rectangle(0,0,__pLabelBlocked->GetBounds().width,__pButtonContactImage->GetBounds().height)); + Bitmap* pActualBgBmp = new Bitmap(); + pActualBgBmp->Construct(*pCanvas, pCanvas->GetBounds()); + __pLabelBlocked->SetBackgroundBitmap(*pActualBgBmp); + delete pCanvas; + delete pActualBgBmp; + } + __pLabelBlocked->SetShowState(true); + __pLabelBlocked->Invalidate(false); + } + } + if (__pDataProvider != null) + { + __pDataProvider->ResetDetailsList(); + } + __pList->UpdateList(); + __pList->Invalidate(true); + if(__number.Contains(L"@")) + { + __pButtonCall->SetEnabled(false); + } + else + { + __pButtonCall->SetEnabled(true); + } +} + +void +DlLogsDetailForm::ManageUserDetail() +{ + if(__isEditMode == false) + { + AppLogDebug("Enter"); + float fontSize; + float itemHeight; + AppUtility::GetGlobalFontAndItemHeight(&fontSize, &itemHeight); + if(fontSize == 44.0f) + { + fontSize = 50.0f; //normal fort size + } + if(__isPresentInContacts == true) + { + String contactNameStr; + contactNameStr.Format(100, L"%ls",__contactName.GetPointer(), __calllogCount); + Font* ContactNameTextfont = new (std::nothrow) Font(); + ContactNameTextfont->Construct(FONT_STYLE_BOLD, fontSize); + FloatDimension textDimension; + ContactNameTextfont->GetTextExtent(contactNameStr, contactNameStr.GetLength(), textDimension); + delete ContactNameTextfont; + float width = 0.0; + String countString = L"(" + Integer::ToString(__calllogCount) + L")"; + float countStringWidth = 0.0; + float stringHeight = 0.0; + GetTextWidthHeight(countString, fontSize, &countStringWidth, &stringHeight); + __pPanelName->SetSize(__pPanelName->GetWidthF(), stringHeight); + width = __pPanelName->GetWidthF() - countStringWidth; + Label* pLabelName = static_cast(GetControl(IDC_LABEL_NAME, true)); + Label* pLabelCount = static_cast(GetControl(IDC_LABEL_NUMBER_COUNT, true)); + if(pLabelName != null && pLabelCount != null) + { + pLabelName->SetTextHorizontalAlignment(ALIGNMENT_LEFT); + pLabelCount->SetTextHorizontalAlignment(ALIGNMENT_LEFT); + + pLabelName->SetTextConfig(fontSize, LABEL_TEXT_STYLE_BOLD); + pLabelCount->SetTextConfig(fontSize, LABEL_TEXT_STYLE_BOLD); + if(textDimension.width > width) + { + pLabelName->SetBounds(FloatRectangle(0, 0, width, __pPanelName->GetHeightF())); + pLabelName->SetText(contactNameStr); + pLabelName->SetShowState(true); + pLabelName->Invalidate(false); + + pLabelCount->SetBounds(FloatRectangle(width, 0, __pPanelName->GetWidthF() - countStringWidth, __pPanelName->GetHeightF())); + pLabelCount->SetText(countString); + pLabelCount->SetShowState(true); + pLabelCount->Invalidate(false); + } + else + { + contactNameStr.Format(100, L"%ls (%d)",__contactName.GetPointer(), __calllogCount); + pLabelName->SetBounds(FloatRectangle(0, 0, __pPanelName->GetWidthF(), __pPanelName->GetHeightF())); + pLabelName->SetText(contactNameStr); + pLabelName->SetShowState(true); + pLabelName->Invalidate(false); + pLabelCount->SetShowState(false); + } + } + + __pPanelName->SetShowState(true); + __pPanelName->Invalidate(true); + __pLabelNumber->SetText(__number); + __pLabelNumber->SetShowState(true); + __pLabelNumber->Invalidate(false); + __pPanelNumberUnsaved->SetShowState(false); + __pPanelNumberUnsaved->Invalidate(true); + __pLabelBlocked->SetShowState(false); + __pLabelBlocked->Invalidate(false); + } + else + { + String contactNameStr; + contactNameStr.Format(100, L"%ls",__number.GetPointer(), __calllogCount); + Font* ContactNameTextfont = new (std::nothrow) Font(); + ContactNameTextfont->Construct(FONT_STYLE_BOLD, fontSize); + FloatDimension textDimension; + ContactNameTextfont->GetTextExtent(contactNameStr, contactNameStr.GetLength(), textDimension); + delete ContactNameTextfont; + float width = 0.0; + String countString = L" (" + Integer::ToString(__calllogCount) + L")"; + float countStringWidth = 0.0; + float stringHeight = 0.0; + GetTextWidthHeight(countString, fontSize, &countStringWidth, &stringHeight); + __pPanelNumberUnsaved->SetSize(__pPanelNumberUnsaved->GetWidthF(), stringHeight); + width = __pPanelNumberUnsaved->GetWidthF() - countStringWidth; + Label* pLabelNumber = static_cast(GetControl(IDC_LABEL_UNSAVED_NUMBER, true)); + Label* pLabelCount = static_cast(GetControl(IDC_LABEL_COUNT, true)); + + if(pLabelNumber != null && pLabelCount != null) + { + pLabelNumber->SetTextHorizontalAlignment(ALIGNMENT_LEFT); + pLabelCount->SetTextHorizontalAlignment(ALIGNMENT_LEFT); + + pLabelNumber->SetTextConfig(fontSize, LABEL_TEXT_STYLE_BOLD); + pLabelCount->SetTextConfig(fontSize, LABEL_TEXT_STYLE_BOLD); + if(textDimension.width > width) + { + pLabelNumber->SetBounds(FloatRectangle(0, 0, width, __pPanelNumberUnsaved->GetHeightF())); + pLabelNumber->SetText(contactNameStr); + pLabelNumber->SetShowState(true); + pLabelNumber->Invalidate(false); + + pLabelCount->SetBounds(FloatRectangle(width, 0, __pPanelNumberUnsaved->GetWidthF() - countStringWidth, __pPanelNumberUnsaved->GetHeightF())); + pLabelCount->SetText(countString); + pLabelCount->SetShowState(true); + pLabelCount->Invalidate(false); + } + else + { + pLabelNumber->SetBounds(FloatRectangle(0, 0, __pPanelNumberUnsaved->GetWidthF(), __pPanelNumberUnsaved->GetHeightF())); + contactNameStr.Format(100, L"%ls (%d)",__number.GetPointer(), __calllogCount); + pLabelNumber->SetText(contactNameStr); + pLabelNumber->SetShowState(true); + pLabelNumber->Invalidate(false); + pLabelCount->SetShowState(false); + } + } + + __pPanelNumberUnsaved->SetShowState(true); + __pPanelNumberUnsaved->Invalidate(true); + __pPanelName->SetShowState(false); + __pPanelName->Invalidate(true); + __pLabelNumber->SetShowState(false); + __pLabelNumber->Invalidate(false); + __pButtonContactImage->SetShowState(false); + __pButtonContactImage->Invalidate(true); + } + } +} + +void +DlLogsDetailForm::GetTextWidthHeight(String str, float fontSize, float *width, float *height) +{ + TextElement* pTextElement = new (std::nothrow) TextElement(); + pTextElement->Construct(str); + Font* ContactNameTextfont = new (std::nothrow) Font(); + ContactNameTextfont->Construct(FONT_STYLE_BOLD, fontSize); + FloatDimension textDimension; + ContactNameTextfont->GetTextExtent(str, str.GetLength(), textDimension); + *width = textDimension.width; + *height = textDimension.height; + delete ContactNameTextfont; + delete pTextElement; +} + +void +DlLogsDetailForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId) +{ + PhoneApp* pPhoneApp = static_cast(PhoneApp::GetInstance()); + pPhoneApp->RemoveAppStateChangeListener(*this); + Tizen::System::SettingInfo::RemoveSettingEventListener(*this); + SetSceneVisible(false); + __pLogPresentor->RemoveCalllogChangeListner(*this); + if (__pDataProvider != null) + { + __pDataProvider->ResetDetailsList(); + } + if (__pLogPresentor != null) + { + __pLogPresentor = null; + } + RemoveOrientationEventListener(*this); +} + + +void +DlLogsDetailForm::SetFormMode(bool editMode) +{ + AppLogDebug("Enter"); + if (editMode == false) + { + //UpdateForm(); + __isEditMode = false; + __pSelectAll->SetShowState(false); + __pDataProvider->SetViewMode(false); + __pFormFooter->RemoveItemAt(1); + if (__isPresentInContacts == false) + { + __pLabelBlocked->SetShowState(true); + __pPanelNumberUnsaved->SetShowState(true); + __pPanelName->SetShowState(false); + __pLabelNumber->SetShowState(false); + __pButtonContactImage->SetShowState(false); + } + else + { + __pPanelNumberUnsaved->SetShowState(false); + __pLabelBlocked->SetShowState(false); + __pPanelName->SetShowState(true); + __pLabelNumber->SetShowState(true); + __pButtonContactImage->SetShowState(true); + } + __pButtonCall->SetShowState(true); + __pButtonMessage->SetShowState(true); + int listY = __pButtonContactImage->GetBounds().height + __pButtonMessage->GetBounds().height + 40; + __listHeight = GetClientAreaBounds().height - __pButtonContactImage->GetBounds().height - __pButtonMessage->GetBounds().height - 40; + __pList->SetBounds(Rectangle(0, listY, GetClientAreaBounds().width, __listHeight)); + __listItemCount = __pLogPresentor->GetCalllogCountByNumber(); + __pFormFooter->SetItemEnabled(0, true); + __pList->RemoveGroupedListViewItemEventListener(*this); + __pSelectAll->SetSelected(false); + __pSelectedLabel->SetShowState(false); + __pSelectedLabel->Invalidate(false); + __pList->Invalidate(true); + } + else + { + __isEditMode = true; + __pSelectAll->SetShowState(true); + __pDataProvider->SetViewMode(true); + __pList->AddGroupedListViewItemEventListener(*this); + if (__isPresentInContacts == false) + { + __pLabelBlocked->SetShowState(false); + __pPanelNumberUnsaved->SetShowState(false); + __pPanelName->SetShowState(false); + __pLabelNumber->SetShowState(false); + __pButtonContactImage->SetShowState(false); + } + else + { + __pPanelNumberUnsaved->SetShowState(false); + __pLabelBlocked->SetShowState(false); + __pPanelName->SetShowState(false); + __pLabelNumber->SetShowState(false); + __pButtonContactImage->SetShowState(false); + } + __pButtonCall->SetShowState(false); + __pButtonMessage->SetShowState(false); + __pList->SetBounds(GetClientAreaBounds().x, __pSelectAll->GetHeight(), GetClientAreaBounds().width, GetClientAreaBounds().height - (__pSelectAll->GetHeight()+__pSelectedLabel->GetHeight())); + __listItemCount = __pLogPresentor->GetCalllogCountByNumber(); + __pFormFooter->SetItemEnabled(0, false); + __selectedItemCount = 0; + String selStr = AppUtility::GetResourceString(IDS_SELECT_CALL_LOG); + __pSelectedLabel->SetText(selStr); + __pSelectedLabel->SetShowState(true); + __pSelectedLabel->Invalidate(false); + } + __pSelectAll->Invalidate(true); + if(__number.Contains(L"@")) + { + __pButtonCall->SetEnabled(false); + } + else + { + __pButtonCall->SetEnabled(true); + } + __pButtonCall->Draw(); + __pFormFooter->Draw(); +} + +void +DlLogsDetailForm::UnCheckAllItems(void) +{ + AppLogDebug("Enter"); + SetListItemSelectStatus(false); + __selectedItemCount = 0; +} +void +DlLogsDetailForm::SetAllListItems(bool checked) +{ + AppLogDebug("Enter"); + SetListItemSelectStatus(true); + __listItemCount = __pLogPresentor->GetCalllogCountByNumber(); + __selectedItemCount = __listItemCount; + String text; + String selItemStr = L""; + selItemStr = AppUtility::GetResourceString(IDS_SELECTED_ITEM_STRING); + text.Format(100, selItemStr.GetPointer(), __listItemCount); + __pSelectedLabel->SetText(text); + __pSelectedLabel->Invalidate(false); +} + +void +DlLogsDetailForm::SetListItemSelectStatus(bool status) +{ + int groupIndex = 0; + int itemIndex = 0; + int itemCount = 0; + + __isSelectAll = status; + CallLogDetails* pCalllogInfo = null; + for (; groupIndex < __pList->GetGroupCount(); groupIndex++) + { + itemCount = __pList->GetItemCountAt(groupIndex); + for (itemIndex = 0; itemIndex < itemCount; itemIndex++) + { + __pList->SetItemChecked(groupIndex, itemIndex, status); + if(status == true) + { + __pDataProvider->GetItemAtGroupIndex(groupIndex, itemIndex, &pCalllogInfo); + __pCallLogId->Add(new Integer(pCalllogInfo->GetCalllogDbId())); + } + } + } + __pFormFooter->SetItemEnabled(0, status); + __pFormFooter->Invalidate(true); + __pList->Invalidate(true); +} + +void +DlLogsDetailForm::OnFormBackRequested(Form& source) +{ + AppLog("Enter"); + if(__isContactAppControlLaunched == true || __isMsgAppControlLaunched == true || __isCallAppControlLaunched == true) + { + return; + } + if(__isEditMode == true) + { + __pCallLogId->RemoveAll(); + SetFormMode(false); + GetUpdatedListFromDatabase(); + UpdateForm(); + __pList->UpdateList(); + } + else + { + SceneManager* pSceneManager = SceneManager::GetInstance(); + pSceneManager->GoForward(ForwardSceneTransition(IDSCN_CALL_LOG, SCENE_TRANSITION_ANIMATION_TYPE_NONE, + SCENE_HISTORY_OPTION_NO_HISTORY)); + } +} + +void +DlLogsDetailForm::OnAppControlCompleteResponseReceived(const AppId& appId, const String& operationId, AppCtrlResult appControlResult, const IMap* pExtraData) +{ + if (__isMsgAppControlLaunched == true) + { + //Message AppControl request completed. + __isMsgAppControlLaunched = false; + } + if (__isCallAppControlLaunched == true) + { + //Call AppControl request completed. + __isCallAppControlLaunched = false; + } +} +void +DlLogsDetailForm::ShowDeletePopup(void) +{ + __isDeleteInProgress = true; + if (__pDeletePopup != null) + { + delete __pDeletePopup; + __pDeletePopup = null; + } + __deleteGroupIndex = 0; + __deleteItemIndex = 0; + __pDeletePopup = new (std::nothrow) Popup(); + __pDeletePopup->Construct(false, Dimension(W_DELETE_POPUP, H_DELETE_POPUP)); + __pDeletePopup->AddWindowEventListener(*this); + + Rectangle clientBounds = __pDeletePopup->GetClientAreaBounds(); + + Label* pLabelTitle = new (std::nothrow) Label(); + pLabelTitle->Construct(Rectangle(0, Y_DELETE_POPUP_TITLE, clientBounds.width, H_DELETE_POPUP_ELEMENT), AppUtility::GetResourceString(IDS_DELETING_CALL_LOGS)); + pLabelTitle->SetTextColor(COLOR_DELETE_POPUP_TEXT); + pLabelTitle->SetTextConfig(FONT_SIZE_DELETE_POPUP_TEXT, LABEL_TEXT_STYLE_BOLD); + pLabelTitle->SetTextHorizontalAlignment(ALIGNMENT_LEFT); + + __pDeletePopup->AddControl(*pLabelTitle); + + Progress* pProgress = new (std::nothrow) Progress(); + pProgress->Construct(Rectangle(0, Y_DELETE_POPUP_TITLE + H_DELETE_POPUP_ELEMENT, clientBounds.width, H_DELETE_POPUP_PROGRESS), 0, __selectedItemCount); + + __pDeletePopup->AddControl(*pProgress); + + Label* pLabelPercentage = new (std::nothrow) Label(); + pLabelPercentage->Construct(Rectangle(0, pProgress->GetY() + pProgress->GetHeight(), clientBounds.width / 2, H_DELETE_POPUP_ELEMENT), Integer::ToString(pProgress->GetPercentComplete()) + L"%"); + pLabelPercentage->SetTextHorizontalAlignment(ALIGNMENT_LEFT); + pLabelPercentage->SetTextColor(COLOR_DELETE_POPUP_TEXT); + pLabelPercentage->SetTextConfig(FONT_SIZE_DELETE_POPUP_TEXT, LABEL_TEXT_STYLE_NORMAL); + + __pDeletePopup->AddControl(*pLabelPercentage); + + String currentOfTotal(Integer::ToString(pProgress->GetValue()) + L" / " + Integer::ToString(__selectedItemCount)); + Label* pLabelTotal = new (std::nothrow) Label(); + pLabelTotal->Construct(Rectangle(clientBounds.width / 2, pLabelPercentage->GetY(), clientBounds.width / 2, H_DELETE_POPUP_ELEMENT), currentOfTotal); + pLabelTotal->SetTextHorizontalAlignment(ALIGNMENT_RIGHT); + pLabelTotal->SetTextColor(COLOR_DELETE_POPUP_TEXT); + pLabelTotal->SetTextConfig(FONT_SIZE_DELETE_POPUP_TEXT, LABEL_TEXT_STYLE_NORMAL); + + __pDeletePopup->AddControl(*pLabelTotal); + + Button* pCancelButton = new (std::nothrow) Button(); + pCancelButton->Construct(Rectangle((clientBounds.width - W_DELETE_POPUP_CANCEL_BUTTON) / 2, Y_DELETE_POPUP_CANCEL_BUTTON, W_DELETE_POPUP_CANCEL_BUTTON, H_DELETE_POPUP_CANCEL_BUTTON)); + pCancelButton->SetText(AppUtility::GetResourceString(IDS_CANCEL_DELETING_CALL_LOGS)); + pCancelButton->SetActionId(IDA_POPUP_DELETE_CANCEL); + pCancelButton->AddActionEventListener(*this); + + __pDeletePopup->AddControl(pCancelButton); + __pDeletePopup->Show(); +} + +void +DlLogsDetailForm::OnWindowActivated (const Tizen::Ui::Window &source) +{ + __deleteLogsTimer.Start(1); +} + +void +DlLogsDetailForm::OnTimerExpired(Tizen::Base::Runtime::Timer &timer) +{ + Progress* pProgress = static_cast(__pDeletePopup->GetControl(1)); + + pProgress->SetValue(pProgress->GetValue() + 1); + pProgress->Invalidate(false); + + Label* pLabelPercentage = static_cast

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 aI-&qSUF1;8{C5_}ufR~(Os5j=5dKeagsrCl literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_keypad_number_00.png b/res/screen-density-xhigh/C01-3_keypad_number_00.png new file mode 100644 index 0000000000000000000000000000000000000000..db81ec04612016d75fb5bb125b8163c87fe8a8a2 GIT binary patch literal 4225 zcmbVQcT`i^w+_Acq7)$n1(c8ip+%_)ASlwJAaw#s2tpD{kfulxjL}FF5J9@26saN* z6&X=LM2#RAnl#a&DM%Ageqm;u_x_mmduzSB*1f0P@7w#^`|NYiTKBT!2^%qCMPUE{ zAZB|M?aXP1IJdhXKj%4CeUyjOC{V53s4f%&H3A!o2Uy@JzIdQ53G0t{#$$0&A>H^R z000jm0OLk=vprcq-5r?;k)m0exY%fq(%x6OgOE zJgsS1I$=>{ zDmGGw9H#!u0vaFY7a9;u4WN*LyB4v&lyIsEh@PRgK>*kC9e z0)vuByK()A4x>8b|3}8ZqQfvz!FZ@MK8z9`>c?3Rg8DBqCwKqd(Jqjq2I&wQz*!V* z5Sro_PQsI^wrCR&=M4lGfJ0irEzlNd1Pr0Chp^Ix!;N8ja4QRaBSU>FILaD<_+{hY zxRwY#n6;&zu^s|p2!~tgTA-}qC^Q<4vfvE$5$IoBTXGl`OZLP6@*BYM`#0CkQbJYGHasS1|{eN-><%ogq7RUc8mS0nx3f%4fQ~I32Kbr?n=IoeI&emuXPz(Y9 zMC)wP7MRGPd9N6ZjH{xACAT7wXK#mqv{Zk>$BD$vin7P9m{grZbZJ%0oDB2css3t} ztxLDdA#*CN_dG;8Z%6kpoF1f?+eAEQz6X6nm#9C3(MWI-^i5Eb4elKik=aLB|KJzWO7$ zl+=%)W9AxxolCe8_}4nO#rML@VV*eR@8fKTpIWIO)wEGr1bO3W^{H!&HgzQh6qzgT z4J$J(KB%Yichub!%B=?}FJ-F)-%YJP{-M6Iy*X^yANmmN|D`LiLObVqGJlBnB@f2& zXKZXRmt^m|EiAk1t-HEw(8y8ymDGt=vPpD~`(ZcS%Qx~J+I^n>bca33*GF5&`c|5o zt}wh{bvyL=2xT^xIf84IHFQEZuawqwl3i_6>unrRfz)j}5GA>iml-;Dd;bS;kLd)D zY*+B|)NM=)M%y57v$DgXr2!5n*N4b5h%D#?F_ip_S3YrYB7+20RY@*5TWo-Ns(( z{5Wpk$@O+?VX^rBW_N97>z93sWygFnqLS4Wt^_TVWma$t+}^O-c>kHH`&Li4ZFO$w z-O&L8ZAww~;z52*JUTKaf0_K7Rg~SG*F%&DOq*YIET#Pt1^)$3}@A@go(QtHP(|4K+0a~cP6=o@}tgA%(RzpzK@ej@k+<{RwXPQJ2Sq&&?! zMpGvdd`0OtMnM14)n_?9pY~ivR=BJQACB7oyq5Z=wg(p#{_#gjdyP5bW>gtk-afx? zYAORo51H4i21ciCpW~ z{R)$0G@ZDaJ`Z?gLe$!F?$w&hlL}LyrrEV=&e=hIj&kpCvxt~R`7=^VhSDDl{RW}- z_yCOF&&cK3iWdvG(I50>$+REr2LSU%ao5JZINisJ<8X$BNn(gyTdKEyOn2k!vmdjY zW17t-2H#;^Uyv(mG!j!dVWY3vEpLm73sp}xX-NZK-yA=?O3a-v1?*PQb9JB0g&wknWEs|cf)h3TUCfC+Ty#@+ql|F5%zGC$F`xul zGs)g=`T(~yw1z+JNhaXF*A;mv1o&>#PGMIhqUv<&%lA$^r}j_Z9SE68vq6Y^J()5` z_l(qh6Y zD_+xKw&SZdz??NUpILCAM`c9Y-_wl+C?xJn$=iNfb?eZjR^B|Pbg97*(o z7icMn*CDakDark*dbW#Rlw$->q`Yh|+jS>{xMaz7hLH@hT>Ny-$RFuvbARs1a3K-X zzHz54J1&>9isqhDjkA58;BUdoyGsQ7uwdj-$91`i;+&-_Z{F=~=I_7&M@0G4S-YB= zhtSdcJBN$b-c`x!n5)p_s)aqp=rhOpYH#LOw^m56_XW??Vd8dDGFpwXLjnzxAxw|sI}7T5V79d*!V&Sw za`KO;{I)SiA1LIY>ETy$oBpE-(Qb=H?Qy=22>(Nh`Rlbml{dfbi;a5bW#CM_Y}3Gw zj{dfL5Ec>&iHN-X_rl%AamS89*1q?(b0^i#95T>MUsWr@@=J}Nc&th+SZI6bMT!uK zP0AB>DvY+sE4`9Y?zZ~c@#u&VZi5*usARz+Iw2Cvv$KZ!kBa6RHW1 zwl2C`a&!W3ev=a${`Tp$L|TmsGu+F>S*ykdbwM*d+^NnU`mlz_il>-WOmu4(Poo#M z#8$6wk_u8vyjb#&%oNrS$aJ+j`Du>vq;s+EI3sWeyh=^oAA|bMs`nI_oxD@*#d`C$ zf`R>^9{%{MPoKz__8xOY1#oq3>{ynUQOud=gCAlYwwgOd>w#y2UEb52MDzKIoel(? zTn|6op)wgA%l0d=X#G+N?F-0kOtQ_u5D!jef8TsDJDEYKQ||t4+EkK}r7|R& z?b)B7{#>EqQy{vx#6q~e%^WcV>eOI5MceO_R*cOD5014wQqWPL7h9jxGf4!innvd( zA4>pq#}TPKx2o<&V))vs>gw7vmL!bqob)8r1D9TS`Y5<$Ur$edC;H*AHemMzU%0I{ zT(EV?BXKfWRjo%%|DF0HWQ4bkMb`}m_$Ig@O}Fi$O9S`O1OV%f_&%Mcm6Df@`R#PO z`fXdUQU4}uEVXbVhEQ3(m@7u>e`FX?acwR){w5deVtiwVkVdIw4o>j$#NuK;w0>#c zRlqz6oDJ?!n|iTY;I^3kaTlnCK{R*`x166F4BMkK?2u&^vv!=Gm7RLmeRxOAgTLOh z-V>aLfOs&Mu2vc2I&g{CO(pFk9Z%%duVsf}$`>$x;TAs*NKHM_fO$?%J!m@g3GC^< zJunRChu~gvrEsx$FMk)BS`}(=&ffppgWCQ|qcUwG%I3Pbu-s{!P}8B1+~+6q2?|98 zd}`{FjG6JJOan8l=O2yhF0r?cP$u}!q250?*eF|)7|9r_I7^UKSlmndjZk`npwJ>l zeo7C|btpEd8!<~$Pw;=GENmFL=hPOA5L1sd0zf-LqgEVSq-Dol*=~tmS6Wv_Tp&-wcI7A-t_I7Q2v6$C-?rm z=@XIerrI~KFJvvOG&F%Qv8;dQUY9iF_iqGq#GtyOjRBu~mG)rPLGkH@Yt85Cv^vsA zS5=hDZ{6NB?{$GIYY>W>=A1m9TsB8+rXfl54nxo#=7mZBegY`h`PEq3&xLVA?5uWn z^kYzIklxovb!ty->SQKm?zht&WgMOfJLXC(4{@E~EpCCZA~jp{)Rh-~F890I-Ox6Z z@1|7LbgOLN-8q*1YkLT_$}M)reiP-q woUgmYjiC6mvlVC<$xu=Zu+cKL!z~J+bvRO5F65f+{uHpaI)T1t`CGz&0JU>kHvj+t literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_keypad_number_01.png b/res/screen-density-xhigh/C01-3_keypad_number_01.png new file mode 100644 index 0000000000000000000000000000000000000000..0f06a056fd7c8dfe11652e4b019329619361fcf2 GIT binary patch literal 1984 zcmbVNYfuwc6b_|T3e8xp1*KFsfx=WE*$o>*wgeKgiKH|T0R<7OFrx_zZ;Eh@A=iZ2wV1tno93LT}^Dk=&xMZibe-l*9AaO_NXX7}E^_nhzh z&bjC8R%p^@u>(T`Su7S?m4au0u^ZgE0pq~);x{S&V3$ypZP=Xx;07in=LUv=J$%@$}+=sXr znEPJyxzIxsx#vs(QG*kpa2D3CI~U2EneJeY4Z`r>+M zZKX4ae`Gw>+M2c8Oz<-ZD^+CCf%C`@A9Dt|dp42J5U9b@Ee3EX+CrSt6&VQ=t->W- zu*1_E^q2yX;W8YBQDGda5Fm&cjzbhOVZ2DFK;%jk9m9B4-621K@q^D}JUgCbtk;nzCe3RN+_!Xh@2ttR!WI zGkeOqLCx&I=iZ*PdWW=Q zSMuz;e`-qKEN${~gC;5_mjws7ODp}9&&f|_%nd#~XGd{rNN~J46W?Zec1XT<6=t>|8OaQ#rWa=QgjEg zbs*qs)zP4&)*IgJz22~a!L-r7MXr%el_w9p9~I+q$KQ*N@b|#0M=x)lm(_DO^Ym@U zQH%F-dg5DQ#Yw-ds&|%4sxSOu1S3s?JUM z>4D6Z70TVQQ`_pCuIiAG=@RD}(iPRd^xStEoBVax@DDm~)yjA0kN0dC+H>{OKQ$}Y zb?4r?o_%3mKh;ye^U)z=DnkBz85vv)>t|HV&Hwc^Lz;2a(_c`er@lX)50s`-PN|q z({3d_@VY<#qNS;^Qn%Ce;BNE4rdvVGl`Sp3jt_`K-))|MYFkf#dFGzJ;~P(?-zu*9 zDRo(k-P={rF_+$j%h#m#I(v-OCq!6P%!-o2k=_OJ(|h}Wk13Aoke)9XYVJGs2|r1S zwr-tM(4AV^urP7PP4D7}ePJ!daRI}}U!2I!RO>w*mZHM*g8dD(CHkLl40}#}c5p%1 zHOc)L_E+^^wY@)b|qJ z_QY!sjVc*JrfebL$5}9-YZw5Xt+m;-d<0V`wg=(-)>5h#|}OiZ+Kiv zGzDciuT+d^3*xMM46qX^JkH-`!RlQ zEWfsBD3uox3VJ1XR;!`!nq#4l?yuBwK_ysv|ARXFZ>LY*sK2Fieo?fwcMC^f_R-FJ z(Vg!H34bNa%bNDZcZ`3v;IFb7;!wu#&~YNb{rvVon3eeT#jcUjgHwI~RFxtP- F&EGwb9Krwq literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_keypad_number_02.png b/res/screen-density-xhigh/C01-3_keypad_number_02.png new file mode 100644 index 0000000000000000000000000000000000000000..eef7198a248e2a49e51eb1e6c487f914e434e365 GIT binary patch literal 3695 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 JN?n)8{{X;CtM&i@ literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_keypad_number_04.png b/res/screen-density-xhigh/C01-3_keypad_number_04.png new file mode 100644 index 0000000000000000000000000000000000000000..cbc9274038b6bfd3f68a1edec5624e0606bfe68a GIT binary patch literal 2733 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 aZY!q8SJ72A|HMr51L?u?W|q4iIQ}09>zttg literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_keypad_number_05.png b/res/screen-density-xhigh/C01-3_keypad_number_05.png new file mode 100644 index 0000000000000000000000000000000000000000..91a8ee62f72d0737e2bf29edbc3ca93f68a48b61 GIT binary patch literal 3951 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 e(Rn)pFo5uqyS+! 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_keypad_number_09.png b/res/screen-density-xhigh/C01-3_keypad_number_09.png new file mode 100644 index 0000000000000000000000000000000000000000..acbcaa1e9738f5bf14236c47684f27ec19f84c59 GIT binary patch literal 4648 zcmbVQXH*kww~k5`1XPfw5`v)AkdOcg9TEf~h!CnE0ttkY1d~vtC=n@wR6#l_AfO1+ zds9?E1dNR$RisLbG${wac+T2f~X=q!TCE1PU?@Yl1^l)SsJkXfv?2fmB4IQ z00-PWu(mW?j49HUOjL6IC8HET^kHcO0Gc`hKF+RQcpA_J@9sg;0xdVTf`A@4EszZy zqm1z}z!N--0x5XQKr^gspqDEG2h!07Y6c)#28ei?GcbVYO`;+Lv_OB_MY8(8rokZK zpCU9bEzn<1*<#Fr24o5z2v<^8bX8V`099d15STIohEM=Pl_APt2o$WWrU+3+!qt$< z5a8bjh=oSMxgjl3hJRzRMp_^Ojpl;{gZ=&emHbtd$P{-l1c5++m7!oLRFNg2NWDs; zIR_|`s8YWzpzu^ziiZ!)gG>VcvgqtW_N8foSf2j11fmZH^N(Q?_3uEjLIw_S_5nkb zl)*&euXX(?O{H1j|HqAgm8N2^`ryG9cq-YK;>ya0o78V*R_y*e&@VxjH^}o84^~o~ zy-{RWUm~7FGe&8FSa+0g9ylZ#qKDE$!IWWe6&M-{fgqGsAZR_fx*8k}F))O|e%tsr zT|Ip@6@(fDr2>PgK_F--LJh5sfT=*yh6WI*zN*@9U1JiJ=1g+M|Hk!T;r^{_@LzS2 z1{AzAjZDFk$=<&iU``;@$W#K^2WVgkSAqa-JV-dQKlN97{#q>xPx0`>;|wWeBJj`n zB0c^E9}WG#*8P_*?*9`rFv}V6FLL}ZvizQ6G4NOSAL_FP{}d0N#Httyt29#E9}EHj ze743YJ#4_xf+G(W`%z5$GVga0H(2D6WKqGS$X7qwOf3z$;evYDBTl>y7;3P2#^6zl z;!I!gnr>x^zDNIA-^!$mpP-Q!?I0QPH!T{VQ9vl6-L>FyLVZxXXn(pEKj>s7=U)8! zQ@*7OX^_bGj81~ZEl1~DI4wv--0mO8{(OGVp;?c_311_^;md{TsB-! z_~Z!*`S5Be?rLX6qQ?Y3Kf+#OG97X>UCfRHN>7}tk$?p81((t+WdVXEHj{(v9v0Tl zpoMDcB$GERG78?}zwN=W{x&y-7x}7Tdp&YY;6y1HnRjGj(HB#lx?vdWUca3*Ymcul zI+4=tVt_rK^Z1$g2)}S${Io#Q!%E>s3|nNZ9FHiX0Ypi9Qjym|E_zDcVeUNrQlv;nI`s%k91&XKlqC>Zhu; zCcHIF<(zOof^3VwWLw`#J{y0t+Mo_gyREsxCs1NDp6>fd)mU}h@516R`qAUIaq}hJ z@FVF57i|U@RAPu?KMxU5zpoSH7q2tVH?FsmWYA!qK^#r&D5_af3Ff82{I`;iFJJWNAn@A? z??c%}r|)l!Ky}O4*R7w+ZY;ftZnh0JGyT-q&@gXrZy#~rPkEOgMOD&lwvIcyp*=0NnWO#q(H2v<|CuT+z)C83tJsBm8A;?GQrCCWzxJ$4oKiKb5w70 zTP}@_O9drf{^dXJ1@ zc=Yt}F@~A&%-Z9A%ga~7F8WPT=1x^H_t)-c%tnjF-oAa@hwB8q;6_gm)_O=ISovnm z-pQPw6Q7E&H%HB&4R5&92~`&`=VbIJ-j%E46ky#w1e15R1oDSqqnfSK@$T^P{@#5# zWlMo*l}r-cCxNUeuKL)!s<7nevC7S-mt^np=CGslIO3n$D@c888yRW7RiadJ#l!L; z0o+`F9#d0qZ5KD=9T65uCnR^$AF{J?Oq5+9YI*0!xtGk&3_XqdTrh1fBydRoY({`v zl~uuVr*@p-YR|OT(&qNI{VukKO_Mj;uq1boUwjS=^IB9A%s#=%$AQj^aMvo2m%0}J zN@s6{oj)x10wvtO(Qe&lJa4v%VzL&z-J^)y1Nw3DRYCgBNXfGE-G#ha#qUO7>if8tf(6_zmI= z+4qgrV+nba;bUhy1}tG2hMO1C-D* z&SoM&phwSCMa~#bDEb(9jpDN`H!svfNdD|;W9cizVGv4K1IllPl%&Rwx8{opW^1Gv zHRe88o~s#xtHK-T{&WI%!mV<`Dd3TBsg;!j^K)xZhn$I?3i5-gE%@HOxE3DMsnKAG z=9C&`k^QJVPVjV7Wp{h~s#?YFaJ@x}}*o*`DEWnjaiPVR-sgv7(2OJu`}i@o-S@V6`u3SwSA z9xSQYGD)p1CFb_eRk?X`M023>gk<@3Di%x2E(j}dn2<)-Xp>AnUca2G`&Vvo(g|i^1NHoJB;l=3NuKXM45;TiwSG3c->1)cCY>!kDKoXc zp2^$YPlT3yNO7&_|8XSB5E2p3rJ?FInwzbe(@1~fMN+-lP*<0QmUyT&ARVl9@ZunSP*iTI%@93rldz z_VC%ARZz0i*GM>gD635TSwxVGAn-l(u8Bx`XY!mACqw4))39ne-$sydp^> zU^RqS0J)!$73bY)-G{kLj*i2aw>EyW@?fM}e$gqvcgu)*LQ67-30b87_>#`7#hUgV z5+(|49$Pvn{xJOQ;i&241E)Hn!EDd%yj1b0tdfh-uk*IPs61XiweDN(sCrfSr~>lX zQEz&Nwc3smVdoz&iNBY}U$G zf2SQsxh*vIik;&8EQE7w)J|UXq=ObB&}}ekrLj6o?uk+4TSUs@@#hOC#Si-W9+&0- zFtYdqP~@rSgFp0p2Ytu6uB|U&QGBAQz_frv>%Js>>baYN*}b0H!a&i|^)IW3Tu%?X zD>ivaiy+Sjv9*VkbBP}aGb8}L*>cy#?#DEx2n-0!og!$Qv{MH;ij>ysfr73A`3}eD zP5Pm3<$p5bMX|QR=3KjW1O8qMszG%v-?ZzO311=1#fx9xJqU?GG9-9%4@n%h?`}Kz zQn#uFa5un|-(kh=fmGkf$hZWMp?8e~MWvwg3c>P8ZqC)P#vWy?=CC02?u}YjU`*i| z+ex~2*}`wSQw81=9kCtT zZdfVn5KK4M$yd}lkh_mjWO>H4ViLvF===(k&w#^uxLX@<{9((*DszS*JjOqt8PLQ{ zkgCX;d3!`d?0r{KQQ82srZ3^1?~#=>Q(@Ol&U;>t4i4gVCjDxvs*7yiS-l;5Q;K9?ck7%WAt}u#~0Lfq~o6DKY~avbWDz$1I1DZ z9wcqUa~<_}bZ+CH^vwE{{a=%v>9$6C!z=ekVnuda2veG8N1QxUB= zLlW)Fc8|)uw=4hN?~Xn9C|mA@Sk@kEhs*b4&g4eDiH&AE2RbWRp;@szD$9^IctJP;dHS(6aiQ`~UX=)Wu+Gn= zt{dUyTiv=v4j?cuaYn{baI(0ol=*W)r`5uO+;w3yy3_I+f}_FoINmXDF9O8}=f}$sMtv$yw7+EC03@IFd-3vK-_H6A?(%49&APAN!@Fo1 zi+x?8gpmCKSFq@bTJ|sPoSWe(#o${FF_-V)AkwSHx=n0_+S_=FNlwVq_O+XLT*tYA z_D?xwY~(78P_U=*{LRAH;H9eTjwLnk!S!|WG~7cNMSm)bJ*F-?+)BaUc)04Kk+YT6`mO@6!*ulT^dPOe&Re2>cD`^3F`*k z0%GUM%;p4(9yy!CJEG)?7Li}ya2lcMk^o))@t^y70d;`_wU~kOreFVVjL~MOQvJ&} F{sY=LIXVCU literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_keypad_number_asterisk.png b/res/screen-density-xhigh/C01-3_keypad_number_asterisk.png new file mode 100644 index 0000000000000000000000000000000000000000..96b4d386584b3bffccb7f9ee201730c4a6cb257e GIT binary patch literal 2922 zcmbVOdpK0-A3wT?a;d18wryMrxy;3k%VaQSRB|cfekqNaGiER|jN@mJTT5>7E3_C1 zBWxiLTCqY@a<8EjqRTIf+)}KK)bFV5Z~xe5_j!KjdCqy?_xpan-_Q5;pGn^ci(22s@o zZ;Q4KAcHLSkuW~!5N78{5A&lNGgQq?ktPBHY=8qoG^Bvz&kZ67h^k-g65#o&7^RB* z0)hO9s$ZRQwLOj`^Y|bVuZPy9qYW@f1DqZPhc?C;>madc3>t;OqR@uA7&HNINI+wd z-yT(%jn7~bsFXwBxZo90l?6co1QaSHBt$PnUysN4L1B!IjZtVU3X9c+5xPO4T!<#n zXGn zjq3|K2%>`jbK@`3L5`sTAc_hG@q+nuxE@TkHDx$=e^0auguNjgp&BWJoqNGNPaj$QH)NB#OnFt`#>3qH*cq8ZR5>{iaL)TU`Q~57HnW-;u}j zU+aM5EFQ!QV(|iyWCy$+2I<1)GI$|DtL6C`Ed}JW{{=D*@p&BNm;4ggf58uX`www{ z)n)uYIYYtDpjMmXPtCF>f;(_^`bX=-i$4wz$c0Y~A3hq9ad<}n*d(-~kQ@brQ@P1ZT524x0U`KB5y1BSp7n)!1JAiC+P}MxMj@f66%&sj+RvHrxU9ziT zyBg2}JHLM=g@9TveIn(GSt%FpLd<+^*W`(wW8B%Jb@!;7%cmE~sd3>^Hyb8UdwYzZ zbXKT6^8Hx~K;Jlb*8>13>j9AjfJ6XWWq|}qAesf3tJtigR7=Qs>`qK{CMb#|GExm*WzTtyhRc^bCQB}E zL?Q$P?YBGgp$%slH%Qk@6N8N}z%*^FHWr{P3ovle=OmGX`b=T=zc+2|HZXC>Sr7o? z;{*{D%ew6-%3g$5rw}$jumB<=nl&y4DAmqK`DrJ{UrJf(CZEVVJ^ZQ6F%_EGZvWu< zt)KfsGie4Y!hIzru1khzlke>FOMfGnFeUbLV~VZDzsvTVxIf){?9a1XAeHRG}CjiD`(b=Bp;e(pTNu(C0=IWBHs4y04rV<(TfI= zUVZ9(cF^o>{gjEdrec;;Uvy5A?cHC?oGLRsFS(t;AiXu^96plmtuNTU^nOu!nswkX z@uijh5tYK<(?!uOcg~MB1WsQI@2qPDvz!u`i6H%;se-pkZ6BTvBs%r^SaFGFBOE#Aj-tYQm1FOPl40Yg1DeS5 z%h`SD?kF#)DRdgOC}Aq=b&|@;%v_P4X}=g-hQl3|t9*JA&splKaoe7EF!@Z&P;K`~ z#p{avu9+9gF`wfxS|f_~ij7n8n-+(rdkimMR^KdpP7tJ4S!eP)7mk5 z?{(O)i-(?UuHr6DUnGK3%{UZP^KCTULti+_Q-YR5l%(-!lcV}*{gvK*e8b{YoHajb}zZ*ZPy~ zrDtR?^{g{0FS+73)x0j(F}s54vE5P251$Uz!fk5V=c$Q^EmN8$6wseEzu7xbIMaB4 zc-T%(F10D?6oRsT-Q|T9-~537VP7AV^XN{VpZ9%ruzWdgrR-pFsr5_pP{<2<4id3- zTzo^6@$BTsVu!6vjc=?-EP09N6`@I3Ne>vY~>{CY3 zvEZ@2+f`(xk{@|Gl`)21rS#ZjGHN?PJmpT}fKip?L~JMX?(zF^Ca?A=Mi);g0C5v{i@ zHUUw9A#LkS+PNY2hSapffva8$_DyG#Rkn8j*zWl~X;h?Xt|``$PRUr(d7J6C2wIRH z6ts1q?D9;&YtOPGWzBJ=`_&?~JgV}|f8q&kBHRXlNf9=drL`Vdnyh9;`JLv6)$O?` zv{(`LjbomR4*$S1&~&SfeP`wLAUWDPisP|j`->S34;DdO&Etdxl@D*_<(@YfX-<_rY_yA0?HXwg+ya-Y+IjQB zbeq=G-q&3Vpt@U%^cCkT<=SoYVZp7Of)%)`e49;_>i!X(eldIAa#%(|>HB>P9*UXH`&+Qe>F2cVLB*mr)}2kx%~<(Kt#x&?+5Q*F zAH)2wzQfLhD=!jF)1*ZM8)7^^7_c`dDsX5 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_keypad_number_auto_answer.png b/res/screen-density-xhigh/C01-3_keypad_number_auto_answer.png new file mode 100644 index 0000000000000000000000000000000000000000..7d2329eb8fe59cfc6fc1c471294859112fcef572 GIT binary patch literal 3389 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_keypad_press.png b/res/screen-density-xhigh/C01-3_keypad_press.png new file mode 100644 index 0000000000000000000000000000000000000000..92df26282c0cca5f767e9007c936df6d202ddc91 GIT binary patch literal 8429 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 Ceg2{V literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_number saerch_bg_01.png b/res/screen-density-xhigh/C01-3_number saerch_bg_01.png new file mode 100644 index 0000000000000000000000000000000000000000..03f0d8f9d985df64d29e647426c8ce00f1243433 GIT binary patch literal 38299 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_number saerch_bg_02.png b/res/screen-density-xhigh/C01-3_number saerch_bg_02.png new file mode 100644 index 0000000000000000000000000000000000000000..719be3a2a51f0fdbbf04ea754e5d766fc0cf8134 GIT binary patch literal 46672 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ð&U-{Sxm#U#C$(F`1t4lAw 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_option_icon_dim.png b/res/screen-density-xhigh/C01-3_option_icon_dim.png new file mode 100644 index 0000000000000000000000000000000000000000..e232a5352dd3f67a0359cb4ca1f5a33035f39ebe GIT binary patch literal 3214 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 Ak^lez literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_option_icon_press.png b/res/screen-density-xhigh/C01-3_option_icon_press.png new file mode 100644 index 0000000000000000000000000000000000000000..5fd8fe742bb3c3756b678eaffdfddaa075ae67a0 GIT binary patch literal 3645 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 YnDT(Fan`<%{_{geSIbDVO5Gm&Ul@*d;Q#;t literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_predictive_circle_button_press.png b/res/screen-density-xhigh/C01-3_predictive_circle_button_press.png new file mode 100644 index 0000000000000000000000000000000000000000..1fb61ab11a74d6d84ed65cecf408efb46f21ac4d GIT binary patch literal 7873 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 Tl$6#u*Lbd=CSUc;EcpKbXOwb| literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_search_field.png b/res/screen-density-xhigh/C01-3_search_field.png new file mode 100644 index 0000000000000000000000000000000000000000..910a7adcbbf226dd5ae1942a9e22aff9a0505b1c GIT binary patch literal 3311 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 D4t1j_ literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_tab_divider.png b/res/screen-density-xhigh/C01-3_tab_divider.png new file mode 100644 index 0000000000000000000000000000000000000000..d44e1066876429136f616902a39d941efd85c784 GIT binary patch literal 2812 zcmVKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0000dNklKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0000dNkle>4>U literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_toolbar_icon_back.png b/res/screen-density-xhigh/C01-3_toolbar_icon_back.png new file mode 100644 index 0000000000000000000000000000000000000000..79ad5b2ac22dd165ed251456188f79ac179f9039 GIT binary patch literal 2017 zcmaJ?dsGv58jUCqsTdb=RS+E`3S!<6Ad!F}ArK`zgFq1>Btu9cnV3vS2x_z{)IyII zJZLSTw)H^~5aba=O9&_h)(29-C{fT;NTqQ&Za14|NtN3yd#SlWNAi$CEMPM|@ z7iRD21pQH{g%~j}9**aR(FBkL&$nRkYKaVCqfq{VY8hXU0m48kC=yHQn2F{V3?LTL zF>w?wkt<_@>Eck09E{O~^8}g<0ab_z3;_JqG(^0}hGjGYL8VgRRbF^VE+UYqRH{XTOvWJyoFZEa^VK-1V#BNg z3seZ?Vi_!kq<}?{p9(2qItIz~&k`iEIa#UV<1rxzMo{x*1QMQTDQOnS<^F%DL^6j~ zz|r7;^ZlQ~3SPDhBt(M>NGTT}jZ52L2_>U35vRy#`pjp zabl?uQYkinz;n4Yj#L5jr2>${qGJ#RyjU!xd6SuJDx1vq^(Fg~NWo+Vl}TnZi42k# zi9`(YVa#$_kU%K`rSL3QILGxO&daq}K_WvUvp~5x3ly^DkOcTpGEF>xF06U=K5~Wg z=0XmhmrFpBAy^vwmqyQSA?~qE=WL5C=8O+Y5x2_`TR)GyRgFR|isi5vJoTgBzfB5_ ziCUwdi0x$*PkmpqqNytg+j}oP_}70NE9bH4yum|u!QfzF0nxnNQ{$22vBZ(`ZfT2# zxFX2ismR_owbEU5s`8iPulPUI{h_5Bu9zg_Pnt)oM$p=lvN5%G85e(yG|%&#DhHRfYkL}iSbpv zi3fH%nhn&?{4!64owYH)a<)F?-Y0#zVdc7wV+w2R;SN`~xYCwEQB9@W-2vO&-l@;g zi=#Ydyz{uZp4e>*7e6+(t)rG}>jA%q!yQN0?AX)XY%Q~I*|K$_yY$D9M&I*N(z{73 zw<30CpK*6^?e*_QxffqBV$Y91?qBf4v@30Vyicc`+!>(ID?9?VFTQd$H(u(vwLhou zWH`g|@~PNzrYyRMGTm+Z(#5%Lw4rV?P<#E3ZO8WT{e=ckiaqdpu=wxpcUlAXPj{$p-X1-v9DcI4+PUoV0R3jiYw)&}8->!t=}xA`T^QZ} z^!%R5Z+4)xJucJYo@Eh{YTdK`1F6;?vUl5^YlHdOddcpu5d%O4FMI4Bsp(YY7xwah88(>e1& zg!%5O8qfCX2yae_G4Y;Ao=J z@O*u)=?_)S)dj!L+$Y0n35G)tDps$wt^8r?>dy|lKN&Pt>1$g2WLNZhzb0pNq50g~ zU2)Gx3V&YOJGNlQr|gFHw6uigtEA0?pO{<;i#I;p#pp1$hLuiuMK|B*iyPE+dbYro zN58o?aOJjjcgDWS2wC!iF?dUzaZ~NvRJXii1)qMmX7yS}$^J0us^_{UOl4hn2KLOg zeT<%{@8j=1&br_t^X2Hd!jr$%mj1K+*K<8rmZBZ#8JbDf$WV>f#dd5mKk6p7ag*Do z*X#UvDOnHwl{&dHguidb)n!p%KC${Ml#3}Lar<=V-uAFk-K!gR^~ZI$&ZI$`QhsZ! h_{--^2zl$SN4>V!*z_o}+AKd^PH;G@Dk$ai{{YmnJ+}Y= literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_toolbar_icon_back_press.png b/res/screen-density-xhigh/C01-3_toolbar_icon_back_press.png new file mode 100644 index 0000000000000000000000000000000000000000..88039f5f9afd964167a20b0e4ce6d7833bff5e04 GIT binary patch literal 3849 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 LNkvXXu0mjf-yuAF literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-3_toolbar_icon_more.png b/res/screen-density-xhigh/C01-3_toolbar_icon_more.png new file mode 100644 index 0000000000000000000000000000000000000000..e8bf8dd40492491a6bb36bffbc735e607c275cb4 GIT binary patch literal 1403 zcmeAS@N?(olHy`uVBq!ia0vp^_8`o`1|-Ad1?~eW$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%u1Od5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|81#=KlDb#X~hD#E>34K5C;EJ)Q4 zN-fSWElLJPT$(b-ssbzLqSVBa{GyQj{2W*)24v)yKH#agfG;}qxFmp3?u`o2VFn4k_ zb8#|->2=9ZF3nBND}m`vLFjeFsTY(KatnYqyQCInmZhe+73JqDfW2&$iQ6saIL(9V zO~LIJ3!HlOfsWA!MJ!T8!-RmT2gHOYTObFX@Kf`Esl5o8tbcHQm1kgJeDCSv7*cWT z%?w{}ra+Ol(zH2+CK{$IIPPr8eyWrssIg^(L5IK;BW}%w`m22Rt0=t?@9-4cqH+7G zen*%t*RMrW?8LMrrrwa8k!!#_eb?mojng;p?5=!vr})|2lILx4(5Ww`6&@w8Zh%(>)8GFJY`= z+?|f^2_YNN&70;!$ZS!3u_-wdwF1XhrjLV zO>=DToNqtv-(UA`m2d0ISMPStpBZf-DZ?eHHR$(Z;$IddE4w$9TzyqZuOT<&eP`lJWQUvQrb~KYESd&uAuqxQPqiD^8V+h z39l?U__Qp%k~RPRhdn|SdP1`1UwYD(?cH`J;^IF=3;nveTUMs0F~9HK;=ZbYXI<>~ zIf4Zh)iM|D*HsEArP@R(lG4X8)P9Bx+?vCCm3;R^BH|o@H1FwQf&;`?mb+ rne2?;zuo{j{00009a7bBm000XU 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-4_btn_icon_call_dim.png b/res/screen-density-xhigh/C01-4_btn_icon_call_dim.png new file mode 100644 index 0000000000000000000000000000000000000000..d2a68f6370fc5b728d5fe4672b4fb1244e1dfa69 GIT binary patch literal 3253 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 XHEXk7|B4Y{00000NkvXXu0mjf9|9~Y literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-4_btn_icon_video_call.png b/res/screen-density-xhigh/C01-4_btn_icon_video_call.png new file mode 100644 index 0000000000000000000000000000000000000000..fe450c56cc100395db9fbdaa2ccefffb00394321 GIT binary patch literal 3204 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 LNkvXXu0mjfclY0| literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-4_circle_button.png b/res/screen-density-xhigh/C01-4_circle_button.png new file mode 100644 index 0000000000000000000000000000000000000000..5e58d0d80d44b12101cf83b06c0e66cdd3480aee GIT binary patch literal 13968 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 Xsq0vY&B%+E`~s@4G?l8sZ^Ql%g#P^d literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-4_circle_button_press.png b/res/screen-density-xhigh/C01-4_circle_button_press.png new file mode 100644 index 0000000000000000000000000000000000000000..8ea6881bb04833ae389919847233c32d19ca0b11 GIT binary patch literal 15848 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-4_circle_icon_call.png b/res/screen-density-xhigh/C01-4_circle_icon_call.png new file mode 100644 index 0000000000000000000000000000000000000000..3df40d6e6fea476430efdf24134e2417ead5705e GIT binary patch literal 5191 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 E0mJvpCjbBd literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-4_circle_icon_call_press.png b/res/screen-density-xhigh/C01-4_circle_icon_call_press.png new file mode 100644 index 0000000000000000000000000000000000000000..c1bed8033e2583eadb61fc83e83ec348df7d6ab8 GIT binary patch literal 3763 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 E3k^QTAOHXW literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-4_controlbar_icon_cancel.png b/res/screen-density-xhigh/C01-4_controlbar_icon_cancel.png new file mode 100644 index 0000000000000000000000000000000000000000..0960b627a3b69e5c769798650bea7e2ad5f8cf04 GIT binary patch literal 3286 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 U`XdR*xc~qF07*qoM6N<$g3e46EC2ui literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-4_controlbar_icon_done.png b/res/screen-density-xhigh/C01-4_controlbar_icon_done.png new file mode 100644 index 0000000000000000000000000000000000000000..c5ddbfefcc9e37a906478de05a6347dd13b4cd69 GIT binary patch literal 3508 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 FV1m5#7{CAk literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-4_icon_call_blocked.png b/res/screen-density-xhigh/C01-4_icon_call_blocked.png new file mode 100644 index 0000000000000000000000000000000000000000..b5bbe160fe4b67ac239aa69ac2eb7d2144c94af0 GIT binary patch literal 1740 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 KMNUMnLSTY9xzdCH literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-4_list_icon_call.png b/res/screen-density-xhigh/C01-4_list_icon_call.png new file mode 100644 index 0000000000000000000000000000000000000000..3ad97f17854e34aed789f28cb7993dd79e9138ee GIT binary patch literal 3246 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-4_list_icon_mms.png b/res/screen-density-xhigh/C01-4_list_icon_mms.png new file mode 100644 index 0000000000000000000000000000000000000000..64ce02831e3a1d05b861e21a5e0abe24718f2b6c GIT binary patch literal 3484 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 KMNUMnLSTYu8juzM literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-4_list_icon_sms.png b/res/screen-density-xhigh/C01-4_list_icon_sms.png new file mode 100644 index 0000000000000000000000000000000000000000..d67fa4e7618e3e8da6b157c725e998f23bce1ffb GIT binary patch literal 3252 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-5_icon_cancel_web.png b/res/screen-density-xhigh/C01-5_icon_cancel_web.png new file mode 100644 index 0000000000000000000000000000000000000000..9fa5c07c6c383f082fca477585f06cf232319fdf GIT binary patch literal 4159 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 JPDHLkV1jrS+*$wt literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-5_icon_cancel_web_press.png b/res/screen-density-xhigh/C01-5_icon_cancel_web_press.png new file mode 100644 index 0000000000000000000000000000000000000000..07da46a878523e6d49ec00f748b07cdff7ba2189 GIT binary patch literal 3974 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 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/C01-5_icon_speeddial_check.png b/res/screen-density-xhigh/C01-5_icon_speeddial_check.png new file mode 100644 index 0000000000000000000000000000000000000000..df13f7ecdb5e1ac0631bdc6925292d5ebcafd302 GIT binary patch literal 4224 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 N002ovPDHLkV1nI&l5YS2 literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/M01_contact_default_image.png b/res/screen-density-xhigh/M01_contact_default_image.png new file mode 100644 index 0000000000000000000000000000000000000000..846a993af2f8de73147e4edb2afc6f0060418043 GIT binary patch literal 5425 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 b_5T9^!kr!#K*%g%00000NkvXXu0mjfWYkAK literal 0 HcmV?d00001 diff --git a/res/screen-density-xhigh/M01_contact_default_image_press.png b/res/screen-density-xhigh/M01_contact_default_image_press.png new file mode 100644 index 0000000000000000000000000000000000000000..a34bb4ed89371645517f09d091b04546e762db57 GIT binary patch literal 5959 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 + + + + + + + + + + + + + + + + + + + + + + diff --git a/res/screen-size-normal/IDL_CALL_LOG_DETAIL_FORM.xml b/res/screen-size-normal/IDL_CALL_LOG_DETAIL_FORM.xml new file mode 100644 index 0000000..2312be6 --- /dev/null +++ b/res/screen-size-normal/IDL_CALL_LOG_DETAIL_FORM.xml @@ -0,0 +1,82 @@ + + + + + 720 +