Compare commits

...

879 Commits

Author SHA1 Message Date
John Preston
dcf79df0b2 Version 1.8.13.
- Bug fixes and other minor improvements.
2019-10-03 13:26:39 +03:00
John Preston
9773563926 Fix history geometry update being lost.
Fixes #6629.
2019-10-03 13:25:05 +03:00
John Preston
3779ad46ca Fix crash in pre-launch logging.
Fixes #6635.
2019-10-03 12:37:00 +03:00
John Preston
4e7946d03e Allow scales below 100.
Fixes #6632.
2019-10-03 12:34:58 +03:00
John Preston
606a90a4ac Fix crash in emoji suggestions.
Fixes #6636.
2019-10-03 12:13:41 +03:00
John Preston
af818b40aa Version 1.8.12: Apply user settings in Session().
Fixes #6617.
2019-10-02 13:47:40 +03:00
John Preston
ecfe1dacb2 Version 1.8.12: Fix build for Xcode. 2019-10-02 12:54:29 +03:00
John Preston
60640c7087 Version 1.8.12: Fix 'edited' badge display. 2019-10-02 12:08:31 +03:00
RadRussianRus
982edcb310 Resize message with photo when bubbled 2019-10-02 11:56:33 +03:00
Jiachen YANG
4669c07dc5 fix range-v3 version to 0.9.1 2019-10-02 11:52:55 +03:00
Jiachen YANG
c164985233 tweak vs2019 compiler settings to be compatible with newer range-v3 2019-10-02 11:52:55 +03:00
Jiachen YANG
497df7f4b2 change deprecated ranges::to_ to ranges::to (no underscore) 2019-10-02 11:52:55 +03:00
Jiachen YANG
56aab1aa07 explicitly specify the upper bound in ranges::view::ints 2019-10-02 11:52:55 +03:00
Jiachen YANG
8abeb4a9db include range/v3/range/conversion.hpp instead of range/v3/to_container.hpp 2019-10-02 11:52:55 +03:00
Jiachen YANG
d78716d7d4 appveyor use range-v3 latest branch 2019-10-02 11:52:55 +03:00
Jiachen YANG
d7489f8e67 Revert "Use 0.5.0 version of range-v3."
This reverts commit 3355e6da0c.
2019-10-02 11:52:55 +03:00
Jiachen YANG
9d850b71e7 be compatible with range-v3 0.9.x/1.0 branch
This made 2 changes to the current code base to be compatible with higher versions of range-v3 library.
1. ranges::iterator_range was renamed to subrange, see https://github.com/ericniebler/range-v3/issues/766
2. PercentCounterItem need an operator== for ranges::sort for some reason
2019-10-02 11:52:55 +03:00
RadRussianRus
684cfa16b8 Do not show edit timer for supergroup admins 2019-10-02 11:31:43 +03:00
John Preston
2cb7d76417 Optimize unixtime refresh. 2019-10-02 11:30:50 +03:00
23rd
9bf8b619fe Refactored ability to display media preview from touchbar. 2019-10-02 11:30:23 +03:00
John Preston
664162982c Version 1.8.12: Fix build for old OS X. 2019-10-02 11:21:56 +03:00
John Preston
718f862be0 Version 1.8.12: Fix build for Mac App Store. 2019-10-02 11:21:02 +03:00
John Preston
489bd22828 Version 1.8.12.
- Bug fixes and other minor improvements.
2019-10-02 11:18:23 +03:00
John Preston
65b5a29288 Fix local url handling.
Regression was introduced in 849deb57e2.

Fixes #6622.
2019-10-02 11:11:03 +03:00
John Preston
bf345da87b Version 1.8.11: Fix build for Xcode. 2019-10-02 00:57:16 +03:00
John Preston
1e5aa2a78d Version 1.8.11.
- Bug fixes and other minor improvements.
2019-10-01 23:59:46 +03:00
John Preston
8cf62c312f Allow not to cache emoji sprites. 2019-10-01 23:59:46 +03:00
John Preston
3b0bf7cb1e Move some more widgets and effects. 2019-10-01 23:59:46 +03:00
John Preston
673072ea5b Reorganize GYP files. 2019-10-01 23:59:46 +03:00
John Preston
849deb57e2 Move many widget classes to lib_ui. 2019-10-01 23:59:46 +03:00
John Preston
dda587a2fc Move QtConnectionOwner to base/qt_connection. 2019-10-01 23:59:46 +03:00
John Preston
c057f28425 Move standard buttons to lib_ui. 2019-10-01 23:59:46 +03:00
John Preston
a16c6ca41a Support more request types. 2019-10-01 23:59:46 +03:00
John Preston
c5845f17ae Remove twidget header. 2019-10-01 23:59:46 +03:00
John Preston
e2f54eb3e9 Move some style code to lib_ui. 2019-10-01 23:59:46 +03:00
John Preston
5a1c8e6a0a Move fonts to a separate .qrc file. 2019-10-01 23:59:46 +03:00
John Preston
b73390a3f6 Support emoji in popup menu items. 2019-10-01 23:59:46 +03:00
John Preston
0c713a930a Remove app.h / facades.h from precompiled header. 2019-10-01 23:59:46 +03:00
John Preston
a87529b8c9 Version 1.8.10.
- Bug fixes and other minor improvements.
2019-10-01 23:59:46 +03:00
John Preston
0c30bbf40a Fix file reference refresh in stickers / GIFs.
Fixes #6592.
2019-09-30 13:25:09 +03:00
John Preston
f75bfb4369 Version 1.8.9.
- Bug fixes and other minor improvements.
2019-09-27 20:04:25 +03:00
John Preston
0c34ba638c Don't show revoke checkbox in Saved Messages. 2019-09-27 20:01:36 +03:00
John Preston
4af9c801ae Don't show sticker suggestions if can't send.
Fixes #6581.
2019-09-27 19:56:54 +03:00
John Preston
e06bf16980 Improve name / title limits. 2019-09-27 19:46:27 +03:00
John Preston
1018745b0b Fix userpic display in custom notifications.
Fixes #6532.
2019-09-27 19:36:19 +03:00
John Preston
47b157bf32 Fix possible crash in custom notifications. 2019-09-27 18:53:44 +03:00
John Preston
09547bd6d5 Fix possible crash in scheduled messages. 2019-09-27 18:49:49 +03:00
RadRussianRus
d17f21c10d Use exact version of libxkbcommon in Travis build 2019-09-27 18:05:26 +03:00
udf
f11339361d Make "All Users" checkbox behave like the "All Actions" checkbox 2019-09-27 18:04:50 +03:00
John Preston
04b9d4bdb5 Fix animated emoji reloading. 2019-09-11 14:00:18 +03:00
John Preston
1d8d2b6251 Fix theme link preview title. 2019-09-10 18:30:47 +03:00
John Preston
190bf8fc5f Version 1.8.8.
- Create new themes based on your color and wallpaper choices.
- Share your themes with other users via links.
- Update your theme for all its users when you change something.
2019-09-10 14:22:20 +03:00
John Preston
f463d3ec6d Divide autoupdate paths for OS versions. 2019-09-10 14:22:20 +03:00
23rd
f9d10094ac Added warning when try to attach new media while editing message. 2019-09-10 14:22:20 +03:00
RadRussianRus
9fc87c3cb8 Fix last message tail drawing in theme preview 2019-09-10 10:48:20 +03:00
Sean
0d9c30423f Add chrpath to CMake instruction
Ref: 02a8b69
2019-09-10 10:13:51 +03:00
John Preston
c4bc76c022 Beta version 1.8.7.
- Bug fixes and other minor improvements.
2019-09-10 00:52:34 +03:00
John Preston
241f5e1d26 Make theme preview fit in minimal window size. 2019-09-10 00:50:15 +03:00
John Preston
76f0abecfd Show sticker set on Ctrl+Click in stickers list. 2019-09-10 00:48:34 +03:00
John Preston
ca45fb617e Fix applying background after theme edit. 2019-09-10 00:36:16 +03:00
John Preston
dfd63e66ff Add import theme to the editor. 2019-09-09 23:58:41 +03:00
John Preston
d85f162bff Fix saving cloud themes from media viewer. 2019-09-09 23:58:30 +03:00
John Preston
1d4fbc64e2 Ensure theme list radiobutton contrast. 2019-09-09 23:25:54 +03:00
John Preston
9fd32fc85b Ensure contrast in critical theme parts. 2019-09-09 23:02:24 +03:00
John Preston
f7f195eb98 Fix transfer ownership button visibility.
Regression was introduced in 569340c7d3.
2019-09-09 21:07:12 +03:00
John Preston
12c7bd8ee1 Suggest theme title based on accent color. 2019-09-09 20:27:07 +03:00
John Preston
cd5ef069c0 Ask to unlock Telegram before saving theme. 2019-09-09 20:26:53 +03:00
John Preston
f90fdce422 Fix crash on quit from passcode with a box. 2019-09-09 18:54:38 +03:00
John Preston
423254f7eb Fix theme editor closing in a small window.
Fixes #6510.
2019-09-09 18:37:04 +03:00
John Preston
c9c0d74b68 Fix build for Linux. 2019-09-09 17:50:26 +03:00
John Preston
8bf6013342 Add 'Export theme' / 'Show palette file' menu. 2019-09-09 17:44:08 +03:00
John Preston
c1ab1acd44 Fix crash in scheduled messages 'Send Now'. 2019-09-09 17:43:39 +03:00
John Preston
90b955534a Beta version 1.8.6: Improve theme preview. 2019-09-09 16:13:16 +03:00
John Preston
61c7bf2f5e Beta version 1.8.6.
- Bug fixes and other minor improvements.
2019-09-09 14:56:55 +03:00
John Preston
ee5423762a Generate previews for cloud theme links. 2019-09-09 14:56:05 +03:00
John Preston
6d29dc3b36 Apply themes in settings without preview. 2019-09-09 12:13:07 +03:00
John Preston
aa10934e85 Fix messing up accent color if editor is opened. 2019-09-09 12:02:06 +03:00
John Preston
9ff1fbcf47 Support theme document file origins. 2019-09-09 11:51:07 +03:00
John Preston
51c1dc20e1 Unregister randomId if send message fails. 2019-09-09 11:13:41 +03:00
John Preston
3a3bf84cfc Fix crash in SeparatePanel destruction.
We should destroy layers before panel widget destructor started.
We do it already for MainWindow in clearWidgetsHook.
2019-09-09 10:52:03 +03:00
John Preston
037b936613 Fix possible crash with emoji load failure. 2019-09-09 10:45:18 +03:00
John Preston
b631d09a40 Fix possible crash in event loop nesting. 2019-09-09 10:45:18 +03:00
John Zimmermann
fd4f384c3b Allow GDK wayland backend when Telegram is running under Wayland
and make sure that it never tries to load gtk2 under wayland, it can
lead to Telegram crashing
2019-09-09 10:25:01 +03:00
RadRussianRus
428a501bac Show Beginning button only for message date
Also hide button when you're already at beginning.
2019-09-09 10:17:23 +03:00
RadRussianRus
3ca57ae50d Added "Beginning" button to calendar 2019-09-09 10:17:23 +03:00
RadRussianRus
f1eddcd584 Make link preview title clickable 2019-09-09 10:15:32 +03:00
Sameer Hoosen
f979df3dfe Allow searching for messages by a user who has left a chat (#6417)
Fixes #5667
2019-09-09 10:05:29 +03:00
John Preston
eebcdb842d Generate previews async in cloud themes list. 2019-09-09 09:59:57 +03:00
John Preston
048658f838 Fix deleting theme from the list. 2019-09-09 08:54:17 +03:00
John Preston
8fd17e2e8f Fix theme with background with colorizer. 2019-09-09 08:53:16 +03:00
John Preston
5c13214244 Beta version 1.8.5: Fix build for old OS X. 2019-09-08 23:42:40 +03:00
John Preston
12a020cd09 Beta version 1.8.5: Fix build for Linux. 2019-09-08 23:38:45 +03:00
John Preston
b98e02f326 Beta version 1.8.5: Fix build on macOS. 2019-09-08 23:04:25 +03:00
John Preston
9a521c5340 Beta version 1.8.5.
- Create new themes based on your color and wallpaper choices.
- Share your themes with other users via links.
- Update your theme for all its users when you change something.
2019-09-08 21:38:58 +03:00
John Preston
5f26e92f5c Fix scheduled messages from ShareBox.
Fixes #6497.
2019-09-08 21:26:17 +03:00
John Preston
3d78c637a2 Strip editor information from palette. 2019-09-08 21:21:54 +03:00
John Preston
2ab2eed633 Push new saved theme to the list. 2019-09-08 21:05:35 +03:00
John Preston
bb7018424a Copy adjusted color values to editor. 2019-09-08 21:00:31 +03:00
John Preston
a770b5d4cd Allow share and remove cloud themes. 2019-09-08 20:32:25 +03:00
John Preston
c92a9585e1 Check changes when saving theme. 2019-09-08 19:29:43 +03:00
John Preston
cedb2d31af Check palette changes on editor cancel. 2019-09-08 16:40:15 +03:00
John Preston
95da2dbc34 Move create theme button to three-dot menu. 2019-09-08 15:47:22 +03:00
John Preston
f9b2a8d6ac Show progress in theme saving. 2019-09-08 14:52:42 +03:00
John Preston
a773ad7b02 Fix reverting edited theme values. 2019-09-06 19:31:07 +03:00
John Preston
32287a51f9 Don't show warning on theme autoupdate. 2019-09-06 19:31:07 +03:00
John Preston
37a4c79c81 Open theme preview after loading. 2019-09-06 19:31:07 +03:00
John Preston
95ee17bd54 Optimize theme edit data clearing. 2019-09-06 19:31:07 +03:00
John Preston
469c6770fb Handle t.me/addtheme links. 2019-09-06 19:31:07 +03:00
John Preston
e38123cc48 Send theme install requests. 2019-09-06 19:31:07 +03:00
John Preston
e3d7bf771f Update current theme in realtime. 2019-09-06 19:31:07 +03:00
John Preston
1cda90c3c5 Check fields before uploading theme. 2019-09-06 19:31:07 +03:00
John Preston
9c86f0e0a5 Save themes, apply and close editor on save. 2019-09-06 19:31:07 +03:00
John Preston
910f16312c Show not supported themes placeholders. 2019-09-06 19:31:07 +03:00
23rd
639b4bdd27 Fixed badge update during theme testing. 2019-09-06 19:31:07 +03:00
John Preston
4951eeac98 Allow creating desktop part of multi-theme. 2019-09-06 19:31:07 +03:00
John Preston
79106e0c01 Correctly show custom themes in list. 2019-09-06 19:31:07 +03:00
John Preston
7485f0c960 Don't change real theme when editing. 2019-09-06 19:31:07 +03:00
John Preston
03bdd80b2f Open theme editor for existing themes. 2019-09-06 19:31:07 +03:00
John Preston
dd74f57a66 Display full themes list in Settings. 2019-09-06 19:31:07 +03:00
John Preston
534772722e Improve theme selector design. 2019-09-06 19:31:07 +03:00
John Preston
6343221d7b Remove many includes from stdafx.pch. 2019-09-06 19:31:07 +03:00
John Preston
4929de2bfb Apply cloud themes. 2019-09-06 19:31:06 +03:00
John Preston
ac8f924909 Show tdesktop cloud themes in a box. 2019-09-06 19:31:06 +03:00
John Preston
95afcbb485 Format a valid theme file name. 2019-09-06 19:31:06 +03:00
John Preston
229bc56cc8 Upload saved theme to the cloud. 2019-09-06 19:31:06 +03:00
John Preston
4b045a602c Add a box for new theme creating. 2019-09-06 19:31:06 +03:00
John Preston
1e3b72ab74 Ignore background when checking which theme is used. 2019-09-06 19:31:06 +03:00
John Preston
bc63d9fe53 Fix check display in background box. 2019-09-06 19:31:06 +03:00
John Preston
d7cb8b7065 Version 1.8.4: Fix crash in local messages. 2019-09-06 16:41:43 +03:00
John Preston
30f4d870c5 Version 1.8.4: Fix crash on failed message delete. 2019-09-06 14:46:09 +03:00
John Preston
ad515c6f4a Version 1.8.4.
- Bug fixes and other minor improvements.
2019-09-06 14:39:04 +03:00
John Preston
056949416d Apply some rlottie fixes. 2019-09-06 14:37:41 +03:00
John Preston
ab6d9ff73c Fix sending first message in chat. 2019-09-06 14:14:04 +03:00
John Preston
8b766dda8e Fix crash in scheduled message in admin log.
Fixes #6495.
2019-09-06 12:20:59 +03:00
John Preston
ee0f66d746 Fix crash in history clear while sending messages.
Don't remove messages that are currently being sent from locals.
2019-09-06 10:56:01 +03:00
John Preston
7893ad0558 Mark all types of local history items. 2019-09-06 10:53:44 +03:00
John Preston
b0c5a75fb9 Version 1.8.3.
- Right click the 'Send' button and select 'Schedule Message'
to automatically send something at a specified time.
- Schedule reminders for yourself in the 'Saved Messages' chat.
- Get a notification when any of your scheduled messages are sent.
- Customize your app's appearance by choosing accent colors
for the 'Day', 'Night' and 'Tinted' themes.
- Choose who can find you on Telegram
when they add your number to their phone contacts.
- Send a single 😁, 😧, 😡, :poo:, 😢 or
😮 to check out what's new in the animated emoji department.
2019-09-05 21:49:20 +03:00
John Preston
1c313da888 Add dummy handler for addtheme links. 2019-09-05 21:49:20 +03:00
John Preston
ee210ea701 Update API scheme. 2019-09-05 20:42:45 +03:00
John Preston
e0c0d79be9 Fix build for GCC. 2019-09-02 15:22:01 +03:00
John Preston
cb3bad31fa Put 'Classic' theme first. 2019-09-02 14:27:22 +03:00
John Preston
917696be36 Closed alpha version 1.8.2.3. 2019-09-02 13:43:37 +03:00
John Preston
253816641c Submit by keyboard in scheduled section. 2019-09-02 13:39:43 +03:00
John Preston
ca2692473d Fix inactive window notifications clearing. 2019-09-02 13:39:43 +03:00
John Preston
8000dfac01 Fix crash on admin log exit by Escape. 2019-09-02 13:39:43 +03:00
John Preston
85cca51154 Make accent color radiobutton animated. 2019-09-02 13:39:43 +03:00
John Preston
87ea49e094 Allow schedule messages while in slowmode counter. 2019-09-02 13:39:43 +03:00
John Preston
66bf48e21e Remove 'Send without sound' in Saved messages. 2019-08-31 14:43:19 +03:00
John Preston
451056d2ab Track reminder unread status without cheating. 2019-08-31 14:32:15 +03:00
John Preston
791ae64a90 Fix crash in local messages tracking. 2019-08-31 14:25:24 +03:00
John Preston
3b4563772e Disable edit self restrictions in UI. 2019-08-31 14:25:02 +03:00
John Preston
16b786186b Fix schedule time selection. 2019-08-31 14:21:52 +03:00
John Preston
7be1c4ca2f Fix crash in right click on CalendarBox.
Any attempt to destroy a widget on right click will crash,
because Qt anyway sends QContextMenuEvent to the same widget.

Fixes #6464.
2019-08-31 14:15:30 +03:00
John Preston
17fba16c23 Fix crash on quit without initial passcode unlock. 2019-08-30 23:30:12 +03:00
John Preston
5fc4dcd172 Closed alpha version 1.8.2.2. 2019-08-30 18:45:07 +03:00
John Preston
b27a2cd34a Use edit_hide flag to hide 'edited' badge. 2019-08-30 18:00:32 +03:00
John Preston
569340c7d3 Move transfer ownership button. 2019-08-30 17:06:37 +03:00
John Preston
3715fa4b1e Fix scheduled notifications on inbox read. 2019-08-30 17:06:21 +03:00
John Preston
d95e54cb1a Check if it is possible to 'Send now.' 2019-08-30 16:17:46 +03:00
John Preston
470b67f557 Refresh file reference from scheduled messages. 2019-08-30 15:42:01 +03:00
John Preston
c46bcef9ff Add 'Send now' confirmation to langpack. 2019-08-30 15:24:42 +03:00
John Preston
c31cda0587 Use better accent color suggestions. 2019-08-30 13:32:15 +03:00
John Preston
5758f756c9 Fix draft clearing on message send.
Regression was introduced in caef7dde24.
2019-08-30 13:31:45 +03:00
John Preston
f199205592 Limit scheduled requests for one per minute. 2019-08-29 20:16:37 +03:00
John Preston
2b656f7745 Closed alpha version 1.8.2.1. 2019-08-29 16:16:22 +03:00
23rd
7be286751b Fixed text width in toast widget.
- Fixed #6381.
2019-08-29 16:16:22 +03:00
23rd
04617e4a12 Fixed display of tooltip for date of stickers.
- Fixed #6426.
 - Regression was introduced in b814c6307a.
2019-08-29 16:16:22 +03:00
John Preston
405ccb8580 Add editing of AddedByPhone privacy. 2019-08-29 11:44:03 +03:00
John Preston
131ef4f15a Fix palette generation on macOS. 2019-08-29 10:01:28 +03:00
John Preston
07f45b7eab Improve published scheduled notifications. 2019-08-29 10:01:28 +03:00
John Preston
87addd41b1 Add new phrases for reminders. 2019-08-29 10:01:28 +03:00
John Preston
0a4f91a53d Notify about published scheduled messages. 2019-08-29 10:01:28 +03:00
John Preston
3b76a908a4 Try to fix a crash in QNetworkReplyHttpImpl. 2019-08-29 10:01:28 +03:00
John Preston
9e3bc966c8 Fix crash in window destruction. 2019-08-29 10:01:28 +03:00
John Preston
149c69809d Apply peer restrictions. 2019-08-29 10:01:28 +03:00
John Preston
97a239a8b4 Show full emoji in fields in all scales. 2019-08-29 10:01:28 +03:00
John Preston
bd7cee2252 Improve accent color choose design. 2019-08-29 10:01:28 +03:00
John Preston
66d0d6e8fe Use HSV color space for colorizing. 2019-08-29 10:01:28 +03:00
John Preston
117d6192fa Ensure contrast in colorized themes. 2019-08-29 10:01:28 +03:00
John Preston
763bdf8798 Apply lightness limits in accent colors. 2019-08-29 10:01:28 +03:00
John Preston
56a82600f8 Add HSL color picker box for theming. 2019-08-29 10:01:28 +03:00
John Preston
a3e993253c Keep colorized theme in editor. 2019-08-29 10:01:28 +03:00
John Preston
04d5158ae3 Remove unused LeftOutlineButton type. 2019-08-29 10:01:28 +03:00
John Preston
38e4daacd4 Use HSL color space for accent colors. 2019-08-29 10:01:28 +03:00
John Preston
44d156760e Fix build in Xcode. 2019-08-27 19:10:37 +03:00
John Preston
d66541989e Improve first socket message. 2019-08-27 19:10:37 +03:00
John Preston
56c4d164f3 Fix crash in group creation. 2019-08-27 19:10:37 +03:00
John Preston
e2c1c4c8de Fix jump to first chat with archive. 2019-08-27 19:10:37 +03:00
John Preston
a465117689 Allow choosing accent colors from palette. 2019-08-27 19:10:37 +03:00
John Preston
c2117e7722 Save embedded themes accent colors. 2019-08-27 19:10:37 +03:00
John Preston
7de28fc4bd Apply saturation and value in colorizer. 2019-08-27 19:10:37 +03:00
John Preston
529ef64257 Sort colors by hue distance. 2019-08-27 19:10:37 +03:00
John Preston
9cb5423d40 Allow changing accent color in default themes. 2019-08-27 19:10:37 +03:00
John Preston
dd136350fb Fix save color in theme editor. 2019-08-27 19:10:37 +03:00
John Preston
ef7087348a Allow to schedule created polls. 2019-08-27 19:10:37 +03:00
John Preston
8eac2dcb78 Correctly show scheduled polls. 2019-08-27 19:10:37 +03:00
John Preston
f690f93f32 Allow schedule of files, stickers, GIFs. 2019-08-27 19:10:37 +03:00
John Preston
77ebdd3576 Send from scheduled messages section. 2019-08-27 19:10:37 +03:00
John Preston
3e895d0e85 Make tabbed selector working in scheduled section. 2019-08-27 19:10:37 +03:00
John Preston
385a7eb00d Start scheduled compose controls. 2019-08-27 19:10:37 +03:00
John Preston
1c9775baf9 Improve scheduled messages icon design. 2019-08-27 19:10:37 +03:00
John Preston
fb96d2eef8 Improve schedule box design. 2019-08-27 19:10:37 +03:00
John Preston
debeb61540 Start schedule message box. 2019-08-27 19:10:37 +03:00
John Preston
03cdddfe18 Allow sending scheduled messages. 2019-08-27 19:10:37 +03:00
John Preston
caef7dde24 Bundle silent and scheduled to Api::SendOptions. 2019-08-27 19:10:37 +03:00
John Preston
0b08810d5a Update hash counting for scheduled messages. 2019-08-27 19:10:37 +03:00
John Preston
694f771131 Allow to send scheduled messages instantly. 2019-08-27 19:10:37 +03:00
John Preston
956bb876f6 Sort scheduled messages on an update. 2019-08-27 19:10:37 +03:00
John Preston
99037d3d46 Improve scheduled messages top bar. 2019-08-27 19:10:37 +03:00
John Preston
ea0a616453 Allow deleting scheduled messages. 2019-08-27 19:10:37 +03:00
John Preston
815a18be94 Add initial scheduled list implementation. 2019-08-27 19:10:37 +03:00
John Preston
3814b0833d Keep track of scheduled messages. 2019-08-27 19:10:37 +03:00
John Preston
549789bfb7 Update API scheme to layer 105. 2019-08-27 19:10:37 +03:00
John Preston
a539fad3e2 Version 1.8.2: Fix passcode unlock. 2019-08-20 16:03:21 +03:00
John Preston
ee96d78656 Version 1.8.2: Fix build for Qt 5.3.2. 2019-08-20 14:29:21 +03:00
John Preston
288c1130b9 Version 1.8.2: Fix build. 2019-08-20 14:28:40 +03:00
John Preston
d1083a1fb4 Version 1.8.2.
- Bug fixes and other minor improvements.
2019-08-20 12:49:51 +03:00
John Preston
e1fe373504 Fix localtime-related slowmode errors. 2019-08-20 12:42:37 +03:00
23rd
1a06714f3a Added ability to apply formatting from Mac menu. 2019-08-20 12:02:37 +03:00
John Preston
7316d24ca4 Quick fix for 'Cant forward here' error. 2019-08-19 15:26:12 +03:00
John Preston
b814c6307a Check that sticker drag point is inside. 2019-08-19 15:26:12 +03:00
23rd
06fbb2edc4 Added permanent date display for sticker when fast action is enabled. 2019-08-19 15:26:12 +03:00
23rd
0ee47bb10f Fixed fast action button and date position for stickers. 2019-08-19 15:26:12 +03:00
23rd
9f228d8146 Fixed fast share button in messages with big emoji and reply. 2019-08-19 15:26:12 +03:00
23rd
de270d5283 Fixed right action click handler on stickers without stickerpack. 2019-08-19 15:26:12 +03:00
John Preston
3f041545bf Fix crash in local passcode reset. 2019-08-19 15:26:12 +03:00
John Preston
1139a59818 Fix crash in editing message to empty. 2019-08-19 15:26:12 +03:00
John Preston
1e64ba8f29 Fix app config refresh timeout. 2019-08-19 15:26:12 +03:00
John Preston
65342559c7 Use specific tag for libxkbcommon in docs. 2019-08-19 15:23:37 +03:00
John Preston
e150db1d0b Use specific tag for libkxbcommon in snap build. 2019-08-19 13:34:24 +03:00
John Preston
4548b14b45 Fix libvdpau repository link in snap build. 2019-08-19 13:15:32 +03:00
John Preston
dac1128dc9 Version 1.8.1.
- Bug fixes and other minor improvements.
2019-08-09 20:36:21 +01:00
John Preston
c3944d95b4 Fix local caching.
Regression was introduced in 9cf4cf6dca.

Fixes #6377.
2019-08-09 20:33:05 +01:00
John Preston
02b65a42f7 Move message client flags to a separate field. 2019-08-09 20:19:23 +01:00
John Preston
4869ce2247 Version 1.8.
- Right click the Send button to send any message
without sound - in case the recipient is sleeping.
- Enable Slow Mode in Group Permissions to control
how frequently members can post.
- Set custom titles for group admins - like 'Founder',
'CFO' or 'Spam Fighter'.
- Toggle looped playback for animated stickers in Chat Settings.
- Send a single ❤️, :like:, 😒, 😳 or :party:
to add a mighty animated emoji to the chat.
2019-08-09 11:51:36 +01:00
John Preston
e40267f45b Add :party: emoji replacement. 2019-08-09 11:51:36 +01:00
John Preston
e9ab8df737 Use QLocale::uiLanguages for system language. 2019-08-09 11:51:36 +01:00
Vitaly Lipatov
9276101809 Get language name and country name from QLocale (Linux) 2019-08-09 11:51:36 +01:00
John Zimmermann
0c3773486e linux/specific_linux.h: remove unnecessary include of execinfo 2019-08-09 11:51:35 +01:00
Konstantin Popov
b831766375 Make .desktop file search respect TDESKTOP_LAUNCHER_FILENAME 2019-08-09 11:51:35 +01:00
Nicholas Guriev
325989ed47 Fix small typo 2019-08-09 11:51:35 +01:00
John Preston
63203ecc00 Fix int32 overflow in local storage stats. 2019-08-09 11:51:35 +01:00
John Preston
93793d8bdd Remove thumbnail for colored animated emoji. 2019-08-09 11:51:35 +01:00
John Preston
6710372d27 Fix build in Xcode. 2019-08-09 11:51:35 +01:00
John Preston
a8c94deca8 Retry signing if failed. 2019-08-09 11:51:35 +01:00
John Preston
e97d014a01 Closed alpha version 1.7.15.7. 2019-08-09 11:51:35 +01:00
John Preston
7ffa348e43 Replace 'Telegram Messenger LLP' with 'Telegram FZ-LLC'. 2019-08-09 11:51:35 +01:00
John Preston
b999d87388 Divide scheme.tl to mtproto.tl and api.tl. 2019-08-09 11:51:35 +01:00
John Preston
fb00d523c3 Add theme names to langpack. 2019-08-09 11:51:35 +01:00
John Preston
d7f7a03eb4 Don't refresh large emoji messages when sent. 2019-08-09 11:51:35 +01:00
John Preston
bc83df9d7f Repaint skin-toned animated emoji. 2019-08-09 11:51:33 +01:00
John Preston
61c1c10ed9 Closed alpha version 1.7.15.6. 2019-08-09 11:50:49 +01:00
John Preston
4bad642190 Remove some more Auth() calls. 2019-08-09 11:50:49 +01:00
John Preston
f48732f813 Extract username from t.me/username searches. 2019-08-09 11:50:49 +01:00
John Preston
10e28913ca Search single messages by message link. 2019-08-09 11:50:49 +01:00
John Preston
230dd29af5 More large emoji layout improvements. 2019-08-09 11:50:49 +01:00
John Preston
169db40e9f Closed alpha version 1.7.15.5. 2019-08-09 11:50:49 +01:00
John Preston
116b483a88 Improve layout of large emoji. 2019-08-09 11:50:49 +01:00
John Preston
57cdef4e6b Improve large emoji outline. 2019-08-09 11:50:49 +01:00
John Preston
1b1b1780db Reuse global emoji large images. 2019-08-09 11:50:49 +01:00
John Preston
e479daca03 Use outlined large emoji. 2019-08-09 11:50:49 +01:00
John Preston
51d350c356 Fix stickers and emoji render. 2019-08-09 11:50:49 +01:00
John Preston
9da4bd671e Closed alpha version 1.7.15.4. 2019-08-09 11:50:49 +01:00
John Preston
d298953653 Add large emoji implementation. 2019-08-09 11:50:49 +01:00
John Preston
1d52ba7a42 Extract sticker-specific HistoryView code. 2019-08-09 11:50:49 +01:00
John Preston
850940116d Move HistoryMedia to HistoryView namespace. 2019-08-09 11:50:49 +01:00
John Preston
fd59147b8a Allow disabling animated emoji. 2019-08-09 11:50:49 +01:00
John Preston
93a52bb66e Move some settings from global to Session. 2019-08-09 11:50:49 +01:00
John Preston
7e4c9f98a6 Track all single-emoji messages. 2019-08-09 11:50:49 +01:00
John Preston
7d2896dd42 Scale animated emoji by server config. 2019-08-09 11:50:49 +01:00
John Preston
f7f797dd78 Initial animated emoji implementation. 2019-08-09 11:50:49 +01:00
John Preston
4b7b1c35e1 Improve storing of played animated stickers. 2019-08-09 11:50:49 +01:00
John Preston
708b1d7ad4 Add 'Loop animated stickers' setting. 2019-08-09 11:50:49 +01:00
John Preston
abf49e1672 Update API scheme. 2019-08-09 11:50:49 +01:00
John Preston
052e4bc508 Fix complex box closing.
~BoxContent should be called when _layers is already in valid state.
2019-08-09 11:50:49 +01:00
John Preston
80fedcbbae Improve slowmode error phrases. 2019-08-09 11:50:49 +01:00
John Preston
787b5f549a Update slowmode intervals. 2019-08-09 11:50:49 +01:00
John Preston
e8a28a57df Fix adding contacts.
Regression was introduced in 06982fdf04.
2019-08-09 11:50:49 +01:00
John Preston
b05ea9fc25 Fix some problems in working with rlottie. 2019-08-09 11:50:49 +01:00
John Preston
8d94cfb61b Fix support mode sending. 2019-08-09 11:50:49 +01:00
John Preston
d8a58991c4 Closed alpha version 1.7.15.3. 2019-07-28 18:01:13 +02:00
John Preston
03cf8b6ac2 Improve transport nonce generation. 2019-07-28 18:01:13 +02:00
John Preston
32e8ae2b9e Fix sticker suggestions by emoji.
Regression was introduced in 27f248645c.
2019-07-28 15:45:46 +02:00
John Preston
27d84befa8 Remove emoji from custom admin ranks. 2019-07-28 15:39:06 +02:00
John Preston
3bf709d459 Add Ui::Text::Italic modifier. 2019-07-27 23:09:15 +02:00
John Preston
2a8b6f05c8 Fix build for GCC. 2019-07-27 17:19:04 +02:00
John Preston
f29b331470 Fix build for Xcode. 2019-07-27 17:19:04 +02:00
John Preston
a8b74d4b6b Closed alpha version 1.7.15.2. 2019-07-27 17:19:04 +02:00
John Preston
415d817034 Show notification without sound for silent message. 2019-07-27 17:19:04 +02:00
John Preston
3f2cc01f48 Allow sending silent messages. 2019-07-27 17:19:04 +02:00
John Preston
f1cd70d8a8 Fix some instructions and build process. 2019-07-27 17:19:04 +02:00
John Preston
bacaf805b5 Pass SessionNavigation to some boxes. 2019-07-25 20:55:11 +02:00
John Preston
137fa0378c Remove some more Auth() calls. 2019-07-24 16:00:30 +02:00
John Preston
ff44094ded Rename AuthSession to Main::Session. 2019-07-24 13:45:24 +02:00
John Preston
06982fdf04 Remove some calls to Auth(). 2019-07-24 13:13:51 +02:00
John Preston
9cf4cf6dca Move MTP::Instance to Main::Account. 2019-07-24 10:46:23 +02:00
John Preston
db2018c765 Fix owner badges in groups. 2019-07-24 08:37:10 +02:00
John Preston
020e62fb7a Closed alpha version 1.7.15.1. 2019-07-24 08:02:58 +02:00
John Preston
2ed5552279 Improve custom badge input phrases. 2019-07-24 08:02:20 +02:00
John Preston
4d92d74de0 Add python extensions to the list of executables. 2019-07-24 08:02:20 +02:00
John Preston
4fd50cfb70 Fix build in Xcode. 2019-07-24 08:02:20 +02:00
John Preston
27f248645c Use correct animated sticker thumbnails size. 2019-07-24 08:02:20 +02:00
John Preston
3f1a2d0b58 Support emoji in custom admin badges. 2019-07-24 08:02:20 +02:00
John Preston
6fe36e6534 Improve custom rank input UI. 2019-07-24 08:02:20 +02:00
John Preston
f36e2981ca Display custom admin ranks in messages. 2019-07-24 08:02:20 +02:00
John Preston
22f210ea8e Support sending albums to slowmode groups. 2019-07-24 08:02:20 +02:00
John Preston
b23bfe8b02 crl: std::terminate instead of exceptions. 2019-07-24 08:02:20 +02:00
John Preston
6aa930d510 Remove exceptions in TL parsing. 2019-07-24 08:02:20 +02:00
John Preston
4a10a88ecf Show error when forwarding to slowmode group. 2019-07-24 08:02:20 +02:00
John Preston
f4754f210c Update full channel on updateChannel. 2019-07-24 08:02:20 +02:00
John Preston
873b77cf40 Use UserData::isBot where applicable. 2019-07-24 08:02:20 +02:00
John Preston
a7d9aa947b Don't allow in-notification reply with slowmode. 2019-07-24 08:02:20 +02:00
John Preston
234b0ffcf0 Disallow accidental failing forwarding. 2019-07-24 08:02:20 +02:00
John Preston
c50ade565a Track sending and failed messages. 2019-07-24 08:02:20 +02:00
John Preston
0005e0a3ce Track local messages, restore on history jump. 2019-07-24 08:02:20 +02:00
John Preston
04bf24288a Show slowmode error messages. 2019-07-24 08:02:20 +02:00
John Preston
01d0479335 Show slowmode button in chat. 2019-07-24 08:02:20 +02:00
John Preston
055c145af5 Fix manage group box after migration. 2019-07-24 08:02:20 +02:00
John Preston
328b090877 Save slowmode settings in groups. 2019-07-24 08:02:20 +02:00
John Preston
1d2c86839b Add slowmode slider to EditPeerPermissionsBox. 2019-07-24 08:02:20 +02:00
John Preston
59574532c6 Add slowmode send message button state. 2019-07-24 08:02:20 +02:00
John Preston
4544a2e331 Update API scheme to layer 104. 2019-07-24 08:02:20 +02:00
John Preston
c0f8ab8da0 Fix build for old Qt version. 2019-07-18 21:52:13 +02:00
John Preston
d02617867c Beta version 1.7.15.
- Bug fixes and other minor improvements.
2019-07-18 18:18:05 +02:00
John Preston
78c99a1583 Revert "Change macOS sign certificate name."
This reverts commit 4757ad6c97.
2019-07-18 18:18:05 +02:00
John Preston
9ec797857d rlottie: Return thread support. 2019-07-18 18:18:05 +02:00
John Preston
b310011dee rlottie: Disable image loader code. 2019-07-18 12:12:02 +02:00
23rd
633084ed9c Fixed position of already shown tabbed panel.
- Fixed #6301.
2019-07-18 12:09:53 +02:00
23rd
ab8889b2fa Fixed position of emoji panel in SendFilesBox when new file is added. 2019-07-18 12:09:53 +02:00
23rd
d563e746ab Added ability to go to bot from "via @bot" header with Ctrl.
- Fixed #2074.
2019-07-18 12:09:53 +02:00
John Preston
7c6ede0908 Save domain in different localstorage key. 2019-07-15 16:00:30 +02:00
John Preston
c22aeb8b40 Fix crash in proxy list. 2019-07-15 16:00:30 +02:00
John Preston
cabe06256b Validate dcOption secrets. 2019-07-15 16:00:30 +02:00
John Preston
2fad4e9956 Closed alpha version 1.7.14.2. 2019-07-15 16:00:30 +02:00
John Preston
c5df4db621 Fix possible race conditions in msgid(). 2019-07-15 16:00:30 +02:00
John Preston
68b1024dd4 Sync local time with HTTP 'Date' header value. 2019-07-15 16:00:29 +02:00
John Preston
c894ce30c4 Fix socket packet reading. 2019-07-15 15:59:20 +02:00
John Preston
33fce38f90 Fix build in Xcode and GCC. 2019-07-15 15:59:20 +02:00
John Preston
e123399f7c Closed alpha version 1.7.14.1. 2019-07-15 15:59:20 +02:00
John Preston
0805c09446 Allow one or two '=' at the end of base64. 2019-07-15 15:59:20 +02:00
John Preston
8135f4b427 Support base64 encoding of the secret. 2019-07-15 15:59:20 +02:00
John Preston
2f0331b2e0 Implement send/receive for the new type. 2019-07-15 15:59:20 +02:00
John Preston
69b6b48738 Add new socket type. 2019-07-15 15:59:20 +02:00
John Preston
3cda267787 Abstract out tcp socket from tcp connection. 2019-07-15 15:59:20 +02:00
John Preston
ffba901620 Add a confirmation when blocking a user. 2019-07-15 15:47:40 +02:00
John Preston
2351865961 Update libtgvoip submodule. 2019-07-15 15:00:15 +02:00
John Preston
7a11d1e31f Fix stickers on Linux 32 bit. 2019-07-15 14:17:22 +02:00
John Preston
f2b3d9714f Fix sticker sending from clipboard. 2019-07-15 14:12:28 +02:00
John Preston
8477956117 Fix emoji button.
Fixes #6264.
2019-07-15 14:12:28 +02:00
John Preston
77b8d56c03 Show 'None' if no users are blocked. 2019-07-15 14:12:27 +02:00
John Preston
90fb9eccd4 Optimize InvokeQueued(). 2019-07-10 19:37:00 +02:00
John Preston
c3c6571835 Add checks for incorrect sticker cache bytes. 2019-07-10 19:36:27 +02:00
John Preston
b9d3ba621e Change some private header includes. 2019-07-10 19:36:27 +02:00
John Preston
4757ad6c97 Change macOS sign certificate name. 2019-07-10 19:36:26 +02:00
John Preston
9c909c8992 Lower the animated sticker requirements.
Fixes #6237.
2019-07-09 14:53:23 +02:00
John Preston
0710dde4d5 Use private Qt color API only in official build.
Fixes #6219.
2019-07-09 13:43:57 +02:00
John Preston
8008d8a3d4 Fix build for Xcode. 2019-07-07 17:11:45 +02:00
John Preston
5c5eead0f5 Version 1.7.14.
- Bug fixes and other minor improvements.
2019-07-07 15:34:35 +02:00
John Preston
696c70e34a Update rlottie, remove asserts in debug build. 2019-07-07 13:14:19 +02:00
John Preston
75fd2d0257 Version 1.7.13.
- Send ultra-lightweight high-quality animated stickers
to express emotion with motion.
- Receive animated stickers instantly on any connection
at just 20-30 KB per sticker.
- Enjoy smooth animations at 60 frames per second.
- Create new animated sets and upload them to @stickers
for everybody to use.
- Try out these sample stickers: t.me/addstickers/hotcherry
- Use strikethrough and underline formatting.
2019-07-06 15:27:31 +02:00
John Preston
4e595d5cef Fix GIFs preview. 2019-07-06 15:24:23 +02:00
23rd
8486ad368e Fixed restrictions for channels.
- Regression was introduced in 567bf60644.
2019-07-06 10:58:10 +03:00
John Preston
ae075e9b90 Beta version 1.7.12: Fix build for old OS X. 2019-07-05 23:13:31 +02:00
John Preston
86d7143d94 Beta version 1.7.12.
- Bug fixes and other minor improvements.
2019-07-05 22:55:09 +02:00
John Preston
4e52da91c7 Fix animation stopping in chat. 2019-07-05 19:47:40 +02:00
John Preston
198de85ce5 Limit to 30 FPS in small stickers. 2019-07-05 19:15:25 +02:00
John Preston
72a9d61b97 Fix glitches on macOS stickers. 2019-07-05 18:13:27 +02:00
John Preston
96a26b44a9 Fix build for Xcode. 2019-07-05 17:08:33 +02:00
John Preston
f19ff1f9b2 Correctly start lottie animations. 2019-07-05 16:43:21 +02:00
John Preston
4bd0683e91 Guard UpdateRequest handling. 2019-07-05 16:29:02 +02:00
John Preston
567bf60644 Use getters in MTP classes. 2019-07-05 16:23:07 +02:00
John Preston
3ca28c0cf9 Fix crash in unsupported message with buttons.
Fixes #6212.
2019-07-05 09:42:51 +02:00
John Preston
4a12e9798a Beta version 1.7.11.
- Use strikethrough and underline formatting.
- Bug fixes and other minor improvements.
2019-07-04 17:27:30 +02:00
John Preston
5c6515febb Fix strike-through text font selection. 2019-07-04 17:27:18 +02:00
23rd
ca5fee6db9 Added issue templates for feature requests and questions. 2019-07-04 16:41:46 +02:00
23rd
4ac3aef600 Added ability to cancel reply with Ctrl + Arrow Down.
- Fixed #4636.
2019-07-04 16:41:46 +02:00
23rd
1963fca7d3 Fixed media overlay closing with Back mouse button.
- Fixed #2998.
2019-07-04 16:41:46 +02:00
23rd
5e233dab47 Fixed height of thumb in EditCaptionBox when media changes to photo. 2019-07-04 16:41:46 +02:00
23rd
cf8a06302f Fixed position of unread mentions button when field changes height. 2019-07-04 16:41:46 +02:00
23rd
9c9ea8c2c0 Added ability to change order of pinned dialogs from touchbar. 2019-07-04 16:41:03 +02:00
23rd
bb9e6e7b5f Added ability to display media preview from touchbar. 2019-07-04 16:28:58 +02:00
23rd
7c98f64cdb Slightly refactored display of media preview.
- Removed showMediaPreview from facades.
2019-07-04 16:28:58 +02:00
23rd
da6baeb1a7 Added notifier of archiving pinned dialog to update touchbar. 2019-07-04 16:27:33 +02:00
23rd
26569683ca Refactored pinned buttons in touchbar. 2019-07-04 16:27:33 +02:00
23rd
821bd3c65b Added buttons for Underline and Strike-through text to touchbar. 2019-07-04 16:27:33 +02:00
John Preston
2d62c9b083 Prefer animated stickers in suggestion by emoji. 2019-07-04 16:26:53 +02:00
John Preston
9d09cee1cc Unblock bots without restarting from Settings. 2019-07-04 16:26:53 +02:00
John Preston
0e964b06dc Hook main queue processing to update requests. 2019-07-04 16:26:13 +02:00
John Preston
b1807938ad Remove legacy langpacks. 2019-07-04 14:25:16 +02:00
John Preston
b96b801b22 Disable ownership transfer to myself. 2019-07-04 14:02:25 +02:00
John Preston
58d4b763b6 Allow 6-digit support phone numbers. 2019-07-04 14:00:40 +02:00
John Preston
f1518af8b3 Mark mentions as read on reply-from-notification. 2019-07-04 13:56:28 +02:00
John Preston
d228495550 Allow replacing emoji by Tab in support mode. 2019-07-04 13:26:39 +02:00
John Preston
226ca6d117 Clear 'Cancelled' flag on download start.
Fixes #6123.
2019-07-04 13:21:43 +02:00
John Preston
556f36ba7e Fix transparent animated GIFs. 2019-07-04 13:12:58 +02:00
John Preston
c8b61366d3 Fix blurred document thumbnails. 2019-07-04 12:22:07 +02:00
John Preston
729da4a6b4 Move 'Add to contacts' button up in Info. 2019-07-04 12:21:52 +02:00
John Preston
dd38da7737 Allow markdown to intersect with previewed links. 2019-07-04 11:51:41 +02:00
John Preston
306b87dd39 Disable double click reply in a created group. 2019-07-04 11:37:05 +02:00
John Preston
826d229c1a Clear 'Find in Files' search by lang key results. 2019-07-04 11:36:27 +02:00
John Preston
89fb121caf Show URL tooltip in inline bot results. 2019-07-04 11:23:39 +02:00
John Preston
d479442a63 Fix local thumbnail saving for stickers. 2019-07-04 11:04:12 +02:00
John Preston
10ee81f466 Copy shared contact number from the context menu.
Fixes #6147.
2019-07-04 10:36:48 +02:00
John Preston
0a63eac4f6 Generate good thumbnail for animated stickers. 2019-07-04 10:20:36 +02:00
John Preston
7034df49e9 Fix sending of .tgs stickers. 2019-07-03 13:03:01 +02:00
John Preston
da48a78f7c Revert "Hide new formatting for now."
This reverts commit 99aa1fc556.
2019-07-03 12:08:28 +02:00
John Preston
0109ee2758 Fix build for Linux. 2019-07-03 00:20:59 +02:00
John Preston
ae152d28be Closed alpha version 1.7.10.1. 2019-07-02 22:42:00 +02:00
John Preston
dd1bca1769 Remove profiling logs. 2019-07-02 22:40:10 +02:00
John Preston
a4fbbc06d1 Use Lottie::MultiPlayer in StickerSetBox. 2019-07-02 22:38:23 +02:00
John Preston
0dd1b4eae6 Support animated stickers in suggestions. 2019-07-02 17:21:52 +02:00
John Preston
848ea16eef Support animated stickers in inline results. 2019-07-02 15:46:26 +02:00
John Preston
76630528f7 Show animated thumbnails in sets box. 2019-07-02 15:20:04 +02:00
John Preston
3b645422ff Implement animated stickerset thumbnails. 2019-07-02 14:43:17 +02:00
John Preston
db2d24ff32 Clear lottie on panel hide. 2019-07-01 17:57:40 +02:00
John Preston
a10b91fe1a Don't load bad image infinitely. 2019-07-01 17:57:40 +02:00
John Preston
ead212f31b Fix lottie caching. 2019-07-01 17:57:40 +02:00
John Preston
37689affc5 Clear far enough animated sticker sets. 2019-07-01 17:57:39 +02:00
John Preston
5375e7958c Implement pause/unpause for Lottie::MultiPlayer. 2019-07-01 17:57:39 +02:00
John Preston
1da5d1c64f Fix multi player with same frame rates. 2019-07-01 17:57:39 +02:00
John Preston
f6bfbbb805 Add some profiling logs to lottie player. 2019-07-01 17:57:39 +02:00
John Preston
2c461b9df3 Remove profiling logs. 2019-07-01 17:57:39 +02:00
John Preston
53a3d0038c Fix build for Xcode. 2019-07-01 17:57:38 +02:00
John Preston
ad1816cb7c Use Lottie::MultiPlayer in StickersListWidget. 2019-07-01 17:57:38 +02:00
John Preston
09c9f4ef9a Implement Lottie::MultiPlayer. 2019-07-01 17:57:38 +02:00
John Preston
cbffeca8d5 Extract some Lottie::Animation code to Lottie::Player. 2019-07-01 17:57:37 +02:00
John Preston
4a7b5a8e01 Fix caching for large sticker area. 2019-07-01 17:57:37 +02:00
John Preston
808583c5ae Store cached frames in media local cache. 2019-07-01 17:57:37 +02:00
John Preston
5628c1eee6 Encode cached frames to YUV420P. 2019-07-01 17:57:36 +02:00
John Preston
0b8aa880e5 Decide if we XOR frames for each frame. 2019-07-01 17:57:36 +02:00
John Preston
059a24bcdf Use lz4 compression for cached frames. 2019-07-01 17:57:36 +02:00
John Preston
df8625345b Add lz4 as a submodule. 2019-07-01 17:57:35 +02:00
John Preston
a026aec786 Trivial in-memory frame caching. 2019-07-01 17:57:35 +02:00
John Preston
56e137b20f Move some common code to lib_ffmpeg. 2019-07-01 17:57:35 +02:00
John Preston
10772f4ac5 Started Lottie::CacheState class. 2019-07-01 17:57:34 +02:00
John Preston
35bc2cc2a5 Prepare lottie animations caching. 2019-07-01 17:57:34 +02:00
John Preston
f20d9395d1 Unpack lottie gzip to std::string for rlottie. 2019-07-01 17:57:34 +02:00
John Preston
aa3a079853 Remove QtLottie and rapidjson. 2019-07-01 17:57:34 +02:00
John Preston
e43fcc0e5f rlottie: Fix build for macOS with static Qt. 2019-07-01 17:57:33 +02:00
John Preston
b10e6b3508 Render animated stickers using rlottie. 2019-07-01 17:57:33 +02:00
John Preston
b36f7dfdb1 Build rlottie as a dependency. 2019-07-01 17:57:33 +02:00
John Preston
f08d913175 Add rlottie submodule. 2019-07-01 17:57:33 +02:00
John Preston
21dfb310f3 Optimize animated sticker preview. 2019-07-01 17:57:32 +02:00
John Preston
0d6ee3929d Show animated stickers in the panel. 2019-07-01 17:57:32 +02:00
John Preston
040cae6a9a Show animated sticker preview. 2019-07-01 17:57:32 +02:00
John Preston
8f3f898c47 Show animated stickers in StickerSetBox. 2019-07-01 17:57:32 +02:00
John Preston
10910588a0 Update API scheme to layer 103. 2019-07-01 17:57:31 +02:00
John Preston
adf5c8ec71 Version 1.7.10: Fix group location display. 2019-06-24 15:31:23 +02:00
John Preston
f77b11975b Version 1.7.10: Ownership transfer flood errors. 2019-06-24 15:14:32 +02:00
John Preston
84aaec30a1 Version 1.7.10: Ownership transfer in admin log. 2019-06-24 15:08:19 +02:00
John Preston
764490b4a9 Version 1.7.10: Add share phone confirmation. 2019-06-24 14:49:53 +02:00
John Preston
022fb0c81b Version 1.7.10: Fix sticker set title.
Fixes #6169.
2019-06-24 14:32:43 +02:00
John Preston
d5497c3105 Version 1.7.10: Don't load OpenSSL config on Win. 2019-06-24 14:23:08 +02:00
John Preston
09162e6f19 Version 1.7.10.
- Bug fixes and other minor improvements.
2019-06-24 14:16:19 +02:00
John Preston
f46189041c Use non-installed OpenSSL in Windows. 2019-06-24 13:43:42 +02:00
John Preston
7c2f114330 Force OpenSSL not loading local config. 2019-06-24 12:49:37 +02:00
John Preston
a04247a893 Show archive2mainmenu tooltip for 5 seconds. 2019-06-24 11:14:19 +02:00
John Preston
3a8a74f063 QtLottie: Fix easing curve segment selection. 2019-06-24 11:09:00 +02:00
John Preston
9c85d58235 Fix crash in closing export panel. 2019-06-24 10:59:21 +02:00
John Preston
e5cfa3fdc9 Fix adding to contacts + closing box crash.
Regression was introduced in b9d1d8519c.
2019-06-24 10:07:32 +02:00
John Preston
5c49701603 Fix 2SV setup.
Regression was introduced in 0dddb7694f.
2019-06-24 09:55:12 +02:00
John Preston
978a4ac0ad Version 1.7.9.
- You can now add any users to your contacts,
even if their phone numbers are not visible.
- Transfer ownership of group chats and channels
by granting full rights to another admin.
Useful when switching jobs or if you just want to retire as creator.
- Hide archived chats to the main menu.
- See who is online straight from the chat list.
- Use the MacBook Pro TouchBar to apply formatting to selected text,
insert emoji, and send stickers.
2019-06-23 16:49:31 +02:00
John Preston
8a7980ca7b Fix build for old OS X versions. 2019-06-23 16:49:21 +02:00
John Preston
29532f8232 Remove GPL and GitHub from translations. 2019-06-23 16:43:43 +02:00
23rd
ee4501810c Added restriction info of posting stickers to touchbar. 2019-06-23 16:36:22 +02:00
John Preston
99aa1fc556 Hide new formatting for now. 2019-06-23 16:10:53 +02:00
John Preston
8741266819 Add support for Underline and Strike-through text. 2019-06-23 15:40:59 +02:00
John Preston
d864ebd695 Fix private channel phrase in Discuss. 2019-06-23 14:34:48 +02:00
John Preston
352839337d Add SCAM badge for users and channels. 2019-06-23 14:18:33 +02:00
John Preston
88b7387a40 Closed alpha version 1.7.8.1: Fix build for Xcode. 2019-06-22 22:42:30 +02:00
John Preston
d0cf39f8ed Closed alpha version 1.7.8.1. 2019-06-22 22:13:06 +02:00
23rd
d57b8d2ec7 Added preload of stickers in touchbar. 2019-06-22 22:13:06 +02:00
23rd
8de3826c9e Disabled posting stickers with touchbar in groups with restrictions. 2019-06-22 22:13:06 +02:00
23rd
3ea0247a3e Slightly refactored touchbar. 2019-06-22 22:13:06 +02:00
23rd
bebf58ea8d Fixed display of online badge in pinned Saved Messages in touchbar.
- Fixed #6162.
2019-06-22 22:13:06 +02:00
23rd
7489f2297f Fixed title of favorite stickers in touchbar. 2019-06-22 22:13:06 +02:00
23rd
c7526ae1cd Fixed title of recently used emoji in touchbar.
- Added "No found" title if sticker list is empty.
2019-06-22 22:13:06 +02:00
23rd
07a063e19e Refactored formatter buttons in touchbar. 2019-06-22 22:13:06 +02:00
23rd
3727c8c865 Grouped sticker and emoji buttons in touchbar. 2019-06-22 22:13:06 +02:00
23rd
662d0d0764 Added emoji picker to touchbar.
- Added independent size of emoji for touchbar.
 - Added rpl::event_stream for recent emoji updates.
2019-06-22 22:13:06 +02:00
23rd
dcba07b9b7 Added sticker picker to touchbar. 2019-06-22 22:13:06 +02:00
John Preston
a4d83b679a Allow searching USA by 'United States'. 2019-06-22 22:12:47 +02:00
John Preston
dc102bd9e8 Finish working with localstorage before ~AuthSession. 2019-06-22 12:36:35 +02:00
23rd
f877bf7a46 Fixed display of views count. 2019-06-22 11:53:23 +02:00
John Preston
a0171cb144 Fix crash in MainWindow destruction. 2019-06-22 11:52:41 +02:00
John Preston
7d585ab72f Handle located groups as public. 2019-06-21 14:27:46 +02:00
John Preston
6537e524b8 Fix build for GCC. 2019-06-21 11:06:52 +02:00
John Preston
4917ca7b32 Remove all legacy global namespace langs. 2019-06-21 11:06:52 +02:00
John Preston
edcd09c29f Remove LangKey. 2019-06-21 11:06:51 +02:00
John Preston
87fc066e67 Use tr:: instead of lang(). 2019-06-21 11:06:51 +02:00
John Preston
d3ca6b96a1 Use tr:: instead of __generic. 2019-06-21 11:06:50 +02:00
John Preston
52e40cbc6e Improve non-authed language switch. 2019-06-21 11:06:50 +02:00
John Preston
a7c8feaecb Use tr:: instead of langFactory and __rich. 2019-06-21 11:06:50 +02:00
John Preston
d1d98c3bb1 Use tr:: instead of langFactory in box titles. 2019-06-21 11:06:50 +02:00
John Preston
8ed433cc01 Use tr:: instead of langFactory in input fields. 2019-06-21 11:06:49 +02:00
John Preston
7af0dd105e Use tr:: instead of Lang::Viewer. 2019-06-21 11:06:49 +02:00
John Preston
f35085800a Fix build in GCC. 2019-06-21 11:06:49 +02:00
John Preston
366413a0a6 Fix build in Xcode. 2019-06-21 11:06:48 +02:00
John Preston
faa42110ac Remove Info::Profile::ToUpperValue. 2019-06-21 11:06:48 +02:00
John Preston
87cb0ada98 Allow skipping archive results in messages search. 2019-06-21 11:06:48 +02:00
John Preston
6a1abe8767 Add transfer ownership description box. 2019-06-21 11:06:48 +02:00
John Preston
7f96a185cf Add rpl interface for Lang in tr:: namespace. 2019-06-21 11:06:48 +02:00
John Preston
91c57f2035 Support intersecting links with entities. 2019-06-21 11:06:48 +02:00
John Preston
522e66b2db Make Ui::Text::Parser methods non-inclass. 2019-06-21 11:06:48 +02:00
John Preston
2d10e3e432 Show toast notification on ownership transfer. 2019-06-21 11:06:47 +02:00
John Preston
d23fd3559a Refresh participants after transfer. 2019-06-21 11:06:47 +02:00
John Preston
3c11eda611 Allow transfer of legacy groups. 2019-06-21 11:06:47 +02:00
John Preston
b9d1d8519c Use need_contacts_exception flag in add contact. 2019-06-21 11:06:47 +02:00
John Preston
8f3f072b50 Implement channel ownership transfer. 2019-06-21 11:06:47 +02:00
John Preston
a68a53d768 Prepare PasscodeBox for generic 2sv checking. 2019-06-21 11:06:47 +02:00
John Preston
0dddb7694f Show transfer community button, set 2sv password. 2019-06-21 11:06:47 +02:00
John Preston
ca7c50fbcd Remove pseudo-HTML from langpacks and Ui::Text::String. 2019-06-21 11:06:46 +02:00
John Preston
9066acd2dd Use new box for editing contact name. 2019-06-21 11:06:46 +02:00
John Preston
2162aa8df0 Rename Text to Ui::Text::String. 2019-06-21 11:06:46 +02:00
John Preston
e9677779b8 Show phone number only in the chat top bar. 2019-06-21 11:06:46 +02:00
John Preston
aca3ec0ab8 Implement block + clear from ContactStatus bar. 2019-06-21 11:06:46 +02:00
John Preston
3a34b15841 Add 'Share my phone number' click handler. 2019-06-21 11:06:45 +02:00
John Preston
08d4715ad6 Implement a new AddToContactBox. 2019-06-21 11:06:45 +02:00
John Preston
213a8d888a Implement report spam from ContactStatus bar. 2019-06-21 11:06:45 +02:00
John Preston
f49c7ba7ee Allow hiding contact status bar. 2019-06-21 11:06:45 +02:00
John Preston
984f19b1e9 Implement adaptive ContactStatus buttons. 2019-06-21 11:06:45 +02:00
John Preston
5e3734d7bf ReportSpamPanel -> HistoryView::ContactStatus. 2019-06-21 11:06:45 +02:00
John Preston
30dea3a2e7 Use isConstant bool instead of ContactStatus enum. 2019-06-21 11:06:45 +02:00
John Preston
14b82698f8 Update API scheme to layer 102. 2019-06-21 11:06:44 +02:00
John Preston
37df26fc34 QtLottie: Fix easing curve segment selection. 2019-06-19 15:16:59 +02:00
John Preston
42798d466f Fix crash in theme changing. 2019-06-19 15:16:59 +02:00
John Preston
9ca4f0975a Use 'ms' restriction tag for Windows Store build. 2019-06-18 15:45:09 +02:00
John Preston
26da5c5339 Beta version 1.7.8.
- Hide archived chats in the main menu.
- See who is online straight from the chat list.
- Apply formatting to selected text parts
from the MacBook Pro TouchBar.
2019-06-17 18:35:03 +02:00
John Preston
d0b86e1229 Optimize online dots + add animations. 2019-06-17 18:13:05 +02:00
John Preston
61c66994a2 Optimize online dot painting. 2019-06-17 16:33:28 +02:00
John Preston
034bee8fc3 Optimize Folder::paintUserpic. 2019-06-17 15:30:46 +02:00
23rd
734ecc070b Refactored skipping of rows in Dialogs::InnerWidget. 2019-06-17 15:30:46 +02:00
23rd
ece315f3c5 Added ability to move archive in main menu.
- Added Folder::paintUserpic overload for custom color.
 - Reduced size of _cloudButton.
2019-06-17 15:30:46 +02:00
23rd
484ecffb66 Slightly refactored touchbar. 2019-06-17 14:36:25 +02:00
23rd
77a216cbca Added online badges to touchbar. 2019-06-17 14:36:19 +02:00
23rd
d9426413dd Added online badges to chats list. 2019-06-17 14:36:14 +02:00
23rd
859cfe4cbb Added formatting buttons to touchbar. 2019-06-17 14:35:51 +02:00
23rd
d4976dda6c Migrated Appveyor CI build to VS2019. 2019-06-17 14:32:12 +02:00
John Preston
e7c40ff2a8 Return 'View info' to right-click menu. 2019-06-17 14:28:16 +02:00
John Preston
90ecec1d2e Add more assertions in online update. 2019-06-17 14:23:50 +02:00
John Preston
d9e93fb5cc Fix possible crash in auth session destruction. 2019-06-17 14:23:50 +02:00
John Preston
e7bdcc4155 Add more assertions to animations engine. 2019-06-17 14:23:50 +02:00
John Preston
fa3bf11a7f Fix possible crash in corrupt media files. 2019-06-17 14:23:50 +02:00
John Preston
3013301a91 Version 1.7.7.
- Download video files while watching them using streaming.
- Set EOL for Windows XP / Vista and OS X 10.6 to 10.9 at September 1.
2019-06-10 10:21:15 +02:00
John Preston
96acecc35b Remove newline in support mode message edit. 2019-06-08 18:19:20 +03:00
John Preston
f8d900d7fb Fix freezes in support mode message edit. 2019-06-08 18:19:20 +03:00
John Preston
ce760f0534 Comment out App type in SpecialConfigRequest. 2019-06-07 18:43:06 +03:00
John Preston
1225c9194a Fix window title on Windows 7.
Regression was introduced in dd68c7e90.

Fixes #6106.
2019-06-07 14:46:07 +03:00
John Preston
abfe685697 Beta version 1.7.6.
- Bug fixes and other minor improvements.
2019-06-06 16:08:46 +03:00
John Preston
37ff1bde31 QtLottie: Fix spatial property interpolation. 2019-06-06 16:04:10 +03:00
John Preston
b674003868 Fix build for Xcode. 2019-06-06 15:07:34 +03:00
John Preston
0868a9f7b9 Use Controller::account in MainWindow. 2019-06-06 14:59:00 +03:00
John Preston
1e861f79f0 Use range-v3 0.5.0 in instructions.
Fixes #6097.
2019-06-06 14:48:20 +03:00
23rd
ae3fae44b2 Fix build on macOS. 2019-06-06 14:21:31 +03:00
John Preston
dd68c7e90d Use Window::Controller to manage MainWindow. 2019-06-06 14:20:21 +03:00
John Preston
a547f80ae9 Rename Window::Controller to Window::SessionController. 2019-06-06 13:21:40 +03:00
John Preston
263bbf1788 Move _authSession to Main::Account. 2019-06-06 12:37:12 +03:00
John Preston
94c4ea6174 Access _authSession through activeAccount(). 2019-06-05 23:41:51 +03:00
John Preston
bd2e1ceb02 Wrap AuthSession in a new Main::Account object. 2019-06-05 22:47:54 +03:00
John Preston
8c67a4b991 Strip auto-hashtag in support mode message editing. 2019-06-05 21:40:21 +03:00
John Preston
126ffc8769 Show user profile from Removed Users. 2019-06-05 21:30:34 +03:00
John Preston
4379fa2297 Handle PHONE_NUMBER_BANNED in ChangePhoneBox. 2019-06-05 20:43:33 +03:00
John Preston
b9bd937aaa Treat url auth button as an url button. 2019-06-05 20:42:10 +03:00
John Preston
351ba3a912 Allow adding bots as admins when creating a channel. 2019-06-05 20:15:17 +03:00
John Preston
c2b2236e64 Show error-by-privacy in adding user as admin. 2019-06-05 19:47:08 +03:00
John Preston
6f4e31c9c3 Allow resending auth code in case of FLOOD_WAIT error. 2019-06-05 18:50:42 +03:00
John Preston
1290cda830 Fix theme preview layout. 2019-06-05 18:42:46 +03:00
John Preston
a27a80351a Fix clearing history with local messages. 2019-06-05 18:15:49 +03:00
John Preston
e53f4a5450 Close streamed video on Escape. 2019-06-05 17:54:12 +03:00
John Preston
65b949d36b Fix crash in lottie animations. 2019-06-05 17:49:12 +03:00
John Preston
a8d3951116 Beta version 1.7.5.
- Crash fix.
2019-06-05 15:15:50 +03:00
John Preston
f91e11efc9 Fix crash in absent file reading. 2019-06-05 14:27:33 +03:00
23rd
ed7a88ca17 Fixed display of update checking when autoupdate is toggled. 2019-06-05 01:09:31 +03:00
John Preston
dcdaee3db2 Beta version 1.7.4: Fix build for Xcode. 2019-06-04 21:13:47 +03:00
John Preston
c7b1683f6e Beta version 1.7.4: Use loadedInMediaCache for songs. 2019-06-04 18:59:26 +03:00
John Preston
961fd1dbab Beta version 1.7.4.
- Download video files while watching them using streaming.
- Set EOL for Windows XP / Vista and OS X 10.6 to 10.9 at September 1.
2019-06-04 18:59:05 +03:00
John Preston
2f963d7f12 Fix default broadcast notification settings. 2019-06-04 16:40:24 +03:00
John Preston
5be9ce0cf0 Update some icons. 2019-06-04 16:30:39 +03:00
John Preston
04e3b250e7 Keep track of fully cached media files. 2019-06-04 14:30:44 +03:00
John Preston
2255eb2c68 Show loaded till in playback slider. 2019-06-04 14:30:44 +03:00
John Preston
0ce5405eef Show download progress in playback controls. 2019-06-04 14:30:43 +03:00
John Preston
46d8d9f97a Remove CancelledFileLoader hack. 2019-06-04 14:30:43 +03:00
John Preston
274fed3cb0 Move several fields to bit flags in DocumentData. 2019-06-04 14:30:43 +03:00
John Preston
021ada5e9e Hide save button in media viewer when downloading. 2019-06-04 14:30:43 +03:00
John Preston
6f2a04e5ae Add ordering to file location types. 2019-06-04 14:30:43 +03:00
John Preston
eb438e35ee Remove old download priority arguments. 2019-06-04 14:30:43 +03:00
John Preston
b2895a39ed Register streaming loaders in Storage::Downloader. 2019-06-04 14:30:43 +03:00
John Preston
cca906d383 Use ready parts from loader in streaming. 2019-06-04 14:30:43 +03:00
John Preston
8704f6efd0 Use simple loader for non-streamable file types. 2019-06-04 14:30:43 +03:00
John Preston
e1114530ab Working code for streaming downloader. 2019-06-04 14:30:43 +03:00
John Preston
27018d94ee Load file parts even when not streaming. 2019-06-04 14:30:43 +03:00
John Preston
1ee4dac4f3 Parse cache entries async. 2019-06-04 14:30:43 +03:00
John Preston
fe15ee742d Track in Reader if it is used in streaming. 2019-06-04 14:30:43 +03:00
John Preston
ebf2a678b1 Use a special FileLoader for streamed documents. 2019-06-04 14:30:43 +03:00
John Preston
8c0cd9b9e9 Prepare Media::Streaming::Reader to be shared. 2019-06-04 14:30:43 +03:00
John Preston
8e15e71fd5 Set EOL for OS X 10.6-10.9 version at September 1. 2019-06-04 14:29:35 +03:00
John Preston
1fb529803e Add an 'Update your OS' top bar.
Set EOL for Windows XP / Vista version at September 1, 2019.
2019-06-04 14:28:13 +03:00
John Preston
3355e6da0c Use 0.5.0 version of range-v3. 2019-06-04 14:23:14 +03:00
John Preston
1331e7089e Try building snap version with GCC 8. 2019-06-04 14:23:14 +03:00
John Preston
9c613fe2f7 Move system versions to platform/platform_info. 2019-06-04 14:23:14 +03:00
23rd
0467401635 Fixed missing bracket in Qt patch. 2019-06-03 21:01:11 +03:00
John Preston
4fd6a85861 Add app manifest for Windows version. 2019-06-03 16:20:59 +03:00
John Preston
3d38abce97 Differentiate Windows Store and Mac Store. 2019-06-03 13:54:25 +03:00
John Preston
271d929ad6 Use VersionHelper API for Windows version. 2019-06-03 13:48:57 +03:00
paulkim3151
ef364e998f Enable to handle .pptx .xlsx .docx extensions 2019-06-03 13:48:49 +03:00
John Preston
53ba300d7e Version 1.7.3: Fix checkbox in url auth. 2019-06-01 12:44:13 +03:00
John Preston
caf1af8963 Version 1.7.3: Fix possible stack overflow. 2019-06-01 12:30:45 +03:00
John Preston
9fce11b672 Version 1.7.3.
- Bug fixes and other minor improvements.
2019-06-01 11:29:58 +03:00
John Preston
f7cb38c36a Allow admins to see the linked chat. 2019-06-01 11:27:05 +03:00
John Preston
d7ab7aed62 Fix crash in unlinking discussion group. 2019-06-01 11:13:40 +03:00
John Preston
ea61211a61 Version 1.7.2: Mix peer to grouped_id. 2019-06-01 00:51:57 +03:00
John Preston
c560f327cd Version 1.7.2: Update version in code. 2019-05-31 21:17:08 +03:00
John Preston
030b298a7d Version 1.7.2.
- Choose who can see your phone number with granular precision
in Privacy & Security settings.
- Add group chats to "Always/Never Share" exceptions for any privacy
setting. Permissions will update as users leave and join the groups.
- Connect a discussion group to your channel,
subscribers will see a "Discuss" button.
- Integrate bots seamlessly with web services.
For example, see t.me/DiscussThis/1
- Use TouchBar on MacBooks Pro to control music playback
and switch between pinned chats.
2019-05-31 21:15:55 +03:00
23rd
b45705f39d Returned render color theme in main menu when background is filled. 2019-05-31 21:10:53 +03:00
John Preston
9871184953 Fix discussion group unlinking. 2019-05-31 19:47:48 +03:00
John Preston
7f74084237 Update some more phrases. 2019-05-31 19:47:31 +03:00
John Preston
0fc1a40b42 Update phrases. 2019-05-31 16:02:53 +03:00
John Preston
45a6985df5 Force GTK file chooser only in the official builds. 2019-05-31 12:03:10 +03:00
John Preston
619aca04f9 Don't show report spam over the chat history. 2019-05-30 21:53:13 +03:00
John Preston
a968e112e8 Fix crash on invalid lottie file selection. 2019-05-30 18:09:44 +03:00
John Preston
325323e0b3 QtLottie: Fix assertion violation. 2019-05-30 18:05:23 +03:00
John Preston
b012847017 Fix storage location serialization. 2019-05-30 18:05:23 +03:00
John Preston
56d3e69399 Auto-convert legacy groups for discussions. 2019-05-30 18:05:23 +03:00
John Preston
f1c7409980 Enable history visibility when linking chat. 2019-05-30 18:05:23 +03:00
John Preston
33ea5ad297 Allow searching in link group to channel box. 2019-05-30 18:05:23 +03:00
23rd
a5ea13f248 Changed background color of Saved Messages button in main menu. 2019-05-29 20:11:47 +03:00
23rd
8796572704 Renamed touchbar files to mac_touchbar. 2019-05-29 00:15:36 +03:00
John Preston
8829b742fd Beta version 1.7.1.
- Disabled pinned messages notifications in Settings.
2019-05-28 18:45:27 +02:00
John Preston
a2b0631932 Hide linked chat button for now. 2019-05-28 17:47:36 +02:00
John Preston
8b804d1995 Allow sending animated stickers. 2019-05-28 17:45:30 +02:00
John Preston
af85aec33b Allow disabling pinned messages notifications.
Fixes #1864.
2019-05-28 16:59:35 +02:00
John Preston
e0d4884351 Fix possible crash in animations. 2019-05-28 14:46:18 +02:00
John Preston
b3f5973329 Fix possible crash in calendar box. 2019-05-28 14:33:42 +02:00
John Preston
f0ed5640db Fix sending messages with links. 2019-05-28 14:33:35 +02:00
John Preston
39a80e9de7 Fix warning when building for macOS. 2019-05-28 13:40:04 +02:00
John Preston
ff0ff1d99c Fix stickers lagging on macOS. 2019-05-28 13:39:38 +02:00
23rd
ab16c88473 Fixed crash from touchbar after logout. 2019-05-28 01:28:49 +03:00
23rd
26ec440a13 Implemented unread badges in touchbar. 2019-05-28 01:22:58 +03:00
John Preston
fa245099b6 Fix build with GCC 8. 2019-05-27 17:32:06 +02:00
John Preston
ea644a3f81 Fix Release build in Xcode. 2019-05-27 17:32:01 +02:00
John Preston
9b6d41a0aa Closed alpha version 1.7.0.1.
- Discussion groups in channels.
- Animated stickers.
- Touchbar support.
- Chat background in the main menu.
2019-05-27 17:24:40 +02:00
23rd
7798f88c6f Moved vars from interface to implementation in touchbar. 2019-05-27 17:01:47 +02:00
23rd
2c1e3cd094 Added theme change event handler to touchbar. 2019-05-27 17:01:41 +02:00
John Preston
f1e3d2f513 Disable touchbar on macOS < 10.13. 2019-05-27 17:01:29 +02:00
John Preston
0f08342533 Fix QtLottie build for old OS X versions. 2019-05-27 16:54:28 +02:00
John Preston
2a96f358f6 Fix build in Xcode. 2019-05-27 15:56:33 +02:00
23rd
bafa838afc Refactored code in touchbar.
- Refactored variables.
 - Moved TouchBarType to Platform namespace.
2019-05-27 15:35:04 +02:00
23rd
de3cc76468 Fixed position of Saved Messages in touchbar when user unpins it. 2019-05-27 15:35:04 +02:00
23rd
b4df7b4efd Replaced observable updatedNotifier() with rpl. 2019-05-27 15:35:03 +02:00
23rd
26be382b02 Refactored touchbar code.
- Moved item identifiers.
 - Deleted once called methods.
 - Moved commands of buttons to its tag.
 - Moved some methods to namespace.
2019-05-27 15:35:03 +02:00
23rd
7dff10f6fd Refactored code for lifetimes in touchbar. 2019-05-27 15:35:03 +02:00
23rd
71f6dd85c2 Fixed showing empty button in touchbar when archive is not ready. 2019-05-27 15:35:02 +02:00
23rd
abd55679af Added archived button to touchbar. 2019-05-27 15:35:02 +02:00
23rd
c90e803f1b Added handler of logout to touchbar. 2019-05-27 15:35:02 +02:00
23rd
c89a21ef5e Refactored touchbar code. 2019-05-27 15:35:02 +02:00
23rd
04843ebdd8 Fixed duplicate of Saved Messages in touchbar when it is pinned.
- Moved updating of pinned dialogs order from PinnedDialogButton to TouchBar class.
2019-05-27 15:35:01 +02:00
23rd
60cf1b6490 Fixed drawing of self userpic. 2019-05-27 15:35:01 +02:00
23rd
a80f7c53ea Replaced Apple icons for touchbar with custom icons in audio player. 2019-05-27 15:35:01 +02:00
23rd
757e0e6335 Slightly refactored, removed archive button. 2019-05-27 15:35:00 +02:00
23rd
09b5055fac Enabled audio player in touchbar only for songs. 2019-05-27 15:35:00 +02:00
23rd
ba1691bf7e Added custom close icon to touchbar
- Slightly refactored.
2019-05-27 15:35:00 +02:00
23rd
9873e6d75c Fixed seeking of slider from audio player in touchbar. 2019-05-27 15:34:59 +02:00
23rd
62a6812259 Added ability to update pinned dialogs. 2019-05-27 15:34:59 +02:00
23rd
c424607603 Added passcode lock handler for touchbar. 2019-05-27 15:34:58 +02:00
23rd
92ff237c2d Refactored code. 2019-05-27 15:34:58 +02:00
23rd
9059b2e617 Fixes for Audio Player in touchbar.
- Removed unused Platform::SetTouchBar.
 - Added rpl::event_stream in Media Player Instance for handle closing player.
 - Fixed hiding of touchbar when last track is ended.
 - Fixed display of time when last track is ended.
 - Slightly refactored.
2019-05-27 15:34:58 +02:00
23rd
2b8e76a060 Replaced Auth.lifetime() in buttons with internal lifetime. 2019-05-27 15:34:58 +02:00
23rd
9c60d2be80 Updated for archive support. 2019-05-27 15:34:58 +02:00
23rd
3b7123d159 Added auto updating of button images when peer changed userpic. 2019-05-27 15:34:57 +02:00
23rd
2f2847bfdf Moved Saved Messages button to subclass. 2019-05-27 15:34:57 +02:00
23rd
8099305c53 Added buttons of pinned dialogs in main touch bar. 2019-05-27 15:34:56 +02:00
23rd
3eadc62cd5 Added close player button, slightly improved switching of touch bar. 2019-05-27 15:34:55 +02:00
23rd
c9f56abce5 Added initial implementation of switching between touch bars. 2019-05-27 15:34:55 +02:00
23rd
58604406f8 Added initial implementation touchbar. 2019-05-27 15:34:54 +02:00
John Preston
a49806bf79 Only admin can unlink channel from the group. 2019-05-27 15:30:23 +02:00
John Preston
65a36e49bd Support custom forwarded text in url auth button. 2019-05-27 15:26:12 +02:00
John Preston
db66e93258 Allow to return to the original chat on forward. 2019-05-27 15:10:11 +02:00
John Preston
2f1b029ec9 Don't suggest emoji on :[non-letter]. 2019-05-27 15:10:08 +02:00
John Preston
0eb975e679 Allow disabling first-word emoji suggestions. 2019-05-27 15:10:06 +02:00
John Preston
a49a96ba33 Fix archive search input field focus. 2019-05-27 15:10:04 +02:00
John Preston
d2d51cc883 Fix field showing on write access enabling. 2019-05-27 15:09:59 +02:00
John Preston
e8a99a854d Add unread badge to Discuss button. 2019-05-27 15:09:57 +02:00
John Preston
a64c8c52b4 Correctly display discussion posts sender. 2019-05-27 15:09:56 +02:00
John Preston
01054858a4 Url auth checkboxes checked by default. 2019-05-27 15:09:53 +02:00
John Preston
87caa58456 Forward some inline keyboards. 2019-05-27 15:09:52 +02:00
John Preston
6b9675a5b1 Correctly display discussion posts. 2019-05-27 15:09:50 +02:00
John Preston
371f1a51c3 Preload blocked users slice in Settings. 2019-05-27 15:09:47 +02:00
John Preston
8aaaef3ff4 Show 'channel' badge for discussed messages. 2019-05-27 15:09:45 +02:00
John Preston
7fbec0dbca Show admin log events for linked chats. 2019-05-27 15:09:43 +02:00
John Preston
0a86e732cd Add a footer to EditLinkedChatBox. 2019-05-27 15:09:42 +02:00
John Preston
4e10552c12 Add a confirmation for linking a discussion group. 2019-05-27 15:09:41 +02:00
John Preston
0eae8fe6a0 Hide date from archive dialog. 2019-05-27 15:09:39 +02:00
John Preston
ee2c7fad78 Allow creating discussion groups for channels. 2019-05-27 15:09:37 +02:00
John Preston
b9d89cb4a0 Allow unlinking the discussion group. 2019-05-27 15:09:35 +02:00
John Preston
f0eba3e283 Show Discuss button in channels. 2019-05-27 15:09:32 +02:00
John Preston
801b500aa6 Use session() instead of Auth() in HistoryWidget. 2019-05-27 15:09:30 +02:00
John Preston
9c1ce702bb Display channel posts in discussion groups. 2019-05-27 15:09:28 +02:00
John Preston
50778790fe Start supporting channel discussion groups. 2019-05-27 15:09:25 +02:00
John Preston
b05bf049bc Fix add member icon position. 2019-05-27 15:09:23 +02:00
John Preston
b9c24a1fe8 Backport OpenAL capture init fix. 2019-05-27 15:09:20 +02:00
John Preston
c92a798e1b Support url authorizations. 2019-05-27 15:09:18 +02:00
John Preston
8660f976a9 Add phone number privacy.
Also move calls peer-to-peer privacy inside calls privacy.
2019-05-27 15:09:15 +02:00
John Preston
f5c79cb1b6 Use new next_rate field for global search. 2019-05-27 15:09:13 +02:00
John Preston
6b80ff4bcc Support groups in privacy settings. 2019-05-27 15:09:12 +02:00
John Preston
3556fbf702 Pause animated stickers as GIFs. 2019-05-27 15:09:09 +02:00
John Preston
3577e71782 Validate mime type of animated stickers. 2019-05-27 15:09:07 +02:00
John Preston
c4aac5fa0e Update API scheme to layer 100. 2019-05-27 15:09:06 +02:00
John Preston
68fb9b8b67 Remove benchmarks. 2019-05-27 14:11:27 +02:00
John Preston
630c07391c QtLottie: Fix gradients. 2019-05-27 14:11:27 +02:00
John Preston
4ab3c2dfcb Add support for gzip-ed animated stickers. 2019-05-27 14:11:27 +02:00
John Preston
973c3f8838 QtLottie: Migrate from Qt JSON to rapidjson. 2019-05-27 14:11:27 +02:00
John Preston
a03d42daa8 Add rapidjson submodule. 2019-05-27 14:11:27 +02:00
John Preston
0c84fc1271 QtLottie: Remove unnecessary includes. 2019-05-27 14:11:27 +02:00
John Preston
0f25638545 QtLottie: Don't build JSON to parse shapes. 2019-05-27 14:11:27 +02:00
John Preston
f58efd7ee3 QtLottie: Allow building properties from data. 2019-05-27 14:11:27 +02:00
John Preston
26c29f6af7 QtLottie: Move everything to Lottie namespace. 2019-05-27 14:11:27 +02:00
John Preston
ab82ff0fb7 QtLottie: Completely detach from upstream. 2019-05-27 14:11:27 +02:00
John Preston
12a4a849ca QtLottie: Make property parsing non-virtual. 2019-05-27 14:11:27 +02:00
John Preston
38e2837cb6 Remove MOC for QtLottie. 2019-05-27 14:11:27 +02:00
John Preston
0e7cefb69c QtLottie: Use QStringLiteral instead of QLatin1String. 2019-05-27 14:11:27 +02:00
John Preston
21eaa35d8c QtLottie: Drop expressions. 2019-05-27 14:11:27 +02:00
John Preston
c1ae825d98 Add some benchmarks. 2019-05-27 14:11:27 +02:00
John Preston
fbc206ebee QtLottie: Enforce BM nodes parent. 2019-05-27 14:11:27 +02:00
John Preston
67739ae3fd Don't try to keep up if animation got late. 2019-05-27 14:11:27 +02:00
John Preston
7ee16ba45c Clear hidden animated stickers. 2019-05-27 14:11:26 +02:00
John Preston
236513943c Fix animated sticker selection. 2019-05-27 14:11:26 +02:00
John Preston
cfff744cb1 Parse and render lottie in the background. 2019-05-27 14:11:26 +02:00
John Preston
61b6effccc View some more files as stickers. 2019-05-27 14:11:26 +02:00
John Preston
642deecbbb Allow loading lottie animations from memory. 2019-05-27 14:11:26 +02:00
John Preston
707aa88974 Animated stickers proof of concept. 2019-05-27 14:11:26 +02:00
John Preston
5b04698f5f QtLottie: Suboptimal fix for spatial properties. 2019-05-27 14:11:26 +02:00
John Preston
246e4e45bd QtLottie: Add partial support for masksProperties. 2019-05-27 14:11:26 +02:00
John Preston
f2ef2fab4f QtLottie: Support many geometry shapes in a group. 2019-05-27 14:11:26 +02:00
John Preston
1a2755f126 QtLottie: Ignore opacity in null layer transform. 2019-05-27 14:11:26 +02:00
John Preston
801580c46f QtLottie: Apply even inactive parent transforms. 2019-05-27 14:11:26 +02:00
John Preston
3f1ec52e6c QtLottie: Fix precomp layer start time. 2019-05-27 14:11:26 +02:00
John Preston
2c422dcd73 QtLottie: Add BMScene root class. 2019-05-27 14:11:26 +02:00
John Preston
6abf74530d QtLottie: Check each layer for visibility by frame. 2019-05-27 14:11:26 +02:00
John Preston
08ad74da8f QtLottie: Fix parent transform in precomp layers. 2019-05-27 14:11:26 +02:00
John Preston
38427aa52a Fix build in Xcode. 2019-05-27 14:11:26 +02:00
John Preston
68eb48be8d QtLottie: Fix scaling in some animations. 2019-05-27 14:11:26 +02:00
John Preston
5e5b4197e9 QtLottie: Apply opacity in BMFill and BMStroke. 2019-05-27 14:11:26 +02:00
John Preston
48eb5dd112 QtLottie: Bug fixes. 2019-05-27 14:11:26 +02:00
John Preston
9b7e3dc3ec QtLottie: Fix SpatialProperty interpolation. 2019-05-27 14:11:26 +02:00
John Preston
d1518da1ad Provide animation duration. 2019-05-27 14:11:26 +02:00
John Preston
2f02198ac7 QtLottie: Add support for precomp layer. 2019-05-27 14:11:26 +02:00
John Preston
da845a089e QtLottie: Rebase onto upstream/dev. 2019-05-27 14:11:26 +02:00
John Preston
2caa3e3def QtLottie: Add precomp assets parsing. 2019-05-27 14:11:26 +02:00
John Preston
f9a32dc70f QtLottie: Add support for null layer. 2019-05-27 14:11:26 +02:00
John Preston
8dc7f8b8a1 QtLottie: Fix prepending mask layer. 2019-05-27 14:11:26 +02:00
John Preston
78d3bdfe3a Fix build in Xcode. 2019-05-27 14:11:26 +02:00
John Preston
fbfd3ddd68 Partially support new spec keyframes parsing. 2019-05-27 14:11:26 +02:00
John Preston
33b3fa68f0 QtLottie: Rebase onto upstream/dev. 2019-05-27 14:11:26 +02:00
John Preston
2fae2278f7 QtLottie: Fix UB in last keyframe easing point.
Example: https://lottiefiles.com/427-happy-birthday

The present box top was rendered below the body or not depending on
the uninitialized bytes from QBezier.
2019-05-27 14:11:26 +02:00
John Preston
f073963582 Preview lottie animations in media viewer. 2019-05-27 14:11:26 +02:00
John Preston
22c2054dcf First attempt to use QtLottie. 2019-05-27 14:11:26 +02:00
23rd
b2e5ab36d4 Moved shadow drawing from paintEvent in MainMenu::refreshBackground. 2019-05-27 14:10:36 +02:00
23rd
159f90a42c Added background analysis in main menu for better readability. 2019-05-27 14:10:36 +02:00
23rd
08a3a5747a Added custom background to top of main menu. 2019-05-27 14:10:36 +02:00
23rd
47910b2ae1 Added '-scale' command-line argument for custom scale.
- Fixed #5272.
 - Fixed #5365.
 - Fixed #6055.
2019-05-27 14:10:36 +02:00
23rd
5f97b3bc22 Added ability to open links without confirmation with Ctrl key.
- Fixed #6051.
2019-05-27 14:10:35 +02:00
23rd
cf45b0d317 Added ability to send not loaded GIFs with Ctrl key. 2019-05-27 14:10:35 +02:00
23rd
1dd461b24a Moved left elision of counters to Dialogs::Layout::paintUnreadCount. 2019-05-27 14:10:35 +02:00
John Preston
626e7c1f76 Workaround MSVC 16.1 bugs. 2019-05-27 14:10:35 +02:00
udf
288b7ba100 Actually fix display SendFilesBox via historyAttach button. 2019-05-26 14:23:37 +02:00
udf
2b8951b2ac Revert "Fixed display SendFilesBox via historyAttach button."
This reverts commit a0926f2d70 because it
doesn't do what it should do :(
2019-05-26 14:23:37 +02:00
Konstantin Tcepliaev
48cee21b9f Re-enable integrated GPU on macOS.
This limits the fix introduced in a058e75a to just 10.14.4,
as #5858 seems to be fixed in 10.14.5.
2019-05-20 20:22:36 +03:00
23rd
b2f821d3de Updated version of GCC to 8. 2019-05-20 15:59:06 +03:00
23rd
911f138bf8 Updated building-cmake.md
- Added "-y" parameters to make installation of dependencies non-interactive.
 - Changed order of installation for correct linking of GCC.
2019-05-20 15:59:06 +03:00
Vitaly Zaitsev
bb528eaa9c Fixed AppData validation error: tags cannot be empty.
Signed-off-by: Vitaly Zaitsev <vitaly@easycoding.org>
2019-05-20 15:53:27 +03:00
Vitaly Zaitsev
3d3d024878 Fixed building of PCH using Clang compiler.
Signed-off-by: Vitaly Zaitsev <vitaly@easycoding.org>
2019-05-20 15:46:27 +03:00
John Preston
9a4fdb1530 Use only lt_count in langpacks. 2019-05-20 15:44:51 +03:00
23rd
63a6893fda Excluded ability to display 0 views in channel posts. 2019-05-20 15:44:51 +03:00
23rd
dcd5aa83da Fixed choosing of plural when number should be shortened. 2019-05-20 15:44:51 +03:00
23rd
5901b42a83 Added generation of string with decimal separated numbers.
- Added new plural tag "kPluralDecimalSeparationTag".
 - Added Lang::PluralType for default, shorted and decimal separated numbers.
 - Replaced members and votes count with decimal separated type.
2019-05-20 15:44:51 +03:00
23rd
5d321f7c59 Moved generation of short string for large numbers in one place.
- Added new plural tag "kPluralShortTag".
 - Added support of new plural tag to code generator.
 - Removed FormatViewsCount from history_message.
 - Removed FormatLargeNumber from history_media_poll.
 - Added FormatCountToShort to lang_tag.
2019-05-20 15:44:51 +03:00
John Preston
996bd942eb Fix appveyor build. 2019-05-20 13:19:01 +02:00
23rd
dc27bfff2d Fixed elision of user name in side menu. 2019-05-16 11:58:28 +03:00
23rd
63fc552636 Fixed inability to close folder with Back mouse button.
- Fixed #5997.
2019-05-12 22:30:19 +03:00
John Preston
0659822ac9 Add Flathub to the README list. 2019-05-10 12:39:27 +03:00
Stepan Skryabin
f9f1826f34 Update supported Ubuntu and Fedora versions 2019-05-10 12:39:08 +03:00
Vitaly Zaitsev
ddb9c84a1d Allow GNU/Linux maintainers to forward launcher name.
Use optional compiler directive -DTDESKTOP_LAUNCHER_FILENAME to forward
required XDG desktop file name.

If not specified, fallback to default value will be used.

Signed-off-by: Vitaly Zaitsev <vitaly@easycoding.org>
2019-05-10 12:08:58 +03:00
John Preston
69960a47da Apply telegram-wayland-icon.patch from Flatpak version. 2019-05-10 09:22:21 +03:00
John Preston
f8740c5894 Apply some patches from Flatpak version. 2019-05-09 20:14:54 +03:00
John Preston
58aaed4c0f Fix build script for Mac App Store. 2019-05-09 18:45:18 +03:00
John Preston
8af684f7f7 Version 1.7.
Introducing Archived Chats:

- Archive any chat from the right-click menu.
- Chats with enabled notifications will pop out of the archive
when a notification arrives.
- Muted chats will stay in the archive.
- Pin an unlimited number of chats in your archive.
2019-05-08 23:55:33 +03:00
John Preston
0fe0311b45 Fix chats list accidental scrolling. 2019-05-08 23:48:04 +03:00
23rd
89a0cd3e81 Fixed closing folder by Escape when opened dialog in one column mode.
Dialog should be opened by shortcut.
2019-05-08 23:47:39 +03:00
John Preston
6de30b1137 Closed alpha version 1.6.7.3. 2019-05-08 12:44:01 +03:00
John Preston
d26924dd6b Allow multiline no-newline input fields.
Fixes poll option limit warning.
2019-05-08 12:36:13 +03:00
John Preston
4293a4857f Show user profile from channel Removed Users.
Fixes #5974.
2019-05-08 12:25:16 +03:00
John Preston
aec6e17b5d Allow revoking any messages in private chats. 2019-05-08 12:14:42 +03:00
John Preston
64dd5139da Show unread archive chat names in bold. 2019-05-08 12:05:15 +03:00
John Preston
e55e46a0f0 Show last chats in archive dialog row. 2019-05-08 11:50:39 +03:00
John Preston
4f65d0469c Use dedicated color for archive title. 2019-05-08 11:07:21 +03:00
John Preston
a0e2a925ee Filter command line arguments passed to Qt.
See https://www.bleepingcomputer.com/news/security/
qt5-based-gui-apps-susceptible-to-remote-code-execution/

This RCE exploit doesn't affect Telegram Desktop directly, because
Telegram Desktop uses statically linked Qt and does not load any
plugins from external shared libraries. But in any case it's better
to control how command line arguments can affect the app behaviour.

For now pass only the first command line part, the executable path.
2019-05-06 12:40:04 +02:00
John Preston
8bfef7d873 Improve collapsed rows in small chats list. 2019-05-03 17:02:00 +04:00
John Preston
2d4a743231 Update some icons. 2019-05-03 15:35:22 +04:00
John Preston
0247e876df Remove locally saved empty histories. 2019-05-03 15:18:18 +04:00
John Preston
39b7f307a4 Show muted mention icon in archive. 2019-05-03 15:12:48 +04:00
John Preston
4356b1c193 Allow collapsing archive in the chats list. 2019-05-03 15:08:53 +04:00
John Preston
6f885fb6cc Fix creating dialog rows for new groups. 2019-05-02 22:30:52 +04:00
John Preston
5f1cb9d31c Put archive action on top of the menu. 2019-05-01 17:10:11 +04:00
John Preston
9b430147c0 Remove some unused langpack keys. 2019-05-01 16:43:37 +04:00
John Preston
4e8c57a861 Fix assertion violation in marking history as read. 2019-05-01 16:43:19 +04:00
John Preston
d9ad3a4bbe Jump to chats list top on folder change. 2019-05-01 16:11:47 +04:00
John Preston
4ad8c4877c Close archive by escape even if chat is shown. 2019-05-01 16:11:47 +04:00
John Preston
edf4180d11 Don't suggest to archive Saved Messages. 2019-05-01 16:11:47 +04:00
John Preston
d48cafe1a3 Improve manage group box styles. 2019-05-01 16:11:47 +04:00
John Preston
aede79640d Ctrl+1..5 always activate pinned from main chats list. 2019-05-01 16:11:47 +04:00
John Preston
4dae89310d In archive allow scroll-down-by-pinned-drag. 2019-05-01 16:11:46 +04:00
John Preston
6102795856 Fix proxy promoted channel chats-list position. 2019-05-01 16:11:46 +04:00
John Preston
7669b8e12b Don't suggest to archive proxy sponsor. 2019-05-01 16:11:45 +04:00
John Preston
5c9a907c88 Closed alpha version 1.6.7.2. 2019-05-01 16:11:45 +04:00
John Preston
116b5d006a Divide public/private phrases for groups/channels. 2019-05-01 16:11:45 +04:00
John Preston
db35c3de3b Fix block chat list loading by date. 2019-05-01 16:11:45 +04:00
John Preston
be64f18e96 Fix dialogs list creation in support mode. 2019-05-01 16:11:45 +04:00
John Preston
39008bf6fe Fix reading of client side unread messages. 2019-05-01 16:11:44 +04:00
John Preston
c9552390e7 Fix stack overflow crash in emoji panel hiding.
A call to hideChildren before setting _hiding to the desired value
could lead through leaveEvent to a recursive call to hideAnimated.
2019-05-01 16:11:44 +04:00
John Preston
5c3f93eee1 Fix crash in replies.
Regression was introduced in b1df3c0ec4.
2019-05-01 16:11:44 +04:00
John Preston
cf0d4a0559 Improve design of video download state. 2019-05-01 16:11:44 +04:00
John Preston
ee5c819cef Fix render glitch in archive top bar. 2019-05-01 16:11:43 +04:00
John Preston
ca548a11d7 Fix assertion violation in History::inboxRead(). 2019-05-01 16:11:43 +04:00
John Preston
0b26475300 Fix render glitches in passcodebox. 2019-05-01 16:11:43 +04:00
John Preston
d74992b85b Closed alpha version 1.6.7.1. 2019-05-01 16:11:42 +04:00
John Preston
08bddc5579 Move messages data to AuthSession. 2019-05-01 16:11:42 +04:00
John Preston
cb3e649e61 Correctly handle cloud archive unread state. 2019-05-01 16:11:42 +04:00
John Preston
accb20a571 Improve archived toast notification. 2019-05-01 16:11:41 +04:00
John Preston
08101ba666 Forbid to archive Telegram Notifications. 2019-05-01 16:11:41 +04:00
John Preston
430a3c2cec Fix important switch hiding in folders. 2019-05-01 16:11:41 +04:00
John Preston
48ad171a29 Clear chats list context menu a bit. 2019-05-01 16:11:41 +04:00
John Preston
5f62c2100c Count unread marks in non-fully loaded folders. 2019-05-01 16:11:40 +04:00
John Preston
4c571f5bff Fix adding first chat to archive. 2019-05-01 16:11:40 +04:00
John Preston
52b9212625 Display top bar in archive. 2019-05-01 16:11:40 +04:00
John Preston
f56df0e1d9 Show folder using slide animation. 2019-05-01 16:11:39 +04:00
John Preston
6dd8f32f66 Fix build on Xcode. 2019-05-01 16:11:39 +04:00
John Preston
5ab1cd405a Fix nice vote percents. 2019-05-01 16:11:39 +04:00
John Preston
3dd2a6bb5b Update archive row on chat list name change. 2019-05-01 16:11:39 +04:00
John Preston
9ff02707bf Improve archive chat list entry layout. 2019-05-01 16:11:38 +04:00
John Preston
2d1dcb36cb Use folder_id / still_unread_count from updates. 2019-05-01 16:11:38 +04:00
John Preston
01d5589594 Add archived results in chats search. 2019-05-01 16:11:38 +04:00
John Preston
40532e32ab Enforce changelog message visibility. 2019-05-01 16:11:38 +04:00
John Preston
ceec71d3e6 Track real latest message in the folder. 2019-05-01 16:11:37 +04:00
John Preston
8fd811517b Count unread correctly in folders. 2019-05-01 16:11:37 +04:00
John Preston
58519300ea Support pinned chats in folders. 2019-05-01 16:11:37 +04:00
John Preston
607655941d Improve Ui::Menu interface. 2019-05-01 16:11:37 +04:00
John Preston
9acdc4eac1 Show folder bar on top when folder is opened. 2019-05-01 16:11:36 +04:00
John Preston
518ff146b2 Don't allow reordering of the archive. 2019-05-01 16:11:36 +04:00
John Preston
74c65f30f7 Load folder dialogs while scrolling. 2019-05-01 16:11:36 +04:00
John Preston
83306bb01f Replace QList with std::deque in notifications. 2019-05-01 16:11:36 +04:00
John Preston
f3ed7a674a Create dialog rows only with known folders. 2019-05-01 16:11:35 +04:00
John Preston
854870683b Add ability to archive/unarchive the chats. 2019-05-01 16:11:35 +04:00
John Preston
c58f097535 Correctly move histories between chat lists. 2019-05-01 16:11:35 +04:00
John Preston
0367319934 Load folder dialogs list. 2019-05-01 16:11:35 +04:00
John Preston
be0cf8d379 Use std::vector in rpl::lifetime. 2019-05-01 16:11:34 +04:00
John Preston
305a611211 Load dialogs list in ApiWrap and Data::Session. 2019-05-01 16:11:34 +04:00
John Preston
927735dff2 Start showing folder chats list. 2019-05-01 16:11:34 +04:00
John Preston
0c0d6bc411 Move chats / contacts lists to Data::Session. 2019-05-01 16:11:33 +04:00
John Preston
2862070348 Use vector instead of custom linked list. 2019-05-01 16:11:20 +04:00
John Preston
58d86af399 Remove SplittedWidget paint optimization.
It doesn't work with dialogs-to-top button anyway.
2019-05-01 16:11:16 +04:00
John Preston
76c3e9a529 Display title and userpic of archived chats. 2019-05-01 16:11:14 +04:00
John Preston
9bf8a8108d Comment out non-folder feed code. 2019-04-25 14:16:30 +04:00
John Preston
905a024aed Update API scheme to layer 99. 2019-04-25 14:16:29 +04:00
23rd
e1000b79a3 Fixed display of file sizes with invalid dimensions when edit media. 2019-04-25 14:11:07 +04:00
John Zimmermann
c2a10f9c56 Linux: manually set desktop file name
resolves #5180
2019-04-25 13:41:19 +04:00
John Zimmermann
4d42e7e5b9 Correctly set _desktopFile to Telegram.desktop if Telegram.desktop was found 2019-04-25 13:39:40 +04:00
Amos Bird
e200a7d502 Do not break type aliasing rule 2019-04-25 13:38:39 +04:00
23rd
55a6e70f74 Updated building-xcode.md. Moved number of threads into variable. 2019-04-24 23:32:50 +03:00
John Preston
6f242f284f Notarize update builds. 2019-04-23 19:24:36 +04:00
John Preston
25471f3952 Add notarization to build script. 2019-04-23 19:24:36 +04:00
John Preston
72690ee106 Enable hardened runtime on macOS build. 2019-04-23 19:24:36 +04:00
John Preston
edc8c23772 Fix custom download path in Mac App Store build.
Fixes #5903.
2019-04-13 19:49:13 +04:00
John Preston
0023fdc707 Version 1.6.7.
- Replace media when editing messages with media content.
- Jump quickly to the top of your chats list.
- Get emoji suggestions for the first word you type in a message.
- Help Telegram improve emoji suggestions in your language
using this interface https://translations.telegram.org/en/emoji
2019-04-13 10:46:58 +04:00
John Preston
2518250ae0 Fix wronly marking channel as forbidden.
Regression was introduced in 826d6011a1.

Fixes #5923.
2019-04-13 10:34:35 +04:00
John Preston
08cd46cd4c Fix crash in streaming caching. 2019-04-12 18:49:37 +04:00
John Preston
12614ab68c Fix possible crash with nullptr screen. 2019-04-12 17:30:43 +04:00
John Preston
7cfb122dea Fix crash with event loop nesting tracking. 2019-04-12 17:30:43 +04:00
John Preston
cc8f4aa24f Fix crash in history clear. 2019-04-12 17:30:42 +04:00
23rd
60e36b1411 Left animation to top only for dialogs up button. 2019-04-12 16:32:36 +04:00
1073 changed files with 70627 additions and 43668 deletions

View File

@@ -25,9 +25,11 @@ GOTO:EOF
:getDependencies
call:logInfo "Clone dependencies repository"
git clone -q --depth 1 --branch=master https://github.com/telegramdesktop/dependencies_windows.git %LIB_DIR%
git clone -q --depth 1 --branch master https://github.com/telegramdesktop/dependencies_windows.git %LIB_DIR%
cd %LIB_DIR%
git clone https://github.com/ericniebler/range-v3
git clone --depth 1 --branch 0.9.1 https://github.com/ericniebler/range-v3
if exist prepare.bat (
call prepare.bat
) else (
@@ -40,9 +42,9 @@ GOTO:EOF
:setupGYP
call:logInfo "Setup GYP/Ninja and generate VS solution"
cd %LIB_DIR%
git clone https://chromium.googlesource.com/external/gyp
git clone https://github.com/telegramdesktop/gyp.git
cd gyp
git checkout a478c1ab51
git checkout tdesktop
SET PATH=%PATH%;%BUILD_DIR%\Libraries\gyp;%BUILD_DIR%\Libraries\ninja;
cd %SRC_DIR%
git submodule init

View File

@@ -1,3 +1,9 @@
---
name: Bug report
about: Report errors or unexpected behavior.
---
<!--
Thanks for reporting issues of Telegram Desktop!

View File

@@ -0,0 +1,18 @@
---
name: Feature request
about: Suggest an idea.
title: "[Feature Request] "
---
### Is your feature request related to a problem?
A clear and concise description of what the problem is.
### Describe the solution you'd like
A clear and concise description of what you want to happen.
### Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
### Additional context
Add any other context or screenshots about the feature request here.

8
.github/ISSUE_TEMPLATE/QUESTION.md vendored Normal file
View File

@@ -0,0 +1,8 @@
---
name: Question
about: Ask a question.
title: "[Question] "
labels: 'question'
assignees: ''
---

6
.gitmodules vendored
View File

@@ -16,3 +16,9 @@
[submodule "Telegram/ThirdParty/xxHash"]
path = Telegram/ThirdParty/xxHash
url = https://github.com/Cyan4973/xxHash.git
[submodule "Telegram/ThirdParty/rlottie"]
path = Telegram/ThirdParty/rlottie
url = https://github.com/john-preston/rlottie
[submodule "Telegram/ThirdParty/lz4"]
path = Telegram/ThirdParty/lz4
url = https://github.com/lz4/lz4.git

View File

@@ -31,8 +31,8 @@ addons:
- dpatch
- equivs
- fakeroot
- g++-7
- gcc-7
- g++-8
- gcc-8
- git
- gnome-common
- gobject-introspection
@@ -56,8 +56,8 @@ addons:
- yasm
before_install:
- export CXX="g++-7" CC="gcc-7"
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 60 --slave /usr/bin/g++ g++ /usr/bin/g++-7
- export CXX="g++-8" CC="gcc-8"
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-8
- sudo update-alternatives --config gcc
- g++ --version

View File

@@ -170,6 +170,7 @@ buildXkbCommon() {
git clone https://github.com/xkbcommon/libxkbcommon.git
cd "$EXTERNAL/libxkbcommon"
git checkout xkbcommon-0.8.4
./autogen.sh --prefix=$XKB_PATH
make $MAKE_ARGS
sudo make install
@@ -216,7 +217,7 @@ buildRange() {
rm -rf *
cd "$EXTERNAL"
git clone --depth=1 https://github.com/ericniebler/range-v3
git clone --depth 1 --branch 0.9.1 https://github.com/ericniebler/range-v3
cd "$EXTERNAL/range-v3"
cp -r * "$RANGE_PATH/"

View File

@@ -15,9 +15,10 @@ The source code is published under GPLv3 with OpenSSL exception, the license is
* Windows XP - Windows 10 (**not** RT)
* Mac OS X 10.8 - Mac OS X 10.11
* Mac OS X 10.6 - Mac OS X 10.7 (separate build)
* Ubuntu 12.04 - Ubuntu 18.10
* Fedora 22 - Fedora 29
* Ubuntu 12.04 - Ubuntu 19.04
* Fedora 22 - Fedora 30
* [Snappy](https://snapcraft.io/telegram-desktop)
* [Flathub](https://flathub.org/apps/details/org.telegram.desktop)
## Third-party

View File

@@ -1,8 +1,8 @@
diff --git a/pylib/gyp/generator/cmake.py b/pylib/gyp/generator/cmake.py
index a2b9629..ac59461 100644
index 4a2041cf..e5333926 100644
--- a/pylib/gyp/generator/cmake.py
+++ b/pylib/gyp/generator/cmake.py
@@ -1070,6 +1070,23 @@ def WriteTarget(namer, qualified_target, target_dicts, build_dir, config_to_use,
@@ -1078,6 +1078,23 @@ def WriteTarget(namer, qualified_target, target_dicts, build_dir, config_to_use,
output.write(')\n')
@@ -26,7 +26,7 @@ index a2b9629..ac59461 100644
UnsetVariable(output, 'TOOLSET')
UnsetVariable(output, 'TARGET')
@@ -1112,6 +1129,8 @@ def GenerateOutputForConfig(target_list, target_dicts, data,
@@ -1120,6 +1137,8 @@ def GenerateOutputForConfig(target_list, target_dicts, data,
SetVariable(output, 'configuration', config_to_use)
ar = None
@@ -35,7 +35,7 @@ index a2b9629..ac59461 100644
cc = None
cxx = None
@@ -1121,17 +1140,27 @@ def GenerateOutputForConfig(target_list, target_dicts, data,
@@ -1129,17 +1148,27 @@ def GenerateOutputForConfig(target_list, target_dicts, data,
for key, value in make_global_settings:
if key == 'AR':
ar = os.path.join(build_to_top, value)
@@ -64,48 +64,63 @@ index a2b9629..ac59461 100644
SetVariable(output, 'CMAKE_C_COMPILER', cc)
if cxx:
diff --git a/pylib/gyp/generator/xcode.py b/pylib/gyp/generator/xcode.py
index db99d6a..8d56baf 100644
index 8bc22bed..24bee427 100644
--- a/pylib/gyp/generator/xcode.py
+++ b/pylib/gyp/generator/xcode.py
@@ -72,6 +72,10 @@ generator_additional_non_configuration_keys = [
@@ -74,6 +74,12 @@ generator_additional_non_configuration_keys = [
'ios_app_extension',
'ios_watch_app',
'ios_watchkit_extension',
+
+ 'mac_sandbox', # sandbox support
+ 'mac_sandbox_development_team',
+
+ 'mac_hardened_runtime', # hardened runtime support
+
'mac_bundle',
'mac_bundle_resources',
'mac_framework_headers',
@@ -772,6 +776,26 @@ def GenerateOutput(target_list, target_dicts, data, params):
@@ -774,6 +780,39 @@ def GenerateOutput(target_list, target_dicts, data, params):
xcode_targets[qualified_target] = xct
xcode_target_to_target_dict[xct] = spec
+ # sandbox support
+ # sandbox and hardened runtime support
+ is_sandbox = int(spec.get('mac_sandbox', 0))
+ is_hardened_runtime = int(spec.get('mac_hardened_runtime', 0))
+ if is_sandbox or is_hardened_runtime:
+ try:
+ tmp = pbxp._properties['attributes']['TargetAttributes']
+ except KeyError:
+ pbxp._properties['attributes']['TargetAttributes'] = {}
+ try:
+ tmp = pbxp._properties['attributes']['TargetAttributes'][xct]
+ except KeyError:
+ pbxp._properties['attributes']['TargetAttributes'][xct] = {}
+ try:
+ tmp = pbxp._properties['attributes']['TargetAttributes'][xct]['SystemCapabilities']
+ except KeyError:
+ pbxp._properties['attributes']['TargetAttributes'][xct]['SystemCapabilities'] = {}
+
+ if is_sandbox:
+ dev_team = spec.get('mac_sandbox_development_team', '%%ERROR%%')
+ assert dev_team != '%%ERROR%%', (
+ 'mac_sandbox must be accompanied by mac_sandbox_development_team (target "%s")' %
+ target_name)
+ try:
+ tmp = pbxp._properties['attributes']['TargetAttributes']
+ except KeyError:
+ pbxp._properties['attributes']['TargetAttributes'] = {}
+ pbxp._properties['attributes']['TargetAttributes'][xct] = {
+ 'DevelopmentTeam': dev_team,
+ 'SystemCapabilities': {
+ 'com.apple.Sandbox': {
+ 'enabled': 1,
+ },
+ },
+ pbxp._properties['attributes']['TargetAttributes'][xct]['DevelopmentTeam'] = dev_team
+ pbxp._properties['attributes']['TargetAttributes'][xct]['SystemCapabilities']['com.apple.Sandbox'] = {
+ 'enabled': 1,
+ }
+
+ # hardened runtime support
+ if is_hardened_runtime:
+ pbxp._properties['attributes']['TargetAttributes'][xct]['SystemCapabilities']['com.apple.HardenedRuntime'] = {
+ 'enabled': 1,
+ }
+
spec_actions = spec.get('actions', [])
spec_rules = spec.get('rules', [])
@@ -1141,7 +1165,8 @@ exit 1
@@ -1132,7 +1171,8 @@ exit 1
groups = [x for x in groups if not x.endswith('_excluded')]
for group in groups:
for item in rule.get(group, []):

View File

@@ -92,6 +92,67 @@ index bcd29b6fe1..bcb0672f69 100644
if (QPlatformCursor *platformCursor = q->screen()->handle()->cursor()) {
QCursor *c = QGuiApplication::overrideCursor();
if (!c && hasCursor)
diff --git a/src/gui/painting/qbezier.cpp b/src/gui/painting/qbezier.cpp
index 8e0e76f787..a61bd62834 100644
--- a/src/gui/painting/qbezier.cpp
+++ b/src/gui/painting/qbezier.cpp
@@ -45,6 +45,34 @@ QT_BEGIN_NAMESPACE
//#define QDEBUG_BEZIER
+// Patch: Workaround VS2019 compiler bug, see QTBUG-75280.
+#ifdef Q_OS_WIN
+Q_NEVER_INLINE void QBezier::split(QBezier *firstHalf, QBezier *secondHalf) const
+{
+ Q_ASSERT(firstHalf);
+ Q_ASSERT(secondHalf);
+
+ qreal c = (x2 + x3)*.5;
+ firstHalf->x2 = (x1 + x2)*.5;
+ secondHalf->x3 = (x3 + x4)*.5;
+ firstHalf->x1 = x1;
+ secondHalf->x4 = x4;
+ firstHalf->x3 = (firstHalf->x2 + c)*.5;
+ secondHalf->x2 = (secondHalf->x3 + c)*.5;
+ firstHalf->x4 = secondHalf->x1 = (firstHalf->x3 + secondHalf->x2)*.5;
+
+ c = (y2 + y3)/2;
+ firstHalf->y2 = (y1 + y2)*.5;
+ secondHalf->y3 = (y3 + y4)*.5;
+ firstHalf->y1 = y1;
+ secondHalf->y4 = y4;
+ firstHalf->y3 = (firstHalf->y2 + c)*.5;
+ secondHalf->y2 = (secondHalf->y3 + c)*.5;
+ firstHalf->y4 = secondHalf->y1 = (firstHalf->y3 + secondHalf->y2)*.5;
+}
+// Patch: Workaround VS2019 compiler bug, see QTBUG-75280.
+#endif // Q_OS_WIN
+
/*!
\internal
*/
diff --git a/src/gui/painting/qbezier_p.h b/src/gui/painting/qbezier_p.h
index dd1cd94acf..aedc8b6a4b 100644
--- a/src/gui/painting/qbezier_p.h
+++ b/src/gui/painting/qbezier_p.h
@@ -215,6 +215,8 @@ inline QPointF QBezier::secondDerivedAt(qreal t) const
a * y1 + b * y2 + c * y3 + d * y4);
}
+// Patch: Workaround VS2019 compiler bug, see QTBUG-75280.
+#ifndef Q_OS_WIN
inline void QBezier::split(QBezier *firstHalf, QBezier *secondHalf) const
{
Q_ASSERT(firstHalf);
@@ -238,6 +240,8 @@ inline void QBezier::split(QBezier *firstHalf, QBezier *secondHalf) const
secondHalf->y2 = (secondHalf->y3 + c)*.5;
firstHalf->y4 = secondHalf->y1 = (firstHalf->y3 + secondHalf->y2)*.5;
}
+// Patch: Workaround VS2019 compiler bug, see QTBUG-75280.
+#endif // Q_OS_WIN
inline void QBezier::parameterSplitLeft(qreal t, QBezier *left)
{
diff --git a/src/gui/painting/qpaintengine_p.h b/src/gui/painting/qpaintengine_p.h
index 918c98997b..4158259743 100644
--- a/src/gui/painting/qpaintengine_p.h
@@ -234,6 +295,40 @@ index c4cb8e65c0..45793e364f 100644
channels[i].socket->close();
delete channels[i].socket;
}
diff --git a/src/network/access/qnetworkreplyhttpimpl.cpp b/src/network/access/qnetworkreplyhttpimpl.cpp
index 94235a48dd..9abd2cc0a1 100644
--- a/src/network/access/qnetworkreplyhttpimpl.cpp
+++ b/src/network/access/qnetworkreplyhttpimpl.cpp
@@ -2045,6 +2045,9 @@ void QNetworkReplyHttpImplPrivate::finished()
{
Q_Q(QNetworkReplyHttpImpl);
+ // Patch: Fix crash in Linux (by crashreports).
+ QPointer<QNetworkReplyHttpImpl> guard = q;
+
if (state == Finished || state == Aborted || state == WaitingForSession)
return;
@@ -2075,6 +2078,9 @@ void QNetworkReplyHttpImplPrivate::finished()
#endif
}
+ // Patch: Fix crash in Linux (by crashreports).
+ if (!guard) return;
+
// if we don't know the total size of or we received everything save the cache
if (totalSize.isNull() || totalSize == -1 || bytesDownloaded == totalSize)
completeCacheSave();
@@ -2084,6 +2090,9 @@ void QNetworkReplyHttpImplPrivate::finished()
if (isHttpRedirectResponse() && errorCode == QNetworkReply::NoError)
return;
+ // Patch: Fix crash in Linux (by crashreports).
+ if (!guard) return;
+
state = Finished;
q->setFinished(true);
diff --git a/src/network/socket/qnativesocketengine_win.cpp b/src/network/socket/qnativesocketengine_win.cpp
index 41834b21ae..8cdf4ab145 100644
--- a/src/network/socket/qnativesocketengine_win.cpp
@@ -253,20 +348,18 @@ index 41834b21ae..8cdf4ab145 100644
setError(QAbstractSocket::NetworkError, AddressNotAvailableErrorString);
socketState = QAbstractSocket::UnconnectedState;
diff --git a/src/platformsupport/cglconvenience/cglconvenience.mm b/src/platformsupport/cglconvenience/cglconvenience.mm
index fb609ae485..7cca45ded4 100644
index fb609ae485..ef1c638d91 100644
--- a/src/platformsupport/cglconvenience/cglconvenience.mm
+++ b/src/platformsupport/cglconvenience/cglconvenience.mm
@@ -128,7 +128,14 @@ void *qcgl_createNSOpenGLPixelFormat(const QSurfaceFormat &format)
@@ -128,7 +128,12 @@ void *qcgl_createNSOpenGLPixelFormat(const QSurfaceFormat &format)
if (format.stereo())
attrs << NSOpenGLPFAStereo;
- attrs << NSOpenGLPFAAllowOfflineRenderers;
+ // Patch: Fix macOS regression. It crashes on GPU switches.
+ // Patch: Fix macOS regression. On 10.14.4, it crashes on GPU switches.
+ // See https://bugreports.qt.io/browse/QTCREATORBUG-22215
+ static const QAppleOperatingSystemVersion version = qt_apple_os_version();
+ if ((version.major < 10)
+ || (version.major == 10 && version.minor < 14)
+ || (version.major == 10 && version.minor == 14 && version.patch < 4)) {
+ if (!(version.major == 10 && version.minor == 14 && version.patch == 4)) {
+ attrs << NSOpenGLPFAAllowOfflineRenderers;
+ }

View File

@@ -72,8 +72,11 @@ linkCropLimit: 360px;
linkFont: normalFont;
linkOverFont: font(fsize underline);
dateRadius: 6px;
buttonRadius: 3px;
roundRadiusLarge: 6px;
roundRadiusSmall: 3px;
dateRadius: roundRadiusLarge;
buttonRadius: roundRadiusSmall;
setLittleSkip: 9px;

View File

@@ -51,11 +51,6 @@ attentionButtonFgOver: #d14e4e; // default attention button text with mouse over
attentionButtonBgOver: #fcdfde; // default attention button background with mouse over
attentionButtonBgRipple: #f4c3c2; // default attention button ripple effect
outlineButtonBg: windowBg; // default left outlined button background (like shared media links in profiles)
outlineButtonBgOver: lightButtonBgOver; // default left outlined button background with mouse over
outlineButtonOutlineFg: windowBgActive; // default left outlined button left outline border
outlineButtonBgRipple: lightButtonBgRipple; // default left outlined button ripple effect
menuBg: windowBg; // default popup menu background
menuBgOver: windowBgOver; // default popup menu item background with mouse over
menuBgRipple: windowBgRipple; // default popup menu item ripple effect
@@ -193,6 +188,9 @@ dialogsSentIconFg: #5dc452; // chat list sent message tick / double tick icon
dialogsUnreadBg: windowBgActive; // chat list unread badge background for not muted chat
dialogsUnreadBgMuted: #bbbbbb; // chat list unread badge background for muted chat
dialogsUnreadFg: windowFgActive; // chat list unread badge text
dialogsArchiveFg: #525252 | dialogsNameFg; // chat list archive name text
dialogsOnlineBadgeFg: #4dc920 | dialogsUnreadBg; // chat list online status
dialogsScamFg: dialogsDraftFg; // chat list scam label
dialogsBgOver: windowBgOver; // chat list background with mouse over
dialogsNameFgOver: windowBoldFgOver; // chat list name text with mouse over
@@ -208,6 +206,8 @@ dialogsSentIconFgOver: dialogsSentIconFg; // chat list sent message tick / doubl
dialogsUnreadBgOver: dialogsUnreadBg; // chat list unread badge background for not muted chat with mouse over
dialogsUnreadBgMutedOver: dialogsUnreadBgMuted; // chat list unread badge background for muted chat with mouse over
dialogsUnreadFgOver: dialogsUnreadFg; // chat list unread badge text with mouse over
dialogsArchiveFgOver: #525252 | dialogsNameFgOver; // chat list archive name text with mouse over
dialogsScamFgOver: dialogsDraftFgOver; // chat list scam label with mouse over
dialogsBgActive: #419fd9; // chat list background for current (active) chat
dialogsNameFgActive: windowFgActive; // chat list name text for current (active) chat
@@ -223,6 +223,8 @@ dialogsSentIconFgActive: dialogsTextFgActive; // chat list sent message tick / d
dialogsUnreadBgActive: dialogsTextFgActive; // chat list unread badge background for not muted chat for current (active) chat
dialogsUnreadBgMutedActive: dialogsDraftFgActive; // chat list unread badge background for muted chat for current (active) chat
dialogsUnreadFgActive: dialogsBgActive; // chat list unread badge text for current (active) chat
dialogsOnlineBadgeFgActive: #ffffff; // chat list online status for current (active) chat
dialogsScamFgActive: dialogsDraftFgActive; // chat list scam label for current (active) chat
dialogsRippleBg: windowBgRipple; // chat list background ripple effect
dialogsRippleBgActive: activeButtonBgRipple; // chat list background ripple effect for current (active) chat
@@ -304,6 +306,7 @@ historyPeer8NameFgSelected: historyPeer8NameFg; // orange group member name in a
historyPeer8UserpicBg: #faa774; // orange userpic background
historyPeerUserpicFg: windowFgActive; // default userpic initials
historyPeerSavedMessagesBg: historyPeer4UserpicBg; // saved messages userpic background
historyPeerArchiveUserpicBg: dialogsUnreadBgMuted; // archive folder userpic background
// Some values are marked as (adjusted), it means they're adjusted by
// hue and saturation of the average background color if user chooses
@@ -550,3 +553,7 @@ callBarFg: dialogsNameFgActive; // phone call bar text and icons
importantTooltipBg: toastBg;
importantTooltipFg: toastFg;
importantTooltipFgLink: mediaviewTextLinkFg;
outdatedFg: #ffffff;
outdateSoonBg: #e08543;
outdatedBg: #e05745;

Binary file not shown.

After

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 814 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 307 B

After

Width:  |  Height:  |  Size: 387 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 541 B

After

Width:  |  Height:  |  Size: 638 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 792 B

After

Width:  |  Height:  |  Size: 907 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 343 B

After

Width:  |  Height:  |  Size: 367 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 660 B

After

Width:  |  Height:  |  Size: 1013 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 838 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 572 B

After

Width:  |  Height:  |  Size: 456 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 512 B

After

Width:  |  Height:  |  Size: 833 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 444 B

After

Width:  |  Height:  |  Size: 452 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 855 B

After

Width:  |  Height:  |  Size: 884 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 714 B

After

Width:  |  Height:  |  Size: 781 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 557 B

After

Width:  |  Height:  |  Size: 812 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 716 B

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 743 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 362 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 652 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 622 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 939 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 715 B

After

Width:  |  Height:  |  Size: 599 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 586 B

After

Width:  |  Height:  |  Size: 470 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 727 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@@ -76,7 +76,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_month_day_year" = "{month} {day}, {year}";
"lng_month_year" = "{month} {year}";
"lng_calendar_beginning" = "Beginning";
"lng_box_ok" = "OK";
"lng_box_done" = "Done";
"lng_cancel" = "Cancel";
"lng_continue" = "Continue";
@@ -118,11 +121,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_channel_status" = "channel";
"lng_group_status" = "group";
"lng_channel_members_link#one" = "{count} member";
"lng_channel_members_link#other" = "{count} members";
"lng_channel_admins_link#one" = "{count} administrator";
"lng_channel_admins_link#other" = "{count} administrators";
"lng_scam_badge" = "SCAM";
"lng_flood_error" = "Too many tries. Please try again later.";
"lng_gif_error" = "An error has occurred while reading GIF animation :(";
@@ -148,6 +147,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_sure_ban_admin" = "This user is an admin. Are you sure you want to go ahead and restrict them?";
"lng_sure_enable_socks" = "Are you sure you want to enable this proxy?\n\nServer: {server}\nPort: {port}\n\nYou can change your proxy server later in the Settings (Connection Type).";
"lng_sure_enable" = "Enable";
"lng_proxy_invalid" = "The proxy link is invalid.";
"lng_proxy_unsupported" = "Your Telegram Desktop version doesn't support this proxy type or the proxy link is invalid. Please update Telegram Desktop to the latest version.";
"lng_edit_deleted" = "This message was deleted";
"lng_edit_too_long" = "Your message text is too long";
@@ -165,6 +166,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_edit_media_album_error" = "This file cannot be saved as a part of an album.";
"lng_edit_media_invalid_file" = "Sorry, no way to use this file.";
"lng_edit_caption_attach" = "Sorry, you can't attach a new media while you're editing your message.";
"lng_intro_about" = "Welcome to the official Telegram Desktop app.\nIt's fast and secure.";
"lng_start_msgs" = "START MESSAGING";
@@ -178,7 +180,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_phone_title" = "Your Phone Number";
"lng_phone_desc" = "Please confirm your country code and\nenter your mobile phone number.";
"lng_phone_notreg" = "If you don't have a Telegram account yet,\nplease [b]sign up[/b] with {link_start}Android / iPhone{link_end} or {signup_start}here{signup_end}";
"lng_country_code" = "Country Code";
"lng_bad_country_code" = "Invalid Country Code";
"lng_country_ph" = "Search";
@@ -187,7 +188,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_code_ph" = "Your code";
"lng_code_desc" = "We have sent you a message with activation\ncode to your phone. Please enter it below.";
"lng_code_telegram" = "Please enter the code you've just received\nin your previous [b]Telegram[/b] app.";
"lng_code_from_telegram" = "Please enter the code you've just received\nin your previous **Telegram** app.";
"lng_code_no_telegram" = "Send code via SMS";
"lng_code_call" = "Telegram will call you in {minutes}:{seconds}";
"lng_code_calling" = "Requesting a call from Telegram...";
@@ -293,11 +294,13 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_settings_count_unread" = "Count unread messages";
"lng_settings_events_title" = "Events";
"lng_settings_events_joined" = "Contact joined Telegram";
"lng_settings_events_pinned" = "Pinned messages";
"lng_notification_preview" = "You have a new message";
"lng_notification_reply" = "Reply";
"lng_notification_hide_all" = "Hide all";
"lng_notification_sample" = "This is a sample notification";
"lng_notification_reminder" = "Reminder";
"lng_settings_section_general" = "General";
"lng_settings_change_lang" = "Change language";
@@ -326,6 +329,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_settings_replace_emojis" = "Replace emoji";
"lng_settings_suggest_emoji" = "Suggest emoji replacements";
"lng_settings_suggest_by_emoji" = "Suggest popular stickers by emoji";
"lng_settings_loop_stickers" = "Loop animated stickers";
"lng_settings_large_emoji" = "Large emoji";
"lng_settings_view_emojis" = "View list";
"lng_settings_send_enter" = "Send by Enter";
"lng_settings_send_ctrlenter" = "Send by Ctrl+Enter";
@@ -335,7 +340,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_settings_bg_use_default" = "Use default color theme";
"lng_settings_bg_from_gallery" = "Choose from gallery";
"lng_settings_bg_from_file" = "Choose from file";
"lng_settings_bg_edit_theme" = "Launch theme editor";
"lng_settings_bg_theme_edit" = "Edit theme";
"lng_settings_bg_theme_create" = "Create new theme";
"lng_settings_bg_cloud_themes" = "Custom themes";
"lng_settings_bg_show_all" = "Show all themes";
"lng_settings_bg_tile" = "Tile background";
"lng_settings_adaptive_wide" = "Adaptive layout for wide screens";
@@ -360,9 +368,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_settings_privacy_title" = "Privacy";
"lng_settings_last_seen" = "Last seen";
"lng_settings_calls" = "Voice calls";
"lng_settings_calls_peer_to_peer" = "Peer-to-peer in calls";
"lng_settings_calls_peer_to_peer_title" = "Peer-to-peer";
"lng_settings_calls_peer_to_peer_button" = "Use peer-to-peer with";
"lng_settings_groups_invite" = "Groups";
"lng_settings_group_privacy_about" = "Change who can add you to groups and channels.";
"lng_settings_phone_number_privacy" = "Phone number";
"lng_settings_forwards_privacy" = "Forwarded messages";
"lng_settings_profile_photo_privacy" = "Profile photo";
"lng_settings_sessions_about" = "Control your sessions on other devices.";
@@ -382,6 +392,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_settings_stickers_emoji" = "Stickers and emoji";
"lng_settings_messages" = "Messages";
"lng_settings_themes" = "Themes";
"lng_settings_theme_day" = "Day";
"lng_settings_theme_classic" = "Classic";
"lng_settings_theme_tinted" = "Tinted";
"lng_settings_theme_night" = "Night";
"lng_settings_theme_accent_title" = "Choose accent color";
"lng_settings_data_storage" = "Data and storage";
"lng_settings_information" = "Edit profile";
"lng_settings_passcode_title" = "Local passcode";
@@ -401,6 +416,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_theme_reverting#other" = "Reverting to the old theme in {count} seconds.";
"lng_theme_keep_changes" = "Keep changes";
"lng_theme_revert" = "Revert";
"lng_theme_no_desktop" = "Sorry, this theme doesn't include a version for Telegram Desktop.";
"lng_theme_share" = "Share";
"lng_theme_edit" = "Edit";
"lng_theme_delete" = "Delete";
"lng_theme_delete_sure" = "Are you sure you want to delete this theme?";
"lng_background_header" = "Background preview";
"lng_background_text1" = "Ah, you kids today with techno music! You should enjoy the classics, like Hasselhoff!";
"lng_background_text2" = "I can't even take you seriously right now.";
@@ -561,6 +581,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_proxy_sponsor_warning" = "This proxy may display a sponsored channel in your chat list. This doesn't reveal any of your Telegram traffic.";
"lng_settings_blocked_users" = "Blocked users";
"lng_settings_no_blocked_users" = "None";
"lng_settings_show_sessions" = "Show all sessions";
"lng_settings_export_data" = "Export Telegram data";
"lng_settings_destroy_if" = "If away for...";
@@ -593,12 +614,15 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_blocked_list_title" = "Blocked users";
"lng_blocked_list_unknown_phone" = "unknown phone number";
"lng_blocked_list_unblock" = "Unblock";
"lng_blocked_list_restart" = "Restart";
"lng_blocked_list_add" = "Block user";
"lng_blocked_list_add_title" = "Select user to block";
"lng_blocked_list_already_blocked" = "blocked already";
"lng_blocked_list_about" = "Blocked users can't send you messages or add you to groups. They will not see your profile pictures, online and last seen status.";
"lng_blocked_list_not_found" = "No users found.";
"lng_blocked_list_confirm_title" = "Block {name}";
"lng_blocked_list_confirm_text" = "Do you want to block {name} from messaging and calling you on Telegram?";
"lng_blocked_list_confirm_clear" = "Delete this chat";
"lng_blocked_list_confirm_ok" = "Block";
"lng_edit_privacy_everyone" = "Everybody";
"lng_edit_privacy_contacts" = "My contacts";
@@ -607,7 +631,19 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_edit_privacy_exceptions_count#one" = "{count} user";
"lng_edit_privacy_exceptions_count#other" = "{count} users";
"lng_edit_privacy_exceptions_add" = "Add users";
"lng_edit_privacy_exceptions_add" = "Add users or groups";
"lng_edit_privacy_phone_number_title" = "Phone number privacy";
"lng_edit_privacy_phone_number_header" = "Who can see your phone number";
"lng_edit_privacy_phone_number_warning" = "Users who already have your number saved in the contacts will also see it on Telegram.";
"lng_edit_privacy_phone_number_always_empty" = "Always share with";
"lng_edit_privacy_phone_number_never_empty" = "Never share with";
"lng_edit_privacy_phone_number_exceptions" = "These settings will override the values above.";
"lng_edit_privacy_phone_number_always_title" = "Always share with";
"lng_edit_privacy_phone_number_never_title" = "Never share with";
"lng_edit_privacy_phone_number_find" = "Who can find me by my number";
"lng_edit_privacy_phone_number_contacts" = "Users who add your number to their contacts will see it on Telegram only if they are your contacts.";
"lng_edit_privacy_lastseen_title" = "Last seen privacy";
"lng_edit_privacy_lastseen_header" = "Who can see your last seen time";
@@ -675,7 +711,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_self_destruct_years#other" = "{count} years";
"lng_change_phone_title" = "Change phone number";
"lng_change_phone_description" = "You can change your Telegram number\nhere. Your account and all your cloud data\n— messages, media, contacts, etc. will be\nmoved to the new number.\n\n[b]Important[/b]: all your Telegram contacts will\nget your [b]new number[/b] added to their address\nbook, provided they had your old number and\nyou haven't blocked them in Telegram.";
"lng_change_phone_about" = "You can change your Telegram number\nhere. Your account and all your cloud data\n— messages, media, contacts, etc. will be\nmoved to the new number.\n\n**Important**: all your Telegram contacts will\nget your **new number** added to their address\nbook, provided they had your old number and\nyou haven't blocked them in Telegram.";
"lng_change_phone_warning" = "All your Telegram contacts will get your new number added to their address book, provided they had your old number and you haven't blocked them in Telegram.";
"lng_change_phone_occupied" = "The number {phone} is already connected to a Telegram account. Please delete that account before migrating to the new number.";
"lng_change_phone_button" = "Change number";
@@ -766,9 +802,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_profile_info_section" = "Info";
"lng_info_tab_media" = "Media";
"lng_info_mobile_label" = "Mobile";
"lng_info_mobile_hidden" = "Hidden";
"lng_info_username_label" = "Username";
"lng_info_bio_label" = "Bio";
"lng_info_link_label" = "Link";
"lng_info_location_label" = "Location";
"lng_info_about_label" = "About";
"lng_info_user_title" = "User Info";
"lng_info_bot_title" = "Bot Info";
@@ -776,7 +814,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_info_channel_title" = "Channel Info";
"lng_profile_enable_notifications" = "Notifications";
"lng_profile_send_message" = "Send Message";
"lng_info_add_as_contact" = "Add as contact";
"lng_info_add_as_contact" = "Add to contacts";
"lng_profile_shared_media" = "Shared media";
"lng_media_type_photos" = "Photos";
"lng_media_type_videos" = "Videos";
@@ -833,9 +871,34 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_manage_peer_group_type" = "Group type";
"lng_manage_peer_channel_type" = "Channel type";
"lng_manage_peer_link_type" = "Link type";
"lng_manage_peer_link_permanent" = "Permanent link";
"lng_manage_peer_link_invite" = "Invite link";
"lng_manage_private_group_title" = "Private";
"lng_manage_public_group_title" = "Public";
"lng_manage_private_peer_title" = "Private";
"lng_manage_public_peer_title" = "Public";
"lng_manage_discussion_group" = "Discussion";
"lng_manage_discussion_group_add" = "Add a group";
"lng_manage_linked_channel" = "Linked channel";
"lng_manage_linked_channel_restore" = "Restore linked channel";
"lng_manage_discussion_group_about" = "Select a group chat for discussion that will be displayed in your channel.";
"lng_manage_discussion_group_about_chosen" = "A link to {group} is shown to all subscribers in the bottom panel.";
"lng_manage_discussion_group_create" = "Create a new group";
"lng_manage_discussion_group_unlink" = "Unlink group";
"lng_manage_discussion_group_posted" = "Everything you post in the channel is forwarded to this group.";
"lng_manage_discussion_group_sure" = "Do you want to make {group} the discussion board for {channel}?";
"lng_manage_linked_channel_private" = "Any member of this group will be able to see messages in the channel.";
"lng_manage_discussion_group_private" = "Anyone from the channel will be able to see messages in this group.";
"lng_manage_discussion_group_link" = "Link group";
"lng_manage_linked_channel_private_status" = "private channel";
"lng_manage_discussion_group_private_status" = "private group";
"lng_manage_linked_channel_about" = "{channel} is linking the group as its discussion board.";
"lng_manage_linked_channel_unlink" = "Unlink channel";
"lng_manage_linked_channel_posted" = "All new messages posted in this channel are forwarded to the group.";
"lng_manage_discussion_group_warning" = "\"Chat history for new members\" will be switched to **Visible**.";
"lng_manage_history_visibility_title" = "Chat history for new members";
"lng_manage_history_visibility_shown" = "Visible";
"lng_manage_history_visibility_shown_about" = "New members will see messages that were sent before they joined.";
@@ -892,6 +955,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_create_public_group_about" = "Anyone can find the group in search and join, chat history is available to everybody";
"lng_create_private_group_title" = "Private Group";
"lng_create_private_group_about" = "People can only join if they were invited or have an invite link";
"lng_create_permanent_link_title" = "Permanent link";
"lng_create_invite_link_title" = "Invite link";
"lng_create_invite_link_about" = "People can join if they were invited, have an invite link, or from \"Groups nearby\"";
"lng_create_group_skip" = "Skip";
"lng_create_channel_link_about" = "You can use a-z, 0-9 and underscores.\nMinimum length is 5 characters.";
@@ -1015,6 +1082,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_channels_too_much_public_revoke_confirm_group" = "Are you sure you want to revoke the link {link}?\n\nThe group «{group}» will become private.";
"lng_channels_too_much_public_revoke_confirm_channel" = "Are you sure you want to revoke the link {link}?\n\nThe channel «{group}» will become private.";
"lng_channels_too_much_public_revoke" = "Revoke";
"lng_channels_too_much_public_other" = "Sorry, the target user has too many public groups or channels already. Please ask them to make one of their existing groups or channels private first.";
"lng_channels_too_much_located_other" = "Sorry, the target user has too many location-based groups already. Please ask them to delete or transfer one of their existing ones first.";
"lng_group_invite_bad_link" = "This invite link is broken or has expired.";
"lng_group_invite_join" = "Join";
@@ -1045,6 +1114,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_edited" = "edited";
"lng_edited_date" = "Edited: {date}";
"lng_admin_badge" = "admin";
"lng_owner_badge" = "owner";
"lng_channel_badge" = "channel";
"lng_fast_reply" = "Reply";
"lng_cancel_edit_post_sure" = "Cancel editing?";
"lng_cancel_edit_post_yes" = "Yes";
@@ -1079,6 +1150,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_media_size_limit" = "Limit by size";
"lng_media_size_up_to" = "up to {size}";
"lng_media_chat_background" = "Chat background";
"lng_media_color_theme" = "Color theme";
"lng_emoji_category1" = "People";
"lng_emoji_category2" = "Nature";
@@ -1159,12 +1231,19 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_ban_user" = "Ban User";
"lng_delete_all_from" = "Delete all from this user";
"lng_report_spam" = "Report Spam";
"lng_report_spam_hide" = "Hide";
"lng_report_spam_thanks" = "Thank you for your report!";
"lng_report_spam_sure" = "Are you sure you want to report spam from this user?";
"lng_report_spam_and_leave" = "Report spam and leave";
"lng_report_spam_done" = "Thank you for your report.";
"lng_report_spam_sure_group" = "Are you sure you want to report spam in this group?";
"lng_report_spam_sure_channel" = "Are you sure you want to report spam in this channel?";
"lng_report_spam_ok" = "Report";
"lng_new_contact_block" = "Block user";
"lng_new_contact_block_done" = "{user} is now blocked.";
"lng_new_contact_add" = "Add contact";
"lng_new_contact_share" = "Share my phone number";
"lng_new_contact_share_sure" = "Are you sure you want to share your phone number {phone} with {user}?";
"lng_new_contact_share_done" = "{user} can now see your phone number.";
"lng_new_contact_add_name" = "Add {user} to contacts";
"lng_new_contact_add_done" = "{user} is now in your contact list.";
"lng_cant_send_to_not_contact" = "Sorry, you can only send messages to\nmutual contacts at the moment.\n{more_info}";
"lng_cant_invite_not_contact" = "Sorry, you can only add mutual contacts\nto groups at the moment.\n{more_info}";
"lng_cant_more_info" = "More info »";
@@ -1177,6 +1256,12 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_cant_invite_make_admin" = "Make admin";
"lng_send_button" = "Send";
"lng_send_silent_message" = "Send without sound";
"lng_schedule_message" = "Schedule message";
"lng_reminder_message" = "Set a reminder";
"lng_schedule_title" = "Send this message on...";
"lng_remind_title" = "Remind me on...";
"lng_schedule_at" = "at";
"lng_message_ph" = "Write a message...";
"lng_broadcast_ph" = "Broadcast a message...";
"lng_broadcast_silent_ph" = "Silent broadcast...";
@@ -1191,21 +1276,42 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_restart_button" = "Restart";
"lng_channel_mute" = "Mute";
"lng_channel_unmute" = "Unmute";
"lng_channel_discuss" = "Discuss";
"lng_saved_messages" = "Saved Messages";
"lng_saved_short" = "Save";
"lng_saved_forward_here" = "Forward messages here for quick access";
"lng_scheduled_messages" = "Scheduled Messages";
"lng_reminder_messages" = "Reminders";
"lng_scheduled_send_now" = "Send message now?";
"lng_scheduled_send_now_many#one" = "Send {count} message now?";
"lng_scheduled_send_now_many#other" = "Send {count} messages now?";
"lng_archived_name" = "Archived chats";
"lng_archived_add" = "Archive";
"lng_archived_remove" = "Unarchive";
"lng_archived_added" = "Chat archived.\nMuted chats will stay archived after new messages arrive.";
"lng_archived_removed" = "Chat restored from your archive.";
"lng_archived_last_list" = "{accumulated}, {chat}";
"lng_archived_last#one" = "{chats} and {count} more chat";
"lng_archived_last#other" = "{chats} and {count} more chats";
"lng_dialogs_text_with_from" = "{from_part} {message}";
"lng_dialogs_text_from_wrapped" = "{from}:";
"lng_dialogs_text_media" = "{media_part} {caption}";
"lng_dialogs_text_media_wrapped" = "{media},";
"lng_dialogs_show_all_chats" = "Show all chats";
"lng_dialogs_hide_muted_chats" = "Hide muted chats";
"lng_dialogs_skip_archive_in_search" = "Skip results from archive";
"lng_dialogs_show_archive_in_search" = "With results from archive";
"lng_open_this_link" = "Open this link?";
"lng_open_link" = "Open";
"lng_allow_bot_pass" = "Allow {bot_name} to pass your Telegram name and ID to the web pages you open via this bot?";
"lng_allow_bot" = "Allow";
"lng_url_auth_open_confirm" = "Do you want to open {link}?";
"lng_url_auth_login_option" = "Log in to {domain} as {user}";
"lng_url_auth_allow_messages" = "Allow {bot} to send me messages";
"lng_bot_start" = "Start";
"lng_bot_choose_group" = "Select a Group";
@@ -1247,7 +1353,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_user_action_upload_file" = "{user} is sending a file";
"lng_unread_bar#one" = "{count} unread message";
"lng_unread_bar#other" = "{count} unread messages";
"lng_unread_bar_some" = "Unread messages";
//"lng_unread_bar_some" = "Unread messages";
"lng_maps_point" = "Location";
"lng_save_photo" = "Save image";
@@ -1267,11 +1373,16 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_context_view_profile" = "View profile";
"lng_context_view_group" = "View group info";
"lng_context_view_channel" = "View channel info";
"lng_context_view_feed_info" = "View feed info";
//"lng_context_view_feed_info" = "View feed info";
"lng_context_pin_to_top" = "Pin to top";
"lng_context_unpin_from_top" = "Unpin from top";
"lng_context_mark_unread" = "Mark as unread";
"lng_context_mark_read" = "Mark as read";
"lng_context_archive_expand" = "Expand";
"lng_context_archive_collapse" = "Collapse";
"lng_context_archive_to_menu" = "Move to main menu";
"lng_context_archive_to_list" = "Move to chats list";
"lng_context_archive_to_menu_info" = "Archive moved to the main menu!\nYou can return it from the context menu of the archive button.";
"lng_context_promote_admin" = "Promote to admin";
"lng_context_edit_permissions" = "Edit permissions";
@@ -1303,6 +1414,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_context_reply_msg" = "Reply";
"lng_context_edit_msg" = "Edit";
"lng_context_forward_msg" = "Forward Message";
"lng_context_send_now_msg" = "Send now";
"lng_context_delete_msg" = "Delete Message";
"lng_context_select_msg" = "Select Message";
"lng_context_report_msg" = "Report Message";
@@ -1312,6 +1424,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_context_copy_selected" = "Copy Selected Text";
"lng_context_copy_selected_items" = "Copy Selected as Text";
"lng_context_forward_selected" = "Forward Selected";
"lng_context_send_now_selected" = "Send selected now";
"lng_context_delete_selected" = "Delete Selected";
"lng_context_clear_selection" = "Clear Selection";
"lng_send_image_empty" = "Could not send an empty file: {name}";
@@ -1359,6 +1472,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_contact_phone" = "Phone Number";
"lng_enter_contact_data" = "New Contact";
"lng_contact_mobile_hidden" = "Mobile hidden";
"lng_contact_phone_after" = "Phone number will be visible once {user} adds you as a contact.";
"lng_contact_share_phone" = "Share my phone number";
"lng_contact_phone_will_be_shared" = "You can make your phone visible to {user}.";
"lng_edit_contact_title" = "Edit contact name";
"lng_edit_channel_title" = "Edit channel";
"lng_edit_sign_messages" = "Sign messages";
@@ -1385,6 +1502,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_selected_clear" = "Cancel";
"lng_selected_delete" = "Delete";
"lng_selected_forward" = "Forward";
"lng_selected_send_now" = "Send now";
"lng_selected_cancel_sure_this" = "Cancel uploading?";
"lng_selected_upload_stop" = "Stop";
"lng_selected_delete_sure_this" = "Do you want to delete this message?";
@@ -1410,9 +1528,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_box_leave" = "Leave";
"lng_about_version" = "version {version}";
"lng_about_text_1" = "Official free messaging app based on [a href=\"https://core.telegram.org/api\"]Telegram API[/a]\nfor speed and security.";
"lng_about_text_2" = "This software is licensed under [a href=\"https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE\"]GNU GPL[/a] version 3.\nSource code is available on [a href=\"https://github.com/telegramdesktop/tdesktop\"]GitHub[/a].";
"lng_about_text_3" = "Visit {faq_open}Telegram FAQ{faq_close} for more info.";
"lng_about_text1" = "Official free messaging app based on {api_link}\nfor speed and security.";
"lng_about_text1_api" = "Telegram API";
"lng_about_text2" = "This software is licensed under {gpl_link} version 3.\nSource code is available on {github_link}.";
"lng_about_text3" = "Visit {faq_link} for more info.";
"lng_about_text3_faq" = "Telegram FAQ";
"lng_about_done" = "Done";
"lng_search_no_results" = "No messages found";
@@ -1432,19 +1552,23 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_mediaview_group_photo" = "Group Photo";
"lng_mediaview_channel_photo" = "Channel Photo";
"lng_mediaview_profile_photo" = "Profile Photo";
"lng_mediaview_file_n_of_count" = "{file} {n} of {count}";
"lng_mediaview_n_of_count" = "Photo {n} of {count}";
"lng_mediaview_file_n_of_amount" = "{file} {n} of {amount}";
"lng_mediaview_n_of_amount" = "Photo {n} of {amount}";
"lng_mediaview_doc_image" = "File";
"lng_mediaview_today" = "today at {time}";
"lng_mediaview_yesterday" = "yesterday at {time}";
"lng_mediaview_date_time" = "{date} at {time}";
"lng_mediaview_saved" = "Image was saved to your [c]Downloads[/c] folder";
"lng_mediaview_saved_to" = "Image was saved to your {downloads} folder";
"lng_mediaview_downloads" = "Downloads";
"lng_mediaview_video_loading" = "Loading - {percent}";
"lng_theme_preview_title" = "Theme Preview";
"lng_theme_preview_generating" = "Generating color theme preview...";
"lng_theme_preview_invalid" = "Invalid data in this theme file.";
"lng_theme_preview_apply" = "Apply this theme";
"lng_theme_preview_users#one" = "{count} person is using this theme";
"lng_theme_preview_users#other" = "{count} people are using this theme";
"lng_new_authorization" = "{name},\nWe detected a login into your account from a new device on {day}, {date} at {time}\n\nDevice: {device}\nLocation: {location}\n\nIf this wasn't you, you can go to Settings — Show all sessions and terminate that session.\n\nIf you think that somebody logged in to your account against your will, you can enable two-step verification in Settings.\n\nSincerely,\nThe Telegram Team";
@@ -1455,6 +1579,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_menu_formatting" = "Formatting";
"lng_menu_formatting_bold" = "Bold";
"lng_menu_formatting_italic" = "Italic";
"lng_menu_formatting_underline" = "Underline";
"lng_menu_formatting_strike_out" = "Strike-through";
"lng_menu_formatting_monospace" = "Monospace";
"lng_menu_formatting_link_create" = "Create link";
"lng_menu_formatting_link_edit" = "Edit link";
@@ -1486,9 +1612,26 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_theme_editor_save_palette" = "Save palette file";
"lng_theme_editor_choose_name" = "Save theme file";
"lng_theme_editor_error" = "The editor encountered an error :( See 'log.txt' for details.";
"lng_theme_editor_sure_close" = "Are you sure you want to close the editor? Your changes won't be saved.";
"lng_theme_editor_need_auth" = "You need to log in to save your theme.";
"lng_theme_editor_need_unlock" = "You need to unlock Telegram to save your theme.";
"lng_theme_editor_done" = "Theme exported successfully!";
"lng_theme_editor_title" = "Edit color palette";
"lng_theme_editor_export_button" = "Export theme";
"lng_theme_editor_save_button" = "Save theme";
"lng_theme_editor_create_title" = "Create theme";
"lng_theme_editor_attach_title" = "Attach desktop theme";
"lng_theme_editor_create" = "Create";
"lng_theme_editor_name" = "Theme name";
"lng_theme_editor_create_description" = "New theme will be based on your currently selected colors and wallpaper. Alternatively, you can import existing theme or color palette from file.";
"lng_theme_editor_attach_description" = "You can create desktop part of your theme based on your currently selected colors and wallpaper. Alternatively, you can import existing theme or color palette from file.";
"lng_theme_editor_import_existing" = "Import existing theme";
"lng_theme_editor_save_title" = "Save theme";
"lng_theme_editor_link_about" = "Your theme will be updated for all users each time you change it. Anyone can install it using this link.\n\nTheme links must be longer than 5 characters and use a-z, 0-9 and underscores.";
"lng_theme_editor_menu_export" = "Export theme";
"lng_theme_editor_menu_import" = "Import theme";
"lng_theme_editor_menu_show" = "Show palette file";
"lng_payments_not_supported" = "Sorry, Telegram Desktop doesn't support payments yet. Please use one of our mobile apps to do this.";
"lng_payments_receipt_label" = "Receipt";
@@ -1520,7 +1663,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_call_box_status_today" = "{time}";
"lng_call_box_status_yesterday" = "Yesterday at {time}";
"lng_call_box_status_date" = "{date} at {time}";
"lng_call_box_status_group" = "({count}) {status}";
"lng_call_box_status_group" = "({amount}) {status}";
"lng_call_outgoing" = "Outgoing call";
"lng_call_incoming" = "Incoming call";
@@ -1539,10 +1682,12 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_player_message_yesterday" = "Yesterday at {time}";
"lng_player_message_date" = "{date} at {time}";
//"lng_player_cant_stream" = "This file can't be played before it is fully downloaded.\n\nWould you like to download it?";
"lng_player_download" = "Download";
//"lng_player_download" = "Download";
"lng_rights_edit_admin" = "Manage permissions";
"lng_rights_edit_admin_header" = "What can this admin do?";
"lng_rights_edit_admin_rank_name" = "Custom title";
"lng_rights_edit_admin_rank_about" = "A custom title that will be shown to all members instead of '{title}'.";
"lng_rights_about_add_admins_yes" = "This admin will be able to add new admins with the same (or more limited) permissions.";
"lng_rights_about_add_admins_no" = "This admin will not be able to add new admins.";
@@ -1555,6 +1700,24 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_rights_user_restrictions" = "User restrictions";
"lng_rights_user_restrictions_header" = "What can this member do?";
"lng_rights_default_restrictions_header" = "What can members of this group do?";
"lng_rights_slowmode_header" = "Slow mode";
"lng_rights_slowmode_off" = "Off";
"lng_rights_slowmode_seconds#one" = "{count}s";
"lng_rights_slowmode_seconds#other" = "{count}s";
"lng_rights_slowmode_minutes#one" = "{count}m";
"lng_rights_slowmode_minutes#other" = "{count}m";
"lng_rights_slowmode_hours#one" = "{count}h";
"lng_rights_slowmode_hours#other" = "{count}h";
"lng_rights_slowmode_about" = "Members will be able to send only one message per this interval.";
"lng_rights_slowmode_about_interval" = "Members will be able to send only one message {interval}.";
"lng_rights_slowmode_interval_seconds#one" = "every {count} second";
"lng_rights_slowmode_interval_seconds#other" = "every {count} seconds";
"lng_rights_slowmode_interval_minutes#one" = "every {count} minute";
"lng_rights_slowmode_interval_minutes#other" = "every {count} minutes";
"lng_slowmode_enabled"= "Slow mode is enabled. You can send your next message in {left}.";
"lng_slowmode_no_many" = "Slow mode is enabled. You can't send more than one message at a time.";
"lng_slowmode_too_long" = "Sorry, this text is too long to send as one message.\n\nSlow mode is enabled. You can't send more than one message at a time.";
"lng_rights_channel_info" = "Change channel info";
"lng_rights_channel_post" = "Post messages";
@@ -1583,6 +1746,21 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_rights_chat_banned_custom" = "Custom";
"lng_rights_chat_banned_custom_date" = "Until {date}";
"lng_rights_transfer_group" = "Transfer group ownership";
"lng_rights_transfer_channel" = "Transfer channel ownership";
"lng_rights_transfer_check" = "Security check";
"lng_rights_transfer_check_about" = "You can transfer this group to {user} only if you have:";
"lng_rights_transfer_check_password" = "• Enabled **2-Step Verification** more than **7 days** ago.";
"lng_rights_transfer_check_session" = "• Logged in on this device more than **24 hours** ago.";
"lng_rights_transfer_check_later" = "Please come back later.";
"lng_rights_transfer_set_password" = "Set password";
"lng_rights_transfer_about" = "This will transfer the full **owner rights** for {group} to {user}.";
"lng_rights_transfer_sure" = "Change owner";
"lng_rights_transfer_password_title" = "Two-step verification";
"lng_rights_transfer_password_description" = "Please enter your password to complete the transfer.";
"lng_rights_transfer_done_group" = "{user} is now the owner of the group.";
"lng_rights_transfer_done_channel" = "{user} is now the owner of the channel.";
"lng_restricted_send_message" = "The admins of this group restricted you from writing here.";
"lng_restricted_send_media" = "The admins of this group restricted you from posting media content here.";
"lng_restricted_send_stickers" = "The admins of this group restricted you from posting stickers here.";
@@ -1600,6 +1778,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_exceptions_list_title" = "Exceptions";
"lng_removed_list_title" = "Removed users";
"lng_admin_log_slow_mode_seconds#one" = "{count} second";
"lng_admin_log_slow_mode_seconds#other" = "{count} seconds";
"lng_admin_log_slow_mode_minutes#one" = "{count} minute";
"lng_admin_log_slow_mode_minutes#other" = "{count} minutes";
"lng_admin_log_title_all" = "All actions";
"lng_admin_log_title_selected" = "Selected actions";
"lng_admin_log_filter" = "Filter";
@@ -1663,10 +1846,19 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_admin_log_banned" = "banned {user}";
"lng_admin_log_restricted" = "changed restrictions for {user} {until}";
"lng_admin_log_promoted" = "changed privileges for {user}";
"lng_admin_log_transferred" = "transferred ownership to {user}";
"lng_admin_log_changed_default_permissions" = "changed default permissions";
"lng_admin_log_changed_stickers_group" = "{from} changed the group's {sticker_set}";
"lng_admin_log_changed_stickers_set" = "sticker set";
"lng_admin_log_removed_stickers_group" = "{from} removed the group's sticker set";
"lng_admin_log_changed_linked_chat" = "{from} changed the discussion group to «{chat}»";
"lng_admin_log_removed_linked_chat" = "{from} removed the discussion group";
"lng_admin_log_changed_linked_channel" = "{from} changed the linked channel to «{chat}»";
"lng_admin_log_removed_linked_channel" = "{from} removed the linked channel";
"lng_admin_log_changed_location_chat" = "{from} changed the group location to {address}";
"lng_admin_log_removed_location_chat" = "{from} removed the group location";
"lng_admin_log_changed_slow_mode" = "{from} changed slow mode to {duration}";
"lng_admin_log_removed_slow_mode" = "{from} disabled slow mode";
"lng_admin_log_user_with_username" = "{name} ({mention})";
"lng_admin_log_restricted_forever" = "indefinitely";
"lng_admin_log_restricted_until" = "until {date}";
@@ -1686,32 +1878,33 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_admin_log_admin_pin_messages" = "Pin messages";
"lng_admin_log_admin_add_admins" = "Add new admins";
"lng_feed_name" = "Feed";
"lng_feed_show_next" = "Show Next";
// #feed
//"lng_feed_name" = "Feed";
//"lng_feed_show_next" = "Show Next";
"lng_feed_group" = "Group in feed";
"lng_feed_ungroup" = "Ungroup from feed";
"lng_feed_channel_added" = "Channel added to your feed.";
"lng_feed_channel_removed" = "Channel removed from your feed.";
"lng_feed_no_messages" = "No messages in this feed yet";
"lng_feed_channels#one" = "{count} channel";
"lng_feed_channels#other" = "{count} channels";
"lng_feed_notifications" = "Feed notifications";
"lng_feed_ungroup_all" = "Ungroup all channels";
"lng_feed_sure_ungroup_all" = "Are you sure you want to ungroup all channels from this feed?";
"lng_feed_ungroup_sure" = "Ungroup";
"lng_feed_create_new" = "New feed";
"lng_feed_too_few_channels#one" = "You need at least {count} channel to create a feed.";
"lng_feed_too_few_channels#other" = "You need at least {count} channels to create a feed.";
"lng_feed_select_more_channels#one" = "Select {count} channel or more.";
"lng_feed_select_more_channels#other" = "Select {count} channels or more.";
"lng_feed_create" = "Create";
"lng_feed_edit_title" = "Edit feed";
"lng_feed_channels_not_found" = "No channels found";
//"lng_feed_group" = "Group in feed";
//"lng_feed_ungroup" = "Ungroup from feed";
//"lng_feed_channel_added" = "Channel added to your feed.";
//"lng_feed_channel_removed" = "Channel removed from your feed.";
//"lng_feed_no_messages" = "No messages in this feed yet";
//"lng_feed_channels#one" = "{count} channel";
//"lng_feed_channels#other" = "{count} channels";
//"lng_feed_notifications" = "Feed notifications";
//"lng_feed_ungroup_all" = "Ungroup all channels";
//"lng_feed_sure_ungroup_all" = "Are you sure you want to ungroup all channels from this feed?";
//"lng_feed_ungroup_sure" = "Ungroup";
//"lng_feed_create_new" = "New feed";
//"lng_feed_too_few_channels#one" = "You need at least {count} channel to create a feed.";
//"lng_feed_too_few_channels#other" = "You need at least {count} channels to create a feed.";
//"lng_feed_select_more_channels#one" = "Select {count} channel or more.";
//"lng_feed_select_more_channels#other" = "Select {count} channels or more.";
//"lng_feed_create" = "Create";
//"lng_feed_edit_title" = "Edit feed";
//"lng_feed_channels_not_found" = "No channels found";
"lng_info_feed_title" = "Feed Info";
"lng_info_feed_is_default" = "Group new channels";
"lng_info_feed_channels" = "Channels";
//"lng_info_feed_title" = "Feed Info";
//"lng_info_feed_is_default" = "Group new channels";
//"lng_info_feed_channels" = "Channels";
"lng_terms_signup" = "By signing up,\nyou agree to the {link}.";
"lng_terms_signup_link" = "Terms of Service";
@@ -1909,14 +2102,14 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_export_state_userpics" = "Profile pictures";
"lng_export_state_chats_list" = "Processing chats...";
"lng_export_state_chats" = "Chats";
"lng_export_state_progress" = "{count} / {total}";
"lng_export_state_ready_progress" = "{ready} / {total}";
"lng_export_progress" = "You can close this window now. Please don't quit Telegram until the data export is completed.";
"lng_export_stop" = "Stop";
"lng_export_sure_stop" = "Are you sure you want to stop exporting your data?\n\nIf you do, you'll need to start over.";
"lng_export_about_done" = "Your data was successfully exported.";
"lng_export_done" = "Show my data";
"lng_export_finished" = "Data export completed.";
"lng_export_total_files" = "Total files: {count}.";
"lng_export_total_amount" = "Total files: {amount}.";
"lng_export_total_size" = "Total size: {size}.";
"lng_export_folder" = "Choose export folder";
"lng_export_invalid" = "Sorry, you have started a new data export, so this data export is now cancelled.";
@@ -1970,6 +2163,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_polls_create_maximum" = "You have added the maximum number of options.";
"lng_polls_create_button" = "Create";
"lng_outdated_title" = "PLEASE UPDATE YOUR OPERATING SYSTEM.";
"lng_outdated_soon" = "Otherwise, Telegram Desktop will stop updating on {date}.";
"lng_outdated_now" = "So that Telegram Desktop can update to newer versions.";
// Wnd specific
"lng_wnd_choose_program_menu" = "Choose Default Program...";
@@ -2021,4 +2218,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_mac_menu_new_channel" = "New Channel";
"lng_mac_menu_show" = "Show Telegram";
"lng_mac_touchbar_favorite_stickers" = "Favorite stickers";
// Keys finished

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
<RCC>
<qresource prefix="/gui">
<file alias="fonts/OpenSans-Regular.ttf">../fonts/OpenSans-Regular.ttf</file>
<file alias="fonts/OpenSans-Bold.ttf">../fonts/OpenSans-Bold.ttf</file>
<file alias="fonts/OpenSans-Semibold.ttf">../fonts/OpenSans-Semibold.ttf</file>
</qresource>
</RCC>

View File

@@ -1,79 +0,0 @@
<RCC>
<qresource prefix="/export">
<file alias="css/style.css">../export_html/css/style.css</file>
<file alias="images/back.png">../export_html/images/back.png</file>
<file alias="images/back@2x.png">../export_html/images/back@2x.png</file>
<file alias="images/media_call.png">../export_html/images/media_call.png</file>
<file alias="images/media_call@2x.png">../export_html/images/media_call@2x.png</file>
<file alias="images/media_contact.png">../export_html/images/media_contact.png</file>
<file alias="images/media_contact@2x.png">../export_html/images/media_contact@2x.png</file>
<file alias="images/media_file.png">../export_html/images/media_file.png</file>
<file alias="images/media_file@2x.png">../export_html/images/media_file@2x.png</file>
<file alias="images/media_game.png">../export_html/images/media_game.png</file>
<file alias="images/media_game@2x.png">../export_html/images/media_game@2x.png</file>
<file alias="images/media_location.png">../export_html/images/media_location.png</file>
<file alias="images/media_location@2x.png">../export_html/images/media_location@2x.png</file>
<file alias="images/media_music.png">../export_html/images/media_music.png</file>
<file alias="images/media_music@2x.png">../export_html/images/media_music@2x.png</file>
<file alias="images/media_photo.png">../export_html/images/media_photo.png</file>
<file alias="images/media_photo@2x.png">../export_html/images/media_photo@2x.png</file>
<file alias="images/media_shop.png">../export_html/images/media_shop.png</file>
<file alias="images/media_shop@2x.png">../export_html/images/media_shop@2x.png</file>
<file alias="images/media_video.png">../export_html/images/media_video.png</file>
<file alias="images/media_video@2x.png">../export_html/images/media_video@2x.png</file>
<file alias="images/media_voice.png">../export_html/images/media_voice.png</file>
<file alias="images/media_voice@2x.png">../export_html/images/media_voice@2x.png</file>
<file alias="images/section_calls.png">../export_html/images/section_calls.png</file>
<file alias="images/section_calls@2x.png">../export_html/images/section_calls@2x.png</file>
<file alias="images/section_chats.png">../export_html/images/section_chats.png</file>
<file alias="images/section_chats@2x.png">../export_html/images/section_chats@2x.png</file>
<file alias="images/section_contacts.png">../export_html/images/section_contacts.png</file>
<file alias="images/section_contacts@2x.png">../export_html/images/section_contacts@2x.png</file>
<file alias="images/section_frequent.png">../export_html/images/section_frequent.png</file>
<file alias="images/section_frequent@2x.png">../export_html/images/section_frequent@2x.png</file>
<file alias="images/section_other.png">../export_html/images/section_other.png</file>
<file alias="images/section_other@2x.png">../export_html/images/section_other@2x.png</file>
<file alias="images/section_photos.png">../export_html/images/section_photos.png</file>
<file alias="images/section_photos@2x.png">../export_html/images/section_photos@2x.png</file>
<file alias="images/section_sessions.png">../export_html/images/section_sessions.png</file>
<file alias="images/section_sessions@2x.png">../export_html/images/section_sessions@2x.png</file>
<file alias="images/section_web.png">../export_html/images/section_web.png</file>
<file alias="images/section_web@2x.png">../export_html/images/section_web@2x.png</file>
<file alias="js/script.js">../export_html/js/script.js</file>
</qresource>
<qresource prefix="/gui">
<file alias="fonts/OpenSans-Regular.ttf">../fonts/OpenSans-Regular.ttf</file>
<file alias="fonts/OpenSans-Bold.ttf">../fonts/OpenSans-Bold.ttf</file>
<file alias="fonts/OpenSans-Semibold.ttf">../fonts/OpenSans-Semibold.ttf</file>
<file alias="art/bg.jpg">../art/bg.jpg</file>
<file alias="art/bg_initial.jpg">../art/bg_initial.jpg</file>
<file alias="art/logo_256.png">../art/logo_256.png</file>
<file alias="art/logo_256_no_margin.png">../art/logo_256_no_margin.png</file>
<file alias="art/sunrise.jpg">../art/sunrise.jpg</file>
<file alias="day-blue.tdesktop-theme">../day-blue.tdesktop-theme</file>
<file alias="night.tdesktop-theme">../night.tdesktop-theme</file>
<file alias="night-green.tdesktop-theme">../night-green.tdesktop-theme</file>
</qresource>
<qresource prefix="/sounds">
<file alias="msg_incoming.mp3">../sounds/msg_incoming.mp3</file>
<file alias="call_incoming.mp3">../sounds/call_incoming.mp3</file>
<file alias="call_outgoing.mp3">../sounds/call_outgoing.mp3</file>
<file alias="call_busy.mp3">../sounds/call_busy.mp3</file>
<file alias="call_connect.mp3">../sounds/call_connect.mp3</file>
<file alias="call_end.mp3">../sounds/call_end.mp3</file>
</qresource>
<qresource prefix="/qt-project.org">
<file>qmime/freedesktop.org.xml</file>
</qresource>
<qresource prefix="/misc">
<file alias="default_shortcuts-custom.json">../default_shortcuts-custom.json</file>
</qresource>
<qresource prefix="/langs">
<file alias="lang_it.strings">../langs/lang_it.strings</file>
<file alias="lang_es.strings">../langs/lang_es.strings</file>
<file alias="lang_de.strings">../langs/lang_de.strings</file>
<file alias="lang_nl.strings">../langs/lang_nl.strings</file>
<file alias="lang_pt_BR.strings">../langs/lang_pt_BR.strings</file>
<file alias="lang_ko.strings">../langs/lang_ko.strings</file>
</qresource>
</RCC>

View File

@@ -0,0 +1,10 @@
<RCC>
<qresource prefix="/sounds">
<file alias="msg_incoming.mp3">../../sounds/msg_incoming.mp3</file>
<file alias="call_busy.mp3">../../sounds/call_busy.mp3</file>
<file alias="call_connect.mp3">../../sounds/call_connect.mp3</file>
<file alias="call_end.mp3">../../sounds/call_end.mp3</file>
<file alias="call_incoming.mp3">../../sounds/call_incoming.mp3</file>
<file alias="call_outgoing.mp3">../../sounds/call_outgoing.mp3</file>
</qresource>
</RCC>

View File

@@ -0,0 +1,60 @@
<RCC>
<qresource prefix="/export">
<file alias="css/style.css">../../export_html/css/style.css</file>
<file alias="images/back.png">../../export_html/images/back.png</file>
<file alias="images/back@2x.png">../../export_html/images/back@2x.png</file>
<file alias="images/media_call.png">../../export_html/images/media_call.png</file>
<file alias="images/media_call@2x.png">../../export_html/images/media_call@2x.png</file>
<file alias="images/media_contact.png">../../export_html/images/media_contact.png</file>
<file alias="images/media_contact@2x.png">../../export_html/images/media_contact@2x.png</file>
<file alias="images/media_file.png">../../export_html/images/media_file.png</file>
<file alias="images/media_file@2x.png">../../export_html/images/media_file@2x.png</file>
<file alias="images/media_game.png">../../export_html/images/media_game.png</file>
<file alias="images/media_game@2x.png">../../export_html/images/media_game@2x.png</file>
<file alias="images/media_location.png">../../export_html/images/media_location.png</file>
<file alias="images/media_location@2x.png">../../export_html/images/media_location@2x.png</file>
<file alias="images/media_music.png">../../export_html/images/media_music.png</file>
<file alias="images/media_music@2x.png">../../export_html/images/media_music@2x.png</file>
<file alias="images/media_photo.png">../../export_html/images/media_photo.png</file>
<file alias="images/media_photo@2x.png">../../export_html/images/media_photo@2x.png</file>
<file alias="images/media_shop.png">../../export_html/images/media_shop.png</file>
<file alias="images/media_shop@2x.png">../../export_html/images/media_shop@2x.png</file>
<file alias="images/media_video.png">../../export_html/images/media_video.png</file>
<file alias="images/media_video@2x.png">../../export_html/images/media_video@2x.png</file>
<file alias="images/media_voice.png">../../export_html/images/media_voice.png</file>
<file alias="images/media_voice@2x.png">../../export_html/images/media_voice@2x.png</file>
<file alias="images/section_calls.png">../../export_html/images/section_calls.png</file>
<file alias="images/section_calls@2x.png">../../export_html/images/section_calls@2x.png</file>
<file alias="images/section_chats.png">../../export_html/images/section_chats.png</file>
<file alias="images/section_chats@2x.png">../../export_html/images/section_chats@2x.png</file>
<file alias="images/section_contacts.png">../../export_html/images/section_contacts.png</file>
<file alias="images/section_contacts@2x.png">../../export_html/images/section_contacts@2x.png</file>
<file alias="images/section_frequent.png">../../export_html/images/section_frequent.png</file>
<file alias="images/section_frequent@2x.png">../../export_html/images/section_frequent@2x.png</file>
<file alias="images/section_other.png">../../export_html/images/section_other.png</file>
<file alias="images/section_other@2x.png">../../export_html/images/section_other@2x.png</file>
<file alias="images/section_photos.png">../../export_html/images/section_photos.png</file>
<file alias="images/section_photos@2x.png">../../export_html/images/section_photos@2x.png</file>
<file alias="images/section_sessions.png">../../export_html/images/section_sessions.png</file>
<file alias="images/section_sessions@2x.png">../../export_html/images/section_sessions@2x.png</file>
<file alias="images/section_web.png">../../export_html/images/section_web.png</file>
<file alias="images/section_web@2x.png">../../export_html/images/section_web@2x.png</file>
<file alias="js/script.js">../../export_html/js/script.js</file>
</qresource>
<qresource prefix="/gui">
<file alias="art/bg.jpg">../../art/bg.jpg</file>
<file alias="art/bg_initial.jpg">../../art/bg_initial.jpg</file>
<file alias="art/logo_256.png">../../art/logo_256.png</file>
<file alias="art/logo_256_no_margin.png">../../art/logo_256_no_margin.png</file>
<file alias="art/sunrise.jpg">../../art/sunrise.jpg</file>
<file alias="day-blue.tdesktop-theme">../../day-blue.tdesktop-theme</file>
<file alias="night.tdesktop-theme">../../night.tdesktop-theme</file>
<file alias="night-green.tdesktop-theme">../../night-green.tdesktop-theme</file>
</qresource>
<qresource prefix="/qt-project.org">
<file>../qmime/freedesktop.org.xml</file>
</qresource>
<qresource prefix="/misc">
<file alias="default_shortcuts-custom.json">../../default_shortcuts-custom.json</file>
</qresource>
</RCC>

View File

@@ -1,10 +0,0 @@
<RCC>
<qresource prefix="/sounds">
<file alias="msg_incoming.mp3">../sounds/msg_incoming.mp3</file>
<file alias="call_busy.mp3">../sounds/call_busy.mp3</file>
<file alias="call_connect.mp3">../sounds/call_connect.mp3</file>
<file alias="call_end.mp3">../sounds/call_end.mp3</file>
<file alias="call_incoming.mp3">../sounds/call_incoming.mp3</file>
<file alias="call_outgoing.mp3">../sounds/call_outgoing.mp3</file>
</qresource>
</RCC>

View File

@@ -1,7 +1,3 @@
// Core types (no need to gen)
//vector#1cb5c415 {t:Type} # [ t ] = Vector t;
///////////////////////////////
/////////////////// Layer cons
///////////////////////////////
@@ -28,115 +24,10 @@
//invokeWithLayer18#1c900537 query:!X = X;
//invokeWithLayer#da9b0d0d layer:int query:!X = X; // after 18 layer
///////////////////////////////
/// Authorization key creation
///////////////////////////////
resPQ#05162463 nonce:int128 server_nonce:int128 pq:string server_public_key_fingerprints:Vector<long> = ResPQ;
p_q_inner_data#83c95aec pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 = P_Q_inner_data;
p_q_inner_data_dc#a9f55f95 pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 dc:int = P_Q_inner_data;
p_q_inner_data_temp#3c6a84d4 pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 expires_in:int = P_Q_inner_data;
p_q_inner_data_temp_dc#56fddf88 pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 dc:int expires_in:int = P_Q_inner_data;
server_DH_params_fail#79cb045d nonce:int128 server_nonce:int128 new_nonce_hash:int128 = Server_DH_Params;
server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params;
server_DH_inner_data#b5890dba nonce:int128 server_nonce:int128 g:int dh_prime:string g_a:string server_time:int = Server_DH_inner_data;
client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data;
dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer;
dh_gen_retry#46dc1fb9 nonce:int128 server_nonce:int128 new_nonce_hash2:int128 = Set_client_DH_params_answer;
dh_gen_fail#a69dae02 nonce:int128 server_nonce:int128 new_nonce_hash3:int128 = Set_client_DH_params_answer;
destroy_auth_key_ok#f660e1d4 = DestroyAuthKeyRes;
destroy_auth_key_none#0a9f2259 = DestroyAuthKeyRes;
destroy_auth_key_fail#ea109b13 = DestroyAuthKeyRes;
---functions---
req_pq#60469778 nonce:int128 = ResPQ;
req_pq_multi#be7e8ef1 nonce:int128 = ResPQ;
req_DH_params#d712e4be nonce:int128 server_nonce:int128 p:string q:string public_key_fingerprint:long encrypted_data:string = Server_DH_Params;
set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer;
destroy_auth_key#d1435160 = DestroyAuthKeyRes;
///////////////////////////////
////////////// System messages
///////////////////////////////
---types---
msgs_ack#62d6b459 msg_ids:Vector<long> = MsgsAck;
bad_msg_notification#a7eff811 bad_msg_id:long bad_msg_seqno:int error_code:int = BadMsgNotification;
bad_server_salt#edab447b bad_msg_id:long bad_msg_seqno:int error_code:int new_server_salt:long = BadMsgNotification;
msgs_state_req#da69fb52 msg_ids:Vector<long> = MsgsStateReq;
msgs_state_info#04deb57d req_msg_id:long info:string = MsgsStateInfo;
msgs_all_info#8cc0d131 msg_ids:Vector<long> info:string = MsgsAllInfo;
msg_detailed_info#276d3ec6 msg_id:long answer_msg_id:long bytes:int status:int = MsgDetailedInfo;
msg_new_detailed_info#809db6df answer_msg_id:long bytes:int status:int = MsgDetailedInfo;
msg_resend_req#7d861a08 msg_ids:Vector<long> = MsgResendReq;
//rpc_result#f35c6d01 req_msg_id:long result:Object = RpcResult; // parsed manually
rpc_error#2144ca19 error_code:int error_message:string = RpcError;
rpc_answer_unknown#5e2ad36e = RpcDropAnswer;
rpc_answer_dropped_running#cd78e586 = RpcDropAnswer;
rpc_answer_dropped#a43ad8b7 msg_id:long seq_no:int bytes:int = RpcDropAnswer;
future_salt#0949d9dc valid_since:int valid_until:int salt:long = FutureSalt;
future_salts#ae500895 req_msg_id:long now:int salts:vector<future_salt> = FutureSalts;
pong#347773c5 msg_id:long ping_id:long = Pong;
destroy_session_ok#e22045fc session_id:long = DestroySessionRes;
destroy_session_none#62d350c9 session_id:long = DestroySessionRes;
new_session_created#9ec20908 first_msg_id:long unique_id:long server_salt:long = NewSession;
//message msg_id:long seqno:int bytes:int body:Object = Message; // parsed manually
//msg_container#73f1f8dc messages:vector<message> = MessageContainer; // parsed manually
//msg_copy#e06046b2 orig_message:Message = MessageCopy; // parsed manually, not used - use msg_container
//gzip_packed#3072cfa1 packed_data:string = Object; // parsed manually
http_wait#9299359f max_delay:int wait_after:int max_wait:int = HttpWait;
//ipPort ipv4:int port:int = IpPort;
//help.configSimple#d997c3c5 date:int expires:int dc_id:int ip_port_list:Vector<ipPort> = help.ConfigSimple;
ipPort#d433ad73 ipv4:int port:int = IpPort;
ipPortSecret#37982646 ipv4:int port:int secret:bytes = IpPort;
accessPointRule#4679b65f phone_prefix_rules:string dc_id:int ips:vector<IpPort> = AccessPointRule;
help.configSimple#5a592a6c date:int expires:int rules:vector<AccessPointRule> = help.ConfigSimple;
---functions---
rpc_drop_answer#58e4a740 req_msg_id:long = RpcDropAnswer;
get_future_salts#b921bd04 num:int = FutureSalts;
ping#7abe77ec ping_id:long = Pong;
ping_delay_disconnect#f3427b8c ping_id:long disconnect_delay:int = Pong;
destroy_session#e7512126 session_id:long = DestroySessionRes;
contest.saveDeveloperInfo#9a5f6e95 vk_id:int name:string phone_number:string age:int city:string = Bool;
///////////////////////////////
///////// Main application API
///////////////////////////////
---types---
boolFalse#bc799737 = Bool;
boolTrue#997275b5 = Bool;
@@ -153,10 +44,13 @@ inputPeerSelf#7da07ec9 = InputPeer;
inputPeerChat#179be863 chat_id:int = InputPeer;
inputPeerUser#7b8e7de6 user_id:int access_hash:long = InputPeer;
inputPeerChannel#20adaef8 channel_id:int access_hash:long = InputPeer;
inputPeerUserFromMessage#17bae2e6 peer:InputPeer msg_id:int user_id:int = InputPeer;
inputPeerChannelFromMessage#9c95f7bb peer:InputPeer msg_id:int channel_id:int = InputPeer;
inputUserEmpty#b98886cf = InputUser;
inputUserSelf#f7c1b13f = InputUser;
inputUser#d8292816 user_id:int access_hash:long = InputUser;
inputUserFromMessage#2d117597 peer:InputPeer msg_id:int user_id:int = InputUser;
inputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;
@@ -214,7 +108,7 @@ storage.fileMp4#b3cea0e4 = storage.FileType;
storage.fileWebp#1081464c = storage.FileType;
userEmpty#200250ba id:int = User;
user#2e13f4c3 flags:# self:flags.10?true contact:flags.11?true mutual_contact:flags.12?true deleted:flags.13?true bot:flags.14?true bot_chat_history:flags.15?true bot_nochats:flags.16?true verified:flags.17?true restricted:flags.18?true min:flags.20?true bot_inline_geo:flags.21?true support:flags.23?true id:int access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int restriction_reason:flags.18?string bot_inline_placeholder:flags.19?string lang_code:flags.22?string = User;
user#938458c1 flags:# self:flags.10?true contact:flags.11?true mutual_contact:flags.12?true deleted:flags.13?true bot:flags.14?true bot_chat_history:flags.15?true bot_nochats:flags.16?true verified:flags.17?true restricted:flags.18?true min:flags.20?true bot_inline_geo:flags.21?true support:flags.23?true scam:flags.24?true id:int access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int restriction_reason:flags.18?Vector<RestrictionReason> bot_inline_placeholder:flags.19?string lang_code:flags.22?string = User;
userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
userProfilePhoto#ecd75d8c photo_id:long photo_small:FileLocation photo_big:FileLocation dc_id:int = UserProfilePhoto;
@@ -229,11 +123,11 @@ userStatusLastMonth#77ebc742 = UserStatus;
chatEmpty#9ba2d800 id:int = Chat;
chat#3bda1bde flags:# creator:flags.0?true kicked:flags.1?true left:flags.2?true deactivated:flags.5?true id:int title:string photo:ChatPhoto participants_count:int date:int version:int migrated_to:flags.6?InputChannel admin_rights:flags.14?ChatAdminRights default_banned_rights:flags.18?ChatBannedRights = Chat;
chatForbidden#7328bdb id:int title:string = Chat;
channel#4df30834 flags:# creator:flags.0?true left:flags.2?true broadcast:flags.5?true verified:flags.7?true megagroup:flags.8?true restricted:flags.9?true signatures:flags.11?true min:flags.12?true id:int access_hash:flags.13?long title:string username:flags.6?string photo:ChatPhoto date:int version:int restriction_reason:flags.9?string admin_rights:flags.14?ChatAdminRights banned_rights:flags.15?ChatBannedRights default_banned_rights:flags.18?ChatBannedRights participants_count:flags.17?int = Chat;
channel#d31a961e flags:# creator:flags.0?true left:flags.2?true broadcast:flags.5?true verified:flags.7?true megagroup:flags.8?true restricted:flags.9?true signatures:flags.11?true min:flags.12?true scam:flags.19?true has_link:flags.20?true has_geo:flags.21?true slowmode_enabled:flags.22?true id:int access_hash:flags.13?long title:string username:flags.6?string photo:ChatPhoto date:int version:int restriction_reason:flags.9?Vector<RestrictionReason> admin_rights:flags.14?ChatAdminRights banned_rights:flags.15?ChatBannedRights default_banned_rights:flags.18?ChatBannedRights participants_count:flags.17?int = Chat;
channelForbidden#289da732 flags:# broadcast:flags.5?true megagroup:flags.8?true id:int access_hash:long title:string until_date:flags.16?int = Chat;
chatFull#22a235da flags:# can_set_username:flags.7?true id:int about:string participants:ChatParticipants chat_photo:flags.2?Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:flags.3?Vector<BotInfo> pinned_msg_id:flags.6?int = ChatFull;
channelFull#1c87a71a flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_view_stats:flags.12?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int = ChatFull;
chatFull#1b7c9db3 flags:# can_set_username:flags.7?true has_scheduled:flags.8?true id:int about:string participants:ChatParticipants chat_photo:flags.2?Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:flags.3?Vector<BotInfo> pinned_msg_id:flags.6?int folder_id:flags.11?int = ChatFull;
channelFull#2d895c74 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_view_stats:flags.12?true can_set_location:flags.16?true has_scheduled:flags.19?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?int location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int pts:int = ChatFull;
chatParticipant#c8d7493e user_id:int inviter_id:int date:int = ChatParticipant;
chatParticipantCreator#da13538a user_id:int = ChatParticipant;
@@ -246,8 +140,8 @@ chatPhotoEmpty#37c1011c = ChatPhoto;
chatPhoto#475cdbd5 photo_small:FileLocation photo_big:FileLocation dc_id:int = ChatPhoto;
messageEmpty#83e5de54 id:int = Message;
message#44f9b43d flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true id:int from_id:flags.8?int to_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?int reply_to_msg_id:flags.3?int date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long = Message;
messageService#9e19a1f6 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true id:int from_id:flags.8?int to_id:Peer reply_to_msg_id:flags.3?int date:int action:MessageAction = Message;
message#452c0e65 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true id:int from_id:flags.8?int to_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?int reply_to_msg_id:flags.3?int date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long restriction_reason:flags.22?Vector<RestrictionReason> = Message;
messageService#9e19a1f6 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true legacy:flags.19?true id:int from_id:flags.8?int to_id:Peer reply_to_msg_id:flags.3?int date:int action:MessageAction = Message;
messageMediaEmpty#3ded6320 = MessageMedia;
messageMediaPhoto#695150d7 flags:# photo:flags.0?Photo ttl_seconds:flags.2?int = MessageMedia;
@@ -286,7 +180,8 @@ messageActionSecureValuesSentMe#1b287353 values:Vector<SecureValue> credentials:
messageActionSecureValuesSent#d95c6154 types:Vector<SecureValueType> = MessageAction;
messageActionContactSignUp#f3f25f76 = MessageAction;
dialog#e4def5db flags:# pinned:flags.2?true unread_mark:flags.3?true peer:Peer top_message:int read_inbox_max_id:int read_outbox_max_id:int unread_count:int unread_mentions_count:int notify_settings:PeerNotifySettings pts:flags.0?int draft:flags.1?DraftMessage = Dialog;
dialog#2c171f72 flags:# pinned:flags.2?true unread_mark:flags.3?true peer:Peer top_message:int read_inbox_max_id:int read_outbox_max_id:int unread_count:int unread_mentions_count:int notify_settings:PeerNotifySettings pts:flags.0?int draft:flags.1?DraftMessage folder_id:flags.4?int = Dialog;
dialogFolder#71bd134c flags:# pinned:flags.2?true folder:Folder peer:Peer top_message:int unread_muted_peers_count:int unread_unmuted_peers_count:int unread_muted_messages_count:int unread_unmuted_messages_count:int = Dialog;
photoEmpty#2331b22d id:long = Photo;
photo#d07504a5 flags:# has_stickers:flags.0?true id:long access_hash:long file_reference:bytes date:int sizes:Vector<PhotoSize> dc_id:int = Photo;
@@ -299,11 +194,10 @@ photoStrippedSize#e0b0bc2e type:string bytes:bytes = PhotoSize;
geoPointEmpty#1117dd5f = GeoPoint;
geoPoint#296f104 long:double lat:double access_hash:long = GeoPoint;
auth.checkedPhone#811ea28e phone_registered:Bool = auth.CheckedPhone;
auth.sentCode#38faab5f flags:# phone_registered:flags.0?true type:auth.SentCodeType phone_code_hash:string next_type:flags.1?auth.CodeType timeout:flags.2?int terms_of_service:flags.3?help.TermsOfService = auth.SentCode;
auth.sentCode#5e002502 flags:# type:auth.SentCodeType phone_code_hash:string next_type:flags.1?auth.CodeType timeout:flags.2?int = auth.SentCode;
auth.authorization#cd050916 flags:# tmp_sessions:flags.0?int user:User = auth.Authorization;
auth.authorizationSignUpRequired#44747e9a flags:# terms_of_service:flags.0?help.TermsOfService = auth.Authorization;
auth.exportedAuthorization#df969c2d id:int bytes:bytes = auth.ExportedAuthorization;
@@ -316,7 +210,7 @@ inputPeerNotifySettings#9c3d198e flags:# show_previews:flags.0?Bool silent:flags
peerNotifySettings#af509d20 flags:# show_previews:flags.0?Bool silent:flags.1?Bool mute_until:flags.2?int sound:flags.3?string = PeerNotifySettings;
peerSettings#818426cd flags:# report_spam:flags.0?true = PeerSettings;
peerSettings#818426cd flags:# report_spam:flags.0?true add_contact:flags.1?true block_contact:flags.2?true share_contact:flags.3?true need_contacts_exception:flags.4?true report_geo:flags.5?true = PeerSettings;
wallPaper#a437c3ed id:long flags:# creator:flags.0?true default:flags.1?true pattern:flags.3?true dark:flags.4?true access_hash:long slug:string document:Document settings:flags.2?WallPaperSettings = WallPaper;
@@ -326,8 +220,9 @@ inputReportReasonPornography#2e59d922 = ReportReason;
inputReportReasonChildAbuse#adf44ee3 = ReportReason;
inputReportReasonOther#e1746d0a text:string = ReportReason;
inputReportReasonCopyright#9b89f93a = ReportReason;
inputReportReasonGeoIrrelevant#dbd4feed = ReportReason;
userFull#8ea4a881 flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true user:User about:flags.1?string link:contacts.Link profile_photo:flags.2?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int = UserFull;
userFull#edf17c12 flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true user:User about:flags.1?string settings:PeerSettings profile_photo:flags.2?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int = UserFull;
contact#f911c994 user_id:int mutual:Bool = Contact;
@@ -337,8 +232,6 @@ contactBlocked#561bc879 user_id:int date:int = ContactBlocked;
contactStatus#d3680c61 user_id:int status:UserStatus = ContactStatus;
contacts.link#3ace484c my_link:ContactLink foreign_link:ContactLink user:User = contacts.Link;
contacts.contactsNotModified#b74ba9d2 = contacts.Contacts;
contacts.contacts#eae87e42 contacts:Vector<Contact> saved_count:int users:Vector<User> = contacts.Contacts;
@@ -352,7 +245,7 @@ messages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<
messages.dialogsNotModified#f0e3e596 count:int = messages.Dialogs;
messages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
messages.messagesSlice#a6c47aaa flags:# inexact:flags.1?true count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
messages.messagesSlice#c8edce1e flags:# inexact:flags.1?true count:int next_rate:flags.0?int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
messages.channelMessages#99262e37 flags:# inexact:flags.1?true pts:int count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;
messages.messagesNotModified#74535f21 count:int = messages.Messages;
@@ -389,7 +282,6 @@ updateChatParticipants#7761198 participants:ChatParticipants = Update;
updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update;
updateUserName#a7332b73 user_id:int first_name:string last_name:string username:string = Update;
updateUserPhoto#95313b0c user_id:int date:int photo:UserProfilePhoto previous:Bool = Update;
updateContactLink#9d2e67c5 user_id:int my_link:ContactLink foreign_link:ContactLink = Update;
updateNewEncryptedMessage#12bcbd9a message:EncryptedMessage qts:int = Update;
updateEncryptedChatTyping#1710f156 chat_id:int = Update;
updateEncryption#b4a2e88d chat:EncryptedChat date:int = Update;
@@ -402,14 +294,14 @@ updateNotifySettings#bec268ef peer:NotifyPeer notify_settings:PeerNotifySettings
updateServiceNotification#ebe46819 flags:# popup:flags.0?true inbox_date:flags.1?int type:string message:string media:MessageMedia entities:Vector<MessageEntity> = Update;
updatePrivacy#ee3b272a key:PrivacyKey rules:Vector<PrivacyRule> = Update;
updateUserPhone#12b9417b user_id:int phone:string = Update;
updateReadHistoryInbox#9961fd5c peer:Peer max_id:int pts:int pts_count:int = Update;
updateReadHistoryInbox#9c974fdf flags:# folder_id:flags.0?int peer:Peer max_id:int still_unread_count:int pts:int pts_count:int = Update;
updateReadHistoryOutbox#2f2f21bf peer:Peer max_id:int pts:int pts_count:int = Update;
updateWebPage#7f891213 webpage:WebPage pts:int pts_count:int = Update;
updateReadMessagesContents#68c13933 messages:Vector<int> pts:int pts_count:int = Update;
updateChannelTooLong#eb0467fb flags:# channel_id:int pts:flags.0?int = Update;
updateChannel#b6d45656 channel_id:int = Update;
updateNewChannelMessage#62ba04d9 message:Message pts:int pts_count:int = Update;
updateReadChannelInbox#4214f37f channel_id:int max_id:int = Update;
updateReadChannelInbox#330b5424 flags:# folder_id:flags.0?int channel_id:int max_id:int still_unread_count:int pts:int = Update;
updateDeleteChannelMessages#c37521c9 channel_id:int messages:Vector<int> pts:int pts_count:int = Update;
updateChannelMessageViews#98a12b4b channel_id:int id:int views:int = Update;
updateChatParticipantAdmin#b6901959 chat_id:int user_id:int is_admin:Bool version:int = Update;
@@ -431,8 +323,8 @@ updateRecentStickers#9a422c20 = Update;
updateConfig#a229dd06 = Update;
updatePtsChanged#3354678f = Update;
updateChannelWebPage#40771900 channel_id:int webpage:WebPage pts:int pts_count:int = Update;
updateDialogPinned#19d27f3c flags:# pinned:flags.0?true peer:DialogPeer = Update;
updatePinnedDialogs#ea4cb65b flags:# order:flags.0?Vector<DialogPeer> = Update;
updateDialogPinned#6e6fe51c flags:# pinned:flags.0?true folder_id:flags.1?int peer:DialogPeer = Update;
updatePinnedDialogs#fa0f3ca2 flags:# folder_id:flags.1?int order:flags.0?Vector<DialogPeer> = Update;
updateBotWebhookJSON#8317c0c3 data:DataJSON = Update;
updateBotWebhookJSONQuery#9b9240a6 query_id:long data:DataJSON timeout:int = Update;
updateBotShippingQuery#e0cdc940 query_id:long user_id:int payload:bytes shipping_address:PostAddress = Update;
@@ -449,6 +341,12 @@ updateUserPinnedMessage#4c43da18 user_id:int id:int = Update;
updateChatPinnedMessage#e10db349 chat_id:int id:int version:int = Update;
updateMessagePoll#aca1657b flags:# poll_id:long poll:flags.0?Poll results:PollResults = Update;
updateChatDefaultBannedRights#54c01850 peer:Peer default_banned_rights:ChatBannedRights version:int = Update;
updateFolderPeers#19360dc0 folder_peers:Vector<FolderPeer> pts:int pts_count:int = Update;
updatePeerSettings#6a7e7366 peer:Peer settings:PeerSettings = Update;
updatePeerLocated#b4afcfb0 peers:Vector<PeerLocated> = Update;
updateNewScheduledMessage#39a51dfb message:Message = Update;
updateDeleteScheduledMessages#90866cee peer:Peer messages:Vector<int> = Update;
updateTheme#8216fba3 theme:Theme = Update;
updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
@@ -475,11 +373,11 @@ upload.fileCdnRedirect#f18cda44 dc_id:int file_token:bytes encryption_key:bytes
dcOption#18b7a10d flags:# ipv6:flags.0?true media_only:flags.1?true tcpo_only:flags.2?true cdn:flags.3?true static:flags.4?true id:int ip_address:string port:int secret:flags.10?bytes = DcOption;
config#e6ca25f6 flags:# phonecalls_enabled:flags.1?true default_p2p_contacts:flags.3?true preload_featured_stickers:flags.4?true ignore_phone_entities:flags.5?true revoke_pm_inbox:flags.6?true blocked_mode:flags.8?true pfs_enabled:flags.13?true date:int expires:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> dc_txt_domain_name:string chat_size_max:int megagroup_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int push_chat_period_ms:int push_chat_limit:int saved_gifs_limit:int edit_time_limit:int revoke_time_limit:int revoke_pm_time_limit:int rating_e_decay:int stickers_recent_limit:int stickers_faved_limit:int channels_read_media_period:int tmp_sessions:flags.0?int pinned_dialogs_count_max:int call_receive_timeout_ms:int call_ring_timeout_ms:int call_connect_timeout_ms:int call_packet_timeout_ms:int me_url_prefix:string autoupdate_url_prefix:flags.7?string gif_search_username:flags.9?string venue_search_username:flags.10?string img_search_username:flags.11?string static_maps_provider:flags.12?string caption_length_max:int message_length_max:int webfile_dc_id:int suggested_lang_code:flags.2?string lang_pack_version:flags.2?int base_lang_pack_version:flags.2?int = Config;
config#330b4067 flags:# phonecalls_enabled:flags.1?true default_p2p_contacts:flags.3?true preload_featured_stickers:flags.4?true ignore_phone_entities:flags.5?true revoke_pm_inbox:flags.6?true blocked_mode:flags.8?true pfs_enabled:flags.13?true date:int expires:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> dc_txt_domain_name:string chat_size_max:int megagroup_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int push_chat_period_ms:int push_chat_limit:int saved_gifs_limit:int edit_time_limit:int revoke_time_limit:int revoke_pm_time_limit:int rating_e_decay:int stickers_recent_limit:int stickers_faved_limit:int channels_read_media_period:int tmp_sessions:flags.0?int pinned_dialogs_count_max:int pinned_infolder_count_max:int call_receive_timeout_ms:int call_ring_timeout_ms:int call_connect_timeout_ms:int call_packet_timeout_ms:int me_url_prefix:string autoupdate_url_prefix:flags.7?string gif_search_username:flags.9?string venue_search_username:flags.10?string img_search_username:flags.11?string static_maps_provider:flags.12?string caption_length_max:int message_length_max:int webfile_dc_id:int suggested_lang_code:flags.2?string lang_pack_version:flags.2?int base_lang_pack_version:flags.2?int = Config;
nearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;
help.appUpdate#1da7158f flags:# popup:flags.0?true id:int version:string text:string entities:Vector<MessageEntity> document:flags.1?Document url:flags.2?string = help.AppUpdate;
help.appUpdate#1da7158f flags:# can_not_skip:flags.0?true id:int version:string text:string entities:Vector<MessageEntity> document:flags.1?Document url:flags.2?string = help.AppUpdate;
help.noAppUpdate#c45a6536 = help.AppUpdate;
help.inviteText#18cb9f78 message:string = help.InviteText;
@@ -544,6 +442,8 @@ inputPrivacyKeyPhoneCall#fabadc5f = InputPrivacyKey;
inputPrivacyKeyPhoneP2P#db9e70d2 = InputPrivacyKey;
inputPrivacyKeyForwards#a4dd4c08 = InputPrivacyKey;
inputPrivacyKeyProfilePhoto#5719bacc = InputPrivacyKey;
inputPrivacyKeyPhoneNumber#352dafa = InputPrivacyKey;
inputPrivacyKeyAddedByPhone#d1219bdd = InputPrivacyKey;
privacyKeyStatusTimestamp#bc2eab30 = PrivacyKey;
privacyKeyChatInvite#500e6dfa = PrivacyKey;
@@ -551,6 +451,8 @@ privacyKeyPhoneCall#3d662b7b = PrivacyKey;
privacyKeyPhoneP2P#39491cc8 = PrivacyKey;
privacyKeyForwards#69ec56a3 = PrivacyKey;
privacyKeyProfilePhoto#96151fed = PrivacyKey;
privacyKeyPhoneNumber#d19ae46d = PrivacyKey;
privacyKeyAddedByPhone#42ffd42b = PrivacyKey;
inputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule;
inputPrivacyValueAllowAll#184b35ce = InputPrivacyRule;
@@ -558,6 +460,8 @@ inputPrivacyValueAllowUsers#131cc67f users:Vector<InputUser> = InputPrivacyRule;
inputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule;
inputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule;
inputPrivacyValueDisallowUsers#90110467 users:Vector<InputUser> = InputPrivacyRule;
inputPrivacyValueAllowChatParticipants#4c81c1ba chats:Vector<int> = InputPrivacyRule;
inputPrivacyValueDisallowChatParticipants#d82363af chats:Vector<int> = InputPrivacyRule;
privacyValueAllowContacts#fffe1bac = PrivacyRule;
privacyValueAllowAll#65427b82 = PrivacyRule;
@@ -565,8 +469,10 @@ privacyValueAllowUsers#4d5bbe0c users:Vector<int> = PrivacyRule;
privacyValueDisallowContacts#f888fa1a = PrivacyRule;
privacyValueDisallowAll#8b73e763 = PrivacyRule;
privacyValueDisallowUsers#c7f49b7 users:Vector<int> = PrivacyRule;
privacyValueAllowChatParticipants#18be796b chats:Vector<int> = PrivacyRule;
privacyValueDisallowChatParticipants#acae0690 chats:Vector<int> = PrivacyRule;
account.privacyRules#554abb6f rules:Vector<PrivacyRule> users:Vector<User> = account.PrivacyRules;
account.privacyRules#50a04e45 rules:Vector<PrivacyRule> chats:Vector<Chat> users:Vector<User> = account.PrivacyRules;
accountDaysTTL#b8d0afdf days:int = AccountDaysTTL;
@@ -588,14 +494,9 @@ messages.allStickers#edfd405f hash:int sets:Vector<StickerSet> = messages.AllSti
messages.affectedMessages#84d19185 pts:int pts_count:int = messages.AffectedMessages;
contactLinkUnknown#5f4f9247 = ContactLink;
contactLinkNone#feedd3ad = ContactLink;
contactLinkHasPhone#268f3f59 = ContactLink;
contactLinkContact#d502c2d0 = ContactLink;
webPageEmpty#eb1477e8 id:long = WebPage;
webPagePending#c586da1c id:long date:int = WebPage;
webPage#5f07b4bc flags:# id:long url:string display_url:string hash:int type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string document:flags.9?Document cached_page:flags.10?Page = WebPage;
webPage#fa64e172 flags:# id:long url:string display_url:string hash:int type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string document:flags.9?Document documents:flags.11?Vector<Document> cached_page:flags.10?Page = WebPage;
webPageNotModified#85849473 = WebPage;
authorization#ad01d61d flags:# current:flags.0?true official_app:flags.1?true password_pending:flags.2?true hash:long device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization;
@@ -621,8 +522,9 @@ chatInvite#dfc2f58e flags:# channel:flags.0?true broadcast:flags.1?true public:f
inputStickerSetEmpty#ffb62b95 = InputStickerSet;
inputStickerSetID#9de7a269 id:long access_hash:long = InputStickerSet;
inputStickerSetShortName#861cc8a0 short_name:string = InputStickerSet;
inputStickerSetAnimatedEmoji#28703c8 = InputStickerSet;
stickerSet#eeb46f27 flags:# archived:flags.1?true official:flags.2?true masks:flags.3?true installed_date:flags.0?int id:long access_hash:long title:string short_name:string thumb:flags.4?PhotoSize thumb_dc_id:flags.4?int count:int hash:int = StickerSet;
stickerSet#eeb46f27 flags:# archived:flags.1?true official:flags.2?true masks:flags.3?true animated:flags.5?true installed_date:flags.0?int id:long access_hash:long title:string short_name:string thumb:flags.4?PhotoSize thumb_dc_id:flags.4?int count:int hash:int = StickerSet;
messages.stickerSet#b60a24a6 set:StickerSet packs:Vector<StickerPack> documents:Vector<Document> = messages.StickerSet;
@@ -638,6 +540,8 @@ keyboardButtonRequestGeoLocation#fc796b3f text:string = KeyboardButton;
keyboardButtonSwitchInline#568a748 flags:# same_peer:flags.0?true text:string query:string = KeyboardButton;
keyboardButtonGame#50f41ccf text:string = KeyboardButton;
keyboardButtonBuy#afd93fbb text:string = KeyboardButton;
keyboardButtonUrlAuth#10b78d29 flags:# text:string fwd_text:flags.0?string url:string button_id:int = KeyboardButton;
inputKeyboardButtonUrlAuth#d02e7fd4 flags:# request_write_access:flags.0?true text:string fwd_text:flags.1?string url:string bot:InputUser = KeyboardButton;
keyboardButtonRow#77608b83 buttons:Vector<KeyboardButton> = KeyboardButtonRow;
@@ -661,16 +565,20 @@ messageEntityMentionName#352dca58 offset:int length:int user_id:int = MessageEnt
inputMessageEntityMentionName#208e68c9 offset:int length:int user_id:InputUser = MessageEntity;
messageEntityPhone#9b69e34b offset:int length:int = MessageEntity;
messageEntityCashtag#4c4e743f offset:int length:int = MessageEntity;
messageEntityUnderline#9c4e7e8b offset:int length:int = MessageEntity;
messageEntityStrike#bf0693d4 offset:int length:int = MessageEntity;
messageEntityBlockquote#20df5d0 offset:int length:int = MessageEntity;
inputChannelEmpty#ee8c1e86 = InputChannel;
inputChannel#afeb712e channel_id:int access_hash:long = InputChannel;
inputChannelFromMessage#2a286531 peer:InputPeer msg_id:int channel_id:int = InputChannel;
contacts.resolvedPeer#7f077ad9 peer:Peer chats:Vector<Chat> users:Vector<User> = contacts.ResolvedPeer;
messageRange#ae30253 min_id:int max_id:int = MessageRange;
updates.channelDifferenceEmpty#3e11affb flags:# final:flags.0?true pts:int timeout:flags.1?int = updates.ChannelDifference;
updates.channelDifferenceTooLong#6a9d7b35 flags:# final:flags.0?true pts:int timeout:flags.1?int top_message:int read_inbox_max_id:int read_outbox_max_id:int unread_count:int unread_mentions_count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = updates.ChannelDifference;
updates.channelDifferenceTooLong#a4bcc6fe flags:# final:flags.0?true timeout:flags.1?int dialog:Dialog messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = updates.ChannelDifference;
updates.channelDifference#2064674e flags:# final:flags.0?true pts:int timeout:flags.1?int new_messages:Vector<Message> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> = updates.ChannelDifference;
channelMessagesFilterEmpty#94d42ee7 = ChannelMessagesFilter;
@@ -678,8 +586,8 @@ channelMessagesFilter#cd77d957 flags:# exclude_new_messages:flags.1?true ranges:
channelParticipant#15ebac1d user_id:int date:int = ChannelParticipant;
channelParticipantSelf#a3289a6d user_id:int inviter_id:int date:int = ChannelParticipant;
channelParticipantCreator#e3e2e1f9 user_id:int = ChannelParticipant;
channelParticipantAdmin#5daa6e23 flags:# can_edit:flags.0?true self:flags.1?true user_id:int inviter_id:flags.1?int promoted_by:int date:int admin_rights:ChatAdminRights = ChannelParticipant;
channelParticipantCreator#808d15a4 flags:# user_id:int rank:flags.0?string = ChannelParticipant;
channelParticipantAdmin#ccbebbaf flags:# can_edit:flags.0?true self:flags.1?true user_id:int inviter_id:flags.1?int promoted_by:int date:int admin_rights:ChatAdminRights rank:flags.2?string = ChannelParticipant;
channelParticipantBanned#1c0facaf flags:# left:flags.0?true user_id:int kicked_by:int date:int banned_rights:ChatBannedRights = ChannelParticipant;
channelParticipantsRecent#de3f3c79 = ChannelParticipantsFilter;
@@ -759,6 +667,8 @@ topPeerCategoryCorrespondents#637b7ed = TopPeerCategory;
topPeerCategoryGroups#bd17a14a = TopPeerCategory;
topPeerCategoryChannels#161d9628 = TopPeerCategory;
topPeerCategoryPhoneCalls#1e76a78c = TopPeerCategory;
topPeerCategoryForwardUsers#a8406ca9 = TopPeerCategory;
topPeerCategoryForwardChats#fbeec0f0 = TopPeerCategory;
topPeerCategoryPeers#fb834291 category:TopPeerCategory count:int peers:Vector<TopPeer> = TopPeerCategoryPeers;
@@ -878,7 +788,7 @@ payments.paymentForm#3f56aea3 flags:# can_save_credentials:flags.2?true password
payments.validatedRequestedInfo#d1451883 flags:# id:flags.0?string shipping_options:flags.1?Vector<ShippingOption> = payments.ValidatedRequestedInfo;
payments.paymentResult#4e5f810d updates:Updates = payments.PaymentResult;
payments.paymentVerficationNeeded#6b56b921 url:string = payments.PaymentResult;
payments.paymentVerificationNeeded#d8411139 url:string = payments.PaymentResult;
payments.paymentReceipt#500911e1 flags:# date:int bot_id:int invoice:Invoice provider_id:int info:flags.0?PaymentRequestedInfo shipping:flags.1?ShippingOption currency:string total_amount:long credentials_title:string users:Vector<User> = payments.PaymentReceipt;
@@ -943,6 +853,9 @@ channelAdminLogEventActionChangeStickerSet#b1c3caa7 prev_stickerset:InputSticker
channelAdminLogEventActionTogglePreHistoryHidden#5f5c95f1 new_value:Bool = ChannelAdminLogEventAction;
channelAdminLogEventActionDefaultBannedRights#2df5fc0a prev_banned_rights:ChatBannedRights new_banned_rights:ChatBannedRights = ChannelAdminLogEventAction;
channelAdminLogEventActionStopPoll#8f079643 message:Message = ChannelAdminLogEventAction;
channelAdminLogEventActionChangeLinkedChat#a26f881b prev_value:int new_value:int = ChannelAdminLogEventAction;
channelAdminLogEventActionChangeLocation#e6b76ae prev_value:ChannelLocation new_value:ChannelLocation = ChannelAdminLogEventAction;
channelAdminLogEventActionToggleSlowMode#53909779 prev_value:int new_value:int = ChannelAdminLogEventAction;
channelAdminLogEvent#3b5a3e40 id:long date:int user_id:int action:ChannelAdminLogEventAction = ChannelAdminLogEvent;
@@ -974,8 +887,10 @@ inputMessageReplyTo#bad88395 id:int = InputMessage;
inputMessagePinned#86872538 = InputMessage;
inputDialogPeer#fcaafeb7 peer:InputPeer = InputDialogPeer;
inputDialogPeerFolder#64600527 folder_id:int = InputDialogPeer;
dialogPeer#e56dbf05 peer:Peer = DialogPeer;
dialogPeerFolder#514519e2 folder_id:int = DialogPeer;
messages.foundStickerSetsNotModified#d54b65d = messages.FoundStickerSets;
messages.foundStickerSets#5108d648 hash:int sets:Vector<StickerSetCovered> = messages.FoundStickerSets;
@@ -1116,7 +1031,7 @@ inputWallPaperSlug#72091c80 slug:string = InputWallPaper;
account.wallPapersNotModified#1c199183 = account.WallPapers;
account.wallPapers#702b65a9 hash:int wallpapers:Vector<WallPaper> = account.WallPapers;
codeSettings#302f59f3 flags:# allow_flashcall:flags.0?true current_number:flags.1?true app_hash_persistent:flags.2?true app_hash:flags.3?string = CodeSettings;
codeSettings#debebe83 flags:# allow_flashcall:flags.0?true current_number:flags.1?true allow_app_hash:flags.4?true = CodeSettings;
wallPaperSettings#a12f40b8 flags:# blur:flags.1?true motion:flags.2?true background_color:flags.0?int intensity:flags.3?int = WallPaperSettings;
@@ -1135,6 +1050,34 @@ emojiLanguage#b3fb5361 lang_code:string = EmojiLanguage;
fileLocationToBeDeprecated#bc7fc6cd volume_id:long local_id:int = FileLocation;
folder#ff544e65 flags:# autofill_new_broadcasts:flags.0?true autofill_public_groups:flags.1?true autofill_new_correspondents:flags.2?true id:int title:string photo:flags.3?ChatPhoto = Folder;
inputFolderPeer#fbd2c296 peer:InputPeer folder_id:int = InputFolderPeer;
folderPeer#e9baa668 peer:Peer folder_id:int = FolderPeer;
messages.searchCounter#e844ebff flags:# inexact:flags.1?true filter:MessagesFilter count:int = messages.SearchCounter;
urlAuthResultRequest#92d33a0e flags:# request_write_access:flags.0?true bot:User domain:string = UrlAuthResult;
urlAuthResultAccepted#8f8c0e4e url:string = UrlAuthResult;
urlAuthResultDefault#a9d6db1f = UrlAuthResult;
channelLocationEmpty#bfb5ad8b = ChannelLocation;
channelLocation#209b82db geo_point:GeoPoint address:string = ChannelLocation;
peerLocated#ca461b5d peer:Peer expires:int distance:int = PeerLocated;
restrictionReason#d072acb4 platform:string reason:string text:string = RestrictionReason;
inputTheme#3c5693e9 id:long access_hash:long = InputTheme;
inputThemeSlug#f5890df1 slug:string = InputTheme;
themeDocumentNotModified#483d270c = Theme;
theme#f7d90ce0 flags:# creator:flags.0?true default:flags.1?true id:long access_hash:long slug:string title:string document:flags.2?Document installs_count:int = Theme;
account.themesNotModified#f41eb622 = account.Themes;
account.themes#7f676421 hash:int themes:Vector<Theme> = account.Themes;
---functions---
invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
@@ -1146,7 +1089,7 @@ invokeWithMessagesRange#365275f2 {X:Type} range:MessageRange query:!X = X;
invokeWithTakeout#aca9fd2e {X:Type} takeout_id:long query:!X = X;
auth.sendCode#a677244f phone_number:string api_id:int api_hash:string settings:CodeSettings = auth.SentCode;
auth.signUp#1b067634 phone_number:string phone_code_hash:string phone_code:string first_name:string last_name:string = auth.Authorization;
auth.signUp#80eee427 phone_number:string phone_code_hash:string first_name:string last_name:string = auth.Authorization;
auth.signIn#bcd51581 phone_number:string phone_code_hash:string phone_code:string = auth.Authorization;
auth.logOut#5717da40 = Bool;
auth.resetAuthorizations#9fab0d1a = Bool;
@@ -1161,7 +1104,7 @@ auth.resendCode#3ef1a9bf phone_number:string phone_code_hash:string = auth.SentC
auth.cancelCode#1f040578 phone_number:string phone_code_hash:string = Bool;
auth.dropTempAuthKeys#8e48a188 except_auth_keys:Vector<long> = Bool;
account.registerDevice#5cbea590 token_type:int token:string app_sandbox:Bool secret:bytes other_uids:Vector<int> = Bool;
account.registerDevice#68976c6f flags:# no_muted:flags.0?true token_type:int token:string app_sandbox:Bool secret:bytes other_uids:Vector<int> = Bool;
account.unregisterDevice#3076c4bf token_type:int token:string other_uids:Vector<int> = Bool;
account.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;
account.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;
@@ -1216,6 +1159,13 @@ account.installWallPaper#feed5769 wallpaper:InputWallPaper settings:WallPaperSet
account.resetWallPapers#bb3b9804 = Bool;
account.getAutoDownloadSettings#56da0b3f = account.AutoDownloadSettings;
account.saveAutoDownloadSettings#76f36233 flags:# low:flags.0?true high:flags.1?true settings:AutoDownloadSettings = Bool;
account.uploadTheme#1c3db333 flags:# file:InputFile thumb:flags.0?InputFile file_name:string mime_type:string = Document;
account.createTheme#2b7ffd7f slug:string title:string document:InputDocument = Theme;
account.updateTheme#3b8ea202 flags:# format:string theme:InputTheme slug:flags.0?string title:flags.1?string document:flags.2?InputDocument = Theme;
account.saveTheme#f257106c theme:InputTheme unsave:Bool = Bool;
account.installTheme#7ae43737 flags:# dark:flags.0?true format:flags.1?string theme:flags.1?InputTheme = Bool;
account.getTheme#8d9d742b format:string theme:InputTheme document_id:long = Theme;
account.getThemes#285946f8 format:string hash:int = account.Themes;
users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
users.getFullUser#ca30a5b1 id:InputUser = UserFull;
@@ -1225,22 +1175,24 @@ contacts.getContactIDs#2caa4a42 hash:int = Vector<int>;
contacts.getStatuses#c4a353ee = Vector<ContactStatus>;
contacts.getContacts#c023849f hash:int = contacts.Contacts;
contacts.importContacts#2c800be5 contacts:Vector<InputContact> = contacts.ImportedContacts;
contacts.deleteContact#8e953744 id:InputUser = contacts.Link;
contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool;
contacts.deleteContacts#96a0e00 id:Vector<InputUser> = Updates;
contacts.deleteByPhones#1013fd9e phones:Vector<string> = Bool;
contacts.block#332b49fc id:InputUser = Bool;
contacts.unblock#e54100bd id:InputUser = Bool;
contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked;
contacts.search#11f812d8 q:string limit:int = contacts.Found;
contacts.resolveUsername#f93ccba3 username:string = contacts.ResolvedPeer;
contacts.getTopPeers#d4982db5 flags:# correspondents:flags.0?true bots_pm:flags.1?true bots_inline:flags.2?true phone_calls:flags.3?true groups:flags.10?true channels:flags.15?true offset:int limit:int hash:int = contacts.TopPeers;
contacts.getTopPeers#d4982db5 flags:# correspondents:flags.0?true bots_pm:flags.1?true bots_inline:flags.2?true phone_calls:flags.3?true forward_users:flags.4?true forward_chats:flags.5?true groups:flags.10?true channels:flags.15?true offset:int limit:int hash:int = contacts.TopPeers;
contacts.resetTopPeerRating#1ae373ac category:TopPeerCategory peer:InputPeer = Bool;
contacts.resetSaved#879537f1 = Bool;
contacts.getSaved#82f1e39f = Vector<SavedContact>;
contacts.toggleTopPeers#8514bdda enabled:Bool = Bool;
contacts.addContact#e8f463d0 flags:# add_phone_privacy_exception:flags.0?true id:InputUser first_name:string last_name:string phone:string = Updates;
contacts.acceptContact#f831a20f id:InputUser = Updates;
contacts.getLocated#a356056 geo_point:InputGeoPoint = Updates;
messages.getMessages#63c66506 id:Vector<InputMessage> = messages.Messages;
messages.getDialogs#b098aee6 flags:# exclude_pinned:flags.0?true offset_date:int offset_id:int offset_peer:InputPeer limit:int hash:int = messages.Dialogs;
messages.getDialogs#a0ee3b73 flags:# exclude_pinned:flags.0?true folder_id:flags.1?int offset_date:int offset_id:int offset_peer:InputPeer limit:int hash:int = messages.Dialogs;
messages.getHistory#dcbb8260 peer:InputPeer offset_id:int offset_date:int add_offset:int limit:int max_id:int min_id:int hash:int = messages.Messages;
messages.search#8614ef68 flags:# peer:InputPeer q:string from_id:flags.0?InputUser filter:MessagesFilter min_date:int max_date:int offset_id:int add_offset:int limit:int max_id:int min_id:int hash:int = messages.Messages;
messages.readHistory#e306d3a peer:InputPeer max_id:int = messages.AffectedMessages;
@@ -1248,11 +1200,10 @@ messages.deleteHistory#1c015b09 flags:# just_clear:flags.0?true revoke:flags.1?t
messages.deleteMessages#e58e95d2 flags:# revoke:flags.0?true id:Vector<int> = messages.AffectedMessages;
messages.receivedMessages#5a954c0 max_id:int = Vector<ReceivedNotifyMessage>;
messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool;
messages.sendMessage#fa88427a flags:# no_webpage:flags.1?true silent:flags.5?true background:flags.6?true clear_draft:flags.7?true peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> = Updates;
messages.sendMedia#b8d1262b flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> = Updates;
messages.forwardMessages#708e0195 flags:# silent:flags.5?true background:flags.6?true with_my_score:flags.8?true grouped:flags.9?true from_peer:InputPeer id:Vector<int> random_id:Vector<long> to_peer:InputPeer = Updates;
messages.sendMessage#520c3870 flags:# no_webpage:flags.1?true silent:flags.5?true background:flags.6?true clear_draft:flags.7?true peer:InputPeer reply_to_msg_id:flags.0?int message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int = Updates;
messages.sendMedia#3491eba9 flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true peer:InputPeer reply_to_msg_id:flags.0?int media:InputMedia message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int = Updates;
messages.forwardMessages#d9fee60e flags:# silent:flags.5?true background:flags.6?true with_my_score:flags.8?true grouped:flags.9?true from_peer:InputPeer id:Vector<int> random_id:Vector<long> to_peer:InputPeer schedule_date:flags.10?int = Updates;
messages.reportSpam#cf1592db peer:InputPeer = Bool;
messages.hideReportSpam#a8f1709b peer:InputPeer = Bool;
messages.getPeerSettings#3672e09c peer:InputPeer = PeerSettings;
messages.report#bd82b658 peer:InputPeer id:Vector<int> reason:ReportReason = Bool;
messages.getChats#3c6aa187 id:Vector<int> = messages.Chats;
@@ -1287,7 +1238,7 @@ messages.startBot#e6df7378 bot:InputUser peer:InputPeer random_id:long start_par
messages.getMessagesViews#c4c8a55d peer:InputPeer id:Vector<int> increment:Bool = Vector<int>;
messages.editChatAdmin#a9e69f2e chat_id:int user_id:InputUser is_admin:Bool = Bool;
messages.migrateChat#15a3b8e3 chat_id:int = Updates;
messages.searchGlobal#9e3cacb0 q:string offset_date:int offset_peer:InputPeer offset_id:int limit:int = messages.Messages;
messages.searchGlobal#bf7225a4 flags:# folder_id:flags.0?int q:string offset_rate:int offset_peer:InputPeer offset_id:int limit:int = messages.Messages;
messages.reorderStickerSets#78337739 flags:# masks:flags.0?true order:Vector<long> = Bool;
messages.getDocumentByHash#338e2464 sha256:bytes size:int mime_type:string = Document;
messages.searchGifs#bf9a776b q:string offset:int = messages.FoundGifs;
@@ -1295,9 +1246,9 @@ messages.getSavedGifs#83bf3d52 hash:int = messages.SavedGifs;
messages.saveGif#327a30cb id:InputDocument unsave:Bool = Bool;
messages.getInlineBotResults#514e999d flags:# bot:InputUser peer:InputPeer geo_point:flags.0?InputGeoPoint query:string offset:string = messages.BotResults;
messages.setInlineBotResults#eb5ea206 flags:# gallery:flags.0?true private:flags.1?true query_id:long results:Vector<InputBotInlineResult> cache_time:int next_offset:flags.2?string switch_pm:flags.3?InlineBotSwitchPM = Bool;
messages.sendInlineBotResult#b16e06fe flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true hide_via:flags.11?true peer:InputPeer reply_to_msg_id:flags.0?int random_id:long query_id:long id:string = Updates;
messages.sendInlineBotResult#220815b0 flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true hide_via:flags.11?true peer:InputPeer reply_to_msg_id:flags.0?int random_id:long query_id:long id:string schedule_date:flags.10?int = Updates;
messages.getMessageEditData#fda68d36 peer:InputPeer id:int = messages.MessageEditData;
messages.editMessage#d116f31e flags:# no_webpage:flags.1?true peer:InputPeer id:int message:flags.11?string media:flags.14?InputMedia reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> = Updates;
messages.editMessage#48f71778 flags:# no_webpage:flags.1?true peer:InputPeer id:int message:flags.11?string media:flags.14?InputMedia reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.15?int = Updates;
messages.editInlineBotMessage#83557dba flags:# no_webpage:flags.1?true id:InputBotInlineMessageID message:flags.11?string media:flags.14?InputMedia reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> = Bool;
messages.getBotCallbackAnswer#810a9fec flags:# game:flags.1?true peer:InputPeer msg_id:int data:flags.0?bytes = messages.BotCallbackAnswer;
messages.setBotCallbackAnswer#d58f130a flags:# alert:flags.1?true query_id:long message:flags.0?string url:flags.2?string cache_time:int = Bool;
@@ -1320,8 +1271,8 @@ messages.getCommonChats#d0a48c4 user_id:InputUser max_id:int limit:int = message
messages.getAllChats#eba80ff0 except_ids:Vector<int> = messages.Chats;
messages.getWebPage#32ca8f91 url:string hash:int = WebPage;
messages.toggleDialogPin#a731e257 flags:# pinned:flags.0?true peer:InputDialogPeer = Bool;
messages.reorderPinnedDialogs#5b51d63f flags:# force:flags.0?true order:Vector<InputDialogPeer> = Bool;
messages.getPinnedDialogs#e254d64e = messages.PeerDialogs;
messages.reorderPinnedDialogs#3b1adf37 flags:# force:flags.0?true folder_id:int order:Vector<InputDialogPeer> = Bool;
messages.getPinnedDialogs#d6b94df2 folder_id:int = messages.PeerDialogs;
messages.setBotShippingResults#e5f672fa flags:# query_id:long error:flags.0?string shipping_options:flags.1?Vector<ShippingOption> = Bool;
messages.setBotPrecheckoutResults#9c2dd95 flags:# success:flags.1?true query_id:long error:flags.0?string = Bool;
messages.uploadMedia#519bc2b1 peer:InputPeer media:InputMedia = MessageMedia;
@@ -1331,7 +1282,7 @@ messages.faveSticker#b9ffc55b id:InputDocument unfave:Bool = Bool;
messages.getUnreadMentions#46578472 peer:InputPeer offset_id:int add_offset:int limit:int max_id:int min_id:int = messages.Messages;
messages.readMentions#f0189d3 peer:InputPeer = messages.AffectedHistory;
messages.getRecentLocations#bbc45b09 peer:InputPeer limit:int hash:int = messages.Messages;
messages.sendMultiMedia#2095512f flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true peer:InputPeer reply_to_msg_id:flags.0?int multi_media:Vector<InputSingleMedia> = Updates;
messages.sendMultiMedia#cc0110cb flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true peer:InputPeer reply_to_msg_id:flags.0?int multi_media:Vector<InputSingleMedia> schedule_date:flags.10?int = Updates;
messages.uploadEncryptedFile#5057c497 peer:InputEncryptedChat file:InputEncryptedFile = EncryptedFile;
messages.searchStickerSets#c2b7d08b flags:# exclude_featured:flags.0?true q:string hash:int = messages.FoundStickerSets;
messages.getSplitRanges#1cff7e08 = Vector<MessageRange>;
@@ -1349,6 +1300,14 @@ messages.getEmojiKeywords#35a0e062 lang_code:string = EmojiKeywordsDifference;
messages.getEmojiKeywordsDifference#1508b6af lang_code:string from_version:int = EmojiKeywordsDifference;
messages.getEmojiKeywordsLanguages#4e9963b2 lang_codes:Vector<string> = Vector<EmojiLanguage>;
messages.getEmojiURL#d5b10c26 lang_code:string = EmojiURL;
messages.getSearchCounters#732eef00 peer:InputPeer filters:Vector<MessagesFilter> = Vector<messages.SearchCounter>;
messages.requestUrlAuth#e33f5613 peer:InputPeer msg_id:int button_id:int = UrlAuthResult;
messages.acceptUrlAuth#f729ea98 flags:# write_allowed:flags.0?true peer:InputPeer msg_id:int button_id:int = UrlAuthResult;
messages.hidePeerSettingsBar#4facb138 peer:InputPeer = Bool;
messages.getScheduledHistory#e2c2685b peer:InputPeer hash:int = messages.Messages;
messages.getScheduledMessages#bdbb0464 peer:InputPeer id:Vector<int> = messages.Messages;
messages.sendScheduledMessages#bd38850a peer:InputPeer id:Vector<int> = Updates;
messages.deleteScheduledMessages#59ae2b16 peer:InputPeer id:Vector<int> = Updates;
updates.getState#edd4882a = updates.State;
updates.getDifference#25939651 flags:# pts:int pts_total_limit:flags.0?int date:int qts:int = updates.Difference;
@@ -1360,7 +1319,7 @@ photos.deletePhotos#87cf7f2f id:Vector<InputPhoto> = Vector<long>;
photos.getUserPhotos#91cd32a8 user_id:InputUser offset:int max_id:long limit:int = photos.Photos;
upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File;
upload.getFile#b15a9afc flags:# precise:flags.0?true location:InputFileLocation offset:int limit:int = upload.File;
upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;
upload.getWebFile#24e6818d location:InputWebFileLocation offset:int limit:int = upload.WebFile;
upload.getCdnFile#2000bcc3 file_token:bytes offset:int limit:int = upload.CdnFile;
@@ -1397,8 +1356,8 @@ channels.getParticipants#123e05e9 channel:InputChannel filter:ChannelParticipant
channels.getParticipant#546dd7a6 channel:InputChannel user_id:InputUser = channels.ChannelParticipant;
channels.getChannels#a7f6bbb id:Vector<InputChannel> = messages.Chats;
channels.getFullChannel#8736a09 channel:InputChannel = messages.ChatFull;
channels.createChannel#f4893d7f flags:# broadcast:flags.0?true megagroup:flags.1?true title:string about:string = Updates;
channels.editAdmin#70f893ba channel:InputChannel user_id:InputUser admin_rights:ChatAdminRights = Updates;
channels.createChannel#3d5fb10f flags:# broadcast:flags.0?true megagroup:flags.1?true title:string about:string geo_point:flags.2?InputGeoPoint address:flags.2?string = Updates;
channels.editAdmin#d33c8902 channel:InputChannel user_id:InputUser admin_rights:ChatAdminRights rank:string = Updates;
channels.editTitle#566decd0 channel:InputChannel title:string = Updates;
channels.editPhoto#f12e57c9 channel:InputChannel photo:InputChatPhoto = Updates;
channels.checkUsername#10e6bd2c channel:InputChannel username:string = Bool;
@@ -1409,7 +1368,7 @@ channels.inviteToChannel#199f3a6c channel:InputChannel users:Vector<InputUser> =
channels.deleteChannel#c0111fe3 channel:InputChannel = Updates;
channels.exportMessageLink#ceb77163 channel:InputChannel id:int grouped:Bool = ExportedMessageLink;
channels.toggleSignatures#1f69b606 channel:InputChannel enabled:Bool = Updates;
channels.getAdminedPublicChannels#8d8d82d7 = messages.Chats;
channels.getAdminedPublicChannels#f8b036af flags:# by_location:flags.0?true check_limit:flags.1?true = messages.Chats;
channels.editBanned#72796912 channel:InputChannel user_id:InputUser banned_rights:ChatBannedRights = Updates;
channels.getAdminLog#33ddf480 flags:# channel:InputChannel q:string events_filter:flags.0?ChannelAdminLogEventsFilter admins:flags.1?Vector<InputUser> max_id:long min_id:long limit:int = channels.AdminLogResults;
channels.setStickers#ea8ca4f9 channel:InputChannel stickerset:InputStickerSet = Bool;
@@ -1417,6 +1376,11 @@ channels.readMessageContents#eab5dc38 channel:InputChannel id:Vector<int> = Bool
channels.deleteHistory#af369d42 channel:InputChannel max_id:int = Bool;
channels.togglePreHistoryHidden#eabbb94c channel:InputChannel enabled:Bool = Updates;
channels.getLeftChannels#8341ecc0 offset:int = messages.Chats;
channels.getGroupsForDiscussion#f5dad378 = messages.Chats;
channels.setDiscussionGroup#40582bb2 broadcast:InputChannel group:InputChannel = Bool;
channels.editCreator#8f38cd1f channel:InputChannel user_id:InputUser password:InputCheckPasswordSRP = Updates;
channels.editLocation#58e63f6d channel:InputChannel geo_point:InputGeoPoint address:string = Bool;
channels.toggleSlowMode#edd49ef0 channel:InputChannel seconds:int = Updates;
bots.sendCustomRequest#aa2769ed custom_method:string params:DataJSON = DataJSON;
bots.answerWebhookJSONQuery#e6213f4d query_id:long data:DataJSON = Bool;
@@ -1448,4 +1412,7 @@ langpack.getDifference#cd984aa5 lang_pack:string lang_code:string from_version:i
langpack.getLanguages#42c6978f lang_pack:string = Vector<LangPackLanguage>;
langpack.getLanguage#6a596502 lang_pack:string lang_code:string = LangPackLanguage;
// LAYER 98
folders.editPeerFolders#6847d0ab folder_peers:Vector<InputFolderPeer> = Updates;
folders.deleteFolder#1c295881 folder_id:int = Updates;
// LAYER 105

View File

@@ -0,0 +1,114 @@
// Core types (no need to gen)
//vector#1cb5c415 {t:Type} # [ t ] = Vector t;
///////////////////////////////
/// Authorization key creation
///////////////////////////////
resPQ#05162463 nonce:int128 server_nonce:int128 pq:string server_public_key_fingerprints:Vector<long> = ResPQ;
p_q_inner_data#83c95aec pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 = P_Q_inner_data;
p_q_inner_data_dc#a9f55f95 pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 dc:int = P_Q_inner_data;
p_q_inner_data_temp#3c6a84d4 pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 expires_in:int = P_Q_inner_data;
p_q_inner_data_temp_dc#56fddf88 pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 dc:int expires_in:int = P_Q_inner_data;
server_DH_params_fail#79cb045d nonce:int128 server_nonce:int128 new_nonce_hash:int128 = Server_DH_Params;
server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params;
server_DH_inner_data#b5890dba nonce:int128 server_nonce:int128 g:int dh_prime:string g_a:string server_time:int = Server_DH_inner_data;
client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data;
dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer;
dh_gen_retry#46dc1fb9 nonce:int128 server_nonce:int128 new_nonce_hash2:int128 = Set_client_DH_params_answer;
dh_gen_fail#a69dae02 nonce:int128 server_nonce:int128 new_nonce_hash3:int128 = Set_client_DH_params_answer;
destroy_auth_key_ok#f660e1d4 = DestroyAuthKeyRes;
destroy_auth_key_none#0a9f2259 = DestroyAuthKeyRes;
destroy_auth_key_fail#ea109b13 = DestroyAuthKeyRes;
---functions---
req_pq#60469778 nonce:int128 = ResPQ;
req_pq_multi#be7e8ef1 nonce:int128 = ResPQ;
req_DH_params#d712e4be nonce:int128 server_nonce:int128 p:string q:string public_key_fingerprint:long encrypted_data:string = Server_DH_Params;
set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer;
destroy_auth_key#d1435160 = DestroyAuthKeyRes;
///////////////////////////////
////////////// System messages
///////////////////////////////
---types---
msgs_ack#62d6b459 msg_ids:Vector<long> = MsgsAck;
bad_msg_notification#a7eff811 bad_msg_id:long bad_msg_seqno:int error_code:int = BadMsgNotification;
bad_server_salt#edab447b bad_msg_id:long bad_msg_seqno:int error_code:int new_server_salt:long = BadMsgNotification;
msgs_state_req#da69fb52 msg_ids:Vector<long> = MsgsStateReq;
msgs_state_info#04deb57d req_msg_id:long info:string = MsgsStateInfo;
msgs_all_info#8cc0d131 msg_ids:Vector<long> info:string = MsgsAllInfo;
msg_detailed_info#276d3ec6 msg_id:long answer_msg_id:long bytes:int status:int = MsgDetailedInfo;
msg_new_detailed_info#809db6df answer_msg_id:long bytes:int status:int = MsgDetailedInfo;
msg_resend_req#7d861a08 msg_ids:Vector<long> = MsgResendReq;
//rpc_result#f35c6d01 req_msg_id:long result:Object = RpcResult; // parsed manually
rpc_error#2144ca19 error_code:int error_message:string = RpcError;
rpc_answer_unknown#5e2ad36e = RpcDropAnswer;
rpc_answer_dropped_running#cd78e586 = RpcDropAnswer;
rpc_answer_dropped#a43ad8b7 msg_id:long seq_no:int bytes:int = RpcDropAnswer;
future_salt#0949d9dc valid_since:int valid_until:int salt:long = FutureSalt;
future_salts#ae500895 req_msg_id:long now:int salts:vector<future_salt> = FutureSalts;
pong#347773c5 msg_id:long ping_id:long = Pong;
destroy_session_ok#e22045fc session_id:long = DestroySessionRes;
destroy_session_none#62d350c9 session_id:long = DestroySessionRes;
new_session_created#9ec20908 first_msg_id:long unique_id:long server_salt:long = NewSession;
//message msg_id:long seqno:int bytes:int body:Object = Message; // parsed manually
//msg_container#73f1f8dc messages:vector<message> = MessageContainer; // parsed manually
//msg_copy#e06046b2 orig_message:Message = MessageCopy; // parsed manually, not used - use msg_container
//gzip_packed#3072cfa1 packed_data:string = Object; // parsed manually
http_wait#9299359f max_delay:int wait_after:int max_wait:int = HttpWait;
//ipPort ipv4:int port:int = IpPort;
//help.configSimple#d997c3c5 date:int expires:int dc_id:int ip_port_list:Vector<ipPort> = help.ConfigSimple;
ipPort#d433ad73 ipv4:int port:int = IpPort;
ipPortSecret#37982646 ipv4:int port:int secret:bytes = IpPort;
accessPointRule#4679b65f phone_prefix_rules:string dc_id:int ips:vector<IpPort> = AccessPointRule;
help.configSimple#5a592a6c date:int expires:int rules:vector<AccessPointRule> = help.ConfigSimple;
tlsClientHello blocks:vector<TlsBlock> = TlsClientHello;
tlsBlockString data:string = TlsBlock;
tlsBlockRandom length:int = TlsBlock;
tlsBlockZero length:int = TlsBlock;
tlsBlockDomain = TlsBlock;
tlsBlockGrease seed:int = TlsBlock;
tlsBlockPublicKey = TlsBlock;
tlsBlockScope entries:Vector<TlsBlock> = TlsBlock;
---functions---
rpc_drop_answer#58e4a740 req_msg_id:long = RpcDropAnswer;
get_future_salts#b921bd04 num:int = FutureSalts;
ping#7abe77ec ping_id:long = Pong;
ping_delay_disconnect#f3427b8c ping_id:long disconnect_delay:int = Pong;
destroy_session#e7512126 session_id:long = DestroySessionRes;

View File

@@ -9,10 +9,10 @@
<Identity Name="TelegramMessengerLLP.TelegramDesktop"
ProcessorArchitecture="ARCHITECTURE"
Publisher="CN=536BC709-8EE1-4478-AF22-F0F0F26FF64A"
Version="1.6.6.0" />
Version="1.8.13.0" />
<Properties>
<DisplayName>Telegram Desktop</DisplayName>
<PublisherDisplayName>Telegram Messenger LLP</PublisherDisplayName>
<PublisherDisplayName>Telegram FZ-LLC</PublisherDisplayName>
<Description>Telegram Desktop official messenger</Description>
<Logo>Assets\logo\logo.png</Logo>
</Properties>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 10 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
<!-- Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<!-- Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<!-- Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
</application>
</compatibility>
</assembly>

View File

@@ -1,6 +1,5 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
@@ -34,8 +33,8 @@ IDI_ICON1 ICON "..\\art\\icon256.ico"
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,6,6,0
PRODUCTVERSION 1,6,6,0
FILEVERSION 1,8,13,0
PRODUCTVERSION 1,8,13,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -50,12 +49,12 @@ BEGIN
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "Telegram Messenger LLP"
VALUE "CompanyName", "Telegram FZ-LLC"
VALUE "FileDescription", "Telegram Desktop"
VALUE "FileVersion", "1.6.6.0"
VALUE "FileVersion", "1.8.13.0"
VALUE "LegalCopyright", "Copyright (C) 2014-2019"
VALUE "ProductName", "Telegram Desktop"
VALUE "ProductVersion", "1.6.6.0"
VALUE "ProductVersion", "1.8.13.0"
END
END
BLOCK "VarFileInfo"
@@ -66,16 +65,3 @@ END
#endif // English (United States) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

View File

@@ -1,6 +1,5 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource1.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
@@ -25,8 +24,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,6,6,0
PRODUCTVERSION 1,6,6,0
FILEVERSION 1,8,13,0
PRODUCTVERSION 1,8,13,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -41,12 +40,12 @@ BEGIN
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "Telegram Messenger LLP"
VALUE "CompanyName", "Telegram FZ-LLC"
VALUE "FileDescription", "Telegram Desktop Updater"
VALUE "FileVersion", "1.6.6.0"
VALUE "FileVersion", "1.8.13.0"
VALUE "LegalCopyright", "Copyright (C) 2014-2019"
VALUE "ProductName", "Telegram Desktop"
VALUE "ProductVersion", "1.6.6.0"
VALUE "ProductVersion", "1.8.13.0"
END
END
BLOCK "VarFileInfo"
@@ -57,16 +56,3 @@ END
#endif // English (United States) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

Binary file not shown.

View File

@@ -1,14 +0,0 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by Updater.rc
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 101
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

View File

@@ -15,6 +15,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
bool BetaChannel = false;
quint64 AlphaVersion = 0;
bool OnlyAlphaKey = false;
const char *PublicKey = "\
-----BEGIN RSA PUBLIC KEY-----\n\
@@ -126,6 +127,21 @@ int32 *hashSha1(const void *data, uint32 len, void *dest) {
QString AlphaSignature;
int writeAlphaKey() {
if (!AlphaVersion) {
return 0;
}
QString keyName(QString("talpha_%1_key").arg(AlphaVersion));
QFile key(keyName);
if (!key.open(QIODevice::WriteOnly)) {
cout << "Can't open '" << keyName.toUtf8().constData() << "' for write..\n";
return -1;
}
key.write(AlphaSignature.toUtf8());
key.close();
return 0;
}
int main(int argc, char *argv[])
{
QString workDir;
@@ -146,6 +162,8 @@ int main(int argc, char *argv[])
version = QString(argv[i + 1]).toInt();
} else if (string("-beta") == argv[i]) {
BetaChannel = true;
} else if (string("-alphakey") == argv[i]) {
OnlyAlphaKey = true;
} else if (string("-alpha") == argv[i] && i + 1 < argc) {
AlphaVersion = QString(argv[i + 1]).toULongLong();
if (AlphaVersion > version * 1000ULL && AlphaVersion < (version + 1) * 1000ULL) {
@@ -160,6 +178,9 @@ int main(int argc, char *argv[])
}
}
}
if (OnlyAlphaKey) {
return writeAlphaKey();
}
if (files.isEmpty() || remove.isEmpty() || version <= 1016 || version > 999999999) {
#ifdef Q_OS_WIN
@@ -464,20 +485,9 @@ int main(int argc, char *argv[])
out.write(compressed);
out.close();
if (AlphaVersion) {
QString keyName(QString("talpha_%1_key").arg(AlphaVersion));
QFile key(keyName);
if (!key.open(QIODevice::WriteOnly)) {
cout << "Can't open '" << keyName.toUtf8().constData() << "' for write..\n";
return -1;
}
key.write(AlphaSignature.toUtf8());
key.close();
}
cout << "Update file '" << outName.toUtf8().constData() << "' written successfully!\n";
return 0;
return writeAlphaKey();
}
QString countAlphaVersionSignature(quint64 version) { // duplicated in autoupdater.cpp

View File

@@ -307,7 +307,7 @@ void updateRegistry() {
RegSetValueEx(rkey, L"DisplayVersion", 0, REG_SZ, (const BYTE*)versionStr, ((versionLen / 2) + 1) * sizeof(WCHAR));
wsprintf(nameStr, L"Telegram Desktop version %s", versionStr);
RegSetValueEx(rkey, L"DisplayName", 0, REG_SZ, (const BYTE*)nameStr, (wcslen(nameStr) + 1) * sizeof(WCHAR));
wsprintf(publisherStr, L"Telegram Messenger LLP");
wsprintf(publisherStr, L"Telegram FZ-LLC");
RegSetValueEx(rkey, L"Publisher", 0, REG_SZ, (const BYTE*)publisherStr, (wcslen(publisherStr) + 1) * sizeof(WCHAR));
wsprintf(icongroupStr, L"Telegram Desktop");
RegSetValueEx(rkey, L"Inno Setup: Icon Group", 0, REG_SZ, (const BYTE*)icongroupStr, (wcslen(icongroupStr) + 1) * sizeof(WCHAR));

Some files were not shown because too many files have changed in this diff Show More