From ab0ae72560100407da9d27cde8c8dfa0718e3313 Mon Sep 17 00:00:00 2001 From: DrKLO Date: Fri, 7 Nov 2014 00:34:47 +0300 Subject: [PATCH] Different improvements (not finished, not usable yet) --- TMessagesProj/build.gradle | 6 +- TMessagesProj/src/main/AndroidManifest.xml | 2 +- .../src/main/assets/fonts/rmedium.ttf | Bin 116752 -> 127488 bytes .../telegram/android/AndroidUtilities.java | 130 +- .../telegram/android/AppStartReceiver.java | 2 +- .../telegram/android/ContactsController.java | 20 +- .../main/java/org/telegram/android/Emoji.java | 2 +- .../android/GcmBroadcastReceiver.java | 2 +- .../org/telegram/android/ImageLoader.java | 14 +- .../org/telegram/android/ImageReceiver.java | 6 +- .../org/telegram/android/MediaController.java | 30 +- .../telegram/android/MessagesController.java | 126 +- .../org/telegram/android/MessagesStorage.java | 10 +- .../telegram/android/NotificationRepeat.java | 2 +- .../telegram/android/SendMessagesHelper.java | 24 +- .../messenger/ConnectionsManager.java | 12 +- .../Adapters/BaseContactsSearchAdapter.java | 2 +- .../ContactsActivitySearchAdapter.java | 4 +- .../MessagesActivitySearchAdapter.java | 151 +- .../org/telegram/ui/Animation/Animator10.java | 191 +++ .../Animation/AnimatorListenerAdapter10.java | 50 + .../telegram/ui/Animation/AnimatorSet10.java | 705 ++++++++++ .../telegram/ui/Animation/FloatEvaluator.java | 24 + .../ui/Animation/FloatKeyframeSet.java | 114 ++ .../telegram/ui/Animation/FloatProperty.java | 30 + .../telegram/ui/Animation/IntEvaluator.java | 24 + .../telegram/ui/Animation/IntKeyframeSet.java | 114 ++ .../telegram/ui/Animation/IntProperty.java | 30 + .../org/telegram/ui/Animation/Keyframe.java | 187 +++ .../telegram/ui/Animation/KeyframeSet.java | 200 +++ .../ui/Animation/NoSuchPropertyException.java | 24 + .../ui/Animation/ObjectAnimator10.java | 488 +++++++ .../org/telegram/ui/Animation/Property.java | 49 + .../ui/Animation/PropertyValuesHolder.java | 556 ++++++++ .../ui/Animation/ReflectiveProperty.java | 182 +++ .../telegram/ui/Animation/TypeEvaluator.java | 21 + .../telegram/ui/Animation/ValueAnimator.java | 675 +++++++++ .../org/telegram/ui/Animation/View10.java | 346 +++++ .../AnimatorListenerAdapterProxy.java | 112 ++ .../ui/AnimationCompat/AnimatorSetProxy.java | 68 + .../AnimationCompat/ObjectAnimatorProxy.java | 81 ++ .../ui/AnimationCompat/ViewProxy.java | 248 ++++ .../org/telegram/ui/ApplicationLoader.java | 2 +- .../org/telegram/ui/Cells/ChatActionCell.java | 10 +- .../org/telegram/ui/Cells/ChatAudioCell.java | 11 +- .../org/telegram/ui/Cells/ChatBaseCell.java | 45 +- .../telegram/ui/Cells/ChatContactCell.java | 12 +- .../org/telegram/ui/Cells/ChatMediaCell.java | 6 +- .../telegram/ui/Cells/ChatMessageCell.java | 4 +- .../org/telegram/ui/Cells/ChatOrUserCell.java | 422 +++--- .../org/telegram/ui/Cells/DialogCell.java | 927 ++++++------- .../java/org/telegram/ui/ChatActivity.java | 66 +- .../org/telegram/ui/ChatProfileActivity.java | 5 +- .../org/telegram/ui/ContactAddActivity.java | 3 +- .../org/telegram/ui/ContactsActivity.java | 4 +- .../telegram/ui/CountrySelectActivity.java | 4 +- .../telegram/ui/DocumentSelectActivity.java | 4 +- .../org/telegram/ui/GroupCreateActivity.java | 14 +- .../telegram/ui/GroupCreateFinalActivity.java | 15 +- .../org/telegram/ui/IdenticonActivity.java | 2 +- .../telegram/ui/LanguageSelectActivity.java | 4 +- .../java/org/telegram/ui/LaunchActivity.java | 5 + .../org/telegram/ui/LocationActivity.java | 20 +- .../java/org/telegram/ui/LoginActivity.java | 1 - .../telegram/ui/LoginActivityPhoneView.java | 2 +- .../ui/LoginActivityRegisterView.java | 2 +- .../org/telegram/ui/LoginActivitySmsView.java | 10 +- .../java/org/telegram/ui/MediaActivity.java | 6 +- .../org/telegram/ui/MessagesActivity.java | 142 +- .../org/telegram/ui/PhotoPickerActivity.java | 9 +- .../java/org/telegram/ui/PhotoViewer.java | 341 +++-- .../ui/PopupNotificationActivity.java | 17 +- .../ui/ProfileNotificationsActivity.java | 2 +- .../org/telegram/ui/SecretPhotoViewer.java | 2 +- .../org/telegram/ui/SettingsActivity.java | 13 +- .../ui/SettingsBlockedUsersActivity.java | 2 +- .../ui/SettingsChangeUsernameActivity.java | 10 +- .../ui/SettingsNotificationsActivity.java | 4 +- .../ui/SettingsWallpapersActivity.java | 7 +- .../org/telegram/ui/UserProfileActivity.java | 9 +- .../org/telegram/ui/VideoEditorActivity.java | 12 +- .../ui/Views/ActionBar/ActionBar.java | 51 +- .../ui/Views/ActionBar/ActionBarLayer.java | 219 ++- .../ui/Views/ActionBar/ActionBarLayout.java | 145 +- .../ui/Views/ActionBar/ActionBarMenu.java | 2 +- .../ui/Views/ActionBar/ActionBarMenuItem.java | 65 +- .../ui/Views/ActionBar/DrawerLayout.java | 1213 +++++++++++++++++ .../ui/Views/ActionBar/MenuDrawable.java | 116 ++ .../org/telegram/ui/Views/AvatarDrawable.java | 145 ++ .../org/telegram/ui/Views/AvatarUpdater.java | 4 +- .../telegram/ui/Views/BackupImageView.java | 20 +- .../ui/Views/ChatActivityEnterView.java | 5 +- .../telegram/ui/Views/ClippingImageView.java | 9 +- .../java/org/telegram/ui/Views/EmojiView.java | 6 +- .../org/telegram/ui/Views/ProgressView.java | 2 +- .../ui/Views/SizeNotifierRelativeLayout.java | 4 +- .../org/telegram/ui/Views/SlidingTabView.java | 153 --- TMessagesProj/src/main/res/anim/popup_in.xml | 8 + TMessagesProj/src/main/res/anim/popup_out.xml | 8 + .../main/res/drawable-hdpi/broadcast_aqua.png | Bin 3609 -> 0 bytes .../main/res/drawable-hdpi/broadcast_blue.png | Bin 3814 -> 0 bytes .../res/drawable-hdpi/broadcast_green.png | Bin 3823 -> 0 bytes .../res/drawable-hdpi/broadcast_orange.png | Bin 3789 -> 0 bytes .../main/res/drawable-hdpi/broadcast_pink.png | Bin 3743 -> 0 bytes .../main/res/drawable-hdpi/broadcast_red.png | Bin 3944 -> 0 bytes .../res/drawable-hdpi/broadcast_violet.png | Bin 3927 -> 0 bytes .../res/drawable-hdpi/broadcast_yellow.png | Bin 3888 -> 0 bytes .../res/drawable-hdpi/dialogs_badge.9.png | Bin 171 -> 491 bytes .../main/res/drawable-hdpi/dialogs_check.png | Bin 442 -> 1235 bytes .../res/drawable-hdpi/dialogs_halfcheck.png | Bin 374 -> 1198 bytes .../res/drawable-hdpi/dialogs_warning.png | Bin 1129 -> 1466 bytes .../src/main/res/drawable-hdpi/floating.png | Bin 0 -> 4153 bytes .../res/drawable-hdpi/floating_pressed.png | Bin 0 -> 4093 bytes .../src/main/res/drawable-hdpi/gallery.png | Bin 405 -> 0 bytes .../src/main/res/drawable-hdpi/group_aqua.png | Bin 1580 -> 0 bytes .../src/main/res/drawable-hdpi/group_blue.png | Bin 1656 -> 0 bytes .../main/res/drawable-hdpi/group_green.png | Bin 1646 -> 0 bytes .../main/res/drawable-hdpi/group_orange.png | Bin 1664 -> 0 bytes .../src/main/res/drawable-hdpi/group_pink.png | Bin 1629 -> 0 bytes .../src/main/res/drawable-hdpi/group_red.png | Bin 1701 -> 0 bytes .../main/res/drawable-hdpi/group_violet.png | Bin 1732 -> 0 bytes .../main/res/drawable-hdpi/group_yellow.png | Bin 1645 -> 0 bytes .../src/main/res/drawable-hdpi/ic_ab_back.png | Bin 435 -> 287 bytes .../res/drawable-hdpi/ic_ab_back_white.png | Bin 1190 -> 0 bytes .../main/res/drawable-hdpi/ic_ab_compose.png | Bin 339 -> 0 bytes .../src/main/res/drawable-hdpi/ic_ab_logo.png | Bin 1235 -> 0 bytes .../main/res/drawable-hdpi/ic_ab_other.png | Bin 215 -> 219 bytes .../res/drawable-hdpi/ic_ab_other_white.png | Bin 1035 -> 0 bytes .../res/drawable-hdpi/ic_ab_other_white2.png | Bin 202 -> 0 bytes .../main/res/drawable-hdpi/ic_ab_search.png | Bin 857 -> 504 bytes .../src/main/res/drawable-hdpi/photo_back.png | Bin 384 -> 0 bytes .../main/res/drawable-hdpi/popup_fixed.9.png | Bin 1564 -> 1331 bytes .../res/drawable-hdpi/telegram_avatar.png | Bin 2427 -> 0 bytes .../src/main/res/drawable-hdpi/user_aqua.png | Bin 1390 -> 0 bytes .../src/main/res/drawable-hdpi/user_blue.png | Bin 1479 -> 0 bytes .../src/main/res/drawable-hdpi/user_green.png | Bin 1471 -> 0 bytes .../main/res/drawable-hdpi/user_orange.png | Bin 1624 -> 0 bytes .../src/main/res/drawable-hdpi/user_pink.png | Bin 1459 -> 0 bytes .../src/main/res/drawable-hdpi/user_red.png | Bin 1530 -> 0 bytes .../main/res/drawable-hdpi/user_violet.png | Bin 1538 -> 0 bytes .../main/res/drawable-hdpi/user_yellow.png | Bin 1511 -> 0 bytes .../main/res/drawable-ldpi/ab_progress.png | Bin 597 -> 0 bytes .../res/drawable-ldpi/addcontact_blue.png | Bin 954 -> 0 bytes .../res/drawable-ldpi/addcontact_green.png | Bin 972 -> 0 bytes .../src/main/res/drawable-ldpi/addmember.png | Bin 518 -> 0 bytes .../main/res/drawable-ldpi/audiocancel1.png | Bin 283 -> 0 bytes .../drawable-ldpi/audiocancel1_pressed.png | Bin 283 -> 0 bytes .../main/res/drawable-ldpi/audiocancel2.png | Bin 283 -> 0 bytes .../drawable-ldpi/audiocancel2_pressed.png | Bin 287 -> 0 bytes .../src/main/res/drawable-ldpi/audioload1.png | Bin 179 -> 0 bytes .../res/drawable-ldpi/audioload1_pressed.png | Bin 179 -> 0 bytes .../src/main/res/drawable-ldpi/audioload2.png | Bin 179 -> 0 bytes .../res/drawable-ldpi/audioload2_pressed.png | Bin 179 -> 0 bytes .../src/main/res/drawable-ldpi/bigtimer.png | Bin 518 -> 0 bytes .../main/res/drawable-ldpi/boxshadow.9.png | Bin 160 -> 0 bytes .../src/main/res/drawable-ldpi/broadcast.png | Bin 1029 -> 0 bytes .../src/main/res/drawable-ldpi/broadcast2.png | Bin 1018 -> 0 bytes .../src/main/res/drawable-ldpi/broadcast3.png | Bin 1098 -> 0 bytes .../src/main/res/drawable-ldpi/broadcast4.png | Bin 1084 -> 0 bytes .../main/res/drawable-ldpi/broadcast_aqua.png | Bin 2109 -> 0 bytes .../main/res/drawable-ldpi/broadcast_blue.png | Bin 2187 -> 0 bytes .../res/drawable-ldpi/broadcast_green.png | Bin 2147 -> 0 bytes .../res/drawable-ldpi/broadcast_orange.png | Bin 2206 -> 0 bytes .../main/res/drawable-ldpi/broadcast_pink.png | Bin 2157 -> 0 bytes .../main/res/drawable-ldpi/broadcast_red.png | Bin 2232 -> 0 bytes .../res/drawable-ldpi/broadcast_violet.png | Bin 2246 -> 0 bytes .../res/drawable-ldpi/broadcast_yellow.png | Bin 2220 -> 0 bytes .../main/res/drawable-ldpi/btnshadow.9.png | Bin 174 -> 0 bytes .../src/main/res/drawable-ldpi/burn.png | Bin 1921 -> 0 bytes .../src/main/res/drawable-ldpi/call.png | Bin 406 -> 0 bytes .../src/main/res/drawable-ldpi/cancel_big.png | Bin 1595 -> 0 bytes .../src/main/res/drawable-ldpi/circle.png | Bin 1354 -> 0 bytes .../src/main/res/drawable-ldpi/circle1.png | Bin 1216 -> 0 bytes .../src/main/res/drawable-ldpi/circle_big.png | Bin 1565 -> 0 bytes .../res/drawable-ldpi/dialogs_badge.9.png | Bin 117 -> 0 bytes .../main/res/drawable-ldpi/dialogs_check.png | Bin 270 -> 0 bytes .../res/drawable-ldpi/dialogs_halfcheck.png | Bin 243 -> 0 bytes .../res/drawable-ldpi/dialogs_warning.png | Bin 1059 -> 0 bytes .../main/res/drawable-ldpi/doc_actions_b.png | Bin 969 -> 0 bytes .../main/res/drawable-ldpi/doc_actions_g.png | Bin 967 -> 0 bytes .../src/main/res/drawable-ldpi/doc_blue.png | Bin 599 -> 0 bytes .../src/main/res/drawable-ldpi/doc_green.png | Bin 613 -> 0 bytes .../main/res/drawable-ldpi/doccancel_b.png | Bin 314 -> 0 bytes .../main/res/drawable-ldpi/doccancel_g.png | Bin 299 -> 0 bytes .../src/main/res/drawable-ldpi/docload_b.png | Bin 965 -> 0 bytes .../src/main/res/drawable-ldpi/docload_g.png | Bin 964 -> 0 bytes .../src/main/res/drawable-ldpi/docpause_b.png | Bin 196 -> 0 bytes .../src/main/res/drawable-ldpi/docpause_g.png | Bin 203 -> 0 bytes .../main/res/drawable-ldpi/editheader.9.png | Bin 106 -> 0 bytes .../fastscroll_thumb_default_holo.png | Bin 1071 -> 0 bytes .../fastscroll_thumb_pressed_holo.png | Bin 1147 -> 0 bytes .../src/main/res/drawable-ldpi/gallery.png | Bin 262 -> 0 bytes .../src/main/res/drawable-ldpi/group_aqua.png | Bin 845 -> 0 bytes .../src/main/res/drawable-ldpi/group_blue.png | Bin 886 -> 0 bytes .../main/res/drawable-ldpi/group_green.png | Bin 891 -> 0 bytes .../main/res/drawable-ldpi/group_orange.png | Bin 893 -> 0 bytes .../src/main/res/drawable-ldpi/group_pink.png | Bin 869 -> 0 bytes .../src/main/res/drawable-ldpi/group_red.png | Bin 900 -> 0 bytes .../main/res/drawable-ldpi/group_violet.png | Bin 910 -> 0 bytes .../main/res/drawable-ldpi/group_yellow.png | Bin 867 -> 0 bytes .../src/main/res/drawable-ldpi/grouplist.png | Bin 301 -> 0 bytes .../main/res/drawable-ldpi/header_timer.png | Bin 542 -> 0 bytes .../main/res/drawable-ldpi/header_timer2.png | Bin 558 -> 0 bytes .../main/res/drawable-ldpi/ic_ab_attach.png | Bin 1321 -> 0 bytes .../src/main/res/drawable-ldpi/ic_ab_back.png | Bin 259 -> 0 bytes .../main/res/drawable-ldpi/ic_ab_compose.png | Bin 255 -> 0 bytes .../res/drawable-ldpi/ic_ab_delete_white.png | Bin 1245 -> 0 bytes .../src/main/res/drawable-ldpi/ic_ab_doc.png | Bin 496 -> 0 bytes .../src/main/res/drawable-ldpi/ic_ab_done.png | Bin 1173 -> 0 bytes .../res/drawable-ldpi/ic_ab_done_gray.png | Bin 1167 -> 0 bytes .../main/res/drawable-ldpi/ic_ab_fwd_copy.png | Bin 1103 -> 0 bytes .../res/drawable-ldpi/ic_ab_fwd_delete.png | Bin 1265 -> 0 bytes .../res/drawable-ldpi/ic_ab_fwd_forward.png | Bin 1231 -> 0 bytes .../main/res/drawable-ldpi/ic_ab_location.png | Bin 509 -> 0 bytes .../src/main/res/drawable-ldpi/ic_ab_logo.png | Bin 674 -> 0 bytes .../src/main/res/drawable-ldpi/ic_ab_new.png | Bin 335 -> 0 bytes .../main/res/drawable-ldpi/ic_ab_other.png | Bin 171 -> 0 bytes .../res/drawable-ldpi/ic_ab_other_white2.png | Bin 166 -> 0 bytes .../main/res/drawable-ldpi/ic_ab_search.png | Bin 459 -> 0 bytes .../main/res/drawable-ldpi/ic_ab_share.png | Bin 1280 -> 0 bytes .../res/drawable-ldpi/ic_ab_share_white.png | Bin 1267 -> 0 bytes .../res/drawable-ldpi/ic_attach_gallery.png | Bin 283 -> 0 bytes .../res/drawable-ldpi/ic_attach_location.png | Bin 411 -> 0 bytes .../res/drawable-ldpi/ic_attach_photo.png | Bin 375 -> 0 bytes .../res/drawable-ldpi/ic_attach_video.png | Bin 204 -> 0 bytes .../main/res/drawable-ldpi/ic_auth_next.png | Bin 1215 -> 0 bytes .../src/main/res/drawable-ldpi/ic_done.png | Bin 270 -> 0 bytes .../src/main/res/drawable-ldpi/ic_edit.png | Bin 1169 -> 0 bytes .../drawable-ldpi/ic_gallery_background.png | Bin 1212 -> 0 bytes .../main/res/drawable-ldpi/ic_launcher.png | Bin 2578 -> 0 bytes .../main/res/drawable-ldpi/ic_lock_blue.png | Bin 192 -> 0 bytes .../main/res/drawable-ldpi/ic_lock_green.png | Bin 192 -> 0 bytes .../main/res/drawable-ldpi/ic_lock_white.png | Bin 171 -> 0 bytes .../res/drawable-ldpi/ic_msg_btn_cross.png | Bin 239 -> 0 bytes .../drawable-ldpi/ic_msg_btn_cross_custom.png | Bin 192 -> 0 bytes .../res/drawable-ldpi/ic_msg_panel_hide.png | Bin 1162 -> 0 bytes .../res/drawable-ldpi/ic_msg_panel_kb.png | Bin 1041 -> 0 bytes .../res/drawable-ldpi/ic_msg_panel_smiles.png | Bin 548 -> 0 bytes .../res/drawable-ldpi/ic_profile_cross.png | Bin 1123 -> 0 bytes .../drawable-ldpi/ic_profile_send_message.png | Bin 219 -> 0 bytes .../src/main/res/drawable-ldpi/ic_send.png | Bin 343 -> 0 bytes .../res/drawable-ldpi/ic_send_disabled.png | Bin 344 -> 0 bytes .../res/drawable-ldpi/ic_smiles_backspace.png | Bin 1211 -> 0 bytes .../ic_smiles_backspace_active.png | Bin 1181 -> 0 bytes .../main/res/drawable-ldpi/ic_smiles_bell.png | Bin 1156 -> 0 bytes .../drawable-ldpi/ic_smiles_bell_active.png | Bin 1160 -> 0 bytes .../main/res/drawable-ldpi/ic_smiles_car.png | Bin 1317 -> 0 bytes .../drawable-ldpi/ic_smiles_car_active.png | Bin 1291 -> 0 bytes .../res/drawable-ldpi/ic_smiles_flower.png | Bin 1383 -> 0 bytes .../drawable-ldpi/ic_smiles_flower_active.png | Bin 1357 -> 0 bytes .../main/res/drawable-ldpi/ic_smiles_grid.png | Bin 1219 -> 0 bytes .../drawable-ldpi/ic_smiles_grid_active.png | Bin 1226 -> 0 bytes .../res/drawable-ldpi/ic_smiles_recent.png | Bin 1351 -> 0 bytes .../drawable-ldpi/ic_smiles_recent_active.png | Bin 1310 -> 0 bytes .../res/drawable-ldpi/ic_smiles_smile.png | Bin 1302 -> 0 bytes .../drawable-ldpi/ic_smiles_smile_active.png | Bin 1300 -> 0 bytes .../src/main/res/drawable-ldpi/ic_video.png | Bin 181 -> 0 bytes .../src/main/res/drawable-ldpi/intro1.png | Bin 3660 -> 0 bytes .../src/main/res/drawable-ldpi/intro2.png | Bin 2732 -> 0 bytes .../src/main/res/drawable-ldpi/intro3.png | Bin 2694 -> 0 bytes .../src/main/res/drawable-ldpi/intro4.png | Bin 2424 -> 0 bytes .../src/main/res/drawable-ldpi/intro5.png | Bin 2567 -> 0 bytes .../src/main/res/drawable-ldpi/intro6.png | Bin 2179 -> 0 bytes .../src/main/res/drawable-ldpi/intro7.png | Bin 3251 -> 0 bytes .../src/main/res/drawable-ldpi/load_big.png | Bin 1674 -> 0 bytes .../src/main/res/drawable-ldpi/map_pin.png | Bin 1814 -> 0 bytes .../src/main/res/drawable-ldpi/mic.png | Bin 359 -> 0 bytes .../main/res/drawable-ldpi/mic_pressed.png | Bin 356 -> 0 bytes .../src/main/res/drawable-ldpi/msg_check.png | Bin 254 -> 0 bytes .../main/res/drawable-ldpi/msg_check_w.png | Bin 222 -> 0 bytes .../src/main/res/drawable-ldpi/msg_clock.png | Bin 1042 -> 0 bytes .../res/drawable-ldpi/msg_clock_photo.png | Bin 1018 -> 0 bytes .../main/res/drawable-ldpi/msg_halfcheck.png | Bin 242 -> 0 bytes .../res/drawable-ldpi/msg_halfcheck_w.png | Bin 221 -> 0 bytes .../src/main/res/drawable-ldpi/msg_in.9.png | Bin 357 -> 0 bytes .../main/res/drawable-ldpi/msg_in_photo.9.png | Bin 260 -> 0 bytes .../drawable-ldpi/msg_in_photo_selected.9.png | Bin 266 -> 0 bytes .../res/drawable-ldpi/msg_in_selected.9.png | Bin 372 -> 0 bytes .../src/main/res/drawable-ldpi/msg_out.9.png | Bin 381 -> 0 bytes .../res/drawable-ldpi/msg_out_photo.9.png | Bin 271 -> 0 bytes .../msg_out_photo_selected.9.png | Bin 271 -> 0 bytes .../res/drawable-ldpi/msg_out_selected.9.png | Bin 377 -> 0 bytes .../main/res/drawable-ldpi/msg_warning.png | Bin 1125 -> 0 bytes .../main/res/drawable-ldpi/newmsg_divider.png | Bin 146 -> 0 bytes .../src/main/res/drawable-ldpi/nophotos.9.png | Bin 520 -> 0 bytes .../main/res/drawable-ldpi/notification.png | Bin 363 -> 0 bytes .../src/main/res/drawable-ldpi/pagedown.png | Bin 731 -> 0 bytes .../src/main/res/drawable-ldpi/pause1.png | Bin 155 -> 0 bytes .../main/res/drawable-ldpi/pause1_pressed.png | Bin 157 -> 0 bytes .../src/main/res/drawable-ldpi/pause2.png | Bin 157 -> 0 bytes .../main/res/drawable-ldpi/pause2_pressed.png | Bin 157 -> 0 bytes .../src/main/res/drawable-ldpi/photo_back.png | Bin 212 -> 0 bytes .../main/res/drawable-ldpi/photobadge.9.png | Bin 108 -> 0 bytes .../main/res/drawable-ldpi/photoborder.9.png | Bin 125 -> 0 bytes .../main/res/drawable-ldpi/photocancel.png | Bin 724 -> 0 bytes .../src/main/res/drawable-ldpi/photocheck.png | Bin 1668 -> 0 bytes .../src/main/res/drawable-ldpi/photogif.png | Bin 853 -> 0 bytes .../src/main/res/drawable-ldpi/photoload.png | Bin 708 -> 0 bytes .../src/main/res/drawable-ldpi/photopause.png | Bin 578 -> 0 bytes .../main/res/drawable-ldpi/phototime.9.png | Bin 105 -> 0 bytes .../src/main/res/drawable-ldpi/play1.png | Bin 285 -> 0 bytes .../main/res/drawable-ldpi/play1_pressed.png | Bin 289 -> 0 bytes .../src/main/res/drawable-ldpi/play2.png | Bin 285 -> 0 bytes .../main/res/drawable-ldpi/play2_pressed.png | Bin 287 -> 0 bytes .../src/main/res/drawable-ldpi/play_big.png | Bin 1894 -> 0 bytes .../src/main/res/drawable-ldpi/player1.png | Bin 368 -> 0 bytes .../res/drawable-ldpi/player1_pressed.png | Bin 532 -> 0 bytes .../src/main/res/drawable-ldpi/player2.png | Bin 368 -> 0 bytes .../res/drawable-ldpi/player2_pressed.png | Bin 538 -> 0 bytes .../src/main/res/drawable-ldpi/playvideo.png | Bin 795 -> 0 bytes .../src/main/res/drawable-ldpi/plus.png | Bin 158 -> 0 bytes .../src/main/res/drawable-ldpi/rec.png | Bin 223 -> 0 bytes .../src/main/res/drawable-ldpi/regbtn2.9.png | Bin 157 -> 0 bytes .../res/drawable-ldpi/regbtn2_pressed.9.png | Bin 157 -> 0 bytes .../res/drawable-ldpi/selectphoto_large.png | Bin 279 -> 0 bytes .../res/drawable-ldpi/selectphoto_small.png | Bin 231 -> 0 bytes .../selectphoto_small_active.png | Bin 235 -> 0 bytes .../drawable-ldpi/selectphoto_small_grey.png | Bin 265 -> 0 bytes .../src/main/res/drawable-ldpi/shadow.png | Bin 125 -> 0 bytes .../src/main/res/drawable-ldpi/slidearrow.png | Bin 261 -> 0 bytes .../src/main/res/drawable-ldpi/spinner.9.png | Bin 247 -> 0 bytes .../res/drawable-ldpi/spinner_pressed.9.png | Bin 247 -> 0 bytes .../main/res/drawable-ldpi/switch_off1.png | Bin 441 -> 0 bytes .../res/drawable-ldpi/switch_off1_pressed.png | Bin 1237 -> 0 bytes .../src/main/res/drawable-ldpi/switch_on1.png | Bin 491 -> 0 bytes .../res/drawable-ldpi/switch_on1_pressed.png | Bin 1302 -> 0 bytes .../main/res/drawable-ldpi/system_black.9.png | Bin 131 -> 0 bytes .../main/res/drawable-ldpi/system_blue.9.png | Bin 148 -> 0 bytes .../main/res/drawable-ldpi/system_loader1.png | Bin 485 -> 0 bytes .../main/res/drawable-ldpi/system_loader2.png | Bin 453 -> 0 bytes .../res/drawable-ldpi/telegram_avatar.png | Bin 1305 -> 0 bytes .../src/main/res/drawable-ldpi/tooltip.png | Bin 223 -> 0 bytes .../src/main/res/drawable-ldpi/user_aqua.png | Bin 754 -> 0 bytes .../src/main/res/drawable-ldpi/user_blue.png | Bin 791 -> 0 bytes .../src/main/res/drawable-ldpi/user_green.png | Bin 792 -> 0 bytes .../main/res/drawable-ldpi/user_orange.png | Bin 851 -> 0 bytes .../src/main/res/drawable-ldpi/user_pink.png | Bin 780 -> 0 bytes .../res/drawable-ldpi/user_placeholder.png | Bin 2306 -> 0 bytes .../src/main/res/drawable-ldpi/user_red.png | Bin 816 -> 0 bytes .../main/res/drawable-ldpi/user_violet.png | Bin 818 -> 0 bytes .../main/res/drawable-ldpi/user_yellow.png | Bin 798 -> 0 bytes .../src/main/res/drawable-ldpi/video_play.png | Bin 1907 -> 0 bytes .../src/main/res/drawable-ldpi/videolapse.png | Bin 2848 -> 0 bytes .../main/res/drawable-ldpi/videotrimmer.png | Bin 2858 -> 0 bytes .../src/main/res/drawable-ldpi/viewbtn.9.png | Bin 294 -> 0 bytes .../res/drawable-ldpi/viewbtn_pressed.9.png | Bin 294 -> 0 bytes .../main/res/drawable-mdpi/broadcast_aqua.png | Bin 2549 -> 0 bytes .../main/res/drawable-mdpi/broadcast_blue.png | Bin 2682 -> 0 bytes .../res/drawable-mdpi/broadcast_green.png | Bin 2671 -> 0 bytes .../res/drawable-mdpi/broadcast_orange.png | Bin 2689 -> 0 bytes .../main/res/drawable-mdpi/broadcast_pink.png | Bin 2647 -> 0 bytes .../main/res/drawable-mdpi/broadcast_red.png | Bin 2754 -> 0 bytes .../res/drawable-mdpi/broadcast_violet.png | Bin 2779 -> 0 bytes .../res/drawable-mdpi/broadcast_yellow.png | Bin 2767 -> 0 bytes .../res/drawable-mdpi/dialogs_badge.9.png | Bin 134 -> 340 bytes .../main/res/drawable-mdpi/dialogs_check.png | Bin 342 -> 0 bytes .../res/drawable-mdpi/dialogs_halfcheck.png | Bin 297 -> 0 bytes .../res/drawable-mdpi/dialogs_warning.png | Bin 1122 -> 1312 bytes .../src/main/res/drawable-mdpi/floating.png | Bin 0 -> 2800 bytes .../res/drawable-mdpi/floating_pressed.png | Bin 0 -> 2834 bytes .../src/main/res/drawable-mdpi/gallery.png | Bin 310 -> 0 bytes .../src/main/res/drawable-mdpi/group_aqua.png | Bin 1089 -> 0 bytes .../src/main/res/drawable-mdpi/group_blue.png | Bin 1133 -> 0 bytes .../main/res/drawable-mdpi/group_green.png | Bin 1157 -> 0 bytes .../main/res/drawable-mdpi/group_orange.png | Bin 1149 -> 0 bytes .../src/main/res/drawable-mdpi/group_pink.png | Bin 1106 -> 0 bytes .../src/main/res/drawable-mdpi/group_red.png | Bin 1180 -> 0 bytes .../main/res/drawable-mdpi/group_violet.png | Bin 1176 -> 0 bytes .../main/res/drawable-mdpi/group_yellow.png | Bin 1147 -> 0 bytes .../src/main/res/drawable-mdpi/ic_ab_back.png | Bin 314 -> 240 bytes .../res/drawable-mdpi/ic_ab_back_white.png | Bin 1081 -> 0 bytes .../main/res/drawable-mdpi/ic_ab_compose.png | Bin 308 -> 0 bytes .../src/main/res/drawable-mdpi/ic_ab_logo.png | Bin 879 -> 0 bytes .../main/res/drawable-mdpi/ic_ab_other.png | Bin 189 -> 202 bytes .../res/drawable-mdpi/ic_ab_other_white.png | Bin 1005 -> 0 bytes .../res/drawable-mdpi/ic_ab_other_white2.png | Bin 182 -> 0 bytes .../main/res/drawable-mdpi/ic_ab_search.png | Bin 600 -> 346 bytes .../src/main/res/drawable-mdpi/photo_back.png | Bin 245 -> 0 bytes .../main/res/drawable-mdpi/popup_fixed.9.png | Bin 1333 -> 961 bytes .../res/drawable-mdpi/telegram_avatar.png | Bin 1699 -> 0 bytes .../src/main/res/drawable-mdpi/user_aqua.png | Bin 969 -> 0 bytes .../src/main/res/drawable-mdpi/user_blue.png | Bin 1014 -> 0 bytes .../src/main/res/drawable-mdpi/user_green.png | Bin 1012 -> 0 bytes .../main/res/drawable-mdpi/user_orange.png | Bin 1097 -> 0 bytes .../src/main/res/drawable-mdpi/user_pink.png | Bin 996 -> 0 bytes .../src/main/res/drawable-mdpi/user_red.png | Bin 1033 -> 0 bytes .../main/res/drawable-mdpi/user_violet.png | Bin 1045 -> 0 bytes .../main/res/drawable-mdpi/user_yellow.png | Bin 1031 -> 0 bytes .../res/drawable-xhdpi/broadcast_aqua.png | Bin 4685 -> 0 bytes .../res/drawable-xhdpi/broadcast_blue.png | Bin 4978 -> 0 bytes .../res/drawable-xhdpi/broadcast_green.png | Bin 4934 -> 0 bytes .../res/drawable-xhdpi/broadcast_orange.png | Bin 4965 -> 0 bytes .../res/drawable-xhdpi/broadcast_pink.png | Bin 4803 -> 0 bytes .../main/res/drawable-xhdpi/broadcast_red.png | Bin 5130 -> 0 bytes .../res/drawable-xhdpi/broadcast_violet.png | Bin 5118 -> 0 bytes .../res/drawable-xhdpi/broadcast_yellow.png | Bin 5023 -> 0 bytes .../res/drawable-xhdpi/dialogs_badge.9.png | Bin 212 -> 659 bytes .../main/res/drawable-xhdpi/dialogs_check.png | Bin 503 -> 1369 bytes .../res/drawable-xhdpi/dialogs_halfcheck.png | Bin 456 -> 1322 bytes .../res/drawable-xhdpi/dialogs_warning.png | Bin 1084 -> 1664 bytes .../src/main/res/drawable-xhdpi/floating.png | Bin 0 -> 5251 bytes .../res/drawable-xhdpi/floating_pressed.png | Bin 0 -> 5276 bytes .../src/main/res/drawable-xhdpi/gallery.png | Bin 515 -> 0 bytes .../main/res/drawable-xhdpi/group_aqua.png | Bin 2100 -> 0 bytes .../main/res/drawable-xhdpi/group_blue.png | Bin 2236 -> 0 bytes .../main/res/drawable-xhdpi/group_green.png | Bin 2248 -> 0 bytes .../main/res/drawable-xhdpi/group_orange.png | Bin 2263 -> 0 bytes .../main/res/drawable-xhdpi/group_pink.png | Bin 2233 -> 0 bytes .../src/main/res/drawable-xhdpi/group_red.png | Bin 2297 -> 0 bytes .../main/res/drawable-xhdpi/group_violet.png | Bin 2327 -> 0 bytes .../main/res/drawable-xhdpi/group_yellow.png | Bin 2222 -> 0 bytes .../main/res/drawable-xhdpi/ic_ab_back.png | Bin 485 -> 336 bytes .../res/drawable-xhdpi/ic_ab_back_white.png | Bin 1291 -> 0 bytes .../main/res/drawable-xhdpi/ic_ab_compose.png | Bin 402 -> 0 bytes .../main/res/drawable-xhdpi/ic_ab_logo.png | Bin 1629 -> 0 bytes .../main/res/drawable-xhdpi/ic_ab_other.png | Bin 250 -> 269 bytes .../res/drawable-xhdpi/ic_ab_other_white.png | Bin 1068 -> 0 bytes .../res/drawable-xhdpi/ic_ab_other_white2.png | Bin 238 -> 0 bytes .../main/res/drawable-xhdpi/ic_ab_search.png | Bin 1094 -> 591 bytes .../main/res/drawable-xhdpi/photo_back.png | Bin 480 -> 0 bytes .../main/res/drawable-xhdpi/popup_fixed.9.png | Bin 1798 -> 2448 bytes .../res/drawable-xhdpi/telegram_avatar.png | Bin 3155 -> 0 bytes .../src/main/res/drawable-xhdpi/user_aqua.png | Bin 1832 -> 0 bytes .../src/main/res/drawable-xhdpi/user_blue.png | Bin 1942 -> 0 bytes .../main/res/drawable-xhdpi/user_green.png | Bin 1952 -> 0 bytes .../main/res/drawable-xhdpi/user_orange.png | Bin 2152 -> 0 bytes .../src/main/res/drawable-xhdpi/user_pink.png | Bin 1958 -> 0 bytes .../src/main/res/drawable-xhdpi/user_red.png | Bin 2034 -> 0 bytes .../main/res/drawable-xhdpi/user_violet.png | Bin 2021 -> 0 bytes .../main/res/drawable-xhdpi/user_yellow.png | Bin 1974 -> 0 bytes .../res/drawable-xxhdpi/broadcast_aqua.png | Bin 4361 -> 0 bytes .../res/drawable-xxhdpi/broadcast_blue.png | Bin 4591 -> 0 bytes .../res/drawable-xxhdpi/broadcast_green.png | Bin 4588 -> 0 bytes .../res/drawable-xxhdpi/broadcast_orange.png | Bin 4731 -> 0 bytes .../res/drawable-xxhdpi/broadcast_pink.png | Bin 4559 -> 0 bytes .../res/drawable-xxhdpi/broadcast_red.png | Bin 4822 -> 0 bytes .../res/drawable-xxhdpi/broadcast_violet.png | Bin 4788 -> 0 bytes .../res/drawable-xxhdpi/broadcast_yellow.png | Bin 4513 -> 0 bytes .../res/drawable-xxhdpi/dialogs_badge.9.png | Bin 277 -> 961 bytes .../res/drawable-xxhdpi/dialogs_check.png | Bin 630 -> 1550 bytes .../res/drawable-xxhdpi/dialogs_halfcheck.png | Bin 582 -> 1481 bytes .../res/drawable-xxhdpi/dialogs_warning.png | Bin 1274 -> 2050 bytes .../src/main/res/drawable-xxhdpi/floating.png | Bin 0 -> 7705 bytes .../res/drawable-xxhdpi/floating_pressed.png | Bin 0 -> 7567 bytes .../src/main/res/drawable-xxhdpi/gallery.png | Bin 705 -> 0 bytes .../main/res/drawable-xxhdpi/group_aqua.png | Bin 3175 -> 0 bytes .../main/res/drawable-xxhdpi/group_blue.png | Bin 3375 -> 0 bytes .../main/res/drawable-xxhdpi/group_green.png | Bin 3373 -> 0 bytes .../main/res/drawable-xxhdpi/group_orange.png | Bin 3405 -> 0 bytes .../main/res/drawable-xxhdpi/group_pink.png | Bin 3355 -> 0 bytes .../main/res/drawable-xxhdpi/group_red.png | Bin 3422 -> 0 bytes .../main/res/drawable-xxhdpi/group_violet.png | Bin 3492 -> 0 bytes .../main/res/drawable-xxhdpi/group_yellow.png | Bin 3331 -> 0 bytes .../main/res/drawable-xxhdpi/ic_ab_back.png | Bin 715 -> 410 bytes .../res/drawable-xxhdpi/ic_ab_back_white.png | Bin 1452 -> 0 bytes .../res/drawable-xxhdpi/ic_ab_compose.png | Bin 490 -> 0 bytes .../main/res/drawable-xxhdpi/ic_ab_logo.png | Bin 2314 -> 0 bytes .../main/res/drawable-xxhdpi/ic_ab_other.png | Bin 307 -> 313 bytes .../res/drawable-xxhdpi/ic_ab_other_white.png | Bin 1130 -> 0 bytes .../drawable-xxhdpi/ic_ab_other_white2.png | Bin 300 -> 0 bytes .../main/res/drawable-xxhdpi/ic_ab_search.png | Bin 1605 -> 871 bytes .../main/res/drawable-xxhdpi/photo_back.png | Bin 637 -> 0 bytes .../res/drawable-xxhdpi/popup_fixed.9.png | Bin 2363 -> 3652 bytes .../res/drawable-xxhdpi/telegram_avatar.png | Bin 4530 -> 0 bytes .../main/res/drawable-xxhdpi/user_aqua.png | Bin 2736 -> 0 bytes .../main/res/drawable-xxhdpi/user_blue.png | Bin 2929 -> 0 bytes .../main/res/drawable-xxhdpi/user_green.png | Bin 2933 -> 0 bytes .../main/res/drawable-xxhdpi/user_orange.png | Bin 2976 -> 0 bytes .../main/res/drawable-xxhdpi/user_pink.png | Bin 2913 -> 0 bytes .../src/main/res/drawable-xxhdpi/user_red.png | Bin 3049 -> 0 bytes .../main/res/drawable-xxhdpi/user_violet.png | Bin 3007 -> 0 bytes .../main/res/drawable-xxhdpi/user_yellow.png | Bin 2951 -> 0 bytes .../main/res/drawable/ab_icon_up_fixed.xml | 6 - .../main/res/drawable/ab_icon_up_gallery.xml | 6 - .../main/res/drawable/ab_icon_up_messages.xml | 6 - .../src/main/res/drawable/floating_states.xml | 15 + .../src/main/res/layout/messages_list.xml | 22 +- .../src/main/res/values-v21/styles.xml | 8 +- TMessagesProj/src/main/res/values/styles.xml | 9 +- gradle/wrapper/gradle-wrapper.properties | 4 +- 480 files changed, 7609 insertions(+), 1882 deletions(-) create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Animation/Animator10.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Animation/AnimatorListenerAdapter10.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Animation/AnimatorSet10.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Animation/FloatEvaluator.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Animation/FloatKeyframeSet.java create mode 100755 TMessagesProj/src/main/java/org/telegram/ui/Animation/FloatProperty.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Animation/IntEvaluator.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Animation/IntKeyframeSet.java create mode 100755 TMessagesProj/src/main/java/org/telegram/ui/Animation/IntProperty.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Animation/Keyframe.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Animation/KeyframeSet.java create mode 100755 TMessagesProj/src/main/java/org/telegram/ui/Animation/NoSuchPropertyException.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Animation/ObjectAnimator10.java create mode 100755 TMessagesProj/src/main/java/org/telegram/ui/Animation/Property.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Animation/PropertyValuesHolder.java create mode 100755 TMessagesProj/src/main/java/org/telegram/ui/Animation/ReflectiveProperty.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Animation/TypeEvaluator.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Animation/ValueAnimator.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Animation/View10.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/AnimationCompat/AnimatorListenerAdapterProxy.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/AnimationCompat/AnimatorSetProxy.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/AnimationCompat/ObjectAnimatorProxy.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/AnimationCompat/ViewProxy.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/DrawerLayout.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/MenuDrawable.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Views/AvatarDrawable.java delete mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Views/SlidingTabView.java create mode 100644 TMessagesProj/src/main/res/anim/popup_in.xml create mode 100644 TMessagesProj/src/main/res/anim/popup_out.xml delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/broadcast_aqua.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/broadcast_blue.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/broadcast_green.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/broadcast_orange.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/broadcast_pink.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/broadcast_red.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/broadcast_violet.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/broadcast_yellow.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/dialogs_warning.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/floating.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/floating_pressed.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/gallery.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/group_aqua.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/group_blue.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/group_green.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/group_orange.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/group_pink.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/group_red.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/group_violet.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/group_yellow.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/ic_ab_back_white.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/ic_ab_compose.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/ic_ab_logo.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/ic_ab_other_white.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/ic_ab_other_white2.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/ic_ab_search.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/photo_back.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/telegram_avatar.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/user_aqua.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/user_blue.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/user_green.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/user_orange.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/user_pink.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/user_red.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/user_violet.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/user_yellow.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ab_progress.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/addcontact_blue.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/addcontact_green.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/addmember.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/audiocancel1.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/audiocancel1_pressed.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/audiocancel2.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/audiocancel2_pressed.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/audioload1.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/audioload1_pressed.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/audioload2.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/audioload2_pressed.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/bigtimer.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/boxshadow.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/broadcast.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/broadcast2.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/broadcast3.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/broadcast4.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/broadcast_aqua.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/broadcast_blue.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/broadcast_green.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/broadcast_orange.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/broadcast_pink.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/broadcast_red.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/broadcast_violet.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/broadcast_yellow.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/btnshadow.9.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/burn.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/call.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/cancel_big.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/circle.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/circle1.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/circle_big.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/dialogs_badge.9.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/dialogs_check.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/dialogs_halfcheck.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/dialogs_warning.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/doc_actions_b.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/doc_actions_g.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/doc_blue.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/doc_green.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/doccancel_b.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/doccancel_g.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/docload_b.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/docload_g.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/docpause_b.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/docpause_g.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/editheader.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/fastscroll_thumb_default_holo.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/fastscroll_thumb_pressed_holo.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/gallery.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/group_aqua.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/group_blue.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/group_green.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/group_orange.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/group_pink.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/group_red.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/group_violet.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/group_yellow.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/grouplist.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/header_timer.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/header_timer2.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_ab_attach.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_ab_back.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_ab_compose.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_ab_delete_white.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_ab_doc.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_ab_done.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_ab_done_gray.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_ab_fwd_copy.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_ab_fwd_delete.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_ab_fwd_forward.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_ab_location.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_ab_logo.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_ab_new.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_ab_other.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_ab_other_white2.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_ab_search.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_ab_share.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_ab_share_white.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_attach_gallery.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_attach_location.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_attach_photo.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_attach_video.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_auth_next.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_done.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_edit.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_gallery_background.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_launcher.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_lock_blue.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_lock_green.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_lock_white.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_msg_btn_cross.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_msg_btn_cross_custom.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_msg_panel_hide.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_msg_panel_kb.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_msg_panel_smiles.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_profile_cross.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_profile_send_message.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_send.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_send_disabled.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_backspace.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_backspace_active.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_bell.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_bell_active.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_car.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_car_active.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_flower.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_flower_active.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_grid.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_grid_active.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_recent.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_recent_active.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_smile.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_smile_active.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_video.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/intro1.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/intro2.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/intro3.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/intro4.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/intro5.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/intro6.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/intro7.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/load_big.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/map_pin.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/mic.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/mic_pressed.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/msg_check.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/msg_check_w.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/msg_clock.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/msg_clock_photo.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/msg_halfcheck.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/msg_halfcheck_w.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/msg_in.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/msg_in_photo.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/msg_in_photo_selected.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/msg_in_selected.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/msg_out.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/msg_out_photo.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/msg_out_photo_selected.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/msg_out_selected.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/msg_warning.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/newmsg_divider.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/nophotos.9.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/notification.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/pagedown.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/pause1.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/pause1_pressed.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/pause2.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/pause2_pressed.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/photo_back.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/photobadge.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/photoborder.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/photocancel.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/photocheck.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/photogif.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/photoload.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/photopause.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/phototime.9.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/play1.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/play1_pressed.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/play2.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/play2_pressed.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/play_big.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/player1.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/player1_pressed.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/player2.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/player2_pressed.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/playvideo.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/plus.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/rec.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/regbtn2.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/regbtn2_pressed.9.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/selectphoto_large.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/selectphoto_small.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/selectphoto_small_active.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/selectphoto_small_grey.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/shadow.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/slidearrow.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/spinner.9.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/spinner_pressed.9.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/switch_off1.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/switch_off1_pressed.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/switch_on1.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/switch_on1_pressed.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/system_black.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/system_blue.9.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/system_loader1.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/system_loader2.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/telegram_avatar.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/tooltip.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/user_aqua.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/user_blue.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/user_green.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/user_orange.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/user_pink.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/user_placeholder.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/user_red.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/user_violet.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/user_yellow.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/video_play.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/videolapse.png delete mode 100755 TMessagesProj/src/main/res/drawable-ldpi/videotrimmer.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/viewbtn.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/viewbtn_pressed.9.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/broadcast_aqua.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/broadcast_blue.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/broadcast_green.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/broadcast_orange.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/broadcast_pink.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/broadcast_red.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/broadcast_violet.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/broadcast_yellow.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/dialogs_check.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/dialogs_halfcheck.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/dialogs_warning.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/floating.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/floating_pressed.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/gallery.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/group_aqua.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/group_blue.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/group_green.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/group_orange.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/group_pink.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/group_red.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/group_violet.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/group_yellow.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/ic_ab_back_white.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/ic_ab_compose.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/ic_ab_logo.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/ic_ab_other_white.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/ic_ab_other_white2.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/ic_ab_search.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/photo_back.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/telegram_avatar.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/user_aqua.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/user_blue.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/user_green.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/user_orange.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/user_pink.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/user_red.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/user_violet.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/user_yellow.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/broadcast_aqua.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/broadcast_blue.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/broadcast_green.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/broadcast_orange.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/broadcast_pink.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/broadcast_red.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/broadcast_violet.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/broadcast_yellow.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/dialogs_warning.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/floating.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/floating_pressed.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/gallery.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/group_aqua.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/group_blue.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/group_green.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/group_orange.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/group_pink.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/group_red.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/group_violet.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/group_yellow.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_back_white.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_compose.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_logo.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_other_white.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_other_white2.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_search.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/photo_back.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/telegram_avatar.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/user_aqua.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/user_blue.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/user_green.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/user_orange.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/user_pink.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/user_red.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/user_violet.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/user_yellow.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/broadcast_aqua.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/broadcast_blue.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/broadcast_green.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/broadcast_orange.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/broadcast_pink.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/broadcast_red.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/broadcast_violet.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/broadcast_yellow.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/dialogs_warning.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/floating.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/floating_pressed.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/gallery.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/group_aqua.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/group_blue.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/group_green.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/group_orange.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/group_pink.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/group_red.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/group_violet.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/group_yellow.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_back_white.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_compose.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_logo.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_other_white.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_other_white2.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_search.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/photo_back.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/telegram_avatar.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/user_aqua.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/user_blue.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/user_green.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/user_orange.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/user_pink.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/user_red.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/user_violet.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/user_yellow.png delete mode 100644 TMessagesProj/src/main/res/drawable/ab_icon_up_fixed.xml delete mode 100644 TMessagesProj/src/main/res/drawable/ab_icon_up_gallery.xml delete mode 100644 TMessagesProj/src/main/res/drawable/ab_icon_up_messages.xml create mode 100644 TMessagesProj/src/main/res/drawable/floating_states.xml diff --git a/TMessagesProj/build.gradle b/TMessagesProj/build.gradle index 66a09badc..b5ce30772 100644 --- a/TMessagesProj/build.gradle +++ b/TMessagesProj/build.gradle @@ -3,7 +3,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:0.13.+' + classpath 'com.android.tools.build:gradle:0.14.0' } } apply plugin: 'com.android.application' @@ -25,7 +25,7 @@ dependencies { android { compileSdkVersion 21 - buildToolsVersion '21.0.2' + buildToolsVersion '21.1.0' signingConfigs { debug { @@ -79,7 +79,7 @@ android { defaultConfig { minSdkVersion 8 - targetSdkVersion 19 + targetSdkVersion 21 versionCode 379 versionName "1.9.7" } diff --git a/TMessagesProj/src/main/AndroidManifest.xml b/TMessagesProj/src/main/AndroidManifest.xml index b6a7aa8a3..a5fb34f8a 100644 --- a/TMessagesProj/src/main/AndroidManifest.xml +++ b/TMessagesProj/src/main/AndroidManifest.xml @@ -51,7 +51,7 @@ diff --git a/TMessagesProj/src/main/assets/fonts/rmedium.ttf b/TMessagesProj/src/main/assets/fonts/rmedium.ttf index d0f6e2b64f3bc7ebe271d7b5e92d24ad9188e708..a3c1a1f1702ebf8f5771ae96197539ddc507f04a 100644 GIT binary patch literal 127488 zcmeFacVJXi`agWmxp!ug5CZAFOnT2GlQzkuO(wk;(#xdx-a~*8LdQ@?M2HBA zh=_=Yh%73LjYVVuS;ajOeN>Ikd&v2RHig5NB_%tygGb1N*$o3xy=jbD}=}1D(9EG!+-RlT{cM2gkG9$+? z;5B29lL+B@D6h&>rWLe))0=^i(K3Vt*Q;78+Sgy%;ERw2JU6&e*E~?We|_LMLVl2b z>#nb_~F?mJPV;1F6* z6zDm&1NjJMz~{MWy$HjzgOHX$d0ReLu^c?RjFQAP__#Vuwzh`zPA!(kV}w@Q3`n;>9C!skNGDu6Wl{$R*3AGTSy=BY;p*N z5`qpwZY{_{J;V+zVdtT0_9!Y7Y(b^aPfI+Bma)I0B4#lv6)I6avlczU+(7wk3tGV6 ze*yEZhZaB|%gKEthZI6KqjvUnw2t`>#lc*Sk=dw)T!#7G3;no(N(Gltq0kFu3iDAN z%(+6eSaY9MqBOx`SiAEuZ(pNj!naT&yBF25Yf&tWJA-{1jR3DW5G%Br-H686YUD^V zkfY#9w1!=V=8KM?8c`T3Ci-Y4xum%%Sb+-IZ75x^8_i?yp+4dY^Cd@x%x$!u8AqMW z5R7*QT1XC~ev*bfm`~9lV~>(ZGa5liZ2@T*p-JFebtL5axK?dLO3_)UqmGUVcyF`d zO=KyU3;Ys_9N0CeS@06t40(d!2b3(>kCcL9)CB97$DTzSSOX}t4CS&aq++d51?@At z19g%8=y|pgnX$$&?>_@SE2+AJ(a{?P6^feu zW1`Jyqv!$JD6~Qr!rx##BD6-3iJC;YXgm80^miUAW>=%tOc7el-bZf2US!9bp){EP zC2T9K!zN@eWFUVU?%^}wF(<*tFvgGJz7~}W$IuetT{K@{0p;4DTsS zZle+10Q8*bH>g((YxpC~$y`(p{E{xPLbK_dPu*vT;-F3?>gMatMD6grmQ6+_tOm8f z`qoaZ^;}r*-3UE!=Kk>@jkYf^0e)NxvebyyFgsz*UWGMwfH8T)7+yeQ!VM@;unR?s zK7=`b0nOJ*fOYsMnlJPO-qoNAQ2_E4bRbtj4`5Ii>J}_Ti-pdxE@w371!Ab9AB_Q~ zY^MAmSO%E22j+Ya$lkjskja5H6QOM3PpDq_H&iCfL2`jR@?+VPUYk^z*arL*b?|`0bEPqdM5zyhZKDQ z-92D#C1@eD1+n-Ps=_Cb6kkLEcppk(Oi(jpjiMPH6u_3EX!aRYLf%KqmWw*@ZDnP@zr`^zT0O+fB2LouNr(XMl|F0E`g8nr=n9z)!vGFks6d>SeA&dI#?J z0RLV?y?}d*nZF`uwirHt4fTRN^|F71bPCG1@Odg*0(l^cWW%A{D6IEfq$?C5ceV_f z0-p<@e=)2rDulEFk^)jBBnhNC)&_9E7RewLK+1rA^*~>TA!#ub<_@kiAf-W~*C~+V zp)YFyvos&pUlu`Am1W< z8SEZ?(5GPgP<_hVKVXBvIM#zMT``r<;qx766`y~NR?&5!^Yh1??b5tK*M-j4A9HFy z@ivS$&zQOoJgM0O7_}gngduZzd|BT8!l;LeODwALzQXZYcqc^F{PzcaJqADL6tk9SB%=AqNAxPp+f?7D`^DS6V5@5FFU?P|6V1@2 zdIRiGYCBHj8b8NipV9fDcB&9;OM3mNjVXMbmZ@o+<836cCFB4mK{eL+Lv3Sp3HvY-8Sj1)G@Kt^C}>T7#TrP&=C1y?^ZIWB0S!T+OD( z?*B8+{~7*IeLg+jKhHIPWm7a`fA*Z`JF1@)JT~|L5nms>cVovi&pmekuXsGYkNUsz zKjP}tzH55_^=J7s@BLf86ZjhvZ?^#dQu*cg86XS%K7+~wtO?!6(6yS*soYT+nC6XX zTbt@Qfk<AMwjn8$7?mzGix@r+M`eA5dJVL4?}L)Yc>} zXfg0`2{Hj{3iJW^W=w&aBQu~D$Q-C8ve5j7tdJ#8Yh(q~23Z5OMK+pW zksY!HYLD!IIv{(XV&tIt1vw%yP$%RF)EPMebwSRW`^Xi!0ChvIK;4lWP!FL0M4reU zs2B18>Ww^s`XDb2>{gLCP(S1YRDyhg`XfKh1PVYBpi<-yG!O*<4MI}QJrs-rfrg+U zprI%js0@W@enMd=6lge-0hOaLpbQXcUqIjYbhbV^E~#2c$qzKx0ufP$h~1 z8iy2`?@>I81)6}AKoe0M&?FSE`3@zc1fVG>5ojt(0-A=BHFr@uN&%XIQh{coG@w~P zzeU+79cT{90Gf+3fzCl$nr~1Z$_AQ`a)1_~T%d($j^-bz2;~7SM)^QXPyx_VRH(Uw z%1{x|a#Rddg-U={pi<4(s1lU{twQBMtC0$54ba=D7F7VPLzO`5Q5DbzRIRy%8c_{U zKvAI0s19fgs@L2^t*8NL8)^jFj+%gWpk~eAQ738v+J#zycB3|+J*ZuC1NEW~pna$l zXg}%#Iso)5G>E!^&P6>yhfpujd8kiw9nDAmKo_6^pu=bo=t4AC^CfslhJY?Y^MH<` z`9K$=1)6JU2^t2v6fFe042=L?juvVDhE||apexa0psUalpicn3ipJ1VpsUd`pli@_ zpli_z%@=4LS_$+?vrXtq1xn zdJ5r5x9J+=+2Kpts4D>qsE6}gd70tWo2Kof( z-_fT)Z=%nD-a?;i&Z67s3!q=4t3dCdzXAORx~6#teS^LP`YpN+^e*}e=y&Lb<_!8C z{T=8J=qAt~(Ji1q0eu_YL$`rWps#`cjP3yaC;ErxG`f$z0s0I27U-|&F3{i5cbd1* z1N1%6hv)~OljujFYV?!l6u7JJ0o9-hpa?PAq%#UgPycM-6SyL-NJu>@Q~^vqp*Pw; zjL6j0bUyv$kGZx^hV?@%c-e(W1R6vaG{+3k7&Adr%mNKz2%5ndG=eE;0&~y+mVo@$ z&<|TcdVAym=^#F z0?I}Mx+(xwm4K%4fTD?jp2>ikseqR0fRdSjj@f{UxqyawfPw{peno(KC4hEifO0CB z3tgf|^oap6C04|ah=~JnB+kT%xDYquLEMQa@ghFNoA?qxA|V09pGZj%2_zvTn1m7; zZU!`~1Z1qkt$-cpct> z$MKK&A=VH}VhuA>NKTM<$$R8)WP-sA!{{=z7$;^0vx-^A>|n;3*O>R1i_AyN71o9I zW8>HiwvugQ2iPU-MfMZ+EB2oPESN1Yw!?N&c8l$PvYW8`%|6XxhJ&etor9x;tAoTr z>Ja82cThTXJ1lV6<*?V`fLI_l7MqD3#javsahW4=6gtjwG;*|Zv~%=wOmtK^*0`Mi zp4@-?A+ zWS6mjVLxSWu=fQ-U}%TzBJGClw%gsa`x(ZH9E=^z9UL57V5|WSvPWZm4#xVzzl^nb zYOIEjjkOxaieao6#ySaO#jH12KnS!aqPU=W6U06aQZytvq%cUKkb)sm?`i;)!Q9W> z*SH7f=_qL4L9T*}M*G#5)w|Va)Q8m1sduWks5hz?L&;IiB08ID0bEy4{x*3ZJkv)Z zy$ES1q-PQ04nsNw*U;*%hFcytKf9%Wv*niFO}nr15c(?ZtJJTOzl!<0-&eA~yL~13 z3Sa*Pq3ht^z20-Z{(9~8;xAWU&%EyZ<-%)wzwG(4`^%Ou8^0|3Qt_qNm+oJjF&@*q z2yD9^Z+wJhH=#Q;!FU11DR(0b-egSUmeYxj89d5-92JVdm5R^)lwc)&gj4AocvxEu z+C=y|v<_iS;t2_AC1)UAhIB_;=66c2{(k-Y6}bRqA^mrMWY1JNz+KFN#0fy=MSvE7 zV`u@vfMaGdj z5ydUCjyy>=kf+H;@(f`Ji`J1Dpm&}}`x$-o0yC2_U}jN-VaynF#sVE=EEy|wh_PmD z&^Tj@USjOfVaA?uKrb_5ut<(Fj({M}j0@w+xH0aG2YQq7V!Y8Q#uF@z(_mSg0gK`+ zdYAD5JK{a2m64(km_T%q31Who5GE8*>=OEr31ixraP$!)M;|j0OeDI@M1iGn1%1Lq zGcxok6T>K&SVqajG4V_S*b1LBiA)mc`rCjCcbH_*?%$wqnH13J-+?awfk{O_GHFaY z`iaRv_n1tkoykIKCL3`~4wK8wVe&wbV3WnApwZP$6&YH32%zS16GmIl} zBw(;Bj>6Hbm~~`lvxck_>x^TVl{{WQ0VuYbS%VcgmNjCHncd7Dti*B5US=Qb!Fu9& z=6TkO+0VQ{^%U#FdgDG;0NM#O6VuGJ{7<|5PrLk2yHLdbpLY45cKM%n`TtqFJZ>^s zz>aSZcE%g<9{dqOVByF~9;pWVWCb}-t}-S}Ewh9<3%b;uUB!OR-e&I!gaRvpuV6^1 zCv+Fq3U>)F3hxLxky2D5suzuk4v0>Ou8Dru3Dl|7*`xERuDh;Ww^nyZ_gUSOx>t1X zf{WBZ&p|IxPobBsw@dH(47(XcGd9jRsc)bkpr5HfU;kPCefroj;7Bzw++=vlDAZ`!XqC~k##YAe z#+Ak+#)pmXn+Q$3P2x=|O_rE!G`V7O!{ldEp{a#wrRfUO1E!pruh|lFVqRjt!u+a* zjYYggwne+eDvMnfmn`)xGc8Y9UbC{Ysr2+RZ5(V8Z8~k1 z*&MSuYjfG=nk}+5v-P$Ov#qynw;i$FXnWoEzMYYsvz@|jh23#`WS?oj%l-uH!5SS7 zI9wLb76*u1#plF7I|exRJDza7>15_q>GZ7A_s$CE`OcSISeJO06)tC7?z!r@%3T{> zH@e<+BW|v4d2YMhPPpB4bkQA7dn$(}vpInlB zF!@G`FvTGyETuYSC}m^HN2vy>!Ks<4wW+&OPo$npy^|(PGfN9iOHW&pb~x=`x1Wb!WRMK23`s_HMsLQ!jLA%^%#zHVnXhE&Wo2h=%-WyzdA41)Ji9mhc=p8{ zha6Q-YtF8mGdUmSaJde->ABZ(Z_lxtQ#)sW9-Eh#SDQDQw>|Gf-tBzH{P_GO`DY9C z3&INK7o0D+T4+)jUszkXtMFKnUQuFENzullE5$~|mBrhOua;Pps}jJ8(o`PTTokF+g>|VyR3G7?e^LOwa04D)LyE+T6?GV=Q>oUUuRM0TqmiM*Cp2F z)~V{6>-y_P>(>QuD@9SdHwDB zd-Ys{UV~YKV}ox)SVMe6c0*Z1V?%GlNW)meriMKYhZ{~doNu_&aHHY-h6jzpMx#c% zM$g9JMnz+KV^L#mV`t<1#ubel8h17xY&_n0wh1-qH(4|}H%Xf0O^HppO{%7iO}m=L zn@%*HYr5QYz3Fb#ugz?;Z*y34d~N$XhahSsgEds+{+zS4TK^=#|K)+?eT5p>2&Dy?hNfzc4l^}I-5KDJ4ZX$bZ+e2-g%(&Sm&9}OPyCc z?{xm$g}QXQW_MY1Id@6ALc5e*nO!Aa^^CeuKUyOJKaC`pdOtblOBg2 z@1D>eWlv^LNl$%Gch7Los-BHKyL!fZPW4>sx!QB5=jUG3tKVzU>)b2pjqc6tE$OZA z?d~1!UDdm>cUSLt?}^@Xy_b8h_ulROwNIzdqR+Wc(kJgr?91&_^)>hP_l@?g>3gA%!} zwf|24&jV;cf52kEc|bBCA4nX?9Z(JI8F*#j^uWb|&j)S~+#BEq^#;ub9S3~}!v^CA zvj@ut8wYy_M+V0RHw<2wOXk|l4W3&xcX;lax!dO+n0svQnYowdUY&bqNN31(D08TP zXn1JV&<6N-983&?YM7r%v=ELTf`1!f#>r4BpadH`tvrZ*fC&1yc|?CXCA7R8if$B) zgQwdb$~!Sm#!f+EK1ms=F(gwbJ^?j$A}@TEx;OP}EC`#xhUt6Lucz-zzw~|B-yWv! z?fWY1E4+!T#hbQb**3hLQ_-}Idv_~WOJG9}l|!`6hjkTh22VJ`fxg7emkA1tBq2dk zQ#;1g2|jUh1n0Ji9WjS{69XbLbqazqQuss~5X?xeWF-pKv#s)=$`yIr=PWG?xMv%j z?jMvYwXl$t$5(7>4hyYaTevNAeP`T+S6se#XCEH&j1LPi7iToCEX`e67p?dCRsE#C z9W_za@ve43$=;qynbguLqhUp9!OEHl-M3HchPCYNNvoAxwnChsN^@7RT<{J=1iYZn z`QVL5#?WDDfE}^L&_5?fUozFZND@JZ#18=f7i9!)*u2Ukqbn(;E8W8*y)!wvE7N1Y zp;Mr!hSh?7&0qajD;k$2~@8zWn?C6erx z$h3%-EQutmCBiP$)5^*-)Go~~)XU1sE7WfCgNRo8s5K%zvN_w&FS|K%`ce9H;a?Nk z&P3oN24b#v1%`q%5Z?#~Yn2~&h<3f`@agKz!Z;Gc@P#6Cv6}&=lOYHQ4#6S=SUfwz zn3$P|M8XPdXC==)v0CmF>Sh*FJ(i!dq)ciPnB-lBEo~h>mMgAsx3e=(*0zq%Rp1*D zJ%QY5dk;TLk$psAYN%gLw6E~T&YnYn}ULM_0oa5!4ossF8zr0);SlFuwEKHAc zNaT*lmZUDcR-~?w%OYAgF7$NAeP;IZAYUU%cBB)tKcFs5ZtCXgZ*LjkW?}6Y0sNTF zOyU{5tY{?#&#>C|nqUz(06sv zuZ>?~cc>V9T-)fm%(8shOIIF@(H#ax)+CMT26;As8GN8Gx)Hz)omz3=XK6iL00X)IEmAAKQ zQ>%6^_dzE#f};?%LSiRFL6D1-Xzp>FNvJ)$cJKpwHXK9r53$kEM`wgQa1j1oZ~z#m z`bno1i`nQ&AN;vI!_U|@Br`CoG{Sx&X8y6>mi;{u-s#QJ-0Ni5ULsJ`%}I6%m=o#b zo=_F8dVYSAtp2HD<>JxBvD_}cy$qNWQ)mzHA4>yZ%z>^vc>POjS{Qx|=7Om>dttm} zO;kywT}!(pTkbd!H}{2_`U7*7Hlewpv87?w$%|gDFMn|~eZn!aAh=`1HNGlx4U-@a z%MPgTvJFb{%UjnZ531i>>s^$SWNDsISQ}isy+sySx2Z;wDYNhIj4TSb;nyt?=A;1D zRFCIo&_t9A-GHmah9c&U)aLXY#@$vzCpQH5^@%R=V|KXL<7nM>n=csFSR` z<&G)&iwk_b(wk!6*DwY3KqCW#{o zg3DSIz0Xxt?CMo~>==Yi5X1Q$j*IYku)(@7a3YDs38Lr;x=mdxH>mIWA4 zs(HW~0l)KW;Q|aFqE%VbeWwbY^#aMGkEWFt?K+Mfd8su}7_xRw)0PHlRR5ul{+IjY zHj3tLpFUxNS+~Rp$!yn{JV{7in7xfG|Lv%@jRj!|nM+?%HN3VWvwY_#{TU7Ck8Es> zd=GzN;Th&wp1-8XSCZ2fC2!4zulgZ~d5!?qZDF(ET*2&z2+k(V);wgg;B#NV)MfCw z8+>vbqBTNf0E~s3BS6P*bw^CBJy23xOdQGvS zv%175pf81c&qm^G0>Ez*lAKKWnV@1WT==nI4dAE>`eq=2R;P>-=p^l#IV02xSV%A^ zT98FdL_$#IROUdlGfs}qt}q~hG=McT!a_6tb7NXkC_K-Yd&idcr4$d^N|z=lw;X_cZt6 zg(@9kWYdNd*N5N29%suZg)@`0OeGQ@BOg$X)y7&FpepX!~Jl$sjV^<4GH$4_P& z+PRsjKZs28njO)&I%gbPz0=rth5Ky$HSVi->Sh>Q8!k5&o6VT_9nSw^*{_#h7>HT; z9e0@fXxS4+p2`6Hoz4uZTL_$MK>`KHx(JXI_<#{p2!)(^TYaII`;EB%ow#wos-MMs zKE^rRi-Pe7nZ%xyz`G2b5JT*9@U98$58M%w8j5)YeS`uSKG13p7qHQR8@%v(Jkfh% zB(Aw0l#^ZDqSt#NIBywQ9_`RM%w7Gpck$ej`+{*l)l;?A+r15A3L0e%+nR#OT2AH= zo*mFUbiApu8P*W^vKFxCTi`dUwdn%+QX^XnHRevf@PPp}$EH@5{Z=n??1LpsK6@rR z_u0QKA33)&W5%S8TViW^-oiXD*Ub3^*&WFqy7=>^qoc_cFLPUaw`h)3rYt_z64#pM z9y9kySAWal1@W%Q&GB^3=(s8-DXlvqDsGPm|@OJF{S2~lwd%%x})|m=*@-~$rwW|2Ue68M3UY|^4 zUQ(xmA9w{9eO@qrfuqI)oDGL}{NWwCo8zr8`WEwr`V}>^MXe&qq(S{OEu8^n8)3eF zg!%FV8;qYXOuK2MRXP7YV-yY8AI-BD9vxhMYgcjhrfW|uKD#V^=C8V*NlnRxi}Jk! zD^?c7ltz2ZqJydMXs|4!sE)}BKg*bVAAFJewTck-`O z@3OAY4>&pELRU?S*OI3uTh-@bt)`v}8{rb{Ze2o$YYbY|7;=0S@50aFgh@*-`zV)V z3B!80i!FJOiLaB9hg;bS^#ab}Q5^zvxP-M9J7L;E3^Qh~R`<~vd&ufO`~_Z~U}pk< zf@}!vV69Ez92#h4!fUg~)*Bl=vTLVg#3)E$m%sJe(k0h+6c%o~wq)s-+w#?ZMT>H> zMvDFYOBQAAJ4z1k;eLCyvhr0d+LOEo>l~}BJjVUHhYY?xKPG1W>w~F-ClKDctzEQ$05+8vuT>MD1@A0NNLcpH0`3x)BsD1Q?UfBl+$CbG{<~m2 zZfJjXV2?_ zJ0B6hSUbYS%dT(B=Z@{mT3GBKP&|_LJdE!z+=qp4um9)Fe;eX`?q3GT_k+sbH5lV; zI0J~Z(l-Tu*c9-S$2~es@&b2TP0+kEOXHuIj}y3`)Tc44tW`QXDC!b9HSt&fMKCUF z+ts}8ognp&nPk#Ax*#aDIK~Nh5>869D`2eDK?3&Dluv|LrN4Vb%%&V7k6Yr*6IO8p z<@MtW5>u9)?3#OKY2u_TS5Nvr6qhr#p6ZG4At@3k$Nf z&um;#Sg^iXo-nwhIH)kj*)BNQE34Vpxu9)je#w({A+oLm-Emb>woNbvRQ_NN#$gV4 z3xX~)V8%EX_K=HY7XiN6us7*>APlFK@3L<|IY3MNNK8TIr>$B;_Ki8~&vx{@yDodu zBegj;wk5>_1T|pZiTP1c^H0oUE=~rdcO*MGC3mDV7qx9uy=4n^@;0iNTB+nII811! z{`sHk`(UO-uw4%_;W=#|%v#|sxTdmgEX7XLsFfOHsX*`gLvH*Y_bqp8f*XH$1DjpO z^=#sUOxEq;XCO_-S%7SKlEP3_Sss z3FTKod60LCDM8dkGsPo}-orEGC$$M{fByU~Hu}PLTK6b-g4hVh_;mnapjv>~?B31Q zj1U<}kkKmux2 zZk%jlo_Z5b>%lXB_Culz6~Hro(R9yq_pmAZAqK@n<+}(l{UO+!UT{JdiNWikRqoUj z4~NafltDRdK^mHvoAL&G5SU`TXNl39DX<7n$nncsRuQ6@|7y=OWh$?Df9r{;?%lP; zo7y8i)N0S9aPOImmM$~%jxr9kv-B1l`{(z@f$i;=kXvK!7Hl8gR~qV9y0VmWSeI{j z$jsT#;zC)TIMf3a4ejF)@N)o+!4$0TDW8F>n}}+$sU4hFI)x%btqB>#281+jt*crm z)xSC+U0K?&wJCVQJhU`^PP46TOI~b=%z_y8pI?`qpy&}I^+)pPtaa}XBn+!$DN&pv zDm|op7%W)~--@`){F9#>#1C5f|1x}t%sWlyL~bz&eOrs>y*5`apL=Xx<&Lfx<`%IJ zN%v1yg_@d%mLIhCSGuRKs0+_qf40r3?d(%|^5zXiUg=?u5tZ|!ofPvb!3zLmral2? zddyl+rVE-Cq~V4OOiP;+g8mpk`%`Ad<^(Tt_V%FR-RLkRJ$KE z0|y_q{B1GyI()QycTnXM1x|4eLK8o$+@h;jnI%VRi&mBS>*<_i*@8K>Mx;m3%j+1xC@OEj#?;zq4&7LqF;WsRQBjuKBA%FF&cq~n zS8Q%oCz9jsrSbB~hwwHiI$+c_g1>@%&ziE78a<>Y| z0(f`Y{)AD$9foi0AmM;k9;f;ZPyJ?j~~yCZkB z*nh%Wn&6YuV2a@)(I>seW`Ygth>Fk1Pc8DP*x00wB`4)+zD9+Kf*As}A9-DtE-{S` znf#Fjc%*&c*A4nWZQy@zoiRhv5>|U09QE`oGhnpKZdK6`KAZ< zZ@4N6Y1&d#x+-wux*mW`-PWd%d$#g2MP|L7U0sf%RBl6zXp?f8S|j+pH7Yi9?fY|+ zhE*X78RsC2lU0mB!!TxOmrS?&m~1*3{)seZgtcz3EgO>>d^#arR#>yGHEhC0UaH8b zb8x6nRg^{85ZAdE)@CXqnjW~~$>6Y@Cjr|QR>)#Q@!jBPXqGZO&p+e{v}*`AJf!fF zHpNNgWeb0+f>!H^J3^0vY||ipri5jca-@3x|J9Nx>ct0H8|5N+$QN&DZ zAo7q&zAy|ZPRd_hD+_Dctg6}39zJ0qN$~Sk`k0wW^J2=Lstbj)hiW!ML|KO^ONkueXY%1{H?7$9c>Lvg3}w568rNdQMC(W1C*Y| z+A->A?vhSHj8>v4U~2t;A*NGPYY4b%h+lm3&DnMymX>}qZPS9~bt#^Q4+~|9to$C0^+y zN%eLNaW`X(@}6vz8#+oIz5J{L;ym-$)P)*328expY=aVEvrEttZasd6P1EXDV=1r! zuOfqZ&A9(V3r>SYi7`~U#w3yr4>>_dXi7?GNJ;^dCHf`2F+TEJNo<}XR7n5W7 z;n&%g4n`u;j?Fr;1AD6KceaK7Qyh}$<`FNo)5ReqZ#<^W`}}#KcSM~1YwzBxd#)`! ztZ{u&NUFrtPM$Bj_b#vs%wehKmLP-u3BIidb{LNwV7j~Ufr{V|w~#6D4KW8chNvQV z7p9$v(|&(8BIQ_J?W-vZpI9mh43n;TVl4SkW#voBYsc10L#2Kz$0qxu+cwOZ^Hf`O zblX#N=4@z-Zj#3; zN_O-qm3=#4yAlY0)Aa?ee2TX7{M zOZdo=2_!@6;EgMu=03(gPp{ZW&coQ3fef|qG6W!MY$&y)lC3d-43q-jte6bKs>GQDY^Ryb7FrUNB^JgDJ9_iykn)j`xcp>xQt zD#}vCC5|5NRE+f1rg+{9%&iZMs#G}HCl8gh9UP1<$cj-WjK1F0dtx+x!ZEfgMp+eY zZ=Eo=qGNm@O8tRXhEr&ub;6L!Gu)LJV0V?7hk!gq-3R6z_RK&D=LFRTejEx&xvxek;FKAMFeYPEW7nmz;o(YUcz7&62b5kZ1$hBV zWdJ1qsT`y>AN+DRU|!uIN>lthX7Ca?<<)uIZ50eC!8@>7m^YTfiik!81MFB>4Y>DZ z*)qTUp|q@pMgIOp3$xPZ<@-HbQXon4x3u(6k`xxHXO(QfGMKetq&d~oGqrhSL)PGx z?InZKl98=PD=Uv~87Yy%^%i=)6|PBcMsK=XXzl8}zPzzonH$`xa$I6dLi$5X6)sto zi$`zmQ+a20tlUvhuwzAgrdRpio1=|y?O9qL7+Ah^&s&Xfy-XDts9Lt?EuN2_ATKlY zoQN|;9XuU#0l1pl$qT^^sdd?#8p4SX7ud_eKAs-)F(axOLi@@@d1;h*-;1@f@R+0* zy|X(L6ium~`Uc!~_gw25?J1T&VvRB!YS@PM=dRW@2$K zW?z8QQq${Z4d3C-hVR?*Cq5ouhbf_Wv`zvlr_-?zst(P}O`Uv6Agr{jlN+xPKoY!g z{+}(y;D1^;eBx`xY>@joowCGHTD z4N>bDd7-^+dwi&?!hH5jcTd+D!3oMGvuwR=odfJ=!rUws7%^p2dY8^jnc9PVA~4!Y zWn%$zh^&P5HKz9Z^j={KDahkMK^Jv_XQC=NxGcfLBcUufSe59x(!|ln$_kt>#$s

9AxHZ~IbT3h=$85=u+hltSGXC~N5kVn{GK7RUy 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 }9naMW3e6&}Zp3`W)R(pQk(M3v{RU3Vo5jL|>-6 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 H=d=F@iuu`M literal 116752 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 diff --git a/TMessagesProj/src/main/java/org/telegram/android/AndroidUtilities.java b/TMessagesProj/src/main/java/org/telegram/android/AndroidUtilities.java index 3b346fd00..f25d557e3 100644 --- a/TMessagesProj/src/main/java/org/telegram/android/AndroidUtilities.java +++ b/TMessagesProj/src/main/java/org/telegram/android/AndroidUtilities.java @@ -15,6 +15,7 @@ import android.content.DialogInterface; import android.content.pm.ActivityInfo; import android.content.res.Configuration; import android.graphics.Point; +import android.graphics.Rect; import android.graphics.Typeface; import android.os.Build; import android.os.Environment; @@ -29,14 +30,12 @@ import android.widget.TextView; import org.telegram.messenger.FileLog; import org.telegram.messenger.R; import org.telegram.messenger.TLRPC; -import org.telegram.messenger.UserConfig; import org.telegram.ui.ApplicationLoader; import org.telegram.ui.Views.NumberPicker; import java.io.File; import java.lang.reflect.Field; import java.util.Hashtable; -import java.util.Locale; public class AndroidUtilities { @@ -51,37 +50,6 @@ public class AndroidUtilities { public static Integer photoSize = null; private static Boolean isTablet = null; - public static int[] arrColors = {0xffee4928, 0xff41a903, 0xffe09602, 0xff0f94ed, 0xff8f3bf7, 0xfffc4380, 0xff00a1c4, 0xffeb7002}; - public static int[] arrUsersAvatars = { - R.drawable.user_red, - R.drawable.user_green, - R.drawable.user_yellow, - R.drawable.user_blue, - R.drawable.user_violet, - R.drawable.user_pink, - R.drawable.user_aqua, - R.drawable.user_orange}; - - public static int[] arrGroupsAvatars = { - R.drawable.group_red, - R.drawable.group_green, - R.drawable.group_yellow, - R.drawable.group_blue, - R.drawable.group_violet, - R.drawable.group_pink, - R.drawable.group_aqua, - R.drawable.group_orange}; - - public static int[] arrBroadcastAvatars = { - R.drawable.broadcast_red, - R.drawable.broadcast_green, - R.drawable.broadcast_yellow, - R.drawable.broadcast_blue, - R.drawable.broadcast_violet, - R.drawable.broadcast_pink, - R.drawable.broadcast_aqua, - R.drawable.broadcast_orange}; - static { density = ApplicationLoader.applicationContext.getResources().getDisplayMetrics().density; checkDisplaySize(); @@ -239,11 +207,7 @@ public class AndroidUtilities { return new File(""); } - public static int dp(int value) { - return (int)(Math.max(1, density * value)); - } - - public static int dpf(float value) { + public static int dp(float value) { return (int)Math.ceil(density * value); } @@ -290,11 +254,11 @@ public class AndroidUtilities { return layer & 0x0000ffff | (version << 16); } - public static void RunOnUIThread(Runnable runnable) { - RunOnUIThread(runnable, 0); + public static void runOnUIThread(Runnable runnable) { + runOnUIThread(runnable, 0); } - public static void RunOnUIThread(Runnable runnable, long delay) { + public static void runOnUIThread(Runnable runnable, long delay) { if (delay == 0) { ApplicationLoader.applicationHandler.post(runnable); } else { @@ -302,7 +266,7 @@ public class AndroidUtilities { } } - public static void CancelRunOnUIThread(Runnable runnable) { + public static void cancelRunOnUIThread(Runnable runnable) { ApplicationLoader.applicationHandler.removeCallbacks(runnable); } @@ -337,58 +301,6 @@ public class AndroidUtilities { } } - public static int getColorIndex(int id) { - int[] arr; - if (id >= 0) { - arr = arrUsersAvatars; - } else { - arr = arrGroupsAvatars; - } - try { - String str; - if (id >= 0) { - str = String.format(Locale.US, "%d%d", id, UserConfig.getClientUserId()); - } else { - str = String.format(Locale.US, "%d", id); - } - if (str.length() > 15) { - str = str.substring(0, 15); - } - java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5"); - byte[] digest = md.digest(str.getBytes()); - int b = digest[Math.abs(id % 16)]; - if (b < 0) { - b += 256; - } - return Math.abs(b) % arr.length; - } catch (Exception e) { - FileLog.e("tmessages", e); - } - return id % arr.length; - } - - public static int getColorForId(int id) { - if (id / 1000 == 333) { - return 0xff0f94ed; - } - return arrColors[getColorIndex(id)]; - } - - public static int getUserAvatarForId(int id) { - if (id / 1000 == 333 || id / 1000 == 777) { - return R.drawable.telegram_avatar; - } - return arrUsersAvatars[getColorIndex(id)]; - } - - public static int getGroupAvatarForId(int id) { - return arrGroupsAvatars[getColorIndex(-Math.abs(id))]; - } - - public static int getBroadcastAvatarForId(int id) { - return arrBroadcastAvatars[getColorIndex(-Math.abs(id))]; - } - public static int getPhotoSize() { if (photoSize == null) { if (Build.VERSION.SDK_INT >= 16) { @@ -501,4 +413,34 @@ public class AndroidUtilities { FileLog.e("tmessages", e); } } + + public static int getViewInset(View view) { + if (view == null || Build.VERSION.SDK_INT < 21) { + return 0; + } + try { + Field mAttachInfoField = View.class.getDeclaredField("mAttachInfo"); + mAttachInfoField.setAccessible(true); + Object mAttachInfo = mAttachInfoField.get(view); + if (mAttachInfo != null) { + Field mStableInsetsField = mAttachInfo.getClass().getDeclaredField("mStableInsets"); + mStableInsetsField.setAccessible(true); + Rect insets = (Rect)mStableInsetsField.get(mAttachInfo); + return insets.bottom; + } + } catch (Exception e) { + FileLog.e("tmessages", e); + } + return 0; + } + + public static int getCurrentActionBarHeight() { + if (isTablet()) { + return dp(64); + } else if (ApplicationLoader.applicationContext.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { + return dp(48); + } else { + return dp(56); + } + } } diff --git a/TMessagesProj/src/main/java/org/telegram/android/AppStartReceiver.java b/TMessagesProj/src/main/java/org/telegram/android/AppStartReceiver.java index a52ccccc4..5368465c1 100644 --- a/TMessagesProj/src/main/java/org/telegram/android/AppStartReceiver.java +++ b/TMessagesProj/src/main/java/org/telegram/android/AppStartReceiver.java @@ -16,7 +16,7 @@ import org.telegram.ui.ApplicationLoader; public class AppStartReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { ApplicationLoader.startPushService(); diff --git a/TMessagesProj/src/main/java/org/telegram/android/ContactsController.java b/TMessagesProj/src/main/java/org/telegram/android/ContactsController.java index d6f71a5c4..c57e9c519 100644 --- a/TMessagesProj/src/main/java/org/telegram/android/ContactsController.java +++ b/TMessagesProj/src/main/java/org/telegram/android/ContactsController.java @@ -419,7 +419,7 @@ public class ContactsController { FileLog.e("tmessages", "detected account deletion!"); currentAccount = new Account(UserConfig.getCurrentUser().phone, "org.telegram.account"); am.addAccountExplicitly(currentAccount, "", null); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { performWriteContactsToPhoneBook(); @@ -546,7 +546,7 @@ public class ContactsController { MessagesStorage.getInstance().putCachedPhoneBook(contactsMap); } if (!disableDeletion && !contactHashMap.isEmpty()) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (BuildVars.DEBUG_VERSION) { @@ -702,7 +702,7 @@ public class ContactsController { } } }); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { updateUnregisteredContacts(contacts); @@ -763,7 +763,7 @@ public class ContactsController { applyContactsUpdates(delayedContactsUpdate, null, null, null); delayedContactsUpdate.clear(); } - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { synchronized (loadContactsSync) { @@ -784,7 +784,7 @@ public class ContactsController { public void processLoadedContacts(final ArrayList contactsArr, final ArrayList usersArr, final int from) { //from: 0 - from server, 1 - from db, 2 - from imported contacts - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { MessagesController.getInstance().putUsers(usersArr, from == 1); @@ -928,7 +928,7 @@ public class ContactsController { } }); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { contacts = contactsArr; @@ -953,7 +953,7 @@ public class ContactsController { } if (contactsByPhonesDictFinal != null) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { Utilities.globalQueue.postRunnable(new Runnable() { @@ -1272,7 +1272,7 @@ public class ContactsController { } else { final ArrayList newContacts = newC; final ArrayList contactsToDelete = contactsTD; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { for (TLRPC.TL_contact contact : newContacts) { @@ -1477,7 +1477,7 @@ public class ContactsController { } } - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { for (TLRPC.User u : res.users) { @@ -1541,7 +1541,7 @@ public class ContactsController { } } - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { boolean remove = false; diff --git a/TMessagesProj/src/main/java/org/telegram/android/Emoji.java b/TMessagesProj/src/main/java/org/telegram/android/Emoji.java index df744fa7b..1e55e9753 100644 --- a/TMessagesProj/src/main/java/org/telegram/android/Emoji.java +++ b/TMessagesProj/src/main/java/org/telegram/android/Emoji.java @@ -259,7 +259,7 @@ public class Emoji { Utilities.loadBitmap(imageFile.getAbsolutePath(), bitmap, imageResize); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { emojiBmp[page] = bitmap; diff --git a/TMessagesProj/src/main/java/org/telegram/android/GcmBroadcastReceiver.java b/TMessagesProj/src/main/java/org/telegram/android/GcmBroadcastReceiver.java index 04f282cb6..7b33e2c6c 100644 --- a/TMessagesProj/src/main/java/org/telegram/android/GcmBroadcastReceiver.java +++ b/TMessagesProj/src/main/java/org/telegram/android/GcmBroadcastReceiver.java @@ -27,7 +27,7 @@ public class GcmBroadcastReceiver extends BroadcastReceiver { FileLog.d("tmessages", "GCM received intent: " + intent); if (intent.getAction().equals("com.google.android.c2dm.intent.RECEIVE")) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { ApplicationLoader.postInitApplication(); diff --git a/TMessagesProj/src/main/java/org/telegram/android/ImageLoader.java b/TMessagesProj/src/main/java/org/telegram/android/ImageLoader.java index cdee9073b..4a77aed99 100644 --- a/TMessagesProj/src/main/java/org/telegram/android/ImageLoader.java +++ b/TMessagesProj/src/main/java/org/telegram/android/ImageLoader.java @@ -307,7 +307,7 @@ public class ImageLoader { } private void onPostExecute(final BitmapDrawable bitmapDrawable) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (bitmapDrawable != null && memCache.get(cacheImage.key) == null) { @@ -518,7 +518,7 @@ public class ImageLoader { if (lastProgressUpdateTime == 0 || lastProgressUpdateTime < currentTime - 500) { lastProgressUpdateTime = currentTime; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.FileUploadProgressChanged, location, progress, isEncrypted); @@ -549,7 +549,7 @@ public class ImageLoader { @Override public void fileDidLoaded(final String location, final File finalFile, final File tempFile) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (location != null) { @@ -567,7 +567,7 @@ public class ImageLoader { @Override public void fileDidFailedLoad(final String location, final int state) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { ImageLoader.this.fileDidFailedLoad(location); @@ -581,7 +581,7 @@ public class ImageLoader { long currentTime = System.currentTimeMillis(); if (lastProgressUpdateTime == 0 || lastProgressUpdateTime < currentTime - 500) { lastProgressUpdateTime = currentTime; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.FileLoadProgressChanged, location, progress); @@ -601,7 +601,7 @@ public class ImageLoader { } }; if (Intent.ACTION_MEDIA_UNMOUNTED.equals(intent.getAction())) { - AndroidUtilities.RunOnUIThread(r, 1000); + AndroidUtilities.runOnUIThread(r, 1000); } else { r.run(); } @@ -816,7 +816,7 @@ public class ImageLoader { } public void replaceImageInCache(final String oldKey, final String newKey) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { ArrayList arr = memCache.getFilterKeys(oldKey); diff --git a/TMessagesProj/src/main/java/org/telegram/android/ImageReceiver.java b/TMessagesProj/src/main/java/org/telegram/android/ImageReceiver.java index 415bbc5e4..f7a28cf10 100644 --- a/TMessagesProj/src/main/java/org/telegram/android/ImageReceiver.java +++ b/TMessagesProj/src/main/java/org/telegram/android/ImageReceiver.java @@ -139,7 +139,7 @@ public class ImageReceiver { if (roundRadius != 0) { bitmapShader = new BitmapShader(bitmap.getBitmap(), Shader.TileMode.CLAMP, Shader.TileMode.CLAMP); roundPaint.setShader(bitmapShader); - bitmapRect.set(0, 0, bitmap.getIntrinsicWidth(), bitmap.getIntrinsicHeight()); + bitmapRect.set(0, 0, bitmap.getBitmap().getWidth(), bitmap.getBitmap().getHeight()); } if (parentView != null) { parentView.invalidate(); @@ -225,9 +225,9 @@ public class ImageReceiver { if (bitmapDrawable != null) { if (bitmapShader != null) { drawRegion.set(imageX, imageY, imageX + imageW, imageY + imageH); - roundRect.set(imageX, imageY, imageX + imageW, imageY + imageH); + roundRect.set(drawRegion); shaderMatrix.reset(); - shaderMatrix.setScale(1.5f, 1.5f); + shaderMatrix.setRectToRect(bitmapRect, roundRect, Matrix.ScaleToFit.FILL); bitmapShader.setLocalMatrix(shaderMatrix); canvas.drawRoundRect(roundRect, roundRadius, roundRadius, roundPaint); } else { diff --git a/TMessagesProj/src/main/java/org/telegram/android/MediaController.java b/TMessagesProj/src/main/java/org/telegram/android/MediaController.java index ad08add77..c3ced1c9a 100644 --- a/TMessagesProj/src/main/java/org/telegram/android/MediaController.java +++ b/TMessagesProj/src/main/java/org/telegram/android/MediaController.java @@ -273,7 +273,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel }); } recordQueue.postRunnable(recordRunnable); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.recordProgressChanged, System.currentTimeMillis() - recordStartTime); @@ -451,7 +451,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel @Override public void run() { synchronized (sync) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (playingMessageObject != null && (audioPlayer != null || audioTrackPlayer != null) && !isPaused) { @@ -802,7 +802,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel cursor.close(); } if (!screenshotDates.isEmpty()) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.screenshotTook); @@ -1060,7 +1060,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel if (count > 0) { final long pcm = buffer.pcmOffset; final int marker = buffer.finished == 1 ? buffer.size : -1; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { lastPlayPcm = pcm; @@ -1149,7 +1149,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel freePlayerBuffers.addAll(usedPlayerBuffers); usedPlayerBuffers.clear(); } - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (!isPaused) { @@ -1404,7 +1404,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel @Override public void run() { if (audioRecorder != null) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.recordStartError); @@ -1425,7 +1425,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel try { if (startRecord(recordingAudioFile.getAbsolutePath()) == 0) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.recordStartError); @@ -1453,7 +1453,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel FileLog.e("tmessages", e2); } - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.recordStartError); @@ -1463,7 +1463,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel } recordQueue.postRunnable(recordRunnable); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.recordStarted); @@ -1481,7 +1481,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel @Override public void run() { stopRecord(); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { audioToSend.date = ConnectionsManager.getInstance().getCurrentTime(); @@ -1536,7 +1536,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel } catch (Exception e) { FileLog.e("tmessages", e); } - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.recordStopped); @@ -1609,7 +1609,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel if (lastProgress <= System.currentTimeMillis() - 500) { lastProgress = System.currentTimeMillis(); final int progress = (int) ((float) a / (float) size * 100); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { try { @@ -1641,7 +1641,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel FileLog.e("tmessages", e); } if (finalProgress != null) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { try { @@ -1915,7 +1915,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel } } final Integer cameraAlbumIdFinal = cameraAlbumId; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.albumsDidLoaded, guid, albumsSorted, cameraAlbumIdFinal); @@ -2037,7 +2037,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel if (firstWrite) { videoConvertFirstWrite = false; } - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (error) { diff --git a/TMessagesProj/src/main/java/org/telegram/android/MessagesController.java b/TMessagesProj/src/main/java/org/telegram/android/MessagesController.java index e9fece9a8..76fb997ee 100644 --- a/TMessagesProj/src/main/java/org/telegram/android/MessagesController.java +++ b/TMessagesProj/src/main/java/org/telegram/android/MessagesController.java @@ -150,7 +150,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter } public void updateConfig(final TLRPC.TL_config config) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { maxBroadcastCount = config.broadcast_size_max; @@ -247,7 +247,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter ArrayList users = new ArrayList(); users.add(user); MessagesStorage.getInstance().putUsersAndChats(users, null, false, true); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.updateInterfaces, UPDATE_MASK_AVATAR); @@ -418,7 +418,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter } } if (updateStatus) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.updateInterfaces, UPDATE_MASK_STATUS); @@ -482,7 +482,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter @Override public void run(final TLObject response, TLRPC.TL_error error) { if (error == null) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { loadingFullUsers.remove((Integer)user.id); @@ -499,7 +499,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter } }); } else { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { loadingFullUsers.remove((Integer)user.id); @@ -546,7 +546,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter } } }); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.didCreatedNewDeleteTask, mids); @@ -573,7 +573,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter Utilities.stageQueue.cancelRunnable(currentDeleteTaskRunnable); } currentDeleteTaskRunnable = null; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { deleteMessages(currentDeletingTaskMids, null, null); @@ -721,7 +721,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter } public void processLoadedBlockedUsers(final ArrayList ids, final ArrayList users, final boolean cache) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (users != null) { @@ -777,7 +777,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter users.add(user); MessagesStorage.getInstance().putUsersAndChats(users, null, false, true); user.photo = (TLRPC.UserProfilePhoto)response; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.updateInterfaces, MessagesController.UPDATE_MASK_ALL); @@ -807,7 +807,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter loadUserPhotos(uid, offset, count, max_id, false, classGuid); return; } - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { putUsers(res.users, fromCache); @@ -835,7 +835,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter objects.add(new MessageObject(message, usersLocal)); } - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { int totalCount; @@ -892,7 +892,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter } public void processLoadedMediaCount(final int count, final long uid, final int classGuid, final boolean fromCache) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { int lower_part = (int)uid; @@ -939,7 +939,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter final TLRPC.messages_Messages res = (TLRPC.messages_Messages) response; MessagesStorage.getInstance().putUsersAndChats(res.users, res.chats, true, true); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { putUsers(res.users, false); @@ -1024,7 +1024,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter MessagesStorage.getInstance().getStorageQueue().postRunnable(new Runnable() { @Override public void run() { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationsController.getInstance().processReadMessages(null, did, 0, Integer.MAX_VALUE, false); @@ -1099,7 +1099,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter final TLRPC.TL_messages_chatFull res = (TLRPC.TL_messages_chatFull) response; MessagesStorage.getInstance().putUsersAndChats(res.users, res.chats, true, true); MessagesStorage.getInstance().updateChatInfo(chat_id, res.full_chat.participants, false); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { putUsers(res.users, false); @@ -1110,7 +1110,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter } }); } else { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { putUsers(usersArr, fromCache); @@ -1203,7 +1203,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter updatePrintingStrings(); if (updated) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.updateInterfaces, UPDATE_MASK_USER_PRINT); @@ -1253,7 +1253,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter lastPrintingStringCount = newPrintingStrings.size(); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { printingStrings = newPrintingStrings; @@ -1303,7 +1303,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter long reqId = ConnectionsManager.getInstance().performRpc(req, new RPCRequest.RPCRequestDelegate() { @Override public void run(TLObject response, TLRPC.TL_error error) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { sendingTypings.remove(dialog_id); @@ -1377,7 +1377,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter MessagesStorage.getInstance().putMessages(messagesRes, dialog_id); } if (lower_id != 0 && isCache && messagesRes.messages.size() == 0 && (load_type == 0 || load_type == 3)) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { loadMessages(dialog_id, count, max_id, false, 0, classGuid, load_type); @@ -1394,7 +1394,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter message.dialog_id = dialog_id; objects.add(new MessageObject(message, usersLocal, 2)); } - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { putUsers(messagesRes.users, isCache); @@ -1453,7 +1453,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter } public void processDialogsUpdateRead(final HashMap dialogsToUpdate) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { for (HashMap.Entry entry : dialogsToUpdate.entrySet()) { @@ -1502,7 +1502,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter dialogsToUpdate.put(d.id, d.unread_count); } - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { putUsers(dialogsRes.users, true); @@ -1571,7 +1571,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter @Override public void run() { if (isCache && dialogsRes.dialogs.size() == 0) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { putUsers(dialogsRes.users, isCache); @@ -1626,7 +1626,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter } final int arg1 = new_totalDialogsCount; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (!isCache) { @@ -1754,7 +1754,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter MessagesStorage.getInstance().getStorageQueue().postRunnable(new Runnable() { @Override public void run() { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { TLRPC.TL_dialog dialog = dialogs_dict.get(dialog_id); @@ -1817,7 +1817,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter MessagesStorage.getInstance().getStorageQueue().postRunnable(new Runnable() { @Override public void run() { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationsController.getInstance().processReadMessages(null, dialog_id, max_date, 0, popup); @@ -1915,7 +1915,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter @Override public void run(TLObject response, TLRPC.TL_error error) { if (error != null) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.chatDidFailCreate); @@ -1926,7 +1926,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter final TLRPC.messages_StatedMessage res = (TLRPC.messages_StatedMessage) response; MessagesStorage.getInstance().putUsersAndChats(res.users, res.chats, true, true); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { putUsers(res.users, false); @@ -1973,7 +1973,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter final TLRPC.messages_StatedMessage res = (TLRPC.messages_StatedMessage) response; MessagesStorage.getInstance().putUsersAndChats(res.users, res.chats, true, true); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { putUsers(res.users, false); @@ -2051,7 +2051,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter final TLRPC.messages_StatedMessage res = (TLRPC.messages_StatedMessage) response; MessagesStorage.getInstance().putUsersAndChats(res.users, res.chats, true, true); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { putUsers(res.users, false); @@ -2136,7 +2136,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter final TLRPC.messages_StatedMessage res = (TLRPC.messages_StatedMessage) response; MessagesStorage.getInstance().putUsersAndChats(res.users, res.chats, true, true); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { putUsers(res.users, false); @@ -2186,7 +2186,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter final TLRPC.messages_StatedMessage res = (TLRPC.messages_StatedMessage) response; MessagesStorage.getInstance().putUsersAndChats(res.users, res.chats, true, true); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { putUsers(res.users, false); @@ -2288,7 +2288,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter UserConfig.pushString = regid; UserConfig.saveConfig(false); } - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { registeringForPush = false; @@ -2386,7 +2386,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter updatesStartWaitTime = 0; if (state == 1) { final int stateCopy = ConnectionsManager.getInstance().getConnectionState(); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.didUpdatedConnectionState, stateCopy); @@ -2396,7 +2396,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter } else { if (state == 1) { final int stateCopy = ConnectionsManager.getInstance().getConnectionState(); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.didUpdatedConnectionState, stateCopy); @@ -2430,7 +2430,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter if (ConnectionsManager.getInstance().getConnectionState() == 0) { ConnectionsManager.getInstance().setConnectionState(3); final int stateCopy = ConnectionsManager.getInstance().getConnectionState(); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.didUpdatedConnectionState, stateCopy); @@ -2462,7 +2462,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter } } - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { putUsers(res.users, false); @@ -2483,7 +2483,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter } if (!corrected.isEmpty()) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { for (HashMap.Entry entry : corrected.entrySet()) { @@ -2551,7 +2551,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter processPendingEncMessages(); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { for (HashMap.Entry> pair : messages.entrySet()) { @@ -2566,7 +2566,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter @Override public void run() { if (!pushMessages.isEmpty()) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationsController.getInstance().processNewMessages(pushMessages, !(res instanceof TLRPC.TL_updates_differenceSlice)); @@ -2616,7 +2616,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter gettingDifference = false; ConnectionsManager.getInstance().setConnectionState(0); final int stateCopy = ConnectionsManager.getInstance().getConnectionState(); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.didUpdatedConnectionState, stateCopy); @@ -2661,7 +2661,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter if (printUpdate) { updatePrintingStrings(); } - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (printUpdate) { @@ -2675,7 +2675,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter MessagesStorage.getInstance().getStorageQueue().postRunnable(new Runnable() { @Override public void run() { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (!obj.isFromMe() && obj.isUnread()) { @@ -2727,7 +2727,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter if (printUpdate) { updatePrintingStrings(); } - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (printUpdate) { @@ -2740,7 +2740,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter MessagesStorage.getInstance().getStorageQueue().postRunnable(new Runnable() { @Override public void run() { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (!obj.isFromMe() && obj.isUnread()) { @@ -2892,7 +2892,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter } if (usersArr != null || chatsArr != null) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { putUsers(usersArr, false); @@ -3127,7 +3127,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter dialog.top_message = 0; dialog.last_message_date = update.date; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { dialogs_dict.put(dialog.id, dialog); @@ -3174,7 +3174,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter newChat.seq_in = exist.seq_in; newChat.seq_out = exist.seq_out; } - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (exist != null) { @@ -3197,7 +3197,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter MessagesStorage.getInstance().getStorageQueue().postRunnable(new Runnable() { @Override public void run() { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (finalUpdate.blocked) { @@ -3264,7 +3264,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter MessagesStorage.getInstance().getStorageQueue().postRunnable(new Runnable() { @Override public void run() { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (!pushMessages.isEmpty()) { @@ -3279,7 +3279,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter MessagesStorage.getInstance().putMessages(messagesArr, true, true, false, MediaController.getInstance().getAutodownloadMask()); } - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { int updateMask = interfaceUpdateMaskFinal; @@ -3387,7 +3387,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter MessagesStorage.getInstance().getStorageQueue().postRunnable(new Runnable() { @Override public void run() { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { int updateMask = 0; @@ -3764,7 +3764,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter return newMessage; } else if (serviceMessage.action instanceof TLRPC.TL_decryptedMessageActionFlushHistory) { final long did = ((long)chat.id) << 32; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { TLRPC.TL_dialog dialog = dialogs_dict.get(did); @@ -3775,7 +3775,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter MessagesStorage.getInstance().getStorageQueue().postRunnable(new Runnable() { @Override public void run() { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationsController.getInstance().processReadMessages(null, did, 0, Integer.MAX_VALUE, false); @@ -3909,7 +3909,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter newChat.auth_key = chat.auth_key; newChat.seq_in = chat.seq_in; newChat.seq_out = chat.seq_out; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { putEncryptedChat(newChat, false); @@ -3980,7 +3980,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter encryptedChat.seq_in = 0; encryptedChat.seq_out = 1; MessagesStorage.getInstance().updateEncryptedChat(encryptedChat); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { putEncryptedChat(encryptedChat, false); @@ -3996,7 +3996,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter newChat.seq_in = encryptedChat.seq_in; newChat.seq_out = encryptedChat.seq_out; MessagesStorage.getInstance().updateEncryptedChat(newChat); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { putEncryptedChat(newChat, false); @@ -4105,7 +4105,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter newChat.seq_in = encryptedChat.seq_in; newChat.seq_out = encryptedChat.seq_out; MessagesStorage.getInstance().updateEncryptedChat(newChat); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { putEncryptedChat(newChat, false); @@ -4142,7 +4142,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter TLRPC.messages_DhConfig res = (TLRPC.messages_DhConfig) response; if (response instanceof TLRPC.TL_messages_dhConfig) { if (!Utilities.isGoodPrime(res.p, res.g)) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { try { @@ -4183,7 +4183,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter @Override public void run(final TLObject response, TLRPC.TL_error error) { if (error == null) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { startingSecretChat = false; @@ -4242,7 +4242,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter }); } else { delayedEncryptedChatUpdates.clear(); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (!((Activity) context).isFinishing()) { @@ -4265,7 +4265,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter }, true, RPCRequest.RPCRequestClassGeneric | RPCRequest.RPCRequestClassFailOnServerErrors); } else { delayedEncryptedChatUpdates.clear(); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { startingSecretChat = false; diff --git a/TMessagesProj/src/main/java/org/telegram/android/MessagesStorage.java b/TMessagesProj/src/main/java/org/telegram/android/MessagesStorage.java index 9bf30b189..59319703e 100644 --- a/TMessagesProj/src/main/java/org/telegram/android/MessagesStorage.java +++ b/TMessagesProj/src/main/java/org/telegram/android/MessagesStorage.java @@ -528,7 +528,7 @@ public class MessagesStorage { } } Collections.reverse(messages); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationsController.getInstance().processLoadedUnreadMessages(pushDialogs, messages, users, chats, encryptedChats); @@ -1034,7 +1034,7 @@ public class MessagesStorage { info.version = version; final TLRPC.ChatParticipants finalInfo = info; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.chatInfoDidLoaded, finalInfo.chat_id, finalInfo); @@ -2385,7 +2385,7 @@ public class MessagesStorage { } cursor.dispose(); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { MediaController.getInstance().processDownloadObjects(type, objects); @@ -2675,7 +2675,7 @@ public class MessagesStorage { if (downloadMediaMask != 0) { final int downloadMediaMaskFinal = downloadMediaMask; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { MediaController.getInstance().newDownloadObjectsAvailable(downloadMediaMaskFinal); @@ -3030,7 +3030,7 @@ public class MessagesStorage { } cursor.dispose(); if (!mids.isEmpty()) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { for (Integer id : mids) { diff --git a/TMessagesProj/src/main/java/org/telegram/android/NotificationRepeat.java b/TMessagesProj/src/main/java/org/telegram/android/NotificationRepeat.java index f44a1f0c4..9732b4aa7 100644 --- a/TMessagesProj/src/main/java/org/telegram/android/NotificationRepeat.java +++ b/TMessagesProj/src/main/java/org/telegram/android/NotificationRepeat.java @@ -21,7 +21,7 @@ public class NotificationRepeat extends IntentService { @Override protected void onHandleIntent(Intent intent) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationsController.getInstance().repeatNotificationMaybe(); diff --git a/TMessagesProj/src/main/java/org/telegram/android/SendMessagesHelper.java b/TMessagesProj/src/main/java/org/telegram/android/SendMessagesHelper.java index fa1d9eb6e..9146bd605 100644 --- a/TMessagesProj/src/main/java/org/telegram/android/SendMessagesHelper.java +++ b/TMessagesProj/src/main/java/org/telegram/android/SendMessagesHelper.java @@ -96,7 +96,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter final TLRPC.InputFile file = (TLRPC.InputFile)args[1]; final TLRPC.InputEncryptedFile encryptedFile = (TLRPC.InputEncryptedFile)args[2]; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { ArrayList arr = delayedMessages.get(location); @@ -162,7 +162,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter final String location = (String) args[0]; final boolean enc = (Boolean) args[1]; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { ArrayList arr = delayedMessages.get(location); @@ -1067,7 +1067,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter MessagesStorage.getInstance().getStorageQueue().postRunnable(new Runnable() { @Override public void run() { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.stopEncodingService, path); @@ -1121,7 +1121,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter newMsgObj.send_state = MessageObject.MESSAGE_SEND_STATE_SENT; MessagesStorage.getInstance().putMessages(currentMessage, true, false, false, 0); } - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { newMsgObj.send_state = MessageObject.MESSAGE_SEND_STATE_SENT; @@ -1145,7 +1145,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter }); } else { MessagesStorage.getInstance().markMessageAsSendError(newMsgObj.id); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { newMsgObj.send_state = MessageObject.MESSAGE_SEND_STATE_SEND_ERROR; @@ -1162,7 +1162,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter @Override public void quickAck() { final int msg_id = newMsgObj.id; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { newMsgObj.send_state = MessageObject.MESSAGE_SEND_STATE_SENT; @@ -1310,7 +1310,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter } } MessagesStorage.getInstance().updateMessageStateAndId(newMsgObj.random_id, newMsgObj.id, newMsgObj.id, res.date, false); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { newMsgObj.send_state = MessageObject.MESSAGE_SEND_STATE_SENT; @@ -1325,7 +1325,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter }); } else { MessagesStorage.getInstance().markMessageAsSendError(newMsgObj.id); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { newMsgObj.send_state = MessageObject.MESSAGE_SEND_STATE_SEND_ERROR; @@ -1810,7 +1810,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter } protected void processUnsentMessages(final ArrayList messages, final ArrayList users, final ArrayList chats, final ArrayList encryptedChats) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { MessagesController.getInstance().putUsers(users, true); @@ -1921,7 +1921,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter final TLRPC.TL_document documentFinal = document; final String originalPathFinal = originalPath; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { SendMessagesHelper.getInstance().sendMessage(documentFinal, originalPathFinal, path, dialog_id); @@ -2039,7 +2039,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter if (photo != null) { final String originalPathFinal = originalPath; final TLRPC.TL_photo photoFinal = photo; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { SendMessagesHelper.getInstance().sendMessage(photoFinal, originalPathFinal, dialog_id); @@ -2161,7 +2161,7 @@ public class SendMessagesHelper implements NotificationCenter.NotificationCenter final TLRPC.TL_video videoFinal = video; final String originalPathFinal = originalPath; final String finalPath = path; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { SendMessagesHelper.getInstance().sendMessage(videoFinal, originalPathFinal, finalPath, dialog_id); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/ConnectionsManager.java b/TMessagesProj/src/main/java/org/telegram/messenger/ConnectionsManager.java index 0957bd19b..995e6f2f6 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/ConnectionsManager.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/ConnectionsManager.java @@ -639,7 +639,7 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection. } public void bindRequestToGuid(final Long request, final int guid) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { ArrayList requests = requestsByGuids.get(guid); @@ -652,7 +652,7 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection. } public void removeRequestInClass(final Long request) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { Integer guid = requestsByClass.get(request); @@ -2143,7 +2143,7 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection. if ((request.flags & RPCRequest.RPCRequestClassGeneric) != 0) { if (UserConfig.isClientActivated()) { UserConfig.clearConfig(); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.appDidLogout); @@ -2402,7 +2402,7 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection. } } final int stateCopy = connectionState; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.didUpdatedConnectionState, stateCopy); @@ -2452,7 +2452,7 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection. if (ConnectionsManager.getInstance().connectionState == 3 && !MessagesController.getInstance().gettingDifference && !MessagesController.getInstance().gettingDifferenceAgain) { ConnectionsManager.getInstance().connectionState = 0; final int stateCopy = ConnectionsManager.getInstance().connectionState; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.didUpdatedConnectionState, stateCopy); @@ -2468,7 +2468,7 @@ public class ConnectionsManager implements Action.ActionDelegate, TcpConnection. if (connectionState == 1 || connectionState == 2) { connectionState = 3; final int stateCopy = connectionState; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.didUpdatedConnectionState, stateCopy); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/BaseContactsSearchAdapter.java b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/BaseContactsSearchAdapter.java index 53da9988a..17903b397 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/BaseContactsSearchAdapter.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/BaseContactsSearchAdapter.java @@ -41,7 +41,7 @@ public class BaseContactsSearchAdapter extends BaseFragmentAdapter { reqId = ConnectionsManager.getInstance().performRpc(req, new RPCRequest.RPCRequestDelegate() { @Override public void run(final TLObject response, final TLRPC.TL_error error) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (currentReqId == lastReqId) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/ContactsActivitySearchAdapter.java b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/ContactsActivitySearchAdapter.java index c0c16fc71..e01c1c4ce 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/ContactsActivitySearchAdapter.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/ContactsActivitySearchAdapter.java @@ -77,7 +77,7 @@ public class ContactsActivitySearchAdapter extends BaseContactsSearchAdapter { } private void processSearch(final String query) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (allowUsernameSearch) { @@ -130,7 +130,7 @@ public class ContactsActivitySearchAdapter extends BaseContactsSearchAdapter { } private void updateSearchResults(final ArrayList users, final ArrayList names) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { searchResult = users; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/MessagesActivitySearchAdapter.java b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/MessagesActivitySearchAdapter.java index 527b85a58..c1d508d73 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/MessagesActivitySearchAdapter.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/MessagesActivitySearchAdapter.java @@ -44,9 +44,7 @@ public class MessagesActivitySearchAdapter extends BaseContactsSearchAdapter { private ArrayList searchResult = new ArrayList(); private ArrayList searchResultNames = new ArrayList(); private ArrayList searchResultMessages = new ArrayList(); - private String lastSearchTextDialogs; - private String lastSearchTextMessages; - private int currentSearchType; + private String lastSearchText; private long reqId = 0; private int lastReqId; private MessagesActivitySearchAdapterDelegate delegate; @@ -89,7 +87,7 @@ public class MessagesActivitySearchAdapter extends BaseContactsSearchAdapter { reqId = ConnectionsManager.getInstance().performRpc(req, new RPCRequest.RPCRequestDelegate() { @Override public void run(final TLObject response, final TLRPC.TL_error error) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (currentReqId == lastReqId) { @@ -240,7 +238,7 @@ public class MessagesActivitySearchAdapter extends BaseContactsSearchAdapter { } private void updateSearchResults(final ArrayList result, final ArrayList names, final ArrayList encUsers) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { for (TLObject obj : result) { @@ -266,46 +264,17 @@ public class MessagesActivitySearchAdapter extends BaseContactsSearchAdapter { } public String getLastSearchText() { - if (currentSearchType == 2) { - return lastSearchTextMessages; - } else { - return lastSearchTextDialogs; - } + return lastSearchText; } public boolean isGlobalSearch(int i) { - if (currentSearchType != 2) { - int localCount = searchResult.size(); - int globalCount = globalSearch.size(); - if (i >= 0 && i < localCount) { - return false; - } else if (i > localCount && i <= globalCount + localCount) { - return true; - } - } - return false; + return i > searchResult.size() && i <= globalSearch.size() + searchResult.size(); } - public void searchDialogs(final String query, final int type) { - String lastSearchText; - if (type == 2) { - lastSearchText = lastSearchTextMessages; - } else { - lastSearchText = lastSearchTextDialogs; - } - boolean typeChanged = currentSearchType != type; - currentSearchType = type; + public void searchDialogs(final String query, final boolean serverOnly) { if (query == null && lastSearchText == null || query != null && lastSearchText != null && query.equals(lastSearchText)) { - if (typeChanged) { - notifyDataSetChanged(); - } return; } - if (type == 2) { - lastSearchTextMessages = query; - } else { - lastSearchTextDialogs = query; - } try { if (searchTimer != null) { searchTimer.cancel(); @@ -314,13 +283,10 @@ public class MessagesActivitySearchAdapter extends BaseContactsSearchAdapter { FileLog.e("tmessages", e); } if (query == null || query.length() == 0) { - if (currentSearchType == 2) { - searchMessagesInternal(null); - } else { - searchResult.clear(); - searchResultNames.clear(); - queryServerSearch(null); - } + searchResult.clear(); + searchResultNames.clear(); + searchMessagesInternal(null); + queryServerSearch(null); notifyDataSetChanged(); } else { searchTimer = new Timer(); @@ -333,22 +299,14 @@ public class MessagesActivitySearchAdapter extends BaseContactsSearchAdapter { } catch (Exception e) { FileLog.e("tmessages", e); } - if (type != 2) { - searchDialogsInternal(query, type == 0); - AndroidUtilities.RunOnUIThread(new Runnable() { - @Override - public void run() { - queryServerSearch(query); - } - }); - } else { - AndroidUtilities.RunOnUIThread(new Runnable() { - @Override - public void run() { - searchMessagesInternal(query); - } - }); - } + searchDialogsInternal(query, serverOnly); + AndroidUtilities.runOnUIThread(new Runnable() { + @Override + public void run() { + queryServerSearch(query); + searchMessagesInternal(query); + } + }); } }, 200, 300); } @@ -361,38 +319,34 @@ public class MessagesActivitySearchAdapter extends BaseContactsSearchAdapter { @Override public boolean isEnabled(int i) { - return currentSearchType == 2 || i != searchResult.size(); + return i != searchResult.size() && i != searchResult.size() + (globalSearch.isEmpty() ? 0 : globalSearch.size() + 1); } @Override public int getCount() { - if (currentSearchType == 2) { - return searchResultMessages.size(); - } else { - int count = searchResult.size(); - int globalCount = globalSearch.size(); - if (globalCount != 0) { - count += globalCount + 1; - } - return count; + int count = searchResult.size(); + int globalCount = globalSearch.size(); + int messagesCount = searchResultMessages.size(); + if (globalCount != 0) { + count += globalCount + 1; } + if (messagesCount != 0) { + count += messagesCount + 1; + } + return count; } @Override public Object getItem(int i) { - if (currentSearchType == 2) { - if (i < 0 || i >= searchResultMessages.size()) { - return null; - } - return searchResultMessages.get(i); - } else { - int localCount = searchResult.size(); - int globalCount = globalSearch.size(); - if (i >= 0 && i < localCount) { - return searchResult.get(i); - } else if (i > localCount && i <= globalCount + localCount) { - return globalSearch.get(i - localCount - 1); - } + int localCount = searchResult.size(); + int globalCount = globalSearch.isEmpty() ? 0 : globalSearch.size() + 1; + int messagesCount = searchResultMessages.isEmpty() ? 0 : searchResultMessages.size() + 1; + if (i >= 0 && i < localCount) { + return searchResult.get(i); + } else if (i > localCount && i < globalCount + localCount) { + return globalSearch.get(i - localCount - 1); + } else if (i > globalCount + localCount && i < globalCount + localCount + messagesCount) { + return searchResultMessages.get(i - localCount - globalCount - 1); } return null; } @@ -414,9 +368,13 @@ public class MessagesActivitySearchAdapter extends BaseContactsSearchAdapter { if (type == 1) { if (view == null) { view = new SettingsSectionLayout(mContext); - ((SettingsSectionLayout) view).setText(LocaleController.getString("GlobalSearch", R.string.GlobalSearch)); view.setPadding(AndroidUtilities.dp(11), 0, AndroidUtilities.dp(11), 0); } + if (!globalSearch.isEmpty() && i == searchResult.size()) { + ((SettingsSectionLayout) view).setText(LocaleController.getString("GlobalSearch", R.string.GlobalSearch)); + } else { + ((SettingsSectionLayout) view).setText(LocaleController.getString("SearchMessages", R.string.SearchMessages)); + } } else if (type == 0) { if (view == null) { view = new ChatOrUserCell(mContext); @@ -426,7 +384,10 @@ public class MessagesActivitySearchAdapter extends BaseContactsSearchAdapter { TLRPC.Chat chat = null; TLRPC.EncryptedChat encryptedChat = null; - ((ChatOrUserCell) view).useSeparator = (i != getCount() - 1 && i != searchResult.size() - 1); + int localCount = searchResult.size(); + int globalCount = globalSearch.isEmpty() ? -1 : globalSearch.size() + 1; + + ((ChatOrUserCell) view).useSeparator = (i != getCount() - 1 && i != localCount - 1 && i != localCount + globalCount - 1); Object obj = getItem(i); if (obj instanceof TLRPC.User) { user = MessagesController.getInstance().getUser(((TLRPC.User) obj).id); @@ -465,7 +426,7 @@ public class MessagesActivitySearchAdapter extends BaseContactsSearchAdapter { view = new DialogCell(mContext); } ((DialogCell) view).useSeparator = (i != getCount() - 1); - MessageObject messageObject = searchResultMessages.get(i); + MessageObject messageObject = (MessageObject)getItem(i); ((DialogCell) view).setDialog(messageObject.getDialogId(), messageObject, false, messageObject.messageOwner.date, 0); } @@ -474,14 +435,15 @@ public class MessagesActivitySearchAdapter extends BaseContactsSearchAdapter { @Override public int getItemViewType(int i) { - if (currentSearchType == 2) { - return 2; - } else { - if (i == searchResult.size()) { - return 1; - } + int localCount = searchResult.size(); + int globalCount = globalSearch.isEmpty() ? 0 : globalSearch.size() + 1; + int messagesCount = searchResultMessages.isEmpty() ? 0 : searchResultMessages.size() + 1; + if (i >= 0 && i < localCount || i > localCount && i < globalCount + localCount) { return 0; + } else if (i > globalCount + localCount && i < globalCount + localCount + messagesCount) { + return 2; } + return 1; } @Override @@ -491,9 +453,6 @@ public class MessagesActivitySearchAdapter extends BaseContactsSearchAdapter { @Override public boolean isEmpty() { - if (currentSearchType == 2) { - return searchResultMessages.isEmpty(); - } - return searchResult.isEmpty() && globalSearch.isEmpty(); + return searchResult.isEmpty() && globalSearch.isEmpty() && searchResultMessages.isEmpty(); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Animation/Animator10.java b/TMessagesProj/src/main/java/org/telegram/ui/Animation/Animator10.java new file mode 100644 index 000000000..32e6ccfe1 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Animation/Animator10.java @@ -0,0 +1,191 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * 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. + */ + +package org.telegram.ui.Animation; + +import android.view.animation.Interpolator; + +import java.util.ArrayList; + +public abstract class Animator10 implements Cloneable { + + ArrayList mListeners = null; + ArrayList mPauseListeners = null; + boolean mPaused = false; + + public abstract long getStartDelay(); + + public abstract void setStartDelay(long startDelay); + + public abstract Animator10 setDuration(long duration); + + public abstract long getDuration(); + + public abstract void setInterpolator(Interpolator value); + + public abstract boolean isRunning(); + + public void start() { + + } + + public void cancel() { + + } + + public void end() { + + } + + @SuppressWarnings("unchecked") + public void pause() { + if (isStarted() && !mPaused) { + mPaused = true; + if (mPauseListeners != null) { + ArrayList tmpListeners = (ArrayList) mPauseListeners.clone(); + int numListeners = tmpListeners.size(); + for (AnimatorPauseListener tmpListener : tmpListeners) { + tmpListener.onAnimationPause(this); + } + } + } + } + + @SuppressWarnings("unchecked") + public void resume() { + if (mPaused) { + mPaused = false; + if (mPauseListeners != null) { + ArrayList tmpListeners = (ArrayList) mPauseListeners.clone(); + int numListeners = tmpListeners.size(); + for (AnimatorPauseListener tmpListener : tmpListeners) { + tmpListener.onAnimationResume(this); + } + } + } + } + + public boolean isPaused() { + return mPaused; + } + + public boolean isStarted() { + return isRunning(); + } + + public Interpolator getInterpolator() { + return null; + } + + public void addListener(AnimatorListener listener) { + if (mListeners == null) { + mListeners = new ArrayList(); + } + mListeners.add(listener); + } + + public void removeListener(AnimatorListener listener) { + if (mListeners == null) { + return; + } + mListeners.remove(listener); + if (mListeners.size() == 0) { + mListeners = null; + } + } + + public ArrayList getListeners() { + return mListeners; + } + + public void addPauseListener(AnimatorPauseListener listener) { + if (mPauseListeners == null) { + mPauseListeners = new ArrayList(); + } + mPauseListeners.add(listener); + } + + public void removePauseListener(AnimatorPauseListener listener) { + if (mPauseListeners == null) { + return; + } + mPauseListeners.remove(listener); + if (mPauseListeners.size() == 0) { + mPauseListeners = null; + } + } + + public void removeAllListeners() { + if (mListeners != null) { + mListeners.clear(); + mListeners = null; + } + if (mPauseListeners != null) { + mPauseListeners.clear(); + mPauseListeners = null; + } + } + + @Override + public Animator10 clone() { + try { + final Animator10 anim = (Animator10) super.clone(); + if (mListeners != null) { + ArrayList oldListeners = mListeners; + anim.mListeners = new ArrayList(); + int numListeners = oldListeners.size(); + for (AnimatorListener oldListener : oldListeners) { + anim.mListeners.add(oldListener); + } + } + if (mPauseListeners != null) { + ArrayList oldListeners = mPauseListeners; + anim.mPauseListeners = new ArrayList(); + int numListeners = oldListeners.size(); + for (AnimatorPauseListener oldListener : oldListeners) { + anim.mPauseListeners.add(oldListener); + } + } + return anim; + } catch (CloneNotSupportedException e) { + throw new AssertionError(); + } + } + + public void setupStartValues() { + + } + + public void setupEndValues() { + + } + + public void setTarget(Object target) { + + } + + public static interface AnimatorListener { + void onAnimationStart(Animator10 animation); + void onAnimationEnd(Animator10 animation); + void onAnimationCancel(Animator10 animation); + void onAnimationRepeat(Animator10 animation); + } + + public static interface AnimatorPauseListener { + void onAnimationPause(Animator10 animation); + void onAnimationResume(Animator10 animation); + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Animation/AnimatorListenerAdapter10.java b/TMessagesProj/src/main/java/org/telegram/ui/Animation/AnimatorListenerAdapter10.java new file mode 100644 index 000000000..42349cd13 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Animation/AnimatorListenerAdapter10.java @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * 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. + */ + +package org.telegram.ui.Animation; + +public abstract class AnimatorListenerAdapter10 implements Animator10.AnimatorListener, Animator10.AnimatorPauseListener { + + @Override + public void onAnimationCancel(Animator10 animation) { + + } + + @Override + public void onAnimationEnd(Animator10 animation) { + + } + + @Override + public void onAnimationRepeat(Animator10 animation) { + + } + + @Override + public void onAnimationStart(Animator10 animation) { + + } + + @Override + public void onAnimationPause(Animator10 animation) { + + } + + @Override + public void onAnimationResume(Animator10 animation) { + + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Animation/AnimatorSet10.java b/TMessagesProj/src/main/java/org/telegram/ui/Animation/AnimatorSet10.java new file mode 100644 index 000000000..0f91b93b1 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Animation/AnimatorSet10.java @@ -0,0 +1,705 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * 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. + */ + +package org.telegram.ui.Animation; + +import android.view.animation.Interpolator; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; + +public final class AnimatorSet10 extends Animator10 { + + private ArrayList mPlayingSet = new ArrayList(); + private HashMap mNodeMap = new HashMap(); + private ArrayList mNodes = new ArrayList(); + private ArrayList mSortedNodes = new ArrayList(); + private boolean mNeedsSort = true; + private AnimatorSetListener mSetListener = null; + boolean mTerminated = false; + private boolean mStarted = false; + private long mStartDelay = 0; + private ValueAnimator mDelayAnim = null; + private long mDuration = -1; + private Interpolator mInterpolator = null; + + public void playTogether(Animator10... items) { + if (items != null) { + mNeedsSort = true; + Builder builder = play(items[0]); + for (int i = 1; i < items.length; ++i) { + builder.with(items[i]); + } + } + } + + public void playTogether(Collection items) { + if (items != null && items.size() > 0) { + mNeedsSort = true; + Builder builder = null; + for (Animator10 anim : items) { + if (builder == null) { + builder = play(anim); + } else { + builder.with(anim); + } + } + } + } + + public void playSequentially(Animator10... items) { + if (items != null) { + mNeedsSort = true; + if (items.length == 1) { + play(items[0]); + } else { + for (int i = 0; i < items.length - 1; ++i) { + play(items[i]).before(items[i+1]); + } + } + } + } + + public void playSequentially(List items) { + if (items != null && items.size() > 0) { + mNeedsSort = true; + if (items.size() == 1) { + play(items.get(0)); + } else { + for (int i = 0; i < items.size() - 1; ++i) { + play(items.get(i)).before(items.get(i+1)); + } + } + } + } + + public ArrayList getChildAnimations() { + ArrayList childList = new ArrayList(); + for (Node node : mNodes) { + childList.add(node.animation); + } + return childList; + } + + @Override + public void setTarget(Object target) { + for (Node node : mNodes) { + Animator10 animation = node.animation; + if (animation instanceof AnimatorSet10) { + animation.setTarget(target); + } else if (animation instanceof ObjectAnimator10) { + animation.setTarget(target); + } + } + } + + @Override + public void setInterpolator(Interpolator interpolator) { + mInterpolator = interpolator; + } + + @Override + public Interpolator getInterpolator() { + return mInterpolator; + } + + public Builder play(Animator10 anim) { + if (anim != null) { + mNeedsSort = true; + return new Builder(anim); + } + return null; + } + + @SuppressWarnings("unchecked") + @Override + public void cancel() { + mTerminated = true; + if (isStarted()) { + ArrayList tmpListeners = null; + if (mListeners != null) { + tmpListeners = (ArrayList) mListeners.clone(); + for (AnimatorListener listener : tmpListeners) { + listener.onAnimationCancel(this); + } + } + if (mDelayAnim != null && mDelayAnim.isRunning()) { + mDelayAnim.cancel(); + } else if (mSortedNodes.size() > 0) { + for (Node node : mSortedNodes) { + node.animation.cancel(); + } + } + if (tmpListeners != null) { + for (AnimatorListener listener : tmpListeners) { + listener.onAnimationEnd(this); + } + } + mStarted = false; + } + } + + @SuppressWarnings("unchecked") + @Override + public void end() { + mTerminated = true; + if (isStarted()) { + if (mSortedNodes.size() != mNodes.size()) { + // hasn't been started yet - sort the nodes now, then end them + sortNodes(); + for (Node node : mSortedNodes) { + if (mSetListener == null) { + mSetListener = new AnimatorSetListener(this); + } + node.animation.addListener(mSetListener); + } + } + if (mDelayAnim != null) { + mDelayAnim.cancel(); + } + if (mSortedNodes.size() > 0) { + for (Node node : mSortedNodes) { + node.animation.end(); + } + } + if (mListeners != null) { + ArrayList tmpListeners = (ArrayList) mListeners.clone(); + for (AnimatorListener listener : tmpListeners) { + listener.onAnimationEnd(this); + } + } + mStarted = false; + } + } + + @Override + public boolean isRunning() { + for (Node node : mNodes) { + if (node.animation.isRunning()) { + return true; + } + } + return false; + } + + @Override + public boolean isStarted() { + return mStarted; + } + + @Override + public long getStartDelay() { + return mStartDelay; + } + + @Override + public void setStartDelay(long startDelay) { + mStartDelay = startDelay; + } + + @Override + public long getDuration() { + return mDuration; + } + + @Override + public AnimatorSet10 setDuration(long duration) { + if (duration < 0) { + throw new IllegalArgumentException("duration must be a value of zero or greater"); + } + mDuration = duration; + return this; + } + + @Override + public void setupStartValues() { + for (Node node : mNodes) { + node.animation.setupStartValues(); + } + } + + @Override + public void setupEndValues() { + for (Node node : mNodes) { + node.animation.setupEndValues(); + } + } + + @Override + public void pause() { + boolean previouslyPaused = mPaused; + super.pause(); + if (!previouslyPaused && mPaused) { + if (mDelayAnim != null) { + mDelayAnim.pause(); + } else { + for (Node node : mNodes) { + node.animation.pause(); + } + } + } + } + + @Override + public void resume() { + boolean previouslyPaused = mPaused; + super.resume(); + if (previouslyPaused && !mPaused) { + if (mDelayAnim != null) { + mDelayAnim.resume(); + } else { + for (Node node : mNodes) { + node.animation.resume(); + } + } + } + } + + @SuppressWarnings("unchecked") + @Override + public void start() { + mTerminated = false; + mStarted = true; + mPaused = false; + + if (mDuration >= 0) { + for (Node node : mNodes) { + node.animation.setDuration(mDuration); + } + } + if (mInterpolator != null) { + for (Node node : mNodes) { + node.animation.setInterpolator(mInterpolator); + } + } + + sortNodes(); + + int numSortedNodes = mSortedNodes.size(); + for (Node node : mSortedNodes) { + ArrayList oldListeners = node.animation.getListeners(); + if (oldListeners != null && oldListeners.size() > 0) { + final ArrayList clonedListeners = new + ArrayList(oldListeners); + + for (AnimatorListener listener : clonedListeners) { + if (listener instanceof DependencyListener || + listener instanceof AnimatorSetListener) { + node.animation.removeListener(listener); + } + } + } + } + + final ArrayList nodesToStart = new ArrayList(); + for (Node node : mSortedNodes) { + if (mSetListener == null) { + mSetListener = new AnimatorSetListener(this); + } + if (node.dependencies == null || node.dependencies.size() == 0) { + nodesToStart.add(node); + } else { + int numDependencies = node.dependencies.size(); + for (int j = 0; j < numDependencies; ++j) { + Dependency dependency = node.dependencies.get(j); + dependency.node.animation.addListener( + new DependencyListener(this, node, dependency.rule)); + } + node.tmpDependencies = (ArrayList) node.dependencies.clone(); + } + node.animation.addListener(mSetListener); + } + + if (mStartDelay <= 0) { + for (Node node : nodesToStart) { + node.animation.start(); + mPlayingSet.add(node.animation); + } + } else { + mDelayAnim = ValueAnimator.ofFloat(0f, 1f); + mDelayAnim.setDuration(mStartDelay); + mDelayAnim.addListener(new AnimatorListenerAdapter10() { + boolean canceled = false; + public void onAnimationCancel(Animator10 anim) { + canceled = true; + } + public void onAnimationEnd(Animator10 anim) { + if (!canceled) { + int numNodes = nodesToStart.size(); + for (Node node : nodesToStart) { + node.animation.start(); + mPlayingSet.add(node.animation); + } + } + mDelayAnim = null; + } + }); + mDelayAnim.start(); + } + if (mListeners != null) { + ArrayList tmpListeners = + (ArrayList) mListeners.clone(); + int numListeners = tmpListeners.size(); + for (AnimatorListener tmpListener : tmpListeners) { + tmpListener.onAnimationStart(this); + } + } + if (mNodes.size() == 0 && mStartDelay == 0) { + mStarted = false; + if (mListeners != null) { + ArrayList tmpListeners = + (ArrayList) mListeners.clone(); + int numListeners = tmpListeners.size(); + for (AnimatorListener tmpListener : tmpListeners) { + tmpListener.onAnimationEnd(this); + } + } + } + } + + @Override + public AnimatorSet10 clone() { + final AnimatorSet10 anim = (AnimatorSet10) super.clone(); + + anim.mNeedsSort = true; + anim.mTerminated = false; + anim.mStarted = false; + anim.mPlayingSet = new ArrayList(); + anim.mNodeMap = new HashMap(); + anim.mNodes = new ArrayList(); + anim.mSortedNodes = new ArrayList(); + + HashMap nodeCloneMap = new HashMap(); + for (Node node : mNodes) { + Node nodeClone = node.clone(); + nodeCloneMap.put(node, nodeClone); + anim.mNodes.add(nodeClone); + anim.mNodeMap.put(nodeClone.animation, nodeClone); + nodeClone.dependencies = null; + nodeClone.tmpDependencies = null; + nodeClone.nodeDependents = null; + nodeClone.nodeDependencies = null; + ArrayList cloneListeners = nodeClone.animation.getListeners(); + if (cloneListeners != null) { + ArrayList listenersToRemove = null; + for (AnimatorListener listener : cloneListeners) { + if (listener instanceof AnimatorSetListener) { + if (listenersToRemove == null) { + listenersToRemove = new ArrayList(); + } + listenersToRemove.add(listener); + } + } + if (listenersToRemove != null) { + for (AnimatorListener listener : listenersToRemove) { + cloneListeners.remove(listener); + } + } + } + } + for (Node node : mNodes) { + Node nodeClone = nodeCloneMap.get(node); + if (node.dependencies != null) { + for (Dependency dependency : node.dependencies) { + Node clonedDependencyNode = nodeCloneMap.get(dependency.node); + Dependency cloneDependency = new Dependency(clonedDependencyNode, dependency.rule); + nodeClone.addDependency(cloneDependency); + } + } + } + return anim; + } + + private static class DependencyListener implements AnimatorListener { + + private AnimatorSet10 mAnimatorSet; + private Node mNode; + private int mRule; + + public DependencyListener(AnimatorSet10 animatorSet, Node node, int rule) { + this.mAnimatorSet = animatorSet; + this.mNode = node; + this.mRule = rule; + } + + public void onAnimationCancel(Animator10 animation) { + + } + + public void onAnimationEnd(Animator10 animation) { + if (mRule == Dependency.AFTER) { + startIfReady(animation); + } + } + + public void onAnimationRepeat(Animator10 animation) { + + } + + public void onAnimationStart(Animator10 animation) { + if (mRule == Dependency.WITH) { + startIfReady(animation); + } + } + + private void startIfReady(Animator10 dependencyAnimation) { + if (mAnimatorSet.mTerminated) { + return; + } + Dependency dependencyToRemove = null; + int numDependencies = mNode.tmpDependencies.size(); + for (int i = 0; i < numDependencies; ++i) { + Dependency dependency = mNode.tmpDependencies.get(i); + if (dependency.rule == mRule && dependency.node.animation == dependencyAnimation) { + dependencyToRemove = dependency; + dependencyAnimation.removeListener(this); + break; + } + } + mNode.tmpDependencies.remove(dependencyToRemove); + if (mNode.tmpDependencies.size() == 0) { + mNode.animation.start(); + mAnimatorSet.mPlayingSet.add(mNode.animation); + } + } + } + + private class AnimatorSetListener implements AnimatorListener { + + private AnimatorSet10 mAnimatorSet; + + AnimatorSetListener(AnimatorSet10 animatorSet) { + mAnimatorSet = animatorSet; + } + + public void onAnimationCancel(Animator10 animation) { + if (!mTerminated) { + if (mPlayingSet.size() == 0) { + if (mListeners != null) { + int numListeners = mListeners.size(); + for (AnimatorListener mListener : mListeners) { + mListener.onAnimationCancel(mAnimatorSet); + } + } + } + } + } + + @SuppressWarnings("unchecked") + public void onAnimationEnd(Animator10 animation) { + animation.removeListener(this); + mPlayingSet.remove(animation); + Node animNode = mAnimatorSet.mNodeMap.get(animation); + animNode.done = true; + if (!mTerminated) { + ArrayList sortedNodes = mAnimatorSet.mSortedNodes; + boolean allDone = true; + int numSortedNodes = sortedNodes.size(); + for (Node sortedNode : sortedNodes) { + if (!sortedNode.done) { + allDone = false; + break; + } + } + if (allDone) { + if (mListeners != null) { + ArrayList tmpListeners = + (ArrayList) mListeners.clone(); + int numListeners = tmpListeners.size(); + for (AnimatorListener tmpListener : tmpListeners) { + tmpListener.onAnimationEnd(mAnimatorSet); + } + } + mAnimatorSet.mStarted = false; + mAnimatorSet.mPaused = false; + } + } + } + + public void onAnimationRepeat(Animator10 animation) { + + } + + public void onAnimationStart(Animator10 animation) { + + } + } + + private void sortNodes() { + if (mNeedsSort) { + mSortedNodes.clear(); + ArrayList roots = new ArrayList(); + int numNodes = mNodes.size(); + for (Node node : mNodes) { + if (node.dependencies == null || node.dependencies.size() == 0) { + roots.add(node); + } + } + ArrayList tmpRoots = new ArrayList(); + while (roots.size() > 0) { + int numRoots = roots.size(); + for (Node root : roots) { + mSortedNodes.add(root); + if (root.nodeDependents != null) { + int numDependents = root.nodeDependents.size(); + for (int j = 0; j < numDependents; ++j) { + Node node = root.nodeDependents.get(j); + node.nodeDependencies.remove(root); + if (node.nodeDependencies.size() == 0) { + tmpRoots.add(node); + } + } + } + } + roots.clear(); + roots.addAll(tmpRoots); + tmpRoots.clear(); + } + mNeedsSort = false; + if (mSortedNodes.size() != mNodes.size()) { + throw new IllegalStateException("Circular dependencies cannot exist in AnimatorSet"); + } + } else { + int numNodes = mNodes.size(); + for (Node node : mNodes) { + if (node.dependencies != null && node.dependencies.size() > 0) { + int numDependencies = node.dependencies.size(); + for (int j = 0; j < numDependencies; ++j) { + Dependency dependency = node.dependencies.get(j); + if (node.nodeDependencies == null) { + node.nodeDependencies = new ArrayList(); + } + if (!node.nodeDependencies.contains(dependency.node)) { + node.nodeDependencies.add(dependency.node); + } + } + } + node.done = false; + } + } + } + + private static class Dependency { + static final int WITH = 0; + static final int AFTER = 1; + public Node node; + public int rule; + + public Dependency(Node node, int rule) { + this.node = node; + this.rule = rule; + } + } + + private static class Node implements Cloneable { + public Animator10 animation; + public ArrayList dependencies = null; + public ArrayList tmpDependencies = null; + public ArrayList nodeDependencies = null; + public ArrayList nodeDependents = null; + public boolean done = false; + + public Node(Animator10 animation) { + this.animation = animation; + } + + public void addDependency(Dependency dependency) { + if (dependencies == null) { + dependencies = new ArrayList(); + nodeDependencies = new ArrayList(); + } + dependencies.add(dependency); + if (!nodeDependencies.contains(dependency.node)) { + nodeDependencies.add(dependency.node); + } + Node dependencyNode = dependency.node; + if (dependencyNode.nodeDependents == null) { + dependencyNode.nodeDependents = new ArrayList(); + } + dependencyNode.nodeDependents.add(this); + } + + @Override + public Node clone() { + try { + Node node = (Node) super.clone(); + node.animation = animation.clone(); + return node; + } catch (CloneNotSupportedException e) { + throw new AssertionError(); + } + } + } + + public class Builder { + + private Node mCurrentNode; + + Builder(Animator10 anim) { + mCurrentNode = mNodeMap.get(anim); + if (mCurrentNode == null) { + mCurrentNode = new Node(anim); + mNodeMap.put(anim, mCurrentNode); + mNodes.add(mCurrentNode); + } + } + + public Builder with(Animator10 anim) { + Node node = mNodeMap.get(anim); + if (node == null) { + node = new Node(anim); + mNodeMap.put(anim, node); + mNodes.add(node); + } + Dependency dependency = new Dependency(mCurrentNode, Dependency.WITH); + node.addDependency(dependency); + return this; + } + + public Builder before(Animator10 anim) { + Node node = mNodeMap.get(anim); + if (node == null) { + node = new Node(anim); + mNodeMap.put(anim, node); + mNodes.add(node); + } + Dependency dependency = new Dependency(mCurrentNode, Dependency.AFTER); + node.addDependency(dependency); + return this; + } + + public Builder after(Animator10 anim) { + Node node = mNodeMap.get(anim); + if (node == null) { + node = new Node(anim); + mNodeMap.put(anim, node); + mNodes.add(node); + } + Dependency dependency = new Dependency(node, Dependency.AFTER); + mCurrentNode.addDependency(dependency); + return this; + } + + public Builder after(long delay) { + ValueAnimator anim = ValueAnimator.ofFloat(0f, 1f); + anim.setDuration(delay); + after(anim); + return this; + } + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Animation/FloatEvaluator.java b/TMessagesProj/src/main/java/org/telegram/ui/Animation/FloatEvaluator.java new file mode 100644 index 000000000..2591ebf74 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Animation/FloatEvaluator.java @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * 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. + */ + +package org.telegram.ui.Animation; + +public class FloatEvaluator implements TypeEvaluator { + public Float evaluate(float fraction, Number startValue, Number endValue) { + float startFloat = startValue.floatValue(); + return startFloat + fraction * (endValue.floatValue() - startFloat); + } +} \ No newline at end of file diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Animation/FloatKeyframeSet.java b/TMessagesProj/src/main/java/org/telegram/ui/Animation/FloatKeyframeSet.java new file mode 100644 index 000000000..52d0da5fe --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Animation/FloatKeyframeSet.java @@ -0,0 +1,114 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * 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. + */ + +package org.telegram.ui.Animation; + +import android.view.animation.Interpolator; + +import org.telegram.ui.Animation.Keyframe.FloatKeyframe; + +import java.util.ArrayList; + +class FloatKeyframeSet extends KeyframeSet { + private float firstValue; + private float lastValue; + private float deltaValue; + private boolean firstTime = true; + + public FloatKeyframeSet(FloatKeyframe... keyframes) { + super(keyframes); + } + + @Override + public Object getValue(float fraction) { + return getFloatValue(fraction); + } + + @Override + public FloatKeyframeSet clone() { + ArrayList keyframes = mKeyframes; + int numKeyframes = mKeyframes.size(); + FloatKeyframe[] newKeyframes = new FloatKeyframe[numKeyframes]; + for (int i = 0; i < numKeyframes; ++i) { + newKeyframes[i] = (FloatKeyframe) keyframes.get(i).clone(); + } + return new FloatKeyframeSet(newKeyframes); + } + + @SuppressWarnings("unchecked") + public float getFloatValue(float fraction) { + if (mNumKeyframes == 2) { + if (firstTime) { + firstTime = false; + firstValue = ((FloatKeyframe) mKeyframes.get(0)).getFloatValue(); + lastValue = ((FloatKeyframe) mKeyframes.get(1)).getFloatValue(); + deltaValue = lastValue - firstValue; + } + if (mInterpolator != null) { + fraction = mInterpolator.getInterpolation(fraction); + } + if (mEvaluator == null) { + return firstValue + fraction * deltaValue; + } else { + return ((Number)mEvaluator.evaluate(fraction, firstValue, lastValue)).floatValue(); + } + } + if (fraction <= 0f) { + final FloatKeyframe prevKeyframe = (FloatKeyframe) mKeyframes.get(0); + final FloatKeyframe nextKeyframe = (FloatKeyframe) mKeyframes.get(1); + float prevValue = prevKeyframe.getFloatValue(); + float nextValue = nextKeyframe.getFloatValue(); + float prevFraction = prevKeyframe.getFraction(); + float nextFraction = nextKeyframe.getFraction(); + final Interpolator interpolator = nextKeyframe.getInterpolator(); + if (interpolator != null) { + fraction = interpolator.getInterpolation(fraction); + } + float intervalFraction = (fraction - prevFraction) / (nextFraction - prevFraction); + return mEvaluator == null ? prevValue + intervalFraction * (nextValue - prevValue) : ((Number)mEvaluator.evaluate(intervalFraction, prevValue, nextValue)).floatValue(); + } else if (fraction >= 1f) { + final FloatKeyframe prevKeyframe = (FloatKeyframe) mKeyframes.get(mNumKeyframes - 2); + final FloatKeyframe nextKeyframe = (FloatKeyframe) mKeyframes.get(mNumKeyframes - 1); + float prevValue = prevKeyframe.getFloatValue(); + float nextValue = nextKeyframe.getFloatValue(); + float prevFraction = prevKeyframe.getFraction(); + float nextFraction = nextKeyframe.getFraction(); + final Interpolator interpolator = nextKeyframe.getInterpolator(); + if (interpolator != null) { + fraction = interpolator.getInterpolation(fraction); + } + float intervalFraction = (fraction - prevFraction) / (nextFraction - prevFraction); + return mEvaluator == null ? prevValue + intervalFraction * (nextValue - prevValue) : ((Number)mEvaluator.evaluate(intervalFraction, prevValue, nextValue)).floatValue(); + } + FloatKeyframe prevKeyframe = (FloatKeyframe) mKeyframes.get(0); + for (int i = 1; i < mNumKeyframes; ++i) { + FloatKeyframe nextKeyframe = (FloatKeyframe) mKeyframes.get(i); + if (fraction < nextKeyframe.getFraction()) { + final Interpolator interpolator = nextKeyframe.getInterpolator(); + if (interpolator != null) { + fraction = interpolator.getInterpolation(fraction); + } + float intervalFraction = (fraction - prevKeyframe.getFraction()) / + (nextKeyframe.getFraction() - prevKeyframe.getFraction()); + float prevValue = prevKeyframe.getFloatValue(); + float nextValue = nextKeyframe.getFloatValue(); + return mEvaluator == null ? prevValue + intervalFraction * (nextValue - prevValue) : ((Number)mEvaluator.evaluate(intervalFraction, prevValue, nextValue)).floatValue(); + } + prevKeyframe = nextKeyframe; + } + return ((Number)mKeyframes.get(mNumKeyframes - 1).getValue()).floatValue(); + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Animation/FloatProperty.java b/TMessagesProj/src/main/java/org/telegram/ui/Animation/FloatProperty.java new file mode 100755 index 000000000..870f895c6 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Animation/FloatProperty.java @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * 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. + */ +package org.telegram.ui.Animation; + +public abstract class FloatProperty extends Property { + + public FloatProperty(String name) { + super(Float.class, name); + } + + public abstract void setValue(T object, float value); + + @Override + final public void set(T object, Float value) { + setValue(object, value.floatValue()); + } +} \ No newline at end of file diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Animation/IntEvaluator.java b/TMessagesProj/src/main/java/org/telegram/ui/Animation/IntEvaluator.java new file mode 100644 index 000000000..cd3a19ebe --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Animation/IntEvaluator.java @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * 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. + */ + +package org.telegram.ui.Animation; + +public class IntEvaluator implements TypeEvaluator { + public Integer evaluate(float fraction, Integer startValue, Integer endValue) { + int startInt = startValue; + return (int)(startInt + fraction * (endValue - startInt)); + } +} \ No newline at end of file diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Animation/IntKeyframeSet.java b/TMessagesProj/src/main/java/org/telegram/ui/Animation/IntKeyframeSet.java new file mode 100644 index 000000000..9d58863c8 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Animation/IntKeyframeSet.java @@ -0,0 +1,114 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * 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. + */ + +package org.telegram.ui.Animation; + +import android.view.animation.Interpolator; + +import org.telegram.ui.Animation.Keyframe.IntKeyframe; + +import java.util.ArrayList; + +class IntKeyframeSet extends KeyframeSet { + private int firstValue; + private int lastValue; + private int deltaValue; + private boolean firstTime = true; + + public IntKeyframeSet(IntKeyframe... keyframes) { + super(keyframes); + } + + @Override + public Object getValue(float fraction) { + return getIntValue(fraction); + } + + @Override + public IntKeyframeSet clone() { + ArrayList keyframes = mKeyframes; + int numKeyframes = mKeyframes.size(); + IntKeyframe[] newKeyframes = new IntKeyframe[numKeyframes]; + for (int i = 0; i < numKeyframes; ++i) { + newKeyframes[i] = (IntKeyframe) keyframes.get(i).clone(); + } + return new IntKeyframeSet(newKeyframes); + } + + @SuppressWarnings("unchecked") + public int getIntValue(float fraction) { + if (mNumKeyframes == 2) { + if (firstTime) { + firstTime = false; + firstValue = ((IntKeyframe) mKeyframes.get(0)).getIntValue(); + lastValue = ((IntKeyframe) mKeyframes.get(1)).getIntValue(); + deltaValue = lastValue - firstValue; + } + if (mInterpolator != null) { + fraction = mInterpolator.getInterpolation(fraction); + } + if (mEvaluator == null) { + return firstValue + (int)(fraction * deltaValue); + } else { + return ((Number)mEvaluator.evaluate(fraction, firstValue, lastValue)).intValue(); + } + } + if (fraction <= 0f) { + final IntKeyframe prevKeyframe = (IntKeyframe) mKeyframes.get(0); + final IntKeyframe nextKeyframe = (IntKeyframe) mKeyframes.get(1); + int prevValue = prevKeyframe.getIntValue(); + int nextValue = nextKeyframe.getIntValue(); + float prevFraction = prevKeyframe.getFraction(); + float nextFraction = nextKeyframe.getFraction(); + final Interpolator interpolator = nextKeyframe.getInterpolator(); + if (interpolator != null) { + fraction = interpolator.getInterpolation(fraction); + } + float intervalFraction = (fraction - prevFraction) / (nextFraction - prevFraction); + return mEvaluator == null ? prevValue + (int)(intervalFraction * (nextValue - prevValue)) : ((Number)mEvaluator.evaluate(intervalFraction, prevValue, nextValue)).intValue(); + } else if (fraction >= 1f) { + final IntKeyframe prevKeyframe = (IntKeyframe) mKeyframes.get(mNumKeyframes - 2); + final IntKeyframe nextKeyframe = (IntKeyframe) mKeyframes.get(mNumKeyframes - 1); + int prevValue = prevKeyframe.getIntValue(); + int nextValue = nextKeyframe.getIntValue(); + float prevFraction = prevKeyframe.getFraction(); + float nextFraction = nextKeyframe.getFraction(); + final Interpolator interpolator = nextKeyframe.getInterpolator(); + if (interpolator != null) { + fraction = interpolator.getInterpolation(fraction); + } + float intervalFraction = (fraction - prevFraction) / (nextFraction - prevFraction); + return mEvaluator == null ? prevValue + (int)(intervalFraction * (nextValue - prevValue)) : ((Number)mEvaluator.evaluate(intervalFraction, prevValue, nextValue)).intValue(); + } + IntKeyframe prevKeyframe = (IntKeyframe) mKeyframes.get(0); + for (int i = 1; i < mNumKeyframes; ++i) { + IntKeyframe nextKeyframe = (IntKeyframe) mKeyframes.get(i); + if (fraction < nextKeyframe.getFraction()) { + final Interpolator interpolator = nextKeyframe.getInterpolator(); + if (interpolator != null) { + fraction = interpolator.getInterpolation(fraction); + } + float intervalFraction = (fraction - prevKeyframe.getFraction()) / (nextKeyframe.getFraction() - prevKeyframe.getFraction()); + int prevValue = prevKeyframe.getIntValue(); + int nextValue = nextKeyframe.getIntValue(); + return mEvaluator == null ? prevValue + (int)(intervalFraction * (nextValue - prevValue)) : ((Number)mEvaluator.evaluate(intervalFraction, prevValue, nextValue)).intValue(); + } + prevKeyframe = nextKeyframe; + } + return ((Number)mKeyframes.get(mNumKeyframes - 1).getValue()).intValue(); + } +} + diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Animation/IntProperty.java b/TMessagesProj/src/main/java/org/telegram/ui/Animation/IntProperty.java new file mode 100755 index 000000000..07e72511a --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Animation/IntProperty.java @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * 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. + */ +package org.telegram.ui.Animation; + +public abstract class IntProperty extends Property { + + public IntProperty(String name) { + super(Integer.class, name); + } + + public abstract void setValue(T object, int value); + + @Override + final public void set(T object, Integer value) { + setValue(object, value.intValue()); + } +} \ No newline at end of file diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Animation/Keyframe.java b/TMessagesProj/src/main/java/org/telegram/ui/Animation/Keyframe.java new file mode 100644 index 000000000..cb71460cd --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Animation/Keyframe.java @@ -0,0 +1,187 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * 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. + */ + +package org.telegram.ui.Animation; + +import android.view.animation.Interpolator; + +public abstract class Keyframe implements Cloneable { + + float mFraction; + Class mValueType; + private Interpolator mInterpolator = null; + boolean mHasValue = false; + + public static Keyframe ofInt(float fraction, int value) { + return new IntKeyframe(fraction, value); + } + + public static Keyframe ofInt(float fraction) { + return new IntKeyframe(fraction); + } + + public static Keyframe ofFloat(float fraction, float value) { + return new FloatKeyframe(fraction, value); + } + + public static Keyframe ofFloat(float fraction) { + return new FloatKeyframe(fraction); + } + + public static Keyframe ofObject(float fraction, Object value) { + return new ObjectKeyframe(fraction, value); + } + + public static Keyframe ofObject(float fraction) { + return new ObjectKeyframe(fraction, null); + } + + public boolean hasValue() { + return mHasValue; + } + + public abstract Object getValue(); + public abstract void setValue(Object value); + + public float getFraction() { + return mFraction; + } + + public void setFraction(float fraction) { + mFraction = fraction; + } + + public Interpolator getInterpolator() { + return mInterpolator; + } + + public void setInterpolator(Interpolator interpolator) { + mInterpolator = interpolator; + } + + public Class getType() { + return mValueType; + } + + @Override + public abstract Keyframe clone(); + + static class ObjectKeyframe extends Keyframe { + + Object mValue; + + ObjectKeyframe(float fraction, Object value) { + mFraction = fraction; + mValue = value; + mHasValue = (value != null); + mValueType = mHasValue ? value.getClass() : Object.class; + } + + public Object getValue() { + return mValue; + } + + public void setValue(Object value) { + mValue = value; + mHasValue = (value != null); + } + + @Override + public ObjectKeyframe clone() { + ObjectKeyframe kfClone = new ObjectKeyframe(getFraction(), mHasValue ? mValue : null); + kfClone.setInterpolator(getInterpolator()); + return kfClone; + } + } + + static class IntKeyframe extends Keyframe { + + int mValue; + + IntKeyframe(float fraction, int value) { + mFraction = fraction; + mValue = value; + mValueType = int.class; + mHasValue = true; + } + + IntKeyframe(float fraction) { + mFraction = fraction; + mValueType = int.class; + } + + public int getIntValue() { + return mValue; + } + + public Object getValue() { + return mValue; + } + + public void setValue(Object value) { + if (value != null && value.getClass() == Integer.class) { + mValue = (Integer) value; + mHasValue = true; + } + } + + @Override + public IntKeyframe clone() { + IntKeyframe kfClone = mHasValue ? new IntKeyframe(getFraction(), mValue) : new IntKeyframe(getFraction()); + kfClone.setInterpolator(getInterpolator()); + return kfClone; + } + } + + static class FloatKeyframe extends Keyframe { + + float mValue; + + FloatKeyframe(float fraction, float value) { + mFraction = fraction; + mValue = value; + mValueType = float.class; + mHasValue = true; + } + + FloatKeyframe(float fraction) { + mFraction = fraction; + mValueType = float.class; + } + + public float getFloatValue() { + return mValue; + } + + public Object getValue() { + return mValue; + } + + public void setValue(Object value) { + if (value != null && value.getClass() == Float.class) { + mValue = (Float) value; + mHasValue = true; + } + } + + @Override + public FloatKeyframe clone() { + FloatKeyframe kfClone = mHasValue ? new FloatKeyframe(getFraction(), mValue) : new FloatKeyframe(getFraction()); + kfClone.setInterpolator(getInterpolator()); + return kfClone; + } + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Animation/KeyframeSet.java b/TMessagesProj/src/main/java/org/telegram/ui/Animation/KeyframeSet.java new file mode 100644 index 000000000..98a34ff67 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Animation/KeyframeSet.java @@ -0,0 +1,200 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * 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. + */ + +package org.telegram.ui.Animation; + +import java.util.ArrayList; +import java.util.Arrays; +import android.util.Log; +import android.view.animation.Interpolator; + +import org.telegram.ui.Animation.Keyframe.IntKeyframe; +import org.telegram.ui.Animation.Keyframe.FloatKeyframe; +import org.telegram.ui.Animation.Keyframe.ObjectKeyframe; + +class KeyframeSet { + + int mNumKeyframes; + + Keyframe mFirstKeyframe; + Keyframe mLastKeyframe; + Interpolator mInterpolator; + ArrayList mKeyframes; + TypeEvaluator mEvaluator; + + public KeyframeSet(Keyframe... keyframes) { + mNumKeyframes = keyframes.length; + mKeyframes = new ArrayList(); + mKeyframes.addAll(Arrays.asList(keyframes)); + mFirstKeyframe = mKeyframes.get(0); + mLastKeyframe = mKeyframes.get(mNumKeyframes - 1); + mInterpolator = mLastKeyframe.getInterpolator(); + } + + public static KeyframeSet ofInt(int... values) { + int numKeyframes = values.length; + IntKeyframe keyframes[] = new IntKeyframe[Math.max(numKeyframes,2)]; + if (numKeyframes == 1) { + keyframes[0] = (IntKeyframe) Keyframe.ofInt(0f); + keyframes[1] = (IntKeyframe) Keyframe.ofInt(1f, values[0]); + } else { + keyframes[0] = (IntKeyframe) Keyframe.ofInt(0f, values[0]); + for (int i = 1; i < numKeyframes; ++i) { + keyframes[i] = (IntKeyframe) Keyframe.ofInt((float) i / (numKeyframes - 1), values[i]); + } + } + return new IntKeyframeSet(keyframes); + } + + public static KeyframeSet ofFloat(float... values) { + boolean badValue = false; + int numKeyframes = values.length; + FloatKeyframe keyframes[] = new FloatKeyframe[Math.max(numKeyframes,2)]; + if (numKeyframes == 1) { + keyframes[0] = (FloatKeyframe) Keyframe.ofFloat(0f); + keyframes[1] = (FloatKeyframe) Keyframe.ofFloat(1f, values[0]); + if (Float.isNaN(values[0])) { + badValue = true; + } + } else { + keyframes[0] = (FloatKeyframe) Keyframe.ofFloat(0f, values[0]); + for (int i = 1; i < numKeyframes; ++i) { + keyframes[i] = (FloatKeyframe) Keyframe.ofFloat((float) i / (numKeyframes - 1), values[i]); + if (Float.isNaN(values[i])) { + badValue = true; + } + } + } + if (badValue) { + Log.w("Animator", "Bad value (NaN) in float animator"); + } + return new FloatKeyframeSet(keyframes); + } + + public static KeyframeSet ofKeyframe(Keyframe... keyframes) { + int numKeyframes = keyframes.length; + boolean hasFloat = false; + boolean hasInt = false; + boolean hasOther = false; + for (Keyframe keyframe : keyframes) { + if (keyframe instanceof FloatKeyframe) { + hasFloat = true; + } else if (keyframe instanceof IntKeyframe) { + hasInt = true; + } else { + hasOther = true; + } + } + if (hasFloat && !hasInt && !hasOther) { + FloatKeyframe floatKeyframes[] = new FloatKeyframe[numKeyframes]; + for (int i = 0; i < numKeyframes; ++i) { + floatKeyframes[i] = (FloatKeyframe) keyframes[i]; + } + return new FloatKeyframeSet(floatKeyframes); + } else if (hasInt && !hasFloat && !hasOther) { + IntKeyframe intKeyframes[] = new IntKeyframe[numKeyframes]; + for (int i = 0; i < numKeyframes; ++i) { + intKeyframes[i] = (IntKeyframe) keyframes[i]; + } + return new IntKeyframeSet(intKeyframes); + } else { + return new KeyframeSet(keyframes); + } + } + + public static KeyframeSet ofObject(Object... values) { + int numKeyframes = values.length; + ObjectKeyframe keyframes[] = new ObjectKeyframe[Math.max(numKeyframes,2)]; + if (numKeyframes == 1) { + keyframes[0] = (ObjectKeyframe) Keyframe.ofObject(0f); + keyframes[1] = (ObjectKeyframe) Keyframe.ofObject(1f, values[0]); + } else { + keyframes[0] = (ObjectKeyframe) Keyframe.ofObject(0f, values[0]); + for (int i = 1; i < numKeyframes; ++i) { + keyframes[i] = (ObjectKeyframe) Keyframe.ofObject((float) i / (numKeyframes - 1), values[i]); + } + } + return new KeyframeSet(keyframes); + } + + public void setEvaluator(TypeEvaluator evaluator) { + mEvaluator = evaluator; + } + + @Override + public KeyframeSet clone() { + ArrayList keyframes = mKeyframes; + int numKeyframes = mKeyframes.size(); + Keyframe[] newKeyframes = new Keyframe[numKeyframes]; + for (int i = 0; i < numKeyframes; ++i) { + newKeyframes[i] = keyframes.get(i).clone(); + } + return new KeyframeSet(newKeyframes); + } + + @SuppressWarnings("unchecked") + public Object getValue(float fraction) { + if (mNumKeyframes == 2) { + if (mInterpolator != null) { + fraction = mInterpolator.getInterpolation(fraction); + } + return mEvaluator.evaluate(fraction, mFirstKeyframe.getValue(), mLastKeyframe.getValue()); + } + if (fraction <= 0f) { + final Keyframe nextKeyframe = mKeyframes.get(1); + final Interpolator interpolator = nextKeyframe.getInterpolator(); + if (interpolator != null) { + fraction = interpolator.getInterpolation(fraction); + } + final float prevFraction = mFirstKeyframe.getFraction(); + float intervalFraction = (fraction - prevFraction) / (nextKeyframe.getFraction() - prevFraction); + return mEvaluator.evaluate(intervalFraction, mFirstKeyframe.getValue(), nextKeyframe.getValue()); + } else if (fraction >= 1f) { + final Keyframe prevKeyframe = mKeyframes.get(mNumKeyframes - 2); + final Interpolator interpolator = mLastKeyframe.getInterpolator(); + if (interpolator != null) { + fraction = interpolator.getInterpolation(fraction); + } + final float prevFraction = prevKeyframe.getFraction(); + float intervalFraction = (fraction - prevFraction) / (mLastKeyframe.getFraction() - prevFraction); + return mEvaluator.evaluate(intervalFraction, prevKeyframe.getValue(), mLastKeyframe.getValue()); + } + Keyframe prevKeyframe = mFirstKeyframe; + for (int i = 1; i < mNumKeyframes; ++i) { + Keyframe nextKeyframe = mKeyframes.get(i); + if (fraction < nextKeyframe.getFraction()) { + final Interpolator interpolator = nextKeyframe.getInterpolator(); + if (interpolator != null) { + fraction = interpolator.getInterpolation(fraction); + } + final float prevFraction = prevKeyframe.getFraction(); + float intervalFraction = (fraction - prevFraction) / (nextKeyframe.getFraction() - prevFraction); + return mEvaluator.evaluate(intervalFraction, prevKeyframe.getValue(), nextKeyframe.getValue()); + } + prevKeyframe = nextKeyframe; + } + return mLastKeyframe.getValue(); + } + + @Override + public String toString() { + String returnVal = " "; + for (int i = 0; i < mNumKeyframes; ++i) { + returnVal += mKeyframes.get(i).getValue() + " "; + } + return returnVal; + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Animation/NoSuchPropertyException.java b/TMessagesProj/src/main/java/org/telegram/ui/Animation/NoSuchPropertyException.java new file mode 100755 index 000000000..a3c59a4f4 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Animation/NoSuchPropertyException.java @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * 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. + */ +package org.telegram.ui.Animation; + +public class NoSuchPropertyException extends RuntimeException { + + public NoSuchPropertyException(String s) { + super(s); + } + +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Animation/ObjectAnimator10.java b/TMessagesProj/src/main/java/org/telegram/ui/Animation/ObjectAnimator10.java new file mode 100644 index 000000000..6b97065ba --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Animation/ObjectAnimator10.java @@ -0,0 +1,488 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * 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. + */ + +package org.telegram.ui.Animation; + +import android.view.View; + +import java.util.HashMap; + +public final class ObjectAnimator10 extends ValueAnimator { + + private static final HashMap PROXY_PROPERTIES = new HashMap(); + + static { + Property ALPHA = new FloatProperty("alpha") { + @Override + public void setValue(View object, float value) { + View10.wrap(object).setAlpha(value); + } + + @Override + public Float get(View object) { + return View10.wrap(object).getAlpha(); + } + }; + + Property PIVOT_X = new FloatProperty("pivotX") { + @Override + public void setValue(View object, float value) { + View10.wrap(object).setPivotX(value); + } + + @Override + public Float get(View object) { + return View10.wrap(object).getPivotX(); + } + }; + + Property PIVOT_Y = new FloatProperty("pivotY") { + @Override + public void setValue(View object, float value) { + View10.wrap(object).setPivotY(value); + } + + @Override + public Float get(View object) { + return View10.wrap(object).getPivotY(); + } + }; + + Property TRANSLATION_X = new FloatProperty("translationX") { + @Override + public void setValue(View object, float value) { + View10.wrap(object).setTranslationX(value); + } + + @Override + public Float get(View object) { + return View10.wrap(object).getTranslationX(); + } + }; + + Property TRANSLATION_Y = new FloatProperty("translationY") { + @Override + public void setValue(View object, float value) { + View10.wrap(object).setTranslationY(value); + } + + @Override + public Float get(View object) { + return View10.wrap(object).getTranslationY(); + } + }; + + Property ROTATION = new FloatProperty("rotation") { + @Override + public void setValue(View object, float value) { + View10.wrap(object).setRotation(value); + } + + @Override + public Float get(View object) { + return View10.wrap(object).getRotation(); + } + }; + + Property ROTATION_X = new FloatProperty("rotationX") { + @Override + public void setValue(View object, float value) { + View10.wrap(object).setRotationX(value); + } + + @Override + public Float get(View object) { + return View10.wrap(object).getRotationX(); + } + }; + + Property ROTATION_Y = new FloatProperty("rotationY") { + @Override + public void setValue(View object, float value) { + View10.wrap(object).setRotationY(value); + } + + @Override + public Float get(View object) { + return View10.wrap(object).getRotationY(); + } + }; + + Property SCALE_X = new FloatProperty("scaleX") { + @Override + public void setValue(View object, float value) { + View10.wrap(object).setScaleX(value); + } + + @Override + public Float get(View object) { + return View10.wrap(object).getScaleX(); + } + }; + + Property SCALE_Y = new FloatProperty("scaleY") { + @Override + public void setValue(View object, float value) { + View10.wrap(object).setScaleY(value); + } + + @Override + public Float get(View object) { + return View10.wrap(object).getScaleY(); + } + }; + + Property SCROLL_X = new IntProperty("scrollX") { + @Override + public void setValue(View object, int value) { + View10.wrap(object).setScrollX(value); + } + + @Override + public Integer get(View object) { + return View10.wrap(object).getScrollX(); + } + }; + + Property SCROLL_Y = new IntProperty("scrollY") { + @Override + public void setValue(View object, int value) { + View10.wrap(object).setScrollY(value); + } + + @Override + public Integer get(View object) { + return View10.wrap(object).getScrollY(); + } + }; + + Property X = new FloatProperty("x") { + @Override + public void setValue(View object, float value) { + View10.wrap(object).setX(value); + } + + @Override + public Float get(View object) { + return View10.wrap(object).getX(); + } + }; + + Property Y = new FloatProperty("y") { + @Override + public void setValue(View object, float value) { + View10.wrap(object).setY(value); + } + + @Override + public Float get(View object) { + return View10.wrap(object).getY(); + } + }; + + PROXY_PROPERTIES.put("alpha", ALPHA); + PROXY_PROPERTIES.put("pivotX", PIVOT_X); + PROXY_PROPERTIES.put("pivotY", PIVOT_Y); + PROXY_PROPERTIES.put("translationX", TRANSLATION_X); + PROXY_PROPERTIES.put("translationY", TRANSLATION_Y); + PROXY_PROPERTIES.put("rotation", ROTATION); + PROXY_PROPERTIES.put("rotationX", ROTATION_X); + PROXY_PROPERTIES.put("rotationY", ROTATION_Y); + PROXY_PROPERTIES.put("scaleX", SCALE_X); + PROXY_PROPERTIES.put("scaleY", SCALE_Y); + PROXY_PROPERTIES.put("scrollX", SCROLL_X); + PROXY_PROPERTIES.put("scrollY", SCROLL_Y); + PROXY_PROPERTIES.put("x", X); + PROXY_PROPERTIES.put("y", Y); + } + + private Object mTarget; + private String mPropertyName; + private Property mProperty; + private boolean mAutoCancel = false; + + public void setPropertyName(String propertyName) { + if (mValues != null) { + PropertyValuesHolder valuesHolder = mValues[0]; + String oldName = valuesHolder.getPropertyName(); + valuesHolder.setPropertyName(propertyName); + mValuesMap.remove(oldName); + mValuesMap.put(propertyName, valuesHolder); + } + mPropertyName = propertyName; + mInitialized = false; + } + + public void setProperty(Property property) { + if (mValues != null) { + PropertyValuesHolder valuesHolder = mValues[0]; + String oldName = valuesHolder.getPropertyName(); + valuesHolder.setProperty(property); + mValuesMap.remove(oldName); + mValuesMap.put(mPropertyName, valuesHolder); + } + if (mProperty != null) { + mPropertyName = property.getName(); + } + mProperty = property; + mInitialized = false; + } + + public String getPropertyName() { + String propertyName = null; + if (mPropertyName != null) { + propertyName = mPropertyName; + } else if (mProperty != null) { + propertyName = mProperty.getName(); + } else if (mValues != null && mValues.length > 0) { + for (int i = 0; i < mValues.length; ++i) { + if (i == 0) { + propertyName = ""; + } else { + propertyName += ","; + } + propertyName += mValues[i].getPropertyName(); + } + } + return propertyName; + } + + public ObjectAnimator10() { + + } + + private ObjectAnimator10(Object target, String propertyName) { + mTarget = target; + setPropertyName(propertyName); + } + + private ObjectAnimator10(T target, Property property) { + mTarget = target; + setProperty(property); + } + + public static ObjectAnimator10 ofInt(Object target, String propertyName, int... values) { + ObjectAnimator10 anim = new ObjectAnimator10(target, propertyName); + anim.setIntValues(values); + return anim; + } + + public static ObjectAnimator10 ofInt(T target, Property property, int... values) { + ObjectAnimator10 anim = new ObjectAnimator10(target, property); + anim.setIntValues(values); + return anim; + } + + public static ObjectAnimator10 ofFloat(Object target, String propertyName, float... values) { + ObjectAnimator10 anim = new ObjectAnimator10(target, propertyName); + anim.setFloatValues(values); + return anim; + } + + public static ObjectAnimator10 ofFloat(T target, Property property, float... values) { + ObjectAnimator10 anim = new ObjectAnimator10(target, property); + anim.setFloatValues(values); + return anim; + } + + public static ObjectAnimator10 ofObject(Object target, String propertyName, TypeEvaluator evaluator, Object... values) { + ObjectAnimator10 anim = new ObjectAnimator10(target, propertyName); + anim.setObjectValues(values); + anim.setEvaluator(evaluator); + return anim; + } + + public static ObjectAnimator10 ofObject(T target, Property property, TypeEvaluator evaluator, V... values) { + ObjectAnimator10 anim = new ObjectAnimator10(target, property); + anim.setObjectValues(values); + anim.setEvaluator(evaluator); + return anim; + } + + public static ObjectAnimator10 ofPropertyValuesHolder(Object target, PropertyValuesHolder... values) { + ObjectAnimator10 anim = new ObjectAnimator10(); + anim.mTarget = target; + anim.setValues(values); + return anim; + } + + @SuppressWarnings("unchecked") + @Override + public void setIntValues(int... values) { + if (mValues == null || mValues.length == 0) { + if (mProperty != null) { + setValues(PropertyValuesHolder.ofInt(mProperty, values)); + } else { + setValues(PropertyValuesHolder.ofInt(mPropertyName, values)); + } + } else { + super.setIntValues(values); + } + } + + @SuppressWarnings("unchecked") + @Override + public void setFloatValues(float... values) { + if (mValues == null || mValues.length == 0) { + if (mProperty != null) { + setValues(PropertyValuesHolder.ofFloat(mProperty, values)); + } else { + setValues(PropertyValuesHolder.ofFloat(mPropertyName, values)); + } + } else { + super.setFloatValues(values); + } + } + + @Override + public void setObjectValues(Object... values) { + if (mValues == null || mValues.length == 0) { + if (mProperty != null) { + setValues(PropertyValuesHolder.ofObject(mProperty, null, values)); + } else { + setValues(PropertyValuesHolder.ofObject(mPropertyName, null, values)); + } + } else { + super.setObjectValues(values); + } + } + + public void setAutoCancel(boolean cancel) { + mAutoCancel = cancel; + } + + private boolean hasSameTargetAndProperties(Animator10 anim) { + if (anim instanceof ObjectAnimator10) { + PropertyValuesHolder[] theirValues = ((ObjectAnimator10) anim).getValues(); + if (((ObjectAnimator10) anim).getTarget() == mTarget && + mValues.length == theirValues.length) { + for (int i = 0; i < mValues.length; ++i) { + PropertyValuesHolder pvhMine = mValues[i]; + PropertyValuesHolder pvhTheirs = theirValues[i]; + if (pvhMine.getPropertyName() == null || + !pvhMine.getPropertyName().equals(pvhTheirs.getPropertyName())) { + return false; + } + } + return true; + } + } + return false; + } + + @Override + public void start() { + AnimationHandler handler = sAnimationHandler.get(); + if (handler != null) { + int numAnims = handler.mAnimations.size(); + for (int i = numAnims - 1; i >= 0; i--) { + if (handler.mAnimations.get(i) instanceof ObjectAnimator10) { + ObjectAnimator10 anim = (ObjectAnimator10) handler.mAnimations.get(i); + if (anim.mAutoCancel && hasSameTargetAndProperties(anim)) { + anim.cancel(); + } + } + } + numAnims = handler.mPendingAnimations.size(); + for (int i = numAnims - 1; i >= 0; i--) { + if (handler.mPendingAnimations.get(i) instanceof ObjectAnimator10) { + ObjectAnimator10 anim = (ObjectAnimator10) handler.mPendingAnimations.get(i); + if (anim.mAutoCancel && hasSameTargetAndProperties(anim)) { + anim.cancel(); + } + } + } + numAnims = handler.mDelayedAnims.size(); + for (int i = numAnims - 1; i >= 0; i--) { + if (handler.mDelayedAnims.get(i) instanceof ObjectAnimator10) { + ObjectAnimator10 anim = (ObjectAnimator10) handler.mDelayedAnims.get(i); + if (anim.mAutoCancel && hasSameTargetAndProperties(anim)) { + anim.cancel(); + } + } + } + } + super.start(); + } + + @Override + void initAnimation() { + if (!mInitialized) { + if ((mProperty == null) && (mTarget instanceof View) && PROXY_PROPERTIES.containsKey(mPropertyName)) { + setProperty(PROXY_PROPERTIES.get(mPropertyName)); + } + int numValues = mValues.length; + for (PropertyValuesHolder mValue : mValues) { + mValue.setupSetterAndGetter(mTarget); + } + super.initAnimation(); + } + } + + @Override + public ObjectAnimator10 setDuration(long duration) { + super.setDuration(duration); + return this; + } + + public Object getTarget() { + return mTarget; + } + + @Override + public void setTarget(Object target) { + if (mTarget != target) { + final Object oldTarget = mTarget; + mTarget = target; + if (oldTarget != null && target != null && oldTarget.getClass() == target.getClass()) { + return; + } + mInitialized = false; + } + } + + @Override + public void setupStartValues() { + initAnimation(); + int numValues = mValues.length; + for (PropertyValuesHolder mValue : mValues) { + mValue.setupStartValue(mTarget); + } + } + + @Override + public void setupEndValues() { + initAnimation(); + int numValues = mValues.length; + for (PropertyValuesHolder mValue : mValues) { + mValue.setupEndValue(mTarget); + } + } + + @Override + void animateValue(float fraction) { + super.animateValue(fraction); + int numValues = mValues.length; + for (PropertyValuesHolder mValue : mValues) { + mValue.setAnimatedValue(mTarget); + } + } + + @Override + public ObjectAnimator10 clone() { + return (ObjectAnimator10) super.clone(); + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Animation/Property.java b/TMessagesProj/src/main/java/org/telegram/ui/Animation/Property.java new file mode 100755 index 000000000..96beb2109 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Animation/Property.java @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * 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. + */ +package org.telegram.ui.Animation; + +public abstract class Property { + + private final String mName; + private final Class mType; + + public static Property of(Class hostType, Class valueType, String name) { + return new ReflectiveProperty(hostType, valueType, name); + } + + public Property(Class type, String name) { + mName = name; + mType = type; + } + + public boolean isReadOnly() { + return false; + } + + public void set(T object, V value) { + throw new UnsupportedOperationException("Property " + getName() +" is read-only"); + } + + public abstract V get(T object); + + public String getName() { + return mName; + } + + public Class getType() { + return mType; + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Animation/PropertyValuesHolder.java b/TMessagesProj/src/main/java/org/telegram/ui/Animation/PropertyValuesHolder.java new file mode 100644 index 000000000..5f5c6c703 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Animation/PropertyValuesHolder.java @@ -0,0 +1,556 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * 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. + */ + +package org.telegram.ui.Animation; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.HashMap; +import java.util.concurrent.locks.ReentrantReadWriteLock; + +public class PropertyValuesHolder implements Cloneable { + + String mPropertyName; + protected Property mProperty; + Method mSetter = null; + private Method mGetter = null; + Class mValueType; + KeyframeSet mKeyframeSet = null; + + private static final TypeEvaluator sIntEvaluator = new IntEvaluator(); + private static final TypeEvaluator sFloatEvaluator = new FloatEvaluator(); + + private static Class[] FLOAT_VARIANTS = {float.class, Float.class, double.class, int.class, Double.class, Integer.class}; + private static Class[] INTEGER_VARIANTS = {int.class, Integer.class, float.class, double.class, Float.class, Double.class}; + private static Class[] DOUBLE_VARIANTS = {double.class, Double.class, float.class, int.class, Float.class, Integer.class}; + + private static final HashMap> sSetterPropertyMap = new HashMap>(); + private static final HashMap> sGetterPropertyMap = new HashMap>(); + + final ReentrantReadWriteLock mPropertyMapLock = new ReentrantReadWriteLock(); + final Object[] mTmpValueArray = new Object[1]; + + private TypeEvaluator mEvaluator; + + private Object mAnimatedValue; + + private PropertyValuesHolder(String propertyName) { + mPropertyName = propertyName; + } + + private PropertyValuesHolder(Property property) { + mProperty = property; + if (property != null) { + mPropertyName = property.getName(); + } + } + + public static PropertyValuesHolder ofInt(String propertyName, int... values) { + return new IntPropertyValuesHolder(propertyName, values); + } + + public static PropertyValuesHolder ofInt(Property property, int... values) { + return new IntPropertyValuesHolder(property, values); + } + + public static PropertyValuesHolder ofFloat(String propertyName, float... values) { + return new FloatPropertyValuesHolder(propertyName, values); + } + + public static PropertyValuesHolder ofFloat(Property property, float... values) { + return new FloatPropertyValuesHolder(property, values); + } + + public static PropertyValuesHolder ofObject(String propertyName, TypeEvaluator evaluator, + Object... values) { + PropertyValuesHolder pvh = new PropertyValuesHolder(propertyName); + pvh.setObjectValues(values); + pvh.setEvaluator(evaluator); + return pvh; + } + + public static PropertyValuesHolder ofObject(Property property, + TypeEvaluator evaluator, V... values) { + PropertyValuesHolder pvh = new PropertyValuesHolder(property); + pvh.setObjectValues(values); + pvh.setEvaluator(evaluator); + return pvh; + } + + public static PropertyValuesHolder ofKeyframe(String propertyName, Keyframe... values) { + KeyframeSet keyframeSet = KeyframeSet.ofKeyframe(values); + if (keyframeSet instanceof IntKeyframeSet) { + return new IntPropertyValuesHolder(propertyName, (IntKeyframeSet) keyframeSet); + } else if (keyframeSet instanceof FloatKeyframeSet) { + return new FloatPropertyValuesHolder(propertyName, (FloatKeyframeSet) keyframeSet); + } else { + PropertyValuesHolder pvh = new PropertyValuesHolder(propertyName); + pvh.mKeyframeSet = keyframeSet; + pvh.mValueType = values[0].getType(); + return pvh; + } + } + + public static PropertyValuesHolder ofKeyframe(Property property, Keyframe... values) { + KeyframeSet keyframeSet = KeyframeSet.ofKeyframe(values); + if (keyframeSet instanceof IntKeyframeSet) { + return new IntPropertyValuesHolder(property, (IntKeyframeSet) keyframeSet); + } else if (keyframeSet instanceof FloatKeyframeSet) { + return new FloatPropertyValuesHolder(property, (FloatKeyframeSet) keyframeSet); + } else { + PropertyValuesHolder pvh = new PropertyValuesHolder(property); + pvh.mKeyframeSet = keyframeSet; + pvh.mValueType = values[0].getType(); + return pvh; + } + } + + public void setIntValues(int... values) { + mValueType = int.class; + mKeyframeSet = KeyframeSet.ofInt(values); + } + + public void setFloatValues(float... values) { + mValueType = float.class; + mKeyframeSet = KeyframeSet.ofFloat(values); + } + + public void setKeyframes(Keyframe... values) { + int numKeyframes = values.length; + Keyframe keyframes[] = new Keyframe[Math.max(numKeyframes, 2)]; + mValueType = values[0].getType(); + System.arraycopy(values, 0, keyframes, 0, numKeyframes); + mKeyframeSet = new KeyframeSet(keyframes); + } + + public void setObjectValues(Object... values) { + mValueType = values[0].getClass(); + mKeyframeSet = KeyframeSet.ofObject(values); + } + + @SuppressWarnings("unchecked") + private Method getPropertyFunction(Class targetClass, String prefix, Class valueType) { + Method returnVal = null; + String methodName = getMethodName(prefix, mPropertyName); + Class args[] = null; + if (valueType == null) { + try { + returnVal = targetClass.getMethod(methodName, args); + } catch (NoSuchMethodException e) { + try { + returnVal = targetClass.getDeclaredMethod(methodName, args); + returnVal.setAccessible(true); + } catch (NoSuchMethodException e2) { + e2.printStackTrace(); + } + } + } else { + args = new Class[1]; + Class typeVariants[]; + if (mValueType.equals(Float.class)) { + typeVariants = FLOAT_VARIANTS; + } else if (mValueType.equals(Integer.class)) { + typeVariants = INTEGER_VARIANTS; + } else if (mValueType.equals(Double.class)) { + typeVariants = DOUBLE_VARIANTS; + } else { + typeVariants = new Class[1]; + typeVariants[0] = mValueType; + } + for (Class typeVariant : typeVariants) { + args[0] = typeVariant; + try { + returnVal = targetClass.getMethod(methodName, args); + mValueType = typeVariant; + return returnVal; + } catch (NoSuchMethodException e) { + try { + returnVal = targetClass.getDeclaredMethod(methodName, args); + returnVal.setAccessible(true); + mValueType = typeVariant; + return returnVal; + } catch (NoSuchMethodException e2) { + // Swallow the error and keep trying other variants + } + } + } + } + + return returnVal; + } + + private Method setupSetterOrGetter(Class targetClass, HashMap> propertyMapMap, String prefix, Class valueType) { + Method setterOrGetter = null; + try { + mPropertyMapLock.writeLock().lock(); + HashMap propertyMap = propertyMapMap.get(targetClass); + if (propertyMap != null) { + setterOrGetter = propertyMap.get(mPropertyName); + } + if (setterOrGetter == null) { + setterOrGetter = getPropertyFunction(targetClass, prefix, valueType); + if (propertyMap == null) { + propertyMap = new HashMap(); + propertyMapMap.put(targetClass, propertyMap); + } + propertyMap.put(mPropertyName, setterOrGetter); + } + } finally { + mPropertyMapLock.writeLock().unlock(); + } + return setterOrGetter; + } + + void setupSetter(Class targetClass) { + mSetter = setupSetterOrGetter(targetClass, sSetterPropertyMap, "set", mValueType); + } + + private void setupGetter(Class targetClass) { + mGetter = setupSetterOrGetter(targetClass, sGetterPropertyMap, "get", null); + } + + @SuppressWarnings("unchecked") + void setupSetterAndGetter(Object target) { + if (mProperty != null) { + try { + Object testValue = mProperty.get(target); + for (Keyframe kf : mKeyframeSet.mKeyframes) { + if (!kf.hasValue()) { + kf.setValue(mProperty.get(target)); + } + } + return; + } catch (ClassCastException e) { + mProperty = null; + } + } + Class targetClass = target.getClass(); + if (mSetter == null) { + setupSetter(targetClass); + } + for (Keyframe kf : mKeyframeSet.mKeyframes) { + if (!kf.hasValue()) { + if (mGetter == null) { + setupGetter(targetClass); + if (mGetter == null) { + return; + } + } + try { + kf.setValue(mGetter.invoke(target)); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + } + } + + @SuppressWarnings("unchecked") + private void setupValue(Object target, Keyframe kf) { + if (mProperty != null) { + kf.setValue(mProperty.get(target)); + } + try { + if (mGetter == null) { + Class targetClass = target.getClass(); + setupGetter(targetClass); + if (mGetter == null) { + return; + } + } + kf.setValue(mGetter.invoke(target)); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + + void setupStartValue(Object target) { + setupValue(target, mKeyframeSet.mKeyframes.get(0)); + } + + void setupEndValue(Object target) { + setupValue(target, mKeyframeSet.mKeyframes.get(mKeyframeSet.mKeyframes.size() - 1)); + } + + @Override + public PropertyValuesHolder clone() { + try { + PropertyValuesHolder newPVH = (PropertyValuesHolder) super.clone(); + newPVH.mPropertyName = mPropertyName; + newPVH.mProperty = mProperty; + newPVH.mKeyframeSet = mKeyframeSet.clone(); + newPVH.mEvaluator = mEvaluator; + return newPVH; + } catch (CloneNotSupportedException e) { + return null; + } + } + + @SuppressWarnings("unchecked") + void setAnimatedValue(Object target) { + if (mProperty != null) { + mProperty.set(target, getAnimatedValue()); + } + if (mSetter != null) { + try { + mTmpValueArray[0] = getAnimatedValue(); + mSetter.invoke(target, mTmpValueArray); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + } + + void init() { + if (mEvaluator == null) { + mEvaluator = (mValueType == Integer.class) ? sIntEvaluator : (mValueType == Float.class) ? sFloatEvaluator : null; + } + if (mEvaluator != null) { + mKeyframeSet.setEvaluator(mEvaluator); + } + } + + public void setEvaluator(TypeEvaluator evaluator) { + mEvaluator = evaluator; + mKeyframeSet.setEvaluator(evaluator); + } + + void calculateValue(float fraction) { + mAnimatedValue = mKeyframeSet.getValue(fraction); + } + + public void setPropertyName(String propertyName) { + mPropertyName = propertyName; + } + + public void setProperty(Property property) { + mProperty = property; + } + + public String getPropertyName() { + return mPropertyName; + } + + Object getAnimatedValue() { + return mAnimatedValue; + } + + @Override + public String toString() { + return mPropertyName + ": " + mKeyframeSet.toString(); + } + + static String getMethodName(String prefix, String propertyName) { + if (propertyName == null || propertyName.length() == 0) { + return prefix; + } + char firstLetter = Character.toUpperCase(propertyName.charAt(0)); + String theRest = propertyName.substring(1); + return prefix + firstLetter + theRest; + } + + static class IntPropertyValuesHolder extends PropertyValuesHolder { + private static final HashMap> sJNISetterPropertyMap = new HashMap>(); + private IntProperty mIntProperty; + + IntKeyframeSet mIntKeyframeSet; + int mIntAnimatedValue; + + public IntPropertyValuesHolder(String propertyName, IntKeyframeSet keyframeSet) { + super(propertyName); + mValueType = int.class; + mKeyframeSet = keyframeSet; + mIntKeyframeSet = (IntKeyframeSet) mKeyframeSet; + } + + public IntPropertyValuesHolder(Property property, IntKeyframeSet keyframeSet) { + super(property); + mValueType = int.class; + mKeyframeSet = keyframeSet; + mIntKeyframeSet = (IntKeyframeSet) mKeyframeSet; + if (property instanceof IntProperty) { + mIntProperty = (IntProperty) mProperty; + } + } + + public IntPropertyValuesHolder(String propertyName, int... values) { + super(propertyName); + setIntValues(values); + } + + public IntPropertyValuesHolder(Property property, int... values) { + super(property); + setIntValues(values); + if (property instanceof IntProperty) { + mIntProperty = (IntProperty) mProperty; + } + } + + @Override + public void setIntValues(int... values) { + super.setIntValues(values); + mIntKeyframeSet = (IntKeyframeSet) mKeyframeSet; + } + + @Override + void calculateValue(float fraction) { + mIntAnimatedValue = mIntKeyframeSet.getIntValue(fraction); + } + + @Override + Object getAnimatedValue() { + return mIntAnimatedValue; + } + + @Override + public IntPropertyValuesHolder clone() { + IntPropertyValuesHolder newPVH = (IntPropertyValuesHolder) super.clone(); + newPVH.mIntKeyframeSet = (IntKeyframeSet) newPVH.mKeyframeSet; + return newPVH; + } + + @SuppressWarnings("unchecked") + @Override + void setAnimatedValue(Object target) { + if (mIntProperty != null) { + mIntProperty.setValue(target, mIntAnimatedValue); + return; + } + if (mProperty != null) { + mProperty.set(target, mIntAnimatedValue); + return; + } + if (mSetter != null) { + try { + mTmpValueArray[0] = mIntAnimatedValue; + mSetter.invoke(target, mTmpValueArray); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + } + + @Override + void setupSetter(Class targetClass) { + if (mProperty != null) { + return; + } + + super.setupSetter(targetClass); + } + } + + static class FloatPropertyValuesHolder extends PropertyValuesHolder { + + private static final HashMap> sJNISetterPropertyMap = new HashMap>(); + private FloatProperty mFloatProperty; + + FloatKeyframeSet mFloatKeyframeSet; + float mFloatAnimatedValue; + + public FloatPropertyValuesHolder(String propertyName, FloatKeyframeSet keyframeSet) { + super(propertyName); + mValueType = float.class; + mKeyframeSet = keyframeSet; + mFloatKeyframeSet = (FloatKeyframeSet) mKeyframeSet; + } + + public FloatPropertyValuesHolder(Property property, FloatKeyframeSet keyframeSet) { + super(property); + mValueType = float.class; + mKeyframeSet = keyframeSet; + mFloatKeyframeSet = (FloatKeyframeSet) mKeyframeSet; + if (property instanceof FloatProperty) { + mFloatProperty = (FloatProperty) mProperty; + } + } + + public FloatPropertyValuesHolder(String propertyName, float... values) { + super(propertyName); + setFloatValues(values); + } + + public FloatPropertyValuesHolder(Property property, float... values) { + super(property); + setFloatValues(values); + if (property instanceof FloatProperty) { + mFloatProperty = (FloatProperty) mProperty; + } + } + + @Override + public void setFloatValues(float... values) { + super.setFloatValues(values); + mFloatKeyframeSet = (FloatKeyframeSet) mKeyframeSet; + } + + @Override + void calculateValue(float fraction) { + mFloatAnimatedValue = mFloatKeyframeSet.getFloatValue(fraction); + } + + @Override + Object getAnimatedValue() { + return mFloatAnimatedValue; + } + + @Override + public FloatPropertyValuesHolder clone() { + FloatPropertyValuesHolder newPVH = (FloatPropertyValuesHolder) super.clone(); + newPVH.mFloatKeyframeSet = (FloatKeyframeSet) newPVH.mKeyframeSet; + return newPVH; + } + + @SuppressWarnings("unchecked") + @Override + void setAnimatedValue(Object target) { + if (mFloatProperty != null) { + mFloatProperty.setValue(target, mFloatAnimatedValue); + return; + } + if (mProperty != null) { + mProperty.set(target, mFloatAnimatedValue); + return; + } + if (mSetter != null) { + try { + mTmpValueArray[0] = mFloatAnimatedValue; + mSetter.invoke(target, mTmpValueArray); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + } + + @Override + void setupSetter(Class targetClass) { + if (mProperty != null) { + return; + } + super.setupSetter(targetClass); + } + } +} \ No newline at end of file diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Animation/ReflectiveProperty.java b/TMessagesProj/src/main/java/org/telegram/ui/Animation/ReflectiveProperty.java new file mode 100755 index 000000000..ce487b4ff --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Animation/ReflectiveProperty.java @@ -0,0 +1,182 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * 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. + */ +package org.telegram.ui.Animation; + +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +/** + * Internal class to automatically generate a Property for a given class/name pair, given the + * specification of {@link Property#of(java.lang.Class, java.lang.Class, java.lang.String)} + */ +class ReflectiveProperty extends Property { + + private static final String PREFIX_GET = "get"; + private static final String PREFIX_IS = "is"; + private static final String PREFIX_SET = "set"; + private Method mSetter; + private Method mGetter; + private Field mField; + + /** + * For given property name 'name', look for getName/isName method or 'name' field. + * Also look for setName method (optional - could be readonly). Failing method getters and + * field results in throwing NoSuchPropertyException. + * + * @param propertyHolder The class on which the methods or field are found + * @param name The name of the property, where this name is capitalized and appended to + * "get" and "is to search for the appropriate methods. If the get/is methods are not found, + * the constructor will search for a field with that exact name. + */ + public ReflectiveProperty(Class propertyHolder, Class valueType, String name) { + // TODO: cache reflection info for each new class/name pair + super(valueType, name); + char firstLetter = Character.toUpperCase(name.charAt(0)); + String theRest = name.substring(1); + String capitalizedName = firstLetter + theRest; + String getterName = PREFIX_GET + capitalizedName; + try { + mGetter = propertyHolder.getMethod(getterName, (Class[]) null); + } catch (NoSuchMethodException e) { + try { + /* The native implementation uses JNI to do reflection, which allows access to private methods. + * getDeclaredMethod(..) does not find superclass methods, so it's implemented as a fallback. + */ + mGetter = propertyHolder.getDeclaredMethod(getterName, (Class[]) null); + mGetter.setAccessible(true); + } catch (NoSuchMethodException e2) { + // getName() not available - try isName() instead + getterName = PREFIX_IS + capitalizedName; + try { + mGetter = propertyHolder.getMethod(getterName, (Class[]) null); + } catch (NoSuchMethodException e3) { + try { + /* The native implementation uses JNI to do reflection, which allows access to private methods. + * getDeclaredMethod(..) does not find superclass methods, so it's implemented as a fallback. + */ + mGetter = propertyHolder.getDeclaredMethod(getterName, (Class[]) null); + mGetter.setAccessible(true); + } catch (NoSuchMethodException e4) { + // Try public field instead + try { + mField = propertyHolder.getField(name); + Class fieldType = mField.getType(); + if (!typesMatch(valueType, fieldType)) { + throw new NoSuchPropertyException("Underlying type (" + fieldType + ") " + + "does not match Property type (" + valueType + ")"); + } + return; + } catch (NoSuchFieldException e5) { + // no way to access property - throw appropriate exception + throw new NoSuchPropertyException("No accessor method or field found for" + + " property with name " + name); + } + } + } + } + } + Class getterType = mGetter.getReturnType(); + // Check to make sure our getter type matches our valueType + if (!typesMatch(valueType, getterType)) { + throw new NoSuchPropertyException("Underlying type (" + getterType + ") " + + "does not match Property type (" + valueType + ")"); + } + String setterName = PREFIX_SET + capitalizedName; + try { + // mSetter = propertyHolder.getMethod(setterName, getterType); + // The native implementation uses JNI to do reflection, which allows access to private methods. + mSetter = propertyHolder.getDeclaredMethod(setterName, getterType); + mSetter.setAccessible(true); + } catch (NoSuchMethodException ignored) { + // Okay to not have a setter - just a readonly property + } + } + + /** + * Utility method to check whether the type of the underlying field/method on the target + * object matches the type of the Property. The extra checks for primitive types are because + * generics will force the Property type to be a class, whereas the type of the underlying + * method/field will probably be a primitive type instead. Accept float as matching Float, + * etc. + */ + private boolean typesMatch(Class valueType, Class getterType) { + if (getterType != valueType) { + if (getterType.isPrimitive()) { + return (getterType == float.class && valueType == Float.class) || + (getterType == int.class && valueType == Integer.class) || + (getterType == boolean.class && valueType == Boolean.class) || + (getterType == long.class && valueType == Long.class) || + (getterType == double.class && valueType == Double.class) || + (getterType == short.class && valueType == Short.class) || + (getterType == byte.class && valueType == Byte.class) || + (getterType == char.class && valueType == Character.class); + } + return false; + } + return true; + } + + @Override + public void set(T object, V value) { + if (mSetter != null) { + try { + mSetter.invoke(object, value); + } catch (IllegalAccessException e) { + throw new AssertionError(); + } catch (InvocationTargetException e) { + throw new RuntimeException(e.getCause()); + } + } else if (mField != null) { + try { + mField.set(object, value); + } catch (IllegalAccessException e) { + throw new AssertionError(); + } + } else { + throw new UnsupportedOperationException("Property " + getName() +" is read-only"); + } + } + + @Override + public V get(T object) { + if (mGetter != null) { + try { + return (V) mGetter.invoke(object, (Object[])null); + } catch (IllegalAccessException e) { + throw new AssertionError(); + } catch (InvocationTargetException e) { + throw new RuntimeException(e.getCause()); + } + } else if (mField != null) { + try { + return (V) mField.get(object); + } catch (IllegalAccessException e) { + throw new AssertionError(); + } + } + // Should not get here: there should always be a non-null getter or field + throw new AssertionError(); + } + + /** + * Returns false if there is no setter or public field underlying this Property. + */ + @Override + public boolean isReadOnly() { + return (mSetter == null && mField == null); + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Animation/TypeEvaluator.java b/TMessagesProj/src/main/java/org/telegram/ui/Animation/TypeEvaluator.java new file mode 100644 index 000000000..33de5d619 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Animation/TypeEvaluator.java @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * 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. + */ + +package org.telegram.ui.Animation; + +public interface TypeEvaluator { + public T evaluate(float fraction, T startValue, T endValue); +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Animation/ValueAnimator.java b/TMessagesProj/src/main/java/org/telegram/ui/Animation/ValueAnimator.java new file mode 100644 index 000000000..b4baca6de --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Animation/ValueAnimator.java @@ -0,0 +1,675 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * 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. + */ + +package org.telegram.ui.Animation; + +import android.os.Looper; +import android.util.AndroidRuntimeException; +import android.view.animation.AccelerateDecelerateInterpolator; +import android.view.animation.AnimationUtils; +import android.view.animation.Interpolator; +import android.view.animation.LinearInterpolator; + +import org.telegram.android.AndroidUtilities; + +import java.util.ArrayList; +import java.util.HashMap; + +public class ValueAnimator extends Animator10 { + + private static float sDurationScale = 1.0f; + static final int STOPPED = 0; + static final int RUNNING = 1; + static final int SEEKED = 2; + + long mStartTime; + long mSeekTime = -1; + private long mPauseTime; + private boolean mResumed = false; + protected static ThreadLocal sAnimationHandler = new ThreadLocal(); + private static final Interpolator sDefaultInterpolator = new AccelerateDecelerateInterpolator(); + private boolean mPlayingBackwards = false; + private int mCurrentIteration = 0; + private float mCurrentFraction = 0f; + private boolean mStartedDelay = false; + private long mDelayStartTime; + int mPlayingState = STOPPED; + private boolean mRunning = false; + private boolean mStarted = false; + private boolean mStartListenersCalled = false; + boolean mInitialized = false; + + private long mDuration = (long)(300 * sDurationScale); + private long mUnscaledDuration = 300; + private long mStartDelay = 0; + private long mUnscaledStartDelay = 0; + private int mRepeatCount = 0; + private int mRepeatMode = RESTART; + private Interpolator mInterpolator = sDefaultInterpolator; + private ArrayList mUpdateListeners = null; + PropertyValuesHolder[] mValues; + HashMap mValuesMap; + + public static final int RESTART = 1; + public static final int REVERSE = 2; + public static final int INFINITE = -1; + + public static void setDurationScale(float durationScale) { + sDurationScale = durationScale; + } + + public static float getDurationScale() { + return sDurationScale; + } + + public ValueAnimator() { + + } + + public static ValueAnimator ofInt(int... values) { + ValueAnimator anim = new ValueAnimator(); + anim.setIntValues(values); + return anim; + } + + public static ValueAnimator ofFloat(float... values) { + ValueAnimator anim = new ValueAnimator(); + anim.setFloatValues(values); + return anim; + } + + public static ValueAnimator ofPropertyValuesHolder(PropertyValuesHolder... values) { + ValueAnimator anim = new ValueAnimator(); + anim.setValues(values); + return anim; + } + + public static ValueAnimator ofObject(TypeEvaluator evaluator, Object... values) { + ValueAnimator anim = new ValueAnimator(); + anim.setObjectValues(values); + anim.setEvaluator(evaluator); + return anim; + } + + public void setIntValues(int... values) { + if (values == null || values.length == 0) { + return; + } + if (mValues == null || mValues.length == 0) { + setValues(PropertyValuesHolder.ofInt("", values)); + } else { + PropertyValuesHolder valuesHolder = mValues[0]; + valuesHolder.setIntValues(values); + } + mInitialized = false; + } + + public void setFloatValues(float... values) { + if (values == null || values.length == 0) { + return; + } + if (mValues == null || mValues.length == 0) { + setValues(PropertyValuesHolder.ofFloat("", values)); + } else { + PropertyValuesHolder valuesHolder = mValues[0]; + valuesHolder.setFloatValues(values); + } + mInitialized = false; + } + + public void setObjectValues(Object... values) { + if (values == null || values.length == 0) { + return; + } + if (mValues == null || mValues.length == 0) { + setValues(PropertyValuesHolder.ofObject("", null, values)); + } else { + PropertyValuesHolder valuesHolder = mValues[0]; + valuesHolder.setObjectValues(values); + } + mInitialized = false; + } + + public void setValues(PropertyValuesHolder... values) { + int numValues = values.length; + mValues = values; + mValuesMap = new HashMap(numValues); + for (PropertyValuesHolder valuesHolder : values) { + mValuesMap.put(valuesHolder.getPropertyName(), valuesHolder); + } + mInitialized = false; + } + + public PropertyValuesHolder[] getValues() { + return mValues; + } + + void initAnimation() { + if (!mInitialized) { + int numValues = mValues.length; + for (PropertyValuesHolder mValue : mValues) { + mValue.init(); + } + mInitialized = true; + } + } + + public ValueAnimator setDuration(long duration) { + if (duration < 0) { + throw new IllegalArgumentException("Animators cannot have negative duration: " + duration); + } + mUnscaledDuration = duration; + mDuration = (long)(duration * sDurationScale); + return this; + } + + public long getDuration() { + return mUnscaledDuration; + } + + public void setCurrentPlayTime(long playTime) { + initAnimation(); + long currentTime = AnimationUtils.currentAnimationTimeMillis(); + if (mPlayingState != RUNNING) { + mSeekTime = playTime; + mPlayingState = SEEKED; + } + mStartTime = currentTime - playTime; + doAnimationFrame(currentTime); + } + + public long getCurrentPlayTime() { + if (!mInitialized || mPlayingState == STOPPED) { + return 0; + } + return AnimationUtils.currentAnimationTimeMillis() - mStartTime; + } + + @SuppressWarnings("unchecked") + protected static class AnimationHandler implements Runnable { + + protected final ArrayList mAnimations = new ArrayList(); + private final ArrayList mTmpAnimations = new ArrayList(); + protected final ArrayList mPendingAnimations = new ArrayList(); + protected final ArrayList mDelayedAnims = new ArrayList(); + private final ArrayList mEndingAnims = new ArrayList(); + private final ArrayList mReadyAnims = new ArrayList(); + + private boolean mAnimationScheduled; + + public void start() { + scheduleAnimation(); + } + + private void doAnimationFrame(long frameTime) { + while (mPendingAnimations.size() > 0) { + ArrayList pendingCopy = (ArrayList) mPendingAnimations.clone(); + mPendingAnimations.clear(); + int count = pendingCopy.size(); + for (ValueAnimator anim : pendingCopy) { + if (anim.mStartDelay == 0) { + anim.startAnimation(this); + } else { + mDelayedAnims.add(anim); + } + } + } + + int numDelayedAnims = mDelayedAnims.size(); + for (ValueAnimator anim : mDelayedAnims) { + if (anim.delayedAnimationFrame(frameTime)) { + mReadyAnims.add(anim); + } + } + int numReadyAnims = mReadyAnims.size(); + if (numReadyAnims > 0) { + for (ValueAnimator anim : mReadyAnims) { + anim.startAnimation(this); + anim.mRunning = true; + mDelayedAnims.remove(anim); + } + mReadyAnims.clear(); + } + + int numAnims = mAnimations.size(); + for (ValueAnimator mAnimation : mAnimations) { + mTmpAnimations.add(mAnimation); + } + for (int i = 0; i < numAnims; ++i) { + ValueAnimator anim = mTmpAnimations.get(i); + if (mAnimations.contains(anim) && anim.doAnimationFrame(frameTime)) { + mEndingAnims.add(anim); + } + } + mTmpAnimations.clear(); + if (mEndingAnims.size() > 0) { + for (ValueAnimator mEndingAnim : mEndingAnims) { + mEndingAnim.endAnimation(this); + } + mEndingAnims.clear(); + } + + if (!mAnimations.isEmpty() || !mDelayedAnims.isEmpty()) { + scheduleAnimation(); + } + } + + @Override + public void run() { + mAnimationScheduled = false; + doAnimationFrame(System.nanoTime() / 1000000); + } + + private void scheduleAnimation() { + if (!mAnimationScheduled) { + AndroidUtilities.runOnUIThread(this); + mAnimationScheduled = true; + } + } + } + + public long getStartDelay() { + return mUnscaledStartDelay; + } + + public void setStartDelay(long startDelay) { + this.mStartDelay = (long)(startDelay * sDurationScale); + mUnscaledStartDelay = startDelay; + } + + public Object getAnimatedValue() { + if (mValues != null && mValues.length > 0) { + return mValues[0].getAnimatedValue(); + } + return null; + } + + public Object getAnimatedValue(String propertyName) { + PropertyValuesHolder valuesHolder = mValuesMap.get(propertyName); + if (valuesHolder != null) { + return valuesHolder.getAnimatedValue(); + } else { + return null; + } + } + + public void setRepeatCount(int value) { + mRepeatCount = value; + } + + public int getRepeatCount() { + return mRepeatCount; + } + + public void setRepeatMode(int value) { + mRepeatMode = value; + } + + public int getRepeatMode() { + return mRepeatMode; + } + + public void addUpdateListener(AnimatorUpdateListener listener) { + if (mUpdateListeners == null) { + mUpdateListeners = new ArrayList(); + } + mUpdateListeners.add(listener); + } + + public void removeAllUpdateListeners() { + if (mUpdateListeners == null) { + return; + } + mUpdateListeners.clear(); + mUpdateListeners = null; + } + + public void removeUpdateListener(AnimatorUpdateListener listener) { + if (mUpdateListeners == null) { + return; + } + mUpdateListeners.remove(listener); + if (mUpdateListeners.size() == 0) { + mUpdateListeners = null; + } + } + + @Override + public void setInterpolator(Interpolator value) { + if (value != null) { + mInterpolator = value; + } else { + mInterpolator = new LinearInterpolator(); + } + } + + @Override + public Interpolator getInterpolator() { + return mInterpolator; + } + + public void setEvaluator(TypeEvaluator value) { + if (value != null && mValues != null && mValues.length > 0) { + mValues[0].setEvaluator(value); + } + } + + @SuppressWarnings("unchecked") + private void notifyStartListeners() { + if (mListeners != null && !mStartListenersCalled) { + ArrayList tmpListeners = (ArrayList) mListeners.clone(); + int numListeners = tmpListeners.size(); + for (AnimatorListener tmpListener : tmpListeners) { + tmpListener.onAnimationStart(this); + } + } + mStartListenersCalled = true; + } + + private void start(boolean playBackwards) { + if (Looper.myLooper() == null) { + throw new AndroidRuntimeException("Animators may only be run on Looper threads"); + } + mPlayingBackwards = playBackwards; + mCurrentIteration = 0; + mPlayingState = STOPPED; + mStarted = true; + mStartedDelay = false; + mPaused = false; + AnimationHandler animationHandler = getOrCreateAnimationHandler(); + animationHandler.mPendingAnimations.add(this); + if (mStartDelay == 0) { + setCurrentPlayTime(0); + mPlayingState = STOPPED; + mRunning = true; + notifyStartListeners(); + } + animationHandler.start(); + } + + @Override + public void start() { + start(false); + } + + @SuppressWarnings("unchecked") + @Override + public void cancel() { + AnimationHandler handler = getOrCreateAnimationHandler(); + if (mPlayingState != STOPPED || handler.mPendingAnimations.contains(this) || handler.mDelayedAnims.contains(this)) { + if ((mStarted || mRunning) && mListeners != null) { + if (!mRunning) { + notifyStartListeners(); + } + ArrayList tmpListeners = (ArrayList) mListeners.clone(); + for (AnimatorListener listener : tmpListeners) { + listener.onAnimationCancel(this); + } + } + endAnimation(handler); + } + } + + @Override + public void end() { + AnimationHandler handler = getOrCreateAnimationHandler(); + if (!handler.mAnimations.contains(this) && !handler.mPendingAnimations.contains(this)) { + mStartedDelay = false; + startAnimation(handler); + mStarted = true; + } else if (!mInitialized) { + initAnimation(); + } + animateValue(mPlayingBackwards ? 0f : 1f); + endAnimation(handler); + } + + @Override + public void resume() { + if (mPaused) { + mResumed = true; + } + super.resume(); + } + + @Override + public void pause() { + boolean previouslyPaused = mPaused; + super.pause(); + if (!previouslyPaused && mPaused) { + mPauseTime = -1; + mResumed = false; + } + } + + @Override + public boolean isRunning() { + return (mPlayingState == RUNNING || mRunning); + } + + @Override + public boolean isStarted() { + return mStarted; + } + + public void reverse() { + mPlayingBackwards = !mPlayingBackwards; + if (mPlayingState == RUNNING) { + long currentTime = AnimationUtils.currentAnimationTimeMillis(); + long currentPlayTime = currentTime - mStartTime; + long timeLeft = mDuration - currentPlayTime; + mStartTime = currentTime - timeLeft; + } else if (mStarted) { + end(); + } else { + start(true); + } + } + + @SuppressWarnings("unchecked") + private void endAnimation(AnimationHandler handler) { + handler.mAnimations.remove(this); + handler.mPendingAnimations.remove(this); + handler.mDelayedAnims.remove(this); + mPlayingState = STOPPED; + mPaused = false; + if ((mStarted || mRunning) && mListeners != null) { + if (!mRunning) { + notifyStartListeners(); + } + ArrayList tmpListeners = (ArrayList) mListeners.clone(); + int numListeners = tmpListeners.size(); + for (AnimatorListener tmpListener : tmpListeners) { + tmpListener.onAnimationEnd(this); + } + } + mRunning = false; + mStarted = false; + mStartListenersCalled = false; + mPlayingBackwards = false; + } + + private void startAnimation(AnimationHandler handler) { + initAnimation(); + handler.mAnimations.add(this); + if (mStartDelay > 0 && mListeners != null) { + notifyStartListeners(); + } + } + + private boolean delayedAnimationFrame(long currentTime) { + if (!mStartedDelay) { + mStartedDelay = true; + mDelayStartTime = currentTime; + } else { + if (mPaused) { + if (mPauseTime < 0) { + mPauseTime = currentTime; + } + return false; + } else if (mResumed) { + mResumed = false; + if (mPauseTime > 0) { + mDelayStartTime += (currentTime - mPauseTime); + } + } + long deltaTime = currentTime - mDelayStartTime; + if (deltaTime > mStartDelay) { + mStartTime = currentTime - (deltaTime - mStartDelay); + mPlayingState = RUNNING; + return true; + } + } + return false; + } + + boolean animationFrame(long currentTime) { + boolean done = false; + switch (mPlayingState) { + case RUNNING: + case SEEKED: + float fraction = mDuration > 0 ? (float)(currentTime - mStartTime) / mDuration : 1f; + if (fraction >= 1f) { + if (mCurrentIteration < mRepeatCount || mRepeatCount == INFINITE) { + if (mListeners != null) { + int numListeners = mListeners.size(); + for (AnimatorListener mListener : mListeners) { + mListener.onAnimationRepeat(this); + } + } + if (mRepeatMode == REVERSE) { + mPlayingBackwards = !mPlayingBackwards; + } + mCurrentIteration += (int)fraction; + fraction = fraction % 1f; + mStartTime += mDuration; + } else { + done = true; + fraction = Math.min(fraction, 1.0f); + } + } + if (mPlayingBackwards) { + fraction = 1f - fraction; + } + animateValue(fraction); + break; + } + + return done; + } + + final boolean doAnimationFrame(long frameTime) { + if (mPlayingState == STOPPED) { + mPlayingState = RUNNING; + if (mSeekTime < 0) { + mStartTime = frameTime; + } else { + mStartTime = frameTime - mSeekTime; + mSeekTime = -1; + } + } + if (mPaused) { + if (mPauseTime < 0) { + mPauseTime = frameTime; + } + return false; + } else if (mResumed) { + mResumed = false; + if (mPauseTime > 0) { + mStartTime += (frameTime - mPauseTime); + } + } + final long currentTime = Math.max(frameTime, mStartTime); + return animationFrame(currentTime); + } + + public float getAnimatedFraction() { + return mCurrentFraction; + } + + void animateValue(float fraction) { + fraction = mInterpolator.getInterpolation(fraction); + mCurrentFraction = fraction; + int numValues = mValues.length; + for (PropertyValuesHolder mValue : mValues) { + mValue.calculateValue(fraction); + } + if (mUpdateListeners != null) { + int numListeners = mUpdateListeners.size(); + for (AnimatorUpdateListener mUpdateListener : mUpdateListeners) { + mUpdateListener.onAnimationUpdate(this); + } + } + } + + @Override + public ValueAnimator clone() { + final ValueAnimator anim = (ValueAnimator) super.clone(); + if (mUpdateListeners != null) { + ArrayList oldListeners = mUpdateListeners; + anim.mUpdateListeners = new ArrayList(); + int numListeners = oldListeners.size(); + for (AnimatorUpdateListener oldListener : oldListeners) { + anim.mUpdateListeners.add(oldListener); + } + } + anim.mSeekTime = -1; + anim.mPlayingBackwards = false; + anim.mCurrentIteration = 0; + anim.mInitialized = false; + anim.mPlayingState = STOPPED; + anim.mStartedDelay = false; + PropertyValuesHolder[] oldValues = mValues; + if (oldValues != null) { + int numValues = oldValues.length; + anim.mValues = new PropertyValuesHolder[numValues]; + anim.mValuesMap = new HashMap(numValues); + for (int i = 0; i < numValues; ++i) { + PropertyValuesHolder newValuesHolder = oldValues[i].clone(); + anim.mValues[i] = newValuesHolder; + anim.mValuesMap.put(newValuesHolder.getPropertyName(), newValuesHolder); + } + } + return anim; + } + + public static interface AnimatorUpdateListener { + void onAnimationUpdate(ValueAnimator animation); + } + + public static int getCurrentAnimationsCount() { + AnimationHandler handler = sAnimationHandler.get(); + return handler != null ? handler.mAnimations.size() : 0; + } + + public static void clearAllAnimations() { + AnimationHandler handler = sAnimationHandler.get(); + if (handler != null) { + handler.mAnimations.clear(); + handler.mPendingAnimations.clear(); + handler.mDelayedAnims.clear(); + } + } + + private static AnimationHandler getOrCreateAnimationHandler() { + AnimationHandler handler = sAnimationHandler.get(); + if (handler == null) { + handler = new AnimationHandler(); + sAnimationHandler.set(handler); + } + return handler; + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Animation/View10.java b/TMessagesProj/src/main/java/org/telegram/ui/Animation/View10.java new file mode 100644 index 000000000..16ad32004 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Animation/View10.java @@ -0,0 +1,346 @@ +/* + Copyright 2012 Jake Wharton + +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. + */ + +package org.telegram.ui.Animation; + +import android.graphics.Camera; +import android.graphics.Matrix; +import android.graphics.RectF; +import android.os.Build; +import android.view.View; +import android.view.animation.Animation; +import android.view.animation.Transformation; + +import java.lang.ref.WeakReference; +import java.util.WeakHashMap; + +public class View10 extends Animation { + + public static boolean NEED_PROXY = Build.VERSION.SDK_INT < 11; + + private static final WeakHashMap PROXIES = new WeakHashMap(); + + public static View10 wrap(View view) { + View10 proxy = PROXIES.get(view); + if (proxy == null || proxy != view.getAnimation()) { + proxy = new View10(view); + PROXIES.put(view, proxy); + } + return proxy; + } + + private final WeakReference mView; + private final Camera mCamera = new Camera(); + private boolean mHasPivot; + + private float mAlpha = 1; + private float mPivotX; + private float mPivotY; + private float mRotationX; + private float mRotationY; + private float mRotationZ; + private float mScaleX = 1; + private float mScaleY = 1; + private float mTranslationX; + private float mTranslationY; + + private final RectF mBefore = new RectF(); + private final RectF mAfter = new RectF(); + private final Matrix mTempMatrix = new Matrix(); + + private View10(View view) { + setDuration(0); + setFillAfter(true); + view.setAnimation(this); + mView = new WeakReference(view); + } + + public float getAlpha() { + return mAlpha; + } + + public void setAlpha(float alpha) { + if (mAlpha != alpha) { + mAlpha = alpha; + View view = mView.get(); + if (view != null) { + view.invalidate(); + } + } + } + + public float getPivotX() { + return mPivotX; + } + + public void setPivotX(float pivotX) { + if (!mHasPivot || mPivotX != pivotX) { + prepareForUpdate(); + mHasPivot = true; + mPivotX = pivotX; + invalidateAfterUpdate(); + } + } + + public float getPivotY() { + return mPivotY; + } + + public void setPivotY(float pivotY) { + if (!mHasPivot || mPivotY != pivotY) { + prepareForUpdate(); + mHasPivot = true; + mPivotY = pivotY; + invalidateAfterUpdate(); + } + } + + public float getRotation() { + return mRotationZ; + } + + public void setRotation(float rotation) { + if (mRotationZ != rotation) { + prepareForUpdate(); + mRotationZ = rotation; + invalidateAfterUpdate(); + } + } + + public float getRotationX() { + return mRotationX; + } + + public void setRotationX(float rotationX) { + if (mRotationX != rotationX) { + prepareForUpdate(); + mRotationX = rotationX; + invalidateAfterUpdate(); + } + } + + public float getRotationY() { + return mRotationY; + } + + public void setRotationY(float rotationY) { + if (mRotationY != rotationY) { + prepareForUpdate(); + mRotationY = rotationY; + invalidateAfterUpdate(); + } + } + + public float getScaleX() { + return mScaleX; + } + + public void setScaleX(float scaleX) { + if (mScaleX != scaleX) { + prepareForUpdate(); + mScaleX = scaleX; + invalidateAfterUpdate(); + } + } + + public float getScaleY() { + return mScaleY; + } + + public void setScaleY(float scaleY) { + if (mScaleY != scaleY) { + prepareForUpdate(); + mScaleY = scaleY; + invalidateAfterUpdate(); + } + } + + public int getScrollX() { + View view = mView.get(); + if (view == null) { + return 0; + } + return view.getScrollX(); + } + + public void setScrollX(int value) { + View view = mView.get(); + if (view != null) { + view.scrollTo(value, view.getScrollY()); + } + } + + public int getScrollY() { + View view = mView.get(); + if (view == null) { + return 0; + } + return view.getScrollY(); + } + + public void setScrollY(int value) { + View view = mView.get(); + if (view != null) { + view.scrollTo(view.getScrollX(), value); + } + } + + public float getTranslationX() { + return mTranslationX; + } + + public void setTranslationX(float translationX) { + if (mTranslationX != translationX) { + prepareForUpdate(); + mTranslationX = translationX; + invalidateAfterUpdate(); + } + } + + public float getTranslationY() { + return mTranslationY; + } + + public void setTranslationY(float translationY) { + if (mTranslationY != translationY) { + prepareForUpdate(); + mTranslationY = translationY; + invalidateAfterUpdate(); + } + } + + public float getX() { + View view = mView.get(); + if (view == null) { + return 0; + } + return view.getLeft() + mTranslationX; + } + + public void setX(float x) { + View view = mView.get(); + if (view != null) { + setTranslationX(x - view.getLeft()); + } + } + + public float getY() { + View view = mView.get(); + if (view == null) { + return 0; + } + return view.getTop() + mTranslationY; + } + + public void setY(float y) { + View view = mView.get(); + if (view != null) { + setTranslationY(y - view.getTop()); + } + } + + private void prepareForUpdate() { + View view = mView.get(); + if (view != null) { + computeRect(mBefore, view); + } + } + + private void invalidateAfterUpdate() { + View view = mView.get(); + if (view == null || view.getParent() == null) { + return; + } + + final RectF after = mAfter; + computeRect(after, view); + after.union(mBefore); + + ((View) view.getParent()).invalidate( + (int) Math.floor(after.left), + (int) Math.floor(after.top), + (int) Math.ceil(after.right), + (int) Math.ceil(after.bottom)); + } + + private void computeRect(final RectF r, View view) { + final float w = view.getWidth(); + final float h = view.getHeight(); + + r.set(0, 0, w, h); + + final Matrix m = mTempMatrix; + m.reset(); + transformMatrix(m, view); + mTempMatrix.mapRect(r); + + r.offset(view.getLeft(), view.getTop()); + + if (r.right < r.left) { + final float f = r.right; + r.right = r.left; + r.left = f; + } + if (r.bottom < r.top) { + final float f = r.top; + r.top = r.bottom; + r.bottom = f; + } + } + + private void transformMatrix(Matrix m, View view) { + final float w = view.getWidth(); + final float h = view.getHeight(); + final boolean hasPivot = mHasPivot; + final float pX = hasPivot ? mPivotX : w / 2f; + final float pY = hasPivot ? mPivotY : h / 2f; + + final float rX = mRotationX; + final float rY = mRotationY; + final float rZ = mRotationZ; + if ((rX != 0) || (rY != 0) || (rZ != 0)) { + final Camera camera = mCamera; + camera.save(); + camera.rotateX(rX); + camera.rotateY(rY); + camera.rotateZ(-rZ); + camera.getMatrix(m); + camera.restore(); + m.preTranslate(-pX, -pY); + m.postTranslate(pX, pY); + } + + final float sX = mScaleX; + final float sY = mScaleY; + if ((sX != 1.0f) || (sY != 1.0f)) { + m.postScale(sX, sY); + final float sPX = -(pX / w) * ((sX * w) - w); + final float sPY = -(pY / h) * ((sY * h) - h); + m.postTranslate(sPX, sPY); + } + + m.postTranslate(mTranslationX, mTranslationY); + } + + @Override + protected void applyTransformation(float interpolatedTime, Transformation t) { + View view = mView.get(); + if (view != null) { + t.setAlpha(mAlpha); + transformMatrix(t.getMatrix(), view); + } + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/AnimationCompat/AnimatorListenerAdapterProxy.java b/TMessagesProj/src/main/java/org/telegram/ui/AnimationCompat/AnimatorListenerAdapterProxy.java new file mode 100644 index 000000000..2c416a110 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/AnimationCompat/AnimatorListenerAdapterProxy.java @@ -0,0 +1,112 @@ +/* + * This is the source code of Telegram for Android v. 1.7.x. + * It is licensed under GNU GPL v. 2 or later. + * You should have received a copy of the license in this archive (see LICENSE). + * + * Copyright Nikolai Kudashov, 2013-2014. + */ + +package org.telegram.ui.AnimationCompat; + +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; + +import org.telegram.ui.Animation.Animator10; +import org.telegram.ui.Animation.AnimatorListenerAdapter10; +import org.telegram.ui.Animation.View10; + +public class AnimatorListenerAdapterProxy { + protected Object animatorListenerAdapter; + + public AnimatorListenerAdapterProxy() { + if (View10.NEED_PROXY) { + animatorListenerAdapter = new AnimatorListenerAdapter10() { + @Override + public void onAnimationCancel(Animator10 animation) { + AnimatorListenerAdapterProxy.this.onAnimationCancel(animation); + } + + @Override + public void onAnimationEnd(Animator10 animation) { + AnimatorListenerAdapterProxy.this.onAnimationEnd(animation); + } + + @Override + public void onAnimationRepeat(Animator10 animation) { + AnimatorListenerAdapterProxy.this.onAnimationRepeat(animation); + } + + @Override + public void onAnimationStart(Animator10 animation) { + AnimatorListenerAdapterProxy.this.onAnimationStart(animation); + } + + @Override + public void onAnimationPause(Animator10 animation) { + AnimatorListenerAdapterProxy.this.onAnimationPause(animation); + } + + @Override + public void onAnimationResume(Animator10 animation) { + AnimatorListenerAdapterProxy.this.onAnimationResume(animation); + } + }; + } else { + animatorListenerAdapter = new AnimatorListenerAdapter() { + @Override + public void onAnimationCancel(Animator animation) { + AnimatorListenerAdapterProxy.this.onAnimationCancel(animation); + } + + @Override + public void onAnimationEnd(Animator animation) { + AnimatorListenerAdapterProxy.this.onAnimationEnd(animation); + } + + @Override + public void onAnimationRepeat(Animator animation) { + AnimatorListenerAdapterProxy.this.onAnimationRepeat(animation); + } + + @Override + public void onAnimationStart(Animator animation) { + AnimatorListenerAdapterProxy.this.onAnimationStart(animation); + } + + @Override + public void onAnimationPause(Animator animation) { + AnimatorListenerAdapterProxy.this.onAnimationPause(animation); + } + + @Override + public void onAnimationResume(Animator animation) { + AnimatorListenerAdapterProxy.this.onAnimationResume(animation); + } + }; + } + } + + public void onAnimationCancel(Object animation) { + + } + + public void onAnimationEnd(Object animation) { + + } + + public void onAnimationRepeat(Object animation) { + + } + + public void onAnimationStart(Object animation) { + + } + + public void onAnimationPause(Object animation) { + + } + + public void onAnimationResume(Object animation) { + + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/AnimationCompat/AnimatorSetProxy.java b/TMessagesProj/src/main/java/org/telegram/ui/AnimationCompat/AnimatorSetProxy.java new file mode 100644 index 000000000..49c4c8612 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/AnimationCompat/AnimatorSetProxy.java @@ -0,0 +1,68 @@ +/* + * This is the source code of Telegram for Android v. 1.7.x. + * It is licensed under GNU GPL v. 2 or later. + * You should have received a copy of the license in this archive (see LICENSE). + * + * Copyright Nikolai Kudashov, 2013-2014. + */ + +package org.telegram.ui.AnimationCompat; + +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.animation.AnimatorSet; + +import org.telegram.ui.Animation.Animator10; +import org.telegram.ui.Animation.AnimatorListenerAdapter10; +import org.telegram.ui.Animation.AnimatorSet10; +import org.telegram.ui.Animation.ObjectAnimator10; +import org.telegram.ui.Animation.View10; + +import java.util.Arrays; + +public class AnimatorSetProxy { + private Object animatorSet; + + public AnimatorSetProxy() { + if (View10.NEED_PROXY) { + animatorSet = new AnimatorSet10(); + } else { + animatorSet = new AnimatorSet(); + } + } + + public void playTogether(Object... items) { + if (View10.NEED_PROXY) { + Animator10[] animators = Arrays.copyOf(items, items.length, Animator10[].class); + ((AnimatorSet10) animatorSet).playTogether(animators); + } else { + Animator[] animators = Arrays.copyOf(items, items.length, Animator[].class); + ((AnimatorSet) animatorSet).playTogether(animators); + } + } + + public AnimatorSetProxy setDuration(long duration) { + if (View10.NEED_PROXY) { + ((AnimatorSet10) animatorSet).setDuration(duration); + } else { + ((AnimatorSet) animatorSet).setDuration(duration); + } + return this; + } + + public void start() { + if (View10.NEED_PROXY) { + ((AnimatorSet10) animatorSet).start(); + } else { + ((AnimatorSet) animatorSet).start(); + } + } + + public void addListener(AnimatorListenerAdapterProxy listener) { + if (View10.NEED_PROXY) { + ((AnimatorSet10) animatorSet).addListener((AnimatorListenerAdapter10)listener.animatorListenerAdapter); + } else { + ((AnimatorSet) animatorSet).addListener((AnimatorListenerAdapter) listener.animatorListenerAdapter); + } + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/AnimationCompat/ObjectAnimatorProxy.java b/TMessagesProj/src/main/java/org/telegram/ui/AnimationCompat/ObjectAnimatorProxy.java new file mode 100644 index 000000000..5263dcefd --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/AnimationCompat/ObjectAnimatorProxy.java @@ -0,0 +1,81 @@ +/* + * This is the source code of Telegram for Android v. 1.7.x. + * It is licensed under GNU GPL v. 2 or later. + * You should have received a copy of the license in this archive (see LICENSE). + * + * Copyright Nikolai Kudashov, 2013-2014. + */ + +package org.telegram.ui.AnimationCompat; + +import android.animation.ObjectAnimator; +import android.view.animation.Interpolator; + +import org.telegram.ui.Animation.ObjectAnimator10; +import org.telegram.ui.Animation.View10; + +public class ObjectAnimatorProxy { + + private Object objectAnimator; + + public ObjectAnimatorProxy(Object animator) { + objectAnimator = animator; + } + + public static Object ofFloat(Object target, String propertyName, float... values) { + if (View10.NEED_PROXY) { + return ObjectAnimator10.ofFloat(target, propertyName, values); + } else { + return ObjectAnimator.ofFloat(target, propertyName, values); + } + } + + public static Object ofInt(Object target, String propertyName, int... values) { + if (View10.NEED_PROXY) { + return ObjectAnimator10.ofInt(target, propertyName, values); + } else { + return ObjectAnimator.ofInt(target, propertyName, values); + } + } + + public static ObjectAnimatorProxy ofFloatProxy(Object target, String propertyName, float... values) { + if (View10.NEED_PROXY) { + return new ObjectAnimatorProxy(ObjectAnimator10.ofFloat(target, propertyName, values)); + } else { + return new ObjectAnimatorProxy(ObjectAnimator.ofFloat(target, propertyName, values)); + } + } + + public static ObjectAnimatorProxy ofIntProxy(Object target, String propertyName, int... values) { + if (View10.NEED_PROXY) { + return new ObjectAnimatorProxy(ObjectAnimator10.ofInt(target, propertyName, values)); + } else { + return new ObjectAnimatorProxy(ObjectAnimator.ofInt(target, propertyName, values)); + } + } + + public ObjectAnimatorProxy setDuration(long duration) { + if (View10.NEED_PROXY) { + ((ObjectAnimator10) objectAnimator).setDuration(duration); + } else { + ((ObjectAnimator) objectAnimator).setDuration(duration); + } + return this; + } + + public void setInterpolator(Interpolator value) { + if (View10.NEED_PROXY) { + ((ObjectAnimator10) objectAnimator).setInterpolator(value); + } else { + ((ObjectAnimator) objectAnimator).setInterpolator(value); + } + } + + public void start() { + if (View10.NEED_PROXY) { + ((ObjectAnimator10) objectAnimator).start(); + } else { + ((ObjectAnimator) objectAnimator).start(); + } + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/AnimationCompat/ViewProxy.java b/TMessagesProj/src/main/java/org/telegram/ui/AnimationCompat/ViewProxy.java new file mode 100644 index 000000000..478398bee --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/AnimationCompat/ViewProxy.java @@ -0,0 +1,248 @@ +/* + * This is the source code of Telegram for Android v. 1.7.x. + * It is licensed under GNU GPL v. 2 or later. + * You should have received a copy of the license in this archive (see LICENSE). + * + * Copyright Nikolai Kudashov, 2013-2014. + */ + +package org.telegram.ui.AnimationCompat; + +import android.view.View; + +import org.telegram.ui.Animation.View10; + +public class ViewProxy { + + public static float getAlpha(View view) { + if (View10.NEED_PROXY) { + return View10.wrap(view).getAlpha(); + } else { + return view.getAlpha(); + } + } + + public static void setAlpha(View view, float alpha) { + if (View10.NEED_PROXY) { + View10.wrap(view).setAlpha(alpha); + } else { + view.setAlpha(alpha); + } + } + + public static float getPivotX(View view) { + if (View10.NEED_PROXY) { + return View10.wrap(view).getPivotX(); + } else { + return view.getPivotX(); + } + } + + public static void setPivotX(View view, float pivotX) { + if (View10.NEED_PROXY) { + View10.wrap(view).setPivotX(pivotX); + } else { + view.setPivotX(pivotX); + } + } + + public static float getPivotY(View view) { + if (View10.NEED_PROXY) { + return View10.wrap(view).getPivotY(); + } else { + return view.getPivotY(); + } + } + + public static void setPivotY(View view, float pivotY) { + if (View10.NEED_PROXY) { + View10.wrap(view).setPivotY(pivotY); + } else { + view.setPivotY(pivotY); + } + } + + public static float getRotation(View view) { + if (View10.NEED_PROXY) { + return View10.wrap(view).getRotation(); + } else { + return view.getRotation(); + } + } + + public static void setRotation(View view, float rotation) { + if (View10.NEED_PROXY) { + View10.wrap(view).setRotation(rotation); + } else { + view.setRotation(rotation); + } + } + + public static float getRotationX(View view) { + if (View10.NEED_PROXY) { + return View10.wrap(view).getRotationX(); + } else { + return view.getRotationX(); + } + } + + public void setRotationX(View view, float rotationX) { + if (View10.NEED_PROXY) { + View10.wrap(view).setRotationX(rotationX); + } else { + view.setRotationX(rotationX); + } + } + + public static float getRotationY(View view) { + if (View10.NEED_PROXY) { + return View10.wrap(view).getRotationY(); + } else { + return view.getRotationY(); + } + } + + public void setRotationY(View view, float rotationY) { + if (View10.NEED_PROXY) { + View10.wrap(view).setRotationY(rotationY); + } else { + view.setRotationY(rotationY); + } + } + + public static float getScaleX(View view) { + if (View10.NEED_PROXY) { + return View10.wrap(view).getScaleX(); + } else { + return view.getScaleX(); + } + } + + public static void setScaleX(View view, float scaleX) { + if (View10.NEED_PROXY) { + View10.wrap(view).setScaleX(scaleX); + } else { + view.setScaleX(scaleX); + } + } + + public static float getScaleY(View view) { + if (View10.NEED_PROXY) { + return View10.wrap(view).getScaleY(); + } else { + return view.getScaleY(); + } + } + + public static void setScaleY(View view, float scaleY) { + if (View10.NEED_PROXY) { + View10.wrap(view).setScaleY(scaleY); + } else { + view.setScaleY(scaleY); + } + } + + public static int getScrollX(View view) { + if (View10.NEED_PROXY) { + return View10.wrap(view).getScrollX(); + } else { + return view.getScrollX(); + } + } + + public static void setScrollX(View view, int value) { + if (View10.NEED_PROXY) { + View10.wrap(view).setScrollX(value); + } else { + view.setScrollX(value); + } + } + + public static int getScrollY(View view) { + if (View10.NEED_PROXY) { + return View10.wrap(view).getScrollY(); + } else { + return view.getScrollY(); + } + } + + public static void setScrollY(View view, int value) { + if (View10.NEED_PROXY) { + View10.wrap(view).setScrollY(value); + } else { + view.setScrollY(value); + } + } + + public static float getTranslationX(View view) { + if (View10.NEED_PROXY) { + return View10.wrap(view).getTranslationX(); + } else { + return view.getTranslationX(); + } + } + + public static void setTranslationX(View view, float translationX) { + if (View10.NEED_PROXY) { + View10.wrap(view).setTranslationX(translationX); + } else { + view.setTranslationX(translationX); + } + } + + public static float getTranslationY(View view) { + if (View10.NEED_PROXY) { + return View10.wrap(view).getTranslationY(); + } else { + return view.getTranslationY(); + } + } + + public static void setTranslationY(View view, float translationY) { + if (View10.NEED_PROXY) { + View10.wrap(view).setTranslationY(translationY); + } else { + view.setTranslationY(translationY); + } + } + + public static float getX(View view) { + if (View10.NEED_PROXY) { + return View10.wrap(view).getX(); + } else { + return view.getX(); + } + } + + public static void setX(View view, float x) { + if (View10.NEED_PROXY) { + View10.wrap(view).setX(x); + } else { + view.setX(x); + } + } + + public static float getY(View view) { + if (View10.NEED_PROXY) { + return View10.wrap(view).getY(); + } else { + return view.getY(); + } + } + + public static void setY(View view, float y) { + if (View10.NEED_PROXY) { + View10.wrap(view).setY(y); + } else { + view.setY(y); + } + } + + public static Object wrap(View view) { + if (View10.NEED_PROXY) { + return View10.wrap(view); + } else { + return view; + } + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ApplicationLoader.java b/TMessagesProj/src/main/java/org/telegram/ui/ApplicationLoader.java index 04612ddd7..54cc2472d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ApplicationLoader.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ApplicationLoader.java @@ -272,7 +272,7 @@ public class ApplicationLoader extends Application { UserConfig.registeredForPush = !isNew; UserConfig.saveConfig(false); if (UserConfig.getClientUserId() != 0) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { MessagesController.getInstance().registerForPush(regid); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatActionCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatActionCell.java index 02849344c..8570dc306 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatActionCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatActionCell.java @@ -31,6 +31,7 @@ import org.telegram.messenger.R; import org.telegram.messenger.TLRPC; import org.telegram.messenger.UserConfig; import org.telegram.ui.PhotoViewer; +import org.telegram.ui.Views.AvatarDrawable; public class ChatActionCell extends BaseCell { @@ -47,6 +48,7 @@ public class ChatActionCell extends BaseCell { private URLSpan pressedLink; private ImageReceiver imageReceiver; + private AvatarDrawable avatarDrawable; private StaticLayout textLayout; private int textWidth = 0; private int textHeight = 0; @@ -72,6 +74,7 @@ public class ChatActionCell extends BaseCell { textPaint.linkColor = 0xffffffff; } imageReceiver = new ImageReceiver(this); + avatarDrawable = new AvatarDrawable(); textPaint.setTextSize(AndroidUtilities.dp(MessagesController.getInstance().fontSize)); } @@ -97,18 +100,19 @@ public class ChatActionCell extends BaseCell { } } } + avatarDrawable.setInfo(id, null, null, false); if (currentMessageObject.messageOwner.action instanceof TLRPC.TL_messageActionUserUpdatedPhoto) { - imageReceiver.setImage(currentMessageObject.messageOwner.action.newUserPhoto.photo_small, "50_50", getResources().getDrawable(AndroidUtilities.getUserAvatarForId(id)), false); + imageReceiver.setImage(currentMessageObject.messageOwner.action.newUserPhoto.photo_small, "50_50", avatarDrawable, false); } else { PhotoObject photo = PhotoObject.getClosestImageWithSize(currentMessageObject.photoThumbs, AndroidUtilities.dp(64)); if (photo != null) { if (photo.image != null) { imageReceiver.setImageBitmap(photo.image); } else { - imageReceiver.setImage(photo.photoOwner.location, "50_50", getResources().getDrawable(AndroidUtilities.getGroupAvatarForId(id)), false); + imageReceiver.setImage(photo.photoOwner.location, "50_50", avatarDrawable, false); } } else { - imageReceiver.setImageBitmap(getResources().getDrawable(AndroidUtilities.getGroupAvatarForId(id))); + imageReceiver.setImageBitmap(avatarDrawable); } } imageReceiver.setVisible(!PhotoViewer.getInstance().isShowingImage(currentMessageObject), false); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatAudioCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatAudioCell.java index 4569a7094..271c863ec 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatAudioCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatAudioCell.java @@ -25,6 +25,7 @@ import org.telegram.android.MessagesController; import org.telegram.messenger.R; import org.telegram.android.MessageObject; import org.telegram.android.ImageReceiver; +import org.telegram.ui.Views.AvatarDrawable; import org.telegram.ui.Views.ProgressView; import org.telegram.ui.Views.SeekBar; @@ -36,6 +37,7 @@ public class ChatAudioCell extends ChatBaseCell implements SeekBar.SeekBarDelega private static TextPaint timePaint; private ImageReceiver avatarImage; + private AvatarDrawable avatarDrawable; private boolean needAvatarImage = false; private SeekBar seekBar; private ProgressView progressView; @@ -66,6 +68,7 @@ public class ChatAudioCell extends ChatBaseCell implements SeekBar.SeekBarDelega seekBar = new SeekBar(context); seekBar.delegate = this; progressView = new ProgressView(); + avatarDrawable = new AvatarDrawable(); if (timePaint == null) { statesDrawable[0][0] = getResources().getDrawable(R.drawable.play1); @@ -364,11 +367,15 @@ public class ChatAudioCell extends ChatBaseCell implements SeekBar.SeekBarDelega if (audioUser != null) { if (audioUser.photo != null) { currentPhoto = audioUser.photo.photo_small; + } else { + currentPhoto = null; } - avatarImage.setImage(currentPhoto, "50_50", getResources().getDrawable(AndroidUtilities.getUserAvatarForId(uid)), false); + avatarDrawable.setInfo(audioUser); } else { - avatarImage.setImage(null, "50_50", getResources().getDrawable(AndroidUtilities.getUserAvatarForId(uid)), false); + avatarDrawable.setInfo(uid, null, null, false); + currentPhoto = null; } + avatarImage.setImage(currentPhoto, "50_50", avatarDrawable, false); } if (messageObject.isOut()) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatBaseCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatBaseCell.java index b3ad22bf6..615c05c70 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatBaseCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatBaseCell.java @@ -28,6 +28,7 @@ import org.telegram.android.MessagesController; import org.telegram.messenger.R; import org.telegram.android.MessageObject; import org.telegram.android.ImageReceiver; +import org.telegram.ui.Views.AvatarDrawable; public class ChatBaseCell extends BaseCell { @@ -77,6 +78,7 @@ public class ChatBaseCell extends BaseCell { protected int layoutHeight; private ImageReceiver avatarImage; + private AvatarDrawable avatarDrawable; private boolean avatarPressed = false; private boolean forwardNamePressed = false; @@ -154,6 +156,7 @@ public class ChatBaseCell extends BaseCell { forwardNamePaint.setTextSize(AndroidUtilities.dp(14)); } avatarImage = new ImageReceiver(this); + avatarDrawable = new AvatarDrawable(); } @Override @@ -236,10 +239,12 @@ public class ChatBaseCell extends BaseCell { } else { currentPhoto = null; } - avatarImage.setImage(currentPhoto, "50_50", getResources().getDrawable(AndroidUtilities.getUserAvatarForId(currentUser.id)), false); + avatarDrawable.setInfo(currentUser); } else { - avatarImage.setImage(null, "50_50", null, false); + currentPhoto = null; + avatarDrawable.setInfo(messageObject.messageOwner.from_id, null, null, false); } + avatarImage.setImage(currentPhoto, "50_50", avatarDrawable, false); } if (!media) { @@ -389,13 +394,13 @@ public class ChatBaseCell extends BaseCell { if (!currentMessageObject.isOut()) { timeX = backgroundWidth - AndroidUtilities.dp(9) - timeWidth + (isChat ? AndroidUtilities.dp(52) : 0); } else { - timeX = layoutWidth - timeWidth - AndroidUtilities.dpf(38.5f); + timeX = layoutWidth - timeWidth - AndroidUtilities.dp(38.5f); } } else { if (!currentMessageObject.isOut()) { timeX = backgroundWidth - AndroidUtilities.dp(4) - timeWidth + (isChat ? AndroidUtilities.dp(52) : 0); } else { - timeX = layoutWidth - timeWidth - AndroidUtilities.dpf(42.0f); + timeX = layoutWidth - timeWidth - AndroidUtilities.dp(42.0f); } } @@ -476,7 +481,7 @@ public class ChatBaseCell extends BaseCell { if (drawName && nameLayout != null) { canvas.save(); canvas.translate(currentBackgroundDrawable.getBounds().left + AndroidUtilities.dp(19) - nameOffsetX, AndroidUtilities.dp(10)); - namePaint.setColor(AndroidUtilities.getColorForId(currentUser.id)); + namePaint.setColor(AvatarDrawable.getColorForId(currentUser.id)); nameLayout.draw(canvas); canvas.restore(); } @@ -499,16 +504,16 @@ public class ChatBaseCell extends BaseCell { if (drawTime) { if (media) { - setDrawableBounds(mediaBackgroundDrawable, timeX - AndroidUtilities.dp(3), layoutHeight - AndroidUtilities.dpf(27.5f), timeWidth + AndroidUtilities.dp(6 + (currentMessageObject.isOut() ? 20 : 0)), AndroidUtilities.dpf(16.5f)); + setDrawableBounds(mediaBackgroundDrawable, timeX - AndroidUtilities.dp(3), layoutHeight - AndroidUtilities.dp(27.5f), timeWidth + AndroidUtilities.dp(6 + (currentMessageObject.isOut() ? 20 : 0)), AndroidUtilities.dp(16.5f)); mediaBackgroundDrawable.draw(canvas); canvas.save(); - canvas.translate(timeX, layoutHeight - AndroidUtilities.dpf(12.0f) - timeLayout.getHeight()); + canvas.translate(timeX, layoutHeight - AndroidUtilities.dp(12.0f) - timeLayout.getHeight()); timeLayout.draw(canvas); canvas.restore(); } else { canvas.save(); - canvas.translate(timeX, layoutHeight - AndroidUtilities.dpf(6.5f) - timeLayout.getHeight()); + canvas.translate(timeX, layoutHeight - AndroidUtilities.dp(6.5f) - timeLayout.getHeight()); timeLayout.draw(canvas); canvas.restore(); } @@ -544,20 +549,20 @@ public class ChatBaseCell extends BaseCell { if (drawClock) { if (!media) { - setDrawableBounds(clockDrawable, layoutWidth - AndroidUtilities.dpf(18.5f) - clockDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dpf(8.5f) - clockDrawable.getIntrinsicHeight()); + setDrawableBounds(clockDrawable, layoutWidth - AndroidUtilities.dp(18.5f) - clockDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(8.5f) - clockDrawable.getIntrinsicHeight()); clockDrawable.draw(canvas); } else { - setDrawableBounds(clockMediaDrawable, layoutWidth - AndroidUtilities.dpf(22.0f) - clockMediaDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dpf(13.0f) - clockMediaDrawable.getIntrinsicHeight()); + setDrawableBounds(clockMediaDrawable, layoutWidth - AndroidUtilities.dp(22.0f) - clockMediaDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(13.0f) - clockMediaDrawable.getIntrinsicHeight()); clockMediaDrawable.draw(canvas); } } if (isBroadcast) { if (drawCheck1 || drawCheck2) { if (!media) { - setDrawableBounds(broadcastDrawable, layoutWidth - AndroidUtilities.dpf(20.5f) - broadcastDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dpf(8.0f) - broadcastDrawable.getIntrinsicHeight()); + setDrawableBounds(broadcastDrawable, layoutWidth - AndroidUtilities.dp(20.5f) - broadcastDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(8.0f) - broadcastDrawable.getIntrinsicHeight()); broadcastDrawable.draw(canvas); } else { - setDrawableBounds(broadcastMediaDrawable, layoutWidth - AndroidUtilities.dpf(24.0f) - broadcastMediaDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dpf(13.0f) - broadcastMediaDrawable.getIntrinsicHeight()); + setDrawableBounds(broadcastMediaDrawable, layoutWidth - AndroidUtilities.dp(24.0f) - broadcastMediaDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(13.0f) - broadcastMediaDrawable.getIntrinsicHeight()); broadcastMediaDrawable.draw(canvas); } } @@ -565,36 +570,36 @@ public class ChatBaseCell extends BaseCell { if (drawCheck2) { if (!media) { if (drawCheck1) { - setDrawableBounds(checkDrawable, layoutWidth - AndroidUtilities.dpf(22.5f) - checkDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dpf(8.5f) - checkDrawable.getIntrinsicHeight()); + setDrawableBounds(checkDrawable, layoutWidth - AndroidUtilities.dp(22.5f) - checkDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(8.5f) - checkDrawable.getIntrinsicHeight()); } else { - setDrawableBounds(checkDrawable, layoutWidth - AndroidUtilities.dpf(18.5f) - checkDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dpf(8.5f) - checkDrawable.getIntrinsicHeight()); + setDrawableBounds(checkDrawable, layoutWidth - AndroidUtilities.dp(18.5f) - checkDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(8.5f) - checkDrawable.getIntrinsicHeight()); } checkDrawable.draw(canvas); } else { if (drawCheck1) { - setDrawableBounds(checkMediaDrawable, layoutWidth - AndroidUtilities.dpf(26.0f) - checkMediaDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dpf(13.0f) - checkMediaDrawable.getIntrinsicHeight()); + setDrawableBounds(checkMediaDrawable, layoutWidth - AndroidUtilities.dp(26.0f) - checkMediaDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(13.0f) - checkMediaDrawable.getIntrinsicHeight()); } else { - setDrawableBounds(checkMediaDrawable, layoutWidth - AndroidUtilities.dpf(22.0f) - checkMediaDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dpf(13.0f) - checkMediaDrawable.getIntrinsicHeight()); + setDrawableBounds(checkMediaDrawable, layoutWidth - AndroidUtilities.dp(22.0f) - checkMediaDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(13.0f) - checkMediaDrawable.getIntrinsicHeight()); } checkMediaDrawable.draw(canvas); } } if (drawCheck1) { if (!media) { - setDrawableBounds(halfCheckDrawable, layoutWidth - AndroidUtilities.dp(18) - halfCheckDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dpf(8.5f) - halfCheckDrawable.getIntrinsicHeight()); + setDrawableBounds(halfCheckDrawable, layoutWidth - AndroidUtilities.dp(18) - halfCheckDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(8.5f) - halfCheckDrawable.getIntrinsicHeight()); halfCheckDrawable.draw(canvas); } else { - setDrawableBounds(halfCheckMediaDrawable, layoutWidth - AndroidUtilities.dpf(20.5f) - halfCheckMediaDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dpf(13.0f) - halfCheckMediaDrawable.getIntrinsicHeight()); + setDrawableBounds(halfCheckMediaDrawable, layoutWidth - AndroidUtilities.dp(20.5f) - halfCheckMediaDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(13.0f) - halfCheckMediaDrawable.getIntrinsicHeight()); halfCheckMediaDrawable.draw(canvas); } } } if (drawError) { if (!media) { - setDrawableBounds(errorDrawable, layoutWidth - AndroidUtilities.dp(18) - errorDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dpf(6.5f) - errorDrawable.getIntrinsicHeight()); + setDrawableBounds(errorDrawable, layoutWidth - AndroidUtilities.dp(18) - errorDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(6.5f) - errorDrawable.getIntrinsicHeight()); errorDrawable.draw(canvas); } else { - setDrawableBounds(errorDrawable, layoutWidth - AndroidUtilities.dpf(20.5f) - errorDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dpf(12.5f) - errorDrawable.getIntrinsicHeight()); + setDrawableBounds(errorDrawable, layoutWidth - AndroidUtilities.dp(20.5f) - errorDrawable.getIntrinsicWidth(), layoutHeight - AndroidUtilities.dp(12.5f) - errorDrawable.getIntrinsicHeight()); errorDrawable.draw(canvas); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatContactCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatContactCell.java index 4803d4114..f84ceb243 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatContactCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatContactCell.java @@ -28,6 +28,7 @@ import org.telegram.android.MessagesController; import org.telegram.messenger.R; import org.telegram.messenger.TLRPC; import org.telegram.messenger.UserConfig; +import org.telegram.ui.Views.AvatarDrawable; public class ChatContactCell extends ChatBaseCell { @@ -42,6 +43,7 @@ public class ChatContactCell extends ChatBaseCell { private static Drawable addContactDrawableOut; private ImageReceiver avatarImage; + private AvatarDrawable avatarDrawable; private StaticLayout nameLayout; private StaticLayout phoneLayout; @@ -183,11 +185,15 @@ public class ChatContactCell extends ChatBaseCell { if (contactUser != null) { if (contactUser.photo != null) { currentPhoto = contactUser.photo.photo_small; + } else { + currentPhoto = null; } - avatarImage.setImage(currentPhoto, "50_50", getResources().getDrawable(AndroidUtilities.getUserAvatarForId(uid)), false); + avatarDrawable.setInfo(contactUser); } else { - avatarImage.setImage(null, "50_50", getResources().getDrawable(AndroidUtilities.getUserAvatarForId(uid)), false); + currentPhoto = null; + avatarDrawable.setInfo(uid, null, null, false); } + avatarImage.setImage(currentPhoto, "50_50", avatarDrawable, false); String currentNameString = ContactsController.formatName(messageObject.messageOwner.media.first_name, messageObject.messageOwner.media.last_name); int nameWidth = Math.min((int) Math.ceil(namePaint.measureText(currentNameString)), maxWidth); @@ -265,7 +271,7 @@ public class ChatContactCell extends ChatBaseCell { if (nameLayout != null) { canvas.save(); canvas.translate(avatarImage.getImageX() + avatarImage.getImageWidth() + AndroidUtilities.dp(9), AndroidUtilities.dp(10)); - namePaint.setColor(AndroidUtilities.getColorForId(currentMessageObject.messageOwner.media.user_id)); + namePaint.setColor(AvatarDrawable.getColorForId(currentMessageObject.messageOwner.media.user_id)); nameLayout.draw(canvas); canvas.restore(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMediaCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMediaCell.java index cc6480a07..754a7e164 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMediaCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMediaCell.java @@ -911,16 +911,16 @@ public class ChatMediaCell extends ChatBaseCell implements MediaController.FileD } } else if (infoLayout != null && (buttonState == 1 || buttonState == 0 || buttonState == 3 || currentMessageObject.isSecretPhoto())) { infoPaint.setColor(0xffffffff); - setDrawableBounds(mediaBackgroundDrawable, photoImage.getImageX() + AndroidUtilities.dp(4), photoImage.getImageY() + AndroidUtilities.dp(4), infoWidth + AndroidUtilities.dp(8) + infoOffset, AndroidUtilities.dpf(16.5f)); + setDrawableBounds(mediaBackgroundDrawable, photoImage.getImageX() + AndroidUtilities.dp(4), photoImage.getImageY() + AndroidUtilities.dp(4), infoWidth + AndroidUtilities.dp(8) + infoOffset, AndroidUtilities.dp(16.5f)); mediaBackgroundDrawable.draw(canvas); if (currentMessageObject.type == 3) { - setDrawableBounds(videoIconDrawable, photoImage.getImageX() + AndroidUtilities.dp(8), photoImage.getImageY() + AndroidUtilities.dpf(7.5f)); + setDrawableBounds(videoIconDrawable, photoImage.getImageX() + AndroidUtilities.dp(8), photoImage.getImageY() + AndroidUtilities.dp(7.5f)); videoIconDrawable.draw(canvas); } canvas.save(); - canvas.translate(photoImage.getImageX() + AndroidUtilities.dp(8) + infoOffset, photoImage.getImageY() + AndroidUtilities.dpf(5.5f)); + canvas.translate(photoImage.getImageX() + AndroidUtilities.dp(8) + infoOffset, photoImage.getImageY() + AndroidUtilities.dp(5.5f)); infoLayout.draw(canvas); canvas.restore(); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java index a28e59ba2..639d34a47 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java @@ -160,14 +160,14 @@ public class ChatMessageCell extends ChatBaseCell { super.setMessageObject(messageObject); backgroundWidth = messageObject.textWidth; - totalHeight = messageObject.textHeight + AndroidUtilities.dpf(19.5f) + namesOffset; + totalHeight = messageObject.textHeight + AndroidUtilities.dp(19.5f) + namesOffset; int maxChildWidth = Math.max(backgroundWidth, nameWidth); maxChildWidth = Math.max(maxChildWidth, forwardedNameWidth); int timeMore = timeWidth + AndroidUtilities.dp(6); if (messageObject.isOut()) { - timeMore += AndroidUtilities.dpf(20.5f); + timeMore += AndroidUtilities.dp(20.5f); } if (maxWidth - messageObject.lastLineWidth < timeMore) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatOrUserCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatOrUserCell.java index 7008878d8..a705adc9a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatOrUserCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatOrUserCell.java @@ -27,13 +27,13 @@ import org.telegram.android.MessagesController; import org.telegram.messenger.R; import org.telegram.messenger.UserConfig; import org.telegram.android.ImageReceiver; +import org.telegram.ui.Views.AvatarDrawable; public class ChatOrUserCell extends BaseCell { private static TextPaint namePaint; private static TextPaint nameEncryptedPaint; private static TextPaint onlinePaint; private static TextPaint offlinePaint; - private static Drawable lockDrawable; private static Drawable broadcastDrawable; private static Drawable groupDrawable; @@ -41,9 +41,9 @@ public class ChatOrUserCell extends BaseCell { private CharSequence currentName; private ImageReceiver avatarImage; + private AvatarDrawable avatarDrawable; private CharSequence subLabel; - private ChatOrUserCellLayout cellLayout; private TLRPC.User user = null; private TLRPC.Chat chat = null; private TLRPC.EncryptedChat encryptedChat = null; @@ -56,9 +56,26 @@ public class ChatOrUserCell extends BaseCell { public boolean useSeparator = false; public float drawAlpha = 1; + private int nameLeft; + private int nameTop; + private StaticLayout nameLayout; + private boolean drawNameLock; + private boolean drawNameBroadcast; + private boolean drawNameGroup; + private int nameLockLeft; + private int nameLockTop; + + private int onlineLeft; + private int onlineTop = AndroidUtilities.dp(36); + private StaticLayout onlineLayout; + + private int avatarTop = AndroidUtilities.dp(7); + public ChatOrUserCell(Context context) { super(context); init(); + avatarImage = new ImageReceiver(this); + avatarDrawable = new AvatarDrawable(); } private void init() { @@ -66,50 +83,28 @@ public class ChatOrUserCell extends BaseCell { namePaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); namePaint.setTextSize(AndroidUtilities.dp(18)); namePaint.setColor(0xff222222); - } - if (nameEncryptedPaint == null) { nameEncryptedPaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); nameEncryptedPaint.setTextSize(AndroidUtilities.dp(18)); nameEncryptedPaint.setColor(0xff00a60e); - } - if (onlinePaint == null) { onlinePaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); onlinePaint.setTextSize(AndroidUtilities.dp(15)); onlinePaint.setColor(0xff316f9f); - } - if (offlinePaint == null) { offlinePaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); offlinePaint.setTextSize(AndroidUtilities.dp(15)); offlinePaint.setColor(0xff999999); - } - if (lockDrawable == null) { lockDrawable = getResources().getDrawable(R.drawable.ic_lock_green); - } - if (linePaint == null) { linePaint = new Paint(); linePaint.setColor(0xffdcdcdc); - } - if (broadcastDrawable == null) { broadcastDrawable = getResources().getDrawable(R.drawable.broadcast); - } - if (groupDrawable == null) { groupDrawable = getResources().getDrawable(R.drawable.grouplist); } - - if (avatarImage == null) { - avatarImage = new ImageReceiver(this); - } - - if (cellLayout == null) { - cellLayout = new ChatOrUserCellLayout(); - } } public void setData(TLRPC.User u, TLRPC.Chat c, TLRPC.EncryptedChat ec, CharSequence n, CharSequence s) { @@ -147,26 +142,181 @@ public class ChatOrUserCell extends BaseCell { } public void buildLayout() { - cellLayout.build(getMeasuredWidth(), getMeasuredHeight()); + CharSequence nameString = ""; + TextPaint currentNamePaint; + + drawNameBroadcast = false; + drawNameLock = false; + drawNameGroup = false; + + if (encryptedChat != null) { + drawNameLock = true; + if (!LocaleController.isRTL) { + nameLockLeft = AndroidUtilities.dp(61 + (usePadding ? 11 : 0)); + nameLeft = AndroidUtilities.dp(65 + (usePadding ? 11 : 0)) + lockDrawable.getIntrinsicWidth(); + } else { + nameLockLeft = getMeasuredWidth() - AndroidUtilities.dp(63 + (usePadding ? 11 : 0)) - lockDrawable.getIntrinsicWidth(); + nameLeft = usePadding ? AndroidUtilities.dp(11) : 0; + } + nameLockTop = AndroidUtilities.dp(15); + } else { + if (chat != null) { + nameLockTop = AndroidUtilities.dp(26); + if (chat.id < 0) { + drawNameBroadcast = true; + } else { + drawNameGroup = true; + } + if (!LocaleController.isRTL) { + nameLockLeft = AndroidUtilities.dp(61 + (usePadding ? 11 : 0)); + nameLeft = AndroidUtilities.dp(65 + (usePadding ? 11 : 0)) + (drawNameGroup ? groupDrawable.getIntrinsicWidth() : broadcastDrawable.getIntrinsicWidth()); + } else { + nameLockLeft = getMeasuredWidth() - AndroidUtilities.dp(63 + (usePadding ? 11 : 0)) - (drawNameGroup ? groupDrawable.getIntrinsicWidth() : broadcastDrawable.getIntrinsicWidth()); + nameLeft = usePadding ? AndroidUtilities.dp(11) : 0; + } + } else { + if (!LocaleController.isRTL) { + nameLeft = AndroidUtilities.dp(61 + (usePadding ? 11 : 0)); + } else { + nameLeft = usePadding ? AndroidUtilities.dp(11) : 0; + } + } + } + + if (currentName != null) { + nameString = currentName; + } else { + String nameString2 = ""; + if (chat != null) { + nameString2 = chat.title; + } else if (user != null) { + nameString2 = ContactsController.formatName(user.first_name, user.last_name); + } + nameString = nameString2.replace("\n", " "); + } + if (nameString.length() == 0) { + if (user != null && user.phone != null && user.phone.length() != 0) { + nameString = PhoneFormat.getInstance().format("+" + user.phone); + } else { + nameString = LocaleController.getString("HiddenName", R.string.HiddenName); + } + } + if (encryptedChat != null) { + currentNamePaint = nameEncryptedPaint; + } else { + currentNamePaint = namePaint; + } + + int onlineWidth; + int nameWidth; + if (!LocaleController.isRTL) { + onlineWidth = nameWidth = getMeasuredWidth() - nameLeft - AndroidUtilities.dp(3 + (usePadding ? 11 : 0)); + } else { + onlineWidth = nameWidth = getMeasuredWidth() - nameLeft - AndroidUtilities.dp(61 + (usePadding ? 11 : 0)); + } + if (drawNameLock) { + nameWidth -= AndroidUtilities.dp(6) + lockDrawable.getIntrinsicWidth(); + } else if (drawNameBroadcast) { + nameWidth -= AndroidUtilities.dp(6) + broadcastDrawable.getIntrinsicWidth(); + } + + CharSequence nameStringFinal = TextUtils.ellipsize(nameString, currentNamePaint, nameWidth - AndroidUtilities.dp(12), TextUtils.TruncateAt.END); + nameLayout = new StaticLayout(nameStringFinal, currentNamePaint, nameWidth, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false); + + if (chat == null) { + if (!LocaleController.isRTL) { + onlineLeft = AndroidUtilities.dp(61 + (usePadding ? 11 : 0)); + } else { + onlineLeft = usePadding ? AndroidUtilities.dp(11) : 0; + } + + CharSequence onlineString = ""; + TextPaint currentOnlinePaint = offlinePaint; + + if (subLabel != null) { + onlineString = subLabel; + } else { + onlineString = LocaleController.formatUserStatus(user); + if (user != null && (user.id == UserConfig.getClientUserId() || user.status != null && user.status.expires > ConnectionsManager.getInstance().getCurrentTime())) { + currentOnlinePaint = onlinePaint; + onlineString = LocaleController.getString("Online", R.string.Online); + } + } + + CharSequence onlineStringFinal = TextUtils.ellipsize(onlineString, currentOnlinePaint, nameWidth - AndroidUtilities.dp(12), TextUtils.TruncateAt.END); + onlineLayout = new StaticLayout(onlineStringFinal, currentOnlinePaint, nameWidth, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false); + nameTop = AndroidUtilities.dp(12); + } else { + onlineLayout = null; + nameTop = AndroidUtilities.dp(22); + } + + int avatarLeft; + if (!LocaleController.isRTL) { + avatarLeft = usePadding ? AndroidUtilities.dp(11) : 0; + } else { + avatarLeft = getMeasuredWidth() - AndroidUtilities.dp(50 + (usePadding ? 11 : 0)); + } + avatarImage.setImageCoords(avatarLeft, avatarTop, AndroidUtilities.dp(50), AndroidUtilities.dp(50)); + + + double widthpx = 0; + float left = 0; + if (LocaleController.isRTL) { + if (nameLayout.getLineCount() > 0) { + left = nameLayout.getLineLeft(0); + if (left == 0) { + widthpx = Math.ceil(nameLayout.getLineWidth(0)); + if (widthpx < nameWidth) { + nameLeft += (nameWidth - widthpx); + } + } + } + if (onlineLayout != null && onlineLayout.getLineCount() > 0) { + left = onlineLayout.getLineLeft(0); + if (left == 0) { + widthpx = Math.ceil(onlineLayout.getLineWidth(0)); + if (widthpx < onlineWidth) { + onlineLeft += (onlineWidth - widthpx); + } + } + } + } else { + if (nameLayout.getLineCount() > 0) { + left = nameLayout.getLineRight(0); + if (left == nameWidth) { + widthpx = Math.ceil(nameLayout.getLineWidth(0)); + if (widthpx < nameWidth) { + nameLeft -= (nameWidth - widthpx); + } + } + } + if (onlineLayout != null && onlineLayout.getLineCount() > 0) { + left = onlineLayout.getLineRight(0); + if (left == onlineWidth) { + widthpx = Math.ceil(onlineLayout.getLineWidth(0)); + if (widthpx < onlineWidth) { + onlineLeft -= (onlineWidth - widthpx); + } + } + } + } } public void update(int mask) { - int placeHolderId = 0; TLRPC.FileLocation photo = null; if (user != null) { if (user.photo != null) { photo = user.photo.photo_small; } - placeHolderId = AndroidUtilities.getUserAvatarForId(user.id); + avatarDrawable.setInfo(user); } else if (chat != null) { if (chat.photo != null) { photo = chat.photo.photo_small; } - if (chat.id > 0) { - placeHolderId = AndroidUtilities.getGroupAvatarForId(chat.id); - } else { - placeHolderId = AndroidUtilities.getBroadcastAvatarForId(chat.id); - } + avatarDrawable.setInfo(chat); + } else { + avatarDrawable.setInfo(0, null, null, false); } if (mask != 0) { @@ -215,7 +365,7 @@ public class ChatOrUserCell extends BaseCell { lastAvatar = photo; - avatarImage.setImage(photo, "50_50", placeHolderId == 0 ? null : getResources().getDrawable(placeHolderId), false); + avatarImage.setImage(photo, "50_50", avatarDrawable, false); if (getMeasuredWidth() != 0 || getMeasuredHeight() != 0) { buildLayout(); @@ -231,11 +381,6 @@ public class ChatOrUserCell extends BaseCell { return; } - if (cellLayout == null) { - requestLayout(); - return; - } - if (useSeparator) { int h = getMeasuredHeight(); if (!usePadding) { @@ -249,208 +394,29 @@ public class ChatOrUserCell extends BaseCell { canvas.saveLayerAlpha(0, 0, canvas.getWidth(), canvas.getHeight(), (int)(255 * drawAlpha), Canvas.HAS_ALPHA_LAYER_SAVE_FLAG); } - if (cellLayout.drawNameLock) { - setDrawableBounds(lockDrawable, cellLayout.nameLockLeft, cellLayout.nameLockTop); + if (drawNameLock) { + setDrawableBounds(lockDrawable, nameLockLeft, nameLockTop); lockDrawable.draw(canvas); - } else if (cellLayout.drawNameGroup) { - setDrawableBounds(groupDrawable, cellLayout.nameLockLeft, cellLayout.nameLockTop); + } else if (drawNameGroup) { + setDrawableBounds(groupDrawable, nameLockLeft, nameLockTop); groupDrawable.draw(canvas); - } else if (cellLayout.drawNameBroadcast) { - setDrawableBounds(broadcastDrawable, cellLayout.nameLockLeft, cellLayout.nameLockTop); + } else if (drawNameBroadcast) { + setDrawableBounds(broadcastDrawable, nameLockLeft, nameLockTop); broadcastDrawable.draw(canvas); } canvas.save(); - canvas.translate(cellLayout.nameLeft, cellLayout.nameTop); - cellLayout.nameLayout.draw(canvas); + canvas.translate(nameLeft, nameTop); + nameLayout.draw(canvas); canvas.restore(); - if (cellLayout.onlineLayout != null) { + if (onlineLayout != null) { canvas.save(); - canvas.translate(cellLayout.onlineLeft, cellLayout.onlineTop); - cellLayout.onlineLayout.draw(canvas); + canvas.translate(onlineLeft, onlineTop); + onlineLayout.draw(canvas); canvas.restore(); } avatarImage.draw(canvas); } - - private class ChatOrUserCellLayout { - private int nameLeft; - private int nameTop; - private int nameWidth; - private StaticLayout nameLayout; - private boolean drawNameLock; - private boolean drawNameBroadcast; - private boolean drawNameGroup; - private int nameLockLeft; - private int nameLockTop; - - private int onlineLeft; - private int onlineTop = AndroidUtilities.dp(36); - private int onlineWidth; - private StaticLayout onlineLayout; - - private int avatarTop = AndroidUtilities.dp(7); - private int avatarLeft; - - public void build(int width, int height) { - CharSequence nameString = ""; - TextPaint currentNamePaint; - - drawNameBroadcast = false; - drawNameLock = false; - drawNameGroup = false; - - if (encryptedChat != null) { - drawNameLock = true; - if (!LocaleController.isRTL) { - nameLockLeft = AndroidUtilities.dp(61 + (usePadding ? 11 : 0)); - nameLeft = AndroidUtilities.dp(65 + (usePadding ? 11 : 0)) + lockDrawable.getIntrinsicWidth(); - } else { - nameLockLeft = width - AndroidUtilities.dp(63 + (usePadding ? 11 : 0)) - lockDrawable.getIntrinsicWidth(); - nameLeft = usePadding ? AndroidUtilities.dp(11) : 0; - } - nameLockTop = AndroidUtilities.dp(15); - } else { - if (chat != null) { - nameLockTop = AndroidUtilities.dp(26); - if (chat.id < 0) { - drawNameBroadcast = true; - } else { - drawNameGroup = true; - } - if (!LocaleController.isRTL) { - nameLockLeft = AndroidUtilities.dp(61 + (usePadding ? 11 : 0)); - nameLeft = AndroidUtilities.dp(65 + (usePadding ? 11 : 0)) + (drawNameGroup ? groupDrawable.getIntrinsicWidth() : broadcastDrawable.getIntrinsicWidth()); - } else { - nameLockLeft = width - AndroidUtilities.dp(63 + (usePadding ? 11 : 0)) - (drawNameGroup ? groupDrawable.getIntrinsicWidth() : broadcastDrawable.getIntrinsicWidth()); - nameLeft = usePadding ? AndroidUtilities.dp(11) : 0; - } - } else { - if (!LocaleController.isRTL) { - nameLeft = AndroidUtilities.dp(61 + (usePadding ? 11 : 0)); - } else { - nameLeft = usePadding ? AndroidUtilities.dp(11) : 0; - } - } - } - - if (currentName != null) { - nameString = currentName; - } else { - String nameString2 = ""; - if (chat != null) { - nameString2 = chat.title; - } else if (user != null) { - nameString2 = ContactsController.formatName(user.first_name, user.last_name); - } - nameString = nameString2.replace("\n", " "); - } - if (nameString.length() == 0) { - if (user != null && user.phone != null && user.phone.length() != 0) { - nameString = PhoneFormat.getInstance().format("+" + user.phone); - } else { - nameString = LocaleController.getString("HiddenName", R.string.HiddenName); - } - } - if (encryptedChat != null) { - currentNamePaint = nameEncryptedPaint; - } else { - currentNamePaint = namePaint; - } - - if (!LocaleController.isRTL) { - onlineWidth = nameWidth = width - nameLeft - AndroidUtilities.dp(3 + (usePadding ? 11 : 0)); - } else { - onlineWidth = nameWidth = width - nameLeft - AndroidUtilities.dp(61 + (usePadding ? 11 : 0)); - } - if (drawNameLock) { - nameWidth -= AndroidUtilities.dp(6) + lockDrawable.getIntrinsicWidth(); - } else if (drawNameBroadcast) { - nameWidth -= AndroidUtilities.dp(6) + broadcastDrawable.getIntrinsicWidth(); - } - - CharSequence nameStringFinal = TextUtils.ellipsize(nameString, currentNamePaint, nameWidth - AndroidUtilities.dp(12), TextUtils.TruncateAt.END); - nameLayout = new StaticLayout(nameStringFinal, currentNamePaint, nameWidth, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false); - - if (chat == null) { - if (!LocaleController.isRTL) { - onlineLeft = AndroidUtilities.dp(61 + (usePadding ? 11 : 0)); - } else { - onlineLeft = usePadding ? AndroidUtilities.dp(11) : 0; - } - - CharSequence onlineString = ""; - TextPaint currentOnlinePaint = offlinePaint; - - if (subLabel != null) { - onlineString = subLabel; - } else { - onlineString = LocaleController.formatUserStatus(user); - if (user != null && (user.id == UserConfig.getClientUserId() || user.status != null && user.status.expires > ConnectionsManager.getInstance().getCurrentTime())) { - currentOnlinePaint = onlinePaint; - onlineString = LocaleController.getString("Online", R.string.Online); - } - } - - CharSequence onlineStringFinal = TextUtils.ellipsize(onlineString, currentOnlinePaint, nameWidth - AndroidUtilities.dp(12), TextUtils.TruncateAt.END); - onlineLayout = new StaticLayout(onlineStringFinal, currentOnlinePaint, nameWidth, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false); - nameTop = AndroidUtilities.dp(12); - } else { - onlineLayout = null; - nameTop = AndroidUtilities.dp(22); - } - - if (!LocaleController.isRTL) { - avatarLeft = usePadding ? AndroidUtilities.dp(11) : 0; - } else { - avatarLeft = width - AndroidUtilities.dp(50 + (usePadding ? 11 : 0)); - } - avatarImage.setImageCoords(avatarLeft, avatarTop, AndroidUtilities.dp(50), AndroidUtilities.dp(50)); - - - double widthpx = 0; - float left = 0; - if (LocaleController.isRTL) { - if (nameLayout.getLineCount() > 0) { - left = nameLayout.getLineLeft(0); - if (left == 0) { - widthpx = Math.ceil(nameLayout.getLineWidth(0)); - if (widthpx < nameWidth) { - nameLeft += (nameWidth - widthpx); - } - } - } - if (onlineLayout != null && onlineLayout.getLineCount() > 0) { - left = onlineLayout.getLineLeft(0); - if (left == 0) { - widthpx = Math.ceil(onlineLayout.getLineWidth(0)); - if (widthpx < onlineWidth) { - onlineLeft += (onlineWidth - widthpx); - } - } - } - } else { - if (nameLayout.getLineCount() > 0) { - left = nameLayout.getLineRight(0); - if (left == nameWidth) { - widthpx = Math.ceil(nameLayout.getLineWidth(0)); - if (widthpx < nameWidth) { - nameLeft -= (nameWidth - widthpx); - } - } - } - if (onlineLayout != null && onlineLayout.getLineCount() > 0) { - left = onlineLayout.getLineRight(0); - if (left == onlineWidth) { - widthpx = Math.ceil(onlineLayout.getLineWidth(0)); - if (widthpx < onlineWidth) { - onlineLeft -= (onlineWidth - widthpx); - } - } - } - } - } - } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogCell.java index b1b688769..ec07f5044 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogCell.java @@ -30,6 +30,7 @@ import org.telegram.android.MessagesController; import org.telegram.messenger.R; import org.telegram.messenger.UserConfig; import org.telegram.android.ImageReceiver; +import org.telegram.ui.Views.AvatarDrawable; public class DialogCell extends BaseCell { private static TextPaint namePaint; @@ -58,8 +59,8 @@ public class DialogCell extends BaseCell { private MessageObject message; private ImageReceiver avatarImage; + private AvatarDrawable avatarDrawable; - private DialogCellLayout cellLayout; private TLRPC.User user = null; private TLRPC.Chat chat = null; private TLRPC.EncryptedChat encryptedChat = null; @@ -67,101 +68,97 @@ public class DialogCell extends BaseCell { public boolean useSeparator = false; + + private int nameLeft; + private int nameTop = AndroidUtilities.dp(13); + private StaticLayout nameLayout; + private boolean drawNameLock; + private boolean drawNameGroup; + private boolean drawNameBroadcast; + private int nameLockLeft; + private int nameLockTop; + + private int timeLeft; + private int timeTop = AndroidUtilities.dp(17); + private StaticLayout timeLayout; + + private boolean drawCheck1; + private boolean drawCheck2; + private boolean drawClock; + private int checkDrawLeft; + private int checkDrawTop = AndroidUtilities.dp(18); + private int halfCheckDrawLeft; + + private int messageTop = AndroidUtilities.dp(40); + private int messageLeft; + private StaticLayout messageLayout; + + private boolean drawError; + private int errorTop = AndroidUtilities.dp(39); + private int errorLeft; + + private boolean drawCount; + private int countTop = AndroidUtilities.dp(39); + private int countLeft; + private int countWidth; + private StaticLayout countLayout; + + private int avatarTop = AndroidUtilities.dp(10); + private void init() { if (namePaint == null) { namePaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); - namePaint.setTextSize(AndroidUtilities.dp(19)); + namePaint.setTextSize(AndroidUtilities.dp(17)); namePaint.setColor(0xff222222); namePaint.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); - } - if (nameEncryptedPaint == null) { nameEncryptedPaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); - nameEncryptedPaint.setTextSize(AndroidUtilities.dp(19)); + nameEncryptedPaint.setTextSize(AndroidUtilities.dp(17)); nameEncryptedPaint.setColor(0xff00a60e); nameEncryptedPaint.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); - } - if (nameUnknownPaint == null) { nameUnknownPaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); - nameUnknownPaint.setTextSize(AndroidUtilities.dp(19)); - nameUnknownPaint.setColor(0xff316f9f); + nameUnknownPaint.setTextSize(AndroidUtilities.dp(17)); + nameUnknownPaint.setColor(0xff548ab6); nameUnknownPaint.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); - } - if (messagePaint == null) { messagePaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); messagePaint.setTextSize(AndroidUtilities.dp(16)); - messagePaint.setColor(0xff808080); - } + messagePaint.setColor(0xff8f8f8f); - if (linePaint == null) { linePaint = new Paint(); linePaint.setColor(0xffdcdcdc); - } - if (messagePrintingPaint == null) { messagePrintingPaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); messagePrintingPaint.setTextSize(AndroidUtilities.dp(16)); - messagePrintingPaint.setColor(0xff316f9f); - } + messagePrintingPaint.setColor(0xff548ab6); - if (timePaint == null) { timePaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); - timePaint.setTextSize(AndroidUtilities.dp(14)); - timePaint.setColor(0xff9e9e9e); - } + timePaint.setTextSize(AndroidUtilities.dp(13)); + timePaint.setColor(0xff999999); - if (countPaint == null) { countPaint = new TextPaint(TextPaint.ANTI_ALIAS_FLAG); countPaint.setTextSize(AndroidUtilities.dp(13)); countPaint.setColor(0xffffffff); - } + countPaint.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); - if (lockDrawable == null) { lockDrawable = getResources().getDrawable(R.drawable.ic_lock_green); - } - - if (checkDrawable == null) { checkDrawable = getResources().getDrawable(R.drawable.dialogs_check); - } - - if (halfCheckDrawable == null) { halfCheckDrawable = getResources().getDrawable(R.drawable.dialogs_halfcheck); - } - - if (clockDrawable == null) { clockDrawable = getResources().getDrawable(R.drawable.msg_clock); - } - - if (errorDrawable == null) { errorDrawable = getResources().getDrawable(R.drawable.dialogs_warning); - } - - if (countDrawable == null) { countDrawable = getResources().getDrawable(R.drawable.dialogs_badge); - } - - if (groupDrawable == null) { groupDrawable = getResources().getDrawable(R.drawable.grouplist); - } - - if (broadcastDrawable == null) { broadcastDrawable = getResources().getDrawable(R.drawable.broadcast); } - - if (avatarImage == null) { - avatarImage = new ImageReceiver(this); - } - - if (cellLayout == null) { - cellLayout = new DialogCellLayout(); - } } public DialogCell(Context context) { super(context); init(); + avatarImage = new ImageReceiver(this); + avatarImage.setRoundRadius(AndroidUtilities.dp(26)); + avatarDrawable = new AvatarDrawable(); } public void setDialog(long dialog_id, MessageObject messageObject, boolean usePrintStrings, int date, int unread) { @@ -187,7 +184,7 @@ public class DialogCell extends BaseCell { @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec), AndroidUtilities.dp(70)); + setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec), AndroidUtilities.dp(72)); } @Override @@ -202,7 +199,358 @@ public class DialogCell extends BaseCell { } public void buildLayout() { - cellLayout.build(getMeasuredWidth(), getMeasuredHeight()); + String nameString = ""; + String timeString = ""; + String countString = null; + CharSequence messageString = ""; + CharSequence printingString = null; + if (allowPrintStrings) { + printingString = MessagesController.getInstance().printingStrings.get(currentDialogId); + } + TextPaint currentNamePaint = namePaint; + TextPaint currentMessagePaint = messagePaint; + boolean checkMessage = true; + + drawNameGroup = false; + drawNameBroadcast = false; + drawNameLock = false; + + if (encryptedChat != null) { + drawNameLock = true; + nameLockTop = AndroidUtilities.dp(15); + if (!LocaleController.isRTL) { + nameLockLeft = AndroidUtilities.dp(72); + nameLeft = AndroidUtilities.dp(76) + lockDrawable.getIntrinsicWidth(); + } else { + nameLockLeft = getMeasuredWidth() - AndroidUtilities.dp(72) - lockDrawable.getIntrinsicWidth(); + nameLeft = AndroidUtilities.dp(14); + } + } else { + if (chat != null) { + if (chat.id < 0) { + drawNameBroadcast = true; + } else { + drawNameGroup = true; + } + nameLockTop = AndroidUtilities.dp(16); + if (!LocaleController.isRTL) { + nameLockLeft = AndroidUtilities.dp(72); + nameLeft = AndroidUtilities.dp(76) + (drawNameGroup ? groupDrawable.getIntrinsicWidth() : broadcastDrawable.getIntrinsicWidth()); + } else { + nameLockLeft = getMeasuredWidth() - AndroidUtilities.dp(72) - (drawNameGroup ? groupDrawable.getIntrinsicWidth() : broadcastDrawable.getIntrinsicWidth()); + nameLeft = AndroidUtilities.dp(14); + } + } else { + if (!LocaleController.isRTL) { + nameLeft = AndroidUtilities.dp(72); + } else { + nameLeft = AndroidUtilities.dp(14); + } + } + } + + if (message == null) { + if (printingString != null) { + lastPrintString = messageString = printingString; + currentMessagePaint = messagePrintingPaint; + } else { + lastPrintString = null; + if (encryptedChat != null) { + currentMessagePaint = messagePrintingPaint; + if (encryptedChat instanceof TLRPC.TL_encryptedChatRequested) { + messageString = LocaleController.getString("EncryptionProcessing", R.string.EncryptionProcessing); + } else if (encryptedChat instanceof TLRPC.TL_encryptedChatWaiting) { + if (user != null && user.first_name != null) { + messageString = LocaleController.formatString("AwaitingEncryption", R.string.AwaitingEncryption, user.first_name); + } else { + messageString = LocaleController.formatString("AwaitingEncryption", R.string.AwaitingEncryption, ""); + } + } else if (encryptedChat instanceof TLRPC.TL_encryptedChatDiscarded) { + messageString = LocaleController.getString("EncryptionRejected", R.string.EncryptionRejected); + } else if (encryptedChat instanceof TLRPC.TL_encryptedChat) { + if (encryptedChat.admin_id == UserConfig.getClientUserId()) { + if (user != null && user.first_name != null) { + messageString = LocaleController.formatString("EncryptedChatStartedOutgoing", R.string.EncryptedChatStartedOutgoing, user.first_name); + } else { + messageString = LocaleController.formatString("EncryptedChatStartedOutgoing", R.string.EncryptedChatStartedOutgoing, ""); + } + } else { + messageString = LocaleController.getString("EncryptedChatStartedIncoming", R.string.EncryptedChatStartedIncoming); + } + } + } + } + if (lastMessageDate != 0) { + timeString = LocaleController.stringForMessageListDate(lastMessageDate); + } + drawCheck1 = false; + drawCheck2 = false; + drawClock = false; + drawCount = false; + drawError = false; + } else { + TLRPC.User fromUser = MessagesController.getInstance().getUser(message.messageOwner.from_id); + + if (lastMessageDate != 0) { + timeString = LocaleController.stringForMessageListDate(lastMessageDate); + } else { + timeString = LocaleController.stringForMessageListDate(message.messageOwner.date); + } + if (printingString != null) { + lastPrintString = messageString = printingString; + currentMessagePaint = messagePrintingPaint; + } else { + lastPrintString = null; + if (message.messageOwner instanceof TLRPC.TL_messageService) { + messageString = message.messageText; + currentMessagePaint = messagePrintingPaint; + } else { + if (chat != null && chat.id > 0) { + String name = ""; + if (message.isFromMe()) { + name = LocaleController.getString("FromYou", R.string.FromYou); + } else { + if (fromUser != null) { + if (fromUser.first_name.length() > 0) { + name = fromUser.first_name; + } else { + name = fromUser.last_name; + } + } + } + checkMessage = false; + if (message.messageOwner.media != null && !(message.messageOwner.media instanceof TLRPC.TL_messageMediaEmpty)) { + currentMessagePaint = messagePrintingPaint; + messageString = Emoji.replaceEmoji(Html.fromHtml(String.format("%s: %s", name, message.messageText)), messagePaint.getFontMetricsInt(), AndroidUtilities.dp(20)); + } else { + if (message.messageOwner.message != null) { + messageString = Emoji.replaceEmoji(Html.fromHtml(String.format("%s: %s", name, message.messageOwner.message.replace("\n", " ").replace("<", "<").replace(">", ">"))), messagePaint.getFontMetricsInt(), AndroidUtilities.dp(20)); + } + } + } else { + messageString = message.messageText; + if (message.messageOwner.media != null && !(message.messageOwner.media instanceof TLRPC.TL_messageMediaEmpty)) { + currentMessagePaint = messagePrintingPaint; + } + } + } + } + + if (unreadCount != 0) { + drawCount = true; + countString = String.format("%d", unreadCount); + } else { + drawCount = false; + } + + if (message.isFromMe() && message.isOut()) { + if (message.isSending()) { + drawCheck1 = false; + drawCheck2 = false; + drawClock = true; + drawError = false; + } else if (message.isSendError()) { + drawCheck1 = false; + drawCheck2 = false; + drawClock = false; + drawError = true; + drawCount = false; + } else if (message.isSent()) { + if (!message.isUnread()) { + drawCheck1 = true; + drawCheck2 = true; + } else { + drawCheck1 = false; + drawCheck2 = true; + } + drawClock = false; + drawError = false; + } + } else { + drawCheck1 = false; + drawCheck2 = false; + drawClock = false; + drawError = false; + } + } + + int timeWidth = (int) Math.ceil(timePaint.measureText(timeString)); + timeLayout = new StaticLayout(timeString, timePaint, timeWidth, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false); + if (!LocaleController.isRTL) { + timeLeft = getMeasuredWidth() - AndroidUtilities.dp(15) - timeWidth; + } else { + timeLeft = AndroidUtilities.dp(15); + } + + if (chat != null) { + nameString = chat.title; + } else if (user != null) { + if (user.id / 1000 != 777 && user.id / 1000 != 333 && ContactsController.getInstance().contactsDict.get(user.id) == null) { + if (ContactsController.getInstance().contactsDict.size() == 0 && (!ContactsController.getInstance().contactsLoaded || ContactsController.getInstance().isLoadingContacts())) { + nameString = ContactsController.formatName(user.first_name, user.last_name); + } else { + if (user.phone != null && user.phone.length() != 0) { + nameString = PhoneFormat.getInstance().format("+" + user.phone); + } else { + currentNamePaint = nameUnknownPaint; + nameString = ContactsController.formatName(user.first_name, user.last_name); + } + } + } else { + nameString = ContactsController.formatName(user.first_name, user.last_name); + } + if (encryptedChat != null) { + currentNamePaint = nameEncryptedPaint; + } + } + if (nameString.length() == 0) { + nameString = LocaleController.getString("HiddenName", R.string.HiddenName); + } + + int nameWidth; + + if (!LocaleController.isRTL) { + nameWidth = getMeasuredWidth() - nameLeft - AndroidUtilities.dp(14) - timeWidth; + } else { + nameWidth = getMeasuredWidth() - nameLeft - AndroidUtilities.dp(72) - timeWidth; + nameLeft += timeWidth; + } + if (drawNameLock) { + nameWidth -= AndroidUtilities.dp(4) + lockDrawable.getIntrinsicWidth(); + } else if (drawNameGroup) { + nameWidth -= AndroidUtilities.dp(4) + groupDrawable.getIntrinsicWidth(); + } else if (drawNameBroadcast) { + nameWidth -= AndroidUtilities.dp(4) + broadcastDrawable.getIntrinsicWidth(); + } + if (drawClock) { + int w = clockDrawable.getIntrinsicWidth() + AndroidUtilities.dp(5); + nameWidth -= w; + if (!LocaleController.isRTL) { + checkDrawLeft = timeLeft - w; + } else { + checkDrawLeft = timeLeft + timeWidth + AndroidUtilities.dp(5); + nameLeft += w; + } + } else if (drawCheck2) { + int w = checkDrawable.getIntrinsicWidth() + AndroidUtilities.dp(5); + nameWidth -= w; + if (drawCheck1) { + nameWidth -= halfCheckDrawable.getIntrinsicWidth() - AndroidUtilities.dp(8); + if (!LocaleController.isRTL) { + halfCheckDrawLeft = timeLeft - w; + checkDrawLeft = halfCheckDrawLeft - AndroidUtilities.dp(5.5f); + } else { + checkDrawLeft = timeLeft + timeWidth + AndroidUtilities.dp(5); + halfCheckDrawLeft = checkDrawLeft + AndroidUtilities.dp(5.5f); + nameLeft += w + halfCheckDrawable.getIntrinsicWidth() - AndroidUtilities.dp(8); + } + } else { + if (!LocaleController.isRTL) { + checkDrawLeft = timeLeft - w; + } else { + checkDrawLeft = timeLeft + timeWidth + AndroidUtilities.dp(5); + nameLeft += w; + } + } + } + + CharSequence nameStringFinal = TextUtils.ellipsize(nameString.replace("\n", " "), currentNamePaint, nameWidth - AndroidUtilities.dp(12), TextUtils.TruncateAt.END); + try { + nameLayout = new StaticLayout(nameStringFinal, currentNamePaint, nameWidth, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false); + } catch (Exception e) { + FileLog.e("tmessages", e); + } + + int messageWidth = getMeasuredWidth() - AndroidUtilities.dp(88); + int avatarLeft; + if (!LocaleController.isRTL) { + messageLeft = AndroidUtilities.dp(72); + avatarLeft = AndroidUtilities.dp(9); + } else { + messageLeft = AndroidUtilities.dp(16); + avatarLeft = getMeasuredWidth() - AndroidUtilities.dp(61); + } + avatarImage.setImageCoords(avatarLeft, avatarTop, AndroidUtilities.dp(52), AndroidUtilities.dp(52)); + if (drawError) { + int w = errorDrawable.getIntrinsicWidth() + AndroidUtilities.dp(8); + messageWidth -= w; + if (!LocaleController.isRTL) { + errorLeft = getMeasuredWidth() - errorDrawable.getIntrinsicWidth() - AndroidUtilities.dp(11); + } else { + errorLeft = AndroidUtilities.dp(11); + messageLeft += w; + } + } else if (countString != null) { + countWidth = Math.max(AndroidUtilities.dp(12), (int)Math.ceil(countPaint.measureText(countString))); + countLayout = new StaticLayout(countString, countPaint, countWidth, Layout.Alignment.ALIGN_CENTER, 1.0f, 0.0f, false); + int w = countWidth + AndroidUtilities.dp(18); + messageWidth -= w; + if (!LocaleController.isRTL) { + countLeft = getMeasuredWidth() - countWidth - AndroidUtilities.dp(19); + } else { + countLeft = AndroidUtilities.dp(19); + messageLeft += w; + } + drawCount = true; + } else { + drawCount = false; + } + + if (checkMessage) { + if (messageString == null) { + messageString = ""; + } + String mess = messageString.toString().replace("\n", " "); + if (mess.length() > 150) { + mess = mess.substring(0, 150); + } + messageString = Emoji.replaceEmoji(mess, messagePaint.getFontMetricsInt(), AndroidUtilities.dp(17)); + } + + CharSequence messageStringFinal = TextUtils.ellipsize(messageString, currentMessagePaint, messageWidth - AndroidUtilities.dp(12), TextUtils.TruncateAt.END); + messageLayout = new StaticLayout(messageStringFinal, currentMessagePaint, messageWidth, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false); + + double widthpx = 0; + float left = 0; + if (LocaleController.isRTL) { + if (nameLayout != null && nameLayout.getLineCount() > 0) { + left = nameLayout.getLineLeft(0); + if (left == 0) { + widthpx = Math.ceil(nameLayout.getLineWidth(0)); + if (widthpx < nameWidth) { + nameLeft += (nameWidth - widthpx); + } + } + } + if (messageLayout.getLineCount() > 0) { + left = messageLayout.getLineLeft(0); + if (left == 0) { + widthpx = Math.ceil(messageLayout.getLineWidth(0)); + if (widthpx < messageWidth) { + messageLeft += (messageWidth - widthpx); + } + } + } + } else { + if (nameLayout != null && nameLayout.getLineCount() > 0) { + left = nameLayout.getLineRight(0); + if (left == nameWidth) { + widthpx = Math.ceil(nameLayout.getLineWidth(0)); + if (widthpx < nameWidth) { + nameLeft -= (nameWidth - widthpx); + } + } + } + if (messageLayout.getLineCount() > 0) { + left = messageLayout.getLineRight(0); + if (left == messageWidth) { + widthpx = Math.ceil(messageLayout.getLineWidth(0)); + if (widthpx < messageWidth) { + messageLeft -= (messageWidth - widthpx); + } + } + } + } } public void update(int mask) { @@ -265,24 +613,19 @@ public class DialogCell extends BaseCell { } } - int placeHolderId = 0; TLRPC.FileLocation photo = null; if (user != null) { if (user.photo != null) { photo = user.photo.photo_small; } - placeHolderId = AndroidUtilities.getUserAvatarForId(user.id); + avatarDrawable.setInfo(user); } else if (chat != null) { if (chat.photo != null) { photo = chat.photo.photo_small; } - if (chat.id > 0) { - placeHolderId = AndroidUtilities.getGroupAvatarForId(chat.id); - } else { - placeHolderId = AndroidUtilities.getBroadcastAvatarForId(chat.id); - } + avatarDrawable.setInfo(chat); } - avatarImage.setImage(photo, "50_50", placeHolderId == 0 ? null : getResources().getDrawable(placeHolderId), false); + avatarImage.setImage(photo, "50_50", avatarDrawable, false); if (getMeasuredWidth() != 0 || getMeasuredHeight() != 0) { buildLayout(); @@ -299,468 +642,68 @@ public class DialogCell extends BaseCell { return; } - if (cellLayout == null) { - requestLayout(); - return; - } - - if (cellLayout.drawNameLock) { - setDrawableBounds(lockDrawable, cellLayout.nameLockLeft, cellLayout.nameLockTop); + if (drawNameLock) { + setDrawableBounds(lockDrawable, nameLockLeft, nameLockTop); lockDrawable.draw(canvas); - } else if (cellLayout.drawNameGroup) { - setDrawableBounds(groupDrawable, cellLayout.nameLockLeft, cellLayout.nameLockTop); + } else if (drawNameGroup) { + setDrawableBounds(groupDrawable, nameLockLeft, nameLockTop); groupDrawable.draw(canvas); - } else if (cellLayout.drawNameBroadcast) { - setDrawableBounds(broadcastDrawable, cellLayout.nameLockLeft, cellLayout.nameLockTop); + } else if (drawNameBroadcast) { + setDrawableBounds(broadcastDrawable, nameLockLeft, nameLockTop); broadcastDrawable.draw(canvas); } - if (cellLayout.nameLayout != null) { + if (nameLayout != null) { canvas.save(); - canvas.translate(cellLayout.nameLeft, cellLayout.nameTop); - cellLayout.nameLayout.draw(canvas); + canvas.translate(nameLeft, nameTop); + nameLayout.draw(canvas); canvas.restore(); } canvas.save(); - canvas.translate(cellLayout.timeLeft, cellLayout.timeTop); - cellLayout.timeLayout.draw(canvas); + canvas.translate(timeLeft, timeTop); + timeLayout.draw(canvas); canvas.restore(); canvas.save(); - canvas.translate(cellLayout.messageLeft, cellLayout.messageTop); - cellLayout.messageLayout.draw(canvas); + canvas.translate(messageLeft, messageTop); + messageLayout.draw(canvas); canvas.restore(); - if (cellLayout.drawClock) { - setDrawableBounds(clockDrawable, cellLayout.checkDrawLeft, cellLayout.checkDrawTop); + if (drawClock) { + setDrawableBounds(clockDrawable, checkDrawLeft, checkDrawTop); clockDrawable.draw(canvas); - } else if (cellLayout.drawCheck2) { - if (cellLayout.drawCheck1) { - setDrawableBounds(halfCheckDrawable, cellLayout.halfCheckDrawLeft, cellLayout.checkDrawTop); + } else if (drawCheck2) { + if (drawCheck1) { + setDrawableBounds(halfCheckDrawable, halfCheckDrawLeft, checkDrawTop); halfCheckDrawable.draw(canvas); - setDrawableBounds(checkDrawable, cellLayout.checkDrawLeft, cellLayout.checkDrawTop); + setDrawableBounds(checkDrawable, checkDrawLeft, checkDrawTop); checkDrawable.draw(canvas); } else { - setDrawableBounds(checkDrawable, cellLayout.checkDrawLeft, cellLayout.checkDrawTop); + setDrawableBounds(checkDrawable, checkDrawLeft, checkDrawTop); checkDrawable.draw(canvas); } } - if (cellLayout.drawError) { - setDrawableBounds(errorDrawable, cellLayout.errorLeft, cellLayout.errorTop); + if (drawError) { + setDrawableBounds(errorDrawable, errorLeft, errorTop); errorDrawable.draw(canvas); - } else if (cellLayout.drawCount) { - setDrawableBounds(countDrawable, cellLayout.countLeft - AndroidUtilities.dp(5), cellLayout.countTop, cellLayout.countWidth + AndroidUtilities.dp(10), countDrawable.getIntrinsicHeight()); + } else if (drawCount) { + setDrawableBounds(countDrawable, countLeft - AndroidUtilities.dp(5.5f), countTop, countWidth + AndroidUtilities.dp(11), countDrawable.getIntrinsicHeight()); countDrawable.draw(canvas); canvas.save(); - canvas.translate(cellLayout.countLeft, cellLayout.countTop + AndroidUtilities.dp(3)); - cellLayout.countLayout.draw(canvas); + canvas.translate(countLeft, countTop + AndroidUtilities.dp(4)); + countLayout.draw(canvas); canvas.restore(); } avatarImage.draw(canvas); if (useSeparator) { - int h = getMeasuredHeight(); - if (AndroidUtilities.isTablet()) { - canvas.drawLine(0, h - 1, getMeasuredWidth(), h - 1, linePaint); - } else { - canvas.drawLine(AndroidUtilities.dp(11), h - 1, getMeasuredWidth() - AndroidUtilities.dp(11), h - 1, linePaint); - } - } - } - - private class DialogCellLayout { - private int nameLeft; - private int nameTop = AndroidUtilities.dp(10); - private int nameWidth; - private StaticLayout nameLayout; - private boolean drawNameLock; - private boolean drawNameGroup; - private boolean drawNameBroadcast; - private int nameLockLeft; - private int nameLockTop; - - private int timeLeft; - private int timeTop = AndroidUtilities.dp(13); - private int timeWidth; - private StaticLayout timeLayout; - - private boolean drawCheck1; - private boolean drawCheck2; - private boolean drawClock; - private int checkDrawLeft; - private int checkDrawTop = AndroidUtilities.dp(15); - private int halfCheckDrawLeft; - - private int messageTop = AndroidUtilities.dp(40); - private int messageLeft; - private int messageWidth; - private StaticLayout messageLayout; - - private boolean drawError; - private int errorTop = AndroidUtilities.dp(37); - private int errorLeft; - - private boolean drawCount; - private int countTop = AndroidUtilities.dp(37); - private int countLeft; - private int countWidth; - private StaticLayout countLayout; - - private int avatarTop = AndroidUtilities.dp(8); - private int avatarLeft; - - public void build(int width, int height) { - String nameString = ""; - String timeString = ""; - String countString = null; - CharSequence messageString = ""; - CharSequence printingString = null; - if (allowPrintStrings) { - printingString = MessagesController.getInstance().printingStrings.get(currentDialogId); - } - TextPaint currentNamePaint = namePaint; - TextPaint currentMessagePaint = messagePaint; - boolean checkMessage = true; - - drawNameGroup = false; - drawNameBroadcast = false; - drawNameLock = false; - - if (encryptedChat != null) { - drawNameLock = true; - nameLockTop = AndroidUtilities.dp(13); - if (!LocaleController.isRTL) { - nameLockLeft = AndroidUtilities.dp(77); - nameLeft = AndroidUtilities.dp(81) + lockDrawable.getIntrinsicWidth(); - } else { - nameLockLeft = width - AndroidUtilities.dp(77) - lockDrawable.getIntrinsicWidth(); - nameLeft = AndroidUtilities.dp(14); - } - } else { - if (chat != null) { - if (chat.id < 0) { - drawNameBroadcast = true; - } else { - drawNameGroup = true; - } - nameLockTop = AndroidUtilities.dp(14); - if (!LocaleController.isRTL) { - nameLockLeft = AndroidUtilities.dp(77); - nameLeft = AndroidUtilities.dp(81) + (drawNameGroup ? groupDrawable.getIntrinsicWidth() : broadcastDrawable.getIntrinsicWidth()); - } else { - nameLockLeft = width - AndroidUtilities.dp(77) - (drawNameGroup ? groupDrawable.getIntrinsicWidth() : broadcastDrawable.getIntrinsicWidth()); - nameLeft = AndroidUtilities.dp(14); - } - } else { - if (!LocaleController.isRTL) { - nameLeft = AndroidUtilities.dp(77); - } else { - nameLeft = AndroidUtilities.dp(14); - } - } - } - - if (message == null) { - if (printingString != null) { - lastPrintString = messageString = printingString; - currentMessagePaint = messagePrintingPaint; - } else { - lastPrintString = null; - if (encryptedChat != null) { - currentMessagePaint = messagePrintingPaint; - if (encryptedChat instanceof TLRPC.TL_encryptedChatRequested) { - messageString = LocaleController.getString("EncryptionProcessing", R.string.EncryptionProcessing); - } else if (encryptedChat instanceof TLRPC.TL_encryptedChatWaiting) { - if (user != null && user.first_name != null) { - messageString = LocaleController.formatString("AwaitingEncryption", R.string.AwaitingEncryption, user.first_name); - } else { - messageString = LocaleController.formatString("AwaitingEncryption", R.string.AwaitingEncryption, ""); - } - } else if (encryptedChat instanceof TLRPC.TL_encryptedChatDiscarded) { - messageString = LocaleController.getString("EncryptionRejected", R.string.EncryptionRejected); - } else if (encryptedChat instanceof TLRPC.TL_encryptedChat) { - if (encryptedChat.admin_id == UserConfig.getClientUserId()) { - if (user != null && user.first_name != null) { - messageString = LocaleController.formatString("EncryptedChatStartedOutgoing", R.string.EncryptedChatStartedOutgoing, user.first_name); - } else { - messageString = LocaleController.formatString("EncryptedChatStartedOutgoing", R.string.EncryptedChatStartedOutgoing, ""); - } - } else { - messageString = LocaleController.getString("EncryptedChatStartedIncoming", R.string.EncryptedChatStartedIncoming); - } - } - } - } - if (lastMessageDate != 0) { - timeString = LocaleController.stringForMessageListDate(lastMessageDate); - } - drawCheck1 = false; - drawCheck2 = false; - drawClock = false; - drawCount = false; - drawError = false; - } else { - TLRPC.User fromUser = MessagesController.getInstance().getUser(message.messageOwner.from_id); - - if (lastMessageDate != 0) { - timeString = LocaleController.stringForMessageListDate(lastMessageDate); - } else { - timeString = LocaleController.stringForMessageListDate(message.messageOwner.date); - } - if (printingString != null) { - lastPrintString = messageString = printingString; - currentMessagePaint = messagePrintingPaint; - } else { - lastPrintString = null; - if (message.messageOwner instanceof TLRPC.TL_messageService) { - messageString = message.messageText; - currentMessagePaint = messagePrintingPaint; - } else { - if (chat != null && chat.id > 0) { - String name = ""; - if (message.isFromMe()) { - name = LocaleController.getString("FromYou", R.string.FromYou); - } else { - if (fromUser != null) { - if (fromUser.first_name.length() > 0) { - name = fromUser.first_name; - } else { - name = fromUser.last_name; - } - } - } - checkMessage = false; - if (message.messageOwner.media != null && !(message.messageOwner.media instanceof TLRPC.TL_messageMediaEmpty)) { - currentMessagePaint = messagePrintingPaint; - messageString = Emoji.replaceEmoji(Html.fromHtml(String.format("%s: %s", name, message.messageText)), messagePaint.getFontMetricsInt(), AndroidUtilities.dp(20)); - } else { - if (message.messageOwner.message != null) { - messageString = Emoji.replaceEmoji(Html.fromHtml(String.format("%s: %s", name, message.messageOwner.message.replace("\n", " ").replace("<", "<").replace(">", ">"))), messagePaint.getFontMetricsInt(), AndroidUtilities.dp(20)); - } - } - } else { - messageString = message.messageText; - if (message.messageOwner.media != null && !(message.messageOwner.media instanceof TLRPC.TL_messageMediaEmpty)) { - currentMessagePaint = messagePrintingPaint; - } - } - } - } - - if (unreadCount != 0) { - drawCount = true; - countString = String.format("%d", unreadCount); - } else { - drawCount = false; - } - - if (message.isFromMe() && message.isOut()) { - if (message.isSending()) { - drawCheck1 = false; - drawCheck2 = false; - drawClock = true; - drawError = false; - } else if (message.isSendError()) { - drawCheck1 = false; - drawCheck2 = false; - drawClock = false; - drawError = true; - drawCount = false; - } else if (message.isSent()) { - if (!message.isUnread()) { - drawCheck1 = true; - drawCheck2 = true; - } else { - drawCheck1 = false; - drawCheck2 = true; - } - drawClock = false; - drawError = false; - } - } else { - drawCheck1 = false; - drawCheck2 = false; - drawClock = false; - drawError = false; - } - } - - timeWidth = (int)Math.ceil(timePaint.measureText(timeString)); - timeLayout = new StaticLayout(timeString, timePaint, timeWidth, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false); - if (!LocaleController.isRTL) { - timeLeft = width - AndroidUtilities.dp(11) - timeWidth; - } else { - timeLeft = AndroidUtilities.dp(11); - } - - if (chat != null) { - nameString = chat.title; - } else if (user != null) { - if (user.id / 1000 != 777 && user.id / 1000 != 333 && ContactsController.getInstance().contactsDict.get(user.id) == null) { - if (ContactsController.getInstance().contactsDict.size() == 0 && (!ContactsController.getInstance().contactsLoaded || ContactsController.getInstance().isLoadingContacts())) { - nameString = ContactsController.formatName(user.first_name, user.last_name); - } else { - if (user.phone != null && user.phone.length() != 0) { - nameString = PhoneFormat.getInstance().format("+" + user.phone); - } else { - currentNamePaint = nameUnknownPaint; - nameString = ContactsController.formatName(user.first_name, user.last_name); - } - } - } else { - nameString = ContactsController.formatName(user.first_name, user.last_name); - } - if (encryptedChat != null) { - currentNamePaint = nameEncryptedPaint; - } - } - if (nameString.length() == 0) { - nameString = LocaleController.getString("HiddenName", R.string.HiddenName); - } - - if (!LocaleController.isRTL) { - nameWidth = width - nameLeft - AndroidUtilities.dp(14) - timeWidth; - } else { - nameWidth = width - nameLeft - AndroidUtilities.dp(77) - timeWidth; - nameLeft += timeWidth; - } - if (drawNameLock) { - nameWidth -= AndroidUtilities.dp(4) + lockDrawable.getIntrinsicWidth(); - } else if (drawNameGroup) { - nameWidth -= AndroidUtilities.dp(4) + groupDrawable.getIntrinsicWidth(); - } else if (drawNameBroadcast) { - nameWidth -= AndroidUtilities.dp(4) + broadcastDrawable.getIntrinsicWidth(); - } - if (drawClock) { - int w = clockDrawable.getIntrinsicWidth() + AndroidUtilities.dp(2); - nameWidth -= w; - if (!LocaleController.isRTL) { - checkDrawLeft = timeLeft - w; - } else { - checkDrawLeft = timeLeft + timeWidth + AndroidUtilities.dp(2); - nameLeft += w; - } - } else if (drawCheck2) { - int w = checkDrawable.getIntrinsicWidth() + AndroidUtilities.dp(2); - nameWidth -= w; - if (drawCheck1) { - nameWidth -= halfCheckDrawable.getIntrinsicWidth() - AndroidUtilities.dp(5); - if (!LocaleController.isRTL) { - halfCheckDrawLeft = timeLeft - w; - checkDrawLeft = halfCheckDrawLeft - AndroidUtilities.dp(5); - } else { - checkDrawLeft = timeLeft + timeWidth + AndroidUtilities.dp(2); - halfCheckDrawLeft = checkDrawLeft + AndroidUtilities.dp(5); - nameLeft += w + halfCheckDrawable.getIntrinsicWidth() - AndroidUtilities.dp(5); - } - } else { - if (!LocaleController.isRTL) { - checkDrawLeft = timeLeft - w; - } else { - checkDrawLeft = timeLeft + timeWidth + AndroidUtilities.dp(2); - nameLeft += w; - } - } - } - - CharSequence nameStringFinal = TextUtils.ellipsize(nameString.replace("\n", " "), currentNamePaint, nameWidth - AndroidUtilities.dp(12), TextUtils.TruncateAt.END); - try { - nameLayout = new StaticLayout(nameStringFinal, currentNamePaint, nameWidth, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false); - } catch (Exception e) { - FileLog.e("tmessages", e); - } - - messageWidth = width - AndroidUtilities.dp(88); - if (!LocaleController.isRTL) { - messageLeft = AndroidUtilities.dp(77); - avatarLeft = AndroidUtilities.dp(11); - } else { - messageLeft = AndroidUtilities.dp(11); - avatarLeft = width - AndroidUtilities.dp(65); - } - avatarImage.setImageCoords(avatarLeft, avatarTop, AndroidUtilities.dp(54), AndroidUtilities.dp(54)); - if (drawError) { - int w = errorDrawable.getIntrinsicWidth() + AndroidUtilities.dp(8); - messageWidth -= w; - if (!LocaleController.isRTL) { - errorLeft = width - errorDrawable.getIntrinsicWidth() - AndroidUtilities.dp(11); - } else { - errorLeft = AndroidUtilities.dp(11); - messageLeft += w; - } - } else if (countString != null) { - countWidth = Math.max(AndroidUtilities.dp(12), (int)Math.ceil(countPaint.measureText(countString))); - countLayout = new StaticLayout(countString, countPaint, countWidth, Layout.Alignment.ALIGN_CENTER, 1.0f, 0.0f, false); - int w = countWidth + AndroidUtilities.dp(18); - messageWidth -= w; - if (!LocaleController.isRTL) { - countLeft = width - countWidth - AndroidUtilities.dp(16); - } else { - countLeft = AndroidUtilities.dp(16); - messageLeft += w; - } - drawCount = true; - } else { - drawCount = false; - } - - if (checkMessage) { - if (messageString == null) { - messageString = ""; - } - String mess = messageString.toString().replace("\n", " "); - if (mess.length() > 150) { - mess = mess.substring(0, 150); - } - messageString = Emoji.replaceEmoji(mess, messagePaint.getFontMetricsInt(), AndroidUtilities.dp(20)); - } - - CharSequence messageStringFinal = TextUtils.ellipsize(messageString, currentMessagePaint, messageWidth - AndroidUtilities.dp(12), TextUtils.TruncateAt.END); - messageLayout = new StaticLayout(messageStringFinal, currentMessagePaint, messageWidth, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false); - - double widthpx = 0; - float left = 0; if (LocaleController.isRTL) { - if (nameLayout != null && nameLayout.getLineCount() > 0) { - left = nameLayout.getLineLeft(0); - if (left == 0) { - widthpx = Math.ceil(nameLayout.getLineWidth(0)); - if (widthpx < nameWidth) { - nameLeft += (nameWidth - widthpx); - } - } - } - if (messageLayout.getLineCount() > 0) { - left = messageLayout.getLineLeft(0); - if (left == 0) { - widthpx = Math.ceil(messageLayout.getLineWidth(0)); - if (widthpx < messageWidth) { - messageLeft += (messageWidth - widthpx); - } - } - } + canvas.drawLine(0, getMeasuredHeight() - 1, getMeasuredWidth() - AndroidUtilities.dp(72), getMeasuredHeight() - 1, linePaint); } else { - if (nameLayout != null && nameLayout.getLineCount() > 0) { - left = nameLayout.getLineRight(0); - if (left == nameWidth) { - widthpx = Math.ceil(nameLayout.getLineWidth(0)); - if (widthpx < nameWidth) { - nameLeft -= (nameWidth - widthpx); - } - } - } - if (messageLayout.getLineCount() > 0) { - left = messageLayout.getLineRight(0); - if (left == messageWidth) { - widthpx = Math.ceil(messageLayout.getLineWidth(0)); - if (widthpx < messageWidth) { - messageLeft -= (messageWidth - widthpx); - } - } - } + canvas.drawLine(AndroidUtilities.dp(72), getMeasuredHeight() - 1, getMeasuredWidth(), getMeasuredHeight() - 1, linePaint); } } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java index 565e39dc0..e30088ce4 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java @@ -35,6 +35,7 @@ import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; +import android.view.WindowManager; import android.webkit.MimeTypeMap; import android.widget.AbsListView; import android.widget.AdapterView; @@ -73,6 +74,7 @@ import org.telegram.ui.Cells.ChatMessageCell; import org.telegram.ui.Views.ActionBar.ActionBarLayer; import org.telegram.ui.Views.ActionBar.ActionBarMenu; import org.telegram.ui.Views.ActionBar.ActionBarMenuItem; +import org.telegram.ui.Views.AvatarDrawable; import org.telegram.ui.Views.BackupImageView; import org.telegram.ui.Views.ActionBar.BaseFragment; import org.telegram.ui.Views.ChatActivityEnterView; @@ -441,10 +443,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not public View createView(LayoutInflater inflater, ViewGroup container) { if (fragmentView == null) { - actionBarLayer.setDisplayHomeAsUpEnabled(true, R.drawable.ic_ab_back); - if (AndroidUtilities.isTablet()) { - actionBarLayer.setExtraLeftMargin(4); - } + actionBarLayer.setBackButtonImage(R.drawable.ic_ab_back); actionBarLayer.setBackOverlay(R.layout.updating_state_layout); actionBarLayer.setActionBarMenuOnItemClick(new ActionBarLayer.ActionBarMenuOnItemClick() { @Override @@ -877,7 +876,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not SecretPhotoViewer.getInstance().openPhoto(messageObject); } }; - AndroidUtilities.RunOnUIThread(openSecretPhotoRunnable, 100); + AndroidUtilities.runOnUIThread(openSecretPhotoRunnable, 100); return true; } } @@ -890,14 +889,14 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not public boolean onTouch(View v, MotionEvent event) { if (openSecretPhotoRunnable != null || SecretPhotoViewer.getInstance().isVisible()) { if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL || event.getAction() == MotionEvent.ACTION_POINTER_UP) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { chatListView.setOnItemClickListener(onItemClickListener); } }, 150); if (openSecretPhotoRunnable != null) { - AndroidUtilities.CancelRunOnUIThread(openSecretPhotoRunnable); + AndroidUtilities.cancelRunOnUIThread(openSecretPhotoRunnable); openSecretPhotoRunnable = null; try { Toast.makeText(v.getContext(), LocaleController.getString("PhotoTip", R.string.PhotoTip), Toast.LENGTH_SHORT).show(); @@ -906,7 +905,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } } else { if (SecretPhotoViewer.getInstance().isVisible()) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { chatListView.setOnItemLongClickListener(onItemLongClickListener); @@ -922,11 +921,11 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } else if (openSecretPhotoRunnable != null) { if (event.getAction() == MotionEvent.ACTION_MOVE) { if (Math.hypot(startX - event.getX(), startY - event.getY()) > AndroidUtilities.dp(5)) { - AndroidUtilities.CancelRunOnUIThread(openSecretPhotoRunnable); + AndroidUtilities.cancelRunOnUIThread(openSecretPhotoRunnable); openSecretPhotoRunnable = null; } } else { - AndroidUtilities.CancelRunOnUIThread(openSecretPhotoRunnable); + AndroidUtilities.cancelRunOnUIThread(openSecretPhotoRunnable); openSecretPhotoRunnable = null; } } @@ -1192,26 +1191,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not timerButton.setTime(currentEncryptedChat.ttl); } - if (avatarImageView != null) { - TLRPC.FileLocation photo = null; - int placeHolderId = 0; - if (currentUser != null) { - if (currentUser.photo != null) { - photo = currentUser.photo.photo_small; - } - placeHolderId = AndroidUtilities.getUserAvatarForId(currentUser.id); - } else if (currentChat != null) { - if (currentChat.photo != null) { - photo = currentChat.photo.photo_small; - } - if (isBroadcast) { - placeHolderId = AndroidUtilities.getBroadcastAvatarForId(currentChat.id); - } else { - placeHolderId = AndroidUtilities.getGroupAvatarForId(currentChat.id); - } - } - avatarImageView.setImage(photo, "50_50", placeHolderId); - } + checkAndUpdateAvatar(); } private void updateOnlineCount() { @@ -1461,7 +1441,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not private void checkAndUpdateAvatar() { TLRPC.FileLocation newPhoto = null; - int placeHolderId = 0; + AvatarDrawable avatarDrawable = null; if (currentUser != null) { TLRPC.User user = MessagesController.getInstance().getUser(currentUser.id); if (user == null) { @@ -1471,7 +1451,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (currentUser.photo != null) { newPhoto = currentUser.photo.photo_small; } - placeHolderId = AndroidUtilities.getUserAvatarForId(currentUser.id); + avatarDrawable = new AvatarDrawable(currentUser); } else if (currentChat != null) { TLRPC.Chat chat = MessagesController.getInstance().getChat(currentChat.id); if (chat == null) { @@ -1481,14 +1461,10 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (currentChat.photo != null) { newPhoto = currentChat.photo.photo_small; } - if (isBroadcast) { - placeHolderId = AndroidUtilities.getBroadcastAvatarForId(currentChat.id); - } else { - placeHolderId = AndroidUtilities.getGroupAvatarForId(currentChat.id); - } + avatarDrawable = new AvatarDrawable(currentChat); } if (avatarImageView != null) { - avatarImageView.setImage(newPhoto, "50_50", placeHolderId); + avatarImageView.setImage(newPhoto, "50_50", avatarDrawable); } } @@ -2407,6 +2383,8 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not public void onResume() { super.onResume(); + getParentActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); + checkActionBarMenu(); if (chatAdapter != null) { chatAdapter.notifyDataSetChanged(); @@ -2458,7 +2436,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } if (startVideoEdit != null) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { openVideoEditor(startVideoEdit, false); @@ -2481,6 +2459,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not @Override public void onPause() { super.onPause(); + getParentActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); actionBarLayer.hideActionMode(); chatActivityEnterView.hideEmojiPopup(); paused = true; @@ -2537,9 +2516,8 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (getParentActivity() == null) { return true; } - int height = AndroidUtilities.dp(48); + int height = AndroidUtilities.getCurrentActionBarHeight(); if (!AndroidUtilities.isTablet() && getParentActivity().getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { - height = AndroidUtilities.dp(40); selectedMessagesCountTextView.setTextSize(16); } else { selectedMessagesCountTextView.setTextSize(18); @@ -3227,6 +3205,12 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (idx != -1) { String ext = fileName.substring(idx + 1); realMimeType = myMime.getMimeTypeFromExtension(ext.toLowerCase()); + if (realMimeType == null) { + realMimeType = message.messageOwner.media.document.mime_type; + if (realMimeType == null || realMimeType.length() == 0) { + realMimeType = null; + } + } if (realMimeType != null) { intent.setDataAndType(Uri.fromFile(f), realMimeType); } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChatProfileActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChatProfileActivity.java index 1dc77830f..38725543e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChatProfileActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChatProfileActivity.java @@ -39,6 +39,7 @@ import org.telegram.ui.Adapters.BaseFragmentAdapter; import org.telegram.ui.Cells.ChatOrUserCell; import org.telegram.ui.Views.ActionBar.ActionBarLayer; import org.telegram.ui.Views.ActionBar.ActionBarMenu; +import org.telegram.ui.Views.AvatarDrawable; import org.telegram.ui.Views.AvatarUpdater; import org.telegram.ui.Views.BackupImageView; import org.telegram.ui.Views.ActionBar.BaseFragment; @@ -172,7 +173,7 @@ public class ChatProfileActivity extends BaseFragment implements NotificationCen public View createView(LayoutInflater inflater, ViewGroup container) { if (fragmentView == null) { - actionBarLayer.setDisplayHomeAsUpEnabled(true, R.drawable.ic_ab_back); + actionBarLayer.setBackButtonImage(R.drawable.ic_ab_back); actionBarLayer.setBackOverlay(R.layout.updating_state_layout); if (chat_id > 0) { actionBarLayer.setTitle(LocaleController.getString("GroupInfo", R.string.GroupInfo)); @@ -643,7 +644,7 @@ public class ChatProfileActivity extends BaseFragment implements NotificationCen photo = chat.photo.photo_small; photoBig = chat.photo.photo_big; } - avatarImage.setImage(photo, "50_50", chat_id > 0 ? AndroidUtilities.getGroupAvatarForId(chat.id) : AndroidUtilities.getBroadcastAvatarForId(chat.id)); + avatarImage.setImage(photo, "50_50", new AvatarDrawable(chat)); avatarImage.imageReceiver.setVisible(!PhotoViewer.getInstance().isShowingImage(photoBig), false); return view; } else if (type == 1) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ContactAddActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ContactAddActivity.java index b136ba519..28a9a3c32 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ContactAddActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ContactAddActivity.java @@ -29,6 +29,7 @@ import org.telegram.messenger.TLRPC; import org.telegram.android.MessagesController; import org.telegram.android.NotificationCenter; import org.telegram.messenger.R; +import org.telegram.ui.Views.AvatarDrawable; import org.telegram.ui.Views.BackupImageView; import org.telegram.ui.Views.ActionBar.BaseFragment; @@ -164,7 +165,7 @@ public class ContactAddActivity extends BaseFragment implements NotificationCent if (user.photo != null) { photo = user.photo.photo_small; } - avatarImage.setImage(photo, "50_50", AndroidUtilities.getUserAvatarForId(user.id)); + avatarImage.setImage(photo, "50_50", new AvatarDrawable(user)); } public void didReceivedNotification(int id, Object... args) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ContactsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ContactsActivity.java index 6097a7315..79bfe6efe 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ContactsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ContactsActivity.java @@ -125,7 +125,7 @@ public class ContactsActivity extends BaseFragment implements NotificationCenter @Override public View createView(LayoutInflater inflater, ViewGroup container) { if (fragmentView == null) { - actionBarLayer.setDisplayHomeAsUpEnabled(true, R.drawable.ic_ab_back); + actionBarLayer.setBackButtonImage(R.drawable.ic_ab_back); actionBarLayer.setBackOverlay(R.layout.updating_state_layout); if (destroyAfterSelect) { actionBarLayer.setTitle(LocaleController.getString("SelectContact", R.string.SelectContact)); @@ -446,7 +446,7 @@ public class ContactsActivity extends BaseFragment implements NotificationCenter if (error == null) { final TLRPC.TL_help_inviteText res = (TLRPC.TL_help_inviteText)response; if (res.message.length() != 0) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { updatingInviteText = false; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/CountrySelectActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/CountrySelectActivity.java index 7430f2dae..4419303b7 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/CountrySelectActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/CountrySelectActivity.java @@ -122,7 +122,7 @@ public class CountrySelectActivity extends BaseFragment { @Override public View createView(LayoutInflater inflater, ViewGroup container) { if (fragmentView == null) { - actionBarLayer.setDisplayHomeAsUpEnabled(true, R.drawable.ic_ab_back); + actionBarLayer.setBackButtonImage(R.drawable.ic_ab_back); actionBarLayer.setBackOverlay(R.layout.updating_state_layout); actionBarLayer.setTitle(LocaleController.getString("ChooseCountry", R.string.ChooseCountry)); @@ -325,7 +325,7 @@ public class CountrySelectActivity extends BaseFragment { } private void updateSearchResults(final ArrayList arrCounties) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { searchResult = arrCounties; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/DocumentSelectActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/DocumentSelectActivity.java index 293fc3a45..d8d6cd31e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/DocumentSelectActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/DocumentSelectActivity.java @@ -130,7 +130,7 @@ public class DocumentSelectActivity extends BaseFragment { } if (fragmentView == null) { - actionBarLayer.setDisplayHomeAsUpEnabled(true, R.drawable.ic_ab_back); + actionBarLayer.setBackButtonImage(R.drawable.ic_ab_back); actionBarLayer.setBackOverlay(R.layout.updating_state_layout); actionBarLayer.setTitle(LocaleController.getString("SelectFile", R.string.SelectFile)); actionBarLayer.setActionBarMenuOnItemClick(new ActionBarLayer.ActionBarMenuOnItemClick() { @@ -481,7 +481,7 @@ public class DocumentSelectActivity extends BaseFragment { if (item.thumb != null) { imageView.setImageBitmap(null); typeTextView.setText(item.ext.toUpperCase().substring(0, Math.min(item.ext.length(), 4))); - imageView.setImage(item.thumb, "55_42", 0); + imageView.setImage(item.thumb, "55_42", null); imageView.setVisibility(View.VISIBLE); typeTextView.setVisibility(View.VISIBLE); } else if (item.icon != 0) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateActivity.java index a8eccbdb4..2df5cc6de 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateActivity.java @@ -47,6 +47,7 @@ import org.telegram.messenger.UserConfig; import org.telegram.messenger.Utilities; import org.telegram.ui.Views.ActionBar.ActionBarLayer; import org.telegram.ui.Views.ActionBar.ActionBarMenu; +import org.telegram.ui.Views.AvatarDrawable; import org.telegram.ui.Views.BackupImageView; import org.telegram.ui.Views.ActionBar.BaseFragment; import org.telegram.ui.Views.PinnedHeaderListView; @@ -138,7 +139,7 @@ public class GroupCreateActivity extends BaseFragment implements NotificationCen @Override public View createView(LayoutInflater inflater, ViewGroup container) { if (fragmentView == null) { - actionBarLayer.setDisplayHomeAsUpEnabled(true, R.drawable.ic_ab_back); + actionBarLayer.setBackButtonImage(R.drawable.ic_ab_back); actionBarLayer.setBackOverlay(R.layout.updating_state_layout); if (isBroadcast) { actionBarLayer.setTitle(LocaleController.getString("NewBroadcastList", R.string.NewBroadcastList)); @@ -403,7 +404,7 @@ public class GroupCreateActivity extends BaseFragment implements NotificationCen } private void processSearch(final String query) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { final ArrayList contactsCopy = new ArrayList(); @@ -439,7 +440,7 @@ public class GroupCreateActivity extends BaseFragment implements NotificationCen } private void updateSearchResults(final ArrayList users, final ArrayList names) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { searchResult = users; @@ -463,7 +464,7 @@ public class GroupCreateActivity extends BaseFragment implements NotificationCen } } } else if (id == NotificationCenter.chatDidCreated) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { removeSelfFromStack(); @@ -562,8 +563,8 @@ public class GroupCreateActivity extends BaseFragment implements NotificationCen if (user.photo != null) { photo = user.photo.photo_small; } - int placeHolderId = AndroidUtilities.getUserAvatarForId(user.id); - holder.avatarImage.setImage(photo, "50_50", placeHolderId); + holder.avatarDrawable.setInfo(user.id, user.first_name, user.last_name, false); + holder.avatarImage.setImage(photo, "50_50", holder.avatarDrawable); holder.messageTextView.setText(LocaleController.formatUserStatus(user)); if (user.status != null && user.status.expires > ConnectionsManager.getInstance().getCurrentTime()) { @@ -614,6 +615,7 @@ public class GroupCreateActivity extends BaseFragment implements NotificationCen public BackupImageView avatarImage; public TextView messageTextView; public TextView nameTextView; + public AvatarDrawable avatarDrawable = new AvatarDrawable(); public ContactListRowHolder(View view) { messageTextView = (TextView)view.findViewById(R.id.messages_list_row_message); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateFinalActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateFinalActivity.java index 82d19e28e..36dcce7de 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateFinalActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/GroupCreateFinalActivity.java @@ -33,6 +33,7 @@ import org.telegram.messenger.R; import org.telegram.ui.Cells.ChatOrUserCell; import org.telegram.ui.Views.ActionBar.ActionBarLayer; import org.telegram.ui.Views.ActionBar.ActionBarMenu; +import org.telegram.ui.Views.AvatarDrawable; import org.telegram.ui.Views.AvatarUpdater; import org.telegram.ui.Views.BackupImageView; import org.telegram.ui.Views.ActionBar.BaseFragment; @@ -50,6 +51,7 @@ public class GroupCreateFinalActivity extends BaseFragment implements Notificati private TLRPC.InputFile uploadedAvatar; private ArrayList selectedContacts; private BackupImageView avatarImage; + private AvatarDrawable avatarDrawable; private boolean createAfterUpload; private boolean donePressed; private AvatarUpdater avatarUpdater = new AvatarUpdater(); @@ -120,7 +122,7 @@ public class GroupCreateFinalActivity extends BaseFragment implements Notificati @Override public View createView(LayoutInflater inflater, ViewGroup container) { if (fragmentView == null) { - actionBarLayer.setDisplayHomeAsUpEnabled(true, R.drawable.ic_ab_back); + actionBarLayer.setBackButtonImage(R.drawable.ic_ab_back); actionBarLayer.setBackOverlay(R.layout.updating_state_layout); if (isBroadcast) { actionBarLayer.setTitle(LocaleController.getString("NewBroadcastList", R.string.NewBroadcastList)); @@ -212,7 +214,7 @@ public class GroupCreateFinalActivity extends BaseFragment implements Notificati } else if (i == 2) { avatar = null; uploadedAvatar = null; - avatarImage.setImage(avatar, "50_50", R.drawable.group_blue); + avatarImage.setImage(avatar, "50_50", avatarDrawable); } } }); @@ -222,7 +224,8 @@ public class GroupCreateFinalActivity extends BaseFragment implements Notificati } avatarImage = (BackupImageView)fragmentView.findViewById(R.id.settings_avatar_image); - avatarImage.setImageResource(R.drawable.group_blue); + avatarDrawable.setInfo(3, null, null, isBroadcast); + avatarImage.setImageDrawable(avatarDrawable); nameTextView = (EditText)fragmentView.findViewById(R.id.bubble_input_text); if (isBroadcast) { @@ -247,12 +250,12 @@ public class GroupCreateFinalActivity extends BaseFragment implements Notificati @Override public void didUploadedPhoto(final TLRPC.InputFile file, final TLRPC.PhotoSize small, final TLRPC.PhotoSize big) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { uploadedAvatar = file; avatar = small.location; - avatarImage.setImage(avatar, "50_50", R.drawable.group_blue); + avatarImage.setImage(avatar, "50_50", avatarDrawable); if (createAfterUpload) { FileLog.e("tmessages", "avatar did uploaded"); MessagesController.getInstance().createChat(nameTextView.getText().toString(), selectedContacts, uploadedAvatar, false); @@ -311,7 +314,7 @@ public class GroupCreateFinalActivity extends BaseFragment implements Notificati } donePressed = false; } else if (id == NotificationCenter.chatDidCreated) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (progressDialog != null) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/IdenticonActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/IdenticonActivity.java index affe474ea..0db139257 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/IdenticonActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/IdenticonActivity.java @@ -45,7 +45,7 @@ public class IdenticonActivity extends BaseFragment { @Override public View createView(LayoutInflater inflater, ViewGroup container) { if (fragmentView == null) { - actionBarLayer.setDisplayHomeAsUpEnabled(true, R.drawable.ic_ab_back); + actionBarLayer.setBackButtonImage(R.drawable.ic_ab_back); actionBarLayer.setBackOverlay(R.layout.updating_state_layout); actionBarLayer.setTitle(LocaleController.getString("EncryptionKey", R.string.EncryptionKey)); actionBarLayer.setTitleIcon(R.drawable.ic_lock_white, AndroidUtilities.dp(4)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LanguageSelectActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LanguageSelectActivity.java index 0ab87bc8b..848bb665b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LanguageSelectActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LanguageSelectActivity.java @@ -50,7 +50,7 @@ public class LanguageSelectActivity extends BaseFragment { @Override public View createView(LayoutInflater inflater, ViewGroup container) { if (fragmentView == null) { - actionBarLayer.setDisplayHomeAsUpEnabled(true, R.drawable.ic_ab_back); + actionBarLayer.setBackButtonImage(R.drawable.ic_ab_back); actionBarLayer.setBackOverlay(R.layout.updating_state_layout); actionBarLayer.setTitle(LocaleController.getString("Language", R.string.Language)); @@ -264,7 +264,7 @@ public class LanguageSelectActivity extends BaseFragment { } private void updateSearchResults(final ArrayList arrCounties) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { searchResult = arrCounties; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java index 9806c5d89..b552964f9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java @@ -235,6 +235,11 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa } actionBarLayout.init(mainFragmentsStack); actionBarLayout.setDelegate(this); + if (Build.VERSION.SDK_INT >= 21) { + actionBarLayout.setNeedStatusBar(true); + actionBarLayout.setStatusBarColor(0xff54759e); + } + actionBarLayout.createDrawerLayout(); int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); if (resourceId > 0) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LocationActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LocationActivity.java index e3e065e87..0685347b9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LocationActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LocationActivity.java @@ -27,7 +27,6 @@ import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.Marker; import com.google.android.gms.maps.model.MarkerOptions; -import org.telegram.android.AndroidUtilities; import org.telegram.android.ContactsController; import org.telegram.messenger.FileLog; import org.telegram.android.LocaleController; @@ -39,6 +38,7 @@ import org.telegram.messenger.R; import org.telegram.ui.Views.ActionBar.ActionBarLayer; import org.telegram.ui.Views.ActionBar.ActionBarMenu; import org.telegram.ui.Views.ActionBar.ActionBarMenuItem; +import org.telegram.ui.Views.AvatarDrawable; import org.telegram.ui.Views.BackupImageView; import org.telegram.ui.Views.ActionBar.BaseFragment; @@ -91,7 +91,7 @@ public class LocationActivity extends BaseFragment implements NotificationCenter @Override public View createView(LayoutInflater inflater, ViewGroup container) { if (fragmentView == null) { - actionBarLayer.setDisplayHomeAsUpEnabled(true, R.drawable.ic_ab_back); + actionBarLayer.setBackButtonImage(R.drawable.ic_ab_back); actionBarLayer.setBackOverlay(R.layout.updating_state_layout); if (messageObject != null) { actionBarLayer.setTitle(LocaleController.getString("ChatLocation", R.string.ChatLocation)); @@ -226,19 +226,7 @@ public class LocationActivity extends BaseFragment implements NotificationCenter } if (messageObject != null) { - int fromId = messageObject.messageOwner.from_id; - if (messageObject.messageOwner instanceof TLRPC.TL_messageForwarded) { - fromId = messageObject.messageOwner.fwd_from_id; - } - TLRPC.User user = MessagesController.getInstance().getUser(fromId); - if (user != null) { - TLRPC.FileLocation photo = null; - if (user.photo != null) { - photo = user.photo.photo_small; - } - avatarImageView.setImage(photo, "50_50", AndroidUtilities.getUserAvatarForId(user.id)); - nameTextView.setText(ContactsController.formatName(user.first_name, user.last_name)); - } + updateUserData(); userLocation = new Location("network"); userLocation.setLatitude(messageObject.messageOwner.media.geo.lat); userLocation.setLongitude(messageObject.messageOwner.media.geo._long); @@ -285,7 +273,7 @@ public class LocationActivity extends BaseFragment implements NotificationCenter if (user.photo != null) { photo = user.photo.photo_small; } - avatarImageView.setImage(photo, null, AndroidUtilities.getUserAvatarForId(user.id)); + avatarImageView.setImage(photo, null, new AvatarDrawable(user)); nameTextView.setText(ContactsController.formatName(user.first_name, user.last_name)); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LoginActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LoginActivity.java index 990fbc452..8b22ef211 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LoginActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LoginActivity.java @@ -67,7 +67,6 @@ public class LoginActivity extends BaseFragment implements SlideView.SlideViewDe @Override public View createView(LayoutInflater inflater, ViewGroup container) { if (fragmentView == null) { - actionBarLayer.setDisplayUseLogoEnabled(true, R.drawable.ic_ab_logo); actionBarLayer.setTitle(LocaleController.getString("AppName", R.string.AppName)); actionBarLayer.setActionBarMenuOnItemClick(new ActionBarLayer.ActionBarMenuOnItemClick() { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LoginActivityPhoneView.java b/TMessagesProj/src/main/java/org/telegram/ui/LoginActivityPhoneView.java index 79d0926cf..a038fba8f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LoginActivityPhoneView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LoginActivityPhoneView.java @@ -359,7 +359,7 @@ public class LoginActivityPhoneView extends SlideView implements AdapterView.OnI ConnectionsManager.getInstance().performRpc(req, new RPCRequest.RPCRequestDelegate() { @Override public void run(final TLObject response, final TLRPC.TL_error error) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { nextPressed = false; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LoginActivityRegisterView.java b/TMessagesProj/src/main/java/org/telegram/ui/LoginActivityRegisterView.java index be477fe5f..fab0b4d07 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LoginActivityRegisterView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LoginActivityRegisterView.java @@ -139,7 +139,7 @@ public class LoginActivityRegisterView extends SlideView { ConnectionsManager.getInstance().performRpc(req, new RPCRequest.RPCRequestDelegate() { @Override public void run(final TLObject response, final TLRPC.TL_error error) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { nextPressed = false; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LoginActivitySmsView.java b/TMessagesProj/src/main/java/org/telegram/ui/LoginActivitySmsView.java index d9187fba1..6c5898cd9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LoginActivitySmsView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LoginActivitySmsView.java @@ -186,7 +186,7 @@ public class LoginActivitySmsView extends SlideView implements NotificationCente double diff = currentTime - lastCodeTime; codeTime -= diff; lastCodeTime = currentTime; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (codeTime <= 1000) { @@ -224,7 +224,7 @@ public class LoginActivitySmsView extends SlideView implements NotificationCente double diff = currentTime - lastCurrentTime; time -= diff; lastCurrentTime = currentTime; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (time >= 1000) { @@ -242,7 +242,7 @@ public class LoginActivitySmsView extends SlideView implements NotificationCente @Override public void run(TLObject response, final TLRPC.TL_error error) { if (error != null && error.text != null) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { lastError = error.text; @@ -291,7 +291,7 @@ public class LoginActivitySmsView extends SlideView implements NotificationCente ConnectionsManager.getInstance().performRpc(req, new RPCRequest.RPCRequestDelegate() { @Override public void run(final TLObject response, final TLRPC.TL_error error) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (delegate == null) { @@ -379,7 +379,7 @@ public class LoginActivitySmsView extends SlideView implements NotificationCente @Override public void didReceivedNotification(int id, final Object... args) { if (id == 998) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (!waitingForSms) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/MediaActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/MediaActivity.java index 0eb4b6c5b..5fae08af3 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/MediaActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/MediaActivity.java @@ -87,7 +87,7 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No @Override public View createView(LayoutInflater inflater, ViewGroup container) { if (fragmentView == null) { - actionBarLayer.setDisplayHomeAsUpEnabled(true, R.drawable.ic_ab_back); + actionBarLayer.setBackButtonImage(R.drawable.ic_ab_back); actionBarLayer.setBackOverlay(R.layout.updating_state_layout); actionBarLayer.setTitle(LocaleController.getString("SharedMedia", R.string.SharedMedia)); actionBarLayer.setActionBarMenuOnItemClick(new ActionBarLayer.ActionBarMenuOnItemClick() { @@ -421,7 +421,7 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No imageView.setImageBitmap(message.imagePreview); } else { TLRPC.PhotoSize photoSize = FileLoader.getClosestPhotoSizeWithSize(message.messageOwner.media.photo.sizes, 80); - imageView.setImage(photoSize.location, null, R.drawable.photo_placeholder_in); + imageView.setImage(photoSize.location, null, mContext.getResources().getDrawable(R.drawable.photo_placeholder_in)); } } else { imageView.setImageResource(R.drawable.photo_placeholder_in); @@ -450,7 +450,7 @@ public class MediaActivity extends BaseFragment implements NotificationCenter.No if (message.imagePreview != null) { imageView.setImageBitmap(message.imagePreview); } else { - imageView.setImage(message.messageOwner.media.video.thumb.location, null, R.drawable.photo_placeholder_in); + imageView.setImage(message.messageOwner.media.video.thumb.location, null, mContext.getResources().getDrawable(R.drawable.photo_placeholder_in)); } textView.setVisibility(View.VISIBLE); } else { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/MessagesActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/MessagesActivity.java index b6592d9a5..bbec10b25 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/MessagesActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/MessagesActivity.java @@ -10,16 +10,22 @@ package org.telegram.ui; import android.app.AlertDialog; import android.content.DialogInterface; +import android.content.res.Configuration; import android.os.Build; import android.os.Bundle; +import android.view.Gravity; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; +import android.view.ViewTreeObserver; +import android.view.animation.AccelerateDecelerateInterpolator; import android.widget.AbsListView; import android.widget.AdapterView; import android.widget.CheckBox; import android.widget.EditText; +import android.widget.FrameLayout; +import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; @@ -36,13 +42,15 @@ import org.telegram.messenger.UserConfig; import org.telegram.ui.Adapters.BaseFragmentAdapter; import org.telegram.ui.Adapters.MessagesActivityAdapter; import org.telegram.ui.Adapters.MessagesActivitySearchAdapter; +import org.telegram.ui.AnimationCompat.ObjectAnimatorProxy; +import org.telegram.ui.AnimationCompat.ViewProxy; import org.telegram.ui.Cells.ChatOrUserCell; import org.telegram.ui.Cells.DialogCell; import org.telegram.ui.Views.ActionBar.ActionBarLayer; import org.telegram.ui.Views.ActionBar.ActionBarMenu; import org.telegram.ui.Views.ActionBar.ActionBarMenuItem; import org.telegram.ui.Views.ActionBar.BaseFragment; -import org.telegram.ui.Views.SlidingTabView; +import org.telegram.ui.Views.ActionBar.MenuDrawable; import java.util.ArrayList; @@ -53,7 +61,12 @@ public class MessagesActivity extends BaseFragment implements NotificationCenter private TextView searchEmptyView; private View progressView; private View emptyView; - private SlidingTabView searchPanelView; + private ImageView floatingButton; + private int prevPosition; + private int prevTop; + private boolean scrollUpdated; + private boolean floatingHidden; + private final AccelerateDecelerateInterpolator floatingInterpolator = new AccelerateDecelerateInterpolator(); private String selectAlertString; private String selectAlertStringGroup; @@ -69,9 +82,8 @@ public class MessagesActivity extends BaseFragment implements NotificationCenter private long openedDialogId = 0; - private final static int messages_list_menu_new_messages = 1; + private final static int messages_list_menu_other = 1; private final static int messages_list_menu_new_chat = 2; - private final static int messages_list_menu_other = 6; private final static int messages_list_menu_new_secret_chat = 3; private final static int messages_list_menu_contacts = 4; private final static int messages_list_menu_settings = 5; @@ -131,9 +143,11 @@ public class MessagesActivity extends BaseFragment implements NotificationCenter searching = true; if (messagesListView != null) { messagesListView.setEmptyView(searchEmptyView); - searchPanelView.setVisibility(View.VISIBLE); emptyView.setVisibility(View.GONE); progressView.setVisibility(View.GONE); + if (!onlySelect) { + floatingButton.setVisibility(View.GONE); + } } } @@ -143,14 +157,21 @@ public class MessagesActivity extends BaseFragment implements NotificationCenter searchWas = false; if (messagesListView != null) { messagesListView.setEmptyView(emptyView); - searchPanelView.setVisibility(View.GONE); searchEmptyView.setVisibility(View.GONE); progressView.setVisibility(View.GONE); - messagesListView.setAdapter(messagesActivityAdapter); - messagesActivityAdapter.notifyDataSetChanged(); + if (!onlySelect) { + floatingButton.setVisibility(View.VISIBLE); + floatingHidden = true; + ViewProxy.setTranslationY(floatingButton, AndroidUtilities.dp(100)); + hideFloatingButton(false); + } + if (messagesListView.getAdapter() != messagesActivityAdapter) { + messagesListView.setAdapter(messagesActivityAdapter); + messagesActivityAdapter.notifyDataSetChanged(); + } } if (messagesActivitySearchAdapter != null) { - messagesActivitySearchAdapter.searchDialogs(null, 0); + messagesActivitySearchAdapter.searchDialogs(null, false); } } @@ -170,21 +191,16 @@ public class MessagesActivity extends BaseFragment implements NotificationCenter } } if (messagesActivitySearchAdapter != null) { - if (searchPanelView.getSeletedTab() == 0) { - messagesActivitySearchAdapter.searchDialogs(text, serverOnly ? 1 : 0); - } else { - messagesActivitySearchAdapter.searchDialogs(text, 2); - } + messagesActivitySearchAdapter.searchDialogs(text, serverOnly); } } }); if (onlySelect) { - actionBarLayer.setDisplayHomeAsUpEnabled(true, R.drawable.ic_ab_back); + actionBarLayer.setBackButtonImage(R.drawable.ic_ab_back); actionBarLayer.setTitle(LocaleController.getString("SelectChat", R.string.SelectChat)); } else { - actionBarLayer.setDisplayUseLogoEnabled(true, R.drawable.ic_ab_logo); + actionBarLayer.setBackButtonDrawable(new MenuDrawable()); actionBarLayer.setTitle(LocaleController.getString("AppName", R.string.AppName)); - menu.addItem(messages_list_menu_new_messages, R.drawable.ic_ab_compose); ActionBarMenuItem item = menu.addItem(0, R.drawable.ic_ab_other); item.addSubItem(messages_list_menu_new_chat, LocaleController.getString("NewGroup", R.string.NewGroup), 0); item.addSubItem(messages_list_menu_new_secret_chat, LocaleController.getString("NewSecretChat", R.string.NewSecretChat), 0); @@ -201,12 +217,6 @@ public class MessagesActivity extends BaseFragment implements NotificationCenter presentFragment(new SettingsActivity()); } else if (id == messages_list_menu_contacts) { presentFragment(new ContactsActivity(null)); - } else if (id == messages_list_menu_new_messages) { - Bundle args = new Bundle(); - args.putBoolean("onlyUsers", true); - args.putBoolean("destroyAfterSelect", true); - args.putBoolean("usersAsSections", true); - presentFragment(new ContactsActivity(args)); } else if (id == messages_list_menu_new_secret_chat) { Bundle args = new Bundle(); args.putBoolean("onlyUsers", true); @@ -245,22 +255,6 @@ public class MessagesActivity extends BaseFragment implements NotificationCenter } } }); - searchPanelView = (SlidingTabView)fragmentView.findViewById(R.id.searchPanelView); - searchPanelView.addTextTab(0, LocaleController.getString("SearchConversations", R.string.SearchConversations)); - searchPanelView.addTextTab(1, LocaleController.getString("SearchMessages", R.string.SearchMessages)); - searchPanelView.setDelegate(new SlidingTabView.SlidingTabViewDelegate() { - @Override - public void didSelectTab(int tab) { - if (searching && searchWas) { - if (tab == 0) { - messagesActivitySearchAdapter.searchDialogs(messagesActivitySearchAdapter.getLastSearchText(), serverOnly ? 1 : 0); - } else { - messagesActivitySearchAdapter.searchDialogs(messagesActivitySearchAdapter.getLastSearchText(), 2); - } - messagesActivitySearchAdapter.notifyDataSetChanged(); - } - } - }); messagesListView = (ListView)fragmentView.findViewById(R.id.messages_list_view); messagesListView.setAdapter(messagesActivityAdapter); @@ -290,6 +284,23 @@ public class MessagesActivity extends BaseFragment implements NotificationCenter textView = (TextView)fragmentView.findViewById(R.id.list_empty_view_text2); textView.setText(LocaleController.getString("NoChats", R.string.NoChatsHelp)); + floatingButton = (ImageView)fragmentView.findViewById(R.id.floating_button); + floatingButton.setVisibility(onlySelect ? View.GONE : View.VISIBLE); + FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams)floatingButton.getLayoutParams(); + layoutParams.leftMargin = LocaleController.isRTL ? AndroidUtilities.dp(14) : 0; + layoutParams.rightMargin = LocaleController.isRTL ? 0 : AndroidUtilities.dp(14); + layoutParams.gravity = (LocaleController.isRTL ? Gravity.LEFT : Gravity.RIGHT) | Gravity.BOTTOM; + floatingButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Bundle args = new Bundle(); + args.putBoolean("onlyUsers", true); + args.putBoolean("destroyAfterSelect", true); + args.putBoolean("usersAsSections", true); + presentFragment(new ContactsActivity(args)); + } + }); + if (MessagesController.getInstance().loadingDialogs && MessagesController.getInstance().dialogs.isEmpty()) { searchEmptyView.setVisibility(View.GONE); emptyView.setVisibility(View.GONE); @@ -483,6 +494,29 @@ public class MessagesActivity extends BaseFragment implements NotificationCenter MessagesController.getInstance().loadDialogs(MessagesController.getInstance().dialogs.size(), MessagesController.getInstance().dialogsServerOnly.size(), 100, true); } } + + if (floatingButton.getVisibility() != View.GONE) { + final View topChild = absListView.getChildAt(0); + int firstViewTop = 0; + if (topChild != null) { + firstViewTop = topChild.getTop(); + } + boolean goingDown; + boolean changed = true; + if (prevPosition == firstVisibleItem) { + final int topDelta = prevTop - firstViewTop; + goingDown = firstViewTop < prevTop; + changed = Math.abs(topDelta) > 1; + } else { + goingDown = firstVisibleItem > prevPosition; + } + if (changed && scrollUpdated) { + hideFloatingButton(goingDown); + } + prevPosition = firstVisibleItem; + prevTop = firstViewTop; + scrollUpdated = true; + } } }); } else { @@ -506,6 +540,26 @@ public class MessagesActivity extends BaseFragment implements NotificationCenter } } + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + if (!onlySelect && floatingButton != null) { + floatingButton.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + ViewProxy.setTranslationY(floatingButton, floatingHidden ? AndroidUtilities.dp(100) : 0); + if (floatingButton != null) { + if (Build.VERSION.SDK_INT < 16) { + floatingButton.getViewTreeObserver().removeGlobalOnLayoutListener(this); + } else { + floatingButton.getViewTreeObserver().removeOnGlobalLayoutListener(this); + } + } + } + }); + } + } + @Override @SuppressWarnings("unchecked") public void didReceivedNotification(int id, Object... args) { @@ -560,6 +614,16 @@ public class MessagesActivity extends BaseFragment implements NotificationCenter } } + private void hideFloatingButton(boolean hide) { + if (floatingHidden == hide) { + return; + } + floatingHidden = hide; + ObjectAnimatorProxy animator = ObjectAnimatorProxy.ofFloatProxy(floatingButton, "translationY", floatingHidden ? AndroidUtilities.dp(100) : 0).setDuration(300); + animator.setInterpolator(floatingInterpolator); + animator.start(); + } + private void updateVisibleRows(int mask) { if (messagesListView == null) { return; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PhotoPickerActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PhotoPickerActivity.java index 8b93ea57c..40b82e88b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PhotoPickerActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PhotoPickerActivity.java @@ -86,8 +86,7 @@ public class PhotoPickerActivity extends BaseFragment implements NotificationCen if (fragmentView == null) { actionBarLayer.setBackgroundColor(0xff333333); actionBarLayer.setItemsBackground(R.drawable.bar_selector_picker); - actionBarLayer.setDisplayUseLogoEnabled(true, R.drawable.gallery); - actionBarLayer.setDisplayHomeAsUpEnabled(true, R.drawable.photo_back); + actionBarLayer.setBackButtonImage(R.drawable.ic_ab_back); actionBarLayer.setTitle(LocaleController.getString("Gallery", R.string.Gallery)); actionBarLayer.setActionBarMenuOnItemClick(new ActionBarLayer.ActionBarMenuOnItemClick() { @Override @@ -115,7 +114,7 @@ public class PhotoPickerActivity extends BaseFragment implements NotificationCen }); ActionBarMenu menu = actionBarLayer.createMenu(); - menu.addItem(1, R.drawable.ic_ab_other_white2); + menu.addItem(1, R.drawable.ic_ab_other); fragmentView = inflater.inflate(R.layout.photo_picker_layout, container, false); @@ -515,7 +514,7 @@ public class PhotoPickerActivity extends BaseFragment implements NotificationCen MediaController.AlbumEntry albumEntry = albumsSorted.get(i); BackupImageView imageView = (BackupImageView)view.findViewById(R.id.media_photo_image); if (albumEntry.coverPhoto != null && albumEntry.coverPhoto.path != null) { - imageView.setImage("thumb://" + albumEntry.coverPhoto.imageId + ":" + albumEntry.coverPhoto.path, null, R.drawable.nophotos); + imageView.setImage("thumb://" + albumEntry.coverPhoto.imageId + ":" + albumEntry.coverPhoto.path, null, mContext.getResources().getDrawable(R.drawable.nophotos)); } else { imageView.setImageResource(R.drawable.nophotos); } @@ -557,7 +556,7 @@ public class PhotoPickerActivity extends BaseFragment implements NotificationCen imageView.setTag(i); view.setTag(i); if (photoEntry.path != null) { - imageView.setImage("thumb://" + photoEntry.imageId + ":" + photoEntry.path, null, R.drawable.nophotos); + imageView.setImage("thumb://" + photoEntry.imageId + ":" + photoEntry.path, null, mContext.getResources().getDrawable(R.drawable.nophotos)); } else { imageView.setImageResource(R.drawable.nophotos); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java b/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java index 343b90448..92bd205b9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java @@ -8,10 +8,6 @@ package org.telegram.ui; -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; -import android.animation.AnimatorSet; -import android.animation.ObjectAnimator; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; @@ -63,6 +59,10 @@ import org.telegram.messenger.TLRPC; import org.telegram.messenger.UserConfig; import org.telegram.android.MessageObject; import org.telegram.messenger.Utilities; +import org.telegram.ui.AnimationCompat.AnimatorListenerAdapterProxy; +import org.telegram.ui.AnimationCompat.AnimatorSetProxy; +import org.telegram.ui.AnimationCompat.ObjectAnimatorProxy; +import org.telegram.ui.AnimationCompat.ViewProxy; import org.telegram.ui.Views.ActionBar.ActionBar; import org.telegram.ui.Views.ActionBar.ActionBarLayer; import org.telegram.ui.Views.ActionBar.ActionBarMenu; @@ -610,7 +610,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat actionBar.setLayoutParams(layoutParams); actionBarLayer = actionBar.createLayer(); actionBarLayer.setItemsBackground(R.drawable.bar_selector_white); - actionBarLayer.setDisplayHomeAsUpEnabled(true, R.drawable.photo_back); + actionBarLayer.setBackButtonImage(R.drawable.ic_ab_back); actionBarLayer.setTitle(LocaleController.formatString("Of", R.string.Of, 1, 1)); actionBar.setCurrentActionBarLayer(actionBarLayer); @@ -693,7 +693,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat }); ActionBarMenu menu = actionBarLayer.createMenu(); - menuItem = menu.addItem(0, R.drawable.ic_ab_other_white); + menuItem = menu.addItem(0, R.drawable.ic_ab_other); menuItem.addSubItem(gallery_menu_save, LocaleController.getString("SaveToGallery", R.string.SaveToGallery), 0); menuItem.addSubItem(gallery_menu_showall, LocaleController.getString("ShowAllMedia", R.string.ShowAllMedia), 0); @@ -955,38 +955,30 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat actionBar.setEnabled(show); actionBarLayer.setEnabled(show); bottomLayout.setEnabled(show); - if (android.os.Build.VERSION.SDK_INT >= 11) { - if (animated) { - AnimatorSet animatorSet = new AnimatorSet(); - animatorSet.playTogether( - ObjectAnimator.ofFloat(actionBar, "alpha", show ? 1.0f : 0.0f), - ObjectAnimator.ofFloat(bottomLayout, "alpha", show ? 1.0f : 0.0f) - ); - if (!show) { - animatorSet.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - actionBar.setVisibility(View.GONE); - if (canShowBottom) { - bottomLayout.setVisibility(View.GONE); - } - } - }); - } - animatorSet.setDuration(250); - animatorSet.start(); - } else { - actionBar.setAlpha(show ? 1.0f : 0.0f); - bottomLayout.setAlpha(show ? 1.0f : 0.0f); - if (!show) { - actionBar.setVisibility(View.GONE); - if (canShowBottom) { - bottomLayout.setVisibility(View.GONE); + if (animated) { + AnimatorSetProxy animatorSet = new AnimatorSetProxy(); + animatorSet.playTogether( + ObjectAnimatorProxy.ofFloat(actionBar, "alpha", show ? 1.0f : 0.0f), + ObjectAnimatorProxy.ofFloat(bottomLayout, "alpha", show ? 1.0f : 0.0f) + ); + if (!show) { + animatorSet.addListener(new AnimatorListenerAdapterProxy() { + @Override + public void onAnimationEnd(Object animation) { + actionBar.setVisibility(View.GONE); + if (canShowBottom) { + bottomLayout.setVisibility(View.GONE); + } } - } + }); } + + animatorSet.setDuration(200); + animatorSet.start(); } else { + ViewProxy.setAlpha(actionBar, show ? 1.0f : 0.0f); + ViewProxy.setAlpha(bottomLayout, show ? 1.0f : 0.0f); if (!show) { actionBar.setVisibility(View.GONE); if (canShowBottom) { @@ -1340,7 +1332,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } - if (android.os.Build.VERSION.SDK_INT >= 11 && currentPlaceObject != null) { + if (currentPlaceObject != null) { if (animationInProgress == 0) { currentPlaceObject.imageReceiver.setVisible(true, true); } else { @@ -1348,7 +1340,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } } currentPlaceObject = placeProvider.getPlaceForPhoto(currentMessageObject, currentFileLocation, currentIndex); - if (android.os.Build.VERSION.SDK_INT >= 11 && currentPlaceObject != null) { + if (currentPlaceObject != null) { if (animationInProgress == 0) { currentPlaceObject.imageReceiver.setVisible(false, true); } else { @@ -1518,15 +1510,15 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } public boolean isShowingImage(MessageObject object) { - return android.os.Build.VERSION.SDK_INT >= 11 && isVisible && !disableShowCheck && object != null && currentMessageObject != null && currentMessageObject.messageOwner.id == object.messageOwner.id; + return isVisible && !disableShowCheck && object != null && currentMessageObject != null && currentMessageObject.messageOwner.id == object.messageOwner.id; } public boolean isShowingImage(TLRPC.FileLocation object) { - return android.os.Build.VERSION.SDK_INT >= 11 && isVisible && !disableShowCheck && object != null && currentFileLocation != null && object.local_id == currentFileLocation.local_id && object.volume_id == currentFileLocation.volume_id && object.dc_id == currentFileLocation.dc_id; + return isVisible && !disableShowCheck && object != null && currentFileLocation != null && object.local_id == currentFileLocation.local_id && object.volume_id == currentFileLocation.volume_id && object.dc_id == currentFileLocation.dc_id; } public boolean isShowingImage(String object) { - return android.os.Build.VERSION.SDK_INT >= 11 && isVisible && !disableShowCheck && object != null && currentPathObject != null && object.equals(currentPathObject); + return isVisible && !disableShowCheck && object != null && currentPathObject != null && object.equals(currentPathObject); } public void openPhoto(final MessageObject messageObject, final PhotoViewerProvider provider) { @@ -1599,132 +1591,112 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat backgroundDrawable.setAlpha(255); toggleActionBar(true, false); - if(android.os.Build.VERSION.SDK_INT >= 11) { - AndroidUtilities.lockOrientation(parentActivity); + AndroidUtilities.lockOrientation(parentActivity); - final Rect drawRegion = object.imageReceiver.getDrawRegion(); + final Rect drawRegion = object.imageReceiver.getDrawRegion(); - animatingImageView.setVisibility(View.VISIBLE); - animatingImageView.setImageBitmap(object.thumb); + animatingImageView.setVisibility(View.VISIBLE); + animatingImageView.setImageBitmap(object.thumb); - animatingImageView.setAlpha(1.0f); - animatingImageView.setPivotX(0); - animatingImageView.setPivotY(0); - animatingImageView.setScaleX(1); - animatingImageView.setScaleY(1); - animatingImageView.setTranslationX(object.viewX + drawRegion.left); - animatingImageView.setTranslationY(object.viewY + drawRegion.top); - final ViewGroup.LayoutParams layoutParams = animatingImageView.getLayoutParams(); - layoutParams.width = drawRegion.right - drawRegion.left; - layoutParams.height = drawRegion.bottom - drawRegion.top; - animatingImageView.setLayoutParams(layoutParams); + ViewProxy.setAlpha(animatingImageView, 1.0f); + ViewProxy.setPivotX(animatingImageView, 0.0f); + ViewProxy.setPivotY(animatingImageView, 0.0f); + ViewProxy.setScaleX(animatingImageView, 1.0f); + ViewProxy.setScaleY(animatingImageView, 1.0f); + ViewProxy.setTranslationX(animatingImageView, object.viewX + drawRegion.left); + ViewProxy.setTranslationY(animatingImageView, object.viewY + drawRegion.top); + final ViewGroup.LayoutParams layoutParams = animatingImageView.getLayoutParams(); + layoutParams.width = drawRegion.right - drawRegion.left; + layoutParams.height = drawRegion.bottom - drawRegion.top; + animatingImageView.setLayoutParams(layoutParams); - containerView.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { - @Override - public boolean onPreDraw() { - containerView.getViewTreeObserver().removeOnPreDrawListener(this); + containerView.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { + @Override + public boolean onPreDraw() { + containerView.getViewTreeObserver().removeOnPreDrawListener(this); - float scaleX = (float) AndroidUtilities.displaySize.x / layoutParams.width; - float scaleY = (float) (AndroidUtilities.displaySize.y - AndroidUtilities.statusBarHeight) / layoutParams.height; - float scale = scaleX > scaleY ? scaleY : scaleX; - float width = layoutParams.width * scale; - float height = layoutParams.height * scale; - float xPos = (AndroidUtilities.displaySize.x - width) / 2.0f; - float yPos = (AndroidUtilities.displaySize.y - AndroidUtilities.statusBarHeight - height) / 2.0f; - int clipHorizontal = Math.abs(drawRegion.left - object.imageReceiver.getImageX()); - int clipVertical = Math.abs(drawRegion.top - object.imageReceiver.getImageY()); + float scaleX = (float) AndroidUtilities.displaySize.x / layoutParams.width; + float scaleY = (float) (AndroidUtilities.displaySize.y - AndroidUtilities.statusBarHeight) / layoutParams.height; + float scale = scaleX > scaleY ? scaleY : scaleX; + float width = layoutParams.width * scale; + float height = layoutParams.height * scale; + float xPos = (AndroidUtilities.displaySize.x - width) / 2.0f; + float yPos = (AndroidUtilities.displaySize.y - AndroidUtilities.statusBarHeight - height) / 2.0f; + int clipHorizontal = Math.abs(drawRegion.left - object.imageReceiver.getImageX()); + int clipVertical = Math.abs(drawRegion.top - object.imageReceiver.getImageY()); - int coords2[] = new int[2]; - object.parentView.getLocationInWindow(coords2); - int clipTop = coords2[1] - AndroidUtilities.statusBarHeight - (object.viewY + drawRegion.top); - if (clipTop < 0) { - clipTop = 0; - } - int clipBottom = (object.viewY + drawRegion.top + layoutParams.height) - (coords2[1] + object.parentView.getHeight() - AndroidUtilities.statusBarHeight); - if (clipBottom < 0) { - clipBottom = 0; - } - clipTop = Math.max(clipTop, clipVertical); - clipBottom = Math.max(clipBottom, clipVertical); - - AnimatorSet animatorSet = new AnimatorSet(); - animatorSet.playTogether( - ObjectAnimator.ofFloat(animatingImageView, "scaleX", scale), - ObjectAnimator.ofFloat(animatingImageView, "scaleY", scale), - ObjectAnimator.ofFloat(animatingImageView, "translationX", xPos), - ObjectAnimator.ofFloat(animatingImageView, "translationY", yPos), - ObjectAnimator.ofInt(backgroundDrawable, "alpha", 0, 255), - ObjectAnimator.ofInt(animatingImageView, "clipHorizontal", clipHorizontal, 0), - ObjectAnimator.ofInt(animatingImageView, "clipTop", clipTop, 0), - ObjectAnimator.ofInt(animatingImageView, "clipBottom", clipBottom, 0), - ObjectAnimator.ofFloat(containerView, "alpha", 0.0f, 1.0f) - ); - - animationEndRunnable = new Runnable() { - @Override - public void run() { - animationInProgress = 0; - transitionAnimationStartTime = 0; - containerView.invalidate(); - animatingImageView.setVisibility(View.GONE); - AndroidUtilities.unlockOrientation(parentActivity); - if (showAfterAnimation != null) { - showAfterAnimation.imageReceiver.setVisible(true, true); - } - if (hideAfterAnimation != null) { - hideAfterAnimation.imageReceiver.setVisible(false, true); - } - } - }; - - animatorSet.setDuration(250); - animatorSet.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - if (animationEndRunnable != null) { - animationEndRunnable.run(); - animationEndRunnable = null; - } - } - - @Override - public void onAnimationCancel(Animator animation) { - onAnimationEnd(animation); - } - }); - transitionAnimationStartTime = System.currentTimeMillis(); - animatorSet.start(); - - animatingImageView.setOnDrawListener(new ClippingImageView.onDrawListener() { - @Override - public void onDraw() { - disableShowCheck = false; - animatingImageView.setOnDrawListener(null); - if (android.os.Build.VERSION.SDK_INT >= 11) { - object.imageReceiver.setVisible(false, true); - } - } - }); - return true; + int coords2[] = new int[2]; + object.parentView.getLocationInWindow(coords2); + int clipTop = coords2[1] - AndroidUtilities.statusBarHeight - (object.viewY + drawRegion.top); + if (clipTop < 0) { + clipTop = 0; } - }); - } else { - animationInProgress = 0; - transitionAnimationStartTime = 0; - containerView.invalidate(); - AnimationSet animationSet = new AnimationSet(true); - AlphaAnimation animation = new AlphaAnimation(0.0f, 1.0f); - animation.setDuration(150); - animation.setFillAfter(false); - animationSet.addAnimation(animation); - ScaleAnimation scaleAnimation = new ScaleAnimation(0.9f, 1.0f, 0.9f, 1.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); - scaleAnimation.setDuration(150); - scaleAnimation.setFillAfter(false); - animationSet.addAnimation(scaleAnimation); - animationSet.setDuration(150); - containerView.startAnimation(animationSet); - disableShowCheck = false; - } + int clipBottom = (object.viewY + drawRegion.top + layoutParams.height) - (coords2[1] + object.parentView.getHeight() - AndroidUtilities.statusBarHeight); + if (clipBottom < 0) { + clipBottom = 0; + } + clipTop = Math.max(clipTop, clipVertical); + clipBottom = Math.max(clipBottom, clipVertical); + + AnimatorSetProxy animatorSet = new AnimatorSetProxy(); + animatorSet.playTogether( + ObjectAnimatorProxy.ofFloat(animatingImageView, "scaleX", scale), + ObjectAnimatorProxy.ofFloat(animatingImageView, "scaleY", scale), + ObjectAnimatorProxy.ofFloat(animatingImageView, "translationX", xPos), + ObjectAnimatorProxy.ofFloat(animatingImageView, "translationY", yPos), + ObjectAnimatorProxy.ofInt(backgroundDrawable, "alpha", 0, 255), + ObjectAnimatorProxy.ofInt(animatingImageView, "clipHorizontal", clipHorizontal, 0), + ObjectAnimatorProxy.ofInt(animatingImageView, "clipTop", clipTop, 0), + ObjectAnimatorProxy.ofInt(animatingImageView, "clipBottom", clipBottom, 0), + ObjectAnimatorProxy.ofFloat(containerView, "alpha", 0.0f, 1.0f) + ); + + animationEndRunnable = new Runnable() { + @Override + public void run() { + animationInProgress = 0; + transitionAnimationStartTime = 0; + containerView.invalidate(); + animatingImageView.setVisibility(View.GONE); + AndroidUtilities.unlockOrientation(parentActivity); + if (showAfterAnimation != null) { + showAfterAnimation.imageReceiver.setVisible(true, true); + } + if (hideAfterAnimation != null) { + hideAfterAnimation.imageReceiver.setVisible(false, true); + } + } + }; + + animatorSet.setDuration(200); + animatorSet.addListener(new AnimatorListenerAdapterProxy() { + @Override + public void onAnimationEnd(Object animation) { + if (animationEndRunnable != null) { + animationEndRunnable.run(); + animationEndRunnable = null; + } + } + + @Override + public void onAnimationCancel(Object animation) { + onAnimationEnd(animation); + } + }); + transitionAnimationStartTime = System.currentTimeMillis(); + animatorSet.start(); + + animatingImageView.setOnDrawListener(new ClippingImageView.onDrawListener() { + @Override + public void onDraw() { + disableShowCheck = false; + animatingImageView.setOnDrawListener(null); + object.imageReceiver.setVisible(false, true); + } + }); + return true; + } + }); } public void closePhoto(boolean animated) { @@ -1751,14 +1723,15 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat final PlaceProviderObject object = placeProvider.getPlaceForPhoto(currentMessageObject, currentFileLocation, currentIndex); - if(android.os.Build.VERSION.SDK_INT >= 11 && animated) { + if(animated) { AndroidUtilities.lockOrientation(parentActivity); animationInProgress = 1; + int visibility = animatingImageView.getVisibility(); animatingImageView.setVisibility(View.VISIBLE); containerView.invalidate(); - AnimatorSet animatorSet = new AnimatorSet(); + AnimatorSetProxy animatorSet = new AnimatorSetProxy(); final ViewGroup.LayoutParams layoutParams = animatingImageView.getLayoutParams(); Rect drawRegion = null; @@ -1781,15 +1754,13 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat float height = layoutParams.height * scale * scale2; float xPos = (AndroidUtilities.displaySize.x - width) / 2.0f; float yPos = (AndroidUtilities.displaySize.y - AndroidUtilities.statusBarHeight - height) / 2.0f; - animatingImageView.setTranslationX(xPos + translationX); - animatingImageView.setTranslationY(yPos + translationY); - animatingImageView.setScaleX(scale * scale2); - animatingImageView.setScaleY(scale * scale2); + ViewProxy.setTranslationX(animatingImageView, xPos + translationX); + ViewProxy.setTranslationY(animatingImageView, yPos + translationY); + ViewProxy.setScaleX(animatingImageView, scale * scale2); + ViewProxy.setScaleY(animatingImageView, scale * scale2); if (object != null) { - if (android.os.Build.VERSION.SDK_INT >= 11) { - object.imageReceiver.setVisible(false, true); - } + object.imageReceiver.setVisible(false, true); int clipHorizontal = Math.abs(drawRegion.left - object.imageReceiver.getImageX()); int clipVertical = Math.abs(drawRegion.top - object.imageReceiver.getImageY()); @@ -1808,22 +1779,22 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat clipBottom = Math.max(clipBottom, clipVertical); animatorSet.playTogether( - ObjectAnimator.ofFloat(animatingImageView, "scaleX", 1), - ObjectAnimator.ofFloat(animatingImageView, "scaleY", 1), - ObjectAnimator.ofFloat(animatingImageView, "translationX", object.viewX + drawRegion.left), - ObjectAnimator.ofFloat(animatingImageView, "translationY", object.viewY + drawRegion.top), - ObjectAnimator.ofInt(backgroundDrawable, "alpha", 0), - ObjectAnimator.ofInt(animatingImageView, "clipHorizontal", clipHorizontal), - ObjectAnimator.ofInt(animatingImageView, "clipTop", clipTop), - ObjectAnimator.ofInt(animatingImageView, "clipBottom", clipBottom), - ObjectAnimator.ofFloat(containerView, "alpha", 0.0f) + ObjectAnimatorProxy.ofFloat(animatingImageView, "scaleX", 1), + ObjectAnimatorProxy.ofFloat(animatingImageView, "scaleY", 1), + ObjectAnimatorProxy.ofFloat(animatingImageView, "translationX", object.viewX + drawRegion.left), + ObjectAnimatorProxy.ofFloat(animatingImageView, "translationY", object.viewY + drawRegion.top), + ObjectAnimatorProxy.ofInt(backgroundDrawable, "alpha", 0), + ObjectAnimatorProxy.ofInt(animatingImageView, "clipHorizontal", clipHorizontal), + ObjectAnimatorProxy.ofInt(animatingImageView, "clipTop", clipTop), + ObjectAnimatorProxy.ofInt(animatingImageView, "clipBottom", clipBottom), + ObjectAnimatorProxy.ofFloat(containerView, "alpha", 0.0f) ); } else { animatorSet.playTogether( - ObjectAnimator.ofInt(backgroundDrawable, "alpha", 0), - ObjectAnimator.ofFloat(animatingImageView, "alpha", 0.0f), - ObjectAnimator.ofFloat(animatingImageView, "translationY", translationY >= 0 ? AndroidUtilities.displaySize.y : -AndroidUtilities.displaySize.y), - ObjectAnimator.ofFloat(containerView, "alpha", 0.0f) + ObjectAnimatorProxy.ofInt(backgroundDrawable, "alpha", 0), + ObjectAnimatorProxy.ofFloat(animatingImageView, "alpha", 0.0f), + ObjectAnimatorProxy.ofFloat(animatingImageView, "translationY", translationY >= 0 ? AndroidUtilities.displaySize.y : -AndroidUtilities.displaySize.y), + ObjectAnimatorProxy.ofFloat(containerView, "alpha", 0.0f) ); } @@ -1836,10 +1807,10 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } }; - animatorSet.setDuration(250); - animatorSet.addListener(new AnimatorListenerAdapter() { + animatorSet.setDuration(200); + animatorSet.addListener(new AnimatorListenerAdapterProxy() { @Override - public void onAnimationEnd(Animator animation) { + public void onAnimationEnd(Object animation) { if (animationEndRunnable != null) { animationEndRunnable.run(); animationEndRunnable = null; @@ -1847,7 +1818,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat } @Override - public void onAnimationCancel(Animator animation) { + public void onAnimationCancel(Object animation) { onAnimationEnd(animation); } }); @@ -1929,7 +1900,7 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat centerImage.setImageBitmap((Bitmap)null); leftImage.setImageBitmap((Bitmap)null); rightImage.setImageBitmap((Bitmap)null); - if (android.os.Build.VERSION.SDK_INT >= 11 && object != null) { + if (object != null) { object.imageReceiver.setVisible(true, true); } containerView.post(new Runnable() { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PopupNotificationActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PopupNotificationActivity.java index 3e7a73393..afbd48054 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PopupNotificationActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PopupNotificationActivity.java @@ -47,6 +47,7 @@ import org.telegram.android.PhotoObject; import org.telegram.ui.Views.ActionBar.ActionBar; import org.telegram.ui.Views.ActionBar.ActionBarLayer; import org.telegram.ui.Views.ActionBar.ActionBarMenu; +import org.telegram.ui.Views.AvatarDrawable; import org.telegram.ui.Views.BackupImageView; import org.telegram.ui.Views.ChatActivityEnterView; import org.telegram.ui.Views.FrameLayoutFixed; @@ -188,7 +189,7 @@ public class PopupNotificationActivity extends Activity implements NotificationC actionBar.setLayoutParams(layoutParams); actionBarLayer = actionBar.createLayer(); - actionBarLayer.setDisplayHomeAsUpEnabled(true, R.drawable.ic_ab_back); + actionBarLayer.setBackButtonImage(R.drawable.ic_ab_back); actionBarLayer.setBackgroundResource(R.color.header); actionBarLayer.setItemsBackground(R.drawable.bar_selector); actionBar.setCurrentActionBarLayer(actionBarLayer); @@ -625,11 +626,7 @@ public class PopupNotificationActivity extends Activity implements NotificationC messageContainer.getViewTreeObserver().removeOnPreDrawListener(this); if (!checkTransitionAnimation() && !startedMoving) { ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams)messageContainer.getLayoutParams(); - if (!AndroidUtilities.isTablet() && PopupNotificationActivity.this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { - layoutParams.topMargin = AndroidUtilities.dp(40); - } else { - layoutParams.topMargin = AndroidUtilities.dp(48); - } + layoutParams.topMargin = AndroidUtilities.getCurrentActionBarHeight(); layoutParams.bottomMargin = AndroidUtilities.dp(48); layoutParams.width = ViewGroup.MarginLayoutParams.MATCH_PARENT; layoutParams.height = ViewGroup.MarginLayoutParams.MATCH_PARENT; @@ -791,7 +788,7 @@ public class PopupNotificationActivity extends Activity implements NotificationC private void checkAndUpdateAvatar() { TLRPC.FileLocation newPhoto = null; - int placeHolderId = 0; + AvatarDrawable avatarDrawable = null; if (currentChat != null) { TLRPC.Chat chat = MessagesController.getInstance().getChat(currentChat.id); if (chat == null) { @@ -801,7 +798,7 @@ public class PopupNotificationActivity extends Activity implements NotificationC if (currentChat.photo != null) { newPhoto = currentChat.photo.photo_small; } - placeHolderId = AndroidUtilities.getGroupAvatarForId(currentChat.id); + avatarDrawable = new AvatarDrawable(currentChat); } else if (currentUser != null) { TLRPC.User user = MessagesController.getInstance().getUser(currentUser.id); if (user == null) { @@ -811,10 +808,10 @@ public class PopupNotificationActivity extends Activity implements NotificationC if (currentUser.photo != null) { newPhoto = currentUser.photo.photo_small; } - placeHolderId = AndroidUtilities.getUserAvatarForId(currentUser.id); + avatarDrawable = new AvatarDrawable(currentUser); } if (avatarImageView != null) { - avatarImageView.setImage(newPhoto, "50_50", placeHolderId); + avatarImageView.setImage(newPhoto, "50_50", avatarDrawable); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ProfileNotificationsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ProfileNotificationsActivity.java index 2a6ff7931..58c0ccc6f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ProfileNotificationsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ProfileNotificationsActivity.java @@ -76,7 +76,7 @@ public class ProfileNotificationsActivity extends BaseFragment implements Notifi @Override public View createView(LayoutInflater inflater, ViewGroup container) { if (fragmentView == null) { - actionBarLayer.setDisplayHomeAsUpEnabled(true, R.drawable.ic_ab_back); + actionBarLayer.setBackButtonImage(R.drawable.ic_ab_back); actionBarLayer.setBackOverlay(R.layout.updating_state_layout); actionBarLayer.setTitle(LocaleController.getString("NotificationsAndSounds", R.string.NotificationsAndSounds)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/SecretPhotoViewer.java b/TMessagesProj/src/main/java/org/telegram/ui/SecretPhotoViewer.java index a0164a47a..bf4d87784 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/SecretPhotoViewer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/SecretPhotoViewer.java @@ -314,7 +314,7 @@ public class SecretPhotoViewer implements NotificationCenter.NotificationCenterD currentMessageObject = null; isVisible = false; AndroidUtilities.unlockOrientation(parentActivity); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { centerImage.setImageBitmap((Bitmap)null); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/SettingsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/SettingsActivity.java index 1c10cb54c..2fb8fe676 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/SettingsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/SettingsActivity.java @@ -56,6 +56,7 @@ import org.telegram.messenger.UserConfig; import org.telegram.android.MessageObject; import org.telegram.ui.Adapters.BaseFragmentAdapter; import org.telegram.ui.Views.ActionBar.ActionBarLayer; +import org.telegram.ui.Views.AvatarDrawable; import org.telegram.ui.Views.AvatarUpdater; import org.telegram.ui.Views.BackupImageView; import org.telegram.ui.Views.ActionBar.BaseFragment; @@ -162,7 +163,7 @@ public class SettingsActivity extends BaseFragment implements NotificationCenter ArrayList users = new ArrayList(); users.add(user); MessagesStorage.getInstance().putUsersAndChats(users, null, false, true); - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.updateInterfaces, MessagesController.UPDATE_MASK_ALL); @@ -227,7 +228,7 @@ public class SettingsActivity extends BaseFragment implements NotificationCenter @Override public View createView(LayoutInflater inflater, ViewGroup container) { if (fragmentView == null) { - actionBarLayer.setDisplayHomeAsUpEnabled(true, R.drawable.ic_ab_back); + actionBarLayer.setBackButtonImage(R.drawable.ic_ab_back); actionBarLayer.setBackOverlay(R.layout.updating_state_layout); actionBarLayer.setTitle(LocaleController.getString("Settings", R.string.Settings)); actionBarLayer.setActionBarMenuOnItemClick(new ActionBarLayer.ActionBarMenuOnItemClick() { @@ -338,7 +339,7 @@ public class SettingsActivity extends BaseFragment implements NotificationCenter ConnectionsManager.getInstance().performRpc(req, new RPCRequest.RPCRequestDelegate() { @Override public void run(final TLObject response, final TLRPC.TL_error error) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (getParentActivity() == null) { @@ -593,7 +594,7 @@ public class SettingsActivity extends BaseFragment implements NotificationCenter if (error == null) { final TLRPC.TL_help_support res = (TLRPC.TL_help_support)response; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { SharedPreferences.Editor editor = preferences.edit(); @@ -617,7 +618,7 @@ public class SettingsActivity extends BaseFragment implements NotificationCenter } }); } else { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { try { @@ -826,7 +827,7 @@ public class SettingsActivity extends BaseFragment implements NotificationCenter photo = user.photo.photo_small; photoBig = user.photo.photo_big; } - avatarImage.setImage(photo, "50_50", AndroidUtilities.getUserAvatarForId(user.id)); + avatarImage.setImage(photo, "50_50", new AvatarDrawable(user)); avatarImage.imageReceiver.setVisible(!PhotoViewer.getInstance().isShowingImage(photoBig), false); } return view; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/SettingsBlockedUsersActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/SettingsBlockedUsersActivity.java index 49f3f8791..96ffb2676 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/SettingsBlockedUsersActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/SettingsBlockedUsersActivity.java @@ -60,7 +60,7 @@ public class SettingsBlockedUsersActivity extends BaseFragment implements Notifi @Override public View createView(LayoutInflater inflater, ViewGroup container) { if (fragmentView == null) { - actionBarLayer.setDisplayHomeAsUpEnabled(true, R.drawable.ic_ab_back); + actionBarLayer.setBackButtonImage(R.drawable.ic_ab_back); actionBarLayer.setBackOverlay(R.layout.updating_state_layout); actionBarLayer.setTitle(LocaleController.getString("BlockedUsers", R.string.BlockedUsers)); actionBarLayer.setActionBarMenuOnItemClick(new ActionBarLayer.ActionBarMenuOnItemClick() { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/SettingsChangeUsernameActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/SettingsChangeUsernameActivity.java index 3f893ca79..1a632b9f1 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/SettingsChangeUsernameActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/SettingsChangeUsernameActivity.java @@ -222,7 +222,7 @@ public class SettingsChangeUsernameActivity extends BaseFragment { return true; } if (checkRunnable != null) { - AndroidUtilities.CancelRunOnUIThread(checkRunnable); + AndroidUtilities.cancelRunOnUIThread(checkRunnable); checkRunnable = null; lastCheckName = null; if (checkReqId != 0) { @@ -294,7 +294,7 @@ public class SettingsChangeUsernameActivity extends BaseFragment { checkReqId = ConnectionsManager.getInstance().performRpc(req, new RPCRequest.RPCRequestDelegate() { @Override public void run(final TLObject response, final TLRPC.TL_error error) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { checkReqId = 0; @@ -315,7 +315,7 @@ public class SettingsChangeUsernameActivity extends BaseFragment { }, true, RPCRequest.RPCRequestClassGeneric | RPCRequest.RPCRequestClassFailOnServerErrors); } }; - AndroidUtilities.RunOnUIThread(checkRunnable, 300); + AndroidUtilities.runOnUIThread(checkRunnable, 300); } return true; } @@ -352,7 +352,7 @@ public class SettingsChangeUsernameActivity extends BaseFragment { public void run(TLObject response, final TLRPC.TL_error error) { if (error == null) { final TLRPC.User user = (TLRPC.User)response; - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { try { @@ -369,7 +369,7 @@ public class SettingsChangeUsernameActivity extends BaseFragment { } }); } else { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { try { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/SettingsNotificationsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/SettingsNotificationsActivity.java index 0e2f2c0ba..37e434f58 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/SettingsNotificationsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/SettingsNotificationsActivity.java @@ -119,7 +119,7 @@ public class SettingsNotificationsActivity extends BaseFragment implements Notif @Override public View createView(LayoutInflater inflater, ViewGroup container) { if (fragmentView == null) { - actionBarLayer.setDisplayHomeAsUpEnabled(true, R.drawable.ic_ab_back); + actionBarLayer.setBackButtonImage(R.drawable.ic_ab_back); actionBarLayer.setBackOverlay(R.layout.updating_state_layout); actionBarLayer.setTitle(LocaleController.getString("NotificationsAndSounds", R.string.NotificationsAndSounds)); actionBarLayer.setActionBarMenuOnItemClick(new ActionBarLayer.ActionBarMenuOnItemClick() { @@ -214,7 +214,7 @@ public class SettingsNotificationsActivity extends BaseFragment implements Notif ConnectionsManager.getInstance().performRpc(req, new RPCRequest.RPCRequestDelegate() { @Override public void run(TLObject response, TLRPC.TL_error error) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { MessagesController.getInstance().enableJoined = true; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/SettingsWallpapersActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/SettingsWallpapersActivity.java index 8731ed5d9..881d75bf2 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/SettingsWallpapersActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/SettingsWallpapersActivity.java @@ -16,6 +16,7 @@ import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Configuration; import android.graphics.Bitmap; +import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; @@ -366,7 +367,7 @@ public class SettingsWallpapersActivity extends BaseFragment implements Notifica progressBar.setProgress((int)(progress * 100)); } } else if (id == NotificationCenter.wallpapersDidLoaded) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { wallPapers = (ArrayList)args[0]; @@ -400,7 +401,7 @@ public class SettingsWallpapersActivity extends BaseFragment implements Notifica if (error != null) { return; } - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { wallPapers.clear(); @@ -534,7 +535,7 @@ public class SettingsWallpapersActivity extends BaseFragment implements Notifica TLRPC.WallPaper wallPaper = wallPapers.get(i - 1); TLRPC.PhotoSize size = FileLoader.getClosestPhotoSizeWithSize(wallPaper.sizes, AndroidUtilities.dp(100)); if (size != null && size.location != null) { - image.setImage(size.location, "100_100", 0); + image.setImage(size.location, "100_100", (Drawable)null); } if (wallPaper.id == selectedBackground) { selection.setVisibility(View.VISIBLE); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/UserProfileActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/UserProfileActivity.java index 236ce54b8..46bdd0189 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/UserProfileActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/UserProfileActivity.java @@ -38,6 +38,7 @@ import org.telegram.ui.Adapters.BaseFragmentAdapter; import org.telegram.ui.Views.ActionBar.ActionBarLayer; import org.telegram.ui.Views.ActionBar.ActionBarMenu; import org.telegram.ui.Views.ActionBar.ActionBarMenuItem; +import org.telegram.ui.Views.AvatarDrawable; import org.telegram.ui.Views.BackupImageView; import org.telegram.ui.Views.ActionBar.BaseFragment; import org.telegram.ui.Views.IdenticonView; @@ -141,7 +142,7 @@ public class UserProfileActivity extends BaseFragment implements NotificationCen @Override public View createView(LayoutInflater inflater, ViewGroup container) { if (fragmentView == null) { - actionBarLayer.setDisplayHomeAsUpEnabled(true, R.drawable.ic_ab_back); + actionBarLayer.setBackButtonImage(R.drawable.ic_ab_back); actionBarLayer.setBackOverlay(R.layout.updating_state_layout); if (dialog_id != 0) { actionBarLayer.setTitle(LocaleController.getString("SecretTitle", R.string.SecretTitle)); @@ -311,11 +312,11 @@ public class UserProfileActivity extends BaseFragment implements NotificationCen } } else if (id == NotificationCenter.encryptedChatCreated) { if (creatingChat) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().postNotificationName(NotificationCenter.closeChats); - TLRPC.EncryptedChat encryptedChat = (TLRPC.EncryptedChat)args[0]; + TLRPC.EncryptedChat encryptedChat = (TLRPC.EncryptedChat) args[0]; Bundle args2 = new Bundle(); args2.putInt("enc_id", encryptedChat.id); presentFragment(new ChatActivity(args2), true); @@ -535,7 +536,7 @@ public class UserProfileActivity extends BaseFragment implements NotificationCen photo = user.photo.photo_small; photoBig = user.photo.photo_big; } - avatarImage.setImage(photo, "50_50", AndroidUtilities.getUserAvatarForId(user.id)); + avatarImage.setImage(photo, "50_50", new AvatarDrawable(user)); avatarImage.imageReceiver.setVisible(!PhotoViewer.getInstance().isShowingImage(photoBig), false); return view; } else if (type == 1) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/VideoEditorActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/VideoEditorActivity.java index b73a8b472..ebb8fbcb9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/VideoEditorActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/VideoEditorActivity.java @@ -116,7 +116,7 @@ public class VideoEditorActivity extends BaseFragment implements TextureView.Sur if (!playerCheck) { break; } - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { if (videoPlayer != null && videoPlayer.isPlaying()) { @@ -172,7 +172,7 @@ public class VideoEditorActivity extends BaseFragment implements TextureView.Sur videoPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { onPlayComplete(); @@ -222,7 +222,7 @@ public class VideoEditorActivity extends BaseFragment implements TextureView.Sur if (fragmentView == null) { actionBarLayer.setBackgroundColor(0xff333333); actionBarLayer.setItemsBackground(R.drawable.bar_selector_white); - actionBarLayer.setDisplayHomeAsUpEnabled(true, R.drawable.photo_back); + actionBarLayer.setBackButtonImage(R.drawable.ic_ab_back); actionBarLayer.setTitle(LocaleController.getString("EditVideo", R.string.EditVideo)); actionBarLayer.setActionBarMenuOnItemClick(new ActionBarLayer.ActionBarMenuOnItemClick() { @Override @@ -535,11 +535,7 @@ public class VideoEditorActivity extends BaseFragment implements TextureView.Sur if (AndroidUtilities.isTablet()) { viewHeight = AndroidUtilities.dp(472); } else { - if (!AndroidUtilities.isTablet() && getParentActivity().getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { - viewHeight = AndroidUtilities.displaySize.y - AndroidUtilities.statusBarHeight - AndroidUtilities.dp(40); - } else { - viewHeight = AndroidUtilities.displaySize.y - AndroidUtilities.statusBarHeight - AndroidUtilities.dp(48); - } + viewHeight = AndroidUtilities.displaySize.y - AndroidUtilities.statusBarHeight - AndroidUtilities.getCurrentActionBarHeight(); } int width = 0; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/ActionBar.java b/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/ActionBar.java index d616b9dde..f297e29f7 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/ActionBar.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/ActionBar.java @@ -8,11 +8,7 @@ package org.telegram.ui.Views.ActionBar; -import android.animation.Animator; -import android.animation.ObjectAnimator; import android.content.Context; -import android.content.res.Configuration; -import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.view.Gravity; import android.view.View; @@ -21,15 +17,13 @@ import android.widget.FrameLayout; import org.telegram.android.AndroidUtilities; import org.telegram.messenger.R; - -import java.util.ArrayList; +import org.telegram.ui.AnimationCompat.ViewProxy; public class ActionBar extends FrameLayout { - private static Drawable logoDrawable; protected ActionBarLayer currentLayer = null; - private ActionBarLayer previousLayer = null; - private View shadowView = null; + protected ActionBarLayer previousLayer = null; + protected View shadowView = null; private boolean isBackOverlayVisible; public ActionBar(Context context) { @@ -87,9 +81,7 @@ public class ActionBar extends FrameLayout { layoutParams.gravity = Gravity.TOP | Gravity.LEFT; layer.setLayoutParams(layoutParams); currentLayer.setBackOverlayVisible(isBackOverlayVisible); - if(android.os.Build.VERSION.SDK_INT >= 11) { - layer.setAlpha(1); - } + layer.setAlphaEx(1); } public void setBackOverlayVisible(boolean visible) { @@ -116,7 +108,7 @@ public class ActionBar extends FrameLayout { layoutParams.width = LayoutParams.MATCH_PARENT; layoutParams.height = LayoutParams.MATCH_PARENT; layer.setLayoutParams(layoutParams); - shadowView.setX(-AndroidUtilities.dp(2)); + ViewProxy.setX(shadowView, -AndroidUtilities.dp(2)); shadowView.setVisibility(VISIBLE); previousLayer.setBackOverlayVisible(isBackOverlayVisible); } @@ -125,56 +117,41 @@ public class ActionBar extends FrameLayout { if (currentLayer == null) { return; } - currentLayer.setX(0); + if (!backAnimation) { removeView(currentLayer); currentLayer = previousLayer; - currentLayer.setAlpha(1); + currentLayer.setAlphaEx(1); previousLayer = null; } else { removeView(previousLayer); previousLayer = null; } shadowView.setVisibility(INVISIBLE); + ViewProxy.setX(currentLayer, 0); } public void moveActionBarByX(int dx) { if (currentLayer == null) { return; } - currentLayer.setX(dx); - shadowView.setX(dx - AndroidUtilities.dp(2)); + ViewProxy.setX(currentLayer, dx); + ViewProxy.setX(shadowView, dx - AndroidUtilities.dp(2)); if (dx != 0) { if (previousLayer != null) { - previousLayer.setAlpha(Math.min(1, (float) dx / (float) currentLayer.getMeasuredWidth())); + previousLayer.setAlphaEx(Math.min(1, (float) dx / (float) currentLayer.getMeasuredWidth())); } } else { if (previousLayer != null) { - previousLayer.setAlpha(0); + previousLayer.setAlphaEx(0); } - currentLayer.setAlpha(1); - } - } - - public void setupAnimations(ArrayList animators, boolean back) { - if (back) { - animators.add(ObjectAnimator.ofFloat(currentLayer, "x", 0)); - animators.add(ObjectAnimator.ofFloat(shadowView, "x", -AndroidUtilities.dp(2))); - animators.add(ObjectAnimator.ofFloat(previousLayer, "alpha", 0)); - } else { - animators.add(ObjectAnimator.ofFloat(currentLayer, "x", getMeasuredWidth())); - animators.add(ObjectAnimator.ofFloat(shadowView, "x", getMeasuredWidth() - AndroidUtilities.dp(2))); - animators.add(ObjectAnimator.ofFloat(previousLayer, "alpha", 1.0f)); + currentLayer.setAlphaEx(1); } } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - if (!AndroidUtilities.isTablet() && getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { - super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(40), MeasureSpec.EXACTLY)); - } else { - super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(48), MeasureSpec.EXACTLY)); - } + super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(AndroidUtilities.getCurrentActionBarHeight(), MeasureSpec.EXACTLY)); } public void onMenuButtonPressed() { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/ActionBarLayer.java b/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/ActionBarLayer.java index 1dfef5f50..a2a833774 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/ActionBarLayer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/ActionBarLayer.java @@ -23,6 +23,7 @@ import android.widget.TextView; import org.telegram.android.AndroidUtilities; import org.telegram.messenger.R; +import org.telegram.ui.AnimationCompat.ViewProxy; public class ActionBarLayer extends FrameLayout { @@ -36,40 +37,41 @@ public class ActionBarLayer extends FrameLayout { } } - private FrameLayout backButtonFrameLayout; - private ImageView logoImageView; + private FrameLayout titleFrameLayout; private ImageView backButtonImageView; private TextView titleTextView; private TextView subTitleTextView; private ActionBarMenu menu; private ActionBarMenu actionMode; - private int logoResourceId; - private int backResourceId; protected ActionBar parentActionBar; - private boolean oldUseLogo; - private boolean oldUseBack; private View actionOverlay; protected boolean isSearchFieldVisible; protected int itemsBackgroundResourceId; private boolean isBackOverlayVisible; protected BaseFragment parentFragment; public ActionBarMenuOnItemClick actionBarMenuOnItemClick; - private int leftMargin = 0; + private float alphaEx = 1; public ActionBarLayer(Context context, ActionBar actionBar) { super(context); parentActionBar = actionBar; - backButtonFrameLayout = new FrameLayout(context); - addView(backButtonFrameLayout); - FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams)backButtonFrameLayout.getLayoutParams(); + titleFrameLayout = new FrameLayout(context); + addView(titleFrameLayout); + FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams)titleFrameLayout.getLayoutParams(); layoutParams.width = LayoutParams.WRAP_CONTENT; layoutParams.height = LayoutParams.FILL_PARENT; layoutParams.gravity = Gravity.TOP | Gravity.LEFT; - backButtonFrameLayout.setLayoutParams(layoutParams); - backButtonFrameLayout.setPadding(0, 0, AndroidUtilities.dp(4), 0); - backButtonFrameLayout.setOnClickListener(new OnClickListener() { + titleFrameLayout.setLayoutParams(layoutParams); + titleFrameLayout.setPadding(0, 0, AndroidUtilities.dp(4), 0); + titleFrameLayout.setEnabled(false); + + backButtonImageView = new ImageView(getContext()); + titleFrameLayout.addView(backButtonImageView); + backButtonImageView.setVisibility(VISIBLE); + backButtonImageView.setScaleType(ImageView.ScaleType.CENTER); + backButtonImageView.setOnClickListener(new OnClickListener() { @Override - public void onClick(View view) { + public void onClick(View v) { if (isSearchFieldVisible) { closeSearchField(); return; @@ -79,7 +81,6 @@ public class ActionBarLayer extends FrameLayout { } } }); - backButtonFrameLayout.setEnabled(false); } public ActionBarLayer(Context context) { @@ -94,38 +95,16 @@ public class ActionBarLayer extends FrameLayout { super(context, attrs, defStyleAttr); } - public void setExtraLeftMargin(int margin) { - leftMargin = margin; - } - private void positionBackImage(int height) { if (backButtonImageView != null) { LayoutParams layoutParams = (LayoutParams)backButtonImageView.getLayoutParams(); - layoutParams.width = LayoutParams.WRAP_CONTENT; - layoutParams.height = LayoutParams.WRAP_CONTENT; + layoutParams.width = AndroidUtilities.dp(54); + layoutParams.height = height; layoutParams.gravity = Gravity.TOP | Gravity.LEFT; - layoutParams.setMargins(AndroidUtilities.dp(3 + leftMargin), (height - backButtonImageView.getDrawable().getIntrinsicHeight()) / 2, 0, 0); backButtonImageView.setLayoutParams(layoutParams); } } - private void positionLogoImage(int height) { - if (logoImageView != null && logoImageView.getDrawable() != null) { - LayoutParams layoutParams = (LayoutParams) logoImageView.getLayoutParams(); - if (!AndroidUtilities.isTablet() && getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { - layoutParams.width = (int)(logoImageView.getDrawable().getIntrinsicWidth() / 1.3f); - layoutParams.height = (int)(logoImageView.getDrawable().getIntrinsicHeight() / 1.3f); - layoutParams.setMargins(AndroidUtilities.dp(12), (height - layoutParams.height) / 2, 0, 0); - } else { - layoutParams.width = logoImageView.getDrawable().getIntrinsicWidth(); - layoutParams.height = logoImageView.getDrawable().getIntrinsicHeight(); - layoutParams.setMargins(AndroidUtilities.dp(12), (height - layoutParams.width) / 2, 0, 0); - } - layoutParams.gravity = Gravity.TOP | Gravity.LEFT; - logoImageView.setLayoutParams(layoutParams); - } - } - private void positionTitle(int width, int height) { int offset = AndroidUtilities.dp(2); if (!AndroidUtilities.isTablet() && getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { @@ -137,9 +116,9 @@ public class ActionBarLayer extends FrameLayout { if (titleTextView != null && titleTextView.getVisibility() == VISIBLE) { if (!AndroidUtilities.isTablet() && getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { - titleTextView.setTextSize(16); - } else { titleTextView.setTextSize(18); + } else { + titleTextView.setTextSize(20); } layoutParams = (LayoutParams) titleTextView.getLayoutParams(); @@ -152,9 +131,9 @@ public class ActionBarLayer extends FrameLayout { } if (subTitleTextView != null && subTitleTextView.getVisibility() == VISIBLE) { if (!AndroidUtilities.isTablet() && getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { - subTitleTextView.setTextSize(12); - } else { subTitleTextView.setTextSize(14); + } else { + subTitleTextView.setTextSize(16); } layoutParams = (LayoutParams) subTitleTextView.getLayoutParams(); @@ -167,16 +146,13 @@ public class ActionBarLayer extends FrameLayout { } int x = 0; - if (logoImageView == null || logoImageView.getVisibility() == GONE) { - x = AndroidUtilities.dp(16 + leftMargin); + if (AndroidUtilities.isTablet()) { + x = AndroidUtilities.dp(80); } else { - if (!AndroidUtilities.isTablet() && getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { - x = AndroidUtilities.dp(22 + leftMargin) + (logoImageView.getDrawable() != null ? (int)(logoImageView.getDrawable().getIntrinsicWidth() / 1.3f) : 0); - } else { - x = AndroidUtilities.dp(22 + leftMargin) + (logoImageView.getDrawable() != null ? logoImageView.getDrawable().getIntrinsicWidth() : 0); - } + x = AndroidUtilities.dp(72); } + if (menu != null) { maxTextWidth = Math.min(maxTextWidth, width - menu.getMeasuredWidth() - AndroidUtilities.dp(16)); } @@ -185,9 +161,11 @@ public class ActionBarLayer extends FrameLayout { layoutParams = (LayoutParams) titleTextView.getLayoutParams(); layoutParams.width = LayoutParams.MATCH_PARENT; layoutParams.height = titleTextView.getMeasuredHeight(); - int y = (height - titleTextView.getMeasuredHeight()) / 2; + int y; if (subTitleTextView != null && subTitleTextView.getVisibility() == VISIBLE) { y = (height / 2 - titleTextView.getMeasuredHeight()) / 2 + offset; + } else { + y = (height - titleTextView.getMeasuredHeight()) / 2 - AndroidUtilities.dp(1); } layoutParams.setMargins(x, y, 0, 0); titleTextView.setLayoutParams(layoutParams); @@ -200,9 +178,9 @@ public class ActionBarLayer extends FrameLayout { subTitleTextView.setLayoutParams(layoutParams); } - ViewGroup.LayoutParams layoutParams1 = backButtonFrameLayout.getLayoutParams(); + ViewGroup.LayoutParams layoutParams1 = titleFrameLayout.getLayoutParams(); layoutParams1.width = x + maxTextWidth + (isSearchFieldVisible ? 0 : AndroidUtilities.dp(6)); - backButtonFrameLayout.setLayoutParams(layoutParams1); + titleFrameLayout.setLayoutParams(layoutParams1); } public void positionMenu(int width, int height) { @@ -211,49 +189,36 @@ public class ActionBarLayer extends FrameLayout { } FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams)menu.getLayoutParams(); layoutParams.width = isSearchFieldVisible ? LayoutParams.MATCH_PARENT : LayoutParams.WRAP_CONTENT; - layoutParams.leftMargin = isSearchFieldVisible ? AndroidUtilities.dp(26) + logoImageView.getDrawable().getIntrinsicWidth() : 0; + layoutParams.leftMargin = isSearchFieldVisible ? AndroidUtilities.dp(54) : 0; menu.setLayoutParams(layoutParams); menu.measure(width, height); } - public void setDisplayUseLogoEnabled(boolean value, int resource) { - if (value && logoImageView == null) { - logoResourceId = resource; - logoImageView = new ImageView(getContext()); - logoImageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); - backButtonFrameLayout.addView(logoImageView); - } - if (logoImageView != null) { - logoImageView.setVisibility(value ? VISIBLE : GONE); - logoImageView.setImageResource(resource); - positionLogoImage(getMeasuredHeight()); - } + public void setBackButtonDrawable(Drawable drawable) { + backButtonImageView.setImageDrawable(drawable); } - public void setDisplayHomeAsUpEnabled(boolean value, int resource) { - if (value && backButtonImageView == null) { - backResourceId = resource; - backButtonImageView = new ImageView(getContext()); - backButtonFrameLayout.addView(backButtonImageView); - } - if (backButtonImageView != null) { - backButtonImageView.setVisibility(value ? VISIBLE : GONE); - backButtonFrameLayout.setEnabled(value); - backButtonImageView.setImageResource(resource); - positionBackImage(getMeasuredHeight()); + public void setBackButtonImage(int resource) { + backButtonImageView.setImageResource(resource); + } + + private void createSubtitleTextView() { + if (subTitleTextView != null) { + return; } + subTitleTextView = new TextView(getContext()); + titleFrameLayout.addView(subTitleTextView); + subTitleTextView.setGravity(Gravity.LEFT); + subTitleTextView.setTextColor(0xffd7e8f7); + subTitleTextView.setSingleLine(true); + subTitleTextView.setLines(1); + subTitleTextView.setMaxLines(1); + subTitleTextView.setEllipsize(TextUtils.TruncateAt.END); } public void setSubtitle(CharSequence value) { if (value != null && subTitleTextView == null) { - subTitleTextView = new TextView(getContext()); - backButtonFrameLayout.addView(subTitleTextView); - subTitleTextView.setGravity(Gravity.LEFT); - subTitleTextView.setTextColor(0xffd7e8f7); - subTitleTextView.setSingleLine(true); - subTitleTextView.setLines(1); - subTitleTextView.setMaxLines(1); - subTitleTextView.setEllipsize(TextUtils.TruncateAt.END); + createSubtitleTextView(); } if (subTitleTextView != null) { subTitleTextView.setVisibility(value != null ? VISIBLE : GONE); @@ -264,14 +229,7 @@ public class ActionBarLayer extends FrameLayout { public void setSubTitleIcon(int resourceId, Drawable drawable, int padding) { if ((resourceId != 0 || drawable != null) && subTitleTextView == null) { - subTitleTextView = new TextView(getContext()); - backButtonFrameLayout.addView(subTitleTextView); - subTitleTextView.setGravity(Gravity.LEFT); - subTitleTextView.setTextColor(0xffd7e8f7); - subTitleTextView.setSingleLine(true); - subTitleTextView.setLines(1); - subTitleTextView.setMaxLines(1); - subTitleTextView.setEllipsize(TextUtils.TruncateAt.END); + createSubtitleTextView(); positionTitle(getMeasuredWidth(), getMeasuredHeight()); } if (subTitleTextView != null) { @@ -284,16 +242,24 @@ public class ActionBarLayer extends FrameLayout { } } + private void createTitleTextView() { + if (titleTextView != null) { + return; + } + titleTextView = new TextView(getContext()); + titleTextView.setGravity(Gravity.LEFT); + titleTextView.setSingleLine(true); + titleTextView.setLines(1); + titleTextView.setMaxLines(1); + titleTextView.setEllipsize(TextUtils.TruncateAt.END); + titleFrameLayout.addView(titleTextView); + titleTextView.setTextColor(0xffffffff); + titleTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf")); + } + public void setTitle(CharSequence value) { if (value != null && titleTextView == null) { - titleTextView = new TextView(getContext()); - titleTextView.setGravity(Gravity.LEFT); - titleTextView.setSingleLine(true); - titleTextView.setLines(1); - titleTextView.setMaxLines(1); - titleTextView.setEllipsize(TextUtils.TruncateAt.END); - backButtonFrameLayout.addView(titleTextView); - titleTextView.setTextColor(0xffffffff); + createTitleTextView(); } if (titleTextView != null) { titleTextView.setVisibility(value != null ? VISIBLE : GONE); @@ -304,14 +270,7 @@ public class ActionBarLayer extends FrameLayout { public void setTitleIcon(int resourceId, int padding) { if (resourceId != 0 && titleTextView == null) { - titleTextView = new TextView(getContext()); - titleTextView.setGravity(Gravity.LEFT); - backButtonFrameLayout.addView(titleTextView); - titleTextView.setTextColor(0xffffffff); - titleTextView.setSingleLine(true); - titleTextView.setLines(1); - titleTextView.setMaxLines(1); - titleTextView.setEllipsize(TextUtils.TruncateAt.END); + createTitleTextView(); positionTitle(getMeasuredWidth(), getMeasuredHeight()); } titleTextView.setCompoundDrawablesWithIntrinsicBounds(resourceId, 0, 0, 0); @@ -378,8 +337,8 @@ public class ActionBarLayer extends FrameLayout { return; } actionMode.setVisibility(VISIBLE); - if (backButtonFrameLayout != null) { - backButtonFrameLayout.setVisibility(INVISIBLE); + if (titleFrameLayout != null) { + titleFrameLayout.setVisibility(INVISIBLE); } if (menu != null) { menu.setVisibility(INVISIBLE); @@ -391,8 +350,8 @@ public class ActionBarLayer extends FrameLayout { return; } actionMode.setVisibility(GONE); - if (backButtonFrameLayout != null) { - backButtonFrameLayout.setVisibility(isSearchFieldVisible || actionOverlay == null || actionOverlay.getVisibility() == GONE ? VISIBLE : INVISIBLE); + if (titleFrameLayout != null) { + titleFrameLayout.setVisibility(isSearchFieldVisible || actionOverlay == null || actionOverlay.getVisibility() == GONE ? VISIBLE : INVISIBLE); } if (menu != null) { menu.setVisibility(VISIBLE); @@ -411,18 +370,9 @@ public class ActionBarLayer extends FrameLayout { if (subTitleTextView != null) { subTitleTextView.setVisibility(visible ? GONE : VISIBLE); } - backButtonFrameLayout.setPadding(0, 0, visible ? 0 : AndroidUtilities.dp(4), 0); - if (visible) { - oldUseLogo = logoImageView != null && logoImageView.getVisibility() == VISIBLE; - setDisplayUseLogoEnabled(true, R.drawable.ic_ab_search); - } else { - setDisplayUseLogoEnabled(oldUseLogo, logoResourceId); - } - if (visible) { - oldUseBack = backButtonImageView != null && backButtonImageView.getVisibility() == VISIBLE; - setDisplayHomeAsUpEnabled(true, R.drawable.ic_ab_back); - } else { - setDisplayHomeAsUpEnabled(oldUseBack, backResourceId); + Drawable drawable = backButtonImageView.getDrawable(); + if (drawable != null && drawable instanceof MenuDrawable) { + ((MenuDrawable)drawable).setRotation(visible ? 1 : 0, true); } positionBackOverlay(getMeasuredWidth(), getMeasuredHeight()); } @@ -436,7 +386,6 @@ public class ActionBarLayer extends FrameLayout { @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - positionLogoImage(MeasureSpec.getSize(heightMeasureSpec)); positionBackImage(MeasureSpec.getSize(heightMeasureSpec)); positionMenu(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.getSize(heightMeasureSpec)); positionTitle(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.getSize(heightMeasureSpec)); @@ -444,16 +393,20 @@ public class ActionBarLayer extends FrameLayout { super.onMeasure(widthMeasureSpec, heightMeasureSpec); } - @Override - public void setAlpha(float alpha) { + public void setAlphaEx(float alpha) { + alphaEx = alpha; if (menu != null) { - menu.setAlpha(alpha); + ViewProxy.setAlpha(menu, alphaEx); } - if (backButtonFrameLayout != null) { - backButtonFrameLayout.setAlpha(alpha); + if (titleFrameLayout != null) { + ViewProxy.setAlpha(titleFrameLayout, alphaEx); } } + public float getAlphaEx() { + return alphaEx; + } + public void onMenuButtonPressed() { if (menu != null) { menu.onMenuButtonPressed(); @@ -496,7 +449,7 @@ public class ActionBarLayer extends FrameLayout { if (actionOverlay == null) { return; } - backButtonFrameLayout.setVisibility(isSearchFieldVisible || actionOverlay == null || actionOverlay.getVisibility() == GONE ? VISIBLE : INVISIBLE); + titleFrameLayout.setVisibility(isSearchFieldVisible || actionOverlay == null || actionOverlay.getVisibility() == GONE ? VISIBLE : INVISIBLE); actionOverlay.setVisibility(!isSearchFieldVisible && isBackOverlayVisible ? VISIBLE : GONE); if (actionOverlay.getVisibility() == VISIBLE) { ViewGroup.LayoutParams layoutParams = actionOverlay.getLayoutParams(); @@ -511,6 +464,6 @@ public class ActionBarLayer extends FrameLayout { public void setItemsBackground(int resourceId) { itemsBackgroundResourceId = resourceId; - backButtonFrameLayout.setBackgroundResource(itemsBackgroundResourceId); + backButtonImageView.setBackgroundResource(resourceId); } } \ No newline at end of file diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/ActionBarLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/ActionBarLayout.java index e4ce88d0c..e49828764 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/ActionBarLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/ActionBarLayout.java @@ -8,13 +8,11 @@ package org.telegram.ui.Views.ActionBar; -import android.animation.Animator; -import android.animation.AnimatorSet; -import android.animation.ObjectAnimator; import android.app.Activity; import android.content.Context; import android.content.Intent; -import android.content.res.Configuration; +import android.graphics.Canvas; +import android.graphics.Paint; import android.os.Build; import android.os.Handler; import android.view.ActionMode; @@ -34,6 +32,10 @@ import org.telegram.android.AndroidUtilities; import org.telegram.android.NotificationCenter; import org.telegram.messenger.FileLog; import org.telegram.messenger.R; +import org.telegram.ui.AnimationCompat.AnimatorListenerAdapterProxy; +import org.telegram.ui.AnimationCompat.AnimatorSetProxy; +import org.telegram.ui.AnimationCompat.ObjectAnimatorProxy; +import org.telegram.ui.AnimationCompat.ViewProxy; import java.util.ArrayList; @@ -64,6 +66,10 @@ public class ActionBarLayout extends FrameLayout { private FrameLayoutAnimationListener containerView; private FrameLayoutAnimationListener containerViewBack; private View shadowView; + private DrawerLayout drawerLayout; + + private boolean needStatusBar; + private Paint statusBarPaint = new Paint(); private Animation openAnimation; private Animation closeAnimation; @@ -131,6 +137,10 @@ public class ActionBarLayout extends FrameLayout { fragment.setParentLayout(this); } + if (drawerLayout != null) { + bringChildToFront(drawerLayout); + } + needLayout(); } @@ -144,6 +154,14 @@ public class ActionBarLayout extends FrameLayout { } } + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + if (needStatusBar) { + canvas.drawRect(0, 0, getWidth(), AndroidUtilities.statusBarHeight, statusBarPaint); + } + } + public void onResume() { fixLayout(); if (transitionAnimationInProgress) { @@ -199,12 +217,7 @@ public class ActionBarLayout extends FrameLayout { this.delegate = delegate; } - private void onSlideAnimationEnd(boolean backAnimation) { - containerView.setTranslationX(0); - containerViewBack.setTranslationX(0); - actionBar.stopMoving(backAnimation); - shadowView.setVisibility(View.INVISIBLE); - shadowView.setTranslationX(-AndroidUtilities.dp(2)); + private void onSlideAnimationEnd(final boolean backAnimation) { if (!backAnimation) { BaseFragment lastFragment = fragmentsStack.get(fragmentsStack.size() - 1); lastFragment.onPause(); @@ -216,8 +229,14 @@ public class ActionBarLayout extends FrameLayout { containerView = containerViewBack; containerViewBack = temp; ViewGroup parent = (ViewGroup)containerView.getParent(); - parent.removeView(containerView); - parent.addView(containerView, 1); + parent.bringChildToFront(containerView); + parent.bringChildToFront(shadowView); + parent.bringChildToFront(actionBar); + if (drawerLayout != null) { + parent.bringChildToFront(drawerLayout); + } + //parent.removeViewInLayout(containerView); + //parent.addView(containerView, 1); lastFragment = fragmentsStack.get(fragmentsStack.size() - 1); lastFragment.onResume(); } else { @@ -234,6 +253,12 @@ public class ActionBarLayout extends FrameLayout { AndroidUtilities.unlockOrientation(parentActivity); startedTracking = false; animationInProgress = false; + + ViewProxy.setTranslationX(containerView, 0); + ViewProxy.setTranslationX(containerViewBack, 0); + actionBar.stopMoving(backAnimation); + shadowView.setVisibility(View.INVISIBLE); + ViewProxy.setTranslationX(shadowView, -AndroidUtilities.dp(2)); } private void prepareForMoving(MotionEvent ev) { @@ -241,7 +266,7 @@ public class ActionBarLayout extends FrameLayout { startedTracking = true; startedTrackingX = (int) ev.getX(); shadowView.setVisibility(View.VISIBLE); - shadowView.setTranslationX(-AndroidUtilities.dp(2)); + ViewProxy.setTranslationX(shadowView, -AndroidUtilities.dp(2)); containerViewBack.setVisibility(View.VISIBLE); beginTrackingSent = false; @@ -266,7 +291,7 @@ public class ActionBarLayout extends FrameLayout { } public boolean onTouchEvent(MotionEvent ev) { - if(android.os.Build.VERSION.SDK_INT >= 11 && !checkTransitionAnimation() && !inActionMode && fragmentsStack.size() > 1 && !animationInProgress) { + if(!checkTransitionAnimation() && !inActionMode && fragmentsStack.size() > 1 && !animationInProgress) { if (ev != null && ev.getAction() == MotionEvent.ACTION_DOWN && !startedTracking && !maybeStartTracking) { BaseFragment currentFragment = fragmentsStack.get(fragmentsStack.size() - 1); if (!currentFragment.swipeBackEnabled) { @@ -298,8 +323,8 @@ public class ActionBarLayout extends FrameLayout { beginTrackingSent = true; } actionBar.moveActionBarByX(dx); - containerView.setTranslationX(dx); - shadowView.setTranslationX(dx - AndroidUtilities.dp(2)); + ViewProxy.setTranslationX(containerView, dx); + ViewProxy.setTranslationX(shadowView, dx - AndroidUtilities.dp(2)); } } else if (ev != null && ev.getPointerId(0) == startedTrackingPointerId && (ev.getAction() == MotionEvent.ACTION_CANCEL || ev.getAction() == MotionEvent.ACTION_UP || ev.getAction() == MotionEvent.ACTION_POINTER_UP)) { if (velocityTracker == null) { @@ -314,49 +339,46 @@ public class ActionBarLayout extends FrameLayout { } } if (startedTracking) { - float x = containerView.getX(); - ArrayList animators = new ArrayList(); + float x = ViewProxy.getX(containerView); + AnimatorSetProxy animatorSet = new AnimatorSetProxy(); float velX = velocityTracker.getXVelocity(); float velY = velocityTracker.getYVelocity(); final boolean backAnimation = x < containerView.getMeasuredWidth() / 3.0f && (velX < 3500 || velX < velY); float distToMove = 0; if (!backAnimation) { distToMove = containerView.getMeasuredWidth() - x; - animators.add(ObjectAnimator.ofFloat(containerView, "x", containerView.getMeasuredWidth())); - animators.add(ObjectAnimator.ofFloat(shadowView, "x", containerView.getMeasuredWidth() - AndroidUtilities.dp(2))); + animatorSet.playTogether( + ObjectAnimatorProxy.ofFloat(containerView, "x", containerView.getMeasuredWidth()), + ObjectAnimatorProxy.ofFloat(shadowView, "x", containerView.getMeasuredWidth() - AndroidUtilities.dp(2)), + ObjectAnimatorProxy.ofFloat(actionBar.currentLayer, "x", actionBar.getMeasuredWidth()), + ObjectAnimatorProxy.ofFloat(actionBar.shadowView, "x", actionBar.getMeasuredWidth() - AndroidUtilities.dp(2)), + ObjectAnimatorProxy.ofFloat(actionBar.previousLayer, "alphaEx", 1.0f) + ); } else { distToMove = x; - animators.add(ObjectAnimator.ofFloat(containerView, "x", 0)); - animators.add(ObjectAnimator.ofFloat(shadowView, "x", -AndroidUtilities.dp(2))); + animatorSet.playTogether( + ObjectAnimatorProxy.ofFloat(containerView, "x", 0), + ObjectAnimatorProxy.ofFloat(shadowView, "x", -AndroidUtilities.dp(2)), + ObjectAnimatorProxy.ofFloat(actionBar.currentLayer, "x", 0), + ObjectAnimatorProxy.ofFloat(actionBar.shadowView, "x", -AndroidUtilities.dp(2)), + ObjectAnimatorProxy.ofFloat(actionBar.previousLayer, "alphaEx", 0) + ); } - actionBar.setupAnimations(animators, backAnimation); - AnimatorSet animatorSet = new AnimatorSet(); - animatorSet.playTogether(animators); animatorSet.setDuration(Math.max((int) (200.0f / containerView.getMeasuredWidth() * distToMove), 50)); - animatorSet.start(); - animationInProgress = true; - animatorSet.addListener(new Animator.AnimatorListener() { + animatorSet.addListener(new AnimatorListenerAdapterProxy() { @Override - public void onAnimationStart(Animator animator) { - - } - - @Override - public void onAnimationEnd(Animator animator) { + public void onAnimationEnd(Object animator) { onSlideAnimationEnd(backAnimation); } @Override - public void onAnimationCancel(Animator animator) { + public void onAnimationCancel(Object animator) { onSlideAnimationEnd(backAnimation); } - - @Override - public void onAnimationRepeat(Animator animator) { - - } }); + animatorSet.start(); + animationInProgress = true; } else { maybeStartTracking = false; startedTracking = false; @@ -438,13 +460,17 @@ public class ActionBarLayout extends FrameLayout { int height = 0; if (actionBar.getVisibility() == View.VISIBLE) { - if (!AndroidUtilities.isTablet() && getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { - height = AndroidUtilities.dp(40); - } else { - height = AndroidUtilities.dp(48); - } + height = AndroidUtilities.getCurrentActionBarHeight(); + } + if (needStatusBar) { + height += AndroidUtilities.statusBarHeight; } + if (actionBar != null) { + FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) actionBar.getLayoutParams(); + layoutParams.topMargin = needStatusBar ? AndroidUtilities.statusBarHeight : 0; + actionBar.setLayoutParams(layoutParams); + } if (containerView != null) { FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) containerView.getLayoutParams(); if (layoutParams.topMargin != height) { @@ -529,8 +555,14 @@ public class ActionBarLayout extends FrameLayout { containerViewBack = temp; containerView.setVisibility(View.VISIBLE); ViewGroup parent = (ViewGroup)containerView.getParent(); - parent.removeView(containerView); - parent.addView(containerView, 1); + //parent.removeView(containerView); + //parent.addView(containerView, 1); + parent.bringChildToFront(containerView); + parent.bringChildToFront(shadowView); + parent.bringChildToFront(actionBar); + if (drawerLayout != null) { + parent.bringChildToFront(drawerLayout); + } if (!needAnimation) { presentFragmentInternalRemoveOld(removeLast, currentFragment); @@ -824,4 +856,23 @@ public class ActionBarLayout extends FrameLayout { public void setBackgroundView(View view) { backgroundView = view; } + + public void setNeedStatusBar(boolean value) { + needStatusBar = value; + setWillNotDraw(!needStatusBar); + } + + public void setStatusBarColor(int color) { + statusBarPaint.setColor(color); + } + + public void createDrawerLayout() { + drawerLayout = new DrawerLayout(getContext()); + addView(drawerLayout); + FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams)drawerLayout.getLayoutParams(); + layoutParams.gravity = Gravity.TOP | Gravity.LEFT; + layoutParams.width = AndroidUtilities.dp(100); + layoutParams.height = FrameLayout.LayoutParams.MATCH_PARENT; + drawerLayout.setLayoutParams(layoutParams); + } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/ActionBarMenu.java b/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/ActionBarMenu.java index ae1288bdb..cbce74e27 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/ActionBarMenu.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/ActionBarMenu.java @@ -72,7 +72,7 @@ public class ActionBarMenu extends LinearLayout { addView(menuItem); LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams)menuItem.getLayoutParams(); layoutParams.height = FrameLayout.LayoutParams.MATCH_PARENT; - layoutParams.width = AndroidUtilities.dp(56); + layoutParams.width = AndroidUtilities.dp(48); menuItem.setLayoutParams(layoutParams); menuItem.setOnClickListener(new OnClickListener() { @Override diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/ActionBarMenuItem.java b/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/ActionBarMenuItem.java index c3a3937d8..26f66390b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/ActionBarMenuItem.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/ActionBarMenuItem.java @@ -32,6 +32,7 @@ import android.widget.TextView; import org.telegram.android.AndroidUtilities; import org.telegram.android.LocaleController; +import org.telegram.messenger.FileLog; import org.telegram.messenger.R; import java.lang.reflect.Field; @@ -51,9 +52,10 @@ public class ActionBarMenuItem extends ImageView { private EditText searchField; private boolean isSearchField = false; private ActionBarMenuItemSearchListener listener; - private Rect rect = null; - private int[] location = null; - private View selectedMenuView = null; + private Rect rect; + private int[] location; + private View selectedMenuView; + private Runnable showMenuRunnable; public ActionBarMenuItem(Context context, ActionBarMenu menu, ActionBar actionBar, int background) { super(context); @@ -76,7 +78,20 @@ public class ActionBarMenuItem extends ImageView { @Override public boolean onTouchEvent(MotionEvent event) { - if (event.getActionMasked() == MotionEvent.ACTION_MOVE) { + if (event.getActionMasked() == MotionEvent.ACTION_DOWN) { + if (hasSubMenu() && (popupWindow == null || popupWindow != null && !popupWindow.isShowing())) { + showMenuRunnable = new Runnable() { + @Override + public void run() { + if (getParent() != null) { + getParent().requestDisallowInterceptTouchEvent(true); + } + toggleSubMenu(); + } + }; + AndroidUtilities.runOnUIThread(showMenuRunnable, 200); + } + } else if (event.getActionMasked() == MotionEvent.ACTION_MOVE) { if (hasSubMenu() && (popupWindow == null || popupWindow != null && !popupWindow.isShowing())) { if (event.getY() > getHeight()) { if (getParent() != null) { @@ -98,9 +113,18 @@ public class ActionBarMenuItem extends ImageView { child.getHitRect(rect); if ((Integer)child.getTag() < 100) { if (!rect.contains((int)x, (int)y)) { + child.setPressed(false); child.setSelected(false); + if (Build.VERSION.SDK_INT >= 21) { + child.getBackground().setVisible(false, false); + } } else { + child.setPressed(true); child.setSelected(true); + if (Build.VERSION.SDK_INT >= 21) { + child.getBackground().setVisible(true, false); + child.drawableHotspotChanged(x, y - child.getTop()); + } selectedMenuView = child; } } @@ -151,16 +175,6 @@ public class ActionBarMenuItem extends ImageView { } }); } - if (popupLayout.getChildCount() != 0) { - View delimeter = new View(getContext()); - delimeter.setBackgroundColor(0xffdcdcdc); - popupLayout.addView(delimeter); - LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams)delimeter.getLayoutParams(); - layoutParams.width = LinearLayout.LayoutParams.MATCH_PARENT; - layoutParams.height = AndroidUtilities.density >= 3 ? 2 : 1; - delimeter.setLayoutParams(layoutParams); - delimeter.setTag(100 + id); - } TextView textView = new TextView(getContext()); textView.setTextColor(0xff000000); textView.setBackgroundResource(R.drawable.list_selector); @@ -206,6 +220,13 @@ public class ActionBarMenuItem extends ImageView { } public void toggleSubMenu() { + if (popupLayout == null) { + return; + } + if (showMenuRunnable != null) { + AndroidUtilities.cancelRunOnUIThread(showMenuRunnable); + showMenuRunnable = null; + } if (popupWindow != null && popupWindow.isShowing()) { popupWindow.dismiss(); return; @@ -213,6 +234,7 @@ public class ActionBarMenuItem extends ImageView { if (popupWindow == null) { popupWindow = new ActionBarPopupWindow(popupLayout, FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT); //popupWindow.setBackgroundDrawable(new BitmapDrawable()); + popupWindow.setAnimationStyle(R.style.PopupAnimation); popupWindow.setOutsideTouchable(true); popupWindow.setClippingEnabled(true); popupWindow.setInputMethodMode(ActionBarPopupWindow.INPUT_METHOD_NOT_NEEDED); @@ -232,10 +254,10 @@ public class ActionBarMenuItem extends ImageView { } popupWindow.setFocusable(true); if (popupLayout.getMeasuredWidth() == 0) { - popupWindow.showAsDropDown(this, parentActionBar.getMeasuredWidth() - popupLayout.getMeasuredWidth() - getLeft() - parentMenu.getLeft(), 0); - popupWindow.update(this, parentActionBar.getMeasuredWidth() - popupLayout.getMeasuredWidth() - getLeft() - parentMenu.getLeft(), 0, -1, -1); + popupWindow.showAsDropDown(this, parentActionBar.getMeasuredWidth() - popupLayout.getMeasuredWidth() - getLeft() - parentMenu.getLeft(), -getMeasuredHeight()); + popupWindow.update(this, parentActionBar.getMeasuredWidth() - popupLayout.getMeasuredWidth() - getLeft() - parentMenu.getLeft(), -getMeasuredHeight(), -1, -1); } else { - popupWindow.showAsDropDown(this, parentActionBar.getMeasuredWidth() - popupLayout.getMeasuredWidth() - getLeft() - parentMenu.getLeft(), 0); + popupWindow.showAsDropDown(this, parentActionBar.getMeasuredWidth() - popupLayout.getMeasuredWidth() - getLeft() - parentMenu.getLeft(), -getMeasuredHeight()); } } @@ -377,10 +399,13 @@ public class ActionBarMenuItem extends ImageView { } @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - super.onMeasure(widthMeasureSpec, heightMeasureSpec); + protected void onLayout(boolean changed, int left, int top, int right, int bottom) { + super.onLayout(changed, left, top, right, bottom); if (popupWindow != null && popupWindow.isShowing()) { - popupWindow.update(this, parentActionBar.getMeasuredWidth() - popupLayout.getMeasuredWidth() - getLeft() - parentMenu.getLeft(), 0, -1, -1); + int x = parentActionBar.getMeasuredWidth() - popupLayout.getMeasuredWidth() - getLeft() - parentMenu.getLeft(); + int y = -getMeasuredHeight(); + FileLog.e("tmessages", "x = " + x + " y = " + y); + popupWindow.update(this, parentActionBar.getMeasuredWidth() - popupLayout.getMeasuredWidth() - getLeft() - parentMenu.getLeft(), -getMeasuredHeight(), -1, -1); } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/DrawerLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/DrawerLayout.java new file mode 100644 index 000000000..3bddf4e35 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/DrawerLayout.java @@ -0,0 +1,1213 @@ +/* + * This is the source code of Telegram for Android v. 1.7.x. + * It is licensed under GNU GPL v. 2 or later. + * You should have received a copy of the license in this archive (see LICENSE). + * + * Copyright Nikolai Kudashov, 2013-2014. + */ + +package org.telegram.ui.Views.ActionBar; + +import android.content.Context; +import android.os.Build; +import android.view.Gravity; +import android.view.View; +import android.view.ViewGroup; +import android.view.WindowInsets; +import android.widget.FrameLayout; + +public class DrawerLayout extends FrameLayout { + + private Object mLastInsets; + + public DrawerLayout(Context context) { + super(context); + + setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS); + setFocusableInTouchMode(true); + + if (Build.VERSION.SDK_INT >= 21) { + setFitsSystemWindows(true); + configureApplyInsets(this); + } + } + + static class InsetsListener implements View.OnApplyWindowInsetsListener { + @Override + public WindowInsets onApplyWindowInsets(View v, WindowInsets insets) { + final DrawerLayout drawerLayout = (DrawerLayout) v; + drawerLayout.setChildInsets(insets, insets.getSystemWindowInsetTop() > 0); + return insets.consumeSystemWindowInsets(); + } + } + + public void configureApplyInsets(View drawerLayout) { + if (Build.VERSION.SDK_INT >= 21) { + drawerLayout.setOnApplyWindowInsetsListener(new InsetsListener()); + drawerLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); + } + } + + public void dispatchChildInsets(View child, Object insets, int drawerGravity) { + WindowInsets wi = (WindowInsets) insets; + if (drawerGravity == Gravity.LEFT) { + wi = wi.replaceSystemWindowInsets(wi.getSystemWindowInsetLeft(), wi.getSystemWindowInsetTop(), 0, wi.getSystemWindowInsetBottom()); + } else if (drawerGravity == Gravity.RIGHT) { + wi = wi.replaceSystemWindowInsets(0, wi.getSystemWindowInsetTop(), wi.getSystemWindowInsetRight(), wi.getSystemWindowInsetBottom()); + } + child.dispatchApplyWindowInsets(wi); + } + + public void applyMarginInsets(MarginLayoutParams lp, Object insets, int drawerGravity) { + WindowInsets wi = (WindowInsets) insets; + if (drawerGravity == Gravity.LEFT) { + wi = wi.replaceSystemWindowInsets(wi.getSystemWindowInsetLeft(), wi.getSystemWindowInsetTop(), 0, wi.getSystemWindowInsetBottom()); + } else if (drawerGravity == Gravity.RIGHT) { + wi = wi.replaceSystemWindowInsets(0, wi.getSystemWindowInsetTop(), wi.getSystemWindowInsetRight(), wi.getSystemWindowInsetBottom()); + } + lp.leftMargin = wi.getSystemWindowInsetLeft(); + lp.topMargin = wi.getSystemWindowInsetTop(); + lp.rightMargin = wi.getSystemWindowInsetRight(); + lp.bottomMargin = wi.getSystemWindowInsetBottom(); + } + + public int getTopInset(Object insets) { + if (Build.VERSION.SDK_INT >= 21) { + return insets != null ? ((WindowInsets) insets).getSystemWindowInsetTop() : 0; + } + return 0; + } + + public void setChildInsets(Object insets, boolean draw) { + mLastInsets = insets; + setWillNotDraw(!draw && getBackground() == null); + requestLayout(); + } + + + /*private static final int MIN_DRAWER_MARGIN = 64; // dp + + private static final int DEFAULT_SCRIM_COLOR = 0x99000000; + + private static final int PEEK_DELAY = 160; // ms + + private static final int MIN_FLING_VELOCITY = 400; // dips per second + + private static final boolean ALLOW_EDGE_LOCK = false; + + private static final boolean CHILDREN_DISALLOW_INTERCEPT = true; + + private static final float TOUCH_SLOP_SENSITIVITY = 1.f; + + private static final int[] LAYOUT_ATTRS = new int[] { + android.R.attr.layout_gravity + }; + + private final ChildAccessibilityDelegate mChildAccessibilityDelegate = + new ChildAccessibilityDelegate(); + + private int mMinDrawerMargin; + + private int mScrimColor = DEFAULT_SCRIM_COLOR; + private float mScrimOpacity; + private Paint mScrimPaint = new Paint(); + + private final ViewDragHelper mLeftDragger; + private final ViewDragHelper mRightDragger; + private final ViewDragCallback mLeftCallback; + private final ViewDragCallback mRightCallback; + private int mDrawerState; + private boolean mInLayout; + private boolean mFirstLayout = true; + private int mLockModeLeft; + private int mLockModeRight; + private boolean mDisallowInterceptRequested; + private boolean mChildrenCanceledTouch; + + private DrawerListener mListener; + + private float mInitialMotionX; + private float mInitialMotionY; + + private Drawable mShadowLeft; + private Drawable mShadowRight; + + + private CharSequence mTitleLeft; + private CharSequence mTitleRight; + + private Object mLastInsets; + private boolean mDrawStatusBarBackground; + + public interface DrawerListener { + public void onDrawerSlide(View drawerView, float slideOffset); + public void onDrawerOpened(View drawerView); + public void onDrawerClosed(View drawerView); + public void onDrawerStateChanged(@State int newState); + } + + public static abstract class SimpleDrawerListener implements DrawerListener { + @Override + public void onDrawerSlide(View drawerView, float slideOffset) { + } + + @Override + public void onDrawerOpened(View drawerView) { + } + + @Override + public void onDrawerClosed(View drawerView) { + } + + @Override + public void onDrawerStateChanged(int newState) { + } + } + + + static { + final int version = Build.VERSION.SDK_INT; + if (version >= 21) { + IMPL = new DrawerLayoutCompatImplApi21(); + } else { + IMPL = new DrawerLayoutCompatImplBase(); + } + } + + static final DrawerLayoutCompatImpl IMPL; + + public void setDrawerShadow(Drawable shadowDrawable, @EdgeGravity int gravity) { + + final int absGravity = GravityCompat.getAbsoluteGravity(gravity, + ViewCompat.getLayoutDirection(this)); + if ((absGravity & Gravity.LEFT) == Gravity.LEFT) { + mShadowLeft = shadowDrawable; + invalidate(); + } + if ((absGravity & Gravity.RIGHT) == Gravity.RIGHT) { + mShadowRight = shadowDrawable; + invalidate(); + } + } + + public void setDrawerShadow(@DrawableRes int resId, @EdgeGravity int gravity) { + setDrawerShadow(getResources().getDrawable(resId), gravity); + } + + public void setScrimColor(int color) { + mScrimColor = color; + invalidate(); + } + + public void setDrawerListener(DrawerListener listener) { + mListener = listener; + } + + public void setDrawerLockMode(@LockMode int lockMode) { + setDrawerLockMode(lockMode, Gravity.LEFT); + setDrawerLockMode(lockMode, Gravity.RIGHT); + } + + public void setDrawerLockMode(@LockMode int lockMode, @EdgeGravity int edgeGravity) { + final int absGravity = GravityCompat.getAbsoluteGravity(edgeGravity, + ViewCompat.getLayoutDirection(this)); + if (absGravity == Gravity.LEFT) { + mLockModeLeft = lockMode; + } else if (absGravity == Gravity.RIGHT) { + mLockModeRight = lockMode; + } + if (lockMode != LOCK_MODE_UNLOCKED) { + // Cancel interaction in progress + final ViewDragHelper helper = absGravity == Gravity.LEFT ? mLeftDragger : mRightDragger; + helper.cancel(); + } + switch (lockMode) { + case LOCK_MODE_LOCKED_OPEN: + final View toOpen = findDrawerWithGravity(absGravity); + if (toOpen != null) { + openDrawer(toOpen); + } + break; + case LOCK_MODE_LOCKED_CLOSED: + final View toClose = findDrawerWithGravity(absGravity); + if (toClose != null) { + closeDrawer(toClose); + } + break; + // default: do nothing + } + } + + public void setDrawerLockMode(@LockMode int lockMode, View drawerView) { + if (!isDrawerView(drawerView)) { + throw new IllegalArgumentException("View " + drawerView + " is not a " + + "drawer with appropriate layout_gravity"); + } + final int gravity = ((LayoutParams) drawerView.getLayoutParams()).gravity; + setDrawerLockMode(lockMode, gravity); + } + + @LockMode + public int getDrawerLockMode(@EdgeGravity int edgeGravity) { + final int absGravity = GravityCompat.getAbsoluteGravity( + edgeGravity, ViewCompat.getLayoutDirection(this)); + if (absGravity == Gravity.LEFT) { + return mLockModeLeft; + } else if (absGravity == Gravity.RIGHT) { + return mLockModeRight; + } + return LOCK_MODE_UNLOCKED; + } + + @LockMode + public int getDrawerLockMode(View drawerView) { + final int absGravity = getDrawerViewAbsoluteGravity(drawerView); + if (absGravity == Gravity.LEFT) { + return mLockModeLeft; + } else if (absGravity == Gravity.RIGHT) { + return mLockModeRight; + } + return LOCK_MODE_UNLOCKED; + } + + public void setDrawerTitle(@EdgeGravity int edgeGravity, CharSequence title) { + final int absGravity = GravityCompat.getAbsoluteGravity( + edgeGravity, ViewCompat.getLayoutDirection(this)); + if (absGravity == Gravity.LEFT) { + mTitleLeft = title; + } else if (absGravity == Gravity.RIGHT) { + mTitleRight = title; + } + } + + @Nullable + public CharSequence getDrawerTitle(@EdgeGravity int edgeGravity) { + final int absGravity = GravityCompat.getAbsoluteGravity( + edgeGravity, ViewCompat.getLayoutDirection(this)); + if (absGravity == Gravity.LEFT) { + return mTitleLeft; + } else if (absGravity == Gravity.RIGHT) { + return mTitleRight; + } + return null; + } + + void updateDrawerState(int forGravity, @State int activeState, View activeDrawer) { + final int leftState = mLeftDragger.getViewDragState(); + final int rightState = mRightDragger.getViewDragState(); + + final int state; + if (leftState == STATE_DRAGGING || rightState == STATE_DRAGGING) { + state = STATE_DRAGGING; + } else if (leftState == STATE_SETTLING || rightState == STATE_SETTLING) { + state = STATE_SETTLING; + } else { + state = STATE_IDLE; + } + + if (activeDrawer != null && activeState == STATE_IDLE) { + final LayoutParams lp = (LayoutParams) activeDrawer.getLayoutParams(); + if (lp.onScreen == 0) { + dispatchOnDrawerClosed(activeDrawer); + } else if (lp.onScreen == 1) { + dispatchOnDrawerOpened(activeDrawer); + } + } + + if (state != mDrawerState) { + mDrawerState = state; + + if (mListener != null) { + mListener.onDrawerStateChanged(state); + } + } + } + + void dispatchOnDrawerClosed(View drawerView) { + final LayoutParams lp = (LayoutParams) drawerView.getLayoutParams(); + if (lp.knownOpen) { + lp.knownOpen = false; + if (mListener != null) { + mListener.onDrawerClosed(drawerView); + } + + // If no drawer is opened, all drawers are not shown + // for accessibility and the content is shown. + View content = getChildAt(0); + if (content != null) { + ViewCompat.setImportantForAccessibility(content, + ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_YES); + } + ViewCompat.setImportantForAccessibility(drawerView, + ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS); + + // Only send WINDOW_STATE_CHANGE if the host has window focus. This + // may change if support for multiple foreground windows (e.g. IME) + // improves. + if (hasWindowFocus()) { + final View rootView = getRootView(); + if (rootView != null) { + rootView.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED); + } + } + } + } + + void dispatchOnDrawerOpened(View drawerView) { + final LayoutParams lp = (LayoutParams) drawerView.getLayoutParams(); + if (!lp.knownOpen) { + lp.knownOpen = true; + if (mListener != null) { + mListener.onDrawerOpened(drawerView); + } + + // If a drawer is opened, only it is shown for + // accessibility and the content is not shown. + View content = getChildAt(0); + if (content != null) { + ViewCompat.setImportantForAccessibility(content, + ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS); + } + ViewCompat.setImportantForAccessibility(drawerView, + ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_YES); + + sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED); + drawerView.requestFocus(); + } + } + + void dispatchOnDrawerSlide(View drawerView, float slideOffset) { + if (mListener != null) { + mListener.onDrawerSlide(drawerView, slideOffset); + } + } + + void setDrawerViewOffset(View drawerView, float slideOffset) { + final LayoutParams lp = (LayoutParams) drawerView.getLayoutParams(); + if (slideOffset == lp.onScreen) { + return; + } + + lp.onScreen = slideOffset; + dispatchOnDrawerSlide(drawerView, slideOffset); + } + + float getDrawerViewOffset(View drawerView) { + return ((LayoutParams) drawerView.getLayoutParams()).onScreen; + } + + int getDrawerViewAbsoluteGravity(View drawerView) { + final int gravity = ((LayoutParams) drawerView.getLayoutParams()).gravity; + return GravityCompat.getAbsoluteGravity(gravity, ViewCompat.getLayoutDirection(this)); + } + + boolean checkDrawerViewAbsoluteGravity(View drawerView, int checkFor) { + final int absGravity = getDrawerViewAbsoluteGravity(drawerView); + return (absGravity & checkFor) == checkFor; + } + + View findOpenDrawer() { + final int childCount = getChildCount(); + for (int i = 0; i < childCount; i++) { + final View child = getChildAt(i); + if (((LayoutParams) child.getLayoutParams()).knownOpen) { + return child; + } + } + return null; + } + + void moveDrawerToOffset(View drawerView, float slideOffset) { + final float oldOffset = getDrawerViewOffset(drawerView); + final int width = drawerView.getWidth(); + final int oldPos = (int) (width * oldOffset); + final int newPos = (int) (width * slideOffset); + final int dx = newPos - oldPos; + + drawerView.offsetLeftAndRight( + checkDrawerViewAbsoluteGravity(drawerView, Gravity.LEFT) ? dx : -dx); + setDrawerViewOffset(drawerView, slideOffset); + } + + View findDrawerWithGravity(int gravity) { + final int absHorizGravity = GravityCompat.getAbsoluteGravity( + gravity, ViewCompat.getLayoutDirection(this)) & Gravity.HORIZONTAL_GRAVITY_MASK; + final int childCount = getChildCount(); + for (int i = 0; i < childCount; i++) { + final View child = getChildAt(i); + final int childAbsGravity = getDrawerViewAbsoluteGravity(child); + if ((childAbsGravity & Gravity.HORIZONTAL_GRAVITY_MASK) == absHorizGravity) { + return child; + } + } + return null; + } + + static String gravityToString(@EdgeGravity int gravity) { + if ((gravity & Gravity.LEFT) == Gravity.LEFT) { + return "LEFT"; + } + if ((gravity & Gravity.RIGHT) == Gravity.RIGHT) { + return "RIGHT"; + } + return Integer.toHexString(gravity); + } + + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + mFirstLayout = true; + } + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + mFirstLayout = true; + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + int widthMode = MeasureSpec.getMode(widthMeasureSpec); + int heightMode = MeasureSpec.getMode(heightMeasureSpec); + int widthSize = MeasureSpec.getSize(widthMeasureSpec); + int heightSize = MeasureSpec.getSize(heightMeasureSpec); + + setMeasuredDimension(widthSize, heightSize); + + final boolean applyInsets = mLastInsets != null && ViewCompat.getFitsSystemWindows(this); + final int layoutDirection = ViewCompat.getLayoutDirection(this); + + // Gravity value for each drawer we've seen. Only one of each permitted. + int foundDrawers = 0; + final int childCount = getChildCount(); + for (int i = 0; i < childCount; i++) { + final View child = getChildAt(i); + + if (child.getVisibility() == GONE) { + continue; + } + + final LayoutParams lp = (LayoutParams) child.getLayoutParams(); + + if (applyInsets) { + final int cgrav = GravityCompat.getAbsoluteGravity(lp.gravity, layoutDirection); + if (ViewCompat.getFitsSystemWindows(child)) { + IMPL.dispatchChildInsets(child, mLastInsets, cgrav); + } else { + IMPL.applyMarginInsets(lp, mLastInsets, cgrav); + } + } + + if (isContentView(child)) { + // Content views get measured at exactly the layout's size. + final int contentWidthSpec = MeasureSpec.makeMeasureSpec( + widthSize - lp.leftMargin - lp.rightMargin, MeasureSpec.EXACTLY); + final int contentHeightSpec = MeasureSpec.makeMeasureSpec( + heightSize - lp.topMargin - lp.bottomMargin, MeasureSpec.EXACTLY); + child.measure(contentWidthSpec, contentHeightSpec); + } else if (isDrawerView(child)) { + final int childGravity = + getDrawerViewAbsoluteGravity(child) & Gravity.HORIZONTAL_GRAVITY_MASK; + if ((foundDrawers & childGravity) != 0) { + throw new IllegalStateException("Child drawer has absolute gravity " + + gravityToString(childGravity) + " but this " + TAG + " already has a " + + "drawer view along that edge"); + } + final int drawerWidthSpec = getChildMeasureSpec(widthMeasureSpec, + mMinDrawerMargin + lp.leftMargin + lp.rightMargin, + lp.width); + final int drawerHeightSpec = getChildMeasureSpec(heightMeasureSpec, + lp.topMargin + lp.bottomMargin, + lp.height); + child.measure(drawerWidthSpec, drawerHeightSpec); + } else { + throw new IllegalStateException("Child " + child + " at index " + i + + " does not have a valid layout_gravity - must be Gravity.LEFT, " + + "Gravity.RIGHT or Gravity.NO_GRAVITY"); + } + } + } + + @Override + protected void onLayout(boolean changed, int l, int t, int r, int b) { + mInLayout = true; + final int width = r - l; + final int childCount = getChildCount(); + for (int i = 0; i < childCount; i++) { + final View child = getChildAt(i); + + if (child.getVisibility() == GONE) { + continue; + } + + final LayoutParams lp = (LayoutParams) child.getLayoutParams(); + + if (isContentView(child)) { + child.layout(lp.leftMargin, lp.topMargin, + lp.leftMargin + child.getMeasuredWidth(), + lp.topMargin + child.getMeasuredHeight()); + } else { // Drawer, if it wasn't onMeasure would have thrown an exception. + final int childWidth = child.getMeasuredWidth(); + final int childHeight = child.getMeasuredHeight(); + int childLeft; + + final float newOffset; + if (checkDrawerViewAbsoluteGravity(child, Gravity.LEFT)) { + childLeft = -childWidth + (int) (childWidth * lp.onScreen); + newOffset = (float) (childWidth + childLeft) / childWidth; + } else { // Right; onMeasure checked for us. + childLeft = width - (int) (childWidth * lp.onScreen); + newOffset = (float) (width - childLeft) / childWidth; + } + + final boolean changeOffset = newOffset != lp.onScreen; + + final int vgrav = lp.gravity & Gravity.VERTICAL_GRAVITY_MASK; + + switch (vgrav) { + default: + case Gravity.TOP: { + child.layout(childLeft, lp.topMargin, childLeft + childWidth, + lp.topMargin + childHeight); + break; + } + + case Gravity.BOTTOM: { + final int height = b - t; + child.layout(childLeft, + height - lp.bottomMargin - child.getMeasuredHeight(), + childLeft + childWidth, + height - lp.bottomMargin); + break; + } + + case Gravity.CENTER_VERTICAL: { + final int height = b - t; + int childTop = (height - childHeight) / 2; + + // Offset for margins. If things don't fit right because of + // bad measurement before, oh well. + if (childTop < lp.topMargin) { + childTop = lp.topMargin; + } else if (childTop + childHeight > height - lp.bottomMargin) { + childTop = height - lp.bottomMargin - childHeight; + } + child.layout(childLeft, childTop, childLeft + childWidth, + childTop + childHeight); + break; + } + } + + if (changeOffset) { + setDrawerViewOffset(child, newOffset); + } + + final int newVisibility = lp.onScreen > 0 ? VISIBLE : INVISIBLE; + if (child.getVisibility() != newVisibility) { + child.setVisibility(newVisibility); + } + } + } + mInLayout = false; + mFirstLayout = false; + } + + @Override + public void requestLayout() { + if (!mInLayout) { + super.requestLayout(); + } + } + + @Override + public void computeScroll() { + final int childCount = getChildCount(); + float scrimOpacity = 0; + for (int i = 0; i < childCount; i++) { + final float onscreen = ((LayoutParams) getChildAt(i).getLayoutParams()).onScreen; + scrimOpacity = Math.max(scrimOpacity, onscreen); + } + mScrimOpacity = scrimOpacity; + + // "|" used on purpose; both need to run. + if (mLeftDragger.continueSettling(true) | mRightDragger.continueSettling(true)) { + ViewCompat.postInvalidateOnAnimation(this); + } + } + + private static boolean hasOpaqueBackground(View v) { + final Drawable bg = v.getBackground(); + if (bg != null) { + return bg.getOpacity() == PixelFormat.OPAQUE; + } + return false; + } + + @Override + protected boolean drawChild(Canvas canvas, View child, long drawingTime) { + final int height = getHeight(); + final boolean drawingContent = isContentView(child); + int clipLeft = 0, clipRight = getWidth(); + + final int restoreCount = canvas.save(); + if (drawingContent) { + final int childCount = getChildCount(); + for (int i = 0; i < childCount; i++) { + final View v = getChildAt(i); + if (v == child || v.getVisibility() != VISIBLE || + !hasOpaqueBackground(v) || !isDrawerView(v) || + v.getHeight() < height) { + continue; + } + + if (checkDrawerViewAbsoluteGravity(v, Gravity.LEFT)) { + final int vright = v.getRight(); + if (vright > clipLeft) clipLeft = vright; + } else { + final int vleft = v.getLeft(); + if (vleft < clipRight) clipRight = vleft; + } + } + canvas.clipRect(clipLeft, 0, clipRight, getHeight()); + } + final boolean result = super.drawChild(canvas, child, drawingTime); + canvas.restoreToCount(restoreCount); + + if (mScrimOpacity > 0 && drawingContent) { + final int baseAlpha = (mScrimColor & 0xff000000) >>> 24; + final int imag = (int) (baseAlpha * mScrimOpacity); + final int color = imag << 24 | (mScrimColor & 0xffffff); + mScrimPaint.setColor(color); + + canvas.drawRect(clipLeft, 0, clipRight, getHeight(), mScrimPaint); + } else if (mShadowLeft != null && checkDrawerViewAbsoluteGravity(child, Gravity.LEFT)) { + final int shadowWidth = mShadowLeft.getIntrinsicWidth(); + final int childRight = child.getRight(); + final int drawerPeekDistance = mLeftDragger.getEdgeSize(); + final float alpha = + Math.max(0, Math.min((float) childRight / drawerPeekDistance, 1.f)); + mShadowLeft.setBounds(childRight, child.getTop(), + childRight + shadowWidth, child.getBottom()); + mShadowLeft.setAlpha((int) (0xff * alpha)); + mShadowLeft.draw(canvas); + } else if (mShadowRight != null && checkDrawerViewAbsoluteGravity(child, Gravity.RIGHT)) { + final int shadowWidth = mShadowRight.getIntrinsicWidth(); + final int childLeft = child.getLeft(); + final int showing = getWidth() - childLeft; + final int drawerPeekDistance = mRightDragger.getEdgeSize(); + final float alpha = + Math.max(0, Math.min((float) showing / drawerPeekDistance, 1.f)); + mShadowRight.setBounds(childLeft - shadowWidth, child.getTop(), + childLeft, child.getBottom()); + mShadowRight.setAlpha((int) (0xff * alpha)); + mShadowRight.draw(canvas); + } + return result; + } + + boolean isContentView(View child) { + return ((LayoutParams) child.getLayoutParams()).gravity == Gravity.NO_GRAVITY; + } + + boolean isDrawerView(View child) { + final int gravity = ((LayoutParams) child.getLayoutParams()).gravity; + final int absGravity = GravityCompat.getAbsoluteGravity(gravity, + ViewCompat.getLayoutDirection(child)); + return (absGravity & (Gravity.LEFT | Gravity.RIGHT)) != 0; + } + + @Override + public boolean onInterceptTouchEvent(MotionEvent ev) { + final int action = MotionEventCompat.getActionMasked(ev); + + // "|" used deliberately here; both methods should be invoked. + final boolean interceptForDrag = mLeftDragger.shouldInterceptTouchEvent(ev) | + mRightDragger.shouldInterceptTouchEvent(ev); + + boolean interceptForTap = false; + + switch (action) { + case MotionEvent.ACTION_DOWN: { + final float x = ev.getX(); + final float y = ev.getY(); + mInitialMotionX = x; + mInitialMotionY = y; + if (mScrimOpacity > 0 && + isContentView(mLeftDragger.findTopChildUnder((int) x, (int) y))) { + interceptForTap = true; + } + mDisallowInterceptRequested = false; + mChildrenCanceledTouch = false; + break; + } + + case MotionEvent.ACTION_MOVE: { + // If we cross the touch slop, don't perform the delayed peek for an edge touch. + if (mLeftDragger.checkTouchSlop(ViewDragHelper.DIRECTION_ALL)) { + mLeftCallback.removeCallbacks(); + mRightCallback.removeCallbacks(); + } + break; + } + + case MotionEvent.ACTION_CANCEL: + case MotionEvent.ACTION_UP: { + closeDrawers(true); + mDisallowInterceptRequested = false; + mChildrenCanceledTouch = false; + } + } + + return interceptForDrag || interceptForTap || hasPeekingDrawer() || mChildrenCanceledTouch; + } + + @Override + public boolean onTouchEvent(MotionEvent ev) { + mLeftDragger.processTouchEvent(ev); + mRightDragger.processTouchEvent(ev); + + final int action = ev.getAction(); + boolean wantTouchEvents = true; + + switch (action & MotionEventCompat.ACTION_MASK) { + case MotionEvent.ACTION_DOWN: { + final float x = ev.getX(); + final float y = ev.getY(); + mInitialMotionX = x; + mInitialMotionY = y; + mDisallowInterceptRequested = false; + mChildrenCanceledTouch = false; + break; + } + + case MotionEvent.ACTION_UP: { + final float x = ev.getX(); + final float y = ev.getY(); + boolean peekingOnly = true; + final View touchedView = mLeftDragger.findTopChildUnder((int) x, (int) y); + if (touchedView != null && isContentView(touchedView)) { + final float dx = x - mInitialMotionX; + final float dy = y - mInitialMotionY; + final int slop = mLeftDragger.getTouchSlop(); + if (dx * dx + dy * dy < slop * slop) { + // Taps close a dimmed open drawer but only if it isn't locked open. + final View openDrawer = findOpenDrawer(); + if (openDrawer != null) { + peekingOnly = getDrawerLockMode(openDrawer) == LOCK_MODE_LOCKED_OPEN; + } + } + } + closeDrawers(peekingOnly); + mDisallowInterceptRequested = false; + break; + } + + case MotionEvent.ACTION_CANCEL: { + closeDrawers(true); + mDisallowInterceptRequested = false; + mChildrenCanceledTouch = false; + break; + } + } + + return wantTouchEvents; + } + + public void requestDisallowInterceptTouchEvent(boolean disallowIntercept) { + if (CHILDREN_DISALLOW_INTERCEPT || + (!mLeftDragger.isEdgeTouched(ViewDragHelper.EDGE_LEFT) && + !mRightDragger.isEdgeTouched(ViewDragHelper.EDGE_RIGHT))) { + // If we have an edge touch we want to skip this and track it for later instead. + super.requestDisallowInterceptTouchEvent(disallowIntercept); + } + mDisallowInterceptRequested = disallowIntercept; + if (disallowIntercept) { + closeDrawers(true); + } + } + + public void closeDrawers() { + closeDrawers(false); + } + + void closeDrawers(boolean peekingOnly) { + boolean needsInvalidate = false; + final int childCount = getChildCount(); + for (int i = 0; i < childCount; i++) { + final View child = getChildAt(i); + final LayoutParams lp = (LayoutParams) child.getLayoutParams(); + + if (!isDrawerView(child) || (peekingOnly && !lp.isPeeking)) { + continue; + } + + final int childWidth = child.getWidth(); + + if (checkDrawerViewAbsoluteGravity(child, Gravity.LEFT)) { + needsInvalidate |= mLeftDragger.smoothSlideViewTo(child, + -childWidth, child.getTop()); + } else { + needsInvalidate |= mRightDragger.smoothSlideViewTo(child, + getWidth(), child.getTop()); + } + + lp.isPeeking = false; + } + + mLeftCallback.removeCallbacks(); + mRightCallback.removeCallbacks(); + + if (needsInvalidate) { + invalidate(); + } + } + + public void openDrawer(View drawerView) { + if (!isDrawerView(drawerView)) { + throw new IllegalArgumentException("View " + drawerView + " is not a sliding drawer"); + } + + if (mFirstLayout) { + final LayoutParams lp = (LayoutParams) drawerView.getLayoutParams(); + lp.onScreen = 1.f; + lp.knownOpen = true; + + View content = getChildAt(0); + if (content != null) { + ViewCompat.setImportantForAccessibility(content, + ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS); + } + ViewCompat.setImportantForAccessibility(drawerView, + ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_YES); + } else { + if (checkDrawerViewAbsoluteGravity(drawerView, Gravity.LEFT)) { + mLeftDragger.smoothSlideViewTo(drawerView, 0, drawerView.getTop()); + } else { + mRightDragger.smoothSlideViewTo(drawerView, getWidth() - drawerView.getWidth(), + drawerView.getTop()); + } + } + invalidate(); + } + + public void openDrawer(@EdgeGravity int gravity) { + final View drawerView = findDrawerWithGravity(gravity); + if (drawerView == null) { + throw new IllegalArgumentException("No drawer view found with gravity " + + gravityToString(gravity)); + } + openDrawer(drawerView); + } + + public void closeDrawer(View drawerView) { + if (!isDrawerView(drawerView)) { + throw new IllegalArgumentException("View " + drawerView + " is not a sliding drawer"); + } + + if (mFirstLayout) { + final LayoutParams lp = (LayoutParams) drawerView.getLayoutParams(); + lp.onScreen = 0.f; + lp.knownOpen = false; + } else { + if (checkDrawerViewAbsoluteGravity(drawerView, Gravity.LEFT)) { + mLeftDragger.smoothSlideViewTo(drawerView, -drawerView.getWidth(), + drawerView.getTop()); + } else { + mRightDragger.smoothSlideViewTo(drawerView, getWidth(), drawerView.getTop()); + } + } + invalidate(); + } + + public void closeDrawer(@EdgeGravity int gravity) { + final View drawerView = findDrawerWithGravity(gravity); + if (drawerView == null) { + throw new IllegalArgumentException("No drawer view found with gravity " + + gravityToString(gravity)); + } + closeDrawer(drawerView); + } + + public boolean isDrawerOpen(View drawer) { + if (!isDrawerView(drawer)) { + throw new IllegalArgumentException("View " + drawer + " is not a drawer"); + } + return ((LayoutParams) drawer.getLayoutParams()).knownOpen; + } + + public boolean isDrawerOpen(@EdgeGravity int drawerGravity) { + final View drawerView = findDrawerWithGravity(drawerGravity); + if (drawerView != null) { + return isDrawerOpen(drawerView); + } + return false; + } + + public boolean isDrawerVisible(View drawer) { + if (!isDrawerView(drawer)) { + throw new IllegalArgumentException("View " + drawer + " is not a drawer"); + } + return ((LayoutParams) drawer.getLayoutParams()).onScreen > 0; + } + + public boolean isDrawerVisible(@EdgeGravity int drawerGravity) { + final View drawerView = findDrawerWithGravity(drawerGravity); + if (drawerView != null) { + return isDrawerVisible(drawerView); + } + return false; + } + + private boolean hasPeekingDrawer() { + final int childCount = getChildCount(); + for (int i = 0; i < childCount; i++) { + final LayoutParams lp = (LayoutParams) getChildAt(i).getLayoutParams(); + if (lp.isPeeking) { + return true; + } + } + return false; + } + + @Override + protected ViewGroup.LayoutParams generateDefaultLayoutParams() { + return new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); + } + + @Override + protected ViewGroup.LayoutParams generateLayoutParams(ViewGroup.LayoutParams p) { + return p instanceof LayoutParams + ? new LayoutParams((LayoutParams) p) + : p instanceof ViewGroup.MarginLayoutParams + ? new LayoutParams((MarginLayoutParams) p) + : new LayoutParams(p); + } + + @Override + protected boolean checkLayoutParams(ViewGroup.LayoutParams p) { + return p instanceof LayoutParams && super.checkLayoutParams(p); + } + + @Override + public ViewGroup.LayoutParams generateLayoutParams(AttributeSet attrs) { + return new LayoutParams(getContext(), attrs); + } + + private boolean hasVisibleDrawer() { + return findVisibleDrawer() != null; + } + + private View findVisibleDrawer() { + final int childCount = getChildCount(); + for (int i = 0; i < childCount; i++) { + final View child = getChildAt(i); + if (isDrawerView(child) && isDrawerVisible(child)) { + return child; + } + } + return null; + } + + void cancelChildViewTouch() { + // Cancel child touches + if (!mChildrenCanceledTouch) { + final long now = SystemClock.uptimeMillis(); + final MotionEvent cancelEvent = MotionEvent.obtain(now, now, + MotionEvent.ACTION_CANCEL, 0.0f, 0.0f, 0); + final int childCount = getChildCount(); + for (int i = 0; i < childCount; i++) { + getChildAt(i).dispatchTouchEvent(cancelEvent); + } + cancelEvent.recycle(); + mChildrenCanceledTouch = true; + } + } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_BACK && hasVisibleDrawer()) { + KeyEventCompat.startTracking(event); + return true; + } + return super.onKeyDown(keyCode, event); + } + + @Override + public boolean onKeyUp(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_BACK) { + final View visibleDrawer = findVisibleDrawer(); + if (visibleDrawer != null && getDrawerLockMode(visibleDrawer) == LOCK_MODE_UNLOCKED) { + closeDrawers(); + } + return visibleDrawer != null; + } + return super.onKeyUp(keyCode, event); + } + + private class ViewDragCallback extends ViewDragHelper.Callback { + private final int mAbsGravity; + private ViewDragHelper mDragger; + + private final Runnable mPeekRunnable = new Runnable() { + @Override public void run() { + peekDrawer(); + } + }; + + public ViewDragCallback(int gravity) { + mAbsGravity = gravity; + } + + public void setDragger(ViewDragHelper dragger) { + mDragger = dragger; + } + + public void removeCallbacks() { + DrawerLayout.this.removeCallbacks(mPeekRunnable); + } + + @Override + public boolean tryCaptureView(View child, int pointerId) { + // Only capture views where the gravity matches what we're looking for. + // This lets us use two ViewDragHelpers, one for each side drawer. + return isDrawerView(child) && checkDrawerViewAbsoluteGravity(child, mAbsGravity) + && getDrawerLockMode(child) == LOCK_MODE_UNLOCKED; + } + + @Override + public void onViewDragStateChanged(int state) { + updateDrawerState(mAbsGravity, state, mDragger.getCapturedView()); + } + + @Override + public void onViewPositionChanged(View changedView, int left, int top, int dx, int dy) { + float offset; + final int childWidth = changedView.getWidth(); + + // This reverses the positioning shown in onLayout. + if (checkDrawerViewAbsoluteGravity(changedView, Gravity.LEFT)) { + offset = (float) (childWidth + left) / childWidth; + } else { + final int width = getWidth(); + offset = (float) (width - left) / childWidth; + } + setDrawerViewOffset(changedView, offset); + changedView.setVisibility(offset == 0 ? INVISIBLE : VISIBLE); + invalidate(); + } + + @Override + public void onViewCaptured(View capturedChild, int activePointerId) { + final LayoutParams lp = (LayoutParams) capturedChild.getLayoutParams(); + lp.isPeeking = false; + + closeOtherDrawer(); + } + + private void closeOtherDrawer() { + final int otherGrav = mAbsGravity == Gravity.LEFT ? Gravity.RIGHT : Gravity.LEFT; + final View toClose = findDrawerWithGravity(otherGrav); + if (toClose != null) { + closeDrawer(toClose); + } + } + + @Override + public void onViewReleased(View releasedChild, float xvel, float yvel) { + // Offset is how open the drawer is, therefore left/right values + // are reversed from one another. + final float offset = getDrawerViewOffset(releasedChild); + final int childWidth = releasedChild.getWidth(); + + int left; + if (checkDrawerViewAbsoluteGravity(releasedChild, Gravity.LEFT)) { + left = xvel > 0 || xvel == 0 && offset > 0.5f ? 0 : -childWidth; + } else { + final int width = getWidth(); + left = xvel < 0 || xvel == 0 && offset > 0.5f ? width - childWidth : width; + } + + mDragger.settleCapturedViewAt(left, releasedChild.getTop()); + invalidate(); + } + + @Override + public void onEdgeTouched(int edgeFlags, int pointerId) { + postDelayed(mPeekRunnable, PEEK_DELAY); + } + + private void peekDrawer() { + final View toCapture; + final int childLeft; + final int peekDistance = mDragger.getEdgeSize(); + final boolean leftEdge = mAbsGravity == Gravity.LEFT; + if (leftEdge) { + toCapture = findDrawerWithGravity(Gravity.LEFT); + childLeft = (toCapture != null ? -toCapture.getWidth() : 0) + peekDistance; + } else { + toCapture = findDrawerWithGravity(Gravity.RIGHT); + childLeft = getWidth() - peekDistance; + } + // Only peek if it would mean making the drawer more visible and the drawer isn't locked + if (toCapture != null && ((leftEdge && toCapture.getLeft() < childLeft) || + (!leftEdge && toCapture.getLeft() > childLeft)) && + getDrawerLockMode(toCapture) == LOCK_MODE_UNLOCKED) { + final LayoutParams lp = (LayoutParams) toCapture.getLayoutParams(); + mDragger.smoothSlideViewTo(toCapture, childLeft, toCapture.getTop()); + lp.isPeeking = true; + invalidate(); + + closeOtherDrawer(); + + cancelChildViewTouch(); + } + } + + @Override + public boolean onEdgeLock(int edgeFlags) { + if (ALLOW_EDGE_LOCK) { + final View drawer = findDrawerWithGravity(mAbsGravity); + if (drawer != null && !isDrawerOpen(drawer)) { + closeDrawer(drawer); + } + return true; + } + return false; + } + + @Override + public void onEdgeDragStarted(int edgeFlags, int pointerId) { + final View toCapture; + if ((edgeFlags & ViewDragHelper.EDGE_LEFT) == ViewDragHelper.EDGE_LEFT) { + toCapture = findDrawerWithGravity(Gravity.LEFT); + } else { + toCapture = findDrawerWithGravity(Gravity.RIGHT); + } + + if (toCapture != null && getDrawerLockMode(toCapture) == LOCK_MODE_UNLOCKED) { + mDragger.captureChildView(toCapture, pointerId); + } + } + + @Override + public int getViewHorizontalDragRange(View child) { + return isDrawerView(child) ? child.getWidth() : 0; + } + + @Override + public int clampViewPositionHorizontal(View child, int left, int dx) { + if (checkDrawerViewAbsoluteGravity(child, Gravity.LEFT)) { + return Math.max(-child.getWidth(), Math.min(left, 0)); + } else { + final int width = getWidth(); + return Math.max(width - child.getWidth(), Math.min(left, width)); + } + } + + @Override + public int clampViewPositionVertical(View child, int top, int dy) { + return child.getTop(); + } + } +*/ +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/MenuDrawable.java b/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/MenuDrawable.java new file mode 100644 index 000000000..221b1fd2b --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Views/ActionBar/MenuDrawable.java @@ -0,0 +1,116 @@ +/* + * This is the source code of Telegram for Android v. 1.7.x. + * It is licensed under GNU GPL v. 2 or later. + * You should have received a copy of the license in this archive (see LICENSE). + * + * Copyright Nikolai Kudashov, 2013-2014. + */ + +package org.telegram.ui.Views.ActionBar; + +import android.graphics.Canvas; +import android.graphics.ColorFilter; +import android.graphics.Paint; +import android.graphics.drawable.Drawable; +import android.view.animation.DecelerateInterpolator; + +import org.telegram.android.AndroidUtilities; + +public class MenuDrawable extends Drawable { + + private Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); + private boolean reverseAngle = false; + private long lastFrameTime; + private boolean animationInProgress; + private float finalRotation; + private float currentRotation; + private int currentAnimationTime; + private DecelerateInterpolator interpolator = new DecelerateInterpolator(); + + public MenuDrawable() { + super(); + paint.setColor(0xffffffff); + paint.setStrokeWidth(AndroidUtilities.dp(2)); + } + + public void setRotation(float rotation, boolean animated) { + lastFrameTime = 0; + if (currentRotation == 1) { + reverseAngle = true; + } else if (currentRotation == 0) { + reverseAngle = false; + } + lastFrameTime = 0; + if (animated) { + if (currentRotation < rotation) { + currentAnimationTime = (int) (currentRotation * 300); + } else { + currentAnimationTime = (int) ((1.0f - currentRotation) * 300); + } + lastFrameTime = System.currentTimeMillis(); + finalRotation = rotation; + } else { + finalRotation = currentRotation = rotation; + } + invalidateSelf(); + } + + @Override + public void draw(Canvas canvas) { + if (currentRotation != finalRotation) { + if (lastFrameTime != 0) { + long dt = System.currentTimeMillis() - lastFrameTime; + + currentAnimationTime += dt; + if (currentAnimationTime >= 300) { + currentRotation = finalRotation; + } else { + if (currentRotation < finalRotation) { + currentRotation = interpolator.getInterpolation(currentAnimationTime / 300.0f) * finalRotation; + } else { + currentRotation = 1.0f - interpolator.getInterpolation(currentAnimationTime / 300.0f); + } + } + } + lastFrameTime = System.currentTimeMillis(); + invalidateSelf(); + } + + canvas.save(); + canvas.translate(getIntrinsicWidth() / 2, getIntrinsicHeight() / 2); + canvas.rotate(currentRotation * (reverseAngle ? -180 : 180)); + canvas.drawLine(-AndroidUtilities.dp(9), 0, AndroidUtilities.dp(9) - AndroidUtilities.dp(1) * currentRotation, 0, paint); + float endYDiff = AndroidUtilities.dp(5) * (1 - Math.abs(currentRotation)) - AndroidUtilities.dp(0.5f) * Math.abs(currentRotation); + float endXDiff = AndroidUtilities.dp(9) - AndroidUtilities.dp(0.5f) * Math.abs(currentRotation); + float startYDiff = AndroidUtilities.dp(5) + AndroidUtilities.dp(3.5f) * Math.abs(currentRotation); + float startXDiff = -AndroidUtilities.dp(9) + AndroidUtilities.dp(8.5f) * Math.abs(currentRotation); + canvas.drawLine(startXDiff, -startYDiff, endXDiff, -endYDiff, paint); + canvas.drawLine(startXDiff, startYDiff, endXDiff, endYDiff, paint); + canvas.restore(); + } + + @Override + public void setAlpha(int alpha) { + + } + + @Override + public void setColorFilter(ColorFilter cf) { + + } + + @Override + public int getOpacity() { + return 0; + } + + @Override + public int getIntrinsicWidth() { + return AndroidUtilities.dp(24); + } + + @Override + public int getIntrinsicHeight() { + return AndroidUtilities.dp(24); + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Views/AvatarDrawable.java b/TMessagesProj/src/main/java/org/telegram/ui/Views/AvatarDrawable.java new file mode 100644 index 000000000..24922c0c6 --- /dev/null +++ b/TMessagesProj/src/main/java/org/telegram/ui/Views/AvatarDrawable.java @@ -0,0 +1,145 @@ +/* + * This is the source code of Telegram for Android v. 1.7.x. + * It is licensed under GNU GPL v. 2 or later. + * You should have received a copy of the license in this archive (see LICENSE). + * + * Copyright Nikolai Kudashov, 2013-2014. + */ + +package org.telegram.ui.Views; + +import android.graphics.Canvas; +import android.graphics.ColorFilter; +import android.graphics.Paint; +import android.graphics.Rect; +import android.graphics.drawable.Drawable; +import android.text.Layout; +import android.text.StaticLayout; +import android.text.TextPaint; + +import org.telegram.android.AndroidUtilities; +import org.telegram.messenger.FileLog; +import org.telegram.messenger.TLRPC; + +public class AvatarDrawable extends Drawable { + + private static Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); + private static TextPaint namePaint; + private static int[] arrColors = {0xffe56555, 0xfff28c48, 0xffeec764, 0xff76c84d, 0xff5fbed5, 0xff549cdd, 0xff8e85ee, 0xfff2749a}; + + private int color; + private StaticLayout textLayout; + private float textWidth; + private float textHeight; + + public AvatarDrawable() { + super(); + + if (namePaint == null) { + namePaint = new TextPaint(Paint.ANTI_ALIAS_FLAG); + namePaint.setColor(0xffffffff); + namePaint.setTextSize(AndroidUtilities.dp(20)); + } + } + + public AvatarDrawable(TLRPC.User user) { + this(); + if (user != null) { + setInfo(user.id, user.first_name, user.last_name, false); + } + } + + public AvatarDrawable(TLRPC.Chat chat) { + this(); + if (chat != null) { + setInfo(chat.id, chat.title, null, chat.id < 0); + } + } + + public static int getColorForId(int id) { + return arrColors[Math.abs(id) % arrColors.length]; + } + + public void setInfo(TLRPC.User user) { + if (user != null) { + setInfo(user.id, user.first_name, user.last_name, false); + } + } + + public void setInfo(TLRPC.Chat chat) { + if (chat != null) { + setInfo(chat.id, chat.title, null, chat.id < 0); + } + } + + public void setInfo(int id, String firstName, String lastName, boolean isBroadcast) { + color = arrColors[Math.abs(id) % arrColors.length]; + + String text = ""; + if (firstName != null && firstName.length() > 0) { + text += firstName.substring(0, 1); + } + if (lastName != null && lastName.length() > 0) { + text += lastName.substring(0, 1); + } + if (text.length() > 0) { + text = text.toUpperCase(); + try { + textLayout = new StaticLayout(text, namePaint, AndroidUtilities.dp(100), Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false); + if (textLayout.getLineCount() > 0) { + textWidth = textLayout.getLineWidth(0); + textHeight = textLayout.getLineBottom(0); + } + } catch (Exception e) { + FileLog.e("tmessages", e); + } + } else { + textLayout = null; + } + } + + @Override + public void draw(Canvas canvas) { + Rect bounds = getBounds(); + if (bounds == null) { + return; + } + int size = bounds.right - bounds.left; + paint.setColor(color); + + canvas.save(); + canvas.translate(bounds.left, bounds.top); + canvas.drawCircle(size / 2, size / 2, size / 2, paint); + + if (textLayout != null) { + canvas.translate((size - textWidth) / 2, (size - textHeight) / 2); + textLayout.draw(canvas); + } + canvas.restore(); + } + + @Override + public void setAlpha(int alpha) { + + } + + @Override + public void setColorFilter(ColorFilter cf) { + + } + + @Override + public int getOpacity() { + return 0; + } + + @Override + public int getIntrinsicWidth() { + return 0; + } + + @Override + public int getIntrinsicHeight() { + return 0; + } +} diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Views/AvatarUpdater.java b/TMessagesProj/src/main/java/org/telegram/ui/Views/AvatarUpdater.java index 1fe286753..7eafab4c0 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Views/AvatarUpdater.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Views/AvatarUpdater.java @@ -146,7 +146,7 @@ public class AvatarUpdater implements NotificationCenter.NotificationCenterDeleg if (id == NotificationCenter.FileDidUpload) { String location = (String)args[0]; if (uploadingAvatar != null && location.equals(uploadingAvatar)) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().removeObserver(AvatarUpdater.this, NotificationCenter.FileDidUpload); @@ -165,7 +165,7 @@ public class AvatarUpdater implements NotificationCenter.NotificationCenterDeleg } else if (id == NotificationCenter.FileDidFailUpload) { String location = (String)args[0]; if (uploadingAvatar != null && location.equals(uploadingAvatar)) { - AndroidUtilities.RunOnUIThread(new Runnable() { + AndroidUtilities.runOnUIThread(new Runnable() { @Override public void run() { NotificationCenter.getInstance().removeObserver(AvatarUpdater.this, NotificationCenter.FileDidUpload); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Views/BackupImageView.java b/TMessagesProj/src/main/java/org/telegram/ui/Views/BackupImageView.java index b584dcdaf..f311f94b5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Views/BackupImageView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Views/BackupImageView.java @@ -42,32 +42,32 @@ public class BackupImageView extends View { imageReceiver = new ImageReceiver(this); } - public void setImage(TLRPC.FileLocation path, String filter, int placeholder) { + public void setImage(TLRPC.FileLocation path, String filter, Drawable placeholder) { setImage(path, null, filter, placeholder, null, 0); } public void setImage(TLRPC.FileLocation path, String filter, Bitmap placeholderBitmap) { - setImage(path, null, filter, 0, placeholderBitmap, 0); + setImage(path, null, filter, null, placeholderBitmap, 0); } - public void setImage(TLRPC.FileLocation path, String filter, int placeholder, int size) { + public void setImage(TLRPC.FileLocation path, String filter, Drawable placeholder, int size) { setImage(path, null, filter, placeholder, null, size); } public void setImage(TLRPC.FileLocation path, String filter, Bitmap placeholderBitmap, int size) { - setImage(path, null, filter, 0, placeholderBitmap, size); + setImage(path, null, filter, null, placeholderBitmap, size); } - public void setImage(String path, String filter, int placeholder) { + public void setImage(String path, String filter, Drawable placeholder) { setImage(null, path, filter, placeholder, null, 0); } - public void setImage(TLRPC.FileLocation path, String httpUrl, String filter, int placeholder, Bitmap placeholderBitmap, int size) { + public void setImage(TLRPC.FileLocation path, String httpUrl, String filter, Drawable placeholder, Bitmap placeholderBitmap, int size) { Drawable placeholderDrawable = null; if (placeholderBitmap != null) { placeholderDrawable = new BitmapDrawable(null, placeholderBitmap); - } else if (placeholder != 0) { - placeholderDrawable = getResources().getDrawable(placeholder); + } else if (placeholder != null) { + placeholderDrawable = placeholder; } imageReceiver.setImage(path, httpUrl, filter, placeholderDrawable, size, false); } @@ -80,6 +80,10 @@ public class BackupImageView extends View { imageReceiver.setImageBitmap(getResources().getDrawable(resId)); } + public void setImageDrawable(Drawable drawable) { + imageReceiver.setImageBitmap(drawable); + } + @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Views/ChatActivityEnterView.java b/TMessagesProj/src/main/java/org/telegram/ui/Views/ChatActivityEnterView.java index 3959d24ce..5c174a2ad 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Views/ChatActivityEnterView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Views/ChatActivityEnterView.java @@ -21,6 +21,7 @@ import android.os.PowerManager; import android.text.Editable; import android.text.TextWatcher; import android.text.style.ImageSpan; +import android.view.Gravity; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.Surface; @@ -28,7 +29,6 @@ import android.view.View; import android.view.WindowManager; import android.view.animation.AccelerateDecelerateInterpolator; import android.view.inputmethod.EditorInfo; -import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import android.widget.FrameLayout; import android.widget.ImageButton; @@ -529,7 +529,6 @@ public class ChatActivityEnterView implements NotificationCenter.NotificationCen } private void showEmojiPopup(boolean show) { - InputMethodManager localInputMethodManager = (InputMethodManager)ApplicationLoader.applicationContext.getSystemService(Context.INPUT_METHOD_SERVICE); if (show) { if (emojiPopup == null) { createEmojiPopup(); @@ -553,7 +552,7 @@ public class ChatActivityEnterView implements NotificationCenter.NotificationCen emojiPopup.setWidth(View.MeasureSpec.makeMeasureSpec(AndroidUtilities.displaySize.x, View.MeasureSpec.EXACTLY)); } - emojiPopup.showAtLocation(parentActivity.getWindow().getDecorView(), 83, 0, 0); + emojiPopup.showAtLocation(parentActivity.getWindow().getDecorView(), Gravity.BOTTOM | Gravity.LEFT, 0, 0); if (!keyboardVisible) { if (sizeNotifierRelativeLayout != null) { sizeNotifierRelativeLayout.setPadding(0, 0, 0, currentHeight); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Views/ClippingImageView.java b/TMessagesProj/src/main/java/org/telegram/ui/Views/ClippingImageView.java index 543272ba2..7ab955fc4 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Views/ClippingImageView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Views/ClippingImageView.java @@ -16,6 +16,7 @@ import android.graphics.Rect; import android.view.View; import org.telegram.messenger.FileLog; +import org.telegram.ui.AnimationCompat.ViewProxy; public class ClippingImageView extends View { private int clipBottom; @@ -59,12 +60,16 @@ public class ClippingImageView extends View { } public void onDraw(Canvas canvas) { + if (getVisibility() == GONE || getVisibility() == INVISIBLE) { + return; + } if (bmp != null) { - if (drawListener != null && getScaleY() != 1) { + float scaleY = ViewProxy.getScaleY(this); + if (drawListener != null && scaleY != 1) { drawListener.onDraw(); } canvas.save(); - canvas.clipRect(clipLeft / getScaleY(), clipTop / getScaleY(), getWidth() - clipRight / getScaleY(), getHeight() - clipBottom / getScaleY()); + canvas.clipRect(clipLeft / scaleY, clipTop / scaleY, getWidth() - clipRight / scaleY, getHeight() - clipBottom / scaleY); drawRect.set(0, 0, getWidth(), getHeight()); try { canvas.drawBitmap(this.bmp, null, drawRect, this.paint); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Views/EmojiView.java b/TMessagesProj/src/main/java/org/telegram/ui/Views/EmojiView.java index 5664a1cc0..5c959f5ae 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Views/EmojiView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Views/EmojiView.java @@ -124,8 +124,8 @@ public class EmojiView extends LinearLayout { tabs.setViewPager(pager); tabs.setShouldExpand(true); tabs.setIndicatorColor(0xff33b5e5); - tabs.setIndicatorHeight(AndroidUtilities.dpf(2.0f)); - tabs.setUnderlineHeight(AndroidUtilities.dpf(2.0f)); + tabs.setIndicatorHeight(AndroidUtilities.dp(2.0f)); + tabs.setUnderlineHeight(AndroidUtilities.dp(2.0f)); tabs.setUnderlineColor(0x66000000); tabs.setTabBackground(0); LinearLayout localLinearLayout = new LinearLayout(getContext()); @@ -152,7 +152,7 @@ public class EmojiView extends LinearLayout { localTextView.setGravity(17); recentsWrap.addView(localTextView); views.get(0).setEmptyView(localTextView); - addView(localLinearLayout, new LinearLayout.LayoutParams(-1, AndroidUtilities.dpf(48.0f))); + addView(localLinearLayout, new LinearLayout.LayoutParams(-1, AndroidUtilities.dp(48.0f))); addView(pager); loadRecents(); if (Emoji.data[0] == null || Emoji.data[0].length == 0) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Views/ProgressView.java b/TMessagesProj/src/main/java/org/telegram/ui/Views/ProgressView.java index 671c858f2..6dc14ac36 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Views/ProgressView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Views/ProgressView.java @@ -20,7 +20,7 @@ public class ProgressView { public float currentProgress = 0; public int width; public int height; - public float progressHeight = AndroidUtilities.dpf(2.0f); + public float progressHeight = AndroidUtilities.dp(2.0f); public ProgressView() { innerPaint = new Paint(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Views/SizeNotifierRelativeLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Views/SizeNotifierRelativeLayout.java index ffe96479a..b34b31170 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Views/SizeNotifierRelativeLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Views/SizeNotifierRelativeLayout.java @@ -12,6 +12,7 @@ import android.content.Context; import android.graphics.Canvas; import android.graphics.Rect; import android.graphics.drawable.Drawable; +import android.view.View; import android.widget.RelativeLayout; import org.telegram.android.AndroidUtilities; @@ -55,7 +56,8 @@ public class SizeNotifierRelativeLayout extends RelativeLayout { protected void onLayout(boolean changed, int l, int t, int r, int b) { super.onLayout(changed, l, t, r, b); if (delegate != null) { - int usableViewHeight = this.getRootView().getHeight() - AndroidUtilities.statusBarHeight; + View rootView = this.getRootView(); + int usableViewHeight = rootView.getHeight() - AndroidUtilities.statusBarHeight - AndroidUtilities.getViewInset(rootView); this.getWindowVisibleDisplayFrame(rect); int keyboardHeight = usableViewHeight - (rect.bottom - rect.top); delegate.onSizeChanged(keyboardHeight); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Views/SlidingTabView.java b/TMessagesProj/src/main/java/org/telegram/ui/Views/SlidingTabView.java deleted file mode 100644 index c4fdbc44c..000000000 --- a/TMessagesProj/src/main/java/org/telegram/ui/Views/SlidingTabView.java +++ /dev/null @@ -1,153 +0,0 @@ -/* - * This is the source code of Telegram for Android v. 1.7.x. - * It is licensed under GNU GPL v. 2 or later. - * You should have received a copy of the license in this archive (see LICENSE). - * - * Copyright Nikolai Kudashov, 2013-2014. - */ - -package org.telegram.ui.Views; - -import android.content.Context; -import android.graphics.Canvas; -import android.graphics.Paint; -import android.graphics.Typeface; -import android.util.AttributeSet; -import android.view.Gravity; -import android.view.View; -import android.view.animation.DecelerateInterpolator; -import android.widget.LinearLayout; -import android.widget.TextView; - -import org.telegram.android.AndroidUtilities; -import org.telegram.messenger.R; - -public class SlidingTabView extends LinearLayout { - - public static interface SlidingTabViewDelegate { - public abstract void didSelectTab(int tab); - } - - private SlidingTabViewDelegate delegate; - private int selectedTab = 0; - private int tabCount = 0; - private float tabWidth = 0; - private float tabX = 0; - private float animateTabXTo = 0; - private Paint paint = new Paint(); - private long startAnimationTime = 0; - private long totalAnimationDiff = 0; - private float startAnimationX = 0; - private DecelerateInterpolator interpolator; - - private void init() { - setBackgroundResource(R.color.header); - setOrientation(HORIZONTAL); - setWeightSum(100); - interpolator = new DecelerateInterpolator(); - } - - public SlidingTabView(Context context) { - super(context); - init(); - } - - public SlidingTabView(Context context, AttributeSet attrs) { - super(context, attrs); - init(); - } - - public SlidingTabView(Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - init(); - } - - public SlidingTabView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - init(); - } - - public void addTextTab(final int position, String title) { - TextView tab = new TextView(getContext()); - tab.setText(title); - tab.setFocusable(true); - tab.setGravity(Gravity.CENTER); - tab.setSingleLine(); - tab.setTextColor(0xffffffff); - tab.setTextSize(12); - tab.setTypeface(Typeface.DEFAULT_BOLD); - tab.setBackgroundResource(R.drawable.bar_selector); - - tab.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - didSelectTab(position); - } - }); - addView(tab); - LayoutParams layoutParams = (LayoutParams)tab.getLayoutParams(); - layoutParams.height = LayoutParams.MATCH_PARENT; - layoutParams.width = 0; - layoutParams.weight = 50; - tab.setLayoutParams(layoutParams); - - tabCount++; - } - - public void setDelegate(SlidingTabViewDelegate delegate) { - this.delegate = delegate; - } - - public int getSeletedTab() { - return selectedTab; - } - - private void didSelectTab(int tab) { - if (selectedTab == tab) { - return; - } - selectedTab = tab; - animateToTab(tab); - if (delegate != null) { - delegate.didSelectTab(tab); - } - } - - private void animateToTab(int tab) { - animateTabXTo = tab * tabWidth; - startAnimationX = tabX; - totalAnimationDiff = 0; - startAnimationTime = System.currentTimeMillis(); - invalidate(); - } - - @Override - protected void onLayout(boolean changed, int l, int t, int r, int b) { - super.onLayout(changed, l, t, r, b); - tabWidth = (r - l) / (float)tabCount; - animateTabXTo = tabX = tabWidth * selectedTab; - } - - @Override - protected void onDraw(Canvas canvas) { - paint.setColor(0xaaffffff); - for (int a = 0; a < tabCount - 1; a++) { - canvas.drawRect(tabWidth + a * tabWidth - 1, AndroidUtilities.dp(12), tabWidth + a * tabWidth + 1, getHeight() - AndroidUtilities.dp(12), paint); - } - - if (tabX != animateTabXTo) { - long dt = System.currentTimeMillis() - startAnimationTime; - startAnimationTime = System.currentTimeMillis(); - totalAnimationDiff += dt; - if (totalAnimationDiff > 200) { - totalAnimationDiff = 200; - tabX = animateTabXTo; - } else { - tabX = startAnimationX + interpolator.getInterpolation(totalAnimationDiff / 200.0f) * (animateTabXTo - startAnimationX); - invalidate(); - } - } - - canvas.drawRect(tabX, getHeight() - AndroidUtilities.dp(4), (tabX + tabWidth), getHeight(), paint); - } -} diff --git a/TMessagesProj/src/main/res/anim/popup_in.xml b/TMessagesProj/src/main/res/anim/popup_in.xml new file mode 100644 index 000000000..42a4bb0bc --- /dev/null +++ b/TMessagesProj/src/main/res/anim/popup_in.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/anim/popup_out.xml b/TMessagesProj/src/main/res/anim/popup_out.xml new file mode 100644 index 000000000..0975248a7 --- /dev/null +++ b/TMessagesProj/src/main/res/anim/popup_out.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/drawable-hdpi/broadcast_aqua.png b/TMessagesProj/src/main/res/drawable-hdpi/broadcast_aqua.png deleted file mode 100755 index 69e9ee75875f5bc8929cfa83a85f0de73601fa42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3609 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 diff --git a/TMessagesProj/src/main/res/drawable-hdpi/broadcast_blue.png b/TMessagesProj/src/main/res/drawable-hdpi/broadcast_blue.png deleted file mode 100755 index 8a41f2a39a5204a127daa0bd67ca3d7a9b1101be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3814 zcmaJ^2{@E%8y;)2l#+EJX31en3F^iee3`MqVAtW4>5Kc}++Q>F? zY*B<{$(A*1l&#c1&Z++Y`mewLyT0#xm+!vs=Xsy^xvuy566|bG@obe@5x~f{h_Y2IhMne1Q zI>61p+hUCL!TuBqQ5OQCQmHCbH5CHM4+7KC(b?BfRaIsnl*u7@3X-ObC(Ha$fMdug z5|&8867ayjBGQKtOwk83JpE@0IO0!PJo$T=7y*OOkVFVf1-ieaA3z(M{}09Cexk_~ z2h6|y{hz{Qrw}3r;(#F&f=MXG#`((ZnAo~-DfT^P< zAn$_3qX|^9!ryos8(jpROhMvN7zA7&%urClV$r%fs_IZPxUssrs);rXW~OeUr2#Y3 zQ8m`lG*MTBYpDLekMK!&&YNXBdv>brS?D|E_Vdn z*oij02Iu)^Ov>vw&TL*<)u5%cZt3tKOrNB5^zz@3pHy>_w zmY*xI@RzL&Wk;0kc1>~@-CU^f*m^p?*HD)EZFkErUHgTB08=E$0wfFK109TDHDU&s zQnmkSe$KW?fB)$64j9~eU6eiLeeG_0q7oOo8yIos#n z8}A#n#O+UN4K>t)j47qYw-r0zJAB2Lr&1{~FI%_@^c*4EgID%e-mp+_y)bOVvLQcC z_zv+jdt48^01fL~(u*~})COYWk`03Tlso@1TdrM*(rSu0h^*SkA3RWBl?BttyK{%n z{<`1D+2lVKKY<&lgyJ4C&@&5}&Q)H(FsT`;;@kDmJ-j$C4KsvM_yU~*n#A>PM1O6W zoQD=7xf8iRg;e#O@GH+N_p^}<{rK^0fC@;#Medd>YfWVFwR+D`Cjgu6co<)kTA#ml?Y@I=U#mTOnm6VlB}pp8|U(0y6hd^tfJk z=0#4dxwbleff7qG$YHnhb)6fk0-jg)C$F%AA}QO{MQ;vitKVO=`?0WPYB75?i##*i z?9eu+!;rZ3NBE5-HU69;mMCUQtEV?F>4i=?9o_X#-A}xyi2lYgJ~Wsqk>Bo#kdap! zm6UmtoK%Mbcud_Qxu&ih?B0pxSc=D18#29`<7K`H;y8Z_Uy^f1P>{bz^odxFk2HIz z+@xvET~)h4mI0$?frvsy)vt+-)vqS|4#^+jH@hp}ofQH`oP4!Lu316Vvba z+c|WWmbG6&zx;+%Z|!;wjn7f~1pO@6dv46Z_ATf@#__##ty1i~^{f#zZ#C*SQA?dl z!5E_|l0*uSs8({Q-zdv*tCi*IeFf{KPczVXQnrDMS4`g|`jA-?%Y(khymDG{-IHS( z>L1v2BBZU~IbOQL+nv(z`-dWlaMK2K1dvLU39Supmdg~QnaP#MbQu~e$h-vEBGwSj zrG4!W(tRD$sN?Fpf81PlRBqTY7q&MQHq8&pV=tOY#!E<%OvfcaC4PZCe zv4PhWcNfl}v_II>A@Z-cBLwSyGvszn3!({LjH>w%y&Vld1dlkIK4yQsgi^Tx&$(|4 z4IDANx!i!;WJ*Q(-%ZS4^yK0e2|w(^{mx*WxtU)yeUSKm_0g%)EEReEk8w(UL2WdI z^k#UdJ#W;UVg0%A#;R{+y{8J=Goypkr(Mi!pSCB+Ry<4N8{nE6Yme6Gb`=ZXS#b8_ zuCon}HxkV=7Iu$T~l)L0n0miyK<01Zx>IC1@vzbW;11>>% z3RWL~y0|M*nIgPet5E*+w!RTks&RC2a<9wh`tcNmZ&Qf$$W*FtczYe%WVW1E$8={) z*ORdHR$kBO9IA9=DfvW*c<)@cm`VDXH=F^MF-P_UA}2JG6Cpl5{DxofsQd&Ct=DRP zTyv5A5!aW+*PAn%wdZa==+c`**zi_gz|`kb%aH*SCb_qSle}Id7Y$Ggnn>kdK=XqwOs;sXrwxfS zC31ePnS)$$f7oWAeR5bj{iE@v^;(!wcTH^uWX}3^TY|5wWE0P;s_}zU8#o2mYgF#& zVh61D!3h(G-8X+_x{Un=&p1K9zB|1O&xNwdUZZv`|XDQwDCkXI{$FU z5v#SrcuOESytavI<)(HA`5L-RiCMNz;V6{Yw=c7xg-y?L??rUI=aVxXwHJ4|wFpgG z>odxEl{I}MqpSSRS)Gd4Cy!J0WMVp`R-D$(_;boiz-WFt2NESA^oU5Qzt-{@hx>_w zGc&<{Cv$cY>`!XBb@P~xUn5l?rf=FgBQ5P;m{>Nkos|i?&r_!#y8DPn8zi*I+d$Y_ z+dVOiy}HIflUJ;I!R)ykm!N1~D0sTV*0pJCVEI)tNyt$9Lv*PJ?sa6|DJpXEb9B1+ z<;x4nqbtOmnWJLP9+;ciSYGX@p-i`J|I(+odjJc_RE6PYgIl>QJ{ilA7`&q{R hcX3P6Px*Eb3W}9AKTy+=O5OkSM3~vaD@?qj{slRwjw=8F diff --git a/TMessagesProj/src/main/res/drawable-hdpi/broadcast_green.png b/TMessagesProj/src/main/res/drawable-hdpi/broadcast_green.png deleted file mode 100755 index 24c5329b1eda0bcc5714ccf0d07db1c376d27d74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3823 zcmaJ^2{=@3`yWeo8M3F0AvDn*v8$x;+)QHTs3B78_hP24Uu>k->6Iv+FCkRgkdE@;FAx7ZECk9gZ_q4gN(rc zIOT@11DTV^c#w|fVGSQGC=>*TYeKbk;Bcrq2&M&vL9|#mTm!0&(19ahx}cvIm}QOZ z>xXbaS^l)e8X18DsMJsd1QH$|t{Hw*RQ|?eFbH%Ag^COD!J|<|V3vX=f#8eKgX-$Rk(OrKFf%JjgC)fASz99d|g|M7~><0G#1p3z$D|>dkztfgA_?`Ip5LUL6S!oRxlcNFv z{61(D(up?om&Z)RaEn;8I)I0hCFqiS9eN9lw)jCzrNa$%> zv*iQNVSSoNyz%F1T;e@`&?OZ%T0u67_ujm7w0`)`-91-4Rkd9_ zgml+W+XO^8S4LCVV$(q-%7vF^1Iw%9vo3&T(;qw*l!|z^y10BpNbmwPG-xMNi*FGw z3n+G{dXbj0F@p6h3o0uJ&ne{EDnCK)P7wv*-LyxS`Zku#hYG#S#ZR z#-(D2%e%sPOfty;C&~zEFlQ9$#XX~8>9?!hHL8Fr<8O|7gMpb_X_;s3mHcZ-6?`8R zCAeF2={2*T`1FU*r7Rvat`}iUWB6_Xv>$Yg)W5A6yR%h$qIRE3!>S^Y5`z6PVIS^s zH}C0sU`v5bQ`0NO?aOJm+>epfg?diUNyRnGAF@Ed_nV#rvp{x)OkwMW*DAjDk$+FZ|#|WoAz&_q5D!M1eWTB0ZkRA z$fd_}YB!?d$SHrn%)FFu+!qKOM8DUt<=b#+uhA^UWAI9%-PlBI;%fV^@GYR6Zr9Ctm|r?h=|~Vn66SX?jVO!8Q8+0Uj~TXtV8;u|ol6>(tQoklc zs7`%d0|**X=3^H%emu}zcs6w914vw$Sv~G-^PNjPNnj~>)5_D^xAWo#2n}Z1{(xkx zRV+8tll%&j8~ro+1!K6?CoSOTlu?2$Y$u?L&XWo#i%;)HXIE+(v1{`t0+KX<+kZ8RYq-`lbT}} zm^cSeKJ-uoi&Ot*2WWmd5}My#Kk!ivdf~gY_U7~bpq?wdbdaI`tFKEi_Bg&=>6TbF zaJ)N_{raBv^-s?yl{pK2>&cpJaU-zEEuM$(rvKUkT{(n|ibzBY$4m*Ah;K?4p{ir_ zZhq1~FXzAh^{eJRZcx=AFm~$Vyp)t#Ja6_x2k@tS@x{h3+nx=FOzmWOrb5YWcZ(j< z_03dm1K8JuNds!l9$zz3Ss^IjLiGEkzqA#S6);&?NK%U4yta4Q><$p`q!>wS&U#Ae z5%SkVn*^Lk6a8*~Q>f&5YRu5f*mTT|G{J1yzy2yN8ssMD>>+`iZhza8Jv})UFv4-s zWLk>vHpccEYEZcSPA0OH(BhFWc>Pp6 z&Hs|*{y>m@buhTuU{S_caO&+Uoq=-40W!5J^kKKO8&ZLd@A(zu(-yo&*v^x$Cgc>j zxTBBD2|cC<^}FqHd%yqSq`m7!4Nz714{t4mN`wv%{WTdg6R)8f4g#wHKO2sYD z(8}1Yq~~hIz?1E%KG3BxLXANh=E+L_BXwhjXr|!zIN0UV=$>KOq$hc?RwYCP53s)u z@+o*=601IStL0E$sx$Nht&q=6VN=o?%7heAhLoO{eqaNQE_dzUW7npLPSFy$uh1BC zohl(2w7-ih5oP{HP>eoWQINkfBH~ighCL~K-s!4u*||ndu`ll`jgHLA->e_VeGIYm z?d`h$UEW)}{uu8ApoJWhGecA-YbfE$ULnPYCbKeO;TOIK7L)IdJL3X@#-GcT`pQD? zdM(Rnf~G1Xxq|vK;6*g)q=Grw`BezwVkbT&YT7(2U5|RryS5u}Vio+xA@^kwB?5q_ zSM5+l_lUGo%H+ga$xAM8tg46cJ)CO2oQUkbF@LRzmrERUGlUHVL|ss-b@H$R#>`XJ zM68iXu>q$LhS+k>=>hJuQm{%M3oX^ZUNl$X1YWFSdB1SJ{V)S~Wn6yV(~0-)5X0)d zh9O1a-dcuL-e6#h|K&T(ZT(Z*O|$DWQxgjljwsm^hmJF)WPmz$&#T`b@q-sBsMBJtyZV5^8^!z5 zj?!y6AU^xtLH(qp=+*@R$Wf1;`L2(-5mz_<{YhSXOIzy z0|%5&QZ+M$y^d>YY77i4xyP+;FY^!DcN{yYNu?n%9a7$N<7ZCm5&PkwM->~E6;D&K z?yYzB$H2;k0zr@aZzJ4PwI|NY51OfKmzO`8SAyx*_b#!; z+TH!QQJ2GkOE^1E(84BIhQQADaRcLl`;#tPrR5izvYl)cW;FMA>ju6KX{hf#9XnP+ zP&q0_s7Wuch2~j-RU@3ucwf|vyLk1=HImw#YH?EE*WHE6n(>@Dvae4KHJt8)zUSn+ zrlZCa=xTL0u&3*z;eh5#hpTN|l9S$u{n&{t9;4j-kq|WUY>`5&Dw4Wbb+ByjBgRxi zHW}kz;+i9LwQMdFJ#PP`p0~dt+VSrF*ER?I3X(=1Ipoq|>B^4IVzoD@1tq;RvYhsz zJEPZ4)$}ZHJf&iDa{VYXrythEi^emIW)_g2K3^s19w>NJa8C6>*SaF=av!budW9;p-XM=YsS9vw$yLi*PHKRUsVg3G2bn2e^<3!*0R4#-ns*=J9{Jnno3TYM&1k2yT71l3oPocnOE$;0nL4o A=>Px# diff --git a/TMessagesProj/src/main/res/drawable-hdpi/broadcast_orange.png b/TMessagesProj/src/main/res/drawable-hdpi/broadcast_orange.png deleted file mode 100755 index a942fc9ced869e083521277578be6906ffad7570..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3789 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 J+vG&Ve*g~=omKz< diff --git a/TMessagesProj/src/main/res/drawable-hdpi/broadcast_pink.png b/TMessagesProj/src/main/res/drawable-hdpi/broadcast_pink.png deleted file mode 100755 index c0a8a3d51d4c0a78bbdcfbef3c6b405685c9b5a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3743 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 Z2LPjW+hqAwf!oe6BMNDQs5bRD^KZ6jd;I_a diff --git a/TMessagesProj/src/main/res/drawable-hdpi/broadcast_red.png b/TMessagesProj/src/main/res/drawable-hdpi/broadcast_red.png deleted file mode 100755 index b782c3ab5ea39c962293b696273254a8b86d60e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3944 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 p-X;IoEU)}&CryN diff --git a/TMessagesProj/src/main/res/drawable-hdpi/broadcast_yellow.png b/TMessagesProj/src/main/res/drawable-hdpi/broadcast_yellow.png deleted file mode 100755 index c427ad4881927b03bc5ca120c9f934add2f841d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3888 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 diff --git a/TMessagesProj/src/main/res/drawable-hdpi/dialogs_badge.9.png b/TMessagesProj/src/main/res/drawable-hdpi/dialogs_badge.9.png index 76759b8735f47247f74441e7e8f221acd82d885d..dbb256bc38478070065419ee46411d7e24830aaf 100644 GIT binary patch delta 478 zcmV<40U`dY0qX;h7k?xO1^@s6;Q*MJ00059NklFt)MuFOp`)U*mWl?sUYAh)e!3 zr^b%SsADsFXL1?mXAFDU|&)pM?k$(|Px&lQtwMHAX6$Ui$ z$ssr%H-Mw1 zxlT)_$4AZREdPdFt+u@mfzkHKRSML5yx3KpI*_55?cG_eM-8VsB z!j5C0^*!ambKL;q6K&8|`1w%&zzXvYPslS~ZGLbC{GMz1#-Pu-`)v=bB2Co!0tWy7 U<>aCip#T5?07*qoM6N<$f?Y)3JOBUy delta 156 zcmV;N0Av5_1FHd$7k?oL1^@s6vCRo90001TNkl8U}fi7AzZCsS=07?_nZLn2Bde0{8v^Kf6`()~Xj@TAnpKdC8`Lf!&sHg;q@=(~U%$M( zT(8_%FTW^V-_X+15@d#vkuFe$ZgFK^Nn(X=Ua>OF1ees}+T7#d8#0MoBXEYLU9GXQxBrqI_HztY@Xxa#7Ppj3o=u^L<)Qdy9y zACy|0Us{w5jJPyqkW~d%&PAz-CHX}m`T04pPz=b(FUc>?$S+WE4mMNJ2+zz*$uBR~ z1grP;werj>E=kNwPW5!LRRWrzmzkMjH{644~kf%h=vIPQxAvP+>t5)9?hwdl9LcvZ^p zVz^}B10lC7`feL9XZozFcPYPdA@I!VdN(fqM5oIUq5qd1h?ZvIl|3-+-VgR&1+hO2 zJTmml0vq+eJUFy>fk4z-;|;>Ux&FA>`|au0F$2+V^{h@TH^bf%tL}%q82TC_seOnGv2uU`?{T}J}dK&7``%* zyDV(^)M@RxlJjw*%i1-!R+T<`mw=)Crwh|G#QRtW~J7gmR(zph&jDrP)g{an^LB{Ts5Ki9Lq delta 380 zcmV-?0fYY23AzK2Bn<>-K}|sb0I$e51&ZmBAt!$UOi4sRRCwBA{Qv(y1Es)ywYe^k zy0$a)P^C8h8MRUjT6sEWM!_7zL!3A_+|gs>{M=In1T=f!GY{ zt;smj;(R2bO+cKB%SSLnFCd9!LcNKc7S{nW8&v2NG(G;sWhgxH12s=W3$JJ(-VMYj zfmjhKEn2~n4lclg#Lk7LJ3pi#xrb!nM`&cyc}*xnQL-t}wfxX*r;DcU7c_D2BPPwE zq*I_KkZU}F_zRl4L}CrZn)rd5p8}~gsOxa1MZ5syeQelmm6-<+x8Rb;hZ(6+NTUOQ a00RK@O0S>s)cR-u00008U}fi7AzZCsS=07?_nZLn2Bde0{8v^Kf6`()~Xj@TAnpKdC8`Lf!&sHg;q@=(~U%$M( zT(8_%FTW^V-_X+15@d#vkuFe$ZgFK^Nn(X=Ua>OF1ees}+T7#d8#0MoBXEYLU9GXQxBrqI_HztY@Xxa#7Ppj3o=u^L<)Qdy9y zACy|0Us{w5jJPyqkW~d%&PAz-CHX}m`T04pPz=b(FUc>?$S+WE4mMNJ2+zz*$uBR~ z1grP;werj>E=kNwPW5!LRRWrzmzkMj|*3(0n_V}pIn-onpXnTn}X15ic>ErDdZLaZFWg5$}CGwaVyHtRRDY0DigO`jBuI< z)tiFbEyg(Y>H{644~kf%h=vIPQxAvM;k^18hgE9BTSHyV%yTJ#u!)IqAg8JhQPvP~f-Y&$Cl@O%d!!XDqasQZLz| ztYKQBB%tniv%KMkXvh74qzr3;=T0~I8*d19#5Y+yk&0qIA{y{5SfPyZk-C9r5zkq6 zSGFmCr8@2|j7wLzenCXxUHc|`C*D0>>pDc77dKR}nH<~Cw2@t4{_$lKBAl5UDilq8 z>zbFH6y6~soUC!8Tf0$WN?;vhp@zWw!^;_GFMQ@8!<>4X@uO9S*&lA+rreg8#(BO^ z8!C(ixS2P~2`pzc6c_m4uJ&o`krvTi3$+~1Fn@K_4B<&hP&26)X1%bNpG#Xlt-$w5v#bk5Yuy`eG~IDxR5-wJcD8{>_Z0i5pc2H>)z4*} HQ$iB}DZ7d( delta 312 zcmV-80muHX3HAbzBn<>-K}|sb0I$e51&ZmBAt!$U2uVaiRCwBAbX#S{Knd6xdXm9? zwK+4C{TDtG`bpqn~Nc>GeoQtf0R6{`#vJQyZp!`!n905y8T6xjLGe7#SNHx|%qdIhnhf7@N4cIXN0RJ2@&TROA-;`dYc< zCzs}?=9PH5*eU@<^incYte|?GaOs`=n#n)`s>lMTB70^Tm?BG@it3r2>N#?j9AjW$ z((`n245_$vX2xFc!wwS1)@O=MT(O`eM0-bsCSRYI?AEte{9Zk};o7dmr_|Ne-Q3;$ zgZ;+Yv+D!3S%I8+2w@=sc%9Be+zBJ17s(jzaU%q$u_jAkDgnS$r z1y}_y@b7Zu-doN1{ejS&2IUVaVjJr7%ftUq)s>Q9D^B>*Zzg+0VFr_w1a8wk{{8v&*Q}>Udo-pP=gG`cY)@;-MKj%cqgMGInV`m>q6r1s5)xUe6 zD#LEv+LYY%-0s0i?vP){U6p@`wwiwbcI~#byG4-5s@?B*wI5#e{F@|SM77)%74{ds zH@?p*eK!BP$h_=d%OCv|Tk`LsM_19mh@7umu&#}} tQqmaq>zU+}my6WAqmM5Ry*{6bhvC@es?^mj7eN_`!PC{xWt~$(6952mYGD8X delta 559 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 E2f=VpSO5S3 literal 0 HcmV?d00001 diff --git a/TMessagesProj/src/main/res/drawable-hdpi/floating_pressed.png b/TMessagesProj/src/main/res/drawable-hdpi/floating_pressed.png new file mode 100755 index 0000000000000000000000000000000000000000..285040bf475027b94fbed841c74978c064403d0b GIT binary patch literal 4093 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 literal 0 HcmV?d00001 diff --git a/TMessagesProj/src/main/res/drawable-hdpi/gallery.png b/TMessagesProj/src/main/res/drawable-hdpi/gallery.png deleted file mode 100755 index 6bd0cda8350eeb86eef569ee92d865f36fef4672..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 405 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 KMNUMnLSTYS-U#jh diff --git a/TMessagesProj/src/main/res/drawable-hdpi/group_pink.png b/TMessagesProj/src/main/res/drawable-hdpi/group_pink.png deleted file mode 100755 index 496a43c0e258da90c52cad8bf5cbbf09165c03ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1629 zcmV-j2BP_iP)AZQ!z1MAxlC+*WR06unTN+^vw1U zz%#YwDqLII+22fe|GTGGz5MleMUMN2CJ{(L5|9KW0ZBj-kOU+F$sqwrKoXDyBmqf4 z5|9KWhXf=6NkC6DjN(6`8oJr68r8B^a#j5n@ia@;LAvsj9h`o8J%G&3igVB- zG!3iUjAzSa@vQxkhBqtcpiAyJ?7j9g-$5FBwOfix?^pGb3)jmBq^V|oLzIy>DlZ<8 z?m56n&f`S4f&ZJUa1LaMAlI^9=*QFt~= zmTMt^vNRLR$I!UV(|fZE+voB3td-#k2b17*sIa^aYG%)~lyj|JF?4R!T&Ll_*<})R zxE&NlLSHpwG+{6tyWincm`0`K9(LF7PAPX#?%{-5S(dTTalNDcBKq5?SHRpzm2{@0 zejt!foZxSE4z`P{R=d|C&c#wc6bK0Iih;h?Q#!Hy=Xcme!>Lze$R<|jx+~K5||Ie8SLGYkD z)#=I|WwA9avsp#j4pY1%$#4Gua>tk1;xv6i2M8y=aMKc;i(SVu)NNt>904hW>vmrN zz}XI=UPV4pduq$S@3nF32}uufuTiN}6rfn}Q98rEfTU+ZBUw{IK*{A&D4=A?ph6QW zKsf!SA%82LEyMweCv$9)xzo0`X%v~=ZDOPlR+xroV^MUb^EAMU>AXxqbOZuPui2~- z=3=Yh!;rqTm}S8UOaB7x`3izHg8~c(W4N6C?e8n(d?Wa94&EnSvqWxEL54|Om=`3O z(>QD}t8g%3Z8ghc$}Nm3B(MWo(MUDEV8j&f5bxsC1IjfEMdlGtdBS2mA?pDJ)5Zv3 zcAu9~R2S0>f)~%4&sS8ND8jMUxE6n2bo+qvFcAePJijQoj1UbA z$nN#>&%eX75&zTAMytR6Mdox|vLeg;cPHE#Y&5(m-Y3nUaHLuAafH_voVp9LYGjf0 zj`^JopC$m2SU0~gO#`0u=y<*)sVjq~=bQjzQppds zooD6gYHv)g(cU@&`Nl53m;qVsy8F`(e^dEYPgriA6lERN&~*=cW|wjWK7+|R01d$* zqNY0i4uJNL2L%O@)!D?i!tg~;^tT$e<-Oe}JYv;c+dJyJhds^W>;Z6Ph>o%-!I0s$U_6Orpvx3=El@RZ(i=Y@8uTC@u>Xc<61d5{RHVwQ9yZXcB=-|MSSFQ$6IR}cy74j>HMKe zqo%rtJNOR6JNt}Zzf2;m)e}Ic2>5P2Q19Bi>1dH)asmrkUwiG$8d=of+xFEj+7Y+t~t(y#q z=6iu=gBRaz$K%Uzcp(AZA5~km-1$frV(LK>kQ@?_1SA1TKoXDyBmqf45|A7ckOU-b b{3pNwjlFLVwax$^00000NkvXXu0mjf&sYse diff --git a/TMessagesProj/src/main/res/drawable-hdpi/group_red.png b/TMessagesProj/src/main/res/drawable-hdpi/group_red.png deleted file mode 100755 index beced2b58e4d61e1e68f59f5c5740b943a719b9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1701 zcmV;W23q-vP)j%`W5x%Yn;jV(R<`KOGqi%k{?1Rw!O01|)%AOT1K5`csWKmw2e zBmfCO0+0YC00|R-1Rw$EicCddtZC*{)hJgqHz%q8e&8rcV&99pov738A08xw!T%8u zpvkY)Kjm^}k}Lxef_Ml9fTLd1FINwd`!A;x4kg9>4|VYHw}cG(dVj?=IKj zZ~7Bk)oGCJ?#}kj0R-|<`0jQ_lCaM0%rAt;hl5t@Ce%R?R{8Z?h;+_m{)QBapvQ#S zipsQH9*%1d2+$Z~y6yDxX5PMZ&)B;gE5Wu{ZwxDW1g=_|A43LO64 zF4XQ+w?nja$sqg|)!}39NU%$QKZ82t(lH>uYQkX0}v@hN=1Z zA*Kg`!tsr=5ygiCm-6>Nrm4S;@d*ew)K+6OiUXe?pCpROUtCzfl|HMwOUtN$GMU)t z2xv&GaeASk+BQND=(wtBVFH3`f}a45;+R~0u+Ez;mr()HR}iGW*$XI=E?(24ST-gg zkfD=<2Oyf@mGPP$#W2v)yt}Z(FrOzKcT7xXlBD(Y36Y$~G1hryRYUV2kVdX`5Of2w zu9M}v=!*LrvKMK3hO^0J-Np#dgGR{+4bW(m@CK9&iSB$D_O7@(m9Kc+E?NP?Q^Y}l zwj^ZHO4e#{-gf}EP1wquG(AYO7sAaHM1XidCXRiN+}E%wvSHZA1JvXTh^kBBOE#Llm4&=*r5Ygae>h#hatCUQgzRCT%oZTcM}IOWl;BMx zeRDTxH<_c`+kHu1TQELgg7t50K4H7Q&R;LCCIO*Dx11u3`%Kr@M42u@O;6ZurW8ROVIsmsdRaGq;dMmcX4@(80C2~)cB!*s>2vD|MF5SIP__UwOfVee1 z3w=ZEdsG4eI#}9xK)2h_wpGIn!DnesbO|6>=iEvi4%}Ji=j$rz#Ue->EWj`bk~q5b z4Y}2|{AyjIS24|Xt?JBZ7?Y0#q>Fy46mpGKoi@hCdG8|sveNy^q!BI#QUv)9!>`n< zof8FYQ3KK(7oeDvQ*31pV*ZAruJ`uMryFdur80;P;)Ov~?ZIL+k1q$L7YasY%ov~K zAvCG(;rOWc?k!-lXXiM5B@4U>d=~WkKSfY#{PqikCCbjoYi&t1=kN_kA2|xmn03=KR5`ehb-vSH(O}wT^>)Pnq00000NkvXXu0mjf#vd+Z diff --git a/TMessagesProj/src/main/res/drawable-hdpi/group_violet.png b/TMessagesProj/src/main/res/drawable-hdpi/group_violet.png deleted file mode 100755 index f63bc86abfbb03a24b6df28f54653f850548e36f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1732 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 diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_back.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_back.png index 2e5545fdc1c173f66fd195db38d03b3bccb548d0..5fa4948788afb7189dd55faae57aa7d0600921ee 100755 GIT binary patch literal 287 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K;Lb6AYF9SoB8UsT^3j@P1pisjL z28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwX{BQ3+vmeOgEbxddW?i2k%uj5Bm(gxC|eYo#2IjE z0Gjp=ntuL5g*Oc}|0ctY9>IbwOcK|69f#Su45nmyIEl)F&T52#c dkO%+*3;;8@dXDr6p-BJ$002ovPDHLkV1l5Nqy_*0 diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_back_white.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_back_white.png deleted file mode 100644 index cd1dcf6d716047fe41316980429156fed5364625..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1190 zcmeAS@N?(olHy`uVBq!ia0vp^JU}eL!3HGH8OdY;DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49qH-ArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XRMoSU}&gdW~OIo zVrph)sH0$HU}&Uo07PcGh9*{~W>!Y#3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qX zu2*iXmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2Ntn zTP2`NAzsKWfE$}v3=Jk=fazBx7U&!58GyV5Q|Rl9UukYGTy=3tP%6T`SPd=?sVqp< z4@xc0FD*(2MqHXQ$f^P>=c3falKi5O{QMkPC z!8&|>tvvIJOA_;vQ$1a5m4IgGWoD*W895rcnV4C)8W@_I7#g}7J33mJIayjdSsELe zJ2^QS!}Pl3Czs}?=9R$orXcjX;nWLC47mkBn_W_iGRsm^+=}vZ6~Lah%Eav!XPo9i z^`_u@`0() zN~m64V1D|6M=Uu9e=v8bCv)@8V5{7c5W{dp|6`_xOV`(QhdmtOIYx<|N)^K5KF<0A z|64aLZM5i`(DvJ5kCdkkXUEYGnF$SU|J^lab9WSTWHM;Z>pb$EB`LN>${|5l;C}Na z$;KTbvAnz3CLI4g;YXCin`VDzjyVjEoIU>JWV}m0FkN1a;bXo=w8X5O4_Or~N3zopr01+~Ye*gdg diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_compose.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_compose.png deleted file mode 100755 index b991582c260a3278c025e3c2cc3caccb2be9856f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCmUKs7M+S!VC(K#9UIO`&C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGeiNdb&7Z(%Ze-NkPad(Mu_|h$=_FE=5nhS8fTy+2RlVr7(pYNGZdwfBHA7}sr!`+PK z!soC5*6WYb|gsjE~-O9!3*q*ttJ(KUSFb zPkV8{==zzBb(waqH5}%-%Tryi{(8ODC%E%$$Rl2#Hzyr3*-UzSI~lJe`c+Q&nW^O-7#M9N!Wt~$(69CL=g9iWr diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_logo.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_logo.png deleted file mode 100755 index a9237d7b9e22ee985d158bb0f3ea57cef8c51a02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1235 zcmV;^1T6cBP)i&>zc7>8H>=v6t#!8W>}V%sf9&9>PLSHOXx=gy(kPKC@cc$0ZD??kIJM{ zFi8V@3s#zzmYHpt)rx6a#;U!{(y}_oX5+f9yZ147-2)$c;oduQzM1cwIWu=X5;q(H z4(5qSW(Y-0LQF^K+5LWm3DJ!(BT5lB5Z{${tX1%?A9HvO`}K41tPT;)uIbs$%y}YG zjJS%hxQc*|IgpOhBC8eaPWzA3!_wGUuo#`57%+awy_R=fQVYrrhzu)%6t$cl>*Ecv zQDK9l9T7I!?lZrC|AC4}jZ&LVwGtrtB=FYtobVt>njZntvw}hA<+y6EZ)|~2U%tu7 zNJcGlUZ;kx#hQ%Kw^{-bh*7F*8tFuI+*a3OtpDdPxL@~LZuc=-v30ktuIJAV9UN`r zv?+>ajhrVEGA&dqrEH)eTpk|@^Nb-*b?pNA{3jqPeI_l4fNkrSam`Q^xD>z&%%Bll zb#``t8BBLPt@80J#chh-)SF(th22N<;Q8w|ZUpYuyilI95ue3A+}vh?^sGWSda4B4 zI=U2fOz$_feo*TFfR-I71xk6Vy50;AO-+!zFcMN$#({q97|A`CKYYn!61!;z%yQl& z?cS`Yht2zQprou8ehmyrlurW>0%jthsHNWTeUMvJ4qFeL6`fHijygYnHVR0?iX4O5h#Oyr^kwooX;<*QnPdzrbHq@r^NSowOCsD6gn)QM!a9w@J7@u zi7?6nChIzo&x-&Bch03ds^)&7&q4y-yjre()@(PRY2@i12P4Vn3JH*mvUrvW=Py?b zD-%fjQq!%2(QmaaC9-(V0}#yQYODmywRI3A{!fBTt8mnc8OUf! xU&0o^V0PYQT?|`UB4}q4q_`^Ok>UOdFaUYzR;=kBDq#Qs002ovPDHLkV1fZFH%I^g diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_other.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_other.png index f54ad9c5dbee04d50e0234f24b74e900a3a66471..fdc4a5ad2677ebf97418aef7ae47e5e6a9b3c286 100755 GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K;Lb6AYF9SoB8UsT^3j@P1pisjL z28L1t28LG&3=CE?7#PG0=Ijcz0ZK3>dAqwX{BQ3+vmeOgEbxddW?$M34UQE3J=p25@A K&t;ucLK6TzyF#4+ literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCmUKs7M+S!VC(K#9UIO`&C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGeh0JzX3_DsH{GevtEk0uO6IaMkyF zjJy8Z@IBZoe1x}3E8^o{#+LTRKQ3w0rWQ{*$_&(EVE+6%|F(a7^rrn@^^hGXz)&~2 zfS=)o)2<1EObiSGstgPvoXRXf@dezBAn6=-2__zf-1!pW-RHxFKq8*5elF{r5}E+J CX+eJg diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_other_white.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_other_white.png deleted file mode 100644 index b3a92d75efbd8c054658866d7e8a1deafcfaf30a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1035 zcmaJ=PiWIn7|%8xZaNSY{Bs!3OhLisPrGJITsGUL-702`E^Iw6OWxM7B`+qgYc`pi zUWN=r5Ks0X3=cafLyrnF(1Q#_a3JbspeGS_+CjYd(zTrjYe@3G_vQEdec$`OFLy_V z2Rqu&wo??XWF5WtwEVe+1jD%Q}9w zOr&6Jpt~&3aN&_^Kvn%e)VAwrALrmfzW)^VwRsn^Iq0LJXOPBCb%mi^Ddj;OBTqwU zwpPWF0>a2IAQz-Y1#nT-4a*4~mnsZZm9mbHb;p2NMW%@cV_Bxu-OI;>1fS;kc%0|c zu|%R*NQz=oj758r$z-g?Rgh7%p@VB&^MIRa$PI_Vc1dIfde$5?Gaj-*<;rflY48YHlMyJ{%GB!hqivVoa{VjT{GT`+hs=UB(&wFk4uX?x5{r< zFGPH;DfG6u9d2qRj W+E_WUE<8B&J@jPL!^*Sd#GOB<#YB(* diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_other_white2.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_other_white2.png deleted file mode 100755 index 936d968c316314140b261ab49b9eaaeb58ef8a88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCmUKs7M+S!VC(K#9UIO`&C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGehmJY5_^DsH{GzLAqbfrrIGdEN6Z zd=l;(ghb!pc6eZLRC;D)oS$w#J5cF^oLg;klMUa;0oe=>X0`lhXwX~2ZK(+4g)%WX mOf7H%N$e5;kq62fG!HPat>F)UaQFWlkcg+NpUXO@geCw3Wjt&E diff --git a/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_search.png b/TMessagesProj/src/main/res/drawable-hdpi/ic_ab_search.png old mode 100644 new mode 100755 index 8d378641157421263b3e7ea45016583cf950519a..a2fc5b2e7087e77c8bebb3999d0504cecb97b611 GIT binary patch literal 504 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 diff --git a/TMessagesProj/src/main/res/drawable-hdpi/telegram_avatar.png b/TMessagesProj/src/main/res/drawable-hdpi/telegram_avatar.png deleted file mode 100644 index 254352f2e5e4444a4cdd35c7e3ec7fbe1b767370..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2427 zcmV->3552EP)^o&?OP86p(@v*!^L?+BASv^<`|iCneP1$^rOR->d(S=R zJLjI)tD~di8W9DQS35c2377H;xs_jXlvk!>4>2Twg;vK7!qDn+Y#`nbIdBMY2yh?> zZkgX)sJV?U)wa;Ba4Ve+Hq)JkR;s(#87<$aZ=pzQN9QW)MKm&ytp47k{9#y@hx(>&*`v@p+Y^9G5R?~^9=D1FjhGcqZM5CEGa&QGLh$0)Gyu=}lOTBZru zcrq0CNfry-47bvnBSF3d!0_LmuO|nc*j3s{JFhqLApqNM^`UCV>fId5X56u10=~ac zuWmaB{|Ah3CP_0y0E#J_&(t~AehhxP5;iQk8zSJl^I>U=DKY?&;TD6^yUWNH`|(m@ z9lWRm&mW#aYo_GTYeUkR9mqzyIdp45Py!QS^`q>FO4l1hI=doV_iHUE&Yuh3v)l^P zxeMxP?ejV82vF;}7sGLF_=&w!sNhK-y)r0`{K?&Kd{!zhB#OcbS-LtcbP;f{qDffm zh!vo=J2&4)1&Vvo>UKcg8qx}@3>kUB!jYM52-tD0F>Z{G)jfM~y0Y5SX$L_p1VHB~xgC+-uTSsqr8o04)Q=vQu_8KLY%ya35RP80YtgJFYZ9=JQ@fxU zV1;9)W5qwtuj>I?BJB_r|GX1X2=H4Y;6QnkbbcK^9lo7a7h7?uJudb@S(M%#ZIJ*R zPNIPx&e?<0)F=kg3`^MQVo%pJs|Ru{ml%_P>S&uV-3RX(aXR94#O+4?x?Z4*!!8$# z?~B|bRxl8g0DLiTJe||!*VDLkESr^)^#T<$(*#_upt`BeJOM1!&(Yb*wDsjY)#b>9o!1+< z{2W9=cs*{n$FxeM#X13yd1W&`{C-g>KYc6G`uHr{rIn;u1*8nwfXD|C5HCbycoN%} zCa$33dXh|flHIYtp}-{8Kc>0aL@8)nFZivDOVpvqCnNji32zKL#wLKF??$m><-uxN zu)9LlNJIg;5AW--DM>DK1o%Ac<8&AwB&_(WT8Pe6T*`MBLc>Zky94~m_QmYz9++EH zMjK9qxUEQN{(CtG1-Yq7=FfnB>Gmc~kZRFsH+#n&^@fezvH;E?-ktOVG$ysgB!HJN zhLwryP4kM&Y%Ks42?zqTibk;s$nbD|v#6oIUs9>QSl_D0c_X5@G(5{=o`5mg$wDF( z>;mkDj}O-{J0Ex-zFim*NH$LZwhy#=QNTo%<@>7`C0`BP-#^sf@fxi$nt{G3t-cF? zS41r*a0q=xguF1mmgKHUz|8)sBpRQe3|W#gL`e_NSE-oBvKa$XtrLI(%Cx@XcL6Sjm{Blspo{2h#rcT_1Iq*e80RG#C=Pvn#`qN= zQSPTe=Y0cR1k4(kCPh&NQIU}{B1jX_*9w=7&OK%X;3S_b!7hM5Uw=HL`}6;}*(jtA zfd#9#ZBqBLUNp*YTX&ifU>FpNJTkkVC1d>hcZ=RnL_#LRSpeWpuGV}C9!*!>MvZ;F zY9j)30szd_lwlVjsoH)yc4o_?>8d+?@QkrJLWT%{U(<8zg9pAjT^qBfUqty6H!Y3a z$}voU>fgrtrI>Q()78U3)vIuPz<9)D<_E2sEXA;OwbC3>)sxxmd}b2oiirXB;RlHh?D)^7 zgGD5|_qDh6|TtV{a6nhxni{f@~F|58?sPyOxd% z(1PI^c6WsEdyEw{8a&X)j;Bzt1V-Pid^Vt7t>pmz4|0P{jIqZuTvvJ+(D8B5vYy5w z9RXdybV5uQgmf%2Sc0;Iep3Xbo0H zxpa`vO;2RFX-syC`VoFzhGv4eBR~r%z(m_RXi$cm;uOKSedmB+|IGw0a^Mi)5a2*4 t0dB_(!r+GS5e2p1e>vd0_(T5*FaT&M9VuK=qU8Vp002ovPDHLkV1lS-hcf^G diff --git a/TMessagesProj/src/main/res/drawable-hdpi/user_aqua.png b/TMessagesProj/src/main/res/drawable-hdpi/user_aqua.png deleted file mode 100755 index e90ede353463315773abdd5ba7f316c664a5cde1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1390 zcmV-!1(EuRP)^}iXKao5 zwEOSw*&_+R{`PyXvmcw-A?N^gfI2`Opbk(6r~}ji>Z}9w3X>bZ0(Cf01~~fnzm{dW z-tO?3Z?^en^L_z=h;Ny?s>qUb=Fh-rm1e6nZwgj3fCAeZIhG&@7jQiI*T}H}XcjI3 ztL1Qp(3D}lDpnNbw`j>XAb8D9;8pjUXAMr2tv5-Y^BQ7^h1;=DMCab7 zzI#b3e4~I|)6f-#^y&wF*)eo30pZ35Hj7;2ntTF+@0>4@>#NA&MiPI3G-bf7fFKQI zDnNaiU5$=*mp?#~C@=$r7~>C+D6p&1`x1wMSehh?`~fQQ!*GRwKR{@d7`DM20^05O zy;c|!u z;}cN2W;E&}O$cr9AktW-YV)SPYp5z4K#rlqiHN3&BpxJ+qH7wY3w@_%YU;J`@f2bM zne{}QZq1CygM?mNtR)+$_C>)HprR;P1KM*1h-E8J-PsTU+LKnd|F?X@6`*4oz3x2d zoJDcU5>S%moB@inj9E7yXE|qC?A~T!#0C)QHY!3uQIgJ=@t!#4FOxLQ3H6S)C-{55 z__7E+%b2(hMPwn0zY_Z?c_m$zmjC!%! z>lEs}o2&uVUN;hjZF7KXO*GK8ws{aTPK`1II;7Lo1_0svAmh|m8LpT$G3*x1!Z=y1 z;_BzYNk}Wh#sD4b#<1eL1hP9$!t$D#0z#lw?34R#%?G=6TG=`{6l(W8Fn7 zV5)bOTCVRZ1zXo0LnnRy?~EbP#;zUM7Wy@G{B>!QT#FWf3wnsRux|?2fS|*Xtv6wu zER(e2VD6QGAiajFAe!(=s*$fYI5G|d`zp=CIE}N65g_;r?vJUeTY4jgfPBs}me*zKkzl^Zz*@M9|2wp)&2*nu%rw$7Z{O zH$kL+s!;NIuklP1d7(|aR_|@lmnX-U5FK||tj?so9|E!s9mO8Ya;6c5LS*28E6u{_ z*=>XJv;PM1XHy5i5d$NXWJq6U4<=b(f@TtTVy~(#t$kQKRXQvCh;(zH# zpQht?Nas|WK20a5Zxee2BuV1O$++F3b79N!aWeYO=n>FO;FG>3gs*VB_8*q99sv24 zX{btv<}}t&RXzYZmV#CX<%uDW!-)=nj-_Dt-sES*2vH?MmETp#^CCl+D|(jEzD}aH wHIu=kY!FLGkBbekk>wKZDM~RH^jg z$ZI%S1_ALL2a)CKO2TmBSYMqK)l1e;#fYPm5tIfg;WGq0av-cGEnzIOKOb9597z9MQY&?tR z>;a1AF|V7Yn3@w`PU{h~tR)6!4T{Mh;L#Xj%~k5U50AKp|Uz z=+`=iXq^oTplKMPs@o;4Ul6hc=(f)oO>z%fWvw3FSvg2}cxODY0Cfie*^&_aFUFGe z{j8p~d>TMsuLn#vtF7MXygdvf+=_P7ANMfx9qtLUj~Crfm%WBlep543AG|XNphx}l zs*m~>(3Nx?$1uq#^v}C60TJ>B97U@U%%aq_HR!B>L~0TBVyQ3IbcaMbiwIEa%dbdb zyEQ=R7Mgh+_cG=|-N7WqGz4_!RHsLX0Kxl#ij&r81PAP?0fAk0M;D!8@^N60KGlX& zfp|sn<3(?n>|PvHcNm27HIo7Y(Rh|DI-q@_JiAt)Uz3)T?FEq)udM;97>Vw-P#!zl z0w6;b6K-J9ZwJr;Di#WdiFphHJTM2k~ehxY2_v%m0aLiDmV^L zer{^%JVDUG ztOo=UwC@>JOJ%}k);7$puD}ya!}HD%lGNG^C9L+Ex}!l|$N-v0CW`_n1E_k}z42e| z!HSaiO+ZysJ*XL!a)#cZ)Iemw16lm6)n9sSP+0nBp!8^T@Cz}JZy?7ZHvy(cYjTeP z$tC`D&s}_~;p?&6kE?MtN0)#7eDm*x-Tz1!sl@+y=)FQZ3sXelr$Z>$(h@)=p8MgT zlI^6kVaxLUfxBSz51^A>TNZ^vZg=wXxbd*I`v9onYGl{DSkVFdp8f#nP73Ndlt%`2 z9GvJD(47>_KR0hK3;>gH)<#iw&1V1r002ovPDHLkV1nyVydnSq diff --git a/TMessagesProj/src/main/res/drawable-hdpi/user_green.png b/TMessagesProj/src/main/res/drawable-hdpi/user_green.png deleted file mode 100755 index 6a82289ba264c2606353d582823d3e23bf299061..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1471 zcmV;w1wi_VP)Bz>?U zr&5+$(ssT+_wI!G{g2-Yxx6gJ96=5!2b2TK0p);lKslfsP%b&3J%l~@462-1t-vJ| zn9Yw#5(lg0=4`OC*-5`R z(a_oeXyn|^7Ly|f#4yE9;~Era4@+z}u7lO$_Wm#UdbCd3wyyS|^HsQt(6fKhl;#lv zDi%w+YRiI_S_heier{@=<1sN=tk;zWUzIcUVs@NFBj*#{fIw?n=4E=Vc~(sA%n#-Z z-=)>Wz!o~zH6c0=($ssqgu-_UNR=A`uMnMmrChB^CY697oI|pM;NVo5PCz2BY)_Fh ztW?Tug+4$$Cl|0JO=5L0Ktxyde`TFWA0P~(+8-82#BT82VqL7$kGQWN$?t7 zL~}(_fTASAEQ2Wo6orMO5K@5Fh=7QiGbun}7$5?Q=>xP1muP^ZIHC_w5c+t4NSZS# zKye(QDbbonKp=kLVF6m@fVTU)fJ#8iB^n@twoIyuY3e;uP;mg&WFuS$gmx2&Xb|N7 zs$!zGgk(W$85cB}*yjcfQ$Um|C(;CnVeq>s2~B|Tgj+lH#mSs z&MlS2s_Ts=ZlB!RKFDl7UXb*6WKWp&M;`{`e>A0O)z1i6*2aqOCm)I40`W{bNfKCO z5+mOY|AqyK2`8l(rAD|8GQSPTvtU?+$s^TbnP<9SUpO;I0_11iUG%V?Nk9UWZJ^~;dH_IhKM-*;%M7QV3Rr^IFq?WqXEsPbj^hq6D`C`*A}G-^ zU0(vCdw=`^bIz!MAZbilH$nM=d3LRU-;*x0T)JrJB2O3_kRsO8d>r#s%>e-MRXODb zR-8mf42Wse&(jWpuJU;QuW5AC?|;G|q#qDF03f)fw)KN5Tj__AHrw!*n9n&7e`b{{ z^G)-D=cLTsyrc`fJQ)8AA)k6cvRJpx%gndx*;2(euRtXSsWZ<*nwY9sZR?8MK?b2J z_u9WU^&Zh@HHZuiKEkS>W#V*pSq3n=p>s2F2P8`T>;XY4Xz5*?=P@6x$GNWBGak~_<^UBJ*xt)tgk?tBCle^$PU&BPZdk^zc?8GW~`6PPw!e&9`K z!`XbCa${~!K;U{sz6MZ4p+?k4?qAk$5?l?v>n$czZ|E(i`<+62^SwbmrOB2gsP92v zcF9p8)qraqh0bgMruWvfOY9q5jHCk^t|AmD6bKrI+BQ^sws63a?|vHObwFT2hSsi0 z1{Esvs!GX%2G=TFf*(KFKqm0xGjyyK!Bm z(-WuErh2U<3EId0pN|{6#qa4e@dGkKQKs4N$4Xo;81DOO?WD3q)<; z@RiXwK(={B^erJ&nH$qIE*^TjUjWrVzcn;R^Vrr5wetngCKXiMIh3cNO);5=cAu^u zVJeu3GZJ~V2wwT5Ql2--riY^`R<1rTNtF|ea=Oj(V|UeDF%RwABYyr)`&T3f^osl^ ZzyOkG)$>xxM$P~L002ovPDHLkV1mw|pq&5! diff --git a/TMessagesProj/src/main/res/drawable-hdpi/user_orange.png b/TMessagesProj/src/main/res/drawable-hdpi/user_orange.png deleted file mode 100755 index 9ad5571c9de955624a82283cb52e1a7542103635..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1624 zcmV-e2B-OnP)PbXFRCwC# zU3pU*R}9zgzV&j0Im~5F10ftuI_>oM3jJ#RaGmKtX)+}(;DnoSIObUIZl#w%VYqDY zu0-C`%#O`4zVwsyll1i7I(xtW7Q_FNfR!x7y?CPVa<2TtvASVG!iojJ0${}gU;(gV z0k8mAu>e>AtYjnVSy@X*H@Iz`;NS($*P=a+Avvi)lHg;t0&(>i@DB?>)0B?NR>KqE zcK3nf2X(zB{(J<{ryYn7cJy-#z+=DM$Q1a+5?Xs>kK zhY%m_8ybQz91uBjDF2dcrWP8`u)Y}p)L;?Zu3lcwX=wvBFk&D8m}XLrFM@vxMe_jg zy6UfLQ&#}i2~MuXEC8~~cIy5z&H*N zCyXA+13(hX@&MN}3xFi53G)Ec00_@**kcVr;h8KgFor}H0OHdVVfr@=faJ6)%L5oW ziN^y@j%9fOBPa22Kop7cf`pNi*b1?@av%qQb0Yyblmh^xH}U~+EXV^+KeK%{OB2MO zd=uEP#FNOTg}UnE;S=?tFyWb~!!eZ>@`(#t;XE)HGhBTu?dJ+y zlElJ{4p?fsckOP7+nFO10HAHGttpW2zQms@6978Crs<9)Z6sbQ0JMufl^LBlvH(0B zdmQk`U!?Zl7JvtYW=7MRQ1d7G&jykU03F^m`%2G@rp7Dz0mzjWS+}I#ChUhcIISI! zn_fW6PyYlJuWuMyI(s2pd#6|Aj0b?Som^=-(|J)R7eH=i8DjLda5bHx?^%Q(H8`fv z2jv>pb-VHqEdQ!`$5FmH9-#LJjL)SS?;AA)uYVY;?-kuE%DPjUDF9yI5cm@>#2i<4 z)hH_)%Ay`poSzJQTH@ujz|pv zim|GH1c`P?TM{jYZi`w0_?R6cZ8sQ36x5W=l z= zeQ!i}n~+kmK1ZS2hZ=x1h96?3ecRmAtpL!PES>F7w~(^(bdONOle!&#_V$k(OQSbB zVRVK=u<(;re$zRk9fHN5b%A;(0FIx7;N_3HWosp!R!1=Z!!;1D0pL$BeK}0SN~#52 zj!tIzx;%Ob0NpOo>*==&$|_~0I|N<;pbM84_ie=mi=8x}S^VDXW!?`M~Sx z1D6O_6~?SaIJ|&5$6EQey}(l<&|O~%1uINpC}_hFWYbPY1RQ&08G9JAD&Up>1Q-C$ W2g~;wYRduu0000O(KHy( z;KdsPL|aw8Q@?kaB>yttQaW`2O`GJxPV+P3c`Td9}5)V+gboucKMFh0s2q*{y z1T^Q@HjX?20ma)}yqt(>zGGM*gV{m?+6zET3xWicV61vt#z|8>DDnZM)ojRjjCK>5 zco0&tR(CM3mJo4DMz1AOh{X*WzK5>Wf+1W+~5j zWy1u`sjc43?X8vTxuEUGj&8mBG%?A+E zV^j=vkash2`$N{3KbqzXP_~68jQmNyJSf(3 z*`=YF4zJTAy!t_51QkaJWw;|ipc@Bc?|PKM=k$lcY@S0vV9WE%aGvVEIH>N+Pggw0 z%(vwlMXQTc(c#}rm>zc7HK6$BfmC}z0k7hfRQfr)qWpNG)0^H?VjfedG=Z zDS9{cnjWLv0y0io>Gwa46XrLF?E+AIXI)3DA7qfi4oXI^&Gg*w<8Nd>1Ey}Aw$x%~ zd*@oUOiI@3^Obiq5grh6%H~-+^TdHDG0wmx9T1HvmFF%)OlvsiZyk1NRV`VCk3Gmr zh^T^j5K^&ze3(hndCoMDs_kA}yZs@HC4TmRNTqCa5Bc1W`EWjHtL9$adRMpEYNgD6 z22>VOErZvvJIj$NMxrtQ2k^f)v*!ppUr<~aZCj^lJ zSDcD6l~Wel&7T)oG1nqOF>mWH+e%cB6bOin+A(d ziDR=9Rmzywo&2pNGV7UG1_nqH#FkWzWoh5O`j^3#cp)O=?Ck99euVu9`>}Uxt9C}$@)+@8@IoL22+4LvYjr$8 zP2R&7UsuY~DvinSb^p8j9WWbz{2rk8xUm!g1w;WMG=>7A9z+3AKok%KL;?BMxQRbO zNKr$Q9FpY#{uY4lD`;F~uD zNXi$a;sV2t5Acwzz$F(K08o2($7p=>IUs-%d-on3=h+@7E3xW2#NGKnf5TVbinLa# zzJSincuLaL$6up!IUfRII8G`Q`RSy4A5@k~^8BKILX1zQqO-ZMrg^Dig`zz)+k3lY z0|Kwn$`$us^PtHKOa05s{`ncHAqKG!udXAab7ksE`6;RJl>!p8v*B1At^W(6Fq0t? z5Dcu8FJcflF`Fe45ctmM64|qgTvmcSPaq&IhOK~bQ&>$55Ykb-??mJQVmW+G3@3^N zigXYkAeKZ8!f8mo6&WDg!Z>{ zgfoSq+v9->Q19&2MA-rS_`lAq!GJJ8FskjHZ9IV5dpkrntKIr>r?!u7Y_H7tR_|Y& zlh>?X+2!V!*4Cytn^P8-ypOEYQ?skLwzrVJ0`f}Qwk)GjM{(!o=4TiH8}R}hj#gvX z?b<_+Yip>p;IyiX zYwx;>4rpJnsm}xe1)S}{f=hYE{J^*Y2}xIHTd;0B!Vf5{X)YJA@Gl2o1jI1P;z_&q`2n#B0CG+`ue}p9v+i%jPfe@k3etVQcMSP~0WKOlUr{ic@6Y$!yS z2QeI{EG~H>I!_q}2)fqpwqDyuQDl1$2p(5iD&aYgd22kDrF^lozt;gwp3YKx1_&~X zkV=c047$BcW5gm9lIIrzQ@4Jk*J@sA6X%H*2s3GL9GuyA#5h4{!_{v#yGMscqwaEH z?uCFrdL!`!pPF$#00^Z4l7>{AmkLGWqya+y^l6jvfFOdT;)0mY z5aBXo8)kkw376T`!J$B;#wrvy+H0b7ImiosKy&A{1raI($a+ToxU>ItM9O;<5Cjz5 z0%tih5rq=c8MySrgZA$BgWCqV2mcJjA5R_pN=(dT!6Ee8*VfMVo%OrBfP#V$tFDJ6 zIq=2|+#;GQM5dj0?!t^qlHaABT8xu4p= zi5x&uzQAxCC30VkoK_rE8JbUu<3Zz7DHiDXuaoe~LbAdFBnskjsTNq8+DCW)^fT?p gNi{_<+Wr$@0Nfwk)zEp=Qvd(}07*qoM6N<$f@{gYjsO4v diff --git a/TMessagesProj/src/main/res/drawable-hdpi/user_violet.png b/TMessagesProj/src/main/res/drawable-hdpi/user_violet.png deleted file mode 100755 index eacd3323276e52529804e03a193002d5fe946d1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1538 zcmV+d2L1VoP)d5uKQ8}0hG<6C@Wkn7FqB%b2#aA>~6<~7cU4`c6TN!3A#yK#dclb2VCXKnxQ;Jjy5v_s|alro&en_}!nsU%}tC4buCE=||AH zbxc0`=0|;FQ(QwpEXx$jQd&!T90we8yQ);SM3xyM=dF4pLaZKc);&uWQ>Qq=Rz(-gq{3C<6qu+Bh+A0DWu>sBBhSmsay^IGd7P zy}xRY27Q9@j%>SBf7g3o?{92~TRSoVFCIf5fAV2K^cIL$(yrseB$F8V_^&QZz-;Ew z4G1(I&wQ_~q0Snklv+r=nD1-&J;G-lPSJ_G7p*=q%8Fz|E29mnmjnFT?{@i7bm z9kkOUNPyse>hHS#Rfb3>SNBvl z%1~xOEX!ubEc58HYI$V(Q*aa=m z){cx>&fp7DO-|?Gx;Qr*C&sfmQ0XzRcrnrFkt--A2*cXt7C9DDdm z-Yw4S{-OqqFilTz`co!{o091dU0fAAK%BcX# z9p&=^7||y{#gc^iYc>=GBUR-Xh|2kb7~r^9(B(3Pg1CO2gkKWH7^7vA0f=vjOGKF< owJ+}egV?;R1ql!=);|Ia0L4k(l6Vqi1ONa407*qoM6N<$f@w0dq5uE@ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/user_yellow.png b/TMessagesProj/src/main/res/drawable-hdpi/user_yellow.png deleted file mode 100755 index da5bb3cc8958f523d5552e09849fc8ea7a4de66a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1511 zcmV8L(s|`9vyNouFCWHWq zpF06GpbbfieGlAlk1P}rv7O&N?|U4w_w+|a%Eh8e1QL)0Bmqf45|9KW0ZBkoB%n(O zz4|3GGpdHTPNU@R{|hf} z5FnPhtLGLJqV}O*Y28dKxdi}ZRi3+ze+C^8(aiBDT5ROwEirA5KlWO?t*vM9b6}mc zIriuhbj}!NGBW)=OV14;Afhsso!8;7xmoz!7(wKn55}BEs_hL1iI5bMGmi0NfQ50DfPg$3u?(i-0rH)eG7!QIklV!j5WXiKAkS*x@!{$3xB;^F z@HEJ^1vD|lwz2QF1O((cXjbOChe9TbUULTtkS!>n!wL={&u$0_$UQ{TAkX3$5P0RF zdSQvi#&7_!WYM=9oOTnrXi$3#EH%Tm(RWs~_=GXCERu;4J+2&$YTy+FW=1GLJj?5g zLYa6@8Wj(>WSR>g$P&>3SwaEAEai`{Xw`%QPRtflh55ZNEf8?kKj(D_$#5;|8L;RsIF@o^e~QkkwV52Mb=CT!&q* z8jzw87HHtoJt!mJFg75Xm<;lEv=++M0Ma74pc`1|+X0w>h@M{zd=7PB0U3p*;QOC& z5@bdw7bB`M_7zQq@Z6FXA2&vpxz7E*?=-oufIb8tNsVMfyW^p0EtV_))nPC$zeM~Xk_g(aftf@u&@nLhj=6sObA zGJw(9JF8Hm@hI^r2eX=jaE|jl=IMImKV#W>yZVPyT?@BMO~boOstrxE+0zpcP zjdJyomybS?tO2=2{&S~Ma(4fA_qQ%Lh4#^apq`?sSxDHfgTC~oQHe=7e5dK`z68^Q z7hC|fRd=WeXjCJq2q+LVSoR(`a<@^ktLy#u{AnM?q_gY-P2LhiWqN*^_yioD)o^O- zPJN@Nhaz3RPr9u&={blC1A(TK_^wlbWmo^~67uN9B~KBOJ6|ua66Vx*kotB21cqf!d_!nNx!D3y+no6Ne@3T(jM0Z``ymu5M_;s8 zSU&FUo&aL$J5V%8GG}Zp-u|x8V?gaxFn3Qv`5?5-fD*L<9i@Uy68X>>fmNyCm7&6t zI65m)Vp3(P*@3Mjf_ow}qiTsM38IUuR%K}K5%4909!ew;beI1G7ywTz&EwE|ff)b* N002ovPDHLkV1m5wz>oj{ diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ab_progress.png b/TMessagesProj/src/main/res/drawable-ldpi/ab_progress.png deleted file mode 100644 index 1a7aa06ad6470aa03a29b3b95eaee9cb98666e55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597 zcmV-b0;>IqP)KlQ)U;~K^t*QsA}@67q1bDwk09k*c^uK#Sl688fz2@@~?6)*=+-~~gm9T0;B z7=bW6!wq4BG(((+EKK%Uu<;!fO21+fgLK=1;242f& zto%?75eS1@-`5}Xz%ry@1G-CeZ2hhbu9<&}228;j#G%VZ=O!OCLKK4Lb&pyt^DNW~ zB+6KkIkmcKS-(QS81%yqZ2n={OOf9o2vs^@m@8rHr#1b{_R79OI-mpY;Mjr9n`OVB zW*{3W!;rtWJo^pkfIN%j#KGj|=JV=+G%ti52=MdFde;F7PN~O%fEqsktPVKf8Xi^G z%56=2ObI_GeWo@KJNxs!2tP&ca zozGnM&?)ShtLLWxmpTCDeH>M*!aU3j?wbrB$q}3vonnb!6|y6Hp%d!3S7fx0e0?Ta j(EPXC`oDj+d+EcR2KFm=xNA$P}t_P$!#Iv9W4<3X%={8*tTf>lfXLz3H{hTL_`mOcc)f`1p>*k)` zBztP-E}kd&@(fGUb0kQg!Va6AuWnc)kPEc07H z;CO-M$ddDXL6u}x*anM_Cf*{qr#5wC;ftI!dVq1Lvg~*~X2v3eqCU$jijrywLY^S< z@g%@@k`Lm|OhJdS6L}%_PykXzyNgCxqe-MEDfr=1Hi#ExA_Zd;J7jr=OH;~#mi2$A z?=R6YZo<=e&lHZ^lMu2^7^6|-kjC{kQ&*u{ji8ND)JEtit72n-Fp38#1l5)duJ3z+ zi^lPdIo`5VGl;PrIMCEJnkX=y=c;;j+c0=tlB6Al=WB&>S=4o9M=~U#!f~RJadqU3 zd>G)2>z;DumE3d`{E&FoVdUM1t`Q+0%u`mq)v<^x^%h)rbu5LIT$TjGrj7ll(b*N5 zp4429EjcU)9|mOFBQn;%z7~$jlVD7}+)lo9|IB8kHR14k@zUkr2f>HOTOZ%n|&Z5B~xMK`NL4 diff --git a/TMessagesProj/src/main/res/drawable-ldpi/addcontact_green.png b/TMessagesProj/src/main/res/drawable-ldpi/addcontact_green.png deleted file mode 100755 index cfa9e2b0344df682c81044a3b37c09f37288c36d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 972 zcmaJ=J#W)M7&ZhD3he?ys0`@jb^xjIS7IlzV$u+&G@`E3G@_BZ;Mmv3r1qKfg*cf= znGmY@0StU>NC*Z-gxDfb2WHs#1(uI`Zmg;n zayc`?aG~o{HpArdp>J9(NI(PbIG)D-`uLdzj;*nqvLP6L5jLHb9)=sewVKsySy`LS z-vqf(r2;M_CJ5bKFHl2`9qOvoj;?tY3?ZbYvByExjS46t41vrg6P6%~Kv6g`B`b=! z2qZz2c!4e@A*NJWQKd8(eJu5c?QONHFOPiDlg2g)@l~GhbUIuo$sxSMi`i^8(vYMC zMI?f*N6awc1@mJC9R?P5eBvMvM2cnuwTZ^kNRLx+{fVp>jLJj{#)qcQi<}UpGzJ>R z|DmosK?kG?PvZTja8T>|kgvi3wXsDTw>=-Z^3@`SCPBD{(C)a3l_nx6Xd)jJHxzJv z)A4N732qGWhM|_dfS8^I%eux=1;%bBbwmQooZEoaiDv{KMB8L^lh zb9H33UFeZ9*FNFOQ@PP7xIXo)L+m_+_A*8;7^bW`(_@jQ>W#Se^jMNpxjYSqj~e?| zqsLctdLnZ&w)8L=eCW|>$8@Y;ym@tzK8dBWUZ{mX8h;KC^RbzQx6jV33#SHW`v*Vq z>WqH+^<`=B{^`<{$6Nc0U-lOIcVf=n4==a+2log43)dboG3I;z5_vwi{yTbK<lMWF}M68YIx{12f zr7Rt~WO`nnVT^a)cXt?Fdii+9c<1}`o$qT!Q6!37Gos*CxPv*=Z-EHCFYmoU);GFre0R1RH;IuXE6)`aF7h9CR`r;QaPETkOQC5Q@^IR~yKo z_y8M$smV>w7M~x^8zOJ>|M>z(lMXwV!){SV#h*x)@0nX_3_zA;gU0s}{na$%+U9I= z3>nC#Hemd5s{0_}XqzQ)c;N`nDtY2MFnp2g!uh}SlFzskoKY6E8mTz<~n=>5dOR zDf3u39Qt)aL*eTbPLDaPk6axXrER!YH~vr)zHsEULz}%BuLsxM##eC-K4}eE98T97 z)(NN_`|hAUPIaXd#99p12o{18#=UnH?=p^%3uQ=vt`!>SZZHJ!X3#w2-# zc@6K_)l6DT16G$i+U^yJWEP&~ls-ec@e6ASZ_fdbg8?1SOeQQhXDT!~ks=zybus4x c6NdqV16x>N%=x=UK!-DUy85}Sb4q9e00~NC9smFU diff --git a/TMessagesProj/src/main/res/drawable-ldpi/audiocancel1_pressed.png b/TMessagesProj/src/main/res/drawable-ldpi/audiocancel1_pressed.png deleted file mode 100755 index 4800fcb57705b79766cdd9ff0a77594db2c4994d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhEa{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i=;^>lFzskoKY6E8mTz<~n=>5dOR zDf3u39Qt)aL*eTbPLDaPk6axXrER!YH~vr)zHsEULz}%BuLsxM##eC-K4}eE98T97 z)(NN_`|hAUPIaXd#99p12o{18#=UnH?=p^%3uQ=vt`!>SZZHJ!X3#w2-# zc@6K_)l6DT16G$i+U^yJWEP&~ls-ec@e6ASZ_fdbg8?1SOeQQhXDT!~ks=zybus4x c6NdqV16x>N%=x=UK!-DUy85}Sb4q9e00~NC9smFU diff --git a/TMessagesProj/src/main/res/drawable-ldpi/audiocancel2.png b/TMessagesProj/src/main/res/drawable-ldpi/audiocancel2.png deleted file mode 100755 index eb5f9ae5c2c111243a37c4f102d6669dddd016d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhEa{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i=;^>lFzskoK&WzKK4#>U2n=eDUl zROYd0xV~q5pu;Oo;RzPpN4guB%qm2}m_PceE$E!y$WxyqH9^FR`RZPVnP(WT3bd?Y zj8*jL`S}0;{}XDG3@b|=_DFO%H{9S|@j=r^&ebr)S#?4d%cFt?hrXUD@`<=3!Fjh!&o2sfbH?gUiw4O6CXL`x~LQ0}>V$(u_vzZG1`7DnzCY;pTA+qS^ c0#<*?SG?V@kX)JDBVXZez8s;o)@>b+v iII8b3cL}RN0s~`aLg>QdZp=W(GkCiCxvXVJLn>}1^~8%GY+(Pxn3SfF zc4TQoC!>9Wnu7lYhBm9NE<{(Zg_0T!P9H$@$_OSxd4M{w+Vk(7?dV Ykfp}j`B3LPBhWwwPgg&ebxsLQ05FUVJLn>}1@yvLBvVr{%V^W$z z+L5IVos9MgY6|`r7}^9A7`XX9{zopr0AisyS^xk5 diff --git a/TMessagesProj/src/main/res/drawable-ldpi/audioload2.png b/TMessagesProj/src/main/res/drawable-ldpi/audioload2.png deleted file mode 100755 index ad3f00e0cb98e34d41812271a287ae53611af194..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~e!3HF=pW8M9DVB6cUq=Rp^(V|(yIunMk|nMY zCBgY=CFO}lsSJ)O`AMk?p1FzXsX?iUDV2pMQ*D5XTs>VJLn>}1eVOySjgkKc^N}+S zXF9wYg_-LP_&Cg4z{sO~fI&>=(f`5^lAWcD$`g|+_8#!?Ft*bdxZ-iu;g5eOBLgEF Z!_EyIidgn diff --git a/TMessagesProj/src/main/res/drawable-ldpi/audioload2_pressed.png b/TMessagesProj/src/main/res/drawable-ldpi/audioload2_pressed.png deleted file mode 100755 index a285a15884a0c59dcdbb0f3b446ffed5ed8cbfa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~e!3HF=pW8M9DVB6cUq=Rp^(V|(yIunMk|nMY zCBgY=CFO}lsSJ)O`AMk?p1FzXsX?iUDV2pMQ*D5XTs>VJLn>}1nY`S0x`F)G3}o-IO1Q$fm`|egzzSwJS%X&%f$Th1>;^qn z3_BzFj@)v{aaCT^drjx~n;8zG9G5vhFD&(8Q~%+g+{46B$q;$r$u5iiKr0zMUHx3v IIVCg!0DL_*t^fc4 diff --git a/TMessagesProj/src/main/res/drawable-ldpi/broadcast.png b/TMessagesProj/src/main/res/drawable-ldpi/broadcast.png deleted file mode 100644 index cd47e3ee8f9fd68b31f7713ef46192122c3d0381..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1029 zcmaJ=PiWIn9FFTYx5-4&!*mWG*+7Lg|GKs&tZrS?xq_*sE85{f)8wrUUGie`X4A66 zCPOBAn1V3zvV$iPkD>@V#ETa%-aM5ZJa|#O3Br8o+RcMC@bcd8@qOR#@4K5xU+nKY z*+)@Se`-d~lD*eoJ>BGAf6#q|Y$tFsk7v<5uBZ;A;yNlokTTUG%tBSK-uwv1DJno4 zxjfD*mn03DjOt?;&$J1fqQ)mYTh+=Cg90oXR*e4s<{b?TJw{&*E1Y5{V9A)NIdHa? z&S|x>ChGLW1u*VOM8Jet1)jNJxsn&78@duX``0WD8W3EL(YrzAl?+HA2ZAue1vM_h zfe6p=p|NN*Itm1i=U7f)c_GM0rH~+T9B6(t@#g6BQdXXB`XW}0E@5m-EL*8mm`aF2 zPLbtBQS>zgAxIEGw`yV43tH}QOF@RN<`_0MkOh22wSX3Jj3$xpreNB8vX~jzT-Anb7P@HB(MaRwhkaMJlyIPmk&{Dcp;g69 z31Q@xkPQ;EVW6m*Vfl6guP9Q=aNyyUzCkkPnPmaZt(P&(p z;<%}BA|k})7FR~vq6sbB;_Ca{P+P7)3Z_jw%g`}yL4DdmCTOHA8SP`?+UhmAdiz-T zwp^A3!}^W=tI@41GClrrZ)}ONH~7#Z)9#S59_bv+lP6J4$?=@`rSNNKXClDV>-BZ& zX>IPu*`9-0cX{J+*S(R!^=}>9OB(}+GIrPc;o??cWBL5*3Pqih()a1h;AO{lWpb%= z?eog3!MUTuqdm)3c~!ddb!#PXee>UiCa-JUl9wf~Hk$`^ zGEq<%p1g_ZRS#YTMUa8V9R%^PgO~YnkckHoVZL;2=fN6ydGG)D{eJ(?cc)l5H#Bg3 zfTF0O{FGWE`(U{G`^f)7K>%hCaOY^xAl2gg1Wi9^cGG~RD`z5 z6nBhD;ij4lAeugoaQR9ZcVLtaAu`Y zHdYo4$)rB{6BUb8f4LGVJ7-V3Ut6@h|02;vMEHMj%^ z5wphDm9EEikI0imK^MGc&!Nu+xz*lt(W@!Mr01!Du< zWqF1RQ|bUU?f+2Q?xKBMg8T9QQ`j#ryO1qGA2mFKG_E!hx^iX3gE~fD8KK2a6^nI* zkzYqHP-fyl(+$fB?G|3s$NNG-ri9DYjOJ_wfEoC?^ z6IT*KTJ3OEWHfB(;11W^=Vp3x!%?tZ;#q~Bbp@I^580rVvTXH^WxS_en``!tMe50A zNib~K*uNUxxgygO9=l^pjPBq=hfKRi##%X8S|v}y$*bvd@S*y1cQ+L|Tsg6ED!26c zTK_u8DdWStH!iP_JbCmhH9EOj{PB>R+;nf2hrUj|0|RfY$=^qAqsY!Q*jhUu8Jwkd zPJ`O5?^h35!)twynfvc^nb%+LZ5%!Dk$Ld+?%bu5)O9LCQJXJEKNX&Dg|9K6EvU~j HbE|&<>AyoU diff --git a/TMessagesProj/src/main/res/drawable-ldpi/broadcast3.png b/TMessagesProj/src/main/res/drawable-ldpi/broadcast3.png deleted file mode 100644 index 532a1f098693d1f4e129559b098690edf4dec1be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1098 zcmbVLPe>F|7$4M3mkc8)48q3nM8+S*CBE}Sdl340P(RToid-L4=|Fx4qkM5;c2^*KsXRP&@! zD&w*;B5AhCsDTdSn+`!!RC3UFRBZ-fP(f3Mm7>2qenJC7Ptlj63a2<(G;ItoxM*Tw zw4^P}XbGJjJP(q-LZ5M$k!-X|2 z#(@}Qpb!y7u^;dpdKB=8c)f%>9}HCLaMigLbgi%2PY8e>Od*=n`QR0YO% zr&yRsBmxee4-<{BH*aCp4_jVOgF!}~<{Az*YzqX8YQ>(zDVlh?7lP?1%098>)e}Wh z#`>zmLWW~aGl;9E?cpN&;GhAMPd_0>L@=%O7I1a+bL|Nw2Vg$mx z2w^UgjthxQOcu!EMKPLaU<;OqRZBw+y9Tja#|npHrL2ooY`Z1fo^5o%__U2}Z`yW1 zb|MNCRWqzW4$89^t&Cjb8q)KwZGu{UCF215|BibPtN%~VSmF#DG{;}f(zqfW7##Oo zp9uTIgDf&JE*Xu>kG?gLv05m|>5~7x@_l!Au$kF@_+sRQEWj=5^V%z6@$G!)z4jYR zG>CRRn_3Jlwe;VwB!|{l)|Zc5>}`g<%$oX6Ir`!B(9h#HUpIYakL3okW2c(?y1}oe z%}+zyt()C%l%~FxJI=|E=fDqed*%Awmm6)NqZtZpP)`Shom;DCcY^6ITx2|BlnI^AmSo6c=&9+m< zm=p9Up1cjuGGtc|UMeE`7YKtXUIbxR@iJe!c6z9Lki7SO@ALWo{ytk=m>nLvJVa5{ zaBfa5ko|o44Gxh1!SjI#*)HL12`{@9T-SX>rA)VsK+e`zPyy*?^ZrLPMN$0~t60LN z{JdhgHlv3areS-8O;J-b4No^#5e8+nVmV3r@a;PqSZ0#GBj&lhmqAr)Zrw-A>kCC= zebtandS)6-H58)2Mpy?8yXFK+BT2XQD&!nqvovT!@M@AicB+(L1R2*yKxD+I!NC}i zWCn^bmVlFh=b*rH0thx{9%#zuHht2JUtG<_VW1?#ZJ&k6iFG| z&^;D19BbQQTy1oK3+S&KJ<&n2=^?g&0(Z?fNIfbOT{6kt>4rie@kY7rTcjv@O?8bm z8#y?qCTa4*n3kz%F&-u~DW1*p>39M{nNM??0Qp2FC1_AebanLNX8BY$A#yP&auS5u zn5>GN3Z;y!34Bb;2wiT@39#-MsB70Eb~{|*RIZZok&a!z=(@FT2P{@y>;_fW1DRzJ z*4 ztiz4{m&+1o*swYNX_oF4>A>)K()vU=86M=2iSfy3{CxOmmyA^{r>2UHFXi7yM>GA` zUJt%{Iqp542h$_vgF^9a>xF*h!p-5)H`{y7&C=Do=jNCANbqg%Vr3tLjlS05=C8@f zQF`gg_b~%(47NVss*SX+?~K3y3dWrDK8`${*tsEaTgA~cRNnygX@B;^*f#YeoabD2 KLETN?+xi1Qwo+aI diff --git a/TMessagesProj/src/main/res/drawable-ldpi/broadcast_aqua.png b/TMessagesProj/src/main/res/drawable-ldpi/broadcast_aqua.png deleted file mode 100755 index 842ff62e8639dba19b0b712ff92388708c7bbecb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2109 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 BcSZmJ diff --git a/TMessagesProj/src/main/res/drawable-ldpi/broadcast_orange.png b/TMessagesProj/src/main/res/drawable-ldpi/broadcast_orange.png deleted file mode 100755 index 84d22c9a909a8faac95ce595d79db38f3a522fbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2206 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 Jz3Cj3^dDO}f)@Y) diff --git a/TMessagesProj/src/main/res/drawable-ldpi/broadcast_red.png b/TMessagesProj/src/main/res/drawable-ldpi/broadcast_red.png deleted file mode 100755 index 44969cceac9fd0c1304d2a336d3a306a2b157064..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2232 zcmaJ@dpuNWA0Ky-Qm9PDF%so6GiHo2xy2Ye7+D5`)|zIH%<9a{&K%9S6q3udv3W;Y zcB?6yk|!VPd0QmD?xRmRgr0tDUK|?;mgPdCob{<@5c1f7d@ANr1n%o(@t6 zfk5a{zaR%HW{mRFR#p5TM{(tf$r$!xz(KrdSi}^7h@EWS9uS~H%)MYB$YjTVdmnU0 zAkXsr*9A3IQ;z~TY!_6h0}Vst zdx9~XFA@Y`P=Y_5l@QBvVx!z#0cSBuApn6e6A(lDxI&WH1@&H+q*yDD(J0_O1deq< zeQ=6F3jjQM0uXSp!`ZShSS&yw*kSPw1OnCuu*YES(HO-`u*Kp@4g`|DBk=J-DXaxCyedEz`MjyMl8 z1xIwmdo6RxJXRb8a^Ynz`(G~pvs`5>KzxN|GAQ8e2iX(>4+7qYOyYdr7wl*CK62Tg z_r?CRT(rU&w6d`ORp{j-MfWI|pW0Tj`PBFzSJCYPMO&*JMYWcQk{b4D>I+eLNLJ4O}{+SW|pH6Ml&^oMN|XH;h2kEe5K^$m$y zsZ-S}TlFJvK^cthSi+NpY^f0{s~prkl_|a1px>&QGsGy~@SSCTzB%q%>cnx!9^W5h zo7PLL4pqL>(bs-?pyk3@_lg?b`_GNc)>eta?<(lZr)Kg;% zQ>S8wq!l$&B}FV^{9eedE%uh2QWp zgu1Wxk>@)IwFe}>yiC{c;Cl4mYAy?ln&7R_@*5i5eY(I1z8z*G2vsBB7$jy%Q_mS8 zt7oedS2Wc_sr-Z2I467;nhdSAXNy$Ne{+W%`%P!ZUr5_NBPnu!Fs`7fQwwM;31J>< z4luPn#q$aJl+xuo&W1Iw#uZ!LwuhW-kmZhX1QjT&qdTd6h=p9L~ z2WnZXtJx2ZwfAQa$q$yT=^sy#r(8;Uc5gB;xg`9%vYh*yQ%=c1&(WUJM>6oSiKbb9 zhDGYc6=>T?@Af?J%akB;@tA?Mwwz_*{~xAtAGb4X#I*OW_F=A$v6+WtOYr{6fuKmk zfl$NTxf_(C+v;!T4AxbvOfsJBE}i6>zmc|%dS{Bgk6OATx>M+5$U4(}%`+|5I+m@^ zvmID&5j(c`Uw!HPCgaYUQNP}d4iR!eReu!|r8;ieLL>;^QugmMrWRRHB`Py?=K=3a zhYLNbYA?yo<=rI22cKzpT&Tg1JbE{&C(Y{1E)#s{KBS+FMj4rknqWLDr(aqh|6*h7 z(3SN3u=U8T!|GAaahuAVLbDP1YmKQgT3lg;qzW=IBc5eFO zcp)Wj$|+|}$}vn*PPf^4ik!U|x>H9c)A~8wTcgRmm(Y0&y?&%R{cs3B!9(mCH{}Xx zlxc@_j=kzQo%N70Fmd@olE42dA9`f7F)82Z4&O5S zX&yD=xN$>Z5$;+{er|zN4V^T<6hYL@#|z$SgOE+y#R8}BF!|Q=fn&Q&LPYzw_ePv) zPE^m*RLT6C`4Ts+{ zqs7ftk286tDfr+{-Ilez+>+zxiT6saS|U!3(5-WSpU>4Y&4i4cHz&WQ6)_G+L`Z`= zRN}DDNyQecS5bd-$EEumfj diff --git a/TMessagesProj/src/main/res/drawable-ldpi/broadcast_violet.png b/TMessagesProj/src/main/res/drawable-ldpi/broadcast_violet.png deleted file mode 100755 index 5b1e01588ca100e40d51c935d21118272f7ad27b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2246 zcmaJ@dpuNWA3ttkN{wu5+QMm2Qs#zXhEW)D8!?8YvS#L-n3y?ZW-v|2Ws+8SSEW)e zrMyv5X>Ag_sa&=jMTB*YLM`jl+J@+zskHAOZ|`}|InU+u{eFMfKb}K=zFYKA-=P2i z(DU@5GnF$z_35Z9|D9oi7Ui^3;ub6kKz2*w*diEkh7b-6dh*%fFcW4&d!w6SM*z^k z@>s!=V1^Hsi|}!56$U5e3zcjDaNHynvbmA41mwWsJOK?mQS%EH@-%LL`wi>?fy! z8GfKEB7#9%oV68~KqP`>GLC3tOC}RHf+PZwgeNFpvK7&WYD=b)?7+_tR%uNH?WQv6 z?w@TbcQkB-L?Wc(@o{l+xHxMZA_~V7DHMuIgG91YBCN!F1roN@N+32}P@uzNu81d; z@DKs0Qe<5*eBl>af%tQplnKL2*+M)KM^J^d0Aw)!Ka|h^f)-1d@IU_k zPhl}@uMoyFVKEXT;wlTb+f-#rNOcv#YzZP_AxP9h7X2a+2_lX_grI8x8MN5O6F^9u zc>PB_gF*Eah$U#zMfIdRv!q?GgSR8A0x|jf zCSDukk4U`-ck{Z=G4hzY7dlz3%!0lB9g|Ini;KrGwB?uvR{ledjrqetvrL26_Pvdj zp^rNK1B>GKoALtm(MpZoTL$`byA28^bDdUR@4ByWt z>8z=Gvm^InnNLnc<>-u4DBw(I__GBcgDus4A--kMA$IQ zj!N?r)rP&JGM6__x7zoluKG2|&_KS^NwD>y+2QnfW);R@R;{i5w?XEffe_0{%H8hx zmFazIoc;$FgSx7lFPL4ulbTkRp>BA>Bg9JE4&an_jy)~4y1(jFdgv~nGtXqdkD6;n z*uOB2n)%IT>P~ivdq7@$X)+TvqP{7~>d(4jjZ1e2Nv{@dtyR4b+FNQG2m*UZJz(Af7Gpae;2o8IySQV)G>J}duMWmcFkb_qTg?0Tz>IeBdzZo zx`|0t(>>rZ6SJo!+NSyyjCl&y002 zlFQIHrD)W6A12y3>u<;X2|r!0jwX?fM_O+?8)-EdOq%JUv^X_-)djhklq5DsPj)M) z=Xv=zD7{IEY}X26YP!DH;~(K)H4DH8Rl{?#Hu;@Dh9kRo9P?S5;^Ad>6bji|Qm^?_ zh_RkFD%I*_$uu;FVW~0V3;|aUOc7GG^T$>-Xyw%6D2-?Lo@-X=q}K*j{v8(?EP0^M zpUydSI%UqjN_!do!FtrVNW(_z>^^!u^kP>N`nm|%uu=DAZt)){y+?Z9d(@63Q7nuK zblZn$y+uZ8XTa2e^+qN%J7)Lvl||<(se?-jmy?SA(uh6YS6V*Lx)l>{DJWCCvCO(f zSh0V61haPhKAtRm@-S{)3&Y&J#9ALX(6$*(PkW!d*Ri{Td(XJDA^mL{VO#EEaA=Gp zn&GH3511am|7n)6MN#r zR+-ic}(>zDl4;nbM# z9b#_y`n?Xvt0(9agD8H|iHnz;M<>J4ciW=Us$p;9Z3Fu^r6qkD^VUg;24R5itv1dfdC@M_&BD{omtO7?mhvB9Dx+Bd diff --git a/TMessagesProj/src/main/res/drawable-ldpi/broadcast_yellow.png b/TMessagesProj/src/main/res/drawable-ldpi/broadcast_yellow.png deleted file mode 100755 index e81e8c8fdb10a208a222be4785aa2b7518b71e66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2220 zcmai0X;c&E8V=>6qOuCO0GDY{L?O#0BqV`=Bq5mAFJ$sX1?V-&-*^_^5ZiE z3xX`>FPo3SU@UlRIYM+M8ozm;p#R%ZiY|0oiUfuuA#e<$6{{djfE12~0G?bN3ke~y zG$pA6^2K0Gu`*FO63$=8kic@h*oeXF?lwwH&gaFY{tW3egK0V!n1!Pht zHjKh2@|A2TPPR5x1%;#vM3U4530;cy_XB)&4Ag)eLd1Yho~TeWbWH3!y9{(~JSJd) zcMv3jiG43BoF5FZVHE^W@MN5X2!a5WiU++YR4V8Rkcc3OKtx|E4)kJBs0@-f@ZrIt z-c-^UhLFSk;0xU`v2h5ZWDp2itro8(<6%`S0i@IEMjIp&4n^S9DGEfa!zt9Rvlcjz zTB4FE5gDuij26Ywum)jbQKj!gkSqE8kA@ZM4~arkM$n0s1Q1Uo$mPbk-l5fq5c)&L zU!v8b6eUCuLTXr}lA!g7ah)Zjx%+!ZMj)z&!GR?jIix^%93~b$!AoUQ1{ow0xu6%@ zi^QUVV4xR^NTIOVAeqboS>7OxGt1>E)QDIifo8d~Ke(*F=8JeyNRXpw#9gat6x3popajF29j(Fk zz}=Z#@8k`Z0@KfGx136QO`@3F|Fh~vi%D5q+(2YSf0Dsq9SiZ^#<<-m~_TZ}OvJZ!vZQka*wFkG{@$2P<5Y#xD=jIIFrh1Zi0G z8w<76k*5;HHw^mKVEb@)PDB@t#+-`;+!D?dh*E?*HKA`U_DBSSae;5oBt$#<9Je$7 z^_*S%d9rIyM;~-oqx9`7s%{=Uz~p5t|KUEzc_3Es-Azf~$jFJ?+Hady+-znio3C9N z-si|1&nb4}?yr32uD{%yOH3+_@KD`d;%Vc_<^AN6B^bTfefE;=KvBr!##Nu)@F|CL zl>@c6O22Z>-SfB+5?vj5Tj2k^xP4!lpuT4+(yY-#r`6uk)~%{;^w&>>;BOW&>f%|c z2QC~iM5Nf~u}_~%y}G*mi!#gO$!7XqpTR4+&WuI(ius0`&Su+*D}@zio;^DZk*x;1IzToQE?fOwR_WP3CnQE8xmWVah$;~hFt2%`bKObq>*c7pSUO`@)QZQtP^mmOn z?WqyS8S@9~tnRVg44H)`KIeCNx@2F-SSN}Zs}TEt?Vd9;cic;@Vhq;QE=orxeUPpV z^|FW;=lt)l*Umx4-D&#ad}4DNy(%($sQLKGs+ryVAFtI^FV+9lK`QtDil=FlQk$nK zN3XAHAH?0}@jVjyyOwRNO}Gm`=m|IQMl4FF;-}{nSwDO9JPs1rSrHrBr^S&=9=tSn zZ|7KefJLRH=2CnG=Zs%vHoFiew_0J@9CE@U;kDYZ*qvdg;ez~(>wX44##j^ zt5wxQIp5k2moL`FgH@rhkoukWU&UtKo4 zIPD615Rek9>@D=&hxdx{ryhVT&tBhOO4^-@aUZ(zD!#w=9y@Le+`Vk1n4gog-R1oC zr3-gHnYmT;-J)b3p~jcl{Y$-twxK>LpK_c=jH8i)9xO8M>)^EaF7&G$wh&T8-Tj!7(p;!S+k wOk`o0m1XTwulu52TRFbk_I?ywtl4T##5gJR-M%Fat;YKUFHpewkrkEkUmcB@KL7v# diff --git a/TMessagesProj/src/main/res/drawable-ldpi/btnshadow.9.png b/TMessagesProj/src/main/res/drawable-ldpi/btnshadow.9.png deleted file mode 100644 index 862afedd3d833b7331f65110f7caeec60a37aceb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJQcoAhkcwN$2?u!p1xxlbDK%^~ zT-~wDRDb@qr2@JJCvqmpTD)b~{NbO>P{xvF<;*ZaJM%5W1lbpSKkQ#M1hV&7C0t=# z%qLNLUbP0l+XkK%XdF9 diff --git a/TMessagesProj/src/main/res/drawable-ldpi/burn.png b/TMessagesProj/src/main/res/drawable-ldpi/burn.png deleted file mode 100755 index 9486b66ff9aac39b66e1c42d86383ebe260cf22c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1921 zcmaJ?c~BE~7>$5dP$&gainLuKYAEE`5OS;uR}Mf;#K2&5RLHTwmL$6*YYx&D2;hNM zQEQ8hZAB|J-ilfQ5vW+iwj4?si={GUJg8QR-B{87QM$9czhmBe-}n8#x3im4 zWl6q1AwDD$$u}igBqzpj_cMJO@xDo_tR#llaj^nVL$h(S(g2eZG^h#&Qgq53SPm;S z*8Db@Pa=7ek#q&FkS>MPsE(#|V`vr~MzBdFew+nUs`FqRP{BEfUO@i6zL5+d8UcAl zjFch8gm5mBTws9H3S{Z(f;=@(Lyn6D_!fu|(80J8u;{dUBV-YfpXoxx+`UaF1J59M zo`C#MQVMA*AVdu?5JQWmsu>^%u-P<_6~ktOQ2>(xGU*KBW>Y~H6vKv?9N_syCZZWM z*^pc$c^->c3COuPjzM&~*=(knqiLuihYs?1JhujuNhJ_eqg9V9EmXa6-h_e(HmVH> zh9jsRa4RZR=sH|LCNlk}1ReH5R&RWMOvHiFElP|I(irZNCV*1u|3h`U7ic3chhOIV zpTfp;D+bf$un}EnP!o;Ip63pQK|%wp#8E>!ifSiLF*O&(QDZKO0m3vkKv{w4HK^Gb z@eD7OLMeJ9uGFjH6p?^TD9{i@1A#G&XcmvlU`bffASh;Wg&eL}k_ZYVLIy8J$eG}Z zQ1v<;tj8y~nwMN~Qm)$yI*f=cf(?iX)<_Jf4tQ2FgiM+XM?9(CbFOC6TsV?RxpX2K zy1TLeYV^bw;U4$&g>8w&3**Cj!tDma*1U#0pAlcn!xT|Mx~2C!#hT=u%Y(;9AE(t; z&wU4mq+i-)7f+XNq|B=tP860pi-o2LOV~d1TI<5Kl+wTR%UJxJ_=G#GptS8t;1T&pjlkAM`B_Hr%zNYG<4IxVJM5HCc)io7 z_WTwQ78m!q!{M;KlCRT!-+%pj^^E4vDsKIC(B1 zEDZxfukNkewhex;WlM5N&soiBxZ}iz?6Py`xCL2R@unbb=$k!`Cv1U0SG4ove62r% zaHz94uRQF6rhAF6#Wn}^xoSHG?+1EZigmeMZzZ%Ws}@$J&e|;6m*;h{^=i0kXlO`& zK#s)QYWjw05BjfNyT9qzND9Tj?e@K>9lYF7)2T$O)moQI;d`fSk=(l1-TmS0Gch5) zJ}V&OeNY(3 zVm%N6{^3o-=;4D0Q)~P6^lz)E{_T3k(~%j<9+1IiS38d%FC6IZ4p;qIUthmO!@QC9 zsVwJmTbtF0VVH<G99yj~ot z5Uk@_Ug?7$Y;!J`I2*jcRg$H9kElZjf8K7N+F{KODc#ei#LFh-IQL`2c9R1dv(;#QZ=E z@87KudM0X@N8jOQ~i7KNc}{YFh9SjlUa+>&dZz1&8=?B=$QX_5r4% zUsUq}&@hk%H=$fmWCzkBqctJ1>&VS;I4uDBVi{6UX#w$MS`-!0ND-a}^u>H2W=6`8 z9zYyRR#Aauh!c?74$aXZunCCcKo$aV7gTI65a$AY{heeBpq4~Iiw>CUUqd6G8A;g% zAPxdra-Zbl8X6xFKn!!CD4O9QU;xC8WY-5kOV$7>bEM>p4Q!&Q!U0-x8AxdZaUwK# z|3%9AWl%?;0#F=Kf@jX0DUDB_akSDW1ONgI0N&A>n|HaGu>b%707*qoM6N<$f{}ok A`v3p{ diff --git a/TMessagesProj/src/main/res/drawable-ldpi/cancel_big.png b/TMessagesProj/src/main/res/drawable-ldpi/cancel_big.png deleted file mode 100755 index 64db5953e742abc6167b880d8de94bd38d68112e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1595 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%u1Od5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|81#=KlDb#X~hD#E>34K5C;EJ)Q4 zN-fSWElLJPT$(b-ssbzLqSVBa{GyQj{2W*)24v)y2=9ZF3nBND}m`vLFl!>sTY(KatnYqyQCInmZhe+73JqDfW2&$iQ6rvIL(9V zO~LIJGn{($fsWA!MJ!T8!-RmT2gHOYTObFX@Kf`Esl5o8tb0$DH8U_Ut@m_s45_&F zWR|zTaH2@t`5I-_g;!P_U|Q_<$W(~Y*{8+j=B|Q;7nlA&`XfHZ>(QYZI}|@oy208R zBeu(ck%_Sea4awAl3>J)42L*qw zbFTZ(Ti38Yfq6{>>rcIDb0of(H6|8Felh>JMks>$bAs3(pVJO}J-MB`A)aR@iKpy}%{{_!zhw8>gTG6|j=3s!HQK%W z+Q0#KdaBIVW6ghw9eJ78 zIbVC3H?dVDm$iP$a7nsnZg6GU(N&S99%p_BKMk0(e5%({cG2Q_k8OI2V_gc*R4TLg z*IiQYvrK=Y@>Ij*fFZwxC0o|jLgn;`wXYJHk8hDap=CB9m3eL#Z;8~UwX$XbAvp^& zG#cMTNPq3-tqIFnknn1$u8BlMU{1nRUY$wPGp?%jRW|Zo@sWwt>8sqlhkGwuo|f?k znLV2NDaB8g?%3LqJol@-re&nb;u8mYj>JryTHzUY?r2%A_nPV=X8Siy#?z!{Fv*{i zZ<@Vx&r{<|vyOONzD8bMg~vs&a1PZ#;Smdb5B=4 Jmvv4FO#m3tSuX$p diff --git a/TMessagesProj/src/main/res/drawable-ldpi/circle.png b/TMessagesProj/src/main/res/drawable-ldpi/circle.png deleted file mode 100755 index d1e03ff934c4ef9d87984934a21ccf0fd31f6bbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1354 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFe_z-M3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWv2L<~p`n7AnVzAE zshOFfj)IYap^?4;5Si&3npl~dSs9rtK!Fm_wxX0Ys~{IQs9ivwtx`rwNr9EVetCJh zUb(Seeo?xx^|#0uTKVr7^KE~&-IMVSR9nfZANAQKal@=Hr> zm4GgVcpgi&u1T;Y}Gc(1?$ko}^&B?;R#Ldyv(9qSy$<^G@)xyHi+|a<- z%+bsVrq?AuximL5uLPzy1)eUB2MjsThND&Pa0;V1i6P|2=9C*S{%>$`GjQmeYAFxi~QO~>5yntO*aYliF z&ujaWQ?Bq%67#mM|0K)N_;=Ipx9@tEE;`PZ8o**%!13+JZhZq*`3I~P37g)Xw>kg& z>rF1rg$E^9G}g4-znGzXfwlI*F~txj-U*@qPfKh$_<5O=^#VSv1?mgKW`28dZzM4(<5WmPbWRq_p??rYf4VK z(6G9Bi!&ed+0x4a4Hr1B-|YNi>G# TwU2D$L8Y6gtDnm{r-UW|*s|aF diff --git a/TMessagesProj/src/main/res/drawable-ldpi/circle1.png b/TMessagesProj/src/main/res/drawable-ldpi/circle1.png deleted file mode 100755 index 62ace1342f4fd2827bddb9029a80340aa9e2038a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1216 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gjk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$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`f(~1RD^r68eAMwS&*t9 zlvv ztM~P_^2{qPNz6-5^>ndS0-B(gnVDi`ZeeO@=3-=O;^yLJXy|I<;pArS>TK*} zXyIxE)9aF-T$-DjR|3v4~Pj*wm=R%;iu*SQ+p9GS-%oci)3J6H1TwC45_%a zW!lEQ%+xH5w_zIJ)<(v-ZGA!5PmcXz@~rq;==eqs7~w(R5#natHM43E9xpI&*O z{9~N(Bc|mXuFsgid^&%krupY4uNUc)1h2RJV~@|e8r;f%YU$%mnr3(9wd^(ebzNWF c_@sS+VSiP)Xy?)pXHc2q>FVdQ&MBb@0BSR$VE_OC diff --git a/TMessagesProj/src/main/res/drawable-ldpi/circle_big.png b/TMessagesProj/src/main/res/drawable-ldpi/circle_big.png deleted file mode 100755 index 1ed07582b58628b08cff7e5ed02b0fee6d4f3fae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1565 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%u1Od5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|81#=KlDb#X~hD#E>34K5C;EJ)Q4 zN-fSWElLJPT$(b-ssbzLqSVBa{GyQj{2W*)24v)y2=9ZF3nBND}m`vLFjeEsTY(KatnYqyQCInmZhe+73JqDfW2&$iQ6sCIL(9V zO~LIJ7o2+afsWA!MJ!T8!-RmT2gHOYTObFX@Kf`Esl5o8tV`>TO=VzUn&|1`7*cWT z$t-Vg=|qvX{bw>*l9${Q^AbH8*8Pb0rPIQ%{5v+hxHSKH&_UNi&5Fn!0=8`iM~xC1 z6b*zD9+cf}VBNsi(&R5v)uY^)R7SZ7x7>^Q^M&-v4C zs`v!v#6B?R|F(y>hHbH3`YMIAlYaB^`ac;u@b^x&s90_HVTVVB;e`XW`+Qz5F7eK} zeVzO8!3!0F%RTM8igMD{iAg-W8X6w@F{<#v6{ff^*Ns4)wnnaGunEy}_70hTz$}|2Up%LoKHa~Ic zsy?18UgiSAISOuUS}f8l45sAVo!Gb}f!WiUb%Lz+!haJRix091wME}@YHD;o$kun_ zz&tP2sHL4r_f(lJh25pPllFP7XO?E-&57bSNqGI?h-vTM?IAN*pF z;dj&J1}pz8(eyiIoN=qBY`J@nN%z#GYkHej%rRm8b~n$&cHf6t;rstDugs!fOx_bJ#nQ4wemgEGH2dz~<@1&j2 fHb1%4oso^|)z4*}Q$iB}4pd8( diff --git a/TMessagesProj/src/main/res/drawable-ldpi/dialogs_badge.9.png b/TMessagesProj/src/main/res/drawable-ldpi/dialogs_badge.9.png deleted file mode 100644 index 3081873eb5bbc1a96c87c393dd5b4b9ad6bbcfb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117 zcmeAS@N?(olHy`uVBq!ia0vp^B0wy}!3HFwFZ>e#QZ}A0jv*Ddk`oTF{P#REL*d_s z*K>9_uluigP{H_tSU{Ep&*d`*{x4?hld{Nq;E-bbO4{S=qwXFj(ey-ahACXn9*6o1 R9|oGk;OXk;vd$@?2>>V`D1HC{ diff --git a/TMessagesProj/src/main/res/drawable-ldpi/dialogs_check.png b/TMessagesProj/src/main/res/drawable-ldpi/dialogs_check.png deleted file mode 100755 index fc7513c24bba3499d2d17462c1ea5735809c7062..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 270 zcmeAS@N?(olHy`uVBq!ia0vp^AT}ol8<6B)wpSQPv7|ftIx;YR|DNig)WpGT%PfAtr%uP&B4N6T+sVqF1Y6DcXz|+Msq~cc6kN^Menf2amJJrM6 z;q92?CeX;eW4&2C%aTP65zVaqi?|d-xsOCzJNw@|n57gjQGP-c`;pBJU7H+|bQ~OG z74}MXgTe~DWM4flxJW> diff --git a/TMessagesProj/src/main/res/drawable-ldpi/dialogs_halfcheck.png b/TMessagesProj/src/main/res/drawable-ldpi/dialogs_halfcheck.png deleted file mode 100755 index a158d1bb6701a4b279100bbfa49c45b1a1f916e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^AT}ol8<6B)wpSQPv7|ftIx;YR|DNig)WpGT%PfAtr%uP&B4N6T+sVqF1Y6Dc%>gnPbQgJKk&;S4S%ytj<-P$AK z;hU(qU`16E>!T|=&UYGRiM}sSX4r1_h^>bP0l+XkK1yEI3 diff --git a/TMessagesProj/src/main/res/drawable-ldpi/dialogs_warning.png b/TMessagesProj/src/main/res/drawable-ldpi/dialogs_warning.png deleted file mode 100644 index 88b06cf3152a77d63bdf4dcdd349ed7ea4e3a669..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1059 zcmbVLJ#W)M7NrIE;j)Qf#-OlqI8uf*-t zlrEJJ0~O0mRUe4T*{o!8uI|L)8IG_I>z$p7(jbb{6MvPflE# z;5crwGHcb?no8dBbL@Nh=r>}^MOtdmCDNi@6k@L6kR}Ed53S%DM$Y>EcR0s!W06~L z&_;F6w23F8#72z0fT1}qHxmcQ?qCX z_D07x9De2o$i*fj@GwOn_E!DKjPrb-*JS(TTH-<9gm&`$v8YCM5fn*?fhKB#EkhM# z4H0Tk)!}uZ$S^I*X$htUsF<>0LJbTao_PzMmRYmP17GZv=i8J9rX+Q{U9p=MNw^|G z!!RUSkrYK>7DBY{Qxpq+G(BXnaAb#WKwaX4gb_8#8qM=e>2U~NP_3R2`_Uj#EM-!R z0tt$;X z`?O-^dG<$iT*qu;thN+g7Bo$Ug4%3m1jET1LN;p~x*=;B9l;^bX?UfiTLm?(E0$$I zSV|WRO)V;ht`^Fcs;kxzTk#``d>apayUh0hn>`b27DJ3E3G0Nc4!dBnO(==lBml)C zxLQTF>nG=HNsW#}ws7b^z)m?N9_T08bWah09NAVOY6)`2&a&WDLqM7Xg$&Nf84WrH zvNe8ycm6kd5)&mQo$^oT46j%_Cfk!aV26`Q!af_Hkj=@jk<@uMW95ofsK;NLue^IN zAN6_%yOyt3cfe80Q&1kAk{nc7?4zOcWw@Z<5*&quwVqjx_Z9F9L6 eoBB4xrIxwfuc_zTZ$G7zv8|Nmt!KBExBdVib5NfE diff --git a/TMessagesProj/src/main/res/drawable-ldpi/doc_actions_b.png b/TMessagesProj/src/main/res/drawable-ldpi/doc_actions_b.png deleted file mode 100755 index c9ad081213eb06c43c6c9bde6a17041dbefd6c2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 969 zcmaJ=&ui0A9FG)43OmW54uwZ{m_OE}X`6HjjipUmS1`4-h1J{AH} z!-RoXJ&6Yo9=v++pk4$8!Cmz-@DC8Ys36RjuI+ZPh9vI?pU>y}ec$ir?bmC!mf|aM zilUaPn`(oMiRim2M*ILGS zV2CDNxC!#1L}FL#<3>k(EsMF?J=E4T69PG7R#1EGLR$ zq>)Z12_or_9IS^)$6uW(sL(e&%f%LQK%}U5&=AWs$@Jt1wmX+~{Arm;!ProDS&m6X zN16dO?f+2Qo}+!-fT#KXQ`m2fT*x+{kA|K>8rNNoLb;OSK^-Hnh0xBdiuFFi$nPT; zC`|!e-Lf1L1^%@OUelzi<73@1U{#fAqQF>|DJdnfoD~!?ljAcSSI(By3NLbMCRb6) ze7eNVxGFM+HgxceYo2n83%QXMY?nkgNM7Uz;%s5j-Bi*wmn$Yn_~ zY}D8@jh<~0_e9gVZOLM8eCQCjd&Jg9A3rUVD zN}^B!4-pF_-k~2UiOSA&6}nH&JPT$JGE&)-pt@!gXgEZmz~!>GAc{biIWb?5WpNKk zf++CKs6~X*rskhMSD=lcuebJN34habqo{!_0i*p_3)UeERFOe1ut02`q8{hv|xN<1-!@!X-W&AY5pJT zc}sLeTIg@Q{}hfolK}B86yb4b)5i68QdfbZg~%c}>|lJjsA6-7366$109soHmk(Uu z!Ev-Z!<(j3_akEYHmXCFr3#$uI*Mk%oF+jdS1ja2QO}ozq5&mMF9|SD?X?9LVtec% zpDeh}lB)|Vx#=i)0rd<~=-xw)5n>O_QdZp6vA~sjbFQ;87O1b}@-!GeZS1K=FHCfL z((Q6=>0vqe$fwgD(y=~zal1jU#ML^ib&`+0-^a(*_3YZ$r)N7aAAbpUAHB(Z@{QgP xQGB;`;r@A}{eF05+ti;t8|E(_-D1u#YZ+!QD*gQMtyoB}R$Xtv=hyE%_ybJPEUo|m diff --git a/TMessagesProj/src/main/res/drawable-ldpi/doc_blue.png b/TMessagesProj/src/main/res/drawable-ldpi/doc_blue.png deleted file mode 100644 index 91dffa55ce7dacbd3f9219991dc4cb829df1a401..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 599 zcmV-d0;v6oP)bhzVhWi;rcjt`(SKY(XoE7a!WFD^)jMzEDuhT9 zVFCug2KVp*MWA#r1#ZMXe|ncy2bomDCJccG9CTa=CEVx13=G4(;S~~@4XA@YBs?M7 zxd~&?Nt-1@Dnut~Dw&>8GIEW>DU29WA(2^E$#}`7aNiGAZ~@cgUsTTw%3R7L|Daoi zLdaxrzYCL438QdGK3VnXnM8+fLl#EH4^HSHS4?z41vIK2Pm>sSr6uVkQ!NvARhpkm z%u>CgRC4Ec1z9K6Avu?nls!%*n5P22m-SROcCy lC-Xzm6f%YWqtKTC0|20DWh;%`EL;Ep002ovPDHLkV1f?94J-fv diff --git a/TMessagesProj/src/main/res/drawable-ldpi/doc_green.png b/TMessagesProj/src/main/res/drawable-ldpi/doc_green.png deleted file mode 100644 index 4cef2bc7142ad281313c371fd6398408b9900823..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 613 zcmV-r0-F7aP)6spx zOK$Ra$|@8nd|9-WcPceuiyTr zRK{wB79r*PE{jZxYMEe`{XC&n|k1|%Oc%$NbBBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrH1%-SKpB45_%4^ymM7`@;!LK0M7lJysc492fIRm0noU+_tn? zEZcz5`zgu+$!P-Vw{fhxWuryF+&+zs^T(`0y*x-m{n zKjWRk0@VfIyaWaO9m+&zCI4!C)pfGd$gSwM^9w$PnXOM|C>05tDy#CEn7A7TyqfVa zlrOP!6Xy*ftG%Zb-Bu`1xa=cnDs$AOG5OQP%RKAuxc3V%iIxf85HgsxSm~tJTF0F| zA$u}j7kV;%>T%F|k1|%Oc%$NbBBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrH1%o%M8a45_%4^ymM7`@;!LJ&XCIN-wNvc9S)EwIGmvBHN4; z7q1j92%6Mjqb%Tk;i#iS_mYMyl?r#;Pa8U{;$P*~B&YaAreivDq2jK^6J&xJj-1w# zxfOpwm3Lv}9sVslIA%-43Y+d?c1R0+CDBzZIcu?mMk&wDojC#1oVRotsd33%?tjK0 zFt0)P`$dzM2{M!W<)p5h$b8Zwuwp~^fi%Sl|K&B8D4o<=>!|3Wm3Kd0(bHj`V2A1n n!|E;D-f$xda!ENW9ZJr+Z@Sb-&=Xt*8J@1d_eI1>51{IUG3N(TmumO~VV*d9X zjDxq}3AhhFrgP@sSM^W5z@P{h@PU(H2XLggZz-t&&0r458;3vyBr*kZ8W7_JBcKcH zq?oY09M}p!gPY9&uj<7;1HNpa&MFLJfy&x$s^7;aZEBUuLV~JgYD3?~yLC(6d9Cctb9bKjqH>ZZb zf=;mPvFJETtXPDltOAMyYniM~A2_SJOwKc^&9QV?c-G1JNqnr4${x*fkW?1fu((Rh zPHJcrLDl^4fnuMjpSxNFZDeJ{MnUT2>k&aKSov(DpmCPvPF-?km;GQ_iYD)&+4S2D-r62PFpO)TFyxjRs} zlQ3!%Ox$-dOISj@{4HccjM#3LPi5&?jf?jdmkycbZ!`Z^m?s|qec3D>W8fM8Y&H4q z`zT=6q8M$=K`bL<>af4e(r2MVs-moj(Z&pE(~k%fCfTZ-vna}nm^Q|Yt7(WTNWNi! z*Jr@m1sLkl1uq=;a#CJERjcX7SO||QgtnCH&=Cb`Q%Y&FQ z`mSKCK)P+v3}^!HKm+$^o*att&}Rc>cw`AYM;aSHyE6iaY=Mpi^XG*xv zxjBp1@PJF+vK^aL%zVcN|%-pjXlvqegH n-!xk+&PDrPrXxMQ{SjaQ^#sp&4_1g?00000NkvXXu0mjf(-F+! diff --git a/TMessagesProj/src/main/res/drawable-ldpi/docload_g.png b/TMessagesProj/src/main/res/drawable-ldpi/docload_g.png deleted file mode 100644 index 1547d6694f0a4dcbd962c8f6f48f64a6d680e716..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 964 zcmV;#13UbQP))@mO@}Nj$ct_kB!e!b>|=FnU0AyayR}xtE($U{ASqrmSNnjG8wxA5H z8!fu9Fe5hmKkz?s8g4u1Y;!&E<2~!%2|u6?VoyqK@oP~0jI%kU`uk}a#8^r!8{lQ0T2SQbb(X@V%%T^bb>t; z(*e9-J17N9NhyEx@*W$X>7);Lx?rhVNCLEjW2`^rTiyWiB+vW;U%@MI2OI^>Y~5NA z20?HZ%$aE+dD95RNHbpqE^s}Cn1w9PXI%6Vqt6Iq7!o8m4uBnC2y6v@C3ExB*ARUV zEF>yXP$B368$lm92*#A`*%*EHF-Fhj{&R(?1WBLS35LNDFr{SQrs#W^vD%Xfk`d4Z zesjp?LX2KiBV#q8mE4Jfq`boGOCYM`-lB{pb`_%RdO?Rd>qfHFfz5PunNA#>8vY78 z#j@L?<1n#eA(pZVC^oERvNnC-tZFwo&uBK!(q`dVmGhJMSSOYJy5%6QEV5y7m6*4w zp>N)@0E7OvupCvH9VpBs zjM^kO?t8gQSVr9ZEnq^7*glreW$9Rpi}x0n4w>cebN{VypL_`PX0mjQgBSd>+2ptH zrGPn$V)QWwv5bss!~PmekA)7YiLxR_A2XoeeuTJTl2qk_MNwA7v@&K?+lFX@X@TBvna+%pLLAUfYzB!m$`lcHO$W|!5enIOs$o^D(Sn1u?*$* z)0}aGoGc|f=;v}^c873+&-&>r$g`zsv!@?F!Eta;@+J$yZFWj`1TIAND1$o mVT(n%Xg^4Iq?c%a1Q-Cvvd?(t^zX$00000|k1|%Oc%$NbBBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrH1%rFptIhE&{2`t$$4{ow>AAD(8O9;=Kij*I!EN-wNvzQDk} zQc5h}x=~T=b*f`PUm9N%(-W=<6Ipg%G%|k1|%Oc%$NbBBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrH1%<$Ag}hE&{2`t$$4{ow>AAD(8O9;=Kij*I!EN-wNvzQDk} zQc5h}x=~T=b*f`PUm71%zZGaPgQu&X%Q~loCICV!MF{`^ diff --git a/TMessagesProj/src/main/res/drawable-ldpi/editheader.9.png b/TMessagesProj/src/main/res/drawable-ldpi/editheader.9.png deleted file mode 100644 index 20fae4b6824dd35c96339c1bfb23976c90393f33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^Ahr?*8<0#p>+uXo8G5=nhE&{2PH<@WZ(%Tri-}=f z<14QJ{aP}i7OM(E9x_a^mdKI;Vst E0NKbPEC2ui diff --git a/TMessagesProj/src/main/res/drawable-ldpi/fastscroll_thumb_default_holo.png b/TMessagesProj/src/main/res/drawable-ldpi/fastscroll_thumb_default_holo.png deleted file mode 100644 index b2aa1e95c2e3429ea484d3919b5ebff7d4233927..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1071 zcmbVLPiWIn7|$#W8TKS98wfE2nP~pJ{8^i@I@_dO3wGA5V2^uEUe~ZCFD7p`+i7@m zpvT?yAP56*f+#Y*2p*IP1JSFuT|5he`O>x1!`Q(<^4|CI`+eW$wH)o>rIYp^3U)bv;50>+?-# zec91nZuTZSlNi*2j|gNFew48g!o?iyYgBkmUk*B&tT$hm05XD}vC-f8nM@u5m zbzPKXQI>g%;N!J`z=RLt$)N`e#ZKgf#KQrbdW3DfN(vlRdUORptk;hn2k{_LG-YA} zLlFp)==qt^~)s-Dy2QuItMarpiPVPwg_R!Bs{As%2?ca~B04AI-!>&WV|L9dHj^LigTuqw z%&U>}ne6))&nCY&E|$g~zY#x=*rV0br7v6i&l~%8=FGv@M-v*^+r4YfWiM;w>A80s oA9t$N%+KyN-rK#hICX1dgxP+Qt-e0-tpuLZ?ctSH1NV$p0ed2}~n*Sg*8>Z)7ox@bKJ&L*>M+9nf|sk`k( zQ79-Xt&gMPu9!8aVt6 zB^ahIu#26fGrvnWu@i+MCR%ko%4V2EYt@5hFCuISb=hu``}FWJ$J$ns+pp%uyq8AZ z_Vz&^?Hz0{nuEQjW^t`s*hE#Q1{_2nTXp)}K(8jbNxM3g!)<|MCn2Oa$xQ{-neSlJ z*hj1yRe4hc3LDd+Km|%1Y-S}9$bu*fK<0s@i<%BpcKYF{H{UAj1tUA{i)u-(n-EVI zgi56nt;kXAcL_k#G(nUEN#ZGj4+dNUtGpYmt64BmVEVR4Z0xe3MOec9B+1c8r>@|5 z`TUGwH<(ToO_@-Io&chv;5gyECeZ;Ypg&>EiVlhc9uf*D!2P~S>rq};Bh%dd+ffLl z(dfHf#xKt^uUjFgd5)7exkD`h05#?83_fv$;azHRDzifd&5$<@<7f&}|T zjQeU`(9w+v4!W_&rqk@kJTz@L)SJT^OWRi7zmH@0+yhTwhkylkY z#w#!m__zWr-i)^ZB$Z+ z?t@2k#xCcKRI&Q1^lM_GweJ3$<#iEe@o6ajXnZnsaJ2FIiJc3Xee1vD9ZTNNFR6*I z4~~t?&C4>QTkCHogyx}J%bGU#yc_zsy5r5(vliRFR=srh+Ly?J&j&u98{ZaLqmr=~ zd(xrMaPN*c=giTOV}sXvUN-a$Osp9B`DwWHp^IBm-!wil_H^Fp>w9DF6);>{`uu#u f+hO}#-Mp2Iync26g{4C#5QQ<|d}62BjvZR2H60wE-%c;pyTSQgJKk&;S4S%v%{BPcZ$W z&6-yD*m%lp9_IahQeIOQ$~gSt?)X13OGB8?HO8Svq9c65R6Yki*F*7*Gq^ka9d9b! z>0QPq{jclHakWaJlMVv^c#eF`c=e|7Mw5v1#)sb>-tZhza@Zr6bun7u+tD-)O-nA7 z;~c#C5`i!N6IJaU8WgTe~ HDWM4f1zKG~ diff --git a/TMessagesProj/src/main/res/drawable-ldpi/group_aqua.png b/TMessagesProj/src/main/res/drawable-ldpi/group_aqua.png deleted file mode 100755 index 9513462033429c90b498e2570e6315ae0a5f10df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 845 zcmV-T1G4;yP) z-JvZ>((yw8TL;n756ZH9)sQ(>&vOR{CP;TTqtB&Q8YTW-0vyx zB@&qN;hje%2i!LIT$vCdKsy?6j-h^6AC4>wwS%(@Kph%GDS(nDouOdF*VH?;d#P(E zfO>}BAYSDj{(l)WP{xD+IsKkEAXaTGgqR@-wvJ}Br=FeVxd0nVF_z`clA6liU6#F! z4HQ7ZHf{tcj1$UxrTSKg(ojt`%C>bFrNYejqis&BTO+%^>FSyW-B%9?mHOMyMU*79 zZ-hqswOmuD_OxnQwd%((9h;P{l*V$7^aGf7tk}?;)%T0lh-)nuiuPzjn>8Ufb!YxH)W~i~RZZ zl!N9VvTof8RG7-p;D9n4kEm0Fo++fM4ZVZb%@xVoY+8E+na5M(m{yGfdV-#-XRA~OkkooW^23&Pn|A&x{?H{xjPz&hX_9Van X9l9|(jCKoExObDY?54$h$sX;MHGNkffg2s|ZX*_qjY%zga)WA8CFe(#aB3@8K2fHI(6H<3C+7KM_g=&J1b zt6&w*U4P~*cLsD&(YlQy$8om@m%*w(UR(_ARTw_#k?mIsM@{2DnzhZ^HU0hbdR`G9 z2&k&7ACC8*HcRBAJUKK4p4&Q5AtxQTE0RF>cSRBos@m3p%%aM^YnZ%spq!k-GgL*2 zJJ~%)8K33@+>JBwkP#AzWwF~Z%9;Y)5S6y$Ur(LE#7T-!1Sq(_V9qPjY1iDiqrme< zL4n??YTthk-DSXZWXt63qAd)g_#i~zt9JF>vpO0a;1zF=Y9jUs8FIWJ6%eHF_+YE5 zSM(fV6@Wt4WdgF@Wh$Bo8!r}Q>RNOT0#w#=>_EVSMkPyRD3Zto)U2e)b&wldSZ+km zF&?2zKxwlI`fZOPGSJgTfLuSFQ#)AnE70plh_11|F45NS5r^mWI4 z*{7Jn5)_2&Sdj1JlVApigX M07*qoM6N<$f=g(ZeE1BCpEP)n>*A}k$4pvZQU6yK_XdTD#I`sUt`)WXj zZl5&IXqw)=7{%dy`7mAlNs{C<`=2axkZ;PK zeZes7!GR<}=~{1Dw%EORPH5`(!GSc@q$ry3yrvol2jY2={Jbd0Str|blriOAKyxg= zi9+1Az)KLPs@wo>h{|BSa#mAkHNizF0w~^JFpGlHx8HBw5h6g5by&^1eKYzIZUQ2c zMflG}N|Gjs=Q3>18oud%Kn4e>ZP2-58IA}D37#X6zOxrW2Q?+n-vQL9TSP!$<`OhX zL{Vw>x+3X?XOZ_HfK;VX!d^)N`bW4rL1aK0BLXt?6LKJ2ZX_#nG-2r|msgNc39SJ^ zG{i(eB+q&p1b+77I`oTy;)n>y^=4&w(v`nJhJCTYXeR4w2q5Tn$RmHbnnm#j8TN%| zB~g{cS}_p#o^hFJY;qJulhch z@$44&Jq#{GK)-^ln%fdKIK5KkdSRtwQ5iA_S0#FCU2P6JmpL@sChN?;=vqUbL-*jI z!cO}fSsClK7OrAGQM)W@W>I66o#0?W^_V&LyEO-9sh<4~W;fgj3XLonG@Gut$C0n0 zwe^}=s1=-m?O=hc0v2RTT{X={2TE05yUokcZhOIU?u?e+Z0k~7zjLWb+I}V&R%jc& zHa-+kO``@Yjw47*uwZ)O_C@nQ0ugOCPGN!3kL&*sxNr3btpcim4lREL7y!QvHbzfU R>dXKD002ovPDHLkV1l0ukWK&q diff --git a/TMessagesProj/src/main/res/drawable-ldpi/group_orange.png b/TMessagesProj/src/main/res/drawable-ldpi/group_orange.png deleted file mode 100755 index 9914c86189f84bb072871861ab8d8d4e1c521c54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 893 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 diff --git a/TMessagesProj/src/main/res/drawable-ldpi/group_yellow.png b/TMessagesProj/src/main/res/drawable-ldpi/group_yellow.png deleted file mode 100755 index abdfd7a0bc2773aebdd92ebe65654d4c764e6798..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 867 zcmV-p1DyPcP)YPK6W|#vXf0(`GT&?8ct?d@lbvHtK$Om6)Z06Eikqpcp6yih<61Xwn%-vq@^1 zSb0YKK6BW(#fFFH2Bhb%8%uW*=r2S1?$B+2rOhp$(KB_Kp1Wog?*2pb$7Xu|mc9BC z8`(1gBI#0c?X^+37w$@{^aNpT>Ok0>w~7xCG3DW08Un8&dj)~w628;QsF9FB%9 ztdn#x%+tgK)l~x;H6zmaobTENxkGt#Fi#aPMe&yl_UDDVJoT`iR07iH*COPYKpUY9 ztE^Tm9VlW@)01U}@4IR-MElWrcuByV_Q|q=1LXDgqa|7YfEyqRl1hRq&jEs7hbvj! z;db|Ycf@O5sTGw)cnL4#IR!8|olol)5j z-~{7U2;}t}(vW0Bp@h2a9hf26PrDj4WC+lAc*6YE{KD1fiG_x{@55+Xm2u-!w4Qog z-xQjMQ3xQ39E{r`Mshnkj(-;m_e`QCUy0RdT}?Fuw4h&A5M t&Rq;ReYWn0AbjH+v=}G`n)diDzyRK9h=VfXs?3~%hS)yA4N1~^LErPls?dM%-s1B57Rx5FVPDBc#in};CbNk z_6MdwbVcV|JyUGGAJBi*e9Yew_~1P1JElBp00i_>zopr0L@~ diff --git a/TMessagesProj/src/main/res/drawable-ldpi/header_timer.png b/TMessagesProj/src/main/res/drawable-ldpi/header_timer.png deleted file mode 100755 index 4d386984cc77f26111d56774aaafc3a1565fdb78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 542 zcmV+(0^$9MP)2cyo34B65Q!zC)1J0V5vgN3lw}WHibRPhvR&#Db&7~iDWYq3 zPtm1zDZ7`Qwf&hsj~`9j?999&(&OVj^XB*a&HKII?>iyOvJ9t@D^v}?qrW@SaIeYu z=bsKA1KBVYWwuUJ<^FF+_{M42WbK|REnUwO8{d=7gs3#V}F zXzx}0M=Zx-6_zoq)xFcsv<)eEgf^W!SbJIGW3g$ZG>Yuy8`yEh$O#Ply zAB@3?PBU@R7p4ob^=!0WxC_v>7ZhD#uT18Nhi=Y&}z?a+%c1 zO|hzaU_@*^1MI>8Mk$RLs^eQkI^4@t%I+9S5cg4{NqB>-(|#klo`QS0;v{L?<$p^H z?66dlaszW(Vkdb$5IuT;GZ8zLib18W&eqa|@6F7c`DW%BrfG(pRxbY*^1HfQqczX!LchHJ zl!F48%Cldk`T!34VGUkk+In#P^nG8kmS`{sh7oE*j6#BXh#}v3wt_r{Etr5qxOCKa zt0D}|vz>vG8W0*Fu2l3Rg;`kk6#*fKF}}xk7&5ScV%hdi6Ji}w@BocL?qCrHp%267 z4$(yrMLuFgQPYm_9gk&oM-gW zn4dlvf`cHh z?8H>pGewfiWDv_lEqupZSN-G1F}x% zwZ?TCZsCkb<}8c-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`f(~1RD^r68eAMwS&*t9 zlvO-#2=9ZF3nBND}m`vLFhHXsTY(OatnYqyQCInmZhe+73JqDfIV%MiQ6rPIL(9V zO~LIJBb<8mfsWA!MJ-ZP!-Rn82gHOYTp$OY^i%VI>AeV;updsTJHx=hINQ_3F{I+w zmC)URhaCi_+C1r)azf=u5vzx62iF9x1FINH6;?RBI}p(5!tSMbkaI}~*OBP+!kg!O zwVYje;Ow5r=w9CeRZClCRT4$C|GD(>= z_ZY4hg#6cZQPB7J$Dz|;tiWiq;K;uH$tva>4xX+KW>|Y-o~`^3mTS-E=~gZ~si>^L zX0vp1cVDLUW)5$jLiRNRk6HeE|A}K}J^U!}Yv-@VQa%qomq~l3SPC>v**JZMds}4k zQ-+j@O8kr~=glzR`MkWHb6TnLlQh+@(==BvO!?W$b1|sZ)8qb%eF^qc?*3cB?0Qd< zeNU&FzNb{s`{xE1GM8CZ`blbix~1@aCbPS&n&HXnVg}XBMch`GEDIuRWhM=H7!B zwl}aI+wt|yV@ZWnA71CHOMXah{CQx8SKqcnub8zMxfi_lf3%h1X7vvS1CNWBw_66h z*PK(>;I3?VfFYxp-~|-8%mzA+!PC{xWt~$(69B*! BVLt!> diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_ab_delete_white.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_ab_delete_white.png deleted file mode 100644 index 5cc4f8f35309d1737796e8b138af18102e3b1444..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1245 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 CV03T* diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_ab_fwd_copy.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_ab_fwd_copy.png deleted file mode 100644 index cc282899b10e63ad9b1bd45e19ac1fdc8e1eaf5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1103 zcmbVLO=#0#7|yIr*&IWZF-7oOc5%b}Cu|n45iCx(wRav&4WbJa4HaFEo~YWp=Qiqe+5SgBI28+ zGAidL6y33CEwrHn%f)Dd7)=DOrq4hGDsbAgi_R?YDR4^A%R zOZvi$E*oUxEEo+GOkhEzfxw!zeIp}u#c?w%l{=AK}fU^C;HiHU%-7{TeIyMLywTd%`;v`nu48d}9xgBELZzT$+ zj0rTC;b@kztT3*IwU3JMkBnWd{nES(nIiO^IZwy+m>O(@aqjkZ6dGbR%0mc$e<$HZht6=R~>#%66FX|@jAzD?}Ag-z~>RZ(=7nr_2-R^Ua<8MCU#izvACw}C1Dj`p zo9CW99{);puhD}Whxb#DG7k?;oG1wS&ZXX!wdLXZ#Qj^PZyl?By;n{ajvfH(n?3!@ zF|bkWt4PbA@4TqLc{%j`XtdDaZ~zX2zr BTZ{kz diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_ab_fwd_delete.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_ab_fwd_delete.png deleted file mode 100644 index 25b06608ca96d59c2309d2ca2a55413a5b390a6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1265 zcmbVMU1%It6rLE{Xlk$;DNUq!GZkV=XYTxFcZS`zacAQ$bk}t=VrT?AnYl^EWPWyL zwz~<4CJhuTEri;pRf{#)`ceuh6(Y5CiM3FCP(id5!CKpD^Po`#3$5avBpZDQMI4y9 z_uPBFbH4L8ujjJQG}JfO69mzaPAPf3t`FY_R^#v0Qv5bvnu26^(B_wuWq9F2~6QyE5K~$B+aI zD#2i!TqM<<$$^C9At2Hsr8BGmA`;DttPo{41CC*N$ncQmDVCENNoGZ`^pMz_XY|Q= zrE|#_mg3|<5V$ggrBaD5@wDUhLspU`$Z(M3D6B#G!*-yRDcj#zwV)th_e?i19UFue zwO*$f#7WF_F$BxaWR?xv{!*fF%3xV@AxksRvck9)wEZBD{-Lp=wyzGm2)2IAuVt`)p3TZU631a0>>Y4T#!hBr!tyu+M(PQ)@U(g1$pK!WORCt1s0Ml zn=26bZ^19(jsKfGh)Kb)Q~uRC)g#=F;dXfru&_Ky$j0O2;W=p@f9DE8)I63}I@I!& z>(8I7pWXJ*&l{*~50hgv@|wA;Q_(x?wj71uKR)xIJacxPs^+E-ehpoEk9A-#5atVC zJo#N|@oiT_vPxh zwte#Z=*Z2c*;aQ|w(>}9;!K^jxwaBfCW_?e>TBa|yK3o|yf;!G^;f1pJX81H{09xk z?;Fj5+ptF1u1>vQK05Ko&fi)u-iqxzaN$<0c<_RGaqSP6rEhlcK7ZuqpKE_QTzKyE oTvqR`J6ZAJ{M&c;ox6WMvFgOjPqg!~Nca;}g=F*uH zcQ$BQjFr^~siMWc6#Et*DzrW-icJLdMT-w!0#=Yf3#BRb!9vA)Cdo!0LJczr5*;}7BQuZ`4QyzD{43 z9+S#!*~`PaRh;wT(Yev8F*j`}CYgQ#423E-U_+#X(4KJuHB6Cfc2&HOju{fHsi5f; zxlU@lJO=Wv4}nBWl)-W$NGdcZaiYxa2RzFO3@b34KykdvDk>*|jfceEd~;H*XoU@5 zSW1y~ggljD8jS|s5NOw*VmL)n7?x*vp28Yb&~%UAdd;0h zDH1bX55e}zKMr2pAAh*gpZWC7GkXv3zB|#~UTmE`dG(vF_xHY?83`@8 zEgsLja%BYd6HiRX22X)g-AlFaZhw|ox;%EEcz$Pj`8hC=5LaUpkG5VPAwH~wzaCjS z)cSExJDvOKm+qH;-`+k(zIf%eNx8k+vvQuO1^e!SUCWO@c6=yv^EA`D<3jdMf4h01 z&*{4K>{;-|%DgSl$FIi>@MUkpg$pq{cInAo!oZDzbZ_yiI$z8^^TD}W0`<<|=wh~Y vI=6T&GrzLjdT)6CWAW*WR~LGSt{p`E-R8ZwogdNDB29QN{h6}WJWDZ(WX8?t5!pbND&cJ z(WciXQbY{7{Z7u~dER@|E2CL-`8hN9o_qfHo_p?nmN6z)&(;*Hb89Sto5xqva67PS z9WtxVVwRu}QeeX=EO&P#u6`^);8x7M27l6^caT=Gb`gP9gg$}CTQ1#{XZ>}n~GsDGrJyrK1;*F5*b9BjdqR!vpQG^zgn zO{&O`iv3am14U@_jKyJ7#|uF*gwUsg6y$Z4&meVv4_zSlB%v3u^xL;6t(PgM-pXj diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_ab_logo.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_ab_logo.png deleted file mode 100755 index 5170ace06fa96ba358877f2c35b9dddf6f7b1702..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 674 zcmV;T0$u%yP)dkP$v}L=F|jLzkOd%xTY#9KfpowF#H)dp>E}SqMy#PM%*+g? zdP)rTW||Df+DZ&{6IU}_zl)K8{sOTo3pAY*Ww@rYG}ur}LsbSIE)KBRmv289Zr*=} zO*tsI!&#u22qzE|<_8<Eg&zi zgvG%uLaITAuh@DV%)WTzA;X7HUkPbh39KLP!%|Tb5Pu}3WA~BEV8gc_I8R9FcOb4o zuhBf9bpbU>)Ci#KSEAPkp!zin8g`U`GMM4mYBW$>_<(|(41+; zigGfzGJi8py(P=bV4*6&prgXikox;SBh&p)499^A|8cS~m?dfb-|8&O5Xr>Iz;NXq zLmwkU{t2)#rN;j|H3S)ofD+96pDVdb&7F`3on_P9ZcLE!+yvYis@y~3Gq Qfd(;ny85}Sb4q9e0BemnlmGw# diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_ab_other_white2.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_ab_other_white2.png deleted file mode 100755 index 9ff5bd3e7d90a089050def261f752b4480971066..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEa{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i<a(30|XUA!{GM6~x9qbY+!10zGibbj>+jTdKuW-xfV L`njxgN@xNAQ1dmk diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_ab_search.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_ab_search.png deleted file mode 100644 index a4930c587a8936c65061a5592458c12c565e91d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 459 zcmV;+0W|)JP)!p|5HAMe>1tB^zlgDb5nCh!4OawG zyMR~)h_^xw1_5Ir_J;EPftEZa*#fA`&jT@tjsO~R5KZ15NUZ>3km2S)`M;#bK@rsD zap;DF08}gv>YHS8d~g*=Jpvl!iBBU?-F6_w2~_7mst-V}KSf0Rfz)V`n@rh=umGgy zFF6)m17dq3EU-sPT_jmB3y3X&VeE$|{6TV-&^$r11#_X{yA)_pG8V&=fYe$bz6^}u zmE>kLQ6M!Fhy#K6CQ_uE0kJv||AdwTSwOr4Xwf5*EIQkr4*)Sg zRA~Xwl8Gc+Kp-D11yWH+LRc-Kq%`dV;*UuD2|!D8sOAHxFF+}2J5o^n0{ViTYV`ro zu;W0=4ap}9sOkeGpU6QI!Y1_6m2tGvCjg^*q?V4na0002ovPDHLkV1o4x BuEYQU diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_ab_share.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_ab_share.png deleted file mode 100644 index 67803f8ef0cf63ef0ef2970325b1670c9f8a8cf0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1280 zcmbVMZ)h837{A!HtLIOHR%BEoST=M}_eD|Wrff1nWPTVp7T;@|>W4DKgS+>A z-uL-E&+qwni-QA)+gc8^U>Mex?dS7o^*C>H6Z&4S#P6YHzm+apL)x%a5e$fNl2(Es zs|X`74+UvzVh#3SSc54SidHfAJS%ESKyY*dwxT06hV>+DT@c5h1xj#4R^#~ZpI*X& zEXDDc!Z|9Zr(jv`pElso^guzJ9us2{p6CTVHj4}>&=P>HjH@PV$MFrjEZRHABn~!I ztg$%0NvfC|1S!pcARGu2B1MNlBo?58)Gfp(z@&ZpoSo z9E(Cpo3!FMV!9cEqUUnkhE;PbQ7C1kE$Ad2ph!h=;@Z$QtvvjP#*W%%VM>Q&9-7*u zA)`$rWl?I({wu67vnje3#T$%B*UbcP#v39O-oQk zSobX>-&@$ehho{30R>Al3Ys=v?}EXyW@%Hj8=M5IWkQ~uRC^&`}d&USkakgz>TP(|ZopgHl_zdXP&mp99E z1^c_w{aP*2K)7yx)Ofn_(7Cy9YqiI()Q((xWNCFiIr@ydi#z$2Yohlm{zSt$pMK)$ zGe3djjn(Dbr+l9zJKpp>w}Q3q=e}s2{EXQ5>)X;RSjhA93Izss-H0TQK3W}3{?=Yi z%-Oxv{lwnW(h_$x+1Y$x*P*$4&F;Uj3AV7d2mE-d>ze!Kf3 zetkZjJkh?`-g*Am`ts+($rq!qXYNQBvE-}^^A9fE&aVFOwewHPrU&@*eaGkj29gn@ AZ2$lO diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_ab_share_white.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_ab_share_white.png deleted file mode 100644 index 7cb39f52dc23a0bd95ac8f53e2a7dad24f741f6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1267 zcmbVMPi)&%7Ji7*v2*?W_g1RsAE4TZW7Z_J8`lGNQtsY3(^jA?3ctewo}_( z(lSt63JM)afRK=O+2DY77*sh-APux31;l^~fpS7fY@t6TW)`Py+E8%6d>~msS=a`vyDzXJJQ8jar zNa%6_rlG7(j$eaA7>18&nXHpdKEo@f?v-5~Z&fcNG=>cgSIe?81|1>?3z`uo|Ga#K zBs4Wl9_NxwvK)m)ZDh)V$EHRz%G8(=Qpw>biJ>Zw4Cv62iK<>QY`z*M*X;6W?;g`6 zv8LjTg~|1xvdI(?H7!VRUXD^2;3onhFW`Vb2nGn20X~}X(ZELmmS;jd;E47^B5#(O z=hITW?F&g^vgkNvo~A36inrqPnpS}Zp-_lsSej)iq(Rw}h9g%g!#>!tAVFKPw6dd_ z2H{$ibLNB-CQ+p8Dd^>7a>KA;w+n?zMpxxB4ZIAk>uz3a+P0I1|Aw)tww;+QLplv@ zbHY+kKk^4VU{t%iJ8~6KH2kxchMFRmBvYBtq2VN?Fo|xws;2T_FdzlkU<~+KW-tgq zkY&Y~KN#VF7-2#z=-Ai{D+UIo!H^%Y5+ec-^F>0ED2ZG&E(YRkjP-Z03Bz_|LxCN? z8uHu5GIz!DQ47kBX=O~a)L}rXXga1{G|NOZN*qbbie|X-qi%oJ)0Lp5oq}rIGIe6D zz`V9e0C^u&m3+WYL7(48A^vcbtO7`}N?r}*S)UA8NVf6n|0x`e0-{}p{D(1}BSb@Y zyTN}XY)lX|(AZdLK2|-{5{7j>l#s+s^~c=G>gq5~b={A@@%aVMtHP&!wL5rACH6#* zUmXz-*?8+Q;@8N|%Uc?MHE+-Kp1nbwKl&k&+nRfP;O4@SOVj&mFP^{g2iADu&83&R z#)s?USGyZ;3oAXfE731X)4|=fS7xgB^e=3^c}}>9HGU9Ifl$5?$^b9%Q> z>TB#zMIXRhh1_SaFV0R17i*84>aP{B*1gX!;jw|-t*^j??|SakYo6|U@Y293 z-?1n13%;xVobc__^Pc7OTf3U?o6XVK-0hje{fE0-2a4ZcpMB@P-)EM$a9@)C#5QQ<|d}62BjvZR2H60wE-$x>*?YcQgJKk&;S4S%v%|SnRyv} zc~TvpEm^W;j^gzNmc`FzB$$fCPKs!FH)EmjvM;705`H=kXFN=u8{0NAt>jZUx2$Vn z0Q2pJ8;l*o4Sy1{c5D&tke&EL)uGwHdl8F;A074Hvq?>2S~8!pP)fj^ z;bZ!O06T-&c;#aOISuR`>W;N)OrpXpk7hbFpFU|S!g6FoMp9pkuGG{6^H&2%y6mJYD@<);T3K0RVEpVr2jT diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_attach_location.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_attach_location.png deleted file mode 100755 index e9f5dd3a46ca7795518d48f0e2987164bfa27e39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 411 zcmV;M0c8G(P)7!bQd*~&oN3^Z&3l%D_xzdPTrpg#0Rj5AB4&=kd#f4Vw)34Ed*jEsL(wijt9E(JK2Up z4OReB%b?t7pn>=Csb?g%kOmr@1P$wXgw!&Q?2;cKzyR5rW(B@QEua7Z002ovPDHLk FV1l-fp;Q0> diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_attach_photo.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_attach_photo.png deleted file mode 100755 index 938fdc801e36a75cd7d33043de4d24d8f03afde2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 375 zcmV--0f_#IP)$28fx74pSrm3YSVCJ_y9#KpX+Y*MN8`5MKr2 zPEhcX8vBQUVYClOHv@4U5QhPA0}wYs#Sf8_qz(cjPZdbJp^19{#ns3)^a~IR;E>}7 z;?Lw53QDV&K}iKY=>YK+q_j+up@Bfm1;oYBi1`h~mw-4Qh&iG1B*#7<5KjT(3Sh*< zBjq?bs5l=vhJpYnLRJF}I**i24e_N>bVDBju^bjPAOlQ@$Wc!)^8RQcO*H@zU;qie VKpAWfXQu!F002ovPDHLkV1k|ehG+l) diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_attach_video.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_attach_video.png deleted file mode 100755 index a8d090f408fd80c63516f0b4871583716a96cd39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^q9Dw{1|(OCFP#RYSkfJR9T^zbpD<_bdI{u9mbgZg z1m~xflqVLYGB~E>C#5QQ<|d}62BjvZR2H60wE-%M^K@|xskoK&=l_3u=Bna<)z@cmn|s}$TKcsJf;{tmw`osAtXxD*o)!g2cS(1p00i_>zopr0L|4xlK=n! diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_auth_next.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_auth_next.png deleted file mode 100644 index 424b9eb2ff79de96cf267d5c3f061f212e3a76f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1215 zcmeAS@N?(olHy`uVBq!ia0vp^oIuRa!3HGFPCVrWQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?_JQLn2Bde0{8v^KDjP)EVYz|dIVz*yhVSl7_V%D~df&{P2mlz_GsrKDK}xwt{?0`hE?GD=Dctn~HE z%ggo3jrH=2()A53EiLs8jP#9+bb%^#i!1X=5-W7`ij`p|xTF>*7iAWdWaj57fJ{tG z$}cUkRRX#c;)UD-UthSvdBxCx0tT6WMPh-zp`L+$ZZ61QVAaJXL8%C5U{zflQdy9y zACy|0Us{w5jE^*Bm}X$u;kO8+5a=2!|DsG_q$K9J-jf z4bzg+5)E|?Of1rLO%jumbS*8-jdd*z&CHEbP0WnVjS^wzVAJntWaMmN;$~pvVqjos z=xXd_>Eh_(XzJ|dXzpg@YGeY_>zP+vl9-pA3bQ*CXg5T!s~cXuR?bDKi6!|(A^G_^ zuv8F`kzbNuoRMFk;OwlR;hUJ8nFr!)g5n6`WtY^V%(B!Jx1#)91#lo+Wnysvah`|h zPa!w(^ns4j2c;CGlmin2CPxqxo)3T=cuq>q17@EhU_LQA+w&Tj#~yjQIEGZ*D!FLS z&6p^2;N$UN9x=&13^U)HI#Lwqb+@IJhiB7|&vsKzE<4fGDxs1-Dd_`K&%K6C8eY$< zzv?`f3!ne{>fP<{D(6jJRN9r;-jRFT$(>7ak;marThAvh+_~hgf7BVFM>ho8Y$g^f z#~5jOB)Cd^anYJ%_{t;EQR0J(mW<)76A6AV%IE!_bM=4Ro;OBSGZwAs4cU>J5;(cO zsgLWKgtza7fca6@)@gI)e+q|4GQSB_sMuZR9+1LQ*y8!2NS3kj}1{rUgjo_T76u|PA= z?c+|a%(okU7z@l#W7s*x=?%{j^~N6x0p&7@r7XP>4ZrFVdQ&MBb@04oY#yZ`_I diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_edit.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_edit.png deleted file mode 100644 index e8bf3fb5afb70149db71a9848f335b44e7922b1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1169 zcmbVMTWHfz7|syO7|ct@@Qztj*w8dNX}dOA>+G6#>t?sn72KPq$>|!`TujbvH$k@f zpiX=kqC=43gW!WAD*B?1&D(>BvImtRL%h8x;$GDkJ=xaj!w@l$ob#XafB*mex18*3 zZ?3G^SV0g(Wuiq);dQn1mb>t`;nmqzylgF@R0%D1N^`j1iMI%1zv{rGQdj%PGETf_{qhG!rm+;E2PBuqAx6ksT@M4 zz%YeE!Bg;h46BC$JkK*M$8a2tHE6qEM^cg2?QJCsBD7^oHIZuQq+?Oa7=0*AVWtZq zXl63GWLUQs6NOX86eW`Z9+uHGC$4#I8>QfH8p~?i>3$P3DQFvgmW=C>-BtqQ-2L5= zqlnoE9hQoVBIQLx?$e--5@MLbHy%Y*gkT`!5Hm#JL#fD`6A5jU-)$CEqIcy@&;W#R^di zO31L%hLJCIL1)fDhMhA^G8!dolaj3Jj$G%|Xdz?~TIyk_#4ST3=aVd`%Mkdt;1}@9 z|0a*Yq!_1D{^*?25pG9kyEF$_SehiLco&cKl*)kdi3^@)0f|FpM1l++fIM|F}P~H;2M2cHF9ige$Ty|J0D$J zJv;e+EWfrX>osezDaMG9&8?2KX<*lcB<^f#Vu9)xpSd?H(q|(?Cv-< ixMOVOM_YDtN12P*ey1xvHQPGl{3H^wcJW%%f#F}xWP#!U diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_gallery_background.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_gallery_background.png deleted file mode 100644 index db9cd62452756ff57d4581e15e0d6758ffd934fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1212 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i1|)m0dc-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxR5#hc&_u!9QqR!T z(8R(}N5ROz&{*HVSl`fC*U-qyz|zXlQ~?TIxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD#PU%0_}#n6BP2AO_EVu8M)o`HUDF34YC)x{-2sR(CaRb3oXS&*t9 zlv`|fiFh8F~TqRg^xu1Jk|I^{*8q{kk)j^~UUb#!%^JFhZrG#B{H@KHrU zY)NaXLLINbZ>7%0nrr+=-dx$zBbYT&UaZtAz|t)%vhB2z#0Qo~IX0j6ILu)@l5`~E znSaY;p$knCVoG)nd&D||8!GJ9h4}c{t!7FJ)`*tvc+ODBEWqt}^vJ@bUoWI27n+)` z_@uJ**gvKtzZYmulWdbo5}?rPxrXFVdQ&MBb@0NnSHaR2}S diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_launcher.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_launcher.png deleted file mode 100644 index 5f95431f3f0c7c82e56caf8368c24b35a356655b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2578 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 diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_lock_blue.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_lock_blue.png deleted file mode 100644 index ba660e007823afa64f71b50a22003bedb8a5603c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^96-#?!3HFqW}i_7Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jijq8C978H@CH?vT-=3MrKx~c(>&5@-GxoQ2H;OQ*ZfST^ zrZBCo%bxiW*MdXYJ^_tcE1pzqOl#^g+~6R(!YNZI6{($G87@OSxw>c|Tz8 o;rXe4?m@7_1r{p}1`Y#;mye|?teqar0@}vl>FVdQ&MBb@03yah0RR91 diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_lock_green.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_lock_green.png deleted file mode 100644 index 55dc2ba8842ee14cb546b9043968193985b708a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^96-#?!3HFqW}i_7Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jijq8C978H@CH?vT-=3MrVBHgO_KW`y+wW`XZWLiq{nGeG z(m{t`w4UY2ONUnRnG2Zi2Atd;pu;YjoY1Isq3M!az%NCCY-R0)rdxldUx^v8PCvjd oAsP0;_VDtC1)L=T3<3!Z7jmQ=738&l18rmQboFyt=akR{02b{)j{pDw diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_lock_white.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_lock_white.png deleted file mode 100644 index 2b86e3eee7a6b4903a70382eba0bae95d7723f5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^96-#)!3HEdkIOdzDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MZTUcjv*Ddl79UEZ_g}nn(?Ea!avTVyB8$!@C2~#{-50R zSHaS4gBDxce1|h^N0@j7J}`FtXENmWIat4fMR`iw=guI8#|f;>j*Jcsj0~0QVy@g; S;uH%sn8DN4&t;ucLK6VO7&uV? diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_msg_btn_cross.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_msg_btn_cross.png deleted file mode 100644 index efe703cee51c510b40122516acb84d4e113f3b27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 239 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XCVIL!hE&{2Dmj_OpPrCVv9mhsC?lK90n^=w89h3U89T!r zWEe#cEHz+S(#M(cs7@hS)r{AJE4=ASqfgp_WsI?k9z7rb|NnnN&5}uTg8VtAjfR_? z1QMLKiD?z`b@)1%Y;xi`8nC)|ftvKf-;JE@>1m0dO@#H%Cww+hHV85hS!Buk?4_u} jWYq#qm(7k$3I`bCd4n?(SabdW9mnA5>gTe~DWM4fl9W&T diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_msg_btn_cross_custom.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_msg_btn_cross_custom.png deleted file mode 100644 index 064e1e29f3357b4ff313f430ec2981a38ad8f31a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1|(OmDOUqhk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xl001;Ln>}1{rUgD-k6#BaI8Yyfd*+6rj0_(0fkBe_KlZ# zA`D{WoEfG&3CJ&JF=H->v}B&`d*hCUaL0VdOtzY?M78rODMlCb)T~T8_|nA^&S)?f l>I$4cE?8|)DB8fl%#fn*Jz0(AlrYdX22WQ%mvv4FO#linin)q)p(g~J{0yAITfv7_BVZD zDMM8e3N@Ck)oM&lWP)gzIe`@f8f(z;gpWX-_T%oB1rx@0eiUrMm^j zx%;%EL=m&m_C+o(3K%s5d)$LQ%9|Mq-!P8rXu2SzWPvvXQ{a>|&!+`J*Cknz3|$da znQPft4x2U=r7x{#1=Cb`J}c^~EE$5Dmh^s8N=s%7oA+Y`d>gj>y4Y_MYkm@|84(01 zh>Afl+UkJ8YJh^c8ib@_kUK13yM7|?OzN{3t_dUeFm(E(z#|tDthvh&C`&0@RMiTt zN@bCjl(IqtSpu}6lq-BCB?3+qsV3g}oW!x15Sw(!M;+5T!flvrm--(IOA`crJT?)Y zk2S^KSv*^R=1sj=zkBA!)%FJ0dE#N`ferc}Q~xwhbl-V#v@3h-^xU`if5~lsdusiT z>{#28v)faTdoFj`>pHK!oBhw~`?=>ysr=5)ZS6K!^_=XYi(`#9#@DOG`LzevSIB|e3 z^p2UClFClMo||hw^>!$8g*h;9{c!Z|xhEU{{&&rh>&CGa#MlM;USn1N>E!Q_&kmR~ IeFvxB1Lv`Tr2qf` diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_msg_panel_kb.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_msg_panel_kb.png deleted file mode 100644 index 3927a1aafc732fed88c7f1bc23acb75b094d1f32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1041 zcmbVLJ#W)M7&b&gRcW^hsi?!rU8saV&L4?wHB=#vX+%@1G!hwewl9s9+Gp$waXSSj zIw7R44EzCvU_^)+1QHVi0}?Asr4C(?DCagQ3{?j#*>~^xeV+HZ_hWBk{m$(4^=Xdd zX6vhVldW^?ote7AzV6KPUu>DDwKm-(T{=Vw<|;mMF{p=V3pX+HcOHDe%N$qe2dy@3 zH`XkVgd)m)#4L;%n&XyNvKV=NOo5BHf~d?NynWAuz%TRn^@iMttGE}e?k0G1cfIB9 z_C3?*S8jpj%whx~rU+!=c9dFKnLpvR*gij&cyQuE`(^%ARJ*YOswBZc7j?mtp$1B( z2z96#@Fq}Xs7kUbK~;c?C7Tx1!T8}>w8ZaPP1_mAVpf^&Q5sv4G#n1ap(>JOOM<3p zO0ps;ioiUCbSI)H6QXo+!eHanOM;jNBmy}ja>;;}d8YLA3Sr!6oDoOqI8iKRQifs) zin0`j`MplOQ`*FTWt{7swsvAHHE~J?iO1^EU7Ubf?k*0LJ2Exay(C~oLEAR*1|g1U z-7fR&kLU-!Rnt_b;;2y36uD?XXedg>WR|KG6{l1)CmiQtbk9ep`GoZ7?J7Je=~(GIxJ@74x|OP6Q3tNZhxzAm`m^C7L* L*6o+KJCFYW<~c@k diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_msg_panel_smiles.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_msg_panel_smiles.png deleted file mode 100755 index e6b2f6325ee4158dd421ad23b3159d1ce47c9973..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 548 zcmV+<0^9wGP){ozK{IFopWqdof>ls- zf}_!>W1PLiM#%+wGt zP1Ywt2Ur(}3pJ4%Jb^{9%fKe!1usUeELD$runF4S+{Kj=5IX?p#tsg_iJI>)FDW7s zuxBI;fOgPm_8f|-qpC3T0Y6Ecz6RN6p@$8U=M65}L3 zjRq__&pyGL*nEj{tThm31BN*-bKPcqLidivX3Db3@@%va*Fv1)|!ql#MJ_!v?Y1+&Ryv%5)X)NRt$1-F)U)#^p_nC-?knV3x7w0IB^ z#fuL_MC?H*N(Gf(6rU)92R#US6c2(2FQSMi6~RfnTRjvH29lY7@_qmR&Hp&v-L-Ar zoRxDJhM8B~Zj|XdH+g5xq~9Ai>+9*Vf^_zfUARi>W{8-)gDnJ#p4p4a$aDq|zd-E_ zGb3^XDbf7Wix1xRqDV)#00U|??-B^vEzPKx=)UI7K}qkpTM3;t9ft^H zQW?$`pagPC3TB`r!%aXGV44@wJWO*?R0Tza8PIrG8ZC6HYS}0>Vo^(DYlH+U&)4hq zR6U)-VJ{CAMd1aJ7e$UDxMg;$j~p9!(1m5RIiuC$8WHrP8Eh zKWZe3ri_oxfQKo8_q^m@_s8V-Q2gAFCqcKyWOnAB+E$_5JEBgiR)*aPE9R^2HCh)5AE$wpizCo7zkMv${4 zC~;O+bfjEWlB$Z$Hu%o}CXc70_@q<*>YU~gZO3FgIS163oFwGa@d@diTz~WN1D&yx zMI&E{-<~-CdiGP$Vzj=f|Lj{f`tz*4Z0yOAX;+Rt+s!WNcpqPiUmE0)cI(cSrKc{B z+|`zkUVJb%{la0Zb@x>tykp*98(P?^%{VsLatM^TA)=^K&0Pp5DTodA0A`f%&f=C1YRg>@se596bIT Dm8fbb diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_profile_send_message.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_profile_send_message.png deleted file mode 100755 index 1749ddd6b40c8084b6f4660a538ff4164d1ba40d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEa{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i>hdb&7BuUQu3Q3izr4Daj|%olHQ`vkO@ N!PC{xWt~$(69Bg?N67#H diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_send.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_send.png deleted file mode 100755 index 9e921724d5e8a5dab1cb3e5dbebc47b8e0eb16f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i>3^mK6yskoJNW!^W9_QuACngZ+7 z6_^be3rz*qGe4?!;4$i%9K!s~@n)BUjbz7shC*2ZZo%vWVJ3zXj=8OHoV<|jv1tOk z!2hF4$2q@V%2kNtI&y3WPX+st>mMQx@f-Zv3I<(ZDKo%a6sRj^)wLfL{Fx zsu2rj6)xQ;9^hNNuq}aM0^_}iBl%9IdTmzH>I{+(x{lcM9g%g|(|Kb8i(~;;hrV;J ljbBzs15ZcV0$|ukFqEn5Y3@^o_@&gNTf)puVj1Eyh*gN!brfL@sX8+n9{X|wHZkYy}bd=YR{#6JgGb;!Ym#~iv&4o9X7Pe1sUo>74P)+* zM;x6S(;2>oDV$;5m7>BJuq(4^=Ycj4-~A00h63fxAAKhsgpX;*9@MnelF{r5}E+2D0?gb diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_backspace.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_backspace.png deleted file mode 100644 index 2d938e8c4d4bd0a60ee68def55a9b961eb486f06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1211 zcmbVMTWs4@7JCL)yKlI>a&XB+F2CqWFy-nXo~6|h&*IW;1K9|+;WQat*h5* zV3|ewIkC!BJry^tL$f|UIy+J~W+x2Uqz9e?{gFZp*f>NWvL~HDiHh`wU4`u9W0nRR zD&a(t-Xt|v9R;fEV<2Wl#^9g;BsmL3C=}p9kmDfFay$!p2Idq_R-g#l4^6!JW<#lI zLv3F~D$>m`^c0qDwOZL0pLP9l7Rs{Bayd4aV~7S5%s3&67$?}@v7q6=@GUR2TnEG! zk?u~1MVc_(48iuQ)h)wL&`uOd85<#wg;|cZ?KrLt?I5h-e`##19n@z$%+_$=PWuL_ zM`M2nOmcU3N3kMdqa5}vQWP|)xyH1Oov@-6X>yY_EmPq+y#P%i$M8_Xj38ivk&!Gh z1sxf@shgsnM;$xc;Z?OHKrt`nG_?$2nJ>wrpyuR)P#V&Nf}nM<6(~z6s(+%CA>3Tp_!4p+vSWYbW#WmUtS;M|{0-Hm=YlDp>E7mpy zcqm9nG9?BHd5IAutTTm%U@*EY@}iN)5Qz=CjW_>q@>oKOjXUK(ozpoY?HF&j=70!W zlY|{IK0cX~D}9X?nX#3MR;ouo>TB!k14$-v^L*;u1Iu4`vEanV%YWRTS)6zFW&Xa& zttB$+<(^j(OE2C2;q&=Ml*#<0ANlK%g$EO>g9nDsCRgtTE5q-kfb!@9Gj-lb-RK3c zr$74@X1={ge;)j~uXhLd;@sT#a|_;U-Ak9}?mU^9pr*Pqe9zm-(_N0)bJb%2>XBV<&ZVeCHEpm6n5F9LZRVMP?SR2PMrgdTK|vNYd4!sy3RJMcGK-hOsdP&C7g7m@(ki#P@ro_GB``^T+sSl~K& z_I0%)R)Qj4aA#ISJhwVqw^tW!-C+w8U_3FX0T0IrB;JxA8A+bqwrkLRdMvPDTP0r1 zvpb|3l`1Hb5CfH0Ia`z<&~#o>C76>=0$G$4K~w}u;Uw7*bwg4?_hG5G&}kYqv()uP zr98V3$AKXTtyYU~DLe`11xeR+L6ikq=BNf2t@trYI6oTgSuk;Ahi(wN#0RNGWRc}K z&r+s4A$UQhvTN9nx{0DG6A}~%5-$p#m&UcN9mO^LgvOrQQGF%ALJdb`Ikag#nxj21 z&E2ydrHYh|aXxfuQP7e}>}3!8aoNnX^oDm_$52EoCpl2&6iLGzgcx!<(lst;AzN`Q zN42u3XJ;>b37%H864Yh0I4w!j%9O6cqO9lORLO)nX!fvWKZ=oW&$}_Bfo7lKYeu~bFK5ma#8Y9^84Z2`>M6v~ZJYv(>Y+#leSn zIwuai&{#_zz16whe`DiZ-+^lvnRlHm7&<0j5Ia|X*&(sk{z_gw(?@#u9NZ%aLT_=(D)aR~@_zgg|2}SHU-4y-6{_q6t+57&xsO+eAd zv!qP0yLk2v85M+{*sD}owRFsMsGq`#PO9mL94!c=W6cmdbA$n#%z8mq{P*T95qNG^ zJgJxDQkW-oZ)zzbCzhrw&eEJ?xZ>DXV6a?0ARg*iut@AgUdTKefW#uU=>p4& zoat5wepo7P8xG=jqIk-rCJrT(k|p0y;@Z@XS(&_}v7>feSqzC(CNW)z9A1ywPzTI& z_hCngB4=YBk33!!Ja18F!6yMLT3M0bq+HK6RoTuUS5u&h(gbQ6(V&5iG|br8QC-{B z?GfCuvlD(|LP3R*2~Dx`1%wJ}&d{~IVq~=3q@`svtAi~DF~fmFI=(&byNy*ph&A&O z!Hh-~O6NOWFjJ?D#&sHkd>(vJ!j2at@|Q`CwnDZ@Sh3!cq0Uw`; z&&e+1zjg7G$*tM_cr`s2Q!4wL^vu`q32o;b7o7WtcX=l}o! diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_bell_active.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_bell_active.png deleted file mode 100644 index 0229c9b60ec8a2229594ae5bbe26e1d567143b9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1160 zcmbVMO>ERg6!s=10hFkypa7LBCI*Qg#s7A8ZDolz>kV0yO{2}yhW5hPp3R!X9@n0* zPE<9ts8w>{L@x*-!4Z&}$FlB!zJ@hO49wL&W49Y#~te-~=io z=*)bzg!&k!HF7KCWV|$N*x2J?qQl2tK+z1-*B=MaoPhlcJer=?(9=j-iNFMsie{Q=~NFR28Y54)rvbv7oIumZMp{ zuxV#Id_h!oSsu*EX1*Xv1tq6zYF^eeYHrX}GpgCd7X64o-$qT}F7@5O>hHuF`4B;Z z!wSYz%`Oe@4ZQQd$rC6kA?cL=bx!k$wqvs0ngc3qO%n3y_=I#$ z&iD2JI%9W=X08(dX8p6i-rvfl{+NI8sPps+`$hXNE$qFexevtd&ko)D;abb9ufe~q zPuFf*`@VeC@nr1V*T2sVuYP!9ad=_JoAq6nz6rU}@7vnDSKDuQ-O-2R<^G-XR~Lqk z0`2j`Bd^Zh7#R5LO!s07|54A&Ba1D!FW$tdyZ8TW-LrP3_WTs+I-quST>tyxkITm1 xTk$dK^7zSfspXE^ui_{3bC;hlRZ>iy;Eup2sYEN6;dasoi4Tyym zU4kH<75iWp6qVt@8?Xh#T&9{zTj|6@ysT$EqOId8WOK+G!&+JkIZ^J17LZ_{s)g`{ z_dmpes)X=kz66!XMPWvbjTo?dq%$Rt^vj%rw;l#91s(xpp(TPsc0e=vLI_{Q<s zGn8JwOXyhlg`^Okv8)_VlKFhzlV?1-(MQr8$B~qm^m+-TL72muB^C(HY$_uN(3A}| zXQ{ddY(!DghpZ5en68D8%_R~Wz?!+9D3mg?Am&KgLy_669oMS1X?4MWX>6)(riOEn z?1H8~WXPx-Sc zBJEE3Pv?}6P&?Y&jX6NV#w0-vjgNumw%0C;TMY~R!+=QLKcyP~uMoS4}+cJ7CX<7eKv!OZ7AsAq$>-8;ul zP8@%9Dqfmyt12Fe%)H`Ws(QHQtC`rjimP9Y-+KA<+|r&mpLr>{{~$KVx@#_6{NqR0 zq8D5n`?P94In(M|?B2D#@{K!NzTSKG(DhTVC+{h)I0qZ&E^NtsTXG#6EjZk_u)*57 z?NnNr3RENTHAv+(ulqbC3y)gTfM%#H)I#Q5^x}v&}|js zDH9CCECl-G_}8!-!@{nS%X|6sK1s99C!D8s#GdPOKjA3hACPUMJmQn3_~If(w($C;FFfSvu;6wuI3m;&#)~# zun1Ip!jlQabR`6{m`<-6w%l5xP|7GD6e&6yqf9f1Ygya%vhZITYihf>$s(k((6uKV z4b`KtvkpeNd$^-O5wVe;bqrJ#Fs9hrgb6J#rN{)jiRy+fu`yMkb&erfIu1#WgB&RW zF-{69&{$p7d9@4F?W~3Gi*X{u^mj2zvX7?w*o4S)Nk$a7M8CoboKnZ8EY|~;2J5~J z$grgxWFK zuFe4xRwoHsXnY(rC$pzMFJo9Jno<%u|GIkr!GoSK8M-;U{@Q!JSmkQ@hb@&YZ>fJB z^5ZR68mgO5!zP5MzeY^Sr zw(gaN3&M#@$0MJ9pZM-r=yqwg{bymRsafp!n`-@K^U$5MZ=Bh9^I)iYtGDxMeb)_4 zZS810{mfSl$L56guw41*xy!$sGv5&6`N-IA;`ROb+b5GJhc8zT#|O49Mp~m6BP6_$ jym$QhH>c+t%2*gX;$NKm3EVvx{GL*MgUY*4zI6B>#b>iD diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_flower.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_flower.png deleted file mode 100644 index 4ebbd8da9667e1ba8bd7f0bf3e55749a3e8f370a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1383 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 OADrJ8X&e9@Pgzci{{7qU zXkeKs`iz*1<;p59StIivo|qpk81vJHY|;b$pf6O20UHMhg!YW%D`AS>wX2YQbj;CU zS0$KE(R-vObK^jDJq$!vWQ-UOfh4oM$ipOm8pLC~z{LcP7Z^US#AJmRLF1u`H_t38 zc`eiMMWhs63WBo2ag|Ditq82^O>w*|%UmqZ#p4XoVEn2RppbF=6HN;m_6^S}2bSxA z$Rg6+xgbRorh6gSyxu;VupMN-CvsLb(fjI-@1u3c?E$m4%$9H{LVs%6aOvG2}# z2B}B!L=#MM_hd(rB4MM9c@`-On$cWi&c;rV)lxLMVNJ_agqWV>O&DhcUcwB77&0=F zB_^pOLojty)Dx&_=OFyhP@GREhLUkjP4j$O7?ee*#^od&%xEwPwI(*}_yKYZ-1Kb` z-wmwvM69BE7zM6ZaNU_^7mSzO!1YUR8K^2anL~!{;()Gvm27*iEux z9Y8?fp@bw;Vh~J743x0WB#Y2sbXgQcBY}A&7U>4w{J+WL2q`Y=l>c;2^N6%#wB4Tr zBJ58RcF6d6WKKq2>pxFs?ANR|SP1Xyk9T$kTA7xgueB{v&t3ZM``YT!diw5~_{GNP zD!kccoju<52etJ!oRz@~?Hgmu+qGxvZME&Tt{wIA<#YGOPJT@lZ%w@HeOTK*CSUqN z&0P8P;!C%GX}$Pt$AdiBY}XTTb{K57=%*I`diu}WvCrT-wZ$FXIQI~Iym-BOK|Qj3 z{p!SfEr~NXf7&MQu_1bE8j(xs<=WN*1wcaBgS^IqDVei$| zY9?!4IMu!QXynk=F!=lRTZb0D?0w~%M+-|m>{H_7&C(|_JWX}Ps1KBnmalxZ#74iB MY?QiDID?iul$RDzy(neb7RoDumMDOHiMRV2MEyQ4#yFNHyL`cB2oW4-U-S zd+t5oIp6u4w~J$kxA#2WLlDIF{HR*O>z?R+pbLNR)RPUo>L>8!PK`le%nBsUdPORImXH1&|D_Dce`VB(-i=!Tac#rO0)a zU@}Qp5a)_isD+=_Jb1om&TUbetFhKYzg_!jHlyz zRC`-soV)uwiWD&$Vjg;2^_!XxMU_n9x6cHv?IAMs?kQsD)P*ik&*Kpi(F5#Vs1e| z;DH1sL!u!VkZ2$wjZRd7PHVC#i24BHp;)Dwc;o*jkHw_es8jyaIjtkyj?s2=4zRE} zNyx_I1NUJg5%)BWnP zJ6(&~@T)ru-?lHDn{VtrFcj<3ULtR_FP>apefa!c`A9$a`d2?r-};MKdEy!nR+hR~ zjo8ifxp($lXehC@4(+M^e2jVP%9kUL^vXM~ozMR<5IcEbpS|$O@Xm$zPc_2lH52!Pfl~avpW2x+O$#<7OesJ6I-!G9PL&a`w?8y(e z?Uo)pwA7tToZWYM{+qUygTwdUJk!}YGTvAFX|}y^eAltLUk^V0!{MJ-+dd`8&xtFy Wxx0VA(LWmfUGmv6^`ns!ul)l#4w94r diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_recent.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_recent.png deleted file mode 100644 index 9766b490656f77907d4f1eb8ab3f29e8d8f062e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1351 zcmbVMeQeZZ7%y2e*}~Mg4S}JQqV6#3^?L2?uFaL@Xm70I&9R+uA_DKV@7=oX+FRRk zw*`%329*V-j3p)zLihv4uw{HKn4!22QKv)(Sz?@GP*E2(&frIuAers9oBpxzhfUh| zect!^JZ?_i8}f2j%oNZe5|Fhh zM8yP%!)gfR=Ef1|N02N-2}jIG=t)-65>8<2IMa!wg+>s6Svm=%dT63i7*|vdo4oKo zhAJ|LZSjO$p(GD$m5LS}*0fZHrIvb$k+HIMs6WkG1`^N&XgblL8f==wX6&-o-aaNU zbVkLj=df8)kx&)NYdSgyEa^e#9?bHl z%Q3cED4+9XNgP&dnn{)*QmK?PML9J+PLK@45H2_2cH@=?ZZxYVNaL!pCSyT>hNLS= zQ_)n^wg{qHlgVKg)7cOb$xvwCuxiXD%1RlL21$Z+x`;%=j%!BSFstFeG#1o0!p%uY zR6|2+(j}`Nu{9a6mAkt;vK1{h>{Gg86$La1n$(nlswoN_X5BbtMP?~i)JMv+8>dJw z#AzDRI0G0j?u!D6lB2RGS_(3D7Q&M*K2XlPeQtpdkYtbwFdmwBGd?;{F3>(&$Y4d) zFo7z;jBmyAJ%{z)70dEE1g55kHLW4j1y!}0sTs9e66JZ+5dxB;+VWbvMzbLcP*-+A zxm?#0=uDDXWdQ;dNqd1;_Tqpp_2RS_MsZ(^mhdR!p*&J4B!MS}&Ee($n>@lIMcAG4 zpU%k~S?y?V=jXr@<|hfN*7)ewob**~?nID9b)pamr^kQk;x-Of73_Vsi8^`Xe4As} z*`B5Con?ce(MyA(cY3eNG84z{JX#mLda`fN*{Pft9;w{=ZN6{l`()_a{l(mGuN^#m z`{J8F9zAli4gL5|?B?{L)-3MU?ZUrHmat&y2_SS|A7WMxZdlQ_I+Fch-RO(O&;0!I z1L1+T=ibpiLJM}Z6}>g|<$Yqo&PC;*=+}eG%)$P#=6kk&IPRyvd7`T^_*p!EUFh_^ z8#fn@oO=5MLw`8`r|nahTMwN%eyJfF`u028asL-J2Pj9y`LUXFyZOKR`@fF;@yVa7 z*ViujVeGyBtHI}Qb)3rXexqdAxi&ZU?m%CNFY zD^BKgoGC>*U0IX8@%$^%Z94|Qcw_hQ)2miaP9HuZ?#^)`!QoWa_4+N3+rKt3SSj?Z H-?`@>?wQ_W diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_recent_active.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_recent_active.png deleted file mode 100644 index f72dc2da0158fa2c826f8a96cde1e62e30b3e742..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1310 zcmbVMZ%o`|7%vAhw|H)R(BNFo+HJ}<+FpC@-L-Oq;|g+ahv$Kg55&=H--8Nm&$f7X zWXli~HD)23P7E#v3|XQD;n?3xXidaE%ayYq9;_TL`~%slXCk9Z~s)1+W&&O7bL`N~MUDhtQ2?lHxdybkihF<4^-PGnyr)an0PBvmgLdGL)pH z=o)HU6ytik6~G|VwGh-~B(iQ;GqZ_;DI?QjlB5VXsj7BdtJIWWxK-5uGAkPZK|p}?YuZGtYft3b2DLI8s|gsjNC#~t@mGDG7Y$_H?U z0SwNGoDcWMMad(_Wj5{=b9OeuheAPyV!f5L5UQf6Do>DOnGntSnP9cR_!%LG4Qr+) zY7)r#R-o@JHh5PoA2NVw=|;V-x8=GZ+M-*!*`g=WPzWuFh?1h&@*cZJYat83P+kIZ zwV|u%YLakx&XQ9bCAAERhXp+0V z`%iCQXTk8-1*i9hU)RU<)!}qA; ze5UvPlS>7!Y#RT_(cCyR(p}N__r&6nWmjY8p=jQL=?@F*Zk_BuR=97R`Q}P$>-H~_e+!e-y1HvaJi^=Hq|jgyUWged6euwd-&JSTZ+#9b>`V( zaGNfs?<^CO#NZTip(NpVP4z7;N8hQa8U1SVh3SmzwEvH}(v=&(bpP0k`YkLWoIdyut=6wG4aA&&cX;gv&;3LMgnDE`xj zmvEqKQT!<`9ZDAxa9Ho2v|#^aZ&sZgQ3Va}Xa{Ysh#cghBLg=-YS^M1#W(zlXz!^> z9Bi04BT;;l)IhoqBuoneF31sTh++XR1SyVUBh*1ahbV>&F(kzh6fK4Xk>bGCgQIAc zmJ>5l*H$bfMe$+BDTpLlEEa=BCTLniBqay}8KOy=CXfYTPZ*Bu5{7-C;z5G8YUu?> zHx1xi2@`u z&^E^{71bkmpaMp@yL}+f5U~*-w{%n#c~mmh@jNt~loZ9$Nl?=@kqIdgN@Hn)p?FBJ zEMy5m7I-3}$SR{L8mENiil3eEVJV&nchUkaC6W}CWa0wHCTJnT#=9go!b%lv%CH^T zP+=vuj$&_NBe%th2@A@OX=P1ww9*BA!=_`}!)5^_5}+k5tGeOIk9sxQys`u>{Y9vC zS!Nz=Bw5sVAiz*8FY_8t$ZVJ=SRN`wB*&_RB5(|+h9M<$IeZJR{omw~h!p8{%6~ei zqC)NHZMWwD3EPtd4KzL$niK!o6YpS{Pe@7etoyZct6c7=CVXqt7pCr<{%hgpo3UH3 zGzCJ{OPqhMYN`3{Z*0(BS2}cbofiVr)nmB-4S(VL{ovHyB{H>yY3^>ny{GZ;cSqe; z|E1W;!H*Z;s+qpGJ2dY*7k=Q}$#-jJV+UU^m3^0g#GZX-ucyd$kM_Nw*Q^Fw=4LK7 zK2*29l3C{8d+bQ(SI0{6$%!kU>~Gw)@Jqajp1Fz?v3=7WYZtDQv!MUedzLPi%ByvY ze`Z_mzqVGlNUq#h``aH3xYqMgj0CgE&%b^C=clo%vr|_eBo3QvcRj2(|E()0Zj6DK z>X&b<^bEavCQu4jt?q3en>nSH0u6g&^T%iB;?EtaEtMC}|BzgE`rmJ8__Fn8V33(_ wy8OEU+B=Q0{rY4)=l!Wt$zJJv=itl#0I6lTq5uE@ diff --git a/TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_smile_active.png b/TMessagesProj/src/main/res/drawable-ldpi/ic_smiles_smile_active.png deleted file mode 100644 index e5b848287433c49a863b5e7e71cd5633174ccf58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1300 zcmbVMU2NM_6n2_*+PY=yx;`vZ3m3OqS24%Av7N+Lvo?#UP3 zc9*n(v_dB`gvJDufC^YQIte5|E20PqX_HVV!4uMW0wD_Bc;H9c%Aa_s7OvZ-@KEgm zOZL6z-t(RFoj;%J@9Xi@?X4pS!jtF~(|FzEyjwQo@At*X-+1xb@j-jQ$l688L_}0I zWCRji2X0(B6C+tM2mG`xzQC6buM{UVt1}dr0if zRI@@_>|XPQr3jg`?Seql#bVJ{WPFA>L_?nEX@7tY1SqUQS!22_l_=e6sag<`rI=d5 z)(jmu7A4sjwId{Ex*9^hkV>r^)~&Tf;gr!OsX#-YpU&rDZHrg$+VOFeS6S`$f zx`L{{HSBv08-E~Hh?z*T4KrgHBh@bG&l$F1<%|M|#lZfQq-eS$w>vdj4Ov8{b{eVO zrjZ9LNfxvX2r!ThNg*{vNo+7gu^}W=;Vi3AGS4xb5=2nqvg8_G{lCehF)7;Vl>c;2 z^$544vt6G9EUZrw(((A1cuo#Z{kT97u24dZW=h}4%aux}n{wSQf7rFXjHZ8W>so$c z{|T_|-pL^FZCXrLpsV-2#xlS3`oxz73S9s5lK&IW9;#`F*WBY7TcT*SuPLU5^`fjlPVVCS`h5bK`J#DFQQ{L$X_)ZBEf7oL4H y$X{)TH%Gmf7pE@P^)$Wz*%*JUZJ?Iew1zf5M!#>m`scS>hT| z5}cn_Ql40p%HWuipOmWLnVXoN8kCxtQdxL1)dr}@-P6S}q~cc6umAu5Klwi+!A`)~ z!H{2Ied3RP>4qmQ4L>9V>XVWV@NZ+@sM_J^p(rB|^n&w9dLq~Mq(BDYYW5@N9BLR8 a4lo=);dg6x;mR6SCX``JV;93Tgu#blh8c_*Gs7TcZ6R^cf-ogTWT&!} zI(DCIL&=t8sU%w{={w^)U*9=@oX-1u-}hO5*LB_Z{oL0d?|TVjZzU!yCky}p#B8k1 zvE0#Z_Ynkg-zSPuyxc*SY2nIrr1~*gcsdb)B2ayZAR7wapNJ*m2@xS(L}LJe4@`D) zWxAs6;J#Ff4t^J-6HcLV*#LksGMt9@4J0x_K16?VFarF!@hKQYCLq8r`ecYA6-E9aM^e2QFhyedP zDOWTGWJaYELHat!w0(7

3crv>Q3w?N*43g$2unIUSm+cnxWo_D0w?$K5J|4;ewy~b5kFPOn2#^Q)*wM+t0pe;xE@RRfaULDgs;ruK^B}kXNt@0qoaX^!j zR9WET^J~9g;zxuo{thZSVvt2hqA3UzbDfSrTJ-cPiBg>@aDhuLOQQ@L9 l9}g|1f6lPm^0psT1A!|muP3t=Zj!PjWg@hrO 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 OZsM_Sm`cY(3I731K)O!= diff --git a/TMessagesProj/src/main/res/drawable-mdpi/broadcast_yellow.png b/TMessagesProj/src/main/res/drawable-mdpi/broadcast_yellow.png deleted file mode 100755 index 9ed3aa71436fe657142e16944798e735a240dbc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2767 zcmaJ@dpK0-A3q{OlvIjn8ll|g#$X=P7-q_-ahn+wV$2*2=3-_Tmlj!VH;GCvp+U7m zWo=to#7L|X4{~dz$SvzmDz|>4t#<#|e&;#oyqEL&e7@iJ`+lD1J*S-=52z?k3L$=A0E>f#PL@|eAuJ{q>TXVklX-Sv zAj>|A4^pBWsf?&#h7}Wv+Xu0Zz(@typpXuUV25x7mM&mR6 zF|LIDUt&o|SZJV7$iu*3B9X{cgfivw17HX%E2~uvB+^8RFcCy@g!Bj#jzIUT0s#~- z_$;1~#pOU&73qH5Fd-Hy&GhdjuzBBPIf5@`k`@dWLFd5`rtsAzeFc)q{~yX`e?tp| zuHZlU{->~j8p#7;uAqP$#%D-3&R=&m6c1y^2kAmCpUUNie66B$AXms01af&0I|>@I z$DPGtaz%o@pYdcehQtvF=^O?~B4D9X1ydG_i9w>QkZ`mG+ze@Ji9is|YzYWETf8NK zh_|#Om=VmsatT~U7#rjWzjB%Xa1r0-u3CZ3lSU?hd{#Kf+|TE-A)l9wVSP6jH1WH7 zU%1Tg=7Qe;T`o+T3~Y5{|FzLyr=;##?S8YZbnwmiAV=zUzSP#PSFxS|pkPNL;HeQW z#*Q53dJS%0x%ca{hg}gFwcYu3cU?{GwQRhc3kz>;)Rc6`$=S-uUn>lTmaA5hvWE_qP+|rF zK42BM!$uXNkSzO$%m9$ndYy9dr$Yums{q6M4KQN}{{(N)Yoy=++!9y&?73oRQeIfs zU=81&~wBK*J7Z1%g-h@|;<0?{x8q~7ErsWqwm45y7k{J!t@qj|v ztnG=>SBv7Yg0_r`rb_vP$F{00UEh#5@7+huZwk;qr|jNa8sOuwXcWplehLw;UW-s& zj|fwz(9MUXpM=9P4JOSWwDr9&>4Z%@t=TQVKT3VNHS~oZ{u1@a*G31KdSd$o69VP>nS%Y-Z^bWC-lgS85&`Wa+H@Ct)9KGk9BaC-tx)t zlH4Z&3Ep_EGUs|3z^9lzrlk!Mo$MDfYL)vs%4lN68*T~fDR&oBT8#Qe#1~aN?I+)d zx>em8kec@%iw<<0{8N9P6w4wtT$6kySY&ge10?QwbSfzA04R43ywuzY$aR}rDXGeTs6~4wJnCnZD1jMI-yKAI4c)P zyKLcdn{=ImzpE1(7Z7u@LG9SszO&Pt?SsrTM`Nms7dHdY16#c4TXs{5N0#(5tL@Bz>BoDEnUTAHg=^n;y@mWbeCOe0<@8~yJ?ljDBlGKR33#ZlPhtJ5r?MPdB(kvSswTl>$~|NO{O+(gRS_r!JH9xQ~SvW z-E9EePnDV;+gu~4wy$>lnELt9`qvp|`MC3w+&19+(bU~XvbAxmznCPVBjL8KZ~XrN DtxLL` diff --git a/TMessagesProj/src/main/res/drawable-mdpi/dialogs_badge.9.png b/TMessagesProj/src/main/res/drawable-mdpi/dialogs_badge.9.png index 81960234da921564f50b36a13078b3a921842926..2c32c51efcc1416379b19286ad55ceacedff6069 100644 GIT binary patch delta 326 zcmV-M0lEH$0n`GJ7k?QD1^@s6#OZ}&0003SNkl4_(@D09|OWp`HK07*qoM6N<$g4bD=y8r+H delta 118 zcmV-+0Ez$90)_#Q7jG8`1^@s6{^R5m0000@Nkl=l>+(yRR91007*qoM6N<$f)4;NfB*mh diff --git a/TMessagesProj/src/main/res/drawable-mdpi/dialogs_check.png b/TMessagesProj/src/main/res/drawable-mdpi/dialogs_check.png deleted file mode 100755 index a6b157a09494551d42e8015b14a80d5b890ecf55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 342 zcmeAS@N?(olHy`uVBq!ia0vp^d_c^@!3HFQ8hUO4DVB6cUq=Rp^(V|(yIunMk|nMY zCBgY=CFO}lsSJ)O`AMk?p1FzXsX?iUDV2pMQ*D5XUU<4VhE&{2`tkq2J@dvJxl zW;B^GnSNwm`8L4!cY}qX+Hsc932aB?GG^UaaE{sXvylKhWA1O(>l`5pTuYWWiZI?x z^Qd~xY^dQdk7=WNz-9N8=7V)CSudD2c{lzr6^LdmG!h7BF!b1{8*n+bB!7d$OD}~m z_9S}+JGLVV;eVQ}-W!?yKkO`;p{+i_iu;I^LZLz*TUJz?_JaotxkA3kdbl!t^q#=| mA(M$&=cHH1j3?{@2@Jx)6VC5S|KSbvGlQqApUXO@geCy;QF=!J diff --git a/TMessagesProj/src/main/res/drawable-mdpi/dialogs_halfcheck.png b/TMessagesProj/src/main/res/drawable-mdpi/dialogs_halfcheck.png deleted file mode 100755 index ea5a36bc12bccea429b0402ba4a50451fa52ec47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^d_c^@!3HFQ8hUO4DVB6cUq=Rp^(V|(yIunMk|nMY zCBgY=CFO}lsSJ)O`AMk?p1FzXsX?iUDV2pMQ*D5Xc6+)whE&{2`t$$4J@du`wOe=U zO-Q;eS@lUrd81V0ERn`5o)g>@!jhDNgzYEX;yAL%p+=y?UTBNp3eJ?nWeR0XkAfZE zFqFJ1Ps*9YfAxzK!xRu8`T3YXU~ukmh+wIu!^app0Q9M;Bsn8 zC6B$6vp=_##2E(}-YZ*p?k0%oZ2Q9eF@MD}ubf#1CQOZzCi8AIR#*iDv+J#2knO{s rl&kQM;mFP(OnnolsI>DiF!3;i2{}kc>Kr=&^ag{ctDnm{r-UW|k#1() diff --git a/TMessagesProj/src/main/res/drawable-mdpi/dialogs_warning.png b/TMessagesProj/src/main/res/drawable-mdpi/dialogs_warning.png old mode 100644 new mode 100755 index 997da977ca01202c12982e0dd21c6d3ec575893d..0c0f3fb5f7b809a5ba228e1e7295a3ddb9973986 GIT binary patch delta 723 zcmaFFv4BglGr-TCmrII^fq{Y7)59eQNQ;9o2OE%lpmk-zL`4lorHNjBs>Zs>28M1JkV?&4%-Vq|P+=xSnNW@O@K;b`b+=w@o>X5gZvP?1~U>ucqb zpIn-onpfiKVygrc(M!opv4ZM##-(@iYbFB)s3J?8itL$XV2T`ZDynC8s;?Hb$qZDbPQX86diP{(lOcw>dE!28QlyT8esF-sIm zykkBx*I~_32ZRRukGjBo&E6jmT7^SlF*&>#%X!KT0-{4@17Pi zy?#CeD|g^7i?3fKD%Px(ydfgeVOnE*;_2^(A66z0AG0I{2J+llwTfrGSzb!T=Ld|6 z&5qCBGVYWKxiCG@(#Y}YZ~G^oYRpz#SlD#1xRGu7g6Yq1I_zn7YA$Cg6x()+DWv%a z^GBJYSe_$wCrkyoXEnuND3T3PE*0!bS#m=Aa9F$XrUw@of_CtRL#?E2D;8&IU!F=k|pTKm=;OXk;vd$@?2>^ph3h@8{ delta 552 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 literal 0 HcmV?d00001 diff --git a/TMessagesProj/src/main/res/drawable-mdpi/floating_pressed.png b/TMessagesProj/src/main/res/drawable-mdpi/floating_pressed.png new file mode 100755 index 0000000000000000000000000000000000000000..50dfdc652b90f510fdda72f7dac2e33a7b36219e GIT binary patch literal 2834 zcmaJ@c|4SB8%Ej2RwqkJ$278JnavP`gfS%sA%+&l%rMieW`-HdaWE$xg(4cuaSk~W zhU^_nnrxK_$C52uCzbW^RkBpy=v3eL$Jh7%-uHc;=l)&Sb>Gi(Uw=Fa?yg6b0DAxu z5)w*I$50;P(R%BXlM(-so5L*epviH>ay%J994?MUl&~W(0*OE;8ZMaVLBtWlLmm>v zjBOyY7nXy?xFGQi8W^{Q0rO}~FNBgdYNaen8@E zEJ6^{1BL#aOT4lHkvJSC5(43JxnQm-n86B$z$`5-w>02z6EVVs9Zu)qcqVkV&KCs~ zk&S1OnH(~M4%|}21u{Z8HXw1O|7?NA{3=Ule?BJhfkAjUCIkkCZf)rc5QF*uP#Wzk zn$7Vb{-@smDa`f?XA&VEL^dOog%>w2NM|b*6Y0Pr;y4VJ7lT3la*FOG28Y2WF_=IH zPjjGw51CG2aM=ex;V~Gb6P?Y$(eXqllnqF%049?ONP86A)YKk^HaE3E!C;OE3v(FM z?hwipZh=5pAkY?HxF`lblt!d;zHkX&xp3$=xm#ACF~yltL>4)WNIM6`NbH`i=~vr|7hjD}q>J6o65INqec&Mp3E6lj zl${rEWGp+Js(MoE{zT{eyzj_@<3XG45l75~J5^Ny(soBsI!9GiU#qBs1id%4b{0>m zxQn*kl#x4NP_QFeW~W2TuzRxlm4<3}k^|X!iQUjpWo6nlu_9ADSNl3+u~*R88Fc%H zrH#yq<>;ja&##|@pyGN?158XxQ_;ZW<~VSOaJZf~|9BH4G zdh7`ZgFl#S=Ny@`9B*ak@GWul+mgFhe|Q9eFX}aIu%81iy`4QTjtX(dgN0A`SJaIP zOcQK_%kF{SY9!Z;e}C%I-(%R8{XO3y30i$7zV#~;yRs(lC0J+{1@ZcjiGs@a1BWUP zH@8C{22E88Ika+IKaRn#*%pAwHHjW%l^TnrHwH_ZIlS zem8qc?v6qVvf7mL9&J>H7Q;Fq{=7xPQQfDO>7hthh+UHiko$Uo+kAfn5`8 zTkJ0>d*!FSl0Q~RsJ8|~CA0q;Om*&?z0#y(BUzlQeZl83e_efPRiQsOjVxc;X*WbV z8X%qD-#95hd6LnZi}Bp$ZZ7j{!>ao9`9l3_R?dK-7m}~qft6iz=bc9iVs-{JK*P@Eq2nX3&*1}+Rr16pzgS*W?11K()T}NSwk1gXR zv2);|SMgB6Z)#66d-Jl@Rs@-<1?gBdkxTgZ6k1`ki!BuV=YJ{jR};r0A7jlS&p7%6p)vlB$KyBJ1u0ex63+NOSXPhXJKJy$mRHdl&RId6#!`j(cQwLD_V@ zX?f|iN4w=OU4(=F{2JlYj&TVEmvq799LLMr6+FP{h?#(*uCW8o%Oiz?4yyo3MN`RB z3X{L5X~~hQ3T|v>Xk9(h)*n!t_os|PM+ zobzuEOdG3{hKBF%jN*2yyr^r>QfP9e(1dp+j1NRR`lzE1Ts2Dz{#d2FIl-k-EYvNqp7{%b&K_11(wj6zqTUWk!L%+F3Wc=P0}5%ihLW!x>7&5I}I zu8#$tbY_RNwdL9e_itlrfux%>k;)zH8? zjr(yNJr&O@alTw`qZP)eZmquf90#7*^EBilK+i+|>k8V6n z!QQ%Q=a9bc&bRL?(Qc9~4wmrad3vUZ?Tf~Tj2EO{C0k;2xw^M$Ag2T!r~Z)WRVk}j zeo4tOR^OHE+&tfOz1AzLGa6>l#09n8B7=cFDKBV^Z9|=A{fOznyMU!LkEBc5P}i;n zvCOW94$LUdhD>@-`m#djnNcW9Eu`G<54iJ#wZMk$^Ec9e0_BA9l8%L`$ydKjUU_3H aDI;-blKU{6yYKzhE!D}<6;);*5ch8;E7&vu literal 0 HcmV?d00001 diff --git a/TMessagesProj/src/main/res/drawable-mdpi/gallery.png b/TMessagesProj/src/main/res/drawable-mdpi/gallery.png deleted file mode 100755 index 4eef8a0a95ccd322efa84e6dc71d50f6bd207781..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3Ea{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i=u@N{tuskoK&=l_5E!ww8;ZH!FH z=aa;AlHxN{#J?~2Y8WOS#IUbVZCzkD`_iLX4mu9`-KGr{_5$x!C;VNJwNdJd6XOcz zYZneDg(}=@7dx`f;f`~5x8pRfB*F6xk78u1Y8r2JYs_}!WiHEzopr E05vpn)Bpeg diff --git a/TMessagesProj/src/main/res/drawable-mdpi/group_aqua.png b/TMessagesProj/src/main/res/drawable-mdpi/group_aqua.png deleted file mode 100755 index 79acb836e741c5b0a768fa250d6ae44c336bc0a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1089 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 diff --git a/TMessagesProj/src/main/res/drawable-mdpi/group_green.png b/TMessagesProj/src/main/res/drawable-mdpi/group_green.png deleted file mode 100755 index 9ebf13077b9560ecfad67cc422c9a87e59204138..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1157 zcmV;01bX|4P)00004XF*Lt006JZ zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU$7fD1xRCwC# zTI+I}P!I-0fDAweAOnyA$N>D$0C@bb=5l;RZz__J=L?%p z=D~Cot!BRKP3@`g?lk~WP+QeAK3919VX+`R+$t)D)&Ma5`(KlpvyUlM$P4Y-`Ihxt z0$|$p4^^YHUl9QBntDT#bcSJZ)EQbmidKVBcP{{x6tiiak!l3M-prZ3R!PLB5Xa?e z<}sB{*3w&VUjwqJD2-kqE+R?=e+fl}VIm)T z%W4@c{ImdAJlcuJkK5xRSL>D2$L6?^ML4(JzT^H5mkY`iTCSF<0I)o!_3irkmh~Wc zzG#)(?~XpHvOyVvMCfRVm{mf~6lGIy%0dazVIYm6{daqjHysg2AXv;&0f<)U{&?KD zP^B_PrLpzOG2&|o0Dc+(%VmhTYn6{!7Pm-XgaN3;0HBP}MxbR82FTG+A#5xqnqe*o z>4Sg>Aow2N{g0$f4B)7CE*2GP05F-dEE`iE5vevrU+3b-V=-kT<8%4A3SSX&beu0x z04V%~-${aSPNWI}7}3bWlq`gJDk;Sw=p+_E%7Gp>OvGJ(?vZiYG9U&pp4_JaF!3Ek zf0cw1kv5nt;)sijchbb0+H}@K^1vJxOAmQ*y`z%!0YQ~xS^LN-SeDtHaOimk5-D5;L>l||Ki&A*Yh95vV`5z0CwD~1B@*fk{rNP}6m*Hds5V&4 zDFMt#7-KSZ9!BXTvEwV`Wk&IS$EoEo9yY+=4IB^4veCHL?R~@Sm7sGlx}m9o$0o8a z<>ZG!!C>#fu%p;GD+dtT-QWjJC*C5K8Ac@x?OUS6@G&Z3eP$d{ve3U_FvsJZvdn`S zVP+50=Oh*YOHW>)AfZ`8f`@#&cka;ccasK!WB_`ps+TOBiMLTXC1rOP+3an%Pk%17 zS)FQTM^~$u)|3cB4U#&Ii&pLZ^P`^UqDW<3 zMa9<8>XZ@CluFg;K<(1aC#qCdL=Eb1*h%bnLJPD(394sJsu3~?u%;;zdm@$tFoy`nk;I} zt_5_$1yer1BgUZt%s0~ds}l95BZ8XHrkayY$2g>avH&MkQ#8o zYz7Skz--zx{|eUcR>YzLSJh}c-Vk{9P+xSfYs@-nUS@wa$N*#jG5{HX48TFl9{~mc X=t8G(j;_;)00000NkvXXu0mjf9iI}s diff --git a/TMessagesProj/src/main/res/drawable-mdpi/group_orange.png b/TMessagesProj/src/main/res/drawable-mdpi/group_orange.png deleted file mode 100755 index d73b1a4fd04c72f2e5e8846637a1ee026652349b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1149 zcmV-@1cLjCP)00004XF*Lt006JZ zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU$4@pEpRCwC# zTIo*PKoIus+Ri~va-a~7KvS-&FW3_8OyN-dNCjJ5lNHfn=d zLMS|<&#(1G-|r|IgL|~8`N3L&Zg$6KNGhu!B;>9zt=QDu+ZYG{Bva7K&!s(%&(LNK z8sm{m2oY5)EqHN>kTy|%{2su`3{o|ZPUC6M-+ed$(YSZ72;o@rv3o#O{rE+ps9YkW zalq_=owponITz>tn;7}Z3?ZU7rn1`1(lt5u%(?7X$9uGT;Fy&3zE)x0w7$4jQDLnKZcfG zlXTv_(qJf;mN@Il1YmdCz5tj8=TmL6tYA?g3=#&9=H*x5vcnI;#kds+D6ymnbv6@6V!p;`cmy^;EC7z| zj7C_#gyi!i&Lq%aawCCK`6jjupHqmFW=D3!v4dfcQGbHo>74Oeyxo-ZW?V=Ep!JHc z@@dvNDg(2}B7+Jdtii=zf%YkFRK12zL5DG;iNr`MC#O{tX_ClD^MLX5lde{|h5{PTHWu@9Qu z0RSa+TUjKp^@`}xB8Z7b)$X{9MPNf?>nn#7vEX14p&sjCORlm7y31~z@N*}2Hmd13 zn(!r|?*&{x6e!>WA7k|T=%V<^Be@B0H|y5nFaFBY-$#A{sAH3AenLd?>a)+J zDVxg}*0KAr;vRlrtW7TnMc>=_WeTB4+}!>q{$mHpj&n7fyXwZAO;Bj@rFisz-9=-e z#aH^=%H5-$d!kS0)LfC5-9pLZ3P57CsX6AB%003?NoFmW-<2Jfu7 z5*H^k%0nCY)RP%_Hjp&TO)`>z-1C2}x_h>DHAsqG50&jc9fevS-gQsNhQ~mg(OL!c zMUS4<;flU@CrgCCz^{iSVv P00000NkvXXu0mjfyvrYI diff --git a/TMessagesProj/src/main/res/drawable-mdpi/group_pink.png b/TMessagesProj/src/main/res/drawable-mdpi/group_pink.png deleted file mode 100755 index 7bad9b03547a7775dd869a498fa31a50650e7657..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1106 zcmV-Y1g-mtP)00004XF*Lt006JZ zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#;f9S|0wP9!qSef3_u1T1CRm80Av6%02zS)8Gyq6C{kptQB}%$tf|YN zM6Mr)Q8<~B!6Y0{w;F()v&_>b(*AiKoBHA_Q>#}1jDLAchLdeK;~m4flI$s18StdgMvgYnEQgk-EA*F{1i zNpDu4e+J}24roU#sGPTjfA{GCSh{#rB+0h<+%u4_gjiSkp0^CyHs;zg^e6A2=0eT zVKK|g*v|&!e#r9J?6&8AzGUG7}c`1s24SYA!99TNaBgR*6$ve2UaM$r=v089rcXlTSo@SxVSn|pfsNq>|U zfVy8+Yh@P4Yn(K=9Y=pc<&S=fi><}c$vCd7wGv}CYNa4sy7&Et{f`}LwMgqpe>3}G zO5a=OZT9RRe2(>|ZN55Mzv_9Uc%{5rrNy6L){E_cS}E$s2f`P$N;$6-b94Ug^pZqZ zYgF|{jc$t|4wS?D(V>`gWu@v+5~w;H2veIZ1aaU4lNxk-e;Zqbv3_z0{l@4+?YA#r z82qd5qqih;07zBTy@FiIDFs`4>IE_31MdbxB)uWF3@AMPuT|^jbwMO0h_Jq;DERP+ za&5GQ3%nT!2=wPto|WCoesL*g!bfi%00!`BinOEa&x~dNYLEfQ0Av6%02zRtUcUqw Y0H-mbk|)%#iU0rr07*qoM6N<$f&`ENLI3~& diff --git a/TMessagesProj/src/main/res/drawable-mdpi/group_red.png b/TMessagesProj/src/main/res/drawable-mdpi/group_red.png deleted file mode 100755 index 293b63320b64af3277f8656f40d71c9e867cfea2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1180 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 N002ovPDHLkV1h)z5AFZ} diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_back.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_back.png index 6d64f59c64c647384d9f6f6ab9b9cbdf5cc08c60..9e662f6d498a7a3863f702e2f29b53b66db8fddc 100755 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkL6 z;pyTSVsSe8$9V^-6bUOSsfGzGyuAN`;BS0)1h2qT#Ur;E0_D8c$a848Uk9?>ax@yJ z{6Dx}CX(61(#~Ng+l22WQ%mvv4FO#tcCM$7;J literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^96&6}1{rUgjp4n>0$4|$( z6h!%sl+W1Uq2{1k&sb<8JZp*7gjqaKuVr);&q->DWSo-19HicOgQ4R)qv~A8M<>*_ zIH<-q_q1^~`7*rv#;|F-^HH0|UF8QvW9mP~ig?&FCGjcDW14ctwM_g(SJsLr)Hii3NSH+PZX^v?e(OGH^>M>|;2h;I4lZ zsEAc$i=e|F){eOi%cdMU%;+6+ru|r}uJXbgM^-UNGO$Q6Sp5z-E%UAGB+y?Bp00i_ I>zopr0H!5xi2wiq diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_back_white.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_back_white.png deleted file mode 100644 index 3d44a786365b55c181b25a397b50ad4d1a030e87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1081 zcmaJ=OH30%7+x)Csn%2i@o}0g9zN6M)kZ|Cr9y|~eFDAy5h$c8&D0l!jyE`*~{_p$0|1tA}{kPn% zt1f~d+^If3jaMiBJkB%t-}bQkE?%ynWDaHY5mXdSNW^444?#*5M`0R@a(Q9{h6%!P zP08j^PPolUy6O{cA74o|Fq$C3Jtaew#vlTDII3t7^82fIBv9lCc_%3N1tS3qO5d~z zGt>Q9X?jcw$z)GA2$wiaph6^qk~*$gTq#0Uc{#kd%@hf$E@&)5?u*I^gCL=s5CnYz zujHp`z_LENBgnFJJ7D}YL;3N`dg%@>$Z||4ICw}L&6G#DG~as=3!frn0U?8l|+N0eSSNonxi26-&Iu)y)Bf6M|zJXwz6ddQfX-Elct0lH_~E8x-74q?NMu-WT@WQjvkk3PgdlJ!%|fCk!4w}MF^5l4WR8h3y&Y^<%ufe9 zXgV2)#k$ydC=?F`n9g`S9;jh?U7A#(hH6;(2pc~UYY&5J;K)2Ql_@Cqnz{|^C)wCrQM{3l{5EQYdM`%kNDCOkj(_Hc0V;c)b!hUeYHgT1;i z@)ci-#^K-|Go1S~8w|}iqy>I#w|7cZq0&Km1x98;(v2p3y z;zo3HR#=?`pX=QZ_;J_er$fKpYZs&K3&Ls!3^~@m4N`&Oa~tL8pXRwYm7M$0%+Kg+ j=Z(i_8;9$Xt=)uYm{@WJ*OxaIs<%0n?B`eF!!v&Y_ zRLyKbW+OJlguF*$$Qz`E85en>DsYblIgcDh@^tRmz@KGE9TGtrkaNg@(aRNsYc#?$ zNI!DSz<4UnM~)yL5GP`mb$~|w6seaq{I|&PX~c!B5OrV;(vDO@_C!nMPFN~k2WaF? zNFiijOOVINGCc<a?ZM95~5NWURvF z1yH+hD_lNx5ayb5jZ)mH6(ag^G!vtX7S4lhn@XU%v-JvNCRTqit2(2|cxXdW7~C zm7~&7G_7Qmpy^JhKyU~?eI6EZz@{4IJsGUoVgIwPqH?wO3dgK!RO=7z-3Ug!*e)s={CIU{wVZ9!Qj&r zCI|fK?g|cmh5G9c;?Q?JjZaL1yTdQzKtSQ+l#pl^9L~GY)0g^?)7IGsBhfJ#2Rg}t zmoiUG#$s@*@kPqGaJBhl>sgD!2gs1rykVZVdb+2@i?^#^<~32|k;13f8?vt7YkG~f zej;J?y;9l2ht`mmhF4{0fl}>$v-@9)5AdMRCT_=+iWg;P;o-Bl@m-I~t}pOK=Fw}~ zaXlxYF){I(ty<ab(M-DIFwca8+qGTXVp+I@GI7j=d5X36Tu8qK7y$P-=ijWD{g?m%002ovPDHLk FV1np5oeuy2 diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_other.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_other.png index 6159c5eba7ead4119f90445864441be717be8aed..1d8ad18a0c5d891d971e991e143c3df0a9e15644 100755 GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkM1 zMTcj-fMuPav=7~~Ah7&(%{n}Mb=c)I$ztaD0e0st7?IAs6; literal 189 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmUKs7M+S!VC(K#9UIO`&C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGejWJzX3_DsCnH`TyVkumh7?8zb9d zK8XVM4HFi>ytcXj|AnJhmi(CMwm9Jm;}eEs7bg{Lk&!stw)p9R3`>J3zMizh7mE^r iLZt^f${8FQ7#Z$el`voRmX8N$G=rzBpUXO@geCx}jYEb2 diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_other_white.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_other_white.png deleted file mode 100644 index 40c40ba5e91d347271734c7b55979e2c61679629..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1005 zcmaJ=PiWIn98MKB8O+;Y3c@25aj+(NZIdpsaci1&E0{65g1xykd27O!yexUMS@EI= zK|Scf!}Pj~2N@!QhzAi*A|3?su!9KRcJbmx5avtQb{?!D$$Rg|_kF*=@6Phl!uZ(P zF@|BrtBZP#t|0kNjnIG8>HMV288Y7>D|n5x%@8pq8#fWCdS(mNkZEskzDGrdIeFf# zH%P;{qFC7D%ml;5UO?FlQ=E+h(^^LaG*Qd-Rrbg0H!N^%mAxt&f)SLF<1ThWw9;9s zTb*@Fw%OUspcpGuz(d3YvA5wzO02S7U4`xwGtYu9gsiLVQBVzI8I*B|fXL-CmH;7; zBo5|9NrKZLE5Ix-&{xX9ydp|Uwg7q$OTC5mno`p%Jzw;svJN4E!t?ERn``Gd9JY8U z%W|TT&1NVf6K(s%j5B_e?knghvO+f?F7`p9Xg2W{QCS-4Q3_r#koBWpnP|cI*bI2c z2}w$Qpke$U>UjfnL~7_b-hT>5_3Z%hH5B2k(4vi7ODC=Zr5qxY;INMIM!$;74kkEq zZ~)3H61ZrXmg^^msV>7Xl&T*Q)3;DnS6QmTxvs6`XJAe$!IA()5yJUgsWc;LvaHFu zY(dksT%W6BYs*7E>2vL4t~QjL41*U?&pHa->&UKz*aO|96?b?nGeh-yTzhyd@=z{M zgW;3b{?+QfiOx^59Skl#3`QUMblyWc*b{pn6?!SIRrOLm-f#XsJe++ucjChB)X47X z$zb%^gI)LF>8r`9!llfk&HPy9+}uljCo)FUZ_)iqO5I((`(x_| diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_other_white2.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_other_white2.png deleted file mode 100755 index 23433a4b84ef8b082a961aecf93e5398ab103345..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmUKs7M+S!VC(K#9UIO`&C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGehAJY5_^DsCnH`TyVkumh7?8zb9d zK8XVM4HH)83yT@|-w3dtHgl4TG` aV3<0W-+X@X`K>@R89ZJ6T-G@yGywqEk2g2~ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_search.png b/TMessagesProj/src/main/res/drawable-mdpi/ic_ab_search.png old mode 100644 new mode 100755 index 20fcaaca4f0f2a6a77e2a9d18f3a299885665ed2..dff1e3a8a4abf2916b71ed6e3c88f7370c629fbd GIT binary patch literal 346 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C(G&@^*J&_}|`tWO=~G=WkKx z$-&j^;{Fsb>76#~R)pq#vC~dQ28EX` zg8%)PA$hNQvd6BsPYx$MT=FHzYSw;c=IFCirMEQdzMB?gJ98>mrHoF2`8ro&(KN$? zLq;6eEsi*JnsBu5ICg-0ufm(hH_M#FT9of3J?ID($lK80XsIdVu{%sqUTTG`IE z%F_IAZfVbDpL*}1(7rV<)A`oT%lo!WNPN!hC40?{(?z~=?ahAfb5Z5J`h)2;|0n+E m@m=+TO(=7^cI_YGAB>{YCan_sd1o=ucMP7celF{r5}E*-^@JJ# literal 600 zcmV-e0;m0nP)PbXFRCwC# zmtRD~Q546wmQiBFNU4l!uTi3>dMVLU)XV5;M2ud0h-ohorS#BCiI%<8V?B)&v3iJ+ z=+6>MiHH#~vObqHet!1be%tT2O?3JC&fVEP-+S&k_uM&ixtyb(qrp+<@h_n60vgR2 zJ-lUFplL7(d@}tC;vm-7?)j`#fU{H;;CvR^0Idcl84y9ly6s1R^HpeHobQ5h(2O%D zJg6Lt=^D0swnl&jgU}B605do}H?V7ij==y3V;8Y3fJN1gAAtvqvgk#LNO_?v&;fd} zPg^~LU_R`noU4J2ic%Q3!Mq(gFeV%=W33}e$O$_HbO~RZU5F@rLpPc-wIskLoGmk{ zvvLfU1-$DbVRraI+71D6;VH8VQ3*p*1*dihh)OsYrNqpP4z4i9eXuh@C0mwgfy*yu9DO>es5WT$tqBxe*)d*h_LNNgp(iW zPB*POo(y40000^!VM>ke+wZ*pfG%QS@O1TaS?83{1OON~P#6FJ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/popup_fixed.9.png b/TMessagesProj/src/main/res/drawable-mdpi/popup_fixed.9.png index 20bfba33ec63957257890f9fdaf37279c23f81a3..e9204993dc43cd9559caf103779567c5c59e11cc 100644 GIT binary patch literal 961 zcmV;y13vtTP)!1&^000AsNkl3iyRWpe(F-BuG-mOt7)}m;yDuPwCif)QUD0U^dDHQ3(RlAY?igvGmO8gD2 zpy_wuIdF_K6SL~f;J^c2*yH;?p37V!k>;*iz<9Wt{OdkQdl1p2h(`^ud`6?ZO^c{6 z8-*CeeU8qlb6Z|QoJ75w#LiKhrtLY)7o1?2fk$y6a@nap`Z zNRn>1WH^bijG2(eYVq>&^83xr&7WGpE|vM>;^GH0C1=Pmmq{ezAR@||QfsUYqrKPH z*MXCuFO{7c(n+UQI!5b7)C>_ZHkm9I)c~WlfM2QuU5a!|(bZ9e#rjdk+F4`6!gL5k zOw*-Iw^q7ZP9pTOu-SRlrZXWdgh0dsT`F|5jpgAeBFWS#u@ftkiy;uPNS7hHW$EfF zBE{}nW?jt+t054vN|#Z(<>=}uLam|4!Z=fEBLpHg=rT^X_C_LFxB=;9O}!GfLLg#` zE)#Ui)Af!BeROIOeZr*hTG$DJh#k62(oKudN9Y|9>R2i8!&AZ=VK)RKcIh%jw*p;V zMVK=}iwMh%Fh#h|2(LY2I|L%O@4H8sBJ`4%|Drgd}$#LH|Q`$ry?C)MOZwDq}fb*xFvlq zED7(0J>j!(BzzH$g>OFLm`q1x+#~Z69Y*Ptr(;4teL9KIM`#-lClxlBSsq;0IEp?9 z`@$#TfM5JSIUvhE*>=dfNcJjSN_1;6-cmWfs*4)0>DpOO{S2hm*u3yoSP|X{>r6dA zuui5GGR~8^N{22wrHy6b`OY%Vj+!xKsGE=x27M~bV0w;U=m+M=G(*NJnfnY08M?*I zcb0B%v15h|Tfe{+x*2qU-FJlJ=!s7lBhxS$`^c8U}fi7AzZCsS=07?@QuLn2Bde0{8v^K0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWv2L<~p`n7AnVzAE zshOFfj)IYap^?4;5Si&3npl~dSs9rtK!Fm_wxX0Ys~{IQs9ivwtx`rwNr9EVetCJh zUb(Seeo?xx^|#0uTKVr7^KE~&-IMVSR9nfZANAQKal@=Hr> zm4GgVcp$o0y!L2NKW( z>+top^2{qPNz6-5^>ndS0-B+hnVDi`?&f6SVruSUYG&?iXy|I}XzA+YWME-w>Sk!^ zY~pAF)9aF-T$-DjR|38Iua(|ZvxVK???C@?TEF86eC45_&F zW_DuUVFjMn#tZATZpoH)-~F$)`|y;l*}*ez`aCo2xK-b{M?F$SapkXl63_cLzOrMz zy6(%RCA<%h&%So+NO6~X7xU3Vnd9bH_cay2Ydyx_WqefqsLMXvNBKfRg^m}lq5hjnL+(x4b*%d0 z9o2cw2CP9R|6CDl&}=q19ma5kUGLn^aH;v4eXq7Zt$ACj{O|vk`-<;`D*NMZ1oJuE zK6TsQe#7IP6?IuW2V5O~Y)?$mWLB$-NPiZ5`sc0LE1Dw?aUSwaaV+J0A~|7Q>{X}z zf4vw_SWVmX@Ey;GrVuan#s9wD-u~g_XUUHCt^|RVA$Kw^TqwUUUK2XKL9a%8>C0&h tPmV9mKFXsZTdw_^;pDW?vv>3v*%+?=pJBV_dXOc^&z`P+F6*2UngAGL(Fgzl diff --git a/TMessagesProj/src/main/res/drawable-mdpi/telegram_avatar.png b/TMessagesProj/src/main/res/drawable-mdpi/telegram_avatar.png deleted file mode 100644 index 04bf4ff70f26202047722228a58b96a86d274618..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1699 zcmV;U23+}xP)jBT13wtX47U-sNt|TFXpDa?WXYm2GmD8)m+1akV$7Ch zW-%_yjF~Ye#>8ZqL*iUu>NY3HAUHyTlMi8~<)gIF($bcC&s7L3ukF3>-B*hJB@YTo z``-PXd(Qctb5GO4;cy=S6p$+fsRb>$CUoS7m0Wp{n$T#-j{u}D0vbqh=n{QH*TN!< z%?0V}A$I^mVSq}Dp8j2E(n5Z^_WwgbU@;7x4nK6-eb6=GhkoY*%mo%>zQ?3XgGX`< zP+gb~)m9^HC%=u_G}WFljbwrG{{o>f^iKKV(qA5E9rjR*D}hCGy3gSJwCZ4umYoVhAxC5{tlTE<6 z-kGFWNUl)}uRfXupYO54i=GJ_2}dA`)2h?=Q=QhRr703y8$EzrEa_iM((b`ziv7p1@1Dl6m zjG;kq+I+BYlZlOhTQ;9+e!Y|U^MUdQ{hAe*2R*Xy{hOVGfSyUQ!SBfeBi-VA$pfI} z2f-{*Tse z*qlkM&FdOxb!L3d#J3?eE4qcR#D&lIH-p^^=?CF#`9MFS0TeN1^VX7dK) z6X5joS^wzcIdEv3Mb(VaGUNdf<%nBiZL1=Zm($OTTJ?_?uMByFe9mlufdF2d>2|8B z8nGM~ot0t|VAAt(g6Zk_?J0Qqdz&gJLP~?*N@Pi_O(PY_<(8h!Kic8w&l5shXO{=X z?XGMi0|CV*WjPzgO5=B9aH3;cv7E+=R3w>FYg5DAvZ14iz`a%@2_Yf_;M@{;?-B+H%=E7Zf!lFL{ z8>`GpaAk#uGdXGiQ)9IJ?(l|a>q`{Mvh}bh#!OL6*@pv3Y5;Y?sXNosh0m~<%5MqH zTeD-f-eMAfaRA#{YM^a&Uh>>QWbVh>ADc5=#ZYAQe6KnWG%C$0e%LwvfVJ@ugXKVz z6(7`Wh})ovTlwJJ&A~0%st^#F7FkjxD_(lo%(Q!%DxV`&Idr?KQJ0^-#pSXZKsP%5YytN`HMco2uw2|*l<>L!SU`iIVRn}A7jd%oGiC<# zGqsc=uhRSKxninZ7Mm*3?c7)QoVyxqLlbWQSTsSi% z80ruZxhv2$+Q+=qRagTXM)X>83AFaw5D*D0c)Y>IRa4y+M7&@+lQHwZz6eM%*i-(S tqey^0h1ajga@bBTY}2OX*XREcU;y-?z>guxXa4{I002ovPDHLkV1llBHyr=~ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/user_aqua.png b/TMessagesProj/src/main/res/drawable-mdpi/user_aqua.png deleted file mode 100755 index a075f6b4e97ba332b26abe272f6cd1105dc69ecf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 969 zcmV;)12+7LP)00004XF*Lt006JZ zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#TS-JgRCwC# zTIq74KoFJzRFoUh9JQ(1SKFuDm)PgX=1>t)xg`5lNV3_ORB(FSfvR-z$AXdmrmwGi zP=5UU)$6jbUdQDNz!!io038?YB!8-^!+u}a)cR+d=S8_M_xlb2fYxWeXBxx9Tl;;L z>~>MI-K1$t0odcwMc^~0yn9zwnPZM|!64W3; zIIu>BYmOB~X})UeIe7doiX{WM3O ztIbx3_9%yxz2FB>l%)_1t7IdskliezeH;b|FSSQCWiPoDI0YEB@j>(32 zSkx(ju(1l#QS*Fyvy9|7^@oJA;dnhO3V{<1VE~$+50s_I!!j`dRK`NrX<9p<5C7T% zKvmh*EL0m0*ao_OG4VwKpiY?4Se^$S+QMV~%^37SrRddw1i-hgGvDP~3p>DWU=zO= zQ9&5;Y1~eK7I?(-rP_d|F+?4luhx7m-q8RUQ{VuhKkGM0>LH|9E*V#eyq#a~N zbLzS$@^XqnkU4Mx#_ckCJ-x9 diff --git a/TMessagesProj/src/main/res/drawable-mdpi/user_blue.png b/TMessagesProj/src/main/res/drawable-mdpi/user_blue.png deleted file mode 100755 index 234d68c7f60645075ed16f205ba52ea1cd8a1cc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1014 zcmV00004XF*Lt006JZ zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#h)G02RCwC# zn(I>9KorN5&E`rjgh05}P^~&0JAI-)Ti>f+>e$v66;UoBgj}#kaj3OAgzVZ)W;~NG z3|X?j&AI%~F8rs@U$`0IvYA03|p45YNc1qEZZ@|*znxVK=4e@-&A#h*MHR1LjgDFb@n8!iaZdh8r;a`JH0BuulIlYMJsLOPD!v~+0F_P z06hL{e-uW^+oqLc`03^J+r@;LoL<{3jPnf~PD7Ucz}oyUzR4B4Ga7jeu}UM?en=&W z(P`?>u4dZ~IUfaFaR49{ZZ#o_rv%itRgU|k>k+w=|f0`DvoCXWKn3@m8M;x00004XF*Lt006JZ zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#hDk(0RCwC# znu$)^KoEv~#ZDYMjxU@GB9Lg+2kPte>G~iA3WA)rqv|&Boy1( zZ+2$(pWU!Oetu_;**NCN?GxY=;1l4;O*qI)`C46S3cR@aH%gXSmSlN)1OQ^K?wG@7 zL)-l*&$A$Oy&k1_V!LM44x=IHCLcdJPzF)g!oen^)CJ`wklGvaFK*aqt0f?zFmZt+y6a^Uo zjuJqA7;*M-0BIHz89`CxbO4f+5Wu>i1CZqjrt_ZOlO@!u5D`fXj-Uq+5dcWihz@|+ z?iyML9{}WFU6d&RsIoz1F^1Mz$8ZEX0L!wZYB_W^6ad!iH7Nj`YR1v39@`dUs)BkHovO;@sv6|ED2exX+5+R5occXY!2>`S*vRrvY ziWr%u-t|X&KN5^7x0KuF1rv8M-s^r+rv${dRUW2S`xn z%s^rh0D#gCv%DGiKF7f5){qpq9Ag-SE=)wgLS^4|{jcL>JxL?T z5HA?NrBj4g>$=?@v|Bd83DvV zZix|LyS#L)^H$SfDr``=)uu6VZ>RsZ0=Q?yQ|C*?NB^825F>r(a-$ue0DATX=8^vg z8|1g4b)Ntrw$x+r{R@M|6f_tI!BbudS1pz_)#UWn$-Y{$N`Yi>uzE8`Ymz8)62|#d i6{6_qfB5=GfB^tPqB7G@V(^s!0000VkV!2K(X|+}h>j03h=zFxPh26EZ*@CXjeqTyC=l z*8Uf88`bgl0bK58;q}1H|Lb+3t@l7PYvZW^eJ;l2o&=IevmbnN)-*7(FGaFymwt>1 z0QRBH!VZvyC26-bvIXW7D&W?u>YIR(DM;P??K0Q4)%O7!HGnSWkfO*8=(AC^0qC=_ zCp)_*MUz-caRr2@aC3>N8N~q*+_XZUo(*^{fM8xy0eFssYXS%glMBG^2D=>gI@h?L z7C~Wh0km7F`}bU1aRA*8^8+>>fNn=^0HV23uLc}I;|dQzyQww+nqCECDUX*1up&!# zG9(oMi6v2M0p3TXOF4y2K*!ts-F}0*09*%s|DJ8D3xIcZ(E&(ygi--ucW`^}QBxOy zQ#oZ{k%uUM3*6?F!Y06K0q61*uM{YsNCzyvzO;(FqAVs0i&D#1er#qR?@5O$9RN>P zt)HJnVPveVOSz|A+5_w8yZYtuJ!jRb%aeZfVm$f*_mt4ANwL?Sy81v&s4&oBr+0CYz)FN6v}oEB#bzMCJiYyXh~;PXD_##;fw*XySuV6JYXLqIvr zB(Ve-`K^1SaK7%7NJBU>C+Z8QS{@Goba6$D!%0&TR{~R#^XnX}gRjz0pQucGH}ab( z<1sx|C4sz%v*hX!?9+W|PI7nvga}X1$Jw~u<9aMzbcMOfoXQCUQ5?EXpng9H|2BBd zPofFbR`^4?MSq~OQ5B66-i_k*2Oa-eu7=R8DpOnMJ+KX4X2OAahfRrO=d@ukVs{5Gnj2GuiyBJ z18`f7{|7)*ER-$38og~JI8ClxesK_1@f(XC?MDEx4fE`a+xes|9-jHsx>ec}J;uLN zVMZ&o@opkFf7eg&;cIjKO}{|v1K=a=7^A34s)0F5n$G_LAnas51wmQ{Puy6oqI2o@ zX7U5Jc-Ul#l+I)PuvOdGngUb3PI$*Api7^QFaux@fnCfD0{@SbzXccoe6co!{TLrg P00000NkvXXu0mjf?F;Yf diff --git a/TMessagesProj/src/main/res/drawable-mdpi/user_pink.png b/TMessagesProj/src/main/res/drawable-mdpi/user_pink.png deleted file mode 100755 index ac2f29dfa2282245770592b0dfd0389ddce91887..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 996 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 B;gkRX diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/broadcast_aqua.png b/TMessagesProj/src/main/res/drawable-xhdpi/broadcast_aqua.png deleted file mode 100755 index 70dfa6f6976f44e5be84f0c43d6480311c5d5a52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4685 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 diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/broadcast_blue.png b/TMessagesProj/src/main/res/drawable-xhdpi/broadcast_blue.png deleted file mode 100755 index 4a30d7b6e035522e78c0dc2b0aa93f29a159f091..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4978 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 diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/broadcast_orange.png b/TMessagesProj/src/main/res/drawable-xhdpi/broadcast_orange.png deleted file mode 100755 index da46755d0877dff5b8c0b11f2da2ec3d822b82a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4965 zcmai2c|4SB`+w~FURlCSqik8mGL}JO8A90xamYFbL(CXsZ!|?DQF1~>D3Ud0%Q8tA zR3ce2W#9Kqwqt#D-qU%1fBeq-KA-1#?&b6Sey{7kuj~GNp6f}lwmi$jDaHu^0FRj| z5_Q;;e?IJthwt+jH!=?!QKGRU(H7@T4D%ph00S?aCkAX5;NgQoVLZGdf;up|0Kf#n z+Bp&(EzZNyxBw-OpBSa^0Q?~v0CW-Icn`Ech6wh=_+SI|AS?Ba5HQwD58?o`fLh>< zFuqvRNCL(-($Wqc>5ta-f*{U-b;IF@0s$DJ2RJ<7QeZGVTo3Z6F8r|nb6Ob!{u4s< z*Mt1qDMt%yun~@c0mGEk6wy!>6|jbel8QP^LqkOYtO`|8RfZnk8j33FaF_;MRTKQz z1v#`v@bZSEkS2fGIvnXie2GLnTv<6REKDg(O$kTvQC88`*8ZuXs;YR1Pz;U;BzlA^ z1_n$0Qb1yY(F81>h{Xkhe=2%-;zEdekV8-Zy@UY#-?D+he{Iv@hAD@8;FVRBpg))N z3us~S-=P5kf1`tmD9nHS{eOjn?IQ3PWfUeD7eYWE2F_dRrzt$#h=B1R;s|y)+@)W; zXzhz5;(~o~c(9SJ23Xbs8|Z}#3zqv6Z(#v93k)WD1fnr!NIl4*f)W<%1viFi85?OM zk?N|3nkp*B>IN`XEo}{B6_~oFI!xOT`HPFhp+f>Nfy7^2um5n3|B?GM6$0>wmXR0& zHWcG!Lcj%p|6DR0`_H}@{-fSsT(5uj#poZo%7@M<{|xN^3G}b2!|eIl{X1&E4$d7_XJDDZ>g1FB?o6z@RTl6ev⁢1!=yB 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®JA|8x0rrM^0H>&PVJ#8b5#SKap@ukpx1~O0bWP^pwF3d zukIhvy9_;PuTGuqsh3&MI1d~hJYmsiepC~aEh{jW=74yTJsAN#+;M&lBnvIRS4J@C p94Wi~e~zC2dO~%G`tBS_1_)4eQa6{VuKxP1WT0yTtJ8Lg{vXd{MqvN| diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/broadcast_red.png b/TMessagesProj/src/main/res/drawable-xhdpi/broadcast_red.png deleted file mode 100755 index 1cc2c2d8d24bf88c2e5f67e7ca716c6fbff239ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5130 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 diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/broadcast_violet.png b/TMessagesProj/src/main/res/drawable-xhdpi/broadcast_violet.png deleted file mode 100755 index 9f2ed8bfb243d3fefe5c56f24e9429968e7d5d3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5118 zcmbtYc{r5q+kWh_j_mtb%5Kcq$2trdnMo*X_Q8Z1%UH9eB3on&k) zMcMbQvh(Tvz03E<_kREUp5uA$?Ksc#y6*eBj^n=XC&n0afsu}f4gdf~lmXJ@w2t`w z(UPB*MmE2)Pb+Sso(0jA;6e;=@WBEIXM!UZjPi7F#hPFpoP)f(u<8InA&fJ#AX=b} z;7$ZjS%=>k*+5UPQ#JsoYXy2aIJskqU`MPg4zD4+-qb7%#yM*Un=7K_&|bP&H=IGR z57smoW9Ag>?xgB0tfdK74}_lzcw&hT;6P6gye~XZL--F}_-Xt1Fhm&q2ZZRZA^abw zEYQYaU4jo5tSBol<0J=#f|ZnHp$dvhN>FJqOb!Zz$eq4QGEfD$q7odY4F2;GKDFlK z>;gAI>i=o$w5K8LMkIQ{A&`K80NDU}S%Qx%1gfg4`db4AlQ~7m_y*yL4uLXwUy;8Q zkXT^t5{D>ODr=I?23Z7nn%i?|iT&B|ng9JKwL7=j7zo+yU5RLx- zp`M<9qkV}c*nj-}KZSkGg1oR06Ra=6&&TOBa4sUhO?km}eXtHhf{z)2;PKZg8oLpQ z1Yb9T7g*O+2`p}o!#fiKd?o(CqtS2_-k0crcfz8O8p5XvvN)VGTwe~U2UCH;6ks~a zP^g}Qj)JbTu7bP@Qdv(0DyOUe7Z*uz^7F*viGOjO|KZC2EBALQczT^$Mq+(%{#a*y zAA%?Nk14}(|L%+2zv}(Tb^do>p#RE+oH_&f9oYXB=)ZsB?P>35-$sHv$=;Q2AE}4w@?`V_KDh zJDr~G?UWjFUxpYHp!U2@-F06RgUwePGC3IWqAQ5%gs%8VkV&zbU;nFl%`F$OdhgGtdJuT4ZejAaT;uDqsE|#I{DUO2@mF|*N zo~^}T#|e06pGRFS&+x7BFT9?WPIr?AF>#%$_9*P=ohcjY3YM&8hUTMs?Af6~d_~&T z5kuo&qNvUDnlPhUlU_SJnN^PfC1svU>TBkdKnfoyG<}YPgI<}?Q0{)tdnu?&`XX$x zk&;VY>ni)=T;np^PeFl^jl~8BuQW0s|H5Uu&k|{jw4A^cKZxn0?Fbfgq#9ht)p#~4 zW?oOeW>4!Fw<(zTOC17b$h?6gYiaIQ6}sP*pq7@lTu3U@|CZ#-(81ddQRaz`rnp;g z0sG{@%`U~@G#U3zXiX#I;CR56&(-S;c|^F#+a4+h@~DP76H=9}>;uM8#FW^fZkur; z6OGof*N63}EGDMpUpv7GjR7ajz8AYOQ>@h6^h)5MV{{L`9d#zA+$#kh-9UbIxZx_iYXlwHS%L-|^FrI#rLOS$P@AGf7gHL)+OC^BG= z>ZGL3zPWlic30ucEoC-6YQo`SQwOhdcb<^AX3V1}V&1ot{9gr+;g!_e_7hB8o%v?C zlpY2qTqKiJnHf`6V=zS^oL&eFgvKVhWDbNDd-$kL<-%HBNbmA+NX_vIYtWjw70vj{ z>&3`B=@k#WSnj&a2D30x0NvH1z;0f08>!R&0w0({Wkr%Q`|zFk*GT9LMuO1&1>d0^?EELE+L zk}(%~WX-s4-&|4hes=>kJmW9_YQr>A)72`R904zRoR@B z{HKW!fn$ym#(RDGwu5H@V{@P49tzNAQ*p0-5Jy-x42X}1sfef%)pt#*k8 ze8HJec2p8F381%Am~Av-;jB^7Fz1Sw+8y)hZOlvp5d!{Jt&W!o%xJuBq>_P2{X zjN}nbn}!`FuU5Z(DuUwjY^l+g97o|>Vcam-77vkR0n0A16<Q>`O&54r z>O3JDFW+j%Kr|=LRLkAgURj=rz0Vi1%r>2t{mKHDF&%yG4hD)}eKYL$lfq}hv?4fkv$C%g$lW|pP2gw?3JhboCeh%+ zXG%>&@1}SZ(?sTH*qFGmIw!O9kWjk&biSh@j%%Y(TZ0a_&pAkw2`*gn*CBv}3c2j; zL|O{i9-$mH87A*^?mLD6@c}P6pOQ#QMLHfMviE9JZ(oFkoXk0gK&lAIpOcg{jY zRwEO{?o#nZqnT*VJa;&%YihKjEB>TVE_VTV!Y!)@;%T>H4RB(m0myP0=p&fx7kFse z)8q1|XTpZ6-Cv9FJ>f@Xf2qF`r8xB%`rvNLG_}d$0LTn2#Gau}g+MC=e_V;|fK&xv z&-Q8}8b-lMQcB@Tqjj%I-{UW{Y4-Q1S&H+U&f$x^I8vuKKvY$h{9(P_XvB(t=LODrI)r{X7qE~OqVr*crml=Vd%&YB zGIyHhrlW+Zg#J6z%Fq~es0|lTrN#fS^Q zW!$+o8W}x7qru!m>E@C_o{@;$|0n}J#yl;%u+=Uo(5krAKQYTi5_F6w79)Zc$Omt@ zVPec?W3=SRN8olf%7M| zRO4%=aI%Pr)!VOZ6-wZ}ae3>~5o8UOU%kseFj(D`VT) zmm=s$?3OSis^E+AZ8BP6{fuB}`RWd{`z~%&H9cFtU8Q^Bp&FR6TxrpY|ZjWR% z07X43cBX7OSgt?V)Yfli66*QjtLk25YyWNEqLj29kReu2lBggIee6UXHKUX)Sc- zV6@L!duIPIy^44d%9; zU$zTzoluju?@5x*<$ii@fOe}uf#DXW+ZA1qjKu|6*U$$y7?mMgbnmEP<0vqrg_(zzC*wMktiZFdF`O~3N}{&SLktc&{$wKHngJtl*$ z?dyGEegTH5Dui9R`_&Sat;$3NZab}A6^8$bIe!bR@SAhq9 z^QXtQ@IaprtJG1Oi(jx{L?GMvr@py<+*!2D14a-FLNb$4a`MGj2Ce8p|pGA@Afn{`5Cr|m^^I-n91csP8%EITTiGG8lDB~cwfYDHCe z7tMDJb1xsa1z|3{^HUBhJ~<*Zsj2Z(2@MepsU{xx^~@Cx^2HWH9aOu{H zL7pJppuGai@#P^5bK;Jm*5{|!RE&NGW*%-V?-Dny@;8c=q@y^}^f@@T)Ysdv_n4?p zw`am6&usJY{v_ueGS~S1`_Z=nsOB3qEitSLXlyy~PHkr?i$T7puD2Ji@%@!UD0P3q zPI=C-sMw4tf{W)KK@=Rc zN}BLE+IsQTBiL;DgiCSyy26)HCeWN!k(Knr+aRg=wC?j8DsW1c9HZ}`2pQ?mlOfi# zz04bztSdf`TjxlWb=OOCY`p%M_c>pX@Y-$d^ZHU(T=t5xEbjcO3U9|`?JK4 z30?lcy@K{i%5XfN$Ky3Y{^0dF7tyOJ_Pl6An{$^~jjLxf#%gjCwJmo}3bnoPXpGEZE78b#L3&I3TN4A?rT0t-1eS(TNCWr{FHZID7&=TTdMMf^v|E& z9JZ6Mv`Q~pzMBi=e2_Cc?1-9yK7(qJ4$SK37#2}Kf&u>m-X z$WW|fq^%P=G7znek=EA(>yQyg0>M}!3QP_T!iOQqy3&8@B97L-j#Z?=e?o|Xy3+r0 z$`xr3HVz5Jg4LB(mC#Ta46LD{3{z9r(11a}a3~C}0zJAllwfKIbqxeu6a3dDePk^Z zOEfhj|Oh4eQNiTvN8 z!NLDVhY=mH|MB;K6b^Hu5U?r^*szfBQ1nsZ{7(KdML-ybVo}79P^XZPpue+d9}q$e z2@41zfQ=nBz;Z4)JSKz`CjTcMi9}f9!-yz68f$5yD}AJ(jKg6NW@>71I8GvmLxCL!qXU@V^aHy86CuJ%82f3-p|;mEQHHWU|u#h8VL z1cUz!8G-v}Uo`$v?=LRqpMBB%N3P0|Gb+Cd``-%v_t8=J{969IZI3qpZhS2MsM|x2 z+FC0+!wdj;`7KQhoyemro;zV;Ex+aI&5wFomZD|KFldPA7{mEiTTrYMc-`^1g8rvt z$aB}NIxOWZ3=;@9QlvCug*tBrw_k^}E8<8`^)|hFmnzD#nMCeQuw{4VxOLOk>elW} z$XZJtv_20!6nG(B4!8m<75~>^^j^#F%V~k;ie>71Dbq27Qq7=pR?de{s*>s7QbZlD zJbU(HP&%UOln(Spz7mj7QfDKkME=B7nqIL9-B18hdfY42PYSHHePZSL6#rU)3OeC! zEhD`Y9u;@1?m$p{9sy?-fWze~JCZfm9W+R)cV0cJOkOASu1sqIfLIp&kme70{Km{W zE`O7Uz=Msq|B9Z$u*=nZ)Y>$~l4o_Zl|>Pw{6ks;9ygMmOK!?54$(%jHIa|HjWT2* zz;~Ad=2_Our@Krw0nL}cjYJAfz51g<*2|G5F6PPE_c_S$kEFFK7CYW=cD(PPsU{hqAVV_K&fBCBF}I&rc%!^cLtmHn(}o$5D#k*nCriHk2 zxH8e6r`@*YKUOI*2b*mx7&C0pmushoyckFvFuR_Qb_9~G-r{%++sE8~#HXU5nHbv7 z8)Msrd&cA`=I56rV^0l&%B3pI%WknV4?oRI0JB<1VydKfi?0F#Nqx3wZ z+O*svVCzS<0Fr-z=%=3U+cFS87S&*X7oeti58b{+dCLVTh1Df$vPL{YU3D?T;iw7f z)2!u;`E2IP#ft~H@2nfB2f6+7X906*{tag>oidwy5+izbP z8=$=9itK-+cC1D`553B)F7oYNeySe7kQqC`Vo6b&nDEOtk#abmMoRw?K^4~WsyQ@G zYWyOva;#XVd3WM0gHMrY5i|S@rz_MT&g)96UUFB@rBml$f(p92LAhT*22?Z5x3&?> z?EChQW+~YaV4}g;zNYz#*Yj^wu}BUhcRPE9u41n{*(@{MhO1r6Qqh85K57#q`78SN z2j@+;Vc#e2Y&wu_pX;=AoXkiUTWSbPZJm%Fr{@8{Yp#xr7E?)&voqj6#mqCqu_Z~w zD3%P|s+R$0v=p?SEODP3k{vp`EinuoBr>RT{-lJb-&}%-(WA3E`b3D6 zc}h*^4FFTdFFgPlsHTA-LIMHFJ<=R7LMLO{y1$gj6bwKShq`=Dl-jow~ay& z3^HRxtkhs32F?xUp|{g$HA7j{ul8<^MaZDj$v0kOJ36h9Ymru6X#k}P-(9vS zSgfd2;XEM;PlR-oc7RF4j<@=0wxSks0RpcJMS0!LzA!P50~-E3DaWV_Te~W|Cqwc{ zN-y&!N0?4P^K3G8D?XIn+qSDOb5|YNyGmRQ1kDJvK6B;&*M$=W6&c#HZ{| z{l=e6pv_30vHDW{?HWt=N%vQ#2s{wYc31zD*uiIygZ0u;CeS^cg<;T5!JMi`fPsIZ zHZR~4Sw!g-o()HL(?{%f;v^kpFArJ4-UtqYYMFUSDIY{>D?GF(<(W06$CDVUC@Nez z?W_E)Pd%uK$)Za@3Z8h z$r!+#dMq(@Cjw6`SRZGkx=U^dIHpAnM_Sv>A!B958AV=x>=k%WJC_XgQHN zD|dHX?z|dEU@IIBdWq%MaBoiLod{>7UyO=0NK_(9oB;3mu%ilXeWFEu39m|+dAa83 zrDgVtv>d%@K&W~!qbpTHZjA4=$S15_MS+GVndpKk9dq$srF&3IVl4Uh#Cd_XN|RT4 z&@-!7-3|+VX`@dW4W#y5`kz!@jqLQYxIc$?48GoQ9O_)RsFh&Gk9)_XFw7w?9&kEn z^M0$AEp0UndZCe_%Ts=9V$ktP!0YUM<%e;+(_800R4FvFMND}dPgD(P|F+N@aXG5w z5bQgD{0Uo&m8>0+DCOk1SYRdE<0lhcCLf>Y_n5QuIDF!}QKn;Gklai(;^#TUS7wyd zg9AMW-h&8U;UA~OT&I3i+$jBgEmbm$Cl`2J%@%uwp($l=? zXXnma55)88Fsc5&dT=j0iM%bp()MvMT3^7k&KD2UsFP#n>A$eyF$3Q3g+t+=G}V&>xjVEx|-WE18-1Ikam3JIuPK0_i>7= zm_Wgfy-J4T8+W~*XHIZ8&u~uV2!B8YU5a~s@y%7%n^$6PzjJ(ar^gzBn;zfULkf5M z&hdAb&CzqMy<>M-Kg1id6pGBs_3O-KU9{L=AGKgJTfTS6n}giAvY{kqLhMwdSF?YQ zdOXHFB~FeJOU2s-ei`Sso;_!u_E9_OR&4X9j~-N}p4<4Mwo$&pFB);zu4vg{I}vI1 zy~Gv)#z3LKFJnJ-NEeSxV)|MQa6fPJjfOjP_sZW%QCzJF|QZda*vIybuIH=2PcS2r={suU~(ESfFtx zv-%JC&P!xd|KeWveA!fSmSj!XXb+yc695ZkWrXK*KT+edW&75Y{)hfeA#-sl0Bkpm zGltkw-!Q-Fi0YY!G5AI?4#XSMm>xn3%qaBU5y&Ffk9)GE$iu+lnKo%=q`9(6EsEdWLe8Q zhbs&MJVH0eY`1O#fzLbG8HEyR>8>yl**OaaYR+%H#g*Q7cuj#CrqffcBPGOFj`4*u z=Ybh}!lroYTW;!ZZF^I1!B|Yk{9&MmHnZInNFtkbFF>?;c-_ibIKhd}UxWg<=dkHEZT~M}Enq@Hwy|!8Zb*JYc_jAAc-?=KJWa=7Rtk7!?suc5a=)F2+ zk(!y=&yzp<@4Z9D*b&%i+qA?kdKpu1-ATb-4ChqGFc(XXEKkD>MxtVMVWOV%<<*H33grbmpUpPc z9f?4fjFpiYcg95Nn|bHA?>~nq=B!miF`Hp-rn`r_!Or$Ws3mjOu z^R>GEQ?lgqHBEBDZXIQr@u82A%>d8miD#$)$kT>}J{;A3Kl;%C*t@J+gX0Lt!C-5ilWb?9RW@%Yx0~kMoSNK~gUR=%+ z6TH^j6H9KBsw^e^?SXGF2{{)(cyQv^EvKvT~q@G}1rW(WU*lbaJXAZviwkCm()PMW#$=sdB8-3O-aC$7FqKm7Eqft?9 zrRmG1%m@@T;|?E_zN<~fLU*1@{ncxnzC6l>(fj9g4CP3onK5#F$UUT5tNiYTn}ww& zY1v6l3o)h?;h#)+Hk%=lL(Wyc!bup&Cn4B=r2G6Mcb6>iyq0iv#;xkCcO2%etMnG1 zZ)KNCAzHvX|FjOhcj3i3BcV0zgiD{oXYg)f4}Fflfq?5J5hrSSrcvT%eL<6by5Ulg=uJ(RPx9O7fu@T#5Z`95d8 zp}M53>ig!|iQhUu6v{tB8ybq{(@|{tlAZJ>#SNc+3yoq-*zw2gaiySYBX>?$?*qE7 zr7y(+f_#!rxBqzjhgD+G;Xbv|u&ofX2G&X2*Tg^o0igE(XNW-Uds7(zjtHY#tzo^? QU%$*OO>Iq{8u?uLFHc9xQ2+n{ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/dialogs_badge.9.png b/TMessagesProj/src/main/res/drawable-xhdpi/dialogs_badge.9.png index 7ce742a7b1a4760a4becd1bb6501b3340c95a989..9632851cc52b315499424ec7a5a15c66c22feafb 100644 GIT binary patch delta 648 zcmV;30(bq?0h0xg7k@Aa1^@s6R|5Hm00077NklY8mtPa34c`a82*Rn!0$L-a#5Wx4S3BaA5LjXIc_XJqR zDWE`5K*1^Co1lO%TYyQBJfik*1dv}s|KcU4?MAJ1AL$Pn@lb+dFt?G5O;Qf0uSsuc z0Lcyk)`p%{$ZjdAZ0a!$-!rX(sSC1c71IXLP8UnC z%-Xfk?Qhso38m28t<}KljquiL(CD2AyVaoEz}P%#@Kuqb%)s4z5zQVy0#$J=gXiG6 iBA)lH*~27?$S>@;P?n0AqzC{2002ovPDHLkU;%8v_G_vY2%`keco3;uunK>+P+LoDBvdEe}KT#LPGJp5_Q^(soTR zXlR(~edLIemeYZEwm;-!>f>j38-DF}3fiCdT59_ZP1PkX4>|Ydx8K?M;7(RL>(Tg= z9nu?aI7=&(*D)K!c@Z(GlH?w8q{0Mg;<>gTe~DWM4f!q7y{ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/dialogs_check.png b/TMessagesProj/src/main/res/drawable-xhdpi/dialogs_check.png index 95eef6c510d534f9eceb5b33577f67cc2945e702..83e79ba58ab7905b5682d27650c5b98ac171b800 100755 GIT binary patch literal 1369 zcmeAS@N?(olHy`uVBq!ia0vp^GC(ZB!3HE>&Y9Z;q$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~;1Ffc1+hD4M^`1)8S=jZArg4F0$^BXQ!4Z zB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT6rXh3di zNuokUZcbjYRfVk**jy_h8zii+qySb@l5ML5aa4qFfP!;=QL2Kep0RGSfuW&-nVFuU ziK&^Hp^k!)fuWJU0T7w#8k$&{npqi{D?ot~(6*wKG^-#NH>h1eo~=?wNlAf~zJ7Um zxn8-kUVc%!zM-Y1CCCgTBVC{h-Qvo;lEez#ykcdT2`;I{$wiq3C7Jno3Lp~`lk!VT zY?Xj6g?J&i0B&qvF*KNf0j6J(SfFpHX8`gNOrftYexnUy@&(kzb(T9Bihb5uTZsl3!k| z30CjxYvq|&T#}fVoa*Ufs{}MbFEca6%F@x)$lS=y(agli$k5Q$#L~sk$kD*b#o5Bt z!ou9b1g6&|Ke;qFHLnDwHwB^B38!9AQpha;+U$~Alv$RV;#QQOs{r=0RVHq?Sl~1d zsy79F(_UqfQ^FI`t{8^8`rtSO5*t+uX`@X9+Zu^j| z%^ljueWW>(WAza`JEaM)iz6h<0+j##sBAxa@V6I1mXkMSFu+-b5F2aRI#Ya z{$k&Z>y4Ei3nIVzsl2(vvxn!*L9JaO@5Q4&+|H{Il{jD&x9Xnctb$eiJXIoMhbFw5 zIeky4-14WT4{VNIv1sFyv6fxK+#S>6`*^NY{32=lNplm}XKC9wm9iz~8!kQ;UZHn; z##F5h;@&F`m0wvV_)UsCtERW^&Ark^oHEl@b6+v;dz9E!9QUwUM=ZGTrR(KN9kmVo z)vLlA^H&sG{9_FZxnbXvpnSKIhzD`Q-mUzH~L+VTcZE@BK*Yh3p4R7?J< z^Ij=_^G=0{PF#C>-FKt!(`Gx^etg&xe)P^yF|Lq$vEsbATSw#{Nb{T!k`J*r-6dxD zv}}68t;{p4q>rh$pSOE_wszanl<3=Q_hc(xHRetW30wBs>+AeuH6K~{QUlkXz8hV~ h`s(;OH^K|udS?83{1OO{B?V$hw delta 442 zcmV;r0Y(1V3ikt$Bn<>-K}|sb0I$e51&ZmBAt!$UiAh93RCwBA`2YVu1Ff*zDl;~8 zF(w8Y0r%DBPC)82kj_LFX9U?w1Iu)Q)L|gz2jag#9JDj^ z5Kn{2Gf~+xPN-#aXi}|Iw-9I<$R{g+*bGgo0~nmsY2m}kK;cjrX(gJxAJh_(@*2T7BqDy6192pp7$}}iu;n$PEksIz$Dr|u3*gObL&Y9Z;q$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~;1Ffc1+hD4M^`1)8S=jZArg4F0$^BXQ!4Z zB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT6rXh3di zNuokUZcbjYRfVk**jy_h8zii+qySb@l5ML5aa4qFfP!;=QL2Kep0RGSfuW&-nVFuU ziK&^Hp^k!)fuWJU0T7w#8k$&{npqi{D?ot~(6*wKG^-#NH>h1eo~=?wNlAf~zJ7Um zxn8-kUVc%!zM-Y1CCCgTBVC{h-Qvo;lEez#ykcdT2`;I{$wiq3C7Jno3Lp~`lk!VT zY?Xj6g?J&i0B&qvF*KNf0j6J(SfFpHX8`gNOrftYexnUy@&(kzb(T9Bihb5uTZsl3!k| z30CjxYvq|&T#}fVoa*Ufs{}MbFEca6%F@Ke+``Gs!py|T$k5Q$#KOYF(!$Bj$;8OO z*xcCF0;bm`Ke;qFHLnDwHwB^B5~p5JQpha;+U$~Alv$RV;#QQOs{r=0RVHq?nBg=J zsy79nMe|+bA#jERk&ljJo{{Ox9{Qt`P!d))ebL%^jDyHZ^tQT0_ zs4X#3#X4c5){Ul`8Li(H(j)k+1C~^BylNKGX=Sc0%Ug3W!9t<=jdN$<T^^YJ zd*;JhtiZ+V_SP-^+Z$5_;e$F6ZDotg_0lkp^28e_j!LX8n0V?z39EYIofAvt$@4+b(PoKNUd;H~} z$NT%#Z^}-4;Mc2QHs5ev{p!STmultWnnbh8H`dP73vZm|s6y{p3gNw%JD%>|axnGUYO}tn kDf)r)Hza&+`6rsdur|`Q`GFVdQ&MBb@0Q&pcbN~PV delta 394 zcmV;50d@YW3djSHBn<>-K}|sb0I$e51&ZmBAt!$UT1iAfRCwBAbX#S{Knd6xdXgmd zEDSUP?yJq&fYf{-2GJ=%hkXQzGcnK(fGmpw;t(KS2Xz2#ECd=}2ek|aoPgMpCKduM z16kCFCVUx)Pf^`Mpk+?bphN~wf!Grmhu^7cAq=D3S zAm)EZ68;6mK|sqcBdcYif@S2AZ)I}5T09v*Tn+8fPoC!_x z$Y2@JvPxVUD6y~th!fDnKtY&@PZPNog7R8Bmb?Z^B)_O_A-=r!k&tFmEhH+hQEDM5 zo>ZX8o~XP=N%a&6#B+f7ArSw-lGn1ZERLtr1e0UgAGWA@6fH~v**Jg6cKGrFZgTCIhGiCT_SCDJc|}1f`}~rQo)}0GHm$`pi!CPjzY^GB7ZG@pN$v zskn7z)?M%5M499AcNLy{>u|hvU2=xiPe$Z!Bxh1flleJq&s~~MC-lPpie9a1_H=aV z*;6FWdDE9Gb$9QK9M-85JZ7=VN5uH5%wr-jV9&o$@zi|5&% zFAfuymlIPx#_Q)@vw+v6xt^`^pLhiOX$3a11KJawc;>4lt-LJN{b=_A4h!~k4DJ)J zFF)ulz;=1U|Jb}jaS3+Df`An#!wa~5995jV)Xca+!#Ys)tjvU5J+(jo7^gle zRbWXwC>XeJ!`sLc?GCXkAL)Kdl@g!I{kzL)-_cbS))mZt9jBgK{BHa6FzIN0^g)>y z0#~_z&ugz)9r>}!fSIrJRXd;Yg!Sgib?h?2-#BC6{qwI8h!OdAnl+@hK)sO9@q0^c zv3>cBl4rcmUdJ-0pI4vd?!Ni>>)>D|(eA0Ya(0*OnHybr&UW2Ot=`2eJxwZXA}iKt zT<={a{Yd%K^6T$z^8eZSDA{R#kL05{{`KFpRqpj4KkEB2j{Eb=thRM~MeH@doYw3r z&(gT(S=it9NLJ+j@`XR*y53(4*t0P#L#pflg$uvck6t$s`G4-_L-&G^Ov^=q6B$y^ zsE7S&ZWFDK*WNB)a+*nAG|ypK=(%v2yzK?0rK$bFA9r}DPhK@^`RnYi&8~S4^Fps0 zExpZD-}vTZk-?AeJHw|~=BsQu2|om127E32hEE*DyrZ`{M0*RbGh`{CIY zKHENRS64eYsdu&S_6uddwf0QrlitqH( zx6kr@-ptu{KwR46aw5modnU@~)->$X+P~(_ZvIQ!)@P5`bI0Cbz8B^=tM;2i)yfM_ zivq4K`E!`d%YMQo*6W;p!n}nXyIAIRo-r%gxo=PHvjU!n;%U?K(he`&BpnlKV;eCw zw`}&*G_SuZb#eQSgxPhTZ&p9_NWF0RQLT-Omrt@)+Wh}S`9W{&9#IFzlJTcgOa`BhJ85fx*+&&t;ucLK6V7z``~F delta 504 zcmZqR-NT{S8Q|y6%O%Cdz`(%k>ERLtq;)`;gAGW^wL~#aRMcQpp6J!5YO0%TU}&OX zZmDNzYG`6%sH0$HU}&swV61OwtZQgwWngJ#Xu9#QA|sEpf`)Hma%NshesRWRO(xkG zBSTA517{Z#Hv@AwLqk_1OJg@jM+;YHQzJJ=CpU8wC54LI0$*P%m;B_?+|;}hPZwJy zpom^dW{MS5uPH9QlNT`=#8{de8yXt8ngbQNV7H*SBq%k_Dg}!LP`wto^iI}ecB(H7 z`CtePkoBG}jv*Dd-rQ8=YjzN5eVE8xwef3A<6e)~TGf4FB3HW?Sa60j#Cyl4wlgeq z6xt;GZ~7ilj!&H@H>FHor(-NwnQ{JB%%d~zw=?Fi)GL4M`>1bzZ~XGpu5X^aQj%-l z`oyn?)ga-3wffy(t**D{{hR+)agQYDfd)n&W;PxPpp3f(e}3h+R27EL{>MESo*h2u z!N8UyXe057PkDzS%ev#WJ1(gi#TxwbSa|yC+t=y`7`7Bjr7%{`-3xR(gQu&X%Q~lo FCIEuLq}~7k diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/floating.png b/TMessagesProj/src/main/res/drawable-xhdpi/floating.png new file mode 100755 index 0000000000000000000000000000000000000000..c087569c8703fe386cb55968eea6a0be0b67286a GIT binary patch literal 5251 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 H<9hc$T1${M literal 0 HcmV?d00001 diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/gallery.png b/TMessagesProj/src/main/res/drawable-xhdpi/gallery.png deleted file mode 100755 index 3d14800a87944e68d6ebb0be16f8fb8d8dd4d20d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 515 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1|+Ti+$;i8Ea{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h0!?6?>gnPbQgQ3e?7dz`97I};rC1{W zXtHeGB5WOb|G?2>ZXY;xSOO=0(!Kn3(^)Ev}*b!a!t2PY%_~JKSyd#;6DOkBZM1F1__S z^5+5c^`I+2#U?AJU7L+P?Mn w{2%(mX%52sH_ld0`CqvJ8W=Ys>sTZhI6pa?*Z$n`6&Q;Qp00i_>zopr0NhOE$^ZZW diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/group_aqua.png b/TMessagesProj/src/main/res/drawable-xhdpi/group_aqua.png deleted file mode 100755 index 1d1a8222de392a43c250f45195645303ffb193e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2100 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 diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/group_orange.png b/TMessagesProj/src/main/res/drawable-xhdpi/group_orange.png deleted file mode 100755 index 22af590cebb68304e32a71fc17b063a236738da1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2263 zcma)-hd&hj1INFvv(Ax>?1$51?@?AbGo!4tw{kcQ67KAK@D$D}9VL5YJt5hp&W?!3 z$vP{JWMt2De*OM~=kt1fKJVA(^ACIytt_sw!uVkT09I2ILz~~k|KCiI-+A5jAm=xr zzIr$G0I2z>MxXTkcjpT>atuZV_yl9Ug3v(EJK!c-#PqJ0FWLs}gZmNy!g&+o2y?4qMH>~sbROOC7R(vs-~2nff= zpaASpi@LLB99L6-g7r|vRY&yF$YJD+?;2Ui=0lWB+)Yc#Ng$#Cty|-%IQMQhBdTb^U37eG@W#=j<#dx>;dLE_%yeaQ$^#xG@v7;CjwZGu9^) z*KS&+FrL-7Plq^a^1Lut^=3nw5|#o+1|!CIeXECQ?cQ@iuD+g7ouUw4yYV7tu}kVF zcHNZ>X~S6`XPw68sZHpy_#n>(+{)ilOrX+9*Sba>vAopg;B>OY%vFn0-? zgoXz0<3&C{kDHQ4fbX`3bfJaU)(b|YR7u6y!xsvXYan6G zMNnReV?R^_jEjQ^Ld|Vuuhj`?-~xle$(_!`bMNRD7&pz5MDGwRv^seMu5^9X(Zx~d zLGz%p_I+(_y3ECVw~}+6T^gncQP`qe@kwTfTX7eNpGh&$M>;8r5j78rbRQh6_ONbg z#T9Q|cokP$*YD3QV9n05!GGfk!mMFVSa#NA)tQ7mCTGQVb1(SbIEP0ceNji&?$f62 zzEe{#nza-2QTEIkXLmo-6W$-q*I4a*R-osJ5pl09=Z}1-8^fCUSWf~@D3}p#c_%lM z7;KHaqwSMb(YoCWU#@Q4oFl$rwS^(cQ={}7Wh*?61G)Q?#{onnNTvfXM22o+B>=B>AmR zInfP1T;Ef*?keqjv55v<+O*8pFSshHHpoE9*c7KynQbZ=YyPC|6y>{*sJd%L4G{17 zhMRH#4HN+mHKsxHuANvF&SG|(8i_tt5-+L{!W&jdw=kPo z!>x9o)Mdu29qym=!!VK#up5y1x>8beWYJ`FkG5 zpr$?4eG*#hkOg;p)7Gj5!v*Oopb&|TW3MnDUQ2w7_j|AVHj*sGh7ocf+Mj#k{t(e1 zJUoGZOR)!rUoN*OjC9~1Lm%T7$y0P)NsecfNPY0bp;cmwnrA@NPh0GTG8TdV zj=b=S{gAlHWj2}26$+Odji0hod=TPNsJ?4*mi`ifdalY{FhjeiAIRN;75u(` ze!dWb|GW^d+|ArR>o+94NEqkP^r8n)>fux@XQK;hS*Xc_0T#CEu&tkYfQ0eWl;J7jAPCuRsiFywy6?0IX`cM{u5Q`bt|tWo8~5!@oVK zFHSbl#XGtu1|=&>+TvYq5u>d!4yiJBY6-or7_$7cJB=tZT0WZ*_DzRUZ6;x`s_fXV zW%;8*vkkh*`To@WR$!?-HZhI840oF-7C*tFS5oMG65vp8EDOW>;95IsSNT(m;zmz8 zD$jp6%7XSM(UnhavuA%2V0V>DtT8MjJ`uC4in^SIVd9kV(yBU7c4<*RFh67`g6Txe zWwMI$eKx+L9!0ljp9J1oqve(qpVFyoikB~o%Pq8q2N)eI#>iCdJeK!%-)6Y52?O<3 zJ415PD0m?)r%+3&R3`YEZgj!?yZYFy;G`u_TB~zZ`%Tz#O*c=m-^K3+lu9;CDLH!) zhk8IewG(dtwV0ihOd@*+_)f!4hvg1bd6fZ(m*_^ z{%;;@!B1mVUkMUH5%4mAELTzG|5=q6`H~XEO&rVNz(1xR#GDze_q(NHU>n-N#5AdMyY!hy zH}|$@D&4sWF`SUE=P1%RYJj&W{mYeNhcyWYS=ZWiMJ*A;>CW;`W^zBv^!9FM?|k@= z35_EpjPGthk5SoTc;m;fxpOL#4Ad1rhrRGcU8y!gwo+yn@`xoL`^(D{F-JelL~6#Y z_C@&eyz6s1@L{X{{!e7A(j9D diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/group_pink.png b/TMessagesProj/src/main/res/drawable-xhdpi/group_pink.png deleted file mode 100755 index 181874de943bb066a34e8454d99aee732008d4f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2233 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 IW#$q6AMwL6$^ZZW diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/group_violet.png b/TMessagesProj/src/main/res/drawable-xhdpi/group_violet.png deleted file mode 100755 index 0699ff6a03d198d5871c7f2e1d6e7a8faa0eeee6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2327 zcma)-c{~&TAICp)%*c@Yh^^#ETCNm1HW4dgZmlxstdd-Fe97F+{h)p&&C%f+qLNjH z$bB>vIWvWdnq##eHGY17|Ni;CACLF@`FOwnem!0@p?{bRwxIxkB&0jJ(ZhoXjk^Zy39pyqCT)#V-jbdt@$+dl!Gg$PlGp0SFQp z2~hw`3J9Q20T_V)UxM>S^v}v_N!oVV=G|8(i&^ucZsT%Cv=g=@|24rO+m=s+G{p{{ zjxxXit}abp@6gvfLI2not^#4aeyCe(W@r5nLM&OwQXfG* zDh$m~FLVN~7;K|X3oR%j`$xvelT|!RBbapN*#=to#PyH4VBhT7^_q}!R|j$e9o^Q{ zKpR?s!w$mc%H0_VVXq3sj-|zp(!fu~f@1nedD;DKk4FEINp;hGuKbd+X9Y*)QN`8n*zg1+&cG4XxWXl9NyweYd z-@XtjpEy1hzXrPe%J`k#{_qdWzhve8oTj`JcG!gJpa?qA$Rm57;9b~7lazB}LrEy? zS~0smVH5LLbAGYlvHzK5x}Ri*ZHPy<&|3=I>8n(9KcyU+*50?}-bV_;9g87pv^3oQ z{W=Fb1Q8b!ELFxeUs*mhKacYLH{yr?1$UbqNLIHDJGqUS$dSL}i=QHSk>y;Gfi<;S zK8kCZ5CU`dCQh%Jnmv7FEIGEOP9upsmQyb7oM2(DF$$HoB%eHmn@wL^3T#TL-ZE|) z#Y`TK(#u-k1Jx20SdM@`01TXE?ia|*>s2NmUYhg*(Y@F!x-N>8#7tRa;rq&!kBq*+ zz*Eh@vmKyGXC#o1^@H)c<_`FRGI7R?CJE}@=~_aRV3}$}33i&YF~~azkcBdh_}WvZ0tb)gws&&k@=P@49V;c( zG;M_0wkIc;GqErIO;O0xX4O$o!Uu9JLBpjvS%IwPxHrh2g-w6BP^Lys$=jn_s_NQ& zxuyOG4~J6(1$#TxC_Lk<;`_xgf(pmpX6xq`3Nqj>W&TOmrUokNVbDT9P=H@Wsd{P6 z>7{lGwxPL6;?X5FaMj=H1QziqhCgek3yLB%`<~wQ;4ruIOekYEj=EsJs*Oy4ciuuY zw!#l6C@>pX3U<`vOXz1_S64!nmasbaHmZA~s#LO36C!R7fwcBWT6avoQvL|_P~RV< zy1(H_S^d+E6DrvaGZ*-y1tt~gK6xOhF*ZBa14jAmo4Jyl_Qucq5BI|)EF2I-o)rCE zhV-w@lpIa7nnXV=tJ)!EqDzPnPQ>u7B!j2! z`*j|d44&1Y-PkJ!#OW$h{5{HGvQ{lUxU*E`9CQD0v~d~;GLb-sRU*plBDQ`C2m>T* zCBGoH_SCYwmR9f>RuZGWBzV;XeBO!;JbbOJr43OIh{y604TQ|3(XW=RaA=t zSIy#P;u`U-K_exs)P}}C4~*IM$nXy=zc+J(Y~dM|c0ww7dn4+xV`O}ENYnQCsEa|} zdoeDP361c~aEuI_t{Wajki8CZ`QHm2TKuwnp}$u?g`eMGu9}Jbfsp_T=W6*NZp^|}LZL+KkTDMnEL{*P! zG@|qsRev~$K++h(CzU@y$VH~;F>Y8W^ae)SA^J56qI31?Q|=G)sVA=^913`sKFsL$ zZS9NqMj_TRElxPE{qrVXPd39=;dcIlT_(n;bV^!e)^Rt$@wo;>xn)8t_C?ofK!}xl z@fniT6VJbBXhZMQ=T0|=ma;B)nwlRAc`6I(h>ASY>zja*681`yfTT8zjtoRO5UE}7 zt(`Nw-G;(AcG8B1rWcR`x1V~|PI?5FQEGfhCS5-n%0XCE$Roq8VYaY1EDV%Bb7`eJ zT@p3BGfBw@_qwwBdC$ESiM#a|H>-VTaD*De&q|fN6(4AP%bw(o zOV|l3b#D&mwfjziSMWp`l=gm%+B^DhBJXOQywIrd=-(v~G0Hkz35Tc|3DWEKX i20{NT%oV-Z5mE$Jj)7g79JM^KJ6M}@)^%2dr2hahQ7eD| diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/group_yellow.png b/TMessagesProj/src/main/res/drawable-xhdpi/group_yellow.png deleted file mode 100755 index 9226fe2351a67b317b417c0dcae753421c7bf5e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2222 zcma)7`9Bo;0{zaIF_!eWvL!{brL385mds>-wjoPJVHhLJ*tcvm5;c~wWb0ZcWx2Lt z6c3RyN*R>BkzJN68Fa^<>;3$GdFS&v=X}oj1I~Gbu`&_hJIMzC5HK?}v^{d-f5`(q zQVVBJ!I8o6XiGEzwC>Ar^72uZ2r;@5a^2rEB-||s2hbk=Se&$(pBo-$i*xgc4E%u8 z1%L--W{9?nV0|zA;%|pL(Xsd=d?buzHJ;yh?1Zmcg)~`_EJ6|=V2H)6Pi^|E&3qQK zNPh?;@u-yMKqqvZ@NIuAHd5_ati2k)D+-&Ro-hAwT?}t;i0QFEIa-cY+%Pl}kp?hg zJP-tYP!v$)0TAl{RiISJ-es6&)#N_=iF+*-rF@lo)F=6lajW4~q`{xsBCi`3w8XIW z08+O%*&Z0Y^tfcawfAb3zUSXQf2wa^VN1DAkDQ5Gu@(e{Uwq24^=Wb@vb*vI*16Mj zTO)-Z4VsW#7HZsrUQ_fQ#}e<0`9X zyw^#iQp6G`jU=DH+c?0^U^YNxuC8X$kd{!Ih&G}GAMB>W{KbFucsj|kS){?^(9yM# z147rD9R~vb^t)%IxnmeE#iw`ib~G*)-=y0zx_OJA5R*1j`5D3mTA(<1d(Qy>d&KJg zPMe1)(ZxDm)T_PPMe%Es)YPn^M;>F@#Z_vJh1B+Gip8AJS3_8QoSqT$pU`4!n<<9fc>$JVYt^PujDnRY z{20Y`v+duz{`21*_#X4l*k1k)%kt14fEd?+RTQbOot*CL}L z$UP0!myf7|Tm)oVu~sayNnycVqAG?*>w0iBXr;elJ-fBmannls)@ShMkfuB05NzPwN+yj8+)D-$NDi{$tUXomg( z)9POnnGHjCd`NW?Ze@3KggFcGBRgCVy9)j~v%!qJ7+|VBFvH1OS4s_*D9+nH@2#Ka zrAKZ1OKY(d1dN={Ja}3Wvr1ME$kYMplN-0!!+lWOa-3MQytj3I2^oMEFUz=5r)C90 zjQIXmgCt_wIQ!wa{0B*$^q?zMuj8#vt)itwqK1Y_bPi=t5J`j26{nohVZYVeKN~nS zDBeWM_#a3-r(9xDKKqqVv)Hb#&99U#C5)%;r-mRZT&~p(!D* z1%=IPTuq%p1oC7K}m(b8_@&ZGE}BF*y-!*KuCA3(NKEwA*0) zgHA1->Q4Av?M}zfx>`M=*Tf&3_thRI#3cH>dmDgDq^mPqk~){9Urybcb)tpk4XZqU zq~Q*#kt!Pm`n900bFcXda!eeP=rF3>rY}*(MW(iUewU)U~9Ab z7OuWED@Y66Ej<72H@GIaMRyg`cdw$cxwB@=`3?)m7)gyc{V>;;FW6rWE=OP2tv*^N z1|^2KD7Bd5w$HeXqO(fO2-wQ}`s6Ia@apt<>n4$NpI?O=ks22?HWjG|dK&W1-KkuYRnW;RLs?`tmiHq#T zt6oN?d{xQ_RDLx?-xxpb@_=&+SXkGE=-uXXfrPPX4-w(tNAUYr_U36`%k;BzzM4!U z9-HaY;cGV(d;geP`ohcJK=e=k>miDlcVt>?p>d+2blZHYB#pu3Xd)k|t^(8WY;KcH=+f2QBH!M=vc6PQZu&BM6`< jG~fa7|1C}tcASV15Q}$U4O)i@f+Lt2SsB(|bB+H8(7Ft_ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_back.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_back.png index 9b612b73737e81701649bb393e520b333ce41de5..addbfc886115c892c3e634d5589866d29f35210b 100755 GIT binary patch literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}a}tg=CK)Uj~LMH3o);76yi2K%s^g z3=E|}g|8AA7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^+;1OBOz`!jG!i)^F=12eq zPk6dGhD02Gd)=0+*+HP~q5p}ydnQg$3(R4%j5tx~RCQg6QSi##{5pk}$PKmgo$g4^ zZn|+iTv_IUs^X@em>9by`luS6`%@DkgPvW!b zfjRbUGN0TVyzAr(PQ7Q$`+5>pwyY_k-Ol$zHn(Snn10uVwSBVhCZ2xJn*8KfoWT=$KPJwC abT&1XX2zgueSe^z7(8A5T-G@yGywn>UsrLj4a0xV*p&wV5AHJRMmx zJ_8zo*bGf<77(u?CLK5d@h+$_f~FakR9_QHrXU0O zfLI1i{45afBPN%D4EO}ZPte4Tq0vcnc|cJZz!FLknw$hQS{aBjfB_m^o6zLFq0vip zkw$S!1ZCGaSYC$$P)W2D8r=j9V1Pzn2bvftkSCB*DuZ(3F)Ud+6g^ARtV9BV`_K{y zJ&>0omlcFc<&{9Z7){Iuh^tAdnLzcz8MLDPFSKMnLYJC}0h)+v(8T0`cqSvowKJs# b00bBS_%w1h^;HOJ00000NkvXXu0mjf9=f$| diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_back_white.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_back_white.png deleted file mode 100644 index 559f8f40b0909c5286ef99e08462bd38917d0daf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1291 zcmeAS@N?(olHy`uVBq!ia0vp^0zj<5!3HFyJAa%3Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?@QuLn2Bde0{8v^Kf6`()~Xj@TAnpKdC8`Lf!&sHg;q@=(~U%$M( zT(8_%FTW^V-_X+15@d#vkuFe$ZgFK^Nn(X=Ua>OF1ees}+T7#d8#0MoBXEYLU9GXQxBrqI_HztY@Xxa#7Ppj3o=u^L<)Qdy9y zACy|0Us{w5jJPyqkW~d%&PAz-CHX}m`T04pPz=b(FUc>?$S+WE4mMNJ@J&q4%mWE% zf_3=%T6yLbmn7yTr+T{BDgn*V%gju%GIBI>GcmIS2C}J%p`oj>qoakHlclATrLmE@ zlarG%Os`9Ra%paAUI|QZ3PP_jPQ9SSkXrz>*(J3ovn(~mttdZN0qkk3Ox$iUz-b;- zZwhX=7~<5c4|I$^C~A?S8YToxKOiPN;Q~4Eq@S7xOz%a&gv~hnqXz>6W38u)V@SoV zB~#989|;sWdfy``;)I*nrl4gyQ(9YF=e7o^M4ohu&@d_c$71iaWXjT%#Z#oLxlaWN zP76New9!cHvPt~&SF5hS{JGEi*_Gv)=W5@dt1iE{cczMGjP5G)b+6gkpFBMnH8*kd znn=a>+;9G{B}*~ieInav?%gD2;D3+X;#>dpWtJDb?wM&s3Y9c+e#$#2D*i(M>5F)+ z=C1**&QdJQPv$l->7QYd3u@MT_hnDH0bkcNVV_HB7xOZTH5{d9sJ@qrS+dtCo_oQ` z-+JF~UpSx9q$9C($DdEmZ|43N5!MMlwCLX5NTDwcc3rVqUwt{}9gscRwsplamY^lR z0Uwis&bVeXT~xMM{)6MiRyBdQmzyU(TDR;g54+s~#mY!q&wzz-6ZmY_E)_o&b>W7v zf9~__0_S^E_$1S1HKMDe{%7sX5)vuV`!Pw;SVVi#`m_SK=C7gYsV9x5+8>mwlufv0 zb#3mxbLpSb9Cn*Jsv3ky9h|h3ZQZQ2U(@%oN-+G?^4GqsuzNPBc=B}hb6Mw<&;$VG CjmRwk diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_compose.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_compose.png deleted file mode 100755 index 5fdb45dc84fd2805c6c28756e983e6037e39f5ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 402 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Ea{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+AuIMs(89MhE&{obL%YcAq9~GACvY} zmotbr%-l8kT!>f!!+XDm8CyCHGf$^;Km9NC=%DlOI=hM~T0Mrbrwd<6@dIsvfQGck zHs6na{<`mW|GsNS@~(GxtZkU58IZqX8sik*`ny^U;h)@@KluIgU~oLCzs>P__sz1I z+M1ciCm8=+z}2yHM*538C)pWq#K+{ZY$%g`+Ob6<>0Q7TwWwd2Dod)Ac=q7Ci` zzt4Sh&*hE1>-Rd7d3>%jnMxQLW<@YBiof<}J--iQS<_VC$Xg1*U?UbRn5!TPGwkXy b_Xb9WV_}|AmkOKSfkZuB{an^LB{Ts5eiD~J diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_logo.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_logo.png deleted file mode 100755 index ee88fc62875d5ef1bd7d292dbe513c4513736432..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1629 zcmV-j2BP_iP)_e=UF_;Xjd5RJmRmH*~x5U)-n53-dwz*ax<7KnD;T~ zhxwZv!(Y+~@*T61x!=hGpf!t`B>^g7RZQ?%W*2iCb2IaljKW`8D$k=B*SxAi!>99uh&-76B00jxdYJ zIhZ3vC{ZoI%gpa>?(UHU;jPS%A{i2q2!O8kHaQ=diFO-2hGhYEh+q>d!0@aIM+8@x zEx&?d4|&W_Lk)*e0=yVwEpNmU5fe-aP#7a)J`~V;xOMtCH zgz*Bm2;}Z?1SoQt$&rO@VV{Ev0EOP8@rzfOQ-cXmA{H&iD-wm94Jd%y_@R>!9~Vb? zbJJ-}$%C}KC{KHB5+(Zhre6?wB+8jxKxCy)qx^X@Y2h6+Xkx;Z;@x!e9POfxZd0pe z31V?&txyxPP&P*zpf4la-5rb#WQul8st$Kr3nInDy(DDUQ9h?)dqJ=pb zTBS2mZw~t11I?W@eEx!!%S{zVui7ubqtP%uF4qLg$(m00aBJtxN)3Bl*Bv}2%OQ>m zP-thx(^DpEEuEh`Q)~H1aPrT;>DcjJ8Mjg3j{yh@i&R(ox=D$2Z{94riv!w}o31ro zPJL55UA*|Oj9bF6&xjWuIYC9G5w#c0PSaXDd&VtN%G@WX`}?sdURXq_z<5TbbF*(F z_Z9LUJ#_W-Q%~O?QtdJBE<;91sne2u&?4eTwgR+ZFc9|6be%wwd=>D4ja)}Hn zV(h6oY+L2w`r!T)AkOr&!HTK|DlPj~GbXCh)N-8844qSxWitOV`(p$p+}!>7v+3an z7U;4yxu|dQs?v4@Jz&sk_uNzKp{LfB(cb!ISuX9e%+J&Miz)#IAwa*Z8{JY_OV7Vm zuJsCet=}$PR2}*ufYkm4r?&osDtc|hXPR@fEWn|5mEpw;0hEN-){Y)pv%Z2h?X0GO z)Bl(%qpyE}yj{Pm6rc?Pw5Ys7&Hkgb>h!i(S%ibpj{YC} zd%RwNUF6$}svOmgN5(Ws5J*wxH)>j$@B3fq1%M)N+93eOc==cL0Y8)Q&?6MK=U!La}V5z`)qg(6_l=b=DeXDk75 z7-1>%2Qs;6>Y$`&L{vUtYzwv~h%-CO?Qn>Su^Kb)SRaO36op@YDTXT#bGISb7s6Q; zE){cUtO2e5bf_lb5esa+Xl5QDQ)RNmAIiq&(2=mlBA zIriFIab&L3twf&QP%Y}00000NkvXXu0mjf@~#98 diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_other.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_other.png index 02bc89b63ad6e33ee06d004b71fcf2a67a3031c5..1b04eda04ac26a1ef4748b50971e9ce2a7e6cbf5 100755 GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}a}tg=CK)Uj~LMH3o);76yi2K%s^g z3=E|}g|8AA7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^+;1OBOz`!jG!i)^F=12eq zTRmMILn02ponpw3e=mU3>1=b9@{%=^O5ariISQh`ZfrR?hxs_miKSeSdnFZM>z< zz59>q{f@@!IrskAElpYJq&KPiiPBCFhMgWj))Fp8FZP&!(u-Yx-6=N#I*7s3)z4*} HQ$iB}uzOqu literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Ea{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i>xc)B=-RNQ)VV+0d`|0J^Z_eg~i8B1K zyc&1~=*k6rs}G04L>KVQ1~FG0ezidqCbr_R8jK01tJAm)7z#E^l(%wk0eXUg!PC{x JWt~$(69AC7NlpL& diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_other_white.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_other_white.png deleted file mode 100644 index 4031d6ef1a32b125d5e41eea382210f8fffbd382..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1068 zcmaJ=+iTNM7>~$w4kpSFbWewLqQaUqy`(0zc5TzS&ZU&DvVzwvIa|Y)oGdw8)8WI| zgBK7P_$26F2O?v_-UNNnm;C`=&>`x45ii4+J$uqMoe$PSaxUNb{eItf&i9==#lrdS zuHG(+qPp`#Qi+TM-rsqE^pEwKk7PK3a}_*_CU8x$A(ht9I0Sh^nS>>%X!V&5n4qZr zeR{cqEAoh_B7;#p4C5LWVN+BhFyB>t0ikX&1)hT z#=45da!klOk`I*S|3eLg{8RwAE{J zwf3<@+j3bF4C|%#uT=XcQa|3bRk&o)Dt%~@dbdeoe_4C5MIOa+UP_nU_dh;7J+u%y z(oqZ)0y~HM-o2VxKe{=5`PAxCrr+LXLE`!6drRfvZ}iIc;=#siA|05%nM%z)9DBX_ z=uH w(i<#5rh{x)`&yWggRB`s6HxGnadZPC!!v#Ua<;`^mw;4xy85}Sb4q9e0O+?qEC2ui diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_search.png b/TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_search.png old mode 100644 new mode 100755 index 0c4f8fbd47ebbb108144998e5036877d6416c637..043759acd44bd8a77d1032b2cd28674552b16563 GIT binary patch literal 591 zcmV-V0004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00GBIL_t(o!|j*LY63A7hTW))mxW!s@v^PrLPP|`=TP(| zT6)p8I=+G%rLQ4Msg9zpbYBD?Kz#;B@b98&jC7ndv00RQW;Nvh^JOw5=NtzdY9Gf5 z@ZSLmG%&;pCQPhgKu7%d0C~K?DkjJs5Afg-cF~4*4B!lJ;KdXHS%8O`ev1wY2*C*# z!YHDb(a|KKd17Q9y$3ebUyJ zrr!_~12l-O!(CaADC=T?A+Z&>fD%#m#Q-Z}3vmGvqFjgpOk#6#0dAsP%K=5CiDM*5v}8h_WUIh|>d2DqE;)T%Eei d6W~t*J^)IQO7UD07i<6k002ovPDHLkV1mcw=^g+8 literal 1094 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 diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/user_aqua.png b/TMessagesProj/src/main/res/drawable-xhdpi/user_aqua.png deleted file mode 100755 index 0aed5664c97d1857ef5d41ea27279cd5995866bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1832 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 diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/user_red.png b/TMessagesProj/src/main/res/drawable-xhdpi/user_red.png deleted file mode 100755 index ae888768ec2dfce9c7a9156636d4a3c3a864e194..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2034 zcmVzyWYU5%Ix{6iJp01Fldw927#Lrk(%1-Dq@N2maBj+nr{^tyEg| z8V4{)kxf(0jw-2iAQ=4rZ>6YlC+bNzlPmUW$hk%CzxJRKV2+^mL+F1T>|0@&< zCz5a(g=wc)tbP0dBshS(KbfkT^9zz5y{GlS)vDF1TbuU&UZC6MLHJf88L{N*H}};3 zXO@~~&dw!PUWF8e1Grg0P1e#f_@4pCl2~kL^|dlQ!U5di_pOCx$ay^ZYSdi8v_JcPP}-DqWyD$crfr#|8M{VgYo%ANcJ(KP9&n{#ux>l4rgUE zj_!i>d>+>b1gzn&utz>|V$Z-qN3*p>Yibm-G z0PTx1+WAinP`tL_CY+i}Gh$2!~k$&~IrM8GtCU1fbic zwlo+FF_wmQ+ih9^gb-T*I;|El3t$bvSt}J6JOB@PN zj0m7i2|%4W0Fa5&`F;p7E5lfs3I=0SGjhxfMIuDzA(Y{4^XL$zIzh02uw|*)oYy_* zcNhP&jS{=t*QKh0-dC06+*w0whI{Bqjim6_oxs4&YKf?7D0Kz?*u! z;khstN)Z5bh^@$9vH*t-0C*EG*Hr`UHp+wq0sv}@0slM|&LSNG0Jl^m2*9mWSOL&( zHe1yyIRHqLgE(nueSeo4fab|3h5*=mdtFM&s9UXIP0gZp#?^PW=>R}{7_>^by19W; zdG?7(jfTCq%NzjEer4kwh2DtD`d^6tP{cKS7?0}x`CBa* zdhq`C;X&rR@BN&Ng!>-<{8OjdKr6oNlmqymPw>;@Ib`Oer~q)vCEq@sbV{WznUB<{0052n76zKfM|6sCLTkc} zW1ptO8b=&JKY^mmhl&)kPg48a69NEwDX;zM^!kGdjq6QK(5hBTZ+@rtzT^Nv7%2Ywix+8Pd3~)*uO*3MXI#s!yMsuJ)Gm;!iz5Z6s=IHEQiaZ=7BNks+3i-HktsqIU=~*p1T3UPK z6pKt-062YX>3Ila+h9@G6DzOG**TO?Q%P6=WIHetaibzULu4pb+1#jaf5e)nLjV9y zKRQv+a-$SnFvMhIatfkCW&K^_@Zj+SfG`Llm&i69pS7T-i^eow=so*ERQy)n5-FoJeZ9F|1FEsJN!WG*l1u-R-a52KCMWpmy&?r;!}BTplY{ zLpco>Buh|ELy)*@MJ?V*^Y<;0k1Vv6*L(yh7$$+upkUUdXos03k>l%j@}Z zuKJtD=#z06ruN}Mb#vo3tr#~0051=P37yktAA(~Fo~KOp-JR6Jh9RL6T diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/user_violet.png b/TMessagesProj/src/main/res/drawable-xhdpi/user_violet.png deleted file mode 100755 index 3865d9edf4b52239640b2f729f50c8373d9d9183..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2021 zcmVj4P@V6{CW#%a_0J^#*-!2tRbY1Ngb!?sq$V4q%kB5^8ZG zo^f3 zwp&N_4hQgHX}Y{rO&g~2Nb9L4)Q;QV*=`=}yFtK%@ck6GlovneA36Hh(hYfjG5vf! z7mG<8z}+#`S1?nlSZJS^%^7Fi!RAJTbpYUMz$ZY;82(3>rxT4v z56T60V}PPW*Vc0=qkpOS1$*S7{>cDBn{D&ZvadhSY#4T0RsARy9gE0rdwzUWuB~vj0&kNxIFie>a0Ehu5-u>VJ zpyPioWsYdo@5um=l_)6yy1|$QND{3@K*VKgzA1lEk*QIJ00;s(0EiZe@WDY4p|&+B zMp*(7Id5DT(gMI*9pDdW0fIo-gy;FBMj;pmYymhU*0AQY2B6!a1z_m2 z2B1r;e|8vf3qaLne>Gb%!1oCiW1cr)3jnC&_9+1vG6$g9>`?;XGY6pE^5_6K>$2y9 zT9hn+MF8iIbdf2?I(TU@!cLGNL@IN(l~7e0k4pr@AfGpn>YXlz9UxdhG8HQnO~atl z7;*k2S|te=D=sJ*VjKGXmCooWt&#`;6k;tApWU$(WdZy0esc~W19$PQ=TXQ zpA7)icI2;xvL=cEfZBfKr)d$O?9(9tptc$C>8@~!VFUoA)L{e%Sf- zw^Eo7>%x@(>(BjO&xf2CcLYeRh6X{T6K)~eYJ07whd%ldI?K@^muAfdm1>*{fRG#I z8mAn%IBsnA-Ox2Vgi1Uj1DkN1FKI-3h5(Aff;w7mp5%JS83Uhv=siKN$d^m^$KR z+E&}6*^x&PfEibmQ6FK|af!ZKi6Ve;yyT+a_c?%jNl~Ktf;sxw?gt#ey)-?OL_boV zT>u$JAJa>Az^V|B#d;b55=nJoDLtk?t{ZZ7#S!S)mPlvruRPC=)%he-v88H;+L^KV zcLScGGM8Ff&V=Cl(;4mMFU3O9q;qyDa$8E=QmV_265_$Nk}S^7+l7hv+t|)EB+gV)g<^c;{b~KM^Wy`68CRK2sl?uDs%a8r0Vr?14R0V|&?~dabViR*)#Y1n zr=}A-+pYatJDkq#FaSWrn=D&S))1b;62tjKnM;9_1XI}CZM$QBcuyMZH_7I7$I%VE zH?%w^P(ir>SF_pMuetSu&X{_+Mi0PBsJ5+vuh$JZ^7Lg{DqIk^j_O^oiIF!ijSK)3 z`WZ)uOO}7Y13;ikcd|NMp67!>z%{DoBI)sd2J93PYO<#QjaKkAOJxhLbJw)z9v--l zjMd){z)owB%VRxSM8q}C%%-4vsO`4D`|CG+J&t{U4x$b^!-Ty?GdjSwcVX_o2l@omE@1CPm78E_; zm$o(=_i4qr8vuCu%A8H@?T?fN_2y;DRNHHBZZy9AD4_Ih2RBnm<%=dC)9+KhU}kg1 z$L-e6cJpg>+*bj>lwW?H)=hWW+x(()}k z(zgJJTgvKMR+9ONmLpci(bv{{~=W>TbG{Z3IKSea@peJ5@udh zxM%{u0x&h55P0AXxlAj50-)(~F3-zdglKG8s(3a1`RvD#oz_IiOr5OG#{xxA^NQJ= z!3P3MW?T{Z^vBGFBvFji`zXA*Zn8$TR`OC^600000NkvXXu0mjf DhcLU; diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/user_yellow.png b/TMessagesProj/src/main/res/drawable-xhdpi/user_yellow.png deleted file mode 100755 index ffb540a14a7ad9bc6b375061c2fb2dba1c7f1edb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1974 zcmV;n2TAyeP)H~}Pf{eoS@oQS{;s^f#w^OyZ zAG)n|X#wvao%ED3y~K>{39Uyhjd{I>z5T$cKLzuUL3p&+GV|8#cPG^TA(m-la?z?R zD_TMV7{T#q3A6kagx!EY)hbxC-}B6Q3E&vNZgmIj$B6o7u?0x=U13_#4a ziMb#ym<7098ToMmbZDu;_rwC=_1d)b@4JFofK9A@6E7*ivVfL!LAU@KwDgac6kxfa zHmOp;cXq`B(EnyiM&LPn!U1qQRZ12h9sqA|n-BoIEg*m`LM{j|Eye@TYth+1AT?f$(GxXU zMroBq0HAOyMpKv}1OT$4VD!gH0EdHdPYeKfQ;)~Imn#MUax3z00d&Ox;OzUQD! zNMHaUd725(;3OaFJ$banewyzDf>2`;|xl8c$<*ogl;f zPYr8o7OgYRu05dxz`=VNv`X0Cx{p%$3>gjfu3cXd4ghH1uKrD-DC=$hiCCOt9@b&k z9^3U*o-FaqEY`+Vr@rDe*ASI}eO!(2!uLDP=ZTMgjC8ZE?{(IGf`k|zTm=xB4fP}L zmGky?yuEF7?b87ei?}p%JDWs4TvPzN62KsUD5qi|0!RP@06JTdZJl>fS#Y00U#v z_PPe^I6CNP`IgO=Ryc9 zjs!50=wsK=kCYb|08hU?A7yu~rLFq8wL%NF@+alEdox7=u@9a5^RfrHlH5c)d`x&rPo<2|QVx+J@a8t`) zhNthE>ML$@?S!%V!vUy?X)U)v>Q21qU6WtD;WnS!^(Xty#gPDj+8xRkEi+Fom&c0L zP)@@G$&$VE$Z0%#-_94MdH2rfst3~p?bBS@pdh~6b83(6+N05r;^iZPhD08;FI9j1 z7%g1U3YQ)5OV#_Mv|=2uQ1J3ln9#X>_H=~m{glb6uk@<-j@}B$k9KhS_;sG0mm2-R z0GpYE`rqDuXm3AwR~^USJu#9rO1I^}Ke<-|r_^8n+5BT@<2QR(HEUMBmD&$5HW-tO z#;_IXAprWzgfm~GFBP3ZkCd7*&wVqn0yqeuzg8D=cY?^m^t4r3KFoj()Y)cPj{T6` zk(TJUfE>)s9|oWpQ(p)&rGqOFVzvCmK>!e})%b+ePBhZ5YWF=2J8(XhUbrIl5@lY* zGxKi&=wnw2_D!B~Bgh^AV0tQ~o@6OUM`LCc`T#T-{-iW06^hjlAenU(*OVf07*qo IM6N<$f+xP8zW@LL diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/broadcast_aqua.png b/TMessagesProj/src/main/res/drawable-xxhdpi/broadcast_aqua.png deleted file mode 100755 index 6d3d49d998c2593d2740b4bdf9535f85d3a184f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4361 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 diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/broadcast_red.png b/TMessagesProj/src/main/res/drawable-xxhdpi/broadcast_red.png deleted file mode 100755 index 37404ef8984948dc0dfb26a3ce059014a2bf69eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4822 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 diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/broadcast_yellow.png b/TMessagesProj/src/main/res/drawable-xxhdpi/broadcast_yellow.png deleted file mode 100755 index df5340e4b966f2531b5b40abbf6241d2241d4ab3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4513 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 diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/dialogs_badge.9.png b/TMessagesProj/src/main/res/drawable-xxhdpi/dialogs_badge.9.png index 01ce6f083c9ed11f5c7ddaa85e06d7334bfba9bd..5de08904fae05610ffb85dd888cbc38883faf85b 100644 GIT binary patch delta 952 zcmV;p14sOo0>KB67k@_x1^@s6Rj^tg000AsNkl#(H0nCD_!|F5RUE8i3VC0+D;(BP&JhTN~*T1%$HN$n*|UX;$bV#=l|f6gE_{+Twh5|( z4nT(evu^$!kDKSQGPc9^G5@oo{ghPUnxqT!FxV>S&;~H5uzj_tiVOI?iG=e&pFUUA z#3wM2+K@29rLwQs5BA4B9O<)oQPS8eFuV~d6u%m>F22V8xr0+uvZnybb1)pyaPY$7_6pX#-kA zdt-qkSA|>9=}t1hw6%kFM+&E?3DeL~D`8+9wb1@Z;1o5MgAVo+3dYgCq>6V&3P;k# z8yrm2qnqwwJR^Z)J$%{rgn)6h-N!@P=s8^{XI47-EPvKxnh%G=zaKN4aC`&7k*ngp zNe1I6WCk+=*Il6D&osaR{R&to>JA4Qyi5rg>-N%x`M%&3wEX1+J9+~Q#`1fB zgCCA6E`JalQ;U8$ny^Y>OpkfB0}jT0;J^{VF?Cc@vQuq1k|yK{%CYRoh2c1UWrE_4 zqzcd6aFz&4hdvy`(O89mbVzr>Nxk#uiglyz9^nhvbp_wmKjn z-LD*kvr9m_KXWo1=GSmFTalj==;x4!9O5Cv(C=RB;k zE0ozaOlBA51X4EX;Mt^Ryd9*EA{pg z3V&uVvPwNqjb}Y!VCscR{x($y`?Vfhb+D&UZJFxILvJ(Fljd$m0Zy)0%{Zl0D^ z@dXEO^DVRk?cs746j^0&WKH-RFBIqx`knolyOgB;bG}7g#EShqTFIYJ?#@fro;tM= z1P-x%4Zkn3J1>RovonRER!L<~@r@V;sWI4lcKvas-ZkvsH}SZ69-NQuBHCf8Cme(1 aQ|3QJun~I(n(YJt00001LQyJ;2+*@Lb;w_u*|Nq)*>hM$~# zb80ON9vo<7X6KW!D0sjDCLvsj0=PH}L>4682N%2(eXx-^UBB=31N-X--<`Vt{*2QbM~iW5YoxnG#yMKPusipzcCL8FgTe~DWM4f-@9t< diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/dialogs_check.png b/TMessagesProj/src/main/res/drawable-xxhdpi/dialogs_check.png index 2d3d5b69e84584ea2f3313857febb8b75df969cf..a3c0f9cec58b19c7eb94174a4122d1ed9ba94709 100755 GIT binary patch literal 1550 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 delta 705 zcmZn?_{FK%8Q|y6%O%Cdz`(%k>ERLtq@6&RgAGVN4qgH6A)tC^Xbv#YV2p{bLhp{tRTskxDpk%5Jqsk5n(p%J6$WGyBc z1*j?`9I8ww|6)|(bym>uO-#$)zHAu!rVmHFxkXh*Cf#-Mc2|a z73jh=b4xRz!wnNn43rd#OM+6gTe~DWM4f(v0R{ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/floating.png b/TMessagesProj/src/main/res/drawable-xxhdpi/floating.png new file mode 100755 index 0000000000000000000000000000000000000000..bd6d1c2c28d8435b23aeff4289f8e3d3588ec74a GIT binary patch literal 7705 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 literal 0 HcmV?d00001 diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/gallery.png b/TMessagesProj/src/main/res/drawable-xxhdpi/gallery.png deleted file mode 100755 index 516f851e8146496cd50f960038e97a1f8eb5ad93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 705 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 ArvLx| diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/group_green.png b/TMessagesProj/src/main/res/drawable-xxhdpi/group_green.png deleted file mode 100755 index ee04f6fa433aac674e866c1b9a3fe2cfcf729458..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3373 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 diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/group_orange.png b/TMessagesProj/src/main/res/drawable-xxhdpi/group_orange.png deleted file mode 100755 index ec4d4c0c37149041ceff8ab4394fdf563e5a8b39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3405 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 diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/group_pink.png b/TMessagesProj/src/main/res/drawable-xxhdpi/group_pink.png deleted file mode 100755 index 1f95f681bcb5e8049ed20127bf9dceca578efc74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3355 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 diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/group_violet.png b/TMessagesProj/src/main/res/drawable-xxhdpi/group_violet.png deleted file mode 100755 index 84fad91c1bbde9d533ba70c35c97a9bc177bf664..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3492 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 OfTo(BYK5|G_`d+0D>)1R diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_back.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_back.png index 4dcf3e7d5c3e607958a06dd178a4c2976ac1f8bf..4057cc5453f9df8a14d5f424ba0d8ab4e30eca98 100755 GIT binary patch literal 410 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhaw6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g&? zz`!Wv>EalYaqsP|i+oK6JggTIYrb)R@xQ9`Z`m*1uaaViZ{5A!x8(8G?Up@)5{VOy zu3NY=3r$(TqN*V^VSz?~uILp{0e4ZsiCr&RA2)b-@U^r&?b!2Fh%?Lb`Uy#;0yhVd zK3SJX5soH(ye>~7976i!T%Kh(mh|yGIdHKd#^SGnx}W}u-plMoPrfw7SpHT>KPQ)Q z+L4dBk@>*(F6uONymSr&6ab(IHV%lqemdL&p@I(xIfk zQm94%G1+&%nfGs=nYUmzn++6GO0*6h-o84ZPJxiyxTAC) zf!gJqLrxs!0@i>!X6zjpbQH56hw2whMjES1lR=w9hVv$^bVY>GL z%?gSl`2dCqpSWBBwgo2jy@F2Qo3X0_wzL6W^4ZCVS2go>2AjaKM?G%R9&#UW&Da|n zIS@JuUjZ`2qMyt+W(CXIYx>C5SdwvCsVWb4h*de+5c*Qzi53^~BiC6|$6+1d1BlVN zxJd_f94e}~02YMtd3uDXxX5%4C(Kxgwko0tkZZ04My(@8R_0WX`Zny+L|1v$A_C# xn)A>GNKt-p9d?)ce--rjDEarcrD*aizyLw-p|N*aG*JKm002ovPDHLkV1lP&LYe>o diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_back_white.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_back_white.png deleted file mode 100644 index 45c92742a657d52785de4522a5e76c55f02319e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1452 zcmeAS@N?(olHy`uVBq!ia0vp^58U}fi7AzZCsS=07?@QuLn2Bde0{8v^Kf6`()~Xj@TAnpKdC8`Lf!&sHg;q@=(~U%$M( zT(8_%FTW^V-_X+15@d#vkuFe$ZgFK^Nn(X=Ua>OF1ees}+T7#d8#0MoBXEYLU9GXQxBrqI_HztY@Xxa#7Ppj3o=u^L<)Qdy9y zACy|0Us{w5jJPyqkW~d%&PAz-CHX}m`T04pPz=b(FUc>?$S+WE4mMNJ@J&q4%mWE% zf_3=%T6yLbmn7yTr+T{BDgn*V%gju%GIzDKG&VPLF)%bWF*I~Fc678bbF#E_vNSd_ zcXDzvhUs<5PcF?(%`1WFO+n~&#iAeV;uMkqKg3jP?~9tczo*QOh?`sb~ItKmQMhNJD0Gz4RR~mR*j#k9V_6&y;_n6~N`j z^N;m|mY@WyYR`M2IbLOfx@XtFTX@e=-y_X>Pv3#1txq47m!2#Z%wXp2(PzE3Q@=`3 zgDLRzp?w}KZ4RuDceANaTD_?2nfZ#3wM}&b=BgWd6Pi5Ny}2;$j@kvE7jGDKs&C59 zahNb~-e%PgI)X12|GXZ_Bjfq1@s=U`7TZ#8YY(Nq`+_brpYYjM>P$baUCr{fL@U;J z&8*LUQ3=P-b1-e$peMY0Que2uMm~YWM~}AX^|>S*5ZLa_ts`{9_{i5ExdKM}x9|)3 z#I!66xFf!@EM;nEElcc!lkYjE#J+r`6)AZ&r7&H5nXK@qYS-I-n_lIb@qRRJ+x+O~ zrrS*AJ?r_lc(c}hnJy*Gd{l@rHT^-;$Enq^1<}6imd%O*dMV(pheuY?Bo?38ZQ6nb zFMjz+)~RptWDN=4n(<*a*OcenZzS#**o7vw*FQFoYT-+W+m#({zOd}(l$5SLUz~jx zxN0rP`ZR0lRUS{4oK{Vr+Q}Xcb01hX$6x*C)!DGtVCBBDPw{`kKbo`bW07E3{Ip#= Tl5wvcsQmPF^>bP0l+XkK<`WG7 diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_compose.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_compose.png deleted file mode 100755 index ab4f82a4b99dbf403b7c40d89c944358e33160d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 490 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoEa{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+AuIM)_A%&hE&{obJx(H$xx!b@Vvne zL2;)%(@j$Q+vTUfcZ}dHRJrJQ_|<`n-Z4E2rZLf5_N!+`C_MS~;otple0|Ga@6w*~ z_?C!(0|SQw1B(Cy69)q$O9KOw0|TSSd5veDtIuxZ<^OCT=X=xq+UByF`Ma2Yovb&w z&OTFRJ;VGz@;6^HKCR&USUh_%(}$`5oPK3Xl!rN{{@_T?l8n+QJGA5EE}o+sHZEr3 zI?l(~n(WRZ+BY|ZX_mdgOmRVLr4UK<2WY_cBh%J*a-C)xZFBjMnXr zQZ0~sqzy%p-J}4Pg*sJ_*Z#r}*>=6%W?BoHIHE#~9` z9X>nvs%^rxzOM|Y13;eKAp9@h`p%8ege%$oYo~=Ya40dbWE|QmTx_*)zwOiLoZ?W% z!=LqB($^@>Sx;O1lTz{q0oboFyt=akR{0LvP% AqyPW_ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_logo.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_logo.png deleted file mode 100755 index 67a0225c794ee85fb285d8ac332e37bec384e202..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2314 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 diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_other_white.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_other_white.png deleted file mode 100644 index b70508dab94a94cf667a31e0df3cf493360bf3e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1130 zcmaJ=+e;Kt7(Zr&3Y&pNc7cY`M4_F_US^%aP4{NI(1`7>xG$08%-P*Z=iY0iiSN?kd=Jn3;3?UA}X^Zx%*JF1XrG zwgCWKiFh=L`w8c5IfTF8?-%=VcLK#SC}m_(QL-QiDaIru5}K5QNhm3^GwOpdAWtAjUB}k6@MMg9uFt5hvESQ=b zNy~FnGOv(>=ZS%mfCV&&B%-8E>$Xq|k`-M6kDXXwKEclko&Zs8BzCiutdNWjSH18oNahhT1)44vi&W7| z8CH&Fd7gJPJRUbjxb0aTNhP;#chwZ4(3UOLM5>_^j-oVa6i|@Fk?tHpGwZUtUA-oJ zVRT6{X_jJ~Bh`SS_g1FlmHnu(pG&{D5KW!N$_qH<_KZ5RtT z+)%H|RT{^_H007a7}`ngo>bSCaQ!&Ldg0)pbIz4rF=4E`zB6VXt*^ySyL zm#!hEvwZ2;+Wg9mZpwf7_`=d_!C#i!mo~3=%-_56Xz@<+XL@;~4}c*6S^#JQ1ONv? z8Gs|@%~MwgU;KFXWTW#QP^)6avcPnP9tI#A_r|K=yoY`t%Pko%h4kpZB# z*VOw^>+5-OHePXh>e|kZ-@-n70FL?H%YOo69s9$560wo! Ia(LqAUlA!!F8}}l diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_other_white2.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_other_white2.png deleted file mode 100755 index d259309d67beebe5eb46aa1bb6d426fe679bceeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoEa{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i>p^K@|xskrs#_C?ME3Oo*u%CYA& zWesE(T}asTJ${1RM{Tz>zN@BxnSjPKG%zp-FfcGNI5049FfcG?+%G;L`Th9&>72-- z3<^M{3wC|5JHP@{z3y~W7iR%0Cr}Sq7HZHh#cWMAC|m19SPK>SH9 diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_search.png b/TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_search.png old mode 100644 new mode 100755 index 78103aaa80ccb0e2f3b7f456902af47e94b2df6b..0bbeab15018d2d779acfa48a6d31812bd822c0c2 GIT binary patch literal 871 zcmV-t1DO1YP)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00Q4hL_t(&-tE~c&g|N z5EJwTh$skwz7N5N6vS$Uo>hDS62XHl^&maQClVj%p;|jXTSKlL$Mx zh5i5XAu~I(vlAlJUY}3^3P1rU06i;E4>^`7a?Tw!?x;{?ku2S<0FAKC1J3P%Ery#3 z8sr;Kw=WDd1N4Gr+_pLeqW*%?e8;RElJXDqh6~JFg^WL-v;*fS%Vf#WNtjMD}1%0<#`K<4XOG1n67|^s*}TDfMLu(47+4=>Zf|>Te}L zH6<|Y0Tfp1Ywhq4#g+Pd2~efo#*liK(4rE!;sLa#)Xz(RvP$5!hnf19 zQa>gE>ekk>DZ|JaZ7oa4toB<<=p}K3zyv>(+D)m)k74bp=959-XRY#`+!NzhEjaHo z?!8vEC;13FV0k{yyW-TfIr^>auH%Dc7qQ-OEF~GpB;Ye?K2J}lXga0`t3)`)^Sg@18pmG zYD#jm6cn_(r%|ghM}!XTyAv~#yUY67cfr~Fd!u6^rKCY2LJYA%^*@vbg017|>C;&ZY&~Mf+D9V0d!fyZo002ovPDHLkV1g`zh|d53 literal 1605 zcmV-L2DKg}>9o|Q(^-{HYqJ`ovoVWK$8^l9q1ye? zT5T4qMI*K7xMquuGD=7n4YkyzgiCCM$i9#J-1YYMocG?`bKdto_nha;*X4b0-uu4i zbAF%aylGomSy7_=^q3@p01yBo0U!WG0zd$W1b_e#2><~g5&!}~Bme|}D1EK5y}<2z zCD-@V2XBBkR~=h~XW&`*p`u`_M}4zwHI!+x%T?-$_$JPBWg7g`xWo9&8NlOUP(n5-|dQ01*EQ zfCst$6nwJ5OU`k+l%6nDE`T+*t2r zcO`t6ZtN96D8veY68{D~kdW{f;g9PidQ!ODe`d?cDkx9122H*@gx;lLZzsU8pwUE0P;ZOORMFWIufY22SfPL`W zhU(xo>Y=3ZAY9jPhi_?4QM@KHmxMu2zdC0uP1;U@t#dZSMav&xhlQIbFkl zC`16Y8dZMG)nC*c+vZDS>mJRnZ5DI{& zHOHoTeP)F=POnJOiNXsV#&8Ko^J8=NW*$2JgEi0q7#qx(&H5FAX$!-z^EC zXz2G3`S5_Z@0B(f0Q?aO0A(2J`!eH5Q_t<1o?9U#0J@2{{=7>8azBN~=vKhSw`}ZO z2nhh?Cf!2#Y1LRLVOn}m>7%bN`_eeM0zgIjtfBYuW=^@^wEjyOWh^uRq!B~k`b^e6 zB98yLWEc>Bj_PMAL;y6h)I~qgoXa(p?cB?0L;FLsqUU`Yptz0;8Zq>*Y3i3^MLROc z{l}C!^yIitxjzj6)E2z1^s}L~1o%su(-cU2%K7IEr_UnsCp{aXrxF`Vt6}dL&e2AT z-<9L#KqP!8JfX~+K>ktXpkNgP01`za3>(f-G{SG(NZOW$wMcl{>~}|*qp?Yk!xKCz z_DX5*kfB)74-?K;_HS{QMB-DInR4LY@Hfi+-eqq9kSIv^fGTe#nsR(?%Eq)!X)AK%*ZAC}^gCs$ z^(6dkRhvSyrhlo71Ge&dRRL)yKXkqArb%OtNp3f;AmK|j_eHt+hFbmV+~R67NvpI0 z^)$eZ>kd_3K=0Kw+B53GTT`xb;+K*VAPWeg05GYStFBVB36M5~+yS(L0D(%_uk^gG zA+$;_C~x&Qk@$+M!=KV@m}3E8GYgw4gjfLBMr&6f><|FWiQdLiZ~$S#HH0Vt@GhCd z%06t~IfQ6lTgf{n2YrJO)q6t$VcH=CTIcQ&0Qo_n0l)>@`)P~yAGu+0*2^Pg+bQxV z0CiqUKz=2`=DnwJzdPCygn0pACmRTpHr0;+u!BHr%GR&q5dh6WxX<666#&^os3iU^ z7e6Qf^bmHzH#O%d(O+n0Eh&D01ycP0U#0p0zj0Z{u5vT6t=P@Wb}AT00000NkvXXu0mjf D5m)b| diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/photo_back.png b/TMessagesProj/src/main/res/drawable-xxhdpi/photo_back.png deleted file mode 100755 index 83b69df05853a301eb4bed4a91e7e3c5a5e6ed87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 637 zcmV-@0)qXCP)LLcw}@iHKmz#)H{i9**`<1zd_5Z6#*K@bo-9FypP+Du8BUG`c0e44 zN4^(`?;#72Vu3IaH{g-q1;p#n1&Or)q^<>;?y-RvK-_^#BQYQWh)r?G{ey=4Cvq*& z2I5pa@-u+=0zR+f13W<74o#Za0Lb74gu)gdr~+as9CDwaLGzDX3%r2X4Uc>?G;$fp zu|OV(EAZ$8CCB~5qz-IF1t`210d7&j-1=Z} z1`z|aK>LeBofv_-fG7)I0&yz^wHZ-y01Bp~1nOfYa^rw*MFprhs089~WVVTjN~RBS z)v-veI!8+L!8T}10T-yn(=H{tb0=$hYXk=GVTAIEkP#(EKlP^WZ^&x2I0v9MoFG>bw2jn-j z#fPgbQiB$X6xC?=pq&j|0935oP@|vRiKnLt>c&RUyd%y?g|P~n4kZkHvxVjs00bBS XwFZqS6dhsT00000NkvXXu0mjfrcnUs diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/popup_fixed.9.png b/TMessagesProj/src/main/res/drawable-xxhdpi/popup_fixed.9.png index 3bb68a6afceb171c15afc557dbce382eafb4097c..fb7d715fae95068bb35b8e306300615a041ae173 100644 GIT binary patch literal 3652 zcmZ8kc{tSF`<~@vW{fd2L=7fpkj9p=7KxdW%#ew(Mq#WCrLttnn^|m8*_E=)lx;?( zZ!bwnC|M%1q~t4E^Qt$c6rr#D{`>uL&biKYozHXM=f0lveD3GG6Vpx>sf+}HK(Y+_ ze%8j?x-t9_u#FkAhI$7Ap=B8RsjjgjpNii`=7%Ugb1@;l-OnOtUrEYx*&_A?e&WHB8k5D&w~4V)rS=*!R_@=-9`PVr<(6pFwla2eR3Q$%g_2eXXsOJ9o%fJv|g4 zBLi*u|66qo!7|t=sIL~nHbMucaJ)EP6c!TO#r|-zaNWQa&DBy&x>+#{|N1FUVlvI* zEGkLazY)@rH08;5!$zwPoy_2?6?F;b7iFBV_#IGnX#@w1F#0R6vpOGH!O<`7C3*74 z=`#Bnlr$L%ei5$ZgZ{Wzbtu*~tZU<|#c6lJgg|4Lf|#8KrMZJ7md}0^mh`M0%?#Ea zDvZ!CHt=OCT_x;Ea0&!ppCTkth2Sc*VUyWI{M4lV-;BtE1GFOJ;zO_lPu@dsSU}S5 zlgl7PG{6A$&6JiOG|>88!rC`TS!vQ9o;bo-kMfx%(M@p5>Gvs`DMVQWgWv~xy-Iyn zNe|TF2DI1ng1pOK8mW# znxWpRIO6d2X+v&;nKpeUzS)ly9H*0X8_n>e12iYoJ}ltIBX0mi5PG^kwmm7r)S1`W zY_H(#==4^Z{@ab(f6&U0)XGIj&{jD0YMMMYL2x<<0Q!H2ft2%?XI~Qk^JZ`HgQ61d z1Ci=6p7!OOReFB;U# zXMZ%UjI=>zGPw5>f3I7g9BYg#;ARzY?(s!hFx2Uh8*mP>>MKR)O%y{g-a_yC@U>3X z@odeakoAN5F3^_dTRABr9VwKUQiVL0Y64`=aOa0>O7GQrm7TvHGq@^bFVr#I%3)Nk zlfDkFPR6_xp_~f8U~kO7t39mHY^{IC9{q~x#yAe@7@{nV6(C-k?_k=72=-9(?k!{h z1847+Uv2+$FnvtK8-WW{g_G{dg9KMtw-g(zFdST5z|7F&opA9+;l4FG6#_|cIl_lf zr-g1QOI#w9KY{FFakAx-!Z9dI%6yz?T#OV`(_CbyN`xi5I=q~^EWW_M9oEq|;`iB+ zyHnc(xwk9Nrf9km6_Tp%(Ivc__6^)619yFB zb^E2h3f9%j->O9Q1RLn{>mMBRS#V1p;VzLB5$qG$HOi+PYWq0S>)fFN`-}^On<W9(Z3~ zx9}=rNVQYS`$hV5l{hAS+3C&n>eo#WwK0CsBSl+L$fq47AJbK|3^1+FMPuVA# z<2-XkMAJn%Ojo>B)`^#_%KXu-=AUX^y#fJtWoV{*YgpsH33Do@J3cZGnIxn(oc9rb z5M7%(S!>ID_7#GeEK5OySU`^NZ4j9pIDA=V>vu{3_qtB zDtlBC1Q7`-ebocu(b;BC1$PImHU(P}^Wx}7Z$_VWuR_r_%9OD`U+7U8A5h!Fspt7Q zt7FeRafy$d@)jN7ku`J?k(Pv??v;;I(JiQ_;~rJT3Wt`{}IqY7^?DhWhbQUac zIqimz?)XWmT5LS&dInok=20_^W@m2FSgMM-^r|@$#!u$?5j=4Sb17;t0BZ>bGFZI` z2rWDWP$|$~-RbLaBEdS4N(WsjpmYS`XW zvPs&BvTv=f1Z2ap6{`aCC1=MBODI)gUem6n-)DbKzQNMBE(!^Ba`_^P@pN5F(cV@<( zNo_;b9>1p>zrv4aoH_VvxV0Tj9Ka-xhbC;>bs+tuyy_W?f1*a`b}}oA#v&}{qh8E4 z4*X)OnXh%txm5NRS;eee9N5NuoO~{%D_K*`mta?_5mKt2sz$7w&7SuE{a+y98ju^DH@B8$E5xc4Ycp+J5+Q| z_OIZsd`*K=f`^($%x8_upVjL_vgUJv7TtxX)Y!lyZi2gOQLge>qqQr9G}SiKWz|)Y zfm6_)nQsA=TU@uNr+$yL+;@&ASS=rb?-|8>$upd`%ejons{WDnFtTG>NdnoKwHV+k z?Ze%@)U100JR~f$*1DpQG-z$$u)8M!2@|92ihSB~c|4Mp>6jL2j7Z);>)3#uox(@# zm`PM=2n1cyn6-1=fkiy~pw)2G+CT+HVa-6V zr%O&@<85A^vy?-NkzbV2|3*V50rZmNw=0zg8~PYs&!vsl=R4kqNg#OIiyu#*lSsbf z!i7Z7uT*^-z%p8KOM``N8c!0$6EORNecs)5;QRe-nrUKY@Y<0 z&0^WWm}fO1%R4aqyca}5_4HOyNlHgxB~Zym{l=v*F(@Nrl>e4HJT9)yZH3AAhos)y zwr|P`KLf_!)K0YE;u%d#>Zw}-*NZ#8lfZYtCAhLeicO!Gkmb1XCvvspI>~KI5-wE< zgQeaOOvkNX?O%jExpT!22l`?IBz0pTZ8+W+6#CR|vHjLE{F^qLScanMZjpANlTb)t@gwlA+}!M9zt_k=4^TP;rFu)rht{LXX31Ej}Me%!l|HTHfWtCYKEf zeb>})!*+mqZ#Bfo2evtJEpRBN?)XD#f6tJFRN@`mTAzuw4*#u8Q#>E{y0 z`7PKzWuYi636jD2r|#+nE6Sl?`FVDR>#QlS?ss+|y5ccGNG$mkcHu}?nQ|VGWRF3a z*0O?d%7~QU(EJfG&5}3FQA)Q3p2_nAl&I?Q{eLoSkB39Hjp4d_(7I|YMTfGtj@AQE z1#rl_BTnTKYAAN1l{^3yoD8n2bZ0<`ihR)rEpoi{rDWhd*T1WDYxbLMIdf+_fBv^? zl?65d^&^Mi-GDN`kU^x&&=gSd+=8<(F zxpy$vxBJ}$m?GhhZu!u%2g%P7j8`Kq4S+xX5JvOTN})9$E4K-KA~Mvhm?LgF+x!c? zGqdJgaNjMb4GY|Ljf&NT5UX^4`t{|D#yR;3ltEpR@*L&rDGDl$qAtAhwK}frqkdkm zR#)T=qr|@ekZJ99qy#`w15N4B4W85?DvSf8*@!ko2CylbbjJ#9XICHP&V@+r$Hx;+ zoP%-U{=SNI2(^M^{$Rt4K(XbgMzB1+H2It$RsPL;!Z9N7#j8 z@D`{oeq=nV^EkgPFY)w?D69ED-G{X_NKEKJZs1xGaOniH2_7X~{UR@HE@3&sOT|Co z#5w_#L&=g(BH<<=?*+7G1YbaWDKVY)YARZecwSMn^z%mgYOWNwy%n{NNSd(j5+if9 f1zIhoiod0v*<5qVc8@`9bcY~@Epz{Enjimvf&M|# literal 2363 zcmb7GdsGu=7LOJ!@{p|x7Rw_hYU?5yl8^yH9t$J_tpNm7up)+Jf)SF5$tXb(Dhh}% zj(e7Z0)UlBJF z3WT`)*zLC<8V2*(GGTBC62e(S<-sBX*Wg2tizFx-gP}3y5-u+aLa-4~q)<%9Y04{c zSRtQ|+d$zsaU@>QR-w->DHOEJFPOJ0is#11F&S8zoQe{NAcTvRi=xFcs+^8{$4f=m zhGPJSedmHi(Q#8jg>V9}Ua%CxQV3*6o)eLX1wjJQnF4~uRalY}kpwuQ19T)hQz;;o zm|1{NgaNre(b2#c`>Ms5VW1EJ&4NT*T|Nj}huW$&*Ey)Zz|l>kJ7lOd&PM-JzI zyNW~~yk$rr^fBJQB$froN+2K*lEFKqJhX5Eyg^Dr^^!td1eONFaP;&o25f~9Shf|G zV7-Ds>^B@PPbfAVtbB*yaHzgw8NwCwAYT?8hjI{vLO#`PwUaZMggl2e+aynAgzV{abT=tmoDOju+C9J7(UOpzrGc#K(JdaATDv z*LnL=nOnZ?8aG=SeFDq(R@!RdO3}l_4!iJc@uRJiU!?0shx(cNiYtN}yWG!~v32@{ z`Xlf`ZCw8(s33e68Df`^upqiO6|c1P^vj;F=43Xk>}^R?UV3_?{_hsvb1Q>Sc7ew) zto`P765J42kU=+5EZi^>V*P#fO+9fZXq+eeQt0Y1lJ$J~_ue~(;;x9+S8`tWjJtPS zT-Ie2?P8+we|yj8_j&rUo2Oo@bm>P|PzaN4B@wOLS`To3>mJPoi+UJ;ww1i%XRAaV z+aLMH6`LyXdo^t4GC!lu?aIgb<~B>MA~Z$AtyP(Vk%EPE8{2rhxWeWqmI;WWF+UZ* z7cLsan_IA#tT>sPpJbm#KSXQt8O&RF%~El3{YcY5@mITT_U{(bv}bckYkn;SDR=%j z;#|~p*g1#TQc~STZ`oHhu-Jh%*=ka0R%fR>qs@F~ep)jzfTKax|qC|pK{tHyhp8F%@#C+zD$ zbI60yp9{6KS&gB^r_a=SB>{AgUu!J9Stm>;IBa`+i7HKTk=NC^(IzJ&uy?&S$2$J0 z^ZjVI`HWD9SL4NFi9Oh;{PM!)6@D)c1brRv%1egBXu_09yZEfE)+k_0X|+siQVCkM z^^7J6ehyudf9PlmdG+y9a_FF)u%){!XQc8`tUw!gUES~;9pf)!`Yv~sO&ovrxL8$fJltz^d5w6{CBW56 z(XD?pR8ggS_7DsQM%42Y8j?Eah9A6K*5U&Ew8?JdWZA5;q;Q854m$Pz1kssS1?$Q$ zC26jD%5QBB$O`ET;z1UNo7CS9<~a#o+T;O;E4oUHThi+ow8rqA$^pv3VSR)bcU@zp zW$j?i{<>qCHc_fQ%>sea`l@G;DFgcIe#sS1^1!+Kf-{Oy0~ z>IwS(O`UJf3|I7eWiB6DY)y5TXm^vTZ?z@ssk{cCVPWCq^};vLs_*><;&S{Rm|`>AXyA0c4l0&(r;}0{71i(_NRaDh&r0xS-W`&{No<2_oOjjeTw2ZInfg&DgcUfMK@~+ zV-KS%S4}XVXOEF9okojQqA1F_T1TYkOFYVC>&$GFChiWS1@05xKg`0+a$Ocf T+n2D&@H^wn_G6v(+>-QfO}6_H diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/telegram_avatar.png b/TMessagesProj/src/main/res/drawable-xxhdpi/telegram_avatar.png deleted file mode 100644 index 785dd42e9c22e21fe3d970b5ce0a1d9352db0c72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4530 zcmV;j5l!xiP)0;F8jabeabq-18)MegnC=>l*-c}2 z)2$&jL}Su)*EBW8rm0J1scsh~)JLT%N?QaK7=eLdVBT+L*dIf}wwB`DJNKS@&Ykm( zfApa<7tiPZ&i8lD@BEH*YHCVCMa5P!`d2_j0ivP+QBi=XC_q$H6d)=J5ETW8iULGM zMFFCs08vqZs3<^GRKJuwm4EndN7xaH4S6RYxWd8c)QB%S5sJcpf8dIQqH`1}RG89b zQi&=}T4Gep{HsZsR;ZJg8WqYkX=?r*N>itt!yAd+7!BQXhI^f1Km>kq_~E&lv?a#$ z@(e|JMtXIwGEXa~0Es~mNN(7I9iySEBY__#!pOe2Kqs$Rs9L!|RlPu!txBT+5vERi zsC_ulVGDKGf`UJc*`TP+S6An%R^_V{GARWJUxAxx>i2!|&

7;o}+8Wp#_S^~Kt% zY$XKsv~Pji6nqp z27Dj?=th~1qnAmUw(A+gmNLCYE~Nl*rn}>zzkEBZaErW0C^*^16S>>g8_=moGLXc zK3J7g8ZRcH06nfwd+41jc09MS@DW5Hh(i#KC_q2cscv_}Z6}?!5>$P$_TY*v9M+12 z2gntU9lA!REygk%6b-9|pUwmZ$mWl}d1(}KE(!z-L2iHS<(%qVRf+;+@l5Xe@2J&B zO;1vm=>3;+))cB!4xqc^q1~6p9PuJ{s$?XSN)Er6CDgu$FaTX03GQvPrT7vvx7t&c z@y0X8lmMu?-*@oZI8C@X*YB3-4^(H09H6E?-+`-kI@mmETe<$=3Zx7n-J-i-@gKZK z>ETgldOeMIoZ4mxHSnxW6`dkFyO@O8S=j;$GT zaGuq33{Z2wkCZM?DJY=lSf>+Tfc%qFAKa#s7uGt{>*4kd=Mtc!w;VP<-Lk-4?{!RY zXfZegsM`@fd*4Hc2Y+!pQZhWbrsCO6JGq)GxB=*b#ZSF6LGngo$Ge;u0rb%iE;=e? z>D)sfCtC#^0Ms@d5O?1~Q7RIfI^N~N0-%#!H2fqbokF%MPrb23SD-`Mcf6_3Yw;u- zgpz&Y>!U&Ob=*a!+I)3=v356#};9lHRFy~{Sh(LG8LzJGxm8(gsH|v0#`FpagT%bY* zP$)We_P#fnGto%_^p79i6pJTHBbTl#(n83oS(s2CmeByx)%?@)55W?9}g$2woBc@$Z}A0Mjd^83S}nq?Lyz z<+R0tkW-nNj{e&Pw9h|PyOn={M7Dbh7H3VN2GHT#;>@q}16TmWqAppE;5+ct$^|Om z1`M*`w@JcZDJG35;4vT>WVAfN3?N4+3bQrQ+?Wm17H3m2Qj3GRef}BEw$Q6Z8omI6 zPbb&nY%ou6I0#~K=20Xzb33J_QvNX0joU}SOT5yYO$ zm@Vsr&1F>D!2lqbtt}o*0Wzk`*2l}#mu4vmnqj|w+7{gQvxLQvT(`@TnNBDKG;FpC590juKL;bwwJcdpG#V>YKbd7EB?4hA=4M zDA36_mFVitTEvGqd9u%V)|4|EXgQ-dMnH>Gw|Ls(RAnnAViBJ67if^D2qegbDQgPV zzb(5;@sVleMUns^Xm z0FXa|B4;QyDk@Cr5>e}XzYp^#OnkOs08kLgnyKhdOT+AN(c%-$kAvMRT%S84?rVNp z2L(Gl$Rt?s5P^8QFX)#M=%}dM-Q%2p%_{Ms#&I9ug2gY^`+gjuXuDNZr|K90gywkE zj81jCU;Ao=^zzxc?6Y5FCXWF?GAYuv;Jf3Y&CON_MQEl@G-~cA!#?X1uEJvg5cBy4R)nDFp86oOi}VV<03xnb8R!9q_O*`*b*#3wyc-} zL}axxxR6cfhXvW#$Ey1nA2EU%K;#|_o!!_+xnk7q2ou*5nduNS0|+vC&M$~SDai2m zTpmMKr$(H8<{hBvFUTSLbUMspd)mej_!9Vv^8ByXn79t?F}FTo#p?w zJV?GUKRr0d;N~(OT*d&^EL2O#*Rf6~-wW0RZNJazr93t70D(&vLBj)}=VX_Qzt0!y z?!hF*qFuiX&DUV4(>)&k7Kd5~{luLGFdNu}237zShyfr-?Eijig0K8*fV}yO-JP#& z09v^~h4PFTe`*~J@NxAAhRu5uQQcxKB7l@>(pL&K5>e>AjtS0F`sRKgafgs#@><4f zm6&Cf>ISn`8~}AY!kq6mkeGk1Tclxk?2jctFpH7fU-vP6$Z2st7;_R&57sSaIi;|K z0A{iJVvz(Pn?K57N>AMGsU*HM!@9#i`zW%xR4);WPWQOES~Vsy|Jqu{ekf&vV2hhz z3j2VIrbM0g5LW&C5lkjY`Iy(A5>F6<)G7IUlg|^l{SNdbb0bz#0M#wlnhoMY*~@JnETK$}W* zMAx}KrjuPR7T3z)dH3M_+Wnj{`48a$AjkuEh$sj_O5b>g@wy^$+ZQzpIS4-zuG;)= zDbo{iXf;8dz3*Yv2hHY>l686zvY)q~H*xb(oP3H#F5S1xBpQIgMjz{RCjR@+4-mHf zzO_ux)rBOSZHTTnYggr|MZ-|ra3JxXo@6cm7}I5YsxmkWW*k1*pQuBE5Wjg?QX_f~SAT+J0Z2qg>BvEf>c%J#Q^FV%~>}k)C+^ zCw})JG0Q(NJ-{r%@n>@Tagfr#^FpR*00MeG`hLEY9+EGskC^TE9ZwrMzs!&Os>0fQ z^?I=syn;TtH{a=>`SHR^W`p95XN{bHEH7oLhgM`VYSf6cBC)B%*T?7lUmdpK)e$n5 ze;~OzQj^8USsGpd(kWy|YO+O>kO3%-cOG9BviYM2uZ@%PBkX?8$W!$nUxo4D_IE#* zArXsCbh!YR**&th;lS$`M@YH4pk|>8+z(G5E}fd^!FO3@*HL3D*~*T2m_ELUTSla zoULrk1$i#egE;mG43H$=C-tx2O%T@&4mWKq(H(wKuwr5%0g}Y;sodK(M%DFSp!4o9(q%po~mpmI38^8 z%f=U=Sy%MuZ^wzdx|S0e(`EaYo3L^`H4d ztSp|%<^kVTD=!!7vQvRhzP3=ac9DiGgPfuO%?iBH^^sufP~g^B2>k}FF>-h&06kHF*JCU}M8R+~oB~8e zwrJ-bDhd!41&E3QL`4CjqM`s%QGlo@KvWbUDk=&P6$OZj0z@TN{ZD`a0Nz^EvJo1F Q_W%F@07*qoM6N<$g8dO_e*gdg diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/user_aqua.png b/TMessagesProj/src/main/res/drawable-xxhdpi/user_aqua.png deleted file mode 100755 index 4de401c749fe3c21157f4dafbdfafc81d4b0d6c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2736 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 b{x84)8I>CX$00000NkvXXu0mjfMC)(T diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/user_green.png b/TMessagesProj/src/main/res/drawable-xxhdpi/user_green.png deleted file mode 100755 index 9877c351f3c523a6244e6a49ac000afa902636b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2933 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 diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/user_orange.png b/TMessagesProj/src/main/res/drawable-xxhdpi/user_orange.png deleted file mode 100755 index 2b4e28c5c4047ea9e3b421c8e57d0ed1b54b4cf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2976 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 LNkvXXu0mjfWtLWk diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/user_red.png b/TMessagesProj/src/main/res/drawable-xxhdpi/user_red.png deleted file mode 100755 index 3f92f5f8dae13ddbacf33d53184041632306bcb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3049 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 diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/user_violet.png b/TMessagesProj/src/main/res/drawable-xxhdpi/user_violet.png deleted file mode 100755 index 021666e41eab8ae029310f0b7a0c565869b2feea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3007 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 diff --git a/TMessagesProj/src/main/res/drawable/ab_icon_up_fixed.xml b/TMessagesProj/src/main/res/drawable/ab_icon_up_fixed.xml deleted file mode 100644 index 8f48139c0..000000000 --- a/TMessagesProj/src/main/res/drawable/ab_icon_up_fixed.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/TMessagesProj/src/main/res/drawable/ab_icon_up_gallery.xml b/TMessagesProj/src/main/res/drawable/ab_icon_up_gallery.xml deleted file mode 100644 index 1aab7a127..000000000 --- a/TMessagesProj/src/main/res/drawable/ab_icon_up_gallery.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/TMessagesProj/src/main/res/drawable/ab_icon_up_messages.xml b/TMessagesProj/src/main/res/drawable/ab_icon_up_messages.xml deleted file mode 100644 index 7379f044f..000000000 --- a/TMessagesProj/src/main/res/drawable/ab_icon_up_messages.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/TMessagesProj/src/main/res/drawable/floating_states.xml b/TMessagesProj/src/main/res/drawable/floating_states.xml new file mode 100644 index 000000000..c2c53d129 --- /dev/null +++ b/TMessagesProj/src/main/res/drawable/floating_states.xml @@ -0,0 +1,15 @@ + + + + + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/layout/messages_list.xml b/TMessagesProj/src/main/res/layout/messages_list.xml index 60befc870..5309106a0 100644 --- a/TMessagesProj/src/main/res/layout/messages_list.xml +++ b/TMessagesProj/src/main/res/layout/messages_list.xml @@ -1,15 +1,9 @@ - - - - + android:layout_height="wrap_content"/> - + + + diff --git a/TMessagesProj/src/main/res/values-v21/styles.xml b/TMessagesProj/src/main/res/values-v21/styles.xml index bf6a19182..ea24d7b27 100644 --- a/TMessagesProj/src/main/res/values-v21/styles.xml +++ b/TMessagesProj/src/main/res/values-v21/styles.xml @@ -16,6 +16,8 @@ @android:color/white @android:color/white @null + #435e7e + #54759e - - diff --git a/TMessagesProj/src/main/res/values/styles.xml b/TMessagesProj/src/main/res/values/styles.xml index d3f110e3b..bf12e881b 100644 --- a/TMessagesProj/src/main/res/values/styles.xml +++ b/TMessagesProj/src/main/res/values/styles.xml @@ -32,6 +32,13 @@ true + + + + diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 45c257f58..f703ec03b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Mon Oct 06 17:04:43 MSK 2014 +#Mon Nov 03 14:19:12 MSK 2014 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=http\://services.gradle.org/distributions/gradle-2.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.1-all.zip

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 diff --git a/TMessagesProj/src/main/res/drawable-ldpi/intro2.png b/TMessagesProj/src/main/res/drawable-ldpi/intro2.png deleted file mode 100755 index a318fb8bd7d04fa89b1e99eba2ec26676580da4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2732 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 diff --git a/TMessagesProj/src/main/res/drawable-ldpi/intro6.png b/TMessagesProj/src/main/res/drawable-ldpi/intro6.png deleted file mode 100755 index 82db2e66e71172231bc1372c4a3f675727583bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2179 zcmV-}2z>X6P)2h>PNyN+vcLAn_J;;z zvP9z_!~_%L+@^t;NwURh;^tp${)j}94JLvbksqBv0jU&sPQ5kH+R`8Iz8`&k-{gcS z<-U7A@ATYr?!A3AZ29dbs942lcC@8vDPdmYL%WXVM(dHggQwP%MfEz9il8n-t7cG3 zBEW?R(7V~s^JrJpFgPVaXQ6FEt3g}MJXfqz*bO7wjJBV7`X#hBv@>WUN(|O0^YsWs zE!t_c0kmUi8#qA@Cp){wF?P+7Sw_@;gk2&AbhAGBMLjt-#|xTr#g#h4sI?Nkx-M4GRB|@z z>|$0U!nVc&n#xR<&MjuS!jdHIDKmnZvHo}M7QgOpoO7>?!sM=`KVMRy;op|Z6&#o zYBa?4_day#AO9VIpL>Vp?mC5yJPaT1;K^`<+8}>a?0`>Rb;b>ulwvSI9p0#IrMXH} ziTUX^}!FCBea4UND zE19w`saIl7og$nJX{W$0H{f~csZjM&HdG+o{EReFAtD-4^YwTGzrEV)kKHoJ&e*mG zKv&7_!L={vKn=c?ZK?833-qp8V$XoC3oSi^l7QywYWB2Le^Ee?6HyzBbKu(081#%i;@PZ)YmQTBO^2_S z6(uZW|5^l2Bp+fi#k*NDyKD>_@<+7 z0^KA2?wd3RderOV*<25S?t`aKZV@$kXiWo?UTzr&F(%N|Vz-!<#;0dA2fD+}?TA7* z9i$1QcO7C{x<4_cDadrv>9&VkW!Mo&??{)$v~)$2%ZOey-2Ax+nzQAtucmpZ57r10}lLQ`2y?^B&I~ayQ23=RybRyqFgM zKrcAgH=MALDa$x?;|~7h`p!HrEWrc%MQp1lyB@$#=-D$*5)1Oxp)vU8YA@Uxo#fs0 zGp52ygC4$j6hwYHw)OT9bYh%aUz7uj>=|-we#Rv_Pu)E-3BTTT!(Y-&=97%+3!pvh z7xg?Ql*WgB;GAQI(o73DEN1_C4y8r!v{COg3{5@udoSlO5v(&9pFN>KlTPpe9Z>&- z*KbLx6T*KOL!=_zpi6W$7@RU2L)7I5bWWmm0K(6Gh2DHm4Cp|**QB!yt0sheBGQYZU4Wnv(y23jL7mYi z4bg(8m8kW=;joQ{L@d^$H&5~e9mo;a>67EL$!}dOwMMLKm+j26y-5t&%NVrB@<;J3 z64R>GmL!GkWn+(dGdteZczO=S+9V4j9yaFIc>Y+-wg-Lx)VuKXu{K&)KO5_%cpDJA zzeL}x_714z8`dNemof6#$fKF}ZL}jAgnWdJP4r48uN_k_tMxwyg}%m)vqsoh_VAkY zd2dbAYF{bZ@dSo^oQ;9&%B2)%0H|Wx!Qxs+0s-z|ecmBO1uW%Z3pzzvfwo=cz<U zD?sF_TBSgfXeXFfw#v~qsw_LX!unLs`skDLVsaiIqC|f=8`wdG^6!3j?Q+(aR=F;0 zQs}MvC9@iVN%dt7wEf>EFh!*F$Ek#aC(!f+c6tU8Jwt@P=&UTp_Go>$hvmKPEas}> zjEb5*w?;s|XC@TE4xDhM2Vpw}VIZ)5Gzlu-nD}3S0RRTS?sOYWh=KqB002ovPDHLk FV1n9=9vuJx diff --git a/TMessagesProj/src/main/res/drawable-ldpi/intro7.png b/TMessagesProj/src/main/res/drawable-ldpi/intro7.png deleted file mode 100755 index ba759b115af9a68b78b83e3061ad82a2606f2d2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3251 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 diff --git a/TMessagesProj/src/main/res/drawable-ldpi/load_big.png b/TMessagesProj/src/main/res/drawable-ldpi/load_big.png deleted file mode 100755 index c3f2f77911f8f3d853f3ea80135ffc9f772c2c25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1674 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 T62})s&OcQ|_(H5KEPnMr5NyZ} diff --git a/TMessagesProj/src/main/res/drawable-ldpi/mic.png b/TMessagesProj/src/main/res/drawable-ldpi/mic.png deleted file mode 100755 index ae464202a7214fe3d1e3ccfbc739868befd0db57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^JU}eO!3HGrSK5O(Ea{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i>(^mK6yskoK&=l_3uW}}Ghd2>}K zbTt)CXJuuTb)S~*a*ZKGhGUUL0Aqmvg(``5PTx)4jKU^L#TQIhBwSq3>d$O;z-JX( zo8!7hR*7#5I$kiem8#mcI+R{@SjC#g%s*vcr>m}y50lL0?Ca}TZx--&d~LWP+Ob`M z^=Z7qH^xVI9cnm5)D@)poRrn&U#yXJxW)CvMPpl2*Hh=KGAuV4yzT23cFk(|A%2C; zOko}KBd!%|9TlV!=JT^O=PpbP0l+XkK D?oods diff --git a/TMessagesProj/src/main/res/drawable-ldpi/mic_pressed.png b/TMessagesProj/src/main/res/drawable-ldpi/mic_pressed.png deleted file mode 100755 index 761d1603e97bc52eafdd06a90b68aadd0ef56c5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmV-q0h|7bP)c{F00004XF*Lt006JZ zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUy_DMuRRCwBA z{Qv(y12WK>@x~HJMM1gCu4RZEN0w(q)&Nu-2&C3Apn@Qvru8rm6Pjcf114xh=Adg( z!JkVPX>CnAV*B8Wh#nfLITR zU4eKDQc(T{Vjm#h4aAo~7J+Oy2#uV4U=r8?q^*Fs1B$JnV);-t2SGN#($8P0q9&lC zUr=|m0jWA5u7KJa1WtTFiJ3r78q^se#rL3WB_L*lvS$GeN{6RbpeB2$X-;UK-Uqey zAV%_rYGemeKcHL=pu(Rx^8=D5upm$|Bf11|%O$WD@{VEa{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5ij_c&CCHp~%I=ws&k z!=&ZGyeXZj&}71Xo+X@1Jj6ZZ*&eNRun~XNSGAytZ^p@lcIHxR#+%j+Kllao*|a>| zx5>RJSn$A3;VSbH^+pTv!xL{DVwGiPkzm;LDQ4!hmr}ccZe#Ft^>bP0l+XkKcxqYu diff --git a/TMessagesProj/src/main/res/drawable-ldpi/msg_check_w.png b/TMessagesProj/src/main/res/drawable-ldpi/msg_check_w.png deleted file mode 100755 index 945d09ab7b903272cebad42d15d4f1b066a3f932..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{VEa{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i<5c)B=-RNPAX_5Z&;v)mb;MKdJ| zn9UUKu^y@WA##>IDOq7(|LIv}3ja8d_$k%Uj*a+XPO7W8xc<;VRtWWZwmSBTq$Nxpu!U_i%Rt9ZhzW=oR QInZtfPgg&ebxsLQ0C?|8cK`qY diff --git a/TMessagesProj/src/main/res/drawable-ldpi/msg_clock.png b/TMessagesProj/src/main/res/drawable-ldpi/msg_clock.png deleted file mode 100755 index 1e505955d24b304ae4f44e11490daed5ff9365cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1042 zcmaJ=PiWIn9L}^Wb~30=a4N$`CS%hzf4VeV!|K*Gtt*;Q+QKRbnkH{++>#fQx3$|z z91Qg^-NBm&5rv(+3X14qf-=PW5U0ia1o7fQeCgWGgEb_1fB3%d_j|wJ_wHn-E_8OB z?4T&BGd(G1$r$jyLw@rAvhEL(;RH?=a1PDjvg$x8uA?FZX;YnrS*YquH{QchiaJOe z`2sE|mn03DjOt;SifI!zMU9SCY*m|s7!={GVa4d(m#=AH=rMXaqHv0xfF)yc*@3y` zsl2v4r$u#o>^vB)NJPMdSOpbx-g2c%jIQZQWbSRVG^j!FT#VjJs-R>*0yz*wn4yry z@jMVkh8H5D$Pa=r$A?*tykdwKq=+bmhe7?JNi;{Fk+O2C9*eAEbO~cyV%c)J%#?>1 z4>gxnhQ&fv+0mo>P>E01cyD4kA^)iuy zu@%*3d4}_j)Bq~V|DmSYM7uZ(_w)Uyu$y19A)AFRT5vSdxS3urlr1G3sAA;g5t?sQ zF;hYqxg}(SL{0?#(}ty^vO7@2D~go1T&!9eOv^EvC@_YhOTsY6PY5Yd5aKDGPYUr7 zE}Y<^BO^oM6cn!mv8!x2Y3C&bADgOUzNaOTXDK?BVf0`VlH;CA6wbn8o&Fv z`}<0vZ{t*kdMBLef`vzG`PG5`&s{%GD<5)|7|lAA;SpHRq-rZzzx-bR7OWN2nwdU2+L5_n=9|&1Vs(d zMx~0Y%8aBTlTm#P7yke9Sq=YE(b1- zIg2cpN~L@ao{thl)NNW=^`e$L+EtLDt2u^^4P*gdQLUj>oTf>p2S+gNo~-3|%0vpr zdaBKGOw2!07pN%zhni*&?cy>#%=e$dZl!5MwhUdg>S&~K3!{E0Tgp06#mK23wA`&? zsg5vm>&OP#SrJ^CGb|l7+{IM0iMkjZmgPMFGN zIXTV?$&8rHr;>>-S4P^Z2`${^>WAF%zFgl5rcENt&@pa8J?|hBw2v$q{c{oe>UFq! z|6CG%xhzSB^&9(Fqq|$gJ^r+3Te9dGA6mri4zcy;>ra~GN>~LsQ}MQId;9y71Ci$g zE5XRE;EQBr>&VW}tFNiMxB1|y6>8+;o$CF-@QvWk*oCKqZ^JViU%;>A27NrV_vYc? z_Yj_M>5tDG`?SeVhd(?rydmDW82ItBb@KiC?^a-a_cVWExJU&;R82kqfZG0g&cBU? LTv2{DHQ)LJ_5eMB diff --git a/TMessagesProj/src/main/res/drawable-ldpi/msg_halfcheck.png b/TMessagesProj/src/main/res/drawable-ldpi/msg_halfcheck.png deleted file mode 100755 index 73f290a1a9bd268da255e73147a432fcfa6b0e41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{VEa{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i=`c)B=-RNPAX^Z&m+v*Lj!??bg) zcXCaL;yq&LV`;lo5IjkWC z>?(ZWEFlUkOQISq7&~Mexcm;9G>bBdW-#7NZ=508(cHjgwr~gI5{{O;VKZe}ANfeg lODbz89b3lG!pOwKpvw_HYkJ1BW}tf*JYD@<);T3K0RSL#O#c7? diff --git a/TMessagesProj/src/main/res/drawable-ldpi/msg_halfcheck_w.png b/TMessagesProj/src/main/res/drawable-ldpi/msg_halfcheck_w.png deleted file mode 100755 index 1ba678ed80a7d546d291011b7a5c88d707cd4f1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{VEa{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i>hd%8G=RNPAX^Z&m+v*LjkcR$vS z^UNDf^jsG??2+xLXZ&c*HlZ|QhH!^J)5lx|F;;7KUq)kre3nPy4r`c%-NO`Ej$Cf| zAuTXlF}uxhOT!Oqf&Yw2_9f~H#eGbLYGUR_21>2M#sdG3J_~JNU}o4iW0tP-Zu{#% Ps~J39{an^LB{Ts5Bw0m7 diff --git a/TMessagesProj/src/main/res/drawable-ldpi/msg_in.9.png b/TMessagesProj/src/main/res/drawable-ldpi/msg_in.9.png deleted file mode 100644 index a27f9ecd0a0168cc40143121ec5b9c526062e6cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357 zcmV-r0h<1aP)P000~a1^@s6lq3|;0003jNkl_59pxT`vJ;Yn$;K1_x&!3b3Nd&+D{yh)U zOOz!tmZ6+LJ%9d_0YG|@Ex~D%h_xT@e=-3`FHx4Lm`C%GYY9j%QNcB83GtSMhBE*D zO?vVr-V%@nfBqc%PXWMh3B(77|5FHXTLSUHL2@%7QI;q;ByfEH`Sa+1DgeBeNSg=A zeE#z73{8UzB&lE#pa8V!98Du0Zqe88muQ-VL5k$fLKSJA8Kunvg-6S-L21b!npy&? zLcf0dL2}0Y_U*?-^y(LHLt@U#jn?l!eLeE$@88da31=^Zs})UZ**MhzQ| zhB1(97_egbi(we3=)L*=`z2BhyYcSZS@dEXT%oit+~9KQ<;PhnIA QbN~PV07*qoM6N<$f)pNe^Z)<= diff --git a/TMessagesProj/src/main/res/drawable-ldpi/msg_in_selected.9.png b/TMessagesProj/src/main/res/drawable-ldpi/msg_in_selected.9.png deleted file mode 100644 index f7f620b76a2f63659bdb7816e627b7935659694c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372 zcmV-)0gL{LP)P000~a1^@s6lq3|;0003yNklI`@fHme*FKB4};X)|N3VaNDuLrI5@D}`||q~A;Zz} z{jYz|gY*(*iIlM~7f{n5QY`^tkX~dkyj1t1L4OOz#oN-q55S_0BbRB(-2 zLV_is%y&PLo_tBLB$WBy=ikT4wSWjqfEIlHeV7sp2v`EN;LGnr2NHok?X?N-6$72t^{rybHaF801 z+V+JTT+ka5c$-851`YxO8XgM5Ixd=mnr=GyFh~u*x|<@uuD2kzCeeQyVg>*jo2aWO SurNRX0000P000~a1^@s6lq3|;0003*Nkl2VVJjOy$X+^Shq@yY%td|BL_eVUU`~f6i|K=^@?{2M3nNf6t#MWH>s0 z^!xlNkY1uJ5!Z|5Ce;Ec{v&1V%SDVO{{@Xh`N_28zmRz}AI&WR=_M+-MlGS6B@cg{ zJH-$h%1l#BAo=COaXc1L#}a79JdDF4>RAHHn2&y+JA}m|s#@~@-uKhT7%W3MX=cgw zk0;Lw7)Hs{%#s_QPF~B*0A~KFd%ce$yx=9@9u|ZsTZOL8C}LY#1a5Qp0Z+tH`e#B}jCW2&pMb b3(Noj{xX5IsYOnN00000NkvXXu0mjf8~>=9 diff --git a/TMessagesProj/src/main/res/drawable-ldpi/msg_out_photo.9.png b/TMessagesProj/src/main/res/drawable-ldpi/msg_out_photo.9.png deleted file mode 100644 index 7291b7696b2f8992ef960a4dc203637154f5c2f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271 zcmV+q0r38bP)L?tDFc7QNU8S16s!X1iYdaN-!S3j0FH5Re*>+NOE4 z?9nR}a8<`=87jnY8l}Wz8mY}~9IY#86sd;|gXBPJ_|0M!`E{cNF{(PWCIGpZ0RRli VKQ{s&a&-Uz002ovPDHLkV1n8{gXmwi0*ec69}7^LRpmnB<3dN2)ha9}z4W$AfBhM?o) zpO%~g=|wS2TrZZJRD+=SkCd@57qVgh1&u@b$u#W0ka;v8)eHma9W`v!uu;QC4I7Sz zF_3H6>2J&aVi*Q0dXKzce2G-U4!>J;7QNU8S147BTV40RSa1wjOMM|^2uKY`ZQ-mY zd-MtgT-EVeh6?eUMk(=_Mrv~#N9zh2Me1S0AUTj4ezRCbe%&ZRjH(W;2|zAp004B8 V+KH+<#~=Uz002ovPDHLkV1h8xY@7f9 diff --git a/TMessagesProj/src/main/res/drawable-ldpi/msg_out_selected.9.png b/TMessagesProj/src/main/res/drawable-ldpi/msg_out_selected.9.png deleted file mode 100644 index 4d0027c34fb9919def8fe009978dfc726d450b69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 377 zcmV-<0fzpGP)P000~a1^@s6lq3|;0003%Nkl2kw8hSmo50rMpglUH0+J_htX_VUU`WUzThE=^@?{2M3muUzVOHWH>rL z{%Of6kY1uJ5!Z|5Ce;Ec{v&1V%SDVO{{@Xh`N_28zmRz}AI&WR=_M+-MlGS6CE#Qn z8p=#lOF;O<=OxGSSVSF5AQmk?jKd=8Spv$KKp!2#Vi8p>`G54ol4A^(p`0|ciF zbxm~?Mb*c<gYDsEfaW*O2!()5t=C73Bj-viCtpT zEhmbkj4LQM2U(so3@@&dwTqMJkBmL7-PDAQxFm9|F-Il!7;3J7N$&P{rH&cM#Bn)7lRvDcYm$mu1)((DhOgOCh)m9aWP}M3td*MY9 zhNEIg6l57f*x`?g!9Yw9!+~h090&*G3N~)KSTR*p@vRfzWo&p~tQ2#Qf-NUyStFG$ z=+9c%aFC@v|Mca|^8BrZ zh3Wf?i?#An)hQo7&gOFC8}C;)qJifp8>(xk#%~V3IXHQF?dR5D^u_Ap+b7$;tgteF ztl{o6@x-j};k^qN?+gOr_91!cH9XM#sj(RLkB-7$Ti-u#Zf~x`p2^u3D*5%t$F8F{ dz!+6kLp3}&-PGH6<%2i)@s3`3`TW)EzX89lY%Kr) diff --git a/TMessagesProj/src/main/res/drawable-ldpi/newmsg_divider.png b/TMessagesProj/src/main/res/drawable-ldpi/newmsg_divider.png deleted file mode 100755 index 12298133fad8f76587cb855614296676e96d9e17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^oIotX!3HGbZ;FQkDVB6cUq=Rp^(V|(yIunMk|nMY zCBgY=CFO}lsSJ)O`AMk?p1FzXsX?iUDV2pMQ*D5XR6JcALn>}1{rUg@za$$|LuVt0 q!K#c9!Mmb{Mje^Of$EOZU2E+Rb17wCLyBV~-6_7@5pId+GB}pX;x`K7IGS+G_rJh0_<3HhTR2 zYiBCeJ6)Qu{bkY41|8>*Uw7PoyRS5N`)$^r(hAjkGDI$9XWD*Scm4zRB%e=<58TNyTN$_h zzh$|B#FDR7b7!4ZJF&@hu3zyMrVqu1HVbaQEsI(k_Vf3P604`jt>*Hb&~k7qoPJC; zdQR{g_Gc+ZC*vK%7(T@xD7^czf+aHb1e36e$AtgMlB;J_?FouWmt38~eY!AxUsMf; zjt)00bbc<@#u-SkAcF)GN+^SawYKSuU0KN8P39AP#Z;S?XkG!vFoUP7pUXO@geCwy Cj?t6= diff --git a/TMessagesProj/src/main/res/drawable-ldpi/notification.png b/TMessagesProj/src/main/res/drawable-ldpi/notification.png deleted file mode 100755 index 2fe4f6b4e5e2afb9bef2fd07feabdf0a33320f0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|mUKs7M+S!VC(K#9UIO`&C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGejYdb&7C5;uo>klPZhv=oNB2&1HYp zW#2fNYxH{b9&e~nn-w9o$#MFJj5>}Zy$)+QLT5Lq)pMpz&=5N-zrgHva_7Rm5m&mK zRC+G5+-{t~>%NJB^_{#9o1}4~XOyDDn|9@!t;~kT>sU0qlym%;HtNmlUiT3Z zzH;SdhIXlfgu{EbF|>z=G*}3q>N~nH&9Eqr`DPWfKUWyzqvsJ%@(#rGys3{B+I)ij ziGfRhoU6=B7TGthUJD|4o%G!F9&$viIm)5DmCLMwftexa`1HdY^terd0m0zu>gTe~ HDWM4f&I5>G diff --git a/TMessagesProj/src/main/res/drawable-ldpi/pagedown.png b/TMessagesProj/src/main/res/drawable-ldpi/pagedown.png deleted file mode 100755 index 4689dffd1babc35c4975f8211605cf211001edf6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 731 zcmV<10wn#3P)^plnhN1HONswi;`nvVpcqT`t%XH{KJP2@5jf-uidd@N2-K`gcMzJ znVg)QJTS4w0m0JOuV24}iNAR9;#p#1;>wL1Hztwe7>csJw6wI`;>C+&f$3!N$B!RB zynp}x4KUF!UAb~)qL`SNBweySIsm1Q>C>l2MMp=^20G~Hh7B81MMXu$DKQh&{7?eo zKw=dC|Np;-EK3*}ONcG%hIZ9~oPcSihom$FOsw6bwf(4rD0L99%ptmN0#-8|GFG)1 z00Npj$iTp$@ABo#SJc$hG)|s8SqusZn4G=6z0j2_SF$`kJ)J-mZCF^?G@4c&$YA#D z*;c?dk1q=g3+wjn+xGz-`7A#_KZKo~onzm=eTRWf-7Ub-{7a&->&bQy2mo7;;&bQD zjTaFS5d-mm{P^*$rKM$gYisLuGBX)v4uZCgI8L29mCX$Vz?S4xVCcN1AlFmwAS#3P zqa`&l4*EKX-18OWAW(bd)*x^U$PF(Uk()aVh!HhaXA5lGa#6d~os)2=x!6h4AMivQ%MNh>!m%TVx57fxu>FVdQ&MBb@0FuBi A-v9sr diff --git a/TMessagesProj/src/main/res/drawable-ldpi/pause1_pressed.png b/TMessagesProj/src/main/res/drawable-ldpi/pause1_pressed.png deleted file mode 100755 index 4ef1f6a726113e279f99b48d0190c7dc38900514..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CH!3HFy_x^nYq*&4&eH|GX)}JtE?Rp91OP07s zlmzFem6RtIr7}3ClseUmAGnPVPbH}MwgLAg5gFNpLp4#dv}0Z89ZJ6T-G@yGywn* C?=T1e diff --git a/TMessagesProj/src/main/res/drawable-ldpi/pause2.png b/TMessagesProj/src/main/res/drawable-ldpi/pause2.png deleted file mode 100755 index 81282874391d538b7ef564f866238224b514c97a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CH!3HFy_x^nYq*&4&eH|GX)}JtE?Rp91OP07s zlmzFem6RtIr7}3ClseUmAGnPVPbH}MwgLAg5g;cpSW1s2X>%V22WQ%mvv4FO#sy- BEzbY| diff --git a/TMessagesProj/src/main/res/drawable-ldpi/pause2_pressed.png b/TMessagesProj/src/main/res/drawable-ldpi/pause2_pressed.png deleted file mode 100755 index b6fbdfd5baa775f32a5b1a1767c80dcaf31dc43c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CH!3HFy_x^nYq*&4&eH|GX)}JtE?Rp91OP07s zlmzFem6RtIr7}3CJY5_^DsCnH`2XLYS!f&MBV&h{ zRvitVBfA?bLw3LcyHPX7|M6}Gi|ik z#3Ibhd^klRjpb1dTS~)uzCG&>z2xVaZ``ysk&%IsjUnvgvEUw=MH7KGGI+ZBxvXi*m;8dl1Pe@zZ2Sp!#032XvD3~;R2890ak^24UKk(}DzrjSaCi^; zTpg^$^08ezuk;L2b?Qgw{vCzMXAUfb+h87C2UqBCKfww30uI1F_!{=lhQr~1zmT;@>IWakeeX+KMrc=6N?g2UlfV1_dzwOpw`(IkA6m zp%-8(PHRz$|4t~w^G9V9mT9_nrZQwSr&xks`o)F5$qI29eAv)+{k}g;B$!m{M5POP zBAKw&Cz;PGRR@v7H@jM`rj44wqEx+J*JA9}hYB4X&t!IMesuJDz0ESJj#$&HcU zWncOdkEzbeGl#g&zVes-y9rqFJL2_Yk1pMLWk3!WLLL=ydBwqSdBHn1uPAqOklBUI z{|k1|%Oc%$NbBBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFe_z-M3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWv2L<~p`n7AnVzAE zshOFfj)IYap^?4;5Si&3npl~dSs9rtK!Fm_wxX0Ys~{IQs9ivwtx`rwNr9EVetCJh zUb(Seeo?xx^|#0uTKVr7^KE~&-IMVSR9nfZANAQKal@=Hr> zm4GgVcpgi&u1T;Y}Gc(1?$-v3X&C=A^#Ldyv(9qSy(#+i0)zs9@(8AHo z(8R(Jrq?AuximL5uLPzy1)4&F_V@SoV zGc$big&ZZ0mlt*icIH+JF0Sp|aLqYd+TfZ;g{RHe))p53)ZR`x+b_i*IQLANam~#4 z&BhuA=3HMN{%gWaoUxfbp^KMgL^J=jPs_OG%f0)6-oMHAEe41G%$Pa1a$fuMFRSIh z9dh2l{jT-==J$LL-hW8n!SeiJesA5Hu+@J*&%Dl&*y#Syv%~w$RrxlGArYld*Vw~d2 zX>!c(Zr;h0eD{PG?2h?v8p*zBcjko?6Yu10Hx=vNIXkyNC)%E|)9T%_X$hNduGz9_ z(w^geiRIIlQ37SnCYPjYsA(vt4=<7du7P0eQXk* zoWXk2`M>;8Y;2t?KAYFX-rl~HaZ}XVCKb>1S94|f+-1{tMCfc|VV0eD__Re%_LWsZ zD?>j2tTB}8?fY4?Z?>|s@>L+1B$QTM{F#NVdYP!iC2=OHW$IfZPrrTpc7B7_iiI3$ z$;r+_t{Y<|f*ccW9^5hQ+Ue7$Q}^sW5LY$FLq(3GDdFSqzvizD9v1A7mAJ%r_JaP8 zdDkw_O5>8=W?^k@ZDnYvc^_foVo~;_W*C=a&az*Fbm6E^HI5!tBF`YW? zK{ngL3yiy0m`)8#+Zg=cd!wVK{^^@mfqkBvmBOxbh1I`b?kB#+Py1!(nkCO|7BAU; iT<rac3n8VU=+KNwmLduzUE1o>se>-rvbyNdT}qdRf^NfuQ@8`dDWL zVQpHR0znoCn-K-Aj8U891Zr5(NFAMQHoMX3bar8>-)l4)FVgAs1NK=o8ePWwocgrK zXSG^=Cc(`jmX2GatP+XDs@v^;SS%L5B$LU!)oL~Pe7;9;zwP(?^Fr@rGMRLtP+$g? zwN`6O5Hyd1ZjQ3@cs#4kX7jtt<$BKSR(Ty!xz*A?kki}=wly7r#q^1#rF0!@JvQA zXT-;a(6&(w*imjOeb^vnb+(h9Z4$>ZDRPLV+JO~Cs=!1KtoSgJPGyOVn$VG6jTG&# f)R;$le+3u-bYm$KR&tBt00000NkvXXu0mjf8VG({ diff --git a/TMessagesProj/src/main/res/drawable-ldpi/photoload.png b/TMessagesProj/src/main/res/drawable-ldpi/photoload.png deleted file mode 100644 index 5c50b3de9d35fa2a2f50b85679d7a919546176aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 708 zcmV;#0z3VQP)L{SLPz2jfmn#! z)B_Sp=1v;);*o>64?x_q!#M8Fhv3G^BRecE;lgc_eSwXD#*+yqy2HehY|9KIMja0J zf0Bo#Hfs9PQuw>vT_UGLFnB4uo|O+O&4S&zQ(33%j$hXY5o+sl^MR~twQu^T9Vw) z5~>t43(00vm$LyW#VGWgXWel{{iF&%#u*lLqZV}n)HxRNHHv~ypRWqFx*^l*ly)7v8od$da7DUd{b^R(32wY?` znYCy%I;C{ii=EQbPg*UOrwqZp%aeBkboG^DP qb6mCCw)ChPw54|>32y2A6JP*y{K{?g@)(u?0000JPgmbK1H2#g2{7lFE{Xi(Pz4Q@FLy$Ij)M)52g?fMT<{D^pbXkk7+M1b z5NH2W9bAIipoT`l4%lMR>IM|SPp5|?T?S2oeX!1=SCZD?189XYB+MLuMW#=)^k>UK zQ$a&xU{A9dsY$Q`?){5BXlPf{Yw9&q)Aahh?d;!8IW~Od=(qnEa%e}HQbBr=hBoQc zHKjNmyq=+LW?p%D_=&qIr83fW-6QX0b)4g{&-zGQNii`)S%tevr-X+rSDhWrN(n;? z78y!#I-G3LJogn>HfWqP%fzYdv_;>-(7Q#3nw$!9TlC5)9oV8LVW>jsz_f&iio7xo zDQ6j-9dIJI{j~)%RPvV}Wy(#aR3{Ifp*Dp$Q!2_r-(Tc6D5ozC*~~4t>XtfcRB#XL z!WFsyqE`%RQzTiZ+@yQmoPp1N$+blbY!%FCGV=mX!AIC^FHGH0tWIiZHk^06)Wg)$ z8Om%?v}43>st($Y36?2?G_2$a9BIQUs2C-cG|gJ4mR_AM?Fv(D>HP{Y04P^n3Dh_| QHvj+t07*qoM6N<$f*1(@DgXcg diff --git a/TMessagesProj/src/main/res/drawable-ldpi/phototime.9.png b/TMessagesProj/src/main/res/drawable-ldpi/phototime.9.png deleted file mode 100644 index 25bf2e271af1066e6609fa279c0ef816174c8dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`2A(dCAr-fh6AtkGdwjs6(N^I1 zqz>5$ykAv?`GuJO^-CFW@FYmcu~`Jnn)z>XrzFDyuA~_^j%b+z^)h(6`njxgN@xNA Dg)bg} diff --git a/TMessagesProj/src/main/res/drawable-ldpi/play1.png b/TMessagesProj/src/main/res/drawable-ldpi/play1.png deleted file mode 100755 index df10a3ee1c824618bd68883ce6dbd4cd7b066448..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 285 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CH!3HFy_x^nYq*&4&eH|GX)}JtE?Rp91OP07s zlmzFem6RtIr7}3CBEfI7VI6a|Ns9# z@4%Cml#t-T_UQJ!&vQOC&Y0QAkkEALkAn?khd!g}P2t6iY+D+BFa%uAQkZslS)<^K zfB!9be)An!>u_hgZRY**7&8TCKZQKTN2?ufGj(oclzqeSC`L_5w0TYmOUL|80t+it z1*S9p{m60T;PQt?CpaBi**~&sbJVbCvLrc|9KDe4&N=WcvdvrUhH~e$sjG2uL2~C&&IM^_D=rfw$6kg28wx!_*L%`)Mg=xxe%sed& zA9)un%Tjoz;>OI;AhM0&W9Wiq4l@*#4O;#g3$T|l6zU02?Ap)#QBa}olvB&2sSYt^ zYvX5KaWCj~Q?@Sd}6kq$AOAwT%0Z#CdO-e|$S;scYTJY%!z hv>Pq#hZq>y7p>mJbY44$rjF6*2UngDGcXD$E$ diff --git a/TMessagesProj/src/main/res/drawable-ldpi/play_big.png b/TMessagesProj/src/main/res/drawable-ldpi/play_big.png deleted file mode 100755 index 5831532493265927f8a245fc45ba71e3815651b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1894 zcmaJ?c~BE)99=*}K-vgs0a3Rr9S+HbAvA$NLV^Mk3?Y!HfP`d$2+6M5#RQ5P3TqoDU08fde!C;hHo&k$txiWX<1vmr% zY#^0HhRcL8Yz3mG$SoL(UX2oL00;@wqjE(SjDu-#hDyVMMoyfDK$VgMNdtv6AWw=69Q@&mxFqBwgzMCInX;@HZiwsQz7sj1kd6?@12qf zMIay1!eAg}K3PGd(?KSaLT3arnRI_JfJP6X(ukW$rZd=qOm;vJ_~C*GYg%PGTP#@c z!4|RNK$$p>vZ+*^PDjzrry$x4DxJk*Su_Fy$OM9nhpN>d(HJgXb0h$2S~ zYw&Td@)MUnA=lChYLu`nfVHYsuyTPGQG@S7W~(OjgY-UqI7LSOg`Cgf5HXQ-CK z{;SaATSWI*rXSmuSbS`JSVMHXmS}6FV|Ej9T6&@cJc+(%V5u<1C62V_b-U%WQI%H4IJ4N#dMG5QB*G<> zxB9Bp+Wxe~GQ(^=wLP*OicUF;2G_3#@-Dw-1kd@*X}@t$KWX4j?N;a8sXDJy5qBL| zy7Ce{OD;&jg}q*-~!cD}>wE4;e#z}qQ4E<@MKn42F898AUCPTG9Y zhR_lFV;#_v^2*Avy}NduALJRPt_}r3cnD_;iSt|jOZuK`E1GLOjla8?QkU!~vzlDU z8$rMJpEYaN(FDKg($S)^T5?B_?_Kx5Cz+K2?oCZiKa%!^M!aWpqCKA*2hKioa}^t`DtltqWs4YzwnYiite@$pv|?YVwGJ#*DU!*`3$ zwWf?X6h$w?u%|MRl&W5{%>k_vHEvdMCK<2TUAS)(v$b+|Wroq{ZeP2lB(UO%Oji88 z=g@-(GxzV?H(Xy^o79h@yMNttV(0$CVnbP(y?0TYw6(R>7}8c0=gd?OT|B4QxNSz7 zxXSHCQPakoF)^ii18#8Nv}dDS=^gU(q@oJpvmCpP>ungF$)sb3E^fw=Q>1o)wPQ0G z@HbU@Z2^w&d+O>K(jd249enUF*L}gQvEjjUrR&k22UhqR$`kJ1*9CCW;1{+~pY2^g z=L3d1c41LVNVCe*er%xLCaj&!b3V6yv;cZ>>yat$(EQ&vRZ4*~+L!YldD>@XVN;LS zDR(Bki1UuV!#GyaU75H!!{r#I#<@U)hy4US9ZD2B2eG2UgP$kmuXr^3#k?xVw-+lp z+Y25h*LlCJzp+bX3d!b)?KsM}*i7lks{^!G(^G*^fJ81!DOqm$^F>9(3igMmuKNdd CTj3Z0 diff --git a/TMessagesProj/src/main/res/drawable-ldpi/player1.png b/TMessagesProj/src/main/res/drawable-ldpi/player1.png deleted file mode 100755 index e49d95d949764537aade8ccf87829e876e153439..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmV-$0gwKPP)h9u34?t=eNj12zZ@y34?1Aw6l68Ma) z;vdiNH4H5O)&cRFf4o38W^7=jgQq~u2j?;W{{eLN0vs-Qf-Mjqpt}MGcnieOF$@5D z1LWtEPzAWa3m`rX^)hBkL`qbOKuQvtaQ;F4{1~Y5DY{z50nd#90R{l+i&bzNS_m)z O0000p;?-djhV2 zB47<7$N<|!6?YwVM)6U1afm2x*FbcP@X)LE2n?d}(xBo1Nfj;LyB_%jt0KxOp-fwe zEA{9ukVWs&5Q)yq_^f#z=)gqx?n*=7LgA(pe?%A`>zw$D5%x;j>a?do8ln;b3&X?i z--naSJq0qT(zZ4UgI>HGp0El~;jHsfvk)RM)uekj{A0YqIWK^q_;W*e3$pXQ1W-#^ zbT5@};syF$k}8Is0&VIugwqtlQjnklVG4Sk-r)hxn;paLuEnqe7|EHAnX{zEZR@B;0{4gRCJ02r$Ofv)%r zWb(n4h%u}I+6ar&YQam;0J0dAJ=HO!rotaVB c`A2{O07t`|31kcPod5s;07*qoM6N<$f@E{!&j0`b diff --git a/TMessagesProj/src/main/res/drawable-ldpi/playvideo.png b/TMessagesProj/src/main/res/drawable-ldpi/playvideo.png deleted file mode 100644 index d03cb384ef608e267132dc00c679591d05172614..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 795 zcmV+$1LXXPP) z+d~t2kWo<$3dE;kWza)!O~?o#L_vJP&&#>@9KPK9JLmjj+@=qzvxI6>5D3wQz4M>V7eZUUDGU%dy?K%d3X zG;j|%O~#|IKoa<J*}fWt3R@(bg`riKk20q$eqY9Si%Pk>*80o~9Gw}Ep+JDC9! z@M%9obT=&%?KO*MR!43~z#yI`lM&rK@94QTFti9??2KlCl16NpAD3{ACPN(xY zM^j6KD}mlkbF8!NcDpT`&H7TQ)OD-XYT#gq?raM+WMjCS{*eyka=ETmtJOd>8oeNj zq8dZggH0Ue>-@KO&1O?56uMKd*B`pwZZ&7v9Ch^wm|>kMNz&s3#z{V(U-SF@tEEz@ z$GB`;#KVc31VJDUhvQR@&dcWV7R4lbY4b`wZU_Pz)K$%RY z==FMEwcG7owSSv>(PJL6fpwN*RVtMl9DeCsF1O7wd+Z3Z^y4m>teyiObh3ooK923r zShM|2&?Fo@Kf$lFJ)Bc_uuh-V*vuO6=Af#hj>*1RBQrFRpUG?fLtiM$O|1Z@#$@Ij z@Kk9jEw5si4@5}sFeszUpWxJsp5$4|+CgV_q#l9`0|MyNPCh;&3daP5&SV76Cd zV`5m6ATRgxt^#YM!ymzJl@k+>`Z%n=!*0aWSRowpK~rEoODE&gI0hC8hB_AMuMe7< R%z&0Nc)I$ztaD0e0s#9(NFV?J diff --git a/TMessagesProj/src/main/res/drawable-ldpi/regbtn2.9.png b/TMessagesProj/src/main/res/drawable-ldpi/regbtn2.9.png deleted file mode 100644 index 6f9875141847a58f246946e6e3612646cc6ccefa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^N+8U^1|+TAxeo!U6i*k&kcwMxZ*1gkFyL_seD8eB zC28V@aEazu2CN!EReDbMFPY}O+gf(S;+MwbDYvd|GLM{eS6@ebIq#&qwl3#v1Q;2a zSU3a}92yuvj0y7{lhjVgxc><1Kg+sv_wV}7Go9Q@DMkh&t7Mh|?PKtC^>bP0l+XkK Du{Jax diff --git a/TMessagesProj/src/main/res/drawable-ldpi/regbtn2_pressed.9.png b/TMessagesProj/src/main/res/drawable-ldpi/regbtn2_pressed.9.png deleted file mode 100644 index 2854a90e359dca1682d16316a003b4f86ec4094f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^N+8U^1|+TAxeo!U6i*k&kcwMxZ*1gkFyL_se9!n; z$&kSyd=uZ*i6RR;UKR`fnzpX6c>Px8Ul$jA*&LG@eO|>q>pQ!4_ifgdcXeIP?Ga#P zWMbhEP;h8q05K-acT7?{q2m5yV!8B^lI{P6W(xCv5zkVcE*H89Xdi>8tDnm{r-UW| Dw#PI= diff --git a/TMessagesProj/src/main/res/drawable-ldpi/selectphoto_large.png b/TMessagesProj/src/main/res/drawable-ldpi/selectphoto_large.png deleted file mode 100755 index c0558b25f428a7ec04acd005b8f18e47429d68f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEa{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i=;^mK6yskoK&=l_3uW?e>M=H7!V zSZ_242zh8p_0LCAn>SV!5+T*lU@B_c~`?PX+V+20|;0EE{h~?krIeHR!u`k~xpjp@ETM Y+l@Y<8$t4}Ku0rpy85}Sb4q9e0OM?6+5i9m diff --git a/TMessagesProj/src/main/res/drawable-ldpi/selectphoto_small.png b/TMessagesProj/src/main/res/drawable-ldpi/selectphoto_small.png deleted file mode 100755 index fb868f48434c4c844e7e768be4e6f086d3c17fc3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|mUKs7M+S!VC(K#9UIO`&C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGeg@JzX3_DsCnH`TyUZ*_7e&2BQx4 zj{OHJ6`D^R&~o_0(y=!&X^O-q!H%0JOgUC7E|F@vED*$VD4S!KW08Z6WXDWTQ^A#94 a3>bI?Jtlm9Fi!#K2nJ7AKbLh*2~7ZLB~Nw$ diff --git a/TMessagesProj/src/main/res/drawable-ldpi/selectphoto_small_active.png b/TMessagesProj/src/main/res/drawable-ldpi/selectphoto_small_active.png deleted file mode 100755 index 1b18412d62918cdab3373d1b924957c176591716..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|mUKs7M+S!VC(K#9UIO`&C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$ZGehuJzX3_DsCnH`TyUZ*_1(;dFp`$ z1|98EY%3W)@+y35>uzA0?XrgHh<`(cvcTqpM^+|rtYmv=(jwCQL8>Wlf{cJaTT)sO zucNt#Y{z`&k69{*JB(OnU!TAmtbR=(CXvPHfv7+|^CRCQ5>5IWY8!tTZER~Wc%1Q0 eor8gihkBx2QGD$6BT9U_*nZJp*NvepU<2=*HyiGh##wsSdx^Kl#vOP3z$!O+~WMb0s z=z7`^qA4KGAo@@Bs6dH$AyXlTz|pEoE|kpC=IGHT z%a#<-bep+IRnd8a6pQH@agVKx8x0NH9++gbJg+NZ5J+HPZVh_ybG5Q2(3uRLu6{1- HoD!MbP0l+XkKubCc$ diff --git a/TMessagesProj/src/main/res/drawable-ldpi/slidearrow.png b/TMessagesProj/src/main/res/drawable-ldpi/slidearrow.png deleted file mode 100755 index 12fae28d7b07f620e25b98f1393db253be83b552..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)T!3HEZPnf;}NU@|l`Z_W&tUqDS+Vv91mn?CO zC<)F_D=AMbN@Z|N$xljE@XSq2PYp^gTe~ HDWM4fAkSF# diff --git a/TMessagesProj/src/main/res/drawable-ldpi/spinner.9.png b/TMessagesProj/src/main/res/drawable-ldpi/spinner.9.png deleted file mode 100755 index 58326c446847d9a06e8aeb46cf17950cc95d76e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9Z!3HF4IP0bWDVB6cUq=Rp^(V|(yIz7MOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i=Gdb&7s&2Z32;)xPvvSGH zQ@=E;HC?EFZNM>s_qrvE)&%DC!se(6(K$NpchkN*#5wMrke1o-=BRMl_lcrHW?7n9 rS5B$h>%O+Scr*J}_SHu_SR@!qm1X+32liJ09mU}3>gTe~DWM4fzSCG? diff --git a/TMessagesProj/src/main/res/drawable-ldpi/spinner_pressed.9.png b/TMessagesProj/src/main/res/drawable-ldpi/spinner_pressed.9.png deleted file mode 100755 index ac4e9818640b24fa8603ba9f908ad9d98cfd118f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9Z!3HF4IP0bWDVB6cUq=Rp^(V|(yIz7MOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i=Gdb&75WMhAJkYo;VjBE@ipDRcS{bbw+bQFW9tDnm{r-UW|R5@2~ diff --git a/TMessagesProj/src/main/res/drawable-ldpi/switch_off1.png b/TMessagesProj/src/main/res/drawable-ldpi/switch_off1.png deleted file mode 100755 index a7e03809b4c007e686fd4defdf61b25cc0080772..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 441 zcmV;q0Y?6bP)1y!!<)s_#q%o* zPRcp=-s9er@B7!LY2JVmk|cp)7(ki#GtCf?s;XcGT+VPnID+_wT@nRB0ES_Hox)RX z%6+K;$8ob--}l=If@N8-EQ=IbUDw1k8i?bV+#|ZK6aA4Wia^t}S#2eq@V6jTRRx~s zAq+!e9D}iKn_NKGJ zD2Q?Vdkh6>nkMN9EYX)K%V8~J5V&7JFn}aUcDu7Yd7k%0`y*V}J8U}fi7AzZCsS=07?@QuLn2Bde0{8v^Kf6`()~Xj@TAnpKdC8`Lf!&sHg;q@=(~U%$M( zT(8_%FTW^V-_X+15@d#vkuFe$ZgFK^Nn(X=Ua>OF1ees}+T7#d8#0MoBXEYLU9GXQxBrqI_HztY@Xxa#7Ppj3o=u^L<)Qdy9y zACy|0Us{w5jJPyqkW~d%&PAz-CHX}m`T04pPz=b(FUc>?$S+WE4mMNJ@J&q4%mWE% zf_3=%T6yLbmn7yTr+T{BDgn*V%gju%G6e!>QzIi&XJa!%Lsw%*b5j=!b2Bqb3qw~6 zV^>R^bL5U%^0BEyIYEfocYKmJ?ey#%8(^i?d z-GbXZsNNJTZh`v45T{%8fsWA!MJ-ZP!-Rn82gHOYTp$OY^i%VI>AeV;u&enbZZa@1 zx_i1fhE&{o6CT^`8X$7FSkqNxX`2%Nt6!#{lb0|1!?&~|Snf)woXFkPzYWUgw)L=m zepWoy;#&9CZ#Q4(cGDta;c;;(WYPbMPY^WmFqqYXYI{9uKn0DbtDnm{r-UW| D-uSLo diff --git a/TMessagesProj/src/main/res/drawable-ldpi/switch_on1.png b/TMessagesProj/src/main/res/drawable-ldpi/switch_on1.png deleted file mode 100755 index d0f8cde4ab84e2d2476dbe17151b8c99eafdb994..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 491 zcmVz zkYQU!_{lIc?0@+ep6oyWW?<;K_8S}sj^fO4b)dkJ;$&oqR%9NY0Ri&xbF@4T3l!uO z0V)fYJ@^AoL7)H`(Y40X`+pfe|M}05uEsL50|EqkuKfXK877Q^bI1n-DDSKBp*k1j zQCN0B2cW8T)04jpC0Z=QDrn@ zp_K1o)hMib1O))7=D-C&H4CWVB&IrL1ol4v540yejxY~+K#%q{MgsyfAhr&)Bg}*b hHg{_A{eJ}zU;xHSeO!E#MQ;EA002ovPDHLkV1iMi#tQ%d diff --git a/TMessagesProj/src/main/res/drawable-ldpi/switch_on1_pressed.png b/TMessagesProj/src/main/res/drawable-ldpi/switch_on1_pressed.png deleted file mode 100755 index a58b8857f9b4a99336d7338e0c50d7416bdfbebf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1302 zcmeAS@N?(olHy`uVBq!ia0vp^PCzWg!3HGX-{O!5Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?@QuLn2Bde0{8v^Kf6`()~Xj@TAnpKdC8`Lf!&sHg;q@=(~U%$M( zT(8_%FTW^V-_X+15@d#vkuFe$ZgFK^Nn(X=Ua>OF1ees}+T7#d8#0MoBXEYLU9GXQxBrqI_HztY@Xxa#7Ppj3o=u^L<)Qdy9y zACy|0Us{w5jJPyqkW~d%&PAz-CHX}m`T04pPz=b(FUc>?$S+WE4mMNJ@J&q4%mWE% zf_3=%T6yLbmn7yTr+T{BDgn*V%gju%GPf{tHZ-;{Hgz^OGc(Igz0t3PcF?(%`1WFO+n~2!KoLN7;+1MHoK%2WtOF;xE1B+Du6w0m5JLehB(cG z>P^Az79*T`^?{Dj2SqJXRKtXT=?BDwCtM&0p7c}mfa$#mn6O=*CjVk!VC?X8aSW-r zm9(?;^))v(Ha7bP!@AIGEw! zz<4^KcmtQdGBdxnigs+pcYbF+mUlJ(`jzq&jvV>$=yrXZxcxu=zYPx(Qxi0lv7M7_2Y!%(*SH!v|DS NdAj!aSKi~B(3Jt*f=lX?|)Ct dNX}_{7{0BXw&J34r4P_l22WQ%mvv4FO#t|(DIx#> diff --git a/TMessagesProj/src/main/res/drawable-ldpi/system_blue.9.png b/TMessagesProj/src/main/res/drawable-ldpi/system_blue.9.png deleted file mode 100644 index eb9a4c81434393127cff333d137786efad878657..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3I*Xipc%kcwN$2?zN82{&$Jo_!{> z$!zCey=^=HDlSQyU^k&|2kR55mK=pU23|Z(iL)fW)nC~Vc(`p=Vzarm;f-|vf~7|k ufQk~QwbnX4k>a?-eyKku;oowmGzNy4E1z0x4k&=^W$<+Mb6Mw<&;$SkdN!p1 diff --git a/TMessagesProj/src/main/res/drawable-ldpi/system_loader1.png b/TMessagesProj/src/main/res/drawable-ldpi/system_loader1.png deleted file mode 100755 index 6823c3748ea851c531944d2741ffb013a59fc1a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 485 zcmVHh~lcJy0ABZ58#E=Rj)UZNAQ>*vD8Q7L} zciVR6h37)t^_h?3%rVN43c00Ouz>if+z5Dd2u@N`ys5uP zvza)v<6KfHv%s!UlM;lBPFe9EdlY65^HOGU)u~L5W=FEjAIdvwXc;$5J{@!lf)k=4Pm zRFE~St^;8&N#=>9q4MV%LO;5AI41>(n3mSMIZIX-ip(K|wWw@GUZ0JeLAV%}wdQPw zG%0}tBV$#2%5L^q9c8tY|D!zNYuuu&s@$YX*}5ZH#q61jls)Axo=e%3vY{i{H)S7= zWbc&q9mxiiJ%PZoXbgIk{eXMRvM%nniRngP>^8y%ybYiFtnR{sh}(0Hs>adF^AX$> zEW3i}HE!TJGWSo;iY_6#OEX>VfK#wEhlpF!hNz!qZY;^%*!X8Kn$_N2HiOxtEVA&$ vw;>bpnmqIKljj|H11~%rAeqK3^e4aoXzN_UVNpSI00000NkvXXu0mjfK0(Q- diff --git a/TMessagesProj/src/main/res/drawable-ldpi/telegram_avatar.png b/TMessagesProj/src/main/res/drawable-ldpi/telegram_avatar.png deleted file mode 100644 index e56bb3a37ae9fa034b1ee9370ed799be413a72ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1305 zcmV+!1?KvRP)(FS(JDZ7xzj%POZQNfOK%1-3uvX2;LFJd;USG?<6poH@3oW!=$ z{FJj*Fijw^kf83-5dHl01^qQOPm#Ey`S-c0q?RW_=~p!bmdXV9D)1(D1H9> z3@yXPr^TuMSsI>=$Pqw>Io3Bt!DwQ|$}C*=)81)bYYY=WsvHZhyvjgeYsEua0#o5Q z&-1GV-#!S^ljkvU0+((FEGtrKfQ0yXYcX}azn(taVLOu>p)ci5&$06Py!Y{su)GI6Iv@dtwZeej0~-sl+Z(jXGi zp30zf$rK~S;+kT+;RVrZwp<;juZH}>`Uw?P7B$5-bpo}F0OmGEfqV`D*!=w%-SI96 zxR1Qn+ES9QP5?!zZms;}4Do?3N-H)|P1U5azVUW)YsCP7!ej;r>}wh>A{)HiwkoH7 zKkxz5F%n*sg7ZVZwDEu^(>*Gmf?H}``UEgsYN{?YMF1TgTGDjV!55Kx4FO4BU1SsM z$d*c08K5Nv5wp@EiPpLj@s<+7f?1^*z=h5Y`dN_Ad&nbJL3U#j|h&EanUTWsFBG>ZNsE@q^LF(H$krJ`2Kq;l_Fp688KJ3Tw#Ivt6b1 z(VJpP#PAD_w!UdD88QLHOM7D(&-sEd{)!34w-5OE{K!hc*H6}ajCOnD(l7b&G&=s7 zGu@pbQMA^%d9N)2c>+nGndxK#4gIa&EI)~@o_u=mjWt}`q>~5BN?7Fmj z2L$*IR2SK)h!vzwZabgYEtSNphQJDd7cv`VFKjS=f*nZiS^4ia{|hhxc{?xDG}7*8 P00000NkvXXu0mjf4pVUo diff --git a/TMessagesProj/src/main/res/drawable-ldpi/tooltip.png b/TMessagesProj/src/main/res/drawable-ldpi/tooltip.png deleted file mode 100755 index 4385e07b484dd4729b68d51e0a82561bdd60c7c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^VnD3O!3HGno{rW7QY`6?zK#qG>ra@ocD)4hB}-f* zN`mv#O3D+9QW+dm@{>{(JaZG%Q-e|yQz{EjrrH1%6?(cjhE&{obIp+JfB^?<0B_-m zE7@QEnZLer&}o&c*YmLUL*hOLhnrJzwX%L88WrspOKAWrIv6) T`V2!8pydpnu6{1-oD!Mq@WnZFi(2wozhh1-6L;-RC$u`#1RG3+Y(xfMt7&E|c z&Y5%hD}Vm-RqB!vsblsZ=$`|kZ`}})dsKb>o)vjnp8gsTRg{_U8rndX<@1kaS#Fcv zCQi~r)+$g>rJsVSqL3?x5!WT7Ps`$X6n=&P;TZad$@rS)(uRZn-Fyl!iUsPc z>is;Jk34v&PD~eLUo6mK;xla;e!?LW1*G+R@DS^cEqy2oNToa(fNh8Zx=e4T>L3aT zHHHI7Aw(R|TdQ!xKv_|6ynuBZ3_y8NoKDP6Ix+^DEx;TdinV(%0M)6^*9NCDr6&WB zXBw!ytU$O0H+HBFz0OQx(*DGm_QkOj0<_O^KA?S;2?2_BDPP(%#u)!Uf~w8BW#wV)YUqqScqxA4PCZ79O^8K)3ha_7$&O@JTaHDZLEi+Y44<#P?)QAiHXG$JuWW2yNf3>X&?qfCtFXw7XeQ*)Km%$L3HI zuI)X`2t2o@;(k9FLE%3x*M~fB9tbZ0ip{9{Fbv(l3y}Y-Fs|8RtAU{O97DHtooTGO zG~A90RbU;(CKXKcykP9t#l{&oT!+RT5y( zjlON-O49v0POghS{q2u|iDUB(^Q@+816+mYU_Mzz@i~t4?3loFT$X9P5rgta5D}1v zfr2Ar$Cf%{2o$k8 k5Uk6VOt|%^AbSyD0Kfd)0i2><{907*qoM6N<$f_A7?NdN!< diff --git a/TMessagesProj/src/main/res/drawable-ldpi/user_blue.png b/TMessagesProj/src/main/res/drawable-ldpi/user_blue.png deleted file mode 100755 index 06f8c3e67c9c245be36f15e9c1af964e41dc6286..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 791 zcmV+y1L*vTP)UGsdy=ej@EM~FI8q;5DL{U+VXUb4l z>d{=G8T<2@v;7F~KYU6h$;4E`>_5;y2PFUDc}WzA^74@BV)Y!Z{~C}YOU3dDg`~u3rHghJVg7&wn2CSWz!Nv z_~(ei3rO5bZ<^{L@&aNjda}d~XcdOZ>SgoAis1#cex(6g;^EY{hW5q_2rLu&4n^BN zD1hQr=UszSsnU}IsA6g8P_#fef`bXFLqBFFEipT!8%9k`2hCIYrQBa9{S#zQ`*Dsdy|iMkMZ|^X}J$Qx^JK!VIeJ+@ro}h`_nL>y<-+# zHV)=-wz=NyNJ6ncj`b#pp(6oxN5Ru5*t>^KnlVc0cHfKM&>Hwh)%L}_8ogo0G(0f^ zq3uJP@=ydUK+st?4QFq^ygo15Il=%$H{w(+tx+*!D(<&u78L&1_Ar>Q4iAJE)GPVY zzR=knhHjf>l*i7%i`ioL1L;I5n<`MK#+q#bj^kLU0&Umtji%8ZT8`i-8U!oD8lJlk zd`*;kIgf(basA(=;jch~AUJtawRA0;<{`VF8&7Q=Yv|8`H5gCV5kR&s9TPyz5ty& z23rw3pdlGAt0tmFL?1XU=28hTizZd?s5S!C9uob0;*0|3na V<6~&jnCAch002ovPDHLkV1h>nX-WV9 diff --git a/TMessagesProj/src/main/res/drawable-ldpi/user_green.png b/TMessagesProj/src/main/res/drawable-ldpi/user_green.png deleted file mode 100755 index 807bf357de5ff5f314da3d99b86cf04abd9bc93f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 792 zcmV+z1LypSP)~2qfGJ#cG|YeH~xNr}GK?ZuNr-`BK>r*N|I`h!oG8e5-`AVfZkPNuAf6NJ)vl(P2%-It z0OW@gFBq-juuvfIO1E*var|S4nYsfbS_NN*@3+aC`W*rYQ?Iq%%f~donkwt(tt;>% zT_8zNdadhvwYR@FhtIU-Tu=oTJo)%D&J~ay;8ECVK2_As!R~(@2I!$-DKnXn{hDn$B6$-a{;DmjS z?EITeq$yT-VobFR2PzaU5G;X(bn*~sH^(B5P9DO)(Lb-zh6+%;j>v#k>yQdi5Y33f ze!GezI!Crk#@=UKpy_-7p+>7gn|S@3Pw(>2?~iU^3EdVJq(zc!b7uDWVvOY;LR}Wc zL7r)0nztAg1mrI!-_Igr4w*C~OujS!HY2$FL802-$ZFlmnkPaaDEpvI z56=+)Lw12~tdtut!sQ&Wf^hbr*zpfu4AiVPSu>Ao zno@=V&E$06pZUZ6Ir4km?%JKq>~eGi41 WzvDGoA;5_M0000 z!23P(F(4hb(oeuHzkJa7dw;r=1bgpLt(Z{&G`9fu{t>Y4J+T6D-`kCqo*M)}2<)AM zKu-}bCPcifngPJ^CA9*96V^)B3;?p{^c13nWm8*7Qw^lHApnur^~gzT27qeB(o{x9xBNqyu!bEcSgq@L3@C>_}xW=kjbK zP2>weHlbuAmq^EbY?;T-6>?5FWNLNlXQ~Z9u23XnIlYoqSq8D#bXz3iznB<&qpaQ| zIQ8$3W~|Ww2!pkn2a?+WJii!vuSYh!NWQ3schyuNu9WX1bkjWm`LyZ!j(TAc1;fiJ zU}A7_YI815RIL2Fz3u=o7J<2|-k?O$5Ve7dtwnO1LWX}*D>GCFSm_|L&JTfzIJ9LQ zNw3`j&_YRDVF`x<0o$smZH|=;Slfb`Gm&UyA;q+?t+&S$qFKo_U@Mu0Sv4sNage@b d6zsPE0|1`A-=n`=&RqZi002ovPDHLkV1oNbeq8_n diff --git a/TMessagesProj/src/main/res/drawable-ldpi/user_pink.png b/TMessagesProj/src/main/res/drawable-ldpi/user_pink.png deleted file mode 100755 index 553d52b03dd550b6f1a4daf4c8f60a2326a7070b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 780 zcmV+n1M~ceP)V?R?MVsiWA38uzNN`o+`3@f^s_}_jcL8#q_00Pdl&RWYfPsJ$O`44T-qFx|k znfde6+{q!y@iaEI-ZgasVFU+A{b{3M&z(#YkYQV(A!#SA6mLpQ{2vmS* zxnQ5S@w$3xogK*zKq|96G!o`2CJ21n;{szMc);@ zQ8b=z2gt}<%qi1a2@|CVz-VzFGWJDxB!=GV3QbpV&}tE)iEu^tT>hZZw#-(2uCT8A zw=ks3eIeW5179I_PRG~FSL}0m56$9H3+(+ z2Rr@-A~**=>y%Np0+T-&k=3iSiw@}QF%Ma%&FpC&lObo2x4=~vKxWfXOJZBq6`Ehn znVdi!;D`HY7X;#|ULpLAgD~0=q2(fBuWqd8C7DPK-WkZ900RKHz1&#^D`^G*0000< KMNUMnLSTZ2a8*?R diff --git a/TMessagesProj/src/main/res/drawable-ldpi/user_placeholder.png b/TMessagesProj/src/main/res/drawable-ldpi/user_placeholder.png deleted file mode 100644 index a8d9b491c71337cf6cd2077a8bc1a6eb4b78eaed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2306 zcmbVOc~nzp7LT^dqG+v16{`~h76h`sJhDhc$U>MBj1)mo7+#W>kdWksERrycjv!iu zU=DsH9Q_WdLzO0TmFCR#_^}L&44;p8hfKocG=De((P7{e5>i z=Vc2cLS3BQoiP}UOBkOMiOMw-uj6!dUDnqQp<*7|aJcdDJ@nIzc#7jHn3Egbl%{(x7MzCNRjTfyBwM9xH-nay1LrUtz;x zN+`O0|w@WZ~ZUWup6u zV%}L=r$G19&opNn$X` zAa?S>q0zJwDKnD8n~a5OEL@UauVE62si~=iRDghJWkfQA!61?-L<$9uTHtjiwH`9! z)jH294;)x0*2*<{Iiki+c!WfVLC?aWOy6EXr4b0;Iacc?6NRRXXoNIGGJ!-?sV46A z##*P3g#V!NUTa;HNdprjVI5-7iqU#VJ*U8E?*2T`gdxg?xmqhnivlS*h}fWl)%q|F z3x|FoNaPYGO$3T*RDgm9=@c5CDxyp9bO}Jli>Xow1^~L4Mggb%ybsT%fm~h)he2WU zxMVUH2w`x7Il&;C7fj<(xD@IXHcYM4LuxTR6S_DzzR^7jycB~pn*OoQ-JIvv7O z0XmGQQzQ_&h(HDih`|7=7&nQR{J+T~qNIouo$^1OGj)WvizTjIF&zEs-6oT(^1n9P-aNkg?-H|7)L>TRS6taOeI>@_m?|fAWwI zUz9d0SVyQ_l{G%9eEo#_Bqt}Qi3oWAHs%jSSmt+aW&9xymz()PO0j3r&uX<=N?BAl zVr$+Wg#d zjG+DAkZeZtoVjy7`d^OaUzMmV*$?7QMEe$K%Hxt;;}@HG?drX!cdpQ#-*ETdy-%Ke zE0=I8+Lz9rS(VV=)8m(C*95q`WHc%n*x<4m`y=Z1R4>VFX;YlBPjB$wTfe`!SdAcc zUz(DWbHE$hd)IP&H&|P|TE&-U`yM-}=Kk^`Z|BbJp#?yG^>I%Ljgoa@k??~3x3qQz zf2^-O?i1?8aEBu~JffuqZhhcv$?nd~%v}4kQyIot)?~k>0L!T_!j+v%Qupkytf;7H z-SySX7zZ7=V8>P@OAgt=e5AG>dPe*A8# z^;Y9XFhBn0>crxR(v5}YlG8m!y}Q3I3l9UNi?uWJ(#0PhF@u6i5S&ua>Go=9Xs9Q4 zq_@eOW~~mqRear#62xMy3H%qBSe0XbnjvQU+@oHe;z_6NmZG3$E?of=GSKVaoSVZbf8?Q|` zb#~u|+lAbNFYG?iCaqS~75m++O3h>L=9}`5E>x4IbscrCi9_>wy+~$li9U7)6CPq< zE;;d!rqtTLK73!=h+&ZLwB7Gh??GE{OhtPFy$4r3LT?Ga76^1c8Xaw&zdq`@)e4L% zhHuCFyB&mWZgUn->&pDqVFmDUhS_%E0+Y#nZiiA{I@q#TYXJHvfh zIWEm1c{|XaeN0-8?N|ArC`cqj}R0hTnMPz32`UPoy zybG|9L#cAEo4MyxN4TA@7rOh*|FE+BrvQ8Is7$~)l@yT3=JsvbFjVGv>*|V};)XF# zrEzs!rgWgx@Z*qqN8*xA)(=-+>ZXTAGj#1Aeh}WHCfXB9&L@0N^BA}>-vGVNYT($)#GHl_U+j78j$b)9j)mgTR4S$#3t*NT1 zs8}H$vJNM#Qf|pwBTPBBNSbnP!Cwths`YEa*%2Bo(_YfhTNwn_Sv!X xt%Ex4?0$o<;{qqCd%WV6*{R05^ws=C%-simkuU9c>nHw7!nhHflOc&2{{>~6$P)kn diff --git a/TMessagesProj/src/main/res/drawable-ldpi/user_red.png b/TMessagesProj/src/main/res/drawable-ldpi/user_red.png deleted file mode 100755 index e75da1f87c4c45706006b07fe0683590ed354b6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 816 zcmV-01JC@4P);O%)}k|hwEv(#p})A(`;JvFI#nTjY6}VpkPv!0?I6V| zWLGxQnV#7TE;jJw?Ai047v}u^JKrh=>szt-5A@FgagThS@%uSZ`t{j1dgIaP$$shjy{s_eX`3B)kbS0${M4k$`cRcQh7VHq-n z`^G{dMGJ^Sh@kuf5ryKBk#ycbfEEy0(_?v_7La4xtEFY5zDe){xOv3_>W>`<7s#blv{THRK+Sg(#hYp_31Vsn{-_m)1964ZhtN zRlVP8&WPO~KteJVev#*p=z$>&##C6&aM-=NFe>HAIdYT4K+TF;&gX4_^Oy4lDYxD^ z`wTg|??cMYuJ<%kT~vsb_EARr4HVwYlQpqr2E#;(+fXem=s@V%hHnJ|$_6eI8+yJ; u_Qwy65aJ2;=?`nVm=I!#{V1jQA;176JLvB-*?my}0000xYjI{MT1gI;%H+wRDjZxu)oxR>WfBC+amj$;fRC@m(=Uz^pZT6AvK`}BD&M-YgnDVP9h(aK&*)p$}slAMGcLS1oA zPm==Td7KDPloUCa(Kxq5k|hO%cj<8nh8$3^Te)mD^)V(u-B$!4&+~%-*=zn{NeU4z1>B ztJ+@AZz$cTSj7`25Tt$6l1V5693U+#oV_wwc0-~)In8HtX$&B=by!8YTvcN#?%GKX z6#l2H!DPI6cp#XdR8jK<5w#cs=?(GUZn-ft+GZeGNg9Tv7sQQjx=Vl?rUVUcfp%+j z)19o((A*jhP{F#MPVx7B)QUbRE7?+6wQbjKxp#%(>SQ!S7Yd?Pltd{>LUw^}+<&A% zyS<$OR=+n{Np{@I!@yA~BM2Nt-c*%`2E}CK+G#i4$d6o9FPAH-VM)|>4U|7Pu~?L^ zJ`7;be%wRPYT516LIDi w4i%cFcEqwdfkAz8BWjS68EidD$i50N0Qhp~5m;t4)&Kwi07*qoM6N<$f=Qfh!vFvP diff --git a/TMessagesProj/src/main/res/drawable-ldpi/user_yellow.png b/TMessagesProj/src/main/res/drawable-ldpi/user_yellow.png deleted file mode 100755 index 5356ce58385d55f587e3455d7cc01cdd9f82f69d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 798 zcmV+(1L6FMP)xSI_ zYe0zD=F|;6dlsM$ehfJaIvcFL#s|$rfw19NGxv~g9utfbcOFKtw>|u_68e4R9s&qb zXqeUI<1|M@&z!OA_d!LqK-kFJvk%SbTlkl6BKEX$M=208t4l(ETDMChlPLniRuL2u zHfgS=42U{1_P0yQwhYN+QKVa{faH=M(hX$_ah9%H##v9|1){o&Y#H0r!a$fP@YLm@ zFz5?cDADR6a_nPd=idN@9E`05h`0+-p+tdT33V4zl!t!2gs1_MaP@bURt%gx>J+UUT8KgE*j~f&^`|UNq{f>LRcnX0I`C0G^HeD5M7xayE;sT6dcXLEGO8Vi6Kp+V% zUBQNR-2}H_r~`EJqLzk$^W-jKI(Z2mwR8k=s#x@sn_@F%u~6fk cKztWq08AI)fj~JcrvLx|07*qoM6N<$g0KH^g#Z8m diff --git a/TMessagesProj/src/main/res/drawable-ldpi/video_play.png b/TMessagesProj/src/main/res/drawable-ldpi/video_play.png deleted file mode 100644 index ef7a3372691c2485616540318a3e9668cfbdd5a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1907 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 IM6N<$g4PX9fB*mh diff --git a/TMessagesProj/src/main/res/drawable-ldpi/viewbtn.9.png b/TMessagesProj/src/main/res/drawable-ldpi/viewbtn.9.png deleted file mode 100644 index 222e7611ae6e3494e49d0f10fa8be265971dfc43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 294 zcmV+>0oneEP)r1~p$1s$h^=ATvQ`gY1Ai1}L!k;CZh%pT1xJ`t$F9 zYT`E^zh7Cl?WhyfQmBPWq5N+@eZTwZ```Z`sf9|zjP|DzU;S~zOqsD+~zj#@bQswete7**J>L{|&>b-e|jzx(=_R+c?| z^W`B*BMQ`n>zTJX<;j~b_o;2!qgS79w@hChjoM5EHc|zRL;0m`lJupm;w+`?Vyviv sL1xL=CFqJ+C-I^-gvoExliURW0G~WsIT)U99{>OV07*qoM6N<$f;XyvE&u=k diff --git a/TMessagesProj/src/main/res/drawable-ldpi/viewbtn_pressed.9.png b/TMessagesProj/src/main/res/drawable-ldpi/viewbtn_pressed.9.png deleted file mode 100644 index 8e12f5157febce506a3eb5b93e5f34355745ab9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^G9b*s1|*Ak?@s|zZ#`WcLn>}1Cmi7aH@TCO$&Kx8 zfEk;pza3kzLn51Lyx^*Y36ToMj%m$r8m!qgHWdBlTz~t#eN6qYZ@25S9$BBi7e90R zy9L5mf>yM8>HR66SHI);i?7@N^RMi2OlvyB_FE(^(Zz8;ldg{QHW8U42HeS~)K=Ip zS=h?Ye(TWx#bSL?7FiEhw1OEwR;mArmWa8r&Lx~%vScr7zD?ct8DZ06tG|3x^it-! z(vm%Qr`gk2ht0pQ%)R-PeSLoT_w^laxoS+(E1Qlj{Bz07@K;h;;k2Y_hG8KG9X21) qU0mwAW^zTK^r0u_FFoHeF)#!Maz3rz zU`r%8iAS@w2MQ6twPYuf#Dg-|%7g374B+y}Y!EP~GW|iAEu9<)I)P+rL|7|m1OSq7 znu`b5!@(X;VbT%gH4K7JXNlPWU}VZ?ktrb{7v>KJ(iq0@`PzCoj7BwvyJH-59axrN z5RDkg2Av~GE|ka+iXjzlY63Ij7fh`o^K5Qtcw@V*S3*x*k=eg#2Ef} zQXUSDFiR#IgkcbRIuu30q2Zba8m%Kn=x`z!TryvW!P)UufdFzS zY#NJ8V=`cCie!IgIM*01&h+mR=&WzD49=Hh5+4|nPi7%e2;H@kz5*Q_{y&sX|Ayvp zoxp$c{hz`dmk1V!bOJfda5hEUxPTpNp;&lJHb~|&*)B|G=+{$p3}SMboFFC(X6cND z?Q*9vs7xMb_h-C=1KyUw;gT5?(3W5f7b_rWG%DWQP|pHqfHu%aTi{SAD}6&lU2~j1 z27^Ik&^Usg-d8SxNeQQe4DMGh^&c+oyWBM^&{^Wh1dvTT0#dEnOgijy$#~lLbHRL9 z?+cgu{amo${Mq*5lv51%kR2`SBsKof9x5kMmn}J z?579BCaS82UDWK|H=+>P#rDd2*Sc{_x4Om4QjU;a5}Ck$Kr4Qe+4@UT3pkrR&4Y@s z<_)CHs0GNQ@tws5i@qit>l5Hyv9S?=gcfCbRVi&sRy?}X37l-^=_5U(0d9w#g7{|l8*meY%S21{%R{||61yyy3bv1QziZ~t>DZ6%H~{Fa2u>~* z^|H<_i>BD`6}HsKs4QNC!b=Yo({oB~AEK`nw<<3@s>xq+W!>GE>u!=2Jz~2%C|)?< z(^HfWY4hihl>zhpr*pguV{Xwz+3V5{a@oj)5#EPvySdndyHUPxojV1@+oO)b6FP_z zj^dUN@hE+IGXRxehSem}4T5hu-vrDa=N(@;s5sQN5(p46zV^bTSZ&fx)Ng2b#+udRze<{$P>)7eeMj~1Sgy|+#T4^Llrc>Ovxcvi;k@y zNhK*0j;A+5g)mpFRkh@$C%BAtb_WVxDaNK~!FTSVsYo+2Yi#wecIIx^dQK$9g$ZCM zH=FGZd@^6<2EP7%;huU9hXZ4|jg5O~#Cw}*Og(&8uX6dl&}`my+(M!uAC~-!FEm2r z)4sS%xMxR_0rT#UiQlZmOgZGMyK=CP5caVZ5~`1fL~RS%67;PHTrbTBT2^n z;<3?Z1L-HDCY#P@NfopdWai5U|Hke0nM$_HbzXs(s@g<(ZQsFM?C)C7PQ?X0>+o}s zQ0uxkKX&8;WQA}dL4LWRyecUwX2B|_8v541OUu-U*d@XMQdR9IS1s0mrRYSs%H;VR7Oq|~8UD>a4bI<7UnpSo5 zk<3V?rvCY;I90XLyfDXp&iVis9Z5OfLu|^)XH+Xrjrf#)hE0VDQ`oPFw9)_@{+gMn-&!R_fsqcFUa!C3oSt#63{$&6^wfvoC8C zh;yfj>DPsVKPJ^zJiCP>D*{XGmUewAUg|lfL|QKSO_G^y>r9^Pizc1rP`&#C*~fu# zQ5hc^R4q#693yInj&5S6My<*!&D7(KL_t*Uw%>D zaqAxId;l3YbX3YS@uL|~1$wJkToh6ujn5~&wV|T3my+zG{h;u6@b%QjeS@UX{Uzm#&c$)m0 zhYjg<>j~4Y7G%V-L6q8PFZ_K*nENWPxl}Uc_+9@k&JHt+oL jbmf12`}y}xA#%W{GrznfaO|Dee#C68NQ9p){Eq$w2lhW9 diff --git a/TMessagesProj/src/main/res/drawable-mdpi/broadcast_blue.png b/TMessagesProj/src/main/res/drawable-mdpi/broadcast_blue.png deleted file mode 100755 index cfe7cea906959a21e527cf3835479fd0a28206b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2682 zcmaJ@dpwi-AAh1!N~Ft)C6Co9*UiR;Wv(NOEtiR@Q_c2ZvOTjcMyFCSx02)%-7h*s z6Cxeg6j?fQeyAjKNu^VULW$)!o$8!Fe*K=;^E}_n>-~OzuCM3&BzjUeX{hU}0|1~w zb|ZN!M~B&Gfr|3|^P-oD%0Wly;xF`pgM^U`J_IQ;qe$#5NnRXqRo{z-V9?&z~Kp4EAZ=uR9fS+f(YIu z*RQseD~_AQH^A+Qh@gupz|*#{3A`mwnz zI8tEr1y7+6$XtPt!DT{Z5)r9XK(W~@f(_2a)z!wy!V>FbjlsBBI=MLFNmk~LjyP+K zxr?*wH!cZg?%_aO;WsYpAFkyOxwEan;VCVXAU-<+V!85R4)`Tx0{h3lV1B6gmCO3E zFW4V)(Mo5~vxWUvp}%b@yJvR#y=|3??~M;}mEF!)wsp}nzMM>Qq=}xs&1S<0 zXnCBX#ZLCz`VX17{6;=)rGdd{cI|EW`KytGF5sMN=PfzjPTug*$JwKWw!_vKt%C%N z0j1%H>Erx+79XDNZK;0sw7>M>0pqGa;=M)9$5uNm0o77fo8}Ave847V#sV19kZnvk zVMtzXKy#_0tk7~2%RTN~_B71VJ@77PW@*1!e$4Z@BqX<}qdX@gEw^&N=!p&y*0|`u z>i4vDk5>SbXT)AwjV5LN-A6w~lsXkE5+56G+db~xfUoHp9+60lrF&EXt9tVYMV@!N zei#}qq9uv#_=-(x-CKLuv}>9@^nE;mj_BAk9BqQ~S7+k6%ys_Ct7Hqvl%l zg4zQzo597&SN1>A+2r+3DsNO=bA<=XrrX?=&KrRW3@6R$Tru8&_{2hrB1+E{YEn5 z(K^a6du52l-E3+5tEkMpXT5_RqUz%N!P^v4Um8eG>opCj@G7I+pquE7r_swP&OV~7 z)>nb4zxvM2HMqUGuZU=Gl$Ue}XympQ29#g$sXNlfSqij)NUpQr>wP1uwBI|N$!wu% zSGf#cAB4GA)Gf_VdXOh?-2`lf)3PSc)-Y5Tf)I*d$^PlJIMBHBOzX$3R~vGZe2cdn zP6?!|e=zNt5rUn^5v_;7|4as5Twu2ZpYB;cKG9oZL`s+FYsuwQCMTctDL8N+r}fp6 zNaI|O-Sr#&=igoWKJ(6^dy7O~H^$zUBTWGALY#fg&GPNVgBwnaQGa?IJ*Tct)*bM2 z%Ue~PS4%~UJy**>J0~qirCDX|vKSKn-bY!`i9xlL+LL=uV~(!&Ar_LVO%d&Fmufhn zf|Um~4r25i98PHIXt8uz>|40>zvlf}-RZcZ4hNYCG} zH}7)%1NYGN)S=*{)Vve4<@Di(@wJ$X;#<)mj=yBW|D~_ zx};)pQ{3rrtm3z*gdZGq_hLQ}gqij%-CpgQ7ck7}`AdcFfs(&Ou)m zpfh%6_-whZ@2QvmnKG(fjGFe5wr4I6adq1+PreSFC@z zameK7_7Br}7QBV&W6h(i*8`fwBgC1`(cU*3t`+UypICY0a{I5&#QeEN%f565TB zJ9^d~lj`5^FU}ia{Z-%x086TLZ`sQu%LiI&sI0<~y58H5RK#2CE6Pd(rowBd8ZPx% zmo9#hy@B!TVVAbndiy_ZsffXV>ZU~#Ws|Ir4Q1v^ z$+9b-yLY@fPh5Oyp!rJ(n=;Yh zC;e`E_jc6#>7gA3_M>3erkj3Nx-WvS-AU39;Z(5sN(tv#<4~xA3i*kQE zwHa$~b|#Q{Z|0M Vq3m-zie~=?$u3lq#A(-|{{o9Umx}-Z diff --git a/TMessagesProj/src/main/res/drawable-mdpi/broadcast_green.png b/TMessagesProj/src/main/res/drawable-mdpi/broadcast_green.png deleted file mode 100755 index 3221532808ef3852471c2cb6b0b10397fc21d1cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2671 zcmaJ@2|QG58$Y7OQY2-|ZH$OyR?MQojIm6NJxi3v%)!JgW=#0rYyep6B;qreu^J60bQGQM z0>-dC!~!rt>>bDy$1({lxRWDnt%#@;;D8VVCgQ|#g+vhv{#BQ#oX?t(aM)J}6ib5t z9aIS27v{nffG|4*)`p2fqha>;2(+!8y*+vj41+>rkSOJCZ-cfa+SwB^IM}xfuJk5g zMG^g}Zr^+gBJF}O^SMkT?O3J5lvMa0{>;W2nOf-Q!EN26VB@pi5#JPw5= zxF}6nG~qj!%42TjfL!Q1m-P>q{8R31D{%Nq&s0#r-UhPV1UwGxYsy6S&tt*;RPP&? z_48QpKjk8o!60V~`yYk=Zc=v7?DR+5Di=Q*ALJ^#U7&31r9#zc0GQWLqmlzfJtH~Y zTv?P(%ELlEt1Z`9p_wCM+HxFO=ajQhcK_w@#E`iCU@=*9CHojLwMKT-JWLapF*4bH zWCTw((|j_=_YI|8mk=G*l7l@u-BjUZ-S^JLvTw>vB^~epRsyTha z_i=!qo;(bAWyyEHRhE508XRmb*{f@%`VpUHbwXpkbwTWCjnUjXi;3;?lPuJ4FV3-O zyw@X^RBbL%$afV`m5#8Thts zSS#6U)xnFE9i!Z6X-&z{af!^Kiy&g2mR7&h4Lnj_>^V)pOK(-nXlws%6QaYjnqYol zId1{k&SpUDV%e1Z&TpF*X<=I8JFiPY__KFiJ^EHBSq4GG zhePWxN|&oUnvW8Wf%O{B@8`YtJnB;)OK~tq* zf=$Z>*R$eQE~U@lj=QMN)9TNFA`QHKszci<{rhg87>KZ|1xs9W8n)8JD8n7brnwc4 z4>rtgt9dNO1$m{bsl0ewh8<6)(EaD5856zpxa7W}VyC=DQP=o<4H6+@W<$rmc^sJ^TOVPcmzCs(A z>q^`pHvwXvH#*!GLFe8w^`IFoH?R>u|I|>|YD80w{;>g%`gNbx&dtj_hzwfY zdzZqYFS2-i>?8%3lHR^A%2=~WK{;+Oc>U+1cgVnvpY_Dy$uB3Cl`ct&EiOg(asQAO zw3t}L^PeL-3cI{xnZp%3w(b3pR;a4JS5MT2oEptJSO=(dn_jN%-2TGfJG|(y;XU3f zv(#tZ$FPa(9BfG8aTDm%D|e#Sj%qtloj<21R+lOimWw6Mbqz<7TAtP4$PWnN$M*#5 zU-%{XcViPC>cjPXfke;WxwoHuGq6mTYjC(MNm|}&)w1d19a*zJFL&3|{4-r4LyXdi zCquo8s61>*4tQ$?kt8!o-*4QPT7qeZ} zmoXlQfoz2WYp$hx0+JV5R2k1tS~aXqY?cQLq9b;CmspWdQ<1`bT8}z+Mbi3uw}0Bw zf9=UBRhK`!_UVmRt~Golj5m`&=5eli#X9<{?lh0yJuRH%?-5kko{X%V3>#A~7(dUx z(zvCk>M8D{gO{j%rq*v`Ug5@P*_qb*iiEJS5VDU=X@B<#|Jv{^r_SE5U6xfVNia81 zIn~wkaeK_^ zF%rh=C5JvN%&&=GN-U&Pe9jch<%H1{Q5WEzJ~N}GSpE@qtkuB-_}4nk|LT!%lnq@# zI9lruYcDJ0#C=k43WX66`h$~cx%=G1E_u0M3rxnkl&ssD_A7Z6H{u~L$OdaMni3QE z;PCAlPF+aEvW^_r4a#HCl4U&*c|qnhb8#HAv)|+9(Z@Hg;;tGvw@#nyU(1OKe?(@~ z=dHM0uRrc%Xz>6M9&LJLN&K$90>@!uyGLdBt+Al!y!}JC;|d6ueOvM5mO_=PZVEq> z{raLlY7lDn?YH?Xn@VCz^L+*cjU=lN>B#^3+$5xZQ8NG}x7*+g8c2%SUqG6xH?^Fy HdH25o*Nc1O diff --git a/TMessagesProj/src/main/res/drawable-mdpi/broadcast_orange.png b/TMessagesProj/src/main/res/drawable-mdpi/broadcast_orange.png deleted file mode 100755 index 2f3b815945d8de81d944fd3f002fb1dce27a3a7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2689 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