From d52ade4855d3e939daa815c766bab427a22ada61 Mon Sep 17 00:00:00 2001 From: DrKLO Date: Fri, 20 Dec 2013 23:25:49 +0400 Subject: [PATCH] update to 1.3.2 --- TMessages.iml | 4 +- TMessagesProj/TMessagesProj.iml | 49 +- TMessagesProj/build.gradle | 36 +- TMessagesProj/jni/Android.mk | 8 +- TMessagesProj/jni/Application.mk | 4 +- TMessagesProj/jni/build_ffmpeg_android.sh | 128 + TMessagesProj/jni/jni.c | 104 +- TMessagesProj/jni/log.h | 12 + .../jni/org_telegram_SQLite_SQLiteDatabase.c | 12 +- TMessagesProj/jni/sqlite3.c | 15548 ++++++++++------ TMessagesProj/jni/sqlite3.h | 148 +- TMessagesProj/jni/sqlite3ext.h | 3 + TMessagesProj/jni/video.c | 18 + TMessagesProj/jni/video.h | 17 + TMessagesProj/jni/video_audio_in.c | 243 + TMessagesProj/jni/video_audio_out.c | 366 + .../libs/armeabi-v7a/libtmessages.so | Bin 389904 -> 602984 bytes TMessagesProj/libs/armeabi/libtmessages.so | Bin 393980 -> 557840 bytes TMessagesProj/libs/mips/libtmessages.so | Bin 1072496 -> 0 bytes TMessagesProj/libs/x86/libtmessages.so | Bin 721904 -> 1004352 bytes TMessagesProj/src/main/AndroidManifest.xml | 106 +- TMessagesProj/src/main/assets/countries.txt | 56 +- .../src/main/assets/fonts/rlight.ttf | Bin 108216 -> 0 bytes .../src/main/assets/fonts/rmedium.ttf | Bin 0 -> 116752 bytes .../pyronet/{traffic => }/ByteStream.java | 2 +- .../main/java/jawnae/pyronet/PyroClient.java | 36 +- .../{events => }/PyroClientAdapter.java | 6 +- .../{events => }/PyroClientListener.java | 4 +- .../java/jawnae/pyronet/PyroSelector.java | 64 +- .../main/java/jawnae/pyronet/PyroServer.java | 224 - .../addon/PyroRoundrobinSelectorProvider.java | 40 - .../pyronet/addon/PyroSelectorProvider.java | 27 - .../addon/PyroSingletonSelectorProvider.java | 36 - .../events/PyroLazyBastardAdapter.java | 111 - .../pyronet/events/PyroSelectorAdapter.java | 70 - .../pyronet/events/PyroSelectorListener.java | 48 - .../pyronet/events/PyroServerAdapter.java | 28 - .../pyronet/events/PyroServerListener.java | 28 - .../java/jawnae/pyronet/traffic/ByteSink.java | 48 - .../pyronet/traffic/ByteSinkEndsWith.java | 74 - .../pyronet/traffic/ByteSinkLength.java | 55 - .../pyronet/traffic/ByteSinkPacket16.java | 95 - .../pyronet/traffic/ByteSinkPacket24.java | 94 - .../pyronet/traffic/ByteSinkPacket32.java | 102 - .../pyronet/traffic/PyroByteSinkFeeder.java | 119 - .../org/telegram/PhoneFormat/PhoneFormat.java | 9 + .../org/telegram/SQLite/SQLiteCursor.java | 8 +- .../org/telegram/SQLite/SQLiteDatabase.java | 13 +- .../org/telegram/SQLite/SQLiteException.java | 2 +- .../telegram/SQLite/SQLiteNoRowException.java | 2 +- .../SQLite/SQLitePreparedStatement.java | 6 +- .../java/org/telegram/TL/TLClassStore.java | 21 +- .../main/java/org/telegram/TL/TLObject.java | 2 +- .../src/main/java/org/telegram/TL/TLRPC.java | 183 +- .../java/org/telegram/messenger/Action.java | 2 +- .../messenger/AuthenticatorService.java | 2 +- .../messenger/ConnectionsManager.java | 834 +- .../messenger/ContactsSyncAdapterService.java | 8 +- .../org/telegram/messenger/Datacenter.java | 185 +- .../org/telegram/messenger/DispatchQueue.java | 2 +- .../java/org/telegram/messenger/Emoji.java | 7 +- .../messenger/ExportAuthorizationAction.java | 2 +- .../telegram/messenger/FastDateFormat.java | 19 +- .../telegram/messenger/FileLoadOperation.java | 141 +- .../org/telegram/messenger/FileLoader.java | 150 +- .../java/org/telegram/messenger/FileLog.java | 158 + .../messenger/FileUploadOperation.java | 58 +- .../messenger/GcmBroadcastReceiver.java | 49 +- .../telegram/messenger/HandshakeAction.java | 62 +- .../java/org/telegram/messenger/LruCache.java | 6 +- .../telegram/messenger/MessageKeyData.java | 2 +- .../messenger/MessagesController.java | 628 +- .../telegram/messenger/MessagesStorage.java | 292 +- .../telegram/messenger/NetworkMessage.java | 2 +- .../messenger/NotificationCenter.java | 2 +- .../org/telegram/messenger/RPCRequest.java | 2 +- .../telegram/messenger/SerializedData.java | 71 +- .../org/telegram/messenger/ServerSalt.java | 2 +- .../org/telegram/messenger/SmsListener.java | 6 +- .../org/telegram/messenger/TcpConnection.java | 318 +- .../messenger/UpdateDatacenterListAction.java | 55 - .../org/telegram/messenger/UserConfig.java | 124 +- .../org/telegram/messenger/Utilities.java | 127 +- .../org/telegram/objects/MessageObject.java | 146 +- .../org/telegram/objects/PhotoObject.java | 5 +- .../org/telegram/ui/ApplicationActivity.java | 155 +- .../org/telegram/ui/ApplicationLoader.java | 66 +- .../java/org/telegram/ui/ChatActivity.java | 1266 +- .../org/telegram/ui/ChatProfileActivity.java | 170 +- .../ui/ChatProfileChangeNameActivity.java | 52 +- .../org/telegram/ui/ContactAddActivity.java | 68 +- .../org/telegram/ui/ContactsActivity.java | 151 +- .../telegram/ui/CountrySelectActivity.java | 541 + .../org/telegram/ui/GalleryImageViewer.java | 410 +- .../org/telegram/ui/GroupCreateActivity.java | 83 +- .../telegram/ui/GroupCreateFinalActivity.java | 90 +- .../org/telegram/ui/IdenticonActivity.java | 42 +- .../java/org/telegram/ui/IntroActivity.java | 165 +- .../java/org/telegram/ui/LaunchActivity.java | 5 +- .../org/telegram/ui/LocationActivity.java | 24 +- .../java/org/telegram/ui/LoginActivity.java | 324 +- ...Phone.java => LoginActivityPhoneView.java} | 317 +- .../ui/LoginActivityRegisterView.java | 297 + ...mentSms.java => LoginActivitySmsView.java} | 169 +- .../java/org/telegram/ui/MediaActivity.java | 48 +- .../org/telegram/ui/MessagesActivity.java | 303 +- .../ui/ScreenSlidePageFragmentRegister.java | 235 - .../org/telegram/ui/SettingsActivity.java | 162 +- .../org/telegram/ui/SettingsBlockedUsers.java | 66 +- .../ui/SettingsChangeNameActivity.java | 56 +- .../ui/SettingsNotificationsActivity.java | 161 +- .../ui/SettingsWallpapersActivity.java | 21 +- .../org/telegram/ui/UserProfileActivity.java | 249 +- .../ui/Views/AbstractGalleryActivity.java | 2 +- .../org/telegram/ui/Views/AvatarUpdater.java | 31 +- .../telegram/ui/Views/BackupImageView.java | 67 +- .../org/telegram/ui/Views/BaseFragment.java | 61 +- .../java/org/telegram/ui/Views/EmojiView.java | 6 +- .../telegram/ui/Views/FrameLayoutFixed.java | 154 +- .../telegram/ui/Views/GalleryViewPager.java | 8 +- .../telegram/ui/Views/HorizontalListView.java | 2 +- .../org/telegram/ui/Views/IdenticonView.java | 2 +- .../org/telegram/ui/Views/LayoutListView.java | 2 +- .../ui/Views/MessageActionLayout.java | 4 +- .../org/telegram/ui/Views/MessageLayout.java | 2 +- .../ui/Views/NiceSupportMapFragment.java | 2 +- .../ui/Views/NonSwipeableViewPager.java | 97 - .../telegram/ui/Views/NotificationView.java | 21 +- .../ui/Views/OnSwipeTouchListener.java | 2 +- .../org/telegram/ui/Views/PZSImageView.java | 8 +- .../ui/Views/PagerSlidingTabStrip.java | 6 +- .../telegram/ui/Views/PausableActivity.java | 8 +- .../ui/Views/PinnedHeaderListView.java | 2 +- .../ui/Views/SectionedBaseAdapter.java | 5 +- .../ui/Views/SizeNotifierRelativeLayout.java | 20 +- .../org/telegram/ui/Views/SlideFragment.java | 33 - .../java/org/telegram/ui/Views/SlideView.java | 63 + .../org/telegram/ui/Views/TightTextView.java | 100 +- .../main/res/color/blue_text_color_states.xml | 8 - .../main/res/drawable-hdpi/ab_progress.png | Bin 1233 -> 1175 bytes .../src/main/res/drawable-hdpi/addmember.png | Bin 0 -> 928 bytes .../src/main/res/drawable-hdpi/bigtimer.png | Bin 0 -> 940 bytes .../src/main/res/drawable-hdpi/call.png | Bin 0 -> 701 bytes .../src/main/res/drawable-hdpi/day_box.9.png | Bin 264 -> 0 bytes .../res/drawable-hdpi/day_box_custom.9.png | Bin 214 -> 0 bytes .../res/drawable-hdpi/dialogs_badge.9.png | Bin 0 -> 171 bytes .../main/res/drawable-hdpi/dialogs_badge.png | Bin 1084 -> 0 bytes .../main/res/drawable-hdpi/dialogs_check.png | Bin 1336 -> 442 bytes .../res/drawable-hdpi/dialogs_halfcheck.png | Bin 1292 -> 374 bytes .../src/main/res/drawable-hdpi/gift_aqua.png | Bin 0 -> 2024 bytes .../src/main/res/drawable-hdpi/gift_blue.png | Bin 0 -> 2028 bytes .../src/main/res/drawable-hdpi/gift_green.png | Bin 0 -> 2023 bytes .../main/res/drawable-hdpi/gift_orange.png | Bin 0 -> 2020 bytes .../src/main/res/drawable-hdpi/gift_pink.png | Bin 0 -> 2025 bytes .../src/main/res/drawable-hdpi/gift_red.png | Bin 0 -> 2015 bytes .../main/res/drawable-hdpi/gift_violet.png | Bin 0 -> 2029 bytes .../main/res/drawable-hdpi/gift_yellow.png | Bin 0 -> 2014 bytes .../src/main/res/drawable-hdpi/group_aqua.png | Bin 0 -> 1580 bytes .../src/main/res/drawable-hdpi/group_blue.png | Bin 0 -> 1656 bytes .../main/res/drawable-hdpi/group_green.png | Bin 0 -> 1646 bytes .../main/res/drawable-hdpi/group_orange.png | Bin 0 -> 1664 bytes .../src/main/res/drawable-hdpi/group_pink.png | Bin 0 -> 1629 bytes .../drawable-hdpi/group_placeholder_blue.png | Bin 3092 -> 0 bytes .../drawable-hdpi/group_placeholder_cyan.png | Bin 3077 -> 0 bytes .../drawable-hdpi/group_placeholder_green.png | Bin 3163 -> 0 bytes .../group_placeholder_orange.png | Bin 2946 -> 0 bytes .../drawable-hdpi/group_placeholder_pink.png | Bin 2906 -> 0 bytes .../group_placeholder_purple.png | Bin 3001 -> 0 bytes .../drawable-hdpi/group_placeholder_red.png | Bin 3046 -> 0 bytes .../group_placeholder_yellow.png | Bin 2925 -> 0 bytes .../src/main/res/drawable-hdpi/group_red.png | Bin 0 -> 1701 bytes .../main/res/drawable-hdpi/group_violet.png | Bin 0 -> 1732 bytes .../main/res/drawable-hdpi/group_yellow.png | Bin 0 -> 1645 bytes .../src/main/res/drawable-hdpi/header.9.png | Bin 0 -> 136 bytes .../src/main/res/drawable-hdpi/header.png | Bin 185 -> 0 bytes .../main/res/drawable-hdpi/header_shadow.png | Bin 123 -> 0 bytes .../main/res/drawable-hdpi/ic_ab_attach.png | Bin 2274 -> 1681 bytes .../src/main/res/drawable-hdpi/ic_ab_back.png | Bin 1299 -> 435 bytes .../main/res/drawable-hdpi/ic_ab_compose.png | Bin 1505 -> 339 bytes .../main/res/drawable-hdpi/ic_ab_location.png | Bin 1887 -> 929 bytes .../src/main/res/drawable-hdpi/ic_ab_logo.png | Bin 1913 -> 1235 bytes .../src/main/res/drawable-hdpi/ic_ab_new.png | Bin 0 -> 444 bytes .../main/res/drawable-hdpi/ic_ab_other.png | Bin 1095 -> 215 bytes .../main/res/drawable-hdpi/ic_ab_search.png | Bin 1779 -> 857 bytes .../main/res/drawable-hdpi/ic_add_member.png | Bin 1752 -> 0 bytes .../res/drawable-hdpi/ic_attach_gallery.png | Bin 1310 -> 436 bytes .../res/drawable-hdpi/ic_attach_location.png | Bin 1605 -> 742 bytes .../res/drawable-hdpi/ic_attach_photo.png | Bin 1534 -> 656 bytes .../res/drawable-hdpi/ic_attach_video.png | Bin 1165 -> 274 bytes .../src/main/res/drawable-hdpi/ic_done.png | Bin 0 -> 417 bytes .../main/res/drawable-hdpi/ic_lock_gray.png | Bin 268 -> 0 bytes .../res/drawable-hdpi/ic_msg_panel_smiles.png | Bin 1718 -> 1092 bytes .../drawable-hdpi/ic_profile_send_message.png | Bin 1162 -> 309 bytes .../src/main/res/drawable-hdpi/ic_send.png | Bin 1656 -> 703 bytes .../res/drawable-hdpi/ic_send_disabled.png | Bin 1507 -> 725 bytes .../res/drawable-hdpi/ic_smiles_smile.png | Bin 1624 -> 904 bytes .../drawable-hdpi/ic_smiles_smile_active.png | Bin 1588 -> 858 bytes .../src/main/res/drawable-hdpi/ic_video.png | Bin 1231 -> 274 bytes .../src/main/res/drawable-hdpi/icon0.png | Bin 8839 -> 0 bytes .../src/main/res/drawable-hdpi/icon1.png | Bin 8328 -> 0 bytes .../src/main/res/drawable-hdpi/icon2.png | Bin 7297 -> 0 bytes .../src/main/res/drawable-hdpi/icon3.png | Bin 5342 -> 0 bytes .../src/main/res/drawable-hdpi/icon4.png | Bin 7524 -> 0 bytes .../src/main/res/drawable-hdpi/icon5.png | Bin 5641 -> 0 bytes .../src/main/res/drawable-hdpi/intro1.png | Bin 0 -> 4156 bytes .../src/main/res/drawable-hdpi/intro2.png | Bin 0 -> 5539 bytes .../src/main/res/drawable-hdpi/intro3.png | Bin 0 -> 4971 bytes .../src/main/res/drawable-hdpi/intro4.png | Bin 0 -> 4675 bytes .../src/main/res/drawable-hdpi/intro5.png | Bin 0 -> 5264 bytes .../src/main/res/drawable-hdpi/intro6.png | Bin 0 -> 4318 bytes .../src/main/res/drawable-hdpi/intro7.png | Bin 0 -> 6651 bytes .../drawable-hdpi/msg_btn_custom_down.9.png | Bin 212 -> 0 bytes .../res/drawable-hdpi/msg_btn_custom_up.9.png | Bin 199 -> 0 bytes .../main/res/drawable-hdpi/msg_btn_down.9.png | Bin 248 -> 0 bytes .../main/res/drawable-hdpi/msg_btn_up.9.png | Bin 231 -> 0 bytes .../src/main/res/drawable-hdpi/msg_check.png | Bin 1307 -> 411 bytes .../main/res/drawable-hdpi/msg_check_w.png | Bin 0 -> 335 bytes .../res/drawable-hdpi/msg_clock_photo.png | Bin 1452 -> 464 bytes .../main/res/drawable-hdpi/msg_halfcheck.png | Bin 1263 -> 344 bytes .../res/drawable-hdpi/msg_halfcheck_w.png | Bin 0 -> 313 bytes .../src/main/res/drawable-hdpi/msg_in.9.png | Bin 1187 -> 957 bytes .../main/res/drawable-hdpi/msg_in_photo.9.png | Bin 707 -> 652 bytes .../drawable-hdpi/msg_in_photo_selected.9.png | Bin 750 -> 681 bytes .../res/drawable-hdpi/msg_in_selected.9.png | Bin 1230 -> 982 bytes .../src/main/res/drawable-hdpi/msg_out.9.png | Bin 1138 -> 1005 bytes .../res/drawable-hdpi/msg_out_photo.9.png | Bin 718 -> 764 bytes .../msg_out_photo_selected.9.png | Bin 733 -> 747 bytes .../res/drawable-hdpi/msg_out_selected.9.png | Bin 1246 -> 993 bytes .../res/drawable-hdpi/msg_photo_deliver.png | Bin 998 -> 0 bytes .../main/res/drawable-hdpi/msg_photo_read.png | Bin 1326 -> 0 bytes .../main/res/drawable-hdpi/newmsg_divider.png | Bin 0 -> 165 bytes .../drawable-hdpi/no_chats_placeholder.png | Bin 2602 -> 0 bytes .../drawable-hdpi/no_messages_placeholder.png | Bin 2953 -> 0 bytes .../main/res/drawable-hdpi/notification.png | Bin 621 -> 683 bytes .../src/main/res/drawable-hdpi/pagedown.png | Bin 0 -> 1472 bytes .../main/res/drawable-hdpi/phototime.9.png | Bin 0 -> 144 bytes .../src/main/res/drawable-hdpi/plus.png | Bin 0 -> 178 bytes .../main/res/drawable-hdpi/popup_fixed.9.png | Bin 880 -> 1564 bytes .../src/main/res/drawable-hdpi/regbtn2.9.png | Bin 0 -> 258 bytes .../res/drawable-hdpi/regbtn2_pressed.9.png | Bin 0 -> 254 bytes .../src/main/res/drawable-hdpi/shadow.png | Bin 0 -> 131 bytes .../src/main/res/drawable-hdpi/spinner.9.png | Bin 0 -> 339 bytes .../res/drawable-hdpi/spinner_pressed.9.png | Bin 0 -> 328 bytes .../main/res/drawable-hdpi/switch_off1.png | Bin 0 -> 728 bytes .../res/drawable-hdpi/switch_off1_pressed.png | Bin 0 -> 1531 bytes .../src/main/res/drawable-hdpi/switch_on1.png | Bin 0 -> 839 bytes .../res/drawable-hdpi/switch_on1_pressed.png | Bin 0 -> 1650 bytes .../main/res/drawable-hdpi/system_black.9.png | Bin 0 -> 196 bytes .../main/res/drawable-hdpi/system_blue.9.png | Bin 0 -> 242 bytes .../main/res/drawable-hdpi/system_loader1.png | Bin 0 -> 839 bytes .../main/res/drawable-hdpi/system_loader2.png | Bin 0 -> 813 bytes .../res/drawable-hdpi/telegram_avatar.png | Bin 4591 -> 2427 bytes .../drawable-hdpi/typing_dot_chat_frame0.png | Bin 1016 -> 200 bytes .../drawable-hdpi/typing_dot_chat_frame1.png | Bin 1081 -> 253 bytes .../drawable-hdpi/typing_dot_chat_frame2.png | Bin 1077 -> 242 bytes .../drawable-hdpi/typing_dot_chat_frame3.png | Bin 1067 -> 244 bytes .../res/drawable-hdpi/typing_dot_frame0.png | Bin 1016 -> 204 bytes .../res/drawable-hdpi/typing_dot_frame1.png | Bin 1079 -> 250 bytes .../res/drawable-hdpi/typing_dot_frame2.png | Bin 1074 -> 240 bytes .../res/drawable-hdpi/typing_dot_frame3.png | Bin 1065 -> 242 bytes .../src/main/res/drawable-hdpi/user_aqua.png | Bin 0 -> 1390 bytes .../src/main/res/drawable-hdpi/user_blue.png | Bin 0 -> 1479 bytes .../src/main/res/drawable-hdpi/user_green.png | Bin 0 -> 1471 bytes .../main/res/drawable-hdpi/user_orange.png | Bin 0 -> 1624 bytes .../src/main/res/drawable-hdpi/user_pink.png | Bin 0 -> 1459 bytes .../drawable-hdpi/user_placeholder_blue.png | Bin 3089 -> 0 bytes .../drawable-hdpi/user_placeholder_cyan.png | Bin 3110 -> 0 bytes .../drawable-hdpi/user_placeholder_green.png | Bin 3137 -> 0 bytes .../drawable-hdpi/user_placeholder_orange.png | Bin 2990 -> 0 bytes .../drawable-hdpi/user_placeholder_pink.png | Bin 2942 -> 0 bytes .../drawable-hdpi/user_placeholder_purple.png | Bin 3028 -> 0 bytes .../drawable-hdpi/user_placeholder_red.png | Bin 3055 -> 0 bytes .../drawable-hdpi/user_placeholder_yellow.png | Bin 2924 -> 0 bytes .../src/main/res/drawable-hdpi/user_red.png | Bin 0 -> 1530 bytes .../main/res/drawable-hdpi/user_violet.png | Bin 0 -> 1538 bytes .../main/res/drawable-hdpi/user_yellow.png | Bin 0 -> 1511 bytes .../src/main/res/drawable-hdpi/viewbtn.9.png | Bin 0 -> 631 bytes .../res/drawable-hdpi/viewbtn_pressed.9.png | Bin 0 -> 638 bytes .../main/res/drawable-ldpi/ab_progress.png | Bin 0 -> 597 bytes .../src/main/res/drawable-ldpi/addmember.png | Bin 0 -> 518 bytes .../src/main/res/drawable-ldpi/bigtimer.png | Bin 0 -> 518 bytes .../src/main/res/drawable-ldpi/call.png | Bin 0 -> 406 bytes .../res/drawable-ldpi/dialogs_badge.9.png | Bin 0 -> 117 bytes .../main/res/drawable-ldpi/dialogs_check.png | Bin 0 -> 270 bytes .../res/drawable-ldpi/dialogs_halfcheck.png | Bin 0 -> 243 bytes .../src/main/res/drawable-ldpi/gift_aqua.png | Bin 0 -> 1099 bytes .../src/main/res/drawable-ldpi/gift_blue.png | Bin 0 -> 1100 bytes .../src/main/res/drawable-ldpi/gift_green.png | Bin 0 -> 1106 bytes .../main/res/drawable-ldpi/gift_orange.png | Bin 0 -> 1108 bytes .../src/main/res/drawable-ldpi/gift_pink.png | Bin 0 -> 1102 bytes .../src/main/res/drawable-ldpi/gift_red.png | Bin 0 -> 1098 bytes .../main/res/drawable-ldpi/gift_violet.png | Bin 0 -> 1113 bytes .../main/res/drawable-ldpi/gift_yellow.png | Bin 0 -> 1101 bytes .../src/main/res/drawable-ldpi/group_aqua.png | Bin 0 -> 845 bytes .../src/main/res/drawable-ldpi/group_blue.png | Bin 0 -> 886 bytes .../main/res/drawable-ldpi/group_green.png | Bin 0 -> 891 bytes .../main/res/drawable-ldpi/group_orange.png | Bin 0 -> 893 bytes .../src/main/res/drawable-ldpi/group_pink.png | Bin 0 -> 869 bytes .../drawable-ldpi/group_placeholder_blue.png | Bin 1148 -> 0 bytes .../drawable-ldpi/group_placeholder_cyan.png | Bin 1147 -> 0 bytes .../drawable-ldpi/group_placeholder_green.png | Bin 1199 -> 0 bytes .../group_placeholder_orange.png | Bin 1099 -> 0 bytes .../drawable-ldpi/group_placeholder_pink.png | Bin 1056 -> 0 bytes .../group_placeholder_purple.png | Bin 1103 -> 0 bytes .../drawable-ldpi/group_placeholder_red.png | Bin 1149 -> 0 bytes .../group_placeholder_yellow.png | Bin 1080 -> 0 bytes .../src/main/res/drawable-ldpi/group_red.png | Bin 0 -> 900 bytes .../main/res/drawable-ldpi/group_violet.png | Bin 0 -> 910 bytes .../main/res/drawable-ldpi/group_yellow.png | Bin 0 -> 867 bytes .../src/main/res/drawable-ldpi/header.9.png | Bin 0 -> 108 bytes .../src/main/res/drawable-ldpi/header.png | Bin 158 -> 0 bytes .../main/res/drawable-ldpi/header_shadow.png | Bin 119 -> 0 bytes .../main/res/drawable-ldpi/ic_ab_attach.png | Bin 1539 -> 1321 bytes .../src/main/res/drawable-ldpi/ic_ab_back.png | Bin 1141 -> 259 bytes .../main/res/drawable-ldpi/ic_ab_compose.png | Bin 1246 -> 255 bytes .../main/res/drawable-ldpi/ic_ab_location.png | Bin 1416 -> 509 bytes .../src/main/res/drawable-ldpi/ic_ab_logo.png | Bin 1417 -> 674 bytes .../src/main/res/drawable-ldpi/ic_ab_new.png | Bin 0 -> 335 bytes .../main/res/drawable-ldpi/ic_ab_other.png | Bin 1049 -> 171 bytes .../main/res/drawable-ldpi/ic_ab_search.png | Bin 1356 -> 459 bytes .../main/res/drawable-ldpi/ic_add_member.png | Bin 1395 -> 0 bytes .../res/drawable-ldpi/ic_attach_gallery.png | Bin 1154 -> 283 bytes .../res/drawable-ldpi/ic_attach_location.png | Bin 1279 -> 411 bytes .../res/drawable-ldpi/ic_attach_photo.png | Bin 1246 -> 375 bytes .../res/drawable-ldpi/ic_attach_video.png | Bin 1075 -> 204 bytes .../src/main/res/drawable-ldpi/ic_done.png | Bin 0 -> 270 bytes .../main/res/drawable-ldpi/ic_lock_gray.png | Bin 189 -> 0 bytes .../res/drawable-ldpi/ic_msg_panel_smiles.png | Bin 1345 -> 548 bytes .../drawable-ldpi/ic_profile_send_message.png | Bin 1128 -> 219 bytes .../src/main/res/drawable-ldpi/ic_send.png | Bin 1408 -> 418 bytes .../res/drawable-ldpi/ic_send_disabled.png | Bin 1285 -> 420 bytes .../src/main/res/drawable-ldpi/ic_video.png | Bin 1118 -> 181 bytes .../src/main/res/drawable-ldpi/icon0.png | Bin 4291 -> 0 bytes .../src/main/res/drawable-ldpi/icon1.png | Bin 3907 -> 0 bytes .../src/main/res/drawable-ldpi/icon2.png | Bin 3520 -> 0 bytes .../src/main/res/drawable-ldpi/icon3.png | Bin 2627 -> 0 bytes .../src/main/res/drawable-ldpi/icon4.png | Bin 3543 -> 0 bytes .../src/main/res/drawable-ldpi/icon5.png | Bin 2595 -> 0 bytes .../src/main/res/drawable-ldpi/intro1.png | Bin 0 -> 2154 bytes .../src/main/res/drawable-ldpi/intro2.png | Bin 0 -> 2732 bytes .../src/main/res/drawable-ldpi/intro3.png | Bin 0 -> 2694 bytes .../src/main/res/drawable-ldpi/intro4.png | Bin 0 -> 2424 bytes .../src/main/res/drawable-ldpi/intro5.png | Bin 0 -> 2567 bytes .../src/main/res/drawable-ldpi/intro6.png | Bin 0 -> 2179 bytes .../src/main/res/drawable-ldpi/intro7.png | Bin 0 -> 3251 bytes .../src/main/res/drawable-ldpi/msg_check.png | Bin 0 -> 254 bytes .../main/res/drawable-ldpi/msg_check_w.png | Bin 0 -> 222 bytes .../main/res/drawable-ldpi/msg_halfcheck.png | Bin 0 -> 242 bytes .../res/drawable-ldpi/msg_halfcheck_w.png | Bin 0 -> 221 bytes .../src/main/res/drawable-ldpi/msg_in.9.png | Bin 0 -> 357 bytes .../main/res/drawable-ldpi/msg_in_photo.9.png | Bin 0 -> 260 bytes .../drawable-ldpi/msg_in_photo_selected.9.png | Bin 0 -> 266 bytes .../res/drawable-ldpi/msg_in_selected.9.png | Bin 0 -> 372 bytes .../src/main/res/drawable-ldpi/msg_out.9.png | Bin 0 -> 381 bytes .../res/drawable-ldpi/msg_out_photo.9.png | Bin 0 -> 271 bytes .../msg_out_photo_selected.9.png | Bin 0 -> 271 bytes .../res/drawable-ldpi/msg_out_selected.9.png | Bin 0 -> 377 bytes .../main/res/drawable-ldpi/newmsg_divider.png | Bin 0 -> 146 bytes .../drawable-ldpi/no_chats_placeholder.png | Bin 1910 -> 0 bytes .../drawable-ldpi/no_messages_placeholder.png | Bin 1858 -> 0 bytes .../main/res/drawable-ldpi/notification.png | Bin 0 -> 363 bytes .../src/main/res/drawable-ldpi/pagedown.png | Bin 0 -> 731 bytes .../main/res/drawable-ldpi/phototime.9.png | Bin 0 -> 105 bytes .../src/main/res/drawable-ldpi/plus.png | Bin 0 -> 158 bytes .../src/main/res/drawable-ldpi/regbtn2.9.png | Bin 0 -> 157 bytes .../res/drawable-ldpi/regbtn2_pressed.9.png | Bin 0 -> 157 bytes .../src/main/res/drawable-ldpi/shadow.png | Bin 0 -> 125 bytes .../src/main/res/drawable-ldpi/spinner.9.png | Bin 0 -> 247 bytes .../res/drawable-ldpi/spinner_pressed.9.png | Bin 0 -> 247 bytes .../main/res/drawable-ldpi/switch_off1.png | Bin 0 -> 441 bytes .../res/drawable-ldpi/switch_off1_pressed.png | Bin 0 -> 1237 bytes .../src/main/res/drawable-ldpi/switch_on1.png | Bin 0 -> 491 bytes .../res/drawable-ldpi/switch_on1_pressed.png | Bin 0 -> 1302 bytes .../main/res/drawable-ldpi/system_black.9.png | Bin 0 -> 131 bytes .../main/res/drawable-ldpi/system_blue.9.png | Bin 0 -> 148 bytes .../main/res/drawable-ldpi/system_loader1.png | Bin 0 -> 485 bytes .../main/res/drawable-ldpi/system_loader2.png | Bin 0 -> 453 bytes .../res/drawable-ldpi/telegram_avatar.png | Bin 0 -> 1305 bytes .../src/main/res/drawable-ldpi/user_aqua.png | Bin 0 -> 754 bytes .../src/main/res/drawable-ldpi/user_blue.png | Bin 0 -> 791 bytes .../src/main/res/drawable-ldpi/user_green.png | Bin 0 -> 792 bytes .../main/res/drawable-ldpi/user_orange.png | Bin 0 -> 851 bytes .../src/main/res/drawable-ldpi/user_pink.png | Bin 0 -> 780 bytes .../drawable-ldpi/user_placeholder_blue.png | Bin 1187 -> 0 bytes .../drawable-ldpi/user_placeholder_cyan.png | Bin 1166 -> 0 bytes .../drawable-ldpi/user_placeholder_green.png | Bin 1180 -> 0 bytes .../drawable-ldpi/user_placeholder_orange.png | Bin 1085 -> 0 bytes .../drawable-ldpi/user_placeholder_pink.png | Bin 1090 -> 0 bytes .../drawable-ldpi/user_placeholder_purple.png | Bin 1131 -> 0 bytes .../drawable-ldpi/user_placeholder_red.png | Bin 1148 -> 0 bytes .../drawable-ldpi/user_placeholder_yellow.png | Bin 1075 -> 0 bytes .../src/main/res/drawable-ldpi/user_red.png | Bin 0 -> 816 bytes .../main/res/drawable-ldpi/user_violet.png | Bin 0 -> 818 bytes .../main/res/drawable-ldpi/user_yellow.png | Bin 0 -> 798 bytes .../src/main/res/drawable-ldpi/viewbtn.9.png | Bin 0 -> 294 bytes .../res/drawable-ldpi/viewbtn_pressed.9.png | Bin 0 -> 294 bytes .../main/res/drawable-mdpi/ab_progress.png | Bin 800 -> 787 bytes .../src/main/res/drawable-mdpi/addmember.png | Bin 0 -> 619 bytes .../src/main/res/drawable-mdpi/bigtimer.png | Bin 0 -> 653 bytes .../src/main/res/drawable-mdpi/call.png | Bin 0 -> 501 bytes .../src/main/res/drawable-mdpi/day_box.9.png | Bin 184 -> 0 bytes .../res/drawable-mdpi/day_box_custom.9.png | Bin 158 -> 0 bytes .../res/drawable-mdpi/dialogs_badge.9.png | Bin 0 -> 134 bytes .../main/res/drawable-mdpi/dialogs_badge.png | Bin 1063 -> 0 bytes .../main/res/drawable-mdpi/dialogs_check.png | Bin 1234 -> 342 bytes .../res/drawable-mdpi/dialogs_halfcheck.png | Bin 1202 -> 297 bytes .../src/main/res/drawable-mdpi/gift_aqua.png | Bin 0 -> 1413 bytes .../src/main/res/drawable-mdpi/gift_blue.png | Bin 0 -> 1412 bytes .../src/main/res/drawable-mdpi/gift_green.png | Bin 0 -> 1408 bytes .../main/res/drawable-mdpi/gift_orange.png | Bin 0 -> 1413 bytes .../src/main/res/drawable-mdpi/gift_pink.png | Bin 0 -> 1412 bytes .../src/main/res/drawable-mdpi/gift_red.png | Bin 0 -> 1407 bytes .../main/res/drawable-mdpi/gift_violet.png | Bin 0 -> 1413 bytes .../main/res/drawable-mdpi/gift_yellow.png | Bin 0 -> 1416 bytes .../src/main/res/drawable-mdpi/group_aqua.png | Bin 0 -> 1089 bytes .../src/main/res/drawable-mdpi/group_blue.png | Bin 0 -> 1133 bytes .../main/res/drawable-mdpi/group_green.png | Bin 0 -> 1157 bytes .../main/res/drawable-mdpi/group_orange.png | Bin 0 -> 1149 bytes .../src/main/res/drawable-mdpi/group_pink.png | Bin 0 -> 1106 bytes .../drawable-mdpi/group_placeholder_blue.png | Bin 2330 -> 0 bytes .../drawable-mdpi/group_placeholder_cyan.png | Bin 2325 -> 0 bytes .../drawable-mdpi/group_placeholder_green.png | Bin 2381 -> 0 bytes .../group_placeholder_orange.png | Bin 2246 -> 0 bytes .../drawable-mdpi/group_placeholder_pink.png | Bin 2217 -> 0 bytes .../group_placeholder_purple.png | Bin 2264 -> 0 bytes .../drawable-mdpi/group_placeholder_red.png | Bin 2333 -> 0 bytes .../group_placeholder_yellow.png | Bin 2232 -> 0 bytes .../src/main/res/drawable-mdpi/group_red.png | Bin 0 -> 1180 bytes .../main/res/drawable-mdpi/group_violet.png | Bin 0 -> 1176 bytes .../main/res/drawable-mdpi/group_yellow.png | Bin 0 -> 1147 bytes .../src/main/res/drawable-mdpi/header.9.png | Bin 0 -> 119 bytes .../src/main/res/drawable-mdpi/header.png | Bin 169 -> 0 bytes .../main/res/drawable-mdpi/header_shadow.png | Bin 120 -> 0 bytes .../main/res/drawable-mdpi/ic_ab_attach.png | Bin 1805 -> 1406 bytes .../src/main/res/drawable-mdpi/ic_ab_back.png | Bin 1174 -> 314 bytes .../main/res/drawable-mdpi/ic_ab_compose.png | Bin 1331 -> 308 bytes .../main/res/drawable-mdpi/ic_ab_location.png | Bin 1555 -> 676 bytes .../src/main/res/drawable-mdpi/ic_ab_logo.png | Bin 1557 -> 879 bytes .../src/main/res/drawable-mdpi/ic_ab_new.png | Bin 0 -> 310 bytes .../main/res/drawable-mdpi/ic_ab_other.png | Bin 996 -> 189 bytes .../main/res/drawable-mdpi/ic_ab_search.png | Bin 1499 -> 600 bytes .../main/res/drawable-mdpi/ic_add_member.png | Bin 1511 -> 0 bytes .../res/drawable-mdpi/ic_attach_gallery.png | Bin 1196 -> 326 bytes .../res/drawable-mdpi/ic_attach_location.png | Bin 1422 -> 555 bytes .../res/drawable-mdpi/ic_attach_photo.png | Bin 1316 -> 445 bytes .../res/drawable-mdpi/ic_attach_video.png | Bin 1087 -> 216 bytes .../src/main/res/drawable-mdpi/ic_done.png | Bin 0 -> 346 bytes .../main/res/drawable-mdpi/ic_lock_gray.png | Bin 223 -> 0 bytes .../res/drawable-mdpi/ic_msg_panel_smiles.png | Bin 1478 -> 698 bytes .../drawable-mdpi/ic_profile_send_message.png | Bin 1121 -> 262 bytes .../src/main/res/drawable-mdpi/ic_send.png | Bin 1451 -> 524 bytes .../res/drawable-mdpi/ic_send_disabled.png | Bin 1334 -> 531 bytes .../res/drawable-mdpi/ic_smiles_smile.png | Bin 1410 -> 602 bytes .../drawable-mdpi/ic_smiles_smile_active.png | Bin 1380 -> 576 bytes .../src/main/res/drawable-mdpi/ic_video.png | Bin 1152 -> 203 bytes .../src/main/res/drawable-mdpi/icon0.png | Bin 5820 -> 0 bytes .../src/main/res/drawable-mdpi/icon1.png | Bin 5297 -> 0 bytes .../src/main/res/drawable-mdpi/icon2.png | Bin 4678 -> 0 bytes .../src/main/res/drawable-mdpi/icon3.png | Bin 3456 -> 0 bytes .../src/main/res/drawable-mdpi/icon4.png | Bin 4659 -> 0 bytes .../src/main/res/drawable-mdpi/icon5.png | Bin 3483 -> 0 bytes .../src/main/res/drawable-mdpi/intro1.png | Bin 0 -> 2825 bytes .../src/main/res/drawable-mdpi/intro2.png | Bin 0 -> 3587 bytes .../src/main/res/drawable-mdpi/intro3.png | Bin 0 -> 3367 bytes .../src/main/res/drawable-mdpi/intro4.png | Bin 0 -> 3128 bytes .../src/main/res/drawable-mdpi/intro5.png | Bin 0 -> 3453 bytes .../src/main/res/drawable-mdpi/intro6.png | Bin 0 -> 2928 bytes .../src/main/res/drawable-mdpi/intro7.png | Bin 0 -> 4366 bytes .../drawable-mdpi/msg_btn_custom_down.9.png | Bin 165 -> 0 bytes .../res/drawable-mdpi/msg_btn_custom_up.9.png | Bin 167 -> 0 bytes .../main/res/drawable-mdpi/msg_btn_down.9.png | Bin 190 -> 0 bytes .../main/res/drawable-mdpi/msg_btn_up.9.png | Bin 193 -> 0 bytes .../src/main/res/drawable-mdpi/msg_check.png | Bin 1210 -> 302 bytes .../main/res/drawable-mdpi/msg_check_w.png | Bin 0 -> 248 bytes .../res/drawable-mdpi/msg_clock_photo.png | Bin 884 -> 329 bytes .../main/res/drawable-mdpi/msg_halfcheck.png | Bin 1187 -> 282 bytes .../res/drawable-mdpi/msg_halfcheck_w.png | Bin 0 -> 244 bytes .../src/main/res/drawable-mdpi/msg_in.9.png | Bin 515 -> 669 bytes .../main/res/drawable-mdpi/msg_in_photo.9.png | Bin 350 -> 470 bytes .../drawable-mdpi/msg_in_photo_selected.9.png | Bin 380 -> 500 bytes .../res/drawable-mdpi/msg_in_selected.9.png | Bin 542 -> 693 bytes .../src/main/res/drawable-mdpi/msg_out.9.png | Bin 515 -> 851 bytes .../res/drawable-mdpi/msg_out_photo.9.png | Bin 353 -> 579 bytes .../msg_out_photo_selected.9.png | Bin 376 -> 582 bytes .../res/drawable-mdpi/msg_out_selected.9.png | Bin 531 -> 827 bytes .../res/drawable-mdpi/msg_photo_deliver.png | Bin 641 -> 0 bytes .../main/res/drawable-mdpi/msg_photo_read.png | Bin 797 -> 0 bytes .../main/res/drawable-mdpi/newmsg_divider.png | Bin 0 -> 151 bytes .../drawable-mdpi/no_chats_placeholder.png | Bin 2085 -> 0 bytes .../drawable-mdpi/no_messages_placeholder.png | Bin 2241 -> 0 bytes .../main/res/drawable-mdpi/notification.png | Bin 424 -> 484 bytes .../src/main/res/drawable-mdpi/pagedown.png | Bin 0 -> 981 bytes .../main/res/drawable-mdpi/phototime.9.png | Bin 0 -> 112 bytes .../src/main/res/drawable-mdpi/plus.png | Bin 0 -> 163 bytes .../main/res/drawable-mdpi/popup_fixed.9.png | Bin 507 -> 1333 bytes .../src/main/res/drawable-mdpi/regbtn2.9.png | Bin 0 -> 186 bytes .../res/drawable-mdpi/regbtn2_pressed.9.png | Bin 0 -> 181 bytes .../src/main/res/drawable-mdpi/shadow.png | Bin 0 -> 131 bytes .../src/main/res/drawable-mdpi/spinner.9.png | Bin 0 -> 269 bytes .../res/drawable-mdpi/spinner_pressed.9.png | Bin 0 -> 276 bytes .../main/res/drawable-mdpi/switch_off1.png | Bin 0 -> 511 bytes .../res/drawable-mdpi/switch_off1_pressed.png | Bin 0 -> 1329 bytes .../src/main/res/drawable-mdpi/switch_on1.png | Bin 0 -> 579 bytes .../res/drawable-mdpi/switch_on1_pressed.png | Bin 0 -> 1383 bytes .../main/res/drawable-mdpi/system_black.9.png | Bin 0 -> 156 bytes .../main/res/drawable-mdpi/system_blue.9.png | Bin 0 -> 182 bytes .../main/res/drawable-mdpi/system_loader1.png | Bin 0 -> 602 bytes .../main/res/drawable-mdpi/system_loader2.png | Bin 0 -> 575 bytes .../res/drawable-mdpi/telegram_avatar.png | Bin 3285 -> 1699 bytes .../drawable-mdpi/typing_dot_chat_frame0.png | Bin 976 -> 174 bytes .../drawable-mdpi/typing_dot_chat_frame1.png | Bin 1028 -> 221 bytes .../drawable-mdpi/typing_dot_chat_frame2.png | Bin 1028 -> 212 bytes .../drawable-mdpi/typing_dot_chat_frame3.png | Bin 1020 -> 210 bytes .../res/drawable-mdpi/typing_dot_frame0.png | Bin 976 -> 174 bytes .../res/drawable-mdpi/typing_dot_frame1.png | Bin 1025 -> 212 bytes .../res/drawable-mdpi/typing_dot_frame2.png | Bin 1025 -> 209 bytes .../res/drawable-mdpi/typing_dot_frame3.png | Bin 1017 -> 204 bytes .../src/main/res/drawable-mdpi/user_aqua.png | Bin 0 -> 969 bytes .../src/main/res/drawable-mdpi/user_blue.png | Bin 0 -> 1014 bytes .../src/main/res/drawable-mdpi/user_green.png | Bin 0 -> 1012 bytes .../main/res/drawable-mdpi/user_orange.png | Bin 0 -> 1097 bytes .../src/main/res/drawable-mdpi/user_pink.png | Bin 0 -> 996 bytes .../drawable-mdpi/user_placeholder_blue.png | Bin 2367 -> 0 bytes .../drawable-mdpi/user_placeholder_cyan.png | Bin 2369 -> 0 bytes .../drawable-mdpi/user_placeholder_green.png | Bin 2411 -> 0 bytes .../drawable-mdpi/user_placeholder_orange.png | Bin 2281 -> 0 bytes .../drawable-mdpi/user_placeholder_pink.png | Bin 2245 -> 0 bytes .../drawable-mdpi/user_placeholder_purple.png | Bin 2273 -> 0 bytes .../drawable-mdpi/user_placeholder_red.png | Bin 2352 -> 0 bytes .../drawable-mdpi/user_placeholder_yellow.png | Bin 2268 -> 0 bytes .../src/main/res/drawable-mdpi/user_red.png | Bin 0 -> 1033 bytes .../main/res/drawable-mdpi/user_violet.png | Bin 0 -> 1045 bytes .../main/res/drawable-mdpi/user_yellow.png | Bin 0 -> 1031 bytes .../src/main/res/drawable-mdpi/viewbtn.9.png | Bin 0 -> 319 bytes .../res/drawable-mdpi/viewbtn_pressed.9.png | Bin 0 -> 318 bytes .../main/res/drawable-xhdpi/ab_progress.png | Bin 1661 -> 1581 bytes .../src/main/res/drawable-xhdpi/addmember.png | Bin 0 -> 1242 bytes .../src/main/res/drawable-xhdpi/bigtimer.png | Bin 0 -> 1190 bytes .../src/main/res/drawable-xhdpi/call.png | Bin 0 -> 883 bytes .../src/main/res/drawable-xhdpi/day_box.9.png | Bin 290 -> 0 bytes .../res/drawable-xhdpi/day_box_custom.9.png | Bin 240 -> 0 bytes .../res/drawable-xhdpi/dialogs_badge.9.png | Bin 0 -> 212 bytes .../main/res/drawable-xhdpi/dialogs_badge.png | Bin 1050 -> 0 bytes .../main/res/drawable-xhdpi/dialogs_check.png | Bin 1496 -> 503 bytes .../res/drawable-xhdpi/dialogs_halfcheck.png | Bin 1428 -> 456 bytes .../src/main/res/drawable-xhdpi/gift_aqua.png | Bin 0 -> 2526 bytes .../src/main/res/drawable-xhdpi/gift_blue.png | Bin 0 -> 2525 bytes .../main/res/drawable-xhdpi/gift_green.png | Bin 0 -> 2524 bytes .../main/res/drawable-xhdpi/gift_orange.png | Bin 0 -> 2518 bytes .../src/main/res/drawable-xhdpi/gift_pink.png | Bin 0 -> 2527 bytes .../src/main/res/drawable-xhdpi/gift_red.png | Bin 0 -> 2513 bytes .../main/res/drawable-xhdpi/gift_violet.png | Bin 0 -> 2528 bytes .../main/res/drawable-xhdpi/gift_yellow.png | Bin 0 -> 2496 bytes .../main/res/drawable-xhdpi/group_aqua.png | Bin 0 -> 2100 bytes .../main/res/drawable-xhdpi/group_blue.png | Bin 0 -> 2236 bytes .../main/res/drawable-xhdpi/group_green.png | Bin 0 -> 2248 bytes .../main/res/drawable-xhdpi/group_orange.png | Bin 0 -> 2263 bytes .../main/res/drawable-xhdpi/group_pink.png | Bin 0 -> 2233 bytes .../drawable-xhdpi/group_placeholder_blue.png | Bin 3797 -> 0 bytes .../drawable-xhdpi/group_placeholder_cyan.png | Bin 3783 -> 0 bytes .../group_placeholder_green.png | Bin 3867 -> 0 bytes .../group_placeholder_orange.png | Bin 3638 -> 0 bytes .../drawable-xhdpi/group_placeholder_pink.png | Bin 3607 -> 0 bytes .../group_placeholder_purple.png | Bin 3649 -> 0 bytes .../drawable-xhdpi/group_placeholder_red.png | Bin 3767 -> 0 bytes .../group_placeholder_yellow.png | Bin 3633 -> 0 bytes .../src/main/res/drawable-xhdpi/group_red.png | Bin 0 -> 2297 bytes .../main/res/drawable-xhdpi/group_violet.png | Bin 0 -> 2327 bytes .../main/res/drawable-xhdpi/group_yellow.png | Bin 0 -> 2222 bytes .../src/main/res/drawable-xhdpi/header.9.png | Bin 0 -> 148 bytes .../src/main/res/drawable-xhdpi/header.png | Bin 260 -> 0 bytes .../main/res/drawable-xhdpi/header_shadow.png | Bin 129 -> 0 bytes .../main/res/drawable-xhdpi/ic_ab_attach.png | Bin 2715 -> 2589 bytes .../main/res/drawable-xhdpi/ic_ab_back.png | Bin 1291 -> 485 bytes .../main/res/drawable-xhdpi/ic_ab_compose.png | Bin 1621 -> 402 bytes .../res/drawable-xhdpi/ic_ab_location.png | Bin 2087 -> 1192 bytes .../main/res/drawable-xhdpi/ic_ab_logo.png | Bin 2351 -> 1629 bytes .../src/main/res/drawable-xhdpi/ic_ab_new.png | Bin 0 -> 496 bytes .../main/res/drawable-xhdpi/ic_ab_other.png | Bin 1124 -> 250 bytes .../main/res/drawable-xhdpi/ic_ab_search.png | Bin 2017 -> 1094 bytes .../main/res/drawable-xhdpi/ic_add_member.png | Bin 2041 -> 0 bytes .../res/drawable-xhdpi/ic_attach_gallery.png | Bin 1385 -> 511 bytes .../res/drawable-xhdpi/ic_attach_location.png | Bin 1844 -> 970 bytes .../res/drawable-xhdpi/ic_attach_photo.png | Bin 1674 -> 798 bytes .../res/drawable-xhdpi/ic_attach_video.png | Bin 1214 -> 318 bytes .../src/main/res/drawable-xhdpi/ic_done.png | Bin 0 -> 487 bytes .../main/res/drawable-xhdpi/ic_lock_blue.png | Bin 286 -> 304 bytes .../main/res/drawable-xhdpi/ic_lock_gray.png | Bin 278 -> 0 bytes .../main/res/drawable-xhdpi/ic_lock_green.png | Bin 296 -> 343 bytes .../drawable-xhdpi/ic_msg_panel_smiles.png | Bin 2100 -> 1477 bytes .../ic_profile_send_message.png | Bin 1188 -> 344 bytes .../src/main/res/drawable-xhdpi/ic_send.png | Bin 1883 -> 844 bytes .../res/drawable-xhdpi/ic_send_disabled.png | Bin 1655 -> 842 bytes .../res/drawable-xhdpi/ic_smiles_smile.png | Bin 1838 -> 1161 bytes .../drawable-xhdpi/ic_smiles_smile_active.png | Bin 1860 -> 1142 bytes .../src/main/res/drawable-xhdpi/ic_video.png | Bin 1285 -> 321 bytes .../src/main/res/drawable-xhdpi/icon0.png | Bin 12089 -> 0 bytes .../src/main/res/drawable-xhdpi/icon1.png | Bin 11446 -> 0 bytes .../src/main/res/drawable-xhdpi/icon2.png | Bin 10018 -> 0 bytes .../src/main/res/drawable-xhdpi/icon3.png | Bin 7240 -> 0 bytes .../src/main/res/drawable-xhdpi/icon4.png | Bin 9903 -> 0 bytes .../src/main/res/drawable-xhdpi/icon5.png | Bin 7503 -> 0 bytes .../src/main/res/drawable-xhdpi/intro1.png | Bin 0 -> 5490 bytes .../src/main/res/drawable-xhdpi/intro2.png | Bin 0 -> 7618 bytes .../src/main/res/drawable-xhdpi/intro3.png | Bin 0 -> 6636 bytes .../src/main/res/drawable-xhdpi/intro4.png | Bin 0 -> 6303 bytes .../src/main/res/drawable-xhdpi/intro5.png | Bin 0 -> 7196 bytes .../src/main/res/drawable-xhdpi/intro6.png | Bin 0 -> 5868 bytes .../src/main/res/drawable-xhdpi/intro7.png | Bin 0 -> 9003 bytes .../drawable-xhdpi/msg_btn_custom_down.9.png | Bin 299 -> 0 bytes .../drawable-xhdpi/msg_btn_custom_up.9.png | Bin 295 -> 0 bytes .../res/drawable-xhdpi/msg_btn_down.9.png | Bin 355 -> 0 bytes .../main/res/drawable-xhdpi/msg_btn_up.9.png | Bin 341 -> 0 bytes .../src/main/res/drawable-xhdpi/msg_check.png | Bin 1453 -> 470 bytes .../main/res/drawable-xhdpi/msg_check_w.png | Bin 0 -> 371 bytes .../res/drawable-xhdpi/msg_clock_photo.png | Bin 1801 -> 561 bytes .../main/res/drawable-xhdpi/msg_halfcheck.png | Bin 1384 -> 419 bytes .../res/drawable-xhdpi/msg_halfcheck_w.png | Bin 0 -> 350 bytes .../src/main/res/drawable-xhdpi/msg_in.9.png | Bin 1220 -> 1453 bytes .../res/drawable-xhdpi/msg_in_photo.9.png | Bin 857 -> 880 bytes .../msg_in_photo_selected.9.png | Bin 878 -> 909 bytes .../res/drawable-xhdpi/msg_in_selected.9.png | Bin 1239 -> 1520 bytes .../src/main/res/drawable-xhdpi/msg_out.9.png | Bin 1202 -> 1405 bytes .../res/drawable-xhdpi/msg_out_photo.9.png | Bin 853 -> 897 bytes .../msg_out_photo_selected.9.png | Bin 862 -> 928 bytes .../res/drawable-xhdpi/msg_out_selected.9.png | Bin 1219 -> 1409 bytes .../res/drawable-xhdpi/msg_photo_deliver.png | Bin 1310 -> 0 bytes .../res/drawable-xhdpi/msg_photo_read.png | Bin 1770 -> 0 bytes .../res/drawable-xhdpi/newmsg_divider.png | Bin 0 -> 174 bytes .../drawable-xhdpi/no_chats_placeholder.png | Bin 3248 -> 0 bytes .../no_messages_placeholder.png | Bin 3814 -> 0 bytes .../main/res/drawable-xhdpi/notification.png | Bin 777 -> 900 bytes .../src/main/res/drawable-xhdpi/pagedown.png | Bin 0 -> 1648 bytes .../main/res/drawable-xhdpi/phototime.9.png | Bin 0 -> 155 bytes .../src/main/res/drawable-xhdpi/plus.png | Bin 0 -> 195 bytes .../main/res/drawable-xhdpi/popup_fixed.9.png | Bin 1517 -> 1798 bytes .../src/main/res/drawable-xhdpi/regbtn2.9.png | Bin 0 -> 327 bytes .../res/drawable-xhdpi/regbtn2_pressed.9.png | Bin 0 -> 320 bytes .../src/main/res/drawable-xhdpi/shadow.png | Bin 0 -> 134 bytes .../res/drawable-xhdpi/spenner_pressed.9.png | Bin 0 -> 1357 bytes .../src/main/res/drawable-xhdpi/spinner.9.png | Bin 0 -> 389 bytes .../res/drawable-xhdpi/spinner_pressed.9.png | Bin 0 -> 370 bytes .../main/res/drawable-xhdpi/switch_off1.png | Bin 0 -> 866 bytes .../drawable-xhdpi/switch_off1_pressed.png | Bin 0 -> 1683 bytes .../main/res/drawable-xhdpi/switch_on1.png | Bin 0 -> 1018 bytes .../res/drawable-xhdpi/switch_on1_pressed.png | Bin 0 -> 1831 bytes .../res/drawable-xhdpi/system_black.9.png | Bin 0 -> 238 bytes .../main/res/drawable-xhdpi/system_blue.9.png | Bin 0 -> 290 bytes .../res/drawable-xhdpi/system_loader1.png | Bin 0 -> 1118 bytes .../res/drawable-xhdpi/system_loader2.png | Bin 0 -> 1076 bytes .../res/drawable-xhdpi/telegram_avatar.png | Bin 4466 -> 3155 bytes .../drawable-xhdpi/typing_dot_chat_frame0.png | Bin 1036 -> 222 bytes .../drawable-xhdpi/typing_dot_chat_frame1.png | Bin 1162 -> 297 bytes .../drawable-xhdpi/typing_dot_chat_frame2.png | Bin 1159 -> 291 bytes .../drawable-xhdpi/typing_dot_chat_frame3.png | Bin 1148 -> 299 bytes .../res/drawable-xhdpi/typing_dot_frame0.png | Bin 1036 -> 222 bytes .../res/drawable-xhdpi/typing_dot_frame1.png | Bin 1160 -> 294 bytes .../res/drawable-xhdpi/typing_dot_frame2.png | Bin 1157 -> 288 bytes .../res/drawable-xhdpi/typing_dot_frame3.png | Bin 1146 -> 297 bytes .../src/main/res/drawable-xhdpi/user_aqua.png | Bin 0 -> 1832 bytes .../src/main/res/drawable-xhdpi/user_blue.png | Bin 0 -> 1942 bytes .../main/res/drawable-xhdpi/user_green.png | Bin 0 -> 1952 bytes .../main/res/drawable-xhdpi/user_orange.png | Bin 0 -> 2152 bytes .../src/main/res/drawable-xhdpi/user_pink.png | Bin 0 -> 1958 bytes .../drawable-xhdpi/user_placeholder_blue.png | Bin 3800 -> 0 bytes .../drawable-xhdpi/user_placeholder_cyan.png | Bin 3739 -> 0 bytes .../drawable-xhdpi/user_placeholder_green.png | Bin 3927 -> 0 bytes .../user_placeholder_orange.png | Bin 3617 -> 0 bytes .../drawable-xhdpi/user_placeholder_pink.png | Bin 3648 -> 0 bytes .../user_placeholder_purple.png | Bin 3715 -> 0 bytes .../drawable-xhdpi/user_placeholder_red.png | Bin 3744 -> 0 bytes .../user_placeholder_yellow.png | Bin 3587 -> 0 bytes .../src/main/res/drawable-xhdpi/user_red.png | Bin 0 -> 2034 bytes .../main/res/drawable-xhdpi/user_violet.png | Bin 0 -> 2021 bytes .../main/res/drawable-xhdpi/user_yellow.png | Bin 0 -> 1974 bytes .../src/main/res/drawable-xhdpi/viewbtn.9.png | Bin 0 -> 702 bytes .../res/drawable-xhdpi/viewbtn_pressed.9.png | Bin 0 -> 706 bytes .../main/res/drawable-xxhdpi/ab_progress.png | Bin 2710 -> 2516 bytes .../main/res/drawable-xxhdpi/addmember.png | Bin 0 -> 1791 bytes .../src/main/res/drawable-xxhdpi/bigtimer.png | Bin 0 -> 1737 bytes .../src/main/res/drawable-xxhdpi/call.png | Bin 0 -> 1293 bytes .../main/res/drawable-xxhdpi/day_box.9.png | Bin 461 -> 0 bytes .../res/drawable-xxhdpi/day_box_custom.9.png | Bin 368 -> 0 bytes .../res/drawable-xxhdpi/dialogs_badge.9.png | Bin 0 -> 277 bytes .../res/drawable-xxhdpi/dialogs_badge.png | Bin 1213 -> 0 bytes .../res/drawable-xxhdpi/dialogs_check.png | Bin 1784 -> 630 bytes .../res/drawable-xxhdpi/dialogs_halfcheck.png | Bin 1662 -> 582 bytes .../main/res/drawable-xxhdpi/gift_aqua.png | Bin 0 -> 3853 bytes .../main/res/drawable-xxhdpi/gift_blue.png | Bin 0 -> 3852 bytes .../main/res/drawable-xxhdpi/gift_green.png | Bin 0 -> 3850 bytes .../main/res/drawable-xxhdpi/gift_orange.png | Bin 0 -> 3858 bytes .../main/res/drawable-xxhdpi/gift_pink.png | Bin 0 -> 3852 bytes .../src/main/res/drawable-xxhdpi/gift_red.png | Bin 0 -> 3846 bytes .../main/res/drawable-xxhdpi/gift_violet.png | Bin 0 -> 3851 bytes .../main/res/drawable-xxhdpi/gift_yellow.png | Bin 0 -> 3818 bytes .../main/res/drawable-xxhdpi/group_aqua.png | Bin 0 -> 3175 bytes .../main/res/drawable-xxhdpi/group_blue.png | Bin 0 -> 3375 bytes .../main/res/drawable-xxhdpi/group_green.png | Bin 0 -> 3373 bytes .../main/res/drawable-xxhdpi/group_orange.png | Bin 0 -> 3405 bytes .../main/res/drawable-xxhdpi/group_pink.png | Bin 0 -> 3355 bytes .../group_placeholder_blue.png | Bin 5683 -> 0 bytes .../group_placeholder_cyan.png | Bin 5642 -> 0 bytes .../group_placeholder_green.png | Bin 5819 -> 0 bytes .../group_placeholder_orange.png | Bin 5597 -> 0 bytes .../group_placeholder_pink.png | Bin 5392 -> 0 bytes .../group_placeholder_purple.png | Bin 5332 -> 0 bytes .../drawable-xxhdpi/group_placeholder_red.png | Bin 5716 -> 0 bytes .../group_placeholder_yellow.png | Bin 5513 -> 0 bytes .../main/res/drawable-xxhdpi/group_red.png | Bin 0 -> 3422 bytes .../main/res/drawable-xxhdpi/group_violet.png | Bin 0 -> 3492 bytes .../main/res/drawable-xxhdpi/group_yellow.png | Bin 0 -> 3331 bytes .../src/main/res/drawable-xxhdpi/header.9.png | Bin 0 -> 189 bytes .../src/main/res/drawable-xxhdpi/header.png | Bin 1115 -> 0 bytes .../res/drawable-xxhdpi/header_shadow.png | Bin 1018 -> 0 bytes .../main/res/drawable-xxhdpi/ic_ab_attach.png | Bin 3740 -> 2431 bytes .../main/res/drawable-xxhdpi/ic_ab_back.png | Bin 1531 -> 715 bytes .../res/drawable-xxhdpi/ic_ab_compose.png | Bin 1839 -> 490 bytes .../res/drawable-xxhdpi/ic_ab_location.png | Bin 2827 -> 1801 bytes .../main/res/drawable-xxhdpi/ic_ab_logo.png | Bin 3096 -> 2314 bytes .../main/res/drawable-xxhdpi/ic_ab_new.png | Bin 0 -> 723 bytes .../main/res/drawable-xxhdpi/ic_ab_other.png | Bin 1189 -> 307 bytes .../main/res/drawable-xxhdpi/ic_ab_search.png | Bin 2591 -> 1605 bytes .../res/drawable-xxhdpi/ic_add_member.png | Bin 2577 -> 0 bytes .../res/drawable-xxhdpi/ic_attach_gallery.png | Bin 1573 -> 700 bytes .../drawable-xxhdpi/ic_attach_location.png | Bin 2338 -> 1465 bytes .../res/drawable-xxhdpi/ic_attach_photo.png | Bin 2016 -> 1148 bytes .../res/drawable-xxhdpi/ic_attach_video.png | Bin 1327 -> 438 bytes .../src/main/res/drawable-xxhdpi/ic_done.png | Bin 0 -> 620 bytes .../main/res/drawable-xxhdpi/ic_lock_gray.png | Bin 386 -> 0 bytes .../drawable-xxhdpi/ic_msg_panel_smiles.png | Bin 2589 -> 2261 bytes .../ic_profile_send_message.png | Bin 1323 -> 443 bytes .../src/main/res/drawable-xxhdpi/ic_send.png | Bin 2332 -> 1282 bytes .../res/drawable-xxhdpi/ic_send_disabled.png | Bin 1899 -> 1310 bytes .../res/drawable-xxhdpi/ic_smiles_smile.png | Bin 2314 -> 1735 bytes .../ic_smiles_smile_active.png | Bin 2406 -> 1709 bytes .../src/main/res/drawable-xxhdpi/ic_video.png | Bin 1472 -> 446 bytes .../src/main/res/drawable-xxhdpi/icon0.png | Bin 19285 -> 0 bytes .../src/main/res/drawable-xxhdpi/icon1.png | Bin 18183 -> 0 bytes .../src/main/res/drawable-xxhdpi/icon2.png | Bin 15565 -> 0 bytes .../src/main/res/drawable-xxhdpi/icon3.png | Bin 11155 -> 0 bytes .../src/main/res/drawable-xxhdpi/icon4.png | Bin 15389 -> 0 bytes .../src/main/res/drawable-xxhdpi/icon5.png | Bin 11807 -> 0 bytes .../src/main/res/drawable-xxhdpi/intro1.png | Bin 0 -> 8483 bytes .../src/main/res/drawable-xxhdpi/intro2.png | Bin 0 -> 11859 bytes .../src/main/res/drawable-xxhdpi/intro3.png | Bin 0 -> 10013 bytes .../src/main/res/drawable-xxhdpi/intro4.png | Bin 0 -> 9672 bytes .../src/main/res/drawable-xxhdpi/intro5.png | Bin 0 -> 11441 bytes .../src/main/res/drawable-xxhdpi/intro6.png | Bin 0 -> 9029 bytes .../src/main/res/drawable-xxhdpi/intro7.png | Bin 0 -> 13536 bytes .../drawable-xxhdpi/msg_btn_custom_down.9.png | Bin 431 -> 0 bytes .../drawable-xxhdpi/msg_btn_custom_up.9.png | Bin 427 -> 0 bytes .../res/drawable-xxhdpi/msg_btn_down.9.png | Bin 517 -> 0 bytes .../main/res/drawable-xxhdpi/msg_btn_up.9.png | Bin 521 -> 0 bytes .../main/res/drawable-xxhdpi/msg_check.png | Bin 1635 -> 561 bytes .../main/res/drawable-xxhdpi/msg_check_w.png | Bin 0 -> 474 bytes .../res/drawable-xxhdpi/msg_clock_photo.png | Bin 3309 -> 862 bytes .../res/drawable-xxhdpi/msg_halfcheck.png | Bin 1507 -> 519 bytes .../res/drawable-xxhdpi/msg_halfcheck_w.png | Bin 0 -> 460 bytes .../src/main/res/drawable-xxhdpi/msg_in.9.png | Bin 2074 -> 2231 bytes .../res/drawable-xxhdpi/msg_in_photo.9.png | Bin 1591 -> 1332 bytes .../msg_in_photo_selected.9.png | Bin 1674 -> 1426 bytes .../res/drawable-xxhdpi/msg_in_selected.9.png | Bin 2223 -> 2361 bytes .../main/res/drawable-xxhdpi/msg_out.9.png | Bin 2042 -> 2338 bytes .../res/drawable-xxhdpi/msg_out_photo.9.png | Bin 1575 -> 1380 bytes .../msg_out_photo_selected.9.png | Bin 1650 -> 1367 bytes .../drawable-xxhdpi/msg_out_selected.9.png | Bin 2166 -> 2181 bytes .../res/drawable-xxhdpi/msg_photo_deliver.png | Bin 2153 -> 0 bytes .../res/drawable-xxhdpi/msg_photo_read.png | Bin 2952 -> 0 bytes .../res/drawable-xxhdpi/newmsg_divider.png | Bin 0 -> 201 bytes .../drawable-xxhdpi/no_chats_placeholder.png | Bin 4517 -> 0 bytes .../no_messages_placeholder.png | Bin 5297 -> 0 bytes .../main/res/drawable-xxhdpi/notification.png | Bin 1263 -> 1406 bytes .../src/main/res/drawable-xxhdpi/pagedown.png | Bin 0 -> 2422 bytes .../main/res/drawable-xxhdpi/phototime.9.png | Bin 0 -> 197 bytes .../src/main/res/drawable-xxhdpi/plus.png | Bin 0 -> 224 bytes .../res/drawable-xxhdpi/popup_fixed.9.png | Bin 2555 -> 2363 bytes .../main/res/drawable-xxhdpi/regbtn2.9.png | Bin 0 -> 478 bytes .../res/drawable-xxhdpi/regbtn2_pressed.9.png | Bin 0 -> 483 bytes .../src/main/res/drawable-xxhdpi/shadow.png | Bin 0 -> 144 bytes .../main/res/drawable-xxhdpi/spinner.9.png | Bin 0 -> 503 bytes .../res/drawable-xxhdpi/spinner_pressed.9.png | Bin 0 -> 473 bytes .../main/res/drawable-xxhdpi/switch_off1.png | Bin 0 -> 1226 bytes .../drawable-xxhdpi/switch_off1_pressed.png | Bin 0 -> 2036 bytes .../main/res/drawable-xxhdpi/switch_on1.png | Bin 0 -> 1480 bytes .../drawable-xxhdpi/switch_on1_pressed.png | Bin 0 -> 2307 bytes .../res/drawable-xxhdpi/system_black.9.png | Bin 0 -> 330 bytes .../res/drawable-xxhdpi/system_blue.9.png | Bin 0 -> 388 bytes .../res/drawable-xxhdpi/system_loader1.png | Bin 0 -> 1665 bytes .../res/drawable-xxhdpi/system_loader2.png | Bin 0 -> 1596 bytes .../res/drawable-xxhdpi/telegram_avatar.png | Bin 0 -> 4530 bytes .../typing_dot_chat_frame0.png | Bin 1148 -> 302 bytes .../typing_dot_chat_frame1.png | Bin 1391 -> 472 bytes .../typing_dot_chat_frame2.png | Bin 1383 -> 456 bytes .../typing_dot_chat_frame3.png | Bin 1371 -> 453 bytes .../res/drawable-xxhdpi/typing_dot_frame0.png | Bin 1141 -> 301 bytes .../res/drawable-xxhdpi/typing_dot_frame1.png | Bin 1386 -> 470 bytes .../res/drawable-xxhdpi/typing_dot_frame2.png | Bin 1374 -> 453 bytes .../res/drawable-xxhdpi/typing_dot_frame3.png | Bin 1367 -> 451 bytes .../main/res/drawable-xxhdpi/user_aqua.png | Bin 0 -> 2736 bytes .../main/res/drawable-xxhdpi/user_blue.png | Bin 0 -> 2929 bytes .../main/res/drawable-xxhdpi/user_green.png | Bin 0 -> 2933 bytes .../main/res/drawable-xxhdpi/user_orange.png | Bin 0 -> 2976 bytes .../main/res/drawable-xxhdpi/user_pink.png | Bin 0 -> 2913 bytes .../drawable-xxhdpi/user_placeholder_blue.png | Bin 5664 -> 0 bytes .../drawable-xxhdpi/user_placeholder_cyan.png | Bin 5668 -> 0 bytes .../user_placeholder_green.png | Bin 5778 -> 0 bytes .../user_placeholder_orange.png | Bin 5541 -> 0 bytes .../drawable-xxhdpi/user_placeholder_pink.png | Bin 5550 -> 0 bytes .../user_placeholder_purple.png | Bin 5492 -> 0 bytes .../drawable-xxhdpi/user_placeholder_red.png | Bin 5705 -> 0 bytes .../user_placeholder_yellow.png | Bin 5540 -> 0 bytes .../src/main/res/drawable-xxhdpi/user_red.png | Bin 0 -> 3049 bytes .../main/res/drawable-xxhdpi/user_violet.png | Bin 0 -> 3007 bytes .../main/res/drawable-xxhdpi/user_yellow.png | Bin 0 -> 2951 bytes .../main/res/drawable-xxhdpi/viewbtn.9.png | Bin 0 -> 1283 bytes .../res/drawable-xxhdpi/viewbtn_pressed.9.png | Bin 0 -> 1279 bytes .../src/main/res/drawable/bar_selector.xml | 19 + .../src/main/res/drawable/btn_check_off.xml | 8 +- .../{btn_check.xml => btn_check_off_old.xml} | 4 +- .../src/main/res/drawable/btn_check_on.xml | 8 +- .../main/res/drawable/btn_check_on_old.xml | 8 + .../drawable/chat_incoming_media_states.xml | 8 +- .../main/res/drawable/gallery_action_bar.xml | 5 + .../src/main/res/drawable/gray_button.xml | 23 + .../src/main/res/drawable/highlight.xml | 12 - .../main/res/drawable/highlight_down.9.png | Bin 94 -> 0 bytes .../main/res/drawable/highlight_focused.9.png | Bin 94 -> 0 bytes .../src/main/res/drawable/list_selector.xml | 6 +- .../main/res/drawable/loading_animation.xml | 2 +- .../res/drawable/loading_custom_animation.xml | 6 - .../main/res/drawable/photo_placeholder.9.png | Bin 1552 -> 0 bytes .../res/drawable/photo_placeholder_in.xml | 7 + .../res/drawable/photo_placeholder_out.xml | 7 + .../src/main/res/drawable/photo_progress.xml | 14 + ...ia_custom_states.xml => regbtn_states.xml} | 9 +- .../src/main/res/drawable/search_carret.xml | 8 + .../src/main/res/drawable/spinner_states.xml | 7 + .../res/layout-ar/chat_profile_add_row.xml | 12 +- .../layout-ar/chat_profile_avatar_layout.xml | 35 +- .../chat_profile_change_name_layout.xml | 7 +- .../main/res/layout-ar/contact_add_layout.xml | 39 +- .../layout-ar/contacts_invite_row_layout.xml | 2 +- .../main/res/layout-ar/contacts_layout.xml | 3 +- .../main/res/layout-ar/country_row_layout.xml | 36 + .../res/layout-ar/country_select_layout.xml | 35 + .../layout-ar/group_create_final_layout.xml | 36 +- .../res/layout-ar/group_create_layout.xml | 127 +- .../res/layout-ar/group_create_row_layout.xml | 5 +- .../src/main/res/layout-ar/messages_list.xml | 10 +- .../main/res/layout-ar/messages_list_row.xml | 80 +- .../res/layout-ar/messages_list_row_chat.xml | 154 - .../layout-ar/messages_search_chat_layout.xml | 49 +- .../layout-ar/messages_search_user_layout.xml | 79 +- .../res/layout-ar/notification_layout.xml | 7 - .../settings_blocked_users_layout.xml | 72 +- .../layout-ar/settings_change_name_layout.xml | 89 +- .../main/res/layout-ar/settings_layout.xml | 42 +- .../res/layout-ar/settings_name_layout.xml | 86 +- .../layout-ar/settings_row_button_layout.xml | 39 +- .../layout-ar/settings_row_check_layout.xml | 45 +- .../settings_row_check_notify_layout.xml | 39 +- .../layout-ar/settings_row_detail_layout.xml | 64 +- .../res/layout-ar/settings_section_layout.xml | 6 +- .../layout-ar/user_profile_avatar_layout.xml | 65 +- .../user_profile_identicon_layout.xml | 13 +- .../user_profile_leftright_row_layout.xml | 56 +- .../layout-ar/user_profile_phone_layout.xml | 71 +- .../main/res/layout/application_layout.xml | 5 - .../chat_action_change_photo_layout.xml | 31 +- .../res/layout/chat_action_message_layout.xml | 37 +- .../chat_group_incoming_contact_layout.xml | 1 - .../chat_group_incoming_forward_layout.xml | 72 +- .../chat_group_incoming_location_layout.xml | 60 +- .../chat_group_incoming_photo_layout.xml | 78 +- .../chat_group_incoming_text_layout.xml | 75 +- .../chat_group_incoming_video_layout.xml | 157 +- .../layout/chat_incoming_contact_layout.xml | 1 - .../layout/chat_incoming_forward_layout.xml | 43 +- .../layout/chat_incoming_location_layout.xml | 94 +- .../res/layout/chat_incoming_photo_layout.xml | 64 +- .../res/layout/chat_incoming_text_layout.xml | 46 +- .../res/layout/chat_incoming_video_layout.xml | 113 +- .../src/main/res/layout/chat_layout.xml | 238 +- .../main/res/layout/chat_loading_layout.xml | 27 + .../layout/chat_outgoing_contact_layout.xml | 3 +- .../layout/chat_outgoing_forward_layout.xml | 94 +- .../layout/chat_outgoing_location_layout.xml | 109 +- .../res/layout/chat_outgoing_photo_layout.xml | 99 +- .../res/layout/chat_outgoing_text_layout.xml | 97 +- .../res/layout/chat_outgoing_video_layout.xml | 156 +- .../main/res/layout/chat_profile_add_row.xml | 12 +- .../res/layout/chat_profile_avatar_layout.xml | 35 +- .../chat_profile_change_name_layout.xml | 7 +- .../main/res/layout/chat_profile_layout.xml | 7 +- .../main/res/layout/chat_unread_layout.xml | 31 + .../main/res/layout/contact_add_layout.xml | 36 +- .../res/layout/contacts_invite_row_layout.xml | 2 +- .../src/main/res/layout/contacts_layout.xml | 3 +- .../main/res/layout/country_row_layout.xml | 36 + .../main/res/layout/country_select_layout.xml | 35 + .../src/main/res/layout/gallery_layout.xml | 113 +- .../main/res/layout/gallery_page_layout.xml | 27 +- .../res/layout/group_create_done_layout.xml | 8 +- .../res/layout/group_create_final_layout.xml | 35 +- .../main/res/layout/group_create_layout.xml | 127 +- .../res/layout/group_create_row_layout.xml | 5 +- .../group_profile_add_member_layout.xml | 30 + .../src/main/res/layout/identicon_layout.xml | 7 +- .../src/main/res/layout/intro_layout.xml | 128 +- .../src/main/res/layout/intro_view_layout.xml | 57 +- .../res/layout/location_attach_layout.xml | 2 +- .../res/layout/login_country_dropdown.xml | 17 - .../res/layout/login_country_textview.xml | 14 - .../src/main/res/layout/login_layout.xml | 339 +- .../main/res/layout/login_phone_layout.xml | 65 - .../main/res/layout/login_register_layout.xml | 72 - .../src/main/res/layout/login_sms_layout.xml | 47 - .../src/main/res/layout/media_layout.xml | 1 - .../main/res/layout/media_video_layout.xml | 49 +- .../src/main/res/layout/messages_list.xml | 12 +- .../src/main/res/layout/messages_list_row.xml | 171 +- .../res/layout/messages_list_row_chat.xml | 152 - .../layout/messages_search_chat_layout.xml | 47 +- .../layout/messages_search_user_layout.xml | 75 +- .../main/res/layout/notification_layout.xml | 27 +- .../layout/settings_blocked_users_layout.xml | 70 +- .../layout/settings_change_name_layout.xml | 79 +- .../res/layout/settings_do_action_layout.xml | 83 +- .../src/main/res/layout/settings_layout.xml | 40 +- .../res/layout/settings_logout_button.xml | 26 +- .../main/res/layout/settings_name_layout.xml | 107 +- .../res/layout/settings_row_button_layout.xml | 39 +- .../res/layout/settings_row_check_layout.xml | 54 +- .../settings_row_check_notify_layout.xml | 53 +- .../res/layout/settings_row_detail_layout.xml | 64 +- .../res/layout/settings_section_layout.xml | 43 +- .../settings_unblock_info_row_layout.xml | 22 +- .../res/layout/settings_wallpapers_layout.xml | 23 +- .../res/layout/settings_wallpapers_my_row.xml | 6 +- .../layout/settings_wallpapers_other_row.xml | 6 +- .../main/res/layout/updating_state_layout.xml | 67 +- .../res/layout/user_profile_avatar_layout.xml | 62 +- .../layout/user_profile_identicon_layout.xml | 13 +- .../main/res/layout/user_profile_layout.xml | 63 +- .../user_profile_leftright_row_layout.xml | 58 +- .../res/layout/user_profile_phone_layout.xml | 93 +- TMessagesProj/src/main/res/menu/chat_menu.xml | 45 +- .../src/main/res/menu/contacts_menu.xml | 17 +- .../src/main/res/menu/gallery_menu.xml | 14 +- .../main/res/menu/gallery_save_only_menu.xml | 8 +- .../src/main/res/menu/gallery_video_menu.xml | 7 +- .../src/main/res/menu/group_create_menu.xml | 13 +- .../src/main/res/menu/group_profile_menu.xml | 10 + .../src/main/res/menu/location_menu.xml | 30 +- .../res/menu/messages_deleteonly_menu.xml | 8 +- .../main/res/menu/messages_encrypted_menu.xml | 11 +- .../src/main/res/menu/messages_full_menu.xml | 14 +- .../src/main/res/menu/messages_list_menu.xml | 43 +- .../res/menu/messages_list_select_menu.xml | 17 +- .../menu/settings_block_users_bar_menu.xml | 13 +- .../main/res/menu/user_profile_block_menu.xml | 7 +- .../res/menu/user_profile_contact_menu.xml | 16 +- .../src/main/res/menu/user_profile_menu.xml | 15 +- .../src/main/res/values-ar/strings.xml | 51 +- TMessagesProj/src/main/res/values/attrs.xml | 4 +- TMessagesProj/src/main/res/values/colors.xml | 2 +- TMessagesProj/src/main/res/values/strings.xml | 73 +- TMessagesProj/src/main/res/values/styles.xml | 74 +- gradle/wrapper/gradle-wrapper.properties | 2 +- 969 files changed, 20183 insertions(+), 14775 deletions(-) create mode 100755 TMessagesProj/jni/build_ffmpeg_android.sh create mode 100644 TMessagesProj/jni/log.h create mode 100644 TMessagesProj/jni/video.c create mode 100644 TMessagesProj/jni/video.h create mode 100644 TMessagesProj/jni/video_audio_in.c create mode 100644 TMessagesProj/jni/video_audio_out.c delete mode 100755 TMessagesProj/libs/mips/libtmessages.so delete mode 100644 TMessagesProj/src/main/assets/fonts/rlight.ttf create mode 100644 TMessagesProj/src/main/assets/fonts/rmedium.ttf rename TMessagesProj/src/main/java/jawnae/pyronet/{traffic => }/ByteStream.java (99%) rename TMessagesProj/src/main/java/jawnae/pyronet/{events => }/PyroClientAdapter.java (94%) rename TMessagesProj/src/main/java/jawnae/pyronet/{events => }/PyroClientListener.java (95%) delete mode 100755 TMessagesProj/src/main/java/jawnae/pyronet/PyroServer.java delete mode 100755 TMessagesProj/src/main/java/jawnae/pyronet/addon/PyroRoundrobinSelectorProvider.java delete mode 100755 TMessagesProj/src/main/java/jawnae/pyronet/addon/PyroSelectorProvider.java delete mode 100755 TMessagesProj/src/main/java/jawnae/pyronet/addon/PyroSingletonSelectorProvider.java delete mode 100755 TMessagesProj/src/main/java/jawnae/pyronet/events/PyroLazyBastardAdapter.java delete mode 100755 TMessagesProj/src/main/java/jawnae/pyronet/events/PyroSelectorAdapter.java delete mode 100755 TMessagesProj/src/main/java/jawnae/pyronet/events/PyroSelectorListener.java delete mode 100755 TMessagesProj/src/main/java/jawnae/pyronet/events/PyroServerAdapter.java delete mode 100755 TMessagesProj/src/main/java/jawnae/pyronet/events/PyroServerListener.java delete mode 100755 TMessagesProj/src/main/java/jawnae/pyronet/traffic/ByteSink.java delete mode 100755 TMessagesProj/src/main/java/jawnae/pyronet/traffic/ByteSinkEndsWith.java delete mode 100755 TMessagesProj/src/main/java/jawnae/pyronet/traffic/ByteSinkLength.java delete mode 100755 TMessagesProj/src/main/java/jawnae/pyronet/traffic/ByteSinkPacket16.java delete mode 100755 TMessagesProj/src/main/java/jawnae/pyronet/traffic/ByteSinkPacket24.java delete mode 100755 TMessagesProj/src/main/java/jawnae/pyronet/traffic/ByteSinkPacket32.java delete mode 100755 TMessagesProj/src/main/java/jawnae/pyronet/traffic/PyroByteSinkFeeder.java create mode 100644 TMessagesProj/src/main/java/org/telegram/messenger/FileLog.java delete mode 100644 TMessagesProj/src/main/java/org/telegram/messenger/UpdateDatacenterListAction.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/CountrySelectActivity.java rename TMessagesProj/src/main/java/org/telegram/ui/{ScreenSlidePageFragmentPhone.java => LoginActivityPhoneView.java} (51%) create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/LoginActivityRegisterView.java rename TMessagesProj/src/main/java/org/telegram/ui/{ScreenSlidePageFragmentSms.java => LoginActivitySmsView.java} (71%) delete mode 100644 TMessagesProj/src/main/java/org/telegram/ui/ScreenSlidePageFragmentRegister.java delete mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Views/NonSwipeableViewPager.java delete mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Views/SlideFragment.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Views/SlideView.java delete mode 100644 TMessagesProj/src/main/res/color/blue_text_color_states.xml create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/addmember.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/bigtimer.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/call.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/day_box.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/day_box_custom.9.png create mode 100644 TMessagesProj/src/main/res/drawable-hdpi/dialogs_badge.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/dialogs_badge.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/dialogs_check.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/dialogs_halfcheck.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/gift_aqua.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/gift_blue.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/gift_green.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/gift_orange.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/gift_pink.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/gift_red.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/gift_violet.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/gift_yellow.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/group_aqua.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/group_blue.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/group_green.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/group_orange.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/group_pink.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/group_placeholder_blue.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/group_placeholder_cyan.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/group_placeholder_green.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/group_placeholder_orange.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/group_placeholder_pink.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/group_placeholder_purple.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/group_placeholder_red.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/group_placeholder_yellow.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/group_red.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/group_violet.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/group_yellow.png create mode 100644 TMessagesProj/src/main/res/drawable-hdpi/header.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/header.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/header_shadow.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/ic_ab_back.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/ic_ab_compose.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/ic_ab_location.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/ic_ab_logo.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/ic_ab_new.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/ic_ab_other.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/ic_add_member.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/ic_attach_gallery.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/ic_attach_location.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/ic_attach_photo.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/ic_attach_video.png create mode 100644 TMessagesProj/src/main/res/drawable-hdpi/ic_done.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/ic_lock_gray.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/ic_msg_panel_smiles.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/ic_profile_send_message.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/ic_send.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/ic_send_disabled.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/icon0.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/icon1.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/icon2.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/icon3.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/icon4.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/icon5.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/intro1.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/intro2.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/intro3.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/intro4.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/intro5.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/intro6.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/intro7.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/msg_btn_custom_down.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/msg_btn_custom_up.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/msg_btn_down.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/msg_btn_up.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/msg_check.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/msg_check_w.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/msg_halfcheck.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/msg_halfcheck_w.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/msg_in.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/msg_in_photo.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/msg_in_photo_selected.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/msg_in_selected.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/msg_out.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/msg_out_photo.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/msg_out_photo_selected.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/msg_out_selected.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/msg_photo_deliver.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/msg_photo_read.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/newmsg_divider.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/no_chats_placeholder.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/no_messages_placeholder.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/notification.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/pagedown.png create mode 100644 TMessagesProj/src/main/res/drawable-hdpi/phototime.9.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/plus.png create mode 100644 TMessagesProj/src/main/res/drawable-hdpi/regbtn2.9.png create mode 100644 TMessagesProj/src/main/res/drawable-hdpi/regbtn2_pressed.9.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/shadow.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/spinner.9.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/spinner_pressed.9.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/switch_off1.png create mode 100644 TMessagesProj/src/main/res/drawable-hdpi/switch_off1_pressed.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/switch_on1.png create mode 100644 TMessagesProj/src/main/res/drawable-hdpi/switch_on1_pressed.png create mode 100644 TMessagesProj/src/main/res/drawable-hdpi/system_black.9.png create mode 100644 TMessagesProj/src/main/res/drawable-hdpi/system_blue.9.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/system_loader1.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/system_loader2.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/typing_dot_chat_frame0.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/typing_dot_chat_frame1.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/typing_dot_chat_frame2.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/typing_dot_chat_frame3.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/typing_dot_frame0.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/typing_dot_frame1.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/typing_dot_frame2.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-hdpi/typing_dot_frame3.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/user_aqua.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/user_blue.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/user_green.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/user_orange.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/user_pink.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/user_placeholder_blue.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/user_placeholder_cyan.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/user_placeholder_green.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/user_placeholder_orange.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/user_placeholder_pink.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/user_placeholder_purple.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/user_placeholder_red.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/user_placeholder_yellow.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/user_red.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/user_violet.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/user_yellow.png create mode 100644 TMessagesProj/src/main/res/drawable-hdpi/viewbtn.9.png create mode 100644 TMessagesProj/src/main/res/drawable-hdpi/viewbtn_pressed.9.png create mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ab_progress.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/addmember.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/bigtimer.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/call.png create mode 100644 TMessagesProj/src/main/res/drawable-ldpi/dialogs_badge.9.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/dialogs_check.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/dialogs_halfcheck.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/gift_aqua.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/gift_blue.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/gift_green.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/gift_orange.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/gift_pink.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/gift_red.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/gift_violet.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/gift_yellow.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/group_aqua.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/group_blue.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/group_green.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/group_orange.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/group_pink.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/group_placeholder_blue.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/group_placeholder_cyan.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/group_placeholder_green.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/group_placeholder_orange.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/group_placeholder_pink.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/group_placeholder_purple.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/group_placeholder_red.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/group_placeholder_yellow.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/group_red.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/group_violet.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/group_yellow.png create mode 100644 TMessagesProj/src/main/res/drawable-ldpi/header.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/header.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/header_shadow.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_ab_back.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_ab_compose.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_ab_location.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_ab_logo.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_ab_new.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_ab_other.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_add_member.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_attach_gallery.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_attach_location.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_attach_photo.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_attach_video.png create mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_done.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/ic_lock_gray.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_msg_panel_smiles.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_profile_send_message.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_send.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-ldpi/ic_send_disabled.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/icon0.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/icon1.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/icon2.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/icon3.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/icon4.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/icon5.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/intro1.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/intro2.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/intro3.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/intro4.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/intro5.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/intro6.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/intro7.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/msg_check.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/msg_check_w.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/msg_halfcheck.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/msg_halfcheck_w.png create mode 100644 TMessagesProj/src/main/res/drawable-ldpi/msg_in.9.png create mode 100644 TMessagesProj/src/main/res/drawable-ldpi/msg_in_photo.9.png create mode 100644 TMessagesProj/src/main/res/drawable-ldpi/msg_in_photo_selected.9.png create mode 100644 TMessagesProj/src/main/res/drawable-ldpi/msg_in_selected.9.png create mode 100644 TMessagesProj/src/main/res/drawable-ldpi/msg_out.9.png create mode 100644 TMessagesProj/src/main/res/drawable-ldpi/msg_out_photo.9.png create mode 100644 TMessagesProj/src/main/res/drawable-ldpi/msg_out_photo_selected.9.png create mode 100644 TMessagesProj/src/main/res/drawable-ldpi/msg_out_selected.9.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/newmsg_divider.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/no_chats_placeholder.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/no_messages_placeholder.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/notification.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/pagedown.png create mode 100644 TMessagesProj/src/main/res/drawable-ldpi/phototime.9.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/plus.png create mode 100644 TMessagesProj/src/main/res/drawable-ldpi/regbtn2.9.png create mode 100644 TMessagesProj/src/main/res/drawable-ldpi/regbtn2_pressed.9.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/shadow.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/spinner.9.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/spinner_pressed.9.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/switch_off1.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/switch_off1_pressed.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/switch_on1.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/switch_on1_pressed.png create mode 100644 TMessagesProj/src/main/res/drawable-ldpi/system_black.9.png create mode 100644 TMessagesProj/src/main/res/drawable-ldpi/system_blue.9.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/system_loader1.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/system_loader2.png create mode 100644 TMessagesProj/src/main/res/drawable-ldpi/telegram_avatar.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/user_aqua.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/user_blue.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/user_green.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/user_orange.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/user_pink.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/user_placeholder_blue.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/user_placeholder_cyan.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/user_placeholder_green.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/user_placeholder_orange.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/user_placeholder_pink.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/user_placeholder_purple.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/user_placeholder_red.png delete mode 100644 TMessagesProj/src/main/res/drawable-ldpi/user_placeholder_yellow.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/user_red.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/user_violet.png create mode 100755 TMessagesProj/src/main/res/drawable-ldpi/user_yellow.png create mode 100644 TMessagesProj/src/main/res/drawable-ldpi/viewbtn.9.png create mode 100644 TMessagesProj/src/main/res/drawable-ldpi/viewbtn_pressed.9.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/addmember.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/bigtimer.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/call.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/day_box.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/day_box_custom.9.png create mode 100644 TMessagesProj/src/main/res/drawable-mdpi/dialogs_badge.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/dialogs_badge.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/dialogs_check.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/dialogs_halfcheck.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/gift_aqua.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/gift_blue.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/gift_green.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/gift_orange.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/gift_pink.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/gift_red.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/gift_violet.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/gift_yellow.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/group_aqua.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/group_blue.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/group_green.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/group_orange.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/group_pink.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/group_placeholder_blue.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/group_placeholder_cyan.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/group_placeholder_green.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/group_placeholder_orange.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/group_placeholder_pink.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/group_placeholder_purple.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/group_placeholder_red.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/group_placeholder_yellow.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/group_red.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/group_violet.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/group_yellow.png create mode 100644 TMessagesProj/src/main/res/drawable-mdpi/header.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/header.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/header_shadow.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/ic_ab_back.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/ic_ab_compose.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/ic_ab_location.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/ic_ab_logo.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/ic_ab_new.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/ic_ab_other.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/ic_add_member.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/ic_attach_gallery.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/ic_attach_location.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/ic_attach_photo.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/ic_attach_video.png create mode 100644 TMessagesProj/src/main/res/drawable-mdpi/ic_done.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/ic_lock_gray.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/ic_msg_panel_smiles.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/ic_profile_send_message.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/ic_send.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/ic_send_disabled.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/icon0.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/icon1.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/icon2.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/icon3.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/icon4.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/icon5.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/intro1.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/intro2.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/intro3.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/intro4.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/intro5.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/intro6.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/intro7.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/msg_btn_custom_down.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/msg_btn_custom_up.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/msg_btn_down.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/msg_btn_up.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/msg_check.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/msg_check_w.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/msg_halfcheck.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/msg_halfcheck_w.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/msg_in.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/msg_in_photo.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/msg_in_photo_selected.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/msg_in_selected.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/msg_out.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/msg_out_photo.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/msg_out_photo_selected.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/msg_out_selected.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/msg_photo_deliver.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/msg_photo_read.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/newmsg_divider.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/no_chats_placeholder.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/no_messages_placeholder.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/notification.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/pagedown.png create mode 100644 TMessagesProj/src/main/res/drawable-mdpi/phototime.9.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/plus.png create mode 100644 TMessagesProj/src/main/res/drawable-mdpi/regbtn2.9.png create mode 100644 TMessagesProj/src/main/res/drawable-mdpi/regbtn2_pressed.9.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/shadow.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/spinner.9.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/spinner_pressed.9.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/switch_off1.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/switch_off1_pressed.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/switch_on1.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/switch_on1_pressed.png create mode 100644 TMessagesProj/src/main/res/drawable-mdpi/system_black.9.png create mode 100644 TMessagesProj/src/main/res/drawable-mdpi/system_blue.9.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/system_loader1.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/system_loader2.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/typing_dot_chat_frame0.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/typing_dot_chat_frame1.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/typing_dot_chat_frame2.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/typing_dot_chat_frame3.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/typing_dot_frame0.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/typing_dot_frame1.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/typing_dot_frame2.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-mdpi/typing_dot_frame3.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/user_aqua.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/user_blue.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/user_green.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/user_orange.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/user_pink.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/user_placeholder_blue.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/user_placeholder_cyan.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/user_placeholder_green.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/user_placeholder_orange.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/user_placeholder_pink.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/user_placeholder_purple.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/user_placeholder_red.png delete mode 100644 TMessagesProj/src/main/res/drawable-mdpi/user_placeholder_yellow.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/user_red.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/user_violet.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/user_yellow.png create mode 100644 TMessagesProj/src/main/res/drawable-mdpi/viewbtn.9.png create mode 100644 TMessagesProj/src/main/res/drawable-mdpi/viewbtn_pressed.9.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/addmember.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/bigtimer.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/call.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/day_box.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/day_box_custom.9.png create mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/dialogs_badge.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/dialogs_badge.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/dialogs_check.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/dialogs_halfcheck.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/gift_aqua.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/gift_blue.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/gift_green.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/gift_orange.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/gift_pink.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/gift_red.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/gift_violet.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/gift_yellow.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/group_aqua.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/group_blue.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/group_green.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/group_orange.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/group_pink.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/group_placeholder_blue.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/group_placeholder_cyan.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/group_placeholder_green.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/group_placeholder_orange.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/group_placeholder_pink.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/group_placeholder_purple.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/group_placeholder_red.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/group_placeholder_yellow.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/group_red.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/group_violet.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/group_yellow.png create mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/header.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/header.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/header_shadow.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_back.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_compose.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_location.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_logo.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_new.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/ic_ab_other.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/ic_add_member.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/ic_attach_gallery.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/ic_attach_location.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/ic_attach_photo.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/ic_attach_video.png create mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/ic_done.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/ic_lock_gray.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/ic_msg_panel_smiles.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/ic_profile_send_message.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/ic_send.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/ic_send_disabled.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/icon0.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/icon1.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/icon2.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/icon3.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/icon4.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/icon5.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/intro1.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/intro2.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/intro3.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/intro4.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/intro5.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/intro6.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/intro7.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/msg_btn_custom_down.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/msg_btn_custom_up.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/msg_btn_down.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/msg_btn_up.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/msg_check.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/msg_check_w.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/msg_halfcheck.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/msg_halfcheck_w.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/msg_in.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/msg_in_photo.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/msg_in_photo_selected.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/msg_in_selected.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/msg_out.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/msg_out_photo.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/msg_out_photo_selected.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/msg_out_selected.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_deliver.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/msg_photo_read.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/newmsg_divider.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/no_chats_placeholder.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/no_messages_placeholder.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/notification.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/pagedown.png create mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/phototime.9.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/plus.png create mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/regbtn2.9.png create mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/regbtn2_pressed.9.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/shadow.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/spenner_pressed.9.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/spinner.9.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/spinner_pressed.9.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/switch_off1.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/switch_off1_pressed.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/switch_on1.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/switch_on1_pressed.png create mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/system_black.9.png create mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/system_blue.9.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/system_loader1.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/system_loader2.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/typing_dot_chat_frame0.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/typing_dot_chat_frame1.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/typing_dot_chat_frame2.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/typing_dot_chat_frame3.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/typing_dot_frame0.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/typing_dot_frame1.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/typing_dot_frame2.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xhdpi/typing_dot_frame3.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/user_aqua.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/user_blue.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/user_green.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/user_orange.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/user_pink.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/user_placeholder_blue.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/user_placeholder_cyan.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/user_placeholder_green.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/user_placeholder_orange.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/user_placeholder_pink.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/user_placeholder_purple.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/user_placeholder_red.png delete mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/user_placeholder_yellow.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/user_red.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/user_violet.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/user_yellow.png create mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/viewbtn.9.png create mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/viewbtn_pressed.9.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/addmember.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/bigtimer.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/call.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/day_box.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/day_box_custom.9.png create mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/dialogs_badge.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/dialogs_badge.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/dialogs_check.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/dialogs_halfcheck.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/gift_aqua.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/gift_blue.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/gift_green.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/gift_orange.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/gift_pink.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/gift_red.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/gift_violet.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/gift_yellow.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/group_aqua.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/group_blue.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/group_green.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/group_orange.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/group_pink.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/group_placeholder_blue.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/group_placeholder_cyan.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/group_placeholder_green.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/group_placeholder_orange.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/group_placeholder_pink.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/group_placeholder_purple.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/group_placeholder_red.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/group_placeholder_yellow.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/group_red.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/group_violet.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/group_yellow.png create mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/header.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/header.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/header_shadow.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_back.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_compose.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_location.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_logo.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_new.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/ic_ab_other.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/ic_add_member.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/ic_attach_gallery.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/ic_attach_location.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/ic_attach_photo.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/ic_attach_video.png create mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/ic_done.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/ic_lock_gray.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/ic_msg_panel_smiles.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/ic_profile_send_message.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/ic_send.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/ic_send_disabled.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/icon0.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/icon1.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/icon2.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/icon3.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/icon4.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/icon5.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/intro1.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/intro2.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/intro3.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/intro4.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/intro5.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/intro6.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/intro7.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/msg_btn_custom_down.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/msg_btn_custom_up.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/msg_btn_down.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/msg_btn_up.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/msg_check.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/msg_check_w.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/msg_halfcheck.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/msg_halfcheck_w.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/msg_in.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/msg_in_photo.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/msg_in_photo_selected.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/msg_in_selected.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/msg_out.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/msg_out_photo.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/msg_out_photo_selected.9.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/msg_out_selected.9.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_deliver.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/msg_photo_read.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/newmsg_divider.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/no_chats_placeholder.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/no_messages_placeholder.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/notification.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/pagedown.png create mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/phototime.9.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/plus.png create mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/regbtn2.9.png create mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/regbtn2_pressed.9.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/shadow.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/spinner.9.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/spinner_pressed.9.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/switch_off1.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/switch_off1_pressed.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/switch_on1.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/switch_on1_pressed.png create mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/system_black.9.png create mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/system_blue.9.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/system_loader1.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/system_loader2.png create mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/telegram_avatar.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/typing_dot_chat_frame0.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/typing_dot_chat_frame1.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/typing_dot_chat_frame2.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/typing_dot_chat_frame3.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/typing_dot_frame0.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/typing_dot_frame1.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/typing_dot_frame2.png mode change 100644 => 100755 TMessagesProj/src/main/res/drawable-xxhdpi/typing_dot_frame3.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/user_aqua.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/user_blue.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/user_green.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/user_orange.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/user_pink.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/user_placeholder_blue.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/user_placeholder_cyan.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/user_placeholder_green.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/user_placeholder_orange.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/user_placeholder_pink.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/user_placeholder_purple.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/user_placeholder_red.png delete mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/user_placeholder_yellow.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/user_red.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/user_violet.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/user_yellow.png create mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/viewbtn.9.png create mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/viewbtn_pressed.9.png create mode 100644 TMessagesProj/src/main/res/drawable/bar_selector.xml rename TMessagesProj/src/main/res/drawable/{btn_check.xml => btn_check_off_old.xml} (50%) create mode 100644 TMessagesProj/src/main/res/drawable/btn_check_on_old.xml create mode 100644 TMessagesProj/src/main/res/drawable/gallery_action_bar.xml create mode 100644 TMessagesProj/src/main/res/drawable/gray_button.xml delete mode 100644 TMessagesProj/src/main/res/drawable/highlight.xml delete mode 100644 TMessagesProj/src/main/res/drawable/highlight_down.9.png delete mode 100644 TMessagesProj/src/main/res/drawable/highlight_focused.9.png delete mode 100644 TMessagesProj/src/main/res/drawable/loading_custom_animation.xml delete mode 100644 TMessagesProj/src/main/res/drawable/photo_placeholder.9.png create mode 100644 TMessagesProj/src/main/res/drawable/photo_placeholder_in.xml create mode 100644 TMessagesProj/src/main/res/drawable/photo_placeholder_out.xml create mode 100644 TMessagesProj/src/main/res/drawable/photo_progress.xml rename TMessagesProj/src/main/res/drawable/{chat_incoming_media_custom_states.xml => regbtn_states.xml} (68%) create mode 100644 TMessagesProj/src/main/res/drawable/search_carret.xml create mode 100644 TMessagesProj/src/main/res/drawable/spinner_states.xml create mode 100644 TMessagesProj/src/main/res/layout-ar/country_row_layout.xml create mode 100644 TMessagesProj/src/main/res/layout-ar/country_select_layout.xml delete mode 100644 TMessagesProj/src/main/res/layout-ar/messages_list_row_chat.xml create mode 100644 TMessagesProj/src/main/res/layout/chat_loading_layout.xml create mode 100644 TMessagesProj/src/main/res/layout/chat_unread_layout.xml create mode 100644 TMessagesProj/src/main/res/layout/country_row_layout.xml create mode 100644 TMessagesProj/src/main/res/layout/country_select_layout.xml create mode 100644 TMessagesProj/src/main/res/layout/group_profile_add_member_layout.xml delete mode 100644 TMessagesProj/src/main/res/layout/login_country_dropdown.xml delete mode 100644 TMessagesProj/src/main/res/layout/login_country_textview.xml delete mode 100644 TMessagesProj/src/main/res/layout/login_phone_layout.xml delete mode 100644 TMessagesProj/src/main/res/layout/login_register_layout.xml delete mode 100644 TMessagesProj/src/main/res/layout/login_sms_layout.xml delete mode 100644 TMessagesProj/src/main/res/layout/messages_list_row_chat.xml create mode 100644 TMessagesProj/src/main/res/menu/group_profile_menu.xml diff --git a/TMessages.iml b/TMessages.iml index 94f1c61c0..2140a04b0 100644 --- a/TMessages.iml +++ b/TMessages.iml @@ -1,6 +1,8 @@ - + + + diff --git a/TMessagesProj/TMessagesProj.iml b/TMessagesProj/TMessagesProj.iml index 110247cd4..6de4305f0 100644 --- a/TMessagesProj/TMessagesProj.iml +++ b/TMessagesProj/TMessagesProj.iml @@ -3,10 +3,10 @@ - diff --git a/TMessagesProj/build.gradle b/TMessagesProj/build.gradle index 690626178..22d52f6fc 100644 --- a/TMessagesProj/build.gradle +++ b/TMessagesProj/build.gradle @@ -3,7 +3,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:0.5.+' + classpath 'com.android.tools.build:gradle:0.7.+' } } apply plugin: 'android' @@ -22,25 +22,49 @@ task nativeLibsToJar( into 'lib/' } -tasks.withType(Compile) { +tasks.withType(JavaCompile) { options.encoding = "UTF-8" } -tasks.withType(Compile) { +tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn(nativeLibsToJar) } dependencies { - compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar' compile 'com.google.android.gms:play-services:4.0.+' compile 'net.hockeyapp.android:HockeySDK:3.0.1' compile 'com.android.support:support-v4:19.0.+' - compile fileTree(dir: "$buildDir/native-libs", include: '*.jar') + compile 'com.android.support:appcompat-v7:19.0.+' + compile fileTree(dir: "$buildDir/native-libs", include: 'native-libs.jar') } android { compileSdkVersion 19 - buildToolsVersion "19.0.0" + buildToolsVersion '19.0.0' + + signingConfigs { + debug { + storeFile file("debug.keystore") + } + + release { + storeFile file("release.keystore") + } + } + + buildTypes { + debug { + debuggable true + jniDebugBuild true + signingConfig signingConfigs.debug + } + + release { + debuggable false + jniDebugBuild false + signingConfig signingConfigs.release + } + } defaultConfig { minSdkVersion 8 diff --git a/TMessagesProj/jni/Android.mk b/TMessagesProj/jni/Android.mk index 7e289bb6b..930f2fc80 100755 --- a/TMessagesProj/jni/Android.mk +++ b/TMessagesProj/jni/Android.mk @@ -1,10 +1,11 @@ +NDK_TOOLCHAIN_VERSION := 4.8 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) -LOCAL_MODULE := tmessages -LOCAL_CFLAGS = -w +LOCAL_MODULE := tmessages +LOCAL_CFLAGS = -w -std=gnu99 -O3 LOCAL_LDLIBS := -llog - + LOCAL_SRC_FILES := \ ./aes_core.c \ ./aes_ige.c \ @@ -15,5 +16,6 @@ LOCAL_SRC_FILES := \ ./org_telegram_SQLite_SQLiteDatabase.c \ ./org_telegram_SQLite_SQLitePreparedStatement.c \ ./org_telegram_SQLite.c + include $(BUILD_SHARED_LIBRARY) \ No newline at end of file diff --git a/TMessagesProj/jni/Application.mk b/TMessagesProj/jni/Application.mk index f81b8fcb9..61a377ba9 100644 --- a/TMessagesProj/jni/Application.mk +++ b/TMessagesProj/jni/Application.mk @@ -1,2 +1,2 @@ -APP_PLATFORM := android-8 -APP_ABI := armeabi armeabi-v7a x86 mips \ No newline at end of file +APP_PLATFORM := android-9 +APP_ABI := armeabi armeabi-v7a x86 \ No newline at end of file diff --git a/TMessagesProj/jni/build_ffmpeg_android.sh b/TMessagesProj/jni/build_ffmpeg_android.sh new file mode 100755 index 000000000..42180f253 --- /dev/null +++ b/TMessagesProj/jni/build_ffmpeg_android.sh @@ -0,0 +1,128 @@ +#!/bin/bash + +function build_one { + +echo "Cleaning..." +make clean + +echo "Configuring..." + +./configure --target-os=linux \ +--prefix=$PREFIX \ +--enable-cross-compile \ +--extra-libs="-lgcc" \ +--arch=$ARCH \ +--cc=$CC \ +--cross-prefix=$CROSS_PREFIX \ +--nm=$NM \ +--sysroot=$PLATFORM \ +--extra-cflags=" -O3 -fpic -DANDROID -DHAVE_SYS_UIO_H=1 -fasm -Wno-psabi -fno-short-enums -Dipv6mr_interface=ipv6mr_ifindex -fno-strict-aliasing -finline-limit=300 $OPTIMIZE_CFLAGS " \ +--disable-shared \ +--enable-static \ +--extra-ldflags="-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib -lc -lm -ldl" \ +\ +--disable-everything \ +--disable-network \ +--enable-small \ +--enable-zlib \ +--disable-avfilter \ +--disable-avdevice \ +--disable-programs \ +--disable-doc \ +--disable-lsp \ +--disable-dwt \ +--disable-dct \ +--enable-stripping \ +--disable-postproc \ +--disable-fft \ +--disable-lzo \ +--disable-rdft \ +--disable-mdct \ +--disable-debug \ +\ +--enable-muxer='mp4' \ +--enable-protocol='file' \ +--enable-encoder='aac,mpeg4' \ +--enable-decoder='aac,amrnb,amrwb,flv,h263,h264' \ +--enable-demuxer='flv,mpegvideo,mov' \ +--enable-hwaccel='mpeg4_vaapi,mpeg4_vdpau' \ +--enable-swresample \ +--enable-swscale \ +--enable-asm \ +$ADDITIONAL_CONFIGURE_FLAG + +echo "continue?" +read +make -j8 install + +#$AR d libavcodec/libavcodec.a inverse.o + +#$LD -rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -soname libffmpeg.a -static -nostdlib -z noexecstack -Bsymbolic --whole-archive --no-undefined -o $PREFIX/libffmpeg.so libavcodec/libavcodec.a libavformat/libavformat.a libavutil/libavutil.a -lc -lm -lz -ldl --dynamic-linker=/system/bin/linker $GCCLIB + +} + +NDK=/Users/DrKLO/ndk9 + +#arm platform +PLATFORM=$NDK/platforms/android-8/arch-arm +PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64 +LD=$PREBUILT/bin/arm-linux-androideabi-ld +AR=$PREBUILT/bin/arm-linux-androideabi-ar +NM=$PREBUILT/bin/arm-linux-androideabi-nm +GCCLIB=$PREBUILT/lib/gcc/arm-linux-androideabi/4.8/libgcc.a +ARCH=arm +CC=$PREBUILT/bin/arm-linux-androideabi-gcc +CROSS_PREFIX=$PREBUILT/bin/arm-linux-androideabi- + +#arm v6 +CPU=armv6 +OPTIMIZE_CFLAGS="-marm -march=$CPU" +PREFIX=/Users/DrKLO/ndk9/platforms/android-9/arch-$ARCH/usr +ADDITIONAL_CONFIGURE_FLAG= +build_one + +#arm v7vfpv3 +#CPU=armv7-a +#OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=$CPU " +#PREFIX=./android/$CPU +#ADDITIONAL_CONFIGURE_FLAG= +#build_one + +#arm v7vfp +#CPU=armv7-a +#OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU " +#PREFIX=./android/$CPU-vfp +#ADDITIONAL_CONFIGURE_FLAG= +#build_one + +#arm v7n +#CPU=armv7-a +#OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=neon -marm -march=$CPU -mtune=cortex-a8" +#PREFIX=./android/$CPU +#ADDITIONAL_CONFIGURE_FLAG=--enable-neon +#build_one + +#arm v6+vfp +#CPU=armv6 +#OPTIMIZE_CFLAGS="-DCMP_HAVE_VFP -mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU" +#PREFIX=./android/${CPU}_vfp +#ADDITIONAL_CONFIGURE_FLAG= +#build_one + +#x86 platform +PLATFORM=$NDK/platforms/android-9/arch-x86 +PREBUILT=$NDK/toolchains/x86-4.8/prebuilt/darwin-x86_64 +LD=$PREBUILT/bin/i686-linux-android-ld +AR=$PREBUILT/bin/i686-linux-android-ar +NM=$PREBUILT/bin/i686-linux-android-nm +GCCLIB=$PREBUILT/lib/gcc/i686-linux-android/4.8/libgcc.a +ARCH=x86 +CC=$PREBUILT/bin/i686-linux-android-gcc +CROSS_PREFIX=$PREBUILT/bin/i686-linux-android- + +CPU=i686 +OPTIMIZE_CFLAGS="-march=$CPU" +PREFIX=/Users/DrKLO/ndk9/platforms/android-9/arch-$ARCH/usr +ADDITIONAL_CONFIGURE_FLAG="--disable-mmx --disable-yasm" +build_one + diff --git a/TMessagesProj/jni/jni.c b/TMessagesProj/jni/jni.c index 0c270775a..9f03d9bea 100644 --- a/TMessagesProj/jni/jni.c +++ b/TMessagesProj/jni/jni.c @@ -5,12 +5,7 @@ #include #include #include "aes.h" - -#define LOG_TAG "tmessages_native" -#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__) -#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__) -#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__) -#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, LOG_TAG, __VA_ARGS__) +#include "log.h" JNIEXPORT jbyteArray Java_org_telegram_messenger_Utilities_aesIgeEncryption(JNIEnv *env, jclass class, jbyteArray _what, jbyteArray _key, jbyteArray _iv, jboolean encrypt, jboolean changeIv) { unsigned char *what = (unsigned char *)(*env)->GetByteArrayElements(env, _what, NULL); @@ -84,100 +79,3 @@ JNIEXPORT jlong Java_org_telegram_messenger_Utilities_doPQNative(JNIEnv* env, jc } return g; } - -//sqlite - -/*JNIEXPORT void Java_org_telegram_messenger_Utilities_beginTransaction(JNIEnv* env, jobject object, int dbHandle) { - sqlite3 *db = (sqlite3 *)dbHandle; - if (db == NULL) { - return; - } - sqlite3_exec(db, "BEGIN", 0, 0, 0); -} - -JNIEXPORT void Java_org_telegram_messenger_Utilities_commitTransaction(JNIEnv* env, jobject object, int dbHandle) { - sqlite3 *db = (sqlite3 *)dbHandle; - if (db == NULL) { - return; - } - sqlite3_exec(db, "COMMIT", 0, 0, 0); -} - -int Java_org_telegram_messenger_Utilities_step(JNIEnv* env, jobject object, int statementHandle) { - sqlite3_stmt *handle = (sqlite3_stmt *)statementHandle; - - int errcode = 0 ; - - errcode = sqlite3_step(handle); - if (errcode == SQLITE_ROW) { - return 0; - } else if(errcode == SQLITE_DONE) { - return 1; - } else if(errcode == SQLITE_BUSY) { - return -1; - } - - throw_sqlite3_exception(env, sqlite3_db_handle(handle), errcode); -} - -int Java_org_telegram_messenger_Utilities_columnType(JNIEnv* env, jobject object, int statementHandle, int columnIndex) { - sqlite3_stmt *handle = (sqlite3_stmt *)statementHandle; - - return sqlite3_column_type(handle, columnIndex); -} - -int Java_org_telegram_messenger_Utilities_columnIsNull(JNIEnv* env, jobject object, int statementHandle, int columnIndex) { - sqlite3_stmt *handle = (sqlite3_stmt *)statementHandle; - - int valType = sqlite3_column_type(handle, columnIndex); - - return SQLITE_NULL == valType; -} - -int Java_org_telegram_messenger_Utilities_columnIntValue(JNIEnv* env, jobject object, int statementHandle, int columnIndex) { - sqlite3_stmt *handle = (sqlite3_stmt *)statementHandle; - - int valType = sqlite3_column_type(handle, columnIndex); - if (SQLITE_NULL == valType) { - return 0; - } - - return sqlite3_column_int(handle, columnIndex); -} - -jdouble Java_org_telegram_messenger_Utilities_columnDoubleValue(JNIEnv* env, jobject object, int statementHandle, int columnIndex) { - sqlite3_stmt *handle = (sqlite3_stmt *)statementHandle; - - int valType = sqlite3_column_type(handle, columnIndex); - if (SQLITE_NULL == valType) { - return 0; - } - - return sqlite3_column_double(handle, columnIndex); -} - -jstring Java_org_telegram_messenger_Utilities_columnStringValue(JNIEnv* env, jobject object, int statementHandle, int columnIndex) { - sqlite3_stmt *handle = (sqlite3_stmt *)statementHandle; - - const char* str = sqlite3_column_text(handle, columnIndex); - if (str != 0) { - return (*env)->NewStringUTF(env, str); - } - - return 0; -} - -jbyteArray Java_org_telegram_messenger_Utilities_columnByteArrayValue(JNIEnv* env, jobject object, int statementHandle, int columnIndex) { - sqlite3_stmt *handle = (sqlite3_stmt *)statementHandle; - - void *buf = sqlite3_column_blob(handle, columnIndex); - int length = sqlite3_column_bytes(handle, columnIndex); - - if (buf != 0 && length > 0) { - jbyteArray result = (*env)->NewByteArray(env, length); - (*env)->SetByteArrayRegion(env, result, 0, length, buf); - return result; - } - - return 0; -}*/ diff --git a/TMessagesProj/jni/log.h b/TMessagesProj/jni/log.h new file mode 100644 index 000000000..50d371550 --- /dev/null +++ b/TMessagesProj/jni/log.h @@ -0,0 +1,12 @@ +#ifndef log_h +#define log_h + +#include + +#define LOG_TAG "tmessages_native" +#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__) +#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__) +#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__) +#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, LOG_TAG, __VA_ARGS__) + +#endif diff --git a/TMessagesProj/jni/org_telegram_SQLite_SQLiteDatabase.c b/TMessagesProj/jni/org_telegram_SQLite_SQLiteDatabase.c index effb75df1..9cbf20788 100755 --- a/TMessagesProj/jni/org_telegram_SQLite_SQLiteDatabase.c +++ b/TMessagesProj/jni/org_telegram_SQLite_SQLiteDatabase.c @@ -18,8 +18,15 @@ void Java_org_telegram_SQLite_SQLiteDatabase_commitTransaction(JNIEnv *env, jobj sqlite3_exec(handle, "COMMIT", 0, 0, 0); } -int Java_org_telegram_SQLite_SQLiteDatabase_opendb(JNIEnv *env, jobject object, jstring fileName) { +int Java_org_telegram_SQLite_SQLiteDatabase_opendb(JNIEnv *env, jobject object, jstring fileName, jstring tempDir) { char const *fileNameStr = (*env)->GetStringUTFChars(env, fileName, 0); + char const *tempDirStr = (*env)->GetStringUTFChars(env, tempDir, 0); + + if (sqlite3_temp_directory != 0) { + sqlite3_free(sqlite3_temp_directory); + } + sqlite3_temp_directory = sqlite3_mprintf("%s", tempDirStr); + sqlite3 *handle = 0; int err = sqlite3_open(fileNameStr, &handle); if (SQLITE_OK != err) { @@ -28,5 +35,8 @@ int Java_org_telegram_SQLite_SQLiteDatabase_opendb(JNIEnv *env, jobject object, if (fileNameStr != 0) { (*env)->ReleaseStringUTFChars(env, fileName, fileNameStr); } + if (tempDirStr != 0) { + (*env)->ReleaseStringUTFChars(env, tempDir, tempDirStr); + } return (int)handle; } diff --git a/TMessagesProj/jni/sqlite3.c b/TMessagesProj/jni/sqlite3.c index 1f9f8cc08..8da37bff5 100644 --- a/TMessagesProj/jni/sqlite3.c +++ b/TMessagesProj/jni/sqlite3.c @@ -1,6 +1,6 @@ /****************************************************************************** ** This file is an amalgamation of many separate C source files from SQLite -** version 3.7.17. By combining all the individual C code files into this +** version 3.8.1. By combining all the individual C code files into this ** single large file, the entire code can be compiled as a single translation ** unit. This allows many compilers to do optimizations that would not be ** possible if the files were compiled separately. Performance improvements @@ -20,558 +20,15 @@ #define SQLITE_CORE 1 #define SQLITE_AMALGAMATION 1 #define SQLITE_ENABLE_FTS3 1 - -//#define SQLITE_TEMP_STORE 3 #define SQLITE_ENABLE_FTS3_PARENTHESIS 1 +//#define SQLITE_TEMP_STORE 3 + #ifndef SQLITE_PRIVATE # define SQLITE_PRIVATE static #endif #ifndef SQLITE_API # define SQLITE_API #endif -/************** Begin file sqliteInt.h ***************************************/ -/* -** 2001 September 15 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** Internal interface definitions for SQLite. -** -*/ -#ifndef _SQLITEINT_H_ -#define _SQLITEINT_H_ - -/* -** These #defines should enable >2GB file support on POSIX if the -** underlying operating system supports it. If the OS lacks -** large file support, or if the OS is windows, these should be no-ops. -** -** Ticket #2739: The _LARGEFILE_SOURCE macro must appear before any -** system #includes. Hence, this block of code must be the very first -** code in all source files. -** -** Large file support can be disabled using the -DSQLITE_DISABLE_LFS switch -** on the compiler command line. This is necessary if you are compiling -** on a recent machine (ex: Red Hat 7.2) but you want your code to work -** on an older machine (ex: Red Hat 6.0). If you compile on Red Hat 7.2 -** without this option, LFS is enable. But LFS does not exist in the kernel -** in Red Hat 6.0, so the code won't work. Hence, for maximum binary -** portability you should omit LFS. -** -** Similar is true for Mac OS X. LFS is only supported on Mac OS X 9 and later. -*/ -#ifndef SQLITE_DISABLE_LFS -# define _LARGE_FILE 1 -# ifndef _FILE_OFFSET_BITS -# define _FILE_OFFSET_BITS 64 -# endif -# define _LARGEFILE_SOURCE 1 -#endif - -/* -** Include the configuration header output by 'configure' if we're using the -** autoconf-based build -*/ -#ifdef _HAVE_SQLITE_CONFIG_H -#include "config.h" -#endif - -/************** Include sqliteLimit.h in the middle of sqliteInt.h ***********/ -/************** Begin file sqliteLimit.h *************************************/ -/* -** 2007 May 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** -** This file defines various limits of what SQLite can process. -*/ - -/* -** The maximum length of a TEXT or BLOB in bytes. This also -** limits the size of a row in a table or index. -** -** The hard limit is the ability of a 32-bit signed integer -** to count the size: 2^31-1 or 2147483647. -*/ -#ifndef SQLITE_MAX_LENGTH -# define SQLITE_MAX_LENGTH 1000000000 -#endif - -/* -** This is the maximum number of -** -** * Columns in a table -** * Columns in an index -** * Columns in a view -** * Terms in the SET clause of an UPDATE statement -** * Terms in the result set of a SELECT statement -** * Terms in the GROUP BY or ORDER BY clauses of a SELECT statement. -** * Terms in the VALUES clause of an INSERT statement -** -** The hard upper limit here is 32676. Most database people will -** tell you that in a well-normalized database, you usually should -** not have more than a dozen or so columns in any table. And if -** that is the case, there is no point in having more than a few -** dozen values in any of the other situations described above. -*/ -#ifndef SQLITE_MAX_COLUMN -# define SQLITE_MAX_COLUMN 2000 -#endif - -/* -** The maximum length of a single SQL statement in bytes. -** -** It used to be the case that setting this value to zero would -** turn the limit off. That is no longer true. It is not possible -** to turn this limit off. -*/ -#ifndef SQLITE_MAX_SQL_LENGTH -# define SQLITE_MAX_SQL_LENGTH 1000000000 -#endif - -/* -** The maximum depth of an expression tree. This is limited to -** some extent by SQLITE_MAX_SQL_LENGTH. But sometime you might -** want to place more severe limits on the complexity of an -** expression. -** -** A value of 0 used to mean that the limit was not enforced. -** But that is no longer true. The limit is now strictly enforced -** at all times. -*/ -#ifndef SQLITE_MAX_EXPR_DEPTH -# define SQLITE_MAX_EXPR_DEPTH 1000 -#endif - -/* -** The maximum number of terms in a compound SELECT statement. -** The code generator for compound SELECT statements does one -** level of recursion for each term. A stack overflow can result -** if the number of terms is too large. In practice, most SQL -** never has more than 3 or 4 terms. Use a value of 0 to disable -** any limit on the number of terms in a compount SELECT. -*/ -#ifndef SQLITE_MAX_COMPOUND_SELECT -# define SQLITE_MAX_COMPOUND_SELECT 500 -#endif - -/* -** The maximum number of opcodes in a VDBE program. -** Not currently enforced. -*/ -#ifndef SQLITE_MAX_VDBE_OP -# define SQLITE_MAX_VDBE_OP 25000 -#endif - -/* -** The maximum number of arguments to an SQL function. -*/ -#ifndef SQLITE_MAX_FUNCTION_ARG -# define SQLITE_MAX_FUNCTION_ARG 127 -#endif - -/* -** The maximum number of in-memory pages to use for the main database -** table and for temporary tables. The SQLITE_DEFAULT_CACHE_SIZE -*/ -#ifndef SQLITE_DEFAULT_CACHE_SIZE -# define SQLITE_DEFAULT_CACHE_SIZE 2000 -#endif -#ifndef SQLITE_DEFAULT_TEMP_CACHE_SIZE -# define SQLITE_DEFAULT_TEMP_CACHE_SIZE 500 -#endif - -/* -** The default number of frames to accumulate in the log file before -** checkpointing the database in WAL mode. -*/ -#ifndef SQLITE_DEFAULT_WAL_AUTOCHECKPOINT -# define SQLITE_DEFAULT_WAL_AUTOCHECKPOINT 1000 -#endif - -/* -** The maximum number of attached databases. This must be between 0 -** and 62. The upper bound on 62 is because a 64-bit integer bitmap -** is used internally to track attached databases. -*/ -#ifndef SQLITE_MAX_ATTACHED -# define SQLITE_MAX_ATTACHED 10 -#endif - - -/* -** The maximum value of a ?nnn wildcard that the parser will accept. -*/ -#ifndef SQLITE_MAX_VARIABLE_NUMBER -# define SQLITE_MAX_VARIABLE_NUMBER 999 -#endif - -/* Maximum page size. The upper bound on this value is 65536. This a limit -** imposed by the use of 16-bit offsets within each page. -** -** Earlier versions of SQLite allowed the user to change this value at -** compile time. This is no longer permitted, on the grounds that it creates -** a library that is technically incompatible with an SQLite library -** compiled with a different limit. If a process operating on a database -** with a page-size of 65536 bytes crashes, then an instance of SQLite -** compiled with the default page-size limit will not be able to rollback -** the aborted transaction. This could lead to database corruption. -*/ -#ifdef SQLITE_MAX_PAGE_SIZE -# undef SQLITE_MAX_PAGE_SIZE -#endif -#define SQLITE_MAX_PAGE_SIZE 65536 - - -/* -** The default size of a database page. -*/ -#ifndef SQLITE_DEFAULT_PAGE_SIZE -# define SQLITE_DEFAULT_PAGE_SIZE 1024 -#endif -#if SQLITE_DEFAULT_PAGE_SIZE>SQLITE_MAX_PAGE_SIZE -# undef SQLITE_DEFAULT_PAGE_SIZE -# define SQLITE_DEFAULT_PAGE_SIZE SQLITE_MAX_PAGE_SIZE -#endif - -/* -** Ordinarily, if no value is explicitly provided, SQLite creates databases -** with page size SQLITE_DEFAULT_PAGE_SIZE. However, based on certain -** device characteristics (sector-size and atomic write() support), -** SQLite may choose a larger value. This constant is the maximum value -** SQLite will choose on its own. -*/ -#ifndef SQLITE_MAX_DEFAULT_PAGE_SIZE -# define SQLITE_MAX_DEFAULT_PAGE_SIZE 8192 -#endif -#if SQLITE_MAX_DEFAULT_PAGE_SIZE>SQLITE_MAX_PAGE_SIZE -# undef SQLITE_MAX_DEFAULT_PAGE_SIZE -# define SQLITE_MAX_DEFAULT_PAGE_SIZE SQLITE_MAX_PAGE_SIZE -#endif - - -/* -** Maximum number of pages in one database file. -** -** This is really just the default value for the max_page_count pragma. -** This value can be lowered (or raised) at run-time using that the -** max_page_count macro. -*/ -#ifndef SQLITE_MAX_PAGE_COUNT -# define SQLITE_MAX_PAGE_COUNT 1073741823 -#endif - -/* -** Maximum length (in bytes) of the pattern in a LIKE or GLOB -** operator. -*/ -#ifndef SQLITE_MAX_LIKE_PATTERN_LENGTH -# define SQLITE_MAX_LIKE_PATTERN_LENGTH 50000 -#endif - -/* -** Maximum depth of recursion for triggers. -** -** A value of 1 means that a trigger program will not be able to itself -** fire any triggers. A value of 0 means that no trigger programs at all -** may be executed. -*/ -#ifndef SQLITE_MAX_TRIGGER_DEPTH -# define SQLITE_MAX_TRIGGER_DEPTH 1000 -#endif - -/************** End of sqliteLimit.h *****************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ - -/* Disable nuisance warnings on Borland compilers */ -#if defined(__BORLANDC__) -#pragma warn -rch /* unreachable code */ -#pragma warn -ccc /* Condition is always true or false */ -#pragma warn -aus /* Assigned value is never used */ -#pragma warn -csu /* Comparing signed and unsigned */ -#pragma warn -spa /* Suspicious pointer arithmetic */ -#endif - -/* Needed for various definitions... */ -#ifndef _GNU_SOURCE -# define _GNU_SOURCE -#endif - -#if defined(__OpenBSD__) && !defined(_BSD_SOURCE) -# define _BSD_SOURCE -#endif - -/* -** Include standard header files as necessary -*/ -#ifdef HAVE_STDINT_H -#include -#endif -#ifdef HAVE_INTTYPES_H -#include -#endif - -/* -** The following macros are used to cast pointers to integers and -** integers to pointers. The way you do this varies from one compiler -** to the next, so we have developed the following set of #if statements -** to generate appropriate macros for a wide range of compilers. -** -** The correct "ANSI" way to do this is to use the intptr_t type. -** Unfortunately, that typedef is not available on all compilers, or -** if it is available, it requires an #include of specific headers -** that vary from one machine to the next. -** -** Ticket #3860: The llvm-gcc-4.2 compiler from Apple chokes on -** the ((void*)&((char*)0)[X]) construct. But MSVC chokes on ((void*)(X)). -** So we have to define the macros in different ways depending on the -** compiler. -*/ -#if defined(__PTRDIFF_TYPE__) /* This case should work for GCC */ -# define SQLITE_INT_TO_PTR(X) ((void*)(__PTRDIFF_TYPE__)(X)) -# define SQLITE_PTR_TO_INT(X) ((int)(__PTRDIFF_TYPE__)(X)) -#elif !defined(__GNUC__) /* Works for compilers other than LLVM */ -# define SQLITE_INT_TO_PTR(X) ((void*)&((char*)0)[X]) -# define SQLITE_PTR_TO_INT(X) ((int)(((char*)X)-(char*)0)) -#elif defined(HAVE_STDINT_H) /* Use this case if we have ANSI headers */ -# define SQLITE_INT_TO_PTR(X) ((void*)(intptr_t)(X)) -# define SQLITE_PTR_TO_INT(X) ((int)(intptr_t)(X)) -#else /* Generates a warning - but it always works */ -# define SQLITE_INT_TO_PTR(X) ((void*)(X)) -# define SQLITE_PTR_TO_INT(X) ((int)(X)) -#endif - -/* -** The SQLITE_THREADSAFE macro must be defined as 0, 1, or 2. -** 0 means mutexes are permanently disable and the library is never -** threadsafe. 1 means the library is serialized which is the highest -** level of threadsafety. 2 means the libary is multithreaded - multiple -** threads can use SQLite as long as no two threads try to use the same -** database connection at the same time. -** -** Older versions of SQLite used an optional THREADSAFE macro. -** We support that for legacy. -*/ -#if !defined(SQLITE_THREADSAFE) -# if defined(THREADSAFE) -# define SQLITE_THREADSAFE THREADSAFE -# else -# define SQLITE_THREADSAFE 1 /* IMP: R-07272-22309 */ -# endif -#endif - -/* -** Powersafe overwrite is on by default. But can be turned off using -** the -DSQLITE_POWERSAFE_OVERWRITE=0 command-line option. -*/ -#ifndef SQLITE_POWERSAFE_OVERWRITE -# define SQLITE_POWERSAFE_OVERWRITE 1 -#endif - -/* -** The SQLITE_DEFAULT_MEMSTATUS macro must be defined as either 0 or 1. -** It determines whether or not the features related to -** SQLITE_CONFIG_MEMSTATUS are available by default or not. This value can -** be overridden at runtime using the sqlite3_config() API. -*/ -#if !defined(SQLITE_DEFAULT_MEMSTATUS) -# define SQLITE_DEFAULT_MEMSTATUS 1 -#endif - -/* -** Exactly one of the following macros must be defined in order to -** specify which memory allocation subsystem to use. -** -** SQLITE_SYSTEM_MALLOC // Use normal system malloc() -** SQLITE_WIN32_MALLOC // Use Win32 native heap API -** SQLITE_ZERO_MALLOC // Use a stub allocator that always fails -** SQLITE_MEMDEBUG // Debugging version of system malloc() -** -** On Windows, if the SQLITE_WIN32_MALLOC_VALIDATE macro is defined and the -** assert() macro is enabled, each call into the Win32 native heap subsystem -** will cause HeapValidate to be called. If heap validation should fail, an -** assertion will be triggered. -** -** (Historical note: There used to be several other options, but we've -** pared it down to just these three.) -** -** If none of the above are defined, then set SQLITE_SYSTEM_MALLOC as -** the default. -*/ -#if defined(SQLITE_SYSTEM_MALLOC) \ - + defined(SQLITE_WIN32_MALLOC) \ - + defined(SQLITE_ZERO_MALLOC) \ - + defined(SQLITE_MEMDEBUG)>1 -# error "Two or more of the following compile-time configuration options\ - are defined but at most one is allowed:\ - SQLITE_SYSTEM_MALLOC, SQLITE_WIN32_MALLOC, SQLITE_MEMDEBUG,\ - SQLITE_ZERO_MALLOC" -#endif -#if defined(SQLITE_SYSTEM_MALLOC) \ - + defined(SQLITE_WIN32_MALLOC) \ - + defined(SQLITE_ZERO_MALLOC) \ - + defined(SQLITE_MEMDEBUG)==0 -# define SQLITE_SYSTEM_MALLOC 1 -#endif - -/* -** If SQLITE_MALLOC_SOFT_LIMIT is not zero, then try to keep the -** sizes of memory allocations below this value where possible. -*/ -#if !defined(SQLITE_MALLOC_SOFT_LIMIT) -# define SQLITE_MALLOC_SOFT_LIMIT 1024 -#endif - -/* -** We need to define _XOPEN_SOURCE as follows in order to enable -** recursive mutexes on most Unix systems. But Mac OS X is different. -** The _XOPEN_SOURCE define causes problems for Mac OS X we are told, -** so it is omitted there. See ticket #2673. -** -** Later we learn that _XOPEN_SOURCE is poorly or incorrectly -** implemented on some systems. So we avoid defining it at all -** if it is already defined or if it is unneeded because we are -** not doing a threadsafe build. Ticket #2681. -** -** See also ticket #2741. -*/ -#if !defined(_XOPEN_SOURCE) && !defined(__DARWIN__) \ - && !defined(__APPLE__) && SQLITE_THREADSAFE -# define _XOPEN_SOURCE 500 /* Needed to enable pthread recursive mutexes */ -#endif - -/* -** The TCL headers are only needed when compiling the TCL bindings. -*/ -#if defined(SQLITE_TCL) || defined(TCLSH) -# include -#endif - -/* -** NDEBUG and SQLITE_DEBUG are opposites. It should always be true that -** defined(NDEBUG)==!defined(SQLITE_DEBUG). If this is not currently true, -** make it true by defining or undefining NDEBUG. -** -** Setting NDEBUG makes the code smaller and run faster by disabling the -** number assert() statements in the code. So we want the default action -** to be for NDEBUG to be set and NDEBUG to be undefined only if SQLITE_DEBUG -** is set. Thus NDEBUG becomes an opt-in rather than an opt-out -** feature. -*/ -#if !defined(NDEBUG) && !defined(SQLITE_DEBUG) -# define NDEBUG 1 -#endif -#if defined(NDEBUG) && defined(SQLITE_DEBUG) -# undef NDEBUG -#endif - -/* -** The testcase() macro is used to aid in coverage testing. When -** doing coverage testing, the condition inside the argument to -** testcase() must be evaluated both true and false in order to -** get full branch coverage. The testcase() macro is inserted -** to help ensure adequate test coverage in places where simple -** condition/decision coverage is inadequate. For example, testcase() -** can be used to make sure boundary values are tested. For -** bitmask tests, testcase() can be used to make sure each bit -** is significant and used at least once. On switch statements -** where multiple cases go to the same block of code, testcase() -** can insure that all cases are evaluated. -** -*/ -#ifdef SQLITE_COVERAGE_TEST -SQLITE_PRIVATE void sqlite3Coverage(int); -# define testcase(X) if( X ){ sqlite3Coverage(__LINE__); } -#else -# define testcase(X) -#endif - -/* -** The TESTONLY macro is used to enclose variable declarations or -** other bits of code that are needed to support the arguments -** within testcase() and assert() macros. -*/ -#if !defined(NDEBUG) || defined(SQLITE_COVERAGE_TEST) -# define TESTONLY(X) X -#else -# define TESTONLY(X) -#endif - -/* -** Sometimes we need a small amount of code such as a variable initialization -** to setup for a later assert() statement. We do not want this code to -** appear when assert() is disabled. The following macro is therefore -** used to contain that setup code. The "VVA" acronym stands for -** "Verification, Validation, and Accreditation". In other words, the -** code within VVA_ONLY() will only run during verification processes. -*/ -#ifndef NDEBUG -# define VVA_ONLY(X) X -#else -# define VVA_ONLY(X) -#endif - -/* -** The ALWAYS and NEVER macros surround boolean expressions which -** are intended to always be true or false, respectively. Such -** expressions could be omitted from the code completely. But they -** are included in a few cases in order to enhance the resilience -** of SQLite to unexpected behavior - to make the code "self-healing" -** or "ductile" rather than being "brittle" and crashing at the first -** hint of unplanned behavior. -** -** In other words, ALWAYS and NEVER are added for defensive code. -** -** When doing coverage testing ALWAYS and NEVER are hard-coded to -** be true and false so that the unreachable code then specify will -** not be counted as untested code. -*/ -#if defined(SQLITE_COVERAGE_TEST) -# define ALWAYS(X) (1) -# define NEVER(X) (0) -#elif !defined(NDEBUG) -# define ALWAYS(X) ((X)?1:(assert(0),0)) -# define NEVER(X) ((X)?(assert(0),1):0) -#else -# define ALWAYS(X) (X) -# define NEVER(X) (X) -#endif - -/* -** Return true (non-zero) if the input is a integer that is too large -** to fit in 32-bits. This macro is used inside of various testcase() -** macros to verify that we have tested SQLite for large-file support. -*/ -#define IS_BIG_INT(X) (((X)&~(i64)0xffffffff)!=0) - -/* -** The macro unlikely() is a hint that surrounds a boolean -** expression that is usually false. Macro likely() surrounds -** a boolean expression that is usually true. GCC is able to -** use these hints to generate better code, sometimes. -*/ -#if defined(__GNUC__) && 0 -# define likely(X) __builtin_expect((X),1) -# define unlikely(X) __builtin_expect((X),0) -#else -# define likely(X) !!(X) -# define unlikely(X) !!(X) -#endif - -/************** Include sqlite3.h in the middle of sqliteInt.h ***************/ /************** Begin file sqlite3.h *****************************************/ /* ** 2001 September 15 @@ -682,9 +139,9 @@ extern "C" { ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ -#define SQLITE_VERSION "3.7.17" -#define SQLITE_VERSION_NUMBER 3007017 -#define SQLITE_SOURCE_ID "2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668" +#define SQLITE_VERSION "3.8.1" +#define SQLITE_VERSION_NUMBER 3008001 +#define SQLITE_SOURCE_ID "2013-10-17 12:57:35 c78be6d786c19073b3a6730dfe3fb1be54f5657a" /* ** CAPI3REF: Run-Time Library Version Numbers @@ -1053,11 +510,15 @@ SQLITE_API int sqlite3_exec( #define SQLITE_IOERR_SEEK (SQLITE_IOERR | (22<<8)) #define SQLITE_IOERR_DELETE_NOENT (SQLITE_IOERR | (23<<8)) #define SQLITE_IOERR_MMAP (SQLITE_IOERR | (24<<8)) +#define SQLITE_IOERR_GETTEMPPATH (SQLITE_IOERR | (25<<8)) +#define SQLITE_IOERR_CONVPATH (SQLITE_IOERR | (26<<8)) #define SQLITE_LOCKED_SHAREDCACHE (SQLITE_LOCKED | (1<<8)) #define SQLITE_BUSY_RECOVERY (SQLITE_BUSY | (1<<8)) +#define SQLITE_BUSY_SNAPSHOT (SQLITE_BUSY | (2<<8)) #define SQLITE_CANTOPEN_NOTEMPDIR (SQLITE_CANTOPEN | (1<<8)) #define SQLITE_CANTOPEN_ISDIR (SQLITE_CANTOPEN | (2<<8)) #define SQLITE_CANTOPEN_FULLPATH (SQLITE_CANTOPEN | (3<<8)) +#define SQLITE_CANTOPEN_CONVPATH (SQLITE_CANTOPEN | (4<<8)) #define SQLITE_CORRUPT_VTAB (SQLITE_CORRUPT | (1<<8)) #define SQLITE_READONLY_RECOVERY (SQLITE_READONLY | (1<<8)) #define SQLITE_READONLY_CANTLOCK (SQLITE_READONLY | (2<<8)) @@ -1074,6 +535,7 @@ SQLITE_API int sqlite3_exec( #define SQLITE_CONSTRAINT_VTAB (SQLITE_CONSTRAINT | (9<<8)) #define SQLITE_NOTICE_RECOVER_WAL (SQLITE_NOTICE | (1<<8)) #define SQLITE_NOTICE_RECOVER_ROLLBACK (SQLITE_NOTICE | (2<<8)) +#define SQLITE_WARNING_AUTOINDEX (SQLITE_WARNING | (1<<8)) /* ** CAPI3REF: Flags For File Open Operations @@ -2187,27 +1649,27 @@ struct sqlite3_mem_methods { ** function must be threadsafe. ** ** [[SQLITE_CONFIG_URI]]
SQLITE_CONFIG_URI -**
This option takes a single argument of type int. If non-zero, then +**
^(This option takes a single argument of type int. If non-zero, then ** URI handling is globally enabled. If the parameter is zero, then URI handling -** is globally disabled. If URI handling is globally enabled, all filenames +** is globally disabled.)^ ^If URI handling is globally enabled, all filenames ** passed to [sqlite3_open()], [sqlite3_open_v2()], [sqlite3_open16()] or ** specified as part of [ATTACH] commands are interpreted as URIs, regardless ** of whether or not the [SQLITE_OPEN_URI] flag is set when the database -** connection is opened. If it is globally disabled, filenames are +** connection is opened. ^If it is globally disabled, filenames are ** only interpreted as URIs if the SQLITE_OPEN_URI flag is set when the -** database connection is opened. By default, URI handling is globally +** database connection is opened. ^(By default, URI handling is globally ** disabled. The default value may be changed by compiling with the -** [SQLITE_USE_URI] symbol defined. +** [SQLITE_USE_URI] symbol defined.)^ ** ** [[SQLITE_CONFIG_COVERING_INDEX_SCAN]]
SQLITE_CONFIG_COVERING_INDEX_SCAN -**
This option takes a single integer argument which is interpreted as +**
^This option takes a single integer argument which is interpreted as ** a boolean in order to enable or disable the use of covering indices for -** full table scans in the query optimizer. The default setting is determined +** full table scans in the query optimizer. ^The default setting is determined ** by the [SQLITE_ALLOW_COVERING_INDEX_SCAN] compile-time option, or is "on" ** if that compile-time option is omitted. ** The ability to disable the use of covering indices for full table scans ** is because some incorrectly coded legacy applications might malfunction -** malfunction when the optimization is enabled. Providing the ability to +** when the optimization is enabled. Providing the ability to ** disable the optimization allows the older, buggy application code to work ** without change even with newer versions of SQLite. ** @@ -2236,16 +1698,16 @@ struct sqlite3_mem_methods { ** ** [[SQLITE_CONFIG_MMAP_SIZE]] **
SQLITE_CONFIG_MMAP_SIZE -**
SQLITE_CONFIG_MMAP_SIZE takes two 64-bit integer (sqlite3_int64) values +**
^SQLITE_CONFIG_MMAP_SIZE takes two 64-bit integer (sqlite3_int64) values ** that are the default mmap size limit (the default setting for ** [PRAGMA mmap_size]) and the maximum allowed mmap size limit. -** The default setting can be overridden by each database connection using +** ^The default setting can be overridden by each database connection using ** either the [PRAGMA mmap_size] command, or by using the -** [SQLITE_FCNTL_MMAP_SIZE] file control. The maximum allowed mmap size +** [SQLITE_FCNTL_MMAP_SIZE] file control. ^(The maximum allowed mmap size ** cannot be changed at run-time. Nor may the maximum allowed mmap size ** exceed the compile-time maximum mmap size set by the -** [SQLITE_MAX_MMAP_SIZE] compile-time option. -** If either argument to this option is negative, then that argument is +** [SQLITE_MAX_MMAP_SIZE] compile-time option.)^ +** ^If either argument to this option is negative, then that argument is ** changed to its compile-time default. ** */ @@ -3132,9 +2594,10 @@ SQLITE_API SQLITE_EXPERIMENTAL void *sqlite3_profile(sqlite3*, ** interface is to keep a GUI updated during a large query. ** ** ^The parameter P is passed through as the only parameter to the -** callback function X. ^The parameter N is the number of +** callback function X. ^The parameter N is the approximate number of ** [virtual machine instructions] that are evaluated between successive -** invocations of the callback X. +** invocations of the callback X. ^If N is less than one then the progress +** handler is disabled. ** ** ^Only a single progress handler may be defined at one time per ** [database connection]; setting a new progress handler cancels the @@ -4754,41 +4217,49 @@ SQLITE_API sqlite3 *sqlite3_context_db_handle(sqlite3_context*); /* ** CAPI3REF: Function Auxiliary Data ** -** The following two functions may be used by scalar SQL functions to +** These functions may be used by (non-aggregate) SQL functions to ** associate metadata with argument values. If the same value is passed to ** multiple invocations of the same SQL function during query execution, under -** some circumstances the associated metadata may be preserved. This may -** be used, for example, to add a regular-expression matching scalar -** function. The compiled version of the regular expression is stored as -** metadata associated with the SQL value passed as the regular expression -** pattern. The compiled regular expression can be reused on multiple -** invocations of the same function so that the original pattern string -** does not need to be recompiled on each invocation. +** some circumstances the associated metadata may be preserved. An example +** of where this might be useful is in a regular-expression matching +** function. The compiled version of the regular expression can be stored as +** metadata associated with the pattern string. +** Then as long as the pattern string remains the same, +** the compiled regular expression can be reused on multiple +** invocations of the same function. ** ** ^The sqlite3_get_auxdata() interface returns a pointer to the metadata ** associated by the sqlite3_set_auxdata() function with the Nth argument -** value to the application-defined function. ^If no metadata has been ever -** been set for the Nth argument of the function, or if the corresponding -** function parameter has changed since the meta-data was set, -** then sqlite3_get_auxdata() returns a NULL pointer. +** value to the application-defined function. ^If there is no metadata +** associated with the function argument, this sqlite3_get_auxdata() interface +** returns a NULL pointer. ** -** ^The sqlite3_set_auxdata() interface saves the metadata -** pointed to by its 3rd parameter as the metadata for the N-th -** argument of the application-defined function. Subsequent -** calls to sqlite3_get_auxdata() might return this data, if it has -** not been destroyed. -** ^If it is not NULL, SQLite will invoke the destructor -** function given by the 4th parameter to sqlite3_set_auxdata() on -** the metadata when the corresponding function parameter changes -** or when the SQL statement completes, whichever comes first. +** ^The sqlite3_set_auxdata(C,N,P,X) interface saves P as metadata for the N-th +** argument of the application-defined function. ^Subsequent +** calls to sqlite3_get_auxdata(C,N) return P from the most recent +** sqlite3_set_auxdata(C,N,P,X) call if the metadata is still valid or +** NULL if the metadata has been discarded. +** ^After each call to sqlite3_set_auxdata(C,N,P,X) where X is not NULL, +** SQLite will invoke the destructor function X with parameter P exactly +** once, when the metadata is discarded. +** SQLite is free to discard the metadata at any time, including:
    +**
  • when the corresponding function parameter changes, or +**
  • when [sqlite3_reset()] or [sqlite3_finalize()] is called for the +** SQL statement, or +**
  • when sqlite3_set_auxdata() is invoked again on the same parameter, or +**
  • during the original sqlite3_set_auxdata() call when a memory +** allocation error occurs.
)^ ** -** SQLite is free to call the destructor and drop metadata on any -** parameter of any function at any time. ^The only guarantee is that -** the destructor will be called before the metadata is dropped. +** Note the last bullet in particular. The destructor X in +** sqlite3_set_auxdata(C,N,P,X) might be called immediately, before the +** sqlite3_set_auxdata() interface even returns. Hence sqlite3_set_auxdata() +** should be called near the end of the function implementation and the +** function implementation should not make any use of P after +** sqlite3_set_auxdata() has been called. ** ** ^(In practice, metadata is preserved between function calls for -** expressions that are constant at compile time. This includes literal -** values and [parameters].)^ +** function parameters that are compile-time constants, including literal +** values and [parameters] and expressions composed from the same.)^ ** ** These routines must be called from the same thread in which ** the SQL function is running. @@ -5093,6 +4564,11 @@ SQLITE_API int sqlite3_key( sqlite3 *db, /* Database to be rekeyed */ const void *pKey, int nKey /* The key */ ); +SQLITE_API int sqlite3_key_v2( + sqlite3 *db, /* Database to be rekeyed */ + const char *zDbName, /* Name of the database */ + const void *pKey, int nKey /* The key */ +); /* ** Change the key on an open database. If the current database is not @@ -5106,6 +4582,11 @@ SQLITE_API int sqlite3_rekey( sqlite3 *db, /* Database to be rekeyed */ const void *pKey, int nKey /* The new key */ ); +SQLITE_API int sqlite3_rekey_v2( + sqlite3 *db, /* Database to be rekeyed */ + const char *zDbName, /* Name of the database */ + const void *pKey, int nKey /* The new key */ +); /* ** Specify the activation key for a SEE database. Unless @@ -5691,10 +5172,23 @@ SQLITE_API int sqlite3_enable_load_extension(sqlite3 *db, int onoff); ** on the list of automatic extensions is a harmless no-op. ^No entry point ** will be called more than once for each database connection that is opened. ** -** See also: [sqlite3_reset_auto_extension()]. +** See also: [sqlite3_reset_auto_extension()] +** and [sqlite3_cancel_auto_extension()] */ SQLITE_API int sqlite3_auto_extension(void (*xEntryPoint)(void)); +/* +** CAPI3REF: Cancel Automatic Extension Loading +** +** ^The [sqlite3_cancel_auto_extension(X)] interface unregisters the +** initialization routine X that was registered using a prior call to +** [sqlite3_auto_extension(X)]. ^The [sqlite3_cancel_auto_extension(X)] +** routine returns 1 if initialization routine X was successfully +** unregistered and it returns 0 if X was not on the list of initialization +** routines. +*/ +SQLITE_API int sqlite3_cancel_auto_extension(void (*xEntryPoint)(void)); + /* ** CAPI3REF: Reset Automatic Extension Loading ** @@ -6807,6 +6301,12 @@ SQLITE_API int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int r ** on subsequent SQLITE_DBSTATUS_CACHE_WRITE requests is undefined.)^ ^The ** highwater mark associated with SQLITE_DBSTATUS_CACHE_WRITE is always 0. **
+** +** [[SQLITE_DBSTATUS_DEFERRED_FKS]] ^(
SQLITE_DBSTATUS_DEFERRED_FKS
+**
This parameter returns zero for the current value if and only if +** all foreign key constraints (deferred or immediate) have been +** resolved.)^ ^The highwater mark is always 0. +**
** */ #define SQLITE_DBSTATUS_LOOKASIDE_USED 0 @@ -6819,7 +6319,8 @@ SQLITE_API int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int r #define SQLITE_DBSTATUS_CACHE_HIT 7 #define SQLITE_DBSTATUS_CACHE_MISS 8 #define SQLITE_DBSTATUS_CACHE_WRITE 9 -#define SQLITE_DBSTATUS_MAX 9 /* Largest defined DBSTATUS */ +#define SQLITE_DBSTATUS_DEFERRED_FKS 10 +#define SQLITE_DBSTATUS_MAX 10 /* Largest defined DBSTATUS */ /* @@ -6873,11 +6374,21 @@ SQLITE_API int sqlite3_stmt_status(sqlite3_stmt*, int op,int resetFlg); ** A non-zero value in this counter may indicate an opportunity to ** improvement performance by adding permanent indices that do not ** need to be reinitialized each time the statement is run. +** +** [[SQLITE_STMTSTATUS_VM_STEP]]
SQLITE_STMTSTATUS_VM_STEP
+**
^This is the number of virtual machine operations executed +** by the prepared statement if that number is less than or equal +** to 2147483647. The number of virtual machine operations can be +** used as a proxy for the total work done by the prepared statement. +** If the number of virtual machine operations exceeds 2147483647 +** then the value returned by this statement status code is undefined. +**
** */ #define SQLITE_STMTSTATUS_FULLSCAN_STEP 1 #define SQLITE_STMTSTATUS_SORT 2 #define SQLITE_STMTSTATUS_AUTOINDEX 3 +#define SQLITE_STMTSTATUS_VM_STEP 4 /* ** CAPI3REF: Custom Page Cache Object @@ -7756,7 +7267,7 @@ SQLITE_API int sqlite3_vtab_on_conflict(sqlite3 *); #if 0 } /* End of the 'extern "C"' block */ #endif -#endif +#endif /* _SQLITE3_H_ */ /* ** 2010 August 30 @@ -7820,7 +7331,526 @@ struct sqlite3_rtree_geometry { /************** End of sqlite3.h *********************************************/ +/************** Begin file sqliteInt.h ***************************************/ +/* +** 2001 September 15 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** Internal interface definitions for SQLite. +** +*/ +#ifndef _SQLITEINT_H_ +#define _SQLITEINT_H_ + +/* +** These #defines should enable >2GB file support on POSIX if the +** underlying operating system supports it. If the OS lacks +** large file support, or if the OS is windows, these should be no-ops. +** +** Ticket #2739: The _LARGEFILE_SOURCE macro must appear before any +** system #includes. Hence, this block of code must be the very first +** code in all source files. +** +** Large file support can be disabled using the -DSQLITE_DISABLE_LFS switch +** on the compiler command line. This is necessary if you are compiling +** on a recent machine (ex: Red Hat 7.2) but you want your code to work +** on an older machine (ex: Red Hat 6.0). If you compile on Red Hat 7.2 +** without this option, LFS is enable. But LFS does not exist in the kernel +** in Red Hat 6.0, so the code won't work. Hence, for maximum binary +** portability you should omit LFS. +** +** Similar is true for Mac OS X. LFS is only supported on Mac OS X 9 and later. +*/ +#ifndef SQLITE_DISABLE_LFS +# define _LARGE_FILE 1 +# ifndef _FILE_OFFSET_BITS +# define _FILE_OFFSET_BITS 64 +# endif +# define _LARGEFILE_SOURCE 1 +#endif + +/* +** Include the configuration header output by 'configure' if we're using the +** autoconf-based build +*/ +#ifdef _HAVE_SQLITE_CONFIG_H +#include "config.h" +#endif + +/************** Include sqliteLimit.h in the middle of sqliteInt.h ***********/ +/************** Begin file sqliteLimit.h *************************************/ +/* +** 2007 May 7 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** +** This file defines various limits of what SQLite can process. +*/ + +/* +** The maximum length of a TEXT or BLOB in bytes. This also +** limits the size of a row in a table or index. +** +** The hard limit is the ability of a 32-bit signed integer +** to count the size: 2^31-1 or 2147483647. +*/ +#ifndef SQLITE_MAX_LENGTH +# define SQLITE_MAX_LENGTH 1000000000 +#endif + +/* +** This is the maximum number of +** +** * Columns in a table +** * Columns in an index +** * Columns in a view +** * Terms in the SET clause of an UPDATE statement +** * Terms in the result set of a SELECT statement +** * Terms in the GROUP BY or ORDER BY clauses of a SELECT statement. +** * Terms in the VALUES clause of an INSERT statement +** +** The hard upper limit here is 32676. Most database people will +** tell you that in a well-normalized database, you usually should +** not have more than a dozen or so columns in any table. And if +** that is the case, there is no point in having more than a few +** dozen values in any of the other situations described above. +*/ +#ifndef SQLITE_MAX_COLUMN +# define SQLITE_MAX_COLUMN 2000 +#endif + +/* +** The maximum length of a single SQL statement in bytes. +** +** It used to be the case that setting this value to zero would +** turn the limit off. That is no longer true. It is not possible +** to turn this limit off. +*/ +#ifndef SQLITE_MAX_SQL_LENGTH +# define SQLITE_MAX_SQL_LENGTH 1000000000 +#endif + +/* +** The maximum depth of an expression tree. This is limited to +** some extent by SQLITE_MAX_SQL_LENGTH. But sometime you might +** want to place more severe limits on the complexity of an +** expression. +** +** A value of 0 used to mean that the limit was not enforced. +** But that is no longer true. The limit is now strictly enforced +** at all times. +*/ +#ifndef SQLITE_MAX_EXPR_DEPTH +# define SQLITE_MAX_EXPR_DEPTH 1000 +#endif + +/* +** The maximum number of terms in a compound SELECT statement. +** The code generator for compound SELECT statements does one +** level of recursion for each term. A stack overflow can result +** if the number of terms is too large. In practice, most SQL +** never has more than 3 or 4 terms. Use a value of 0 to disable +** any limit on the number of terms in a compount SELECT. +*/ +#ifndef SQLITE_MAX_COMPOUND_SELECT +# define SQLITE_MAX_COMPOUND_SELECT 500 +#endif + +/* +** The maximum number of opcodes in a VDBE program. +** Not currently enforced. +*/ +#ifndef SQLITE_MAX_VDBE_OP +# define SQLITE_MAX_VDBE_OP 25000 +#endif + +/* +** The maximum number of arguments to an SQL function. +*/ +#ifndef SQLITE_MAX_FUNCTION_ARG +# define SQLITE_MAX_FUNCTION_ARG 127 +#endif + +/* +** The maximum number of in-memory pages to use for the main database +** table and for temporary tables. The SQLITE_DEFAULT_CACHE_SIZE +*/ +#ifndef SQLITE_DEFAULT_CACHE_SIZE +# define SQLITE_DEFAULT_CACHE_SIZE 2000 +#endif +#ifndef SQLITE_DEFAULT_TEMP_CACHE_SIZE +# define SQLITE_DEFAULT_TEMP_CACHE_SIZE 500 +#endif + +/* +** The default number of frames to accumulate in the log file before +** checkpointing the database in WAL mode. +*/ +#ifndef SQLITE_DEFAULT_WAL_AUTOCHECKPOINT +# define SQLITE_DEFAULT_WAL_AUTOCHECKPOINT 1000 +#endif + +/* +** The maximum number of attached databases. This must be between 0 +** and 62. The upper bound on 62 is because a 64-bit integer bitmap +** is used internally to track attached databases. +*/ +#ifndef SQLITE_MAX_ATTACHED +# define SQLITE_MAX_ATTACHED 10 +#endif + + +/* +** The maximum value of a ?nnn wildcard that the parser will accept. +*/ +#ifndef SQLITE_MAX_VARIABLE_NUMBER +# define SQLITE_MAX_VARIABLE_NUMBER 999 +#endif + +/* Maximum page size. The upper bound on this value is 65536. This a limit +** imposed by the use of 16-bit offsets within each page. +** +** Earlier versions of SQLite allowed the user to change this value at +** compile time. This is no longer permitted, on the grounds that it creates +** a library that is technically incompatible with an SQLite library +** compiled with a different limit. If a process operating on a database +** with a page-size of 65536 bytes crashes, then an instance of SQLite +** compiled with the default page-size limit will not be able to rollback +** the aborted transaction. This could lead to database corruption. +*/ +#ifdef SQLITE_MAX_PAGE_SIZE +# undef SQLITE_MAX_PAGE_SIZE +#endif +#define SQLITE_MAX_PAGE_SIZE 65536 + + +/* +** The default size of a database page. +*/ +#ifndef SQLITE_DEFAULT_PAGE_SIZE +# define SQLITE_DEFAULT_PAGE_SIZE 1024 +#endif +#if SQLITE_DEFAULT_PAGE_SIZE>SQLITE_MAX_PAGE_SIZE +# undef SQLITE_DEFAULT_PAGE_SIZE +# define SQLITE_DEFAULT_PAGE_SIZE SQLITE_MAX_PAGE_SIZE +#endif + +/* +** Ordinarily, if no value is explicitly provided, SQLite creates databases +** with page size SQLITE_DEFAULT_PAGE_SIZE. However, based on certain +** device characteristics (sector-size and atomic write() support), +** SQLite may choose a larger value. This constant is the maximum value +** SQLite will choose on its own. +*/ +#ifndef SQLITE_MAX_DEFAULT_PAGE_SIZE +# define SQLITE_MAX_DEFAULT_PAGE_SIZE 8192 +#endif +#if SQLITE_MAX_DEFAULT_PAGE_SIZE>SQLITE_MAX_PAGE_SIZE +# undef SQLITE_MAX_DEFAULT_PAGE_SIZE +# define SQLITE_MAX_DEFAULT_PAGE_SIZE SQLITE_MAX_PAGE_SIZE +#endif + + +/* +** Maximum number of pages in one database file. +** +** This is really just the default value for the max_page_count pragma. +** This value can be lowered (or raised) at run-time using that the +** max_page_count macro. +*/ +#ifndef SQLITE_MAX_PAGE_COUNT +# define SQLITE_MAX_PAGE_COUNT 1073741823 +#endif + +/* +** Maximum length (in bytes) of the pattern in a LIKE or GLOB +** operator. +*/ +#ifndef SQLITE_MAX_LIKE_PATTERN_LENGTH +# define SQLITE_MAX_LIKE_PATTERN_LENGTH 50000 +#endif + +/* +** Maximum depth of recursion for triggers. +** +** A value of 1 means that a trigger program will not be able to itself +** fire any triggers. A value of 0 means that no trigger programs at all +** may be executed. +*/ +#ifndef SQLITE_MAX_TRIGGER_DEPTH +# define SQLITE_MAX_TRIGGER_DEPTH 1000 +#endif + +/************** End of sqliteLimit.h *****************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ + +/* Disable nuisance warnings on Borland compilers */ +#if defined(__BORLANDC__) +#pragma warn -rch /* unreachable code */ +#pragma warn -ccc /* Condition is always true or false */ +#pragma warn -aus /* Assigned value is never used */ +#pragma warn -csu /* Comparing signed and unsigned */ +#pragma warn -spa /* Suspicious pointer arithmetic */ +#endif + +/* Needed for various definitions... */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE +#endif + +#if defined(__OpenBSD__) && !defined(_BSD_SOURCE) +# define _BSD_SOURCE +#endif + +/* +** Include standard header files as necessary +*/ +#ifdef HAVE_STDINT_H +#include +#endif +#ifdef HAVE_INTTYPES_H +#include +#endif + +/* +** The following macros are used to cast pointers to integers and +** integers to pointers. The way you do this varies from one compiler +** to the next, so we have developed the following set of #if statements +** to generate appropriate macros for a wide range of compilers. +** +** The correct "ANSI" way to do this is to use the intptr_t type. +** Unfortunately, that typedef is not available on all compilers, or +** if it is available, it requires an #include of specific headers +** that vary from one machine to the next. +** +** Ticket #3860: The llvm-gcc-4.2 compiler from Apple chokes on +** the ((void*)&((char*)0)[X]) construct. But MSVC chokes on ((void*)(X)). +** So we have to define the macros in different ways depending on the +** compiler. +*/ +#if defined(__PTRDIFF_TYPE__) /* This case should work for GCC */ +# define SQLITE_INT_TO_PTR(X) ((void*)(__PTRDIFF_TYPE__)(X)) +# define SQLITE_PTR_TO_INT(X) ((int)(__PTRDIFF_TYPE__)(X)) +#elif !defined(__GNUC__) /* Works for compilers other than LLVM */ +# define SQLITE_INT_TO_PTR(X) ((void*)&((char*)0)[X]) +# define SQLITE_PTR_TO_INT(X) ((int)(((char*)X)-(char*)0)) +#elif defined(HAVE_STDINT_H) /* Use this case if we have ANSI headers */ +# define SQLITE_INT_TO_PTR(X) ((void*)(intptr_t)(X)) +# define SQLITE_PTR_TO_INT(X) ((int)(intptr_t)(X)) +#else /* Generates a warning - but it always works */ +# define SQLITE_INT_TO_PTR(X) ((void*)(X)) +# define SQLITE_PTR_TO_INT(X) ((int)(X)) +#endif + +/* +** The SQLITE_THREADSAFE macro must be defined as 0, 1, or 2. +** 0 means mutexes are permanently disable and the library is never +** threadsafe. 1 means the library is serialized which is the highest +** level of threadsafety. 2 means the library is multithreaded - multiple +** threads can use SQLite as long as no two threads try to use the same +** database connection at the same time. +** +** Older versions of SQLite used an optional THREADSAFE macro. +** We support that for legacy. +*/ +#if !defined(SQLITE_THREADSAFE) +# if defined(THREADSAFE) +# define SQLITE_THREADSAFE THREADSAFE +# else +# define SQLITE_THREADSAFE 1 /* IMP: R-07272-22309 */ +# endif +#endif + +/* +** Powersafe overwrite is on by default. But can be turned off using +** the -DSQLITE_POWERSAFE_OVERWRITE=0 command-line option. +*/ +#ifndef SQLITE_POWERSAFE_OVERWRITE +# define SQLITE_POWERSAFE_OVERWRITE 1 +#endif + +/* +** The SQLITE_DEFAULT_MEMSTATUS macro must be defined as either 0 or 1. +** It determines whether or not the features related to +** SQLITE_CONFIG_MEMSTATUS are available by default or not. This value can +** be overridden at runtime using the sqlite3_config() API. +*/ +#if !defined(SQLITE_DEFAULT_MEMSTATUS) +# define SQLITE_DEFAULT_MEMSTATUS 1 +#endif + +/* +** Exactly one of the following macros must be defined in order to +** specify which memory allocation subsystem to use. +** +** SQLITE_SYSTEM_MALLOC // Use normal system malloc() +** SQLITE_WIN32_MALLOC // Use Win32 native heap API +** SQLITE_ZERO_MALLOC // Use a stub allocator that always fails +** SQLITE_MEMDEBUG // Debugging version of system malloc() +** +** On Windows, if the SQLITE_WIN32_MALLOC_VALIDATE macro is defined and the +** assert() macro is enabled, each call into the Win32 native heap subsystem +** will cause HeapValidate to be called. If heap validation should fail, an +** assertion will be triggered. +** +** If none of the above are defined, then set SQLITE_SYSTEM_MALLOC as +** the default. +*/ +#if defined(SQLITE_SYSTEM_MALLOC) \ + + defined(SQLITE_WIN32_MALLOC) \ + + defined(SQLITE_ZERO_MALLOC) \ + + defined(SQLITE_MEMDEBUG)>1 +# error "Two or more of the following compile-time configuration options\ + are defined but at most one is allowed:\ + SQLITE_SYSTEM_MALLOC, SQLITE_WIN32_MALLOC, SQLITE_MEMDEBUG,\ + SQLITE_ZERO_MALLOC" +#endif +#if defined(SQLITE_SYSTEM_MALLOC) \ + + defined(SQLITE_WIN32_MALLOC) \ + + defined(SQLITE_ZERO_MALLOC) \ + + defined(SQLITE_MEMDEBUG)==0 +# define SQLITE_SYSTEM_MALLOC 1 +#endif + +/* +** If SQLITE_MALLOC_SOFT_LIMIT is not zero, then try to keep the +** sizes of memory allocations below this value where possible. +*/ +#if !defined(SQLITE_MALLOC_SOFT_LIMIT) +# define SQLITE_MALLOC_SOFT_LIMIT 1024 +#endif + +/* +** We need to define _XOPEN_SOURCE as follows in order to enable +** recursive mutexes on most Unix systems and fchmod() on OpenBSD. +** But _XOPEN_SOURCE define causes problems for Mac OS X, so omit +** it. +*/ +#if !defined(_XOPEN_SOURCE) && !defined(__DARWIN__) && !defined(__APPLE__) +# define _XOPEN_SOURCE 600 +#endif + +/* +** NDEBUG and SQLITE_DEBUG are opposites. It should always be true that +** defined(NDEBUG)==!defined(SQLITE_DEBUG). If this is not currently true, +** make it true by defining or undefining NDEBUG. +** +** Setting NDEBUG makes the code smaller and faster by disabling the +** assert() statements in the code. So we want the default action +** to be for NDEBUG to be set and NDEBUG to be undefined only if SQLITE_DEBUG +** is set. Thus NDEBUG becomes an opt-in rather than an opt-out +** feature. +*/ +#if !defined(NDEBUG) && !defined(SQLITE_DEBUG) +# define NDEBUG 1 +#endif +#if defined(NDEBUG) && defined(SQLITE_DEBUG) +# undef NDEBUG +#endif + +/* +** The testcase() macro is used to aid in coverage testing. When +** doing coverage testing, the condition inside the argument to +** testcase() must be evaluated both true and false in order to +** get full branch coverage. The testcase() macro is inserted +** to help ensure adequate test coverage in places where simple +** condition/decision coverage is inadequate. For example, testcase() +** can be used to make sure boundary values are tested. For +** bitmask tests, testcase() can be used to make sure each bit +** is significant and used at least once. On switch statements +** where multiple cases go to the same block of code, testcase() +** can insure that all cases are evaluated. +** +*/ +#ifdef SQLITE_COVERAGE_TEST +SQLITE_PRIVATE void sqlite3Coverage(int); +# define testcase(X) if( X ){ sqlite3Coverage(__LINE__); } +#else +# define testcase(X) +#endif + +/* +** The TESTONLY macro is used to enclose variable declarations or +** other bits of code that are needed to support the arguments +** within testcase() and assert() macros. +*/ +#if !defined(NDEBUG) || defined(SQLITE_COVERAGE_TEST) +# define TESTONLY(X) X +#else +# define TESTONLY(X) +#endif + +/* +** Sometimes we need a small amount of code such as a variable initialization +** to setup for a later assert() statement. We do not want this code to +** appear when assert() is disabled. The following macro is therefore +** used to contain that setup code. The "VVA" acronym stands for +** "Verification, Validation, and Accreditation". In other words, the +** code within VVA_ONLY() will only run during verification processes. +*/ +#ifndef NDEBUG +# define VVA_ONLY(X) X +#else +# define VVA_ONLY(X) +#endif + +/* +** The ALWAYS and NEVER macros surround boolean expressions which +** are intended to always be true or false, respectively. Such +** expressions could be omitted from the code completely. But they +** are included in a few cases in order to enhance the resilience +** of SQLite to unexpected behavior - to make the code "self-healing" +** or "ductile" rather than being "brittle" and crashing at the first +** hint of unplanned behavior. +** +** In other words, ALWAYS and NEVER are added for defensive code. +** +** When doing coverage testing ALWAYS and NEVER are hard-coded to +** be true and false so that the unreachable code they specify will +** not be counted as untested code. +*/ +#if defined(SQLITE_COVERAGE_TEST) +# define ALWAYS(X) (1) +# define NEVER(X) (0) +#elif !defined(NDEBUG) +# define ALWAYS(X) ((X)?1:(assert(0),0)) +# define NEVER(X) ((X)?(assert(0),1):0) +#else +# define ALWAYS(X) (X) +# define NEVER(X) (X) +#endif + +/* +** Return true (non-zero) if the input is a integer that is too large +** to fit in 32-bits. This macro is used inside of various testcase() +** macros to verify that we have tested SQLite for large-file support. +*/ +#define IS_BIG_INT(X) (((X)&~(i64)0xffffffff)!=0) + +/* +** The macro unlikely() is a hint that surrounds a boolean +** expression that is usually false. Macro likely() surrounds +** a boolean expression that is usually true. These hints could, +** in theory, be used by the compiler to generate better code, but +** currently they are just comments for human readers. +*/ +#define likely(X) (X) +#define unlikely(X) (X) + /************** Include hash.h in the middle of sqliteInt.h ******************/ /************** Begin file hash.h ********************************************/ /* @@ -8157,6 +8187,12 @@ SQLITE_PRIVATE void sqlite3HashClear(Hash*); #define offsetof(STRUCTURE,FIELD) ((int)((char*)&((STRUCTURE*)0)->FIELD)) #endif +/* +** Macros to compute minimum and maximum of two numbers. +*/ +#define MIN(A,B) ((A)<(B)?(A):(B)) +#define MAX(A,B) ((A)>(B)?(A):(B)) + /* ** Check to see if this machine uses EBCDIC. (Yes, believe it or ** not, there are still machines out there that use EBCDIC.) @@ -8240,6 +8276,31 @@ typedef INT8_TYPE i8; /* 1-byte signed integer */ typedef u32 tRowcnt; /* 32-bit is the default */ #endif +/* +** Estimated quantities used for query planning are stored as 16-bit +** logarithms. For quantity X, the value stored is 10*log2(X). This +** gives a possible range of values of approximately 1.0e986 to 1e-986. +** But the allowed values are "grainy". Not every value is representable. +** For example, quantities 16 and 17 are both represented by a LogEst +** of 40. However, since LogEst quantatites are suppose to be estimates, +** not exact values, this imprecision is not a problem. +** +** "LogEst" is short for "Logarithimic Estimate". +** +** Examples: +** 1 -> 0 20 -> 43 10000 -> 132 +** 2 -> 10 25 -> 46 25000 -> 146 +** 3 -> 16 100 -> 66 1000000 -> 199 +** 4 -> 20 1000 -> 99 1048576 -> 200 +** 10 -> 33 1024 -> 100 4294967296 -> 320 +** +** The LogEst can be negative to indicate fractional values. +** Examples: +** +** 0.5 -> -10 0.1 -> -33 0.0625 -> -40 +*/ +typedef INT16_TYPE LogEst; + /* ** Macros to determine whether the machine is big or little endian, ** evaluated at runtime. @@ -8338,6 +8399,20 @@ SQLITE_PRIVATE const int sqlite3one; # define SQLITE_DEFAULT_MMAP_SIZE SQLITE_MAX_MMAP_SIZE #endif +/* +** Only one of SQLITE_ENABLE_STAT3 or SQLITE_ENABLE_STAT4 can be defined. +** Priority is given to SQLITE_ENABLE_STAT4. If either are defined, also +** define SQLITE_ENABLE_STAT3_OR_STAT4 +*/ +#ifdef SQLITE_ENABLE_STAT4 +# undef SQLITE_ENABLE_STAT3 +# define SQLITE_ENABLE_STAT3_OR_STAT4 1 +#elif SQLITE_ENABLE_STAT3 +# define SQLITE_ENABLE_STAT3_OR_STAT4 1 +#elif SQLITE_ENABLE_STAT3_OR_STAT4 +# undef SQLITE_ENABLE_STAT3_OR_STAT4 +#endif + /* ** An instance of the following structure is used to store the busy-handler ** callback for a given sqlite handle. @@ -8482,9 +8557,7 @@ typedef struct UnpackedRecord UnpackedRecord; typedef struct VTable VTable; typedef struct VtabCtx VtabCtx; typedef struct Walker Walker; -typedef struct WherePlan WherePlan; typedef struct WhereInfo WhereInfo; -typedef struct WhereLevel WhereLevel; /* ** Defer sourcing vdbe.h and btree.h until after the "u8" and @@ -8559,7 +8632,7 @@ SQLITE_PRIVATE int sqlite3BtreeOpen( SQLITE_PRIVATE int sqlite3BtreeClose(Btree*); SQLITE_PRIVATE int sqlite3BtreeSetCacheSize(Btree*,int); SQLITE_PRIVATE int sqlite3BtreeSetMmapLimit(Btree*,sqlite3_int64); -SQLITE_PRIVATE int sqlite3BtreeSetSafetyLevel(Btree*,int,int,int); +SQLITE_PRIVATE int sqlite3BtreeSetPagerFlags(Btree*,unsigned); SQLITE_PRIVATE int sqlite3BtreeSyncDisabled(Btree*); SQLITE_PRIVATE int sqlite3BtreeSetPageSize(Btree *p, int nPagesize, int nReserve, int eFix); SQLITE_PRIVATE int sqlite3BtreeGetPageSize(Btree*); @@ -8783,7 +8856,6 @@ typedef struct Vdbe Vdbe; ** The names of the following types declared in vdbeInt.h are required ** for the VdbeOp definition. */ -typedef struct VdbeFunc VdbeFunc; typedef struct Mem Mem; typedef struct SubProgram SubProgram; @@ -8807,7 +8879,6 @@ struct VdbeOp { i64 *pI64; /* Used when p4type is P4_INT64 */ double *pReal; /* Used when p4type is P4_REAL */ FuncDef *pFunc; /* Used when p4type is P4_FUNCDEF */ - VdbeFunc *pVdbeFunc; /* Used when p4type is P4_VDBEFUNC */ CollSeq *pColl; /* Used when p4type is P4_COLLSEQ */ Mem *pMem; /* Used when p4type is P4_MEM */ VTable *pVtab; /* Used when p4type is P4_VTAB */ @@ -8861,7 +8932,6 @@ typedef struct VdbeOpList VdbeOpList; #define P4_COLLSEQ (-4) /* P4 is a pointer to a CollSeq structure */ #define P4_FUNCDEF (-5) /* P4 is a pointer to a FuncDef structure */ #define P4_KEYINFO (-6) /* P4 is a pointer to a KeyInfo structure */ -#define P4_VDBEFUNC (-7) /* P4 is a pointer to a VdbeFunc structure */ #define P4_MEM (-8) /* P4 is a pointer to a Mem* structure */ #define P4_TRANSIENT 0 /* P4 is a pointer to a transient string */ #define P4_VTAB (-10) /* P4 is a pointer to an sqlite3_vtab structure */ @@ -8918,151 +8988,151 @@ typedef struct VdbeOpList VdbeOpList; /************** Begin file opcodes.h *****************************************/ /* Automatically generated. Do not edit */ /* See the mkopcodeh.awk script for details */ -#define OP_Goto 1 -#define OP_Gosub 2 -#define OP_Return 3 -#define OP_Yield 4 -#define OP_HaltIfNull 5 -#define OP_Halt 6 -#define OP_Integer 7 -#define OP_Int64 8 -#define OP_Real 130 /* same as TK_FLOAT */ -#define OP_String8 94 /* same as TK_STRING */ -#define OP_String 9 -#define OP_Null 10 -#define OP_Blob 11 -#define OP_Variable 12 -#define OP_Move 13 -#define OP_Copy 14 -#define OP_SCopy 15 -#define OP_ResultRow 16 -#define OP_Concat 91 /* same as TK_CONCAT */ +#define OP_Function 1 +#define OP_Savepoint 2 +#define OP_AutoCommit 3 +#define OP_Transaction 4 +#define OP_SorterNext 5 +#define OP_Prev 6 +#define OP_Next 7 +#define OP_AggStep 8 +#define OP_Checkpoint 9 +#define OP_JournalMode 10 +#define OP_Vacuum 11 +#define OP_VFilter 12 +#define OP_VUpdate 13 +#define OP_Goto 14 +#define OP_Gosub 15 +#define OP_Return 16 +#define OP_Yield 17 +#define OP_HaltIfNull 18 +#define OP_Not 19 /* same as TK_NOT */ +#define OP_Halt 20 +#define OP_Integer 21 +#define OP_Int64 22 +#define OP_String 23 +#define OP_Null 24 +#define OP_Blob 25 +#define OP_Variable 26 +#define OP_Move 27 +#define OP_Copy 28 +#define OP_SCopy 29 +#define OP_ResultRow 30 +#define OP_CollSeq 31 +#define OP_AddImm 32 +#define OP_MustBeInt 33 +#define OP_RealAffinity 34 +#define OP_Permutation 35 +#define OP_Compare 36 +#define OP_Jump 37 +#define OP_Once 38 +#define OP_If 39 +#define OP_IfNot 40 +#define OP_Column 41 +#define OP_Affinity 42 +#define OP_MakeRecord 43 +#define OP_Count 44 +#define OP_ReadCookie 45 +#define OP_SetCookie 46 +#define OP_VerifyCookie 47 +#define OP_OpenRead 48 +#define OP_OpenWrite 49 +#define OP_OpenAutoindex 50 +#define OP_OpenEphemeral 51 +#define OP_SorterOpen 52 +#define OP_OpenPseudo 53 +#define OP_Close 54 +#define OP_SeekLt 55 +#define OP_SeekLe 56 +#define OP_SeekGe 57 +#define OP_SeekGt 58 +#define OP_Seek 59 +#define OP_NotFound 60 +#define OP_Found 61 +#define OP_IsUnique 62 +#define OP_NotExists 63 +#define OP_Sequence 64 +#define OP_NewRowid 65 +#define OP_Insert 66 +#define OP_InsertInt 67 +#define OP_Or 68 /* same as TK_OR */ +#define OP_And 69 /* same as TK_AND */ +#define OP_Delete 70 +#define OP_ResetCount 71 +#define OP_SorterCompare 72 +#define OP_IsNull 73 /* same as TK_ISNULL */ +#define OP_NotNull 74 /* same as TK_NOTNULL */ +#define OP_Ne 75 /* same as TK_NE */ +#define OP_Eq 76 /* same as TK_EQ */ +#define OP_Gt 77 /* same as TK_GT */ +#define OP_Le 78 /* same as TK_LE */ +#define OP_Lt 79 /* same as TK_LT */ +#define OP_Ge 80 /* same as TK_GE */ +#define OP_SorterData 81 +#define OP_BitAnd 82 /* same as TK_BITAND */ +#define OP_BitOr 83 /* same as TK_BITOR */ +#define OP_ShiftLeft 84 /* same as TK_LSHIFT */ +#define OP_ShiftRight 85 /* same as TK_RSHIFT */ #define OP_Add 86 /* same as TK_PLUS */ #define OP_Subtract 87 /* same as TK_MINUS */ #define OP_Multiply 88 /* same as TK_STAR */ #define OP_Divide 89 /* same as TK_SLASH */ #define OP_Remainder 90 /* same as TK_REM */ -#define OP_CollSeq 17 -#define OP_Function 18 -#define OP_BitAnd 82 /* same as TK_BITAND */ -#define OP_BitOr 83 /* same as TK_BITOR */ -#define OP_ShiftLeft 84 /* same as TK_LSHIFT */ -#define OP_ShiftRight 85 /* same as TK_RSHIFT */ -#define OP_AddImm 20 -#define OP_MustBeInt 21 -#define OP_RealAffinity 22 +#define OP_Concat 91 /* same as TK_CONCAT */ +#define OP_RowKey 92 +#define OP_BitNot 93 /* same as TK_BITNOT */ +#define OP_String8 94 /* same as TK_STRING */ +#define OP_RowData 95 +#define OP_Rowid 96 +#define OP_NullRow 97 +#define OP_Last 98 +#define OP_SorterSort 99 +#define OP_Sort 100 +#define OP_Rewind 101 +#define OP_SorterInsert 102 +#define OP_IdxInsert 103 +#define OP_IdxDelete 104 +#define OP_IdxRowid 105 +#define OP_IdxLT 106 +#define OP_IdxGE 107 +#define OP_Destroy 108 +#define OP_Clear 109 +#define OP_CreateIndex 110 +#define OP_CreateTable 111 +#define OP_ParseSchema 112 +#define OP_LoadAnalysis 113 +#define OP_DropTable 114 +#define OP_DropIndex 115 +#define OP_DropTrigger 116 +#define OP_IntegrityCk 117 +#define OP_RowSetAdd 118 +#define OP_RowSetRead 119 +#define OP_RowSetTest 120 +#define OP_Program 121 +#define OP_Param 122 +#define OP_FkCounter 123 +#define OP_FkIfZero 124 +#define OP_MemMax 125 +#define OP_IfPos 126 +#define OP_IfNeg 127 +#define OP_IfZero 128 +#define OP_AggFinal 129 +#define OP_Real 130 /* same as TK_FLOAT */ +#define OP_IncrVacuum 131 +#define OP_Expire 132 +#define OP_TableLock 133 +#define OP_VBegin 134 +#define OP_VCreate 135 +#define OP_VDestroy 136 +#define OP_VOpen 137 +#define OP_VColumn 138 +#define OP_VNext 139 +#define OP_VRename 140 #define OP_ToText 141 /* same as TK_TO_TEXT */ #define OP_ToBlob 142 /* same as TK_TO_BLOB */ #define OP_ToNumeric 143 /* same as TK_TO_NUMERIC*/ #define OP_ToInt 144 /* same as TK_TO_INT */ #define OP_ToReal 145 /* same as TK_TO_REAL */ -#define OP_Eq 76 /* same as TK_EQ */ -#define OP_Ne 75 /* same as TK_NE */ -#define OP_Lt 79 /* same as TK_LT */ -#define OP_Le 78 /* same as TK_LE */ -#define OP_Gt 77 /* same as TK_GT */ -#define OP_Ge 80 /* same as TK_GE */ -#define OP_Permutation 23 -#define OP_Compare 24 -#define OP_Jump 25 -#define OP_And 69 /* same as TK_AND */ -#define OP_Or 68 /* same as TK_OR */ -#define OP_Not 19 /* same as TK_NOT */ -#define OP_BitNot 93 /* same as TK_BITNOT */ -#define OP_Once 26 -#define OP_If 27 -#define OP_IfNot 28 -#define OP_IsNull 73 /* same as TK_ISNULL */ -#define OP_NotNull 74 /* same as TK_NOTNULL */ -#define OP_Column 29 -#define OP_Affinity 30 -#define OP_MakeRecord 31 -#define OP_Count 32 -#define OP_Savepoint 33 -#define OP_AutoCommit 34 -#define OP_Transaction 35 -#define OP_ReadCookie 36 -#define OP_SetCookie 37 -#define OP_VerifyCookie 38 -#define OP_OpenRead 39 -#define OP_OpenWrite 40 -#define OP_OpenAutoindex 41 -#define OP_OpenEphemeral 42 -#define OP_SorterOpen 43 -#define OP_OpenPseudo 44 -#define OP_Close 45 -#define OP_SeekLt 46 -#define OP_SeekLe 47 -#define OP_SeekGe 48 -#define OP_SeekGt 49 -#define OP_Seek 50 -#define OP_NotFound 51 -#define OP_Found 52 -#define OP_IsUnique 53 -#define OP_NotExists 54 -#define OP_Sequence 55 -#define OP_NewRowid 56 -#define OP_Insert 57 -#define OP_InsertInt 58 -#define OP_Delete 59 -#define OP_ResetCount 60 -#define OP_SorterCompare 61 -#define OP_SorterData 62 -#define OP_RowKey 63 -#define OP_RowData 64 -#define OP_Rowid 65 -#define OP_NullRow 66 -#define OP_Last 67 -#define OP_SorterSort 70 -#define OP_Sort 71 -#define OP_Rewind 72 -#define OP_SorterNext 81 -#define OP_Prev 92 -#define OP_Next 95 -#define OP_SorterInsert 96 -#define OP_IdxInsert 97 -#define OP_IdxDelete 98 -#define OP_IdxRowid 99 -#define OP_IdxLT 100 -#define OP_IdxGE 101 -#define OP_Destroy 102 -#define OP_Clear 103 -#define OP_CreateIndex 104 -#define OP_CreateTable 105 -#define OP_ParseSchema 106 -#define OP_LoadAnalysis 107 -#define OP_DropTable 108 -#define OP_DropIndex 109 -#define OP_DropTrigger 110 -#define OP_IntegrityCk 111 -#define OP_RowSetAdd 112 -#define OP_RowSetRead 113 -#define OP_RowSetTest 114 -#define OP_Program 115 -#define OP_Param 116 -#define OP_FkCounter 117 -#define OP_FkIfZero 118 -#define OP_MemMax 119 -#define OP_IfPos 120 -#define OP_IfNeg 121 -#define OP_IfZero 122 -#define OP_AggStep 123 -#define OP_AggFinal 124 -#define OP_Checkpoint 125 -#define OP_JournalMode 126 -#define OP_Vacuum 127 -#define OP_IncrVacuum 128 -#define OP_Expire 129 -#define OP_TableLock 131 -#define OP_VBegin 132 -#define OP_VCreate 133 -#define OP_VDestroy 134 -#define OP_VOpen 135 -#define OP_VFilter 136 -#define OP_VColumn 137 -#define OP_VNext 138 -#define OP_VRename 139 -#define OP_VUpdate 140 #define OP_Pagecount 146 #define OP_MaxPgcnt 147 #define OP_Trace 148 @@ -9082,24 +9152,24 @@ typedef struct VdbeOpList VdbeOpList; #define OPFLG_OUT2 0x0020 /* out2: P2 is an output */ #define OPFLG_OUT3 0x0040 /* out3: P3 is an output */ #define OPFLG_INITIALIZER {\ -/* 0 */ 0x00, 0x01, 0x01, 0x04, 0x04, 0x10, 0x00, 0x02,\ -/* 8 */ 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x24,\ -/* 16 */ 0x00, 0x00, 0x00, 0x24, 0x04, 0x05, 0x04, 0x00,\ -/* 24 */ 0x00, 0x01, 0x01, 0x05, 0x05, 0x00, 0x00, 0x00,\ -/* 32 */ 0x02, 0x00, 0x00, 0x00, 0x02, 0x10, 0x00, 0x00,\ -/* 40 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11,\ -/* 48 */ 0x11, 0x11, 0x08, 0x11, 0x11, 0x11, 0x11, 0x02,\ -/* 56 */ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\ -/* 64 */ 0x00, 0x02, 0x00, 0x01, 0x4c, 0x4c, 0x01, 0x01,\ -/* 72 */ 0x01, 0x05, 0x05, 0x15, 0x15, 0x15, 0x15, 0x15,\ -/* 80 */ 0x15, 0x01, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,\ -/* 88 */ 0x4c, 0x4c, 0x4c, 0x4c, 0x01, 0x24, 0x02, 0x01,\ -/* 96 */ 0x08, 0x08, 0x00, 0x02, 0x01, 0x01, 0x02, 0x00,\ -/* 104 */ 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\ -/* 112 */ 0x0c, 0x45, 0x15, 0x01, 0x02, 0x00, 0x01, 0x08,\ -/* 120 */ 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x02, 0x00,\ -/* 128 */ 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,\ -/* 136 */ 0x01, 0x00, 0x01, 0x00, 0x00, 0x04, 0x04, 0x04,\ +/* 0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,\ +/* 8 */ 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x01,\ +/* 16 */ 0x04, 0x04, 0x10, 0x24, 0x00, 0x02, 0x02, 0x02,\ +/* 24 */ 0x02, 0x02, 0x02, 0x00, 0x00, 0x24, 0x00, 0x00,\ +/* 32 */ 0x04, 0x05, 0x04, 0x00, 0x00, 0x01, 0x01, 0x05,\ +/* 40 */ 0x05, 0x00, 0x00, 0x00, 0x02, 0x02, 0x10, 0x00,\ +/* 48 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11,\ +/* 56 */ 0x11, 0x11, 0x11, 0x08, 0x11, 0x11, 0x11, 0x11,\ +/* 64 */ 0x02, 0x02, 0x00, 0x00, 0x4c, 0x4c, 0x00, 0x00,\ +/* 72 */ 0x00, 0x05, 0x05, 0x15, 0x15, 0x15, 0x15, 0x15,\ +/* 80 */ 0x15, 0x00, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,\ +/* 88 */ 0x4c, 0x4c, 0x4c, 0x4c, 0x00, 0x24, 0x02, 0x00,\ +/* 96 */ 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x08, 0x08,\ +/* 104 */ 0x00, 0x02, 0x01, 0x01, 0x02, 0x00, 0x02, 0x02,\ +/* 112 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x45,\ +/* 120 */ 0x15, 0x01, 0x02, 0x00, 0x01, 0x08, 0x05, 0x05,\ +/* 128 */ 0x05, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,\ +/* 136 */ 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x04, 0x04,\ /* 144 */ 0x04, 0x04, 0x02, 0x02, 0x00, 0x00, 0x00,} /************** End of opcodes.h *********************************************/ @@ -9149,7 +9219,7 @@ SQLITE_PRIVATE sqlite3 *sqlite3VdbeDb(Vdbe*); SQLITE_PRIVATE void sqlite3VdbeSetSql(Vdbe*, const char *z, int n, int); SQLITE_PRIVATE void sqlite3VdbeSwap(Vdbe*,Vdbe*); SQLITE_PRIVATE VdbeOp *sqlite3VdbeTakeOpArray(Vdbe*, int*, int*); -SQLITE_PRIVATE sqlite3_value *sqlite3VdbeGetValue(Vdbe*, int, u8); +SQLITE_PRIVATE sqlite3_value *sqlite3VdbeGetBoundValue(Vdbe*, int, u8); SQLITE_PRIVATE void sqlite3VdbeSetVarmask(Vdbe*, int); #ifndef SQLITE_OMIT_TRACE SQLITE_PRIVATE char *sqlite3VdbeExpandSql(Vdbe*, const char*); @@ -9263,8 +9333,20 @@ typedef struct PgHdr DbPage; /* ** Flags that make up the mask passed to sqlite3PagerAcquire(). */ -#define PAGER_ACQUIRE_NOCONTENT 0x01 /* Do not load data from disk */ -#define PAGER_ACQUIRE_READONLY 0x02 /* Read-only page is acceptable */ +#define PAGER_GET_NOCONTENT 0x01 /* Do not load data from disk */ +#define PAGER_GET_READONLY 0x02 /* Read-only page is acceptable */ + +/* +** Flags for sqlite3PagerSetFlags() +*/ +#define PAGER_SYNCHRONOUS_OFF 0x01 /* PRAGMA synchronous=OFF */ +#define PAGER_SYNCHRONOUS_NORMAL 0x02 /* PRAGMA synchronous=NORMAL */ +#define PAGER_SYNCHRONOUS_FULL 0x03 /* PRAGMA synchronous=FULL */ +#define PAGER_SYNCHRONOUS_MASK 0x03 /* Mask for three values above */ +#define PAGER_FULLFSYNC 0x04 /* PRAGMA fullfsync=ON */ +#define PAGER_CKPT_FULLFSYNC 0x08 /* PRAGMA checkpoint_fullfsync=ON */ +#define PAGER_CACHESPILL 0x10 /* PRAGMA cache_spill=ON */ +#define PAGER_FLAGS_MASK 0x1c /* All above except SYNCHRONOUS */ /* ** The remainder of this file contains the declarations of the functions @@ -9292,7 +9374,7 @@ SQLITE_PRIVATE int sqlite3PagerMaxPageCount(Pager*, int); SQLITE_PRIVATE void sqlite3PagerSetCachesize(Pager*, int); SQLITE_PRIVATE void sqlite3PagerSetMmapLimit(Pager *, sqlite3_int64); SQLITE_PRIVATE void sqlite3PagerShrink(Pager*); -SQLITE_PRIVATE void sqlite3PagerSetSafetyLevel(Pager*,int,int,int); +SQLITE_PRIVATE void sqlite3PagerSetFlags(Pager*,unsigned); SQLITE_PRIVATE int sqlite3PagerLockingMode(Pager *, int); SQLITE_PRIVATE int sqlite3PagerSetJournalMode(Pager *, int); SQLITE_PRIVATE int sqlite3PagerGetJournalMode(Pager*); @@ -9921,7 +10003,6 @@ SQLITE_PRIVATE int sqlite3OsCloseFree(sqlite3_file *); struct Db { char *zName; /* Name of this database */ Btree *pBt; /* The B*Tree structure for this database file */ - u8 inTrans; /* 0: not writable. 1: Transaction. 2: Checkpoint */ u8 safety_level; /* How aggressive at syncing data to disk */ Schema *pSchema; /* Pointer to database schema (possibly shared) */ }; @@ -10067,9 +10148,10 @@ struct sqlite3 { u8 busy; /* TRUE if currently initializing */ u8 orphanTrigger; /* Last statement is orphaned TEMP trigger */ } init; - int activeVdbeCnt; /* Number of VDBEs currently executing */ - int writeVdbeCnt; /* Number of active VDBEs that are writing */ - int vdbeExecCnt; /* Number of nested calls to VdbeExec() */ + int nVdbeActive; /* Number of VDBEs currently running */ + int nVdbeRead; /* Number of active VDBEs that read or write */ + int nVdbeWrite; /* Number of active VDBEs that read and write */ + int nVdbeExec; /* Number of nested calls to VdbeExec() */ int nExtension; /* Number of loaded extensions */ void **aExtension; /* Array of shared library handles */ void (*xTrace)(void*,const char*); /* Trace function */ @@ -10090,8 +10172,6 @@ struct sqlite3 { void(*xCollNeeded16)(void*,sqlite3*,int eTextRep,const void*); void *pCollNeededArg; sqlite3_value *pErr; /* Most recent error message */ - char *zErrMsg; /* Most recent error message (UTF-8 encoded) */ - char *zErrMsg16; /* Most recent error message (UTF-16 encoded) */ union { volatile int isInterrupted; /* True if sqlite3_interrupt has been called */ double notUsed1; /* Spacer */ @@ -10105,7 +10185,7 @@ struct sqlite3 { #ifndef SQLITE_OMIT_PROGRESS_CALLBACK int (*xProgress)(void *); /* The progress callback */ void *pProgressArg; /* Argument to the progress callback */ - int nProgressOps; /* Number of opcodes for progress callback */ + unsigned nProgressOps; /* Number of opcodes for progress callback */ #endif #ifndef SQLITE_OMIT_VIRTUALTABLE int nVTrans; /* Allocated size of aVTrans */ @@ -10123,6 +10203,7 @@ struct sqlite3 { int nSavepoint; /* Number of non-transaction savepoints */ int nStatement; /* Number of nested statement-transactions */ i64 nDeferredCons; /* Net deferred constraints this transaction. */ + i64 nDeferredImmCons; /* Net deferred immediate constraints */ int *pnBytesFreed; /* If not NULL, increment this in DbFree() */ #ifdef SQLITE_ENABLE_UNLOCK_NOTIFY @@ -10154,30 +10235,34 @@ struct sqlite3 { */ #define SQLITE_VdbeTrace 0x00000001 /* True to trace VDBE execution */ #define SQLITE_InternChanges 0x00000002 /* Uncommitted Hash table changes */ -#define SQLITE_FullColNames 0x00000004 /* Show full column names on SELECT */ -#define SQLITE_ShortColNames 0x00000008 /* Show short columns names */ -#define SQLITE_CountRows 0x00000010 /* Count rows changed by INSERT, */ +#define SQLITE_FullFSync 0x00000004 /* Use full fsync on the backend */ +#define SQLITE_CkptFullFSync 0x00000008 /* Use full fsync for checkpoint */ +#define SQLITE_CacheSpill 0x00000010 /* OK to spill pager cache */ +#define SQLITE_FullColNames 0x00000020 /* Show full column names on SELECT */ +#define SQLITE_ShortColNames 0x00000040 /* Show short columns names */ +#define SQLITE_CountRows 0x00000080 /* Count rows changed by INSERT, */ /* DELETE, or UPDATE and return */ /* the count using a callback. */ -#define SQLITE_NullCallback 0x00000020 /* Invoke the callback once if the */ +#define SQLITE_NullCallback 0x00000100 /* Invoke the callback once if the */ /* result set is empty */ -#define SQLITE_SqlTrace 0x00000040 /* Debug print SQL as it executes */ -#define SQLITE_VdbeListing 0x00000080 /* Debug listings of VDBE programs */ -#define SQLITE_WriteSchema 0x00000100 /* OK to update SQLITE_MASTER */ -#define SQLITE_VdbeAddopTrace 0x00000200 /* Trace sqlite3VdbeAddOp() calls */ -#define SQLITE_IgnoreChecks 0x00000400 /* Do not enforce check constraints */ -#define SQLITE_ReadUncommitted 0x0000800 /* For shared-cache mode */ -#define SQLITE_LegacyFileFmt 0x00001000 /* Create new databases in format 1 */ -#define SQLITE_FullFSync 0x00002000 /* Use full fsync on the backend */ -#define SQLITE_CkptFullFSync 0x00004000 /* Use full fsync for checkpoint */ -#define SQLITE_RecoveryMode 0x00008000 /* Ignore schema errors */ -#define SQLITE_ReverseOrder 0x00010000 /* Reverse unordered SELECTs */ -#define SQLITE_RecTriggers 0x00020000 /* Enable recursive triggers */ -#define SQLITE_ForeignKeys 0x00040000 /* Enforce foreign key constraints */ -#define SQLITE_AutoIndex 0x00080000 /* Enable automatic indexes */ -#define SQLITE_PreferBuiltin 0x00100000 /* Preference to built-in funcs */ -#define SQLITE_LoadExtension 0x00200000 /* Enable load_extension */ -#define SQLITE_EnableTrigger 0x00400000 /* True to enable triggers */ +#define SQLITE_SqlTrace 0x00000200 /* Debug print SQL as it executes */ +#define SQLITE_VdbeListing 0x00000400 /* Debug listings of VDBE programs */ +#define SQLITE_WriteSchema 0x00000800 /* OK to update SQLITE_MASTER */ +#define SQLITE_VdbeAddopTrace 0x00001000 /* Trace sqlite3VdbeAddOp() calls */ +#define SQLITE_IgnoreChecks 0x00002000 /* Do not enforce check constraints */ +#define SQLITE_ReadUncommitted 0x0004000 /* For shared-cache mode */ +#define SQLITE_LegacyFileFmt 0x00008000 /* Create new databases in format 1 */ +#define SQLITE_RecoveryMode 0x00010000 /* Ignore schema errors */ +#define SQLITE_ReverseOrder 0x00020000 /* Reverse unordered SELECTs */ +#define SQLITE_RecTriggers 0x00040000 /* Enable recursive triggers */ +#define SQLITE_ForeignKeys 0x00080000 /* Enforce foreign key constraints */ +#define SQLITE_AutoIndex 0x00100000 /* Enable automatic indexes */ +#define SQLITE_PreferBuiltin 0x00200000 /* Preference to built-in funcs */ +#define SQLITE_LoadExtension 0x00400000 /* Enable load_extension */ +#define SQLITE_EnableTrigger 0x00800000 /* True to enable triggers */ +#define SQLITE_DeferFKs 0x01000000 /* Defer all FK constraints */ +#define SQLITE_QueryOnly 0x02000000 /* Disable database changes */ + /* ** Bits of the sqlite3.dbOptFlags field that are used by the @@ -10194,6 +10279,9 @@ struct sqlite3 { #define SQLITE_OrderByIdxJoin 0x0080 /* ORDER BY of joins via index */ #define SQLITE_SubqCoroutine 0x0100 /* Evaluate subqueries as coroutines */ #define SQLITE_Transitive 0x0200 /* Transitive constraints */ +#define SQLITE_OmitNoopJoin 0x0400 /* Omit unused tables in joins */ +#define SQLITE_Stat3 0x0800 /* Use the SQLITE_STAT3 table */ +#define SQLITE_AdjustOutEst 0x1000 /* Adjust output estimates using WHERE */ #define SQLITE_AllOpts 0xffff /* All optimizations */ /* @@ -10227,8 +10315,7 @@ struct sqlite3 { */ struct FuncDef { i16 nArg; /* Number of arguments. -1 means unlimited */ - u8 iPrefEnc; /* Preferred text encoding (SQLITE_UTF8, 16LE, 16BE) */ - u8 flags; /* Some combination of SQLITE_FUNC_* */ + u16 funcFlags; /* Some combination of SQLITE_FUNC_* */ void *pUserData; /* User data parameter */ FuncDef *pNext; /* Next function with same name */ void (*xFunc)(sqlite3_context*,int,sqlite3_value**); /* Regular function */ @@ -10264,14 +10351,16 @@ struct FuncDestructor { ** values must correspond to OPFLAG_LENGTHARG and OPFLAG_TYPEOFARG. There ** are assert() statements in the code to verify this. */ -#define SQLITE_FUNC_LIKE 0x01 /* Candidate for the LIKE optimization */ -#define SQLITE_FUNC_CASE 0x02 /* Case-sensitive LIKE-type function */ -#define SQLITE_FUNC_EPHEM 0x04 /* Ephemeral. Delete with VDBE */ -#define SQLITE_FUNC_NEEDCOLL 0x08 /* sqlite3GetFuncCollSeq() might be called */ -#define SQLITE_FUNC_COUNT 0x10 /* Built-in count(*) aggregate */ -#define SQLITE_FUNC_COALESCE 0x20 /* Built-in coalesce() or ifnull() function */ -#define SQLITE_FUNC_LENGTH 0x40 /* Built-in length() function */ -#define SQLITE_FUNC_TYPEOF 0x80 /* Built-in typeof() function */ +#define SQLITE_FUNC_ENCMASK 0x003 /* SQLITE_UTF8, SQLITE_UTF16BE or UTF16LE */ +#define SQLITE_FUNC_LIKE 0x004 /* Candidate for the LIKE optimization */ +#define SQLITE_FUNC_CASE 0x008 /* Case-sensitive LIKE-type function */ +#define SQLITE_FUNC_EPHEM 0x010 /* Ephemeral. Delete with VDBE */ +#define SQLITE_FUNC_NEEDCOLL 0x020 /* sqlite3GetFuncCollSeq() might be called */ +#define SQLITE_FUNC_LENGTH 0x040 /* Built-in length() function */ +#define SQLITE_FUNC_TYPEOF 0x080 /* Built-in typeof() function */ +#define SQLITE_FUNC_COUNT 0x100 /* Built-in count(*) aggregate */ +#define SQLITE_FUNC_COALESCE 0x200 /* Built-in coalesce() or ifnull() */ +#define SQLITE_FUNC_UNLIKELY 0x400 /* Built-in unlikely() function */ /* ** The following three macros, FUNCTION(), LIKEFUNC() and AGGREGATE() are @@ -10299,18 +10388,18 @@ struct FuncDestructor { ** parameter. */ #define FUNCTION(zName, nArg, iArg, bNC, xFunc) \ - {nArg, SQLITE_UTF8, (bNC*SQLITE_FUNC_NEEDCOLL), \ + {nArg, SQLITE_UTF8|(bNC*SQLITE_FUNC_NEEDCOLL), \ SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, 0, #zName, 0, 0} #define FUNCTION2(zName, nArg, iArg, bNC, xFunc, extraFlags) \ - {nArg, SQLITE_UTF8, (bNC*SQLITE_FUNC_NEEDCOLL)|extraFlags, \ + {nArg, SQLITE_UTF8|(bNC*SQLITE_FUNC_NEEDCOLL)|extraFlags, \ SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, 0, #zName, 0, 0} #define STR_FUNCTION(zName, nArg, pArg, bNC, xFunc) \ - {nArg, SQLITE_UTF8, bNC*SQLITE_FUNC_NEEDCOLL, \ + {nArg, SQLITE_UTF8|(bNC*SQLITE_FUNC_NEEDCOLL), \ pArg, 0, xFunc, 0, 0, #zName, 0, 0} #define LIKEFUNC(zName, nArg, arg, flags) \ - {nArg, SQLITE_UTF8, flags, (void *)arg, 0, likeFunc, 0, 0, #zName, 0, 0} + {nArg, SQLITE_UTF8|flags, (void *)arg, 0, likeFunc, 0, 0, #zName, 0, 0} #define AGGREGATE(zName, nArg, arg, nc, xStep, xFinal) \ - {nArg, SQLITE_UTF8, nc*SQLITE_FUNC_NEEDCOLL, \ + {nArg, SQLITE_UTF8|(nc*SQLITE_FUNC_NEEDCOLL), \ SQLITE_INT_TO_PTR(arg), 0, 0, xStep,xFinal,#zName,0,0} /* @@ -10322,6 +10411,7 @@ struct FuncDestructor { struct Savepoint { char *zName; /* Savepoint name (nul-terminated) */ i64 nDeferredCons; /* Number of deferred fk violations */ + i64 nDeferredImmCons; /* Number of deferred imm fk. */ Savepoint *pNext; /* Parent savepoint (if any) */ }; @@ -10358,7 +10448,8 @@ struct Column { char *zColl; /* Collating sequence. If NULL, use the default */ u8 notNull; /* An OE_ code for handling a NOT NULL constraint */ char affinity; /* One of the SQLITE_AFF_... values */ - u16 colFlags; /* Boolean properties. See COLFLAG_ defines below */ + u8 szEst; /* Estimated size of this column. INT==1 */ + u8 colFlags; /* Boolean properties. See COLFLAG_ defines below */ }; /* Allowed values for Column.colFlags: @@ -10522,6 +10613,7 @@ struct Table { i16 iPKey; /* If not negative, use aCol[iPKey] as the primary key */ i16 nCol; /* Number of columns in this table */ u16 nRef; /* Number of pointers to this Table */ + LogEst szTabRow; /* Estimated size of each table row in bytes */ u8 tabFlags; /* Mask of TF_* values */ u8 keyConf; /* What to do in case of uniqueness conflict on iPKey */ #ifndef SQLITE_OMIT_ALTERTABLE @@ -10633,19 +10725,23 @@ struct FKey { #define OE_SetDflt 8 /* Set the foreign key value to its default */ #define OE_Cascade 9 /* Cascade the changes */ -#define OE_Default 99 /* Do whatever the default action is */ +#define OE_Default 10 /* Do whatever the default action is */ /* ** An instance of the following structure is passed as the first ** argument to sqlite3VdbeKeyCompare and is used to control the ** comparison of the two index keys. +** +** Note that aSortOrder[] and aColl[] have nField+1 slots. There +** are nField slots for the columns of an index then one extra slot +** for the rowid at the end. */ struct KeyInfo { sqlite3 *db; /* The database connection */ u8 enc; /* Text encoding - one of the SQLITE_UTF* values */ - u16 nField; /* Number of entries in aColl[] */ - u8 *aSortOrder; /* Sort order for each column. May be NULL */ + u16 nField; /* Maximum index for aColl[] and aSortOrder[] */ + u8 *aSortOrder; /* Sort order for each column. */ CollSeq *aColl[1]; /* Collating sequence for each term of the key */ }; @@ -10714,14 +10810,18 @@ struct Index { Schema *pSchema; /* Schema containing this index */ u8 *aSortOrder; /* for each column: True==DESC, False==ASC */ char **azColl; /* Array of collation sequence names for index */ + Expr *pPartIdxWhere; /* WHERE clause for partial indices */ int tnum; /* DB Page containing root of this index */ + LogEst szIdxRow; /* Estimated average row size in bytes */ u16 nColumn; /* Number of columns in table used by this index */ u8 onError; /* OE_Abort, OE_Ignore, OE_Replace, or OE_None */ unsigned autoIndex:2; /* 1==UNIQUE, 2==PRIMARY KEY, 0==CREATE INDEX */ unsigned bUnordered:1; /* Use this index for == or IN queries only */ -#ifdef SQLITE_ENABLE_STAT3 + unsigned uniqNotNull:1; /* True if UNIQUE and NOT NULL for all columns */ +#ifdef SQLITE_ENABLE_STAT3_OR_STAT4 int nSample; /* Number of elements in aSample[] */ - tRowcnt avgEq; /* Average nEq value for key values not in aSample */ + int nSampleCol; /* Size of IndexSample.anEq[] and so on */ + tRowcnt *aAvgEq; /* Average nEq values for keys not in aSample */ IndexSample *aSample; /* Samples of the left-most key */ #endif }; @@ -10732,16 +10832,11 @@ struct Index { ** analyze.c source file for additional information. */ struct IndexSample { - union { - char *z; /* Value if eType is SQLITE_TEXT or SQLITE_BLOB */ - double r; /* Value if eType is SQLITE_FLOAT */ - i64 i; /* Value if eType is SQLITE_INTEGER */ - } u; - u8 eType; /* SQLITE_NULL, SQLITE_INTEGER ... etc. */ - int nByte; /* Size in byte of text or blob. */ - tRowcnt nEq; /* Est. number of rows where the key equals this sample */ - tRowcnt nLt; /* Est. number of rows where key is less than this sample */ - tRowcnt nDLt; /* Est. number of distinct keys less than this sample */ + void *p; /* Pointer to sampled record */ + int n; /* Size of record in bytes */ + tRowcnt *anEq; /* Est. number of rows where the key equals this sample */ + tRowcnt *anLt; /* Est. number of rows where key is less than this sample */ + tRowcnt *anDLt; /* Est. number of distinct keys less than this sample */ }; /* @@ -10882,7 +10977,7 @@ typedef int ynVar; struct Expr { u8 op; /* Operation performed by this node */ char affinity; /* The affinity of the column or 0 if not a column */ - u16 flags; /* Various flags. EP_* See below */ + u32 flags; /* Various flags. EP_* See below */ union { char *zToken; /* Token value. Zero terminated and dequoted */ int iValue; /* Non-negative integer value if EP_IntValue */ @@ -10896,8 +10991,8 @@ struct Expr { Expr *pLeft; /* Left subnode */ Expr *pRight; /* Right subnode */ union { - ExprList *pList; /* Function arguments or in " IN ( IN (