From 93fa5019c3291345cf4fad44f88594873286f8c3 Mon Sep 17 00:00:00 2001 From: DrKLO Date: Thu, 26 Feb 2015 04:32:51 +0300 Subject: [PATCH 01/12] Update to 2.5.0 Photo editor Passcode Sections in shared media\files --- TMessagesProj/build.gradle | 6 +- TMessagesProj/jni/Android.mk | 2 +- TMessagesProj/jni/image.c | 107 ++ .../{libtmessages.5.so => libtmessages.6.so} | Bin 1565572 -> 1569668 bytes .../{libtmessages.5.so => libtmessages.6.so} | Bin 1114980 -> 1114980 bytes .../{libtmessages.5.so => libtmessages.6.so} | Bin 1873836 -> 1877932 bytes .../telegram/android/AndroidUtilities.java | 44 +- .../telegram/android/ContactsController.java | 91 +- .../org/telegram/android/ImageLoader.java | 85 +- .../org/telegram/android/ImageReceiver.java | 73 +- .../telegram/android/LocaleController.java | 86 +- .../org/telegram/android/MediaController.java | 2 + .../org/telegram/android/MessageObject.java | 30 +- .../telegram/android/MessagesController.java | 37 +- .../org/telegram/android/MessagesStorage.java | 69 +- .../org/telegram/android/NativeLoader.java | 2 +- .../telegram/android/NotificationCenter.java | 3 + .../android/NotificationsController.java | 80 +- .../org/telegram/android/ScreenReceiver.java | 1 + .../telegram/android/SecretChatHelper.java | 4 +- .../telegram/android/SendMessagesHelper.java | 193 +- .../telegram/android/video/MP4Builder.java | 8 +- .../telegram/messenger/ApplicationLoader.java | 80 +- .../messenger/ConnectionsManager.java | 7 +- .../org/telegram/messenger/FileLoader.java | 2 +- .../org/telegram/messenger/UserConfig.java | 24 +- .../org/telegram/messenger/Utilities.java | 1 + .../telegram/ui/AccountPasswordActivity.java | 28 +- .../org/telegram/ui/ActionBar/ActionBar.java | 20 +- .../ui/ActionBar/ActionBarLayout.java | 50 +- .../ui/ActionBar/ActionBarMenuItem.java | 6 +- .../telegram/ui/ActionBar/BaseFragment.java | 4 +- .../ui/ActionBar/DrawerLayoutContainer.java | 3 + .../ui/Adapters/ContactsSearchAdapter.java | 6 +- .../telegram/ui/Adapters/DialogsAdapter.java | 38 +- .../ui/Adapters/DialogsSearchAdapter.java | 26 +- .../telegram/ui/Adapters/StickersAdapter.java | 3 + .../telegram/ui/Animation/AnimatorSet10.java | 38 +- .../org/telegram/ui/Animation/View10.java | 4 +- .../org/telegram/ui/BlockedUsersActivity.java | 2 +- .../org/telegram/ui/Cells/ChatBaseCell.java | 6 +- .../org/telegram/ui/Cells/ChatMediaCell.java | 21 +- .../org/telegram/ui/Cells/DialogCell.java | 73 +- .../telegram/ui/Cells/GreySectionCell.java | 25 +- .../telegram/ui/Cells/PhotoEditToolCell.java | 39 +- .../ui/Cells/PhotoPickerAlbumsCell.java | 20 +- .../ui/Cells/PhotoPickerPhotoCell.java | 12 - .../ui/Cells/PhotoPickerSearchCell.java | 71 +- .../telegram/ui/Cells/SharedDocumentCell.java | 46 +- .../ui/Cells/SharedMediaSectionCell.java | 50 + .../ui/Cells/SharedPhotoVideoCell.java | 255 +++ .../telegram/ui/ChangeChatNameActivity.java | 2 +- .../org/telegram/ui/ChangeNameActivity.java | 2 +- .../org/telegram/ui/ChangePhoneActivity.java | 12 +- .../telegram/ui/ChangePhoneHelpActivity.java | 2 +- .../telegram/ui/ChangeUsernameActivity.java | 23 +- .../java/org/telegram/ui/ChatActivity.java | 729 +++++--- .../ui/Components/AvatarDrawable.java | 26 +- .../telegram/ui/Components/AvatarUpdater.java | 76 +- .../ui/Components/BackupImageView.java | 4 + .../ui/Components/ChatActivityEnterView.java | 387 ++-- .../ui/Components/ClippingImageView.java | 47 +- .../ui/Components/ForegroundDetector.java | 121 ++ .../ui/Components/LetterSectionsListView.java | 211 +++ .../telegram/ui/Components/NumberPicker.java | 2 +- .../telegram/ui/Components/PasscodeView.java | 1049 +++++++++++ .../telegram/ui/Components/PhotoCropView.java | 598 ++++++ .../ui/Components/PhotoEditorSeekBar.java | 132 ++ .../ui/Components/PhotoFilterView.java | 1647 +++++++++++++++++ .../Components/PhotoPickerBottomLayout.java | 60 +- .../ui/Components/SectionsListView.java | 127 +- .../SizeNotifierRelativeLayout.java | 33 +- .../org/telegram/ui/ContactAddActivity.java | 2 +- .../org/telegram/ui/ContactsActivity.java | 35 +- .../telegram/ui/CountrySelectActivity.java | 9 +- .../telegram/ui/DocumentSelectActivity.java | 6 +- .../org/telegram/ui/GroupCreateActivity.java | 10 +- .../telegram/ui/GroupCreateFinalActivity.java | 7 +- .../org/telegram/ui/IdenticonActivity.java | 4 +- .../telegram/ui/LanguageSelectActivity.java | 4 +- .../org/telegram/ui/LastSeenActivity.java | 2 +- .../telegram/ui/LastSeenUsersActivity.java | 2 +- .../java/org/telegram/ui/LaunchActivity.java | 931 ++++++---- .../org/telegram/ui/LocationActivity.java | 6 +- .../java/org/telegram/ui/LoginActivity.java | 9 +- .../java/org/telegram/ui/MediaActivity.java | 1401 ++++++++------ .../org/telegram/ui/MessagesActivity.java | 114 +- .../ui/NotificationsSettingsActivity.java | 2 +- .../org/telegram/ui/PasscodeActivity.java | 710 +++++++ .../telegram/ui/PhotoAlbumPickerActivity.java | 32 +- .../org/telegram/ui/PhotoCropActivity.java | 8 +- .../org/telegram/ui/PhotoEditorActivity.java | 1285 ------------- .../org/telegram/ui/PhotoPickerActivity.java | 97 +- .../java/org/telegram/ui/PhotoViewer.java | 1472 +++++++++++---- .../ui/PopupNotificationActivity.java | 40 +- .../telegram/ui/PrivacySettingsActivity.java | 16 +- .../java/org/telegram/ui/ProfileActivity.java | 9 +- .../ui/ProfileNotificationsActivity.java | 12 +- .../org/telegram/ui/SettingsActivity.java | 11 +- .../org/telegram/ui/VideoEditorActivity.java | 7 +- .../org/telegram/ui/WallpapersActivity.java | 10 +- .../main/res/drawable-hdpi/bottom_shadow.png | Bin 0 -> 968 bytes .../main/res/drawable-hdpi/doc_actions_g.png | Bin 1049 -> 1049 bytes .../main/res/drawable-hdpi/edit_cancel.png | Bin 0 -> 1246 bytes .../main/res/drawable-hdpi/edit_doneblue.png | Bin 0 -> 1306 bytes .../src/main/res/drawable-hdpi/gif_search.png | Bin 1895 -> 0 bytes .../res/drawable-hdpi/ic_ab_delete_white.png | Bin 1468 -> 0 bytes .../res/drawable-hdpi/ic_ab_share_white.png | Bin 1523 -> 0 bytes .../src/main/res/drawable-hdpi/lock_close.png | Bin 0 -> 1266 bytes .../src/main/res/drawable-hdpi/lock_open.png | Bin 0 -> 1275 bytes .../src/main/res/drawable-hdpi/msg_check.png | Bin 411 -> 1280 bytes .../main/res/drawable-hdpi/msg_check_w.png | Bin 335 -> 1225 bytes .../main/res/drawable-hdpi/msg_halfcheck.png | Bin 344 -> 1239 bytes .../res/drawable-hdpi/msg_halfcheck_w.png | Bin 313 -> 1186 bytes .../src/main/res/drawable-hdpi/msg_out.9.png | Bin 1005 -> 1871 bytes .../res/drawable-hdpi/msg_out_photo.9.png | Bin 764 -> 1625 bytes .../msg_out_photo_selected.9.png | Bin 747 -> 1611 bytes .../res/drawable-hdpi/msg_out_selected.9.png | Bin 993 -> 1869 bytes .../main/res/drawable-hdpi/passcode_check.png | Bin 0 -> 1153 bytes .../res/drawable-hdpi/passcode_delete.png | Bin 0 -> 1266 bytes .../main/res/drawable-hdpi/passcode_logo.png | Bin 0 -> 1997 bytes .../main/res/drawable-hdpi/photo_filters.png | Bin 1439 -> 0 bytes .../drawable-hdpi/photo_filters_active.png | Bin 1538 -> 0 bytes .../main/res/drawable-hdpi/photo_rotate.png | Bin 1430 -> 0 bytes .../main/res/drawable-hdpi/photo_sizes.png | Bin 1057 -> 0 bytes .../src/main/res/drawable-hdpi/photo_tune.png | Bin 1173 -> 0 bytes .../res/drawable-hdpi/photo_tune_active.png | Bin 1243 -> 0 bytes .../src/main/res/drawable-hdpi/search_gif.png | Bin 0 -> 1677 bytes .../src/main/res/drawable-hdpi/search_web.png | Bin 0 -> 1729 bytes .../res/drawable-hdpi/selectphoto_small.png | Bin 332 -> 0 bytes .../selectphoto_small_active.png | Bin 332 -> 0 bytes .../drawable-hdpi/selectphoto_small_grey.png | Bin 399 -> 0 bytes .../src/main/res/drawable-hdpi/share.png | Bin 0 -> 1343 bytes .../main/res/drawable-hdpi/sharedmedia.png | Bin 0 -> 967 bytes .../res/drawable-hdpi/tool_brightness.png | Bin 0 -> 1382 bytes .../main/res/drawable-hdpi/tool_contrast.png | Bin 0 -> 1078 bytes .../main/res/drawable-hdpi/tool_details.png | Bin 0 -> 1266 bytes .../main/res/drawable-hdpi/tool_enhance.png | Bin 0 -> 1409 bytes .../src/main/res/drawable-hdpi/tool_grain.png | Bin 0 -> 1039 bytes .../res/drawable-hdpi/tool_highlights.png | Bin 0 -> 1044 bytes .../res/drawable-hdpi/tool_saturation.png | Bin 0 -> 1414 bytes .../main/res/drawable-hdpi/tool_shadows.png | Bin 0 -> 1115 bytes .../main/res/drawable-hdpi/tool_vignette.png | Bin 0 -> 1094 bytes .../main/res/drawable-hdpi/tool_warmth.png | Bin 0 -> 1554 bytes .../src/main/res/drawable-hdpi/tune.png | Bin 0 -> 1010 bytes .../src/main/res/drawable-hdpi/web_search.png | Bin 2296 -> 0 bytes .../main/res/drawable-mdpi/bottom_shadow.png | Bin 0 -> 1035 bytes .../main/res/drawable-mdpi/doc_actions_g.png | Bin 1001 -> 1001 bytes .../main/res/drawable-mdpi/edit_cancel.png | Bin 0 -> 1144 bytes .../main/res/drawable-mdpi/edit_doneblue.png | Bin 0 -> 1259 bytes .../src/main/res/drawable-mdpi/gif_search.png | Bin 1583 -> 0 bytes .../res/drawable-mdpi/ic_ab_delete_white.png | Bin 1313 -> 0 bytes .../res/drawable-mdpi/ic_ab_share_white.png | Bin 1297 -> 0 bytes .../src/main/res/drawable-mdpi/lock_close.png | Bin 0 -> 1149 bytes .../src/main/res/drawable-mdpi/lock_open.png | Bin 0 -> 1152 bytes .../src/main/res/drawable-mdpi/msg_check.png | Bin 302 -> 1077 bytes .../main/res/drawable-mdpi/msg_check_w.png | Bin 248 -> 1061 bytes .../main/res/drawable-mdpi/msg_halfcheck.png | Bin 282 -> 1073 bytes .../res/drawable-mdpi/msg_halfcheck_w.png | Bin 244 -> 1061 bytes .../src/main/res/drawable-mdpi/msg_out.9.png | Bin 851 -> 1693 bytes .../res/drawable-mdpi/msg_out_photo.9.png | Bin 579 -> 1465 bytes .../msg_out_photo_selected.9.png | Bin 582 -> 1474 bytes .../res/drawable-mdpi/msg_out_selected.9.png | Bin 827 -> 1694 bytes .../main/res/drawable-mdpi/passcode_check.png | Bin 0 -> 1079 bytes .../res/drawable-mdpi/passcode_delete.png | Bin 0 -> 1157 bytes .../main/res/drawable-mdpi/passcode_logo.png | Bin 0 -> 1614 bytes .../main/res/drawable-mdpi/photo_filters.png | Bin 1308 -> 0 bytes .../drawable-mdpi/photo_filters_active.png | Bin 1370 -> 0 bytes .../main/res/drawable-mdpi/photo_rotate.png | Bin 1175 -> 0 bytes .../main/res/drawable-mdpi/photo_sizes.png | Bin 1017 -> 0 bytes .../src/main/res/drawable-mdpi/photo_tune.png | Bin 994 -> 0 bytes .../res/drawable-mdpi/photo_tune_active.png | Bin 1000 -> 0 bytes .../src/main/res/drawable-mdpi/search_gif.png | Bin 0 -> 1430 bytes .../src/main/res/drawable-mdpi/search_web.png | Bin 0 -> 1459 bytes .../res/drawable-mdpi/selectphoto_small.png | Bin 262 -> 0 bytes .../selectphoto_small_active.png | Bin 262 -> 0 bytes .../drawable-mdpi/selectphoto_small_grey.png | Bin 316 -> 0 bytes .../src/main/res/drawable-mdpi/share.png | Bin 0 -> 1187 bytes .../main/res/drawable-mdpi/sharedmedia.png | Bin 0 -> 955 bytes .../res/drawable-mdpi/tool_brightness.png | Bin 0 -> 1250 bytes .../main/res/drawable-mdpi/tool_contrast.png | Bin 0 -> 1036 bytes .../main/res/drawable-mdpi/tool_details.png | Bin 0 -> 1128 bytes .../main/res/drawable-mdpi/tool_enhance.png | Bin 0 -> 1216 bytes .../src/main/res/drawable-mdpi/tool_grain.png | Bin 0 -> 991 bytes .../res/drawable-mdpi/tool_highlights.png | Bin 0 -> 1013 bytes .../res/drawable-mdpi/tool_saturation.png | Bin 0 -> 1215 bytes .../main/res/drawable-mdpi/tool_shadows.png | Bin 0 -> 1053 bytes .../main/res/drawable-mdpi/tool_vignette.png | Bin 0 -> 1056 bytes .../main/res/drawable-mdpi/tool_warmth.png | Bin 0 -> 1344 bytes .../src/main/res/drawable-mdpi/tune.png | Bin 0 -> 997 bytes .../src/main/res/drawable-mdpi/web_search.png | Bin 1767 -> 0 bytes .../res/drawable-v21/bar_selector_lock.xml | 9 + .../main/res/drawable-xhdpi/bottom_shadow.png | Bin 0 -> 983 bytes .../main/res/drawable-xhdpi/doc_actions_g.png | Bin 1111 -> 0 bytes .../main/res/drawable-xhdpi/edit_cancel.png | Bin 0 -> 1276 bytes .../main/res/drawable-xhdpi/edit_doneblue.png | Bin 0 -> 1528 bytes .../main/res/drawable-xhdpi/gif_search.png | Bin 2295 -> 0 bytes .../res/drawable-xhdpi/ic_ab_delete_white.png | Bin 1611 -> 0 bytes .../res/drawable-xhdpi/ic_ab_share_white.png | Bin 1743 -> 0 bytes .../main/res/drawable-xhdpi/lock_close.png | Bin 0 -> 1321 bytes .../src/main/res/drawable-xhdpi/lock_open.png | Bin 0 -> 1348 bytes .../src/main/res/drawable-xhdpi/msg_check.png | Bin 470 -> 1333 bytes .../main/res/drawable-xhdpi/msg_check_w.png | Bin 371 -> 1218 bytes .../main/res/drawable-xhdpi/msg_halfcheck.png | Bin 419 -> 1255 bytes .../res/drawable-xhdpi/msg_halfcheck_w.png | Bin 350 -> 1199 bytes .../src/main/res/drawable-xhdpi/msg_out.9.png | Bin 1405 -> 2258 bytes .../res/drawable-xhdpi/msg_out_photo.9.png | Bin 897 -> 1799 bytes .../msg_out_photo_selected.9.png | Bin 928 -> 1782 bytes .../res/drawable-xhdpi/msg_out_selected.9.png | Bin 1409 -> 2243 bytes .../res/drawable-xhdpi/passcode_check.png | Bin 0 -> 1324 bytes .../res/drawable-xhdpi/passcode_delete.png | Bin 0 -> 1397 bytes .../main/res/drawable-xhdpi/passcode_logo.png | Bin 0 -> 2457 bytes .../main/res/drawable-xhdpi/photo_filters.png | Bin 1701 -> 0 bytes .../drawable-xhdpi/photo_filters_active.png | Bin 1830 -> 0 bytes .../main/res/drawable-xhdpi/photo_rotate.png | Bin 1505 -> 0 bytes .../main/res/drawable-xhdpi/photo_sizes.png | Bin 1118 -> 0 bytes .../main/res/drawable-xhdpi/photo_tune.png | Bin 999 -> 0 bytes .../res/drawable-xhdpi/photo_tune_active.png | Bin 1032 -> 0 bytes .../main/res/drawable-xhdpi/search_gif.png | Bin 0 -> 2015 bytes .../main/res/drawable-xhdpi/search_web.png | Bin 0 -> 2022 bytes .../res/drawable-xhdpi/selectphoto_small.png | Bin 696 -> 0 bytes .../selectphoto_small_active.png | Bin 401 -> 0 bytes .../drawable-xhdpi/selectphoto_small_grey.png | Bin 461 -> 0 bytes .../src/main/res/drawable-xhdpi/share.png | Bin 0 -> 1500 bytes .../main/res/drawable-xhdpi/sharedmedia.png | Bin 0 -> 983 bytes .../res/drawable-xhdpi/tool_brightness.png | Bin 0 -> 1607 bytes .../main/res/drawable-xhdpi/tool_contrast.png | Bin 0 -> 1155 bytes .../main/res/drawable-xhdpi/tool_details.png | Bin 0 -> 1358 bytes .../main/res/drawable-xhdpi/tool_enhance.png | Bin 0 -> 1610 bytes .../main/res/drawable-xhdpi/tool_grain.png | Bin 0 -> 1091 bytes .../res/drawable-xhdpi/tool_highlights.png | Bin 0 -> 1107 bytes .../res/drawable-xhdpi/tool_saturation.png | Bin 0 -> 1497 bytes .../main/res/drawable-xhdpi/tool_shadows.png | Bin 0 -> 1197 bytes .../main/res/drawable-xhdpi/tool_vignette.png | Bin 0 -> 1150 bytes .../main/res/drawable-xhdpi/tool_warmth.png | Bin 0 -> 1795 bytes .../src/main/res/drawable-xhdpi/tune.png | Bin 0 -> 1010 bytes .../main/res/drawable-xhdpi/web_search.png | Bin 2832 -> 0 bytes .../res/drawable-xxhdpi/bottom_shadow.png | Bin 0 -> 1014 bytes .../res/drawable-xxhdpi/doc_actions_g.png | Bin 1250 -> 1252 bytes .../main/res/drawable-xxhdpi/edit_cancel.png | Bin 0 -> 1448 bytes .../res/drawable-xxhdpi/edit_doneblue.png | Bin 0 -> 1833 bytes .../main/res/drawable-xxhdpi/gif_search.png | Bin 3108 -> 0 bytes .../drawable-xxhdpi/ic_ab_delete_white.png | Bin 1968 -> 0 bytes .../res/drawable-xxhdpi/ic_ab_share_white.png | Bin 2210 -> 0 bytes .../main/res/drawable-xxhdpi/lock_close.png | Bin 0 -> 1597 bytes .../main/res/drawable-xxhdpi/lock_open.png | Bin 0 -> 1600 bytes .../main/res/drawable-xxhdpi/msg_check.png | Bin 561 -> 1540 bytes .../main/res/drawable-xxhdpi/msg_check_w.png | Bin 474 -> 1439 bytes .../res/drawable-xxhdpi/msg_halfcheck.png | Bin 519 -> 1461 bytes .../res/drawable-xxhdpi/msg_halfcheck_w.png | Bin 460 -> 1392 bytes .../main/res/drawable-xxhdpi/msg_out.9.png | Bin 2338 -> 3076 bytes .../res/drawable-xxhdpi/msg_out_photo.9.png | Bin 1380 -> 2376 bytes .../msg_out_photo_selected.9.png | Bin 1367 -> 2375 bytes .../drawable-xxhdpi/msg_out_selected.9.png | Bin 2181 -> 3062 bytes .../res/drawable-xxhdpi/passcode_check.png | Bin 0 -> 1324 bytes .../res/drawable-xxhdpi/passcode_delete.png | Bin 0 -> 1653 bytes .../res/drawable-xxhdpi/passcode_logo.png | Bin 0 -> 3524 bytes .../drawable-xxhdpi/photo_editor_contrast.png | Bin 2358 -> 0 bytes .../drawable-xxhdpi/photo_editor_exposure.png | Bin 2300 -> 0 bytes .../drawable-xxhdpi/photo_editor_grain.png | Bin 2648 -> 0 bytes .../photo_editor_highlights.png | Bin 2889 -> 0 bytes .../photo_editor_saturation.png | Bin 2738 -> 0 bytes .../drawable-xxhdpi/photo_editor_shadows.png | Bin 2618 -> 0 bytes .../drawable-xxhdpi/photo_editor_sharpen.png | Bin 2162 -> 0 bytes .../drawable-xxhdpi/photo_editor_vignette.png | Bin 2784 -> 0 bytes .../drawable-xxhdpi/photo_editor_warmth.png | Bin 3258 -> 0 bytes .../res/drawable-xxhdpi/photo_filters.png | Bin 1870 -> 0 bytes .../drawable-xxhdpi/photo_filters_active.png | Bin 2011 -> 0 bytes .../main/res/drawable-xxhdpi/photo_rotate.png | Bin 1825 -> 0 bytes .../main/res/drawable-xxhdpi/photo_sizes.png | Bin 1203 -> 0 bytes .../main/res/drawable-xxhdpi/photo_tune.png | Bin 1021 -> 0 bytes .../res/drawable-xxhdpi/photo_tune_active.png | Bin 1076 -> 0 bytes .../main/res/drawable-xxhdpi/search_gif.png | Bin 0 -> 2592 bytes .../main/res/drawable-xxhdpi/search_web.png | Bin 0 -> 2586 bytes .../res/drawable-xxhdpi/selectphoto_small.png | Bin 1033 -> 0 bytes .../selectphoto_small_active.png | Bin 570 -> 0 bytes .../selectphoto_small_grey.png | Bin 586 -> 0 bytes .../src/main/res/drawable-xxhdpi/share.png | Bin 0 -> 1840 bytes .../main/res/drawable-xxhdpi/sharedmedia.png | Bin 0 -> 1004 bytes .../res/drawable-xxhdpi/tool_brightness.png | Bin 0 -> 1973 bytes .../res/drawable-xxhdpi/tool_contrast.png | Bin 0 -> 1302 bytes .../main/res/drawable-xxhdpi/tool_details.png | Bin 0 -> 1501 bytes .../main/res/drawable-xxhdpi/tool_enhance.png | Bin 0 -> 1822 bytes .../main/res/drawable-xxhdpi/tool_grain.png | Bin 0 -> 1207 bytes .../res/drawable-xxhdpi/tool_highlights.png | Bin 0 -> 1227 bytes .../res/drawable-xxhdpi/tool_saturation.png | Bin 0 -> 1836 bytes .../main/res/drawable-xxhdpi/tool_shadows.png | Bin 0 -> 1358 bytes .../res/drawable-xxhdpi/tool_vignette.png | Bin 0 -> 1262 bytes .../main/res/drawable-xxhdpi/tool_warmth.png | Bin 0 -> 2296 bytes .../src/main/res/drawable-xxhdpi/tune.png | Bin 0 -> 1067 bytes .../main/res/drawable-xxhdpi/web_search.png | Bin 3878 -> 0 bytes .../main/res/drawable/bar_selector_lock.xml | 27 + .../layout-ar/encrypted_chat_placeholder.xml | 127 -- .../src/main/res/layout/chat_layout.xml | 299 --- .../res/layout/encrypted_chat_placeholder.xml | 122 -- .../main/res/layout/media_photo_layout.xml | 11 - .../main/res/layout/media_video_layout.xml | 39 - .../res/layout/popup_notification_layout.xml | 167 -- .../src/main/res/values-ar/strings.xml | 60 +- .../src/main/res/values-de/strings.xml | 62 +- .../src/main/res/values-es/strings.xml | 64 +- .../src/main/res/values-it/strings.xml | 68 +- .../src/main/res/values-ko/strings.xml | 58 +- .../src/main/res/values-nl/strings.xml | 60 +- .../src/main/res/values-pt-rBR/strings.xml | 78 +- .../src/main/res/values-pt-rPT/strings.xml | 76 +- .../src/main/res/values-v21/styles.xml | 2 +- TMessagesProj/src/main/res/values/colors.xml | 1 - TMessagesProj/src/main/res/values/strings.xml | 60 +- TMessagesProj/src/main/res/values/styles.xml | 2 +- 310 files changed, 10186 insertions(+), 4632 deletions(-) rename TMessagesProj/libs/armeabi-v7a/{libtmessages.5.so => libtmessages.6.so} (84%) rename TMessagesProj/libs/armeabi/{libtmessages.5.so => libtmessages.6.so} (76%) rename TMessagesProj/libs/x86/{libtmessages.5.so => libtmessages.6.so} (72%) create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Cells/SharedMediaSectionCell.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Cells/SharedPhotoVideoCell.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Components/ForegroundDetector.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Components/LetterSectionsListView.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Components/PasscodeView.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoCropView.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoEditorSeekBar.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Components/PhotoFilterView.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/PasscodeActivity.java delete mode 100644 TMessagesProj/src/main/java/org/telegram/ui/PhotoEditorActivity.java create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/bottom_shadow.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/edit_cancel.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/edit_doneblue.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/gif_search.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/ic_ab_delete_white.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/ic_ab_share_white.png create mode 100644 TMessagesProj/src/main/res/drawable-hdpi/lock_close.png create mode 100644 TMessagesProj/src/main/res/drawable-hdpi/lock_open.png create mode 100644 TMessagesProj/src/main/res/drawable-hdpi/passcode_check.png create mode 100644 TMessagesProj/src/main/res/drawable-hdpi/passcode_delete.png create mode 100644 TMessagesProj/src/main/res/drawable-hdpi/passcode_logo.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/photo_filters.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/photo_filters_active.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/photo_rotate.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/photo_sizes.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/photo_tune.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/photo_tune_active.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/search_gif.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/search_web.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/selectphoto_small.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/selectphoto_small_active.png delete mode 100755 TMessagesProj/src/main/res/drawable-hdpi/selectphoto_small_grey.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/share.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/sharedmedia.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/tool_brightness.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/tool_contrast.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/tool_details.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/tool_enhance.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/tool_grain.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/tool_highlights.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/tool_saturation.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/tool_shadows.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/tool_vignette.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/tool_warmth.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/tune.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/web_search.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/bottom_shadow.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/edit_cancel.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/edit_doneblue.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/gif_search.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/ic_ab_delete_white.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/ic_ab_share_white.png create mode 100644 TMessagesProj/src/main/res/drawable-mdpi/lock_close.png create mode 100644 TMessagesProj/src/main/res/drawable-mdpi/lock_open.png create mode 100644 TMessagesProj/src/main/res/drawable-mdpi/passcode_check.png create mode 100644 TMessagesProj/src/main/res/drawable-mdpi/passcode_delete.png create mode 100644 TMessagesProj/src/main/res/drawable-mdpi/passcode_logo.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/photo_filters.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/photo_filters_active.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/photo_rotate.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/photo_sizes.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/photo_tune.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/photo_tune_active.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/search_gif.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/search_web.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/selectphoto_small.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/selectphoto_small_active.png delete mode 100755 TMessagesProj/src/main/res/drawable-mdpi/selectphoto_small_grey.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/share.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/sharedmedia.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/tool_brightness.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/tool_contrast.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/tool_details.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/tool_enhance.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/tool_grain.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/tool_highlights.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/tool_saturation.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/tool_shadows.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/tool_vignette.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/tool_warmth.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/tune.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/web_search.png create mode 100644 TMessagesProj/src/main/res/drawable-v21/bar_selector_lock.xml create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/bottom_shadow.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/doc_actions_g.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/edit_cancel.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/edit_doneblue.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/gif_search.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_delete_white.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_share_white.png create mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/lock_close.png create mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/lock_open.png create mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/passcode_check.png create mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/passcode_delete.png create mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/passcode_logo.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/photo_filters.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/photo_filters_active.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/photo_rotate.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/photo_sizes.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/photo_tune.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/photo_tune_active.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/search_gif.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/search_web.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/selectphoto_small.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/selectphoto_small_active.png delete mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/selectphoto_small_grey.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/share.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/sharedmedia.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/tool_brightness.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/tool_contrast.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/tool_details.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/tool_enhance.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/tool_grain.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/tool_highlights.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/tool_saturation.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/tool_shadows.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/tool_vignette.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/tool_warmth.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/tune.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/web_search.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/bottom_shadow.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/edit_cancel.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/edit_doneblue.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/gif_search.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_delete_white.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_share_white.png create mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/lock_close.png create mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/lock_open.png create mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/passcode_check.png create mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/passcode_delete.png create mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/passcode_logo.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/photo_editor_contrast.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/photo_editor_exposure.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/photo_editor_grain.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/photo_editor_highlights.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/photo_editor_saturation.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/photo_editor_shadows.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/photo_editor_sharpen.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/photo_editor_vignette.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/photo_editor_warmth.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/photo_filters.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/photo_filters_active.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/photo_rotate.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/photo_sizes.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/photo_tune.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/photo_tune_active.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/search_gif.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/search_web.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/selectphoto_small.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/selectphoto_small_active.png delete mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/selectphoto_small_grey.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/share.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/sharedmedia.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/tool_brightness.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/tool_contrast.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/tool_details.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/tool_enhance.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/tool_grain.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/tool_highlights.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/tool_saturation.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/tool_shadows.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/tool_vignette.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/tool_warmth.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/tune.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/web_search.png create mode 100644 TMessagesProj/src/main/res/drawable/bar_selector_lock.xml delete mode 100644 TMessagesProj/src/main/res/layout-ar/encrypted_chat_placeholder.xml delete mode 100644 TMessagesProj/src/main/res/layout/chat_layout.xml delete mode 100644 TMessagesProj/src/main/res/layout/encrypted_chat_placeholder.xml delete mode 100644 TMessagesProj/src/main/res/layout/media_photo_layout.xml delete mode 100644 TMessagesProj/src/main/res/layout/media_video_layout.xml delete mode 100644 TMessagesProj/src/main/res/layout/popup_notification_layout.xml diff --git a/TMessagesProj/build.gradle b/TMessagesProj/build.gradle index 5fbedf976..7ecb86372 100644 --- a/TMessagesProj/build.gradle +++ b/TMessagesProj/build.gradle @@ -3,7 +3,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:1.0.0' + classpath 'com.android.tools.build:gradle:1.1.0' } } apply plugin: 'com.android.application' @@ -82,7 +82,7 @@ android { defaultConfig { minSdkVersion 8 targetSdkVersion 21 - versionCode 423 - versionName "2.4.0" + versionCode 453 + versionName "2.5.0" } } diff --git a/TMessagesProj/jni/Android.mk b/TMessagesProj/jni/Android.mk index 88b4e6394..ae2c63233 100755 --- a/TMessagesProj/jni/Android.mk +++ b/TMessagesProj/jni/Android.mk @@ -104,7 +104,7 @@ include $(BUILD_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_PRELINK_MODULE := false LOCAL_STATIC_LIBRARIES := webp sqlite -LOCAL_MODULE := tmessages.5 +LOCAL_MODULE := tmessages.6 LOCAL_CFLAGS := -w -std=gnu99 -O2 -DNULL=0 -DSOCKLEN_T=socklen_t -DLOCALE_NOT_USED -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 LOCAL_CFLAGS += -Drestrict='' -D__EMX__ -DOPUS_BUILD -DFIXED_POINT -DUSE_ALLOCA -DHAVE_LRINT -DHAVE_LRINTF -fno-math-errno LOCAL_CFLAGS += -DANDROID_NDK -DDISABLE_IMPORTGL -fno-strict-aliasing -fprefetch-loop-arrays -DAVOID_TABLES -DANDROID_TILE_BASED_DECODE -DANDROID_ARMV6_IDCT -ffast-math diff --git a/TMessagesProj/jni/image.c b/TMessagesProj/jni/image.c index 1532095b2..06c5e9f3b 100644 --- a/TMessagesProj/jni/image.c +++ b/TMessagesProj/jni/image.c @@ -21,6 +21,9 @@ jmethodID jclass_Bitmap_createBitmap; jclass jclass_Config; jfieldID jclass_Config_ARGB_8888; +const uint32_t PGPhotoEnhanceHistogramBins = 256; +const uint32_t PGPhotoEnhanceSegments = 4; + jclass createGlobarRef(JNIEnv *env, jclass class) { if (class) { return (*env)->NewGlobalRef(env, class); @@ -312,6 +315,110 @@ JNIEXPORT void Java_org_telegram_messenger_Utilities_blurBitmap(JNIEnv *env, jcl AndroidBitmap_unlockPixels(env, bitmap); } +JNIEXPORT void Java_org_telegram_messenger_Utilities_calcCDT(JNIEnv *env, jclass class, jobject hsvBuffer, int width, int height, jobject buffer) { + float imageWidth = width; + float imageHeight = height; + float _clipLimit = 1.25f; + + uint32_t totalSegments = PGPhotoEnhanceSegments * PGPhotoEnhanceSegments; + uint32_t tileArea = (uint32_t)(floorf(imageWidth / PGPhotoEnhanceSegments) * floorf(imageHeight / PGPhotoEnhanceSegments)); + uint32_t clipLimit = (uint32_t)max(1, _clipLimit * tileArea / (float) PGPhotoEnhanceHistogramBins); + float scale = 255.0f / (float) tileArea; + + + unsigned char *bytes = (*env)->GetDirectBufferAddress(env, hsvBuffer); + + uint32_t **hist = calloc(totalSegments, sizeof(uint32_t *)); + uint32_t **cdfs = calloc(totalSegments, sizeof(uint32_t *)); + uint32_t *cdfsMin = calloc(totalSegments, sizeof(uint32_t)); + uint32_t *cdfsMax = calloc(totalSegments, sizeof(uint32_t)); + + for (uint32_t a = 0; a < totalSegments; a++) { + hist[a] = calloc(PGPhotoEnhanceHistogramBins, sizeof(uint32_t)); + cdfs[a] = calloc(PGPhotoEnhanceHistogramBins, sizeof(uint32_t)); + } + + float xMul = PGPhotoEnhanceSegments / imageWidth; + float yMul = PGPhotoEnhanceSegments / imageHeight; + + for (uint32_t y = 0; y < imageHeight; y++) { + uint32_t yOffset = y * width * 4; + for (uint32_t x = 0; x < imageWidth; x++) { + uint32_t index = x * 4 + yOffset; + + uint32_t tx = (uint32_t)(x * xMul); + uint32_t ty = (uint32_t)(y * yMul); + uint32_t t = ty * PGPhotoEnhanceSegments + tx; + + hist[t][bytes[index + 2]]++; + } + } + + for (uint32_t i = 0; i < totalSegments; i++) { + if (clipLimit > 0) { + uint32_t clipped = 0; + for (uint32_t j = 0; j < PGPhotoEnhanceHistogramBins; ++j) { + if (hist[i][j] > clipLimit) { + clipped += hist[i][j] - clipLimit; + hist[i][j] = clipLimit; + } + } + + uint32_t redistBatch = clipped / PGPhotoEnhanceHistogramBins; + uint32_t residual = clipped - redistBatch * PGPhotoEnhanceHistogramBins; + + for (uint32_t j = 0; j < PGPhotoEnhanceHistogramBins; ++j) { + hist[i][j] += redistBatch; + } + + for (uint32_t j = 0; j < residual; ++j) { + hist[i][j]++; + } + } + memcpy(cdfs[i], hist[i], PGPhotoEnhanceHistogramBins * sizeof(uint32_t)); + + uint32_t hMin = PGPhotoEnhanceHistogramBins - 1; + for (uint32_t j = 0; j < hMin; ++j) { + if (cdfs[j] != 0) { + hMin = j; + } + } + + uint32_t cdf = 0; + for (uint32_t j = hMin; j < PGPhotoEnhanceHistogramBins; ++j) { + cdf += cdfs[i][j]; + cdfs[i][j] = (uint8_t) min(255, cdf * scale); + } + + cdfsMin[i] = cdfs[i][hMin]; + cdfsMax[i] = cdfs[i][PGPhotoEnhanceHistogramBins - 1]; + } + + uint32_t resultSize = 4 * PGPhotoEnhanceHistogramBins * totalSegments; + uint32_t resultBytesPerRow = 4 * PGPhotoEnhanceHistogramBins; + + unsigned char *result = (*env)->GetDirectBufferAddress(env, buffer); + for (uint32_t tile = 0; tile < totalSegments; tile++) { + uint32_t yOffset = tile * resultBytesPerRow; + for (uint32_t i = 0; i < PGPhotoEnhanceHistogramBins; i++) { + uint32_t index = i * 4 + yOffset; + result[index] = (uint8_t)cdfs[tile][i]; + result[index + 1] = (uint8_t)cdfsMin[tile]; + result[index + 2] = (uint8_t)cdfsMax[tile]; + result[index + 3] = 255; + } + } + + for (uint32_t a = 0; a < totalSegments; a++) { + free(hist[a]); + free(cdfs[a]); + } + free(hist); + free(cdfs); + free(cdfsMax); + free(cdfsMin); +} + JNIEXPORT void Java_org_telegram_messenger_Utilities_loadBitmap(JNIEnv *env, jclass class, jstring path, jobject bitmap, int scale, int width, int height, int stride) { AndroidBitmapInfo info; diff --git a/TMessagesProj/libs/armeabi-v7a/libtmessages.5.so b/TMessagesProj/libs/armeabi-v7a/libtmessages.6.so similarity index 84% rename from TMessagesProj/libs/armeabi-v7a/libtmessages.5.so rename to TMessagesProj/libs/armeabi-v7a/libtmessages.6.so index 132154abf38191fc4c62b72fa970432035348ec9..41f66ec834d2e771514e4336c78deead9682478c 100755 GIT binary patch delta 105455 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