From 74b0619edf81dd291ae023c1a5548a58d82ea855 Mon Sep 17 00:00:00 2001 From: Eunyoung Lee Date: Tue, 9 Jun 2015 14:32:38 +0900 Subject: [PATCH] [Tizen 3.0] 2.4 source code merge Change-Id: I96c92f8a4ad3f27eca241d90a8bbb0b6fffc3e35 --- AUTHORS | 0 CMakeLists.txt | 51 +- LICENSE | 204 +++ LICENSE.Flora | 206 --- NOTICE | 5 +- daemon/box.c | 1064 ++++++++++++ daemon/box.h | 77 + daemon/common.h | 20 +- daemon/icon.c | 824 ++++++++++ daemon/icon.h | 57 + daemon/indicator.h | 167 +- daemon/indicator_box_util.c | 894 ----------- daemon/indicator_box_util.h | 61 - daemon/indicator_icon_list.c | 353 ---- daemon/indicator_icon_list.h | 33 - daemon/indicator_icon_util.c | 524 ------ daemon/indicator_icon_util.h | 54 - daemon/indicator_ui.c | 1588 ------------------ daemon/indicator_ui.h | 100 -- daemon/indicator_util.c | 148 -- daemon/indicator_util.h | 28 - daemon/list.c | 359 +++++ daemon/list.h | 34 + daemon/log.h | 90 ++ daemon/main.c | 1201 ++++++++++++++ daemon/main.h | 150 ++ daemon/message.c | 677 ++++++++ daemon/message.h | 32 + daemon/noti_win.c | 215 +++ daemon/noti_win.h | 57 + daemon/plmn.c | 232 +++ daemon/plmn.h | 29 + daemon/ticker.c | 1167 ++++++++++++++ daemon/ticker.h | 34 + daemon/tts.c | 375 +++++ daemon/tts.h | 32 + daemon/util.c | 581 +++++++ daemon/util.h | 75 + data/CMakeLists.txt | 6 + data/indicator.conf | 0 data/indicator.desktop.in | 0 data/indicator.sh.in | 2 + data/indicator.xml.in | 10 +- data/org.tizen.indicator_ChangeableColorInfo.xml | 60 + data/org.tizen.indicator_ChangeableFontInfo.xml | 8 + data/resource/CMakeLists.txt | 49 +- data/resource/animated_icon/noti_download_01.png | Bin 0 -> 1283 bytes data/resource/animated_icon/noti_download_02.png | Bin 0 -> 1295 bytes data/resource/animated_icon/noti_download_03.png | Bin 0 -> 1297 bytes data/resource/animated_icon/noti_download_04.png | Bin 0 -> 1288 bytes data/resource/animated_icon/noti_download_05.png | Bin 0 -> 1290 bytes .../animated_icon/noti_download_complete.png | Bin 0 -> 1292 bytes data/resource/animated_icon/noti_install_01.png | Bin 0 -> 11299 bytes data/resource/animated_icon/noti_install_02.png | Bin 0 -> 11299 bytes data/resource/animated_icon/noti_install_03.png | Bin 0 -> 11299 bytes data/resource/animated_icon/noti_install_04.png | Bin 0 -> 11299 bytes data/resource/animated_icon/noti_install_05.png | Bin 0 -> 11299 bytes .../animated_icon/noti_install_complete.png | Bin 0 -> 11299 bytes data/resource/animated_icon/noti_upload_01.png | Bin 0 -> 1265 bytes data/resource/animated_icon/noti_upload_02.png | Bin 0 -> 1275 bytes data/resource/animated_icon/noti_upload_03.png | Bin 0 -> 1274 bytes data/resource/animated_icon/noti_upload_04.png | Bin 0 -> 1273 bytes data/resource/animated_icon/noti_upload_05.png | Bin 0 -> 1265 bytes .../animated_icon/noti_upload_complete.png | Bin 0 -> 1271 bytes data/resource/color_classes.edc | 71 + .../resource/icons/Account/B03_samsung_account.png | Bin 0 -> 1532 bytes data/resource/icons/Account/B03_tizen_account.png | Bin 0 -> 1543 bytes data/resource/icons/Alarm/B03_Alarm.png | Bin 3445 -> 1505 bytes data/resource/icons/Alarm/B03_snooze.png | Bin 0 -> 1579 bytes data/resource/icons/App tray/B03_always.PNG | Bin 5118 -> 0 bytes data/resource/icons/App tray/B03_always_dim.PNG | Bin 5364 -> 0 bytes data/resource/icons/App tray/B03_always_press.PNG | Bin 5484 -> 0 bytes data/resource/icons/App tray/B03_app_tray.PNG | Bin 4715 -> 0 bytes data/resource/icons/App tray/B03_app_tray_dim.PNG | Bin 4835 -> 0 bytes .../resource/icons/App tray/B03_app_tray_press.PNG | Bin 5060 -> 0 bytes data/resource/icons/B03_notification.png | Bin 0 -> 3513 bytes data/resource/icons/B03_notification_press.png | Bin 0 -> 3646 bytes data/resource/icons/B03_search.png | Bin 0 -> 3636 bytes data/resource/icons/B03_search_press.png | Bin 0 -> 3723 bytes .../B03_Backgroundplaying_FMradio.png | Bin 3423 -> 1396 bytes .../B03_Backgroundplaying_Voicerecorder.png | Bin 0 -> 1448 bytes .../B03_Backgroundplaying_music_paused.png | Bin 0 -> 1147 bytes .../B03_Backgroundplaying_music_playing.png | Bin 0 -> 1267 bytes ...3_Backgroundplaying_voicerecorder_Recording.png | Bin 3429 -> 0 bytes .../B03_Backgroundplaying_voicerecorder_paused.png | Bin 3439 -> 0 bytes ...ackgroundplaying_voicerecorder_player_pause.png | Bin 0 -> 1500 bytes ...Backgroundplaying_voicerecorder_player_play.png | Bin 0 -> 1535 bytes .../Bluetooth, NFC, GPS/B03-4_BT_activated.png | Bin 3335 -> 0 bytes .../Bluetooth, NFC, GPS/B03-4_BT_activated_on.png | Bin 3393 -> 1751 bytes .../B03_BT_On&Connected&headset.png | Bin 3450 -> 1558 bytes .../Bluetooth, NFC, GPS/B03_BT_On&Connected.png | Bin 3419 -> 1422 bytes .../Bluetooth, NFC, GPS/B03_BT_On&Notconnected.png | Bin 3373 -> 1434 bytes .../icons/Bluetooth, NFC, GPS/B03_BT_activated.png | Bin 0 -> 1514 bytes .../Bluetooth, NFC, GPS/B03_BT_activated_on.png | Bin 0 -> 1429 bytes .../B03_BT_tethering-network.png | Bin 0 -> 1472 bytes .../B03_BT_tethering_network.png | Bin 0 -> 1398 bytes .../icons/Bluetooth, NFC, GPS/B03_GPS_On.png | Bin 3569 -> 1400 bytes .../Bluetooth, NFC, GPS/B03_GPS_Searching.png | Bin 3565 -> 1791 bytes .../icons/Bluetooth, NFC, GPS/B03_NFC_On.png | Bin 3494 -> 1411 bytes .../B03_Wi-fi_direct On_connected.png | Bin 3932 -> 0 bytes .../B03_Wi-fi_direct On_not connected.png | Bin 3765 -> 0 bytes .../B03_Wi-fi_direct-On_connected.png | Bin 0 -> 1586 bytes .../B03_Wi-fi_direct-On_not-connected.png | Bin 0 -> 1597 bytes .../icons/Bluetooth, NFC, GPS/B03_bt_headset.png | Bin 0 -> 1425 bytes .../icons/Call divert/B03_Call_divert_Sim_1.png | Bin 0 -> 1407 bytes .../icons/Call divert/B03_Call_divert_Sim_2.png | Bin 0 -> 1434 bytes .../icons/Call divert/B03_Call_divert_Sim_MMS.png | Bin 0 -> 1436 bytes .../icons/Call divert/B03_Call_divert_Sim_SMS.png | Bin 0 -> 1417 bytes .../icons/Call divert/B03_Call_divert_Sim_data.png | Bin 0 -> 1467 bytes .../Call divert/B03_Call_divert_Sim_global.png | Bin 0 -> 1501 bytes .../Call divert/B03_Call_divert_Sim_heart.png | Bin 0 -> 1427 bytes .../icons/Call divert/B03_Call_divert_Sim_home.png | Bin 0 -> 1430 bytes .../Call divert/B03_Call_divert_Sim_messages.png | Bin 0 -> 1417 bytes .../Call divert/B03_Call_divert_Sim_office.png | Bin 0 -> 1424 bytes .../Call divert/B03_Call_divert_Sim_phone.png | Bin 0 -> 1450 bytes .../icons/Call divert/B03_Call_divert_default.png | Bin 0 -> 1428 bytes data/resource/icons/Call/B03_Call_Duringcall.png | Bin 3289 -> 1359 bytes data/resource/icons/Call/B03_Call_Missedcall.png | Bin 3700 -> 1463 bytes data/resource/icons/Call/B03_Call_Mute.png | Bin 0 -> 1531 bytes .../icons/Call/B03_Call_SOSmessge_active.png | Bin 3054 -> 1436 bytes data/resource/icons/Call/B03_Call_Speaker_on.png | Bin 0 -> 1534 bytes data/resource/icons/Call/B03_Call_bluetooth.png | Bin 0 -> 1493 bytes data/resource/icons/Cloud/B03_cloud.png | Bin 0 -> 1386 bytes .../B03_conection_latin_UPdownload.png | Bin 0 -> 1247 bytes .../Connection Latin/B03_connection_latin_3G.png | Bin 0 -> 1139 bytes .../Connection Latin/B03_connection_latin_4G.png | Bin 0 -> 1147 bytes .../Connection Latin/B03_connection_latin_E.png | Bin 0 -> 1120 bytes .../Connection Latin/B03_connection_latin_GSM.png | Bin 0 -> 1255 bytes .../Connection Latin/B03_connection_latin_H+.png | Bin 0 -> 1129 bytes .../Connection Latin/B03_connection_latin_H.png | Bin 0 -> 1113 bytes .../B03_connection_latin_LimitedService.png | Bin 0 -> 1354 bytes .../icons/Connection Latin/B03_latin_3G.png | Bin 0 -> 1382 bytes .../icons/Connection Latin/B03_latin_4G.png | Bin 0 -> 1387 bytes .../icons/Connection Latin/B03_latin_E.png | Bin 0 -> 1141 bytes .../icons/Connection Latin/B03_latin_GSM.png | Bin 0 -> 1249 bytes .../icons/Connection Latin/B03_latin_H+.png | Bin 0 -> 1181 bytes .../icons/Connection Latin/B03_latin_H.png | Bin 0 -> 1137 bytes .../Connection Latin/B03_latin_LimitedService.png | Bin 0 -> 1556 bytes data/resource/icons/Connection/B03_1x.png | Bin 0 -> 1397 bytes data/resource/icons/Connection/B03_3G+.png | Bin 0 -> 1406 bytes data/resource/icons/Connection/B03_3G.png | Bin 0 -> 1396 bytes data/resource/icons/Connection/B03_4G.png | Bin 0 -> 1391 bytes data/resource/icons/Connection/B03_CDMA.png | Bin 0 -> 1265 bytes data/resource/icons/Connection/B03_E.png | Bin 0 -> 1146 bytes data/resource/icons/Connection/B03_EVDO.png | Bin 0 -> 1379 bytes data/resource/icons/Connection/B03_GPRS.png | Bin 0 -> 1457 bytes data/resource/icons/Connection/B03_GSM.png | Bin 0 -> 1263 bytes data/resource/icons/Connection/B03_H+.png | Bin 0 -> 1189 bytes data/resource/icons/Connection/B03_H.png | Bin 0 -> 1144 bytes data/resource/icons/Connection/B03_Highspeed.png | Bin 0 -> 1283 bytes data/resource/icons/Connection/B03_LTE.png | Bin 0 -> 1213 bytes .../icons/Connection/B03_MobileAP_connected.png | Bin 3606 -> 1575 bytes .../icons/Connection/B03_MobileAP_connected_01.png | Bin 3628 -> 1586 bytes .../icons/Connection/B03_MobileAP_connected_02.png | Bin 3664 -> 1560 bytes .../icons/Connection/B03_MobileAP_connected_03.png | Bin 3696 -> 1555 bytes .../icons/Connection/B03_MobileAP_connected_04.png | Bin 3662 -> 1592 bytes .../icons/Connection/B03_MobileAP_connected_05.png | Bin 3676 -> 1575 bytes .../icons/Connection/B03_MobileAP_connected_06.png | Bin 3686 -> 1560 bytes .../icons/Connection/B03_MobileAP_connected_07.png | Bin 3645 -> 1548 bytes .../icons/Connection/B03_MobileAP_connected_08.png | Bin 3678 -> 1556 bytes .../icons/Connection/B03_MobileAP_connected_09.png | Bin 3684 -> 1555 bytes .../icons/Connection/B03_MobileAP_connected_10.png | Bin 0 -> 1515 bytes .../icons/Connection/B03_MobileAP_connected_11.png | Bin 0 -> 1513 bytes .../icons/Connection/B03_MobileAP_connected_12.png | Bin 0 -> 1520 bytes .../icons/Connection/B03_MobileAP_connected_13.png | Bin 0 -> 1522 bytes .../icons/Connection/B03_MobileAP_connected_14.png | Bin 0 -> 1521 bytes .../icons/Connection/B03_MobileAP_connected_15.png | Bin 0 -> 1520 bytes .../icons/Connection/B03_MobileAP_connected_16.png | Bin 0 -> 1521 bytes .../icons/Connection/B03_MobileAP_connected_17.png | Bin 0 -> 1514 bytes .../icons/Connection/B03_MobileAP_connected_18.png | Bin 0 -> 1519 bytes .../icons/Connection/B03_MobileAP_in_range.png | Bin 0 -> 1632 bytes .../Connection/B03_MobileAP_on¬ connected.png | Bin 3626 -> 0 bytes .../Connection/B03_MobileAP_on¬-connected.png | Bin 0 -> 1580 bytes data/resource/icons/Connection/B03_USB.png | Bin 0 -> 1336 bytes .../icons/Connection/B03_conection_UPdownload.png | Bin 0 -> 1247 bytes .../Connection/B03_conection_not_UPdownload.png | Bin 0 -> 1247 bytes .../icons/Connection/B03_connection_1x.png | Bin 3347 -> 1248 bytes .../icons/Connection/B03_connection_3G+.png | Bin 3416 -> 1164 bytes .../icons/Connection/B03_connection_3G.png | Bin 3161 -> 1147 bytes .../icons/Connection/B03_connection_4G.png | Bin 3194 -> 1158 bytes .../resource/icons/Connection/B03_connection_C.png | Bin 0 -> 1231 bytes .../resource/icons/Connection/B03_connection_E.png | Bin 0 -> 1118 bytes .../icons/Connection/B03_connection_EV.png | Bin 0 -> 1246 bytes .../icons/Connection/B03_connection_EVDO.png | Bin 3342 -> 0 bytes .../resource/icons/Connection/B03_connection_G.png | Bin 0 -> 1239 bytes .../icons/Connection/B03_connection_GPRS.png | Bin 3438 -> 1146 bytes .../icons/Connection/B03_connection_GSM.png | Bin 3109 -> 0 bytes .../icons/Connection/B03_connection_H+.png | Bin 0 -> 1134 bytes .../resource/icons/Connection/B03_connection_H.png | Bin 0 -> 1116 bytes .../icons/Connection/B03_connection_HS.png | Bin 0 -> 1131 bytes .../icons/Connection/B03_connection_Highspeed.png | Bin 3132 -> 0 bytes .../icons/Connection/B03_connection_LTE.png | Bin 3086 -> 1137 bytes .../icons/Connection/B03_connection_UPload.png | Bin 0 -> 1254 bytes .../icons/Connection/B03_connection_USB.png | Bin 3377 -> 0 bytes .../icons/Connection/B03_connection_Wifi_01.png | Bin 3513 -> 1527 bytes .../icons/Connection/B03_connection_Wifi_02.png | Bin 3534 -> 1541 bytes .../icons/Connection/B03_connection_Wifi_03.png | Bin 3564 -> 1532 bytes .../icons/Connection/B03_connection_Wifi_04.png | Bin 3502 -> 1510 bytes .../icons/Connection/B03_connection_download.png | Bin 0 -> 1251 bytes .../Connection/B03_connection_download_3G.png | Bin 0 -> 1205 bytes .../Connection/B03_connection_download_LTE.png | Bin 0 -> 1213 bytes .../Connection/B03_data_downloading_Wifi_01.png | Bin 0 -> 1449 bytes .../Connection/B03_data_downloading_Wifi_02.png | Bin 0 -> 1446 bytes .../Connection/B03_data_downloading_Wifi_03.png | Bin 0 -> 1446 bytes .../Connection/B03_data_downloading_Wifi_04.png | Bin 0 -> 1416 bytes .../Connection/B03_network_bonding_download_00.png | Bin 0 -> 1157 bytes .../Connection/B03_network_bonding_download_01.png | Bin 0 -> 1161 bytes .../Connection/B03_network_bonding_download_02.png | Bin 0 -> 1161 bytes .../Connection/B03_network_bonding_download_03.png | Bin 0 -> 1161 bytes .../Connection/B03_network_bonding_download_04.png | Bin 0 -> 1165 bytes .../Connection/B03_network_bonding_download_05.png | Bin 0 -> 1170 bytes .../Connection/B03_network_bonding_download_06.png | Bin 0 -> 1171 bytes .../Connection/B03_not_conection_UPdownload.png | Bin 0 -> 1243 bytes .../icons/Connection/network_restriction_mode.png | Bin 0 -> 3347 bytes data/resource/icons/Desk dock/B03_desk_dock.png | Bin 0 -> 1293 bytes .../B03_download_booster_3g_dim.png | Bin 0 -> 1060 bytes .../B03_download_booster_3g_on.png | Bin 0 -> 1066 bytes .../B03_download_booster_LTE_dim.png | Bin 0 -> 1066 bytes .../B03_download_booster_LTE_on.png | Bin 0 -> 1060 bytes .../Download booster/B03_download_booster_dim.png | Bin 0 -> 1139 bytes .../B03_download_booster_down_up.png | Bin 0 -> 1165 bytes .../B03_download_booster_down_up_download.png | Bin 0 -> 1169 bytes .../B03_download_booster_down_up_none.png | Bin 0 -> 1156 bytes .../B03_download_booster_down_up_upload.png | Bin 0 -> 1162 bytes .../B03_download_booster_no_service.png | Bin 0 -> 1150 bytes .../B03_download_booster_no_service_dim.png | Bin 0 -> 1164 bytes .../Download booster/B03_download_booster_on.png | Bin 0 -> 1145 bytes .../B03_download_booster_wifi_00.png | Bin 0 -> 1236 bytes .../B03_download_booster_wifi_01.png | Bin 0 -> 1255 bytes .../B03_download_booster_wifi_02.png | Bin 0 -> 1256 bytes .../B03_download_booster_wifi_03.png | Bin 0 -> 1259 bytes .../B03_download_booster_wifi_04.png | Bin 0 -> 1258 bytes .../B03_dropbox.png} | Bin 3381 -> 3453 bytes data/resource/icons/Dual SIM/B03_Dual_Sim_00.png | Bin 0 -> 1105 bytes data/resource/icons/Dual SIM/B03_Dual_Sim_01.png | Bin 0 -> 1264 bytes data/resource/icons/Dual SIM/B03_Dual_Sim_1.png | Bin 0 -> 1118 bytes data/resource/icons/Dual SIM/B03_Dual_Sim_2.png | Bin 0 -> 1249 bytes data/resource/icons/Dual SIM/B03_Dual_Sim_MMS.png | Bin 0 -> 1211 bytes data/resource/icons/Dual SIM/B03_Dual_Sim_SMS.png | Bin 0 -> 1137 bytes data/resource/icons/Dual SIM/B03_Dual_Sim_data.png | Bin 0 -> 1198 bytes .../icons/Dual SIM/B03_Dual_Sim_global.png | Bin 0 -> 1348 bytes .../resource/icons/Dual SIM/B03_Dual_Sim_heart.png | Bin 0 -> 1250 bytes data/resource/icons/Dual SIM/B03_Dual_Sim_home.png | Bin 0 -> 1181 bytes .../icons/Dual SIM/B03_Dual_Sim_messages.png | Bin 0 -> 1137 bytes .../icons/Dual SIM/B03_Dual_Sim_office.png | Bin 0 -> 1149 bytes .../resource/icons/Dual SIM/B03_Dual_Sim_phone.png | Bin 0 -> 1258 bytes data/resource/icons/Earphone/B03_BT_Headset.png | Bin 0 -> 1425 bytes data/resource/icons/Earphone/B03_Earphone.png | Bin 3251 -> 0 bytes .../B03_connection02.png => Error/B03_Error.png} | Bin 3098 -> 3084 bytes data/resource/icons/Event/B03_Event_IM.png | Bin 3246 -> 3230 bytes data/resource/icons/Event/B03_Event_Message.png | Bin 3389 -> 1459 bytes data/resource/icons/Event/B03_Event_email.png | Bin 3570 -> 1575 bytes data/resource/icons/Event/B03_Event_voicemail.png | Bin 3291 -> 3110 bytes .../icons/Event/B03_event_OTA_Messages.png | Bin 0 -> 1570 bytes .../icons/Event/B03_event_blocking_mode.png | Bin 0 -> 3261 bytes .../icons/Event/B03_event_cancel_message.png | Bin 0 -> 1576 bytes .../Event/B03_event_delivery_report_message.png | Bin 0 -> 1416 bytes .../B03_event_private_mode.png} | Bin 3065 -> 3038 bytes .../icons/Event/B03_event_read_report_message.png | Bin 0 -> 1472 bytes .../icons/Event/B03_event_screen_mirroring.png | Bin 0 -> 3134 bytes .../Face Detection/B03_face_detection_off.png | Bin 0 -> 3292 bytes .../icons/Face Detection/B03_face_detection_on.png | Bin 0 -> 3300 bytes .../Felica.png} | Bin 3220 -> 3278 bytes .../icons/Find my mobile/B03_fmm_call_log.png | Bin 0 -> 1225 bytes .../icons/Find my mobile/B03_fmm_location_info.png | Bin 0 -> 1369 bytes .../icons/Find my mobile/B03_fmm_unlock.png | Bin 0 -> 1304 bytes .../B03_fota.png} | Bin 3211 -> 3239 bytes data/resource/icons/Gear/B03_gear_connect.png | Bin 0 -> 1259 bytes data/resource/icons/Gear/B03_gear_disconnect.png | Bin 0 -> 1376 bytes data/resource/icons/Group play/B03_group_play.png | Bin 0 -> 1459 bytes data/resource/icons/Message/B03_OTA_Messages.png | Bin 0 -> 1432 bytes data/resource/icons/More/B03_notification.png | Bin 0 -> 1213 bytes .../icons/Near by device/B03_near_by_device.png | Bin 0 -> 1457 bytes .../icons/Notification/B03_battery_full.png | Bin 0 -> 1080 bytes data/resource/icons/Notification/B03_video.png | Bin 0 -> 6724 bytes data/resource/icons/Notify/B03_noti_readout.png | Bin 0 -> 1345 bytes data/resource/icons/Notify/B03_notification.png | Bin 0 -> 1283 bytes data/resource/icons/Notify/B03_notify_Wi-fi.png | Bin 0 -> 1437 bytes .../B03_notify_Wi-fi_direct_not_connected.png | Bin 0 -> 1542 bytes .../icons/Notify/B03_notify_Wi-fi_range.png | Bin 0 -> 1538 bytes .../icons/Notify/B03_notify_Wi-fi_timer.png | Bin 0 -> 1494 bytes .../icons/Notify/B03_notify_Wi-fi_warning.png | Bin 0 -> 1515 bytes data/resource/icons/Notify/B03_notify_image.png | Bin 0 -> 1287 bytes .../icons/Notify/B03_notify_image_error.png | Bin 0 -> 1412 bytes data/resource/icons/Notify/B03_notify_message.png | Bin 0 -> 1378 bytes .../icons/Notify/B03_notify_message_failed.png | Bin 0 -> 1459 bytes data/resource/icons/Notify/B03_notify_more.png | Bin 0 -> 1167 bytes .../resource/icons/Notify/B03_notify_safe_mode.png | Bin 0 -> 1211 bytes .../icons/Notify/B03_notify_slideshow_play.png | Bin 0 -> 1117 bytes data/resource/icons/Notify/B03_notify_torch.png | Bin 0 -> 1319 bytes .../icons/Notify/B03_notify_video_play.png | Bin 0 -> 1345 bytes .../icons/Notify/B03_notiy_readout.png.png | Bin 0 -> 1345 bytes data/resource/icons/Notify/B03_side_sync.png | Bin 0 -> 1346 bytes .../icons/Patterns/B03_patterns_cooling_down.png | Bin 0 -> 1409 bytes .../icons/Personal mode/B03_personal_mode.png | Bin 0 -> 3251 bytes .../Power saving mode/B03_Power_saving_mode.png | Bin 0 -> 1264 bytes .../B03_ultra_Power_saving_mode.png | Bin 0 -> 1471 bytes .../Power/12H/B03_battery_animation_12h_00.png | Bin 3483 -> 0 bytes .../Power/12H/B03_battery_animation_12h_01.png | Bin 3638 -> 0 bytes .../Power/12H/B03_battery_animation_12h_02.png | Bin 1917 -> 0 bytes .../Power/12H/B03_battery_animation_12h_03.png | Bin 1920 -> 0 bytes .../Power/12H/B03_battery_animation_12h_04.png | Bin 1926 -> 0 bytes .../Power/12H/B03_battery_animation_12h_05.png | Bin 1932 -> 0 bytes .../Power/12H/B03_battery_animation_12h_06.png | Bin 1939 -> 0 bytes .../Power/12H/B03_battery_animation_12h_07.png | Bin 1935 -> 0 bytes .../Power/12H/B03_battery_animation_12h_08.png | Bin 1935 -> 0 bytes .../Power/12H/B03_battery_animation_12h_09.png | Bin 1933 -> 0 bytes .../Power/12H/B03_battery_animation_12h_10.png | Bin 1933 -> 0 bytes .../Power/12H/B03_battery_animation_12h_11.png | Bin 1935 -> 0 bytes .../Power/12H/B03_battery_animation_12h_12.png | Bin 1937 -> 0 bytes .../Power/12H/B03_battery_animation_12h_13.png | Bin 1936 -> 0 bytes .../Power/12H/B03_battery_animation_12h_14.png | Bin 1938 -> 0 bytes .../Power/12H/B03_battery_animation_12h_15.png | Bin 1940 -> 0 bytes .../Power/12H/B03_battery_animation_12h_16.png | Bin 1938 -> 0 bytes .../Power/12H/B03_battery_animation_12h_17.png | Bin 1940 -> 0 bytes .../Power/12H/B03_battery_animation_12h_18.png | Bin 3783 -> 0 bytes .../Power/12H/B03_battery_animation_12h_19.png | Bin 3780 -> 0 bytes .../Power/12H/B03_battery_animation_12h_20.png | Bin 3745 -> 0 bytes .../Power/24H/B03_battery_animation_24h_00.png | Bin 3496 -> 0 bytes .../Power/24H/B03_battery_animation_24h_01.png | Bin 3634 -> 0 bytes .../Power/24H/B03_battery_animation_24h_02.png | Bin 3663 -> 0 bytes .../Power/24H/B03_battery_animation_24h_03.png | Bin 3720 -> 0 bytes .../Power/24H/B03_battery_animation_24h_04.png | Bin 3747 -> 0 bytes .../Power/24H/B03_battery_animation_24h_05.png | Bin 3769 -> 0 bytes .../Power/24H/B03_battery_animation_24h_06.png | Bin 3777 -> 0 bytes .../Power/24H/B03_battery_animation_24h_07.png | Bin 3782 -> 0 bytes .../Power/24H/B03_battery_animation_24h_08.png | Bin 3784 -> 0 bytes .../Power/24H/B03_battery_animation_24h_09.png | Bin 3784 -> 0 bytes .../Power/24H/B03_battery_animation_24h_10.png | Bin 3784 -> 0 bytes .../Power/24H/B03_battery_animation_24h_11.png | Bin 3784 -> 0 bytes .../Power/24H/B03_battery_animation_24h_12.png | Bin 3784 -> 0 bytes .../Power/24H/B03_battery_animation_24h_13.png | Bin 3785 -> 0 bytes .../Power/24H/B03_battery_animation_24h_14.png | Bin 3784 -> 0 bytes .../Power/24H/B03_battery_animation_24h_15.png | Bin 3784 -> 0 bytes .../Power/24H/B03_battery_animation_24h_16.png | Bin 3783 -> 0 bytes .../Power/24H/B03_battery_animation_24h_17.png | Bin 3781 -> 0 bytes .../Power/24H/B03_battery_animation_24h_18.png | Bin 3780 -> 0 bytes .../Power/24H/B03_battery_animation_24h_19.png | Bin 3775 -> 0 bytes .../Power/24H/B03_battery_animation_24h_20.png | Bin 3745 -> 0 bytes .../icons/Power/B03_stat_sys_battery_0.png | Bin 0 -> 1151 bytes .../icons/Power/B03_stat_sys_battery_10.png | Bin 0 -> 1089 bytes .../icons/Power/B03_stat_sys_battery_100.png | Bin 0 -> 1086 bytes .../icons/Power/B03_stat_sys_battery_15.png | Bin 0 -> 1092 bytes .../icons/Power/B03_stat_sys_battery_20.png | Bin 0 -> 1092 bytes .../icons/Power/B03_stat_sys_battery_25.png | Bin 0 -> 1091 bytes .../icons/Power/B03_stat_sys_battery_30.png | Bin 0 -> 1092 bytes .../icons/Power/B03_stat_sys_battery_35.png | Bin 0 -> 1094 bytes .../icons/Power/B03_stat_sys_battery_4.png | Bin 0 -> 1151 bytes .../icons/Power/B03_stat_sys_battery_40.png | Bin 0 -> 1087 bytes .../icons/Power/B03_stat_sys_battery_45.png | Bin 0 -> 1088 bytes .../icons/Power/B03_stat_sys_battery_5.png | Bin 0 -> 1087 bytes .../icons/Power/B03_stat_sys_battery_50.png | Bin 0 -> 1091 bytes .../icons/Power/B03_stat_sys_battery_55.png | Bin 0 -> 1092 bytes .../icons/Power/B03_stat_sys_battery_60.png | Bin 0 -> 1093 bytes .../icons/Power/B03_stat_sys_battery_65.png | Bin 0 -> 1091 bytes .../icons/Power/B03_stat_sys_battery_70.png | Bin 0 -> 1092 bytes .../icons/Power/B03_stat_sys_battery_75.png | Bin 0 -> 1093 bytes .../icons/Power/B03_stat_sys_battery_80.png | Bin 0 -> 1089 bytes .../icons/Power/B03_stat_sys_battery_85.png | Bin 0 -> 1087 bytes .../icons/Power/B03_stat_sys_battery_90.png | Bin 0 -> 1081 bytes .../icons/Power/B03_stat_sys_battery_95.png | Bin 0 -> 1080 bytes .../Power/B03_stat_sys_battery_charge_anim0.png | Bin 0 -> 1220 bytes .../Power/B03_stat_sys_battery_charge_anim10.png | Bin 0 -> 1216 bytes .../Power/B03_stat_sys_battery_charge_anim100.png | Bin 0 -> 1218 bytes .../Power/B03_stat_sys_battery_charge_anim15.png | Bin 0 -> 1217 bytes .../Power/B03_stat_sys_battery_charge_anim20.png | Bin 0 -> 1220 bytes .../Power/B03_stat_sys_battery_charge_anim25.png | Bin 0 -> 1226 bytes .../Power/B03_stat_sys_battery_charge_anim30.png | Bin 0 -> 1237 bytes .../Power/B03_stat_sys_battery_charge_anim35.png | Bin 0 -> 1225 bytes .../Power/B03_stat_sys_battery_charge_anim4.png | Bin 0 -> 1220 bytes .../Power/B03_stat_sys_battery_charge_anim40.png | Bin 0 -> 1225 bytes .../Power/B03_stat_sys_battery_charge_anim45.png | Bin 0 -> 1226 bytes .../Power/B03_stat_sys_battery_charge_anim5.png | Bin 0 -> 1217 bytes .../Power/B03_stat_sys_battery_charge_anim50.png | Bin 0 -> 1224 bytes .../Power/B03_stat_sys_battery_charge_anim55.png | Bin 0 -> 1221 bytes .../Power/B03_stat_sys_battery_charge_anim60.png | Bin 0 -> 1216 bytes .../Power/B03_stat_sys_battery_charge_anim65.png | Bin 0 -> 1214 bytes .../Power/B03_stat_sys_battery_charge_anim70.png | Bin 0 -> 1214 bytes .../Power/B03_stat_sys_battery_charge_anim75.png | Bin 0 -> 1214 bytes .../Power/B03_stat_sys_battery_charge_anim80.png | Bin 0 -> 1213 bytes .../Power/B03_stat_sys_battery_charge_anim85.png | Bin 0 -> 1209 bytes .../Power/B03_stat_sys_battery_charge_anim90.png | Bin 0 -> 1199 bytes .../Power/B03_stat_sys_battery_charge_anim95.png | Bin 0 -> 1209 bytes .../icons/Power/B03_stat_sys_battery_full.png | Bin 0 -> 1300 bytes .../icons/Power/B03_stat_sys_battery_percent_0.png | Bin 0 -> 1099 bytes .../Power/B03_stat_sys_battery_percent_10.png | Bin 0 -> 1043 bytes .../Power/B03_stat_sys_battery_percent_100.png | Bin 0 -> 1042 bytes .../Power/B03_stat_sys_battery_percent_20.png | Bin 0 -> 1043 bytes .../Power/B03_stat_sys_battery_percent_30.png | Bin 0 -> 1044 bytes .../Power/B03_stat_sys_battery_percent_40.png | Bin 0 -> 1044 bytes .../Power/B03_stat_sys_battery_percent_50.png | Bin 0 -> 1044 bytes .../Power/B03_stat_sys_battery_percent_60.png | Bin 0 -> 1044 bytes .../Power/B03_stat_sys_battery_percent_70.png | Bin 0 -> 1044 bytes .../Power/B03_stat_sys_battery_percent_80.png | Bin 0 -> 1043 bytes .../Power/B03_stat_sys_battery_percent_90.png | Bin 0 -> 1049 bytes .../B03_stat_sys_battery_percent_charge_anim0.png | Bin 0 -> 1153 bytes .../B03_stat_sys_battery_percent_charge_anim10.png | Bin 0 -> 1159 bytes ...B03_stat_sys_battery_percent_charge_anim100.png | Bin 0 -> 1153 bytes .../B03_stat_sys_battery_percent_charge_anim20.png | Bin 0 -> 1159 bytes .../B03_stat_sys_battery_percent_charge_anim30.png | Bin 0 -> 1165 bytes .../B03_stat_sys_battery_percent_charge_anim40.png | Bin 0 -> 1153 bytes .../B03_stat_sys_battery_percent_charge_anim50.png | Bin 0 -> 1157 bytes .../B03_stat_sys_battery_percent_charge_anim60.png | Bin 0 -> 1155 bytes .../B03_stat_sys_battery_percent_charge_anim70.png | Bin 0 -> 1155 bytes .../B03_stat_sys_battery_percent_charge_anim80.png | Bin 0 -> 1155 bytes .../B03_stat_sys_battery_percent_charge_anim90.png | Bin 0 -> 1157 bytes .../battery_text/B03_stat_sys_battery_bg_1.png} | Bin 2787 -> 2891 bytes .../battery_text/B03_stat_sys_battery_bg_2.png} | Bin 2786 -> 2891 bytes .../battery_text/B03_stat_sys_battery_num_0.png | Bin 0 -> 1017 bytes .../battery_text/B03_stat_sys_battery_num_1.png | Bin 0 -> 1009 bytes .../battery_text/B03_stat_sys_battery_num_100.png | Bin 0 -> 1056 bytes .../battery_text/B03_stat_sys_battery_num_2.png | Bin 0 -> 1029 bytes .../battery_text/B03_stat_sys_battery_num_3.png | Bin 0 -> 1031 bytes .../battery_text/B03_stat_sys_battery_num_4.png | Bin 0 -> 1010 bytes .../battery_text/B03_stat_sys_battery_num_5.png | Bin 0 -> 1020 bytes .../battery_text/B03_stat_sys_battery_num_6.png | Bin 0 -> 1024 bytes .../battery_text/B03_stat_sys_battery_num_7.png | Bin 0 -> 1007 bytes .../battery_text/B03_stat_sys_battery_num_8.png | Bin 0 -> 1019 bytes .../battery_text/B03_stat_sys_battery_num_9.png | Bin 0 -> 1023 bytes .../icons/Private mode/B03_private_mode.png | Bin 0 -> 1142 bytes .../icons/Processing/B03_Call_divert_Sim_1.png | Bin 0 -> 1352 bytes .../icons/Processing/B03_Call_divert_Sim_2.png | Bin 0 -> 1367 bytes .../icons/Processing/B03_Call_divert_Sim_MMS.png | Bin 0 -> 1375 bytes .../icons/Processing/B03_Call_divert_Sim_SMS.png | Bin 0 -> 1375 bytes .../Processing/B03_Call_divert_Sim_global.png | Bin 0 -> 1423 bytes .../icons/Processing/B03_Call_divert_Sim_heart.png | Bin 0 -> 1406 bytes .../icons/Processing/B03_Call_divert_Sim_home.png | Bin 0 -> 1390 bytes .../Processing/B03_Call_divert_Sim_office.png | Bin 0 -> 1380 bytes .../icons/Processing/B03_Call_divert_Sim_phone.png | Bin 0 -> 1423 bytes .../icons/Processing/B03_Processing_01.png | Bin 3388 -> 1376 bytes .../icons/Processing/B03_Processing_02.png | Bin 3363 -> 1374 bytes .../icons/Processing/B03_Processing_03.png | Bin 3317 -> 1322 bytes .../icons/Processing/B03_Processing_04.png | Bin 3392 -> 1379 bytes .../icons/Processing/B03_Processing_05.png | Bin 3412 -> 1396 bytes .../icons/Processing/B03_Processing_06.png | Bin 3413 -> 1383 bytes .../icons/Processing/B03_Processing_07.png | Bin 3391 -> 1394 bytes .../icons/Processing/B03_Processing_08.png | Bin 3425 -> 1415 bytes .../icons/Processing/B03_Processing_09.png | Bin 3428 -> 1406 bytes .../icons/Processing/B03_Processing_10.png | Bin 3401 -> 1413 bytes .../icons/Processing/B03_Processing_11.png | Bin 3408 -> 1406 bytes .../icons/Processing/B03_Processing_12.png | Bin 3423 -> 1415 bytes .../icons/Processing/B03_Processing_13.png | Bin 3427 -> 1402 bytes .../icons/Processing/B03_Processing_14.png | Bin 3400 -> 1391 bytes .../icons/Processing/B03_Processing_15.png | Bin 3417 -> 1374 bytes .../icons/Processing/B03_Processing_16.png | Bin 3387 -> 1377 bytes .../icons/Processing/B03_Processing_17.png | Bin 3361 -> 1375 bytes .../icons/Processing/B03_Processing_18.png | Bin 3312 -> 1322 bytes .../icons/Processing/B03_Processing_19.png | Bin 3391 -> 1384 bytes .../icons/Processing/B03_Processing_20.png | Bin 3408 -> 1389 bytes .../icons/Processing/B03_Processing_21.png | Bin 3402 -> 1382 bytes .../icons/Processing/B03_Processing_22.png | Bin 3389 -> 1389 bytes .../icons/Processing/B03_Processing_23.png | Bin 3414 -> 1394 bytes .../icons/Processing/B03_Processing_24.png | Bin 3403 -> 1413 bytes .../icons/Processing/B03_Processing_25.png | Bin 3385 -> 1404 bytes .../icons/Processing/B03_Processing_26.png | Bin 3378 -> 1400 bytes .../icons/Processing/B03_Processing_27.png | Bin 3399 -> 1396 bytes .../icons/Processing/B03_Processing_28.png | Bin 3418 -> 1395 bytes .../icons/Processing/B03_Processing_29.png | Bin 3394 -> 1392 bytes .../icons/Processing/B03_Processing_30.png | Bin 3404 -> 1382 bytes .../icons/Processing/B03_Processing_CPHS_line1.png | Bin 3163 -> 1210 bytes .../icons/Processing/B03_Processing_CPHS_line2.png | Bin 3466 -> 1349 bytes .../icons/Processing/B03_Processing_Syncerror.png | Bin 3507 -> 1580 bytes .../icons/Processing/B03_Processing_Syncing.png | Bin 3564 -> 0 bytes .../icons/Processing/B03_Processing_Syncing_01.png | Bin 3562 -> 1473 bytes .../icons/Processing/B03_Processing_Syncing_02.png | Bin 3532 -> 1455 bytes .../icons/Processing/B03_Processing_Syncing_03.png | Bin 3512 -> 1481 bytes .../icons/Processing/B03_Processing_Syncing_04.png | Bin 3517 -> 1462 bytes .../icons/Processing/B03_Processing_calldivert.png | Bin 3263 -> 1397 bytes .../Processing/B03_Processing_download_ani_00.png | Bin 0 -> 1297 bytes .../Processing/B03_Processing_download_ani_01.png | Bin 0 -> 1283 bytes .../Processing/B03_Processing_download_ani_02.png | Bin 0 -> 1289 bytes .../Processing/B03_Processing_download_ani_03.png | Bin 0 -> 1283 bytes .../Processing/B03_Processing_download_ani_04.png | Bin 0 -> 1292 bytes .../Processing/B03_Processing_download_ani_05.png | Bin 0 -> 1297 bytes .../Processing/B03_Processing_download_ani_06.png | Bin 0 -> 1289 bytes .../B03_Processing_download_complete.png | Bin 0 -> 1289 bytes .../Processing/B03_Processing_download_failed.png | Bin 0 -> 1428 bytes .../Processing/B03_Processing_upload_ani_00.png | Bin 0 -> 1269 bytes .../Processing/B03_Processing_upload_ani_01.png | Bin 0 -> 1274 bytes .../Processing/B03_Processing_upload_ani_02.png | Bin 0 -> 1281 bytes .../Processing/B03_Processing_upload_ani_03.png | Bin 0 -> 1283 bytes .../Processing/B03_Processing_upload_ani_04.png | Bin 0 -> 1275 bytes .../Processing/B03_Processing_upload_ani_05.png | Bin 0 -> 1277 bytes .../Processing/B03_Processing_upload_ani_06.png | Bin 0 -> 1273 bytes .../Processing/B03_Processing_upload_complete.png | Bin 0 -> 1273 bytes .../Processing/B03_Processing_upload_failed.png | Bin 0 -> 1422 bytes data/resource/icons/Profile/B03_Profile_Mute.png | Bin 3176 -> 1452 bytes .../icons/Profile/B03_Profile_Sound&Vibration.png | Bin 3453 -> 0 bytes .../icons/Profile/B03_Profile_Vibration.png | Bin 3481 -> 1515 bytes data/resource/icons/RCS/B03_RCS.png | Bin 3169 -> 1976 bytes .../icons/RSSI/B03_Network_LimitedService.png | Bin 0 -> 1471 bytes data/resource/icons/RSSI/B03_RSSI_Drivingmode.png | Bin 0 -> 1332 bytes data/resource/icons/RSSI/B03_RSSI_Dual_Sim_00.png | Bin 0 -> 1128 bytes data/resource/icons/RSSI/B03_RSSI_Dual_Sim_01.png | Bin 0 -> 1130 bytes data/resource/icons/RSSI/B03_RSSI_Dual_Sim_02.png | Bin 0 -> 1130 bytes data/resource/icons/RSSI/B03_RSSI_Dual_Sim_03.png | Bin 0 -> 1131 bytes data/resource/icons/RSSI/B03_RSSI_Dual_Sim_04.png | Bin 0 -> 1124 bytes .../icons/RSSI/B03_RSSI_Dual_Sim_roaming_00.png | Bin 0 -> 1192 bytes .../icons/RSSI/B03_RSSI_Dual_Sim_roaming_01.png | Bin 0 -> 1190 bytes .../icons/RSSI/B03_RSSI_Dual_Sim_roaming_02.png | Bin 0 -> 1193 bytes .../icons/RSSI/B03_RSSI_Dual_Sim_roaming_03.png | Bin 0 -> 1194 bytes .../icons/RSSI/B03_RSSI_Dual_Sim_roaming_04.png | Bin 0 -> 1186 bytes data/resource/icons/RSSI/B03_RSSI_Flightmode.png | Bin 3332 -> 1394 bytes data/resource/icons/RSSI/B03_RSSI_NoService.png | Bin 3302 -> 1474 bytes data/resource/icons/RSSI/B03_RSSI_NoSim.png | Bin 3245 -> 1422 bytes data/resource/icons/RSSI/B03_RSSI_Searching.png | Bin 3361 -> 1388 bytes data/resource/icons/RSSI/B03_RSSI_Sim1_00.png | Bin 3116 -> 1198 bytes data/resource/icons/RSSI/B03_RSSI_Sim1_01.png | Bin 3123 -> 1200 bytes data/resource/icons/RSSI/B03_RSSI_Sim1_02.png | Bin 3123 -> 1198 bytes data/resource/icons/RSSI/B03_RSSI_Sim1_03.png | Bin 3125 -> 1196 bytes data/resource/icons/RSSI/B03_RSSI_Sim1_04.png | Bin 3121 -> 1200 bytes data/resource/icons/RSSI/B03_RSSI_Sim2_00.png | Bin 3189 -> 1274 bytes data/resource/icons/RSSI/B03_RSSI_Sim2_01.png | Bin 3193 -> 1274 bytes data/resource/icons/RSSI/B03_RSSI_Sim2_02.png | Bin 3186 -> 1269 bytes data/resource/icons/RSSI/B03_RSSI_Sim2_03.png | Bin 3215 -> 1271 bytes data/resource/icons/RSSI/B03_RSSI_Sim2_04.png | Bin 3194 -> 1293 bytes data/resource/icons/RSSI/B03_RSSI_Sim_00.png | Bin 3008 -> 1116 bytes data/resource/icons/RSSI/B03_RSSI_Sim_01.png | Bin 3023 -> 1117 bytes data/resource/icons/RSSI/B03_RSSI_Sim_02.png | Bin 3023 -> 1117 bytes data/resource/icons/RSSI/B03_RSSI_Sim_03.png | Bin 3034 -> 1116 bytes data/resource/icons/RSSI/B03_RSSI_Sim_04.png | Bin 3019 -> 1116 bytes .../resource/icons/RSSI/B03_RSSI_Sim_office_04.png | Bin 0 -> 1190 bytes data/resource/icons/RSSI/B03_RSSI_roaming_00.png | Bin 3142 -> 1174 bytes data/resource/icons/RSSI/B03_RSSI_roaming_01.png | Bin 3150 -> 1174 bytes data/resource/icons/RSSI/B03_RSSI_roaming_02.png | Bin 3147 -> 1176 bytes data/resource/icons/RSSI/B03_RSSI_roaming_03.png | Bin 3153 -> 1176 bytes data/resource/icons/RSSI/B03_RSSI_roaming_04.png | Bin 3150 -> 1185 bytes data/resource/icons/RSSI/B03_Roaming.png | Bin 3167 -> 1194 bytes .../icons/Ready to share/B03_ready_to_share.png | Bin 0 -> 1292 bytes .../icons/Rotation locked/B03_Rotationlocked.png | Bin 3354 -> 1499 bytes .../icons/SIM card full/B03_sim_card_full.png | Bin 0 -> 1317 bytes .../icons/Security/B03_Device_encryption_error.png | Bin 0 -> 1307 bytes data/resource/icons/Security/B03_Firewall.png | Bin 0 -> 1178 bytes .../icons/Security/B03_SDcard_dectyption.png | Bin 0 -> 1197 bytes .../icons/Security/B03_SDcard_encryption.png | Bin 0 -> 1204 bytes .../icons/Security/B03_Sdcard_encryption_error.png | Bin 0 -> 1317 bytes .../resource/icons/Security/B03_Security_error.png | Bin 0 -> 1421 bytes data/resource/icons/Security/B03_security_lock.png | Bin 0 -> 1213 bytes .../Send help messages/B03_send_help_messages.png | Bin 0 -> 1487 bytes data/resource/icons/Shealth/B03_shealth.png | Bin 0 -> 1567 bytes data/resource/icons/Splanner/B03_Splanner.png | Bin 0 -> 1096 bytes .../icons/Storage/B03_storage_memoryfull.png | Bin 0 -> 1439 bytes .../resource/icons/Storage/B03_storage_t_flash.png | Bin 0 -> 1204 bytes .../resource/icons/Tethering/B03_All_connected.png | Bin 0 -> 1441 bytes .../icons/Tethering/B03_All_no_connected.png | Bin 0 -> 1453 bytes data/resource/icons/Tethering/B03_BT_connected.png | Bin 0 -> 1435 bytes .../icons/Tethering/B03_BT_no_connected.png | Bin 0 -> 1479 bytes .../resource/icons/Tethering/B03_USB_connected.png | Bin 0 -> 1486 bytes .../icons/Tethering/B03_USB_no_connected.png | Bin 0 -> 1501 bytes .../icons/Tethering/B03_Wi_Fi_connected.png | Bin 0 -> 1506 bytes .../icons/Tethering/B03_Wi_Fi_no_connected.png | Bin 0 -> 1534 bytes data/resource/icons/USB tethering/B03_USB.png | Bin 3377 -> 1594 bytes data/resource/icons/VPN/B03_VPN.png | Bin 0 -> 1463 bytes .../icons/Voice control/B03_voice_control.png | Bin 0 -> 1402 bytes data/resource/icons/facebook/B03_facbook_app.png | Bin 0 -> 3190 bytes data/resource/icons/facebook/B03_facbook_event.png | Bin 0 -> 2945 bytes .../B03_facbook_friend_request.png} | Bin 3104 -> 3108 bytes .../icons/facebook/B03_facbook_messages.png | Bin 0 -> 3254 bytes data/resource/icons/handler_bg.#.png | Bin 0 -> 968 bytes .../handler_bg_ef.#.png} | Bin 2825 -> 2838 bytes .../resource/icons/tethering/B03_All_connected.png | Bin 0 -> 1441 bytes .../icons/tethering/B03_All_no_connected.png | Bin 0 -> 1453 bytes data/resource/icons/tethering/B03_BT_connected.png | Bin 0 -> 1435 bytes .../icons/tethering/B03_BT_no_connected.png | Bin 0 -> 1479 bytes .../resource/icons/tethering/B03_USB_connected.png | Bin 0 -> 1486 bytes .../icons/tethering/B03_USB_no_connected.png | Bin 0 -> 1501 bytes .../icons/tethering/B03_Wi_Fi_connected.png | Bin 0 -> 1506 bytes .../icons/tethering/B03_Wi_Fi_no_connected.png | Bin 0 -> 1534 bytes data/resource/icons_edc/B03_OrangeF.png | Bin 0 -> 3838 bytes .../icons_edc/B03_Processing_download_ani_00.png | Bin 0 -> 1297 bytes .../icons_edc/B03_Processing_download_ani_01.png | Bin 0 -> 1283 bytes .../icons_edc/B03_Processing_download_ani_02.png | Bin 0 -> 1289 bytes .../icons_edc/B03_Processing_download_ani_03.png | Bin 0 -> 1283 bytes .../icons_edc/B03_Processing_download_ani_04.png | Bin 0 -> 1292 bytes .../icons_edc/B03_Processing_download_ani_05.png | Bin 0 -> 1297 bytes .../icons_edc/B03_Processing_download_ani_06.png | Bin 0 -> 1289 bytes .../icons_edc/B03_Processing_download_complete.png | Bin 0 -> 1289 bytes .../icons_edc/B03_Processing_download_failed.png | Bin 0 -> 1428 bytes .../icons_edc/B03_Processing_upload_ani_00.png | Bin 0 -> 1269 bytes .../icons_edc/B03_Processing_upload_ani_01.png | Bin 0 -> 1274 bytes .../icons_edc/B03_Processing_upload_ani_02.png | Bin 0 -> 1281 bytes .../icons_edc/B03_Processing_upload_ani_03.png | Bin 0 -> 1283 bytes .../icons_edc/B03_Processing_upload_ani_04.png | Bin 0 -> 1275 bytes .../icons_edc/B03_Processing_upload_ani_05.png | Bin 0 -> 1277 bytes .../icons_edc/B03_Processing_upload_ani_06.png | Bin 0 -> 1273 bytes .../icons_edc/B03_Processing_upload_complete.png | Bin 0 -> 1273 bytes .../icons_edc/B03_Processing_upload_failed.png | Bin 0 -> 1422 bytes .../icons_edc/B03_conection_UPdownload.png | Bin 0 -> 1247 bytes .../icons_edc/B03_conection_not_UPdownload.png | Bin 0 -> 1247 bytes data/resource/icons_edc/B03_connection_UPload.png | Bin 0 -> 1254 bytes .../resource/icons_edc/B03_connection_download.png | Bin 0 -> 1251 bytes data/resource/icons_edc/B03_indicator_bg.png | Bin 0 -> 1052 bytes .../icons_edc/B03_not_conection_UPdownload.png | Bin 0 -> 1243 bytes data/resource/icons_edc/B03_notify_more.png | Bin 0 -> 1167 bytes .../B03_search_divider.png} | Bin 2825 -> 2804 bytes data/resource/icons_edc/core_theme_bg_01.png | Bin 0 -> 57845 bytes data/resource/icons_edc/handler_bg.#.png | Bin 0 -> 968 bytes data/resource/icons_edc/handler_bg_ef.#.png | Bin 0 -> 2838 bytes data/resource/icons_edc/handler_btn_02.png | Bin 0 -> 1428 bytes data/resource/indicator_common.edc | 185 ++- data/resource/indicator_gui.h | 58 +- data/resource/indicator_icon_animation.edc | 351 ++++ data/resource/indicator_icon_nonfixed_theme.edc | 165 +- data/resource/indicator_icon_theme.edc | 232 ++- data/resource/indicator_land.edc | 1053 ------------ data/resource/indicator_port.edc | 1685 +++++++++++++++----- data/resource/ticker.edc | 216 +++ data/resource/ticker_animated_icon.edc | 517 ++++++ data/resource/ticker_default.edc | 502 ++++++ modules/clock/clock.c | 1122 +++++++------ modules/connection/connection.c | 735 +++++++-- modules/connection/connection.h | 26 + modules/connection/dock.c | 145 ++ modules/connection/mobile_hotspot.c | 229 +-- modules/connection/nosim.c | 138 ++ modules/connection/usb.c | 169 +- modules/connection/wifi.c | 319 ++-- daemon/indicator.c => modules/home/always.c | 11 +- modules/home/home.c | 108 +- modules/home/search.c | 226 +++ modules/information/alarm.c | 126 +- modules/information/earphone.c | 90 +- .../information/felica_lock.c | 14 +- modules/information/fm_radio.c | 130 ++ modules/information/lowmem.c | 286 ++++ modules/information/mmc.c | 176 +- modules/information/more_notify.c | 177 ++ modules/information/mp3_playing.c | 203 ++- modules/information/noti.c | 619 ++++--- modules/information/video_play.c | 161 ++ modules/information/voice_recorder.c | 204 +-- modules/modules.c | 312 ++-- modules/modules.h | 31 +- modules/network/roaming.c | 72 +- modules/network/rssi.c | 1060 ++++++++++-- .../network/rssi.h | 17 +- modules/power/battery.c | 817 ++++++---- modules/processing/active_sync.c | 199 --- modules/processing/call.c | 230 ++- modules/processing/call_divert.c | 293 +++- modules/processing/call_divert.h | 26 + modules/processing/downloading.c | 213 +++ modules/processing/sos.c | 245 --- modules/processing/transfer.c | 164 ++ modules/processing/uploading.c | 202 +++ modules/setting/bluetooth.c | 279 ++-- modules/setting/gps.c | 182 +-- modules/setting/network-restriction.c | 20 + modules/setting/nfc.c | 85 +- modules/setting/rotation-lock.c | 20 + modules/setting/silent.c | 201 ++- modules/setting/wifi-direct.c | 190 +-- org.tizen.indicator.efl | 74 + org.tizen.indicator.manifest | 13 + org.tizen.indicator.rule | 43 + packaging/indicator.service | 7 +- packaging/indicator.service.system | 13 + packaging/org.tizen.indicator.changes | 22 - packaging/org.tizen.indicator.manifest | 5 - packaging/org.tizen.indicator.spec | 126 +- po/hy.po | 2 +- test/indicator_debug_util.c | 83 - test/indicator_test_util.c | 53 - 663 files changed, 18253 insertions(+), 9428 deletions(-) mode change 100644 => 100755 AUTHORS create mode 100644 LICENSE delete mode 100644 LICENSE.Flora mode change 100644 => 100755 NOTICE create mode 100644 daemon/box.c create mode 100644 daemon/box.h mode change 100755 => 100644 daemon/common.h create mode 100644 daemon/icon.c create mode 100644 daemon/icon.h mode change 100755 => 100644 daemon/indicator.h delete mode 100755 daemon/indicator_box_util.c delete mode 100755 daemon/indicator_box_util.h delete mode 100755 daemon/indicator_icon_list.c delete mode 100755 daemon/indicator_icon_list.h delete mode 100755 daemon/indicator_icon_util.c delete mode 100755 daemon/indicator_icon_util.h delete mode 100755 daemon/indicator_ui.c delete mode 100755 daemon/indicator_ui.h delete mode 100755 daemon/indicator_util.c delete mode 100755 daemon/indicator_util.h create mode 100644 daemon/list.c create mode 100644 daemon/list.h create mode 100755 daemon/log.h create mode 100644 daemon/main.c create mode 100644 daemon/main.h create mode 100644 daemon/message.c create mode 100644 daemon/message.h create mode 100644 daemon/noti_win.c create mode 100644 daemon/noti_win.h create mode 100644 daemon/plmn.c create mode 100644 daemon/plmn.h create mode 100644 daemon/ticker.c create mode 100644 daemon/ticker.h create mode 100644 daemon/tts.c create mode 100644 daemon/tts.h create mode 100644 daemon/util.c create mode 100644 daemon/util.h mode change 100755 => 100644 data/indicator.conf mode change 100755 => 100644 data/indicator.desktop.in create mode 100644 data/indicator.sh.in mode change 100755 => 100644 data/indicator.xml.in create mode 100644 data/org.tizen.indicator_ChangeableColorInfo.xml create mode 100644 data/org.tizen.indicator_ChangeableFontInfo.xml mode change 100755 => 100644 data/resource/CMakeLists.txt create mode 100755 data/resource/animated_icon/noti_download_01.png create mode 100755 data/resource/animated_icon/noti_download_02.png create mode 100755 data/resource/animated_icon/noti_download_03.png create mode 100755 data/resource/animated_icon/noti_download_04.png create mode 100755 data/resource/animated_icon/noti_download_05.png create mode 100755 data/resource/animated_icon/noti_download_complete.png create mode 100755 data/resource/animated_icon/noti_install_01.png create mode 100755 data/resource/animated_icon/noti_install_02.png create mode 100755 data/resource/animated_icon/noti_install_03.png create mode 100755 data/resource/animated_icon/noti_install_04.png create mode 100755 data/resource/animated_icon/noti_install_05.png create mode 100755 data/resource/animated_icon/noti_install_complete.png create mode 100755 data/resource/animated_icon/noti_upload_01.png create mode 100755 data/resource/animated_icon/noti_upload_02.png create mode 100755 data/resource/animated_icon/noti_upload_03.png create mode 100755 data/resource/animated_icon/noti_upload_04.png create mode 100755 data/resource/animated_icon/noti_upload_05.png create mode 100755 data/resource/animated_icon/noti_upload_complete.png create mode 100644 data/resource/color_classes.edc create mode 100755 data/resource/icons/Account/B03_samsung_account.png create mode 100755 data/resource/icons/Account/B03_tizen_account.png create mode 100755 data/resource/icons/Alarm/B03_snooze.png delete mode 100755 data/resource/icons/App tray/B03_always.PNG delete mode 100755 data/resource/icons/App tray/B03_always_dim.PNG delete mode 100755 data/resource/icons/App tray/B03_always_press.PNG delete mode 100755 data/resource/icons/App tray/B03_app_tray.PNG delete mode 100755 data/resource/icons/App tray/B03_app_tray_dim.PNG delete mode 100755 data/resource/icons/App tray/B03_app_tray_press.PNG create mode 100644 data/resource/icons/B03_notification.png create mode 100644 data/resource/icons/B03_notification_press.png create mode 100644 data/resource/icons/B03_search.png create mode 100644 data/resource/icons/B03_search_press.png mode change 100755 => 100644 data/resource/icons/Background playing/B03_Backgroundplaying_FMradio.png create mode 100644 data/resource/icons/Background playing/B03_Backgroundplaying_Voicerecorder.png create mode 100644 data/resource/icons/Background playing/B03_Backgroundplaying_music_paused.png create mode 100644 data/resource/icons/Background playing/B03_Backgroundplaying_music_playing.png delete mode 100755 data/resource/icons/Background playing/B03_Backgroundplaying_voicerecorder_Recording.png delete mode 100755 data/resource/icons/Background playing/B03_Backgroundplaying_voicerecorder_paused.png create mode 100644 data/resource/icons/Background playing/B03_Backgroundplaying_voicerecorder_player_pause.png create mode 100644 data/resource/icons/Background playing/B03_Backgroundplaying_voicerecorder_player_play.png delete mode 100755 data/resource/icons/Bluetooth, NFC, GPS/B03-4_BT_activated.png mode change 100755 => 100644 data/resource/icons/Bluetooth, NFC, GPS/B03-4_BT_activated_on.png create mode 100755 data/resource/icons/Bluetooth, NFC, GPS/B03_BT_activated.png create mode 100755 data/resource/icons/Bluetooth, NFC, GPS/B03_BT_activated_on.png create mode 100755 data/resource/icons/Bluetooth, NFC, GPS/B03_BT_tethering-network.png create mode 100755 data/resource/icons/Bluetooth, NFC, GPS/B03_BT_tethering_network.png mode change 100755 => 100644 data/resource/icons/Bluetooth, NFC, GPS/B03_GPS_Searching.png delete mode 100755 data/resource/icons/Bluetooth, NFC, GPS/B03_Wi-fi_direct On_connected.png delete mode 100755 data/resource/icons/Bluetooth, NFC, GPS/B03_Wi-fi_direct On_not connected.png create mode 100755 data/resource/icons/Bluetooth, NFC, GPS/B03_Wi-fi_direct-On_connected.png create mode 100755 data/resource/icons/Bluetooth, NFC, GPS/B03_Wi-fi_direct-On_not-connected.png create mode 100755 data/resource/icons/Bluetooth, NFC, GPS/B03_bt_headset.png create mode 100755 data/resource/icons/Call divert/B03_Call_divert_Sim_1.png create mode 100755 data/resource/icons/Call divert/B03_Call_divert_Sim_2.png create mode 100755 data/resource/icons/Call divert/B03_Call_divert_Sim_MMS.png create mode 100755 data/resource/icons/Call divert/B03_Call_divert_Sim_SMS.png create mode 100755 data/resource/icons/Call divert/B03_Call_divert_Sim_data.png create mode 100755 data/resource/icons/Call divert/B03_Call_divert_Sim_global.png create mode 100755 data/resource/icons/Call divert/B03_Call_divert_Sim_heart.png create mode 100755 data/resource/icons/Call divert/B03_Call_divert_Sim_home.png create mode 100755 data/resource/icons/Call divert/B03_Call_divert_Sim_messages.png create mode 100755 data/resource/icons/Call divert/B03_Call_divert_Sim_office.png create mode 100755 data/resource/icons/Call divert/B03_Call_divert_Sim_phone.png create mode 100755 data/resource/icons/Call divert/B03_Call_divert_default.png create mode 100755 data/resource/icons/Call/B03_Call_Mute.png create mode 100755 data/resource/icons/Call/B03_Call_Speaker_on.png create mode 100755 data/resource/icons/Call/B03_Call_bluetooth.png create mode 100755 data/resource/icons/Cloud/B03_cloud.png create mode 100755 data/resource/icons/Connection Latin/B03_conection_latin_UPdownload.png create mode 100755 data/resource/icons/Connection Latin/B03_connection_latin_3G.png create mode 100755 data/resource/icons/Connection Latin/B03_connection_latin_4G.png create mode 100755 data/resource/icons/Connection Latin/B03_connection_latin_E.png create mode 100755 data/resource/icons/Connection Latin/B03_connection_latin_GSM.png create mode 100755 data/resource/icons/Connection Latin/B03_connection_latin_H+.png create mode 100755 data/resource/icons/Connection Latin/B03_connection_latin_H.png create mode 100755 data/resource/icons/Connection Latin/B03_connection_latin_LimitedService.png create mode 100755 data/resource/icons/Connection Latin/B03_latin_3G.png create mode 100755 data/resource/icons/Connection Latin/B03_latin_4G.png create mode 100755 data/resource/icons/Connection Latin/B03_latin_E.png create mode 100755 data/resource/icons/Connection Latin/B03_latin_GSM.png create mode 100755 data/resource/icons/Connection Latin/B03_latin_H+.png create mode 100755 data/resource/icons/Connection Latin/B03_latin_H.png create mode 100755 data/resource/icons/Connection Latin/B03_latin_LimitedService.png create mode 100755 data/resource/icons/Connection/B03_1x.png create mode 100755 data/resource/icons/Connection/B03_3G+.png create mode 100755 data/resource/icons/Connection/B03_3G.png create mode 100755 data/resource/icons/Connection/B03_4G.png create mode 100755 data/resource/icons/Connection/B03_CDMA.png create mode 100755 data/resource/icons/Connection/B03_E.png create mode 100755 data/resource/icons/Connection/B03_EVDO.png create mode 100755 data/resource/icons/Connection/B03_GPRS.png create mode 100755 data/resource/icons/Connection/B03_GSM.png create mode 100755 data/resource/icons/Connection/B03_H+.png create mode 100755 data/resource/icons/Connection/B03_H.png create mode 100755 data/resource/icons/Connection/B03_Highspeed.png create mode 100755 data/resource/icons/Connection/B03_LTE.png create mode 100755 data/resource/icons/Connection/B03_MobileAP_connected_10.png create mode 100755 data/resource/icons/Connection/B03_MobileAP_connected_11.png create mode 100755 data/resource/icons/Connection/B03_MobileAP_connected_12.png create mode 100755 data/resource/icons/Connection/B03_MobileAP_connected_13.png create mode 100755 data/resource/icons/Connection/B03_MobileAP_connected_14.png create mode 100755 data/resource/icons/Connection/B03_MobileAP_connected_15.png create mode 100755 data/resource/icons/Connection/B03_MobileAP_connected_16.png create mode 100755 data/resource/icons/Connection/B03_MobileAP_connected_17.png create mode 100755 data/resource/icons/Connection/B03_MobileAP_connected_18.png create mode 100755 data/resource/icons/Connection/B03_MobileAP_in_range.png delete mode 100755 data/resource/icons/Connection/B03_MobileAP_on¬ connected.png create mode 100755 data/resource/icons/Connection/B03_MobileAP_on¬-connected.png create mode 100755 data/resource/icons/Connection/B03_USB.png create mode 100755 data/resource/icons/Connection/B03_conection_UPdownload.png create mode 100755 data/resource/icons/Connection/B03_conection_not_UPdownload.png create mode 100755 data/resource/icons/Connection/B03_connection_C.png create mode 100755 data/resource/icons/Connection/B03_connection_E.png create mode 100755 data/resource/icons/Connection/B03_connection_EV.png delete mode 100755 data/resource/icons/Connection/B03_connection_EVDO.png create mode 100755 data/resource/icons/Connection/B03_connection_G.png delete mode 100755 data/resource/icons/Connection/B03_connection_GSM.png create mode 100755 data/resource/icons/Connection/B03_connection_H+.png create mode 100755 data/resource/icons/Connection/B03_connection_H.png create mode 100755 data/resource/icons/Connection/B03_connection_HS.png delete mode 100755 data/resource/icons/Connection/B03_connection_Highspeed.png create mode 100755 data/resource/icons/Connection/B03_connection_UPload.png delete mode 100755 data/resource/icons/Connection/B03_connection_USB.png create mode 100755 data/resource/icons/Connection/B03_connection_download.png create mode 100755 data/resource/icons/Connection/B03_connection_download_3G.png create mode 100755 data/resource/icons/Connection/B03_connection_download_LTE.png create mode 100755 data/resource/icons/Connection/B03_data_downloading_Wifi_01.png create mode 100755 data/resource/icons/Connection/B03_data_downloading_Wifi_02.png create mode 100755 data/resource/icons/Connection/B03_data_downloading_Wifi_03.png create mode 100755 data/resource/icons/Connection/B03_data_downloading_Wifi_04.png create mode 100755 data/resource/icons/Connection/B03_network_bonding_download_00.png create mode 100755 data/resource/icons/Connection/B03_network_bonding_download_01.png create mode 100755 data/resource/icons/Connection/B03_network_bonding_download_02.png create mode 100755 data/resource/icons/Connection/B03_network_bonding_download_03.png create mode 100755 data/resource/icons/Connection/B03_network_bonding_download_04.png create mode 100755 data/resource/icons/Connection/B03_network_bonding_download_05.png create mode 100755 data/resource/icons/Connection/B03_network_bonding_download_06.png create mode 100755 data/resource/icons/Connection/B03_not_conection_UPdownload.png create mode 100644 data/resource/icons/Connection/network_restriction_mode.png create mode 100755 data/resource/icons/Desk dock/B03_desk_dock.png create mode 100755 data/resource/icons/Download booster/B03_download_booster_3g_dim.png create mode 100755 data/resource/icons/Download booster/B03_download_booster_3g_on.png create mode 100755 data/resource/icons/Download booster/B03_download_booster_LTE_dim.png create mode 100755 data/resource/icons/Download booster/B03_download_booster_LTE_on.png create mode 100755 data/resource/icons/Download booster/B03_download_booster_dim.png create mode 100755 data/resource/icons/Download booster/B03_download_booster_down_up.png create mode 100755 data/resource/icons/Download booster/B03_download_booster_down_up_download.png create mode 100755 data/resource/icons/Download booster/B03_download_booster_down_up_none.png create mode 100755 data/resource/icons/Download booster/B03_download_booster_down_up_upload.png create mode 100755 data/resource/icons/Download booster/B03_download_booster_no_service.png create mode 100755 data/resource/icons/Download booster/B03_download_booster_no_service_dim.png create mode 100755 data/resource/icons/Download booster/B03_download_booster_on.png create mode 100755 data/resource/icons/Download booster/B03_download_booster_wifi_00.png create mode 100755 data/resource/icons/Download booster/B03_download_booster_wifi_01.png create mode 100755 data/resource/icons/Download booster/B03_download_booster_wifi_02.png create mode 100755 data/resource/icons/Download booster/B03_download_booster_wifi_03.png create mode 100755 data/resource/icons/Download booster/B03_download_booster_wifi_04.png rename data/resource/icons/{Background playing/B03_Backgroundplaying_Voicerecording.png => Dropbox/B03_dropbox.png} (77%) create mode 100755 data/resource/icons/Dual SIM/B03_Dual_Sim_00.png create mode 100755 data/resource/icons/Dual SIM/B03_Dual_Sim_01.png create mode 100755 data/resource/icons/Dual SIM/B03_Dual_Sim_1.png create mode 100755 data/resource/icons/Dual SIM/B03_Dual_Sim_2.png create mode 100755 data/resource/icons/Dual SIM/B03_Dual_Sim_MMS.png create mode 100755 data/resource/icons/Dual SIM/B03_Dual_Sim_SMS.png create mode 100755 data/resource/icons/Dual SIM/B03_Dual_Sim_data.png create mode 100755 data/resource/icons/Dual SIM/B03_Dual_Sim_global.png create mode 100755 data/resource/icons/Dual SIM/B03_Dual_Sim_heart.png create mode 100755 data/resource/icons/Dual SIM/B03_Dual_Sim_home.png create mode 100755 data/resource/icons/Dual SIM/B03_Dual_Sim_messages.png create mode 100755 data/resource/icons/Dual SIM/B03_Dual_Sim_office.png create mode 100755 data/resource/icons/Dual SIM/B03_Dual_Sim_phone.png create mode 100755 data/resource/icons/Earphone/B03_BT_Headset.png delete mode 100755 data/resource/icons/Earphone/B03_Earphone.png rename data/resource/icons/{Connection/B03_connection02.png => Error/B03_Error.png} (86%) create mode 100755 data/resource/icons/Event/B03_event_OTA_Messages.png create mode 100755 data/resource/icons/Event/B03_event_blocking_mode.png create mode 100755 data/resource/icons/Event/B03_event_cancel_message.png create mode 100755 data/resource/icons/Event/B03_event_delivery_report_message.png rename data/resource/icons/{Connection/B03_connection_CDMA.png => Event/B03_event_private_mode.png} (87%) create mode 100755 data/resource/icons/Event/B03_event_read_report_message.png create mode 100755 data/resource/icons/Event/B03_event_screen_mirroring.png create mode 100755 data/resource/icons/Face Detection/B03_face_detection_off.png create mode 100755 data/resource/icons/Face Detection/B03_face_detection_on.png rename data/resource/icons/{Background playing/B03_Backgroundplaying_Music_paused.png => Felica/Felica.png} (83%) mode change 100755 => 100644 create mode 100755 data/resource/icons/Find my mobile/B03_fmm_call_log.png create mode 100755 data/resource/icons/Find my mobile/B03_fmm_location_info.png create mode 100755 data/resource/icons/Find my mobile/B03_fmm_unlock.png rename data/resource/icons/{Background playing/B03_Backgroundplaying_MP3playing.png => Fota/B03_fota.png} (82%) create mode 100755 data/resource/icons/Gear/B03_gear_connect.png create mode 100755 data/resource/icons/Gear/B03_gear_disconnect.png create mode 100755 data/resource/icons/Group play/B03_group_play.png create mode 100755 data/resource/icons/Message/B03_OTA_Messages.png create mode 100755 data/resource/icons/More/B03_notification.png create mode 100755 data/resource/icons/Near by device/B03_near_by_device.png create mode 100755 data/resource/icons/Notification/B03_battery_full.png create mode 100644 data/resource/icons/Notification/B03_video.png create mode 100755 data/resource/icons/Notify/B03_noti_readout.png create mode 100644 data/resource/icons/Notify/B03_notification.png create mode 100755 data/resource/icons/Notify/B03_notify_Wi-fi.png create mode 100755 data/resource/icons/Notify/B03_notify_Wi-fi_direct_not_connected.png create mode 100755 data/resource/icons/Notify/B03_notify_Wi-fi_range.png create mode 100755 data/resource/icons/Notify/B03_notify_Wi-fi_timer.png create mode 100755 data/resource/icons/Notify/B03_notify_Wi-fi_warning.png create mode 100755 data/resource/icons/Notify/B03_notify_image.png create mode 100755 data/resource/icons/Notify/B03_notify_image_error.png create mode 100755 data/resource/icons/Notify/B03_notify_message.png create mode 100755 data/resource/icons/Notify/B03_notify_message_failed.png create mode 100755 data/resource/icons/Notify/B03_notify_more.png create mode 100755 data/resource/icons/Notify/B03_notify_safe_mode.png create mode 100755 data/resource/icons/Notify/B03_notify_slideshow_play.png create mode 100755 data/resource/icons/Notify/B03_notify_torch.png create mode 100755 data/resource/icons/Notify/B03_notify_video_play.png create mode 100755 data/resource/icons/Notify/B03_notiy_readout.png.png create mode 100755 data/resource/icons/Notify/B03_side_sync.png create mode 100755 data/resource/icons/Patterns/B03_patterns_cooling_down.png create mode 100644 data/resource/icons/Personal mode/B03_personal_mode.png create mode 100755 data/resource/icons/Power saving mode/B03_Power_saving_mode.png create mode 100755 data/resource/icons/Power saving mode/B03_ultra_Power_saving_mode.png delete mode 100755 data/resource/icons/Power/12H/B03_battery_animation_12h_00.png delete mode 100755 data/resource/icons/Power/12H/B03_battery_animation_12h_01.png delete mode 100755 data/resource/icons/Power/12H/B03_battery_animation_12h_02.png delete mode 100755 data/resource/icons/Power/12H/B03_battery_animation_12h_03.png delete mode 100755 data/resource/icons/Power/12H/B03_battery_animation_12h_04.png delete mode 100755 data/resource/icons/Power/12H/B03_battery_animation_12h_05.png delete mode 100755 data/resource/icons/Power/12H/B03_battery_animation_12h_06.png delete mode 100755 data/resource/icons/Power/12H/B03_battery_animation_12h_07.png delete mode 100755 data/resource/icons/Power/12H/B03_battery_animation_12h_08.png delete mode 100755 data/resource/icons/Power/12H/B03_battery_animation_12h_09.png delete mode 100755 data/resource/icons/Power/12H/B03_battery_animation_12h_10.png delete mode 100755 data/resource/icons/Power/12H/B03_battery_animation_12h_11.png delete mode 100755 data/resource/icons/Power/12H/B03_battery_animation_12h_12.png delete mode 100755 data/resource/icons/Power/12H/B03_battery_animation_12h_13.png delete mode 100755 data/resource/icons/Power/12H/B03_battery_animation_12h_14.png delete mode 100755 data/resource/icons/Power/12H/B03_battery_animation_12h_15.png delete mode 100755 data/resource/icons/Power/12H/B03_battery_animation_12h_16.png delete mode 100755 data/resource/icons/Power/12H/B03_battery_animation_12h_17.png delete mode 100755 data/resource/icons/Power/12H/B03_battery_animation_12h_18.png delete mode 100755 data/resource/icons/Power/12H/B03_battery_animation_12h_19.png delete mode 100755 data/resource/icons/Power/12H/B03_battery_animation_12h_20.png delete mode 100755 data/resource/icons/Power/24H/B03_battery_animation_24h_00.png delete mode 100755 data/resource/icons/Power/24H/B03_battery_animation_24h_01.png delete mode 100755 data/resource/icons/Power/24H/B03_battery_animation_24h_02.png delete mode 100755 data/resource/icons/Power/24H/B03_battery_animation_24h_03.png delete mode 100755 data/resource/icons/Power/24H/B03_battery_animation_24h_04.png delete mode 100755 data/resource/icons/Power/24H/B03_battery_animation_24h_05.png delete mode 100755 data/resource/icons/Power/24H/B03_battery_animation_24h_06.png delete mode 100755 data/resource/icons/Power/24H/B03_battery_animation_24h_07.png delete mode 100755 data/resource/icons/Power/24H/B03_battery_animation_24h_08.png delete mode 100755 data/resource/icons/Power/24H/B03_battery_animation_24h_09.png delete mode 100755 data/resource/icons/Power/24H/B03_battery_animation_24h_10.png delete mode 100755 data/resource/icons/Power/24H/B03_battery_animation_24h_11.png delete mode 100755 data/resource/icons/Power/24H/B03_battery_animation_24h_12.png delete mode 100755 data/resource/icons/Power/24H/B03_battery_animation_24h_13.png delete mode 100755 data/resource/icons/Power/24H/B03_battery_animation_24h_14.png delete mode 100755 data/resource/icons/Power/24H/B03_battery_animation_24h_15.png delete mode 100755 data/resource/icons/Power/24H/B03_battery_animation_24h_16.png delete mode 100755 data/resource/icons/Power/24H/B03_battery_animation_24h_17.png delete mode 100755 data/resource/icons/Power/24H/B03_battery_animation_24h_18.png delete mode 100755 data/resource/icons/Power/24H/B03_battery_animation_24h_19.png delete mode 100755 data/resource/icons/Power/24H/B03_battery_animation_24h_20.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_0.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_10.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_100.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_15.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_20.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_25.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_30.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_35.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_4.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_40.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_45.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_5.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_50.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_55.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_60.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_65.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_70.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_75.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_80.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_85.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_90.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_95.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_charge_anim0.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_charge_anim10.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_charge_anim100.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_charge_anim15.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_charge_anim20.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_charge_anim25.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_charge_anim30.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_charge_anim35.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_charge_anim4.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_charge_anim40.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_charge_anim45.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_charge_anim5.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_charge_anim50.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_charge_anim55.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_charge_anim60.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_charge_anim65.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_charge_anim70.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_charge_anim75.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_charge_anim80.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_charge_anim85.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_charge_anim90.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_charge_anim95.png create mode 100644 data/resource/icons/Power/B03_stat_sys_battery_full.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_percent_0.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_percent_10.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_percent_100.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_percent_20.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_percent_30.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_percent_40.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_percent_50.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_percent_60.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_percent_70.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_percent_80.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_percent_90.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_percent_charge_anim0.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_percent_charge_anim10.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_percent_charge_anim100.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_percent_charge_anim20.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_percent_charge_anim30.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_percent_charge_anim40.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_percent_charge_anim50.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_percent_charge_anim60.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_percent_charge_anim70.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_percent_charge_anim80.png create mode 100755 data/resource/icons/Power/B03_stat_sys_battery_percent_charge_anim90.png rename data/resource/{00_winset_indicator_bg.png => icons/Power/battery_text/B03_stat_sys_battery_bg_1.png} (92%) mode change 100755 => 100644 rename data/resource/{00_winset_indicator_event_bg.png => icons/Power/battery_text/B03_stat_sys_battery_bg_2.png} (92%) mode change 100755 => 100644 create mode 100755 data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_0.png create mode 100755 data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_1.png create mode 100755 data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_100.png create mode 100755 data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_2.png create mode 100755 data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_3.png create mode 100755 data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_4.png create mode 100755 data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_5.png create mode 100755 data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_6.png create mode 100755 data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_7.png create mode 100755 data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_8.png create mode 100755 data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_9.png create mode 100755 data/resource/icons/Private mode/B03_private_mode.png create mode 100644 data/resource/icons/Processing/B03_Call_divert_Sim_1.png create mode 100644 data/resource/icons/Processing/B03_Call_divert_Sim_2.png create mode 100644 data/resource/icons/Processing/B03_Call_divert_Sim_MMS.png create mode 100644 data/resource/icons/Processing/B03_Call_divert_Sim_SMS.png create mode 100644 data/resource/icons/Processing/B03_Call_divert_Sim_global.png create mode 100644 data/resource/icons/Processing/B03_Call_divert_Sim_heart.png create mode 100644 data/resource/icons/Processing/B03_Call_divert_Sim_home.png create mode 100644 data/resource/icons/Processing/B03_Call_divert_Sim_office.png create mode 100644 data/resource/icons/Processing/B03_Call_divert_Sim_phone.png delete mode 100755 data/resource/icons/Processing/B03_Processing_Syncing.png create mode 100755 data/resource/icons/Processing/B03_Processing_download_ani_00.png create mode 100755 data/resource/icons/Processing/B03_Processing_download_ani_01.png create mode 100755 data/resource/icons/Processing/B03_Processing_download_ani_02.png create mode 100755 data/resource/icons/Processing/B03_Processing_download_ani_03.png create mode 100755 data/resource/icons/Processing/B03_Processing_download_ani_04.png create mode 100755 data/resource/icons/Processing/B03_Processing_download_ani_05.png create mode 100755 data/resource/icons/Processing/B03_Processing_download_ani_06.png create mode 100755 data/resource/icons/Processing/B03_Processing_download_complete.png create mode 100755 data/resource/icons/Processing/B03_Processing_download_failed.png create mode 100755 data/resource/icons/Processing/B03_Processing_upload_ani_00.png create mode 100755 data/resource/icons/Processing/B03_Processing_upload_ani_01.png create mode 100755 data/resource/icons/Processing/B03_Processing_upload_ani_02.png create mode 100755 data/resource/icons/Processing/B03_Processing_upload_ani_03.png create mode 100755 data/resource/icons/Processing/B03_Processing_upload_ani_04.png create mode 100755 data/resource/icons/Processing/B03_Processing_upload_ani_05.png create mode 100755 data/resource/icons/Processing/B03_Processing_upload_ani_06.png create mode 100755 data/resource/icons/Processing/B03_Processing_upload_complete.png create mode 100755 data/resource/icons/Processing/B03_Processing_upload_failed.png delete mode 100755 data/resource/icons/Profile/B03_Profile_Sound&Vibration.png create mode 100755 data/resource/icons/RSSI/B03_Network_LimitedService.png create mode 100755 data/resource/icons/RSSI/B03_RSSI_Drivingmode.png create mode 100755 data/resource/icons/RSSI/B03_RSSI_Dual_Sim_00.png create mode 100755 data/resource/icons/RSSI/B03_RSSI_Dual_Sim_01.png create mode 100755 data/resource/icons/RSSI/B03_RSSI_Dual_Sim_02.png create mode 100755 data/resource/icons/RSSI/B03_RSSI_Dual_Sim_03.png create mode 100755 data/resource/icons/RSSI/B03_RSSI_Dual_Sim_04.png create mode 100755 data/resource/icons/RSSI/B03_RSSI_Dual_Sim_roaming_00.png create mode 100755 data/resource/icons/RSSI/B03_RSSI_Dual_Sim_roaming_01.png create mode 100755 data/resource/icons/RSSI/B03_RSSI_Dual_Sim_roaming_02.png create mode 100755 data/resource/icons/RSSI/B03_RSSI_Dual_Sim_roaming_03.png create mode 100755 data/resource/icons/RSSI/B03_RSSI_Dual_Sim_roaming_04.png mode change 100755 => 100644 data/resource/icons/RSSI/B03_RSSI_Sim1_00.png mode change 100755 => 100644 data/resource/icons/RSSI/B03_RSSI_Sim1_01.png mode change 100755 => 100644 data/resource/icons/RSSI/B03_RSSI_Sim1_02.png mode change 100755 => 100644 data/resource/icons/RSSI/B03_RSSI_Sim1_03.png mode change 100755 => 100644 data/resource/icons/RSSI/B03_RSSI_Sim1_04.png mode change 100755 => 100644 data/resource/icons/RSSI/B03_RSSI_Sim2_00.png mode change 100755 => 100644 data/resource/icons/RSSI/B03_RSSI_Sim2_01.png mode change 100755 => 100644 data/resource/icons/RSSI/B03_RSSI_Sim2_02.png mode change 100755 => 100644 data/resource/icons/RSSI/B03_RSSI_Sim2_03.png mode change 100755 => 100644 data/resource/icons/RSSI/B03_RSSI_Sim2_04.png create mode 100755 data/resource/icons/RSSI/B03_RSSI_Sim_office_04.png create mode 100755 data/resource/icons/Ready to share/B03_ready_to_share.png create mode 100755 data/resource/icons/SIM card full/B03_sim_card_full.png create mode 100755 data/resource/icons/Security/B03_Device_encryption_error.png create mode 100755 data/resource/icons/Security/B03_Firewall.png create mode 100755 data/resource/icons/Security/B03_SDcard_dectyption.png create mode 100755 data/resource/icons/Security/B03_SDcard_encryption.png create mode 100755 data/resource/icons/Security/B03_Sdcard_encryption_error.png create mode 100755 data/resource/icons/Security/B03_Security_error.png create mode 100755 data/resource/icons/Security/B03_security_lock.png create mode 100755 data/resource/icons/Send help messages/B03_send_help_messages.png create mode 100755 data/resource/icons/Shealth/B03_shealth.png create mode 100755 data/resource/icons/Splanner/B03_Splanner.png create mode 100755 data/resource/icons/Storage/B03_storage_memoryfull.png create mode 100755 data/resource/icons/Storage/B03_storage_t_flash.png create mode 100755 data/resource/icons/Tethering/B03_All_connected.png create mode 100755 data/resource/icons/Tethering/B03_All_no_connected.png create mode 100755 data/resource/icons/Tethering/B03_BT_connected.png create mode 100755 data/resource/icons/Tethering/B03_BT_no_connected.png create mode 100755 data/resource/icons/Tethering/B03_USB_connected.png create mode 100755 data/resource/icons/Tethering/B03_USB_no_connected.png create mode 100755 data/resource/icons/Tethering/B03_Wi_Fi_connected.png create mode 100755 data/resource/icons/Tethering/B03_Wi_Fi_no_connected.png mode change 100755 => 100644 data/resource/icons/USB tethering/B03_USB.png create mode 100755 data/resource/icons/VPN/B03_VPN.png create mode 100755 data/resource/icons/Voice control/B03_voice_control.png create mode 100755 data/resource/icons/facebook/B03_facbook_app.png create mode 100755 data/resource/icons/facebook/B03_facbook_event.png rename data/resource/icons/{Background playing/B03_Memorycard.png => facebook/B03_facbook_friend_request.png} (86%) create mode 100755 data/resource/icons/facebook/B03_facbook_messages.png create mode 100755 data/resource/icons/handler_bg.#.png rename data/resource/{icons_edc/B03_Status_bar_line.PNG => icons/handler_bg_ef.#.png} (94%) create mode 100755 data/resource/icons/tethering/B03_All_connected.png create mode 100755 data/resource/icons/tethering/B03_All_no_connected.png create mode 100755 data/resource/icons/tethering/B03_BT_connected.png create mode 100755 data/resource/icons/tethering/B03_BT_no_connected.png create mode 100755 data/resource/icons/tethering/B03_USB_connected.png create mode 100755 data/resource/icons/tethering/B03_USB_no_connected.png create mode 100755 data/resource/icons/tethering/B03_Wi_Fi_connected.png create mode 100755 data/resource/icons/tethering/B03_Wi_Fi_no_connected.png create mode 100644 data/resource/icons_edc/B03_OrangeF.png create mode 100755 data/resource/icons_edc/B03_Processing_download_ani_00.png create mode 100755 data/resource/icons_edc/B03_Processing_download_ani_01.png create mode 100755 data/resource/icons_edc/B03_Processing_download_ani_02.png create mode 100755 data/resource/icons_edc/B03_Processing_download_ani_03.png create mode 100755 data/resource/icons_edc/B03_Processing_download_ani_04.png create mode 100755 data/resource/icons_edc/B03_Processing_download_ani_05.png create mode 100755 data/resource/icons_edc/B03_Processing_download_ani_06.png create mode 100755 data/resource/icons_edc/B03_Processing_download_complete.png create mode 100755 data/resource/icons_edc/B03_Processing_download_failed.png create mode 100755 data/resource/icons_edc/B03_Processing_upload_ani_00.png create mode 100755 data/resource/icons_edc/B03_Processing_upload_ani_01.png create mode 100755 data/resource/icons_edc/B03_Processing_upload_ani_02.png create mode 100755 data/resource/icons_edc/B03_Processing_upload_ani_03.png create mode 100755 data/resource/icons_edc/B03_Processing_upload_ani_04.png create mode 100755 data/resource/icons_edc/B03_Processing_upload_ani_05.png create mode 100755 data/resource/icons_edc/B03_Processing_upload_ani_06.png create mode 100755 data/resource/icons_edc/B03_Processing_upload_complete.png create mode 100755 data/resource/icons_edc/B03_Processing_upload_failed.png create mode 100755 data/resource/icons_edc/B03_conection_UPdownload.png create mode 100755 data/resource/icons_edc/B03_conection_not_UPdownload.png create mode 100755 data/resource/icons_edc/B03_connection_UPload.png create mode 100755 data/resource/icons_edc/B03_connection_download.png create mode 100644 data/resource/icons_edc/B03_indicator_bg.png create mode 100755 data/resource/icons_edc/B03_not_conection_UPdownload.png create mode 100755 data/resource/icons_edc/B03_notify_more.png rename data/resource/{icons/App tray/B03_Status_bar_line.PNG => icons_edc/B03_search_divider.png} (95%) mode change 100755 => 100644 create mode 100644 data/resource/icons_edc/core_theme_bg_01.png create mode 100755 data/resource/icons_edc/handler_bg.#.png create mode 100755 data/resource/icons_edc/handler_bg_ef.#.png create mode 100644 data/resource/icons_edc/handler_btn_02.png mode change 100755 => 100644 data/resource/indicator_common.edc mode change 100755 => 100644 data/resource/indicator_gui.h create mode 100644 data/resource/indicator_icon_animation.edc mode change 100755 => 100644 data/resource/indicator_icon_nonfixed_theme.edc mode change 100755 => 100644 data/resource/indicator_icon_theme.edc delete mode 100755 data/resource/indicator_land.edc mode change 100755 => 100644 data/resource/indicator_port.edc create mode 100755 data/resource/ticker.edc create mode 100755 data/resource/ticker_animated_icon.edc create mode 100755 data/resource/ticker_default.edc mode change 100755 => 100644 modules/clock/clock.c mode change 100755 => 100644 modules/connection/connection.c create mode 100644 modules/connection/connection.h create mode 100644 modules/connection/dock.c mode change 100755 => 100644 modules/connection/mobile_hotspot.c create mode 100644 modules/connection/nosim.c mode change 100755 => 100644 modules/connection/usb.c mode change 100755 => 100644 modules/connection/wifi.c rename daemon/indicator.c => modules/home/always.c (67%) mode change 100755 => 100644 mode change 100755 => 100644 modules/home/home.c create mode 100644 modules/home/search.c mode change 100755 => 100644 modules/information/alarm.c mode change 100755 => 100644 modules/information/earphone.c rename test/indicator_debug_util.h => modules/information/felica_lock.c (62%) mode change 100755 => 100644 create mode 100644 modules/information/fm_radio.c create mode 100644 modules/information/lowmem.c mode change 100755 => 100644 modules/information/mmc.c create mode 100644 modules/information/more_notify.c mode change 100755 => 100644 modules/information/mp3_playing.c mode change 100755 => 100644 modules/information/noti.c create mode 100644 modules/information/video_play.c mode change 100755 => 100644 modules/information/voice_recorder.c mode change 100755 => 100644 modules/modules.c mode change 100755 => 100644 modules/modules.h mode change 100755 => 100644 modules/network/roaming.c mode change 100755 => 100644 modules/network/rssi.c rename test/indicator_test_util.h => modules/network/rssi.h (57%) mode change 100755 => 100644 mode change 100755 => 100644 modules/power/battery.c delete mode 100755 modules/processing/active_sync.c mode change 100755 => 100644 modules/processing/call.c mode change 100755 => 100644 modules/processing/call_divert.c create mode 100644 modules/processing/call_divert.h create mode 100644 modules/processing/downloading.c delete mode 100755 modules/processing/sos.c create mode 100644 modules/processing/transfer.c create mode 100644 modules/processing/uploading.c mode change 100755 => 100644 modules/setting/bluetooth.c mode change 100755 => 100644 modules/setting/gps.c create mode 100644 modules/setting/network-restriction.c mode change 100755 => 100644 modules/setting/nfc.c create mode 100644 modules/setting/rotation-lock.c mode change 100755 => 100644 modules/setting/silent.c mode change 100755 => 100644 modules/setting/wifi-direct.c create mode 100644 org.tizen.indicator.efl create mode 100644 org.tizen.indicator.manifest create mode 100755 org.tizen.indicator.rule create mode 100644 packaging/indicator.service.system delete mode 100644 packaging/org.tizen.indicator.changes delete mode 100644 packaging/org.tizen.indicator.manifest mode change 100755 => 100644 packaging/org.tizen.indicator.spec delete mode 100755 test/indicator_debug_util.c delete mode 100755 test/indicator_test_util.c diff --git a/AUTHORS b/AUTHORS old mode 100644 new mode 100755 diff --git a/CMakeLists.txt b/CMakeLists.txt index 998309a..e19cca1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,9 +5,9 @@ IF("${CMAKE_BUILD_TYPE}" STREQUAL "") SET(CMAKE_BUILD_TYPE "Release") ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "") -SET(VENDOR "tizen") +SET(VENDOR "org.tizen") SET(PACKAGE ${PROJECT_NAME}) -SET(PKGNAME "org.${VENDOR}.${PACKAGE}") +SET(PKGNAME "${VENDOR}.${PACKAGE}") SET(PREFIX ${CMAKE_INSTALL_PREFIX}) SET(PREFIXRW ${CMAKE_INSTALL_PREFIXRW}) SET(BINDIR "${PREFIX}/bin") @@ -16,11 +16,13 @@ SET(DATADIR "${PREFIXRW}/data") SET(LOCALEDIR "${RESDIR}/locale") SET(ICONDIR "${RESDIR}/icons") SET(EDJDIR "${RESDIR}/edje") +SET(CHANGEABLEDIR "${PREFIX}/shared/res/tables") SET(DESKTOPDIR "/usr/share/applications") SET(MANIFESTXMLDIR "/usr/share/packages") AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/daemon DAEMON_SRCS) AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/test TEST_SRCS) +#AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/modules MODULE_SRCS) FILE(GLOB_RECURSE MODULE_SRCS modules/*.c) SET(SRCS ${DAEMON_SRCS} ${MODULE_SRCS} ${TEST_SRCS}) @@ -34,14 +36,31 @@ INCLUDE_DIRECTORIES( SET(CMAKE_SKIP_BUILD_RPATH TRUE) +FIND_PROGRAM(UNAME NAMES uname) +EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH") + +IF("${ARCH}" STREQUAL "armv7l") + ADD_DEFINITIONS("-DDEVICE_BUILD") + MESSAGE("Building for target: add -DDEVICE_BUILD") +ENDIF("${ARCH}" STREQUAL "armv7l") + INCLUDE(FindPkgConfig) pkg_check_modules(pkgs REQUIRED capi-appfw-application capi-appfw-app-manager capi-system-runtime-info + capi-network-bluetooth + capi-appfw-preference + capi-system-system-settings + capi-media-player + capi-media-sound-manager + capi-media-metadata-extractor + capi-network-wifi + capi-ui-efl-util + appcore-common dlog ecore - ecore-x +# ecore-x ecore-evas ecore-file edbus @@ -49,25 +68,34 @@ pkg_check_modules(pkgs REQUIRED elementary evas eina - fontconfig + edbus libprivilege-control notification +# utilX vconf - utilX minicontrol-monitor feedback + pkgmgr-info + efl-assist + tapi ) FOREACH(flag ${pkgs_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") ENDFOREACH(flag) -#SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -finstrument-functions -g") -#SET(CMAKE_C_COMPILER "/scratchbox/devkits/sbwrap") -#SET(CMAKE_C_COMPILER_ARG1 "/home/serena/working/indicator.trace /scratchbox/compilers/bin/gcc gcc") +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIE") +SET(CMAKE_C_FLAGS_PROFILING "-O0 -g -pg -fPIE") +SET(CMAKE_CXX_FLAGS_PROFILING "-O0 -std=c++0x -g -pg -fPIE") +SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -fPIE") +SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -std=c++0x -g -fPIE") +SET(CMAKE_C_FLAGS_RELEASE "-O2 -g -fPIE") +SET(CMAKE_CXX_FLAGS_RELEASE "-O2 -std=c++0x -g -fPIE") +SET(CMAKE_C_FLAGS_CCOV "-O2 -g --coverage -fPIE") +SET(CMAKE_CXX_FLAGS_CCOV "-O2 -std=c++0x -g --coverage -fPIE") -SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -g -O2") +SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie") ADD_DEFINITIONS("-DVENDOR=\"${VENDOR}\"") ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE}\"") @@ -80,10 +108,8 @@ ADD_DEFINITIONS("-DICONDIR=\"${ICONDIR}\"") ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"") ADD_DEFINITIONS("-DHOME_KEY_EMULATION") ADD_DEFINITIONS("-DINDICATOR_SUPPORT_OPACITY_MODE") -#ADD_DEFINITIONS("-DFILE_DEBUG") ADD_DEFINITIONS("-D_DLOG_USED") -SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed") ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS}) TARGET_LINK_LIBRARIES(${PROJECT_NAME} -licui18n -licuuc) @@ -91,7 +117,6 @@ TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS}) INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR}) INSTALL(DIRECTORY DESTINATION ${DATADIR}) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${PKGNAME}.efl DESTINATION /etc/smack/accesses.d) -ADD_SUBDIRECTORY(po) ADD_SUBDIRECTORY(data) - diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..54b213e --- /dev/null +++ b/LICENSE @@ -0,0 +1,204 @@ +Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + 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. + + 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, + 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 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 in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) 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 + + (d) 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 Apache License to your work. + + To apply the Apache 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 Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/LICENSE.Flora b/LICENSE.Flora deleted file mode 100644 index 571fe79..0000000 --- a/LICENSE.Flora +++ /dev/null @@ -1,206 +0,0 @@ -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 - and your own copyright statement or terms and conditions do not conflict - the conditions stated in the License including section 3. - -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 old mode 100644 new mode 100755 index 10ae78c..b2e5019 --- a/NOTICE +++ b/NOTICE @@ -1,4 +1 @@ -Copyright (c) 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. - +Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. diff --git a/daemon/box.c b/daemon/box.c new file mode 100644 index 0000000..b08a49b --- /dev/null +++ b/daemon/box.c @@ -0,0 +1,1064 @@ +/* + * Indicator + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +//#include +#include +#include + +#include "common.h" +#include "box.h" +#include "icon.h" +#include "list.h" +#include "main.h" +#include "indicator_gui.h" +#include "util.h" +#include "plmn.h" +#include "message.h" +#include "log.h" + +#define FIXED_BOX_PART_NAME "elm.swallow.fixed" +#define SYSTEM_BOX_PART_NAME "elm.swallow.system" +#define MINICTRL_BOX_PART_NAME "elm.swallow.minictrl" +#define NOTI_BOX_PART_NAME "elm.swallow.noti" +#define DIGIT_BOX_PART_NAME "percentage.digit.box" + +#define CORRECTION 10 +#define MORE_NOTI "more_notify" + +Eina_List *_view_fixed_list; +Eina_List *_view_system_list; +Eina_List *_view_minictrl_list; +Eina_List *_view_noti_list; +Eina_List *_view_alarm_list; + +/* FIXME */ +#if 0 +win_info *_win; +#endif +static int icon_show_state = 0; +int previous_noti_count = 0; + + + +static Evas_Object *_box_add(Evas_Object * parent) +{ + Evas_Object *obj = NULL; + + retv_if(!parent, NULL); + + obj = elm_box_add(parent); + retv_if(!obj, NULL); + evas_object_size_hint_weight_set(obj, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_fill_set(obj, EVAS_HINT_FILL, EVAS_HINT_FILL); + + /* Align to left-top */ + elm_box_horizontal_set(obj, EINA_TRUE); + evas_object_show(obj); + + return obj; +} + + +#if 0 +static void _update_window(win_info *win) +{ + int root_w, root_h; + Ecore_X_Window xwin, root; + + retif(win == NULL, , "Invalid parameter!"); + + xwin = elm_win_xwindow_get(win->win); + if (!xwin) return; + root = ecore_x_window_root_get(xwin); + if (!root) return; + ecore_x_window_size_get(root, &root_w, &root_h); + + if (win->angle == 0 || win->angle == 180) win->w = root_w; + else win->w = root_h; + + switch (win->angle) { + case 0: + ecore_x_window_shape_input_rectangle_set(xwin, root_w - win->w, 0, win->w, win->h); + break; + case 90: + ecore_x_window_shape_input_rectangle_set(xwin, 0, 0, win->h, win->w); + break; + case 180: + ecore_x_window_shape_input_rectangle_set(xwin, 0, 0, win->w, win->h); + break; + case 270: + ecore_x_window_shape_input_rectangle_set(xwin, 0, root_h - win->w, win->h, win->w); + break; + default: + break; + } +} +#endif + +#if 0 +void box_delete_noti_icon_all(win_info *win) +{ + icon_s *icon; + Eina_List *l; + + elm_box_unpack_all(win->_noti_box); + + EINA_LIST_FOREACH(_view_noti_list, l, icon) { + if (icon->obj_exist == EINA_TRUE) { + if (icon_del(icon) == EINA_TRUE) { + icon->obj_exist = EINA_FALSE; + } + } + } +} +#endif + + +static void _fixed_box_pack_icon(win_info *win, icon_s *icon) +{ + ret_if(!win); + ret_if(!icon); + + switch (icon->type) { + case INDICATOR_IMG_ICON: + evas_object_show(icon->img_obj.obj); + elm_box_pack_start(win->_fixed_box[icon->priority], icon->img_obj.obj); + break; + case INDICATOR_TXT_ICON: + break; + case INDICATOR_TXT_WITH_IMG_ICON: + break; + case INDICATOR_DIGIT_ICON: + switch(icon->digit_area) { + case DIGIT_UNITY: + evas_object_show(icon->img_obj.obj); + elm_box_pack_end(win->_digit_box, icon->img_obj.obj); + break; + case DIGIT_DOZENS: + evas_object_show(icon->img_obj.obj); + elm_box_pack_end(win->_digit_box, icon->img_obj.obj); + break; + case DIGIT_DOZENS_UNITY: + evas_object_show(icon->img_obj.obj); + elm_box_pack_end(win->_digit_box, icon->img_obj.obj); + break; + case DIGIT_HUNDREDS: + evas_object_show(icon->img_obj.obj); + elm_box_pack_end(win->_digit_box, icon->img_obj.obj); + break; + default: + _E("default"); + break; + } + break; + default: + _E("default"); + break; + } +#ifdef _SUPPORT_SCREEN_READER + util_icon_access_register(icon); +#endif +} + + + +static void _box_pack_icon(icon_s *icon, Evas_Object *box) +{ + ret_if(!icon); + ret_if(!box); + + switch (icon->type) { + case INDICATOR_IMG_ICON: + evas_object_show(icon->img_obj.obj); + elm_box_pack_end(box, icon->img_obj.obj); + break; + case INDICATOR_TXT_ICON: + break; + case INDICATOR_TXT_WITH_IMG_ICON: + break; + case INDICATOR_DIGIT_ICON: + evas_object_show(icon->img_obj.obj); + elm_box_pack_end(box, icon->img_obj.obj); + break; + default: + _E("default"); + break; + } +#ifdef _support_screen_reader + util_icon_access_register(icon); +#endif + if (icon->area == INDICATOR_ICON_AREA_NOTI || icon->area == INDICATOR_ICON_AREA_ALARM) { + util_start_noti_ani(icon); + } +} + + + +static void _create_img_obj(icon_s *icon) +{ + Evas_Object *img_eo = NULL; + + ret_if(!icon); + + img_eo = evas_object_data_get(icon->img_obj.obj, DATA_KEY_IMG_ICON); + evas_object_size_hint_min_set(img_eo, ELM_SCALE_SIZE(icon->img_obj.width), ELM_SCALE_SIZE(icon->img_obj.height)); + box_handle_animated_gif(icon); +} + + + +static void _update_icon(win_info *win, Eina_List *list) +{ + icon_s *icon; + Eina_List *l; + + ret_if(!win); + ret_if(!list); + + EINA_LIST_FOREACH(list, l, icon) { + if (icon->obj_exist == EINA_FALSE) { + icon_add(win, icon); + } + + if (icon->obj_exist == EINA_TRUE) { + if (icon->area == INDICATOR_ICON_AREA_FIXED + && icon->priority <= INDICATOR_PRIORITY_FIXED_MAX) { + _create_img_obj(icon); + _fixed_box_pack_icon(win, icon); + } + if (icon->area == INDICATOR_ICON_AREA_SYSTEM + && icon->priority >= INDICATOR_PRIORITY_SYSTEM_MIN + && icon->priority <= INDICATOR_PRIORITY_SYSTEM_MAX) { + _create_img_obj(icon); + _box_pack_icon(icon, win->_non_fixed_box); + } + if (icon->area == INDICATOR_ICON_AREA_MINICTRL + && icon->priority >= INDICATOR_PRIORITY_MINICTRL_MIN + && icon->priority <= INDICATOR_PRIORITY_MINICTRL_MAX) { + _create_img_obj(icon); + _box_pack_icon(icon, win->_minictrl_box); + } + if (icon->area == INDICATOR_ICON_AREA_NOTI) { + _create_img_obj(icon); + _box_pack_icon(icon, win->_noti_box); + } + if (icon->area == INDICATOR_ICON_AREA_ALARM) { + _create_img_obj(icon); + _box_pack_icon(icon, win->_alarm_box); + } + } + } +} + + + +extern unsigned int box_get_count(Box_List list) +{ + int count = 0; + + switch (list) { + case FIXED_LIST: + count = eina_list_count(_view_fixed_list); + break; + case SYSTEM_LIST: + count = eina_list_count(_view_system_list); + break; + case MINICTRL_LIST: + count = eina_list_count(_view_minictrl_list); + break; + case NOTI_LIST: + count = eina_list_count(_view_noti_list); + break; + default: + _D("List dose not exist"); + break; + } + + return count; +} + + + +static void _update_display(win_info *win) +{ + int i = 0; + + ret_if(!win); + + if (box_get_count(SYSTEM_LIST)) { + util_signal_emit(win->data, "indicator.system.show", "indicator.prog"); + } else { + util_signal_emit(win->data, "indicator.system.hide", "indicator.prog"); + } + + if (box_get_count(MINICTRL_LIST)) { + util_signal_emit(win->data, "indicator.minictrl.show", "indicator.prog"); + } else { + util_signal_emit(win->data, "indicator.minictrl.hide", "indicator.prog"); + } + + if (box_get_count(NOTI_LIST)) { + util_signal_emit(win->data, "indicator.noti.show", "indicator.prog"); + } else { + util_signal_emit(win->data, "indicator.noti.hide", "indicator.prog"); + } + + + if (message_ani_playing_check() == 1) { + return; + } + + for (i = 0; i < FIXED_COUNT; ++i) { + elm_box_unpack_all(win->_fixed_box[i]); + } + + elm_box_unpack_all(win->_non_fixed_box); + elm_box_unpack_all(win->_minictrl_box); + elm_box_unpack_all(win->_noti_box); + elm_box_unpack_all(win->_alarm_box); + elm_box_unpack_all(win->_digit_box); + + _update_icon(win, _view_fixed_list); + _update_icon(win, _view_system_list); + _update_icon(win, _view_minictrl_list); + _update_icon(win, _view_noti_list); + _update_icon(win, _view_alarm_list); + +#if 0 + if (win) _update_window(win); +#endif +} + + + +extern void box_update_display(win_info *win) +{ + ret_if(!win); + +#if 0 + _update_window(win); +#endif + icon_reset_list(); + _update_display(win); + icon_handle_more_notify_icon(win); +} + + + +extern int box_pack(icon_s *icon) +{ + struct appdata *ad = NULL; + int noti_count = 0; + + retv_if(!icon, 0); + + ad = (struct appdata*)icon->ad; + + if (box_exist_icon(icon)) return OK; + + if (INDICATOR_ICON_AREA_FIXED == icon->area) { + icon->exist_in_view = EINA_TRUE; + _view_fixed_list = eina_list_append(_view_fixed_list, icon); + } else if(INDICATOR_ICON_AREA_SYSTEM == icon->area) { + icon_s *data; + Eina_List *l = NULL; + + EINA_LIST_FOREACH(_view_system_list, l, data) { + if (data->priority <= icon->priority) { + icon->exist_in_view = EINA_TRUE; + _view_system_list = eina_list_append_relative_list(_view_system_list, icon, l); + DBG("System (eina_list_append_relative_list) %s",icon->name); + goto __CATCH; + } + } + + /* if finding condition is failed, append it at tail */ + icon->exist_in_view = EINA_TRUE; + _view_system_list = eina_list_prepend(_view_system_list, icon); + DBG("System prepend (Priority low) : %s",icon->name); + } else if(INDICATOR_ICON_AREA_MINICTRL == icon->area) { + INFO("Pack to MINICTRL list : %s", icon->name); + icon_s *data; + Eina_List *l; + + EINA_LIST_FOREACH(_view_minictrl_list, l, data) { + if (data->priority <= icon->priority) { + icon->exist_in_view = EINA_TRUE; + _view_minictrl_list = eina_list_append_relative_list(_view_minictrl_list, icon, l); + goto __CATCH; + } + } + + /* if finding condition is failed, append it at tail */ + icon->exist_in_view = EINA_TRUE; + _view_minictrl_list = eina_list_append(_view_minictrl_list, icon); + } else if(INDICATOR_ICON_AREA_NOTI == icon->area) { + if(strncmp(icon->name, MORE_NOTI, strlen(MORE_NOTI))==0) + { + icon->exist_in_view = EINA_TRUE; + _view_noti_list = eina_list_prepend(_view_noti_list, icon); + goto __CATCH; + } + + /* if finding condition is failed, append it at tail */ + icon->exist_in_view = EINA_TRUE; + _view_noti_list = eina_list_append(_view_noti_list, icon); + } else { + icon->exist_in_view = EINA_TRUE; + _view_alarm_list = eina_list_append(_view_alarm_list, icon); + } + +__CATCH: + previous_noti_count = noti_count; + if (icon->area == INDICATOR_ICON_AREA_NOTI + || icon->area == INDICATOR_ICON_AREA_SYSTEM + || icon->area == INDICATOR_ICON_AREA_MINICTRL) { + int bDisplay = 0; + bDisplay = 1; + + if (ad->opacity_mode == INDICATOR_OPACITY_TRANSPARENT + && bDisplay == 1) { + util_send_status_message_start(ad,2.5); + } + } + + return OK; +} + + + +extern int box_pack_append(icon_s *icon) +{ + Eina_List *l; + icon_s *data; + + retv_if(!icon, 0); + + if (box_exist_icon(icon)) return OK; + + switch (icon->area) { + case INDICATOR_ICON_AREA_FIXED: + icon->exist_in_view = EINA_TRUE; + _view_fixed_list = eina_list_append(_view_fixed_list, icon); + break; + case INDICATOR_ICON_AREA_SYSTEM: + icon->exist_in_view = EINA_TRUE; + _view_system_list = eina_list_append(_view_system_list, icon); + break; + case INDICATOR_ICON_AREA_MINICTRL: + icon->exist_in_view = EINA_TRUE; + _view_minictrl_list = eina_list_append(_view_minictrl_list, icon); + break; + case INDICATOR_ICON_AREA_NOTI: + EINA_LIST_FOREACH(_view_noti_list, l, data) { + if (strncmp(data->name, MORE_NOTI, strlen(MORE_NOTI)) == 0) { + icon->exist_in_view = EINA_TRUE; + _view_noti_list = eina_list_append_relative_list(_view_noti_list, icon, l); + return OK; + } + } + icon->exist_in_view = EINA_TRUE; + _view_noti_list = eina_list_append(_view_noti_list, icon); + break; + default: + _D("Icon area does not exists"); + break; + } + + return OK; +} + + + +int box_unpack(icon_s *icon) +{ + retv_if(!icon, 0); + + SECURE_DBG("[box_unpack] %s!",icon->name); + switch (icon->area) { + case INDICATOR_ICON_AREA_FIXED: + icon->exist_in_view = EINA_FALSE; + _view_fixed_list = eina_list_remove(_view_fixed_list, icon); + break; + case INDICATOR_ICON_AREA_SYSTEM: + icon->exist_in_view = EINA_FALSE; + _view_system_list = eina_list_remove(_view_system_list, icon); + break; + case INDICATOR_ICON_AREA_MINICTRL: + icon->exist_in_view = EINA_FALSE; + _view_minictrl_list = eina_list_remove(_view_minictrl_list, icon); + break; + case INDICATOR_ICON_AREA_NOTI: + icon->exist_in_view = EINA_FALSE; + _view_noti_list = eina_list_remove(_view_noti_list, icon); + break; + case INDICATOR_ICON_AREA_ALARM: + icon->exist_in_view = EINA_FALSE; + _view_alarm_list = eina_list_remove(_view_alarm_list, icon); + break; + default: + _D("icon area dose not exists"); + break; + } + +#if 0 + int noti_count = 0; + + noti_count = box_get_count(NOTI_LIST); + if (noti_count > 0) { + util_signal_emit(_win->data, "indicator.noti.show", "indicator.prog"); + } else { + DBG("Need to stop blink animation and hide icon"); + util_signal_emit_by_win(_win->data,"indicator.noti.hide", "indicator.prog"); + } +#endif +#ifdef _SUPPORT_SCREEN_READER + util_icon_access_unregister(icon); +#endif + + if (icon->obj_exist == EINA_TRUE) { + if (icon_del(icon) == EINA_TRUE) { + icon->obj_exist = EINA_FALSE; + } + } + + return OK; +} + + + +extern void box_init(win_info *win) +{ + char *str_text = NULL; + int i = 0; + + ret_if(!win); + + /* Make Fixed Box Object */ + for (i = 0; i < FIXED_COUNT; ++i) { + if (win->_fixed_box[i] == NULL) { + win->_fixed_box[i] = _box_add(win->layout); + ret_if(!(win->_fixed_box[i])); + + Eina_Strbuf *temp_str = eina_strbuf_new(); + eina_strbuf_append_printf(temp_str, "%s%d", FIXED_BOX_PART_NAME, i); + str_text = eina_strbuf_string_steal(temp_str); + + edje_object_part_swallow(elm_layout_edje_get(win->layout), str_text, win->_fixed_box[i]); + eina_strbuf_free(temp_str); + free(str_text); + } + } + + /* Make Non Fixed Box(SYSTEM) Object */ + win->_non_fixed_box = _box_add(win->layout); + ret_if(!(win->_non_fixed_box)); + + evas_object_size_hint_align_set(win->_non_fixed_box, EVAS_HINT_FILL, EVAS_HINT_FILL); + edje_object_part_swallow(elm_layout_edje_get(win->layout), SYSTEM_BOX_PART_NAME, win->_non_fixed_box); + + /* Make Non Fixed Box(MINICTRL) Object */ + win->_minictrl_box = _box_add(win->layout); + ret_if(!(win->_minictrl_box)); + + evas_object_size_hint_align_set(win->_minictrl_box, EVAS_HINT_FILL, EVAS_HINT_FILL); + edje_object_part_swallow(elm_layout_edje_get(win->layout), MINICTRL_BOX_PART_NAME, win->_minictrl_box); + + /* Make Non Fixed Box(NOTI) Box Object */ + win->_noti_box = _box_add(win->layout); + ret_if(!(win->_noti_box)); + + evas_object_size_hint_align_set(win->_noti_box, EVAS_HINT_FILL, EVAS_HINT_FILL); + edje_object_part_swallow(elm_layout_edje_get(win->layout), NOTI_BOX_PART_NAME, win->_noti_box); + + win->_alarm_box = _box_add(win->layout); + ret_if(!(win->_alarm_box)); + + evas_object_size_hint_align_set(win->_alarm_box, EVAS_HINT_FILL, EVAS_HINT_FILL); + edje_object_part_swallow(elm_layout_edje_get(win->layout), "indicator.alarm.icon", win->_alarm_box); + + win->_digit_box = _box_add(win->layout); + ret_if(!(win->_digit_box)); + + evas_object_size_hint_align_set(win->_digit_box, EVAS_HINT_FILL, EVAS_HINT_FILL); + edje_object_part_swallow(elm_layout_edje_get(win->layout), DIGIT_BOX_PART_NAME, win->_digit_box); + + return; +} + + + + +extern void box_fini(win_info *win) +{ + int i = 0; + + ret_if(!win); + ret_if(!(win->layout)); + + if (win->_digit_box != NULL) { + edje_object_part_unswallow(elm_layout_edje_get(win->layout), win->_digit_box); + elm_box_unpack_all(win->_digit_box); + evas_object_del(win->_digit_box); + win->_digit_box = NULL; + } + + if (win->_non_fixed_box != NULL) { + edje_object_part_unswallow(elm_layout_edje_get(win->layout), win->_non_fixed_box); + elm_box_unpack_all(win->_non_fixed_box); + evas_object_del(win->_non_fixed_box); + win->_non_fixed_box = NULL; + } + + if (win->_minictrl_box != NULL) { + edje_object_part_unswallow(elm_layout_edje_get(win->layout), win->_minictrl_box); + elm_box_unpack_all(win->_minictrl_box); + evas_object_del(win->_minictrl_box); + win->_minictrl_box = NULL; + } + + if (win->_noti_box != NULL) { + edje_object_part_unswallow(elm_layout_edje_get(win->layout), win->_noti_box); + elm_box_unpack_all(win->_noti_box); + evas_object_del(win->_noti_box); + win->_noti_box = NULL; + } + + if (win->_alarm_box != NULL) { + edje_object_part_unswallow(elm_layout_edje_get(win->layout), win->_alarm_box); + elm_box_unpack_all(win->_alarm_box); + evas_object_del(win->_alarm_box); + win->_alarm_box = NULL; + } + + for (i = 0; i < FIXED_COUNT; ++i) { + if (win->_fixed_box[i] != NULL) { + edje_object_part_unswallow(elm_layout_edje_get(win->layout), win->_fixed_box[i]); + elm_box_unpack_all(win->_fixed_box[i]); + evas_object_del(win->_fixed_box[i]); + win->_fixed_box[i] = NULL; + } + } + + return; +} + + + +unsigned int box_get_count_in_noti_list_except_minictrl(void) +{ + icon_s *data; + Eina_List *l; + int count = 0; + + EINA_LIST_FOREACH(_view_noti_list, l, data) { + if (data->priority != INDICATOR_PRIORITY_NOTI_1) { + count++; + } + } + return count; + +} + + + +int box_get_enabled_noti_count(void) +{ + int enabled_noti_cnt = 0; + + int system_cnt = box_get_count(SYSTEM_LIST); + int minictrl_cnt = box_get_count(MINICTRL_LIST); + DBG("System Count : %d, Minictrl Count : %d", system_cnt, minictrl_cnt); + + enabled_noti_cnt = MAX_NOTI_ICONS_PORT - system_cnt - minictrl_cnt; + if(enabled_noti_cnt <= 0) { + enabled_noti_cnt = 1; // Notification icon must show at least 1. + } + + DBG("Notification icon enabled_noti_cnt %d",enabled_noti_cnt); + + return enabled_noti_cnt; +} + + + +int box_get_enabled_system_count(void) +{ + int system_cnt = 0; + int noti_cnt = box_get_count(NOTI_LIST); + int minictrl_cnt = box_get_count(MINICTRL_LIST); + + _D("Noti count : %d , MiniCtrl count : %d", noti_cnt, minictrl_cnt); + + system_cnt = PORT_SYSTEM_ICON_COUNT; // MAX = 5. + + if(noti_cnt > 0) { + system_cnt--; // Notification icon must show at least 1. + } + + if(minictrl_cnt > 0) { + system_cnt--; // Minictrl icon must show at least 1. + } + + return system_cnt; +} + + + +int box_get_minictrl_list(void) +{ + int icon_count = 0; + int noti_count = box_get_count(NOTI_LIST); + int system_count = box_get_count(SYSTEM_LIST); + + icon_count = PORT_MINICTRL_ICON_COUNT; // = 2. MIN (1) / MAX (3) + + if(noti_count) { // noti_count >= 1 + if(system_count >= 3) { + icon_count--; // icon_count = 2 -> 1 + } else if(system_count <= 1) { + icon_count++; // icon_count = 2 -> 3 + } + } else { // noti_count == 0 + if(system_count >= 4) { + icon_count--; // icon_count = 2 -> 1 + } else if(system_count <= 2) { + icon_count++; // icon_count = 2 -> 3 + } + } + + _D("Noti count : %d, System count : %d, Minictrl count : %d", noti_count, system_count, icon_count); + + return icon_count; +} + + + +int box_get_max_count_in_non_fixed_list(void) +{ + int added_count = 0; + int icon_count = 0; + int status = 0; + + if (OK != vconf_get_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, &status)) { + _E("Fail to get vconfkey"); + } + + if (status == EINA_TRUE) { + added_count = BATTERY_TEXT_ON_COUNT; + } else { + added_count = BATTERY_TEXT_OFF_COUNT; + } + + icon_count = PORT_NONFIXED_ICON_COUNT + added_count; + + return icon_count; +} + + + +Icon_AddType box_is_enable_to_insert_in_non_fixed_list(icon_s *obj) +{ + icon_s *icon; + Eina_List *l; + + int higher_cnt = 0; + int same_cnt = 0; + int same_top_cnt = 0; + int lower_cnt = 0; + int noti_cnt = box_get_count(NOTI_LIST); + Eina_List * tmp_list = NULL; + + retv_if(!obj, 0); + + switch (obj->area) { + case INDICATOR_ICON_AREA_SYSTEM: + tmp_list = _view_system_list; + break; + case INDICATOR_ICON_AREA_MINICTRL: + tmp_list = _view_minictrl_list; + break; + case INDICATOR_ICON_AREA_NOTI: + tmp_list = _view_noti_list; + break; + default: + _D("obj area does not exists"); + break; + } + + EINA_LIST_FOREACH(tmp_list, l, icon) { + /* If same Icon exist in non-fixed view list, it need not to add icon */ + if (!strcmp(icon->name, obj->name)) { + return CANNOT_ADD; + } + + if (icon->priority > obj->priority) { + ++higher_cnt; + } else if (icon->priority == obj->priority) { + ++same_cnt; + if (icon->always_top == EINA_TRUE) { + ++same_top_cnt; + } + } else { + lower_cnt++; + } + } + + if (obj->area == INDICATOR_ICON_AREA_SYSTEM) { + if (higher_cnt + same_cnt + lower_cnt >= box_get_enabled_system_count()) { + if (obj->always_top == EINA_TRUE) { + if(same_top_cnt >= box_get_enabled_system_count()) { + return CANNOT_ADD; + } else { + return CAN_ADD_WITH_DEL_SYSTEM; + } + } else { + if (higher_cnt >= box_get_enabled_system_count()) { + return CANNOT_ADD; + } else if (higher_cnt+same_cnt >= box_get_enabled_system_count()) { + return CAN_ADD_WITH_DEL_SYSTEM; + } else { + return CAN_ADD_WITH_DEL_SYSTEM; + } + } + } else { + return CAN_ADD_WITHOUT_DEL; + } + } else if (obj->area == INDICATOR_ICON_AREA_MINICTRL) { + if (higher_cnt + same_cnt + lower_cnt >= box_get_minictrl_list()) { + if (obj->always_top == EINA_TRUE) { + if (same_top_cnt >= box_get_minictrl_list()) { + return CANNOT_ADD; + } else { + return CAN_ADD_WITH_DEL_MINICTRL; + } + } else { + if (higher_cnt >= box_get_minictrl_list()) { + return CANNOT_ADD; + } else if (higher_cnt+same_cnt >= box_get_minictrl_list()) { + return CAN_ADD_WITH_DEL_MINICTRL; + } else { + return CAN_ADD_WITH_DEL_MINICTRL; + } + } + } else { + return CAN_ADD_WITHOUT_DEL; + } + } else { + if (noti_cnt > MAX_NOTI_ICONS_PORT) { + return CAN_ADD_WITH_DEL_NOTI; + } else { + return CAN_ADD_WITHOUT_DEL; + } + } + + return CANNOT_ADD; +} + + + +int box_get_priority_in_move_area(win_info *win, Evas_Coord curr_x, Evas_Coord curr_y) +{ + Evas_Coord x, y, h, w; + + /* Home Area Check for launching home */ + evas_object_geometry_get(win->_fixed_box[INDICATOR_PRIORITY_FIXED1], &x, &y, &h, &w); + + if (curr_x >= x - CORRECTION && curr_x <= x+h + CORRECTION) { + if (curr_y == -1) { + return INDICATOR_PRIORITY_FIXED1; + } else if (curr_y >= y - CORRECTION && curr_y <= y+h + CORRECTION) { + return INDICATOR_PRIORITY_FIXED1; + } + } + + /* Non Fixed Area check for show/hide quickpanel */ + return -1; +} + + + +int box_check_indicator_area(win_info *win, Evas_Coord curr_x, Evas_Coord curr_y) +{ + Evas_Coord x, y, w, h; + + /* Home Area Check for launching home */ + evas_object_geometry_get(win->layout, &x, &y, &w, &h); + + if (curr_x >= x && curr_x < x + w && curr_y >= y && curr_y < y + h) { + return 1; + } + + return 0; +} + + + +int box_check_home_icon_area(win_info *win, Evas_Coord curr_x, Evas_Coord curr_y) +{ + Evas_Coord x, y, w, h; + + /* Home Area Check for launching home */ + evas_object_geometry_get(win->_fixed_box[INDICATOR_PRIORITY_FIXED7], &x, &y, &w, &h); + + if (curr_x >= x && curr_x < x + w && curr_y >= y && curr_y < y + h) { + return 1; + } + + return 0; +} + + + +int box_check_more_icon_area(win_info *win, Evas_Coord curr_x, Evas_Coord curr_y) +{ + Evas_Coord x, y, w, h; + + /* Home Area Check for launching home */ + evas_object_geometry_get(win->_fixed_box[INDICATOR_PRIORITY_FIXED11], &x, &y, &w, &h); + + if (curr_x >= x && curr_x < x + w && curr_y >= y && curr_y < y + h) { + return 1; + } + + return 0; +} + + + +void box_icon_state_set(int bShow, char* file, int line) +{ + icon_show_state = bShow; +} + + + +int box_icon_state_get(void) +{ + return icon_show_state; +} + + + +extern Eina_Bool box_exist_icon(icon_s *obj) +{ + retv_if(!obj, ECORE_CALLBACK_CANCEL); + + switch (obj->area) { + case INDICATOR_ICON_AREA_FIXED: + if (eina_list_data_find(_view_fixed_list, obj)) { + return EINA_TRUE; + } else { + return EINA_FALSE; + } + break; + case INDICATOR_ICON_AREA_SYSTEM: + if (eina_list_data_find(_view_system_list, obj)) { + return EINA_TRUE; + } else { + return EINA_FALSE; + } + break; + case INDICATOR_ICON_AREA_MINICTRL: + if (eina_list_data_find(_view_minictrl_list, obj)) { + return EINA_TRUE; + } else { + return EINA_FALSE; + } + break; + case INDICATOR_ICON_AREA_NOTI: + if (eina_list_data_find(_view_noti_list, obj)) { + return EINA_TRUE; + } else { + return EINA_FALSE; + } + break; + default: + break; + } + + return EINA_FALSE; +} + + + +int box_handle_animated_gif(icon_s *icon) +{ + int bPlay = TRUE; + int val = 0; + Evas_Object *icon_eo = evas_object_data_get(icon->img_obj.obj, DATA_KEY_IMG_ICON); + + retif(icon == NULL, FAIL, "Invalid parameter!"); + + if (elm_image_animated_available_get(icon_eo) == EINA_FALSE) { + return FALSE; + } + + if (vconf_get_int(VCONFKEY_PM_STATE, &val) < 0) { + return FALSE; + } + + switch (val) { + case VCONFKEY_PM_STATE_LCDOFF : //LCD OFF + bPlay = FALSE; + break; + case VCONFKEY_PM_STATE_NORMAL : //LCD ON + bPlay = TRUE; + break; + default: + bPlay = TRUE; + break; + } + + if (bPlay == TRUE) { + if (elm_image_animated_get(icon_eo)==EINA_FALSE) { + elm_image_animated_set(icon_eo,EINA_TRUE); + } + + if (elm_image_animated_play_get(icon_eo) == EINA_FALSE) { + elm_image_animated_play_set(icon_eo, EINA_TRUE); + } + } else { + if(elm_image_animated_play_get(icon_eo) == EINA_TRUE) { + elm_image_animated_play_set(icon_eo, EINA_FALSE); + } + } + + return TRUE; +} + + + +void box_noti_ani_handle(int bStart) +{ + icon_s *icon; + Eina_List *l; + + EINA_LIST_FOREACH(_view_noti_list, l, icon) { + if (icon->obj_exist == EINA_TRUE) { + if (bStart == 1) { + util_start_noti_ani(icon); + } else { + util_stop_noti_ani(icon); + } + } + } +} + +/* End of file */ diff --git a/daemon/box.h b/daemon/box.h new file mode 100644 index 0000000..1352514 --- /dev/null +++ b/daemon/box.h @@ -0,0 +1,77 @@ +/* + * Indicator + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +#ifndef __INDICATOR_BOX_UTIL_H__ +#define __INDICATOR_BOX_UTIL_H__ + +#include + +#include "indicator.h" + +typedef enum _Icon_AddType { + CANNOT_ADD = -1, + CAN_ADD_WITH_DEL_SYSTEM, + CAN_ADD_WITH_DEL_MINICTRL, + CAN_ADD_WITH_DEL_NOTI, + CAN_ADD_WITHOUT_DEL, +} Icon_AddType; + +typedef enum _Icon_Display_Count { + BATTERY_TEXT_ON_COUNT = 0, + BATTERY_TEXT_OFF_COUNT = 0, + PORT_NONFIXED_ICON_COUNT = 7, + LAND_NONFIXED_ICON_COUNT = 11, + PORT_SYSTEM_ICON_COUNT = 5, // MIN : (1), MAX : (5) + LAND_SYSTEM_ICON_COUNT = 6, + PORT_MINICTRL_ICON_COUNT = 2, // MIN : (1), MAX : (3) + LAND_MINICTRL_ICON_COUNT = 2, +} Icon_Display_Count; + +typedef enum Box_List { + FIXED_LIST = 0, + SYSTEM_LIST, + MINICTRL_LIST, + NOTI_LIST +} Box_List; + +extern int box_pack(icon_s *icon); +extern int box_pack_append(icon_s *icon); +extern int box_unpack(icon_s *icon); +extern void box_init(win_info *win); +extern void box_fini(win_info *win); +extern unsigned int box_get_count(Box_List list); +extern int box_get_max_count_in_non_fixed_list(void); +extern Icon_AddType box_is_enable_to_insert_in_non_fixed_list(icon_s *obj); +extern int box_get_priority_in_move_area(win_info *win, Evas_Coord, Evas_Coord); +extern int box_check_indicator_area(win_info *win,Evas_Coord curr_x, Evas_Coord curr_y); +extern int box_check_home_icon_area(win_info *win,Evas_Coord curr_x, Evas_Coord curr_y); +extern Eina_Bool box_exist_icon(icon_s *obj); +extern int box_handle_animated_gif(icon_s *icon); +extern void box_noti_ani_handle(int bStart); +extern void box_icon_state_set(int bShow,char* file,int line); +extern int box_icon_state_get(void); +extern unsigned int box_get_count_in_noti_list_except_minictrl(void); +extern int box_get_enabled_noti_count(void); +extern int box_check_more_icon_area(win_info *win, Evas_Coord curr_x, Evas_Coord curr_y); +extern void box_update_display(win_info *win); +extern int box_get_enabled_system_count(void); +extern int box_get_minictrl_list(void); + +#endif /*__INDICATOR_BOX_UTIL_H__*/ diff --git a/daemon/common.h b/daemon/common.h old mode 100755 new mode 100644 index 79ab49c..0021519 --- a/daemon/common.h +++ b/daemon/common.h @@ -1,19 +1,23 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd + * Indicator * - * Licensed under the Flora License, Version 1.1 (the "License"); + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://floralicense.org/license/ + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * */ + #ifndef __DEF_common_H_ #define __DEF_common_H_ @@ -25,7 +29,7 @@ #define FAIL (-1) #ifdef _DLOG_USED -#define LOG_TAG "indicator" +//#define LOG_TAG "INDICATOR" #include #define ERR(str, args...) LOGE("%s[%d]\t " #str "\n", \ @@ -33,6 +37,13 @@ #define DBG(str, args...) LOGD("%s[%d]\t " #str "\n", \ __func__, __LINE__, ##args) #define INFO(str, args...) LOGI(#str"\n", ##args) + +#define SECURE_ERR(str, args...) SECURE_LOGE("%s[%d]\t " #str "\n", \ + __func__, __LINE__, ##args) +#define SECURE_DBG(str, args...) SECURE_LOGD("%s[%d]\t " #str "\n", \ + __func__, __LINE__, ##args) +#define SECURE_INFO(str, args...) SECURE_LOGI(#str"\n", ##args) + #elif FILE_DEBUG /*_DLOG_USED*/ #include "indicator_debug_util.h" #define ERR(str, args...) debug_printf("%s[%d]\t " #str "\n", \ @@ -54,6 +65,7 @@ return ret;\ } \ } while (0); +#define ECORE_FILE_MONITOR_DELIF(p) ({if (p) {ecore_file_monitor_del(p); p = NULL; }}) #define gotoif(cond, target, str, args...) do {\ if (cond) { \ diff --git a/daemon/icon.c b/daemon/icon.c new file mode 100644 index 0000000..4e2f625 --- /dev/null +++ b/daemon/icon.c @@ -0,0 +1,824 @@ +/* + * Indicator + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +#include +#include +#include + +#include "common.h" +#include "box.h" +#include "icon.h" +#include "list.h" +#include "main.h" +#include "indicator_gui.h" +#include "util.h" +#include "log.h" + +#define PRIVATE_DATA_KEY_ICON_B_ANI "p_i_ba" + +extern int current_angle; + +#define ON_TIMER_ICON_ANIMATION_FRAME_TIME 0.3 +#define UPLOAD_ICON_ANIMATION_SIGNAL "indicator.ani.uploading.%d" +#define DOWNLOAD_ICON_ANIMATION_SIGNAL "indicator.ani.downloading.%d" + +static unsigned int update_icon_flag = 1; // For battery problem + + + +static void _reset_on_timer_icon_animation(icon_s *icon) +{ + ret_if(!icon); + + if (icon->p_animation_timer) { + ecore_timer_del(icon->p_animation_timer); + icon->p_animation_timer = NULL; + } + icon->animation_in_progress = EINA_FALSE; + icon->last_animation_timestamp = ecore_time_unix_get(); + icon->signal_to_emit_prefix[0] = '\0'; + icon->animation_state = UD_ICON_ANI_STATE_0; +} + + + +static Eina_Bool _animate_on_timer_cb(void *data) +{ + icon_s *icon = NULL; + + retv_if(!data, ECORE_CALLBACK_CANCEL); + + icon = (icon_s *)data; + + if (icon->animation_in_progress == EINA_FALSE) { + icon->p_animation_timer = NULL; + return ECORE_CALLBACK_CANCEL; + } + + if ((ecore_time_unix_get() - icon->last_animation_timestamp) < ON_TIMER_ICON_ANIMATION_FRAME_TIME) { + return ECORE_CALLBACK_RENEW; + } + + Evas_Object *img_edje = elm_layout_edje_get(icon->img_obj.obj); + retv_if(!img_edje, ECORE_CALLBACK_CANCEL); + + char signal_to_emit[32] = {'\0',}; + sprintf(signal_to_emit,icon->signal_to_emit_prefix,icon->animation_state); + + edje_object_signal_emit(img_edje, signal_to_emit,"prog"); + + if (icon->animation_state == UD_ICON_ANI_STATE_MAX) { + icon->animation_state = UD_ICON_ANI_STATE_0; + } else { + icon->animation_state++; + } + icon->last_animation_timestamp = ecore_time_unix_get(); + + return ECORE_CALLBACK_RENEW; +} + + + +static const char *_icon_ani_type_set_send_signal(icon_s *icon, Icon_Ani_Type type) +{ + retv_if(!icon, NULL); + + const char *BLINK_SIGNAL = "icon,state,blink"; + const char *ROATATE_SIGNAL = "icon,state,rotate"; + const char *METRONOME_SIGNAL = "icon,state,metronome"; + const char *DEFAULT = "icon,state,default"; + const char *send_signal = DEFAULT; + + switch (type) { + case ICON_ANI_BLINK: + send_signal = BLINK_SIGNAL; + break; + case ICON_ANI_ROTATE: + send_signal = ROATATE_SIGNAL; + break; + case ICON_ANI_METRONOME: + send_signal = METRONOME_SIGNAL; + break; + case ICON_ANI_DOWNLOADING: + case ICON_ANI_UPLOADING: + /* If this icon is already animated during download/upload we don't have to set timer again */ + if (icon->animation_in_progress == EINA_FALSE) { + _reset_on_timer_icon_animation(icon); + send_signal = "dummy.signal"; + + if (type == ICON_ANI_DOWNLOADING) { + strncpy(icon->signal_to_emit_prefix, DOWNLOAD_ICON_ANIMATION_SIGNAL, sizeof(DOWNLOAD_ICON_ANIMATION_SIGNAL)); + } + + if (type == ICON_ANI_UPLOADING) { + strncpy(icon->signal_to_emit_prefix, UPLOAD_ICON_ANIMATION_SIGNAL,sizeof(UPLOAD_ICON_ANIMATION_SIGNAL)); + } + icon->animation_in_progress = EINA_TRUE; + icon->p_animation_timer = ecore_timer_add(ON_TIMER_ICON_ANIMATION_FRAME_TIME,_animate_on_timer_cb, icon); + } + break; + default: + break; + } + + return send_signal; +} + + + +void icon_ani_set(icon_s *icon, Icon_Ani_Type type) +{ + Evas_Object *img_edje = NULL; + const char *send_signal = NULL; + + ret_if(!icon); + + icon->ani = type; + + if (!icon->obj_exist) return; + + send_signal = _icon_ani_type_set_send_signal(icon, type); + ret_if(!send_signal); + + switch (icon->type) { + case INDICATOR_IMG_ICON: + img_edje = elm_layout_edje_get(icon->img_obj.obj); + edje_object_signal_emit(img_edje, send_signal,"elm.swallow.icon"); + break; + case INDICATOR_TXT_ICON: + break; + case INDICATOR_TXT_WITH_IMG_ICON: + break; + case INDICATOR_DIGIT_ICON: + img_edje = elm_layout_edje_get(icon->img_obj.obj); + edje_object_signal_emit(img_edje, send_signal,"elm.swallow.icon"); + break; + default: + break; + } +} + + + +static void _fixed_icon_layout_file_set(icon_s *icon, Evas_Object *ly) +{ + ret_if(!icon); + ret_if(!ly); + + if(icon->type == INDICATOR_DIGIT_ICON && icon->digit_area == DIGIT_DOZENS) { + elm_layout_file_set(ly, ICON_THEME_FILE,"elm/indicator/icon/dozen_digit"); + } else { + elm_layout_file_set(ly, ICON_THEME_FILE,"elm/indicator/icon/base"); + } +} + + + +static void _noti_ani_icon_layout_file_set(int noti_is_ani, Evas_Object *ly) +{ + ret_if(!ly); + + if (noti_is_ani) { + evas_object_data_set(ly, PRIVATE_DATA_KEY_ICON_B_ANI, (void *) 1); + elm_layout_file_set(ly, ICON_NONFIXED_THEME_ANI_FILE, "elm/indicator/icon/base"); + } else { + elm_layout_file_set(ly, ICON_NONFIXED_THEME_FILE, "elm/indicator/icon/base"); + } +} + + + +static Evas_Object *_img_icon_add(win_info *win, icon_s *icon) +{ + char path[PATH_MAX]; + Evas_Object *evas_icon; + Evas_Object *ly; + char *imgpath = NULL; + int noti_is_ani = 0; + int b_ani = 0; + + retv_if(!win, NULL); + retv_if(!icon, NULL); + + imgpath = (char *) icon->img_obj.data; + + _reset_on_timer_icon_animation(icon); + + if (icon->img_obj.width <= 0) { + icon->img_obj.width = DEFAULT_ICON_WIDTH; + } + + if (icon->img_obj.height <= 0) { + icon->img_obj.height = DEFAULT_ICON_HEIGHT; + } + + memset(path, 0x00, sizeof(path)); + + ly = elm_layout_add(win->layout); + retv_if(!ly, NULL); + + if (icon->area == INDICATOR_ICON_AREA_FIXED) { + _fixed_icon_layout_file_set(icon, ly); + } else { + noti_is_ani = util_check_noti_ani(imgpath); + _noti_ani_icon_layout_file_set(noti_is_ani, ly); + } + + evas_icon = elm_image_add(ly); + retv_if(!evas_icon, NULL); + + b_ani = (int) evas_object_data_get(ly, PRIVATE_DATA_KEY_ICON_B_ANI); + if (!b_ani) { + /* Absolute path? */ + if (strncmp(imgpath, "/", 1) != 0) { + snprintf(path, sizeof(path), "%s/%s", util_get_icon_dir(), imgpath); + } else { + strncpy(path, imgpath, sizeof(path)-1); + } + + if (!ecore_file_exists(path)) { + _E("icon file does not exist : %s", path); + } + elm_image_file_set(evas_icon, path, NULL); + } + + evas_object_size_hint_min_set(evas_icon, ELM_SCALE_SIZE(icon->img_obj.width), ELM_SCALE_SIZE(icon->img_obj.height)); + elm_object_part_content_set(ly, "elm.swallow.icon", evas_icon); + + evas_object_data_set(ly, DATA_KEY_IMG_ICON, evas_icon); + evas_object_size_hint_min_set(ly, ELM_SCALE_SIZE(icon->img_obj.width), ELM_SCALE_SIZE(icon->img_obj.height)); + evas_object_hide(ly); + + return ly; +} + + + +char *icon_label_set(const char *buf, char *font_name, char *font_style, int font_size, void *data) +{ + Eina_Strbuf *temp_buf = NULL; + char *ret_str = NULL; + char *label_font = ICON_FONT_NAME; + char *label_font_style = ICON_FONT_STYLE; + int label_font_size = ICON_FONT_SIZE; + Eina_Bool buf_result = EINA_FALSE; + + retif(data == NULL || buf == NULL, NULL, "Invalid parameter!"); + + temp_buf = eina_strbuf_new(); + if (font_name != NULL) + label_font = font_name; + if (font_style != NULL) + label_font_style = font_style; + if (font_size > 0) + label_font_size = font_size; + + buf_result = eina_strbuf_append_printf(temp_buf, CUSTOM_LABEL_STRING, + label_font, label_font_style, + label_font_size, buf); + + if (buf_result != EINA_FALSE) + ret_str = eina_strbuf_string_steal(temp_buf); + + eina_strbuf_free(temp_buf); + + return ret_str; +} + + + +Eina_Bool icon_add(win_info *win, icon_s *icon) +{ + retv_if(!icon, EINA_FALSE); + + switch (icon->type) { + case INDICATOR_TXT_ICON: + break; + case INDICATOR_IMG_ICON: + icon->img_obj.obj = _img_icon_add(win, icon); + break; + case INDICATOR_TXT_WITH_IMG_ICON: + break; + case INDICATOR_DIGIT_ICON: + icon->img_obj.obj = _img_icon_add(win, icon); + break; + default: + _E("Icon type check error!"); + return EINA_FALSE; + } + icon->obj_exist = EINA_TRUE; + + return EINA_TRUE; +} + + + +Eina_Bool icon_del(icon_s *icon) +{ + Evas_Object *icon_obj; + retif(icon == NULL, EINA_FALSE, "Invalid parameter!"); + + _reset_on_timer_icon_animation(icon); + + if (icon->obj_exist != EINA_FALSE) { + if (icon->img_obj.obj) { + icon_obj = + evas_object_data_get(icon->img_obj.obj, DATA_KEY_IMG_ICON); + evas_object_del(icon_obj); + evas_object_del(icon->img_obj.obj); + icon->img_obj.obj = NULL; + } + } + return EINA_TRUE; +} + + + +/****************************************************************************** + * + * Static functions : util functions - check priority + * + *****************************************************************************/ + +static int _show_others_in_same_priority(icon_s *icon) +{ + icon_s *wish_add_icon; + int area = icon->area; + retif(icon == NULL, FAIL, "Invalid parameter!"); + + wish_add_icon = list_try_to_find_icon_to_show(icon->area, icon->priority); + if (wish_add_icon == NULL) + { + return OK; + } + + if (box_exist_icon(wish_add_icon)) + { + /* Already shown icon */ + return OK; + } + + if(area ==INDICATOR_ICON_AREA_NOTI) + { + box_pack_append(wish_add_icon); + } + else + { + box_pack(wish_add_icon); + } + + return OK; +} + + + +static int _hide_others_in_view_list(icon_s *icon) +{ + icon_s *wish_remove_icon = NULL; + retif(icon == NULL, FAIL, "Invalid parameter!"); + + if (INDICATOR_ICON_AREA_SYSTEM == icon->area || INDICATOR_ICON_AREA_NOTI == icon->area || INDICATOR_ICON_AREA_MINICTRL == icon->area) + { + Icon_AddType ret; + + /* In Case of Nonfixed icon, remove same or + * lower priority icon. Check count of non-fixed view list + * to insert icon + */ + ret = box_is_enable_to_insert_in_non_fixed_list(icon); + icon->wish_to_show = EINA_TRUE; + list_update(icon); + + switch (ret) { + case CAN_ADD_WITH_DEL_NOTI: + wish_remove_icon = list_try_to_find_icon_to_remove(INDICATOR_ICON_AREA_NOTI,0); + box_unpack(wish_remove_icon); + + retif(wish_remove_icon == NULL, FAIL, "Unexpected Error : CAN_ADD_WITH_DEL_NOTI"); + break; + case CAN_ADD_WITH_DEL_SYSTEM: + wish_remove_icon = list_try_to_find_icon_to_remove(INDICATOR_ICON_AREA_SYSTEM,0); + + box_unpack(wish_remove_icon); + retif(wish_remove_icon == NULL, FAIL, "Unexpected Error : CAN_ADD_WITH_DEL_SYSTEM"); + break; + case CAN_ADD_WITH_DEL_MINICTRL: + wish_remove_icon = list_try_to_find_icon_to_remove(INDICATOR_ICON_AREA_MINICTRL,0); + + box_unpack(wish_remove_icon); + retif(wish_remove_icon == NULL, FAIL, "Unexpected Error : CAN_ADD_WITH_DEL_MINICTRL"); + break; + case CAN_ADD_WITHOUT_DEL: + break; + case CANNOT_ADD: + return FAIL; + break; + } + + return OK; + } + else if (INDICATOR_ICON_AREA_FIXED == icon->area) + { + /* In Case of fixed icon, remove same priority icon */ + wish_remove_icon = list_try_to_find_icon_to_remove(INDICATOR_ICON_AREA_FIXED,icon->priority); + + /* First icon in the priority */ + if (wish_remove_icon == NULL) + { + return OK; + } + + /* Already shown icon */ + if (wish_remove_icon == icon) + { + return FAIL; + } + + icon->wish_to_show = EINA_TRUE; + list_update(icon); + + /* Wish_remove_icon is always_top icon */ + if (wish_remove_icon->always_top) + { + return FAIL; + } + + /* Other Icon of Same Priority should remove in view list */ + box_unpack(wish_remove_icon); + } + + return OK; +} + + + +/****************************************************************************** + * + * Util Functions : external + * + *****************************************************************************/ + +#if 0 +int icon_width_set(icon_s *icon) +{ + return 0; +} +#endif + + +static int _icon_update(icon_s *icon) +{ + struct appdata *ad = NULL; + Evas_Object *img_eo; + char buf[PATH_MAX]; + + retif(icon == NULL || icon->ad == NULL, FAIL, "Invalid parameter!"); + ad = icon->ad; + + memset(buf, 0x00, sizeof(buf)); + + if (icon->type == INDICATOR_IMG_ICON || icon->type == INDICATOR_TXT_WITH_IMG_ICON || icon->type == INDICATOR_DIGIT_ICON) { + if (icon->area== INDICATOR_ICON_AREA_FIXED) { + if(icon->type == INDICATOR_DIGIT_ICON && icon->digit_area == DIGIT_DOZENS) { + elm_layout_file_set(icon->img_obj.obj, ICON_THEME_FILE,"elm/indicator/icon/dozen_digit"); + } else { + elm_layout_file_set(icon->img_obj.obj, ICON_THEME_FILE,"elm/indicator/icon/base"); + } + } else { + if(util_check_noti_ani(icon->img_obj.data)) { + elm_layout_file_set(icon->img_obj.obj, ICON_NONFIXED_THEME_ANI_FILE,"elm/indicator/icon/base"); + } else{ + elm_layout_file_set(icon->img_obj.obj, ICON_NONFIXED_THEME_FILE,"elm/indicator/icon/base"); + } + } + + img_eo = evas_object_data_get(icon->img_obj.obj, DATA_KEY_IMG_ICON); + + util_start_noti_ani(icon); + + /* Check absolute path */ + retif(icon->img_obj.data == NULL, FAIL,"Invalid parameter!"); + + if (strncmp(icon->img_obj.data, "/", 1) != 0) { + snprintf(buf, sizeof(buf), "%s/%s", util_get_icon_dir(),icon->img_obj.data); + elm_image_file_set(img_eo, buf, NULL); + } else { + retif(icon->img_obj.data[0] == '\0', FAIL,"Invalid parameter!"); + elm_image_file_set(img_eo, icon->img_obj.data, NULL); + } + + if (icon->img_obj.width >= 0 && icon->img_obj.height>=0) { + evas_object_size_hint_min_set(img_eo, + ELM_SCALE_SIZE(icon->img_obj.width), + ELM_SCALE_SIZE(icon->img_obj.height)); + } else { + evas_object_size_hint_min_set(img_eo, ELM_SCALE_SIZE(DEFAULT_ICON_WIDTH), ELM_SCALE_SIZE(DEFAULT_ICON_HEIGHT)); + } + } + + if (icon->area == INDICATOR_ICON_AREA_SYSTEM) { + int bDisplay = 0; + bDisplay = 1; + if(ad->opacity_mode == INDICATOR_OPACITY_TRANSPARENT && bDisplay == 1) { + util_send_status_message_start(ad,2.5); + } + } + + return OK; +} + + + +void icon_show(icon_s *icon) +{ + struct appdata *ad = NULL; + + ret_if(!icon); + ret_if(!(icon->ad)); + + ad = (struct appdata *)icon->ad; + + if (icon->obj_exist != EINA_FALSE) { + if (icon->priority == INDICATOR_PRIORITY_NOTI_2) { + box_unpack(icon); + box_pack(icon); + box_update_display(&(ad->win)); + } else { + _icon_update(icon); + } + } + + if (_hide_others_in_view_list(icon) == FAIL) { + return; + } + + box_pack(icon); + + box_update_display(&(ad->win)); +} + +void icon_hide(icon_s *icon) +{ + int ret; + + retif(icon == NULL, , "Invalid parameter!"); + struct appdata *ad = (struct appdata *)icon->ad; + + icon->wish_to_show = EINA_FALSE; + + if (icon->exist_in_view == EINA_TRUE) { + ret = box_unpack(icon); + + if (ret == FAIL) + SECURE_ERR("Failed to unpack %s!", icon->name); + + _show_others_in_same_priority(icon); + + box_update_display(&(ad->win)); + + } +} + + +#if 0 +void icon_event_count_set(int count, void *data) +{ + static int _cnt = -1; + char buf[1024]; + + retif(data == NULL, , "Cannot get layout!"); + + if (_cnt != count) { + memset(buf, 0x00, sizeof(buf)); + if (count) { + snprintf(buf, sizeof(buf), "%d", count); + util_signal_emit(data,"badge,show,1","elm.image.badge"); + } else { + util_signal_emit(data,"badge,hide,1","elm.image.badge"); + } + + util_part_text_emit(data,"elm.text.badge", buf); + _cnt = count; + } +} +#endif + + +unsigned int icon_get_update_flag(void) +{ + return update_icon_flag; +} + + + +void icon_set_update_flag(unsigned int val) +{ + DBG("SET UPDATE FLAG %d",val); + update_icon_flag = val; +} + + + +void icon_reset_list(void) +{ + int system_cnt = box_get_count(SYSTEM_LIST); + + if (system_cnt > box_get_enabled_system_count()) { + while(system_cnt > box_get_enabled_system_count()) { + icon_s *wish_remove_icon = NULL; + wish_remove_icon = list_try_to_find_icon_to_remove(INDICATOR_ICON_AREA_SYSTEM, 0); + + if (wish_remove_icon == NULL) { + break; + } + + box_unpack(wish_remove_icon); + system_cnt = box_get_count(SYSTEM_LIST); + SECURE_DBG("system remove %s %d",wish_remove_icon->name,system_cnt); + } + } else { + while (system_cnt < box_get_enabled_system_count()) { + icon_s *wish_add_icon = NULL; + wish_add_icon = list_try_to_find_icon_to_show(INDICATOR_ICON_AREA_SYSTEM, 0); + if (wish_add_icon == NULL) { + break; + } + + if (box_exist_icon(wish_add_icon)) { + break; + } + + box_pack_append(wish_add_icon); + system_cnt = box_get_count(SYSTEM_LIST); + SECURE_DBG("system insert %s %d",wish_add_icon->name,system_cnt); + if(system_cnt == box_get_enabled_system_count()) { + SECURE_DBG("quit adding %d %d",system_cnt,box_get_enabled_system_count()); + break; + } + } + } + + int minictrl_cnt = box_get_count(MINICTRL_LIST); + + if (minictrl_cnt > box_get_minictrl_list()) { + DBG("11 minictrl_cnt : %d // box_get_minictrl_list : %d", minictrl_cnt, box_get_minictrl_list()); + while (minictrl_cnt > box_get_minictrl_list()) { + DBG("22 minictrl_cnt : %d // box_get_minictrl_list : %d", minictrl_cnt, box_get_minictrl_list()); + icon_s *wish_remove_icon = NULL; + wish_remove_icon = list_try_to_find_icon_to_remove(INDICATOR_ICON_AREA_MINICTRL,0); + + if (wish_remove_icon == NULL) { + DBG("icon_reset_list NULL!"); + break; + } + + box_unpack(wish_remove_icon); + minictrl_cnt = box_get_count(MINICTRL_LIST); + SECURE_DBG("minictrl remove %s %d",wish_remove_icon->name,minictrl_cnt); + } + } else { + while (minictrl_cnt < box_get_minictrl_list()) { + icon_s *wish_add_icon = NULL; + wish_add_icon = list_try_to_find_icon_to_show(INDICATOR_ICON_AREA_MINICTRL, 0); + if (wish_add_icon == NULL) { + break; + } + + if (box_exist_icon(wish_add_icon)) { + break; + } + + box_pack_append(wish_add_icon); + minictrl_cnt = box_get_count(MINICTRL_LIST); + SECURE_DBG("minictrl insert %s %d",wish_add_icon->name,minictrl_cnt); + if(minictrl_cnt==box_get_minictrl_list()) { + SECURE_DBG("quit adding %d %d", minictrl_cnt, box_get_minictrl_list()); + break; + } + } + } + + int noti_cnt = box_get_count(NOTI_LIST); + + if (noti_cnt > box_get_enabled_noti_count()) { + while (noti_cnt > box_get_enabled_noti_count()) { + icon_s *wish_remove_icon = NULL; + wish_remove_icon = list_try_to_find_icon_to_remove(INDICATOR_ICON_AREA_NOTI, 0); + + if (wish_remove_icon == NULL) { + break; + } + + box_unpack(wish_remove_icon); + noti_cnt = box_get_count(NOTI_LIST); + SECURE_DBG("remove %s %d",wish_remove_icon->name,noti_cnt); + } + } else { + while (noti_cnt < box_get_enabled_noti_count()) { + icon_s *wish_add_icon = NULL; + wish_add_icon = list_try_to_find_icon_to_show(INDICATOR_ICON_AREA_NOTI, 0); + if (wish_add_icon == NULL) { + break; + } + + if (box_exist_icon(wish_add_icon)) { + break; + } + + box_pack_append(wish_add_icon); + noti_cnt = box_get_count(NOTI_LIST); + SECURE_DBG("insert %s %d", wish_add_icon->name, noti_cnt); + if(noti_cnt==box_get_enabled_noti_count()) { + SECURE_DBG("quit adding %d %d", noti_cnt, box_get_enabled_noti_count()); + break; + } + } + } +} + + + +static void _show_hide_more_noti(win_info* win,int val) +{ + static int bShow = 0; + + if (bShow == val) { + return; + } + + bShow = val; + + if (val == 1) { + preference_set_int(INDICATOR_SHOW_MORE_NOTI_PORT, 1); + } else { + preference_set_int(INDICATOR_SHOW_MORE_NOTI_PORT, 0); + } +} + + + +void icon_handle_more_notify_icon(win_info* win) +{ + retif(win == NULL, , "Invalid parameter!"); + DBG("icon_handle_more_notify_icon called !!"); +/* int system_cnt = box_get_count(SYSTEM_LIST); + int minictrl_cnt = box_get_count(MINICTRL_LIST); + int noti_cnt = list_get_noti_count(); + + DBG("System count : %d, Minictrl count : %d, Notification count : %d", system_cnt, minictrl_cnt, noti_cnt); + if(win->type == INDICATOR_WIN_PORT) + { + DBG("PORT :: %d", (system_cnt + minictrl_cnt + noti_cnt)); + if((system_cnt + minictrl_cnt + noti_cnt) > MAX_NOTI_ICONS_PORT) + { + _show_hide_more_noti(win,1); + DBG("PORT :: handle_more_notify_show"); + } + else + {*/ + _show_hide_more_noti(win,0); + DBG("PORT :: handle_more_notify_hide"); + /*} + }*/ +} + + + +void* icon_util_make(void* input) +{ + icon_s *icon = (icon_s *)input; + + retif(input == NULL,NULL, "Invalid parameter!"); + + icon_s *obj = NULL; + obj = calloc(1, sizeof(icon_s)); + + if (obj) { + memset(obj, 0, sizeof(icon_s)); + memcpy(obj,input,sizeof(icon_s)); + obj->name = strdup(icon->name); + } + + return obj; +} + + + +/* End of file */ diff --git a/daemon/icon.h b/daemon/icon.h new file mode 100644 index 0000000..ef34100 --- /dev/null +++ b/daemon/icon.h @@ -0,0 +1,57 @@ +/* + * Indicator + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +#ifndef __INDICATOR_ICON_UTIL_H__ +#define __INDICATOR_ICON_UTIL_H__ + +#include + +#include "indicator.h" +#include "main.h" + +#define MAX_NOTI_ICONS_PORT 5 +#define MAX_NOTI_ICONS_LAND 11 + +enum { + ICON_STATE_HIDDEN = 0, + ICON_STATE_SHOWN +}; + +enum indicator_view_mode { + INDICATOR_KEEP_VIEW = -1, + INDICATOR_FULL_VIEW, + INDICATOR_CLOCK_VIEW +}; + +extern void icon_show(icon_s *obj); +extern void icon_hide(icon_s *obj); +extern void icon_ani_set(icon_s *icon, enum indicator_icon_ani type); +extern char *icon_label_set(const char *buf, char *font_name, + char *font_style, int font_size, + void *data); +extern Eina_Bool icon_add(win_info *win,icon_s *icon); +extern Eina_Bool icon_del(icon_s *icon); +extern unsigned int icon_get_update_flag(void); +extern void icon_set_update_flag(unsigned int val); +extern void icon_reset_list(void); +extern void icon_handle_more_notify_icon(win_info* win); +extern void* icon_util_make(void* input); + +#endif /*__INDICATOR_ICON_UTIL_H__*/ diff --git a/daemon/indicator.h b/daemon/indicator.h old mode 100755 new mode 100644 index 684e218..a78fe5b --- a/daemon/indicator.h +++ b/daemon/indicator.h @@ -1,17 +1,20 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd + * Indicator * - * Licensed under the Flora License, Version 1.1 (the "License"); + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://floralicense.org/license/ + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * */ @@ -19,69 +22,119 @@ #define __INDICATOR_H__ #include -#include +//#include +#include #include +#include -#ifndef VCONFKEY_INDICATOR_STARTED -#define VCONFKEY_INDICATOR_STARTED "memory/private/"PACKAGE_NAME"/started" -#endif -#define VCONFKEY_APPTRAY_STATE "file/private/com.samsung.app-tray/is_top" +#define INDICATOR_SHOW_MORE_NOTI_PORT "memory/private/"PACKAGE_NAME"/show_more_noti_port" +#define VCONFKEY_APPTRAY_STATE "file/private/org.tizen.app-tray/is_top" -#define VCONFKEY_BATTERY_DISP_STATE "memory/private/"PACKAGE_NAME"/battery_disp" +#define FIXED_COUNT 11 +#define INDICATOR_HEIGHT 36 -#define _FIXED_COUNT 5 +#define _INDICATOR_FEATURE_LITE +#define _INDICATOR_REMOVE_SEARCH +#define DATA_KEY_IMG_ICON "i_i" +#define DATA_KEY_BASE_RECT "dkbr" +#define DATA_KEY_TICKER_TEXT "dktt" enum indicator_win_mode{ INDICATOR_WIN_PORT = 0, - INDICATOR_WIN_LAND, - INDICATOR_WIN_MAX }; enum { + /* Value is allocated from Left side in status bar */ INDICATOR_PRIORITY_FIXED_MIN = 0, - INDICATOR_PRIORITY_FIXED1 = INDICATOR_PRIORITY_FIXED_MIN, - INDICATOR_PRIORITY_FIXED2, - INDICATOR_PRIORITY_FIXED3, - INDICATOR_PRIORITY_FIXED4, - INDICATOR_PRIORITY_FIXED5, - INDICATOR_PRIORITY_FIXED6, - INDICATOR_PRIORITY_FIXED_MAX = INDICATOR_PRIORITY_FIXED6, + INDICATOR_PRIORITY_FIXED1 = INDICATOR_PRIORITY_FIXED_MIN,/* Always */ + INDICATOR_PRIORITY_FIXED2, /* RSSI1 (elm.swallow.fixed1) */ + INDICATOR_PRIORITY_FIXED3, /* RSSI2 (elm.swallow.fixed2) */ + INDICATOR_PRIORITY_FIXED4, /* SimCard-Icon(DualSim) (elm.swallow.fixed3) */ + INDICATOR_PRIORITY_FIXED5, /* Connection (elm.swallow.fixed4) */ + INDICATOR_PRIORITY_FIXED6, /* Wifi (elm.swallow.fixed5) */ + INDICATOR_PRIORITY_FIXED7, /* CONNECTION1 - BT (elm.swallow.fixed6) */ + INDICATOR_PRIORITY_FIXED8, /* CONNECTION2 - WIFI DIRECT (elm.swallow.fixed7)*/ + INDICATOR_PRIORITY_FIXED9, /* Battery (elm.swallow.fixed8)*/ + INDICATOR_PRIORITY_FIXED10, /* Search*/ + INDICATOR_PRIORITY_FIXED11, /* more */ + INDICATOR_PRIORITY_FIXED_MAX = INDICATOR_PRIORITY_FIXED11, + + /* Right Side */ INDICATOR_PRIORITY_SYSTEM_MIN, + INDICATOR_PRIORITY_SYSTEM_1 = INDICATOR_PRIORITY_SYSTEM_MIN, /* SYSTEM - Alarm */ + INDICATOR_PRIORITY_SYSTEM_2, /* SYSTEM - Call divert */ + INDICATOR_PRIORITY_SYSTEM_3, /* SYSTEM - MMC */ + INDICATOR_PRIORITY_SYSTEM_4, /* SYSTEM - GPS */ + INDICATOR_PRIORITY_SYSTEM_5, /* SYSTEM - Private mode */ + INDICATOR_PRIORITY_SYSTEM_6, /* SYSTEM - Sound profile */ + INDICATOR_PRIORITY_SYSTEM_MAX = INDICATOR_PRIORITY_SYSTEM_6, + + INDICATOR_PRIORITY_MINICTRL_MIN, + INDICATOR_PRIORITY_MINICTRL1 = INDICATOR_PRIORITY_MINICTRL_MIN, /* MINICTRL - Voice recorder */ + INDICATOR_PRIORITY_MINICTRL2, /* MINICTRL - Music/FM Radio */ + INDICATOR_PRIORITY_MINICTRL3, /* MINICTRL - Call *//* MINICTRL - Voice recorder */ + INDICATOR_PRIORITY_MINICTRL_MAX = INDICATOR_PRIORITY_MINICTRL3, - INDICATOR_PRIORITY_SYSTEM_7 = INDICATOR_PRIORITY_SYSTEM_MIN, - INDICATOR_PRIORITY_SYSTEM_6, - INDICATOR_PRIORITY_SYSTEM_5, - INDICATOR_PRIORITY_SYSTEM_4, - INDICATOR_PRIORITY_SYSTEM_3, - INDICATOR_PRIORITY_SYSTEM_2, - INDICATOR_PRIORITY_SYSTEM_1, - INDICATOR_PRIORITY_SYSTEM_MAX = INDICATOR_PRIORITY_SYSTEM_1, INDICATOR_PRIORITY_NOTI_MIN, - INDICATOR_PRIORITY_NOTI_2 = INDICATOR_PRIORITY_NOTI_MIN, - INDICATOR_PRIORITY_NOTI_1, + INDICATOR_PRIORITY_NOTI_1 = INDICATOR_PRIORITY_NOTI_MIN, + INDICATOR_PRIORITY_NOTI_2, /* Ongoing/Normal notification */ INDICATOR_PRIORITY_NOTI_MAX = INDICATOR_PRIORITY_NOTI_2 }; enum indicator_icon_type { INDICATOR_IMG_ICON = 0, INDICATOR_TXT_ICON, - INDICATOR_TXT_WITH_IMG_ICON + INDICATOR_TXT_WITH_IMG_ICON, + INDICATOR_DIGIT_ICON, }; enum indicator_icon_area_type { INDICATOR_ICON_AREA_FIXED = 0, INDICATOR_ICON_AREA_SYSTEM, - INDICATOR_ICON_AREA_NOTI + INDICATOR_ICON_AREA_MINICTRL, + INDICATOR_ICON_AREA_NOTI, + INDICATOR_ICON_AREA_ALARM }; -enum indicator_icon_ani { +typedef enum indicator_icon_ani { ICON_ANI_NONE = 0, ICON_ANI_BLINK, ICON_ANI_ROTATE, ICON_ANI_METRONOME, + ICON_ANI_DOWNLOADING, + ICON_ANI_UPLOADING, ICON_ANI_MAX +} Icon_Ani_Type; + +enum indicator_digit_area { + DIGIT_UNITY = 0, + DIGIT_DOZENS, + DIGIT_DOZENS_UNITY, + DIGIT_HUNDREDS +}; + +/* Upload/download animation states 0-6 */ +enum ud_indicator_icon_ani_state +{ + UD_ICON_ANI_STATE_0 = 0, + UD_ICON_ANI_STATE_1, + UD_ICON_ANI_STATE_2, + UD_ICON_ANI_STATE_3, + UD_ICON_ANI_STATE_4, + UD_ICON_ANI_STATE_5, + UD_ICON_ANI_STATE_6, + UD_ICON_ANI_STATE_MAX +}; + +enum { + TRANSFER_MIN = 0, + TRANSFER_NONE = TRANSFER_MIN, + TRANSFER_UP, + TRANSFER_DOWN, + TRANSFER_UPDOWN, + TRANSFER_MAX }; typedef struct _Text_Icon_Info { @@ -100,56 +153,68 @@ typedef struct _Img_Icon_Info { typedef struct _ind_win_info { Evas *evas; - Evas_Object* win_main; - Evas_Object* layout_main; + Evas_Object* win; + Evas_Object* layout; int w; int h; + int port_w; + int land_w; int angle; - int type; - Evas_Object *_fixed_box[_FIXED_COUNT]; + Evas_Object *_fixed_box[FIXED_COUNT]; Evas_Object *_non_fixed_box; + Evas_Object *_minictrl_box; Evas_Object *_noti_box; + Evas_Object *_dynamic_box; + Evas_Object *_dynamic_box_noti; + Evas_Object *_alarm_box; + Evas_Object *_digit_box; struct { - Eina_Bool trigger; - int x; - int y; + int x; + int y; } mouse_event; -#ifdef HOME_KEY_EMULATION - Ecore_X_Atom atom_hwkey; - Ecore_X_Window win_hwkey; -#endif /* HOME_KEY_EMULATION */ void* data; }win_info; - typedef struct Indicator_Icon { char *name; enum indicator_icon_type type; enum indicator_icon_area_type area; int priority; - Eina_Bool always_top; + Eina_Bool always_top; /* Only for SOS messsage */ + enum ud_indicator_icon_ani_state animation_state; + Eina_Bool animation_in_progress; + Ecore_Timer *p_animation_timer; + char signal_to_emit_prefix [32]; + double last_animation_timestamp; + /* Func */ int (*init) (void *); int (*fini) (void); - int (*hib_enter) (void); - int (*hib_leave) (void *); int (*lang_changed) (void *); int (*region_changed) (void *); int (*minictrl_control) (int, const char *, void *); int (*wake_up) (void *); + /* do not modify this area */ + /* internal data */ void *ad; Eina_Bool obj_exist; - Text_Icon_Info txt_obj; Img_Icon_Info img_obj; Eina_Bool wish_to_show; Eina_Bool exist_in_view; - - int win_type; enum indicator_icon_ani ani; -} Indicator_Icon_Object; + +#ifdef _SUPPORT_SCREEN_READER + int (*register_tts) (void*, int); + char *(*access_cb)(void *, Evas_Object *); + int tts_enable; +#endif + int digit_area; +} icon_s; + +//int rssi_get_sim_number(TapiHandle *handle_obj); #endif /*__INDICATOR_H__*/ diff --git a/daemon/indicator_box_util.c b/daemon/indicator_box_util.c deleted file mode 100755 index fde43c6..0000000 --- a/daemon/indicator_box_util.c +++ /dev/null @@ -1,894 +0,0 @@ -/* - * Copyright 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. - */ - - -#include -#include -#include "common.h" -#include "indicator_box_util.h" -#include "indicator_icon_util.h" -#include "indicator_icon_list.h" -#include "indicator_ui.h" -#include "indicator_gui.h" -#include "indicator_util.h" -#include - -#define DEFAULT_SIZE (CLOCK_WIDTH + (PADDING_WIDTH * 2)) -#define _FIXED_BOX_PART_NAME "elm.swallow.fixed" -#define _NON_FIXED_BOX_PART_NAME "elm.swallow.nonfixed" -#define _NOTI_BOX_PART_NAME "elm.swallow.noti" - -#define _FIXED_COUNT 5 -#define CORRECTION 10 - -Eina_List *_view_fixed_list[INDICATOR_WIN_MAX]; -Eina_List *_view_system_list[INDICATOR_WIN_MAX]; -Eina_List *_view_noti_list[INDICATOR_WIN_MAX]; - -extern int indicator_icon_show_state[INDICATOR_WIN_MAX]; - -static Evas_Object *indicator_box_add(Evas_Object * parent) -{ - Evas_Object *obj; - - retif(parent == NULL, NULL, "Invalid parameter!"); - - obj = elm_box_add(parent); - evas_object_size_hint_weight_set(obj, EVAS_HINT_EXPAND, - EVAS_HINT_EXPAND); - evas_object_size_hint_fill_set(obj, EVAS_HINT_FILL, EVAS_HINT_FILL); - - elm_box_horizontal_set(obj, EINA_TRUE); - evas_object_show(obj); - - return obj; -} - -static void _update_window(win_info *win) -{ - - int root_w, root_h; - Ecore_X_Window xwin, root; - - retif(win == NULL, , "Invalid parameter!"); - - INFO("_update_window"); - - xwin = elm_win_xwindow_get(win->win_main); - if (!xwin) - return; - root = ecore_x_window_root_get(xwin); - if (!root) - return; - ecore_x_window_size_get(root, &root_w, &root_h); - - if (win->angle == 0 || win->angle == 180) - win->w = root_w; - else - win->w = root_h; - - switch (win->angle) { - case 0: - ecore_x_window_shape_input_rectangle_set(xwin, root_w - win->w, - 0, win->w, win->h); - break; - case 90: - ecore_x_window_shape_input_rectangle_set(xwin, 0, 0, win->h, - win->w); - break; - case 180: - ecore_x_window_shape_input_rectangle_set(xwin, 0, 0, win->w, - win->h); - break; - case 270: - ecore_x_window_shape_input_rectangle_set(xwin, - 0, root_h - win->w, - win->h, win->w); - break; - default: - break; - } - -} - -static void _update_display(win_info *win) -{ - Indicator_Icon_Object *icon; - Eina_List *l; - int i = 0; - - retif(win == NULL, , "Invalid parameter!"); - - for (i = 0; i < _FIXED_COUNT; ++i) - elm_box_unpack_all(win->_fixed_box[i]); - - elm_box_unpack_all(win->_non_fixed_box); - elm_box_unpack_all(win->_noti_box); - - DBG("win->type:%d",win->type); - - EINA_LIST_FOREACH(_view_fixed_list[win->type], l, icon) { - if (icon->obj_exist == EINA_FALSE) { - if (indicator_util_icon_add(win,icon) == EINA_TRUE) - icon->obj_exist = EINA_TRUE; - } - - if (icon->obj_exist == EINA_TRUE) { - if (icon->area == INDICATOR_ICON_AREA_FIXED - && icon->priority < INDICATOR_PRIORITY_FIXED_MAX) { - - Evas_Coord x, y, h, w; - - Evas_Object *img_eo = - evas_object_data_get(icon->img_obj.obj, - "imgicon"); - evas_object_size_hint_min_set(img_eo, - icon->img_obj.width * elm_config_scale_get(), - icon->img_obj.height * elm_config_scale_get()); - - indicator_util_handle_animated_gif(icon); - - switch (icon->type) { - case INDICATOR_IMG_ICON: - evas_object_show(icon->img_obj.obj); - elm_box_pack_start(win->_fixed_box - [icon->priority], - icon->img_obj.obj); - break; - case INDICATOR_TXT_ICON: - evas_object_show(icon->txt_obj.obj); - elm_box_pack_start(win->_fixed_box - [icon->priority], - icon->txt_obj.obj); - break; - case INDICATOR_TXT_WITH_IMG_ICON: - evas_object_show(icon->txt_obj.obj); - evas_object_show(icon->img_obj.obj); - elm_box_pack_start(win->_fixed_box - [icon->priority], - icon->img_obj.obj); - elm_box_pack_start(win->_fixed_box - [icon->priority], - icon->txt_obj.obj); - break; - } - - evas_object_geometry_get( - win->_fixed_box[icon->priority], - &x, &y, &h, &w); - - INFO("Fixed Icon : %s %d %d %d %d", - icon->name, x, y, h, w); - } - } - } - - EINA_LIST_FOREACH(_view_system_list[win->type], l, icon) { - if (icon->obj_exist == EINA_FALSE) { - if (indicator_util_icon_add(win,icon) == EINA_TRUE) - icon->obj_exist = EINA_TRUE; - } - if (icon->obj_exist == EINA_TRUE) { - if (icon->area == INDICATOR_ICON_AREA_SYSTEM - && icon->priority >= INDICATOR_PRIORITY_SYSTEM_MIN - && icon->priority <= INDICATOR_PRIORITY_SYSTEM_MAX) { - - Evas_Coord x, y, h, w; - - Evas_Object *img_eo = - evas_object_data_get(icon->img_obj.obj, - "imgicon"); - evas_object_size_hint_min_set(img_eo, - icon->img_obj.width * elm_config_scale_get(), - icon->img_obj.height * elm_config_scale_get()); - - indicator_util_handle_animated_gif(icon); - - switch (icon->type) { - case INDICATOR_IMG_ICON: - evas_object_show(icon->img_obj.obj); - elm_box_pack_end(win->_non_fixed_box, - icon->img_obj.obj); - break; - case INDICATOR_TXT_ICON: - evas_object_show(icon->txt_obj.obj); - elm_box_pack_end(win->_non_fixed_box, - icon->txt_obj.obj); - break; - case INDICATOR_TXT_WITH_IMG_ICON: - evas_object_show(icon->txt_obj.obj); - evas_object_show(icon->img_obj.obj); - elm_box_pack_end(win->_non_fixed_box, - icon->txt_obj.obj); - elm_box_pack_end(win->_non_fixed_box, - icon->img_obj.obj); - break; - } - evas_object_geometry_get(win->_non_fixed_box, - &x, &y, &h, &w); - INFO("Non-Fixed Icon : %s %d %d %d %d", - icon->name, x, y, h, w); - } - - - } - } - - EINA_LIST_FOREACH(_view_noti_list[win->type], l, icon) { - if (icon->obj_exist == EINA_FALSE) { - if (indicator_util_icon_add(win,icon) == EINA_TRUE) - icon->obj_exist = EINA_TRUE; - } - if (icon->obj_exist == EINA_TRUE) { - if (icon->area == INDICATOR_ICON_AREA_NOTI) { - Evas_Coord x, y, h, w; - - Evas_Object *img_eo = - evas_object_data_get(icon->img_obj.obj, - "imgicon"); - evas_object_size_hint_min_set(img_eo, - icon->img_obj.width * elm_config_scale_get(), - icon->img_obj.height * elm_config_scale_get()); - - indicator_util_handle_animated_gif(icon); - - switch (icon->type) { - case INDICATOR_IMG_ICON: - evas_object_show(icon->img_obj.obj); - elm_box_pack_end(win->_noti_box, - icon->img_obj.obj); - break; - case INDICATOR_TXT_ICON: - evas_object_show(icon->txt_obj.obj); - elm_box_pack_end(win->_noti_box, - icon->txt_obj.obj); - break; - case INDICATOR_TXT_WITH_IMG_ICON: - evas_object_show(icon->txt_obj.obj); - evas_object_show(icon->img_obj.obj); - elm_box_pack_end(win->_noti_box, - icon->txt_obj.obj); - elm_box_pack_end(win->_noti_box, - icon->img_obj.obj); - break; - } - evas_object_geometry_get(win->_noti_box, - &x, &y, &h, &w); - INFO("Non-Fixed Notification Icon : %s %d %d %d %d", - icon->name, x, y, h, w); - } - - - } - } - - if (win) - _update_window(win); -} - -void indicator_util_update_display(win_info *win) -{ - retif(win == NULL, , "Invalid parameter!"); - - _update_window(win); - - _update_display(win); -} - -int icon_box_pack(Indicator_Icon_Object *icon) -{ - retif(icon == NULL, FAIL, "Invalid parameter!"); - - if (indicator_util_is_show_icon(icon)) - return OK; - - INFO("[icon_box_pack] %s %d!",icon->name, icon->win_type); - - if (INDICATOR_ICON_AREA_FIXED == icon->area) - { - icon->exist_in_view = EINA_TRUE; - _view_fixed_list[icon->win_type] = eina_list_append(_view_fixed_list[icon->win_type], icon); - } - else if(INDICATOR_ICON_AREA_SYSTEM == icon->area) - { - Indicator_Icon_Object *data; - Eina_List *l; - - EINA_LIST_FOREACH(_view_system_list[icon->win_type], l, data) { - if (data->priority <= icon->priority) { - icon->exist_in_view = EINA_TRUE; - _view_system_list[icon->win_type] = - eina_list_prepend_relative_list( - _view_system_list[icon->win_type], icon, l); - DBG("System prepend %s",icon->name); - return OK; - } - } - - icon->exist_in_view = EINA_TRUE; - _view_system_list[icon->win_type] = - eina_list_append(_view_system_list[icon->win_type], icon); - DBG("System append %s",icon->name); - } - else - { - Indicator_Icon_Object *data; - Eina_List *l; - - EINA_LIST_FOREACH(_view_noti_list[icon->win_type], l, data) { - if (data->priority <= icon->priority) - { - icon->exist_in_view = EINA_TRUE; - _view_noti_list[icon->win_type] = - eina_list_prepend_relative_list( - _view_noti_list[icon->win_type], icon, l); - DBG("Noti prepend %s",icon->name); - return OK; - } - } - - icon->exist_in_view = EINA_TRUE; - _view_noti_list[icon->win_type] = - eina_list_append(_view_noti_list[icon->win_type], icon); - DBG("Noti append %s",icon->name); - } - - return OK; -} - -int icon_box_pack_append(Indicator_Icon_Object *icon) -{ - retif(icon == NULL, FAIL, "Invalid parameter!"); - - if (indicator_util_is_show_icon(icon)) - return OK; - - INFO("[icon_box_pack_append] %s!",icon->name); - - if (INDICATOR_ICON_AREA_FIXED == icon->area) - { - icon->exist_in_view = EINA_TRUE; - _view_fixed_list[icon->win_type] = eina_list_append(_view_fixed_list[icon->win_type], icon); - } - else if(INDICATOR_ICON_AREA_SYSTEM == icon->area) - { - icon->exist_in_view = EINA_TRUE; - _view_system_list[icon->win_type] = - eina_list_append(_view_system_list[icon->win_type], icon); - } - else - { - icon->exist_in_view = EINA_TRUE; - _view_noti_list[icon->win_type] = - eina_list_append(_view_noti_list[icon->win_type], icon); - DBG("Noti append %s",icon->name); - } - - return OK; -} - - -int icon_box_unpack(Indicator_Icon_Object *icon) -{ - retif(icon == NULL, FAIL, "Invalid parameter!"); - - INFO("[icon_box_unpack] %s!",icon->name); - - if (INDICATOR_ICON_AREA_FIXED == icon->area) - { - icon->exist_in_view = EINA_FALSE; - _view_fixed_list[icon->win_type] = eina_list_remove(_view_fixed_list[icon->win_type], icon); - } - else if(INDICATOR_ICON_AREA_SYSTEM == icon->area) - { - icon->exist_in_view = EINA_FALSE; - _view_system_list[icon->win_type] = - eina_list_remove(_view_system_list[icon->win_type], icon); - } - else - { - icon->exist_in_view = EINA_FALSE; - _view_noti_list[icon->win_type] = - eina_list_remove(_view_noti_list[icon->win_type], icon); - } - - if (icon->obj_exist == EINA_TRUE) { - if (indicator_util_icon_del(icon) == EINA_TRUE) { - icon->obj_exist = EINA_FALSE; - INFO("%s icon object is freed!", icon->name); - } - } - - return OK; -} - -int icon_box_init(win_info *win) -{ - char *str_text = NULL; - int i = 0; - retif(win == NULL, FAIL, "Invalid parameter!"); - - for (i = 0; i < _FIXED_COUNT; ++i) { - if (win->_fixed_box[i] == NULL) { - Eina_Bool ret; - - win->_fixed_box[i] = indicator_box_add(win->layout_main); - retif(win->_fixed_box[i] == NULL, FAIL, - "Failed to add _fixed_box object!"); - - Eina_Strbuf *temp_str = eina_strbuf_new(); - eina_strbuf_append_printf(temp_str, "%s%d", - _FIXED_BOX_PART_NAME, i); - str_text = eina_strbuf_string_steal(temp_str); - - ret = edje_object_part_swallow(elm_layout_edje_get - (win->layout_main), str_text, - win->_fixed_box[i]); - INFO("[ICON INIT] : %d %s %d " , i, str_text, ret); - eina_strbuf_free(temp_str); - free(str_text); - } - } - - win->_non_fixed_box = indicator_box_add(win->layout_main); - retif(win->_non_fixed_box == NULL, FAIL, - "Failed to create _non_fixed_box object!"); - evas_object_size_hint_align_set(win->_non_fixed_box, - EVAS_HINT_FILL, EVAS_HINT_FILL); - - edje_object_part_swallow(elm_layout_edje_get - (win->layout_main), _NON_FIXED_BOX_PART_NAME, - win->_non_fixed_box); - - win->_noti_box = indicator_box_add(win->layout_main); - retif(win->_noti_box == NULL, FAIL, - "Failed to create _non_fixed_box object!"); - evas_object_size_hint_align_set(win->_noti_box, - EVAS_HINT_FILL, EVAS_HINT_FILL); - - edje_object_part_swallow(elm_layout_edje_get - (win->layout_main), _NOTI_BOX_PART_NAME, - win->_noti_box); - - indicator_util_update_display(win); - - return 0; -} - -int icon_box_fini(win_info *win) -{ - int i = 0; - - retif(win == NULL || win->layout_main == NULL, - FAIL, "Invalid parameter!"); - - if (win->_non_fixed_box != NULL) { - edje_object_part_unswallow(elm_layout_edje_get(win->layout_main), - win->_non_fixed_box); - elm_box_unpack_all(win->_non_fixed_box); - evas_object_del(win->_non_fixed_box); - win->_non_fixed_box = NULL; - } - - if (win->_noti_box != NULL) { - edje_object_part_unswallow(elm_layout_edje_get(win->layout_main), - win->_noti_box); - elm_box_unpack_all(win->_noti_box); - evas_object_del(win->_noti_box); - win->_noti_box = NULL; - } - - for (i = 0; i < _FIXED_COUNT; ++i) { - if (win->_fixed_box[i] != NULL) { - edje_object_part_unswallow(elm_layout_edje_get - (win->layout_main), - win->_fixed_box[i]); - elm_box_unpack_all(win->_fixed_box[i]); - evas_object_del(win->_fixed_box[i]); - win->_fixed_box[i] = NULL; - } - } - return 0; -} - -unsigned int indicator_get_count_in_fixed_list(int type) -{ - int r = eina_list_count(_view_fixed_list[type]); - DBG("Fixed Count : %d",r); - return r; -} -unsigned int indicator_get_count_in_system_list(int type) -{ - int r = eina_list_count(_view_system_list[type]); - DBG("System Count : %d",r); - return r; -} -unsigned int indicator_get_count_in_noti_list(int type) -{ - int r = eina_list_count(_view_noti_list[type]); - DBG("Notification Count : %d",r); - return r; -} - -void indicator_set_count_in_non_fixed_list(int angle, int status) -{ - -} - -int indicator_get_noti_list_index_count(int type) -{ - int added_count = 0; - int ret = 0; - int status = 0; - - ret = vconf_get_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, &status); - - if (ret != OK) - { - ERR("Fail to get vconfkey : %s", - VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL); - } - - if (status == EINA_TRUE) - added_count = BATTERY_TEXT_ON_COUNT; - else - added_count = BATTERY_TEXT_OFF_COUNT; - - if(type == INDICATOR_WIN_PORT) - { - ret = PORT_NOTI_ICON_COUNT + added_count; - } - else - { - ret = LAND_NOTI_ICON_COUNT + added_count; - } - - return ret; -} - -int indicator_get_system_list_index_count(int type) -{ - int ret = 0; - - if(type == INDICATOR_WIN_PORT) - { - ret = PORT_SYSTEM_ICON_COUNT; - } - else - { - ret = LAND_SYSTEM_ICON_COUNT; - } - - return ret; -} - -int indicator_get_max_count_in_non_fixed_list(int type) -{ - int added_count = 0; - int ret = 0; - int status = 0; - - ret = vconf_get_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, &status); - - if (ret != OK) - { - ERR("Fail to get vconfkey : %s", - VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL); - } - - if (status == EINA_TRUE) - added_count = BATTERY_TEXT_ON_COUNT; - else - added_count = BATTERY_TEXT_OFF_COUNT; - - if(type == INDICATOR_WIN_PORT) - { - ret = PORT_NONFIXED_ICON_COUNT + added_count; - } - else - { - ret = LAND_NONFIXED_ICON_COUNT + added_count; - } - - return ret; -} - -Icon_AddType indicator_is_enable_to_insert_in_non_fixed_list(Indicator_Icon_Object *obj) -{ - Indicator_Icon_Object *icon; - Eina_List *l; - - int higher_cnt = 0; - int same_cnt = 0; - int same_top_cnt = 0; - int lower_cnt = 0; - int system_cnt = indicator_get_count_in_system_list(obj->win_type); - int noti_cnt = indicator_get_count_in_noti_list(obj->win_type); - int total_cnt = system_cnt + noti_cnt; - Eina_List * tmpList = NULL; - - if(obj->area == INDICATOR_ICON_AREA_SYSTEM ) - { - tmpList = _view_system_list[obj->win_type]; - } - else if(obj->area == INDICATOR_ICON_AREA_NOTI) - { - tmpList = _view_noti_list[obj->win_type]; - } - - EINA_LIST_FOREACH(tmpList, l, icon) { - if (!strcmp(icon->name, obj->name)) - return CANNOT_ADD; - - if (icon->priority > obj->priority) - ++higher_cnt; - - else if (icon->priority == obj->priority) { - ++same_cnt; - if (icon->always_top == EINA_TRUE) - ++same_top_cnt; - } else - lower_cnt++; - } - - INFO("[INSERT ENABLE] : %d %d %d %d %d %d", - higher_cnt, lower_cnt, same_cnt, same_top_cnt, - indicator_get_max_count_in_non_fixed_list(obj->win_type), system_cnt); - INFO("[INSERT ENABLE2] : %d %d %d", - obj->area, system_cnt, noti_cnt); - - if(obj->area == INDICATOR_ICON_AREA_SYSTEM ) - { - if (higher_cnt + same_cnt + lower_cnt >= indicator_get_system_list_index_count(obj->win_type)) - { - if (obj->always_top == EINA_TRUE) - { - if(same_top_cnt>=indicator_get_system_list_index_count(obj->win_type)) - { - DBG("[CANNOT_ADD] %d",same_top_cnt); - return CANNOT_ADD; - } - else - { - DBG("[CAN_ADD_WITH_DEL_SYSTEM]"); - return CAN_ADD_WITH_DEL_SYSTEM; - } - } - else - { - if(higher_cnt >= indicator_get_system_list_index_count(obj->win_type)) - { - DBG("[CANNOT_ADD]"); - return CANNOT_ADD; - } - else if(higher_cnt+same_cnt >= indicator_get_system_list_index_count(obj->win_type)) - { - DBG("[CAN_ADD_WITH_DEL_SYSTEM]"); - return CAN_ADD_WITH_DEL_SYSTEM; - } - else - { - DBG("[CAN_ADD_WITH_DEL_SYSTEM]"); - return CAN_ADD_WITH_DEL_SYSTEM; - } - } - } - else - { - return CAN_ADD_WITHOUT_DEL; - } - } - else - { - if(noti_cnt>=indicator_get_noti_list_index_count(obj->win_type)) - { - - DBG("[CAN_ADD_WITH_DEL_NOTI]"); - return CAN_ADD_WITH_DEL_NOTI; - } - else - { - INFO("[CAN_ADD_WITHOUT_DEL]"); - return CAN_ADD_WITHOUT_DEL; - } - } - - return CANNOT_ADD; -} - -int indicator_util_get_priority_in_move_area(win_info *win, Evas_Coord curr_x, - Evas_Coord curr_y) -{ - Evas_Coord x, y, h, w; - - evas_object_geometry_get(win->_fixed_box[INDICATOR_PRIORITY_FIXED1], - &x, &y, &h, &w); - INFO("[Current Location] %d %d %d %d %d %d", - x, y, h, w, curr_x, curr_y); - - if (curr_x >= x - CORRECTION && curr_x <= x+h + CORRECTION) { - if (curr_y == -1) - return INDICATOR_PRIORITY_FIXED1; - else if (curr_y >= y - CORRECTION && curr_y <= y+h + CORRECTION) - return INDICATOR_PRIORITY_FIXED1; - } - - - return -1; -} - -int indicator_util_check_indicator_area(win_info *win, Evas_Coord curr_x, Evas_Coord curr_y) -{ - Evas_Coord x, y, w, h; - - evas_object_geometry_get(win->layout_main, - &x, &y, &w, &h); - - INFO("[indicator area] [%d, %d] [wxh][%dx%d], cur[%d, %d]", - x, y, w, h, curr_x, curr_y); - - if (curr_x >= x && curr_x < x + w && curr_y >= y && curr_y < y + h) - return 1; - - return 0; -} - -int indicator_util_check_home_icon_area(win_info *win, Evas_Coord curr_x, Evas_Coord curr_y) -{ - Evas_Coord x, y, w, h; - - evas_object_geometry_get(win->_fixed_box[INDICATOR_PRIORITY_FIXED5], - &x, &y, &w, &h); - - INFO("[Home icon area] [%d, %d] [wxh][%dx%d], cur[%d, %d]", - x, y, w, h, curr_x, curr_y); - - if (curr_x >= x && curr_x < x + w && curr_y >= y && curr_y < y + h) - return 1; - - return 0; -} - -static void indicator_util_icon_state(int win_type, int bShow) -{ - DBG("win_type(%d) Show(%d)",win_type,bShow); - indicator_icon_show_state[win_type] = bShow; -} - -void indicator_util_show_hide_icons(void* data,int bShow, int bEffect) -{ - win_info *win = (win_info *)data; - retif(data == NULL, , "Invalid parameter!"); - - if(bShow) - { - indicator_util_icon_state(win->type,1); - } - else - { - indicator_util_icon_state(win->type,0); - } - - if(bEffect) - { - if(bShow) - { - indicator_signal_emit_by_win(data,"indicator.clip.show", "indicator.prog"); - indicator_signal_emit_by_win(data,"indicator.noti.show", "indicator.prog"); - } - else - { - indicator_signal_emit_by_win(data,"indicator.clip.hide", "indicator.prog"); - indicator_signal_emit_by_win(data,"indicator.noti.hide", "indicator.prog"); - } - } - else - { - if(bShow) - { - indicator_signal_emit_by_win(data,"indicator.clip.show.noeffect", "indicator.prog"); - indicator_signal_emit_by_win(data,"indicator.noti.show.noeffect", "indicator.prog"); - } - else - { - indicator_signal_emit_by_win(data,"indicator.clip.hide.noeffect", "indicator.prog"); - indicator_signal_emit_by_win(data,"indicator.noti.hide.noeffect", "indicator.prog"); - } - } -} - -Eina_Bool indicator_util_is_show_icon(Indicator_Icon_Object *obj) -{ - retif(obj == NULL, FAIL, "Invalid parameter!"); - - if (obj->area == INDICATOR_ICON_AREA_FIXED) - { - if (eina_list_data_find(_view_fixed_list[obj->win_type], obj)) - return 1; - else - return 0; - } - else if(obj->area == INDICATOR_ICON_AREA_SYSTEM) - { - if (eina_list_data_find(_view_system_list[obj->win_type], obj)) - return 1; - else - return 0; - } - - else { - if (eina_list_data_find(_view_noti_list[obj->win_type], obj)) - return 1; - else - return 0; - } -} -int indicator_util_handle_animated_gif(Indicator_Icon_Object *icon) -{ - int bPlay = TRUE; - int val = 0; - - retif(icon == NULL, FAIL, "Invalid parameter!"); - Evas_Object *icon_eo = evas_object_data_get(icon->img_obj.obj, "imgicon"); - - if(elm_image_animated_available_get(icon_eo)== EINA_FALSE) - { - return FALSE; - } - - if (vconf_get_int(VCONFKEY_PM_STATE, &val) < 0) { - ERR("Cannot get VCONFKEY_PM_STATE"); - return FALSE; - } - - switch(val) - { - case VCONFKEY_PM_STATE_LCDOFF : - bPlay = FALSE; - break; - case VCONFKEY_PM_STATE_NORMAL : - bPlay = TRUE; - break; - default: - bPlay = TRUE; - break; - } - - if(bPlay == TRUE) - { - if(elm_image_animated_get(icon_eo)==EINA_FALSE) - { - elm_image_animated_set(icon_eo,EINA_TRUE); - } - - if(elm_image_animated_play_get(icon_eo) == EINA_FALSE) - { - elm_image_animated_play_set(icon_eo, EINA_TRUE); - INFO("PLAY ANIMATED GIF ICON(%s)",icon->name); - } - } - else - { - if(elm_image_animated_play_get(icon_eo) == EINA_TRUE) - { - elm_image_animated_play_set(icon_eo, EINA_FALSE); - INFO("STOP ANIMATED GIF ICON(%s)",icon->name); - } - } - - return TRUE; -} - diff --git a/daemon/indicator_box_util.h b/daemon/indicator_box_util.h deleted file mode 100755 index 9c7b326..0000000 --- a/daemon/indicator_box_util.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 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. - */ - - -#ifndef __INDICATOR_BOX_UTIL_H__ -#define __INDICATOR_BOX_UTIL_H__ - -#include -#include "indicator.h" - -typedef enum _Icon_AddType { - CANNOT_ADD = -1, - CAN_ADD_WITH_DEL_SYSTEM, - CAN_ADD_WITH_DEL_NOTI, - CAN_ADD_WITHOUT_DEL, -} Icon_AddType; - -typedef enum _Icon_Display_Count { - BATTERY_TEXT_ON_COUNT = 0, - BATTERY_TEXT_OFF_COUNT = 0, - PORT_NONFIXED_ICON_COUNT = 6, - LAND_NONFIXED_ICON_COUNT = 14, - PORT_NOTI_ICON_COUNT = 4, - LAND_NOTI_ICON_COUNT = 9, - PORT_SYSTEM_ICON_COUNT = 2, - LAND_SYSTEM_ICON_COUNT = 5, -} Icon_Display_Count; - -extern int icon_box_pack(Indicator_Icon_Object *icon); -extern int icon_box_pack_append(Indicator_Icon_Object *icon); -extern int icon_box_unpack(Indicator_Icon_Object *icon); -extern int icon_box_init(win_info *win); -extern int icon_box_fini(win_info *win); -extern void indicator_util_update_display(win_info *win); -extern unsigned int indicator_get_count_in_fixed_list(int type); -extern unsigned int indicator_get_count_in_system_list(int type); -extern unsigned int indicator_get_count_in_noti_list(int type); -extern void indicator_set_count_in_non_fixed_list(int angle, int status); -extern int indicator_get_max_count_in_non_fixed_list(int type); -extern Icon_AddType indicator_is_enable_to_insert_in_non_fixed_list(Indicator_Icon_Object *obj); -extern int indicator_util_get_priority_in_move_area(win_info *win, Evas_Coord, Evas_Coord); -int indicator_util_check_indicator_area(win_info *win,Evas_Coord curr_x, Evas_Coord curr_y); -int indicator_util_check_home_icon_area(win_info *win,Evas_Coord curr_x, Evas_Coord curr_y); -void indicator_util_show_hide_icons(void* data, int bShow, int bEffect); -extern Eina_Bool indicator_util_is_show_icon(Indicator_Icon_Object *obj); -int indicator_util_handle_animated_gif(Indicator_Icon_Object *icon); - -#endif /*__INDICATOR_BOX_UTIL_H__*/ diff --git a/daemon/indicator_icon_list.c b/daemon/indicator_icon_list.c deleted file mode 100755 index 21c9295..0000000 --- a/daemon/indicator_icon_list.c +++ /dev/null @@ -1,353 +0,0 @@ -/* - * Copyright 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. - */ - - -#include "common.h" -#include "indicator.h" -#include "indicator_icon_list.h" -#include "indicator_icon_util.h" - -static Eina_List *fixed_icon_list[INDICATOR_WIN_MAX] = {NULL,}; -static Eina_List *system_icon_list[INDICATOR_WIN_MAX] = {NULL,}; -static Eina_List *noti_icon_list[INDICATOR_WIN_MAX] = {NULL,}; - - -void indicator_icon_object_free(Indicator_Icon_Object *icon) -{ - if (icon) { - DBG("%s!",icon->name); - if (icon->obj_exist == EINA_TRUE) { - if (indicator_util_icon_del(icon) == EINA_TRUE) { - icon->obj_exist = EINA_FALSE; - icon->txt_obj.obj = NULL; - icon->img_obj.obj = NULL; - } - } - } -} - -static int indicator_icon_list_free(Eina_List *list) -{ - Eina_List *l; - Eina_List *l_next; - Indicator_Icon_Object *data; - - retif(list == NULL, OK, "Empty List!"); - - EINA_LIST_FOREACH_SAFE(list, l, l_next, data) { - indicator_icon_object_free(data); - list = eina_list_remove_list(list, l); - if (eina_error_get()) - return FAIL; - } - eina_list_free(list); - list = NULL; - return eina_error_get(); -} - -int indicator_icon_all_list_free(void) -{ - int i = 0; - for(i=0;iname); - - if (obj->area == INDICATOR_ICON_AREA_FIXED) - { - fixed_icon_list[obj->win_type] = eina_list_remove(fixed_icon_list[obj->win_type], obj); - - EINA_LIST_REVERSE_FOREACH(fixed_icon_list[obj->win_type], l, data) { - if (data->priority == obj->priority - &&data->always_top == EINA_TRUE) - continue; - - if (data->priority <= obj->priority) { - fixed_icon_list[obj->win_type] = eina_list_append_relative_list( - fixed_icon_list[obj->win_type], obj, l); - return eina_error_get(); - } - } - - fixed_icon_list[obj->win_type] = eina_list_prepend(fixed_icon_list[obj->win_type], obj); - } - else if(obj->area == INDICATOR_ICON_AREA_SYSTEM) - { - system_icon_list[obj->win_type] = eina_list_remove(system_icon_list[obj->win_type], obj); - - EINA_LIST_REVERSE_FOREACH(system_icon_list[obj->win_type], l, data) { - if (data->priority == obj->priority - &&data->always_top == EINA_TRUE) { - continue; - } - if (data->priority <= obj->priority) { - system_icon_list[obj->win_type] = - eina_list_append_relative_list( - system_icon_list[obj->win_type], obj, l); - return eina_error_get(); - } - } - - system_icon_list[obj->win_type] = eina_list_prepend(system_icon_list[obj->win_type], obj); - } - else - { - noti_icon_list[obj->win_type] = eina_list_remove(noti_icon_list[obj->win_type], obj); - - EINA_LIST_REVERSE_FOREACH(noti_icon_list[obj->win_type], l, data) { - if (data->priority == obj->priority - &&data->always_top == EINA_TRUE) { - continue; - } - if (data->priority >= obj->priority) { - noti_icon_list[obj->win_type] = - eina_list_append_relative_list( - noti_icon_list[obj->win_type], obj, l); - return eina_error_get(); - } - } - - noti_icon_list[obj->win_type] = eina_list_prepend(noti_icon_list[obj->win_type], obj); - } - - return eina_error_get(); -} - -int indicator_icon_list_insert(Indicator_Icon_Object *obj) -{ - Eina_List *l; - Indicator_Icon_Object *data; - - retif(obj == NULL || obj->name == NULL, FAIL, "Invalid parameter!"); - - DBG("%s!",obj->name); - - if (obj->area == INDICATOR_ICON_AREA_FIXED) - { - EINA_LIST_REVERSE_FOREACH(fixed_icon_list[obj->win_type], l, data) { - retif(data->name == obj->name, FAIL, - "%s is already exist in the list!", obj->name); - } - - obj->wish_to_show = EINA_FALSE; - - EINA_LIST_REVERSE_FOREACH(fixed_icon_list[obj->win_type], l, data) { - if (data->priority == obj->priority - && data->always_top == EINA_TRUE) - continue; - - if (data->priority <= obj->priority) { - fixed_icon_list[obj->win_type] = eina_list_append_relative_list( - fixed_icon_list[obj->win_type], obj, l); - return eina_error_get(); - } - } - fixed_icon_list[obj->win_type] = eina_list_prepend(fixed_icon_list[obj->win_type], obj); - } - else if(obj->area == INDICATOR_ICON_AREA_SYSTEM) - { - EINA_LIST_REVERSE_FOREACH(system_icon_list[obj->win_type], l, data) { - retif(data->name == obj->name, FAIL, - "%s is already exist in the list!", obj->name); - } - - obj->wish_to_show = EINA_FALSE; - - EINA_LIST_REVERSE_FOREACH(system_icon_list[obj->win_type], l, data) { - if (data->priority == obj->priority && - data->always_top == EINA_TRUE) - continue; - - if (data->priority <= obj->priority) { - system_icon_list[obj->win_type] = - eina_list_append_relative_list( - system_icon_list[obj->win_type], obj, l); - return eina_error_get(); - } - } - - system_icon_list[obj->win_type] = eina_list_prepend(system_icon_list[obj->win_type], obj); - } - else - { - EINA_LIST_REVERSE_FOREACH(noti_icon_list[obj->win_type], l, data) { - retif(data->name == obj->name, FAIL, - "%s is already exist in the list!", obj->name); - } - - obj->wish_to_show = EINA_FALSE; - - EINA_LIST_REVERSE_FOREACH(noti_icon_list[obj->win_type], l, data) { - if (data->priority == obj->priority && - data->always_top == EINA_TRUE) - continue; - - if (data->priority >= obj->priority) { - noti_icon_list[obj->win_type] = - eina_list_append_relative_list( - noti_icon_list[obj->win_type], obj, l); - DBG("Append"); - return eina_error_get(); - } - } - noti_icon_list[obj->win_type] = eina_list_prepend(noti_icon_list[obj->win_type], obj); - DBG("Prepend"); - } - - return eina_error_get(); -} - -int indicator_icon_list_remove(Indicator_Icon_Object *obj) -{ - DBG("%s!",obj->name); - - if (obj->area == INDICATOR_ICON_AREA_FIXED) - { - retif(fixed_icon_list[obj->win_type] == NULL - || obj == NULL, FAIL, "Invalid parameter!"); - fixed_icon_list[obj->win_type] = eina_list_remove(fixed_icon_list[obj->win_type], obj); - } - else if(obj->area == INDICATOR_ICON_AREA_SYSTEM) - { - retif(system_icon_list[obj->win_type] == NULL - || obj == NULL, FAIL, "Invalid parameter!"); - system_icon_list[obj->win_type] = eina_list_remove(system_icon_list[obj->win_type], obj); - } - else - { - retif(noti_icon_list[obj->win_type] == NULL - || obj == NULL, FAIL, "Invalid parameter!"); - noti_icon_list[obj->win_type] = eina_list_remove(noti_icon_list[obj->win_type], obj); - } - - return eina_error_get(); -} - -Indicator_Icon_Object -*indicator_get_wish_to_show_icon(int win_type, int area, int priority) -{ - Eina_List *l; - Indicator_Icon_Object *data = NULL; - Indicator_Icon_Object *ret = NULL; - - if (area == INDICATOR_ICON_AREA_FIXED) - { - EINA_LIST_REVERSE_FOREACH(fixed_icon_list[win_type], l, data) { - if (data->priority == priority - && data->wish_to_show == EINA_TRUE - && data->exist_in_view == EINA_FALSE) - { - ret = data; - break; - } - } - - } - else if(area == INDICATOR_ICON_AREA_SYSTEM) - { - EINA_LIST_REVERSE_FOREACH(system_icon_list[win_type], l, data) { - if (data->wish_to_show == EINA_TRUE - && data->exist_in_view == EINA_FALSE) - { - ret = data; - break; - } - } - - } - else - { - EINA_LIST_REVERSE_FOREACH(noti_icon_list[win_type], l, data) { - if (data->wish_to_show == EINA_TRUE - && data->exist_in_view == EINA_FALSE) - { - ret = data; - break; - } - } - - } - - if(ret != NULL) - DBG("%d,%s",area, ret->name); - else - ret = NULL; - - return ret; -} - -Indicator_Icon_Object -*indicator_get_wish_to_remove_icon(int win_type, int area, int priority) -{ - Eina_List *l; - Indicator_Icon_Object *data = NULL; - Indicator_Icon_Object *ret = NULL; - - if (area == INDICATOR_ICON_AREA_FIXED) - { - EINA_LIST_REVERSE_FOREACH(fixed_icon_list[win_type], l, data) { - if (data->priority == priority - && data->wish_to_show == EINA_TRUE) - { - ret = data; - break; - } - } - } - else if (area == INDICATOR_ICON_AREA_SYSTEM) - { - EINA_LIST_FOREACH(system_icon_list[win_type], l, data) { - if (data->wish_to_show == EINA_TRUE - && data->always_top == EINA_FALSE - && data->exist_in_view == EINA_TRUE) - { - ret = data; - break; - } - } - } - else - { - EINA_LIST_FOREACH(noti_icon_list[win_type], l, data) { - if (data->wish_to_show == EINA_TRUE - && data->always_top == EINA_FALSE - && data->exist_in_view == EINA_TRUE) - { - ret = data; - break; - } - } - } - - - return ret; -} - diff --git a/daemon/indicator_icon_list.h b/daemon/indicator_icon_list.h deleted file mode 100755 index 8179098..0000000 --- a/daemon/indicator_icon_list.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 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. - */ - - -#ifndef __INDICATOR_ICON_LIST_H__ -#define __INDICATOR_ICON_LIST_H__ - -#include "indicator.h" -extern void indicator_icon_object_free(Indicator_Icon_Object *icon); -extern int indicator_icon_all_list_free(void); -extern int indicator_icon_list_insert(Indicator_Icon_Object *obj); -extern int indicator_icon_list_remove(Indicator_Icon_Object *obj); -extern int indicator_icon_list_update(Indicator_Icon_Object *obj); -extern Indicator_Icon_Object -*indicator_get_wish_to_show_icon(int win_type, int area, int priority); -extern Indicator_Icon_Object -*indicator_get_wish_to_remove_icon(int win_type, int area, int priority); -extern Indicator_Icon_Object -*indicator_get_lowest_priority_icon_in_non_fixed_list(int area); -#endif /*__INDICATOR_ICON_LIST_H__*/ diff --git a/daemon/indicator_icon_util.c b/daemon/indicator_icon_util.c deleted file mode 100755 index 425b5af..0000000 --- a/daemon/indicator_icon_util.c +++ /dev/null @@ -1,524 +0,0 @@ -/* - * Copyright 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. - */ - - -#include -#include "common.h" -#include "indicator_box_util.h" -#include "indicator_icon_util.h" -#include "indicator_icon_list.h" -#include "indicator_ui.h" -#include "indicator_gui.h" -#include "indicator_util.h" - -static unsigned int update_icon_flag = 1; - -static void _animation_set(Indicator_Icon_Object *icon, int type) -{ - Evas_Object *img_edje, *txt_edje; - - retif(icon == NULL, , "Invalid parameter!"); - - const char *BLINK_SIGNAL = "icon,state,blink"; - const char *ROATATE_SIGNAL = "icon,state,roate"; - const char *METRONOME_SIGNAL = "icon,state,metronome"; - const char *DEFAULT = "icon,state,default"; - - const char *send_signal = DEFAULT; - - switch (type) { - case ICON_ANI_BLINK: - send_signal = BLINK_SIGNAL; - break; - case ICON_ANI_ROTATE: - send_signal = ROATATE_SIGNAL; - break; - case ICON_ANI_METRONOME: - send_signal = METRONOME_SIGNAL; - break; - default: - break; - } - - switch (icon->type) { - case INDICATOR_IMG_ICON: - img_edje = elm_layout_edje_get(icon->img_obj.obj); - edje_object_signal_emit(img_edje, send_signal, - "elm.swallow.icon"); - break; - case INDICATOR_TXT_ICON: - txt_edje = elm_layout_edje_get(icon->txt_obj.obj); - edje_object_signal_emit(txt_edje, send_signal, - "elm.swallow.icon"); - break; - case INDICATOR_TXT_WITH_IMG_ICON: - txt_edje = elm_layout_edje_get(icon->txt_obj.obj); - img_edje = elm_layout_edje_get(icon->img_obj.obj); - edje_object_signal_emit(txt_edje, send_signal, - "elm.swallow.lefticon"); - edje_object_signal_emit(img_edje, send_signal, - "elm.swallow.righticon"); - break; - default: - break; - } -} - -void indicator_util_icon_animation_set(Indicator_Icon_Object *icon, - enum indicator_icon_ani type) -{ - retif(icon == NULL, , "Invalid parameter!"); - - icon->ani = type; - if (icon->obj_exist) - { - _animation_set(icon, type); - } -} - -static Evas_Object *_img_icon_add(win_info *win, Indicator_Icon_Object *icon) -{ - struct appdata *ad = NULL; - char path[PATH_MAX]; - Evas_Object *evas_icon; - Evas_Object *ly; - int area = 0; - char *imgpath = NULL; - int width = 0; - int height = 0; - - retif(icon == NULL , NULL, "Invalid parameter!"); - retif(icon->ad == NULL || icon->img_obj.data == NULL, NULL, "Invalid parameter!"); - retif(win == NULL || win->layout_main == NULL, NULL, "Invalid parameter!"); - - ad = icon->ad; - area = icon->area; - imgpath = icon->img_obj.data; - - if (icon->img_obj.width <= 0) - width = icon->img_obj.width = DEFAULT_ICON_WIDTH; - if (icon->img_obj.height<= 0) - height = icon->img_obj.height = DEFAULT_ICON_HEIGHT; - - memset(path, 0x00, sizeof(path)); - - ly = elm_layout_add(win->layout_main); - retif(ly == NULL, NULL, "Cannot create layout object!"); - - if (area == INDICATOR_ICON_AREA_FIXED) - elm_layout_file_set(ly, ICON_THEME_FILE, - "elm/indicator/icon/base"); - else - elm_layout_file_set(ly, ICON_NONFIXED_THEME_FILE, - "elm/indicator/icon/base"); - - evas_icon = elm_image_add(ly); - retif(evas_icon == NULL, NULL, "Cannot create elm icon object!"); - - if (strncmp(imgpath, "/", 1) != 0) { - snprintf(path, sizeof(path), "%s/%s", get_icon_dir(), imgpath); - } else { - strncpy(path,imgpath,sizeof(path)-1); - } - - if (!ecore_file_exists(path)) - { - ERR("icon file does not exist!!: %s",path); - } - - elm_image_file_set(evas_icon, path, NULL); - - evas_object_size_hint_min_set(evas_icon, width * elm_config_scale_get(), - height * elm_config_scale_get()); - - elm_object_part_content_set(ly, "elm.swallow.icon", evas_icon); - - evas_object_data_set(ly, "imgicon", evas_icon); - evas_object_size_hint_min_set(ly, width * elm_config_scale_get(), - height * elm_config_scale_get()); - evas_object_hide(ly); - return ly; -} - -static Evas_Object *_txt_icon_add(win_info *win, Indicator_Icon_Object *icon) -{ - struct appdata *ad = NULL; - char *color_added_str = NULL; - Evas_Object *evas_icon; - Evas_Object *ly; - char *txt = NULL; - - retif(icon == NULL , NULL, "Invalid parameter!"); - retif(icon->ad == NULL || icon->txt_obj.data == NULL, NULL, "Invalid parameter!"); - retif(win == NULL || win->layout_main == NULL, NULL, "Invalid parameter!"); - - ad = icon->ad; - txt = icon->txt_obj.data; - - ly = elm_layout_add(win->layout_main); - elm_layout_file_set(ly, ICON_THEME_FILE, "elm/indicator/icon/base"); - - evas_icon = elm_label_add(ly); - color_added_str = (char *)set_label_text_color(txt); - - elm_object_text_set(evas_icon, color_added_str); - evas_object_size_hint_align_set(evas_icon, 0.5, 0.5); - - elm_object_part_content_set(ly, "elm.swallow.icon", evas_icon); - - evas_object_data_set(ly, "txticon", evas_icon); - evas_object_hide(ly); - - return ly; -} - -char *indicator_util_icon_label_set(const char *buf, char *font_name, - char *font_style, int font_size, void *data) -{ - Eina_Strbuf *temp_buf = NULL; - char *ret_str = NULL; - char *label_font = ICON_FONT_NAME; - char *label_font_style = ICON_FONT_STYLE; - int label_font_size = ICON_FONT_SIZE; - Eina_Bool buf_result = EINA_FALSE; - - retif(data == NULL || buf == NULL, NULL, "Invalid parameter!"); - - temp_buf = eina_strbuf_new(); - if (font_name != NULL) - label_font = font_name; - if (font_style != NULL) - label_font_style = font_style; - if (font_size > 0) - label_font_size = font_size; - - buf_result = eina_strbuf_append_printf(temp_buf, CUSTOM_LABEL_STRING, - label_font, label_font_style, - label_font_size, buf); - - if (buf_result != EINA_FALSE) - ret_str = eina_strbuf_string_steal(temp_buf); - - eina_strbuf_free(temp_buf); - - return ret_str; -} - -Eina_Bool indicator_util_icon_add(win_info *win, Indicator_Icon_Object *icon) -{ - retif(icon == NULL, EINA_FALSE, "Invalid parameter!"); - - switch (icon->type) { - case INDICATOR_TXT_ICON: - icon->txt_obj.obj = _txt_icon_add(win, icon); - break; - case INDICATOR_IMG_ICON: - icon->img_obj.obj = _img_icon_add(win, icon); - break; - case INDICATOR_TXT_WITH_IMG_ICON: - icon->txt_obj.obj = _txt_icon_add(win, icon); - icon->img_obj.obj = _img_icon_add(win, icon); - break; - - default: - ERR("Icon type check error!"); - return EINA_FALSE; - } - _animation_set(icon, icon->ani); - return EINA_TRUE; -} - -Eina_Bool indicator_util_icon_del(Indicator_Icon_Object *icon) -{ - Evas_Object *icon_obj; - retif(icon == NULL, EINA_FALSE, "Invalid parameter!"); - - if (icon->obj_exist != EINA_FALSE) { - if (icon->txt_obj.obj) { - icon_obj = - evas_object_data_get(icon->txt_obj.obj, "txticon"); - evas_object_del(icon_obj); - evas_object_del(icon->txt_obj.obj); - icon->txt_obj.obj = NULL; - } - if (icon->img_obj.obj) { - icon_obj = - evas_object_data_get(icon->img_obj.obj, "imgicon"); - evas_object_del(icon_obj); - evas_object_del(icon->img_obj.obj); - icon->img_obj.obj = NULL; - } - } - return EINA_TRUE; -} - - -static int show_other_icon_in_same_priority(Indicator_Icon_Object *icon) -{ - Indicator_Icon_Object *wish_add_icon; - int area = icon->area; - retif(icon == NULL, FAIL, "Invalid parameter!"); - - wish_add_icon = indicator_get_wish_to_show_icon(icon->win_type, icon->area,icon->priority); - if (wish_add_icon == NULL) - { - DBG("wish_add_icon NULL!"); - return OK; - } - - if (indicator_util_is_show_icon(wish_add_icon)) - { - DBG("Wish Icon is alreay shown!"); - return OK; - } - - if(wish_add_icon!=NULL) - { - DBG("%s icon is shown!", wish_add_icon->name); - } - - if(area ==INDICATOR_ICON_AREA_NOTI) - { - icon_box_pack_append(wish_add_icon); - } - else - { - icon_box_pack(wish_add_icon); - } - - return OK; -} - -static int hide_other_icons_in_view_list(Indicator_Icon_Object *icon) -{ - Indicator_Icon_Object *wish_remove_icon = NULL; - retif(icon == NULL, FAIL, "Invalid parameter!"); - - if (INDICATOR_ICON_AREA_SYSTEM == icon->area || INDICATOR_ICON_AREA_NOTI == icon->area) - { - Icon_AddType ret; - Eina_Error err; - - ret = indicator_is_enable_to_insert_in_non_fixed_list(icon); - icon->wish_to_show = EINA_TRUE; - err = indicator_icon_list_update(icon); - - switch (ret) { - case CAN_ADD_WITH_DEL_NOTI: - wish_remove_icon = indicator_get_wish_to_remove_icon(icon->win_type, INDICATOR_ICON_AREA_NOTI,0); - - icon_box_unpack(wish_remove_icon); - - retif(wish_remove_icon == NULL, FAIL, "Unexpected Error : CAN_ADD_WITH_DEL_NOTI"); - break; - case CAN_ADD_WITH_DEL_SYSTEM: - wish_remove_icon = indicator_get_wish_to_remove_icon(icon->win_type, INDICATOR_ICON_AREA_SYSTEM,0); - - icon_box_unpack(wish_remove_icon); - retif(wish_remove_icon == NULL, FAIL, "Unexpected Error : CAN_ADD_WITH_DEL_SYSTEM"); - break; - case CAN_ADD_WITHOUT_DEL: - break; - case CANNOT_ADD: - DBG("[ICON UTIL SYSTEM] %s icon CANNOT_ADD!",icon->name); - return FAIL; - break; - } - - return OK; - } - else if (INDICATOR_ICON_AREA_FIXED == icon->area) - { - wish_remove_icon = indicator_get_wish_to_remove_icon(icon->win_type, INDICATOR_ICON_AREA_FIXED,icon->priority); - - if (wish_remove_icon == NULL) - { - DBG("[ICON UTIL FIXED] NULL!"); - return OK; - } - - if (wish_remove_icon == icon) - { - return FAIL; - } - - icon->wish_to_show = EINA_TRUE; - indicator_icon_list_update(icon); - - if (wish_remove_icon->always_top) - { - DBG("[ICON UTIL FIXED] %s!", wish_remove_icon->name); - return FAIL; - } - - DBG("[ICON UTIL FIXED] %s icon is hidden!", - wish_remove_icon->name); - icon_box_unpack(wish_remove_icon); - } - return OK; -} - -int indicator_util_layout_del(win_info *win) -{ - return icon_box_fini(win); -} - -int indicator_util_layout_add(win_info *win) -{ - retif(win == NULL - || win->layout_main == NULL, FAIL, "Invalid parameter!"); - indicator_util_layout_del(win); - return icon_box_init(win); -} - - -int indicator_util_icon_width_set(Indicator_Icon_Object *icon) -{ - return 0; -} - -static int _icon_update(Indicator_Icon_Object *icon) -{ - struct appdata *ad = NULL; - Evas_Object *txt_eo, *img_eo; - char buf[PATH_MAX]; - - retif(icon == NULL || icon->ad == NULL, FAIL, "Invalid parameter!"); - ad = icon->ad; - - memset(buf, 0x00, sizeof(buf)); - - if (icon->type == INDICATOR_IMG_ICON - || icon->type == INDICATOR_TXT_WITH_IMG_ICON) { - img_eo = evas_object_data_get(icon->img_obj.obj, "imgicon"); - - if (strncmp(icon->img_obj.data, "/", 1) != 0) { - snprintf(buf, sizeof(buf), "%s/%s", get_icon_dir(), - icon->img_obj.data); - elm_image_file_set(img_eo, buf, NULL); - } else { - retif(icon->img_obj.data[0] == '\0', FAIL, - "Invalid parameter!"); - elm_image_file_set(img_eo, icon->img_obj.data, NULL); - } - - if (icon->img_obj.width >= 0 && icon->img_obj.height>=0) { - evas_object_size_hint_min_set(img_eo, - icon->img_obj.width * elm_config_scale_get(), - icon->img_obj.height * elm_config_scale_get()); - } else { - evas_object_size_hint_min_set(img_eo, - DEFAULT_ICON_WIDTH * elm_config_scale_get(), - DEFAULT_ICON_HEIGHT * elm_config_scale_get()); - } - } - - if (icon->type == INDICATOR_TXT_ICON - || icon->type == INDICATOR_TXT_WITH_IMG_ICON) { - char *color_added_str = NULL; - txt_eo = evas_object_data_get(icon->txt_obj.obj, "txticon"); - color_added_str = - (char *)set_label_text_color(icon->txt_obj.data); - elm_object_text_set(txt_eo, color_added_str); - free(color_added_str); - } - return OK; -} - -void indicator_util_icon_show(Indicator_Icon_Object *icon) -{ - struct appdata *ad = (struct appdata *)icon->ad; - - retif(icon == NULL, , "Invalid parameter!"); - - if (icon->obj_exist != EINA_FALSE) - { - _icon_update(icon); - } - - if (hide_other_icons_in_view_list(icon) == FAIL) - { - return; - } - - icon->wish_to_show = EINA_TRUE; - DBG("[ICON UTIL] %s %d icon is shown!", icon->name, icon->win_type); - - icon_box_pack(icon); - - indicator_util_update_display(&(ad->win[icon->win_type])); -} - -void indicator_util_icon_hide(Indicator_Icon_Object *icon) -{ - int ret; - - retif(icon == NULL, , "Invalid parameter!"); - - icon->wish_to_show = EINA_FALSE; - - DBG("%s icon is hidden!", icon->name); - - if (icon->exist_in_view == EINA_TRUE) { - ret = icon_box_unpack(icon); - - if (ret == FAIL) - ERR("Failed to unpack %s!", icon->name); - - show_other_icon_in_same_priority(icon); - } - - struct appdata *ad = (struct appdata *)icon->ad; - - indicator_util_update_display(&(ad->win[icon->win_type])); -} - -void indicator_util_event_count_set(int count, void *data) -{ - static int _cnt = -1; - char buf[1024]; - - retif(data == NULL, , "Cannot get layout!"); - - if (_cnt != count) { - memset(buf, 0x00, sizeof(buf)); - if (count) { - snprintf(buf, sizeof(buf), "%d", count); - indicator_signal_emit(data,"badge,show,1","elm.image.badge"); - } else { - indicator_signal_emit(data,"badge,hide,1","elm.image.badge"); - } - - indicator_part_text_emit(data,"elm.text.badge", buf); - _cnt = count; - } -} - -unsigned int indicator_util_max_visible_event_count(int type) -{ - return indicator_get_max_count_in_non_fixed_list(type); -} - -unsigned int indicator_util_get_update_flag(void) -{ - return update_icon_flag; -} - -void indicator_util_set_update_flag(unsigned int val) -{ - INFO("SET UPDATE FLAG %d",val); - update_icon_flag = val; -} diff --git a/daemon/indicator_icon_util.h b/daemon/indicator_icon_util.h deleted file mode 100755 index aba3e50..0000000 --- a/daemon/indicator_icon_util.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright 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. - */ - -#ifndef __INDICATOR_ICON_UTIL_H__ -#define __INDICATOR_ICON_UTIL_H__ - -#include -#include "indicator.h" -#include "indicator_ui.h" - -enum { - ICON_STATE_HIDDEN = 0, - ICON_STATE_SHOWN -}; - -enum indicator_view_mode { - INDICATOR_KEEP_VIEW = -1, - INDICATOR_FULL_VIEW, - INDICATOR_CLOCK_VIEW -}; - -extern int indicator_util_layout_add(win_info *win); -extern int indicator_util_layout_del(win_info *win); - -extern void indicator_util_icon_show(Indicator_Icon_Object *obj); -extern void indicator_util_icon_hide(Indicator_Icon_Object *obj); -extern void indicator_util_icon_animation_set(Indicator_Icon_Object *icon, - enum indicator_icon_ani type); -extern int indicator_util_icon_width_set(Indicator_Icon_Object *icon); -extern char *indicator_util_icon_label_set(const char *buf, char *font_name, - char *font_style, int font_size, - void *data); -extern Eina_Bool indicator_util_icon_add(win_info *win,Indicator_Icon_Object *icon); -extern Eina_Bool indicator_util_icon_del(Indicator_Icon_Object *icon); - -extern void indicator_util_event_count_set(int count, void *data); -extern unsigned int indicator_util_max_visible_event_count(int type); -extern unsigned int indicator_util_get_update_flag(void); -void indicator_util_set_update_flag(unsigned int val); - -#endif /*__INDICATOR_ICON_UTIL_H__*/ diff --git a/daemon/indicator_ui.c b/daemon/indicator_ui.c deleted file mode 100755 index 7f1b430..0000000 --- a/daemon/indicator_ui.c +++ /dev/null @@ -1,1588 +0,0 @@ -/* - * Copyright 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. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "common.h" -#include "indicator_box_util.h" -#include "indicator_icon_util.h" -#include "indicator_ui.h" -#include "indicator_gui.h" -#include "modules.h" -#include "indicator_util.h" - -#define GRP_MAIN "indicator" - -#define WIN_TITLE "Illume Indicator" - -#define VCONF_PHONE_STATUS "memory/startapps/sequence" - -#define UNLOCK_ENABLED 0 -#define TIMEOUT 5 - -#ifdef HOME_KEY_EMULATION - -#define PROP_HWKEY_EMULATION "_HWKEY_EMULATION" -#define KEY_MSG_PREFIX_PRESS "P:" -#define KEY_MSG_PREFIX_RELEASE "R:" -#define KEY_MSG_PREFIX_PRESS_C "PC" -#define KEY_MSG_PREFIX_RELEASE_C "RC" - -#ifndef KEY_HOME -#define KEY_HOME "XF86Phone" -#endif -#endif - -#define MENUSCREEN_PKG_NAME "com.samsung.menuscreen" -#define APP_TRAY_PKG_NAME "com.samsung.app-tray" - -static Eina_Bool home_button_pressed = EINA_FALSE; -static Eina_Bool show_hide_pressed[INDICATOR_WIN_MAX] = {EINA_FALSE,EINA_FALSE}; -static Ecore_Timer *hide_timer = NULL; - -int indicator_icon_show_state[INDICATOR_WIN_MAX] = {0,}; -int indicator_icon_backup_state[INDICATOR_WIN_MAX] = {0,}; - -static int is_quickpanel_opened = 0; -static int is_apptray_opened = 0; -static int current_angle = 0; -Evas_Coord_Point indicator_press_coord = {0,0}; - -#define STR_ATOM_MV_INDICATOR_GEOMETRY "_E_MOVE_INDICATOR_GEOMETRY" - -static void _change_home_padding(void *data, int angle); -static void _change_nonfixed_icon_padding(void *data, Eina_Bool status); -static void _change_max_nonfixed_icon_count(void *data, - Eina_Bool status, int angle); -static Eina_Bool _change_view(Ecore_X_Window win, void *data); -static int check_system_status(void); - -static int indicator_window_new(void *data); -static int indicator_window_del(void *data); - -static void _indicator_check_battery_percent_on_cb(keynode_t *node, void *data); -static void _indicator_low_bat_cb(void *data); -static void _indicator_lang_changed_cb(void *data); -static void _indicator_region_changed_cb(void *data); -static void _indicator_window_delete_cb(void *data, Evas_Object * obj, - void *event); -static Eina_Bool _indicator_client_message_cb(void *data, int type, - void *event); -static void _indicator_mouse_down_cb(void *data, Evas * e, Evas_Object * obj, - void *event); -static void _indicator_mouse_move_cb(void *data, Evas * e, Evas_Object * obj, - void *event); -static void _indicator_mouse_up_cb(void *data, Evas * e, Evas_Object * obj, - void *event); - - - -static void _change_nonfixed_icon_padding(void *data, Eina_Bool status) -{ - retif(data == NULL, , "Invalid parameter!"); - - if (status == EINA_TRUE) - indicator_signal_emit(data, "change,padding,1", "elm.rect.*"); - else - indicator_signal_emit(data, "change,padding,2", "elm.rect.*"); -} - - -static void _change_max_nonfixed_icon_count(void *data, - Eina_Bool status, int angle) -{ - struct appdata *ad = (struct appdata *)data; - - retif(data == NULL, , "Invalid parameter!"); - - DBG("Current angle : %d", ad->angle); - - indicator_set_count_in_non_fixed_list(ad->angle, status); -} - -static int check_system_status(void) -{ - int ret, value = -1; - - ret = vconf_get_int(VCONFKEY_PWLOCK_STATE, &value); - if (ret == OK && - (value == VCONFKEY_PWLOCK_BOOTING_LOCK || - value == VCONFKEY_PWLOCK_RUNNING_LOCK)) - return FAIL; - - return OK; -} - -static void _change_top_win(enum _win_type type, void *data) -{ - struct appdata *ad = data; - int i = 0; - retif(data == NULL, , "Invalid parameter!"); - - DBG("Current Top Window : %d", type); - ad->top_win = type; - for(i=0;iwin[i])); - } -} - -static char *_get_top_window_name(void *data) -{ - Ecore_X_Window topwin = ecore_x_window_root_first_get(); - Ecore_X_Window active; - static Eina_Strbuf *temp_buf = NULL; - - char *pkgname = NULL; - char *win_name = NULL; - char *ret_name = NULL; - - int pid; - - retif(data == NULL, NULL, "Invalid parameter!"); - - if (ecore_x_window_prop_xid_get(topwin, ECORE_X_ATOM_NET_ACTIVE_WINDOW, - ECORE_X_ATOM_WINDOW, &active, - 1) == FAIL) - return NULL; - - if (ecore_x_netwm_pid_get(active, &pid) == EINA_FALSE) { - Ecore_X_Atom atom; - unsigned char *in_pid; - int num; - - atom = ecore_x_atom_get("X_CLIENT_PID"); - if (ecore_x_window_prop_property_get(topwin, - atom, ECORE_X_ATOM_CARDINAL, - sizeof(int), &in_pid, &num) == EINA_FALSE) { - DBG("Failed to get PID from a window 0x%X", topwin); - - if(in_pid != NULL) - free(in_pid); - - return NULL; - } - pid = *(int *)in_pid; - free(in_pid); - } - - DBG("Window (0x%X) PID is %d", topwin, pid); - - if (app_manager_get_package(pid,&pkgname) != APP_MANAGER_ERROR_NONE) - { - if (ecore_x_netwm_name_get(active, &win_name) == EINA_FALSE) - return NULL; - else - return win_name; - } - - DBG("Pkgname : %s", pkgname); - - temp_buf = eina_strbuf_new(); - eina_strbuf_append_printf(temp_buf, "%s", pkgname); - ret_name = eina_strbuf_string_steal(temp_buf); - eina_strbuf_free(temp_buf); - - if(pkgname != NULL) - free(pkgname); - - return ret_name; -} - -static Eina_Bool _change_view(Ecore_X_Window win, void *data) -{ - char *top_win_name = NULL; - enum _win_type type; - - if (data == NULL) - return EINA_FALSE; - - top_win_name = _get_top_window_name(data); - - if (top_win_name != NULL) { - Eina_Bool ret = EINA_TRUE; - - INFO("TOP WINDOW NAME = %s", top_win_name); - - if (!strncmp(top_win_name, QUICKPANEL_NAME, - strlen(top_win_name))) { - type = TOP_WIN_QUICKPANEL; - ret = EINA_FALSE; - } else if (!strncmp(top_win_name, HOME_SCREEN_NAME, - strlen(top_win_name))) - type = TOP_WIN_HOME_SCREEN; - else if (!strncmp(top_win_name, LOCK_SCREEN_NAME, - strlen(top_win_name))) - type = TOP_WIN_LOCK_SCREEN; - else if (!strncmp(top_win_name, MENU_SCREEN_NAME, - strlen(top_win_name))) - type = TOP_WIN_MENU_SCREEN; - else if (!strncmp(top_win_name, CALL_NAME, - strlen(top_win_name))) - type = TOP_WIN_CALL; - else if (!strncmp(top_win_name, VTCALL_NAME, - strlen(top_win_name))) - type = TOP_WIN_CALL; - else - type = TOP_WIN_NORMAL; - - free(top_win_name); - _change_top_win(type, data); - - return ret; - } else { - type = TOP_WIN_NORMAL; - } - _change_top_win(type, data); - return EINA_TRUE; -} - -static void _indicator_check_battery_percent_on_cb(keynode_t *node, void *data) -{ - struct appdata *ad = (struct appdata *)data; - int ret = FAIL; - int status = 0; - retif(data == NULL, , "Invalid parameter!"); - - ret = vconf_get_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, &status); - - if (ret == OK) { - _change_nonfixed_icon_padding(data, status); - _change_max_nonfixed_icon_count(data, status, ad->angle); - } else - ERR("Fail to get vconfkey : %s", - VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL); -} - -static void _indicator_low_bat_cb(void *data) -{ - INFO("LOW_BATTERY!"); -} - -static void _indicator_lang_changed_cb(void *data) -{ - INFO("CHANGE LANGUAGE!"); - indicator_lang_changed_modules(data); -} - -static void _indicator_region_changed_cb(void *data) -{ - INFO("CHANGE REGION!"); - indicator_region_changed_modules(data); -} - -static void _indicator_window_delete_cb(void *data, Evas_Object * obj, - void *event) -{ - struct appdata *ad = (struct appdata *)data; - retif(data == NULL, , "Invalid parameter!"); - - indicator_window_del(ad); -} - -static void _indicator_notify_pm_state_cb(keynode_t * node, void *data) -{ - - int val = -1; - - if (data == NULL) { - ERR("lockd is NULL"); - return; - } - - if (vconf_get_int(VCONFKEY_PM_STATE, &val) < 0) { - ERR("Cannot get VCONFKEY_PM_STATE"); - return; - } - - DBG("PM state Notification!!(%d)",val); - - switch(val) - { - case VCONFKEY_PM_STATE_LCDOFF: - case VCONFKEY_PM_STATE_SLEEP: - indicator_util_set_update_flag(0); - break; - case VCONFKEY_PM_STATE_NORMAL: - indicator_util_set_update_flag(1); - indicator_wake_up_modules(data); - break; - case VCONFKEY_PM_STATE_LCDDIM: - default: - break; - } - -} - -static void _indicator_notify_apptray_state_cb(keynode_t * node, void *data) -{ - - struct appdata *ad = (struct appdata *)data; - int val = -1; - - if (data == NULL) { - ERR("lockd is NULL"); - return; - } - - if (vconf_get_bool(VCONFKEY_APPTRAY_STATE, &val) < 0) { - ERR("Cannot get VCONFKEY_APPTRAY_STATE"); - return; - } - - DBG("_indicator_notify_apptray_state_cb!!(%d)",val); - - switch(val) - { - case 0: - is_apptray_opened = 0; - indicator_util_show_hide_icons(&(ad->win[INDICATOR_WIN_LAND]),0,1); - if (hide_timer != NULL) { - ecore_timer_del(hide_timer); - hide_timer = NULL; - } - break; - case 1: - is_apptray_opened = 1; - indicator_util_show_hide_icons(&(ad->win[INDICATOR_WIN_LAND]),1,0); - if (hide_timer != NULL) { - ecore_timer_del(hide_timer); - hide_timer = NULL; - } - break; - default: - break; - } - -} - -static void _indicator_power_off_status_cb(keynode_t * node, void *data) -{ - - struct appdata *ad = (struct appdata *)data; - int val = -1; - - if (data == NULL) { - ERR("data is NULL"); - return; - } - - if (vconf_get_int(VCONFKEY_SYSMAN_POWER_OFF_STATUS, &val) < 0) { - ERR("Cannot get VCONFKEY_SYSMAN_POWER_OFF_STATUS"); - return; - } - - DBG("_indicator_power_off_status_cb!!(%d)",val); - - switch(val) - { - case VCONFKEY_SYSMAN_POWER_OFF_DIRECT: - case VCONFKEY_SYSMAN_POWER_OFF_RESTART: - DBG("_indicator_power_off_status_cb : Terminated..."); - app_efl_exit(); - break; - default: - break; - } - -} - -static void _rotate_window(void *data, int new_angle) -{ - retif(data == NULL, , "Invalid parameter!"); - - struct appdata *ad = (struct appdata *)data; - - DBG("_rotate_window = %d",new_angle); - - current_angle = new_angle; - - switch (new_angle) - { - case 0: - case 180: - { - if (hide_timer != NULL) - { - ecore_timer_del(hide_timer); - hide_timer = NULL; - } - indicator_util_show_hide_icons(&(ad->win[INDICATOR_WIN_LAND]),0,0); - - if(is_quickpanel_opened == 1) - { - indicator_util_show_hide_icons(&(ad->win[INDICATOR_WIN_PORT]),1,0); - } - - indicator_send_evas_ecore_message(&(ad->win[INDICATOR_WIN_PORT]),0,1); - } - break; - case 90: - case 270: - if(is_quickpanel_opened == 0&&is_apptray_opened==0) - { - DBG("hide indicator = %d %d",is_quickpanel_opened,is_apptray_opened); - indicator_util_show_hide_icons(&(ad->win[INDICATOR_WIN_LAND]),0,0); - indicator_send_evas_ecore_message(&(ad->win[INDICATOR_WIN_LAND]),1,2); - if (hide_timer != NULL) - { - ecore_timer_del(hide_timer); - hide_timer = NULL; - } - } - else - { - indicator_util_show_hide_icons(&(ad->win[INDICATOR_WIN_LAND]),1,0); - indicator_send_evas_ecore_message(&(ad->win[INDICATOR_WIN_LAND]),0,1); - } - break; - default: - break; - } -} - -#ifdef INDICATOR_SUPPORT_OPACITY_MODE -static void _change_opacity(void *data, enum indicator_opacity_mode mode) -{ - struct appdata *ad = NULL; - const char *signal = NULL; - retif(data == NULL, , "Invalid parameter!"); - - ad = data; - - switch (mode) { - case INDICATOR_OPACITY_OPAQUE: - signal = "bg.opaque"; - ad->opacity_mode = mode; - break; - case INDICATOR_OPACITY_TRANSLUCENT: - signal = "bg.translucent"; - ad->opacity_mode = mode; - break; - case INDICATOR_OPACITY_TRANSPARENT: - signal = "bg.transparent"; - ad->opacity_mode = mode; - break; - default: - ERR("unknown mode : %d", mode); - signal = "bg.opaque"; - ad->opacity_mode = INDICATOR_OPACITY_OPAQUE; - break; - - } - ad->opacity_mode = mode; - - indicator_signal_emit(data,signal, "indicator.prog"); - - DBG("send signal [%s] to indicator layout", signal); -} - -static void _indicator_quickpanel_changed(void *data, int is_open) -{ - struct appdata *ad = NULL; - - retif(data == NULL, , "Invalid parameter!"); - - DBG("_indicator_quickpanel_changed %d %d\n", is_open, current_angle); - - ad = data; - - if (is_open) - { - if(is_quickpanel_opened==0) - { - is_quickpanel_opened = 1; - - if( current_angle==0 || current_angle == 180) - { - if(indicator_icon_backup_state[INDICATOR_WIN_PORT]==0) - { - indicator_util_show_hide_icons(&(ad->win[INDICATOR_WIN_PORT]),1,1); - } - else - { - indicator_util_show_hide_icons(&(ad->win[INDICATOR_WIN_PORT]),1,0); - } - } - else - { - indicator_util_show_hide_icons(&(ad->win[INDICATOR_WIN_LAND]),1,0); - } - - vconf_set_int(VCONFKEY_BATTERY_DISP_STATE,2); - - if (hide_timer != NULL) { - ecore_timer_del(hide_timer); - hide_timer = NULL; - } - } - } - else - { - if(is_quickpanel_opened==1) - { - is_quickpanel_opened = 0; - - if( current_angle==0 || current_angle == 180) - { - indicator_util_show_hide_icons(&(ad->win[INDICATOR_WIN_LAND]),0,0); - - if(indicator_icon_backup_state[INDICATOR_WIN_PORT]==0) - indicator_util_show_hide_icons(&(ad->win[INDICATOR_WIN_PORT]),0,1); - else - indicator_util_show_hide_icons(&(ad->win[INDICATOR_WIN_PORT]),1,0); - } - else - { - indicator_util_show_hide_icons(&(ad->win[INDICATOR_WIN_LAND]),0,1); - indicator_send_evas_ecore_message(&(ad->win[INDICATOR_WIN_LAND]),1,2); - } - } - } -} -#endif - -static Eina_Bool _indicator_client_message_cb(void *data, int type, void *event) -{ - Ecore_X_Event_Client_Message *ev = - (Ecore_X_Event_Client_Message *) event; - - retif(data == NULL - || event == NULL, ECORE_CALLBACK_RENEW, "Invalid parameter!"); - - - if (ev->message_type == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE) { - if (ev->data.l[0] == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON) - _indicator_quickpanel_changed(data, 1); - else if (ev->data.l[0] == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF) - _indicator_quickpanel_changed(data, 0); - - } - - return ECORE_CALLBACK_RENEW; -} - - -static Eina_Bool _property_changed_cb(void *data, int type, void *event) -{ - Ecore_X_Event_Window_Property *ev = event; - - if (ev == NULL || ev->atom != ECORE_X_ATOM_NET_ACTIVE_WINDOW) - return EINA_FALSE; - - return EINA_TRUE; -} - -static void _mctrl_monitor_cb(minicontrol_action_e action, - const char *name, unsigned int width, - unsigned int height, - minicontrol_priority_e priority, - void *data) -{ - retif(!data, , "data is NULL"); - retif(!name, , "name is NULL"); - - indicator_minictrl_control_modules(action,name,data); -} - -static void -_indicator_ecore_evas_msg_parent_handle(Ecore_Evas *ee, int msg_domain, int msg_id, void *data, int size) -{ - DBG("Receive msg from clien msg_domain=%x msg_id=%x size=%d\n", msg_domain, msg_id, size); - retif(!data, , "data is NULL"); - - if (msg_domain == MSG_DOMAIN_CONTROL_INDICATOR) - { - struct appdata *ad = (struct appdata *)ecore_evas_data_get(ee,"indicator_app_data"); - - if ((msg_id == MSG_ID_INDICATOR_ROTATION) && (size == sizeof(int))) - { - int *rot = data; - DBG("Receive msg is portrait rotation . rot=%d \n", *rot); - _rotate_window(ad,*rot); - } - if ((msg_id == MSG_ID_INDICATOR_OPACITY) && (size == sizeof(Elm_Win_Indicator_Opacity_Mode))) - { - Elm_Win_Indicator_Opacity_Mode *omod; - int trans_mode; - omod = data; - DBG("Receive msg is opacity . opacity=%d \n", *omod); - switch(*omod) - { - case ELM_WIN_INDICATOR_OPAQUE: - trans_mode = INDICATOR_OPACITY_OPAQUE; - break; - case ELM_WIN_INDICATOR_TRANSLUCENT: - trans_mode = INDICATOR_OPACITY_TRANSLUCENT; - break; - case ELM_WIN_INDICATOR_TRANSPARENT: - trans_mode = INDICATOR_OPACITY_TRANSPARENT; - break; - default: - trans_mode = INDICATOR_OPACITY_OPAQUE; - break; - } - } - } - -} - -static void -_indicator_port_ecore_evas_msg_parent_handle(Ecore_Evas *ee, int msg_domain, int msg_id, void *data, int size) -{ - DBG("PORT : Receive msg from clien msg_domain=%x msg_id=%x size=%d\n", msg_domain, msg_id, size); - retif(!data, , "data is NULL"); - - _indicator_ecore_evas_msg_parent_handle(ee,msg_domain,msg_id,data,size); -} - -static void -_indicator_land_ecore_evas_msg_parent_handle(Ecore_Evas *ee, int msg_domain, int msg_id, void *data, int size) -{ - DBG("LAND : Receive msg from clien msg_domain=%x msg_id=%x size=%d\n", msg_domain, msg_id, size); - retif(!data, , "data is NULL"); - - _indicator_ecore_evas_msg_parent_handle(ee,msg_domain,msg_id,data,size); -} - -static void _register_event_handler_both(win_info *win, void *data) -{ - Ecore_Evas *ee; - - retif(win == NULL, , "Invalid parameter!"); - - ee = ecore_evas_ecore_evas_get(evas_object_evas_get(win->win_main)); - - evas_object_smart_callback_add(win->win_main, - "delete,request", - _indicator_window_delete_cb, data); - evas_object_event_callback_add(win->layout_main, - EVAS_CALLBACK_MOUSE_DOWN, - _indicator_mouse_down_cb, win); - - evas_object_event_callback_add(win->layout_main, - EVAS_CALLBACK_MOUSE_MOVE, - _indicator_mouse_move_cb, win); - - evas_object_event_callback_add(win->layout_main, - EVAS_CALLBACK_MOUSE_UP, - _indicator_mouse_up_cb, win); - if(win->type == INDICATOR_WIN_PORT) - { - ecore_evas_callback_msg_parent_handle_set(ee, _indicator_port_ecore_evas_msg_parent_handle); - } - else - { - ecore_evas_callback_msg_parent_handle_set(ee, _indicator_land_ecore_evas_msg_parent_handle); - } - ecore_evas_data_set(ee,"indicator_app_data",data); - -} - -static void register_event_handler(void *data) -{ - int ret; - int i = 0; - struct appdata *ad = data; - Ecore_Event_Handler *hdl = NULL; - retif(data == NULL, , "Invalid parameter!"); - - for(i=0;iwin[i]),data); - } - hdl = ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, - _indicator_client_message_cb, (void *)ad); - retif(hdl == NULL, , "Failed to register ecore_event_handler!"); - ad->evt_handlers = eina_list_append(ad->evt_handlers, hdl); - - hdl = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_PROPERTY, - _property_changed_cb, data); - retif(hdl == NULL, , "Failed to register ecore_event_handler!"); - ad->evt_handlers = eina_list_append(ad->evt_handlers, hdl); - - ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, - _indicator_check_battery_percent_on_cb, (void *)ad); - - if (ret == -1) { - ERR("noti start is failed\n"); - return; - } - - if (vconf_notify_key_changed - (VCONFKEY_PM_STATE, _indicator_notify_pm_state_cb, (void *)ad) != 0) { - ERR("Fail vconf_notify_key_changed : VCONFKEY_PM_STATE"); - } - - ret = vconf_notify_key_changed(VCONFKEY_APPTRAY_STATE, - _indicator_notify_apptray_state_cb, (void *)ad); - - if (ret == -1) { - ERR("VCONFKEY_APPTRAY_STATE is failed\n"); - return; - } - - ret = vconf_notify_key_changed(VCONFKEY_SYSMAN_POWER_OFF_STATUS, - _indicator_power_off_status_cb, (void *)ad); - - if (ret == -1) { - ERR("VCONFKEY_SYSMAN_POWER_OFF_STATUS is failed\n"); - return; - } - - ret = minicontrol_monitor_start(_mctrl_monitor_cb, data); - if (ret != MINICONTROL_ERROR_NONE) { - ERR("fail to minicontrol_monitor_start()- %d", ret); - return; - } - -} - -static void _unregister_event_handler_both(win_info *win) -{ - retif(win == NULL, , "Invalid parameter!"); - - evas_object_smart_callback_del(win->win_main, - "delete-request", - _indicator_window_delete_cb); - - evas_object_event_callback_del(win->layout_main, - EVAS_CALLBACK_MOUSE_DOWN, - _indicator_mouse_down_cb); - - evas_object_event_callback_del(win->layout_main, - EVAS_CALLBACK_MOUSE_MOVE, - _indicator_mouse_move_cb); - - evas_object_event_callback_del(win->layout_main, - EVAS_CALLBACK_MOUSE_UP, - _indicator_mouse_up_cb); - -} - -static int unregister_event_handler(void *data) -{ - struct appdata *ad = (struct appdata *)data; - int i = 0; - - retif(data == NULL, FAIL, "Invalid parameter!"); - - for(i=0;iwin[i])); - } - - vconf_ignore_key_changed(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, - _indicator_check_battery_percent_on_cb); - - vconf_ignore_key_changed(VCONFKEY_PM_STATE, - _indicator_notify_pm_state_cb); - - vconf_ignore_key_changed(VCONFKEY_APPTRAY_STATE, - _indicator_notify_apptray_state_cb); - - vconf_ignore_key_changed(VCONFKEY_SYSMAN_POWER_OFF_STATUS, - _indicator_power_off_status_cb); - - Ecore_Event_Handler *hdl = NULL; - EINA_LIST_FREE(ad->evt_handlers, hdl) { - if (hdl) - ecore_event_handler_del(hdl); - } - - minicontrol_monitor_stop(); - - return OK; -} - -static Evas_Object *load_edj(Evas_Object * parent, const char *file, - const char *group) -{ - Evas_Object *eo; - int r; - - eo = elm_layout_add(parent); - if (eo) { - r = elm_layout_file_set(eo, file, group); - if (!r) { - evas_object_del(eo); - return NULL; - } - - evas_object_size_hint_weight_set(eo, - EVAS_HINT_EXPAND, - EVAS_HINT_EXPAND); - elm_win_resize_object_add(parent, eo); - } - - return eo; -} - -static void create_win(void* data,int type) -{ - char *indi_name = NULL; - - struct appdata *ad = data; - Ecore_X_Window xwin; - Ecore_X_Window zone; - Ecore_X_Window_State states[2]; - int root_w; - int root_h; - Ecore_X_Window root; - - root = ecore_x_window_root_first_get(); - ecore_x_window_size_get(root, &root_w, &root_h); - INFO("xwin_size = %d %d", root_w, root_h); - - ad->scale = elm_config_scale_get(); - INFO("scale = %f", ad->scale); - - - switch(type) - { - case INDICATOR_WIN_PORT: - ad->win[type].win_main = elm_win_add(NULL, "portrait_indicator", ELM_WIN_SOCKET_IMAGE); - indi_name = "elm_indicator_portrait"; - elm_win_title_set(ad->win[type].win_main, "win sock test:port"); - ad->win[type].w = root_w; - break; - case INDICATOR_WIN_LAND: - ad->win[type].win_main = elm_win_add(NULL, "win_socket_test:land", ELM_WIN_SOCKET_IMAGE); - indi_name = "elm_indicator_landscape"; - elm_win_title_set(ad->win[type].win_main, "win sock test:land"); - ad->win[type].w = root_h; - break; - default : - break; - } - - retif(ad->win[type].win_main == NULL, , "elm_win_add failed!"); - - if (!elm_win_socket_listen(ad->win[type].win_main , indi_name, 0, EINA_FALSE)) - { - printf("fail to elm_win_socket_listen():port \n"); - evas_object_del(ad->win[type].win_main); - return; - } - elm_win_alpha_set(ad->win[type].win_main , EINA_TRUE); - - elm_win_borderless_set(ad->win[type].win_main , EINA_TRUE); - - evas_object_size_hint_fill_set(ad->win[type].win_main , EVAS_HINT_EXPAND, - EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(ad->win[type].win_main , 1.0, 0.5); - - xwin = elm_win_xwindow_get(ad->win[type].win_main ); - ecore_x_icccm_hints_set(xwin, 0, 0, 0, 0, 0, 0, 0); - states[0] = ECORE_X_WINDOW_STATE_SKIP_TASKBAR; - states[1] = ECORE_X_WINDOW_STATE_SKIP_PAGER; - ecore_x_netwm_window_state_set(xwin, states, 2); - - zone = ecore_x_e_illume_zone_get(xwin); - ecore_x_event_mask_set(zone, ECORE_X_EVENT_MASK_WINDOW_CONFIGURE); - - ad->win[type].evas = evas_object_evas_get(ad->win[type].win_main ); - - switch(type) - { - case INDICATOR_WIN_PORT: - ad->win[type].layout_main = load_edj(ad->win[type].win_main , EDJ_FILE0, GRP_MAIN); - break; - case INDICATOR_WIN_LAND: - ad->win[type].layout_main = load_edj(ad->win[type].win_main , EDJ_FILE1, GRP_MAIN); - break; - default : - break; - } - - retif(ad->win[type].layout_main == NULL, , "Failed to get layout main!"); - - ad->win[type].h = (int)(INDICATOR_HEIGHT * ad->scale); - evas_object_resize(ad->win[type].win_main , ad->win[type].w, ad->win[type].h); - evas_object_move(ad->win[type].win_main , 0, 0); - INFO("win_size = %d, %d", ad->win[type].w, ad->win[type].h); - - ad->win[type].type = type; - -#ifdef HOME_KEY_EMULATION - int ret = 0; - ad->win[type].atom_hwkey = ecore_x_atom_get(PROP_HWKEY_EMULATION); - ret = ecore_x_window_prop_window_get(root, ad->win[type].atom_hwkey, - &ad->win[type].win_hwkey, 1); - if (ret <= 0) - ERR("Failed to get window property ! (ret=%d)", ret); -#endif - - indicator_util_layout_add(&(ad->win[type])); - - ad->win[type].data = data; - - evas_object_show(ad->win[type].layout_main); - evas_object_show(ad->win[type].win_main); - return ; -} - -static void create_overlay_win(void* data) -{ - - struct appdata *ad = data; - Evas_Object *conform = NULL; - - Evas_Object *eo; - int w, h; - int indi_h; - Ecore_X_Window xwin; - Ecore_X_Window zone; - Ecore_X_Window_State states[2]; - Ecore_X_Atom ATOM_MV_INDICATOR_GEOMETRY = 0; - - indi_h = (int)(INDICATOR_HEIGHT * ad->scale); - - eo = elm_win_add(NULL, "INDICATOR", ELM_WIN_BASIC); - elm_win_title_set(eo, "INDICATOR"); - elm_win_borderless_set(eo, EINA_TRUE); - ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h); - evas_object_resize(eo, w, (int)(INDICATOR_HEIGHT * ad->scale)); - evas_object_move(eo , 0, 0); - elm_win_alpha_set(eo, EINA_TRUE); - - elm_win_indicator_mode_set(eo, ELM_WIN_INDICATOR_SHOW); - elm_win_indicator_opacity_set(eo, ELM_WIN_INDICATOR_OPAQUE); - - conform = elm_conformant_add(eo); - - evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND,EVAS_HINT_EXPAND); - elm_win_resize_object_add(eo, conform); - evas_object_show(conform); - - xwin = elm_win_xwindow_get(eo); - ecore_x_icccm_hints_set(xwin, 0, 0, 0, 0, 0, 0, 0); - states[0] = ECORE_X_WINDOW_STATE_SKIP_TASKBAR; - states[1] = ECORE_X_WINDOW_STATE_SKIP_PAGER; - ecore_x_netwm_window_state_set(xwin, states, 2); - - ecore_x_icccm_name_class_set(xwin, "INDICATOR", "INDICATOR"); - - ecore_x_netwm_window_type_set(xwin, ECORE_X_WINDOW_TYPE_DOCK); - - unsigned int ind_gio_val[16] = { 0, 0, w, indi_h, - 0, 0, indi_h, h, - 0, h-indi_h, w, indi_h, - w-indi_h, 0, indi_h, h }; - - ATOM_MV_INDICATOR_GEOMETRY = ecore_x_atom_get(STR_ATOM_MV_INDICATOR_GEOMETRY); - - ecore_x_window_prop_card32_set(xwin, - ATOM_MV_INDICATOR_GEOMETRY, - ind_gio_val, - 16); - - zone = ecore_x_e_illume_zone_get(xwin); - ecore_x_event_mask_set(zone, ECORE_X_EVENT_MASK_WINDOW_CONFIGURE); - evas_object_show(eo); - - ad->win_overlay = eo; - - return ; -} - -static void _indicator_init_wininfo(void * data) -{ - int i = 0; - struct appdata *ad = data; - retif(data == NULL, , "Invalid parameter!"); - - for(i=0;iwin[i]),0x00,sizeof(win_info)); - } - - ad->win_overlay = NULL; -} - -static int indicator_window_new(void *data) -{ - int i = 0; - struct appdata *ad = data; - - retif(data == NULL, FAIL, "Invalid parameter!"); - - _indicator_init_wininfo(data); - - for(i=0;iwin[i]),0,0); - } - - create_overlay_win(data); - register_event_handler(ad); - - return OK; -} - -static int indicator_window_del(void *data) -{ - int i = 0; - struct appdata *ad = (struct appdata *)data; - - retif(data == NULL, FAIL, "Invalid parameter!"); - - indicator_fini_modules(data); - unregister_event_handler(ad); - - for(i=0;iwin[i])); - evas_image_cache_flush(ad->win[i].evas); - evas_object_del(ad->win[i].layout_main); - ad->win[i].layout_main = NULL; - evas_object_del(ad->win[i].win_main); - ad->win[i].win_main = NULL; - } - - evas_object_del(ad->win_overlay); - ad->win_overlay = NULL; - - if (ad) - free(ad); - - elm_exit(); - return OK; -} - -static inline int _indicator_home_icon_action(void *data, int press) -{ - return OK; -} - -#ifdef HOME_KEY_EMULATION -static Eina_Bool _indicator_hw_home_key_press(void *data) -{ - win_info *win = NULL; - char message[20] = {'\0', }; - - retif(!data, EINA_FALSE, "data is NULL"); - - win = (win_info *)data; - - retif(!win->win_hwkey, EINA_FALSE, "window for hw emulation is NULL"); - - snprintf(message, sizeof(message), "%s%s", - KEY_MSG_PREFIX_PRESS, KEY_HOME); - - return ecore_x_client_message8_send(win->win_hwkey, win->atom_hwkey, - message, strlen(message)); -} - -static Eina_Bool _indicator_hw_home_key_release(void *data) -{ - char message[20] = {'\0', }; - win_info *win = (win_info*)data; - - retif(!data, EINA_FALSE, "data is NULL"); - - retif(!win->win_hwkey, EINA_FALSE, "window for hw emulation is NULL"); - - - snprintf(message, sizeof(message), "%s%s", - KEY_MSG_PREFIX_RELEASE, KEY_HOME); - - return ecore_x_client_message8_send(win->win_hwkey, win->atom_hwkey, - message, strlen(message)); -} -static Eina_Bool _indicator_hw_home_key_press_cancel(void *data) -{ - win_info *win = (win_info*)data; - char message[20] = {'\0', }; - - retif(!data, EINA_FALSE, "data is NULL"); - - retif(!win->win_hwkey, EINA_FALSE, "window for hw emulation is NULL"); - - snprintf(message, sizeof(message), "%s%s", - KEY_MSG_PREFIX_PRESS_C, KEY_HOME); - - return ecore_x_client_message8_send(win->win_hwkey, win->atom_hwkey, - message, strlen(message)); -} - -static Eina_Bool _indicator_hw_home_key_release_cancel(void *data) -{ - win_info *win = (win_info*)data; - char message[20] = {'\0', }; - - retif(!data, EINA_FALSE, "data is NULL"); - - retif(!win->win_hwkey, EINA_FALSE, "window for hw emulation is NULL"); - - - snprintf(message, sizeof(message), "%s%s", - KEY_MSG_PREFIX_RELEASE_C, KEY_HOME); - - return ecore_x_client_message8_send(win->win_hwkey, win->atom_hwkey, - message, strlen(message)); -} - -#endif - -static void __indicator_launch_apptray(void* data) -{ - int lock_state = VCONFKEY_IDLE_UNLOCK; - int lock_ret = -1; - service_h service; - int ret = SERVICE_ERROR_NONE; - - lock_ret = vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, - &lock_state); - DBG("Check Lock State : %d %d", lock_ret, lock_state); - - if (lock_ret == 0 && lock_state == VCONFKEY_IDLE_LOCK) - { - goto __CATCH; - } - - INFO("[Home Button Released]"); - - if (check_system_status() == FAIL) - { - INFO("check_system_status failed"); - goto __CATCH; - } - - service_create(&service); - - service_set_operation(service, SERVICE_OPERATION_DEFAULT); - - service_set_app_id(service, APP_TRAY_PKG_NAME); - - service_add_extra_data(service, "LONG_PRESS", "0"); - - ret = service_send_launch_request(service, NULL, NULL); - - if(ret != SERVICE_ERROR_NONE) - { - ERR("Cannot launch app"); - } - - service_destroy(service); - -__CATCH: - _indicator_home_icon_action(data, 0); - home_button_pressed = EINA_FALSE; -} - -static void __indicator_hide_icon_timer_cb(void* data) -{ - if (hide_timer != NULL) { - ecore_timer_del(hide_timer); - hide_timer = NULL; - } - - indicator_util_show_hide_icons(data,0,1); - indicator_send_evas_ecore_message(data,1,2); - -} - -static void _indicator_mouse_down_cb(void *data, Evas * e, Evas_Object * obj, - void *event) -{ - win_info *win = (win_info*)data; - Evas_Event_Mouse_Down *ev = NULL; - - retif(data == NULL || event == NULL, , "Invalid parameter!"); - ev = event; - - win->mouse_event.x = ev->canvas.x; - win->mouse_event.y = ev->canvas.y; - - DBG("_indicator_mouse_down_cb : %d %d", ev->canvas.x, ev->canvas.y); - -#ifdef HOME_KEY_EMULATION - if(indicator_util_check_indicator_area(win, ev->canvas.x, ev->canvas.y)) - { - if( is_quickpanel_opened == 0 ) - { - show_hide_pressed[win->type] = EINA_TRUE; - } - else - { - show_hide_pressed[win->type] = EINA_FALSE; - DBG("quick panel is opened : %d", is_quickpanel_opened); - } - indicator_press_coord.x = ev->canvas.x; - indicator_press_coord.y = ev->canvas.y; - } - -__CATCH : - return; -#else - int mouse_down_prio = -1; - mouse_down_prio = - indicator_util_get_priority_in_move_area(win, win->mouse_event.x, - win->mouse_event.y); - - if (mouse_down_prio > -1) { - switch (mouse_down_prio) { - case INDICATOR_PRIORITY_FIXED1: - { - int lock_state = VCONFKEY_IDLE_UNLOCK; - int lock_ret = -1; - - lock_ret = vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, - &lock_state); - DBG("Check Lock State : %d %d", lock_ret, lock_state); - - if (lock_ret == 0 - && lock_state == VCONFKEY_IDLE_UNLOCK) { - if (!_indicator_home_icon_action(win, 1)) - home_button_pressed = EINA_TRUE; - } - } - break; - } - } -#endif -} - -static void _indicator_mouse_move_cb(void *data, Evas * e, Evas_Object * obj, - void *event) -{ - Evas_Event_Mouse_Move *ev = NULL; - win_info* win = (win_info*)data; - - retif(data == NULL || event == NULL, , "Invalid parameter!"); - - ev = event; - - if(win->type == INDICATOR_WIN_PORT) - { - if (show_hide_pressed[win->type]) { - if (!indicator_util_check_indicator_area(win,ev->cur.canvas.x,ev->cur.canvas.y) - || indicator_util_check_home_icon_area(win,ev->cur.canvas.x,ev->cur.canvas.y)) - { - show_hide_pressed[win->type] = FALSE; - DBG("cancel show/hide key"); - } - } - } - else - { - if(ev->cur.canvas.y - indicator_press_coord.y >= INDICATOR_HIDE_TRIGER_H*elm_config_scale_get()) - { - DBG("ev->cur.canvas.x(%d) ev->cur.canvas.y(%d)",ev->cur.canvas.x,ev->cur.canvas.y); - DBG("indicator_press_coord.x(%d) indicator_press_coord.y(%d)",indicator_press_coord.x,indicator_press_coord.y); - - if(show_hide_pressed[win->type] == EINA_TRUE) - { - if(indicator_icon_show_state[win->type] == 0) - { - indicator_util_show_hide_icons(win,1,1); - indicator_send_evas_ecore_message(win,0,1); - if (hide_timer != NULL) { - ecore_timer_del(hide_timer); - hide_timer = NULL; - } - - hide_timer = ecore_timer_add(3, (void *)__indicator_hide_icon_timer_cb,data); - - show_hide_pressed[win->type] = EINA_FALSE; - } - } - } - } -} - -static void _indicator_mouse_up_cb(void *data, Evas * e, Evas_Object * obj, - void *event) -{ - - Evas_Event_Mouse_Up *ev = NULL; - win_info *win = (win_info *)data; - - retif(data == NULL || event == NULL, , "Invalid parameter!"); - - ev = event; - - DBG("_indicator_mouse_up_cb : %d %d", ev->canvas.x, ev->canvas.y); - -#ifdef HOME_KEY_EMULATION - if(indicator_util_check_indicator_area(win, ev->canvas.x, ev->canvas.y)) - { - - if(win->type == INDICATOR_WIN_PORT) - { - if(show_hide_pressed[win->type] == EINA_TRUE) - { - if(indicator_icon_show_state[win->type] == 0) - { - indicator_icon_backup_state[win->type] = 1; - indicator_util_show_hide_icons(win,1,1); - } - else - { - indicator_icon_backup_state[win->type] = 0; - indicator_util_show_hide_icons(win,0,1); - } - - vconf_set_int(VCONFKEY_BATTERY_DISP_STATE,win->type); - feedback_play_type(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_TAP); - } - } - - } - - home_button_pressed = EINA_FALSE; - show_hide_pressed[win->type] = EINA_FALSE; -#else - int mouse_up_prio = -1; - int mouse_down_prio = -1; - - if (home_button_pressed == EINA_TRUE) { - _indicator_home_icon_action(data, 0); - home_button_pressed = EINA_FALSE; - } - - mouse_down_prio = - indicator_util_get_priority_in_move_area(win,win->mouse_event.x, - win->mouse_event.y); - mouse_up_prio = indicator_util_get_priority_in_move_area(win,ev->canvas.x, - ev->canvas.y); - - if (mouse_down_prio > -1 && mouse_up_prio > -1 - && mouse_down_prio == mouse_up_prio) { - switch (mouse_down_prio) { - case INDICATOR_PRIORITY_FIXED1: - { - int lock_state = VCONFKEY_IDLE_UNLOCK; - int lock_ret = -1; - - lock_ret = vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, - &lock_state); - DBG("Check Lock State : %d %d", lock_ret, lock_state); - - if (lock_ret == 0 && lock_state == VCONFKEY_IDLE_LOCK) - break; - - char *package = NULL; - char *top_win_name = NULL; - - INFO("[Home Button Released]"); - - if (check_system_status() == FAIL) - break; - - package = vconf_get_str("db/menuscreen/pkgname"); - if (package) { - service_h service; - int ret = SERVICE_ERROR_NONE; - - service_create(&service); - - service_set_operation(service, SERVICE_OPERATION_DEFAULT); - - service_set_package(service, package); - - top_win_name = _get_top_window_name(data); - - if (top_win_name != NULL - && !strncmp(top_win_name, package, - strlen(package))) - { - - DBG("service_send_launch_request : %s", - top_win_name); - - ret = service_send_launch_request(service, NULL, NULL); - - if(ret != SERVICE_ERROR_NONE) - { - ERR("Cannot launch app"); - } - - } - else - { - DBG("app_manager_resume_app : %s", - top_win_name); - - ret = app_manager_resume_app(service); - if(ret != APP_MANAGER_ERROR_NONE) - { - ERR("Cannot resume app"); - } - } - - if (top_win_name) - free(top_win_name); - - free(package); - - service_destroy(service); - - } else - ERR("Cannot get vconf"); - } - break; - } - } -#endif - win->mouse_event.x = 0; - win->mouse_event.y = 0; -} - -static int register_indicator_modules(void *data) -{ - indicator_init_modules(data); - return OK; -} - -static void _signal_handler(int signum, siginfo_t *info, void *unused) -{ - DBG("_signal_handler : Terminated..."); - app_efl_exit(); -} - -static bool app_create(void *data) -{ - pid_t pid; - int ret; - - struct sigaction act; - memset(&act,0x00,sizeof(struct sigaction)); - act.sa_sigaction = _signal_handler; - act.sa_flags = SA_SIGINFO; - - ret = sigemptyset(&act.sa_mask); - if (ret < 0) { - ERR("Failed to sigemptyset[%s]", strerror(errno)); - } - ret = sigaddset(&act.sa_mask, SIGTERM); - if (ret < 0) { - ERR("Failed to sigaddset[%s]", strerror(errno)); - } - ret = sigaction(SIGTERM, &act, NULL); - if (ret < 0) { - ERR("Failed to sigaction[%s]", strerror(errno)); - } - - pid = setsid(); - if (pid < 0) - fprintf(stderr, "[INDICATOR] Failed to set session id!"); - - ret = nice(2); - if (ret == -1) - ERR("Failed to set nice value!"); - return true; -} - -static void app_terminate(void *data) -{ - int i = 0; - struct appdata *ad = data; - indicator_fini_modules(data); - unregister_event_handler(ad); - - feedback_deinitialize(); - - for(i=0;iwin[i])); - evas_image_cache_flush(ad->win[i].evas); - evas_object_del(ad->win[i].layout_main); - evas_object_del(ad->win[i].win_main); - } - - INFO(" >>>>>>>>>>>>> INDICATOR IS TERMINATED!! <<<<<<<<<<<<<< "); - -} - -static void app_pause(void *data) -{ - -} - -static void app_resume(void *data) -{ - -} - -static void app_service(service_h service, void *data) -{ - struct appdata *ad = data; - int ret; - int i = 0; - - INFO("[INDICATOR IS STARTED]"); - ret = indicator_window_new(data); - retif(ret != OK, , "Failed to create a new window!"); - - _change_view(ecore_x_window_root_first_get(), data); - - _indicator_check_battery_percent_on_cb(NULL, data); - register_indicator_modules(data); - - feedback_initialize(); - - for(i=0;iwin[i].win_main) - elm_win_activate(ad->win[i].win_main); - } - -} - -int main(int argc, char *argv[]) -{ - - struct appdata ad; - - app_event_callback_s event_callback; - - int ret = 0; - - DBG("Start indicator"); - - ret = control_privilege(); - if (ret != 0) { - ERR("[INDICATOR] Failed to control privilege!"); - } - - event_callback.create = app_create; - event_callback.terminate = app_terminate; - event_callback.pause = app_pause; - event_callback.resume = app_resume; - event_callback.service = app_service; - event_callback.low_memory = NULL; - event_callback.low_battery = _indicator_low_bat_cb; - event_callback.device_orientation = NULL; - event_callback.language_changed = _indicator_lang_changed_cb; - event_callback.region_format_changed = _indicator_region_changed_cb; - - memset(&ad, 0x0, sizeof(struct appdata)); - - return app_efl_main(&argc, &argv, &event_callback, &ad); - -} diff --git a/daemon/indicator_ui.h b/daemon/indicator_ui.h deleted file mode 100755 index 5518a82..0000000 --- a/daemon/indicator_ui.h +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright 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. - */ - - -#ifndef __DEF_indicator_H_ -#define __DEF_indicator_H_ - -#include -#include -#include "indicator.h" - -#if !defined(PACKAGE) -# define PACKAGE "indicator" -#endif - -#if !defined(LOCALEDIR) -# define LOCALEDIR "/usr/apps/com.samsung.indicator/res/locale" -#endif - -#if !defined(EDJDIR) -# define EDJDIR "/usr/apps/com.samsung.indicator/res/edje" -#endif - -#if !defined(ICONDIR) -# define ICONDIR "/usr/apps/com.samsung.indicator/res/icons" -#endif - -#define EDJ_FILE0 EDJDIR"/"PACKAGE"_port.edj" -#define EDJ_FILE1 EDJDIR"/"PACKAGE"_land.edj" -#define ICON_THEME_FILE EDJDIR"/"PACKAGE"_icon_theme.edj" -#define ICON_NONFIXED_THEME_FILE EDJDIR"/"PACKAGE"_icon_nonfixed_theme.edj" - -#define _S(str) dgettext("sys_string", str) -#define _(str) gettext(str) - -#define HOME_SCREEN_NAME "com.samsung.live-magazine" -#define MENU_SCREEN_NAME "com.samsung.menu-screen" -#define LOCK_SCREEN_NAME "com.samsung.idle-lock" -#define QUICKPANEL_NAME "E Popup" -#define CALL_NAME "com.samsung.call" -#define VTCALL_NAME "com.samsung.vtmain" - -#define MSG_DOMAIN_CONTROL_INDICATOR 0x10001 -#define MSG_ID_INDICATOR_REPEAT_EVENT 0x10002 -#define MSG_ID_INDICATOR_ROTATION 0x10003 -#define MSG_ID_INDICATOR_OPACITY 0X1004 -#define MSG_ID_INDICATOR_TYPE 0X1005 - -enum _win_type { - TOP_WIN_NORMAL = 0, - TOP_WIN_LOCK_SCREEN, - TOP_WIN_CALL, - TOP_WIN_MENU_SCREEN, - TOP_WIN_HOME_SCREEN, - TOP_WIN_QUICKPANEL -}; - -enum indicator_opacity_mode{ - INDICATOR_OPACITY_OPAQUE = 0, - INDICATOR_OPACITY_TRANSLUCENT, - INDICATOR_OPACITY_TRANSPARENT, -}; - -struct appdata { - - win_info win[INDICATOR_WIN_MAX]; - Evas_Object* win_overlay; - - double xscale; - double yscale; - double scale; - int angle; - - Eina_Bool lock; - Eina_Bool menu; - Eina_Bool quickpanel; - - Eina_List *evt_handlers; - - enum indicator_opacity_mode opacity_mode; - - enum _win_type top_win; - - void (*update_display) (int); -}; - -#endif diff --git a/daemon/indicator_util.c b/daemon/indicator_util.c deleted file mode 100755 index 322630f..0000000 --- a/daemon/indicator_util.c +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright 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. - */ - - -#include -#include -#include "common.h" -#include "indicator.h" -#include "indicator_ui.h" -#include "indicator_gui.h" -#include "indicator_util.h" -#include "indicator_icon_util.h" -#include "indicator_box_util.h" -#include - -#define DEFAULT_DIR ICONDIR -#define DIR_PREFIX "Theme_%02d_" -#define LABEL_STRING "%s" - -static char *_icondir; - -char *set_label_text_color(const char *txt) -{ - Eina_Strbuf *temp_buf = NULL; - Eina_Bool buf_result = EINA_FALSE; - char *ret_str = NULL; - - retif(txt == NULL, NULL, "Invalid parameter!"); - - temp_buf = eina_strbuf_new(); - buf_result = eina_strbuf_append_printf(temp_buf, - LABEL_STRING, FONT_COLOR, txt); - - if (buf_result == EINA_FALSE) - INFO("Failed to make label string!"); - else - ret_str = eina_strbuf_string_steal(temp_buf); - - eina_strbuf_free(temp_buf); - return ret_str; -} - -const char *get_icon_dir(void) -{ - if (_icondir == NULL) - _icondir = DEFAULT_DIR; - - return (const char *)_icondir; -} - -static int _set_icon_dir(char *newdir) -{ - char *new_icon_dir = NULL; - - char dirname[PATH_MAX]; - int r; - - retif(!newdir, FAIL, "Invalid parameter!"); - memset(dirname, 0x00, sizeof(dirname)); - r = snprintf(dirname, sizeof(dirname), ICONDIR "/%s", newdir); - if (r < 0) { - ERR("Failed to set new dir name!"); - return FAIL; - } - - new_icon_dir = strdup(dirname); - _icondir = new_icon_dir; - - return 0; -} - -void indicator_signal_emit(void* data, const char *emission, const char *source) -{ - struct appdata *ad = (struct appdata *)data; - retif(data == NULL, , "Invalid parameter!"); - Evas_Object *edje; - int i = 0; - - for(i=0;iwin[i].layout_main == NULL, , "Invalid parameter!"); - edje = elm_layout_edje_get(ad->win[i].layout_main); - edje_object_signal_emit(edje, emission, source); - } -} - -void indicator_part_text_emit(void* data, const char *part, const char *text) -{ - struct appdata *ad = (struct appdata *)data; - retif(data == NULL, , "Invalid parameter!"); - Evas_Object *edje; - int i = 0; - - for(i=0;iwin[i].layout_main == NULL, , "Invalid parameter!"); - edje = elm_layout_edje_get(ad->win[i].layout_main); - edje_object_part_text_set(edje, part, text); - } -} - -void indicator_signal_emit_by_win(void* data, const char *emission, const char *source) -{ - win_info *win = (win_info*)data; - retif(data == NULL, , "Invalid parameter!"); - Evas_Object *edje; - - retif(win->layout_main == NULL, , "Invalid parameter!"); - edje = elm_layout_edje_get(win->layout_main); - edje_object_signal_emit(edje, emission, source); -} - -void indicator_part_text_emit_by_win(void* data, const char *part, const char *text) -{ - win_info *win = (win_info*)data; - retif(data == NULL, , "Invalid parameter!"); - Evas_Object *edje; - - retif(win->layout_main == NULL, , "Invalid parameter!"); - edje = elm_layout_edje_get(win->layout_main); - edje_object_part_text_set(edje, part, text); -} - -void indicator_send_evas_ecore_message(void* data, int bRepeat, int bType) -{ - Ecore_Evas *ee_port; - win_info* win = (win_info*)data; - retif(data == NULL, , "Invalid parameter!"); - - DBG("win(%d),bRepeat(%d),bType(%d)",win->type, bRepeat, bType); - ee_port = ecore_evas_ecore_evas_get(evas_object_evas_get(win->win_main)); - ecore_evas_msg_send(ee_port, MSG_DOMAIN_CONTROL_INDICATOR, MSG_ID_INDICATOR_REPEAT_EVENT, &bRepeat, sizeof(int)); - ecore_evas_msg_send(ee_port, MSG_DOMAIN_CONTROL_INDICATOR, MSG_ID_INDICATOR_TYPE, &bType, sizeof(int)); - -} diff --git a/daemon/indicator_util.h b/daemon/indicator_util.h deleted file mode 100755 index e56402c..0000000 --- a/daemon/indicator_util.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 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. - */ - -#ifndef __INDICATOR_UTIL_H__ -#define __INDICATOR_UTIL_H__ - -extern char *set_label_text_color(const char *txt); -extern const char *get_icon_dir(void); -void indicator_signal_emit(void* data, const char *emission, const char *source); -void indicator_part_text_emit(void* data, const char *part, const char *text); -void indicator_signal_emit_by_win(void* data, const char *emission, const char *source); -void indicator_part_text_emit_by_win(void* data, const char *part, const char *text); -void indicator_send_evas_ecore_message(void* data, int bRepeat, int bType); - -#endif diff --git a/daemon/list.c b/daemon/list.c new file mode 100644 index 0000000..d7d0af9 --- /dev/null +++ b/daemon/list.c @@ -0,0 +1,359 @@ +/* + * Indicator + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + + +#include "indicator.h" +#include "log.h" +#include "util.h" +#include "list.h" +#include "icon.h" + +static Eina_List *fixed_icon_list = NULL; +static Eina_List *system_icon_list = NULL; +static Eina_List *noti_icon_list = NULL; +static Eina_List *alarm_icon_list = NULL; + + + +extern void icon_free(icon_s *icon) +{ + if (icon) { + if (icon->obj_exist == EINA_TRUE) { + if (icon_del(icon) == EINA_TRUE) { + icon->obj_exist = EINA_FALSE; + icon->img_obj.obj = NULL; + } + } + } +} + + + +static void _list_free(Eina_List *list) +{ + Eina_List *l; + Eina_List *l_next; + icon_s *data; + + ret_if(!list); + + EINA_LIST_FOREACH_SAFE(list, l, l_next, data) { + icon_free(data); + list = eina_list_remove_list(list, l); + } + eina_list_free(list); + list = NULL; + + return; +} + + + +extern int list_free_all(void) +{ + _list_free(fixed_icon_list); + _list_free(system_icon_list); + _list_free(noti_icon_list); + _list_free(alarm_icon_list); + + return TRUE; +} + + + +static Eina_List *_insert_icon_to_list(Eina_List *list, icon_s *icon) +{ + Eina_List *l; + icon_s *data; + + retv_if(!list, NULL); + retv_if(!icon, NULL); + + /* Insert icon to list */ + EINA_LIST_REVERSE_FOREACH(list, l, data) { + if (data->priority == icon->priority + && data->always_top == EINA_TRUE) + continue; + + if (data->priority <= icon->priority) { + list = eina_list_append_relative_list(list, icon, l); + return list; + } + } + + /* If finding condition is failed, append it at tail */ + list = eina_list_prepend(list, icon); + return list; +} + + + +extern void list_update(icon_s *icon) +{ + ret_if(!icon); + + switch (icon->area) { + case INDICATOR_ICON_AREA_FIXED: + fixed_icon_list = eina_list_remove(fixed_icon_list, icon); + fixed_icon_list = _insert_icon_to_list(fixed_icon_list, icon); + break; + case INDICATOR_ICON_AREA_SYSTEM: + system_icon_list = eina_list_remove(system_icon_list, icon); + system_icon_list = _insert_icon_to_list(system_icon_list, icon); + break; + case INDICATOR_ICON_AREA_NOTI: + noti_icon_list = eina_list_remove(noti_icon_list, icon); + noti_icon_list = _insert_icon_to_list(noti_icon_list, icon); + break; + case INDICATOR_ICON_AREA_ALARM: + alarm_icon_list = eina_list_remove(alarm_icon_list, icon); + alarm_icon_list = _insert_icon_to_list(alarm_icon_list, icon); + break; + default: + break; + } + + return; +} + + + +static indicator_error_e _icon_exist_in_list(Eina_List *list, icon_s *icon) +{ + Eina_List *l; + icon_s *data; + + /* Check name */ + EINA_LIST_REVERSE_FOREACH(fixed_icon_list, l, data) { + if (data->name == icon->name) { + _D("[%s] is already exist in the list", icon->name); + return INDICATOR_ERROR_FAIL; + } + } + return INDICATOR_ERROR_NONE; +} + + +extern void list_insert_icon(icon_s *icon) +{ + ret_if(!icon); + ret_if(!icon->name); + + switch (icon->area) { + case INDICATOR_ICON_AREA_FIXED: + if (INDICATOR_ERROR_NONE != _icon_exist_in_list(fixed_icon_list, icon)) return; + + /* Set internal data */ + icon->wish_to_show = EINA_FALSE; + fixed_icon_list = _insert_icon_to_list(fixed_icon_list, icon); + break; + case INDICATOR_ICON_AREA_SYSTEM: + if (INDICATOR_ERROR_NONE != _icon_exist_in_list(system_icon_list, icon)) return; + + /* Set internal data */ + icon->wish_to_show = EINA_FALSE; + system_icon_list = _insert_icon_to_list(system_icon_list, icon); + break; + case INDICATOR_ICON_AREA_NOTI: + if (INDICATOR_ERROR_NONE != _icon_exist_in_list(noti_icon_list, icon)) return; + + /* Set internal data */ + icon->wish_to_show = EINA_FALSE; + noti_icon_list = _insert_icon_to_list(noti_icon_list, icon); + break; + case INDICATOR_ICON_AREA_ALARM: + if (INDICATOR_ERROR_NONE != _icon_exist_in_list(alarm_icon_list, icon)) return; + + /* Set internal data */ + icon->wish_to_show = EINA_FALSE; + alarm_icon_list = eina_list_append(alarm_icon_list, icon); + break; + default: + break; + } + + return; +} + + +extern void list_remove_icon(icon_s *icon) +{ + ret_if(!icon); + + switch (icon->area) { + case INDICATOR_ICON_AREA_FIXED: + ret_if(!fixed_icon_list); + fixed_icon_list = eina_list_remove(fixed_icon_list, icon); + break; + case INDICATOR_ICON_AREA_SYSTEM: + ret_if(!system_icon_list); + system_icon_list = eina_list_remove(system_icon_list, icon); + break; + case INDICATOR_ICON_AREA_NOTI: + ret_if(!noti_icon_list); + noti_icon_list = eina_list_remove(noti_icon_list, icon); + break; + case INDICATOR_ICON_AREA_ALARM: + ret_if(!alarm_icon_list); + alarm_icon_list = eina_list_remove(alarm_icon_list, icon); + break; + default: + _E("default"); + break; + } +} + + +extern icon_s *list_try_to_find_icon_to_show(int area, int priority) +{ + Eina_List *l; + icon_s *data = NULL; + icon_s *icon = NULL; + + switch (area) { + case INDICATOR_ICON_AREA_FIXED: + EINA_LIST_REVERSE_FOREACH(fixed_icon_list, l, data) { + if (data->priority == priority + && data->wish_to_show == EINA_TRUE + && data->exist_in_view == EINA_FALSE) { + icon = data; + break; + } + } + break; + case INDICATOR_ICON_AREA_SYSTEM: + EINA_LIST_REVERSE_FOREACH(system_icon_list, l, data) { + if (data->wish_to_show == EINA_TRUE + && data->exist_in_view == EINA_FALSE) { + icon = data; + break; + } + } + break; + case INDICATOR_ICON_AREA_NOTI: + EINA_LIST_REVERSE_FOREACH(noti_icon_list, l, data) { + if (data->wish_to_show == EINA_TRUE + && data->exist_in_view == EINA_FALSE) { + icon = data; + break; + } + } + break; + case INDICATOR_ICON_AREA_ALARM: + EINA_LIST_REVERSE_FOREACH(alarm_icon_list, l, data) { + if (data->wish_to_show == EINA_TRUE + && data->exist_in_view == EINA_FALSE) { + icon = data; + break; + } + } + break; + default: + _E("default"); + break; + } + + retv_if(!icon, NULL); + + return icon; +} + + + +extern icon_s *list_try_to_find_icon_to_remove(int area, int priority) +{ + Eina_List *l; + icon_s *data = NULL; + icon_s *icon = NULL; + + + switch (area) { + case INDICATOR_ICON_AREA_FIXED: + EINA_LIST_REVERSE_FOREACH(fixed_icon_list, l, data) { + if (data->priority == priority + && data->wish_to_show == EINA_TRUE) { + icon = data; + break; + } + } + break; + case INDICATOR_ICON_AREA_SYSTEM: + /* Find lowest priority of icon */ + EINA_LIST_FOREACH(system_icon_list, l, data) { + if (data->wish_to_show == EINA_TRUE + && data->always_top == EINA_FALSE + && data->exist_in_view == EINA_TRUE) { + icon = data; + break; + } + } + break; + case INDICATOR_ICON_AREA_NOTI: + /* Find lowest priority of icon */ + EINA_LIST_REVERSE_FOREACH(noti_icon_list, l, data) { + if (data->wish_to_show == EINA_TRUE + && data->always_top == EINA_FALSE + && data->exist_in_view == EINA_TRUE) { + icon = data; + break; + } + } + break; + case INDICATOR_ICON_AREA_ALARM: + /* Find lowest priority of icon */ + EINA_LIST_FOREACH(alarm_icon_list, l, data) { + if (data->wish_to_show == EINA_TRUE + && data->always_top == EINA_FALSE + && data->exist_in_view == EINA_TRUE) { + icon = data; + break; + } + } + break; + default: + _E("default"); + break; + } + + retv_if(!icon, NULL); + + return icon; +} + + + +extern unsigned int list_get_noti_count(void) +{ + Eina_List *l; + icon_s *data = NULL; + int cnt = 0; + + EINA_LIST_FOREACH(noti_icon_list, l, data) { + if (data->wish_to_show == EINA_TRUE + || data->exist_in_view == EINA_TRUE) { + if (!strcmp(data->name, "more_notify")) continue; // Except more noti + cnt++; + } + } + + return cnt; +} + +/* End of file */ diff --git a/daemon/list.h b/daemon/list.h new file mode 100644 index 0000000..95f2e6c --- /dev/null +++ b/daemon/list.h @@ -0,0 +1,34 @@ +/* + * Indicator + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + + +#ifndef __INDICATOR_ICON_LIST_H__ +#define __INDICATOR_ICON_LIST_H__ + +extern void icon_free(icon_s *icon); +extern int list_free_all(void); +extern void list_update(icon_s *obj); +extern void list_insert_icon(icon_s *obj); +extern void list_remove_icon(icon_s *obj); +extern icon_s *list_try_to_find_icon_to_show(int area, int priority); +extern icon_s *list_try_to_find_icon_to_remove(int area, int priority); +extern unsigned int list_get_noti_count(void); + +#endif /*__INDICATOR_ICON_LIST_H__*/ diff --git a/daemon/log.h b/daemon/log.h new file mode 100755 index 0000000..0745ded --- /dev/null +++ b/daemon/log.h @@ -0,0 +1,90 @@ +/* + * Samsung API + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/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. + */ + +#ifndef __SAMPLE_APP_LOG_H__ +#define __SAMPLE_APP_LOG_H__ + +#include +#include + +#undef LOG_TAG +#define LOG_TAG "INDICATOR" + +#if !defined(_D) +#define _D(fmt, arg...) LOGD(fmt"\n", ##arg) +#endif + +#if !defined(_W) +#define _W(fmt, arg...) LOGW(fmt"\n", ##arg) +#endif + +#if !defined(_E) +#define _E(fmt, arg...) LOGE(fmt"\n", ##arg) +#endif + +#define retvm_if(expr, val, fmt, arg...) do { \ + if(expr) { \ + _E(fmt, ##arg); \ + _E("(%s) -> %s() return", #expr, __FUNCTION__); \ + return val; \ + } \ +} while (0) + +#define retv_if(expr, val) do { \ + if(expr) { \ + _E("(%s) -> %s() return", #expr, __FUNCTION__); \ + return (val); \ + } \ +} while (0) + +#define retm_if(expr, fmt, arg...) do { \ + if(expr) { \ + _E(fmt, ##arg); \ + _E("(%s) -> %s() return", #expr, __FUNCTION__); \ + return; \ + } \ +} while (0) + +#define ret_if(expr) do { \ + if(expr) { \ + _E("(%s) -> %s() return", #expr, __FUNCTION__); \ + return; \ + } \ +} while (0) + +#define goto_if(expr, val) do { \ + if(expr) { \ + _E("(%s) -> goto", #expr); \ + goto val; \ + } \ +} while (0) + +#define break_if(expr) { \ + if(expr) { \ + _E("(%s) -> break", #expr); \ + break; \ + } \ +} + +#define continue_if(expr) { \ + if(expr) { \ + _E("(%s) -> continue", #expr); \ + continue; \ + } \ +} + +#endif /* __SAMPLE_APP_LOG_H__ */ diff --git a/daemon/main.c b/daemon/main.c new file mode 100644 index 0000000..3846d29 --- /dev/null +++ b/daemon/main.c @@ -0,0 +1,1201 @@ +/* + * Indicator + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include +#include +//#include +#include +#include +#include +#include +#include +#include +#include +#include +//#include +#include +#include +#if 0 +#include +#endif + +#include "common.h" +#include "box.h" +#include "icon.h" +#include "main.h" +#include "indicator_gui.h" +#include "modules.h" +#include "util.h" +#include "plmn.h" +#include "message.h" +#include "tts.h" +#include "log.h" +#include "indicator.h" +#include "ticker.h" + +#define GRP_MAIN "indicator" +#define WIN_TITLE "Illume Indicator" +#define VCONF_PHONE_STATUS "memory/startapps/sequence" + +#define BUS_NAME "org.tizen.system.deviced" +#define PATH_NAME "/Org/Tizen/System/DeviceD/Display" +#define INTERFACE_NAME BUS_NAME".display" +#define MEMBER_NAME "LCDOn" + +#define MP_APP_ID "org.tizen.music-player-lite" +#define FMRADIO_APP_ID "org.tizen.fm-radio-lite" +#define VR_APP_ID "org.tizen.voicerecorder-lite" + +#define STR_ATOM_MV_INDICATOR_GEOMETRY "_E_MOVE_INDICATOR_GEOMETRY" + +#define HIBERNATION_ENTER_NOTI "HIBERNATION_ENTER" +#define HIBERNATION_LEAVE_NOTI "HIBERNATION_LEAVE" + +#define UNLOCK_ENABLED 0 +#define TIMEOUT 5 + +#ifdef HOME_KEY_EMULATION +/* Predefine string */ +#define PROP_HWKEY_EMULATION "_HWKEY_EMULATION" +#define KEY_MSG_PREFIX_PRESS "P:" +#define KEY_MSG_PREFIX_RELEASE "R:" +#define KEY_MSG_PREFIX_PRESS_C "PC" +#define KEY_MSG_PREFIX_RELEASE_C "RC" + +#ifndef KEY_HOME +#define KEY_HOME "XF86Phone" +#endif /* KEY_HOME */ +#endif /* HOME_KEY_EMULATION */ + +//static E_DBus_Connection *edbus_conn=NULL; +//static E_DBus_Signal_Handler *edbus_handler=NULL; +static Eina_Bool home_button_pressed = EINA_FALSE; +static Eina_Bool show_hide_pressed = EINA_FALSE; +Evas_Coord_Point indicator_press_coord = {0,0}; +Ecore_Timer *clock_timer; +static Ecore_Timer *listen_timer = NULL; +int is_transparent = 0; +int current_angle = 0; +int current_state = 0; +static int bFirst_opacity = 1; + +static int _window_new(void *data); +static int _window_del(void *data); +static void _indicator_low_bat_cb(app_event_info_h event_info, void *data); +static void _indicator_lang_changed_cb(app_event_info_h event_info, void *data); +static void _indicator_region_changed_cb(app_event_info_h event_info, void *data); +static void _indicator_window_delete_cb(void *data, Evas_Object * obj, void *event); +//static Eina_Bool _indicator_client_message_cb(void *data, int type, void *event); +static void _indicator_mouse_down_cb(void *data, Evas * e, Evas_Object * obj, void *event); +static void _indicator_mouse_move_cb(void *data, Evas * e, Evas_Object * obj, void *event); +static void _indicator_mouse_up_cb(void *data, Evas * e, Evas_Object * obj, void *event); + + +static void _indicator_low_bat_cb(app_event_info_h event_info, void *data) +{ +} + +static void _indicator_lang_changed_cb(app_event_info_h event_info, void *data) +{ + modules_lang_changed(data); +} + +static void _indicator_region_changed_cb(app_event_info_h event_info, void *data) +{ + modules_region_changed(data); +} + +static void _indicator_window_delete_cb(void *data, Evas_Object * obj, void *event) +{ + ret_if(!data); + + _window_del((struct appdata *)data); +} + +static void _indicator_notify_pm_state_cb(keynode_t * node, void *data) +{ + static int nMove = 0; + static int nIndex = 1; + int val = -1; + + ret_if(!data); + + if (vconf_get_int(VCONFKEY_PM_STATE, &val) < 0) return; + + switch (val) { + case VCONFKEY_PM_STATE_LCDOFF: + if (clock_timer != NULL) { + ecore_timer_del(clock_timer); + clock_timer = NULL; + } + case VCONFKEY_PM_STATE_SLEEP: // lcd off 2 + /* FIXME */ + nMove = nMove+nIndex; + if(nMove>=4) + nIndex = -1; + else if(nMove<=0) + nIndex = 1; + { + char temp[30] = {0,}; + sprintf(temp,"indicator.padding.resize.%d",nMove); + util_signal_emit(data,temp,"indicator.prog"); + } + icon_set_update_flag(0); + box_noti_ani_handle(0); + break; + case VCONFKEY_PM_STATE_NORMAL: + if (!icon_get_update_flag()) { + icon_set_update_flag(1); + box_noti_ani_handle(1); + modules_wake_up(data); + } + break; + case VCONFKEY_PM_STATE_LCDDIM: + default: + break; + } +} + +static void _indicator_power_off_status_cb(keynode_t * node, void *data) +{ + int val = -1; + + ret_if(!data); + + if (vconf_get_int(VCONFKEY_SYSMAN_POWER_OFF_STATUS, &val) < 0) return; + + switch (val) { + case VCONFKEY_SYSMAN_POWER_OFF_DIRECT: + case VCONFKEY_SYSMAN_POWER_OFF_RESTART: + ui_app_exit(); + break; + default: + break; + } + +} + +static void _indicator_lock_status_cb(keynode_t * node, void *data) +{ + static int lockstate = 0; + extern int clock_mode; + int val = -1; + + ret_if(!data); + + if (vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &val) < 0) return; + if (val == lockstate) return; + + lockstate = val; + + switch (val) { + case VCONFKEY_IDLE_UNLOCK: + if (!clock_mode) util_signal_emit(data,"clock.font.12","indicator.prog"); + else util_signal_emit(data,"clock.font.24","indicator.prog"); + break; + case VCONFKEY_IDLE_LOCK: + /*case VCONFKEY_IDLE_LAUNCHING_LOCK: + util_signal_emit(data,"clock.invisible","indicator.prog"); + break;*/ + default: + break; + } + +} + +static void _rotate_window(struct appdata *ad, int new_angle) +{ + ret_if(!ad); + + _D("Indicator angle is %d degree", new_angle); + + current_angle = new_angle; + + switch (new_angle) { + case 0: + case 180: + evas_object_resize(ad->win.win, ad->win.port_w, ad->win.h); + break; + case 90: + case 270: + evas_object_resize(ad->win.win, ad->win.land_w, ad->win.h); + break; + default: + break; + } +} + +#ifdef INDICATOR_SUPPORT_OPACITY_MODE +static void _change_opacity(void *data, enum indicator_opacity_mode mode) +{ + struct appdata *ad = NULL; + const char *signal = NULL; + retif(data == NULL, , "Invalid parameter!"); + + ad = data; + + if (bFirst_opacity==1) bFirst_opacity = 0; + + switch (mode) { + case INDICATOR_OPACITY_OPAQUE: + signal = "bg.opaque"; + ad->opacity_mode = mode; + break; + case INDICATOR_OPACITY_TRANSLUCENT: + signal = "bg.translucent"; + ad->opacity_mode = mode; + break; + case INDICATOR_OPACITY_TRANSPARENT: + signal = "bg.transparent"; + ad->opacity_mode = mode; + break; + default: + _E("unknown mode : %d", mode); + signal = "bg.opaque"; + ad->opacity_mode = INDICATOR_OPACITY_OPAQUE; + break; + + } + util_signal_emit_by_win(&(ad->win),signal, "indicator.prog"); +} +#if 0 +static void _indicator_quickpanel_changed(void *data, int is_open) +{ + int val = 0; + + ret_if(!data); + + if (vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &val) < 0) return; + if (val == VCONFKEY_IDLE_LOCK) return; +} +#endif +#endif /* INDICATOR_SUPPORT_OPACITY_MODE */ + +#if 0 +static Eina_Bool _indicator_client_message_cb(void *data, int type, void *event) +{ + Ecore_X_Event_Client_Message *ev = (Ecore_X_Event_Client_Message *) event; + struct appdata *ad = NULL; + ad = data; + + retv_if(data == NULL || event == NULL, ECORE_CALLBACK_RENEW); + if (ev->message_type == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE) { + if (ev->data.l[0] == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON) { + _indicator_quickpanel_changed(data, 1); + } else if (ev->data.l[0] == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF) { + _indicator_quickpanel_changed(data, 0); + } + } + + if (ev->message_type == ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE) { + int new_angle = 0; + if(ev->win != ad->active_indi_win) { + return ECORE_CALLBACK_RENEW; + } + new_angle = ev->data.l[0]; + _rotate_window(ad, new_angle); + } + return EINA_TRUE; +} +#endif + +static Eina_Bool _active_indicator_handle(void* data,int type) +{ + int trans_mode = 0; + int angle = 0; +// Ecore_X_Illume_Indicator_Opacity_Mode illume_opacity = 0; + + retv_if(!data, EINA_FALSE); + + struct appdata *ad = (struct appdata *)data; + switch (type) { + /* Opacity */ + case 1: +#if 0 + illume_opacity = ecore_x_e_illume_indicator_opacity_get(ad->active_indi_win); + + switch(illume_opacity) { + case ECORE_X_ILLUME_INDICATOR_OPAQUE: + trans_mode = INDICATOR_OPACITY_OPAQUE; + break; + case ECORE_X_ILLUME_INDICATOR_TRANSLUCENT: + trans_mode = INDICATOR_OPACITY_TRANSLUCENT; + break; + case ECORE_X_ILLUME_INDICATOR_TRANSPARENT: + trans_mode = INDICATOR_OPACITY_TRANSPARENT; + break; + default: + trans_mode = INDICATOR_OPACITY_OPAQUE; + break; + } +#endif + _change_opacity(ad, trans_mode); + break; + /* Rotate */ + case 2: + util_win_prop_angle_get(ad->active_indi_win, &angle); + _rotate_window(ad, angle); + break; + default : + break; + } + + return EINA_TRUE; +} + +static Eina_Bool _property_changed_cb(void *data, int type, void *event) +{ +#if 0 +// Ecore_X_Event_Window_Property *ev = event; + struct appdata *ad = NULL; + + ad = data; + retv_if(!data, EINA_FALSE); +// retv_if(!ev, EINA_FALSE); + if (ev->atom == ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE) { + if (ev->win == ad->active_indi_win) { + _active_indicator_handle(data, 2); + } + } else if (ev->atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE) { + if (ev->win == ad->active_indi_win) { + _active_indicator_handle(data, 1); + } + } else if (ev->atom == ad->atom_active) { + int ret = 0; + + Ecore_X_Window active_win; + + ret = ecore_x_window_prop_window_get(elm_win_xwindow_get(ad->win_overlay), ad->atom_active, &(active_win), 1); + if (ret == -1) return EINA_FALSE; + + if (active_win != ad->active_indi_win) { + if (ad->active_indi_win != -1) { + ecore_x_window_unsniff(ad->active_indi_win); + _D("UNSNIFF API %x", ad->active_indi_win); + } + ad->active_indi_win = active_win; + + ecore_x_window_sniff(ad->active_indi_win); + if (indicator_message_retry_check()) { + indicator_message_display_trigger(); + } + } + + _active_indicator_handle(data, 1); + _active_indicator_handle(data, 2); + } +#endif + return EINA_TRUE; +} + +#if 0 +static void _mctrl_monitor_cb(minicontrol_action_e action, const char *name, unsigned int width, unsigned int height, minicontrol_priority_e priority, void *data) +{ + ret_if(!data); + ret_if(!name); + + modules_minictrl_control(action,name,data); +} +#endif + +static void _indicator_ecore_evas_msg_parent_handle(Ecore_Evas *ee, int msg_domain, int msg_id, void *data, int size) +{ + ret_if(!data); + +#ifdef _SUPPORT_SCREEN_READER + if (msg_domain == MSG_DOMAIN_CONTROL_ACCESS) { + struct appdata *ad = (struct appdata *)ecore_evas_data_get(ee,"indicator_app_data"); + + ret_if(!ad); + + Elm_Access_Action_Info *action_info; + Evas_Object* win = NULL; + action_info = data; + + win = ad->win.win; + + if (msg_id == ELM_ACCESS_ACTION_ACTIVATE) { + elm_access_action(win, action_info->action_type,action_info); + } else if (msg_id == ELM_ACCESS_ACTION_HIGHLIGHT_NEXT) { + action_info->highlight_cycle = EINA_TRUE; + elm_access_action(win,action_info->action_type,action_info); + } else if (msg_id == ELM_ACCESS_ACTION_HIGHLIGHT_PREV) { + action_info->highlight_cycle = EINA_TRUE; + elm_access_action(win,action_info->action_type,action_info); + } else if (msg_id == ELM_ACCESS_ACTION_UNHIGHLIGHT) { + elm_access_action(win,action_info->action_type,action_info); + } else if (msg_id == ELM_ACCESS_ACTION_READ) { + elm_access_action(win,action_info->action_type,action_info); + } + } +#endif /* _SUPPORT_SCREEN_READER */ +} + +#if 0 +static void on_changed_receive(void *data, DBusMessage *msg) +{ + int r; + + r = dbus_message_is_signal(msg, INTERFACE_NAME, MEMBER_NAME); + ret_if(!r); + + _D("LCD On handling"); + + if (!icon_get_update_flag()) { + icon_set_update_flag(1); + box_noti_ani_handle(1); + modules_wake_up(data); + } +} + +static void edbus_cleaner(void) +{ + if (!edbus_conn) { + _D("already unregistered"); + return; + } + + if (edbus_handler) { + e_dbus_signal_handler_del(edbus_conn, edbus_handler); + edbus_handler = NULL; + } + + if (edbus_conn) { + e_dbus_connection_close(edbus_conn); + edbus_conn = NULL; + } + + e_dbus_shutdown(); +} + +static int edbus_listener(void* data) +{ + if (edbus_conn != NULL) { + _D("alreay exist"); + return -1; + } + + e_dbus_init(); + + edbus_conn = e_dbus_bus_get(DBUS_BUS_SYSTEM); + if (!edbus_conn) { + _E("e_dbus_bus_get error"); + return -1; + } + + edbus_handler = e_dbus_signal_handler_add(edbus_conn, NULL, PATH_NAME, INTERFACE_NAME, MEMBER_NAME, on_changed_receive, data); + if (!edbus_handler) { + _E("e_dbus_signal_handler_add error"); + return -1; + } + + return 0; +} +#endif + +static void _register_event_handler_both(win_info *win, void *data) +{ + Ecore_Evas *ee; + + ret_if(!win); + + ee = ecore_evas_ecore_evas_get(evas_object_evas_get(win->win)); + + evas_object_smart_callback_add(win->win,"delete,request", _indicator_window_delete_cb, data); + evas_object_event_callback_add(win->layout, EVAS_CALLBACK_MOUSE_DOWN, _indicator_mouse_down_cb, win); + evas_object_event_callback_add(win->layout, EVAS_CALLBACK_MOUSE_MOVE, _indicator_mouse_move_cb, win); + evas_object_event_callback_add(win->layout, EVAS_CALLBACK_MOUSE_UP,_indicator_mouse_up_cb, win); + ecore_evas_callback_msg_parent_handle_set(ee, _indicator_ecore_evas_msg_parent_handle); + ecore_evas_data_set(ee,"indicator_app_data",data); +} + +static void register_event_handler(void *data) +{ + struct appdata *ad = data; +// Ecore_Event_Handler *hdl = NULL; + ret_if(!data); + + _register_event_handler_both(&(ad->win),data); + +#if 0 + hdl = ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, _indicator_client_message_cb, (void *)ad); + ret_if(!hdl); + ad->evt_handlers = eina_list_append(ad->evt_handlers, hdl); + + hdl = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_PROPERTY, _property_changed_cb, data); + ret_if(!hdl); + ad->evt_handlers = eina_list_append(ad->evt_handlers, hdl); +#endif + if (vconf_notify_key_changed(VCONFKEY_PM_STATE, _indicator_notify_pm_state_cb, (void *)ad) != 0) { + _E("Fail to set callback for VCONFKEY_PM_STATE"); + } + + if (vconf_notify_key_changed(VCONFKEY_SYSMAN_POWER_OFF_STATUS, _indicator_power_off_status_cb, (void *)ad) < 0) { + _E("Failed to set callback for VCONFKEY_SYSMAN_POWER_OFF_STATUS"); + } + + if (vconf_notify_key_changed(VCONFKEY_IDLE_LOCK_STATE, _indicator_lock_status_cb, (void *)ad) < 0) { + _E("Failed to set callback for VCONFKEY_IDLE_LOCK_STATE"); + } + +// edbus_listener(data); +} + +static void _unregister_event_handler_both(win_info *win) +{ + ret_if(!win); + + evas_object_smart_callback_del(win->win, "delete-request", _indicator_window_delete_cb); + evas_object_event_callback_del(win->layout, EVAS_CALLBACK_MOUSE_DOWN, _indicator_mouse_down_cb); + evas_object_event_callback_del(win->layout, EVAS_CALLBACK_MOUSE_MOVE, _indicator_mouse_move_cb); + evas_object_event_callback_del(win->layout, EVAS_CALLBACK_MOUSE_UP, _indicator_mouse_up_cb); +} + +static int unregister_event_handler(void *data) +{ + struct appdata *ad = (struct appdata *)data; + + retv_if(!data, 0); + + _unregister_event_handler_both(&(ad->win)); + + vconf_ignore_key_changed(VCONFKEY_PM_STATE, _indicator_notify_pm_state_cb); + vconf_ignore_key_changed(VCONFKEY_SYSMAN_POWER_OFF_STATUS, _indicator_power_off_status_cb); + vconf_ignore_key_changed(VCONFKEY_IDLE_LOCK_STATE, _indicator_lock_status_cb); + + Ecore_Event_Handler *hdl = NULL; + EINA_LIST_FREE(ad->evt_handlers, hdl) { + if (hdl) ecore_event_handler_del(hdl); + } + +// edbus_cleaner(); + + return OK; +} + +static Evas_Object *_create_layout(Evas_Object * parent, const char *file, const char *group) +{ + Evas_Object *layout = NULL; + int ret; + + layout = elm_layout_add(parent); + if (layout) { + ret = elm_layout_file_set(layout, file, group); + if (!ret) { + evas_object_del(layout); + return NULL; + } + evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(parent, layout); + } + + return layout; +} + +static void _indicator_listen_timer_cb(void* data) +{ + char *indi_name = NULL; + win_info *win = NULL; + + ret_if(!data); + + win = (win_info*)data; + indi_name = "elm_indicator"; + + if (listen_timer != NULL) { + ecore_timer_del(listen_timer); + listen_timer = NULL; + } + + if (!elm_win_socket_listen(win->win , indi_name, 0, EINA_FALSE)) { + _E("faile to elm_win_socket_listen() %x", win->win); + listen_timer = ecore_timer_add(3, (void *)_indicator_listen_timer_cb, win); + } else { + _D("listen success"); + } +} + +static void _create_box(win_info *win) +{ + ret_if(!win); + + /* First, clear layout */ + box_fini(win); + + box_init(win); + + return; +} + +#define qHD_RESOLUTION_WIDTH 540 +#define INDICATOR_HEIGHT_HD 48 +#define INDICATOR_HEIGHT_qHD 38 +#define INDICATOR_HEIGHT_WVGA 36 +static void _create_win(void* data) +{ + char *indi_name = NULL; + struct appdata *ad = NULL; + Ecore_X_Window xwin; +// Ecore_X_Window zone; +// Ecore_X_Window_State states[2]; + int root_w; + int root_h; +// Ecore_X_Window root; + + ret_if(!data); + + _D("Window created"); + + ad = data; + +// root = ecore_x_window_root_first_get(); +// ecore_x_window_size_get(root, &root_w, &root_h); + + if (root_w > qHD_RESOLUTION_WIDTH) { // HD + _D("Window w, h (%d,%d)", root_w, root_h); + ad->win.port_w = root_w; + ad->win.land_w = root_h; + ad->win.h = INDICATOR_HEIGHT_HD; + } else if (root_w < qHD_RESOLUTION_WIDTH) { // WVGA + _D("Window w, h (%d,%d)", root_w, root_h); + ad->win.port_w = root_w; + ad->win.land_w = root_h; + ad->win.h = INDICATOR_HEIGHT_WVGA; + } else { // qHD + _D("Window w, h (%d,%d)", root_w, root_h); + ad->win.port_w = root_w; + ad->win.land_w = root_h; + ad->win.h = INDICATOR_HEIGHT_qHD; + } + + /* Create socket window */ + ad->win.win = elm_win_add(NULL, "portrait_indicator", ELM_WIN_SOCKET_IMAGE); + indi_name = "elm_indicator"; + elm_win_title_set(ad->win.win, "win sock test:port"); + ad->win.w = root_w; + + ret_if(!(ad->win.win)); + + if (!elm_win_socket_listen(ad->win.win , indi_name, 0, EINA_FALSE)) { + _E("failed 1st to elm_win_socket_listen() %x", ad->win.win); + /* Start timer */ + if (listen_timer != NULL) { + ecore_timer_del(listen_timer); + listen_timer = NULL; + } + listen_timer = ecore_timer_add(3, (void *)_indicator_listen_timer_cb, &(ad->win)); + } + elm_win_alpha_set(ad->win.win , EINA_TRUE); + elm_win_borderless_set(ad->win.win , EINA_TRUE); + evas_object_size_hint_fill_set(ad->win.win , EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(ad->win.win , 1.0, 0.5); + + /* make illume2 recognize indicator window */ + xwin = elm_win_xwindow_get(ad->win.win ); +// ecore_x_icccm_hints_set(xwin, 0, 0, 0, 0, 0, 0, 0); +// states[0] = ECORE_X_WINDOW_STATE_SKIP_TASKBAR; +// states[1] = ECORE_X_WINDOW_STATE_SKIP_PAGER; +// ecore_x_netwm_window_state_set(xwin, states, 2); + +// zone = ecore_x_e_illume_zone_get(xwin); +// ecore_x_event_mask_set(zone, ECORE_X_EVENT_MASK_WINDOW_CONFIGURE); + ad->win.evas = evas_object_evas_get(ad->win.win); + + ad->win.layout = _create_layout(ad->win.win, EDJ_FILE0, GRP_MAIN); + ret_if(!(ad->win.layout)); + + _D("win_size = Original(%d, %d), Scaled(%lf, %lf)", ad->win.port_w, ad->win.h, ELM_SCALE_SIZE(ad->win.port_w), ELM_SCALE_SIZE(ad->win.h)); + + evas_object_resize(ad->win.win, ad->win.port_w, ad->win.h); + evas_object_move(ad->win.win, 0, 0); + + _create_box(&(ad->win)); + + ad->win.data = data; + + evas_object_show(ad->win.layout); + evas_object_show(ad->win.win); + + return; +} + + + +static void create_overlay_win(void* data) +{ + struct appdata *ad = data; + + Evas_Object *eo; + int w, h; + int indi_h; +// int id = -1; + Ecore_X_Window xwin; +// Ecore_X_Window zone; +// Ecore_X_Window_State states[2]; +// Ecore_X_Atom ATOM_MV_INDICATOR_GEOMETRY = 0; + + indi_h = (int)ELM_SCALE_SIZE(INDICATOR_HEIGHT); + + ad->active_indi_win = -1; + + eo = elm_win_add(NULL, "INDICATOR", ELM_WIN_BASIC); + /*id = elm_win_aux_hint_add(eo, "wm.policy.win.user.geometry", "1"); + if(id == -1) { + _E("Cannot add user.geometry"); + return; + }*/ + elm_win_title_set(eo, "INDICATOR"); + elm_win_borderless_set(eo, EINA_TRUE); + //ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h); + + _D("win_size = Original(%d, %d), Scaled(%lf, %lf)", 2,2, ELM_SCALE_SIZE(2), ELM_SCALE_SIZE(2)); + evas_object_resize(eo, ELM_SCALE_SIZE(2), ELM_SCALE_SIZE(2)); + + evas_object_move(eo , 0, 0); + elm_win_alpha_set(eo, EINA_TRUE); + + xwin = elm_win_xwindow_get(eo); +// ecore_x_icccm_hints_set(xwin, 0, 0, 0, 0, 0, 0, 0); +// states[0] = ECORE_X_WINDOW_STATE_SKIP_TASKBAR; +// states[1] = ECORE_X_WINDOW_STATE_SKIP_PAGER; +// ecore_x_netwm_window_state_set(xwin, states, 2); + +// ecore_x_icccm_name_class_set(xwin, "INDICATOR", "INDICATOR"); + +// ecore_x_netwm_window_type_set(xwin, ECORE_X_WINDOW_TYPE_DOCK); + + unsigned int ind_gio_val[16] = { 0, 0, w, indi_h, /* angle 0 (x,y,w,h) */ + 0, 0, indi_h, h, /* angle 90 (x,y,w,h) */ + 0, h-indi_h, w, indi_h, /* angle 180 (x,y,w,h) */ + w-indi_h, 0, indi_h, h /* angle 270 (x,y,w,h) */ }; + +// ATOM_MV_INDICATOR_GEOMETRY = ecore_x_atom_get(STR_ATOM_MV_INDICATOR_GEOMETRY); + +// ecore_x_window_prop_card32_set(xwin, ATOM_MV_INDICATOR_GEOMETRY, ind_gio_val, 16); + +// zone = ecore_x_e_illume_zone_get(xwin); +// ecore_x_event_mask_set(zone, ECORE_X_EVENT_MASK_WINDOW_CONFIGURE); + evas_object_show(eo); + + ad->win_overlay = eo; +// ad->atom_active = ecore_x_atom_get("_E_ACTIVE_INDICATOR_WIN"); + + return ; +} + + + +static void _init_win_info(void * data) +{ + struct appdata *ad = data; + retif(data == NULL, , "Invalid parameter!"); + + memset(&(ad->win),0x00,sizeof(win_info)); + + ad->win_overlay = NULL; +} + + + +static void _init_tel_info(void * data) +{ + int i = 0; + struct appdata *ad = data; + retif(data == NULL, , "Invalid parameter!"); + + for(i = 0; i < SIM_CNT_MAX; i++) { + memset(&(ad->tel_info[i]),0x00,sizeof(telephony_info)); + } +} + + + +static int _window_new(void *data) +{ + retif(data == NULL, FAIL, "Invalid parameter!"); + + _init_win_info(data); + _init_tel_info(data); + + /* Create indicator window */ + _create_win(data); + + return INDICATOR_ERROR_NONE; +} + + + +static int _window_del(void *data) +{ + struct appdata *ad = (struct appdata *)data; + + retif(data == NULL, FAIL, "Invalid parameter!"); + + modules_fini(data); + unregister_event_handler(ad); + + box_fini(&(ad->win)); + evas_image_cache_flush(ad->win.evas); + evas_object_del(ad->win.layout); + ad->win.layout = NULL; + + evas_object_del(ad->win.win); + ad->win.win = NULL; + + evas_object_del(ad->win_overlay); + ad->win_overlay = NULL; + + if (ad) free(ad); + + elm_exit(); + return OK; +} + +static void __indicator_set_showhide_press(int value, int line) +{ + show_hide_pressed = value; +} + +static void _indicator_mouse_down_cb(void *data, Evas * e, Evas_Object * obj, void *event) +{ + win_info *win = (win_info*)data; + Evas_Event_Mouse_Down *ev = NULL; + + retif(data == NULL || event == NULL, , "Invalid parameter!"); + ev = event; + + win->mouse_event.x = ev->canvas.x; + win->mouse_event.y = ev->canvas.y; + + if (ev->button != 1) { + return; + } + +#ifdef HOME_KEY_EMULATION + if (box_check_indicator_area(win, ev->canvas.x, ev->canvas.y)) { + int lock_state = VCONFKEY_IDLE_UNLOCK; + int ps_state = -1; + int ret = -1; + + /* if (indicator_message_disp_check(win->type) == 1) { + return; + }*/ + ret = vconf_get_int(VCONFKEY_IDLE_LOCK_STATE,&lock_state); + + if (ret != 0 || lock_state == VCONFKEY_IDLE_LOCK) { + return; + } + ret = vconf_get_int(VCONFKEY_SETAPPL_PSMODE,&ps_state); + + if (ret != 0 || ps_state == SETTING_PSMODE_EMERGENCY) { + return; + } + + if (box_check_home_icon_area(win, ev->canvas.x, ev->canvas.y)) { + + if (util_check_system_status() == FAIL) { + _D("util_check_system_status failed"); + return; + } + home_button_pressed = EINA_TRUE; + } + indicator_press_coord.x = ev->canvas.x; + indicator_press_coord.y = ev->canvas.y; + } +#endif +} + + + +static void _indicator_mouse_move_cb(void *data, Evas * e, Evas_Object * obj, void *event) +{ + Evas_Event_Mouse_Move *ev = NULL; + win_info* win = (win_info*)data; + + retif(data == NULL || event == NULL, , "Invalid parameter!"); + + ev = event; + + if (home_button_pressed) { + if (!box_check_home_icon_area(win,ev->cur.canvas.x,ev->cur.canvas.y)) { + home_button_pressed = FALSE; + } + + } + if (show_hide_pressed == 1) { + if (!box_check_more_icon_area(win,ev->cur.canvas.x,ev->cur.canvas.y)) { + __indicator_set_showhide_press(EINA_FALSE, __LINE__); + } + } +} + +static void _indicator_mouse_up_cb(void *data, Evas * e, Evas_Object * obj, void *event) +{ + Evas_Event_Mouse_Up *ev = NULL; + win_info *win = (win_info *)data; + + retif(data == NULL || event == NULL, , "Invalid parameter!"); + + ev = event; + +#ifdef HOME_KEY_EMULATION + if (box_check_indicator_area(win, ev->canvas.x, ev->canvas.y)) { + + if (box_check_home_icon_area(win, ev->canvas.x, ev->canvas.y)) { + if (home_button_pressed == EINA_TRUE) { + util_launch_search(win->data); + feedback_play_type(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_TAP); + } + + } else if (box_check_more_icon_area(win, ev->canvas.x, ev->canvas.y)) { + if(show_hide_pressed == EINA_TRUE) { + DBG("pressed area"); + feedback_play_type(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_TAP); + } + } + } + + home_button_pressed = EINA_FALSE; + __indicator_set_showhide_press(EINA_FALSE, __LINE__); + +#else /* HOME_REMOVE_LONGPRESS */ + int mouse_up_prio = -1; + int mouse_down_prio = -1; + + if (home_button_pressed == EINA_TRUE) { + home_button_pressed = EINA_FALSE; + } + + mouse_down_prio = + box_get_priority_in_move_area(win,win->mouse_event.x, + win->mouse_event.y); + mouse_up_prio = box_get_priority_in_move_area(win,ev->canvas.x, + ev->canvas.y); + + if (mouse_down_prio > -1 && mouse_up_prio > -1 + && mouse_down_prio == mouse_up_prio) { + switch (mouse_down_prio) { + case INDICATOR_PRIORITY_FIXED1: + int lock_state = VCONFKEY_IDLE_UNLOCK; + int lock_ret = -1; + + lock_ret = vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, + &lock_state); + + /* In Lock Screen, home button don't have to do */ + if (lock_ret == 0 && lock_state == VCONFKEY_IDLE_LOCK) + break; + + char *top_win_name = NULL; + + if (util_check_system_status() == FAIL) + break; + break; + } + } +#endif /* HOME_KEY_EMULATION */ + win->mouse_event.x = 0; + win->mouse_event.y = 0; +} + +#if 0 +static void _app_terminate_cb(app_context_h app_context, app_context_status_e status, void *data) +{ + retif(data == NULL, , "Invalid parameter!"); + DBG("_app_terminate_cb"); + char *app_id = NULL; + app_context_get_app_id(app_context, &app_id); + if (app_id == NULL) { + ERR("app_id is null!!"); + return; + } else { + DBG("_app_terminate_cb %s",app_id); + } + + if (status == APP_CONTEXT_STATUS_TERMINATED) { + if (strcmp(MP_APP_ID,app_id) == 0) { + DBG("hide music icon"); + hide_mp_icon(); + } else if(strcmp(FMRADIO_APP_ID,app_id) == 0) { + DBG("hide fm radio icon"); + hide_fm_radio_icon(); + } else if(strcmp(VR_APP_ID,app_id) == 0) { + DBG("hide voice recorder icon"); + hide_voice_recorder_icon(); + } + } + if (app_id!=NULL) { + free(app_id); + app_id = NULL; + } +} + +static void register_app_terminate_cb(void* data) +{ + retif(data == NULL, , "Invalid parameter!"); + app_manager_set_app_context_status_cb(_app_terminate_cb, MP_APP_ID, data); + app_manager_set_app_context_status_cb(_app_terminate_cb, FMRADIO_APP_ID, data); + app_manager_set_app_context_status_cb(_app_terminate_cb, VR_APP_ID, data); +} +#endif + +static void _signal_handler(int signum, siginfo_t *info, void *unused) +{ + ui_app_exit(); +} + +static bool app_create(void *data) +{ + struct appdata *ad = NULL; + int ret; + + ad = data; + elm_app_base_scale_set(1.7); + + /* Signal handler */ + struct sigaction act; + memset(&act,0x00,sizeof(struct sigaction)); + act.sa_sigaction = _signal_handler; + act.sa_flags = SA_SIGINFO; + + ret = sigemptyset(&act.sa_mask); + if (ret < 0) { + ERR("Failed to sigemptyset[%s]", strerror(errno)); + } + ret = sigaddset(&act.sa_mask, SIGTERM); + if (ret < 0) { + ERR("Failed to sigaddset[%s]", strerror(errno)); + } + ret = sigaction(SIGTERM, &act, NULL); + if (ret < 0) { + ERR("Failed to sigaction[%s]", strerror(errno)); + } + + ret = _window_new(ad); + if (ret != INDICATOR_ERROR_NONE) { + _D("Failed to create a new window!"); + } + + /* Set nonfixed-list size for display */ + modules_init_first(ad); + + if (ad->win.win) { + elm_win_activate(ad->win.win); + } + evas_object_show(ad->win.layout); + evas_object_show(ad->win.win); + + return true; +} + +static void app_terminate(void *data) +{ + struct appdata *ad = data; + modules_fini(data); + ticker_fini(ad); + indicator_message_fini(); +#ifdef _SUPPORT_SCREEN_READER2 + indicator_service_tts_fini(data); +#endif + + unregister_event_handler(ad); + + feedback_deinitialize(); + + box_fini(&(ad->win)); + evas_image_cache_flush(ad->win.evas); + evas_object_del(ad->win.layout); + evas_object_del(ad->win.win); + + _D("INDICATOR IS TERMINATED"); +} + +static void app_pause(void *data) +{ +} + +static void app_resume(void *data) +{ +} + +static void app_service(app_control_h service, void *data) +{ + struct appdata *ad = data; + + _D("INDICATOR IS STARTED"); + + create_overlay_win(data); + register_event_handler(ad); + modules_init(data); +#ifdef _SUPPORT_SCREEN_READER + modules_register_tts(data); +#endif + feedback_initialize(); + indicator_message_init(data); + if (INDICATOR_ERROR_NONE != ticker_init(ad)) { + _E("Ticker cannot initialize"); + } +#ifdef _SUPPORT_SCREEN_READER2 + indicator_service_tts_init(data); +#endif + _indicator_lock_status_cb(NULL,data); +#if 0 + register_app_terminate_cb(data); +#endif +} + +int main(int argc, char *argv[]) +{ + struct appdata ad; + + ui_app_lifecycle_callback_s event_callback = {0,}; + app_event_handler_h handlers[5] = {NULL, }; + + int ret = 0; + + _D("Start indicator"); + + ret = perm_app_set_privilege("org.tizen.", NULL, NULL); + if (ret != PC_OPERATION_SUCCESS) { + _E("[INDICATOR] Failed to set privilege (%d)", ret); + } + + event_callback.create = app_create; + event_callback.terminate = app_terminate; + event_callback.pause = app_pause; + event_callback.resume = app_resume; + event_callback.app_control = app_service; + + ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, NULL, NULL); + ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, _indicator_low_bat_cb, NULL); + ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, NULL, NULL); + ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, _indicator_lang_changed_cb, &ad); + ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, _indicator_region_changed_cb, NULL); + + memset(&ad, 0x0, sizeof(struct appdata)); + + ret = ui_app_main(argc, argv, &event_callback, &ad); + if (ret != APP_ERROR_NONE) { + _E("app_main() is failed. err = %d", ret); + } + + return ret; +} + +/* End of file */ diff --git a/daemon/main.h b/daemon/main.h new file mode 100644 index 0000000..1a06ff1 --- /dev/null +++ b/daemon/main.h @@ -0,0 +1,150 @@ +/* + * Indicator + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +#ifndef __DEF_indicator_H_ +#define __DEF_indicator_H_ + +#include +//#include +#include +#include "indicator.h" + +#if !defined(PACKAGE) +# define PACKAGE "indicator" +#endif + +#if !defined(PACKAGEID) +# define PACKAGEID "org.tizen.indicator" +#endif + +#if !defined(LOCALEDIR) +# define LOCALEDIR "/usr/apps/org.tizen.indicator/res/locale" +#endif + +#if !defined(EDJDIR) +# define EDJDIR "/usr/apps/org.tizen.indicator/res/edje" +#endif + +#if !defined(ICONDIR) +# define ICONDIR "/usr/apps/org.tizen.indicator/res/icons" +#endif + +#if !defined(CHANGEABLEDIR) +# define CHANGEABLEDIR "/usr/apps/org.tizen.indicator/shared/res/tables" +#endif + +#define EDJ_FILE0 EDJDIR"/"PACKAGE"_port.edj" +#define EDJ_FILE1 EDJDIR"/"PACKAGE"_land.edj" +#define ICON_THEME_FILE EDJDIR"/"PACKAGE"_icon_theme.edj" +#define ICON_NONFIXED_THEME_FILE EDJDIR"/"PACKAGE"_icon_nonfixed_theme.edj" +#define ICON_NONFIXED_THEME_ANI_FILE EDJDIR"/"PACKAGE"_icon_animation.edj" +#define ICON_NONFIXED_THEME_SYNC_FILE EDJDIR"/"PACKAGE"_icon_activesync.edj" + +#define CHANGEABLE_COLOR_FILE CHANGEABLEDIR"/"PACKAGEID"_ChangeableColorInfo.xml" +#define CHANGEABLE_FONT_FILE CHANGEABLEDIR"/"PACKAGEID"_ChangeableFontInfo.xml" + + +#define _S(str) dgettext("sys_string", str) + +#define HOME_SCREEN_NAME "org.tizen.live-magazine" +#define MENU_SCREEN_NAME "org.tizen.menu-screen" +#define LOCK_SCREEN_NAME "org.tizen.idle-lock" +#define QUICKPANEL_NAME "E Popup" +#define CALL_NAME "org.tizen.call-ui" +#define VTCALL_NAME "org.tizen.vtmain" + +#define MENUSCREEN_PKG_NAME "org.tizen.menuscreen" +#define APP_TRAY_PKG_NAME "org.tizen.app-tray" +#define SEARCH_PKG_NAME "org.tizen.sfinder" + +#define MSG_DOMAIN_CONTROL_INDICATOR 0x10001 +#define MSG_ID_INDICATOR_REPEAT_EVENT 0x10002 +#define MSG_ID_INDICATOR_ROTATION 0x10003 +#define MSG_ID_INDICATOR_OPACITY 0X1004 +#define MSG_ID_INDICATOR_TYPE 0X1005 +#define MSG_ID_INDICATOR_OPACITY_OSP 0X10061 +#define MSG_ID_INDICATOR_ANI_START 0x10006 + +#define MSG_DOMAIN_CONTROL_ACCESS (int)ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL + +#define SIM_CNT_MAX 2 + +enum _win_type { + /* Clock view */ + TOP_WIN_NORMAL = 0, + TOP_WIN_LOCK_SCREEN, + /* Full line of indicator */ + /* CAUTION: Don't change order! */ + TOP_WIN_CALL, + TOP_WIN_MENU_SCREEN, + TOP_WIN_HOME_SCREEN, + TOP_WIN_QUICKPANEL +}; + +enum indicator_opacity_mode{ + INDICATOR_OPACITY_OPAQUE = 0, + INDICATOR_OPACITY_TRANSLUCENT, + INDICATOR_OPACITY_TRANSPARENT, +}; + +typedef struct _telephony_info +{ + int network_service_type; + int network_ps_type; + int roaming_status; + int signal_level; + int prefered_data; + int prefered_voice; + int default_network; + int sim_status; + int call_forward; + + void* data; +}telephony_info; + +struct appdata { + + win_info win; + telephony_info tel_info[SIM_CNT_MAX]; + int prefered_data; // Data prefered + Evas_Object* win_overlay; + + double scale; + int angle; + + Eina_List *evt_handlers; + + enum indicator_opacity_mode opacity_mode; + + Ecore_X_Atom atom_active; + Ecore_X_Window active_indi_win; + //Ea_Theme_Color_Table *color_table; + Eina_List *font_table; + + void (*update_display) (int); +}; + +int isSimShowing; // For Simcard Icon +int isRSSI1Showing; // For RSSI1 Icon +int isRSSI2Showing; // For RSSI2 Icon +int isSilentShowing; // For Silent Icon +int isWifiDirectShowing; // For WiFi Direct Icon + +#endif /* __DEF_indicator_H__ */ diff --git a/daemon/message.c b/daemon/message.c new file mode 100644 index 0000000..1eb5d7d --- /dev/null +++ b/daemon/message.c @@ -0,0 +1,677 @@ +/* + * Indicator + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + + +#include +//#include + +#include "main.h" +#include "common.h" +#include "util.h" +#include "tts.h" +#include "box.h" + + +#define MSG_TIMEOUT 3 +#define STR_BUF_SIZE 256 +#define QUEUE_TIMEOUT 1 +#define QUEUE_TIMEOUT2 5 +#define QUEUE_SIZE 5 + +#define MESSAGE_LINE1 "message.text" +#define MESSAGE_LINE2 "message.text2" + + +typedef struct _str_buf { + char *data; + int index; + double timer_val; +} MsgBuf; + + +static int msg_type = 0; +static Ecore_Timer *msg_timer = NULL; +static Ecore_Timer *ani_temp_timer = NULL; + +extern int current_angle; +static int block_width = 0; +static int string_width = 0; +static char* message_buf = NULL; +static Ecore_Timer *retry_timer=NULL; +static int msg_retry = 0; +static struct appdata *app_data = NULL; +static Ecore_Timer *queue_timer=NULL; +static int current_buf_index = 0; +static int current_buf_cnt = 0; +static MsgBuf msg_queue[QUEUE_SIZE]; + + + +static Eina_Bool _ani_temp_timeout_cb(void *data) +{ + retif(data == NULL, ECORE_CALLBACK_CANCEL, "Invalid parameter!"); + + if (ani_temp_timer) + { + ecore_timer_del(ani_temp_timer); + ani_temp_timer = NULL; + } + + return ECORE_CALLBACK_CANCEL; +} + + + +void start_temp_ani_timer(void* data) +{ + retif(data == NULL, , "Invalid parameter!"); + win_info* win = (win_info*)data; + + if(ani_temp_timer != NULL) + { + ecore_timer_del(ani_temp_timer); + ani_temp_timer = NULL; + } + ani_temp_timer = ecore_timer_add(0.3, (Ecore_Task_Cb)_ani_temp_timeout_cb, (void*)win); + +} + + + +static void _hide_message(void* data) +{ + retif(data == NULL, , "Invalid parameter!"); + win_info* win = NULL; + win = (win_info*)data; + + box_update_display(win); + + start_temp_ani_timer(data); + util_signal_emit_by_win(win,"message.hide", "indicator.prog"); +} + + + +static void _hide_message_all(void* data) +{ + retif(data == NULL, , "Invalid parameter!"); + + util_signal_emit(data,"message.line2.hide.noeffect","indicator.prog"); +} + + + +static void _show_message(void* data) +{ + retif(data == NULL, , "Invalid parameter!"); + win_info* win = NULL; + win = (win_info*)data; + struct appdata* ad = (struct appdata*)win->data; + + start_temp_ani_timer(data); + if(ad->opacity_mode==INDICATOR_OPACITY_TRANSPARENT) + { + DBG("Transparent"); + util_signal_emit_by_win(win,"message.show.noeffect", "indicator.prog"); + evas_object_show(win->win); + } + else + { + util_signal_emit_by_win(win,"message.show", "indicator.prog"); + } +} + + + +static void _show_message_line2(void* data) +{ + retif(data == NULL, , "Invalid parameter!"); + win_info* win = NULL; + win = (win_info*)data; + + if (win) + { + util_signal_emit_by_win(win,"message.line2.show", "indicator.prog"); + } +} + + + +static Eina_Bool _msg_timeout_cb(void *data) +{ + retif(data == NULL, ECORE_CALLBACK_CANCEL, "Invalid parameter!"); + + win_info* win = (win_info*)data; + + if(msg_type == 1) + { + msg_timer = NULL; + _hide_message(win); + return ECORE_CALLBACK_CANCEL; + } + else if(msg_type == 2) + { + + msg_type = 0; + if (msg_timer) + { + ecore_timer_del(msg_timer); + } + msg_timer = ecore_timer_add(3, (Ecore_Task_Cb)_msg_timeout_cb, (void*)win); + _show_message_line2(win); + return ECORE_CALLBACK_CANCEL; + } + else + { + msg_type = 0; + msg_timer = NULL; + _hide_message(win); + return ECORE_CALLBACK_CANCEL; + } +} + + + +static Eina_Bool _retry_timeout_cb(void *data) +{ + retif(data == NULL,TRUE , "Invalid parameter!"); + + if(message_buf!=NULL) + { + free(message_buf); + message_buf = NULL; + } + + if (retry_timer!=NULL) + { + ecore_timer_del(retry_timer); + retry_timer = NULL; + } + return TRUE; + +} + + + +static int __get_block_width(void* data, const char* part) +{ + Evas_Object * eo = NULL; + int geo_dx = 0; + int geo_dy = 0; + retif(data == NULL,-1, "Invalid parameter!"); + retif(part == NULL,-1, "Invalid parameter!"); + + win_info* win = (win_info*)data; + + eo = (Evas_Object *) edje_object_part_object_get(elm_layout_edje_get(win->layout), part); + + evas_object_geometry_get(eo, NULL, NULL, &geo_dx, &geo_dy); + + return geo_dx; +} + + + +static int __get_string_width(void* data, const char* part) +{ + Evas_Object * eo = NULL; + int text_dx = 0; + int text_dy = 0; + retif(data == NULL,-1, "Invalid parameter!"); + retif(part == NULL,-1, "Invalid parameter!"); + + win_info* win = (win_info*)data; + + eo = (Evas_Object *) edje_object_part_object_get(elm_layout_edje_get(win->layout), part); + + evas_object_textblock_size_formatted_get(eo, &text_dx, &text_dy); + + return text_dx; +} + + + +static void __handle_2line(win_info* win,char* origin, char* part1, char* part2) +{ + retif(origin == NULL, , "Invalid parameter!"); + retif(part1 == NULL, , "Invalid parameter!"); + retif(part2 == NULL, , "Invalid parameter!"); + int index = 0; + Eina_Unicode *uni_out = NULL; + Eina_Unicode buf[STR_BUF_SIZE] = {0,}; + int len = 0; + int len2 = 0; + Eina_Unicode temp1[STR_BUF_SIZE] = {0,}; + Eina_Unicode temp2[STR_BUF_SIZE] = {0,}; + char* out1 = NULL; + char* out2 = NULL; + int char_len1 = 0; + int char_len2 = 0; + + uni_out = eina_unicode_utf8_to_unicode(origin, &len); + + if(len >= STR_BUF_SIZE) + { + len2 = STR_BUF_SIZE-1; + } + else + { + len2 = len; + } + + eina_unicode_strncpy(buf,uni_out,len2); + + int exceed_index = len2 * block_width / string_width; + { + int i = 0; + for(i=0;i<100;i++) + { + Eina_Unicode temp1[STR_BUF_SIZE] = {0,}; + int char_len1 = 0; + char* out1 = NULL; + int width = 0; + eina_unicode_strncpy(temp1,buf,exceed_index); + out1 = eina_unicode_unicode_to_utf8(temp1,&char_len1); + util_part_text_emit_by_win(win,"message.text.compare", out1); + + width = __get_string_width(win,"message.text.compare"); + + if(width > block_width) + { + exceed_index = exceed_index -1; + DBG("reduce exceed index(%d)",exceed_index,width); + } + else + { + if(out1!=NULL) + free(out1); + break; + } + + if(out1!=NULL) + free(out1); + } + for(i=0;i<100;i++) + { + Eina_Unicode temp1[STR_BUF_SIZE] = {0,}; + int char_len1 = 0; + char* out1 = NULL; + int width = 0; + eina_unicode_strncpy(temp1,buf,exceed_index); + out1 = eina_unicode_unicode_to_utf8(temp1,&char_len1); + util_part_text_emit_by_win(win,"message.text.compare", out1); + + width = __get_string_width(win,"message.text.compare"); + + if(width < block_width) + { + exceed_index = exceed_index +1; + DBG("increase exceed index(%d)",exceed_index,width); + } + else + { + exceed_index = exceed_index -1; + if(out1) + free(out1); + break; + } + + if(out1) + free(out1); + } + + } + + if(exceed_index<0) + { + ERR("INDEX %d",exceed_index); + goto __CATCH; + } + + int i = exceed_index; + + while(i>0) + { + if(buf[i-1]==' ') + { + index = i-1; + break; + } + i--; + } + + if(index>0) + { + Eina_Unicode *temp3 = NULL; + eina_unicode_strncpy(temp1,buf,index); + temp3 = &(buf[index]); + eina_unicode_strncpy(temp2,temp3,len2-index); + } + else + { + Eina_Unicode *temp3 = NULL; + eina_unicode_strncpy(temp1,buf,exceed_index); + temp3 = &(buf[exceed_index]); + eina_unicode_strncpy(temp2,temp3,len2-exceed_index); + } + + out1 = eina_unicode_unicode_to_utf8(temp1,&char_len1); + out2 = eina_unicode_unicode_to_utf8(temp2,&char_len2); + + if(char_len1>=STR_BUF_SIZE) + char_len1 = STR_BUF_SIZE-1; + if(char_len2>=STR_BUF_SIZE) + char_len2 = STR_BUF_SIZE-1; + strncpy(part1,out1,char_len1); + strncpy(part2,out2,char_len2); + +__CATCH: + if(uni_out!=NULL) + free(uni_out); + if(out1!=NULL) + free(out1); + if(out2!=NULL) + free(out2); +} + + + +static void _handle_message_by_win(char *message, void *data) +{ + win_info* win = NULL; + char part1[256] = {0,}; + char part2[256] = {0,}; + char *text = NULL; + double time_clk = 0; + char* temp = NULL; + retif(message == NULL, , "Invalid parameter!"); + retif(data == NULL, , "Invalid parameter!"); + + win = data; + + if (msg_timer) + { + ecore_timer_del(msg_timer); + } + msg_type = 0; + + SECURE_DBG("message %s", message); + + temp = strdup(message); + + util_char_replace(temp,'\n',' '); + + text = evas_textblock_text_utf8_to_markup(NULL, temp); + if (!text) + { + if(temp) + free(temp); + + return; + } + block_width = __get_block_width(win,"message.text"); + util_part_text_emit_by_win(win,"message.text.compare", text); + string_width = __get_string_width(win,"message.text.compare"); + + if(block_width > string_width) + { + msg_type = 1; + } + else + { + msg_type = 2; + } + + DBG("msg_type %d", msg_type); + + _show_message(win); + + if(msg_type == 1) + { + time_clk = 3; + util_part_text_emit_by_win(win,"message.text", text); + util_send_status_message_start(win,2.5); + } + else + { + time_clk = 2.5; + __handle_2line(win,text,part1,part2); + util_part_text_emit_by_win(win,"message.text", part1); + util_part_text_emit_by_win(win,"message.line2.text", part2); + util_send_status_message_start(win,5); + } + + if(text!=NULL) + free(text); + + msg_timer = ecore_timer_add(time_clk, (Ecore_Task_Cb)_msg_timeout_cb, (void*)win); + + if(temp!=NULL) + free(temp); +} + + + +static void __message_callback(const char *message, void *data) +{ + struct appdata *ad = NULL; + win_info* win = NULL; + + if (!data) + return; + + ad = data; + + char buf[256] = {0,}; + strncpy(buf,message,256-1); +#ifdef _SUPPORT_SCREEN_READER2 + indicator_service_tts_play(buf); +#endif + + if(message_buf!=NULL) + { + free(message_buf); + message_buf = NULL; + } + + message_buf = strdup(message); + msg_retry = 0; + + _hide_message_all(data); + + win = &(ad->win); + _handle_message_by_win(message_buf,win); + + if(retry_timer!=NULL) + { + ecore_timer_del(retry_timer); + } + retry_timer = ecore_timer_add(0.5, (Ecore_Task_Cb)_retry_timeout_cb, (void*)win); + +} + + + +static void _buf_timeout_callback(void* data) +{ + + if(current_buf_indexwin); + + block_width = __get_block_width(win,"message.text"); + util_part_text_emit_by_win(win,"message.text.compare", message); + string_width = __get_string_width(win,"message.text.compare"); + + if(block_width > string_width) + { + timer_val = QUEUE_TIMEOUT; + } + else + { + timer_val = QUEUE_TIMEOUT2; + } + + if(queue_timer!=NULL) + { + if(current_buf_cnt>=QUEUE_SIZE) + { + ERR("QUEUE FULL"); + return; + } + SECURE_DBG("buffering... %d,%s",current_buf_cnt,message); + if(msg_queue[current_buf_cnt].data!=NULL) + { + free(msg_queue[current_buf_cnt].data); + msg_queue[current_buf_cnt].data = NULL; + } + msg_queue[current_buf_cnt].data = strdup(message); + msg_queue[current_buf_cnt].index = current_buf_cnt; + msg_queue[current_buf_cnt].timer_val = timer_val; + current_buf_cnt++; + return; + } + + queue_timer = ecore_timer_add(timer_val, (Ecore_Task_Cb)_buf_timeout_callback, data); + __message_callback(message,data); +} + + + +int indicator_message_disp_check(void) +{ + if (msg_timer != NULL) + return 1; + else + return 0; +} + + + +int message_ani_playing_check(void) +{ + if(ani_temp_timer != NULL) + return 1; + else + return 0; +} + + + +int indicator_message_retry_check(void) +{ + if(retry_timer!=NULL) + return 1; + else + return 0; +} + + + +void indicator_message_display_trigger(void) +{ + win_info* win = NULL; + + if(msg_retry==1) + { + return; + } + + DBG("retry message"); + + msg_retry = 1; + + win = &(app_data->win); + _handle_message_by_win(message_buf,win); + +} + + + +int indicator_message_init(void *data) +{ + int ret = 0; + int i =0; + for(i=0;i +//#include +//#include +#include +#include +#include +#include +#include +#include +#include + +#include "log.h" +#include "indicator.h" +#include "common.h" +#include "main.h" +#include "noti_win.h" + +/* Using this macro to emphasize that some portion like stacking and +rotation handling are implemented for X based platform */ +#ifndef __UNUSED__ +#define __UNUSED__ __attribute__((unused)) +#endif + +struct Internal_Data { + Evas_Object *content; + Ecore_Event_Handler *rotation_event_handler; + Evas_Coord w; + Evas_Coord h; + int angle; +}; + +#define PRIVATE_DATA_KEY_DATA "pdk_data" + +static void _content_changed_size_hints(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__) +{ + Evas_Coord h; + struct Internal_Data *wd = evas_object_data_get(data, PRIVATE_DATA_KEY_DATA); + + ret_if(!wd); + + evas_object_size_hint_min_get(obj, NULL, &h); + if ((h > 0)) { + wd->h = h; + evas_object_size_hint_min_set(obj, wd->w, wd->h); + evas_object_size_hint_min_set(data, wd->w, wd->h); + } +} + +static void _sub_del(void *data __UNUSED__, Evas_Object *obj, void *event_info) +{ + struct Internal_Data *wd = evas_object_data_get(obj, PRIVATE_DATA_KEY_DATA); + Evas_Object *sub = event_info; + + ret_if(!wd); + + if (sub == wd->content) { + evas_object_event_callback_del(wd->content, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _content_changed_size_hints); + wd->content = NULL; + } +} + +static void _noti_win_destroy(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__) +{ + Evas_Object *win = NULL; + struct Internal_Data *wd = NULL; + + ret_if(!obj); + + win = obj; + + wd = evas_object_data_del(win, PRIVATE_DATA_KEY_DATA); + ret_if(!wd); + + if (wd->rotation_event_handler) { + ecore_event_handler_del(wd->rotation_event_handler); + } + free(wd); +#if 0 + quickpanel_dbus_ticker_visibility_send(0); +#endif +} + +static void _rotate_cb(void *data, Evas_Object *obj, void *event) +{ + struct appdata *ad = data; + struct Internal_Data *wd = NULL; + Evas_Object *base = NULL; + int angle = 0; + + ret_if(!obj); + + wd = evas_object_data_get(obj, PRIVATE_DATA_KEY_DATA); + ret_if(!wd); + + base = evas_object_data_get(obj, DATA_KEY_BASE_RECT); + ret_if(!base); + + angle = elm_win_rotation_get(obj); + angle %= 360; + if (angle < 0) { + angle += 360; + } + _D("Ticker angle is %d degree", angle); + + switch (angle) { + case 0: + case 180: + evas_object_resize(base, ad->win.port_w, wd->h); + evas_object_size_hint_min_set(base, ad->win.port_w, wd->h); + evas_object_resize(obj, ad->win.port_w, wd->h); + evas_object_move(obj, 0, 0); + break; + case 90: + evas_object_resize(base, ad->win.land_w, wd->h); + evas_object_size_hint_min_set(base, ad->win.land_w, wd->h); + evas_object_resize(obj, ad->win.land_w, wd->h); + evas_object_move(obj, 0, 0); + break; + case 270: + evas_object_resize(base, ad->win.land_w, wd->h); + evas_object_size_hint_min_set(base, ad->win.land_w, wd->h); + evas_object_resize(obj, ad->win.land_w, wd->h); + evas_object_move(obj, ad->win.port_w - wd->h, 0); + break; + default: + _E("cannot reach here"); + } + + wd->angle = angle; +} + +Evas_Object *noti_win_add(Evas_Object *parent, struct appdata *ad) +{ + Evas_Object *win = NULL; + struct Internal_Data *wd = NULL; + + _D("A window is created for ticker notifications"); + win = elm_win_add (NULL, "noti_win", ELM_WIN_NOTIFICATION); + retv_if(!win, NULL); + + elm_win_alpha_set(win, EINA_FALSE); + elm_win_title_set(win, "noti_win"); + elm_win_borderless_set(win, EINA_TRUE); + elm_win_autodel_set(win, EINA_TRUE); + //efl_util_set_notification_window_level(win, EFL_UTIL_NOTIFICATION_LEVEL_HIGH); + elm_win_prop_focus_skip_set(win, EINA_TRUE); + /* you can use evas_object_resize() and evas_object_move() by using elm_win_aux_hint_add(). + elm_win_aux_hint_add() makes it possible to set the size and location of the notification window freely. + if you do not use elm_win_aux_hint_add(), notification window is displayed full screen. */ +// elm_win_aux_hint_add(win, "wm.policy.win.user.geometry", "1"); + evas_object_resize(win, ad->win.w, ad->win.h); + evas_object_move(win, 0, 0); + evas_object_show(win); + + if (elm_win_wm_rotation_supported_get(win)) { + int rots[4] = { 0, 90, 180, 270 }; + elm_win_wm_rotation_available_rotations_set(win, rots, 4); + } + evas_object_smart_callback_add(win, "wm,rotation,changed", _rotate_cb, ad); + + wd = (struct Internal_Data *) calloc(1, sizeof(struct Internal_Data)); + if (!wd) { + if (win) evas_object_del(win); + return NULL; + } + evas_object_data_set(win, PRIVATE_DATA_KEY_DATA, wd); + + wd->angle = 0; + wd->w = ad->win.w; + wd->h = ad->win.h; + + evas_object_smart_callback_add(win, "sub-object-del", _sub_del, NULL); + evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _noti_win_destroy, NULL); + + return win; +} + +void noti_win_content_set(Evas_Object *obj, Evas_Object *content) +{ + struct Internal_Data *wd; + + ret_if (!obj); + + wd = evas_object_data_get(obj, PRIVATE_DATA_KEY_DATA); + ret_if (!wd); + + if (wd->content && content != NULL) { + evas_object_del(content); + content = NULL; + } + + wd->content = content; + if (content) { + evas_object_show(wd->content); + evas_object_event_callback_add(wd->content, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _content_changed_size_hints, obj); + } +} +/*End of file */ diff --git a/daemon/noti_win.h b/daemon/noti_win.h new file mode 100644 index 0000000..94bdd30 --- /dev/null +++ b/daemon/noti_win.h @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +#ifndef __NOTI_WIN_H__ +#define __NOTI_WIN_H__ + +#include + +typedef enum _indicator_animated_icon_type { + INDICATOR_ANIMATED_ICON_NONE = -1, + INDICATOR_ANIMATED_ICON_DOWNLOAD = 1, + INDICATOR_ANIMATED_ICON_UPLOAD, + INDICATOR_ANIMATED_ICON_INSTALL, +} indicator_animated_icon_type; + +typedef struct _QP_Module { + char *name; + /* func */ + int (*init) (void *); + void (*init_job_cb) (void *); + int (*fini) (void *); + int (*suspend) (void *); + int (*resume) (void *); + int (*hib_enter) (void *); + int (*hib_leave) (void *); + void (*lang_changed) (void *); + void (*refresh) (void *); + unsigned int (*get_height) (void *); + void (*qp_opened) (void *); + void (*qp_closed) (void *); + void (*mw_enabled) (void *); + void (*mw_disabled) (void *); + + /* do not modify this area */ + /* internal data */ + Eina_Bool state; +} QP_Module; + +extern Evas_Object *noti_win_add(Evas_Object *parent, struct appdata *ad); +extern void noti_win_content_set(Evas_Object *obj, Evas_Object *content); + +#endif diff --git a/daemon/plmn.c b/daemon/plmn.c new file mode 100644 index 0000000..4a94d5f --- /dev/null +++ b/daemon/plmn.c @@ -0,0 +1,232 @@ +/* + * Indicator + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + + +#include + +#include "main.h" +#include "common.h" +#include "util.h" +#include "icon.h" +#include "box.h" +#include "log.h" + + +#define MSG_TIMEOUT 3.0 + +int plmn_disp_type = 0; + + + +static void disp_handle(void *data,int status) +{ + struct appdata *ad = NULL; + + ret_if(!data); + + ad = (struct appdata *)data; + + if(status == 1) + { + if(util_dynamic_state_get()==1) + { + util_signal_emit(ad,"indicator.plmn2.show","indicator.prog"); + util_signal_emit(ad,"indicator.plmn.hide","indicator.prog"); + } + else + { + util_signal_emit(ad,"indicator.plmn.show","indicator.prog"); + util_signal_emit(ad,"indicator.plmn2.hide","indicator.prog"); + } + + if(plmn_disp_type==1) + { + return; + } + plmn_disp_type = 1; + + box_update_display(&(ad->win)); + + } + else + { + if(plmn_disp_type==0) + { + return; + } + plmn_disp_type = 0; + if(util_dynamic_state_get()==1) + util_signal_emit(ad,"indicator.plmn2.hide","indicator.prog"); + else + util_signal_emit(ad,"indicator.plmn.hide","indicator.prog"); + box_update_display(&(ad->win)); + + } +} + + + +static void disp_plmn(const char *plmn, void *data) +{ + if(!util_is_orf()) + { + disp_handle(data,0); + return; + } + + int disp = 0; + int plmn_val = 0; + + retif(plmn == NULL, , "invalid plmn!"); + retif(data == NULL, , "invalid plmn!"); + + vconf_get_int(VCONFKEY_TELEPHONY_SPN_DISP_CONDITION, &disp); + + if(disp == VCONFKEY_TELEPHONY_DISP_INVALID || disp == VCONFKEY_TELEPHONY_DISP_SPN) + { + disp_handle(data,0); + return; + } + + vconf_get_int(VCONFKEY_TELEPHONY_PLMN,&plmn_val); + + if(plmn_val!=20801 && plmn_val!=20802) + { + disp_handle(data,0); + return; + } + + if(strcmp(plmn,"OrangeF")!=0) + { + return; + } + + disp_handle(data,1); +} + + + +void indicator_plmn_display(void *data) +{ + char* text = NULL; + text = vconf_get_str(VCONFKEY_TELEPHONY_NWNAME); + if(text!=NULL) + { + } + + disp_plmn(text,data); +} + + + +static void indicator_plmn_nwname_cb(keynode_t *node, void *data) +{ + char* text = NULL; + text = vconf_get_str(VCONFKEY_TELEPHONY_NWNAME); + if(text!=NULL) + { + SECURE_DBG("indicator_plmn_nwname_cb %s",text); + } + + disp_plmn(text,data); +} + + + +static void indicator_plmn_disp_cond_cb(keynode_t *node, void *data) +{ + int ret = 0; + int status = 0; + ret = vconf_get_int(VCONFKEY_TELEPHONY_SPN_DISP_CONDITION,&status); + if(ret == -1) + { + return; + } + + SECURE_DBG("indicator_plmn_disp_cond_cb %d",status); + + indicator_plmn_display(data); +} + + + +static void indicator_plmn_cb(keynode_t *node, void *data) +{ + int ret = 0; + int status = 0; + ret = vconf_get_int(VCONFKEY_TELEPHONY_PLMN,&status); + if(ret == -1) + { + return; + } + + SECURE_DBG("indicator_plmn_cb %d",status); + + indicator_plmn_display(data); +} + + + +int indicator_plmn_init(void *data) +{ + int r = 0, ret = -1; + + retif(data == NULL, FAIL, "Invalid parameter!"); + + ret = vconf_notify_key_changed(VCONFKEY_TELEPHONY_NWNAME, + indicator_plmn_nwname_cb, data); + if (ret != OK) { + r = ret; + } + + ret = vconf_notify_key_changed(VCONFKEY_TELEPHONY_PLMN, + indicator_plmn_cb, data); + if (ret != OK) { + r = ret; + } + + ret = vconf_notify_key_changed(VCONFKEY_TELEPHONY_SPN_DISP_CONDITION, + indicator_plmn_disp_cond_cb, data); + if (ret != OK) { + r = r | ret; + } + + indicator_plmn_display(data); + + return ret; +} + + + +int indicator_plmn_fini(void) +{ + int ret; + + ret = vconf_ignore_key_changed(VCONFKEY_TELEPHONY_NWNAME, + indicator_plmn_nwname_cb); + + ret = vconf_ignore_key_changed(VCONFKEY_TELEPHONY_PLMN, + indicator_plmn_cb); + + ret = vconf_ignore_key_changed(VCONFKEY_TELEPHONY_SPN_DISP_CONDITION, + indicator_plmn_disp_cond_cb); + + return ret; +} diff --git a/daemon/plmn.h b/daemon/plmn.h new file mode 100644 index 0000000..b9e37a7 --- /dev/null +++ b/daemon/plmn.h @@ -0,0 +1,29 @@ +/* + * Indicator + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +#ifndef __INDICATOR_PLMN_H_DEF__ +#define __INDICATOR_PLMN_H_DEF__ + +int indicator_plmn_init(void *data); + +int indicator_plmn_fini(void); +void indicator_plmn_display(void *data); + +#endif /* __INDICATOR_PLMN_H_DEF__ */ diff --git a/daemon/ticker.c b/daemon/ticker.c new file mode 100644 index 0000000..25c09ce --- /dev/null +++ b/daemon/ticker.c @@ -0,0 +1,1167 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include +//#include +#include +#include +#include +//#include +#include +#include +#include +#include +#include +#include +//#include +#include + +#include "common.h" +#include "main.h" +#include "noti_win.h" +#include "util.h" +#include "log.h" +#include "indicator.h" +#include "ticker.h" + +#define _SPACE ' ' +#define TICKERNOTI_DURATION 3 +#define QP_TICKER_DETAIL_DURATION 6 +#define QP_PLAY_DURATION_LIMIT 15 +#define TICKER_MSG_LEN 1024 +#define TICKER_PHONE_NUMBER_MAX_LEN 40 + +#define DEFAULT_ICON ICONDIR "/quickpanel_icon_default.png" + +#define FORMAT_1LINE "%s" +#define FORMAT_2LINE "%s
%s" + +#define PRIVATE_DATA_KEY_APPDATA "pdka" +#define PRIVATE_DATA_KEY_DETAIL "pdkd" +#define PRIVATE_DATA_KEY_TICKERNOTI_EXECUTED "pdkte" +#define PRIVATE_DATA_KEY_ANI_ICON_TYPE "pdkait" +#define PRIVATE_DATA_KEY_ICON "pdki" +#define PRIVATE_DATA_KEY_BOX "pdkb" +#define PRIVATE_DATA_KEY_TICKER_INFO "pdkti" +#define PRIVATE_DATA_KEY_NOTI "pdkn" + +#define PATH_DOWNLOAD "reserved://quickpanel/ani/downloading" +#define PATH_UPLOAD "reserved://quickpanel/ani/uploading" +#define PATH_INSTALL "reserved://quickpanel/ani/install" + +static void _create_tickernoti(notification_h noti, struct appdata *ad, ticker_info_s *ticker_info); +static void _destroy_tickernoti(ticker_info_s *ticker_info); + +static inline int _is_text_exist(const char *text) +{ + if (text != NULL) { + if (strlen(text) > 0) { + if (strcmp(text, "") != 0) { + return 1; + } + } + } + + return 0; +} + +static int _is_security_lockscreen_launched(void) +{ + int ret = 0; + int is_lock_launched = 0; + + if ((ret = vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &is_lock_launched)) == 0) { + if (is_lock_launched == VCONFKEY_IDLE_LOCK && (ret = vconf_get_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, &is_lock_launched)) == 0) { + /* if (is_lock_launched != SETTING_SCREEN_LOCK_TYPE_NONE && is_lock_launched != SETTING_SCREEN_LOCK_TYPE_SWIPE) { + return 1; + }*/ + } + } + + return 0; +} + +static int _check_is_noti_from_email(char *pkgname) +{ + retv_if(!pkgname, 0); + + if (strcmp(pkgname, VENDOR".email") == 0 || strcmp(pkgname, "/usr/bin/eas-engine") == 0) { + return 1; + } else { + return 0; + } +} + +static int _check_is_noti_from_message(char *pkgname) +{ + retv_if(!pkgname, 0); + + if (strcmp(pkgname, VENDOR".message") == 0 || strcmp(pkgname, "/usr/bin/msg-server") == 0) { + return 1; + } else { + return 0; + } +} + +static int _check_is_noti_from_im(char *pkgname) +{ + retv_if(!pkgname, 0); + + if (strcmp(pkgname, "xnq5eh9vop.ChatON") == 0) { + return 1; + } else { + return 0; + } +} + +static notification_h _get_instant_latest_message_from_list(ticker_info_s *ticker_info) +{ + int count = 0; + notification_h noti = NULL; + + count = eina_list_count(ticker_info->ticker_list); + if (count > 1) { + noti = eina_list_nth(ticker_info->ticker_list, count-1); + } + eina_list_free(ticker_info->ticker_list); + ticker_info->ticker_list = NULL; + + return noti; +} + +static int _ticker_check_ticker_off(notification_h noti) +{ + char *pkgname = NULL; + + notification_get_pkgname(noti, &pkgname); + + if (pkgname == NULL) return 1; /* Ticker is not displaying. */ + + return 0; +} + +static int _ticker_check_displaying_contents_off(notification_h noti) +{ + char *pkgname = NULL; + int ret = 0; + int boolval = 0; + + notification_get_pkgname(noti, &pkgname); + + if (pkgname == NULL) return 0; /* Ticker is not displaying. */ + + /* FIXME : we have to confirm architecture for communiating with message or email */ + if (_check_is_noti_from_message(pkgname) == 1) { + ret = vconf_get_bool(VCONFKEY_TICKER_NOTI_DISPLAY_CONTENT_MESSASGES, &boolval); + if (ret == 0 && boolval == 0) return 1; + + } else if (_check_is_noti_from_email(pkgname) == 1) { + ret = vconf_get_bool(VCONFKEY_TICKER_NOTI_DISPLAY_CONTENT_EMAIL, &boolval); + if (ret == 0 && boolval == 0) return 1; + + } else if (_check_is_noti_from_im(pkgname) == 1) { + ret = vconf_get_bool(VCONFKEY_TICKER_NOTI_DISPLAY_CONTENT_IM, &boolval); + if (ret == 0 && boolval == 0) return 1; + + } + + return 0; +} + +static inline void __ticker_only_noti_del(notification_h noti) +{ + int applist = NOTIFICATION_DISPLAY_APP_ALL; + + ret_if(!noti); + + notification_get_display_applist(noti, &applist); + if ((applist & NOTIFICATION_DISPLAY_APP_TICKER) || (applist & NOTIFICATION_DISPLAY_APP_INDICATOR)) { + char *pkgname = NULL; + int priv_id = 0; + + notification_get_pkgname(noti, &pkgname); + notification_get_id(noti, NULL, &priv_id); + notification_delete_by_priv_id(pkgname, NOTIFICATION_TYPE_NONE, priv_id); + } +} + +static Eina_Bool _timeout_cb(void *data) +{ + ticker_info_s *ticker_info = NULL; + int h_page = 0; + int v_page = 0; + int h_last_page = 0; + int v_last_page = 0; + + retv_if(!data, EINA_FALSE); + + _D("message is timeout"); + + ticker_info = data; + + /* If count is 1, self*/ + if (ticker_info->ticker_list && eina_list_count(ticker_info->ticker_list) > 1) { + if (ticker_info->timer) { + ecore_timer_del(ticker_info->timer); + ticker_info->timer = NULL; + } + _destroy_tickernoti(ticker_info); + + return ECORE_CALLBACK_CANCEL; + } + + elm_scroller_last_page_get(ticker_info->scroller, &h_last_page, &v_last_page); + elm_scroller_current_page_get(ticker_info->scroller, &h_page, &v_page); + + if (v_last_page > v_page) { + elm_scroller_page_bring_in(ticker_info->scroller, h_page, v_page + 1); + + return ECORE_CALLBACK_RENEW; + } + + if (ticker_info->timer) { + ecore_timer_del(ticker_info->timer); + ticker_info->timer = NULL; + } + _destroy_tickernoti(ticker_info); + + return ECORE_CALLBACK_CANCEL; +} + +static indicator_animated_icon_type _animated_type_get(const char *path) +{ + retv_if(path == NULL, INDICATOR_ANIMATED_ICON_NONE); + + if (strncasecmp(path, PATH_DOWNLOAD, MIN(strlen(PATH_DOWNLOAD), strlen(path))) == 0) { + return INDICATOR_ANIMATED_ICON_DOWNLOAD; + } else if (strncasecmp(path, PATH_UPLOAD, MIN(strlen(PATH_UPLOAD), strlen(path))) == 0) { + return INDICATOR_ANIMATED_ICON_UPLOAD; + } else if (strncasecmp(path, PATH_INSTALL, MIN(strlen(PATH_INSTALL), strlen(path))) == 0) { + return INDICATOR_ANIMATED_ICON_INSTALL; + } + + return INDICATOR_ANIMATED_ICON_NONE; +} + +#define DEFAULT_EDJ EDJDIR"/ticker_default.edj" +/* FIXME : evas_object_del(icon), we have to unset PRIVATE_DATA_KEY_ANI_ICON_TYPE) */ +static Evas_Object *_animated_icon_get(Evas_Object *parent, const char *path) +{ + indicator_animated_icon_type type = INDICATOR_ANIMATED_ICON_NONE; + + const char *layout_icon = NULL; + Evas_Object *layout = NULL; + + retv_if(!parent, NULL); + retv_if(!path, NULL); + + type = _animated_type_get(path); + + if (type == INDICATOR_ANIMATED_ICON_DOWNLOAD) { + layout_icon = "quickpanel/animated_icon_download"; + } else if (type == INDICATOR_ANIMATED_ICON_UPLOAD) { + layout_icon = "quickpanel/animated_icon_upload"; + } else if (type == INDICATOR_ANIMATED_ICON_INSTALL) { + layout_icon = "quickpanel/animated_icon_install"; + } else { + return NULL; + } + + layout = elm_layout_add(parent); + if (layout != NULL) { + elm_layout_file_set(layout, DEFAULT_EDJ, layout_icon); + evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_data_set(layout, PRIVATE_DATA_KEY_ANI_ICON_TYPE, (void *)type); + evas_object_show(layout); + } + + return layout; +} + +static char *_get_pkginfo_icon(const char *pkgid) +{ + int ret = 0; + char *icon_path = NULL; + char *icon_ret = NULL; + retif(pkgid == NULL, NULL, "invalid parameter"); + + pkgmgrinfo_appinfo_h appinfo_h = NULL; + + ret = pkgmgrinfo_appinfo_get_appinfo(pkgid, &appinfo_h); + if (ret < 0) { + _E("pkgmgrinfo_appinfo_get_appinfo is failed %d", ret); + return NULL; + } + + ret = pkgmgrinfo_appinfo_get_icon(appinfo_h, &icon_path); + if (ret < 0) { + _E("pkgmgrinfo_appinfo_get_icon is failed %d", ret); + } + if (icon_path) { + icon_ret = (char*)strdup(icon_path); + } + if (appinfo_h) { + pkgmgrinfo_appinfo_destroy_appinfo(appinfo_h); + } + + return icon_ret; +} + +static Evas_Object *_ticker_create_icon(Evas_Object *parent, notification_h noti) +{ + char *pkgname = NULL; + char *icon_path = NULL; + char *icon_default = NULL; + Evas_Object *icon = NULL; + + retif(noti == NULL || parent == NULL, NULL, "Invalid parameter!"); + + notification_get_pkgname(noti, &pkgname); + if (NOTIFICATION_ERROR_NONE != notification_get_image(noti, NOTIFICATION_IMAGE_TYPE_ICON, &icon_path)) { + _E("Cannot get image path"); + return NULL; + } + if (icon_path) { + icon = _animated_icon_get(parent, icon_path); + if (icon == NULL) { + icon = elm_image_add(parent); + if (icon_path == NULL + || (elm_image_file_set(icon, icon_path, NULL) == EINA_FALSE)) { + icon_default = _get_pkginfo_icon(pkgname); + if (icon_default != NULL) { + elm_image_file_set(icon, icon_default, NULL); + elm_image_resizable_set(icon, EINA_TRUE, EINA_TRUE); + free(icon_default); + } else { + elm_image_file_set(icon, DEFAULT_ICON, NULL); + elm_image_resizable_set(icon, EINA_TRUE, EINA_TRUE); + } + } + } + } + + return icon; +} + +static inline char *_get_text(notification_h noti, notification_text_type_e text_type) +{ + char *text = NULL; + + notification_get_text(noti, text_type, &text); + if (text) { + return elm_entry_utf8_to_markup(text); + } + + return NULL; +} + +static inline void _strbuf_add(Eina_Strbuf *str_buf, char *text, const char *delimiter) +{ + if (text != NULL) { + if (strlen(text) > 0) { + if (delimiter != NULL) { + eina_strbuf_append(str_buf, delimiter); + } + eina_strbuf_append(str_buf, text); + } + } +} + +static int _is_phone_number(const char *address) +{ + int digit_count = 0; + retif(address == NULL, 0, "address is NULL"); + + int addr_len = 0; + addr_len = strlen(address); + + if (addr_len == 0) { + return 0; + } + + /* length check phone address should be longer than 2 and shorter than 40 */ + if (addr_len > 2 && addr_len <= TICKER_PHONE_NUMBER_MAX_LEN) { + const char *pszOneChar = address; + + while (*pszOneChar) { + if (isdigit(*pszOneChar)) { + digit_count++; + } + + ++pszOneChar; + } + + pszOneChar = address; + + if (*pszOneChar == '+') { + ++pszOneChar; + } + + while (*pszOneChar) { + if (!isdigit(*pszOneChar) + && (*pszOneChar != '*') && (*pszOneChar != '#') + && (*pszOneChar != ' ') + && !((*pszOneChar == '-') && digit_count >= 7)) { + return 0; + } + + ++pszOneChar; + } + + return 1; + } else { + DBG("invalid address length [%d]", addr_len); + return 0; + } +} + +static void _char_set(char *dst, char s, int index, int size) +{ + if (index < size) { + *(dst + index) = s; + } +} + +static void _make_phone_number_tts(char *dst, const char *src, int size) +{ + retif(dst == NULL, , "invalid argument"); + retif(src == NULL, , "invalid argument"); + + int no_op = 0; + int i = 0, j = 0, text_len = 0; + + text_len = strlen(src); + + for (i = 0, j= 0; i < text_len; i++) { + if (no_op == 1) { + _char_set(dst, *(src + i), j++, size); + } else { + if (isdigit(*(src + i))) { + if (i + 1 < text_len) { + if (*(src + i + 1) == '-' || *(src + i + 1) == _SPACE) { + _char_set(dst, *(src + i), j++, size); + } else { + _char_set(dst, *(src + i), j++, size); + _char_set(dst, _SPACE, j++, size); + } + } else { + _char_set(dst, *(src + i), j++, size); + _char_set(dst, _SPACE, j++, size); + } + } else if (*(src + i) == '-') { + no_op = 1; + _char_set(dst, *(src + i), j++, size); + } else { + _char_set(dst, *(src + i), j++, size); + } + } + } +} + +static inline void _check_and_add_to_buffer(Eina_Strbuf *str_buf, char *text, int is_check_phonenumber) +{ + char buf_number[TICKER_PHONE_NUMBER_MAX_LEN * 2] = { 0, }; + + if (text != NULL) { + if (strlen(text) > 0) { + if (_is_phone_number(text) && is_check_phonenumber) { + _make_phone_number_tts(buf_number, text, + (TICKER_PHONE_NUMBER_MAX_LEN * 2) - 1); + eina_strbuf_append(str_buf, buf_number); + } else { + eina_strbuf_append(str_buf, text); + } + eina_strbuf_append_char(str_buf, '\n'); + } + } +} + +static char *_ticker_get_label_layout_default(notification_h noti, int is_screenreader, char **str_line1, char **str_line2) +{ + int len = 0; + int num_line = 0; + char *domain = NULL; + char *dir = NULL; + char *title_utf8 = NULL; + char *content_utf8 = NULL; + char *info1_utf8 = NULL; + char *info1_sub_utf8 = NULL; + char *info2_utf8 = NULL; + char *info2_sub_utf8 = NULL; + char *event_count_utf8 = NULL; + const char *tmp = NULL; + Eina_Strbuf *line1 = NULL; + Eina_Strbuf *line2 = NULL; + char buf[TICKER_MSG_LEN] = { 0, }; + + retif(noti == NULL, NULL, "Invalid parameter!"); + + notification_get_text_domain(noti, &domain, &dir); + if (domain != NULL && dir != NULL) { + bindtextdomain(domain, dir); + } + + title_utf8 = _get_text(noti, NOTIFICATION_TEXT_TYPE_TITLE); + if (_ticker_check_displaying_contents_off(noti) == 1) { + content_utf8 = _get_text(noti, NOTIFICATION_TEXT_TYPE_CONTENT_FOR_DISPLAY_OPTION_IS_OFF); + } else { + content_utf8 = _get_text(noti, NOTIFICATION_TEXT_TYPE_CONTENT); + } + info1_utf8 = _get_text(noti, NOTIFICATION_TEXT_TYPE_INFO_1); + info1_sub_utf8 = _get_text(noti, NOTIFICATION_TEXT_TYPE_INFO_SUB_1); + info2_utf8 = _get_text(noti, NOTIFICATION_TEXT_TYPE_INFO_2); + info2_sub_utf8 = _get_text(noti, NOTIFICATION_TEXT_TYPE_INFO_SUB_2); + + if (is_screenreader == 0) { + line1 = eina_strbuf_new(); + line2 = eina_strbuf_new(); + + if (line1 != NULL && line2 != NULL) { + if (_is_text_exist(title_utf8) && (_is_text_exist(content_utf8) + || _is_text_exist(event_count_utf8))) { + _strbuf_add(line1, title_utf8, NULL); + _strbuf_add(line2, content_utf8, NULL); + if (_is_text_exist(content_utf8)) { + _strbuf_add(line2, event_count_utf8, " "); + } else { + _strbuf_add(line2, event_count_utf8, ""); + } + num_line = 2; + } else if (_is_text_exist(info1_utf8) && (_is_text_exist(content_utf8) + || _is_text_exist(event_count_utf8))) { + _strbuf_add(line1, content_utf8, NULL); + _strbuf_add(line1, event_count_utf8, " "); + _strbuf_add(line2, info1_utf8, NULL); + _strbuf_add(line2, info1_sub_utf8, " "); + num_line = 2; + } else if (_is_text_exist(info1_utf8) && _is_text_exist(info2_utf8)) { + _strbuf_add(line1, info1_utf8, NULL); + _strbuf_add(line1, info1_sub_utf8, " "); + _strbuf_add(line2, info2_utf8, NULL); + _strbuf_add(line2, info2_sub_utf8, " "); + num_line = 2; + } else if (_is_text_exist(title_utf8)) { + _strbuf_add(line1, title_utf8, NULL); + num_line = 1; + } else if (_is_text_exist(content_utf8)) { + _strbuf_add(line1, content_utf8, NULL); + num_line = 1; + } + + if (num_line == 2) { + tmp = eina_strbuf_string_get(line1); + if (str_line1 != NULL && tmp != NULL) { + *str_line1 = strdup(tmp); + } + + tmp = eina_strbuf_string_get(line2); + if (str_line2 != NULL && tmp != NULL) { + *str_line2 = strdup(tmp); + } + } else { + tmp = eina_strbuf_string_get(line1); + if (str_line1 != NULL && tmp != NULL) { + *str_line1 = strdup(tmp); + } + } + + eina_strbuf_free(line1); + eina_strbuf_free(line2); + } else { + _E("failed to allocate string buffer"); + } + } else { + if (title_utf8 == NULL + && event_count_utf8 == NULL + && content_utf8 == NULL + && info1_utf8 == NULL + && info1_sub_utf8 == NULL + && info2_utf8 == NULL + && info2_sub_utf8 == NULL) { + len = 0; + } else { + Eina_Strbuf *strbuf = eina_strbuf_new(); + if (strbuf != NULL) { + eina_strbuf_append(strbuf, _("IDS_QP_BUTTON_NOTIFICATION")); + eina_strbuf_append_char(strbuf, '\n'); + _check_and_add_to_buffer(strbuf, title_utf8, 1); + _check_and_add_to_buffer(strbuf, event_count_utf8, 0); + _check_and_add_to_buffer(strbuf, content_utf8, 1); + _check_and_add_to_buffer(strbuf, info1_utf8, 1); + _check_and_add_to_buffer(strbuf, info1_sub_utf8, 1); + _check_and_add_to_buffer(strbuf, info2_utf8, 1); + _check_and_add_to_buffer(strbuf, info2_sub_utf8, 1); + + if (eina_strbuf_length_get(strbuf) > 0) { + len = snprintf(buf, sizeof(buf) - 1, "%s", eina_strbuf_string_get(strbuf)); + } + eina_strbuf_free(strbuf); + } + } + } + + if (title_utf8) { + free(title_utf8); + } + + if (content_utf8) { + free(content_utf8); + } + +// if (event_count_utf8) { +// free(event_count_utf8); +// } + + if (info1_utf8) { + free(info1_utf8); + } + if (info1_sub_utf8) { + free(info1_sub_utf8); + } + if (info2_utf8) { + free(info2_utf8); + } + if (info2_sub_utf8) { + free(info2_sub_utf8); + } + if (len > 0) { + return strdup(buf); + } + return NULL; +} + +static char *_ticker_get_label_layout_single(notification_h noti, int is_screenreader, char **str_line1, char **str_line2) +{ + int num_line = 0; + int len = 0; + char *domain = NULL; + char *dir = NULL; + char *title_utf8 = NULL; + char *content_utf8 = NULL; + char *info1_utf8 = NULL; + char *info1_sub_utf8 = NULL; + char *info2_utf8 = NULL; + char *info2_sub_utf8 = NULL; + Eina_Strbuf *line1 = NULL; + Eina_Strbuf *line2 = NULL; + const char *tmp = NULL; + char buf[TICKER_MSG_LEN] = { 0, }; + + retif(noti == NULL, NULL, "Invalid parameter!"); + + notification_get_text_domain(noti, &domain, &dir); + if (domain != NULL && dir != NULL) + bindtextdomain(domain, dir); + + title_utf8 = _get_text(noti, NOTIFICATION_TEXT_TYPE_TITLE); + if (_ticker_check_displaying_contents_off(noti) == 1) { + content_utf8 = _get_text(noti, NOTIFICATION_TEXT_TYPE_CONTENT_FOR_DISPLAY_OPTION_IS_OFF); + } else { + content_utf8 = _get_text(noti, NOTIFICATION_TEXT_TYPE_CONTENT); + } + info1_utf8 = _get_text(noti, NOTIFICATION_TEXT_TYPE_INFO_1); + info1_sub_utf8 = _get_text(noti, NOTIFICATION_TEXT_TYPE_INFO_SUB_1); + info2_utf8 = _get_text(noti, NOTIFICATION_TEXT_TYPE_INFO_2); + info2_sub_utf8 = _get_text(noti, NOTIFICATION_TEXT_TYPE_INFO_SUB_2); + + if (is_screenreader == 0) { + line1 = eina_strbuf_new(); + line2 = eina_strbuf_new(); + + if (line1 != NULL && line2 != NULL) { + if (_is_text_exist(info1_utf8) && _is_text_exist(content_utf8)) { + _strbuf_add(line1, content_utf8, NULL); + _strbuf_add(line2, info1_utf8, NULL); + _strbuf_add(line2, info1_sub_utf8, " "); + num_line = 2; + } else if (_is_text_exist(title_utf8) && _is_text_exist(content_utf8)) { + _strbuf_add(line1, title_utf8, NULL); + _strbuf_add(line2, content_utf8, NULL); + num_line = 2; + } else if (_is_text_exist(title_utf8)) { + _strbuf_add(line1, title_utf8, NULL); + num_line = 1; + } else if (_is_text_exist(content_utf8)) { + _strbuf_add(line1, content_utf8, NULL); + num_line = 1; + } + + if (num_line == 2) { + tmp = eina_strbuf_string_get(line1); + if (str_line1 != NULL && tmp != NULL) { + *str_line1 = strdup(tmp); + } + + tmp = eina_strbuf_string_get(line2); + if (str_line2 != NULL && tmp != NULL) { + *str_line2 = strdup(tmp); + } + } else { + tmp = eina_strbuf_string_get(line1); + if (str_line1 != NULL && tmp != NULL) { + *str_line1 = strdup(tmp); + } + } + + eina_strbuf_free(line1); + eina_strbuf_free(line2); + } else { + _E("failed to allocate string buffer"); + } + } else { + if (title_utf8 == NULL + && content_utf8 == NULL + && info1_utf8 == NULL + && info1_sub_utf8 == NULL) { + len = 0; + } else { + Eina_Strbuf *strbuf = eina_strbuf_new(); + if (strbuf != NULL) { + eina_strbuf_append(strbuf, _("IDS_QP_BUTTON_NOTIFICATION")); + eina_strbuf_append_char(strbuf, '\n'); + if (info1_utf8 == NULL) { + _check_and_add_to_buffer(strbuf, title_utf8, 1); + _check_and_add_to_buffer(strbuf, content_utf8, 1); + } else { + if (content_utf8 == NULL) { + _check_and_add_to_buffer(strbuf, title_utf8, 1); + } + _check_and_add_to_buffer(strbuf, content_utf8, 1); + _check_and_add_to_buffer(strbuf, info1_utf8, 1); + _check_and_add_to_buffer(strbuf, info1_sub_utf8, 1); + } + + if (eina_strbuf_length_get(strbuf) > 0) { + len = snprintf(buf, sizeof(buf) - 1, "%s", eina_strbuf_string_get(strbuf)); + } + eina_strbuf_free(strbuf); + } + } + } + + if (title_utf8) { + free(title_utf8); + } + if (content_utf8) { + free(content_utf8); + } + if (info1_utf8) { + free(info1_utf8); + } + if (info1_sub_utf8) { + free(info1_sub_utf8); + } + if (info2_utf8) { + free(info2_utf8); + } + if (info2_sub_utf8) { + free(info2_sub_utf8); + } + if (len > 0) { + return strdup(buf); + } + return NULL; +} + +static char *_ticker_get_text(notification_h noti, int is_screenreader, char **line1, char **line2) +{ + char *result = NULL; + notification_ly_type_e layout; + + retif(noti == NULL, NULL, "Invalid parameter!"); + + notification_get_layout(noti, &layout); + + if (_ticker_check_displaying_contents_off(noti) == 1) { + result = _ticker_get_label_layout_default(noti, is_screenreader, line1, line2); + } else if (layout == NOTIFICATION_LY_NOTI_EVENT_SINGLE) { + result = _ticker_get_label_layout_single(noti, is_screenreader, line1, line2); + } else { + result = _ticker_get_label_layout_default(noti, is_screenreader, line1, line2); + } + + return result; +} + +static void _noti_hide_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + ticker_info_s *ticker_info = NULL; + + ret_if(!data); + + ticker_info = data; + + if (ticker_info->timer) { + ecore_timer_del(ticker_info->timer); + ticker_info->timer = NULL; + } + + _destroy_tickernoti(ticker_info); +} + +static void _mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + _noti_hide_cb(data, NULL, NULL, NULL); +} + +#define TICKER_EDJ EDJDIR"/ticker.edj" +static void _create_tickernoti(notification_h noti, struct appdata *ad, ticker_info_s *ticker_info) +{ + Eina_Bool ret = EINA_FALSE; + Evas_Object *detail = NULL; + Evas_Object *base = NULL; + Evas_Object *icon = NULL; + Evas_Object *box = NULL; + Evas_Object *textblock = NULL; + char *line1 = NULL; + char *line2 = NULL; + int noti_height = 0; + int *is_ticker_executed = NULL; + + ret_if(!ad); + ret_if(!ticker_info); + + if (ticker_info->win != NULL) { + _E("ticker notification exists"); + return; + } + + _D("create ticker notification"); + + /* create window */ + ticker_info->win = noti_win_add(NULL, ad); + ret_if(!ticker_info->win); + evas_object_data_set(ticker_info->win, PRIVATE_DATA_KEY_APPDATA, ad); + evas_object_data_set(ticker_info->win, PRIVATE_DATA_KEY_NOTI, noti); + + /* create layout */ + detail = elm_layout_add(ticker_info->win); + goto_if(!detail, ERROR); + + ret = elm_layout_file_set(detail, TICKER_EDJ, "quickpanel/tickernoti/normal"); + goto_if(ret == EINA_FALSE, ERROR); + + elm_object_signal_callback_add(detail, "request,hide", "", _noti_hide_cb, ticker_info); + evas_object_event_callback_add(detail, EVAS_CALLBACK_MOUSE_DOWN, _mouse_down_cb, ticker_info); + evas_object_size_hint_min_set(detail, 1, noti_height); + noti_win_content_set(ticker_info->win, detail); + evas_object_data_set(ticker_info->win, PRIVATE_DATA_KEY_DETAIL, detail); + + /* create base rectangle */ + base = evas_object_rectangle_add(evas_object_evas_get(detail)); + goto_if(!base, ERROR); + /* FIXME */ + evas_object_color_set(base, 0, 0, 0, 0); + evas_object_resize(base, ad->win.w, ad->win.h); + evas_object_size_hint_min_set(base, ad->win.w, ad->win.h); + evas_object_show(base); + elm_object_part_content_set(detail, "base", base); + evas_object_data_set(ticker_info->win, DATA_KEY_BASE_RECT, base); + + /* create icon */ + icon = _ticker_create_icon(detail, noti); + if (icon) elm_object_part_content_set(detail, "icon", icon); + evas_object_data_set(ticker_info->win, PRIVATE_DATA_KEY_ICON, icon); + + /* create scroller */ + ticker_info->scroller = elm_scroller_add(detail); + goto_if(!ticker_info->scroller, ERROR); + + elm_scroller_policy_set(ticker_info->scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); + elm_scroller_page_size_set(ticker_info->scroller, 434, INDICATOR_HEIGHT - 5); + elm_scroller_movement_block_set(ticker_info->scroller, ELM_SCROLLER_MOVEMENT_BLOCK_VERTICAL|ELM_SCROLLER_MOVEMENT_BLOCK_HORIZONTAL); + elm_object_part_content_set(detail, "text_rect", ticker_info->scroller); + + /* create box */ + box = elm_box_add(ticker_info->scroller); + goto_if(!box, ERROR); + + elm_object_content_set(ticker_info->scroller, box); + evas_object_show(box); + evas_object_data_set(ticker_info->win, PRIVATE_DATA_KEY_BOX, box); + + /* create textblock */ + textblock = elm_layout_add(box); + goto_if(!textblock, ERROR); + + ret = elm_layout_file_set(textblock, TICKER_EDJ, "quickpanel/tickernoti/text"); + goto_if(ret == EINA_FALSE, ERROR); + + evas_object_show(textblock); + + elm_box_pack_end(box, textblock); + + /* get noti text */ + _ticker_get_text(noti, 0, &line1, &line2); + + if (line1 == NULL) { + if (line2 != NULL) { + elm_object_part_text_set(textblock, "elm.text", line2); + free(line2); + } + } else if (line2 == NULL) { + elm_object_part_text_set(textblock, "elm.text", line1); + free(line1); + } else { + Eina_Strbuf *buffer = eina_strbuf_new(); + + eina_strbuf_append(buffer, line1); + eina_strbuf_append(buffer, "
"); + eina_strbuf_append(buffer, line2); + + elm_object_part_text_set(textblock, "elm.text", eina_strbuf_string_get(buffer)); + + free(line1); + free(line2); + eina_strbuf_free(buffer); + } + evas_object_data_set(ticker_info->win, DATA_KEY_TICKER_TEXT, textblock); + + is_ticker_executed = (int *)malloc(sizeof(int)); + if (is_ticker_executed != NULL) { + *is_ticker_executed = 0; + evas_object_data_set(detail, PRIVATE_DATA_KEY_TICKERNOTI_EXECUTED, is_ticker_executed); + } + + /* When ticker noti is displayed, indicator window has to be hidden. */ + if (ad) util_signal_emit_by_win(&ad->win, "message.show.noeffect", "indicator.prog"); + + ticker_info->timer = ecore_timer_add(TICKERNOTI_DURATION, _timeout_cb, ticker_info); + + evas_object_data_set(ad->win.win, PRIVATE_DATA_KEY_TICKER_INFO, ticker_info); + + return; + +ERROR: + if (ticker_info->win) _destroy_tickernoti(ticker_info); + + return; +} + +static void _destroy_tickernoti(ticker_info_s *ticker_info) +{ + struct appdata *ad = NULL; + Evas_Object *textblock = NULL; + Evas_Object *box = NULL; + Evas_Object *icon = NULL; + Evas_Object *detail = NULL; + Evas_Object *base = NULL; + int *is_ticker_executed = NULL; + notification_h noti; + + ret_if(!ticker_info); + ret_if(!ticker_info->win); + + _D("destroy ticker notification"); + + ad = evas_object_data_del(ticker_info->win, PRIVATE_DATA_KEY_APPDATA); + /* When ticker noti is hidden, indicator window has to be displayed. */ + if (ad) util_signal_emit_by_win(&ad->win, "message.hide", "indicator.prog"); + + if (ticker_info->timer) { + ecore_timer_del(ticker_info->timer); + ticker_info->timer = NULL; + } + + textblock = evas_object_data_del(ticker_info->win, DATA_KEY_TICKER_TEXT); + if (textblock) evas_object_del(textblock); + + box = evas_object_data_del(ticker_info->win, PRIVATE_DATA_KEY_BOX); + if (box) evas_object_del(box); + + if (ticker_info->scroller) ticker_info->scroller = NULL; + + icon = evas_object_data_del(ticker_info->win, PRIVATE_DATA_KEY_ICON); + if (icon) evas_object_del(icon); + + base = evas_object_data_del(ticker_info->win, DATA_KEY_BASE_RECT); + if (base) evas_object_del(base); + + detail = evas_object_data_del(ticker_info->win, PRIVATE_DATA_KEY_DETAIL); + if (detail) { + is_ticker_executed = evas_object_data_del(detail, PRIVATE_DATA_KEY_TICKERNOTI_EXECUTED); + if (is_ticker_executed != NULL) { + free(is_ticker_executed); + } + evas_object_del(detail); + } + + evas_object_del(ticker_info->win); + ticker_info->win = NULL; + + noti = evas_object_data_del(ticker_info->win, PRIVATE_DATA_KEY_NOTI); + if (noti) { + __ticker_only_noti_del(noti); + notification_free(noti); + } + + if (ticker_info->ticker_list) { + noti = _get_instant_latest_message_from_list(ticker_info); + if (noti) { + _create_tickernoti(noti, ad, ticker_info); + } + } +} + +static void _ticker_noti_detailed_changed_cb(void *data, notification_type_e type, notification_op *op_list, int num_op) +{ + notification_h noti = NULL; + notification_h noti_from_master = NULL; + ticker_info_s *ticker_info = NULL; + int flags = 0; + int applist = NOTIFICATION_DISPLAY_APP_ALL; + int ret = 0; + int op_type = 0; + int priv_id = 0; + + ret_if(!op_list); + + _D("_ticker_noti_changed_cb"); + + ticker_info = calloc(1, sizeof(ticker_info_s)); + ret_if(!ticker_info); + + if (num_op == 1) { + notification_op_get_data(op_list, NOTIFICATION_OP_DATA_TYPE, &op_type); + notification_op_get_data(op_list, NOTIFICATION_OP_DATA_PRIV_ID, &priv_id); + notification_op_get_data(op_list, NOTIFICATION_OP_DATA_NOTI, ¬i_from_master); + DBG("op_type:%d", op_type); + DBG("op_priv_id:%d", priv_id); + DBG("noti:%p", noti_from_master); + + if (op_type != NOTIFICATION_OP_INSERT && + op_type != NOTIFICATION_OP_UPDATE) { + return; + } + if (noti_from_master == NULL) { + _E("failed to get a notification from master"); + return; + } + if (notification_clone(noti_from_master, ¬i) != NOTIFICATION_ERROR_NONE) { + _E("failed to create a cloned notification"); + return; + } +#ifdef QP_EMERGENCY_MODE_ENABLE + if (quickpanel_emergency_mode_is_on()) { + if (quickpanel_emergency_mode_notification_filter(noti, 1)) { + DBG("notification filtered"); + notification_free(noti); + return; + } + } +#endif + } + + ret_if(!noti); + + notification_get_display_applist(noti, &applist); + if (!(applist & NOTIFICATION_DISPLAY_APP_TICKER + || applist & NOTIFICATION_DISPLAY_APP_INDICATOR)) { + DBG("displaying ticker option is off"); + notification_free(noti); + return; + } + + /* Check setting's event notification */ + ret = _ticker_check_ticker_off(noti); + if (ret == 1) { + DBG("Disabled tickernoti ret : %d", ret); + /* delete temporary here only ticker noti display item */ + __ticker_only_noti_del(noti); + notification_free(noti); + + return; + } + + /* Skip if previous ticker is still shown */ +/* + if (ticker_info->win != NULL) { + DBG("delete ticker noti"); + _destroy_tickernoti(); + ticker_info->win = NULL; + } +*/ + + /* Check tickernoti flag */ + notification_get_property(noti, &flags); + + if (flags & NOTIFICATION_PROP_DISABLE_TICKERNOTI) { + DBG("NOTIFICATION_PROP_DISABLE_TICKERNOTI"); + __ticker_only_noti_del(noti); + notification_free(noti); + } else if (applist & NOTIFICATION_DISPLAY_APP_TICKER + || applist & NOTIFICATION_DISPLAY_APP_INDICATOR) { + if (_is_security_lockscreen_launched()) { + _E("lockscreen or sview launched, creating a ticker canceled"); + notification_free(noti); + return; + } + + ticker_info->ticker_list = eina_list_append(ticker_info->ticker_list, noti); + /* wait when win is not NULL */ + if (ticker_info->win == NULL) { + _create_tickernoti(noti, data, ticker_info); + } + if (ticker_info->win == NULL) { + _E("Fail to create tickernoti"); + __ticker_only_noti_del(noti); + notification_free(noti); + return; + } + } +} + +static Eina_Bool _tickernoti_callback_register_idler_cb(void *data) +{ + retv_if(!data, EINA_FALSE); + + notification_register_detailed_changed_cb(_ticker_noti_detailed_changed_cb, data); + + return EINA_FALSE; +} + +int ticker_init(void *data) +{ + /* data is ad */ + /* Register notification changed cb */ + ecore_idler_add(_tickernoti_callback_register_idler_cb, data); + + return INDICATOR_ERROR_NONE; +} + +int ticker_fini(void *data) +{ + struct appdata *ad = NULL; + ticker_info_s *ticker_info = NULL; + + retv_if(!data, 0); + + ad = data; + + ticker_info = evas_object_data_del(ad->win.win, PRIVATE_DATA_KEY_TICKER_INFO); + retv_if(!ticker_info, 0); + + if (ticker_info->timer) { + ecore_timer_del(ticker_info->timer); + ticker_info->timer = NULL; + } + + return INDICATOR_ERROR_NONE; +} + +/* End of file */ diff --git a/daemon/ticker.h b/daemon/ticker.h new file mode 100644 index 0000000..7a2da2a --- /dev/null +++ b/daemon/ticker.h @@ -0,0 +1,34 @@ +/* + * Indicator + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +#ifndef __INDICATOR_TICKER_H__ +#define __INDICATOR_TICKER_H__ + +typedef struct ticker { + Evas_Object *win; + Evas_Object *scroller; + Ecore_Timer *timer; + Eina_List *ticker_list; +} ticker_info_s; + +extern int ticker_init(void *data); +extern int ticker_fini(void *data); + +#endif diff --git a/daemon/tts.c b/daemon/tts.c new file mode 100644 index 0000000..7ee88c0 --- /dev/null +++ b/daemon/tts.c @@ -0,0 +1,375 @@ +/* + * Indicator + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + + +#ifdef _SUPPORT_SCREEN_READER2 + +#include +#include +#include +#include +#include "main.h" +#include "common.h" +#include "tts.h" + +static void _tts_init(void); +static void _tts_fini(void); + +static struct _s_info { + tts_h tts_handler; + Eina_List *list; +} s_info = { + .tts_handler = NULL, + .list = NULL, +}; + +typedef struct _QP_TTS { + int id; + int done; + char *message; +} QP_TTS_T; + + + +static QP_TTS_T * _tts_entry_new(int id, char *message) +{ + QP_TTS_T *entry = NULL; + retif(message == NULL, NULL, "NULL message"); + + entry = (QP_TTS_T *)calloc(1, sizeof(QP_TTS_T)); + retif(entry == NULL, NULL, "failed to memory allocation"); + + entry->id = id; + entry->message = strdup(message); + + return entry; +} + + + +static void _tts_entry_del(QP_TTS_T *entry) +{ + retif(entry == NULL, ,"invalid parameter"); + + if (entry->message != NULL) { + free(entry->message); + } + + free(entry); +} + + + +static QP_TTS_T *_tts_list_get_first(void) +{ + return eina_list_nth(s_info.list, 0); +} + + + +static void _tts_list_add(QP_TTS_T *entry) +{ + retif(entry == NULL, ,"invalid parameter"); + + s_info.list = eina_list_prepend(s_info.list, entry); +} + + + +static void _tts_list_del(QP_TTS_T *entry) +{ + retif(entry == NULL, ,"invalid parameter"); + + s_info.list = eina_list_remove(s_info.list, entry); +} + + + +static void _tts_list_clean(void) +{ + QP_TTS_T *entry = NULL; + + while ((entry = _tts_list_get_first()) != NULL) { + _tts_list_del(entry); + _tts_entry_del(entry); + } +} + + + +static int _is_screenreader_on(void) +{ + int ret = -1, status = 0; + + ret = vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, &status); + retif(ret != 0, 0, "failed to read VCONFKEY_SETAPPL_ACCESSIBILITY_TTS %d", ret); + + return status; +} + + + +static tts_state_e _tts_state_get(void) +{ + int ret = TTS_ERROR_NONE; + tts_state_e state = TTS_STATE_READY; + + if (s_info.tts_handler != NULL) { + ret = tts_get_state(s_info.tts_handler, &state); + if (TTS_ERROR_NONE != ret){ + ERR("get state error(%d)", ret); + return -1; + } + + return state; + } + + return -1; +} + + + +static void _tts_play(const char *message) +{ + int utt = 0; + int ret = TTS_ERROR_NONE; + + if (s_info.tts_handler == NULL) { + ERR("critical, TTS handler isn't initialized"); + return; + } + + DBG("adding %s", message); + + ret = tts_add_text(s_info.tts_handler, message, NULL, TTS_VOICE_TYPE_AUTO, TTS_SPEED_AUTO, &utt); + if (TTS_ERROR_NONE != ret){ + ERR("add text error!"); + return; + } + + ret = tts_play(s_info.tts_handler); + if(ret != TTS_ERROR_NONE) { + ERR("play error(%d) state(%d)", ret); + } +} + + + +static void _tts_stop(void) +{ + int ret = TTS_ERROR_NONE; + + if (s_info.tts_handler == NULL) { + ERR("critical, TTS handler isn't initialized"); + return; + } + + ret = tts_stop(s_info.tts_handler); + if (TTS_ERROR_NONE != ret){ + ERR("failed to stop play:%d", ret); + return; + } +} + + + +static void _tts_state_changed_cb(tts_h tts, tts_state_e previous, tts_state_e current, void* user_data) +{ + QP_TTS_T *entry = NULL; + + DBG("_tts_state_changed_cb(%d => %d)", previous, current); + + if(previous == TTS_STATE_CREATED && current == TTS_STATE_READY) { + entry = _tts_list_get_first(); + if (entry != NULL) { + _tts_play(entry->message); + _tts_list_del(entry); + _tts_entry_del(entry); + } + _tts_list_clean(); + } +} + + + +static void _tts_utt_started_cb(tts_h tts, int utt_id, void *user_data) +{ + DBG("_tts_utt_started_cb"); +} + + + +static void _tts_utt_completed_cb(tts_h tts, int utt_id, void *user_data) +{ + DBG("_tts_utt_completed_cb"); +} + + + +static void _tts_error_cb(tts_h tts, int utt_id, tts_error_e reason, void* user_data) +{ + DBG("_tts_error_cb"); +} + + + +static int _tts_callback_set(tts_h tts, void* data) +{ + int ret = 0; + + if (TTS_ERROR_NONE != (ret = tts_set_state_changed_cb(tts, _tts_state_changed_cb, tts))){ + ERR("set interrupted callback error !!:%d", ret); + ret = -1; + } + + if (TTS_ERROR_NONE != (ret = tts_set_utterance_started_cb(tts, _tts_utt_started_cb, data))) { + ERR("set utterance started callback error !!:%d", ret); + ret = -1; + } + + if (TTS_ERROR_NONE != (ret = tts_set_utterance_completed_cb(tts, _tts_utt_completed_cb, data))) { + ERR("set utterance completed callback error !!:%d", ret); + ret = -1; + } + + if (TTS_ERROR_NONE != (ret = tts_set_error_cb(tts, _tts_error_cb, data))) { + ERR("set error callback error !!:%d", ret); + ret = -1; + } + + return ret; +} + + + +static void _tts_init() +{ + tts_h tts = NULL; + int ret = TTS_ERROR_NONE; + + if (s_info.tts_handler == NULL) { + ret = tts_create(&tts); + if(ret != TTS_ERROR_NONE) { + ERR("tts_create() failed"); + return ; + } + + ret = tts_set_mode(tts, TTS_MODE_NOTIFICATION); + if(ret != TTS_ERROR_NONE) { + ERR("tts_create() failed"); + tts_destroy(s_info.tts_handler); + s_info.tts_handler = NULL; + return ; + } + + if(_tts_callback_set(tts, NULL) != 0) { + ERR("_tts_callback_set() failed"); + tts_destroy(s_info.tts_handler); + s_info.tts_handler = NULL; + return ; + } + + ret = tts_prepare(tts); + if(ret != TTS_ERROR_NONE) { + ERR("tts_create() failed"); + tts_destroy(s_info.tts_handler); + s_info.tts_handler = NULL; + return ; + } + + s_info.tts_handler = tts; + } +} + + + +static void _tts_fini(void) +{ + int ret = TTS_ERROR_NONE; + + if (s_info.tts_handler != NULL) { + ret = tts_destroy(s_info.tts_handler); + if(ret != TTS_ERROR_NONE) { + ERR("tts_destroy() failed"); + } + s_info.tts_handler = NULL; + } +} + + + +static void _tts_vconf_cb(keynode_t *key, void *data){ + if(_is_screenreader_on() == 0) { + DBG("TTS turned off"); + _tts_fini(); + } + + _tts_list_clean(); +} + + + +void indicator_service_tts_init(void *data) { + int ret = 0; + + ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, + _tts_vconf_cb, data); +} + + + +void indicator_service_tts_fini(void *data) { + int ret = 0; + + ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, + _tts_vconf_cb, data); + + _tts_list_clean(); +} + + + +void indicator_service_tts_play(char *message) { + tts_state_e state = 0; + QP_TTS_T *entry = NULL; + retif(message == NULL, ,"invalid parameter"); + + if (_is_screenreader_on() == 1) { + _tts_init(); + + state = _tts_state_get(); + + if (state == TTS_STATE_CREATED) { + _tts_list_clean(); + entry = _tts_entry_new(-1, message); + if (entry != NULL) { + _tts_list_add(entry); + } + } else if (state == TTS_STATE_PLAYING || state == TTS_STATE_PAUSED) { + _tts_stop(); + _tts_play(message); + } else if (state == TTS_STATE_READY) { + _tts_play(message); + } else { + ERR("invalid status: %d", state); + } + } +} +#endif /* _SUPPORT_SCREEN_READER2 */ diff --git a/daemon/tts.h b/daemon/tts.h new file mode 100644 index 0000000..589704c --- /dev/null +++ b/daemon/tts.h @@ -0,0 +1,32 @@ +/* + * Indicator + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +#ifdef _SUPPORT_SCREEN_READER2 + +#ifndef __SERVICE_TTS_H__ +#define __SERVICE_TTS_H__ + +void indicator_service_tts_init(void *data); +void indicator_service_tts_fini(void *data); +void indicator_service_tts_play(char *message); + +#endif +#endif + diff --git a/daemon/util.c b/daemon/util.c new file mode 100644 index 0000000..628ad84 --- /dev/null +++ b/daemon/util.c @@ -0,0 +1,581 @@ +/* + * Indicator + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + + +#include +#include + +#include "common.h" +#include "indicator.h" +#include "main.h" +#include "indicator_gui.h" +#include "util.h" +#include "icon.h" +#include "box.h" +#include "log.h" + +#define APP_CONTROL_OPERATION_POPUP_SEARCH "http://samsung.com/appcontrol/operation/search" + +#define DEFAULT_DIR ICONDIR +#define DIR_PREFIX "Theme_%02d_" +#define LABEL_STRING "%s" + +static char *_icondir; + + + +char *util_set_label_text_color(const char *txt) +{ + Eina_Strbuf *temp_buf = NULL; + Eina_Bool buf_result = EINA_FALSE; + char *ret_str = NULL; + + retif(txt == NULL, NULL, "Invalid parameter!"); + + temp_buf = eina_strbuf_new(); + buf_result = eina_strbuf_append_printf(temp_buf, + LABEL_STRING, FONT_COLOR, txt); + + if (buf_result == EINA_FALSE) + DBG("Failed to make label string!"); + else + ret_str = eina_strbuf_string_steal(temp_buf); + + eina_strbuf_free(temp_buf); + return ret_str; +} + +const char *util_get_icon_dir(void) +{ + if (_icondir == NULL) + _icondir = DEFAULT_DIR; + + return (const char *)_icondir; +} + + + +void util_signal_emit(void* data, const char *emission, const char *source) +{ + struct appdata *ad = NULL; + Evas_Object *edje = NULL; + + ret_if(!data); + + ad = (struct appdata *)data; + + char *filter1 = "indicator.connection.updown"; + char *filter2 = "indicator.wifi.updown"; + if (strncmp(filter1, emission, strlen(filter1)) != 0 + && strncmp(filter2, emission, strlen(filter2)) != 0) { + SECURE_DBG("emission %s",emission); + } + + edje = elm_layout_edje_get(ad->win.layout); + ret_if(!edje); + edje_object_signal_emit(edje, emission, source); +} + + + +void util_part_text_emit(void* data, const char *part, const char *text) +{ + struct appdata *ad = (struct appdata *)data; + retif(data == NULL, , "Invalid parameter!"); + Evas_Object *edje; + + retif(ad->win.layout == NULL, , "Invalid parameter!"); + edje = elm_layout_edje_get(ad->win.layout); + edje_object_part_text_set(edje, part, text); +} + + + +void util_signal_emit_by_win(void* data, const char *emission, const char *source) +{ + win_info *win = NULL; + Evas_Object *edje = NULL; + + ret_if(!data); + + win = (win_info*)data; + ret_if(!win->layout); + + _D("emission %s", emission); + + edje = elm_layout_edje_get(win->layout); + edje_object_signal_emit(edje, emission, source); +} + + + +void util_part_text_emit_by_win(void* data, const char *part, const char *text) +{ + win_info *win = (win_info*)data; + retif(data == NULL, , "Invalid parameter!"); + Evas_Object *edje; + + retif(win->layout == NULL, , "Invalid parameter!"); + edje = elm_layout_edje_get(win->layout); + edje_object_part_text_set(edje, part, text); +} + + + +void util_battery_percentage_part_content_set(void* data, const char *part, const char *img_path) +{ + struct appdata *ad = (struct appdata *)data; + retif(data == NULL, , "Invalid parameter!"); + Evas_Object *icon = NULL; + char path[PATH_MAX]; + + retif(ad->win.layout == NULL, , "Invalid parameter!"); + + icon = elm_image_add(ad->win.layout); + retif(!icon, , "Cannot create elm icon object!"); + + if (strncmp(img_path, "/", 1) != 0) + { + snprintf(path, sizeof(path), "%s/%s", util_get_icon_dir(), img_path); + } + else + { + strncpy(path, img_path, sizeof(path)-1); + } + + if (!ecore_file_exists(path)) + { + ERR("icon file does not exist!!: %s",path); + return; + } + elm_image_file_set(icon, path, NULL); + evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_object_part_content_set(ad->win.layout, part, icon); +} + + + +void util_send_status_message_start(void* data,double duration) +{ + Ecore_Evas *ee_port; + win_info* win = (win_info*)data; + retif(data == NULL, , "Invalid parameter!"); + struct appdata *ad = win->data; + Indicator_Data_Animation msg = {0,}; + + msg.xwin = ad->active_indi_win; + msg.duration = duration; + + DBG("status start %x, %f",ad->active_indi_win,duration); + ee_port = ecore_evas_ecore_evas_get(evas_object_evas_get(win->win)); + ecore_evas_msg_send(ee_port, MSG_DOMAIN_CONTROL_INDICATOR, MSG_ID_INDICATOR_ANI_START, &(msg), sizeof(Indicator_Data_Animation)); + +} + + + +void util_launch_search(void* data) +{ + int lock_state = VCONFKEY_IDLE_UNLOCK; + int lock_ret = -1; + app_control_h service; + int ret = APP_CONTROL_ERROR_NONE; + + lock_ret = vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, + &lock_state); + + /* In Lock Screen, home button don't have to do */ + if (lock_ret == 0 && lock_state == VCONFKEY_IDLE_LOCK) + { + return; + } + + if (util_check_system_status() == FAIL) + { + DBG("util_check_system_status failed"); + return; + } + + app_control_create(&service); + app_control_set_operation(service, APP_CONTROL_OPERATION_MAIN); + app_control_set_app_id(service, SEARCH_PKG_NAME); + + ret = app_control_send_launch_request(service, NULL, NULL); + + if(ret != APP_CONTROL_ERROR_NONE) + { + ERR("Cannot launch app"); + } + + app_control_destroy(service); + +} + + + +int util_check_system_status(void) +{ + int ret, value = -1; + + ret = vconf_get_int(VCONFKEY_PWLOCK_STATE, &value); + if (ret == OK && + (value == VCONFKEY_PWLOCK_BOOTING_LOCK || + value == VCONFKEY_PWLOCK_RUNNING_LOCK)) + return FAIL; + + return OK; +} + + + +#ifdef _SUPPORT_SCREEN_READER +Evas_Object *util_access_object_register(Evas_Object *object, Evas_Object *layout) +{ + if ((object == NULL) || (layout == NULL)) { + ERR("Access object doesn't exist!!! %x %x",object,layout); + return NULL; + } + + return elm_access_object_register(object, layout); +} + + + +void util_access_object_unregister(Evas_Object *object) +{ + if (object == NULL) { + ERR("Access object doesn't exist!!! %x",object); + return NULL; + } + + elm_access_object_unregister(object); +} + + + +void util_access_object_info_set(Evas_Object *object, int info_type, char *info_text) +{ + if ((object == NULL) || (info_text == NULL)) { + ERR("Access info set fails %x, %x!!!",object,info_text); + return; + } + + elm_access_info_set(object, info_type, (const char *)info_text); +} + + + +void util_access_object_activate_cb_set(Evas_Object *object, Elm_Access_Activate_Cb activate_cb, void *cb_data) +{ + if ((object == NULL) || (activate_cb == NULL)) { + ERR("Access activated cb set fails %x %x!!!",object,activate_cb); + return; + } + + elm_access_activate_cb_set(object, activate_cb, cb_data); +} + + + +void util_access_object_info_cb_set(Evas_Object *object, int type, Elm_Access_Info_Cb info_cb, void *cb_data) +{ + if ((object == NULL) || (info_cb == NULL)) { + ERR("Access info cb set fails %x %x!!!",object,info_cb); + return; + } + + elm_access_info_cb_set(object, type, info_cb, cb_data); +} + + + +void util_icon_access_register(icon_s *icon) +{ + + if(icon == NULL) + { + ERR("ICON NULL"); + return; + } + + if(icon->tts_enable == EINA_TRUE && icon->ao==NULL) + { + Evas_Object *to = NULL; + + to = (Evas_Object *) edje_object_part_object_get(elm_layout_edje_get(icon->img_obj.obj), "elm.rect.icon.access"); + icon->ao = util_access_object_register(to, icon->img_obj.obj); + + if(icon->access_cb!=NULL) + { + util_access_object_info_cb_set(icon->ao,ELM_ACCESS_INFO,icon->access_cb,icon->ad); + } + } +} + + + +void util_icon_access_unregister(icon_s *icon) +{ + if(icon == NULL) + { + ERR("ICON NULL"); + return; + } + + if(icon->tts_enable == EINA_TRUE&&icon->ao!=NULL) + { + util_access_object_unregister(icon->ao); + icon->ao = NULL; + } +} +#endif /* _SUPPORT_SCREEN_READER */ + + + +static char* _get_timezone_from_vconf(void) +{ + char *szTimezone = NULL; + szTimezone = vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_ID); + if(szTimezone == NULL) + { + ERR("Cannot get time zone."); + return strdup("N/A"); + } + + return szTimezone; +} + + + +char* util_get_timezone_str(void) +{ + enum { BUFFERSIZE = 1024 }; + char buf[BUFFERSIZE]; + ssize_t len = readlink("/opt/etc/localtime", buf, sizeof(buf)-1); + + if (len != -1) + { + buf[len] = '\0'; + } + else + { + ERR("NO TIMEZONEINFO"); + return _get_timezone_from_vconf(); + } + return (char*)g_strdup(buf+20); // Asia/Seoul +} + + + +Eina_Bool util_win_prop_angle_get(Ecore_X_Window win, int *req) +{ + Eina_Bool res = EINA_FALSE; +#if 0 + int ret, count; + int angle[2] = {-1, -1}; + unsigned char* prop_data = NULL; + ret = ecore_x_window_prop_property_get(win, ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE, ECORE_X_ATOM_CARDINAL, 32, &prop_data, &count); + if (ret <= 0) { + if (prop_data) free(prop_data); + return res; + } + + if (ret && prop_data) { + memcpy (&angle, prop_data, sizeof (int)*count); + if (count == 2) res = EINA_TRUE; + } + + if (prop_data) free(prop_data); + *req = angle[0]; //current angle + + if (angle[0] == -1 && angle[1] == -1) res = EINA_FALSE; +#endif + + return res; +} + + +#if 0 +int util_get_block_width(void* data, const char* part) +{ + Evas_Object * eo = NULL; + int geo_dx = 0; + int geo_dy = 0; + retif(data == NULL,-1, "Invalid parameter!"); + retif(part == NULL,-1, "Invalid parameter!"); + + win_info* win = (win_info*)data; + + eo = (Evas_Object *) edje_object_part_object_get(elm_layout_edje_get(win->layout), part); + + evas_object_geometry_get(eo, NULL, NULL, &geo_dx, &geo_dy); + + return geo_dx; +} + + + +int util_get_string_width(void* data, const char* part) +{ + Evas_Object * eo = NULL; + int text_dx = 0; + int text_dy = 0; + retif(data == NULL,-1, "Invalid parameter!"); + retif(part == NULL,-1, "Invalid parameter!"); + + win_info* win = (win_info*)data; + + eo = (Evas_Object *) edje_object_part_object_get(elm_layout_edje_get(win->layout), part); + + evas_object_textblock_size_formatted_get(eo, &text_dx, &text_dy); + + return text_dx; +} +#endif + + +int util_is_orf(void) +{ + return 1; +} + + + +int util_check_noti_ani(const char* path) +{ + retv_if(!path, 0); + if (!strcmp(path,"reserved://indicator/ani/downloading") + || !strcmp(path,"reserved://indicator/ani/uploading")) { + return 1; + } + return 0; +} + + + +void util_start_noti_ani(void* data) +{ + icon_s *icon = (icon_s *)data; + retif(data == NULL, , "Invalid parameter!"); + + if(util_check_noti_ani(icon->img_obj.data)) + { + DBG("%s",icon->name); + if(!strcmp(icon->img_obj.data,"reserved://indicator/ani/downloading")) + { + icon_ani_set(icon,ICON_ANI_DOWNLOADING); + } + else + { + icon_ani_set(icon,ICON_ANI_UPLOADING); + } + } +} + + + +void util_stop_noti_ani(void* data) +{ + icon_s *icon = (icon_s *)data; + retif(data == NULL, , "Invalid parameter!"); + + if(util_check_noti_ani(icon->img_obj.data)) + { + Evas_Object *img_edje; + img_edje = elm_layout_edje_get(icon->img_obj.obj); + DBG("%s",icon->name); + if(!strcmp(icon->img_obj.data,"reserved://indicator/ani/downloading")) + { + edje_object_signal_emit(img_edje, "indicator.ani.downloading.stop","elm.swallow.icon"); + } + else + { + edje_object_signal_emit(img_edje, "indicator.ani.uploading.stop","elm.swallow.icon"); + } + } +} + + + +void util_char_replace(char *text, char s, char t) +{ + retif(text == NULL, , "invalid argument"); + + int i = 0, text_len = 0; + + text_len = strlen(text); + + for (i = 0; i < text_len; i++) { + if (*(text + i) == s) { + *(text + i) = t; + } + } +} + + + +static bool _is_empty_str(const char *str) +{ + if (NULL == str || '\0' == str[0]) + return TRUE; + return FALSE; +} + + + +char *util_safe_str(const char *str, const char *strSearch) +{ + if (_is_empty_str(str)) + return NULL; + + return strstr(str, strSearch); +} + + + +int util_dynamic_state_get(void) +{ + int val = 0; + //vconf_get_bool(VCONFKEY_SETAPPL_DYNAMIC_STATUS_BAR, &val); + return val; +} + + + +Ecore_File_Monitor* util_file_monitor_add(const char* file_path, Ecore_File_Monitor_Cb callback_func, void *ad) +{ + SECURE_DBG("File path : %s", file_path); + Ecore_File_Monitor* pFileMonitor = NULL; + pFileMonitor = ecore_file_monitor_add(file_path, callback_func, ad); + if(pFileMonitor == NULL) SECURE_DBG("ecore_file_monitor_add return NULL !!"); + + return pFileMonitor; +} + + + +void util_file_monitor_remove(Ecore_File_Monitor* pFileMonitor) +{ + if(pFileMonitor == NULL) return; + + ecore_file_monitor_del(pFileMonitor); + pFileMonitor = NULL; +} +/* End of file */ diff --git a/daemon/util.h b/daemon/util.h new file mode 100644 index 0000000..bb69022 --- /dev/null +++ b/daemon/util.h @@ -0,0 +1,75 @@ +/* + * Indicator + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + + +#ifndef __INDICATOR_UTIL_H__ +#define __INDICATOR_UTIL_H__ +#include +//#include + +typedef enum { + INDICATOR_ERROR_NONE = 0, + INDICATOR_ERROR_FAIL = -1, + INDICATOR_ERROR_DB_FAILED = -2, + INDICATOR_ERROR_OUT_OF_MEMORY = -3, + INDICATOR_ERROR_INVALID_PARAMETER = -4, + INDICATOR_ERROR_NO_DATA = -5, +} indicator_error_e; + +typedef struct _Indicator_Data_Animation Indicator_Data_Animation; + +struct _Indicator_Data_Animation +{ + Ecore_X_Window xwin; + double duration; +}; + +extern char *util_set_label_text_color(const char *txt); +extern const char *util_get_icon_dir(void); +extern void util_signal_emit(void* data, const char *emission, const char *source); +extern void util_part_text_emit(void* data, const char *part, const char *text); +extern void util_signal_emit_by_win(void* data, const char *emission, const char *source); +extern void util_part_text_emit_by_win(void* data, const char *part, const char *text); +extern void util_battery_percentage_part_content_set(void* data, const char *part, const char *img_path); +extern void util_launch_search(void* data); +extern int util_check_system_status(void); +extern char* util_get_timezone_str(void); +extern Eina_Bool util_win_prop_angle_get(Ecore_X_Window win, int *curr); +extern int util_is_orf(void); +extern int util_check_noti_ani(const char* path); +extern void util_start_noti_ani(void* data); +extern void util_stop_noti_ani(void* data); +extern void util_send_status_message_start(void* data,double duration); +extern void util_char_replace(char *text, char s, char t); +extern int util_dynamic_state_get(void); + +extern Ecore_File_Monitor* util_file_monitor_add(const char* file_path, Ecore_File_Monitor_Cb callback_func, void *ad); +extern void util_file_monitor_remove(Ecore_File_Monitor* pFileMonitor); +extern char *util_safe_str(const char *str, const char *strSearch); + +#ifdef _SUPPORT_SCREEN_READER +extern Evas_Object *util_access_object_register(Evas_Object *object, Evas_Object *layout); +extern void util_access_object_unregister(Evas_Object *object); +extern void util_access_object_info_set(Evas_Object *object, int info_type, char *info_text); +extern void util_icon_access_register(icon_s *icon); +extern void util_icon_access_unregister(icon_s *icon); +#endif /* _SUPPORT_SCREEN_READER */ + +#endif /* __INDICATOR_UTIL_H__ */ diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt index ef3e011..5e1403a 100644 --- a/data/CMakeLists.txt +++ b/data/CMakeLists.txt @@ -1,4 +1,10 @@ CONFIGURE_FILE(${PROJECT_NAME}.xml.in ${CMAKE_CURRENT_BINARY_DIR}/org.tizen.${PROJECT_NAME}.xml) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.tizen.${PROJECT_NAME}.xml DESTINATION ${MANIFESTXMLDIR}) +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.tizen.${PROJECT_NAME}_ChangeableColorInfo.xml DESTINATION ${CHANGEABLEDIR}) +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.tizen.${PROJECT_NAME}_ChangeableFontInfo.xml DESTINATION ${CHANGEABLEDIR}) + +CONFIGURE_FILE(${PROJECT_NAME}.sh.in ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}) +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME} DESTINATION /etc/init.d/) + ADD_SUBDIRECTORY(resource) diff --git a/data/indicator.conf b/data/indicator.conf old mode 100755 new mode 100644 diff --git a/data/indicator.desktop.in b/data/indicator.desktop.in old mode 100755 new mode 100644 diff --git a/data/indicator.sh.in b/data/indicator.sh.in new file mode 100644 index 0000000..8e5236e --- /dev/null +++ b/data/indicator.sh.in @@ -0,0 +1,2 @@ +@BINDIR@/@PROJECT_NAME@ & +sleep 2 diff --git a/data/indicator.xml.in b/data/indicator.xml.in old mode 100755 new mode 100644 index 5ac31d1..b089523 --- a/data/indicator.xml.in +++ b/data/indicator.xml.in @@ -1,12 +1,12 @@ - - + + Youngjoo Park seungtaek chung Sung Park - @PROJECT_NAME@ + Indicator @PKGNAME@.png - + - \ No newline at end of file + diff --git a/data/org.tizen.indicator_ChangeableColorInfo.xml b/data/org.tizen.indicator_ChangeableColorInfo.xml new file mode 100644 index 0000000..ebd1aef --- /dev/null +++ b/data/org.tizen.indicator_ChangeableColorInfo.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/org.tizen.indicator_ChangeableFontInfo.xml b/data/org.tizen.indicator_ChangeableFontInfo.xml new file mode 100644 index 0000000..0e58cb9 --- /dev/null +++ b/data/org.tizen.indicator_ChangeableFontInfo.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/data/resource/CMakeLists.txt b/data/resource/CMakeLists.txt old mode 100755 new mode 100644 index 2cb55a8..96e32a7 --- a/data/resource/CMakeLists.txt +++ b/data/resource/CMakeLists.txt @@ -1,21 +1,39 @@ +MESSAGE("EDJE_CC CUSTOM FLAG : ${EDJEFLAGS}") + ADD_CUSTOM_TARGET(indicator_port.edj - COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/icons_edc + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/icons_edc "${EDJEFLAGS}" ${CMAKE_CURRENT_SOURCE_DIR}/indicator_port.edc ${CMAKE_CURRENT_BINARY_DIR}/indicator_port.edj DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/indicator_port.edc ) ADD_DEPENDENCIES(${PROJECT_NAME} indicator_port.edj) -ADD_CUSTOM_TARGET(indicator_land.edj - COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/icons_edc - ${CMAKE_CURRENT_SOURCE_DIR}/indicator_land.edc - ${CMAKE_CURRENT_BINARY_DIR}/indicator_land.edj - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/indicator_land.edc +ADD_CUSTOM_TARGET(ticker.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/icons_edc "${EDJEFLAGS}" + ${CMAKE_CURRENT_SOURCE_DIR}/ticker.edc + ${CMAKE_CURRENT_BINARY_DIR}/ticker.edj + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ticker.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} ticker.edj) + +ADD_CUSTOM_TARGET(ticker_default.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/icons_edc "${EDJEFLAGS}" + ${CMAKE_CURRENT_SOURCE_DIR}/ticker_default.edc + ${CMAKE_CURRENT_BINARY_DIR}/ticker_default.edj + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ticker_default.edc ) -ADD_DEPENDENCIES(${PROJECT_NAME} indicator_land.edj) +ADD_DEPENDENCIES(${PROJECT_NAME} ticker_default.edj) + +ADD_CUSTOM_TARGET(ticker_animated_icon.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/animated_icon "${EDJEFLAGS}" + ${CMAKE_CURRENT_SOURCE_DIR}/ticker_animated_icon.edc + ${CMAKE_CURRENT_BINARY_DIR}/ticker_animated_icon.edj + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ticker_animated_icon.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} ticker_animated_icon.edj) ADD_CUSTOM_TARGET(indicator_icon_theme.edj - COMMAND edje_cc + COMMAND edje_cc "${EDJEFLAGS}" ${CMAKE_CURRENT_SOURCE_DIR}/indicator_icon_theme.edc ${CMAKE_CURRENT_BINARY_DIR}/indicator_icon_theme.edj DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/indicator_icon_theme.edc @@ -23,17 +41,28 @@ ADD_CUSTOM_TARGET(indicator_icon_theme.edj ADD_DEPENDENCIES(${PROJECT_NAME} indicator_icon_theme.edj) ADD_CUSTOM_TARGET(indicator_icon_nonfixed_theme.edj - COMMAND edje_cc + COMMAND edje_cc "${EDJEFLAGS}" ${CMAKE_CURRENT_SOURCE_DIR}/indicator_icon_nonfixed_theme.edc ${CMAKE_CURRENT_BINARY_DIR}/indicator_icon_nonfixed_theme.edj DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/indicator_icon_nonfixed_theme.edc ) ADD_DEPENDENCIES(${PROJECT_NAME} indicator_icon_nonfixed_theme.edj) +ADD_CUSTOM_TARGET(indicator_icon_animation.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/icons_edc "${EDJEFLAGS}" + ${CMAKE_CURRENT_SOURCE_DIR}/indicator_icon_animation.edc + ${CMAKE_CURRENT_BINARY_DIR}/indicator_icon_animation.edj + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/indicator_icon_animation.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} indicator_icon_animation.edj) + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/indicator_port.edj DESTINATION ${EDJDIR}) -INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/indicator_land.edj DESTINATION ${EDJDIR}) +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/ticker.edj DESTINATION ${EDJDIR}) +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/ticker_default.edj DESTINATION ${EDJDIR}) +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/ticker_animated_icon.edj DESTINATION ${EDJDIR}) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/indicator_icon_theme.edj DESTINATION ${EDJDIR}) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/indicator_icon_nonfixed_theme.edj DESTINATION ${EDJDIR}) +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/indicator_icon_animation.edj DESTINATION ${EDJDIR}) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/icons DESTINATION ${RESDIR} FILES_MATCHING PATTERN "*.png") INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/icons DESTINATION ${RESDIR} FILES_MATCHING PATTERN "*.PNG") diff --git a/data/resource/animated_icon/noti_download_01.png b/data/resource/animated_icon/noti_download_01.png new file mode 100755 index 0000000000000000000000000000000000000000..1347662df038a9148710ee08774540db8316c902 GIT binary patch literal 1283 zcmbVMZA{!`9Pc48g98sygOkPDxda_|eYsxmuH)c(?cF%x;C7thl8IW{=b(eOXIs3& z{2&@Pj2oJmm}ur(m~Q*v7X3hCRHm7JVBbj2N&F-*r!mG&mMj=?_!REY4`d%~+CDG+ z{eJ(K=l}03sqO={HM?pM1gTAQ2x&Nao#)PK`0o2`UjPmdSh1|ttLLnOXaIzh^#On; zRB;fbfhdnXI|o`3^CyX9o(Drp$G8D{$GbDq_^=d`vGz8!)n=i93M>(|)e+5P?J%~X%fh*{jbrEr z#2OA`n@(kuDU{a@fcm{Yk3^6p$}nD%_A?CGf>H!Y;RL)H4@t9rhNS{%>B68jL(Z{j zAzrctS7B_(vhpmB7YYS$!ROVDL7WVQLXHMSc_6}Lj%k)?do*)TSwR4%WGHz{(KXaj z6bJNCD~v%;H$zbK$>f%>W|k5KQ-<4O9w)s7uBuL48)(x?gMZ!F7Hww6@&Hc*Qy(=X zcpkYuWirg&?F~6V=ndOrDDY6k5kZ$mRiIf3A&kKZbCCHQIkN~t^)0r zxcqIoEN=kO(v6I+kCZDQHKbd*Ii%-NzL!Cp`xH&q3+AKF@oYvb07H2W$Z6cwO2N+3CgapDdN1j7*mPg4X#MB@Th;>!OgXE<~QcZ%ab#Zuma73fU2N*^w^ zng?jGV+`0DPt>oxg&;0pLf|s?4+CrK>+Kg)m0dgedyliv7Z<1N9y;~H%hkEZDn6m! zUg$?>dy<`vXP=xhkv|ThSECKG|*SyPB(cHmrOS8^HRM_12WJg~d%*X#2$HN_jh zrI`H_SHHrW|Jvd1Ena>yCb{%~ef9c^9=c|`aKXPWr*?xax zQ{Cg|J1186)*pU4`rWO@mJcrl(5EWZSC=dF4-U`P&MaNu=f*3S?#^Cmi~KZOciC8L zpfm0D?gy>@K%={Asj~Tq%YEUanX2P-)BY=wOJD5d=N6~c`_j9AcYWLvS$JnkTj4+b z{*9BTR!+L8`zxf*`MJf{CbCCg|8lkI)_ZR*V>WW|=G5fP)%E!_C@wC1JDs~S1-cTe({YYiRFZz&P$7S2VVdGQ~rQMJkd literal 0 HcmV?d00001 diff --git a/data/resource/animated_icon/noti_download_02.png b/data/resource/animated_icon/noti_download_02.png new file mode 100755 index 0000000000000000000000000000000000000000..52848ca0f5c30305249ad9e5d64b2bf7de0aff7d GIT binary patch literal 1295 zcmeAS@N?(olHy`uVBq!ia0vp^dLYcf1|-9GYMTQo$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%xRe+5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md0Z)!fC^ z$impr#KqOb(9p@$*v;9((bdt>($dYs%>rfyHodN{7S1kaMuz4_hCrRJCKje{h8Cvg zj*jLgM#ip|rZBypdBr7(dC93TdozLdLiHNp)obNkl$uzQUlfv`p94z)0U7xv`NbLe z1q#l=W(peNnRzMs<;9wy=z;jwCABECEH%ZgC_h&L9KKeWSnM}7GBP)EG;%R?G&2MF z+rq`b%+bKb*~G}e%)rUbMG2}mg`69MN0@^CSq{E~)NwlpoKjYhL>#47Cb z_w|-o8PiwH@G)B9nUnB;z9T{oe=;|yiI(Z~u`&87h)MW925MqkddgoR?}*~}LX#uz zvUaaNTnuW>IKNr>>YN|5nD;MuBk$l77~L$DJ5@(POgZqpw!%EK3!YDnC9C%Fw3+Oa z>X<)if!va^s|f`b8hiCvA5C{zQOg+pJqJpvu} z2@`)aO#N*Yar&eGg@C^<4mlS}?D!}Xi(M?rb7lOd>{VW5`>%dW zh-9fnSwV@wj`uGz&RV|u5ZK-i3ZV){hXzIlwdH|fJ9(DYgNi6mS3j3^P6l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md0Z)!fC^ z$impr#KqOb(9p@$*v;9((bdt>($dYs%>rfyHodOS#^#R3t|sP2hCrRJCQcRxW=@9Y zMh3=4Zcc`-hA_RJdBr7(dC93TdozLdLiHNs)obNkl$uzQUlfv`p94z)0U7xv`NbLe z1q#l=W(peNnRzMs<;9wy=z;jwCABECEH%ZgC_h&L9KKeWSnM}7GBP)EG;%R?G&2MF z+rq`b%+bKb*~G}e%)rUbMG2}mg`6F!Z)Tj%I^-bICM>vT%^i)PU4rs%cfUx+eAoRYv@Z8xZ!Mp^ zb4*7^SHk70yGQH`S_Fhlt(K|(kpEFIW2S}t;lgJUw@YKSdnaxTk`h^NadfKNH^%#s z%wHYu3-tKtB}v;I|D3?t)%Z_$1(SRBswYlM_G&Z;70-DDQhW9OoazsPhTjg$ns0e5 zxzkYhetL*y!Gv#ocS5sgtO&j5sQS#f_`=WkAwTy%oN3Q%`Hxr4@L6^7Z>b}DYu+~A z6fI6SDqsFIuG>gq{^&K|-!LoY7#;HAPx6XUq_hwb`LjSw*+k>Y#M&F9v zV6eC0?}766%KQD-y(U|%KD^_R?@k>XDNd`sKd+ z8-#`SXWd=C;&|*lEfN0yMyCCY`F>r&K-b$#yEC#eC~F0VneW;#2UJLTy85}Sb4q9e E0Fy7mQvd(} literal 0 HcmV?d00001 diff --git a/data/resource/animated_icon/noti_download_04.png b/data/resource/animated_icon/noti_download_04.png new file mode 100755 index 0000000000000000000000000000000000000000..b6093298d0c20f3dc26e19beb47f16265ca98251 GIT binary patch literal 1288 zcmeAS@N?(olHy`uVBq!ia0vp^dLYcf1|-9GYMTQo$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%xRe+5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md0Z)!fC^ z$impr#KqOb(9p@$*v;9((bdt>($dYs%>rfyHodNvCNAcVt|sP2hCrRJCYCOyCeD_Q zZe~V61DwoEVR}9Dic1pnl2c*!W&-Vn>NUoz*UGslHL)bWC?r2W2bKZ?GV)9Ei!<^I z6r6+26g0v!^HTE5i#0*f1M#g(YEfocYKmJ?ey##Ie62FE*l%iNWNzeWny5>#&rIbo&`bc{YIaUdlYm=G`pf|&5659GizPih`8#}omx z#*al^bqoxQ7M?DSAr-fh{`~)Me>i}}hsRl@$ExPa!^M2^OB!0)(zKX18qK;9tFX`C z*IQy`OkXj>$7qFTPQw5BjtDvY$=skOTBg&-#^|RYCgJ-SsHybFio@=*cCS8M+{Sf< zCr)EFf4^0of>_HYd!~>38}nAjFec>+eT`vFn%l_t(NAZsqtk4&Ghsq#oM`zR{P}$_^>gTe~DWM4fz&5TX literal 0 HcmV?d00001 diff --git a/data/resource/animated_icon/noti_download_05.png b/data/resource/animated_icon/noti_download_05.png new file mode 100755 index 0000000000000000000000000000000000000000..bab9835295085108aa27a054a037e45cd3bf0bb2 GIT binary patch literal 1290 zcmbVMZA=?w9KUWtCNdTo64dFQ-N-T#?v3_nFBE$1wWD(_tTfVWXm;&Ag$vw^ch|Mx zq6}EXjIe$23ucCeWtlNCYT^CmIi+7Uxttf@(B;tF-X?Ld z0kQhL_@+~dNCyaL1_Ummu^~m#G+wt;qXE|z1OK;goXHA6~s zF(Fj2g;rj?*RphuB(vEpk!>V2qlctD9*?cTFbxRNU=FC3m}^kYgGB`ankhrpEm>26 zttck7jOE3Vr<)-tdL*(XteS;Hp_Gw1Q737FA{E7sYXfasG5D_=+oH|*fDXwRG_{P8 zLg$e_SR|v|J>HNFMBZ@ihKvqH>=(3DMuDmo7Q8t6LP)a2QGBpT2r}+Q+9?E`H0^ga zh5~Lr$nzdg$Q^PQHMZjhU4l~(Tuc)~BWBR)3GtMNZ}bN!8p-+TA~&p>mZ+v+(XNc_ z7P$0dxm>`2qNN#eP3tdKKu51;X=bmcgFq(>4tL3_q-D*Q?Bm&tR)B_l8cHEUQ@}=k zIe8oVE(W>HGXl-CtR1&opje&~0#1fvDSt@73tZ{{WjR_UX~ zR`Wm=b&P>pTSW0->r3w%6xFS(x2x6X7tajZO0HO`$`T$--fe`V-gX}WI5r_AKt z*TBv8$SXA;c2Aht>Phgxzc*hoTj^VuKRNWw>H3LMM-)`oMD8O}X6@R{kr!Hi{e9tj z*<$(Yhu`0GfqM&7kABv=WA)Zq^`mY_QmOp2yCiw(Y_zU@ZvKxm)Rk2Vv;>F$`qsCP zNlbqJweQRQW0@zf-6)@(n7_I*C0{u2SQWvmGY8&&eoPr!`|i|o+tAVXYU`DiJ-%j* z%GUZSPL4kC^(RM&SHu}U>e9ZyYsTQN@6X>^dRRGb8SdkcCdMAE9*%7a}|U&ixY1QHrh3w*NHz+fyg(zf(9E6+ZT#8vY0CXS($O literal 0 HcmV?d00001 diff --git a/data/resource/animated_icon/noti_download_complete.png b/data/resource/animated_icon/noti_download_complete.png new file mode 100755 index 0000000000000000000000000000000000000000..9e35143c54316ea6bd0c467172238a674094f17f GIT binary patch literal 1292 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 EKdk-S%>V!Z literal 0 HcmV?d00001 diff --git a/data/resource/animated_icon/noti_install_02.png b/data/resource/animated_icon/noti_install_02.png new file mode 100755 index 0000000000000000000000000000000000000000..481ff3f1490a5be0bf5a897ab9b88ef22ea76cc5 GIT binary patch literal 11299 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 PAqW)(P5Ep&vkU(P(wrhI literal 0 HcmV?d00001 diff --git a/data/resource/animated_icon/noti_install_05.png b/data/resource/animated_icon/noti_install_05.png new file mode 100755 index 0000000000000000000000000000000000000000..a33c76ccc6249913ba5bcfe0eb593a9cd5c29d0c GIT binary patch literal 11299 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 E0w>k{lmGw# literal 0 HcmV?d00001 diff --git a/data/resource/animated_icon/noti_upload_01.png b/data/resource/animated_icon/noti_upload_01.png new file mode 100755 index 0000000000000000000000000000000000000000..6445da82c219e9982d45af416393ecc7eb6aaf10 GIT binary patch literal 1265 zcmeAS@N?(olHy`uVBq!ia0vp^dLYcf1|-9GYMTQo$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%xRe+5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md0Z)!fC^ z$impr#KqOb(9p@$*v;9((bdt>($dYs%>rfyHocAp299PXj*jL=hCrRJCQh!-=1wk# zP9_GXCKjd!CNRC8dBr7(dC93TdozLdLiJkW)obNkl$uzQUlfv`p94z)0U7xv`NbLe z1q#l=W(peNnRzMs<;9wy=z;jwCABECEH%ZgC_h&L9KKeWSnRhnH!yZ~vamF8F*gGF z+tJ9v&DF)w!pYIa*u})$NC~Ppg`6vgL+4hIBZEb$FYE?`UlV9&BWus34)!oqX~`P^s?FZc$(OQ! zy3&I^UTn?%74N;S^1g^HWeEISS;KH^$&qafr1O9BoO=L4`x)xopMITex!UC#^H<>m z@>dRePU*UL$?C@}bL|&R>sIV^dBOUksq(JT(ju1LjkU-0D9{isJvMO%%UKR-kEjH_E TN28y-1r19KTuXMx@L-Cf%y#dbKdSW8uq9?#wL z_W%9<@ArJNYe$V|s|P`lns}#}f-~;E8}5SN-c#EHaN6QT`<%2f;N&C=AcA7_12nEl zgCGSYWqkB3XhV>y0X5U-^d)xjvZ3LUD}(1X6QU8Mtvzo_@-T4FelV!&A?)hMXE0P% zLRc@8AQNT;45^(33#1EO8M!bla|+h}2-=qCA%O-Q3C(LGy3OZ9*fK8<*X}Waq01u9 za0pv5sxOg5BZdV~25^Q|;yBLbplKhJ@Y&8OT|x{Ol4 zG3JCYXz7Xznwdzf66~62f6@=FC-IfZIB8`ZKJf;ENiHji&-r$O=@T3q8h*3J&O8Ld8pQ6G{Yb+8J zqJqG2v0yA%;aCgHMTBT9#?S$pg2<>p%(67c(M*KmM1L^MR9dTgFni z#qtpgNRDA;3}d8H0m&i5G3+73L?dYy-PWt>ijlJ)a?`Wotq3gjDWJqGLqnJ2%d2bX zXJ}})K#P>Xvaa7jkz@r@jQDAiCBrchD`S=a6EgxDL%7B9pJJ&T!3uPjtECS&tIY#+ z*fADtjW6m0mk?y#_P8iy@?Zb@+HTLjj(a+KCht6(?3_G&CA0UH%Z+^ez)z3Gk- z_k)=mb>;+KD%Gi@>n|XMkzEV#H};IyS5NJqo|u)>n*zH(^^Q*^uXQuC)3^MOpG()` zpR`;!bN<8OY~XP3SM@WS4=t>pW1CM@T{->Z@!$*YIJs2nxjKFRjm5_1z`NHIGrvrJ zfAI7rrKKU-{=*0P>V~EHxVLNeNcBzo;(M3x*l_Sv$Is2h1IPoO6X&+n%@>wxA8a`E z=SzR6O*?Nse8h9_B4fNrWbb=(K6|t@#a+)n^U=xfxy4&=E$o>)DqY+3+sNmyE|#Ek eHS>=>y$;EK+3{rYxwanncNC9yiN){}`~Cr!IJhhT literal 0 HcmV?d00001 diff --git a/data/resource/animated_icon/noti_upload_03.png b/data/resource/animated_icon/noti_upload_03.png new file mode 100755 index 0000000000000000000000000000000000000000..306a2581f43ab4543e81e997501d307cd7c9844c GIT binary patch literal 1274 zcmeAS@N?(olHy`uVBq!ia0vp^dLYcf1|-9GYMTQo$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%xRe+5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md0Z)!fC^ z$impr#KqOb(9p@$*v;9((bdt>($dYs%>rfyHocaPhL#paPEO`VhCrRJCKkpnZWd0? z=H@0QuCC^mE-<~GdBr7(dC93TdozLdLiIZ0)obNkl$uzQUlfv`p94z)0U7xv`NbLe z1q#l=W(peNnRzMs<;9wy=z;jwCABECEH%ZgC_h&L9KKeWSnM}7GBP)EG;%R?G&2MF z+rq`b%+bKb*~G}e%)rSF=yr(S6mr5$ALtl;P~t#JEHEKp3Is9XNgv38XP(qNV2&vQ zW{qg!tiucpj9Q*9jv*Dd-pn}5)#M=1VA{oUGQgv2!M&AMQ=T|~QL%N&f4WwI>y&fJ zt4X~EjV-fg@9MK;mOs(AL;m#}{?%-b3$7SOdHFUUjhu5-S|d+ssmtyq@BJ9W=a(N? z$fs<_B(tE|;)Yw)9ky!?VwsmWrF+m|!H8Mi+8Tp@o$<;k`Kz1wTV(m&dZ>sN(x`nUdWxwGX&u+ns{ z?#(+QVkWM6n-VtFpvrLhQSO4}dVY&SqD0R&um8JD^?5`885J-60=pkC6k@d06C_p! zMo+5Pa=-Y}Rkv9`(w(NN%v%{hakkFnOHV{3Kc14Qe7;2Qo#2Phbt^yW8LW%=!(k(} k_337d?#&ghAB7Sa4of;@o%^jj5mXv^y85}Sb4q9e087rfxc~qF literal 0 HcmV?d00001 diff --git a/data/resource/animated_icon/noti_upload_04.png b/data/resource/animated_icon/noti_upload_04.png new file mode 100755 index 0000000000000000000000000000000000000000..50c0e9d60bee55f5fc9aef9a97ff97a42ba73065 GIT binary patch literal 1273 zcmbVLZD<>19KV`rrCPTs&f0ys-5Bd;a&Jj4xwEmooZlDu}6DgAwHp@V)$k5s^gVHLi6A{reuoDp-ii)UM#pl|l`l0ND$8-0* z-2eCc{okHb*|r0$JBG6(o0+MVr$b>*L#4z!2FqMdk zNm1naR5TT>aBPO$NMHVn3$9Zu_0nLdtNQ79LqvI(+tYek`lQRlALwU{dpJu5Xp$_zx8?BEv8B~Lp3AK+nNuLZJE!uj7|KIKX&fxT|#>F+arHJ3dBFQ zAN%#?aeDaVtCLsXj{3GL2bSi9@BLS#y8Y~nlP&fB8_WJ%@zMjA_Xy!wxyE&8s?V@f zzt@?=($0IwPrf#MNp626a_A%f;Mwd?i+#`Vv!Tv~XSb6d z>@UpToGCuN^W!(~_&yz5yzM)B;iWIDe*5g*l`9>M-<=;lw=}iz(88#HM^DKcXXk3? zpKP17Q#TJr1D(Uw1Eq&AT?|ieJ$~cDE6-t7>|+fx*ZDM{_^QRx2&w3=zG7qwSGra)#8zNUhq_mhFkYM Yi23`P`(EEOjgp38>0}$Y8b3Pn5C7(^-T(jq literal 0 HcmV?d00001 diff --git a/data/resource/animated_icon/noti_upload_05.png b/data/resource/animated_icon/noti_upload_05.png new file mode 100755 index 0000000000000000000000000000000000000000..fb49ad89a17e3da11500e467ad8ffd8fcd790a39 GIT binary patch literal 1265 zcmbVMTWs4@7VOQ;6fvj}V?(HG1)2t`P#=&A0|9T_fCrA#rtnbh0qfZ3 z_J7}h_mO1c(YBVZ76d`sV*O$Y&bas9*$ls#^A82#)agh=&Y(H$6cq~~f@)>~8q<{# zkOGQ2@ziC|iy)1|T6)MCia*BZOdVG|8Qj$i5RD+ceQrU?jRFVFf)ULKW4~8F#ZXNR zV;Lq+#tTu9*ZNBq7%U~yxzcDZq+)%KpuH{+33T8nsH=||Ht&Y98ZQsm-Z6opH4$et zjIA3r6i=d2(*h`i`+Yf*qEME_sQ|;W)WaxEQZzxr!TP8G&#*ilL^mD`YO~Z~J|)T< zy5KI1q z$DJ?+EnRm(FT~@U#D={QC>S!rRSE=!lZ38&e$}LHCk6gBV@qi}Jy8He3fShjm4o>h z?yiGj>~62f6NJ|A2Q3XIMHv&#+_(-5Cnkn5c!R5&%9DZ=6eXJTQvp#5P*jBR%TZ2{ z1R)fXIhm_-Y=sTc3`27y7o;hOlmY_HL}WG+h>CuO3P!{_HfGq4V&p(wuLkvQV1u{C z@=*&Yj%lS$bF5wg$-L>9cHS(Y(Lom7m(dK>EZPrv=~?$y1eW$RP-V;1(OP_YZ43Pj zO$TX#7Ab*cJ-<1TWCc=;256EcBQmso9jpGIm=Vwz!Yhvd6ifXGR-m`sEPc4yY#w01 zjEnyb%v{gqZ^mEwsrAAhQMmQ( zVEeVEdtN+q{#3Pl@w2<>6Tf}QRV(vv>^^c;@}HaOn)Gv%H`-T(53`fAKU9%B+)uVk zhcDf1{c&GY8sMWb&^o&zvkjU->zGNGq4m zVrr?e`gvo1&&{vjzv$oHwe(WtV&#_`@1P%zS>d(WE32)GwK3oE_srb&o=WD{HEzvZ zYc3_X_Y6EZ_4dRc_R0sV&G(+T+VR%M+|I1pj=#Jk|JvNZ!49{yGP=Ahce?EH1KZ99 z<}bx&qnb6X9_s8aCa$mUYPj%T;^?vc_7|%oOO=f8&4td_7w-G+i5D7>ZA#x!`>WGC Pyq{1^N{I83C(Hi;A7Qap literal 0 HcmV?d00001 diff --git a/data/resource/animated_icon/noti_upload_complete.png b/data/resource/animated_icon/noti_upload_complete.png new file mode 100755 index 0000000000000000000000000000000000000000..2ee11d875c52228cd597d3c148e3d6e584055b96 GIT binary patch literal 1271 zcmeAS@N?(olHy`uVBq!ia0vp^dLYcf1|-9GYMTQo$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%xRe+5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md0Z)!fC^ z$impr#KqOb(9p@$*v;9((bdt>($dYs%>rfyHoX?k=8mq;7Ut$ghCrRJCXR+KW^Sft zE~c(dt|qQ#1~9#zdBr7(dC93TdozLdLiL*A)obNkl$uzQUlfv`p94z)0U7xv`NbLe z1q#l=W(peNnRzMs<;9wy=z;jwCABECEH%ZgC_h&L9KKeWSnM}7GBP)EG;%R?G&2MF z+rq`b%+bKb*~G}e%)rUbMG2}mg`6w~akN+7M7}Y&p978H@y_s&v-Q*y0JhW+92isx|u0<=iZ7bmT#c{QLZQBCXSy8v7 znigrSXv^SY`pum`VZ$e;uQT62V6S>!X)pKw-O9Y%+r*BiWfJsydJh%`pphjeKgV1>**7{eMt|t|581Ed4b5rA98nuLqEC39C5W- c^i3pzf$Nvg`dkKY8BkH=>FVdQ&MBb@0DiBvhX4Qo literal 0 HcmV?d00001 diff --git a/data/resource/color_classes.edc b/data/resource/color_classes.edc new file mode 100644 index 0000000..ba1a676 --- /dev/null +++ b/data/resource/color_classes.edc @@ -0,0 +1,71 @@ +/* +* Samsung API +* Copyright (c) 2009-2015 Samsung Electronics Co., Ltd. +* +* Licensed under the Apache License, Version 2.0 (the License); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/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. +*/ + +color_classes { + color_class { + name: "AO001"; + color: 30 30 30 255; + } + color_class { + name: "AO002"; + color: 20 107 147 255; + } + color_class { + name: "AO003"; + color: 255 255 255 255; + } + color_class { + name: "AO004"; + color: 255 255 255 255; + } + color_class { + name: "AO004D"; + color: 255 255 255 127; + } + color_class { + name: "AO005"; + color: 11 173 0 255; + } + color_class { + name: "AO006"; + color: 204 0 0 255; + } + color_class { + name: "AO007"; + color: 63 63 63 255; + } + color_class { + name: "ATO001"; + color: 255 255 255 255; + } + color_class { + name: "ATO002"; + color: 255 255 255 255; + } + color_class { + name: "ATO003"; + color: 255 255 255 255; + } + color_class { + name: "ATO004"; + color: 0 0 0 255; + } + color_class { + name: "ATO005"; + color: 76 76 76 255; + } +} diff --git a/data/resource/icons/Account/B03_samsung_account.png b/data/resource/icons/Account/B03_samsung_account.png new file mode 100755 index 0000000000000000000000000000000000000000..59ff0ed07b451aa01f75d03340fa04d575cfb5aa GIT binary patch literal 1532 zcmbVMeNYr-7(cDK$i|ORq@c+4h=hT=z4t!$ZdWcm*gd%90FP6cG-SD5Ukr32+S!lydEe*v zd%m|aJvC|WoUl0(iDa%h8MlhxQ2!Go72juWZL#|Wfyfdv*gU~aaVA_Ci{Ka_M}=X^@S!osdBc zWsqfRElP_kkuG48OF25DG}UG=EwrPQEdDJh&Vz{r4q6}~kE6)RV;+NSiWd{t{%u$W zO{oZl2HCVzS(bDtk>zMet5D1BN&p}PQ2>n=K|m~|QUVpM6mLWhG?*5_R61zpl8M$h zDi5>brWsqJWRMjIf(wITx7)37s}(Gl4+9iM{TwQlT-1>BUZ+5M!z<|@donu@A z!#W{9Bbmz<3kI3!>2wGVm&Njg*vZc%N=zB-Azd&~C}D@gAJ>#NFIee+-FT`tZ}Yln z*h=$kF=rR+krxpFi@AHYA-|&N4VK0+Vo}Hcjv9?x z6GEr~Ks72AuGb>Ks6@0XohHEXG%SJYwI&^^0y?7}079cjal{DJdIFdd)G7i5ux2MO zkWM=tu*-;cXRzRzSS*pFNrB~TEL#-lfb;@ZVEF>p1tn%6P*f)4q*yl}?Jv)Cv^dQ% zB{XH?SO+wfUyON*eIo!y6^h_`1n3Bj7&oB@I7(<$D4|yBfEf2Qmij+AgGFaxe{=k& zSpr*P2l|&!T3-~N3=i!TCx#P81NF8Xl}KjCnsKAeGkEBiv}Bv{wUc8H7S}~y8ce7- zcI2_~PRR3x>3EYjXd*(oF#OH{vGka92ovW1p0n}hd3n~u1xG`KpxKpg$Kh3t!;#5v zyr^l7@?EL)jot1%-pXc9oT?b|s!#0bJifyV2c1?vI5CnExpmE#E9QT(s$*GiPF-Hf zwzgMJE^4fJJiaBGdHGVBtz%a3>4};sZ>6-mW+4)?xO;MM-^t!=X@6IJ*w)5t`F|3R zhL`M)soCt?o)F4s5n-LK(4@Mrdf?$rqo?MdNlBbl@zc_giSxDG(B!KZ(^2mgb@WDT z{SU;UoWX%}Ildi}kM_40yx^}B)ooTgJ$3TY(tk@y}CJt`#km%xLl1mkC`lO8#1!{H`{E)>W5|X z+&B8hg539rEBnqst*bM3pU9@P$`{Xbp> z*~3dydmjAJ;w$>}y`6v!8^RaxWlO%NdZVj8!nUlezq))~QhaIEX)TkvEp&IVd!Y4d z;*syRC%t*MVY2+&@r%Q&M(>w@-3Uu}mA}-r$96*!*}b;muW(=5y${_73Y1O0_|dYm u^)bt?7t*@-8=60BK3x6Dyq1F(gL5Q()E;6T{d21Se{3dF@uq~FP5%J)XGE<4 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Account/B03_tizen_account.png b/data/resource/icons/Account/B03_tizen_account.png new file mode 100755 index 0000000000000000000000000000000000000000..4c0d6f82fbe009bc595822b4240cc50b3013296c GIT binary patch literal 1543 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~%1|*NXY)uAnN?apKg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+AuIMr)7pjltlRYSS9D@>Lr5I=vCwv0Ch7k*w|MTBqnF4mMA2p zrf25aD!t#mUr8Y|#a1cY)Yrhbz&SM|)1#^=HMq(zB)KX(*)m1R-cG@$!U||WZfZ%Q zLPc&)Ua?h$trFN=D(3-T9Ob#X~hD#969RTqa;7NqJ2r55Lx z79|7YBTX5m85nl>EdnV7y2i@CC=(bdi8(I$$)&lec_p4Mwn{)5y_C!pD`OKA6Ehb} zM@LgPGgo6nLrW7QBNq!(GebuMGgBjT6POv;^tzh4I9fUzn;4oqS{NF-npiqJ8#p?d zn!B2rn420HnZxvY<`tJD<|U`X?9Bw)3)O3kSFe?GQEFmIeo;t%ehw@J1Z3ow=Gku_A^g)RODY3wWfGH5fgeQF<2cCIS^ME;~ z2$(f^*~Hc|Fff^Wx;TbZ+}d-^-$Tq%;`qn%&iBf`?0Y zd8#j*Vj^JW8va(mv3@~y3HO!esqGzmA_Sb~uJPH$Iq}BIaPHFIe1FW^63gy|o@ngf zx9jtnJ=VW%jHQnj&iQ?Rty1#-Sc~4nD-LPxdmvjkt;eif=t86Cnj`s^U%^Xtb%re{uKj_BBaO-w|7P743CV740vG}^pvr{J7+Naj$e`GMeaiIFoG544t!&&?KH~RlouKkzO8@R6U zzwUL#^vbkC=H3@BjF)#bt=`eA_vS#{9mmP(Gx={#ep90N?NR5ozmoeN^V==pb-j}9 zZ76K(RXOeIGxtp~uFsRK^xlD+>8`~A0-4_@!+-t)_) zVqufbx?4Njgm=uDWD;98_X_K#*Sb*!vGx60X#!ub#f5*#nYT61(2tetHSek`@2Av# zf4IgjJo#$p%uk^;im6TVt2&p&YrB=amCh11cy!SP{fstXhO!|UJOKabPie^t& KKbLh*2~7Z}7ff6L literal 0 HcmV?d00001 diff --git a/data/resource/icons/Alarm/B03_Alarm.png b/data/resource/icons/Alarm/B03_Alarm.png index cbe66f97a04a3aa052d1d93eef69c710844caee4..714718becc2699b806c7fbd1c08d48bf04465c2d 100755 GIT binary patch literal 1505 zcmb7EdrTX396wwHT*SDItT23>2Xl}~@2>3~?Xi}X-c{;WS_&(eXy9mnv?sJz@2<3i zupk==xL^h`WGvv8!RE3oPMJo98JK|qZcfJ|qKSx)5ZN>gAITK6c*g+wV1Ln3AQ}iC4ZBZCq7nw56w4vl!?TYNQHcb6k!DbnZ0~DfNcTR z2V8*l9(;8S?17+77rCMmsl>jY^6&vQtJtWcfsl-bpglR!5bLP~5?l^^T+oOt^ba5~ z=QSe5gdMYoEWpp@)d--lCcns2Q|U2yksK4eCrZf#0U)t(G*A^3si+ZI=B4DZvWz0| zvWZk_MD9CPVt2w8UH~wm)@FJz9EV9#jq3=K#GivT7_LDv`6e@Q9Yv6oCJSD<5Lr#| zR!}b5x}qh|jEG;7LKKQdA`x{&tL6nCiW>|Dg+rsslr1vFgF%UnW(LL7RR$V}9)Sx< z93O-gMz)*}OGZTY^nM6|kc;#AC2@^BD6S++P8%9!LnyAsP+{3diEkBUw{MIH1lFuY z$p!v%{(<~r(ZLWvT|nf+f=8}mMd~`KjfE7$l^7^HD^voxidMEt1j`$CJLQm_=Ynh% z&3nQD5R`1R5ebJmFJ&ck1VQV}X55M~a%~JcoS^lFtXy2LV`!RQC0GxXwbWi2Yt~{o zkxOHw7PsIyqthEOjg{0hhFk+dXtZlsTTqnPpa&?T3YJ^LTC5vlDT@GDi5H4^zG}6b zoPJ*7ML!>cErleUUd#o(d_>GpN-cBCq0&I$s)5%k@Bw%^>lF6@eOila%(*%SCrB-$ z!*M;H#V}SvW3Xgp=`mc7tYE$WJ7K8o395A2x~^MYl3Q6BuAL!yvUUnVP%fGvpRsmR z(_ILP8MV>oqUbl5+q3s=GAA~^+}(CWhipxAH#BYebvU;$-2|J)r_+0SdkdV|yZhr! z)bDZcH*F^~hD?5TTXPp0Uy`)*tn<~?FO zdZ=J_YI4z4H%eafA!YT9v;67zJY(1LTy@QVC*bIfp*R;D^N+f?r+4nqEl2CjhaJ(q zC+Zp>Ah{6i6Gv5;qi)Oi_pK`X53`9wKi4sc8>*ZwXe&K?FKK?5+1AS5d3MX! zXHFPxZ=tu39hm5I+`6(IODk=)ebJk?5R-B$|AXYW_b#DX(Ot)#9sAw$Y01SMf4Ikb z9ANx(Mq6Yw?triO3Y+uNVb~8Xz228y@YO4AQ`6BG6S}oiyE<={oX7OBEoD2Nn4auB z*Is#Se&l1UyK|?iAX7CEr%|`e4Ss@Ed%s<*9(h5P-g|O*Q~d4Yq0^t*&Zk^HbUoh@ zKJ!?8iv94uFVP91ufI0s6^P3A)#ik03*r^~aoh{WA|IK^4=B U*5uljc;%;SWAf>Da?2Y21$5jM!2kdN literal 3445 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 diff --git a/data/resource/icons/App tray/B03_always_dim.PNG b/data/resource/icons/App tray/B03_always_dim.PNG deleted file mode 100755 index 1d876a761a9e939b01cf9555d90044a19d663516..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5364 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 diff --git a/data/resource/icons/App tray/B03_always_press.PNG b/data/resource/icons/App tray/B03_always_press.PNG deleted file mode 100755 index d2cead2fb6492b04fcf8b0e4c264efc0c6a0a606..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5484 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 JPDHLkV1fa*6wUwu diff --git a/data/resource/icons/App tray/B03_app_tray_press.PNG b/data/resource/icons/App tray/B03_app_tray_press.PNG deleted file mode 100755 index a7eb18ce4e5335f26b7633c672cbbe940665e4d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5060 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 literal 0 HcmV?d00001 diff --git a/data/resource/icons/B03_notification_press.png b/data/resource/icons/B03_notification_press.png new file mode 100644 index 0000000000000000000000000000000000000000..2900e8941b1d6e298d4f593736725e8230d3bfb3 GIT binary patch literal 3646 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 literal 0 HcmV?d00001 diff --git a/data/resource/icons/B03_search.png b/data/resource/icons/B03_search.png new file mode 100644 index 0000000000000000000000000000000000000000..e08a0f1a80e4f139ce30c46ac685da03417425a0 GIT binary patch literal 3636 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 pHiK7aR;&Y5LJ}e|&?&W#; z|9-#!+jDdAfxc~Z&2<=tZHq>@1o}Q=JvG(nUHavqXiZE$Z6?(rGcV{6>y^|D#G^T3 z7$%?~O^$y9J29;Ctei@l>DW`OsOFr4W#cU5G=#>m&hCOHh@;TNGjLc|0>rK5PYGO> z0>o}QM#Z!c%*v4|9VVv+QsUI8=$DA@F1)kAB7z(=1-y_OQw+8cAl7(UG`5yW0$(#R zM+3wir_!-F9#VCP(@uAXNCAK|j1zchh5_xkivli^LO0U^JS@$yE-$`*5lBs!hS&rb zUe`ji0FgCKjU~x^KJU!CovJ=e0>9sHakyL^$fCoTR7|1Jp%^>M3>-8>UDixlRd9<@ z$fy%$fIyz!2_dH?+F)da_X3$bz7ez)6w%nvE4-85N6djmYITtPL{(?>c`^ zej_!hK{5dibwU?W6^C|ilG<9xGF*>=jS2cFL{$t6V+LH?h{f2ak@K=5jB%f2P?&NtZV(25 z_xOV}#|J&`Fcac@E;nDsMis*p6cJjY7FNEC1zTd-kPZb?)l;fER_>;FRy9>4t7>>C z$>6(o%ZjAtjW(;)h#Q5tA97zwjYi!%+|KO|L+1eJez*y%_XX0ymj%u zmuHT@(_+`2`Mj!hrP%&sb!qSQJu{adY{H*AAbnPc51lGinEgG6PKQ1mWE}3~h^@vQ z{G)b<Jyq)8cN-ROD$ODh34yDEcCQvAHB5n)7!pZ+@eZdA<19ug)2)5_|OV+o9mpbc6LDjPe8Anc(1o{{S#5 B&WQj3 literal 3423 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 BR?z?e diff --git a/data/resource/icons/Background playing/B03_Backgroundplaying_Voicerecorder.png b/data/resource/icons/Background playing/B03_Backgroundplaying_Voicerecorder.png new file mode 100644 index 0000000000000000000000000000000000000000..f1e4e76e361794960d38a100b6f74ee03d887bc1 GIT binary patch literal 1448 zcmb7EeM}Q)96n-kQ_~oUsHn@1x(}FZ@2jh9;U+4?eR|l+&W>X%V8zW?b5Rhm%7OLSyB4*Rf@DlP^Sw=MQ zjEPij(>!si#8U)2c>%yiok1HwF$^}DbQo?lnXuPkJ&NfORK87G3@3~xLT`p=FO94w zFqMRtbj@nXGn*zTNnrv(qS2@>YS8gQ6@po!d|v2D2a3AoH&~-Ic-Rc4kMTjMT8j}CB7ue<5?IH3e8!I zk{3L6{+axuuPzJ_FA({N5Rj`_xnZ8v!a|DSYz%~l7OH_rinyYhHx2iqmjhzcFcuRa&4?QW+W|Evjel>6iJdvg84vMOUKAqy~$v4 zQk30fz+4zc;SQ$(CsC)KW_BjAZcdbFE&vo!1A(A-hOV)u;qGFAG5yWvkV)ZcCz_I z^GE1E@m+VidnY$0dh&M^ ztlyJ<=i`4uFjq6A76A~N$Jr8{Ljb_lfg0M7W8@fs>V}4-ixXJ z+Qy!1zhcfi_WL(~pli~;=udfZTYU8UiH8RVM-K1JEM9%IU}EU+kvHB=fd&(eD@Gfq Q)+zr^H&sZsIm-9^2c-xM0ssI2 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Background playing/B03_Backgroundplaying_music_paused.png b/data/resource/icons/Background playing/B03_Backgroundplaying_music_paused.png new file mode 100644 index 0000000000000000000000000000000000000000..5359a8c00da900f887632c250edef7af190ab340 GIT binary patch literal 1147 zcmb7EO=#0l9FJ~@Oolo|=0FJ<>IB>5rTJ(=>uj6W70eu6Va3Z#leac*$&1OWZFksk zC^%3A4?Bq$FM_DM4h20ZxRZJlFM9Q&cvWG(bZxi87#Q;PUjDz|@Bf+QiSdj5eM5Z| zMfK;$v;uh^53l|E$o=j2+h(}H*%F>aGq`T}kV;vo4C%aMRA2!bR`dEgOi)zM3%gjt zCH<0WA}4BuHqnOT5i~_5MjM`C&O%I=Va0Zn%+Hsv8QQjz%#^5ex|e}fdu-l^lk?+6 zbAHxTEN1jPooJ|pz=7DH8_t{?sEs7k;#J9exXm(j%LLCRnN6ok`UIUpKBUEHEMjs1 z(2^7df+$Jg9L;lpXE}085g@3dr1CP|J{Y3rTQh1w%eA%0D#=ta_EeUw*Xz-GEQXJD9t)xz>$hye_&O+E-yPvNUF!fB;Fj|{@(0DH2iXD)P|Y_<6=#OGN$oBa8n$Cl zb;F;9q>4FXE`Y5Mx~^U(&fBgrry;ZEKo{q=BvY%|mYNd8MM(=CY~Bs9;hHcM4YBqX zR@fD*W_)O1vYpZ6=4)qkw<4HC3+z0(_q^FJbM zE312fJTTp>KRUP^5r)n@Ub%aPzqbD5ROZuz=?j1NEN=|zC)XC5OCJV~CH${9ONZ{i g`doeZv6t!{q(&A?Pgg77BH`~KpB>kpr>`#k15JQzX#fBK literal 0 HcmV?d00001 diff --git a/data/resource/icons/Background playing/B03_Backgroundplaying_music_playing.png b/data/resource/icons/Background playing/B03_Backgroundplaying_music_playing.png new file mode 100644 index 0000000000000000000000000000000000000000..ed072ce2e324b43c27b2958a03deda89d4018385 GIT binary patch literal 1267 zcmb7EO=uid9G|dl+J+X^23sn$J|@H{WOn9l=3{5bn(XfEwu^2Io7HYZ#Y|>ic86r< zO=sSACsD9b#I$&kLiHe8srFW-7*7f+^pURTx)_EzQaq!V>GMQ%9qgp{<-a~KqXo%V$rzp@O~Xe_#=?^b6dj|6 z%E+*0FZ_fC87B6vU8$04=~d0dPQr+65~1T!G{X!Ig`QzfBLXH-&34o5-#^@8fo-MP zvrH~Y;L4t&P|)D#SXm;21AV!IEWY^bY|Q@3)5_iSEKLIHqU~V37Jl_ zTTWF=qacTU1f;|OX9^GkSx!Jvl4aNrk^)Tf0zG98ikc*ANd;^lELHQZDXpv*wzcRg z&DII=G@frZn~CN?0{b-{s;U}sB$FJq;DT9~7$N5dJ#7XZ1*UI%#Kta&7>!BXAZeC* zx)p-smF-%c1Uuwzu$?TLHa;{w9wr3dZ`nlgwNa(g-U!Fpu?|QXJ#qf2{6S^bLwp$p zxZ#_$ic>wir1lny47X#@N`^m;XcY^_On_P+N+sb&h5GdeaK4suCRPqU4NZD|Eb zlq6luWMDza)7q#al=PIUWMN9o>$=`1*bSsw2`j=Tm4cj?6sTlW2=iiA77H0kNQt>Z zHYdt*8(VY(Vz?%XL?f*I1S{`})p9;E2=*%&&$PQ~w2lc5>evIhF&Vsg)^;u23|@*# zO}S~PI`Zv{$SU~Q0j;cS_EYq;$pKj@Kt+`WDKA2pN-C)gl(VV4ASfAy`o4v={&&K7 z>Iolp*{-f@Z_!qcUUz1QE_S96xwL3Lov~9r7}EKCRMaz-@X_SP=H^iBR!4X2B$IgM zq3s+x9=~&7?G*U)#ue^*Dzmh)`ONPp;`d^(=U78Gv)At4y#VB|zV8M99ABt0w-0jM z{Csoxv;E8ci;Md@A9UR2ZgCy+?+*WXc%j#}4;_A|b1ey`ZhYMU+!DW<%{dF z^#fhseQ`4W{LR;YYtZeFIq<^0t4I5K7q4`WJ|55hyt;p-PhMQiBBk`QeRc7v8?~>4!&`*8d3O6S1|oR#(3KXz6BgUwnf3q^$S;=TU>Cz71D literal 0 HcmV?d00001 diff --git a/data/resource/icons/Background playing/B03_Backgroundplaying_voicerecorder_Recording.png b/data/resource/icons/Background playing/B03_Backgroundplaying_voicerecorder_Recording.png deleted file mode 100755 index 5f3685310a3a7cc6164ea8ff4ce752ceaef745af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3429 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 Hu0mjf#glG* diff --git a/data/resource/icons/Background playing/B03_Backgroundplaying_voicerecorder_paused.png b/data/resource/icons/Background playing/B03_Backgroundplaying_voicerecorder_paused.png deleted file mode 100755 index b373ad0b8fe663f68f8ef6e0b0e79a2c95523116..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3439 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 P`rq0trT9mt-A(@iMNb*m literal 0 HcmV?d00001 diff --git a/data/resource/icons/Background playing/B03_Backgroundplaying_voicerecorder_player_play.png b/data/resource/icons/Background playing/B03_Backgroundplaying_voicerecorder_player_play.png new file mode 100644 index 0000000000000000000000000000000000000000..fd1068879c18f8faa56a4fbeb52f4d145fcca450 GIT binary patch literal 1535 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 RY{dWo002ovPDHLkV1nh{EF1s; diff --git a/data/resource/icons/Bluetooth, NFC, GPS/B03-4_BT_activated_on.png b/data/resource/icons/Bluetooth, NFC, GPS/B03-4_BT_activated_on.png old mode 100755 new mode 100644 index 7dca8e4ef699826ce7c0f17ca51448f8ea982ee5..e9f2fba14cd6801156e3d2c356160dc0e83cf313 GIT binary patch literal 1751 zcmb7Fdr;GM9IsP3KoAjpz%h;S@C7tUU$l|xwM`>ciwH#!*)+6)c95o~VJ$s4Zfp$D zG5^@+WQc&=5a$C?d<~f*0uz}h$8qPO6TA~e5s|4d1a&C_`iJM;a!G!Vd_SMh_w~Ev zM@FpkboY1X@pzt^a4d=&S2-V77w+BIaCI9u__69ZHkwXiZ3IK|6b3qx1T++pOh%D} zA${jnGK|NYUS-n7v2ogssGg?ygwuv^rz{+r#|v9)w-EXik_8gUWRqDA4%A)*0h2)v z#)`GD)}kVfrf>&CMmr*OdPj<0W&qc&0mAGkM?jG*0obWjvlX?=!Es)cn>)855EwUM zQ{>=Vr{c7cfQn{FK+G40=wSo_BoaO%5=$gVFd%>t0R(fmBm@zmVhJh;1tu<#Q)3KC zXcUG|XmKk!Xk=Ln3PCoTjc*h3X(ky$WHOnPLm&v@EJCd5W|pvrn5|1E88FhSXG|8> zM4JI8Bauj_v2u{}^lb=~CCZd+WUW)=X6r<VX=x?{ii<^JF(y(d5FA!>wULPsF(#FTDiNtjjbYd%!TUf?i*Mkt zVq7H>$fRn4Sf)l0wNR;0h;V@r$7Kq!P$-p6Vl`$fOPKYfQ`Ctyy~AQ3#iA;PBv_i! z(RAu$H$@t0mbMyc3!sXY04rimW&>@ru5^}~-nBnm(W}goQGt z7?&wA3{eXZL@I`rDyc$>U?Q;~6j6c`Si}EL7{qx3IlJt=uAAKATG=_BIz!xI>J*Y@ zu4oK*#ts+7>v+6R{?K3woxSsM;im8yg>Pnn$D?SqG0MGf+{J2Rke z@aSL&yD+KL>$kai9e#56=I#xppEXOp)HnNmHT3$#-pH&@>&>LW)j?yAu8cbDrLWJF z+*ov|A+Wr!(R!q?vEMECazMt38mPf*v0q0(F15;#+m1+HJ^CPulkIN@}*=Yyz&p4Liofo`IDhH&w-o_I(i@%l4qkQ(B zIq2si`26dKeI+@2lX?QdX9cuaO`GVfu?7TAlP~jTgdF2L)=W<}NeY@L&9V?ah zf@|{6rTe7B|LgFMKRIppb~>->x^8!47I39&8(yo%gSrEPaRcizJ5JEqv$`A&iVfDY z!Z0SF{9>!L>g0EA*VZ)k8vi^>3-wS-MKDG5#18N5dVt2mr(%zncNOH7K8zu5f6+t6dXBeaWZ$42=9u zaJ}yGrpy^Hi64wvUd!*2@!wxNn-iXSZ{as}8uk6T2Uc9GcIy@VJm>I*m2JaMRQJQf zwnUWv)Y`jFI&)8ZMv-k+d`ABB;x>)7i1EiW-}H=hWOa>IDYIt5yz*0fV&eU`?{@xb MH0lWKxN=AKf9f%wTL1t6 literal 3393 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 diff --git a/data/resource/icons/Bluetooth, NFC, GPS/B03_BT_On&Connected.png b/data/resource/icons/Bluetooth, NFC, GPS/B03_BT_On&Connected.png index c5265351c755ddc217840cdd4c0f39dde84bf9e1..e74982d9a5a50b6c554e8054f8f9fc6b9e9f5aa7 100755 GIT binary patch literal 1422 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 D_Eknk diff --git a/data/resource/icons/Bluetooth, NFC, GPS/B03_BT_activated.png b/data/resource/icons/Bluetooth, NFC, GPS/B03_BT_activated.png new file mode 100755 index 0000000000000000000000000000000000000000..1b3270e8df3c085858ac3c4fee1bd83a81db4d94 GIT binary patch literal 1514 zcmb7EeNYr-99}>|P*hMRjmBA5Nrdip_ipdtR!%x@@8ZKFJa3Q+jOF(AZiCysb{FnW zrX|;5s*I|XWH41_v80G z&+qHq#)AB(V`CnRK@cQ1C!2A??<)0K_y~NTo!H}6CyK2|*(&Z(0;~iO3n!KVG{?t! zfD^D>=%qf8fgll`ysJnla%`sEqEE}JHrk-i577vcks0)}?sA}@Wx&G=X6%nsUt=iG znXzpK2jTErftSzTDS@p!^Ih(pQL1BX$L0&t{zyR4T@qUFD z1yp5Z%fw2>j6qNDh2Zl$d5>3-=g0+lCRs3Tc#!quq?W*?X&W`ZS(L-^aD>k{XDusE zaNqd{^2@G}AK*?Pi zM(M~j2q$fnNoTZJEpUw@>~<#0IE&2@WQ7&nKowQ7{CzC>P%Leg0IP_SOB5?+yQ#n{ zDx&Na{it=T5l!C43!E5`H>jnC+%QxINPHFG?2_n1r?XD;56~xcdIGv>v6#p-8wKOG zrIU=wX3&{zdLoUauo*1(zY~T-PjI!%=5^id5^QC4ICqBNWbPCK0TxYyXDk$#{}FljT&u6s-T zB7PYY?WjA_+ttTQP3$Dqn|V7)-Y8dJYpK4ge?RfH)~=GsP;q8>%E*eT8aom3&PaUU zfkzkDtv+%p3A-Mv)R3cc9v96$Wj+}BqtGx?XY(&Qe}?i_rTnmj_H~59Q_RlUt8JPNJ zaOKH;M~BykUXJ=WcxU1H9(_Yi`CV=8rE{f4!wCz<&?UEeQm-JM(t`L)$@{{~i%bMa6KB+x)NfCes z5_|^;0Y29K@))Q@5dCqXHLQk%4NO!@Sa{9Gl1U^X8bKB~oQDHJ}Y@U~aV{IA7 z(0LQJ(~aGCDjaM^y^;)2yTxXX5+sQ_92SzYI~-&MY9&Z3PQcq?CMm}5V60Ab;liMr z9BXGnoPR+J&fHjBRg(;kr_*Um+GdgD4xFTETH~-<&CtTEbc-sVF^h_6k%0qBR2Gt| zAc?5P$Va4<>c*g__d`e|LqbPfRhGy_Wg%HGZFq)H;-rPZ<#`(|zC~0pxH2M*xe!>T9LsO)kbJ5Nk(na|=j$0&H4uo2k7{t#4=tP@Tw%YN>bNiH#Ns4 zRZ`+o67{w?(6Tl`j7e#wTq`x?hM{sm7G41{zbqxt`K&X-1M~^2ji3lW%hIINN5Qy# zE|Q~tb}Q|(5l)iA7O=7ZoiH4Ff@@v2tm_t+U@L3Gr85L4OQ#TsuxK(oW1|%(e?t)6 zs{xK}&HNgfotvxHAJZB4TshyHF&R4hhYKzl*Aa6&@@DdKeYq>9U)C9B*5rGj%? zO@}?R8;(v>hN~AxcNJ#;H0?RJYwx3f871^}{ZF&{?3uoB-k8U52N}FukhNv^z4x)_ z+B>-ex+!nn>K8nb3p>a0zRAY}?>;+Ga`64r<2%-bw)b9kp!e=-_!iF(KYRaLL#l?m=%J>6<|Zh7R;kel_%u zf__;u{s&vu*neU(Rp+_5+0e$mRa9)yO?_AQIlg#U>)MYp;A`Z*sCjYczin*pVE_OC literal 0 HcmV?d00001 diff --git a/data/resource/icons/Bluetooth, NFC, GPS/B03_BT_tethering-network.png b/data/resource/icons/Bluetooth, NFC, GPS/B03_BT_tethering-network.png new file mode 100755 index 0000000000000000000000000000000000000000..b0531d001a9c75bee1c31976793905db99dcbc96 GIT binary patch literal 1472 zcmb7EeNYr-9A0rsC8e<;MH5*UFf{IV_t?FUg@ZY6_uxj4kAnds!zj*X(#xuQJeZTEKtf>iGwU|F`t9&9=4Ek za;&?;cb^Q(>7{+vnYpSVT8vsXDusE z?veA4<(D%nyd3J}WU*9ofhrb+&y!kMNHv^^fpV}?F$bz>V@qUidc)zMQi1clz?RUW ztJK2@ik&tirKP-^vXKNy(uBo=+b{;y#zf#GZ8RAYaU;RdG(Af&9|*LxZh$pd2}X}G zG-;v%k|B(wjWGc_!jPzAj9APp)-K2jE4VmSRK@a-u+{~!lvUzbMU*l{v1GQJ(uzby zl#4_!Y|YTaQQ5rU7R%*LYN-J?2$kj}zKnC*B+&y;XPx37qYuI~+7b<MNU%wXOBJ7FmB1Xa6iUf0bofmT+Bb7u%l=1w6efTBs@jER-wbr7`Z zxSh6S`hRNw{@X19mf&-Dme(S9OU;=fQ+3LfV^rDF(XglsL1lqd@Pnr+_6r-7nxh9U zZ~w(yU2n;PL#vtsCfOrj?0jwbJM7kI*XW+7J5R;ld&dxaYSG0{E4xCwHSr01i=#_p z>lh_>HCtlxz1xl(qh7rTCW*M{bya{+;acN>0RXBhlyw-2p3@#ZJ{vIo-p zhninZNx~_K@1B3-(%mI%de@HMYoM8+W$1%kb5{I~-P`)sX}guc_KNdwpbY`k2pXe~#(@ zwX43yDs8`Z7!SVlQOC(^*&(<3Z%(Xi2;yFP>*cY@-HPpi+$j^> literal 0 HcmV?d00001 diff --git a/data/resource/icons/Bluetooth, NFC, GPS/B03_BT_tethering_network.png b/data/resource/icons/Bluetooth, NFC, GPS/B03_BT_tethering_network.png new file mode 100755 index 0000000000000000000000000000000000000000..a900d1074289388ad042c17fcd7d7ecd3852c0f7 GIT binary patch literal 1398 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~%1|*NXY)uAnN?apKg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+AuIMr)7pjltlRYSS9D@>Lr5I=vCwv0Ch7k*w|MTBqnF4mMA2p zrf25aD!t#mUr8Y|#a1cY)Yrhbz&SM|)1#^=HMq(zB)KX(*)m1R-cG@$!U||WZfZ%Q zLPc&)Ua?h$trFN=D(3-T9Ob#X~hD#969RTqa;7NqJ2r55Lx z79|7YBTX5m85nl>EdnV7y2i@CC=(bdi8(I$$)&lec_p4Mwn{)5y_C!pD>FwU6H5~# zb60ayOIH&^Lkm+UV>cIPS0`snM;A9o1DF}u^jcaNnHxGgx&U>W8ydQrSUQ=zSU5Ub zn7bO9x>^{!!Ss6O6_+IDC8xsd%>>#D)$5E`ua$FAYGO%#QAmD%4lD%(WaO9R7iZ)b zC^!e3DQJXe=B4D97i)r|2jW|o)S}F?)D*X({9FZa_*!LRv7fNNA$n8D2{V15WAs6Z z11YhHWXRY1%aDOslrrt>Gs{KF!tOD;GG(*R?{Sc~XnE zW-e_F*jAy>#^sYNp+Fk79?f1ep^}n@NN5T>R9VO2uUs36?e6q2B z--6xV^N&op@65CNrS!KQ{#ioDT=(pFE5h|-mHnig``>oAu3fdMdrfZkv?no{M`z7A zy5{`pC24^_jjylRf4g9&_{uf%hm_g2WZyGr+;eZ|%|raRuDt&A?W+3suNS3`8r$jQ zzWU)eX}#+F`#RTh4{gi&ocoev*KR!>?m1V^O?|@p%A##{>w9-L%QK7Kn9jWOZk=Y$ gX?gbZPyHJh8Mwuh)`S}W2?3Rap00i_>zopr09$GJ@c;k- literal 0 HcmV?d00001 diff --git a/data/resource/icons/Bluetooth, NFC, GPS/B03_GPS_On.png b/data/resource/icons/Bluetooth, NFC, GPS/B03_GPS_On.png index 399ce4e138253eec8f9a7e9e88eb703b765991a8..45f70778bd2664d667d457d66ea2f8df13915c8a 100755 GIT binary patch literal 1400 zcmb7EZD<>19KZB^t95bRsET8^Ys>1ixjcEfT+XJ=%U#w$)73P#5rulWd(z(8+@*Kd zB`t32YK3-CEXXzyaZW4L;S0qN0|!>O3{f0XaIpG8MnqYsIQ*bS%vPW4nyw#4!Q8{R$HQOKGj$v3$sGW_V=VQiIRe|o=l~)DB(7Bl2tt9j`uR_cxDshO1 zl6*gmKwcaj{u;JmSm`HHG^WSG9gLtPExh4l$s|(sm32PTENk^e1{P|9Dy4Ku zk#U2Ok1Hd(hd`0uOCgzxNc{u4wm~jy>%~H4BQt!81Qsi)uK5`G6;a{v)`(SCgPlhoEihU0n;Oqf>(A?jj~AJX93hj5rVgo2l3eu!0s zktCG$5bGgEMkJ95Ivq|Y>+tzN(8{6SxE;XB(r%X@&<>7e*&@MaAkwmk2+R4cw9W0N zC_4xOz&U82pW|E(D`lrC2koYc*pRI0yevRN)WAyjvCb{AOhARauBcH(87fXw*MOoc z+JKV61Kkwf)GNuNlGdIyT8+3-sw`BcBTx*gN)lhIIwL(mp9OwD%>pL~Qg+S(01aFm z7j)X(0hf!m0-9LIivPP{B#MMIrfk#H6_?N`8?PIC2pJo@5Xz`&D%xWQ$1dH$FjHTM z^+hv3#0#sdZKWTXs<$0pJ`vkJb>&39-rQG_JIk(={WFR6l;q02g_X7g`Lf-;gjlh! zIyavG_juvPGtoWIpPn@RvACKw&3=Zxm;kw{%s%|{>TF3vcDWMoG374Y+}S}pcI6gs zxE>xh&9}Z=fA_#?e6%Xt0X;TMKVqncQF5XUa{pzx*}b^{061Qj51RIZnRqy#{7~sx{{) zKArcD6Z6c;TeapNr!UuCoLV~cVdHskq4a8rxo_stI~{EBwe_ literal 3569 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 r{T6^r|4&$3L3|&gpH#25o8@Y^l@f&h304 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 diff --git a/data/resource/icons/Bluetooth, NFC, GPS/B03_NFC_On.png b/data/resource/icons/Bluetooth, NFC, GPS/B03_NFC_On.png index 7e727471bfa55d7210ccfa68dbe20cd8b7b64337..bd48aa6eda5f5ed8e10742c0f02276efa5c8a735 100755 GIT binary patch literal 1411 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 U4oW7Cpa1{>07*qoM6N<$f_~wDg8%>k diff --git a/data/resource/icons/Bluetooth, NFC, GPS/B03_Wi-fi_direct On_connected.png b/data/resource/icons/Bluetooth, NFC, GPS/B03_Wi-fi_direct On_connected.png deleted file mode 100755 index 68b7fbb8d0c77a4f8ce942a75e00412cb9c30c32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3932 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 diff --git a/data/resource/icons/Bluetooth, NFC, GPS/B03_Wi-fi_direct-On_connected.png b/data/resource/icons/Bluetooth, NFC, GPS/B03_Wi-fi_direct-On_connected.png new file mode 100755 index 0000000000000000000000000000000000000000..fbaa71700146115d02359e60ad7d87a9811d232e GIT binary patch literal 1586 zcmb7EdrT8|9PiMfi1>b?Q*H;o(DwQ(ccncntnFQ)&hjXTjlsvY{Xx&tyLxxnN~Vbl zBARt0+k8xoMg@#4%rJ01HaF+cEL$8iLo?%4F!M2W4!8N38g_?({$WgZxySGE{d_*( z*YB!xvoqs{OdO(8sp9NelvDo3E6?C)`Tgz9N{=#;XqS}F7fT^VfGV?>cSFP;U`n79 zGTxQTzk_pBssW#}1un_um`8f}fQC_QG~qx{MyphFGQvT|;0p^!y7kJA39-|k{NJr*`Ntqx3B?buxN;#1Xo6sI!QXVVI7>e|m zNPZLg%qf>67qRjJLU-$i3zJYF|m(k2Iac>dENK-WBk@83&zJUfQ?8Gf zc+tlP5o^94nX!Q7ynINUsgzpgmP4hWz^;H^o4^NMTT z+CUksG>+SB79DP|puJe{|4tYtdx9xl_CnY7Ey=B{4ExWJJn27$kduoh$Y(6)Xx(L% zDk|PinG3=fE}nZkt03=<(_P!xp((py-K2FR?$wypX9vc{?Hi|wigC^ylh;Ncja^7@ zUuc_@aCmuQl5gX_P2<$)`@0dXC5A|{8~|ez493;(J*hbP&x+GOO=+tf9=dk1+thvJ z`ja0`qc>3K@eK8q$FZloKS-Kjy*<*4j`TlV|I5>9)z+zv9ca@c_cgHI{C7u#KS$F( zf|`|{=}s$bTjM#CzB6Vn;C?+E$!p#{IDUh5V)ou>)7H=bi0RNrok?1K(d=5|4_B0K znQpp$cJuy-wXliVcfsEDr*-_2#GE@_`)ycyXT4jmtz3;Gbl1%rheoxNRkxz19Jo5b zcWTR`GgXh)JgC`yoZAyP#&;Li?W|pvTw8S6aU}huIIlC!S+hR)j!O*J1u|U@PivI__D~V#X0VXXo!qlg}p^={P}oA=tgU7>yFkjmI+_0XP2u_ zrJiduor-%n8MM0SXiZwp91 zRM$D|4lEh!A9g4?Vbsi%yWHdV_Q%&Gvp^R0lcHPYP|A9vb&|_e5n+o1X^MB@g+3mV5u^? zh^Bmzch1pS3dO`jjLR*#oq4#IXVsK!qYkqHfL1877KHj0SlEF;Up@o;>0;)3BTO5k_p}_{LC9=Zg_6J8msX zMf6kWpUW@0A^}=cM2mb-@PaCq&Ur@a#X_>-XbiZM68to%B1u(<^vH(Oi5CFp8IGzT zcyExUImtm-;9!vP;UtD)7=c=?2&uJ$+L%!UBTQza4Kbm1f*{5So&^FewGUtstsX$E zdK5L95yXyKF~mUFw0g{{Gol!28pAp`QKC36EsM%n<|$V9LM)ym(3HdrE}pL#>!!kT zUgE`aJ^?MeQhp zSnVdllw(IxlCqb1*W$Aa$^>@y`^s(x`saZCfzUxY7RdX#?v?+~xp)(-KL%$w6a_8Bdo{Gxx2G=AIMf4nxcZRh=) zr{BwZ=#;xV4R_Alr~H-Qo=r{Ny=3>fQ!l0NpV`#Yn~d&%b?DBAbtOIcVN2Vo zH09$PwcGP9Qx}f4aK7QTME||X{xehOAL)Cyl~QcGvSMB1fM-IB1Sh*&dm=Xzj%{M2 zyWU?K&S;*Madh*PhK`K9--kBV6N9gZF5S3Hr+eK*dQx-EgoR&y8VOe|Q+^#wnKbD7 z(HxJ~Y^WXjXn^@a@^oaz-|akDJA8GTp(&#yp55D85nbB5?BBfuF~?QokvXyAi*J14 z&x$pst$y1#lL;}(D<3I7b2VI@f$7#wfssmEAp*1uyc57YI_v^1LZok!-xaY{V>UF963fPK{+HC!f zd)cdEadUf46o2;Smsh&m)9^JN-r(wehfkhgaxJd%Z0hwOd9j(PGk2!DwmIt_Id(;J z#A3Gh&`^Kc`sPg;o7)S{Ou4_OZTtL&XjvOMx&QXo4~F|Smr^DqD6VZ&^~Eh{GRQx4 MhdrM-Xj@zLA5pkZYXATM literal 0 HcmV?d00001 diff --git a/data/resource/icons/Bluetooth, NFC, GPS/B03_bt_headset.png b/data/resource/icons/Bluetooth, NFC, GPS/B03_bt_headset.png new file mode 100755 index 0000000000000000000000000000000000000000..6922addbcd95df445dc594abd3d2bb1b0dc1ad02 GIT binary patch literal 1425 zcmb7EZA=?w96#3K3uX}shOte#9dUyQyJFX(4*~LcXwS2 zF-GuZjwM@khN-Cux(uTvO!?rp5VE0!7o#F%_yK$&?8BIeB1*DMAov`kj1LQmmwWp^ z_y7HV|F`E(R{0L^%Gi?uLC`KwIqe6}T^(Lzss;f?|ks8%FBlD1*lNxx~ z6JeToKhJP2$Hw>)2+~~?0(EMg_Xx#G5j~^%=o67BKtoVTSt81?Azp&w0sB9DqlnqTVQ54e~PgVqTe_wtj&=TcQKd(qJnFU>J%-)b`m2U1nwXRCqV!sh4qMv%7`qliE3Ek9v0sgOF3npQ6)JbN#WEqRRtwg zQi4(xcGg(nf?7f3q_|S3wHk1PRB2uoj`N&bmLl+a)hXdV`ZVTn5HyBkZi~rf#xMf2 zx?FDDNII=n!hjLT2A2EZ1w%n3s5WI=rY^MvMp=8^+(W?F+=aXdnkIuiR=;FA2|;NI z4{Z-5rho3lD!zFpd!(kYxu zlWZTq9(-1>d;G^83)OuC@<7A4Y*wAl_Ksm^eD)2t;HTE5OIg)v<3|iTmak2{^5PF? z=09Dj?du5G&$XdlANVH^tiE^0bD<(*n!UC=QMdzpay5T=ud8wBg(n)b-zGEpo)77- z=(F_|kJX0Xid^Z=8}^>I&QAROUEx}&RC?dHVjNjco>=a@@vevKB4?&`BOfP=R;SX* zM}8;&naW)|U#{ENW}Us6y_ox3TJNj&-u8pXa?(3ztOqj5f4laNk9~Q(-{+v8JN$jm zaHV1$o&2owrP1nM==#vYqlSxFX9jESdqcaer91yFZCPt7)eZMy>DtL;Uv*LQq$ pGn>?%J9^?y^77)^4RqoXq=O#xeE#sk8LnCTNqSs9y4P{E{XeR$`9=T$ literal 0 HcmV?d00001 diff --git a/data/resource/icons/Call divert/B03_Call_divert_Sim_1.png b/data/resource/icons/Call divert/B03_Call_divert_Sim_1.png new file mode 100755 index 0000000000000000000000000000000000000000..3c6a89dbddd230500d5c3043f88e45d2163e59d5 GIT binary patch literal 1407 zcmb7ETWs4@7|HSy*W!`gj3B42yl!L7r!x?ZAdSuW3@`Km4ebI+QSxAae0T{% z#e@gza72hmCIC`ms9yo?{jD*fzek`GSaTEFm}ekC8fZM4PxneHllNeYybK)c%Q%KE znrJ;9?5gBrT|oAZ<7SZ)XEZF%BnVbD>KY2Gx{A zHxp&KB`rAfU@1+@FgTve<*YfoRaTNXNz=5>VY4+riw3n%()fIXq}G=hSfC1un9)R8 zLUl&IOU`N@40?JugmfkP?5;$h;(|{TGgW9 zp7ZzRS7Ut{fJcEUXB7cfvAceS)apXI;Zh7tgjae1tRlzvs$g*=5@DW(&WjS?%gRDF z4J0khda!I(OfZ~-ayVGZ=OZ~H2x~)Aq=R+SEvWZ{VM*0^NdUU2jur1=-K%1mfC6|;R${W;Tk58^l&r~W zO3t8xb|?B+hbSfFoVrslHROh&vOp1E00~Z!)97N>8Sy^)ggfZ>yMi{#<)DHTjGGS9 zeiz5N?12D9ayD!UoA}=e!=Wd*-eoJguCxSOSsyN+Avjq+g+PKuQ{Wl9#l81Cf*88P ztS^@Tu4`^#p}FjBLv7h3mk0Mw_=oB52WOkt&lj+@hiWN{v3S5cS6BFV>@(qNi+AqF z=En!Gz462z!_1CQ)n8`upuv1;+czhUrm7YU<8_9$M@By>A3E$E7&*TE{dr-yGjAC) z&eXJJlY{Yx3ZIT%IeO#7)wt#F@}eb1M$69IF7sP___fVL zXDSLchVdu4LlY-IXuLiXs4dW$i(^|0w+-Zm(U*p-mxoWaJYU%T?6ywh#Mhxy18ce} zA3pco{ABf(vhht#yJoMii&qqn#J_sbcx?3StA^7XglQ^vlCL!Va3xu3!hO5e^yMv` zrYZZkmdU-|Hy_p$k7 UAGlF7p#KuX!B+Mi|Gwe>0MZrQcmMzZ literal 0 HcmV?d00001 diff --git a/data/resource/icons/Call divert/B03_Call_divert_Sim_2.png b/data/resource/icons/Call divert/B03_Call_divert_Sim_2.png new file mode 100755 index 0000000000000000000000000000000000000000..c9639d282dae1d25f4f4e4e8eb231405acca6985 GIT binary patch literal 1434 zcmb7EeM}o=96naTjX{JBvJW;r4$;lf-d(x7(v!Nhy%sumh^5)e=FE=kK`(9Zj=N(m zWXl9)86;-djm1n&km$_Z#0)>PW)7xife@W0I-^D=GwK4uMs$88X1>QL=U+;C*)>P$Yug``cDA!lb_`!Fb@hr~*?@z9E^2S8>1ob+(QIB(~069Z)g8=(t zT$A7zxKL~Jh)@YZrnkjFP!F=(XkLz4IK#%0h$#RKL6ut)3dctT9c~bsM9G27q|PI- z7;+#xNETxiw-6Sq+f<>httP;?MRPLLFZm%&yHx1t!hDKk#cBt=_o@ce}UH8s>o z`x)=N7MMAZu&ygKipJw{OT647t4%0wx7!U4tJMrF%v!6Ya|yGgm82OMLE}|X(M4H; z4Mwg(ZqXeG@bq>FF~u)7g>`L#T+-%~1=5BlI0eNm7^=?M81bc1EW0!!7F)2^biZ)N z`MdIKfmTI8{emX9s641*W62_^rG*T``50)HQzHVXqL+(m!rTVS(oX>AMTv_tGT#yt zB;Ch2kd_uPM0-hsBpJf##J!jY)W%NWBvWCxx$p|Y!!S&mU@;JASwa9?;r24P7k5(_ z}jk|(sWMZ1w+)pig&QCC9$+y6*yg11F{@VcT;Ux)@3a$ zE3mtcf;a6DrH~xgHXEe|+#pm&P{qAM$g9dRcrNR-co%)F!sBw;JXXR+5*`A?ZTHw+ zHm}!K?sgNn*NV(zL;pKrDDVU|x@=L`rI$b}8^eV&1SSioP>?{;RB*=LAAh|Bf->5D zj5CnPo`T%&&Wy_kgrljEsUHR!^eYjmX*zZ8mEBZeYv%cl8=XZHpORM+%zZF|ofKVM0@YfZcQE?4!h zgVvn>b@Y1b>0#@OH+uJVcVGB%P4518$J%{66}jug>S)Ia=b-E2*gM$ALvfycro@@# zcEJy=IH0_sm~(FZ>zNoX{$-kf4+@2#DezGE}48h=Zlr-m7D?dkXr_PX@@ literal 0 HcmV?d00001 diff --git a/data/resource/icons/Call divert/B03_Call_divert_Sim_MMS.png b/data/resource/icons/Call divert/B03_Call_divert_Sim_MMS.png new file mode 100755 index 0000000000000000000000000000000000000000..98788c3272220574a988599f82ddf215037cda38 GIT binary patch literal 1436 zcmb7EdrTX39B<3yH3%qSb2#O^Jrr$wy>e~ojRM!Zo^)GTQ=0AY5jn0$dqVHJyQ?i^ zCIz;nuuTyhoBL-Y%xI!+5RDo&jsZH!qJzy>d_+Sui~ghYpKS)g-!aPgV8UtvZuDUiEW4Sh7g}&{foo$>m1lQI;)kz!>M0u5klF@ci!ILg{i5CZBZ5e@~ zB@?yH1>bgx@%bTAl6lBxt~7BL6ou?|Gm6>lcGL)2EvOZ-fZJ|DG2CXytqy4Uf`OVG zYQ+N-y{rXhE;yp9F&se>iG(>(X_n+Lf;yc}jl*g+0SlATA*yWBBr01n3>2?$vJg`R zNrW^;wnd7oE*N-vJA`N~AcP~TvO+E@%gF+1Ly~L^LCqFKUb4~R%bZM$8JT8QA+J@O|6h;szZSjEGI5E^lRXH7Qve6|C`s*^Zt_PY zRZ=2S3?dut(4+eVF(f6F3a!+D8-z;nvhX|~qGc%xEoB`S?xJt0^0?g&j}>#+Fb@Xe zc6yv{2TeOFNfJY8E4+*i{qKY!z!OC4vQ=G|Spu!B4Oh+(n5>*aUIayx!5KSdcw>i7 zr|Wj~B{bt~3B!5vqwn4xC$nYoGU5D!q^z?6ge}U_6 zN*YHEb4C7mIK|wb{&e`l(W?WKjPX|Xlz}mh=FDC8+b*U~lpp728o%9SthnYVev|bc zd!Xw?PP#}xwuA1Q82qq$c8)AbJ7XV=mZz`j(T&3gyUgR=Lpz^K?|x=$lVRfP`k@2s zTJkoZe0Jet;X_$tWi`8Q&K58^Q%9Ju?lrtL{OT+E;~TjdEI7#K<^FgfoR^CbyViAt zn7>c;Z#x}S%6w!wwtw8HFD1@K{&{+~Z+o`8g3L`{9%)ibrw5Xe7f%^X%~`qALstrZebO-5S@&`2bTPX5 z59(zTd*<}R#9Q=d#LxZ7JqJ%Zn$OLQ{B%!ovo7^l!`>^sH?C^`ORuMaI_qxk{tqzC B>*W9d literal 0 HcmV?d00001 diff --git a/data/resource/icons/Call divert/B03_Call_divert_Sim_SMS.png b/data/resource/icons/Call divert/B03_Call_divert_Sim_SMS.png new file mode 100755 index 0000000000000000000000000000000000000000..2b2d9df6e6a9f7561dd2fe1795c266ae5f5add29 GIT binary patch literal 1417 zcmb7EeM}o=94;$!FgFY^G94ryw=M&fws+jM+=Xsldp)Rdh|mSHY2;{M+Do~+a(AT# zgHA*zF$y8hY#I~^Ml%h}nK&6Jo04rNWN~I1VNubTER{teF3uU9zQ-u?$3o)eKHiVt z^E|(=_j+qPrcB-Jhv&J9jj0C74x_1v!o}eLt1atvONUgF)CtT<yO0ro3jx@=>_mqPLU`Upu{wbt}H z@SpRy<=6ZjQDCbBni5k3u!=1^*GR1|WEif*K=Xnc0kDdk(5ivu4W6eThR%z!(8?-- zm;_|q$GXs1ObpT-NsuH9?CUG94YrY8ixXETPfmS1IEA|(O8y=9P8MI9*>y4d7tK7< z_xtH%bGh!EZOoko_(FlWXx+4+3_8ZTpBsDsYSC;u-{9*do_r?u0`l(n`}gHdeq$L^ zKe}K}KQLc)ecx%k@!}hoi^fBi$Bv)RXlE*}mmlm&3gJ`tRjZxIXCo)lf1JU;&3~e8_?ArZOa))oY=nsq3k8g3lHU2Y_Yw`8xKbm&t+U&8> zr$$~+=JlO_u&{^y>Oeo+=5t32+^Cdu_|@Hb?WG?UtJ;sub~W@iXO`za@?vH62NwoD zd1vOY8@zw`i23cIbCn++z4@_yU{C)1-0`Kprl&6_u(M2e{^UkV<*WC9did@u$Wro) i-{b literal 0 HcmV?d00001 diff --git a/data/resource/icons/Call divert/B03_Call_divert_Sim_data.png b/data/resource/icons/Call divert/B03_Call_divert_Sim_data.png new file mode 100755 index 0000000000000000000000000000000000000000..cca076d644c145761eeab26ce098f8ee75039e23 GIT binary patch literal 1467 zcmb7Ee@xs|94~^~gs=gdBTk~_NDK?!_1fzl*NzkK=-oKsfbm0^fsAtZ;3`~uwmt74 zIF%nmMu?c;rU`S%5N2eK01_5)fCF?)Cvhrl>dg2<9mygRmk>vYuM8M}EF?C4?R&4^ z&*$^~_1c(~aWFh|Unqhg;r3J}8@``V#*S_9Iexp|sVrn`ft(|h%6?V^h}k8S0Mzbb z%Rn|@U6rp~21y7Ke4fiKkP95?v{UeCSj9#Y@OU8_L6VXKUe;L-WV8g7alA?O*XJWD zlyjL>`Fe-e;Y|T&J0|`S(MP?1g3?zL5-8N-ar$H=-Q=% zYND%@&Sq?DT5x4jxnFX*Z6fBK`g^?ilP(_f>1*XwN%N=Y(ULRaqA2Wkenjt zl{tY&6-Ks1@X00>^z?oR9&a{R=9Z-ma$Z_X7EBu!V7(Zw(PHANjS}BF%Hh}=;qh!( zOL8`N;QT}RrQAv{z_NiP_(UhHVrkqasjY<+!?hS_2P>8XSVbFKA%WEo4hNkHo#%MA zf)SiP58!1xV^aBioQt;UNxhyS&1T%DwZhs^B(7(SRH6kpl2(Rc)(JKPp_ax4u?C}_ zu#rZc!Auf3ZY3>*O>4H=D1tCrELuXpjj_0hZVjOQ(o{l?5?Z5GvNY zDa$R$g5(ywXiAO&jnC(Jm*AK7E2W0qFjNMJ+^fK469o^tnsu6ch(1G+gpSd{VK7@s z9Ebi=Mp8?qSdGR+YobN9hIRe#gkjJVOzE;sUAMjkTUnWIoFTZ_IE8?RMHAr}o0@uW zH-ZFp*co$f;Kuk*BWahO-?M$ecA#+}sy>vr#)Q^Pe>-uga5*fd&H8KGGXCdW>xXBW zn);_F%=CVv+Z+=T8U1nE=+p1k>^x^0*^d3aI9#aNdv~lMYVn5f{czgcj#y%(=(YEg z&%VCva@W$SxQOF3oh^|IqYaf;TEI~Lp!Cici(e*8-ZEF`HQ#w#_vpp9UK~1|n19$A z{la5GAkeXrFk}zC@c3`#-$iJ{9rK@D((W16)wjKDxmldLTN|vNr)sNz8CwWDGE?}2 zA>G~87h3Cmq`$f&{hF`mYDjB4@<-44uzRkZFHK%|cAo$_eJoXETTZ954h_x}lfN%j z4Z!adE%@xQjNW)hY_NCi z=;)bSSt&Q!`jvgYkA&-WshYyR_VT@borP)oPWO{hAwQCdBkkgVI{CCc=gw!R?jD_e zbMTq*<_if8v4feDyJqVMQ~OeX-Ao5J(H+^^)=@6Ngb`fg!@}s1u{@^-4duTRUibSLm`sDBU1iTs+#h?WG@A?yk0w zeK;mrH6#vV*qp?PnHb2_e~dxNVp)g--6n?2MKfht)D4qmvZ*oZ%-%yl{xBrF+{gRz zd!Fa__1>p68dr_vmzoSDDC6liVQqYocA=zP3#+#SBPji#YUTq#2^|$ES1R^=M4cFZ3Y28YQ_Ep(pu^H9t2tBTYw@E`7D5Hteo6)%ogKDDB zPq}I5oEDr}v7ju+C>&2D652$$RuBU?L6W4xq1S7mg+^+P%3M+tl}hIsXdrn-J|^=* z6jd0xW+5(HG3e=&5F#-*9|+3Q0(n%LOBPHUp5$UUq1EBytc?=iJc?zPMnobD){^W7 zPn~}zzvO9+0o)BFAuf7h75$})q?Q&^4Ci8?SWXN9SVbonmcZ-=%TimQ^L&&G(}Fi1 z0a4jSTd{bY_fbxx!DyrnHXGs8F|anIfiTh)q}fhX7#NzS=Lr@Ap_bMMu_R48^^D1E z($P+WU<@{$87>f{*+e>R<&KJZtSc(XT+|B`Q3cCC#hRAHQVtPtvLJc{Aw1trbwNQE zq@WN(9StV5tdWoUgoLzFDK+GVq0&I)w*#M36e8$s)+zoO`nn3nZZ|V}gV|_c3@~nz zA?;?T(_HRw7zn2xo5TA4cfxS!39fY6qOO}?f~~9!7tRozESy3Rg+&wL8GFTXRfQnW zjk;)?CwXPGXA7>f6`UQuQ-=+l$jHjV*g8*})RLF~B~oH5DpIe1u>98b-+oo6c7Bz= zL95ob4Wv>PDJp0$bK#FW179S-!|ndW+x5cV=ly}H%Ykc`1O7|7_WO^i!uR5-5A$al zXAY>)qP%kl&I#WJRU2<-^ygi8^G^Fa^~IGJTE&u~gu1wJ_h{8MkNSt)GwB_lRP_$_ zbY(Wai~W2^e`#yR+4PDVpsGNgkV8yu9>z=zt}4h9_Db39r$=H5koRM2*6NN;lLs@4 zKHimGeQGGw{r;X0R!wxqUJUQ>IWaKZoBv?!qtyPIPrun# z(zM%heC#52clz~S|GHdbYHX-wO;=dI=6jw#IfmxQS8r~bV(HU2JL5H7WVmbH#7cj< z@bkkDw;oB|XbEo&#vk5`^$T5y(`OJeJh>$N8iyS`}@nM zkpkcMr$Sy|8nnzf4-i2RAX6t-O}T^H8XWrlSV$tbr@ JWA<(B{{f|V5~u(G literal 0 HcmV?d00001 diff --git a/data/resource/icons/Call divert/B03_Call_divert_Sim_heart.png b/data/resource/icons/Call divert/B03_Call_divert_Sim_heart.png new file mode 100755 index 0000000000000000000000000000000000000000..47228605a8aaf5f42e1bcb177331ed0774f197c5 GIT binary patch literal 1427 zcmb7EeM}o=96lM~KwuG#0?~Nf$`nU?y>k7!&~PjiY(l{1B#?gBzH@LfUccrCE z7BYsg%`5{qG9x5oPBMeRY33iBnyqGb#ZQ8wHPRI~|1c+r8)e|8Q- zdCq}tGY5=;s0Xz0Taq%UPu7OQ$=0x)!yL?Cy{N2DGtfW@%Y0Pj zB@xva*(NEbIxy(z{Sbs`kdL&e$}+jAEF}x34NtI9oG=)1dC^9TFO3QWR!0cJvbCZH z!2{^)-h(G##WTd-x z_{rBQ`nu6s^t7M(_$#MBb^GZF-@@PDmBpLx^hEfdrj;}Ql*~R>`uVl-QVF?pV?cfD z#!$w{_kR{2+2uZ(32x<0zSDk?zlA2}b`4oBb-g*+5IbDaH9B^}UE)j)F{e(xqMs|7 zp3=pSpDVyJ{m0&4*x8s-^T8$I@KEKzI^)-C2UBCepFxVRe0y2Fdh{1{^FbfT%ACpj z@OIgY*z04QvpLoGbN<~_Y0;-y-TxliP+m@rZXBe8mvzD+bB&m*Ty+_$2TIr3vNv6c zjGbM0J2_e=4&?M?7H+@$a^b||IjP!=eW!ffPQ%3BPjY(=Ki20=XTRE5^vBt1-SwIM zePW-k@z<<&-N?yrp4rU`MrCrgT323|@vQfUVDE|Dm~%t_-izH&G+)0K!v2~W9-q3G sV!n(Wzc-H;;suVaJN(5Lz8Kqh9x0fp7oAjy`C*wSuKq#8Y9>1(H_uVxx20h zZb?CwbT0(LCYyXPk{SIl-QbhUoNi+%5@V$CeQGqsWbu4blM?*Fi71=nNbW$X?KBv;v`n&Q!+0k zA(fGd2x-{~15Z~%NTh;%EG|oH@H1iu2dYRjof5aa;rA1Vf%ANl>7)cU zo#2wPk8;B4G#@2s48<@CB}s%fdq8b)6v3!E-0ni^P!B~>1%mZJpk<5#EN-!pb`NQ@ znJF4UJZK&6MsN>?dQhy6w4#;*)|ZrICdqQDsEXz9VX+Odgj?hoSr9{l&{^oFKwOXo zDK4ZSce4$8@(7=d3K?miT57-zLZvv7KgvaEQAj|`Stt1W=$q?2E|=Y7LG7x)Aa2}) zyX-V=x4PXZLIdAdu+jgWFca{^q;}c5t}85oR#t~=X9!HzP9c{BMH9gplX5TJ(P*^C zeH0l|?nD-rmgXD{qL&(1b~U8CQ3*Ispr@xAg$ z?}gIbX6?j&`qbpvYmWS!yE=!bu8!}_-PI!7$NGDXH~U5!+jECr*wdn${L(vetTPrcB-Jhv&J9jj0C74x_1v!o}eLt1atvONUgF)CtT<yO0ro3jx@=>_mqPLU`Upu{wbt}H z@SpRy<=6ZjQDCbBni5k3u!=1^*GR1|WEif*K=Xnc0kDdk(5ivu4W6eThR%z!(8?-- zm;_|q$GXs1ObpT-NsuH9?CUG94YrY8ixXETPfmS1IEA|(O8y=9P8MI9*>y4d7tK7< z_xtH%bGh!EZOoko_(FlWXx+4+3_8ZTpBsDsYSC;u-{9*do_r?u0`l(n`}gHdeq$L^ zKe}K}KQLc)ecx%k@!}hoi^fBi$Bv)RXlE*}mmlm&3gJ`tRjZxIXCo)lf1JU;&3~e8_?ArZOa))oY=nsq3k8g3lHU2Y_Yw`8xKbm&t+U&8> zr$$~+=JlO_u&{^y>Oeo+=5t32+^Cdu_|@Hb?WG?UtJ;sub~W@iXO`za@?vH62NwoD zd1vOY8@zw`i23cIbCn++z4@_yU{C)1-0`Kprl&6_u(M2e{^UkV<*WC9did@u$Wro) i-{b literal 0 HcmV?d00001 diff --git a/data/resource/icons/Call divert/B03_Call_divert_Sim_office.png b/data/resource/icons/Call divert/B03_Call_divert_Sim_office.png new file mode 100755 index 0000000000000000000000000000000000000000..f4a04dc402d06ed1154449c0ad07a1cabd7e66e1 GIT binary patch literal 1424 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 Qq)PsKdflbOkh8k^KmF?dvH$=8 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Call divert/B03_Call_divert_default.png b/data/resource/icons/Call divert/B03_Call_divert_default.png new file mode 100755 index 0000000000000000000000000000000000000000..966751e4b1e8b709c3644892dd28c42a75f7a7fb GIT binary patch literal 1428 zcmb7EdraJP96v$aT*l%;#&|_*Q3Hm1^se`4#|`hU?YQVMI1WMaLFxT~=D4=ByRGhd6e>io^=9mT+A6XX3ST@w)woDC%84)HiPKQgT{>p&y$3kM$$M5m| zd_LdTuU+M3ThiC$tT7l2>HbnG2*26-v-%$RJ~fr#^odH>sFh-a8fRr-@Px&BfcT?q zBM1UE+}bh%iVcR;!+fYltqD9qa$?lP>NX}VDnYctP+X!(EEfSPQV$w=!Hv!ieTE`@ z*o{`(1D1f~15JEsn+z)3%0gUQgd@Ue$!4TjBOyT)s4SvIn+1i`+~_*0_0ZcJTI`#l*q-R zKv4aZ8;!;IFv-|)yPd*49*nWjur>sa*(n#{^kOcYrYLHWU^x(KnZgk3a?%#N10x(3 zioq}%_u`a?_IYhK!bMmZ&l1)zC@L#(Ko`}q{B5jjMJ(x)0jr8~NEDkFyQ#cMR7Isp zln`H~11YHHg|HY`3iVP$ZWt;BWPTe6GqM;(=Ce-nchI-EXs_2vTXClyr*RlJK@(ml z!#Hg|AC56rbO9Uw-w88APt1CkE$h0)CD_XPaOn)e$@P! zF*9d%W_xFHH&x!dGvFP+Ubj1T^u!yxnA}zOfA#Yt&J#n&{KW@D`!0^XHkX+D10Bh_ ze(@#iFtcGQ(Sr_57g>9@bC)ODE_w3U$9j%k_;7!z^v(GBL!NlH{A(oiY9{fuYp?px z2I1QDxxBw$tgXte?M}(i##&piA!$EWO@14kOn-Jy%IgJFeTv%Qe&zDqFrd$59aX`) zt1b_-t@qH-y3woNoWf^1haVk0UfA0geQ;n8HCFTfmCnH7U48zv>C@W!7tXqV&(-i7 zJ2HOQy769z^hMUWx~baAmJhCUyLz8$IazYxc;pk);6$)5`+4UU@4GXrM!$@FT-u+T zR`E-Y^3zFft@G*0{pa6%x!d|=^39IHBgVadc0D&{{O!igkyGDmZ&%DDMjx8nm&dE0 tHlIGyu_+`CJn;Ejvp4^(?aG)t~s%`!G-~FZkC;fC8^^v!({Xbhw{<{DG literal 0 HcmV?d00001 diff --git a/data/resource/icons/Call/B03_Call_Duringcall.png b/data/resource/icons/Call/B03_Call_Duringcall.png index 879fa0699787fa557b231758a0d34e92ecc632f1..fae1635265fae7ddc15f231ec5475df32956b73f 100755 GIT binary patch literal 1359 zcmb7EZD<>19KWVZ*H_7C9jv0$M>*TPUJlk|)VE$=&Vl zYSJ>Ks~c7=xUECQi5-&)B5qV+ei&|Ri63N$O!`4Y5M>|Sm`e4_K8)7qx~A)gQSi8z z=jH$V{r+#yy%irg)YjbDj37u`tdC2;?;i7MY=H0T-P37vV(>|0NXZ&yQ3FUgqoe>D zD~UOf0AgnR_;Zq?`tPPZZKj1`7pIe}#nvC18kXrBsx4wi3YBd099%mvIbT zH!%tU?2%JRA&y2A4WJ&U+mR+n5~XP;NqK0Rw4*M9bm0WNX$MKM9-4J|(Txj(YFZ}C zCb;N^7MumJykV#;j+e`2XW8vkv>Z+{3}bS*Tn=dA(8py%tT<%7tH!_qJ*`QqAt^Fy zGKwi>%m`r6(?=nc)P$7F8~P@>tZyU>rVX!%Do#2HTwAv>Y+RyjtYm#D8a+pFcj(Ge2ll3^ie#=aW#UiK&a)+m{_jY%ljBN>4k8T zr+g8D^0}fkA0-&t6(MWbn5-M3oCc<-iIpB>UE5;Whz3MM(S{YJSnH;EUNICsuc&Bb zh(-?_ljMw2)(@JchTJez4rtPAAQRP;61tvsR(gUyLAeQvh=#)q>E$UHH}4}khWEG_ z-c5K(3fsVD{&&J~=m~Ci*_N)WEx}echnr^zPBu>=kYUj@c*gEtJTrkHb##mi4_AIp zJzQH0)qhdfUjOXP$q~#_{if$3GX3p=tJaSF`JXzbUs*de*=!%}Tbjx5`k}G<^~vO( z*!`gGb7UnnYJI=sLo0f*vHI8Y%q;F(2Juu=*Lx@aX`SxAU0p>McGzyrAHB!UWJRlO z=h;Ht<>jYOpZ{{zvd}vJS<8h%+Oo3q`MK-G-Fou;VxD?_cG2JCKx&9-aL3`drU1mg+}$Ml4I0 zdQP-`f9YC}zg@V$+xFsYp{enmx|OqQrxru#$4B~uiw!T=Ex2ui`{JE%96tVB>ffed zv8B3SeQ+meYngrKr9VE{)wz1>ePRu#lz|V literal 3289 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 XKxXN00yLAc00000NkvXXu0mjf@U$+f diff --git a/data/resource/icons/Call/B03_Call_Missedcall.png b/data/resource/icons/Call/B03_Call_Missedcall.png index f1107f1797998cd077f043a11b752059a42510a4..fa746dd62651f00505ee221e984268d6048f0257 100755 GIT binary patch literal 1463 zcmb7EeN5D594=wQ4Fho|n>d-P$H*j%YkS{U?qJ8Y2WKeaaS;TGl=cM*v_0CgJ4i4Y z&M@3eP#k0*nF*PLEn@^1oQVc;!y#r95{V2aIK!4@!onnOaqbWI76JLgkgT8Y`}X%d z&+qGPYkppKTB)U%s7HLIHF3HKFk=1RC5itbO2;$0&gjlWyXlOa86ePD{;oJoSD)4SY zp_RdzkQY=5IgJV^Xv_<8jWwK;H)Lj@t_TSUM4+)~M68umGU7HY@seL39^Lh zjBL4FuelA-(?=nQp@2|XrKzjrlDeEMm^LiJhA_g2W6F|^9^VRzVb({8;;OZ(1;AtH zpUAHU8$tjJ09CG6I9SDsq%~6O3+aZ-F^~+a)BspTA6u(}r4I~4?uO0_5?f2jT)hY+ z%}==v_4NWz`m7eKm9ls|gb$}-ZJZXuN;#bNEW%--DT-PlSPO(&MqbByO*V?geS{st z3EGl{`{0RtA(D1FX?g|gmsE|FIG~H_Sm802UKdMx6~Jn;5|riIm2S$fk~LYal0&Gs zz=rND6eL~_t0{V^AvX+_0*dek;C+fLqDxsPg(v9a7BgC+G->SI6U2}W-G za(yiIDK=r~ZfQzK2a}ro>h0GzU)r8XDWO2@=;50w_HcZBVyPo#L-7c6@K)=Z!q0_Zt9)xjFzTb;hD;rlV4pd?@zct*Yj*}$LGgCxt_n>vr)Oc zYhP3!0DEe>`b#E8dOrQ*%*3hu?zyoOyuZEdz%}WG%*)*O6>m*O!m3gtTt>Zyl zL36<09I1Pyk;=WZt?k5Ofv}L?s=SHi?l8V|uq-Nj@!xpn)aJ9vQ^Ti4zQpu!FF!ul zF_hMNwd-BqrH>|mYXm{bI}Led%oS~i}`2Q?(;`%xm?!F`He@B`e@yuiGrH-QN+a-1LKYD(pqFUZ|Y#H1-X-fV(zmrSsJWI!(?8)8`!;_Vp z6xWBt_+amzFA`>|f0(sRn_Zco-RWKMce8iHo9d@rNk#UFfuAyq$3BRuF23rX9}iEJ zKFv%YY6|}~`sZoKMb|eO@}Zr3kF}*^V$*^7qu)KZIMv^JW1siE{izS{-@4L=L?f2z V__umTdMor_sh`fHzRW6X{tuh@4ub#y literal 3700 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 Sd&0*60000Er3I3(~JPa|E z3Er%8s2tu@x|m5T=V@noMlMJv4K{K#ivg zu^iksqXlLrxL6dum{RHU`4m2lg5!&nh|y@2IMnJSV38yQSds82u|j;10jC9$XS^cA zv5>?_6mX@Y2?m}%48h~gVTy`HVV0Z~W|9Tcrt}kDC8AI%`Dq&|z97osm>c2o%vuX# z4*kgaC-Muq0WYo0p#`p#CqWep;~$fnTSzjTi2-vEyqgA9v=Jo&J-y*@V41*qh9ydH zjx6=itZ2tgaA_$+VK$vsr^B^oGh$O&L2Zm$M28!UdJAIET5%i?5# zRm_Q;P|SIuR3{3p+03vM=M&aSr3Ty}RGj9SGMcjSoCliDI>tOfAJ8&rq^p21T8J7G%TiBjsa$GR@K1X@`d&YmGKnLULx3yQ{rGe)+r zFv(={+jiWX>%V#AKzI6lb5!4@>X3%kfa`b~*$fplAI%RrT*<)uhx)dDoSyhrO~crm z`SHikEXNmAeE537czAXlQe5@J07pb7T>L3MW@`K4(VqKkp|5bF%hR1sK0EkAjJxV2 zD^GF%RXM*SeBQOjkj$}Hdqan>)rD-SSlQB+g#VVm{DRiqGV&|+Oi5NnQ}R&QqE&+f zQ5Cn3Q4dDKP4(s_cue)!ymNt5SE@=X!zWL*Jr%YwHgTxyi+d-)BmFV z>gN4;i|sP8iA}aDwtQOe{3rI^gM){5?p-j@Y8v1A&F|vq5Od?$t@yEM?fL_kUM>p2 z87|psrm5rHx|ncnTV!o3SGO!9QI)WCUA1XjN>#_k)$@M75&e8?N<`$Bjh6n8tnYNH z!#3uCv3cCFAvz=bt`vJtFmkPg3LyWq)j_ti2bT87lpb?bZyu-I8DRA9FP! AS^xk5 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Call/B03_Call_SOSmessge_active.png b/data/resource/icons/Call/B03_Call_SOSmessge_active.png index e3f1f422da27be253f4e797ab81417424f5f9e9f..ec35dc9e23124cf7cf420d1f7aa6b11d58aba33a 100755 GIT binary patch literal 1436 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 diff --git a/data/resource/icons/Call/B03_Call_Speaker_on.png b/data/resource/icons/Call/B03_Call_Speaker_on.png new file mode 100755 index 0000000000000000000000000000000000000000..e61b95b05d88d6ea34b466f82de5f0ed013584f2 GIT binary patch literal 1534 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~%1|*NXY)uAnN?apKg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+AuIMug?sLD2ed(u}aR*)k_4a(W}TU0P1F7u(7WwNKDR7Em25H zP0!4;ReHaBzmh^`img((sjq==fpcm`rbks#YH*cbNODznvSo^ry`6$hg%!|%+|-gp zg^Jvqyke^gTP3i$RzNmLSYJs2tfVB{Rte&$2;Tq&=lr5n1yem^-DCqpLj^N4Jwp>y zGc!XS1tSAPBYguPGSf9Qu`)HYGBQ_y0wthrMJZ`kK`w4kyMR1frHqo20xNy}^73-M za$~*xqI7*jOG`_T8Ae9BKoz>hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83mzLNn z0bL65LT*7&W_m_RG2HOHVrXCigH698u|VHY&p^KjtOn#im@Z#m{5o=T;i`*Ef>IHV z$7+6YNM%8)eo$(0erZuMFc#C4k*vaR5lA7_4_3a3McJvqSaeIwDNY4T`1)G;10A24 zmzd*{pIn-onpfiKVyjeInwetdW@=(;>SE&PXy|6(3XB^|6GKxM3rlk+LkkmE7Z(?p z0mvGGcIl-6^}4t@xfmK4S(q8PI2#(enm9R`xmcJu85$coSy;F_8^QE?<`tJD<|U_s zECuP!MCdigtJli8C^fMpzbGU>KL?hY0y6ST@{2R_3lyA#%@j1kGxJjN%ZoKZQ4KU3 z=v9~0qRg_?6t|-MTm^8bTV-Og-@w$^z{J4K(b3Y-+|>l=Z&wRL7fV-DBTH9f19L+Y zC8*vMk^@X1=n{QUDnm+jFd<-41~K7z2*`ow!qhxqq!j`4m>lob*9;7dPd!~6Ln?0V zxprFHB~XU_!_LQ3j|*@s=}g@u!OcB|b@oloPaeHGIWC%A%iQDw|241V^gipPDJ`O@ zvSf<;DT$Sl8d(y{G*z#EpMHPsbD!uU0QU2 z;ZE^_OpXZP+B*UGTkpPDQSLPdj^xj!&EYP6WmGd|*2_~GT-b=-%@%|TlP3^^t_<>pY2NgGu6!>S>2|7zLI*B-|(IFf$SiIu!mEBR|`D*C)m<+ z>eQS9^DXaZ>r9cmylE1*qM`=R)OuMbsmkvfZ`r(BAAhmgvP8sayVuRaV-j5Y!#kv+EU`6(zxJXh|?7N%?$@*b60uq znJUmadH%Z<0vpafjW6z-a!5On&q9&Oak22yl0D_M+y)E}4jI1Ep7Hqss6_U3^>bP0 Hl+XkKo&6_l literal 0 HcmV?d00001 diff --git a/data/resource/icons/Call/B03_Call_bluetooth.png b/data/resource/icons/Call/B03_Call_bluetooth.png new file mode 100755 index 0000000000000000000000000000000000000000..d87780dbb78ccba1a7f26144ae5e4e21bbdbecec GIT binary patch literal 1493 zcmb7EdrTX396vH-f;I*wXy;?MW0Jw3y=$+9JL#b9wQJ{EOJN(?Bk|}R?FrYbcUN1g z7-1T-xnvojZecNs&bc`EAZ~=fHdGL0FehpTV+58=aW7ehW*DEpW0dj7LgM8fzsL9U z`Fvl$+wO6%QKc+RfgnibbWmRKRV&Z^N#Nam<#nGjk!|I2sZc3LXpx1?j8MVCPM-F& zUY2HRUigMBgrG%7xUzD&+_jGM3A~0@Y&20m1keyvSQHJ>zA9FRD_B1lG$E56rxBQA zOvpxq3w4F8Y=CpbM7A{MF7w5zd<26Ot%eJuBp~2fnTDf$bx1ci@-A` za+L|W<5aoJ16u`=g$){go)5(^*l5&XxWQ<|a$y~c>9i=gjd>VO8jPeaAD+Dspe8bv zq?fYKYJr&v3CMDY)M_JmY z-gW+-{8Cv>h}C*oNeGKRP{qp3c~T1tDTcE#kS_cjva~FSWr9#0?uo-lOO^@bdI5LZ6{&&K(z!R;~W%If&z64rX8P1&{Fqu1rY!DPp1ZPaG?R^}A z5;~ofxh#6&;@jV@qDmg_9eXV611cjI?_+#VIfuNh-3`l6H|IJA&NfUx#L(~WO&?y@ z*Y}0xm8RBXo)&va`Sf~6-|r{Gm*vrAQ<)j=+E{p!n0#sM5>r1pa8aXLy%O)QEy+4{L*4Ddt`hvOhQ>r@g_HQi(Q`hc0Kd$N@I>k6MMa#sOf9II%Hw^HL ze`r6;n1A_nAaqme_cxyyk+xGR~CAV zr7nVATYJfxvFF^Ot4)I)=Ekko+>RYQvLx3-o)4s;A0BLM;?I<&w%2dY=zN#%DXPoP zsr2_eQ_(jJxXn54Kho*V4-BgMe!RY__F&I%I&=!r-F9s4V-HU)*+ESea6X;ZuMqjlQc)M3kW G_5T6dM-__z literal 0 HcmV?d00001 diff --git a/data/resource/icons/Cloud/B03_cloud.png b/data/resource/icons/Cloud/B03_cloud.png new file mode 100755 index 0000000000000000000000000000000000000000..13aee48af31ec3935b19a289e501ca21bbac4f4c GIT binary patch literal 1386 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~%1|*NXY)uAnN?apKg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+AuIMr)7pjltlRYSS9D@>Lr5I=vCwv0Ch7k*w|MTBqnF4mMA2p zrf25aD!t#mUr8Y|#a1cY)Yrhbz&SM|)1#^=HMq(zB)KX(*)m1R-cG@$!U||WZfZ%Q zLPc&)Ua?h$trFN=D(3-T9Ob#X~hD#969RTqa;7NqJ2r55Lx z79|7YBTX5m85nl>EdnV7y2i@CC=(bdi8(I$$)&lec_p4Mwn{)5y_C!pD+6a!b7N;i zH)nGL16LD6LnmW%BWDXU17{OUS0g857nm8?^coqsxtW+a8XB5AIvE8lH+oMMZ9P8eA#fUxKK1Jj7YirZfCTHL97j5#d<@=e7# zt@tKmbN7K>t}RLmpKlwss;Y+Pba~xAwEf|o4?j*9)$sVA`s#b-#74oj&&1|dO^&)F zA+;p1U9Ki0dH0IxUwzwdxkvuKnsRSb$M2$=!v)o;IgX7_MCy%I1dU0u==Eqglg%eYo9RFH#J}*p>QRsjevcvZA1S*#`1yEpJvfZ->%YHkCks@nq3K`-b*u;yiWAf!S@x`1 zSb>%^_v!|mAc)juw^~Cr^Lg10JlaZZ=&l!HG(k)hx}jw^AtLK=*7ft$?JHkXr0e9V z6N1T_p#~f7@%ac&&reqE`KFz7sKQZlqAOzp43cBA09C1Ft#H%L~h`d38PgH+9*$9 zPw$4{g%x+Uf#MxZZiF!6kd;^qe?v3!g9qSlX;63N>%O6+gLdaBL z9JC`FS8?X>E~&kR62pEBvS~$4h^uH=tr+$`n5O&!cHZ@^mLAw`5BjLA=c#tvb!0=} z1wrQ(1sH4z*CxjUL6>q_6-azZ*YyFxZXnj89gGzeP1Ge-6$MELpv0>}Rx4>NpH(?6 z2UuZ%E&DODd>baB3D&)bRrbWnS_CZ=MAaZ@4Z3Nn5uhM$1R<$Si{z0LuI~h$_?e{C zm>Y+x!^nLNIz|+DWH0Nodmnv?lN2>07*bXgN<07(;0;A9@jNGHG9W8beXR4p6UJaq zn54^gb=_bKw{r5jGedZ>GlkH{MT_u^t<0bP9?$1DWnHOuf2wb7Zx>P*haOEmxpraf zvk%{Wi95Ydt1iprzX#Ui<#lEF^%OWTx=n1Ri(Bu#e4eep z`0N>HD7EtU!rAGuuYOz|j#ig$jMtC-u%@oD1`n2pR{uJ=@7FJ$+PHZgj?&Lb3({ln zG=Ee>BgHh&rU?$cXSN58#(vAFe6`DTIt8@p$pgA>y}_N3MNz=L04A<&;a4`X%+1xBdgix|-eq literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection Latin/B03_connection_latin_3G.png b/data/resource/icons/Connection Latin/B03_connection_latin_3G.png new file mode 100755 index 0000000000000000000000000000000000000000..d49e60bf9ddce5cb45b3df7688462b239635c7b4 GIT binary patch literal 1139 zcmb7E&ui0A9FI(fOb4P&+@=sR#}sUnmnLZ&S7(|ZTfuClD>!yqn!K&qmb{p}uHEn; zg5p3u3{>=@Ll1iJ*V%&?5r!f}_m4kr+VKMGQ+N{1;<^<=N^wvH(gn|&gC%G=%U3txFhzB|am!P9 z%DgPw$V*zWO|szy1Wi%HBaOha7a*o9aL)B}%tKjl=*-F`&1h+nRgS4*9LOwNuh*0HR1$@A zEXZcFF$d2lh(#h=_OaDS_|ZU{L4%PUx&d~PPsfZ_1=VnlA)ao9-~}aju8N~=azAP% zi=>ThSOE)?92+)m;`rJq)7&57dE3?zF2Nn=_vDYt%K>CdFhaG^CRLmr*d?{UP;A(W zK{l;$0g@^j)?x&kA52r8AkMqKwWuMx=0P79v>a2bxsGgzf+%W&q5y-_No}$M5VcG; zod+2~*EFq7up3CUk`BT0I#4q}1yY_%1E338PBm1Za7tQ}3|`XP*n%Hn%eP@H8e`oZ zEVnOKRzqlE6qXTMY)hb_m-Laf`0PQkmpXWo Yx^w@S_~_o_3-NEDppR>>^D{U80nA=xsQ>@~ literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection Latin/B03_connection_latin_4G.png b/data/resource/icons/Connection Latin/B03_connection_latin_4G.png new file mode 100755 index 0000000000000000000000000000000000000000..e0776ed2e6015c0d1af764a2ffc19402b7e4062e GIT binary patch literal 1147 zcmb7E&ui0A9FK0ySr`m|AoCz06a3jEug#A(u8y`zU16D{D{M#8a59A9#e>XUJjjrNcoFs&=)sc*nL|NA90dTL)1@asSuihSVfB$vP3>R3N!V{>B8-@?5w1rBL&O1g07NB9x-2MQED5~p~ zU7W&G`lw6z+FE3lVyYN>3dc1X4Ym${;-gb?eip;tLU7S}_OucSfN=_6+Q5Di@kmEH{o1_3l zHIbAvAR%a~s&)wW1Bn)E5o}DBWKBo|DZ|SEXhKF7b6Ghq3(2GwkIPyIn|A|jxF!rm zL#(}re=T?;jWOJS)AHwjgRzI_K;IUhN6 zE9;7VfPO+uq%(0bmyjh<697m6A(zf-f)JD9aUe@f8*BY{!Z_jy7k1gcuIp@(Rt{fx zXNW9zrx3cNXg-;-fvtscGM}Zqnl3g!ep~nyq3GVMxc%ero43avZ$_56xt@yos(3v#sOLPhF7DZH%t} jSvz{-;oWX4IDMpt>aUylN3cw zmFJBL`JPRllN02<{o}5aY;b7}ub?{a+7YC57u6tL_U#6&K-*ovxdXElHU8GCuHiLn zL35DL+KCO@^FxBBsO)Snw4D~jbPYDVAjkZC|AC=BH^;0>7H@?`*!1Q%BDk`#Samj9 zj_NYAm+5RzBLqIgHr?~vL9F$1OrKXH>*SbY=)MVV<(Pe^)~sc^h$2W!Y&zxe0MN3` z0#TA>FhdJG5ICOPater=Bx^#39$XAji`=?aG0cG$+2xof#-YY>-ENodrdbpxu|cG#5Y7)*6|46A6dt^0uP)&l0UAlhmfnl7P*GqNEJ50Z@Qw>cx^M3UWFPGBPv3y8oRpj(EZ)U3RGJhDW58ljUfJ$YwN!Fd#*X z$c%lu@-$E8bFOUY)!vud-@U!r@v+^l{F!f8KX2zxY!zPqnTTdyJY2fB5K5=dKi@R7 zJ0GQA>a$1p-?f_CJFhRida`*A(Y0-F7xPIp!hgoBX literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection Latin/B03_connection_latin_GSM.png b/data/resource/icons/Connection Latin/B03_connection_latin_GSM.png new file mode 100755 index 0000000000000000000000000000000000000000..a9c0a6aa5980b96288b3025234249fc64c46a152 GIT binary patch literal 1255 zcmb7EO>Em#9QPL1LDwAymAWz{9&S6qXl%d4b`q;uo5VKBwzORusTmjM*sqC6{ek^L z+`?h$Hk3*e8Yeh1ArL~MJ8?o90xHlBAXahWKoK|4B^H zvGU4oG(}O7n`XI!E5&n??pTZ#+Ax9T5;R3kO$V-~HxLF@R5R@~{oALX(ZDp)^rBGY zif#_o&HSo|7FK7=`f5W@8T9mNFcnCIz(QC9fwgS=Qjn&*yb^g2w^iSk-*>7~ zoCi6_LqK5SQJsSjh#~`dK@{O6h;cB+a^w`Fke38eiX}krpoyAiEJ-Cj$Q5sO8MMbuxhu@*#af2_|SBVYGS7n_a^LPo9XG;x|Hp570^ za!Y2dj{RM7+wUcdq>T+UmxT<+dR?0^zCNm0+#g|CyVgD~p$E=Cl;1C}xQHzw-)VX} zsp8Vu9;y9>Lc?ARQc?37h*VM4mVMOyP%KJw#Cg-!mSsn8TFAx)IZZd4rXi^UF98Ffo|3%^C9|4A(_d>1vQxv1%-z&33)Y>Q+Pfm#^W#{(mky4zZ1q1PuQ@_ z_Hf-uijgtp=KxcS-+dQ_jmcLue-%ZxJXD$!C{62$^9J;f4 zdvN2md}jRW_^rd8k<8`m?b6xf*M|;H=qFx8U%mI;?{BYt!0YvoszCg(^UbxP`InCC z@UKz+>!)wLF)@7LnSL+@<#UJ+J7Y{ Bl|TRh literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection Latin/B03_connection_latin_H+.png b/data/resource/icons/Connection Latin/B03_connection_latin_H+.png new file mode 100755 index 0000000000000000000000000000000000000000..12fcd4d66f16203dbd5ebafc006805d1e4675eeb GIT binary patch literal 1129 zcmb7DJ8aWH7-9|0mr^JR$`xPUx?d* zfrkVG3lkCx8!QC|kPsbM7+|P`5DSbT1}0b$NadU+X@{y3mLGTL|NFlGdAC}*Ff}`@((HS0OIG)^68VHIgDVZESxEP`qI;%=eGX`2@S72Hg2MWjadOfz6Wl^}s z0a=z4j!Y&^EYi`2kF7ZEN3%l)4Muk82G~VDoiJKW)Wrpcc)AyY7u4Lf7LG>bel$oH zNgEei0S8!~3;Q-nd_$CJ9*yw4k#&S?aNqeu`J?(q0J$2BP&c$m6<22uNF6Pd7!G1k zOe<_dQboh+M6mzEG?h!ldDpi(8nU|{^l@1$Fx{@}D26DAq9&*+FnFERMizjm<>g!v zvK-A2*^H(T z`lM(fnX!l9*9$VA)v~76<1fv>ySodit+A7-(-gZj^XNfi{q^th$EgY7)sxA_o#V%9 z-%ow`eDmYn)U7M`c6zgOU&}jljj?afxosmo{nGh#|MJqiacXRWvaX*1f5NRwGW=z| KqCG8Mz3~rKkz)G* literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection Latin/B03_connection_latin_H.png b/data/resource/icons/Connection Latin/B03_connection_latin_H.png new file mode 100755 index 0000000000000000000000000000000000000000..8e9c7ed23932e9deb9bccac8075714be8ca0de63 GIT binary patch literal 1113 zcmb7D&ui0A9M71D4tJR#IuK%ps9=-4{Av?cw=_Ro(ahNu)}v|i)`m8DF?qG!j>=%_ zPCIz@D2lq1Cl5Q!izhET`5y>^S3zOEbZxi87#Q;7y_fIj^ZEXKzO;CEa$|NoE7^1IEO~$VvEgMKY}N2GTE$&Aft2o}I;6{?+kh45`fHEB!dZ$M-wCQUTyySg z9tv4EvtfH-OwbfHJJ*X{uLUt(hm9aAGQU3WGIZbi-uJX>~1zTm`16lX#?xt24)>P8Z4y2Qg@lo3tRQ zqV2X**#F@;+5_Tz5V>s=d7ThOxNH`gPABj+Tb5+mlyn`~yhUoGNLb=~lYv~so_%@Em)rVvJ?XbG9I zjneN;GN1EhQ?K^E*Z&?I%#D8-yEuN808b!lo}xzKtoZN1-o^YZ%E o%)6h{pZxvphxhE19KW>o#Yr`8Xq)P`$14McC6`O?u6IYXCe0-_!^_e%uBA}yy*x?IHh1yv zx}<}YU|}$1AJnl46`VsTh;vY35msjvMMT99qf})misFZUkj3Y+rt61M@VJ-f z<^TKr{%_B{mP$U|wySd&hGA`qej$y%9_MLoM(@h4dBvI7v0;1A$l4{zgjhs1WC#)k zDF@R~Qm0;6fjt=3cv;H~+r#2BykZo5l4Ij57m5gtVLiR&qNI#N8^|!H=^^~jPnL0@ zsUdub7X4x|3iDe3v7kPpxl}f%+&}W!Ag5)^P;Rpo0$iiz)>9$n%>Q+~sL4cNGYDHT!bl@;b zvN36gaOCNo5DLY#mdo4L7P)S1CJUvFC`(0x^!W+1X5++HM~ULjh(ck@+OpH|uJiZg zw=z>jNTi`fepsuY#p1>EnCtR=!iO4?Jm~8BbJYvP_hj(V;B?lZc611+pzLR5kve<( zdmAsg_B8JObn(E2v!_P_&#$DGUY+lV{o3L2%w`^U=dcg=xvNcUgW;cyf2!4^ufNo= zG~?;Ngsm~)t(MBs)YZ0A?F~P_*m`Am=Ixu;a-NRQXEzSGU&iFeDDGKsqOEd%RO9btO8p@ql}|Wept9y3ZV$p8ejvKJw0u$jXMBdh?N)j`a&% z___D5<*+VN#PiwHO=~vz?quhQ&U2oR9{%R5{x^=bhi6>ax$5fb*((>nbpCFMSW@_) IZ|s%-050Cb#sB~S literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection Latin/B03_latin_3G.png b/data/resource/icons/Connection Latin/B03_latin_3G.png new file mode 100755 index 0000000000000000000000000000000000000000..4e526e5198edc1c7eeebc1703e9d1574021f2b58 GIT binary patch literal 1382 zcmb7EZA{!`953=3493i4nHaaGEJPi5ZSUISu5!bp?ZF|(@VEhfFj;9IpgH=ow%CH7 zB$3NHi4?lO*{D<)Pd zjNNytE#8E(ngLMS>-UHRNuq&(m!#-GfUH1$1nI*Gcn3Tr#n1u9SBb7(7*sQ)4kp1x zSGC|QjCEO-&fvIh+g{u6)r?M@42422htKDM79O)#wFJkbnq^rA4w#}L>z1sksLLp{ zYduyNgPz_GLD3U(XP0HJk*nrvvS8Y9N6>N7OW?+ejT>JU6_0O>P?R-m(@KB`&Oemj zO!n#kPXJTvF+^C!j3=5-ho0bWm#yo%>=JBccer+j;AHI-0u>g`fM;y?^*h}Nk`s?{k)(5N>G0Pt z=8}(pF@Ei@d$GeOll$MAzqr2^UtZjrac-9n3=H(|j=WU=%Zbt3C7HUSAEb9@Sn^lV z_NV_Y_iN+(KK}kdU&E2=EemCdocy5=zb$Mzx-?=de=eOF$Q!EPx}3LbzTj^EY}IVR zdwZT6o;!sPf2HSEylxWn|M-GMAK_2)Q&WlQ&U> z$DSWc@x>F{ruzy^)UOHr%W@Ha_-*^T+9JXOAoWuMFR7yj1$ri5GTkI)8GZ pbnf71SI*E+{rvAO`v5cYa7hzXzx(a4Knf<}QQeo%=~p~OKXCMIHrAD9S66AVn0ATgWIjdkn;S>okh zo|pgc_xry+H<9S+cGNyziy(+2wuw)|?_<_eQw`tc-^WC2Vn)(tui9@G1RWqDNzDK> zmKO#<5(v`p)^ng8LF^~wRN73(H?yLe_Xw7arlu*D#@z{|q1wTxrv zf{8g8#O^tjjwet~)d5O*d~T5-NtC8Nq@SW`vK93bq!%aPO}j}yOVO;i4PCr2sHRK( zY?6;IYQb3$%bKRf;&`D@@DzL=RUg1fhG8rYuh$JN+{UnC3PrbKG*uXQV2HY`nX;;& z7Nd|+hs+=bJ-rt~UQ5aYS<_e|SB%AE!L;E;LBmN8f$Ix4R(usyJiam_pI@>z%p|z) z`~&%o)UXEdBrwz=U4&KaZ(1g`vXEuC7y}y@^g#ft7!`5`SlEci*=L~hvLfVoRUFC# z#fRNS`Wc$T}-OK%eAkpPwWsGC)Cht+;(O#|5GU zM+Z0$hih=c;o2CQc4YO}yK+dmp{up} z+8JbOv@X;7^H|@gqxA4!yZXYHGj5$Vy){I*Ysyc!|qR!7W}Ov6JOY`#D4qw?CSExMC0|N;b`OOhL=t@pISZM zxhFg0{N&q9C3lZhN;}6pSIt(Tzw))!kIwK+{GUfp-Fx%xY@<&UZh`?nYOZAf02nrQl=zH9p3?E8~W*E=q4vwfs2K7D@v xmpzwPm7Rw>)_k*f{Q=?Dx$NH?M_X+*1ft*WupM6GI%EC*Vv!#Hc=(mk{{Ue))-wPA literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection Latin/B03_latin_E.png b/data/resource/icons/Connection Latin/B03_latin_E.png new file mode 100755 index 0000000000000000000000000000000000000000..3b508a873ecd0b4365cc9e774179e5ef8631e06b GIT binary patch literal 1141 zcmb7DPiWIn9F9)L7z`8@rc(^rVGeDQ*CuHjTSu3)u4?A!3hQCQ(&Vkp+T>-)tL=7@ zu^omW6J_AplZQ=2FT;Z#yv(!6@Z?GKq=*L(!hGr4Zig{2Brka{zwi5ge^)2QZ}jz^ z@1-cJFFU5@$opLI^mLQ;{r43k*x+;lPoh~|*F8w3OjLw)*49ff2X%8{ej6qzs_TW7 zFW`c9TQ-o*>VXa0uw8nrF_+IW^PLBD*A0#@LlPu3oRR^$3f+ z5(nb(c)$@3hloYUUvRMA2s!>>n?Z%X;aM)WkV6NIdJ)xdk|Cb%g{{Gn;`9pb#@=v5UNH5)oOt0tLR%`)YTD2Speq*5Tmr%7$%0ua?$ zJUR+uLRwYTHo-w4(PB-4jbubIJSs-XN|0$G7E4KL1cXP!QUs(GrH#!xKGq!r2BHDh z+Q&*qVr9jHI!0a|p=!IECdvpSzl>a3nUv_uQ}K7zDk{)e)hbw{Pl77&5tL4ZAa(+EYH7wc literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection Latin/B03_latin_GSM.png b/data/resource/icons/Connection Latin/B03_latin_GSM.png new file mode 100755 index 0000000000000000000000000000000000000000..936329e7eef0a470828b73be0a1dad72a0d0dfd6 GIT binary patch literal 1249 zcmb7ETWB0r7@pl!ZKHu$L2IqybhbjQ?p$`~Om>G%H=DV%tDU%PRvYrf6(2&OQi7l_HXx#+#53F7G!G@%3MTJJ{E|yO*Mp0pV_o7a+NZQzz8L&LVv0>XLj<1U{jI9x_yI~#S3cBO`UHPNxe1O;r ziu^`skt$B5Hc4$Q6dQJ8kPI`NL8OYhIUAw&2g8t_BhEXXIjj0s!$lr0sWRPYIJTri z0YX(M7I~f1NNw^057k_LXq3+hnyRW@g3Ump#n=QZ@S{p5r$Y!y6?sj_Yl^PvBFtv9 zib9rMY{`qT=~*Zijj_%hED_%VD=8r|u^(1_f419A<+_jksO|?q85hCe5y!LrX7prS zYQjxIRZ-}?gls+ZUC_?D7)v~1 z<1X9Ob=_B_mE+~c43W*o6e5olEhIBmxD2n5`Mg|Gi`CXj?Vt7aLeGbZhk73W^86F~ z5)acq+)6Cn)BizYi5igmRwvITm-mibDL!>(d(T|1|6+1Y0|$02UpV^b5KJ!}pA2@N z`1IQTo2SnH&QC5f1B3q_9eDr#&#uoUYLD&tbz}{m`tdLI?VV@9ak+dL5A0oit5AOL zjnfaV_dfH@_t#E7TV8p$a^t6qs}J;F+E&{E#*($?>mUETd~7YLCt>RR$m?Id6P_qh zubkutQ&*EWzxej$TaUcCa^LFT_9s(&7Ee>#c2QSfNbTDH-OfMapH4{|Q$HGg@z{SL C`k1i* literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection Latin/B03_latin_H+.png b/data/resource/icons/Connection Latin/B03_latin_H+.png new file mode 100755 index 0000000000000000000000000000000000000000..f25f272364532014c1e5cbcb78dc3870da4665b9 GIT binary patch literal 1181 zcmb7E+iTNM9L`oRvp7K%#T$kU@q%q~+9Yej>dcZ>t7guwu%R!e$=MpW)bd?8D>uwf znd2j-WHH?b=&n#E1P;Uo9Xg|KAct9|&MTAmXq#o|x(Oc1GJl*J)ca@^`H&Wp>4eDv zK#O7$@Pa6U{d9^0DV8Irm;k&ih;pivZX66z^Q|GdsO1}4WR+zq7<)3y)@rq6EuBRE zFbgC}ia1iK1hGg2V=gwrgd21;88jG}zU^Tfxpc&6lu;FD8RF@m5FD>)4_9!oNbUxW zWRbM7q2aM0$+3RjCW^0#()HyLj7ql!>t=g8H7kEL?ctrtuE=Ou3@j%cr zQfCjy@HtJ>ngmOML@Q|#EH5e?&{QA@q>3QNOG-MWrj(2*X$r`IToYSx18le^j6@@> z{TItEiZ>)pMLx+c6H(1>)rQfteyPh=aU_uwp=Z}Y0*YNM z%bja0o-ork5pO+X%&n`$w|#+|r*3XIvT%E9*T*Xt&p*kWd~yBQQL1$YXRmQ(wb QThR}rkn7d%_MD#h4VgK79RL6T literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection Latin/B03_latin_H.png b/data/resource/icons/Connection Latin/B03_latin_H.png new file mode 100755 index 0000000000000000000000000000000000000000..4412e7270e33fdc5080aa40ee720c52c3a96c1d3 GIT binary patch literal 1137 zcmb7E&ui0A9M2exG3mvD=={MWWB!1(>1&g$iL0ecnyp~A(iPU@(&TLoZSrFBYP;SP z2h+bn54$)J<_}O1JUCDfdhzZ_kO`ht^d!Q3>Dq3GF)-xUd-;AopYPAyEzHkGM#e@M zhKc0o)FOSJ39sQHdVl+E-3%8bS0;;ig)|KxF&5Xd{mDk>twTD$QcO*72k6T4I< zW&OHrVkc&VHnEoDQ8dF$XIh?N)(`;|v}(I)_WP^XEU>LKyCmpw-BVE2o@@JPu{~ch z+ci_N*vvIB-I6JRgNOlIPTdXUR+{bb%JeUKT_-F$KB@OVxa9MJ}pZSBtLFY?TmC=D23F8EYnE*k9$K zBuODhA`zt)(O}IbMl0$D<2?oy1*UI%#KtZN8I1~VkTgp@-4DU>iuP)i1buQh=q8J% zjcXYm2V-&0@7RR#^-#KgJi>AM)&VJ^1Lu$A4@zqu;)*E14d0|yTp2$kb-Yk$*o{Hf z4ZntH6*Z$Cpw0(fmlvq>wrkW?Y&IO^lDwK`8x7l%HGvldmCt6O7SGYzNIVqOlr%L1 zQ+!TU)gHlNAk~Ul6wC7oO@&Yt1X@Ly<0Vy0rIHGtgSdC7Jy+zhUSrKa38R2BL5O=M|4c0ecVvVDX; zR7L7$T!1M-$njy^Nl{T!T3iuR3Jsp^Vy*v97)L$f!Y(`1b-gXx%HeB&hUlU{g~+8v z^XZK3Mm|R9e3tWSw$%Dm`MbB58QdNi9X!ADCWFn_G$B8(WVicHdllIrenpR-*E*dh)^x>+_^>Zu`sZ!wF_!h-puqc<^g< R;$HX@$mizO$1}^f{{c?+XCeRq literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection Latin/B03_latin_LimitedService.png b/data/resource/icons/Connection Latin/B03_latin_LimitedService.png new file mode 100755 index 0000000000000000000000000000000000000000..8e626824f582254c2df71712b1d32b5334ccf2a4 GIT binary patch literal 1556 zcmb7EeN5D59KJb+z{C&0FPvFd9I`3b_O9)59XAH;ot(4CmwJiLSgt*&aP8Ulsi%YudN(`}X%d z&+qGPWme|gsK~fTgTWBx%wTfBdz$`)hk^0*t#xjFq1jzpuI$lDI7Kj|@p8TZIlWwg zkRxz>aAmuYVlX`4Eatg17dxMF%U&a=+ZY30A3z%nDX9S;=PnX7C|@WLB^%s#>;w#n zybWGVuqf-Jg+ei-R1tDZGxOY~MQ$q(r@jfL1Smk@6*LYCc#9>K3fSO5UJA_hZ3Kn} zO|&8#{KzR6n+4IbB0z-Eoa9C^3?fM*h7%--&4ElPWVV7D;MQ(zrm9q{a_3FoNno`lzkALOG1f@MTwV7)YtS<18xv1BPil3fp;jf7aGhuB|b$TV@NZOp#%oJx8r); zW|F3p9VksE(;#?w2+RNPgdxBaMDMaEx^8$2w6Z=OIYVGEatZ|r6ioqVtd$NtG#H+{ z?_|>Q0$rVTY$B5#`|aj)o8#bOSK^hkD_0I4jCs4`(+Phi zl2y@Q*swW@t}3qHb**X7566%8eOFec{CfF457qtP+OfVi^_zmJjxM>mza`Zb+COT` z>bBP##>CafM*cWa;->suv3}+4yi)~7-ibx#Ce+hstesge)GZ%zi3=m?yUGFGOSPWcO>4pv|(U8zp#zGJ->rF zH>dK0Wt&{xyBn$6zPk?_j;14y@w?AZwNo~RrtgVk3)^lD%nB{t81~X1S68$&VUe!e zukPsC&|1CYUQGNggSW0UA_2R&Dyktct7p^S^~~3kd%8NpqU&x@!IK|#RhAAc$?yMX zY-cyC#IN!S8KqkzuU7B6adXRqnpFOcX^s2sjXMu`j%@wDzUOdnrZVAf_M%|6s`i@} z{PcUm%k5mhY!CyQ- literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_1x.png b/data/resource/icons/Connection/B03_1x.png new file mode 100755 index 0000000000000000000000000000000000000000..8a82ba43852249611aec301a54dad6906ab6a51d GIT binary patch literal 1397 zcmb7EZA=?w96u-^Te2~S5|J4%$C$6Z>(ky{+mlMWyB4}xtfgjMLNbru1HC}+y1T0_ zjL1+HJEI8_LgpvIsKF&_oLOZ0fn}nIuUWzp=N9MKSaivv)tETbfX^|?_^^<8xtHhV z|NH&^Z_gbKw>EFteE(()!?pxlgb4c9nonf~de8iJByLU&f6Qo8JB^H}LChzq9S{#D z#V#0uqSSkE4mM(#bY`dXv$zV5hNBATAW8?ziDNJ2xzv&kMs=dvDRg_lEPbD1LW z6%(V|L)>yI77F9MszIC~9oD!F0Gwq>Kr<{09>?uAV5e;8X03qc7?!g;@zsk!YMRu^ zMTEer7Mgj8gkhvOippd%WX3_NS{DV}Znw!{w_A~gRqs^{F>6)y`XYk>^|&Ud3|Uoh zlTqwY(}ssYp56)}nTp6=2}55aSM=3np|nw1F+~B=MrkWHW_(3dD6}ymnOw8hjR?H$ z{2lrAXm1Kq5vZ$aEsm<#S-(zdV z0l-iD0#2X6`rJJ2cYy%Q7qLM_H$){4O;Hmo-^PLsu^g{K(NMLhs`eDSDV$IZRZplX zoNr_Chxf^fq-OL-%u*w66siC<`FSV>G&PB@WSx`mpzmTFEbVfzejYgeG>RL!EV%uQ z-R*bSoPZ`)vC{ue7==8c%r0Bkb;Tvr%I0wG457)|DTE3tnugAp)Uf|NhLyAj1z$A# zQ%7NWxykZ=NwwvH(|>$4RQ|H7ZglC$E)tu0)mykbw=ABW-8$3mE!5?vfBEZZ?Y2vI zEnJ9Qy@utVz*}c8Pc?*Z#_oA0e0}$sC2wJ|sdW6CZY;0jFI3E2Ola?V3spI_1Uz

D4-FpMl>5PVll*c1ihXFfq10Qb$qir!8=^PJ_Um&e%ZBz2&kqt8 zkJXH&uzdaGr}zFd9~rr_f8vd*vZ?&>w@*LxcZ;vQl%3y70(`0LyQ%lWCub*Ncy3Nt{`N%urQ~h*46wdG5V+Gj4w6}oe&Y!(% zjKfRyi9dH;7`YM7$9DXCjbGgR`WLm$b=zP1e*0m}f<2oZ_*nRvAk80P(BCS2u=}|e F{{ysO=K%l! literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_3G+.png b/data/resource/icons/Connection/B03_3G+.png new file mode 100755 index 0000000000000000000000000000000000000000..cb863e3b559873c5c8c46da6ad8bdca933b26a98 GIT binary patch literal 1406 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 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_EVDO.png b/data/resource/icons/Connection/B03_EVDO.png new file mode 100755 index 0000000000000000000000000000000000000000..17244375ed1244ed7e2cd71cdfa3a71b0df17fcb GIT binary patch literal 1379 zcmb7EOKjU@9Cw;NV5NI#tm;r7o(B??#?F`6No<-v5<4{AQmQo5g2bba{k1V|?9_Hh zS{2rIMYKbcdKeX))?Hu)6`0^K32EI#CXEA!9k}cOV{ANx1dGa{g{|Rp*K|Ehm9YHy z9{=C(_kVq!?d^H7X4g}@Fbt~+ckxm5J!n0TRibzP_je>~VhVAyPa80^q7Jc6SxZ1X zoDv6N6pHfb$hWW+!|b0cvA7wJ9OWb}MT(XUnM`dGXDQKx(=? zz(x7crWTs{iKJfNp6@`YD(Ir&Hfy3LRb{4V>H)G%;qCNys6+_~%0XH@x5$+}AyrPQ3ye4H* zP&LE6pU7ksnF}#A!|-%xCkQzOR2!BC4DVyT0pOzrp65#h+kr@nlo8hDrP&~=AMl14 z00cU~cm*Hp=6y~exC1Uv2^&@oQ&c5riCS3YAr|b2<$^jCO-+w!+Hk3xdXt)|8A&aT z2m3tuv&R)x*0RQPR;dv;3YCYt@+Oo+x|YH>vd$@w(DyNJ5AAb%gdp$=G>TjB0iG2Y z7c01(UO*F@Sowb^j6$AJR+nw-y3!JAWox)~hR|f|6hajhO-EG|gF8^LS9XxG6(>CMisVnr` zp3YRA`>LU~nx2e5F>|7<5bh=#2WI`X><3pro?Lx_X#utbSwCNY`TgmNLcg4@nmKC& z&(G&3*Z$l~9{J&?D;LL4)>F+LEj9V&$<;c>_4A>YLYZ{7;@3U(^EZ#YdT~5a`CabX zC9Z2Jai?Q@S#i_a9V-x3;670U|y-l(0sRw!G!I*PAPFHOh`&gFPnp>Mcg zE36cYdU4j?^u?3YM?3CSHW#bA|2_AqG&OMlNBN)IP0`ga18eVIKL7%MEUhEU<6GXY21X&T_{u& zy%n^RvCnD2nFaO9a){RHB9VwTV$cd=r4FMgO5wn94YbfmbwQbnYJ!qF&cFc4Bl01c z7lMew$hn2EY(b%?4?+lpoP4EEmgdQW(p<7&+H_Gaq{Fm&oj7Zw#1}_79E&3Yfq835 zc7lh_KayW6tqTF26G%c>^uQ`ss24~rE~FUF#Xvhau^PZC+Bv@jW;YxTx)?go2RT0@ zc)|e?lnWRO8V>Vb+D;NA$q-g6X4kW@HWY!8jF~d!VP=A57$#1z5D2xjUWmmFI7<*l z95dNT3}Xq(X0}@ijAd~)J6>r&2BX zw1BaeMn}6pKD}|NHF;1PU#0Fz&&bjY6j^%*^SY0u-0(LfU)Z(h9eVQ*&aSRbS6A1q zB?C_;yWTEp%Rh7Fp61-u&Y#BGBjelGMojBRKm~sEUFSErFNwNw^tI*BuiJZP|B27` z4!EuN)1Scl@4npK()ry!|MlsX^DmjMH7u*@qjSBxN5+S0D`M~Eg)(pZ%QMcpT3h;a z$U_GTo52354ZZ&!XwUud&$GvG+A}7GV`)3Znd809#aCkcHXlm(J(a9MS$AJcs<$<5 z_*UBCCbmQq-mM;3vo7=1k2;2HrnM&?f8lfMvFC;l{;k$0jx{{Ce8&i>ndu+B{QBL- zl)^HjMZ9`S?&%(Ac*QU?-FV?(xQ~vm$euVeRQu+!n;R!m+7cQg6WiK-t(R7(jJtlm z*nO_i$r&cMkK~j;&Hq~Q3$kwdp^48WSS` literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_GSM.png b/data/resource/icons/Connection/B03_GSM.png new file mode 100755 index 0000000000000000000000000000000000000000..746f89d4804fe7812ec8be5b37e42f69bf37f686 GIT binary patch literal 1263 zcmb7ETWH%>7}lE3*_yQt8Dz9%a8L-#y4uo_C0SDKB#tF7?y59%%o@tdB1y8G!G>(q1!q7 zzwi66x-d2Q`tDu(cM$}!yD%Xa@pE5vJr~3GwcpO`(IQZ0f@xokOb=M#|Scpe@E3=J8I#wQ<#tidXOQp zr;kIh+@d*O3H(iR+ixcer;Q3Vmx2kJ@>(`gd>xdkZjZ36O=~|Wq9@KjmESKdxQHqu z->G{#uHxL_7OCxpBExnJlB#)CgsYg>YCdXxP*v$DcHXqLn(XLx3)w+I&XD!GX-IjF zG+RfJXoNMNVBxk{Dd!ZXRdE8xuQ)EqP4i&*m}whM!+$j@ zHRi^l%E&WMA|vlP7HDN%GM}O^a7msOlDv|GDTT#xD*}{7g=0h|Nv9x7wz0VzpV8j@ch5VY z(|s%Zemxr=>aF%YsCXCu$N@gKaRA(it*!pKk{O$HKV1LdyPx`&h%Vx@mxllO=FC?g PN57zgGAUmfpFQ^7`e6eWuael^K!^U;RY*)^$F%{JQV>OowVyse>4UQAwXx04D^ zL@#<6gB?8xB8qw%Dx!E1++hleo)wvhp7h|y^rg1j4r5@**L(T@e!u@`F7@>sT-Ua_ zjiRV^*+XiMJln%-^-6MoHhaMg7g#IeJQ~6^!-rJLLW7XbI>s=}LBkq3{Ty~u)QUTH zp@@t6QN=_KYlJpz-SG&TqB^_ko?(_DrU&7$?IxM84<0kLZ6%q0QRj6p4NLZ+Q6J_< zdkW@g*-ThW*M7RQt`GtTVuP+b6*o}oNv6T8koRz#W9WtnE+?6PP8Ib&I*oiti)<`n z@&M41!~#K-B(RT;@*v9b$m$QdUIG87Q zgJ!Zw+PJ#mae(DHzhM)`*Fx#~@(9P7w+?U)E;zp=e^40lAeVyys`@6W;?VX*Qp*d4 zhRqlh-SEqhR54>z0@(PV>q;+i-gb?Oip;75U7S^uOtorTN=6h!Q58}tkl{5_n}h&F zHJ*^WL0r&ORc#S01`;jSB3MCA^IBYt0y!fBpb6bEo=?d@6s4FXcWcoWHtPo1a7`GB zhFE(63zo$yX&)LG`2~b3t#0ZoA&i0&^5}G4qIdP%u7zsB?y%H^n}n)D-#!DajE@|; zk#)shLO(9XBq1J?v^0=4fyAxFftt|7XhMteG7y+1*81;+al{iY?6O5&*V-bj9KO!a z5LwJmA#_R6d@^G}_H~}j=asCQD%9V7J~q>KmR^fzg6X+GTVDM*2M73PLj&W*Rc89) zjgR<%dQ(uoQSUltPuzMWU+wh9o<3YXu&KB5WW)8?-WP9n_Ot7!BKZ$zuD$*F`^)&A z_b;#B?daIJ>fZF^{ZEIF@3=gB_)D4F#*97f>4k0Yz~sJFWZ&i@76u7zj- literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_H.png b/data/resource/icons/Connection/B03_H.png new file mode 100755 index 0000000000000000000000000000000000000000..0522c46a41f4752866edbb5ec0dfcb9caaf5ae34 GIT binary patch literal 1144 zcmb7E&ui0A9M3GwZ7_5Q(+Pu+DX6SXUz(&%Xq{bO+7->5ZD9ow&62k@w8@LftL=({ zjP2mjt5>i7z_SN;=t2Jl4}wP#@yAI-m@i%1?Jx$0{CY3n&*$^~nI|jDg~^HY6AZ&l z7MEa&K4-#fY?R)+Uv|uJL9{9<<8{(9e8gleyoT7KV{D)jGOW$}A5fZMBCqXAl~nZ` zs)?PL5!%Gsjz`f9lU`_hhFM31T|*nTo8i8{eaEr3mEl$;J+6B>RI`^lJ}P&XD`ux| zDi*hJl})!*O5h-3ux+Q|25LLQ^>|hK9&Ym-+cP2c47cx8RbOFq*hj1sOGM2$0IV#> zfGEi_m}iAJ5coJfH6^q#~E4&q=XKfKaxMFY9C z1|b{}90pRYm_@OolFdN{3Lu%60MNumDCJWWO-U#|rwy=0Hz0;3%qDg|HCE`gSa(%4z-wETXCw$mthq`XCMO!(19nKJ445tvev}it^ zvH2IDM(BLrEy8T2{c-K@-rhpw<;a=H?Cy^@+dE^@*2h*JlufLz#Em#9CwIHv!RJX2OXfP4|j(lNbDDXB({>aX>504xGhPfb%#xJ?bpU?{ZZR# z+)9WDHm&18HDJAhwC%7-fF_Pe+YUph2r)4M2hfB-y8s6!Z9)U8mFFz!dYCF<`RhIZ zf4|@V)2AlJMtALeekVZ?yGjS7GJZZ6U5Ur>{n~FQ^k@;tlR?Fq4jP(=h=SovAyBfk z8B|7^u{ghmas(0o)T~Yhlj>`t?pP@;vPp%Oi_rv;8wy=bpG5(fLNlhFC;$BX3JFXj zPafh_T6K%4W*%7bP-SVXsxQszf#T&wb)30QH%-)>!0~I23yKvU>_24MhSTt0 zib{>Sai|jV%mrj9o@0Sl)k|1+wL1yR-WXU$x_}>Ym zuqRa1Wm~$gvxQqZdfl8Myx5#VWaFZFc*YiPTtABE^Y@ZesD?jIt#51$#XpYq#`j*m zed&1Dsbu2(&-&|MCayh}z4iB{>|gyoZyvuh{M3_Q&{vyXch0VT7MmaFx$@7--kkKq z^^xhsU1C1XZ^z~l2@I?O1i}6AB zei5v8|7w7v-Kt98-m$##^gF#H#5w+%mGy4$P2t^MFB$t~AGrMX=#gg!4=$IE+;ewV zZ{}aE^bHb~fBRSI+TjIw<7{(%^yP!Yhsix(T|P;D*b~3?(PCGB?fjYX;nQz)FTdXm kV>wUxvc61bwtFZGhWvXk zzwi5gfAd~#^2qS+CwFrkH(Z@Sb@tqsTn|0S?#nlq>|{ZWCY>VFv}=W!D>|fwLDjQn za2;FD{Hs6WF^)@p?KYaUX&%#U;$^JFCKG!BLv!5NcpO;vET*7^XI#I)|8?mK4_v3f zA6HD#49d9ePAr6YYGJZrFU;DS!;ilJ#$ufjc$ius_U8OZj|+T{S7-0Zw!nj)37swQ zcb#gQHBcrY21+KIwnYems%D_9s46@JBoRu2$WAp4WnEEqDF^xo&(uO^TCbx@UyH2@ ze4Elh7ldxNo9SjVB%BeTrfCU>B&C@}I-2*X6{r1ZbijacWQT4*UE+g;(Q1(nE%40K zyCHZ%-JNOEXp`KJ`pIHx6Jje6U`7POV_ZJdZESoa$-a%{k)P@<$P8($}nfhEN&wYk!C28W@N=2l=(i^`QHf>m?uKg zWm~##u*F(AdEJ~Lw%D9P?6abUY{vL^e)*Qo=Vw(^Y{b8{Zf|Uir!EXVo*KFO_r+5? zk7ggZ$eq2j-~0d!We?xFv3Ty`(@&*F<<<4Ye^VbVU3;tc6ZgfN!^?br?eiyI=Fk4H zYxG1Q9lr5?^Yx$4ynEzhalLx(#L9SjYVRv=@aWMO|NQXsuLmZMJ+{I%|7m@USxs&w-0{{VBVist|T literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_MobileAP_connected.png b/data/resource/icons/Connection/B03_MobileAP_connected.png index df606e92b8f38d189aed3f0f142b1e2bd0e34752..b113d4fdc6feed90f54d3d1d5d48074bf6203efc 100755 GIT binary patch literal 1575 zcmb7Edr%a09KQ*tQ6{V`Ed^~`GEuq5@7}j@I>+r@UbqN%M*I^LMjZ)QAh_Y9dRt}w+QGTjx+7-S_366QV6MiR4&)BEoyS4WtuQU;DxuT0J5F;c{$t*rDpF$iASx7l4 z(pR+X1eGR}#eGM+bH!X@KIY{Z1u5AmqD%;)WwNxn(GckkP$H5~71FF3?LX3pBDBwp zF4Pe!B4nlf^t@u8ausK~y~P2q$%oFJgQP_d{?v9zp2ks%W? zU`8J}l}ltHR*t6-okAn`ssKRrdIiwx^m>qrs8v9%RKZ&>2U<+0$J7R7_(Gu??<>HZ zxP4d)&djJ^6hoL&8Hq#`5siZ53zfiRGD#e2wH#W=g(6lYqjFYA9$~;K!OPPjk>*%L zVkGmquxLi1rw>A4LQcBSFAAgNtT3D`m^NjU3@L#^rR0Zfr1(Zq1o319!;D%BqLX^) z{A2kAcTtE^Iw^q*^IllRg5*b}o-8C84#$8IBp;w)742kDpoTUG0$Tu`r&%(HbKWpR zv7!Svqv0^^!|Xb(PKRqP7GPJ|U~NoVpu>$OLpm^OZ8(mP5IhQmS_&V;s?>Is1pp&3 zSOEYwZMqQx0B*AbqsD@3?ITzRD~KfPr6f@aOFzUKo`}V)JVlBe@8-DRNH=BqIgu0m zTnMqc^hnA=n)PuJVWw1S$PGiqDV|as_=Ze$6zvNRk$LvS*B3Mm#AjfZD!?UGa2se7n^QuEmMQ6RVkHB&?V0+o!d0VbIWiu?wQvXe;T)cZPVg_!|}2< z%kq*uJ-(|paQ?Z~2@`6CS4$RkwH)hkbJy(~=4^QHE_UMcm2A%P$>%$p zYtjtdV9tc=vA;8_h=Uy`FYKty-UO!K-?_2z^f!}2i`#GR+6Gn{25#W>7hE$ldNUPO zcec0A>h>g82ora1Xe(_GTO#LZ#;TdVzE7@+miG^q6LqabNA*EvZc)uu`9DXy4orAKLbdiU%po88{Ct#nN+Y47E=e_l^+ z_^sldEd_r>LQ@iBwp!1Yx``g+3qnrniQ-MZz`czbH*E70ubB2NsGC~Q{O*_R2QB~R zEW31ThfDm$gWZdD6aiP_@sf4@8S4)YXl~{=Z1D_sHq5wx`J|s)oqZv@VRPr!zq0FN riW&EAiKiOh7As44*2lGeCX18BIj{acrmCq^`gJ>OnRre5(pCQf_>fp1 literal 3606 zcmV+x4(aiUP)KLZ*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} z0009)NklP2OX`-?6k%gb(xogcz8JGS!$4O`f;9m5fUOXFx6|&yJn$vN z&`Y2>!HG7YHKtAt@E}0AJ&O?D4i1FGvhI*U^Z<`z;^8JR3S15$L@Ti5)E)74FlP=O z;v-NB)VT(%rDW|Ea1$svb_&32D?bS7C)B|n$LJDJbjn(QPi2OeZ$NKgCFZQ`M$n(I zT-@XQo-(G&m^dn_5YlE+(xTag zK${le4loOBJ9Xb%&g}>h9C7>jT%3dT2@bkSq|QQv4`u?fu{LIq&PrR|8Cq!@Nl+ z*#T<7qs>=I7o2vPu0Dz}EDbWY+afb_4}-Ap&| zp$xgd2J|20<`~N+ zijNh^6ctfmn>d$j>YUpY!J#;G!kEtCV{XZqI5jL$(a6*h=YEHP{$WgZxySGE{d_*( z*YDP6I?^XZL`5hRiV3z1!U?{S@-uccc(-(ydgO^ny2UJRu^6OyT4C~XIW%PRQ@OO0 zro2T3t#pb)G2#ox(F}j~1aEI+tOM@U6z9FvNI` z@I1_}vIi`*kI4w}bXLgW@`Um{1}~iY29zSqxWP!9H5*0vDr3&HuZRGd{QFi=G|-ej^^ zHF{KUK~a>{8c+jCnlOwsk%SJjXa=!1RuC!HL(8HvmU)8JJr|2xc$yM9-o z#7!ongn`7=22!Kaqgr?X>;2yeLx3lU++|O7-QW^vWqCMshQMU#6w)jx8V}A`D@$Bc zD27Mc2$M_t^~i-e87|Y*W4D*>*fn!yx2gHq>`!~4k^fp=Z4ak&@Y~S3QO-nZVsqWJ zzSs;Z{gF6!;wYr1EG?YY9M-SunV!9RE&njf(OJ@YJh?skLnYor-Mg_v|CQ!wXZw+~ zgei@GZ4ycv4%e?5xtxkl-&lJt_V$c4WNTpO>8-I#&H6jbZrsPE71I;5&-TVF*i{iN z)hXvKfY<%pDr}iwL?4QDUpil&Ff%{i-J;fgV2x>;TRJ*@_&1loo!Nt*Dn6N-{e9Nt znu@9aEPtsf`V70hbbxp%>IPM<3AD(;obmgs(Ym#rtp3)%?caMBt{A4kUasg2-PzhB|HW;jgV<+Y GwDLcXUsD7C literal 3628 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 literal 3664 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 literal 3696 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 diff --git a/data/resource/icons/Connection/B03_MobileAP_connected_05.png b/data/resource/icons/Connection/B03_MobileAP_connected_05.png index 21751d9c8f263aabe92f92079d65b27e80b8f463..0fe3b7b1a03ea6fdd0bb0f1e04a814832c7fc5bd 100755 GIT binary patch literal 1575 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 cEowrU;=TGm&Wbj!g#Z8m literal 3686 zcmV-s4w>KLZ*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} z000A#Nkldih$y8*lv0-H zk8H~5kBns#B}$1hN@>cbm}Xf@Q_5!Z^w0Orak@Xwy}dE%;ktM4&N=rv_k5r4_c>>t zB<3>aGsiLK2`y=S3vy<-lX0 zHbz&|z+JmO0&jqCKoKZd|0O_+Jx5^_SOI*_s^XHQ_c1enY{8x-j+RI|AZa{eyxu%Z zd^v{-S2|ZyLMAvM>6171<}3soB+YmObVlT{^^(q{sQaO$BN2obdwKLl7J?U?j#HA_ zBZv*=5XCi*XpK$0f(;=A3#P89PDM$5f2iCUNrz*?=~@!O1&(s-?fD1rz@E!MAFwn+ zUlk=!0`Gu2pae9Ug55p^;54uj*k!7(D0s8|e>O?Q9o~%ZTix}8dfeKU0u57Gm zKSsazTT|K+cLv5%T#BhrFa?d0o}`T35=XG&2Nx%#%2{APu+x^Nvh?SGVL-qHFax{= z?g8z#Y}oRz1-eu0TO=x#q~Bs83dezy_FM!`0egX(lo~KJvbv*c-*1O|Rh zE=I*6-mW>tTbjtpku`yUYOb5%S9j0JrDlfWhC?>3+dcm@mtJ+_&u zpf+KwAq$Z>6nwjNI$&1E92<2zrp*^;%s9ik+;i?zF=2%7-KGLa4yG(!8o@S6Yix{R zOYk>B2>OmDFOmp;H$pvDMki8)_}j_CQQLTD!AoEta5iAG{>Jj^O<*Cg2-uX=&p%oC z25bW!nmb9uti52&3GCegNx#NQ;|Q<{xN6lY=xpYtm8jVOg414-A5Cdrvio+MOcSu$ z-kIs}=oYZWF$Zy|1y0y=BhZo3zR`AkPn{JTN-_&+iMA~1brnS-NnK8QDO>g!4;6`z z5n!3wth9%NX$7 ziLoyGVtKF&=*~+p6g9w}3?9-I>458~|DRF+vjl$*0CsZmmU(#Cm;e9(07*qoM6N<$ Ef)1_S>Hq)$ diff --git a/data/resource/icons/Connection/B03_MobileAP_connected_07.png b/data/resource/icons/Connection/B03_MobileAP_connected_07.png index 9314ba2cbfb713b43d9f49ae33f03de8cd76f9b9..cf308f144958b633a7582e37af08ef9b4d3def4b 100755 GIT binary patch literal 1548 zcmb7EeNYr-96n+~6R1I9BxbaAMXgD0Z}0Z*xShM`j@>&pJ%sZn$Us~67FdtlJ$CoJ zr=P0BRKi9Sq28^wQ+b33d>>bznF-+C@kbq_PGquJUMZBzVOnH0cArqjLR5gR zU_C7DtEui{tr|^y6Xz|Ki`~m{MhIwW)kdoXf&i`2SaXyh&G=avDq|}+-Ug3+)e1wL z&juG6-8y$Lm#yUTA|ksolJ8|Ae#YX1bDn{$3JwSYtV}~npo*7p#RgCC;$W;UBQP{! zBKvLd9jA)j1yHUavXD`0$YOLT3Ykn=6f>Gk=u$|pL-mLb+@>rP!;L0fZ-yo>7^sQ9 za@<2WC$+%L23N{*5J!-3IIImDw1QZHpcaco<`$+^4?6a=LmdkW{X_fN4?aq2C!w*=mz6ZH zy#}WerKv<>vg7n)Kb=|d+TzRcNsaNlR;A?iBpuj$+tt$+i$#7To)|+LTK@j^%AV0Z z>;DSv_M|n;JGbEI_QrYDsXL9Ww;Ns2#*~4)#*gz|UH|56iZuPBEK;`E(w45%r7ot@ zE_<8bt(%kC)%;~~_jl{@vXJdtSK*1-y|HA=pgSf&+g5w)O)HLFeO@UYEdA8=!kf|e ze~easlW8KiXPiIi?=IQdnY#9fRBi28cCuYJUby6F4b%7Z+0zE$7hB47ZW$U$Mrk+g$|5H2Wx9a#+STvF>5)r`C*Jn+ZUVj zOYFtw>cO`bH3VB0^T)UJ&O9rZXO749x4qn8!?p*oOX#X&b!k_(o*!=Lp>AY^bsH0E zJ8hZEXZUJw^bHTqK?c$(=~{eiS%0TEf2%cPZUJ*nC(dpyRZ_lIM$o=zsr{!`)GPBb zYPXr`J6v=q(|#cqnXA0|T+@|~M`D!kl_S5;i_WOGXW&J#^S9P)jMJQ1dLjBn)aqCN N&lH(Y9Cf_3=|2QUJi7n@ literal 3645 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 P00000NkvXXu0mjfNX*ql diff --git a/data/resource/icons/Connection/B03_MobileAP_connected_08.png b/data/resource/icons/Connection/B03_MobileAP_connected_08.png index a2f0db502074f7b2ba9ed9c4bbe761a609542ae4..625d7defeb56125cd24fce5ae4801d6f413c8742 100755 GIT binary patch literal 1556 zcmb7EdrT8|9Pb<`67az^f=<01CIhs+UVDAq&4O*O)rv(dHR7U^qxXZ}Xz%LX)fU8= zxS&Cu3(n~t#zkO|Yzi#PoDl(aW{!<9Wj-b-6Catf2e7#;(`DK35YRsi$u9T!J-(mM z=ll9yWp2*W#Q53qDwQhHwT$+_Z;JB7O@!~W_bPnKM0VuMc|wsKVML&^vO*z1TtTK7 zcmTteZfpmORjOwjId8t4?_NRqgrJ5|Y&6ke2%=T0#aYo1<0}C&QV5DU-hvJ^x1k8f zTF^BHx7Ho913$N{OayslIbL5`iH~H_tW0Eal!637ATvlb7~mx;YC(s2DL7V^F%%g# zkxMM-Bd7A+xrkj50bs zqCB*7L<`O=s9%;t6oy425luv|5yWB)CrMJ_(CO6BLM@f@G80wvQtBuJ4J4n)g=9|P z5rvT{6vDCvg`PeNAsF&-#eP{DBj=@&WWlsyQ6_}p8Z9Oc+bHpkqTKHB5y9Y?wIqAM zW9OgBFL_Ht0P_Gz2#Y>g#iGBTPU=^KAKmx-XZa1|OI?wS;fEIk= zAmC*eZ9&6fj-{Li!eF2Ys}*-@9k4befg5NuX|myF!a>vYD8Z9JsHI^c)?hU|O@z&a zo9sA_I|!SNG?P|`p46I19ceX=VqLr>GrSKdq6(IKj5UsnrR*YLWI^-_LSVF;a{YoV zNPZ!N*z=4?+8T~$g@}}{lp1owP-!4?n*i$+g&;DVb&7k6zDaMVO|;o)bK)ik0poU< zahh}(bfiPCHQ@w0f@S}A!Z7FwrgYg8T{pS}TUi;7ogp|GJB5IUMHAr}yL;g7QkCkN zhc4Rcjdq{B+?>76I^z^G;3Rfdyqs1QS6O)2maz)mUOVl5dH;os3M6^fqNF276JvH) zyW>AwKcj16pc+jcoZ56gc6!aU+_kq#{z*Kz@Y8eO{1RB98$7+GV{>OmOBG&sdqaH} z`uqNxl$qu;nVs8~cUMKd%#4qZYyWQVZDf+)ZY?WMOt?`$IeXIHtm9Ra-odx-&wL@C zW4o?lTP}y487F!RR;hbpTYb;1z0D5IxlqB^dfz>Lvg{%{-)!mrGVay*m~+1JQ+x6@ zZRl^-uOC=opK>cr>Ro+f=JvsP!q9}Ns}D_17Z&vYMihQQ?8^D+s=njqtcKeybNi~i z@=nYj`C4AyDx8?!vnzW=`<4&a^}Ot7oaB)xDRFe|K}o(Ts%8oAw-=@bmNq zt#@-7e|_z>6fk?Cc^}tfU+GUBx*Gn-)-;(5FjK<$PG{$lGO~?-o#;EeQ;s`VvUgu= z_2DJL8v~j1Dz6vJi5@y%Gyey>;lWT`bN-o)pVWuCB`?cb#H9Y>=v*r4$30i>&0fFv zFJMchu3!H35cy*A9|;fE)iuy{M(%LU$=Cz6Q;)@#-!D(8zq90EdjG@CZw|Ny->XgP zZaLHR{FNPBZ!Jadloq#5S_$$R`aCU-m)^Sh)rKSJYn9j9W;Qn-8+xg>;C|M>&3sI< YD$RWLd+~!ie=7fJmm`O6uoZ0k5B7vSB>(^b literal 3678 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�SYWhx?t%N z?_(_XtkoCdGl993w!}1Mn1U8b)1JON(+Ea>uqk7y{0Zy>c3Wto(4PRF0|Gt*72qXs z2k5o1Vd38lT=v+vL_|BunB_tejsQbeE&{_qKTzk{1K!x6?mEwQrR-3Xz>_S)`rR{w z(JbEr+5@fT=@>bHtJON{4;giafi6>JeDtqO$sbI?jleb|a?+7q{5`l7 z6^D4cc8|#o6<->#J$^M0Ld9o=zIj*B=tFck#bTT zb3=?x_xXS@cVvVv1O=eg%B4TT8Q`dkcCg8VN0R!@BQ6Ha;DqhvJ$8WVP4Jma@VkTkGLvYrfyT*5;q`e_I=;8*j!!ZYG zs0WT(xdj;T)Q|S>IcFPP$joWaLR*&fG-powaqnLeAnCP}aJ&R~QWz&f*AbJPYG zf$O#!^aD>FH81JwR?)V(aZi4JsnJ$9lJ;dG1PykMDcf13Y>ws~@DR9f^)8uttpm9DIsgCw07*qoM6N<$f)ZZjUH||9 diff --git a/data/resource/icons/Connection/B03_MobileAP_connected_09.png b/data/resource/icons/Connection/B03_MobileAP_connected_09.png index 2a592a171dde11ec7c438a6180578a9be6048b1f..5260860eaa4d36058d439f33fb170a5aa438ffbe 100755 GIT binary patch literal 1555 zcmb7EeM}Q)9PYv-$TZOfVSZ$shs!KV+iS1a_H1RPcO4bVuRg=6_%Rg8jGrXidkE+shGdufdf)p! z&-44d&x?!Ro|-xtH+@SG`MDaqiTxEb-u3yJhfZoX0qQ39i|(tHI2Is8-= z<6ny~5ykAAhHma~c0MH7BIX4`jd^L;&RWMa7XMqR155f>j zTi_DCQ{xQSm})k^USQnyMIK*$jn72Gxr-rl7zYG?Mxvmwzm^m6umv9B#lgG0t%jiy z6RE}mKXuCMEQV~nz(9JHF2|=q5D3Fm2&%_0WFe&0AX>EsoLCNm;(83%8lcew25JIb ziMt5=iR0v)IGQYwHg%W^s1cP$EsWU6@r|LJ&WRCz|G2d% zxtM3pzmQ+_)CCx|ixK&t-~&~x%z930Vj@o zg7*de3@14V3mgoxG;Y_UdOd+!t%zMig4&o+L{At^hCIZGk_17F5j+nBS}Gb~F@nIX zD4K^DYzTsosEO2&cB4s8l3+`((T!mpoG4M8kC8=XEc*;=oe+!L1cs7$!Nc>lW8G9- z%}cyk%?BWx8-wPTupG^YM5SD6zzsqr7=c~Q&~}0MLnB$o*%#;=bT-037_mG%Vjxiv zH)%u&6RFplNS(%jpztV`{@)2x15ea)mp#{YV_Tq=<=62U0*mn}WH?YX0nFH?GwEQy zUwZ5yte)`2__^+aa%;%anqL9{jZr;V<{uW}1Ar$taL zd#7#jO+0JHa+}xl>*@&Kmv~*+`_OrVFt~RA))}uq3uoe%i$`alO-pI9$B(tR@4t1c zTeo~i>)hz7&5H)JPj8^&himR#{q(qQ?zLv(^4Ip-t#>*O*PUybIh<&Y$Fj^@noek< z*tdnzzsh=>`&N|q@A$o>XaDV9^NM)`kyfO5KF5hJ+;oszhyIypl2VScEw6`rO8TQ}!0xBD{L*dVaJe5$g{=juiD= zYCF|f6bp7&olyQ!pS(utE`i;h85h22yLafvPn0LyhJKjSc!pf_@!*if5w(|PcU+#m z{+Cs2?itq3b8QRV|M0FCyN2)SeNwuA=JH3cEK8_2K8aO4=*3idsrG;S5B?ofBq=EF U!dXu;+bI909b^%)CvRoLe|^?Hod5s; literal 3684 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 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_MobileAP_connected_11.png b/data/resource/icons/Connection/B03_MobileAP_connected_11.png new file mode 100755 index 0000000000000000000000000000000000000000..2d9eef447f7e95016385ff2f6bd32419631a166c GIT binary patch literal 1513 zcmb7EZA=qq9Is=(z^2ID60O~GD-31Q_O9+KmddT|f;BNAID%LGS9_)s|*k z3~JTzL78tr6v7h3eV8u{H|H=KB%8b_W?|?6$=q;(#ce8@O+M(JLyCSdCcE6r^YZ`w ze*d@UcIU5OJ3mF9B9qDHJJ%6z_+27B^X9;J=lBkvG!e-n(ZiLA5sC*g8_ksh#2KXg zzzrz6a&s5Rk;#%yFy11u$d!xxxS*PnY}C3`2}YHKsQhjaW9KMKP@gg||_K>2ZS**P4*&O9|C@ zx(s&{j%h78vnm6k7{WE0NF<_;=+qqV*I*WlMdHwERnS5uRI(x!Rk1>Pf`I^nk7q(6 z!?B3ONR@J7(W-==J_#Whax?ybD9n(v!gR7=+B8urq`}mvhM%&L;!B`ht`{SM!5M2o zbc3hPKbK$dR)&Da4FoRC`(PEz(w~ufv5;gq9Ru#7_;LWN=%6YDFty=w;d#(`hNUV9 z&KC{>R&)|pWjM^xxWk|~7zn-1hB;6Y*2bd8420QYT7#MOBtZ}ff@gtHOHD(p$?ian zT9X4a*)a?w^)|iTLYVEOO-mRF)Z$2Bova{ItPe<{5|(+2C0~fe?L44Fj`wn0MWUPX z1DwbS0WO5tJw{}CA;Z#KM97j#4Y^^c1mKx1fOha)5Shw4&OA?FXD3XA*|-LJPwHXZ zq!}YDq(N&Tb*Kr`E2pva|4x_&dZLlK?3u1hEWuWmhBIdfPG(LaU}4dCc*b4=Elo1n ztgBAK=8X=v4_scc-KLm(=gqdESl0gPfv)6Ro#_hm-Bk0J!=oJ=EqlM(wl5=N^N>Pe zwwTS!YepZWUQgOI+I-ulI{1C$kAM0XPxMZ-_Vh0+Z>W2Cc}O>bUa1^A;i=oxnikl; zyxms+=d(dM>6Nw$I_){+)kyR&oC4{Y$n6Z*)|XpYD(Ck7LI+|E$1j<4eEzOXVFq zy23V_N0X@W4X?+j?Q%u@t?olTz3xwH9AR7Mmfo%J+&bMMr*Bp_RHu!2>>FYu**~2+ zHrym9?*F>z;P_*HQWZN;wW@pH$`95KeY|I+ZZ<=|e~0ah7dJWU`^Yo#Ma?@ikDN?h zioWd6$ehb~zHX}hY?r<}LvcapD){DyU*2x1xz40aGS_x7LsiLv0{PAQ__yj^=Q7W> zz4BnexzT#${JqP=d literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_MobileAP_connected_12.png b/data/resource/icons/Connection/B03_MobileAP_connected_12.png new file mode 100755 index 0000000000000000000000000000000000000000..7973326f4310e562a623b97a059d3fd90c300a13 GIT binary patch literal 1520 zcmb7Edr%a09Nz>gKvF>_M6q?DP7!Wz?{@F8a0qvM7iS*c99JAF<#P9fTj6f6-90%l zD&?VOQ!0}))r12*hOvCnXpS(Y3DZ~_#F*ZsVie=ZXn{F8IX>#Q2;?6QGwtl-_xOH3 zpYQ9pTOCEuC&Z=3AqbLSD`cGTJ5PR|d>p=eMw&eGM6$T0V!lGEVFiE`c=>XG+Wc%K za01p_`|3%Miy%?^IhR{<+gH#Y-mhe38)euZglGiGT^0_qo+==r<)D%a7_rf=Z!nbe z8nF_}uCfQsz{eHV381*H$mOZ4@)*3>vOF|5OhW=ckXSVAuMUWG*ocku(r_#<;}|+_ zB2^i&2Tr-|4%EyG0Hu_gY>$c{P_0%;kd#(SWT9#mp~hA4)@BnVO=)Sh4xP9#s3v$T zXeVQx(1J4~=98o#jpH>nHOd-|k{2p*!eB7S9BOqow8$1~0}>m~4v6WK3=9xG0vD7x zK7h)MY&jp2j2QIvK?we!ldJSe;uLv6oJbZ-8y;qZIH6SG!nlnb-z3UzpB~}&Pg#qS z6a44=Bl$&FZ4ls2Ao3x>1FKk({*cu4LbBmR478mUssOB_m8}-R_=eq1uY}HX0k)dq zJt02`NH)fZg+iQ{wo)WTF=RmjVO3dRZ44wqF?xf}MCeHi!!VNs4+Ei=(hIRVi&bMX zm{o+%Ob~>HG*Jasi;ghq87rmHS=EzRTR@c9fCtE;GM1adnyk}eX|n)Wi5FZvUp?7P z4j(V^qK^-v=3*_nxP%LM`5JMFTx!S-LuG)#tp{GK!28khtkc}1^fhKi$LO`P2Nn{> zZP62q!9uAG7L7_rkk|y)`@a*0Lr-wI%O2{w$tBpz@^I=5!O7Gq1OZqy0iLn?H_o>r z$YbYhOo1!>OZQnL9$k>~#Mu1d;qHt=QpikBOja!J_p@hMO^z!9Zd9`wxp&_ z%iA1xupjY2d?|bgulh-aNziYWGZ0O3laq9e!`?foq@6&J1xUhO= zX!gdZ3xDGObQljVZkVHQ{NnDyQhN8B!fNB;==w4AUT<1YL&lQEXK#P$jvi8+eEV+M zimRbGf2fx&`|xnqf@4cQS!8Z`C4O)JQ!%UFe>pP0^*AOBN)V|&~_q`IryS#muC$;?Anxw3TsAr_In`65&g)4PY zOOrmnbL(ctp5)O3`Tx9d#eHa9!qJfhyo<`dkyckxQQCKT=;ySAukwxa`wT}K)Au%M z{RiSd@1Lc}_`Zd#`oWQ4Bd&tPTfgpT?l@8T*Y=W?7g9DaTt%&mXxGk7Esb&JoIRme zd=_a=HOGItt4F$bHB!IjOw{^o2RFAKPjKZY=isl6Udj>&I$x|lo^*QKScm}m)aGyvVP7{DYChh*&c6YiI?;tn_q^FVG0lgSeb#tfl^+g!X{*fmjYvD8AIS1 z6S>5MJaMYPl>=J^k%hHrmddNfaagBAaYC!p;V;1&HLk(b;MS>dg3{_JjUJx85TGXd ziYPa2pVb006XKWUAcbL}PzViWp@LY9;Uq~a92$)ZSg525US`57UP_%~pjpW)azU9B zcvxX%3WYM+gaA*Ugb)b2xnjR8&6D%eY_dSwurL$Ea8!+nGd4eo++gT zZ&`rlWhZSy%E~w&W!Dl~ElrrsxLs`nwIK;yOB+bN1vd~jnx^Ln76O45>H}Bns+VT|0+$@{-K(URDuRu-sFuVNon)6$8hO0G`P@#XUn`pJk=>v_WUF<9Ztb z;>-*mc!+ZHEksc<5f(1FuMCr&+h)XBdhV2SCB?;O5xC#s|uo)e?8tke%ti==)j*FPj5Ro zvB}d=m$&=dl@GC2?_hiUc$*})zRfjF4jykhT6rOQa>D;bR7%^_TYE|juf6FXj(BkP z`S*hM7V&T%o4kL0#*xaVn#k~p^>?S6jJ~_|Ya0f(d}@!ox$267T;F+eZ}E84EpyV3j>+{Eg{k^wMPF$ra9?Uk*mO3M(&fGV4=g?>k4| m`K;!4W?x#ugF}-YLc}s?sCdoL9^*Yx`3pO3*>s0xXZ3#yGb4lm literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_MobileAP_connected_14.png b/data/resource/icons/Connection/B03_MobileAP_connected_14.png new file mode 100755 index 0000000000000000000000000000000000000000..f2652d0b004e39db3788f260c41510f767bc09fc GIT binary patch literal 1521 zcmb7EdrT8|96y6)jK@S|LySw#W2^$B*DHOVEl_(c)U42zZZKn9kKO@ixn8+DXhDet z0|8lJ8_G070=h?{!%fU)+#o~8L}oGt*+$G3S$J%0Yz~)26JxgDAs~Mkl3nicdwf5i z&-eAaW@lbbOyrhG2!dklxr7UR6Qw629K46-8obg(v=)g4T!|PYc^WcPTrmyXS+bON z(Iiz}F+v+5DC}d#T_hGcUdFu~s~{yCMTiXmGz1y5LIKk2qeZxwE@k{C84L!AL#0Xw7U@E@UnE26ej#a@fuIF1&jdt< z^TQG&SC9s z(T|;fBER6S4$!EJ7Pv~@3#wR>v`T7iA<1wl2HZjNJ{nZfMwSco;)cV4=L6>%KUq$2 z-b$ACi*~|YD~)W)F3G=$!u+llGbR)Qdw304DvmVyFUeFmXd zW$d(JItzwjR<&MdG3zZDp(4y+#b8;++Wmq^`n|LyDq)$&SnHZt+``kO$nkEDD_`y= zXBj7QLKzo;Ed^S5dm-bexS)_Cl^Sq^Pzjo6s%Xl_b1b}=b)0#EzAnQ;=m@=5^4_Wj zaa;8mVX$gc25W{=hpCYzEcL$=h5}DesmoS%-SQG>Wofu_hQMUy6w-cBG#;F>nQNXl z2wFE`C(Q29t^ST3C}EBt4!-r%M>+LG(izvbS1M$(XWz*F^yH=(pVd4bd9(>e#FI{E zN_=EZ5v8|p(S}LYvkg{JoV>%S6b)vy94`6W;>4y-x@dnV!Zo?`ZROT}s^`PpgwvsIDKB z3#T0)xC`UTQMO5WV<(fuvM{ujO35Ksq#dR$EUQeKNfyrY+{GA zC#vu;K0O%Sw2Q5{5oNnNsr+@@z>lRJSE3TXGi;nWCTo4qC-V);ZjUQoyPw^-XCK#b zML&Kgw-PB?kaf%*G}N}d&ems+jkKRWrMms0={($9{`7&+=wIP#`@){}x=Hu(p60v& zq#caa%j5dmweLq;bBo7PZ%)ScJDWZa!`trn4z;J;$bU8I@@FwGX17pv4>r%@^1XRt z-&4QUMlZlM+@|K3s#&3NZ~cB}%)VsP&8`c(2c|JrpIUV(ZKfgd^4E@^$NmU)=^G~= z)FyNqIL}z%p9A%0oQ0=mQu?2{)zUB=f42Kx^Y2rHyoa;t<}=S-oa*gTw#eVUx4XIC iccTCNzoFp62qhG{nlK6_fB%*A6SiCPh_gFA_5T5W_#0&a literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_MobileAP_connected_15.png b/data/resource/icons/Connection/B03_MobileAP_connected_15.png new file mode 100755 index 0000000000000000000000000000000000000000..206afc5889ec2173ef2dca4823656ab8ae3880cb GIT binary patch literal 1520 zcmb7EdrT8|952p^5^-+x1?qM=VajHE{q=Ee4~lDhEmSRH+l?m6=8pC!J^HwMceRDF z;XuU4G>U?AzR);^nNzbUagm7;oC2G3XcRSO!7%qA!!b?F5|-?DyyOpKvU~o1zx#eZ zpYQ8;oAUE=l9N)CWHMQ@J(qT(cZzgRo`jxlzgKysiD>nRE^f6LV|XYt`M5%e*+Wbb zbV9~gvZfto$z;!+VBH?k<5*64xsZa9Y!vZO1fgZJtR?XX;|)L&D}+UC*oZ$k+k#`P z&xjXj9ZE;U0{v`mDGyzxd2VlMz-#c~OR}-7IE4s8P-L)pC>R!~xDg-XrO;SfCU9)X zL<|`5VW&Kfe9Xe}5YsBua<38qj3gC6qa{hO7*i>Micq49lmiW=B`K8-8#!>K#`{)N zPTDr2g=R+FFNzV0AY!qYBBoYwd=UW*27|<*Qpu5pTqp^POk5ro7K}2`Q1J3>L}a-z zCNVOFTvRmT$kX8vLJ=oh6;^QQnKHxO%}jsb>pGh9fah4u%gvR7D#T6yVSYhl5&yoM*#KkmkJ6 z5DbfU+K5M^tdFv3HCipLF`0l(X+^a$Xn>a18+2x%*H~$q9witLL|O_T!sauZNH@bvcSsIS*Av77=g)oeY#-lyfKe+6$OqOud zPMh5E+s!wO#6;7a#J}eDDt=8j9p2$Oy1h|vGF_aVzyCM7)v$8&Thaq|8}Gu%m4 zW}I&8OFUDtY~${>Sv9RY1`hV#>IHlD-u)$BvufY1{U!H9MFqJTmh$=O3H@8&G}1jY zyB^)lyq>$bgPE}nTiBAbtz&0C6S!1Y|LQBBx16b_x2Ih^xww4RGHftyPi@PVly4n} z{yaW0=-a88{aECkN>-BY0FzDZXBxah<{P+-}|6Tt-fSyl5zdPGc!}W%dWJ}oEI>jVylgw z$^?BnIB>*zXG8H)Jh&^PyL#bghw~1$TmG@#`)=Z+uH!4OHBIqeZA;yLn=^hADBL{1 zQTr%AwPsGvy=?lAgv@qf!+}=0+pK+K_PHOqIsgr?H}&kfVf8e0K3sSGVBFP~?7IKW zYlGjHe7vT!{^yielFJhve;u?w*r40 mNT0gfl)b5~ye#(N6s7FS3n^VcMd=CBKiF=~qmP^4ulNr-b|TXN literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_MobileAP_connected_16.png b/data/resource/icons/Connection/B03_MobileAP_connected_16.png new file mode 100755 index 0000000000000000000000000000000000000000..5f8208faad3ab298d3c04b0655a43dbed9653859 GIT binary patch literal 1521 zcmb7EdrT8|9IpeFS2sm5if%hk6y0pEzrOEAHKo_m5(~8uU|Oh=NywnLNeku0ol|ji)b`)!v`+H%;NUPh7UAOG-lbzhWi}?@`oYWV4 zxx$7%cdEeaLma$FBPOju6VL&Gn9W*XG?~p{Euz-}J*I=VSp$rO$xP@i$i#(0H8EI9 z_(|7<7M$78a#(i)9$Vaa`fh>ow3qBUN!S7140gib)2NmI5Lp$PCXR z3L~|d56LzZdip#BR`4@r<+3zI&Pfx=f@#Adlz;)P4im?1l=vo5Uhm8ZmYuSeWIz4F z`Iqubxm5y<`Duv{i2+!}(iPLBW)@NmCt@JHlvqK-D!Qmji5}nZdWmf4Ji}3yBp(Q| zG$(sV8yX5RLBeG+noOk8ZU-)%6V?Vd0uyP)E$P5&bdn@FNiZDC6*aRFKpRj|wptbRr;;Sgy`=EYo|ubk{AUpX)H zQaLXmjvO2aq)X8}fZ0vr6_3B#Z#n9^m_x^8j_wz4vuIzwwJB_$@Mu5SP9m7@y|ms?ZgTJze;==nz$?Anoe z#OL1G5cyY?FT_4>x|uFo^<(?fn$uQwch~$8X)6Bwm%~+e*s?tL8prn6SK?_!aq4+> z7WehyXFgk3do8fmfA!CjcTcy}W)|5_L`RLJd~`ADg5>chy!|BHm4LdN@I%Fy?}y^p z&_ybz`NY~~=kT`Wj{U{2J?xKl79QGm)9mf}Y$#)}b>ZIhZ?FBD9~KEt>OZ-bv=_T;`T|L7iF{&k`kX4pQ^3 zx<5{320l5G+~gnZOIg-yP;bod9a`Seatg$L_|29Zo$NWQu{*Bq&*qFv6{|!j-<5pvM$Nt1x9mwbIv=1TV^{R6G({I*?dk7{=@b6u_Khy(_k2oS`rz)) zM|g*h8h$!=(`drplD3Ea#~+@r=wBq93a-1`nA4E5Ej3`@A36LutGDssd%N@YbsW%b ky8XnHGWPqK2Sv5BRBC$ZwVx3GsPYr`IJ3xO=_Nb<1LB7uHUIzs literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_MobileAP_connected_17.png b/data/resource/icons/Connection/B03_MobileAP_connected_17.png new file mode 100755 index 0000000000000000000000000000000000000000..0e447914f764ececa9ec156478a867694f2efa88 GIT binary patch literal 1514 zcmb7EZA=qq9Itb{3JD`Bz92hK5Eh~BU0?5{!?t(TIto}iWs@OC`_SH?cjfLniW--h zOkr^h*dp5p5`h_6jLyxtIP50Fw~-Ksi(^8@CX-AQGgL6{!xHx#Qsjdn+2vlIm;dkg z`@cQcP*kuvF@9CNLZL{sZ=syai6ykE)4Hp-Ac0MQCXZeA$BxT}DKQ~)o_nb65|=TU_9 zn9vr64UDRdMq2k)flc)!&{$&X-S=)#0|*og+evK zQ%O20+pHFxnNXi31xS^uwzgJTt5NcTSA`J-A#>n(4z$P->o|!C<#6J<2m=K~x4;G@ zmgf+ek*VN=k_m;LJ`KSiaI#*XB+ij@;%u^D+EgJXpu&`Dl`vx?#}`3491A1-{yA$= za)M{hKbK#0)dhgc2}C|9xM3A5*Ugh!SV%UUje&G9LKT2jv@z8pnAvbR$U^8m%Q4jy z?+*F_C)p_z8Vs@?(x%hubd=U?#%yXD)`rkxI?6~GESOPCQxp{;m=ANnFgT_i3D5KtD!wj?* z#!VYBilB8kL2J|oOpDH9J^wplD(Hzy?y`AZ7g>U>EDz_-5S+}NLcqbI3Gj?f6sO!! zC>C9_Q)X9aI6P=ly=Yz$bAR=i@^*%~qq+EtrY@t|d?}@!t$hlkgecygJ(pLAE-`iSq)%xz5WsCm) zaFd1_U5rmptm(*%{zV;ktbFRmw`I&xo!Oi5an>zdW{mSw8@T2`n_wKGQ%YS(KdPhS3rnW18*8hfJWpIrY#q)R@qR}_(uI}w}+X<+5fapbR7K1)lC1o z^C(`^Jz3&F-+YjGeENJ#BYpg5^`_fnHr)W8cf?z1zdIDam+Tx}>TA9%uH;7Z*><}j zwRicUo~VXCJNXI7I*^V&!lO3d-)g-+p{e`vL}o#M4{~A^R=rUj<#$Gv65FjCGrMmb zw6$&*T5pA)T(zdBof2D3)A4CXmfua>lQVUC$+3i;m(s%5!fNZp853rD&|Sa!z=knh zDf&AztWMn(cx&J|c2gOSYrB-t`p4sj*FQ)v<1e?Yui0}Yrl9wQy~)I`4b0g%eDYr2 d_viLStxybZe`!$Dcx6ET``YOO>ZGN7|9=~S8(IJW literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_MobileAP_connected_18.png b/data/resource/icons/Connection/B03_MobileAP_connected_18.png new file mode 100755 index 0000000000000000000000000000000000000000..596905ee0fbb0efa44bbd7324f67a856c3a7de6c GIT binary patch literal 1519 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 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_connection_1x.png b/data/resource/icons/Connection/B03_connection_1x.png index 222a342ecf17bf22ed2af156d2cd9325b1f0254e..a2aa2780aecbc8008ba230850a0bfdf6ffb5ffe3 100755 GIT binary patch literal 1248 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 diff --git a/data/resource/icons/Connection/B03_connection_3G+.png b/data/resource/icons/Connection/B03_connection_3G+.png index eb18fb8cf65231201015adc71c62eeb9b2247141..77cabfd3846589f5f57e9e90eab0fee101f2b4bc 100755 GIT binary patch literal 1164 zcmb7EO=#0l91m>j98Lr;x{HrYP+?8_+9Ykm>S&W@E0}J!#SL|^EO~3gmb{p}uHBBp z(49oZ+mxL=`2o93CNd907lOh>EBe&-0~Qw;jg7@bdCL{=eV+qOoK~scGrP(c`M)hH!U>^aIi$}~T zgg}xwD2S2-dqFG;V|dYr?4 zg@>tBD&&a8B2*$0%(}#AMBJdK#h{|V^lgvW*aab@F@b9&%~DIZTyVUiU8#~_hujUe zgGIx}Hw=%5T$J~lGNFGhl&&9)aGV|KfE3ZL@%!=zMq<9=AsO?)=>%RlWQ%m@;%Jx)U>xh zy4mSM&KFO^x?uva6Gw~Dpve;Tl;tgwhwH+RmU#R uAHfCige&;V_wPPkzXfu|vvi!g!?ZD9uU`8*zwu@{{6FM#1@&2W{N_K<9d)Vz literal 3416 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 literal 3161 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 diff --git a/data/resource/icons/Connection/B03_connection_4G.png b/data/resource/icons/Connection/B03_connection_4G.png index 17010eb3ee2f62f5f77ac4075fd153cbdf81eb82..e15a7e53a25144bd16f405b05cd4df59617ebb38 100755 GIT binary patch literal 1158 zcmb7EKTOn69IjCb0U3;8&;;{R1|@p!y}P#8s~lL`o?Ntm$3<{3v9u4af%et*op%r& zG&&d;6T@g&+%&Qn6XPHQiY87vs00@W5{wCptBJ429WW3QoBn&Rzwi5gfBRr$=t4)^ zi8h8|Itqh&kv@;dS8EHsFK^tp;{`Fs$ta#ARVze{>fi|k3Z6BEipX+iZ+t|(40CYN zEsc|L^O9m?kF#PMuI2?4%`m^1 zPC^JIiGzYDN$@O4C1HwB(o;%6K@lY-l>v=|rD~xwsTB2mLyN9*Y?+Wi;rVK{%2m@G z4ySmS&1PecR4PF&649(rtXjg4x|<9-itNx0h>Lv?Gg=e4LUJtibSnfeD7sT+5^a4-{s_<8wvI>X@%2>RxxkQM5zA3G?iiMyz5&tI<_kw@<~C@v6YJJD0xv3MO{!;m`@tCHdz6R zx}41nKv^(!U2hWX22w4~p;%2-4MP+pNt87R4M7%-l$tg~O_wvtlqff`1wSH|Z=+Z= z#=1LLabK*Wg~%c}EMYv;?52@2CO9hN0BEBUI6db24z5N$aj7Xc4OK^>dlNbN5PP7W zb;aF7UxuMsV98gWxKkrxkXz!e%+oS zy4apVW4HS_eO93rgYK z?KN)s*sYb#{Hd=ktM}TOcBVN0sZTrfbK>DE-DGLaL=GBt(;k6zA;z-thd5n@t>h!4CyZhuHXF!h52$l literal 3194 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 diff --git a/data/resource/icons/Connection/B03_connection_C.png b/data/resource/icons/Connection/B03_connection_C.png new file mode 100755 index 0000000000000000000000000000000000000000..af7e86836d1ed701ac73c298f197874e70d1617a GIT binary patch literal 1231 zcmb7ETWAzl7@lIZHddP2(#8mS7zHD^J9Bm}yE|kJvpc)ZLMDdILSjM4WaeyklFXdR z%vpC6`jFZx5iE5DOZCNy_~->6e6h5(h`98nR1qxVgS8JW6dPI!UO>;RyD<+E=rD8U z{Ad2}`|opPc<7^zojsil!)(kCXa)M-96syU(e?Tths;nQ*)cMLOQdS}h*2#(fk56d zCQ$(y*4%6Z^)bwvi*|90jOl}liJhns>O^afN6`$^*I)Ata~csafhKJ?#Xh?FJqv6r z#g0lkuX`C(wg={YG%`O_H0P(yq{a5{0ev-v5;%w$pytfDfl^DcOtd-j-zq5uE!VO| zr4(Bx#8Wt~TCGN_LKORx984yYAxA70p&F53&Lu`I;s)E>3>ped-}Z=&T@W%F6SzWB zEcNtd2#!~Ax;+%)L z0t#@&H)$11+gF%c-B765ib2s0e;Uy$=8TyDH9zROvX?qGa`fDQQNg}HP{uF znsU=nHRRg|kd^bX1DaV^?AO>&hzT_kMGThVpxBihR0c6o-VusnsxrA71UjNQ5Q%Og6USMr)#to=Ii?D_NlHRs>h@Yd9c zg~a=d`;T4!k6GH+`^A=pPtqMjPruyu`GZ?~kFGs4aQLrW?C0*O$Ajrom)Y3AV?+1N zYl9sRu66f(2riwvx46?f0yaI}dVcqrPGB|m?KseT_e$5hvqHTv+VjDjnJ)30>c6Q= zm$#f+KRz40v&&d`cw*_s=6YkeYw@T0apCQ6KYMcf>%!^re@;U2yZi5*{j|Py?Za;d nemwit(T`(O4exRX_<{NJ_j7;0dH2%4;V&ki9nvnO#}B>$ke8Mz literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_connection_E.png b/data/resource/icons/Connection/B03_connection_E.png new file mode 100755 index 0000000000000000000000000000000000000000..5b8f2976aef4783c39f8d9f8625457681d5d16fc GIT binary patch literal 1118 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 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_connection_GPRS.png b/data/resource/icons/Connection/B03_connection_GPRS.png index 977a5c40f4996734d5a712863c2b530c8fdc04fc..cad407da36c7db2396a5af39287979202f2fbb80 100755 GIT binary patch literal 1146 zcmb7E&ui0A9FGiS3)gg>?}Je7zx8yP{kQr2vBih zyksrRSs9xh83scQnG(2&n4sZSy-;ps*(R?{-=l4g1x*t&mu0t|nldJUf&&DEcq(Qk zAOxZqhrA$)@H9v!V3JGFQ;b1g7DPFj2CajoYJoi?7gW8aMORt2LWnPOT)ke8*HdvE z%yKZ3$wVBv>8+sT7lye2YVo5G|RX~vMlvCDX%ofQMj6Kb2-odchopdZoZpi_EY16fE1(e90*h90W?+}p{z8#q zD+bvxgE>U2sGHRgH9r`Je1SUecxF|_R?S5o$*WnmRw7kEKX`CJa_360h!!$U!p zGU-t$@tUftZGzoEsui~>Hld`ogbGzrkW>gYKBM!Jl;UAZfl5kGX4=@i7ZTI6P$U{* zogJ*QFIH9pWD*>dFs`<{X`+G&4lCFPN>K!Zla6QOdUz@-HRYzEswi--AzKfy3z}J% zojvp=DCI^|f-a>+LE|BmAg|{XjpvhMDh1Ob+rrxaoiL7i!bM%StLxfZw3VaR&J58- zX9|%=ix$usgU=pmbUw|znkzNFZa&QQFtEGJSpU1adHLSSV?7(oYsHK2UtHH_-hF#n zeyW2%(j@MCTlr01JvgwYU11&%f9n5o>B+~>gR#E5%b>Ej!r%W{ULr-Z@%=cyed6Yk dE&0cxX=dy7;WKBKZp}x3gS~ literal 3438 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 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_connection_HS.png b/data/resource/icons/Connection/B03_connection_HS.png new file mode 100755 index 0000000000000000000000000000000000000000..4715279a78c91b70fff1965aee377bd6c3e07012 GIT binary patch literal 1131 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 literal 3086 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 diff --git a/data/resource/icons/Connection/B03_connection_UPload.png b/data/resource/icons/Connection/B03_connection_UPload.png new file mode 100755 index 0000000000000000000000000000000000000000..48f48068d47539335149f8b6497b8a31f23fdfc0 GIT binary patch literal 1254 zcmb7EUx?du98Y)bJkE{59E=?de`MaAa7~&tNt1Bxwb!&>(VS!`)Qubf5_CMW0m0`QV&;Q5m=)d2p~HgMr|~fj%hu;;Rqk&R@E=-orRB z`+Yy3@Bdt0n1BA@_{2CxQ3p$NTA6&0MbFqMd53?#ZAJnvRPiEO!Y#vxRL(**2uhBz z49n24)?U90rzvXWE4xy~RsBWPL=Iy_I!xQ~2%4g%XWE`&u0RZGaM^a#^xwB`)4;aU z^jT3)=w2Sy?YVUyF0Rj4%=HyhvFMo$m~N|tz=7BRZKvS|YCBE$cvZ5FwpkkVRPaig ze&keDUjTXJLm)EAxS8NMAV~}-h?2xj0Y1U;Y=YcUoD)=0Qu!3 zDNWZg_EeT_wOULo$sm83o^#ayFou$ByDWl@K}yXuzpV`if@3@^}P{}Gt>@n8UE+|WBG&1ng`i3 z3{cZINfnn)>@u~tp-8bGgQ^?;3M5r58jS$<4s>08i8yb&Mngkp(}6B7X=%FIv@NwL z3Zke9xg1wa6i96pffF@ZNzHPyP|!4OK(HG~Y%vzW=J=wfq=bYd$|;U32r?(gIcZid z%<^KM7lzo98(_mVVPrJI+CyxzxF=T4`_RD1uOQSIbkjl|VHDJn2l9&&ICa)`Ez}C0 zi%LznNvIn1?Nw+MedK^%)>Zp4_C+a~O!A5>3zAq6IF9&U%;gJ$z>@MEu%XW3$V2iYJv>eV55r$I;T~aik%-FTRK6rx6=lznFtF(Wqb$51VM!t+aHFEsU z=HzErubku0-`$)PZiZtW6#F`pDO}MWKKlh|X1j+ve}Kzx9@u&^{2|+&=)7|ApTpl} zjPTPlM?0;2oQk~+wnjqr;W!i9JfuAcbKMKssm}F{{qGx%x$iH=R>AgYSXOIqvs!>Q%_sJo&no$eg6B= z34QhO)k`OTI-c#m`^mj<&bsy9vChtiADgj#2dG!~G2e_$eoOvI6jdtBYu9IAyYw&2 ClbX8# literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_connection_USB.png b/data/resource/icons/Connection/B03_connection_USB.png deleted file mode 100755 index 0dc9cc1ae416d37bebdd16bff9cd76af99eda973..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3377 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 diff --git a/data/resource/icons/Connection/B03_connection_Wifi_02.png b/data/resource/icons/Connection/B03_connection_Wifi_02.png index 4b3a6af77d6c49e9e62e22ef863c5a54a478d84a..94bce586ac9d9650593b732654686520b3c834e5 100755 GIT binary patch literal 1541 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~%1|*NXY)uAnN?apKg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+AuIMug?sLD2ed(u}aR*)k_4a(W}TU0P1F7u(7WwNKDR7Em25H zP0!4;ReHaBzmh^`img((sjq==fpcm`rbks#YH*cbNODznvSo^ry`6$hg%!|%+|-gp zg^Jvqyke^gTP3i$RzNmLSYJs2tfVB{Rte&$2;Tq&=lr5n1yem^-DCqpLj^N4Jwp>y zGc!XS1tSAPBYguPGSf9Qu`)HYGBQ_y0wthrMJZ`kK`w4kyMR1frHqo20xNy}^73-M za$~*xqI7*jOG`_T8Ae9BKoz>hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83mzLNn z0bL65LT*7&W_m_RG2HOHVrXCigH698u|VHY&p^KjtOn#im@Z#m{5o=T;i`*Ef>IHV z$7+6YNM%8)eo$(0erZuMFc#C4k*vaR5lA7_4_3a3McJvqSaeIwDNY4T`1)G;10A24 zmzd*{pIn-onpfiKVyjeInwetdW@=(;>SE&PXy|6(3XB^|6GKxM3rlk+LkkmE7Z(?p z0mvGGcIl-6^_n=j7#SNHnwq&fyBZq0g1C;(CeAJv=1xW?j+Q1cy`Fi+C5d^-sUS;1 zdNUDvP4McqaxO|uEXgkl$G8yO;A(=%?5ha zCABECEH%ZgC_h&L9O_n?SnPLnbTx2tbuo5!Hgk0~F*I~^GBa?turPLVG;%aGbg@)| z>P;az!1RGG(Fdh6q*MnJ0w!e;6P|~F9C$8F%>zbS5ipP0v8jnMFfhLHba4!+xb@^( zythc8#PN@Fub$Dl>ow)frT`5`Zc%O~SCOf4t$P{t_q=6webD-#H@1c4UWu@_)+~+I znSn|53ZMLUuD$%d@&19#S#t|p-X3GOdvoZF<@w5a#eJ)v|E^nhXX4pE?I-3v_`5mt zc&M7q`Gvf`E8Mq!&XJG*D44%7I!kE%k$EPIrNe`DelS1VICshun_mUWX-3iyj@oQr z757L%>trcUTU5}I>OF`1qJlzZ>p$SidlZ#1U+18X-A>QE#rG>ea%e{sgoU(9ss3oS z-J2fRt+&NG^j6Zd4{9EtJeD7OBpvs{czNTseccPU-B6jovC&j!QQ+MZFJ)K%$((RR zP4eQiv#S=xm8g8N?_l~AaZHluwTs>6%g^6=%GNy)l3VpWPiCbn>)U8wmreQ=>mKLo z{*f!)m2)-O@3oHE)jr*=8XZ}87na>!sF3sM= O!R+bk=d#Wzp$P!N6+5E< literal 3534 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 IM6N<$g3Jn(MgRZ+ diff --git a/data/resource/icons/Connection/B03_connection_Wifi_03.png b/data/resource/icons/Connection/B03_connection_Wifi_03.png index 9b41ab6eb56ee4d1ae2e1f4324d51bac2664e273..7249778b2af89a17b4d0203fb2fa888129897d30 100755 GIT binary patch literal 1532 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 diff --git a/data/resource/icons/Connection/B03_connection_download.png b/data/resource/icons/Connection/B03_connection_download.png new file mode 100755 index 0000000000000000000000000000000000000000..25802b0ca53fa85e6a976add3160318f1af1a89c GIT binary patch literal 1251 zcmb7EZD`zN98WzvWOHLW5H=}`>E;XFCHLf#++FC|W|zcXHMP4Q><|TW$#cEfCQnSB z+g*!byHUKMgZV{7KZy(~=r#v};>L>ZgBAUv1y5lp(;xWS=N4DHxi z=BQ{S3_k~}&e(har{*V$*8Gf>v6+!4>EVV<2waFwy5Y`xq1?za9bTENqiv3%J1Tf4 z%iMOVWK7aI6hK;JlW{8n04+%@5JX7=hiE|dcQ1xm3+#$qQ1z}Y zB4wE>#=gvP^?IGHCs`Csb0Cw+L>xRHCmQi^&ckLS?uCOr1{H=@;P}`<9vv~7WmLmi zhIo2A1lKP((^VX9kb7Y_StM;-!}K}8Cb*!Z6UEm<8OGKK*WJ(#aRJ_O{;vFCan6Ta z0fwj+Sfq-T!A+*NHWVp#V~`Cqn1Q5HcHvBla1o5|_PT!K$aVmbwYCS=5Rdm%PG3r0pGtaAsO+7c`00%&3s6cL*3b<<=OVH8%8Pv@p2`thTVXQO)f zL{w_RO+r;+;2eXt9w3+QWL8i?ZVUlQegSJ_NhmA@vR-r_G0Vd=90g6WlTM@^x?t- z<0tO_yRW?Kz-RkMFZMToJ~H@e>wIa2x_;uykNH1OQft@0Vq@)JxZSTF|LgnHzg6Dc z_t>@3S9ZMqgK~3d^c(He+CL9AuP&|+zOz0=AG_xoS{wi3_r+GMd3m(Gf1%aiyg`4^ zeog;%OkPPpvM{i)F7AGJ&wCFIRSsOZ+CL6PR=@q2>f1(rGJv_~&+@0E-%eheP|qHI G@%Vr4ZlOs4 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_connection_download_3G.png b/data/resource/icons/Connection/B03_connection_download_3G.png new file mode 100755 index 0000000000000000000000000000000000000000..01aa2c482473055fc240df2a7cda953acb0f4100 GIT binary patch literal 1205 zcmb7EO>EOv9QVdRkWn^PM%F8a97eu6tPOU_G@EO`?>Z@ zWURpgM+X?72O;Hf~_|TMtj$$%5)rbdt={wiRMdbI1$^RnMBk zHEcOc3qRr!j$3!dtxwS@^MGm-Pp}djA@%}>=D3m3II!#{reFroxqgX%eB&k$T&Khz zlFf`6RB*!`TMqH$@_5}|ZrVkMAKe2+VwDkim|7tA=KV;GOMHh{W$($h$b*gvZI<|F zPEDB;ph7|nWFeQfGY|qr5uhY13fv8{8JHC_>{QZFQe{QW=0W%1nOf+~sx@SEwb-h} zHz*BMQEa!{LOUmra8889Vlm;!X4A|f9WD9Piqn2H)MG$6vO_nZF7ZLaXw8roE%D6L zXCZh&&7Et|s88-k-DI(}iLn)kP{@d3$0mudhceBz5uVq#j%W=(cm9R^QGF@EVhu;6 z722$dvqP(-))q<(yD_My6*e)eqG8QPxbwj@)eo8Tu5ZmFVz)f((<&D?VWo`9g>pub3kX78(#o<{G%|8UhI$TV zD?M!0kErF_I1x>-ZXc@|Yhu+(h%HLOIwAADZklKiN}>h{KxI+^yAHX&L)y`BQfkJ{ zLPa=q7qMf6!~>nItL_W*3$UP-bFxv$E3z&@Sb&nDRdh+pD!ClYD|{F0ymZ1u=82ee z*{ZJVZLwBPUi&k|7X2y2J}X+tW^DTU-~X}s{IrU+dVKHEC*N=S4s6yhz5BuW{jF<@ zyY@Z&_ip(MePY{%KfgTjG5G73&(W*jJl(Qmef8ki;b*Cp(%!3vH~7|@SAVJwZcHh_ z-g#|rC~AWE+oJXUSaVZeJ8)^?{LTHp4vnIL!*8G2c~C#`;I+FcaqF?ySK=R@e6(<7 z!^-XT)4SihKllLs{?E^U4Bt62fTrIWK707vH%`%WM~=V3snNQ#>8~!D$&aL}kE6@w HqbL6d4|#*5 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_connection_download_LTE.png b/data/resource/icons/Connection/B03_connection_download_LTE.png new file mode 100755 index 0000000000000000000000000000000000000000..8b1a1d1218a02cfca9daa650ad745c307918ed74 GIT binary patch literal 1213 zcmb7ETWAzl7@k@YjpjuZZ7q11fERRk_Uv4CXUsP4?#$?_6XRyvgcgdEnUn0WnK|Rk zS$7hANJPbez6ic}c~TGr6;k`8=!2zDsHlO`3#FxE@$#ZAhC-iuX0w~*K>`kQJ7@my z`~K@p_4V%Q?D)8YVVKU+UbRf0AH~AE0YhlS@pA0zJNH@O*g1AU zG*X6NL{(?+c!2uHdn?v>&5~`l=Tp!fDU`rP!~~H$>V-;_W1GAReUG;}7Bo#rEyvC| zHE8sKA`TD`lYGKTK?o!%2?bG-;7*WE!8Dhmr<8z#B1%d+16l`5)dG81DXV%*i>`8P zl@MRyxJILqZ171OjBrqv<(MO#PEdpk9l~IW6 zfkmr0+_gw*X`$G#6@y}!K@HI=>gH&OnjZ{9IY^y%JabgVR^3G&DXBTOUUzIo7X?vN zg?t|BDUH@f7NDqR6QbvYSA(e$t6AHW_%Yq0sO_p`N z0NdD-7ZTI6P%Ii_ods-aNvu)~kV$Y*!FaUYO?_2Na9G7YDE3QW+koTQxDjrTOHH|H zs45DaqsZ0+?1E<273UrLSs|M*@S>j0NTMb{n1zC#FKU92mUtd!B({aM-#cL(^@NMN zY*E*>w`eQJuk$lR7xPnyJX*AX&e%oipWo?xUM;ElO7!cq&kuD>fHn1}1AG3iUcSEn z7vsOLcAQaXjP3mRo870vd&aei)32QBkIa^ho6ms@4@xJ0_$1Ow-nC0#od3FU&Cvv14iHUotw2~-^kC8)&GKtSJ#c1*+-zivihx*U;h%V3xLx7=iRfjiB;22)^0es zW0s%VbW!=2KeFb#-yZ())8vb;$@Mo*bPk=!z4-F}`CT()>a&Rtn60~R&+_?0x8om5 MN$XW_77ic(AAYuw5C8xG literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_data_downloading_Wifi_01.png b/data/resource/icons/Connection/B03_data_downloading_Wifi_01.png new file mode 100755 index 0000000000000000000000000000000000000000..2ec44ee3d440465fd538015543fcd9720ffda021 GIT binary patch literal 1449 zcmb7EeNYr-96k~p<`^K-5;3Q39Y#vH+uhq+ZZ}RlZtvtA?xf@EN;8(*7j6e`_uO5) z14jNZqjW?Gqb~;y?PHqo17{@sXqp-bK^*^RkFb`TKq>SRz@=PB~nRrzTiUAGp=i7=2L2viP<1gk}biCEDYUIu<^(?%4T zF;T0m=sl-=?gGRv$pA4MOj&*m#}SG$;G~(N@JxijaKebei^{@D#!N9pHZpslP)+75 z7%%Ib)q*1{8c@{`V>E`tVMEwtkmO1uPSdo;K@eHcB1@?iRW6bxDyyOlEKvNi5K;w6 zL^MXOT&hv6DD?DR2*Hq7s0^se9J#2>CJUy`7~w)j+<+P785=FWD9Y_#7!eH4Su3g+ z+;{$g{7O-62pGLUk!oZ=tYXEgc~T1tX@;{gFm6t+0k32SP0a53v+M!OUYc zWwvDFxPzoI%;CgLwp>#-=CISIDApw^Dku7ZCaPhD`&i3@SjH{`PL<>$Nve)^Q$avd zB_$w*5PKnoWRwabFNKw-v{FNE7%B^7VH@C`vJ^ySvd#z(&^J>ilZl`$7LqbMNF2A| zq|;`1kR$;Y@N5d5#q$3v~RMuuRF2v=f}#2-+Xw*E);MdRNvlsH!UGy4SL}9f-CW-#~KE= z|NhU~zdwGfVsv}s$#)A6T_;Qv^cX!h+16w+;?ZB8nK=LTpDF9>hIgI`_U^rupMUD*z_$-QUcPKBt(zXuU+UQ0cC^gfc9#0F z_4rZZJ5T+l(inVj!u`=_S9=2ITDP@a+rJ^}%e|xDwEHiVjI3sctdH`I4b21k`Xf(l zXBz9Rc7`w=Sbp*D6w%PzDNZ$RnLeD3_1{|3G4&VL=8M1e!;a_3JJa>vF4vxT&rgGv z6YjFuMN=t5H{3y^8sy-=3YYoQtCQMypGCGKc{zzKI(?ygYS zTr!pDmSB**#AP@)S0eK<;zWp>4-^*E_y`CLCYq^p6UTz{F(-5Wj@S5OA@Sb7-|zeR ze7>*W?J6$Ji&+!D20@S*S3c{3?>Oz&-36bYTx#-b1J&VEOQj06o|6G$3rOVvbqQQ0 z@Bl8*P&){+5#)}yc&|_OxeFM-Bw(CogN214L?cM{hH#McR|6F-2bH{N)n9q<13k(I ztoky_ZFC3ipo-6LltF1@q1WG7?Y9K<8*Farq$pmJzfs1X$=Y}L>4GVoiQ#`Wl& ziCS&d&pYLF7o&Db1}KGP8vI6rKxrByNQ$P34Af*KOt=wVw1FTQie^k%=)$3gYI2~0 z@vzPXEjY63t5h|};COv~JyxHINpdAlSS%Ke!(=i*3xm=is$AG0D#?osEKvM1A5?is zL^VdPTnedHJ@j-w1R?0*E2~sxiCk0`k_FR-hq)k5U`AY?v(e&PM7iB7BLrc|T2VdV zmh-peSG)~DfO~)ux0@+~&hsKy!%F^; z07TWrTJ@n2A7GpmNl`3mvk^|C1J=eu5)^B;WaScO(!sLqBEfPX)WQM~OF3!6VxkC| zGG`HlgEZSrMtc_Nr0lsSvn7{a#JWU98sJ)a%)5>@;Ak{06YNdwUFjN-Ed>sflWl2Eivd-|g)2A~tGfft=nWQNPNf2g& zblU6=k~F~uA`ALHj}83qgyGN=T zF4pD^kN-NnIsHy9@ytxyJHC!kq~-L9{K8`?(?9m@laKCAztVTG3%8Y=`+i+?Q$kXA zV)C<&vBZJD28(*f&c?MKzcJd;Ce*dxjJ$b(Von@_whRLV5Z|ZG+ za!VvF65m|qIM!W zeR%U%7Yp`I*-}Yt{PrJ4Zqere18Tw1x2Qn`Zol_;ly>INp1`oWrC+CsV zBf4whi32AmB45Aq?)z)s?itMjlVKoY6&$v%=bK14RRWOzC_#W7|@+b8;r>L*!e7=Og;msVMEw N>2egZZ{}`&>Ob242bh_nU4;=vSOzmEh2A%_BdxP3QbycV(QjHp8WKL&irD_iH z3QR2*;21WseUP*2bc?(B(h9Z0x0wn`f`QR&3~?a>&^n#9ARb|YVNQjrxmsSd!GH99 z2}3+LCjb0zhKrNR1e(89t6`H(eE0Rn+j87MB)i3%0B!85!R_|~Qo z7@9Fr!#4Q7Qx!fx6*d6B83 zrC?OxMAb{%;AoU*DL0PcIE~rusN3iQwXt9*PLq~A2TEctnx<0(^MOFizyd7pu-ggL zXeMwn4@F%VX~apliLlTP%#31~J%#m(ipq#VP7~Fz`~$3MK`iBzIYyP_Qc0>yb(23N zsge?sB9OC$fHsu#A}hs|XS7lSZV)QX$@~tEb<2_f&19Y8AEr;3&1RE@BryVaVJJ$X znA`4jVVDUlpm_v5i)H_J!VusIqIKE4u1igUR@Oe}_7E7%?LtljMU%lE^I!b2N~c@Y z?4|9c@!^{nUff7Ct4>ZRg)Nscr)+8KDK>qpr`h$z>wfs|jAJVQO=yT;RwhL>T9?$=?X^Zs{ z{LzfWRcQZ9SVvlh|BIgYzOsoCefrd;sZ8(E&(1e(8XNy$^@!haxXblaH+d?ja8EtcipaYN2|xLA2{D%wenv4&c>hKMy>GP?6yv(snfTj>u+)(tM}va4%G(mX+L@hIb3<-mxJA-&+kY!ZrvOb2y}h8 z^`pNod*l_b6kTJ&L-257)zaa<3CG=k8a6EUoViQ(zWY9#Syx4W*fo|l`F+`O&$+ literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_data_downloading_Wifi_04.png b/data/resource/icons/Connection/B03_data_downloading_Wifi_04.png new file mode 100755 index 0000000000000000000000000000000000000000..f6f7e54dea347a7968b9da0faf070af93a274535 GIT binary patch literal 1416 zcmb7EZA=qq9KVTk3lox=WwH(Na>$&6UVG*4dc9Dv^xD};3zSaT3x=cjP;TY!y1Oea z5TlM6@MV#NEkSunHrz`l=w9511+yUvkt~^;aj9_|=-ebrRN@jHi+tE~NRbbQWcU6& z&;R%P{okJ3SK)stBmLQQ1VJ*qTetvxKV#gFuY%9Bf9(w!1KnM%S1I*+oL2$j6qGuE zdL=##0)Q8q-g%_Ga7J@)&8Yf7KrilX7Y9Xv<3%qC(L9!IhT5agUfk8D@ zsAmJ5XF&^&99V;{M_IEu9*^VkLR?Y9X2Nc_8yr@v30j!6W?APGCRxi(F>pW&sbW+Y z6&W=c`8p-0J22?!{Sc&RKnyqN+9J8EEhG!3&79z)W&*dE)p;8uz7)#mTOJ`vi`JSR z01uphD8CkLjskN4Xi7{C!7A40E|FSZ$S_=pf%Wlf1i&hK_(l!PFZg_HIdoo>`9@9& z#Uvo>Ue1BVVxqu$D3YQ$(&;2T7B{Soog^rZvD-=shIDfrmm*jSgj%=&v6O`&EOwin zrWhMRxJkxFl8l@5kapTt$}mI<>y8sAoV*>rH`_41aUrlv`!|K7z<`VRlIvwvE;zBAcWleBhZ>I08{ofu2Q zqtA5@9hv>~Ea|^}_31`@ZPI3!B|#J9_RUeK`a^owu)7tm{tRxfUJV)uDD7 d=atztwMgx7=79g)pw;*{dfk5Rcxmn1{{iUd_l*Dm literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_network_bonding_download_00.png b/data/resource/icons/Connection/B03_network_bonding_download_00.png new file mode 100755 index 0000000000000000000000000000000000000000..86e29e4c102bb92a7cfc788c885f6e2925424523 GIT binary patch literal 1157 zcmb7EO=#0l98Z~u3Hc6API?|@us%Flvu;FQ0^44Z+@?!F8yPc+P zeoQ@h5j=Yl!H=WhVS>916}))yC|*3tJgPWfx^~-P3=H{tFaO`~_y5e@k>SCv&ZC_a zMRgU1v?6&PiLQNn$$jPfq7^N0ejJaYDO@)LNU1iOgml3*%diMdd-m!o?5C)XmriLM zj~f>i3%RTr*{}`QCuoZ5A87cdH3Km{3CoU`VSc<>W@yLGFk^y|F#H^>I74#*9Gx33 zS#vX%Y%>Gr=>CR62waFwy5Uy6P-$eCCa*%?qiv3%n&plr!11wzJUU`DCs7S&7~<(h2(Djr$`u@Ll6zq* zStM;-!}K}8Cb*z!6UEm?8OH7i*WI)ZaS?7gzaxKGn)M-9gdwU07OCP?&o-&ug(AaN z42od}GmunKH>)9RelQH>5^>(~%&La0nhQN#&@xP|=GclZ@PeT6stWW(p43L>fuKop zItwH|uW4GFU^|d#u{OaESV2CW8x`rkF~_q}JvT{K0W>9(fupQ=~epGsjj8LoA<=| zhYRQ5$L@UowBp6qV$;9A?c2XR_;vaA(q-ZGUuvzp@4<&&`SnC0Jk*_;9#R*%$L~Ix qCwscl!)MnQ=P%qUALu3?GmEemciSKZZhnSbLG3xbY7QfNz)p literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_network_bonding_download_01.png b/data/resource/icons/Connection/B03_network_bonding_download_01.png new file mode 100755 index 0000000000000000000000000000000000000000..470770c378e412653142c9b4336005241d8eb375 GIT binary patch literal 1161 zcmb7EO=#0l9M3F@3iAU$z`@{|sVLZ_FHO=mtj?xswP5Dx3RX|1$=e#YqHF6GdY@gqX+{fDsFGnkLYjt;n4E=c2$URS6qS)-O-{_Aeujy? zvMW_m)z2sz_zmNIZ03GULMu$(^Ebg zo*Jx}Q)6bvVh2uu{!pO=4k88!opCo%!Yte3Rp@)P&9k6oLdLS}vQt%k2;{MkfW#%^ zW&%PW%N!IXS%$}fkbnZ8pr;&%q9VzPkOJ+4rE0!4qLj5_TZ^u;Y@HBK;rV8>$u*N4 z_D6Y`$z&o9L5Nd}crfV_BaFL2Uxz_Mf$7^Gv9SvxMx%xsB+F7ymqT#8vOQWS!3wz> zw39{C#)pQ-LoUJlEt@F54ocTIMmWxjbwJ8!)%kV#gUY0b_%aG`!#8OaNBY)CZ7dWS zwqsCq!yiMmibZ2QK&=nDuAHUL+paOLVYA^Nmz11yU`}qS$mwO~VuvWht#fSP)e?CFIpiDlZpQRS@zWY{?CX;hHEC zjj;AAHn|~I$@|D4*sowb-sz^HIwm-%V-MtqWpMPI?OM1Q9E(a#xoM~x^6ksWD*D&~ zt*k5ddipS(Q!j#OmvDSYljHjOPQJ1ahy3Q7D<>+-~ zhUj8t3Xw~T=F=Jbn$$kg`SeO!t`dH${aIQXh`s3A6YG6HefaUc+ZTjOb6{p+VDFyp z>c^QwR~9~O>)UqsUToL%N4LIjnvZ?{HMbjFy)%1l=f206yuV%Z*`c2My6-*7EuIg5 yO&{F6kGo#mktzM&|E#CF^^FxCFw<%W6@w}|_f+Wg02z5ag^SmmkdM+VISxrcFumvw9re~o@ zG{QQ6vB?dwiW(r3;Gm50bf=q&HB4|=!#+^QByecl@od}(4@ae@+%!}T1FsQh&)=ffX>*lm;EQ{eEJ0~TW)@;F0ZT%bv@a%v#W1@?%@5~S5NV07r^uHL%Xic zf2r9^UwPVC#7A&AXR| zul1ISUpF86aee3SmvgsXeYkx3sQF;{^>#4N9Dm<;N4>LnB>FiN^il0;?##tMmbY{c literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_network_bonding_download_03.png b/data/resource/icons/Connection/B03_network_bonding_download_03.png new file mode 100755 index 0000000000000000000000000000000000000000..4540812926e0ba19ba81ef1ca0a91e64ed08b2ed GIT binary patch literal 1161 zcmb7EO=#3u9M9UtkBTCGfd%E6B6itMk~fp2ne4Og}oKr!?Lhj@#f5R0-C7hhZ_6t#jh;zJ&m1{Y{8BU z)b_8e#AtS9y6&zlx_OT+UIK-lN(ll)9MB7v!bI(9Y@b)9@98$rg1!k^)YuPBHS8)d zaEyS&QOlzP;R~p+UBvN_4 z+wF4Q9Eal;5A*qa%8|`xs6{4O4vEvtgvt1j!9Px2@AYEC^a0!pxREnh-eipXDLDb54Nq&Q0M*7Su(NP2~bEXrp9(UzNcD}C`qQM>(CO) zv^IGWN~V&ZDnUgoo2EG=*bSswoJX;F!BBFB0%b`lL0A?`Im1#6K@sGVu3Ioa#8$$D zIH8MD(G=@{#0q<2RU<|Y!EqhqrC~Q!+nC^_jU!;p%3xy74?WyXzDi3?xoM~-iv8Qj zvtk^8e%4k06Z#5N^ioc;lqp#%ix4VMv~;5^idi|AgHtj)zxNsj zmDAUq8KR4wDMTSHT1;o`kD03%>3l{NQ?K{_Z2q^sT^#xOixVSf*MGe5^t(sbvkM#G z+26&JkN3Y>zwvw|!~Jjkc5t6{e8D;mj(*wHC$_a?YX|-+Zf+g={h3xB``&&&^Llk_ zvaqtbx|Jy`R9`vg$Isy>Ki$25=i3L<$LD{z{NgZJXa0G6?weNQ)Ys|Hp;DeUe<|I( F_Z~9naSH$d literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_network_bonding_download_04.png b/data/resource/icons/Connection/B03_network_bonding_download_04.png new file mode 100755 index 0000000000000000000000000000000000000000..e14c7204958bfa171efb7fd74b061b0a822b0439 GIT binary patch literal 1165 zcmb7EO=#0l9M4u5ez1cmf{OCU6#Q6|zBWnQ&^p>Cbp4OB4Ju{&+!bD%dgy)e>zolTh&o0_@FZ#I9%6DPor<$VbaUqHGRiPa ztYVXf(J+ zg2Ubv57X&%$Ptf6sYTSEaflv79lx*5pdjDyESFf=0U@J4f$Jp8QcwSeV7p~&s!IG0 zx#PEzMbpLyy30c@#(PbhFupcQ(>6xfcE{Q$W%SSab@~0ujEnd(@^RfWXcZ^>)<|tE z6dJZ-kTu<#Mzo4Wz2>9l2ThYtQ0Fa2uPNB5+sGj$CCk?9mMIrSK@=4smxINaN^6rA zps1wM$vjL6s-h@ug0(=Z#hDbV3W})a6RISp@(`**I+uv6F)>{bg;-L6Y8zW}e4;xB z3PnS#^$)9Th?NT-(h2q|7}wg}G+f05`&I0M!iWS8j#`e18~&lN)Rdcssvyrghs>gf zZP3iRY^|f8f~j0SAr@0fNmK<0Q&1@83aTK)r9=WICANh%|2ttk^@I<*Y)#j-w`ePe zubmm9i_R1xhZfDFGj{GrUq78sTBBSgct7!bb#)-}sB3#<@5229cW=y}jGtKsPd^Xr zxYqM-;nXuG%B>WZu3S;aUk~p8(*5z_>b4JuEAw|wm;1Z)tzc#I($2+ihVt;!+dIGd zGq*=Cy?Orgehyxqn-5;94|;ZXbGziy&FlNVbLW`|bL+z6BOmVVxflK*O6rjEI6r>z E4>#v_b}i= z9LKFL?Sp0Z+>~6sE7<+j*Yi%Ypyn7ICF8V-BFyDoQpJ49M-#Y=kvnzr4IbpUo`+s# zjE>m{42Sq>l-Q(Oe#p=qH#pP^kyFQ%ui^0gf_3i-ji)n;M*p&o)i8!HD-_SMG|3NO=nV$ z1OTsTX`rZ@26pqZ1Y}WSr-1(jndE%#b&daZf4RX znh=4m>j{S}rxrGmJ>%K&lgL|#Ze67UHls*(oH3Cz z#9-Jcs$*6~3r)tj{lT`4gUop^K$DO-4Ic-z1am^8;kkyTDyj;Vd>&Ym$!eo3K!sU- zpa8Op2_ftfECw>Iw9Bx%rm7ZDWH4Z<0GLXls7O`@>UphD%xI?E#g>AYqQJq4XoB_r zV!@JFqZnaCNmLTBOzZL)%YEUy}%{ScxO^-#?3;7IPy+m*NTYGx3g|| z|IjZ=d60#sWijtfg~e@V0n|-Z*3FDG02HBvb^kkIBJ)H{x@=L`b+=e6C$9@L#1;!v zhyzx%h|O64Oyw4vm3S6ZK|zvkzMdhRb<*R$ot-R*a-T|O$GSb6&U)=PWO)xV^U z%xu^=f2#^#36I_hYvW}vvfr;?8R`k2b71bH19Y{(OAAbc26!VRr7*Om@}9 zE8_Lpw+P;wTY03g|JX~fwE60~kGr34N3YTQZOeNl&YgYo>CjF8cJh}fnZxiw;rQ9# D1ul2f literal 0 HcmV?d00001 diff --git a/data/resource/icons/Connection/B03_network_bonding_download_06.png b/data/resource/icons/Connection/B03_network_bonding_download_06.png new file mode 100755 index 0000000000000000000000000000000000000000..a541691e167b33d279a5e4824d9ef30f46dd8b3d GIT binary patch literal 1171 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 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Desk dock/B03_desk_dock.png b/data/resource/icons/Desk dock/B03_desk_dock.png new file mode 100755 index 0000000000000000000000000000000000000000..2b9b03f1728db318f9d9fb252505785d21fa1027 GIT binary patch literal 1293 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~%1|*NXY)uAnN?apKg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+AuIMr)7pjltlRYSS9D@>Lr5I=vCwv0Ch7k*w|MTBqnF4mMA2p zrf25aD!t#mUr8Y|#a1cY)Yrhbz&SM|)1#^=HMq(zB)KX(*)m1R-cG@$!U||WZfZ%Q zLPc&)Ua?h$trFN=D(3-T9Ob#X~hD#969RTqa;7NqJ2r55Lx z79|7YBTX5m85nl>EdnV7y2i@CC=(bdi8(I$$)&lec_p4Mwn{)5y_C!pD|2HfM>A6+ zOJ_4bK}m>c_7PISo);H zUElNQ0uz1#W1+^@g|Cioyy9Nq9d%J<`hgfnCI;0eITOQzopr05`|1 AWdHyG literal 0 HcmV?d00001 diff --git a/data/resource/icons/Download booster/B03_download_booster_3g_dim.png b/data/resource/icons/Download booster/B03_download_booster_3g_dim.png new file mode 100755 index 0000000000000000000000000000000000000000..b02fee1d26ccfbf4ab36ae4427abfd6669b38956 GIT binary patch literal 1060 zcmbVLO=#0l9M72eG1)=Hfr1jVi3)Agm+yqt*(Rwg*gCqxiXfUMuWhy^FD7p`>uHFB zf@cr&<_>yM@Z>?kgEAR-@#@Wa5(LjfVZLG@1O>xOPRJKR zS2Y`X87r~L#9lzq6g4>&2bR46G2MVI*UvFO-@IdJ*U2$+VmVt5bl7&MyCIzIR%&*4 z!B!n+>JmK}YlOgq*rH=^(T}t^$MkqLvQCa!hVGf*g&ecvRJ}Yy>nMb@nBmiQ764k3 zGC&X|38ZK)3ph4QZYd1}O_VfFru!E|)Iz7JRgGd_i|let8{F^m8wpgI5 zYQn*BX=0I%mVIo+X+IhtFc>hhLpQ)K^67-pYM>>YV~D3aA$UQ#yi4py{X~(Jv9T4f zAd_W1FNv#X9pNhc>&BkeQEfSZY!yamDYQvFn&Sg7$=&`!i6QYuyB4~nDAuBZ>?IHS zxMbuQ@+afCj#lLI`K%->1z-S^2cRITpvcRzs_2|1C!-$>yypy@IaqTOh`s!m3ga@v8t7fd@cUc_`SV7HT+`e`0#1! zM#{>6dv^9!%Q~iyojncsMR kZtd}->)ia26V&CEA!?=c^w*Q46R(rGEtwVLW#QJ{Kb%ubu`k5! z$YTI8cLBsuBp84Ru`sZ7Xg9>CWWEufaS;C`TM^A{jj~N08E8)P!`|x7)A=ZFl|lF3eNZNXx4?aHDcX zbCA#4DTYn_kgzE#KbM5IvkEcYgl#VN0be>3pIQ0Uu(UPW-hX){+9#*VV{6J?0p?55cPiX5XnsrAiwpg0#qHGY$^`ElDiM ziIN0nX@Lg<$CF#ifSe{unjq7Iiy_t`x24t0(!dtk6_^gjp~i8&UXSf%SroN7psH%B zAqW|Q$i(Xbwv$W{PYo4J7(0;{Vh;s$s%SS+7Z(`f>3#@)Sg9Nc2k{_LBxPJ;ha6ye z&iB)}`sf(f;9oZmMaT8^5OOsbqi*DodbFm7WRkn14W&ThjdnHiNKx!H6FFTU2Doe% z81jd8Jy$CUy3R|oQUoTjvH%oC6_m2FtSW|JSc*E-IE*VBh9dJh0A$kwz{=?=P;^08 zL_^A1z%qv1au8!XaNy9cN9+!`{E=MEh@g#8R7YrS*a6iJ!YJ;bkT#Yi`qHu&xTqJ; zq~+O<)`XFF2fC#Q`E)qf^KJ3w-9IJGO$7h| literal 0 HcmV?d00001 diff --git a/data/resource/icons/Download booster/B03_download_booster_LTE_dim.png b/data/resource/icons/Download booster/B03_download_booster_LTE_dim.png new file mode 100755 index 0000000000000000000000000000000000000000..1a7ea0045c529d99b29fb331b685cd829b6d6b41 GIT binary patch literal 1066 zcmbVLO=#0l9M2q%F_|EqCdxwQVZzenrER`wooPO{qMfrVtO|l@^18+?c``(Fa=M7dJ?^O(~Ei)VZLbPDx zqdLgX*r`n>@k4^9sKR6t+Rh@xbOSDUL6Q0X`~^dMZjqVKSNKY(!AGMRrA|g>k5IT)W-Qw6hr$EpR|l zl$1jdSYpA(D*?6>Hi*Z13<|ZWH&G;ITw;eD z$nc!+r*UFuR(c$}VRH(f&&q-UB*Oy0%qfOY zk~Jf*S+Z`HvQ`gU4q|Kv4(#cAM7N98_r$7t1Z|9>8bV9G4w!8rjN%pwX?;$l$LGDk zMeX=RTAuA_4H$V>p=(9Rr#tyoy^MYb#c?sm0F4p~@ zoN>e%E^Ur~nx%I{Ixt=Cv_9GF3=a&*#6)B?M)kLk$yi+|8(J;-*!aD*HQE2L?{NPy z>f(fb?VWe3aA0lyVADRdVLoN=$$ejPh8Dt6MFFTr*wMD=8W;Ebm{sZ^a4%e literal 0 HcmV?d00001 diff --git a/data/resource/icons/Download booster/B03_download_booster_LTE_on.png b/data/resource/icons/Download booster/B03_download_booster_LTE_on.png new file mode 100755 index 0000000000000000000000000000000000000000..4cf77016b82976406721dfa144667cda481861b9 GIT binary patch literal 1060 zcmbVLJ!sTW9FLq75jtpbs3?Zi!IrxuFPD!?=(XJC!ybBVy&m+C3e6?&da;+hGAwg5rp;KJr? z-Pv4qRF|2aq9+rL5cm+=bmDh{SWAjbk5?n>^q6Dlo(WzpGDl7|s`IptB1lVYKIiZN z(6Y<|QIchlr3D@c98YdJ2SiPhH9?{K7emw{x24q#tFJ|NMW&5$sBv7k+hx0X7DX!@ zP*pYM5QH4D$i*80wv${Cj|~_M7(0;{Vh;s$%4j#yIxaHA)1wgluv$GP4&r{INXodx z4mrT`obRV`^{iuDgMZyP(K@bggpjMj7_CPRsYh#U04BLRT_`mq-e_}?M~Y&14CJi) zFu)a~$dEs*>$#dGluEp;6w1H=W*&gDqyj6iC~83$bhDriI8MTfvL%U@r2xgS05C;W zG0KKoE(oGrl6bv5z*d47+kpcIx*pN(W93t^njS$Lqo|HhXV3xjZG=(WMj@>)$n=dx zFK|&e9#6}26s-Xx?*VkJ2>Em`znXV~zEaW+#VE*S3n-=tfNB^N!Kn%UIci-4}Ovsz0`}L!fpr()_S>|JT`T%U6D0nCr|xxwN#q_iSzd l>783vZuE`2e{q6(NM)$)iQz)y+tO4zw-s~NcwJuJ`2*i$NmBp- literal 0 HcmV?d00001 diff --git a/data/resource/icons/Download booster/B03_download_booster_dim.png b/data/resource/icons/Download booster/B03_download_booster_dim.png new file mode 100755 index 0000000000000000000000000000000000000000..80cae95c00a97ceca49a652b77da1cdbd2cd55c0 GIT binary patch literal 1139 zcmbVMPiWLw7|$?u)v8oc4;92`3d@SlWL{>HOhU&tGs$d6o!U-E>`9tQUOTZ(UQAw{ zv?!>%!mQpFl)bsKu(#clUUmzj)I$&2izhuO-ULA{s34-gv@_L1>A{dc?|bk2{l5SC zZD{c4ZJm2M8HU+b8qg~A+Z{cdexUF97njXQAo?g7!Q-T1_=r(0TtlGb7!#<13~T1h z0_tU$__$piC8OnIiiw@15$PmD$D?S5>Fou8%}!LkaO%&{v@jh2T% z0s9CD$#lX@K?p=K2{VEy!b5;hL7q#|TTH-=B8Unvf!4)RYrZwERJ3Bt7L{^roe)pq zxJILqY^0OepWvV@%Ml09C#Xgum~n{_CfuN>&7h&c^lgvW*aZ=zQNzu!VK8O2J14!G0Cvsdfhp z)iJ?A9ebcKB7&bz+OCBg!GWkeE75Amx6dN0=wk;g=U1`UurH|vP13Srz6d2f1EH*E zp(g7BFYD=)1T$<4Ykg17IO+@+HODv2(%zyS7%f*@p9-tPgIqc>J{^rs2>eaQ>aUWf zR>Q}&kDovH#s7)zjPGT(?0!(|sC9wsmzNgv@WlDrMeA<-j}4D*X?vT~H(xgT=eq7+ ztv18W;GOEf?g5`V=fN+Fu{Y9@^Y`NOZhb$yaek@)+&(KNu%|XOZ>Wjk{-uQ&_@q8~ zc1izF+%4 zI`iUga#)j!kc#L@3wkKDA{AP#3SNpING|c>L7`9zr6m_Z(A*RP@lCQDJ%k<{=Hva} z`~QCb?>Rp{_QHYwC;J(OIZz%oYV`X={55eXjXku}!ZZFQ-vcry?1jB8G5_pJMpzY21k0$J-nWwpGY% zf!%RxsyYsI93qfQXHqr~ArQqh%;rQ9J`V&Q3LH;wF$J?qPE-U5bT5`#3!Q1DW|X?N zs8nE^gaiu5wOXxoE0f0I3&BkiQGFpmTn$BdKD22)rjPZ& zGn%(Rk|o z<#p{F2#^mqImCh%e`p&xl z%*LzDq4zGWJoLaX3!pQw`f_n|{{^iwap7e0&BVPMe;t7bKYsSn;!=Y7;OoZ*uifh` P$3KX&Ic9vWy>{*&&*697 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Download booster/B03_download_booster_down_up_download.png b/data/resource/icons/Download booster/B03_download_booster_down_up_download.png new file mode 100755 index 0000000000000000000000000000000000000000..86080990fdbf8a59fdb600d80cb1412f1f9727c8 GIT binary patch literal 1169 zcmbVMTWB0r7@oRON@A0Wh*T7g6H8O-&dizJof}z`-I-al(TVG3X%|7_?9AEhB$w5qxR`J``yi&m_CihtLOyxt#x; z|NH*?d{CNraZm44y#zt*DUK;+{M{EnyC1>t_Mb~eEQD$`oOJ79Q}+>(Gu;{jMO&Xn zWu%)6Z?2+Yf=JY@N;Rx%FH44NQ+ljJMYf001Tj1kdAc!+LQq4~mXjrKefI+iEHg_U z$!Lt`$*5tCE&6D3aiU@@&Kjagj=TVdBMB4ODAYk@&pCkN5OQ4rc~A6vdc>Ws_JV87w%V9wnV%u*;yJ!0;_Ev|I7naa zTz9V90i}i;xvV%4MPtIuU3>`Pef10Jcg*z}_Znr)bwuc8fcw&4!8n3Q= z`wbqeOGPDDiGHo!-PjmOoZt0$;+d5%_n-Of#B1!#>fW#0y~|fmK3pA2-yYce4pDn- zXsT~{{)@Sf?`Si3-rcu)x?GxCX(cNsW-eXsZ##`Yj$Nllf4VYOKf8bT*&Dmo4}inO z+Qu(nJh3)4da?D%@{@_R_e*`Ft$`oE?{EKhZT$5MEul|)^!JZ?!2R*7&t2?U{+wJt zdMrBd>AisuZ?;Yzf3Iig)X$0aqm6TaFTM2a;L`ag-Ujy{YB$#p)}H1xvPC3_e(KO) T;}@<>#6O9mI-z`(f8+Q+ZoYou literal 0 HcmV?d00001 diff --git a/data/resource/icons/Download booster/B03_download_booster_down_up_none.png b/data/resource/icons/Download booster/B03_download_booster_down_up_none.png new file mode 100755 index 0000000000000000000000000000000000000000..ba4860eb17af2f1a1634253f1cb7b5f2ef5db3c4 GIT binary patch literal 1156 zcmbVMO>EOv9Cu6G6;QNFZ~%(LlWC_Sk=W01?ASE4N$fzRrBrDosv)F0_DkzE_A~Y? zaeJZbv*coYac6gZyVQXGnEN>T+GG%uD~^R1d%)(TBqRLZbZ zgm@~)H5!dXBbmVdBnK5mi8uryPBr4etV@hA?gocj3>ped-}Z=&T@W!ERXjs7EcJ9V z1jj3twus%JnJAhvE;Kw2CV0+qqPRA+15!r+y0NWxP?_}*S4IJz@l9Hf+Tj+M=I--` zB1P(rddjzHQH;8V%^3%|q^MUZYoeB2o7!z+#m{2ZypIfm{R+nQ zRtJnuVSI@e($A6lowM9EHT5h#I6}E;4xpZQDIvUUa{QE2& ztGh)lTM3_4*VfmEcKp)za;g8P#mnCa-#%LEpP1-ex$xbGzTb`(J6~KM{=NJ0)Anlb zz(>%t+5xW)#CG;2Z{N5#-*#qc-^0ZR%(0&3o7cXmE;F!qcju3{zDL7ryD$E6<9++p z4rS46KiAQ7C-+x<_~4f-tMg%}6noY2v;mGU=xa>R`pw0D;Pqa73*K>U@AeFQJhXSL z|N8vGk?sSZdY{C8uGRK-y;vPyv#l#sa6AS+U*^YAv literal 0 HcmV?d00001 diff --git a/data/resource/icons/Download booster/B03_download_booster_down_up_upload.png b/data/resource/icons/Download booster/B03_download_booster_down_up_upload.png new file mode 100755 index 0000000000000000000000000000000000000000..b506adb4d80b291a975bfbd8c02c4c94dc4a0766 GIT binary patch literal 1162 zcmbVMO=uid9G@DI609r@X=zK~Ig1#zyEAWgK6a*Ali8iwX0;pF%|f?Qu#=gWWSY#p zapuLH#7h*SEA|i-ssuq$kX%yrYQ+{Ul+vpQ@e<5M1wocl=^+r`B)h4H(1XK#y#IUu z-|zoD@7E^I9_c^X&oIo9%D7Rd-xJAm_zC*H_2-J62*hlXNjyzjR)`qg!BYrSJZlEk zk>xDDaR-esOy9KIXp(02oMvM$Yb83_*b69{VMa#dz_RBM0aIwk^$YCZ*Ke@Ebqefx zsmfP_5}I|#mqIkTG|{k^=4{nrM_&XZu|^3zL@W?{^M0ho1$LKLqw8dwW5KQpnJch+ zPBp7FP{JVsQZ|>dc?f|lXQ3#`GCU0g9ts>!Z#e@+O_DW10o{wG)L!Y&jEk*+gIS*Qydefg;<*I{znU9Ce0En&Uss(%YgPm@M~Op9=fKgM2zMAsvmE^|c@9 zSbbM9^hW&a)b`HKXy3-6fxe-e>(6|7^~!6)zCztFm>8xK2hkF5Lep`8!n13FBJv H(mVeG`?q;E literal 0 HcmV?d00001 diff --git a/data/resource/icons/Download booster/B03_download_booster_no_service.png b/data/resource/icons/Download booster/B03_download_booster_no_service.png new file mode 100755 index 0000000000000000000000000000000000000000..a1c4eaaaccf117f30bc5edc9c60f04aa3592e844 GIT binary patch literal 1150 zcmbVMO=#3u98WvyYU?az7exz;j}$?{N#;#vl1b=nJCkJW(4AVR!&>mLW|G%VXp7~6Qo)42oxM+6qS%+ zO&-06x)~-iVwZ=>aPb$##13bKI$YiHD4Joqd+MHHjv)dnXw-Hy?8{pVEU>K%dni?m z7d;hK?Y=1=4NVP{&8aa{w%DGZL3drD1P&qws5|3spwu($3a>)f;Wp2L6%{g;VOO0R zE)D_}`v{~sA!f!Q1fs~nWJ(m_K9GpR1Rtlj7=uYAB`OICG%l7}^Q{r3q~#m7sFY!= zgm?f*TOSHBr;9P3<Q}Lf>LY_-zl`yC zvjYaJnBbs_J)jPWV9z1jwQw!i8!WIdITbs;XnB-_AR-;y()I>U#}@kO&Vw`d23%eB_0!rJg4mrjgNN8`fsKbd~p+HvA+rQ`60KQ1rzM&CykJA41ywD|kUx51tX0QFZyYqVcyOzp!z%l>**86=w^7H<6NomQi<><^FL>}svdp)H%gYkAdQU7lVZn|reL u|H@tC%H#d9oj0uqGY9+gv6j|pCc@0mK7GCS{)@@*k5JGDwE5hTQ=b6yPjof_ literal 0 HcmV?d00001 diff --git a/data/resource/icons/Download booster/B03_download_booster_no_service_dim.png b/data/resource/icons/Download booster/B03_download_booster_no_service_dim.png new file mode 100755 index 0000000000000000000000000000000000000000..f69976986faf682dfcd08f6e387dc67223e83add GIT binary patch literal 1164 zcmbVMO=uid9G~6ohqjF_6a!I;uhSM9?9R;FkC~k@+hk{FHd%DzcC(U23OYOUlAR_q zZ#wgm-GtJXmSF8gD57{!2$Yf{6+DQbg0$?RRnQ)C5Ge?;7o|`FA|8bJCfSW1LJuA0 zZD$NT`{r48KDl>c07t^n4#geXP7gHfCiej-5mS)o9|d) zTRCPm@O-P);#w&V`_nv>WjW+XCKFU65iGdGXeZp@NRL57f$7^Gv9Sw6Mx%k} zNRFkRZiV1@oIkt z2d24uvY}9sdZWDI+q5XgtcJ}w2f3uA5DleTN&RxlWrXDeC_`Sv`riavJ0W_}fW2m4aKph;R* zREtp3(-6vf7HYDdNy>UkkYJkaVy&mi8Bd+z!{+#3v-GxT2Zqb-)~CYu@F15?j88}7 z!|xv+qhs}LNz2#Tzcl{Y*cgu8iX4m`V)pmLaUkw$3?AQjHvTrV_VUBG?p*0V{b1zL z^PSf6p36tyyjb6RRN%3m+7=s%9kMms;0u` znV0S)NJtdvwuD-GC>{!}dNBce4)kCtD`@FiN)K)I=2we?AR3Hsl5F%4JUGn9`@i@9 z{r=zc)j zu%^!3Mm-D@8?`ILWVm!(HL=4Pkq#F+9z`=uPhaR6<~SmtipFd=!~Xxv4Hno|h8;?k zgp!v>HT&4Kj|QjvE9UgLsaR}ZFX#zXO5h-3fY6z612xRBtGp^*N83CLR#nJ&hFx=N zxHJIr*he76btg;#LLf;TOr|6W9tNTSMP8t{lz>S!C8?qe)-RS?^Q}>}tQFR6Q7OaL z2=P>&uh;8by_>`S7!MUii8w?tK{XP=luL{-;RanT1`P$KZ+pbXE{GV7DxM@6mU_At zg5#A+8^ms~o+z3!J~TWYasux-QCzFq0V$(5ZfvR@RHi({mr;NxeUsK>w5tWCxqG*v zNRfJ@e&*Y>D8___%}EEjq^MX$4r);EhA@{>V4+)uIIM zu^BccD?%wR*@Q)l?7Io@iP))wu+Xt~k)RM;3E1fQgKN_TC zwNTWumGH0X^2$nI?D_}ovHeUcVQjni_{ehS*AMTCKmB`U&wnp3G7o1j?f&>^V#jyi z9$wnsJbCNse5DcY1Ap&mP7J&{0cP5oE3-=-jUPXM5L3X+v(EOOSas}@`e|41p2jZb zNug$)|Meqq=gSx0Ebjg%-t3!AcPhUvbUf)jayH(GpII<23ro$pKX*1tbI%WP`ux?K pzh66W_51k|@$_wGWXp%An0t#q+?d(A{73XNDC+&%&$(0QUIP!gbN>JU literal 0 HcmV?d00001 diff --git a/data/resource/icons/Download booster/B03_download_booster_wifi_00.png b/data/resource/icons/Download booster/B03_download_booster_wifi_00.png new file mode 100755 index 0000000000000000000000000000000000000000..c44b8065167c095b28c901b70fb246bbb8a5a0a1 GIT binary patch literal 1236 zcmbVMZD`zN9FKHeyFm+ej%~%Vn0DBXtE<$5i`<}qn^kD$;0Wf6R3F7|DX9R8< z31T0Yp)+m@6wR)259G#s^7{C&E*iw1-FSN-Ap#3P4G*jl+n0g_vCJ!>b+}Ct__7Kd zP7o_j6*9ee%JBfsMWUomGYro25hlj*JhKaDX@;d}bn_$=lQ>>t1-yI_$eL#iN?E0& zYzs*Vq6ncYQB5th^3rO29ERFA>t z3K-??(S|}r<|!!p7pP%5k*H(HyFT8jA~pkc`VBC-bVz%5(*rwtcACI;hw+k=-&@c_da! zc|e1Xmv@|zN(b~79q9N)$Hh}Q9&g=e+J;l|+rsj!M5_SLd=VHOo@3$5`IXEy>_=l! zmQ_+oMP&pv#xSB9XB1K8SW%7A0uv+3SmXcXj6%*(VRQVaSt?to1Hmy-xcz}&2 z#zUjgmiyoYhCQ|}tt9iotzW;pG<^A)t=Au%p6Vl;b`|d4p2z!It4Y{;bNa}~6LG2Q zRR7aklGVALwNuXK&37N(ZcyA}tlp~Mebl&k;O#@R>i3^o7k@hZMfF=-=8pwW{oU5$ zy4zFhH|*CY8g32TYf)xvmKv$9^!2LldpqogYmeVAN*j**FHLN(TU@BoK78Nbv^RV9 z!nvg%?)1NNveEu+YT@U@uYN0Udw$)S`cw8?@cENX-S4GxJKs3l;x7dAlYd^VAwH>n z-TP?5%T6DBcE`*&#EnC95IhIxrjP#qW%k?^x%Odv@kC$e*TJP5OTXOt>U`6Y$<8N! qy!l|}4|0=zrdj#x%>(bA$EvVb`jwNDm&w<{|4dr#Q7*_Yy!;PZ$f5TD literal 0 HcmV?d00001 diff --git a/data/resource/icons/Download booster/B03_download_booster_wifi_01.png b/data/resource/icons/Download booster/B03_download_booster_wifi_01.png new file mode 100755 index 0000000000000000000000000000000000000000..44271e9b4a676b8c4822667db6760378e3b3c03d GIT binary patch literal 1255 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~%1|*NXY)uAnN?apKg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+AuIMr)7pjltlRYSS9D@>Lr5I=vCwv0Ch7k*w|MTBqnF4mMA2p zrf25aD!t#mUr8Y|#a1cY)Yrhbz&SM|)1#^=HMq(zB)KX(*)m1R-cG@$!U||WZfZ%Q zLPc&)Ua?h$trFN=D(3-T9Ob#X~hD#969RTqa;7NqJ2r55Lx z79|7YBTX5m85nl>EdnV7y2i@CC=(bdi8(I$$)&lec_p4Mwn{)5y_C!pD>oxYM*}l+ z3nxPtLsw%%Lnl*9LpNh{b4v?nBWG6&OPCqh^qQC%8(W&0yP6u90%O9}#KOeT+|ts; z$=t%y!pzjr5vJEOuec;JFF6%vZzj-Qs9qPmdaay`QWHz^i$e1Ab6_bTAS1sdzc?em zK*2fKOhF?&GcP5-yjT+yJrLizq!wkCrKY$Q<>xAZ!`CVki~YtX#zsai&W+QO$Rm<-h!TZ1cYI{MQBIERJusyW4zYSLW(; zS~TIm$R@+$y{$}T8+#e=U2wQiidK^vHD-FH*(pA<_gC>@@%xc-f(kj zi}F&=w`J>Ar`k?8^KEbavp~q_*wH!P#f{!aWG-qw9x9`K@75pHUqT5Cs!B6r&PTAE P2NgY@u6{1-oD!MrCPzZgHu^eQv^45mrE{}OVZ0mF3D}DUU$3RTw!CHCQsYY=4DB` zON$d6w)JJ|bO=LnjD46Ou7ZLTr;c8?u?>f%j7^0OJcKGcolyE^O!P^6SN%}-!H}2d z|2+TS@Bg0HbKN_dn;vgM5TrS?Q_92dW5Ltd0N)pW8&?CtlY6}$tKTas4nPFW>H}!T zPzFFADB9@3Dj#Dioq69h-->@MXL6X~jTTzFAhxUO1-Q=-5=gwoO zuJPF3cs81~MKGxE9CJX=Sa(4k8&X*f+rAA=`Wz%MfTy6oF>Jb=&togR99#$6IEJpM zctbq4>Qrwwhl-X1(0C*kR-*)g(sYEN;xtWcMad{Z;!$|hVS?h~G)E@T>V-jTj@HlR zrF7L6lz42=^K1^si^XE37>iiW08X$h8*q?h7;1#wQPWfWu<3Tz7$o4Tj&6IpWugJ2 z(r1l$JO({o4Z*Op*)?L*ttJYl4EGfqCn8bYFoL*Nv|TR`{&izrZMQIL13V90Ys67u zJ^DLqV3@o68wwPmH{32qhec6_B}*MKfazr<9)l+lP1m?IDF{(I!K4U@kYfaqinByI zmPoLSNQyGU);QL~QWQf$gdC5?VI^dW5h+@dDOnJtw9F7>4Vy7tPcc2ESexFtcunCPtI`Y3?4Mcf10JX1v@ZUuC+cC)`ka| zaAF)d8m0631cKCsGLlg6f2!ONo_#Nwi?XjlE2$;#YjAt@J^9`cv|nAz2O z>#v4+{w~s9xzQmu)xUofeTKOC_gv?zzbHF?&vpITRr$OUyYuyT6>jQw1I-_K<%Q78 zuRU3wy!Y|3xzb2Tuc%L`56{imn>yGZFUD@QeK5|-`=)0mvzOZ=$5K5LpOm&PK0-3H z#FTBdwuqbFVN&h8uYGlPi@AGVOO7*lPY(Z#$jjxr!{LPvZ2I{h+FCz6`BJ$apT7QP z*}vGh$n3d%!ClNg)skx4=q-Fkq?$9*xBTrZ<+qqKzn*$yqIC7kx{0OP#J02FyqmXL z{L;B)bN_n>at|)=*>Ymvp-)d7o}XRd-rl(Q{k@iJ^&#Y=>)7eO1792u{yiDFTbfF} Gc;p}Oey*SZ literal 0 HcmV?d00001 diff --git a/data/resource/icons/Download booster/B03_download_booster_wifi_03.png b/data/resource/icons/Download booster/B03_download_booster_wifi_03.png new file mode 100755 index 0000000000000000000000000000000000000000..614a1ebcf193809fd63c4775a93a66f808003b8c GIT binary patch literal 1259 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~%1|*NXY)uAnN?apKg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+AuIMr)7pjltlRYSS9D@>Lr5I=vCwv0Ch7k*w|MTBqnF4mMA2p zrf25aD!t#mUr8Y|#a1cY)Yrhbz&SM|)1#^=HMq(zB)KX(*)m1R-cG@$!U||WZfZ%Q zLPc&)Ua?h$trFN=D(3-T9Ob#X~hD#969RTqa;7NqJ2r55Lx z79|7YBTX5m85nl>EdnV7y2i@CC=(bdi8(I$$)&lec_p4Mwn{)5y_C!pD>oxYM*}l+ z3nxPtLsw%%Lnl*9LpNh{b4v?nBWG6&OPCqh^qLr%Sh%`6yP6u90%O7z#4&bpGjeit zHgh&`GB<?$S+WE z4mMNJ2+zz*$uBR~1VsslztBIkZ zrK^RZi>0fnk)^A#fw`fH5>#&rIbo&`bc{YIaUdlYm=G`pf|&5659GizPih`8#}omx z2G`d3bqoxQ(w;7kAr-gYTs!N<6ew}5@c5F}1pyb@y<@k0VA{pGyX6H_R3-P?txLln zuyWj5=X+t*Qb!N&PCEsSjlCIK6@TQbTqH$iP2P2)@?rZN$tRZb#pim`dpg(bS~Sr# zL_(;oMRB%>(C4k&CmvLMB(b11y=G@yg)#e+jVd2I`<(bo{>z#FDC4~O@H)zcTe*JS;Fo&9-+BA%#g4eEzxDJ)w>%emz(4cLJ-?gWpH^tSxng?Y z)3ZH~jc-YpHO~LSv47$7J<{S!o|`m%igz>E_#$HC?%&M)r!B(v)PMFg5ldj$+_*C& TWp3F#Q1RpG>gTe~DWM4f(V@34 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Download booster/B03_download_booster_wifi_04.png b/data/resource/icons/Download booster/B03_download_booster_wifi_04.png new file mode 100755 index 0000000000000000000000000000000000000000..77a616c73b4222572b075b035f5ff1130b77584a GIT binary patch literal 1258 zcmbVMZD<>19KUsAy5iP=v9c=mdY!rrle_1VTyjTZP3|r>)^uqax1yDKy?c_J>Am#s zvRn&O=V~``Fbj%KrXq+Nz6{(1nWEEB>?Zg{oYPt6@C_$onKCSX5T9$4>W8uq9{2M6 zpXdMk{on7&T>stcTRU1Y3|pV+74qo2(R;34i{3Mro{&Ak5r>>Xqv+Hm3t~yd7=d_3 zlS(iTC1rf<42)yg>Y`d0a)z?^aNsSiHwICAk6}d<2$MJweRBe~Q3W zB|+?nWT~vl!?M~tVZp(P{(?MFky(Z4xf74O93s%5BjK(#s@t5KAQpK!wDz`10$)^d zDhXoAsiABR=M4+ukzgnwQvl!$69nN1!+<+*ngTRQp_>VSFc)DsI*KV`5M{?PIg+f^YQb74Xjml@uq^9w&~yN41nhC$k=%f8cQ+XXXv>yrI;x@L9-}m3 zRGkEYJY5PwGqc%cV%=^e3Z;y6C6fd}iqteOu0?Iz$-{r$SW(+9jGK_mL))lYGO9!-$OVi0D#YAH%AOJB0Kq|t5bSN5S zV?51^F}BIE5;jc5La8(@MyLp?gcyzqF_7lPaFPwNsZ>&EVl%q!NV*K0c2#7zffcTb z<#-E9j$suHW3<@;xw7FHcG)m-evrX8?@)EcsM%Y*@+?IwKug^Pm9%AO_+oxJbp`vO zaEPV_J}HPGDuw}I#TXD+F+#Iqh>C(R(ZDMICubybhV+`_Kh4tILLKNWms=kR%fkb8 zG%*$$jh8g;J`7vckr9#w_x!J4zTMX{=Kp9cF=^%>UU%a)rRm%DZFOfaR-fM2_O6@CUWiS#r{DXu&wivozW<6V)=xh-@Ibxi_?t%V= zO!1nEZ3y-#)K7_5tc3vsIUYh0K Q^8P*_jVCaI zk8p3iR9l?Ep&rPkn8PDDTT8rzcVa$cmGyBfi#eQc0QeY7%Pc)vpUG#@t^@J>9qz|7 z__JZ7i)EI+6)&(a*1C8d!)2D9>m_#PzV?#_hCPp6xX{**GE1v;-hjnrmahMg7;Dd+ zXu&JNq>VV<29)GQ2kY=E=6@!6aSkt)Svu8plG&l|k;)!Zcq7>KR|CcZ?8b`P`j=Q! zX6c#gOcn)OMjB4K87EK`*~|bQZvcRmIGW_e13i$zV9@O?U6~i+8w=%6;ALFfQgbsN z?SWjtL!siymZC{~fL|(X>KET&S(&Ay)pkuG$6a9`_4pmDumq>@Nq?xn&c45~DKv7d zpF#eJ2k~rW&_x`3H0M@>ubVMhq| zZhRm1Gwu6iH9n0t?W+M)V^aX#64yhc{|)ph-i)8IHQcu?hH)cSlv#TIN>1`m*vb(0 zgeNt{Z=v?(WtNWjy+Y$J^OnD2ZK(R~U{`N$yYXVx2(R>xug9UV_I1ImCD=F}0O(we fPof#FLi{@bzpb}>cu#*W00000NkvXXu0mjfiuYud delta 676 zcmV;V0$ct48nqfBiBL{Q4GJ0x0000DNk~Le0000e0000e2nGNE0F3^)ZLuMr3V&cp zL_t(|+U%G?WL!}chQCQ_7>215N(jRc!mLUtS(Oro64K33LMfrE((TYySJPFsQr%Um zG@C|gB^p_jXf`R`l%cd*DMPhdSwzR*%^8ks(!P1`&C8=XJn!B6&b{Y%{(H|o=N2T9 zXBi{s@?QX)1Xh4OK)^n*4O~hEp?{<#&vi)$I$Aa)ok?ON3AjZ?lWj@kaqSdh?&2cQ z0j47AUk29V7&;YmWy}CCU3(l@1S;0v1>U;cY)pjic3JlwOhdE5fsk?S8SK>rs2UG&NCOR@41GTer)VmyA#EOV-b%v z@2R9x95C-m!kQa^y%cTt(gN5EvKD~D7=R8(<-u-{6aajU;jL~kM>j2iU)=Y!y< z(?vINM^eT5=Oumq3%ItVlIh-Z{ZB_x)oldjWZ!T_Qp-H`QPLaB4bQu=O*i&H(#$9T zPDt8!hV~*DDoMH>c=g&S>*9IG%y zOL`vx*h5K^S>G&pnFZ#6Wh(^$?pQG20)8Z!ypZAr<|@#%@6$1&beGn!K)YOI}RgY&JaT zmEF5x(BJ0iOP`9+4=}9K;4`;{T%jE zR7=GwmT)P5P&JSp)k91)uwBBYsNTN7)s0bz=`tL#oFwz@=`)75%p`L}%5!;FgH>x_ z(u2d3gGFO<)JT|2-#)rGP>FyIu}%l}nB%KKlBw&eWFBs_3|)ud(Im6vR4G41YsiDN z6pcj;j^}Avj`E@;%luwi;CO-M$SX&9QI%v>h|`USA=W&zq8325VT-JiOci5SW!YM- z7Olmi$Qxn#L?RJt2ttG)BL0Mf^&sN--Ax4meZ#X{Y$1mZ74U6zk>tZj$)s-t~efPdXs5$zWzT*wxnkH$TN!ZYTs2Z`4Dc zMUtYA0c4EZ(7`#7WXMU>v`m!~6%xg`$i)RtR(M|Fl$a7rNF3l4SpuM`u@YAS3IQry zT$9o~pAl0D5oA-G0yHJ7r8TL^%{e~S9RoJ)TEy-WH=bRUt7;z9G4hHCjWsJ^sERQ1 ztH`CbVVT}_#Bxkj^LK~oS-LHNo^=MASr6HCJ-({7f_;z{g&2sDA*V7T&!;&dp@>{U z%P2}b6HhY@uK7PPV~I0tSRDTpOLL1|?9_Wyc@kndL-JL&4Tb<8=R56$< z|6W||Yq`IsW9y^Ep7~q-FAm(@aeM6^`s2FU504+WwvL?(_H6cFzuB_+;rjWP@AsBx zw|u{LXZl3{!rx%w4BiJE>o5dp0F=$7aGN&t(R|gY?O%Kjime?EnA( literal 0 HcmV?d00001 diff --git a/data/resource/icons/Dual SIM/B03_Dual_Sim_01.png b/data/resource/icons/Dual SIM/B03_Dual_Sim_01.png new file mode 100755 index 0000000000000000000000000000000000000000..1553dc9a64186322145722a94191f5c9d4d83146 GIT binary patch literal 1264 zcmbVMZD<>19KXC!=f)sg>!8}T=dBfAn%qlrm&?(tx#TV`v}sEkSpDL5$vth(L*G9kVtvQ6{(#7Nv9G3nFt&(XbB+!YC+A9LDF`r23)kgU3C0 z&;Pmq@ArSd6C*>9@7{U;P6R=Arw$1j_-=RBju!Y_{q?!LBiQ1YJ*tn}Wyu5xFY7sg zrc`MHWPl`3Pp*MJ1o4b3*)e-8J;>#CH6S@Ufr@HCG=lW?R}3j%1U8xj6N(naZhd?i zLlrrS9j4Pn+DL$ca%jc`qccO<{7f+)k+J@RXkUec1S+s4w4#pMj4PFlJonstB zH&pCm6x(!aEIooIbQ7R-An4B%B#AOifDF+LL-wK+K~gvYZ^loCIGW+8Fxt2w%s*z4_5o=Z>Q7~nAMKW+QK;WwC#I>Pq*%|P!8{2AI*=Ymd8DQyC zW**jK{6G^7b9Z+`jw1Ai8#WbK6saWW`6(4>c1nn1@Jm2eWR3{2FpJ?35vB-+B}tZG zgKRKD69U09v>-G&w!=m!kqyzIcsN1FNm2~)e3Iay$n$($Oj401Hl4)IT*3sBt(#e0FEu-0q@dfnRnQGIG0LD1A67J3FI$f|<=Ko@0H*RZkdvmaq8s_; zlx^$_@emahf^ads7$V6yK}FaQ5lM(F8y3THtbvvPPtI`Y4DK|?f10Iv1Ut~#ZnZuX zwuT32aAHh28h=aQ}bWz&8_ZTKXvZd53%2pFZ6WHRT$qbPc0m~;9Wf#>zMl#OJ-Z= zmrhIeO6zg4`nKoi8})0h=eb<%Cf)XhYjVFYj8xgIM)|rPD!BI?bj`mLyVHK+vM2RS z&x3ES_}X86qA+{2?e~{o>lofK>#0%Qp9DWx*wyl+yGk!!Cvw;uZ3D~hs(bO$QS|Rr zdLZDcqS?+g%kZk8hzg2=HxKSG1VKSPiHHXef*^>u9mM&vwbR4!V93XNFTdaK|9yEle|XEr zj*T40ZOIO)1@_$?JR92Bd*SN^J=oApiH?vlTGL$2r3_NWAZuykxPUcd>hw$8&vDIT zX0b#|xudd9tgsef!oKA&Hplf3_>QJmF$HBjZrVxy`?KdfFpVTX8q2|)lg1TuXxhai z)A^!4UDXo?KX4HA`!W--Fx7x>P1v67C;4SvnXQ9kfd|VFT21mRPL*=QAWd8hVqr0) zLxg}Ng;6vnNvIb@Ac_c(-BJie<(MQ#`au2SnKjoKlMCu#-4@#=`3j|uEC{t)EnE}B z#2ptmmsZLgjv zmNLQD907%)U|B(2%V>`l@E?42MY!4kx5r)^%(1HkXi2jZ72XTZ{%aH$%>*) zs6?N%uuZdSl4pOyhH1z!8fRJTi^9GLl;Q}*VO)%hi5OI2T#Bh`Lt`zj1Vt4pi42OT z6ofKSB`v~uN>or9N=l{=Hn>^aqnfSbhFz1{t#j3Xa^tfArp-b7_JaXyb5tZ zdPD;IMorrwHE(}Vo|R}-?3!n=G3XKtEaz7?*RZb)Midq$ibey^S=^$SNlUEwnGAvn zF~Qfl#{c9@V9p3ZbNtmTjU(29!E&|r*=BWku+1jMWuvj_KHAL2>RMJ!75xw8pG!*v z%@5aY+wo*+@8{cxULASRb*HHZd}>?x`1EN@%fyV|v(&}kumIIfDFP6Kv zHSd|f*LC~Gl@p4Z8ob`*M)PeqyLxB&s~sGe=Wb1(J+5E4I}}WOHj`H$DW}f=2FW~O AYybcN literal 0 HcmV?d00001 diff --git a/data/resource/icons/Dual SIM/B03_Dual_Sim_2.png b/data/resource/icons/Dual SIM/B03_Dual_Sim_2.png new file mode 100755 index 0000000000000000000000000000000000000000..7fe60214519d059d8626355b2e1a04aba9f2f7be GIT binary patch literal 1249 zcmbVMTWH%>7?v9^T>>s?niZO-Gc_q4wRN#&SyJM}v86O7b(T3U^}{wQODD02b(y5h zO4vhKJ8)rRw2ZwjV`CeIT|%=`*hBYVSXvTjOCGW^I`Bq!VWXrk%R^aql*HK{LLVk{ zIhX(Y{_npWT^b)d9cu4x$1p6E9TD^Bd(3~HZAI_;Z*M97#FdKfggNO}WgB8cs#$^{ ztIJa`4`p@swOgT~LBknvujGeRC5B znwrGV#dB27%D}QVGH1hyxv_#WH?8n0J~#mSJpmEu(3OFwR}4q+lK3{SfX4nZiGytu zcRGphh$`mBLB_Nph!e4hLeVr}S%PNbEK7$$l%k^~g>E)NGeVpdq6x5j;mDhJBTRdWqkn&oPy0enWe zWX`xr94XxiLAP?bJz~SzO%zHQ>B$yJ6BMcIeq7tuj+=-7%GlT1Da=}s%tObVu@zL0 z$>U8h%H7i)`G!c1@S?4uqR17|RAzK&xLGlYqa8xkRDohRl*I%?C889|(KJVKF)qf( zDUssXxF|L`_QS>{is$%@L~}!FnwA)jXGAV0CDK$}%)~jqiOm|0D;o-I`qhx%U99+2 ztdOyx?3#ALG%L*x7%!Wy>6A?iWF}Z}@|(t*yb9&jUw}E^hTSK1!{OUhVz(z$x&cwf@7>QZQJV z_fB;^5$$63h*Mp_Q;K8AKWodb1HT6bY?d*co7cB;!`>w6_bx&9A9c%egXL$M7 sms0s_1M@mBz#`(&yj&2ixSG>;M1& literal 0 HcmV?d00001 diff --git a/data/resource/icons/Dual SIM/B03_Dual_Sim_MMS.png b/data/resource/icons/Dual SIM/B03_Dual_Sim_MMS.png new file mode 100755 index 0000000000000000000000000000000000000000..47d586465833ddc8614cc70f014d7caaaae0ab4d GIT binary patch literal 1211 zcmbVMO-vkR7#<3O5?B#q6H(&FP-+eA{Lk#p$d>(?UAn1DaoMEAsOjv?x9kY>6liP?k1dZ;I3tTEiwgW`!p6Z{5t(F5th$^3jj@AJIx z`+V;^?@dmOcX#%65(LqmJ)`FF_vzqyv>m_ezg^UW2})0+DW`-gng@x5;S?drTG|ZE zL(N!ta|@0VL~F?`Orz=CON#DTlor@fRm;U_f*2jEx|%)<5h%hL(~gmUe)Tm8Oe02~ z7jsO`O~JBxX3>LFixUNXaaNZNa_lr1ttyznf=B~ZYtHtSYK+|HRq!}irb)1Gf@Wjn zK~U4VNsw|p2tkP{RNupRmlq7Zpa16`Q48El>D=4C*a1qeBNbJosN=jbMG<@M% zj4UJMDl}cGRHzD1Io=G-%Ca1Aa9kK$g#85@Y1Odp4>lQ8=%$OuU(Dez5f*7lKR>#*t9#C{uC@u65H-2Sei??0)ydU>Ep>^^FSMSjE7re zqDO%8wS6$*MGi!yRB_*xjNkA z-}|Ar=ZlW*?|&RAZg|hW*s`;T5}A=}AM|Z~xc2esf#L0Eme-&9oqKh?zxMWDSB`a3 z!lka)TX!A-cfQ#Ot=?bWZ7=k5@t4QHeZDWg)LVPJWoHx|UwQw#mYu%xt^1++$;-QK zCrhFF%*t+m&$*86&G-^goB#Ch2fItj8$;l3S6z-Tg=$w<)}P3RHiuR}Vg}b9t36j6 z>nit_2Eb-#-KjC-YrSXfdxJc8=@ssctzYk~UYxv{=_YzE5J_sFL;d8nYr*d%o1RcV IPhNQEAC=>V=l}o! literal 0 HcmV?d00001 diff --git a/data/resource/icons/Dual SIM/B03_Dual_Sim_SMS.png b/data/resource/icons/Dual SIM/B03_Dual_Sim_SMS.png new file mode 100755 index 0000000000000000000000000000000000000000..2e9862dd79a3715fb5129ae548219a6ea317c373 GIT binary patch literal 1137 zcmbVMPiPcZ7@wG+A{EmJ(gv!JQK4#f=kLz$3|Zr3W}-{7YuGF#2ZhegyvA*Eh*-+C%WrVg9^7 z-|zQ*-|v0jTpTPM-?^i62Srgkb0_p7`F$t@)~QAtS(p9YPKCf)+Oq7?PM zhA%S9(p8Log<)#7TCyf2Q83DIvMk3OJf9#IiEz@xW|Z*4{Y?fPhF0MC*g+nM8O<`9 zz*(9^x}JjT=kpuHUf2+dNXA5_&u~eWaosqtHR});;lE*QY8{p)eaIAHh$aGyoJVDU z6HK&wzoXcYM5CMx9C9e;xQ?s|7kW6SXKAvNv>jVv#SBp~EwX8zl`^$6I_!8hs)dK*<5|yEhk^42wEF_&f;D{=XA}RbD$APG zYw&_37$V7=OB+UCikG!?nkbT?8(91QXvUCWn7BCpQ!LFTQi1Vsqx8vSqj{i5Iwl~k zvG@|slD4{*)74V+efghyy{Gkd%kDk*>IdG;AA8z=>)`b*N5D^8mw#ATXlomvj*hg4 zFIGC*?{0hZ>~&Xpx#Q2TZk{`R?DxW0|D#`44lh0~oNgH${&1-!`qlu8ALabjy86kf z`Kuos?Vp>TnVs&u^5ucIc-z2Ib*BCA*5xy8ujXfRmk)x~T^EE456+!Gd*A82Gxzo0 p8>`jJ`?g%Y+kQ#>oSLRuslT3o_uJCX4}Oe)0y(3g-|7AA>^t7abIWq3rKp~oRj%Ml;fP`&JE4a0#`R05Q8e5wVVw7`^TTsz%n!R zOsc>ZTou->$wd!NFBZ$jV#AP4dh7`>8YqOohFAxIJ?HpJkfGOk6|xVH85*ps;6{et zaH>+60xI$#NF|bSgXK6NiV03gi6R#RJj?M6OKvgF2}(*-_%!HTG_mHHHKn8->ewPu zhOT4mDh$(XHWSTc0(r9xC(Clk!SivV5%(7ytOs$&?}&^J8G#TIfv$f#G*JkHR> z(~S^pw@}z5cKlAFNXnQ%cNs3hGPWJYwXW^s68zVVEw%mff(w}v^wGR$kb2aHyI_*L zyBi7>i8sno&mu+9=QL!@+t9&zEklzp3DYtaR**;*(*m33SyAFRiItL4QckfND~Tyh z>vC*`<#<8n(kdrr1&-r#LN=Y_C)A{-Wkos5i)t5}cYLfn2JG6kh}{mBy(?BxJ*Z>k zl@XfjcED5}VdU453)E>5?4Pk56E*zAIonkeu|ElHM` z%@Ow}SYDO{R#tP8l+L9m=nmHWKRIKFGfdbV|7n))5$V8iyV?3g*c=|{kcsigXsqs9 zy-ddHW?svdgYT+$*4D;)E^OQVz{RzZTc^gqI(&BD>3a@>n|Gom&bHM*VMA z2csYExOM$TtlA#@pe)_T&iGFaV-P%|8R$>>I+k?Y&{KqS^J3kq@v-gC&^w*=U zhsUBXy*)qpcO*p(ot$bNf9mDRTalB09=QJ4cCFGn`udBlW4VF*9{l0z%*gHCm6F&~ z6+vxBwGmr*<@~oPzW?g3=XT!v&g7{+D#B96=OZh(i_2e!e~^5xsJ%b&?6H3UXpMzo literal 0 HcmV?d00001 diff --git a/data/resource/icons/Dual SIM/B03_Dual_Sim_global.png b/data/resource/icons/Dual SIM/B03_Dual_Sim_global.png new file mode 100755 index 0000000000000000000000000000000000000000..ece731c1ec3ebe37f065f32684743ea8db3ddb44 GIT binary patch literal 1348 zcmbVMZA=?w9Pgrmy~rYL@-h>>99!Is?cKG#>-D4~ZLb}Og|3th1HK%05A+7TD|g3Q zh-iW%0TwfHQQRVNWkLDi%Yt)^m!x}>p&=Ot*atOpZjdlP40Tg7Uxv>CML&>z@N#$0 z^MCID`~Baq-Cw*XZR56$27@83uz(G~HAjEer@;56TdlkECT7K1gAsPSUFR^HjZnj=HcA>7GfHZ1l7R&(uZR&% zlqE!GP`u zVPq-4jJSqEUO zx2vrWh1KB!5}X(Xjz-O`cl`##I#?-ZF!t^EbOL+Wx%FKAWzWo^${lEZud6vDzj*t$ z^o6Xxpmv};5bvQoLt8UiLx(OMNl8z%1mY6~l^46$KXx@LY`>B{FmTg5GIR91V*}65 zn?JWazNzKJ*U@0bA1!U0Cm#KxU}|nO<)`M%y`ATojNOO(<}M!p#6RBubE0|68T|V2 z*yXeR>DZk(nt7@{bt<047YvSEsIEKtq_6z^hJzDr)QoG7e-gY^-}Xp{cQNPqmlk{O zA{Y;NUg{iulQ`$d7`5!0dHw0YfuY}jd$oiwyF35m3#Yq?)*W4>{puT6t_SbF+~Ykx zedC84W4&W1&+c1P_AR`~XLK_kT|2Yk=KcPx*RH)?)N|sF{N9$qyUyQ+AB0Wjm;e9( literal 0 HcmV?d00001 diff --git a/data/resource/icons/Dual SIM/B03_Dual_Sim_heart.png b/data/resource/icons/Dual SIM/B03_Dual_Sim_heart.png new file mode 100755 index 0000000000000000000000000000000000000000..ff78ba08a55f41149de25770542a05eae878155d GIT binary patch literal 1250 zcmbVMZD`zN9M5!gZAZZ?o7!$_$XeK(m$$o1a-mt5yIi`=UU%M|w8M!_lc&AV=A}ul zcRluH71;~;VH=%(8MrYgEo>H?pLDKM5nt#;a7ZiSl!9~&=1_2`Wj<-|svpWe7?M0M z`Tu_Z-~Z*w@k~!wQ)6o*f*?)GJ}C>wmf)$cgYQq5UekhwpX&2-_Ml%~#Sei^bNl-BMRa}s(^yIb5uol;`&OK;HnTG@>@Kv;Ij#wUF7O)jw9?pYp0z+3! z{9yrG71fu{ph?>WXbg{pHIkxGhQX<5jA5wfP@1G@f`m5{rlNd|;b|7FUKsS|>Vte% zlB>SpO27)f@9+dsDwXh31h?HGf{MrE0S8Top+(pmw|uo6w!9rR1_^kYYdF4PTWG+j z4%kIsz@XCA5KJeXUL&@=YNBAuh_dPs6iyPR8N{_>?fF^ouZ(rAz5KWXh%E5zqN~Ar z4DP6bVeTI8C@_R-_yev1i=vK5wpKKO4aZ$i;Ka1QbIA&GDaRscpdy45n+X4;O2P2UzgL zxbSGa_xbZ2f^2A3Br#uJ_;B)S2;_YFs;q@Q4Zf4ppDcd@^ujam1PG5PyMLV;^O|<3~H=dYoz8Rfu-O{~(XL{z5 z%SyxBO=qx^Veb9~R^42=*nW3BZN3qme{-xdE&RH-$-nmaSRI@B>Gs6InU}YVhsmE8 z>TWfBcIfJZsZ9-YE$#F53&+k~*mF`je`E34DFU-5!JoptVp}++bp3JbrBlnlOidiU zaXr_OIT2c%J+kecwsYH$><;O(-K2alG5_lMz2xNY-<`_fZ~eV=ded*mK3Zu0@~LmH z;}>5k^qhTn=D{a_P2S&q=gDXKm$es-Qtu5`m6iQMGeJCB>NNjyrmMsw{{*c|enVsMm>O%*WrI%PZ(o?0E zTFIqpX*POGlQG7w4W%`-B+$axV9RKB7+nu7-RQ>HA&0@BFbX?tFy=iacGg4ap+b6k z|EK@&_y5+l@#3k2`;YFYDC%JTv{EAPKL2@hFIhK!U(kF3XDfIDP2z^?Kq{r9Dg=2` zoq{E(>a!QVgF_V6J!zCHxKemu){q%ieVwpp+5}BeLnEH8YITS~6;2seg8t*nuW4ZD z3Hofbz!vNbtQn{095^voENgRhP15O+VKC&$gusMY1)e!=xw4m_w|Hf;_m3GGY^mUS zg5GwjQWysrP+$1^Os#SkaRQBme&pncKAnxjw3B_-Fk zMWh5>!`PM?rqO7G8<8+_rWj6=B%g!lLqsFw&RSUYLYCX#VNjr}Ifji5WC5R1t)dy6 zpoyp3A((cdutRLQ?L?83F`jBOT$p7{(~oOQ+r=gLzZ<)1yX9FMG9~Du8Al`anC$O> zN$y^4$X6uZ$YYK{ilR;{NSiUCh4V^+CSSt3q06igCs~XMY>a2cILF1=cqAT?qO8Kk z#i*imICjIPBJrHSr(;4aEpc2{Agh?oWTH7qQ6jk*-@)cB7ps;AJ9Z6Xw~ZBFiIp=B zR55bO2u*i7V7!Jfa%;#2nF$fRd)BaY)NtSP%d;J=0v+Qb)N>9p!B&1{V;B3ebT%z2 zqUd{{6*x{}(_%Usurb)Px>R&qG?;Pdr5_;H~bc#K}$ z%5uw<(c!?F^qCxN4cs66JFro#JiWXc3AR?AE{!CgfApZM_t1yU{)bDKlE+5ZyLyWY z&67VZ$>7L|Cq0W_96I+&aCxlvT7KoPKUWt&9s75=CjId6?%U`09q7A$#!1OXPiFcz f`)-^2lJf!Tc=Pz;SJ&6R^?w-oY*D$JK7Zvu!jOVh literal 0 HcmV?d00001 diff --git a/data/resource/icons/Dual SIM/B03_Dual_Sim_messages.png b/data/resource/icons/Dual SIM/B03_Dual_Sim_messages.png new file mode 100755 index 0000000000000000000000000000000000000000..2e9862dd79a3715fb5129ae548219a6ea317c373 GIT binary patch literal 1137 zcmbVMPiPcZ7@wG+A{EmJ(gv!JQK4#f=kLz$3|Zr3W}-{7YuGF#2ZhegyvA*Eh*-+C%WrVg9^7 z-|zQ*-|v0jTpTPM-?^i62Srgkb0_p7`F$t@)~QAtS(p9YPKCf)+Oq7?PM zhA%S9(p8Log<)#7TCyf2Q83DIvMk3OJf9#IiEz@xW|Z*4{Y?fPhF0MC*g+nM8O<`9 zz*(9^x}JjT=kpuHUf2+dNXA5_&u~eWaosqtHR});;lE*QY8{p)eaIAHh$aGyoJVDU z6HK&wzoXcYM5CMx9C9e;xQ?s|7kW6SXKAvNv>jVv#SBp~EwX8zl`^$6I_!8hs)dK*<5|yEhk^42wEF_&f;D{=XA}RbD$APG zYw&_37$V7=OB+UCikG!?nkbT?8(91QXvUCWn7BCpQ!LFTQi1Vsqx8vSqj{i5Iwl~k zvG@|slD4{*)74V+efghyy{Gkd%kDk*>IdG;AA8z=>)`b*N5D^8mw#ATXlomvj*hg4 zFIGC*?{0hZ>~&Xpx#Q2TZk{`R?DxW0|D#`44lh0~oNgH${&1-!`qlu8ALabjy86kf z`Kuos?Vp>TnVs&u^5ucIc-z2Ib*BCA*5xy8ujXfRmk)x~T^EE456+!Gd*A82Gxzo0 p8>`jJ`?g%Y+kQ#>oSLRuslT3o_uJCX4}Oe)0y(3g-|7AA>^t7abIL%M{H49Cdni6EB>DZm zzkENR@Bb_g4t&f*{mMwuz~FoG)49G2d-|6LrhoUsO6-Y7kBP4v}LB5 z;bf67x;Z#z9hmXp(9A&Dm>D-xCey#4?h6z`U_-3afj!~)N|0t&conh_k2!{3QNiPB zX4R=magfd-57J3C9y53VXi;QAA}NZXmlk*+a6Gxi7)U5dQ4u7%c`?MAXV#RGsx@s9 zDb0*w>?#~ruh-dnoJHO!2U4k2$RP+Zq7n0_9jpg2$M0-0sL(e&%f%LQ=#WvbqA8qa zh^MO|*lw}7M(p^_M3Iznf$nmEBMdFR}xo450=o2b3rflfof|_Q?7uK{)g-^&Ni&BD@1YVQ@ka;;S$5TmO25k2(J$0r-$Y~<66Km6I&SZte{5B79i*FoFqYagAD zh!L=lJ^0=BE0JSg1)Uwfe!+aOrKhp?=ZXG~*B|~nY-WzW+7R6}AM99~y-yYApDaKA zwqvBL``llfcOPxrc9>u8eRXDQZ=gxXb=^vM8-KP(GmQ$A|AJw$) wqrc8=dHBtwt6%?n&qD3@&Yx;OD%3`vx^?lHvF*s+U&0?kAwQsA&5j&@3uJL|kN^Mx literal 0 HcmV?d00001 diff --git a/data/resource/icons/Dual SIM/B03_Dual_Sim_phone.png b/data/resource/icons/Dual SIM/B03_Dual_Sim_phone.png new file mode 100755 index 0000000000000000000000000000000000000000..42b07daf696a395a65530a39e7f511111648eed4 GIT binary patch literal 1258 zcmbVMZD<>19KWQo)s;$_o7&Bn>vf~blH6PFa(6asnq1PvnyjRe7Gb!{-P7i5?k?V4 zm$ZJckqOP0xj{GfMcA;&5I5Y&5FI#>eCS|9EJcQjNSKIHkfDq!vie+`R6mq`@VL9@ z`9Jsn{r>M)9Ze5+?b^2sL6ELwLd?Lm$9W!Yhwu6?@5+u~$0qDCW6~~3CP0Q1BL~o= zCQX41kd)asZ-M~?X`58D6ZS;v6+t#MzvSrn%UThl5oBPnT$JQ#V52!OrRpKOQIFlk$#VE+Di8&LD&84&Q+_cOq*x+Gwpe#TF4cHP|)(W~Mltb7iuK@SXF^-{| zD)w{;+j43mHHtPHnaZS) z5#vo;Pzqsr+b#+?UMiLRCE9P8Q#i@N80fPdZCQQOMS76G0CmN8?> zupX0rEila8!wor#&>P{1sluX21<{aaG@#o_F@(V{ennLTBEZ2c1_MNpB3Ogv6Hw_Kl%&(yC zV4q{(;WY4mevvMKxez%`cT*& z9-zaCG2v*)!xWDou6;>yC|mwE_xHxeVB00v6Hi{*IMDbYd~4*RgG=s1=nw7n?`t)W zr!ZeW)NOsevb+0}j>hdf-duh6y~Pht91X9fPab@#a;{_HOtrRfdhy4<+Ui=k&|V+8 zd4KM+Z(h3~9P7RN>Kn*B(uSOr&PtCY-cp>uPcoJk JFGr5O^AAsxqYeN7 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Earphone/B03_BT_Headset.png b/data/resource/icons/Earphone/B03_BT_Headset.png new file mode 100755 index 0000000000000000000000000000000000000000..20156174d5b1809cb8e5320352808b7097b34329 GIT binary patch literal 1425 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 diff --git a/data/resource/icons/Connection/B03_connection02.png b/data/resource/icons/Error/B03_Error.png similarity index 86% rename from data/resource/icons/Connection/B03_connection02.png rename to data/resource/icons/Error/B03_Error.png index 10b873fb2a7d6b4b79c7977b314db0bd9b4aa351..5c8962808faa6253d1afaf681fd09f3d5aba7e3a 100755 GIT binary patch delta 377 zcmV-<0fzpX7>pPpiBL{Q4GJ0x0000DNk~Le0000P0000P2nGNE0L1BqW3eHh3V%0A zL_t(|+U!=bY63wJeHRIs6fuX`*`$bAm?}+LEC0a{NSWF%5aRdv1^&VnLJAv6rG-U6 z2*^v3cVS(3*6MiDRK{Bp*xYm5IdxS9NuMTXWieHvVihZv@cT$5Zn5?zVU9o$lJ(IY$p z(015wtldOgaZ!!GBe|s;9r-+X_^slDmAnF|dnzm|Xn6QKfJvy5KC40B*G~8v$s!P3 z`ZfZ7h4LL7*E4`#MekHk`Sy;hsmsQSDk(2-)2!qPKpykPX>B5WbLEZt3jhDD{NQT< Xl4!R9CRea?00000NkvXXu0mjfB{!vR delta 391 zcmV;20eJq57@8O%iBL{Q4GJ0x0000DNk~Le0000c0000c2nGNE0H{6buCXDX3V%gO zL_t(|+U%GyYQr!Xg+JH9P-sb)Oo4Rj5@^Yq8*~kH$^kNU>Xtp1Xz$TObSMdwbS=pg zvK6wlVE!x$7$YaPY*`NIfd<#umU^ z!7)9xX)4dLFW{l%LRiVMv#`=6$GS&W%jcK}JDcL)0G|cNbX1l#F2^F3V_fa3b1W?B z&VTZszDg_mz^j3U$s?(2!%EvaX=UsPEIt(%-wvSG>H5=wO&x$u^W0q^A|nx**KlXC l6p^uxA@Dbf9?Y`#0|1$+beQtvA3^{C002ovPDHLkV1l{}r~d!| diff --git a/data/resource/icons/Event/B03_Event_IM.png b/data/resource/icons/Event/B03_Event_IM.png index bf6750bad666400ae046d0abff4dcc0b24641bef..f8a8f7f86c7ce07dfa688743521bbfd89530d1b9 100755 GIT binary patch delta 524 zcmV+n0`vW@8J-y-iBL{Q4GJ0x0000DNk~Le0000P0000P2nGNE0L1BqW3eHh3V+E- zL_t(|+Ps!QOO#O*hMyS+98H~wX%Q7cpisCkS`>mBwQA8X5Q4U~3H$?YT)1!(Ld%F2 zK^t9!7_>1E1fd8E3W8b`qGTnJ^SC+UWf+~gllj8s-t&InJ@5U_IrrYLpz^;_)owOx^6bv&{AWA1IWJA}T*vxn`7{8T&C z4@sELtJlLG3O|cs|4_@hB5&1W4fvXRCwx@ZU&*sUHLJR|_u=P&8K4S0uRH6Cxg~rS z_zirl<5!{|1Fj_eCh$I2q+tS##{H7wGVlPnQO7@tMP*mlbd>ON!cD~diG=%{mT>wd zTP>W##aP`4@FKWdz|-gfmVm3V>$C6pMz{vt1Wtw1`6z^1yFU_bV`l*S0c#`k zhj`Bby$YGxA7v#u$j$(}z!Wf@;J+Sm*sBW=;ABPr-nbv}Amn8f_5-*Ne1A^zE~tNB zb2ak2I;BplkB(SxU#fF)&w9c7N}eYLQ1w{=qAsah6~R8K*D`n9D)Bospz1qyG2=I< zuBvZJ{CCx->gCLynfS7f15ow1`Z!v${J!~^??*^v*G{ST{&IF9VAU+{0xL1LqtP5@ z5@;AQv;dqA?OOttN8M4U*l{dyy)AVGb9)oy*+~H$ObBiWyhssh)H~{jnqHRnL$rHE zEMg9Zfe6i0B$z5qkd2)Tou5d5py@{)}BuL4{Hn9 e0{-KGe+B>{gc4yDiU4;200001sYGnPK4R;}HA-C+qb|;vzXG&L<0`O(W9*4Wia+ggF}}z6F%szC6P3U$hn_ zC-cPlr}B$s4FN{uWJEqFxIh&>sY|4m7g7x8V<7CbP{V*KTIpJmncJ}2iDKY9%h9zY z?+W@EPO_0^I2dHzgcUWQC~3&eMXXv1)CM;oC~3ltd5FnCktDf5uoMWi)NX*qj2LRd zC=Ao~Tz+~|hG8`zH0M1y#3HSw- zD(bL}%q^3z3>>W75<|au#_RF!@40euM~gG^(NTM$(77w-1oXz~rkAdrTp5@s%vkq6 z-?43^iR?W@UJiDDvz@G8H-QJQhP~$=wcowiefhyCKKj$Swwayp(&=?wTRg$HBVz;8 z88E zt9&IfsU3-B4UXi^y-w&^ZZAqQYcGKR^=Ee_UwUUzg_hlyV+8FVbAfRk2j7+SH$p+Pwv0BL)U&|vWjpd)jeE$ dYwcUltXCx;IrwvXnnkbtMs1XX{3@?%_kUIK4wV1^ literal 3389 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 TJ2M>_00000NkvXXu0mjfPs>Q% diff --git a/data/resource/icons/Event/B03_Event_email.png b/data/resource/icons/Event/B03_Event_email.png index f2d2b59af6e4fd25edd7893431259fc5dfdc7293..fa6c3804b4929642640671e3c426b90348b2e6b5 100755 GIT binary patch literal 1575 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 ZZvZ!4f*XIkSv3Fv002ovPDHLkV1jnN5G()y diff --git a/data/resource/icons/Event/B03_event_OTA_Messages.png b/data/resource/icons/Event/B03_event_OTA_Messages.png new file mode 100755 index 0000000000000000000000000000000000000000..0683e5c4ef875605278db1194259ff41e11b41fa GIT binary patch literal 1570 zcmb7EeNYr-9KK0X!9hk*N^5joQVxaN-TU%xaO|t|>nl(cVQs|8SgXXFuML-}5}b zuXopFFM2UPZfcxLrHXfCl1}iQqC8_qgLmie^k|UM_Q`$mXnEGU{yZoni~|BcD>G2oU&2dx*a8po;$W;SBQP{* zBKs`xeW&v2Y{({vEM(B=(%mSAK}Mqn(;JLNEDh44m=;07ZA{1XxWR~P=R!jl4AewV z5$+`ILt0>FfxWUEz!4-A3TZ+*jUW~ynAvPrIJDYyV396Gc$o>O^HTCK1IbEmkqgM2 zz(WcnQz!&w3k*EHAA&#N;vZ?$uGGg0Tywxk`NT#po&Gw4@o^s#anG#ZP z2mLHBJ4g#0400aaZqOSHq@Ex!J4%7tnDv-}G@0jGF_WGmNphIrVIa`bcmP(b!we{4 zvKc8GiD8u9s-sYX(o$vxe?xIw5SD{?DXk6je}&|uba?h*Qgi9)Rusj~s^DLsY} zRwHUNnRHe{OBgWH3=d&F|2ts_@B~r1?4hn3UIMMG3`foon2el4mIp->!5KT$?(bBo zo``jjge!cZxrg>95|h3xt$X@%-a9d_1=&$(>}%W7%gf?>Gr}hgmAwUhjn1m>B}8m;UAlRYH(n2B=z$C^EI2t-`V%P5V~=# z>(4CXFQzkV1~g-G2V&rRrAOk9-bplA+JkB4cT=BiJ{b(Hy%k&Mi)|cT-Th2+?wnb~ z#RY%GyZ6OA4`Nl*okCB?rlyvDSIfET$@LvMow?jx|M5`e!j#+9ym|96Urh`WC^*wr zUcdT1*J%_sRYj-9PD`#(PrFunQMWEN=k1QxXG75?m)cPEQ<;Sa?W>kKvLcn^L@}wp zc0>Qnv_sARe$=@!*zigFjPt!Oocj3Ht&7eB7=J059Vwtv;c-O~Ada?HGiM-r0z_9lJZR&*!&re(+0$u}GB z#x2<=EUjq0ns6bZH#`M8mB@W}rF5x1Aus9dOUJgKMmKq8WbC|TJ5;u1@_M-FUcL7X z_2Jg{rI*w8TsZo9HQi#lRoO@G{VG~^U}wse-L$!E?bQ#W?YmNPQ?R{1#B{K8=DoH0 z`wpqU{VJyjSe;Th{-1S@6s4cnC$SbL0Pt%7?D-tccTe~AK>!3}%IpD1M pP000>X1^@s6#OZ}&00009a7bBm000XU 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 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Event/B03_event_cancel_message.png b/data/resource/icons/Event/B03_event_cancel_message.png new file mode 100755 index 0000000000000000000000000000000000000000..206bb61947ca540b95fbea79d8975bfd7f4a51d1 GIT binary patch literal 1576 zcmb7EeM}Q)9IlKh8kmE*FdcK3Qzt6z_1f#TJ*ZfES6kdED@;%kJ+4jSi=>FJ+6HF$@M|A~P= zU+-0>EnXNkY1$->Mib?Bksk1!sy-3p!Mkl>1FKFHDoaTheM*p#IE~#a=5ml*VDdN* z$9PMMPH;&Y%?sb~8Cgme{Wighf{sybbRi)C&>Brrawx#C1)Kuqa(TSp2H$8s3PZft z24|XRJsogx`Mj%C;?heOXRxIOtknxA&xevi1RxMNg@HmspDe}cuHizOTq$0(wdA&P~g-ISIu zDx#b(1|UZ|4#j8keyt}oz$Ge(P6PE zFAptma#c!~QX->bkHkk@_+qtd?p|AY|INf(t+#?n$IG^COu-3O=IyK3GD zx1U?Tu&(8#ea%O=TOQr(Ki8TxvF>77y&0`Y{jF8EqHj-IgY95P#L0WJQfKe_sXXDW zkB25qzkIZF|3m4^_S&@r(WltCzLNQSvwORD{quU?tsMy$Hxi3(qK=AwOJwGq#GF;$ z?Mf3gVZ+r*S4Z8cxMPjm{;hInEAuLAzB*ghIi3!Ly$Sz(JT)f2!c%@|dhemn@0^eP zb^h9z*d3Pr<68b+vFUzfZ_KQT7;_}GKWA`F6N4#@qLI$~lkrb)VPP zwB6qcoe;8r|7&Gj+oI+R+cw!BP!06ulLrtqW*zn7^sj9PzwO%{wcK}SNiCh*a-^fG zTG-i_D2of+T@QO-GnU`&dRTw9xx#lQHz~JTTXT&`7${xdGixBLzNhM)&4bt#H*sct zVd~HiAL`0KJxf*3Yp1_AUr#6E%ZjGf?is4?zL8h0O?GeB|IrZFu)vpg9l7+0G`r}t wWiuZQhR^rK`W}K7H)`l!CBG&9d4lI}?^x^{M}EH?^3oOIcm`L_ImBz(O#&1yWZN2GEzt=SyZm=13hW)%H7o# zvIOW9JEjS4CYv7&F=~QF-I{&Ssc~ZAL@@g6S(_P(2{2nK^kfT$fr}1%I018GB1n9`Z9ro zWfQI6h2L^28g2)ES%HAI*v)Y(NdktkkQB`@WD~GiNgH8BH)AF#mS$L6Gg!HBq^2Z# z*$Bt4XrY-4Pik6*C5T)uXUW+uveHM8PN!4nu-VMW!mJKTnvge3>h4tr4ytiQ%xI!4 z0i98Z$yv>XBTsLIkj_NJzNDtEkxS}IvQXNHypSPCi~_1&>2OdC9iT|kK~lWe zAD}23W4Dvd48DR*{O^Pj$P+^EvUOdzx`bL;AFiDtG+8@^P(nph&>35_OrFOugB;?# zo%!!$OE+)2%ilI^-Z{Cg_|iV>jcumkIaB4|6-D#t;??2nBlmeyM!N2~`d6m24aIw> zcKA+>L>uM|-Iq4M=HC8B{ZBZLe@jj~T0hx^k5rgs;Jbg^e>%8jtjn{@ID6i+bTs+c z#cK->Js7En9QdvKkLQaci)GFE3eMWSqAzv+0a)KhIbhaWDWP{)?$Vh;C-_qR^XyTKRJ&|o>(GhbVryjJ3j#V_Ln z#_`Ihn+(EsaJ4XVx2cvtXPhaEHF>vwblCIxSm5y;PcAm5YC+cpsvBbo zm83B?Eaj7;=sVq?oc;M?BO*lN4j2PFATM*cJt650Fal=49GC!Y;1jqn3os2k8EV2A zFasxoE3BSrH2?J=;RuprWlLM)z6 dxvfOuX8>=L=mnPD0Qvv`002ovPDHLkV1kShkIMi6 delta 358 zcmV-s0h#{Z7x@<r{Xuzso>%! z6bgbMNL*KT`EYonkj+NInCG_Pq>XFCgIkV*xxgRC6#xJL07*qoM6N<$ Eg0=dWr~m)} diff --git a/data/resource/icons/Event/B03_event_read_report_message.png b/data/resource/icons/Event/B03_event_read_report_message.png new file mode 100755 index 0000000000000000000000000000000000000000..ee59aed555178b9d91c77dea0c1e542535ab1af3 GIT binary patch literal 1472 zcmb7EeN5D594=u4ClDDT%+1ZNXhem(>s{Nst9M|bz1@k21jslsI7(ZfLffP5?T#B6 za@l0(0>Lb7m~7cdG;EF`EXzLBAP}7zG1+G{Zf?wdC}Fy6`^SwX+gk+W4@0u1AMeNS zd7j_b+jv>&Q)w$7T?s)@n$Js@gYR17S&; z5XuFXZ*93CxF9I;xL6s`1OA;Pr${E&urWoXAV5Qqt1uE|xh6q}>x2eTb|b%?JdMC2 z??$R{zr`Oc78*rwR23?srIlQ?iF5KuVFB!lkbpoEbQX?C&9X*D+{hd+3C6~<8G+|a z^d>iQ*QtQN3@%nw0meA|J&_oFJ`sc>Y3wn#$Lc z<+NvB3(VX|qpk-@vpF0No5D7eqBfXOr_*V0SgrZMB42BjbvBYOYdH%Hw4iaS7}P~Y zh7CrxP6_F51bBKk1Swc9HZAs=NdQ&!u+5qOV-$sYEDWfP6GL&@;j|Z_4ve8`dVydm5NMfrfOT3a0;R1u zfje*%Ww0U-%{c9Ly909&sD)w{us&JSS(y_IQ3EU9!(z)~$zoMtbw#aIl;(wQDr;19 zMQc=oaB&3z=T?a_uY|SDMyUZe2$dF8@mYcQsEP#7Wt|l7qmMB*o6YKUIDiKXhN2D> z^H9YMhFJ-l4Yd=AHm_(8|Ve@eF~<;wcnlP&5^svCzn|LlBfO z;G?O^$kkK5+e#9tOi$R3?(0uj-_={&pF2AIetJqu%C_*ba`zgAps-RMo<@cHEa&U9aP?wx;n3S+tPvsZgldT#EhS+Tm$%l|D04(G2wRPCDC l)YE=CE$!UCB8>SXXADyMkJR-OkDH8ts*fq9hl*-r{{dJX13~}* literal 0 HcmV?d00001 diff --git a/data/resource/icons/Event/B03_event_screen_mirroring.png b/data/resource/icons/Event/B03_event_screen_mirroring.png new file mode 100755 index 0000000000000000000000000000000000000000..34d5f068add58c4c21a0099182db22065ed1b6f1 GIT binary patch literal 3134 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 delta 479 zcmV<50U-X)8I&2YzzToANklp*pmL;WZM5MHrjl3>TJ+m{rGuzD0lld|X@6CIk`Mvl1 zz3+@6gg|HYpt(Z8zpA&(^TmM?7##z>dyYysCSdN$6f?A{{*Q36y~wpaNupOb~VO zOG1=^s)VTkx2Arlz+E>0?}2>1SW!9 z;yz#xXaE8zNymSqDht$P`x~&;G>Q!6}2uq?A}5U9)A71aSS0~}j?0L|zS!EvAVgPU!f@+&ag$|m^@_ymjr2c}m&_6+2KQQ*RZufO(k=w4zS zIG#BRr&2JvnVPA+A%sY(;}|~wquv1K6@$7aS4XY4IUpt@nwN?9BP0BY{@($=2LR-y VSh(Xota<bi3Vrw~!~%q5w5bOF1Md$1HO3azO1Q7sS~C1H!Qrc_H;k08&PKo^)u5XP({) z!4K=+VvEMxfFy-;qCVEQeUA zm!T;dtTvhq6;#y5DzGRU2%!PNP9W3Dy9_HUl2)!%p{yYYp&@H3ENDelGs_iKG0N%y zTMJ@p2M$g}Q>=FzEAEQbs}Z&-i5i5o2i-K&B9z1}5`yZi3XYxj0+)2-N7GU>ZWb!S zk@qxq&4~D*mv!B{gTBFfMlz*xwIXYV3}Hn!U_~*_v8q-OQBmRhSoeP?Okkb}X_xKj zy1^D}<@9xXhS*|z3UR=S7O@$-eC-*9&F6Xzl^e{Pya@ zV10CLdG7jOQZ~DK^Tx=*zqwy0&zhg^J9z3%d3x`2rN_US{JMB1v-z`l?pgdAxcK?+ z4?g+r@bxM1@8r~>NA5lU$A=l1{rL6Gd;YwH-a7H#ODoX@f9`m$ee=i62ZfOv>)xR~ bcOBubzWUYSq2%~R`g5rn)9BsG-1GkdT04xM literal 0 HcmV?d00001 diff --git a/data/resource/icons/Find my mobile/B03_fmm_location_info.png b/data/resource/icons/Find my mobile/B03_fmm_location_info.png new file mode 100755 index 0000000000000000000000000000000000000000..e93f883595b73ed156f40c177681ed1aff6a8b42 GIT binary patch literal 1369 zcmb7EZEO=|9KWt}bBkbyhM@*IuZt^z_WE>p?e17vU+xMGbTnNvsvnT+-Lv(w_O83T z+HP6Gc+r#ulL^Tfk%(p?f%$@j5j7;dXk)RBY=f*nrfh_TI zFVD;W_xt_do;w=v*|Dbi`DP5m)> zTqAH<@)LXMm^+pa!;HLhM1#E}JxOt7P-G;cdpq7$Vi7?O8UkL*Wfh$*`H4kd7LCni zlE4>Dj6px~(5X}`j)zqZ;HWqIswJfUe@Eomo5US zX;MF%;37*}Xyzv}hLLAUvREv-iXARh8z2G0FeZn`<3tuteONJsl2g&`H3kmqq9*4J zSygb8QAn!=!%rYjABK?2C**;Qp)Zpw`ckq`+Q^cSCxOdNYKt~zd^J=owmKr0TejAX z1bpQDWBK*ua2}EgsH+7{L{;p!uaH_@$TVDvfsF~;AVgJ+2w5F2Zp32j9^|~N2w6@Q z3puD5QO-{k3bMpTXo{veDi{P2H;-z=P=Mw-8D9u=Qas0THG-8uq~($jmhy%8Am0fn zh64cbR4CjT;Siehcs)Kk9I0WWif#ys2u)EFD?h@zSH-en4GM;;B~>+B>!x@{HB>#L z=J9Z^7kBKH6-h1Xo6S-qZWJm9HTiWYMKm>sFJ_&UAEVEsp7BIH!ElITcnW|J#e)zX ziTJ`yhnwr9i6yM`zY|6xPe`-NR&-r$3AM60Ts}i+vV01mf{Lc0Gd7#O?Zq%lAj$=k zrSH=Zs?~1mN0w)-8?TSO@<&6tdZPT=PnV9g>^eRELiE^YZK<2Lx#_7l_f#&$ZydW8 z=sIy{VzTc3u-4mZZ+gE4tMtYH9m4lLT{&QTxy~8<(tSNpKhZF!SHX=Z@QK6crz-2> zj?-h)_v+KULus5l5EyMPpK@HTtesZ2umAj1oN2V3Io|eR(^=pCx9>KeEjYeypMP)W zsrAfe$3O3WS8lb;oe4a6woH##X2%wqY}LB-(D;U{qeOYfZ(C+&_BB;521eJGix#lW zcGn8pZ5Ob)lSfADtn;7zI2^zHb-Z=z@DK4#ExW&1ICQV|_)8m8e;M`<+P_*C+`6Iu zPGDBI+%L5K{prEUcapn)w`@E2qL?8Ttd+iB`qNvk1a9?=-IPWx<+lzlY_gpU+piv- gtkW`muVR)4?B_pcEsYnyQO%!Sl<(m_4(&hmAC)H08~^|S literal 0 HcmV?d00001 diff --git a/data/resource/icons/Find my mobile/B03_fmm_unlock.png b/data/resource/icons/Find my mobile/B03_fmm_unlock.png new file mode 100755 index 0000000000000000000000000000000000000000..989aca173f9f22e2b440cf4983741821102dfc78 GIT binary patch literal 1304 zcmb7ETWs4@7!HivGOCS=NdqQfoK1s`*l}Vzw$-#v;&{z6XC)14rh$ZOpEPb_JF`zn zS|kufu$GIqPKZgcaots{+$7M%m?lkq0ga33!~+_tK$S*ejA;cSR?s-klCBR^B`n|0 z@&A3_fAwg0dSi?CZm-AVX-Rg88T7o%y>7b&-6v+ARow+l+(C< z!7?B-z_BW}imI6REs$DV$Te)lAjpbc1gMIVQgT53gDeYMkn_5!ltfFd7{G){F@jer zx+X{r%`hSzjZ#t|foj9k6eDtcI7V@FLKMX&!9pO?A~b}Jg;^#4Gp!cA<_bf99Yz!i0|`ZcV$C{~EuK!KK>wX9OJo4N}Yw48!f#^OCJc7LyK zYF5>Gz%4c6Mxlzp)*lC&WLpMS&$^&rN1uyFV_ZxMi8Re8Xo`x_2`a`&QaH|s0wTxY z4XpOR6GkFWNVm%tbX{``wX*v3vAazjcZm*o^r;-aong$?hdPcmFYaFnL+Jq4Uzf zyKAivc8;B2v0_ACIodkVx@`@3tuRsY{(E?e_~***(`Uz@_LttIBhq;L@Wy*)AGvpI z>AAB%rh=W*BWwGf&tcw)UFX()jor7+H*|jT*tg#uS>HPK>h#_@{~Z0*9qZn>btYwZ zu6}9N-%pSyj(kJxIeO>FrypMUqW$8{FQ<+RuhiE6{CXPZFJUXwEhje|olG81%aIH5 zw^#p?+VP2hZr{vD2fqAl>kG??;`Y(xp5HorKjcmipE{S^b42pPVPCM`%cb1Cka6PR8oD` zK$qfNF`qR_^K_$$ z6DT{d!6-4Jz#afK3$_KMqh=_`7?hqBpk=}KfNY%K-!-p0j50xlfW$S1lR>Wg#q(c@Fr(lDN7G`_a95zwV>NE(dPKAjVccuv{^o;y`M2JD2qVb+(@EaCbH8k?^z$4&~vE|P@E!u0|0BYL$1uR+LFPeLJs~f;PaO_<0xla0W9N0DBs|7m%uJ>vl zjvGK*+ff^N6xbB-#ejYTPt6@vFM!j)Hv`)T3f&q{L8}1#FctX>xO9%nR^r0{^FA2> XyLiuPXvM}l00000NkvXXu0mjfc#iBC delta 505 zcmVy) zL`soXDW$ZRQoda#p7h?E*?qhFWWM}(hxyI>%x~s5^P9;?BF$jee^ z2CxnsggImylq7`!L9n(=@h&;xqF|8Xao07ij4aBnOXfJ4A`ttDC00000NkvXXu0mjfCD7#l diff --git a/data/resource/icons/Gear/B03_gear_connect.png b/data/resource/icons/Gear/B03_gear_connect.png new file mode 100755 index 0000000000000000000000000000000000000000..f7dc7a5950aead9737436c32270cfcd082b52056 GIT binary patch literal 1259 zcmbVMTWs4@71fNZ%rH8Xba+DbL^AWYJ8dP zlB5r?f}q_HQW+9bHzfKpq-ii|JWbptq#$m4m{1i7UZ_ey@B%~wF0R-A#MzPyPRid8+uoNcwTZQHlMS{^@3dzO^79AJr9AP ziW6`QigM-jr*HtnTm>bYvvcWTM$%Qk=-Bwns)5iLHV`ixqBI3TG)?t^07(T165X_q3Nj&@353Dsg(GjKTwuny z)TS>qi{X>DZ7>8;DwX`De!p%`5L7f8bvOb6AF}XS70njQKF#WBGH}q6OvSJjT>}oI znAfN67><-~grFMf^cJyZZ6*q(j3|o+LHS8SRh_ujtu1>D{wrf!Yb#qZATb6lecF^z zJqkTdFv{J%9XWBQ)1_$@YPP_|aJ1u>6`2XKWP}Q`$plY^_#j0^0^vx4 zqLUGxB*Td?-Q?H~o1`edpQJ-nnB~wgm{y zjsFx+Mp8kRW03+U?kLHp_!LXhL5@OkBkdbl`TyjMKw=1|IsVfu%_Y=<&Ty;s(PZoJ zKn^#WU74$4uaCaEXZP^;*F9H+2>!@Qyt498$Dez<8wUq(-rqj5=bD%PdgX1- zGyhCSSN*l2;=-YH-Y0s$*x>;m?5gJP{1Vu$>_6PK&qZ}#XgxA}y<`65%NO5S`0ymC z?N|+EUOd%V#~Ov?h11`@vX*<#vpU+cdiz%7h`ajat>vFxjr;8PhrRXQg^#`*EVflY zzLq-^ep6^wmTxxf-s3OKJ-p=o{HX7k!QVXy{^s9U{O#-9om?Oi)dTEK!*j3yj+SGd64)w_eX z5GG?I5rc^u>=rkcg>1%U&Ov5`NfzcCi@`WDr`udI@ns*3n6WQvoY{57g}^G7O4SAN#;P8z0}4aC<qEvj_NCMv~Q28vS{nNO&^ zB!W64-6XZEUP$wFF$5tIi7XR~%2J}Vl)))F0i$*V76d)61#Lx*a{s!qqP9|(PH=FP zQ>1p8(drQ|&VsevJ>8J5sCh$F%e+<;x{Z>Uc7YSs5aorm6FbYZgo{LQ)Jgh%0mKz> zqA2cg<31Gg;{gP5``lQTVKZUqFxZj82E@#l=3uLh&QBi4; z;j(sl&F&JGdMcJ6WsX)QxlWSWvK>&MLJQp9=8Vx1Oq`5!JL{)J~s|6VcGwaGgxy5)|=x$&63^H zI#6FOx4tGU4-Y456C-P*G29iK27sIcA<9>mx_&7$S()owHKpWF?cIpJXbqQGuyjvP zOS|d_)aKsbG5PS^RQ7m hXDN8J?uC9S#{jH4gl)boU9sr@yilNuI^l2Z{RiyF-W>n{ literal 0 HcmV?d00001 diff --git a/data/resource/icons/Group play/B03_group_play.png b/data/resource/icons/Group play/B03_group_play.png new file mode 100755 index 0000000000000000000000000000000000000000..1ffbe906b498cba65183aa7a086720e1730cd24d GIT binary patch literal 1459 zcmb7EeM}Q)9Ij&+LC{G+Wx9DgU>Sq9ccs^llS;~cNEt1xZM0699PL3*=v}=#Y)izs zPJ);$8aKDdhjH%1Epf_RmZ>0y+331ui&-2W4mQZLOo!Rr;*5X6-b0G~VMzAoKHm4e z-}5}bulG8t9GlZqpH5Y&ROz-d(h1(#%DrqUc*btGd6k7sd1RMRFNYYBRat#P9Shk4 zOatp=8DC^qoGn(VlFo8&kLko%44sB2ti~aOjD%xA}9(O3>s9A84PG4q(e}h76F$*jp}jCfa{FV+<<|a z=&Q$_Bt54ERum|Y*sjQIyJCROA%gX!fIa1NidMCC21f5)iUzX;{d1)?LAZ^+(6V##_L@UnPDDfpwcKhOpKw#cl zlAY`$=O4>2xg$YV>trRNS@eP`*5@pcT3kpmoQnasGh!nPsz@_U5k-$)t(wCY^!c37gO3@~RmB12M8!yQW?`0KH1KDc0gvc_oAi4#iDbY<; zenA!_zYv57mjQZVE64kUkd&{K8gPS9Nmk@`vp!lB0?=&Maqcntw2nY9qDWUtp+-s% z;zlT%q6x&HCsCu-XoBakzW<#tE$~FEblHNgOKgEwR;Kf32rTALAls$!F2WWCvLsB^4(JfS6s}xoZh6O)q$GMGmei3_d#)WW?Epc*3e_yFtFj7 z$oY3{)p>W;7QEftx{98B_Qjz~{)_#WgHN3PDz`f_^M2~`=UUgdR=AE7?-|@UY@B%N z{$%H&PxI`~AO7%9bZL|Hw?6+&xAALCe$&W8zNQ-!)N6!!MpPsCZ^}hwL zr+PZL?Z?{9L>FF2V@RI4{msMbhC_nsTvu*9zxYZ@1$V8TTRyyZNA9J{s}l#Orh@Tr zJ5R=6iWuS<)7CYwt=l>FXUd8&Q$eh8_fPaXPEK9_W;?PX+0*{z?%dJ+=Y;a|YR90x zDr08LFM?;;%7O8l_o8>pD>rB9%KDDyU(Fl)?v1oBevSMycvdsI&y{{~%2R~;O b3?#2r)$AO~u8HMJ%5T(0Imk1mwbB0oq^Skc literal 0 HcmV?d00001 diff --git a/data/resource/icons/Message/B03_OTA_Messages.png b/data/resource/icons/Message/B03_OTA_Messages.png new file mode 100755 index 0000000000000000000000000000000000000000..f5a82adfc208416695091ee5d6a54026a0d69123 GIT binary patch literal 1432 zcmbVMeN5bB7%yWef`nagj-e){Ckztr+TOK2+Hf3q^bT%tjKNLVGIga_?kZe+Ys)y6 zI0G9omr3~0&Fm|>52A@OnQj@AFxVi3AsFL`TU>C+kYpPunCV30w8yyVA7p>n^y7Wr z_xb&v?}kc>^AqAy;s5|ha2C*|>UVwkiG4zS58iHK!-8V3P|CzArH+v}!0HhzIne26 zyj&^Ac5?EiWU8OCaj|m`U5H&0J1H?0K-;u3RuZ`dBF_*+|vhv zyvGcc<1WM%$m4u`!ET8w+g*$ zQ$>~1j%8b_WQKf-5};tXuC7jBXVi<57e+~v409L^I#oj_*9!_0)CsaS!a#E}EAat^ z7X>iP$W)58iWyQpeHem2;Bq}87UbnbsVRelOaMmp2<-QV<66>|l~V3sH&)b^-Sq(u zF6CsgR$|q9RB0n%HFu9U6joHdp*BgpS`?;+7TH=qCn!$Z45=r25AUIj7={rvX|>`G z!fr%S5;GX+ESx~C2!R_+ScGFGtcf<_xY2~+RuhJzcFdZWWwH}Cs}Uy+S*S5Df^`bA z!U!xEvCFG=m$AmjVyQfdV-!(xi(*Zr14?|NBFa870OpkuU`9DFc*Ht6GhCjB(bAm6 z@8UcTN%VtD`K9<3?AuThAyAUQ5!`B5z0V@;hz-My80l~j4x15L#(Mrw&S2FUINTin zX_m;A+JWKaqt;i2N5jJj>cmLuXjsy_ZUaEnu#>jBgWnAv>?w@4t{IY3*I)(nn?nUy zGd*Z~Zf|p9V`I}fADiYoP7GbPJrn;oP}rGJ5o)>~yDgNFGK+0XE}7SCemik$QTNs5 z?w=-_w4rEA`>{h4Ek};^ng=k~rZZ!AGaC*Ry%;+RwJu(h(yY%#%&o~kHm#mm zi@iCUw9kINVb8p0M&!SC$UVdF9bbSoOwR|08^^!{Z}q2sbdpS%9Cy;!N#BWmDP3M| zSJbL^Z#*Sz9etTjAI!Lt_$@{j_P54ojy7!Bpt+ErR5SJTaDxe{In#aWXv-YEuM>ce zAh9P7+qIKXMR({-Bx=`y*E`?)6e}bI{GXjx?b+8i~1c30u5oO}^KV)Y^XEncCX1 s|L&BdAtyAFyZY3n<`it>!o;t-eqdvcr9KgF@rVDFPJ1zZ+P0(dA9pn+a literal 0 HcmV?d00001 diff --git a/data/resource/icons/More/B03_notification.png b/data/resource/icons/More/B03_notification.png new file mode 100755 index 0000000000000000000000000000000000000000..36e1ef8224fba683888bf8912224a330680caecc GIT binary patch literal 1213 zcmb7E+l$mz91gQ$#Y-tw5fvpy1#gq&WRlDz>~x$-G8#1Nc6MOL)d#c5*`2tPoS2+( zW|uSzx1vhtL>q*%73QE*gcj>D%M50&REl z)C1U0QGNe-)f%o@hgApptex1fZ9gPvis~=4L))2vm>z}WUXW*A-M+)no||WeC5yL0 z4c5JbQxP1R8mKx`6OQ6Ch41M8wn_+mh;6#1sTIB4)gr4rQ^z<| zIj+@ev8@b?qHzu=ijr^$LYi2l}Mb&M?$74M^4j+0XFqK(`Em;>#Fw|{c=X*B`qVA43ITM5;t#@jk3neA_=FM%`si9`^5?4h$mdqWsAD5 zw?$exd0m(xvRIfx7?7exWX4jp{{P8*UNZG!wf$)H&HML-zQ4iRzAbkz@4Wc?nUT`1 zoe%dPUp9Yi`ethO=-H?HU+lSjd|NfWI;2kZRoS((8^1qn>`m=?cX4K9$DAzArFP7j z^~ikv+xlVg-_2W<4a_rspE7;FFmvGLu5aJ2JNFp4U#~jnt`dLn&u{wk?9;2~ZGZXv zSJO8)nAfP;AF1oxzIl~;^8CM_g_(N|@vk!@!pR3Kt}mnSQh!{yapg+kmqW=9#WV)= JYo!x29{^)wg)0C6 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Near by device/B03_near_by_device.png b/data/resource/icons/Near by device/B03_near_by_device.png new file mode 100755 index 0000000000000000000000000000000000000000..1125d6b60a3bfe1de19aa7f88d58e0f09d968ca5 GIT binary patch literal 1457 zcmb7EeM}o=96p>-WFU$#16#;>XabY=dZnKyWwyQR=&&6rovYd0xb_ZuqrEG4S9@So zHpC%rnT)9@Xo%AU5*bsMZHfs_4U;fK;<5#%lc_V#Nj5Z&DH8QPpo~8j5-<1he*B*2 z`F*|jVx?zeMp|AP1VI_Da>5I~xyqB80^VQz(h^iA66u$!_!=or2@GVT`2YjEB2+Eo zWhlC#euOE7pj88`&oBAikKsW+qM;NUjU0&rGz67ykfT(vj*;L1Q_FHzHv9gRJ@Vtps zXGIpA^1CZx2QM(NK~tg*YB3Bp8a0^SU^HUIuuhBVP%XHPYD|wCjJVDOFJ1^x6X+V; zOE?#`z|4w-Bq@rcXgnU*#7i{1P>W&~i$&qk>D0hNEjDlxC965HAi+Q|Vo+eC63cV2 z!bk=9m}EtOrwbuOqF%N(B#BGpoVb`QkTz7Nq9~@(qQbn55?=!4cCUF=-e%HcP8*?f*d029lQbu=E>4svF32dN3YNWvHLr-p9Rfp1yx`;caH5+kL%hU` zAwCK_s*G^qR+gjrxLBl=8gPS92}WR_VrZwpN8tIaSNKM5Z};Tx z9{v?~Jfq6q)oOnd z8!H~${p>$u>wkJ+dSoK}^qH^K$k}!Mk@gs)?U|w5uD7N2eJ;1YwQpim#>M=7Cy2j_ ze$RT-H+rtcj-E_8+>`G4xBdNs>h#N<1GeJl#jc@k!+%!H=G5TV_Mk7Tn%~>0LNBG$r^>!;Dws~a+tzlvdhd^C8GB WcL4oieO{GQ`H8wn4{^j^z2`rsRRT!> literal 0 HcmV?d00001 diff --git a/data/resource/icons/Notification/B03_battery_full.png b/data/resource/icons/Notification/B03_battery_full.png new file mode 100755 index 0000000000000000000000000000000000000000..78f6017c2103279138d708f83fd50f00955be588 GIT binary patch literal 1080 zcmbVLO=#0l9FI(74CY}cKgTok;K1giO;Qq;jW%grnVq96ZVm*~%!5qClf#Q1RS?0c!;3e4>BsaiCK&SZ-pl{@`~5#xrY6ty_Z{h@ zD5}3Ou9wL7aQyThAn)g&ubS}&=VtLVs^ZY_A(gRE1%iTO%)=5itmeW?I6_f9Rl7Wk zXNzYQ6FH0#+c1&i5i~`Oj76Sd)*%KJIB&Zu{q4y*4QxxLXT%~`^fXwr$CrFKy);=i zm+Gc$(PN`vBvJ^01F-=jr{M-lq|z;3g{pdlXukx3;?j^}|S zF}xs35`P*bIX=m9DwN*kqcr*qk>v^i5Ka>QEOZ##;ZAGnP2R#?A3pvviM02gb{t)+d{t z;ejrh7@v$rb8~Z!j8(0mXUfsLFE=s=pMl=}$3Og9UwfL)T$?kGKC;K9o>%m}wTllM zccs_$6M?WYIPl=k$1z$B7jDTLgNL>@CziK2%ujC@hTm`Cnbq4v*^^)E-$#X?;fvMt j$10EO7vB7kuTNarM`gDMr2d;*bUe$2+@yX#dujPMdJb8y literal 0 HcmV?d00001 diff --git a/data/resource/icons/Notification/B03_video.png b/data/resource/icons/Notification/B03_video.png new file mode 100644 index 0000000000000000000000000000000000000000..52f31709ff717017b008f290caf0601d8d1b6398 GIT binary patch literal 6724 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 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Notify/B03_notify_Wi-fi.png b/data/resource/icons/Notify/B03_notify_Wi-fi.png new file mode 100755 index 0000000000000000000000000000000000000000..e0fac75b7b585a779a6712e2b930d1e537acb872 GIT binary patch literal 1437 zcmbVMZA=qq96v-v5jR9FvY|PT=yJ2(qO}E)dFO4=u8Q(Jqv-pw&s2 zv-vD-uc^AirU5``8CO^&7um8%MsRBAfR4uNbSY>6NK5y+Xr_Xd!BV!I;|;`C`&W6}rX4b)F){1OFZFV73Tfq=^D18r@<|P#ZCo9vS*ICI+q}Ko~@RG_punj}t zf{I*WfEJx9vgLwiL1aOlCPmF4C<@}Z2E}wZj_wAv2&#n<<;K-0M(S`n{AnxmzENxqzv}bE*RAyu+tfcYe8F*^VxshSW#OltZ}h$ zJ}U`skx}YV79RvFxqG&ufTH3JnIm#aQRqraVBAiYm#vfmQcg5>&Q21kCJZxKQd1Dj zY)L^;!eqqEsTLiMpn8PBi6F;HSiRY(GhrD7jvz)9wO}Sx!Dk>kRBzOxgjO5GT6syP zd4>(z%D9>WF6f1Jo ztUW^%oZv!!Np2du)H!cqB0uuy>T4?5He(?jD_Cu$+2t6RNm(Bdvlkvj*cQn==i^` z9}ZKMetJ5#ZA-HCO8w50l~2M{DpmDERrC#ys+9h`*@z~W?NDXnzH74v_vkc!cVf<7 z>3=->eczm4s_TE5+277i_C0DzPbfaN8jSS8#@`&BQ-j)H{xN*I_K41v!^hDJ4k=hcn1TMya11;6tvb#IqUSI5Sw}&GkJN;j8`SGMJ zW7qV}j>^3o!-o>%rKB8Wop0?$%~vMV#IXbS?(aS$%2dOJ#)1pytnG~v#aH+DjaaNR z$Gdx;Gn9@DSV}gxzE5!z8*%SN^>+80X`iuSjjYovCj*@*1|@`tzYpz3&Y^J>mM(lCo*sFBSb( z5P#=@w`Zz9srvS}4<2<}&R4zk#W!7d5{9x)sj7%Qvj=Y^joqqJg*_oI|62F-#QiJ{ v5O<5|iS*S?eH8m3y8Q27>XOrw-dYt2G$-|qSN9H{4g4^zmTc;bsigiN*WCfg literal 0 HcmV?d00001 diff --git a/data/resource/icons/Notify/B03_notify_Wi-fi_direct_not_connected.png b/data/resource/icons/Notify/B03_notify_Wi-fi_direct_not_connected.png new file mode 100755 index 0000000000000000000000000000000000000000..5ee041ce7902b1edc19bd6e98c58a715d8b177d7 GIT binary patch literal 1542 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~%1|*NXY)uAnN?apKg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+AuIMr)7pjltlRYSS9D@>Lr5I=vCwv0Ch7k*w|MTBqnF4mMA2p zrf25aD!t#mUr8Y|#a1cY)Yrhbz&SM|)1#^=HMq(zB)KX(*)m1R-cG@$!U||WZfZ%Q zLPc&)Ua?h$trFN=D(3-T9Ob#X~hD#969RTqa;7NqJ2r55Lx z79|7YBTX5m85nl>EdnV7y2i@CC=(bdi8(I$$)&lec_p4Mwn{)5y_C!pD@zL}6B8#_ z3u6NlXIEoGLrW(|6K4xoQ!@iYa|25=OPCp0^%@&HnL1inni&{48XCHqSeTicxHvnR z0Cl<=TUZ#w^m^tMmn7yTr^4*b1lbGGYk^mlVC8*vMa>7g>=oo!a;y_9)Fd<+H1To=BAIO1cp42>Gjwu3W zjrk2%YZw@q%sgEjLn?0Fx#sN=5-4;0qon9*Mb1-O%xn)REI!n`GWC6jP}J6p)QgMC zyk;*st|Y$A!?)ZqV0W0J>w*9gH!s#nwr!I%lv-v)aZHu^VzB@og6r~3c%f9Ls~m7GBWm-h>PU2#ZF$KCMQ1V^dn7e{BG*nMMG z1y=!!vt!;{PCn)H`yh%dS{_e|hj=fm^vr zbD_-TokcN+BhEziEMQfQ;;-H$|7!QsW!kM~IR}_xj+~bfzo&LNW#+-O7^lP;di$6B zo;q(s@1p4E_aB>!EoOQ@WmDmrz?uCC8qu857k2x-I=AS=OZ~$^wf7olud>pf(Z8eX zYoV&lvUQ@b=WN~CbN>Zr9DZls>z5tNFf|_a{}p zoi#g=t9~GP$|LKz7c&ayS#0s~w_Wq)INQc6vBxV#9`9g!ceKpMg~e)dVd!SgN3Sm( z)vV=buKmRH_R5aM-)yh1wfj(~v}O%|!o;#puDSj%Elj81pS-1S_uOLUUzQsjYPq)f z)~;W)?N`pU2eY*_o_@W$a!KyR{aMHT&ZPPZ-I~4TYvR`HLr5I=vCwv0Ch7k*w|MTBqnF4mMA2p zrf25aD!t#mUr8Y|#a1cY)Yrhbz&SM|)1#^=HMq(zB)KX(*)m1R-cG@$!U||WZfZ%Q zLPc&)Ua?h$trFN=D(3-T9Ob#X~hD#969RTqa;7NqJ2r55Lx z79|7YBTX5m85nl>EdnV7y2i@CC=(bdi8(I$$)&lec_p4Mwn{)5y_C!pD@zL}6B8#_ z3u6NlXIEoGLrW(|6K4xoQ!@iYa|25=OPCqh^ja7jnL3%8TACRcI2szdnmC%e8oL7d zE>4z4u5Lz7Fuk66#U+V($*C}VGlBL(^;+Q7Yvo*&npl!w6q28x14{t`8Tlpo#Toep z3eLf13L4>=c`5nj#hRe#f%w)XwJ5VJHN~wcKUV=9zE+u7>^Cn)yd4oKnbchg`6wo!lsya#Oh%qAjv*Dd_FVJ!2z8V=PrK(yTc=U*PYOwMr2JmA@E&tmU?Qz^KPAx$(p? zWuNHlvWvLWm&`vb-@azA^VW$+zh@jwKl0G3YeL`V8;AIF=U>d$y4YUy*iLxIQ@e}O zwN1Vz8Fxc@k`E{AiG7rqUSgM$vip`<+OpR+RTKLwz9i_M>YU!5Ipxd(k-r_qms9m$ zYWns^hkXosz5g+Tcp)$MtWBjc4m0caacyr=eG#o(`qm~Zy_RF-V$4Wq@vZt$`%Q~loCIAig BJ7oX> literal 0 HcmV?d00001 diff --git a/data/resource/icons/Notify/B03_notify_Wi-fi_timer.png b/data/resource/icons/Notify/B03_notify_Wi-fi_timer.png new file mode 100755 index 0000000000000000000000000000000000000000..4eb4504b2fa96c1102e7548c9dcf63d47119a5ab GIT binary patch literal 1494 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~%1|*NXY)uAnN?apKg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+AuIMr)7pjltlRYSS9D@>Lr5I=vCwv0Ch7k*w|MTBqnF4mMA2p zrf25aD!t#mUr8Y|#a1cY)Yrhbz&SM|)1#^=HMq(zB)KX(*)m1R-cG@$!U||WZfZ%Q zLPc&)Ua?h$trFN=D(3-T9Ob#X~hD#969RTqa;7NqJ2r55Lx z79|7YBTX5m85nl>EdnV7y2i@CC=(bdi8(I$$)&lec_p4Mwn{)5y_C!pD@zL}6B8#_ z3u6NlXIEoGLrW(|6K4xoQ!@iYa|25=OPCqh^jf$X8oL=7S(+IbI2szdnm7SzS94cG zOIKH*scvpCy`Fi+C5d^-sW5vpf%Zc6THw`dkk2Xf$rDFy~6HcuDFkcwM-uK9b21j-!vD7$ql&*udbWp$WXPxB~xP1ajDf#dF?7eXZy z_1GGx-Ad)}3fZFmQEaZ2hS&6_Bh5Rew;t_kYIRWA)xoZ5D0=$V%irDi4?H&9ZJfN0 zdH&qHmG#fRSAR~Ey%X8Yhzz(jT2k`2g`i@Ny6Te zd5`Bxzx8;m=Jm$zE#o?c*~=$~?s4am|6uEHtC{^>+9hqi%egFrez`ecb|znJh)Y>h zR&UT0wDS3fhXPw8OC$p49A?&0==07vSSWLZZC}Pu_uOJh|BGo~K1*HSBf0mg*%=cl?K>;YXvH)k2anM~si`Ex74zwe;b~ zzEGc+Usc~M;99 zi?)jyPts(xBaU%?dAQv#E#x)ti}$j3c%_c0@YYKfzCXmPE&femogLTpy>(6B^iG~- z{5$WM%`vB(@J|scr9avEin#SB9tbTpd9p8}{aj6TxMF|Jw0A4~_iE|xmRF1U|2wOo z?6St|;#>!&q{z#gj@B!?*8G*bW~=QJ7goS^JMevqFu(J)x04ymCRdzaa6bFsooBxn z+w`<MKDdt*5J>%Q~lo FCIHe}B~btX literal 0 HcmV?d00001 diff --git a/data/resource/icons/Notify/B03_notify_Wi-fi_warning.png b/data/resource/icons/Notify/B03_notify_Wi-fi_warning.png new file mode 100755 index 0000000000000000000000000000000000000000..730180b8bcebdd76abb536268c427638073fe810 GIT binary patch literal 1515 zcmbVMdrT8|9Pcm+q9{7U@WswEE}MhiU1<;Q)|Om*2kl0AlnR}jjM84=R_?Cc9kdX2 z35En5(ZvW%_7<`@wvecxQR|TLn2On$GL6H@d?bSk6Bj3LnYb%bw?B-3>~fFa_xJmL zKHvA%=VWEXM6ZfgC=@Yf6KR#dD??Az0{PuHUh51A5@nb2c(>$p2(*H5@x?S?W*sH8 zm3FwQ%FobRg<_tYvDqcNB@=h@tkMzEQTkc0j8-VLX@0N6>7gZ{m@Z*B9eDdhHwZ8; z9ax~Tz!tBOE@e#B0-aZ#Wph@0oR|wt(*s&RE)%e{{PW0gSvr0~%#=k`qP{07aFET7#lUBA|j16$HySnuMrv4T`H$fVm5ltqCqS zZY9&_Y{`-iER`fL4naPjPw7im@FwSP^pq+jU=&(lN|mePFx>mAZgJlFkXq_ zIUvO7DCR399VmPHC%(9Hvjs*jildC=ofRz2NoG<9$|p(}5V8=i+_hOQG^Sik74W zrjmB03p@+V<`-w4U_T`VRi_x#8kj&~N-f8&QV|9fiNGjE8Bh`i=diB-lQT$m1`0LD zf0`w{C3j$G`MC9E;qma$oIEjtJQ}AP4nPV;#A-81*!({QE)pgi5r3+D^oTuff}L#>)Y9tHL#;=r_D53nK>t*1wdp<8inxe{2Y1xf z?QAS-IWd#*b!6{U<)}V4a=YH=zPdGeG_dV({>H|$*!cB9tX9}a{H>hy4b`o(eH!&l znREW4_xt0wx2>fn>w9*W+;93l-#xWLFJ>m6()C?fd}tSzdE*uI!reU9_fgG(%hMop z1+I;IQ?wrxo`n$4m7}|rALc$toUyyu<+Xp;bDP=IX7XI$q(x$d;g}*VU-XJ^6 z_18bswJzM(!)u$57YBNe3>GG~&TFRAhR-fPf3Gn6QkB%YrsU3ohgvSsa_;5EmBafZ zk5wK&mr=d>ytBEY!So<|VqM*ceeYiO8W_BZw~Q~#C(@WN-d&gNf%-Q5*}eF|o{qK0 z+V3_U*L_nN#LHhB`9S|w@%(~i{qO9{)ElA(f7J!Ni}rhZJDR2={lybh&R=n*6~Qm3 zQb&O2J6Cs`f)^Wrg0|Z+tuxIh?{I`IxL|0PA_3EGx|d+XJ2ma-(dTY1Y3cf&Ua~D> zU=y?14@FB8q|(E?gpd1l9j-g@o^NkV*8~nn9~wKc^OniK<;+{1t12venqFwt zw@0k`%w;oPJbz`C5ubIjsI}AlN{{XJ&GdlnP literal 0 HcmV?d00001 diff --git a/data/resource/icons/Notify/B03_notify_image.png b/data/resource/icons/Notify/B03_notify_image.png new file mode 100755 index 0000000000000000000000000000000000000000..92782936637c8149ae90c1d70aa2470a6cc313a8 GIT binary patch literal 1287 zcmbVMZD`zN9MARGR{MhI{N$Kj$n4fh?~+{Za+i45yIzvEC%xKTi@gri=H+QG^e)Mg zbe9$xZFSnhlsSir3RW3qW1ZHQ55mNP97v@f#+c&74>ATiot7cUoW=U2y{mpG`(Vh+ z^M9WI@ArStY;R9zW8I!Q1VI|pU3?aPA9A1Co$y`0c|vvtTgcgc`mkLRO@Op3x&+X4 zQ5*qTAS&ZWmq83cyu)gL&dz1JSy?XzL{}%^6b*<*kXXVoM0ph0s02n-Esm{TTEb9O ziDLud43RN7kXO4VOwc#c(=Shq%8Y^~+R&K8LV_Z&Mbs%4G>diO*aj~P*X}lsp&Kgp zXdK&gDwpX+Io$+kI6(Pjf+SIz4v?WRO_Qx?kRXFN0dLw*hS)I81|w+Y!k{%%8D_J5 zN5vMD;#l6c4Hm~srBa|o1$1)+CmDuuIf6ky)bLy5nk_nh&DvjO;DIHZs$r|ThPsTR zq>tHg40^g5Lea=%wum*Wk|>xm+z}0&3=nv+=*G37ZP{7yuN&KHTm9n(z_Y;8$4nX4 zV|afR40CsHL#`t9hJC_RVNt{aughaapxJ3Yj=__FqADyCO@%@!AxaS;PM}DVNwtT# zs1T+JGD0vkQ{~tWOOYHM6&RkTf)SDwLJUVRJVgjRmr6w=p^hpxty#9H$)IXig?1}g z?w(kdGl6L9X1}f%svXdq*KOU(>juj8(P+znswsNOI^>pTGg=;)>M@{nn0gW2$S+1>cMNj?ix9VrEozMSqKl=B}h5HWrmZq*; zt=Tt~L&`(bb&H3u)%bpRk$hvZE0~?xak){E=Dc$+H1A2iy{r6l`E0|-|y?4$j-eE<6B3hr$R?h zJ^fhAOJBE2{@LW|rP^}A*~`7wd?mT|TjJ55=H{DECO`Wnao~=(OeYs=%7bT)oc?QH ze zt3%I!b8=4l)0;iCRyQLow|J6wuU=mHV({4VD}zhVe);4j>0|!X^hXUhh&HKpyz|1{ r8wWq>nLlu6vg!77pASD$i_|nA{&Lf;GYh_p?yo5=^ziSehNk}k{bsUa literal 0 HcmV?d00001 diff --git a/data/resource/icons/Notify/B03_notify_image_error.png b/data/resource/icons/Notify/B03_notify_image_error.png new file mode 100755 index 0000000000000000000000000000000000000000..e239d517a0df8a3fb3f3ca0606d08862b5a31402 GIT binary patch literal 1412 zcmbVMZ%h+s7%%Ds8i^!2H%MI06Qvs4-u2pR?`Ws(T`NsjB)|qP=s4Ody|le+?+$w4 zJ}gBv?$Zog#AG-KP9Q;Lj3I-$En&%Ei%3wW!;CBjGjQS<)7W96y8>nVK>V=F{du3~ zeSW{^d7nRbs<7Z-hB8~JP$)8-`DBs&%}P9J8|C+RvkjhvAll2sV$LT4%L;X)cJVWW{kVHvGZnDv+1juAszI7w}+SaR2LoS;A$45G_)G6biBeE?K}OUR+)$ z)LIZ&G7$q7a5<OSZ_d4cpspHV4W6{Z&VHIaRZ9$jKInT z%HDXd4=*AeE52mO0{TTUjBB;gXjBtLG#p>0g)t0EaOiYu*+MPUvLYp^Sz%|Afuscw z&xA#WV}S%CRmoM07Eq3K`3Rw~+r3K63M+|{Q>K-uuol)p+E6HQt|eYXvFxd?#1REg?#gZIrVIezWL=7Z_B03`s+x1q5jF%NAhl3#XMq?7| zWCf98J#^A9Bl}&(5{?&Qae}8Qk>g7^E|~0qLO&;Rf}aZmL@^4eN*UJ6MTI?y@+_a0 zq_Bwbj1T5tjXV&munAnjdjC((v~n=o zM05P7S&}Nb0~5>D)|Z9V;h|Z1Vt9EpHePYHC=@BZPSRQ;O@1}ucCE9%nmT{P^{%z| z`~hW~ty^`!rG4fl{Bc%n!0}3b+G1uiUVZV{nb?ef?2DNX#y%saww|6M>&`wqWF9wN z8)&>_nHO&T++17ZtMY|*9G{q*`DnC0bD?{#wBtvo%9;+owtLSI(0tom4tLa0=YxxX zV&yaBCzCDL7f;TEBO9iHkZy4D6x@FTx_*J_kbY_0l-nI|nic!~c)?z}R{HfXu-qRQ z-+H1cp6+T()wFI(zn496WV)?SeIsXZ{4vtK{b3+)WZzA@5R}g5D6ZU%nhE8$iZ?sA z94AzUAH+NFtFQK0ZbzEZN}+X;rdaOqLXT>m?D+C(d{;d4Vtrk2`uFpl<#{Jt-x_+k z;nf&m%X%(jfJmbnb%`gXluTRHLWTI7a@9ef>d`UDE+# zfbp_~& z88jIAa-~+YL%OHSAp}Dn&nmGTUP+XmG9=1}5DZ34NLAWT+N}`wzrAa!*u@;t~Q5Qwo@<?EH-st_fxyRnz^6=>WS?$|NeEZ>rT{UGbyI(lS zCw8ZZ58i3JbbfIIRkdNLn0;gWuIHw5P7ii;S4<5I-8<2I>4}c~{bN}h8~*t7nHspc zW7H&PeMkzodpZ{;o@$>wshmvz`6sO}CD3j<$6lCE_x`oR{A=RnV=O%T`;oG_NZgKx zchIvXC-&97R45{&gPo&eW$zW2HXM3-W^5vHbbdPesCDwL{Q8~b?7^;?n=sz>XSC$YNjP`pv)>XO#1_IBqundTy?e?R4%x^bY`1>GS{q literal 0 HcmV?d00001 diff --git a/data/resource/icons/Notify/B03_notify_message_failed.png b/data/resource/icons/Notify/B03_notify_message_failed.png new file mode 100755 index 0000000000000000000000000000000000000000..47e21fa88274c485e698e16fa3962d6734c3967e GIT binary patch literal 1459 zcmbVMdrTX396vxd!eoPuA>ddp2ML{{?Ol7l_AV6Y;}`{sq%@;!fvvPxIN^G?yMq>H zbc1b~Zn%sY)MY4p@JI~uaE}C{g7Vn@PzQfZoXioJ8kIOS8Zl$eD^TaIuWS8PHMq8BRh2KzgR1bGoW15iF-FXs;f6IQR(! z(r!Ietg*sY&O}wxIrThMR9|3s)mOQ2Hra({)h9PO73Pw~)Sh_Jef)W~xP-(%{3zDqy zZVzEIXRq3lBt29qiX5R-`g}fxPpx423MGQ$cz{Etl1mzLq0TEh{c^969Aq$4f{Uj) zk!HPMfYDjb)`)sY@^mExhO=7Nh`qvUqNJ25{Z3AaC}1VS1marO7DOBMuN&)X3-&sW zQrakit>Il#Jv_-lu#~%}8ww~&-ViVHv{V#lwV8F*FqBucnDvl!qHxo00@oQ))JW>o zFlr*z2!b08s7Xg^Fc{IoIEDu~*2BU$sWlljI!uG32tuMpElJ`e0-MxY4Wd$I2eB5f zAUeG+DrlFM?5<+9PsI`@o^pyTZ)e%+U7N2$@t++aBtk*lWh|Pla7;dmo8c7kLBbnWm)Gon!ogY zcA@&tz3H;88+SIh-fR7{wzhVY%s6UYAm?@>r5V3;{Va~ea6Rw5TXoy==nLHwcEEgg z3v4}S;HYE{I3JSts2}c(?Mn-Jb|&0%eCUO4I&`qPZhwsDaLT8l-4UIw7lEW1Ti=1a zkt={<-;S_^=!=J@I_9sDZ+|xoGYhvL#`kl_N-Q(%=l+q^HhIq%z_B?woyF z4*U1SUQYV`=qodOKiZZ$_U%NxG8$MzHMx5h$841LCu>=dE2 zZU5|n=F*pAMuufKWr_^huYVb`X4&`crQ_f;wJAc$@!tHUiS{nxYza5q^!(6=-zRPU z>GhkA*oLTyOx~(E=_-a1_%S>=VLlN SbF3%u8?}%H<`0Yq8~y=Z=ms$W literal 0 HcmV?d00001 diff --git a/data/resource/icons/Notify/B03_notify_more.png b/data/resource/icons/Notify/B03_notify_more.png new file mode 100755 index 0000000000000000000000000000000000000000..19527b9fd2fe2eba1e1c34d0664e48003917d07c GIT binary patch literal 1167 zcmbVMO>Em#9QPL1O%;_|m;~L1^yC2@Vu}51$BC_mH2&%$meQq>77Y${?3dO`?dRGq zaVrF)Vp7Lthf3qPO5=nWXwz;(YJnm&X@^N02mz;Z+Ab@X3AmK!HtBY#c9`Xl_kZvI z`~AOtaeQpFulGnVMNxg_Q(BdL2b1Se4|%UYxL_qhq}QVf+>F|0fT)s<8wiwLa|%_F zY0uBzM#B`9YC5%gRIi+tE$n8@L?;uwK0#B|a545xtA!%aKvRxapdZ~@rGaA?=(E`h zTk%yi?VMT&(8R)6&01(#l1&%i0mHFO2wW7IAa-ZGP>u`qHm^+9$u>iSZI!51pm&_A zSH^*g0|c@eK5elO0#VFBAuEdTB;Z)cF)X>oG!*2lD04Z`xoBc7u$yvKGdi}2RG_D$ z$d?(W-EL>vdT)G(gu zcEI>Fj&L}QeV|T=;KW(SvvE6oD=E)Tv>FPW50PyI*ah49m7P88s|MssilD=+$m;@x zd6?66Bg;u@E|+Ivp6+1n=gApEoMDpYc&b^tTciV%ZVx&~iPy|%V_{j&?b%|jdgTRrQ=i`TWIOP5lR8N9r@uW?5C{y?zy z5tpX+4Ky~sd~vDb4F0_``PEhQaQ}gO!=O2|^2NaCw{N^~_;mB;ouOLan;-mZ_k23p zcpW^x^6Hh%yI1SwgB!*8{?_OZ|EzDG3woE{e{g1G@uZ}--u*Z=d#wMHp_Nx~|G@HJ z-==2YC_G#)k9>FO*URS@>4Bw3%g$q~@%FXRk*|ewKi~W1rSnvZT3d5|`m=cV$K)4L M*2lDOl*z^a0hEq>RsaA1 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Notify/B03_notify_safe_mode.png b/data/resource/icons/Notify/B03_notify_safe_mode.png new file mode 100755 index 0000000000000000000000000000000000000000..f86837ea3e6705a07586376bb4535862edc16524 GIT binary patch literal 1211 zcmbVMO=#Oz99J6J^<(L>c9g87AQUHQN31W)awO~~mL)G{bK*IM_*5!OFR_TFr${fe zlS9{*b@T(89!3~FG+jTShb`>1F&gMLJVv31cJxpNg|e~3XrWn8EiHIYiJk2bdYI71 z`@i@9{r=xNlN)`%W9R;z1VMCUM$|n1z8gH-x8ZmFuTw@KAgzeT;Uuc+9w3q?ECDiO z>r)^PbaQUzHi#2M`=nJUqGI+#*?=~!2Rd}kb}^bD;zKo8H>Lq1OJK@!64cY1wFRm|qd6!ZWYr6Xa3E@1M&hqIo6>oM8W z0^{7h-cX>3y^+T}3l~MNsL+_TfrBz?g2E@XX_>M#s0f0h4MtcYrA0VSQj$VyP>YHz z7h@$+YH@6a6?i3TooZn-j*oQ504=)~w%f#Vuf@tK z59kPb1qdsx4#<@uf_@pgWNKU_4^CK)39J60pgil*s=%{824>oWHo2Bx+1kW@Y)}+p ziV$U!*aHE_&GSixS2*KK>-4-n!9N811XWY6lfvdETp(B4lAZ!d**eZN05 zbNBeqw{P@bUCh1lP3}e`-nn!=^h;#-XOEt>{hk<(_|OWJy{b?|-wdluM^RzqWjHxN^3yZ+pGF zTfI+E?8|<& zbYblDkM_v&w_8e)(6L=y=8IxC(Xq(nR^Ga}!rkY8z4~x#=TYL*OLy-75gJ_yekU1i KR9#k%p8N+-#f^;s literal 0 HcmV?d00001 diff --git a/data/resource/icons/Notify/B03_notify_slideshow_play.png b/data/resource/icons/Notify/B03_notify_slideshow_play.png new file mode 100755 index 0000000000000000000000000000000000000000..7595e09df1616eee2928a36fc77d37d85e067ab5 GIT binary patch literal 1117 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 HB{Ts5sV{h zsKEKKYDX9kD-_=#Y-&;Yik3)ayrnVj;jogoP;ZKa1R}4qXi997G&1GGW_U?BHkPdz zI%A?Y`mkB2V&QU>l2smcSnS1d901hmv;e~4bb=z(h69@whqtpB5TwIN+Fa<|g+Voy zOOR1IIHv_?KCD6471C-=CX<$=-6E^?R^ah?3=W&E7+Mr-X-Q{O#geum%Ruv5Ton{u zkR{Y$Wb5Q+-G@O>XG0K`aCn|r(&iEcQ)W%EiWOLJt0)?A%~)%Cl>gU_1+BHpw8C4X zye2oRaafPUhAbH7?%6_yA@qhUQw3NQwuzSG%_1-9A=-z*9SbLLq{kf~hydfZ;{?Un z0q_L;1m$KNP8_&!kJFRoSO`ndZpvk+0dP?c02m@*Biu|dXd@hUz}TGjEH)%*IxEHb ztgZlc=de)a8Ca51c~+OzN?C5oc0hT9tjk)1te{kd6E#;05+^6MjYfH9qosLO*v4}~ zRTj~i{F1@~`au`&4iXei5x~U|Fm9X)GC>M=5;So6U2bd+%l)66S)nslqdET5EZHU4 zfyQvY_2Fdx@bD5mF)BP7$416j1j$iDw7)VncKzx|;bL~px6|pG_jdiRj_w;UdlY8H za8=EvizT0St;(P1y>qAc=?f86DIXTgq91k?ZLfK0-A&gB?wI-rOda(;5E3_b)*ngV zc=*Zd!+&~z{i6Hq@iEqv+rDwqP+dm{CS2@%E;prmvL`f!h;4=}w*QJlI z>5L6MUl8-Z>Uey+$^#DdxB})qeFaOOUVd_V^7~f~=Y!vK}ttE$AXKl0OPL~Vj^^J HU`ys7aU|hg literal 0 HcmV?d00001 diff --git a/data/resource/icons/Patterns/B03_patterns_cooling_down.png b/data/resource/icons/Patterns/B03_patterns_cooling_down.png new file mode 100755 index 0000000000000000000000000000000000000000..3a977df7501a894bb9570d761df4de7fb43a5499 GIT binary patch literal 1409 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 Wa6@}#FY~1H56TGr{MqE|2mb*;=carB literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power saving mode/B03_ultra_Power_saving_mode.png b/data/resource/icons/Power saving mode/B03_ultra_Power_saving_mode.png new file mode 100755 index 0000000000000000000000000000000000000000..c8042cb130f95d2078b681485ae419ed4848ec44 GIT binary patch literal 1471 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~%1|*NXY)uAnN?apKg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+AuIMr)7pjltlRYSS9D@>Lr5I=vCwv0Ch7k*w|MTBqnF4mMA2p zrf25aD!t#mUr8Y|#a1cY)Yrhbz&SM|)1#^=HMq(zB)KX(*)m1R-cG@$!U||WZfZ%Q zLPc&)Ua?h$trFN=D(3-T9Ob#X~hD#969RTqa;7NqJ2r55Lx z79|7YBTX5m85nl>EdnV7y2i@CC=(bdi8(I$$)&lec_p4Mwn{)5y_C!pD@!M519LYQ z6Ju953s+-9Lq}6bQ)d?oGiPTfLuV&T6POv;^qQJlxSF^bxf+_g0%O9}#L~sg(bdJ( z*wWI_+|k+04W`#Kuec;JFF6%vZzj-Qs9qPmdaay`QWHz^i$e1Ab6_bTAS1sdzc?em zK*2fKOhF?&GcP5-yjT+yJrLizq!wkCrKY$Q<>xAZ!`CVki~W|4=9Y$LPR7Qr24=1% zhK3dr|34@w+Ji3KJEOo1RKJm~{D@XV8% z2h1@=z^tKufIEtTf$_bki(^Q|tu5F5HC!BJ*gwQhi`}?(>e`d}j&Uw$@6=e}|NLer0&p&5jn@5fkw&T%sxY z>fEXp2L6Dw$#<6)%x(0#%>Le#W5Mo=>L;vpANqD2T#@F-rSw5n_US4Gg_V=|S1d0y z&(U7h+3T)S>vq+Y_xYFW{K^;BSDX-hx<13`q=RsY6W6YtJ3SNgB#%5i=&AO4%i;2e zeZN+zvIco9cVM=eW%DCgqCILxt3b&?L00MDI{{P9ZRDJ+u-brm`y|_oe7YAHzsJ;1 zGkVj=dSf&9CFi9QlUNd$=g%^dO6Z^RYjOa4wur$>>#!Ts+g8@c&!}P8E6{Ei(PX*G zqAbd%@OhX|cJpC-UvuJJJVlOU@Z|C?8g}1Gnyy56q(TjIQF9)@1 zUQU}~ZdH*}W^>pZ+eJFZIAJJl5}a_aoNt>XWy;@i52; mU#2f3{`Y>!%U|u^bPq7(vM_o1DLe=V6{()CelF{r5}E*2niAFk literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/12H/B03_battery_animation_12h_00.png b/data/resource/icons/Power/12H/B03_battery_animation_12h_00.png deleted file mode 100755 index a5d02709dd5c0c7af08cee8a35c45e434131ea0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3483 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 IM6N<$f^LD>XaE2J diff --git a/data/resource/icons/Power/12H/B03_battery_animation_12h_02.png b/data/resource/icons/Power/12H/B03_battery_animation_12h_02.png deleted file mode 100755 index 168adc4ffa2779f908830876289e61cf8efee386..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1917 zcmaJ?Yfuws6b)Dr5UL=8GN56_N6{pkkOUG5N)yl&0tl3ct%FOlNPx}8?2-iQgW3*C z6(87Cd8mvLOR>^w0a2vEqD2$|jTTW-Dx%1%7%BK5KsPG1KT3CI_j}Aa=broB`^{#B zhpw@=b+sjtNcO_Df(T;7iPyo}iul@TcQ+Eld^|7~k3upfyu4Uk5~;<2I-t{6qAkQqZ&BXWXGBKfUS%OPP!{n?WGe9~>qcdor4}}hLSw38lPJZ_Q zL^OpYksBchdKZgW@qi>8mvd<}l}bfbc~eovCK{c?;m|+^jlrN02nv=i!yz?AhAo;< z5WtvNA(i7&R7N%{LJ4RZ&I1UiZ&N_zld>}G-7ygdMpHv_8l4K7QarAWD6|??`-V?zqSGco@)e^2@-T-qWreIdCAum^EY3EdQ6QuM{rJqWv1f zU%R(yV_O1gyy0dxZr5=t?)+*GcjZN;sv2o|&^w?Sh?cBl-n#4GhCaXX%7BG7)eh*} zIbEtRSCcb#XpKhW4rbUor+cpl${Az79Jer(pYD|=vk$RaJ(dTHaq(B?kdRTo4~knB!0s@rOHqUC>patpYnfrk{joFFWkp3-@rzZp zcCxO=H`>dKBECD^e@{~#l$XD7W$CgpO6T!aX+2-i=OlsiBu7G@w_n1$^J`3(wlsrw z4ULUJZU}IwK0}9$j_1JhsfTB>SS)#!p{>Zu^5-9$x(oqhE0>1-{H@;2CdYG^tgSNl zH)emKXI5dq^H5l&@p?-CvkIQ|E`Fxx?%9DhzufMaJ`c2={xry|KY(P=d{bVZm&V>_~QHfOkR6b4Y4aSEf+h{XRZOX zmh`rSMB_1@;p4ui7Z;q%XzaN9V%mEvMDvAl(!^7DZBuXT$(!jCzHxaQqH^2z-l|!n ziEFlLuAV&=yu7C;xm#^2*R&q>H7bij9#GIW+l%4k;zm8&11goa9G4eINbf zdXvQm3(uHPk8h%b+vm>8QkDgKZfMG{^N`Nj-1!=&e6C?B+L*H+UBt5WSuel-%65Oq zxTV&*XZw09s-vm1zrelQvA$nPnU?KP_ffJ-=h)bo#P`x1jb<*tHMR7+iebpEp!$n_ zF}&tMy!)2@oD~nAk0AkN42{P*VGgO)HdFtoH2tfrXiAa%X)`?s_n=Gso(Li@uUmP@&ym zSzh54tK05g6`!V5I#*IRcp=4}2Twvjw2Y+sEg0WhdZqfoc~pBFwmrBXT}R0~r;S;n z;JO!=l#kKVr6oFjckg9~>$lH_7Y_oj z7My!nyKDdN+in%s pa^}-#Kj44V1hX?8pQmPIB+>p6~m9&wH{lB0Sic zHi<@|P@E+pVi~y-P9#4u1x~hFLJgVnZ;G!GaMk4}n?0y9Xq_=~VHE zOdRyi7ikH=1cJ~a5R{gd#!T~J;<{xJi_hmnFdJgC86<+CU#=k(28KpIbx=W!>XkZ7 zOJKMLuqi6y@DxG-l99emL9Kl+tI@wJ6In3GpwL1rCTvS-5Ga-YKUA%LkJb}1^q+YD zQ&=xwu0f4wO0seBQ*Exah)9Pj2wW$}@ua~jMkL?_u1~I5T0G#R_Eeeb@m)kx0nr@n9io406S| zGDVGQh(WIEA1-@Hu5A?5TGF!^)nTcqDoBT`fj225*pRVsgND?5$5jm-3p^wjB7=c! zjr~`n2am||h1#2X^0qvchy&z?n~%0jlU#yb8(LTWYH$I* z9b4czO|ni|=3)(|x4C+ZEOPi}Lna`b6R|)j1ZDHwM!6a9tf948faKlA{i9@8edJO( zwLfHwXX6wgCo&m?8!`7uv*`FE!_gXEB0VOddV*rt%d#CE=gvoapTlokj~yu5^Qrb| z^&~poyW}kN`%lW?hT+ls0ut|wB6AAn(2u6>=e_80xO-znOSR9P`Z$pXJC@5Dy+|;N zKDDItqKE(bX=bmR<(D7U97(neOn=%cq$8_ex0(E!+S}vXiByLXx1JU9R>#t_8=gNo z;Jw_L$K8)~_Zb&mtTnb&(QTD!tPC39@fUFm0&wE8tsth?BwM}qb@Yn^1Zq$7wJ3+-(2KgRviqD&uSKl-yRZs2Y+49Ra2vfz;hohMdj#=r zWI5I2R8zX3L+%h_4ce8T9ai(fS%6-ABe?u)xIPQa`*^E&<+GX(SC4#MFLC{hQ~Kf( zt)hZkCGgiwNu56Ld#`QD)jyn!Za`C}rNo3mCvrlm?Huz1uKF(4d!@azHm`5AI+MpNGheiK5q zc7c&|v&L_QmIQTYcXf45JTv#uZs#98aya*O)rZC4X1q7AYQ>XwY5vb)!aw$You75; zRHss>n@Xi*;MDF6t6Ot5h0`?8J)QAIr`;GvDPr&+|U- z`@P?p!l+H}dblrlr_pF0vT!Vh8cFK)q|c|mjG8^Ss9_l?Ngx$O3TajvaayRFNX7w~ zPPqe*!IkQ)^mbf8qs;|1u?b{?JQ7tAI+oIjVOewricO;lL>7Zmm4=f*GQLBj7lQVd ziy)v;3&D7<9F`lzc&a8m+lVW&H^r*5(^PylC<+Dy7L*du;iM9<=(KthY7v4jbWv*V z+=f8l1%yl!g1?zckVgSx!iWQ079600HzL4B4h!MHd=B3qV8aLuA#4cd1t2iW<)JVF zynH|^no*sC#$eKyv8a_0OeIMJ3PEPGnPuL9o7Te=rfk~Qa`$=t>F#GtM^fd)ks$NXm;PPl<;yQ?^gnx^mz(YX zOj@*0YHmDxBWofqJ}2X*EwisGXKM7DqYjTs-vb5P6T3y(Be(27UCBH1?m)&;CNnpD z)f|OF5wi36bW-)&-5n{p!^6o%s|tPBof&?04Niva7D2p$`utB6vAb#XXA3x|m8O^T7M!N{BH4 ziSjSnr>@aEqTAJ8K9XJS?XtBH1E*A&(=JmpACLv>8UlM6${1p z6PcqI8@%32TOFRNsC+xNcUXOz=dd@7TC{PZzh0}lUF`a-^P|>>0qVTq=n^FN5^xNT zDmvV0x8EyLR(Q7EImca6RHG>$a6#t>eO%(P)QW~p-A$_T^D?m0`_I<}t7YdHU4ZfCwal2& z2M_j4T0a9sqA!Dd-;X_1Vs)#CfBuPMXQm(z5&oh1wT*M1in}K-T<-{3V^n7*^0~TPm;>BI_SV=}s~iL));illl4iK7F+hd*(-Yg+53RT=Cr} zVO2@vht6kAIWiKO8M)Iv8@`a#XeW$V+=+Sa?(VI&%;@%H!HN3%z}#Oi)S|cPm8GR8 zuZAdkrOoRc7aAKMGbM+&^CW+Ra&Y`U@|TFW^%s2wmikWG;9#>bXl_-{UE9yy-9;#y zJzOZQInny}8~E2A(G>%GqX+F18^4u)x4+-?eaM}gTgOgq4QTv$Zq-kkJuW8xhnJ7s zrVk#q*?4bm`zl-4-}>Qn@MRg<8XU>&-ElmA4ujT}QtP*iQMkqVXOu}cVW+~j@BR;d C?GOh5 diff --git a/data/resource/icons/Power/12H/B03_battery_animation_12h_05.png b/data/resource/icons/Power/12H/B03_battery_animation_12h_05.png deleted file mode 100755 index 4e83296b5adc4086ec7e2bc148e6a5d4f3b5bef4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1932 zcmaJ?d032j93LBPS~>`6ZQfpNg=XHFYML2EQ}2vMO{Ix)6w}OGGil}>@4T5AcSMJy zTI6V#O)7Ha=+dD!(k4uYBNSy3DG5<2_8rvjAKSjq^S;01`FuX#>+?KsoUix%v4$3g zBob*X&ja=&R-AZE4fKicn6%iN#4;J@1mXfT6juo`gv1u3Aqc>e3BwRSL@3s*u0oti zBt1~-ABYF?y;vetMi%NYWVK8|ut_B6d1{4Fvb^!w%`4C^> zj!2{)YcWKy*4tmSc9n=J2ItKMoYgEsK!)H#KrM@qD_Lq6@QW^s*z2w-An*l(uW|vu zCKbr{1>8{#0UXJYod}{+0lEX3>Hskvn6m*IM1?3+8U=E)qe3i4Cl*8nzC9oj4HJj5 z{9x|4Sj5Q%l;F66MWLuvDzeI+jACIFDwD~iKr{-CW=A0Glo~lMRNKjw(*_k_L@C0g z3S5fH0iB{S1dYU9KqAwxCCC&*vU26OHW3Y@sD%m&l?>@h8U*tB{|}YPhR{mf5BVqG z{}fjGYZM5@4^g6#n1~o$=rmm@1D<0xbAgA|`^FUyn+u0CESEwg zL(vWPUxOaJBHW|f4%wDC3>hDh6K=-{TdQ+6hm%MnNj#YCufE@YaD|s3U`pkt4?doh z;~rZbXkItp<=0By z3Fs!$vrV0xyjPrB=6n&pvguBf?u(_6E{{co(( z-WxCYdC%`QhF(5C?ivlVp@UPMcw3Xd>{3*d*@+_ zT|A5JmNLRI_0UA?9VLskb+pnryW`f~jJ=vSEj^CLj1tbyrSx-Ab3!5WXfyp$w70zj zB~xgp?2q=8MP;~Q4*a)=T&Z4gX_*lHLU#~6UUYE($)4ug%&ngv@b`@4MuilZHVp26SO0O0yyPVRV zZnLbG>TybPGAK8zV5+tzt3Fd}1DamFI^R39p3Y#X8=huuzj>4Qyq`X1!h;!SXU7C= zE}z2_7QD-ol|QjEt+i56^hHfn?o7|ycM63S@lT&Tlu0BW3xf}N%b*#i(ejwfT|67J zKBE^@Nq^^|VheNnRaM)2-G!*gAQLaTx%@`5Eh^Wx*W?i?ssttaHOa|a51Jb6dnGsCoe*;? zDaq8w!J=v8vmmlS9*Y%P?yQ@eo!?^Fw5Kk_)<@ENz2TmA+= CfF7j) diff --git a/data/resource/icons/Power/12H/B03_battery_animation_12h_06.png b/data/resource/icons/Power/12H/B03_battery_animation_12h_06.png deleted file mode 100755 index 51d85d697ba55e663f3821d8d526137ac6aac274..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1939 zcmaJ?c~ld39*sZy==fIoZz_@X_;d0X2k40lj*=2IcAb!w`n}>`? zL*xoxsBrz8Son!gR$`czN2Tg?I*N`#fsq6%jmzayK{}OA_reigs6m5C^Y7@U{RFD!$}yQjA!~+32N)BIVlWa8!`r92C{e-~j4EL*AP8eoXh5V& zBZqb9YrI&@3(}yNR3n3egnTltKvAjWJbx}*z+iK|nH&(L(L{8PHvpdF9&j0J0k*-qRu< z|4lh?v9HfwkeU@-ef!MH{qD{~MswZBllf^OiB8e4F71WWA_*PWu5F#8Rxg;N`|Z2j z)5*tv>O1k|+-f7~#%({Xhokktv9a&RpTRbT9|}rro3YTz;phEvD;bQ(bDKes#o86_ zxodpfFjQ0ZDz17>^FyShv~;GX&JKlq~dlwaLo0(eYAVYEvgO z@|0s$gwL{o=t5%13C6-)n+u&cYFlR-|4^DTKTs7pD2}%MVt+VA;P0`PNIQ}r@5b=@ z(s{-WrlaEcseY|=NGeVNZnvh^uF|h9YWJR-u2o;2A6_l+W<`<8*OWs z^d3*=j24>?g}8qgzF!Y@%w8{*O6`YLf|nfWst4`uGBuFz9rpOqY*QBxX^8pw!v`&A z_fJ-Kb$1tM3vEhjYrmqJV#-feHZJBL-0A=awK`N1vPs*d87Zskwq{2KI%UO}nu}j@P4|}kbGvnX|1B?(lH+IaKr-*t{=C^6iN7pQ!m$~KC#(@?6euipvoH9E0`$$BSzvPmS zaJQk!yjxU}SPeJS`uRhyc`~66txfs+8giIU;ZPLFpID{=hL%G4>Ar~ev?6> L5aFqHTR;61304&s diff --git a/data/resource/icons/Power/12H/B03_battery_animation_12h_07.png b/data/resource/icons/Power/12H/B03_battery_animation_12h_07.png deleted file mode 100755 index 625e60f48c00943fe4cb8c24b103020fb39ad7b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1935 zcmaJ?dr%X19uElRr!i3y2m-vKt7HNKzmnkV+!*C=pK6CA&fj*$ul(6TkyO zD-sJ*I#q-6@GXU65hzs@8c_jJaU`|{LBST$at%^B@dWK{tl0bGxSiSkJ?8WId|#iL zEsl{#Iy3(kO8(wUX4kZA&cg#FbxZ`Vpw{OmSWRrA@Az7kSZM^=_yF68Wk`m+d3F@ zH7sBxa%F%_D?-xLQ8_pgmm`l?<)o{4FymbzJw(r^1T+W<(e;`Pl;Gt0I(wWsw2~mFe##Xtb|nQQ~ErsD`oikd_Uy0BcF}K$-0SLp7RL zXo8GI{>b-#3KQ|!T7(^o5Lgzjq6W9w(;7<47vTs*Vt71;Wz2UmCJiGoA`R2hMR8mf zNKaIwFs373;AJwt6eUOqRUuNbfI%s+)M}U?#ubaW{s0gV3;-Y)!3hIITwWm09}M>w zivdZ{JXegVvNQ-v&U4{ExZr|Zs}(d_DzX^C)gK|S1jjV=7bWx63+2L*L@cQHk_#`C z3r8YZkjti$VOt0LUxS{%qTFNMzOpTKcx8M9rQD8FwqCj`_BxGbw@4}ui`NhS)2Pgd z%X01Nm|3^B&F1Z^TJ+S_ftJ?&_O4&cqx5CLtD%CCa_RQ8=qSY@cF6MVhb9NcYhu~7 z>Hgurd0k2cP;hJhrF#;-LuP+{a?P37`5W8XvW5q91>?6HR6gr2`#pH(ojN`=JImaV zSAB=qk(=k@8c}exD6zA%)3<6YzoHpaP6Xondw#B8=^Is2?!57gdFk_sty*k{<&KAA zS-Rn(cW-2*=Q{biRm*>lgUefX*dGiY*m~=i_S34!hi-=6?x%f~vm+AsG?8fAlIE6= zmk-^pOYFE)9__7c{;pw!8>9T~g0$mKYvtWtsn^a1!8B((Tc>{clv`rMmbxofPDGL$ zyUb?SH;e7=jgOo9_B_w;IptK;Szs_Y23N}Sj`|pae)?C=M{#qHAM~d-1wMZul6NOXlv2=QPb{#!v(!IMQ4t=O-6Tz_IMu3s#zi32bPL%c;D@IevrgE z{f^^-fWM5j6D7l?KkPHS*&5vz+Q(*0Z?V)5diePz*r-It{qG%d-t$CbI@ELhK-ET<-KpQSmfKobJr&&-PkKv49|NfiwLWM6&K{oJ|! z`_KGJD=Otbd^hS|qqzB3N%!YEmt#9W-d@^0#v8I!`{vY?l;qVbJ4!oGCMP8YSk@9> zI=6V0n|X^>5-Y)ZxHbIO|$u| zXs&8hXpSm;{CLr&(DVuS_IGj`jvpUaCsa0~21n)S;NakA!s_!w?IC${H^UaCMRpyW zb1J;7Yc29#rK+8pnhNC@hio6QzK?}==C;^ezH#t_uf{kR(NoV=UHrY1_!}Oma>~sv z;Yt|1Z+CLKqHM*g*~Yqwx`}11EsZH7*l)ta(kN6fKiq3ZgXa_v~wf=5t N(g?Y@A^d~F{{YFJB1ixL diff --git a/data/resource/icons/Power/12H/B03_battery_animation_12h_08.png b/data/resource/icons/Power/12H/B03_battery_animation_12h_08.png deleted file mode 100755 index 3ae1bb742c407b72e30979cda5c3358b5bd77aec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1935 zcmeAS@N?(olHy`uVBq!ia0vp^B|t35!3HFG7I&NjQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?_nZLn2Bde0{8v^K*7iAWdWaj57fJ{tG z$}cUkRRX#c;)UD-xUqS~&|m@vn0`fKfxe-h0mw@*g}%P{mFDKcRTq~8r6Sym)!^cg z%7Rq=pw#00(xPNw#HA^NtSYc_E=o--$uA1Y&(DE{Vn9ZINq%ugeu08>u&JJ*LU?9g zN`84USiP^Wm1kaYNn&1ds;7&s63_&_%*+%kOE+f|BO_Ng6AJ?aLqk_1M;BK|XIBGP zBPUaH6GKNQm|mCs%D?(vMijbm|u+X#@ z-285GH6I!~7z2fC4Sr>CbbgfViRO7Qf8)-H=N#{tycS!ruG#PUyS&)#_p1N?efQRC z*(VO|Z*`O7>-Sfmd+B`s`JDSZ_Xi(*|NZc##j77ad?e>OYsC~tpvU!HGLcGq$B)9&tz{r&ybC0`k*Ofqd}UC45?;r82oJCogC zSa+R1@$3BD-!I(cGMt^81-EQ%mArFrb$I=qNnT6iwmn<-z%(HK|CN&t2e!|B)SZ5= z#vp}(m#vxSvfsz(@O3rs=g$o6d$Fr;_iod-27MX?^NyY5}*O99W%h?kuLNv*PoKSCcqH z5*9F3GV=F7GYUN?GV9zumQ^pcRyC<4 zsd>JMX|8djoXw4Aj~rL6YLm!NGHeyU|6O_R%;p)lCnnXU&oT%XUXggAckZgpsC)0< z)hxRNsM`rOdrA;xJF!7Gc!Ho)iwu&NB*>^I(Ogkvv!_Ui{{*wyBNzj-_@3%Yi>}#v;J<&2{liql-VuW z&)sIwzJNx3_zkYnY&d$3)R<`|< zGKbdvyK=MU^ejJq{CM-qkSy*qyJNgt71y0+%b3pB>ZChevuyHLdFyLCYo=HKDEQr# zFA!qLJ~7cQ^K7DH)|@xb*R9K67r*1f)vmt!zqM}7KN|MVGxqME@lPy)f#-MA#$*dq QXHXUC>FVdQ&MBb@0EO5d(f|Me diff --git a/data/resource/icons/Power/12H/B03_battery_animation_12h_09.png b/data/resource/icons/Power/12H/B03_battery_animation_12h_09.png deleted file mode 100755 index fc93a4a0b725d2a25d2e87259a764a245e113e7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1933 zcmaJ?c~BE)9F5AMD1xF=waPZA1tiHPA;bh@fgF;SAYw+a3c4f8CIkZLbpkS3k%Tc?rV*5ww&g_22y!U?Bo7t@3ptbgP zi|j}wlD#-U5JIdt@y?lULwsi)%lw8|7UIG%d;=PV$3t3}u={1ln7RG@{I9h@5$OAPEWI!S3kwaM$ zP@>_(F^YghExaKyNGeN=m2u?ckJbRI^;|+g4dW1?SE~?=tLKs5=yHj@<(ftY-aznJ z9{KO2!X&`}AJxJDiwaU?pf?@x_M+0gK#mv36JUUJkVa?FKsJRAa#?IHNC)0NWFneY z9>on2h~CB`PCRl9j%&CyT6}ywHJ(XDwb3*>hr^+P3>t$$ArKTS0l^_X1;Jb=6a+9P z(<(H$0!09eA{2@0a2}b+^zRbXns>4Y_O?w#!)SU)L!(ncOGy(ziRAyGYV|ubhKIoa zGf&P#nc#Pz}J}z@pNDPz54K z;C z6`(Sm8biS)C36*%=E4$As`r*FpEMViXi_eX zNQPz^?7s#*aYeYtvVCV;;_%M+FhaOpOW3-rVDB>$$!dyN;3w7J?Ys)?9 zYfw>U`(qa?$lWY#3%;@Oc-7HMTinvSl6bvcAv>x=uf+C?XZLn=4_t2^PcihGk__`x zn*bHz1RTe|E+5;vbM{hIw=l{_kyZ!q-xqf$XJu$&O?HT&TXJ)%vvjdN>9)DwTG>QK+@a1|RwQ ztGU&gwbVjiYa5Tf^DoqUg`U<9wc(X3f+eBrov6(#2Qq$r8cQGJz6fmPqMi1}dw0yYtP*w;@dOozh(w)FAQ5b-o!P54S*r!Oy>`f59V{IPhq z$f2aRRs|f`tUOg_crV5IweRy!B0R3{tCn_>YNig?uYYN5a_VOz{_^}~Q_TFU4$cGn zJp-v}UuAFj<-2qFm!J5YdU)^j_wx&9+0`~6~# zLvWZmeU2U6__=$e`#D#GZc4n3^T!KfFl>4;8;u-(URmkAYxItPET59K%zh-f{$yTj zPw$|(qXO-YP=>E?9Q~dBOvv0mEoM#}cgYL=>gnlIJIwFNbUNLDW5dZR2iENP=w3*6 zv~GM;y?f$`^XCV|!oqSi`z-C^$jHdu&wTe@NlAFwbEes*t*q==%Y3W+0c20mx)00q z^70-At|*`OIJ}JVonwE~4!4ijl5;B0^dyOG*O{I~)ZOB3KZ|{Bbd+8s7C; diff --git a/data/resource/icons/Power/12H/B03_battery_animation_12h_10.png b/data/resource/icons/Power/12H/B03_battery_animation_12h_10.png deleted file mode 100755 index 8f1ff8e8da45654878350c76ca9bd01e90a171b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1933 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 MfG^^mU74``ZxN~#=Kufz diff --git a/data/resource/icons/Power/12H/B03_battery_animation_12h_16.png b/data/resource/icons/Power/12H/B03_battery_animation_12h_16.png deleted file mode 100755 index 4c6c075c16037456ae9eca96c34f04028f498b5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1938 zcmaJ?c~BGg9*-80B8X5+AMZ_Z4HRsZ>~2U1*_Q}0;i?HoKsn@SNEQ+?yGyb_BtQkc zTf`l)S(oxSP>YCRa&t?1*~!krL{7xJgKdMNR_v-V&5N+?#%A*n9t|)y*@L0 zAUrh4-u9oiG#br5Bv>S+R+4%hZLF!Uoq7Ma)Z#)0#E_AA3YjI-pfrI3Pey?dwJa5t zqB6zK^s6Y3Mtg~_ii#m)Bw|F4s~Iv2hM`jv6q`ol`RNFmJPjp*WHeQU@##}7ZFE4T z;M1eo5=cS_QKc$4TZ2YshepY>)8t$Q-ESkn(;<|A8YN|bPQ3%uB04_(nJz-@E!Q9& zcm^TU`1C)Mijjl^LR^CaYzE{dhkRhbhsA(d5SPW>05BmK0%0ZyalBv%VRH}&2A)53 zDw;--f=ESy&tp+1K3z$Y1OkFtSy_xMZw9VO1z|3i3qnkg$@HQSUfP`)DbsmjTDJuS z5vrAIR0OHQF~FiIOU5%uKAp<+&l1$c3t3G2yiHWYK%I;LVFqL=X#psa{5@2yeu37K zQuMEU|F5t%YA1n$QdEm)Xynx3Qrs+|2t=qsWhAbN!tosoT?|*^B(7EB1R#uLGhiTE zg(>hX?K8YYf`njNQijRV5D}kFDKJzj1;X)#xjq7sFUuE#U^sv&fH{Ez&Zd9>UvIX6 z%YqlUB3z!KMlo`MtN4q{U6gCFf|{Tri%^X!6IBFia5eC(WJI-iEA$>4qjtlf>IHR$pnG z32Sjaf0Qk@TE72u>#`OJXB~FcHNHK=CB4-Bg0C5lWjf^!7N$FFd{pn-z-9L?Hy5YG zCg+U4zpA0z&*qY}J)kGNW9#V)ADxR|w`Ww(pBU{cl05j*BlCWq@w)cj)Xe&}J9+nJ zpWK^WyYAr9Z8NojK|#?8o$s=h^G~N=zkS}o9%!s_XNUS|?k9&m_;%&^v>l%Soap_A zU~%-J;w!Ed!jK3()ZH| zO}}-YCy^&Lxl?Z^3X6&y%5AJ)`uCe(5RV@WyLt44uWN_OSGQ%){uces$cgNB$gZoa z3po0=EIr*ZM}4=gWJ4#>6o00=x?uP}cRaR4{NdO()>!fbC$tAk_y!AL9YfM|F zJmGuH_+g1&uaEqoW8;yM5_?6%X8RjAX3SF~xH5Nia~b6Inn_lWkl%90IQ#By&zc*U zKw)%W@|o~b;{@iMfsI<1z6yR`#)(ce&z#)*g>UF0#J{Cd|E-XNDiB3?>lU`oOyGa!^$1(t&VBArZy zq$4s#er^{MO`*7h8i|yUij!eErlZMR7@Aq9C)pHA^g6R%Cf6bakb|f+C?6bgw1a>~ z!3Q%rVo0nPAZksb#eig3QY3PVR?bs^>tcXtGfWET5JCo+b=y!JHuJ$Zx-hwSUDH9} z4TRA0!C#V+iqilAWVLIJpGSN&d8fH+@89W}34l(IWCY3}`@qCn!nW-oqGNT|w zaJfOFCo~uexD;hMn33RvWTwBApwqvTMe(<7A{$0G%k*>x4RVz<0~Cw@KUAlChsKF? z@K1eFiG#UjQ0VTvmuvt8IBm^-S@yu9uLM$&*kdVM+3*!ZG zycw<#lN)siO3ZK-zj9+|<+`k()02^fh(VKwC=v{q4tP^CteHKRh*|aCauu`Z5;-fE zP9{Tl4fekVJ#$66$F+TDTk`PE_y|h6-9Xyf^T}sBDU`V$B4Mn=d}p{kds~Ll|62P* zYLa8l``vo6R)&+fL_4sH3X$=+nbhPYd~2YP>KJsrl`$R&P?%N%pMU#?j6HI^MJ6lZ{p zk7MAV?FI|{P1-T=!0>jd|He`ubK8$YQF(uE4{0wtJ^i=xVk?cJQ>&qhmKKj){rKdl z@1|Ri$CAd|)>?deZm-LY4)ET#dU~ohV}*D5dO?+6Cs8`xcOuETmc{y6)(JrzPJv`i z!Q^EAv*w2B?DOHB|1eZlSG%FDc84VX`GzU06CHK(^GBN!@X*B4FMMb>P$hq*Nk9JRQe@Epg!v{Y;-j!TY$-R~%?;cJ~POfa}D#%R5 zc8712-h5cX3iUd5Y5lyd^S)<~6t7W5+`ZT5R<|suE^ejyNvB`TA4B#!U;aC5vaTsB zI(Wm!;FFYM$MPJiq-?ytQEQ!Sm&T0UzlL{ljY4EeTd{Y3*;G%T8II zR9jKza5yqbt_Oc{@ZcEI=w&P`E3SStd`xZqCdm$+nBNU`&^p>4WvIO-=jIh#y+C{D zd;8yCY>nQo?QQSu2O0+@j$HYq(c)Vdl{YN@z4CI;$4iqF$!M{-9Gn9mz4DR4Ws5_Q&p+3 z^yQ~9&c;2$!6eJdr{6bgSC`S`h1Qo*z113fV#)Q##HIVsfdFrPSI&5EPtS!7Q%8S- zdv=)b^iSB`8ydd-m*_j3&*!Js|6KHGx@2l^UteFa?_B?f<1fCeIqQ35eH6TKiPBFJ zKLZ*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} z000B>NklFH_Qb+#}N5sHe6SiO2RUauD*6$sQsYHF&t1ILaZKbaE|6VsHI8#iuF zWipuqrfCq3#wg$D<;9LBsyCKmS%Rqylwn{f1LaI^<|{6XMLQP_*xE+hHaTrGGc!l5 ze~hyq|H99gZY|h7o6V9+rAVjKl$V#|_pe+UjmF*#1_K`eO~4fq5k$<*vDo#^BErbX z2$ju6ynM0&F-&H2(`2>j2vr7#QYfWxZQj3Ctu?mRXzd8Kb&j>6VqSSK#3!%y@#~e_ z{~keWhKGk)vBHPPDX}a;M82=7sVTa4?b`FTwd=Wjd4kKI zj#07Ii?xiu3B}#QJTS@5(&flBm`!M6=cl;YGqtGx_4PrPFJA`mRcmXj4fM`$Z3NRa zd#bCepN_}lpQY33ecQHeB^td>-$%cZNF?3t7YH7Yh0o_B7_7zbUkN}(MaA2uX+8xU z15kVSJ_|rN+|~#@)7{P*d++HH4!0Te5;p*k xxj8IIhJYVCJHPzl%$d*cU7OvXoQI3Q1^@`|gWHLx(=Gr2002ovPDHLkV1f&VAKU-{ diff --git a/data/resource/icons/Power/12H/B03_battery_animation_12h_19.png b/data/resource/icons/Power/12H/B03_battery_animation_12h_19.png deleted file mode 100755 index e0c0d9fb47a26efdff710f344743d3d4f5ce47c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3780 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 LNkvXXu0mjf&NdVG diff --git a/data/resource/icons/Power/24H/B03_battery_animation_24h_00.png b/data/resource/icons/Power/24H/B03_battery_animation_24h_00.png deleted file mode 100755 index 2c9438a848baefa9cb61acb254b6572e1693e5d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3496 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 Eg5Vk5y8r+H diff --git a/data/resource/icons/Power/24H/B03_battery_animation_24h_02.png b/data/resource/icons/Power/24H/B03_battery_animation_24h_02.png deleted file mode 100755 index 6002892da3926ad63fba27afffeb736e9223ea1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3663 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 diff --git a/data/resource/icons/Power/24H/B03_battery_animation_24h_03.png b/data/resource/icons/Power/24H/B03_battery_animation_24h_03.png deleted file mode 100755 index f039d12e9fac691137b2c315fe70bc546f9d4589..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3720 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 N002ovPDHLkV1ldT0-^u_ diff --git a/data/resource/icons/Power/24H/B03_battery_animation_24h_05.png b/data/resource/icons/Power/24H/B03_battery_animation_24h_05.png deleted file mode 100755 index 24ea2abb4e4db9863569512be1ec37923c56414b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3769 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 diff --git a/data/resource/icons/Power/24H/B03_battery_animation_24h_07.png b/data/resource/icons/Power/24H/B03_battery_animation_24h_07.png deleted file mode 100755 index 6849f2fa19419d31c07599feecf8706529b29341..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3782 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 diff --git a/data/resource/icons/Power/24H/B03_battery_animation_24h_08.png b/data/resource/icons/Power/24H/B03_battery_animation_24h_08.png deleted file mode 100755 index 2ef217b493ac91e87354fb6cc8f51ea24ed55424..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3784 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 diff --git a/data/resource/icons/Power/24H/B03_battery_animation_24h_14.png b/data/resource/icons/Power/24H/B03_battery_animation_24h_14.png deleted file mode 100755 index 82a24148ae4eefa022cb73c56a9517cd74ed9586..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3784 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 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_10.png b/data/resource/icons/Power/B03_stat_sys_battery_10.png new file mode 100755 index 0000000000000000000000000000000000000000..e5fa30e0b68632c03cb8d920022213e45e876f9b GIT binary patch literal 1089 zcmbVL&rj1(951247kJQUl#3n+2{Cdt%E53j@#ICX98B1RJ8wkSSau72QKj%EUzkvbH{l@<=yV7Prt4!?c#H!VHWlWbjArt9FCV?iB4=9BEcQ!}{6Ij?3Kw&*U&mI-lXj;mBE;YuWoy*W-u zBocv!D26B^USK-|#G#Sl9u9qF%&HB*{`w_d~GVT<$>F@f(SvDdVcT z%L!qgv+W?RI@%|B^w*6;(SBjYMO+^Fc*!$pJxV=IGR@u5h5{h%Eo2+Fe`t%^Kr8JQUm+n}Cb**e62Oo&O6sHi+IB{Ye~P2JZbFcuMGsuWEtY=dk5 zPtG{%3>P%VKh4rSq8%744_cpY4u%IgbYeU@8l5e#uF-rh*-ipQ8(rM}KVef0cy0Nc72H&1>1vSS|Kn+8Aow)=O? z4?^tnhIX!N&HVgy@Y#%*iz)4SQ;?f!dPZ@={n40qQSkDZ-mxY`By=I*m{ OFw|LXTz#p`KKuj4GF7(# literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_100.png b/data/resource/icons/Power/B03_stat_sys_battery_100.png new file mode 100755 index 0000000000000000000000000000000000000000..2796ad07212cd529fd8b141215ac17fe7223790c GIT binary patch literal 1086 zcmbVLO=#0l9M2dIH=V+E&yJ-{Fl{QIT(azcx*5lITwT)ZyV)D9XJGe0r z9e5B=UcHJRAb4?tAiM0~Nl%`_e+Ua5JV93XNFTdaK|Gin9y*fB>VSpfr z!TgL?!rzhTIoXHb+h6aR(FW-iGzV*_W%z)|Sg;Dnykpcs2^iMO?Hw>h5WO|KTtSt> zb;X1ZZA2J4bUe%^h^chw8RjBDWEIqHH%0Aky`xCmN>TIi0$cD@(6DD#eK5B=TQ*l0 zP1&N-)8tgBU;zgpgAAP|H&DV9wXdt-b#%;7hE8VGp`!?ap0x+T!iuQQx1 z%aI1p$1oxmthmSsV{S0kRnS0S`nHE`=#r75QH4#EqOhk2Avj*4a475sokZc3F`?lx z9L+M06UDWU4p0gFb>m2MP+su>Qvv~O`X;VNZLCYixjWua1jODbH+&lx#aPmy*>r%5 z@>+_*e`w3L6oJi1f}Bj|Bwf-4j?0Q!USqQYrzNv$HWTk^9L1IStR}IdAj&Le>S9Kd za;hqdNnVr_xeV9k=G_1pt_iw!ZEUy0#mHm0is}OcLB9;)Qnv$&4TxaSfF7yNN#x~u z+qGaTn2gGE5UmD$dl^_cA3EfIeii!&`w1=~ir9aa6=hw-aqD7I7o>#1Cp0mxW~mO> z`k$OJ*cm2jj(?h^dxSeMS{}AO-W(1OaPh?Wcr+Ha`hVcDa`RfI9Dc6uwcF|5=RK$T zZ^`SAhd0}!_t%OahnC4ZC$`_tR4=Yq9-ja3Kb8URD=iZxk zBh}#x!A~S>(e8=csB8JN8Fv9XzqPEORp2XL_r;W^*xoWM-!db KXSEmEg^fQ!UsmS; literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_15.png b/data/resource/icons/Power/B03_stat_sys_battery_15.png new file mode 100755 index 0000000000000000000000000000000000000000..8be9127fdb7a5426ba01e2e7e4994e5eec3c83cb GIT binary patch literal 1092 zcmbVLT}u>E7#>mjFa)y;Q3wtrLZv(3J3BMD>F&;KuC=zU3+_drs-CGwZH(Azn1h$2n)-=Xu`Gjl%e~j`rSm zilRDlqk55id!pyeDf0gGW8I22*eK%(G>a={0I8IXW+2G9<{T_S(_UHHgF_V6I_s3m zxSYSCS;%F~$cCx9K0#B|&~Vi^tp$j|44iYkB>nr{dm1=)lAes`xxAl&^UmmM04G+* zOV;XwrP}oHRWMZ52!RW+399a*7i!fcUFX%vIyz=)P&dH~N&3*Ka=rjED1ac&h%t-f zc_7OSFU4h<9|Qu&3oJ)&ImSy`T-JmHXk0W=3+!2~sAn5mWS6ApG4?f1lP~!kBGgnktmWf zwrct;&v2~kMsd}xLtKP^-8j}dEUoyEEy55j2NtQvY+n;ha(A*&WJtWxZUzo1in*vG zYuSY!&gn^-{9$az)jhzWkWVZo=;0@LFdvUuPfmsaYGdqj#ng7l57*3^FnNT7HsM|M7MzzPQ+@N0Gb#DC4?569Z;A@7=`o52bl>O zT$*$|8&$%~QF#ud)nVY=fp#`PE~w{MbB@tZ@Civ0(mKaUsv(iM4M{OXIUx!OU5aPY zbOUSuPtI843>!7aKh4rSA{`hlk6NE>j)n(%WMTp`8d^d4NXCj(Dpjg}n>nb}hFiB= z`p!PyrTBraTB5V|@>M@LH@5cVV(!=J&PwOj(~Y*N-K~wKLho%b8E&3Gm|A=Lto*{? z?D_KjQCqh$z5npm^=z!?jlJL1_4C5mmAju)aIae!*m*EAIFegfXY%yxmXUic)YoLc T@*&uM9?f;m7}s~w)A#=XXC_tB literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_20.png b/data/resource/icons/Power/B03_stat_sys_battery_20.png new file mode 100755 index 0000000000000000000000000000000000000000..f01931e59539a9281200b99c7e2327eeea8031b7 GIT binary patch literal 1092 zcmbVLO-K|`9G_Ck6v4WbR`41#G~1oeo!uSWWaq=&YR%Rqmk4y6d8>oYym98)?n)Ph z4qjEHD2OmBh(f3!=+H%ouF)wvbt(wDi(qeb*E)!YhWU8!&HwlN{XZ852QD=?wlz`| z)tu?qa^%|@J`IP+d;RBKGu&XkfQL{Kmkb|LX$y@(ka3K0n1hB@nf?TOD5|b#=L@)y zy(*i?i5j6zwCs2UO;J6)WzR4tAqHb`+;&s+@An^QU|T7AIF@Czo(d=I{#hRm%?{+v z*-0~L(Y+TzPgy1e4#Wm1J5z2Tms9jMuT0kAF++oG6FixscbqC@2Z4%w2x3toVzL|u zBq_>?F-hVs0G{P|h9$QY;Y2wm$$T7CFPf8OVJY;dosh6N~LH?h$4TS z;gZQ@$iedwVi5@{E;h;$H)yXhXfQB++ru_;LC9!~p&6W_iKjauI9@ipOY8>KM3Iy+ zWy52*D9bob7}vISfOGJ#8+%#@`HBab91PHmZ<2Zx+iPHwyZwbiL*k8m&9_NWj42J7 zGY)idMoZD;Pt>w4SzyzWkW3`{Bwf-4j#EU1*H}g1w1lE6=~#_pFRY{_c!5g_Vv;3D zT~s7h)dWQqIVC2lf>6U|+yEP{32VAG(XC?neX+9YLjxl}kI+=D0|qA$M!^K~fI1|B z&SBfNP$}pN%d-=$27UWBwEBGHfbIOs_8$6iE-s3^qOq)))I}1vE+%wAiVJ*P6Jx4E zSFzUraBZu zp#8|o8pU-V+lserJ$~8&nl8`XJDvG;xTVyxdVisQWNmd}da&&l7!H<>ZjQ{odr)}f zEwz69wp@Q)AN{g;{Yqb?^{v%;bNs3^{;qPsfZV)9twg7JqY4m5yhKc1VQjzh_h)@J(M0?_GjLk_kHhY-rJS@*hpu4 zUpvDvo!L=Xpx@r`Idp)&-~PC6h62$`WE@vW)$kEBY~eBjS;v@01!P!@^Y76h!|bov z#S$syE~qAUqDE*FtvMb=GtA&n%`?ndL_ir$+ir^e_3AYXY%9f1#BzMjOQRWkbje5K zOJhZIY1T|y?9f>-SW_v1gNOlY&YT;lwG`XnRp~lZb1Z0>kl7Tw9aJfo2Wjjh5Q|C? zlNSV_C{aOvA(@E51l90j3!8NVVz?%1`L(IvCRW@NtEPQq5bPH*o@;eLeg+d9%wP|s z#}#mL!geiO4Nir}vz;wOzI_E*86P{KQD4>G#eZCg%d)6Jo|lulO!L;|gf1y@NsL1| zme$xN*7~2CaWoh%Y>t1LrKO@B7%q2Op9(v}gIqc>J{^sA<@XXDs~`)9i?uK1t$KZE z|FeDlhwp4K!s#RRcvt<=lL63iZu#Ev?9YQ;)voommA1)^^_BU2-(@fntafirF2B5A zdf=`0zWaKs?U+9G;pV0DnMm*EwXxeh10M&zJspr=eD7F0`e_98Jbb*V-96F$nE`K@ W&KnVaV{twFIWSp$3_jPUuKoejwpU~T literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_30.png b/data/resource/icons/Power/B03_stat_sys_battery_30.png new file mode 100755 index 0000000000000000000000000000000000000000..2285324762090223521e1222b4925bf51ce1cc5d GIT binary patch literal 1092 zcmbVLO=#0l9FK13oJ^({w~6q~6r8TjXVWIGjc|YMdGhTJp0)$zz5e~K5p1wl#G|N;tGWlNgo#QJWNdvB=AmxR&2GQ}ifSoa zg(5CyuP6qx!+Ky7uGua@Q`Ep<&DD)*h(QTXT27q)`Q|MREHh4zMY3$xO~EN^c;17f z^CJage%g>tdhj9`s40ZNhFAwRd&cpVTAZ%)Dr6lTGc>51;ORKM?Nl+F11aP|5D5z* zgXK6NNnuWmND|i%c$VWCmfTW^6P1Xh@KMmXXrktsWhJks8(L%+r>8J>6^5x+tKq5; zM&2aD$+8@9@O+3^g#0-N>$Q;M_cj?+=o_BpVhcGSVAM;fg5xytbUOsw&1QFq9lwz% zk}{^Iy9^g*8QTuxs$2Uw5C6KctF>R4b0L$5KB{;IsYkiD2`0JQTPQFj-Y8c+ixfql zQIS!xp@TDOoF;$5re!Jun~(%K7E4Q-qzN3C6qCHlCIwE7B~!^nq{*=xHp)h&7{>{s z%o3y~%CVG|kRuu!O-m7(O*XL^$H%&3z^1N6bQ@THPpp#ippKDOKxn4f0l6uJkw1l8 zkQ$Z1*)hv8QPuAY%CjA<3O(y4G}9ikK|Q~UwVOT{6-7R&vaBd;B8giQW11jE1wN{Z zkreTL8*Bbg&KTkh6Ew#^&C)y~9T+TkTAyroh6g%iVmvY$os|n~WUNS~5{25Q(&pCI zV9V2ey@ytwQ{4GuThY#~$4}0H!UbPa{NU$5Lc_2TRAw)OqXFRy?5aGE|r ZwRTZ=%3S~ZU$aMoxz1=K>a*m;?LQ2^S1SMj literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_35.png b/data/resource/icons/Power/B03_stat_sys_battery_35.png new file mode 100755 index 0000000000000000000000000000000000000000..2ce7a37a8604b5cc6e4f918f671d6df97e1e942d GIT binary patch literal 1094 zcmbVL&r1|h93NAx48ejZh2SwJ*pJ=$xwAWitL*H|>Q-yEF1Uw4$C}h2J1yUib}X*_>f9jXcB^~V@$z3G^~Z$Pq2@onoD+} zh>N*viiw=45n`fM$0KZt>KmwfhB*x}n1oZdo1}kjy{Ca~CF!wPj?H;#Shj~2eK@)} zTrd}>P1&Lc`axe+Ap#D>2B}pXjeH1VQ6XZo z90w#R%84;a;w}T8<#>iAw-n(-B_=6+9MmtGSo5utlGieITV$7{%NTnK!&EAjXhn!3 ze~RH`Sq?RLK0*+YV8O*kHR1-{4FwGbrf+-LMlJ{yjY%|zlQi*kF9gTS<@SZ$pq?m_ zGNx*H3>Re?#|h)wMF%(!|GIG?Iw&l7kjcXU&G{y&N2$9(Cb>J@PzWU6DA#?P6vdd) zkU8f-7iYC3P5wkJ+foEJB?)pOk&$#s7dTE8RbFFNfzuLdT1~|o8V7OXf-1@}P7r05 zFm*8{%UU8WXEaI8@LF7MaI1i9-hnoJlav|SbMbGGQP34JUh~L6O08bCwIn|HXj$C zcq^SBzddL7KN9G}vb`UoKrC6X~pi0;nk&UPnVwezvHiLKghC@yAa-gc+$%$v@<+Udr{ zXB15%5{a7#5eLNCp)@@Z6$f!3O%NQMBu;{)-n6^r&^VaP$NRtc|NZ{oGuqwNxq8K> z6$C-7&g@fj_}d&l%Ny}~>dQGJ6p+@7dSDTibq^3J6BYoOvGqQX1G+gf^bE8U#L}Xb z??t`Y{gMIgs2=J>1KY)Df@tpuT-_J|h%A6U%SlpSA5BoCWhSY^u`H8y6;QJFRXosB z>B<|G0V82j9ec?3K*9tzKsp)NgN`o+NotN)!s~FGrpP%JG?1j`o$AeYlM3_z8H@4} zgJD@x6r-#V6GgU_ESF+k0(h3!_c+&{6B;sG5&FAw2htpmDC5JA5L zT~g^0$(@HS$Ao2nS6H6;XjR}@CxDsupiR!@SF#qdA7|r&z{x7Z2nkKVace@G#*1;D zi>pFRk*O-y{GXiB*cm!(j=!3vwuL(|TrRXe78ZsFICx?_JQ@|_O+Oy12N^Y$58f7j z&CYf#y;rw#wExJJ?-QrKuZczK?(S|VoM?Fn_s(dSi#yh}>YeL9QsVNBLsLypU(cBJ z9f#h1_|_D^J~XXm+=KP!$G6}5bd}yab7pG1p#b`So?SooQn~cL&{z$Wa_rW4 z@tRA0UY0(3Y*KmNGM(ufeJtPHzO{S*tLdQr!sZ*oi&p(qWAn<$ndeI`c9!a%oxQ`f kEIZk9`^T2blZLg&iKfbiuUp2rRpBooqjjnG<>RM+10X7KDF6Tf literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_40.png b/data/resource/icons/Power/B03_stat_sys_battery_40.png new file mode 100755 index 0000000000000000000000000000000000000000..0faf70024d299b5122176bf14080cf10e55fd858 GIT binary patch literal 1087 zcmbVLO-$546fU9$Q9{(1fCrtFA0e>Y-|g-;thn74*ytiI8(D95+gY|kJEa}iLgE1v zV@N!xH!phjpos_L!5Cs<4Bpj);b4L>@q*suV1mf4o|yfn}!XsaTH9xfxio#+E!d zxinrdmS&8kNe`a~LxD^PY>0Ib*t3o=2PwM7E0cA&&CsCcf@f0nj;La80%VW}K`bgn z43^`7BtF>BT8&nP zDDtKmE}2Y*96TQ(9ua@h!FmvJ{H_Lr3Vp+~Tx=l+gp7I#&EphJlaHNd2H`v(dgi5mH`XOTnE zXH{g(+t9&THARy@QPVPIflW(7GLaaOG)WUUP7xJeWfg%_6G}!&#~K`aVdJrkqGn=( zm}Ci36VsX?rA1Cs*tnvmd98uXIzHAN12*DXByJtc?~9c)9@H`N3JA?MI$)xLF!C$N z1(`_+^i5fgiK>2ocsx7Vs?f6*pgH0p8`SD6TYJUl;-bhaD$9yVO(c11VuHwz3w&G^ zNnUgvYyMBo7$SxVo8zBmX>5@W441pDPmJB+fex7%kBr8>JC!qJtWZ`>7lO~F-`m^6 z%}<+-uH3kGe`|Glt34KJdNOdRw9x(h?1lC8-E!}VL4EY(29R1h=H4Dz`?zi%+@1oP zy`RploA0=I&l~M{#|!hrgDV%;n5%vL+nu8u#9Ds&b>QK*o83K+kG=kKpoOI#t(=m6 Swr~ClM>?yGtIw3{xBdXwpjg%b literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_45.png b/data/resource/icons/Power/B03_stat_sys_battery_45.png new file mode 100755 index 0000000000000000000000000000000000000000..67cc13c087bd8b2f6c024f04488b667b7fdf44f8 GIT binary patch literal 1088 zcmbVL%}W$v7$33152OzXOoZOX(js@hcXnrRvz?t$ms*u|!R^-U%)2`2%sbA!x~r!O zItX4e=ntq~((%8sQTT5pP zMNw_pVLea2=c1?S1bJ_Ke_%xlHi~#0m2t%kAeFXJ34*L^PQpAi?Sv@fn8Sf`e4l$(Ngpj#=gq3l}d%FhztrQ zSzb|;h(i!!#3B|hc-XAQys*2@pu^A#93MN#0}-QHLUTAplSubdaQ$5FfY=Lbg(4+m ztESKL49B`|l-Hhhi1YAo7>8Pig#{n7c^IO(z#{!9ch|wBc1Jsk3`sQVXyA~hm@_)E z=3MCEte&FDAI5fURpipLs3envvLPEH&ufw<=$t03E&vFl-`80GXsHDI5_D zNy*59p$(=rB`z8XFM{&0Gb#D1%zhm6EHS~Fbb!T4>IF2 zxIE!_HmZbIqW0`(tHZ#VhxTBAT(DPP)j7;RpO7R$(>YF342k4zNJ&GK6QYpNrFcf8 zYgqe#YQ~aa*l0NZ8J7AHnZQUq7=5A~ED!X^#sp+FzN|gjBx~ho^>m^7we)*;ccAfk zL+jF=TMu{E@9mt7#~PkpJzko>xOV>fR(iSIbEeN6YTpKOQ^)K^^V?5b_Oaaw@T2E* z@0R_BPh5I!obGsGe_XlXHLrG!W;fp_JA0o#UOsi>)r#|NC@*Y(Xl3qFjTGO0R_=QA QYd6~ItTCdmYPawI0W^kJjsO4v literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_5.png b/data/resource/icons/Power/B03_stat_sys_battery_5.png new file mode 100755 index 0000000000000000000000000000000000000000..f8bd748f2502aedf0549cdd715368a1191d5f268 GIT binary patch literal 1087 zcmbVL%}W$v7@tro6+wdv1>t2RDQb5W;(Orn5e;^2?yI}9=u5}O(4fF9l?>xWX^SzWC9d2*!Zlx%y zJu{-`$+s(d&YvakPd^`9k%EmP9z$hZH3LWu*{B3T#x=!sdQB7s1P{hUT zUByCf+>C7EHPK1}o0ULIB4WMhn)$ zv?bg0;7u@4QwV_zu?cGKj29}k6n)665IH(#XmDtPr&IJ%P{nKxXefXn5f@?>%W*)G z;+&X}B<=>_S&nB|a!WBzR1%WHCqez9iMPNmD|tO#_eHc6UBTE_7^YgS#;Zac1yc+s z%W}lQ^D$x(3+Fv-)?!}R+hEXPXa$as9pr(C(JY}koT5pjM=7{|HhWC$h4n&_k});Y zXSg`axNel!p>>G!@NXC=T8D*sA2N9uqPf5#{V4Y~z@&DkJBkcRG|IieAx$x7bY#uB z(8C!$MUy{q+p!ga9g+mOzdtP*k|A)MDyqEBssg9?tC~8LXmFf_m4q}e>zW|SEI}F~ zku}ZG(;AnSMMIMs*o+rq)3ad1uS5LSvHYo6MGK&bQBXi=rZEAz3c@I?ARlOB61Y0< zcs8nr*P`|uWvj!$c?j)vfLw4`U&T4Wf09dzBCqN!E6RpQ@;1bNLy(dJpVY;KrqXq+ z{XaEhNH9z^9RCbU)Nt+mrc~N@%(q&+QqNK;L@u%Tk5mE&Tka>NbR-t+>%yz`l6N2 L7^C`zI{D}ia^+V+ literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_50.png b/data/resource/icons/Power/B03_stat_sys_battery_50.png new file mode 100755 index 0000000000000000000000000000000000000000..2e0e067c4e21d0931def7318941ae5dc67c710b1 GIT binary patch literal 1091 zcmbVL&r1|h9G@`yp$HoNKq+{P8Aa{<-r3#3O?G~$TdnE3;1Yq(&OCM0nK#Zn-PM~x z2QM8mD(O&RM289?f~Z3sg77Xx(XEJrpnpKHH@a&b#6!dUc<;^U^ZEW>=TMsV2-AeFIE34*L^j>0@N?b)eS*g;WsBTk`+ zi@8gRgO~W4fjy$+^{%QdvP;ur82bv#mdj$_Y_O=u%u$ z=_=R$pPaG888&K;f10IsL^?29Znr+!Y!46g$ixI>G@iZ|zLT*EvwEgb`CMAx*yyZ# zwx{jj?G=hYduSukwDIt9J7~BtfA>W8*Z!t*)AG{7-l3J{g{i*Qt6(r(Y+fIle|4{T z-(PI`@a5LtW5)2>&Hjr&hGzQn;^|4JbJ0#Io14$0`I89 VCo{*tGDaAUb=K(BpR2>y{s21aSls{s literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_55.png b/data/resource/icons/Power/B03_stat_sys_battery_55.png new file mode 100755 index 0000000000000000000000000000000000000000..746a7f74d3dc53303e1b2d03bfc6c6a36d83b124 GIT binary patch literal 1092 zcmbVL&r1|h93N9EO+mesLhu+73frBZJF_#m$@vT&vunM z7qYAE>0i@D4DnpQU&1qPGroA}71qUgrx#AQ{ zxRkr5TF8x?kxjhr`UFi;gF|)Sv}Pd&WjO74Df;(^Pc(4s6g`p1u{l2jtIo($0LPcc ziq_JsrP%b)WiVJ*34sf-3F_{g7pnCXy~nGPb#%jL z#{o%-b7Df0xJ!U%Ii6w3EyXxdO-L#)gM*7EYJpu*3;OVZ7TKlfD#pIbFtu7OUK8Rd zm}WRdQ6dhWj}ePlxaeWC9`nM!27?YmD{y@5AP+>0W*IHu6iqzc55e_wxkF+vJV+Et z8B;fXhKsX|>qc?yS%k!=oEPpIk%>>ZIC@3N{*XV$J6=4)skq(5qNCO6kt=JUO`!9=*)wKKW={zd7f zzuNQl=aZJR#?<%6T{Ep4ceU*Dm*mXWoBs8+cJAuOhd1Z%wUnDiZw+9l`%wpVqMfR& U8Ru?1FXf}T&KhI-hBkHo4}f!54gdfE literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_60.png b/data/resource/icons/Power/B03_stat_sys_battery_60.png new file mode 100755 index 0000000000000000000000000000000000000000..df1df368642ea9d6c1bcac7bdf1daea5d5114ddf GIT binary patch literal 1093 zcmbVL&r1|h93N9EO~E7xh2SwJ6t+7*cXnrRlbxN}9CJ<91y>1lcIK&*&b)Ev*{(td zg$_bcX-Lr_LWnMj#~>)8AiQ^q{(&Iq)J?EAx@#T8L&N-d@6G4)`TkxT8NSih($zvy zRGTrN709d?DU;&!;(!wt6qo~Gdr&z+J z{E%WHH*Q9lc-8d@o1*&qtG;Q?K@7@p#_`hhuXi74;Mi$;ERkpPeiqI;1Iqy%T^=r4 z%X5}&)BV>$UsWLjF2p9Ny7OMBRMYfi>}jQ-?;gYsZ`<>A&!C> zhLdGE(%|_RLBzr(51ZAP7k1YbG#FZe<6{STAW}5TXc4Dr;^|=suAk2z3438JQ6yzd z)$|!I&N8kW#dUxVaRL5y<5+Z9T=F4PfFW88EK-l@?mC&|?qov|ka(lq3LH`tb6!K% zq65?vRoGPlk#;O9RrPQpNNz^rt<0f-#PU2KSlv%>m zMLChnWH=$GvXY#X*j$}!cp)}D3)byA#BPntpU73R0W>iRiU`fuJ78oMVHD0HA7n=* zaAnN#Y*Y!aM&&t-R)c|a7uvZ1x!@qbigTQOE-8wmrF;7gM?*B?UgIiHWRA z*SPlo)Be<8s%R|Qar_`O@*F9UC4<=Td-#;2(xYtx}7@X+EPRHXm>QpOr VbKSULwf2&crzk@o*0$BD)juAYRrvq_ literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_65.png b/data/resource/icons/Power/B03_stat_sys_battery_65.png new file mode 100755 index 0000000000000000000000000000000000000000..31381645397992e709b61da41fda729f7ee2808c GIT binary patch literal 1091 zcmbVL&r1|h93N3C6+wjx1>rH$?{#}=}=*G2nq>=Aflisx^)nuh)!LCp#A{C-srA%5DyLWX5Rb0@8|RVy_6pwXlvx z372vgR1-Oj5$Z5i$0KNp>g%t1hB*x}D8otHP0+tyyrO|^CFs#;j>~x|IAsqm_;6%l zxM(g+n{kWoKL`4%Dj{$nHbB*xaRarQptpHdvJb^94YpPAbb{V-s+7xv6!Ia6GGfH! zcpk_y!%IheH7cuu0%{LUtohc2TF^5!TjZ3Wr!e+ZmaSAOOhsgn zKgsg(cs%3~gb2}y1oJL7su4HntuyE_Fn!y@HgZA8Xq3?$PSC{Doe&%^m)j+FgIc0U z%Gj#mu{^`EjuXbUtsUS3{OiV^+Cg#NgKPl?XwElDJtlhVV3NE24TXxt8}*`ZlcE?i zIx^=R=;ExNpvetm*_JADNm-1?Vi`Ftr$wIEBu&scP2}~MmeP{ZI>%nv7%z)@oD(Io zcs?z~bR`uNHH8S0qNJqi*sL31!!=>uu1)OLu)@ArHRVGCBfp5yOuYm0QwXDA3V9$k zB7>8owrinEa4Ia%PP97o?JLmA_{ag<`Bm*b>?^z?NrI+xoD@$>ByQq< zco^(7#m|F`fp}3o3LZQt$PV5_P&|1MM8T_v!F=i3>0#_($V=Y;z5nm`|DGQlINcdP z6lWNwvv5W)(f`3{?c7ekZ@=HNB7qncGK6cSZU%_S*|>^8!8J!w37Piv#x2EW`%Z!0hDr%sL`=|dC%jN?WZ5RKO83z*$AYE`8PBroPF0G7AddqCQb{pk z@el%8PC_Xq%kU%+cqni@edPp{)Re3WY0!FDYAvv9YDw>J*`iXG9V5h7Ij&x>C+lJo z2csNR6eZ#igap+{gwq}|8woG$ZZqg8v;xN`4)#FAXjbtQ$+Fbb^$=XYSll4?!d9Ya z%D9HXk?1TJ} z42};wo{j6_iKsm5(dsC0t|PlYz%FR!S9LbApN45k5;UFXCB=|v+=i4fL^&-AXeCdAHLDCqLs>(8=tGIYioV6 zXWP1W-F?Bpp8ad-uC=8n$H4BhbN3Gye(vb1cP&4d@3`_}d46*6&|3EpB6d$;>eM?%IxCD_~nPX9h+rh Y%=`F-J@@t=y&27Q!5Gk=Ygcdl0R|&krvLx| literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_75.png b/data/resource/icons/Power/B03_stat_sys_battery_75.png new file mode 100755 index 0000000000000000000000000000000000000000..1a3a5ff900bb3bf60b9c5fe7e3c6da7ad04e69eb GIT binary patch literal 1093 zcmbVLO-K|`9G_77P{i#6LLqpJ2u1CD@9gg2COaRSYppHohKmF`&OCL}nK#Zn+tpJB zLP|GFiVh({cq!}_bm$U@)Tv{12s%YU&{?oIx@#T8L&JQ$_vZKe{lAxr1J~MGI$J1; zYRmWOCGzcvo|DJP`~CMtE81YAf(Ow!u9^X)vNjrnAn%$JumnweZe|E5fLr=}1A7h)6C+-WaVY8iS@S0U@@n5DrU1W#q?eWxmgBG6C(L4pzE7RU2I zmKk13$TEKg2pli49J%EFMIUlkm7^2z0BJ~*WYLH3pjy4nli8sp4z#&C3r*&k_ zy3oUUJwuZ}jP2Np$Yo_Qol50oLpDU7S0z=@IaTEKl&Y!OL_^~+ZYq)0xGX11X^t=r zNtLvun&T2Wr^{MS4g=>dv~vM+!Crn9=MeizJ}F6ps&kx_HY5_aA*BpaPKrWOmlB#v z*SYrpE5;-}%Y>njhYsn{sx WJic{uV0-67G}w7#K!2r<-v0x}wOXD4 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_80.png b/data/resource/icons/Power/B03_stat_sys_battery_80.png new file mode 100755 index 0000000000000000000000000000000000000000..28d0fce457ee1174f24c0237e6f6bcd7a85395a7 GIT binary patch literal 1089 zcmbVLO-$2J9512V<;|zQQ&=5Dqqd?fdxse*cg6|1S*>^|v&i zZKf!yB{QJq$p1_@nhuli+SglVxWIY=kDwAR8$P5`7AiuJaf}I=gNC&*y8*i?sga|=If&~{Fm53X()f6-sn7-{{8@V7T{rCu!p8ZU~N-&DMq8pqeO> zGPYuPEYEPPx=6sXfN2#qwCb`?+PzWU6C|7)&T#7NH zA#=`wF3xC4nw&6}Z7Cv`lEp+k-Y4s_F7mu8se;C-BCo~Ow3>?6H1^`g<9v*uMJd4% zrY@z@nxrOlzE71UGV0un8(_mVVa={h>{hwLzFZ~kLjxl}kI+o50){6MM!_WVKzc+5 z7e;N@LgnCMcs;w(YS6dmq1ERj2khimvG=ea<71K}s2ayf30)#_>rz}7<(MeMG%1=^ z=_=RypPaG888$4Ae~P8HMJh0y)=Qr(>dgaP(lI`1jdxd9#zO9$H^q=|ywK)^jeg>F>$Q82rq>&OY&`CG_+WWlm?D$*@t^kxfA!qWtsHyx`9Kp#2~S&P SefItBu&FcpkoH`?e)A9K_gS+5 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_85.png b/data/resource/icons/Power/B03_stat_sys_battery_85.png new file mode 100755 index 0000000000000000000000000000000000000000..42a6d967d52728e4bfe2446bdc4b56e6986e93e8 GIT binary patch literal 1087 zcmbVLzfaUq94|o)LI{aJ64Akzf+CUY@AmE*4s5SIx!@rjmw=P@+ILW)eWiVH2a}jM zkho~#A7G4wiJCY#Ik14r=AaCQxH!4U;=o{nuW*MBgu$ji-h2IgKHuLfqa)YbThF&r z6xE&|GK%Ee89yy2$b0R_13TVea}tlE3a(lqq%;SWA;^2y6f8o^S)AK|{S?()aZ8hU zvT#GSk;hmuhN*c0VN+E9U@frh8Hhm{PPu-D-hQ`A1J}vW6LNto1X(!k4lRXnd}*X) zFU{C#haMaN{WX;cco18l=FR$%TFcOTx++=6$1Dx@Ab2K2?>jYF7zJ4rLLf6@!sd7$ zC;TzlvU7vWzw4n;?$#Q?HJ7@_&lCiSRvHOM4)M;nTP#2fWy=#rvXvj(!~ zJ?P`Sk)g>S#&I20bA)M1 zDcO_^F(v6aB_;EQ+2H2=2wT1l8+Kh{x6T!gaS{Q{Tgk~EZFglGeil$Kjvf~Q4 zGU56Tsz$wWdG@0E7#`EUEWx}85`@EuVA#(0&h8Fwvh%UI+S;-%xJjY2GiTjNXU;ftY*#M= zgDwOwia?64LW*t*FN2^Uy74dc1B4>z4+z_tb=SHOFB)d%yyu+vdEW1>!pyC{-oajq zqWW@^dXcQxqVK{v^8fbZi4|?IQO2{VitA*(5ae8Q2^OJgudnXIaf<4$I;Ao$ z=Wi<(av3wyVH&Pa&=fU3(eO=c8Dda@OOBVOe}DQy1IJF&bMZWv_cd5^CN}~&yD?L; zHkPfFO;6ke;|+xnxDcD5;jVb0(n!-SUWLffF-wD%3SLgrM^2UV1)!k-f;c0_ERN@a zEHk_mmu3D25IA07Ir7ReUQ*(+A|ycjp^3G?t|~=6+qOk^X}X57udr;rUT5kegMuZN zPo+{3hakj=Ml4+Su-S-t;c$mRhoKcXK6a1?B1W@<)^M68o*sqZ`uY4Zu@|-zMN-B# zOrPZ$j&acfcffryGhCi8sofz#&C3S9D~p zxzNKoJx!Av#&&E)e+gRaLtfB?b#3(2sw9@H-LJeUQ){qahSs9GZ zIi8K`;q|CIN73pqa2`TC8z2|7@~b!}*iY~YNfK0@mZ(E*^aC89IoDIcLo1AJoOi Fe*kj5P>=us literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_95.png b/data/resource/icons/Power/B03_stat_sys_battery_95.png new file mode 100755 index 0000000000000000000000000000000000000000..3069c0057cf1f2304cedcd43c05397b7a8617288 GIT binary patch literal 1080 zcmbVL&1=(O7|)nEoeahff&(FB3>4RVH*Lb|)_l};*jc)QMU*W~-mbAr-Yj`%vz?}} z!(ifVOgza%yePw~2QMNFF9Tr*Pr^VL2>t^?ebcqm!`Q))kLP*w{C>~(MseoWK>u(* zK@bD^DZPZhSK{ZwdHnu#v~I-;GAd{m)=<+70Fkv}6_9z?TmU6t+AB+YV4NU&Yfia> zDuvsM1zp;VZRp7LF`6L8CnDdp8UT@1u;6$Z>eq*l6zSL*>Ta^Y7JLoVovGCT%&yLq zt<{Dl+tkEOay(KnfeVmHM(&~)Dp7`N^D0=5j~R+=o1jL9Iu5E*D3Tfs0GXtPgvD|k zDM>UZCMAg*BYBqN85ZACf)kabr0^-Sb5Yn^VAqtAp6mF+T8644;ezv^$dmo(6(bM0-KctIi1c)hGYmFr-~}Cv#P-9X;o9R$u7rfSefMnP2>boW--zb zv%DzjMpjB|yq4B-Y!{pNLS%Xt==ycA-wu{P6RT(eFcA#O5H5Bnpjd|phIQzZ+N?xg zyX$y1Y=+n4_8e!cgTQ$N>|6j{vRz-rImLg9ONk<{>MSeDhKTbv#IzwuDS=PvVp3D7 z4%YsknlU&SCLWG|hNXLiComRIMjtCD%L6>TF#%qU2baIR!fRE}>)CSjt@^vwn&^Go zGjefjm*8#;wNitvm#;_3OVf|HujYUD4K@dNo^PC++uhk%Dh}VDTibrI`MvMxaP(kk zy3~94W^`w3^B(_jFBbN{4h4HTSq3fAsH~J9z;4qi- zpYwm;f1k56(~tE<`=c0!_2nnzBKjTeEKUef?<()v!p_`FeU1a71u(Ycwo5*jbS5Wfvf3@0ODn^VA^To)~BBnxM`$` zxkP~~xH(WUCssT#yE0wUR~B`_AjU@Vkw8QQ7JwQaSWC7q25DlOS48V@nLh|b`>+W9bz@I$zqITEvIu;q>glK+^8+0) z%H7=!g^I`<@o~>YMbVaIN3UAIhIu(npp&>^8X`+&c~(fJ#(9NTSelkNiIFLZrR9{A zld_2p$6i=UNXgPT$8rLNkP4TQQ?$S&SV5tMBqb{yY~J>vX6vA1*F<*PSmv%+G3Nmd zI$p_fmO33UQ*of!02`o75T*t?Af&$b?3Zymh!idx;sY@R#%XJq}+_3t<3 zwZY#idS}jZ{6E(T%Q|EY{ U=d}l}{T=>S^2)S)Svs}$4~g=RPXGV_ literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_charge_anim10.png b/data/resource/icons/Power/B03_stat_sys_battery_charge_anim10.png new file mode 100755 index 0000000000000000000000000000000000000000..58855448fecdf2af40e455984ed7f95fca28cb19 GIT binary patch literal 1216 zcmbVMTWs4@7iBNQR6^?JO{#vN~(q$Np;I2eXN7KFcG2Uz z6zOIPmRl%n5!-&NP^e^NsJSE^r%20+^4hTWgA)8VjBTy`@`4M=67-#UPe<^mz-~L0(DXXeVx%hRjlFft3=8oS+ISOVb%H!zfgSrIkb` zn@RI+j_t5C&#QcbVL6FHNR^Y2A}5MDUJw%*Rb|`QyzK{?t;4oo6ZvgnnfqeptOvEg z@yd=f+wOp3%?TX8=C~j`A%KIErfoQNe<(Vh&1@Cuna81#^BfCo)K@mQ@h{RM$1xd& zqBu$AP~Iw+P+37_8ByW*YzA*(jsH_K5(Ps>&GDaRX{%5NM$4_%N5a#7`&eY!WbmVT$YzkgUe zyz3_*?0j;r`OuA9YsQ1?li-*Aw-2lt*J*LzHTCgE^Zgymm+ne^Kb-w=U*qiMJ*Uu2 zt_*dC891`RL5V zoy3DlF_;#u8etEDH*=_>o+_xN9^8X12wIVrDnxq`=|L7DXQ6Ql1+|uym^X|Bq`!xSpsPg{*oPNAz}N&Jq88(x@Wq9>DVA*)N0ORkj9ax zyCGO^skBFI``tvLlu@DPQVdB`mKDXdqwNP3_^%uLYWvkC7g81IJByx<>M=Lm1EbvC z+fby4ypf;sOjH!Dp*Z@Y1?`}yq;YgY8m1w0bXMe~RH`7VqRKH$j?b|Qo#PlKmCNU{ zLXTrVEUzRBillP9L?fiir|5#DNL-$kQb|E7bwIi91dd;KT#%m;!SU0kZ8%N;L{y&LXcg$0FF>Q@}E%#a<346l>Z8R|+8jbi5 zUl!3=-7PBFYIv*m=l1qQ`~&9x_-`xmb?ME{)@rAZIePBW%g5HAjWN{5%|38=q`)Nx zuKcJb5(O^FjsCn6CJ5q>{90z9=sr7`pQ{emlFiH3%*!cOUqUh&?p?US{mA z7Q9icKlan+=4dR_n7mWD*}A3vy}*9;;?z_=_v-5T6;c?^ti-Tm32*BiX}S>oRf_7g K@?q||v;P1Q^^AM~ literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_charge_anim15.png b/data/resource/icons/Power/B03_stat_sys_battery_charge_anim15.png new file mode 100755 index 0000000000000000000000000000000000000000..e22ac8390c7b34c34a6e0dec0955fda0252c0164 GIT binary patch literal 1217 zcmbVMTWl0n7@ktMK&4WsF@k7M1_~0pJNMb0v1@ndvarOhWxGkM36a^Ev)!ScOJ`2m zZ68c97~ALrYC?E0X&-765~kw2~#@poVJ>}bR9#?SAVk%06OG~`uK%?KcowY)L}dB+%q zMQB)46L(-AL9|xv(g+$UyegZXlQ1HkMBVW*njrf6>%L)*K?KTh)OOS4uh(yoz_!xl zuuz~2z6z`M@#z2#O%IgJ=`mBX$o^MAUtPuo4nzj1JL7IB*VE)0uZ-8xHbsIp6*QJ6 z*PR+E3h+=}_1yN*r0ZTJ1MdMqHGrTN_GMfY&7m2L}Rz)sqxeZ%b zN|RNDe3_zZwOXRaCA?siVkAk5I9N80HR9ovi;Q~Q4G%UMG#HwJ?IYWBLBwd3y-AcN zv8U@HIDVn9N$iFjiNYzP>V{7-37T@8D6Tc_5EbFSZfvO?mZp426=CR21}3gY*rcY=vb~Nr4j>j+bbR)Okh9X?jW#8BSFdg;tu_yc;6JHDS}PjqPq=*~emKHGl^4 zf|BQrH#=ak>LD+zdOlExMDXIU?OI+fJQ|f}Jz5P0_E~7<0?z?!`IYT0>?fHd&$Eg~ z)4ZhfIBuO!>71D4*rdh_D)xOHYyF>`QP>$OYL5RjOLGf%V6@z9eJpGa4|MUw1b8%d zpO6mVvHCr)WlQz%%73q}_P1VXd2;s5>mNM2aqiJ>A>MNNrC9mwq0hTBE7|uehxhgx z$GUz3;*Mu08ar=)y<$DFIt+d}{LPUS>lTyjxvB4&Z+y7@>a~Yb=MM{?^vo|@-#>$A z^3F5ht?iBWt6x0a)%j*i`DC#Oj$T|Q9y~vItuKCeX)d$ecKK7e^{ckbflPdEJoX@2 zEzg5L7Atz zCf!XCX-i8JY^fG1C_-0>#h@uDp+2-wg!K}iv|bR22yI_{(Fc8~P>5%e-RMK;gTq|T zf6o7X|9$30h7a^~@9M@dtS5U=&ZFWaNMvG_#aoV|gKYu_YbyRk z0$+Ekm>U6U+l7FOG7*iWD8Tbkisg8o8UQp&(FBQZK0>h~$BT3fv@RT3bM>;AmoqI} zNJ`)p-*-fUsMTuG8WXkMae@*AA>g3t2-1jn)0VH+BbK+P%^*Wha}CEgYzqX8YRR7R z6FBm8Jp|Lq?v16^(gOY zgHi78Z75Jg-iU`>0~JNB%Cbl$7BqCC0DOEt>|A+vA)lgha1iFTb8ce7J7f3f4{FWe|6U^ zn#twu;MFb7?xjy|KiK=>&q9D*TM@Qi5;JZlaD7O7pt8& zW0g_^{CTPDbcQB7dLK*w-MA5dbg^*h`R35c8&4(&GOx|9-q%CFuy^<2U$(tYoIL*1 z>F>{+`tXA<`{O&`KCgGZm7VMR^jPuij?<&1u5aH>SKoQ1@4FM{=9|lng{9dr77AlW X&T)%(-}~ll@L$O)!}4Y6r4#=EWgw7U literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_charge_anim25.png b/data/resource/icons/Power/B03_stat_sys_battery_charge_anim25.png new file mode 100755 index 0000000000000000000000000000000000000000..b5aa6a3a214565938ec9f38e916e244b552a10b9 GIT binary patch literal 1226 zcmbVMTWB0r7@oN1Vl=p^WzkyAVUmq4&FQgB)idv&v$}Frv zMPFXH2~!vrsvFgsUn@T^YPK0y0-bovbPyWDQkj;cXmij9Dx5W}H2%w#YdA3UG(N+X z$+A;`4dcj)3#V5mtJ=z(meldgvmn(H5rGMP1+>h0%M)8^e2Z5^>tLI}!Ip|Ym&Ui9 zs+Ffe!FD0w;!I2oMJhirzQYRQZzxLn~zbf$nhdAfX;;@Ypz}wD^jsz3rT6b z;rotA5Y1*Y-elsoJ4;Z>WHR8O=@`<8dCQisv|^Sw+GUWSr@4mX8@2@kMn$z3{WOj| z-44NY%H_DOdJ$upBP(A9ST`_OM_jz2D011()Y!R1s5v5 z?N)7jzS{v)4coW9hV6jDG!G8U7?y4~y@Nq{wxgAxYb-&%=-MXO%CBhbVqc&HmZkF& zNwP_qMR5o2GrYjig2Zx#Jl?_T|0ibza)t<+<3G*P-9jB0EO%NT2|L3BEi^GM8V!E$ zjS)0ff0d+Mwe_v~_vU6MbiU`|)z@Bp@9wp??mo)Jdd?l{RhPy-8Od(sPS(fwOelvR z`vLF+k1wdr z`2B3%>Frqvg`X_^xpphD_k8v2OYO|tx1P>U6i*!Ad|-%vd2D33Kf6vwP7du4sng)z zZzGw{$#+-Vsf&^4KFcq?ajg7nB>d5^HXc0{{>f2C?;ZLe^7>fx)4uY$%whv1#z$9A U{PAJ!`{3_Vk|(7L`B#tq1Ft}gAOHXW literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_charge_anim30.png b/data/resource/icons/Power/B03_stat_sys_battery_charge_anim30.png new file mode 100755 index 0000000000000000000000000000000000000000..11a7f20d7cacec2ea6c2a52accdff08647866ef6 GIT binary patch literal 1237 zcmbVMTWB0r7@kd&v`qF!*2c6Z1odzpzD?Z&WK%^EFrcIG5IZf4G8 zX4c(=g1ePSA_Xy#_0or0nusEnDhLH1^dVSM5b`9p^g$|C1g(%KAByozvKxH}eQ=n| zxqRREU(Wx}(%9(JogF0GqBVq=9yS?X7J9@AGwxD_wSIW8LaLO$!Hoy`Z%mZ9D zlxdIwiZ(a90R}Maz?7cNxw-UdL4`(8@i4)PVIek#4GdK*MJ)ms&x2{*j1hl+{SATZ zT8x+orKz-)0tJ0!-Uj3Iqgi#ns75tnXb>N$2uQ#Hu7X#L8PgFeF=9toKx1#2B=8-G zTZ|FAPUX^LcnaD84+YtPO3^gV^Ff*m@jQJBXDFH>DRlDzniE32z=ZL}MIdXoHYH@l z;f5_VixCCawFHtZm&?I28-(^WNk^kmPlI6s2oZ4ROjoG{OsBW0AOc6Vb<5SEiF=Al z9+un~fjr#}!LZWlJz>*nBnqXBtSA;q2Px7pytsDIj++7hy0I_X$vOy}Eq= zRlI(At?#AkU&sCZn>Ux)__?-4NtSD?xviGPa{SiT>h%i?Bc-8Qr8Dzlsr{|aYNR?j zc&lR_Zm!1@_tM}0)X{Rc9p~TNO03PEoc#3kSBtM7T8mY47Yb)SYUw)iUHf3-mz#h8 zeDKkG@8ma7o3`COu{wGFvrle35$XPLSv&mviS-|z{IM1KzUZM#kM!03XO4CiH;ys= nSKp4Gip#}?V4C>S7q9xT7vTLn^0$wBKP^m_M#ZbiSI++f9qN^) literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_charge_anim35.png b/data/resource/icons/Power/B03_stat_sys_battery_charge_anim35.png new file mode 100755 index 0000000000000000000000000000000000000000..f7d0c26093d711b8e27f4e3d9dbd0656b24809f4 GIT binary patch literal 1225 zcmbVMTWB0r7@n9Wt%)JAl^WyiIBjZ!ot^va&X{d>=aP1z8`H@`R#5Eh%-QTTnM-CS z-Axd|7QsM4EwmIAl80I-v=wXVO9MsOR@=vdA`(z)eDFn4Us|ZdGs$lBA@spvF6Tez z|Gxh|^P?jNx;pwgFbwO;9aMGneI|akwWD|a*Z0g=h_qrf=9QzW5kM?!c_j#Pjxhms zXjrq;x8Wd$wU+HdF)HQ{Nv7u{j94d8b9{uxu)(34Zo;&&#KD?MG?~WN zohs%>f#L-a@ClYMDVhd?kf1qU5a@k?p=gGr&@B)&C-H*BBthfCk+r}oOS(GTu!W>F zUWp=KBFSpCny9h~FPI={Q50hih9Qs!5ze}iQ6t=NSCc`7p&8hIWP2`%8I6)R6QyzF z>3Rr`pU-a)yI~_yC}m{L@JTvBk&Y9`wWb|LI{ep-O|`?qtPe>YhTcqIqI#5fHNhx% zk2Vx5B5$PE0vi>@m{L7+#({2>Q`0y)Nm#Zeu~b%I#Z+oo&;*U8X_=E5m6BOnP05O! z<(nLvVHsZKSbQhRc-eroI0Yb#>UkLNz^Up#lc?|n3r zw|9bfw$?kYURimf=dG5~VO<9UXO^&g&yQXkB<@^Z$Sk#AxG1&WY|lKGAr_|E?jZwbGTU{CW^v;u=MfsQNPlrz!FASV{`}m#He}CP*_sU9d z&&QAb(XA5(PJeLmrvBN7Z!R3!vD8*ST0fhc?^j>_se`@<1C(hr+`>-v& X*vbO`mEDhd@y{ivji{I9Bgg*%Fa(dP literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_charge_anim4.png b/data/resource/icons/Power/B03_stat_sys_battery_charge_anim4.png new file mode 100755 index 0000000000000000000000000000000000000000..e2e9d0045f033314c50ff19fd7593c805192774d GIT binary patch literal 1220 zcmbVMTWB0r7@l-B32Q?uXr-|a!=#~+W_PYTyEA5!-PxI#4cQnriy8Z1J3Did9g?|p z=BzsjikqM%RVh{KzEl)1L9|#bRH#+Zhb^K;&=;XTNgf1IC>HTSq3fAsH~J9z;4qi- zpYwm;f1k56(~tE<`=c0!_2nnzBKjTeEKUef?<()v!p_`FeU1a71u(Ycwo5*jbS5Wfvf3@0ODn^VA^To)~BBnxM`$` zxkP~~xH(WUCssT#yE0wUR~B`_AjU@Vkw8QQ7JwQaSWC7q25DlOS48V@nLh|b`>+W9bz@I$zqITEvIu;q>glK+^8+0) z%H7=!g^I`<@o~>YMbVaIN3UAIhIu(npp&>^8X`+&c~(fJ#(9NTSelkNiIFLZrR9{A zld_2p$6i=UNXgPT$8rLNkP4TQQ?$S&SV5tMBqb{yY~J>vX6vA1*F<*PSmv%+G3Nmd zI$p_fmO33UQ*of!02`o75T*t?Af&$b?3Zymh!idx;sY@R#%XJq}+_3t<3 zwZY#idS}jZ{6E(T%Q|EY{ U=d}l}{T=>S^2)S)Svs}$4~g=RPXGV_ literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_charge_anim40.png b/data/resource/icons/Power/B03_stat_sys_battery_charge_anim40.png new file mode 100755 index 0000000000000000000000000000000000000000..2c2667a7db10ba974a20c9a2073e485f05934dff GIT binary patch literal 1225 zcmbVMZD`zN98c}qZQaJ|2BVgV52@`owp`wmyLh+j<#M;)*wvaI^aP#DCC~M;HZM)m z-nGbJ6TyO@4jqC*D@@s7ZcN6$tT4*1!}@VB5iJO_Uqn#mzDyA6llHFqq3nYpFVFvZ z{=eV}W^t`mgWmp%7$>!LU;fs+tF}l;M;h$XVJb zRH0@}Pb|YYhP9T>LNO@jPf5CCMYK>SQnOry#;|y@=4$#F3_uBvnsx&Jvc3C0rm zhEv7-5J)>71bl=gbc&{dAVg@67XV` z;FTb7C6cUGtC1=jalBEIj>Tdj2g49ZgYc*AK&uh9-_vAJps#zT8<>s_LPo9ROa=)Y zdAbpT<>vF7#J1l^6iOLc(_E5{P^4vrajk3nfeQb1V@qwnFzrH8g}yWC>8Kv%o+cRO z?%9SyMdXe2s%N62Xyb~bPg>9pa!LY6ClSLmB$i4EY%Chh3K=28(zMLUj6%sQtwiOt zoZ_1tTVa`Knw7aM%f%>!%y3aAn#l@TT2yFWmc?ijo3s5uvvt_CYa+W1Eb~mPl=h$& zI9|bV#+w~5RB-~wuQ)D94-4S%h-n*6)jtxJXCqn#dgc@~vYums_54ca7WPG2Kf?+l%ZLicr)9i>HU3Y|NaPF|HphROrMZPVFkEi7J`y&E2ij<2JTw|V zS@;whtG{wes!;o}^!M6Yvi0khU9)Fj|LE!6^H2BkM9bBqZKbJ~Z@$#Ol6t?~x9^yC zV*f8d*wHmn-}&vs6=U1l2>8A4`$H?neOl~Y%sf9|zqtL@?bTT4&zHaKoxgmi`#m(1 z%Ll-@?e&gZ->mNLe5tATUdQECwYVSYTPt1+CJrXOW zdGMs~qDwyg^@ WPx7ZPEyIK1&n1@`RIbZsF8l)=5|F0= literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_charge_anim45.png b/data/resource/icons/Power/B03_stat_sys_battery_charge_anim45.png new file mode 100755 index 0000000000000000000000000000000000000000..d91d6a2ebb86bbec69f454fb34311bcb2502712b GIT binary patch literal 1226 zcmbVMTWs4@7*tz--d!6YP}=tKK32__9q6;g+$qHx*XHzZUEX&Vx}fOwlw)pFb>g@)ga-PPMg5JY$Olw82?=flz2j-U14FKFSyS0?;1yX;p~7ZFL_E+LRL z)k#!9s$M;J3k?!PYuPAH_!GI;B+WJ>YKVyhri0l8F*qDJsy2;$P(qW2l_39IyGa5= zPmtr$9Fud>Xv#P>@1n8!(V{j#t%*80JOl;<2@9CWS3zLTSe_Il$Q@k?&%s+O+?l;s_1D#*ywT*L7V+XA7YTC!*T z1c^P}4Z(DBxjkXaYa|M%j1E+Xh7pD~%`mPVwC5Mlzi#Y{_KH;p(FNq$v#y5EqkN=E z#<_d6p%93@kxsh?J`{CEwzXLkS$)rV*(f$H!R(*c*nxy*^O34t}%!7jBA@=ZlafK6N92=AQXgWnUxcdLe8I7Hx!{Yc)u{5`E1%}hT(#MOv=0O(j7#Fw3 zW%$=exUK%q%E@Bzb7^yXd${$>mID{xIrH(uo9{h*DoV9nIo?*9J9_Q#$VT$Ra(~YW z_2e`6fzbKfx%v}7-r3L}-yR2l^xu7DL;oJe`qq`Fm+GH%Twi@49{go_rEh6@t+$4I z^41}+&{6NY{?&sg55Cn>dc9Bp$3DG5+_A6gVt>3keyfBiF4g8?3 z|F+a~sdpM|T~MgSYW?hEtyI3c02V$-cQ00#Gn;P=eA81~soho1pB_s7dVA}B$Fpre z;U;ancX;{iw{q#FGnZE0e0gnXy+1fmyHkUgdtR;0#jlB5$3Hvt?$N%l+jA=lPjoWG X(%Sp0na$c__;<-Fqw>|%+vooQ#MzOF literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_charge_anim5.png b/data/resource/icons/Power/B03_stat_sys_battery_charge_anim5.png new file mode 100755 index 0000000000000000000000000000000000000000..8344a0536d671e5ef7490c0b578d1bcd810ff58c GIT binary patch literal 1217 zcmbVMO>Em#9CudQl|rF(2#xWvhqo2V;`lR8Y&9ft>}-)pm!&~1lMp!eOJiDp)P7yk z9wvr{*aQdIp+{DsGHDXqG?;eTq%kQ>8yBQW8weGU$}YQr5SM|F%5$3(4%H4={&@fQ z{=eV<+b2q+`}+HK^brKnU)Zmf@%QQQ>FvSq*1h+PP(a!Q8gpx?q5F`?nr;<>f~`-& zGStnvnVWEgAi8Q+WdcnUUzH8lj_ILJtZ91~O%NmLrl%WI5P>S3w44rPD+OCaa^5X56VWiTuYL@~w+aZzNWfMZyWX7DXitRTllnM;87MPh5dS(D3ZzHJLj zDYA}`C)0GJ(TFwpnCnl{tRzVx2ggxZg9_#xq&F!i*wtZBVPN={hb-3tA){V(XHkm8 zp00;rd&S}gu@kftg;Pd1b&qCa3~k$CTx;3^D#L%>*i<{H%z2P5!@!;O4P1}ft_~RI z?!ksaMeL1yz_)Nw^l8;KW^L%8f|?@nNzAlNnP;*hFC~+CQ4=+uWfei;R7T-hHL2v3 zY`nv<8J5Xwk|^eRL1Hjc6C_b#l3bk2Cp0O^^Vtrz-~>o_4A`-2VY_WC_du+i^P!Gh zzv8;noen6~UE~IJ*8{mR5xg{RIi}kPhQso#N2@~LItpo1sI$D`q- zf6C*r`n{lLE6pFOf3L2lyUs=)Iq~-EAK$-v^#0>YH3r+?$52Y(#=h(31o`}Y^% zciX^Y*UINhw+H*d!qV(;^xMqPSFiC$Uifn5uin;{)*-I`GWBUB^G<}=9*sH&?tIb+ Oe<}rSR6VD>_3l4wwTj{Z literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_charge_anim50.png b/data/resource/icons/Power/B03_stat_sys_battery_charge_anim50.png new file mode 100755 index 0000000000000000000000000000000000000000..75543497424d3b9e46d31e7cdd6f0ab15197a4d9 GIT binary patch literal 1224 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 OkCImhm3QS+^Zx)SsExt^ literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_charge_anim70.png b/data/resource/icons/Power/B03_stat_sys_battery_charge_anim70.png new file mode 100755 index 0000000000000000000000000000000000000000..96191a76fccca6d6ee359113371f60bb45449a13 GIT binary patch literal 1214 zcmbVMTWs4@81@t{U8_LpB(yOk4qjIZ%(0JeNlep_#BQ6hbR`Y6+ry}1pERcRrMBC+ z6_a2Hly2jp+nx{)AQ5R3Dx%fI%Y??H3Na)e$HP>KiJOF`jj^X9A(i8{DLhnr!1Cq% z=ltLI-#tGx*dJ|us+Ay!XnsI0;_trjX?X;{SAKs_3k6>p^@r_>UsGK~WOTcXK;Bfx zQ4y*7?9_GCLlBXQQ5y9}3r8f)He+h26AMfSqY0uX9XP5sfqYO# zM}z`XaB`?>49vM`cy6$y%}r=YolN(FoV5L48BDQ@{%A*Y#eM|B(~=26{#rqZP~(7 zimdv+BhhrNR*TiRnC*_!Fquq-94t#=4a%Ffd^Mmf??975MxN#xj&Il&2pQF~J?*DR z?CE9*rc)?v6In{380-jUBbU(yW8%BJ%8MSHtzF9B6`Z z?jCF?RK(s$M_mIKMV*vwZQ4YZpO;f4K8fjuE^$mo6IT(j=g>Pc>mglRMhMIPb(C#LdeIQoKxk&YG zw`ALs%?=o<+P>{oZ3pCrMbJHBSh`*Fo)62j8Lf<5V+QGcu5E&i{7S|S_OXLJ&t_$Y z;gbrF<5u{D!ijN?jmx}{%aU7I{r}{Q#?H`TbNr`Snp?O7!{v7CV_|!EkcB74#iK#d zlXvh~-ObCHQgE~U_xgG|vbd{l{>@_xYggY{dt9J)U3&51@=WK_GcT`Z&Q`iQ4ypZn zeg({-`-f&A6g#)ce{RgZdLyV#t&Xop7?m>+@qJj{3Y4`W9M<9`=_O`w{E@E zzCZFOeER<0-xjp|?$Y<;$B!*XU$8&ukG?B{vz;IVg?PY#^UkSFg)>eLq(KWkK+ z*UGO(T9@CrTtENh#h!F~x}kjZ_Sdg>f7MZMR2Po+W`6yyrE}`^skRG$9rE)3fk&7>hOHWEA^SgQsdqTORWtYcA_61K2s&y$B480ZypqHFJ21& ND0yX2{yaN&>K{Kdjt2k$ literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_charge_anim75.png b/data/resource/icons/Power/B03_stat_sys_battery_charge_anim75.png new file mode 100755 index 0000000000000000000000000000000000000000..95835ac2425c18725fefea7f87157460ab2c14f5 GIT binary patch literal 1214 zcmbVMO>Em#9QSC&)=q`22hfU`9u9+sF7aoa#A?>ru}edn5~a}^Rfx^8UmMff&$V5W zRtU9-q6IjhwM9%Epqj)`(NIAG0XuM@(uU{-P7|8ow8I1fvD;9k@Z2VaL$w2zKi>bn z|L^zzc0E7(Y*%MbCqWQh*&(HXzsG~;$b;!mf^ zJ*P^!Jjfsyf_RLJ>NLXuL5MMYTo9O3fTbChqVX+68D5MFBAWosi^SGkV^SP|O~*Hp4FX23jOP3_ zi9Ov5!E$oBePY{dCJLvFs%Z|z#AwR0g1C0IJ--0|b>l#7uQ=~OssKGS=jyl~li?N^ z=kET70!8eN_`GZ4qG&S;(&sE_`&lJT;**$R8X`wa0+&iA2L)A7IfjvWnN?_+W0a(v zk)?Qx;~*?gXA%<4a(s%$NR^ibmCi_$OXpa9hOKS^vV6fb8eJtz`547>bxOg<~ z)UUjV$Lf!)A{A>tmvurBN1w>e{>QYeQxQ!$Fsj54pl>!FV)-6 zZCSFisiG0t~uV1_s2EQEH`ugVf7T;Cr zc;xMeUpZXX!Ra?LC%)@dU;78KwvAB$ literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_charge_anim80.png b/data/resource/icons/Power/B03_stat_sys_battery_charge_anim80.png new file mode 100755 index 0000000000000000000000000000000000000000..49b5ab46640e154d87281f329cbcaad74879f6d7 GIT binary patch literal 1213 zcmbVMTWB0r7@nHdCY8`l9}EpBhlwp&)1CXyW`}IjolDG`Yz&*FS)x#9XU-;LGIJ&~ z6L%9t8X=NZAJimb5!6s@)e@;bh#15NBdw^QZz6*DASfte!G}O#J(KK4A3`4-=5qdX z{_p$mQyU+9xcx-e34$Qnv%_j0e@}-`>pl3r^V^CM3V~J(CQv!3=pH08CMrRYwe@M3 zhq}2q|0V1vh?cTdCt}vqs7!2M0iZRl)=|40KSn=Nw`QDn~nj$t{P!M7M^1t}p)ToN=c5?k}kvXobc8n&>M zCTD`cm1w$BsZbT3Lf$mZrc$YpgX7{@BknIcfnJR}es_~Wg}&igZeSq?gp7I#Ed*&2 zdwLLp?dEca#E#!c6iyjk)m@sU7}~bOxc0UEAP@g_<4A44u;@ZM4}G-Y8Mq$h?j{)L z?#_lnMeL3AsAu7#=yNJE7HsGQSv5`K6UwwqiDxn*pX%!y5;aldSymQgPGw}CRr_Q` z&Lo-~M_~m%BeN{S3n>O8H9=;0CWRR?L!!tl8KsHMI)0!#25j23u-yihyCYUoJg5iA zDFxj>l^LC>V+n5g2%!txwMt3uCu3YtS6vcZ0SCF=24xShfkH*Wx zkG+A%>W{3NDO7(b?bYjpEnCOB+g`mvu)U}1$!LA^>KSnFBg?PdpZ)!Kv=Y5?xfZ#2 z<4SFQyz6l=>92L{U0nY7_2QfE+Uc7=u17j^`A+uTpU+0G8~obTz+z-)d-X#5?Y8?~ zJo)tTk^u&uQy%!d-#Zsues6cQcjTkYFI#`Tvw7>4o9Dl7*+AD;&J14q{;n53nR;?6 zU(?!qZawoIIX3my?Y;AR>lZpu+s03s>#Oz1MsN2^JFyQV>${_ywM!3<49B+5w#*aJ zuTDL5G8O~q*auzg3Y8eqpO5d#_5NTiWC3< literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_charge_anim85.png b/data/resource/icons/Power/B03_stat_sys_battery_charge_anim85.png new file mode 100755 index 0000000000000000000000000000000000000000..4cb9b8519baf167d98f657fdb5efc725241c6989 GIT binary patch literal 1209 zcmbVMTWH%>7*><6?b?QAVPiC-a8O!yX>938vTTcZiEYV^n>jI#Azn9VW$7dqiF6d{ zq;>*>wREs_4_n(UwB1G+?Mh)6(vXLZmR%r_6$W|9Udq@*8G}HfY)>f^(xb#q_YnFp zq09Nt`M>YKYdYV5v}JGmUWQ>>vb}17eh&oCo?Z04xca^k2t+H9K|D;Vx`&vgiOUFN zZG8k4kZw+n-$7jr(>!byOQe*0Q!%g|)&rez&2}l8VY<3&u5OGX0?KH_auV!=TR*YD zG861jB**96G^$v=QyvMt5oqek3hyWap^HH8w`i0GhZk2$_lORyWf3S9@=91Av7 z$Y_GybgGoggEaOKh=j$E!9xgSISi$UEW=J9@KE4*ddndwDG^x_qM&}U)S71wD+M)E zw?(A{TOq_%IIdc)hO1&2dm|i-$KwHqAcUw!$e(nGUJE&XM}t8{zTsIev9JRIM!k$D zNP?xFZiZmHx!e}9oMHX z0Mpz(-B6%Ny-@}{ixx#6Q?W5&BZp+w1WQlCre!K3pOnRTES8ZqSrZ{lNhv|)QzBGj zsdOqCX>e?ZmE>ev%|t{g&Qqi&C8dm-l%W<&M)3)gj9iJD)OvT$jo@y1{?WRtZnQ^VN{ZY zl*;o`T$5qk`#WIBzxe#46Q{rbtTgLhJh1e~wY9Ss4lVWO`kbbl3Y_83uiib{bNj=} z?_l=iFKa(nfxPRU5&H}N*0FSEGrLLUT91 z{_6VSPfIKBow@%~=-#zwUSEE0alm@QywC~rqd%np$C|oM{{rK@)Kh+2(jAEw=hlnnL8_Aln<@^y%_vV MvRc3TUFzhS$5;iAp8x;= literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_charge_anim90.png b/data/resource/icons/Power/B03_stat_sys_battery_charge_anim90.png new file mode 100755 index 0000000000000000000000000000000000000000..49dabc8cd5eef41ff28eb5c7cc97a5347a921bb5 GIT binary patch literal 1199 zcmbVMTWB0r7@jtz)uz!+grJ4UaYAav-JSdF?vQP=voqU_>BeQVkfjK9cIG4*lbJJ_ zIdM065F%6z#+QoKT7x&OUK`B%%h+yb?CfSWXgg!XT<^1RT z-}m2VxiogPYyZLh6h(CzBU+h!ABmp(_LBGYUrt()fb}XKN0Yd229V0xs0M-Inp3b0 zO?zSPTR2Ej9g|L_imSzAiiO;y8R;Y&u20YuH8|ApO=|{XP=iyBm!)rievJl>ouwzF zB3tzHaM~GJ4B+_USjAeLu`)J2bOa1G6hh!aY=VY6>xD`qOK!iAx18WaMUoXh1zHzPtOfR@Qq~GBTSUsz z(-`{-!_@2bWL-$2V2a@~nM}mN^9iDn2p2qTHWFUg-)7KYXa$as9pr(C(X63)oTZ7U zTOqi9vA9j_g{?%9lras{XSgKGxNa2Jrgn(S@LxA})D9~PK4i);MDu|~>M_~h29w;~ z+fbxPyiuMG98wf>Rzudj3q5RTS(=kkwk3QPLJy`kj?cUQHRIM}q>vQir#z3!h4*adZ zl6IE9yVLRe_;LMQ@SafJhb~%{IPd#y>;OFuHpFT_q+e- xja}~g^upcFGt$pTLGQVXAE|E~>b^mNuPA)&{K(gHR$ufBG4wI*iu&w}{{YZ8h4KIZ literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_charge_anim95.png b/data/resource/icons/Power/B03_stat_sys_battery_charge_anim95.png new file mode 100755 index 0000000000000000000000000000000000000000..dda484bb89ec862c47d16de5d43a1bb672d20186 GIT binary patch literal 1209 zcmbVMPi)&%7vVl`{y*lmMIDQQr{I55Y4X}s2cuI(;v zPc34gvIzvI-8Lbl38YPmG$h0hV^Sn2H>PS#j00i_sV4+nA{ZLaZBjT?J7C$*?|c4! zzwf`d=4Pjl_MPY>2;yjdMk(U=v*FXzjo0Sxc|8<-wd~KMs$bV!NMsFEfgo>bi?9ea zV{K&{juS+*YL?1=x$u&tBP*eWI*Gt?Fq$C7Cjv*)m!JlY$Jn$1CA|cubLCPsLx#ko!)R z3v(ccTnK~&7uRWq0iu{-ctI4IlYpfemZI@3#u;7`M2Ss;_C;cAu2GeW%2eAHmNI0` z_Z^9%>h*e}&Lxn$NHOVjI^*o zP^gH#kzRI9Toi3tLHeo%Z9lJMNc<&Xn1;mBS&>VpQd6QTsvN_}yv!=J%rQzz&dFJ! z!*LjvmwA>^RgO>77^(7UUc@WM=jd#Tm9uIGo3}k*vvt_9Yht@?Ec;ljlyjlxBe#Um za;F34YRE@k4LKk;FM`;DX&b2SjfUmfk5+-Mc@7#=F0#O0ekJn|`$;Cr^Q^4UG@n*^ z9Jk7+R8CBCY*OKcoJ_W{#{bC~g`J_o=J-#ubdGQbhTDVI$HKwzKpRhti$~*ftM4`* ztKGbkEd}3K9zJ?B5xo|9a_j7CAGB_5ww@B=kx#~sRL(u$cy98C?8WME|4D87_yZvJ zJhRf=ej5BTJlM+q8Ek#_)`vS^&e+Z?U9rZ`!`I?#UCo;{vp2Te9clD_D@`7I|Hy;r z(4262w@zV8+ll@m?pT8GrjPl1GUVXLyRJ6I&*cmgv z8@bnoB8?Mi_3w?lBX4Zq_;GObworQ^{!wIdBSKVey#3Y6>jQH5Gs&y7%60k7oBseX C=ZfzD literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_full.png b/data/resource/icons/Power/B03_stat_sys_battery_full.png new file mode 100644 index 0000000000000000000000000000000000000000..026da1182378a9bdb8291d34475548b2d9c51be5 GIT binary patch literal 1300 zcmeAS@N?(olHy`uVBq!ia0vp^G9b*s1|*Ak?@s|zk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+nA0*tB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`kBtHuNWFoz#!AFNG#Ad)HBe}%?0@jth%@)C>7xhtg4GcDhpEegHnt0 zON)|$@sXws(+mtd{1$-}0$pR}Uz7=ql*AmD{N&Qy)VvZ;7h5Huj9yA+ij}c}qnWX# zg@v1$tC_2@p`nwBlaY&old++Tg_EGjMjE=kNwPKDW<3A7ig*8s0xE9aur#FG4?ko^1{SPBTp$S=t+&d4uN za1J(8&4|I$^C~+Vq7MKt)1%jCHqz~l4Gf!$BFvk=D zv&Q_1=D=?Ld}8=9slUvv1hU&u`G{nq~Lyl+m-XpcS=uF+mGf9tu@{>3pX?|<5= z_Rs5Z%jU@e;je}5QvbC{*GOjHD}1~1=*#Pi`uV<1ob;3R+{Ol$Yabi6bv$)?m;I8p z{l1mmB}Z#_2@KV1@eWpRwLEYO)-y>8tX4(nrk8hn2y+27N zB2^07*>jR3uT2R!CKh&QR{4*u9KwF(hs5Q7hc*Aw|7u&uBEi7;o8=z&OFJb{Ipyi< K=d#Wzp$Pz71;?NO literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_percent_0.png b/data/resource/icons/Power/B03_stat_sys_battery_percent_0.png new file mode 100755 index 0000000000000000000000000000000000000000..719e058549d83656f7b71d8c22546a1364e041b0 GIT binary patch literal 1099 zcmbVLPiWIn7*CmsQwHKxR1hC=!ko6rOVX?f>t^$(uDH(86;?c%CU0BZk{6RV+s%U_ zs1v;EK@W;vRB))Lfr1M2AOjD2^P=KOJjgsLi2Aav)5F-okU!t|^8J3_|H}jYM_M-R z-o!9WOQF{&(eJMK*|>qe=RRMsV}+O%GKhys%?c5db8r=bf@h7O60)4hQ?F1L!!!-M zKoPttXmf;~F@KE4*ddo>DscBgiI>GYAQg5L%td@-YvM;J-*-=6QmE&r)TB;_d za5%z2MNwi7K}b@IWHjj$tDf|ueGLW!MRw>0#Kk^{8LcXwAX%11x|D(!6pJgwezaUD zS~9L~1sqKAoae=PEm}vUg#L!Hs&!PJ3=mgB5uONb+K=IV4KS_U+KysF8jX4^bZJwp zaRb{E9`Z@S$g=cL%5fc4%D=O^2dFB`7O;&dBKvY{8F+<=d#?*QI`!vBsKMRS%Ixa9GB8yfFa-qnO}m6bC>b zltKHD>pQp>9f;erl&yh6_cU_yA@;yxeN}fA|B8^)GFo0VBuO!)IByeb>3qIZS47^( z(7czh&i~Ymqrq_TaQrhYjUzgNvA8n&R9RUb1y0(*2nvLreNgC^>@{uzkl~M zJxH`R?RkE8|D9`BjteK7uO>F{c(kG8`ulV9TeVv)(`OU#;Fh7c9kbtWNj>*oyiCk( zZ>xN}xb0~BLi65a^5g!_+1|wKfxfW&N22J@wY`rHKixQu-w3naO$!nDm7o9c_)_(D f;?qNSYhv9_2F$d!-;i&9iPyVe_8T+WiSvH|c@SE; literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_percent_10.png b/data/resource/icons/Power/B03_stat_sys_battery_percent_10.png new file mode 100755 index 0000000000000000000000000000000000000000..6cc67f6221861b5902fa3a6ea5e57ab6f3bb8266 GIT binary patch literal 1043 zcmbVL%WKp?98N71Z7CHLp#>qN2r6!p$*W1|S~jnC!L4Px(4}6QO=fpvn@pNa-L&9E ze4uy}i#G)k6jAWt$%7B{;J@J2lV1D>ggV*nt{zGchCF5_-}n9Acb69D$493|DT*2| zFIZLboy?!3Bjo-0$1N}4V7rc&Q4@FE1X3j*H6UFM-4?7u*Wcd!3TG*5xEa*yxL&!W zdnjbx9K&W|OxP4PJD0_-w+=DgfUO`ZGQZxvXXwB$GAnY0uf!&72Maq1T;5r%c{}T# z<}-5_>Df#t0wKgMorN1ws%J%}tE-cBe#|j+7lPM|OwXx$Wr;RX0%@5Q3my*uttc#z zWJLiNXn_X;$CFzr07;h>U6`TwFNRo4{H9*DoPAqlS7h24$2!M#IvutnvM6bBK-08b zLl6oCQAoEV>}G{1o$f1GF!hok#sP}xT+wZyEnH-Xr@auuxKbGiN9lf|NXod(jXA*b zTo~qYbd~C;lS%FlH5W8YQ`}aS&I~BvDlbUeYWB09#UlDXFF- zD2gcCz#4GNQHtHjgMGUJvD@PU=TNS0CeXzwsUft{?|`K?!YFN{m^POc`s_*&`KXhg z%gfV?)`CfJ4f;-kLb{t@JvhL=CX@`-a70UzG+WB!wt*o#&Wx#vyrmM~dtCp2a>fy7 zxV$<3X_o#G>A-wBXnnF73=fRR#3W=iYLD;TBx7Zktx_%f*7&`*H#huh=)~~p56{m$ z-MzmmTs`)1XzbLRk@JtPOgx*s(~38#%`ferQzv)%#*6Rs5BTy&S-O7Y_!{-;?bu8G R$?b`JOw0D7_1ajw@drRPLYe>o literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_percent_100.png b/data/resource/icons/Power/B03_stat_sys_battery_percent_100.png new file mode 100755 index 0000000000000000000000000000000000000000..5133c3d403fbd93f8f5a1c42c3d9a98a1f220f5e GIT binary patch literal 1042 zcmbVL%WKp?9L`dZTIoqpED9mDpy1}6Gzm@1CbO|C-L-5Nx_C01%)d# zheFoPF>DsbgiTQkOIhrCn-J42*a;$&`SI#CLkGUetSeQ%8r!fNEbk_8ZMW9&b~ioU zXO9B#nC?W_&5BVvJ5~TN^^zdQ0gC8c(QTm~HW}jSFoZC!R*!_Ebd)HPGA?stPGEU1 z4D+}K=oHuCUpJ0Lr;VK$a&?%ZUgD8@v}ea;lDm@)QQR$nyj}<+TmdFS z{;+=F8xmhqC0)}TwXBvUL9k>?1iU2)K(lPCq>MF=w`Kxk{+0jphvQQAc@ZLg{HmGvOOO|Fi5|CxREa!2T1xs<9d0Urwppm$TT>pP^#t~<@ zygB}9mhlnkz%RIQX~7)`t|$w(!}$^*@;VUp3OZy z*t;ceoZc^-IVWr!Jl=aJ)efJ${drgJO~0JmYkoice0in*uygUzVqub}&VQXUKU8lN O@+qy9Yv6@-``#Z$LqtXZ literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_percent_20.png b/data/resource/icons/Power/B03_stat_sys_battery_percent_20.png new file mode 100755 index 0000000000000000000000000000000000000000..984df7ee405f34aa8982150e1b891cb263dd1127 GIT binary patch literal 1043 zcmbVL&1=*^6i=xX+fqFUf`TxlC>6T--gFbXmL!vH7u;I53oV|^CbQkRO(rH&H|?>| zgCZz`{sSTiML|4zu!n*uf(V{Gm3s0d2wp^}ll`b3N)Lv7%uL?z_ul)x_wFpr&yJ0p zA7L0~tUL#+^m{IQP7cxc?zb&B+Yo!1EaC=fJ27Gm57!YW2hIwrBF9_5^$txl%wWT> zEtBQSRo%q_=VUfq8blP$Fw-+>MYbE%a%BNnI7T4P$vIaL zMWCvjsN_{uoCJ~}O1waCH76>1Ue%>3(7RabE%q9E6_$Fw=&r~%35j%`Z@1fATjp@Q z!i$=wWgL=}qZYYjJtR(=3zP9a14M}%`w{VR2r@>ej@L+$rIB`12%<{mkT^_wLQ%>1 z)QNbJ6Zjy=^6FS8q>BEAain!pTaOT5MG0PuU0RREcppr)JKj-dNTboO#Xc>HvkI}h z7NC%nVUeYOIM4TVSuj*tD-=qqt=h6Enu;kw!IVWDMW_O_xyQxt8* zu#71~C}@Uc3zDV6KDHbt#0g#0_v=%?JuEyHt6MR02##wQul74&p@|7jnm7X1q6#LK z{LsVg2rQ!(%G%Py?@DhxY=s{IstZ= X_fJQ+A8eienT=`Lo`)~Y8=HRs#4tzT literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_percent_30.png b/data/resource/icons/Power/B03_stat_sys_battery_percent_30.png new file mode 100755 index 0000000000000000000000000000000000000000..fe9c5f7408f51c8d418ccfe5d0b90c0eb68b6345 GIT binary patch literal 1044 zcmbVL&1=(O7|$pS-Pl0}f`agxA^6pNHdzxIOVc-XMLS1ZSn*_|n^p^SpU}zvuhT-0azjvBP5w z!%S3XV4Z#srO&=m`hLH8%SjbtwMYYZNY9QCQ*v<|fvRsWpgOYMl`9`nfnhQouh}B4 z+Iii-|O|bp3LEBffqGR zOF1MdOD(eTN&Q%RUN7 z6&fu4!?~WT%R)(&wS2y!TB;?BqM0)#D44Pc^JdvBDMOCku@g5R81V>GbmxdEC*Tn?KT^xdPLj}j@y}-r2 z_(a;CLADS@-c{sQBJ6{HeRXda|C&@X^JYbcGl^*Cg0n?x3-Fz7bBCIBk!Ib zdwl=iMd|YX^^x&|uSTU$&psUeoG;wGo4I|e()jl9<=TOBM~V;Ds$(0EHYcw!8RpCS U`19-8A1Bj2ty;5i!@P9k537ttod5s; literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_percent_40.png b/data/resource/icons/Power/B03_stat_sys_battery_percent_40.png new file mode 100755 index 0000000000000000000000000000000000000000..b24f80ff29b90979e6b80ca7cafa8a7399ceb0d5 GIT binary patch literal 1044 zcmbVL&ui0A98Vbzx3P;uK~W5uf`ZNOrb$?xNnh#;c9yQNA_%6*Ya6@d#pKOqJBct* z5cQ&X(aR7NQSj_R9rNJLiwOGUfk-9bKUr#5WjhXhSgGqXu(J6(wBCTx2_f%)~}BSU*`fmzH|_)1uW9dB+mf(xtj zb!WBfXf88*k)BC(Lf}Je(}}+n#ClR-`n)<>r^g&a_f2rOzzl+FRH}3lMUc+1Qr6)G zfmRe&kaLP6T%bi>5ILUQN>-5doT7_)diP?8x5#bjHBj31MRopmGHi)N(3;@PXI8 z%RUTn859`uhjl$ymv}>wG*vArmSRbQV9KTlcvBL9Y8Fi+H{{qCD@!KPOO-WX3W6mY zfEUf8Wf>rEsHP|mvE?AfcHqFFUoZ7Lz~&Fc>ct4!7)5o2mWCZr?I4We4hrewfF2H64_dAFfkijYtD_0_$7{A;3Ns%A+7vaDHhnztpGxl$=#)Fd9LB<}&% z{U6OZ5)79%$3M+7JR%*KF85lWZ1#o+24rF)G8&Jr#|9ZIPzFXl*=qjY*_j=Ao0%Fp z_372w^`{T6i8sfdWG0TiA3d`DW9o7Hf&HD1&- zE#;7;47JF_n*p(tOb}1@86b+C$P0;w1CTP>4csOLmU`L?!4E5y1L7dwPZUiVpV%QU zasu!BX0p$f5OUPWHhxcSj4QhSVE$kZ3y}kLtR|6A+7vI0Q z^z6x_YtpS#j|WE1ydGkIf0^*+e(a2Lr@{8w%Jq96$4fKq-PZW!={FCaFEPhPneXk9 TmnUuM_LCK!g9 zsxQDM{Z8l4=^}l9`tjJyH^ga^W!xowH$hC*#~sAhLw6N5k?U`5d`4x48S4hEHfc9* znjQ{$H^=Z<7*jUGl;^Y9_0|w!J7_hCD%`L4A2>GfE8L3O5F4?LdcneWf|j=zTi*7X zXZYOwb+(+DR3JpeWwUTSO3kdo4RlSq&W{C-9YDxhg&R86ZY;4jP7tf|a>)|`U^R^g zimGYg8Y_uF5=44yC7_t9W=eDH;l)vFiQhGwuy$yR?kZf5kk}N2e!tK6WgaK10x%3C z*N~(VMU>L5h`3oPN@qt35T#xc#3aBGn=85i3Q7&jV6!clsdD4H@Mb7KMU zq7a68Tmy7Un&__^$D-5LR*ZxuO7Ujm(Ry@eM`W72lMUrS>Wz6T320H=b%?#q5JjX8 zD;)j9`+;xDVpWq3U9V}5=Ewk8iX}nOk^$5$+p4M~jbpjC?f_eL6a!iSIEr4g)hYyv zq^c^g_1cJAk5b}B9vayVa=Sw=JdtbK333TeS{Sd7I$)`X2~K-BX6YBE$5!%_0M9bl=o+MI33BGhTzL$3cnITNTe zLf#zzG|T9Sc3{3dYJIvn8XgqUiAm^aJTJ_Aqhkf@u-eMLc77im%#Xb-oE^LP@%5#b zyF0g~`{U0Fljq+R%lkj;%8QMxc;VEUm7Q06Rd;-L*LXe~{XxT2k-tynynCa-JUk{6RVo9!ez zLD8!oh6lxqAP&9iK@VQUgGa&tU?)NFCd`+1ogT&xhWvQ%<@5P`e?M4Syf8I!YJy>y zsoH|spx=|(b7Y*pKkeLevkkG@q=~zv@5G3yc({W=EpV1m13BLM&CjUFFuAVZYLj;T zlJ4Swb21E<1`%a5OtG9sj=O>g=%8gkEU`b{e_(;{mDsC=x=@d*sOK+i#HhKk*m5^k zT+L(4=Rq;msX%~;1JYnMO!TzG4s><8&W?E&3?O8s#15Tm*Ox#Q#|RWSDenpp0!87V zTu>A^2Sfpiyg+Xy4`sce=;A!syI5*1_PTn*wD)Y$U5V`x66rkO@AtXB#Nl|Ehnl8k z8lsq|hw5%F;dGDW9@*GP$_o(@9@qI!K_I862uMN`J7PQ*h_ z;DaEGYk*Ej1O0X5Ky=btj}YHL30{j`T95ARh)i>LxS1{{NYGS`s!=J7G!Eq2rlQH3ENi9#p(SgQXlaHd z*t8(3EZQS(Elh|Lx@ctA&+HDl(xF_v8Y73`xP|fRr~{UInBb&`BT#KB;LKG&^l(2p zo0Vr6t%+j)7V_*E2Vjt2-9Ny-CRPm9uqBgvZ^>EQ7BmXBJzv!%!BlD7L$3EfIpe7_ zeAXQQG|T9Sc3`&LZ+*JiA08CaiHYfGynA{gq+?~)%t|Z$-ub<|Th6^6o6gOAe0loC zlSkLY8%H0HO&)(cKG*r>ZGBaXcOT~NpR=3ap1s*Tc5$Y>wOO0ke!eq(o5?XhuS~w$ RfnQqLoYt&GbKAIn=MUNjL|y;@ literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_percent_80.png b/data/resource/icons/Power/B03_stat_sys_battery_percent_80.png new file mode 100755 index 0000000000000000000000000000000000000000..01aeb406b98439c7506e2b9682cf633fbfbfba6a GIT binary patch literal 1043 zcmbVL%WKp?98ReeZK)TbP(c_{l@_{rCrv_Q**w-RxV3B-x_D|fneE1HGBKHU(;f>w zD1sp9Kj1|W1OBWZ_1X>X|`zb#=1Nk69XYA-HYOJ*VoGWniHM0+|sD9>?=QQ5as5 z6@{M#0>=w1M{cFSOS-J+!W`&dG_jWWO}%QD`nJf zK`0PJA>EF!n-!vTYM@}l)JuXG2Pgu$qT4{5*r180y%55j0 zUY=gGHcWyo=$8@{f^L5G;1v6sP&8GuB-)asIZ__C!<%xcG-qidXR9Rc9@qb$oUz0i zHgAr9nq_cAIxt_Jv_9FK3=fRR#3W=izKQiOWUQ>RU94qa8^4c_7lvOBT^hc!|NPps zrw{K4cP~5{8k=}Ma&^nt`ypQZ`2CPNeDLYBJU#0kRNp=dolT8 QW+ETcva@8rGS_zh01XR8wg3PC literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_percent_90.png b/data/resource/icons/Power/B03_stat_sys_battery_percent_90.png new file mode 100755 index 0000000000000000000000000000000000000000..4b14b6713dcaafb439f4b8bfcb8f252408516c1e GIT binary patch literal 1049 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 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_percent_charge_anim20.png b/data/resource/icons/Power/B03_stat_sys_battery_percent_charge_anim20.png new file mode 100755 index 0000000000000000000000000000000000000000..9e3f328273f195ffd15f78c7b27f451eafb5a640 GIT binary patch literal 1159 zcmbVMO=uKX9G`SGwQ4X#6l#^cPExDX-I=%Zk)2^D>(0)sS#Z;3v(!*5I6L!_ohCDH zI`h(h!B5f-~Owqwj1S+02 zjq1p9=0Erqq@#JCSaI5qhPn&}itNx0h>LxYFj`GKM>Ljt zx)y>LRI3}rezcw_nldi70uE+)&hwJER<$EiN6*~YR6A0g_@XQ*xm;N`WmAAq7xk>c>jE@#dPy%z zU5?GLl5CU&(~w2Q&>=KM1&U>3q$mkc&Xq;k>|!f^L@eJ%UAr!|yN;D!h*e7=vIq_v z7|(V)pw_|!M=czH(u52Sop5~zx1+;JdDfyeQ0RV$oN|agu$o`h-Ne3Diq+@XO^lzF++E-R%3XeABaI@3r262P?hJcZSbs-{prc zjsB5Z8g%!Zy!ey#TK|PD&DZPazDRZ6>eNgAPvMi> z7x?}=J+N?T@zK`h-;bV7RZni|{QdE_=l6|Tz02DUee`Dk;LA;Tc~{)&yE-^lIbRz% zlUf=$x_`&gUw6OS?PwRl@(;tpz)MelyE`VH+AmkxvrLM)mp^d&$HzMlCclP?Ic{9l HPn~-Tsqt?= literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_percent_charge_anim30.png b/data/resource/icons/Power/B03_stat_sys_battery_percent_charge_anim30.png new file mode 100755 index 0000000000000000000000000000000000000000..451712cccbe4c82358d910fc6c100c59c01abc30 GIT binary patch literal 1165 zcmbVMO=uKX9G_*AtxZvaN=v`+Ik8%)yYsoTJ44p&&b(c-;>NI9bP*5E&b%bkWadp~ z-gY;^gZ2Yf@Svg|MCd^(dQcF0C@rN@LrXyrN`>M@SwSd0s8C7|mh?@MO?wC)I?TuW zzxV(B{@-(Id~Dywfwu-2hS^vig;n}}GkP{8=zHXieUh24}H>7?4OPtgoBJks_}YX%X}KvRyFW1oKW9Sa;g z#~w~s_=<0!X=ijHKobjNHEUtUQf+o*FBooXl)y#A1Z{WL3$=ERUFOy3I@;z~u&hF6 za_ovz^~yLfaDYHMB_%Ch5P+hj1UaoJ!X6;!gfYpno)&hG{tHRQ% zEh^>MX+nIB<65m&swJgxFvSU~szw~5n4}uXaNZ+kJL!c(JqCzED{y?`U=Ku$W&<}# zj-{Tigy8y>${Mj3t|p46jBA@dC!~1Jb)&eJwL?-x|GKfRc37MD5m!YaZUz>u$K+5C zOmp{gLy;o&Mmrcdv?%5*#8%Tq9x1~dOHWd^V`~y$P$V^*Eh$B%C<%ft>muZJNq|}1 z&t}838g0 z4r&k33V8ppI&bvwBH_ z)cc|w#a$Hibg7gvREdXK8utp;{y#b6s54yD9RF#S-WKh^Xt~z0NJ_>I_>_`A2Sy?5o}=_BHYuU?3~_WG^F=0BDajYHt(kK6B! zUO)IJ^L*ct{x`09za|!Uove4xKk72w0rr=rcsH3pzNzy?r@3S3%b(dFHlOML{p4Tb zrLXwGhp|TN=-l_ZJ@|Kj_kR9(ymGX!^LVa)BGWYEck}PW(9^!|o_qE-xX5(t;K|O+=Yv;X*$OY8w@do%ZI{M7iPLwkmiq>eF(2#&Th1Cc_D4U6 Ma&Zja)Q^4q4}4*G0{{R3 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_percent_charge_anim40.png b/data/resource/icons/Power/B03_stat_sys_battery_percent_charge_anim40.png new file mode 100755 index 0000000000000000000000000000000000000000..6b006f257a711f63692b51e81331833063cd77de GIT binary patch literal 1153 zcmbVMO>EOv9Cw!TIUy#B5HLO-t_quIVmqaXeC%Ql*g^Ar3h9YwI@lGxqC} zR+^v#L_tVs11cs>Jq!tP0g*|Yri}p-z3eb?MtsBC~8%1msTL(4dJtVDS6L4K5B*n&X#Z=8o*VNWG6Xrt7=#6A zSYrqNg&h1Y2Kf*O@npx&OVi{eZrPTcWEC+frBb?>6|+f>Q+YL^v1*djQffw3 zga*fASV2`(QDrl{q^TU2 zMT9Di4(J_17zIPf1DQS%e9>>a7ODnchUJ-yR)fC%9kg^GIbb%wvb~6XDWRw-RZkLU zr7R!Do#j+P*V{8vlGRcq?m4XWe{#kUXPB@#K4_N47U{rnxzPGVSQsAYl8N!jXl%Lr z$1oYIdQMY{wcF*_Z{K!CFGZT8n{QlfJwJ7FZ(?}G*~q8s>Py$W?2m9ew~XoC-~YC3 z^4{qu%_>!FuPl4`qN`0k(YmQ?pK|2Y!LF-ICT~URYwO#TZf~NkwEB0dX(BhRyYkEHuI|5%{PgT|FhxBq zmD@o3=)}vJD7T~a=N~_NcI<-wYvj=tdrhQiJ@w$y=EHFM{?_oPkjwUHm(~40yaQQy Ba9IEV literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_percent_charge_anim50.png b/data/resource/icons/Power/B03_stat_sys_battery_percent_charge_anim50.png new file mode 100755 index 0000000000000000000000000000000000000000..cf2c6d75f4fb14b7f7545279ebe942812cfb1954 GIT binary patch literal 1157 zcmbVMO=#3u9M4d3wbG?fKd@L0se*zt`Isb~gibq?$wUX7ZkY~rb`>;}ylK-mc`!4-0;Kv91VS6g>$0;o=?&%VICf>On8chzCLFMfT!CeQ7(@L+QasKHmT3 z|NH&Fb9QjxP+MzfD?t!#xx;D!zjucBrj7VH_xgJy6i~K=hF}HNbPo_|6P5v)v-J^B z0J=GO@^8>f5G@s}SVE=z5!rxtOb>Npf$d^6LG<WhSX% zAdWzPkCTyYM^LLjT@3l_4kpzfs6@kfOImjCmdf6lGGBfjQ8O&O_56~Xgooz@tfC}^ zJzWmLcJujFV#i-e6iyi(=q}C17}~bOxR$hiQ~)2`SX0|CPP%|D03TL81J|R{-2~&@ zt#2q)#NNnXcor^-KA}RRY6A!5)Fg$!#7xVS<4jtNONoRgX2oorWfflGR7Q!jYC_2< zX`#un7FJMIi50X2FR2R4X8DA~YFWHQfe|E0<0IWMK+~>;?XF;Z*2T&h59kPb zMF=OF9WXcw5%fo)OJ;^da{sX9n6Ty_2+Ok^tqMHr6fiXp+T>DxWor%l5|>sIiWXOS zUdr-e+*wu;G_5Bi#Thk$<6g#^pOP~gJ41)f@lmrhk8lTu+tt>`!s_q<2TzQLN8{)8 zf4|_dx}Q_i#o$@_|HZ}rmfMkzmaac#YX8O#p zQu{Zg(6~4AF!i9b4rk9ERiZC%oY^;@+7$r{8yYWD6I7cva@8GU&y*B&q>yCE+AMUSr=gN^gFFLP+9jWOEF@Jo|t3QUH{u}-na@hg(j&kDL E_uz$jbpQYW literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_percent_charge_anim60.png b/data/resource/icons/Power/B03_stat_sys_battery_percent_charge_anim60.png new file mode 100755 index 0000000000000000000000000000000000000000..3d95843b501403d30c4b184f83f7890803b1304a GIT binary patch literal 1155 zcmbVMTWAzl7@l=C7sVRtg;vpyV}&Z&o$HP}W7fE{XQtWW#;{p1h={W@XS35}=8Q8Z z?j#_nD74TE6sm#`h8F4~q&01!g@PAY74b>>P!LMhK3N}p@I`1Lo=LK4AA%1Z=5qdX z{_p$m^YPH&`)gNkUQJQd+Ts8xlkeN{)73%Vt*7U#Sit%S9!53XFat>CZB&JH(KSb5 z8JhOw@q4h3qLMYIGJ;1+2UH8WX*1SIN3KuM6xG)s`KC1nFrhgyZ7pa86h1jGcciaorD96n6s$?B+vkX12g2!^q zf>R@IIel^5SQV(ux}-=vXMnt}XMhd_QEp?4UWiT4f^EAFvAc-XUW-)=0W>iR zDhQ3YJ7B1eFbeC)rwhX}{oWzRvr!}56_;lrS^xv*1hkC+x%7N~Rc9Idijdc`njr#7 zQgkVfTj#ZmVeBa=A_uZ0?ggyXKt=PIg?nQ+V~EVtc;pc(SGbaRH@7js)clJ*ge>&Z@hE2?h zJ*cyKG7iZ9G|tNX-k$6ns< zd3C3~Kuy$=a6k!!gy?~fXiUHmE~p1<0w&yvF&>PO1OgWhfYAi4Z`yA4&~R`vAMgL( z|M&ZU&x!HTL+RdEdMS!Zmq&~$`SvGIcNclzeDHyt2-vLS2{escRtPE0K@AAXo;3rj z&~g^uy$y#bs$<%%)p5P@wrV4fu@W67_5y;YsG;FFupx1a+vQD;H8my_{*#f=p zRJ}3|iYSC2%ZM49<9Q&<3@>G6nI8lK#|tb+ZaKqCYF1W-9N4&MVl8y0)v8h2utlT- z-NZOhS+><`F)fin;S9?wijr^$LWXE$q6HsYamJ7Kv>6N-*`XU?7x^Gzv>Iq07ii+? zdI(-nscaJa(MF<3%GlTnSf1fn&r9N3(~fWz{_Dn;+EHyGfNT{;Xg;(_J*M}x!6bLj zH3aUE6UG+9*g`I2nPrpWWUqzeY8i@cH7i@KI= zb8Ll`g*;~poF*xT&hw_E6GqS~;riq*^wXtPC!j^Btwq2Ll-M}i(#j3>+S{Q{j zgyz~EFy2HMMNJfd;)D$LPr1H>TG5+HdDf#fVCcRFol=NAu$Eud-NL>iXnI~RiH0O8 zrj*2O@_M#Z$`uunGx8+vb*%G$a>f#8*rYlB(=6>R(t*ixv-OFvIXuuO6BClrps(Ee zij39uvZ2-DpBv9sSBE>Ur20ArR=(JK@$AWWgrhxYQrlm;)-~98nt!s|)tDT*CsrSx z?mzhKv&rwbefjF*@f)u#nhF+ixoP9sKz5r9V0yZSS2IcK(z~M-lk@ z;L)3Q$FZgS>&u^CIB{6d+`ahW*tw;+S30myzcsfMzp;D!sm!0L$~S4F9``JNx)i^) z^YJI=$GTGt_@(o5e-oBpma;FVcYRbj-3?Z#`+WmHto(|;PJRnzbJV!1A9?>D=dW-2 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_percent_charge_anim80.png b/data/resource/icons/Power/B03_stat_sys_battery_percent_charge_anim80.png new file mode 100755 index 0000000000000000000000000000000000000000..383f18d05fc262184882424291369d87491aad64 GIT binary patch literal 1155 zcmbVMO>EOv9CwKXTRYZ?sYRVs&2m9vh{S%5|Lv0_!(Z=g|Dv5?n4N`#T8Vyp!snyy^nK^q2_qCpu0lrfIH~C#VlpPKBDP@b z6R3oAbMELplwz33xK*x@O7R=jz;;Xzbz*_-QZ&P)1_M_&rV(MQXu@*R-15y^9BY|r zZY)t0if$H7S_kJnG&(g4-nU`~NE)D>cpr{Ej4zwi9 z!c3yYu^CoQfP@0%tfXiVfSjbjyqJ>(C_tFeGBRvo3yx28$3QK+7PY&MgliZg9=6%l{HoR__7yP$lQ19G zBuU9hVcaHLC43`_NPlb))K@Oc5kB-K2 z*Qbz<)!zjzQx2X~->$3-M*eL3JkopnkGUxk`|no$x2~U3 zeHRCQZ@aT>bsaf-F1;)SO}3nzX({-~#M zH3InSZx%jV+SV+NoT(o^O){f>{~SO1NIJ=E`-FMk(R=sh)hnIhZ=sMI)-J>EzW*Q8 CY;`gK literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/B03_stat_sys_battery_percent_charge_anim90.png b/data/resource/icons/Power/B03_stat_sys_battery_percent_charge_anim90.png new file mode 100755 index 0000000000000000000000000000000000000000..f9201ed7aac1c09a1748239d5c49954ef862d6ee GIT binary patch literal 1157 zcmbVMO=#Oz99QNvUo=_A7_@=FLrKd*ZGGCZE#jn>B`1bCHI7-lm9ojwOROZ))1;T! z31K8#R@_qBTWMFe%UURuj=%`C^w7e3DZBL0(+;DUU3wb5j2#N@Qxc~=gdQgJ@&51q zf4~2?E*7RI`}+p_D2nROO{qolJrO)TUF7}bXJm9;DJHsz8vl^?6u? zy1DwzQ#eLZp*gEm#^wBHvVm+y4|JHi?GiLajZM^D-B^SeRN%bjr09PhKB9qTrs&yN zp3A!#Shc3sJUFv9T{6}djigCWjDxYdObBdVFF-7k= zRn8Yc26+&~7%^gSJP#y^;iEB0;=@4Tc!A}}Ek*dK9Ft@r4)!maSo6#|xu|CMZ4oI& zS21>FmaWxlOig5vH_!6PWHR6ogb2}y_^S@q>k-EvZZoLRH$2P57IHwqs8`T3PSM2E zy%20SpFbdW{QX3cl(BW)WqF2UZ99l-SKG%$_|}a>wf)kn3)v#{(XwZdddv;C!6bL@ zHxwumZ{)L{MT(*?smNHip@Va3iY6zFX_>Ofr6n<$NMt2V(nOwDqKcq$ipZ-8C8MNc zZH~jRQal=0xp*|1R281rqDo9lD3Yp3f|7`9F|LixIX>1M1Gep2#O^*;d@okccu>d4 zDYqI2a!2kcsigXk7Sw z}KdycV%7a zd3~h04t~CL%IV#?e06YK?`n=d`|oQtaLTmR&Qwg zM%cW?FyODw+b5=S=WlH=)rFBkZs6vrkIrm#P>Xji46Z*19l?(wr%kKBDqny120J-# AhX4Qo literal 0 HcmV?d00001 diff --git a/data/resource/00_winset_indicator_bg.png b/data/resource/icons/Power/battery_text/B03_stat_sys_battery_bg_1.png old mode 100755 new mode 100644 similarity index 92% rename from data/resource/00_winset_indicator_bg.png rename to data/resource/icons/Power/battery_text/B03_stat_sys_battery_bg_1.png index 19af501b22302fa030fc4965bdbc5e4212a75e85..4d3285f0e867c24eaf1dc85b960564be5a627a4a GIT binary patch delta 203 zcmV;+05t#O70VVOiBL{Q4GJ0x0000DNk~Le0000P0000P2nGNE0L1BqW3eHN3V+@S z3JD1`dFmmV0001eNklt_E=Q0Gr-TCmrII^fq{Y7)59eQNHYSl5eFNPocnuY*G9!|F7w;W61*0C^X@x3 w14TtWT^vI=t|#xPExKE;#>U3hHqniNA$0}w7I9}8E1&`fPgg&ebxsLQ0GMwXO8@`> diff --git a/data/resource/00_winset_indicator_event_bg.png b/data/resource/icons/Power/battery_text/B03_stat_sys_battery_bg_2.png old mode 100755 new mode 100644 similarity index 92% rename from data/resource/00_winset_indicator_event_bg.png rename to data/resource/icons/Power/battery_text/B03_stat_sys_battery_bg_2.png index 3aa9c67dff7874f29e2338374937c32756b3d622..c8c63f94193191743297a27c52fdb587d5d7fe6f GIT binary patch delta 203 zcmaDPdRk1eGr-TCmrII^fq{Y7)59eQNK1k+2OE$)^0GB~qhdE#{XI@DPIif_8xy_& zMQc4>978;gzn!*`tHFTBCEhiFz3|ij|Le7OycGMs$ajUTOVNa<58j>FI)zQ}V27N9 z&^rb{-y2fQRtikXht?lh)7e}&ne)bc8$gKZW_xK8PDF<`E$aSX+^U`j@LWg zx+J~W;a}wR_KJ@7nm=!a)+?Nr+7$AkS9Sl?@Er`26BTzY$#Gu`bP0o}tDnm{r-UW| DADmH6 delta 97 zcmX>t_DEE*Gr-TCmrII^fq{Y7)59eQNHYSl5eFNPocnuY*G9!|F0 w0g8%vx;Tb#TuF6^1SwS-sTpzXo5pJGYp!pJ+Xd9E zV&ey}u=58H0ydEN1uRURSr{0Q%5f4Gh6*Gs+xPW--+A0~PPR7h)#h)`3xZHb5uKJRxP*da~i zpv1^Uk^x%~*4B$G2=@p_1F{>Zj`;1(I}yc^BkmX-wUfDI6mJ|cvVFAK3y=0fD-zf5 zqP4;XfrRh?70G^@+l3=ebZwZI+lq)L5WeS#Q>Xf!E#y*0kRjKlP{kOTri^vNH1Qpz zsaR7~cufiGwqe@Z3YtA4SYy%9?s~16Em%3?i1W-=l<{~hkLxmJy9%}}tJKgm2@q0# znDU^I(tN2>@JJrAIO8!*QK=XV=mB>`@N^nNl65-g!f8HB6r@Zkf=t1(sw7Dn*94vO zF8S@oh3LF@m=UE*a(ci*xR2pdMTXq{-B1YxZ|sLGhD!gB2 zZfJGg^{{UFI>t@i$4#TvT5+wq>a7};#zov!-}1FqOV=&0iLtL+x~BTBtC`rsZmepLZmBg$z$q8W0xO>}D~P9r+bm&@y!M(Yt4 zKOs?z(F9HMYsVMZ$1DGed&-UeCua&cqm;$*N3m2}P=V$2y!2sl-aI6Qj$zOmr;_>= z+G@G&HG0LD!Oyd^^|^&-*Yx)ve=Od9UPJda@#Jjr`-}eDALXpgLL}zRd1(k N#31_{sr=|ISK#( literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_1.png b/data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_1.png new file mode 100755 index 0000000000000000000000000000000000000000..cafcfc788beaaea004f0295ce4859558af90b0fe GIT binary patch literal 1009 zcmbVL&1%$86pmD@6uK#hS}0u8g$hnGHq%+=|E>`Cb=^c+T^A;w@%uX zxDgj_`XIi53vns<1U`T}QCy4lWM)!blnRC<_wW0@^K;L6y|evzabbBu5QIg4%k98; z9lnJd^YAY|xr;E|;a-pL(g7a_j0l?%?GxlD!H{%F5FHpp6rK4ByK!H z>xBsd3E=@Ml7loi3rn2nnlLZ7Wf4sveBTnMPW9S5$f1lNO={G_I>t!XC9G4 zr#vWXX}(%1xFio*obi~Zs8kI4^oUy`csdOs$=dC6;WVEm3Q{H)K_+9VE+>r#49Rlv@Oa+;55hMZj;-QSDTh>r6I<@HRXbqR}~ zlc>dLf+qPj;|uKL=D*^ea-;vrnGDXzWpVsfEY%iNU^zW6eOR0~4@se87_`Qhtal6A z>aOo@c8kybpJ!(qb4xD{Z-2PjUGlE^r^TC<n+a literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_100.png b/data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_100.png new file mode 100755 index 0000000000000000000000000000000000000000..aade1ef5b91f33ba6a4bc1d19bde68bf3cb72010 GIT binary patch literal 1056 zcmbVL&ui0A91l)p76%TUP!)X3JSf;CFHN&0td=%uT-D6d722Cilh-wD$&1OG&4!1$ zn;ryZe}N}Y!VZGqL9c>>h#+{B-Nl38L7gxCF+Ge4h9vLT=kxjgc;D~6>im_l)aew% zFk_WDy++4z`lUvX(0}dDv&VEulX8RTzEe%J3N#!dkmIr$TYwPA zG6$ucEW=Ac6rjip^p!JEQggB@PJ_Y2Qfr~pR%^O3utisSwnIpu@_e`3<+@o8hf6$E z6eZCR#SBGcqBWmbamJ6Ph6*~0?9dH}i+zwNS}nXv@+|eVAA%Q{=AN)04H89D#>ZB` zLr&m5FNv#%jz|stabsU}R9_1aUqcaI4Q+ZK?WrM|=I&ra36OfD-UwZKDb|XP?Ntx? zq@w3pdcrxbqY4Hridjk1p`?^02uo5KmU4zMttnYSpUDk1_T$dTl42w@MK3{EmS#kG zS}PkyQ7{ZcG~ke1@grjSHX7P>soeorKai_xA+iV#>lm*LE1=rJ1V&NbHVdVJ6QLuQpbqf4?yODZ+_xqWxpXba655E>Z zoIJ0+n;74+H?MwvuWy|_F*5P$$z-#XzNStp_qWrVx#HwD++hwKV?KUMkCL4fm-K9< LJg+}3EpGk>BbrD* literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_2.png b/data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_2.png new file mode 100755 index 0000000000000000000000000000000000000000..afc17b0965d9fdb9710159eec214005690953745 GIT binary patch literal 1029 zcmbVL&ui2`6b=-$78b>u1#y^Os<_EcHc2AA_5URB_a@8E{=~m0FQW2L94+OxAXnJMQkL zt9!6^15{JY2?D|#kOo^}f>Q&Icrl-6+Y$sL6Sir$1= zEjKGjYvfovOqdh8B-i!1?gYzKPr+g{CJv)-|s8B<_rq6~|x2l5g<}%%(@B&lg9{Lqgs$ zF>j48ckn~rR;q0+cG9oC--m~_sSA(JDF+{ZUb(hk0JmhgclgZieSQjmy?Fj6z5IUZ g)syMj{ks>zfgrw||GuJqJD)YC-B`9>*Y7?40{~<`5&!@I literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_3.png b/data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_3.png new file mode 100755 index 0000000000000000000000000000000000000000..d835b3cc86eeda8257156b17c344a948166b7211 GIT binary patch literal 1031 zcmbVLO>5LZ7!DTvC@$2Sde9-gSaFj~zP5>t>u!>@p>8ePmG04OGTRMpGBKIDX-`rF zDLs1j7YKrQQ$&vnUc`go-Lv4ygHk8Eo2`dZ!H{IWp67W#=6&~8mT#4&FHSQIQ*suq z79CH~Z~F8}`p-UEB|2Onc89Fu9vQd^Vro9_BH)DXI%*-;-@g9=EilYfFKBm2r+HiV zaLBnihRed3vKeNfn#HcSfe7fL^&m3X@2}soAn*-#O=$|v*hKwcaVJ5mJIifvXT#Hc zwt53BWI7cH5ph8lZbqq|8SGG3r}KQ9XTcCcHVk&;RHwNDOq?K~a8lV5AOxz)L0M5% zcnydG6nTNZY8lG9qUvG=j31U-OZ=YRvKnJsbY-x8LSmig2ZI4OkT{&I^H9^YTtgJg z6j4sMBjRS|D4i`7ER=dl5R(8$AXjv|c#9Y;^>h?M7&n^};V2y^il&Uu+?a=)z=vTT z*AShO7CLm}NOaoXjuGENDc(vvdLO;nf=qLFyrCROz0vO^0lgG=)56|Xh$7-x21`#k zKk#)Z!EnveN1rL$1yNhRd8i3hA6EVq_lWENPtJJi44)UrU&T^v(F)9`lhUV)N%NqHc1%KB zV63re95bnIp8dHvq*9~FB)FaQ7m literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_4.png b/data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_4.png new file mode 100755 index 0000000000000000000000000000000000000000..3df5f0713aa0979adfa46ac68f7ff4064415f4e5 GIT binary patch literal 1010 zcmbVLzi-n(6t)BcR1tyLU^=-=`4QXa*iLQ5REeF?2vVXnQZv@EFNxLKXUY z<7N1ku3UnD_Q@^5aFaI&e3Op&)MG@b2XshKJMzY)N4#MF$wyKXgbSmvKj4GTBg?0e zWIIXh_CkY>PkMz86s#*y5JnQ96l3CgJ)4Bbx^seg9y`Hv@6) zKB{FF5JZG~D2sOE)XHpe#%sYm-HG)2%gSEh>}j{lsHZoiGq~LnU}~|QsgMgxd21%&KJrJ!5ix_3*l0{U6=ZM5s7)*wM96Qf-tbK zhU;oYb6l*MO%3CQ*2E3H)v7vXMR8a4g5xZ#X;vya#;Rtz4UC&wUBOyQ(HvZFRUf(p#1r=<^z)8-*DbPR*mSUDcv zfwmIcZoQwK41Zp`c=h_xhiAezZk;?F3WqPg9RK>5LZ7!D{}ip7H`Jq_u>O1nuWn`E2NSn{!J7u{O63*DpHWVRdHWMVSyrbQ6E z37!;B;$IN-B#3zP3x9zZ4vYpYjgrY}r$95>Tk zaoez-hG%-}6uk2f?hGvFS-s2FX`cjgl(Dp*r{%74LLL=NENCTU&0t^nt&Bm z)9?b4B`k{)+*$=IhN>BI4NWc{)Y71DwB5!;3%*Q#z*u64;&3<=hE;*4n}+8kT}jJiGq}gxtEAoki;k| z;u=|JtWEy7ain$D*-MDnCK=sHeW*u&wgf}&ju$En!5iax8bVRLZI}8x5s6vTHF@|W z1Yuxc1zU1eaa^qEbp>NvsbgDhG-{4smE1+O5ZE(sbbjnF8+MtFoiuKg?SF*f+0oQdF!STx69%~Bpg2Nv7I)`yS7;UO_hObVm% z>E-JVjMYNZwL1C7-mkMK&n$AYPw(FguJ+zy`^&-SXXhUMxP5E);NtuF=ih>pQxf<1 W!Q9uM58uoe^VqDfx=-vIcYXuFO+7vU literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_6.png b/data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_6.png new file mode 100755 index 0000000000000000000000000000000000000000..42f924ba51b47d3bdcb3962d55313f0fac57c51c GIT binary patch literal 1024 zcmbVLJ#W)M7`9ZzN2MUdL|HhwL!lzJ&tI*rn#%DdG=h{Wjns@d_9d}e``q)jaXTTz zQZe!i_yhd|3?MN85(66&5;G%f2Shn1abc)H!m@o|&-1(=_r6CP>-Q_OH)jPws5IA5 zn~#_HH+%Ua|K}f3g%5MA-esGl&qhAQf*X<^2F=(X;5PQdgWV5!MG$8CQK!qgt%r6% zV#zNsQXZ$AEeI>CdFlt-n1LQ1M2RDQfAv}fQRs+UMoVd>9v(((hZJufu6KgN?Z67f z)q7wix4A%!nGf=KC&}#G5y!eVpBLM*2*wb$?T8bnx~&c15sHB!Y1Kf15SXR}b;C5_ zU7#vZl@7KSQD}>MdPnJ`4xU7<6N>vM-9d125SXF3 za}R9i78i&y^FbaTCYhDn;!M}#^I}^T!3@F+1!|UVSZWO{9+6w4;n?aSZ()nCY;nR^YRU3+I+dnXiO_u+nx%oe$)^AO^+(^(29*&J?YNo3}*wkFu)IG1}m{kSU^-|*^ZbNbEN>y!WCTc?HYNl5AJkxWP8ZsT- zaZ7GH$(Wx6xU?H_y9=&)Dc5o+_8FlALJrFc*qsnYvI$9n(>K7Ky(kIEG}|h!XC5uW zG9X|sV%a=6;T=PHYnV6Q zS9x3AZllH^|1$b{ePz8aY`!^r(K`QidiG&_{_W+;sv0^Hy>32! F_8YRjHF^L5 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_8.png b/data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_8.png new file mode 100755 index 0000000000000000000000000000000000000000..e98ee221188a3fbb6e14507aac5759814d0f04e8 GIT binary patch literal 1019 zcmbVLJ#W)M7`9YIp;9CS3$Spw10N-}&#@ib)KpH+p%$c+G*UC-*q6j=?KAe3xSbGN z#lX&wfFiLW0V7EK0(NE=1_q>ZPU6B)6$#7seLc_fe%$-+udm&$EL>jTIIiNZq7ED9 z*|%`!H2ddYP=yVbsMDhxWI)GWia9$VeGJ^l8{!W3g5AfT@iNEF4Z?1Z_S*MNpG1OJ zV1ztM7@OmkSMtR3w=e~LJPc!t|Nia+55mCWH`TV(PMUZWuI{CHV{fhN?``=;z^~i^ z%elz}B1}DyN852`<`zHEHQBt_7I`p%&@GFfI@N2hgCD2rmC589n2n{SxbX~*+H$DEw-}w5v7SKisSKE7}o@n4n=4fMxi0gRfec$ zyD|0hYMd>W3J7O@8YVO(F(?$hKG~rb&pe%m5GC#Qk#L;N62(#`=3XK~K@y{=h--q* zXb1ms<5+ao-A%CA!5P^}eRdy%#gfc&ce0@Z$h|JGx?^2852H8xqu2Ro4x>W!sKi za@{ziUhL!2ZpiG;xb+jcW;4YeC25zC?Xm*aM}(4WL=w>4(7^T0Fb>E#yHQ-vG+Kny z@CgoDDT%-&zh-!heOUij+*5AwKRFYbGh$I3e-%r)#VW9v9+f^@95oM)S;wTTHQqlw zP*__nxybJ3U;Dof4_D^SJw2;@{Pgq6&F2+xPv-Xzues-6zxna@!Vqw$E^;qkE`7Ut RFn_yfN7q?HuNse@{RT4aIFSGV literal 0 HcmV?d00001 diff --git a/data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_9.png b/data/resource/icons/Power/battery_text/B03_stat_sys_battery_num_9.png new file mode 100755 index 0000000000000000000000000000000000000000..cdb71632904316cd2e8de1782c4ef2166a32b3fe GIT binary patch literal 1023 zcmbVLJ#W)M7&Z!`P$?2+<3r-)4nRe0pJO}Nim75>(pr#GrIDHu$G$XHYoD<%#OZ{( zRSXOa`~wywBqRnT20DVoFJNb8Wk4$DBrXh9k+5vv*YiB@$Gz|2=Ehoi@!BHCab;&6 zb=bJTzQv0d*gyM<%51nwn?1Tk26XHum}~f?kAV}qJGg^gfAZuDu5(;z5OjOA*M4Yt zBoy2nBV=LB*c?}1&0^Qv#T4}MP7s;=kB^^t5cnp)t+u6hY~x|DzMtT&{f(}-zw7Bf zzj`0kGlL0)n7SYf_oCFuOn$0suz9{M@?Z*~yCy$#s@L8GHc2p0g=)o zHASbiga5d3Dmv{>Vk~xWN=Avt?qjfAkXi1|Hk1RIH^!qRV3*?VA>xff98m|EJUbEm zz&D@*8*){#5mfZ10->cep{2H3HCwMr=$=|=oW^aawyoqIGaBM%pL17>&5wa(-kc7k0>k}e^8MFngQ2_@-}#K7Lt!0qiI^2s>8lV8s) zT7;9}DfU|l3BfeKMsSLKSo>GpGp_$XITM*PVqP476-%+jDlng(ls;RWG!Kqg$0V#Z zO6S%NSX+q>YIL)2{a?q&tEJ1&E-6Q!f8JbqUIq_j{_yygbLGvu4>!)gLJP|KmrLM? XyZ(CR`_hY1DQ`)qxq;qVj}LwW1+O^w literal 0 HcmV?d00001 diff --git a/data/resource/icons/Private mode/B03_private_mode.png b/data/resource/icons/Private mode/B03_private_mode.png new file mode 100755 index 0000000000000000000000000000000000000000..5e3fd6059034b8513e917cffe9d2d1db000ad6b7 GIT binary patch literal 1142 zcmbVMTWHi+7|vR$wzFQU?6Mb>W4eNZlg!C&Cb45XO)@&@)G{5gZ<;1&Iu{q1QMxK5VcCl^!2 zKu1+~*F=a0Ci=?u#E7jrZ1)b(Ro5tihlmC0-l!jG^(;HbtI>75&9h)mg^Xm`d8Y=8 z{XoYd0x~Bi?G%JSQ8*~ciUPL*Aq53KMQO&MRe0v>WH-t*$P=CmVHLjSq3q;^yu4-j8M5grR|T8~O+6HIgWc|)-x z^+wwpy0j?PsDbS<5Ba2EWLbK`Ij*D0s*#3}Snj(a1PSsVRHwSe&oy(YdlVd4t zTFeWQDdZJdrASj!#f+NCtEQowW(M{uO>DuBh~?X;Y1gH87qI4Mv6>zti{P+~@o2LH z`m31WsEPxi4=7;EKG%0}E!rBFXFgg3h3=2Y$%ohjbNSWWCG1OvD2jrb$w-Q9N)TqC zl+Wp=BngTr!Zh`L9_##{obl8dK5mXrnx(l#J1|}@wmuaWhX?s|VnR9^XRn_(=vZAU z7`bx&*-&G4w!3BOi}fuVn8ep`BdA=w^Jsrh`P|T>IaR#r_UtfKS9ClGp_a?IPou+m2lbs literal 0 HcmV?d00001 diff --git a/data/resource/icons/Processing/B03_Call_divert_Sim_1.png b/data/resource/icons/Processing/B03_Call_divert_Sim_1.png new file mode 100644 index 0000000000000000000000000000000000000000..45c9397e74c383417c405f866cfaae4b9ee6de25 GIT binary patch literal 1352 zcmb7EZA=?w9KWuPz>o>kh3O1A4`?OG9u`B4RamH)!p}o=G)w`=L zNWxeKDIYY;vJv$QCd{4Qu3( zNTMhb#L3szP#-~<-dMtdHPbe9yVAxm-nJh*VMBhLmD$fRYBFLu=SQ0h>NRG1thUGZWOWJL~PTTO!SpdVc9B+4$TNj1ZRB@b- z!r+z`o_VO0u4j3g&gb*iyu+%fNgBA_ZiB;aw_pp4HYw{u!6Iv&H3o>ZgeqlqNs&o| zQHU!!-9uqd?}d=bMx|s**Xrc5wv{ZLHo72WX<)U{YSqSwuZ9YTcSd9~b!$zJqW_$~ zFTXZ6nMHIIX-ZB_;3|%HZj;(s$S~ZBfe#Dn1j1De3TX{hH^O25IqbY73u&k%av3D+ zA?TrUIZ5P$EW@&p@p?hf7QnS}Gk}FIx6=n)OaMYyBiIhaT2>Kbp)=s}vCsw}^aBuJ zd_F()x;UrH?&H{i-(SOqWK9?31TsVotW?MPgF9k*zlsE1QO6V|UF)VuO3@W9rDRF} zC`UeZRFXv{uk{$E#@skmh*aryBnDL_LsqlSOZU+aKn}7#zZ-iF0}KEz8?<@t3~)M} zUWb?QQd?N@ebbj=cuf28m`oonq^UR6wW=|jba`5A&!_A)%%LA8-L$~00 z>1A{2rO3@?=`Qj7U%QH5-ML`>qpQh$^|u3WrPp%g3teYV2@i7Q-8pf=)3&kFUYr|V z>;7P{+}QKY?3r81LbPdr#I>47pcZlK6K+?``5j~wROiu_bdC~?OoV?W4^!p+kG*$;oPyOXE#A> z<#S=R?eY0|%=hLq&EFHj-tv)WBcBeXnr8R*n?U8x@k_)52Z*_w^FO}51l}19KUq3^~H8s!Mdtt$93&0B=?eBlHQrLz2-@_SW|0SSY$GLxqF(NZSLaT zrAa$+X?2p(X^Vc@heBlxaf;4j6+vXUMWKq|2kD22SR4q7uvHKZE7OF%r5 z7LzarMS1G^Rp`gCJ(rb{xEYT=!An}26fGMvpUxmOhWUH*8BrRCCZ2#vMGX))KfOZW ziX0%0d!lqS6ND+{*t8CZrw2!*>2ZmZiQXREpXU)l8k!=WPfw@@pAQgQygV9P%M^ic znV91N;;vKi=nx*%bclOMw^O1S2KRbNhV^*8j01PkjEkbt?R7FN@A2|3AHIDNNKKc= z_!tOpYoS?yNSS7ar>I;mN9Nq5rY9+e<2Z}M<#Hkmr!l3PV&175?G*+94M|rrrlP61 z#V97UtQjDXr*}h0XJSe+Wg1m-)!0rJN*k3IGZaJ8l)hzS#aBT^qq`&0>8iD1#^8U> z-;>`MnaV&a1`RE%OQ?!t?K`A)7qSeuW8kBrJ`Pb8!{USiw>F|t{z>G#qKXqhld@^3 znh_8nvROsu!yeY-0jwY}VLF6r!?BD9baTFbrkf1`04fAKfk=y#5f=1^K+x@>832L| z6Jj|ZOAB;A-Oc#ALq3kKU?ZwwimC)HQ46b7v21u(EFaXNXlnY1rcG43X(*+cnvv2n zcyQQ@cO6$$S<4xZTBSzZC{zG-WfIC^T}$IzS?85|=!bw8c>04J@*IR%hUumOEx1_5 z=k^J1ffa~tto*+dMj=lqtIKwDU1bTivNf!pAvCF;La3sm>FA7szdPnI%+?bD!btvl z;;+rk-aYTxZhWx(^4Xft_RYlS*LrSaS-IAJ^TKz{E%?u05dUDs+l8{vp2Rl%i=73B zaLv)T*i=du%HN;$!?#YZD1WZ{Uui#~w-q0#d;6smSNE2#EI5{rTs%-bH4`t^ zW^WyKG?eBSn%laR7vGwE?eu&n`S@(>QXgk)%&mWQ1 z*dJ?4`X{b~Ed!%39O&BY@DAKJQzq-CZqzg_jmFQNoV--C(TT6&AHP%h(nd1jXW)Ym zul#nst~5VW_BAa%A{ZYXj1|}asN>dqZO=9a1`Zd>9W8U0601j3bu-R4e&2t2t-h~d Z!yfzkeAD7NN8I|=MM8t%{r=I}e*r_R$!h=r literal 0 HcmV?d00001 diff --git a/data/resource/icons/Processing/B03_Call_divert_Sim_MMS.png b/data/resource/icons/Processing/B03_Call_divert_Sim_MMS.png new file mode 100644 index 0000000000000000000000000000000000000000..f5c33a5bc16aa7598ab636f909d08a4652523962 GIT binary patch literal 1375 zcmb7EZA=?w96!d(2FU29+Z1uT9U3sSy%DViDIVxoy}%LI*YVY>JQ5+**!DC5II;^khR zm;dkg`@cOm(b@iFO;ueLf*>`~HZ}&o51G%l3ivMk{!+@E=;4IkCHLuhUIhpv$Vq@k zvwRxF051#=UIQ%%QhHI0C-ek&fKJI-J8#<9jjRIE2-4DOD153P=x7q8Mahr-b@_b^ z6$L-m$StTZ>GrG1;E@^AYf@#AIUcm{w16NmV%=n5Zj@ulO&8}N(dJNok z{+|3=d{_Z^3}|vrO~ESmHEfXDT*x$Bi-G2NwI9GLM)&~@tZr}|-2t5!C4PXFQ@JdV z^eF4caye0;BW}{|W=V!2B91VujgKVUtk>rW5?(UQvTTuHBM@rY1&DPKgq!h(JftTW zB8V^hvvrdcm(D#JGL5iiQAoM;=!nhqlDj0SX z4C!zH@j>@*Au7%#Cu(Yd=jI!spDR)kE_{{kKzp2F|xN<*q(B5Lm9hw(|vSO2IAF zJ5Kz-M-#ip_w9d-?)+-`z(W1XUhcV*Wv&;Gs9Wl8esrqi=Kk`Y>Pp|fJ#T!t`_>~F z@yd?zUlicLtV@%h?PSm^PY17G3VblNa_JNMGwAiQLS3PI*O%Tyh3@3l*%@QHrgvze zZ0_U0^20ATA4iwQN+xUnJrS$A|GaJ6(%8gP&z79lpGRg~C%Lcx*z@D)#lWY>9!SS$ ne%@+%d*1SE{lN>nMv+qF@_qBo3*G0+&0k(L+|IrkJaqIw<%rN{ literal 0 HcmV?d00001 diff --git a/data/resource/icons/Processing/B03_Call_divert_Sim_SMS.png b/data/resource/icons/Processing/B03_Call_divert_Sim_SMS.png new file mode 100644 index 0000000000000000000000000000000000000000..cae35ff011acd8d53f40aefb89ee59d151c54af3 GIT binary patch literal 1375 zcmb7EeP|nH9KINvW!>sxrYqf4&RfTvF1cKCcWG|T(p)ZSW0zXez+#!qOYUuRG`UOf zF6LSbZpDps>p-n;oeWn{u?o(0;s*|?h3FW_n1~?a5MwJ0{}@G(;zsLxUDNfCQSi8r z_v80G&+qHKk1)!AE<4C&*0;OpuK~gkL>_y!!!i~G&O*;sZp=ieKMOQ8iswqMb z6Xzl;T5#saGMbiWaJ*P7I*T5stn}i9&*w8Z+-?W7aHs>4#_JAA-C1SefSOjsye7&L zYB2ICxuE$m=;_@Ma{0K}o6*!&a!FlD7EBwi^Ldni$9fJPuU3prm0Hdv>moT3^U8T#12+@k$?nRgCai6)bPWV$5^Uc~RoCoSZJ? zfTTq^KUOG+0u!M~isHy%kcha#ur@xDptvTVmnE9WFvoFKg0(=XsfsTwb(fgx&O#d}zKT`Ut)0I$hPLYA}DZtBd)nyhBz zJR0hv(WefIk{}n=Jw~Y^Hw={niue)`B8r?tm$S}@_tE!;!Ys|vGz+~ClQ3=ALC?Y-MA(dWPU+^%MdL7EOU?Oq=?OL=aOX$^{ep zFR43AO9Au8rmg13znS=A7PbBL@cZ^hb_*eTps;-XxNF?mUl0XZCFI6%ulwDAJqeAw+)$6uN>+h z{(dC#E)Y(~0TE+ppSBwk*`x_Pu-ic=!IGsa} mhQ@0GlQ+j^e&{w?UC4WL$KGRva!~N-)4I+TNohtG=iJdgv=_L$a(AVL z%q-z0>X;j9#xhy57u~*?714#5RB^lvXVmb4Z7d9DKh{UZ3i7?_~UvpyxCjeM|@=v`$x277KI!I;dhbFvyEGd^YhF zj`0B-UQN46ci0X?{Pt!URy9|6{mpfLYXC1R#Y$ofA`qa;VKJdzRG63zU*cuZSX(A= zY{^8ev*8b%^0_N9yCg%5))y7}Ns7WuCOu`OO(v=UGmw;lAkl3qq>K!0Vhm<%`NEN! z9H?bHz`3l2W;Q&es$qs8qS2^6TBMicAVFEJR*l18C`1;8N|UH^u|iSVnq&Y_@ymQz z4Ol2u!j$ZRAq%+RF;#4(niF%FhS`_LSC}b;!C33?$r^3uwt#K z9{8X0kK|XpO<_oQpdv+NKdNHw)`z547t#!uV_@8zTnAAVom{;Fmp0sP<`v{TFLL!j z@<#+HsxDx|BN0BpIB6qI10%~)PSSyDV>MDVuvpFIl*Q-(03-<>1|lteK*N$nfVNU3 z1%RER97cIfYO}MU&AP1M1o-oi3%( z1z2xv;=5}-FSoMKe*K4SX21joFP_;)eol6`q<;WD;V=BQJ}vQDLH^*+izywxVY*{Y zYU===meb;*wpDEcmLH!uG51U3XivlYZ`@41(U2IuJE=rROU`=Fjnkcfy*a(mnYQE0 ztm7l8U3=Q*FTWbQeEP6_D}7+vFn@i7o_L|@_o2@Yjc0o<9-WT&_l7dx9Xom{yEYLk zJ?R^2npDqku5LVpf7AT-rcrJ^4 z@6_ufW5MyKb1xNS-TdLt!w2Yz%)F6M>XB=ez3uydVlN!4YP(e+Bz%46;|F`E?vuHF z18aB7cS~>Vs?PoXsqR^4+vJ&p%&vR<>A}W-KHA&mx?>KkBP>^h&4yv~)ZE^a@ot|Z z`@_FGjdwiz0)alKAp(uFV1{C qfAnf`|Hko|;`E%Ejsy8+kFD3uXFR`2cE597`$f7O6(C-|ujOC=3;~h= literal 0 HcmV?d00001 diff --git a/data/resource/icons/Processing/B03_Call_divert_Sim_heart.png b/data/resource/icons/Processing/B03_Call_divert_Sim_heart.png new file mode 100644 index 0000000000000000000000000000000000000000..43493fa48f4c726d86a86872ea749320c2b7b317 GIT binary patch literal 1406 zcmb7EZA=?w9KQ}ItjN}&)94^OZzj5h_ImC0+FmGJ+q;eii(SD`U>dG>4{(9rb$7>F z*vMdk*e%g)L@`-N*s_?+`LZ#iGttE9nkc$`&>)MGPoPWYJ}|#QLd547MLsMfUhd_2 z`Tu^u|J!q?V@-!DEH79P1gVHLuyOc(-gwH)@ST4!CKwZ)OX$r?m!9EOfCNM(3D8K2 z?*?(eivvezKrMn4U6ooAdLsHNEhs5FZ`jzgsWe0*NNs&K%?rIiN0XpilKt4ySKnZ$ zB>J&dchnJ0hd__iFsOp&!KM~ruvhSjSbZH@o24N^3g|qVP4&qdo%Lhuyfhpe%Q%Lv zo9MlM?6FgcXbcT0DnQ+KmrZaG1WHkMf^<_9QG+@igcEnbo3ark?WSm_2i>?ZsHTct zbes)uXu+8u>(TWzjpLb2#-4H66}1~Dd_JGS;dI)dg-sifbv|p8wfzMK7HEPhrFBV> zQG=0BD*d`2gPuMPA(f6x-95UtNiJ&}$%1LavwRvS><(OAw=v=?prX<35vkOswWi0x zf6hOVUuzji13V5irC$|b6}$Ftk=kC!Fx-fNj`C_RfK?3heHvKbh(_txp!1T<_pyr5 zp8~QTVf|Qtza-LOH|ch>WFSC<9UQEUk0jiz*XIcmUXo*3wm`5I2(|2@f%S$6!a%Vs z9B^cSa)f;@j&M>QisL-t0yZLRIxh>r5H+yUCYB9vi={&<;B`f9QIx(yH^q7sUD0}! zG#YBA&{tX|SyVFG0i)EA8-~gPRXPU5u&Sic^{ms<6ZAQjV%@=z4|>jWBtdu`tRvtg z36IMYa0SQ!wt*G@cfxS!32t=RmaZ!-!B#egn`a14HcugtVbN50#(dx6jR<0b=?b)D z?;d*^6a(Il3dAjXBfR-vS4E-NADKL{tDiz zVJ3IwyN8#5Ke-TaSzSqD_pQpqXx-mawU0`3)z{iiRUNs_d~M0ynaNFEWvZUamzI^Z zlIMS#L#Cg#x&*D-dUE*6aZ|p_JKI@&H}F#Vu|=ZlxABL}#|=#Nd?khcGbWz)zxXyY zU!D)Lmxa#Ji8rn@t7QkCSs7k-eXgw@CyySkyuDm}rk$K0xigM4C-y~ZPZu|4r*rR_ zrc1w={dHvG{@#(qu2ysCyDx7x_I=oB%`J_eU9qEW*OA=f$nwE=-!$*}{`}(W7iY#3 z$Y-PFKX$$K%lr=$7oIzN~~8k6YI>ZE7>xOtZ zA@;&36y?FAGq4`R3a=^cF*6oEYgYxG#%osgSJafio)G)2gR^%H&u(foRo`nqT6k!7>;#wt~z|}B9NLc z_i#}VTGK)^9}zdrBuA2|RLYT}9h%-tQeLmu;&8d_$ii+6s-~E>t42+p0YF32m87X? zDsC}~-P(ZZBao-hLr5f}N^jgW*2z_4EmHcu z{LlFp@*C}gNk~Sap$+H~s$x&g2C2=3EW@=JxQM9tK~%+%*l)nqjYx#skDOOju^(vC zKmw{}82E^R0Y&CQEW@&Z5d@=OP-s&u7to<-YI?h-_2;{(HLjVO z5!aG|mgUgZaP!%I1J?)pe^ws^8Dgg+|2Z|5(J+%0N- z?7vydU#Q6SW|n?GabKWqbT_r_X5|6A;jfGJf0kyeuXmoTdT*BhzC3$pCVTN3U-fdX zw5+&;IsenI*yQUrS~99_Co)%#7vy?8b6rJuh22|@J)o+78+*cEZQ`pJD&6=$r{q!J zTOacaTXKGIS?U@&claxQxoq!i&oWE&*T(X3=IDXS*`=b>hnR)oJ7XmO{;qKSXi;-| zGJCdQvh>E>{P4L)Zw|*QI!XdRemm9NKi+K1E{>gf=D5`PbX#`2pzN4B|KQ*kGh?x- zj4V`qex&JkWlS$QdwAdQ5@lPtB~HJxyZQ9bvvK~$$fxD=Yxz5WEKN{91u%aE<^sYSkk+Xwtz4FT_^tq!baHd literal 0 HcmV?d00001 diff --git a/data/resource/icons/Processing/B03_Call_divert_Sim_office.png b/data/resource/icons/Processing/B03_Call_divert_Sim_office.png new file mode 100644 index 0000000000000000000000000000000000000000..c0568223e130d65c6856d7d8ec205e58168e6af3 GIT binary patch literal 1380 zcmb7EZA=?w9KV7=UIYtfC^N|A>c&jkUa!47dY2YBdhJ%R3=7G+%onbA5A6+lSMRR0 zutYixri$BeUvv{4nPgcs&MYp`WFMx`nP9SHAB>5bWjGh(%ZH7aMV9I2bBrP%77{P_ z^1S?izu*7uxi@-ycGgyJtws=}HoS|E!f%uLR93)u@wZ9QoEX8F(Wed?SwRB`C#i9O zhEqZUM1dfUzOo2>2vYv3+#fSyk>^-ZO*sYA#+gf{AsRt^9l5k14gmv=gM_U3u^Z58l+)u7T?B#Bw38qynkMY1+eNr>7rbc)L9!Ihy4%pT3xjH! zG{{Ez(3%#U`LU#7q*)x#X0y($$Ej)woM0Hn>Dh}EVI8b)L?Y~N=)9~5!@MeH zQa~}nydTSCWQh$?Bt`Kg#}Oe{5Y~nv35xeJZC!+y4Dvi*BG?FoT22XKg9JxX1nnYt zK0pvblA$RVPmo<6cYyYKnLr5}R&+y9L|}@VSa}^wg*L^q0SyR-s`abtaH*Smld7TW zNi~fI`e<~=9$Asptp1EyYRC;k<$)%T04b!YDRedKto$H-p602p00TYegCs$CUA&8P zlSG@Rjq`9Mhpl0y|D7-#dV-r>wxR1vOR$yA;rbbZll4;w6j(G3p0VZYjaLxF(jDfx z{@f4ozwh1aDF4LrSb6i8v!7o_t$);iIQ{m7_coG|Dy=t8e%sK9{&Eq!ixh6>SK6!z zWZ5^fJ#Xh0?42`p#YBGP$MI{N$Lfg_k1jMkkG3zL@ZEg4&|JB9{*mIH#dAwF);r>7 z$d#i>^3YH|RFSX46{t|Mw$ysyR!4#yg6yNK%eOhy2OV#Pu_RUumFHGCdw$9ZT z4jhaXDl<2qw$~JoOgA*|kY7DDa(Mj6cIUGbO(!}TOKo=Po7TUkCqABhcOV}hUTU!( z7?@hAJ4arvENWl4pRjayE^VW`A3C_=tQ!5f?C7>%8~?OT+1{C-%`GF>p5(utY;Sn4 zW$WXv;{)GctZ2j>Pat<>*F-#WGT*3``I s)5>D2y<$B7X5S0{)SdaRx-)McyYtJ~01#;b0GcrfXp0U*ucTc>n+a literal 0 HcmV?d00001 diff --git a/data/resource/icons/Processing/B03_Call_divert_Sim_phone.png b/data/resource/icons/Processing/B03_Call_divert_Sim_phone.png new file mode 100644 index 0000000000000000000000000000000000000000..cf1e69f7ef012ce46fbf7f6322645058c4fb5e34 GIT binary patch literal 1423 zcmb7EeM}Q)9KO<7KGh0jL~+~gfT06=z4rQb()H`EP+gIfCgS22uk8z5pm*i&Y7gcz zirECkFoR*Z7{x8dnQUV&(=9O>Gijn`A2C@>oS9oz(Ph~ZV$2r)V6gX)GX5|myWGe7 zzV~~c=lAu#!>uh%>x;G&AqcWQ&`gKmceDBw=-@l^`&&_UA~WrBo6sSrSP>wem=FPI zAkKDz5MX0{y*EH3f@r6>aJ$?de3^<0aRaN`7?gMdq7kIgr6kyBH;~Z?=;U}OHhX0n zL%Em}+hYkDg9#t#;+p$K(AM7)j`nv)9Wl)H656OxkRT3Z7FFUsyhJHZY>AhGV|5wF z&?OVO+lf7Psy*0>`UDZ67K6DVY9t8MYBdm~#cCz$QInA{;YN5{8wirJSSgbYUA{1= zCdN9b5ba;qf-@)9CCdp4$5W}4A!RlQVkb^G91fMkWNLsG4N@O3vq}RmRpl6HAVozk zA#(zcs*G$zNXkwOdipqocp}7gcFEETIWH|I3#JWM*aS`(jJUXDqsEs*1%qoN;_(%0 zNe+SkoPQ#}6z)p^JOm^mDMn!xJE~Smtu3S)F2_IxS+N_yD*D+T2`v2x2C3c9d5&j$ zXd#-616~f$PAr+^VwB%PS}Zi_@eqC^18d_T2@7p^*t~?DWN4bs5v&G6EkjJj`Wy^n zvlt1Q_7Ma_+G*Nh_xotG$-$TzhRk6Dyd<-H6sV#qmRrG+{xz|bPXw$ih+#qK$#qj} zmmmvLmykexZB}&K9*&O*DQUY}YRC;krGdyD05QKP#L=a!Q`{5u8QMx)ygmo?oMuRZ zup4Qk$3zk~v(01nkREIq8~fi0!=Wd*+GVS{F1G|*SskwIAvjstg@A`e6X71Kd$DR7 zK{N*fv?r|GiOer9y0jl_%CygXJ^959s{dotxzh65Sazd(zHsPn!39u_W%mwDR2-et zq7Ss$U)-lOnMchJ3ybyVwGTI=3xA(cZkA+5ZXX;pphcP5g|Ykv1x|?ZMvzfqUP$z?#WXFZ|_LlAA7y|>MgJL`)j%d z&Bgr7L$mH(kB+(P57!+!yEiYixb?gD-@RSG>8b3M>X~E3t#6>kAEoV;N4I?XEsa**2Wn>M1gmp+6t~ruIbnU)Ot0Wv}r6 zr2W*9nvw8__dL4!brBc(0LlL5ZY�rYDZScMCV`r}E($`Bh1#@|~IszmARGEX~s` oxa+9a7w(@QuQ~L=r9Az9WM6UhbHc`gS@nnvFfH^a-u;9B0_;cRIsgCw literal 0 HcmV?d00001 diff --git a/data/resource/icons/Processing/B03_Processing_01.png b/data/resource/icons/Processing/B03_Processing_01.png index 27a864b8bd857a4b108c9a4ac4f7168701033a21..46120f7482542663a91ec81de571aedf848df841 100755 GIT binary patch literal 1376 zcmb7ETWs4@7qha@x3UY-775 zttMzwm;!^T-NRmZX~iTaw2OqO_5foljYMD*7jaQRLPC82Q3*=L3!sW}+%;Vvrb<}8 zoXh`x-+w!Pt+%IZ|Gp>oVHmbQ*3Bo-_mKJ2J%HYoUti6b6GKQDeafIw5H*N}vPv3) zSY8~02`FaAU-%RTFwAycN~Vld`~;U#@*dH&@f7naLStBj&Exj?}d5 zAeZ2y+gfNA#B+wBas*K*6g-7CkD?6`6w9(Ehu7;y7H)l9HpHS^)|+Y!Jk&Fqq#BYU z1CvoqD`Q3wN1omdA+IK+p`4-bkjwgZvQXNHqNoy-ha|Ku8#BHdDjwe(kqY|J zbN;^kdU9NaL;~u{n3h3R9BkSpwYQLIxE%u*7qtxH^O7u%@=9hb z4`n092l25nDa%C}nqhc46r!S}fNI0i6vMZ({xH=}3p~%)2zCRJmM4p_EK7#{JR7F` zf}f%Unx*&%8>V@o%}=u=N!741SvN#E15HsAE8W9}_QY}#4T^@MB^70~)=j-R#ZdH| zqJl`D54Z*-Ija=(BW9@)Hwu-9n)D*fMl~f5wzAGi_t7U=n)OFmUZ9Z&G>Thjr+8Li zysXeh`Y9UU#%BL_!U*IEVRqTBuB$DfRyKz_X9!JpP9c<0(KK|%2muB$%+eL(L&@R~ z>5a|J4%=1BLEF>VLyrtMPp0gzf3^6e>!qnLuxMb>;Y~WqY+0=~fRAhoGr8lPXK&9P zvU-2A9oU>YJBfYsZ1sH6y70zaOSN%hYIq_9+WTiphnH~Uc&F#yFDprE=AB z;Lpy#2WF_+KM>$>&bXTA?y zx%lBcxps4L$XS18?#l}el}C>*uY7DN|6*Hz*%f!mb&W@>X=mqC4GZ?4KbyYP*uUI5 zYg>67eEwkCae3JWPSsTomg{;fXD&|SSM25KS?^=6-%i?B9L*JH)Ed5FA6$GG{BB>d zHAgw^)Y7oi_2wrQ>bdtf*idv~zU00>|IW3g-dO7SO1R{xuCCP=kDR#i&nq(1^yBJZ e^WQdG>qzX}VeQ}O9sk?rKQAWq@YlkpOaB2`2FRiS literal 3388 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 b$6Wg`;cfE=eW|6=`Qycf9{#<~fyw^>>;S@k literal 3363 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 diff --git a/data/resource/icons/Processing/B03_Processing_03.png b/data/resource/icons/Processing/B03_Processing_03.png index 0e338e98ce4916e1df55cdc6d20223b27d3ca900..9851f6ee3a47d0ab2b02fd31a798aa2724179f3f 100755 GIT binary patch literal 1322 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 diff --git a/data/resource/icons/Processing/B03_Processing_04.png b/data/resource/icons/Processing/B03_Processing_04.png index d7406642932d601b81b5a2ac0e4290c3d10f23b4..e8b7c700c20c834a856f99a5c882b010069ab445 100755 GIT binary patch literal 1379 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 WV%zqKDaI}U0000^!l0U* z>SrQsU|9>!yjVt6^9+s`i$z<}X_MqMPS7;1b2uDUXkk@`M3vX9qOyC1fdxuZ7V@ef ziKx!VC!~Vv#h|ATL&)VLLOP==tK_1xoGh3&T;uaNVYB0M)kcqR1r-XdkI3a#trax_ z9y$M5ekD4T2Y3W1QbA6_D)#SQBelMeZnzu+6XNAT0IL|_vkItgghI@7(0M`Rv#gXX zhZc6SjTl4DtRgs%MhbjyHOB{?cd*_CeU%}A=G zWTZUW-RDC0#{@AY6_qx<)Q}s7$^uz922uf8%AwV)Gs0u^?KDZdyJ?owy(eMZoQGg( zj&jhP)9xlnY#E#S-wDH^C%E2aYr1Y_3AVC6Ts=c@vU&=E2#Y4eGj=b$EsP+BBSF?5 z)qY7lSX$~d%@`U@JCVAr1A9tw^W+b6PwziI@;wshn6o&dmT`JKU)h3wX}UO-IpiDr zZhE`Xal_QGG%{8~erm0p){Gb5nBH4yelRjH>_2= zTcw&lPs8n#i{>ZWhYg`Un=8Rxba=<~U;EIzrbP`sT$=PEixa*tkoUg6W4QU6g2Yb0 zYA)CN&TTADEL^C0;pZ*oe>2Y^lQWT&JoQ-O8+))b(>E$WfL2w{Y7f-xu(Y=M%<~=R-udcB5A8F4*nV|jliU((oo(^GS=V&N__yV} z=hBJ8&7VviHO$^WV0yXs+RVZCkIeUc#vIR36Nqs$l78yg{H+i8kM#dwkPEZtyN-_j E2Pz27d;kCd literal 3412 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 diff --git a/data/resource/icons/Processing/B03_Processing_06.png b/data/resource/icons/Processing/B03_Processing_06.png index fd960df47cf3dbdf17b6d4b7668cfbfe23ae8484..90f8d6bec5a887fd9b77ffc97fee8a588cda8269 100755 GIT binary patch literal 1383 zcmb7EZA=?w9KRMA1j2@3#JLxr9c(f~dw1oo?Vastxff|hk(4g$!V-7wJa8MkcPxC@yqLStB*8MzcIjtGz`74i@|4sp43QRq*a(AW+~CK?YhfC}hSplPd)A4PFk7?PUT7 z8z$CR5P#rQB02zg-GG2`cezp|MFFqZP0@_kOLYPdNqGno-Ch?(bBves_`v3cBQ--A z=3;`hsfA`iJZ)K7jv(^+ygT3J){PN@Vp-Pa@OWIv!evfsmRxXYW?O|pfM&{2vzDrB zz-E+_dd>>s$kPWQWU?`JByE{nC*X%ElN(Rg~m$6K-roqudL~c~z6g1wEC^ zK+TE>K|GgJ6;5Jkh7ss+n36~l)rO@hM)0$~9?DOPf*@1~wgZutTR~XA#7aC#Nt93Y zQItsgS)P$dT9SB*6-dTg!A3OGlC>1HMQyD55G(G8<#+?imTts#eZ10518LpT&9t5c z{GbQX_5@ssIi3C8$V-o&g(K=hR2&lPt~pcvcW;(jF(Z1vE}8wKZ;^Ye#So>-e6Erx;r#N5om>$r71r}qL)txfWseNz{fmTKF* zD^4D~js5;FPaXSv`eL$XXw-Rg5UgSj{MXqtmuEiu@CWQ>d+Uksr|^(G*-^UPe7>%& zW&RoP@rC*KCYqYiM9Nq)z9lg=j>l!MC=z9dd|%J2Lr&vR{#J2 literal 3413 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 diff --git a/data/resource/icons/Processing/B03_Processing_07.png b/data/resource/icons/Processing/B03_Processing_07.png index 4d297383a700dcbb1ceb644671655c3139d2f78c..106b0d081bce061407e56cf261ef30297ff4fae0 100755 GIT binary patch literal 1394 zcmb7EZA=?w96#oSfm^Igj6h6w+;GL0_ImC0+B;jY^tp~MD`SNKx-D|tJ9$O>sFP(V$z%@AkiZ8&i3Z;i10Qt8M8|@QVFaIJl<{F9@p3QE z%m4TL{okJJtEt|(rJ%R~!>}#kDiB5ABJBvtE~8mzeYw0 zT$cPqgFE7gB!Vy|S9NKywyU~M>}nHPiKr;YeQ6F6#GxVJ>3F-Mb7?=Z%*&y%xl9uH zvWd~=C+<7d7^%U7ss?el-DMLU6ooU4oub_gL%o1I9h8%FpqsH#H0NeGrw3oT2&AS- zEnF0YR|Y-7fkMMWa(BjWK@Yu$*# z2hKl~U$5&-Kr#w-HK~cHiY?pMNUbkq8m`2^MFg!4qAG@jb{#HnL?YZCi%&+U*8(AV7s2JgN;#Q*Pj8J(ZM~<^cd%g0(=TWtR}v3o2>K;bbWf z@1ZE3W}WU3V7;t^@wj;xV6)h;q8oxDLQ~Yl$`7#Kb+KGfgMy)Ib*kE)?WUTTYN&cl zP2j;=1}|%n6-iC$&zhx1+$dB4HMs*yAx(|r%US2-hv++4n)L)(z|+VB8pX|fDZuh> zC(FAW9*QPbu+sld7>PU~%`RKhb=f7<%I0wO457*DDTE3tnug98^Jv*HhUL5*27$Wt zk5liQS2hGJJ>B?8tHo;RJ%araex>j0b0ycGnyROdY&_FsdD8b~cr1S`f8$I>WbU2X zJoM8qIngTXzZ>!n-Lbh2jnE%`_}abXr^S!=4ma=KWpwxZCxZEBy0srJ_WWM9Lo0P| z`YzKjb8Px*DH8|`Tzctf-{0Xs@sZ8XKT+6x;Oy)hResU?&qB%V-2SJ(og28c^YBbp zWk2!$)x~K`-u}DN(#5e~=ifX%yO=p00?+K)_m=NODV+Z-dBEb@QCtR+72L#cRiA%6 zIiES4$J7_>J+aVPJ_zhLi$FeD?2T>9OzlmV4_#1uZxETvJ7cFtfA)pc0$#n4>1gVi z-8cN)tJg9w-o05`da$@d^gcFWz1BF}ko)@g*SFpnKR#D@@(ahit>4@Vk1K`yOER-V z)Aj0=$=jESw+DKc=FWx)KJ}h;kH2VJ$N19VD6r<_VjW*y*?M_l=mYaF80M?NCzVY{ F{{uME;|%}+ literal 3391 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 V#ix&L2$cW;002ovPDHLkV1i@@PW1o) diff --git a/data/resource/icons/Processing/B03_Processing_08.png b/data/resource/icons/Processing/B03_Processing_08.png index 2426f8c12751269184c735603715915d29b894a1..a14a1d899c17924afa173732dae1b1eac7ea4b0a 100755 GIT binary patch literal 1415 zcmb7EdrTX39KVT>jX`t@n299kEyJp}@M#N>3XiUro%Z&bxQN|w&iI;o) z9^cRB^L_npe?wqvVgBR!2!a&)>zE+?t~Z|5dGI}Xqgya0IvdeLN|T=ERe*RzB??e~ zl8=EP;KjCO>bW463PO z6CGrHi&}8z#^So3qH#Q(PMgywLx}Ya6l*4A2BsO6ig! zqXr`%Ra$j720gtSLNXPUVsTwtBA2zrWWluI89s#*W(%$^*ckC;Q5?52BAHyW*7P8_ z=lp&7wQySs;6b1%t*QX4*tB7p)XGAJ;bIIl$E(c%R?){NG_bJ2ar8Fmyd?7pMiE+* zK-T??8*6QqMA~O3?RJLrcnF_`g|(qb!p^uTXD#6(S%zV<1j~U?%Pc}HwD2+{X(ODh zlOR}NKKd5utkX*|ED1dzVce{XU?|pZ zrC6KANs!ngR{Y-y!=Wd*(PhiJF1rL<*%&UJAvjq&g+PWyQ{fp44fFdDWR>h^JmJhw z7Y>XCay&)d$2c}O%Cfl+5d9Bka;o!&yGDqaHCNYV9zE31$)FEEy=QbZayFm&s{EV5 zU+dMuvfl!a#m{o5|9-0K)-Oi~tE%EZU%K;g;ddp8fxo^js;`R|Klknv1&_?A0eqq~ zvZ?bukAEVuZtbp#vNqO#8R6|u_Z6J`@vX`$mi}&D{Qlb7Q`0YB-akBdedx@#t>Wh2cl72u zE2jw8vt7F{3Abl^>L&wl?)YKN^P(u6lFR1$dM7`*W;(dnZ3%Uq80dMey6Lp@dT-qk zZF)#4IbWfV^pF&G{2AM5DbBF7pzJa=9ynAfCGm5=%bMDph^NnHVkCvgf!mckq z_;9@B<~s#VQ}LWt^Sh6~-cEJ@Ga9Mb*guGCOzo3LJ1*YZG9~*;UGo=*TAI^${%zlQ byJ#oUSln`W^%3^6@oV(60p?`w&OQGDTaN2x literal 3425 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 S-api1{SiZam^)rsfABy5IO|~m literal 3428 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 bX5T~EhR^3fv@$&~uKyT4Y&FwgwZG#(09)~F literal 3401 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 T7rT3h?LT6GFXK*@MECp$(nRsU literal 3408 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 Z6}RL^fi(W`V=tJ$#t2u%4hEWX{{al+?`r@6 literal 3423 zcmV-l4WROgP)KLZ*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} z0007tNklI@YKv z2sjWBU~s^|z`#;U#_DQ1Yp=hq0UgPTEqiBQW@dM0XLY$;xMqpCa*1acp8=^nx4)J1 zTLR74305Oq90O~)(w=Wq;2!u1dTHq{cfES6iO1*n0V_P{m_X)5Q$YKiMR!!1M4V-$Ee{k-<$(Y2@ zpNOu(fNKM;5oPB9%YSt4zW`4Xzqy(>7x-exD$c|O8t!1Y(vltU!+E}O;w_c;+BgR* zCL@nkw}wlf0^!=#+sa-|TnS8LxH}F3+^AS-fL{amFW0?ajrSI0B6D{F#>Pjd0hViH zDpwZ719>ux6L$fw)dyAJg78^y-?P`9C46+2>IBpZhRQ>adoeuZWr$P^q$>7`fpEE6 z{riA1IzOkb7bEq;m6s9LbKUzGlFB@DWg&p&E4UX`p8drVb!3%#1mIBj`Tz;B;21eL z?mbP=lg(98Yk4nLd|cv8Qq7>RoC&V90Cg%$cs)tSSTOsCfYr4D-i83y3NkSUE+JO_ zuYI|=Fsh5CWz)qF_2k8DVaQEi{*R2Z{%jNg=|T%5H>#(mucEeUwC&8BdJMc(I%})E zi#%uDqw#NdGg&eP?u>o*XdNrMdNUi~&4gp8PiJm;p@Y0K4PCs_UO@=uiC0|11ix&T#PTL1t6002ovPDHLkV1kUA BVo3l1 diff --git a/data/resource/icons/Processing/B03_Processing_13.png b/data/resource/icons/Processing/B03_Processing_13.png index fcb3049b1a7de5ce6aeb1782fc19f2eb8c508c2c..99b7ba86445d3d4528353b186451aed042e2fe73 100755 GIT binary patch literal 1402 zcmb7EZD<>19KW%cO%&Q>{G!7ZPBu|rTle>6# zF=@fs%~tz@qk>crKhzIO-I#lU&7v|psfeJ+WQh2wmVW7{4W@$*AwJhNT|bP1$Gto+ z|KIQTe|v5=Jn(W|&5;@eLFz*NYy^JWjK^99-)mdb31gyjF?~=O(F>vq5PwpM12mKs zQy>DwBS2H~Y64bqq%!9s@NZVZeds$&3Fkry)>*x3*S=2hstB#RkVN#wIY z)(GO`$;$F zCP|J8cszv1@9g4StSjIq-DPY@)^t%$07KNkN>8x#fmkM}0#R4gsG?-b-4sqMx}v3( z92y*Sp&dh#oKyWPxJe4z#U}rE!f@ybZgknct}8FWRyKxvX9!OAP9czC(NuWGwn{JFLlBb~V*SzL zpYeZ7C12%bQ&Z(Jq_$!7#AM7ocjxxejwTt;?lp7kb<5jJAD>ybUd$|8-upC8yj8fr zZEj|n@WWR07IMRSlt4Bf^gq)yb=q1nwD8V_>Un&)cQs|Q{vF)n(OdJMpRo)zF80lB zcAGn`Nc>RxIiauibk#E5_(x}he{QqY9BKZ!bvishyl#p5u8+rT)3}QDDSIn;{@~zuI1)>fh=G9a+KlMR1 z(OB;~75>dLi_llZ8)o|bOZBhSE&VuMbMxDGpFdexpq^bAZut69_te}({FJzf1|DuV z#XFCG*4yB}boc7-C+{w|i5FIaqrdcj#hgt$XOW7-$mL_1m5%&BuN!~E5I4Yn85lnQ EA2G1X0RR91 literal 3427 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 D>9pDM literal 3400 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 vWpSg;=J>k>T=SuC%BX00000NkvXXu0mjfnha@7 diff --git a/data/resource/icons/Processing/B03_Processing_16.png b/data/resource/icons/Processing/B03_Processing_16.png index 367fd5cd5f6720da803912d87c82861a8ee77418..947c4f926d21bf4499947d16a1ce33ace7530225 100755 GIT binary patch literal 1377 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 R`Zxdp002ovPDHLkV1mikRlfiL diff --git a/data/resource/icons/Processing/B03_Processing_17.png b/data/resource/icons/Processing/B03_Processing_17.png index 2f6519889173308b683c6613cc839040ae4dc2d7..d9702bf2f67e318125421781e90a696d3499e96a 100755 GIT binary patch literal 1375 zcmb7EZEVzJ94~>9+vy0K+oJeF*DX_C?s~noch|BTyR9v|#LnfmY;$O&*FL+ecYU$# zaoqx_%Pj%65Hv9uAQ%jBNDNB+B3TUXA_hOmjGBFb#Fse{MEZcSdm zP(_YneUuOojCPP#I)+WqJ>1zN4QC`;#XWaiZ7)F9XN!GLE4O zCUz!@-E*p6=tA3d6QGp8$tMK}0u6=y1WAQL#8xyIAcA-R-XR}BGE|5OhS9|fgKDNc z$Rt>PQ47wZSlYG?2FLUHyg%RM*Uc18&@}CG1cN?k;j@M`TXcMyRbOIYfhC!WVJo_Z zx{P8{&)HE7dU`Je)kr9*v~4YsYt~}2VA^m;G;qQnz|934H@*@|5LQO0>XNl(C%}E@ zAINX@3>g4V087uA60G82{W7VQgv*boHfIq1BiiCI>caw^d5 zI2*-sIYnl8iliu(jKv5(z`@$kBtfweI^0G?NRDOM62WpH)bh&^8{%W(ARpm~Fc&5W zj-76L7Hm{ zgb5N`#LE9WVL0>zce`v^*OiuFE4#y`GXy6~rx0kcXeK;k!JR`v1X;z$*;tQr<-6W( z-eT+e7cUlz7)qrtS4T(s=GUCKSnoXY&{XeK5gQ%lykph1wQa{=e|r38!(`=n zWFD=Xy!F*({oBn4i+iqKd2iKC=Ys>Dx?NYxE}iiV)clnE=IyU<8*_X|-F07aZtqy3 z+$=s>>G^TLJ^L^*vA_Bgsr#BIwYBYTqdfLeN@{+oe4FR*xlrAo^ZO2;%xsx(PJGta zx^v@^w~U6_V>9amz3B=E6B?@Hms_&s--lbT^8@b`-o3L|^|XCa2-N)0TTq{Gy0$La zIPjWtde5(?HkKbdb147INZFv%QaMwIR$bulHk>^-yMeNbRj1BR?^9dXu6yH&r;dzL zr>oBQm(9QbY0crr-xEJm!kwd=-#ocvoErP>g~!j$WOjEZGPSvvJ(q6Zn4U1Czv5C@ ilJft&`fpWq&7;Uvi~jNS+#g%qUtXN+WY4zk8u<^_c+|E4 literal 3361 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 diff --git a/data/resource/icons/Processing/B03_Processing_18.png b/data/resource/icons/Processing/B03_Processing_18.png index 8afdef284efda903f0e2f384ce923b97d26da25c..b3e81ab9c445d8c384cddc485e16ec144f2d5da7 100755 GIT binary patch literal 1322 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 literal 3391 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 V*K1=f4aEQe002ovPDHLkV1iopNUHz< diff --git a/data/resource/icons/Processing/B03_Processing_20.png b/data/resource/icons/Processing/B03_Processing_20.png index ec59fcefbb2679fc536c2af08488bbf2a218be28..2bf4f2d716497e833d89f2042da7f9d4a1e2aa52 100755 GIT binary patch literal 1389 zcmb7EZA=?w9KW`}U=G)*nZZRo4~ZC|cUSJ(-btb5?h4ITB&8b|W5Tuf&>nCvySv(g zi&;S#>RfP%X30K?aUT}<7M5V5b53GEpt$(HL=zK3Vlw$45cR_h2|mXt@?jzIaxc%z z|M&a--=2G|yQ`ym_anOz1gVa8@^SdBv7gEc_%8nbYRaBiLZ8*64OltR07zKUk^qe= zVj9GOD2*Kb0<<8A>x!J{v-)C(*p#MtMBB!bS9FL*ke0T*E~bWng(g8-R)g5`wHp{J zOF^ucjuA1P0~xt<)BruBU5V7_P>PYTwpO$y&q4wPSR$HNhEq-nfFjI!CTe7C2 zHlvu-vQ`j-p56^X(c^MDW0_mzs=1jgm^M5w>Nx2kaAU*9j<1A@#dbz0%9gch#le5h z-;>`=jOYN515?WyDOkmUx@}TB3)zO7F|aYw7y_`05pmcA8ym40`z&-`R>fgnOJxZ>O>M&oh--#pzx?u~>HOpPA>d z&}XO1Ll-NHZ-&;8r2|t}{%{?2xEI9R2#7S?awK=5ABG;Nt9TMwy|Z4qQZxB*=%(vJ z_(-E;w&?hB0NpqKm(p>yQmq)BNjh$JPR~CRPEJULrCo2o)Ko782R|eRqjHx%-xT?D^(MV#tY}{A7E7I;xD)NkNpecU(s0r literal 3408 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 literal 3402 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 diff --git a/data/resource/icons/Processing/B03_Processing_22.png b/data/resource/icons/Processing/B03_Processing_22.png index f5318a22057778b5f274f9e99c2d9084a12e3c27..3fbcc68872292b2fade6a090b7b342a0f534c371 100755 GIT binary patch literal 1389 zcmb7EZA=?w9KW`(j4|G_Nd(2+Zo^@OUa#EsxJx_wa@Wz!B9TJJo(OBj^ALB-B2D zMr2_C#DI_(KCuG42;#UT#e2-2=o_r4%1*(uab{%=q7lT~n$-kx5SVBm7?2bncK@4s z43!c-tec9uqFM+frM3|rbdI#g#gRdgNnoubPG+A z1kKX~!IQxd<>CpNZl;4g6{NSY5ydbCMFf_pg_WLRn|H*rAsq;&s>f9|z1dA2N!3)1 zq^hBzP7m79Ehz~#W4vaS8gj!>IiO1?K_aZHGP<61R(g)Uiy;|0#BjXjJqhFHTL_Nf zDL2D6yJ&*MHn55RoiH4Ff?Hj-t?M?IU@Ke0tuq8CTc;2xuxL6wW49;9ZXk#)9^nG< z>@R(*Yiq5J8QVTb9a37AIy~A_^wF)tOAQ~4-9*CPLa{quJi$z8%N6J~$6PLX+<)eJ zzQ*ppcyM_#YoGfhU%yP?@{z8d-~5VtzIa(_~2@2ym)Uia2=tJ*}tgA+CE(!ztQ;6K7HV4 z?^ox)opRm3S{NwV`(FP0&ng!8zkd4eg##0}Lyt-v#FKZH8&WUlS6(QxpS^YNyCe3Z z#>nYi5v20wk#Ot2Yr7Y0{>O!?)LVA)-xnX$qv`YcizmF*h4E=5RWtJLLaIcs?LLSp z<^EHXw%T;0jj5}@G_|x+H+y*^$Cu_BKQCRZP5#k4_j}pwelS{nvYIRUwH*De94v+Y vnV;%<|E_KBuRHnantN|ARm{9vne@EpjPiC)JKU5^bw{u?yd&mC+@#D|v literal 3389 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 TNh+-900000NkvXXu0mjfv4J~; diff --git a/data/resource/icons/Processing/B03_Processing_23.png b/data/resource/icons/Processing/B03_Processing_23.png index c02556adf8380462f8288dedd763e373e2252182..b647e19180ef448d7e0d3d188dede7379d490da1 100755 GIT binary patch literal 1394 zcmb7EZA=?w9DhpJDGUO0W(gqkxPf7j_Il;6?OiBPdRN+D5la^^8nf&5fgZGXx4UC4 zWHC?`nHs`~F$TXBGZV8omzZG|-Q37(g3d%2%`)|i(NDf48(H>Y2?n3*TE>Tk#LK-r zFaO`~_kVlt)Zjp0O;tk`0H7uu;-ctVZ$6LjMeo9&Z;0l^;75!hWz@(B8U+4?5{Fng zEsVh^6cSU%zk!_qSkFtb5o09s94jhmhhW+`vS}5e0qE?`s)9HH4J;1FB-w}G{_+Zr zNeLf5Oh=p%H2{-RXj+3q(*rSadO~Cpcy|}pnPm|{8X5wYO{Zj?&HC^nFN?GZa>Zbacj z=O4+h$EH+BM4_%sY9gxQ=;0kwy9=3yr5MQ zWh2b_@X1Lj!3JrHra8**CxcEN)rO%+n)5QAUeZhP9LJRjb^?)>BZ07PSJ2D#@-*q; zJtWCfUN7nOBUq5)JszrqE@Q*8ZV0jnO;HmoJ;YMGV%dNO1w+wdijpdK(_m6D6g{b^ zSYXJFwGB&hLdoby%u*w66e$v!H6@J|v(8G7(04Kv;|VYvZ+bwXxOp$hF+A;J z_ztIsr0^0p@xK#BAWsOh%XV~Kc?q?$Iov)&XtI3@p^S>Ap);1Zy?g@z%Zp*oAIts{ z-`v{jww|*bur`5x`^Q^mM)tgQW3936)!FYsuyf7kirMCwd3C)O`^vhynC$PFyPmJF zaQ$Yj+nSx50Y5dbFJvoL-^sVGAKaWBpY~(kql>vi*Kni1$MNIrXIH?6?PI=BIA^K5 z+jD<-@wJ7@w~1q2*v*R6Uq{teq4La~%YmG&I_bX-=)Q^%TJg~7&D?kG8x?1t{<-s$ z_b#nCZ(m*;tE@hm|6!@N@Z__v{~qtE^VH2Z=Dx04`S2OAyuY@G^#6P7B;Ip%>D1sC zhu*vdy84}X^<(dYLhZ~g%lrZL-Kpw}u0I-6(o=nfgZTX*=zHbbc%{}b++62r%x|oK zf-Q7>C1*eXLiEJ!w`cE$7M^JN{GVy7ov+U~wBOm&v~JnAxJ1`Rk8I8@->Yo9cr##E wTR!S)ULCz)i3^zAx;lF1rKau+%N(%m1%F@FYQ%d@znXu+Fh9V3+IuYb9}hOncK`qY literal 3414 zcmV-c4XN^pP)KLZ*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} z0007kNklIKvb99xP$hDiB9qI|DB0ie#$iEG73 z{o%^)gjLnf2y=sg`x63MY4Q&=99_7tO(YLyi z1qShVs#5u2Y>dpPo|>VG+N#kufz7(RVO~06CkCFVHEXN98`CsZ(tV8$=ywiS4m=aM zrBBn;*LJRf%Ng3v4EXKbzX!glXCAuNj0Vc_(&$+(MZ3Nsr~p1W_pg;tmwg}XbM#?p z()F9YjM_+*seDKZd~v|8#iS2I);Q(i(F@?M`0y+7%~=kQbW3`c$8Q*|;n^KvTGDoc sZ71d)0XO_TmJ4nl7XMHAC(54z0Jqr6Q_-!`{{R3007*qoM6N<$f(f@{0{{R3 diff --git a/data/resource/icons/Processing/B03_Processing_24.png b/data/resource/icons/Processing/B03_Processing_24.png index 796ca7b41ac88e1778f79e453bc3051f5877e6f4..f7f9ea76cbc6991855de3acc6e8f7d1bb6f40cc8 100755 GIT binary patch literal 1413 zcmb7EeQXnD94>6aoNiV$CM?ce4i?x)+q?Fz?VT;O>s{9qJ4d&SX2ZB!`>s9L`{3?s z+e!Q&^AE_PY)hENL83w8#|8<8pd&!QL1>~OW{cpAx)~CN(XdHOBmwcgv5x&gmUy|3 z_v80G&+qHKy-ke`Wu+CRCX=a*3o#M+U2i-kYv6nQ#yc@%qO(!GS?^ ziU@Hpx`Pa3VI=^PLa0Xt%{`4Rv7YW26-T#jK|EO+5{N+Ok*t`KG&<`=7kFtnHkNHD zvS6Zjd(rz&MZ--BQ?0JBHhB7`&YpoS;c3ZFeDy7YfzX zco!XEf{R*k=0%gbuFy7HCX=yd99CIP*l>!X3=X^90xc|BPSW|TMbb7D7#N_%R6)@N zSwaj(zEe)?UKDzIKLk;U2#KVwEs;ywVzOY`Y*}8h;a1G1F4!3H6;R>u$_PPibIbBOIn*g3b#PpJL=# zS_G2LF4za@FH*f@K({K(HJLwXAW7bz&@o2ZIdm zVqG}S67?9)x+%i%!bv~opzs2glQf-|V!#kJu)+guU_~q)Pyw&YYKttV3f9763lGu9D1veYD264V2Lz0pb>j@h zl6H!9U@n|M7qRjGoiH2p#AbBavaTyE!B#egOJ@j9mQEp%V9``~#@;Gt{xX?Xr8vgl zlAW4t{iv}RH~%R%j(lYv?;r6YHBZ*|Z|YBMpKI8?dgciw`FO?Kb@{zd)z-8k=ApWY zYoh%|`pD^agdZ6CIXsn{a2@>MVA(evZ~RnqYpv53oiHEprJkE5);idu)069d-{U(| zQr>%EmnrG6QE0 zk0!q^IWg~xCe*>I@7un6WaeGv&CnO0_a>_zyP_8zZ>2^<$A_?Uhvs%xdoPDB%r<8{ z{CnA7N-alz2>nxe@&zfFZ@Y9+i_c8y2G#Y17!4M z$IDmmO?qx4!)EDyBA-L^Gt%`>*%SdBDYc$6onZUbV)w X<=a;WEB}}tHGYg7+sGWP@7VJn$n5T} literal 3403 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 Ljz8mn^11&2&syc) literal 3399 zcmV-N4Y=}&P)KLZ*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} z0007VNklN^0JKlII%gtO}GiCs5_;NgH4WU@pKd z1Sx$@Q{NnNAM)I5l zSqjckU4S$8Ks{hVxL8Hgho4fNfV_jTt?Xh**c{Mo?yV01$j@hOs+h1Frfm)wRc(ZA zt`~57KtSo3`~j$hz3;aG;o`v%JC6jMjS=!cQF|LJCmFIC9~s`8N8s8@fcz*+1EpOA z1`ysJ%sd9TGQQtN0IXvIW&o~@>$?EJsSDtaL8iisl3g=-OHVlI{NLGD@mh#3eB`|k zjIyl^Nzb{M^*|1lH}55zOrOvxv)9A%9~Rk9ByTco>Wgbu33bu036fy zbK@cJl;AQ;z*=?9g)VC)Jr<_GrE&cr44%?&U8RpzUs~Z(rK$+hEFR5`mAwY==@}$A z7mr-aXj=fU_%6ShC(g46*l6W92&v%(fKvdE4x!pX3Ye0$nP8iVnI+%`-(|Vr^kMQ} dVK2PQY+*(@j}cL6uh-tSy-N!{dRJ&>5laaTAIy&H13hT(j=QTZ zM3++C#BCuRS^S`hVY&~-h)ZVn#W^=JK0r3(ri;n^V2tr~ewbugG7}Pfu29B@g~ZFf zJTL#>@ArRu?%lrL?me{!YY_z56Yk-n@Y`fQPgcYC(qG3!b7JsuqhA>@vVsN>HlYjy zG@KSjK@4k(U`!N!ta}#-2;75RD+d&YUWU32$>DU`poLAJlno(gll7J|0|#_blT<@e zWYlC7hLw!r$DpShA*9u)G@3N@Epl1kOcqQVo)c7@usd+AWMjrxMnxh!Bhu+DYu$)~ zN6tT%Uyn_y0FMG)$!H?1;z-Ljshx#P!_63&h@g!FSjCW#(m`n>5@B9}&P%e8;uJBH z2C@<6{8%O_>ur@SFP@I?cbP-;X=QyrRupJ1s>@2TFN>jJx1R_le8yDb36$>AYt6Rm*8lg za?-rZ;US>!8`#AEP8be7!Obq))^+72*vjT`>kPrk)+q!sESd(-*sr|nCW2H9g*i5s z`*C<}eZAAVP_fVY46>_X>`*>ldE(aM(``qmzePg6#VTj4YKERsm+R24trv^Q!-3=1 z=bJ3fpRM)l)5r73?dO(fbC!#z=3AHduT76lv8Z>TSa|jtW*iRKzn{Kv1zD~7gkM@( zsHndm_;;}Q)@;p5{747-gC%u$Ky4Lj&i!*aSg6{aWUnJsx8;LYtmpJv;YRza<a645<;BsO-EYj_oU2=U>ZOOjd{i;>$G!$nrEPKGwilW3*FRAliV0tE$UDDJ zwfRryTP+XU7iS!YipYZ%EBayJYU8QOx4&sTL+;Hq-8gWpvawow?b=w4cCg!ivNj*D zn5jcnt1S~}3%2tOFJAho<+tHr@)kRB=Rx(*31@)1I`_B5w?AK4wyYGM|Fh}+zBey4 z-~Bj{JlDU_!S4NX3_ZGQsXO_q>$`>7=Aj6dN32NmoWWFy2kx7{!7$&;ecpAX@E`v{ B&F26B literal 3418 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 literal 3394 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 Y09yLVT8*3}Q~&?~07*qoM6N<$g6L~Q?*IS* diff --git a/data/resource/icons/Processing/B03_Processing_30.png b/data/resource/icons/Processing/B03_Processing_30.png index 87fa6774fc865e21ea83584825a32afad612f8ac..018221d277b47fc1cdcc0a5ff8d9aefbbb1bba6c 100755 GIT binary patch literal 1382 zcmb7EZD<>19KT%5w!VyYI>c%1p50cMcFpC|yG!p((xkb|8t2uLX0#xTU6ZHDwaMM} z?qbqXMic4ms*G+QCg_(I{Gif0QHILgMrXmwCRR5@{UD;B6rmOoCRFNkZPWF`D0tk< z^YZ`we*d@U&Uba5*jxQ%HHKk(V;w>qeGl5to?Ym@@Y{IOo>*e9)vfhg1=)aDIHmPL z5X;GF7>9Cdc<4*$$1vv=CDCj3N-yw9E$5bP8+S3MBQ%Ej+lsoJ9E29=gK0$#5X;wY z5h#p4rNO}Zjl#UStc8_!>k|TpjE=9BjfxpNjf*iDDP|RgjlP?B{bzUBg?PZbx z>n7GT_FJV_P`1$Uvvtr=;O;yBLc@Oqn(MYB1qT5_>jHIGyn1ZXA=MYj}9 z1vaDHr{%2xfjr#^A*aWcbjC8b$W?PQStxB}QPxSy?IDeI8#}%VN|JU)MGvotfK z=^)b0f@3|3n$im9Gj^#FHwsmNhVn8@MGY+n*0atl57GBkOgE)+vN4Dw=`L*tZj_^BCrkVnR4k z{IPF!ZLQ5Y=XlKdG*+{J;OJQIBa`3EKXvSE>1!g_+TN6N0+O!zj&oWS2|BswmxmhT*2!QVUd zgMaq&XEUDV>+|WV+R^EyOZyfMG=1{REyu*NbEs|qP-N-RtSC9_mUs8LjLB!SyQ;x> z)8f+KOMVO=5BW=Djrjf1a)ay$jW!I-I{|z27Cu|G=Z(gu=^*y$fa6}dM!5Wa{S)sV zNX!Dc2Hg1f5dM>M2!GQbyn`>Wp+7KYxBJzGl@ID`jC_3^d3ffuH#GU{bI#M%cjtmL lFMZYVF@HA0oX7B5?Eb}T&wq5~i?sdci;11W`|W4S{{c9)#=HOk literal 3404 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 i!R^E7|CE2A{2l=CThde-iq-c30000t5?ea diff --git a/data/resource/icons/Processing/B03_Processing_CPHS_line1.png b/data/resource/icons/Processing/B03_Processing_CPHS_line1.png index 2e21840c38fda451c200999f0a369e8f32aaeff3..6c5a6c6b7f177eb79a3774f8039d9b31a4b71b76 100755 GIT binary patch literal 1210 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 literal 3507 zcmV;k4NUThP)KLZ*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} z0008sNklJms^9RtWTGuX-TUJ$Exk=%Bn9b zxvP@4l^@$CqjZ8bNy{n^%OQ?d1?etu5!i`akVLQs zYykZ!O1=YY_8d6TJpzmY-6{J&02iFS!BM=BVxr%YW>b8rN79_6qZC;SS$%LcMc@lb z{TZV1yrkDDGDouzTu%_xipgg~k|rfhNgDIy&b0Kj9!hXHLCBV*Zf9*((j7_rp0)du zZrPgYz{nmBA$UJfKs7Kot~ej?ql`-ODMrz=$h!F)xvyE2U~i!CksRbUBD$jR5{z~; zzMS{O66#au-I#SMeLzoOQodP6H`9!K)o1gyyt%TCN1nYwC)nYs9xi%;shDr;1DXM6 zZ~)vctE2wqSu+FFJ@03Mt^ghP%tcBe=<9szM$*M7FcGNZ5-<-;mf?eq7#})vN?SFc zZ22&r#|NV?sxeieUE+{*J!gYT83eJ2i^D@n-<)n{D}da~NO>$w@N(d(+_ffPCZ?VG zY5&zCO+zMvzJ|35yh~|RcY(7`lX=FjpTocxyLPVGZx?gGjkfzoo98SIYuYKcV$7Cw z=~|4ORBjW8^n~r!Ya+*0wXlhC%(h|oizMs-kAaWC8*`CCn=(w89G@wJOq_PB8v#}W zD@G_PP6@2q??0Y08$=L0g~d1l1qg;M4xA4T0xgfZj-6oW`0cITT_2b^^1|J#$WwSe zxCdMV27o2tFvH$M+cS{)xC@McYnGg^SW>UssH7d)UoEniY(^NJ9F!8p$B7_KLZ*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} z0009QNkl~idSg8Q~PzX+TJ+JOSlYU3Y(b>J=V6j-f!1xZ;yc}e|}CKZoKo0HGF zURH8vBrT|RESQhF6D&v?SN$+3!8KSW)=~=*MR~CX(5pt2#v~Ed#lFmtLPtnf_kI$)Cf*p}j*e@w3>5`jeJusL*hWf(XWc@BGkuEf|t!siyg`p#gB=PdO)b|-6y;u%K| z%a+Tlp~WXNxs){_(i8n*&Gu-k-p_KMmp zd-Pi4<-@A=Br92)CV)<0(z3x$;5Tr>8m^iykEVgMkvTUj*3I{HJ?>_XNLsFA)4psz z>v}g+w90sM8^kuvM{%bvkGAsY-H2Y-#fHr(XI(E8Bt8`EZm`!xz1fM_C96t40{2X` mYdXi0000d4re?eLdfb(3;fBYx2L~R*g9v1kSbBwPxL(h;_abvJ zgt!r61U7=3V~jauxDBTXqE2Cn5@o|E)48~qFz3i#amxr{!HKrOG5%OcZ2I^;zMs$M z`}%c%QDJU;%*Gg%N)>O-Bkc0`Ipv93E5ENP`oXaiZ0VBA;i_2qW83us` z6RE}sE;?0aD+0{CzyNwET}^8c1VB*;(dkhX*#>Aeh!)n!H>yT-xE{r|8Nkv7%4&k6 z3bzxMB`tYo1f7!P!C~0%_e1`4h!?711j8_eL#tKG7HTo*mZ*T*Ep84m5R6C*tVd#b zH=r<5mAqFng0iQJA#ff$TkVv@WpcN;lq@-IaDei_2&9391sf&45Xxp-9l>$S)}mx* z9y|X;ez7FzVPHEW@?L?Kt5~&ph1BXois4cWxQ!BO7`ciT$|W)j8#WuhLw25ZQ!aw1 zy&U6~tb`HtdRYf<(d+bjLT54|77Z!a2Gb#W!hmJuAO;;t5JZSzB~aFa95U8mHlS#Z zDFewMbqGT0Fv4OmASMLWBA6M~m_t~rTa+j_%_yP@mVJyxSH6bmHi%sZk#t@u8#sch5CEtscAt zo<72Nzp^zpb3OfIPI-Gv^(0i$F>df5uXxx=&Hr#wEB@7c(0+3Gofgj{-B4ITPx)M0 zxNtkOaO8vWtgGMV*2fOMG}2fx0(}<;wngT4pPtK2IMCL7s-Z)ho8r3kaNCBqeW&)W z+j)0g$$9WT9TC$VeR~ij?~f(p5$o;@OsvhiJoRZjcV*xEXQMNbf97-t^R9*mKE!5Q zZ72RH{OS1l_-iv~&W@|6zrIQD3S;|!ZA_Ty{N+M#N_N4G=ZBJ-ckNB+-|-$XdUAJ! zDg1D4ukdr)1IvvKf4c^exGjD2j%R}1+SsW^5Q@I#JVZcczb7`|eY-1mrdzBbl5+_A?CWivV0{$PGx n+Sp|B#k{E#|6U)yQ&1nKs=o$5)no56DnC^#SxB78dA;F3D&q^L literal 3562 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 k0Char(90jCZ~y=R07*qoM6N<$g4B7gm;e9( diff --git a/data/resource/icons/Processing/B03_Processing_Syncing_02.png b/data/resource/icons/Processing/B03_Processing_Syncing_02.png index 9094e5ba501158b814eefae0b69d62f2b1a66425..593d2f48e233497dab25c0af9fb3722cb284f21d 100755 GIT binary patch literal 1455 zcmb7EZA{c=9Pi{+7Ld82Y{soCEWkFd*L$UvQ;us-Zg_Y*5N{4M%3a|q*B9I39VG4p zBE+%D7>kI6B{PwU$uuU!T_lqYkY!HrB@r@26Ojd%Dd2~_W@CHGn|v@NYo4~x^Ys7w z{r+!HkGKl9$H%=C2SHH0Bad{0_lxQs8x5WVKOgq03x)D1g+jR!q$LKj`h+qDc5rkB z<7Q}I_5SafYzT@t#};`Mk8=m%6*vv8+Gs+Y2+$Cey)7it-bzM+%a{t5w;(e;y$H`hpw#dN3^3{xg%AdDtLXNDIq1gJ^A za>7m87q!63g7_6hBv3RM3~GXUjUZK^7>?sAhfbFXEHdS4UZF#oyqvPcKr*sdVnu}& zcvxkm%Y-V$f&fn!Lf}L@$zg$!;GN_x8g(}Gls#u<~LTYs()o?Ke!bwY&45*@=4#>>>2d9(R37ltnIzS5E zDvse52Wdg7s#qUkHyVsa(qOe>b}a>JgBvg-nT4Bku`B~clH?M>N+8hE_y88y8*OG> zugA=k0mCQ*ZZ&~nrnCmiWHef{maq<9R%qVKsG=&CeS+1kiY06kLo0$*BnW|}ZgTkr zMUef12-^xxaQbeR_X$BcLoGGn2BDIS#2#RLc1hsi`K%M{Q}p##y-r8ktR%JI0ZwIM zBu*K1IHlK`F$1!Q_5JUJp}-SV?XneJx3mRXS)DGQA+T6Jg$xghCV?~dfHR~)&@;yz zq_rqC_He|K*Y8S3DQ zI$r4b;84Q8uGrc`=?Rzj{r$@LY;5ZfjiqVp-cPM-Ex9}TT0wGsTkp|8XUvV3)PIgW zveVInpF`Kg__W#Pka_6H$;gJ;%~u{r?@FHdE#K9+b$fndj=8(>-P1WS!(2;bbHl^_ zH6P|Alz8f6UcHw#+44zfaQ3=*HRJ13b+>boYk}6J;@i<#*AG)!uFmd=nZ92g+{D5A z+=cZUqB6d_`gVU{ic<#)j=UbbaL~rxtXQ##0uJ~g?cy=86khP$&zS*y)5IOY5@?W5zj+!r2DclBt9R literal 3532 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 bDh{hvx%q>CeDomak@6?C(@yGaQEl^oK-USe literal 3517 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 diff --git a/data/resource/icons/Processing/B03_Processing_calldivert.png b/data/resource/icons/Processing/B03_Processing_calldivert.png index 15b35482e883e3bee46dc27c4228b9e90a3ecf4e..74fecd757090461ad1b3a009d3de84e1844535ac 100755 GIT binary patch literal 1397 zcmb7EZA=?w9KXWs2FpeRaT_ycmm4@IeS6B?(VldDyLNQ0ND7Y5P2+KWpl7+e?(S*} zK~oAd-ITb1vIRde^^|dlx^Lqu zIfVy0Y5dV{L5j;6b-!L}#En8_p(4Bh;~_;B@s+GI!hQ5X&<9umShksBgCqd{P>>Fh zP8Nh(D8G-Qh*fO-e<#d_JhACrwyx{SOQ@Cg;o2EOleJR_B~&y8ow3sJL?eb7j)z%a zSN4aVbp2BSd*f~8qY`v17JoJ3w@G}iZE9Smyn;hEIQ}uLg z?zNxaOna}jiBEW)M$5^k7UpVA&*mq${BeD;@kE0-ZZ^C#wU9WlH1f!HW8&+Vw$IOw z<|ocHjppvOP6fM%oexBQ#ZAeHWYx9v?o!prE$_{-#ZH9cdU5IH-J>UfM?h literal 3263 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 BuL}SG literal 0 HcmV?d00001 diff --git a/data/resource/icons/Processing/B03_Processing_download_ani_01.png b/data/resource/icons/Processing/B03_Processing_download_ani_01.png new file mode 100755 index 0000000000000000000000000000000000000000..9e842c1264e66c5ac6742840a96cd133ff1f50d2 GIT binary patch literal 1283 zcmb7EO=#O@7?zWDtcFkzhi)k=(PT!Nu9p1Sl5B}Mu`S7sS(SN?N6qNUWa+alVo9DP z&r0YZ*;sH1j9pgNUUnIQ!n%yX=%I(LEHDz-Wee=*GT3cntnFbehmq`)Yo|Gsz=Zz3 zPw(?Q@2{>F=gyA=PX#dy8!60+CG;Hgucw|w_s!qmQ~iZ2Ror>2=5`btVp+|qLcCxo zby$Lmw)o~2oWii-4ZU1(EAj~Ib6Zh_XMc}%Y zCN45^Ol}FVq0cVaaDHj7tS&96oJPz{<5M1w2n^^dxMws?hxgJ%kC#X9{x(J6Jrj2! zO+0j}A{TMNvLVipiKrR_0B2be&zm401}27x3$lP2U<;<>Dy9m3Q6H;6!m>wVdBKK?YuRPXY7V-o*sxs7X;>{>m}l`b7j;v! zI?kkDYQ&8~6``%a1+~0w8F(-2y#5${5%pa*M@xWV6A}$T3M3^d&%`+)nM}n%is)mt z|D7-jc|!SJcBtzHTd0-&*Mk{Ci-ReICMueZW^DHT>le^`{!tLKW$%~jzx(?$!?yzA z;nUd7YxK~AI!;EUaOCRUzfX6$<=v6c+V|TN&lPWcI4Ymhp7`;8clVW-8YjA26PGj1 z)$@C2Lig5pCbmbn!*J^?zPBp;^cB+?Z!OVBx%)b77=F{QL+biDWu}Svijc3Wg1K$0( zA?UB-wa5=c>?b?x@7@}%iB%^65@XjsSJ#4heBSHAsPi1@#yf;1<7mV4u!{{Y*DpgI5m literal 0 HcmV?d00001 diff --git a/data/resource/icons/Processing/B03_Processing_download_ani_02.png b/data/resource/icons/Processing/B03_Processing_download_ani_02.png new file mode 100755 index 0000000000000000000000000000000000000000..d602ad17a080604f0a79e29dd3127f15e4ce77f5 GIT binary patch literal 1289 zcmb7EO>Em#9CsVGL8NMf3ZYFKSk7TXO5(i4AF{Rm zaeL|pOs#f+3k4=Lfdmzu#9&uAut^08*o8?*z!5GmAwdghMM5giS<>||Rl>5L-~ajl z`~APYRGv6K6g?EhFl?w)6jk&-7(Nf~MeEwHuj--TOI3f;nejWC3o*fPY7j43S{*&K1# zsj5=O3yuqMI+;o6DFASWNdk&y7!b$PDUc>p=w=dt;%SCYvv}_!kTuts;Z;%Y*+No| zX!w4MC&^Bylk8-Yj$0=I$8jM?I-Nio32)B!wIE@8u|9(cJ>4~1zUkO_$f(tvwx1)A zr*}iJTB=!Z_}(_T?e&s{(nbbaiv-CO>2`I(`1&YC*&Sh7+uEM5!h6o&m*1<*wIHcN z&uP0ls^Uy+hpF8Sg^Ilxctvw(A*!ORH9gq=wXfjoiGx4 zLWW(oqwD%dsFlO*_6#9mdkUeAisqsjE9Ul|Mf3SbNfau<`!z9*?O;13 ztzeswCN=6|MT|uh4h(@rg~lWf2x*9EQZ7T25NM~}in!1V8d70sNaHz6x*n!VSpN5( zf8Y20{<=Lk`|?Qm=`e<2BZV1BMbD>#>xl#C-u?ZY9xQx$!Jl^){ifzZENeJrh!-ra z0#&FP%WvI)Qy4aM#VjuP3(5&WcPvs1Y{-^XM`#S2%Czd5z65=|3@fIcCjPj3jlfMK zO`PHsTB(b$YR;^3vTBCw#Z;Vr9XdqOKs^mqmI9&A$t-ZSx+ z(!>L&7L++$bXFo`oXU?>`$d(Z4)oeD&W}I}~3I$TBRKUS7F=P?*mTg~a#cVG+V344vyJp=t9UBiAwX)Oj z(**MLK?qh|H7ix$+ax3z2b5m zQY!SEhO470E=KoA?JpD<_G1tf&0T`1ig~T(!QKZ&5ne^ko3>Vy9KB&d+b>9IqR}u7 zAp zjuH8IHbH{{wqSd{X6rBz4Y1}zYwLv${RUO~)s!kmj=Xw13Q>JY= zO>ZJ7HR490O3*dmhDP3XEWDR>!F+_ig!(RGt6 ze-7f!o|9)oZ@?)bz z*G!p+nJNVMKUzV<4`mQw7dHvbV+Fy^?HrEcuPD~7c jdh_1-PqsUgSfqsg^AW!z{QA?o!EdP`&q`nCO7Hy#GBBg| literal 0 HcmV?d00001 diff --git a/data/resource/icons/Processing/B03_Processing_download_ani_04.png b/data/resource/icons/Processing/B03_Processing_download_ani_04.png new file mode 100755 index 0000000000000000000000000000000000000000..ff1b494c8eb16ba78d541bbaf40802c94e744d2a GIT binary patch literal 1292 zcmb7ETWs4@7v1x;fgTpisOYD={PHdXBN$jj)q(o_85ljfjK1rHNv$Rrn!1bjvIoXAkbv>R9zcRgMWSdD67-2DR3Ri@m?|`B4A3~vlCBR^B`n|0 z@&A3_fAxHEY+qmR&R&Y5`tqZ4i9B}%*QR^Peew6BTCl)M1&`Y`+)`acrFFZCK;BgA zsDxB~dTI#`QB?Rdqg=t2!t;`5n=v)8iTS2O&=fT^>^rJ9fiS3|x?!d0YhQj%14B>I z2lxV8aI&ajjLx`dd}gey%}i*bP7m(|L%u`^OoUb7o0FC&`6;^1E0OnLo1sD51W%;s z+fG#qMUb^!1o+rsRAV6of)IloF9>iCh_f)xu;dh?kdt^piYGwlpoyBR*QAo1>u8Zx zif&-+NDR|zwPLNonC;dXD2igh5sycSMbw+Nua-i zPj81{Iwhmtz}_0U<#m!p(#H6z!@wBJxNVytzAmaz*cf4&Yt|kvp*zmsmES8*JBTSE z&u+RJsbVd%PHJPJz_1g8R8ZXsM5>rmCq2~uP$)<*5a$g`os?~@X(9{fXmBKs3M_cd-11SSjlw729svwkNyYRBYJT_8PVWvf~1H>VRSCcFTJ@ zC^g|Gp~}cLUPpS)wN22@x@6o%UnYH*&TtCkg+bygOu~esmOwt{!{=XB( z5Kow(%hq*WcZ;-g@VYibWU)4d$Rb5^$&9^x`SY`6KL59YTG^`Bd}hQpuqYzYrg zAD!Ytt91~IC|e@)SFR7tiHC3W^&k83``wQf&z?NBH~rGp(%O|d=OIsTs-#otS z!&zrLzh^1}u08keA^O3^)sd@5l|P>8{~^3`dEw@-yZV{%%DKkM@L~U|bE!{^g!0m7$Ag`oGau-vF=nEj~W$i_6u6wO+9O+3%(v4lPO}haR0fU3$N& z%~p2IF+HmiKG(<^FM?X+r;u>*o(GEez0pHtt>fGv_Jmegmu)E~BCb>)Kt@n~#dvn*7>)`?_HkUlTi)~(( zbmfM{0)F=TS4TU(FI|6K^%tHbdt=swS5q8Bq%^C9K+aIg zsDKo0`p9K8KoD)`^rGy^`GbOL84<;|iPQ}nqX}YQux=~rB=SHBm31>g-uUKQ66jij zJj~|lyq!T6eR#$}V>2T~b!JlKHF9u27^n-Fz(Ae?>c*7m3iSlp;1%$@zfF;#Vd70D z$a_x7`B9Lu90b@%e^{j<1RNKE49jtFABfU0O40b_!jKVIPKd@p^B}RBqfH0}G27I_ zs{~o`JX@fsTCEnT^+znHOhKOKeU4}}j4i_MwCO4Ju<3?c3?gz>N4GuQGJ(&il&q?k zAhDWJh zs(@Up>ZrJi6QOld8w>e{%@~Bd;!Gl3#jG;rqQ-}OUO0rE*G*+gwA8ABOfM%U$ZA#B zge=RjtjMHNFiT6gHar7aG0w-*FwRJ#D7FaJ1F=>_!&olH^6^X>a#=A7p~R#)juulH z35xw98)f(wHfOq?Vyeg&^|AVWEWIIC$TT?E$Q>|_qtyrGrRxBH2#yGI|ux@Hr z&3(o%HRi^lipbGlL0Z)H(A#o81i6Bo_FGiJ=c%;Wi7&WWjF{kPJ}>gr(IM}eNU z-NfkyCU~n1A|a_Kbo|1d-E;ixa##18KY!o%8n_*}H6)i(Uq1cNTy=Jt z>!wbDOWy@Qjds5jyjK0=^s~DTEC%7OlaGIr3XjhUJ0Fql`7pAU{N_MZIl;(Xy|&%*Yd*MIse*g+Fa-&5!5ciXr6KdGEFB7U46KlUH~ CGpLpT literal 0 HcmV?d00001 diff --git a/data/resource/icons/Processing/B03_Processing_download_ani_06.png b/data/resource/icons/Processing/B03_Processing_download_ani_06.png new file mode 100755 index 0000000000000000000000000000000000000000..14783202c728e6b305caafc6df34e60fda6f3186 GIT binary patch literal 1289 zcmb7ETWs4@7eKnjgTX!f_Fxzm%#BM0^c?iBz8-XM{&q_97oI%rP1&*ZGfeVCX6Q z2&+&^RfH8|e9?hZi<3odaZclPJpB|%HUvaqLQe$^bKY`=Mhb873h3S6CUMX*@#a$a zZKtM{JP>UM0+xtHG>WDH#}PEcavVJZq7)q^DRgoXnh{t|h{i$tz>%7x&k6-8+txy> z6khSXsz8$UdY!1p2-_)>G|%%sM>HBi77=&B^3+Dea>E@43A&nNR6WDCfX}Fw?3$Ot zk*BvqFslWlT=Cp(a?5Qe3#E;0s8y0CDAH-!`0;g6in2SxG`Fo?uK@2je^-9DxKM>; z0lIe0(NGmt!C&# zmStF0Vlo*zOUbA>rCM9G9be8K=}09zx$W?7jFhbXTJXYz$5uLUmH61Y5M2z@yp9=>ct1aX8(l^ z?6Gg<;KcWR8|Mq_%QN8k8Szgx^wQM&@)x7mgUyw%n(4sm{h@2`9B!`M^V2BU?D^$n zr5}7Gy=vvV?z?bkbfmv|X}t97mENV{uGQEOdnxZeq?R_8pWGBb;gUU}ll8GLj|K)r z;`c55-eEHI!lU7d8>4?b{Kmq_UMetgtM8TP-WI!tA9!o{dhUBvU>EN-lc2b;2&Utz1Rq_$JQwRN@Q%;_g-XEJe@gEwQr~Ci_ literal 0 HcmV?d00001 diff --git a/data/resource/icons/Processing/B03_Processing_download_complete.png b/data/resource/icons/Processing/B03_Processing_download_complete.png new file mode 100755 index 0000000000000000000000000000000000000000..14783202c728e6b305caafc6df34e60fda6f3186 GIT binary patch literal 1289 zcmb7ETWs4@7eKnjgTX!f_Fxzm%#BM0^c?iBz8-XM{&q_97oI%rP1&*ZGfeVCX6Q z2&+&^RfH8|e9?hZi<3odaZclPJpB|%HUvaqLQe$^bKY`=Mhb873h3S6CUMX*@#a$a zZKtM{JP>UM0+xtHG>WDH#}PEcavVJZq7)q^DRgoXnh{t|h{i$tz>%7x&k6-8+txy> z6khSXsz8$UdY!1p2-_)>G|%%sM>HBi77=&B^3+Dea>E@43A&nNR6WDCfX}Fw?3$Ot zk*BvqFslWlT=Cp(a?5Qe3#E;0s8y0CDAH-!`0;g6in2SxG`Fo?uK@2je^-9DxKM>; z0lIe0(NGmt!C&# zmStF0Vlo*zOUbA>rCM9G9be8K=}09zx$W?7jFhbXTJXYz$5uLUmH61Y5M2z@yp9=>ct1aX8(l^ z?6Gg<;KcWR8|Mq_%QN8k8Szgx^wQM&@)x7mgUyw%n(4sm{h@2`9B!`M^V2BU?D^$n zr5}7Gy=vvV?z?bkbfmv|X}t97mENV{uGQEOdnxZeq?R_8pWGBb;gUU}ll8GLj|K)r z;`c55-eEHI!lU7d8>4?b{Kmq_UMetgtM8TP-WI!tA9!o{dhUBvU>EN-lc2b;2&Utz1Rq_$JQwRN@Q%;_g-XEJe@gEwQr~Ci_ literal 0 HcmV?d00001 diff --git a/data/resource/icons/Processing/B03_Processing_download_failed.png b/data/resource/icons/Processing/B03_Processing_download_failed.png new file mode 100755 index 0000000000000000000000000000000000000000..a876e7424e02373eb2977c238ff38cd5a026b40c GIT binary patch literal 1428 zcmb7EeM}o=9KN~i+hI1tri+vFYPL?+_U_s%?WG;N_U@pvGAKZq~;2+tx!6w9%7I`@r`}?OD4TywCqy7t|&yQ=}G1l>6Q8ynJvTJ0%peENJtf>szLrCTx*pVOsL4;R1I1#B56*A#O=6Fdk)|O2O zJZGX-I+6QM6?yYuwXkAd`ZawQL{$Z}N*KeyralKX-4g2+|T zQZN?bMb$$)kyuO!kt|^$2--qX7>hEXHg*d}&^CL93$s}mnx+>BmI8s6F$A!f8)YfR zW+o_`8N(Qh9mQ>KD~7T*#!R8sMXX0uR89=?ny7{q9$@ihv7}q(IaQMVl2oIO}pT7)}$&JT~;d6J`RQn6xfi(sc_Z?O0GqVKwOcQ$nAeB9q)JHRpd zom*4wr;g0(>(g(3vg^;U|J`wqaUH5_&b~1FN_xw|sf=5bu}y;&L#4W{SIc|QJKtU_ z9_ZVj_Fkzt;dVA0CHfAP{ME-cA{S3)y&5abBxZ!M-rY@d>y&Zyo!ZlTsmbTszg*qb zboyd7d+H7R_2W0*l4nx;&tZF>y;uKuYcLNiHkkL>0~0@HZO#doZQ60xKUI!(-qPQFA5yNb)9HtAJBRY!TUvf@UwL%ry3t=68?WV0%i9ZjH-x)d z6};=Qkq?KOEYDmTHm00C{MqH%WJ6kD=Sgh#09&o=Q45ZZHnntgPIDi9!C$_*qHXhU t18wIou@_!$_y>Kv#IfduI=9gN$fM9*|5yIZr}e1zpY$-f^ch!K?SB+1|7HLH literal 0 HcmV?d00001 diff --git a/data/resource/icons/Processing/B03_Processing_upload_ani_00.png b/data/resource/icons/Processing/B03_Processing_upload_ani_00.png new file mode 100755 index 0000000000000000000000000000000000000000..a9375a9fc007137fb65ab9ae24955dec285bfb45 GIT binary patch literal 1269 zcmb7ETWs4@7zL&VbrQib4wCm3&&D#~$|bbXjAVfl8B z|L^<$tKTfmJT)?OWQZV$k>UxtjGu?YYcPiIn}41)!Ua;QXx5!aE!~Gi&U9;#EZX`4 zEJNK~S^geQ5k%xOt5QW(?P0HSZ8w}iYGpkfS1!^Di6|}BFl20U@s7B(I&?7X_ZZ~N={JaBmfGR<^iv$DOKQ7 zqROe0eQePQknR{T6b-S~J*>DdRx0>VN3LIS-A2EgN_7{xLEZJp!mL0ZJ!Ltj+X^Pa zQe$o$stkSWMQEzNYm?oqOV)k#W!!hUJf{F&m{d3b(jcWMDxVY!sZ^Q;X{v`c|98R| z>uS5q)NKIPnEDa9cv})eBbX`RnQj(MDK&yIb?*E={?5&RPbZq-!r6&STTdLzg3iTXqoZ>~^w#4) Ty{vJq@JCcsX5>%vb7%eoWLuha literal 0 HcmV?d00001 diff --git a/data/resource/icons/Processing/B03_Processing_upload_ani_01.png b/data/resource/icons/Processing/B03_Processing_upload_ani_01.png new file mode 100755 index 0000000000000000000000000000000000000000..aa3480e9076676d6fa5b2cee90e48ef79f5bfa51 GIT binary patch literal 1274 zcmb7EZD<>19KV@1%C?rZ1Gj7l4_78CCU;MIm*kFI+vM)DMZ7Gefd&QXUqbhte;~hCo_7#c zLZ01lHC)B1pXA!PqPOW>W{XtRq)7W{#QtOhfHB4mrc}XA}4MXR1 zEW@%AlgYpwE#um73}mGgm(0QxBTJIhCD;wbS}`4CS%#yTESE{-q&S2!!!e>HvMiGn zb8#6;Vi%jYJYTgm6o>{`<35(#6U&P(QhnPk+jhO%O~sn++g{CffHJ6O+jl4O3(XtN-tW zQP>kI=(1g1*WJRc9K7z#5MJy|A+m7MTs&jK+RU4HK7Y$gnR4rw>elx5Xz233!=cBB zk5_BN9CzrGjUNUP=3bFRGp!bs$re)qY5UR_dB`r zUfEat=oxYC;PJ_&^WQE1)O+h(@tfPDJ#}$#=;1qO&tL6%eCdPVx5>?ON0x8AJus0T z+lt&wKN>#z%89?ue!g;jof!FIQXBiSCz3w8vH8cqyFb3P82xJH(m)}4H}d|8mlyvP dqGt|(Z;6Ww_L1u=hc5?zqr6;@KFv;^`43zrq7ncA literal 0 HcmV?d00001 diff --git a/data/resource/icons/Processing/B03_Processing_upload_ani_02.png b/data/resource/icons/Processing/B03_Processing_upload_ani_02.png new file mode 100755 index 0000000000000000000000000000000000000000..877220f7e5bb64e2b788810bb94ad6bd10a8005b GIT binary patch literal 1281 zcmb7ETWs4@7XySp(%a|A%4`?b+fGUmSEb00%Rl@S^ z9RJ_<{Z}8G&L0@qJ+_-5h=JUsSisLw|9YSg-`D?mRrMF1RPtu5S+A}*h)8Kx8G)Rk z%%K8Ow57$b(KtZ_&gsRHSCXF-RLck}zD>Ac*ceR^dA2}N^?E&AkAy8}j)L)c+~;7J5Vi=pOQxqZLZ%z+Fo?)i9o_bH%LG27QnqSd zg2bNQ4Z*Mr`dr0xx5!Pmoh+O-s-f5v4AYd;vhm~Vpk#Sxgkfx1yIuj^bN;^kZgI&* zQ~|kG%~5d`XM@|Mb{6st+c5~T;w&Is#jH|wQR{;&3scy6-BhZgrPd5&dO0yc)@r&Y zWI2}OL^hRzSz5xiiL;OsWASJj##l)d#SX!CAl3?N7|TIACPIecvmyhb#HJ%Kmc?u| zEk<}Y!*#GZ)AbZnMZTzy)$d{9j#we%AjPwsqGeS(-85aXJj<@k}%tqhX9}W3~UC zFbaD@`CYcH>pEMwmHpSP8N!RLDMThNnuBL-O8aUR&*!b2m?}1YE^pqslMH;+wI}d6 zvD&NI{Z@4InmzT})fyg88WqhEh>YRq0c`ohHMug#NV8&{8y>VLj*;^Y3ax2OM& ze%3tv<6o0E_we6$uYY&s(}5FXvmeA)uJ>Gi@R4(W4|V-=a{cO;&z$*v|B+))9N2vE z$#*uoH}*0&j_+DY2H(1Ji3qOsoTi(FQ~SO+`e?QPRujCkDEm#9QT$rMeD~xkzgwtdN>F%iNt=coy1ntE{UBsh;&^VsZj@Gj{VxWi9c#P zB&|49Ak?h~*g(qIp_+gLs-{7;9XN2||Rl@Se z`@i@9{r=xRGd?!bv%h~oK@dHeQ893pScq7|SaQWrbJC;UO?s7cha2Tp85$is1s^NYGSq z%W?9dQ-$m}NSQVQTzDX)&=7)1Bn(+D5`ixRhK3A9<2w?9tiVMCCJI^?iLKe{w2%|i zEn8TMlO@-+1d6KFYT?>I*tBOT$n(6%!7w4L5pw1YSFVQ)C)j2Xk)zm}J$)F0ZsoL@lIv`f8%`@(IBis2wkQ~;DZ8oT#n(nl%$Q994syZ^Bs({uNSURj=OQ&ayO zer4;$ANv9)o?Cru-9NSXfDe56%kgizxz2O+(bcZy$<3ujeYAM*&dRvcxV~}r!@u8n z;o|+h_n%?zE_a?D4qo_nod~Y&TcI1d^9QdlJzeSktpVQYObHhUKe_VLfwhkF47Gs)Vs?;!E@ExYmH&oi%kzom>cCVrkg_4a=!Eu+Bz literal 0 HcmV?d00001 diff --git a/data/resource/icons/Processing/B03_Processing_upload_ani_04.png b/data/resource/icons/Processing/B03_Processing_upload_ani_04.png new file mode 100755 index 0000000000000000000000000000000000000000..337c82f2c1031b40966d99ab5e14677a22ef6646 GIT binary patch literal 1275 zcmb7EZD<>196uYD&9x0%MX>XQ^Xdmhlgo3tyX1~$U2@N53-QvL1{U#4FLzIyYkGI- z-4l}*!P%nJFFGs87>p@H*bo&JLGXhwbh1fNnERmfgWb>%1Hs`ZCuQ@wEb01T6g=+j zdG7!F{r<1_`b6>Y;NAm!DT*4*AAu$E91gBMVRB!){;Clyuv)>B?lf-c9-=a)TSau< z)@M)&>E^=xMKnrLp^vR{1y{6ZWy7^&dSDZ4+YN%IsL`=@LpSOO(^WKMIcesvFTY}F z%SM6jZa0EP7~iu~;@1>xN`9V+ZNcwoC|Ygmt=Y&pE!_PBR@|nY;(vEJJrp za6Qf3ajK$C(2DCJT8Jg0MjQZI6k~uFL=ikgb8*12adL`Lz{`Rtb4j{;FhtEWr{xmN zb+yPU&D1b%$Sm7xwPLMA%=KniAW2fd!EsSy5%m`wthb|%Khk4>$TvKzfi2ge14g~- zHgTFEp56(;Zj`K<8uquy9lx6_k~X%jH&_shvtGw0h_8pzw4D*Qy=Cp=61waBJ^B6e zLIbfScVVY?+ zEmO`3ydXe6lL5K7N@^qVK!7PJnFT3cg%I`#wgZV)%p_Pot0)-=crgb#08~B&6Ds5q zAj4%PPF1o!Y~Jy)?ieT#4Y1Z-Y+^^OtawPru2**5xn4I-)LiWPHMc=4lOp}(QOhyi zmj6^xYQjxIg~+pBL}t!&ZMu_n*}8{5Bz>33@+uI-gvtYu0!dZP37n)Plc_jJFKmZ`U3E@=dsX-$_#NfdBK#;jwe%l#1EU!L literal 0 HcmV?d00001 diff --git a/data/resource/icons/Processing/B03_Processing_upload_ani_05.png b/data/resource/icons/Processing/B03_Processing_upload_ani_05.png new file mode 100755 index 0000000000000000000000000000000000000000..582ed4b856bb71a81639eaf4d02ca06f55cb8680 GIT binary patch literal 1277 zcmb7EZD`zN98aySZM}|ap-^=;rU(;umpr*7cL_bOcb8;6y3~3-*x~kJx#a0x?B%6N z&dZg7rJzhym=jbG#1Fy{wH4eqKg_{_tSF2z7>EeYjnYqp`lW+ueR8|&`e76dd3&Dx zf4|@VHSf*OofsZ^ZV1D$;rxtPK+o~;8t6y&*7iGExbUTtzhE!=4b_EMMz_ll&zoum z7NDv(m#@Jo4C~!6iY33KoD?+MjH#hbEHE8}#;~b$;HcUX^zkyR7*>k7_u~};H}n*7 zid87Z$-$~Iv*N;qmARs}vZV1kk$x4Q3Is%8LSMxLvu1fhkRsZ=0(uX(Ndj-1_)96` zp;IMg9?#h>#MxLps!;&o92Wx&%W>d1PE&v;DRgpCzz8fS&MQ@eSL;Lq@f1*ZmZM zJbf5~=@g7g)%W(vEw7U-lr}O@9TLPS(rw#>@pVy(ayY^?_pLp@03SL3SbneAbRb!P zo?Uk}RK>-~15$?zg@&CN1Vwe1AgZFQ);!q$peVv?$a%w3Yoe{yO=$UfF-6qthAzk~ z!?Gfi$pD#>P;Gbyuws%=WI>XVL{aP#90Ve*n2xXvPsJq~aGWgC07y(WE{l9NOJ%bO zDMO3#E;es@zG`VO6b-S)BP@F;R>-+f^=-Fk+qG^t%~x&T_Numn=N35p*eS!(?S}VC zSZc(LLKUHFyajdHwN1R8b-{RyzKHrRlVv2pa&d_PAPEwZB(pT1OC*vMND>{a{=XAO zB2UP$%MNs1cMG+0__{wsXt6(q&_YFX(TrWDw}#Pt-pPxZV(?q}!QNiF_q(3a-lN#p zpH#7Be&m}Qo6kc0NMCslKhj(7d-F8$bnBVvUm|yZ$lkvpZud)5J+*<>#J}288>^*H zFO0W#^`j$y|8-%s@AloB1MBrC@7x-tS3hc00xvox$g;J-4@}e}DJHaQx;Aat+=Zsx~iwcz!1`@y8%r89W)`f8LXJ#>tVlUz%JG zR(InUo5v&66SLO`bMJeFo{2ZU2Vb6Ei@X@wKDTpzb20tX*qP1i1DD2jKlt@xdiuc^ dV^{k|&SKH~S9Y)J_x=ojNO@^aT+g0e`wt21q_hA4 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Processing/B03_Processing_upload_ani_06.png b/data/resource/icons/Processing/B03_Processing_upload_ani_06.png new file mode 100755 index 0000000000000000000000000000000000000000..bbb7244872c0784fbf3c180e8bc0c37aeb6faceb GIT binary patch literal 1273 zcmb7EZD<>19KV=WUA0&{igvE^yvmrm>0o?Y%q6-&!gw4f8Bj2y08BBlHxC1q3F(w#5Qv%o2 zByo(9B9fJbRqfEC4QCgp3(8_mNvK5XNqoZN5P=R|8Ta(M;c#A(=7|;yMf`d2}0TdZQCmRAZ$FLj~!@CE8)NHlP<$1BI zg;q(T>be$3lFeo_+>C}zyF!9QBH?pTR0vswoCU*`y^!II_ZWESD7I#~nrYxZqg*l@ zZjwNr-V8yv@>-?pI$Pw1(@hpi8|ldw3BnQ5?%4S8^-z+uGeXz5tQ|KGZ#jQkey6Zt zK{5{=vtcW!iskWbQacOzhTRxANw#YcRZ*1d4(xo8BHP8g7nH5{-tY zaw0=B3{R)iK#T~eHVGOqd^{1$fH*DiJl`YO4n$gE6=9=sL5xvZh81}V0D(@&BAIk7 z8&89b$Wjc|!{!Xfl??^@qCQr;g{61Ia#@15PIHnn@ z*>oQBOO3cus64c_XQ3+ErjB>A&S|&N=TYCKGqeC0HY(5n#6e6DM21RaW3hMy#EC9e z{oe^Aktd|zW!t*0w}o2Sf8ClPwAh+LXrQ9mXvTJLoctWk=j9xqE_gqbZftI*g6{`* z2gk5;Z}wpu$MI`K?tudzw^q+j-uOG!ce20qT`Gxz7OVbawo?iQK`M%Jl$XDUH!nN0eD@XS|_5B}rU0Qmzf6veDJKpJA gf936emk(k?^Vs95>KnfY%KlFd%L&u``ON&%e_VN`iU0rr literal 0 HcmV?d00001 diff --git a/data/resource/icons/Processing/B03_Processing_upload_complete.png b/data/resource/icons/Processing/B03_Processing_upload_complete.png new file mode 100755 index 0000000000000000000000000000000000000000..bbb7244872c0784fbf3c180e8bc0c37aeb6faceb GIT binary patch literal 1273 zcmb7EZD<>19KV=WUA0&{igvE^yvmrm>0o?Y%q6-&!gw4f8Bj2y08BBlHxC1q3F(w#5Qv%o2 zByo(9B9fJbRqfEC4QCgp3(8_mNvK5XNqoZN5P=R|8Ta(M;c#A(=7|;yMf`d2}0TdZQCmRAZ$FLj~!@CE8)NHlP<$1BI zg;q(T>be$3lFeo_+>C}zyF!9QBH?pTR0vswoCU*`y^!II_ZWESD7I#~nrYxZqg*l@ zZjwNr-V8yv@>-?pI$Pw1(@hpi8|ldw3BnQ5?%4S8^-z+uGeXz5tQ|KGZ#jQkey6Zt zK{5{=vtcW!iskWbQacOzhTRxANw#YcRZ*1d4(xo8BHP8g7nH5{-tY zaw0=B3{R)iK#T~eHVGOqd^{1$fH*DiJl`YO4n$gE6=9=sL5xvZh81}V0D(@&BAIk7 z8&89b$Wjc|!{!Xfl??^@qCQr;g{61Ia#@15PIHnn@ z*>oQBOO3cus64c_XQ3+ErjB>A&S|&N=TYCKGqeC0HY(5n#6e6DM21RaW3hMy#EC9e z{oe^Aktd|zW!t*0w}o2Sf8ClPwAh+LXrQ9mXvTJLoctWk=j9xqE_gqbZftI*g6{`* z2gk5;Z}wpu$MI`K?tudzw^q+j-uOG!ce20qT`Gxz7OVbawo?iQK`M%Jl$XDUH!nN0eD@XS|_5B}rU0Qmzf6veDJKpJA gf936emk(k?^Vs95>KnfY%KlFd%L&u``ON&%e_VN`iU0rr literal 0 HcmV?d00001 diff --git a/data/resource/icons/Processing/B03_Processing_upload_failed.png b/data/resource/icons/Processing/B03_Processing_upload_failed.png new file mode 100755 index 0000000000000000000000000000000000000000..fd118e76b8c3d8851a8589f42971b919cff01612 GIT binary patch literal 1422 zcmb7EeM}o=9KJDQ6tkF+$P`g;hf$WTz25b%vtJ z9|0l23vGMSpaelSo)K&6jrw2(6ILWEZ`xRsk_yoXQc{{!`EUy`&?XQOWjA*7+?N=%wIEF5p z7%gt>j#Kr)D%7WF0Hv*VOV~ybsKa3;DB9s5wxgttAaNVK9TtLOXa_?Up(_^#)ij}* z39;OY7M!`Us9~rKjwcccYr<|-vsrVUT>Do$8!xVCI##+N|_gX<$CY1LXcLf}8= z@5-;&w5b3O0bPk}VOYiHf;Cd>3z>#1F)%@1YXPu|93Ruc@n?II4M8NvKfN4K&WLEAl6RVT`r%)Mthug zg78yLhn?f#xX9=AQY3B5U<0yl@NyWKq9#^c#nRlmSjMLT-cYm}MTup)sVb@%iXK%| z)K~353+qH#P!jr9v(%6qhROm>Yy|?RDH6Jzbw<34KIQRptcNC@(0e~c5Kfz)<%$TB z^LqUR$D(5 z8l4!lZuC5SeqP>IekdfCKUwMScVam?sky=Q;Zt?LXXhx>*B&Zw$j_&+d8C2b();=c zg|(MEgxhZ%+}|lhCUSQ#d=-lf6n|o04F0;cr|HIlAs_b zovDLamp}b;s`b!t-%?(i!Hoy9ihucga{q@%;^QUHzC4va`{HAGee{p~Gk)^@rc09p z|8UP=?6)?O>R7SxQci+j_~~l%?c<4)r`7YNU3;z`+xA0VN{@}a``t6WrKgQ>**&Lr z&LCsgj|@CMI$hOmy)u6O^M>xuCAuMZvc73L}3p4y4)bNW)&_rp*9e5rF_B(0}<8d%?F@3e%5_6_BAo;V;~ z>w7c*YXZMjHmUvfO*Yy7z+8Hy>!T|>ItJVw!gl_-g@P^d7y92`dTaCiZtT4$d}n)( hUpRK*#7ylg8<2S8*sB+(r}mnE$bi3+{n*>s{x6N`0=dX2$l$G5%OcZ2Iwj z{GR9eeZAf8tFOt)%FluzD92Mv`?YVL{w%vsd!PNOi_<466I2_e7B$Yw0IKGt5P&^l zwiWmR%Xda6KqUm-drSxf)u6YIjPY}og;XpY8_meAT@$8P+2$;?hq9+;Y3orq&C)CfEpy8BM61veDy9qrBdw5#jKHwW9jL z9p~@LuLL?H0QCb!ipiW-#g^5Jq?Q)a4d-JZy{z00v?{vU4h5t(yk2s>=DZ-X9kj&7 z!a!6#v=fQN1fFzTajTWatE(}$iP369;Fy(m5Ox>lz!{pR(*%ownwF8*umo;laGa(v zJ7vc(26xy9Gi`BOt8F;twi8Sm>k$=|6*-`b>R90p*0m&-q-4OVk{pnvj&wKq+9Xv{ z+N20fHQL~^CPCz-xKgf{TI1G2rGYGL0=!$6!f-0 znHhqxxJ;M{naA?~J7K8i395J5qOMCXX|1de7tWA2SvZA2)QTo+XKc-?3kU>d?DEjn zfy6h{Ur$!h4G)h+CH$eAC!V_4yCS=|1cZy)Z#KMF-Z9WuHTHVbrbk2n-m|@{i$4%7 z%k;ExMcEU*4y6Zyqcd&R8}1(a7KH`bve53+ku#A=N9FKYOEgU-1)%<*Dq_ z6@A0VxG8k8>ZRUicK`m^lIBM?C?-~4DN{(Jvueftd(8Cp%Kh3W>@mgj1o~;4TnN!PrgXh0^gxoRIJyl?_f zf!PW87yfGO%Z={t(Ab9DBg;3tk6q$QY@Xi)WhI8*A_UnbM P`v23z)YC^@8(;komG%Fk literal 3176 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 literal 3481 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 Hu0mjfjmmyL diff --git a/data/resource/icons/RCS/B03_RCS.png b/data/resource/icons/RCS/B03_RCS.png index 6f3c47d98c772a1f1791e6523b13fdc52739f9ef..4d9fce4fa1a07c53e177cffb036ab06c6a5bbd15 100755 GIT binary patch literal 1976 zcmb7FX;2eq7!GoXP!JKdDAYBkH7GeYn}e(bOtOiIHAq856h)V0Lw0g(*ep%39qN?Y zB3=ZYI$GMQ)mrdCd#RwP6f9D}dRH1zD->-lRILhAi``J5{^&Txfr0eqj{JfLrsPG zXRu@jBd{7bWKmhV`LL0&b5Xwy*JF3mXa*xW)#F5sR*V92u{_)%WA@gbU;?;F##|)Q z@pVomX2CTpNi1V!n!&izYLuFosVP9R2c`+^7=;2JyUpQ(Ju>DXFHFDtw|Pup(1fze znEyDHrAr5t1c?D6F2phNK@bp&xu8%a7K4d^fDa0IeEJk~Kp`v=!vYB~bTDZ((qxA9 zh=J7zORO;st2spF_$5rT{P!Gr9nm){cU@jwxJ1LxS z0DeX^mnfiQOxn|bLa;mac%FrFjgUKBL&>7k#`B;~9?0eM$Uz%_e8VW6?)eD2eZ<;D z>9K#E|4)9Gq0ou(^q7k%AdPet&C{QedcKg~a3}^?hmux|uA&;Xxv;?xIvu=#b{==2 zHiR%1*f9sCMP$r^0^9_vMM9AX5z6JDny;d3BNc)oBuOe!fJs6Xf*`{L&jM*Ju8GDf zMJk0vp;Cepr4$5JLb(uuk|cs8C8CBPNI8PlI$RX$Fk*gDKNkNNt9ULJR+1P>5u|}2 zY{T7@ZXqbbWg(n^GD8fo7vT;Q;dUkXOHFgrp&}TGzmA#IBw+^zvkv3`p|1i#P#}@Z z6>3nT64G(=A&H7FRH%iJ9Fp@@%pt7leGgKB_S|jxv*Yn`$$}Xrp*dfT$$IY)7ib;;etK21jrg4vaBO3#BGUd+&_Hl# z>b;w_>=wH(;O2w2#YYX*=YaETGSd&tS&`zM(vh)^b^GM#uz{cpb-lcfPu6w~>^72f z|M0XfUVAZo6ZOvZi77GXE9!sQk;0B=oPRLqoYEruF!<>ix4fV!Zq|BH-QBHP&n!uE zj{2eXqnGfO5o}8>t%{iL+WE@b{=v`Ty-d;00EbyBS-&yww%bTmGU%J=0ad{J~ zCPZ&6(*Inq-Dis*zgrS;Y+75+2DfW|RWo!YeDc>XM~dbp-}}T@f4;TeH}>#$v9E&N zW3R{`_yRaJL3BB+p^&h2mmJQYGWW=uUpIa@rY+&CTT2=mf*PT8ck2NE>cPUPKfiUf z<{+MZBvxH{&1>yfpzEsJTAQalOkvlZo@I}`Ul~4`)yTN`+P3c^YPN5_)F(;bjW%^D z_jc9Vw!~|k6OowU3#8}R*(O2g@gMTlcv+dC>2h~fH)Z@IsQE9){*HiYfyArW>pNzS zx@|r-wYF%sQqjVIrha}l_S09$jQy_I{w`oo2zx2DL0|dXqS_wQo`o`nY3JEd?dOVu z#_fq}{{2W`{e1C{$>mQ+uc(Zkop~lUTO-KV?7e?*)T&8e_V%oge0%fv>k~D_`(9Xo zV%g`aX=6LDk`tD#L6#mZ+r~j3%d^K+csCWVwR|)qvE@e3<@nl|$J~hJn&T>t=Lzi+Z;C(4Eea5b7qd8A!9WJ+iiO%jg4vutlnO?MZbK} z!yD7`ZuQ3}|Cssyf(LJ;#f|$&dS=4HgZt;P`a`#>N_H-OQ9nLMmUP8>CFepd%rVci zb$_<8T=?GBWedA*!KHoQ61nNu^iL9b@28a<&h+&^4JqI7NZ6?@4P@h~?Doc0#Wqn& sS>BF4WbgOgvf?Ma0nNVfCMY0;k(71&{)?NobNv5Ottt&Upjh$t-`i^fM*si- literal 3169 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 literal 0 HcmV?d00001 diff --git a/data/resource/icons/RSSI/B03_RSSI_Dual_Sim_00.png b/data/resource/icons/RSSI/B03_RSSI_Dual_Sim_00.png new file mode 100755 index 0000000000000000000000000000000000000000..4a4da5417dfdd8de8c9bb57e65edfa93c70fcdc1 GIT binary patch literal 1128 zcmb7D&ui0A9FI)=G2KP+prC}*g9Dr7rAeBE)!8dO+?hJYF{9Lu;4KCF199qC#D}+?mL3KzMJ*xpL&~la+ci|L8jcvNs8m^i5 zH5+-X72B{qFCb`&nwstfmfeDwuEU1wXPDn#w;0-WGR(YW@@9~SO?PG`gmWvUs=d;( zRfn0rLr?WILf}Dc(LJy2M_Mn#^m#S1j*mHp?wjCNhBfj7RJUs}(3o34-iK7v@9}SX4(#G|y zfCDVgg?*biz9GsqPeyp&$U4FmcLGq@A_6-M|Q`9J}&ARrqgj9&5%S%(#32R7<_@$MiqgiD{49i6tSS| z`jFr#kZ7?E!OC(PCN+B@rfqO$g!-MC^r{BxS#rrvH|ROGGoQat;`LP`Iad-UWV DuaIT# literal 0 HcmV?d00001 diff --git a/data/resource/icons/RSSI/B03_RSSI_Dual_Sim_01.png b/data/resource/icons/RSSI/B03_RSSI_Dual_Sim_01.png new file mode 100755 index 0000000000000000000000000000000000000000..cd3590d6afa23ea5cff3e90c6e1fb26b95d553ac GIT binary patch literal 1130 zcmb7D&ui0A9M2d`o!dnbR1iWc=)fj@M zEY9g=^1T*6=f}u<_xHLTZ*ZZC7tj*!SRtfx4yr-A=vj4GhL*Fsya%T#YINJJRB_dO zpxVe|t=NX`dI3RG)bwmOu ztvJl=3_aad34sT(MR&cHAF16e)8kdiIzHwYx@Ur$S?0*8s#&5n6hc~JQ%Rc#fR<$z zh>|RWJG8(9f#b<7CxNI+vMQwM{>2cr&{bxZ z0S8!~3wt(kd;^qeo{jLlp>>4I@YwlN`J>8e0J$=ZP&>3q6_*kxq|O$K4f`>urWH0J zsiI-EBG~(3n(9O1yz5&n9ocOU`nafPnReTCR6`OaNf&cDVDJS}8$|??o>9_ykP!>I zt`7)K0*Myu5UecZa(P2DfRfSyD2O>t1e&4|Le0=Jd1Zht`VqE#8^)qB);-1+&cv!( z2rZ1l3PPsP<0r(E6_1Q(le~gDF>> zf3diG`NrP+WdSGNZ5~|NZ@itDxqo%@wT|5_{^$2w)W{h1YI`DcA+hr#p8jHCUjLAP G^6Vc8U}c8@ literal 0 HcmV?d00001 diff --git a/data/resource/icons/RSSI/B03_RSSI_Dual_Sim_02.png b/data/resource/icons/RSSI/B03_RSSI_Dual_Sim_02.png new file mode 100755 index 0000000000000000000000000000000000000000..ef4000688a7346eab5012b9f536329c2856044ed GIT binary patch literal 1130 zcmb7DJ#W)M7&fW|sL%x#V8L=hq7t!viJjP1LrHQ8jf6vRBbpJ%z9uHI&)Ap7>4Xri z0F{Z6-vE^WF~9&wRi$o742VuF3{3n1L^-EP+M%k1<&V4b`#jJ4`J`I8F*SK%l3|#s z@;o%?_k8@EJWk)6zgDeyLyC2>fR{+m3=osEaRaes*K8sKnRfsFHkxIai4CV#Cw2X% zW?`2%V;eqleTrt7*}2F!tu`WT12r8l%l-cFkz*Y@%Pq>fsQU%fa^_b8w6IdCSu1Tz zwYj-#>};e_0v8dJjogkGYEhOO@M?4&9}65iFd^+Mx93z{ud)RkAXes62}=ZkO{aMv z$>}t>$|gmS6hwNb6F}1Bw3f`U!;7P8fxV;|ur$=7yDZlt#McC&*X!}U6pw?Z08~|t zIg-f)wMc}0kC;)y3#Ug65QSFY_{6~;8#9^>+$C9#db$^a>l;q9MZz(;7Y>s}(S&?Za2SK8n?W1V zDwfPnhz37&UAsk{cRaHLvDI~vN6IkEb-RwOm1Ielp_I#kl31j*Q6(TlMa|@aA{8No zBZ7lKs>RzBD;Ek-EhH77rXT=CDVNXX6+EAQM`E=? zfJ}me8pfSbH&t7h;IM^#wy=<9uPi#AjeFrtTx!ZqLxm`CmXTcwu*(jzt~rP3OF1Pa zC-a$<3e=)R<4()@QU*XVMZ-}=i5p_=|4x`dJrUwAJJ5BbBihRGay&zHGoC`^(V_)( z#=iZXY|;6=U52?@wA1*ryE`}W^4O^}FYdepudClbl`bu3*FSGwKOx@R{_*C~>duTK zRn`_aQ--niY-{_=6fh`&jGNzS_RA!O=*9 zi5$eEUi6|DCDFu-2S0)b4&JzEVq)USi$=~S_&T=1fsokrdj|`n3 zVi;zmFat~UdoFwiPto`G&ov|55Vb<)@Dge2K4LN^UPNrc(W|J0baUnQ4w_(?{w=#) zAr*aG8w>AjS*yPDFsHNC_pDWIGo})qHbFDZzY4i|*2#MTn>He6!h%Hsew3 zS9u`Ia>x;jMW{t2SaFHoinzgOmjR-{@NJLS*kwaTeGxZEnxmc`gy483yK0f3NA3ol zWYM(oE#2cmRN(!#O&DJnrD-Q49H(a;kPUD^XhJ##EfN8GLuuUZ|iIN1xOa|lymDWZUfdo@> zG7D0o3L)$g90gLXs7bL>Qq8I$1A!ce0H~szO~RBQCi6l}qBY5Mu?06Ex@(|NG{oA6 z*xZR&CFdiZV84uUz1vMi3lkhz*kf~Z33hzJc1_$2E`_D0+%!~(e0v$0c^^A$JL`&l zjJ}vj#idv_8JB^qiZt$ol+7mr6yhoBx*&2Ltoh#w9ddK-+))eFYohX%jx?cwyz8bw|2h2 zzPq{mX{Nq+apU2W3xDABp7nV6+xoNd&FLSeRr$ESJNEQyZSBGQWZ$5`Y-|mu2F@5( OIQ|877QW2hyz>vL{b(E zc5oti^Ws0CqM!#oC@R8k3ZC>Pf+&c3^B~NZuI+Xh14Dki_wxOGKHs0K#lo41@yT(D zq9*clYKeT0M92FXhC5~esf>-Pkj}ei9hRVJFJD@R(-bxO&?#4N z#W<%}$c>wkO}y*+1Wi%Xvt8e`nh?`fSa-ZM^Yi%&hIZ^Uvm_dv;pbq(nOh0q!b+iR ztu!s!W@cyT>8?TuT!>A&>$bd5>86<;uR_+*G0V_B6WmNQn@&}XBAr74q{Vn5W^n+} zk`xDmC`sTH&2xZfIdV%eASj}w@JYIVF+?q}Yf4Gg`&wj|W*Qj#3d?pnop>h^M?swh zvMfg&JRc(#v2fYLW;f=AQv(JShF0MC*g+m0F`8A>#%YFlx*3A&mz;V7heL8N>?ez) zjqRE~3*sCb^lYN|1}MYW9pSn|>kyaVmh(IEhvj7-vLzUzc3_bz)~2>e?Jg7<_G3^C zGiX9mMcr(Lu=m3-lzHO3^1A^^9q7}CZR?xX5rzes?PN)EAgoMweG%cCqc)$Zr8({NZh)vIek!XZ^pdO@hNy*{B*jtR;%6{J^aM}b>UU^#~oqv z*z1#@SJ%G0PaS!7VE+8kTW{Cj-TbprK9qZO?e^l#$QVa`DC}3hzWjY9n)|#~P#kOWbvQ}FCwUyWiNv4Y0-lUy51MumvN@{AO%Cd-pl{@`~5$2 zxiWEb_m0Cm7>3zh9@ne%`DuE6vW?#FJzsXx1u^Pm63>#h9U-RR;syd`-=0HNWV@ZS z56~#X4E*BN>ZER+(j4q_c51^Ven`;_Gdh-pwlj|iXrMVS$g{8S++~61=Gkf460ER< zn%?+ggeDg!YR=-kqq^+a2{4*yl)y*C28q8A#9ESPySy5GPq%p%bWO;7o_*(3-Ku~R zju4Q!k&Gii2o!~blB_83I1mLW@&Y}T43sok(Znq19V}Ig+*z%vn>{VM%Ck*ELXGF! z?KamQ;czs^LseB%4pGcdi%i@Jh@E7Dc&N{yqu7bOka#!%DWl!MEs|%cr|&}W!>Tve zB=I_V5ciTr)5a%u$U{!xqpnRFUms;zn!^xpXo^2fDKi1;dsaVv6Y6=#Pw zNNp~Z8unt)EIXPrM0zRMi0vEUAFVa#|ZW^kNBJUh> z%?SITn|00mfWD}RrJRy8N~Wk95`;xrG)z?-5tX896ik!tVcm~T7*9Rn(=OZ4b^R^c z%IWL+4AI5<6rz9@Euu5Fy1$a4^Z9LAFVvDJjsM=h9UJ&*%g((wrf$LC*LJSGxw@1L z?s>V-n;F`BXYl?EyY~FZo|Baq2hLnyy7-E_cK)lW>tOrMUGmW2^xv2M{Og$T>(^5! zI@|A^zED5-@H1`r`^IIke=1FH*WtJoZb_iw8kP&|az+K|F~UTWITD(3f#$-GeL`^7UT+zu)iw znX{7`EfxQ*kuoz-zvW6yorwRJPQ-+p$+%@)*b&?z!UJ5G$bl1G{tR0C%o*RbO) zow$ofIBw%_e!W2(_7TG+f#75|LK;L2&2b~6Y2>&In1Uvr_roIp-}M_j@Vz2GquP=k zRdCB6UykwA@YVDH(s$b+s4T`2Oeood*V zph98{RAD&hN)Q4~6QH7M8axDK3Cg0xPAvx&L)8p94|)gB)M9VWs3EJT#a2bWMQLP+ zVyDv)I>Q2q=S8UNdd4BkIcAYdmO|>JxiA^(Ga#I}u^&;Ngdk&dnxsvOJoEH*2ticy z=UX&cB@dHcvRK;0)QLnWNMhWz$>QsyYgMPJtBNTF$y5Id7ry#t`Xbo!;|_IbaOUypzaD%n{r>Ir z;iWCNkAB_Qd+#ITzz@x{VE0sUxcTSz^}8!ac2JJ~ar(^pC(Wmu9{&GbdguO^@{62< lJ|DP$`RdK_gFkWaeZcL$yw~85{d_6=b5zX<^lN$c)GPQ4f3pAp literal 0 HcmV?d00001 diff --git a/data/resource/icons/RSSI/B03_RSSI_Dual_Sim_roaming_02.png b/data/resource/icons/RSSI/B03_RSSI_Dual_Sim_roaming_02.png new file mode 100755 index 0000000000000000000000000000000000000000..1b0aef83cf0cb305bc538e2e44fa33aedad8aba0 GIT binary patch literal 1193 zcmb7E&x_Pn9FGWEbzMYTtVNbbhN^{5GB1;4Ct+uonR$s0nsu2ScIV(>Gs)YXu$#P? zym7J%Mcpc`hk};k!BX9eM}O3VJt#!N@8|RR z{>+t$@#A}Uf3ch6xV_aAsK%a$((98Q?7sT)vXd^T(V&xLmUiq2b0wEFF{t|X9Ij#8 zT|B#nM>uZ#J+I!N4eONd5MQuU8zJ#ShUU1Du_Uyec}zhQ&v`+SfBonQ4?MTXPb*f= z3M;tfomh(S@-0e3 zT@*W=j?l>qB$^YUrfDgMBxRXJHeL*8F|VUSKaE;l+4idi%WkzKbpJ${nY5< z&ehWw8wb~q=wDuIUICv@7W2(#SLmcSf<5eEWp|ckS?EC)Jh-cS*o&fx5zVG}7mA_7UzDMJO26AfM0djuPSM2mF^RsotU>wHd7bO3-M7IH;VD@bBdR76n&Lp^LM zh_M|wFcnR)-bd`vrdYKYK^vo}f>5K^O%pYQQCveIU7VEZW7A&XqE>u7Ej8gLq3SU5 z&O+CWkWY8Au6m!)7i6KBlXFJV6cj@Qpdbl`sR)CDTu=?yS}CWz;9FkfWKGzS6=^c zJ{j2m;-EL1IdE&>-&tnm*%$jqC!QZV(>}lSlKtuX3sY@+`|rD@%)s=ci}xRV&EL2@ z)xO>L`2VrSnLBXx3bVYI)sFqKIJesV^4b;c*TZYnT6Jgt&8Pdm(sJjP>dENvliJB6 oZ`(X0Ew4Q|ZD0NQ6t#6XwKa3-&A0dbU(&xv$r#uFEX*#w2iW$2W&i*H literal 0 HcmV?d00001 diff --git a/data/resource/icons/RSSI/B03_RSSI_Dual_Sim_roaming_04.png b/data/resource/icons/RSSI/B03_RSSI_Dual_Sim_roaming_04.png new file mode 100755 index 0000000000000000000000000000000000000000..37c13029ee51593ee5e87fda87442c48f1cfca9e GIT binary patch literal 1186 zcmb7EOK8(z9FNZTRD2+8f)FyrXOn(uk~Lvszu*6viNS#*n>Os+ zKvC4Dd`>NpXLoe1TSM+MKdxBO0&68aghp_~3?P-ZQ5n*C*Q~$-H0`l7?_nQBbv$#5 zC0sI&DHd{BGqPcuu20Yu)z{zjO=}clx(q9hmtuase#_8~onlUkM%?hTuk(SrkB8WD_wf z4gf7lED%IV0*7cm4tOq3PALWiMU)i2m!3Zuq88XAN4r?W#6z3-&s*{Bijk4jCrNvJ9eoU_o@1LV@J ztSinE`n<$vlTuR4>b$H80Axg7(`7!vOBq>9>%{jtto`2!0D&JJy~r{}iLYMqV3GpJs+H{RPwhd;$Of literal 0 HcmV?d00001 diff --git a/data/resource/icons/RSSI/B03_RSSI_Flightmode.png b/data/resource/icons/RSSI/B03_RSSI_Flightmode.png index f00b63f68a3f32fbc7f7643f0ddb47a76e30c705..5ee7d175f39eecde57d8800c6119f346fa404d22 100755 GIT binary patch literal 1394 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 literal 3302 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 diff --git a/data/resource/icons/RSSI/B03_RSSI_Searching.png b/data/resource/icons/RSSI/B03_RSSI_Searching.png index 45cb87f437f71e3cf1a11b63cc678e55a6c68fd7..88de5f01521389f97305c4d47ddb08b192e63df5 100755 GIT binary patch literal 1388 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 diff --git a/data/resource/icons/RSSI/B03_RSSI_Sim1_00.png b/data/resource/icons/RSSI/B03_RSSI_Sim1_00.png old mode 100755 new mode 100644 index c0069f6140481832924397ddc61428cfc36ab30d..98512eed3fdc62890f03bc0892a814b3f84b8cb8 GIT binary patch literal 1198 zcmb7EO=#3u9FNCfSZwAJ$O-A=)R0IwFfC|Nb)}N|NVad zkN3|?Wp-wCWcLWeFr(#?S*7E6@_aE&-+1(ot8~~!ta&nr7D&gzkjZu zyrt96;S|FR-S=zrWZpiiyC~qD#D?z%5k)i1)O0s;+$JP!9WMG|j{E2F&m8M}IqtY( zi*{tdhF@C7aBg|F<}No~&EuvIu~S{05(JPqY&U3yvEI#bJzky8lWl=xdnTlr<32bw zZ&z3YVaO_cI^~K0u&T-fSy5GRkd;Ir2_n7K6p(dA)ujyEzc{Lfy#>8$7W-OsmE#(O zM7kh!Ivu`~<`G^LfTn2)ha{z_MJiqjiPKGm@%{mW31b)g5%E#TCX7xUwMmYno_+`+ zh^qc#gT(9PVcbs^O`FhlA_4HCfO|Gcd;^qiZ;l9pb?cZ^;Ya5`$sgC2A}Ca0jM~_x zRb1G=L27fM#IPTOZacUMX%&l3D~7!fwyhtd&ikR$GLhR3U`Wblj%&AlPcJI6qL^|% z4~n8iYop0PF|%5x0J5@Wn&yCDBamwG9>r!f1Asy%FRH2pfF)=1hMYCBd0910RTY&1 zwj9R930;_oCRqO?R@)S-8yGqS;Tl4%!D*^A5J7PRMXWKW@PIw;haT$0NvSC}4b_C$ z{~mfpi~_cob>07jzErSOSuUzdQB*A%^rAH^AX%E0E{H(n`dIIOCrqH82+1kiaOwtI z^e89O^&X;&^)7@VEgGghHu3wpCEB0Y%4WXSeOdo^ZEboew`Ke8wF6^oGf&Q(eX(+4 zhjjD(*!9lIEf4mMP2YO7_3QDWr=L|G?Hm(UFK+#&RB4vZzZ@QK{dDN|k(;|7UcR?7 zyys7|e&)_^h5Dr%_}jZzUa&u0n0fQniO=u8YfP@rOul0N9;t4B)+nd(w$U%E2j2cT uvE!FZlb7M%Tc@+%?E`Oq{p+=HmKkDJOB3nw!+SHyAEa!}n)eE)&i@Al-F`O! literal 3116 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 diff --git a/data/resource/icons/RSSI/B03_RSSI_Sim1_01.png b/data/resource/icons/RSSI/B03_RSSI_Sim1_01.png old mode 100755 new mode 100644 index eb7a15d68423dd8e0ef4d0227e1082b901c2a868..94fec03e5909ee05ed18e3e2ddb1527d76ee5d68 GIT binary patch literal 1200 zcmb7EUue{J98axu+O4!xkm-tx>0TyYl3$vnCiYtHE=ha1bm#TJDih5mzxKji@{7Ox z&bxMu4q=-W1O>qt!J!ioHpd?9i^2v9WAA$qUnYVNKFIJ*L9D-=cWoa^VIj%yPrjee z=lkdP%~D}%qOW&PFT*f>`AMTl$HC;;)d^3nBnqfxAn~~#IAz{mK&JWYvfA{|2Sl>%? zM-^MNqa3XGlM5J5FHDu(g{rH0-1rzf+SDmQ0ExpkgIXBt%{15I)#*Ih7C5$LLaJ%* zy;C!Gfz2TdS%n`?xgr3ps`5ZqR23XxB@sx1NN+U-WL;5pX@qTG996^KtX?#%wiaEb zxe6hXE(ncAgKrG;2+s*X)3k&`l2X(n70-vnX{N$>sKa2u*u{QCd=#xoL$5>`_1TP$N!CO}S~P z2E_gu=vf#AY%A-!zk$A#HC0)*RK*fiQwFVQb0&~XO&iXNK;+t3?|&yupq>cHDO-2y zI$QK8C)3p)qKnlogdr^&ragA!?Pq_|{=AYmGNtC@@|%^F@$Pij&OIw%46IB%Sp4qM z((zr=_16Pe8YjDc-#0LRW4ZsxVE4l

8MgquI~ADb*xC(l0a8LZtO`}y$o-FGkE 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 N002ovPDHLkV1loD$7lcm diff --git a/data/resource/icons/RSSI/B03_RSSI_Sim1_02.png b/data/resource/icons/RSSI/B03_RSSI_Sim1_02.png old mode 100755 new mode 100644 index 0890c0dd25d002ed261345e0b4c58b927e813a81..e264f6b13f9c6eb1c021a97d3c001d127ec7f84b GIT binary patch literal 1198 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 N002ovPDHLkV1kIi!L9%R diff --git a/data/resource/icons/RSSI/B03_RSSI_Sim1_03.png b/data/resource/icons/RSSI/B03_RSSI_Sim1_03.png old mode 100755 new mode 100644 index 487b8bb56be084b5d644fc45a7fbb3d5048d28fe..282e7b61a890a8cb1225dcdf8b86c96f8d43bef9 GIT binary patch literal 1196 zcmb7EO^DQ19FMLnA}kIqEV^#n*GLbQPLh{RvYT{g$C*iHcd*%xvja}OXeN0(2{Xw{ zlQ*5&h1Mciy9%^q^h}B6t$73JdGYIJ53S78;VgkNkhX z-~Z$Nvr?X)9oaRui(#0N(wttQ<9PDy9H#GRb8sDjl5aIo z1zFD0xA)LA!wlW%*b^VZ{8D=`$4K2Hg2&kim7i8F%x9_sRb297^ z*%ZvMfLw2GIYJA|^HqDfX{!#KodMHbjS~2XSfJ~-f>`Tj*dDJ&=gBtDf}RO!X4tn* z)yy&|;0OVkn@HONgg{X^D9MTfzW|~DMP8t{l7^BdE1Eb7`WH*pB4<&n=*7MkU1eC8 zkWl0KPN&0lCO8~5c&Mss!Xb)jYLSkY0%CR3LA-y!prhE1ypVV}012a2$8C~fsi$v4 z@WYDNa7nyD9>o1*(X{bhE94<3@KMhuiEn^1&8-o>zhNDd3VP@Kd->z)Qi%8pig7!# zX%!duZ<5+tC^78EpqWt4Ef`QVRCOXRK!NRJo&TLMo_fM3r)<-y z8*I^|oJ==*h%Pp|5Cybo5$&<((jU)gfBst1bJgyX`r7(>b||y$!?E?xQ|q&TpZM|7 z%F$8r!t2!Uonzbn{4|xlcx(6J@u7dVmv8M!@t1$v{moptId}5O@ObOa%%wvY_TF5* zzB0UTRj+5SJj~b6oNu^~e|`qOKQ;T}%cDE4zH$#-K7Hz`d-Gp+_1vgmJA3WK!L?sL u9{uagwNDP-SI16Y9R1({_t6hCJ9Y}p>IC>KwN}H)|D$Bg>(}$gPrd={U4SM4 literal 3125 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 ypv7%FZ>Vx+J3tL literal 3121 zcmV-149@e3P)KLZ*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} z00048NklM}wEn5QHp#i6R?5nIKxYil!9kNdhrj86%&PM-BfNIPb3_gqh zB%lIrb*owp6yL=1)S?EQd`yC4b00000 LNkvXXu0mjfkV(YG diff --git a/data/resource/icons/RSSI/B03_RSSI_Sim2_00.png b/data/resource/icons/RSSI/B03_RSSI_Sim2_00.png old mode 100755 new mode 100644 index 35afe5983799182917c64966068600f02dec928a..68fac54e0383ae52492aae531edb1a387a85ba86 GIT binary patch literal 1274 zcmb7ETWH%>7*^)3D`jD!**dzpL@0a6LTp_k$&!fY+Ljc%oific!~}McrIT1obeVJ< zE2brB%ZB&X!7k9jprd^$%U1d@RyGKlVcC&ur+FxW2}$Ro z|NFlGa(;bUnwsoC^y(oD!}^N_xs1km^c*~Z-hThR&(UxcDpfe`&cUYc11xL0HGmgw zeIAs7ZZ3ax8%$tW><6n-g;nh>$#CtY9@!*A+e2s!o5+NoZY%(Z*TB5xq=~jRuijwcL?rg5H6(k#dG^cc=iG(%G8<`Xn4alFK&@a{z*HQ$_*%Cg$k zLaQ`UhtQKqve|4Vo8w8>pC@Ti6eA9XNg#_vuj2rGyjP4R4&;(3Oq6*eo#DOt_u zRaI3|ikRzRi%tM_#{iLNgteYv#eK0--Um8#{fg@@_D)l&?m{=HyB?mO=8`l%V>zbV z45CsaZWO8vd}|4qs_)u(C+m{+6n!SA@GPtHoJ#QuOLwBpD>S2s;&_gtDWZ!t|98Sj zD7P+dDg%Sh{cU@Yk_+ zCiZY;OgKAxgdw)h54AHJrALR`+?jvUmycZA7-%ZBJJ`chxbytx3$t6)u@m?DHcuC_ zcjQag`-MM*)572h^4#pfr8u`a@YTm}9N!*jzyB-q1##~B@$DDeYpXwfa{R@S1jPaiJ#w literal 3189 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 by8R6R5kOFLM#NnJ00000NkvXXu0mjf?ZxU4 diff --git a/data/resource/icons/RSSI/B03_RSSI_Sim2_01.png b/data/resource/icons/RSSI/B03_RSSI_Sim2_01.png old mode 100755 new mode 100644 index 8139f4a77c83949f64cce39cdd43861fb19c5c5e..a562773cd108788c9b38c0955a54e2363abbe0b9 GIT binary patch literal 1274 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 literal 0 HcmV?d00001 diff --git a/data/resource/icons_edc/handler_bg_ef.#.png b/data/resource/icons_edc/handler_bg_ef.#.png new file mode 100755 index 0000000000000000000000000000000000000000..38db7fffcd21b2b850d8bdf06bb0d71bfdc1d04d GIT binary patch literal 2838 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

FPe5BDI3VCzg@Gb`tq{T^c6fmo2Xl2BfuRKz zrN#~~I#uQ_f}EnvLKeMA=Qp4zWVPy1v&CvfABT(v)QA|sYt^A<++xLzxzN%B18Z`i z3ipuok}a^Z!$C!na0Cg5!}_pEFUr*jieZ?_VKnN1hAvbuC`?2rgfe0bBpdR}oTPA~ z0I7^jrC6ufVc_Xv2)yKWFB1!)r9^?0ArVGGP`v@+c{Q#D?U3SO|8-+U?U1itVi6A; z66<6?xR0ug7#QU4?uJxF;0^wa%z;Z`YDv*w$FqXsBJD6Z(FeEyZgkKzK|4syiJ2)g zirQ!!Mp-DQg{G|-K~XV|m9P#PLrDW>AZ#dwqLi61Vpa?z&7_UCQWR~9VO>Hv>>Dj4YIEiq92k+S#!Zj}h}&$$Pz=qr*_`kaHt>IPh5%;}wK)D$EU_(6 zf$DU*^uc1ec~}8-j0{@iYb|_Mqq*mzizIxJk)KE0S#iwf{$CGM@fTg@{BdLVqseXLRM(ZhT{i|_ zliGL8GJ7v38&cxX>+Ri=RKZzhX~f=DT-_wL`P16`F0AxAMx#@>caf>7okBsH0-f EKi8rJ2><{9 literal 0 HcmV?d00001 diff --git a/data/resource/indicator_common.edc b/data/resource/indicator_common.edc old mode 100755 new mode 100644 index 4f4acb4..80e4ea0 --- a/data/resource/indicator_common.edc +++ b/data/resource/indicator_common.edc @@ -1,19 +1,24 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd + * Indicator * - * Licensed under the Flora License, Version 1.1 (the "License"); + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://floralicense.org/license/ + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * */ +#include "color_classes.edc" + #define TEMP_SWALLOW_PART_FROM_LEFT( partName, rel_x, rel_y, MinWidth, MinHeight) \ part { \ name: partName; \ @@ -48,19 +53,54 @@ } \ } \ +#define SWALLOW_PART_FROM_LEFT_WITH_SPACE( partName, rel_x, rel_y, MinWidth, MinHeight) \ + part {\ + name : "rect."partName; \ + type : RECT;\ + scale : 1;\ + description {\ + state : "default" 0.0;\ + rel1.to : partName;\ + rel2.to : partName;\ + color : 0 0 0 0;\ + }\ + }\ + part { \ + name: partName; \ + type: SWALLOW; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: MinWidth MinHeight; \ + fixed: 1 0; \ + rel1 { relative: 1.0 0.0; to_x: rel_x; to_y: rel_y; } \ + rel2 { relative: 1.0 1.0; to_x: rel_x; to_y: rel_y; } \ + align: 0.0 0.5; \ + visible: 1; \ + } \ + description { \ + state: "hide" 0.0; \ + min: 0 MinHeight; \ + fixed: 1 0; \ + rel1 { relative: 1.0 0.0; to_x: rel_x; to_y: rel_y; } \ + rel2 { relative: 1.0 1.0; to_x: rel_x; to_y: rel_y; } \ + align: 0.0 0.5; \ + visible: 0; \ + } \ + } \ + #define SWALLOW_PART_FROM_LEFT_WITH_EFFECT( partName, rel_x, rel_y, MinWidth, MinHeight) \ part { \ name: partName; \ type: SWALLOW; \ mouse_events: 0; \ - clip_to : slide_clip2; \ scale: 1; \ description { \ state: "default" 0.0; \ min: MinWidth MinHeight; \ fixed: 1 0; \ - rel1 { relative: 1.0 -1.0; to_x: rel_x; to_y: rel_y; } \ - rel2 { relative: 1.0 0.0; to_x: rel_x; to_y: rel_y; } \ + rel1 { relative: 1.0 0.0; to_x: rel_x; to_y: rel_y; } \ + rel2 { relative: 1.0 1.0; to_x: rel_x; to_y: rel_y; } \ align: 0.0 0.5; \ visible: 1; \ } \ @@ -80,7 +120,6 @@ name: partName; \ type: SWALLOW; \ mouse_events: 0; \ - clip_to : slide_clip2; \ scale: 1; \ description { \ state: "default" 0.0; \ @@ -89,7 +128,7 @@ rel1 { relative: 1.0 0.0; to_x: rel_x; to_y: rel_y; } \ rel2 { relative: 1.0 1.0; to_x: rel_x; to_y: rel_y; } \ align: 0.0 0.5; \ - visible: 0; \ + visible: 1; \ } \ description { \ state: "show" 0.0; \ @@ -123,7 +162,6 @@ part { \ name: partName; \ type: SWALLOW; \ - mouse_events: 0; \ scale: 1; \ description { \ state: "default" 0.0; \ @@ -136,19 +174,42 @@ } \ } \ +#define SWALLOW_PART_FROM_RIGHT_WITH_SPACE( partName, rel_x, rel_y, MinWidth, MinHeight) \ + part { \ + name: partName; \ + type: SWALLOW; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: MinWidth MinHeight; \ + fixed: 1 0; \ + rel1 { relative: 0.0 0.0; to_x: rel_x; to_y: rel_y; } \ + rel2 { relative: 0.0 1.0; to_x: rel_x; to_y: rel_y; } \ + align: 1.0 0.5; \ + visible: 1; \ + } \ + description { \ + state: "hide" 0.0; \ + min: 0 MinHeight; \ + fixed: 1 0; \ + rel1 { relative: 0.0 0.0; to_x: rel_x; to_y: rel_y; } \ + rel2 { relative: 0.0 1.0; to_x: rel_x; to_y: rel_y; } \ + align: 1.0 0.5; \ + visible: 0; \ + } \ + } \ + #define SWALLOW_PART_FROM_RIGHT_WITH_EFFECT( partName, rel_x, rel_y, MinWidth, MinHeight) \ part { \ name: partName; \ type: SWALLOW; \ - mouse_events: 0; \ - clip_to : slide_clip; \ scale: 1; \ description { \ state: "default" 0.0; \ min: MinWidth MinHeight; \ fixed: 1 0; \ - rel1 { relative: 0.0 -1.0; to_x: rel_x; to_y: rel_y; } \ - rel2 { relative: 0.0 0.0; to_x: rel_x; to_y: rel_y; } \ + rel1 { relative: 0.0 0.0; to_x: rel_x; to_y: rel_y; } \ + rel2 { relative: 0.0 1.0; to_x: rel_x; to_y: rel_y; } \ align: 1.0 0.5; \ visible: 1; \ } \ @@ -168,7 +229,6 @@ name: partName; \ type: SWALLOW; \ mouse_events: 0; \ - clip_to : slide_clip; \ scale: 1; \ description { \ state: "default" 0.0; \ @@ -177,7 +237,7 @@ rel1 { relative: 0.0 0.0; to_x: rel_x; to_y: rel_y; } \ rel2 { relative: 0.0 1.0; to_x: rel_x; to_y: rel_y; } \ align: 1.0 0.5; \ - visible: 0; \ + visible: 1; \ } \ description { \ state: "show" 0.0; \ @@ -206,6 +266,12 @@ color : colorValue; \ visible: visibleValue; \ } \ + description { \ + state: "hide" 0.0; \ + inherit: "default" 0.0; \ + min: 0 0; \ + visible: 0; \ + } \ } \ #define FIXED_RECT_FROM_RIGHT( rectName, rel_x, rel_y, MinWidth, colorValue, visibleValue) \ @@ -224,6 +290,12 @@ color : colorValue; \ visible: visibleValue; \ } \ + description { \ + state: "hide" 0.0; \ + inherit: "default" 0.0; \ + min: 0 0; \ + visible: 0; \ + } \ } \ #define DYNAMIC_RECT_FROM_RIGHT( rectName, rel_x, rel_y, MinWidth, changeWidth, colorValue, visibleValue) \ @@ -287,38 +359,32 @@ part { \ name: partName; \ type: SWALLOW; \ - mouse_events: 0; \ scale: 1; \ description { \ state: "default" 0.0; \ rel1 { relative: 1.0 0.0; to: lPadding; } \ rel2 { relative: 0.0 1.0; to: rPadding; } \ align: 0.5 0.5; \ - map { \ - on: 1; \ - perspective_on: 1; \ - rotation.z: 0.0; \ - } \ } \ description { \ - state: "rotate_tick" 0.0; \ + state: "rotate_120" 0.0; \ inherit: "default" 0.0; \ - map.rotation.z: 20.0; \ } \ description { \ - state: "rotate_tock" 0.0; \ + state: "rotate_60" 0.0; \ inherit: "default" 0.0; \ - map.rotation.z: -20.0; \ } \ description { \ state: "rotate_180" 0.0; \ inherit: "default" 0.0; \ - map.rotation.z: 180.0; \ } \ description { \ - state: "rotate_360" 0.0; \ + state: "rotate_240" 0.0; \ + inherit: "default" 0.0; \ + } \ + description { \ + state: "rotate_300" 0.0; \ inherit: "default" 0.0; \ - map.rotation.z: 360.0; \ } \ description { \ state: "invisible" 0.0; \ @@ -332,10 +398,11 @@ action: ACTION_STOP; \ target: "icon_blink_show"; \ target: "icon_blink_hide"; \ - target: "icon_tick"; \ - target: "icon_tock"; \ + target: "icon_rotate_60"; \ + target: "icon_rotate_120"; \ target: "icon_rotate_180"; \ - target: "icon_rotate_360"; \ + target: "icon_rotate_240"; \ + target: "icon_rotate_300"; \ target: "icon_rotate_0"; \ } \ program { name: "icon_default"; \ @@ -345,25 +412,6 @@ target: targetName; \ after: "icon_default_pre"; \ } \ - program { name: "icon_tick"; \ - action: STATE_SET "rotate_tick" 0.0; \ - target: targetName; \ - transition: LINEAR 0.5; \ - after: "icon_tock"; \ - } \ - program { name: "icon_tock"; \ - action: STATE_SET "rotate_tock" 0.0; \ - target: targetName; \ - transition: LINEAR 0.5; \ - after: "icon_tick"; \ - } \ - program { name: "icon_metronome"; \ - signal: "icon,state,metronome"; \ - source: sourceName; \ - action: STATE_SET "rotate_tick" 0.0; \ - target: targetName; \ - after: "icon_tock"; \ - } \ program { name: "icon_blink_show"; \ action: STATE_SET "default" 0.0; \ target: targetName; \ @@ -379,31 +427,50 @@ program { name: "icon_blink"; \ signal: "icon,state,blink"; \ source: sourceName; \ - action: STATE_SET "invisible" 0.0; \ + action: STATE_SET "default" 0.0; \ target: targetName; \ - after: "icon_blink_show"; \ + after: "icon_blink_hide"; \ } \ program { name: "icon_rotate_0"; \ action: STATE_SET "default" 0.0; \ target: targetName; \ + in: 0.4 0.0; \ + after: "icon_rotate_60"; \ + } \ + program { name: "icon_rotate_60"; \ + action: STATE_SET "rotate_60" 0.0; \ + target: targetName; \ + in: 0.4 0.0; \ + after: "icon_rotate_120"; \ + } \ + program { name: "icon_rotate_120"; \ + action: STATE_SET "rotate_120" 0.0; \ + target: targetName; \ + in: 0.4 0.0; \ after: "icon_rotate_180"; \ } \ program { name: "icon_rotate_180"; \ action: STATE_SET "rotate_180" 0.0; \ target: targetName; \ - transition: LINEAR 0.8; \ - after: "icon_rotate_360"; \ + in: 0.4 0.0; \ + after: "icon_rotate_240"; \ } \ - program { name: "icon_rotate_360"; \ - action: STATE_SET "rotate_360" 0.0; \ + program { name: "icon_rotate_240"; \ + action: STATE_SET "rotate_240" 0.0; \ target: targetName; \ - transition: LINEAR 0.8; \ + in: 0.4 0.0; \ + after: "icon_rotate_300"; \ + } \ + program { name: "icon_rotate_300"; \ + action: STATE_SET "rotate_300" 0.0; \ + target: targetName; \ + in: 0.4 0.0; \ after: "icon_rotate_0"; \ } \ program { name: "icon_rotate"; \ signal: "icon,state,rotate"; \ source: sourceName; \ - action: STATE_SET "rotate_180" 0.0; \ + action: STATE_SET "default" 0.0; \ target: targetName; \ - after: "icon_rotate_360"; \ + after : icon_rotate_0; \ } \ diff --git a/data/resource/indicator_gui.h b/data/resource/indicator_gui.h old mode 100755 new mode 100644 index b70d5b0..644558b --- a/data/resource/indicator_gui.h +++ b/data/resource/indicator_gui.h @@ -1,45 +1,55 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd + * Indicator * - * Licensed under the Flora License, Version 1.1 (the "License"); + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://floralicense.org/license/ + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * */ #ifndef __INDICATOR_GUI_H__ #define __INDICATOR_GUI_H__ -#define INDICATOR_HEIGHT 60 +/* DISPLAY */ +#define INDICATOR_HEIGHT 36 #define INDICATOR_SIMPLE_HEIGHT 20 #define ICON_PADDING 3 -#define PADDING_WIDTH 8 -#define LEFT_PADDING_WIDTH 0 -#define RIGHT_PADDING_WIDTH 0 -#define INDICATOR_PADDING_H 10 +#define PADDING_WIDTH 10 +#define LEFT_PADDING_WIDTH 3 +#define RIGHT_PADDING_WIDTH 6 +#define INDICATOR_PADDING_H 4 -#define CLOCK_WIDTH 116 +#define CLOCK_WIDTH_1 110 +#define CLOCK_WIDTH_2 120 + #define CLOCK_HEIGHT 34 #define CLOCK_PADDING 10 -#define DEFAULT_ICON_PADDING 10 +#define DEFAULT_ICON_PADDING 3 +#define NOTI_ICON_PADDING 2 + +#define DEFAULT_ICON_HEIGHT 25 +#define DEFAULT_ICON_WIDTH 25 +#define BATTERY_ICON_WIDTH 25 +#define BATTERY_ICON_HEIGHT 25 +#define FIXED4_ICON_HEIGHT 25 +#define FIXED4_ICON_WIDTH 25 -#define DEFAULT_ICON_HEIGHT 40 -#define DEFAULT_ICON_WIDTH 40 -#define BATTERY_ICON_WIDTH 116 -#define BATTERY_ICON_HEIGHT 17 -#define APPTRAY_ICON_HEIGHT 50 -#define APPTRAY_ICON_WIDTH 50 +#define BATTERY_DIGIT_WIDTH 8 +#define BATTERY_DIGIT_HEIGHT 12 #define MESSAGE_PADDING 10 @@ -52,14 +62,17 @@ #define LANDSCAPE_FIXED1_PADDING 122 #define LANDSCAPE_FIXED0_PADDING 122 -#define HOME_PADDING_PORTRAIT 78 -#define HOME_PADDING_LANDSCAPE 78 +#define HOME_PADDING_PORTRAIT 50 +#define HOME_PADDING_LANDSCAPE 50 #define DEFAULT_NON_FIXED_PADDING 0 -#define INDI_DEFAULT_BG_COLOR 52 52 50 255 +#define INDI_DEFAULT_BG_COLOR 30 30 30 255 #define INDI_DEFAULT_BG_TRANSLUCENT 0 0 0 125 #define INDI_DEFAULT_BG_TRANSPARENT 0 0 0 0 +#define INDI_DEFAULT_BG_TEST 255 0 0 150 + +/* FONT */ #define ICON_FONT_NAME "Tizen" #define ICON_FONT_STYLE "Medium" #define ICON_FONT_SIZE 20 @@ -67,7 +80,14 @@ #define INDICATOR_HIDE_TRIGER_H 30 +#define DOWN_ANI_TIMER 0.3 + +#define INDICATOR_ICON_OPACITY 204 //80% + #define DEFAULT_LABEL_STRING "%s" #define CUSTOM_LABEL_STRING "%s" +#ifndef _INDICATOR_REMOVE_SEARCH +#define _INDICATOR_REMOVE_SEARCH #endif +#endif /*__INDICATOR_GUI_H__*/ diff --git a/data/resource/indicator_icon_animation.edc b/data/resource/indicator_icon_animation.edc new file mode 100644 index 0000000..6d07f81 --- /dev/null +++ b/data/resource/indicator_icon_animation.edc @@ -0,0 +1,351 @@ +/* + * Indicator + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +#include "indicator_gui.h" +#include "indicator_common.edc" + +collections { + base_scale: 1.7; + + group { + name: "elm/indicator/icon/base"; + + images { + image: "B03_Processing_download_ani_00.png" COMP; + image: "B03_Processing_download_ani_01.png" COMP; + image: "B03_Processing_download_ani_02.png" COMP; + image: "B03_Processing_download_ani_03.png" COMP; + image: "B03_Processing_download_ani_04.png" COMP; + image: "B03_Processing_download_ani_05.png" COMP; + image: "B03_Processing_download_ani_06.png" COMP; + image: "B03_Processing_upload_ani_00.png" COMP; + image: "B03_Processing_upload_ani_01.png" COMP; + image: "B03_Processing_upload_ani_02.png" COMP; + image: "B03_Processing_upload_ani_03.png" COMP; + image: "B03_Processing_upload_ani_04.png" COMP; + image: "B03_Processing_upload_ani_05.png" COMP; + image: "B03_Processing_upload_ani_06.png" COMP; + } + parts { + part { + name: "background"; + description { + state: "default" 0.0; + color : 255 255 255 255; + visible : 1; + } + } + part { + name: "padding.left"; + type: RECT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + min: DEFAULT_ICON_PADDING 0; + fixed: 1 0; + rel1.to: "background"; + rel2 { relative: 0.0 1.0; to: "background"; } + align: 0.0 0.5; + visible: 0; + } + } + + PART_SWALLOW_SET( "elm.swallow.icon", "padding.left", "padding.right" ) + + part { + name: "elm.image.icon.ani"; + type: IMAGE; + scale: 1; + description { + state: "default" 0.0; + rel1.to: "elm.swallow.icon"; + rel2.to: "elm.swallow.icon"; + visible: 0; + } + description { + state: "downloading0" 0.0; + inherit: "default" 0.0; + image { + normal:"B03_Processing_download_ani_00.png"; + border: 0 0 0 0; + border_scale: 1; + } + visible: 1; + } + description { + state: "downloading1" 0.0; + inherit: "default" 0.0; + image { + normal:"B03_Processing_download_ani_01.png"; + border: 0 0 0 0; + border_scale: 1; + } + visible: 1; + } + description { + state: "downloading2" 0.0; + inherit: "default" 0.0; + image { + normal:"B03_Processing_download_ani_02.png"; + border: 0 0 0 0; + border_scale: 1; + } + visible: 1; + } + description { + state: "downloading3" 0.0; + inherit: "default" 0.0; + image { + normal:"B03_Processing_download_ani_03.png"; + border: 0 0 0 0; + border_scale: 1; + } + visible: 1; + } + description { + state: "downloading4" 0.0; + inherit: "default" 0.0; + image { + normal:"B03_Processing_download_ani_04.png"; + border: 0 0 0 0; + border_scale: 1; + } + visible: 1; + } + description { + state: "downloading5" 0.0; + inherit: "default" 0.0; + image { + normal:"B03_Processing_download_ani_05.png"; + border: 0 0 0 0; + border_scale: 1; + } + visible: 1; + } + description { + state: "downloading6" 0.0; + inherit: "default" 0.0; + image { + normal:"B03_Processing_download_ani_06.png"; + border: 0 0 0 0; + border_scale: 1; + } + visible: 1; + } + + description { + state: "uploading0" 0.0; + inherit: "default" 0.0; + image { + normal:"B03_Processing_upload_ani_00.png"; + border: 0 0 0 0; + border_scale: 1; + } + visible: 1; + } + description { + state: "uploading1" 0.0; + inherit: "default" 0.0; + image { + normal:"B03_Processing_upload_ani_01.png"; + border: 0 0 0 0; + border_scale: 1; + } + visible: 1; + } + description { + state: "uploading2" 0.0; + inherit: "default" 0.0; + image { + normal:"B03_Processing_upload_ani_02.png"; + border: 0 0 0 0; + border_scale: 1; + } + visible: 1; + } + description { + state: "uploading3" 0.0; + inherit: "default" 0.0; + image { + normal:"B03_Processing_upload_ani_03.png"; + border: 0 0 0 0; + border_scale: 1; + } + visible: 1; + } + description { + state: "uploading4" 0.0; + inherit: "default" 0.0; + image { + normal:"B03_Processing_upload_ani_04.png"; + border: 0 0 0 0; + border_scale: 1; + } + visible: 1; + } + description { + state: "uploading5" 0.0; + inherit: "default" 0.0; + image { + normal:"B03_Processing_upload_ani_05.png"; + border: 0 0 0 0; + border_scale: 1; + } + visible: 1; + } + description { + state: "uploading6" 0.0; + inherit: "default" 0.0; + image { + normal:"B03_Processing_upload_ani_06.png"; + border: 0 0 0 0; + border_scale: 1; + } + visible: 1; + } + } + + part { + name: "padding.right"; + type: RECT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + min: 0 0; + fixed: 1 0; + rel1 { relative: 1.0 0.0; to: "background"; } + align: 1.0 0.5; + visible: 0; + } + } + + } + + programs { + PROGRAM_SET( "elm.swallow.icon", "elm.swallow.icon") + + /*Downloading state programs: */ + program{ + name: "indicator.ani.downloading.0"; + signal: "indicator.ani.downloading.0"; + source: "prog"; + action: STATE_SET "downloading0" 0.0; + target: "elm.image.icon.ani"; + } + + program{ + name: "indicator.ani.downloading.1"; + signal: "indicator.ani.downloading.1"; + source: "prog"; + action: STATE_SET "downloading1" 0.0; + target: "elm.image.icon.ani"; + } + program{ + name: "indicator.ani.downloading.2"; + signal: "indicator.ani.downloading.2"; + source: "prog"; + action: STATE_SET "downloading2" 0.0; + target: "elm.image.icon.ani"; + } + program{ + name: "indicator.ani.downloading.3"; + signal: "indicator.ani.downloading.3"; + source: "prog"; + action: STATE_SET "downloading3" 0.0; + target: "elm.image.icon.ani"; + } + program{ + name: "indicator.ani.downloading.4"; + signal: "indicator.ani.downloading.4"; + source: "prog"; + action: STATE_SET "downloading4" 0.0; + target: "elm.image.icon.ani"; + } + program{ + name: "indicator.ani.downloading.5"; + signal: "indicator.ani.downloading.5"; + source: "prog"; + action: STATE_SET "downloading5" 0.0; + target: "elm.image.icon.ani"; + } + program{ + name: "indicator.ani.downloading.6"; + signal: "indicator.ani.downloading.6"; + source: "prog"; + action: STATE_SET "downloading6" 0.0; + target: "elm.image.icon.ani"; + } + /*Uploading state programs: */ + program{ + name: "indicator.ani.uploading.0"; + signal: "indicator.ani.uploading.0"; + source: "prog"; + action: STATE_SET "uploading0" 0.0; + target: "elm.image.icon.ani"; + } + program{ + name: "indicator.ani.uploading.1"; + signal: "indicator.ani.uploading.1"; + source: "prog"; + action: STATE_SET "uploading1" 0.0; + target: "elm.image.icon.ani"; + } + program{ + name: "indicator.ani.uploading.2"; + signal: "indicator.ani.uploading.2"; + source: "prog"; + action: STATE_SET "uploading2" 0.0; + target: "elm.image.icon.ani"; + } + program{ + name: "indicator.ani.uploading.3"; + signal: "indicator.ani.uploading.3"; + source: "prog"; + action: STATE_SET "uploading3" 0.0; + target: "elm.image.icon.ani"; + } + program{ + name: "indicator.ani.uploading.4"; + signal: "indicator.ani.uploading.4"; + source: "prog"; + action: STATE_SET "uploading4" 0.0; + target: "elm.image.icon.ani"; + } + program{ + name: "indicator.ani.uploading.5"; + signal: "indicator.ani.uploading.5"; + source: "prog"; + action: STATE_SET "uploading5" 0.0; + target: "elm.image.icon.ani"; + } + program{ + name: "indicator.ani.uploading.6"; + signal: "indicator.ani.uploading.6"; + source: "prog"; + action: STATE_SET "uploading6" 0.0; + target: "elm.image.icon.ani"; + } + } + } +} + + diff --git a/data/resource/indicator_icon_nonfixed_theme.edc b/data/resource/indicator_icon_nonfixed_theme.edc old mode 100755 new mode 100644 index b91bd48..8f723ce --- a/data/resource/indicator_icon_nonfixed_theme.edc +++ b/data/resource/indicator_icon_nonfixed_theme.edc @@ -1,73 +1,92 @@ -/* - * Copyright 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. - */ - -#include "indicator_gui.h" -#include "indicator_common.edc" - -collections { - group { - name: "elm/indicator/icon/base"; - parts { - part { - name: "background"; - mouse_events: 0; - description { - state: "default" 0.0; - color : 255 255 255 204; - visible : 1; - } - } - part { - name: "padding.left"; - type: RECT; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - min: 0 0; - fixed: 1 0; - rel1.to: "background"; - rel2 { relative: 0.0 1.0; to: "background"; } - align: 0.0 0.5; - visible: 0; - } - } - - PART_SWALLOW_SET( "elm.swallow.icon", "padding.left", "padding.right" ) - - part { - name: "padding.right"; - type: RECT; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - min: PADDING_WIDTH 0; - fixed: 1 0; - rel1 { relative: 1.0 0.0; to: "background"; } - align: 1.0 0.5; - visible: 0; - } - } - - } - programs { - PROGRAM_SET( "elm.swallow.icon", "elm.swallow.icon") - } - } -} - - +/* + * Indicator + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +#include "indicator_gui.h" +#include "indicator_common.edc" + +collections { + base_scale: 1.7; + + group { + name: "elm/indicator/icon/base"; + parts { + part { + name: "background"; + description { + state: "default" 0.0; + visible : 1; + } + } + part { + name: "padding.left"; + type: RECT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + min: DEFAULT_ICON_PADDING 0; + fixed: 1 0; + rel1.to: "background"; + rel2 { relative: 0.0 1.0; to: "background"; } + color : 0 255 0 255; + align: 0.0 0.5; + visible: 0; + } + } + + part { + name: "padding.right"; + type: RECT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + min: 0 0; + fixed: 1 0; + rel1 { relative: 1.0 0.0; to: "background"; } + color : 0 0 255 255; + align: 1.0 0.5; + visible: 0; + } + } + PART_SWALLOW_SET( "elm.swallow.icon", "padding.left", "padding.right" ) + +#ifdef _SUPPORT_SCREEN_READER + part { + name: "elm.rect.icon.access"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + rel1.to: "elm.swallow.icon"; + rel2.to: "elm.swallow.icon"; + color:0 0 0 0; + visible: 1; + } + } +#endif + } + programs { + PROGRAM_SET( "elm.swallow.icon", "elm.swallow.icon") + } + } +} + + diff --git a/data/resource/indicator_icon_theme.edc b/data/resource/indicator_icon_theme.edc old mode 100755 new mode 100644 index a2ca67b..23ffc65 --- a/data/resource/indicator_icon_theme.edc +++ b/data/resource/indicator_icon_theme.edc @@ -1,73 +1,159 @@ -/* - * Copyright 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. - */ - -#include "indicator_gui.h" -#include "indicator_common.edc" - -collections { - group { - name: "elm/indicator/icon/base"; - parts { - part { - name: "background"; - mouse_events: 0; - description { - state: "default" 0.0; - color : 255 255 255 204; - visible : 1; - } - } - part { - name: "padding.left"; - type: RECT; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - min: 0 0; - fixed: 1 0; - rel1.to: "background"; - rel2 { relative: 0.0 1.0; to: "background"; } - align: 0.0 0.5; - visible: 0; - } - } - - PART_SWALLOW_SET( "elm.swallow.icon", "padding.left", "padding.right" ) - - part { - name: "padding.right"; - type: RECT; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - min: 0 0; - fixed: 1 0; - rel1 { relative: 1.0 0.0; to: "background"; } - align: 1.0 0.5; - visible: 0; - } - } - - } - programs { - PROGRAM_SET( "elm.swallow.icon", "elm.swallow.icon") - } - } -} - - +/* + * Indicator + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +#include "indicator_gui.h" +#include "indicator_common.edc" + +collections { + base_scale: 1.7; + + group { + name: "elm/indicator/icon/base"; + parts { + part { + name: "background"; + description { + state: "default" 0.0; + visible : 1; + } + } + part { + name: "padding.left"; + type: RECT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + min: 0 0; + fixed: 1 0; + color: 255 0 0 255; + rel1.to: "background"; + rel2 { relative: 0.0 1.0; to: "background"; } + align: 0.0 0.5; + visible: 0; + } + } + + PART_SWALLOW_SET( "elm.swallow.icon", "padding.left", "padding.right" ) + + part { + name: "padding.right"; + type: RECT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + min: 0 0; + fixed: 1 0; + color: 0 255 0 255; + rel1 { relative: 1.0 0.0; to: "background"; } + align: 1.0 0.5; + visible: 0; + } + } + +#ifdef _SUPPORT_SCREEN_READER + part { + name: "elm.rect.icon.access"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + rel1.to: "elm.swallow.icon"; + rel2.to: "elm.swallow.icon"; + color:0 0 0 0; + visible: 1; + } + } +#endif + } + programs { + PROGRAM_SET( "elm.swallow.icon", "elm.swallow.icon") + } + } + + group { + name: "elm/indicator/icon/dozen_digit"; + parts { + part { + name: "background"; + type: RECT; + description { + state: "default" 0.0; + color : 0 0 255 255; + visible : 0; + } + } + part { + name: "padding.left"; + type: RECT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + min: 0 0; + fixed: 1 0; + rel1.to: "background"; + rel2 { relative: 0.0 1.0; to: "background"; } + align: 0.0 0.5; + visible: 0; + } + } + + PART_SWALLOW_SET( "elm.swallow.icon", "padding.left", "padding.right" ) + + part { + name: "padding.right"; + type: RECT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + min: 1 20; + fixed: 1 0; + rel1 { relative: 1.0 0.0; to: "background"; } + rel2 { relative: 1.0 1.0; to: "background"; } + align: 1.0 0.5; + visible: 0; + } + } + +#ifdef _SUPPORT_SCREEN_READER + part { + name: "elm.rect.icon.access"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + rel1.to: "elm.swallow.icon"; + rel2.to: "elm.swallow.icon"; + color:0 0 0 0; + visible: 1; + } + } +#endif + } + programs { + PROGRAM_SET( "elm.swallow.icon", "elm.swallow.icon") + } + } +} + + diff --git a/data/resource/indicator_land.edc b/data/resource/indicator_land.edc deleted file mode 100755 index 97f1c6a..0000000 --- a/data/resource/indicator_land.edc +++ /dev/null @@ -1,1053 +0,0 @@ -/* - * Copyright 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. - */ - -#include "indicator_gui.h" -#include "indicator_common.edc" - -collections { - group { - name: "indicator"; - script { - public bg_set, badge_set, theme, changepad, changebg, changeHomePad; - } - styles - { - style { - name: "textblock_style"; - base: "font=Tizen:style=Medium text_class=tizen color=#FFFFFFFF "; - } - style { - name: "textblock_outline_style"; - base: "font=Tizen:style=Medium text_class=tizen color=#FFFFFFFF"; - } - style { - name: "message_style"; - base: "font=Tizen:style=Medium text_class=tizen font_size=23 color=#FFFFFFCC valign=middle wrap=none ellipsis=1"; - } - } - - images { - image: "B03_Status_bar_line.PNG" COMP; - } - - parts { - part { - name: "background"; - type: RECT; - scale: 1; - description { - state: "default" 0.0; - min: 0 INDICATOR_HEIGHT; - color: 0 0 0 0; - } - } - part { - name: "padding.top"; - type: RECT; - scale: 1; - mouse_events: 0; - description { - state: "default" 0.0; - min: 0 INDICATOR_PADDING_H; - fixed: 0 1; - rel1 { relative: 0.0 0.0; to: "background"; } - rel2 { relative: 1.0 0.0; to: "background"; } - align: 0.0 0.0; - visible: 0; - } - } - part { - name: "padding.bottom"; - type: RECT; - scale: 1; - mouse_events: 0; - description { - state: "default" 0.0; - min: 0 INDICATOR_PADDING_H; - fixed: 0 1; - rel1 { relative: 0.0 1.0; to: "background"; } - rel2 { relative: 1.0 1.0; to: "background"; } - align: 0.0 1.0; - visible: 0; - } - - } - - part { - name: "padding.left"; - type: RECT; - scale: 1; - mouse_events: 0; - description { - state: "default" 0.0; - min: LEFT_PADDING_WIDTH 0; - fixed: 1 0; - rel1.relative: 0.0 0.0; - rel2.relative: 0.0 1.0; - color: 0 0 0 0; - visible: 0; - } - } - - part { - name: "padding.right"; - type: RECT; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - min: RIGHT_PADDING_WIDTH 0; - fixed: 1 0; - rel1.relative: 1.0 0.0; - color: 0 0 0 0; - visible: 0; - } - } - part { - name: "elm.rect.transparent"; - type: RECT; - scale: 1; - mouse_events: 0; - description { - state: "default" 0.0; - min: 0 40; - fixed: 0 1; - rel1 { - relative: 0.0 1.0; - to: "background"; - } - rel2 { - relative: 1.0 1.0; - to: "background"; - } - color: 0 0 0 0; - align: 0.0 1.0; - visible: 1; - } - description { - state: "show" 0.0; - min: 0 0; - fixed: 0 1; - rel1 { - relative: 0.0 1.0; - to: "background"; - } - rel2 { - relative: 1.0 1.0; - to: "background"; - } - color: 0 0 0 0; - align: 0.0 1.0; - visible: 1; - } - } - part { - name: "elm.rect.bg"; - type: RECT; - scale: 1; - mouse_events: 0; - description { - state: "default" 0.0; - min: 0 INDICATOR_HEIGHT; - fixed: 0 1; - rel1 { relative: 0.0 0.0; to_x: background; to_y: elm.rect.transparent; } - rel2 { relative: 1.0 0.0; to_x: background; to_y: elm.rect.transparent; } - color: INDI_DEFAULT_BG_TRANSPARENT; - align: 0.0 1.0; - } - description { - state: "show" 0.0; - inherit: "default" 0.0; - color: INDI_DEFAULT_BG_COLOR; - } - - } - - part { - name: "elm.rect.left_con"; - type: RECT; - scale: 1; - mouse_events: 0; - description { - state: "default" 0.0; - min: HOME_PADDING_LANDSCAPE 0; - visible: 0; - fixed: 1 0; - rel1 { relative: 0.0 0.0; to: "elm.rect.bg"; } - rel2 { relative: 0.0 1.0; to: "elm.rect.bg"; } - align: 0.0 0.0; - } - } - - part { - name: "icon_bg"; - type: RECT; - scale: 1; - mouse_events: 0; - description { - state: "default" 0.0; - visible: 0; - rel1 { relative: 1.0 0.0; to_x: padding.separator; to_y: elm.rect.bg; } - rel2 { relative: 0.0 1.0; to_x: padding.separator2; to_y: elm.rect.bg; } - align: 0.0 0.0; - } - } - - part { - name: "elm.rect.middle_con"; - type: RECT; - scale: 1; - mouse_events: 0; - description { - state: "default" 0.0; - visible: 0; - rel1 { relative: 0.0 0.0; to: "icon_bg"; } - rel2 { relative: 1.0 1.0; to: "icon_bg"; } - } - description { - state: "show" 0.0; - inherit: "default" 0.0; - } - description { - state: "hide" 0.0; - inherit: "default" 0.0; - min: 0 INDICATOR_HEIGHT; - fixed: 0 1; - rel1 { relative: 0.0 0.0; to: "icon_bg"; } - rel2 { relative: 1.0 0.0; to: "icon_bg"; } - align: 0.0 1.0; - } - - } - - part { - name: "message.bg"; - type: RECT; - scale: 1; - mouse_events: 0; - description { - state: "default" 0.0; - visible: 0; - min: 0 INDICATOR_HEIGHT; - fixed: 0 1; - rel1 { relative: 0.0 1.0; to: "elm.rect.middle_con"; } - rel2 { relative: 1.0 1.0; to: "elm.rect.middle_con"; } - align: 0.0 0.0; - visible: 0; - } - } - - part { - name: "message.padding.left"; - type: RECT; - scale: 1; - mouse_events: 0; - description { - state: "default" 0.0; - min: MESSAGE_PADDING 0; - fixed: 1 0; - rel1 { - relative: 0.0 0.0; - to: "message.bg"; - } - rel2 { - relative: 0.0 1.0; - to: "message.bg"; - } - align: 0.0 0.0; - visible: 0; - } - } - part { - name: "message.padding.right"; - type: RECT; - scale: 1; - mouse_events: 0; - description { - state: "default" 0.0; - min: MESSAGE_PADDING 0; - fixed: 1 0; - rel1 { - relative: 1.0 0.0; - to: "message.bg"; - } - rel2 { - relative: 1.0 1.0; - to: "message.bg"; - } - align: 1.0 0.0; - visible: 0; - } - } - part { - name: "message.padding.top"; - type: RECT; - scale: 1; - mouse_events: 0; - description { - state: "default" 0.0; - min: 0 INDICATOR_PADDING_H; - fixed: 0 1; - rel1 { relative: 0.0 0.0; to: "message.bg"; } - rel2 { relative: 1.0 0.0; to: "message.bg"; } - align: 0.0 0.0; - visible: 0; - } - } - part { - name: "message.padding.bottom"; - type: RECT; - scale: 1; - mouse_events: 0; - description { - state: "default" 0.0; - min: 0 INDICATOR_PADDING_H; - fixed: 0 1; - rel1 { relative: 0.0 1.0; to: "message.bg"; } - rel2 { relative: 1.0 1.0; to: "message.bg"; } - align: 0.0 1.0; - visible: 0; - } - - } - part { - name: "message.text"; - type: TEXTBLOCK; - scale: 1; - mouse_events: 0; - description { - state: "default" 0.0; - fixed: 1 1; - visible: 1; - rel1 { - relative: 1.0 1.0; - to_x: "message.padding.left"; - to_y: "message.bg"; - } - - rel2 { - relative: 0.0 0.0; - to_x: "message.padding.right"; - to_y: "message.bg"; - } - text { - style: "message_style"; - min: 0 1; - } - } - } - - part { - name: elm.swallow.fixed0; - type: SWALLOW; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - min: HOME_PADDING_LANDSCAPE APPTRAY_ICON_HEIGHT; - fixed: 1 0; - rel1 { relative: 1.0 0.0; to_x: padding.left; to_y: elm.rect.left_con; } - rel2 { relative: 1.0 1.0; to_x: padding.left; to_y: elm.rect.left_con; } - align: 0.0 0.5; - visible: 0; - } - description { - state: "show" 0.0; - inherit: "default" 0.0; - visible : 1; - } - } - - part { - name: "seperator.image"; - type: IMAGE; - scale: 1; - mouse_events: 0; - description { - state: "default" 0.0; - visible: 0; - min: 4 36; - fixed: 1 1; - image.normal: "B03_Status_bar_line.PNG"; - rel1 { - relative: 1.0 0.5; - to_x: "elm.swallow.fixed0"; - to_y: "elm.rect.bg"; - } - rel2 { - relative: 1.0 0.5; - to_x: "elm.swallow.fixed0"; - to_y: "elm.rect.bg"; - } - align: 0.0 0.5; - visible : 0; - } - description { - state: "show" 0.0; - inherit: "default" 0.0; - visible : 0; - } - } - - part { - name: "padding.separator"; - type: RECT; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - min: PADDING_WIDTH 0; - fixed: 1 0; - rel1 { - relative: 1.0 1.0; - to_x: "seperator.image"; - to_y: "padding.top"; - } - rel2 { - relative: 1.0 0.0; - to_x: "seperator.image"; - to_y: "padding.bottom"; - } - align: 0.0 0.5; - visible: 1; - color: 0 0 0 0; - } - } - - DYNAMIC_RECT_FROM_LEFT( "elm.rect.fixed2", "elm.swallow.fixed3", "elm.rect.middle_con", DEFAULT_ICON_PADDING, FIXED4_DYNAMIC_PADDING, INDI_DEFAULT_BG_COLOR, 0) - SWALLOW_PART_FROM_LEFT_WITH_EFFECT2( "elm.swallow.fixed2", "elm.rect.fixed2", "elm.rect.middle_con", DEFAULT_ICON_WIDTH, DEFAULT_ICON_HEIGHT ) - - FIXED_RECT_FROM_LEFT( "elm.rect.fixed3", "elm.swallow.fixed2", "elm.rect.middle_con", DEFAULT_ICON_PADDING, INDI_DEFAULT_BG_COLOR, 0) - SWALLOW_PART_FROM_LEFT_WITH_EFFECT2( "elm.swallow.fixed1", "elm.rect.fixed3", "elm.rect.middle_con", DEFAULT_ICON_WIDTH, DEFAULT_ICON_HEIGHT ) - - FIXED_RECT_FROM_LEFT( "elm.rect.nonfixed", "elm.swallow.fixed1", "elm.rect.middle_con", DEFAULT_ICON_PADDING, INDI_DEFAULT_BG_COLOR, 0) - SWALLOW_PART_FROM_LEFT_WITH_EFFECT2( "elm.swallow.nonfixed", "elm.rect.nonfixed", "elm.rect.middle_con", 0, 0) - - SWALLOW_PART_FROM_RIGHT_WITH_EFFECT2( "elm.swallow.noti", "clock.padding.left", "elm.rect.middle_con", 0, 0) - - part { - name: elm.swallow.fixed4; - type: SWALLOW; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - min: HOME_PADDING_LANDSCAPE APPTRAY_ICON_HEIGHT; - fixed: 1 0; - rel1 { relative: 0.0 0.0; to_x: padding.right; to_y: elm.rect.left_con; } - rel2 { relative: 0.0 1.0; to_x: padding.right; to_y: elm.rect.left_con; } - align: 1.0 0.5; - visible: 0; - } - description { - state: "show" 0.0; - inherit: "default" 0.0; - visible : 1; - } - } - - part { - name: "seperator.image2"; - type: IMAGE; - scale: 1; - mouse_events: 0; - description { - state: "default" 0.0; - visible: 0; - min: 4 36; - fixed: 1 1; - image.normal: "B03_Status_bar_line.PNG"; - rel1 { - relative: 0.0 0.5; - to_x: "elm.swallow.fixed4"; - to_y: "elm.rect.bg"; - } - rel2 { - relative: 0.0 0.5; - to_x: "elm.swallow.fixed4"; - to_y: "elm.rect.bg"; - } - align: 1.0 0.5; - visible : 0; - } - description { - state: "show" 0.0; - inherit: "default" 0.0; - visible : 0; - } - } - - part { - name: "padding.separator2"; - type: RECT; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - min: PADDING_WIDTH 0; - fixed: 1 0; - rel1 { - relative: 1.0 1.0; - to_x: "seperator.image2"; - to_y: "padding.top"; - } - rel2 { - relative: 1.0 0.0; - to_x: "seperator.image2"; - to_y: "padding.bottom"; - } - align: 0.0 0.5; - visible: 1; - color: 0 0 0 0; - } - } - - part { - name: "clock.padding.left"; - type: RECT; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - min: 12 0; - fixed: 1 0; - rel1.to_x: "elm.rect.clock"; - rel2 { relative: 0.0 1.0; to_x: "elm.rect.clock"; } - visible: 0; - } - } - - part { - name: "clock.padding.top"; - type: RECT; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - min: 116 5; - fixed: 1 1; - rel1 { relative: 0.5 0.0; to_x: elm.rect.bg; to_y: elm.rect.middle_con; } - rel2 { relative: 0.5 0.0; to_x: elm.rect.bg; to_y: elm.rect.middle_con; } - visible: 0; - } - } - part { - name: "elm.rect.clock"; - type: RECT; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - min: CLOCK_WIDTH CLOCK_HEIGHT; - fixed: 1 1; - rel1 { relative: 0.5 1.0; to: "clock.padding.top"; } - rel2 { relative: 0.5 1.0; to: "clock.padding.top"; } - align: 0.5 0.0; - visible: 0; - } - description { - state: "ampm" 0.0; - min: CLOCK_WIDTH CLOCK_HEIGHT; - fixed: 1 1; - rel1 { relative: 0.5 1.0; to: "clock.padding.top"; } - rel2 { relative: 0.5 1.0; to: "clock.padding.top"; } - align: 0.5 0.0; - visible: 0; - } - } - part { - name: "elm.rect.innerclock"; - type: RECT; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - rel1 { relative: 0.5 0.5; to: "elm.rect.clock";} - rel2 { relative: 0.5 0.5; to: "elm.rect.clock";} - } - } - part { - name: "elm.text.clock"; - type: TEXTBLOCK; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - rel1.to: "elm.rect.innerclock"; - rel2.to: "elm.rect.innerclock"; - fixed: 1 1; - text { - style: "textblock_style"; - min: 1 1; - align: 0.5 0.5; - } - visible : 0; - } - description { - state: "show" 0.0; - inherit: "default" 0.0; - visible : 1; - } - } - - part { - name: "elm.swallow.fixed3"; - type: SWALLOW; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - min: BATTERY_ICON_WIDTH BATTERY_ICON_HEIGHT; - fixed: 1 1; - rel1 { relative: 0.5 0.0; to: "clock.padding.bottom"; } - rel2 { relative: 0.5 0.0; to: "clock.padding.bottom"; } - align: 0.5 1.0; - visible: 1; - } - } - - part { - name: "clock.padding.bottom"; - type: RECT; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - min: 116 2; - fixed: 1 1; - rel1 { relative: 0.5 1.0; to: "elm.rect.bg";} - rel2 { relative: 0.5 1.0; to: "elm.rect.bg";} - align: 0.5 1.0; - visible: 0; - } - description { - state: "show" 0.0; - min: 116 4; - fixed: 1 1; - rel1 { relative: 0.5 1.0; to: "elm.rect.bg";} - rel2 { relative: 0.5 1.0; to: "elm.rect.bg";} - align: 0.5 1.0; - visible: 0; - } - } - - part { - name: "clock.padding.right"; - type: RECT; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - min: 12 0; - fixed: 1 0; - rel1 { relative: 1.0 0.0; to_x: "elm.rect.clock"; } - rel2 { relative: 0.0 1.0; to_x: "elm.rect.clock"; } - visible: 0; - } - } - - part { - name: "elm.padding.badge.left"; - type: RECT; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - min: 3 0; - fixed: 1 0; - rel1.to: "elm.text.badge"; - rel2 { to: "elm.text.badge"; relative: 0.0 1.0; } - align: 1.0 0.5; - visible: 1; - } - } - - part { - name: "elm.padding.badge.right"; - type: RECT; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - min: 3 0; - fixed: 1 0; - rel1 { to: "elm.text.badge"; relative: 1.0 0.0; } - rel2.to: "elm.text.badge"; - align: 0.0 0.5; - visible: 1; - } - } - - part { - name: "elm.image.badge"; - type: IMAGE; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - min: 18 18; - fixed: 1 1; - rel1.to: "elm.padding.badge.left"; - rel2.to: "elm.padding.badge.right"; - image { - border: 8 8 8 8; - border_scale: 1; - } - visible: 0; - } - description { - state: "show" 0.0; - inherit: "default" 0.0; - visible: 1; - } - description { - state: "show2" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - - part { - name: "elm.text.badge"; - type: TEXT; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - rel1 { to: "elm.rect.clock"; relative: 0.95 0.2; } - rel2 { to: "elm.rect.clock"; relative: 0.95 0.2; } - color: 255 255 255 255; - align: 1.0 0.0; - text { - font: "Tizen"; - size: 15; - min: 1 0; - align: 0.5 0.5; - } - } - description { - state: "default2" 0.0; - inherit: "default" 0.0; - color: 0 0 0 255; - } - } - part { - name: "slide_clip"; - type: RECT; - scale: 1; - description { - state: "default" 0.0; - rel1 { - relative: 1.0 -1.0; - to_x: "seperator.image"; - to_y: "elm.rect.bg"; - } - rel2 { - relative: 1.0 1.0; - to_x: "clock.padding.left"; - to_y: "elm.rect.bg"; - } - color: 255 255 255 0; - } - description { - state: "show" 0.0; - rel1 { - relative: 1.0 0.0; - to_x: "seperator.image"; - to_y: "elm.rect.bg"; - } - rel2 { - relative: 1.0 1.0; - to_x: "clock.padding.left"; - to_y: "elm.rect.bg"; - } - color: 255 255 255 255; - } - } - part { - name: "slide_clip2"; - type: RECT; - scale: 1; - description { - state: "default" 0.0; - rel1 { - relative: 1.0 -1.0; - to_x: "clock.padding.right"; - to_y: "elm.rect.bg"; - } - rel2 { - relative: 0.0 1.0; - to_x: "seperator.image2"; - to_y: "elm.rect.bg"; - } - color: 255 255 255 0; - } - description { - state: "show" 0.0; - rel1 { - relative: 1.0 0.0; - to_x: "clock.padding.right"; - to_y: "elm.rect.bg"; - } - rel2 { - relative: 0.0 1.0; - to_x: "seperator.image2"; - to_y: "elm.rect.bg"; - } - color: 255 255 255 255; - } - } - - } - - programs { - program { - name: "change_padding_1"; - action: STATE_SET "changePad" 0.0; - signal: "change,padding,1"; - source: "elm.rect.*"; - script { - if (get_int(changepad) == 0) { - set_int(changepad,1); - } - } - } - - program { - name: "change_padding_2"; - action: STATE_SET "changePad" 0.0; - signal: "change,padding,2"; - source: "elm.rect.*"; - script { - if (get_int(changepad) == 1) { - set_int(changepad,0); - } - } - } - - program { - name: "home_pressed"; - signal: "home.pressed"; - source: "indicator.prog"; - script { - } - } - - program { - name: "bg_opaque"; - action: STATE_SET "default" 0.0; - signal: "bg.opaque"; - source: "indicator.prog"; - script { - set_int(bg_set, 0); - } - - } - program { - name: "bg_translucent"; - action: STATE_SET "default" 0.0; - signal: "bg.translucent"; - source: "indicator.prog"; - script { - set_int(bg_set, 1); - } - - } - program { - name: "bg_transparent"; - signal: "bg.transparent"; - source: "indicator.prog"; - script { - set_int(bg_set, 2); - } - - } - program { - name: "bg_notification"; - signal: "bg.notification"; - source: "indicator.prog"; - script { - set_int(bg_set, 3); - } - - } - - program { - name: "clock_size_default"; - signal: "indicator.clock.default"; - source: "indicator.prog"; - script { - set_state(PART:"elm.rect.clock", "default", 0.0); - } - - } - program { - name: "clock_size_ampm"; - signal: "indicator.clock.ampm"; - source: "indicator.prog"; - script { - set_state(PART:"elm.rect.clock", "ampm", 0.0); - } - - } - - program { - name: "show.clip.noeffect"; - in: 0.15 0.0; - action: STATE_SET "show" 0.0; - signal: "indicator.clip.show.noeffect"; - source: "indicator.prog"; - target: "slide_clip"; - target: "slide_clip2"; - } - - program { - name: "show.clip"; - in: 0.15 0.0; - action: STATE_SET "show" 0.0; - signal: "indicator.clip.show"; - source: "indicator.prog"; - target: "slide_clip"; - target: "slide_clip2"; - transition: LINEAR 0.15; - } - - program { - name: "hide.clip.noeffect"; - action: STATE_SET "default" 0.0; - signal: "indicator.clip.hide.noeffect"; - source: "indicator.prog"; - target: "slide_clip"; - target: "slide_clip2"; - } - - program { - name: "hide.clip"; - action: STATE_SET "default" 0.0; - signal: "indicator.clip.hide"; - source: "indicator.prog"; - target: "slide_clip"; - target: "slide_clip2"; - transition: LINEAR 0.15; - } - - program { - name: "show.noti.noeffect"; - action: STATE_SET "show" 0.0; - signal: "indicator.noti.show.noeffect"; - source: "indicator.prog"; - target: "elm.swallow.noti"; - target: "elm.swallow.nonfixed"; - target: "elm.swallow.fixed1"; - target: "elm.swallow.fixed2"; - target: "elm.rect.transparent"; - target: "elm.swallow.fixed0"; - target: "elm.swallow.fixed4"; - target: "elm.text.clock"; - target: "clock.padding.bottom"; - target: "elm.rect.bg"; - target: "seperator.image2"; - } - - program { - name: "show.noti"; - action: STATE_SET "show" 0.0; - signal: "indicator.noti.show"; - source: "indicator.prog"; - target: "elm.swallow.noti"; - target: "elm.swallow.nonfixed"; - target: "elm.swallow.fixed1"; - target: "elm.swallow.fixed2"; - target: "elm.rect.transparent"; - target: "elm.swallow.fixed0"; - target: "elm.swallow.fixed4"; - target: "elm.text.clock"; - target: "clock.padding.bottom"; - target: "elm.rect.bg"; - target: "seperator.image2"; - transition: LINEAR 0.3; - } - - program { - name: "hide.noti.noeffect"; - action: STATE_SET "default" 0.0; - signal: "indicator.noti.hide.noeffect"; - source: "indicator.prog"; - target: "elm.swallow.noti"; - target: "elm.swallow.nonfixed"; - target: "elm.swallow.fixed1"; - target: "elm.swallow.fixed2"; - target: "elm.rect.transparent"; - target: "elm.swallow.fixed0"; - target: "elm.swallow.fixed4"; - target: "elm.text.clock"; - target: "clock.padding.bottom"; - target: "elm.rect.bg"; - target: "seperator.image2"; - } - - program { - name: "hide.noti"; - action: STATE_SET "default" 0.0; - signal: "indicator.noti.hide"; - source: "indicator.prog"; - target: "elm.swallow.noti"; - target: "elm.swallow.nonfixed"; - target: "elm.swallow.fixed1"; - target: "elm.swallow.fixed2"; - target: "elm.rect.transparent"; - target: "elm.swallow.fixed0"; - target: "elm.swallow.fixed4"; - target: "elm.text.clock"; - target: "clock.padding.bottom"; - target: "elm.rect.bg"; - target: "seperator.image2"; - transition: LINEAR 0.3; - } - - - program { - name: "badge_show"; - signal: "badge,show,1"; - source: "elm.image.badge"; - script { - if (get_int(badge_set) == 0) { - set_int(badge_set, 1); - if (get_int(theme) == 2) { - set_state(PART:"elm.image.badge", "show2", 0.0); - set_state(PART:"elm.text.badge", "default2", 0.0); - } else { - set_state(PART:"elm.image.badge", "show", 0.0); - set_state(PART:"elm.text.badge", "default", 0.0); - } - } - } - } - - program { - name: "badge_hide"; - signal: "badge,hide,1"; - source: "elm.image.badge"; - script { - if (get_int(badge_set) == 1) { - set_int(badge_set, 0); - set_state(PART:"elm.image.badge", "default", 0.0); - } - } - } - } - } -} diff --git a/data/resource/indicator_port.edc b/data/resource/indicator_port.edc old mode 100755 new mode 100644 index 513a0b4..b204f83 --- a/data/resource/indicator_port.edc +++ b/data/resource/indicator_port.edc @@ -1,23 +1,34 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd + * Indicator * - * Licensed under the Flora License, Version 1.1 (the "License"); + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://floralicense.org/license/ + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * */ + #include "indicator_gui.h" #include "indicator_common.edc" + +images { + image: "icons/Power/battery_text/B03_stat_sys_battery_num_100.png" COMP; +} + collections { + base_scale: 1.7; + group { name: "indicator"; script { @@ -27,20 +38,45 @@ collections { { style { name: "textblock_style"; - base: "font=Tizen:style=Medium text_class=tizen color=#FFFFFFFF "; + base: "font=Tizen:style=Regular text_class=tizen color=#FFFFFFFF color_class=AO004"; + } + style { + name: "textblock_style_24"; + base: "font=Tizen:style=Regular color=#FFFFFFFF valign=middle align=center color_class=AO004 font_size=36 text_class=ATO001"; } style { name: "textblock_outline_style"; - base: "font=Tizen:style=Medium text_class=tizen color=#FFFFFFFF"; + base: "font=Tizen:style=Bold text_class=tizen color=#FFFFFFFF"; } style { name: "message_style"; - base: "font=Tizen:style=Medium text_class=tizen font_size=23 color=#FFFFFFCC valign=middle wrap=none ellipsis=1"; + base: "font=Tizen:style=Regular text_class=tizen font_size=29 color=#FFFFFFFF valign=middle wrap=none ellipsis=1"; + } + style { + name: "message_style2"; + base: "font=Tizen:style=Regular text_class=tizen font_size=29 color=#FFFFFFFF valign=middle wrap=none ellipsis=1"; + } + style { + name: "message_style_compare"; + base: "font=Tizen:style=Regular text_class=tizen font_size=29 color=#FFFFFFFF valign=middle wrap=none ellipsis=0"; + } + style { + name: "plmn_style"; + base: "font=Tizen:style=Bold text_class=tizen font_size=35 color=#FFFFFFFF valign=middle wrap=none ellipsis=1"; } } images { - image: "B03_Status_bar_line.PNG" COMP; + image: "B03_indicator_bg.png" COMP; + image: "B03_OrangeF.png" COMP; + image: "B03_conection_not_UPdownload.png" COMP; + image: "B03_connection_UPload.png" COMP; + image: "B03_connection_download.png" COMP; + image: "B03_conection_UPdownload.png" COMP; + image: "B03_search_divider.png" COMP; + image: "B03_notification.png" COMP; + image: "B03_notification_press.png" COMP; + image: "B03_notify_more.png" COMP; } parts { @@ -85,7 +121,47 @@ collections { } } + /* Left padding */ + part { + name: "resize_padding.left"; + type: RECT; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + min: 0 0; + fixed: 1 0; + rel1 { relative: 0.0 0.0; to: "elm.rect.bg"; } + rel2 { relative: 0.0 1.0; to: "elm.rect.bg"; } + align: 0.0 0.0; + visible: 0; + } + description { + state: "1" 0.0; + inherit: "default" 0.0; + min: 1 0; + color: 255 0 0 255; + } + description { + state: "2" 0.0; + inherit: "default" 0.0; + min: 2 0; + color: 0 255 0 255; + } + description { + state: "3" 0.0; + inherit: "default" 0.0; + min: 3 0; + color: 0 0 255 255; + } + description { + state: "4" 0.0; + inherit: "default" 0.0; + min: 4 0; + color: 255 255 0 255; + } + } part { name: "padding.left"; type: RECT; @@ -95,13 +171,60 @@ collections { state: "default" 0.0; min: LEFT_PADDING_WIDTH 0; fixed: 1 0; - rel1.relative: 0.0 0.0; - rel2.relative: 0.0 1.0; - color: 0 0 0 0; + rel1 { relative: 0.0 0.0; to: "elm.rect.bg"; } + rel2 { relative: 0.0 1.0; to: "elm.rect.bg"; } + align: 0.0 0.0; + color:0 0 0 0; visible: 0; } + description { + state: "scover" 0.0; + inherit: "default" 0.0; + min: 72 0; + } } + /* Right padding */ + part { + name: "resize_padding.right"; + type: RECT; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + min: 0 0; + fixed: 1 0; + rel1 { relative: 1.0 0.0; to: "elm.rect.bg"; } + rel2 { relative: 1.0 1.0; to: "elm.rect.bg"; } + align: 0.0 0.0; + visible: 0; + } + description { + state: "1" 0.0; + inherit: "default" 0.0; + min: 1 0; + color: 255 0 0 255; + } + description { + state: "2" 0.0; + inherit: "default" 0.0; + min: 2 0; + color: 0 255 0 255; + } + description { + state: "3" 0.0; + inherit: "default" 0.0; + min: 3 0; + color: 0 0 255 255; + } + + description { + state: "4" 0.0; + inherit: "default" 0.0; + min: 4 0; + color: 255 255 0 255; + } + } part { name: "padding.right"; type: RECT; @@ -111,13 +234,34 @@ collections { state: "default" 0.0; min: RIGHT_PADDING_WIDTH 0; fixed: 1 0; - rel1.relative: 1.0 0.0; - color: 0 0 0 0; + rel1 { relative: 1.0 0.0; to: "elm.rect.bg"; } + rel2 { relative: 1.0 1.0; to: "elm.rect.bg"; } + align: 1.0 0.0; + color : 0 0 0 0; visible: 0; } + description { + state: "scover" 0.0; + inherit: "default" 0.0; + min: 72 0; + } + description { + state: "dynamic" 0.0; + inherit: "default" 0.0; + rel1 { + relative: 1.0 0.0; to: "resize_padding.right"; + offset : 73 0; + } + rel2 { + relative: 1.0 1.0; to: "resize_padding.right"; + offset : 73 0; + } + align: 1.0 0.0; + } + } part { - name: "elm.rect.bg"; + name: "elm.rect.bg.base"; type: RECT; scale: 1; mouse_events: 0; @@ -131,6 +275,36 @@ collections { relative: 1.0 1.0; to: "background"; } + visible:0; + } + description { + state: "hide" 0.0; + rel1 { + relative: 0.0 1.0; + to: "background"; + } + rel2 { + relative: 1.0 2.0; + to: "background"; + } + visible:0; + } + } + part { + name: "elm.rect.bg"; + type: RECT; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + rel1 { + relative: 0.0 0.0; + to: "elm.rect.bg.base"; + } + rel2 { + relative: 1.0 1.0; + to: "elm.rect.bg.base"; + } color: INDI_DEFAULT_BG_TRANSPARENT; } description { @@ -140,25 +314,60 @@ collections { description { state: "translucent" 0.0; inherit: "default" 0.0; - color: INDI_DEFAULT_BG_TRANSLUCENT; - } description { state: "notification" 0.0; inherit: "default" 0.0; - color: 0 0 0 0; - visible: 0; - + } + description { + state: "transparent_slide" 0.0; + inherit: "default" 0.0; } description { state: "transparent" 0.0; - inherit: "notification" 0.0; - color: INDI_DEFAULT_BG_TRANSPARENT; + inherit: "default" 0.0; + } + } + + part { + name: "elm.rect.bg.call"; + type: RECT; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + rel1 { + relative: 0.0 0.0; + to: "elm.rect.bg"; + } + rel2 { + relative: 1.0 1.0; + to: "elm.rect.bg"; + } + visible: 0; + } + description { + state: "during_call" 0.0; + inherit: "default" 0.0; + color_class:"AO005"; + visible : 1; + } + description { + state: "call_hold" 0.0; + inherit: "default" 0.0; + color_class:"AO007"; + visible : 1; + } + description { + state: "call_end" 0.0; + inherit: "default" 0.0; + color_class:"AO006"; + visible : 1; } } part { - name: "elm.rect.left_con"; + name: "elm.rect.right_con"; type: RECT; scale: 1; mouse_events: 0; @@ -181,8 +390,8 @@ collections { description { state: "default" 0.0; visible: 0; - rel1 { relative: 1.0 0.0; to_x: padding.separator; to_y: elm.rect.bg; } - rel2 { relative: 0.0 1.0; to_x: padding.separator2; to_y: elm.rect.bg; } + rel1 { relative: 1.0 0.0; to_x: padding.left; to_y: elm.rect.bg; } + rel2 { relative: 0.0 1.0; to_x: elm.swallow.fixed6; to_y: elm.rect.bg; } align: 0.0 0.0; } } @@ -215,7 +424,7 @@ collections { } part { - name: "message.bg"; + name: "plmn.bg"; type: RECT; scale: 1; mouse_events: 0; @@ -224,15 +433,14 @@ collections { visible: 0; min: 0 INDICATOR_HEIGHT; fixed: 0 1; - rel1 { relative: 0.0 1.0; to: "elm.rect.middle_con"; } - rel2 { relative: 1.0 1.0; to: "elm.rect.middle_con"; } + rel1 { relative: 1.0 1.0; to_x: padding.left; to_y: elm.swallow.noti; } + rel2 { relative: 0.0 1.0; to_x: padding.right; to_y: elm.swallow.noti; } align: 0.0 0.0; visible: 0; } } - part { - name: "message.padding.left"; + name: "plmn.padding.left"; type: RECT; scale: 1; mouse_events: 0; @@ -242,92 +450,61 @@ collections { fixed: 1 0; rel1 { relative: 0.0 0.0; - to: "message.bg"; + to: "plmn.bg"; } rel2 { relative: 0.0 1.0; - to: "message.bg"; + to: "plmn.bg"; } align: 0.0 0.0; visible: 0; } } part { - name: "message.padding.right"; - type: RECT; + name: "plmn.text"; + type: TEXTBLOCK; scale: 1; mouse_events: 0; description { state: "default" 0.0; - min: MESSAGE_PADDING 0; - fixed: 1 0; + fixed: 1 1; + visible: 1; rel1 { - relative: 1.0 0.0; - to: "message.bg"; + relative: 1.0 1.0; + to_x: "plmn.padding.left"; + to_y: "plmn.bg"; } + rel2 { - relative: 1.0 1.0; - to: "message.bg"; + relative: 0.0 0.0; + to_x: "plmn.padding.right"; + to_y: "plmn.bg"; + } + text { + style: "plmn_style"; + min: 0 1; } - align: 1.0 0.0; - visible: 0; - } - } - part { - name: "message.padding.top"; - type: RECT; - scale: 1; - mouse_events: 0; - description { - state: "default" 0.0; - min: 0 INDICATOR_PADDING_H; - fixed: 0 1; - rel1 { relative: 0.0 0.0; to: "message.bg"; } - rel2 { relative: 1.0 0.0; to: "message.bg"; } - align: 0.0 0.0; - visible: 0; } } part { - name: "message.padding.bottom"; + name: "plmn.padding.right"; type: RECT; scale: 1; mouse_events: 0; description { state: "default" 0.0; - min: 0 INDICATOR_PADDING_H; - fixed: 0 1; - rel1 { relative: 0.0 1.0; to: "message.bg"; } - rel2 { relative: 1.0 1.0; to: "message.bg"; } - align: 0.0 1.0; - visible: 0; - } - - } - part { - name: "message.text"; - type: TEXTBLOCK; - scale: 1; - mouse_events: 0; - description { - state: "default" 0.0; - fixed: 1 1; - visible: 1; + min: 0 0; + fixed: 1 0; rel1 { - relative: 1.0 1.0; - to_x: "message.padding.left"; - to_y: "message.bg"; + relative: 1.0 0.0; + to: "plmn.bg"; } - rel2 { - relative: 0.0 0.0; - to_x: "message.padding.right"; - to_y: "message.bg"; - } - text { - style: "message_style"; - min: 0 1; + relative: 1.0 1.0; + to: "plmn.bg"; } + align: 1.0 0.0; + visible: 0; } } @@ -338,15 +515,44 @@ collections { scale: 1; description { state: "default" 0.0; - min: HOME_PADDING_PORTRAIT APPTRAY_ICON_HEIGHT; +#ifndef _INDICATOR_REMOVE_SEARCH + min: HOME_PADDING_PORTRAIT FIXED4_ICON_HEIGHT; +#else + min: 0 0; +#endif fixed: 1 0; - rel1 { relative: 1.0 0.0; to_x: padding.left; to_y: elm.rect.left_con; } - rel2 { relative: 1.0 1.0; to_x: padding.left; to_y: elm.rect.left_con; } + rel1 { relative: 1.0 0.0; to_x: padding.left; to_y: elm.rect.right_con; } + rel2 { relative: 1.0 1.0; to_x: padding.left; to_y: elm.rect.right_con; } align: 0.0 0.5; visible: 1; } } + part { + name: "padding.separator"; + type: SPACER; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; +#ifndef _INDICATOR_REMOVE_SEARCH + min: PADDING_WIDTH/2 0; +#else + min: 0 0; +#endif + fixed: 1 0; + rel1 { relative: 0.0 0.0; to_x: elm.swallow.fixed6; to_y: elm.rect.right_con; } + rel2 { relative: 0.0 1.0; to_x: elm.swallow.fixed6; to_y: elm.rect.right_con; } + align: 1.0 0.5; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + min: 0 0; + fixed: 1 1; + } + } + /* Separator Padding */ part { name: "seperator.image"; type: IMAGE; @@ -354,215 +560,437 @@ collections { mouse_events: 0; description { state: "default" 0.0; - visible: 0; - min: 4 36; +#ifndef _INDICATOR_REMOVE_SEARCH + min: 3 44; +#else + min: 0 0; +#endif fixed: 1 1; - image.normal: "B03_Status_bar_line.PNG"; - rel1 { - relative: 1.0 0.5; - to_x: "elm.swallow.fixed0"; - to_y: "elm.rect.bg"; - } - rel2 { - relative: 1.0 0.5; - to_x: "elm.swallow.fixed0"; - to_y: "elm.rect.bg"; - } - align: 0.0 0.5; - visible : 0; + image.normal: "B03_search_divider.png"; + color_class:"AO004"; + rel1 { relative: 0.0 0.5; to_x: padding.separator; to_y: elm.rect.right_con; } + rel2 { relative: 0.0 0.5; to_x: padding.separator; to_y: elm.rect.right_con; } + align: 1.0 0.5; + visible : 1; } description { - state: "show" 0.0; + state: "hide" 0.0; inherit: "default" 0.0; + min: 0 0; + fixed: 1 1; visible : 0; } } part { - name: "padding.separator"; - type: RECT; + name: "padding.separator2"; + type: SPACER; mouse_events: 0; scale: 1; description { state: "default" 0.0; +#ifndef _INDICATOR_REMOVE_SEARCH min: PADDING_WIDTH 0; +#else + min: 0 0; +#endif fixed: 1 0; - rel1 { - relative: 1.0 1.0; - to_x: "seperator.image"; - to_y: "padding.top"; - } - rel2 { - relative: 1.0 0.0; - to_x: "seperator.image"; - to_y: "padding.bottom"; - } - align: 0.0 0.5; - visible: 1; - color: 0 0 0 0; + rel1 { relative: 0.0 0.0; to_x: seperator.image; to_y: elm.rect.right_con; } + rel2 { relative: 0.0 1.0; to_x: seperator.image; to_y: elm.rect.right_con; } + align: 1.0 0.5; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + min: 0 0; + fixed: 1 1; } } - DYNAMIC_RECT_FROM_LEFT( "elm.rect.fixed2", "elm.swallow.fixed3", "elm.rect.middle_con", DEFAULT_ICON_PADDING, FIXED4_DYNAMIC_PADDING, INDI_DEFAULT_BG_COLOR, 0) - SWALLOW_PART_FROM_LEFT_WITH_EFFECT( "elm.swallow.fixed2", "elm.rect.fixed2", "elm.rect.middle_con", DEFAULT_ICON_WIDTH, DEFAULT_ICON_HEIGHT ) - - FIXED_RECT_FROM_LEFT( "elm.rect.fixed3", "elm.swallow.fixed2", "elm.rect.middle_con", DEFAULT_ICON_PADDING, INDI_DEFAULT_BG_COLOR, 0) - SWALLOW_PART_FROM_LEFT_WITH_EFFECT( "elm.swallow.fixed1", "elm.rect.fixed3", "elm.rect.middle_con", DEFAULT_ICON_WIDTH, DEFAULT_ICON_HEIGHT ) - - FIXED_RECT_FROM_LEFT( "elm.rect.nonfixed", "elm.swallow.fixed1", "elm.rect.middle_con", DEFAULT_ICON_PADDING, INDI_DEFAULT_BG_COLOR, 0) - SWALLOW_PART_FROM_LEFT_WITH_EFFECT( "elm.swallow.nonfixed", "elm.rect.nonfixed", "elm.rect.middle_con", 0, 0) - - SWALLOW_PART_FROM_RIGHT_WITH_EFFECT( "elm.swallow.noti", "clock.padding.left", "elm.rect.middle_con", 0, 0) - + //battery part { - name: elm.swallow.fixed4; + name: "elm.swallow.fixed8"; type: SWALLOW; - mouse_events: 0; scale: 1; description { state: "default" 0.0; - min: HOME_PADDING_PORTRAIT APPTRAY_ICON_HEIGHT; + min: BATTERY_ICON_WIDTH BATTERY_ICON_HEIGHT; fixed: 1 0; - rel1 { relative: 0.0 0.0; to_x: padding.right; to_y: elm.rect.left_con; } - rel2 { relative: 0.0 1.0; to_x: padding.right; to_y: elm.rect.left_con; } + rel1 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "elm.rect.bg"; } + rel2 { relative: 0.0 1.0; to_x: "padding.right"; to_y: "elm.rect.bg"; } + align: 1.0 0.5; + visible: 1; + } + description + { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 0; + max: 0 0; + } + } + + part { + name: "percentage.digit.box"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + min: 7 10; + max: 7 10; + rel1 { relative: 0.0 0.0; to_x: "elm.swallow.fixed8"; } + rel2 { relative: 1.0 1.0; to_x: "elm.swallow.fixed8"; offset: -8 -14; } align: 1.0 0.5; visible: 1; } + description { + state: "two_digits" 0.0; + inherit: "default" 0.0; + min: 15 10; + max: 15 10; + rel1 { relative: 0.0 0.0; to_x: "elm.swallow.fixed8"; } + rel2 { relative: 1.0 1.0; to_x: "elm.swallow.fixed8"; offset: -4 -14; } + } + description { + state: "three_digits" 0.0; + inherit: "default" 0.0; + min: 17 10; + max: 17 10; + rel1 { relative: 0.0 0.0; to_x: "elm.swallow.fixed8"; } + rel2 { relative: 1.0 1.0; to_x: "elm.swallow.fixed8"; offset: -3 -14; } + } } + ////////////////////////////////////////// + ///////// LEFT SIDE ///////////////////// + ////////////////////////////////////////// + + /* ICON_FIXED3 (RSSI 1) + PADDING_FIXED4(RIGHT, FIXED PADDING) */ + FIXED_RECT_FROM_LEFT( "elm.rect.rssi1", "padding.left", "elm.rect.bg", DEFAULT_ICON_PADDING, INDI_DEFAULT_BG_TEST, 0) + SWALLOW_PART_FROM_LEFT_WITH_SPACE( "elm.swallow.fixed1", "elm.rect.rssi1", "elm.rect.bg", DEFAULT_ICON_WIDTH, DEFAULT_ICON_HEIGHT ) + /* ICON_FIXED4 (RSSI 2) + PADDING_FIXED5(RIGHT, FIXED PADDING) */ + FIXED_RECT_FROM_LEFT( "elm.rect.rssi2", "elm.swallow.fixed1", "elm.rect.bg", DEFAULT_ICON_PADDING, INDI_DEFAULT_BG_TEST, 0) + SWALLOW_PART_FROM_LEFT_WITH_SPACE( "elm.swallow.fixed2", "elm.rect.rssi2", "elm.rect.bg", DEFAULT_ICON_WIDTH, DEFAULT_ICON_HEIGHT ) + + /* ICON_FIXED2 (Sim Icon) + PADDING_FIXED3(RIGHT, FIXED PADDING) */ + FIXED_RECT_FROM_LEFT( "elm.rect.simicon", "elm.swallow.fixed2", "elm.rect.bg", DEFAULT_ICON_PADDING, INDI_DEFAULT_BG_TEST, 0) + SWALLOW_PART_FROM_LEFT_WITH_SPACE( "elm.swallow.fixed3", "elm.rect.simicon", "elm.rect.bg", DEFAULT_ICON_WIDTH, DEFAULT_ICON_HEIGHT ) + + /* ICON_FIXED1 (Connection-3G) + PADDING_NONFIXED1(RIGHT,DYNAMIC PADDING) */ + FIXED_RECT_FROM_LEFT( "elm.rect.connection", "elm.swallow.fixed3", "elm.rect.bg", DEFAULT_ICON_PADDING, INDI_DEFAULT_BG_TEST, 0) + SWALLOW_PART_FROM_LEFT_WITH_SPACE( "elm.swallow.fixed4", "elm.rect.connection", "elm.rect.bg", DEFAULT_ICON_WIDTH, DEFAULT_ICON_HEIGHT ) + /* Connection-3G UpDown arrow icon */ part { - name: "seperator.image2"; + name: "elm.image.updown1"; type: IMAGE; scale: 1; mouse_events: 0; description { state: "default" 0.0; + rel1 { relative: 0.5 0.5; to_x: elm.swallow.fixed4; to_y: elm.rect.bg; } + rel2 { relative: 0.5 0.5; to_x: elm.swallow.fixed4; to_y: elm.rect.bg; } + min: 25 25; + fixed: 1 1; + align: 0.5 0.5; + color_class:"AO004"; + visible: 0; + } + description { + state: "none" 0.0; + inherit: "default" 0.0; + image { + normal:"B03_conection_not_UPdownload.png"; + } + visible: 1; + } + description { + state: "upload" 0.0; + inherit: "default" 0.0; + image { + normal:"B03_connection_UPload.png"; + } + visible: 1; + } + description { + state: "download" 0.0; + inherit: "default" 0.0; + image { + normal:"B03_connection_download.png"; + } + visible: 1; + } + description { + state: "updownload" 0.0; + inherit: "default" 0.0; + image { + normal:"B03_conection_UPdownload.png"; + } + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; visible: 0; - min: 4 36; + } + + } + /* ICON_FIXED1 (Wi-Fi) + PADDING_NONFIXED1(RIGHT,DYNAMIC PADDING) */ + FIXED_RECT_FROM_LEFT( "elm.rect.wifi", "elm.swallow.fixed4", "elm.rect.bg", DEFAULT_ICON_PADDING, INDI_DEFAULT_BG_TEST, 0) + SWALLOW_PART_FROM_LEFT_WITH_SPACE( "elm.swallow.fixed5", "elm.rect.wifi", "elm.rect.bg", DEFAULT_ICON_WIDTH, DEFAULT_ICON_HEIGHT ) + /* Wi-Fi UpDown arrow icon */ + part { + name: "elm.image.updown2"; + type: IMAGE; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + rel1 { relative: 0.5 0.5; to_x: elm.swallow.fixed5; to_y: elm.rect.bg; } + rel2 { relative: 0.5 0.5; to_x: elm.swallow.fixed5; to_y: elm.rect.bg; } + min: 25 25; fixed: 1 1; - image.normal: "B03_Status_bar_line.PNG"; - rel1 { - relative: 0.0 0.5; - to_x: "elm.swallow.fixed4"; - to_y: "elm.rect.bg"; + align: 0.5 0.5; + color_class:"AO004"; + visible: 0; + } + description { + state: "none" 0.0; + inherit: "default" 0.0; + image { + normal:"B03_conection_not_UPdownload.png"; } - rel2 { - relative: 0.0 0.5; - to_x: "elm.swallow.fixed4"; - to_y: "elm.rect.bg"; + visible: 1; + } + description { + state: "upload" 0.0; + inherit: "default" 0.0; + image { + normal:"B03_connection_UPload.png"; } - align: 1.0 0.5; - visible : 0; + visible: 1; } description { - state: "show" 0.0; + state: "download" 0.0; inherit: "default" 0.0; - visible : 0; + image { + normal:"B03_connection_download.png"; + } + visible: 1; + } + description { + state: "updownload" 0.0; + inherit: "default" 0.0; + image { + normal:"B03_conection_UPdownload.png"; + } + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; } + } + /* Connection1 (NON_FIXED) (BT) */ + FIXED_RECT_FROM_LEFT( "elm.rect.bt", "elm.swallow.fixed5", "elm.rect.bg", DEFAULT_ICON_PADDING, 0 255 0 255, 0) + SWALLOW_PART_FROM_LEFT_WITH_SPACE( "elm.swallow.fixed6", "elm.rect.bt", "elm.rect.bg", DEFAULT_ICON_WIDTH, DEFAULT_ICON_HEIGHT ) + /* Connection2 (NON_FIXED) (WiFi-direct) */ + FIXED_RECT_FROM_LEFT( "elm.rect.wifidirect", "elm.swallow.fixed6", "elm.rect.bg", DEFAULT_ICON_PADDING, 0 0 255 255, 0) + SWALLOW_PART_FROM_LEFT_WITH_SPACE( "elm.swallow.fixed7", "elm.rect.wifidirect", "elm.rect.bg", DEFAULT_ICON_WIDTH, DEFAULT_ICON_HEIGHT ) + + + ////////////////////////////////////////// + ///////// RIGHT SIDE ///////////////////// + ////////////////////////////////////////// + + /* System (Sound Profile, Call divert, Alarm, GPS) */ + FIXED_RECT_FROM_RIGHT( "elm.rect.system", "elm.swallow.fixed8", "elm.rect.bg", DEFAULT_ICON_PADDING, 255 0 0 255, 0) + SWALLOW_PART_FROM_RIGHT_WITH_SPACE( "elm.swallow.system", "elm.rect.system", "elm.rect.bg", DEFAULT_ICON_WIDTH, DEFAULT_ICON_HEIGHT ) + /* MiniCtrl (Call, Music/FM Radio, Voice recorder) */ + FIXED_RECT_FROM_RIGHT( "elm.rect.minictrl", "elm.swallow.system", "elm.rect.bg", DEFAULT_ICON_PADDING, 0 255 0 255, 0) + SWALLOW_PART_FROM_RIGHT_WITH_SPACE( "elm.swallow.minictrl", "elm.rect.minictrl", "elm.rect.bg", DEFAULT_ICON_WIDTH, DEFAULT_ICON_HEIGHT ) + + /* NOTI(R1~R5) */ + FIXED_RECT_FROM_RIGHT( "elm.rect.noti", "elm.swallow.minictrl", "elm.rect.bg", DEFAULT_ICON_PADDING, 0 0 255 255, 0) + SWALLOW_PART_FROM_RIGHT_WITH_SPACE( "elm.swallow.noti", "elm.rect.noti", "elm.rect.middle_con", 0, 0) + + /* more */ + SWALLOW_PART_FROM_RIGHT_WITH_EFFECT( "elm.swallow.fixed10", "elm.swallow.noti", "elm.rect.middle_con", 0, 0) + +#ifdef _SUPPORT_SCREEN_READER part { - name: "padding.separator2"; + name: elm.swallow.fixed9.access; type: RECT; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 0; + rel1.to: elm.swallow.fixed9; + rel2.to: elm.swallow.fixed9; + visible: 1; + color:0 0 0 0; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } +#endif + part { + name: elm.swallow.fixed9; + type: SWALLOW; mouse_events: 0; scale: 1; description { state: "default" 0.0; - min: PADDING_WIDTH 0; +#ifndef _INDICATOR_REMOVE_SEARCH + min: HOME_PADDING_PORTRAIT FIXED4_ICON_HEIGHT; +#else + min: 0 0; +#endif fixed: 1 0; - rel1 { - relative: 1.0 1.0; - to_x: "seperator.image2"; - to_y: "padding.top"; - } - rel2 { - relative: 1.0 0.0; - to_x: "seperator.image2"; - to_y: "padding.bottom"; + rel1 { relative: 0.0 0.0; to_x: padding.right; to_y: elm.rect.right_con; } + rel2 { relative: 0.0 1.0; to_x: padding.right; to_y: elm.rect.right_con; } + align: 1.0 0.5; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + min: 0 0; + fixed:1 0; + visible: 0; + } + } + part { + name: "elm.image.plmn"; + type: IMAGE; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + min: 0 0; + fixed: 1 0; + color: 100 100 100 100; + rel1 { relative: 0.0 0.5; to_x: elm.swallow.fixed8; to_y: elm.rect.right_con; } + rel2 { relative: 0.0 0.5; to_x: elm.swallow.fixed8; to_y: elm.rect.right_con; } + align: 1.0 0.5; + visible: 0; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + min: 112 31; + fixed: 1 1; + image { + normal:"B03_OrangeF.png"; } - align: 0.0 0.5; + color_class:"AO004"; visible: 1; - color: 0 0 0 0; } } - part { - name: "clock.padding.left"; + name: "plmn_dynamic.padding.left"; type: RECT; mouse_events: 0; scale: 1; description { state: "default" 0.0; - min: 12 0; + min: 0 0; + fixed: 1 0; + rel1 { relative: 1.0 0.5; to_x: elm.swallow.fixed9; to_y: elm.rect.right_con; } + rel2 { relative: 1.0 0.5; to_x: elm.swallow.fixed9; to_y: elm.rect.right_con; } + color : 255 0 0 125; + visible: 0; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + min: 30 0; fixed: 1 0; - rel1.to_x: "elm.rect.clock"; - rel2 { relative: 0.0 1.0; to_x: "elm.rect.clock"; } visible: 0; } } - part { - name: "clock.padding.top"; - type: RECT; - mouse_events: 0; + name: "elm.image.plmn_dynamic"; + type: IMAGE; scale: 1; + mouse_events: 0; description { state: "default" 0.0; - min: 116 5; - fixed: 1 1; - rel1 { relative: 0.5 0.0; to_x: elm.rect.bg; to_y: elm.rect.middle_con; } - rel2 { relative: 0.5 0.0; to_x: elm.rect.bg; to_y: elm.rect.middle_con; } + min: 0 0; + fixed: 1 0; + rel1 { relative: 1.0 0.5; to_x:plmn_dynamic.padding.left; to_y: elm.rect.right_con; } + rel2 { relative: 1.0 0.5; to_x:plmn_dynamic.padding.left; to_y: elm.rect.right_con; } + align: 0.0 0.5; visible: 0; } + description { + state: "show" 0.0; + inherit: "default" 0.0; + min: 112 31; + fixed: 1 1; + image { + normal:"B03_OrangeF.png"; + } + visible: 1; + } } part { - name: "elm.rect.clock"; + name: "plmn_dynamic.padding.right"; type: RECT; mouse_events: 0; scale: 1; description { state: "default" 0.0; - min: CLOCK_WIDTH CLOCK_HEIGHT; - fixed: 1 1; - rel1 { relative: 0.5 1.0; to: "clock.padding.top"; } - rel2 { relative: 0.5 1.0; to: "clock.padding.top"; } - align: 0.5 0.0; + min: 0 0; + fixed: 1 0; + rel1 { relative: 1.0 0.5; to_x: elm.image.plmn_dynamic; to_y: elm.rect.right_con; } + rel2 { relative: 1.0 0.5; to_x: elm.image.plmn_dynamic; to_y: elm.rect.right_con; } + color : 255 0 0 125; visible: 0; } description { - state: "ampm" 0.0; - min: CLOCK_WIDTH CLOCK_HEIGHT; - fixed: 1 1; - rel1 { relative: 0.5 1.0; to: "clock.padding.top"; } - rel2 { relative: 0.5 1.0; to: "clock.padding.top"; } - align: 0.5 0.0; + state: "show" 0.0; + inherit: "default" 0.0; + min: 5 0; + fixed: 1 0; visible: 0; } } part { - name: "elm.rect.innerclock"; + name: "clock.padding.left"; type: RECT; mouse_events: 0; scale: 1; description { state: "default" 0.0; - rel1 { relative: 0.5 0.5; to: "elm.rect.clock";} - rel2 { relative: 0.5 0.5; to: "elm.rect.clock";} + min: 5 0; + fixed: 1 0; + rel1 { relative: 0.0 0.0; to_x: elm.text.clock; to_y: elm.rect.bg; } + rel2 { relative: 0.0 1.0; to_x: elm.text.clock; to_y: elm.rect.bg; } + align: 1.0 0.5; + visible: 0; } } + part { name: "elm.text.clock"; type: TEXTBLOCK; - mouse_events: 0; scale: 1; + mouse_events: 0; description { state: "default" 0.0; - rel1.to: "elm.rect.innerclock"; - rel2.to: "elm.rect.innerclock"; + rel1 { relative: 1.0 0.0; to: "elm.rect.bg"; } + rel2 { relative: 0.0 1.0; to: "elm.rect.bg"; } + align: 0.5 0.5; fixed: 1 1; text { - style: "textblock_style"; min: 1 1; + style: "textblock_style"; align: 0.5 0.5; } } @@ -573,244 +1001,348 @@ collections { style: "textblock_outline_style"; } } - } - - part { - name: "elm.swallow.fixed3"; - type: SWALLOW; - mouse_events: 0; - scale: 1; description { - state: "default" 0.0; - min: BATTERY_ICON_WIDTH BATTERY_ICON_HEIGHT; - fixed: 1 1; - rel1 { relative: 0.5 0.0; to: "clock.padding.bottom"; } - rel2 { relative: 0.5 0.0; to: "clock.padding.bottom"; } - align: 0.5 1.0; - visible: 1; + state: "size24" 0.0; + inherit: "default" 0.0; + text { + style: "textblock_style_24"; + } + } + description { + state: "invisible" 0.0; + inherit: "default" 0.0; + visible:0; } } - part { - name: "clock.padding.bottom"; + name: "clock.padding.right"; type: RECT; mouse_events: 0; scale: 1; description { state: "default" 0.0; - min: 116 5; - fixed: 1 1; - rel1 { relative: 0.5 1.0; to: "elm.rect.bg";} - rel2 { relative: 0.5 1.0; to: "elm.rect.bg";} - align: 0.5 1.0; + min: 2 0; + fixed: 1 0; + rel1 { relative: 1.0 0.0; to_x: "elm.text.clock"; to_y: "elm.rect.bg"; } + rel2 { relative: 1.0 1.0; to_x: "elm.text.clock"; to_y: "elm.rect.bg"; } + align: 1.0 0.5; visible: 0; } } - part { - name: "clock.padding.right"; - type: RECT; + name: "indicator.alarm.icon"; + type: SWALLOW; mouse_events: 0; scale: 1; description { state: "default" 0.0; - min: 12 0; + min: DEFAULT_ICON_WIDTH DEFAULT_ICON_HEIGHT; + rel1 { relative: 1.0 0.0; to_x: "clock.padding.right"; to_y: "elm.rect.bg"; } + rel2 { relative: 1.0 1.0; to_x: "clock.padding.right"; to_y: "elm.rect.bg"; } fixed: 1 0; - rel1 { relative: 1.0 0.0; to_x: "elm.rect.clock"; } - rel2 { relative: 0.0 1.0; to_x: "elm.rect.clock"; } - visible: 0; + align: 0.0 0.0; } } +#ifdef _SUPPORT_SCREEN_READER part { - name: "elm.padding.badge.left"; + name: "elm.rect.clock.access"; type: RECT; - mouse_events: 0; scale: 1; description { state: "default" 0.0; - min: 3 0; - fixed: 1 0; - rel1.to: "elm.text.badge"; - rel2 { to: "elm.text.badge"; relative: 0.0 1.0; } - align: 1.0 0.5; + rel1 { relative: 0.0 0.0; to_x: "elm.swallow.fixed5"; to_y: "elm.swallow.fixed5"; } + rel2 { relative: 1.0 1.0; to_x: "elm.rect.clock"; to_y: "elm.rect.clock"; } visible: 1; + color:0 0 0 0; } } +#endif part { - name: "elm.padding.badge.right"; + name: "message.bg"; type: RECT; - mouse_events: 0; scale: 1; + mouse_events: 0; description { state: "default" 0.0; - min: 3 0; - fixed: 1 0; - rel1 { to: "elm.text.badge"; relative: 1.0 0.0; } - rel2.to: "elm.text.badge"; - align: 0.0 0.5; + min: 0 INDICATOR_HEIGHT; + fixed: 0 1; + rel1 { relative: 0.0 0.0; to: "elm.rect.bg.base"; } + rel2 { relative: 1.0 0.0; to: "elm.rect.bg.base"; } + align: 0.0 1.0; + color: INDI_DEFAULT_BG_TRANSPARENT; visible: 1; } + description { + state: "transparent" 0.0; + inherit: "default" 0.0; + } } part { - name: "elm.image.badge"; - type: IMAGE; - mouse_events: 0; + name: "message.padding.left"; + type: RECT; scale: 1; + mouse_events: 0; description { state: "default" 0.0; - min: 18 18; - fixed: 1 1; - rel1.to: "elm.padding.badge.left"; - rel2.to: "elm.padding.badge.right"; - image { - border: 8 8 8 8; - border_scale: 1; - } - visible: 0; - } - description { - state: "show" 0.0; - inherit: "default" 0.0; - visible: 1; + min: MESSAGE_PADDING 0; + fixed: 1 0; + rel1 { + relative: 0.0 0.0; + to: "message.bg"; + } + rel2 { + relative: 0.0 1.0; + to: "message.bg"; + } + align: 0.0 0.0; + visible: 0; } description { - state: "show2" 0.0; + state: "scover" 0.0; inherit: "default" 0.0; - visible: 1; + min: 72 0; } } - part { - name: "elm.text.badge"; - type: TEXT; - mouse_events: 0; + name: "message.padding.right"; + type: RECT; scale: 1; + mouse_events: 0; description { state: "default" 0.0; - rel1 { to: "elm.rect.clock"; relative: 0.95 0.2; } - rel2 { to: "elm.rect.clock"; relative: 0.95 0.2; } - color: 255 255 255 255; - align: 1.0 0.0; - text { - font: "Tizen"; - size: 15; - min: 1 0; - align: 0.5 0.5; + min: MESSAGE_PADDING 0; + fixed: 1 0; + rel1 { + relative: 1.0 0.0; + to: "message.bg"; + } + rel2 { + relative: 1.0 1.0; + to: "message.bg"; } + align: 1.0 0.0; + visible: 0; } description { - state: "default2" 0.0; + state: "scover" 0.0; inherit: "default" 0.0; - color: 0 0 0 255; + min: 72 0; + } + } + part { + name: "message.padding.top"; + type: RECT; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + min: 0 INDICATOR_PADDING_H; + fixed: 0 1; + rel1 { relative: 0.0 0.0; to: "message.bg"; } + rel2 { relative: 1.0 0.0; to: "message.bg"; } + align: 0.0 0.0; + visible: 0; } } part { - name: "slide_clip"; + name: "message.padding.bottom"; type: RECT; scale: 1; + mouse_events: 0; description { state: "default" 0.0; + min: 0 INDICATOR_PADDING_H; + fixed: 0 1; + rel1 { relative: 0.0 1.0; to: "message.bg"; } + rel2 { relative: 1.0 1.0; to: "message.bg"; } + align: 0.0 1.0; + visible: 0; + } + + } + part { + name: "message.text"; + type: TEXTBLOCK; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + fixed: 1 1; + visible: 1; rel1 { - relative: 1.0 -1.0; - to_x: "seperator.image"; - to_y: "elm.rect.bg"; + relative: 1.0 0.0; + to_x: "message.padding.left"; + to_y: "message.bg"; } + rel2 { - relative: 1.0 1.0; - to_x: "clock.padding.left"; - to_y: "elm.rect.bg"; + relative: 0.0 1.0; + to_x: "message.padding.right"; + to_y: "message.bg"; + } + text { + style: "message_style"; + min: 0 1; } - color: 255 255 255 0; } description { - state: "show" 0.0; + state: "line2" 0.0; + inherit: "default" 0.0; rel1 { - relative: 1.0 0.0; - to_x: "seperator.image"; - to_y: "elm.rect.bg"; + relative: 1.0 1.0; + to_x: "message.padding.left"; + to_y: "message.bg"; } + rel2 { - relative: 1.0 1.0; - to_x: "clock.padding.left"; - to_y: "elm.rect.bg"; + relative: 0.0 2.0; + to_x: "message.padding.right"; + to_y: "message.bg"; + } + text { + style: "message_style2"; + min: 0 1; } - color: 255 255 255 255; + visible: 0; } } part { - name: "slide_clip2"; - type: RECT; + name: "message.text.compare"; + type: TEXTBLOCK; scale: 1; + mouse_events: 0; description { state: "default" 0.0; + fixed: 1 1; + visible: 0; rel1 { - relative: 1.0 -1.0; - to_x: "clock.padding.right"; - to_y: "elm.rect.bg"; + relative: 0.0 0.0; + to: "message.text"; } rel2 { - relative: 0.0 1.0; - to_x: "seperator.image2"; - to_y: "elm.rect.bg"; + relative: 3.0 1.0; + to: "message.text"; + } + text { + style: "message_style_compare"; + min: 0 1; } - color: 255 255 255 0; } + } + part { + name: "message.line2.text"; + type: TEXTBLOCK; + scale: 1; + mouse_events: 0; description { - state: "show" 0.0; + state: "default" 0.0; + fixed: 1 1; + visible: 1; rel1 { - relative: 1.0 0.0; - to_x: "clock.padding.right"; - to_y: "elm.rect.bg"; + relative: 1.0 -1.0; + to_x: "message.padding.left"; + to_y: "message.text"; } + rel2 { - relative: 0.0 1.0; - to_x: "seperator.image2"; - to_y: "elm.rect.bg"; + relative: 0.0 0.0; + to_x: "message.padding.right"; + to_y: "message.text"; + } + text { + style: "message_style"; + min: 0 1; } - color: 255 255 255 255; } } - } programs { + /********************************************************* + * + * Fixed ICon + * + **********************************************************/ program { - name: "change_padding_1"; - action: STATE_SET "changePad" 0.0; - signal: "change,padding,1"; - source: "elm.rect.*"; - script { - if (get_int(changepad) == 0) { - set_int(changepad,1); + name: "message.show"; + action: STATE_SET "hide" 0.0; + signal: "message.show"; + source: "indicator.prog"; + script + { + if (get_int(bg_set) == 0) + { + run_program(PROGRAM:"message.show.effect"); + } + else if(get_int(bg_set) == 1) + { + run_program(PROGRAM:"message.show.effect"); + } + else + { + run_program(PROGRAM:"message.show.noeffect"); } } } program { - name: "change_padding_2"; - action: STATE_SET "changePad" 0.0; - signal: "change,padding,2"; - source: "elm.rect.*"; - script { - if (get_int(changepad) == 1) { - set_int(changepad,0); - } - } + name: "message.show.effect"; + action: STATE_SET "hide" 0.0; + source: "indicator.prog"; + target: "elm.rect.bg.base"; + transition: LINEAR 0.3; } program { - name: "home_pressed"; - signal: "home.pressed"; + name: "message.show.noeffect"; + action: STATE_SET "hide" 0.0; + signal: "message.show.noeffect"; source: "indicator.prog"; - script { - } + target: "elm.rect.bg.base"; } + program { + name: "message.hide"; + action: STATE_SET "default" 0.0; + signal: "message.hide"; + source: "indicator.prog"; + target: "elm.rect.bg.base"; + transition: LINEAR 0.3; + after:message.line2.hide.noeffect; + } + program { + name: "message.line2.show"; + action: STATE_SET "line2" 0.0; + signal: "message.line2.show"; + source: "indicator.prog"; + target: "message.text"; + transition: LINEAR 0.3; + } program { + name: "message.line2.hide"; + action: STATE_SET "default" 0.0; + signal: "message.line2.hide"; + source: "indicator.prog"; + target: "message.text"; + transition: LINEAR 0.3; + } + program { + name: "message.line2.hide.noeffect"; + action: STATE_SET "default" 0.0; + signal: "message.line2.hide.noeffect"; + source: "indicator.prog"; + target: "message.text"; + } + /********************************************************* + * + * BG and CLOCK + * + **********************************************************/ + program { name: "bg_opaque"; action: STATE_SET "default" 0.0; signal: "bg.opaque"; @@ -818,6 +1350,7 @@ collections { script { set_int(bg_set, 0); set_state(PART:"elm.rect.bg", "opaque", 0.0); + set_state(PART:"message.bg", "transparent", 0.0); } } @@ -829,6 +1362,7 @@ collections { script { set_int(bg_set, 1); set_state(PART:"elm.rect.bg", "translucent", 0.0); + set_state(PART:"message.bg", "transparent", 0.0); } } @@ -839,6 +1373,7 @@ collections { script { set_int(bg_set, 2); set_state(PART:"elm.rect.bg", "transparent", 0.0); + set_state(PART:"message.bg", "transparent", 0.0); } } @@ -849,150 +1384,474 @@ collections { script { set_int(bg_set, 3); set_state(PART:"elm.rect.bg", "notification", 0.0); + set_state(PART:"message.bg", "transparent", 0.0); } } program { - name: "clock_size_default"; - signal: "indicator.clock.default"; + name: "indicator.lock.on"; + action: STATE_SET "hide" 0.0; + signal: "indicator.lock.on"; source: "indicator.prog"; - script { - set_state(PART:"elm.rect.clock", "default", 0.0); - } - + target: "elm.swallow.fixed6"; + target: "seperator.image"; + target: "padding.separator"; + target: "padding.separator2"; } + program { - name: "clock_size_ampm"; - signal: "indicator.clock.ampm"; + name: "indicator.lock.off"; + action: STATE_SET "default" 0.0; + signal: "indicator.lock.off"; source: "indicator.prog"; - script { - set_state(PART:"elm.rect.clock", "ampm", 0.0); - } - + target: "elm.swallow.fixed6"; + target: "seperator.image"; + target: "padding.separator"; + target: "padding.separator2"; } + /* Battery */ program { - name: "show.clip.noeffect"; - in: 0.15 0.0; + name: "indicator.battery.percentage.show"; action: STATE_SET "show" 0.0; - signal: "indicator.clip.show.noeffect"; + signal: "indicator.battery.percentage.show"; source: "indicator.prog"; - target: "slide_clip"; - target: "slide_clip2"; + target: "elm.swallow.fixed8"; } program { - name: "show.clip"; - in: 0.15 0.0; - action: STATE_SET "show" 0.0; - signal: "indicator.clip.show"; + name: "indicator.battery.percentage.hide"; + action: STATE_SET "default" 0.0; + signal: "indicator.battery.percentage.hide"; source: "indicator.prog"; - target: "slide_clip"; - target: "slide_clip2"; - transition: LINEAR 0.15; + target: "elm.swallow.fixed8"; } program { - name: "hide.clip.noeffect"; + name: "indicator.battery.percentage.one.digit.show"; action: STATE_SET "default" 0.0; - signal: "indicator.clip.hide.noeffect"; + signal: "indicator.battery.percentage.one.digit.show"; source: "indicator.prog"; - target: "slide_clip"; - target: "slide_clip2"; + target: "percentage.digit.box"; } program { - name: "hide.clip"; + name: "indicator.battery.percentage.two.digits.show"; + action: STATE_SET "two_digits" 0.0; + signal: "indicator.battery.percentage.two.digits.show"; + source: "indicator.prog"; + target: "percentage.digit.box"; + } + + program { + name: "indicator.battery.percentage.full.show"; + action: STATE_SET "three_digits" 0.0; + signal: "indicator.battery.percentage.full.show"; + source: "indicator.prog"; + target: "percentage.digit.box"; + } + // RSSI1 + program { + name: "indicator.rssi1.show"; action: STATE_SET "default" 0.0; - signal: "indicator.clip.hide"; + signal: "indicator.rssi1.show"; source: "indicator.prog"; - target: "slide_clip"; - target: "slide_clip2"; - transition: LINEAR 0.15; + target: "elm.swallow.fixed1"; + target: "elm.rect.rssi1"; } + program { - name: "show.noti.noeffect"; - action: STATE_SET "show" 0.0; - signal: "indicator.noti.show.noeffect"; + name: "indicator.rssi1.hide"; + action: STATE_SET "hide" 0.0; + signal: "indicator.rssi1.hide"; source: "indicator.prog"; - target: "elm.swallow.noti"; - target: "elm.swallow.nonfixed"; target: "elm.swallow.fixed1"; + target: "elm.rect.rssi1"; + } + // RSSI2 + program { + name: "indicator.rssi2.show"; + action: STATE_SET "default" 0.0; + signal: "indicator.rssi2.show"; + source: "indicator.prog"; target: "elm.swallow.fixed2"; - target: "seperator.image"; - target: "seperator.image2"; + target: "elm.rect.rssi2"; } program { - name: "show.noti"; - action: STATE_SET "show" 0.0; - signal: "indicator.noti.show"; + name: "indicator.rssi2.hide"; + action: STATE_SET "hide" 0.0; + signal: "indicator.rssi2.hide"; source: "indicator.prog"; - target: "elm.swallow.noti"; - target: "elm.swallow.nonfixed"; - target: "elm.swallow.fixed1"; target: "elm.swallow.fixed2"; - target: "seperator.image"; - target: "seperator.image2"; - transition: LINEAR 0.3; + target: "elm.rect.rssi2"; } + // Sim Icon program { - name: "hide.noti.noeffect"; + name: "indicator.simicon.show"; action: STATE_SET "default" 0.0; - signal: "indicator.noti.hide.noeffect"; + signal: "indicator.simicon.show"; source: "indicator.prog"; - target: "elm.swallow.noti"; - target: "elm.swallow.nonfixed"; - target: "elm.swallow.fixed1"; - target: "elm.swallow.fixed2"; - target: "seperator.image"; - target: "seperator.image2"; + target: "elm.swallow.fixed3"; + target: "elm.rect.simicon"; + } + + program { + name: "indicator.simicon.hide"; + action: STATE_SET "hide" 0.0; + signal: "indicator.simicon.hide"; + source: "indicator.prog"; + target: "elm.swallow.fixed3"; + target: "elm.rect.simicon"; + } + + /* Connection - 3G */ + program { + name: "indicator.connection.show"; + action: STATE_SET "default" 0.0; + signal: "indicator.connection.show"; + source: "indicator.prog"; + target: "elm.swallow.fixed4"; + target: "elm.rect.connection"; + } + + program { + name: "indicator.connection.hide"; + action: STATE_SET "hide" 0.0; + signal: "indicator.connection.hide"; + source: "indicator.prog"; + target: "elm.swallow.fixed4"; + target: "elm.rect.connection"; + } + + // WIFI + program { + name: "indicator.wifi.show"; + action: STATE_SET "default" 0.0; + signal: "indicator.wifi.show"; + source: "indicator.prog"; + target: "elm.swallow.fixed5"; + target: "elm.rect.wifi"; + } + + program { + name: "indicator.wifi.hide"; + action: STATE_SET "hide" 0.0; + signal: "indicator.wifi.hide"; + source: "indicator.prog"; + target: "elm.swallow.fixed5"; + target: "elm.rect.wifi"; + } + // BLUETOOTH + program { + name: "indicator.bluetooth.show"; + action: STATE_SET "default" 0.0; + signal: "indicator.bluetooth.show"; + source: "indicator.prog"; + target: "elm.swallow.fixed6"; + target: "elm.rect.bt"; } + + program { + name: "indicator.bluetooth.hide"; + action: STATE_SET "hide" 0.0; + signal: "indicator.bluetooth.hide"; + source: "indicator.prog"; + target: "elm.swallow.fixed6"; + target: "elm.rect.bt"; + } + // WIFI-Direct program { - name: "hide.noti"; + name: "indicator.wifidirect.show"; action: STATE_SET "default" 0.0; + signal: "indicator.wifidirect.show"; + source: "indicator.prog"; + target: "elm.swallow.fixed7"; + target: "elm.rect.wifidirect"; + } + + program { + name: "indicator.wifidirect.hide"; + action: STATE_SET "hide" 0.0; + signal: "indicator.wifidirect.hide"; + source: "indicator.prog"; + target: "elm.swallow.fixed7"; + target: "elm.rect.wifidirect"; + } + + // UpDown Arrow icon + program { + name: "indicator.connection.updown.none"; + action: STATE_SET "none" 0.0; + signal: "indicator.connection.updown.none"; + source: "indicator.prog"; + target: "elm.image.updown1"; + } + program { + name: "indicator.connection.updown.download"; + action: STATE_SET "download" 0.0; + signal: "indicator.connection.updown.download"; + source: "indicator.prog"; + target: "elm.image.updown1"; + } + program { + name: "indicator.connection.updown.upload"; + action: STATE_SET "upload" 0.0; + signal: "indicator.connection.updown.upload"; + source: "indicator.prog"; + target: "elm.image.updown1"; + } + program { + name: "indicator.connection.updown.updownload"; + action: STATE_SET "updownload" 0.0; + signal: "indicator.connection.updown.updownload"; + source: "indicator.prog"; + target: "elm.image.updown1"; + } + program { + name: "indicator.connection.updown.hide"; + action: STATE_SET "hide" 0.0; + signal: "indicator.connection.updown.hide"; + source: "indicator.prog"; + target: "elm.image.updown1"; + } + program { + name: "indicator.wifi.updown.none"; + action: STATE_SET "none" 0.0; + signal: "indicator.wifi.updown.none"; + source: "indicator.prog"; + target: "elm.image.updown2"; + } + program { + name: "indicator.wifi.updown.download"; + action: STATE_SET "download" 0.0; + signal: "indicator.wifi.updown.download"; + source: "indicator.prog"; + target: "elm.image.updown2"; + } + program { + name: "indicator.wifi.updown.upload"; + action: STATE_SET "upload" 0.0; + signal: "indicator.wifi.updown.upload"; + source: "indicator.prog"; + target: "elm.image.updown2"; + } + program { + name: "indicator.wifi.updown.updownload"; + action: STATE_SET "updownload" 0.0; + signal: "indicator.wifi.updown.updownload"; + source: "indicator.prog"; + target: "elm.image.updown2"; + } + program { + name: "indicator.wifi.updown.hide"; + action: STATE_SET "hide" 0.0; + signal: "indicator.wifi.updown.hide"; + source: "indicator.prog"; + target: "elm.image.updown2"; + } + // System Box + program { + name: "indicator.system.show"; + action: STATE_SET "default" 0.0; + signal: "indicator.system.show"; + source: "indicator.prog"; + target: "elm.swallow.system"; + target: "elm.rect.system"; + } + + program { + name: "indicator.system.hide"; + action: STATE_SET "hide" 0.0; + signal: "indicator.system.hide"; + source: "indicator.prog"; + target: "elm.swallow.system"; + target: "elm.rect.system"; + } + // Mini Control box + program { + name: "indicator.minictrl.show"; + action: STATE_SET "default" 0.0; + signal: "indicator.minictrl.show"; + source: "indicator.prog"; + target: "elm.swallow.minictrl"; + target: "elm.rect.minictrl"; + } + + program { + name: "indicator.minictrl.hide"; + action: STATE_SET "hide" 0.0; + signal: "indicator.minictrl.hide"; + source: "indicator.prog"; + target: "elm.swallow.minictrl"; + target: "elm.rect.minictrl"; + } + // Noti box + program { + name: "indicator.noti.show"; + action: STATE_SET "default" 0.0; + signal: "indicator.noti.show"; + source: "indicator.prog"; + target: "elm.swallow.noti"; + target: "elm.rect.noti"; + } + + program { + name: "indicator.noti.hide"; + action: STATE_SET "hide" 0.0; signal: "indicator.noti.hide"; source: "indicator.prog"; target: "elm.swallow.noti"; - target: "elm.swallow.nonfixed"; - target: "elm.swallow.fixed1"; - target: "elm.swallow.fixed2"; - target: "seperator.image"; - target: "seperator.image2"; - transition: LINEAR 0.3; + target: "elm.rect.noti"; + } + // S Cover + program { + name: "indicator.scover.on"; + action: STATE_SET "scover" 0.0; + signal: "indicator.scover.on"; + source: "indicator.prog"; + target: "padding.left"; + target: "padding.right"; + target: "message.padding.left"; + target: "message.padding.right"; + } + program { + name: "indicator.scover.off"; + action: STATE_SET "default" 0.0; + signal: "indicator.scover.off"; + source: "indicator.prog"; + target: "padding.left"; + target: "padding.right"; + target: "message.padding.left"; + target: "message.padding.right"; + } + program { + name: "indicator.padding.dynamic.on"; + action: STATE_SET "dynamic" 0.0; + signal: "indicator.padding.dynamic.on"; + source: "indicator.prog"; + target: "padding.right"; + transition: LINEAR 0.4; + } + program { + name: "indicator.padding.dynamic.off"; + action: STATE_SET "default" 0.0; + signal: "indicator.padding.dynamic.off"; + source: "indicator.prog"; + target: "padding.right"; + transition: LINEAR 0.4; } + program { + name: "indicator.padding.dynamic.off.noeffect"; + action: STATE_SET "default" 0.0; + signal: "indicator.padding.dynamic.off.noeffect"; + source: "indicator.prog"; + target: "padding.right"; + } program { - name: "badge_show"; - signal: "badge,show,1"; - source: "elm.image.badge"; - script { - if (get_int(badge_set) == 0) { - set_int(badge_set, 1); - if (get_int(theme) == 2) { - set_state(PART:"elm.image.badge", "show2", 0.0); - set_state(PART:"elm.text.badge", "default2", 0.0); - } else { - set_state(PART:"elm.image.badge", "show", 0.0); - set_state(PART:"elm.text.badge", "default", 0.0); - } - } - } + name: "indicator.padding.resize.0"; + action: STATE_SET "default" 0.0; + signal: "indicator.padding.resize.0"; + source: "indicator.prog"; + target: "resize_padding.left"; + target: "resize_padding.right"; + } + program { + name: "indicator.padding.resize.1"; + action: STATE_SET "1" 0.0; + signal: "indicator.padding.resize.1"; + source: "indicator.prog"; + target: "resize_padding.left"; + target: "resize_padding.right"; } program { - name: "badge_hide"; - signal: "badge,hide,1"; - source: "elm.image.badge"; - script { - if (get_int(badge_set) == 1) { - set_int(badge_set, 0); - set_state(PART:"elm.image.badge", "default", 0.0); - } - } + name: "indicator.padding.resize.2"; + action: STATE_SET "2" 0.0; + signal: "indicator.padding.resize.2"; + source: "indicator.prog"; + target: "resize_padding.left"; + target: "resize_padding.right"; + } + + program { + name: "indicator.padding.resize.3"; + action: STATE_SET "3" 0.0; + signal: "indicator.padding.resize.3"; + source: "indicator.prog"; + target: "resize_padding.left"; + target: "resize_padding.right"; + } + + program { + name: "indicator.padding.resize.4"; + action: STATE_SET "4" 0.0; + signal: "indicator.padding.resize.4"; + source: "indicator.prog"; + target: "resize_padding.left"; + target: "resize_padding.right"; + } + + program { + name: "indicator.bg.call.0"; + action: STATE_SET "default" 0.0; + signal: "indicator.bg.call.0"; + source: "indicator.prog"; + target: "elm.rect.bg.call"; } + program { + name: "indicator.bg.call.1"; + action: STATE_SET "during_call" 0.0; + signal: "indicator.bg.call.1"; + source: "indicator.prog"; + target: "elm.rect.bg.call"; + } + program { + name: "indicator.bg.call.2"; + action: STATE_SET "call_hold" 0.0; + signal: "indicator.bg.call.2"; + source: "indicator.prog"; + target: "elm.rect.bg.call"; + } + program { + name: "indicator.bg.call.3"; + action: STATE_SET "call_end" 0.0; + signal: "indicator.bg.call.3"; + source: "indicator.prog"; + target: "elm.rect.bg.call"; + } + + program { + name: "clock.font.12"; + action: STATE_SET "default" 0.0; + signal: "clock.font.12"; + source: "indicator.prog"; + target: "elm.text.clock"; + } + program { + name: "clock.font.24"; + action: STATE_SET "size24" 0.0; + signal: "clock.font.24"; + source: "indicator.prog"; + target: "elm.text.clock"; + } + program { + name: "clock.invisible"; + action: STATE_SET "invisible" 0.0; + signal: "clock.invisible"; + source: "indicator.prog"; + target: "elm.text.clock"; + } + + /********************************************************* + * + * BADGE + * + **********************************************************/ + } } } diff --git a/data/resource/ticker.edc b/data/resource/ticker.edc new file mode 100755 index 0000000..e88ed6e --- /dev/null +++ b/data/resource/ticker.edc @@ -0,0 +1,216 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "color_classes.edc" +#include "indicator_gui.h" + +#define TICKERNOTI_MAIN_TEXT_HEIGHT_INC 1 + +collections +{ + base_scale: 1.7; + + group { + name: "quickpanel/tickernoti/text"; + data { + item: "height" TICKERNOTI_DEFAULT_BG_MIN_HEIGHT_INC; + } + styles { + style { + name: "style_main_text"; + base: "font=Tizen:style=Regular font_size=25 color=#FFFFFF text_class=tizen wrap=mixed"; + tag: "br" "\n"; + tag: "ps" "ps"; + tag: "b" "+ font_weight=Bold"; + } + } + parts { + part { + name: "elm.text"; + type: TEXTBLOCK; + scale: 1; + multiline: 1; + mouse_events: 0; + description { + state: "default" 0.0; + min: 434 0; + align: 0.5 0.0; + text { + style: "style_main_text"; + min: 0 1; + align: 0.0 0.0; + } + } + } + } + } + + group { + name: "quickpanel/tickernoti/normal"; + data { + item: "height" TICKERNOTI_DEFAULT_BG_MIN_HEIGHT_INC; + } + parts { + part { + name: "base"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + align: 0.0 0.0; + } + + } + part { + name: "clipper"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + rel1.to: "base"; + rel2.to: "base"; + align: 0.0 0.0; + } + } + part { + name: "bg"; + mouse_events: 1; + type: RECT; + clip_to: "clipper"; + scale: 1; + description { state: "default" 0.0; + visible: 0; + rel1.to: "base"; + rel2.to: "base"; + } + } + + part { + name: "bg_img"; + mouse_events: 0; + type: RECT; + scale: 1; + description { state: "default" 0.0; + visible: 1; + align:0.0 0.0; + + rel1.to: "bg"; + rel2.to: "bg"; + /* FIXME */ + color: 0 0 0 255; + //color_class: "AO008_STATUS"; + } + } + // Icon + part { + name: "icon"; + type: SWALLOW; + scale: 1; + mouse_events: 1; + clip_to: "clipper"; + description { + state: "default" 0.0; + fixed: 1 1; + min: 25 25; + max: 25 25; + align: 0.0 0.5; + rel1 + { + relative: 0.0 0.5; + to: "base"; + offset: 6 0; + } + rel2 { + relative: 0.0 0.5; + to: "base"; + } + aspect: 1.0 1.0; + aspect_preference: VERTICAL; + } + } + /* Text */ + part { + name: "text_rect"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + max: 800 36; + fixed: 1 1; + align: 0.0 0.5; + rel1 { + relative: 1.0 0.0; + to_x: "icon"; + to_y: "base"; + offset: 10 3; + } + rel2 { + relative: 1.0 0.9; + to: "base"; + } + } + } + part { + name: "event"; + type: RECT; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + color: 0 0 0 0; + rel1 { + to: "bg"; + } + rel2 { + to: "bg"; + } + } + } + } + programs { + program { + name: "effect_show"; + signal: "effect,show"; + source: "elm"; + in: 0.1 0.0; + action: STATE_SET "show" "0.0"; + transition: ACCEL 0.4; + target: "bg"; + } + program { + name: "clicked"; + signal: "mouse,clicked,1"; + source: "event"; + action: SIGNAL_EMIT "clicked" ""; + after: "effect_hide"; + } + program { + name: "effect_hide"; + signal: "effect,hide"; + source: "elm"; + action: STATE_SET "default" "0.0"; + transition: DECEL 0.4; + target: "bg"; + after: "hide"; + } + program { + name: "hide"; + action: SIGNAL_EMIT "request,hide" ""; + } + } + } +} diff --git a/data/resource/ticker_animated_icon.edc b/data/resource/ticker_animated_icon.edc new file mode 100755 index 0000000..f78c282 --- /dev/null +++ b/data/resource/ticker_animated_icon.edc @@ -0,0 +1,517 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#define FRAME_TIME 0.3 + +images { + image: "noti_download_01.png" COMP; + image: "noti_download_02.png" COMP; + image: "noti_download_03.png" COMP; + image: "noti_download_04.png" COMP; + image: "noti_download_05.png" COMP; + image: "noti_download_complete.png" COMP; + + image: "noti_upload_01.png" COMP; + image: "noti_upload_02.png" COMP; + image: "noti_upload_03.png" COMP; + image: "noti_upload_04.png" COMP; + image: "noti_upload_05.png" COMP; + image: "noti_upload_complete.png" COMP; + + image: "noti_install_01.png" COMP; + image: "noti_install_02.png" COMP; + image: "noti_install_03.png" COMP; + image: "noti_install_04.png" COMP; + image: "noti_install_05.png" COMP; + image: "noti_install_complete.png" COMP; +} + +collections { +group { + name: "quickpanel/animated_icon_download"; + parts { + part { name: "background"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + min: 47 47; + max: 47 47; + } + } + part{ + name: "obj.image"; + type:IMAGE; + scale:1; + description { + state: "default" 0.0; + fixed: 1 1; + state: "default" 0.0; + min: 47 47; + max: 47 47; + rel1 { + to: "background"; + } + rel2 { + to: "background"; + } + image { + normal:"noti_download_01.png"; + border: 0 0 0 0; + border_scale: 1; + } + color_class: QP_THEME_LIST_ITEM_ICON_COLOR; + visible:1; + } + description { + state: "state.0" 0.0; + inherit: "default" 0.0; + image { + normal:"noti_download_01.png"; + border: 0 0 0 0; + border_scale: 1; + } + } + description { + state: "state.1" 0.0; + inherit: "default" 0.0; + image { + normal:"noti_download_02.png"; + border: 0 0 0 0; + border_scale: 1; + } + } + description { + state: "state.2" 0.0; + inherit: "default" 0.0; + image { + normal:"noti_download_03.png"; + border: 0 0 0 0; + border_scale: 1; + } + } + description { + state: "state.3" 0.0; + inherit: "default" 0.0; + image { + normal:"noti_download_04.png"; + border: 0 0 0 0; + border_scale: 1; + } + } + description { + state: "state.4" 0.0; + inherit: "default" 0.0; + image { + normal:"noti_download_05.png"; + border: 0 0 0 0; + border_scale: 1; + } + } + description { + state: "state.5" 0.0; + inherit: "default" 0.0; + image { + normal:"noti_download_complete.png"; + border: 0 0 0 0; + border_scale: 1; + } + } + } + } + + programs { + program { + name: "init.layout"; + signal: "load"; + source: ""; + in: 0.0 0.0; + action: SIGNAL_EMIT "icon.state.0" "prog"; + } + program{ + name: "icon.state.0"; + signal: "icon.state.0"; + source: "prog"; + in: FRAME_TIME 0.0; + action: STATE_SET "state.0" 0.0; + target: "obj.image"; + after: "icon.state.1"; + } + program{ + name: "icon.state.1"; + signal: "icon.state.1"; + source: "prog"; + in: FRAME_TIME 0.0; + action: STATE_SET "state.1" 0.0; + target: "obj.image"; + after: "icon.state.2"; + } + program{ + name: "icon.state.2"; + signal: "icon.state.2"; + source: "prog"; + in: FRAME_TIME 0.0; + action: STATE_SET "state.2" 0.0; + target: "obj.image"; + after: "icon.state.3"; + } + program{ + name: "icon.state.3"; + signal: "icon.state.3"; + source: "prog"; + in: FRAME_TIME 0.0; + action: STATE_SET "state.3" 0.0; + target: "obj.image"; + after: "icon.state.4"; + } + program{ + name: "icon.state.4"; + signal: "icon.state.4"; + source: "prog"; + in: FRAME_TIME 0.0; + action: STATE_SET "state.4" 0.0; + target: "obj.image"; + after: "icon.state.5"; + } + program{ + name: "icon.state.5"; + signal: "icon.state.5"; + source: "prog"; + in: FRAME_TIME 0.0; + action: STATE_SET "state.5" 0.0; + target: "obj.image"; + after: "icon.state.0"; + } + } +} + +group { + name: "quickpanel/animated_icon_upload"; + parts { + part { name: "background"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + min: 47 47; + max: 47 47; + } + } + part{ + name: "obj.image"; + type:IMAGE; + scale:1; + description { + state: "default" 0.0; + fixed: 1 1; + state: "default" 0.0; + min: 47 47; + max: 47 47; + rel1 { + to: "background"; + } + rel2 { + to: "background"; + } + image { + normal:"noti_upload_01.png"; + border: 0 0 0 0; + border_scale: 1; + } + color_class: QP_THEME_LIST_ITEM_ICON_COLOR; + visible:1; + } + description { + state: "state.0" 0.0; + inherit: "default" 0.0; + image { + normal:"noti_upload_01.png"; + border: 0 0 0 0; + border_scale: 1; + } + } + description { + state: "state.1" 0.0; + inherit: "default" 0.0; + image { + normal:"noti_upload_02.png"; + border: 0 0 0 0; + border_scale: 1; + } + } + description { + state: "state.2" 0.0; + inherit: "default" 0.0; + image { + normal:"noti_upload_03.png"; + border: 0 0 0 0; + border_scale: 1; + } + } + description { + state: "state.3" 0.0; + inherit: "default" 0.0; + image { + normal:"noti_upload_04.png"; + border: 0 0 0 0; + border_scale: 1; + } + } + description { + state: "state.4" 0.0; + inherit: "default" 0.0; + image { + normal:"noti_upload_05.png"; + border: 0 0 0 0; + border_scale: 1; + } + } + description { + state: "state.5" 0.0; + inherit: "default" 0.0; + image { + normal:"noti_upload_complete.png"; + border: 0 0 0 0; + border_scale: 1; + } + } + } + } + + programs { + program { + name: "init.layout"; + signal: "load"; + source: ""; + in: 0.0 0.0; + action: SIGNAL_EMIT "icon.state.0" "prog"; + } + program{ + name: "icon.state.0"; + signal: "icon.state.0"; + source: "prog"; + in: FRAME_TIME 0.0; + action: STATE_SET "state.0" 0.0; + target: "obj.image"; + after: "icon.state.1"; + } + program{ + name: "icon.state.1"; + signal: "icon.state.1"; + source: "prog"; + in: FRAME_TIME 0.0; + action: STATE_SET "state.1" 0.0; + target: "obj.image"; + after: "icon.state.2"; + } + program{ + name: "icon.state.2"; + signal: "icon.state.2"; + source: "prog"; + in: FRAME_TIME 0.0; + action: STATE_SET "state.2" 0.0; + target: "obj.image"; + after: "icon.state.3"; + } + program{ + name: "icon.state.3"; + signal: "icon.state.3"; + source: "prog"; + in: FRAME_TIME 0.0; + action: STATE_SET "state.3" 0.0; + target: "obj.image"; + after: "icon.state.4"; + } + program{ + name: "icon.state.4"; + signal: "icon.state.4"; + source: "prog"; + in: FRAME_TIME 0.0; + action: STATE_SET "state.4" 0.0; + target: "obj.image"; + after: "icon.state.5"; + } + program{ + name: "icon.state.5"; + signal: "icon.state.5"; + source: "prog"; + in: FRAME_TIME 0.0; + action: STATE_SET "state.5" 0.0; + target: "obj.image"; + after: "icon.state.0"; + } + } +} + +group { + name: "quickpanel/animated_icon_install"; + parts { + part { name: "background"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + min: 47 47; + max: 47 47; + } + } + part{ + name: "obj.image"; + type:IMAGE; + scale:1; + description { + state: "default" 0.0; + fixed: 1 1; + state: "default" 0.0; + min: 47 47; + max: 47 47; + rel1 { + to: "background"; + } + rel2 { + to: "background"; + } + image { + normal:"noti_install_01.png"; + border: 0 0 0 0; + border_scale: 1; + } + color_class: QP_THEME_LIST_ITEM_ICON_COLOR; + visible:1; + } + description { + state: "state.0" 0.0; + inherit: "default" 0.0; + image { + normal:"noti_install_01.png"; + border: 0 0 0 0; + border_scale: 1; + } + } + description { + state: "state.1" 0.0; + inherit: "default" 0.0; + image { + normal:"noti_install_02.png"; + border: 0 0 0 0; + border_scale: 1; + } + } + description { + state: "state.2" 0.0; + inherit: "default" 0.0; + image { + normal:"noti_install_03.png"; + border: 0 0 0 0; + border_scale: 1; + } + } + description { + state: "state.3" 0.0; + inherit: "default" 0.0; + image { + normal:"noti_install_04.png"; + border: 0 0 0 0; + border_scale: 1; + } + } + description { + state: "state.4" 0.0; + inherit: "default" 0.0; + image { + normal:"noti_install_05.png"; + border: 0 0 0 0; + border_scale: 1; + } + } + description { + state: "state.5" 0.0; + inherit: "default" 0.0; + image { + normal:"noti_install_complete.png"; + border: 0 0 0 0; + border_scale: 1; + } + } + } + } + + programs { + program { + name: "init.layout"; + signal: "load"; + source: ""; + in: 0.0 0.0; + action: SIGNAL_EMIT "icon.state.0" "prog"; + } + program{ + name: "icon.state.0"; + signal: "icon.state.0"; + source: "prog"; + in: FRAME_TIME 0.0; + action: STATE_SET "state.0" 0.0; + target: "obj.image"; + after: "icon.state.1"; + } + program{ + name: "icon.state.1"; + signal: "icon.state.1"; + source: "prog"; + in: FRAME_TIME 0.0; + action: STATE_SET "state.1" 0.0; + target: "obj.image"; + after: "icon.state.2"; + } + program{ + name: "icon.state.2"; + signal: "icon.state.2"; + source: "prog"; + in: FRAME_TIME 0.0; + action: STATE_SET "state.2" 0.0; + target: "obj.image"; + after: "icon.state.3"; + } + program{ + name: "icon.state.3"; + signal: "icon.state.3"; + source: "prog"; + in: FRAME_TIME 0.0; + action: STATE_SET "state.3" 0.0; + target: "obj.image"; + after: "icon.state.4"; + } + program{ + name: "icon.state.4"; + signal: "icon.state.4"; + source: "prog"; + in: FRAME_TIME 0.0; + action: STATE_SET "state.4" 0.0; + target: "obj.image"; + after: "icon.state.5"; + } + program{ + name: "icon.state.5"; + signal: "icon.state.5"; + source: "prog"; + in: FRAME_TIME 0.0; + action: STATE_SET "state.5" 0.0; + target: "obj.image"; + after: "icon.state.0"; + } + } +} +} diff --git a/data/resource/ticker_default.edc b/data/resource/ticker_default.edc new file mode 100755 index 0000000..331dcab --- /dev/null +++ b/data/resource/ticker_default.edc @@ -0,0 +1,502 @@ +/* + * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +#include "color_classes.edc" + +#define QP_DATE_H 50 +#define QP_HANDLE_H 50 +#define QP_SETTING_H 221 +#define QP_SETTING_SEPERATOR_H 0 + +#define QUICKPANEL_FOCUS_OBJECT(NAME, TO_1, TO_2)\ + part {\ + name: NAME;\ + type: SWALLOW;\ + scale: 1;\ + mouse_events: 1;\ + repeat_events: 1;\ + description {\ + state: "default" 0.0;\ + rel1 { relative: 0.0 0.00; to, TO_1; }\ + rel2 { relative: 1.0 1.00; to, TO_2; }\ + fixed: 1 1;\ + visible: 1;\ + }\ + description {\ + state: "show" 0.0;\ + inherit: "default" 0.0;\ + visible: 1;\ + }\ + description {\ + state: "hide" 0.0;\ + inherit: "default" 0.0;\ + visible: 0;\ + }\ + }\ + +#define QUICKPANEL_FOCUS_OBJECT_WITH_OFFSET(NAME, TO_1, TO_2, OFFSET_X, OFFSET_Y)\ + part {\ + name: NAME;\ + type: SWALLOW;\ + scale: 1;\ + mouse_events: 1;\ + repeat_events: 1;\ + description {\ + state: "default" 0.0;\ + rel1 { relative: 0.0 0.00; to, TO_1; offset: -OFFSET_X -OFFSET_Y;}\ + rel2 { relative: 1.0 1.00; to, TO_2; offset: +OFFSET_X +OFFSET_Y; }\ + fixed: 1 1;\ + visible: 1;\ + }\ + }\ + +images +{ + image: "handler_bg.#.png" COMP; + image: "handler_bg_ef.#.png" COMP; + image: "handler_btn_02.png" COMP; + image: "core_theme_bg_01.png" COMP; +} + +collections { + base_scale: 1.7; + group { + name: "quickpanel/root"; + + script { + public g_is_portrait; + + public init_variables() { + set_int(g_is_portrait, 1); + } + } + + parts { + part { + name: "base"; + type: RECT; + scale: 1; + mouse_events: 1; + description { + state: "default" 0.0; + visible: 1; + } + } + + + part { + name: "background"; + type: IMAGE; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + align: 0.5 0.5; + rel1 { + to: "base"; + } + rel2 { + to: "base"; + } + image { + normal: "core_theme_bg_01.png"; + } + } + } + + part{ + name: "qp.base.rect.datetime"; + type:SPACER; + scale:1; + description { + state: "default" 0.0; + fixed: 0 1; + min: 0 QP_DATE_H; + rel1 { + relative: 0.0 0.0; + to: "background"; + } + rel2 { + relative: 1.0 0.0; + to: "background"; + } + align: 0.0 0.0; + } + } + part{ + name: "qp.base.datetime.swallow"; + type:SWALLOW; + scale: 1; + description { + state: "default" 0.0; + fixed: 0 1; + rel1 { + to: "qp.base.rect.datetime"; + } + rel2 { + to: "qp.base.rect.datetime"; + } + align: 0.0 0.0; + } + } + part{ + name: "qp.root.swallow"; + type:SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { + relative: 0.0 1.0; + to_x: "background"; + to_y: "qp.base.datetime.swallow"; + } + rel2 { + relative: 1.0 0.0; + to_x: "background"; + to_y: "qp.handler.bg"; + } + align: 0.0 0.0; + } + } + part + { + name: "qp.handler.bg"; + type:IMAGE; + scale:1; + description { + state: "default" 0.0; + fixed: 0 1; + min: 0 QP_HANDLE_H; + rel1 { + relative: 0.0 1.0; + to: "background"; + } + rel2 { + relative: 1.0 1.0; + to: "background"; + } + image { + normal:"handler_bg.#.png"; + } + align: 0.0 1.0; + color_class: "W0113"; + } + description { + state: "pressed" 0.0; + inherit: "default"; + color_class: "W0113P"; + } + } + + part + { + name: "qp.handler.effect"; + type:IMAGE; + scale:1; + description { + state: "default" 0.0; + + rel1 { + relative: 0.0 0.0; + to: "qp.handler.bg"; + } + rel2 { + relative: 1.0 1.0; + to: "qp.handler.bg"; + } + image { + normal:"handler_bg_ef.#.png"; + } + align: 0.0 1.0; + color_class: "AO007L2"; + } + } + + part + { + name: "qp.handler.button"; + type:IMAGE; + scale:1; + description { + state: "default" 0.0; + min: 50 50; + max: 50 50; + fixed: 1 1; + rel1 + { + relative: 0.5 0.0; + to: "qp.handler.bg"; + } + rel2 + { + relative: 0.5 1.0; + to: "qp.handler.bg"; + } + image { + normal:"handler_btn_02.png"; + } + + align: 0.5 0.5; + color_class: "AO007L1"; + visible: 1; + } + description { + state: "text.show" 0.0; + inherit: "default"; + visible: 0; + } + description { + state: "text.hide" 0.0; + inherit: "default"; + visible: 1; + } + } + + part + { + name: "qp.handler.text"; + type:TEXT; + scale:1; + description { + state: "default" 0.0; + fixed: 0 1; + min: 0 QP_HANDLE_H; + align: 0.5 0.5; + rel1 { + relative: 0.0 0.0; + to: "qp.handler.bg"; + } + rel2 { + relative: 1.0 1.0; + to: "qp.handler.bg"; + } + + text { + font : "Tizen:style=Regular"; + size : 25; + text_class : "Tizen"; + } + color_class: "AO007L1"; + visible: 1; + } + description + { + state: "text.show" 0.0; + inherit: "default"; + visible: 1; + } + description + { + state: "text.hide" 0.0; + inherit: "default"; + visible: 0; + } + } + } + + programs + { + program + { + name: "init.layout"; + signal: "load"; + source: ""; + in: 0.0 0.0; + script{ + init_variables(); + } + } + program { + name: "text.show"; + signal: "show"; + source: "qp.handler.text"; + action: STATE_SET "text.show" 0.0; + target: "qp.handler.button"; + target: "qp.handler.text"; + } + program { + name: "text.hide"; + signal: "hide"; + source: "qp.handler.text"; + action: STATE_SET "text.hide" 0.0; + target: "qp.handler.button"; + target: "qp.handler.text"; + } + program { + name: "handler.press"; + signal: "mouse,down,1"; + source: "qp.handler.bg"; + action: STATE_SET "pressed" 0.0; + target: "qp.handler.bg"; + } + program { + name: "handler.release"; + signal: "mouse,up,1"; + source: "qp.handler.bg"; + action: STATE_SET "default" 0.0; + target: "qp.handler.bg"; + } + } + } + + group { + name: "quickpanel/base"; + parts { + part { + name: "background"; + type: SPACER; + scale: 1; + mouse_events: 1; + description { + state: "default" 0.0; + } + description { + state: "portrait" 0.0; + inherit: "default" 0.0; + } + description { + state: "landscape" 0.0; + inherit: "default" 0.0; + } + } + part{ + name: "qp.base.rect.setting"; + type:SPACER; + scale:1; + description { + state: "default" 0.0; + fixed: 0 1; + min: 0 QP_SETTING_H; + rel1 { + relative: 0.0 0.0; + to: "background"; + } + rel2 { + relative: 1.0 0.0; + to: "background"; + } + align: 0.0 0.0; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + min: 0 0; + max: 0 0; + } + } + part{ + name: "qp.base.setting.swallow"; + type:SWALLOW; + scale: 1; + description { + state: "default" 0.0; + fixed: 0 1; + rel1 { + to: "qp.base.rect.setting"; + } + rel2 { + to: "qp.base.rect.setting"; + } + align: 0.0 0.0; + } + } + part { + name: "background.touch"; + type: SWALLOW; + scale: 1; + mouse_events:1; + description { + state: "default" 0.0; + fixed: 0 0; + min: 0 QP_SETTING_SEPERATOR_H; + rel1 { + to_y:"qp.base.setting.swallow"; + relative: 0.0 1.0; + } + rel2 { + to_y:"background"; + relative: 1.0 1.0; + } + align: 0.0 0.0; + } + } + part { + name: "qp.base.list.swallow"; + type: SWALLOW; + scale: 1; + repeat_events: 1; + mouse_events:1; + description { + state: "default" 0.0; + fixed: 0 0; + rel1 { + to_y:"qp.base.setting.swallow"; + relative: 0.0 1.0; + } + rel2 { + to_y:"background"; + relative: 1.0 1.0; + } + align: 0.0 0.0; + } + } + } + programs { + program{ + name: "portrait"; + signal: "portrait"; + source: "prog"; + action: STATE_SET "portrait" 0.0; + target: "background"; + } + program{ + name: "landscape"; + signal: "landscape"; + source: "prog"; + action: STATE_SET "landscape" 0.0; + target: "background"; + } + program { + name: "setting.show"; + action: STATE_SET "show" 0.0; + signal: "quickpanel.setting.show"; + source: "quickpanel.prog"; + target: "qp.base.rect.setting"; + target: "qp.base.setting.swallow"; + } + program { + name: "setting.hide"; + action: STATE_SET "hide" 0.0; + signal: "quickpanel.setting.hide"; + source: "quickpanel.prog"; + target: "qp.base.rect.setting"; + target: "qp.base.setting.swallow"; + } + program { + name: "background.touch"; + action: SIGNAL_EMIT "close.quickpanel" ""; + signal: "mouse,down,1"; + source: "background"; + } + } + } +} diff --git a/modules/clock/clock.c b/modules/clock/clock.c old mode 100755 new mode 100644 index f10b0d2..4e3d3b3 --- a/modules/clock/clock.c +++ b/modules/clock/clock.c @@ -1,52 +1,58 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd + * Indicator * - * Licensed under the Flora License, Version 1.1 (the "License"); + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://floralicense.org/license/ + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * */ + #include #include #include -#include -#include +//#include #include #include #include +#include #include "common.h" #include "indicator.h" -#include "indicator_ui.h" +#include "main.h" #include "indicator_gui.h" -#include "indicator_icon_util.h" -#include "indicator_util.h" +#include "icon.h" +#include "util.h" #include "modules.h" +#include "box.h" +#include "log.h" -#define SYSTEM_RESUME "system_wakeup" +#define SYSTEM_RESUME "system_wakeup" -#define TIME_FONT_SIZE_24 34 -#define TIME_FONT_SIZE_12 30 -#define TIME_FONT_SIZE_BATTERY 32 -#define TIME_FONT_COLOR 243, 243, 243, 255 +#define TIME_FONT_SIZE_24 ELM_SCALE_SIZE(22) +#define TIME_FONT_SIZE_12 ELM_SCALE_SIZE(22) +#define AMPM_FONT_SIZE ELM_SCALE_SIZE(21) -#define AMPM_FONT_SIZE 24 -#define AMPM_FONT_COLOR 243, 243, 243, 255 +#define TIME_FONT_COLOR 200, 200, 200, 255 +#define AMPM_FONT_COLOR 200, 200, 200, 255 #define LABEL_STRING "%s" \ - "" + "" +#define LABEL_STRING_FONT "%s" #define BATTERY_TIMER_INTERVAL 3 #define BATTERY_TIMER_INTERVAL_CHARGING 30 -#define CLOCK_STR_LEN 256 +#define CLOCK_STR_LEN 128 enum { INDICATOR_CLOCK_MODE_12H = 0, @@ -54,37 +60,41 @@ enum { INDICATOR_CLOCK_MODE_MAX }; -static int notifd; -static int clock_mode = INDICATOR_CLOCK_MODE_12H; +int clock_mode = INDICATOR_CLOCK_MODE_12H; +int clock_hour = 0; +static const char *colon = ":"; +static const char *ratio = "∶"; + static int apm_length = 0; static int apm_position = 0; -static Ecore_Timer *timer = NULL; -static Ecore_Timer *battery_timer = NULL; -static Ecore_Timer *battery_charging_timer = NULL; +extern Ecore_Timer *clock_timer; + +static UDateTimePatternGenerator *_last_generator = NULL; +static char *_last_locale = NULL; static int battery_charging = 0; -static int battery_charging_first = 0; static int register_clock_module(void *data); static int unregister_clock_module(void); static int language_changed_cb(void *data); static int region_changed_cb(void *data); static int wake_up_cb(void *data); +#ifdef _SUPPORT_SCREEN_READER +static int register_clock_tts(void *data,int win_type); +#endif -#define ICON_PRIORITY INDICATOR_PRIORITY_FIXED6 +#define ICON_PRIORITY INDICATOR_PRIORITY_FIXED8 #define MODULE_NAME "clock" +static void indicator_get_apm_by_region(char* output, void* data); static void indicator_get_time_by_region(char* output, void* data); + static void ICU_set_timezone(const char *timezone); -static void indicator_clock_display_battery_percentage(void *data,int win_type ); -Indicator_Icon_Object sysclock[INDICATOR_WIN_MAX] = { -{ - .win_type = INDICATOR_WIN_PORT, +icon_s sysclock = { .type = INDICATOR_TXT_ICON, .name = MODULE_NAME, .priority = ICON_PRIORITY, .always_top = EINA_FALSE, - .txt_obj = {0,}, .img_obj = {0,}, .obj_exist = EINA_FALSE, .exist_in_view = EINA_FALSE, @@ -93,468 +103,283 @@ Indicator_Icon_Object sysclock[INDICATOR_WIN_MAX] = { .lang_changed = NULL, .region_changed = region_changed_cb, .lang_changed = language_changed_cb, - .wake_up = wake_up_cb -}, + .wake_up = wake_up_cb, +}; + + + +void cal_delete_last_generator(void) { - .win_type = INDICATOR_WIN_LAND, - .type = INDICATOR_TXT_ICON, - .name = MODULE_NAME, - .priority = ICON_PRIORITY, - .always_top = EINA_FALSE, - .txt_obj = {0,}, - .img_obj = {0,}, - .obj_exist = EINA_FALSE, - .exist_in_view = EINA_FALSE, - .init = register_clock_module, - .fini = unregister_clock_module, - .lang_changed = NULL, - .region_changed = region_changed_cb, - .lang_changed = language_changed_cb, - .wake_up = wake_up_cb + if (_last_locale) { + free(_last_locale); + _last_locale = NULL; + } + if (_last_generator) { + udatpg_close(_last_generator); + _last_generator = NULL; + } } -}; -static void set_app_state(void* data) + + +static UDateTimePatternGenerator *__cal_get_pattern_generator(const char *locale, UErrorCode *status) { - int i = 0; + if (!_last_generator || !_last_locale || strcmp(locale, _last_locale)) { + + cal_delete_last_generator(); + + _last_locale = strdup(locale); + + _last_generator = udatpg_open(locale, status); - for (i=0 ; itm_sec, (void *)indicator_clock_changed_cb, - data); + clock_timer = ecore_timer_add(60 - ts->tm_sec, (void *)indicator_clock_changed_cb, data); + if(!clock_timer) { + _E("Fail to add timer !"); + } + + indicator_get_apm_by_region(icu_apm,data); + indicator_get_time_by_region(time_buf,data); - indicator_get_time_by_region(icu_apm,data); if (clock_mode == INDICATOR_CLOCK_MODE_12H) { char bf1[32] = { 0, }; int hour; + static int pre_hour = 0; + const char *region = NULL; - if(apm_length>0 && apm_length<=4) - { - snprintf(ampm_buf, sizeof(ampm_buf),LABEL_STRING, AMPM_FONT_SIZE,icu_apm); - } - else - { - if (ts->tm_hour >= 0 && ts->tm_hour < 12) - snprintf(ampm_buf, sizeof(ampm_buf), - LABEL_STRING, AMPM_FONT_SIZE, - "AM"); - else - snprintf(ampm_buf, sizeof(ampm_buf), - LABEL_STRING, AMPM_FONT_SIZE, - "PM"); - } - - strftime(bf1, sizeof(bf1), "%l", ts); - hour = atoi(bf1); - strftime(bf1, sizeof(bf1), ":%M", ts); - - snprintf(time_str, sizeof(time_str), "%d%s", hour, bf1); - font_size = TIME_FONT_SIZE_12; - indicator_signal_emit(data,"indicator.clock.ampm","indicator.prog"); - } - else{ - font_size = TIME_FONT_SIZE_24; - strftime(time_str, sizeof(time_str), "%H:%M", ts); - indicator_signal_emit(data,"indicator.clock.default","indicator.prog"); - } - - snprintf(time_buf, sizeof(time_buf), LABEL_STRING, font_size, time_str); - - if(apm_position == 0) - len = snprintf(buf, sizeof(buf), "%s%s", ampm_buf, time_buf); - else - len = snprintf(buf, sizeof(buf), "%s%s", time_buf, ampm_buf); - - if (len < 0) { - ERR("Unexpected ERROR!"); - return; - } - - INFO("[CLOCK MODULE] Timer Status : %d Time: %s", timer, buf); - - indicator_part_text_emit(data,"elm.text.clock", buf); - - return; -} - -static void indicator_clock_format_changed_cb(keynode_t *node, void *data) -{ - retif(data == NULL, , "Invalid parameter!"); - - int r = -1; - - bool is_24hour_enabled = false; - - INFO("[Enter] indicator_clock_format_changed_cb"); - - r = runtime_info_get_value_bool( - RUNTIME_INFO_KEY_24HOUR_CLOCK_FORMAT_ENABLED, &is_24hour_enabled); - - if( r==RUNTIME_INFO_ERROR_NONE&&is_24hour_enabled==true) - { - clock_mode = INDICATOR_CLOCK_MODE_24H; - } - else - { - clock_mode = INDICATOR_CLOCK_MODE_12H; - } + int bRegioncheck = 0; + char *lang1 = "it_IT"; - char *timezone = vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_ID); - ICU_set_timezone(timezone); - indicator_clock_changed_cb(data); - free(timezone); -} + region = vconf_get_str(VCONFKEY_REGIONFORMAT); + ret_if(!region); -static void indicator_clock_pm_state_change_cb(keynode_t *node, void *data) -{ - int status = 0; - - retif(data == NULL, , "Invalid parameter!"); - - vconf_get_int(VCONFKEY_PM_STATE, &status); - - switch(status) - { - case VCONFKEY_PM_STATE_LCDOFF: - if (timer != NULL) { - ecore_timer_del(timer); - timer = NULL; - } + if (strncmp(region,lang1,strlen(lang1)) == 0) bRegioncheck = 1; - if (battery_timer != NULL) { - ecore_timer_del(battery_timer); - battery_timer = NULL; + if (apm_length>=4 || bRegioncheck==1) { + if (ts->tm_hour >= 0 && ts->tm_hour < 12) { + snprintf(ampm_buf, sizeof(ampm_buf),"%s","AM"); + } else { + snprintf(ampm_buf, sizeof(ampm_buf),"%s","PM"); } + } else { + snprintf(ampm_buf, sizeof(ampm_buf),"%s",icu_apm); + } - if (battery_charging_timer != NULL) { - ecore_timer_del(battery_charging_timer); - battery_charging_timer = NULL; - } - break; - default: - break; - } + strftime(bf1, sizeof(bf1), "%l", ts); + hour = atoi(bf1); + strftime(bf1, sizeof(bf1), ":%M", ts); -} + font_size = TIME_FONT_SIZE_12; + clock_hour = hour; -static void indicator_clock_battery_display_cb(void *data) -{ - INFO("indicator_clock_battery_display_cb"); + if ((pre_hour<10 && hour>=10)||(pre_hour>=10 && hour<10)) { + box_update_display(&(ad->win)); + } - if (battery_timer != NULL) { - ecore_timer_del(battery_timer); - battery_timer = NULL; + pre_hour = hour; + } else { + font_size = TIME_FONT_SIZE_24; } - indicator_clock_changed_cb(data); -} - -static void indicator_clock_battery_disp_changed_cb(keynode_t *node, void *data) -{ - int status = 0; - - vconf_get_int(VCONFKEY_BATTERY_DISP_STATE,&status); + snprintf(time_str, sizeof(time_str), LABEL_STRING, font_size, time_buf); + snprintf(ampm_str, sizeof(ampm_str), LABEL_STRING, ampm_size, ampm_buf); - DBG("indicator_clock_battery_disp_changed_cb(%d)",status); + if (clock_mode == INDICATOR_CLOCK_MODE_12H) { + if (apm_position == 0) { + len = snprintf(buf, sizeof(buf), "%s %s", ampm_str, time_str); + } else { + len = snprintf(buf, sizeof(buf), "%s %s", time_str, ampm_str); + } + } else { + len = snprintf(buf, sizeof(buf), "%s", time_str); + } - if(battery_charging_timer!=NULL) - { - ERR("30s timer alive"); + snprintf(result, sizeof(result), LABEL_STRING_FONT, buf); + if (len < 0) { + _E("Unexpected ERROR!"); return; } - if (battery_timer != NULL) { - ecore_timer_del(battery_timer); - battery_timer = NULL; - } - battery_timer = ecore_timer_add(BATTERY_TIMER_INTERVAL, (void *)indicator_clock_battery_display_cb,data); + _D("[CLOCK MODULE] Timer Status : %d Time: %s", clock_timer, result); + util_part_text_emit(data,"elm.text.clock", result); - if(status==2) - { - indicator_clock_display_battery_percentage(data,0); - indicator_clock_display_battery_percentage(data,1); - } - else - { - indicator_clock_display_battery_percentage(data,status); - } + return; } -static void indicator_clock_battery_charging_stop_cb(void *data) -{ - - INFO("indicator_clock_battery_charging_stop_cb"); - if (battery_charging_timer != NULL) { - ecore_timer_del(battery_charging_timer); - battery_charging_timer = NULL; - } - - indicator_clock_changed_cb(data); -} -static void indicator_clock_charging_now_cb(keynode_t *node, void *data) +static void _clock_format_changed_cb(keynode_t *node, void *data) { - int status = 0; - int lock_state = 0; - - retif(data == NULL, , "Invalid parameter!"); + struct appdata *ad = NULL; + int mode_24 = 0; - vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &lock_state); - - vconf_get_int(VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW, &status); - - battery_charging = status; + ret_if(!data); - DBG("indicator_clock_charging_now_cb(%d)",status); + ad = (struct appdata *)data; - if(lock_state==VCONFKEY_IDLE_LOCK) + if (vconf_get_int(VCONFKEY_REGIONFORMAT_TIME1224,&mode_24) < 0) { - DBG("indicator_clock_charging_now_cb:lock_state(%d)",lock_state); + ERR("Error getting VCONFKEY_REGIONFORMAT_TIME1224 value"); return; } - if(status==1) + /* Check Time format. If timeformat have invalid value, Set to 12H */ + if( mode_24==VCONFKEY_TIME_FORMAT_24) { - if(battery_charging_first == 0) + if(clock_mode == INDICATOR_CLOCK_MODE_12H) { - battery_charging_first = 1; - if (battery_charging_timer != NULL) - { - ecore_timer_del(battery_charging_timer); - battery_charging_timer = NULL; - } - battery_charging_timer = ecore_timer_add(BATTERY_TIMER_INTERVAL_CHARGING, (void *)indicator_clock_battery_charging_stop_cb,data); - - indicator_clock_display_battery_percentage(data,0); + clock_mode = INDICATOR_CLOCK_MODE_24H; + box_update_display(&(ad->win)); } } else { - battery_charging_first = 0; - indicator_clock_battery_charging_stop_cb(data); + if(clock_mode==INDICATOR_CLOCK_MODE_24H) + { + clock_mode = INDICATOR_CLOCK_MODE_12H; + box_update_display(&(ad->win)); + } } + char *timezone = util_get_timezone_str(); + ICU_set_timezone(timezone); + indicator_clock_changed_cb(data); + if(timezone!=NULL) + free(timezone); } -static void indicator_clock_battery_capacity_cb(keynode_t *node, void *data) -{ - retif(data == NULL, , "Invalid parameter!"); - - if(battery_charging_timer!=NULL||battery_timer!=NULL) - { - DBG("indicator_clock_battery_capacity_cb:battery_charging(%d)",battery_charging); - indicator_clock_display_battery_percentage(data,0); - } -} -static void indicator_clock_usb_cb(keynode_t *node, void *data) +static void indicator_clock_charging_now_cb(keynode_t *node, void *data) { int status = 0; retif(data == NULL, , "Invalid parameter!"); - vconf_get_int(VCONFKEY_SYSMAN_USB_STATUS, &status); - DBG("indicator_clock_usb_cb(%d)",status); + vconf_get_int(VCONFKEY_SYSMAN_CHARGER_STATUS, &status); - if(status==VCONFKEY_SYSMAN_USB_DISCONNECTED) - { - if (battery_charging_timer != NULL) - { - ecore_timer_del(battery_charging_timer); - battery_charging_timer = NULL; - } - indicator_clock_changed_cb(data); - } + battery_charging = status; } -static void indicator_clock_lock_state_cb(keynode_t *node, void *data) -{ - int status = 0; - - retif(data == NULL, , "Invalid parameter!"); - - vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &status); - - DBG("indicator_clock_lock_state_cb(%d)",status); - if(status==VCONFKEY_IDLE_UNLOCK && battery_charging==1) - { - if (battery_charging_timer != NULL) - { - ecore_timer_del(battery_charging_timer); - battery_charging_timer = NULL; - } - battery_charging_timer = ecore_timer_add(BATTERY_TIMER_INTERVAL_CHARGING, (void *)indicator_clock_battery_charging_stop_cb,data); - - indicator_clock_display_battery_percentage(data,0); - } -} -static void indicator_clock_battery_precentage_setting_cb(keynode_t *node, void *data) +static int language_changed_cb(void *data) { - int ret = 0; - int status = 0; + const char *pa_lang = vconf_get_str(VCONFKEY_LANGSET); + DBG("language_changed_cb %s",pa_lang); + indicator_clock_changed_cb(data); + return OK; +} - retif(data == NULL, , "Invalid parameter!"); - ret = vconf_get_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, &status); - if (ret != OK) - { - ERR("Fail to get [%s: %d]",VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, ret); - return; - } - if(status==0) - { - if (battery_charging_timer != NULL) { - ecore_timer_del(battery_charging_timer); - battery_charging_timer = NULL; - } - if (battery_timer != NULL) { - ecore_timer_del(battery_timer); - battery_timer = NULL; - } - indicator_clock_changed_cb(data); - } -} -static void indicator_clock_display_battery_percentage(void *data,int win_type ) +static int region_changed_cb(void *data) { - int ret = FAIL; - int status = 0; - int battery_capa = 0; - char buf[256] = {0,}; - char temp[256] = {0,}; - struct appdata *ad = (struct appdata *)data; + _clock_format_changed_cb(NULL, data); + return OK; +} - ret = vconf_get_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, &status); - if (ret != OK) - ERR("Fail to get [%s: %d]", - VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, ret); - if(status) - { - ret = vconf_get_int(VCONFKEY_SYSMAN_BATTERY_CAPACITY, &battery_capa); - if (ret != OK) - { - ERR("Fail to get [VCONFKEY_SYSMAN_BATTERY_CAPACITY:%d]", ret); - return; - } - if (battery_capa < 0) - { - INFO("Invalid Battery Capacity: %d", battery_capa); - return; - } - INFO("Battery Capacity: %d", battery_capa); +static int wake_up_cb(void *data) +{ + indicator_clock_changed_cb(data); - if (battery_capa > 100) - battery_capa = 100; + return OK; +} - snprintf(temp, sizeof(temp), "%d%%",battery_capa); - snprintf(buf, sizeof(buf), LABEL_STRING, TIME_FONT_SIZE_BATTERY, temp); - INFO("indicator_clock_display_battery_percentage %s", buf); +/*static void _time_changed(system_settings_key_e key, void *data) +{ + DBG("_time_changed"); + _clock_format_changed_cb(NULL,data); +}*/ - indicator_part_text_emit_by_win(&(ad->win[win_type]),"elm.text.clock", buf); - } +static void regionformat_changed(keynode_t *node, void *data) +{ + DBG("regionformat_changed"); + _clock_format_changed_cb(NULL,data); } -static int language_changed_cb(void *data) -{ - DBG("language_changed_cb"); - indicator_clock_changed_cb(data); - return OK; -} -static int region_changed_cb(void *data) +static void timezone_int_changed(keynode_t *node, void *data) { - DBG("region_changed_cb"); - indicator_clock_format_changed_cb(NULL, data); - return OK; + DBG("timezone_int_changed"); + _clock_format_changed_cb(NULL,data); } -static int wake_up_cb(void *data) -{ - int status = 0; - int lock_type = 0; - INFO("CLOCK wake_up_cb"); - - retif(data == NULL, FAIL, "Invalid parameter!"); - vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &lock_type); - - vconf_get_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, &status); - - DBG("wake_up_cb(%d,%d)",lock_type,status); +static void timezone_id_changed(keynode_t *node, void *data) +{ + char *szTimezone = NULL; + szTimezone = vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_ID); - if(status == 1) - { - if(lock_type == VCONFKEY_IDLE_UNLOCK && battery_charging==1) - { - indicator_clock_display_battery_percentage(data,0); - return OK; - } - } + DBG("timezone_id_changed %s",szTimezone); + _clock_format_changed_cb(NULL,data); +} - indicator_clock_changed_cb(data); - return OK; -} static int register_clock_module(void *data) { @@ -564,162 +389,193 @@ static int register_clock_module(void *data) set_app_state(data); - ret = vconf_notify_key_changed(VCONFKEY_SYSTEM_TIME_CHANGED, - indicator_clock_format_changed_cb, data); - if (ret != OK) { - ERR("Fail: register VCONFKEY_SYSTEM_TIME_CHANGED"); - r = r | ret; - } - - ret = vconf_notify_key_changed(VCONFKEY_REGIONFORMAT_TIME1224, - indicator_clock_format_changed_cb, data); - if (ret != OK) { - ERR("Fail: register VCONFKEY_REGIONFORMAT_TIME1224"); - r = r | ret; - } - - ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_TIMEZONE_INT, - indicator_clock_format_changed_cb, data); - if (ret != OK) { - ERR("Fail: register VCONFKEY_SETAPPL_TIMEZONE_INT"); - r = r | ret; - } - - ret = vconf_notify_key_changed(VCONFKEY_PM_STATE, indicator_clock_pm_state_change_cb, (void *)data); - - if (ret != OK) { - ERR("Fail: register VCONFKEY_PM_STATE"); - r = r | ret; - } - - ret = vconf_notify_key_changed(VCONFKEY_BATTERY_DISP_STATE, - indicator_clock_battery_disp_changed_cb, data); + /*ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_TIME_CHANGED, _time_changed, data); if (ret != OK) { - ERR("Fail: register VCONFKEY_SETAPPL_TIMEZONE_INT"); r = r | ret; - } + }*/ - ret = vconf_notify_key_changed(VCONFKEY_SYSMAN_BATTERY_CAPACITY, - indicator_clock_battery_capacity_cb, data); + ret = vconf_notify_key_changed(VCONFKEY_REGIONFORMAT_TIME1224, regionformat_changed, data); if (ret != OK) { - ERR("Failed to register callback!"); r = r | ret; } - ret = vconf_notify_key_changed(VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW, - indicator_clock_charging_now_cb, data); + ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_TIMEZONE_INT, timezone_int_changed, data); if (ret != OK) { - ERR("Failed to register callback!"); r = r | ret; } - ret = vconf_notify_key_changed(VCONFKEY_SYSMAN_USB_STATUS, - indicator_clock_usb_cb, data); + ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_TIMEZONE_ID, timezone_id_changed, data); if (ret != OK) { - ERR("Failed to register callback!"); r = r | ret; } - - ret = vconf_notify_key_changed(VCONFKEY_IDLE_LOCK_STATE, - indicator_clock_lock_state_cb, data); + ret = vconf_notify_key_changed(VCONFKEY_REGIONFORMAT, regionformat_changed, data); if (ret != OK) { - ERR("Failed to register callback!"); r = r | ret; } - - ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, - indicator_clock_battery_precentage_setting_cb, data); - if (ret != OK) { - ERR("Failed to register callback!"); - r = r | ret; - } - - indicator_clock_format_changed_cb(NULL, data); + _clock_format_changed_cb(NULL, data); + indicator_clock_charging_now_cb(NULL,data); return r; } + + static int unregister_clock_module(void) { int ret; - ret = vconf_ignore_key_changed(VCONFKEY_SYSTEM_TIME_CHANGED, - indicator_clock_format_changed_cb); - if (ret != OK) - ERR("Fail: unregister VCONFKEY_SYSTEM_TIME_CHANGED"); + //ret = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_TIME_CHANGED); + ret = ret | vconf_ignore_key_changed(VCONFKEY_REGIONFORMAT_TIME1224, regionformat_changed); + ret = ret | vconf_ignore_key_changed(VCONFKEY_SETAPPL_TIMEZONE_INT, timezone_int_changed); + ret = ret | vconf_ignore_key_changed(VCONFKEY_SETAPPL_TIMEZONE_ID, timezone_id_changed); + ret = ret | vconf_ignore_key_changed(VCONFKEY_REGIONFORMAT, regionformat_changed); - ret = vconf_ignore_key_changed(VCONFKEY_REGIONFORMAT_TIME1224, - indicator_clock_format_changed_cb); - if (ret != OK) - ERR("Fail: unregister VCONFKEY_REGIONFORMAT_TIME1224"); + if (clock_timer != NULL) { + ecore_timer_del(clock_timer); + clock_timer = NULL; + } - ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_TIMEZONE_INT, - indicator_clock_format_changed_cb); - if (ret != OK) - ERR("Fail: unregister VCONFKEY_SETAPPL_TIMEZONE_INT"); + cal_delete_last_generator(); - ret = vconf_ignore_key_changed(VCONFKEY_PM_STATE, - indicator_clock_pm_state_change_cb); - if (ret != OK) - ERR("Fail: unregister VCONFKEY_PM_STATE"); + return ret; +} - ret = vconf_ignore_key_changed(VCONFKEY_BATTERY_DISP_STATE, - indicator_clock_battery_disp_changed_cb); - if (ret != OK) - ERR("Fail: unregister VCONFKEY_BATTERY_DISP_STATE"); - ret = vconf_ignore_key_changed(VCONFKEY_SYSMAN_BATTERY_CAPACITY, - indicator_clock_battery_capacity_cb); - if (ret != OK) - ERR("Fail: unregister VCONFKEY_SYSMAN_BATTERY_CAPACITY"); - ret = vconf_ignore_key_changed(VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW, - indicator_clock_charging_now_cb); - if (ret != OK) - ERR("Fail: unregister VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW"); +static inline char *_extend_heap(char *buffer, int *sz, int incsz) +{ + char *tmp; - ret = vconf_ignore_key_changed(VCONFKEY_SYSMAN_USB_STATUS, - indicator_clock_usb_cb); - if (ret != OK) - ERR("Fail: unregister VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW"); + *sz += incsz; + tmp = realloc(buffer, *sz); + if (!tmp) { + ERR("Heap"); + return NULL; + } + return tmp; +} - ret = vconf_ignore_key_changed(VCONFKEY_IDLE_LOCK_STATE, - indicator_clock_lock_state_cb); - if (ret != OK) - ERR("Fail: unregister VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW"); - ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, - indicator_clock_battery_precentage_setting_cb); - if (ret != OK) - ERR("Fail: unregister VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW"); - if (timer != NULL) { - ecore_timer_del(timer); - timer = NULL; - } +static char *_string_replacer(const char *src, const char *pattern, const char *replace) +{ + const char *ptr; + char *tmp = NULL; + char *ret = NULL; + int idx = 0; + int out_idx = 0; + int out_sz = 0; + enum { + STATE_START, + STATE_FIND, + STATE_CHECK, + STATE_END, + } state; + + if (!src || !pattern) + return NULL; - if (battery_timer != NULL) { - ecore_timer_del(battery_timer); - battery_timer = NULL; + out_sz = strlen(src); + ret = strdup(src); + if (!ret) { + ERR("Heap"); + return NULL; } - if (battery_charging_timer != NULL) { - ecore_timer_del(battery_charging_timer); - battery_charging_timer = NULL; + out_idx = 0; + for (state = STATE_START, ptr = src; state != STATE_END; ptr++) { + switch (state) { + case STATE_START: + if (*ptr == '\0') { + state = STATE_END; + } else if (!isblank(*ptr)) { + state = STATE_FIND; + ptr--; + } + break; + case STATE_FIND: + if (*ptr == '\0') { + state = STATE_END; + } else if (*ptr == *pattern) { + state = STATE_CHECK; + ptr--; + idx = 0; + } else { + ret[out_idx] = *ptr; + out_idx++; + if (out_idx == out_sz) { + tmp = _extend_heap(ret, &out_sz, strlen(replace) + 1); + if (!tmp) { + free(ret); + return NULL; + } + ret = tmp; + } + } + break; + case STATE_CHECK: + if (!pattern[idx]) { + /*! + * If there is no space for copying the replacement, + * Extend size of the return buffer. + */ + if (out_sz - out_idx < strlen(replace) + 1) { + tmp = _extend_heap(ret, &out_sz, strlen(replace) + 1); + if (!tmp) { + free(ret); + return NULL; + } + ret = tmp; + } + + strcpy(ret + out_idx, replace); + out_idx += strlen(replace); + + state = STATE_FIND; + ptr--; + } else if (*ptr != pattern[idx]) { + ptr -= idx; + + /* Copy the first matched character */ + ret[out_idx] = *ptr; + out_idx++; + if (out_idx == out_sz) { + tmp = _extend_heap(ret, &out_sz, strlen(replace) + 1); + if (!tmp) { + free(ret); + return NULL; + } + + ret = tmp; + } + + state = STATE_FIND; + } else { + idx++; + } + break; + default: + break; + } } - return OK; + ret[out_idx] = '\0'; + return ret; } -void indicator_get_time_by_region(char* output,void *data) + + +void indicator_get_apm_by_region(char* output,void *data) { retif(data == NULL, , "Data parameter is NULL"); retif(output == NULL, , "output parameter is NULL"); UChar customSkeleton[CLOCK_STR_LEN] = { 0, }; + UChar u_timezone[64] = {0,}; + UErrorCode status = U_ZERO_ERROR; UDateFormat *formatter = NULL; @@ -733,14 +589,31 @@ void indicator_get_time_by_region(char* output,void *data) char *time_skeleton = "hhmm"; + char* timezone_id = NULL; + timezone_id = util_get_timezone_str(); + char *locale = vconf_get_str(VCONFKEY_REGIONFORMAT); - if (locale == NULL) { - DBG("[Error] get value of VCONFKEY_REGIONFORMAT fail."); + if(locale == NULL) + { + ERR("[Error] get value of fail."); + free(timezone_id); + return; + } + + /* Remove ".UTF-8" in locale */ + char locale_tmp[32] = {0,}; + strncpy(locale_tmp, locale, sizeof(locale_tmp)-1); + char *p = util_safe_str(locale_tmp, ".UTF-8"); + if (p) { + *p = 0; } u_uastrncpy(customSkeleton, time_skeleton, strlen(time_skeleton)); - pattern_generator = udatpg_open(locale, &status); + pattern_generator = __cal_get_pattern_generator (locale_tmp, &status); + if (pattern_generator == NULL) { + return ; + } int32_t bestPatternCapacity = (int32_t) (sizeof(bestPattern) / sizeof((bestPattern)[0])); (void)udatpg_getBestPattern(pattern_generator, customSkeleton, @@ -750,6 +623,8 @@ void indicator_get_time_by_region(char* output,void *data) u_austrcpy(bestPatternString, bestPattern); u_uastrcpy(bestPattern,"a"); + DBG("TimeZone is %s", timezone_id); + if(bestPatternString[0] == 'a') { apm_position = 0; @@ -760,17 +635,25 @@ void indicator_get_time_by_region(char* output,void *data) } UDate date = ucal_getNow(); - formatter = udat_open(UDAT_IGNORE, UDAT_IGNORE, locale, NULL, -1, bestPattern, -1, &status); + if(timezone_id) + { + u_uastrncpy(u_timezone, timezone_id, sizeof(u_timezone)); + formatter = udat_open(UDAT_IGNORE, UDAT_IGNORE, locale_tmp, u_timezone, -1, bestPattern, -1, &status); + } + else + { + formatter = udat_open(UDAT_IGNORE, UDAT_IGNORE, locale_tmp, NULL, -1, bestPattern, -1, &status); + } + if (formatter == NULL) { + return ; + } + int32_t formattedCapacity = (int32_t) (sizeof(formatted) / sizeof((formatted)[0])); (void)udat_format(formatter, date, formatted, formattedCapacity, NULL, &status); u_austrcpy(formattedString, formatted); - DBG("DATE & TIME is %s %s %d %s", locale, formattedString, u_strlen(formatted), bestPatternString); - apm_length = u_strlen(formatted); - udatpg_close(pattern_generator); - udat_close(formatter); if(strlen(formattedString)tm_hour >= 0 && ts->tm_hour < 12) + strncpy(ampm_buf, _("IDS_IDLE_OPT_AM_ABB"),sizeof(ampm_buf)-1); + else + strncpy(ampm_buf, _("IDS_IDLE_OPT_PM_ABB"),sizeof(ampm_buf)-1); + + strftime(bf1, sizeof(bf1), "%l", ts); + hour = atoi(bf1); + strftime(bf1, sizeof(bf1), "%M", ts); + minute = atoi(bf1); + } + else{ + char bf1[32] = { 0, }; + + strftime(bf1, sizeof(bf1), "%H", ts); + hour = atoi(bf1); + strftime(bf1, sizeof(bf1), "%M", ts); + minute = atoi(bf1); + } + + if(hour ==1) + { + strncpy(strHour, _("IDS_COM_BODY_1_HOUR"),sizeof(strHour)); + } + else + { + snprintf(strHour, sizeof(strHour), _("IDS_COM_POP_PD_HOURS"),hour); + } + + if(minute ==1) + { + strncpy(strMin, _("IDS_COM_BODY_1_MINUTE"),sizeof(strMin)); + } + else + { + snprintf(strMin, sizeof(strMin), _("IDS_COM_BODY_PD_MINUTES"),minute); + } + + if(clock_mode == INDICATOR_CLOCK_MODE_12H) + snprintf(time_str, sizeof(time_str), "%s, %s, %s", strHour, strMin,ampm_buf); + else + snprintf(time_str, sizeof(time_str), "%s, %s", strHour, strMin); + + + ret = vconf_get_int(VCONFKEY_SYSMAN_BATTERY_CAPACITY, &battery_capa); + if (ret != OK) + { + return NULL; + } + if (battery_capa < 0) + { + return NULL; + } + + if (battery_capa > 100) + battery_capa = 100; + snprintf(buf1, sizeof(buf1), _("IDS_IDLE_BODY_PD_PERCENT_OF_BATTERY_POWER_REMAINING"), battery_capa); + + snprintf(buf, sizeof(buf), "%s, %s, %s", time_str, buf1, _("IDS_IDLE_BODY_STATUS_BAR_ITEM")); + + DBG("buf: %s", buf); + tmp = strdup(buf); + if (!tmp) return NULL; + return tmp; +} + + + +static int register_clock_tts(void *data,int win_type) +{ + int r = 0, ret = -1; + + retif(data == NULL, FAIL, "Invalid parameter!"); + + Evas_Object *to = NULL; + Evas_Object *ao = NULL; + struct appdata *ad = data; + + to = (Evas_Object *) edje_object_part_object_get(elm_layout_edje_get(ad->win[win_type].layout), "elm.rect.clock.access"); + ao = util_access_object_register(to, ad->win[win_type].layout); + util_access_object_info_cb_set(ao,ELM_ACCESS_INFO,_access_info_cb,data); + return 0; +} +#endif + diff --git a/modules/connection/connection.c b/modules/connection/connection.c old mode 100755 new mode 100644 index 351264c..8591a04 --- a/modules/connection/connection.c +++ b/modules/connection/connection.c @@ -1,68 +1,70 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd + * Indicator * - * Licensed under the Flora License, Version 1.1 (the "License"); + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://floralicense.org/license/ + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * */ + #include #include +#include +#include +#include +#include +#include #include +#include + #include "common.h" #include "indicator.h" -#include "indicator_icon_util.h" +#include "icon.h" #include "modules.h" -#include "indicator_ui.h" +#include "main.h" +#include "util.h" +#include "box.h" +#include "log.h" +#include "network/rssi.h" -#define ICON_PRIORITY INDICATOR_PRIORITY_FIXED2 +#define ICON_PRIORITY INDICATOR_PRIORITY_FIXED5 #define MODULE_NAME "connection" #define TIMER_INTERVAL 0.3 +#define TAPI_HANDLE_MAX 2 static int register_conn_module(void *data); static int unregister_conn_module(void); static int wake_up_cb(void *data); +static int transfer_state = -1; +int isBTIconShowing = 0; +extern TapiHandle *tapi_handle[TAPI_HANDLE_MAX+1]; +static int updated_while_lcd_off = 0; +static int prevIndex = -1; -Indicator_Icon_Object conn[INDICATOR_WIN_MAX] = { -{ - .win_type = INDICATOR_WIN_PORT, - .type = INDICATOR_IMG_ICON, - .name = MODULE_NAME, - .priority = ICON_PRIORITY, - .always_top = EINA_FALSE, - .exist_in_view = EINA_FALSE, - .area = INDICATOR_ICON_AREA_FIXED, - .txt_obj = {0,}, - .img_obj = {0,}, - .obj_exist = EINA_FALSE, - .init = register_conn_module, - .fini = unregister_conn_module, - .wake_up = wake_up_cb -}, -{ - .win_type = INDICATOR_WIN_LAND, +icon_s conn = { .type = INDICATOR_IMG_ICON, .name = MODULE_NAME, .priority = ICON_PRIORITY, .always_top = EINA_FALSE, .exist_in_view = EINA_FALSE, .area = INDICATOR_ICON_AREA_FIXED, - .txt_obj = {0,}, .img_obj = {0,}, .obj_exist = EINA_FALSE, .init = register_conn_module, .fini = unregister_conn_module, .wake_up = wake_up_cb -} }; enum { @@ -70,74 +72,287 @@ enum { LEVEL_2G = LEVEL_MIN, LEVEL_EDGE, LEVEL_3G, - LEVEL_HS, + LEVEL_H, + LEVEL_H_PLUS, LEVEL_3G_PLUS, - LEVEL_CDMA, - LEVEL_GPRS, - LEVEL_EVDO, - LEVEL_CONN, - LEVEL_CONN03, - LEVEL_CONN_1X, LEVEL_LTE, + LEVEL_4G, + LEVEL_BT_TETHERING, LEVEL_MAX }; static const char *icon_path[LEVEL_MAX] = { - [LEVEL_2G] = "Connection/B03_connection_GSM.png", - [LEVEL_EDGE] = "Connection/B03_connection02.png", + [LEVEL_2G] = "Connection/B03_connection_G.png", + [LEVEL_EDGE] = "Connection/B03_connection_E.png", [LEVEL_3G] = "Connection/B03_connection_3G.png", - [LEVEL_HS] = "Connection/B03_connection_Highspeed.png", + [LEVEL_H] = "Connection/B03_connection_H.png", + [LEVEL_H_PLUS] = "Connection/B03_connection_H+.png", [LEVEL_3G_PLUS] = "Connection/B03_connection_3G+.png", - [LEVEL_CDMA] = "Connection/B03_connection_CDMA.png", - [LEVEL_GPRS] = "Connection/B03_connection_GPRS.png", - [LEVEL_EVDO] = "Connection/B03_connection_EVDO.png", - [LEVEL_CONN] = "Connection/B03_connection.png", - [LEVEL_CONN03] = "Connection/B03_connection03.png", - [LEVEL_CONN_1X] = "Connection/B03_connection_1x.png", [LEVEL_LTE] = "Connection/B03_connection_LTE.png", + [LEVEL_4G] = "Connection/B03_connection_4G.png", + [LEVEL_BT_TETHERING] = "Bluetooth, NFC, GPS/B03_BT_tethering_network.png" }; -static Eina_Bool dnet_transferring = EINA_FALSE; -static int updated_while_lcd_off = 0; static void set_app_state(void* data) { - int i = 0; + conn.ad = data; +} + + - for (i=0 ; itel_info[index].prefered_data; + + if(default_subscription == TAPI_NETWORK_DEFAULT_DATA_SUBS_UNKNOWN) { - indicator_util_icon_hide(&conn[i]); + hide_image_icon(); + } + else if(default_subscription == TAPI_NETWORK_DEFAULT_DATA_SUBS_SIM1) + { + int ret = 0; + ret = vconf_get_int(VCONFKEY_DNET_STATE, &val); + if (ret == OK) { + if (val == VCONFKEY_DNET_OFF) + { + DBG("CONNECTION DNET Status: %d", val); + hide_image_icon(); + return; + } + } + + val = ad->tel_info[0].network_service_type; + ps_type = ad->tel_info[0].network_ps_type; + + DBG("TAPI_NETWORK_DEFAULT_DATA_SUBS_SIM1 %d",val); + DBG("TAPI_NETWORK_DEFAULT_DATA_SUBS_SIM1 %d",ps_type); + _show_proper_icon(val,ps_type, user_data); + } + else + { + int ret = 0; +// ret = vconf_get_int(VCONFKEY_DNET_STATE2, &val); + if (ret == OK) { + if (val == VCONFKEY_DNET_OFF) + { + DBG("CONNECTION DNET Status: %d", val); + hide_image_icon(); + return; + } + } + + val = ad->tel_info[1].network_service_type; + ps_type = ad->tel_info[1].network_ps_type; + + DBG("TAPI_NETWORK_DEFAULT_DATA_SUBS_SIM2 %d",val); + DBG("TAPI_NETWORK_DEFAULT_DATA_SUBS_SIM2 %d",ps_type); + _show_proper_icon(val,ps_type, user_data); } } + static void indicator_conn_change_cb(keynode_t *node, void *data) { + struct appdata* ad = NULL; int svc_type = VCONFKEY_TELEPHONY_SVCTYPE_NONE; int status = 0; int ret = 0; int ps_type = VCONFKEY_TELEPHONY_PSTYPE_NONE; - if(indicator_util_get_update_flag()==0) + ret_if(!data); + + ad = (struct appdata*)data; + + if(icon_get_update_flag()==0) { updated_while_lcd_off = 1; DBG("need to update %d",updated_while_lcd_off); @@ -147,140 +362,400 @@ static void indicator_conn_change_cb(keynode_t *node, void *data) retif(data == NULL, , "Invalid parameter!"); - ret = vconf_get_int(VCONFKEY_WIFI_STATE, &status); - if (ret == OK) { + /* check wifi status */ + ret = wifi_get_connection_state(&status); + if (ret == WIFI_ERROR_NONE) { INFO("CONNECTION WiFi Status: %d", status); - if ((status == VCONFKEY_WIFI_CONNECTED)) { - hide_image_icon(); - if (dnet_transferring == EINA_TRUE) { - dnet_transferring = EINA_FALSE; + + if ((status == WIFI_CONNECTION_STATE_CONNECTED)) + { + int mms_state = 0; + vconf_get_int(VCONFKEY_DNET_STATE, &mms_state); + box_update_display(&(ad->win)); + + if(mms_state!=VCONFKEY_DNET_SECURE_CONNECTED) + { + hide_image_icon(); + return; } - return; } } + /* get dnet status */ ret = vconf_get_int(VCONFKEY_DNET_STATE, &status); if (ret == OK) { - INFO("CONNECTION DNET Status: %d", status); if (status == VCONFKEY_DNET_OFF) { + DBG("CONNECTION DNET Status: %d", status); hide_image_icon(); - return; } - } - - ret = vconf_get_int(VCONFKEY_TELEPHONY_PSTYPE, &ps_type); - if (ret == OK) - { - INFO("Telephony packet service type: %d", ps_type); - - switch (ps_type) + else { - case VCONFKEY_TELEPHONY_PSTYPE_HSDPA: - case VCONFKEY_TELEPHONY_PSTYPE_HSUPA: - case VCONFKEY_TELEPHONY_PSTYPE_HSPA: - show_image_icon(LEVEL_HS); - return; - case VCONFKEY_TELEPHONY_PSTYPE_NONE: - default: - break; + ret = vconf_get_int(VCONFKEY_TELEPHONY_PSTYPE, &ps_type); + if (ret == OK) + { + INFO("Telephony packet service type: %d", ps_type); + + switch (ps_type) + { + + case VCONFKEY_TELEPHONY_PSTYPE_HSDPA: + case VCONFKEY_TELEPHONY_PSTYPE_HSUPA: + case VCONFKEY_TELEPHONY_PSTYPE_HSPA: + if(util_is_orf()) + { + show_image_icon(LEVEL_3G_PLUS); + } + else + { + show_image_icon(LEVEL_H); + } + show_connection_transfer_icon(data); + return; + case VCONFKEY_TELEPHONY_PSTYPE_NONE: + default: + break; + } + } + + /* check service type */ + ret = vconf_get_int(VCONFKEY_TELEPHONY_SVCTYPE, &svc_type); + if (ret == OK) { + switch (svc_type) { + case VCONFKEY_TELEPHONY_SVCTYPE_2G: + /**< Network 2G. Show to LEVEL_2G icon */ + case VCONFKEY_TELEPHONY_SVCTYPE_2_5G: + /**< Network 2.5G. Show to LEVEL_2G icon */ + show_image_icon(LEVEL_2G); + show_connection_transfer_icon(data); + break; + case VCONFKEY_TELEPHONY_SVCTYPE_2_5G_EDGE: + /**< Network EDGE */ + show_image_icon(LEVEL_EDGE); + show_connection_transfer_icon(data); + break; + case VCONFKEY_TELEPHONY_SVCTYPE_3G: + /**< Network UMTS */ + show_image_icon(LEVEL_3G); + show_connection_transfer_icon(data); + break; + case VCONFKEY_TELEPHONY_SVCTYPE_LTE: + /**< Network LTE */ + show_image_icon(LEVEL_4G); + show_connection_transfer_icon(data); + break; + + default: + hide_image_icon(); + break; + } + + return; + } } } - ret = vconf_get_int(VCONFKEY_TELEPHONY_SVCTYPE, &svc_type); +// ret = vconf_get_int(VCONFKEY_DNET_STATE2, &status); if (ret == OK) { - INFO("Telephony service type: %d", svc_type); - - switch (svc_type) { - case VCONFKEY_TELEPHONY_SVCTYPE_2G: - case VCONFKEY_TELEPHONY_SVCTYPE_2_5G: - show_image_icon(LEVEL_2G); - break; - case VCONFKEY_TELEPHONY_SVCTYPE_2_5G_EDGE: - show_image_icon(LEVEL_EDGE); - break; - case VCONFKEY_TELEPHONY_SVCTYPE_3G: - show_image_icon(LEVEL_3G); - break; - case VCONFKEY_TELEPHONY_SVCTYPE_LTE: - show_image_icon(LEVEL_LTE); - break; - - default: + if (status == VCONFKEY_DNET_OFF) + { + DBG("CONNECTION DNET Status: %d", status); hide_image_icon(); - break; } + else + { - return; - } + ret = vconf_get_int(VCONFKEY_TELEPHONY_PSTYPE, &ps_type); + if (ret == OK) + { + switch (ps_type) + { + + case VCONFKEY_TELEPHONY_PSTYPE_HSDPA: + case VCONFKEY_TELEPHONY_PSTYPE_HSUPA: + if(util_is_orf()) + { + show_image_icon(LEVEL_3G_PLUS); + } + else + { + show_image_icon(LEVEL_H); + } + show_connection_transfer_icon(data); + return; + case VCONFKEY_TELEPHONY_PSTYPE_HSPA: + show_image_icon(LEVEL_H_PLUS); + show_connection_transfer_icon(data); + return; + + case VCONFKEY_TELEPHONY_PSTYPE_NONE: + default: + break; + } + } + /* check service type */ + ret = vconf_get_int(VCONFKEY_TELEPHONY_SVCTYPE, &svc_type); + if (ret == OK) { + switch (svc_type) { + case VCONFKEY_TELEPHONY_SVCTYPE_2G: + /**< Network 2G. Show to LEVEL_2G icon */ + case VCONFKEY_TELEPHONY_SVCTYPE_2_5G: + /**< Network 2.5G. Show to LEVEL_2G icon */ + show_image_icon(LEVEL_2G); + show_connection_transfer_icon(data); + break; + case VCONFKEY_TELEPHONY_SVCTYPE_2_5G_EDGE: + /**< Network EDGE */ + show_image_icon(LEVEL_EDGE); + show_connection_transfer_icon(data); + break; + case VCONFKEY_TELEPHONY_SVCTYPE_3G: + /**< Network UMTS */ + show_image_icon(LEVEL_3G); + show_connection_transfer_icon(data); + break; + case VCONFKEY_TELEPHONY_SVCTYPE_LTE: + /**< Network LTE */ + show_image_icon(LEVEL_4G); + show_connection_transfer_icon(data); + break; + + default: + hide_image_icon(); + break; + } + + return; + } + } + } hide_image_icon(); return; } + + static int wake_up_cb(void *data) { if(updated_while_lcd_off==0) { - DBG("ICON WAS NOT UPDATED"); return OK; } - indicator_conn_change_cb(NULL, data); + on_noti(tapi_handle[0], NULL, NULL, data); return OK; } -static int register_conn_module(void *data) + +#if 0 +static void svc_type_callback(keynode_t *node, void *data) { - int r = 0, ret = -1; + int type = 0; - retif(data == NULL, FAIL, "Invalid parameter!"); + vconf_get_int(VCONFKEY_TELEPHONY_SVCTYPE, &type); + DBG("svc_type_callback %d",type); + indicator_conn_change_cb(node,data); +} +#endif - set_app_state(data); - ret = vconf_notify_key_changed(VCONFKEY_TELEPHONY_SVCTYPE, - indicator_conn_change_cb, data); +static void ps_type_callback(keynode_t *node, void *data) +{ + int type = 0; + + vconf_get_int(VCONFKEY_TELEPHONY_PSTYPE, &type); + + DBG("ps_type_callback %d",type); + indicator_conn_change_cb(node,data); +} + + + +static void dnet_state_callback(keynode_t *node, void *data) +{ + DBG("dnet_state_callback"); + on_noti(tapi_handle[0], NULL, NULL, data); +} + + + +static void dnet2_state_callback(keynode_t *node, void *data) +{ + DBG("dnet_state_callback"); + on_noti(tapi_handle[1], NULL, NULL, data); +} + + + +static void packet_state_callback(keynode_t *node, void *data) +{ + DBG("packet_state_callback"); + on_noti(tapi_handle[0], NULL, NULL, data); +} + + + +static void _wifi_status_changed_cb(wifi_connection_state_e state, wifi_ap_h ap, void *user_data) +{ + int status = 0; + int ret = 0; + + ret = wifi_get_connection_state(&status); + if (ret == WIFI_ERROR_NONE) + { + INFO("[CB] WIFI Status: %d", status); + if(status == WIFI_CONNECTION_STATE_CONNECTED) + { + DBG("[CB] WIFI connected, so hide connection icon"); + hide_image_icon(); + } + else + { + on_noti(tapi_handle[0], NULL, NULL, user_data); + } + } +} + + + +static void _flight_mode(keynode_t *key, void *data) +{ + on_noti(tapi_handle[0], NULL, NULL, data); +} + + + +static void _bt_tethering(keynode_t *key, void *data) +{ + on_noti(tapi_handle[0], NULL, NULL, data); +} + + + +void connection_icon_on_noti(TapiHandle *handle_obj, const char *noti_id, void *data, void *user_data) +{ + DBG(""); + on_noti(handle_obj, NULL, NULL, user_data); +} + + + +/* Initialize TAPI */ +static void __init_tel(void *data) +{ + DBG("__init_tel"); + int ret = FAIL; + + ret = vconf_notify_key_changed(VCONFKEY_DNET_STATE, dnet_state_callback, data); if (ret != OK) { ERR("Failed to register callback!"); - r = ret; } - ret = vconf_notify_key_changed(VCONFKEY_DNET_STATE, - indicator_conn_change_cb, data); +/* ret = vconf_notify_key_changed(VCONFKEY_DNET_STATE2, dnet2_state_callback, data); + if (ret != OK) { + ERR("Failed to register callback!"); + }*/ + + ret = vconf_notify_key_changed(VCONFKEY_PACKET_STATE, packet_state_callback, data); if (ret != OK) { ERR("Failed to register callback!"); - r = r | ret; } - ret = vconf_notify_key_changed(VCONFKEY_TELEPHONY_PSTYPE, - indicator_conn_change_cb, data); + ret = vconf_notify_key_changed(VCONFKEY_TELEPHONY_FLIGHT_MODE, _flight_mode, data); if (ret != OK) { ERR("Failed to register callback!"); + } + + ret = vconf_notify_key_changed(VCONFKEY_NETWORK_STATUS, _bt_tethering, data); + if (ret != OK) { + ERR("Failed to register callback!"); + } + + on_noti(tapi_handle[0], NULL, NULL, data); +} + + + +/* De-initialize TAPI */ +static void __deinit_tel() +{ + DBG("__deinit_tel"); +} + + + +static void tel_ready_cb(keynode_t *key, void *data) +{ + gboolean status = FALSE; + + status = vconf_keynode_get_bool(key); + if (status == TRUE) { /* Telephony State - READY */ + __init_tel(data); + } + else { /* Telephony State – NOT READY */ + /* De-initialization is optional here (ONLY if required) */ + __deinit_tel(); + } +} + + + +static int register_conn_module(void *data) +{ + int r = 0, ret = -1; + + retif(data == NULL, FAIL, "Invalid parameter!"); + + set_app_state(data); + + ret = vconf_notify_key_changed(VCONFKEY_TELEPHONY_PSTYPE, + ps_type_callback, data); + if (ret != OK) { r = r | ret; } - indicator_conn_change_cb(NULL, data); + ret = wifi_set_connection_state_changed_cb(_wifi_status_changed_cb, data); + if (ret != WIFI_ERROR_NONE) { + ERR("Failed to register wifi_set_connection_state_changed_cb!"); + r = r | ret; + } + gboolean state = FALSE; + + vconf_get_bool(VCONFKEY_TELEPHONY_READY, &state); + + if(state) + { + DBG("Telephony ready"); + __init_tel(data); + } + else + { + DBG("Telephony not ready"); + vconf_notify_key_changed(VCONFKEY_TELEPHONY_READY, tel_ready_cb, data); + } return r; } -static int unregister_conn_module(void) -{ - int ret; - ret = vconf_ignore_key_changed(VCONFKEY_TELEPHONY_SVCTYPE, - indicator_conn_change_cb); - if (ret != OK) - ERR("Failed to unregister callback!"); - ret = vconf_ignore_key_changed(VCONFKEY_DNET_STATE, - indicator_conn_change_cb); +static int unregister_conn_module(void) +{ + int ret = -1; + + ret = ret | vconf_ignore_key_changed(VCONFKEY_TELEPHONY_PSTYPE, ps_type_callback); + ret = ret | vconf_ignore_key_changed(VCONFKEY_DNET_STATE, dnet_state_callback); +// ret = ret | vconf_ignore_key_changed(VCONFKEY_DNET_STATE2, dnet_state_callback); + ret = ret | wifi_unset_connection_state_changed_cb(); + ret = ret | vconf_ignore_key_changed(VCONFKEY_PACKET_STATE, packet_state_callback); + ret = ret | vconf_ignore_key_changed(VCONFKEY_TELEPHONY_READY, tel_ready_cb); + ret = ret | vconf_ignore_key_changed(VCONFKEY_TELEPHONY_FLIGHT_MODE, _flight_mode); + ret = ret | vconf_ignore_key_changed(VCONFKEY_NETWORK_STATUS, _bt_tethering); if (ret != OK) ERR("Failed to unregister callback!"); - if (dnet_transferring == EINA_TRUE) { - dnet_transferring = EINA_FALSE; - } + __deinit_tel(); - return OK; + return ret; } diff --git a/modules/connection/connection.h b/modules/connection/connection.h new file mode 100644 index 0000000..5cc9ec5 --- /dev/null +++ b/modules/connection/connection.h @@ -0,0 +1,26 @@ +/* + * Indicator + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +#ifndef __INDICATOR_CONNECTION_H__ +#define __INDICATOR_CONNECTION_H__ + +extern void connection_icon_on_noti(TapiHandle *handle_obj, const char *noti_id, void *data, void *user_data); + +#endif diff --git a/modules/connection/dock.c b/modules/connection/dock.c new file mode 100644 index 0000000..9771a92 --- /dev/null +++ b/modules/connection/dock.c @@ -0,0 +1,145 @@ +/* + * Indicator + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + + +#include +#include +#include +#include "common.h" +#include "indicator.h" +#include "icon.h" +#include "modules.h" +#include "main.h" + +#define ICON_PRIORITY INDICATOR_PRIORITY_NOTI_2 +#define MODULE_NAME "dock" +#define TIMER_INTERVAL 0.3 + +static int register_dock_module(void *data); +static int unregister_dock_module(void); +static int bShown = 0; + +icon_s dock = { + .type = INDICATOR_IMG_ICON, + .name = MODULE_NAME, + .priority = ICON_PRIORITY, + .always_top = EINA_FALSE, + .exist_in_view = EINA_FALSE, + .area = INDICATOR_ICON_AREA_NOTI, + .img_obj = {0,}, + .obj_exist = EINA_FALSE, + .init = register_dock_module, + .fini = unregister_dock_module +}; + +static const char *icon_path[] = { + "Desk dock/B03_desk_dock.png", + NULL +}; + + + +static void set_app_state(void* data) +{ + dock.ad = data; +} + + + +static void show_image_icon(void) +{ + if(bShown == 1) + { + return; + } + + dock.img_obj.data = icon_path[0]; + icon_show(&dock); + + bShown = 1; +} + + + +static void hide_image_icon(void) +{ + icon_hide(&dock); + + bShown = 0; +} + + + +static void indicator_dock_change_cb(keynode_t *node, void *data) +{ + int status; + int ret; + + retif(data == NULL, , "Invalid parameter!"); + + /* First, check dock status */ + ret = vconf_get_int(VCONFKEY_SYSMAN_CRADLE_STATUS, &status); + if (ret == OK) { + if (status > 0) { + DBG("dock Status: %d", status); + show_image_icon(); + } + else + { + hide_image_icon(); + } + } + + return; +} + + + +static int register_dock_module(void *data) +{ + int r = 0, ret = -1; + + retif(data == NULL, FAIL, "Invalid parameter!"); + + set_app_state(data); + + ret = vconf_notify_key_changed(VCONFKEY_SYSMAN_CRADLE_STATUS, + indicator_dock_change_cb, data); + if (ret != OK) + { + r = ret; + } + + indicator_dock_change_cb(NULL, data); + + return r; +} + + + +static int unregister_dock_module(void) +{ + int ret; + + ret = vconf_ignore_key_changed(VCONFKEY_SYSMAN_CRADLE_STATUS, + indicator_dock_change_cb); + + return ret; +} diff --git a/modules/connection/mobile_hotspot.c b/modules/connection/mobile_hotspot.c old mode 100755 new mode 100644 index 04e098f..0b9c761 --- a/modules/connection/mobile_hotspot.c +++ b/modules/connection/mobile_hotspot.c @@ -1,28 +1,32 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd + * Indicator * - * Licensed under the Flora License, Version 1.1 (the "License"); + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://floralicense.org/license/ + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * */ + #include #include #include #include "common.h" #include "indicator.h" -#include "indicator_icon_util.h" +#include "icon.h" #include "modules.h" -#include "indicator_ui.h" +#include "main.h" #define ICON_PRIORITY INDICATOR_PRIORITY_NOTI_2 #define MODULE_NAME "mobile_hotspot" @@ -31,97 +35,77 @@ static int register_mobile_hotspot_module(void *data); static int unregister_mobile_hotspot_module(void); static int wake_up_cb(void *data); -Indicator_Icon_Object mobile_hotspot[INDICATOR_WIN_MAX] = { -{ - .win_type = INDICATOR_WIN_PORT, - .name = MODULE_NAME, - .priority = ICON_PRIORITY, - .always_top = EINA_FALSE, - .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, - .img_obj = {0,}, - .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_NOTI, - .init = register_mobile_hotspot_module, - .fini = unregister_mobile_hotspot_module, - .wake_up = wake_up_cb -}, -{ - .win_type = INDICATOR_WIN_LAND, - .type = INDICATOR_IMG_ICON, +icon_s mobile_hotspot = { .name = MODULE_NAME, .priority = ICON_PRIORITY, .always_top = EINA_FALSE, .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, .img_obj = {0,}, .obj_exist = EINA_FALSE, .area = INDICATOR_ICON_AREA_NOTI, .init = register_mobile_hotspot_module, .fini = unregister_mobile_hotspot_module, .wake_up = wake_up_cb -} - }; enum { - MOBILEAP_ON_NOT_CONNECTED = 0, - MOBILEAP_CONNECTED_MIN = MOBILEAP_ON_NOT_CONNECTED, - MOBILEAP_CONNECTED1, - MOBILEAP_CONNECTED2, - MOBILEAP_CONNECTED3, - MOBILEAP_CONNECTED4, - MOBILEAP_CONNECTED5, - MOBILEAP_CONNECTED6, - MOBILEAP_CONNECTED7, - MOBILEAP_CONNECTED8, - MOBILEAP_CONNECTED9, - MOBILEAP_MAX, + TETHERING_ALL_ON_CONNECTED = 0, + TETHERING_ALL_ON_NOT_CONNECTED, + TETHERING_BT_ON_CONNECTED, + TETHERING_BT_ON_NOT_CONNECTED, + TETHERING_USB_ON_CONNECTED, + TETHERING_USB_ON_NOT_CONNECTED, + TETHERING_WIFI_ON_CONNECTED, + TETHERING_WIFI_ON_NOT_CONNECTED, + TETHERING_MAX, }; -static const char *icon_path[MOBILEAP_MAX] = { - [MOBILEAP_ON_NOT_CONNECTED] = - "Connection/B03_MobileAP_on¬ connected.png", - [MOBILEAP_CONNECTED1] = "Connection/B03_MobileAP_connected_01.png", - [MOBILEAP_CONNECTED2] = "Connection/B03_MobileAP_connected_02.png", - [MOBILEAP_CONNECTED3] = "Connection/B03_MobileAP_connected_03.png", - [MOBILEAP_CONNECTED4] = "Connection/B03_MobileAP_connected_04.png", - [MOBILEAP_CONNECTED5] = "Connection/B03_MobileAP_connected_05.png", - [MOBILEAP_CONNECTED6] = "Connection/B03_MobileAP_connected_06.png", - [MOBILEAP_CONNECTED7] = "Connection/B03_MobileAP_connected_07.png", - [MOBILEAP_CONNECTED8] = "Connection/B03_MobileAP_connected_08.png", - [MOBILEAP_CONNECTED9] = "Connection/B03_MobileAP_connected_09.png", +static const char *icon_path[TETHERING_MAX] = { + [TETHERING_ALL_ON_CONNECTED] = "tethering/B03_All_connected.png", + [TETHERING_ALL_ON_NOT_CONNECTED] = "tethering/B03_All_no_connected.png", + [TETHERING_BT_ON_CONNECTED] = "tethering/B03_BT_connected.png", + [TETHERING_BT_ON_NOT_CONNECTED] = "tethering/B03_BT_no_connected.png", + [TETHERING_USB_ON_CONNECTED] = "tethering/B03_USB_connected.png", + [TETHERING_USB_ON_NOT_CONNECTED] = "tethering/B03_USB_no_connected.png", + [TETHERING_WIFI_ON_CONNECTED] = "tethering/B03_Wi_Fi_connected.png", + [TETHERING_WIFI_ON_NOT_CONNECTED] = "tethering/B03_Wi_Fi_no_connected.png", }; static int updated_while_lcd_off = 0; +static int prevIndex = -1; + + static void set_app_state(void* data) { - int i = 0; - - for (i=0 ; i= MOBILEAP_MAX) { - ERR("unable to handle %d connected devices ", - connected_device); - icon_index = MOBILEAP_CONNECTED9; + hide_image_icon(); + return; + } + else if(on_device_cnt>=2) + { + if(connected_device>=1) + { + show_image_icon(TETHERING_ALL_ON_CONNECTED); + } + else + { + show_image_icon(TETHERING_ALL_ON_NOT_CONNECTED); } - show_image_icon(icon_index); } else { - show_image_icon(MOBILEAP_ON_NOT_CONNECTED); + if(bBT==1) + { + if(connected_device>0) + { + show_image_icon(TETHERING_BT_ON_CONNECTED); + } + else + { + show_image_icon(TETHERING_BT_ON_NOT_CONNECTED); + } + } + + if(bUSB==1) + { + if(connected_device>0) + { + show_image_icon(TETHERING_USB_ON_CONNECTED); + } + else + { + show_image_icon(TETHERING_USB_ON_NOT_CONNECTED); + } + } + + if(bWifi==1) + { + if(connected_device>0) + { + show_image_icon(TETHERING_WIFI_ON_CONNECTED); + } + else + { + show_image_icon(TETHERING_WIFI_ON_NOT_CONNECTED); + } + } } - return; - } else { + + } + else + { hide_image_icon(); return; } } - hide_image_icon(); - return; } + + static int wake_up_cb(void *data) { if(updated_while_lcd_off==0) { - DBG("ICON WAS NOT UPDATED"); return OK; } @@ -189,6 +222,8 @@ static int wake_up_cb(void *data) return OK; } + + static int register_mobile_hotspot_module(void *data) { int r = 0, ret = -1; @@ -200,14 +235,12 @@ static int register_mobile_hotspot_module(void *data) ret = vconf_notify_key_changed(VCONFKEY_MOBILE_HOTSPOT_MODE, indicator_mobile_hotspot_change_cb, data); if (ret != OK) { - ERR("Failed to register callback!"); r = r | ret; } ret = vconf_notify_key_changed(VCONFKEY_MOBILE_HOTSPOT_CONNECTED_DEVICE, indicator_mobile_hotspot_change_cb, data); if (ret != OK) { - ERR("Failed to register callback!"); r = r | ret; } @@ -216,19 +249,17 @@ static int register_mobile_hotspot_module(void *data) return r; } + + static int unregister_mobile_hotspot_module(void) { int ret; ret = vconf_ignore_key_changed(VCONFKEY_MOBILE_HOTSPOT_MODE, indicator_mobile_hotspot_change_cb); - if (ret != OK) - ERR("Failed to unregister callback!"); - ret = vconf_ignore_key_changed(VCONFKEY_MOBILE_HOTSPOT_CONNECTED_DEVICE, + ret = ret | vconf_ignore_key_changed(VCONFKEY_MOBILE_HOTSPOT_CONNECTED_DEVICE, indicator_mobile_hotspot_change_cb); - if (ret != OK) - ERR("Failed to register callback!"); - return OK; + return ret; } diff --git a/modules/connection/nosim.c b/modules/connection/nosim.c new file mode 100644 index 0000000..349c683 --- /dev/null +++ b/modules/connection/nosim.c @@ -0,0 +1,138 @@ +/* + * Indicator + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + + +#include +#include +#include +#include "common.h" +#include "indicator.h" +#include "icon.h" +#include "modules.h" +#include "main.h" + +#define ICON_PRIORITY INDICATOR_PRIORITY_NOTI_2 +#define MODULE_NAME "nosim" +#define TIMER_INTERVAL 0.3 + +static int register_nosim_module(void *data); +static int unregister_nosim_module(void); + +icon_s nosim = { + .type = INDICATOR_IMG_ICON, + .name = MODULE_NAME, + .priority = ICON_PRIORITY, + .always_top = EINA_FALSE, + .exist_in_view = EINA_FALSE, + .area = INDICATOR_ICON_AREA_NOTI, + .img_obj = {0,}, + .obj_exist = EINA_FALSE, + .init = register_nosim_module, + .fini = unregister_nosim_module +}; + +static const char *icon_path[] = { + "RSSI/B03_RSSI_NoSim.png", + NULL +}; + +static int bShown = 0; + + + +static void set_app_state(void* data) +{ + nosim.ad = data; +} + + + +static void show_image_icon(void) +{ + if(bShown == 1) + { + return; + } + + nosim.img_obj.data = icon_path[0]; + icon_show(&nosim); + + bShown = 1; +} + + + +static void hide_image_icon(void) +{ + icon_hide(&nosim); + + bShown = 0; +} + + + +static void indicator_nosim_change_cb(keynode_t *node, void *data) +{ + int status; + int ret; + retif(data == NULL, , "Invalid parameter!"); + + ret = vconf_get_int(VCONFKEY_TELEPHONY_SIM_SLOT, &status); + if (ret == OK && status != VCONFKEY_TELEPHONY_SIM_INSERTED) + { + show_image_icon(); + } + else + { + hide_image_icon(); + } + + return; +} + + + +static int register_nosim_module(void *data) +{ + int ret = -1; + + retif(data == NULL, FAIL, "Invalid parameter!"); + + set_app_state(data); + + ret = vconf_notify_key_changed(VCONFKEY_TELEPHONY_SIM_SLOT, + indicator_nosim_change_cb, data); + + indicator_nosim_change_cb(NULL, data); + + return ret; +} + + + +static int unregister_nosim_module(void) +{ + int ret; + + ret = vconf_ignore_key_changed(VCONFKEY_TELEPHONY_SIM_SLOT, + indicator_nosim_change_cb); + + return ret; +} diff --git a/modules/connection/usb.c b/modules/connection/usb.c old mode 100755 new mode 100644 index cbc6ab0..7eb3a7d --- a/modules/connection/usb.c +++ b/modules/connection/usb.c @@ -1,28 +1,35 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd + * Indicator * - * Licensed under the Flora License, Version 1.1 (the "License"); + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://floralicense.org/license/ + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * */ + #include #include #include +#include + #include "common.h" #include "indicator.h" -#include "indicator_icon_util.h" +#include "icon.h" #include "modules.h" -#include "indicator_ui.h" +#include "main.h" +#include "log.h" #define ICON_PRIORITY INDICATOR_PRIORITY_NOTI_2 #define MODULE_NAME "usb" @@ -31,97 +38,102 @@ static int register_usb_module(void *data); static int unregister_usb_module(void); -Indicator_Icon_Object usb[INDICATOR_WIN_MAX] = { -{ - .win_type = INDICATOR_WIN_PORT, - .type = INDICATOR_IMG_ICON, - .name = MODULE_NAME, - .priority = ICON_PRIORITY, - .always_top = EINA_FALSE, - .exist_in_view = EINA_FALSE, - .area = INDICATOR_ICON_AREA_NOTI, - .txt_obj = {0,}, - .img_obj = {0,}, - .obj_exist = EINA_FALSE, - .init = register_usb_module, - .fini = unregister_usb_module -}, -{ - .win_type = INDICATOR_WIN_LAND, +icon_s usb = { .type = INDICATOR_IMG_ICON, .name = MODULE_NAME, .priority = ICON_PRIORITY, .always_top = EINA_FALSE, .exist_in_view = EINA_FALSE, .area = INDICATOR_ICON_AREA_NOTI, - .txt_obj = {0,}, .img_obj = {0,}, .obj_exist = EINA_FALSE, .init = register_usb_module, .fini = unregister_usb_module -} }; static const char *icon_path[] = { - "USB tethering/B03_USB.png", + "Connection/B03_USB.png", NULL }; +static int bShown = 0; + + + static void set_app_state(void* data) { - int i = 0; - - for (i=0 ; i 0) { + _D("cradle Status: %d", cradle); + hide_image_icon(); + return; } } -static void indicator_usb_change_cb(keynode_t *node, void *data) +static void _usb_change_cb(keynode_t *node, void *data) { + bool usb_state; int status; int ret; + int cradle = 0; + int tethering = 0; - retif(data == NULL, , "Invalid parameter!"); + ret_if(!data); - ret = vconf_get_int(VCONFKEY_SYSMAN_USB_STATUS, &status); - if (ret == OK) { - if (status >= VCONFKEY_SYSMAN_USB_CONNECTED) { - INFO("indicator_usb_change_cb : CONNECTION USB Status: %d", status); + vconf_get_int(VCONFKEY_SYSMAN_CRADLE_STATUS, &cradle); + if (cradle > 0) { + _D("cradle Status: %d", cradle); + hide_image_icon(); + return; + } + + vconf_get_int(VCONFKEY_MOBILE_HOTSPOT_MODE, &tethering); + if (tethering & VCONFKEY_MOBILE_HOTSPOT_MODE_USB) { + _D("tethering Status: %d", tethering); + hide_image_icon(); + return; + } + /* First, check usb state */ + ret = runtime_info_get_value_bool(RUNTIME_INFO_KEY_USB_CONNECTED, &usb_state); + if (ret == RUNTIME_INFO_ERROR_NONE) { + if (usb_state) { show_image_icon(); return; - } - else - { + } else { + /* Second, check usb Host status */ ret = vconf_get_int(VCONFKEY_SYSMAN_USB_HOST_STATUS, &status); if (ret == OK) { if (status >= VCONFKEY_SYSMAN_USB_HOST_CONNECTED) { - INFO("indicator_usb_change_cb : Host USB Status: %d", status); + _D("Host USB Status: %d", status); show_image_icon(); return; - } else + } else { hide_image_icon(); + } } } } @@ -129,50 +141,41 @@ static void indicator_usb_change_cb(keynode_t *node, void *data) return; } -static int register_usb_module(void *data) +static void _runtime_info_usb_change_cb(runtime_info_key_e key, void *data) { - int r = 0, ret = -1; + ret_if(!data); - retif(data == NULL, FAIL, "Invalid parameter!"); + _usb_change_cb(NULL, data); - set_app_state(data); + return; +} - ret = vconf_notify_key_changed(VCONFKEY_SYSMAN_USB_STATUS, - indicator_usb_change_cb, data); - if (ret != OK) - { - ERR("Failed to register callback(VCONFKEY_SYSMAN_USB_STATUS)!"); - r = ret; - } +static int register_usb_module(void *data) +{ + int ret = -1; + retv_if(!data, 0); - ret = vconf_notify_key_changed(VCONFKEY_SYSMAN_USB_HOST_STATUS, - indicator_usb_change_cb, data); - if (ret != OK) - { - ERR("Failed to register callback(VCONFKEY_SYSMAN_USB_HOST_STATUS)!"); - r = r|ret; - } + set_app_state(data); + ret = runtime_info_set_changed_cb(RUNTIME_INFO_KEY_USB_CONNECTED, _runtime_info_usb_change_cb, data); + ret = ret | vconf_notify_key_changed(VCONFKEY_SYSMAN_USB_HOST_STATUS, _usb_change_cb, data); + ret = ret | vconf_notify_key_changed(VCONFKEY_SYSMAN_CRADLE_STATUS, _cradle_change_cb, data); + ret = ret | vconf_notify_key_changed(VCONFKEY_MOBILE_HOTSPOT_MODE, _usb_change_cb, data); - indicator_usb_change_cb(NULL, data); + _usb_change_cb(NULL, data); - return r; + return ret; } static int unregister_usb_module(void) { int ret; - ret = vconf_ignore_key_changed(VCONFKEY_SYSMAN_USB_STATUS, - indicator_usb_change_cb); - if (ret != OK) - ERR("Failed to unregister callback(VCONFKEY_SYSMAN_USB_STATUS)!"); - - ret = vconf_ignore_key_changed(VCONFKEY_SYSMAN_USB_HOST_STATUS, - indicator_usb_change_cb); - if (ret != OK) - ERR("Failed to unregister callback(VCONFKEY_SYSMAN_USB_HOST_STATUS)!"); - - return OK; + ret = runtime_info_unset_changed_cb(RUNTIME_INFO_KEY_USB_CONNECTED); + ret = ret | vconf_ignore_key_changed(VCONFKEY_SYSMAN_USB_HOST_STATUS, _usb_change_cb); + ret = ret | vconf_ignore_key_changed(VCONFKEY_SYSMAN_CRADLE_STATUS, _cradle_change_cb); + ret = ret | vconf_ignore_key_changed(VCONFKEY_MOBILE_HOTSPOT_MODE, _usb_change_cb); + return ret; } +/* End of file */ diff --git a/modules/connection/wifi.c b/modules/connection/wifi.c old mode 100755 new mode 100644 index 7c3130e..7887af9 --- a/modules/connection/wifi.c +++ b/modules/connection/wifi.c @@ -1,30 +1,38 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd + * Indicator * - * Licensed under the Flora License, Version 1.1 (the "License"); + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://floralicense.org/license/ + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * */ + #include #include #include +#include + #include "common.h" #include "indicator.h" -#include "indicator_icon_util.h" +#include "icon.h" #include "modules.h" -#include "indicator_ui.h" +#include "main.h" +#include "util.h" +#include "log.h" -#define ICON_PRIORITY INDICATOR_PRIORITY_FIXED2 +#define ICON_PRIORITY INDICATOR_PRIORITY_FIXED6 #define MODULE_NAME "wifi" #define TIMER_INTERVAL 0.3 @@ -32,42 +40,22 @@ static int register_wifi_module(void *data); static int unregister_wifi_module(void); static int wake_up_cb(void *data); -Indicator_Icon_Object wifi[INDICATOR_WIN_MAX] = { -{ - .win_type = INDICATOR_WIN_PORT, - .type = INDICATOR_IMG_ICON, - .name = MODULE_NAME, - .priority = ICON_PRIORITY, - .always_top = EINA_FALSE, - .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, - .img_obj = {0,}, - .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_FIXED, - .init = register_wifi_module, - .fini = unregister_wifi_module, - .wake_up = wake_up_cb -}, -{ - .win_type = INDICATOR_WIN_LAND, +icon_s wifi = { .type = INDICATOR_IMG_ICON, .name = MODULE_NAME, .priority = ICON_PRIORITY, .always_top = EINA_FALSE, .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, .img_obj = {0,}, .obj_exist = EINA_FALSE, .area = INDICATOR_ICON_AREA_FIXED, .init = register_wifi_module, .fini = unregister_wifi_module, .wake_up = wake_up_cb -} }; enum { LEVEL_WIFI_01 = 0, - LEVEL_WIFI = LEVEL_WIFI_01, LEVEL_WIFI_02, LEVEL_WIFI_03, LEVEL_WIFI_04, @@ -75,98 +63,209 @@ enum { }; static const char *icon_path[LEVEL_WIFI_MAX] = { - [LEVEL_WIFI_01] = "Connection/B03_connection_Wifi_01.png", - [LEVEL_WIFI_02] = "Connection/B03_connection_Wifi_02.png", - [LEVEL_WIFI_03] = "Connection/B03_connection_Wifi_03.png", - [LEVEL_WIFI_04] = "Connection/B03_connection_Wifi_04.png", + [LEVEL_WIFI_01] = "Connection/B03_data_downloading_Wifi_01.png", + [LEVEL_WIFI_02] = "Connection/B03_data_downloading_Wifi_02.png", + [LEVEL_WIFI_03] = "Connection/B03_data_downloading_Wifi_03.png", + [LEVEL_WIFI_04] = "Connection/B03_data_downloading_Wifi_04.png", }; +static int transfer_state = -1; static Eina_Bool wifi_transferring = EINA_FALSE; static int updated_while_lcd_off = 0; +static int prevIndex = -1; + + static void set_app_state(void* data) { - int i = 0; - - for (i=0 ; i VCONFKEY_WIFI_STRENGTH_MAX) { + } + else if (strength > VCONFKEY_WIFI_STRENGTH_MAX) { strength = VCONFKEY_WIFI_STRENGTH_MAX; } - } else + } else { strength = VCONFKEY_WIFI_STRENGTH_MAX; + } + + if (strength <= 0) strength = 1; + + /* Second, check wifi status */ + ret = wifi_is_activated(&wifi_state); + _D("wifi_state : %d", wifi_state); + if(ret != WIFI_ERROR_NONE) { + _E("wifi_is_activated error. ret is [%d]", ret); + } - ret = vconf_get_int(VCONFKEY_WIFI_STATE, &status); + ret = wifi_get_connection_state(&status); + if (ret == WIFI_ERROR_NONE) { + DBG("CONNECTION WiFi Status: %d", status); + switch(status) { + case WIFI_CONNECTION_STATE_CONNECTED: + show_wifi_transfer_icon(data); + show_image_icon(data, strength-1); + break; + default: //WIFI_CONNECTION_STATE_DISCONNECTED + hide_image_icon(); + break; + } + } + + return; +} + +static void _wifi_device_state_changed_cb(wifi_device_state_e state, void *user_data) +{ + bool wifi_state = FALSE; + int ret, strength; + + ret_if(!user_data); + + if (icon_get_update_flag()==0) { + updated_while_lcd_off = 1; + return; + } + updated_while_lcd_off = 0; + + ret = vconf_get_int(VCONFKEY_WIFI_STRENGTH, &strength); if (ret == OK) { - INFO("CONNECTION WiFi Status: %d", status); - if (status != VCONFKEY_WIFI_TRANSFER) { - if ( wifi_transferring == EINA_TRUE ) { - wifi_transferring = EINA_FALSE; - } + if (strength < VCONFKEY_WIFI_STRENGTH_MIN) { + strength = VCONFKEY_WIFI_STRENGTH_MIN; } - if (status == VCONFKEY_WIFI_UNCONNECTED) { - hide_image_icon(); - return; - } else if (status == VCONFKEY_WIFI_CONNECTED) { - if (strength <= 0) - strength = 1; - - show_image_icon(data,LEVEL_WIFI + strength-1); - return; - } else if (status == VCONFKEY_WIFI_TRANSFER) { - if (wifi_transferring != EINA_TRUE) { - wifi_transferring = EINA_TRUE; - } - return; + else if (strength > VCONFKEY_WIFI_STRENGTH_MAX) { + strength = VCONFKEY_WIFI_STRENGTH_MAX; } + } else { + strength = VCONFKEY_WIFI_STRENGTH_MAX; + } + + if (strength <= 0) strength = 1; + + ret = wifi_is_activated(&wifi_state); + _D("wifi_state : %d", wifi_state); + if(ret != WIFI_ERROR_NONE) { + _E("wifi_is_activated error. ret is [%d]", ret); + } + + switch(wifi_state) { + case WIFI_DEVICE_STATE_ACTIVATED: + show_wifi_transfer_icon(user_data); + show_image_icon(user_data, strength-1); + break; + case WIFI_DEVICE_STATE_DEACTIVATED: + hide_image_icon(); + break; } - hide_image_icon(); + + return; +} + +static void _wifi_connection_state_changed_cb(wifi_connection_state_e state, wifi_ap_h ap, void *user_data) +{ + ret_if(!user_data); + + _wifi_changed_cb(NULL, user_data); + return; } @@ -174,36 +273,56 @@ static int wake_up_cb(void *data) { if(updated_while_lcd_off==0) { - DBG("ICON WAS NOT UPDATED"); return OK; } - indicator_wifi_change_cb(NULL, data); + _wifi_changed_cb(NULL, data); return OK; } +static bool _wifi_init(void) +{ + int ret = -1; + ret = wifi_initialize(); + if (ret != WIFI_ERROR_NONE) { + _E("wifi_initialize is fail : %d", ret); + return FALSE; + } + + return TRUE; +} + +static void _wifi_fini(void) +{ + int ret = -1; + ret = wifi_deinitialize(); + if (ret != WIFI_ERROR_NONE) { + _E("wifi_deinitialize is fail : %d", ret); + } +} + static int register_wifi_module(void *data) { int r = 0, ret = -1; - retif(data == NULL, FAIL, "Invalid parameter!"); + retv_if(!data, 0); set_app_state(data); + _wifi_init(); - ret = vconf_notify_key_changed(VCONFKEY_WIFI_STATE, - indicator_wifi_change_cb, data); - if (ret != OK) { - ERR("Failed to register callback!"); - r = ret; - } + ret = wifi_set_device_state_changed_cb(_wifi_device_state_changed_cb, data); + if (ret != WIFI_ERROR_NONE) r = ret; - ret = vconf_notify_key_changed(VCONFKEY_WIFI_STRENGTH, - indicator_wifi_change_cb, data); - if (ret != OK) { - ERR("Failed to register callback!"); - r = r | ret; - } - indicator_wifi_change_cb(NULL, data); + ret = wifi_set_connection_state_changed_cb(_wifi_connection_state_changed_cb, data); + if (ret != WIFI_ERROR_NONE) r = ret; + + ret = vconf_notify_key_changed(VCONFKEY_WIFI_STRENGTH, _wifi_changed_cb, data); + if (ret != OK) r = r | ret; + + ret = vconf_notify_key_changed(VCONFKEY_WIFI_TRANSFER_STATE, _wifi_changed_cb, data); + if (ret != OK) r = r | ret; + + _wifi_changed_cb(NULL, data); return r; } @@ -212,19 +331,17 @@ static int unregister_wifi_module(void) { int ret; - ret = vconf_ignore_key_changed(VCONFKEY_WIFI_STATE, - indicator_wifi_change_cb); - if (ret != OK) - ERR("Failed to unregister callback!"); - - ret = vconf_ignore_key_changed(VCONFKEY_WIFI_STRENGTH, - indicator_wifi_change_cb); - if (ret != OK) - ERR("Failed to unregister callback!"); + ret = wifi_unset_device_state_changed_cb(); + ret = wifi_unset_connection_state_changed_cb(); + ret = ret | vconf_ignore_key_changed(VCONFKEY_WIFI_STRENGTH, _wifi_changed_cb); + ret = ret | vconf_ignore_key_changed(VCONFKEY_WIFI_TRANSFER_STATE, _wifi_changed_cb); if (wifi_transferring == EINA_TRUE) { wifi_transferring = EINA_FALSE; } - return OK; + _wifi_fini(); + + return ret; } +/* End of file */ diff --git a/daemon/indicator.c b/modules/home/always.c old mode 100755 new mode 100644 similarity index 67% rename from daemon/indicator.c rename to modules/home/always.c index f6ded43..71e5cca --- a/daemon/indicator.c +++ b/modules/home/always.c @@ -1,15 +1,20 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd + * Indicator * - * Licensed under the Flora License, Version 1.1 (the "License"); + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://floralicense.org/license/ + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * */ + + diff --git a/modules/home/home.c b/modules/home/home.c old mode 100755 new mode 100644 index 6ce054d..71e5cca --- a/modules/home/home.c +++ b/modules/home/home.c @@ -1,116 +1,20 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd + * Indicator * - * Licensed under the Flora License, Version 1.1 (the "License"); + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://floralicense.org/license/ + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * */ -#include -#include -#include -#include "common.h" -#include "indicator.h" -#include "indicator_ui.h" -#include "modules.h" -#include "indicator_icon_util.h" -#include "indicator_gui.h" - -#define ICON_PRIORITY INDICATOR_PRIORITY_FIXED5 -#define MODULE_NAME "home" - -static int register_home_module(void *data); -static int unregister_home_module(void); - -Indicator_Icon_Object home[INDICATOR_WIN_MAX] = { -{ - .win_type = INDICATOR_WIN_PORT, - .type = INDICATOR_IMG_ICON, - .name = MODULE_NAME, - .priority = ICON_PRIORITY, - .always_top = EINA_FALSE, - .txt_obj = {0,}, - .img_obj = {0,0,APPTRAY_ICON_WIDTH,APPTRAY_ICON_HEIGHT}, - .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_FIXED, - .exist_in_view = EINA_FALSE, - .init = register_home_module, - .fini = unregister_home_module, -}, -{ - .win_type = INDICATOR_WIN_LAND, - .type = INDICATOR_IMG_ICON, - .name = MODULE_NAME, - .priority = ICON_PRIORITY, - .always_top = EINA_FALSE, - .txt_obj = {0,}, - .img_obj = {0,0,APPTRAY_ICON_WIDTH,APPTRAY_ICON_HEIGHT}, - .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_FIXED, - .exist_in_view = EINA_FALSE, - .init = register_home_module, - .fini = unregister_home_module, -} - -}; - -static const char *icon_path[] = { - "App tray/B03_app_tray.PNG", - "App tray/B03_app_tray_press.PNG", - NULL -}; - -static void set_app_state(void* data) -{ - int i = 0; - - for (i=0 ; i +#include +#include +#include + +#include "common.h" +#include "indicator.h" +#include "main.h" +#include "modules.h" +#include "icon.h" +#include "indicator_gui.h" +#include "util.h" +#include "log.h" + +#define ICON_PRIORITY INDICATOR_PRIORITY_FIXED10 +#define MODULE_NAME "search" + +static int register_search_module(void *data); +static int unregister_search_module(void); +#ifdef _SUPPORT_SCREEN_READER +static int register_search_tts(void *data); +#endif +#define EXPORT_PUBLIC __attribute__ ((visibility ("default"))) + +icon_s search = { + .type = INDICATOR_IMG_ICON, + .name = MODULE_NAME, + .priority = ICON_PRIORITY, + .always_top = EINA_FALSE, + .img_obj = {0,0,FIXED4_ICON_WIDTH,FIXED4_ICON_HEIGHT}, + .obj_exist = EINA_FALSE, + .area = INDICATOR_ICON_AREA_FIXED, + .exist_in_view = EINA_FALSE, + .init = register_search_module, + .fini = unregister_search_module, +#ifdef _SUPPORT_SCREEN_READER + .register_tts = register_search_tts, +#endif +}; + +static const char *icon_path[] = { + "B03_search.png", + "B03_search_press.png", + NULL +}; + + + +static void set_app_state(void* data) +{ + search.ad = data; +} + + + +static void show_image_icon(int index) +{ + search.img_obj.data = icon_path[index]; + icon_show(&search); +} + + + +static void hide_image_icon(void) +{ + icon_hide(&search); +} + + + +EXPORT_PUBLIC void hide_search_icon(void) +{ + hide_image_icon(); +} + + + +EXPORT_PUBLIC void show_search_icon(void) +{ + show_image_icon(0); +} + +static void _handle_search_icon(void* data) +{ + int lock_status = -1; + int ps_mode = -1; + int bHide = 0; + struct appdata *ad = (struct appdata *)data; + + retif(data == NULL, , "Invalid parameter!"); + + vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &lock_status); + vconf_get_int(VCONFKEY_SETAPPL_PSMODE, &ps_mode); + + DBG("_indicator_lock_status_cb!!(%d)(%d)",lock_status,ps_mode); + + if(lock_status==VCONFKEY_IDLE_LOCK || ps_mode == SETTING_PSMODE_EMERGENCY) + { + bHide = 1; + } + else + { + bHide = 0; + } + + if (bHide==0) + { + DBG("_lock_status_cb : show search!"); + show_image_icon(0); + util_signal_emit_by_win(&(ad->win),"indicator.lock.off", "indicator.prog"); + } + else + { + DBG("_lock_status_cb : hide search"); + util_signal_emit_by_win(&(ad->win), "indicator.lock.on", "indicator.prog"); + hide_image_icon(); + } +} + + + +static void _ps_mode_cb(keynode_t *node, void *data) +{ + DBG("Ps mode change"); + _handle_search_icon(data); +} + + + +static void _lock_status_cb(keynode_t *node, void *data) +{ + DBG("lock state change"); + _handle_search_icon(data); +} + + + +static int register_search_module(void *data) +{ + retv_if(!data, 0); + + set_app_state(data); + + vconf_notify_key_changed(VCONFKEY_IDLE_LOCK_STATE, _lock_status_cb, (void *)data); + + vconf_notify_key_changed(VCONFKEY_SETAPPL_PSMODE, _ps_mode_cb, (void *)data); + + _handle_search_icon(data); + return 0; +} + + + +static int unregister_search_module(void) +{ + vconf_ignore_key_changed(VCONFKEY_IDLE_LOCK_STATE, _lock_status_cb); + vconf_ignore_key_changed(VCONFKEY_SETAPPL_PSMODE, _ps_mode_cb); + + return 0; +} + + + +#ifdef _SUPPORT_SCREEN_READER +static void _apptray_access_cb(void *data, Evas_Object *obj, Elm_Object_Item *item) +{ + util_launch_search(data); +} + + + +static char *_access_info_cb(void *data, Evas_Object *obj) +{ + Evas_Object *item = data; + char *tmp = NULL; + char buf[256] = {0,}; + snprintf(buf, sizeof(buf), "%s, %s, %s", _("IDS_IDLE_SK_SMARTSEARCH_SEARCH"),_("IDS_COM_BODY_BUTTON_T_TTS"), _("IDS_IDLE_BODY_STATUS_BAR_ITEM")); + + tmp = strdup(buf); + if (!tmp) return NULL; + return tmp; +} + + + +static int register_search_tts(void *data) +{ + int r = 0, ret = -1; + + retv_if(!data, 0); + + Evas_Object *to = NULL; + Evas_Object *ao = NULL; + struct appdata *ad = data; + + to = (Evas_Object *) edje_object_part_object_get(elm_layout_edje_get(ad->win.layout), "elm.swallow.fixed6.access"); + ao = util_access_object_register(to, ad->win.layout); + util_access_object_info_cb_set(ao,ELM_ACCESS_INFO,_access_info_cb,data); + util_access_object_activate_cb_set(ao,_apptray_access_cb,data); + + return 0; +} +#endif /* _SUPPORT_SCREEN_READER */ +#endif /* _INDICATOR_REMOVE_SEARCH */ diff --git a/modules/information/alarm.c b/modules/information/alarm.c old mode 100755 new mode 100644 index cbfcc38..286e000 --- a/modules/information/alarm.c +++ b/modules/information/alarm.c @@ -1,65 +1,58 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd + * Indicator * - * Licensed under the Flora License, Version 1.1 (the "License"); + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://floralicense.org/license/ + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * */ + #include #include #include #include "common.h" #include "indicator.h" -#include "indicator_ui.h" +#include "main.h" #include "modules.h" -#include "indicator_icon_util.h" +#include "icon.h" -#define ICON_PRIORITY INDICATOR_PRIORITY_SYSTEM_3 +#define ICON_PRIORITY INDICATOR_PRIORITY_SYSTEM_1 #define MODULE_NAME "alarm" +static int bShown = 0; static int register_alarm_module(void *data); static int unregister_alarm_module(void); +#ifdef _SUPPORT_SCREEN_READER +static char *access_info_cb(void *data, Evas_Object *obj); +#endif -Indicator_Icon_Object useralarm[INDICATOR_WIN_MAX] = { -{ - .win_type = INDICATOR_WIN_PORT, +icon_s useralarm = { .type = INDICATOR_IMG_ICON, .name = MODULE_NAME, .priority = ICON_PRIORITY, .always_top = EINA_FALSE, .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, .img_obj = {0,}, .obj_exist = EINA_FALSE, .area = INDICATOR_ICON_AREA_SYSTEM, .init = register_alarm_module, .fini = unregister_alarm_module, -}, -{ - .win_type = INDICATOR_WIN_LAND, - .type = INDICATOR_IMG_ICON, - .name = MODULE_NAME, - .priority = ICON_PRIORITY, - .always_top = EINA_FALSE, - .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, - .img_obj = {0,}, - .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_SYSTEM, - .init = register_alarm_module, - .fini = unregister_alarm_module, -} - +#ifdef _SUPPORT_SCREEN_READER + .tts_enable = EINA_TRUE, + .access_cb = access_info_cb, +#endif }; static char *icon_path[] = { @@ -67,36 +60,39 @@ static char *icon_path[] = { NULL }; + + static void set_app_state(void* data) { - int i = 0; + useralarm.ad = data; +} - for (i=0 ; i 0) { - INFO("ALARM COUNT: %d", status); + DBG("ALARM COUNT: %d", status); show_image_icon(data); return; } - INFO("ALARM COUNT: %d", status); + DBG("ALARM COUNT: %d", status); hide_image_icon(); return; } @@ -119,32 +115,60 @@ static void indicator_alarm_change_cb(keynode_t *node, void *data) return; } + + +#ifdef _SUPPORT_SCREEN_READER +static char *access_info_cb(void *data, Evas_Object *obj) +{ + char *tmp = NULL; + char buf[256] = {0,}; + + int status = 0; + + vconf_get_int(VCONFKEY_ALARM_STATE, &status); + + if(status>0) + { + snprintf(buf, sizeof(buf), "%s, %s, %s", _("IDS_COM_BODY_ALARM"),_("IDS_IDLE_BODY_ICON"),_("IDS_IDLE_BODY_STATUS_BAR_ITEM")); + } + + tmp = strdup(buf); + if (!tmp) return NULL; + return tmp; +} +#endif + + + static int register_alarm_module(void *data) { - int ret; + int ret = -1; retif(data == NULL, FAIL, "Invalid parameter!"); set_app_state(data); + if (ret < 0) + { + ERR("Fail to init alarmdb."); + return FAIL; + } ret = vconf_notify_key_changed(VCONFKEY_ALARM_STATE, - indicator_alarm_change_cb, data); - if (ret != OK) - ERR("Failed to register callback!"); + indicator_alarm_change_cb, data); indicator_alarm_change_cb(NULL, data); return ret; } + + static int unregister_alarm_module(void) { int ret; ret = vconf_ignore_key_changed(VCONFKEY_ALARM_STATE, - indicator_alarm_change_cb); - if (ret != OK) - ERR("Failed to unregister callback!"); + indicator_alarm_change_cb); - return OK; + return ret; } diff --git a/modules/information/earphone.c b/modules/information/earphone.c old mode 100755 new mode 100644 index ce40d81..240cf8c --- a/modules/information/earphone.c +++ b/modules/information/earphone.c @@ -1,9 +1,7 @@ /* - * indicator + * Indicator * - * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: Junghyun Kim Kangwon Lee + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,92 +18,81 @@ */ + #include #include #include +#include #include "common.h" #include "indicator.h" -#include "indicator_ui.h" +#include "main.h" #include "modules.h" -#include "indicator_icon_util.h" +#include "icon.h" #define ICON_PRIORITY INDICATOR_PRIORITY_NOTI_2 #define MODULE_NAME "earphone" #define TIMER_INTERVAL 0.3 +//#define _(str) gettext(str) + static int register_earphone_module(void *data); static int unregister_earphone_module(void); static int wake_up_cb(void *data); -Indicator_Icon_Object earphone[INDICATOR_WIN_MAX] = { -{ - .win_type = INDICATOR_WIN_PORT, +icon_s earphone = { .name = MODULE_NAME, .priority = ICON_PRIORITY, .always_top = EINA_FALSE, .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, .img_obj = {0,}, .obj_exist = EINA_FALSE, .area = INDICATOR_ICON_AREA_NOTI, .init = register_earphone_module, .fini = unregister_earphone_module, .wake_up = wake_up_cb -}, -{ - .win_type = INDICATOR_WIN_LAND, - .name = MODULE_NAME, - .priority = ICON_PRIORITY, - .always_top = EINA_FALSE, - .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, - .img_obj = {0,}, - .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_NOTI, - .init = register_earphone_module, - .fini = unregister_earphone_module, - .wake_up = wake_up_cb -} - }; static const char *icon_path[] = { - "Earphone/B03_Earphone.png", + "Earphone/B03_BT_Headset.png", NULL }; static int updated_while_lcd_off = 0; +static int bShown = 0; + static void set_app_state(void* data) { - int i = 0; - - for (i=0 ; i +#include +#include +#include "common.h" +#include "indicator.h" +#include "icon.h" +#include "modules.h" +#include "main.h" + +#define ICON_PRIORITY INDICATOR_PRIORITY_MINICTRL2 +#define MODULE_NAME "FM_Radio" + +static int register_fm_radio_module(void *data); +static int unregister_fm_radio_module(void); + +icon_s fm_radio = { + .type = INDICATOR_IMG_ICON, + .name = MODULE_NAME, + .priority = ICON_PRIORITY, + .always_top = EINA_FALSE, + .exist_in_view = EINA_FALSE, + .img_obj = {0,}, + .obj_exist = EINA_FALSE, + .area = INDICATOR_ICON_AREA_MINICTRL, + .init = register_fm_radio_module, + .fini = unregister_fm_radio_module +}; + +static char *icon_path[] = { + "Background playing/B03_Backgroundplaying_FMradio.png", + NULL +}; + + + +static void set_app_state(void* data) +{ + fm_radio.ad = data; +} + + + +static void show_image_icon(void *data) +{ + fm_radio.img_obj.data = icon_path[0]; + icon_show(&fm_radio); +} + + + +static void hide_image_icon(void) +{ + icon_hide(&fm_radio); +} + + + +static void indicator_fm_radio_change_cb(keynode_t *node, void *data) +{ + int status = 0; + int ret = -1; + + DBG("indicator_fm_radio_change_cb called!"); + retif(data == NULL, , "Invalid parameter!"); + + if (ret == OK) { + INFO("FM_RADIO state: %d", status); + if (status == 1) + show_image_icon(data); + else + hide_image_icon(); + } + else + { + DBG("Fail to get vconfkey (ret:%d)", ret); + } + return; +} + + + +void hide_fm_radio_icon(void) +{ + hide_image_icon(); +} + + + +static int register_fm_radio_module(void *data) +{ + int ret = -1; + + DBG("register_fm_radio_module called!"); + retif(data == NULL, FAIL, "Invalid parameter!"); + + set_app_state(data); + + indicator_fm_radio_change_cb(NULL, data); + + return ret; +} + + + +static int unregister_fm_radio_module(void) +{ + DBG("unregister_fm_radio_module called!"); + + return OK; +} diff --git a/modules/information/lowmem.c b/modules/information/lowmem.c new file mode 100644 index 0000000..6669a3d --- /dev/null +++ b/modules/information/lowmem.c @@ -0,0 +1,286 @@ +/* + * Indicator + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + + +#include +#include +#include +#include "common.h" +#include "indicator.h" +#include "main.h" +#include "modules.h" +#include "icon.h" +#include +#include + +#define BUS_NAME "org.tizen.system.deviced" +#define PATH_NAME "/Org/Tizen/System/DeviceD/Lowmem" +#define INTERFACE_NAME BUS_NAME".lowmem" +#define MEMBER_NAME "ChangeState" + +static E_DBus_Connection *edbus_conn=NULL; +static E_DBus_Signal_Handler *edbus_handler=NULL; + +#define ICON_PRIORITY INDICATOR_PRIORITY_NOTI_2 +#define MODULE_NAME "lowmem" +#define TIMER_INTERVAL 0.3 + +static int register_lowmem_module(void *data); +static int unregister_lowmem_module(void); +static int wake_up_cb(void *data); +void check_storage(); +void get_internal_storage_status(double *total, double *avail); + +icon_s lowmem = { + .name = MODULE_NAME, + .priority = ICON_PRIORITY, + .always_top = EINA_FALSE, + .exist_in_view = EINA_FALSE, + .img_obj = {0,}, + .obj_exist = EINA_FALSE, + .area = INDICATOR_ICON_AREA_NOTI, + .init = register_lowmem_module, + .fini = unregister_lowmem_module, + .wake_up = wake_up_cb +}; + +static const char *icon_path[] = { + "Storage/B03_storage_memoryfull.png", + NULL +}; + + +static int updated_while_lcd_off = 0; +static int bShown = 0; + + + +static void set_app_state(void* data) +{ + lowmem.ad = data; +} + + + +static void show_image_icon(void) +{ + if(bShown == 1) + { + return; + } + + lowmem.img_obj.data = icon_path[0]; + icon_show(&lowmem); + + bShown = 1; +} + +static void hide_image_icon(void) +{ + icon_hide(&lowmem); + + bShown = 0; +} + + + +static void indicator_lowmem_pm_state_change_cb(keynode_t *node, void *data) +{ +} + + + +static int wake_up_cb(void *data) +{ + if(updated_while_lcd_off==0 && lowmem.obj_exist == EINA_FALSE) + { + return OK; + } + + return OK; +} + + + +static void on_changed_receive(void *data, DBusMessage *msg) +{ + DBusError err; + int response; + int r; + + DBG("edbus signal Received"); + + r = dbus_message_is_signal(msg, INTERFACE_NAME, MEMBER_NAME); + if (!r) { + ERR("dbus_message_is_signal error"); + return; + } + + SECURE_ERR("%s - %s", INTERFACE_NAME, MEMBER_NAME); + + dbus_error_init(&err); + r = dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &response, DBUS_TYPE_INVALID); + if (!r) { + ERR("dbus_message_get_args error"); + return; + } + + SECURE_ERR("receive data : %d", response); + + if(response==1) + { + show_image_icon(); + } + else + { + hide_image_icon(); + } +} + + + +static void edbus_cleaner(void) +{ + if(edbus_conn==NULL) + { + DBG("already unregistered"); + return; + } + + if (edbus_handler) + { + e_dbus_signal_handler_del(edbus_conn, edbus_handler); + edbus_handler = NULL; + } + if (edbus_conn) + { + e_dbus_connection_close(edbus_conn); + edbus_conn = NULL; + } + e_dbus_shutdown(); +} + + + +static int edbus_listener(void) +{ + if(edbus_conn!=NULL) + { + DBG("alreay exist"); + return -1; + } + // Init + e_dbus_init(); + + edbus_conn = e_dbus_bus_get(DBUS_BUS_SYSTEM); + if (edbus_conn == NULL) { + ERR("e_dbus_bus_get error"); + return -1; + } + edbus_handler = e_dbus_signal_handler_add(edbus_conn, NULL, PATH_NAME, + INTERFACE_NAME, MEMBER_NAME, + on_changed_receive, NULL); + if (edbus_handler == NULL) { + ERR("e_dbus_signal_handler_add error"); + return -1; + } + DBG("dbus listener run"); + return 0; + +} + + + +static int register_lowmem_module(void *data) +{ + int ret; + + retif(data == NULL, FAIL, "Invalid parameter!"); + + set_app_state(data); + + ret = vconf_notify_key_changed(VCONFKEY_PM_STATE, + indicator_lowmem_pm_state_change_cb, data); + + check_storage(); + edbus_listener(); + + return ret; +} + + + +static int unregister_lowmem_module(void) +{ + int ret; + + + ret = vconf_ignore_key_changed(VCONFKEY_PM_STATE, + indicator_lowmem_pm_state_change_cb); + + edbus_cleaner(); + + return ret; +} + + + +void check_storage() +{ + double total = 0.0; + double available = 0.0; + double percentage = 0.0; + get_internal_storage_status(&total, &available); + percentage = (available/total) * 100.0; + DBG("check_storage : Total : %lf, Available : %lf Percentage : %lf", total, available, percentage); + if(percentage <= 5.0) + { + show_image_icon(); + } +} + + + +void get_internal_storage_status(double *total, double *avail) +{ + int ret; + double tmp_total; + struct statvfs s; + const double sz_32G = 32. * 1073741824; + const double sz_16G = 16. * 1073741824; + const double sz_8G = 8. * 1073741824; + + retif(total == NULL, , "Invalid parameter!"); + retif(avail == NULL, , "Invalid parameter!"); + + ret = statvfs("/opt/usr", &s); + if (0 == ret) + { + tmp_total = (double)s.f_frsize * s.f_blocks; + *avail = (double)s.f_bsize * s.f_bavail; + + if (sz_16G < tmp_total) + *total = sz_32G; + else if (sz_8G < tmp_total) + *total = sz_16G; + else + *total = sz_8G; + } +} diff --git a/modules/information/mmc.c b/modules/information/mmc.c old mode 100755 new mode 100644 index cbf1d15..3ae6172 --- a/modules/information/mmc.c +++ b/modules/information/mmc.c @@ -1,29 +1,34 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd + * Indicator * - * Licensed under the Flora License, Version 1.1 (the "License"); + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://floralicense.org/license/ + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * */ + + #include #include #include #include "common.h" #include "indicator.h" -#include "indicator_ui.h" +#include "main.h" #include "modules.h" -#include "indicator_icon_util.h" +#include "icon.h" -#define ICON_PRIORITY INDICATOR_PRIORITY_NOTI_2 +#define ICON_PRIORITY INDICATOR_PRIORITY_SYSTEM_3 #define MODULE_NAME "mmc" #define TIMER_INTERVAL 0.3 @@ -31,137 +36,125 @@ static int register_mmc_module(void *data); static int unregister_mmc_module(void); static int wake_up_cb(void *data); -Indicator_Icon_Object mmc[INDICATOR_WIN_MAX] = { -{ - .win_type = INDICATOR_WIN_PORT, - .name = MODULE_NAME, - .priority = ICON_PRIORITY, - .always_top = EINA_FALSE, - .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, - .img_obj = {0,}, - .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_NOTI, - .init = register_mmc_module, - .fini = unregister_mmc_module, - .wake_up = wake_up_cb -}, -{ - .win_type = INDICATOR_WIN_LAND, +icon_s mmc = { .name = MODULE_NAME, .priority = ICON_PRIORITY, .always_top = EINA_FALSE, .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, .img_obj = {0,}, .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_NOTI, + .area = INDICATOR_ICON_AREA_SYSTEM, .init = register_mmc_module, .fini = unregister_mmc_module, .wake_up = wake_up_cb -} - }; static const char *icon_path[] = { - "Background playing/B03_Memorycard.png", + "Storage/B03_storage_t_flash.png", NULL }; static int updated_while_lcd_off = 0; +static int bShown = 0; + + static void set_app_state(void* data) { - int i = 0; - - for (i=0 ; i +#include +#include +#include +#include + +#include "common.h" +#include "indicator.h" +#include "icon.h" +#include "modules.h" +#include "main.h" + +#define ICON_PRIORITY INDICATOR_PRIORITY_NOTI_MIN +#define MODULE_NAME "more_notify" + +static int register_more_notify_module(void *data); +static int unregister_more_notify_module(void); +static int wake_up_cb(void *data); + +static int updated_while_lcd_off = 0; + +static int bShow = 0; + +icon_s more_notify = { + .name = MODULE_NAME, + .priority = ICON_PRIORITY, + .always_top = EINA_TRUE, + .exist_in_view = EINA_FALSE, + .img_obj = {0,}, + .obj_exist = EINA_FALSE, + .area = INDICATOR_ICON_AREA_NOTI, + .init = register_more_notify_module, + .fini = unregister_more_notify_module, + .wake_up = wake_up_cb +}; + +enum { + MUSIC_PLAY, + MUSIC_PAUSED, +}; + +static char *icon_path[] = { + "Notify/B03_notify_more.png", + NULL +}; + + + +static void set_app_state(void* data) +{ + more_notify.ad = data; +} + + + +static void show_image_icon_by_win(win_info* win) +{ + more_notify.img_obj.data = icon_path[0]; + icon_show(&more_notify); +} + + + +static void hide_image_icon_by_win(win_info* win) +{ + icon_hide(&more_notify); +} + + + +static void _handle_more_notify_icon(win_info* win,int val) +{ + retif(win == NULL, , "Invalid parameter!"); + + if(bShow == val) + { + return; + } + + bShow = val; + + DBG("val %d", val); + + if(val==1) + { + show_image_icon_by_win(win); + DBG("_handle_more_notify_show"); + } + else + { + hide_image_icon_by_win(win); + DBG("_handle_more_notify_hide"); + } +} + + + +static void indicator_more_notify_change_cb(const char *key, void *data) +{ + struct appdata *ad = (struct appdata *)(more_notify.ad); + int val = 0; + + retif(data == NULL, , "Invalid parameter!"); + + DBG("indicator_more_notify_change_cb"); + win_info* win = NULL; + + preference_get_int(key, &val); + + if (strcmp(key, INDICATOR_SHOW_MORE_NOTI_PORT) == 0) { + win = &(ad->win); + } else { + SECURE_ERR("invalid val %s",key); + return; + } + + _handle_more_notify_icon(win,val); + + return; +} + + + +static int wake_up_cb(void *data) +{ + if(updated_while_lcd_off==0) + { + return OK; + } + + indicator_more_notify_change_cb(NULL, data); + return OK; +} + + + +static int register_more_notify_module(void *data) +{ + + retif(data == NULL, FAIL, "Invalid parameter!"); + + set_app_state(data); + + preference_set_changed_cb(INDICATOR_SHOW_MORE_NOTI_PORT, indicator_more_notify_change_cb, data); + + return OK; +} + + + +static int unregister_more_notify_module(void) +{ + preference_unset_changed_cb(INDICATOR_SHOW_MORE_NOTI_PORT); + + return OK; +} diff --git a/modules/information/mp3_playing.c b/modules/information/mp3_playing.c old mode 100755 new mode 100644 index 8d05ba8..119ddf9 --- a/modules/information/mp3_playing.c +++ b/modules/information/mp3_playing.c @@ -1,74 +1,61 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd + * Indicator * - * Licensed under the Flora License, Version 1.1 (the "License"); + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://floralicense.org/license/ + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * */ + #include #include #include #include + #include "common.h" -#include "indicator.h" -#include "indicator_icon_util.h" #include "modules.h" -#include "indicator_ui.h" +#include "indicator.h" +#include "main.h" +#include "util.h" +#include "icon.h" -#define ICON_PRIORITY INDICATOR_PRIORITY_NOTI_1 +#define ICON_PRIORITY INDICATOR_PRIORITY_MINICTRL2 #define MODULE_NAME "MP3_PLAY" #define MINICONTROL_NAME "[musicplayer-mini]" +#define MUSIC_STATUS_FILE_PATH "/opt/usr/apps/org.tizen.music-player-lite/shared/data/MusicPlayStatus.ini" +#define MAX_NAM_LEN 640 +#define MP_APP_ID "org.tizen.music-player-lite" static int register_mp3_play_module(void *data); static int unregister_mp3_play_module(void); -static int mctrl_monitor_cb(int action, const char *name, void *data); static int wake_up_cb(void *data); -static int mp_registerd = 0; static int updated_while_lcd_off = 0; +static Ecore_File_Monitor *pFileMonitor = NULL; - -Indicator_Icon_Object mp3_play[INDICATOR_WIN_MAX] = { -{ - .win_type = INDICATOR_WIN_PORT, - .name = MODULE_NAME, - .priority = ICON_PRIORITY, - .always_top = EINA_TRUE, - .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, - .img_obj = {0,}, - .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_NOTI, - .init = register_mp3_play_module, - .fini = unregister_mp3_play_module, - .minictrl_control = mctrl_monitor_cb, - .wake_up = wake_up_cb -}, -{ - .win_type = INDICATOR_WIN_LAND, +icon_s mp3_play = { .name = MODULE_NAME, .priority = ICON_PRIORITY, - .always_top = EINA_TRUE, + .always_top = EINA_FALSE, .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, .img_obj = {0,}, .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_NOTI, + .area = INDICATOR_ICON_AREA_MINICTRL, .init = register_mp3_play_module, .fini = unregister_mp3_play_module, - .minictrl_control = mctrl_monitor_cb, .wake_up = wake_up_cb -} }; enum { @@ -77,76 +64,101 @@ enum { }; static char *icon_path[] = { - "Background playing/B03_Backgroundplaying_MP3playing.png", - "Background playing/B03_Backgroundplaying_Music_paused.png", + "Background playing/B03_Backgroundplaying_music_playing.png", + "Background playing/B03_Backgroundplaying_music_paused.png", NULL }; +static int prevIndex = -1; + + + static void set_app_state(void* data) { - int i = 0; - - for (i=0 ; i #include #include #include +#include +//#include +#include +#include + #include "common.h" #include "indicator.h" -#include "indicator_icon_util.h" -#include "indicator_ui.h" -#include "indicator_icon_list.h" +#include "main.h" +#include "box.h" +#include "icon.h" +#include "list.h" +#include "util.h" +#include "log.h" #define ICON_PRIORITY INDICATOR_PRIORITY_NOTI_2 #define MODULE_NAME "notification" +#define MSG_SERVER "/usr/bin/msg-server" +#define MSG_ICON "/usr/share/icons/default/small/org.tizen.message-lite.png" + +static int noti_ready = 0; +static Eina_List *status_list; + static int register_noti_module(void *data); static int unregister_noti_module(void); -Indicator_Icon_Object noti[INDICATOR_WIN_MAX] = { -{ - .win_type = INDICATOR_WIN_PORT, - .type = INDICATOR_IMG_ICON, - .name = MODULE_NAME, - .priority = ICON_PRIORITY, - .always_top = EINA_FALSE, - .txt_obj = {0,}, - .img_obj = {0,}, - .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_NOTI, - .exist_in_view = EINA_FALSE, - .init = register_noti_module, - .fini = unregister_noti_module -}, -{ - .win_type = INDICATOR_WIN_LAND, +icon_s noti = { .type = INDICATOR_IMG_ICON, .name = MODULE_NAME, .priority = ICON_PRIORITY, .always_top = EINA_FALSE, - .txt_obj = {0,}, .img_obj = {0,}, .obj_exist = EINA_FALSE, .area = INDICATOR_ICON_AREA_NOTI, .exist_in_view = EINA_FALSE, .init = register_noti_module, .fini = unregister_noti_module -} }; struct noti_status { notification_h noti; int type; int cnt; - Indicator_Icon_Object *icon[INDICATOR_WIN_MAX]; + icon_s *icon; }; -static Eina_List *status_list; static void set_app_state(void* data) { - int i = 0; - - for (i=0 ; iicon[i]->img_obj.data = strdup(icon_path); - indicator_util_icon_show(data->icon[i]); - } + DBG("%s",icon_path); + + data->icon->img_obj.data = strdup(icon_path); + icon_show(data->icon); } + + static void hide_image_icon(struct noti_status *data) { - int i = 0; retif(data == NULL, , "Invalid parameter!"); - for(i=0 ; iicon[i]); - } + + icon_hide(data->icon); } + + static void free_image_icon(struct noti_status *data) { - int i = 0; retif(data == NULL, , "Invalid parameter!"); - for(i=0 ; iicon[i]); - if (data->icon[i]) - { - if (data->icon[i]->img_obj.data) - { - free(data->icon[i]->img_obj.data); - } + list_remove_icon(data->icon); - if (data->icon[i]->name) - { - free(data->icon[i]->name); - } + if (data->icon) + { + if (data->icon->img_obj.data) + { + free((char*)data->icon->img_obj.data); + data->icon->img_obj.data = NULL; + } - free(data->icon[i]); + if (data->icon->name) + { + free(data->icon->name); + data->icon->name = NULL; } + free(data->icon); + data->icon = NULL; } + if(data!=NULL) { - INFO("noti data free!"); free(data); data = NULL; } } + + static void insert_icon_list(struct noti_status *data) { - int i = 0; retif(data == NULL, , "Invalid parameter!"); - for(i=0 ; iicon[i]); + + list_insert_icon(data->icon); +} + + + +char* __indicator_ui_get_pkginfo_icon(const char *pkgid) +{ + int ret = 0; + char *icon_path = NULL; + char *icon_ret = NULL; + retif(pkgid == NULL, NULL, "invalid parameter"); + + pkgmgrinfo_appinfo_h appinfo_h = NULL; + + ret = pkgmgrinfo_appinfo_get_appinfo(pkgid, &appinfo_h); + if (ret < 0) { + ERR("pkgmgrinfo_appinfo_get_appinfo is failed %d %s", ret,pkgid); } + + /* Icon path */ + ret = pkgmgrinfo_appinfo_get_icon(appinfo_h, &icon_path); + + if (ret < 0) { + ERR("pkgmgrinfo_appinfo_get_icon is failed %d", ret); + } + if(icon_path) { + icon_ret = (char*)strdup(icon_path); + } + if (appinfo_h) { + pkgmgrinfo_appinfo_destroy_appinfo(appinfo_h); + } + + return icon_ret; } + + static void show_image_icon(struct noti_status *data) { retif(data == NULL, , "Invalid parameter!"); - char *icon_path; + char* icon_path=NULL; + notification_h noti = NULL; if (data->noti) { noti = data->noti; if (noti) { notification_get_image(noti, NOTIFICATION_IMAGE_TYPE_ICON_FOR_INDICATOR, &icon_path); - if(icon_path == NULL) - { - DBG("no indicator icon"); - notification_get_icon(noti, &icon_path); - } - DBG("Get Path of Notication %s : %s",data->icon[0]->name, icon_path); - if (icon_path == NULL - || !ecore_file_exists(icon_path)) + + if (icon_path == NULL||!ecore_file_exists(icon_path)) { - int i = 0; - for(i=0 ; iicon[i]->img_obj.data = NULL; + show_icon_with_path(data, icon_path); + } + else + { + notification_get_image(noti, NOTIFICATION_IMAGE_TYPE_ICON, &icon_path); + + if (icon_path == NULL||!ecore_file_exists(icon_path)) + { + char* pkgname = NULL; + char* icon_path_second=NULL; + notification_get_pkgname(noti, &pkgname); + icon_path_second = __indicator_ui_get_pkginfo_icon(pkgname); + + if(icon_path_second==NULL || !ecore_file_exists(icon_path_second)) + { + data->icon->img_obj.data = NULL; + } + else + { + show_icon_with_path(data, icon_path_second); + } + + if(icon_path_second!=NULL) + free(icon_path_second); + } + else + { + show_icon_with_path(data, icon_path); + } } } else @@ -178,12 +227,15 @@ static void show_image_icon(struct noti_status *data) } } } + } + + static void show_image_icon_all( void ) { - Eina_List *l; - struct noti_status *data; + Eina_List *l = NULL; + struct noti_status *data = NULL; EINA_LIST_REVERSE_FOREACH(status_list, l, data) { if (data) { @@ -193,41 +245,39 @@ static void show_image_icon_all( void ) } + static void _icon_add(struct noti_status *noti_data, const char *name, void *data) { - int i = 0; - DBG("noti_data %x",noti_data); retif(noti_data == NULL || data == NULL, , "Invalid parameter!"); - for (i=0 ; iwin_type = i; - obj->type = INDICATOR_IMG_ICON; - obj->name = strdup(name); - obj->priority = ICON_PRIORITY; - obj->always_top = EINA_FALSE; - obj->ad = data; - obj->area = INDICATOR_ICON_AREA_NOTI; - obj->exist_in_view = EINA_FALSE; - - noti_data->icon[i] = obj; - } + icon_s *obj = NULL; + obj = calloc(1, sizeof(icon_s)); + + if (obj) { + memset(obj, 0, sizeof(icon_s)); + obj->type = INDICATOR_IMG_ICON; + obj->name = strdup(name); + obj->priority = ICON_PRIORITY; + obj->always_top = EINA_FALSE; + obj->ad = data; + obj->area = INDICATOR_ICON_AREA_NOTI; + obj->exist_in_view = EINA_FALSE; + + noti_data->icon = obj; } return; } + + static void _remove_all_noti(void) { - Eina_List *l; - struct noti_status *n_data; + Eina_List *l = NULL; + struct noti_status *n_data = NULL; + + /* Clear List and objects in list */ EINA_LIST_FOREACH(status_list, l, n_data) { - DBG("Clear Status List : %s", n_data->icon[0]->name); hide_image_icon(n_data); free_image_icon(n_data); status_list = eina_list_remove_list(status_list, l); @@ -236,6 +286,186 @@ static void _remove_all_noti(void) } + + +static int _is_exist_by_privid(const char* privid) +{ + Eina_List *l = NULL; + struct noti_status *n_data = NULL; + retif(privid == NULL ,0 , "Invalid parameter!"); + + /* Clear List and objects in list */ + EINA_LIST_FOREACH(status_list, l, n_data) { + if (!strcmp(n_data->icon->name, privid)) + { + return EINA_TRUE; + break; + } + } + return EINA_FALSE; +} + + + +static int _indicator_noti_display_check(notification_h noti) +{ + int applist = 0; + int noti_ret = 0; + + noti_ret = notification_get_display_applist(noti, &applist); + if (noti_ret != NOTIFICATION_ERROR_NONE) { + return 0; + } + + if (!(applist & NOTIFICATION_DISPLAY_APP_INDICATOR)) + { + return 0; + } + return 1; +} + + + +static void _remove_noti_by_privid(int priv_id) +{ + Eina_List *l = NULL; + struct noti_status *n_data = NULL; + char priv_id_str[256] = {0,}; + + snprintf(priv_id_str,sizeof(priv_id_str),"%d",priv_id); + + EINA_LIST_FOREACH(status_list, l, n_data) { + + if (strcmp(n_data->icon->name, priv_id_str)==0) + { + DBG("remove %s", priv_id_str); + status_list = eina_list_remove(status_list, n_data); + hide_image_icon(n_data); + free_image_icon(n_data); + break; + } + } +} + + + +static void _insert_noti_by_privid(notification_h noti,void* data) +{ + int exist = 0; + struct noti_status *status = NULL; + int prev_id = -1; + char* pkgname = NULL; + char prev_id_str[256] = {0,}; + + retif(noti == NULL , , "Invalid parameter!"); + + notification_get_pkgname(noti, &pkgname); + notification_get_id(noti,NULL,&prev_id); + + if(_indicator_noti_display_check(noti)==0) + { + return ; + } + + snprintf(prev_id_str,sizeof(prev_id_str),"%d",prev_id); + + exist = _is_exist_by_privid(prev_id_str); + + if (exist != EINA_TRUE) { + DBG("Make New Event Icon : %s %s", pkgname,prev_id_str); + status = calloc(1, sizeof(struct noti_status)); + status->type = 0; + _icon_add(status,prev_id_str, data); + status->noti = noti; + insert_icon_list(status); + status_list = eina_list_append(status_list, status); + show_image_icon(status); + } + +} + + + +static void _update_noti_by_privid(notification_h noti) +{ + Eina_List *l = NULL; + struct noti_status *n_data = NULL; + int priv_id = -1; + char priv_id_str[256] = {0,}; + char* pkgname = NULL; + + retif(noti == NULL , , "Invalid parameter!"); + + notification_get_pkgname(noti, &pkgname); + notification_get_id(noti,NULL,&priv_id); + + if(_indicator_noti_display_check(noti)==0) + { + return ; + } + + snprintf(priv_id_str,sizeof(priv_id_str),"%d",priv_id); + + char* indicator_path = NULL; + char* icon_path = NULL; + notification_get_image(noti, NOTIFICATION_IMAGE_TYPE_ICON_FOR_INDICATOR, &indicator_path); + if(indicator_path==NULL||!ecore_file_exists(indicator_path)) + { + char* noti_path = NULL; + notification_get_image(noti, NOTIFICATION_IMAGE_TYPE_ICON, ¬i_path); + + if (noti_path == NULL||!ecore_file_exists(noti_path)) + { + char* pkgname = NULL; + char* icon_path_second=NULL; + notification_get_pkgname(noti, &pkgname); + icon_path_second = __indicator_ui_get_pkginfo_icon(pkgname); + if(icon_path_second!=NULL) + icon_path = strdup(icon_path_second); + if(icon_path_second!=NULL) + free(icon_path_second); + } + else + { + icon_path = strdup(noti_path); + } + } + else + { + icon_path = strdup(indicator_path); + } + + EINA_LIST_FOREACH(status_list, l, n_data) { + + if (strcmp(n_data->icon->name, priv_id_str)==0) + { + DBG("Update Event Icon : %s %s, %s", priv_id_str,pkgname,icon_path); + if(icon_path!=NULL) + { + if(n_data->icon->img_obj.data!=NULL) + { + if(strcmp(n_data->icon->img_obj.data,icon_path)==0) + { + DBG("same icon with exsting noti"); + goto __CATCH; + } + } + } + n_data->noti = noti; + show_image_icon(n_data); + } + } +__CATCH: + if(icon_path!=NULL) + { + free(icon_path); + icon_path = NULL; + } + return; +} + + + static void _change_icon_status(void *data, notification_list_h noti_list) { int new_cnt = 0; @@ -244,66 +474,53 @@ static void _change_icon_status(void *data, notification_list_h noti_list) struct noti_status *n_data = NULL; int noti_count = 0, ongoing_count = 0; - notification_get_count(NOTIFICATION_TYPE_NOTI, NULL, - NOTIFICATION_GROUP_ID_NONE, NOTIFICATION_PRIV_ID_NONE, - ¬i_count); - notification_get_count(NOTIFICATION_TYPE_ONGOING, NULL, - NOTIFICATION_GROUP_ID_NONE, NOTIFICATION_PRIV_ID_NONE, - &ongoing_count); + /* TODO: 2014/07/16 notification_get_count will be deprecated. + If this function is using, use another solution. */ new_cnt = noti_count + ongoing_count; - retif(noti_list == NULL, , "Invalid parameter!"); + ret_if(!noti_list); + /* Clear List and objects in list */ EINA_LIST_FOREACH(status_list, l, n_data) { - DBG("Clear Status List : %s", n_data->icon[0]->name); hide_image_icon(n_data); free_image_icon(n_data); status_list = eina_list_remove_list(status_list, l); } eina_list_free(status_list); - while (noti_list != NULL) { + while (noti_list) { char *pkgname = NULL; - Eina_List *l = NULL; - struct noti_status *n_data = NULL; struct noti_status *status = NULL; Eina_Bool status_exist = EINA_FALSE; notification_error_e noti_ret = NOTIFICATION_ERROR_NONE; int applist; + int prev_id = -1; + char prev_id_str[256] = {0,}; noti = notification_list_get_data(noti_list); noti_list = notification_list_get_next(noti_list); noti_ret = notification_get_display_applist(noti, &applist); - if (noti_ret != NOTIFICATION_ERROR_NONE) { - INFO("Cannot Get display app of notication! : %p ", - noti); - continue; - } - if (!(applist & NOTIFICATION_DISPLAY_APP_INDICATOR)) - continue; + if (noti_ret != NOTIFICATION_ERROR_NONE) continue; + if (!(applist & NOTIFICATION_DISPLAY_APP_INDICATOR)) continue; noti_ret = notification_get_pkgname(noti, &pkgname); + noti_ret = notification_get_id(noti, NULL, &prev_id); + snprintf(prev_id_str,sizeof(prev_id_str),"%d",prev_id); - if (noti_ret != NOTIFICATION_ERROR_NONE) - DBG("Cannot Get pkgname of notication! : %p %p", - noti, pkgname); - else { - EINA_LIST_FOREACH(status_list, l, n_data) { - if (!strcmp(n_data->icon[0]->name, pkgname)) { - DBG("%s is already existed", pkgname); - status_exist = EINA_TRUE; - break; - } - } + if (noti_ret != NOTIFICATION_ERROR_NONE) { + _D("Cannot Get pkgname of notication! : %p %p", noti, pkgname); + } else { + status_exist = _is_exist_by_privid(prev_id_str); if (status_exist != EINA_TRUE) { - DBG("Make New Event Icon : %s", pkgname); status = calloc(1, sizeof(struct noti_status)); + ret_if(!status); + status->type = 0; status->cnt = new_cnt; - _icon_add(status,pkgname, data); + _icon_add(status,prev_id_str, data); status->noti = noti; insert_icon_list(status); status_list = eina_list_append(status_list, status); @@ -314,24 +531,23 @@ static void _change_icon_status(void *data, notification_list_h noti_list) show_image_icon_all(); } + + void update_noti_module_new(void *data, notification_type_e type) { notification_list_h list = NULL; notification_list_h noti_list_head = NULL; notification_error_e noti_err = NOTIFICATION_ERROR_NONE; - int get_event_count = indicator_util_max_visible_event_count(INDICATOR_WIN_LAND); + int get_event_count = box_get_max_count_in_non_fixed_list(); retif(data == NULL, , "Invalid parameter!"); - INFO("update_noti_module_new %d", type); - - noti_err = notification_get_list(NOTIFICATION_TYPE_NONE, - get_event_count, &list); + /* Get ongoing + noti count */ + noti_err = notification_get_list(NOTIFICATION_TYPE_NONE, get_event_count, &list); noti_list_head = list; if (noti_err != NOTIFICATION_ERROR_NONE || list == NULL) { - INFO("update_noti_module_new %d %x", noti_err, list); _remove_all_noti(); notification_free_list(noti_list_head); return; @@ -342,96 +558,115 @@ void update_noti_module_new(void *data, notification_type_e type) notification_free_list(noti_list_head); } - -static int _indicator_check_first_start(void) +static void _indicator_noti_detailed_changed_cb(void *data, notification_type_e type, notification_op *op_list, int num_op) { - int status = 0; - int ret = 0; + int i =0; + int op_type = 0; + int priv_id = 0; - ret = vconf_get_bool(VCONFKEY_INDICATOR_STARTED, &status); - if (ret) { - INFO("fail to get %s", VCONFKEY_INDICATOR_STARTED); - ret = vconf_set_bool(VCONFKEY_INDICATOR_STARTED, 1); - INFO("set : %s, result : %d", VCONFKEY_INDICATOR_STARTED, ret); + notification_h noti_new = NULL; + + if(num_op<0) + { + ERR("invalid parameter %d",num_op); + return; } - if (status) - return 0; + for (i = 0; i < num_op; i++) + { + if(noti_ready==0) + { + notification_op_get_data(op_list + i, NOTIFICATION_OP_DATA_TYPE, &op_type); + if(op_type ==NOTIFICATION_OP_SERVICE_READY) + { + noti_ready = 1; + DBG("noti ready"); + update_noti_module_new(data,type); + } + } + else + { + notification_op_get_data(op_list + i, NOTIFICATION_OP_DATA_TYPE, &op_type); + notification_op_get_data(op_list + i, NOTIFICATION_OP_DATA_PRIV_ID, &priv_id); + notification_op_get_data(op_list + i, NOTIFICATION_OP_DATA_NOTI, ¬i_new); - return 1; -} + if(type!=-1) + { + switch(op_type) + { + case NOTIFICATION_OP_INSERT: + _insert_noti_by_privid(noti_new,data); + break; + case NOTIFICATION_OP_UPDATE: + _update_noti_by_privid(noti_new); + break; + case NOTIFICATION_OP_DELETE: + _remove_noti_by_privid(priv_id); + break; + default: + break; + } + } + } -static void _indicator_noti_delete_volatile_data(void) -{ - notification_list_h noti_list = NULL; - notification_list_h noti_list_head = NULL; - notification_h noti = NULL; - int property = 0; + } +} - notification_get_grouping_list(NOTIFICATION_TYPE_NONE, -1, ¬i_list); - noti_list_head = noti_list; - while (noti_list != NULL) { - noti = notification_list_get_data(noti_list); - notification_get_property(noti, &property); +static void indicator_noti_sim_slot_cb(keynode_t *node, void *data) +{ + int status = 0; + int ret; - if (property & NOTIFICATION_PROP_VOLATILE_DISPLAY) { - notification_set_property(noti, - property | - NOTIFICATION_PROP_DISABLE_UPDATE_ON_DELETE); - notification_delete(noti); - } + retif(data == NULL, , "Invalid parameter!"); - noti_list = notification_list_get_next(noti_list); + ret = vconf_get_int(VCONFKEY_TELEPHONY_SIM_SLOT, &status); + if (ret == OK) + { + update_noti_module_new(data,NOTIFICATION_TYPE_NONE); } - - notification_free_list(noti_list_head); - - notification_update(NULL); + return; } + static int register_noti_module(void *data) { retif(data == NULL, FAIL, "Invalid parameter!"); - notification_error_e ret = NOTIFICATION_ERROR_NONE; - int is_first = 0; + static int bRegisterd = 0; set_app_state(data); - is_first = _indicator_check_first_start(); + if(bRegisterd==0) { - notifiation_clear(NOTIFICATION_TYPE_ONGOING); - _indicator_noti_delete_volatile_data(); + notification_register_detailed_changed_cb(_indicator_noti_detailed_changed_cb, data); + bRegisterd = 1; } - ret = notification_resister_changed_cb(update_noti_module_new, data); - - if (ret != NOTIFICATION_ERROR_NONE) - DBG("Fail to Register notification_resister_changed_cb!"); - - update_noti_module_new(data, NOTIFICATION_TYPE_NOTI); + vconf_notify_key_changed(VCONFKEY_TELEPHONY_SIM_SLOT, indicator_noti_sim_slot_cb, data); return OK; } + + static int unregister_noti_module(void) { - Eina_List *l; + Eina_List *l = NULL; struct noti_status *data = NULL; - notification_error_e ret = NOTIFICATION_ERROR_NONE; - - ret = notification_unresister_changed_cb(update_noti_module_new); - if (ret != NOTIFICATION_ERROR_NONE) - DBG("Fail to unregister notification_resister_changed_cb!"); + notification_unregister_detailed_changed_cb(_indicator_noti_detailed_changed_cb, noti.ad); EINA_LIST_FOREACH(status_list, l, data) { - free_image_icon(data); - status_list = eina_list_remove_list(status_list, l); + if(data!=NULL) + { + free_image_icon(data); + status_list = eina_list_remove_list(status_list, l); + } } + vconf_ignore_key_changed(VCONFKEY_TELEPHONY_SIM_SLOT, indicator_noti_sim_slot_cb); eina_list_free(status_list); return OK; diff --git a/modules/information/video_play.c b/modules/information/video_play.c new file mode 100644 index 0000000..d2457f3 --- /dev/null +++ b/modules/information/video_play.c @@ -0,0 +1,161 @@ +/* + * Indicator + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + + +#include +#include +#include +#include "common.h" +#include "indicator.h" +#include "icon.h" +#include "modules.h" +#include "main.h" + +#define ICON_PRIORITY INDICATOR_PRIORITY_NOTI_1 +#define MODULE_NAME "VIDEO_PLAY" + +static int register_video_play_module(void *data); +static int unregister_video_play_module(void); +static int wake_up_cb(void *data); + +static int updated_while_lcd_off = 0; + + +#define VCONF_VIDEO_PLAY_PLAYSTATUS "memory/private/org.tizen.videos/extern_mode" + +icon_s video_play = { + .name = MODULE_NAME, + .priority = ICON_PRIORITY, + .always_top = EINA_TRUE, + .exist_in_view = EINA_FALSE, + .img_obj = {0,}, + .obj_exist = EINA_FALSE, + .area = INDICATOR_ICON_AREA_NOTI, + .init = register_video_play_module, + .fini = unregister_video_play_module, + .wake_up = wake_up_cb +}; + +static char *icon_path[] = { + "Notification/B03_video.png", + NULL +}; + +static int prevIndex = -1; + + + +static void set_app_state(void* data) +{ + video_play.ad = data; +} + + + +static void show_image_icon(void *data) +{ + video_play.img_obj.data = icon_path[0]; + icon_show(&video_play); +} + + + +static void hide_image_icon(void) +{ + icon_hide(&video_play); + prevIndex = -1; +} + + + +static void show_video_icon(void* data) +{ + int status; + int ret; + + retif(data == NULL, , "Invalid parameter!"); + + + if(icon_get_update_flag()==0) + { + updated_while_lcd_off = 1; + return; + } + updated_while_lcd_off = 0; + + ret = vconf_get_bool(VCONF_VIDEO_PLAY_PLAYSTATUS, &status); + if (ret == OK) { + DBG("VIDEO PLAY state: %d", status); + if(status == 1) + show_image_icon(data); + else + hide_image_icon(); + } +} + + + +static void indicator_video_play_change_cb(keynode_t *node, void *data) +{ + retif(data == NULL, , "Invalid parameter!"); + + show_video_icon(data); + + return; +} + + + +static int wake_up_cb(void *data) +{ + if(updated_while_lcd_off==0) + { + return OK; + } + + indicator_video_play_change_cb(NULL, data); + + return OK; +} + + + +static int register_video_play_module(void *data) +{ + + retif(data == NULL, FAIL, "Invalid parameter!"); + + set_app_state(data); + + vconf_notify_key_changed(VCONF_VIDEO_PLAY_PLAYSTATUS, indicator_video_play_change_cb, data); + + show_video_icon(data); + + return OK; +} + + + +static int unregister_video_play_module(void) +{ + vconf_ignore_key_changed(VCONF_VIDEO_PLAY_PLAYSTATUS, indicator_video_play_change_cb); + + return OK; +} diff --git a/modules/information/voice_recorder.c b/modules/information/voice_recorder.c old mode 100755 new mode 100644 index ff8b570..c689b0e --- a/modules/information/voice_recorder.c +++ b/modules/information/voice_recorder.c @@ -1,159 +1,153 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd + * Indicator * - * Licensed under the Flora License, Version 1.1 (the "License"); + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://floralicense.org/license/ + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * */ + #include #include #include #include +#include +#include #include "common.h" #include "indicator.h" -#include "indicator_icon_util.h" +#include "icon.h" #include "modules.h" -#include "indicator_ui.h" +#include "main.h" -#define ICON_PRIORITY INDICATOR_PRIORITY_NOTI_1 +#define ICON_PRIORITY INDICATOR_PRIORITY_MINICTRL1 #define MODULE_NAME "VOICE_RECORDER" #define MINICONTROL_NAME "[voicerecorder_mini_controller]" +#define INDICATOR_REMOTE_PORT "voicerecorder_indicator_port" +#define INDICATOR_APP_ID "org.tizen.indicator" +#define INDICATOR_BUNDLE_KEY "voicerecorder_indicator_data" +#define BG_NONE "voicerecorder_none" +#define BG_RECORING_START "bg_recording_start" +#define BG_RECORING_PAUSE "bg_recording_pause" +#define BG_PLAYING_START "bg_playing_start" +#define BG_PLAYING_PAUSE "bg_playing_pause" static int register_voice_recorder_module(void *data); static int unregister_voice_recorder_module(void); -static int mctrl_monitor_cb(int action, const char *name, void *data); static int wake_up_cb(void *data); -static int vr_registerd = 0; static int updated_while_lcd_off = 0; +static int prevIndex = -1; +static int vr_state = -1; -Indicator_Icon_Object voice_recorder[INDICATOR_WIN_MAX] = { -{ - .win_type = INDICATOR_WIN_PORT, +icon_s voice_recorder = { .type = INDICATOR_IMG_ICON, .name = MODULE_NAME, .priority = ICON_PRIORITY, .always_top = EINA_TRUE, .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, .img_obj = {0,}, .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_NOTI, + .area = INDICATOR_ICON_AREA_MINICTRL, .init = register_voice_recorder_module, .fini = unregister_voice_recorder_module, - .minictrl_control = mctrl_monitor_cb, + .minictrl_control = NULL,//mctrl_monitor_cb, .wake_up = wake_up_cb -}, -{ - .win_type = INDICATOR_WIN_LAND, - .type = INDICATOR_IMG_ICON, - .name = MODULE_NAME, - .priority = ICON_PRIORITY, - .always_top = EINA_TRUE, - .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, - .img_obj = {0,}, - .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_NOTI, - .init = register_voice_recorder_module, - .fini = unregister_voice_recorder_module, - .minictrl_control = mctrl_monitor_cb, - .wake_up = wake_up_cb -} - }; enum { VOICE_RECORDER_RECORDING, - VOICE_RECORDER_PAUSED, - VOICE_RECORDER_READY + VOICE_RECORDER_RECORDING_PAUSED, + VOICE_RECORDER_PLAYING, + VOICE_RECORDER_PLAYING_PAUSED }; static char *icon_path[] = { - "Background playing/B03_Backgroundplaying_voicerecorder_Recording.png", - "Background playing/B03_Backgroundplaying_voicerecorder_paused.png", - "Background playing/B03_Backgroundplaying_Voicerecording.png", + "Background playing/B03_Backgroundplaying_Voicerecorder.png", + "Background playing/B03_Backgroundplaying_Voicerecorder.png", + "Background playing/B03_Backgroundplaying_voicerecorder_player_play.png", + "Background playing/B03_Backgroundplaying_voicerecorder_player_pause.png", NULL }; + + static void set_app_state(void* data) { - int i = 0; - - for (i=0 ; iad = data; + if (modules[i]->init) + { + modules[i]->init(data); + } + } } -}; -void indicator_init_modules(void *data) + +void modules_init_first(void *data) { int i; - int j = 0; - - for(j=0;jad = data; - if (modules[j][i]->init) - modules[j][i]->init(data); + /* add items to list */ + for (i = 0; i < 5; i++) { + list_insert_icon(modules[i]); + modules[i]->ad = data; + if (modules[i]->init) + { + modules[i]->init(data); } } } -void indicator_fini_modules(void *data) + + +void modules_fini(void *data) { int i; - int j = 0; - - for(j=0;jfini) - modules[j][i]->fini(); - } + /* add items to list */ + for (i = 0; modules[i]; i++) { + if (modules[i]->fini) + modules[i]->fini(); } - indicator_icon_all_list_free(); + /* delete modules */ + list_free_all(); } -void indicator_lang_changed_modules(void *data) + + +void modules_lang_changed(void *data) { int i; - int j = 0; - - for(j=0;jlang_changed) - modules[j][i]->lang_changed(data); - } + /* add items to list */ + for (i = 0; modules[i]; i++) { + if (modules[i]->lang_changed) + modules[i]->lang_changed(data); } } -void indicator_region_changed_modules(void *data) + + +void modules_region_changed(void *data) { int i; - int j = 0; - - for(j=0;jregion_changed) - modules[j][i]->region_changed(data); - } + /* add items to list */ + for (i = 0; modules[i]; i++) { + if (modules[i]->region_changed) + modules[i]->region_changed(data); } } -void indicator_minictrl_control_modules(int action, const char* name, void *data) + + +void modules_minictrl_control(int action, const char* name, void *data) { int i; - int j = 0; - - for(j=0;jminictrl_control) - modules[j][i]->minictrl_control(action, name, data); - } + /* add items to list */ + for (i = 0; modules[i]; i++) { + if (modules[i]->minictrl_control) + modules[i]->minictrl_control(action, name, data); } } -void indicator_wake_up_modules(void *data) + + +void modules_wake_up(void *data) { int i; - int j = 0; + /* add items to list */ + for (i = 0; modules[i]; i++) { + if (modules[i]->wake_up) + modules[i]->wake_up(data); + } +} - for(j=0;jwake_up) - modules[j][i]->wake_up(data); + + +#ifdef _SUPPORT_SCREEN_READER +void modules_register_tts(void *data) +{ + int i; + /* add items to list */ + for (i = 0; modules[i]; i++) { + modules[i]->ad = data; + if (modules[i]->register_tts) + { + modules[i]->register_tts(data); } } } +#endif diff --git a/modules/modules.h b/modules/modules.h old mode 100755 new mode 100644 index 4f1c7e1..4fafc78 --- a/modules/modules.h +++ b/modules/modules.h @@ -1,17 +1,20 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd + * Indicator * - * Licensed under the Flora License, Version 1.1 (the "License"); + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://floralicense.org/license/ + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * */ @@ -19,16 +22,22 @@ #define __INDICATOR_MODULES_H__ #include -#include "indicator_ui.h" -#include "indicator_icon_list.h" + +#include "main.h" +#include "list.h" #define TIMER_STOP ECORE_CALLBACK_CANCEL #define TIMER_CONTINUE ECORE_CALLBACK_RENEW -void indicator_init_modules(void *data); -void indicator_fini_modules(void *data); -void indicator_lang_changed_modules(void *data); -void indicator_region_changed_modules(void *data); -void indicator_minictrl_control_modules(int action, const char* name, void *data); -void indicator_wake_up_modules(void *data); +extern void modules_init(void *data); +extern void modules_fini(void *data); +extern void modules_lang_changed(void *data); +extern void modules_region_changed(void *data); +extern void modules_minictrl_control(int action, const char* name, void *data); +extern void modules_wake_up(void *data); +extern void modules_init_first(void *data); + +#ifdef _SUPPORT_SCREEN_READER +extern void modules_register_tts(void *data); +#endif #endif diff --git a/modules/network/roaming.c b/modules/network/roaming.c old mode 100755 new mode 100644 index e585ecd..8b96b44 --- a/modules/network/roaming.c +++ b/modules/network/roaming.c @@ -1,17 +1,20 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd + * Indicator * - * Licensed under the Flora License, Version 1.1 (the "License"); + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://floralicense.org/license/ + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * */ @@ -20,9 +23,9 @@ #include #include "common.h" #include "indicator.h" -#include "indicator_icon_util.h" +#include "icon.h" #include "modules.h" -#include "indicator_ui.h" +#include "main.h" #define ICON_PRIORITY INDICATOR_PRIORITY_FIXED3 #define MODULE_NAME "ROAMING" @@ -30,35 +33,17 @@ static int register_roaming_module(void *data); static int unregister_roaming_module(void); -Indicator_Icon_Object roaming[INDICATOR_WIN_MAX] = { -{ - .win_type = INDICATOR_WIN_PORT, +icon_s roaming = { .type = INDICATOR_IMG_ICON, .name = MODULE_NAME, .priority = ICON_PRIORITY, .always_top = EINA_FALSE, .exist_in_view = EINA_FALSE, .area = INDICATOR_ICON_AREA_FIXED, - .txt_obj = {0,}, .img_obj = {0,}, .obj_exist = EINA_FALSE, .init = register_roaming_module, .fini = unregister_roaming_module -}, -{ - .win_type = INDICATOR_WIN_LAND, - .type = INDICATOR_IMG_ICON, - .name = MODULE_NAME, - .priority = ICON_PRIORITY, - .always_top = EINA_FALSE, - .exist_in_view = EINA_FALSE, - .area = INDICATOR_ICON_AREA_FIXED, - .txt_obj = {0,}, - .img_obj = {0,}, - .obj_exist = EINA_FALSE, - .init = register_roaming_module, - .fini = unregister_roaming_module -} }; static const char *icon_path[] = { @@ -68,33 +53,18 @@ static const char *icon_path[] = { static void set_app_state(void* data) { - int i = 0; - - for (i=0 ; i +#include +#include +#include +#include +#include #include #include #include +#include + #include "common.h" #include "indicator.h" -#include "indicator_icon_util.h" +#include "icon.h" #include "modules.h" -#include "indicator_ui.h" +#include "main.h" #include "indicator_gui.h" +#include "util.h" +#include "connection/connection.h" +#include "processing/call_divert.h" + +#define VCONFKEY_TELEPHONY_PREFERRED_VOICE_SUBSCRIPTION "db/telephony/dualsim/preferred_voice_subscription" + +#define RSSI1_ICON_PRIORITY INDICATOR_PRIORITY_FIXED2 +#define RSSI2_ICON_PRIORITY INDICATOR_PRIORITY_FIXED3 +#define SIMCARD_ICON_PRIORITY INDICATOR_PRIORITY_FIXED4 -#define ICON_PRIORITY INDICATOR_PRIORITY_FIXED3 -#define MODULE_NAME "RSSI" +#define MODULE_NAME "RSSI" +#define MODULE_NAME_SIM2 "RSSI2" +#define MODULE_NAME_DUAL_SIM "RSSI_DS" #define ICON_NOSIM _("IDS_COM_BODY_NO_SIM") #define ICON_SEARCH _("IDS_COM_BODY_SEARCHING") #define ICON_NOSVC _("IDS_CALL_POP_NOSERVICE") +#define TAPI_HANDLE_MAX 2 + static int register_rssi_module(void *data); static int unregister_rssi_module(void); static int language_changed_cb(void *data); static int wake_up_cb(void *data); +static void on_noti(TapiHandle *handle_obj, const char *noti_id, void *data, void *user_data); +static int _get_sim_icon(int sim_number); +static void _flight_mode(keynode_t *key, void *data); +#ifdef _SUPPORT_SCREEN_READER +static char *access_info_cb(void *data, Evas_Object *obj); +#endif -Indicator_Icon_Object rssi[INDICATOR_WIN_MAX] = { -{ - .win_type = INDICATOR_WIN_PORT, +TapiHandle *tapi_handle[TAPI_HANDLE_MAX+1] = {0, }; + +static int registered = 0; + + +icon_s rssi_ds = { .type = INDICATOR_IMG_ICON, - .name = MODULE_NAME, - .priority = ICON_PRIORITY, + .name = MODULE_NAME_DUAL_SIM, + .priority = SIMCARD_ICON_PRIORITY, .always_top = EINA_FALSE, .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, .img_obj = {0,}, .obj_exist = EINA_FALSE, .area = INDICATOR_ICON_AREA_FIXED, - .init = register_rssi_module, - .fini = unregister_rssi_module, - .lang_changed = language_changed_cb, - .wake_up = wake_up_cb -}, -{ - .win_type = INDICATOR_WIN_LAND, +#ifdef _SUPPORT_SCREEN_READER + .tts_enable = EINA_TRUE, + .access_cb = access_info_cb +#endif +}; + +icon_s rssi = { .type = INDICATOR_IMG_ICON, .name = MODULE_NAME, - .priority = ICON_PRIORITY, + .priority = RSSI1_ICON_PRIORITY, .always_top = EINA_FALSE, .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, .img_obj = {0,}, .obj_exist = EINA_FALSE, .area = INDICATOR_ICON_AREA_FIXED, .init = register_rssi_module, .fini = unregister_rssi_module, .lang_changed = language_changed_cb, - .wake_up = wake_up_cb -} + .wake_up = wake_up_cb, +#ifdef _SUPPORT_SCREEN_READER + .tts_enable = EINA_TRUE, + .access_cb = access_info_cb +#endif +}; + +icon_s rssi2 = { + .type = INDICATOR_IMG_ICON, + .name = MODULE_NAME_SIM2, + .priority = RSSI2_ICON_PRIORITY, + .always_top = EINA_FALSE, + .exist_in_view = EINA_FALSE, + .img_obj = {0,}, + .obj_exist = EINA_FALSE, + .area = INDICATOR_ICON_AREA_FIXED, +#ifdef _SUPPORT_SCREEN_READER + .tts_enable = EINA_TRUE, + .access_cb = access_info_cb +#endif +}; + +enum { + SIM_1 = 1, + SIM_2 }; enum { LEVEL_RSSI_MIN = 0, - LEVEL_RSSI_0 = LEVEL_RSSI_MIN, - LEVEL_RSSI_1, - LEVEL_RSSI_2, - LEVEL_RSSI_3, - LEVEL_RSSI_4, - LEVEL_RSSI_MAX = LEVEL_RSSI_4, LEVEL_FLIGHT, LEVEL_NOSIM, LEVEL_SEARCH, LEVEL_NOSVC, - LEVEL_MAX, + LEVEL_LIMITED, + LEVEL_RSSI_SIM1_0, + LEVEL_RSSI_SIM1_1, + LEVEL_RSSI_SIM1_2, + LEVEL_RSSI_SIM1_3, + LEVEL_RSSI_SIM1_4, + LEVEL_RSSI_SIM2_0, + LEVEL_RSSI_SIM2_1, + LEVEL_RSSI_SIM2_2, + LEVEL_RSSI_SIM2_3, + LEVEL_RSSI_SIM2_4, + LEVEL_RSSI_ROAMING_0, + LEVEL_RSSI_ROAMING_1, + LEVEL_RSSI_ROAMING_2, + LEVEL_RSSI_ROAMING_3, + LEVEL_RSSI_ROAMING_4, + LEVEL_RSSI_ROAMING2_0, + LEVEL_RSSI_ROAMING2_1, + LEVEL_RSSI_ROAMING2_2, + LEVEL_RSSI_ROAMING2_3, + LEVEL_RSSI_ROAMING2_4, + LEVEL_SIM_ICON_SIM1, + LEVEL_SIM_ICON_SIM2, + LEVEL_SIM_ICON_CALL, + LEVEL_SIM_ICON_SMS, + LEVEL_SIM_ICON_MMS, + LEVEL_SIM_ICON_INTERNET, + LEVEL_SIM_ICON_HOME, + LEVEL_SIM_ICON_OFFICE, + LEVEL_SIM_ICON_HEART, + LEVEL_MAX }; static int bRoaming = 0; static int updated_while_lcd_off = 0; - +static int prevIndex = -1; +static int prevRoam = -1; +#ifdef _SUPPORT_SCREEN_READER +static int bRssiShown = 0; +#endif static const char *icon_path[LEVEL_MAX] = { - [LEVEL_RSSI_0] = "RSSI/B03_RSSI_Sim_00.png", - [LEVEL_RSSI_1] = "RSSI/B03_RSSI_Sim_01.png", - [LEVEL_RSSI_2] = "RSSI/B03_RSSI_Sim_02.png", - [LEVEL_RSSI_3] = "RSSI/B03_RSSI_Sim_03.png", - [LEVEL_RSSI_4] = "RSSI/B03_RSSI_Sim_04.png", [LEVEL_FLIGHT] = "RSSI/B03_RSSI_Flightmode.png", [LEVEL_NOSIM] = "RSSI/B03_RSSI_NoSim.png", [LEVEL_SEARCH] = "RSSI/B03_RSSI_Searching.png", [LEVEL_NOSVC] = "RSSI/B03_RSSI_NoService.png", + [LEVEL_LIMITED] = "RSSI/B03_Network_LimitedService.png", + [LEVEL_RSSI_SIM1_0] = "RSSI/B03_RSSI_Sim_00.png", + [LEVEL_RSSI_SIM1_1] = "RSSI/B03_RSSI_Sim_01.png", + [LEVEL_RSSI_SIM1_2] = "RSSI/B03_RSSI_Sim_02.png", + [LEVEL_RSSI_SIM1_3] = "RSSI/B03_RSSI_Sim_03.png", + [LEVEL_RSSI_SIM1_4] = "RSSI/B03_RSSI_Sim_04.png", + [LEVEL_RSSI_SIM2_0] = "RSSI/B03_RSSI_Dual_Sim_00.png", + [LEVEL_RSSI_SIM2_1] = "RSSI/B03_RSSI_Dual_Sim_01.png", + [LEVEL_RSSI_SIM2_2] = "RSSI/B03_RSSI_Dual_Sim_02.png", + [LEVEL_RSSI_SIM2_3] = "RSSI/B03_RSSI_Dual_Sim_03.png", + [LEVEL_RSSI_SIM2_4] = "RSSI/B03_RSSI_Dual_Sim_04.png", + [LEVEL_RSSI_ROAMING_0] = "RSSI/B03_RSSI_roaming_00.png", + [LEVEL_RSSI_ROAMING_1] = "RSSI/B03_RSSI_roaming_01.png", + [LEVEL_RSSI_ROAMING_2] = "RSSI/B03_RSSI_roaming_02.png", + [LEVEL_RSSI_ROAMING_3] = "RSSI/B03_RSSI_roaming_03.png", + [LEVEL_RSSI_ROAMING_4] = "RSSI/B03_RSSI_roaming_04.png", + [LEVEL_RSSI_ROAMING2_0] = "RSSI/B03_RSSI_Dual_Sim_roaming_00.png", + [LEVEL_RSSI_ROAMING2_1] = "RSSI/B03_RSSI_Dual_Sim_roaming_01.png", + [LEVEL_RSSI_ROAMING2_2] = "RSSI/B03_RSSI_Dual_Sim_roaming_02.png", + [LEVEL_RSSI_ROAMING2_3] = "RSSI/B03_RSSI_Dual_Sim_roaming_03.png", + [LEVEL_RSSI_ROAMING2_4] = "RSSI/B03_RSSI_Dual_Sim_roaming_04.png", + [LEVEL_SIM_ICON_SIM1] = "Dual SIM/B03_Dual_Sim_00.png", + [LEVEL_SIM_ICON_SIM2] = "Dual SIM/B03_Dual_Sim_01.png", + [LEVEL_SIM_ICON_CALL] = "Dual SIM/B03_Dual_Sim_phone.png", + [LEVEL_SIM_ICON_SMS] = "Dual SIM/B03_Dual_Sim_messages.png", + [LEVEL_SIM_ICON_MMS] = "Dual SIM/B03_Dual_Sim_data.png", + [LEVEL_SIM_ICON_INTERNET] = "Dual SIM/B03_Dual_Sim_global.png", + [LEVEL_SIM_ICON_HOME] = "Dual SIM/B03_Dual_Sim_home.png", + [LEVEL_SIM_ICON_OFFICE] = "Dual SIM/B03_Dual_Sim_office.png", + [LEVEL_SIM_ICON_HEART] = "Dual SIM/B03_Dual_Sim_heart.png" }; -static const char *roaming_icon_path[LEVEL_MAX] = { - [LEVEL_RSSI_0] = "RSSI/B03_RSSI_roaming_00.png", - [LEVEL_RSSI_1] = "RSSI/B03_RSSI_roaming_01.png", - [LEVEL_RSSI_2] = "RSSI/B03_RSSI_roaming_02.png", - [LEVEL_RSSI_3] = "RSSI/B03_RSSI_roaming_03.png", - [LEVEL_RSSI_4] = "RSSI/B03_RSSI_roaming_04.png", - [LEVEL_FLIGHT] = "RSSI/B03_RSSI_Flightmode.png", - [LEVEL_NOSIM] = "RSSI/B03_RSSI_NoSim.png", - [LEVEL_SEARCH] = "RSSI/B03_RSSI_Searching.png", - [LEVEL_NOSVC] = "RSSI/B03_RSSI_NoService.png", -}; - - static void set_app_state(void* data) { - int i = 0; - - for (i=0 ; i LEVEL_RSSI_MAX) { - *level = LEVEL_RSSI_MAX; - return 1; - } - return 0; + if (index < LEVEL_RSSI_MIN) + index = LEVEL_RSSI_MIN; + else if (index >= LEVEL_MAX) + index = LEVEL_NOSVC; + + rssi_ds.img_obj.width = DEFAULT_ICON_WIDTH; + + rssi_ds.img_obj.data = icon_path[index]; + + icon_show(&rssi_ds); + + prevRoam = bRoaming; + prevIndex = index; + isSimShowing = 1; // It is for judgement to show S1 icon(Sound, Wi-fi direct, bluetooth) or not. + util_signal_emit(rssi_ds.ad,"indicator.simicon.show","indicator.prog"); } static void show_image_icon(void *data, int index) { - int i = 0; + if (index < LEVEL_RSSI_MIN) + index = LEVEL_RSSI_MIN; + else if (index >= LEVEL_MAX) + index = LEVEL_NOSVC; + + rssi.img_obj.width = DEFAULT_ICON_WIDTH; + + rssi.img_obj.data = icon_path[index]; + icon_show(&rssi); + + prevRoam = bRoaming; + prevIndex = index; + isRSSI1Showing = 1; + util_signal_emit(rssi.ad,"indicator.rssi1.show","indicator.prog"); +} + +static void show_sim2_image_icon(void *data, int index) +{ if (index < LEVEL_RSSI_MIN) index = LEVEL_RSSI_MIN; else if (index >= LEVEL_MAX) index = LEVEL_NOSVC; - for (i=0 ; itel_info[0].sim_status; + if(sim_slot_count == 1) + { + DBG("Single Sim target"); + sim_status_sim2 = TAPI_SIM_STATUS_CARD_NOT_PRESENT; + } + else if(sim_slot_count == 2) + { + DBG("Dual Sim target"); + sim_status_sim2 = ad->tel_info[1].sim_status; + } + + // Sim 2 + if(sim_status_sim2 != TAPI_SIM_STATUS_CARD_NOT_PRESENT) + { + DBG("Sim2 inserted"); + val = ad->tel_info[1].network_service_type; + DBG("Get SIM2 service type : %d", val); + switch(val) + { + case TAPI_NETWORK_SERVICE_TYPE_NO_SERVICE: + DBG("Service type: NO_SERVICE"); + show_sim2_image_icon(user_data, LEVEL_NOSVC); + break; + case TAPI_NETWORK_SERVICE_TYPE_EMERGENCY: + DBG("Service type: EMERGENCY : Signal-strength level : %d", val); + val = ad->tel_info[1].signal_level; + if(ret != OK) + { + ERR("Can not get signal strength level"); + } + show_sim2_image_icon(user_data, LEVEL_RSSI_SIM1_0+val); + break; + case TAPI_NETWORK_SERVICE_TYPE_SEARCH: + DBG("Service type: SEARCH"); + show_sim2_image_icon(user_data, LEVEL_SEARCH); + break; + case TAPI_NETWORK_SERVICE_TYPE_UNKNOWN: DBG("Service type : UNKNOWN"); + default: + sim2_service = 1; + break; + } + if(sim2_service) + { + val = ad->tel_info[1].signal_level; + DBG("Get SIM2 signal strength level: %d", val); + int roaming = 0; + roaming = ad->tel_info[1].roaming_status; + preferred_subscription = ad->tel_info[1].default_network; + if(roaming) + { + if(preferred_subscription == TAPI_NETWORK_DEFAULT_SUBS_SIM2 && sim_status_sim1 == TAPI_SIM_STATUS_SIM_INIT_COMPLETED) + { + show_sim2_image_icon(user_data, LEVEL_RSSI_ROAMING2_0+val); + } + else + { + show_sim2_image_icon(user_data, LEVEL_RSSI_ROAMING_0+val); + } + } + else + { + if(preferred_subscription == TAPI_NETWORK_DEFAULT_SUBS_SIM2 && sim_status_sim1 == TAPI_SIM_STATUS_SIM_INIT_COMPLETED) + { + show_sim2_image_icon(user_data, LEVEL_RSSI_SIM2_0+val); + } + else + { + show_sim2_image_icon(user_data, LEVEL_RSSI_SIM1_0+val); + } + } + } } - ret = vconf_get_int(VCONFKEY_TELEPHONY_SVCTYPE, &status); - if (ret == OK) { - if (status == VCONFKEY_TELEPHONY_SVCTYPE_NOSVC) { - INFO("RSSI Status: No Service"); - show_image_icon(data, LEVEL_NOSVC); - return; + // SIM 1 + if(sim_status_sim1 != TAPI_SIM_STATUS_CARD_NOT_PRESENT) + { + DBG("Sim1 inserted"); + val = ad->tel_info[0].network_service_type; + DBG("Get SIM1 service type : %d", val); + switch(val) + { + case TAPI_NETWORK_SERVICE_TYPE_NO_SERVICE: + DBG("Service type: NO_SERVICE"); + show_image_icon(user_data, LEVEL_NOSVC); + break; + case TAPI_NETWORK_SERVICE_TYPE_EMERGENCY: + DBG("Service type: EMERGENCY : Signal-strength level : %d", val); + val = ad->tel_info[0].signal_level; + if(ret != OK) + { + ERR("Can not get signal strength level"); + } + show_image_icon(user_data, LEVEL_RSSI_SIM1_0+val); + break; + case TAPI_NETWORK_SERVICE_TYPE_SEARCH: + DBG("Service type: SEARCH"); + show_image_icon(user_data, LEVEL_SEARCH); + break; + case TAPI_NETWORK_SERVICE_TYPE_UNKNOWN: DBG("Service type : UNKNOWN"); + default: + DBG("Service type : UNKNOWN (%d)", val); + sim1_service = 1; + break; } - if (status == VCONFKEY_TELEPHONY_SVCTYPE_SEARCH) { - INFO("RSSI Status: Searching Service"); - show_image_icon(data, LEVEL_SEARCH); - return; + if(sim1_service) + { + val = ad->tel_info[0].signal_level; + DBG("Get SIM1 signal strength level: %d", val); + int roaming = 0; + roaming = ad->tel_info[0].roaming_status; + preferred_subscription = ad->tel_info[0].default_network; + if(roaming) + { + if(preferred_subscription == TAPI_NETWORK_DEFAULT_SUBS_SIM1 && sim_status_sim2 == TAPI_SIM_STATUS_SIM_INIT_COMPLETED) + { + show_image_icon(user_data, LEVEL_RSSI_ROAMING2_0+val); + } + else + { + show_image_icon(user_data, LEVEL_RSSI_ROAMING_0+val); + } + } + else + { + if(preferred_subscription == TAPI_NETWORK_DEFAULT_SUBS_SIM1 && sim_status_sim2 == TAPI_SIM_STATUS_SIM_INIT_COMPLETED) + { + show_image_icon(user_data, LEVEL_RSSI_SIM2_0+val); + } + else + { + show_image_icon(user_data, LEVEL_RSSI_SIM1_0+val); + } + } + } } - ret = vconf_get_int(VCONFKEY_TELEPHONY_SVC_ROAM, &status); - if (ret == OK) { - if (status == VCONFKEY_TELEPHONY_SVC_ROAM_ON) { - INFO("ROAMING Status: %d", status); - bRoaming = 1; - } else { - bRoaming = 0; + if(sim_status_sim1 == TAPI_SIM_STATUS_SIM_INIT_COMPLETED && sim_status_sim2 == TAPI_SIM_STATUS_SIM_INIT_COMPLETED) + { + DBG("Dual Sim : Check preferred network subscription"); + if(preferred_subscription == TAPI_NETWORK_DEFAULT_SUBS_SIM1) + { + DBG("Preferred voice subscription set to sim1 : %d", preferred_subscription); + show_sim_ds_image_icon(user_data, _get_sim_icon(SIM_1)); + + } + else if(preferred_subscription == TAPI_NETWORK_DEFAULT_SUBS_SIM2) + { + DBG("Preferred voice subscription set to sim2 : %d", preferred_subscription); + show_sim_ds_image_icon(user_data, _get_sim_icon(SIM_2)); } + else + { + hide_sim_ds_image_icon(); + ERR("Preferred voice subscription is: %d", preferred_subscription); + } + } + else if(sim_status_sim1 == TAPI_SIM_STATUS_SIM_INIT_COMPLETED && sim_status_sim2 != TAPI_SIM_STATUS_SIM_INIT_COMPLETED) + { + DBG("Single Sim : Show Sim card 1 icon"); + hide_sim2_image_icon(); + show_sim_ds_image_icon(user_data, _get_sim_icon(SIM_1)); + } + else if(sim_status_sim1 != TAPI_SIM_STATUS_SIM_INIT_COMPLETED && sim_status_sim2 == TAPI_SIM_STATUS_SIM_INIT_COMPLETED) + { + DBG("Single Sim : Show Sim card 2 icon"); + hide_sim_image_icon(); + show_sim_ds_image_icon(user_data, _get_sim_icon(SIM_2)); } - ret = vconf_get_int(VCONFKEY_TELEPHONY_RSSI, &status); - if (ret == OK) { - INFO("RSSI Level: %d", status); - level_check(&status); - show_image_icon(data, status); - return; + if(sim_status_sim1 == TAPI_SIM_STATUS_CARD_NOT_PRESENT && + sim_status_sim2 == TAPI_SIM_STATUS_CARD_NOT_PRESENT) + { + hide_sim_image_icon(); + hide_sim2_image_icon(); + hide_sim_ds_image_icon(); + val = ad->tel_info[0].signal_level; + DBG("No sim card : Signal-strength level : %d", val); + if(ret != OK) + { + ERR("Can not get signal strength level"); + } + show_image_icon(user_data, LEVEL_RSSI_SIM1_0+val); } + else if(sim_slot_count !=2 ) + { + DBG("Single Sim target"); + hide_sim2_image_icon(); + hide_sim_ds_image_icon(); + } +} +static int _get_sim_icon(int sim_number) +{ + int status = 0; + int ret = 0; - ERR("Failed to get rssi status! Set as No Service."); - show_image_icon(data, LEVEL_NOSVC); - return; + if(sim_number == SIM_1) + { +// ret = vconf_get_int(VCONFKEY_SETAPPL_SIM1_ICON, &status); + if (ret == OK) + { + LOGD("Sim 1 icon: %d", status); + } + } + else + { +// ret = vconf_get_int(VCONFKEY_SETAPPL_SIM2_ICON, &status); + if (ret == OK) + { + LOGD("Sim 2 icon: %d", status); + } + } + + return status+LEVEL_SIM_ICON_SIM1; } -static int language_changed_cb(void *data) +static void _sim_icon_update(keynode_t *key, void *data) { - indicator_rssi_change_cb(NULL, data); - return OK; + on_noti(NULL, NULL, NULL, data); } -static int wake_up_cb(void *data) +static void _flight_mode(keynode_t *key, void *data) { - if(updated_while_lcd_off==0) + on_noti(NULL, NULL, NULL, data); +} + +int rssi_get_sim_number(TapiHandle *handle_obj) +{ + DBG("tapi_handle[0](%x),tapi_handle[1](%x),current(%x)",tapi_handle[0],tapi_handle[1],handle_obj); + + int ret = -1; + if(tapi_handle[0]!=NULL) { - DBG("ICON WAS NOT UPDATED"); - return OK; + if(tapi_handle[0]==handle_obj) + ret = 0; } - indicator_rssi_change_cb(NULL, data); - return OK; -} + if(tapi_handle[1]!=NULL) + { + if(tapi_handle[1]==handle_obj) + ret = 1; + } + if(ret == -1) + { + ERR("no handle %x",handle_obj); + ret = 0; + } -static int register_rssi_module(void *data) + DBG("sim %d",ret); + + return ret; +} +static void init_tel_info(void* data) { - int r = 0, ret = -1; + int ret = 0; + struct appdata *ad = (struct appdata *)data; + int i = 0; + int val = 0; + TelSimCardStatus_t sim_status; + retif(data == NULL, , "invalid parameter !!"); - retif(data == NULL, FAIL, "Invalid parameter!"); + for(i=0;i<2;i++) + { + if(tapi_handle[i]==NULL) + { + DBG("i %d,NULL"); + continue; + } + DBG("tapi handle %x %d",tapi_handle[i],i); + ret = tel_get_property_int(tapi_handle[i], TAPI_PROP_NETWORK_ROAMING_STATUS, &val); + if(ret != OK) + { + ERR("Can not get %s",TAPI_PROP_NETWORK_ROAMING_STATUS); + } + DBG("TAPI_PROP_NETWORK_ROAMING_STATUS %d",val); + ad->tel_info[i].roaming_status = val; - set_app_state(data); + ret = tel_get_property_int(tapi_handle[i], TAPI_PROP_NETWORK_SIGNALSTRENGTH_LEVEL, &val); + if(ret != OK) + { + ERR("Can not get %s",TAPI_PROP_NETWORK_SIGNALSTRENGTH_LEVEL); + } + DBG("TAPI_PROP_NETWORK_SIGNALSTRENGTH_LEVEL %d",val); + ad->tel_info[i].signal_level = val; + + ret = tel_get_property_int(tapi_handle[i], TAPI_PROP_NETWORK_SERVICE_TYPE, &val); + if(ret != OK) + { + ERR("Can not get %s",TAPI_PROP_NETWORK_SERVICE_TYPE); + } + DBG("TAPI_PROP_NETWORK_SERVICE_TYPE %d",val); + ad->tel_info[i].network_service_type = val; + + ret = tel_get_property_int(tapi_handle[i], TAPI_PROP_NETWORK_PS_TYPE, &val); + if(ret != OK) + { + ERR("Can not get %s",TAPI_PROP_NETWORK_SERVICE_TYPE); + } + DBG("TAPI_PROP_NETWORK_PS_TYPE %d",val); + ad->tel_info[i].network_ps_type = val; + + + TelCallPreferredVoiceSubs_t preferred_sub = TAPI_CALL_PREFERRED_VOICE_SUBS_UNKNOWN; + ret = tel_get_call_preferred_voice_subscription(tapi_handle[i], &preferred_sub); + if(ret != OK) + { + ERR("Can not get %s",TAPI_NOTI_CALL_PREFERRED_VOICE_SUBSCRIPTION); + } + DBG("TAPI_NOTI_CALL_PREFERRED_VOICE_SUBSCRIPTION %d",preferred_sub); + ad->tel_info[i].prefered_voice = preferred_sub; +#ifdef DEVICE_BUILD + TelNetworkDefaultDataSubs_t preferred_data = TAPI_NETWORK_DEFAULT_DATA_SUBS_UNKNOWN; + ret = tel_get_network_default_data_subscription(tapi_handle[i], &preferred_data); + if(ret != OK) + { + ERR("Can not get %s",TAPI_NOTI_NETWORK_DEFAULT_DATA_SUBSCRIPTION); + } + DBG("TAPI_NOTI_NETWORK_DEFAULT_DATA_SUBSCRIPTION %d",preferred_data); + ad->tel_info[i].prefered_data = preferred_data; + + TelNetworkDefaultSubs_t default_subs = TAPI_NETWORK_DEFAULT_SUBS_UNKNOWN; + ret = tel_get_network_default_subscription(tapi_handle[i], &default_subs); + if(ret != OK) + { + ERR("Can not get %s",TAPI_NOTI_NETWORK_DEFAULT_SUBSCRIPTION); + } + DBG("TAPI_NOTI_NETWORK_DEFAULT_SUBSCRIPTION %d",default_subs); + + ad->tel_info[i].default_network = default_subs; + + ret = tel_get_property_int(tapi_handle[i], TAPI_PROP_SIM_CALL_FORWARD_STATE, &val); + if(ret != OK) + { + ERR("Can not get %s",TAPI_PROP_SIM_CALL_FORWARD_STATE); + } + ad->tel_info[i].call_forward = val; + DBG("TAPI_PROP_SIM_CALL_FORWARD_STATE %d",val); +#endif // DEVICE_BUILD - ret = vconf_notify_key_changed(VCONFKEY_TELEPHONY_RSSI, - indicator_rssi_change_cb, data); - if (ret != OK) { - ERR("Failed to register callback!"); - r = ret; + int changed = 0; + ret = tel_get_sim_init_info(tapi_handle[i], &sim_status, &changed); + if(ret != OK) + { + ERR("Can not get sim init info"); + } + DBG("sim info %d",sim_status); + ad->tel_info[i].sim_status = sim_status; } +} +static void signal_strength_cb(TapiHandle *handle_obj, const char *noti_id, void *data, void *user_data) +{ + int *sig_level = data; + struct appdata *ad = (struct appdata *)user_data; + retif(user_data == NULL, , "invalid parameter!!"); + int sim_number = 0; + sim_number = rssi_get_sim_number(handle_obj); + DBG ("sim %d",sim_number); + DBG ("property(%s) receive !!", TAPI_PROP_NETWORK_SIGNALSTRENGTH_LEVEL); + DBG (" - sig_level = %d", *sig_level); + + ad->tel_info[sim_number].signal_level= *sig_level; + + on_noti(handle_obj,noti_id,data,user_data); +} + +static void sim_status_cb(TapiHandle *handle_obj, const char *noti_id, void *data, void *user_data) +{ + int *sim_status = data; + + struct appdata *ad = (struct appdata *)user_data; + retif(user_data == NULL, , "invalid parameter!!"); + int sim_number = 0; + sim_number = rssi_get_sim_number(handle_obj); + ERR ("sim %d",sim_number); + + ERR ("property(%s) receive !!", TAPI_NOTI_SIM_STATUS); + ERR (" - sim_status = %d", *sim_status); + + ad->tel_info[sim_number].sim_status= *sim_status; + + on_noti(handle_obj,noti_id,data,user_data); + connection_icon_on_noti(handle_obj,noti_id,data,user_data); +} + +static void network_service_type_cb(TapiHandle *handle_obj, const char *noti_id, void *data, void *user_data) +{ + int *service_type = data; + + struct appdata *ad = (struct appdata *)user_data; + retif(user_data == NULL, , "invalid parameter!!"); + int sim_number = 0; + sim_number = rssi_get_sim_number(handle_obj); + DBG ("sim %d",sim_number); + + DBG ("property(%s) receive !!", TAPI_PROP_NETWORK_SERVICE_TYPE); + DBG (" - service_type = %d", *service_type); + + ad->tel_info[sim_number].network_service_type= *service_type; + + on_noti(handle_obj,noti_id,data,user_data); + connection_icon_on_noti(handle_obj,noti_id,data,user_data); +} + +static void network_ps_type_cb(TapiHandle *handle_obj, const char *noti_id, void *data, void *user_data) +{ + int *ps_type = data; + + struct appdata *ad = (struct appdata *)user_data; + retif(user_data == NULL, , "invalid parameter!!"); + int sim_number = 0; + sim_number = rssi_get_sim_number(handle_obj); + DBG ("sim %d",sim_number); + + DBG ("property(%s) receive !!", TAPI_PROP_NETWORK_PS_TYPE); + DBG (" - ps_type = %d", *ps_type); + + ad->tel_info[sim_number].network_ps_type= *ps_type; + + connection_icon_on_noti(handle_obj,noti_id,data,user_data); +} + +static void roaming_status_cb(TapiHandle *handle_obj, const char *noti_id, void *data, void *user_data) +{ + int *roaming_status = data; + + struct appdata *ad = (struct appdata *)user_data; + retif(user_data == NULL, , "invalid parameter!!"); + int sim_number = 0; + sim_number = rssi_get_sim_number(handle_obj); + DBG ("sim %d",sim_number); + + DBG ("property(%s) receive !!", TAPI_PROP_NETWORK_ROAMING_STATUS); + DBG (" - roaming_status = %d", *roaming_status); - ret = vconf_notify_key_changed(VCONFKEY_TELEPHONY_SIM_SLOT, - indicator_rssi_change_cb, data); - if (ret != OK) { - ERR("Failed to register callback!"); - r = r | ret; + ad->tel_info[sim_number].roaming_status= *roaming_status; + + on_noti(handle_obj,noti_id,data,user_data); +} + + +#if 0 +static void preferred_voice_cb(TapiHandle *handle_obj, const char *noti_id, void *data, void *user_data) +{ + int *prefered_voice = data; + + struct appdata *ad = (struct appdata *)user_data; + retif(user_data == NULL, , "invalid parameter!!"); + int sim_number = 0; + sim_number = rssi_get_sim_number(handle_obj); + DBG ("sim %d",sim_number); + + DBG ("property(%s) receive !!", TAPI_NOTI_CALL_PREFERRED_VOICE_SUBSCRIPTION); + DBG (" - preferred_voice = %d", *prefered_voice); + + ad->tel_info[sim_number].prefered_voice = *prefered_voice; + + on_noti(handle_obj,noti_id,data,user_data); +} +#endif + + +static void preferred_data_cb(TapiHandle *handle_obj, const char *noti_id, void *data, void *user_data) +{ + struct appdata *ad = (struct appdata *)user_data; + retif(user_data == NULL, , "invalid parameter!!"); + int sim_number = 0; + struct tel_noti_network_default_data_subs *noti = data; + sim_number = rssi_get_sim_number(handle_obj); + DBG ("sim %d",sim_number); + + DBG ("property(%s) receive !!", TAPI_NOTI_NETWORK_DEFAULT_DATA_SUBSCRIPTION); + DBG (" - preferred_data = %d", noti->default_subs); + + //Data preferred calback comes from only the sim handle which changed + //SIM1->SIM2 , callback comes only for SIM2 handle + ad->tel_info[0].prefered_data = noti->default_subs; + ad->tel_info[1].prefered_data = noti->default_subs; + //data prefered is not controllered + + connection_icon_on_noti(handle_obj,noti_id,data,user_data); +} + +static void default_network_cb(TapiHandle *handle_obj, const char *noti_id, void *data, void *user_data) +{ + struct appdata *ad = (struct appdata *)user_data; + retif(user_data == NULL, , "invalid parameter!!"); + int sim_number = 0; + struct tel_noti_network_default_subs *noti = data; + sim_number = rssi_get_sim_number(handle_obj); + DBG ("sim %d",sim_number); + + DBG ("property(%s) receive !!", TAPI_NOTI_NETWORK_DEFAULT_SUBSCRIPTION); + DBG (" - default_network = %d", noti->default_subs); + + ad->tel_info[sim_number].default_network = noti->default_subs; + + on_noti(handle_obj,noti_id,data,user_data); +} + +static void call_forward_cb(TapiHandle *handle_obj, const char *noti_id, void *data, void *user_data) +{ + int *call_forward = data; + + struct appdata *ad = (struct appdata *)user_data; + retif(user_data == NULL, , "invalid parameter!!"); + int sim_number = 0; + sim_number = rssi_get_sim_number(handle_obj); + + DBG ("sim %d",sim_number); +#ifdef DEVICE_BUILD + DBG ("property(%s) receive !!", TAPI_PROP_SIM_CALL_FORWARD_STATE); +#endif // DEVICE_BUILD + DBG (" - call_forward = %d", *call_forward); + + ad->tel_info[sim_number].call_forward = *call_forward; + + call_forward_on_noti(handle_obj,noti_id,data,user_data); +} + + +/* Initialize TAPI */ +static void __init_tel(void *data) +{ + DBG("__init_tel"); + char **cp_list = NULL; + unsigned int modem_num = 0; + + if(registered ==1) + { + ERR("already registered"); + return; } - ret = vconf_notify_key_changed(VCONFKEY_TELEPHONY_SVCTYPE, - indicator_rssi_change_cb, data); - if (ret != OK) { - ERR("Failed to register callback!"); - r = r | ret; + cp_list = tel_get_cp_name_list(); + retif(cp_list == NULL, , "tel_get_cp_name_list() return NULL !!"); + while (cp_list[modem_num]) { + tapi_handle[modem_num] = tel_init(cp_list[modem_num]); + if(!tapi_handle[modem_num]) + { + ERR("tapi_handle[%d] is null !!", modem_num); + } + else + { + tel_register_noti_event(tapi_handle[modem_num], TAPI_PROP_NETWORK_SIGNALSTRENGTH_LEVEL, signal_strength_cb, data); + tel_register_noti_event(tapi_handle[modem_num], TAPI_NOTI_SIM_STATUS, sim_status_cb, data); + tel_register_noti_event(tapi_handle[modem_num], TAPI_PROP_NETWORK_SERVICE_TYPE, network_service_type_cb, data); + tel_register_noti_event(tapi_handle[modem_num], TAPI_PROP_NETWORK_PS_TYPE, network_ps_type_cb, data); + tel_register_noti_event(tapi_handle[modem_num], TAPI_PROP_NETWORK_ROAMING_STATUS, roaming_status_cb, data); + tel_register_noti_event(tapi_handle[modem_num], TAPI_NOTI_NETWORK_DEFAULT_DATA_SUBSCRIPTION, preferred_data_cb, data); + tel_register_noti_event(tapi_handle[modem_num], TAPI_NOTI_NETWORK_DEFAULT_SUBSCRIPTION, default_network_cb, data); +#ifdef DEVICE_BUILD + tel_register_noti_event(tapi_handle[modem_num], TAPI_PROP_SIM_CALL_FORWARD_STATE , call_forward_cb, data); +#endif // DEVICE_BUILD + } + modem_num++; } + DBG("Model num: %d", modem_num); + tapi_handle[modem_num] = NULL; + g_strfreev(cp_list); + init_tel_info(data); + on_noti(NULL, NULL, NULL, data); + + registered = 1; +} + +/* De-initialize TAPI */ +static void __deinit_tel() +{ + DBG("__deinit_tel"); + unsigned int i = 0; + + while (tapi_handle[i]) { + /* De-initialize TAPI handle */ + if(tapi_handle[i]) + { + tel_deregister_noti_event(tapi_handle[i], TAPI_PROP_NETWORK_SIGNALSTRENGTH_LEVEL); + tel_deregister_noti_event(tapi_handle[i], TAPI_NOTI_SIM_STATUS); + tel_deregister_noti_event(tapi_handle[i], TAPI_PROP_NETWORK_SERVICE_TYPE); + tel_deregister_noti_event(tapi_handle[i], TAPI_PROP_NETWORK_ROAMING_STATUS); + tel_deregister_noti_event(tapi_handle[i], TAPI_NOTI_NETWORK_DEFAULT_DATA_SUBSCRIPTION); + tel_deregister_noti_event(tapi_handle[i], TAPI_NOTI_NETWORK_DEFAULT_SUBSCRIPTION); +#ifdef DEVICE_BUILD + tel_deregister_noti_event(tapi_handle[i], TAPI_PROP_SIM_CALL_FORWARD_STATE); +#endif // DEVICE_BUILD + } + tel_deinit(tapi_handle[i]); + tapi_handle[i] = NULL; - ret = vconf_notify_key_changed(VCONFKEY_TELEPHONY_FLIGHT_MODE, - indicator_rssi_change_cb, data); - if (ret != OK) { - ERR("Failed to register callback!"); - r = r | ret; + /* Move to next handle */ + i++; } + registered = 0; +} + +static void tel_ready_cb(keynode_t *key, void *data) +{ + gboolean status = FALSE; - ret = vconf_notify_key_changed(VCONFKEY_TELEPHONY_SVC_ROAM, - indicator_rssi_change_cb, data); - if (ret != OK) { - ERR("Failed to register callback!"); - r = ret; + status = vconf_keynode_get_bool(key); + if (status == TRUE) { /* Telephony State - READY */ + __init_tel(data); } + else { /* Telephony State – NOT READY */ + /* De-initialization is optional here (ONLY if required) */ + __deinit_tel(); + } +} - indicator_rssi_change_cb(NULL, data); +static int register_rssi_module(void *data) +{ + int r = 0; + gboolean state = FALSE; + + retif(data == NULL, FAIL, "Invalid parameter!"); + + set_app_state(data); + + DBG("RSSI initialization"); + vconf_notify_key_changed(VCONFKEY_TELEPHONY_FLIGHT_MODE, _flight_mode, data); +// vconf_notify_key_changed(VCONFKEY_SETAPPL_SIM1_ICON, _sim_icon_update, data); +// vconf_notify_key_changed(VCONFKEY_SETAPPL_SIM2_ICON, _sim_icon_update, data); + + vconf_get_bool(VCONFKEY_TELEPHONY_READY, &state); + + if(state) + { + DBG("Telephony ready"); + __init_tel(data); + } + else + { + DBG("Telephony not ready"); + vconf_notify_key_changed(VCONFKEY_TELEPHONY_READY, tel_ready_cb, data); + } + + r = OK; return r; } @@ -311,30 +1024,25 @@ static int unregister_rssi_module(void) { int ret; - ret = vconf_ignore_key_changed(VCONFKEY_TELEPHONY_RSSI, - indicator_rssi_change_cb); + ret = vconf_ignore_key_changed(VCONFKEY_TELEPHONY_READY, + tel_ready_cb); if (ret != OK) ERR("Failed to unregister callback!"); - ret = vconf_ignore_key_changed(VCONFKEY_TELEPHONY_SIM_SLOT, - indicator_rssi_change_cb); + ret = vconf_ignore_key_changed(VCONFKEY_TELEPHONY_FLIGHT_MODE, + _flight_mode); if (ret != OK) ERR("Failed to unregister callback!"); - - ret = vconf_ignore_key_changed(VCONFKEY_TELEPHONY_SVCTYPE, - indicator_rssi_change_cb); +#if 0 + ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_SIM1_ICON, _sim_icon_update); if (ret != OK) ERR("Failed to unregister callback!"); - ret = vconf_ignore_key_changed(VCONFKEY_TELEPHONY_FLIGHT_MODE, - indicator_rssi_change_cb); + ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_SIM2_ICON, _sim_icon_update); if (ret != OK) ERR("Failed to unregister callback!"); - - ret = vconf_ignore_key_changed(VCONFKEY_TELEPHONY_SVC_ROAM, - indicator_rssi_change_cb); - if (ret != OK) - ERR("Failed to unregister callback!"); - - return OK; +#endif + __deinit_tel(); + ret = OK; + return ret; } diff --git a/test/indicator_test_util.h b/modules/network/rssi.h old mode 100755 new mode 100644 similarity index 57% rename from test/indicator_test_util.h rename to modules/network/rssi.h index 414148a..0ace0dd --- a/test/indicator_test_util.h +++ b/modules/network/rssi.h @@ -1,23 +1,26 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd + * Indicator * - * Licensed under the Flora License, Version 1.1 (the "License"); + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://floralicense.org/license/ + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * */ -#ifndef __INDICATOR_TEST_UTIL_H__ -#define __INDICATOR_TEST_UTIL_H__ -extern int print_indicator_icon_object(Indicator_Icon_Object *obj); -extern int print_indicator_icon_list(Eina_List *list); +#ifndef __INDICATOR_RSSI_H__ +#define __INDICATOR_RSSI_H__ + +extern int rssi_get_sim_number(TapiHandle *handle_obj); #endif diff --git a/modules/power/battery.c b/modules/power/battery.c old mode 100755 new mode 100644 index e049672..f5f2ef6 --- a/modules/power/battery.c +++ b/modules/power/battery.c @@ -1,17 +1,20 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd + * Indicator * - * Licensed under the Flora License, Version 1.1 (the "License"); + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://floralicense.org/license/ + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * */ @@ -21,54 +24,66 @@ #include #include "common.h" #include "indicator.h" -#include "indicator_ui.h" +#include "main.h" #include "modules.h" -#include "indicator_icon_util.h" +#include "icon.h" #include "indicator_gui.h" +#include "util.h" +#include "box.h" +#include "log.h" -#define ICON_PRIORITY INDICATOR_PRIORITY_FIXED4 +#define ICON_PRIORITY INDICATOR_PRIORITY_FIXED9 #define MODULE_NAME "battery" +#define MODULE_NAME_DIGIT "battery" +#define MODULE_NAME_DIGIT2 "battery" #define TIMER_INTERVAL 0.7 -#define BATTERY_TEXTWIDTH 62 -#define BATTERY_VALUE_FONT_SIZE 20 -#define BATTERY_PERCENT_FONT_SIZE 20 -#define BATTERY_PERCENT_FONT_STYLE "Bold" + static int register_battery_module(void *data); static int unregister_battery_module(void); static int wake_up_cb(void *data); +static void _resize_battery_digits_icons_box(void); -Indicator_Icon_Object battery[INDICATOR_WIN_MAX] = { -{ - .win_type = INDICATOR_WIN_PORT, + +icon_s battery = { .type = INDICATOR_IMG_ICON, .name = MODULE_NAME, .priority = ICON_PRIORITY, .area = INDICATOR_ICON_AREA_FIXED, .always_top = EINA_FALSE, .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, .img_obj = {0,0,BATTERY_ICON_WIDTH,BATTERY_ICON_HEIGHT}, .obj_exist = EINA_FALSE, .init = register_battery_module, .fini = unregister_battery_module, - .wake_up = wake_up_cb -}, -{ - .win_type = INDICATOR_WIN_LAND, - .type = INDICATOR_IMG_ICON, + .wake_up = wake_up_cb, + .digit_area = -1 +}; + +icon_s digit = { + .type = INDICATOR_DIGIT_ICON, + .name = MODULE_NAME_DIGIT, + .priority = ICON_PRIORITY, + .area = INDICATOR_ICON_AREA_FIXED, + .always_top = EINA_FALSE, + .exist_in_view = EINA_FALSE, + .img_obj = {0,0,7,10}, + .obj_exist = EINA_FALSE, + .wake_up = wake_up_cb, + .digit_area = DIGIT_UNITY +}; + +icon_s digit_additional = { + .type = INDICATOR_DIGIT_ICON, .name = MODULE_NAME, .priority = ICON_PRIORITY, .area = INDICATOR_ICON_AREA_FIXED, .always_top = EINA_FALSE, .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, - .img_obj = {0,0,BATTERY_ICON_WIDTH,BATTERY_ICON_HEIGHT}, + .img_obj = {0,0,7,10}, .obj_exist = EINA_FALSE, - .init = register_battery_module, - .fini = unregister_battery_module, - .wake_up = wake_up_cb -} + .wake_up = wake_up_cb, + .digit_area = DIGIT_DOZENS_UNITY }; enum { @@ -77,7 +92,6 @@ enum { INDICATOR_CLOCK_MODE_MAX }; -static int clock_mode = INDICATOR_CLOCK_MODE_12H; enum { BATTERY_ICON_WIDTH_12H, @@ -86,41 +100,161 @@ enum { }; enum { - BATTERY_LEVEL_6, + BATTERY_LEVEL_8, BATTERY_LEVEL_20, }; enum { LEVEL_MIN = 0, - LEVEL_0 = LEVEL_MIN, - LEVEL_1, - LEVEL_2, - LEVEL_3, - LEVEL_4, - LEVEL_5, - LEVEL_6, - LEVEL_MAX = LEVEL_6, + LEVEL_0 = LEVEL_MIN, /* 0% */ + LEVEL_1, /* 1 ~ 5% */ + LEVEL_2, /* 6 ~ 10% */ + LEVEL_3, /* 11 ~ 15% */ + LEVEL_4, /* 16 ~ 20% */ + LEVEL_5, /* 21 ~ 25 % */ + LEVEL_6, /* 25 ~ 30 % */ + LEVEL_7, /* 31 ~ 35 % */ + LEVEL_8, /* 36 ~ 40 % */ + LEVEL_9, /* 41 ~ 45 % */ + LEVEL_10, /* 46 ~ 50 % */ + LEVEL_11, /* 51 ~ 55 % */ + LEVEL_12, /* 56 ~ 60 % */ + LEVEL_13, /* 61 ~ 65 % */ + LEVEL_14, /* 66 ~ 70 % */ + LEVEL_15, /* 71 ~ 75 % */ + LEVEL_16, /* 76 ~ 80 % */ + LEVEL_17, /* 81 ~ 85 % */ + LEVEL_18, /* 86 ~ 90 % */ + LEVEL_19, /* 91 ~ 95 % */ + LEVEL_20, /* 96 ~ 100 % */ + LEVEL_MAX = LEVEL_20, LEVEL_NUM, + LEVEL_FULL +}; + +enum { + LEVEL_PERCENTAGE_MIN = 0, + LEVEL_PERCENTAGE_0 = LEVEL_PERCENTAGE_MIN, /* 0% */ + LEVEL_PERCENTAGE_1, /* 1 ~ 10% */ + LEVEL_PERCENTAGE_2, /* 11 ~ 20% */ + LEVEL_PERCENTAGE_3, /* 21 ~ 30% */ + LEVEL_PERCENTAGE_4, /* 31 ~ 40% */ + LEVEL_PERCENTAGE_5, /* 41 ~ 50 % */ + LEVEL_PERCENTAGE_6, /* 51 ~ 60 % */ + LEVEL_PERCENTAGE_7, /* 61 ~ 70 % */ + LEVEL_PERCENTAGE_8, /* 71 ~ 80 % */ + LEVEL_PERCENTAGE_9, /* 81 ~ 90 % */ + LEVEL_PERCENTAGE_10, /* 91 ~ 100 % */ + LEVEL_PERCENTAGE_MAX = LEVEL_PERCENTAGE_10, + LEVEL_PERCENTAGE_NUM }; +enum { + BATTERY_PERCENT_1_DIGIT = 0, + BATTERY_PERCENT_2_DIGITS, + BATTERY_PERCENT_DIGITS +}; + +enum { + BATTERY_ETC_STATE_FULL, + BATTERY_ETC_STATE_MAX, +}; + +static int batt_full = 0; + static const char *icon_path[LEVEL_NUM] = { - [LEVEL_0] = "Power/battery_6/B03_Power_battery_00.png", - [LEVEL_1] = "Power/battery_6/B03_Power_battery_01.png", - [LEVEL_2] = "Power/battery_6/B03_Power_battery_02.png", - [LEVEL_3] = "Power/battery_6/B03_Power_battery_03.png", - [LEVEL_4] = "Power/battery_6/B03_Power_battery_04.png", - [LEVEL_5] = "Power/battery_6/B03_Power_battery_05.png", - [LEVEL_6] = "Power/battery_6/B03_Power_battery_06.png", + [LEVEL_0] = "Power/B03_stat_sys_battery_4.png", + [LEVEL_1] = "Power/B03_stat_sys_battery_5.png", + [LEVEL_2] = "Power/B03_stat_sys_battery_10.png", + [LEVEL_3] = "Power/B03_stat_sys_battery_15.png", + [LEVEL_4] = "Power/B03_stat_sys_battery_20.png", + [LEVEL_5] = "Power/B03_stat_sys_battery_25.png", + [LEVEL_6] = "Power/B03_stat_sys_battery_30.png", + [LEVEL_7] = "Power/B03_stat_sys_battery_35.png", + [LEVEL_8] = "Power/B03_stat_sys_battery_40.png", + [LEVEL_9] = "Power/B03_stat_sys_battery_45.png", + [LEVEL_10] = "Power/B03_stat_sys_battery_50.png", + [LEVEL_11] = "Power/B03_stat_sys_battery_55.png", + [LEVEL_12] = "Power/B03_stat_sys_battery_60.png", + [LEVEL_13] = "Power/B03_stat_sys_battery_65.png", + [LEVEL_14] = "Power/B03_stat_sys_battery_70.png", + [LEVEL_15] = "Power/B03_stat_sys_battery_75.png", + [LEVEL_16] = "Power/B03_stat_sys_battery_80.png", + [LEVEL_17] = "Power/B03_stat_sys_battery_85.png", + [LEVEL_18] = "Power/B03_stat_sys_battery_90.png", + [LEVEL_19] = "Power/B03_stat_sys_battery_95.png", + [LEVEL_20] = "Power/B03_stat_sys_battery_100.png" }; static const char *charging_icon_path[LEVEL_NUM] = { - [LEVEL_0] = "Power/battery_6/B03_Power_connected_00.png", - [LEVEL_1] = "Power/battery_6/B03_Power_connected_01.png", - [LEVEL_2] = "Power/battery_6/B03_Power_connected_02.png", - [LEVEL_3] = "Power/battery_6/B03_Power_connected_03.png", - [LEVEL_4] = "Power/battery_6/B03_Power_connected_04.png", - [LEVEL_5] = "Power/battery_6/B03_Power_connected_05.png", - [LEVEL_6] = "Power/battery_6/B03_Power_connected_06.png", + [LEVEL_0] = "Power/B03_stat_sys_battery_charge_anim4.png", + [LEVEL_1] = "Power/B03_stat_sys_battery_charge_anim5.png", + [LEVEL_2] = "Power/B03_stat_sys_battery_charge_anim10.png", + [LEVEL_3] = "Power/B03_stat_sys_battery_charge_anim15.png", + [LEVEL_4] = "Power/B03_stat_sys_battery_charge_anim20.png", + [LEVEL_5] = "Power/B03_stat_sys_battery_charge_anim25.png", + [LEVEL_6] = "Power/B03_stat_sys_battery_charge_anim30.png", + [LEVEL_7] = "Power/B03_stat_sys_battery_charge_anim35.png", + [LEVEL_8] = "Power/B03_stat_sys_battery_charge_anim40.png", + [LEVEL_9] = "Power/B03_stat_sys_battery_charge_anim45.png", + [LEVEL_10] = "Power/B03_stat_sys_battery_charge_anim50.png", + [LEVEL_11] = "Power/B03_stat_sys_battery_charge_anim55.png", + [LEVEL_12] = "Power/B03_stat_sys_battery_charge_anim60.png", + [LEVEL_13] = "Power/B03_stat_sys_battery_charge_anim65.png", + [LEVEL_14] = "Power/B03_stat_sys_battery_charge_anim70.png", + [LEVEL_15] = "Power/B03_stat_sys_battery_charge_anim75.png", + [LEVEL_16] = "Power/B03_stat_sys_battery_charge_anim80.png", + [LEVEL_17] = "Power/B03_stat_sys_battery_charge_anim85.png", + [LEVEL_18] = "Power/B03_stat_sys_battery_charge_anim90.png", + [LEVEL_19] = "Power/B03_stat_sys_battery_charge_anim95.png", + [LEVEL_20] = "Power/B03_stat_sys_battery_charge_anim100.png" +}; +#if 0 +static const char *percentage_bg_icon_path[BATTERY_PERCENT_DIGITS] = { + [BATTERY_PERCENT_1_DIGIT] = "Power/battery_text/B03_stat_sys_battery_bg_1.png", + [BATTERY_PERCENT_2_DIGITS] = "Power/battery_text/B03_stat_sys_battery_bg_2.png" +}; +#endif +static const char *percentage_battery_digit_icon_path[11] = { + [0] = "Power/battery_text/B03_stat_sys_battery_num_0.png", + [1] = "Power/battery_text/B03_stat_sys_battery_num_1.png", + [2] = "Power/battery_text/B03_stat_sys_battery_num_2.png", + [3] = "Power/battery_text/B03_stat_sys_battery_num_3.png", + [4] = "Power/battery_text/B03_stat_sys_battery_num_4.png", + [5] = "Power/battery_text/B03_stat_sys_battery_num_5.png", + [6] = "Power/battery_text/B03_stat_sys_battery_num_6.png", + [7] = "Power/battery_text/B03_stat_sys_battery_num_7.png", + [8] = "Power/battery_text/B03_stat_sys_battery_num_8.png", + [9] = "Power/battery_text/B03_stat_sys_battery_num_9.png", + [10] = "Power/battery_text/B03_stat_sys_battery_num_100.png" +}; + +static const char *percentage_battery_icon_path[LEVEL_PERCENTAGE_NUM] = { + [LEVEL_PERCENTAGE_0] = "Power/B03_stat_sys_battery_percent_0.png", + [LEVEL_PERCENTAGE_1] = "Power/B03_stat_sys_battery_percent_10.png", + [LEVEL_PERCENTAGE_2] = "Power/B03_stat_sys_battery_percent_20.png", + [LEVEL_PERCENTAGE_3] = "Power/B03_stat_sys_battery_percent_30.png", + [LEVEL_PERCENTAGE_4] = "Power/B03_stat_sys_battery_percent_40.png", + [LEVEL_PERCENTAGE_5] = "Power/B03_stat_sys_battery_percent_50.png", + [LEVEL_PERCENTAGE_6] = "Power/B03_stat_sys_battery_percent_60.png", + [LEVEL_PERCENTAGE_7] = "Power/B03_stat_sys_battery_percent_70.png", + [LEVEL_PERCENTAGE_8] = "Power/B03_stat_sys_battery_percent_80.png", + [LEVEL_PERCENTAGE_9] = "Power/B03_stat_sys_battery_percent_90.png", + [LEVEL_PERCENTAGE_10] = "Power/B03_stat_sys_battery_percent_100.png" +}; + +static const char *percentage_battery_charging_icon_path[LEVEL_PERCENTAGE_NUM] = { + [LEVEL_PERCENTAGE_0] = "Power/B03_stat_sys_battery_percent_charge_anim0.png", + [LEVEL_PERCENTAGE_1] = "Power/B03_stat_sys_battery_percent_charge_anim10.png", + [LEVEL_PERCENTAGE_2] = "Power/B03_stat_sys_battery_percent_charge_anim20.png", + [LEVEL_PERCENTAGE_3] = "Power/B03_stat_sys_battery_percent_charge_anim30.png", + [LEVEL_PERCENTAGE_4] = "Power/B03_stat_sys_battery_percent_charge_anim40.png", + [LEVEL_PERCENTAGE_5] = "Power/B03_stat_sys_battery_percent_charge_anim50.png", + [LEVEL_PERCENTAGE_6] = "Power/B03_stat_sys_battery_percent_charge_anim60.png", + [LEVEL_PERCENTAGE_7] = "Power/B03_stat_sys_battery_percent_charge_anim70.png", + [LEVEL_PERCENTAGE_8] = "Power/B03_stat_sys_battery_percent_charge_anim80.png", + [LEVEL_PERCENTAGE_9] = "Power/B03_stat_sys_battery_percent_charge_anim90.png", + [LEVEL_PERCENTAGE_10] = "Power/B03_stat_sys_battery_percent_charge_anim100.png" }; enum { @@ -150,51 +284,6 @@ enum { FUEL_GAUGE_LV_NUM, }; -static const char *fuel_guage_icon_path[BATTERY_ICON_WIDTH_NUM][FUEL_GAUGE_LV_NUM] = { - [BATTERY_ICON_WIDTH_12H][FUEL_GAUGE_LV_0] = "Power/12H/B03_battery_animation_12h_00.png", - [BATTERY_ICON_WIDTH_12H][FUEL_GAUGE_LV_1] = "Power/12H/B03_battery_animation_12h_01.png", - [BATTERY_ICON_WIDTH_12H][FUEL_GAUGE_LV_2] = "Power/12H/B03_battery_animation_12h_02.png", - [BATTERY_ICON_WIDTH_12H][FUEL_GAUGE_LV_3] = "Power/12H/B03_battery_animation_12h_03.png", - [BATTERY_ICON_WIDTH_12H][FUEL_GAUGE_LV_4] = "Power/12H/B03_battery_animation_12h_04.png", - [BATTERY_ICON_WIDTH_12H][FUEL_GAUGE_LV_5] = "Power/12H/B03_battery_animation_12h_05.png", - [BATTERY_ICON_WIDTH_12H][FUEL_GAUGE_LV_6] = "Power/12H/B03_battery_animation_12h_06.png", - [BATTERY_ICON_WIDTH_12H][FUEL_GAUGE_LV_7] = "Power/12H/B03_battery_animation_12h_07.png", - [BATTERY_ICON_WIDTH_12H][FUEL_GAUGE_LV_8] = "Power/12H/B03_battery_animation_12h_08.png", - [BATTERY_ICON_WIDTH_12H][FUEL_GAUGE_LV_9] = "Power/12H/B03_battery_animation_12h_09.png", - [BATTERY_ICON_WIDTH_12H][FUEL_GAUGE_LV_10] = "Power/12H/B03_battery_animation_12h_10.png", - [BATTERY_ICON_WIDTH_12H][FUEL_GAUGE_LV_11] = "Power/12H/B03_battery_animation_12h_11.png", - [BATTERY_ICON_WIDTH_12H][FUEL_GAUGE_LV_12] = "Power/12H/B03_battery_animation_12h_12.png", - [BATTERY_ICON_WIDTH_12H][FUEL_GAUGE_LV_13] = "Power/12H/B03_battery_animation_12h_13.png", - [BATTERY_ICON_WIDTH_12H][FUEL_GAUGE_LV_14] = "Power/12H/B03_battery_animation_12h_14.png", - [BATTERY_ICON_WIDTH_12H][FUEL_GAUGE_LV_15] = "Power/12H/B03_battery_animation_12h_15.png", - [BATTERY_ICON_WIDTH_12H][FUEL_GAUGE_LV_16] = "Power/12H/B03_battery_animation_12h_16.png", - [BATTERY_ICON_WIDTH_12H][FUEL_GAUGE_LV_17] = "Power/12H/B03_battery_animation_12h_17.png", - [BATTERY_ICON_WIDTH_12H][FUEL_GAUGE_LV_18] = "Power/12H/B03_battery_animation_12h_18.png", - [BATTERY_ICON_WIDTH_12H][FUEL_GAUGE_LV_19] = "Power/12H/B03_battery_animation_12h_19.png", - [BATTERY_ICON_WIDTH_12H][FUEL_GAUGE_LV_20] = "Power/12H/B03_battery_animation_12h_20.png", - [BATTERY_ICON_WIDTH_24H][FUEL_GAUGE_LV_0] = "Power/24H/B03_battery_animation_24h_00.png", - [BATTERY_ICON_WIDTH_24H][FUEL_GAUGE_LV_1] = "Power/24H/B03_battery_animation_24h_01.png", - [BATTERY_ICON_WIDTH_24H][FUEL_GAUGE_LV_2] = "Power/24H/B03_battery_animation_24h_02.png", - [BATTERY_ICON_WIDTH_24H][FUEL_GAUGE_LV_3] = "Power/24H/B03_battery_animation_24h_03.png", - [BATTERY_ICON_WIDTH_24H][FUEL_GAUGE_LV_4] = "Power/24H/B03_battery_animation_24h_04.png", - [BATTERY_ICON_WIDTH_24H][FUEL_GAUGE_LV_5] = "Power/24H/B03_battery_animation_24h_05.png", - [BATTERY_ICON_WIDTH_24H][FUEL_GAUGE_LV_6] = "Power/24H/B03_battery_animation_24h_06.png", - [BATTERY_ICON_WIDTH_24H][FUEL_GAUGE_LV_7] = "Power/24H/B03_battery_animation_24h_07.png", - [BATTERY_ICON_WIDTH_24H][FUEL_GAUGE_LV_8] = "Power/24H/B03_battery_animation_24h_08.png", - [BATTERY_ICON_WIDTH_24H][FUEL_GAUGE_LV_9] = "Power/24H/B03_battery_animation_24h_09.png", - [BATTERY_ICON_WIDTH_24H][FUEL_GAUGE_LV_10] = "Power/24H/B03_battery_animation_24h_10.png", - [BATTERY_ICON_WIDTH_24H][FUEL_GAUGE_LV_11] = "Power/24H/B03_battery_animation_24h_11.png", - [BATTERY_ICON_WIDTH_24H][FUEL_GAUGE_LV_12] = "Power/24H/B03_battery_animation_24h_12.png", - [BATTERY_ICON_WIDTH_24H][FUEL_GAUGE_LV_13] = "Power/24H/B03_battery_animation_24h_13.png", - [BATTERY_ICON_WIDTH_24H][FUEL_GAUGE_LV_14] = "Power/24H/B03_battery_animation_24h_14.png", - [BATTERY_ICON_WIDTH_24H][FUEL_GAUGE_LV_15] = "Power/24H/B03_battery_animation_24h_15.png", - [BATTERY_ICON_WIDTH_24H][FUEL_GAUGE_LV_16] = "Power/24H/B03_battery_animation_24h_16.png", - [BATTERY_ICON_WIDTH_24H][FUEL_GAUGE_LV_17] = "Power/24H/B03_battery_animation_24h_17.png", - [BATTERY_ICON_WIDTH_24H][FUEL_GAUGE_LV_18] = "Power/24H/B03_battery_animation_24h_18.png", - [BATTERY_ICON_WIDTH_24H][FUEL_GAUGE_LV_19] = "Power/24H/B03_battery_animation_24h_19.png", - [BATTERY_ICON_WIDTH_24H][FUEL_GAUGE_LV_20] = "Power/24H/B03_battery_animation_24h_20.png", -}; - struct battery_level_info { int current_level; int current_capa; @@ -204,19 +293,20 @@ struct battery_level_info { static struct battery_level_info _level; static Ecore_Timer *timer; -static int battery_level_type = BATTERY_LEVEL_20; -static Eina_Bool battery_percentage_on = EINA_FALSE; -static Eina_Bool battery_charging = EINA_FALSE; +static int battery_level_type = BATTERY_LEVEL_8; +static int battery_charging = EINA_FALSE; static int aniIndex = -1; +static int prev_mode = -1; +static int prev_level = -1; +static int prev_full = -1; +static int battery_percentage = -1; +static Eina_Bool is_battery_percentage_shown = EINA_FALSE; static void set_app_state(void* data) { - int i = 0; - - for (i=0 ; i= 100) - level = FUEL_GAUGE_LV_MAX; - else if (capacity < 3) - level = FUEL_GAUGE_LV_0; - else - level = (int)((capacity + 2) / 5); - } else { - if (capacity > 100) - level = LEVEL_MAX; - else if (capacity >= 80) - level = LEVEL_6; - else if (capacity >= 60) - level = LEVEL_5; - else if (capacity >= 40) - level = LEVEL_4; - else if (capacity >= 25) - level = LEVEL_3; - else if (capacity >= 15) - level = LEVEL_2; - else if (capacity >= 5) - level = LEVEL_1; + if(is_battery_percentage_shown) + { + if (battery_level_type == BATTERY_LEVEL_20) { + if (capacity >= 100) + level = FUEL_GAUGE_LV_MAX; + else if (capacity < 3) + level = FUEL_GAUGE_LV_0; + else + level = (int)((capacity + 2) / 5); + } else - level = LEVEL_0; + { + if (capacity >= 91) + level = LEVEL_PERCENTAGE_10; + else if (capacity >= 81) + level = LEVEL_PERCENTAGE_9; + else if (capacity >= 71) + level = LEVEL_PERCENTAGE_8; + else if (capacity >= 61) + level = LEVEL_PERCENTAGE_7; + else if (capacity >= 51) + level = LEVEL_PERCENTAGE_6; + else if (capacity >= 41) + level = LEVEL_PERCENTAGE_5; + else if (capacity >= 31) + level = LEVEL_PERCENTAGE_4; + else if (capacity >= 21) + level = LEVEL_PERCENTAGE_3; + else if (capacity >= 11) + level = LEVEL_PERCENTAGE_2; + else if (capacity >= 1) + level = LEVEL_PERCENTAGE_1; + else + level = LEVEL_PERCENTAGE_0; + } + } + else + { + if (battery_level_type == BATTERY_LEVEL_20) { + if (capacity >= 100) + level = FUEL_GAUGE_LV_MAX; + else if (capacity < 3) + level = FUEL_GAUGE_LV_0; + else + level = (int)((capacity + 2) / 5); + } else { + if (capacity >= 96) + level = LEVEL_20; + else if (capacity >= 91) + level = LEVEL_19; + else if (capacity >= 86) + level = LEVEL_18; + else if (capacity >= 81) + level = LEVEL_17; + else if (capacity >= 76) + level = LEVEL_16; + else if (capacity >= 71) + level = LEVEL_15; + else if (capacity >= 66) + level = LEVEL_14; + else if (capacity >= 61) + level = LEVEL_13; + else if (capacity >= 56) + level = LEVEL_12; + else if (capacity >= 51) + level = LEVEL_11; + else if (capacity >= 46) + level = LEVEL_10; + else if (capacity >= 41) + level = LEVEL_9; + else if (capacity >= 36) + level = LEVEL_8; + else if (capacity >= 31) + level = LEVEL_7; + else if (capacity >= 26) + level = LEVEL_6; + else if (capacity >= 21) + level = LEVEL_5; + else if (capacity >= 16) + level = LEVEL_4; + else if (capacity >= 11) + level = LEVEL_3; + else if (capacity >= 6) + level = LEVEL_2; + else if (capacity >= 1) + level = LEVEL_1; + else + level = LEVEL_0; + } } - return level; } -static void show_battery_icon(void) + +#if 0 +static void icon_animation_set(enum indicator_icon_ani type) { - int i = 0; - for(i=0 ; itype = INDICATOR_TXT_WITH_IMG_ICON; - temp_buf = eina_strbuf_new(); - percent_buf = eina_strbuf_new(); - - eina_strbuf_append_printf(temp_buf, "%d", value); - temp_str = eina_strbuf_string_steal(temp_buf); - eina_strbuf_append_printf(percent_buf, "%s", - indicator_util_icon_label_set - (temp_str, NULL, NULL, - BATTERY_VALUE_FONT_SIZE, - data)); - free(temp_str); - - eina_strbuf_append_printf(temp_buf, "%%"); - temp_str = eina_strbuf_string_steal(temp_buf); - eina_strbuf_append_printf(percent_buf, "%s", - indicator_util_icon_label_set - (temp_str, NULL, - BATTERY_PERCENT_FONT_STYLE, - BATTERY_PERCENT_FONT_SIZE, - data)); - free(temp_str); - - if (icon->txt_obj.data != NULL) - free(icon->txt_obj.data); - - icon->txt_obj.data = eina_strbuf_string_steal(percent_buf); - - if (temp_buf != NULL) - eina_strbuf_free(temp_buf); - - if (percent_buf != NULL) - eina_strbuf_free(percent_buf); - -} +#if 0 static Eina_Bool indicator_battery_charging_ani_cb(void *data) { @@ -368,9 +515,7 @@ static Eina_Bool indicator_battery_charging_ani_cb(void *data) if (_level.current_level == _level.max_level) { aniIndex = _level.max_level; - battery[0].img_obj.data = fuel_guage_icon_path[clock_mode][aniIndex]; - battery[1].img_obj.data = fuel_guage_icon_path[clock_mode][aniIndex]; - show_battery_icon(); + show_battery_icon(battery_charging,aniIndex); timer = NULL; return TIMER_STOP; } @@ -380,73 +525,64 @@ static Eina_Bool indicator_battery_charging_ani_cb(void *data) else aniIndex++; - battery[0].img_obj.data = fuel_guage_icon_path[clock_mode][aniIndex]; - battery[1].img_obj.data = fuel_guage_icon_path[clock_mode][aniIndex]; - show_battery_icon(); + show_battery_icon(battery_charging,aniIndex); return TIMER_CONTINUE; } +#endif + static int indicator_change_battery_image_level(void *data, int level) { retif(data == NULL, FAIL, "Invalid parameter!"); - if (battery_level_type == BATTERY_LEVEL_20) { - if (level < FUEL_GAUGE_LV_MIN) - level = FUEL_GAUGE_LV_MIN; - else if (level > FUEL_GAUGE_LV_MAX) - level = FUEL_GAUGE_LV_MAX; - } else { - if (level < LEVEL_MIN) - level = LEVEL_MIN; - else if (level > LEVEL_MAX) - level = LEVEL_MAX; + if(is_battery_percentage_shown) + { + if (battery_level_type == BATTERY_LEVEL_20) { + if (level < FUEL_GAUGE_LV_MIN) + level = FUEL_GAUGE_LV_MIN; + else if (level > FUEL_GAUGE_LV_MAX) + level = FUEL_GAUGE_LV_MAX; + } + else { + if (level < LEVEL_PERCENTAGE_MIN) + level = LEVEL_PERCENTAGE_MIN; + } + } + else + { + if (battery_level_type == BATTERY_LEVEL_20) { + if (level < FUEL_GAUGE_LV_MIN) + level = FUEL_GAUGE_LV_MIN; + else if (level > FUEL_GAUGE_LV_MAX) + level = FUEL_GAUGE_LV_MAX; + } else { + if (level < LEVEL_MIN) + level = LEVEL_MIN; + } } - DBG("level = %d",level); - battery[0].img_obj.data = fuel_guage_icon_path[clock_mode][level]; - battery[1].img_obj.data = fuel_guage_icon_path[clock_mode][level]; - show_battery_icon(); + /* Set arg for display image only or text with image */ + show_battery_icon(battery_charging,level); return OK; } -static void indicator_battery_check_percentage_option(void *data) +static void indicator_bttery_update_by_charging_state(void *data) { - int ret = FAIL; - int status = 0; - - retif(data == NULL, , "Invalid parameter!"); - - ret = vconf_get_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, &status); - if (ret != OK) - ERR("Fail to get [%s: %d]", - VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, ret); - - int i = 0; - for(i=0 ; i 100) battery_capa = 100; + battery_percentage = battery_capa; + + _resize_battery_digits_icons_box(); + _level.current_capa = battery_capa; - indicator_battery_check_percentage_option(data); + /* Check Battery Level */ level = __battery_capa_to_level(battery_capa); if (level == _level.current_level) - DBG("battery level is not changed"); + { + } else { _level.current_level = level; } + + indicator_battery_resize_percengate(data); indicator_bttery_update_by_charging_state(data); } @@ -498,14 +639,14 @@ static void indicator_battery_update_display(void *data) static void indicator_battery_check_charging(void *data) { - int ret = -1; int status = 0; - ret = vconf_get_int(VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW, &status); - if (ret != OK) - ERR("Fail to get [VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW:%d]", ret); - - INFO("Battery charge Status: %d", status); + if (vconf_get_int(VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW, &status) < 0) + { + ERR("Fail to get VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW"); + } else { + DBG("Battery charge Status: %d", status); + } battery_charging = status; @@ -517,11 +658,6 @@ static void indicator_battery_charging_cb(keynode_t *node, void *data) indicator_battery_check_charging(data); } -static void indicator_battery_percentage_option_cb(keynode_t *node, void *data) -{ - -} - static void indicator_battery_change_cb(keynode_t *node, void *data) { indicator_battery_update_display(data); @@ -531,8 +667,6 @@ static void indicator_battery_clock_format_changed_cb(keynode_t *node, void *dat { retif(data == NULL, , "Invalid parameter!"); - INFO("[Enter] indicator_battery_clock_format_changed_cb"); - indicator_battery_get_time_format(); indicator_battery_update_display(data); @@ -551,9 +685,57 @@ static void indicator_battery_pm_state_change_cb(keynode_t *node, void *data) } } +static void indicator_battery_batt_percentage_cb(keynode_t *node, void *data) +{ + struct appdata* ad = NULL; + int status = 0; + + ret_if(!data); + + ad = (struct appdata*)data; + + vconf_get_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, &status); + + if(status == 1) + { + is_battery_percentage_shown = EINA_TRUE; + _level.max_level = LEVEL_PERCENTAGE_MAX; + indicator_battery_update_display(data); + show_digits(); + box_update_display(&(ad->win)); + } + else + { + //remove battery percentage + is_battery_percentage_shown = EINA_FALSE; + _level.max_level = LEVEL_MAX; + indicator_battery_update_display(data); + hide_digits(); + box_update_display(&(ad->win)); + } +} + +static void indicator_battery_batt_low_state_change_cb(keynode_t *node, void *data) +{ + int status = 0; + retif(data == NULL, , "Invalid parameter!"); + + vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, &status); + + if(status == VCONFKEY_SYSMAN_BAT_FULL) + { + DBG("batt full"); + batt_full = 1; + } + else + { + batt_full = 0; + } + indicator_battery_update_display(data); +} + static int wake_up_cb(void *data) { - INFO("BATTERY wake_up_cb"); indicator_battery_clock_format_changed_cb(NULL, data); return OK; } @@ -564,51 +746,52 @@ static int register_battery_module(void *data) retif(data == NULL, FAIL, "Invalid parameter!"); + /* DO NOT change order of below fuctions */ set_app_state(data); indicator_battery_level_init(); ret = vconf_notify_key_changed(VCONFKEY_SYSMAN_BATTERY_CAPACITY, - indicator_battery_change_cb, data); + indicator_battery_change_cb, data); if (ret != OK) { - ERR("Failed to register callback!"); r = ret; } ret = vconf_notify_key_changed(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, - indicator_battery_change_cb, data); + indicator_battery_change_cb, data); if (ret != OK) { - ERR("Failed to register callback!"); r = r | ret; } ret = vconf_notify_key_changed(VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW, - indicator_battery_charging_cb, data); + indicator_battery_charging_cb, data); if (ret != OK) { - ERR("Failed to register callback!"); r = r | ret; } - ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, - indicator_battery_percentage_option_cb, data); + ret = vconf_notify_key_changed(VCONFKEY_REGIONFORMAT_TIME1224, + indicator_battery_clock_format_changed_cb, data); if (ret != OK) { - ERR("Failed to register callback!"); r = r | ret; } - - ret = vconf_notify_key_changed(VCONFKEY_REGIONFORMAT_TIME1224, - indicator_battery_clock_format_changed_cb, data); + ret = vconf_notify_key_changed(VCONFKEY_PM_STATE, + indicator_battery_pm_state_change_cb, data); if (ret != OK) { - ERR("Fail: register VCONFKEY_REGIONFORMAT_TIME1224"); r = r | ret; } - ret = vconf_notify_key_changed(VCONFKEY_PM_STATE, - indicator_battery_pm_state_change_cb, data); + ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, + indicator_battery_batt_percentage_cb, data); if (ret != OK) { - ERR("Fail: register VCONFKEY_PM_STATE"); r = r | ret; } - indicator_battery_update_display(data); + ret = vconf_notify_key_changed(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, + indicator_battery_batt_low_state_change_cb, data); + if (ret != OK) { + r = r | ret; + } + + indicator_battery_batt_percentage_cb(NULL,data); + indicator_battery_check_charging(data); return r; } @@ -616,40 +799,38 @@ static int register_battery_module(void *data) static int unregister_battery_module(void) { int ret; - int i = 0; ret = vconf_ignore_key_changed(VCONFKEY_SYSMAN_BATTERY_CAPACITY, - indicator_battery_change_cb); - if (ret != OK) - ERR("Failed to unregister callback!"); + indicator_battery_change_cb); - ret = vconf_ignore_key_changed(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, - indicator_battery_change_cb); - if (ret != OK) - ERR("Failed to unregister callback!"); + ret = ret | vconf_ignore_key_changed(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, + indicator_battery_change_cb); - ret = vconf_ignore_key_changed(VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW, - indicator_battery_charging_cb); - if (ret != OK) - ERR("Failed to unregister callback!"); + ret = ret | vconf_ignore_key_changed(VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW, + indicator_battery_charging_cb); + + ret = ret | vconf_ignore_key_changed(VCONFKEY_PM_STATE, + indicator_battery_pm_state_change_cb); + + ret = ret | vconf_ignore_key_changed(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, + indicator_battery_batt_percentage_cb); + ret = ret | vconf_ignore_key_changed(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, + indicator_battery_batt_low_state_change_cb); - ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, - indicator_battery_percentage_option_cb); - if (ret != OK) - ERR("Failed to unregister callback!"); - ret = vconf_ignore_key_changed(VCONFKEY_PM_STATE, - indicator_battery_pm_state_change_cb); - if (ret != OK) - ERR("Failed to unregister callback!"); delete_timer(); - for(i=0 ; i -#include -#include -#include "common.h" -#include "indicator.h" -#include "indicator_ui.h" -#include "modules.h" -#include "indicator_icon_util.h" - -#define ICON_PRIORITY INDICATOR_PRIORITY_NOTI_2 -#define MODULE_NAME "active_sync" -#define TIMER_INTERVAL 0.5 -#define SYNC_ICON_NUM 4 - -static int register_active_sync_module(void *data); -static int unregister_active_sync_module(void); -static int wake_up_cb(void *data); - -Indicator_Icon_Object active_sync[INDICATOR_WIN_MAX] = { -{ - .type = INDICATOR_IMG_ICON, - .win_type = INDICATOR_WIN_PORT, - .name = MODULE_NAME, - .priority = ICON_PRIORITY, - .always_top = EINA_FALSE, - .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, - .img_obj = {0,}, - .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_NOTI, - .init = register_active_sync_module, - .fini = unregister_active_sync_module, - .wake_up = wake_up_cb -}, -{ - .type = INDICATOR_IMG_ICON, - .win_type = INDICATOR_WIN_LAND, - .name = MODULE_NAME, - .priority = ICON_PRIORITY, - .always_top = EINA_FALSE, - .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, - .img_obj = {0,}, - .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_NOTI, - .init = register_active_sync_module, - .fini = unregister_active_sync_module, - .wake_up = wake_up_cb -} -}; - -static const char *icon_path[] = { - "Processing/B03_Processing_Syncing_01.png", - "Processing/B03_Processing_Syncing_02.png", - "Processing/B03_Processing_Syncing_03.png", - "Processing/B03_Processing_Syncing_04.png", - NULL -}; - -static Ecore_Timer *timer; -static int icon_index = 0; -static int updated_while_lcd_off = 0; - -static void set_app_state(void* data) -{ - int i = 0; - - for (i=0 ; i #include #include -#include +//#include #include +#include +//#include + #include "common.h" #include "indicator.h" -#include "indicator_ui.h" +#include "main.h" #include "modules.h" -#include "indicator_icon_util.h" +#include "icon.h" +#include "util.h" +#include "log.h" -#define ICON_PRIORITY INDICATOR_PRIORITY_NOTI_1 +#define ICON_PRIORITY INDICATOR_PRIORITY_MINICTRL3 #define MODULE_NAME "call" #define MINICONTROL_VOICE_NAME "[voicecall-quickpanel]" #define MINICONTROL_VIDEO_NAME "[videocall-quickpanel]" static int register_call_module(void *data); static int unregister_call_module(void); -static int mctrl_monitor_cb(int action, const char *name, void *data); +static void show_call_icon( void *data); + +enum { + CALL_UI_STATUS_NONE = 0, + CALL_UI_STATUS_INCOM, + CALL_UI_STATUS_OUTGOING, + CALL_UI_STATUS_ACTIVE, + CALL_UI_STATUS_HOLD, + CALL_UI_STATUS_END, +}; -Indicator_Icon_Object call[INDICATOR_WIN_MAX] = { -{ - .win_type = INDICATOR_WIN_PORT, +icon_s call = { .type = INDICATOR_IMG_ICON, .name = MODULE_NAME, .priority = ICON_PRIORITY, .always_top = EINA_TRUE, .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, .img_obj = {0,}, .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_NOTI, + .area = INDICATOR_ICON_AREA_MINICTRL, .init = register_call_module, .fini = unregister_call_module, - .minictrl_control = mctrl_monitor_cb -}, -{ - .win_type = INDICATOR_WIN_LAND, - .type = INDICATOR_IMG_ICON, - .name = MODULE_NAME, - .priority = ICON_PRIORITY, - .always_top = EINA_TRUE, - .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, - .img_obj = {0,}, - .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_NOTI, - .init = register_call_module, - .fini = unregister_call_module, - .minictrl_control = mctrl_monitor_cb -} + .minictrl_control = NULL //mctrl_monitor_cb }; +static int bt_state = 0; + static const char *icon_path[] = { "Call/B03_Call_Duringcall.png", + "Call/B03_Call_bluetooth.png", NULL }; static void set_app_state(void* data) { - int i = 0; - - for (i=0 ; i +#include +#include +#include +#include +#include #include #include #include #include "common.h" #include "indicator.h" -#include "indicator_ui.h" +#include "main.h" #include "modules.h" -#include "indicator_icon_util.h" +#include "icon.h" -#define ICON_PRIORITY INDICATOR_PRIORITY_SYSTEM_5 +#define ICON_PRIORITY INDICATOR_PRIORITY_SYSTEM_2 #define MODULE_NAME "call_divert" +#define MODULE_NAME_SIM2 "call_divert2" + +#define TAPI_HANDLE_MAX 2 static int register_call_divert_module(void *data); static int unregister_call_divert_module(void); +#ifdef _SUPPORT_SCREEN_READER +static char *access_info_cb(void *data, Evas_Object *obj); +#endif -Indicator_Icon_Object call_divert[INDICATOR_WIN_MAX] = { -{ - .win_type = INDICATOR_WIN_PORT, +static void on_noti(TapiHandle *handle_obj, const char *noti_id, void *data, void *user_data); + +icon_s call_divert = { .type = INDICATOR_IMG_ICON, .name = MODULE_NAME, .priority = ICON_PRIORITY, .always_top = EINA_FALSE, .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, .img_obj = {0,}, .obj_exist = EINA_FALSE, .init = register_call_divert_module, .fini = unregister_call_divert_module, .area = INDICATOR_ICON_AREA_SYSTEM, -}, -{ - .win_type = INDICATOR_WIN_LAND, +#ifdef _SUPPORT_SCREEN_READER + .tts_enable = EINA_TRUE, + .access_cb = access_info_cb +#endif +}; + +icon_s call_divert2 = { .type = INDICATOR_IMG_ICON, - .name = MODULE_NAME, + .name = MODULE_NAME_SIM2, .priority = ICON_PRIORITY, .always_top = EINA_FALSE, .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, .img_obj = {0,}, .obj_exist = EINA_FALSE, - .init = register_call_divert_module, - .fini = unregister_call_divert_module, .area = INDICATOR_ICON_AREA_SYSTEM, -} +#ifdef _SUPPORT_SCREEN_READER + .tts_enable = EINA_TRUE, + .access_cb = access_info_cb +#endif +}; + +/*FIXME*/ +enum { + SIM_ICON_SIM1 = 0, + SIM_ICON_SIM2, + SIM_ICON_CALL, + SIM_ICON_SMS, + SIM_ICON_MMS, + SIM_ICON_INTERNET, + SIM_ICON_HOME, + SIM_ICON_OFFICE, + SIM_ICON_HEART, + SIM_ICON_MAX +}; +static const char *icon_path[SIM_ICON_MAX] = { + [SIM_ICON_SIM1] = "Processing/B03_Call_divert_Sim_1.png", + [SIM_ICON_SIM2] = "Processing/B03_Call_divert_Sim_2.png", + [SIM_ICON_CALL] = "Processing/B03_Call_divert_Sim_phone.png", + [SIM_ICON_SMS] = "Processing/B03_Call_divert_Sim_SMS.png", + [SIM_ICON_MMS] = "Processing/B03_Call_divert_Sim_MMS.png", + [SIM_ICON_INTERNET] = "Processing/B03_Call_divert_Sim_global.png", + [SIM_ICON_HOME] = "Processing/B03_Call_divert_Sim_home.png", + [SIM_ICON_OFFICE] = "Processing/B03_Call_divert_Sim_office.png", + [SIM_ICON_HEART] = "Processing/B03_Call_divert_Sim_heart.png", }; -static const char *icon_path[] = { - "Processing/B03_Processing_calldivert.png", - NULL +enum { + SIM_1 = 1, + SIM_2 }; + + static void set_app_state(void* data) { - int i = 0; + call_divert.ad = data; + call_divert2.ad = data; +} - for (i=0 ; i +#include +#include +#include "common.h" +#include "indicator.h" +#include "main.h" +#include "modules.h" +#include "icon.h" + +#define ICON_PRIORITY INDICATOR_PRIORITY_NOTI_1 +#define MODULE_NAME "downloading" +#define TIMER_INTERVAL 0.3 +#define ICON_NUM 7 + +static int register_downloading_module(void *data); +static int unregister_downloading_module(void); +static int wake_up_cb(void *data); + +icon_s downloading = { + .type = INDICATOR_IMG_ICON, + .name = MODULE_NAME, + .priority = ICON_PRIORITY, + .always_top = EINA_FALSE, + .exist_in_view = EINA_FALSE, + .img_obj = {0,}, + .obj_exist = EINA_FALSE, + .area = INDICATOR_ICON_AREA_NOTI, + .init = register_downloading_module, + .fini = unregister_downloading_module, + .wake_up = wake_up_cb +}; + +static const char *icon_path[] = { + "Processing/B03_Processing_download_ani_00.png", + "Processing/B03_Processing_download_ani_01.png", + "Processing/B03_Processing_download_ani_02.png", + "Processing/B03_Processing_download_ani_03.png", + "Processing/B03_Processing_download_ani_04.png", + "Processing/B03_Processing_download_ani_05.png", + "Processing/B03_Processing_download_ani_06.png", + NULL +}; + +static Ecore_Timer *timer; +static int icon_index = 0; +static int updated_while_lcd_off = 0; + +static void set_app_state(void* data) +{ + downloading.ad = data; +} + +static void show_image_icon(void* data, int index) +{ + downloading.img_obj.data = icon_path[index]; + icon_show(&downloading); +} + +static void hide_image_icon(void) +{ + icon_hide(&downloading); +} + +static Eina_Bool show_downloading_icon_cb(void* data) +{ + + show_image_icon(data,icon_index); + icon_index = (++icon_index % ICON_NUM) ? icon_index : 0; + + return ECORE_CALLBACK_RENEW; +} + +static void show_downloading_icon(void* data) +{ + if(timer==NULL) + { + timer = ecore_timer_add(TIMER_INTERVAL, show_downloading_icon_cb, data); + } + else + { + ERR("show_downloading_icon!, timer"); + } +} + +static void hide_downloading_icon(void) +{ + if (timer != NULL) { + ecore_timer_del(timer); + timer = NULL; + icon_index = 0; + } + + hide_image_icon(); +} + + +static void indicator_downloading_change_cb(keynode_t *node, void *data) +{ + int status = 0; + int result = 0; + + retif(data == NULL, , "Invalid parameter!"); + + if(icon_get_update_flag()==0) + { + updated_while_lcd_off = 1; + return; + } + updated_while_lcd_off = 0; + +/* if (vconf_get_int(VCONFKEY_WIFI_DIRECT_RECEIVING_STATE, &status) == 0) + { + result = result | status; + } else { + ERR("Error getting VCONFKEY_WIFI_DIRECT_RECEIVING_STATE value"); + }*/ + + if (result == 1) { + show_downloading_icon(data); + + } else { + hide_downloading_icon(); + } +} + +static void indicator_downloading_pm_state_change_cb(keynode_t *node, void *data) +{ + int status = 0; + + retif(data == NULL, , "Invalid parameter!"); + + if (vconf_get_int(VCONFKEY_PM_STATE, &status) < 0) + { + ERR("Error getting VCONFKEY_PM_STATE value"); + + if (timer != NULL) + { + ecore_timer_del(timer); + timer = NULL; + } + + return; + } + + if(status == VCONFKEY_PM_STATE_LCDOFF) + { + if (timer != NULL) { + ecore_timer_del(timer); + timer = NULL; + } + } +} + +static int wake_up_cb(void *data) +{ + if(updated_while_lcd_off == 0 && downloading.obj_exist == EINA_FALSE) + { + return OK; + } + + indicator_downloading_change_cb(NULL, data); + return OK; +} + +static int register_downloading_module(void *data) +{ + int ret = 0; + + retif(data == NULL, FAIL, "Invalid parameter!"); + + set_app_state(data); + +// ret = ret | vconf_notify_key_changed(VCONFKEY_WIFI_DIRECT_RECEIVING_STATE, indicator_downloading_change_cb, data); + + ret = ret | vconf_notify_key_changed(VCONFKEY_PM_STATE, + indicator_downloading_pm_state_change_cb, data); + + indicator_downloading_change_cb(NULL, data); + + return ret; +} + +static int unregister_downloading_module(void) +{ + int ret = 0; + +// ret = ret | vconf_ignore_key_changed(VCONFKEY_WIFI_DIRECT_RECEIVING_STATE, indicator_downloading_change_cb); + + ret = ret | vconf_ignore_key_changed(VCONFKEY_PM_STATE, + indicator_downloading_pm_state_change_cb); + + return ret; +} diff --git a/modules/processing/sos.c b/modules/processing/sos.c deleted file mode 100755 index 7764f36..0000000 --- a/modules/processing/sos.c +++ /dev/null @@ -1,245 +0,0 @@ -/* - * Copyright 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. - */ - - -#include -#include -#include -#include -#include "common.h" -#include "indicator.h" -#include "indicator_ui.h" -#include "modules.h" -#include "indicator_icon_util.h" - -#define ICON_PRIORITY INDICATOR_PRIORITY_NOTI_2 -#define MODULE_NAME "sos" - -static int register_sos_module(void *data); -static int unregister_sos_module(void); -static int wake_up_cb(void *data); - - -Indicator_Icon_Object sos[INDICATOR_WIN_MAX] = { -{ - .win_type = INDICATOR_WIN_PORT, - .type = INDICATOR_IMG_ICON, - .name = MODULE_NAME, - .priority = ICON_PRIORITY, - .always_top = EINA_TRUE, - .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, - .img_obj = {0,}, - .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_NOTI, - .init = register_sos_module, - .fini = unregister_sos_module, - .wake_up = wake_up_cb -}, -{ - .win_type = INDICATOR_WIN_LAND, - .type = INDICATOR_IMG_ICON, - .name = MODULE_NAME, - .priority = ICON_PRIORITY, - .always_top = EINA_TRUE, - .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, - .img_obj = {0,}, - .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_NOTI, - .init = register_sos_module, - .fini = unregister_sos_module, - .wake_up = wake_up_cb -} -}; - -static const char *icon_path[] = { - "Call/B03_Call_SOSmessge_active.png", - NULL -}; -static int updated_while_lcd_off = 0; - -static void set_app_state(void* data) -{ - int i = 0; - - for (i=0 ; i +#include +#include +//#include +#include + +#include "common.h" +#include "main.h" +#include "modules.h" +#include "icon.h" +#include "util.h" + +#define ICON_PRIORITY INDICATOR_PRIORITY_FIXED8 +#define MODULE_NAME "transfer" +#define TIMER_INTERVAL 0.03 + +static int register_transfer_module(void *data); +static int unregister_transfer_module(void); +#ifdef _SUPPORT_SCREEN_READER +static char *access_info_cb(void *data, Evas_Object *obj); +#endif + +static int transfer_type = -1; + +static const char *icon_path[TRANSFER_MAX] = { + [TRANSFER_NONE] = "Connection/B03_conection_not_UPdownload.png", + [TRANSFER_UP] = "Connection/B03_connection_UPload.png", + [TRANSFER_DOWN] = "Connection/B03_connection_download.png", + [TRANSFER_UPDOWN] = "Connection/B03_conection_UPdownload.png" +}; + +icon_s transfer = { + .type = INDICATOR_IMG_ICON, + .name = MODULE_NAME, + .priority = ICON_PRIORITY, + .always_top = EINA_FALSE, + .exist_in_view = EINA_FALSE, + .area = INDICATOR_ICON_AREA_FIXED, + .img_obj = {0,}, + .obj_exist = EINA_FALSE, + .init = register_transfer_module, + .fini = unregister_transfer_module, +#ifdef _SUPPORT_SCREEN_READER + .tts_enable = EINA_TRUE, + .access_cb = access_info_cb, +#endif +}; + +static int prevIndex = -1; + +static void set_app_state(void* data) +{ + transfer.ad = data; +} + +static void hide_image_icon(void) +{ + icon_hide(&transfer); + + prevIndex = -1; + transfer_type = -1; +} + +static void show_image_icon(void *data, int index) +{ + if(prevIndex == index) + { + return; + } + + if(index == -1) { + hide_image_icon(); + } else { + transfer.img_obj.data = icon_path[index]; + icon_show(&transfer); + + util_signal_emit(transfer.ad,"indicator.connection.show","indicator.prog"); + } + + prevIndex = index; + +} + +void show_transfer_icon(void *data,int index,int type) +{ + transfer_type = type; + show_image_icon(data,index); + +} + +void hide_transfer_icon(int type) +{ + if(transfer_type!=-1 && transfer_type!=type) + { + return; + } + + hide_image_icon(); + util_signal_emit(transfer.ad,"indicator.connection.hide","indicator.prog"); + transfer_type = -1; +} + +#ifdef _SUPPORT_SCREEN_READER +static char *access_info_cb(void *data, Evas_Object *obj) +{ + char *tmp = NULL; + char buf[256] = {0,}; + int svc_type = 0; + int status = 0; + + wifi_get_connection_state(&status); + + if (status == WIFI_CONNECTION_STATE_CONNECTED) { + snprintf(buf, sizeof(buf), "%s, %s, %s", _("IDS_IDLE_BODY_WI_FI"),_("Data network"),_("IDS_IDLE_BODY_STATUS_BAR_ITEM")); + } else { + vconf_get_int(VCONFKEY_TELEPHONY_SVCTYPE, &svc_type); + + switch(svc_type) + { + case VCONFKEY_TELEPHONY_SVCTYPE_3G: + snprintf(buf, sizeof(buf), "%s, %s, %s", _("IDS_IDLE_BODY_3G"),_("Data network"),_("IDS_IDLE_BODY_STATUS_BAR_ITEM")); + break; + case VCONFKEY_TELEPHONY_SVCTYPE_LTE: + snprintf(buf, sizeof(buf), "%s, %s, %s", _("4G"),_("Data network"),_("IDS_IDLE_BODY_STATUS_BAR_ITEM")); + break; + default: + break; + } + } + tmp = strdup(buf); + if (!tmp) return NULL; + return tmp; +} +#endif +static int register_transfer_module(void *data) +{ + set_app_state(data); + return OK; +} + +static int unregister_transfer_module(void) +{ + return OK; +} diff --git a/modules/processing/uploading.c b/modules/processing/uploading.c new file mode 100644 index 0000000..e31ebb3 --- /dev/null +++ b/modules/processing/uploading.c @@ -0,0 +1,202 @@ +/* + * Indicator + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +#include +#include +#include +#include "common.h" +#include "indicator.h" +#include "main.h" +#include "modules.h" +#include "icon.h" + +#define ICON_PRIORITY INDICATOR_PRIORITY_NOTI_1 +#define MODULE_NAME "uploading" +#define TIMER_INTERVAL 0.3 +#define ICON_NUM 7 + +static int register_uploading_module(void *data); +static int unregister_uploading_module(void); +static int wake_up_cb(void *data); + +icon_s uploading = { + .type = INDICATOR_IMG_ICON, + .name = MODULE_NAME, + .priority = ICON_PRIORITY, + .always_top = EINA_FALSE, + .exist_in_view = EINA_FALSE, + .img_obj = {0,}, + .obj_exist = EINA_FALSE, + .area = INDICATOR_ICON_AREA_NOTI, + .init = register_uploading_module, + .fini = unregister_uploading_module, + .wake_up = wake_up_cb +}; + +static const char *icon_path[] = { + "Processing/B03_Processing_upload_ani_00.png", + "Processing/B03_Processing_upload_ani_01.png", + "Processing/B03_Processing_upload_ani_02.png", + "Processing/B03_Processing_upload_ani_03.png", + "Processing/B03_Processing_upload_ani_04.png", + "Processing/B03_Processing_upload_ani_05.png", + "Processing/B03_Processing_upload_ani_06.png", + NULL +}; + +static Ecore_Timer *timer; +static int icon_index = 0; +static int updated_while_lcd_off = 0; + +static void set_app_state(void* data) +{ + uploading.ad = data; +} + +static void show_image_icon(void* data, int index) +{ + uploading.img_obj.data = icon_path[index]; + icon_show(&uploading); +} + +static void hide_image_icon(void) +{ + icon_hide(&uploading); +} + +static Eina_Bool show_uploading_icon_cb(void* data) +{ + + show_image_icon(data,icon_index); + icon_index = (++icon_index % ICON_NUM) ? icon_index : 0; + + return ECORE_CALLBACK_RENEW; +} + +static void show_uploading_icon(void* data) +{ + if(timer==NULL) + { + timer = ecore_timer_add(TIMER_INTERVAL, show_uploading_icon_cb, data); + } + else + { + ERR("show_uploading_icon!, timer"); + } +} + +static void hide_uploading_icon(void) +{ + if (timer != NULL) { + ecore_timer_del(timer); + timer = NULL; + icon_index = 0; + } + + hide_image_icon(); +} + + +static void indicator_uploading_change_cb(keynode_t *node, void *data) +{ + int status = 0; + int result = 0; + + retif(data == NULL, , "Invalid parameter!"); + + if(icon_get_update_flag()==0) + { + updated_while_lcd_off = 1; + return; + } + updated_while_lcd_off = 0; + +/* if (vconf_get_int(VCONFKEY_WIFI_DIRECT_SENDING_STATE, &status) == 0) + { + result = result | status; + } else { + ERR("Failed to get VCONFKEY_WIFI_DIRECT_SENDING_STATE value"); + }*/ + + if (result == 1) { + show_uploading_icon(data); + + } else { + hide_uploading_icon(); + } +} + +static void indicator_uploading_pm_state_change_cb(keynode_t *node, void *data) +{ + int status = 0; + + retif(data == NULL, , "Invalid parameter!"); + + vconf_get_int(VCONFKEY_PM_STATE, &status); + + if(status == VCONFKEY_PM_STATE_LCDOFF) + { + if (timer != NULL) { + ecore_timer_del(timer); + timer = NULL; + } + } +} + +static int wake_up_cb(void *data) +{ + if(updated_while_lcd_off == 0 && uploading.obj_exist == EINA_FALSE) + { + return OK; + } + + indicator_uploading_change_cb(NULL, data); + return OK; +} + +static int register_uploading_module(void *data) +{ + int ret = 0; + + retif(data == NULL, FAIL, "Invalid parameter!"); + + set_app_state(data); + +// ret = ret | vconf_notify_key_changed(VCONFKEY_WIFI_DIRECT_SENDING_STATE, indicator_uploading_change_cb, data); + + ret = ret | vconf_notify_key_changed(VCONFKEY_PM_STATE, + indicator_uploading_pm_state_change_cb, data); + + indicator_uploading_change_cb(NULL, data); + + return ret; +} + +static int unregister_uploading_module(void) +{ + int ret = 0; + +// ret = ret | vconf_ignore_key_changed(VCONFKEY_WIFI_DIRECT_SENDING_STATE, indicator_uploading_change_cb); + + ret = ret | vconf_ignore_key_changed(VCONFKEY_PM_STATE, + indicator_uploading_pm_state_change_cb); + + return OK; +} diff --git a/modules/setting/bluetooth.c b/modules/setting/bluetooth.c old mode 100755 new mode 100644 index 422655e..7179372 --- a/modules/setting/bluetooth.c +++ b/modules/setting/bluetooth.c @@ -1,69 +1,66 @@ /* - * Copyright 2012 Samsung Electronics Co., Ltd + * Indicator * - * Licensed under the Flora License, Version 1.1 (the "License"); + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://floralicense.org/license/ + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * */ #include #include #include +#include #include "common.h" #include "indicator.h" -#include "indicator_icon_util.h" +#include "icon.h" #include "modules.h" -#include "indicator_ui.h" +#include "main.h" +#include "util.h" -#define ICON_PRIORITY INDICATOR_PRIORITY_SYSTEM_4 +#define ICON_PRIORITY INDICATOR_PRIORITY_FIXED7 #define MODULE_NAME "bluetooth" #define TIMER_INTERVAL 0.5 +Ecore_Timer *timer_bt = NULL; + static int register_bluetooth_module(void *data); static int unregister_bluetooth_module(void); static int wake_up_cb(void *data); +static void show_image_icon(void *data, int index); +static void hide_image_icon(void); +#ifdef _SUPPORT_SCREEN_READER +static char *access_info_cb(void *data, Evas_Object *obj); +#endif -Indicator_Icon_Object bluetooth[INDICATOR_WIN_MAX] = { -{ - .win_type = INDICATOR_WIN_PORT, - .type = INDICATOR_IMG_ICON, - .name = MODULE_NAME, - .priority = ICON_PRIORITY, - .always_top = EINA_FALSE, - .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, - .img_obj = {0,}, - .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_SYSTEM, - .init = register_bluetooth_module, - .fini = unregister_bluetooth_module, - .wake_up = wake_up_cb -}, -{ - .win_type = INDICATOR_WIN_LAND, + +icon_s bluetooth = { .type = INDICATOR_IMG_ICON, .name = MODULE_NAME, .priority = ICON_PRIORITY, .always_top = EINA_FALSE, .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, .img_obj = {0,}, .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_SYSTEM, + .area = INDICATOR_ICON_AREA_FIXED, .init = register_bluetooth_module, .fini = unregister_bluetooth_module, - .wake_up = wake_up_cb -} - + .wake_up = wake_up_cb, +#ifdef _SUPPORT_SCREEN_READER + .tts_enable = EINA_TRUE, + .access_cb = access_info_cb +#endif }; enum { @@ -76,68 +73,42 @@ enum { static const char *icon_path[LEVEL_MAX] = { [LEVEL_BT_NOT_CONNECTED] = - "Bluetooth, NFC, GPS/B03_BT_On&Notconnected.png", - [LEVEL_BT_CONNECTED] = "Bluetooth, NFC, GPS/B03_BT_On&Connected.png", + "Bluetooth, NFC, GPS/B03_BT_On&Connected.png", + [LEVEL_BT_CONNECTED] = "Bluetooth, NFC, GPS/B03-4_BT_activated_on.png", [LEVEL_BT_HEADSET] = "Bluetooth, NFC, GPS/B03_BT_On&Connected&headset.png", }; -static Ecore_Timer *timer; -static Eina_Bool bt_transferring = EINA_FALSE; static int updated_while_lcd_off = 0; - +static int prevIndex = -1; static void set_app_state(void* data) { - int i = 0; - - for (i=0 ; i= LEVEL_MAX) index = LEVEL_MIN; - for (i=0 ; i #include #include +#include + #include "common.h" #include "indicator.h" -#include "indicator_icon_util.h" +#include "icon.h" #include "modules.h" -#include "indicator_ui.h" +#include "main.h" +#include "log.h" -#define ICON_PRIORITY INDICATOR_PRIORITY_NOTI_2 +#define ICON_PRIORITY INDICATOR_PRIORITY_SYSTEM_4 #define MODULE_NAME "gps" #define TIMER_INTERVAL 0.3 static int register_gps_module(void *data); static int unregister_gps_module(void); -static int wake_up_cb(void *data); +static int _wake_up_cb(void *data); -Indicator_Icon_Object gps[INDICATOR_WIN_MAX] = { -{ - .win_type = INDICATOR_WIN_PORT, - .type = INDICATOR_IMG_ICON, - .name = MODULE_NAME, - .priority = ICON_PRIORITY, - .always_top = EINA_FALSE, - .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, - .img_obj = {0,}, - .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_NOTI, - .init = register_gps_module, - .fini = unregister_gps_module, - .wake_up = wake_up_cb -}, -{ - .win_type = INDICATOR_WIN_LAND, +icon_s gps = { .type = INDICATOR_IMG_ICON, .name = MODULE_NAME, .priority = ICON_PRIORITY, .always_top = EINA_FALSE, .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, .img_obj = {0,}, .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_NOTI, + .area = INDICATOR_ICON_AREA_SYSTEM, .init = register_gps_module, .fini = unregister_gps_module, - .wake_up = wake_up_cb -} + .wake_up = _wake_up_cb }; enum { @@ -80,65 +67,58 @@ enum { static const char *icon_path[LEVEL_MAX] = { [LEVEL_GPS_ON] = "Bluetooth, NFC, GPS/B03_GPS_On.png", - [LEVEL_GPS_SEARCHING] = "Bluetooth, NFC, GPS/B03_GPS_Searching.png", + [LEVEL_GPS_SEARCHING] = "Bluetooth, NFC, GPS/B03_GPS_On.png", }; static int updated_while_lcd_off = 0; +static int prevIndex = -1; + + static void set_app_state(void* data) { - int i = 0; - - for (i=0 ; i= LEVEL_MAX) index = LEVEL_GPS_SEARCHING; - for (i=0 ; i #include "common.h" #include "indicator.h" -#include "indicator_icon_util.h" +#include "icon.h" #include "modules.h" -#include "indicator_ui.h" +#include "main.h" +#include "util.h" -#define ICON_PRIORITY INDICATOR_PRIORITY_SYSTEM_4 +#define ICON_PRIORITY INDICATOR_PRIORITY_NOTI_2 #define MODULE_NAME "nfc" static int register_nfc_module(void *data); @@ -32,37 +36,18 @@ static int unregister_nfc_module(void); static int wake_up_cb(void *data); -Indicator_Icon_Object nfc[INDICATOR_WIN_MAX] = { -{ - .win_type = INDICATOR_WIN_PORT, - .type = INDICATOR_IMG_ICON, - .name = MODULE_NAME, - .priority = ICON_PRIORITY, - .always_top = EINA_FALSE, - .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, - .img_obj = {0,}, - .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_SYSTEM, - .init = register_nfc_module, - .fini = unregister_nfc_module, - .wake_up = wake_up_cb -}, -{ - .win_type = INDICATOR_WIN_LAND, +icon_s nfc = { .type = INDICATOR_IMG_ICON, .name = MODULE_NAME, .priority = ICON_PRIORITY, .always_top = EINA_FALSE, .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, .img_obj = {0,}, .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_SYSTEM, + .area = INDICATOR_ICON_AREA_NOTI, .init = register_nfc_module, .fini = unregister_nfc_module, .wake_up = wake_up_cb -} }; enum { @@ -75,39 +60,39 @@ static const char *icon_path[NFC_NUM] = { [NFC_ON] = "Bluetooth, NFC, GPS/B03_NFC_On.png", }; static int updated_while_lcd_off = 0; +static int prevIndex = -1; + + static void set_app_state(void* data) { - int i = 0; - - for (i=0 ; i= NFC_NUM) index = NFC_ON; - for (i=0 ; i #include #include +#include + #include "common.h" #include "indicator.h" -#include "indicator_ui.h" +#include "main.h" #include "modules.h" -#include "indicator_icon_util.h" +#include "icon.h" +#include "log.h" -#define ICON_PRIORITY INDICATOR_PRIORITY_SYSTEM_1 +#define ICON_PRIORITY INDICATOR_PRIORITY_SYSTEM_6 #define MODULE_NAME "silent" static int register_silent_module(void *data); static int unregister_silent_module(void); +#ifdef _SUPPORT_SCREEN_READER +static char *access_info_cb(void *data, Evas_Object *obj); +#endif -Indicator_Icon_Object silent[INDICATOR_WIN_MAX] = { -{ - .win_type = INDICATOR_WIN_PORT, - .type = INDICATOR_IMG_ICON, - .name = MODULE_NAME, - .priority = ICON_PRIORITY, - .always_top = EINA_FALSE, - .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, - .img_obj = {0,}, - .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_SYSTEM, - .init = register_silent_module, - .fini = unregister_silent_module -}, -{ - .win_type = INDICATOR_WIN_LAND, + +icon_s silent = { .type = INDICATOR_IMG_ICON, .name = MODULE_NAME, .priority = ICON_PRIORITY, .always_top = EINA_FALSE, .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, .img_obj = {0,}, .obj_exist = EINA_FALSE, .area = INDICATOR_ICON_AREA_SYSTEM, .init = register_silent_module, - .fini = unregister_silent_module -} + .fini = unregister_silent_module, +#ifdef _SUPPORT_SCREEN_READER + .tts_enable = EINA_TRUE, + .access_cb = access_info_cb +#endif }; enum { - PROFILE_SOUND_VIBRATION, PROFILE_MUTE, PROFILE_VIBRATION, PROFILE_NUM, }; static const char *icon_path[PROFILE_NUM] = { - [PROFILE_SOUND_VIBRATION] = "Profile/B03_Profile_Sound&Vibration.png", [PROFILE_MUTE] = "Profile/B03_Profile_Mute.png", [PROFILE_VIBRATION] = "Profile/B03_Profile_Vibration.png", }; +static int prevIndex = -1; + static void set_app_state(void* data) { - int i = 0; - - for (i=0 ; i #include "common.h" #include "indicator.h" -#include "indicator_icon_util.h" +#include "icon.h" #include "modules.h" -#include "indicator_ui.h" +#include "main.h" +#include "util.h" -#define ICON_PRIORITY INDICATOR_PRIORITY_SYSTEM_4 +#define ICON_PRIORITY INDICATOR_PRIORITY_FIXED8 #define MODULE_NAME "wifi_direct" static int register_wifi_direct_module(void *data); static int unregister_wifi_direct_module(void); static int wake_up_cb(void *data); +static void show_icon(void *data, int index); +static void hide_icon(void); +#ifdef _SUPPORT_SCREEN_READER +static char *access_info_cb(void *data, Evas_Object *obj); +#endif -Indicator_Icon_Object wifi_direct[INDICATOR_WIN_MAX] = { -{ - .win_type = INDICATOR_WIN_PORT, - .type = INDICATOR_IMG_ICON, - .name = MODULE_NAME, - .priority = ICON_PRIORITY, - .always_top = EINA_FALSE, - .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, - .img_obj = {0,}, - .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_SYSTEM, - .init = register_wifi_direct_module, - .fini = unregister_wifi_direct_module, - .wake_up = wake_up_cb -}, -{ - .win_type = INDICATOR_WIN_LAND, +icon_s wifi_direct = { .type = INDICATOR_IMG_ICON, .name = MODULE_NAME, .priority = ICON_PRIORITY, .always_top = EINA_FALSE, .exist_in_view = EINA_FALSE, - .txt_obj = {0,}, .img_obj = {0,}, .obj_exist = EINA_FALSE, - .area = INDICATOR_ICON_AREA_SYSTEM, + .area = INDICATOR_ICON_AREA_FIXED, .init = register_wifi_direct_module, .fini = unregister_wifi_direct_module, - .wake_up = wake_up_cb -} - + .wake_up = wake_up_cb, +#ifdef _SUPPORT_SCREEN_READER + .tts_enable = EINA_TRUE, + .access_cb = access_info_cb +#endif }; -static Eina_Bool wifi_direct_transferring = EINA_FALSE; static int updated_while_lcd_off = 0; +static int prevIndex = -1; +Ecore_Timer *timer_wifi = NULL; enum { - WIFI_DIRECT_ACTIVATE = 0, - WIFI_DIRECT_CONNECTED, - WIFI_DIRECT_DISCOVERING, - WIFI_DIRECT_GROUP_OWNER, + WIFI_DIRECT_CONNECTED = 0, WIFI_DIRECT_MAX, }; -#define WIFI_D_ICON_NOT_CONNECTED \ - "Bluetooth, NFC, GPS/B03_Wi-fi_direct On_not connected.png" - #define WIFI_D_ICON_CONNECTED \ - "Bluetooth, NFC, GPS/B03_Wi-fi_direct On_connected.png" + "Bluetooth, NFC, GPS/B03_Wi-fi_direct-On_connected.png" static const char *icon_path[WIFI_DIRECT_MAX] = { - [WIFI_DIRECT_ACTIVATE] = WIFI_D_ICON_NOT_CONNECTED, - [WIFI_DIRECT_CONNECTED] = WIFI_D_ICON_CONNECTED, - [WIFI_DIRECT_DISCOVERING] = NULL, - [WIFI_DIRECT_GROUP_OWNER] = WIFI_D_ICON_CONNECTED, + [WIFI_DIRECT_CONNECTED] = WIFI_D_ICON_CONNECTED }; + + static void set_app_state(void* data) { - int i = 0; - - for (i=0 ; i= WIFI_DIRECT_MAX) - index = WIFI_DIRECT_ACTIVATE; + if (index < WIFI_DIRECT_CONNECTED || index >= WIFI_DIRECT_MAX) + index = WIFI_DIRECT_CONNECTED; - for (i=0 ; i + + + + + + + + + + + + diff --git a/org.tizen.indicator.rule b/org.tizen.indicator.rule new file mode 100755 index 0000000..734f432 --- /dev/null +++ b/org.tizen.indicator.rule @@ -0,0 +1,43 @@ +org.tizen.indicator system::vconf arwxt +org.tizen.indicator system::homedir arwxt +org.tizen.indicator system::use_internet r +org.tizen.indicator system::media rwxat +org.tizen.indicator system::share rwxat +org.tizen.indicator sys-assert::core rwxat +org.tizen.indicator org.tizen.pwlock rwx +org.tizen.indicator org.tizen.oma-dm rx +org.tizen.indicator pulseaudio rwxat +org.tizen.indicator ail::db rw +org.tizen.indicator notification::db rw +org.tizen.indicator dbus rwx +org.tizen.indicator immvibed rw +org.tizen.indicator svi-data rx +org.tizen.indicator sound_server w +org.tizen.indicator email-service x +org.tizen.indicator xorg rw +org.tizen.indicator isf rx +org.tizen.indicator stest-service w +org.tizen.indicator libslp-alarm::db rw +org.tizen.indicator data-provider-master::notification rw +org.tizen.indicator data-provider-master::notification.client w +org.tizen.indicator data-provider-master rw +e17 org.tizen.indicator rw +stest-service org.tizen.indicator rx +dbus org.tizen.indicator rwx +org.tizen.indicator eas-engine::vconf r +org.tizen.indicator system::vconf_inhouse rwx +org.tizen.indicator system::vconf_misc rw +org.tizen.indicator system::vconf_setting r +org.tizen.indicator system::vconf_network r +org.tizen.indicator system::vconf_multimedia r +org.tizen.indicator system::vconf_system rw +org.tizen.indicator system::vconf_deviced r +org.tizen.indicator location_fw::vconf rwx +org.tizen.indicator starter::vconf r +org.tizen.indicator _ rw +org.tizen.indicator device::app_logging w +org.tizen.indicator device::sys_logging w +org.tizen.indicator e17 rw +org.tizen.indicator org.tizen.download-manager::vconf_public r +org.tizen.indicator download-provider::vconf_public r +org.tizen.indicator pkgmgr::db rw diff --git a/packaging/indicator.service b/packaging/indicator.service index b1b53ab..4d9133c 100644 --- a/packaging/indicator.service +++ b/packaging/indicator.service @@ -1,11 +1,12 @@ [Unit] Description=Start the indicator -Before=core-efl.target -After=xorg.target starter.service e17.service +After=starter.service wm_ready.service smack-default-labeling.service +Requires=starter.service [Service] ExecStart=/usr/apps/org.tizen.indicator/bin/indicator +KillSignal=SIGKILL [Install] -WantedBy=core-efl.target +WantedBy=multi-user.target diff --git a/packaging/indicator.service.system b/packaging/indicator.service.system new file mode 100644 index 0000000..3ca3e50 --- /dev/null +++ b/packaging/indicator.service.system @@ -0,0 +1,13 @@ +[Unit] +Description=Start the indicator +After=launchpad-preload.service wm_ready.service + +[Service] +ExecStart=/usr/apps/org.tizen.indicator/bin/indicator +Restart=always +RestartSec=0 +OOMScoreAdjust=200 +EnvironmentFile=/run/tizen-mobile-env + +[Install] +WantedBy=multi-user.target diff --git a/packaging/org.tizen.indicator.changes b/packaging/org.tizen.indicator.changes deleted file mode 100644 index fa0d3b3..0000000 --- a/packaging/org.tizen.indicator.changes +++ /dev/null @@ -1,22 +0,0 @@ -* Tue Dec 31 2013 Maciej Wereski accepted/tizen/20130530.164813@f5fb9b0 -- Remove initscripts, label systemd service file -- smack merge -- fix battery percentage bug while unlock -- fix battery percentage display error -- change notice file -- Merge "change license version/file" into tizen_2.1 -- change license version/file -- Merge "fix prevent issue" into tizen_2.1 -- fix prevent issue -- change license file -- change license file -- remove unused vconf -- remove unused vconf -- fix indicator touch error -- fix quickpanel open problem -- sync with private -- sync with master -- merge with master -- Tizen 2.1 base -- Initial empty repository - diff --git a/packaging/org.tizen.indicator.manifest b/packaging/org.tizen.indicator.manifest deleted file mode 100644 index 97e8c31..0000000 --- a/packaging/org.tizen.indicator.manifest +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/packaging/org.tizen.indicator.spec b/packaging/org.tizen.indicator.spec old mode 100755 new mode 100644 index 3b695b0..ccc9b1f --- a/packaging/org.tizen.indicator.spec +++ b/packaging/org.tizen.indicator.spec @@ -1,39 +1,63 @@ -%define PREFIX /usr/apps/%{name} +%define PKGNAME org.tizen.indicator +%define PREFIX /usr/apps/%{PKGNAME} %define RESDIR %{PREFIX}/res -%define PREFIXRW /opt/apps/%{name} +%define PREFIXRW /opt/usr/apps/%{PKGNAME} Name: org.tizen.indicator -Summary: Indicator Window -Version: 0.1.72 +Summary: indicator window +Version: 0.2.53 Release: 1 -Group: Application Framework/Utilities -License: Flora +Group: utils +License: Apache-2.0 Source0: %{name}-%{version}.tar.gz +Source1: indicator.service.system Source101: indicator.service -Source102: org.tizen.indicator.manifest - -BuildRequires: pkgconfig(capi-appfw-application) -BuildRequires: pkgconfig(capi-appfw-app-manager) -BuildRequires: pkgconfig(capi-system-runtime-info) -BuildRequires: pkgconfig(dlog) -BuildRequires: pkgconfig(elementary) -BuildRequires: pkgconfig(ecore) -BuildRequires: pkgconfig(ecore-x) -BuildRequires: pkgconfig(ecore-evas) -BuildRequires: pkgconfig(edje) -BuildRequires: pkgconfig(evas) -BuildRequires: pkgconfig(eina) -BuildRequires: pkgconfig(vconf) -BuildRequires: pkgconfig(libprivilege-control) -BuildRequires: pkgconfig(notification) -BuildRequires: pkgconfig(utilX) -BuildRequires: pkgconfig(minicontrol-monitor) -BuildRequires: pkgconfig(icu-io) -BuildRequires: pkgconfig(feedback) + +%if "%{?tizen_profile_name}" == "wearable" +ExcludeArch: %{arm} %ix86 x86_64 +%endif + +%if "%{?tizen_profile_name}"=="tv" +ExcludeArch: %{arm} %ix86 x86_64 +%endif + +BuildRequires: pkgconfig(capi-appfw-application) +BuildRequires: pkgconfig(capi-appfw-app-manager) +BuildRequires: pkgconfig(capi-system-runtime-info) +BuildRequires: pkgconfig(capi-network-bluetooth) +BuildRequires: pkgconfig(capi-appfw-preference) +BuildRequires: pkgconfig(capi-system-system-settings) +BuildRequires: pkgconfig(capi-media-player) +BuildRequires: pkgconfig(capi-media-sound-manager) +BuildRequires: pkgconfig(capi-media-metadata-extractor) +BuildRequires: pkgconfig(capi-network-wifi) +BuildRequires: pkgconfig(capi-ui-efl-util) +BuildRequires: pkgconfig(appcore-common) +BuildRequires: pkgconfig(dlog) +BuildRequires: pkgconfig(elementary) +BuildRequires: pkgconfig(ecore) +#BuildRequires: pkgconfig(ecore-x) +BuildRequires: pkgconfig(ecore-evas) +BuildRequires: pkgconfig(edje) +BuildRequires: pkgconfig(evas) +BuildRequires: pkgconfig(eina) +BuildRequires: pkgconfig(vconf) +BuildRequires: pkgconfig(libprivilege-control) +BuildRequires: pkgconfig(notification) +#BuildRequires: pkgconfig(utilX) +BuildRequires: pkgconfig(minicontrol-monitor) +BuildRequires: pkgconfig(icu-io) +BuildRequires: pkgconfig(feedback) +BuildRequires: pkgconfig(pkgmgr-info) +BuildRequires: pkgconfig(edbus) +BuildRequires: pkgconfig(efl-assist) +BuildRequires: pkgconfig(tapi) +BuildRequires: pkgconfig(message-port) BuildRequires: cmake BuildRequires: edje-tools BuildRequires: gettext-tools +BuildRequires: hash-signer Requires(post): /usr/bin/vconftool %description @@ -41,42 +65,74 @@ indicator window. %prep %setup -q -cp %{SOURCE102} . %build +%if 0%{?tizen_build_binary_release_type_eng} +export CFLAGS="$CFLAGS -DTIZEN_ENGINEER_MODE" +export CXXFLAGS="$CXXFLAGS -DTIZEN_ENGINEER_MODE" +export FFLAGS="$FFLAGS -DTIZEN_ENGINEER_MODE" +%endif + +%if 0%{?sec_build_binary_debug_enable} +export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE" +export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE" +export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE" +%endif + LDFLAGS+="-Wl,--rpath=%{PREFIX}/lib -Wl,--as-needed";export LDFLAGS -CFLAGS+=" -fvisibility=hidden -fvisibility-inlines-hidden"; export CFLAGS +CFLAGS+=" -fvisibility=hidden"; export CFLAGS CXXFLAGS+=" -fvisibility=hidden -fvisibility-inlines-hidden"; export CXXFLAGS FFLAGS+=" -fvisibility=hidden -fvisibility-inlines-hidden"; export FFLAGS -cmake . -DCMAKE_INSTALL_PREFIX=%{PREFIX} -DCMAKE_INSTALL_PREFIXRW=%{PREFIXRW} +cmake . -DCMAKE_INSTALL_PREFIX=%{PREFIX} -DCMAKE_INSTALL_PREFIXRW=%{PREFIXRW} \ + + make %{?jobs:-j%jobs} %install rm -rf %{buildroot} %make_install +mkdir -p %{buildroot}/usr/share/license +cp -f LICENSE %{buildroot}/usr/share/license/%{PKGNAME} + +%define tizen_sign 1 +%define tizen_sign_base /usr/apps/%{PKGNAME} +%define tizen_sign_level public +%define tizen_author_sign 1 +%define tizen_dist_sign 1 + install -d %{buildroot}%{_libdir}/systemd/user/core-efl.target.wants install -m0644 %{SOURCE101} %{buildroot}%{_libdir}/systemd/user/ ln -sf ../indicator.service %{buildroot}%{_libdir}/systemd/user/core-efl.target.wants/indicator.service +mkdir -p %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants +install -m 0644 %SOURCE1 %{buildroot}%{_libdir}/systemd/system/indicator.service +ln -s ../indicator.service %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants/indicator.service %clean rm -rf %{buildroot} %post -vconftool set -t int memory/music/state 0 -i -g 6518 -f -vconftool set -t bool memory/private/%{name}/started 0 -i -u 5000 -f -vconftool set -t int memory/private/%{name}/battery_disp 0 -i -u 5000 -f +vconftool set -t int memory/private/%{PKGNAME}/show_more_noti_port 0 -i -g 6518 -f -s %{PKGNAME} + +%postun -p /sbin/ldconfig %files %manifest org.tizen.indicator.manifest %defattr(-,root,root,-) -%license LICENSE.Flora NOTICE %{PREFIX}/bin/* -%{RESDIR}/locale/* %{RESDIR}/icons/* %{RESDIR}/edje/* -/usr/share/packages/%{name}.xml +/usr/share/packages/%{PKGNAME}.xml %attr(775,app,app) %{PREFIXRW}/data +%attr(755,-,-) %{_sysconfdir}/init.d/indicator %{_libdir}/systemd/user/core-efl.target.wants/indicator.service %{_libdir}/systemd/user/indicator.service +%{_libdir}/systemd/system/multi-user.target.wants/indicator.service +%{_libdir}/systemd/system/indicator.service +/usr/share/license/%{PKGNAME} +/etc/smack/accesses.d/%{PKGNAME}.efl +/usr/apps/%{PKGNAME}/author-signature.xml +/usr/apps/%{PKGNAME}/signature1.xml +/usr/apps/%{PKGNAME}/shared/res/tables/org.tizen.indicator_ChangeableColorInfo.xml +/usr/apps/%{PKGNAME}/shared/res/tables/org.tizen.indicator_ChangeableFontInfo.xml diff --git a/po/hy.po b/po/hy.po index 2a80bfb..8ebd451 100755 --- a/po/hy.po +++ b/po/hy.po @@ -2,5 +2,5 @@ msgid "IDS_IDLE_OPT_AM_ABB" msgstr "AM" msgid "IDS_IDLE_OPT_PM_ABB" -msgstr "PM" +msgstr "ԿՀ" diff --git a/test/indicator_debug_util.c b/test/indicator_debug_util.c deleted file mode 100755 index f03b8ab..0000000 --- a/test/indicator_debug_util.c +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright 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. - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#ifndef LOGFILE -#define LOGFILE DATADIR"/indicator.log" -#endif - -#define MAXSIZE (1 << 17) - -static char buf[512]; - -void debug_printf(const char *msg, ...) -{ - int fd; - va_list arg_list; - int len; - struct tm timeDate = { 0, }; - time_t ctime; - int status; - struct stat buffer; - - ctime = time(NULL); - - if (localtime_r(&ctime, &timeDate)) { - snprintf(buf, 63, "[%04d/%02d/%02d %02d:%02d:%02d] ", - timeDate.tm_year + 1900, timeDate.tm_mon + 1, - timeDate.tm_mday, timeDate.tm_hour, timeDate.tm_min, - timeDate.tm_sec); - } - - len = strlen(buf); - - va_start(arg_list, msg); - - fd = open(LOGFILE, O_WRONLY | O_CREAT | O_APPEND, - S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); - if (fd == -1) { - fprintf(stderr, msg, arg_list); - goto __CATCH; - } - status = fstat(fd, &buffer); - - if (!status && (buffer.st_size > MAXSIZE)) { - ftruncate(fd, 0); - } - - if (len < 0) { - goto __CATCH; - } - - len += vsnprintf(&buf[len], sizeof(buf), msg, arg_list); - - write(fd, buf, strlen(buf)); - -__CATCH: - if(fd != -1) - { - close(fd); - } - va_end(arg_list); -} diff --git a/test/indicator_test_util.c b/test/indicator_test_util.c deleted file mode 100755 index 59cda0f..0000000 --- a/test/indicator_test_util.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 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. - */ - -#include -#include - -#include "common.h" -#include "indicator_icon_util.h" -#include "indicator_icon_list.h" -#include "indicator_ui.h" -#include "indicator_test_util.h" - -int print_indicator_icon_object(Indicator_Icon_Object *obj) -{ -#ifdef DEBUG_MODE - retif(cond, ret, str, args...)(obj == NULL, FAIL, "Invalid parameter!"); - - INFO(str, args...)(%s : priority(%d) obj(%x), obj->name, obj->priority, - (unsigned int)obj->obj); -#endif - return OK; -} - -int print_indicator_icon_list(Eina_List *list) -{ -#ifdef DEBUG_MODE - Eina_List *l; - void *data; - - retif(list == NULL, FAIL, "Invalid parameter!"); - - INFO("*******Indicator_Icon List(%x) *******", (unsigned int)list); - EINA_LIST_FOREACH(list, l, data) { - if (data) { - print_indicator_icon_object(data); - } - } -#endif - return OK; -} -- 2.7.4

hWUk zu6*g*Q0BMH@yy6!^7QPEr8u`b{K?t<2iJ!?NAEEo5vQ*mTz{eS^~tNBT|hMFj|{Gk zx7W@MTsZLh&y@*rMZURv?c2Sb(UFTc;xli(eCOt9`AB#&^OCl2{MLy}OYuj~)`j-R zmmzumk7sI~a_lSRKv9d2rHhB&_~QJTUp7Afe)6Zpv3IL~dLP_*@a5Svv-YiD-@^t5 Yu}6P1?#1lYLi9H(DO2({`8QAf2Wk4GLjV8( literal 3193 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 diff --git a/data/resource/icons/RSSI/B03_RSSI_Sim2_02.png b/data/resource/icons/RSSI/B03_RSSI_Sim2_02.png old mode 100755 new mode 100644 index a6a5b021912e9c65b7f225d6d06ed81078da578f..53f93cfe296431407c03ab1540e88cbbded44027 GIT binary patch literal 1269 zcmb7ETWH%>7*@z=LpQU~j6yq?2z3u>iLFZ{SrXA)N0-ITlzEOJA#AL&bP{WcE|ZR9 z#VoXIDR>Vn8LS(0Fc`GZmtELX%LauMcA+oJ!(fa-gJ1VB${w~rSa;;wZXQZtLejbD z|Gw|PoL}#kW?xAiIdKHTuvBqcEu%4=JVS@jJ4`+J2o1-fwgBh+CD<@SfE8@N3h<(9 zE`u^K?e%wl0+Sdv_?1&xfD6W}lI6QuGqK6WZh+7jHkpqD(^>%#uYzUAlZijSy-VPZ zEfe#cK^cJpYR+^s1ar;Viq%}PM4QOJj8DcAB5(mT@z`DUA}N-M4zGmf$u>#g9TT`B z6OWx*FiN=MhXCiY6B&!5X`JV?G|TZkJ&rRJ&5#tj`3%iU94|3Byn7KyEwq=UvZ{Br z&`Kt15C#%SHX4m=V&OH$`%T=PHCt%B1?0sAm*lMfz?!1?Gfw;BCV{AusK2JHAYdX9L3SJ#!k_cpfGxl z<&_+pEA+8NFM_6LfkZUHI#005fmlfifeHPv;`^(;(^RVY(2r_?O zC#6Q*C{z`M&Kj`w(0B1p)+OgD`i!FSEUWXJPVpK`ccN7^n$bjYVv3?EqKmcvcfv^I z37MR-eW$Lsg^qGE?e`E`^t%vvsAwVTF>GYEiTd;RqFSiLzg71hJ<1Qt10zR29c<+X zA6^(2E-fBoh~3T6R(_}S_t6&j-aqoqW8dryH?-<~?BTn(cewrB;x2Xa+=GGk#&qGn zdgD$?_*K{tM$VC!7l+o;TzmMFE2q!y4Y%IzH@f(`PLT~Z+~_j(R?^_s6E!) z-5j`n=FRQ$xU{2gy|DZB@z&_b=XcZdZ@={Y)@W%az9_tCoE*D%;l^6}-)E{~^W&S4 z{O<4vSK2l1huY@V;Mwh&6REM(ncM#My{$ify!KZueRXmA)-U|z#?bJ2?2XDq7!18G PBtN2}HmiO)b^g+S(-NMO literal 3186 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 diff --git a/data/resource/icons/RSSI/B03_RSSI_Sim2_03.png b/data/resource/icons/RSSI/B03_RSSI_Sim2_03.png old mode 100755 new mode 100644 index 10fa7b3b391060ef501109d1b89147ee62ddc9cc..9693bf3fd98bf0002a8071ec5235ff3a3e9fedf2 GIT binary patch literal 1271 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 B@7@3a diff --git a/data/resource/icons/RSSI/B03_RSSI_Sim2_04.png b/data/resource/icons/RSSI/B03_RSSI_Sim2_04.png old mode 100755 new mode 100644 index ab55cd5095d7138b974e66fe670f55e55d558b44..671e17b145c33e56be7a7f025bde6db2b3ce907b GIT binary patch literal 1293 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 literal 3008 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 literal 3023 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 literal 3023 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 R<`e(`002ovPDHLkV1mjclC}T< diff --git a/data/resource/icons/RSSI/B03_RSSI_Sim_03.png b/data/resource/icons/RSSI/B03_RSSI_Sim_03.png index 6a03978d47f100b3e53b45a0b80fb16e5b74d6ef..801e61a19d9b15c5c3a22d884c41b87d0e74336b 100755 GIT binary patch literal 1116 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 c_;Z{G0AfO-<1NV08vpV!Z diff --git a/data/resource/icons/RSSI/B03_RSSI_Sim_04.png b/data/resource/icons/RSSI/B03_RSSI_Sim_04.png index dbc68ea75bf8b98f917098e26b783b86dde66899..fbd72d71dbba53cbd0a8e5da29df71ba7ebc22ab 100755 GIT binary patch literal 1116 zcmb7DO=#0l9FG)4rt_dEOi)60nP8K==A%t$9c^E-70fJMVLh5AZ*6Fk7n4_;?IeQW z2VN8};$0Bb`#dP<#e+BTAb1c@dJ#RUFkia1+hGh0`FijDf4|@V^LBk@X?Et!48t(9 zwPo0#-?{WTa+to~e!Js^#cjmae7l1h$aXibzC%TZ$-MBIEz+_s z=??aJJGJ2xKcr}eDJ~|V?eq{~+o9)YJBNNgqaXU`6tU6o85n>fy$~qzdtg7-r zR#X*SU~?kK2_n7KERc0Y)pL1vd~sAQa@X|+G{;(WRpPpYgt{OMheLiS@i^)TK-098 zBbUoki)_3R5Ie~R@%)4VqS%SNka##?Q%1Xu2c*PNPj^D_!-m)Cl6XoU#N%YqvNNAuK4j7A5RrC+Abdx71D*ctdJAT?Ox1_RI4O+{7|D3{B?6b)J%O$G`qX!!~#$OeRP zLa-M|wRo3e3s6%Hv1|ZMf&dtDrJPp_c?m$nFjd2pCfHgK6FYEFDw<-wT`W8ht5+jr z6C5=$?oYa@-o*sRT^zF2Rh3;>^8yzS$ p*ymeM7Va;7rAP4loN95`nGEyv&5ZQu&)wJQyw{8s_`GuE#y=@CU@ZUu literal 3019 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 N002ovPDHLkV1jt^o5=tG diff --git a/data/resource/icons/RSSI/B03_RSSI_Sim_office_04.png b/data/resource/icons/RSSI/B03_RSSI_Sim_office_04.png new file mode 100755 index 0000000000000000000000000000000000000000..f0fc29fe8ba1a2d02c9835748c8703888ee9417f GIT binary patch literal 1190 zcmb7EPiWg#7+2D!ErEs+(?bjep=@+zv*jmCvMu6dvY(YWOqp>E4W)<3(n~CC=_%6l z>|{GEqk*Jlw1u(5b_i^gowl8J*$Ra%J(LzUXz8Jc4NB=4Y_x?93Js)BuASx(0u_?p z`<}kv@B6Qf(#+)X!RR2vFvp8iuuRvH@HuvbzPJ8fGedzC=Ey8wAT7g3jB4R3VvCNk zh|0*YmX~g#F@`zxgI$>;bNc&=iJiC+>crcQN6`#3HqrJBvyKQ`MT@qZ?2l+Cu3#;09KacK$K(|yvqs+An*x#%P}A-lB@_RwtI2Znr|&AWvF#+ zQ7OyS2=Nr2Z?#(SRx*zLMIK}_nUF&eVpJm*EW5;L$J}7F#{f}a`nE@G?6M)FQN>M? z<*27GLvXyZy;vi`F1Z_YlSR|Uw+)X6@dWR8bi(+0C|y4o;W)e60V$(b&hN_~RF*x& zmr;P5zDcXNFuKRo!G=P`ZVZZU_;p09s2Pm_bw232@&R?;c8vzaX463~DZ(t*Y}%Hh zNune{QB{GKDA3wuL?FR*CY1weu>c|L5$pw0TXBnGB}q*ua|IDVAq7A|%xOYS(UWDx9EFmCj^sZ_%R2Q}=m`B|BL`;6^cxD}iZ zOHH|Hs1W(~hse@=?694zEB1c&RY6vBat=rU(g;8rsL8aJN(pq$r&WRLVy)Ls7*9Rn z!!Fy?b-g3n%Hei*hN!SRg~+8v^XZIj7BAA#Wj-rHwbH&{-QL-mIP_g#B)SuMV`uW$ zlb@gcW&Kg4@kjs0a^KS-?sop(Z&MfEVxJ7I-?;hX`GKz<|Nd_cO$_V* zuOD5#RQmJdtq1S?^!#vUU}$FZ^26zAVN`g=ocQ+a!kYv0w<7Sb$k)k{t4p~%{r=tI sYoDy$zcLm*_01QhtN%pLjrSc(FzR8U7U}!2zq5zBI|2usXY@ag}Axu3(uU%aXS>Y{`qstL+BD z5Cp$2qMkMo!K=z-o;-M&h$r=^;6(&c5b@?gm@i$s?Jx$0e7u+Zf4|@VGdG6@&+Ke& zZ>A_}XSQF>k!M?YZQn}nOW&`X;Ra_4co>c2vf)E2WuY-hXB}e#=AdCsUw#XFD5~L^ zoiE^mKA@P$VU5s+tvDV*Q&dlH#WT!Fi0LsnVY^A@*UMK7ZCgp^f~d!IFAa-!|BMfZ zX9n};%%mw>Oz$bWr=k!72V#S+I8$z*RFX`US0U^0HOJ6Z6Fiw@R-7v6Lv$MXkQUi^ z)QkZ@OA-qNQIfz(nvVgVi;+``0znZah3}?o2Se0+Yh1~xT1|`Wl1vd}PvN+7xy+X1 zEb=EfAj@*d!ShjK5e=qYY*eCd&{1blVPN{Uhi&B2A)_&dN;t_7Pgg>4yqrBz#K9`L z8`P3T(#BN`j{|Is^Q$&te07wrZ;o)BRqFuf;F|Lr@(1~84{|vepptKrDvo!oliFM; zG_1v-=!QQDNfk9?DuC4wx~`lf&fBgrr6RNBKo@7#BvUHcmZFJ*D5^p#1+-X()J7J7 zs3zp@K9CSHs;brr)&q$aYZ0uJkpwxx%Rr820LTb3&ue6%0u2bftVwlj)(x=XnlKa% zvGy7^u_;zb`_RD1&m%Nd@1~(5!YC*rk4_Iu^zjR}YoT(`6_%QClTcOY+gG5a`N*NG zSy${0^o3L+F7kcdapHYOAaP4#pVkf3Se&>d#{{N^wf;L{9Pxw;yKG(8)nAcT4wtJl zL^i8a2whS%pUl|1qd(@!d|u6}seI+r*x%*l-i9ZU)`o-Bj`l;JFMgX%G~M7@>`M)j zbok+c$nWNnE&Dt6oJfCcU%b;=c%OW9Wq$PboVfVBv27`G`S8NsfwNvyWPxp&>pV5R z`?c`)*qz2d>0@v1-M_c(!8tAZDDkE1*4Gb-wik`(sa+BbUbADfAAIRF3v literal 3142 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 M&kpF1(^qc(20goRr2qf` literal 3150 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 diff --git a/data/resource/icons/RSSI/B03_RSSI_roaming_03.png b/data/resource/icons/RSSI/B03_RSSI_roaming_03.png index 177d665fc9e4bf236bf5e622b914c78b399249c6..4700db1da04298b082522ddd2982cf4b49f5a468 100755 GIT binary patch literal 1176 zcmb7EO=#0l9M33R|(&TLoTk>M^YO`IG zfuJaQ@Teey*XhNB;K7Rs-Ufo;K(DfsC>}hB^QCLI9mc?rulMr*{eJ(?+#Me~f3T~! zi=wE5#Zk3Hp2y;A-(GTmw|3i#7g(#{2{eNnW&o+2jjE6?y5=k_LDOEi{s9hCRN|#m zuHcGsQL&JlGGm)mg5sGIX4Y<@5d>SCr!`U=SpcG% zk%#giBWS9swh6WaiB`%c*bFBL5&$}oc?|$f$O9>_aavyIfzD?{u8l2vAvQe=#-cIS z*}`hOVwFMwO^kvvLi6oz8m}RY!W#1F!h}Q*Ogf&88sV9^)P$Ras=~mz0c|}%F5S$! z;_RR=Q0-go?xR0x)sLrNe=Pvx zXJ>!M-<1zP4yezi_qnx4moE%F_`P1>Iv-x)eh-?*C4;#|B`AL6aARqFU^)I*6tyw+ IMSgneAC!J^^8f$< literal 3153 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 diff --git a/data/resource/icons/RSSI/B03_Roaming.png b/data/resource/icons/RSSI/B03_Roaming.png index 9b2ce2759ca0fe365dab33d838eb7b95c7f94e78..514b203b709ca83a7e46305eb0e3f52f36d48efd 100755 GIT binary patch literal 1194 zcmb7ETWHi+7*44xR?v1URO(U*DYUCNlR0UUnF$^1OfKuNo3_pjI**%4PCKDZPBuB? zq-DV(s4c=mg@x_IuHyS%9?R~7K8T&c#L;bA!Pag8~E7w>@klmyQ^X3aa4@Lp=Qu zg5wqJ=_(G|kPaEH|HLXlxJ21z&k8Az(A8M6Uwe9(1if;exx#;k(Ongd;&S29ekW?Pab@PeT5 z*(}f!DydDH2ZEAHCvzahtBRtu2zCOAR@@?3F)OFlT$Te#833U2SyEChnM!jS$BVq! z#^&7s8?Ff>(FkjQ#DZP1lI%kRBfo^uY^$3ls|cf@iac5_iuBj#Y}Z2d;8;{@!c9U| zpl_dtmgXaeZe(4uKcTNCIE~kYL@o)EDi1&^CyFUf=45$9%&D@>G_lraCyXVYuu+%o z=(^SxY31m(Jws&CoJ{uT*ys+od)78I*damF8YD&4&HTdPh^^T3T)varldl!COzB=)G zb1CdAJRCiEBj0^}@yuH9R^{KrJrh^%58OQ4dw1w<_u`8E>)*dzF1@<8XQMm(?~AUX twe_37^?rM_xc>k1)eY;#-ovLBI;dl%lcj~@KR<~69(i?K`6KuJ#rO30hD!hd literal 3167 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 FV1kQ=-gf{1 diff --git a/data/resource/icons/Ready to share/B03_ready_to_share.png b/data/resource/icons/Ready to share/B03_ready_to_share.png new file mode 100755 index 0000000000000000000000000000000000000000..5365fa32e295734fa45ac388e66e0eca0b0158f4 GIT binary patch literal 1292 zcmb7EZD<>19KWu!d$ZM9ht}fyaG5&6+)HwI%^l6!VH7;>?RoD1 z`~Ci}_tNOdaOc(swh{!(X|8h(V7QQm!kJ*!cMRgI8(Cq>O8B;By z98&e!nM-JZAlg4L@)Q0<_6bR|O-c=HsH*8;G(ijuRvlHFLOv*HU>Ik*Q5R3%JcB3}hnbK3HxYMgBHO87n4rb*B=@u%YC zO{XTZqd>M@1b8YM))XT9qrdG7@ zDo&Ps-;rp#QmIgtC}q1vniWMc;D|)R*dpxBTE1EhTVANe0FkG;hT|Ky1p-F3V3++k zi9Nj;g6ZUpV#)Vb$t`asSvYNURdr~VVraK%6U5g-WwYxeOmo%R^K#w{$fE>@CVr24j-x9#axH;tBT-}Xwj1LQFQ>>f8P-L80# z2BpT_I8=yS<2j_KT-yZAtV_o2^l{TfQjvt5g_Fr5`zkKAyO8vxv$g^9XTpNiEcv(@bT=Fcp?eH^+1?>ZVf`wmYQgAI4;t`*=To z&-47g-rH5|+L)B^VuD7aNpciXZsq%e`owFM_xNm+SDnaonOrJV%OOSt8j=;N0OSZT zKHvrnTmR-sP@vJo9_Bn{a+z}z;S~ZpMzzs}13?9?(G(PhgN(NZ$WRsVal8foW9T>x zajXU2VsawRpbhxBqOBq*-Rkmqx7K*gEL^w&DhLw_K>)}M6b{t#5)rn*3%rCfR+sfK zv|u9FSl|avl{t$cn;-(nq%-Du5fp`RT!&&N97l5@1A-d#h;rk3C`OoY!jKOwUa+Dj zvekr}vM*{WGYjmO_8-gX)a$*|k@ibn6_a00^-RCpcYJI`T;|&`rt|d5 z%(YfW{|9@1f}U!d<{V!l$4bxqdh^ck(AfA$>Brqa)X(_3Lo*HAT4o0i-Mr`q|1=&T z50ahY;keV=V}ps^BS};H=T7b}8NOWAvNN$bju^=fhjLD7o3qc{ANS0+u0ZG^*Y@)2 zQ^|LsWm+-#e!b5z$sc2sw)?4P@pkXx7b@45JyHqGt9^x~q%)%Q}!O>4(j z&y1F&eH&r6UAy$nK%X`>d9E@sbw^46)uZ2ol(yD4mgUHnTkEbZyD@Q=Z6D0|u6AIe z^Yl4a?*tz<+BwV#wMK&M?T+^lfBJNcR&zsa+7Erv QYg2!>4%$T>vR3Z+4=C><%K!iX literal 3354 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 diff --git a/data/resource/icons/SIM card full/B03_sim_card_full.png b/data/resource/icons/SIM card full/B03_sim_card_full.png new file mode 100755 index 0000000000000000000000000000000000000000..4908901e3e741232021d989e280c694761b65182 GIT binary patch literal 1317 zcmah}TWs4@7UjJc6a;DHSw`Mv!nzNfWYzl8I)d0a=M)f8G2J zLuE07_4Rx<=c(v!jFAkchP$MZ+Z;5)>p;Kud)o#h^k(OYik?F z&@~lvFoLZ+l}>h`tg1_>-$S^wUI0*v@&M9LQJ@+1d4Ui2!kcmflJ--yFMw`b7__E~ zIl7aJZ`guT1k0PIM&o#~So9PLkE##gAQTE&96p~LYPgLN#S}_z#W+}D;3Olf%bF>x z3TiP58FkoK3X%djZI5T|B`3zA|cxCjPMJfbYpe%{BCgx?GJxSuBg zU;@Edj3I(l+)w&=5UX%(g$fNe3ROx_@ylSdOUe!>xi$V|g%8IBKjYg|H>(O$OE}xXdxULq^ zwfxfZ7WP4iV90>sWECoU#9tGaNdDTg~yGW~pq! z4z!k=tq+CG;gJ+LF*+QLax(5jkgA>p$8?u|&8)1hw%DK3Y~UID(qd%3iMfP;fNN|u zbzq_9?vK%0f_ad6VSX>V=q$f6o}QYH9jf_hyxLXo$RzsuY&JT2YR6QM)_8m(9&T}s zeK_~kr_pBi$jt0G={|e@^e=TSuRH&)+CKTDA6bf_N1rXH^6#cjA}4~R>ZtnC<{ER{ zdoz0L`Ki^9_D-+lCuh8M)%Aqyv3;q(dGe1&^wQbSe~_H^x{~eUliuhZTiMr|xqkY} z<=t&x&!2j@zv=2kuHCM`l4`2u+dc?K@4WrV!iCw(6AjKZ_6~o{b-v-{<%HKr+vD4*-F@{p zqOUrB9=|?a?wLNbU3{(C)z3e2ezWiWU4M=*H@U{D@4XnkwQuU$^j&~myP2;+Y&(!I W!c7ZKduDd&RvZiKl2amP_kA4 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Security/B03_Device_encryption_error.png b/data/resource/icons/Security/B03_Device_encryption_error.png new file mode 100755 index 0000000000000000000000000000000000000000..4b50bba7c2ee94494f3536c75bf3f0d8717d8a16 GIT binary patch literal 1307 zcmbVMZD<>19KV=ZX69U9#>o!K7NnGAi2;Ce+sF+NS!U?1RU> zJpbqU|9=1X8%?zw-0s-zKoDemqM1v>Z?*MoErajk?Rc$x(ybh3vsOA8g zkogXf2E5qUGYuLM#NIAtvSv1Uh!IrT&09L|f~-L_f;5H-8ZUGK6U~7RNeNVy{+5i;-z5Y@EYyTH78pn%1CvJ!a<^hIg&?-d%fPj@jbrGl zirE#!)||>FQz)zI0Hxesm*61?l&0N;kD_U!9wj{liF@Epy9ggc(G2NF*DnlO)5Ufs z&BfPkK`DrJnx@9!cs`$Z=e=%K@4$&bAYgHjqzh`ej6TKW3ogZQmKZo-2)d-1lB%E< zBcD@y%^(InT?;|hlF1EX#aK@iOc`F_HJosJa9OtETGckpH2BwzO|^|op9b(WFw|aM zfc0p1mcTG~4>n{eLT{MobO{!P@8(pYR|bli;DQ)Daf_13cxXS-5Tj_XkBY^-1kvE3 zeGxW7kx@1pAPKI-u^Bevi_-*4lY~DSCy1CYN>hPIH13Iey$x|sBv!&E6vN~d0hH`Y z(C#{xcp#Qxb-A5AQU|0uRZ}%ORSjiZX>|W#NfFh&QD>EBEm{uf(knoW>#B^d z=9iH+vCna2+!v=jQ9t32`C!~pnr_BU| z(fUx>7#^U&iP7O`w7m3gErQsdO>mJ+;m6$4%1X#SZmY6Ci9Gd=hV(egZ`tO~hX)>? z`K_3G#NqZW-3}c)jTDcD2X@ZfDk~0$Z|<1ib7JPp+2XHNiN=Yk$BNsAKHV}hej&Fq zct2Qvnf-7u=dL9sfA%%S>qFD``?P(cyahmdFbw`_dayT>jTT7ik>f! z*&T0(Ymnmgp=|j`{-K@&<*%`$M;-OmO;;UTui5X|&}GL((8*5^piK`K-%s`L`u@>_ zk+F|$ck<{iWbXPmOLuo4(bBV($I#`$4;Dl8t7o_Tu&ws^iZifypstBWQxkvhyK+<5 z``wM5^VK<51^4sRzN?kppZ{4tzW?j_%WC$cBh6!4#U=5VPufPx5L+2?|LMhVt1cW` PuzpvGSPM51eR=pFkQce+ literal 0 HcmV?d00001 diff --git a/data/resource/icons/Security/B03_Firewall.png b/data/resource/icons/Security/B03_Firewall.png new file mode 100755 index 0000000000000000000000000000000000000000..dd66c499266f4f74dd4349f5a6f3503d9cf34e5d GIT binary patch literal 1178 zcmbVMO=uKX93NQ?F&KKH<0RCc2!rR<8YZ{!77AI zWZ5;RD#c--U>|{GEFLv^2!SZZU?M4sZ~zEA6gZyVViYE%q$mj~(7ae`&9_FSlBzdt z(OH%qC&ZIDu2!qXYVjEM$2geDWI_!=h*Cr}n0AR#kGjFWmV$}`)3-fhV;6*qMiozy zEK5CI3&HV<#dTpfXeNrLjH??S2V*?vIAL6?=zx^a3pX}I2jyuGaU~SsDc_{$F}kls zrn!5yp%6&Dkv{NkdML)Eip?npxul?GS-KOmY)j(B6ijPLF`h_jS{%YOFDCLzJ}JnG zoDrbf(%6VA^KqTmWC5mR9YQUUPiXNBOzSX}&hvr@Tik*h5W_W5%dSoBHo5SXTuJef zL9k!Oc(PRi!{eCXU>tiu84K~LyO zUQWT3mY{LVqL>yGK~dtOtSJiHdDahhp1bqY)o*(9e)Z7urY~+pu2W1~^(2_>Z0xyv zzI*nncE0jsWa!d->1$s8^pCUJgYDq)m5XoB-My?Xzk3|%ry5%e2jAND$$|a1)A#3l d$VFyz4^zsVDC~Z(za0K83fhqRz5LN<&jDvseE0wW literal 0 HcmV?d00001 diff --git a/data/resource/icons/Security/B03_SDcard_dectyption.png b/data/resource/icons/Security/B03_SDcard_dectyption.png new file mode 100755 index 0000000000000000000000000000000000000000..8f33c774c601fc3fd6d7b488a65a1e7614579983 GIT binary patch literal 1197 zcmbVMTWB0r7@l@(YEv3gi!CWgj}t>HWOwGw?4I2jvrTqxW{I1|%|b#SB(pPTcgJKd z&dhcYK&)Z|8FCOVU*-25PNHdh1Wi!`gH2C2rf~?$xN13B`u87h(7-aY z^hBz_7Caf(tl>EykI#*kjJat;FzLawV4x`y0vm@qXxcMQAU3n~Hm^w5(KbVaZIy63 zOYb-}Sr`Md>tm2g@Nt8M5FnI*$rM7cA8;(>7?#{94wGUEiCh}AE}B^L&5Br5w3aO* zW$9WNdLqL#8jVDQPq==Sfr21J92^%X8u4J(3H4^&33}TM3Jwh4@1~5a z?jCO_QY7Ap=X{G4MW0bzqi$m-%qv-%oFq)k6j_vp88wCYWJ*wRH7TS8Br7aZHI7f_gmfF5cY;uN4BWPB5xXrcd@NR!eXNJB zUvk}3)mOmr^~#~%#f2}P>l^6Um;z_t?H{&Bh8~>m4({H2>gsoI(udwZFP#`!j;-_{ zehJ@Uz#p-ViJ|MK7H;g{+y@pv`@HY;{8m@@PX{-~hx$9ORA2t`xBc_+p&vWeF3w** z@oLw?!(4vl<`Zl8e_q>~--?~r4t%^myxezbY$S8__TN-_wD```+UwU2tgLq)KDzwy v-0cr?pY+^6y7cD@D;t+?eSb}=Q{7Y4d-cMHOySmr=m(NlN0nu1>WzN@qY8#H literal 0 HcmV?d00001 diff --git a/data/resource/icons/Security/B03_SDcard_encryption.png b/data/resource/icons/Security/B03_SDcard_encryption.png new file mode 100755 index 0000000000000000000000000000000000000000..7c57fa2075dd25770f34b8de9e4b922d1decb129 GIT binary patch literal 1204 zcmbVMO=uid9G|#0w2_u2DZvz?uM?{kvorH%cV~BoY?7UiZI-xk*(@}TAf26gn;nw* z=*)||2|^RKkXoduP&|nTi|IjWt%r(eb4Z~*H3+rPgVfT3rH2x{RH@cC$!_!zdT^MJ z_kZvI`~AP?WO3}!?v8yO6h-aMkEkW`?FpZq?c}|B|AY|=SewA(ZWY&cA5mG;tss!M z^(jG2F{mgoe9Oa@>wu6^ueh@~ zLlaLoL$JL7KGBG|G zjmS;rO)^$@^J=!-xK(-lC2Z647A@l3I;#yAF)S=Z@&@^)^2s4|L#3{*Xc>QYxKvq zV|$|)vwf4DOFyiA!k!fedzbDlKBA(>PyECW_n&lLJ}`LX+11|{AMK5vlJ6f``{wlG zBfF@jVZI?zqu5ywFBHc$`1?!a|Q2{zvlKnEJJR H^xb~|c!-K; literal 0 HcmV?d00001 diff --git a/data/resource/icons/Security/B03_Sdcard_encryption_error.png b/data/resource/icons/Security/B03_Sdcard_encryption_error.png new file mode 100755 index 0000000000000000000000000000000000000000..97989fae0338288c46cd6109df4387febd43f94b GIT binary patch literal 1317 zcmbVMZA=?w96#2vm%3pmLAs4?w*v(x?e(s`YkQ;6_U^iMtk6IgnyJZ-y9c<7d~h*P%%!8K@*9|W)~7QCJV`u4THnyfTADBK6ts8 z=l?wa-|zo^WAXMQJFR=H2!ia49_2dWcenX$+XCNHzn>FL!Qhidm)dJ&1q~n}N$mk> zG%fUjP9R9bgEOERK`gy;B55RJ#~D#gI|Wn6nM-FN8bO*{a~VM#00!Cv`eY@5J(&Cq zLuDy|byG1{EW?6+`RIrSx<=X);>dvLm$23rv^mE>f;2D$G?z{(I+F`vE4&O`o7*^s zuBaFT0c_Q&WGs%dss>QX>2`=Nf(N_V0>j)r-H@pWy5FY*f(=K@ma8 zt_)8Qg4+|1?W!3wEHn zTyK3StPc-R;KXQfG=6>#{|Q0LPDHs-A~)Bww7lGExn5Rj*@w_=?^%djkDgpz5b~D7 z-qFVuw&l&m$#_fs`D5|Sgkb-CdaK|>TdY-gw@jT4{_^bnfpcHq{_)+tue=aUm4jtV z@lo)biuspA^J8ySp02z2+fsks;Qod?g}Uc2q-@XZZ+q?Dy*FxJe6#M`9q%u`GbJ^| zUcD7uvX6atVYb%7 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Security/B03_Security_error.png b/data/resource/icons/Security/B03_Security_error.png new file mode 100755 index 0000000000000000000000000000000000000000..3d80115e4c7e12de622e1db6d10d6986ae148018 GIT binary patch literal 1421 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 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Storage/B03_storage_memoryfull.png b/data/resource/icons/Storage/B03_storage_memoryfull.png new file mode 100755 index 0000000000000000000000000000000000000000..7458cbe4103bdbb4e862fb1a25f994b35b6a38d8 GIT binary patch literal 1439 zcmb7EeM}o=96n$hV-v?zGGHH`#}b{=k8AI)^q`Ek*Rp07v2>0J+c?^zy|leM?yhUW zV6Y34G6_)w&S@vkNMhV3`)HzA95Z8TOk9Fy#2H~2V{mb(F)Yr_#rGIx{IQVu=04u{ zz2EaZzpwY=HPuzQYl_xD5R~iKLAk)YP`OvH0?!M-c6yYBY^#%N`DQsniwtD;@=Xlv z2+=;q#n9f?mamv{2+I11b=S#t&ZkKaA5znbjXD|<02+eIw?_rq6JTVxiSezt2|m1g$Y89VmLvdC9qD5>NHw#5h@fTae~wt;Dvzz zHPPElx+wdC7Fd}Ozbp%+MiYrd)DgX!7kwJkXf!GuI-LqwsH9d-rlTrODo!&{jN}nn zL1uXlRv76fJ}jFM;OX5ELV}C+`DJO5oRb!k1=6O8(t-w6Yc=A$jS^oP<#aBO2!$4{ zCE3N?bN;^klDk!4G%iNs!=eXNvAKAO)bc`#;X(|glNJLEsG^+?O3eHRr;~gJIL~r) zkm5bz5W~q1%7lc&te3Ro7>-kz*^Jt?Hc%TQhT>GI(O^MKF&jluX@aFdpr!T#Y^f15 z=rD_w(CdsSYQxM{+-}#QxYlf;41@tsV;!6%)0~G99bo6|6-g*_XtptnFFb4CoFfMr_d9z9O|(b6QBR{oUf(e;n~xZ;flXsO+;QO`@Z+BviFm-j{3sOTUKNw z^OHY}b*DOJJ zmTOlZ_-_2LW9{*S4q-Jnnz<{sKY3_k@Z;gEl|vavetLehJ9u4mJ`^h)`Z^UV3iP(t zrz#J8*nZ`b^Ow2P$JnH&e;kj0kO~|d%>9<%x9RwJS*t9ph@sYEKBRPYk`F|C`L;9TaD*r`qd~##{@PxnPMsd}j z`nsFf9-UjCcW{sJV8zVTxtD5d&bGT_Q+u~;o>~>1-cYf!0Fs8Uhp!HQ_N?;Dbl9q? Ila|KVf3o@exBvhE literal 0 HcmV?d00001 diff --git a/data/resource/icons/Storage/B03_storage_t_flash.png b/data/resource/icons/Storage/B03_storage_t_flash.png new file mode 100755 index 0000000000000000000000000000000000000000..d626f2999a2b5d96a744a4eb7177e624e666af1a GIT binary patch literal 1204 zcmb7EPl()99L~6|wp(^f@nWlOpINt5aVB}0B%8#YZfE9A+_BBN%no$v$!zj=Cf!Y5 zn!M>`_aI^sR`g;i+d~g+(L*m)3I(AeWy>Pen`jYK5bQ}kw1VKJxP6(9>Z5_6>0yH(Z@UHTK+_UOS#+_l-Y3bkYT_%+Xo0K-+eNxuQ$vF{t`> z1J|(aE}y=GCpd24ORqjh=d9y~L;Reb+T;>HWN40?m`p<3S;Q2~ixzn1 z>EjUmu;w+IH13lJaW`2kZ9-y)0?dg*)Uiq9>!B=bdxY=ztz%llPn>@$e_USQ4rmn>_*Tnv4O5X7 z1Mb`3K2_e-~<%+JG zQXg9lVrmBtPDN9!_XIn>E!HSU*rp_^6SCCnrkN(8ByN%rlxJ0N_=Fd@q#eJOmYQ+1 zP!W#2GuSmF;)71s4eu%XP(^vsRFT9ysK^i&$2Fx0<)VU2MU;@ncd_pOPME+v5z;Q( z(sjKp*2?K?e}>qiKZQ78MT^*smC#oWHlG)(s8~;ao`1NxIXQ4G^TNP>?&jFbM;{KZ ze)`S72X|jO_}za48|xbS}9yS1)9)KY#7)$HS{XJ#&5k&1ZKVu)zJz^1abF zU*EC1{QW;+=I=w`%;4`oh(+_pkAp+^cGn-=-38V@Z~b}h#RsoWoVs&$?6b8`PD-bC zjvRZh^jGrs`b+M}=-Qz@SK)f~%Ght0N51uT-pw3+Kf_)6PtaF9S;f?=3t5_Kxc78Wt0Yt(&*6#2uD>~cT8 zAMf+L&->%MgH_I58S8S_DHMtfdpYHT-yHc#Ukl%7XAgMgiA2{()qH~#Wdxuw`}lf* z*h5SsZ~?~G{KhCKQ7F<*u* zhERm{nNW|;p>~9=z|WSq2%x&f>Grk+yha~dR*ICwNJtO@5`)A-K~5xNCUlXPgkyOb zLy<)jDPTe$imGu`Ay!@hh)z{pbk);cT z-UMF*>7r~)zTnJ+`Xwn$Vpud9RYi+cywHf@Mx#;Y&}fRFMUmLdNldJW6Z29G6cD`v z8Sh7S~Y*quzoWv@}IgDT0+i=u733u{Nzv zZ-r&lTeLV%YYoMe(Lm^Fn_7=kW;LC{+Bs2TI4_W$%2@UhR<|mavNcuY7G=m(3C-g>uIRo zU?B*D#;UPeiwO&DwW3Q{-~Ub+29;oPm#yf!)DmoEdANLr;AHs}0uB~UfM@Jn<3g@N z@kG0wGP`3JfB(2|cba*_`wLXRUis@g4g~RU?sISG*tz}loi89?@JDLPuROiAV77wI z-9ztr{q*j7aJ=tk=iUeJ#hHBz#G4!GeRqEA?w-CoXKA>Gesl8Q*{pk6U6F5<1E)3Z zXYvM>M|(23pK@GX>&Ir+cb<$N%JEE$eUx9NtgN{C?)bd`m((+kVyUv>W^I>f3dVnT-)?@axmXQlAfRc!Im7!*Ytenn?8=F)gIlE ztR5a}+pEs}px^26Y?zwpWrio(JpW9z?zgSU{62fI>}v4kg3@dEgU`9H9!};ibbN{y zynSJ8A^D*95Izc%>n`2*SJmnySwkAE1d z>WR1Ao}8zgBegTWzwQ=zZ**Q#b|21(KjkbOzjNbK>oaeqs})T%@$T&n-ctFeX{Vi3 JuchwY{{Zn`1fu`| literal 0 HcmV?d00001 diff --git a/data/resource/icons/Tethering/B03_All_no_connected.png b/data/resource/icons/Tethering/B03_All_no_connected.png new file mode 100755 index 0000000000000000000000000000000000000000..d42ca66fc5285ae0e4d7a6767f4b2acaf2381ac8 GIT binary patch literal 1453 zcmb7EdrTX394|x0f-nccjg5)7Lxnl$_4>HBC*5rCTB)o+N;9ft%F+7)7r49b?z$E- zA=aS7k!&bo5k;qx#RnN;6kk(HHpL}4vN>@xI>oFa?iG18hng~*FMiwp7`u@T5x7VYZWC(VpupF)`ksQQL4dktJSJ<==J%~B42J06ef}{$k~ewG>`)l7gRV= zKvYJiN(?DB6nc6q1U~5HYHAgEiCmBuk_FR-MVKIlYjv13Z==Syi1K(=M)3TSwXAr- zf6m{QU-mTw0p|Vy$t3zJRY(HI?oAAJuL=8 zJP;H&Z9_vLjwM|tqsc@Y?RMOybHdtKjkt-nSj`UHVsz3py-2Ve2(`2<#Oib|v)%+6lFJ3gu!5;DTl+fh;<9H!UzGNimF&{35&Z{#FCT*7)6wPqFBG!O{KM> zBFeR55TVKlB)6OsSTQVbRZ9)IVW>2axV?aNNg|KTXPxA3r>}Rx4s_BMJ#Kayaopk{ z2#cQ5QTOKSAMEq|JUymC*p5>exv)sg@#ezx;svXE3WqK&x@KS;x@2D>yAH@ z6HI*d#pg$!PV$@l)3%RS*)rSH&LIrQwDJ1T z{gcDf=w0s|Nv8V^+FUQ2wRsQlpwkvtk86-RdAcN4k#T5O+TN`bMXQdEu}?f3+T8th z+Nh(qXK0*ANf?;S9Krf8b`-w!&-&z8^wT#o-qkh5_I+|OC-va=f)Ds_uC={yy!`XN zlAKFt!&3)3YrMYM-Q9(qO}S5X5uN3;GTGjbj(wCqwe8RB?!xnFNx$($?E^22f7`0` zWMb2sb|xo0&~|w4Au{!~rtX=!yU(RKueOciPaZRWw`*-fI~{XI&-4%fy`}5Q+x(1V zwDle>I553?@NCQFU)*;dzn(QRyX|o|S#sr+AH3ez`{g|qp0DnG`PZA*urtqT;x%)B V9E|HKv-he$P`9&~KIW*5{tGtX1KR)q literal 0 HcmV?d00001 diff --git a/data/resource/icons/Tethering/B03_BT_connected.png b/data/resource/icons/Tethering/B03_BT_connected.png new file mode 100755 index 0000000000000000000000000000000000000000..eb6c3e39f5d18ec3b24f7781c8a4a1936656b4c2 GIT binary patch literal 1435 zcmb7EdraJP94}!oK$!SKXI$tCQ)hP9>(Tb^3OBgB_TZR@mxE*sWuaVqTmx-yZQ%~Y z$aq9YNZg#;1ik4WY;hRSm>K8HCNtoMCPvK`6(1vFc+JE)5TcojzcP;T$3kM$$M5m| zd_LdTuLpc(#TjXjra=&t;VGg0;JaCWQj)=YWVS1yPc)`dE0=>>gjIOR!O68e>=D^I z-p{jK^S&{@0D=XKOMSq`A%#2Pf+z(DL|$XzsMsK>RMd_v^HN}}FQW*& zY@*fMk=ssHdVR1Aa1~@NBYy&L^ z8bw~xJhUBYY!o=kP2dDU;|>SrHZh?$YWCwB`HCr8xndZ__72$kj)p^4|*iY&s*S*L`%>6_i40~y+C#w-kuVOA$e zTFoxA%aunu8J7!L!E*mQVJPqf)w^s>*Tt7WE9=A6GXy59r;wLG(G+mTCI;MX5R}mF zp&b>`@t=-jyAmClU20!j*NK`VQ^R{}dqZ0cBUPv0|JvCT%k*WAI!guzyRxdH{EdyL z52Q5RY7560oP0IsTK?-DhNj?RZu^<*hqg86qn6&7r>1B7&Be4^-D3scLxe9mZz5x1 zIPpvZTHATKbL)ns8tyj&slGJ&Yx>;V@{Pfrv3c{Jq|^syHoTeYPK`b6ofBwDhb^+n_JD}-Cy>PzI^Y6O^;MPK701WzxS&{ zM@EfRSDp(D+AS`sx&8NL z?-z?xuYPmBZ~FLyuU-5Io!n+;VjuU!_AMAs4Zd@3*R{`jJsrZqz15X(JaKVCdu)E> zc+a6}uBU%&CV$f6xPnb)U-*!m?09kh*vzwS2~bjD%H^DwUO1-zEcJ>;xu{}1LA B{sjO4 literal 0 HcmV?d00001 diff --git a/data/resource/icons/Tethering/B03_BT_no_connected.png b/data/resource/icons/Tethering/B03_BT_no_connected.png new file mode 100755 index 0000000000000000000000000000000000000000..0fa42bd1973b148b57b09fc5dca7f3e09b91e1f4 GIT binary patch literal 1479 zcmb7EdrZ`J96xy&B|MC54jsvA6%;bA*P~bN8gA~c?Tx|?*l`8~T`bpfSMJf;mfgXE zb3EqIIWskkY(`zeB4z~LhI3;xGKXU)Ta1Z`#7%JfW2ms7? zdU+Sma`ii+e7;T>ds1*$s1?qa36B`mvzm=Q5|jX1r_0|IkywwPSD|X&D}=1@(mzsuF=9;c!?Vⅇu7eOr+i^gFz<^YQvr9Pyxk(`jSZjOQC6^|@P zsvw3SjghSu>r^WYJbe^GP;v=gpQ_B0hm_f5fwUnJRzgs{0g-2HwD{&wPUqr?U~t}A zQC<9F=by;0xa%bzaq)^+Cwo8@Yt}80T3kpooQ;8Sva+8CRdlccg`e4QI*AhCybxjo zl<27o@*$O>tZ-eOz!44;W-?Kj&4xM*G^mXQLrs*~l4nQF7)?>s9Kk{$(9&}NYrrkJ zqz%K-Ji7@+Y0OMHj3nux?4*sxb5U##%Y+n_4S9G?RKp67v8F|_1S#{ZD#~tA49s;? zsZUfz#V1M-S%yO!%Y_gphLtR>)PNg=O7XJr8qYaoF$m3Moe-X+Z*+hTq$#rz&7(0C zHQRCAY$SpIxwxGsNq82^{qKY!z!OC4vISi?w**>Q8_u60FquDvdxCzZu#XOWz9VVv@QUT%et-QUa_8>DxHhP7?S{gN%ggo^ z^>xu1*xQH9Bh1LfXf*G*lHI}_p~wC{n|t@{*oT!pC}J(v|&jH__n9{1{q%M?DSlN< z&;9uB>5`Qx(vO%gX7@zd=%oZ-$`4h|hYp@8%-G09vl;lpu9U!0%c=Y&c<0HgJ!4Nt z{h5=y5^u(RH&GQo)qAJ4X4|VPqqUi5nr!VK$jO`anZmg8Q(rgtYs~)1@X(hlAad}; zS9{M#-u-Lfv)|Ivp!4ZdP5h{1XsO&(dv%@P_3`_GmR3V{$NCHA&F3}@s>8$K(bUPI st^+>@rN+D)(8SPvzxeRq2SxX?`gJ?MX-r_Uy)(a7hAyUh?Ax3E1F|O$)Bpeg literal 0 HcmV?d00001 diff --git a/data/resource/icons/Tethering/B03_USB_connected.png b/data/resource/icons/Tethering/B03_USB_connected.png new file mode 100755 index 0000000000000000000000000000000000000000..3190a659cb5c9c7381ac5d70d89a16b534a33106 GIT binary patch literal 1486 zcmb7EeN5bB9PS3&5W;|{aX7@TV}l`g*B;k{E8JLny>sVQhHwKGouTx~(ZIDwTet&5 z#y}L2MMMGPS3-snnLwgrTf{|)xQrME4C4$g;miz~Aqzqx=%UlN3>bebBsTqcKYq{i z{J!44o|FA-WcZWe5Cla!57W8e8>>BG+rfL}w?7;8O)j zgf&LCSgKU52=MfN2wq>V;3-v=b#hTzO%_O-A;9_!m>xCAD>hnuYbb`<9O3n@TPtcV z|G@c&@++=tA8*Lz6{%9@Kov{&ZjjnsNHbiGfnZpucLakw)qN1`Q$7`Y*R(OD=HpLP)nP*i=c1cqCS~umC zN~)xkN=I-0XGPh=4GLZcROUs3$J9I5FVm$G}=fEPo+@QY_bFI zDU!l$D301_5(Tl7$ST(TzY}Hvo*1+)+t77uOQ4mt;rbZ@ll4=`i=b#SIAcfPFg*lq z8FbR5D=>Yt!+IoyjDA%ipCL_GqFM`S?rdXd#@V7z!ismhMrPQ#Q>{g8SM=_IqoI4E zo0#OhCcEpgZKNxEAew9Y!@BF27d^}Q_J|$vOC7bI*(Fh$P1!@=zNm}48&ZZ%w4C18 zx)qDw<`0Iy^Ucom>yF>!JL}Vb3Skx|U+S)YTdg>ra=bn^*fgFGd4p{yl&j-OqnSOa zB>yh{_iVKGIFR+g0(3bMb0> z`{!Zi*Uo<%Bo4hWn_aLF(KvW$XzIjUFLw-WA6^zd+g18SZ}JB>%1@oVE(+)Wn*XuC zr~5-=-^suBFSJ&&iK!e^{qIo9?HI>i+{IB@(y* literal 0 HcmV?d00001 diff --git a/data/resource/icons/Tethering/B03_USB_no_connected.png b/data/resource/icons/Tethering/B03_USB_no_connected.png new file mode 100755 index 0000000000000000000000000000000000000000..179ecff716c5a3159acec694543e66e0753438ba GIT binary patch literal 1501 zcmb7EeM}Q)96mCX>7pYpkipblPB&rN-d#TqdTXcGUTX_2tEB?sCLHYxoaK7m-9Zak zvQ5SUNP>_>H#PfUi_5^dxd78)hE8+?G%i~pW@dtgXtw>KY?+Co%icqZ{$WgZxsUhb z_dL(<>%A6l!RBR4GnXO=vdraVeej#1K94Vk@1ftD0_sGumnel|r4r>NfG|O^0-!E| zs{%g21?yiM24)0#>`UHXqLg^tbU+leoNA+u2@!}!5c9@ZgbRd#f>wYkK5W6R4-8@` zAGBb_Mi1eM*g!S!Y>+@DvBw2`89Iq3X_K{Y8@ zN&8sGycV2Uuxdq#&^R8AMzvABR+Or6(quBJ96Fr_T4?0@u)@VOVR=o0fdz6v;v)(# zhEbJ~s}O4y3kE&C7lIJ+@m1A|yg(k7=aU7~hR3)FPHG8UnzK>kOQ1ZSM) z;J)(@<(K{S5rF%EEY?Z^SjEaU4@f;)NHv^~f%b4x2*4^jxEdMEZFoHN%g}i~%+;`B zpjH53#l>2%+FCwHJB$XSku@+3=^*T|HYNjUWOGe9Rx;OMXIVBu@E{OsX@d|;==BU^ z(%UElVIWDnfw7SelhxobP>hKs?79Tj6_yn)9001QiskQPt&hagHVJTwDEURPCecma zYEcp8YB7S^3Mn+Jm=6cVsGO~q8gj!>Ss?LsAn1@p0iDY_%|Aq6r?WAnQEw#(%3z1y zTNx{9BaDQNWe6BMgUw@u|2ttg^aNMC?18RJEWuV*hYM#2P8Lof2*aXD@Qi(P`g|jT zBn`P(#vl82Xs;*#^rqBzwjb@=d9*pL)w`3K(KdI*W044(f9a6f*^WC><>2n##Cuqvg=%PO+ z)68$m-Y4YLCzljI`(Cnr>h`*plh0jD+VSF*kw$<;QpTsVmGvWcPV_jFHtbq^{Ij}C z$+OcteB)_dtggJEsU!C|(ylA2k5ydR_s{!82fqj1y><1?-oH0}(7Mff$J=pObEvcN zQ2O`U8(6&mVCA+Y?Qi=(?(R*S%#RnZ$}79ovmZ0*W|C`$XOE)Souhe^jscEjJG{qBCwuKQc>YhTc7y^TxN%GpBBSu`;w=Uhn?2+r-r&RPSGw z-51?s<3&{8^!~c)gCCY&H4e4+ML#dvviEYZ^o96|v0p~w>w3q^@^fFGy4_Y3?>_I| z)2SK0-Tz%%VR^~G&7{lI!gx+>QNK`j_Sor(k@mqE?Zy?xA3E<&ly%`ri;>nUzGGF- RjaK!C>#`THN37+${sXS!A9er$ literal 0 HcmV?d00001 diff --git a/data/resource/icons/Tethering/B03_Wi_Fi_connected.png b/data/resource/icons/Tethering/B03_Wi_Fi_connected.png new file mode 100755 index 0000000000000000000000000000000000000000..e6fffc6d5610e9d53bc56df1102317a73c7dc6b4 GIT binary patch literal 1506 zcmb7EdrT8|9IrDX(~(7(#JS;a2P`Af$Cc}~y-{3ycaB!y}yzQmMt5X&&U!>7!Qe1^(Ie5OTUdc(|-gon3MqMaWjZz`jD-l}aG104JtJP~3#!Ml&>Xz(7r6 z>+y2ZIim$uHrS^qAzZJIL?XIKo=%j!dcrB?eTnKJy8wXA7x@Gcn+9TJm$CicUHpbJHK(ZoC9I&kJ;b z6q#_46BHL|gTrB-#hoV9WFk?!9dQ~cP#Y_Xm`ID&>_99iMUvz!!IMCsrDFjW!6++= zl1{|zFd+zqIt&goMUi#_qX;u%G0tLLf~?R2!>OVwmVb<;o{7Z?iK7)!@`z$!wwp?Q zq9V#ZF$57681!Z}FR)@n&QVJZxIw5SC-Iv&)+vcWXgcdS{}g?L(Fr<`A}vP5OrZ#3 zabTFmNEits4|7li0ncFB|D7;B@IJ;pRe-^t zH|Qemp6Hd~%kGtA*|O6cn{12U>S=Jb8207XZ%W@ixgd7*hk+gX+VSzUvw?v%vCjvR zvU}Xyb939!mA@Z+3HknE*MY;oeJbC|cq3lXE65Y_d3nNiy}D!BUq?PWiv6?OKfzY>4g9_wiRqfl4hQI~O<{pC>Ca`Jdqr5R~n>N>Qm@?y`r z0qf;#*I>VPZxecL^udYEC2gN1l9mL{S#s9LW6Wf8aH#R<7TbHZ3-fM#(;xG<%f<0` zS6?W2Zjv2KO6+-iS?jT}_m9S^Ud8W^jK#B3{(Sht&gSZar?$yNFN<|wsv6j|C^~E*w=G*&MWOv#V@8l=2#fR71 zQinb$9G^ULro?i3?dz3yhwh~Pdw$tZvNv{OJa+HaZ6bNYoxAhXF+L?;p-?2+vneP1Cd*G;41D*G)wtz}L>EZ~e5n*<1fVc`_!5BF{frkl z0pqEBGYm2nipVzBRU{QTHjr-KuVQ2yRmdNJXoVs(D->YdWk5nofS2V==4U!omA%P!A3=;B}b0Qfsp;Nph9LviXicFbE zWhV5YQ$>z^#L5c*(Wx{_w;IP0y8D{(EU)00F7GJT;?P4JYG zPRcf|1!pGICrJSk!-Bz}DyUKMf)~S$Mx)F@5K3sF6e~H22`M>o`3wUEM7O{OB$nq8 znUN{sDNA-G``OP4<;^>iWGa5@Ik!3bplR?)_ki(qQQ;UM#%^DM`dQ@p#v z4>-wAnb3*~) zdIMo4tX7TQLR+oqG}iOK6NW)gFuBVf>$;gG*vj&7_6)(v>?s5sESdn%Seq$)R-uUa z%}$wJq2ZweVa&QQY2fdcFF&ny;+HA(1TmBwSNHsqSO3YJw|e}=-R%pPq>nH7D%C;T z-5XA~oPU3N9@jcS+WPEoRkrbGe(CyS$Ha}4u;<#{5oYq)edLwc6!S}g>a1lk zZ@%n|9#~r#6OQRk4PCG`C2rWcKfPs9gfEB2ZMX7 zU%BI3NnCUux*Hx_U&`FM)RCQR>Ww8I>?OrYZ(mN+(Ua<5la^hj$1Ja9Se`qada~;} zJ-KyH^{p#MTWYqfO-!3JcR_?XFd)YI*VwNv4m8$Z+8NVsS)F4XFl&@4H}6OFY*PB7 z{~AphuP$8C5qGQitg0jGg7N3*rQpEe_BLmZ|9+xo+}ZzK zL-(QPBayogH4N=|CSliHaE`dw-@K{K^}y7-`C`N2qWy|3ImvDII*fhq_4*$k^cCMb z)%3!(gPrA@Yma};j-EcVQd9h+cTvYe{G$&K-fwMcESfaY-Z;>aJG7_cgM|l!IG5lb|RqZNHFZ$;y)d$aXrHYPD?L^&j*N BDz^Xt literal 0 HcmV?d00001 diff --git a/data/resource/icons/USB tethering/B03_USB.png b/data/resource/icons/USB tethering/B03_USB.png old mode 100755 new mode 100644 index 0dc9cc1ae416d37bebdd16bff9cd76af99eda973..f8a1d062cc9be5ca9405fe08b6a7daa1f81ec220 GIT binary patch literal 1594 zcmb7Edr;GM91l92hlhvmbl`M`07}KSN!x@bqj(Kz1vH4*A?nx~+dwngq)Sp-P$xd{ zbxx5RFwd#e`KS|}8^cZK6mD+PZKvEk=S`isoe%EDCMV+iwj~JYAD(y1CHXz_{d_*( z*Dq`H^QOnfjEeyPAT}qPDp1BL>N9+p^8W7I$O2_ZkZncs9HB%GG9n9D-NHf^%<(a$ zYyr!-E8dB)82~W!Q_fK&7tu2bm*CSes*Nt>^DAfo$e0%LGp;gL1{boW9B+YcetiN0 zIkyFxi_$Rd&tg4XcBRP9smyb@D$88B8=960W`qcZz{koA81i{}i3nMsK3+nZtJ``A z>@$(eEYM@8is*bWOAuKQ)fu%e7(qY`(;+4l!;q<<0Y(gZSh+DRVj@tCFrMaviEB#D+}b2Wj~?U2ZKRf(5Mr{Qays>xXNKLXcY^sRKd$kNXtt}0}K=^xkSz{ za{>>ljLbqIAX^~C)5jtB`~_U8N0tW3d8t2HO4{@x#;-?ouwLx5QR5px(e(2XKHs3V zBp0wxoPQ?23;ylMQ zUP^EUd@L{LP!=c<;M{~AHK8bFvRV;4Y*T83n-G*Tg*P6yABvKTytEUy$zRL)q^ zHt`|=3`xwPtd7uyuFXg`X^lVCoSc*#{;0iq-+@WH_l&RIvnssfaP6u|TqJcJwqT0K z^NA+h9L6}$p*3xh6i==(H8nRit!rs_^i4}%N6+P+irR^f+JiU$ezd3~*s&yYYc<(A zd&DnS!lU+&XwK?{+p5UAwwhseIKE|V;C5j})WoV;g6%*YJ|c7G`nwlKef-e*O5=Q7 zbEdas^q*;+iRX{BjOiS6t}rsD7~1sHaclgew)$-cBiAk*j!h^&;9>SNWnTSw6m=K-P6maAKvMnome|>v^OFC)EmFW zT)K9&*wHy*?_ZZ&zKXBTZi3Pr4$qpiV@K<5BDj7Mf$redrqY77-S0O~)AB8Wc6gp;U z;8@+dlVKBCw|`OYmdP4v^Nq>3Vs`wTS+(Zu_xGFF+!@zt`1hVJz>N1qx9n|MT%Wx7 zz-JxZn;;~D{kmc5!4pyQw${{;;j>qlTwHl)*`3jMSA0I4ef?p{rn;WAA4pBPrO9>W zMgGdrQQecw4Y>`C8z(f)kIgv0I#BN4t)-h+@V&{q&;9GY_a(VBIv!}fQQX_O>lUW| N&2wyd)Irj@{6EsSNK*g+ literal 3377 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 Z0fx@s?mK1%*31VLrJk;SF6*2UngDMT7uEm( literal 0 HcmV?d00001 diff --git a/data/resource/icons/Voice control/B03_voice_control.png b/data/resource/icons/Voice control/B03_voice_control.png new file mode 100755 index 0000000000000000000000000000000000000000..24a0345cdc2ab9bf906290ca29a10d53898fa915 GIT binary patch literal 1402 zcmb7EZA=?w9KV*qfTgY(fovwq;}LLE+Iyi_+6$#UdhO_D8D5FtOmx@lLwkYVmAiu$ zVi1iRY$lToLi}K2O`Kmu-LemUm>Ia0Wv~yvWXU35jC?W14+hN=$k^~XMj0O#5-<1i zy!?N^-~a8o^PL^XZI#bgVi;zNwDSV`9x9~Y-Cx(H0?kZ4t-cL#GFIX>xv9K)Fn;M7_zDW zlTnPTgN6@Bo<0d7oe|_@%FuVn6@5EdC~ZVe%n+25B(yCXGrl4!8r>U_PVZRjh5(;B z|4e?pYd8Z50qW|YCZQ_!*6otoTgWurj)9GeS|3DJ42%6b+}emn*;B}QSrPkrRT@k~ z#fb1ed~i@suwllx&3j_mpaw-l)w)!*zt~NkDb-N* zl$rs-m>V4JmX(B>)sLB_M%*Y=9%}LsOoTNx4Ysn*%FobeLSB!Xa?v#BZVI_5ifi^T z9EC#Q!wgCD9()^{_}>X5kSB!MWxKkrxP)5S9PXSUG}$?YP(el0&>5Su%-zN?ix}a# zuH15bV{_AA^0lR^h5mD_~b^rhO%^+@H96s0P&VH~$HI|Ce9E zez|2U%#E$p+fQ1lgVT?WOsxOp7#Kfs$$Dnwz~>vkc8-=#*IrN-uWf!&^2yr`;Kp+W zf4=qSv85j^i?=S3e)~ybGWpoDS_XRe$7A4ztvZ$;y7=C{%iP6B2MV8!^-M3%+zH5? z4e;Dd`EQesb=!j%>lb2}ebc&fEihYIef?a2#hu#%7!7|}KOC4XEqwI;TAlr2a3O1t z&5j96!l8dFCN{0ztv`(G`Lf?n+#CqZ+Tf}2C1xr%^d`0{X-iH)xL*O>))imwUb%JE zk;2zHl-CcwO1?F=R&{mc@Uc|;6>h4LoA)fAeyJ4OcNkm$G+75GS1+4?!$_!u|EBHC G2mb-dgV`wn literal 0 HcmV?d00001 diff --git a/data/resource/icons/facebook/B03_facbook_app.png b/data/resource/icons/facebook/B03_facbook_app.png new file mode 100755 index 0000000000000000000000000000000000000000..7ee83ee6218aad36ee21558a7e7b037c380e3914 GIT binary patch literal 3190 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 literal 0 HcmV?d00001 diff --git a/data/resource/icons/facebook/B03_facbook_event.png b/data/resource/icons/facebook/B03_facbook_event.png new file mode 100755 index 0000000000000000000000000000000000000000..67ddb9687ede14ab34ff267e7acee5ddd0c25850 GIT binary patch literal 2945 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%0DL literal 0 HcmV?d00001 diff --git a/data/resource/icons/Background playing/B03_Memorycard.png b/data/resource/icons/facebook/B03_facbook_friend_request.png similarity index 86% rename from data/resource/icons/Background playing/B03_Memorycard.png rename to data/resource/icons/facebook/B03_facbook_friend_request.png index 9ff4c471e5205d623f75caf3aa0fab9698b9a9d3..2c9c15bb1f1412091208ad0fc3e582d96c295540 100755 GIT binary patch delta 401 zcmV;C0dD@F7^D~>iBL{Q4GJ0x0000DNk~Le0000P0000P2nGNE0L1BqW3eHh3V%;Y zL_t(|+N_qlN&`U{g}+Tih()3z35Wq9q_Pr(pp6g^Sx8|awnBQbveU-e7qApdeFR$z zAHYVi5(FzXAi*2QCW>t4w#ghASZ3y*Z+GVG*-a#oQ#IfzPr*dMoJk-B)`3l+2eg5H zFh!E9O-Z`Zu&yK}p4z|Wn{Xt%Hh)4P17Fn=USLsH)WxHc?olh4?2Ur|r+(*cJQnlE$wug| znj0mBtCF@QT}b*4aL%iwb4fedySG730vERFUDBQlk}8hABrVy#Ctc#G2<+MdvPC?# vY>;|HNZkaf5LabWtn`4{h>)Qlxt{?50YY$?MA}4c00000NkvXXu0mjfE=#Qq delta 397 zcmV;80doGN7@!y-iBL{Q4GJ0x0000DNk~Le0000c0000c2nGNE0H{6buCXDX3V%yU zL_t(|+U%GyO9L?&hM#Leagc+8li&|f6hUxO5I5=M4{%k4PC}v3se|C3aCLDKZW7!? z7biC-K@eQ*;wF^OC1MOFy}Rbx3f~Lia_@JLhxaZamqbLEM%9>7DcHEc>Oc#)1EgSk z2QGod&;Ut^k3R)6U~9xsUV$~BAAcjU6u5~1g-Prr#;a@?s10+!2h0N(&T~h=EO74l zr$7RnS>CdDG!e^g|lNoRxn; zO?Y4$}2YX)jFp8j{z_H~$F7;GU>n*+MQE^z47dM4>($71gQn?O5P zWPv3jlj=3na-q8m1ye8uQ!oWnFa`TRV4r2cp2q<8ROX0a33xPr-&Lp&tN?FC6MF%+ rf%^)eZh;*iRM|rnos|k!L|+2{8+Sp^)YpQ>00000NkvXXu0mjfKiZ=y diff --git a/data/resource/icons/facebook/B03_facbook_messages.png b/data/resource/icons/facebook/B03_facbook_messages.png new file mode 100755 index 0000000000000000000000000000000000000000..701e898b929d80db7c747fdda8230bcf6439b6b5 GIT binary patch literal 3254 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 literal 0 HcmV?d00001 diff --git a/data/resource/icons/handler_bg.#.png b/data/resource/icons/handler_bg.#.png new file mode 100755 index 0000000000000000000000000000000000000000..38bd634ab946b9bb57f5245661f36b30123baeaf GIT binary patch literal 968 zcmaJ=Kd93{91d1R3l9Ym)akglDA@dKo7aZsl{RT@!IY8~Ufr4|*EaMe7n7?=JBWx5 zZ*b7v#Yr4o9YjQM5eIP++*}-7TpWexrLV1Tu!bY|yW{)5-`_iEw{C2uucR4<*=ja4 zgYJo)K69G>ABmsd(Csp*^+*Q~Nn{3ysn~dcK+`ox$Uvq&yZr%`7$yasZjbczo3e#n z)=V&L?D~|=Fr{+ro7MyoFhC>6Q{d0nZy|7O1@7f_UiVcrb{g{lb>^+EHJ?~T8@n=60QT0 z7etPyOUej2IWNiL4p@GWdJF8KY-shRFM3kom=Is)xG0L)D9hqt#0kY>G0_mk3`JzZ znMcex zyGDn^K!4-?r*PPv`G_-6h^K)?8#mleT=}vZAd}#ri}C)ditRBbI2>ais2vGh-E%w} zN8z;vUf1QO7ZTI6P*YPNRbU;*mL*lJ)^^l-ou{Q1YT2s9OBI#pbA@6~QiZ~bt6^*E zB9E-N_L{5l8@b6SxIXo)p}@I=?0SG*ut-^UHpilE)LU}xjj^b;ja-ff!zGP9*67t0 zou0&8k1ai{2OoKK+5w2rX)mk&`+op7Y%5Lx literal 0 HcmV?d00001 diff --git a/data/resource/icons_edc/B03_Status_bar_line.PNG b/data/resource/icons/handler_bg_ef.#.png similarity index 94% rename from data/resource/icons_edc/B03_Status_bar_line.PNG rename to data/resource/icons/handler_bg_ef.#.png index b36a14289785c2b43d4493468b81c91fd7eed546..38db7fffcd21b2b850d8bdf06bb0d71bfdc1d04d 100755 GIT binary patch delta 129 zcmeAanERLtq(N*h4mKd!Yjl3^M#cGDVUC_Ijv*DdrcChU zVld!fHa_~l{^mRuZH+QNJ;jy>?@lokD*R8XyvphzwmI!j#!1haX%BA|PJDlPERLtq*;Jig@X-9u8W=Ru~Bh8m#2xRi(^Q|tv4q& z3Ni?aI2UUD%zI8f=JxBzF!1J``BhwU9169U(A)%3~P>~M6uZ=b-&5N5+x)X~K+ Q1T=`j)78&qol`;+02I_BF#rGn diff --git a/data/resource/icons/tethering/B03_All_connected.png b/data/resource/icons/tethering/B03_All_connected.png new file mode 100755 index 0000000000000000000000000000000000000000..fd15f3402c787ebdc69078e97c213338ebe186f6 GIT binary patch literal 1441 zcmb7Ee@qi+819C%#7WRiLLggq9s=s5*DLL{y-~33U8PD3D@}@PtaF9S;f?=3t5_Kxc78Wt0Yt(&*6#2uD>~cT8 zAMf+L&->%MgH_I58S8S_DHMtfdpYHT-yHc#Ukl%7XAgMgiA2{()qH~#Wdxuw`}lf* z*h5SsZ~?~G{KhCKQ7F<*u* zhERm{nNW|;p>~9=z|WSq2%x&f>Grk+yha~dR*ICwNJtO@5`)A-K~5xNCUlXPgkyOb zLy<)jDPTe$imGu`Ay!@hh)z{pbk);cT z-UMF*>7r~)zTnJ+`Xwn$Vpud9RYi+cywHf@Mx#;Y&}fRFMUmLdNldJW6Z29G6cD`v z8Sh7S~Y*quzoWv@}IgDT0+i=u733u{Nzv zZ-r&lTeLV%YYoMe(Lm^Fn_7=kW;LC{+Bs2TI4_W$%2@UhR<|mavNcuY7G=m(3C-g>uIRo zU?B*D#;UPeiwO&DwW3Q{-~Ub+29;oPm#yf!)DmoEdANLr;AHs}0uB~UfM@Jn<3g@N z@kG0wGP`3JfB(2|cba*_`wLXRUis@g4g~RU?sISG*tz}loi89?@JDLPuROiAV77wI z-9ztr{q*j7aJ=tk=iUeJ#hHBz#G4!GeRqEA?w-CoXKA>Gesl8Q*{pk6U6F5<1E)3Z zXYvM>M|(23pK@GX>&Ir+cb<$N%JEE$eUx9NtgN{C?)bd`m((+kVyUv>W^I>f3dVnT-)?@axmXQlAfRc!Im7!*Ytenn?8=F)gIlE ztR5a}+pEs}px^26Y?zwpWrio(JpW9z?zgSU{62fI>}v4kg3@dEgU`9H9!};ibbN{y zynSJ8A^D*95Izc%>n`2*SJmnySwkAE1d z>WR1Ao}8zgBegTWzwQ=zZ**Q#b|21(KjkbOzjNbK>oaeqs})T%@$T&n-ctFeX{Vi3 JuchwY{{Zn`1fu`| literal 0 HcmV?d00001 diff --git a/data/resource/icons/tethering/B03_All_no_connected.png b/data/resource/icons/tethering/B03_All_no_connected.png new file mode 100755 index 0000000000000000000000000000000000000000..d42ca66fc5285ae0e4d7a6767f4b2acaf2381ac8 GIT binary patch literal 1453 zcmb7EdrTX394|x0f-nccjg5)7Lxnl$_4>HBC*5rCTB)o+N;9ft%F+7)7r49b?z$E- zA=aS7k!&bo5k;qx#RnN;6kk(HHpL}4vN>@xI>oFa?iG18hng~*FMiwp7`u@T5x7VYZWC(VpupF)`ksQQL4dktJSJ<==J%~B42J06ef}{$k~ewG>`)l7gRV= zKvYJiN(?DB6nc6q1U~5HYHAgEiCmBuk_FR-MVKIlYjv13Z==Syi1K(=M)3TSwXAr- zf6m{QU-mTw0p|Vy$t3zJRY(HI?oAAJuL=8 zJP;H&Z9_vLjwM|tqsc@Y?RMOybHdtKjkt-nSj`UHVsz3py-2Ve2(`2<#Oib|v)%+6lFJ3gu!5;DTl+fh;<9H!UzGNimF&{35&Z{#FCT*7)6wPqFBG!O{KM> zBFeR55TVKlB)6OsSTQVbRZ9)IVW>2axV?aNNg|KTXPxA3r>}Rx4s_BMJ#Kayaopk{ z2#cQ5QTOKSAMEq|JUymC*p5>exv)sg@#ezx;svXE3WqK&x@KS;x@2D>yAH@ z6HI*d#pg$!PV$@l)3%RS*)rSH&LIrQwDJ1T z{gcDf=w0s|Nv8V^+FUQ2wRsQlpwkvtk86-RdAcN4k#T5O+TN`bMXQdEu}?f3+T8th z+Nh(qXK0*ANf?;S9Krf8b`-w!&-&z8^wT#o-qkh5_I+|OC-va=f)Ds_uC={yy!`XN zlAKFt!&3)3YrMYM-Q9(qO}S5X5uN3;GTGjbj(wCqwe8RB?!xnFNx$($?E^22f7`0` zWMb2sb|xo0&~|w4Au{!~rtX=!yU(RKueOciPaZRWw`*-fI~{XI&-4%fy`}5Q+x(1V zwDle>I553?@NCQFU)*;dzn(QRyX|o|S#sr+AH3ez`{g|qp0DnG`PZA*urtqT;x%)B V9E|HKv-he$P`9&~KIW*5{tGtX1KR)q literal 0 HcmV?d00001 diff --git a/data/resource/icons/tethering/B03_BT_connected.png b/data/resource/icons/tethering/B03_BT_connected.png new file mode 100755 index 0000000000000000000000000000000000000000..eb6c3e39f5d18ec3b24f7781c8a4a1936656b4c2 GIT binary patch literal 1435 zcmb7EdraJP94}!oK$!SKXI$tCQ)hP9>(Tb^3OBgB_TZR@mxE*sWuaVqTmx-yZQ%~Y z$aq9YNZg#;1ik4WY;hRSm>K8HCNtoMCPvK`6(1vFc+JE)5TcojzcP;T$3kM$$M5m| zd_LdTuLpc(#TjXjra=&t;VGg0;JaCWQj)=YWVS1yPc)`dE0=>>gjIOR!O68e>=D^I z-p{jK^S&{@0D=XKOMSq`A%#2Pf+z(DL|$XzsMsK>RMd_v^HN}}FQW*& zY@*fMk=ssHdVR1Aa1~@NBYy&L^ z8bw~xJhUBYY!o=kP2dDU;|>SrHZh?$YWCwB`HCr8xndZ__72$kj)p^4|*iY&s*S*L`%>6_i40~y+C#w-kuVOA$e zTFoxA%aunu8J7!L!E*mQVJPqf)w^s>*Tt7WE9=A6GXy59r;wLG(G+mTCI;MX5R}mF zp&b>`@t=-jyAmClU20!j*NK`VQ^R{}dqZ0cBUPv0|JvCT%k*WAI!guzyRxdH{EdyL z52Q5RY7560oP0IsTK?-DhNj?RZu^<*hqg86qn6&7r>1B7&Be4^-D3scLxe9mZz5x1 zIPpvZTHATKbL)ns8tyj&slGJ&Yx>;V@{Pfrv3c{Jq|^syHoTeYPK`b6ofBwDhb^+n_JD}-Cy>PzI^Y6O^;MPK701WzxS&{ zM@EfRSDp(D+AS`sx&8NL z?-z?xuYPmBZ~FLyuU-5Io!n+;VjuU!_AMAs4Zd@3*R{`jJsrZqz15X(JaKVCdu)E> zc+a6}uBU%&CV$f6xPnb)U-*!m?09kh*vzwS2~bjD%H^DwUO1-zEcJ>;xu{}1LA B{sjO4 literal 0 HcmV?d00001 diff --git a/data/resource/icons/tethering/B03_BT_no_connected.png b/data/resource/icons/tethering/B03_BT_no_connected.png new file mode 100755 index 0000000000000000000000000000000000000000..0fa42bd1973b148b57b09fc5dca7f3e09b91e1f4 GIT binary patch literal 1479 zcmb7EdrZ`J96xy&B|MC54jsvA6%;bA*P~bN8gA~c?Tx|?*l`8~T`bpfSMJf;mfgXE zb3EqIIWskkY(`zeB4z~LhI3;xGKXU)Ta1Z`#7%JfW2ms7? zdU+Sma`ii+e7;T>ds1*$s1?qa36B`mvzm=Q5|jX1r_0|IkywwPSD|X&D}=1@(mzsuF=9;c!?Vⅇu7eOr+i^gFz<^YQvr9Pyxk(`jSZjOQC6^|@P zsvw3SjghSu>r^WYJbe^GP;v=gpQ_B0hm_f5fwUnJRzgs{0g-2HwD{&wPUqr?U~t}A zQC<9F=by;0xa%bzaq)^+Cwo8@Yt}80T3kpooQ;8Sva+8CRdlccg`e4QI*AhCybxjo zl<27o@*$O>tZ-eOz!44;W-?Kj&4xM*G^mXQLrs*~l4nQF7)?>s9Kk{$(9&}NYrrkJ zqz%K-Ji7@+Y0OMHj3nux?4*sxb5U##%Y+n_4S9G?RKp67v8F|_1S#{ZD#~tA49s;? zsZUfz#V1M-S%yO!%Y_gphLtR>)PNg=O7XJr8qYaoF$m3Moe-X+Z*+hTq$#rz&7(0C zHQRCAY$SpIxwxGsNq82^{qKY!z!OC4vISi?w**>Q8_u60FquDvdxCzZu#XOWz9VVv@QUT%et-QUa_8>DxHhP7?S{gN%ggo^ z^>xu1*xQH9Bh1LfXf*G*lHI}_p~wC{n|t@{*oT!pC}J(v|&jH__n9{1{q%M?DSlN< z&;9uB>5`Qx(vO%gX7@zd=%oZ-$`4h|hYp@8%-G09vl;lpu9U!0%c=Y&c<0HgJ!4Nt z{h5=y5^u(RH&GQo)qAJ4X4|VPqqUi5nr!VK$jO`anZmg8Q(rgtYs~)1@X(hlAad}; zS9{M#-u-Lfv)|Ivp!4ZdP5h{1XsO&(dv%@P_3`_GmR3V{$NCHA&F3}@s>8$K(bUPI st^+>@rN+D)(8SPvzxeRq2SxX?`gJ?MX-r_Uy)(a7hAyUh?Ax3E1F|O$)Bpeg literal 0 HcmV?d00001 diff --git a/data/resource/icons/tethering/B03_USB_connected.png b/data/resource/icons/tethering/B03_USB_connected.png new file mode 100755 index 0000000000000000000000000000000000000000..3190a659cb5c9c7381ac5d70d89a16b534a33106 GIT binary patch literal 1486 zcmb7EeN5bB9PS3&5W;|{aX7@TV}l`g*B;k{E8JLny>sVQhHwKGouTx~(ZIDwTet&5 z#y}L2MMMGPS3-snnLwgrTf{|)xQrME4C4$g;miz~Aqzqx=%UlN3>bebBsTqcKYq{i z{J!44o|FA-WcZWe5Cla!57W8e8>>BG+rfL}w?7;8O)j zgf&LCSgKU52=MfN2wq>V;3-v=b#hTzO%_O-A;9_!m>xCAD>hnuYbb`<9O3n@TPtcV z|G@c&@++=tA8*Lz6{%9@Kov{&ZjjnsNHbiGfnZpucLakw)qN1`Q$7`Y*R(OD=HpLP)nP*i=c1cqCS~umC zN~)xkN=I-0XGPh=4GLZcROUs3$J9I5FVm$G}=fEPo+@QY_bFI zDU!l$D301_5(Tl7$ST(TzY}Hvo*1+)+t77uOQ4mt;rbZ@ll4=`i=b#SIAcfPFg*lq z8FbR5D=>Yt!+IoyjDA%ipCL_GqFM`S?rdXd#@V7z!ismhMrPQ#Q>{g8SM=_IqoI4E zo0#OhCcEpgZKNxEAew9Y!@BF27d^}Q_J|$vOC7bI*(Fh$P1!@=zNm}48&ZZ%w4C18 zx)qDw<`0Iy^Ucom>yF>!JL}Vb3Skx|U+S)YTdg>ra=bn^*fgFGd4p{yl&j-OqnSOa zB>yh{_iVKGIFR+g0(3bMb0> z`{!Zi*Uo<%Bo4hWn_aLF(KvW$XzIjUFLw-WA6^zd+g18SZ}JB>%1@oVE(+)Wn*XuC zr~5-=-^suBFSJ&&iK!e^{qIo9?HI>i+{IB@(y* literal 0 HcmV?d00001 diff --git a/data/resource/icons/tethering/B03_USB_no_connected.png b/data/resource/icons/tethering/B03_USB_no_connected.png new file mode 100755 index 0000000000000000000000000000000000000000..179ecff716c5a3159acec694543e66e0753438ba GIT binary patch literal 1501 zcmb7EeM}Q)96mCX>7pYpkipblPB&rN-d#TqdTXcGUTX_2tEB?sCLHYxoaK7m-9Zak zvQ5SUNP>_>H#PfUi_5^dxd78)hE8+?G%i~pW@dtgXtw>KY?+Co%icqZ{$WgZxsUhb z_dL(<>%A6l!RBR4GnXO=vdraVeej#1K94Vk@1ftD0_sGumnel|r4r>NfG|O^0-!E| zs{%g21?yiM24)0#>`UHXqLg^tbU+leoNA+u2@!}!5c9@ZgbRd#f>wYkK5W6R4-8@` zAGBb_Mi1eM*g!S!Y>+@DvBw2`89Iq3X_K{Y8@ zN&8sGycV2Uuxdq#&^R8AMzvABR+Or6(quBJ96Fr_T4?0@u)@VOVR=o0fdz6v;v)(# zhEbJ~s}O4y3kE&C7lIJ+@m1A|yg(k7=aU7~hR3)FPHG8UnzK>kOQ1ZSM) z;J)(@<(K{S5rF%EEY?Z^SjEaU4@f;)NHv^~f%b4x2*4^jxEdMEZFoHN%g}i~%+;`B zpjH53#l>2%+FCwHJB$XSku@+3=^*T|HYNjUWOGe9Rx;OMXIVBu@E{OsX@d|;==BU^ z(%UElVIWDnfw7SelhxobP>hKs?79Tj6_yn)9001QiskQPt&hagHVJTwDEURPCecma zYEcp8YB7S^3Mn+Jm=6cVsGO~q8gj!>Ss?LsAn1@p0iDY_%|Aq6r?WAnQEw#(%3z1y zTNx{9BaDQNWe6BMgUw@u|2ttg^aNMC?18RJEWuV*hYM#2P8Lof2*aXD@Qi(P`g|jT zBn`P(#vl82Xs;*#^rqBzwjb@=d9*pL)w`3K(KdI*W044(f9a6f*^WC><>2n##Cuqvg=%PO+ z)68$m-Y4YLCzljI`(Cnr>h`*plh0jD+VSF*kw$<;QpTsVmGvWcPV_jFHtbq^{Ij}C z$+OcteB)_dtggJEsU!C|(ylA2k5ydR_s{!82fqj1y><1?-oH0}(7Mff$J=pObEvcN zQ2O`U8(6&mVCA+Y?Qi=(?(R*S%#RnZ$}79ovmZ0*W|C`$XOE)Souhe^jscEjJG{qBCwuKQc>YhTc7y^TxN%GpBBSu`;w=Uhn?2+r-r&RPSGw z-51?s<3&{8^!~c)gCCY&H4e4+ML#dvviEYZ^o96|v0p~w>w3q^@^fFGy4_Y3?>_I| z)2SK0-Tz%%VR^~G&7{lI!gx+>QNK`j_Sor(k@mqE?Zy?xA3E<&ly%`ri;>nUzGGF- RjaK!C>#`THN37+${sXS!A9er$ literal 0 HcmV?d00001 diff --git a/data/resource/icons/tethering/B03_Wi_Fi_connected.png b/data/resource/icons/tethering/B03_Wi_Fi_connected.png new file mode 100755 index 0000000000000000000000000000000000000000..e6fffc6d5610e9d53bc56df1102317a73c7dc6b4 GIT binary patch literal 1506 zcmb7EdrT8|9IrDX(~(7(#JS;a2P`Af$Cc}~y-{3ycaB!y}yzQmMt5X&&U!>7!Qe1^(Ie5OTUdc(|-gon3MqMaWjZz`jD-l}aG104JtJP~3#!Ml&>Xz(7r6 z>+y2ZIim$uHrS^qAzZJIL?XIKo=%j!dcrB?eTnKJy8wXA7x@Gcn+9TJm$CicUHpbJHK(ZoC9I&kJ;b z6q#_46BHL|gTrB-#hoV9WFk?!9dQ~cP#Y_Xm`ID&>_99iMUvz!!IMCsrDFjW!6++= zl1{|zFd+zqIt&goMUi#_qX;u%G0tLLf~?R2!>OVwmVb<;o{7Z?iK7)!@`z$!wwp?Q zq9V#ZF$57681!Z}FR)@n&QVJZxIw5SC-Iv&)+vcWXgcdS{}g?L(Fr<`A}vP5OrZ#3 zabTFmNEits4|7li0ncFB|D7;B@IJ;pRe-^t zH|Qemp6Hd~%kGtA*|O6cn{12U>S=Jb8207XZ%W@ixgd7*hk+gX+VSzUvw?v%vCjvR zvU}Xyb939!mA@Z+3HknE*MY;oeJbC|cq3lXE65Y_d3nNiy}D!BUq?PWiv6?OKfzY>4g9_wiRqfl4hQI~O<{pC>Ca`Jdqr5R~n>N>Qm@?y`r z0qf;#*I>VPZxecL^udYEC2gN1l9mL{S#s9LW6Wf8aH#R<7TbHZ3-fM#(;xG<%f<0` zS6?W2Zjv2KO6+-iS?jT}_m9S^Ud8W^jK#B3{(Sht&gSZar?$yNFN<|wsv6j|C^~E*w=G*&MWOv#V@8l=2#fR71 zQinb$9G^ULro?i3?dz3yhwh~Pdw$tZvNv{OJa+HaZ6bNYoxAhXF+L?;p-?2+vneP1Cd*G;41D*G)wtz}L>EZ~e5n*<1fVc`_!5BF{frkl z0pqEBGYm2nipVzBRU{QTHjr-KuVQ2yRmdNJXoVs(D->YdWk5nofS2V==4U!omA%P!A3=;B}b0Qfsp;Nph9LviXicFbE zWhV5YQ$>z^#L5c*(Wx{_w;IP0y8D{(EU)00F7GJT;?P4JYG zPRcf|1!pGICrJSk!-Bz}DyUKMf)~S$Mx)F@5K3sF6e~H22`M>o`3wUEM7O{OB$nq8 znUN{sDNA-G``OP4<;^>iWGa5@Ik!3bplR?)_ki(qQQ;UM#%^DM`dQ@p#v z4>-wAnb3*~) zdIMo4tX7TQLR+oqG}iOK6NW)gFuBVf>$;gG*vj&7_6)(v>?s5sESdn%Seq$)R-uUa z%}$wJq2ZweVa&QQY2fdcFF&ny;+HA(1TmBwSNHsqSO3YJw|e}=-R%pPq>nH7D%C;T z-5XA~oPU3N9@jcS+WPEoRkrbGe(CyS$Ha}4u;<#{5oYq)edLwc6!S}g>a1lk zZ@%n|9#~r#6OQRk4PCG`C2rWcKfPs9gfEB2ZMX7 zU%BI3NnCUux*Hx_U&`FM)RCQR>Ww8I>?OrYZ(mN+(Ua<5la^hj$1Ja9Se`qada~;} zJ-KyH^{p#MTWYqfO-!3JcR_?XFd)YI*VwNv4m8$Z+8NVsS)F4XFl&@4H}6OFY*PB7 z{~AphuP$8C5qGQitg0jGg7N3*rQpEe_BLmZ|9+xo+}ZzK zL-(QPBayogH4N=|CSliHaE`dw-@K{K^}y7-`C`N2qWy|3ImvDII*fhq_4*$k^cCMb z)%3!(gPrA@Yma};j-EcVQd9h+cTvYe{G$&K-fwMcESfaY-Z;>aJG7_cgM|l!IG5lb|RqZNHFZ$;y)d$aXrHYPD?L^&j*N BDz^Xt literal 0 HcmV?d00001 diff --git a/data/resource/icons_edc/B03_OrangeF.png b/data/resource/icons_edc/B03_OrangeF.png new file mode 100644 index 0000000000000000000000000000000000000000..5cbc939be257d67bf99a2e7efa3d78727e558982 GIT binary patch literal 3838 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 AZU6uP literal 0 HcmV?d00001 diff --git a/data/resource/icons_edc/B03_Processing_download_ani_00.png b/data/resource/icons_edc/B03_Processing_download_ani_00.png new file mode 100755 index 0000000000000000000000000000000000000000..5ce643266bb361e1a7cc07ddf190f0954530d2a1 GIT binary patch literal 1297 zcmb7EZD<>19KW^eT!)*@Iutiy=hd=Kmb-f{cbDX7)+V{j7T9Ga4K5!PdbxYj9L>G# z?y{uCp$?s^13z_xIbj7Y3)CZ@k1elB0iTTSwD<|$Gttz z{eQpT|Mh0aGDmjq*t-M6u$}3nVirB0_OI>R(0%2vH&lP&NqKMFDtcALfmmF#3J^~l z$|TG}MVmf(8xCVw_ccA2_ww>FLA4B0@omVOVIwq#4Ug1pMV*2kUVxLj86*Dw>~jLw zwHR@NlWEyb!jgV;#)0EAnVdQ^rA9SkuT3RyAL z(n6~kQSv-npr~rKN>)Rp2aL3i5plv>bq2igoGbX7;UJ>4>KpHV4T z6)#30PalL}*jatD?;fAS=!kL{&^FWfwL-$g*%8Ij@^aS+vxO0ZlJ0#)wKq z*Mtgq=v9zjujau%=0Oc0YG9Cyu>8= zL`sU#2_P{YY}#}^#Z;j$>SOhXSZ-6SkaVEpSx(Nf%I$6%D_Nf9mMj}jj`R4?3EkAJ zs(a8cHR490iqO$dK`rH22HwoNpg%%iM12=euoB?-ki-HI0bxl>aZEHB4o7GZAzE1N ze4CT?iI?V(!@MBu_ds! zw#MF^UtA0ndV7}x=Yp>_@V@(;f=rFZsTT-sWPqwD?h`eS`mSN)T_ zZ#52#E_I!IC3zp8>Akz_bGmfr<*oHU#?GI-bP(g77^w7gFYfC5bz6NQ z^7yAcUo}Qq7QEP1udE*a?(Fv;+^N6&%<|c}d*1c?uLowo?OFLo%YX59@Oc}4edgJh zPMv=L#!vgN_xvb+OfT$NUn$-m!T-&i|E+5~jqMQ+{Q1K#mqPweDlKKij}jAS{sVu- BuL}SG literal 0 HcmV?d00001 diff --git a/data/resource/icons_edc/B03_Processing_download_ani_01.png b/data/resource/icons_edc/B03_Processing_download_ani_01.png new file mode 100755 index 0000000000000000000000000000000000000000..9e842c1264e66c5ac6742840a96cd133ff1f50d2 GIT binary patch literal 1283 zcmb7EO=#O@7?zWDtcFkzhi)k=(PT!Nu9p1Sl5B}Mu`S7sS(SN?N6qNUWa+alVo9DP z&r0YZ*;sH1j9pgNUUnIQ!n%yX=%I(LEHDz-Wee=*GT3cntnFbehmq`)Yo|Gsz=Zz3 zPw(?Q@2{>F=gyA=PX#dy8!60+CG;Hgucw|w_s!qmQ~iZ2Ror>2=5`btVp+|qLcCxo zby$Lmw)o~2oWii-4ZU1(EAj~Ib6Zh_XMc}%Y zCN45^Ol}FVq0cVaaDHj7tS&96oJPz{<5M1w2n^^dxMws?hxgJ%kC#X9{x(J6Jrj2! zO+0j}A{TMNvLVipiKrR_0B2be&zm401}27x3$lP2U<;<>Dy9m3Q6H;6!m>wVdBKK?YuRPXY7V-o*sxs7X;>{>m}l`b7j;v! zI?kkDYQ&8~6``%a1+~0w8F(-2y#5${5%pa*M@xWV6A}$T3M3^d&%`+)nM}n%is)mt z|D7-jc|!SJcBtzHTd0-&*Mk{Ci-ReICMueZW^DHT>le^`{!tLKW$%~jzx(?$!?yzA z;nUd7YxK~AI!;EUaOCRUzfX6$<=v6c+V|TN&lPWcI4Ymhp7`;8clVW-8YjA26PGj1 z)$@C2Lig5pCbmbn!*J^?zPBp;^cB+?Z!OVBx%)b77=F{QL+biDWu}Svijc3Wg1K$0( zA?UB-wa5=c>?b?x@7@}%iB%^65@XjsSJ#4heBSHAsPi1@#yf;1<7mV4u!{{Y*DpgI5m literal 0 HcmV?d00001 diff --git a/data/resource/icons_edc/B03_Processing_download_ani_02.png b/data/resource/icons_edc/B03_Processing_download_ani_02.png new file mode 100755 index 0000000000000000000000000000000000000000..d602ad17a080604f0a79e29dd3127f15e4ce77f5 GIT binary patch literal 1289 zcmb7EO>Em#9CsVGL8NMf3ZYFKSk7TXO5(i4AF{Rm zaeL|pOs#f+3k4=Lfdmzu#9&uAut^08*o8?*z!5GmAwdghMM5giS<>||Rl>5L-~ajl z`~APYRGv6K6g?EhFl?w)6jk&-7(Nf~MeEwHuj--TOI3f;nejWC3o*fPY7j43S{*&K1# zsj5=O3yuqMI+;o6DFASWNdk&y7!b$PDUc>p=w=dt;%SCYvv}_!kTuts;Z;%Y*+No| zX!w4MC&^Bylk8-Yj$0=I$8jM?I-Nio32)B!wIE@8u|9(cJ>4~1zUkO_$f(tvwx1)A zr*}iJTB=!Z_}(_T?e&s{(nbbaiv-CO>2`I(`1&YC*&Sh7+uEM5!h6o&m*1<*wIHcN z&uP0ls^Uy+hpF8Sg^Ilxctvw(A*!ORH9gq=wXfjoiGx4 zLWW(oqwD%dsFlO*_6#9mdkUeAisqsjE9Ul|Mf3SbNfau<`!z9*?O;13 ztzeswCN=6|MT|uh4h(@rg~lWf2x*9EQZ7T25NM~}in!1V8d70sNaHz6x*n!VSpN5( zf8Y20{<=Lk`|?Qm=`e<2BZV1BMbD>#>xl#C-u?ZY9xQx$!Jl^){ifzZENeJrh!-ra z0#&FP%WvI)Qy4aM#VjuP3(5&WcPvs1Y{-^XM`#S2%Czd5z65=|3@fIcCjPj3jlfMK zO`PHsTB(b$YR;^3vTBCw#Z;Vr9XdqOKs^mqmI9&A$t-ZSx+ z(!>L&7L++$bXFo`oXU?>`$d(Z4)oeD&W}I}~3I$TBRKUS7F=P?*mTg~a#cVG+V344vyJp=t9UBiAwX)Oj z(**MLK?qh|H7ix$+ax3z2b5m zQY!SEhO470E=KoA?JpD<_G1tf&0T`1ig~T(!QKZ&5ne^ko3>Vy9KB&d+b>9IqR}u7 zAp zjuH8IHbH{{wqSd{X6rBz4Y1}zYwLv${RUO~)s!kmj=Xw13Q>JY= zO>ZJ7HR490O3*dmhDP3XEWDR>!F+_ig!(RGt6 ze-7f!o|9)oZ@?)bz z*G!p+nJNVMKUzV<4`mQw7dHvbV+Fy^?HrEcuPD~7c jdh_1-PqsUgSfqsg^AW!z{QA?o!EdP`&q`nCO7Hy#GBBg| literal 0 HcmV?d00001 diff --git a/data/resource/icons_edc/B03_Processing_download_ani_04.png b/data/resource/icons_edc/B03_Processing_download_ani_04.png new file mode 100755 index 0000000000000000000000000000000000000000..ff1b494c8eb16ba78d541bbaf40802c94e744d2a GIT binary patch literal 1292 zcmb7ETWs4@7v1x;fgTpisOYD={PHdXBN$jj)q(o_85ljfjK1rHNv$Rrn!1bjvIoXAkbv>R9zcRgMWSdD67-2DR3Ri@m?|`B4A3~vlCBR^B`n|0 z@&A3_fAxHEY+qmR&R&Y5`tqZ4i9B}%*QR^Peew6BTCl)M1&`Y`+)`acrFFZCK;BgA zsDxB~dTI#`QB?Rdqg=t2!t;`5n=v)8iTS2O&=fT^>^rJ9fiS3|x?!d0YhQj%14B>I z2lxV8aI&ajjLx`dd}gey%}i*bP7m(|L%u`^OoUb7o0FC&`6;^1E0OnLo1sD51W%;s z+fG#qMUb^!1o+rsRAV6of)IloF9>iCh_f)xu;dh?kdt^piYGwlpoyBR*QAo1>u8Zx zif&-+NDR|zwPLNonC;dXD2igh5sycSMbw+Nua-i zPj81{Iwhmtz}_0U<#m!p(#H6z!@wBJxNVytzAmaz*cf4&Yt|kvp*zmsmES8*JBTSE z&u+RJsbVd%PHJPJz_1g8R8ZXsM5>rmCq2~uP$)<*5a$g`os?~@X(9{fXmBKs3M_cd-11SSjlw729svwkNyYRBYJT_8PVWvf~1H>VRSCcFTJ@ zC^g|Gp~}cLUPpS)wN22@x@6o%UnYH*&TtCkg+bygOu~esmOwt{!{=XB( z5Kow(%hq*WcZ;-g@VYibWU)4d$Rb5^$&9^x`SY`6KL59YTG^`Bd}hQpuqYzYrg zAD!Ytt91~IC|e@)SFR7tiHC3W^&k83``wQf&z?NBH~rGp(%O|d=OIsTs-#otS z!&zrLzh^1}u08keA^O3^)sd@5l|P>8{~^3`dEw@-yZV{%%DKkM@L~U|bE!{^g!0m7$Ag`oGau-vF=nEj~W$i_6u6wO+9O+3%(v4lPO}haR0fU3$N& z%~p2IF+HmiKG(<^FM?X+r;u>*o(GEez0pHtt>fGv_Jmegmu)E~BCb>)Kt@n~#dvn*7>)`?_HkUlTi)~(( zbmfM{0)F=TS4TU(FI|6K^%tHbdt=swS5q8Bq%^C9K+aIg zsDKo0`p9K8KoD)`^rGy^`GbOL84<;|iPQ}nqX}YQux=~rB=SHBm31>g-uUKQ66jij zJj~|lyq!T6eR#$}V>2T~b!JlKHF9u27^n-Fz(Ae?>c*7m3iSlp;1%$@zfF;#Vd70D z$a_x7`B9Lu90b@%e^{j<1RNKE49jtFABfU0O40b_!jKVIPKd@p^B}RBqfH0}G27I_ zs{~o`JX@fsTCEnT^+znHOhKOKeU4}}j4i_MwCO4Ju<3?c3?gz>N4GuQGJ(&il&q?k zAhDWJh zs(@Up>ZrJi6QOld8w>e{%@~Bd;!Gl3#jG;rqQ-}OUO0rE*G*+gwA8ABOfM%U$ZA#B zge=RjtjMHNFiT6gHar7aG0w-*FwRJ#D7FaJ1F=>_!&olH^6^X>a#=A7p~R#)juulH z35xw98)f(wHfOq?Vyeg&^|AVWEWIIC$TT?E$Q>|_qtyrGrRxBH2#yGI|ux@Hr z&3(o%HRi^lipbGlL0Z)H(A#o81i6Bo_FGiJ=c%;Wi7&WWjF{kPJ}>gr(IM}eNU z-NfkyCU~n1A|a_Kbo|1d-E;ixa##18KY!o%8n_*}H6)i(Uq1cNTy=Jt z>!wbDOWy@Qjds5jyjK0=^s~DTEC%7OlaGIr3XjhUJ0Fql`7pAU{N_MZIl;(Xy|&%*Yd*MIse*g+Fa-&5!5ciXr6KdGEFB7U46KlUH~ CGpLpT literal 0 HcmV?d00001 diff --git a/data/resource/icons_edc/B03_Processing_download_ani_06.png b/data/resource/icons_edc/B03_Processing_download_ani_06.png new file mode 100755 index 0000000000000000000000000000000000000000..14783202c728e6b305caafc6df34e60fda6f3186 GIT binary patch literal 1289 zcmb7ETWs4@7eKnjgTX!f_Fxzm%#BM0^c?iBz8-XM{&q_97oI%rP1&*ZGfeVCX6Q z2&+&^RfH8|e9?hZi<3odaZclPJpB|%HUvaqLQe$^bKY`=Mhb873h3S6CUMX*@#a$a zZKtM{JP>UM0+xtHG>WDH#}PEcavVJZq7)q^DRgoXnh{t|h{i$tz>%7x&k6-8+txy> z6khSXsz8$UdY!1p2-_)>G|%%sM>HBi77=&B^3+Dea>E@43A&nNR6WDCfX}Fw?3$Ot zk*BvqFslWlT=Cp(a?5Qe3#E;0s8y0CDAH-!`0;g6in2SxG`Fo?uK@2je^-9DxKM>; z0lIe0(NGmt!C&# zmStF0Vlo*zOUbA>rCM9G9be8K=}09zx$W?7jFhbXTJXYz$5uLUmH61Y5M2z@yp9=>ct1aX8(l^ z?6Gg<;KcWR8|Mq_%QN8k8Szgx^wQM&@)x7mgUyw%n(4sm{h@2`9B!`M^V2BU?D^$n zr5}7Gy=vvV?z?bkbfmv|X}t97mENV{uGQEOdnxZeq?R_8pWGBb;gUU}ll8GLj|K)r z;`c55-eEHI!lU7d8>4?b{Kmq_UMetgtM8TP-WI!tA9!o{dhUBvU>EN-lc2b;2&Utz1Rq_$JQwRN@Q%;_g-XEJe@gEwQr~Ci_ literal 0 HcmV?d00001 diff --git a/data/resource/icons_edc/B03_Processing_download_complete.png b/data/resource/icons_edc/B03_Processing_download_complete.png new file mode 100755 index 0000000000000000000000000000000000000000..14783202c728e6b305caafc6df34e60fda6f3186 GIT binary patch literal 1289 zcmb7ETWs4@7eKnjgTX!f_Fxzm%#BM0^c?iBz8-XM{&q_97oI%rP1&*ZGfeVCX6Q z2&+&^RfH8|e9?hZi<3odaZclPJpB|%HUvaqLQe$^bKY`=Mhb873h3S6CUMX*@#a$a zZKtM{JP>UM0+xtHG>WDH#}PEcavVJZq7)q^DRgoXnh{t|h{i$tz>%7x&k6-8+txy> z6khSXsz8$UdY!1p2-_)>G|%%sM>HBi77=&B^3+Dea>E@43A&nNR6WDCfX}Fw?3$Ot zk*BvqFslWlT=Cp(a?5Qe3#E;0s8y0CDAH-!`0;g6in2SxG`Fo?uK@2je^-9DxKM>; z0lIe0(NGmt!C&# zmStF0Vlo*zOUbA>rCM9G9be8K=}09zx$W?7jFhbXTJXYz$5uLUmH61Y5M2z@yp9=>ct1aX8(l^ z?6Gg<;KcWR8|Mq_%QN8k8Szgx^wQM&@)x7mgUyw%n(4sm{h@2`9B!`M^V2BU?D^$n zr5}7Gy=vvV?z?bkbfmv|X}t97mENV{uGQEOdnxZeq?R_8pWGBb;gUU}ll8GLj|K)r z;`c55-eEHI!lU7d8>4?b{Kmq_UMetgtM8TP-WI!tA9!o{dhUBvU>EN-lc2b;2&Utz1Rq_$JQwRN@Q%;_g-XEJe@gEwQr~Ci_ literal 0 HcmV?d00001 diff --git a/data/resource/icons_edc/B03_Processing_download_failed.png b/data/resource/icons_edc/B03_Processing_download_failed.png new file mode 100755 index 0000000000000000000000000000000000000000..a876e7424e02373eb2977c238ff38cd5a026b40c GIT binary patch literal 1428 zcmb7EeM}o=9KN~i+hI1tri+vFYPL?+_U_s%?WG;N_U@pvGAKZq~;2+tx!6w9%7I`@r`}?OD4TywCqy7t|&yQ=}G1l>6Q8ynJvTJ0%peENJtf>szLrCTx*pVOsL4;R1I1#B56*A#O=6Fdk)|O2O zJZGX-I+6QM6?yYuwXkAd`ZawQL{$Z}N*KeyralKX-4g2+|T zQZN?bMb$$)kyuO!kt|^$2--qX7>hEXHg*d}&^CL93$s}mnx+>BmI8s6F$A!f8)YfR zW+o_`8N(Qh9mQ>KD~7T*#!R8sMXX0uR89=?ny7{q9$@ihv7}q(IaQMVl2oIO}pT7)}$&JT~;d6J`RQn6xfi(sc_Z?O0GqVKwOcQ$nAeB9q)JHRpd zom*4wr;g0(>(g(3vg^;U|J`wqaUH5_&b~1FN_xw|sf=5bu}y;&L#4W{SIc|QJKtU_ z9_ZVj_Fkzt;dVA0CHfAP{ME-cA{S3)y&5abBxZ!M-rY@d>y&Zyo!ZlTsmbTszg*qb zboyd7d+H7R_2W0*l4nx;&tZF>y;uKuYcLNiHkkL>0~0@HZO#doZQ60xKUI!(-qPQFA5yNb)9HtAJBRY!TUvf@UwL%ry3t=68?WV0%i9ZjH-x)d z6};=Qkq?KOEYDmTHm00C{MqH%WJ6kD=Sgh#09&o=Q45ZZHnntgPIDi9!C$_*qHXhU t18wIou@_!$_y>Kv#IfduI=9gN$fM9*|5yIZr}e1zpY$-f^ch!K?SB+1|7HLH literal 0 HcmV?d00001 diff --git a/data/resource/icons_edc/B03_Processing_upload_ani_00.png b/data/resource/icons_edc/B03_Processing_upload_ani_00.png new file mode 100755 index 0000000000000000000000000000000000000000..a9375a9fc007137fb65ab9ae24955dec285bfb45 GIT binary patch literal 1269 zcmb7ETWs4@7zL&VbrQib4wCm3&&D#~$|bbXjAVfl8B z|L^<$tKTfmJT)?OWQZV$k>UxtjGu?YYcPiIn}41)!Ua;QXx5!aE!~Gi&U9;#EZX`4 zEJNK~S^geQ5k%xOt5QW(?P0HSZ8w}iYGpkfS1!^Di6|}BFl20U@s7B(I&?7X_ZZ~N={JaBmfGR<^iv$DOKQ7 zqROe0eQePQknR{T6b-S~J*>DdRx0>VN3LIS-A2EgN_7{xLEZJp!mL0ZJ!Ltj+X^Pa zQe$o$stkSWMQEzNYm?oqOV)k#W!!hUJf{F&m{d3b(jcWMDxVY!sZ^Q;X{v`c|98R| z>uS5q)NKIPnEDa9cv})eBbX`RnQj(MDK&yIb?*E={?5&RPbZq-!r6&STTdLzg3iTXqoZ>~^w#4) Ty{vJq@JCcsX5>%vb7%eoWLuha literal 0 HcmV?d00001 diff --git a/data/resource/icons_edc/B03_Processing_upload_ani_01.png b/data/resource/icons_edc/B03_Processing_upload_ani_01.png new file mode 100755 index 0000000000000000000000000000000000000000..aa3480e9076676d6fa5b2cee90e48ef79f5bfa51 GIT binary patch literal 1274 zcmb7EZD<>19KV@1%C?rZ1Gj7l4_78CCU;MIm*kFI+vM)DMZ7Gefd&QXUqbhte;~hCo_7#c zLZ01lHC)B1pXA!PqPOW>W{XtRq)7W{#QtOhfHB4mrc}XA}4MXR1 zEW@%AlgYpwE#um73}mGgm(0QxBTJIhCD;wbS}`4CS%#yTESE{-q&S2!!!e>HvMiGn zb8#6;Vi%jYJYTgm6o>{`<35(#6U&P(QhnPk+jhO%O~sn++g{CffHJ6O+jl4O3(XtN-tW zQP>kI=(1g1*WJRc9K7z#5MJy|A+m7MTs&jK+RU4HK7Y$gnR4rw>elx5Xz233!=cBB zk5_BN9CzrGjUNUP=3bFRGp!bs$re)qY5UR_dB`r zUfEat=oxYC;PJ_&^WQE1)O+h(@tfPDJ#}$#=;1qO&tL6%eCdPVx5>?ON0x8AJus0T z+lt&wKN>#z%89?ue!g;jof!FIQXBiSCz3w8vH8cqyFb3P82xJH(m)}4H}d|8mlyvP dqGt|(Z;6Ww_L1u=hc5?zqr6;@KFv;^`43zrq7ncA literal 0 HcmV?d00001 diff --git a/data/resource/icons_edc/B03_Processing_upload_ani_02.png b/data/resource/icons_edc/B03_Processing_upload_ani_02.png new file mode 100755 index 0000000000000000000000000000000000000000..877220f7e5bb64e2b788810bb94ad6bd10a8005b GIT binary patch literal 1281 zcmb7ETWs4@7XySp(%a|A%4`?b+fGUmSEb00%Rl@S^ z9RJ_<{Z}8G&L0@qJ+_-5h=JUsSisLw|9YSg-`D?mRrMF1RPtu5S+A}*h)8Kx8G)Rk z%%K8Ow57$b(KtZ_&gsRHSCXF-RLck}zD>Ac*ceR^dA2}N^?E&AkAy8}j)L)c+~;7J5Vi=pOQxqZLZ%z+Fo?)i9o_bH%LG27QnqSd zg2bNQ4Z*Mr`dr0xx5!Pmoh+O-s-f5v4AYd;vhm~Vpk#Sxgkfx1yIuj^bN;^kZgI&* zQ~|kG%~5d`XM@|Mb{6st+c5~T;w&Is#jH|wQR{;&3scy6-BhZgrPd5&dO0yc)@r&Y zWI2}OL^hRzSz5xiiL;OsWASJj##l)d#SX!CAl3?N7|TIACPIecvmyhb#HJ%Kmc?u| zEk<}Y!*#GZ)AbZnMZTzy)$d{9j#we%AjPwsqGeS(-85aXJj<@k}%tqhX9}W3~UC zFbaD@`CYcH>pEMwmHpSP8N!RLDMThNnuBL-O8aUR&*!b2m?}1YE^pqslMH;+wI}d6 zvD&NI{Z@4InmzT})fyg88WqhEh>YRq0c`ohHMug#NV8&{8y>VLj*;^Y3ax2OM& ze%3tv<6o0E_we6$uYY&s(}5FXvmeA)uJ>Gi@R4(W4|V-=a{cO;&z$*v|B+))9N2vE z$#*uoH}*0&j_+DY2H(1Ji3qOsoTi(FQ~SO+`e?QPRujCkDEm#9QT$rMeD~xkzgwtdN>F%iNt=coy1ntE{UBsh;&^VsZj@Gj{VxWi9c#P zB&|49Ak?h~*g(qIp_+gLs-{7;9XN2||Rl@Se z`@i@9{r=xRGd?!bv%h~oK@dHeQ893pScq7|SaQWrbJC;UO?s7cha2Tp85$is1s^NYGSq z%W?9dQ-$m}NSQVQTzDX)&=7)1Bn(+D5`ixRhK3A9<2w?9tiVMCCJI^?iLKe{w2%|i zEn8TMlO@-+1d6KFYT?>I*tBOT$n(6%!7w4L5pw1YSFVQ)C)j2Xk)zm}J$)F0ZsoL@lIv`f8%`@(IBis2wkQ~;DZ8oT#n(nl%$Q994syZ^Bs({uNSURj=OQ&ayO zer4;$ANv9)o?Cru-9NSXfDe56%kgizxz2O+(bcZy$<3ujeYAM*&dRvcxV~}r!@u8n z;o|+h_n%?zE_a?D4qo_nod~Y&TcI1d^9QdlJzeSktpVQYObHhUKe_VLfwhkF47Gs)Vs?;!E@ExYmH&oi%kzom>cCVrkg_4a=!Eu+Bz literal 0 HcmV?d00001 diff --git a/data/resource/icons_edc/B03_Processing_upload_ani_04.png b/data/resource/icons_edc/B03_Processing_upload_ani_04.png new file mode 100755 index 0000000000000000000000000000000000000000..337c82f2c1031b40966d99ab5e14677a22ef6646 GIT binary patch literal 1275 zcmb7EZD<>196uYD&9x0%MX>XQ^Xdmhlgo3tyX1~$U2@N53-QvL1{U#4FLzIyYkGI- z-4l}*!P%nJFFGs87>p@H*bo&JLGXhwbh1fNnERmfgWb>%1Hs`ZCuQ@wEb01T6g=+j zdG7!F{r<1_`b6>Y;NAm!DT*4*AAu$E91gBMVRB!){;Clyuv)>B?lf-c9-=a)TSau< z)@M)&>E^=xMKnrLp^vR{1y{6ZWy7^&dSDZ4+YN%IsL`=@LpSOO(^WKMIcesvFTY}F z%SM6jZa0EP7~iu~;@1>xN`9V+ZNcwoC|Ygmt=Y&pE!_PBR@|nY;(vEJJrp za6Qf3ajK$C(2DCJT8Jg0MjQZI6k~uFL=ikgb8*12adL`Lz{`Rtb4j{;FhtEWr{xmN zb+yPU&D1b%$Sm7xwPLMA%=KniAW2fd!EsSy5%m`wthb|%Khk4>$TvKzfi2ge14g~- zHgTFEp56(;Zj`K<8uquy9lx6_k~X%jH&_shvtGw0h_8pzw4D*Qy=Cp=61waBJ^B6e zLIbfScVVY?+ zEmO`3ydXe6lL5K7N@^qVK!7PJnFT3cg%I`#wgZV)%p_Pot0)-=crgb#08~B&6Ds5q zAj4%PPF1o!Y~Jy)?ieT#4Y1Z-Y+^^OtawPru2**5xn4I-)LiWPHMc=4lOp}(QOhyi zmj6^xYQjxIg~+pBL}t!&ZMu_n*}8{5Bz>33@+uI-gvtYu0!dZP37n)Plc_jJFKmZ`U3E@=dsX-$_#NfdBK#;jwe%l#1EU!L literal 0 HcmV?d00001 diff --git a/data/resource/icons_edc/B03_Processing_upload_ani_05.png b/data/resource/icons_edc/B03_Processing_upload_ani_05.png new file mode 100755 index 0000000000000000000000000000000000000000..582ed4b856bb71a81639eaf4d02ca06f55cb8680 GIT binary patch literal 1277 zcmb7EZD`zN98aySZM}|ap-^=;rU(;umpr*7cL_bOcb8;6y3~3-*x~kJx#a0x?B%6N z&dZg7rJzhym=jbG#1Fy{wH4eqKg_{_tSF2z7>EeYjnYqp`lW+ueR8|&`e76dd3&Dx zf4|@VHSf*OofsZ^ZV1D$;rxtPK+o~;8t6y&*7iGExbUTtzhE!=4b_EMMz_ll&zoum z7NDv(m#@Jo4C~!6iY33KoD?+MjH#hbEHE8}#;~b$;HcUX^zkyR7*>k7_u~};H}n*7 zid87Z$-$~Iv*N;qmARs}vZV1kk$x4Q3Is%8LSMxLvu1fhkRsZ=0(uX(Ndj-1_)96` zp;IMg9?#h>#MxLps!;&o92Wx&%W>d1PE&v;DRgpCzz8fS&MQ@eSL;Lq@f1*ZmZM zJbf5~=@g7g)%W(vEw7U-lr}O@9TLPS(rw#>@pVy(ayY^?_pLp@03SL3SbneAbRb!P zo?Uk}RK>-~15$?zg@&CN1Vwe1AgZFQ);!q$peVv?$a%w3Yoe{yO=$UfF-6qthAzk~ z!?Gfi$pD#>P;Gbyuws%=WI>XVL{aP#90Ve*n2xXvPsJq~aGWgC07y(WE{l9NOJ%bO zDMO3#E;es@zG`VO6b-S)BP@F;R>-+f^=-Fk+qG^t%~x&T_Numn=N35p*eS!(?S}VC zSZc(LLKUHFyajdHwN1R8b-{RyzKHrRlVv2pa&d_PAPEwZB(pT1OC*vMND>{a{=XAO zB2UP$%MNs1cMG+0__{wsXt6(q&_YFX(TrWDw}#Pt-pPxZV(?q}!QNiF_q(3a-lN#p zpH#7Be&m}Qo6kc0NMCslKhj(7d-F8$bnBVvUm|yZ$lkvpZud)5J+*<>#J}288>^*H zFO0W#^`j$y|8-%s@AloB1MBrC@7x-tS3hc00xvox$g;J-4@}e}DJHaQx;Aat+=Zsx~iwcz!1`@y8%r89W)`f8LXJ#>tVlUz%JG zR(InUo5v&66SLO`bMJeFo{2ZU2Vb6Ei@X@wKDTpzb20tX*qP1i1DD2jKlt@xdiuc^ dV^{k|&SKH~S9Y)J_x=ojNO@^aT+g0e`wt21q_hA4 literal 0 HcmV?d00001 diff --git a/data/resource/icons_edc/B03_Processing_upload_ani_06.png b/data/resource/icons_edc/B03_Processing_upload_ani_06.png new file mode 100755 index 0000000000000000000000000000000000000000..bbb7244872c0784fbf3c180e8bc0c37aeb6faceb GIT binary patch literal 1273 zcmb7EZD<>19KV=WUA0&{igvE^yvmrm>0o?Y%q6-&!gw4f8Bj2y08BBlHxC1q3F(w#5Qv%o2 zByo(9B9fJbRqfEC4QCgp3(8_mNvK5XNqoZN5P=R|8Ta(M;c#A(=7|;yMf`d2}0TdZQCmRAZ$FLj~!@CE8)NHlP<$1BI zg;q(T>be$3lFeo_+>C}zyF!9QBH?pTR0vswoCU*`y^!II_ZWESD7I#~nrYxZqg*l@ zZjwNr-V8yv@>-?pI$Pw1(@hpi8|ldw3BnQ5?%4S8^-z+uGeXz5tQ|KGZ#jQkey6Zt zK{5{=vtcW!iskWbQacOzhTRxANw#YcRZ*1d4(xo8BHP8g7nH5{-tY zaw0=B3{R)iK#T~eHVGOqd^{1$fH*DiJl`YO4n$gE6=9=sL5xvZh81}V0D(@&BAIk7 z8&89b$Wjc|!{!Xfl??^@qCQr;g{61Ia#@15PIHnn@ z*>oQBOO3cus64c_XQ3+ErjB>A&S|&N=TYCKGqeC0HY(5n#6e6DM21RaW3hMy#EC9e z{oe^Aktd|zW!t*0w}o2Sf8ClPwAh+LXrQ9mXvTJLoctWk=j9xqE_gqbZftI*g6{`* z2gk5;Z}wpu$MI`K?tudzw^q+j-uOG!ce20qT`Gxz7OVbawo?iQK`M%Jl$XDUH!nN0eD@XS|_5B}rU0Qmzf6veDJKpJA gf936emk(k?^Vs95>KnfY%KlFd%L&u``ON&%e_VN`iU0rr literal 0 HcmV?d00001 diff --git a/data/resource/icons_edc/B03_Processing_upload_complete.png b/data/resource/icons_edc/B03_Processing_upload_complete.png new file mode 100755 index 0000000000000000000000000000000000000000..bbb7244872c0784fbf3c180e8bc0c37aeb6faceb GIT binary patch literal 1273 zcmb7EZD<>19KV=WUA0&{igvE^yvmrm>0o?Y%q6-&!gw4f8Bj2y08BBlHxC1q3F(w#5Qv%o2 zByo(9B9fJbRqfEC4QCgp3(8_mNvK5XNqoZN5P=R|8Ta(M;c#A(=7|;yMf`d2}0TdZQCmRAZ$FLj~!@CE8)NHlP<$1BI zg;q(T>be$3lFeo_+>C}zyF!9QBH?pTR0vswoCU*`y^!II_ZWESD7I#~nrYxZqg*l@ zZjwNr-V8yv@>-?pI$Pw1(@hpi8|ldw3BnQ5?%4S8^-z+uGeXz5tQ|KGZ#jQkey6Zt zK{5{=vtcW!iskWbQacOzhTRxANw#YcRZ*1d4(xo8BHP8g7nH5{-tY zaw0=B3{R)iK#T~eHVGOqd^{1$fH*DiJl`YO4n$gE6=9=sL5xvZh81}V0D(@&BAIk7 z8&89b$Wjc|!{!Xfl??^@qCQr;g{61Ia#@15PIHnn@ z*>oQBOO3cus64c_XQ3+ErjB>A&S|&N=TYCKGqeC0HY(5n#6e6DM21RaW3hMy#EC9e z{oe^Aktd|zW!t*0w}o2Sf8ClPwAh+LXrQ9mXvTJLoctWk=j9xqE_gqbZftI*g6{`* z2gk5;Z}wpu$MI`K?tudzw^q+j-uOG!ce20qT`Gxz7OVbawo?iQK`M%Jl$XDUH!nN0eD@XS|_5B}rU0Qmzf6veDJKpJA gf936emk(k?^Vs95>KnfY%KlFd%L&u``ON&%e_VN`iU0rr literal 0 HcmV?d00001 diff --git a/data/resource/icons_edc/B03_Processing_upload_failed.png b/data/resource/icons_edc/B03_Processing_upload_failed.png new file mode 100755 index 0000000000000000000000000000000000000000..fd118e76b8c3d8851a8589f42971b919cff01612 GIT binary patch literal 1422 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 literal 0 HcmV?d00001 diff --git a/data/resource/icons_edc/B03_connection_UPload.png b/data/resource/icons_edc/B03_connection_UPload.png new file mode 100755 index 0000000000000000000000000000000000000000..48f48068d47539335149f8b6497b8a31f23fdfc0 GIT binary patch literal 1254 zcmb7EUx?du98Y)bJkE{59E=?de`MaAa7~&tNt1Bxwb!&>(VS!`)Qubf5_CMW0m0`QV&;Q5m=)d2p~HgMr|~fj%hu;;Rqk&R@E=-orRB z`+Yy3@Bdt0n1BA@_{2CxQ3p$NTA6&0MbFqMd53?#ZAJnvRPiEO!Y#vxRL(**2uhBz z49n24)?U90rzvXWE4xy~RsBWPL=Iy_I!xQ~2%4g%XWE`&u0RZGaM^a#^xwB`)4;aU z^jT3)=w2Sy?YVUyF0Rj4%=HyhvFMo$m~N|tz=7BRZKvS|YCBE$cvZ5FwpkkVRPaig ze&keDUjTXJLm)EAxS8NMAV~}-h?2xj0Y1U;Y=YcUoD)=0Qu!3 zDNWZg_EeT_wOULo$sm83o^#ayFou$ByDWl@K}yXuzpV`if@3@^}P{}Gt>@n8UE+|WBG&1ng`i3 z3{cZINfnn)>@u~tp-8bGgQ^?;3M5r58jS$<4s>08i8yb&Mngkp(}6B7X=%FIv@NwL z3Zke9xg1wa6i96pffF@ZNzHPyP|!4OK(HG~Y%vzW=J=wfq=bYd$|;U32r?(gIcZid z%<^KM7lzo98(_mVVPrJI+CyxzxF=T4`_RD1uOQSIbkjl|VHDJn2l9&&ICa)`Ez}C0 zi%LznNvIn1?Nw+MedK^%)>Zp4_C+a~O!A5>3zAq6IF9&U%;gJ$z>@MEu%XW3$V2iYJv>eV55r$I;T~aik%-FTRK6rx6=lznFtF(Wqb$51VM!t+aHFEsU z=HzErubku0-`$)PZiZtW6#F`pDO}MWKKlh|X1j+ve}Kzx9@u&^{2|+&=)7|ApTpl} zjPTPlM?0;2oQk~+wnjqr;W!i9JfuAcbKMKssm}F{{qGx%x$iH=R>AgYSXOIqvs!>Q%_sJo&no$eg6B= z34QhO)k`OTI-c#m`^mj<&bsy9vChtiADgj#2dG!~G2e_$eoOvI6jdtBYu9IAyYw&2 ClbX8# literal 0 HcmV?d00001 diff --git a/data/resource/icons_edc/B03_connection_download.png b/data/resource/icons_edc/B03_connection_download.png new file mode 100755 index 0000000000000000000000000000000000000000..25802b0ca53fa85e6a976add3160318f1af1a89c GIT binary patch literal 1251 zcmb7EZD`zN98WzvWOHLW5H=}`>E;XFCHLf#++FC|W|zcXHMP4Q><|TW$#cEfCQnSB z+g*!byHUKMgZV{7KZy(~=r#v};>L>ZgBAUv1y5lp(;xWS=N4DHxi z=BQ{S3_k~}&e(har{*V$*8Gf>v6+!4>EVV<2waFwy5Y`xq1?za9bTENqiv3%J1Tf4 z%iMOVWK7aI6hK;JlW{8n04+%@5JX7=hiE|dcQ1xm3+#$qQ1z}Y zB4wE>#=gvP^?IGHCs`Csb0Cw+L>xRHCmQi^&ckLS?uCOr1{H=@;P}`<9vv~7WmLmi zhIo2A1lKP((^VX9kb7Y_StM;-!}K}8Cb*!Z6UEm<8OGKK*WJ(#aRJ_O{;vFCan6Ta z0fwj+Sfq-T!A+*NHWVp#V~`Cqn1Q5HcHvBla1o5|_PT!K$aVmbwYCS=5Rdm%PG3r0pGtaAsO+7c`00%&3s6cL*3b<<=OVH8%8Pv@p2`thTVXQO)f zL{w_RO+r;+;2eXt9w3+QWL8i?ZVUlQegSJ_NhmA@vR-r_G0Vd=90g6WlTM@^x?t- z<0tO_yRW?Kz-RkMFZMToJ~H@e>wIa2x_;uykNH1OQft@0Vq@)JxZSTF|LgnHzg6Dc z_t>@3S9ZMqgK~3d^c(He+CL9AuP&|+zOz0=AG_xoS{wi3_r+GMd3m(Gf1%aiyg`4^ zeog;%OkPPpvM{i)F7AGJ&wCFIRSsOZ+CL6PR=@q2>f1(rGJv_~&+@0E-%eheP|qHI G@%Vr4ZlOs4 literal 0 HcmV?d00001 diff --git a/data/resource/icons_edc/B03_indicator_bg.png b/data/resource/icons_edc/B03_indicator_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..c27b6191185843392520c494135a7edd9b525cf0 GIT binary patch literal 1052 zcmbVLO=#0l9Pdzc6nFPyu$UcGu*rM*Xq&J)({&#ZX*A>d1@`Cj7cApC1$IiVfJ&gFmOHi-qRFL+ zy1g`OD-Jt)h8c-fD&QevF|jx2M`~PPJGv^}C)Yg7bRcB5z-~L$s8ksphlr6mkg-7) zGFgd(5>O=NG$Q~Acqs57mw`Z)b1HyL_hG5E&}phQqtvxUPX)F`NTBk3yWQs6B8S5n z9x95$1A!NW3`Jz3MW0x4#*c=33I>Yo&<%)-eI`+~rtv%}u+-D-5WJvL*%9`mZlY+) z_}B_~$N}E-lDInPh}6(uH+Drw^~C`3H5B3b(5Cfh4)@43cY7O3fYclHLg><>SaSxp z=RM?;vQc2^AI@_4idsq2^F58-xU#Hhng#$cixPyU zSfm8qltlq3rdblj9=GgA#PV&_v+Gj39j;O;?a5X35LpC=b&ThF9Z+pyf}<7=7=1F! zoSbrf2e+eBNqM%THBjg-Ag2^!kLl!Bb$783O-ae=d0mu%X^If$^FmICx(thoE{S=K z?Q)&}$r(?b;gjb0r&)Sev;&jvPV3Xd&hQ|gPE1HgQ!8!vBGwd;d}LuDhpdu?SoeMnmQaq;8f%zf!C`PE##{B>*f)%Sa! ii)))h57yU@>C1ho^P6ztp>*PLGOuNG!gyA^a^nxFfKCwr literal 0 HcmV?d00001 diff --git a/data/resource/icons_edc/B03_not_conection_UPdownload.png b/data/resource/icons_edc/B03_not_conection_UPdownload.png new file mode 100755 index 0000000000000000000000000000000000000000..61811913e62720baf15ef68bc55d55b1860207f4 GIT binary patch literal 1243 zcmb7EZHU`s98c}e&C}ZoL&3vg$ZarjZStf^+T^agrhSrYaXCw`xYI9Nnml)n*SsuA zZSGJMJ>g`2k?BAY917wXa~w<%H#U(XjDer_K?D`{O%QZnrFcH++S`2?2Zp>oPyWB( z@BfUQ%lHuAJJ+{e2wujLKF*6%^y0L;nvWb>0r$GI6?IuN9W`R1% zYmDZVQOl~V`DkHnzG1Ab7@|qd9w%oa2@}{T)XB(hJAo7xr~$8p-{WnXA_penN`boX z)S^}+%dU?|K9fxw3;?7cWB|tt0ysvp3}9&npF$dN5-&(>jvO8oR`bmzsSeel7G4#o zRv3B`O?SK9OgEcx{bd@6q8M|qY#LjngHdCSq;&^06PsP@RrtN-EFs zJmh2!*iuQB8?M_PbyKb7hHlVuJ+izYkVj8ij_G!T=i*Xh zZX7B^zV#Y1Ro}JALDnVfA^PR44DwJ>RTktF4#%zJ0TdOU6_qTL0~|HPn*TdtH1>p! zyKG0-jka(r$FJKngcsXWh#XurAJ15iC2rvP{GkfvM)XUwzqK`+yqq|gJoNonN4_}! z{wwUOw<=fRlN%pj)E|31b(R3ne)27wnto(+fEm#9QPL1O%;_|m;~L1^yC2@Vu}51$BC_mH2&%$meQq>77Y${?3dO`?dRGq zaVrF)Vp7Lthf3qPO5=nWXwz;(YJnm&X@^N02mz;Z+Ab@X3AmK!HtBY#c9`Xl_kZvI z`~AOtaeQpFulGnVMNxg_Q(BdL2b1Se4|%UYxL_qhq}QVf+>F|0fT)s<8wiwLa|%_F zY0uBzM#B`9YC5%gRIi+tE$n8@L?;uwK0#B|a545xtA!%aKvRxapdZ~@rGaA?=(E`h zTk%yi?VMT&(8R)6&01(#l1&%i0mHFO2wW7IAa-ZGP>u`qHm^+9$u>iSZI!51pm&_A zSH^*g0|c@eK5elO0#VFBAuEdTB;Z)cF)X>oG!*2lD04Z`xoBc7u$yvKGdi}2RG_D$ z$d?(W-EL>vdT)G(gu zcEI>Fj&L}QeV|T=;KW(SvvE6oD=E)Tv>FPW50PyI*ah49m7P88s|MssilD=+$m;@x zd6?66Bg;u@E|+Ivp6+1n=gApEoMDpYc&b^tTciV%ZVx&~iPy|%V_{j&?b%|jdgTRrQ=i`TWIOP5lR8N9r@uW?5C{y?zy z5tpX+4Ky~sd~vDb4F0_``PEhQaQ}gO!=O2|^2NaCw{N^~_;mB;ouOLan;-mZ_k23p zcpW^x^6Hh%yI1SwgB!*8{?_OZ|EzDG3woE{e{g1G@uZ}--u*Z=d#wMHp_Nx~|G@HJ z-==2YC_G#)k9>FO*URS@>4Bw3%g$q~@%FXRk*|ewKi~W1rSnvZT3d5|`m=cV$K)4L M*2lDOl*z^a0hEq>RsaA1 literal 0 HcmV?d00001 diff --git a/data/resource/icons/App tray/B03_Status_bar_line.PNG b/data/resource/icons_edc/B03_search_divider.png old mode 100755 new mode 100644 similarity index 95% rename from data/resource/icons/App tray/B03_Status_bar_line.PNG rename to data/resource/icons_edc/B03_search_divider.png index b36a14289785c2b43d4493468b81c91fd7eed546..d90ad7802ce475fef48717e0cf36c84faccb435c GIT binary patch delta 95 zcmeAa`y#5?8Q|y6%O%Cdz`(%k>ERLtq?v$Nm4gjPX2@Ht+Ne06%S7JO#WAGfR??sU r|Nqys0f8EuhD7Rwvp_Wr|Nk>Hg!Qwy9S+}m0mS!o^>bP0l+XkKTXY&| delta 116 zcmew&+9{^k8Q|y6%O%Cdz`(%k>ERLtq*;Jig@X-9u8W=Ru~Bh8m#2xRi(^Q|tv4q& z3Ni?aI2UUD%zI8f=JxBzF!1J``BhwU9169U(A)%3~P>~M6uZ=b-&5N5+x)X~K+ Q1T=`j)78&qol`;+06zI5jsO4v diff --git a/data/resource/icons_edc/core_theme_bg_01.png b/data/resource/icons_edc/core_theme_bg_01.png new file mode 100644 index 0000000000000000000000000000000000000000..be3057d33a043ce443abfdf8d04aa94ba1f215ff GIT binary patch literal 57845 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