Add linkPreviewTypeTheme.settings.
This commit is contained in:
parent
5ae0c78b89
commit
e1951c5a84
@ -2292,6 +2292,15 @@ sharedUser user_id:int53 first_name:string last_name:string username:string phot
|
|||||||
sharedChat chat_id:int53 title:string username:string photo:photo = SharedChat;
|
sharedChat chat_id:int53 title:string username:string photo:photo = SharedChat;
|
||||||
|
|
||||||
|
|
||||||
|
//@description Describes theme settings
|
||||||
|
//@accent_color Theme accent color in ARGB format
|
||||||
|
//@background The background to be used in chats; may be null
|
||||||
|
//@outgoing_message_fill The fill to be used as a background for outgoing messages
|
||||||
|
//@animate_outgoing_message_fill If true, the freeform gradient fill needs to be animated on every sent message
|
||||||
|
//@outgoing_message_accent_color Accent color of outgoing messages in ARGB format
|
||||||
|
themeSettings accent_color:int32 background:background outgoing_message_fill:BackgroundFill animate_outgoing_message_fill:Bool outgoing_message_accent_color:int32 = ThemeSettings;
|
||||||
|
|
||||||
|
|
||||||
//@class RichText @description Describes a formatted text object
|
//@class RichText @description Describes a formatted text object
|
||||||
|
|
||||||
//@description A plain text @text Text
|
//@description A plain text @text Text
|
||||||
@ -2638,8 +2647,8 @@ linkPreviewTypeStory story_sender_chat_id:int53 story_id:int32 = LinkPreviewType
|
|||||||
//@description The link is a link to boost a supergroup chat @photo Photo of the chat; may be null
|
//@description The link is a link to boost a supergroup chat @photo Photo of the chat; may be null
|
||||||
linkPreviewTypeSupergroupBoost photo:chatPhoto = LinkPreviewType;
|
linkPreviewTypeSupergroupBoost photo:chatPhoto = LinkPreviewType;
|
||||||
|
|
||||||
//@description The link is a link to a cloud theme. TDLib has no theme support yet @documents The list of files with theme description
|
//@description The link is a link to a cloud theme. TDLib has no theme support yet @documents The list of files with theme description @settings Settings for the cloud theme
|
||||||
linkPreviewTypeTheme documents:vector<document> = LinkPreviewType;
|
linkPreviewTypeTheme documents:vector<document> settings:themeSettings = LinkPreviewType;
|
||||||
|
|
||||||
//@description The link preview type is unsupported yet
|
//@description The link preview type is unsupported yet
|
||||||
linkPreviewTypeUnsupported = LinkPreviewType;
|
linkPreviewTypeUnsupported = LinkPreviewType;
|
||||||
@ -5679,15 +5688,6 @@ inputBackgroundRemote background_id:int64 = InputBackground;
|
|||||||
inputBackgroundPrevious message_id:int53 = InputBackground;
|
inputBackgroundPrevious message_id:int53 = InputBackground;
|
||||||
|
|
||||||
|
|
||||||
//@description Describes theme settings
|
|
||||||
//@accent_color Theme accent color in ARGB format
|
|
||||||
//@background The background to be used in chats; may be null
|
|
||||||
//@outgoing_message_fill The fill to be used as a background for outgoing messages
|
|
||||||
//@animate_outgoing_message_fill If true, the freeform gradient fill needs to be animated on every sent message
|
|
||||||
//@outgoing_message_accent_color Accent color of outgoing messages in ARGB format
|
|
||||||
themeSettings accent_color:int32 background:background outgoing_message_fill:BackgroundFill animate_outgoing_message_fill:Bool outgoing_message_accent_color:int32 = ThemeSettings;
|
|
||||||
|
|
||||||
|
|
||||||
//@description Describes a chat theme
|
//@description Describes a chat theme
|
||||||
//@name Theme name
|
//@name Theme name
|
||||||
//@light_settings Theme settings for a light chat theme
|
//@light_settings Theme settings for a light chat theme
|
||||||
|
@ -36,6 +36,8 @@
|
|||||||
#include "td/telegram/Td.h"
|
#include "td/telegram/Td.h"
|
||||||
#include "td/telegram/TdDb.h"
|
#include "td/telegram/TdDb.h"
|
||||||
#include "td/telegram/telegram_api.h"
|
#include "td/telegram/telegram_api.h"
|
||||||
|
#include "td/telegram/ThemeSettings.h"
|
||||||
|
#include "td/telegram/ThemeSettings.hpp"
|
||||||
#include "td/telegram/UserManager.h"
|
#include "td/telegram/UserManager.h"
|
||||||
#include "td/telegram/VideoNotesManager.h"
|
#include "td/telegram/VideoNotesManager.h"
|
||||||
#include "td/telegram/VideosManager.h"
|
#include "td/telegram/VideosManager.h"
|
||||||
@ -245,6 +247,7 @@ class WebPagesManager::WebPage {
|
|||||||
bool has_large_media_ = false;
|
bool has_large_media_ = false;
|
||||||
Document document_;
|
Document document_;
|
||||||
vector<Document> documents_;
|
vector<Document> documents_;
|
||||||
|
ThemeSettings theme_settings_;
|
||||||
vector<StoryFullId> story_full_ids_;
|
vector<StoryFullId> story_full_ids_;
|
||||||
vector<FileId> sticker_ids_;
|
vector<FileId> sticker_ids_;
|
||||||
WebPageInstantView instant_view_;
|
WebPageInstantView instant_view_;
|
||||||
@ -272,6 +275,7 @@ class WebPagesManager::WebPage {
|
|||||||
bool has_documents = !documents_.empty();
|
bool has_documents = !documents_.empty();
|
||||||
bool has_story_full_ids = !story_full_ids_.empty();
|
bool has_story_full_ids = !story_full_ids_.empty();
|
||||||
bool has_sticker_ids = !sticker_ids_.empty();
|
bool has_sticker_ids = !sticker_ids_.empty();
|
||||||
|
bool has_theme_settings = !theme_settings_.is_empty();
|
||||||
BEGIN_STORE_FLAGS();
|
BEGIN_STORE_FLAGS();
|
||||||
STORE_FLAG(has_type);
|
STORE_FLAG(has_type);
|
||||||
STORE_FLAG(has_site_name);
|
STORE_FLAG(has_site_name);
|
||||||
@ -290,6 +294,7 @@ class WebPagesManager::WebPage {
|
|||||||
STORE_FLAG(has_story_full_ids);
|
STORE_FLAG(has_story_full_ids);
|
||||||
STORE_FLAG(has_large_media_);
|
STORE_FLAG(has_large_media_);
|
||||||
STORE_FLAG(has_sticker_ids);
|
STORE_FLAG(has_sticker_ids);
|
||||||
|
STORE_FLAG(has_theme_settings);
|
||||||
END_STORE_FLAGS();
|
END_STORE_FLAGS();
|
||||||
|
|
||||||
store(url_, storer);
|
store(url_, storer);
|
||||||
@ -338,6 +343,9 @@ class WebPagesManager::WebPage {
|
|||||||
td->stickers_manager_->store_sticker(sticker_id, false, storer, "WebPage");
|
td->stickers_manager_->store_sticker(sticker_id, false, storer, "WebPage");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (has_theme_settings) {
|
||||||
|
store(theme_settings_, storer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class ParserT>
|
template <class ParserT>
|
||||||
@ -359,6 +367,7 @@ class WebPagesManager::WebPage {
|
|||||||
bool has_documents;
|
bool has_documents;
|
||||||
bool has_story_full_ids;
|
bool has_story_full_ids;
|
||||||
bool has_sticker_ids;
|
bool has_sticker_ids;
|
||||||
|
bool has_theme_settings;
|
||||||
BEGIN_PARSE_FLAGS();
|
BEGIN_PARSE_FLAGS();
|
||||||
PARSE_FLAG(has_type);
|
PARSE_FLAG(has_type);
|
||||||
PARSE_FLAG(has_site_name);
|
PARSE_FLAG(has_site_name);
|
||||||
@ -377,6 +386,7 @@ class WebPagesManager::WebPage {
|
|||||||
PARSE_FLAG(has_story_full_ids);
|
PARSE_FLAG(has_story_full_ids);
|
||||||
PARSE_FLAG(has_large_media_);
|
PARSE_FLAG(has_large_media_);
|
||||||
PARSE_FLAG(has_sticker_ids);
|
PARSE_FLAG(has_sticker_ids);
|
||||||
|
PARSE_FLAG(has_theme_settings);
|
||||||
END_PARSE_FLAGS();
|
END_PARSE_FLAGS();
|
||||||
|
|
||||||
parse(url_, parser);
|
parse(url_, parser);
|
||||||
@ -434,6 +444,9 @@ class WebPagesManager::WebPage {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (has_theme_settings) {
|
||||||
|
parse(theme_settings_, parser);
|
||||||
|
}
|
||||||
|
|
||||||
if (has_instant_view) {
|
if (has_instant_view) {
|
||||||
instant_view_.is_empty_ = false;
|
instant_view_.is_empty_ = false;
|
||||||
@ -450,8 +463,9 @@ class WebPagesManager::WebPage {
|
|||||||
lhs.embed_type_ == rhs.embed_type_ && lhs.embed_dimensions_ == rhs.embed_dimensions_ &&
|
lhs.embed_type_ == rhs.embed_type_ && lhs.embed_dimensions_ == rhs.embed_dimensions_ &&
|
||||||
lhs.duration_ == rhs.duration_ && lhs.author_ == rhs.author_ &&
|
lhs.duration_ == rhs.duration_ && lhs.author_ == rhs.author_ &&
|
||||||
lhs.has_large_media_ == rhs.has_large_media_ && lhs.document_ == rhs.document_ &&
|
lhs.has_large_media_ == rhs.has_large_media_ && lhs.document_ == rhs.document_ &&
|
||||||
lhs.documents_ == rhs.documents_ && lhs.story_full_ids_ == rhs.story_full_ids_ &&
|
lhs.documents_ == rhs.documents_ && lhs.theme_settings_ == rhs.theme_settings_ &&
|
||||||
lhs.sticker_ids_ == rhs.sticker_ids_ && lhs.instant_view_.is_empty_ == rhs.instant_view_.is_empty_ &&
|
lhs.story_full_ids_ == rhs.story_full_ids_ && lhs.sticker_ids_ == rhs.sticker_ids_ &&
|
||||||
|
lhs.instant_view_.is_empty_ == rhs.instant_view_.is_empty_ &&
|
||||||
lhs.instant_view_.is_v2_ == rhs.instant_view_.is_v2_;
|
lhs.instant_view_.is_v2_ == rhs.instant_view_.is_v2_;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -597,7 +611,7 @@ WebPageId WebPagesManager::on_get_web_page(tl_object_ptr<telegram_api::WebPage>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// TODO attribute->settings_
|
page->theme_settings_ = ThemeSettings(td_, std::move(attribute->settings_));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case telegram_api::webPageAttributeStory::ID: {
|
case telegram_api::webPageAttributeStory::ID: {
|
||||||
@ -1473,8 +1487,9 @@ td_api::object_ptr<td_api::LinkPreviewType> WebPagesManager::get_link_preview_ty
|
|||||||
documents.push_back(td_->documents_manager_->get_document_object(document.file_id, PhotoFormat::Jpeg));
|
documents.push_back(td_->documents_manager_->get_document_object(document.file_id, PhotoFormat::Jpeg));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// TODO add theme settings
|
auto theme_settings =
|
||||||
return td_api::make_object<td_api::linkPreviewTypeTheme>(std::move(documents));
|
!web_page->theme_settings_.is_empty() ? web_page->theme_settings_.get_theme_settings_object(td_) : nullptr;
|
||||||
|
return td_api::make_object<td_api::linkPreviewTypeTheme>(std::move(documents), std::move(theme_settings));
|
||||||
}
|
}
|
||||||
if (type == "user") {
|
if (type == "user") {
|
||||||
return td_api::make_object<td_api::linkPreviewTypeUser>(
|
return td_api::make_object<td_api::linkPreviewTypeUser>(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user