From 30ae07308075d119b21060697231f99cbef8f89c Mon Sep 17 00:00:00 2001 From: John Preston <johnprestonmail@gmail.com> Date: Wed, 22 Oct 2014 22:39:03 +0400 Subject: [PATCH] username support added, layer 18 --- Telegram/Resources/lang.txt | 48 +- Telegram/Resources/style.txt | 21 +- Telegram/SourceFiles/app.cpp | 14 +- Telegram/SourceFiles/boxes/addcontactbox.cpp | 4 +- Telegram/SourceFiles/boxes/addcontactbox.h | 2 +- Telegram/SourceFiles/boxes/usernamebox.cpp | 272 ++ Telegram/SourceFiles/boxes/usernamebox.h | 82 + Telegram/SourceFiles/config.h | 5 + Telegram/SourceFiles/dialogswidget.cpp | 341 +- Telegram/SourceFiles/dialogswidget.h | 31 +- Telegram/SourceFiles/gui/flatinput.h | 1 - Telegram/SourceFiles/history.cpp | 61 +- Telegram/SourceFiles/history.h | 27 +- Telegram/SourceFiles/historywidget.cpp | 20 +- Telegram/SourceFiles/intro/introphone.cpp | 12 +- Telegram/SourceFiles/mainwidget.cpp | 40 +- Telegram/SourceFiles/mainwidget.h | 2 +- Telegram/SourceFiles/mtproto/mtpCoreTypes.h | 6 + Telegram/SourceFiles/mtproto/mtpScheme.cpp | 4179 +++++++++--------- Telegram/SourceFiles/mtproto/mtpScheme.h | 2109 ++++----- Telegram/SourceFiles/mtproto/scheme.tl | 89 +- Telegram/SourceFiles/profilewidget.cpp | 14 +- Telegram/SourceFiles/settingswidget.cpp | 159 +- Telegram/SourceFiles/settingswidget.h | 14 +- Telegram/SourceFiles/window.cpp | 6 + Telegram/SourceFiles/window.h | 1 + Telegram/Telegram.vcxproj | 27 + Telegram/Telegram.vcxproj.filters | 15 + 28 files changed, 4000 insertions(+), 3602 deletions(-) create mode 100644 Telegram/SourceFiles/boxes/usernamebox.cpp create mode 100644 Telegram/SourceFiles/boxes/usernamebox.h diff --git a/Telegram/Resources/lang.txt b/Telegram/Resources/lang.txt index f1796dbb74..8bb1a994e8 100644 --- a/Telegram/Resources/lang.txt +++ b/Telegram/Resources/lang.txt @@ -57,8 +57,8 @@ lng_month_day: "{month} {day}"; lng_cancel: "Cancel"; lng_continue: "Continue"; -lng_connecting: "Connecting..."; -lng_reconnecting: "Reconnect in %1 s..."; +lng_connecting: "Connecting.."; +lng_reconnecting: "Reconnect in %1 s.."; lng_reconnecting_try_now: "Try now"; lng_status_offline: "offline"; @@ -74,6 +74,7 @@ lng_status_lastseen_yesterday: "yesterday at {time}"; lng_status_lastseen_date: "{date}"; lng_status_lastseen_date_time: "{date} at {time}"; lng_status_online: "online"; +lng_status_connecting: "connecting.."; lng_chat_no_members: "Group is unaccessible"; lng_chat_members: "%1 members"; @@ -109,7 +110,7 @@ lng_code_ph: "Your code"; lng_code_desc: "We have sent you an SMS with activation code to your phone. Please enter it below."; lng_code_call: "Telegram will dial your number in %1:%2"; -lng_code_calling: "Requesting a call from Telegram..."; +lng_code_calling: "Requesting a call from Telegram.."; lng_code_called: "Telegram dialed your number"; lng_bad_phone: "Invalid phone number. Please try again."; @@ -136,7 +137,25 @@ lng_settings_cancel: "Cancel"; lng_settings_upload: "Set Profile Photo"; lng_settings_badsize: "This image has bad size, please try other."; lng_settings_crop_profile: "Select square area for your profile photo"; -lng_settings_uploading_photo: "Uploading photo..."; +lng_settings_uploading_photo: "Uploading photo.."; + +lng_username_title: "Change username"; +lng_username_about: "You can choose a username on Telegram. +If you do, other people will be able to find +you by this username and contact you +without knowing your phone number. + +You can use a-z, 0-9 and underscores. +Minimum length is 5 characters."; +lng_username_invalid: "This name is invalid."; +lng_username_occupied: "This name is already occupied."; +lng_username_too_short: "This name is too short."; + +lng_settings_section_contact_info: "Contact info"; +lng_settings_phone_number: "Phone number:"; +lng_settings_username: "Username:"; +lng_settings_choose_username: "choose username"; +lng_settings_change_username: "Change"; lng_settings_section_notify: "Notifications"; lng_settings_desktop_notify: "Desktop notifications"; @@ -151,9 +170,9 @@ lng_settings_section_general: "General"; lng_settings_auto_update: "Update automatically"; lng_settings_current_version: "Version {version}"; lng_settings_check_now: "Check for updates"; -lng_settings_update_checking: "Checking for updates..."; +lng_settings_update_checking: "Checking for updates.."; lng_settings_latest_installed: "Latest version is installed"; -lng_settings_downloading: "Downloading update {ready} / {total} Mb..."; +lng_settings_downloading: "Downloading update {ready} / {total} Mb.."; lng_settings_update_ready: "New version is ready"; lng_settings_update_now: "Restart Now"; lng_settings_update_fail: "Update check failed :("; @@ -192,7 +211,7 @@ lng_download_path_settings: "Go to Settings"; lng_download_finish_failed: "File download could not be finished. Would you like to try again?"; -lng_download_path_clearing: "Clearing..."; +lng_download_path_clearing: "Clearing.."; lng_download_path_cleared: "Cleared!"; lng_download_path_clear_failed: "Clear failed :("; @@ -238,7 +257,7 @@ lng_profile_add_participant: "Add Member"; lng_profile_delete_and_exit: "Leave"; lng_profile_kick: "Kick"; lng_profile_sure_kick: "Kick {user} from the group?"; -lng_profile_loading: "Loading..."; +lng_profile_loading: "Loading.."; lng_profile_shared_media: "Shared media"; lng_profile_no_media: "No media in this conversation."; lng_profile_photo: "{count} photo »"; @@ -315,7 +334,7 @@ lng_in_dlg_audio: "Audio"; lng_in_dlg_document: "Document"; lng_send_button: "Send"; -lng_message_ph: "Write a message..."; +lng_message_ph: "Write a message.."; lng_empty_history: ""; lng_willbe_history: "Please select chat to start messaging"; lng_message_with_from: "[c]{from}:[/c] {message}"; @@ -343,7 +362,7 @@ lng_context_copy_email: "Copy email address"; lng_context_open_hashtag: "Search by hashtag"; lng_context_copy_hashtag: "Copy hashtag"; lng_context_open_image: "Open Image"; -lng_context_save_image: "Save Image As..."; +lng_context_save_image: "Save Image As.."; lng_context_forward_image: "Forward Image"; lng_context_delete_image: "Delete Image"; lng_context_copy_image: "Copy Image"; @@ -352,11 +371,11 @@ lng_context_cancel_download: "Cancel Download"; lng_context_show_in_folder: "Show in Folder"; lng_context_show_in_finder: "Show in Finder"; lng_context_open_video: "Open Video"; -lng_context_save_video: "Save Video As..."; +lng_context_save_video: "Save Video As.."; lng_context_open_audio: "Open Audio"; -lng_context_save_audio: "Save Audio As..."; +lng_context_save_audio: "Save Audio As.."; lng_context_open_document: "Open File"; -lng_context_save_document: "Save File As..."; +lng_context_save_document: "Save File As.."; lng_context_forward_file: "Forward File"; lng_context_delete_file: "Delete File"; lng_context_close_file: "Close File"; @@ -375,7 +394,7 @@ lng_really_send_file: "Do you want to send this file?"; lng_really_share_contact: "Do you want to share this contact?"; lng_send_image_compressed: "Send compressed image"; -lng_forward_choose: "Choose recipient..."; +lng_forward_choose: "Choose recipient.."; lng_forward_confirm: "Forward to {recipient}?"; lng_forward_share_contact: "Share contact to {recipient}?"; lng_forward_send_file_confirm: "Send «{name}» to {recipient}?"; @@ -430,6 +449,7 @@ lng_about_done: "Done"; lng_search_no_results: "No messages found"; lng_search_one_result: "Found {count} message"; lng_search_n_results: "Found {count} messages"; +lng_search_global_results: "Global search results"; lng_mediaview_save: "Download"; lng_mediaview_forward: "Forward"; diff --git a/Telegram/Resources/style.txt b/Telegram/Resources/style.txt index 46aed16865..fa36ae79d7 100644 --- a/Telegram/Resources/style.txt +++ b/Telegram/Resources/style.txt @@ -484,10 +484,9 @@ setTop: 26px; setNameLeft: 3px; setNameTop: 1px; setNameFont: font(22px); -setPhoneFont: font(16px); -setPhoneColor: #999; -setPhoneTop: 39px; -setPhoneLeft: 1px; +setStatusTop: 39px; +setStatusLeft: 1px; +setStatusFont: font(16px); setPhotoSize: 120px; setHeaderFont: font(20px); setHeaderColor: black; @@ -1622,3 +1621,17 @@ mediaviewLoaderSkip: 9px; minPhotoWidth: 90px; minPhotoHeight: 90px; + +usernameFont: font(14px); +usernameColor: #777; +usernameWidth: 336px; +usernameSkip: 32px; +usernameInput: flatInput(inpAddContact) { + bgColor: transparent; +} +usernameDone: flatButton(btnSelectDone) { + width: 168px; +} +usernameCancel: flatButton(btnSelectCancel) { + width: 167px; +} diff --git a/Telegram/SourceFiles/app.cpp b/Telegram/SourceFiles/app.cpp index 02b1706b57..d39db1210e 100644 --- a/Telegram/SourceFiles/app.cpp +++ b/Telegram/SourceFiles/app.cpp @@ -240,7 +240,7 @@ namespace App { data = App::user(peer); data->input = MTP_inputPeerContact(d.vid); data->inputUser = MTP_inputUserContact(d.vid); - data->setName(lang(lng_deleted), QString(), QString()); + data->setName(lang(lng_deleted), QString(), QString(), QString()); data->setPhoto(MTP_userProfilePhotoEmpty()); data->access = 0; wasContact = (data->contact > 0); @@ -253,7 +253,7 @@ namespace App { data = App::user(peer); data->input = MTP_inputPeerContact(d.vid); data->inputUser = MTP_inputUserContact(d.vid); - data->setName(textOneLine(qs(d.vfirst_name)), textOneLine(qs(d.vlast_name)), QString()); + data->setName(textOneLine(qs(d.vfirst_name)), textOneLine(qs(d.vlast_name)), QString(), textOneLine(qs(d.vusername))); data->setPhoto(MTP_userProfilePhotoEmpty()); data->access = 0; wasContact = (data->contact > 0); @@ -266,7 +266,7 @@ namespace App { data = App::user(peer); data->input = MTP_inputPeerSelf(); data->inputUser = MTP_inputUserSelf(); - data->setName(textOneLine(qs(d.vfirst_name)), textOneLine(qs(d.vlast_name)), QString()); + data->setName(textOneLine(qs(d.vfirst_name)), textOneLine(qs(d.vlast_name)), QString(), textOneLine(qs(d.vusername))); data->setPhoto(d.vphoto); data->setPhone(qs(d.vphone)); data->access = 0; @@ -283,7 +283,7 @@ namespace App { data = App::user(peer); data->input = MTP_inputPeerContact(d.vid); data->inputUser = MTP_inputUserContact(d.vid); - data->setName(textOneLine(qs(d.vfirst_name)), textOneLine(qs(d.vlast_name)), QString()); + data->setName(textOneLine(qs(d.vfirst_name)), textOneLine(qs(d.vlast_name)), QString(), textOneLine(qs(d.vusername))); data->setPhoto(d.vphoto); data->setPhone(qs(d.vphone)); data->access = d.vaccess_hash.v; @@ -299,7 +299,7 @@ namespace App { data->input = MTP_inputPeerForeign(d.vid, d.vaccess_hash); data->inputUser = MTP_inputUserForeign(d.vid, d.vaccess_hash); data->setPhone(qs(d.vphone)); - data->setName(textOneLine(qs(d.vfirst_name)), textOneLine(qs(d.vlast_name)), (data->id != 333000 && !data->phone.isEmpty()) ? formatPhone(data->phone) : QString()); + data->setName(textOneLine(qs(d.vfirst_name)), textOneLine(qs(d.vlast_name)), (data->id != 333000 && !data->phone.isEmpty()) ? formatPhone(data->phone) : QString(), textOneLine(qs(d.vusername))); data->setPhoto(d.vphoto); data->access = d.vaccess_hash.v; wasContact = (data->contact > 0); @@ -313,7 +313,7 @@ namespace App { data = App::user(peer); data->input = MTP_inputPeerForeign(d.vid, d.vaccess_hash); data->inputUser = MTP_inputUserForeign(d.vid, d.vaccess_hash); - data->setName(textOneLine(qs(d.vfirst_name)), textOneLine(qs(d.vlast_name)), QString()); + data->setName(textOneLine(qs(d.vfirst_name)), textOneLine(qs(d.vlast_name)), QString(), textOneLine(qs(d.vusername))); data->setPhoto(d.vphoto); data->access = d.vaccess_hash.v; wasContact = (data->contact > 0); @@ -634,7 +634,7 @@ namespace App { App::main()->removeContact(user); } } - user->setName(textOneLine(user->firstName), textOneLine(user->lastName), (user->contact || user->id == 333000 || user->phone.isEmpty()) ? QString() : App::formatPhone(user->phone)); + user->setName(textOneLine(user->firstName), textOneLine(user->lastName), (user->contact || user->id == 333000 || user->phone.isEmpty()) ? QString() : App::formatPhone(user->phone), textOneLine(user->username)); if (App::main()) App::main()->peerUpdated(user); } } diff --git a/Telegram/SourceFiles/boxes/addcontactbox.cpp b/Telegram/SourceFiles/boxes/addcontactbox.cpp index 5638554b25..b767cee1b4 100644 --- a/Telegram/SourceFiles/boxes/addcontactbox.cpp +++ b/Telegram/SourceFiles/boxes/addcontactbox.cpp @@ -256,10 +256,11 @@ void AddContactBox::onSaveSelfDone(const MTPUser &user) { } bool AddContactBox::onSaveSelfFail(const RPCError &error) { + _addRequest = 0; QString err(error.type()); QString firstName = textOneLine(_firstInput.text()), lastName = textOneLine(_lastInput.text()); if (err == "NAME_NOT_MODIFIED") { - App::self()->setName(firstName, lastName, firstName + ' ' + lastName); + App::self()->setName(firstName, lastName, firstName + ' ' + lastName, textOneLine(App::self()->username)); emit closed(); return true; } else if (err == "FIRSTNAME_INVALID") { @@ -276,6 +277,7 @@ bool AddContactBox::onSaveSelfFail(const RPCError &error) { } bool AddContactBox::onSaveFail(const RPCError &error) { + _addRequest = 0; QString err(error.type()); QString firstName = _firstInput.text().trimmed(), lastName = _lastInput.text().trimmed(); if (err == "CHAT_TITLE_NOT_MODIFIED") { diff --git a/Telegram/SourceFiles/boxes/addcontactbox.h b/Telegram/SourceFiles/boxes/addcontactbox.h index f3ba5f417b..bb4076e565 100644 --- a/Telegram/SourceFiles/boxes/addcontactbox.h +++ b/Telegram/SourceFiles/boxes/addcontactbox.h @@ -58,7 +58,7 @@ private: PeerData *_peer; QString _boxTitle; - int32 _width, _height, _thumbw, _thumbh; + int32 _width, _height; FlatButton _addButton, _retryButton, _cancelButton; FlatInput _firstInput, _lastInput, _phoneInput; diff --git a/Telegram/SourceFiles/boxes/usernamebox.cpp b/Telegram/SourceFiles/boxes/usernamebox.cpp new file mode 100644 index 0000000000..4bac482ce9 --- /dev/null +++ b/Telegram/SourceFiles/boxes/usernamebox.cpp @@ -0,0 +1,272 @@ +/* +This file is part of Telegram Desktop, +an unofficial desktop messaging app, see https://telegram.org + +Telegram Desktop is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +It is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE +Copyright (c) 2014 John Preston, https://tdesktop.com +*/ +#include "stdafx.h" +#include "lang.h" + +#include "application.h" +#include "usernamebox.h" +#include "mainwidget.h" +#include "window.h" + +UsernameInput::UsernameInput(QWidget *parent, const style::flatInput &st, const QString &ph, const QString &val) : FlatInput(parent, st, ph, val) { +} + +void UsernameInput::correctValue(QKeyEvent *e, const QString &was) { + QString oldText(text()), newText; + int32 oldPos(cursorPosition()), newPos(-1), oldLen(oldText.length()); + newText.reserve(oldLen); + + for (int32 i = 0; i < oldLen; ++i) { + if (i == oldPos) { + newPos = newText.length(); + } + + QChar ch = oldText[i]; + if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z') || (ch >= '0' && ch <= '9') || ch == '_' || (ch == '@' && !i)) { + if (newText.size() < MaxUsernameLength) { + newText.append(ch); + } + } + } + if (newPos < 0) { + newPos = newText.length(); + } + if (newText != oldText) { + setText(newText); + setCursorPosition(newPos); + } +} + +UsernameBox::UsernameBox() : +_saveButton(this, lang(lng_settings_save), st::usernameDone), +_cancelButton(this, lang(lng_cancel), st::usernameCancel), +_usernameInput(this, st::inpAddContact, qsl("@username"), App::self()->username), +_saveRequest(0), _checkRequest(0), _about(st::usernameWidth - 2 * st::addContactTitlePos.x()), +a_opacity(0, 1), _hiding(false) { + _about.setRichText(st::usernameFont, lang(lng_username_about)); + initBox(); +} + +void UsernameBox::initBox() { + _width = st::usernameWidth; + _height = st::addContactTitleHeight + st::addContactPadding.top() + _usernameInput.height() + st::addContactPadding.bottom() + _about.countHeight(st::usernameWidth - 2 * st::addContactTitlePos.x()) + st::usernameSkip + _saveButton.height(); + _usernameInput.setGeometry(st::addContactPadding.left(), st::addContactTitleHeight + st::addContactPadding.top(), _width - st::addContactPadding.left() - st::addContactPadding.right(), _usernameInput.height()); + + int32 buttonTop = _height - _cancelButton.height(); + _cancelButton.move(0, buttonTop); + _saveButton.move(_width - _saveButton.width(), buttonTop); + + connect(&_saveButton, SIGNAL(clicked()), this, SLOT(onSave())); + connect(&_cancelButton, SIGNAL(clicked()), this, SLOT(onCancel())); + connect(&_usernameInput, SIGNAL(changed()), this, SLOT(onChanged())); + + _checkTimer.setSingleShot(true); + connect(&_checkTimer, SIGNAL(timeout()), this, SLOT(onCheck())); + + resize(_width, _height); + + showAll(); + _cache = myGrab(this, rect()); + hideAll(); +} + +void UsernameBox::hideAll() { + _usernameInput.hide(); + _saveButton.hide(); + _cancelButton.hide(); +} + +void UsernameBox::showAll() { + _usernameInput.show(); + _saveButton.show(); + _cancelButton.show(); +} + +void UsernameBox::keyPressEvent(QKeyEvent *e) { + if (e->key() == Qt::Key_Enter || e->key() == Qt::Key_Return) { + onSave(); + } else if (e->key() == Qt::Key_Escape) { + onCancel(); + } +} + +void UsernameBox::parentResized() { + QSize s = parentWidget()->size(); + setGeometry((s.width() - _width) / 2, (s.height() - _height) / 2, _width, _height); + update(); +} + +void UsernameBox::paintEvent(QPaintEvent *e) { + QPainter p(this); + if (_cache.isNull()) { + if (!_hiding || a_opacity.current() > 0.01) { + // fill bg + p.fillRect(QRect(QPoint(0, 0), size()), st::boxBG->b); + + // paint shadows + p.fillRect(0, st::addContactTitleHeight, _width, st::scrollDef.topsh, st::scrollDef.shColor->b); + p.fillRect(0, size().height() - st::usernameCancel.height - st::scrollDef.bottomsh, _width, st::scrollDef.bottomsh, st::scrollDef.shColor->b); + + // paint button sep + p.fillRect(st::usernameCancel.width, size().height() - st::usernameCancel.height, st::lineWidth, st::usernameCancel.height, st::btnSelectSep->b); + + // draw box title / text + p.setPen(st::black->p); + p.setFont(st::addContactTitleFont->f); + p.drawText(st::addContactTitlePos.x(), st::addContactTitlePos.y() + st::addContactTitleFont->ascent, lang(lng_username_title)); + + if (!_errorText.isEmpty()) { + p.setPen(st::setErrColor->p); + p.setFont(st::setErrFont->f); + int32 w = st::setErrFont->m.width(_errorText); + p.drawText((_width - w) / 2, _usernameInput.y() + _usernameInput.height() + ((st::usernameSkip - st::setErrFont->height) / 2) + st::setErrFont->ascent, _errorText); + } + p.setPen(st::usernameColor->p); + _about.draw(p, st::addContactTitlePos.x(), _usernameInput.y() + _usernameInput.height() + st::usernameSkip, width() - 2 * st::addContactTitlePos.x()); + } + } else { + p.setOpacity(a_opacity.current()); + p.drawPixmap(0, 0, _cache); + } +} + +void UsernameBox::animStep(float64 dt) { + if (dt >= 1) { + a_opacity.finish(); + _cache = QPixmap(); + if (!_hiding) { + showAll(); + _usernameInput.setFocus(); + } + } else { + a_opacity.update(dt, anim::linear); + } + update(); +} + +void UsernameBox::onSave() { + if (_saveRequest) return; + + _sentUsername = getName(); + _saveRequest = MTP::send(MTPaccount_UpdateUsername(MTP_string(_sentUsername)), rpcDone(&UsernameBox::onUpdateDone), rpcFail(&UsernameBox::onUpdateFail)); +} + +void UsernameBox::onCheck() { + if (_checkRequest) { + MTP::cancel(_checkRequest); + } + QString name = getName(); + if (name.size() >= MinUsernameLength) { + _checkRequest = MTP::send(MTPaccount_CheckUsername(MTP_string(name)), rpcDone(&UsernameBox::onCheckDone), rpcFail(&UsernameBox::onCheckFail)); + } +} + +void UsernameBox::onChanged() { + QString name = getName(); + if (name.isEmpty()) { + if (!_errorText.isEmpty()) { + _errorText = QString(); + update(); + } + _checkTimer.stop(); + } else if (name.size() < MinUsernameLength) { + if (_errorText != lang(lng_username_too_short)) { + _errorText = lang(lng_username_too_short); + update(); + } + _checkTimer.stop(); + } else { + if (!_errorText.isEmpty()) { + _errorText = QString(); + update(); + } + _checkTimer.start(UsernameCheckTimeout); + } +} + +void UsernameBox::onUpdateDone(const MTPUser &user) { + App::feedUsers(MTP_vector<MTPUser>(QVector<MTPUser>(1, user))); + emit closed(); +} + +bool UsernameBox::onUpdateFail(const RPCError &error) { + _saveRequest = 0; + QString err(error.type()), name = getName(); + if (err == "USERNAME_NOT_MODIFIED") { + App::self()->setName(textOneLine(App::self()->firstName), textOneLine(App::self()->lastName), textOneLine(App::self()->nameOrPhone), textOneLine(name)); + emit closed(); + return true; + } else if (err == "USERNAME_INVALID") { + _usernameInput.setFocus(); + _usernameInput.notaBene(); + _errorText = lang(lng_username_invalid); + return true; + } else if (err == "USERNAME_OCCUPIED") { + _usernameInput.setFocus(); + _usernameInput.notaBene(); + _errorText = lang(lng_username_occupied); + return true; + } + _usernameInput.setFocus(); + return true; +} + +void UsernameBox::onCheckDone(const MTPBool &result) { + _checkRequest = 0; + QString newError = result.v ? QString() : lang(lng_username_occupied); + if (_errorText != newError) { + _errorText = newError; + update(); + } +} + +bool UsernameBox::onCheckFail(const RPCError &error) { + _checkRequest = 0; + QString err(error.type()); + if (err == "USERNAME_INVALID") { + _errorText = lang(lng_username_invalid); + update(); + return true; + } else if (err == "USERNAME_OCCUPIED") { + _errorText = lang(lng_username_occupied); + update(); + return true; + } + _usernameInput.setFocus(); + return true; +} + +QString UsernameBox::getName() const { + return _usernameInput.text().replace('@', QString()).trimmed(); +} + +void UsernameBox::onCancel() { + emit closed(); +} + +void UsernameBox::startHide() { + _hiding = true; + if (_cache.isNull()) { + _cache = myGrab(this, rect()); + hideAll(); + } + a_opacity.start(0); +} + +UsernameBox::~UsernameBox() { +} diff --git a/Telegram/SourceFiles/boxes/usernamebox.h b/Telegram/SourceFiles/boxes/usernamebox.h new file mode 100644 index 0000000000..2179d8d61c --- /dev/null +++ b/Telegram/SourceFiles/boxes/usernamebox.h @@ -0,0 +1,82 @@ +/* +This file is part of Telegram Desktop, +an unofficial desktop messaging app, see https://telegram.org + +Telegram Desktop is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +It is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE +Copyright (c) 2014 John Preston, https://tdesktop.com +*/ +#pragma once + +#include "layerwidget.h" + +class UsernameInput : public FlatInput { +public: + + UsernameInput(QWidget *parent, const style::flatInput &st, const QString &ph = QString(), const QString &val = QString()); + +protected: + + void correctValue(QKeyEvent *e, const QString &was); + +}; + +class UsernameBox : public LayeredWidget, public RPCSender { + Q_OBJECT + +public: + + UsernameBox(); + void parentResized(); + void animStep(float64 dt); + void keyPressEvent(QKeyEvent *e); + void paintEvent(QPaintEvent *e); + void startHide(); + ~UsernameBox(); + +public slots: + + void onSave(); + void onCancel(); + + void onCheck(); + void onChanged(); + +private: + + void hideAll(); + void showAll(); + + void onUpdateDone(const MTPUser &result); + bool onUpdateFail(const RPCError &error); + + void onCheckDone(const MTPBool &result); + bool onCheckFail(const RPCError &error); + + QString getName() const; + void initBox(); + + int32 _width, _height; + FlatButton _saveButton, _cancelButton; + UsernameInput _usernameInput; + + QPixmap _cache; + + mtpRequestId _saveRequest, _checkRequest; + QString _sentUsername, _errorText; + + Text _about; + QTimer _checkTimer; + + anim::fvalue a_opacity; + bool _hiding; +}; diff --git a/Telegram/SourceFiles/config.h b/Telegram/SourceFiles/config.h index 27c02fe736..0ceb0af539 100644 --- a/Telegram/SourceFiles/config.h +++ b/Telegram/SourceFiles/config.h @@ -88,6 +88,11 @@ enum { PreloadHeightsCount = 3, // when 3 screens to scroll left make a preload request EmojiPadPerRow = 7, EmojiPadRowsPerPage = 6, + + SearchPeopleLimit = 5, + MinUsernameLength = 5, + MaxUsernameLength = 32, + UsernameCheckTimeout = 200, }; #ifdef Q_OS_WIN diff --git a/Telegram/SourceFiles/dialogswidget.cpp b/Telegram/SourceFiles/dialogswidget.cpp index c95880dcb7..0e69cb5f51 100644 --- a/Telegram/SourceFiles/dialogswidget.cpp +++ b/Telegram/SourceFiles/dialogswidget.cpp @@ -26,7 +26,7 @@ Copyright (c) 2014 John Preston, https://tdesktop.com #include "boxes/newgroupbox.h" DialogsListWidget::DialogsListWidget(QWidget *parent, MainWidget *main) : QWidget(parent), -dialogs(false), contactsNoDialogs(true), contacts(true), sel(0), contactSel(false), selByMouse(false), filteredSel(-1), searchedCount(0), searchedSel(-1), _lastSearchId(0), _state(DefaultState) { +dialogs(false), contactsNoDialogs(true), contacts(true), sel(0), contactSel(false), selByMouse(false), filteredSel(-1), searchedCount(0), searchedSel(-1), peopleSel(-1), _lastSearchId(0), _state(DefaultState) { connect(main, SIGNAL(dialogToTop(const History::DialogLinks &)), this, SLOT(onDialogToTop(const History::DialogLinks &))); connect(main, SIGNAL(peerNameChanged(PeerData *, const PeerData::Names &, const PeerData::NameFirstChars &)), this, SLOT(onPeerNameChanged(PeerData *, const PeerData::Names &, const PeerData::NameFirstChars &))); connect(main, SIGNAL(peerPhotoChanged(PeerData *)), this, SLOT(onPeerPhotoChanged(PeerData *))); @@ -76,6 +76,33 @@ void DialogsListWidget::paintEvent(QPaintEvent *e) { } } + if (!peopleResults.isEmpty()) { + p.fillRect(0, 0, width(), st::searchedBarHeight, st::searchedBarBG->b); + p.setFont(st::searchedBarFont->f); + p.setPen(st::searchedBarColor->p); + p.drawText(QRect(0, 0, width(), st::searchedBarHeight), lang(lng_search_global_results), style::al_center); + p.translate(0, st::searchedBarHeight); + + int32 skip = filterResults.size() * st::dlgHeight + st::searchedBarHeight; + int32 from = (r.top() - skip) / int32(st::dlgHeight); + if (from < 0) { + from = 0; + } else if (from > peopleResults.size()) { + from = peopleResults.size(); + } + p.translate(0, from * st::dlgHeight); + if (from < peopleResults.size()) { + int32 to = ((r.bottom() - skip) / int32(st::dlgHeight)) + 1, w = width(); + if (to > peopleResults.size()) to = peopleResults.size(); + for (; from < to; ++from) { + bool active = (peopleResults[from] == App::main()->activePeer() && !App::main()->activeMsgId()); + bool selected = (from == peopleSel); + peopleResultPaint(peopleResults[from], p, w, active, selected); + p.translate(0, st::dlgHeight); + } + } + } + if (_state == SearchedState || !searchResults.isEmpty()) { QString text = searchResults.isEmpty() ? lang(lng_search_no_results) : lang(searchedCount > 1 ? lng_search_n_results : lng_search_one_result).replace(qsl("{count}"), QString::number(searchedCount)); p.fillRect(0, 0, width(), st::searchedBarHeight, st::searchedBarBG->b); @@ -85,13 +112,17 @@ void DialogsListWidget::paintEvent(QPaintEvent *e) { p.translate(0, st::searchedBarHeight); int32 skip = filterResults.size() * st::dlgHeight + st::searchedBarHeight; + if (!peopleResults.isEmpty()) skip += peopleResults.size() * st::dlgHeight + st::searchedBarHeight; int32 from = (r.top() - skip) / int32(st::dlgHeight); - if (from < 0) from = 0; + if (from < 0) { + from = 0; + } else if (from > searchResults.size()) { + from = searchResults.size(); + } + p.translate(0, from * st::dlgHeight); if (from < searchResults.size()) { int32 to = ((r.bottom() - skip) / int32(st::dlgHeight)) + 1, w = width(); if (to > searchResults.size()) to = searchResults.size(); - - p.translate(0, from * st::dlgHeight); for (; from < to; ++from) { bool active = (searchResults[from]->_item->id == App::main()->activeMsgId()); bool selected = (from == searchedSel); @@ -103,6 +134,34 @@ void DialogsListWidget::paintEvent(QPaintEvent *e) { } } +void DialogsListWidget::peopleResultPaint(UserData *user, QPainter &p, int32 w, bool act, bool sel) const { + QRect fullRect(0, 0, w, st::dlgHeight); + p.fillRect(fullRect, (act ? st::dlgActiveBG : (sel ? st::dlgHoverBG : st::dlgBG))->b); + + History *history = App::history(user->id); + + p.drawPixmap(st::dlgPaddingHor, st::dlgPaddingVer, history->peer->photo->pix(st::dlgPhotoSize)); + + int32 nameleft = st::dlgPaddingHor + st::dlgPhotoSize + st::dlgPhotoPadding; + int32 namewidth = w - nameleft - st::dlgPaddingHor; + QRect rectForName(nameleft, st::dlgPaddingVer + st::dlgNameTop, namewidth, st::msgNameFont->height); + + // draw chat icon + if (history->peer->chat) { + p.drawPixmap(QPoint(rectForName.left() + st::dlgChatImgLeft, rectForName.top() + st::dlgChatImgTop), App::sprite(), (act ? st::dlgActiveChatImg : st::dlgChatImg)); + rectForName.setLeft(rectForName.left() + st::dlgChatImgSkip); + } + + // draw unread + QRect tr(nameleft, st::dlgPaddingVer + st::dlgFont->height + st::dlgSep, namewidth, st::dlgFont->height); + p.setPen((act ? st::dlgActiveColor : st::dlgSystemColor)->p); + p.setFont(st::dlgHistFont->f); + p.drawText(tr.left(), tr.top() + st::dlgHistFont->ascent, st::dlgHistFont->m.elidedText('@' + user->username, Qt::ElideRight, tr.width())); + + p.setPen((act ? st::dlgActiveColor : st::dlgNameColor)->p); + history->nameText.drawElided(p, rectForName.left(), rectForName.top(), rectForName.width()); +} + void DialogsListWidget::activate() { if (_state == DefaultState && !sel) { selectSkip(1); @@ -147,9 +206,21 @@ void DialogsListWidget::onUpdateSelected(bool force) { parentWidget()->update(); } } + mouseY -= filterResults.size() * st::dlgHeight + st::searchedBarHeight; + if (!peopleResults.isEmpty()) { + int32 newPeopleSel = (mouseY >= 0) ? (mouseY / int32(st::dlgHeight)) : -1; + if (newPeopleSel < 0 || newPeopleSel >= peopleResults.size()) { + newPeopleSel = -1; + } + if (newPeopleSel != peopleSel) { + peopleSel = newPeopleSel; + setCursor((peopleSel >= 0) ? style::cur_pointer : style::cur_default); + parentWidget()->update(); + } + mouseY -= peopleResults.size() * st::dlgHeight + st::searchedBarHeight; + } if (_state == SearchedState && !searchResults.isEmpty()) { - mouseY -= filterResults.size() * st::dlgHeight + st::searchedBarHeight; - int32 newSearchedSel = (mouseY >= 0) ? mouseY / int32(st::dlgHeight) : -1; + int32 newSearchedSel = (mouseY >= 0) ? (mouseY / int32(st::dlgHeight)) : -1; if (newSearchedSel < 0 || newSearchedSel >= searchResults.size()) { newSearchedSel = -1; } @@ -276,8 +347,18 @@ void DialogsListWidget::dlgUpdated(History *history) { } ++cnt; } - if (!searchResults.isEmpty()) { + if (!peopleResults.isEmpty()) { int32 cnt = 0, add = filterResults.size() * st::dlgHeight + st::searchedBarHeight; + for (PeopleResults::const_iterator i = peopleResults.cbegin(), e = peopleResults.cend(); i != e; ++i) { + if ((*i) == history->peer) { + update(0, add + cnt * st::dlgHeight, width(), st::dlgHeight); + break; + } + ++cnt; + } + } + if (!searchResults.isEmpty()) { + int32 cnt = 0, add = (filterResults.size() + peopleResults.size()) * st::dlgHeight + (peopleResults.isEmpty() ? 0 : st::searchedBarHeight) + st::searchedBarHeight; for (SearchResults::const_iterator i = searchResults.cbegin(), e = searchResults.cend(); i != e; ++i) { if ((*i)->_item->history() == history) { update(0, add + cnt * st::dlgHeight, width(), st::dlgHeight); @@ -352,6 +433,7 @@ void DialogsListWidget::onFilterUpdate(QString newFilter, bool force) { if (filter.isEmpty()) { _state = DefaultState; filterResults.clear(); + peopleResults.clear(); searchResults.clear(); _lastSearchId = 0; } else { @@ -441,7 +523,8 @@ DialogsListWidget::~DialogsListWidget() { clearSearchResults(); } -void DialogsListWidget::clearSearchResults() { +void DialogsListWidget::clearSearchResults(bool clearPeople) { + if (clearPeople) peopleResults.clear(); if (!searchResults.isEmpty()) { for (SearchResults::const_iterator i = searchResults.cbegin(), e = searchResults.cend(); i != e; ++i) { delete *i; @@ -490,7 +573,7 @@ void DialogsListWidget::dialogsReceived(const QVector<MTPDialog> &added) { void DialogsListWidget::searchReceived(const QVector<MTPMessage> &messages, bool fromStart, int32 fullCount) { if (fromStart) { - clearSearchResults(); + clearSearchResults(false); } for (QVector<MTPMessage>::const_iterator i = messages.cbegin(), e = messages.cend(); i != e; ++i) { HistoryItem *item = App::histories().addToBack(*i, -1); @@ -504,6 +587,19 @@ void DialogsListWidget::searchReceived(const QVector<MTPMessage> &messages, bool refresh(); } +void DialogsListWidget::peopleReceived(const QVector<MTPContactFound> &people) { + peopleResults.clear(); + peopleResults.reserve(people.size()); + for (QVector<MTPContactFound>::const_iterator i = people.cbegin(), e = people.cend(); i != e; ++i) { + int32 uid = i->c_contactFound().vuser_id.v; + History *h = App::historyLoaded(uid); + if (h && !h->isEmpty()) continue; // skip dialogs + + peopleResults.push_back(App::user(uid)); + } + refresh(); +} + void DialogsListWidget::contactsReceived(const QVector<MTPContact> &contacts) { for (QVector<MTPContact>::const_iterator i = contacts.cbegin(), e = contacts.cend(); i != e; ++i) { addNewContact(i->c_contact().vuser_id.v); @@ -543,9 +639,9 @@ void DialogsListWidget::refresh(bool toTop) { if (_state == DefaultState) { h = (dialogs.list.count + contactsNoDialogs.list.count) * st::dlgHeight; } else if (_state == FilteredState) { - h = (filterResults.count() + searchResults.count()) * st::dlgHeight + (searchResults.isEmpty() ? 0 : st::searchedBarHeight); + h = (filterResults.count() + peopleResults.count() + searchResults.count()) * st::dlgHeight + (peopleResults.isEmpty() ? 0 : st::searchedBarHeight) + (searchResults.isEmpty() ? 0 : st::searchedBarHeight); } else if (_state == SearchedState) { - h = (filterResults.count() + searchResults.count()) * st::dlgHeight + st::searchedBarHeight; + h = (filterResults.count() + peopleResults.count() + searchResults.count()) * st::dlgHeight + (peopleResults.isEmpty() ? 0 : st::searchedBarHeight) + st::searchedBarHeight; } resize(width(), h); if (toTop) { @@ -562,8 +658,7 @@ void DialogsListWidget::setMouseSel(bool msel, bool toTop) { sel = (dialogs.list.count ? dialogs.list.begin : (contactsNoDialogs.list.count ? contactsNoDialogs.list.begin : 0)); contactSel = !dialogs.list.count && contactsNoDialogs.list.count; } else if (_state == FilteredState || _state == SearchedState) { // don't select first elem in search - filteredSel = -1; - searchedSel = -1; + filteredSel = peopleSel = searchedSel = -1; } } } @@ -572,7 +667,7 @@ void DialogsListWidget::setState(State newState) { _state = newState; if (_state == DefaultState) { clearSearchResults(); - searchedSel = filteredSel = -1; + searchedSel = peopleSel = filteredSel = -1; } else if (_state == DefaultState || _state == SearchedState) { filterResults.clear(); filteredSel = -1; @@ -589,6 +684,7 @@ void DialogsListWidget::clearFilter() { if (_state == FilteredState || _state == SearchedState) { _state = DefaultState; filterResults.clear(); + peopleResults.clear(); searchResults.clear(); _lastSearchId = 0; filter = QString(); @@ -606,7 +702,6 @@ void DialogsListWidget::addDialog(const MTPDdialog &dialog) { } void DialogsListWidget::selectSkip(int32 direction) { - int32 skipMore = 0; if (_state == DefaultState) { if (!sel) { if (dialogs.list.count && direction > 0) { @@ -634,55 +729,40 @@ void DialogsListWidget::selectSkip(int32 direction) { int32 fromY = (sel->pos + (contactSel ? dialogs.list.count : 0)) * st::dlgHeight; emit mustScrollTo(fromY, fromY + st::dlgHeight); } else if (_state == FilteredState || _state == SearchedState) { - if (filterResults.isEmpty() && searchResults.isEmpty()) return; - if (filteredSel < 0 || filteredSel >= filterResults.size()) { - if (searchedSel < 0 || searchedSel >= searchResults.size()) { - if (filterResults.isEmpty()) { - searchedSel = 0; - } else { - filteredSel = 0; - } - } else if (direction < 0 && !searchedSel && !filterResults.isEmpty()) { - searchedSel = -1; - filteredSel = filterResults.size() + direction; - if (filteredSel < 0) filteredSel = 0; + if (filterResults.isEmpty() && peopleResults.isEmpty() && searchResults.isEmpty()) return; + if ((filteredSel < 0 || filteredSel >= filterResults.size()) && + (peopleSel < 0 || peopleSel >= peopleResults.size()) && + (searchedSel < 0 || searchedSel >= searchResults.size())) { + if (filterResults.isEmpty() && peopleResults.isEmpty()) { + searchedSel = 0; + } else if (filterResults.isEmpty()) { + peopleSel = 0; } else { - if (direction < -1 && searchedSel + direction < 0) { - skipMore = direction + searchedSel; - if (skipMore == direction) { - skipMore = 0; - } else { - direction -= skipMore; - } - } - searchedSel = snap(searchedSel + direction, 0, searchResults.size() - 1); + filteredSel = 0; } - } else if (direction > 0 && filteredSel == filterResults.size() - 1 && !searchResults.isEmpty()) { - filteredSel = -1; - searchedSel = direction - 1; - if (searchedSel > searchResults.size() - 1) searchedSel = searchResults.size() - 1; } else { - if (direction > 1 && filteredSel + direction > filterResults.size() - 1) { - skipMore = direction - (filterResults.size() - 1 - filteredSel); - if (skipMore == direction) { - skipMore = 0; - } else { - direction -= skipMore; - } + int32 cur = (filteredSel >= 0 && filteredSel < filterResults.size()) ? filteredSel : ((peopleSel >= 0 && peopleSel < peopleResults.size()) ? (peopleSel + filterResults.size()) : (searchedSel + peopleResults.size() + filterResults.size())); + cur = snap(cur + direction, 0, filterResults.size() + peopleResults.size() + searchResults.size() - 1); + if (cur < filterResults.size()) { + filteredSel = cur; + peopleSel = searchedSel = -1; + } else if (cur < filterResults.size() + peopleResults.size()) { + peopleSel = cur - filterResults.size(); + filteredSel = searchedSel = -1; + } else { + filteredSel = peopleSel = -1; + searchedSel = cur - filterResults.size() - peopleResults.size(); } - filteredSel = snap(filteredSel + direction, 0, filterResults.size() - 1); } if (filteredSel >= 0 && filteredSel < filterResults.size()) { emit mustScrollTo(filteredSel * st::dlgHeight, (filteredSel + 1) * st::dlgHeight); + } else if (peopleSel >= 0 && peopleSel < peopleResults.size()) { + emit mustScrollTo((peopleSel + filterResults.size()) * st::dlgHeight + (peopleSel ? st::searchedBarHeight : 0), (peopleSel + filterResults.size() + 1) * st::dlgHeight); } else { - emit mustScrollTo((searchedSel + filterResults.size()) * st::dlgHeight + (searchedSel ? st::searchedBarHeight : 0), (searchedSel + filterResults.size() + 1) * st::dlgHeight + st::searchedBarHeight); + emit mustScrollTo((searchedSel + peopleResults.size() + filterResults.size()) * st::dlgHeight + (peopleResults.size() ? st::searchedBarHeight : 0) + (searchedSel ? st::searchedBarHeight : 0), (searchedSel + peopleResults.size() + filterResults.size() + 1) * st::dlgHeight + (peopleResults.size() ? st::searchedBarHeight : 0) + st::searchedBarHeight); } } - if (skipMore) { - return selectSkip(skipMore); - } else { - parentWidget()->update(); - } + parentWidget()->update(); } void DialogsListWidget::scrollToPeer(const PeerId &peer, MsgId msgId) { @@ -798,8 +878,18 @@ void DialogsListWidget::loadPeerPhotos(int32 yFrom) { from = (yFrom > st::searchedBarHeight ? ((yFrom - st::searchedBarHeight) / int32(st::dlgHeight)) : 0) - filterResults.size(); if (from < 0) from = 0; - if (from < searchResults.size()) { + if (from < peopleResults.size()) { int32 to = (yTo > st::searchedBarHeight ? ((yTo - st::searchedBarHeight) / int32(st::dlgHeight)) : 0) - filterResults.size() + 1, w = width(); + if (to > peopleResults.size()) to = peopleResults.size(); + + for (; from < to; ++from) { + peopleResults[from]->photo->load(); + } + } + from = (yFrom > ((peopleResults.isEmpty() ? 0 : st::searchedBarHeight) + st::searchedBarHeight) ? ((yFrom - (peopleResults.isEmpty() ? 0 : st::searchedBarHeight) - st::searchedBarHeight) / int32(st::dlgHeight)) : 0) - filterResults.size() - peopleResults.size(); + if (from < 0) from = 0; + if (from < searchResults.size()) { + int32 to = (yTo >(peopleResults.isEmpty() ? 0 : st::searchedBarHeight) + st::searchedBarHeight ? ((yTo - (peopleResults.isEmpty() ? 0 : st::searchedBarHeight) - st::searchedBarHeight) / int32(st::dlgHeight)) : 0) - filterResults.size() - peopleResults.size() + 1, w = width(); if (to > searchResults.size()) to = searchResults.size(); for (; from < to; ++from) { @@ -817,15 +907,21 @@ bool DialogsListWidget::choosePeer() { } else if (_state == FilteredState || _state == SearchedState) { if (filteredSel >= 0 && filteredSel < filterResults.size()) { history = filterResults[filteredSel]->history; + } else if (peopleSel >= 0 && peopleSel < peopleResults.size()) { + history = App::history(peopleResults[peopleSel]->id); } else if (searchedSel >= 0 && searchedSel < searchResults.size()) { history = searchResults[searchedSel]->_item->history(); msgId = searchResults[searchedSel]->_item->id; } } if (history) { - emit peerChosen(history->peer->id, msgId); + bool chosen = (!App::main()->selectingPeer() && (_state == FilteredState || _state == SearchedState) && filteredSel >= 0 && filteredSel < filterResults.size()); + App::main()->showPeer(history->peer->id, msgId); + if (chosen) { + emit searchResultChosen(); + } sel = 0; - filteredSel = -1; + filteredSel = peopleSel = searchedSel = -1; parentWidget()->update(); return true; } @@ -835,10 +931,10 @@ bool DialogsListWidget::choosePeer() { void DialogsListWidget::destroyData() { sel = 0; contactSel = false; - filteredSel = 0; + filteredSel = -1; filterResults.clear(); filter.clear(); - searchedSel = 0; + searchedSel = peopleSel = -1; clearSearchResults(); contacts.clear(); contactsNoDialogs.clear(); @@ -883,6 +979,33 @@ void DialogsListWidget::peerBefore(const PeerData *inPeer, MsgId inMsg, PeerData return; } } + if (searchResults.at(0)->_item->history()->peer == inPeer && searchResults.at(0)->_item->id == inMsg) { + outMsg = 0; + if (peopleResults.isEmpty()) { + if (filterResults.isEmpty()) { + outPeer = 0; + } else { + outPeer = filterResults.back()->history->peer; + } + } else { + outPeer = peopleResults.back(); + } + return; + } + } + if (!peopleResults.isEmpty() && peopleResults.at(0) == inPeer) { + outPeer = filterResults.isEmpty() ? 0 : filterResults.back()->history->peer; + outMsg = 0; + return; + } + if (!peopleResults.isEmpty()) { + for (PeopleResults::const_iterator b = peopleResults.cbegin(), i = b + 1, e = peopleResults.cend(); i != e; ++i) { + if ((*i) == inPeer) { + outPeer = (*(i - 1)); + outMsg = 0; + return; + } + } } if (filterResults.isEmpty() || filterResults.at(0)->history->peer == inPeer) { outPeer = 0; @@ -892,8 +1015,7 @@ void DialogsListWidget::peerBefore(const PeerData *inPeer, MsgId inMsg, PeerData for (FilteredDialogs::const_iterator b = filterResults.cbegin(), i = b + 1, e = filterResults.cend(); i != e; ++i) { if ((*i)->history->peer == inPeer) { - FilteredDialogs::const_iterator j = i - 1; - outPeer = (*j)->history->peer; + outPeer = (*(i - 1))->history->peer; outMsg = 0; return; } @@ -943,11 +1065,32 @@ void DialogsListWidget::peerAfter(const PeerData *inPeer, MsgId inMsg, PeerData } } } + for (PeopleResults::const_iterator i = peopleResults.cbegin(), e = peopleResults.cend(); i != e; ++i) { + if ((*i) == inPeer) { + ++i; + if (i == e && !searchResults.isEmpty()) { + outPeer = searchResults.front()->_item->history()->peer; + outMsg = searchResults.front()->_item->id; + } else { + outPeer = (i == e) ? 0 : (*i); + outMsg = 0; + } + return; + } + } for (FilteredDialogs::const_iterator i = filterResults.cbegin(), e = filterResults.cend(); i != e; ++i) { if ((*i)->history->peer == inPeer) { ++i; - outPeer = (i == e) ? 0 : (*i)->history->peer; - outMsg = 0; + if (i == e && !peopleResults.isEmpty()) { + outPeer = peopleResults.front(); + outMsg = 0; + } else if (i == e && !searchResults.isEmpty()) { + outPeer = searchResults.front()->_item->history()->peer; + outMsg = searchResults.front()->_item->id; + } else { + outPeer = (i == e) ? 0 : (*i)->history->peer; + outMsg = 0; + } return; } } @@ -964,6 +1107,14 @@ DialogsIndexed &DialogsListWidget::dialogsList() { return dialogs; } +DialogsListWidget::FilteredDialogs &DialogsListWidget::filteredList() { + return filterResults; +} + +DialogsListWidget::PeopleResults &DialogsListWidget::peopleList() { + return peopleResults; +} + DialogsListWidget::SearchResults &DialogsListWidget::searchList() { return searchResults; } @@ -985,13 +1136,14 @@ DialogsWidget::DialogsWidget(MainWidget *parent) : QWidget(parent) , scroll(this, st::dlgScroll) , list(&scroll, parent) , _searchFull(false) +, _peopleFull(false) { scroll.setWidget(&list); scroll.setFocusPolicy(Qt::NoFocus); connect(&list, SIGNAL(mustScrollTo(int, int)), &scroll, SLOT(scrollToY(int, int))); connect(&list, SIGNAL(dialogToTopFrom(int)), this, SLOT(onDialogToTopFrom(int))); - connect(&list, SIGNAL(peerChosen(const PeerId &, MsgId)), this, SIGNAL(peerChosen(const PeerId &, MsgId))); connect(&list, SIGNAL(searchMessages()), this, SLOT(onNeedSearchMessages())); + connect(&list, SIGNAL(searchResultChosen()), this, SLOT(onCancel())); connect(&scroll, SIGNAL(geometryChanged()), &list, SLOT(onParentGeometryChanged())); connect(&scroll, SIGNAL(scrolled()), &list, SLOT(onUpdateSelected())); connect(&scroll, SIGNAL(scrolled()), this, SLOT(onListScroll())); @@ -1082,10 +1234,6 @@ void DialogsWidget::onCancel() { emit cancelled(); } -void DialogsWidget::clearFiltered() { - onCancel(); -} - void DialogsWidget::itemRemoved(HistoryItem *item) { list.itemRemoved(item); } @@ -1164,6 +1312,9 @@ bool DialogsWidget::onSearchMessages(bool searchCache) { if (_searchRequest) { _searchRequest = 0; } + if (_peopleRequest) { + _peopleRequest = 0; + } return true; } if (searchCache) { @@ -1181,6 +1332,22 @@ bool DialogsWidget::onSearchMessages(bool searchCache) { _searchRequest = MTP::send(MTPmessages_Search(MTP_inputPeerEmpty(), MTP_string(_searchQuery), MTP_inputMessagesFilterEmpty(), MTP_int(0), MTP_int(0), MTP_int(0), MTP_int(0), MTP_int(SearchPerPage)), rpcDone(&DialogsWidget::searchReceived, true), rpcFail(&DialogsWidget::searchFailed)); _searchQueries.insert(_searchRequest, _searchQuery); } + if (q.size() >= MinUsernameLength) { + if (searchCache) { + PeopleCache::const_iterator i = _peopleCache.constFind(q); + if (i != _peopleCache.cend()) { + _peopleQuery = q; + _peopleRequest = 0; + peopleReceived(i.value(), 0); + return true; + } + } else if (_peopleQuery != q) { + _peopleQuery = q; + _peopleFull = false; + _peopleRequest = MTP::send(MTPcontacts_Search(MTP_string(_peopleQuery), MTP_int(SearchPeopleLimit)), rpcDone(&DialogsWidget::peopleReceived), rpcFail(&DialogsWidget::peopleFailed)); + _peopleQueries.insert(_peopleRequest, _peopleQuery); + } + } return false; } @@ -1267,6 +1434,28 @@ void DialogsWidget::searchReceived(bool fromStart, const MTPmessages_Messages &r } } +void DialogsWidget::peopleReceived(const MTPcontacts_Found &result, mtpRequestId req) { + if (list.state() == DialogsListWidget::FilteredState || list.state() == DialogsListWidget::SearchedState) { + PeopleQueries::iterator i = _peopleQueries.find(req); + if (i != _peopleQueries.cend()) { + _peopleCache[i.value()] = result; + _peopleQueries.erase(i); + } + } + + if (_peopleRequest == req) { + switch (result.type()) { + case mtpc_contacts_found: { + App::feedUsers(result.c_contacts_found().vusers); + list.peopleReceived(result.c_contacts_found().vresults.c_vector().v); + } break; + } + + _peopleRequest = 0; + onListScroll(); + } +} + bool DialogsWidget::searchFailed(const RPCError &error, mtpRequestId req) { if (_searchRequest == req) { _searchRequest = 0; @@ -1275,6 +1464,14 @@ bool DialogsWidget::searchFailed(const RPCError &error, mtpRequestId req) { return true; } +bool DialogsWidget::peopleFailed(const RPCError &error, mtpRequestId req) { + if (_peopleRequest == req) { + _peopleRequest = 0; + _peopleFull = true; + } + return true; +} + bool DialogsWidget::addNewContact(int32 uid, bool show) { _filter.setText(QString()); onFilterUpdate(); @@ -1288,8 +1485,7 @@ bool DialogsWidget::addNewContact(int32 uid, bool show) { void DialogsWidget::onListScroll() { list.loadPeerPhotos(scroll.scrollTop()); if (list.state() == DialogsListWidget::SearchedState) { - DialogsListWidget::SearchResults &res(list.searchList()); - if (scroll.scrollTop() > res.size() * st::dlgHeight - PreloadHeightsCount * scroll.height()) { + if (scroll.scrollTop() > (list.searchList().size() + list.filteredList().size() + list.peopleList().size()) * st::dlgHeight - PreloadHeightsCount * scroll.height()) { onSearchMore(list.lastSearchId()); } } else if (scroll.scrollTop() > list.dialogsList().list.count * st::dlgHeight - PreloadHeightsCount * scroll.height()) { @@ -1312,6 +1508,11 @@ void DialogsWidget::onFilterUpdate() { _cancelSearch.show(); _newGroup.hide(); } + if (filterText.size() < MinUsernameLength) { + _peopleCache.clear(); + _peopleQueries.clear(); + _peopleQuery = QString(); + } } void DialogsWidget::resizeEvent(QResizeEvent *e) { diff --git a/Telegram/SourceFiles/dialogswidget.h b/Telegram/SourceFiles/dialogswidget.h index 59d7e3b866..587e8c77fc 100644 --- a/Telegram/SourceFiles/dialogswidget.h +++ b/Telegram/SourceFiles/dialogswidget.h @@ -28,6 +28,7 @@ public: void dialogsReceived(const QVector<MTPDialog> &dialogs); void searchReceived(const QVector<MTPMessage> &messages, bool fromStart, int32 fullCount); + void peopleReceived(const QVector<MTPContactFound> &people); void showMore(int32 pixels); void activate(); @@ -41,6 +42,8 @@ public: void enterEvent(QEvent *e); void leaveEvent(QEvent *e); + void peopleResultPaint(UserData *user, QPainter &p, int32 w, bool act, bool sel) const; + void selectSkip(int32 direction); void selectSkipPage(int32 pixels, int32 direction); @@ -62,10 +65,14 @@ public: void peerAfter(const PeerData *inPeer, MsgId inMsg, PeerData *&outPeer, MsgId &outMsg) const; void scrollToPeer(const PeerId &peer, MsgId msgId); + typedef QVector<DialogRow*> FilteredDialogs; + typedef QVector<UserData*> PeopleResults; typedef QVector<FakeDialogRow*> SearchResults; DialogsIndexed &contactsList(); DialogsIndexed &dialogsList(); + FilteredDialogs &filteredList(); + PeopleResults &peopleList(); SearchResults &searchList(); MsgId lastSearchId() const; @@ -96,15 +103,15 @@ public slots: signals: - void peerChosen(const PeerId &, MsgId); void mustScrollTo(int scrollToTop, int scrollToBottom); void dialogToTopFrom(int movedFrom); void searchMessages(); + void searchResultChosen(); private: void addDialog(const MTPDdialog &dialog); - void clearSearchResults(); + void clearSearchResults(bool clearPeople = true); DialogsIndexed dialogs; DialogsIndexed contactsNoDialogs; @@ -114,13 +121,15 @@ private: bool selByMouse; QString filter; - typedef QVector<DialogRow*> FilteredDialogs; FilteredDialogs filterResults; int32 filteredSel; SearchResults searchResults; int32 searchedCount, searchedSel; + PeopleResults peopleResults; + int32 peopleSel; + MsgId _lastSearchId; State _state; @@ -140,6 +149,7 @@ public: void dialogsReceived(const MTPmessages_Dialogs &dialogs); void contactsReceived(const MTPcontacts_Contacts &contacts); void searchReceived(bool fromStart, const MTPmessages_Messages &result, mtpRequestId req); + void peopleReceived(const MTPcontacts_Found &result, mtpRequestId req); bool addNewContact(int32 uid, bool show = true); void resizeEvent(QResizeEvent *e); @@ -174,14 +184,12 @@ public: void searchMessages(const QString &query); void onSearchMore(MsgId minMsgId); - void clearFiltered(); void itemRemoved(HistoryItem *item); void itemReplaced(HistoryItem *oldItem, HistoryItem *newItem); signals: - void peerChosen(const PeerId &, MsgId); void cancelled(); public slots: @@ -206,6 +214,7 @@ private: bool dialogsFailed(const RPCError &e); bool contactsFailed(); bool searchFailed(const RPCError &error, mtpRequestId req); + bool peopleFailed(const RPCError &error, mtpRequestId req); int32 dlgOffset, dlgCount; mtpRequestId dlgPreloading; @@ -217,9 +226,9 @@ private: DialogsListWidget list; QTimer _searchTimer; - QString _searchQuery; - bool _searchFull; - mtpRequestId _searchRequest; + QString _searchQuery, _peopleQuery; + bool _searchFull, _peopleFull; + mtpRequestId _searchRequest, _peopleRequest; typedef QMap<QString, MTPmessages_Messages> SearchCache; SearchCache _searchCache; @@ -227,4 +236,10 @@ private: typedef QMap<mtpRequestId, QString> SearchQueries; SearchQueries _searchQueries; + typedef QMap<QString, MTPcontacts_Found> PeopleCache; + PeopleCache _peopleCache; + + typedef QMap<mtpRequestId, QString> PeopleQueries; + PeopleQueries _peopleQueries; + }; diff --git a/Telegram/SourceFiles/gui/flatinput.h b/Telegram/SourceFiles/gui/flatinput.h index ea7012ef29..09b31215f6 100644 --- a/Telegram/SourceFiles/gui/flatinput.h +++ b/Telegram/SourceFiles/gui/flatinput.h @@ -27,7 +27,6 @@ class FlatInput : public QLineEdit, public Animated { public: FlatInput(QWidget *parent, const style::flatInput &st, const QString &ph = QString(), const QString &val = QString()); - QString val() const; bool event(QEvent *e); void touchEvent(QTouchEvent *e); diff --git a/Telegram/SourceFiles/history.cpp b/Telegram/SourceFiles/history.cpp index ffb8510355..64c5e496fb 100644 --- a/Telegram/SourceFiles/history.cpp +++ b/Telegram/SourceFiles/history.cpp @@ -306,7 +306,9 @@ void PeerData::updateName(const QString &newName, const QString &newNameOrPhone) NameFirstChars oldChars = chars; fillNames(); App::history(id)->updateNameText(); - emit App::main()->peerNameChanged(this, oldNames, oldChars); + if (App::main()) { + emit App::main()->peerNameChanged(this, oldNames, oldChars); + } nameUpdated(); } @@ -326,9 +328,38 @@ void UserData::setPhoto(const MTPUserProfilePhoto &p) { emit App::main()->peerPhotoChanged(this); } -void UserData::setName(const QString &first, const QString &last, const QString &phoneName) { +void PeerData::fillNames() { + names.clear(); + chars.clear(); + QString toIndex = textAccentFold(name); + if (nameOrPhone != name) { + toIndex += ' ' + textAccentFold(nameOrPhone); + } + if (!chat) { + toIndex += ' ' + textAccentFold(asUser()->username); + } + if (cRussianLetters().match(toIndex).hasMatch()) { + toIndex += ' ' + translitRusEng(toIndex); + } + toIndex += ' ' + rusKeyboardLayoutSwitch(toIndex); + + QStringList namesList = toIndex.toLower().split(cWordSplit(), QString::SkipEmptyParts); + for (QStringList::const_iterator i = namesList.cbegin(), e = namesList.cend(); i != e; ++i) { + names.insert(*i); + chars.insert(i->at(0)); + } +} + + +void UserData::setName(const QString &first, const QString &last, const QString &phoneName, const QString &usern) { bool updName = !first.isEmpty() || !last.isEmpty(); + if (username != usern) { + username = usern; + if (App::main()) { + App::main()->peerUsernameChanged(this); + } + } if (updName && first.trimmed().isEmpty()) { firstName = last; lastName = QString(); @@ -338,7 +369,7 @@ void UserData::setName(const QString &first, const QString &last, const QString firstName = first; lastName = last; } - updateName(firstName + qsl(" ") + lastName, phoneName); + updateName(firstName + ' ' + lastName, phoneName); } } @@ -1290,16 +1321,20 @@ HistoryItem *History::doAddToBack(HistoryBlock *to, bool newBlock, HistoryItem * return adding; } +void History::unregTyping(UserData *from) { + TypingUsers::iterator i = typing.find(from); + if (i != typing.end()) { + uint64 ms = getms(); + i.value() = ms; + updateTyping(ms, 0, true); + App::main()->topBar()->update(); + } +} + void History::newItemAdded(HistoryItem *item) { App::checkImageCacheSize(); if (item->from()) { - TypingUsers::iterator i = typing.find(item->from()); - if (i != typing.end()) { - uint64 ms = getms(); - i.value() = ms; - updateTyping(ms, 0, true); - App::main()->topBar()->update(); - } + unregTyping(item->from()); } if (item->out()) { // inboxRead(false); @@ -3012,7 +3047,7 @@ void HistoryContact::updateFrom(const MTPMessageMedia &media) { } HistoryMessage::HistoryMessage(History *history, HistoryBlock *block, const MTPDmessage &msg) : - HistoryItem(history, block, msg.vid.v, msg.vout.v, msg.vunread.v, ::date(msg.vdate), msg.vfrom_id.v) + HistoryItem(history, block, msg.vid.v, (msg.vflags.v & 0x02), (msg.vflags.v & 0x01), ::date(msg.vdate), msg.vfrom_id.v) , _text(st::msgMinWidth) , _textWidth(0) , _textHeight(0) @@ -3418,7 +3453,7 @@ HistoryMessage::~HistoryMessage() { delete _media; } -HistoryForwarded::HistoryForwarded(History *history, HistoryBlock *block, const MTPDmessageForwarded &msg) : HistoryMessage(history, block, msg.vid.v, msg.vout.v, msg.vunread.v, ::date(msg.vdate), msg.vfrom_id.v, textClean(qs(msg.vmessage)), msg.vmedia) +HistoryForwarded::HistoryForwarded(History *history, HistoryBlock *block, const MTPDmessageForwarded &msg) : HistoryMessage(history, block, msg.vid.v, (msg.vflags.v & 0x02), (msg.vflags.v & 0x01), ::date(msg.vdate), msg.vfrom_id.v, textClean(qs(msg.vmessage)), msg.vmedia) , fwdDate(::date(msg.vfwd_date)) , fwdFrom(App::user(msg.vfwd_from_id.v)) , fwdFromName(4096) @@ -3657,7 +3692,7 @@ QString HistoryServiceMsg::messageByAction(const MTPmessageAction &action, TextL } HistoryServiceMsg::HistoryServiceMsg(History *history, HistoryBlock *block, const MTPDmessageService &msg) : - HistoryItem(history, block, msg.vid.v, msg.vout.v, msg.vunread.v, ::date(msg.vdate), msg.vfrom_id.v) + HistoryItem(history, block, msg.vid.v, (msg.vflags.v & 0x02), (msg.vflags.v & 0x01), ::date(msg.vdate), msg.vfrom_id.v) , _text(st::msgMinWidth) , _media(0) { diff --git a/Telegram/SourceFiles/history.h b/Telegram/SourceFiles/history.h index 4485e38b51..05cff10eff 100644 --- a/Telegram/SourceFiles/history.h +++ b/Telegram/SourceFiles/history.h @@ -84,28 +84,7 @@ struct PeerData { void updateName(const QString &newName, const QString &newNameOrPhone); - void fillNames() { - names.clear(); - chars.clear(); - QString toIndex = textAccentFold(name); - if (nameOrPhone != name) { - toIndex += qsl(" ") + textAccentFold(nameOrPhone); - } - if (cRussianLetters().match(toIndex).hasMatch()) { - toIndex += qsl(" ") + translitRusEng(toIndex); - } - toIndex += qsl(" ") + rusKeyboardLayoutSwitch(toIndex); - - if (name.midRef(0, 8) == "Telegram") { - int a = 0; - } - - QStringList namesList = toIndex.toLower().split(cWordSplit(), QString::SkipEmptyParts); - for (QStringList::const_iterator i = namesList.cbegin(), e = namesList.cend(); i != e; ++i) { - names.insert(*i); - chars.insert(i->at(0)); - } - } + void fillNames(); virtual void nameUpdated() { } @@ -152,12 +131,13 @@ struct UserData : public PeerData { UserData(const PeerId &id) : PeerData(id), lnk(new PeerLink(this)), onlineTill(0), contact(-1), photosCount(-1) { } void setPhoto(const MTPUserProfilePhoto &photo); - void setName(const QString &first, const QString &last, const QString &phoneName); + void setName(const QString &first, const QString &last, const QString &phoneName, const QString &username); void setPhone(const QString &newPhone); void nameUpdated(); QString firstName; QString lastName; + QString username; QString phone; Text nameText; PhotoId photoId; @@ -675,6 +655,7 @@ struct History : public QList<HistoryBlock*> { HistoryItem *doAddToBack(HistoryBlock *to, bool newBlock, HistoryItem *adding, bool newMsg); void newItemAdded(HistoryItem *item); + void unregTyping(UserData *from); void inboxRead(bool byThisInstance = false); void outboxRead(); diff --git a/Telegram/SourceFiles/historywidget.cpp b/Telegram/SourceFiles/historywidget.cpp index 64d30d34ca..4190e3327b 100644 --- a/Telegram/SourceFiles/historywidget.cpp +++ b/Telegram/SourceFiles/historywidget.cpp @@ -1600,7 +1600,7 @@ void HistoryWidget::updateTyping(bool typing) { if (noTypingUpdate || !hist || (typing && (hist->myTyping + 5000 > ms)) || (!typing && (hist->myTyping + 5000 <= ms))) return; hist->myTyping = typing ? ms : 0; - if (typing) MTP::send(MTPmessages_SetTyping(histPeer->input, MTP_bool(typing))); + if (typing) MTP::send(MTPmessages_SetTyping(histPeer->input, typing ? MTP_sendMessageTypingAction() : MTP_sendMessageCancelAction())); } void HistoryWidget::activate() { @@ -1657,9 +1657,6 @@ void HistoryWidget::showPeer(const PeerId &peer, MsgId msgId, bool force, bool l App::main()->offerPeer(peer); return; } - if (peer && !msgId) { - App::main()->dialogsClear(); - } if (hist) { if (histPeer->id == peer) { if (msgId != hist->activeMsgId) { @@ -2204,7 +2201,8 @@ void HistoryWidget::onSend(bool ctrlShiftEnter) { hist->loadAround(0); MTPstring msgText(MTP_string(text)); - hist->addToBack(MTP_message(MTP_int(newId), MTP_int(MTP::authedId()), App::peerToMTP(histPeer->id), MTP_bool(true), MTP_bool(true), MTP_int(unixtime()), msgText, MTP_messageMediaEmpty())); + int32 flags = 0x01 | 0x02; // unread, out + hist->addToBack(MTP_message(MTP_int(flags), MTP_int(newId), MTP_int(MTP::authedId()), App::peerToMTP(histPeer->id), MTP_int(unixtime()), msgText, MTP_messageMediaEmpty())); App::main()->historyToDown(hist); App::main()->dialogsToUp(); peerMessagesUpdated(); @@ -2250,7 +2248,8 @@ mtpRequestId HistoryWidget::onForward(const PeerId &peer, SelectedItemSet toForw MTPstring msgText(MTP_string(msg->selectedText(FullItemSel))); - hist->addToBack(MTP_message(MTP_int(newId), MTP_int(MTP::authedId()), App::peerToMTP(histPeer->id), MTP_bool(true), MTP_bool(true), MTP_int(unixtime()), msgText, MTP_messageMediaEmpty())); + int32 flags = 0x01 | 0x02; // unread, out + hist->addToBack(MTP_message(MTP_int(flags), MTP_int(newId), MTP_int(MTP::authedId()), App::peerToMTP(histPeer->id), MTP_int(unixtime()), msgText, MTP_messageMediaEmpty())); MTP::send(MTPmessages_SendMessage(histPeer->input, msgText, MTP_long(randomId)), App::main()->rpcDone(&MainWidget::sentDataReceived, randomId)); } if (newId) { @@ -2294,7 +2293,8 @@ void HistoryWidget::shareContact(const PeerId &peer, const QString &phone, const h->loadAround(0); - h->addToBack(MTP_message(MTP_int(newId), MTP_int(MTP::authedId()), App::peerToMTP(peer), MTP_bool(true), MTP_bool(true), MTP_int(unixtime()), MTP_string(""), MTP_messageMediaContact(MTP_string(phone), MTP_string(fname), MTP_string(lname), MTP_int(userId)))); + int32 flags = 0x01 | 0x02; // unread, out + h->addToBack(MTP_message(MTP_int(flags), MTP_int(newId), MTP_int(MTP::authedId()), App::peerToMTP(peer), MTP_int(unixtime()), MTP_string(""), MTP_messageMediaContact(MTP_string(phone), MTP_string(fname), MTP_string(lname), MTP_int(userId)))); MTP::send(MTPmessages_SendMedia(App::peer(peer)->input, MTP_inputMediaContact(MTP_string(phone), MTP_string(fname), MTP_string(lname)), MTP_long(randomId)), App::main()->rpcDone(&MainWidget::sentFullDataReceived, randomId)); @@ -2822,10 +2822,12 @@ void HistoryWidget::confirmSendImage(const ReadyLocalMedia &img) { History *h = App::history(img.peer); if (img.type == ToPreparePhoto) { h->loadAround(0); - h->addToBack(MTP_message(MTP_int(newId), MTP_int(MTP::authedId()), App::peerToMTP(img.peer), MTP_bool(true), MTP_bool(true), MTP_int(unixtime()), MTP_string(""), MTP_messageMediaPhoto(img.photo))); + int32 flags = 0x01 | 0x02; // unread, out + h->addToBack(MTP_message(MTP_int(flags), MTP_int(newId), MTP_int(MTP::authedId()), App::peerToMTP(img.peer), MTP_int(unixtime()), MTP_string(""), MTP_messageMediaPhoto(img.photo))); } else if (img.type == ToPrepareDocument) { h->loadAround(0); - h->addToBack(MTP_message(MTP_int(newId), MTP_int(MTP::authedId()), App::peerToMTP(img.peer), MTP_bool(true), MTP_bool(true), MTP_int(unixtime()), MTP_string(""), MTP_messageMediaDocument(img.document))); + int32 flags = 0x01 | 0x02; // unread, out + h->addToBack(MTP_message(MTP_int(flags), MTP_int(newId), MTP_int(MTP::authedId()), App::peerToMTP(img.peer), MTP_int(unixtime()), MTP_string(""), MTP_messageMediaDocument(img.document))); } if (hist && histPeer && img.peer == histPeer->id) { diff --git a/Telegram/SourceFiles/intro/introphone.cpp b/Telegram/SourceFiles/intro/introphone.cpp index f7905d43fb..e1abdb0879 100644 --- a/Telegram/SourceFiles/intro/introphone.cpp +++ b/Telegram/SourceFiles/intro/introphone.cpp @@ -237,9 +237,15 @@ void IntroPhone::phoneSubmitDone(const MTPauth_SentCode &result) { stopCheck(); enableAll(false); - const MTPDauth_sentCode &d(result.c_auth_sentCode()); - intro()->setPhone(sentPhone, d.vphone_code_hash.c_string().v.c_str(), d.vphone_registered.v); - intro()->setCallTimeout(result.c_auth_sentCode().vsend_call_timeout.v); + if (result.type() == mtpc_auth_sentCode) { + const MTPDauth_sentCode &d(result.c_auth_sentCode()); + intro()->setPhone(sentPhone, d.vphone_code_hash.c_string().v.c_str(), d.vphone_registered.v); + intro()->setCallTimeout(d.vsend_call_timeout.v); + } else if (result.type() == mtpc_auth_sentAppCode) { + const MTPDauth_sentAppCode &d(result.c_auth_sentAppCode()); + intro()->setPhone(sentPhone, d.vphone_code_hash.c_string().v.c_str(), d.vphone_registered.v); + intro()->setCallTimeout(d.vsend_call_timeout.v); + } intro()->onIntroNext(); } diff --git a/Telegram/SourceFiles/mainwidget.cpp b/Telegram/SourceFiles/mainwidget.cpp index 5bab3a1dfa..0f4b8dc47f 100644 --- a/Telegram/SourceFiles/mainwidget.cpp +++ b/Telegram/SourceFiles/mainwidget.cpp @@ -279,7 +279,6 @@ dialogs(this), history(this), profile(0), overview(0), _topBar(this), hider(0), setGeometry(QRect(0, st::titleHeight, App::wnd()->width(), App::wnd()->height() - st::titleHeight)); connect(window, SIGNAL(resized(const QSize &)), this, SLOT(onParentResize(const QSize &))); - connect(&dialogs, SIGNAL(peerChosen(const PeerId &, MsgId)), this, SLOT(showPeer(const PeerId &, MsgId))); connect(&dialogs, SIGNAL(cancelled()), this, SLOT(dialogsCancelled())); connect(&history, SIGNAL(cancelled()), &dialogs, SLOT(activate())); connect(this, SIGNAL(peerPhotoChanged(PeerData *)), this, SIGNAL(dialogsUpdated())); @@ -559,7 +558,8 @@ void MainWidget::sendMessage(History *hist, const QString &text) { hist->loadAround(0); MTPstring msgText(MTP_string(msg)); - hist->addToBack(MTP_message(MTP_int(newId), MTP_int(MTP::authedId()), App::peerToMTP(hist->peer->id), MTP_bool(true), MTP_bool(true), MTP_int(unixtime()), msgText, MTP_messageMediaEmpty())); + int32 flags = 0x01 | 0x02; // unread, out + hist->addToBack(MTP_message(MTP_int(flags), MTP_int(newId), MTP_int(MTP::authedId()), App::peerToMTP(hist->peer->id), MTP_int(unixtime()), msgText, MTP_messageMediaEmpty())); historyToDown(hist); if (history.peer() == hist->peer) { history.peerMessagesUpdated(); @@ -575,7 +575,7 @@ void MainWidget::readServerHistory(History *hist, bool force) { ReadRequests::const_iterator i = _readRequests.constFind(hist->peer); if (i == _readRequests.cend()) { hist->inboxRead(true); - _readRequests.insert(hist->peer, MTP::send(MTPmessages_ReadHistory(hist->peer->input, MTP_int(0), MTP_int(0)), rpcDone(&MainWidget::partWasRead, hist->peer))); + _readRequests.insert(hist->peer, MTP::send(MTPmessages_ReadHistory(hist->peer->input, MTP_int(0), MTP_int(0), MTP_bool(true)), rpcDone(&MainWidget::partWasRead, hist->peer))); } } @@ -755,6 +755,15 @@ void MainWidget::loadMediaBack(PeerData *peer, MediaOverviewType type, bool many _overviewLoad[type].insert(hist->peer, MTP::send(MTPmessages_Search(hist->peer->input, MTPstring(), filter, MTP_int(0), MTP_int(0), MTP_int(0), MTP_int(minId), MTP_int(limit)), rpcDone(&MainWidget::photosLoaded, hist))); } +void MainWidget::peerUsernameChanged(PeerData *peer) { + if (profile && profile->peer() == peer) { + profile->update(); + } + if (App::settings() && peer == App::self()) { + App::settings()->usernameChanged(); + } +} + void MainWidget::photosLoaded(History *h, const MTPmessages_Messages &msgs, mtpRequestId req) { OverviewsPreload::iterator it; MediaOverviewType type = OverviewCount; @@ -820,7 +829,7 @@ void MainWidget::partWasRead(PeerData *peer, const MTPmessages_AffectedHistory & if (!MTP::authedId() || offset <= 0) { _readRequests.remove(peer); } else { - _readRequests[peer] = MTP::send(MTPmessages_ReadHistory(peer->input, MTP_int(0), MTP_int(offset)), rpcDone(&MainWidget::partWasRead, peer)); + _readRequests[peer] = MTP::send(MTPmessages_ReadHistory(peer->input, MTP_int(0), MTP_int(offset), MTP_bool(true)), rpcDone(&MainWidget::partWasRead, peer)); } } @@ -1414,10 +1423,6 @@ void MainWidget::dialogsToUp() { dialogs.dialogsToUp(); } -void MainWidget::dialogsClear() { - dialogs.clearFiltered(); -} - void MainWidget::newUnreadMsg(History *hist, MsgId msgId) { history.newUnreadMsg(hist, msgId); } @@ -1950,7 +1955,8 @@ void MainWidget::updateReceived(const mtpPrime *from, const mtpPrime *end) { } if (!App::userLoaded(d.vfrom_id.v)) return getDifference(); - HistoryItem *item = App::histories().addToBack(MTP_message(d.vid, d.vfrom_id, MTP_peerUser(MTP_int(MTP::authedId())), MTP_bool(false), MTP_bool(true), d.vdate, d.vmessage, MTP_messageMediaEmpty())); + int32 flags = 0x01; // unread + HistoryItem *item = App::histories().addToBack(MTP_message(MTP_int(flags), d.vid, d.vfrom_id, MTP_peerUser(MTP_int(MTP::authedId())), d.vdate, d.vmessage, MTP_messageMediaEmpty())); if (item) { history.peerMessagesUpdated(item->history()->peer->id); } @@ -1965,7 +1971,8 @@ void MainWidget::updateReceived(const mtpPrime *from, const mtpPrime *end) { } if (!App::chatLoaded(d.vchat_id.v) || !App::userLoaded(d.vfrom_id.v)) return getDifference(); - HistoryItem *item = App::histories().addToBack(MTP_message(d.vid, d.vfrom_id, MTP_peerChat(d.vchat_id), MTP_bool(false), MTP_bool(true), d.vdate, d.vmessage, MTP_messageMediaEmpty())); + int32 flags = 0x01; // unread + HistoryItem *item = App::histories().addToBack(MTP_message(MTP_int(flags), d.vid, d.vfrom_id, MTP_peerChat(d.vchat_id), d.vdate, d.vmessage, MTP_messageMediaEmpty())); if (item) { history.peerMessagesUpdated(item->history()->peer->id); } @@ -2056,7 +2063,11 @@ void MainWidget::feedUpdate(const MTPUpdate &update) { History *history = App::historyLoaded(App::peerFromUser(d.vuser_id)); UserData *user = App::userLoaded(d.vuser_id.v); if (history && user) { - dialogs.regTyping(history, user); + if (d.vaction.type() == mtpc_sendMessageTypingAction) { + dialogs.regTyping(history, user); + } else if (d.vaction.type() == mtpc_sendMessageCancelAction) { + history->unregTyping(user); + } } } break; @@ -2105,7 +2116,7 @@ void MainWidget::feedUpdate(const MTPUpdate &update) { const MTPDupdateUserName &d(update.c_updateUserName()); UserData *user = App::userLoaded(d.vuser_id.v); if (user && user->contact <= 0) { - user->setName(textOneLine(qs(d.vfirst_name)), textOneLine(qs(d.vlast_name)), user->nameOrPhone); + user->setName(textOneLine(qs(d.vfirst_name)), textOneLine(qs(d.vlast_name)), user->nameOrPhone, textOneLine(qs(d.vusername))); if (App::main()) App::main()->peerUpdated(user); } } break; @@ -2200,5 +2211,10 @@ void MainWidget::feedUpdate(const MTPUpdate &update) { const MTPDupdateDcOptions &d(update.c_updateDcOptions()); MTP::updateDcOptions(d.vdc_options.c_vector().v); } break; + + case mtpc_updateServiceNotification: { + const MTPDupdateServiceNotification &d(update.c_updateServiceNotification()); + // + } break; } } diff --git a/Telegram/SourceFiles/mainwidget.h b/Telegram/SourceFiles/mainwidget.h index 182534ad5b..ae80fb00c3 100644 --- a/Telegram/SourceFiles/mainwidget.h +++ b/Telegram/SourceFiles/mainwidget.h @@ -196,7 +196,6 @@ public: void msgUpdated(PeerId peer, const HistoryItem *msg); void historyToDown(History *hist); void dialogsToUp(); - void dialogsClear(); // after showing peer history void newUnreadMsg(History *history, MsgId msgId); void updUpdated(int32 pts, int32 date, int32 qts, int32 seq); void historyWasRead(); @@ -282,6 +281,7 @@ public: void itemResized(HistoryItem *row); void loadMediaBack(PeerData *peer, MediaOverviewType type, bool many = false); + void peerUsernameChanged(PeerData *peer); ~MainWidget(); diff --git a/Telegram/SourceFiles/mtproto/mtpCoreTypes.h b/Telegram/SourceFiles/mtproto/mtpCoreTypes.h index 7fb8c8b361..9b86ae5153 100644 --- a/Telegram/SourceFiles/mtproto/mtpCoreTypes.h +++ b/Telegram/SourceFiles/mtproto/mtpCoreTypes.h @@ -329,6 +329,9 @@ enum { mtpc_invokeWithLayer13 = 0x427c8ea2, mtpc_invokeWithLayer14 = 0x2b9b08fa, mtpc_invokeWithLayer15 = 0xb4418b64, + mtpc_invokeWithLayer16 = 0xcf5f0987, + mtpc_invokeWithLayer17 = 0x50858a19, + mtpc_invokeWithLayer18 = 0x1c900537, // manually parsed mtpc_rpc_result = 0xf35c6d01, @@ -354,6 +357,9 @@ static const mtpTypeId mtpLayers[] = { mtpc_invokeWithLayer13, mtpc_invokeWithLayer14, mtpc_invokeWithLayer15, + mtpc_invokeWithLayer16, + mtpc_invokeWithLayer17, + mtpc_invokeWithLayer18, }, mtpLayerMax = sizeof(mtpLayers) / sizeof(mtpLayers[0]); template <typename bareT> diff --git a/Telegram/SourceFiles/mtproto/mtpScheme.cpp b/Telegram/SourceFiles/mtproto/mtpScheme.cpp index 3dc1416a73..a0eaad1bcf 100644 --- a/Telegram/SourceFiles/mtproto/mtpScheme.cpp +++ b/Telegram/SourceFiles/mtproto/mtpScheme.cpp @@ -40,138 +40,38 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP } switch (mtpTypeId(cons)) { - case mtpc_userProfilePhotoEmpty: - to.add("{ userProfilePhotoEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_userProfilePhoto: - to.add("{ userProfilePhoto"); + case mtpc_inputPeerNotifySettings: + to.add("{ inputPeerNotifySettings"); to.add("\n").add(add); - to.add(" photo_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" photo_small: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" photo_big: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" mute_until: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" sound: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" show_previews: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" events_mask: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_rpc_error: - to.add("{ rpc_error"); + case mtpc_contacts_importedContacts: + to.add("{ contacts_importedContacts"); to.add("\n").add(add); - to.add(" error_code: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" error_message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" imported: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" retry_contacts: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_long); to.add(",\n").add(add); + to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_dh_gen_ok: - to.add("{ dh_gen_ok"); + case mtpc_future_salt: + to.add("{ future_salt"); to.add("\n").add(add); - to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" new_nonce_hash1: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); + to.add(" valid_since: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" valid_until: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" salt: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_dh_gen_retry: - to.add("{ dh_gen_retry"); + case mtpc_help_inviteText: + to.add("{ help_inviteText"); to.add("\n").add(add); - to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" new_nonce_hash2: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_dh_gen_fail: - to.add("{ dh_gen_fail"); - to.add("\n").add(add); - to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" new_nonce_hash3: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputPeerEmpty: - to.add("{ inputPeerEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputPeerSelf: - to.add("{ inputPeerSelf"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputPeerContact: - to.add("{ inputPeerContact"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputPeerForeign: - to.add("{ inputPeerForeign"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputPeerChat: - to.add("{ inputPeerChat"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_photoEmpty: - to.add("{ photoEmpty"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_photo: - to.add("{ photo"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" caption: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" geo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" sizes: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_p_q_inner_data: - to.add("{ p_q_inner_data"); - to.add("\n").add(add); - to.add(" pq: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" p: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" q: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" new_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int256, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_client_DH_inner_data: - to.add("{ client_DH_inner_data"); - to.add("\n").add(add); - to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" retry_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" g_b: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_link: - to.add("{ contacts_link"); - to.add("\n").add(add); - to.add(" my_link: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" foreign_link: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" user: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); to.add("}"); break; @@ -190,295 +90,20 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; - case mtpc_inputFile: - to.add("{ inputFile"); + case mtpc_messages_dhConfigNotModified: + to.add("{ messages_dhConfigNotModified"); to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" parts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" md5_checksum: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" random: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_inputFileBig: - to.add("{ inputFileBig"); + case mtpc_messages_dhConfig: + to.add("{ messages_dhConfig"); to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" parts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageActionEmpty: - to.add("{ messageActionEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_messageActionChatCreate: - to.add("{ messageActionChatCreate"); - to.add("\n").add(add); - to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_int); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageActionChatEditTitle: - to.add("{ messageActionChatEditTitle"); - to.add("\n").add(add); - to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageActionChatEditPhoto: - to.add("{ messageActionChatEditPhoto"); - to.add("\n").add(add); - to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageActionChatDeletePhoto: - to.add("{ messageActionChatDeletePhoto"); - to.add(" "); - to.add("}"); - break; - - case mtpc_messageActionChatAddUser: - to.add("{ messageActionChatAddUser"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageActionChatDeleteUser: - to.add("{ messageActionChatDeleteUser"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageActionGeoChatCreate: - to.add("{ messageActionGeoChatCreate"); - to.add("\n").add(add); - to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" address: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageActionGeoChatCheckin: - to.add("{ messageActionGeoChatCheckin"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputMessagesFilterEmpty: - to.add("{ inputMessagesFilterEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputMessagesFilterPhotos: - to.add("{ inputMessagesFilterPhotos"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputMessagesFilterVideo: - to.add("{ inputMessagesFilterVideo"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputMessagesFilterPhotoVideo: - to.add("{ inputMessagesFilterPhotoVideo"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputMessagesFilterDocument: - to.add("{ inputMessagesFilterDocument"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputMessagesFilterAudio: - to.add("{ inputMessagesFilterAudio"); - to.add(" "); - to.add("}"); - break; - - case mtpc_help_support: - to.add("{ help_support"); - to.add("\n").add(add); - to.add(" phone_number: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" user: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contactFound: - to.add("{ contactFound"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_future_salts: - to.add("{ future_salts"); - to.add("\n").add(add); - to.add(" req_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" now: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" salts: "); mtpTextSerializeType(to, from, end, mtpc_vector, level + 1, mtpc_future_salt); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputPhotoEmpty: - to.add("{ inputPhotoEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputPhoto: - to.add("{ inputPhoto"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_chatParticipant: - to.add("{ chatParticipant"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" inviter_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_auth_exportedAuthorization: - to.add("{ auth_exportedAuthorization"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contactStatus: - to.add("{ contactStatus"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" expires: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_new_session_created: - to.add("{ new_session_created"); - to.add("\n").add(add); - to.add(" first_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" unique_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" server_salt: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geochats_located: - to.add("{ geochats_located"); - to.add("\n").add(add); - to.add(" results: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updatesTooLong: - to.add("{ updatesTooLong"); - to.add(" "); - to.add("}"); - break; - - case mtpc_updateShortMessage: - to.add("{ updateShortMessage"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" from_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateShortChatMessage: - to.add("{ updateShortChatMessage"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" from_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateShort: - to.add("{ updateShort"); - to.add("\n").add(add); - to.add(" update: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updatesCombined: - to.add("{ updatesCombined"); - to.add("\n").add(add); - to.add(" updates: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq_start: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updates: - to.add("{ updates"); - to.add("\n").add(add); - to.add(" updates: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_future_salt: - to.add("{ future_salt"); - to.add("\n").add(add); - to.add(" valid_since: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" valid_until: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" salt: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_server_DH_inner_data: - to.add("{ server_DH_inner_data"); - to.add("\n").add(add); - to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); to.add(" g: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" dh_prime: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" g_a: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" server_time: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_resPQ: - to.add("{ resPQ"); - to.add("\n").add(add); - to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" pq: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" server_public_key_fingerprints: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_long); to.add(",\n").add(add); + to.add(" p: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); + to.add(" version: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" random: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); to.add("}"); break; @@ -491,6 +116,33 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; + case mtpc_inputUserEmpty: + to.add("{ inputUserEmpty"); + to.add(" "); + to.add("}"); + break; + + case mtpc_inputUserSelf: + to.add("{ inputUserSelf"); + to.add(" "); + to.add("}"); + break; + + case mtpc_inputUserContact: + to.add("{ inputUserContact"); + to.add("\n").add(add); + to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_inputUserForeign: + to.add("{ inputUserForeign"); + to.add("\n").add(add); + to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + case mtpc_inputMediaEmpty: to.add("{ inputMediaEmpty"); to.add(" "); @@ -599,6 +251,115 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; + case mtpc_photos_photos: + to.add("{ photos_photos"); + to.add("\n").add(add); + to.add(" photos: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_photos_photosSlice: + to.add("{ photos_photosSlice"); + to.add("\n").add(add); + to.add(" count: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" photos: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_inputEncryptedChat: + to.add("{ inputEncryptedChat"); + to.add("\n").add(add); + to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_photoSizeEmpty: + to.add("{ photoSizeEmpty"); + to.add("\n").add(add); + to.add(" type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_photoSize: + to.add("{ photoSize"); + to.add("\n").add(add); + to.add(" type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" location: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" w: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" h: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" size: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_photoCachedSize: + to.add("{ photoCachedSize"); + to.add("\n").add(add); + to.add(" type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" location: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" w: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" h: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_importedContact: + to.add("{ importedContact"); + to.add("\n").add(add); + to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" client_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_nearestDc: + to.add("{ nearestDc"); + to.add("\n").add(add); + to.add(" country: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" this_dc: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" nearest_dc: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_contactStatus: + to.add("{ contactStatus"); + to.add("\n").add(add); + to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" expires: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_resPQ: + to.add("{ resPQ"); + to.add("\n").add(add); + to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); + to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); + to.add(" pq: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" server_public_key_fingerprints: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_long); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_userStatusEmpty: + to.add("{ userStatusEmpty"); + to.add(" "); + to.add("}"); + break; + + case mtpc_userStatusOnline: + to.add("{ userStatusOnline"); + to.add("\n").add(add); + to.add(" expires: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_userStatusOffline: + to.add("{ userStatusOffline"); + to.add("\n").add(add); + to.add(" was_online: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + case mtpc_documentEmpty: to.add("{ documentEmpty"); to.add("\n").add(add); @@ -621,44 +382,24 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; - case mtpc_inputEncryptedFileEmpty: - to.add("{ inputEncryptedFileEmpty"); - to.add(" "); + case mtpc_contactFound: + to.add("{ contactFound"); + to.add("\n").add(add); + to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_inputEncryptedFileUploaded: - to.add("{ inputEncryptedFileUploaded"); + case mtpc_destroy_session_ok: + to.add("{ destroy_session_ok"); to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" parts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" md5_checksum: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" key_fingerprint: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" session_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_inputEncryptedFile: - to.add("{ inputEncryptedFile"); + case mtpc_destroy_session_none: + to.add("{ destroy_session_none"); to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputEncryptedFileBigUploaded: - to.add("{ inputEncryptedFileBigUploaded"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" parts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" key_fingerprint: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_found: - to.add("{ contacts_found"); - to.add("\n").add(add); - to.add(" results: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" session_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); to.add("}"); break; @@ -703,334 +444,18 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; - case mtpc_chatFull: - to.add("{ chatFull"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" participants: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chat_photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" notify_settings: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_chatParticipantsForbidden: - to.add("{ chatParticipantsForbidden"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_chatParticipants: - to.add("{ chatParticipants"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" admin_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" participants: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" version: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_msgs_ack: - to.add("{ msgs_ack"); - to.add("\n").add(add); - to.add(" msg_ids: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_long); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_userFull: - to.add("{ userFull"); - to.add("\n").add(add); - to.add(" user: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" link: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" profile_photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" notify_settings: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" blocked: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" real_first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" real_last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_videoEmpty: - to.add("{ videoEmpty"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_video: - to.add("{ video"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" caption: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" duration: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" mime_type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" size: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" thumb: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" dc_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" w: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" h: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageEmpty: - to.add("{ messageEmpty"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_message: - to.add("{ message"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" from_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" to_id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" out: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" unread: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" media: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageForwarded: - to.add("{ messageForwarded"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" fwd_from_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" fwd_date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" from_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" to_id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" out: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" unread: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" media: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageService: - to.add("{ messageService"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" from_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" to_id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" out: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" unread: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" action: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_notifyPeer: - to.add("{ notifyPeer"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_notifyUsers: - to.add("{ notifyUsers"); + case mtpc_userProfilePhotoEmpty: + to.add("{ userProfilePhotoEmpty"); to.add(" "); to.add("}"); break; - case mtpc_notifyChats: - to.add("{ notifyChats"); - to.add(" "); - to.add("}"); - break; - - case mtpc_notifyAll: - to.add("{ notifyAll"); - to.add(" "); - to.add("}"); - break; - - case mtpc_messages_messageEmpty: - to.add("{ messages_messageEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_messages_message: - to.add("{ messages_message"); + case mtpc_userProfilePhoto: + to.add("{ userProfilePhoto"); to.add("\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputPhoneContact: - to.add("{ inputPhoneContact"); - to.add("\n").add(add); - to.add(" client_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" phone: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_rpc_answer_unknown: - to.add("{ rpc_answer_unknown"); - to.add(" "); - to.add("}"); - break; - - case mtpc_rpc_answer_dropped_running: - to.add("{ rpc_answer_dropped_running"); - to.add(" "); - to.add("}"); - break; - - case mtpc_rpc_answer_dropped: - to.add("{ rpc_answer_dropped"); - to.add("\n").add(add); - to.add(" msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" seq_no: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputVideoEmpty: - to.add("{ inputVideoEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputVideo: - to.add("{ inputVideo"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_decryptedMessageMediaEmpty: - to.add("{ decryptedMessageMediaEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_decryptedMessageMediaPhoto: - to.add("{ decryptedMessageMediaPhoto"); - to.add("\n").add(add); - to.add(" thumb: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add(" thumb_w: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" thumb_h: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" w: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" h: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" size: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" key: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add(" iv: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_decryptedMessageMediaVideo: - to.add("{ decryptedMessageMediaVideo"); - to.add("\n").add(add); - to.add(" thumb: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add(" thumb_w: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" thumb_h: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" duration: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" mime_type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" w: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" h: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" size: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" key: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add(" iv: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_decryptedMessageMediaGeoPoint: - to.add("{ decryptedMessageMediaGeoPoint"); - to.add("\n").add(add); - to.add(" lat: "); mtpTextSerializeType(to, from, end, mtpc_double, level + 1); to.add(",\n").add(add); - to.add(" long: "); mtpTextSerializeType(to, from, end, mtpc_double, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_decryptedMessageMediaContact: - to.add("{ decryptedMessageMediaContact"); - to.add("\n").add(add); - to.add(" phone_number: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_decryptedMessageMediaDocument: - to.add("{ decryptedMessageMediaDocument"); - to.add("\n").add(add); - to.add(" thumb: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add(" thumb_w: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" thumb_h: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" file_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" mime_type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" size: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" key: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add(" iv: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_decryptedMessageMediaAudio: - to.add("{ decryptedMessageMediaAudio"); - to.add("\n").add(add); - to.add(" duration: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" mime_type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" size: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" key: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add(" iv: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geoChatMessageEmpty: - to.add("{ geoChatMessageEmpty"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geoChatMessage: - to.add("{ geoChatMessage"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" from_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" media: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geoChatMessageService: - to.add("{ geoChatMessageService"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" from_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" action: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geoPointEmpty: - to.add("{ geoPointEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_geoPoint: - to.add("{ geoPoint"); - to.add("\n").add(add); - to.add(" long: "); mtpTextSerializeType(to, from, end, mtpc_double, level + 1); to.add(",\n").add(add); - to.add(" lat: "); mtpTextSerializeType(to, from, end, mtpc_double, level + 1); to.add(",\n").add(add); + to.add(" photo_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" photo_small: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" photo_big: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); to.add("}"); break; @@ -1055,37 +480,175 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; - case mtpc_messages_dhConfigNotModified: - to.add("{ messages_dhConfigNotModified"); - to.add("\n").add(add); - to.add(" random: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); + case mtpc_inputPhotoEmpty: + to.add("{ inputPhotoEmpty"); + to.add(" "); to.add("}"); break; - case mtpc_messages_dhConfig: - to.add("{ messages_dhConfig"); + case mtpc_inputPhoto: + to.add("{ inputPhoto"); to.add("\n").add(add); - to.add(" g: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" p: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add(" version: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" random: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_peerUser: - to.add("{ peerUser"); + case mtpc_contacts_link: + to.add("{ contacts_link"); + to.add("\n").add(add); + to.add(" my_link: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" foreign_link: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" user: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_geochats_statedMessage: + to.add("{ geochats_statedMessage"); + to.add("\n").add(add); + to.add(" message: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_dcOption: + to.add("{ dcOption"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" hostname: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" ip_address: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" port: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_inputAudioEmpty: + to.add("{ inputAudioEmpty"); + to.add(" "); + to.add("}"); + break; + + case mtpc_inputAudio: + to.add("{ inputAudio"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messages_sentEncryptedMessage: + to.add("{ messages_sentEncryptedMessage"); + to.add("\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messages_sentEncryptedFile: + to.add("{ messages_sentEncryptedFile"); + to.add("\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" file: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_msgs_all_info: + to.add("{ msgs_all_info"); + to.add("\n").add(add); + to.add(" msg_ids: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_long); to.add(",\n").add(add); + to.add(" info: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_inputEncryptedFileEmpty: + to.add("{ inputEncryptedFileEmpty"); + to.add(" "); + to.add("}"); + break; + + case mtpc_inputEncryptedFileUploaded: + to.add("{ inputEncryptedFileUploaded"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" parts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" md5_checksum: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" key_fingerprint: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_inputEncryptedFile: + to.add("{ inputEncryptedFile"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_inputEncryptedFileBigUploaded: + to.add("{ inputEncryptedFileBigUploaded"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" parts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" key_fingerprint: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_inputPeerEmpty: + to.add("{ inputPeerEmpty"); + to.add(" "); + to.add("}"); + break; + + case mtpc_inputPeerSelf: + to.add("{ inputPeerSelf"); + to.add(" "); + to.add("}"); + break; + + case mtpc_inputPeerContact: + to.add("{ inputPeerContact"); to.add("\n").add(add); to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_peerChat: - to.add("{ peerChat"); + case mtpc_inputPeerForeign: + to.add("{ inputPeerForeign"); + to.add("\n").add(add); + to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_inputPeerChat: + to.add("{ inputPeerChat"); to.add("\n").add(add); to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); to.add("}"); break; + case mtpc_contacts_contacts: + to.add("{ contacts_contacts"); + to.add("\n").add(add); + to.add(" contacts: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_contacts_contactsNotModified: + to.add("{ contacts_contactsNotModified"); + to.add(" "); + to.add("}"); + break; + + case mtpc_contact: + to.add("{ contact"); + to.add("\n").add(add); + to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" mutual: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + case mtpc_server_DH_params_fail: to.add("{ server_DH_params_fail"); to.add("\n").add(add); @@ -1104,124 +667,14 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; - case mtpc_inputAppEvent: - to.add("{ inputAppEvent"); + case mtpc_messages_chat: + to.add("{ messages_chat"); to.add("\n").add(add); - to.add(" time: "); mtpTextSerializeType(to, from, end, mtpc_double, level + 1); to.add(",\n").add(add); - to.add(" type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" data: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_photos_photo: - to.add("{ photos_photo"); - to.add("\n").add(add); - to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" chat: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_peerNotifyEventsEmpty: - to.add("{ peerNotifyEventsEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_peerNotifyEventsAll: - to.add("{ peerNotifyEventsAll"); - to.add(" "); - to.add("}"); - break; - - case mtpc_nearestDc: - to.add("{ nearestDc"); - to.add("\n").add(add); - to.add(" country: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" this_dc: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" nearest_dc: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_wallPaper: - to.add("{ wallPaper"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" sizes: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" color: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_wallPaperSolid: - to.add("{ wallPaperSolid"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" bg_color: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" color: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geochats_messages: - to.add("{ geochats_messages"); - to.add("\n").add(add); - to.add(" messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geochats_messagesSlice: - to.add("{ geochats_messagesSlice"); - to.add("\n").add(add); - to.add(" count: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_blocked: - to.add("{ contacts_blocked"); - to.add("\n").add(add); - to.add(" blocked: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_blockedSlice: - to.add("{ contacts_blockedSlice"); - to.add("\n").add(add); - to.add(" count: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" blocked: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_statedMessage: - to.add("{ messages_statedMessage"); - to.add("\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_statedMessageLink: - to.add("{ messages_statedMessageLink"); - to.add("\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" links: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - case mtpc_messageMediaEmpty: to.add("{ messageMediaEmpty"); to.add(" "); @@ -1280,67 +733,37 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; - case mtpc_inputGeoChat: - to.add("{ inputGeoChat"); + case mtpc_notifyPeer: + to.add("{ notifyPeer"); to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_help_appUpdate: - to.add("{ help_appUpdate"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" critical: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" url: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" text: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_help_noAppUpdate: - to.add("{ help_noAppUpdate"); + case mtpc_notifyUsers: + to.add("{ notifyUsers"); to.add(" "); to.add("}"); break; - case mtpc_updates_differenceEmpty: - to.add("{ updates_differenceEmpty"); - to.add("\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + case mtpc_notifyChats: + to.add("{ notifyChats"); + to.add(" "); to.add("}"); break; - case mtpc_updates_difference: - to.add("{ updates_difference"); - to.add("\n").add(add); - to.add(" new_messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" new_encrypted_messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" other_updates: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" state: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + case mtpc_notifyAll: + to.add("{ notifyAll"); + to.add(" "); to.add("}"); break; - case mtpc_updates_differenceSlice: - to.add("{ updates_differenceSlice"); + case mtpc_new_session_created: + to.add("{ new_session_created"); to.add("\n").add(add); - to.add(" new_messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" new_encrypted_messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" other_updates: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" intermediate_state: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_msgs_state_info: - to.add("{ msgs_state_info"); - to.add("\n").add(add); - to.add(" req_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" info: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" first_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" unique_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" server_salt: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); to.add("}"); break; @@ -1351,232 +774,83 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; - case mtpc_msg_resend_req: - to.add("{ msg_resend_req"); + case mtpc_auth_sentCode: + to.add("{ auth_sentCode"); to.add("\n").add(add); - to.add(" msg_ids: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_long); to.add(",\n").add(add); + to.add(" phone_registered: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" phone_code_hash: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" send_call_timeout: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" is_password: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_inputDocumentEmpty: - to.add("{ inputDocumentEmpty"); + case mtpc_auth_sentAppCode: + to.add("{ auth_sentAppCode"); + to.add("\n").add(add); + to.add(" phone_registered: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" phone_code_hash: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" send_call_timeout: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" is_password: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_sendMessageTypingAction: + to.add("{ sendMessageTypingAction"); to.add(" "); to.add("}"); break; - case mtpc_inputDocument: - to.add("{ inputDocument"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_userStatusEmpty: - to.add("{ userStatusEmpty"); + case mtpc_sendMessageCancelAction: + to.add("{ sendMessageCancelAction"); to.add(" "); to.add("}"); break; - case mtpc_userStatusOnline: - to.add("{ userStatusOnline"); - to.add("\n").add(add); - to.add(" expires: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_userStatusOffline: - to.add("{ userStatusOffline"); - to.add("\n").add(add); - to.add(" was_online: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_photos_photos: - to.add("{ photos_photos"); - to.add("\n").add(add); - to.add(" photos: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_photos_photosSlice: - to.add("{ photos_photosSlice"); - to.add("\n").add(add); - to.add(" count: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" photos: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_decryptedMessage: - to.add("{ decryptedMessage"); - to.add("\n").add(add); - to.add(" random_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" random_bytes: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" media: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_decryptedMessageService: - to.add("{ decryptedMessageService"); - to.add("\n").add(add); - to.add(" random_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" random_bytes: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add(" action: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_importedContacts: - to.add("{ contacts_importedContacts"); - to.add("\n").add(add); - to.add(" imported: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" retry_contacts: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_long); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_fileLocationUnavailable: - to.add("{ fileLocationUnavailable"); - to.add("\n").add(add); - to.add(" volume_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" local_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" secret: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_fileLocation: - to.add("{ fileLocation"); - to.add("\n").add(add); - to.add(" dc_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" volume_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" local_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" secret: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_photoSizeEmpty: - to.add("{ photoSizeEmpty"); - to.add("\n").add(add); - to.add(" type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_photoSize: - to.add("{ photoSize"); - to.add("\n").add(add); - to.add(" type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" location: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" w: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" h: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" size: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_photoCachedSize: - to.add("{ photoCachedSize"); - to.add("\n").add(add); - to.add(" type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" location: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" w: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" h: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_msg_detailed_info: - to.add("{ msg_detailed_info"); - to.add("\n").add(add); - to.add(" msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" answer_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" status: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_msg_new_detailed_info: - to.add("{ msg_new_detailed_info"); - to.add("\n").add(add); - to.add(" answer_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" status: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputChatPhotoEmpty: - to.add("{ inputChatPhotoEmpty"); + case mtpc_sendMessageRecordVideoAction: + to.add("{ sendMessageRecordVideoAction"); to.add(" "); to.add("}"); break; - case mtpc_inputChatUploadedPhoto: - to.add("{ inputChatUploadedPhoto"); - to.add("\n").add(add); - to.add(" file: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" crop: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputChatPhoto: - to.add("{ inputChatPhoto"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" crop: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_sentMessage: - to.add("{ messages_sentMessage"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_sentMessageLink: - to.add("{ messages_sentMessageLink"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" links: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_chatFull: - to.add("{ messages_chatFull"); - to.add("\n").add(add); - to.add(" full_chat: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geochats_statedMessage: - to.add("{ geochats_statedMessage"); - to.add("\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_chatPhotoEmpty: - to.add("{ chatPhotoEmpty"); + case mtpc_sendMessageUploadVideoAction: + to.add("{ sendMessageUploadVideoAction"); to.add(" "); to.add("}"); break; - case mtpc_chatPhoto: - to.add("{ chatPhoto"); - to.add("\n").add(add); - to.add(" photo_small: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" photo_big: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + case mtpc_sendMessageRecordAudioAction: + to.add("{ sendMessageRecordAudioAction"); + to.add(" "); + to.add("}"); + break; + + case mtpc_sendMessageUploadAudioAction: + to.add("{ sendMessageUploadAudioAction"); + to.add(" "); + to.add("}"); + break; + + case mtpc_sendMessageUploadPhotoAction: + to.add("{ sendMessageUploadPhotoAction"); + to.add(" "); + to.add("}"); + break; + + case mtpc_sendMessageUploadDocumentAction: + to.add("{ sendMessageUploadDocumentAction"); + to.add(" "); + to.add("}"); + break; + + case mtpc_sendMessageGeoLocationAction: + to.add("{ sendMessageGeoLocationAction"); + to.add(" "); + to.add("}"); + break; + + case mtpc_sendMessageChooseContactAction: + to.add("{ sendMessageChooseContactAction"); + to.add(" "); to.add("}"); break; @@ -1601,41 +875,235 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; - case mtpc_destroy_session_ok: - to.add("{ destroy_session_ok"); + case mtpc_server_DH_inner_data: + to.add("{ server_DH_inner_data"); to.add("\n").add(add); - to.add(" session_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); + to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); + to.add(" g: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" dh_prime: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" g_a: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" server_time: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_destroy_session_none: - to.add("{ destroy_session_none"); + case mtpc_geochats_located: + to.add("{ geochats_located"); to.add("\n").add(add); - to.add(" session_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" results: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_http_wait: - to.add("{ http_wait"); - to.add("\n").add(add); - to.add(" max_delay: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" wait_after: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" max_wait: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_sentEncryptedMessage: - to.add("{ messages_sentEncryptedMessage"); + case mtpc_contactBlocked: + to.add("{ contactBlocked"); to.add("\n").add(add); + to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_messages_sentEncryptedFile: - to.add("{ messages_sentEncryptedFile"); + case mtpc_photoEmpty: + to.add("{ photoEmpty"); to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_photo: + to.add("{ photo"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" file: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" caption: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" geo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" sizes: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_contacts_found: + to.add("{ contacts_found"); + to.add("\n").add(add); + to.add(" results: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_geoChatMessageEmpty: + to.add("{ geoChatMessageEmpty"); + to.add("\n").add(add); + to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_geoChatMessage: + to.add("{ geoChatMessage"); + to.add("\n").add(add); + to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" from_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" media: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_geoChatMessageService: + to.add("{ geoChatMessageService"); + to.add("\n").add(add); + to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" from_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" action: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_inputVideoEmpty: + to.add("{ inputVideoEmpty"); + to.add(" "); + to.add("}"); + break; + + case mtpc_inputVideo: + to.add("{ inputVideo"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_peerUser: + to.add("{ peerUser"); + to.add("\n").add(add); + to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_peerChat: + to.add("{ peerChat"); + to.add("\n").add(add); + to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_msgs_ack: + to.add("{ msgs_ack"); + to.add("\n").add(add); + to.add(" msg_ids: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_long); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messages_statedMessage: + to.add("{ messages_statedMessage"); + to.add("\n").add(add); + to.add(" message: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messages_statedMessageLink: + to.add("{ messages_statedMessageLink"); + to.add("\n").add(add); + to.add(" message: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" links: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_fileLocationUnavailable: + to.add("{ fileLocationUnavailable"); + to.add("\n").add(add); + to.add(" volume_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" local_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" secret: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_fileLocation: + to.add("{ fileLocation"); + to.add("\n").add(add); + to.add(" dc_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" volume_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" local_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" secret: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messages_sentMessage: + to.add("{ messages_sentMessage"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messages_sentMessageLink: + to.add("{ messages_sentMessageLink"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" links: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_geoPointEmpty: + to.add("{ geoPointEmpty"); + to.add(" "); + to.add("}"); + break; + + case mtpc_geoPoint: + to.add("{ geoPoint"); + to.add("\n").add(add); + to.add(" long: "); mtpTextSerializeType(to, from, end, mtpc_double, level + 1); to.add(",\n").add(add); + to.add(" lat: "); mtpTextSerializeType(to, from, end, mtpc_double, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_inputDocumentEmpty: + to.add("{ inputDocumentEmpty"); + to.add(" "); + to.add("}"); + break; + + case mtpc_inputDocument: + to.add("{ inputDocument"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_chatParticipantsForbidden: + to.add("{ chatParticipantsForbidden"); + to.add("\n").add(add); + to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_chatParticipants: + to.add("{ chatParticipants"); + to.add("\n").add(add); + to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" admin_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" participants: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" version: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); to.add("}"); break; @@ -1658,368 +1126,11 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; - case mtpc_inputEncryptedChat: - to.add("{ inputEncryptedChat"); + case mtpc_auth_authorization: + to.add("{ auth_authorization"); to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_chats: - to.add("{ messages_chats"); - to.add("\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_encryptedChatEmpty: - to.add("{ encryptedChatEmpty"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_encryptedChatWaiting: - to.add("{ encryptedChatWaiting"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" admin_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" participant_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_encryptedChatRequested: - to.add("{ encryptedChatRequested"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" admin_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" participant_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" g_a: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_encryptedChat: - to.add("{ encryptedChat"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" admin_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" participant_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" g_a_or_b: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add(" key_fingerprint: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_encryptedChatDiscarded: - to.add("{ encryptedChatDiscarded"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_messages: - to.add("{ messages_messages"); - to.add("\n").add(add); - to.add(" messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_messagesSlice: - to.add("{ messages_messagesSlice"); - to.add("\n").add(add); - to.add(" count: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_auth_checkedPhone: - to.add("{ auth_checkedPhone"); - to.add("\n").add(add); - to.add(" phone_registered: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" phone_invited: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contactSuggested: - to.add("{ contactSuggested"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" mutual_contacts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_foreignLinkUnknown: - to.add("{ contacts_foreignLinkUnknown"); - to.add(" "); - to.add("}"); - break; - - case mtpc_contacts_foreignLinkRequested: - to.add("{ contacts_foreignLinkRequested"); - to.add("\n").add(add); - to.add(" has_phone: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_foreignLinkMutual: - to.add("{ contacts_foreignLinkMutual"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputAudioEmpty: - to.add("{ inputAudioEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputAudio: - to.add("{ inputAudio"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_contacts: - to.add("{ contacts_contacts"); - to.add("\n").add(add); - to.add(" contacts: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_contactsNotModified: - to.add("{ contacts_contactsNotModified"); - to.add(" "); - to.add("}"); - break; - - case mtpc_chatEmpty: - to.add("{ chatEmpty"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_chat: - to.add("{ chat"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" participants_count: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" left: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" version: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_chatForbidden: - to.add("{ chatForbidden"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geoChat: - to.add("{ geoChat"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" address: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" venue: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" geo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" participants_count: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" checked_in: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" version: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_pong: - to.add("{ pong"); - to.add("\n").add(add); - to.add(" msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" ping_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputPeerNotifyEventsEmpty: - to.add("{ inputPeerNotifyEventsEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputPeerNotifyEventsAll: - to.add("{ inputPeerNotifyEventsAll"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputPeerNotifySettings: - to.add("{ inputPeerNotifySettings"); - to.add("\n").add(add); - to.add(" mute_until: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" sound: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" show_previews: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" events_mask: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_affectedHistory: - to.add("{ messages_affectedHistory"); - to.add("\n").add(add); - to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputNotifyPeer: - to.add("{ inputNotifyPeer"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputNotifyUsers: - to.add("{ inputNotifyUsers"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputNotifyChats: - to.add("{ inputNotifyChats"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputNotifyAll: - to.add("{ inputNotifyAll"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputNotifyGeoChatPeer: - to.add("{ inputNotifyGeoChatPeer"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_bad_msg_notification: - to.add("{ bad_msg_notification"); - to.add("\n").add(add); - to.add(" bad_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" bad_msg_seqno: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" error_code: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_bad_server_salt: - to.add("{ bad_server_salt"); - to.add("\n").add(add); - to.add(" bad_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" bad_msg_seqno: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" error_code: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" new_server_salt: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_config: - to.add("{ config"); - to.add("\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" test_mode: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" this_dc: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" dc_options: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chat_size_max: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" broadcast_size_max: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputGeoPointEmpty: - to.add("{ inputGeoPointEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputGeoPoint: - to.add("{ inputGeoPoint"); - to.add("\n").add(add); - to.add(" lat: "); mtpTextSerializeType(to, from, end, mtpc_double, level + 1); to.add(",\n").add(add); - to.add(" long: "); mtpTextSerializeType(to, from, end, mtpc_double, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputUserEmpty: - to.add("{ inputUserEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputUserSelf: - to.add("{ inputUserSelf"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputUserContact: - to.add("{ inputUserContact"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputUserForeign: - to.add("{ inputUserForeign"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_dialog: - to.add("{ dialog"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" top_message: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" unread_count: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" notify_settings: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_importedContact: - to.add("{ importedContact"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" client_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_dcOption: - to.add("{ dcOption"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" hostname: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" ip_address: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" port: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" expires: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" user: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); to.add("}"); break; @@ -2067,6 +1178,7 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("{ updateUserTyping"); to.add("\n").add(add); to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" action: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); to.add("}"); break; @@ -2075,6 +1187,7 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("\n").add(add); to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" action: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); to.add("}"); break; @@ -2099,6 +1212,7 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" username: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); to.add("}"); break; @@ -2227,213 +1341,286 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; - case mtpc_decryptedMessageActionSetMessageTTL: - to.add("{ decryptedMessageActionSetMessageTTL"); + case mtpc_updateServiceNotification: + to.add("{ updateServiceNotification"); to.add("\n").add(add); - to.add(" ttl_seconds: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" media: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" popup: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_decryptedMessageActionReadMessages: - to.add("{ decryptedMessageActionReadMessages"); + case mtpc_p_q_inner_data: + to.add("{ p_q_inner_data"); to.add("\n").add(add); - to.add(" random_ids: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_long); to.add(",\n").add(add); + to.add(" pq: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" p: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" q: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); + to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); + to.add(" new_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int256, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_decryptedMessageActionDeleteMessages: - to.add("{ decryptedMessageActionDeleteMessages"); + case mtpc_http_wait: + to.add("{ http_wait"); to.add("\n").add(add); - to.add(" random_ids: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_long); to.add(",\n").add(add); + to.add(" max_delay: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" wait_after: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" max_wait: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_decryptedMessageActionScreenshotMessages: - to.add("{ decryptedMessageActionScreenshotMessages"); - to.add("\n").add(add); - to.add(" random_ids: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_long); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_decryptedMessageActionFlushHistory: - to.add("{ decryptedMessageActionFlushHistory"); - to.add(" "); - to.add("}"); - break; - - case mtpc_decryptedMessageActionNotifyLayer: - to.add("{ decryptedMessageActionNotifyLayer"); - to.add("\n").add(add); - to.add(" layer: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_peerNotifySettingsEmpty: - to.add("{ peerNotifySettingsEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_peerNotifySettings: - to.add("{ peerNotifySettings"); - to.add("\n").add(add); - to.add(" mute_until: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" sound: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" show_previews: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" events_mask: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_userEmpty: - to.add("{ userEmpty"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_userSelf: - to.add("{ userSelf"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" phone: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" status: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" inactive: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_userContact: - to.add("{ userContact"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" phone: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" status: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_userRequest: - to.add("{ userRequest"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" phone: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" status: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_userForeign: - to.add("{ userForeign"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" status: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_userDeleted: - to.add("{ userDeleted"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_suggested: - to.add("{ contacts_suggested"); - to.add("\n").add(add); - to.add(" results: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_auth_authorization: - to.add("{ auth_authorization"); - to.add("\n").add(add); - to.add(" expires: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" user: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_chat: - to.add("{ messages_chat"); - to.add("\n").add(add); - to.add(" chat: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_auth_sentCode: - to.add("{ auth_sentCode"); - to.add("\n").add(add); - to.add(" phone_registered: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" phone_code_hash: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" send_call_timeout: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" is_password: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_audioEmpty: - to.add("{ audioEmpty"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_audio: - to.add("{ audio"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" duration: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" mime_type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" size: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" dc_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_statedMessages: - to.add("{ messages_statedMessages"); + case mtpc_messages_messages: + to.add("{ messages_messages"); to.add("\n").add(add); to.add(" messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messages_messagesSlice: + to.add("{ messages_messagesSlice"); + to.add("\n").add(add); + to.add(" count: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_updates_differenceEmpty: + to.add("{ updates_differenceEmpty"); + to.add("\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_messages_statedMessagesLinks: - to.add("{ messages_statedMessagesLinks"); + case mtpc_updates_difference: + to.add("{ updates_difference"); + to.add("\n").add(add); + to.add(" new_messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" new_encrypted_messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" other_updates: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" state: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_updates_differenceSlice: + to.add("{ updates_differenceSlice"); + to.add("\n").add(add); + to.add(" new_messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" new_encrypted_messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" other_updates: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" intermediate_state: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messages_affectedHistory: + to.add("{ messages_affectedHistory"); + to.add("\n").add(add); + to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_inputNotifyPeer: + to.add("{ inputNotifyPeer"); + to.add("\n").add(add); + to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_inputNotifyUsers: + to.add("{ inputNotifyUsers"); + to.add(" "); + to.add("}"); + break; + + case mtpc_inputNotifyChats: + to.add("{ inputNotifyChats"); + to.add(" "); + to.add("}"); + break; + + case mtpc_inputNotifyAll: + to.add("{ inputNotifyAll"); + to.add(" "); + to.add("}"); + break; + + case mtpc_inputNotifyGeoChatPeer: + to.add("{ inputNotifyGeoChatPeer"); + to.add("\n").add(add); + to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_chatPhotoEmpty: + to.add("{ chatPhotoEmpty"); + to.add(" "); + to.add("}"); + break; + + case mtpc_chatPhoto: + to.add("{ chatPhoto"); + to.add("\n").add(add); + to.add(" photo_small: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" photo_big: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messageEmpty: + to.add("{ messageEmpty"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_message: + to.add("{ message"); + to.add("\n").add(add); + to.add(" flags: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" from_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" to_id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" media: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messageForwarded: + to.add("{ messageForwarded"); + to.add("\n").add(add); + to.add(" flags: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" fwd_from_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" fwd_date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" from_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" to_id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" media: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messageService: + to.add("{ messageService"); + to.add("\n").add(add); + to.add(" flags: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" from_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" to_id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" action: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_client_DH_inner_data: + to.add("{ client_DH_inner_data"); + to.add("\n").add(add); + to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); + to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); + to.add(" retry_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" g_b: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_updatesTooLong: + to.add("{ updatesTooLong"); + to.add(" "); + to.add("}"); + break; + + case mtpc_updateShortMessage: + to.add("{ updateShortMessage"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" from_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_updateShortChatMessage: + to.add("{ updateShortChatMessage"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" from_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_updateShort: + to.add("{ updateShort"); + to.add("\n").add(add); + to.add(" update: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_updatesCombined: + to.add("{ updatesCombined"); + to.add("\n").add(add); + to.add(" updates: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" seq_start: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_updates: + to.add("{ updates"); + to.add("\n").add(add); + to.add(" updates: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_geochats_messages: + to.add("{ geochats_messages"); to.add("\n").add(add); to.add(" messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" links: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_contactBlocked: - to.add("{ contactBlocked"); + case mtpc_geochats_messagesSlice: + to.add("{ geochats_messagesSlice"); to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" count: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_rpc_error: + to.add("{ rpc_error"); + to.add("\n").add(add); + to.add(" error_code: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" error_message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); to.add("}"); break; @@ -2497,34 +1684,27 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; - case mtpc_help_inviteText: - to.add("{ help_inviteText"); + case mtpc_contacts_suggested: + to.add("{ contacts_suggested"); to.add("\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" results: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_chatLocated: - to.add("{ chatLocated"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" distance: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + case mtpc_peerNotifySettingsEmpty: + to.add("{ peerNotifySettingsEmpty"); + to.add(" "); to.add("}"); break; - case mtpc_contact: - to.add("{ contact"); + case mtpc_peerNotifySettings: + to.add("{ peerNotifySettings"); to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" mutual: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_decryptedMessageLayer: - to.add("{ decryptedMessageLayer"); - to.add("\n").add(add); - to.add(" layer: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" mute_until: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" sound: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" show_previews: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" events_mask: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); to.add("}"); break; @@ -2539,6 +1719,462 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; + case mtpc_messages_messageEmpty: + to.add("{ messages_messageEmpty"); + to.add(" "); + to.add("}"); + break; + + case mtpc_messages_message: + to.add("{ messages_message"); + to.add("\n").add(add); + to.add(" message: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_inputFile: + to.add("{ inputFile"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" parts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" md5_checksum: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_inputFileBig: + to.add("{ inputFileBig"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" parts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_chatParticipant: + to.add("{ chatParticipant"); + to.add("\n").add(add); + to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" inviter_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_contactSuggested: + to.add("{ contactSuggested"); + to.add("\n").add(add); + to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" mutual_contacts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_dh_gen_ok: + to.add("{ dh_gen_ok"); + to.add("\n").add(add); + to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); + to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); + to.add(" new_nonce_hash1: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_dh_gen_retry: + to.add("{ dh_gen_retry"); + to.add("\n").add(add); + to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); + to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); + to.add(" new_nonce_hash2: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_dh_gen_fail: + to.add("{ dh_gen_fail"); + to.add("\n").add(add); + to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); + to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); + to.add(" new_nonce_hash3: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_photos_photo: + to.add("{ photos_photo"); + to.add("\n").add(add); + to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_userEmpty: + to.add("{ userEmpty"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_userSelf: + to.add("{ userSelf"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" username: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" phone: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" status: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" inactive: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_userContact: + to.add("{ userContact"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" username: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" phone: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" status: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_userRequest: + to.add("{ userRequest"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" username: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" phone: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" status: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_userForeign: + to.add("{ userForeign"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" username: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" status: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_userDeleted: + to.add("{ userDeleted"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" username: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_help_appUpdate: + to.add("{ help_appUpdate"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" critical: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" url: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" text: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_help_noAppUpdate: + to.add("{ help_noAppUpdate"); + to.add(" "); + to.add("}"); + break; + + case mtpc_contacts_foreignLinkUnknown: + to.add("{ contacts_foreignLinkUnknown"); + to.add(" "); + to.add("}"); + break; + + case mtpc_contacts_foreignLinkRequested: + to.add("{ contacts_foreignLinkRequested"); + to.add("\n").add(add); + to.add(" has_phone: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_contacts_foreignLinkMutual: + to.add("{ contacts_foreignLinkMutual"); + to.add(" "); + to.add("}"); + break; + + case mtpc_encryptedChatEmpty: + to.add("{ encryptedChatEmpty"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_encryptedChatWaiting: + to.add("{ encryptedChatWaiting"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" admin_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" participant_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_encryptedChatRequested: + to.add("{ encryptedChatRequested"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" admin_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" participant_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" g_a: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_encryptedChat: + to.add("{ encryptedChat"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" admin_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" participant_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" g_a_or_b: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); + to.add(" key_fingerprint: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_encryptedChatDiscarded: + to.add("{ encryptedChatDiscarded"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_dialog: + to.add("{ dialog"); + to.add("\n").add(add); + to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" top_message: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" unread_count: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" notify_settings: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_help_support: + to.add("{ help_support"); + to.add("\n").add(add); + to.add(" phone_number: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" user: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_inputMessagesFilterEmpty: + to.add("{ inputMessagesFilterEmpty"); + to.add(" "); + to.add("}"); + break; + + case mtpc_inputMessagesFilterPhotos: + to.add("{ inputMessagesFilterPhotos"); + to.add(" "); + to.add("}"); + break; + + case mtpc_inputMessagesFilterVideo: + to.add("{ inputMessagesFilterVideo"); + to.add(" "); + to.add("}"); + break; + + case mtpc_inputMessagesFilterPhotoVideo: + to.add("{ inputMessagesFilterPhotoVideo"); + to.add(" "); + to.add("}"); + break; + + case mtpc_inputMessagesFilterDocument: + to.add("{ inputMessagesFilterDocument"); + to.add(" "); + to.add("}"); + break; + + case mtpc_inputMessagesFilterAudio: + to.add("{ inputMessagesFilterAudio"); + to.add(" "); + to.add("}"); + break; + + case mtpc_messageActionEmpty: + to.add("{ messageActionEmpty"); + to.add(" "); + to.add("}"); + break; + + case mtpc_messageActionChatCreate: + to.add("{ messageActionChatCreate"); + to.add("\n").add(add); + to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_int); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messageActionChatEditTitle: + to.add("{ messageActionChatEditTitle"); + to.add("\n").add(add); + to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messageActionChatEditPhoto: + to.add("{ messageActionChatEditPhoto"); + to.add("\n").add(add); + to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messageActionChatDeletePhoto: + to.add("{ messageActionChatDeletePhoto"); + to.add(" "); + to.add("}"); + break; + + case mtpc_messageActionChatAddUser: + to.add("{ messageActionChatAddUser"); + to.add("\n").add(add); + to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messageActionChatDeleteUser: + to.add("{ messageActionChatDeleteUser"); + to.add("\n").add(add); + to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messageActionGeoChatCreate: + to.add("{ messageActionGeoChatCreate"); + to.add("\n").add(add); + to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" address: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messageActionGeoChatCheckin: + to.add("{ messageActionGeoChatCheckin"); + to.add(" "); + to.add("}"); + break; + + case mtpc_auth_exportedAuthorization: + to.add("{ auth_exportedAuthorization"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_peerNotifyEventsEmpty: + to.add("{ peerNotifyEventsEmpty"); + to.add(" "); + to.add("}"); + break; + + case mtpc_peerNotifyEventsAll: + to.add("{ peerNotifyEventsAll"); + to.add(" "); + to.add("}"); + break; + + case mtpc_chatFull: + to.add("{ chatFull"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" participants: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" chat_photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" notify_settings: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_videoEmpty: + to.add("{ videoEmpty"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_video: + to.add("{ video"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" caption: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" duration: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" mime_type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" size: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" thumb: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" dc_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" w: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" h: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_audioEmpty: + to.add("{ audioEmpty"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_audio: + to.add("{ audio"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" duration: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" mime_type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" size: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" dc_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_rpc_answer_unknown: + to.add("{ rpc_answer_unknown"); + to.add(" "); + to.add("}"); + break; + + case mtpc_rpc_answer_dropped_running: + to.add("{ rpc_answer_dropped_running"); + to.add(" "); + to.add("}"); + break; + + case mtpc_rpc_answer_dropped: + to.add("{ rpc_answer_dropped"); + to.add("\n").add(add); + to.add(" msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" seq_no: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + case mtpc_encryptedFileEmpty: to.add("{ encryptedFileEmpty"); to.add(" "); @@ -2556,22 +2192,378 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; - case mtpc_msgs_all_info: - to.add("{ msgs_all_info"); + case mtpc_contacts_blocked: + to.add("{ contacts_blocked"); + to.add("\n").add(add); + to.add(" blocked: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_contacts_blockedSlice: + to.add("{ contacts_blockedSlice"); + to.add("\n").add(add); + to.add(" count: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" blocked: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messages_statedMessages: + to.add("{ messages_statedMessages"); + to.add("\n").add(add); + to.add(" messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messages_statedMessagesLinks: + to.add("{ messages_statedMessagesLinks"); + to.add("\n").add(add); + to.add(" messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" links: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_msg_resend_req: + to.add("{ msg_resend_req"); to.add("\n").add(add); to.add(" msg_ids: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_long); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_pong: + to.add("{ pong"); + to.add("\n").add(add); + to.add(" msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" ping_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_msg_detailed_info: + to.add("{ msg_detailed_info"); + to.add("\n").add(add); + to.add(" msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" answer_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" status: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_msg_new_detailed_info: + to.add("{ msg_new_detailed_info"); + to.add("\n").add(add); + to.add(" answer_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" status: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_chatEmpty: + to.add("{ chatEmpty"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_chat: + to.add("{ chat"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" participants_count: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" left: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" version: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_chatForbidden: + to.add("{ chatForbidden"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_geoChat: + to.add("{ geoChat"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" address: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" venue: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" geo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" participants_count: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" checked_in: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" version: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_config: + to.add("{ config"); + to.add("\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" test_mode: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" this_dc: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" dc_options: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" chat_size_max: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" broadcast_size_max: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_wallPaper: + to.add("{ wallPaper"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" sizes: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" color: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_wallPaperSolid: + to.add("{ wallPaperSolid"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" bg_color: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" color: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_future_salts: + to.add("{ future_salts"); + to.add("\n").add(add); + to.add(" req_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" now: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" salts: "); mtpTextSerializeType(to, from, end, mtpc_vector, level + 1, mtpc_future_salt); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_inputGeoChat: + to.add("{ inputGeoChat"); + to.add("\n").add(add); + to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_msgs_state_info: + to.add("{ msgs_state_info"); + to.add("\n").add(add); + to.add(" req_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); to.add(" info: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_photos_updateProfilePhoto: - to.add("{ photos_updateProfilePhoto"); + case mtpc_inputGeoPointEmpty: + to.add("{ inputGeoPointEmpty"); + to.add(" "); + to.add("}"); + break; + + case mtpc_inputGeoPoint: + to.add("{ inputGeoPoint"); + to.add("\n").add(add); + to.add(" lat: "); mtpTextSerializeType(to, from, end, mtpc_double, level + 1); to.add(",\n").add(add); + to.add(" long: "); mtpTextSerializeType(to, from, end, mtpc_double, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_inputPhoneContact: + to.add("{ inputPhoneContact"); + to.add("\n").add(add); + to.add(" client_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" phone: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messages_chats: + to.add("{ messages_chats"); + to.add("\n").add(add); + to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_inputChatPhotoEmpty: + to.add("{ inputChatPhotoEmpty"); + to.add(" "); + to.add("}"); + break; + + case mtpc_inputChatUploadedPhoto: + to.add("{ inputChatUploadedPhoto"); + to.add("\n").add(add); + to.add(" file: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" crop: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_inputChatPhoto: + to.add("{ inputChatPhoto"); to.add("\n").add(add); to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); to.add(" crop: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); to.add("}"); break; + case mtpc_messages_chatFull: + to.add("{ messages_chatFull"); + to.add("\n").add(add); + to.add(" full_chat: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_inputPeerNotifyEventsEmpty: + to.add("{ inputPeerNotifyEventsEmpty"); + to.add(" "); + to.add("}"); + break; + + case mtpc_inputPeerNotifyEventsAll: + to.add("{ inputPeerNotifyEventsAll"); + to.add(" "); + to.add("}"); + break; + + case mtpc_inputAppEvent: + to.add("{ inputAppEvent"); + to.add("\n").add(add); + to.add(" time: "); mtpTextSerializeType(to, from, end, mtpc_double, level + 1); to.add(",\n").add(add); + to.add(" type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" peer: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" data: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_bad_msg_notification: + to.add("{ bad_msg_notification"); + to.add("\n").add(add); + to.add(" bad_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" bad_msg_seqno: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" error_code: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_bad_server_salt: + to.add("{ bad_server_salt"); + to.add("\n").add(add); + to.add(" bad_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" bad_msg_seqno: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" error_code: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" new_server_salt: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_auth_checkedPhone: + to.add("{ auth_checkedPhone"); + to.add("\n").add(add); + to.add(" phone_registered: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" phone_invited: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_userFull: + to.add("{ userFull"); + to.add("\n").add(add); + to.add(" user: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" link: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" profile_photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" notify_settings: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" blocked: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" real_first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" real_last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_chatLocated: + to.add("{ chatLocated"); + to.add("\n").add(add); + to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" distance: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_contacts_importContacts: + to.add("{ contacts_importContacts"); + to.add("\n").add(add); + to.add(" contacts: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" replace: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messages_forwardMessages: + to.add("{ messages_forwardMessages"); + to.add("\n").add(add); + to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_int); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messages_sendBroadcast: + to.add("{ messages_sendBroadcast"); + to.add("\n").add(add); + to.add(" contacts: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" media: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_upload_getFile: + to.add("{ upload_getFile"); + to.add("\n").add(add); + to.add(" location: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_auth_signUp: + to.add("{ auth_signUp"); + to.add("\n").add(add); + to.add(" phone_number: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" phone_code_hash: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" phone_code: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_auth_signIn: + to.add("{ auth_signIn"); + to.add("\n").add(add); + to.add(" phone_number: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" phone_code_hash: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" phone_code: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_auth_importAuthorization: + to.add("{ auth_importAuthorization"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + case mtpc_messages_getMessages: to.add("{ messages_getMessages"); to.add("\n").add(add); @@ -2603,6 +2595,90 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; + case mtpc_photos_getUserPhotos: + to.add("{ photos_getUserPhotos"); + to.add("\n").add(add); + to.add(" user_id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" max_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_updates_getDifference: + to.add("{ updates_getDifference"); + to.add("\n").add(add); + to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" qts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messages_readHistory: + to.add("{ messages_readHistory"); + to.add("\n").add(add); + to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" max_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" read_contents: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messages_deleteHistory: + to.add("{ messages_deleteHistory"); + to.add("\n").add(add); + to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_help_getNearestDc: + to.add("{ help_getNearestDc"); + to.add(" "); + to.add("}"); + break; + + case mtpc_req_pq: + to.add("{ req_pq"); + to.add("\n").add(add); + to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_help_getSupport: + to.add("{ help_getSupport"); + to.add(" "); + to.add("}"); + break; + + case mtpc_contacts_getSuggested: + to.add("{ contacts_getSuggested"); + to.add("\n").add(add); + to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_account_getNotifySettings: + to.add("{ account_getNotifySettings"); + to.add("\n").add(add); + to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_updates_getState: + to.add("{ updates_getState"); + to.add(" "); + to.add("}"); + break; + + case mtpc_photos_updateProfilePhoto: + to.add("{ photos_updateProfilePhoto"); + to.add("\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" crop: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + case mtpc_set_client_DH_params: to.add("{ set_client_DH_params"); to.add("\n").add(add); @@ -2612,16 +2688,76 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; + case mtpc_invokeAfterMsg: + to.add("{ invokeAfterMsg"); + to.add("\n").add(add); + to.add(" msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" query: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_invokeAfterMsgs: + to.add("{ invokeAfterMsgs"); + to.add("\n").add(add); + to.add(" msg_ids: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_long); to.add(",\n").add(add); + to.add(" query: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_initConnection: + to.add("{ initConnection"); + to.add("\n").add(add); + to.add(" api_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" device_model: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" system_version: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" app_version: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" lang_code: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" query: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + case mtpc_contacts_getStatuses: to.add("{ contacts_getStatuses"); to.add(" "); to.add("}"); break; - case mtpc_auth_checkPhone: - to.add("{ auth_checkPhone"); + case mtpc_contacts_deleteContact: + to.add("{ contacts_deleteContact"); to.add("\n").add(add); - to.add(" phone_number: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_photos_uploadProfilePhoto: + to.add("{ photos_uploadProfilePhoto"); + to.add("\n").add(add); + to.add(" file: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" caption: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" geo_point: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" crop: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_account_updateProfile: + to.add("{ account_updateProfile"); + to.add("\n").add(add); + to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_contacts_importCard: + to.add("{ contacts_importCard"); + to.add("\n").add(add); + to.add(" export_card: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_int); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_account_updateUsername: + to.add("{ account_updateUsername"); + to.add("\n").add(add); + to.add(" username: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); to.add("}"); break; @@ -2635,42 +2771,13 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; - case mtpc_updates_getDifference: - to.add("{ updates_getDifference"); - to.add("\n").add(add); - to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" qts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_help_getInviteText: - to.add("{ help_getInviteText"); - to.add("\n").add(add); - to.add(" lang_code: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_users_getFullUser: - to.add("{ users_getFullUser"); + case mtpc_users_getUsers: + to.add("{ users_getUsers"); to.add("\n").add(add); to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_updates_getState: - to.add("{ updates_getState"); - to.add(" "); - to.add("}"); - break; - - case mtpc_contacts_getContacts: - to.add("{ contacts_getContacts"); - to.add("\n").add(add); - to.add(" hash: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - case mtpc_geochats_checkin: to.add("{ geochats_checkin"); to.add("\n").add(add); @@ -2723,6 +2830,142 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; + case mtpc_auth_exportAuthorization: + to.add("{ auth_exportAuthorization"); + to.add("\n").add(add); + to.add(" dc_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messages_requestEncryption: + to.add("{ messages_requestEncryption"); + to.add("\n").add(add); + to.add(" user_id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" random_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" g_a: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messages_acceptEncryption: + to.add("{ messages_acceptEncryption"); + to.add("\n").add(add); + to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" g_b: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); + to.add(" key_fingerprint: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_geochats_getRecents: + to.add("{ geochats_getRecents"); + to.add("\n").add(add); + to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_geochats_search: + to.add("{ geochats_search"); + to.add("\n").add(add); + to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" q: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" filter: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" min_date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" max_date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" max_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_geochats_getHistory: + to.add("{ geochats_getHistory"); + to.add("\n").add(add); + to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" max_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messages_sendEncrypted: + to.add("{ messages_sendEncrypted"); + to.add("\n").add(add); + to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" random_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" data: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messages_sendEncryptedFile: + to.add("{ messages_sendEncryptedFile"); + to.add("\n").add(add); + to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" random_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" data: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); + to.add(" file: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messages_sendEncryptedService: + to.add("{ messages_sendEncryptedService"); + to.add("\n").add(add); + to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" random_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" data: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_destroy_session: + to.add("{ destroy_session"); + to.add("\n").add(add); + to.add(" session_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messages_receivedQueue: + to.add("{ messages_receivedQueue"); + to.add("\n").add(add); + to.add(" max_qts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_contacts_getContacts: + to.add("{ contacts_getContacts"); + to.add("\n").add(add); + to.add(" hash: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_rpc_drop_answer: + to.add("{ rpc_drop_answer"); + to.add("\n").add(add); + to.add(" req_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_contacts_getBlocked: + to.add("{ contacts_getBlocked"); + to.add("\n").add(add); + to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_help_getInviteText: + to.add("{ help_getInviteText"); + to.add("\n").add(add); + to.add(" lang_code: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messages_getDhConfig: + to.add("{ messages_getDhConfig"); + to.add("\n").add(add); + to.add(" version: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" random_length: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + case mtpc_ping: to.add("{ ping"); to.add("\n").add(add); @@ -2738,26 +2981,51 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; - case mtpc_help_getSupport: - to.add("{ help_getSupport"); + case mtpc_auth_sendCode: + to.add("{ auth_sendCode"); + to.add("\n").add(add); + to.add(" phone_number: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" sms_type: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" api_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" api_hash: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" lang_code: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_messages_getDialogs: + to.add("{ messages_getDialogs"); + to.add("\n").add(add); + to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" max_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_help_getConfig: + to.add("{ help_getConfig"); to.add(" "); to.add("}"); break; - case mtpc_messages_readHistory: - to.add("{ messages_readHistory"); + case mtpc_geochats_getLocated: + to.add("{ geochats_getLocated"); to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" max_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" geo_point: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" radius: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_messages_deleteHistory: - to.add("{ messages_deleteHistory"); + case mtpc_users_getFullUser: + to.add("{ users_getFullUser"); to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_contacts_exportCard: + to.add("{ contacts_exportCard"); + to.add(" "); to.add("}"); break; @@ -2782,10 +3050,18 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; - case mtpc_users_getUsers: - to.add("{ users_getUsers"); + case mtpc_messages_readMessageContents: + to.add("{ messages_readMessageContents"); to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_int); to.add(",\n").add(add); + to.add("}"); + break; + + case mtpc_contacts_search: + to.add("{ contacts_search"); + to.add("\n").add(add); + to.add(" q: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); to.add("}"); break; @@ -2796,13 +3072,21 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; - case mtpc_photos_getUserPhotos: - to.add("{ photos_getUserPhotos"); + case mtpc_account_getWallPapers: + to.add("{ account_getWallPapers"); + to.add(" "); + to.add("}"); + break; + + case mtpc_req_DH_params: + to.add("{ req_DH_params"); to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" max_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); + to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); + to.add(" p: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" q: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" public_key_fingerprint: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" encrypted_data: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); to.add("}"); break; @@ -2845,6 +3129,16 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; + case mtpc_auth_bindTempAuthKey: + to.add("{ auth_bindTempAuthKey"); + to.add("\n").add(add); + to.add(" perm_auth_key_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" expires_at: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" encrypted_message: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); + to.add("}"); + break; + case mtpc_account_registerDevice: to.add("{ account_registerDevice"); to.add("\n").add(add); @@ -2912,7 +3206,7 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("{ messages_setTyping"); to.add("\n").add(add); to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" typing: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" action: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); to.add("}"); break; @@ -2973,85 +3267,25 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; - case mtpc_req_pq: - to.add("{ req_pq"); + case mtpc_auth_sendSms: + to.add("{ auth_sendSms"); to.add("\n").add(add); - to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); + to.add(" phone_number: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" phone_code_hash: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_auth_exportAuthorization: - to.add("{ auth_exportAuthorization"); + case mtpc_account_checkUsername: + to.add("{ account_checkUsername"); to.add("\n").add(add); - to.add(" dc_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); + to.add(" username: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_contacts_importContacts: - to.add("{ contacts_importContacts"); + case mtpc_messages_getChats: + to.add("{ messages_getChats"); to.add("\n").add(add); - to.add(" contacts: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" replace: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_rpc_drop_answer: - to.add("{ rpc_drop_answer"); - to.add("\n").add(add); - to.add(" req_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_help_getConfig: - to.add("{ help_getConfig"); - to.add(" "); - to.add("}"); - break; - - case mtpc_help_getNearestDc: - to.add("{ help_getNearestDc"); - to.add(" "); - to.add("}"); - break; - - case mtpc_messages_getDialogs: - to.add("{ messages_getDialogs"); - to.add("\n").add(add); - to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" max_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_account_getNotifySettings: - to.add("{ account_getNotifySettings"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geochats_getLocated: - to.add("{ geochats_getLocated"); - to.add("\n").add(add); - to.add(" geo_point: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" radius: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_getDhConfig: - to.add("{ messages_getDhConfig"); - to.add("\n").add(add); - to.add(" version: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" random_length: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_account_updateProfile: - to.add("{ account_updateProfile"); - to.add("\n").add(add); - to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_int); to.add(",\n").add(add); to.add("}"); break; @@ -3069,247 +3303,6 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; - case mtpc_req_DH_params: - to.add("{ req_DH_params"); - to.add("\n").add(add); - to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" p: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" q: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" public_key_fingerprint: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" encrypted_data: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_getSuggested: - to.add("{ contacts_getSuggested"); - to.add("\n").add(add); - to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_auth_signUp: - to.add("{ auth_signUp"); - to.add("\n").add(add); - to.add(" phone_number: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" phone_code_hash: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" phone_code: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_auth_signIn: - to.add("{ auth_signIn"); - to.add("\n").add(add); - to.add(" phone_number: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" phone_code_hash: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" phone_code: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_auth_importAuthorization: - to.add("{ auth_importAuthorization"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_upload_getFile: - to.add("{ upload_getFile"); - to.add("\n").add(add); - to.add(" location: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_photos_uploadProfilePhoto: - to.add("{ photos_uploadProfilePhoto"); - to.add("\n").add(add); - to.add(" file: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" caption: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" geo_point: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" crop: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_auth_sendCode: - to.add("{ auth_sendCode"); - to.add("\n").add(add); - to.add(" phone_number: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" sms_type: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" api_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" api_hash: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" lang_code: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_forwardMessages: - to.add("{ messages_forwardMessages"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_int); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_sendBroadcast: - to.add("{ messages_sendBroadcast"); - to.add("\n").add(add); - to.add(" contacts: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" media: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_receivedQueue: - to.add("{ messages_receivedQueue"); - to.add("\n").add(add); - to.add(" max_qts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_search: - to.add("{ contacts_search"); - to.add("\n").add(add); - to.add(" q: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_sendMessage: - to.add("{ messages_sendMessage"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" random_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geochats_getRecents: - to.add("{ geochats_getRecents"); - to.add("\n").add(add); - to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geochats_search: - to.add("{ geochats_search"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" q: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" filter: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" min_date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" max_date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" max_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geochats_getHistory: - to.add("{ geochats_getHistory"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" max_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_destroy_session: - to.add("{ destroy_session"); - to.add("\n").add(add); - to.add(" session_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_account_getWallPapers: - to.add("{ account_getWallPapers"); - to.add(" "); - to.add("}"); - break; - - case mtpc_messages_sendEncrypted: - to.add("{ messages_sendEncrypted"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" random_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" data: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_sendEncryptedFile: - to.add("{ messages_sendEncryptedFile"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" random_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" data: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add(" file: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_sendEncryptedService: - to.add("{ messages_sendEncryptedService"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" random_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" data: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_getBlocked: - to.add("{ contacts_getBlocked"); - to.add("\n").add(add); - to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_deleteContact: - to.add("{ contacts_deleteContact"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_invokeAfterMsg: - to.add("{ invokeAfterMsg"); - to.add("\n").add(add); - to.add(" msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" query: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_invokeAfterMsgs: - to.add("{ invokeAfterMsgs"); - to.add("\n").add(add); - to.add(" msg_ids: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_long); to.add(",\n").add(add); - to.add(" query: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_initConnection: - to.add("{ initConnection"); - to.add("\n").add(add); - to.add(" api_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" device_model: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" system_version: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" app_version: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" lang_code: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" query: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_getChats: - to.add("{ messages_getChats"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_int); to.add(",\n").add(add); - to.add("}"); - break; - case mtpc_messages_sendMedia: to.add("{ messages_sendMedia"); to.add("\n").add(add); @@ -3369,21 +3362,19 @@ void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpP to.add("}"); break; - case mtpc_messages_requestEncryption: - to.add("{ messages_requestEncryption"); + case mtpc_messages_sendMessage: + to.add("{ messages_sendMessage"); to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" random_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" g_a: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); + to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add(" random_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); to.add("}"); break; - case mtpc_messages_acceptEncryption: - to.add("{ messages_acceptEncryption"); + case mtpc_auth_checkPhone: + to.add("{ auth_checkPhone"); to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" g_b: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add(" key_fingerprint: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); + to.add(" phone_number: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); to.add("}"); break; diff --git a/Telegram/SourceFiles/mtproto/mtpScheme.h b/Telegram/SourceFiles/mtproto/mtpScheme.h index cb313179c3..888be883a2 100644 --- a/Telegram/SourceFiles/mtproto/mtpScheme.h +++ b/Telegram/SourceFiles/mtproto/mtpScheme.h @@ -111,11 +111,11 @@ enum { mtpc_fileLocationUnavailable = 0x7c596b46, mtpc_fileLocation = 0x53d69076, mtpc_userEmpty = 0x200250ba, - mtpc_userSelf = 0x720535ec, - mtpc_userContact = 0xf2fb8319, - mtpc_userRequest = 0x22e8ceb0, - mtpc_userForeign = 0x5214c89d, - mtpc_userDeleted = 0xb29ad7cc, + mtpc_userSelf = 0x7007b451, + mtpc_userContact = 0xcab35e18, + mtpc_userRequest = 0xd9ccc4ef, + mtpc_userForeign = 0x75cf7a8, + mtpc_userDeleted = 0xd6016d7a, mtpc_userProfilePhotoEmpty = 0x4f11bae1, mtpc_userProfilePhoto = 0xd559d8c8, mtpc_userStatusEmpty = 0x9d05049, @@ -131,9 +131,9 @@ enum { mtpc_chatPhotoEmpty = 0x37c1011c, mtpc_chatPhoto = 0x6153276a, mtpc_messageEmpty = 0x83e5de54, - mtpc_message = 0x22eb6aba, - mtpc_messageForwarded = 0x5f46804, - mtpc_messageService = 0x9f8d60bb, + mtpc_message = 0x567699b3, + mtpc_messageForwarded = 0xa367e716, + mtpc_messageService = 0x1d86f70e, mtpc_messageMediaEmpty = 0x3ded6320, mtpc_messageMediaPhoto = 0xc8c45a2a, mtpc_messageMediaVideo = 0xa2d24290, @@ -177,7 +177,6 @@ enum { mtpc_contact = 0xf911c994, mtpc_importedContact = 0xd0028438, mtpc_contactBlocked = 0x561bc879, - mtpc_contactFound = 0xea879f95, mtpc_contactSuggested = 0x3de191a1, mtpc_contactStatus = 0xaa77b873, mtpc_chatLocated = 0x3631cf4c, @@ -193,7 +192,6 @@ enum { mtpc_contacts_importedContacts = 0xad524315, mtpc_contacts_blocked = 0x1c138d15, mtpc_contacts_blockedSlice = 0x900802a1, - mtpc_contacts_found = 0x566000e, mtpc_contacts_suggested = 0x5649dcc5, mtpc_messages_dialogs = 0x15ba6c40, mtpc_messages_dialogsSlice = 0x71e094f3, @@ -219,11 +217,11 @@ enum { mtpc_updateReadMessages = 0xc6649e31, mtpc_updateDeleteMessages = 0xa92bfe26, mtpc_updateRestoreMessages = 0xd15de04d, - mtpc_updateUserTyping = 0x6baa8508, - mtpc_updateChatUserTyping = 0x3c46cfe6, + mtpc_updateUserTyping = 0x5c486927, + mtpc_updateChatUserTyping = 0x9a65ea1f, mtpc_updateChatParticipants = 0x7761198, mtpc_updateUserStatus = 0x1bfbd823, - mtpc_updateUserName = 0xda22d9ad, + mtpc_updateUserName = 0xa7332b73, mtpc_updateUserPhoto = 0x95313b0c, mtpc_updateContactRegistered = 0x2575bbb9, mtpc_updateContactLink = 0x51a48a9a, @@ -284,15 +282,6 @@ enum { mtpc_inputEncryptedFileLocation = 0xf5235d55, mtpc_encryptedMessage = 0xed18c118, mtpc_encryptedMessageService = 0x23734b06, - mtpc_decryptedMessageLayer = 0x99a438cf, - mtpc_decryptedMessage = 0x1f814f1f, - mtpc_decryptedMessageService = 0xaa48327d, - mtpc_decryptedMessageMediaEmpty = 0x89f5c4a, - mtpc_decryptedMessageMediaPhoto = 0x32798a8c, - mtpc_decryptedMessageMediaVideo = 0x524a415d, - mtpc_decryptedMessageMediaGeoPoint = 0x35480a59, - mtpc_decryptedMessageMediaContact = 0x588a0a97, - mtpc_decryptedMessageActionSetMessageTTL = 0xa1733aec, mtpc_messages_dhConfigNotModified = 0xc0e24635, mtpc_messages_dhConfig = 0x2c221edd, mtpc_messages_sentEncryptedMessage = 0x560f8935, @@ -315,24 +304,31 @@ enum { mtpc_inputDocument = 0x18798952, mtpc_inputAudioFileLocation = 0x74dc404d, mtpc_inputDocumentFileLocation = 0x4e45abe9, - mtpc_decryptedMessageMediaDocument = 0xb095434b, - mtpc_decryptedMessageMediaAudio = 0x57e0a9cb, mtpc_audioEmpty = 0x586988d8, mtpc_audio = 0xc7ac6496, mtpc_documentEmpty = 0x36f8c871, mtpc_document = 0x9efc6326, mtpc_help_support = 0x17c6b5f6, - mtpc_decryptedMessageActionReadMessages = 0xc4f40be, - mtpc_decryptedMessageActionDeleteMessages = 0x65614304, - mtpc_decryptedMessageActionScreenshotMessages = 0x8ac1f475, - mtpc_decryptedMessageActionFlushHistory = 0x6719e45c, - mtpc_decryptedMessageActionNotifyLayer = 0xf3048883, mtpc_notifyPeer = 0x9fd40bd8, mtpc_notifyUsers = 0xb4c83b4c, mtpc_notifyChats = 0xc007cec3, mtpc_notifyAll = 0x74d07c60, mtpc_updateUserBlocked = 0x80ece81a, mtpc_updateNotifySettings = 0xbec268ef, + mtpc_auth_sentAppCode = 0xe325edcf, + mtpc_sendMessageTypingAction = 0x16bf744e, + mtpc_sendMessageCancelAction = 0xfd5ec8f5, + mtpc_sendMessageRecordVideoAction = 0xa187d66f, + mtpc_sendMessageUploadVideoAction = 0x92042ff7, + mtpc_sendMessageRecordAudioAction = 0xd52f73f7, + mtpc_sendMessageUploadAudioAction = 0xe6ac8a6f, + mtpc_sendMessageUploadPhotoAction = 0x990a3c1a, + mtpc_sendMessageUploadDocumentAction = 0x8faee98e, + mtpc_sendMessageGeoLocationAction = 0x176f8ba1, + mtpc_sendMessageChooseContactAction = 0x628cbc6f, + mtpc_contactFound = 0xea879f95, + mtpc_contacts_found = 0x566000e, + mtpc_updateServiceNotification = 0x382dd3e4, mtpc_invokeAfterMsg = 0xcb9f372d, mtpc_invokeAfterMsgs = 0x3dc4b4f0, mtpc_auth_checkPhone = 0x6fe51dfb, @@ -345,6 +341,7 @@ enum { mtpc_auth_sendInvites = 0x771c1d97, mtpc_auth_exportAuthorization = 0xe5bfffcd, mtpc_auth_importAuthorization = 0xe3ef9613, + mtpc_auth_bindTempAuthKey = 0xcdd42a05, mtpc_account_registerDevice = 0x446c712c, mtpc_account_unregisterDevice = 0x65c55b40, mtpc_account_updateNotifySettings = 0x84be5b93, @@ -358,23 +355,24 @@ enum { mtpc_contacts_getStatuses = 0xc4a353ee, mtpc_contacts_getContacts = 0x22c6aa08, mtpc_contacts_importContacts = 0xda30b32d, - mtpc_contacts_search = 0x11f812d8, mtpc_contacts_getSuggested = 0xcd773428, mtpc_contacts_deleteContact = 0x8e953744, mtpc_contacts_deleteContacts = 0x59ab389e, mtpc_contacts_block = 0x332b49fc, mtpc_contacts_unblock = 0xe54100bd, mtpc_contacts_getBlocked = 0xf57c350f, + mtpc_contacts_exportCard = 0x84e53737, + mtpc_contacts_importCard = 0x4fe196fe, mtpc_messages_getMessages = 0x4222fa74, mtpc_messages_getDialogs = 0xeccf1df6, mtpc_messages_getHistory = 0x92a1df2f, mtpc_messages_search = 0x7e9f2ab, - mtpc_messages_readHistory = 0xb04f2510, + mtpc_messages_readHistory = 0xeed884c6, mtpc_messages_deleteHistory = 0xf4f8fb61, mtpc_messages_deleteMessages = 0x14f2dd0a, mtpc_messages_restoreMessages = 0x395f9d7e, mtpc_messages_receivedMessages = 0x28abcb68, - mtpc_messages_setTyping = 0x719839e9, + mtpc_messages_setTyping = 0xa3825e50, mtpc_messages_sendMessage = 0x4cde0aab, mtpc_messages_sendMedia = 0xa3c85d76, mtpc_messages_forwardMessages = 0x514cd10f, @@ -423,7 +421,12 @@ enum { mtpc_messages_receivedQueue = 0x55a5bb66, mtpc_upload_saveBigFilePart = 0xde7b673d, mtpc_initConnection = 0x69796de9, - mtpc_help_getSupport = 0x9cdf08cd + mtpc_help_getSupport = 0x9cdf08cd, + mtpc_auth_sendSms = 0xda9f3e8, + mtpc_messages_readMessageContents = 0x354b5bc2, + mtpc_account_checkUsername = 0x2714d86c, + mtpc_account_updateUsername = 0x3e0bdd7c, + mtpc_contacts_search = 0x11f812d8 }; // Type forward declarations @@ -643,6 +646,7 @@ class MTPDauth_checkedPhone; class MTPauth_sentCode; class MTPDauth_sentCode; +class MTPDauth_sentAppCode; class MTPauth_authorization; class MTPDauth_authorization; @@ -680,9 +684,6 @@ class MTPDimportedContact; class MTPcontactBlocked; class MTPDcontactBlocked; -class MTPcontactFound; -class MTPDcontactFound; - class MTPcontactSuggested; class MTPDcontactSuggested; @@ -711,9 +712,6 @@ class MTPcontacts_blocked; class MTPDcontacts_blocked; class MTPDcontacts_blockedSlice; -class MTPcontacts_found; -class MTPDcontacts_found; - class MTPcontacts_suggested; class MTPDcontacts_suggested; @@ -780,6 +778,7 @@ class MTPDupdateChatParticipantDelete; class MTPDupdateDcOptions; class MTPDupdateUserBlocked; class MTPDupdateNotifySettings; +class MTPDupdateServiceNotification; class MTPupdates_state; class MTPDupdates_state; @@ -861,28 +860,6 @@ class MTPencryptedMessage; class MTPDencryptedMessage; class MTPDencryptedMessageService; -class MTPdecryptedMessageLayer; -class MTPDdecryptedMessageLayer; - -class MTPdecryptedMessage; -class MTPDdecryptedMessage; -class MTPDdecryptedMessageService; - -class MTPdecryptedMessageMedia; -class MTPDdecryptedMessageMediaPhoto; -class MTPDdecryptedMessageMediaVideo; -class MTPDdecryptedMessageMediaGeoPoint; -class MTPDdecryptedMessageMediaContact; -class MTPDdecryptedMessageMediaDocument; -class MTPDdecryptedMessageMediaAudio; - -class MTPdecryptedMessageAction; -class MTPDdecryptedMessageActionSetMessageTTL; -class MTPDdecryptedMessageActionReadMessages; -class MTPDdecryptedMessageActionDeleteMessages; -class MTPDdecryptedMessageActionScreenshotMessages; -class MTPDdecryptedMessageActionNotifyLayer; - class MTPmessages_dhConfig; class MTPDmessages_dhConfigNotModified; class MTPDmessages_dhConfig; @@ -911,6 +888,14 @@ class MTPDhelp_support; class MTPnotifyPeer; class MTPDnotifyPeer; +class MTPsendMessageAction; + +class MTPcontactFound; +class MTPDcontactFound; + +class MTPcontacts_found; +class MTPDcontacts_found; + // Boxed types definitions typedef MTPBoxed<MTPresPQ> MTPResPQ; @@ -979,7 +964,6 @@ typedef MTPBoxed<MTPuserFull> MTPUserFull; typedef MTPBoxed<MTPcontact> MTPContact; typedef MTPBoxed<MTPimportedContact> MTPImportedContact; typedef MTPBoxed<MTPcontactBlocked> MTPContactBlocked; -typedef MTPBoxed<MTPcontactFound> MTPContactFound; typedef MTPBoxed<MTPcontactSuggested> MTPContactSuggested; typedef MTPBoxed<MTPcontactStatus> MTPContactStatus; typedef MTPBoxed<MTPchatLocated> MTPChatLocated; @@ -989,7 +973,6 @@ typedef MTPBoxed<MTPcontacts_link> MTPcontacts_Link; typedef MTPBoxed<MTPcontacts_contacts> MTPcontacts_Contacts; typedef MTPBoxed<MTPcontacts_importedContacts> MTPcontacts_ImportedContacts; typedef MTPBoxed<MTPcontacts_blocked> MTPcontacts_Blocked; -typedef MTPBoxed<MTPcontacts_found> MTPcontacts_Found; typedef MTPBoxed<MTPcontacts_suggested> MTPcontacts_Suggested; typedef MTPBoxed<MTPmessages_dialogs> MTPmessages_Dialogs; typedef MTPBoxed<MTPmessages_messages> MTPmessages_Messages; @@ -1024,10 +1007,6 @@ typedef MTPBoxed<MTPinputEncryptedChat> MTPInputEncryptedChat; typedef MTPBoxed<MTPencryptedFile> MTPEncryptedFile; typedef MTPBoxed<MTPinputEncryptedFile> MTPInputEncryptedFile; typedef MTPBoxed<MTPencryptedMessage> MTPEncryptedMessage; -typedef MTPBoxed<MTPdecryptedMessageLayer> MTPDecryptedMessageLayer; -typedef MTPBoxed<MTPdecryptedMessage> MTPDecryptedMessage; -typedef MTPBoxed<MTPdecryptedMessageMedia> MTPDecryptedMessageMedia; -typedef MTPBoxed<MTPdecryptedMessageAction> MTPDecryptedMessageAction; typedef MTPBoxed<MTPmessages_dhConfig> MTPmessages_DhConfig; typedef MTPBoxed<MTPmessages_sentEncryptedMessage> MTPmessages_SentEncryptedMessage; typedef MTPBoxed<MTPinputAudio> MTPInputAudio; @@ -1036,6 +1015,9 @@ typedef MTPBoxed<MTPaudio> MTPAudio; typedef MTPBoxed<MTPdocument> MTPDocument; typedef MTPBoxed<MTPhelp_support> MTPhelp_Support; typedef MTPBoxed<MTPnotifyPeer> MTPNotifyPeer; +typedef MTPBoxed<MTPsendMessageAction> MTPSendMessageAction; +typedef MTPBoxed<MTPcontactFound> MTPContactFound; +typedef MTPBoxed<MTPcontacts_found> MTPcontacts_Found; // Type classes definitions @@ -2766,11 +2748,11 @@ private: explicit MTPuser(MTPDuserDeleted *_data); friend MTPuser MTP_userEmpty(MTPint _id); - friend MTPuser MTP_userSelf(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPstring &_phone, const MTPUserProfilePhoto &_photo, const MTPUserStatus &_status, MTPBool _inactive); - friend MTPuser MTP_userContact(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPlong &_access_hash, const MTPstring &_phone, const MTPUserProfilePhoto &_photo, const MTPUserStatus &_status); - friend MTPuser MTP_userRequest(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPlong &_access_hash, const MTPstring &_phone, const MTPUserProfilePhoto &_photo, const MTPUserStatus &_status); - friend MTPuser MTP_userForeign(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPlong &_access_hash, const MTPUserProfilePhoto &_photo, const MTPUserStatus &_status); - friend MTPuser MTP_userDeleted(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name); + friend MTPuser MTP_userSelf(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPstring &_username, const MTPstring &_phone, const MTPUserProfilePhoto &_photo, const MTPUserStatus &_status, MTPBool _inactive); + friend MTPuser MTP_userContact(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPstring &_username, const MTPlong &_access_hash, const MTPstring &_phone, const MTPUserProfilePhoto &_photo, const MTPUserStatus &_status); + friend MTPuser MTP_userRequest(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPstring &_username, const MTPlong &_access_hash, const MTPstring &_phone, const MTPUserProfilePhoto &_photo, const MTPUserStatus &_status); + friend MTPuser MTP_userForeign(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPstring &_username, const MTPlong &_access_hash, const MTPUserProfilePhoto &_photo, const MTPUserStatus &_status); + friend MTPuser MTP_userDeleted(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPstring &_username); mtpTypeId _type; }; @@ -3167,9 +3149,9 @@ private: explicit MTPmessage(MTPDmessageService *_data); friend MTPmessage MTP_messageEmpty(MTPint _id); - friend MTPmessage MTP_message(MTPint _id, MTPint _from_id, const MTPPeer &_to_id, MTPBool _out, MTPBool _unread, MTPint _date, const MTPstring &_message, const MTPMessageMedia &_media); - friend MTPmessage MTP_messageForwarded(MTPint _id, MTPint _fwd_from_id, MTPint _fwd_date, MTPint _from_id, const MTPPeer &_to_id, MTPBool _out, MTPBool _unread, MTPint _date, const MTPstring &_message, const MTPMessageMedia &_media); - friend MTPmessage MTP_messageService(MTPint _id, MTPint _from_id, const MTPPeer &_to_id, MTPBool _out, MTPBool _unread, MTPint _date, const MTPMessageAction &_action); + friend MTPmessage MTP_message(MTPint _flags, MTPint _id, MTPint _from_id, const MTPPeer &_to_id, MTPint _date, const MTPstring &_message, const MTPMessageMedia &_media); + friend MTPmessage MTP_messageForwarded(MTPint _flags, MTPint _id, MTPint _fwd_from_id, MTPint _fwd_date, MTPint _from_id, const MTPPeer &_to_id, MTPint _date, const MTPstring &_message, const MTPMessageMedia &_media); + friend MTPmessage MTP_messageService(MTPint _flags, MTPint _id, MTPint _from_id, const MTPPeer &_to_id, MTPint _date, const MTPMessageAction &_action); mtpTypeId _type; }; @@ -3676,32 +3658,52 @@ typedef MTPBoxed<MTPauth_checkedPhone> MTPauth_CheckedPhone; class MTPauth_sentCode : private mtpDataOwner { public: - MTPauth_sentCode(); - MTPauth_sentCode(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_auth_sentCode) : mtpDataOwner(0) { + MTPauth_sentCode() : mtpDataOwner(0), _type(0) { + } + MTPauth_sentCode(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons) : mtpDataOwner(0), _type(0) { read(from, end, cons); } MTPDauth_sentCode &_auth_sentCode() { if (!data) throw mtpErrorUninitialized(); + if (_type != mtpc_auth_sentCode) throw mtpErrorWrongTypeId(_type, mtpc_auth_sentCode); split(); return *(MTPDauth_sentCode*)data; } const MTPDauth_sentCode &c_auth_sentCode() const { if (!data) throw mtpErrorUninitialized(); + if (_type != mtpc_auth_sentCode) throw mtpErrorWrongTypeId(_type, mtpc_auth_sentCode); return *(const MTPDauth_sentCode*)data; } + MTPDauth_sentAppCode &_auth_sentAppCode() { + if (!data) throw mtpErrorUninitialized(); + if (_type != mtpc_auth_sentAppCode) throw mtpErrorWrongTypeId(_type, mtpc_auth_sentAppCode); + split(); + return *(MTPDauth_sentAppCode*)data; + } + const MTPDauth_sentAppCode &c_auth_sentAppCode() const { + if (!data) throw mtpErrorUninitialized(); + if (_type != mtpc_auth_sentAppCode) throw mtpErrorWrongTypeId(_type, mtpc_auth_sentAppCode); + return *(const MTPDauth_sentAppCode*)data; + } + uint32 size() const; mtpTypeId type() const; - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_auth_sentCode); + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons); void write(mtpBuffer &to) const; typedef void ResponseType; private: + explicit MTPauth_sentCode(mtpTypeId type); explicit MTPauth_sentCode(MTPDauth_sentCode *_data); + explicit MTPauth_sentCode(MTPDauth_sentAppCode *_data); friend MTPauth_sentCode MTP_auth_sentCode(MTPBool _phone_registered, const MTPstring &_phone_code_hash, MTPint _send_call_timeout, MTPBool _is_password); + friend MTPauth_sentCode MTP_auth_sentAppCode(MTPBool _phone_registered, const MTPstring &_phone_code_hash, MTPint _send_call_timeout, MTPBool _is_password); + + mtpTypeId _type; }; typedef MTPBoxed<MTPauth_sentCode> MTPauth_SentCode; @@ -4115,37 +4117,6 @@ private: }; typedef MTPBoxed<MTPcontactBlocked> MTPContactBlocked; -class MTPcontactFound : private mtpDataOwner { -public: - MTPcontactFound(); - MTPcontactFound(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contactFound) : mtpDataOwner(0) { - read(from, end, cons); - } - - MTPDcontactFound &_contactFound() { - if (!data) throw mtpErrorUninitialized(); - split(); - return *(MTPDcontactFound*)data; - } - const MTPDcontactFound &c_contactFound() const { - if (!data) throw mtpErrorUninitialized(); - return *(const MTPDcontactFound*)data; - } - - uint32 size() const; - mtpTypeId type() const; - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contactFound); - void write(mtpBuffer &to) const; - - typedef void ResponseType; - -private: - explicit MTPcontactFound(MTPDcontactFound *_data); - - friend MTPcontactFound MTP_contactFound(MTPint _user_id); -}; -typedef MTPBoxed<MTPcontactFound> MTPContactFound; - class MTPcontactSuggested : private mtpDataOwner { public: MTPcontactSuggested(); @@ -4468,37 +4439,6 @@ private: }; typedef MTPBoxed<MTPcontacts_blocked> MTPcontacts_Blocked; -class MTPcontacts_found : private mtpDataOwner { -public: - MTPcontacts_found(); - MTPcontacts_found(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contacts_found) : mtpDataOwner(0) { - read(from, end, cons); - } - - MTPDcontacts_found &_contacts_found() { - if (!data) throw mtpErrorUninitialized(); - split(); - return *(MTPDcontacts_found*)data; - } - const MTPDcontacts_found &c_contacts_found() const { - if (!data) throw mtpErrorUninitialized(); - return *(const MTPDcontacts_found*)data; - } - - uint32 size() const; - mtpTypeId type() const; - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contacts_found); - void write(mtpBuffer &to) const; - - typedef void ResponseType; - -private: - explicit MTPcontacts_found(MTPDcontacts_found *_data); - - friend MTPcontacts_found MTP_contacts_found(const MTPVector<MTPContactFound> &_results, const MTPVector<MTPUser> &_users); -}; -typedef MTPBoxed<MTPcontacts_found> MTPcontacts_Found; - class MTPcontacts_suggested : private mtpDataOwner { public: MTPcontacts_suggested(); @@ -5284,6 +5224,18 @@ public: return *(const MTPDupdateNotifySettings*)data; } + MTPDupdateServiceNotification &_updateServiceNotification() { + if (!data) throw mtpErrorUninitialized(); + if (_type != mtpc_updateServiceNotification) throw mtpErrorWrongTypeId(_type, mtpc_updateServiceNotification); + split(); + return *(MTPDupdateServiceNotification*)data; + } + const MTPDupdateServiceNotification &c_updateServiceNotification() const { + if (!data) throw mtpErrorUninitialized(); + if (_type != mtpc_updateServiceNotification) throw mtpErrorWrongTypeId(_type, mtpc_updateServiceNotification); + return *(const MTPDupdateServiceNotification*)data; + } + uint32 size() const; mtpTypeId type() const; void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons); @@ -5318,17 +5270,18 @@ private: explicit MTPupdate(MTPDupdateDcOptions *_data); explicit MTPupdate(MTPDupdateUserBlocked *_data); explicit MTPupdate(MTPDupdateNotifySettings *_data); + explicit MTPupdate(MTPDupdateServiceNotification *_data); friend MTPupdate MTP_updateNewMessage(const MTPMessage &_message, MTPint _pts); friend MTPupdate MTP_updateMessageID(MTPint _id, const MTPlong &_random_id); friend MTPupdate MTP_updateReadMessages(const MTPVector<MTPint> &_messages, MTPint _pts); friend MTPupdate MTP_updateDeleteMessages(const MTPVector<MTPint> &_messages, MTPint _pts); friend MTPupdate MTP_updateRestoreMessages(const MTPVector<MTPint> &_messages, MTPint _pts); - friend MTPupdate MTP_updateUserTyping(MTPint _user_id); - friend MTPupdate MTP_updateChatUserTyping(MTPint _chat_id, MTPint _user_id); + friend MTPupdate MTP_updateUserTyping(MTPint _user_id, const MTPSendMessageAction &_action); + friend MTPupdate MTP_updateChatUserTyping(MTPint _chat_id, MTPint _user_id, const MTPSendMessageAction &_action); friend MTPupdate MTP_updateChatParticipants(const MTPChatParticipants &_participants); friend MTPupdate MTP_updateUserStatus(MTPint _user_id, const MTPUserStatus &_status); - friend MTPupdate MTP_updateUserName(MTPint _user_id, const MTPstring &_first_name, const MTPstring &_last_name); + friend MTPupdate MTP_updateUserName(MTPint _user_id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPstring &_username); friend MTPupdate MTP_updateUserPhoto(MTPint _user_id, MTPint _date, const MTPUserProfilePhoto &_photo, MTPBool _previous); friend MTPupdate MTP_updateContactRegistered(MTPint _user_id, MTPint _date); friend MTPupdate MTP_updateContactLink(MTPint _user_id, const MTPcontacts_MyLink &_my_link, const MTPcontacts_ForeignLink &_foreign_link); @@ -5344,6 +5297,7 @@ private: friend MTPupdate MTP_updateDcOptions(const MTPVector<MTPDcOption> &_dc_options); friend MTPupdate MTP_updateUserBlocked(MTPint _user_id, MTPBool _blocked); friend MTPupdate MTP_updateNotifySettings(const MTPNotifyPeer &_peer, const MTPPeerNotifySettings &_notify_settings); + friend MTPupdate MTP_updateServiceNotification(const MTPstring &_type, const MTPstring &_message, const MTPMessageMedia &_media, MTPBool _popup); mtpTypeId _type; }; @@ -6302,290 +6256,6 @@ private: }; typedef MTPBoxed<MTPencryptedMessage> MTPEncryptedMessage; -class MTPdecryptedMessageLayer : private mtpDataOwner { -public: - MTPdecryptedMessageLayer(); - MTPdecryptedMessageLayer(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_decryptedMessageLayer) : mtpDataOwner(0) { - read(from, end, cons); - } - - MTPDdecryptedMessageLayer &_decryptedMessageLayer() { - if (!data) throw mtpErrorUninitialized(); - split(); - return *(MTPDdecryptedMessageLayer*)data; - } - const MTPDdecryptedMessageLayer &c_decryptedMessageLayer() const { - if (!data) throw mtpErrorUninitialized(); - return *(const MTPDdecryptedMessageLayer*)data; - } - - uint32 size() const; - mtpTypeId type() const; - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_decryptedMessageLayer); - void write(mtpBuffer &to) const; - - typedef void ResponseType; - -private: - explicit MTPdecryptedMessageLayer(MTPDdecryptedMessageLayer *_data); - - friend MTPdecryptedMessageLayer MTP_decryptedMessageLayer(MTPint _layer, const MTPDecryptedMessage &_message); -}; -typedef MTPBoxed<MTPdecryptedMessageLayer> MTPDecryptedMessageLayer; - -class MTPdecryptedMessage : private mtpDataOwner { -public: - MTPdecryptedMessage() : mtpDataOwner(0), _type(0) { - } - MTPdecryptedMessage(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons) : mtpDataOwner(0), _type(0) { - read(from, end, cons); - } - - MTPDdecryptedMessage &_decryptedMessage() { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessage) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessage); - split(); - return *(MTPDdecryptedMessage*)data; - } - const MTPDdecryptedMessage &c_decryptedMessage() const { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessage) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessage); - return *(const MTPDdecryptedMessage*)data; - } - - MTPDdecryptedMessageService &_decryptedMessageService() { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessageService) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessageService); - split(); - return *(MTPDdecryptedMessageService*)data; - } - const MTPDdecryptedMessageService &c_decryptedMessageService() const { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessageService) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessageService); - return *(const MTPDdecryptedMessageService*)data; - } - - uint32 size() const; - mtpTypeId type() const; - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons); - void write(mtpBuffer &to) const; - - typedef void ResponseType; - -private: - explicit MTPdecryptedMessage(mtpTypeId type); - explicit MTPdecryptedMessage(MTPDdecryptedMessage *_data); - explicit MTPdecryptedMessage(MTPDdecryptedMessageService *_data); - - friend MTPdecryptedMessage MTP_decryptedMessage(const MTPlong &_random_id, const MTPbytes &_random_bytes, const MTPstring &_message, const MTPDecryptedMessageMedia &_media); - friend MTPdecryptedMessage MTP_decryptedMessageService(const MTPlong &_random_id, const MTPbytes &_random_bytes, const MTPDecryptedMessageAction &_action); - - mtpTypeId _type; -}; -typedef MTPBoxed<MTPdecryptedMessage> MTPDecryptedMessage; - -class MTPdecryptedMessageMedia : private mtpDataOwner { -public: - MTPdecryptedMessageMedia() : mtpDataOwner(0), _type(0) { - } - MTPdecryptedMessageMedia(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons) : mtpDataOwner(0), _type(0) { - read(from, end, cons); - } - - MTPDdecryptedMessageMediaPhoto &_decryptedMessageMediaPhoto() { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessageMediaPhoto) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessageMediaPhoto); - split(); - return *(MTPDdecryptedMessageMediaPhoto*)data; - } - const MTPDdecryptedMessageMediaPhoto &c_decryptedMessageMediaPhoto() const { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessageMediaPhoto) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessageMediaPhoto); - return *(const MTPDdecryptedMessageMediaPhoto*)data; - } - - MTPDdecryptedMessageMediaVideo &_decryptedMessageMediaVideo() { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessageMediaVideo) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessageMediaVideo); - split(); - return *(MTPDdecryptedMessageMediaVideo*)data; - } - const MTPDdecryptedMessageMediaVideo &c_decryptedMessageMediaVideo() const { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessageMediaVideo) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessageMediaVideo); - return *(const MTPDdecryptedMessageMediaVideo*)data; - } - - MTPDdecryptedMessageMediaGeoPoint &_decryptedMessageMediaGeoPoint() { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessageMediaGeoPoint) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessageMediaGeoPoint); - split(); - return *(MTPDdecryptedMessageMediaGeoPoint*)data; - } - const MTPDdecryptedMessageMediaGeoPoint &c_decryptedMessageMediaGeoPoint() const { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessageMediaGeoPoint) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessageMediaGeoPoint); - return *(const MTPDdecryptedMessageMediaGeoPoint*)data; - } - - MTPDdecryptedMessageMediaContact &_decryptedMessageMediaContact() { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessageMediaContact) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessageMediaContact); - split(); - return *(MTPDdecryptedMessageMediaContact*)data; - } - const MTPDdecryptedMessageMediaContact &c_decryptedMessageMediaContact() const { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessageMediaContact) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessageMediaContact); - return *(const MTPDdecryptedMessageMediaContact*)data; - } - - MTPDdecryptedMessageMediaDocument &_decryptedMessageMediaDocument() { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessageMediaDocument) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessageMediaDocument); - split(); - return *(MTPDdecryptedMessageMediaDocument*)data; - } - const MTPDdecryptedMessageMediaDocument &c_decryptedMessageMediaDocument() const { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessageMediaDocument) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessageMediaDocument); - return *(const MTPDdecryptedMessageMediaDocument*)data; - } - - MTPDdecryptedMessageMediaAudio &_decryptedMessageMediaAudio() { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessageMediaAudio) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessageMediaAudio); - split(); - return *(MTPDdecryptedMessageMediaAudio*)data; - } - const MTPDdecryptedMessageMediaAudio &c_decryptedMessageMediaAudio() const { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessageMediaAudio) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessageMediaAudio); - return *(const MTPDdecryptedMessageMediaAudio*)data; - } - - uint32 size() const; - mtpTypeId type() const; - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons); - void write(mtpBuffer &to) const; - - typedef void ResponseType; - -private: - explicit MTPdecryptedMessageMedia(mtpTypeId type); - explicit MTPdecryptedMessageMedia(MTPDdecryptedMessageMediaPhoto *_data); - explicit MTPdecryptedMessageMedia(MTPDdecryptedMessageMediaVideo *_data); - explicit MTPdecryptedMessageMedia(MTPDdecryptedMessageMediaGeoPoint *_data); - explicit MTPdecryptedMessageMedia(MTPDdecryptedMessageMediaContact *_data); - explicit MTPdecryptedMessageMedia(MTPDdecryptedMessageMediaDocument *_data); - explicit MTPdecryptedMessageMedia(MTPDdecryptedMessageMediaAudio *_data); - - friend MTPdecryptedMessageMedia MTP_decryptedMessageMediaEmpty(); - friend MTPdecryptedMessageMedia MTP_decryptedMessageMediaPhoto(const MTPbytes &_thumb, MTPint _thumb_w, MTPint _thumb_h, MTPint _w, MTPint _h, MTPint _size, const MTPbytes &_key, const MTPbytes &_iv); - friend MTPdecryptedMessageMedia MTP_decryptedMessageMediaVideo(const MTPbytes &_thumb, MTPint _thumb_w, MTPint _thumb_h, MTPint _duration, const MTPstring &_mime_type, MTPint _w, MTPint _h, MTPint _size, const MTPbytes &_key, const MTPbytes &_iv); - friend MTPdecryptedMessageMedia MTP_decryptedMessageMediaGeoPoint(const MTPdouble &_lat, const MTPdouble &_long); - friend MTPdecryptedMessageMedia MTP_decryptedMessageMediaContact(const MTPstring &_phone_number, const MTPstring &_first_name, const MTPstring &_last_name, MTPint _user_id); - friend MTPdecryptedMessageMedia MTP_decryptedMessageMediaDocument(const MTPbytes &_thumb, MTPint _thumb_w, MTPint _thumb_h, const MTPstring &_file_name, const MTPstring &_mime_type, MTPint _size, const MTPbytes &_key, const MTPbytes &_iv); - friend MTPdecryptedMessageMedia MTP_decryptedMessageMediaAudio(MTPint _duration, const MTPstring &_mime_type, MTPint _size, const MTPbytes &_key, const MTPbytes &_iv); - - mtpTypeId _type; -}; -typedef MTPBoxed<MTPdecryptedMessageMedia> MTPDecryptedMessageMedia; - -class MTPdecryptedMessageAction : private mtpDataOwner { -public: - MTPdecryptedMessageAction() : mtpDataOwner(0), _type(0) { - } - MTPdecryptedMessageAction(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons) : mtpDataOwner(0), _type(0) { - read(from, end, cons); - } - - MTPDdecryptedMessageActionSetMessageTTL &_decryptedMessageActionSetMessageTTL() { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessageActionSetMessageTTL) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessageActionSetMessageTTL); - split(); - return *(MTPDdecryptedMessageActionSetMessageTTL*)data; - } - const MTPDdecryptedMessageActionSetMessageTTL &c_decryptedMessageActionSetMessageTTL() const { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessageActionSetMessageTTL) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessageActionSetMessageTTL); - return *(const MTPDdecryptedMessageActionSetMessageTTL*)data; - } - - MTPDdecryptedMessageActionReadMessages &_decryptedMessageActionReadMessages() { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessageActionReadMessages) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessageActionReadMessages); - split(); - return *(MTPDdecryptedMessageActionReadMessages*)data; - } - const MTPDdecryptedMessageActionReadMessages &c_decryptedMessageActionReadMessages() const { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessageActionReadMessages) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessageActionReadMessages); - return *(const MTPDdecryptedMessageActionReadMessages*)data; - } - - MTPDdecryptedMessageActionDeleteMessages &_decryptedMessageActionDeleteMessages() { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessageActionDeleteMessages) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessageActionDeleteMessages); - split(); - return *(MTPDdecryptedMessageActionDeleteMessages*)data; - } - const MTPDdecryptedMessageActionDeleteMessages &c_decryptedMessageActionDeleteMessages() const { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessageActionDeleteMessages) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessageActionDeleteMessages); - return *(const MTPDdecryptedMessageActionDeleteMessages*)data; - } - - MTPDdecryptedMessageActionScreenshotMessages &_decryptedMessageActionScreenshotMessages() { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessageActionScreenshotMessages) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessageActionScreenshotMessages); - split(); - return *(MTPDdecryptedMessageActionScreenshotMessages*)data; - } - const MTPDdecryptedMessageActionScreenshotMessages &c_decryptedMessageActionScreenshotMessages() const { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessageActionScreenshotMessages) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessageActionScreenshotMessages); - return *(const MTPDdecryptedMessageActionScreenshotMessages*)data; - } - - MTPDdecryptedMessageActionNotifyLayer &_decryptedMessageActionNotifyLayer() { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessageActionNotifyLayer) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessageActionNotifyLayer); - split(); - return *(MTPDdecryptedMessageActionNotifyLayer*)data; - } - const MTPDdecryptedMessageActionNotifyLayer &c_decryptedMessageActionNotifyLayer() const { - if (!data) throw mtpErrorUninitialized(); - if (_type != mtpc_decryptedMessageActionNotifyLayer) throw mtpErrorWrongTypeId(_type, mtpc_decryptedMessageActionNotifyLayer); - return *(const MTPDdecryptedMessageActionNotifyLayer*)data; - } - - uint32 size() const; - mtpTypeId type() const; - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons); - void write(mtpBuffer &to) const; - - typedef void ResponseType; - -private: - explicit MTPdecryptedMessageAction(mtpTypeId type); - explicit MTPdecryptedMessageAction(MTPDdecryptedMessageActionSetMessageTTL *_data); - explicit MTPdecryptedMessageAction(MTPDdecryptedMessageActionReadMessages *_data); - explicit MTPdecryptedMessageAction(MTPDdecryptedMessageActionDeleteMessages *_data); - explicit MTPdecryptedMessageAction(MTPDdecryptedMessageActionScreenshotMessages *_data); - explicit MTPdecryptedMessageAction(MTPDdecryptedMessageActionNotifyLayer *_data); - - friend MTPdecryptedMessageAction MTP_decryptedMessageActionSetMessageTTL(MTPint _ttl_seconds); - friend MTPdecryptedMessageAction MTP_decryptedMessageActionReadMessages(const MTPVector<MTPlong> &_random_ids); - friend MTPdecryptedMessageAction MTP_decryptedMessageActionDeleteMessages(const MTPVector<MTPlong> &_random_ids); - friend MTPdecryptedMessageAction MTP_decryptedMessageActionScreenshotMessages(const MTPVector<MTPlong> &_random_ids); - friend MTPdecryptedMessageAction MTP_decryptedMessageActionFlushHistory(); - friend MTPdecryptedMessageAction MTP_decryptedMessageActionNotifyLayer(MTPint _layer); - - mtpTypeId _type; -}; -typedef MTPBoxed<MTPdecryptedMessageAction> MTPDecryptedMessageAction; - class MTPmessages_dhConfig : private mtpDataOwner { public: MTPmessages_dhConfig() : mtpDataOwner(0), _type(0) { @@ -6937,6 +6607,101 @@ private: }; typedef MTPBoxed<MTPnotifyPeer> MTPNotifyPeer; +class MTPsendMessageAction { +public: + MTPsendMessageAction() : _type(0) { + } + MTPsendMessageAction(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons) : _type(0) { + read(from, end, cons); + } + + uint32 size() const; + mtpTypeId type() const; + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons); + void write(mtpBuffer &to) const; + + typedef void ResponseType; + +private: + explicit MTPsendMessageAction(mtpTypeId type); + + friend MTPsendMessageAction MTP_sendMessageTypingAction(); + friend MTPsendMessageAction MTP_sendMessageCancelAction(); + friend MTPsendMessageAction MTP_sendMessageRecordVideoAction(); + friend MTPsendMessageAction MTP_sendMessageUploadVideoAction(); + friend MTPsendMessageAction MTP_sendMessageRecordAudioAction(); + friend MTPsendMessageAction MTP_sendMessageUploadAudioAction(); + friend MTPsendMessageAction MTP_sendMessageUploadPhotoAction(); + friend MTPsendMessageAction MTP_sendMessageUploadDocumentAction(); + friend MTPsendMessageAction MTP_sendMessageGeoLocationAction(); + friend MTPsendMessageAction MTP_sendMessageChooseContactAction(); + + mtpTypeId _type; +}; +typedef MTPBoxed<MTPsendMessageAction> MTPSendMessageAction; + +class MTPcontactFound : private mtpDataOwner { +public: + MTPcontactFound(); + MTPcontactFound(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contactFound) : mtpDataOwner(0) { + read(from, end, cons); + } + + MTPDcontactFound &_contactFound() { + if (!data) throw mtpErrorUninitialized(); + split(); + return *(MTPDcontactFound*)data; + } + const MTPDcontactFound &c_contactFound() const { + if (!data) throw mtpErrorUninitialized(); + return *(const MTPDcontactFound*)data; + } + + uint32 size() const; + mtpTypeId type() const; + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contactFound); + void write(mtpBuffer &to) const; + + typedef void ResponseType; + +private: + explicit MTPcontactFound(MTPDcontactFound *_data); + + friend MTPcontactFound MTP_contactFound(MTPint _user_id); +}; +typedef MTPBoxed<MTPcontactFound> MTPContactFound; + +class MTPcontacts_found : private mtpDataOwner { +public: + MTPcontacts_found(); + MTPcontacts_found(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contacts_found) : mtpDataOwner(0) { + read(from, end, cons); + } + + MTPDcontacts_found &_contacts_found() { + if (!data) throw mtpErrorUninitialized(); + split(); + return *(MTPDcontacts_found*)data; + } + const MTPDcontacts_found &c_contacts_found() const { + if (!data) throw mtpErrorUninitialized(); + return *(const MTPDcontacts_found*)data; + } + + uint32 size() const; + mtpTypeId type() const; + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contacts_found); + void write(mtpBuffer &to) const; + + typedef void ResponseType; + +private: + explicit MTPcontacts_found(MTPDcontacts_found *_data); + + friend MTPcontacts_found MTP_contacts_found(const MTPVector<MTPContactFound> &_results, const MTPVector<MTPUser> &_users); +}; +typedef MTPBoxed<MTPcontacts_found> MTPcontacts_Found; + // Type constructors with data class MTPDresPQ : public mtpDataImpl<MTPDresPQ> { @@ -7682,12 +7447,13 @@ class MTPDuserSelf : public mtpDataImpl<MTPDuserSelf> { public: MTPDuserSelf() { } - MTPDuserSelf(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPstring &_phone, const MTPUserProfilePhoto &_photo, const MTPUserStatus &_status, MTPBool _inactive) : vid(_id), vfirst_name(_first_name), vlast_name(_last_name), vphone(_phone), vphoto(_photo), vstatus(_status), vinactive(_inactive) { + MTPDuserSelf(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPstring &_username, const MTPstring &_phone, const MTPUserProfilePhoto &_photo, const MTPUserStatus &_status, MTPBool _inactive) : vid(_id), vfirst_name(_first_name), vlast_name(_last_name), vusername(_username), vphone(_phone), vphoto(_photo), vstatus(_status), vinactive(_inactive) { } MTPint vid; MTPstring vfirst_name; MTPstring vlast_name; + MTPstring vusername; MTPstring vphone; MTPUserProfilePhoto vphoto; MTPUserStatus vstatus; @@ -7698,12 +7464,13 @@ class MTPDuserContact : public mtpDataImpl<MTPDuserContact> { public: MTPDuserContact() { } - MTPDuserContact(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPlong &_access_hash, const MTPstring &_phone, const MTPUserProfilePhoto &_photo, const MTPUserStatus &_status) : vid(_id), vfirst_name(_first_name), vlast_name(_last_name), vaccess_hash(_access_hash), vphone(_phone), vphoto(_photo), vstatus(_status) { + MTPDuserContact(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPstring &_username, const MTPlong &_access_hash, const MTPstring &_phone, const MTPUserProfilePhoto &_photo, const MTPUserStatus &_status) : vid(_id), vfirst_name(_first_name), vlast_name(_last_name), vusername(_username), vaccess_hash(_access_hash), vphone(_phone), vphoto(_photo), vstatus(_status) { } MTPint vid; MTPstring vfirst_name; MTPstring vlast_name; + MTPstring vusername; MTPlong vaccess_hash; MTPstring vphone; MTPUserProfilePhoto vphoto; @@ -7714,12 +7481,13 @@ class MTPDuserRequest : public mtpDataImpl<MTPDuserRequest> { public: MTPDuserRequest() { } - MTPDuserRequest(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPlong &_access_hash, const MTPstring &_phone, const MTPUserProfilePhoto &_photo, const MTPUserStatus &_status) : vid(_id), vfirst_name(_first_name), vlast_name(_last_name), vaccess_hash(_access_hash), vphone(_phone), vphoto(_photo), vstatus(_status) { + MTPDuserRequest(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPstring &_username, const MTPlong &_access_hash, const MTPstring &_phone, const MTPUserProfilePhoto &_photo, const MTPUserStatus &_status) : vid(_id), vfirst_name(_first_name), vlast_name(_last_name), vusername(_username), vaccess_hash(_access_hash), vphone(_phone), vphoto(_photo), vstatus(_status) { } MTPint vid; MTPstring vfirst_name; MTPstring vlast_name; + MTPstring vusername; MTPlong vaccess_hash; MTPstring vphone; MTPUserProfilePhoto vphoto; @@ -7730,12 +7498,13 @@ class MTPDuserForeign : public mtpDataImpl<MTPDuserForeign> { public: MTPDuserForeign() { } - MTPDuserForeign(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPlong &_access_hash, const MTPUserProfilePhoto &_photo, const MTPUserStatus &_status) : vid(_id), vfirst_name(_first_name), vlast_name(_last_name), vaccess_hash(_access_hash), vphoto(_photo), vstatus(_status) { + MTPDuserForeign(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPstring &_username, const MTPlong &_access_hash, const MTPUserProfilePhoto &_photo, const MTPUserStatus &_status) : vid(_id), vfirst_name(_first_name), vlast_name(_last_name), vusername(_username), vaccess_hash(_access_hash), vphoto(_photo), vstatus(_status) { } MTPint vid; MTPstring vfirst_name; MTPstring vlast_name; + MTPstring vusername; MTPlong vaccess_hash; MTPUserProfilePhoto vphoto; MTPUserStatus vstatus; @@ -7745,12 +7514,13 @@ class MTPDuserDeleted : public mtpDataImpl<MTPDuserDeleted> { public: MTPDuserDeleted() { } - MTPDuserDeleted(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name) : vid(_id), vfirst_name(_first_name), vlast_name(_last_name) { + MTPDuserDeleted(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPstring &_username) : vid(_id), vfirst_name(_first_name), vlast_name(_last_name), vusername(_username) { } MTPint vid; MTPstring vfirst_name; MTPstring vlast_name; + MTPstring vusername; }; class MTPDuserProfilePhoto : public mtpDataImpl<MTPDuserProfilePhoto> { @@ -7916,14 +7686,13 @@ class MTPDmessage : public mtpDataImpl<MTPDmessage> { public: MTPDmessage() { } - MTPDmessage(MTPint _id, MTPint _from_id, const MTPPeer &_to_id, MTPBool _out, MTPBool _unread, MTPint _date, const MTPstring &_message, const MTPMessageMedia &_media) : vid(_id), vfrom_id(_from_id), vto_id(_to_id), vout(_out), vunread(_unread), vdate(_date), vmessage(_message), vmedia(_media) { + MTPDmessage(MTPint _flags, MTPint _id, MTPint _from_id, const MTPPeer &_to_id, MTPint _date, const MTPstring &_message, const MTPMessageMedia &_media) : vflags(_flags), vid(_id), vfrom_id(_from_id), vto_id(_to_id), vdate(_date), vmessage(_message), vmedia(_media) { } + MTPint vflags; MTPint vid; MTPint vfrom_id; MTPPeer vto_id; - MTPBool vout; - MTPBool vunread; MTPint vdate; MTPstring vmessage; MTPMessageMedia vmedia; @@ -7933,16 +7702,15 @@ class MTPDmessageForwarded : public mtpDataImpl<MTPDmessageForwarded> { public: MTPDmessageForwarded() { } - MTPDmessageForwarded(MTPint _id, MTPint _fwd_from_id, MTPint _fwd_date, MTPint _from_id, const MTPPeer &_to_id, MTPBool _out, MTPBool _unread, MTPint _date, const MTPstring &_message, const MTPMessageMedia &_media) : vid(_id), vfwd_from_id(_fwd_from_id), vfwd_date(_fwd_date), vfrom_id(_from_id), vto_id(_to_id), vout(_out), vunread(_unread), vdate(_date), vmessage(_message), vmedia(_media) { + MTPDmessageForwarded(MTPint _flags, MTPint _id, MTPint _fwd_from_id, MTPint _fwd_date, MTPint _from_id, const MTPPeer &_to_id, MTPint _date, const MTPstring &_message, const MTPMessageMedia &_media) : vflags(_flags), vid(_id), vfwd_from_id(_fwd_from_id), vfwd_date(_fwd_date), vfrom_id(_from_id), vto_id(_to_id), vdate(_date), vmessage(_message), vmedia(_media) { } + MTPint vflags; MTPint vid; MTPint vfwd_from_id; MTPint vfwd_date; MTPint vfrom_id; MTPPeer vto_id; - MTPBool vout; - MTPBool vunread; MTPint vdate; MTPstring vmessage; MTPMessageMedia vmedia; @@ -7952,14 +7720,13 @@ class MTPDmessageService : public mtpDataImpl<MTPDmessageService> { public: MTPDmessageService() { } - MTPDmessageService(MTPint _id, MTPint _from_id, const MTPPeer &_to_id, MTPBool _out, MTPBool _unread, MTPint _date, const MTPMessageAction &_action) : vid(_id), vfrom_id(_from_id), vto_id(_to_id), vout(_out), vunread(_unread), vdate(_date), vaction(_action) { + MTPDmessageService(MTPint _flags, MTPint _id, MTPint _from_id, const MTPPeer &_to_id, MTPint _date, const MTPMessageAction &_action) : vflags(_flags), vid(_id), vfrom_id(_from_id), vto_id(_to_id), vdate(_date), vaction(_action) { } + MTPint vflags; MTPint vid; MTPint vfrom_id; MTPPeer vto_id; - MTPBool vout; - MTPBool vunread; MTPint vdate; MTPMessageAction vaction; }; @@ -8242,6 +8009,19 @@ public: MTPBool vis_password; }; +class MTPDauth_sentAppCode : public mtpDataImpl<MTPDauth_sentAppCode> { +public: + MTPDauth_sentAppCode() { + } + MTPDauth_sentAppCode(MTPBool _phone_registered, const MTPstring &_phone_code_hash, MTPint _send_call_timeout, MTPBool _is_password) : vphone_registered(_phone_registered), vphone_code_hash(_phone_code_hash), vsend_call_timeout(_send_call_timeout), vis_password(_is_password) { + } + + MTPBool vphone_registered; + MTPstring vphone_code_hash; + MTPint vsend_call_timeout; + MTPBool vis_password; +}; + class MTPDauth_authorization : public mtpDataImpl<MTPDauth_authorization> { public: MTPDauth_authorization() { @@ -8385,16 +8165,6 @@ public: MTPint vdate; }; -class MTPDcontactFound : public mtpDataImpl<MTPDcontactFound> { -public: - MTPDcontactFound() { - } - MTPDcontactFound(MTPint _user_id) : vuser_id(_user_id) { - } - - MTPint vuser_id; -}; - class MTPDcontactSuggested : public mtpDataImpl<MTPDcontactSuggested> { public: MTPDcontactSuggested() { @@ -8506,17 +8276,6 @@ public: MTPVector<MTPUser> vusers; }; -class MTPDcontacts_found : public mtpDataImpl<MTPDcontacts_found> { -public: - MTPDcontacts_found() { - } - MTPDcontacts_found(const MTPVector<MTPContactFound> &_results, const MTPVector<MTPUser> &_users) : vresults(_results), vusers(_users) { - } - - MTPVector<MTPContactFound> vresults; - MTPVector<MTPUser> vusers; -}; - class MTPDcontacts_suggested : public mtpDataImpl<MTPDcontacts_suggested> { public: MTPDcontacts_suggested() { @@ -8782,21 +8541,23 @@ class MTPDupdateUserTyping : public mtpDataImpl<MTPDupdateUserTyping> { public: MTPDupdateUserTyping() { } - MTPDupdateUserTyping(MTPint _user_id) : vuser_id(_user_id) { + MTPDupdateUserTyping(MTPint _user_id, const MTPSendMessageAction &_action) : vuser_id(_user_id), vaction(_action) { } MTPint vuser_id; + MTPSendMessageAction vaction; }; class MTPDupdateChatUserTyping : public mtpDataImpl<MTPDupdateChatUserTyping> { public: MTPDupdateChatUserTyping() { } - MTPDupdateChatUserTyping(MTPint _chat_id, MTPint _user_id) : vchat_id(_chat_id), vuser_id(_user_id) { + MTPDupdateChatUserTyping(MTPint _chat_id, MTPint _user_id, const MTPSendMessageAction &_action) : vchat_id(_chat_id), vuser_id(_user_id), vaction(_action) { } MTPint vchat_id; MTPint vuser_id; + MTPSendMessageAction vaction; }; class MTPDupdateChatParticipants : public mtpDataImpl<MTPDupdateChatParticipants> { @@ -8824,12 +8585,13 @@ class MTPDupdateUserName : public mtpDataImpl<MTPDupdateUserName> { public: MTPDupdateUserName() { } - MTPDupdateUserName(MTPint _user_id, const MTPstring &_first_name, const MTPstring &_last_name) : vuser_id(_user_id), vfirst_name(_first_name), vlast_name(_last_name) { + MTPDupdateUserName(MTPint _user_id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPstring &_username) : vuser_id(_user_id), vfirst_name(_first_name), vlast_name(_last_name), vusername(_username) { } MTPint vuser_id; MTPstring vfirst_name; MTPstring vlast_name; + MTPstring vusername; }; class MTPDupdateUserPhoto : public mtpDataImpl<MTPDupdateUserPhoto> { @@ -9002,6 +8764,19 @@ public: MTPPeerNotifySettings vnotify_settings; }; +class MTPDupdateServiceNotification : public mtpDataImpl<MTPDupdateServiceNotification> { +public: + MTPDupdateServiceNotification() { + } + MTPDupdateServiceNotification(const MTPstring &_type, const MTPstring &_message, const MTPMessageMedia &_media, MTPBool _popup) : vtype(_type), vmessage(_message), vmedia(_media), vpopup(_popup) { + } + + MTPstring vtype; + MTPstring vmessage; + MTPMessageMedia vmedia; + MTPBool vpopup; +}; + class MTPDupdates_state : public mtpDataImpl<MTPDupdates_state> { public: MTPDupdates_state() { @@ -9492,183 +9267,6 @@ public: MTPbytes vbytes; }; -class MTPDdecryptedMessageLayer : public mtpDataImpl<MTPDdecryptedMessageLayer> { -public: - MTPDdecryptedMessageLayer() { - } - MTPDdecryptedMessageLayer(MTPint _layer, const MTPDecryptedMessage &_message) : vlayer(_layer), vmessage(_message) { - } - - MTPint vlayer; - MTPDecryptedMessage vmessage; -}; - -class MTPDdecryptedMessage : public mtpDataImpl<MTPDdecryptedMessage> { -public: - MTPDdecryptedMessage() { - } - MTPDdecryptedMessage(const MTPlong &_random_id, const MTPbytes &_random_bytes, const MTPstring &_message, const MTPDecryptedMessageMedia &_media) : vrandom_id(_random_id), vrandom_bytes(_random_bytes), vmessage(_message), vmedia(_media) { - } - - MTPlong vrandom_id; - MTPbytes vrandom_bytes; - MTPstring vmessage; - MTPDecryptedMessageMedia vmedia; -}; - -class MTPDdecryptedMessageService : public mtpDataImpl<MTPDdecryptedMessageService> { -public: - MTPDdecryptedMessageService() { - } - MTPDdecryptedMessageService(const MTPlong &_random_id, const MTPbytes &_random_bytes, const MTPDecryptedMessageAction &_action) : vrandom_id(_random_id), vrandom_bytes(_random_bytes), vaction(_action) { - } - - MTPlong vrandom_id; - MTPbytes vrandom_bytes; - MTPDecryptedMessageAction vaction; -}; - -class MTPDdecryptedMessageMediaPhoto : public mtpDataImpl<MTPDdecryptedMessageMediaPhoto> { -public: - MTPDdecryptedMessageMediaPhoto() { - } - MTPDdecryptedMessageMediaPhoto(const MTPbytes &_thumb, MTPint _thumb_w, MTPint _thumb_h, MTPint _w, MTPint _h, MTPint _size, const MTPbytes &_key, const MTPbytes &_iv) : vthumb(_thumb), vthumb_w(_thumb_w), vthumb_h(_thumb_h), vw(_w), vh(_h), vsize(_size), vkey(_key), viv(_iv) { - } - - MTPbytes vthumb; - MTPint vthumb_w; - MTPint vthumb_h; - MTPint vw; - MTPint vh; - MTPint vsize; - MTPbytes vkey; - MTPbytes viv; -}; - -class MTPDdecryptedMessageMediaVideo : public mtpDataImpl<MTPDdecryptedMessageMediaVideo> { -public: - MTPDdecryptedMessageMediaVideo() { - } - MTPDdecryptedMessageMediaVideo(const MTPbytes &_thumb, MTPint _thumb_w, MTPint _thumb_h, MTPint _duration, const MTPstring &_mime_type, MTPint _w, MTPint _h, MTPint _size, const MTPbytes &_key, const MTPbytes &_iv) : vthumb(_thumb), vthumb_w(_thumb_w), vthumb_h(_thumb_h), vduration(_duration), vmime_type(_mime_type), vw(_w), vh(_h), vsize(_size), vkey(_key), viv(_iv) { - } - - MTPbytes vthumb; - MTPint vthumb_w; - MTPint vthumb_h; - MTPint vduration; - MTPstring vmime_type; - MTPint vw; - MTPint vh; - MTPint vsize; - MTPbytes vkey; - MTPbytes viv; -}; - -class MTPDdecryptedMessageMediaGeoPoint : public mtpDataImpl<MTPDdecryptedMessageMediaGeoPoint> { -public: - MTPDdecryptedMessageMediaGeoPoint() { - } - MTPDdecryptedMessageMediaGeoPoint(const MTPdouble &_lat, const MTPdouble &_long) : vlat(_lat), vlong(_long) { - } - - MTPdouble vlat; - MTPdouble vlong; -}; - -class MTPDdecryptedMessageMediaContact : public mtpDataImpl<MTPDdecryptedMessageMediaContact> { -public: - MTPDdecryptedMessageMediaContact() { - } - MTPDdecryptedMessageMediaContact(const MTPstring &_phone_number, const MTPstring &_first_name, const MTPstring &_last_name, MTPint _user_id) : vphone_number(_phone_number), vfirst_name(_first_name), vlast_name(_last_name), vuser_id(_user_id) { - } - - MTPstring vphone_number; - MTPstring vfirst_name; - MTPstring vlast_name; - MTPint vuser_id; -}; - -class MTPDdecryptedMessageMediaDocument : public mtpDataImpl<MTPDdecryptedMessageMediaDocument> { -public: - MTPDdecryptedMessageMediaDocument() { - } - MTPDdecryptedMessageMediaDocument(const MTPbytes &_thumb, MTPint _thumb_w, MTPint _thumb_h, const MTPstring &_file_name, const MTPstring &_mime_type, MTPint _size, const MTPbytes &_key, const MTPbytes &_iv) : vthumb(_thumb), vthumb_w(_thumb_w), vthumb_h(_thumb_h), vfile_name(_file_name), vmime_type(_mime_type), vsize(_size), vkey(_key), viv(_iv) { - } - - MTPbytes vthumb; - MTPint vthumb_w; - MTPint vthumb_h; - MTPstring vfile_name; - MTPstring vmime_type; - MTPint vsize; - MTPbytes vkey; - MTPbytes viv; -}; - -class MTPDdecryptedMessageMediaAudio : public mtpDataImpl<MTPDdecryptedMessageMediaAudio> { -public: - MTPDdecryptedMessageMediaAudio() { - } - MTPDdecryptedMessageMediaAudio(MTPint _duration, const MTPstring &_mime_type, MTPint _size, const MTPbytes &_key, const MTPbytes &_iv) : vduration(_duration), vmime_type(_mime_type), vsize(_size), vkey(_key), viv(_iv) { - } - - MTPint vduration; - MTPstring vmime_type; - MTPint vsize; - MTPbytes vkey; - MTPbytes viv; -}; - -class MTPDdecryptedMessageActionSetMessageTTL : public mtpDataImpl<MTPDdecryptedMessageActionSetMessageTTL> { -public: - MTPDdecryptedMessageActionSetMessageTTL() { - } - MTPDdecryptedMessageActionSetMessageTTL(MTPint _ttl_seconds) : vttl_seconds(_ttl_seconds) { - } - - MTPint vttl_seconds; -}; - -class MTPDdecryptedMessageActionReadMessages : public mtpDataImpl<MTPDdecryptedMessageActionReadMessages> { -public: - MTPDdecryptedMessageActionReadMessages() { - } - MTPDdecryptedMessageActionReadMessages(const MTPVector<MTPlong> &_random_ids) : vrandom_ids(_random_ids) { - } - - MTPVector<MTPlong> vrandom_ids; -}; - -class MTPDdecryptedMessageActionDeleteMessages : public mtpDataImpl<MTPDdecryptedMessageActionDeleteMessages> { -public: - MTPDdecryptedMessageActionDeleteMessages() { - } - MTPDdecryptedMessageActionDeleteMessages(const MTPVector<MTPlong> &_random_ids) : vrandom_ids(_random_ids) { - } - - MTPVector<MTPlong> vrandom_ids; -}; - -class MTPDdecryptedMessageActionScreenshotMessages : public mtpDataImpl<MTPDdecryptedMessageActionScreenshotMessages> { -public: - MTPDdecryptedMessageActionScreenshotMessages() { - } - MTPDdecryptedMessageActionScreenshotMessages(const MTPVector<MTPlong> &_random_ids) : vrandom_ids(_random_ids) { - } - - MTPVector<MTPlong> vrandom_ids; -}; - -class MTPDdecryptedMessageActionNotifyLayer : public mtpDataImpl<MTPDdecryptedMessageActionNotifyLayer> { -public: - MTPDdecryptedMessageActionNotifyLayer() { - } - MTPDdecryptedMessageActionNotifyLayer(MTPint _layer) : vlayer(_layer) { - } - - MTPint vlayer; -}; - class MTPDmessages_dhConfigNotModified : public mtpDataImpl<MTPDmessages_dhConfigNotModified> { public: MTPDmessages_dhConfigNotModified() { @@ -9811,6 +9409,27 @@ public: MTPPeer vpeer; }; +class MTPDcontactFound : public mtpDataImpl<MTPDcontactFound> { +public: + MTPDcontactFound() { + } + MTPDcontactFound(MTPint _user_id) : vuser_id(_user_id) { + } + + MTPint vuser_id; +}; + +class MTPDcontacts_found : public mtpDataImpl<MTPDcontacts_found> { +public: + MTPDcontacts_found() { + } + MTPDcontacts_found(const MTPVector<MTPContactFound> &_results, const MTPVector<MTPUser> &_users) : vresults(_results), vusers(_users) { + } + + MTPVector<MTPContactFound> vresults; + MTPVector<MTPUser> vusers; +}; + // RPC methods class MTPreq_pq { // RPC method 'req_pq' @@ -10697,6 +10316,54 @@ public: } }; +class MTPauth_bindTempAuthKey { // RPC method 'auth.bindTempAuthKey' +public: + MTPlong vperm_auth_key_id; + MTPlong vnonce; + MTPint vexpires_at; + MTPbytes vencrypted_message; + + MTPauth_bindTempAuthKey() { + } + MTPauth_bindTempAuthKey(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_auth_bindTempAuthKey) { + read(from, end, cons); + } + MTPauth_bindTempAuthKey(const MTPlong &_perm_auth_key_id, const MTPlong &_nonce, MTPint _expires_at, const MTPbytes &_encrypted_message) : vperm_auth_key_id(_perm_auth_key_id), vnonce(_nonce), vexpires_at(_expires_at), vencrypted_message(_encrypted_message) { + } + + uint32 size() const { + return vperm_auth_key_id.size() + vnonce.size() + vexpires_at.size() + vencrypted_message.size(); + } + mtpTypeId type() const { + return mtpc_auth_bindTempAuthKey; + } + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_auth_bindTempAuthKey) { + vperm_auth_key_id.read(from, end); + vnonce.read(from, end); + vexpires_at.read(from, end); + vencrypted_message.read(from, end); + } + void write(mtpBuffer &to) const { + vperm_auth_key_id.write(to); + vnonce.write(to); + vexpires_at.write(to); + vencrypted_message.write(to); + } + + typedef MTPBool ResponseType; +}; +class MTPauth_BindTempAuthKey : public MTPBoxed<MTPauth_bindTempAuthKey> { +public: + MTPauth_BindTempAuthKey() { + } + MTPauth_BindTempAuthKey(const MTPauth_bindTempAuthKey &v) : MTPBoxed<MTPauth_bindTempAuthKey>(v) { + } + MTPauth_BindTempAuthKey(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = 0) : MTPBoxed<MTPauth_bindTempAuthKey>(from, end, cons) { + } + MTPauth_BindTempAuthKey(const MTPlong &_perm_auth_key_id, const MTPlong &_nonce, MTPint _expires_at, const MTPbytes &_encrypted_message) : MTPBoxed<MTPauth_bindTempAuthKey>(MTPauth_bindTempAuthKey(_perm_auth_key_id, _nonce, _expires_at, _encrypted_message)) { + } +}; + class MTPaccount_registerDevice { // RPC method 'account.registerDevice' public: MTPint vtoken_type; @@ -11210,48 +10877,6 @@ public: } }; -class MTPcontacts_search { // RPC method 'contacts.search' -public: - MTPstring vq; - MTPint vlimit; - - MTPcontacts_search() { - } - MTPcontacts_search(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contacts_search) { - read(from, end, cons); - } - MTPcontacts_search(const MTPstring &_q, MTPint _limit) : vq(_q), vlimit(_limit) { - } - - uint32 size() const { - return vq.size() + vlimit.size(); - } - mtpTypeId type() const { - return mtpc_contacts_search; - } - void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contacts_search) { - vq.read(from, end); - vlimit.read(from, end); - } - void write(mtpBuffer &to) const { - vq.write(to); - vlimit.write(to); - } - - typedef MTPcontacts_Found ResponseType; -}; -class MTPcontacts_Search : public MTPBoxed<MTPcontacts_search> { -public: - MTPcontacts_Search() { - } - MTPcontacts_Search(const MTPcontacts_search &v) : MTPBoxed<MTPcontacts_search>(v) { - } - MTPcontacts_Search(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = 0) : MTPBoxed<MTPcontacts_search>(from, end, cons) { - } - MTPcontacts_Search(const MTPstring &_q, MTPint _limit) : MTPBoxed<MTPcontacts_search>(MTPcontacts_search(_q, _limit)) { - } -}; - class MTPcontacts_getSuggested { // RPC method 'contacts.getSuggested' public: MTPint vlimit; @@ -11489,6 +11114,76 @@ public: } }; +class MTPcontacts_exportCard { // RPC method 'contacts.exportCard' +public: + MTPcontacts_exportCard() { + } + MTPcontacts_exportCard(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contacts_exportCard) { + read(from, end, cons); + } + + uint32 size() const { + return 0; + } + mtpTypeId type() const { + return mtpc_contacts_exportCard; + } + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contacts_exportCard) { + } + void write(mtpBuffer &to) const { + } + + typedef MTPVector<MTPint> ResponseType; +}; +class MTPcontacts_ExportCard : public MTPBoxed<MTPcontacts_exportCard> { +public: + MTPcontacts_ExportCard() { + } + MTPcontacts_ExportCard(const MTPcontacts_exportCard &v) : MTPBoxed<MTPcontacts_exportCard>(v) { + } + MTPcontacts_ExportCard(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = 0) : MTPBoxed<MTPcontacts_exportCard>(from, end, cons) { + } +}; + +class MTPcontacts_importCard { // RPC method 'contacts.importCard' +public: + MTPVector<MTPint> vexport_card; + + MTPcontacts_importCard() { + } + MTPcontacts_importCard(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contacts_importCard) { + read(from, end, cons); + } + MTPcontacts_importCard(const MTPVector<MTPint> &_export_card) : vexport_card(_export_card) { + } + + uint32 size() const { + return vexport_card.size(); + } + mtpTypeId type() const { + return mtpc_contacts_importCard; + } + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contacts_importCard) { + vexport_card.read(from, end); + } + void write(mtpBuffer &to) const { + vexport_card.write(to); + } + + typedef MTPUser ResponseType; +}; +class MTPcontacts_ImportCard : public MTPBoxed<MTPcontacts_importCard> { +public: + MTPcontacts_ImportCard() { + } + MTPcontacts_ImportCard(const MTPcontacts_importCard &v) : MTPBoxed<MTPcontacts_importCard>(v) { + } + MTPcontacts_ImportCard(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = 0) : MTPBoxed<MTPcontacts_importCard>(from, end, cons) { + } + MTPcontacts_ImportCard(const MTPVector<MTPint> &_export_card) : MTPBoxed<MTPcontacts_importCard>(MTPcontacts_importCard(_export_card)) { + } +}; + class MTPmessages_getMessages { // RPC method 'messages.getMessages' public: MTPVector<MTPint> vid; @@ -11686,17 +11381,18 @@ public: MTPInputPeer vpeer; MTPint vmax_id; MTPint voffset; + MTPBool vread_contents; MTPmessages_readHistory() { } MTPmessages_readHistory(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_readHistory) { read(from, end, cons); } - MTPmessages_readHistory(const MTPInputPeer &_peer, MTPint _max_id, MTPint _offset) : vpeer(_peer), vmax_id(_max_id), voffset(_offset) { + MTPmessages_readHistory(const MTPInputPeer &_peer, MTPint _max_id, MTPint _offset, MTPBool _read_contents) : vpeer(_peer), vmax_id(_max_id), voffset(_offset), vread_contents(_read_contents) { } uint32 size() const { - return vpeer.size() + vmax_id.size() + voffset.size(); + return vpeer.size() + vmax_id.size() + voffset.size() + vread_contents.size(); } mtpTypeId type() const { return mtpc_messages_readHistory; @@ -11705,11 +11401,13 @@ public: vpeer.read(from, end); vmax_id.read(from, end); voffset.read(from, end); + vread_contents.read(from, end); } void write(mtpBuffer &to) const { vpeer.write(to); vmax_id.write(to); voffset.write(to); + vread_contents.write(to); } typedef MTPmessages_AffectedHistory ResponseType; @@ -11722,7 +11420,7 @@ public: } MTPmessages_ReadHistory(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = 0) : MTPBoxed<MTPmessages_readHistory>(from, end, cons) { } - MTPmessages_ReadHistory(const MTPInputPeer &_peer, MTPint _max_id, MTPint _offset) : MTPBoxed<MTPmessages_readHistory>(MTPmessages_readHistory(_peer, _max_id, _offset)) { + MTPmessages_ReadHistory(const MTPInputPeer &_peer, MTPint _max_id, MTPint _offset, MTPBool _read_contents) : MTPBoxed<MTPmessages_readHistory>(MTPmessages_readHistory(_peer, _max_id, _offset, _read_contents)) { } }; @@ -11888,29 +11586,29 @@ public: class MTPmessages_setTyping { // RPC method 'messages.setTyping' public: MTPInputPeer vpeer; - MTPBool vtyping; + MTPSendMessageAction vaction; MTPmessages_setTyping() { } MTPmessages_setTyping(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_setTyping) { read(from, end, cons); } - MTPmessages_setTyping(const MTPInputPeer &_peer, MTPBool _typing) : vpeer(_peer), vtyping(_typing) { + MTPmessages_setTyping(const MTPInputPeer &_peer, const MTPSendMessageAction &_action) : vpeer(_peer), vaction(_action) { } uint32 size() const { - return vpeer.size() + vtyping.size(); + return vpeer.size() + vaction.size(); } mtpTypeId type() const { return mtpc_messages_setTyping; } void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_setTyping) { vpeer.read(from, end); - vtyping.read(from, end); + vaction.read(from, end); } void write(mtpBuffer &to) const { vpeer.write(to); - vtyping.write(to); + vaction.write(to); } typedef MTPBool ResponseType; @@ -11923,7 +11621,7 @@ public: } MTPmessages_SetTyping(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = 0) : MTPBoxed<MTPmessages_setTyping>(from, end, cons) { } - MTPmessages_SetTyping(const MTPInputPeer &_peer, MTPBool _typing) : MTPBoxed<MTPmessages_setTyping>(MTPmessages_setTyping(_peer, _typing)) { + MTPmessages_SetTyping(const MTPInputPeer &_peer, const MTPSendMessageAction &_action) : MTPBoxed<MTPmessages_setTyping>(MTPmessages_setTyping(_peer, _action)) { } }; @@ -14037,6 +13735,207 @@ public: } }; +class MTPauth_sendSms { // RPC method 'auth.sendSms' +public: + MTPstring vphone_number; + MTPstring vphone_code_hash; + + MTPauth_sendSms() { + } + MTPauth_sendSms(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_auth_sendSms) { + read(from, end, cons); + } + MTPauth_sendSms(const MTPstring &_phone_number, const MTPstring &_phone_code_hash) : vphone_number(_phone_number), vphone_code_hash(_phone_code_hash) { + } + + uint32 size() const { + return vphone_number.size() + vphone_code_hash.size(); + } + mtpTypeId type() const { + return mtpc_auth_sendSms; + } + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_auth_sendSms) { + vphone_number.read(from, end); + vphone_code_hash.read(from, end); + } + void write(mtpBuffer &to) const { + vphone_number.write(to); + vphone_code_hash.write(to); + } + + typedef MTPBool ResponseType; +}; +class MTPauth_SendSms : public MTPBoxed<MTPauth_sendSms> { +public: + MTPauth_SendSms() { + } + MTPauth_SendSms(const MTPauth_sendSms &v) : MTPBoxed<MTPauth_sendSms>(v) { + } + MTPauth_SendSms(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = 0) : MTPBoxed<MTPauth_sendSms>(from, end, cons) { + } + MTPauth_SendSms(const MTPstring &_phone_number, const MTPstring &_phone_code_hash) : MTPBoxed<MTPauth_sendSms>(MTPauth_sendSms(_phone_number, _phone_code_hash)) { + } +}; + +class MTPmessages_readMessageContents { // RPC method 'messages.readMessageContents' +public: + MTPVector<MTPint> vid; + + MTPmessages_readMessageContents() { + } + MTPmessages_readMessageContents(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_readMessageContents) { + read(from, end, cons); + } + MTPmessages_readMessageContents(const MTPVector<MTPint> &_id) : vid(_id) { + } + + uint32 size() const { + return vid.size(); + } + mtpTypeId type() const { + return mtpc_messages_readMessageContents; + } + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_messages_readMessageContents) { + vid.read(from, end); + } + void write(mtpBuffer &to) const { + vid.write(to); + } + + typedef MTPVector<MTPint> ResponseType; +}; +class MTPmessages_ReadMessageContents : public MTPBoxed<MTPmessages_readMessageContents> { +public: + MTPmessages_ReadMessageContents() { + } + MTPmessages_ReadMessageContents(const MTPmessages_readMessageContents &v) : MTPBoxed<MTPmessages_readMessageContents>(v) { + } + MTPmessages_ReadMessageContents(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = 0) : MTPBoxed<MTPmessages_readMessageContents>(from, end, cons) { + } + MTPmessages_ReadMessageContents(const MTPVector<MTPint> &_id) : MTPBoxed<MTPmessages_readMessageContents>(MTPmessages_readMessageContents(_id)) { + } +}; + +class MTPaccount_checkUsername { // RPC method 'account.checkUsername' +public: + MTPstring vusername; + + MTPaccount_checkUsername() { + } + MTPaccount_checkUsername(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_account_checkUsername) { + read(from, end, cons); + } + MTPaccount_checkUsername(const MTPstring &_username) : vusername(_username) { + } + + uint32 size() const { + return vusername.size(); + } + mtpTypeId type() const { + return mtpc_account_checkUsername; + } + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_account_checkUsername) { + vusername.read(from, end); + } + void write(mtpBuffer &to) const { + vusername.write(to); + } + + typedef MTPBool ResponseType; +}; +class MTPaccount_CheckUsername : public MTPBoxed<MTPaccount_checkUsername> { +public: + MTPaccount_CheckUsername() { + } + MTPaccount_CheckUsername(const MTPaccount_checkUsername &v) : MTPBoxed<MTPaccount_checkUsername>(v) { + } + MTPaccount_CheckUsername(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = 0) : MTPBoxed<MTPaccount_checkUsername>(from, end, cons) { + } + MTPaccount_CheckUsername(const MTPstring &_username) : MTPBoxed<MTPaccount_checkUsername>(MTPaccount_checkUsername(_username)) { + } +}; + +class MTPaccount_updateUsername { // RPC method 'account.updateUsername' +public: + MTPstring vusername; + + MTPaccount_updateUsername() { + } + MTPaccount_updateUsername(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_account_updateUsername) { + read(from, end, cons); + } + MTPaccount_updateUsername(const MTPstring &_username) : vusername(_username) { + } + + uint32 size() const { + return vusername.size(); + } + mtpTypeId type() const { + return mtpc_account_updateUsername; + } + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_account_updateUsername) { + vusername.read(from, end); + } + void write(mtpBuffer &to) const { + vusername.write(to); + } + + typedef MTPUser ResponseType; +}; +class MTPaccount_UpdateUsername : public MTPBoxed<MTPaccount_updateUsername> { +public: + MTPaccount_UpdateUsername() { + } + MTPaccount_UpdateUsername(const MTPaccount_updateUsername &v) : MTPBoxed<MTPaccount_updateUsername>(v) { + } + MTPaccount_UpdateUsername(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = 0) : MTPBoxed<MTPaccount_updateUsername>(from, end, cons) { + } + MTPaccount_UpdateUsername(const MTPstring &_username) : MTPBoxed<MTPaccount_updateUsername>(MTPaccount_updateUsername(_username)) { + } +}; + +class MTPcontacts_search { // RPC method 'contacts.search' +public: + MTPstring vq; + MTPint vlimit; + + MTPcontacts_search() { + } + MTPcontacts_search(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contacts_search) { + read(from, end, cons); + } + MTPcontacts_search(const MTPstring &_q, MTPint _limit) : vq(_q), vlimit(_limit) { + } + + uint32 size() const { + return vq.size() + vlimit.size(); + } + mtpTypeId type() const { + return mtpc_contacts_search; + } + void read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = mtpc_contacts_search) { + vq.read(from, end); + vlimit.read(from, end); + } + void write(mtpBuffer &to) const { + vq.write(to); + vlimit.write(to); + } + + typedef MTPcontacts_Found ResponseType; +}; +class MTPcontacts_Search : public MTPBoxed<MTPcontacts_search> { +public: + MTPcontacts_Search() { + } + MTPcontacts_Search(const MTPcontacts_search &v) : MTPBoxed<MTPcontacts_search>(v) { + } + MTPcontacts_Search(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons = 0) : MTPBoxed<MTPcontacts_search>(from, end, cons) { + } + MTPcontacts_Search(const MTPstring &_q, MTPint _limit) : MTPBoxed<MTPcontacts_search>(MTPcontacts_search(_q, _limit)) { + } +}; + // Inline methods definition inline MTPresPQ::MTPresPQ() : mtpDataOwner(new MTPDresPQ()) { @@ -16160,23 +16059,23 @@ inline uint32 MTPuser::size() const { } case mtpc_userSelf: { const MTPDuserSelf &v(c_userSelf()); - return v.vid.size() + v.vfirst_name.size() + v.vlast_name.size() + v.vphone.size() + v.vphoto.size() + v.vstatus.size() + v.vinactive.size(); + return v.vid.size() + v.vfirst_name.size() + v.vlast_name.size() + v.vusername.size() + v.vphone.size() + v.vphoto.size() + v.vstatus.size() + v.vinactive.size(); } case mtpc_userContact: { const MTPDuserContact &v(c_userContact()); - return v.vid.size() + v.vfirst_name.size() + v.vlast_name.size() + v.vaccess_hash.size() + v.vphone.size() + v.vphoto.size() + v.vstatus.size(); + return v.vid.size() + v.vfirst_name.size() + v.vlast_name.size() + v.vusername.size() + v.vaccess_hash.size() + v.vphone.size() + v.vphoto.size() + v.vstatus.size(); } case mtpc_userRequest: { const MTPDuserRequest &v(c_userRequest()); - return v.vid.size() + v.vfirst_name.size() + v.vlast_name.size() + v.vaccess_hash.size() + v.vphone.size() + v.vphoto.size() + v.vstatus.size(); + return v.vid.size() + v.vfirst_name.size() + v.vlast_name.size() + v.vusername.size() + v.vaccess_hash.size() + v.vphone.size() + v.vphoto.size() + v.vstatus.size(); } case mtpc_userForeign: { const MTPDuserForeign &v(c_userForeign()); - return v.vid.size() + v.vfirst_name.size() + v.vlast_name.size() + v.vaccess_hash.size() + v.vphoto.size() + v.vstatus.size(); + return v.vid.size() + v.vfirst_name.size() + v.vlast_name.size() + v.vusername.size() + v.vaccess_hash.size() + v.vphoto.size() + v.vstatus.size(); } case mtpc_userDeleted: { const MTPDuserDeleted &v(c_userDeleted()); - return v.vid.size() + v.vfirst_name.size() + v.vlast_name.size(); + return v.vid.size() + v.vfirst_name.size() + v.vlast_name.size() + v.vusername.size(); } } return 0; @@ -16199,6 +16098,7 @@ inline void MTPuser::read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId v.vid.read(from, end); v.vfirst_name.read(from, end); v.vlast_name.read(from, end); + v.vusername.read(from, end); v.vphone.read(from, end); v.vphoto.read(from, end); v.vstatus.read(from, end); @@ -16210,6 +16110,7 @@ inline void MTPuser::read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId v.vid.read(from, end); v.vfirst_name.read(from, end); v.vlast_name.read(from, end); + v.vusername.read(from, end); v.vaccess_hash.read(from, end); v.vphone.read(from, end); v.vphoto.read(from, end); @@ -16221,6 +16122,7 @@ inline void MTPuser::read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId v.vid.read(from, end); v.vfirst_name.read(from, end); v.vlast_name.read(from, end); + v.vusername.read(from, end); v.vaccess_hash.read(from, end); v.vphone.read(from, end); v.vphoto.read(from, end); @@ -16232,6 +16134,7 @@ inline void MTPuser::read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId v.vid.read(from, end); v.vfirst_name.read(from, end); v.vlast_name.read(from, end); + v.vusername.read(from, end); v.vaccess_hash.read(from, end); v.vphoto.read(from, end); v.vstatus.read(from, end); @@ -16242,6 +16145,7 @@ inline void MTPuser::read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId v.vid.read(from, end); v.vfirst_name.read(from, end); v.vlast_name.read(from, end); + v.vusername.read(from, end); } break; default: throw mtpErrorUnexpected(cons, "MTPuser"); } @@ -16257,6 +16161,7 @@ inline void MTPuser::write(mtpBuffer &to) const { v.vid.write(to); v.vfirst_name.write(to); v.vlast_name.write(to); + v.vusername.write(to); v.vphone.write(to); v.vphoto.write(to); v.vstatus.write(to); @@ -16267,6 +16172,7 @@ inline void MTPuser::write(mtpBuffer &to) const { v.vid.write(to); v.vfirst_name.write(to); v.vlast_name.write(to); + v.vusername.write(to); v.vaccess_hash.write(to); v.vphone.write(to); v.vphoto.write(to); @@ -16277,6 +16183,7 @@ inline void MTPuser::write(mtpBuffer &to) const { v.vid.write(to); v.vfirst_name.write(to); v.vlast_name.write(to); + v.vusername.write(to); v.vaccess_hash.write(to); v.vphone.write(to); v.vphoto.write(to); @@ -16287,6 +16194,7 @@ inline void MTPuser::write(mtpBuffer &to) const { v.vid.write(to); v.vfirst_name.write(to); v.vlast_name.write(to); + v.vusername.write(to); v.vaccess_hash.write(to); v.vphoto.write(to); v.vstatus.write(to); @@ -16296,6 +16204,7 @@ inline void MTPuser::write(mtpBuffer &to) const { v.vid.write(to); v.vfirst_name.write(to); v.vlast_name.write(to); + v.vusername.write(to); } break; } } @@ -16325,20 +16234,20 @@ inline MTPuser::MTPuser(MTPDuserDeleted *_data) : mtpDataOwner(_data), _type(mtp inline MTPuser MTP_userEmpty(MTPint _id) { return MTPuser(new MTPDuserEmpty(_id)); } -inline MTPuser MTP_userSelf(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPstring &_phone, const MTPUserProfilePhoto &_photo, const MTPUserStatus &_status, MTPBool _inactive) { - return MTPuser(new MTPDuserSelf(_id, _first_name, _last_name, _phone, _photo, _status, _inactive)); +inline MTPuser MTP_userSelf(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPstring &_username, const MTPstring &_phone, const MTPUserProfilePhoto &_photo, const MTPUserStatus &_status, MTPBool _inactive) { + return MTPuser(new MTPDuserSelf(_id, _first_name, _last_name, _username, _phone, _photo, _status, _inactive)); } -inline MTPuser MTP_userContact(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPlong &_access_hash, const MTPstring &_phone, const MTPUserProfilePhoto &_photo, const MTPUserStatus &_status) { - return MTPuser(new MTPDuserContact(_id, _first_name, _last_name, _access_hash, _phone, _photo, _status)); +inline MTPuser MTP_userContact(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPstring &_username, const MTPlong &_access_hash, const MTPstring &_phone, const MTPUserProfilePhoto &_photo, const MTPUserStatus &_status) { + return MTPuser(new MTPDuserContact(_id, _first_name, _last_name, _username, _access_hash, _phone, _photo, _status)); } -inline MTPuser MTP_userRequest(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPlong &_access_hash, const MTPstring &_phone, const MTPUserProfilePhoto &_photo, const MTPUserStatus &_status) { - return MTPuser(new MTPDuserRequest(_id, _first_name, _last_name, _access_hash, _phone, _photo, _status)); +inline MTPuser MTP_userRequest(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPstring &_username, const MTPlong &_access_hash, const MTPstring &_phone, const MTPUserProfilePhoto &_photo, const MTPUserStatus &_status) { + return MTPuser(new MTPDuserRequest(_id, _first_name, _last_name, _username, _access_hash, _phone, _photo, _status)); } -inline MTPuser MTP_userForeign(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPlong &_access_hash, const MTPUserProfilePhoto &_photo, const MTPUserStatus &_status) { - return MTPuser(new MTPDuserForeign(_id, _first_name, _last_name, _access_hash, _photo, _status)); +inline MTPuser MTP_userForeign(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPstring &_username, const MTPlong &_access_hash, const MTPUserProfilePhoto &_photo, const MTPUserStatus &_status) { + return MTPuser(new MTPDuserForeign(_id, _first_name, _last_name, _username, _access_hash, _photo, _status)); } -inline MTPuser MTP_userDeleted(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name) { - return MTPuser(new MTPDuserDeleted(_id, _first_name, _last_name)); +inline MTPuser MTP_userDeleted(MTPint _id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPstring &_username) { + return MTPuser(new MTPDuserDeleted(_id, _first_name, _last_name, _username)); } inline uint32 MTPuserProfilePhoto::size() const { @@ -16791,15 +16700,15 @@ inline uint32 MTPmessage::size() const { } case mtpc_message: { const MTPDmessage &v(c_message()); - return v.vid.size() + v.vfrom_id.size() + v.vto_id.size() + v.vout.size() + v.vunread.size() + v.vdate.size() + v.vmessage.size() + v.vmedia.size(); + return v.vflags.size() + v.vid.size() + v.vfrom_id.size() + v.vto_id.size() + v.vdate.size() + v.vmessage.size() + v.vmedia.size(); } case mtpc_messageForwarded: { const MTPDmessageForwarded &v(c_messageForwarded()); - return v.vid.size() + v.vfwd_from_id.size() + v.vfwd_date.size() + v.vfrom_id.size() + v.vto_id.size() + v.vout.size() + v.vunread.size() + v.vdate.size() + v.vmessage.size() + v.vmedia.size(); + return v.vflags.size() + v.vid.size() + v.vfwd_from_id.size() + v.vfwd_date.size() + v.vfrom_id.size() + v.vto_id.size() + v.vdate.size() + v.vmessage.size() + v.vmedia.size(); } case mtpc_messageService: { const MTPDmessageService &v(c_messageService()); - return v.vid.size() + v.vfrom_id.size() + v.vto_id.size() + v.vout.size() + v.vunread.size() + v.vdate.size() + v.vaction.size(); + return v.vflags.size() + v.vid.size() + v.vfrom_id.size() + v.vto_id.size() + v.vdate.size() + v.vaction.size(); } } return 0; @@ -16819,11 +16728,10 @@ inline void MTPmessage::read(const mtpPrime *&from, const mtpPrime *end, mtpType case mtpc_message: _type = cons; { if (!data) setData(new MTPDmessage()); MTPDmessage &v(_message()); + v.vflags.read(from, end); v.vid.read(from, end); v.vfrom_id.read(from, end); v.vto_id.read(from, end); - v.vout.read(from, end); - v.vunread.read(from, end); v.vdate.read(from, end); v.vmessage.read(from, end); v.vmedia.read(from, end); @@ -16831,13 +16739,12 @@ inline void MTPmessage::read(const mtpPrime *&from, const mtpPrime *end, mtpType case mtpc_messageForwarded: _type = cons; { if (!data) setData(new MTPDmessageForwarded()); MTPDmessageForwarded &v(_messageForwarded()); + v.vflags.read(from, end); v.vid.read(from, end); v.vfwd_from_id.read(from, end); v.vfwd_date.read(from, end); v.vfrom_id.read(from, end); v.vto_id.read(from, end); - v.vout.read(from, end); - v.vunread.read(from, end); v.vdate.read(from, end); v.vmessage.read(from, end); v.vmedia.read(from, end); @@ -16845,11 +16752,10 @@ inline void MTPmessage::read(const mtpPrime *&from, const mtpPrime *end, mtpType case mtpc_messageService: _type = cons; { if (!data) setData(new MTPDmessageService()); MTPDmessageService &v(_messageService()); + v.vflags.read(from, end); v.vid.read(from, end); v.vfrom_id.read(from, end); v.vto_id.read(from, end); - v.vout.read(from, end); - v.vunread.read(from, end); v.vdate.read(from, end); v.vaction.read(from, end); } break; @@ -16864,35 +16770,32 @@ inline void MTPmessage::write(mtpBuffer &to) const { } break; case mtpc_message: { const MTPDmessage &v(c_message()); + v.vflags.write(to); v.vid.write(to); v.vfrom_id.write(to); v.vto_id.write(to); - v.vout.write(to); - v.vunread.write(to); v.vdate.write(to); v.vmessage.write(to); v.vmedia.write(to); } break; case mtpc_messageForwarded: { const MTPDmessageForwarded &v(c_messageForwarded()); + v.vflags.write(to); v.vid.write(to); v.vfwd_from_id.write(to); v.vfwd_date.write(to); v.vfrom_id.write(to); v.vto_id.write(to); - v.vout.write(to); - v.vunread.write(to); v.vdate.write(to); v.vmessage.write(to); v.vmedia.write(to); } break; case mtpc_messageService: { const MTPDmessageService &v(c_messageService()); + v.vflags.write(to); v.vid.write(to); v.vfrom_id.write(to); v.vto_id.write(to); - v.vout.write(to); - v.vunread.write(to); v.vdate.write(to); v.vaction.write(to); } break; @@ -16918,14 +16821,14 @@ inline MTPmessage::MTPmessage(MTPDmessageService *_data) : mtpDataOwner(_data), inline MTPmessage MTP_messageEmpty(MTPint _id) { return MTPmessage(new MTPDmessageEmpty(_id)); } -inline MTPmessage MTP_message(MTPint _id, MTPint _from_id, const MTPPeer &_to_id, MTPBool _out, MTPBool _unread, MTPint _date, const MTPstring &_message, const MTPMessageMedia &_media) { - return MTPmessage(new MTPDmessage(_id, _from_id, _to_id, _out, _unread, _date, _message, _media)); +inline MTPmessage MTP_message(MTPint _flags, MTPint _id, MTPint _from_id, const MTPPeer &_to_id, MTPint _date, const MTPstring &_message, const MTPMessageMedia &_media) { + return MTPmessage(new MTPDmessage(_flags, _id, _from_id, _to_id, _date, _message, _media)); } -inline MTPmessage MTP_messageForwarded(MTPint _id, MTPint _fwd_from_id, MTPint _fwd_date, MTPint _from_id, const MTPPeer &_to_id, MTPBool _out, MTPBool _unread, MTPint _date, const MTPstring &_message, const MTPMessageMedia &_media) { - return MTPmessage(new MTPDmessageForwarded(_id, _fwd_from_id, _fwd_date, _from_id, _to_id, _out, _unread, _date, _message, _media)); +inline MTPmessage MTP_messageForwarded(MTPint _flags, MTPint _id, MTPint _fwd_from_id, MTPint _fwd_date, MTPint _from_id, const MTPPeer &_to_id, MTPint _date, const MTPstring &_message, const MTPMessageMedia &_media) { + return MTPmessage(new MTPDmessageForwarded(_flags, _id, _fwd_from_id, _fwd_date, _from_id, _to_id, _date, _message, _media)); } -inline MTPmessage MTP_messageService(MTPint _id, MTPint _from_id, const MTPPeer &_to_id, MTPBool _out, MTPBool _unread, MTPint _date, const MTPMessageAction &_action) { - return MTPmessage(new MTPDmessageService(_id, _from_id, _to_id, _out, _unread, _date, _action)); +inline MTPmessage MTP_messageService(MTPint _flags, MTPint _id, MTPint _from_id, const MTPPeer &_to_id, MTPint _date, const MTPMessageAction &_action) { + return MTPmessage(new MTPDmessageService(_flags, _id, _from_id, _to_id, _date, _action)); } inline uint32 MTPmessageMedia::size() const { @@ -17626,38 +17529,80 @@ inline MTPauth_checkedPhone MTP_auth_checkedPhone(MTPBool _phone_registered, MTP return MTPauth_checkedPhone(new MTPDauth_checkedPhone(_phone_registered, _phone_invited)); } -inline MTPauth_sentCode::MTPauth_sentCode() : mtpDataOwner(new MTPDauth_sentCode()) { -} - inline uint32 MTPauth_sentCode::size() const { - const MTPDauth_sentCode &v(c_auth_sentCode()); - return v.vphone_registered.size() + v.vphone_code_hash.size() + v.vsend_call_timeout.size() + v.vis_password.size(); + switch (_type) { + case mtpc_auth_sentCode: { + const MTPDauth_sentCode &v(c_auth_sentCode()); + return v.vphone_registered.size() + v.vphone_code_hash.size() + v.vsend_call_timeout.size() + v.vis_password.size(); + } + case mtpc_auth_sentAppCode: { + const MTPDauth_sentAppCode &v(c_auth_sentAppCode()); + return v.vphone_registered.size() + v.vphone_code_hash.size() + v.vsend_call_timeout.size() + v.vis_password.size(); + } + } + return 0; } inline mtpTypeId MTPauth_sentCode::type() const { - return mtpc_auth_sentCode; + if (!_type) throw mtpErrorUninitialized(); + return _type; } inline void MTPauth_sentCode::read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons) { - if (cons != mtpc_auth_sentCode) throw mtpErrorUnexpected(cons, "MTPauth_sentCode"); - - if (!data) setData(new MTPDauth_sentCode()); - MTPDauth_sentCode &v(_auth_sentCode()); - v.vphone_registered.read(from, end); - v.vphone_code_hash.read(from, end); - v.vsend_call_timeout.read(from, end); - v.vis_password.read(from, end); + if (cons != _type) setData(0); + switch (cons) { + case mtpc_auth_sentCode: _type = cons; { + if (!data) setData(new MTPDauth_sentCode()); + MTPDauth_sentCode &v(_auth_sentCode()); + v.vphone_registered.read(from, end); + v.vphone_code_hash.read(from, end); + v.vsend_call_timeout.read(from, end); + v.vis_password.read(from, end); + } break; + case mtpc_auth_sentAppCode: _type = cons; { + if (!data) setData(new MTPDauth_sentAppCode()); + MTPDauth_sentAppCode &v(_auth_sentAppCode()); + v.vphone_registered.read(from, end); + v.vphone_code_hash.read(from, end); + v.vsend_call_timeout.read(from, end); + v.vis_password.read(from, end); + } break; + default: throw mtpErrorUnexpected(cons, "MTPauth_sentCode"); + } } inline void MTPauth_sentCode::write(mtpBuffer &to) const { - const MTPDauth_sentCode &v(c_auth_sentCode()); - v.vphone_registered.write(to); - v.vphone_code_hash.write(to); - v.vsend_call_timeout.write(to); - v.vis_password.write(to); + switch (_type) { + case mtpc_auth_sentCode: { + const MTPDauth_sentCode &v(c_auth_sentCode()); + v.vphone_registered.write(to); + v.vphone_code_hash.write(to); + v.vsend_call_timeout.write(to); + v.vis_password.write(to); + } break; + case mtpc_auth_sentAppCode: { + const MTPDauth_sentAppCode &v(c_auth_sentAppCode()); + v.vphone_registered.write(to); + v.vphone_code_hash.write(to); + v.vsend_call_timeout.write(to); + v.vis_password.write(to); + } break; + } } -inline MTPauth_sentCode::MTPauth_sentCode(MTPDauth_sentCode *_data) : mtpDataOwner(_data) { +inline MTPauth_sentCode::MTPauth_sentCode(mtpTypeId type) : mtpDataOwner(0), _type(type) { + switch (type) { + case mtpc_auth_sentCode: setData(new MTPDauth_sentCode()); break; + case mtpc_auth_sentAppCode: setData(new MTPDauth_sentAppCode()); break; + default: throw mtpErrorBadTypeId(type, "MTPauth_sentCode"); + } +} +inline MTPauth_sentCode::MTPauth_sentCode(MTPDauth_sentCode *_data) : mtpDataOwner(_data), _type(mtpc_auth_sentCode) { +} +inline MTPauth_sentCode::MTPauth_sentCode(MTPDauth_sentAppCode *_data) : mtpDataOwner(_data), _type(mtpc_auth_sentAppCode) { } inline MTPauth_sentCode MTP_auth_sentCode(MTPBool _phone_registered, const MTPstring &_phone_code_hash, MTPint _send_call_timeout, MTPBool _is_password) { return MTPauth_sentCode(new MTPDauth_sentCode(_phone_registered, _phone_code_hash, _send_call_timeout, _is_password)); } +inline MTPauth_sentCode MTP_auth_sentAppCode(MTPBool _phone_registered, const MTPstring &_phone_code_hash, MTPint _send_call_timeout, MTPBool _is_password) { + return MTPauth_sentCode(new MTPDauth_sentAppCode(_phone_registered, _phone_code_hash, _send_call_timeout, _is_password)); +} inline MTPauth_authorization::MTPauth_authorization() : mtpDataOwner(new MTPDauth_authorization()) { } @@ -18148,33 +18093,6 @@ inline MTPcontactBlocked MTP_contactBlocked(MTPint _user_id, MTPint _date) { return MTPcontactBlocked(new MTPDcontactBlocked(_user_id, _date)); } -inline MTPcontactFound::MTPcontactFound() : mtpDataOwner(new MTPDcontactFound()) { -} - -inline uint32 MTPcontactFound::size() const { - const MTPDcontactFound &v(c_contactFound()); - return v.vuser_id.size(); -} -inline mtpTypeId MTPcontactFound::type() const { - return mtpc_contactFound; -} -inline void MTPcontactFound::read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons) { - if (cons != mtpc_contactFound) throw mtpErrorUnexpected(cons, "MTPcontactFound"); - - if (!data) setData(new MTPDcontactFound()); - MTPDcontactFound &v(_contactFound()); - v.vuser_id.read(from, end); -} -inline void MTPcontactFound::write(mtpBuffer &to) const { - const MTPDcontactFound &v(c_contactFound()); - v.vuser_id.write(to); -} -inline MTPcontactFound::MTPcontactFound(MTPDcontactFound *_data) : mtpDataOwner(_data) { -} -inline MTPcontactFound MTP_contactFound(MTPint _user_id) { - return MTPcontactFound(new MTPDcontactFound(_user_id)); -} - inline MTPcontactSuggested::MTPcontactSuggested() : mtpDataOwner(new MTPDcontactSuggested()) { } @@ -18552,35 +18470,6 @@ inline MTPcontacts_blocked MTP_contacts_blockedSlice(MTPint _count, const MTPVec return MTPcontacts_blocked(new MTPDcontacts_blockedSlice(_count, _blocked, _users)); } -inline MTPcontacts_found::MTPcontacts_found() : mtpDataOwner(new MTPDcontacts_found()) { -} - -inline uint32 MTPcontacts_found::size() const { - const MTPDcontacts_found &v(c_contacts_found()); - return v.vresults.size() + v.vusers.size(); -} -inline mtpTypeId MTPcontacts_found::type() const { - return mtpc_contacts_found; -} -inline void MTPcontacts_found::read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons) { - if (cons != mtpc_contacts_found) throw mtpErrorUnexpected(cons, "MTPcontacts_found"); - - if (!data) setData(new MTPDcontacts_found()); - MTPDcontacts_found &v(_contacts_found()); - v.vresults.read(from, end); - v.vusers.read(from, end); -} -inline void MTPcontacts_found::write(mtpBuffer &to) const { - const MTPDcontacts_found &v(c_contacts_found()); - v.vresults.write(to); - v.vusers.write(to); -} -inline MTPcontacts_found::MTPcontacts_found(MTPDcontacts_found *_data) : mtpDataOwner(_data) { -} -inline MTPcontacts_found MTP_contacts_found(const MTPVector<MTPContactFound> &_results, const MTPVector<MTPUser> &_users) { - return MTPcontacts_found(new MTPDcontacts_found(_results, _users)); -} - inline MTPcontacts_suggested::MTPcontacts_suggested() : mtpDataOwner(new MTPDcontacts_suggested()) { } @@ -19248,11 +19137,11 @@ inline uint32 MTPupdate::size() const { } case mtpc_updateUserTyping: { const MTPDupdateUserTyping &v(c_updateUserTyping()); - return v.vuser_id.size(); + return v.vuser_id.size() + v.vaction.size(); } case mtpc_updateChatUserTyping: { const MTPDupdateChatUserTyping &v(c_updateChatUserTyping()); - return v.vchat_id.size() + v.vuser_id.size(); + return v.vchat_id.size() + v.vuser_id.size() + v.vaction.size(); } case mtpc_updateChatParticipants: { const MTPDupdateChatParticipants &v(c_updateChatParticipants()); @@ -19264,7 +19153,7 @@ inline uint32 MTPupdate::size() const { } case mtpc_updateUserName: { const MTPDupdateUserName &v(c_updateUserName()); - return v.vuser_id.size() + v.vfirst_name.size() + v.vlast_name.size(); + return v.vuser_id.size() + v.vfirst_name.size() + v.vlast_name.size() + v.vusername.size(); } case mtpc_updateUserPhoto: { const MTPDupdateUserPhoto &v(c_updateUserPhoto()); @@ -19326,6 +19215,10 @@ inline uint32 MTPupdate::size() const { const MTPDupdateNotifySettings &v(c_updateNotifySettings()); return v.vpeer.size() + v.vnotify_settings.size(); } + case mtpc_updateServiceNotification: { + const MTPDupdateServiceNotification &v(c_updateServiceNotification()); + return v.vtype.size() + v.vmessage.size() + v.vmedia.size() + v.vpopup.size(); + } } return 0; } @@ -19370,12 +19263,14 @@ inline void MTPupdate::read(const mtpPrime *&from, const mtpPrime *end, mtpTypeI if (!data) setData(new MTPDupdateUserTyping()); MTPDupdateUserTyping &v(_updateUserTyping()); v.vuser_id.read(from, end); + v.vaction.read(from, end); } break; case mtpc_updateChatUserTyping: _type = cons; { if (!data) setData(new MTPDupdateChatUserTyping()); MTPDupdateChatUserTyping &v(_updateChatUserTyping()); v.vchat_id.read(from, end); v.vuser_id.read(from, end); + v.vaction.read(from, end); } break; case mtpc_updateChatParticipants: _type = cons; { if (!data) setData(new MTPDupdateChatParticipants()); @@ -19394,6 +19289,7 @@ inline void MTPupdate::read(const mtpPrime *&from, const mtpPrime *end, mtpTypeI v.vuser_id.read(from, end); v.vfirst_name.read(from, end); v.vlast_name.read(from, end); + v.vusername.read(from, end); } break; case mtpc_updateUserPhoto: _type = cons; { if (!data) setData(new MTPDupdateUserPhoto()); @@ -19490,6 +19386,14 @@ inline void MTPupdate::read(const mtpPrime *&from, const mtpPrime *end, mtpTypeI v.vpeer.read(from, end); v.vnotify_settings.read(from, end); } break; + case mtpc_updateServiceNotification: _type = cons; { + if (!data) setData(new MTPDupdateServiceNotification()); + MTPDupdateServiceNotification &v(_updateServiceNotification()); + v.vtype.read(from, end); + v.vmessage.read(from, end); + v.vmedia.read(from, end); + v.vpopup.read(from, end); + } break; default: throw mtpErrorUnexpected(cons, "MTPupdate"); } } @@ -19523,11 +19427,13 @@ inline void MTPupdate::write(mtpBuffer &to) const { case mtpc_updateUserTyping: { const MTPDupdateUserTyping &v(c_updateUserTyping()); v.vuser_id.write(to); + v.vaction.write(to); } break; case mtpc_updateChatUserTyping: { const MTPDupdateChatUserTyping &v(c_updateChatUserTyping()); v.vchat_id.write(to); v.vuser_id.write(to); + v.vaction.write(to); } break; case mtpc_updateChatParticipants: { const MTPDupdateChatParticipants &v(c_updateChatParticipants()); @@ -19543,6 +19449,7 @@ inline void MTPupdate::write(mtpBuffer &to) const { v.vuser_id.write(to); v.vfirst_name.write(to); v.vlast_name.write(to); + v.vusername.write(to); } break; case mtpc_updateUserPhoto: { const MTPDupdateUserPhoto &v(c_updateUserPhoto()); @@ -19624,6 +19531,13 @@ inline void MTPupdate::write(mtpBuffer &to) const { v.vpeer.write(to); v.vnotify_settings.write(to); } break; + case mtpc_updateServiceNotification: { + const MTPDupdateServiceNotification &v(c_updateServiceNotification()); + v.vtype.write(to); + v.vmessage.write(to); + v.vmedia.write(to); + v.vpopup.write(to); + } break; } } inline MTPupdate::MTPupdate(mtpTypeId type) : mtpDataOwner(0), _type(type) { @@ -19653,6 +19567,7 @@ inline MTPupdate::MTPupdate(mtpTypeId type) : mtpDataOwner(0), _type(type) { case mtpc_updateDcOptions: setData(new MTPDupdateDcOptions()); break; case mtpc_updateUserBlocked: setData(new MTPDupdateUserBlocked()); break; case mtpc_updateNotifySettings: setData(new MTPDupdateNotifySettings()); break; + case mtpc_updateServiceNotification: setData(new MTPDupdateServiceNotification()); break; default: throw mtpErrorBadTypeId(type, "MTPupdate"); } } @@ -19706,6 +19621,8 @@ inline MTPupdate::MTPupdate(MTPDupdateUserBlocked *_data) : mtpDataOwner(_data), } inline MTPupdate::MTPupdate(MTPDupdateNotifySettings *_data) : mtpDataOwner(_data), _type(mtpc_updateNotifySettings) { } +inline MTPupdate::MTPupdate(MTPDupdateServiceNotification *_data) : mtpDataOwner(_data), _type(mtpc_updateServiceNotification) { +} inline MTPupdate MTP_updateNewMessage(const MTPMessage &_message, MTPint _pts) { return MTPupdate(new MTPDupdateNewMessage(_message, _pts)); } @@ -19721,11 +19638,11 @@ inline MTPupdate MTP_updateDeleteMessages(const MTPVector<MTPint> &_messages, MT inline MTPupdate MTP_updateRestoreMessages(const MTPVector<MTPint> &_messages, MTPint _pts) { return MTPupdate(new MTPDupdateRestoreMessages(_messages, _pts)); } -inline MTPupdate MTP_updateUserTyping(MTPint _user_id) { - return MTPupdate(new MTPDupdateUserTyping(_user_id)); +inline MTPupdate MTP_updateUserTyping(MTPint _user_id, const MTPSendMessageAction &_action) { + return MTPupdate(new MTPDupdateUserTyping(_user_id, _action)); } -inline MTPupdate MTP_updateChatUserTyping(MTPint _chat_id, MTPint _user_id) { - return MTPupdate(new MTPDupdateChatUserTyping(_chat_id, _user_id)); +inline MTPupdate MTP_updateChatUserTyping(MTPint _chat_id, MTPint _user_id, const MTPSendMessageAction &_action) { + return MTPupdate(new MTPDupdateChatUserTyping(_chat_id, _user_id, _action)); } inline MTPupdate MTP_updateChatParticipants(const MTPChatParticipants &_participants) { return MTPupdate(new MTPDupdateChatParticipants(_participants)); @@ -19733,8 +19650,8 @@ inline MTPupdate MTP_updateChatParticipants(const MTPChatParticipants &_particip inline MTPupdate MTP_updateUserStatus(MTPint _user_id, const MTPUserStatus &_status) { return MTPupdate(new MTPDupdateUserStatus(_user_id, _status)); } -inline MTPupdate MTP_updateUserName(MTPint _user_id, const MTPstring &_first_name, const MTPstring &_last_name) { - return MTPupdate(new MTPDupdateUserName(_user_id, _first_name, _last_name)); +inline MTPupdate MTP_updateUserName(MTPint _user_id, const MTPstring &_first_name, const MTPstring &_last_name, const MTPstring &_username) { + return MTPupdate(new MTPDupdateUserName(_user_id, _first_name, _last_name, _username)); } inline MTPupdate MTP_updateUserPhoto(MTPint _user_id, MTPint _date, const MTPUserProfilePhoto &_photo, MTPBool _previous) { return MTPupdate(new MTPDupdateUserPhoto(_user_id, _date, _photo, _previous)); @@ -19781,6 +19698,9 @@ inline MTPupdate MTP_updateUserBlocked(MTPint _user_id, MTPBool _blocked) { inline MTPupdate MTP_updateNotifySettings(const MTPNotifyPeer &_peer, const MTPPeerNotifySettings &_notify_settings) { return MTPupdate(new MTPDupdateNotifySettings(_peer, _notify_settings)); } +inline MTPupdate MTP_updateServiceNotification(const MTPstring &_type, const MTPstring &_message, const MTPMessageMedia &_media, MTPBool _popup) { + return MTPupdate(new MTPDupdateServiceNotification(_type, _message, _media, _popup)); +} inline MTPupdates_state::MTPupdates_state() : mtpDataOwner(new MTPDupdates_state()) { } @@ -21082,439 +21002,6 @@ inline MTPencryptedMessage MTP_encryptedMessageService(const MTPlong &_random_id return MTPencryptedMessage(new MTPDencryptedMessageService(_random_id, _chat_id, _date, _bytes)); } -inline MTPdecryptedMessageLayer::MTPdecryptedMessageLayer() : mtpDataOwner(new MTPDdecryptedMessageLayer()) { -} - -inline uint32 MTPdecryptedMessageLayer::size() const { - const MTPDdecryptedMessageLayer &v(c_decryptedMessageLayer()); - return v.vlayer.size() + v.vmessage.size(); -} -inline mtpTypeId MTPdecryptedMessageLayer::type() const { - return mtpc_decryptedMessageLayer; -} -inline void MTPdecryptedMessageLayer::read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons) { - if (cons != mtpc_decryptedMessageLayer) throw mtpErrorUnexpected(cons, "MTPdecryptedMessageLayer"); - - if (!data) setData(new MTPDdecryptedMessageLayer()); - MTPDdecryptedMessageLayer &v(_decryptedMessageLayer()); - v.vlayer.read(from, end); - v.vmessage.read(from, end); -} -inline void MTPdecryptedMessageLayer::write(mtpBuffer &to) const { - const MTPDdecryptedMessageLayer &v(c_decryptedMessageLayer()); - v.vlayer.write(to); - v.vmessage.write(to); -} -inline MTPdecryptedMessageLayer::MTPdecryptedMessageLayer(MTPDdecryptedMessageLayer *_data) : mtpDataOwner(_data) { -} -inline MTPdecryptedMessageLayer MTP_decryptedMessageLayer(MTPint _layer, const MTPDecryptedMessage &_message) { - return MTPdecryptedMessageLayer(new MTPDdecryptedMessageLayer(_layer, _message)); -} - -inline uint32 MTPdecryptedMessage::size() const { - switch (_type) { - case mtpc_decryptedMessage: { - const MTPDdecryptedMessage &v(c_decryptedMessage()); - return v.vrandom_id.size() + v.vrandom_bytes.size() + v.vmessage.size() + v.vmedia.size(); - } - case mtpc_decryptedMessageService: { - const MTPDdecryptedMessageService &v(c_decryptedMessageService()); - return v.vrandom_id.size() + v.vrandom_bytes.size() + v.vaction.size(); - } - } - return 0; -} -inline mtpTypeId MTPdecryptedMessage::type() const { - if (!_type) throw mtpErrorUninitialized(); - return _type; -} -inline void MTPdecryptedMessage::read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons) { - if (cons != _type) setData(0); - switch (cons) { - case mtpc_decryptedMessage: _type = cons; { - if (!data) setData(new MTPDdecryptedMessage()); - MTPDdecryptedMessage &v(_decryptedMessage()); - v.vrandom_id.read(from, end); - v.vrandom_bytes.read(from, end); - v.vmessage.read(from, end); - v.vmedia.read(from, end); - } break; - case mtpc_decryptedMessageService: _type = cons; { - if (!data) setData(new MTPDdecryptedMessageService()); - MTPDdecryptedMessageService &v(_decryptedMessageService()); - v.vrandom_id.read(from, end); - v.vrandom_bytes.read(from, end); - v.vaction.read(from, end); - } break; - default: throw mtpErrorUnexpected(cons, "MTPdecryptedMessage"); - } -} -inline void MTPdecryptedMessage::write(mtpBuffer &to) const { - switch (_type) { - case mtpc_decryptedMessage: { - const MTPDdecryptedMessage &v(c_decryptedMessage()); - v.vrandom_id.write(to); - v.vrandom_bytes.write(to); - v.vmessage.write(to); - v.vmedia.write(to); - } break; - case mtpc_decryptedMessageService: { - const MTPDdecryptedMessageService &v(c_decryptedMessageService()); - v.vrandom_id.write(to); - v.vrandom_bytes.write(to); - v.vaction.write(to); - } break; - } -} -inline MTPdecryptedMessage::MTPdecryptedMessage(mtpTypeId type) : mtpDataOwner(0), _type(type) { - switch (type) { - case mtpc_decryptedMessage: setData(new MTPDdecryptedMessage()); break; - case mtpc_decryptedMessageService: setData(new MTPDdecryptedMessageService()); break; - default: throw mtpErrorBadTypeId(type, "MTPdecryptedMessage"); - } -} -inline MTPdecryptedMessage::MTPdecryptedMessage(MTPDdecryptedMessage *_data) : mtpDataOwner(_data), _type(mtpc_decryptedMessage) { -} -inline MTPdecryptedMessage::MTPdecryptedMessage(MTPDdecryptedMessageService *_data) : mtpDataOwner(_data), _type(mtpc_decryptedMessageService) { -} -inline MTPdecryptedMessage MTP_decryptedMessage(const MTPlong &_random_id, const MTPbytes &_random_bytes, const MTPstring &_message, const MTPDecryptedMessageMedia &_media) { - return MTPdecryptedMessage(new MTPDdecryptedMessage(_random_id, _random_bytes, _message, _media)); -} -inline MTPdecryptedMessage MTP_decryptedMessageService(const MTPlong &_random_id, const MTPbytes &_random_bytes, const MTPDecryptedMessageAction &_action) { - return MTPdecryptedMessage(new MTPDdecryptedMessageService(_random_id, _random_bytes, _action)); -} - -inline uint32 MTPdecryptedMessageMedia::size() const { - switch (_type) { - case mtpc_decryptedMessageMediaPhoto: { - const MTPDdecryptedMessageMediaPhoto &v(c_decryptedMessageMediaPhoto()); - return v.vthumb.size() + v.vthumb_w.size() + v.vthumb_h.size() + v.vw.size() + v.vh.size() + v.vsize.size() + v.vkey.size() + v.viv.size(); - } - case mtpc_decryptedMessageMediaVideo: { - const MTPDdecryptedMessageMediaVideo &v(c_decryptedMessageMediaVideo()); - return v.vthumb.size() + v.vthumb_w.size() + v.vthumb_h.size() + v.vduration.size() + v.vmime_type.size() + v.vw.size() + v.vh.size() + v.vsize.size() + v.vkey.size() + v.viv.size(); - } - case mtpc_decryptedMessageMediaGeoPoint: { - const MTPDdecryptedMessageMediaGeoPoint &v(c_decryptedMessageMediaGeoPoint()); - return v.vlat.size() + v.vlong.size(); - } - case mtpc_decryptedMessageMediaContact: { - const MTPDdecryptedMessageMediaContact &v(c_decryptedMessageMediaContact()); - return v.vphone_number.size() + v.vfirst_name.size() + v.vlast_name.size() + v.vuser_id.size(); - } - case mtpc_decryptedMessageMediaDocument: { - const MTPDdecryptedMessageMediaDocument &v(c_decryptedMessageMediaDocument()); - return v.vthumb.size() + v.vthumb_w.size() + v.vthumb_h.size() + v.vfile_name.size() + v.vmime_type.size() + v.vsize.size() + v.vkey.size() + v.viv.size(); - } - case mtpc_decryptedMessageMediaAudio: { - const MTPDdecryptedMessageMediaAudio &v(c_decryptedMessageMediaAudio()); - return v.vduration.size() + v.vmime_type.size() + v.vsize.size() + v.vkey.size() + v.viv.size(); - } - } - return 0; -} -inline mtpTypeId MTPdecryptedMessageMedia::type() const { - if (!_type) throw mtpErrorUninitialized(); - return _type; -} -inline void MTPdecryptedMessageMedia::read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons) { - if (cons != _type) setData(0); - switch (cons) { - case mtpc_decryptedMessageMediaEmpty: _type = cons; break; - case mtpc_decryptedMessageMediaPhoto: _type = cons; { - if (!data) setData(new MTPDdecryptedMessageMediaPhoto()); - MTPDdecryptedMessageMediaPhoto &v(_decryptedMessageMediaPhoto()); - v.vthumb.read(from, end); - v.vthumb_w.read(from, end); - v.vthumb_h.read(from, end); - v.vw.read(from, end); - v.vh.read(from, end); - v.vsize.read(from, end); - v.vkey.read(from, end); - v.viv.read(from, end); - } break; - case mtpc_decryptedMessageMediaVideo: _type = cons; { - if (!data) setData(new MTPDdecryptedMessageMediaVideo()); - MTPDdecryptedMessageMediaVideo &v(_decryptedMessageMediaVideo()); - v.vthumb.read(from, end); - v.vthumb_w.read(from, end); - v.vthumb_h.read(from, end); - v.vduration.read(from, end); - v.vmime_type.read(from, end); - v.vw.read(from, end); - v.vh.read(from, end); - v.vsize.read(from, end); - v.vkey.read(from, end); - v.viv.read(from, end); - } break; - case mtpc_decryptedMessageMediaGeoPoint: _type = cons; { - if (!data) setData(new MTPDdecryptedMessageMediaGeoPoint()); - MTPDdecryptedMessageMediaGeoPoint &v(_decryptedMessageMediaGeoPoint()); - v.vlat.read(from, end); - v.vlong.read(from, end); - } break; - case mtpc_decryptedMessageMediaContact: _type = cons; { - if (!data) setData(new MTPDdecryptedMessageMediaContact()); - MTPDdecryptedMessageMediaContact &v(_decryptedMessageMediaContact()); - v.vphone_number.read(from, end); - v.vfirst_name.read(from, end); - v.vlast_name.read(from, end); - v.vuser_id.read(from, end); - } break; - case mtpc_decryptedMessageMediaDocument: _type = cons; { - if (!data) setData(new MTPDdecryptedMessageMediaDocument()); - MTPDdecryptedMessageMediaDocument &v(_decryptedMessageMediaDocument()); - v.vthumb.read(from, end); - v.vthumb_w.read(from, end); - v.vthumb_h.read(from, end); - v.vfile_name.read(from, end); - v.vmime_type.read(from, end); - v.vsize.read(from, end); - v.vkey.read(from, end); - v.viv.read(from, end); - } break; - case mtpc_decryptedMessageMediaAudio: _type = cons; { - if (!data) setData(new MTPDdecryptedMessageMediaAudio()); - MTPDdecryptedMessageMediaAudio &v(_decryptedMessageMediaAudio()); - v.vduration.read(from, end); - v.vmime_type.read(from, end); - v.vsize.read(from, end); - v.vkey.read(from, end); - v.viv.read(from, end); - } break; - default: throw mtpErrorUnexpected(cons, "MTPdecryptedMessageMedia"); - } -} -inline void MTPdecryptedMessageMedia::write(mtpBuffer &to) const { - switch (_type) { - case mtpc_decryptedMessageMediaPhoto: { - const MTPDdecryptedMessageMediaPhoto &v(c_decryptedMessageMediaPhoto()); - v.vthumb.write(to); - v.vthumb_w.write(to); - v.vthumb_h.write(to); - v.vw.write(to); - v.vh.write(to); - v.vsize.write(to); - v.vkey.write(to); - v.viv.write(to); - } break; - case mtpc_decryptedMessageMediaVideo: { - const MTPDdecryptedMessageMediaVideo &v(c_decryptedMessageMediaVideo()); - v.vthumb.write(to); - v.vthumb_w.write(to); - v.vthumb_h.write(to); - v.vduration.write(to); - v.vmime_type.write(to); - v.vw.write(to); - v.vh.write(to); - v.vsize.write(to); - v.vkey.write(to); - v.viv.write(to); - } break; - case mtpc_decryptedMessageMediaGeoPoint: { - const MTPDdecryptedMessageMediaGeoPoint &v(c_decryptedMessageMediaGeoPoint()); - v.vlat.write(to); - v.vlong.write(to); - } break; - case mtpc_decryptedMessageMediaContact: { - const MTPDdecryptedMessageMediaContact &v(c_decryptedMessageMediaContact()); - v.vphone_number.write(to); - v.vfirst_name.write(to); - v.vlast_name.write(to); - v.vuser_id.write(to); - } break; - case mtpc_decryptedMessageMediaDocument: { - const MTPDdecryptedMessageMediaDocument &v(c_decryptedMessageMediaDocument()); - v.vthumb.write(to); - v.vthumb_w.write(to); - v.vthumb_h.write(to); - v.vfile_name.write(to); - v.vmime_type.write(to); - v.vsize.write(to); - v.vkey.write(to); - v.viv.write(to); - } break; - case mtpc_decryptedMessageMediaAudio: { - const MTPDdecryptedMessageMediaAudio &v(c_decryptedMessageMediaAudio()); - v.vduration.write(to); - v.vmime_type.write(to); - v.vsize.write(to); - v.vkey.write(to); - v.viv.write(to); - } break; - } -} -inline MTPdecryptedMessageMedia::MTPdecryptedMessageMedia(mtpTypeId type) : mtpDataOwner(0), _type(type) { - switch (type) { - case mtpc_decryptedMessageMediaEmpty: break; - case mtpc_decryptedMessageMediaPhoto: setData(new MTPDdecryptedMessageMediaPhoto()); break; - case mtpc_decryptedMessageMediaVideo: setData(new MTPDdecryptedMessageMediaVideo()); break; - case mtpc_decryptedMessageMediaGeoPoint: setData(new MTPDdecryptedMessageMediaGeoPoint()); break; - case mtpc_decryptedMessageMediaContact: setData(new MTPDdecryptedMessageMediaContact()); break; - case mtpc_decryptedMessageMediaDocument: setData(new MTPDdecryptedMessageMediaDocument()); break; - case mtpc_decryptedMessageMediaAudio: setData(new MTPDdecryptedMessageMediaAudio()); break; - default: throw mtpErrorBadTypeId(type, "MTPdecryptedMessageMedia"); - } -} -inline MTPdecryptedMessageMedia::MTPdecryptedMessageMedia(MTPDdecryptedMessageMediaPhoto *_data) : mtpDataOwner(_data), _type(mtpc_decryptedMessageMediaPhoto) { -} -inline MTPdecryptedMessageMedia::MTPdecryptedMessageMedia(MTPDdecryptedMessageMediaVideo *_data) : mtpDataOwner(_data), _type(mtpc_decryptedMessageMediaVideo) { -} -inline MTPdecryptedMessageMedia::MTPdecryptedMessageMedia(MTPDdecryptedMessageMediaGeoPoint *_data) : mtpDataOwner(_data), _type(mtpc_decryptedMessageMediaGeoPoint) { -} -inline MTPdecryptedMessageMedia::MTPdecryptedMessageMedia(MTPDdecryptedMessageMediaContact *_data) : mtpDataOwner(_data), _type(mtpc_decryptedMessageMediaContact) { -} -inline MTPdecryptedMessageMedia::MTPdecryptedMessageMedia(MTPDdecryptedMessageMediaDocument *_data) : mtpDataOwner(_data), _type(mtpc_decryptedMessageMediaDocument) { -} -inline MTPdecryptedMessageMedia::MTPdecryptedMessageMedia(MTPDdecryptedMessageMediaAudio *_data) : mtpDataOwner(_data), _type(mtpc_decryptedMessageMediaAudio) { -} -inline MTPdecryptedMessageMedia MTP_decryptedMessageMediaEmpty() { - return MTPdecryptedMessageMedia(mtpc_decryptedMessageMediaEmpty); -} -inline MTPdecryptedMessageMedia MTP_decryptedMessageMediaPhoto(const MTPbytes &_thumb, MTPint _thumb_w, MTPint _thumb_h, MTPint _w, MTPint _h, MTPint _size, const MTPbytes &_key, const MTPbytes &_iv) { - return MTPdecryptedMessageMedia(new MTPDdecryptedMessageMediaPhoto(_thumb, _thumb_w, _thumb_h, _w, _h, _size, _key, _iv)); -} -inline MTPdecryptedMessageMedia MTP_decryptedMessageMediaVideo(const MTPbytes &_thumb, MTPint _thumb_w, MTPint _thumb_h, MTPint _duration, const MTPstring &_mime_type, MTPint _w, MTPint _h, MTPint _size, const MTPbytes &_key, const MTPbytes &_iv) { - return MTPdecryptedMessageMedia(new MTPDdecryptedMessageMediaVideo(_thumb, _thumb_w, _thumb_h, _duration, _mime_type, _w, _h, _size, _key, _iv)); -} -inline MTPdecryptedMessageMedia MTP_decryptedMessageMediaGeoPoint(const MTPdouble &_lat, const MTPdouble &_long) { - return MTPdecryptedMessageMedia(new MTPDdecryptedMessageMediaGeoPoint(_lat, _long)); -} -inline MTPdecryptedMessageMedia MTP_decryptedMessageMediaContact(const MTPstring &_phone_number, const MTPstring &_first_name, const MTPstring &_last_name, MTPint _user_id) { - return MTPdecryptedMessageMedia(new MTPDdecryptedMessageMediaContact(_phone_number, _first_name, _last_name, _user_id)); -} -inline MTPdecryptedMessageMedia MTP_decryptedMessageMediaDocument(const MTPbytes &_thumb, MTPint _thumb_w, MTPint _thumb_h, const MTPstring &_file_name, const MTPstring &_mime_type, MTPint _size, const MTPbytes &_key, const MTPbytes &_iv) { - return MTPdecryptedMessageMedia(new MTPDdecryptedMessageMediaDocument(_thumb, _thumb_w, _thumb_h, _file_name, _mime_type, _size, _key, _iv)); -} -inline MTPdecryptedMessageMedia MTP_decryptedMessageMediaAudio(MTPint _duration, const MTPstring &_mime_type, MTPint _size, const MTPbytes &_key, const MTPbytes &_iv) { - return MTPdecryptedMessageMedia(new MTPDdecryptedMessageMediaAudio(_duration, _mime_type, _size, _key, _iv)); -} - -inline uint32 MTPdecryptedMessageAction::size() const { - switch (_type) { - case mtpc_decryptedMessageActionSetMessageTTL: { - const MTPDdecryptedMessageActionSetMessageTTL &v(c_decryptedMessageActionSetMessageTTL()); - return v.vttl_seconds.size(); - } - case mtpc_decryptedMessageActionReadMessages: { - const MTPDdecryptedMessageActionReadMessages &v(c_decryptedMessageActionReadMessages()); - return v.vrandom_ids.size(); - } - case mtpc_decryptedMessageActionDeleteMessages: { - const MTPDdecryptedMessageActionDeleteMessages &v(c_decryptedMessageActionDeleteMessages()); - return v.vrandom_ids.size(); - } - case mtpc_decryptedMessageActionScreenshotMessages: { - const MTPDdecryptedMessageActionScreenshotMessages &v(c_decryptedMessageActionScreenshotMessages()); - return v.vrandom_ids.size(); - } - case mtpc_decryptedMessageActionNotifyLayer: { - const MTPDdecryptedMessageActionNotifyLayer &v(c_decryptedMessageActionNotifyLayer()); - return v.vlayer.size(); - } - } - return 0; -} -inline mtpTypeId MTPdecryptedMessageAction::type() const { - if (!_type) throw mtpErrorUninitialized(); - return _type; -} -inline void MTPdecryptedMessageAction::read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons) { - if (cons != _type) setData(0); - switch (cons) { - case mtpc_decryptedMessageActionSetMessageTTL: _type = cons; { - if (!data) setData(new MTPDdecryptedMessageActionSetMessageTTL()); - MTPDdecryptedMessageActionSetMessageTTL &v(_decryptedMessageActionSetMessageTTL()); - v.vttl_seconds.read(from, end); - } break; - case mtpc_decryptedMessageActionReadMessages: _type = cons; { - if (!data) setData(new MTPDdecryptedMessageActionReadMessages()); - MTPDdecryptedMessageActionReadMessages &v(_decryptedMessageActionReadMessages()); - v.vrandom_ids.read(from, end); - } break; - case mtpc_decryptedMessageActionDeleteMessages: _type = cons; { - if (!data) setData(new MTPDdecryptedMessageActionDeleteMessages()); - MTPDdecryptedMessageActionDeleteMessages &v(_decryptedMessageActionDeleteMessages()); - v.vrandom_ids.read(from, end); - } break; - case mtpc_decryptedMessageActionScreenshotMessages: _type = cons; { - if (!data) setData(new MTPDdecryptedMessageActionScreenshotMessages()); - MTPDdecryptedMessageActionScreenshotMessages &v(_decryptedMessageActionScreenshotMessages()); - v.vrandom_ids.read(from, end); - } break; - case mtpc_decryptedMessageActionFlushHistory: _type = cons; break; - case mtpc_decryptedMessageActionNotifyLayer: _type = cons; { - if (!data) setData(new MTPDdecryptedMessageActionNotifyLayer()); - MTPDdecryptedMessageActionNotifyLayer &v(_decryptedMessageActionNotifyLayer()); - v.vlayer.read(from, end); - } break; - default: throw mtpErrorUnexpected(cons, "MTPdecryptedMessageAction"); - } -} -inline void MTPdecryptedMessageAction::write(mtpBuffer &to) const { - switch (_type) { - case mtpc_decryptedMessageActionSetMessageTTL: { - const MTPDdecryptedMessageActionSetMessageTTL &v(c_decryptedMessageActionSetMessageTTL()); - v.vttl_seconds.write(to); - } break; - case mtpc_decryptedMessageActionReadMessages: { - const MTPDdecryptedMessageActionReadMessages &v(c_decryptedMessageActionReadMessages()); - v.vrandom_ids.write(to); - } break; - case mtpc_decryptedMessageActionDeleteMessages: { - const MTPDdecryptedMessageActionDeleteMessages &v(c_decryptedMessageActionDeleteMessages()); - v.vrandom_ids.write(to); - } break; - case mtpc_decryptedMessageActionScreenshotMessages: { - const MTPDdecryptedMessageActionScreenshotMessages &v(c_decryptedMessageActionScreenshotMessages()); - v.vrandom_ids.write(to); - } break; - case mtpc_decryptedMessageActionNotifyLayer: { - const MTPDdecryptedMessageActionNotifyLayer &v(c_decryptedMessageActionNotifyLayer()); - v.vlayer.write(to); - } break; - } -} -inline MTPdecryptedMessageAction::MTPdecryptedMessageAction(mtpTypeId type) : mtpDataOwner(0), _type(type) { - switch (type) { - case mtpc_decryptedMessageActionSetMessageTTL: setData(new MTPDdecryptedMessageActionSetMessageTTL()); break; - case mtpc_decryptedMessageActionReadMessages: setData(new MTPDdecryptedMessageActionReadMessages()); break; - case mtpc_decryptedMessageActionDeleteMessages: setData(new MTPDdecryptedMessageActionDeleteMessages()); break; - case mtpc_decryptedMessageActionScreenshotMessages: setData(new MTPDdecryptedMessageActionScreenshotMessages()); break; - case mtpc_decryptedMessageActionFlushHistory: break; - case mtpc_decryptedMessageActionNotifyLayer: setData(new MTPDdecryptedMessageActionNotifyLayer()); break; - default: throw mtpErrorBadTypeId(type, "MTPdecryptedMessageAction"); - } -} -inline MTPdecryptedMessageAction::MTPdecryptedMessageAction(MTPDdecryptedMessageActionSetMessageTTL *_data) : mtpDataOwner(_data), _type(mtpc_decryptedMessageActionSetMessageTTL) { -} -inline MTPdecryptedMessageAction::MTPdecryptedMessageAction(MTPDdecryptedMessageActionReadMessages *_data) : mtpDataOwner(_data), _type(mtpc_decryptedMessageActionReadMessages) { -} -inline MTPdecryptedMessageAction::MTPdecryptedMessageAction(MTPDdecryptedMessageActionDeleteMessages *_data) : mtpDataOwner(_data), _type(mtpc_decryptedMessageActionDeleteMessages) { -} -inline MTPdecryptedMessageAction::MTPdecryptedMessageAction(MTPDdecryptedMessageActionScreenshotMessages *_data) : mtpDataOwner(_data), _type(mtpc_decryptedMessageActionScreenshotMessages) { -} -inline MTPdecryptedMessageAction::MTPdecryptedMessageAction(MTPDdecryptedMessageActionNotifyLayer *_data) : mtpDataOwner(_data), _type(mtpc_decryptedMessageActionNotifyLayer) { -} -inline MTPdecryptedMessageAction MTP_decryptedMessageActionSetMessageTTL(MTPint _ttl_seconds) { - return MTPdecryptedMessageAction(new MTPDdecryptedMessageActionSetMessageTTL(_ttl_seconds)); -} -inline MTPdecryptedMessageAction MTP_decryptedMessageActionReadMessages(const MTPVector<MTPlong> &_random_ids) { - return MTPdecryptedMessageAction(new MTPDdecryptedMessageActionReadMessages(_random_ids)); -} -inline MTPdecryptedMessageAction MTP_decryptedMessageActionDeleteMessages(const MTPVector<MTPlong> &_random_ids) { - return MTPdecryptedMessageAction(new MTPDdecryptedMessageActionDeleteMessages(_random_ids)); -} -inline MTPdecryptedMessageAction MTP_decryptedMessageActionScreenshotMessages(const MTPVector<MTPlong> &_random_ids) { - return MTPdecryptedMessageAction(new MTPDdecryptedMessageActionScreenshotMessages(_random_ids)); -} -inline MTPdecryptedMessageAction MTP_decryptedMessageActionFlushHistory() { - return MTPdecryptedMessageAction(mtpc_decryptedMessageActionFlushHistory); -} -inline MTPdecryptedMessageAction MTP_decryptedMessageActionNotifyLayer(MTPint _layer) { - return MTPdecryptedMessageAction(new MTPDdecryptedMessageActionNotifyLayer(_layer)); -} - inline uint32 MTPmessages_dhConfig::size() const { switch (_type) { case mtpc_messages_dhConfigNotModified: { @@ -21995,6 +21482,134 @@ inline MTPnotifyPeer MTP_notifyAll() { return MTPnotifyPeer(mtpc_notifyAll); } +inline uint32 MTPsendMessageAction::size() const { + return 0; +} +inline mtpTypeId MTPsendMessageAction::type() const { + if (!_type) throw mtpErrorUninitialized(); + return _type; +} +inline void MTPsendMessageAction::read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons) { + switch (cons) { + case mtpc_sendMessageTypingAction: _type = cons; break; + case mtpc_sendMessageCancelAction: _type = cons; break; + case mtpc_sendMessageRecordVideoAction: _type = cons; break; + case mtpc_sendMessageUploadVideoAction: _type = cons; break; + case mtpc_sendMessageRecordAudioAction: _type = cons; break; + case mtpc_sendMessageUploadAudioAction: _type = cons; break; + case mtpc_sendMessageUploadPhotoAction: _type = cons; break; + case mtpc_sendMessageUploadDocumentAction: _type = cons; break; + case mtpc_sendMessageGeoLocationAction: _type = cons; break; + case mtpc_sendMessageChooseContactAction: _type = cons; break; + default: throw mtpErrorUnexpected(cons, "MTPsendMessageAction"); + } +} +inline void MTPsendMessageAction::write(mtpBuffer &to) const { + switch (_type) { + } +} +inline MTPsendMessageAction::MTPsendMessageAction(mtpTypeId type) : _type(type) { + switch (type) { + case mtpc_sendMessageTypingAction: break; + case mtpc_sendMessageCancelAction: break; + case mtpc_sendMessageRecordVideoAction: break; + case mtpc_sendMessageUploadVideoAction: break; + case mtpc_sendMessageRecordAudioAction: break; + case mtpc_sendMessageUploadAudioAction: break; + case mtpc_sendMessageUploadPhotoAction: break; + case mtpc_sendMessageUploadDocumentAction: break; + case mtpc_sendMessageGeoLocationAction: break; + case mtpc_sendMessageChooseContactAction: break; + default: throw mtpErrorBadTypeId(type, "MTPsendMessageAction"); + } +} +inline MTPsendMessageAction MTP_sendMessageTypingAction() { + return MTPsendMessageAction(mtpc_sendMessageTypingAction); +} +inline MTPsendMessageAction MTP_sendMessageCancelAction() { + return MTPsendMessageAction(mtpc_sendMessageCancelAction); +} +inline MTPsendMessageAction MTP_sendMessageRecordVideoAction() { + return MTPsendMessageAction(mtpc_sendMessageRecordVideoAction); +} +inline MTPsendMessageAction MTP_sendMessageUploadVideoAction() { + return MTPsendMessageAction(mtpc_sendMessageUploadVideoAction); +} +inline MTPsendMessageAction MTP_sendMessageRecordAudioAction() { + return MTPsendMessageAction(mtpc_sendMessageRecordAudioAction); +} +inline MTPsendMessageAction MTP_sendMessageUploadAudioAction() { + return MTPsendMessageAction(mtpc_sendMessageUploadAudioAction); +} +inline MTPsendMessageAction MTP_sendMessageUploadPhotoAction() { + return MTPsendMessageAction(mtpc_sendMessageUploadPhotoAction); +} +inline MTPsendMessageAction MTP_sendMessageUploadDocumentAction() { + return MTPsendMessageAction(mtpc_sendMessageUploadDocumentAction); +} +inline MTPsendMessageAction MTP_sendMessageGeoLocationAction() { + return MTPsendMessageAction(mtpc_sendMessageGeoLocationAction); +} +inline MTPsendMessageAction MTP_sendMessageChooseContactAction() { + return MTPsendMessageAction(mtpc_sendMessageChooseContactAction); +} + +inline MTPcontactFound::MTPcontactFound() : mtpDataOwner(new MTPDcontactFound()) { +} + +inline uint32 MTPcontactFound::size() const { + const MTPDcontactFound &v(c_contactFound()); + return v.vuser_id.size(); +} +inline mtpTypeId MTPcontactFound::type() const { + return mtpc_contactFound; +} +inline void MTPcontactFound::read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons) { + if (cons != mtpc_contactFound) throw mtpErrorUnexpected(cons, "MTPcontactFound"); + + if (!data) setData(new MTPDcontactFound()); + MTPDcontactFound &v(_contactFound()); + v.vuser_id.read(from, end); +} +inline void MTPcontactFound::write(mtpBuffer &to) const { + const MTPDcontactFound &v(c_contactFound()); + v.vuser_id.write(to); +} +inline MTPcontactFound::MTPcontactFound(MTPDcontactFound *_data) : mtpDataOwner(_data) { +} +inline MTPcontactFound MTP_contactFound(MTPint _user_id) { + return MTPcontactFound(new MTPDcontactFound(_user_id)); +} + +inline MTPcontacts_found::MTPcontacts_found() : mtpDataOwner(new MTPDcontacts_found()) { +} + +inline uint32 MTPcontacts_found::size() const { + const MTPDcontacts_found &v(c_contacts_found()); + return v.vresults.size() + v.vusers.size(); +} +inline mtpTypeId MTPcontacts_found::type() const { + return mtpc_contacts_found; +} +inline void MTPcontacts_found::read(const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons) { + if (cons != mtpc_contacts_found) throw mtpErrorUnexpected(cons, "MTPcontacts_found"); + + if (!data) setData(new MTPDcontacts_found()); + MTPDcontacts_found &v(_contacts_found()); + v.vresults.read(from, end); + v.vusers.read(from, end); +} +inline void MTPcontacts_found::write(mtpBuffer &to) const { + const MTPDcontacts_found &v(c_contacts_found()); + v.vresults.write(to); + v.vusers.write(to); +} +inline MTPcontacts_found::MTPcontacts_found(MTPDcontacts_found *_data) : mtpDataOwner(_data) { +} +inline MTPcontacts_found MTP_contacts_found(const MTPVector<MTPContactFound> &_results, const MTPVector<MTPUser> &_users) { + return MTPcontacts_found(new MTPDcontacts_found(_results, _users)); +} + // Human-readable text serialization #if (defined _DEBUG || defined _WITH_DEBUG) diff --git a/Telegram/SourceFiles/mtproto/scheme.tl b/Telegram/SourceFiles/mtproto/scheme.tl index 5afcae92d7..f4f9a7db56 100644 --- a/Telegram/SourceFiles/mtproto/scheme.tl +++ b/Telegram/SourceFiles/mtproto/scheme.tl @@ -31,6 +31,9 @@ //invokeWithLayer13#427c8ea2 query:!X = X; //invokeWithLayer14#2b9b08fa query:!X = X; //invokeWithLayer15#b4418b64 query:!X = X; +//invokeWithLayer16#cf5f0987 query:!X = X; +//invokeWithLayer17#50858a19 query:!X = X; +//invokeWithLayer18#1c900537 query:!X = X; /////////////////////////////// /// Authorization key creation @@ -123,8 +126,6 @@ register.saveDeveloperInfo#9a5f6e95 name:string email:string phone_number:string ---types--- - - inputPeerEmpty#7f3b18ea = InputPeer; inputPeerSelf#7da07ec9 = InputPeer; inputPeerContact#1023dbe8 user_id:int = InputPeer; @@ -188,11 +189,11 @@ fileLocationUnavailable#7c596b46 volume_id:long local_id:int secret:long = FileL fileLocation#53d69076 dc_id:int volume_id:long local_id:int secret:long = FileLocation; userEmpty#200250ba id:int = User; -userSelf#720535ec id:int first_name:string last_name:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User; -userContact#f2fb8319 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User; -userRequest#22e8ceb0 id:int first_name:string last_name:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User; -userForeign#5214c89d id:int first_name:string last_name:string access_hash:long photo:UserProfilePhoto status:UserStatus = User; -userDeleted#b29ad7cc id:int first_name:string last_name:string = User; +userSelf#7007b451 id:int first_name:string last_name:string username:string phone:string photo:UserProfilePhoto status:UserStatus inactive:Bool = User; +userContact#cab35e18 id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User; +userRequest#d9ccc4ef id:int first_name:string last_name:string username:string access_hash:long phone:string photo:UserProfilePhoto status:UserStatus = User; +userForeign#75cf7a8 id:int first_name:string last_name:string username:string access_hash:long photo:UserProfilePhoto status:UserStatus = User; +userDeleted#d6016d7a id:int first_name:string last_name:string username:string = User; userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto; userProfilePhoto#d559d8c8 photo_id:long photo_small:FileLocation photo_big:FileLocation = UserProfilePhoto; @@ -216,9 +217,9 @@ chatPhotoEmpty#37c1011c = ChatPhoto; chatPhoto#6153276a photo_small:FileLocation photo_big:FileLocation = ChatPhoto; messageEmpty#83e5de54 id:int = Message; -message#22eb6aba id:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message; -messageForwarded#5f46804 id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer out:Bool unread:Bool date:int message:string media:MessageMedia = Message; -messageService#9f8d60bb id:int from_id:int to_id:Peer out:Bool unread:Bool date:int action:MessageAction = Message; +message#567699b3 flags:int id:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message; +messageForwarded#a367e716 flags:int id:int fwd_from_id:int fwd_date:int from_id:int to_id:Peer date:int message:string media:MessageMedia = Message; +messageService#1d86f70e flags:int id:int from_id:int to_id:Peer date:int action:MessageAction = Message; messageMediaEmpty#3ded6320 = MessageMedia; messageMediaPhoto#c8c45a2a photo:Photo = MessageMedia; @@ -284,8 +285,6 @@ importedContact#d0028438 user_id:int client_id:long = ImportedContact; contactBlocked#561bc879 user_id:int date:int = ContactBlocked; -contactFound#ea879f95 user_id:int = ContactFound; - contactSuggested#3de191a1 user_id:int mutual_contacts:int = ContactSuggested; contactStatus#aa77b873 user_id:int expires:int = ContactStatus; @@ -310,8 +309,6 @@ contacts.importedContacts#ad524315 imported:Vector<ImportedContact> retry_contac contacts.blocked#1c138d15 blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked; contacts.blockedSlice#900802a1 count:int blocked:Vector<ContactBlocked> users:Vector<User> = contacts.Blocked; -contacts.found#566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found; - contacts.suggested#5649dcc5 results:Vector<ContactSuggested> users:Vector<User> = contacts.Suggested; messages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs; @@ -349,11 +346,11 @@ updateMessageID#4e90bfd6 id:int random_id:long = Update; updateReadMessages#c6649e31 messages:Vector<int> pts:int = Update; updateDeleteMessages#a92bfe26 messages:Vector<int> pts:int = Update; updateRestoreMessages#d15de04d messages:Vector<int> pts:int = Update; -updateUserTyping#6baa8508 user_id:int = Update; -updateChatUserTyping#3c46cfe6 chat_id:int user_id:int = Update; +updateUserTyping#5c486927 user_id:int action:SendMessageAction = Update; +updateChatUserTyping#9a65ea1f chat_id:int user_id:int action:SendMessageAction = Update; updateChatParticipants#7761198 participants:ChatParticipants = Update; updateUserStatus#1bfbd823 user_id:int status:UserStatus = Update; -updateUserName#da22d9ad user_id:int first_name:string last_name:string = 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; updateContactRegistered#2575bbb9 user_id:int date:int = Update; updateContactLink#51a48a9a user_id:int my_link:contacts.MyLink foreign_link:contacts.ForeignLink = Update; @@ -446,19 +443,6 @@ inputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation encryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage; encryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage; -decryptedMessageLayer#99a438cf layer:int message:DecryptedMessage = DecryptedMessageLayer; - -decryptedMessage#1f814f1f random_id:long random_bytes:bytes message:string media:DecryptedMessageMedia = DecryptedMessage; -decryptedMessageService#aa48327d random_id:long random_bytes:bytes action:DecryptedMessageAction = DecryptedMessage; - -decryptedMessageMediaEmpty#89f5c4a = DecryptedMessageMedia; -decryptedMessageMediaPhoto#32798a8c thumb:bytes thumb_w:int thumb_h:int w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia; -decryptedMessageMediaVideo#524a415d thumb:bytes thumb_w:int thumb_h:int duration:int mime_type:string w:int h:int size:int key:bytes iv:bytes = DecryptedMessageMedia; -decryptedMessageMediaGeoPoint#35480a59 lat:double long:double = DecryptedMessageMedia; -decryptedMessageMediaContact#588a0a97 phone_number:string first_name:string last_name:string user_id:int = DecryptedMessageMedia; - -decryptedMessageActionSetMessageTTL#a1733aec ttl_seconds:int = DecryptedMessageAction; - messages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig; messages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig; @@ -491,9 +475,6 @@ inputDocument#18798952 id:long access_hash:long = InputDocument; inputAudioFileLocation#74dc404d id:long access_hash:long = InputFileLocation; inputDocumentFileLocation#4e45abe9 id:long access_hash:long = InputFileLocation; -decryptedMessageMediaDocument#b095434b thumb:bytes thumb_w:int thumb_h:int file_name:string mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia; -decryptedMessageMediaAudio#57e0a9cb duration:int mime_type:string size:int key:bytes iv:bytes = DecryptedMessageMedia; - audioEmpty#586988d8 id:long = Audio; audio#c7ac6496 id:long access_hash:long user_id:int date:int duration:int mime_type:string size:int dc_id:int = Audio; @@ -502,12 +483,6 @@ document#9efc6326 id:long access_hash:long user_id:int date:int file_name:string help.support#17c6b5f6 phone_number:string user:User = help.Support; -decryptedMessageActionReadMessages#c4f40be random_ids:Vector<long> = DecryptedMessageAction; -decryptedMessageActionDeleteMessages#65614304 random_ids:Vector<long> = DecryptedMessageAction; -decryptedMessageActionScreenshotMessages#8ac1f475 random_ids:Vector<long> = DecryptedMessageAction; -decryptedMessageActionFlushHistory#6719e45c = DecryptedMessageAction; -decryptedMessageActionNotifyLayer#f3048883 layer:int = DecryptedMessageAction; - notifyPeer#9fd40bd8 peer:Peer = NotifyPeer; notifyUsers#b4c83b4c = NotifyPeer; notifyChats#c007cec3 = NotifyPeer; @@ -516,6 +491,25 @@ notifyAll#74d07c60 = NotifyPeer; updateUserBlocked#80ece81a user_id:int blocked:Bool = Update; updateNotifySettings#bec268ef peer:NotifyPeer notify_settings:PeerNotifySettings = Update; +auth.sentAppCode#e325edcf phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode; + +sendMessageTypingAction#16bf744e = SendMessageAction; +sendMessageCancelAction#fd5ec8f5 = SendMessageAction; +sendMessageRecordVideoAction#a187d66f = SendMessageAction; +sendMessageUploadVideoAction#92042ff7 = SendMessageAction; +sendMessageRecordAudioAction#d52f73f7 = SendMessageAction; +sendMessageUploadAudioAction#e6ac8a6f = SendMessageAction; +sendMessageUploadPhotoAction#990a3c1a = SendMessageAction; +sendMessageUploadDocumentAction#8faee98e = SendMessageAction; +sendMessageGeoLocationAction#176f8ba1 = SendMessageAction; +sendMessageChooseContactAction#628cbc6f = SendMessageAction; + +contactFound#ea879f95 user_id:int = ContactFound; + +contacts.found#566000e results:Vector<ContactFound> users:Vector<User> = contacts.Found; + +updateServiceNotification#382dd3e4 type:string message:string media:MessageMedia popup:Bool = Update; + ---functions--- invokeAfterMsg#cb9f372d msg_id:long query:!X = X; @@ -532,6 +526,7 @@ auth.resetAuthorizations#9fab0d1a = Bool; auth.sendInvites#771c1d97 phone_numbers:Vector<string> message:string = Bool; auth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization; auth.importAuthorization#e3ef9613 id:int bytes:bytes = auth.Authorization; +auth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool; account.registerDevice#446c712c token_type:int token:string device_model:string system_version:string app_version:string app_sandbox:Bool lang_code:string = Bool; account.unregisterDevice#65c55b40 token_type:int token:string = Bool; @@ -548,24 +543,25 @@ users.getFullUser#ca30a5b1 id:InputUser = UserFull; contacts.getStatuses#c4a353ee = Vector<ContactStatus>; contacts.getContacts#22c6aa08 hash:string = contacts.Contacts; contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts; -contacts.search#11f812d8 q:string limit:int = contacts.Found; contacts.getSuggested#cd773428 limit:int = contacts.Suggested; contacts.deleteContact#8e953744 id:InputUser = contacts.Link; contacts.deleteContacts#59ab389e id:Vector<InputUser> = Bool; contacts.block#332b49fc id:InputUser = Bool; contacts.unblock#e54100bd id:InputUser = Bool; contacts.getBlocked#f57c350f offset:int limit:int = contacts.Blocked; +contacts.exportCard#84e53737 = Vector<int>; +contacts.importCard#4fe196fe export_card:Vector<int> = User; messages.getMessages#4222fa74 id:Vector<int> = messages.Messages; messages.getDialogs#eccf1df6 offset:int max_id:int limit:int = messages.Dialogs; messages.getHistory#92a1df2f peer:InputPeer offset:int max_id:int limit:int = messages.Messages; messages.search#7e9f2ab peer:InputPeer q:string filter:MessagesFilter min_date:int max_date:int offset:int max_id:int limit:int = messages.Messages; -messages.readHistory#b04f2510 peer:InputPeer max_id:int offset:int = messages.AffectedHistory; +messages.readHistory#eed884c6 peer:InputPeer max_id:int offset:int read_contents:Bool = messages.AffectedHistory; messages.deleteHistory#f4f8fb61 peer:InputPeer offset:int = messages.AffectedHistory; messages.deleteMessages#14f2dd0a id:Vector<int> = Vector<int>; messages.restoreMessages#395f9d7e id:Vector<int> = Vector<int>; messages.receivedMessages#28abcb68 max_id:int = Vector<int>; -messages.setTyping#719839e9 peer:InputPeer typing:Bool = Bool; +messages.setTyping#a3825e50 peer:InputPeer action:SendMessageAction = Bool; messages.sendMessage#4cde0aab peer:InputPeer message:string random_id:long = messages.SentMessage; messages.sendMedia#a3c85d76 peer:InputPeer media:InputMedia random_id:long = messages.StatedMessage; messages.forwardMessages#514cd10f peer:InputPeer id:Vector<int> = messages.StatedMessages; @@ -626,3 +622,12 @@ upload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int initConnection#69796de9 api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X; help.getSupport#9cdf08cd = help.Support; + +auth.sendSms#da9f3e8 phone_number:string phone_code_hash:string = Bool; + +messages.readMessageContents#354b5bc2 id:Vector<int> = Vector<int>; + +account.checkUsername#2714d86c username:string = Bool; +account.updateUsername#3e0bdd7c username:string = User; + +contacts.search#11f812d8 q:string limit:int = contacts.Found; diff --git a/Telegram/SourceFiles/profilewidget.cpp b/Telegram/SourceFiles/profilewidget.cpp index 0dce59895e..bfbfe8361c 100644 --- a/Telegram/SourceFiles/profilewidget.cpp +++ b/Telegram/SourceFiles/profilewidget.cpp @@ -414,21 +414,27 @@ void ProfileInner::paintEvent(QPaintEvent *e) { _nameText.drawElided(p, _left + st::profilePhotoSize + st::profileNameLeft, top + st::profileNameTop, _width - st::profilePhotoSize - st::profileNameLeft); p.setFont(st::profileStatusFont->f); + int32 addbyname = 0; + if (_peerUser && !_peerUser->username.isEmpty()) { + addbyname = st::profileStatusTop + st::linkFont->ascent - (st::profileNameTop + st::profileNameFont->ascent); + p.setPen(st::black->p); + p.drawText(_left + st::profilePhotoSize + st::profileStatusLeft, top + st::profileStatusTop + st::linkFont->ascent, '@' + _peerUser->username); + } p.setPen((_peerUser && _peerUser->onlineTill >= l_time ? st::profileOnlineColor : st::profileOfflineColor)->p); - p.drawText(_left + st::profilePhotoSize + st::profileStatusLeft, top + st::profileStatusTop + st::linkFont->ascent, _onlineText); + p.drawText(_left + st::profilePhotoSize + st::profileStatusLeft, top + addbyname + st::profileStatusTop + st::linkFont->ascent, _onlineText); if (!_cancelPhoto.isHidden()) { - p.drawText(_left + st::profilePhotoSize + st::profilePhoneLeft, _cancelPhoto.y() + st::linkFont->ascent, lang(lng_settings_uploading_photo)); + p.drawText(_left + st::profilePhotoSize + st::profilePhoneLeft, _cancelPhoto.y() + addbyname + st::linkFont->ascent, lang(lng_settings_uploading_photo)); } if (!_errorText.isEmpty()) { p.setFont(st::setErrFont->f); p.setPen(st::setErrColor->p); - p.drawText(_left + st::profilePhotoSize + st::profilePhoneLeft, top + st::profilePhoneTop + st::profilePhoneFont->ascent, _errorText); + p.drawText(_left + st::profilePhotoSize + st::profilePhoneLeft, top + addbyname + st::profilePhoneTop + st::profilePhoneFont->ascent, _errorText); } if (!_phoneText.isEmpty()) { p.setPen(st::black->p); p.setFont(st::linkFont->f); - p.drawText(_left + st::profilePhotoSize + st::profilePhoneLeft, top + st::profilePhoneTop + st::profilePhoneFont->ascent, _phoneText); + p.drawText(_left + st::profilePhotoSize + st::profilePhoneLeft, top + addbyname + st::profilePhoneTop + st::profilePhoneFont->ascent, _phoneText); } top += st::profilePhotoSize; top += st::profileButtonTop; diff --git a/Telegram/SourceFiles/settingswidget.cpp b/Telegram/SourceFiles/settingswidget.cpp index 65680bc82b..2320d20e20 100644 --- a/Telegram/SourceFiles/settingswidget.cpp +++ b/Telegram/SourceFiles/settingswidget.cpp @@ -28,6 +28,7 @@ Copyright (c) 2014 John Preston, https://tdesktop.com #include "boxes/emojibox.h" #include "boxes/confirmbox.h" #include "boxes/downloadpathbox.h" +#include "boxes/usernamebox.h" #include "gui/filedialog.h" Slider::Slider(QWidget *parent, const style::slider &st, int32 count, int32 sel) : QWidget(parent), @@ -96,14 +97,19 @@ bool scaleIs(DBIScale scale) { } SettingsInner::SettingsInner(SettingsWidget *parent) : QWidget(parent), - _self(App::self()), - // profile - _nameCache(_self ? _self->name : QString()), - _phoneText(_self ? App::formatPhone(_self->phone) : QString()), + _nameCache(self() ? self()->name : QString()), _uploadPhoto(this, lang(lng_settings_upload), st::btnSetUpload), _cancelPhoto(this, lang(lng_cancel)), _nameOver(false), _photoOver(false), a_photo(0), + // contact info + _phoneText(self() ? App::formatPhone(self()->phone) : QString()), + _usernameText((self() && !self()->username.isEmpty()) ? ('@' + self()->username) : QString()), + _phoneLeft(st::linkFont->m.width(lang(lng_settings_phone_number)) + st::linkFont->spacew), + _usernameLeft(st::linkFont->m.width(lang(lng_settings_username)) + st::linkFont->spacew), + _chooseUsername(this, lang(lng_settings_choose_username)), + _changeUsername(this, lang(lng_settings_change_username)), + // notifications _desktopNotify(this, lang(lng_settings_desktop_notify), cDesktopNotify()), _senderName(this, lang(lng_settings_show_name), cNotifyView() <= dbinvShowName), @@ -152,11 +158,11 @@ SettingsInner::SettingsInner(SettingsWidget *parent) : QWidget(parent), _logOut(this, lang(lng_settings_logout), st::btnLogout), _resetDone(false) { - if (_self) { + if (self()) { _nameText.setText(st::setNameFont, _nameCache, _textNameOptions); - PhotoData *selfPhoto = _self->photoId ? App::photo(_self->photoId) : 0; - if (selfPhoto && selfPhoto->date) _photoLink = TextLinkPtr(new PhotoLink(selfPhoto, _self)); - MTP::send(MTPusers_GetFullUser(_self->inputUser), rpcDone(&SettingsInner::gotFullSelf)); + PhotoData *selfPhoto = self()->photoId ? App::photo(self()->photoId) : 0; + if (selfPhoto && selfPhoto->date) _photoLink = TextLinkPtr(new PhotoLink(selfPhoto, self())); + MTP::send(MTPusers_GetFullUser(self()->inputUser), rpcDone(&SettingsInner::gotFullSelf)); connect(App::main(), SIGNAL(peerPhotoChanged(PeerData *)), this, SLOT(peerUpdated(PeerData *))); connect(App::main(), SIGNAL(peerNameChanged(PeerData *, const PeerData::Names &, const PeerData::NameFirstChars &)), this, SLOT(peerUpdated(PeerData *))); @@ -169,6 +175,10 @@ SettingsInner::SettingsInner(SettingsWidget *parent) : QWidget(parent), connect(App::app(), SIGNAL(peerPhotoDone(PeerId)), this, SLOT(onPhotoUpdateDone(PeerId))); connect(App::app(), SIGNAL(peerPhotoFail(PeerId)), this, SLOT(onPhotoUpdateFail(PeerId))); + // contact info + connect(&_chooseUsername, SIGNAL(clicked()), this, SLOT(onUsername())); + connect(&_changeUsername, SIGNAL(clicked()), this, SLOT(onUsername())); + // notifications _senderName.setDisabled(!_desktopNotify.checked()); _messagePreview.setDisabled(_senderName.disabled() || !_senderName.checked()); @@ -253,21 +263,21 @@ SettingsInner::SettingsInner(SettingsWidget *parent) : QWidget(parent), } void SettingsInner::peerUpdated(PeerData *data) { - if (_self && data == _self) { - if (_self->photoId) { - PhotoData *selfPhoto = App::photo(_self->photoId); + if (self() && data == self()) { + if (self()->photoId) { + PhotoData *selfPhoto = App::photo(self()->photoId); if (selfPhoto->date) { - _photoLink = TextLinkPtr(new PhotoLink(selfPhoto, _self)); + _photoLink = TextLinkPtr(new PhotoLink(selfPhoto, self())); } else { _photoLink = TextLinkPtr(); - MTP::send(MTPusers_GetFullUser(_self->inputUser), rpcDone(&SettingsInner::gotFullSelf)); + MTP::send(MTPusers_GetFullUser(self()->inputUser), rpcDone(&SettingsInner::gotFullSelf)); } } else { _photoLink = TextLinkPtr(); } - if (_nameCache != _self->name) { - _nameCache = _self->name; + if (_nameCache != self()->name) { + _nameCache = self()->name; _nameText.setText(st::setNameFont, _nameCache, _textNameOptions); update(); } @@ -280,7 +290,7 @@ void SettingsInner::paintEvent(QPaintEvent *e) { p.setClipRect(e->rect()); int32 top = 0; - if (_self) { + if (self()) { // profile top += st::setTop; @@ -288,14 +298,11 @@ void SettingsInner::paintEvent(QPaintEvent *e) { if (!_cancelPhoto.isHidden()) { p.setFont(st::linkFont->f); p.setPen(st::black->p); - p.drawText(_uploadPhoto.x() + st::setPhoneLeft, _cancelPhoto.y() + st::linkFont->ascent, lang(lng_settings_uploading_photo)); + p.drawText(_uploadPhoto.x() + st::setStatusLeft, _cancelPhoto.y() + st::linkFont->ascent, lang(lng_settings_uploading_photo)); } - p.setFont(st::setPhoneFont->f); - p.setPen(st::setPhoneColor->p); - p.drawText(_uploadPhoto.x() + st::setPhoneLeft, top + st::setPhoneTop + st::setPhoneFont->ascent, _phoneText); if (_photoLink) { - p.drawPixmap(_left, top, _self->photo->pix(st::setPhotoSize)); + p.drawPixmap(_left, top, self()->photo->pix(st::setPhotoSize)); } else { if (a_photo.current() < 1) { p.drawPixmap(QPoint(_left, top), App::sprite(), st::setPhotoImg); @@ -306,6 +313,12 @@ void SettingsInner::paintEvent(QPaintEvent *e) { p.setOpacity(1); } } + + p.setFont(st::setStatusFont->f); + bool connecting = App::wnd()->connectingVisible(); + p.setPen((connecting ? st::profileOfflineColor : st::profileOnlineColor)->p); + p.drawText(_uploadPhoto.x() + st::setStatusLeft, top + st::setStatusTop + st::setStatusFont->ascent, lang(connecting ? lng_status_connecting : lng_status_online)); + top += st::setPhotoSize; if (!_errorText.isEmpty()) { @@ -314,6 +327,24 @@ void SettingsInner::paintEvent(QPaintEvent *e) { p.drawText(QRect(_uploadPhoto.x(), _uploadPhoto.y() + _uploadPhoto.height() + st::setLittleSkip, _uploadPhoto.width(), st::setErrFont->height), _errorText, style::al_center); } + // contact info + p.setFont(st::setHeaderFont->f); + p.setPen(st::setHeaderColor->p); + p.drawText(_left + st::setHeaderLeft, top + st::setHeaderTop + st::setHeaderFont->ascent, lang(lng_settings_section_contact_info)); + top += st::setHeaderSkip; + + p.setFont(st::linkFont->f); + p.setPen(st::black->p); + p.drawText(_left, top + st::linkFont->ascent, lang(lng_settings_phone_number)); + p.drawText(_left + _phoneLeft, top + st::linkFont->ascent, _phoneText); + top += st::linkFont->height + st::setLittleSkip; + + p.drawText(_left, top + st::linkFont->ascent, lang(lng_settings_username)); + if (!_usernameText.isEmpty()) { + p.drawText(_left + _usernameLeft, top + st::linkFont->ascent, _usernameText); + } + top += st::linkFont->height; + // notifications p.setFont(st::setHeaderFont->f); p.setPen(st::setHeaderColor->p); @@ -389,7 +420,7 @@ void SettingsInner::paintEvent(QPaintEvent *e) { p.setFont(st::linkFont->f); } - if (_self) { + if (self()) { // chat options p.setFont(st::setHeaderFont->f); p.setPen(st::setHeaderColor->p); @@ -435,7 +466,7 @@ void SettingsInner::paintEvent(QPaintEvent *e) { p.setPen(st::black->p); p.drawText(_left + st::setHeaderLeft, _connectionType.y() + st::linkFont->ascent, _connectionTypeText); - if (_self && _resetDone) { + if (self() && _resetDone) { p.drawText(_resetSessions.x(), _resetSessions.y() + st::linkFont->ascent, lang(lng_settings_reset_done)); } } @@ -445,13 +476,19 @@ void SettingsInner::resizeEvent(QResizeEvent *e) { int32 top = 0; - if (_self) { + if (self()) { // profile top += st::setTop; top += st::setPhotoSize; _uploadPhoto.move(_left + st::setWidth - _uploadPhoto.width(), top - _uploadPhoto.height()); _cancelPhoto.move(_left + st::setWidth - _cancelPhoto.width(), top - _uploadPhoto.height() + st::btnSetUpload.textTop + st::btnSetUpload.font->ascent - st::linkFont->ascent); + // contact info + top += st::setHeaderSkip; + top += st::linkFont->height + st::setLittleSkip; + _chooseUsername.move(_left + _usernameLeft, top); + _changeUsername.move(_left + st::setWidth - _changeUsername.width(), top); top += st::linkFont->height; + // notifications top += st::setHeaderSkip; _desktopNotify.move(_left, top); top += _desktopNotify.height() + st::setLittleSkip; @@ -485,7 +522,7 @@ void SettingsInner::resizeEvent(QResizeEvent *e) { } // chat options - if (_self) { + if (self()) { top += st::setHeaderSkip; _viewEmojis.move(_left + st::setWidth - _viewEmojis.width(), top + st::cbDefFlat.textTop); _replaceEmojis.move(_left, top); top += _replaceEmojis.height() + st::setSectionSkip; @@ -507,7 +544,7 @@ void SettingsInner::resizeEvent(QResizeEvent *e) { // advanced top += st::setHeaderSkip; _connectionType.move(_left + st::setHeaderLeft + _connectionTypeWidth, top); top += _connectionType.height() + st::setLittleSkip; - if (_self) { + if (self()) { _resetSessions.move(_left, top); top += _resetSessions.height() + st::setSectionSkip; _logOut.move(_left, top); } @@ -520,7 +557,7 @@ void SettingsInner::keyPressEvent(QKeyEvent *e) { } void SettingsInner::mouseMoveEvent(QMouseEvent *e) { - if (!_self) { + if (!self()) { setCursor(style::cur_default); } else { bool nameOver = QRect(_uploadPhoto.x() + st::setNameLeft, st::setTop + st::setNameTop, qMin(_uploadPhoto.width() - int(st::setNameLeft), _nameText.maxWidth()), st::setNameFont->height).contains(e->pos()); @@ -543,14 +580,14 @@ void SettingsInner::mouseMoveEvent(QMouseEvent *e) { void SettingsInner::mousePressEvent(QMouseEvent *e) { mouseMoveEvent(e); - if (!_self) { + if (!self()) { return; } if (QRect(_uploadPhoto.x() + st::setNameLeft, st::setTop + st::setNameTop, qMin(_uploadPhoto.width() - int(st::setNameLeft), _nameText.maxWidth()), st::setNameFont->height).contains(e->pos())) { - App::wnd()->showLayer(new AddContactBox(_self)); + App::wnd()->showLayer(new AddContactBox(self())); } else if (QRect(_left, st::setTop, st::setPhotoSize, st::setPhotoSize).contains(e->pos())) { if (_photoLink) { - App::photo(_self->photoId)->full->load(); + App::photo(self()->photoId)->full->load(); _photoLink->onClick(e->button()); } else { onUpdatePhoto(); @@ -600,22 +637,28 @@ void SettingsInner::updateConnectionType() { } } -void SettingsInner::gotFullSelf(const MTPUserFull &self) { - if (!_self) return; - App::feedPhoto(self.c_userFull().vprofile_photo); - App::feedUsers(MTP_vector<MTPUser>(QVector<MTPUser>(1, self.c_userFull().vuser))); - PhotoData *selfPhoto = _self->photoId ? App::photo(_self->photoId) : 0; +void SettingsInner::gotFullSelf(const MTPUserFull &selfFull) { + if (!self()) return; + App::feedPhoto(selfFull.c_userFull().vprofile_photo); + App::feedUsers(MTP_vector<MTPUser>(QVector<MTPUser>(1, selfFull.c_userFull().vuser))); + PhotoData *selfPhoto = self()->photoId ? App::photo(self()->photoId) : 0; if (selfPhoto && selfPhoto->date) { - _photoLink = TextLinkPtr(new PhotoLink(selfPhoto, _self)); + _photoLink = TextLinkPtr(new PhotoLink(selfPhoto, self())); } else { _photoLink = TextLinkPtr(); } } +void SettingsInner::usernameChanged() { + _usernameText = (self() && !self()->username.isEmpty()) ? ('@' + self()->username) : QString(); + showAll(); + update(); +} + void SettingsInner::showAll() { // profile - if (_self) { - if (App::app()->isPhotoUpdating(_self->id)) { + if (self()) { + if (App::app()->isPhotoUpdating(self()->id)) { _cancelPhoto.show(); _uploadPhoto.hide(); } else { @@ -627,8 +670,22 @@ void SettingsInner::showAll() { _cancelPhoto.hide(); } + // contact info + if (self()) { + if (self()->username.isEmpty()) { + _chooseUsername.show(); + _changeUsername.hide(); + } else { + _chooseUsername.hide(); + _changeUsername.show(); + } + } else { + _chooseUsername.hide(); + _changeUsername.hide(); + } + // notifications - if (_self) { + if (self()) { _desktopNotify.show(); _senderName.show(); _messagePreview.show(); @@ -673,7 +730,7 @@ void SettingsInner::showAll() { } // chat options - if (_self) { + if (self()) { _replaceEmojis.show(); if (cReplaceEmojis()) { _viewEmojis.show(); @@ -707,7 +764,7 @@ void SettingsInner::showAll() { } // advanced - if (_self) { + if (self()) { if (_resetDone) { _resetSessions.hide(); } else { @@ -727,8 +784,8 @@ void SettingsInner::saveError(const QString &str) { } void SettingsInner::onUpdatePhotoCancel() { - if (_self) { - App::app()->cancelPhotoUpdate(_self->id); + if (self()) { + App::app()->cancelPhotoUpdate(self()->id); } showAll(); update(); @@ -759,7 +816,7 @@ void SettingsInner::onUpdatePhoto() { saveError(lang(lng_bad_photo)); return; } - PhotoCropBox *box = new PhotoCropBox(img, _self->id); + PhotoCropBox *box = new PhotoCropBox(img, self()->id); connect(box, SIGNAL(closed()), this, SLOT(onPhotoUpdateStart())); App::wnd()->showLayer(box); } @@ -822,6 +879,12 @@ void SettingsInner::onConnectionType() { App::wnd()->showLayer(box); } +void SettingsInner::onUsername() { + UsernameBox *box = new UsernameBox(); + connect(box, SIGNAL(closed()), this, SLOT(usernameChanged())); + App::wnd()->showLayer(box); +} + void SettingsInner::onWorkmodeTray() { if ((!_workmodeTray.checked() || cPlatform() != dbipWindows) && !_workmodeWindow.checked()) { _workmodeWindow.setChecked(true); @@ -1120,14 +1183,14 @@ void SettingsInner::onPhotoUpdateStart() { } void SettingsInner::onPhotoUpdateFail(PeerId peer) { - if (!_self || _self->id != peer) return; + if (!self() || self()->id != peer) return; saveError(lang(lng_bad_photo)); showAll(); update(); } void SettingsInner::onPhotoUpdateDone(PeerId peer) { - if (!_self || _self->id != peer) return; + if (!self() || self()->id != peer) return; showAll(); update(); } @@ -1245,6 +1308,10 @@ void SettingsWidget::rpcInvalidate() { _inner.rpcInvalidate(); } +void SettingsWidget::usernameChanged() { + _inner.usernameChanged(); +} + SettingsWidget::~SettingsWidget() { if (App::wnd()) App::wnd()->noSettings(this); } diff --git a/Telegram/SourceFiles/settingswidget.h b/Telegram/SourceFiles/settingswidget.h index 4931e1b880..9d16632da5 100644 --- a/Telegram/SourceFiles/settingswidget.h +++ b/Telegram/SourceFiles/settingswidget.h @@ -80,6 +80,7 @@ public: public slots: + void usernameChanged(); void updateConnectionType(); void peerUpdated(PeerData *data); @@ -93,6 +94,8 @@ public slots: void onConnectionType(); + void onUsername(); + void onWorkmodeTray(); void onWorkmodeWindow(); @@ -144,13 +147,14 @@ private: void setScale(DBIScale newScale); - UserData *_self; + UserData *self() const { + return App::self(); + } int32 _left; // profile Text _nameText; QString _nameCache; - QString _phoneText; TextLinkPtr _photoLink; FlatButton _uploadPhoto; LinkButton _cancelPhoto; @@ -159,6 +163,11 @@ private: QString _errorText; + // contact info + QString _phoneText, _usernameText; + int32 _phoneLeft, _usernameLeft; + LinkButton _chooseUsername, _changeUsername; + // notifications FlatCheckbox _desktopNotify, _senderName, _messagePreview, _soundNotify; @@ -236,6 +245,7 @@ public: void updateConnectionType(); void rpcInvalidate(); + void usernameChanged(); ~SettingsWidget(); diff --git a/Telegram/SourceFiles/window.cpp b/Telegram/SourceFiles/window.cpp index dce9b69f09..13c79e36c5 100644 --- a/Telegram/SourceFiles/window.cpp +++ b/Telegram/SourceFiles/window.cpp @@ -609,6 +609,11 @@ void Window::showConnecting(const QString &text, const QString &reconnect) { resizeEvent(0); fixOrder(); } + if (settings) settings->update(); +} + +bool Window::connectingVisible() const { + return _connecting && !_connecting->isHidden(); } void Window::hideConnecting() { @@ -616,6 +621,7 @@ void Window::hideConnecting() { _connecting->deleteLater(); _connecting = 0; } + if (settings) settings->update(); } void Window::replaceLayer(LayeredWidget *w) { diff --git a/Telegram/SourceFiles/window.h b/Telegram/SourceFiles/window.h index defab1ba26..8156c496b1 100644 --- a/Telegram/SourceFiles/window.h +++ b/Telegram/SourceFiles/window.h @@ -172,6 +172,7 @@ public: void showConnecting(const QString &text, const QString &reconnect = QString()); void hideConnecting(); + bool connectingVisible() const; void hideSettings(bool fast = false); void showPhoto(const PhotoLink *lnk, HistoryItem *item = 0); diff --git a/Telegram/Telegram.vcxproj b/Telegram/Telegram.vcxproj index b2966189e7..6c800567e7 100644 --- a/Telegram/Telegram.vcxproj +++ b/Telegram/Telegram.vcxproj @@ -346,6 +346,10 @@ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Deploy|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> </ClCompile> + <ClCompile Include="GeneratedFiles\Debug\moc_usernamebox.cpp"> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Deploy|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + </ClCompile> <ClCompile Include="GeneratedFiles\Debug\moc_window.cpp"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Deploy|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> @@ -550,6 +554,10 @@ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> </ClCompile> + <ClCompile Include="GeneratedFiles\Deploy\moc_usernamebox.cpp"> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> + </ClCompile> <ClCompile Include="GeneratedFiles\Deploy\moc_window.cpp"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> @@ -763,6 +771,10 @@ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Deploy|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> </ClCompile> + <ClCompile Include="GeneratedFiles\Release\moc_usernamebox.cpp"> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Deploy|Win32'">true</ExcludedFromBuild> + <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> + </ClCompile> <ClCompile Include="GeneratedFiles\Release\moc_window.cpp"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Deploy|Win32'">true</ExcludedFromBuild> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> @@ -782,6 +794,7 @@ <ClCompile Include="SourceFiles\boxes\newgroupbox.cpp" /> <ClCompile Include="SourceFiles\boxes\photocropbox.cpp" /> <ClCompile Include="SourceFiles\boxes\photosendbox.cpp" /> + <ClCompile Include="SourceFiles\boxes\usernamebox.cpp" /> <ClCompile Include="SourceFiles\dialogswidget.cpp" /> <ClCompile Include="SourceFiles\dropdown.cpp" /> <ClCompile Include="SourceFiles\fileuploader.cpp" /> @@ -1058,6 +1071,20 @@ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui" "-fstdafx.h" "-f../../SourceFiles/audio.h"</Command> </CustomBuild> + <CustomBuild Include="SourceFiles\boxes\usernamebox.h"> + <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Deploy|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> + <Message Condition="'$(Configuration)|$(Platform)'=='Deploy|Win32'">Moc%27ing usernamebox.h...</Message> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Deploy|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> + <Command Condition="'$(Configuration)|$(Platform)'=='Deploy|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/usernamebox.h" -DAL_LIBTYPE_STATIC -DCUSTOM_API_ID -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui"</Command> + <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> + <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing usernamebox.h...</Message> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> + <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/usernamebox.h" -DAL_LIBTYPE_STATIC -DUNICODE -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui"</Command> + <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> + <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Moc%27ing usernamebox.h...</Message> + <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> + <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fstdafx.h" "-f../../SourceFiles/boxes/usernamebox.h" -DAL_LIBTYPE_STATIC -DUNICODE -D_WITH_DEBUG -DWIN32 -DWIN64 -DHAVE_STDINT_H -DZLIB_WINAPI -DQT_NO_DEBUG -DNDEBUG "-I.\..\..\Libraries\lzma\C" "-I.\..\..\Libraries\libexif-0.6.20" "-I.\..\..\Libraries\zlib-1.2.8" "-I.\..\..\Libraries\OpenSSL-Win32\include" "-I.\..\..\Libraries\libogg-1.3.2\include" "-I.\..\..\Libraries\opus\include" "-I.\..\..\Libraries\opusfile\include" "-I.\..\..\Libraries\openal-soft\include" "-I.\SourceFiles" "-I.\GeneratedFiles" "-I." "-I$(QTDIR)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\..\Libraries\QtStatic\qtbase\include\QtCore\5.3.1\QtCore" "-I.\..\..\Libraries\QtStatic\qtbase\include\QtGui\5.3.1\QtGui"</Command> + </CustomBuild> <ClInclude Include="SourceFiles\config.h" /> <CustomBuild Include="SourceFiles\gui\animation.h"> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing animation.h...</Message> diff --git a/Telegram/Telegram.vcxproj.filters b/Telegram/Telegram.vcxproj.filters index a5609e68f9..c740b80310 100644 --- a/Telegram/Telegram.vcxproj.filters +++ b/Telegram/Telegram.vcxproj.filters @@ -722,6 +722,18 @@ <ClCompile Include="SourceFiles\mtproto\mtpScheme.cpp"> <Filter>mtproto</Filter> </ClCompile> + <ClCompile Include="SourceFiles\boxes\usernamebox.cpp"> + <Filter>boxes</Filter> + </ClCompile> + <ClCompile Include="GeneratedFiles\Deploy\moc_usernamebox.cpp"> + <Filter>Generated Files\Deploy</Filter> + </ClCompile> + <ClCompile Include="GeneratedFiles\Debug\moc_usernamebox.cpp"> + <Filter>Generated Files\Debug</Filter> + </ClCompile> + <ClCompile Include="GeneratedFiles\Release\moc_usernamebox.cpp"> + <Filter>Generated Files\Release</Filter> + </ClCompile> </ItemGroup> <ItemGroup> <ClInclude Include="SourceFiles\stdafx.h"> @@ -972,6 +984,9 @@ <CustomBuild Include="SourceFiles\gui\contextmenu.h"> <Filter>gui</Filter> </CustomBuild> + <CustomBuild Include="SourceFiles\boxes\usernamebox.h"> + <Filter>boxes</Filter> + </CustomBuild> </ItemGroup> <ItemGroup> <Image Include="SourceFiles\art\iconround256.ico" />