Add audio, video and video note without duration to shared media.
GitOrigin-RevId: 924a2b8654e1d118b26c6174af3c0ebd327d454f
This commit is contained in:
parent
4b62900c0d
commit
827ceb3ee5
|
@ -2466,36 +2466,23 @@ static int32 get_message_content_text_index_mask(const MessageContent *content)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int32 get_message_content_media_index_mask(const MessageContent *content, const Td *td, bool is_secret,
|
||||
bool is_outgoing) {
|
||||
static int32 get_message_content_media_index_mask(const MessageContent *content, const Td *td, bool is_outgoing) {
|
||||
switch (content->get_type()) {
|
||||
case MessageContentType::Animation:
|
||||
return message_search_filter_index_mask(MessageSearchFilter::Animation);
|
||||
case MessageContentType::Audio: {
|
||||
auto message_audio = static_cast<const MessageAudio *>(content);
|
||||
auto duration = td->audios_manager_->get_audio_duration(message_audio->file_id);
|
||||
return is_secret || duration > 0 ? message_search_filter_index_mask(MessageSearchFilter::Audio)
|
||||
: message_search_filter_index_mask(MessageSearchFilter::Document);
|
||||
}
|
||||
case MessageContentType::Audio:
|
||||
return message_search_filter_index_mask(MessageSearchFilter::Audio);
|
||||
case MessageContentType::Document:
|
||||
return message_search_filter_index_mask(MessageSearchFilter::Document);
|
||||
case MessageContentType::Photo:
|
||||
return message_search_filter_index_mask(MessageSearchFilter::Photo) |
|
||||
message_search_filter_index_mask(MessageSearchFilter::PhotoAndVideo);
|
||||
case MessageContentType::Video: {
|
||||
auto message_video = static_cast<const MessageVideo *>(content);
|
||||
auto duration = td->videos_manager_->get_video_duration(message_video->file_id);
|
||||
return is_secret || duration > 0 ? message_search_filter_index_mask(MessageSearchFilter::Video) |
|
||||
message_search_filter_index_mask(MessageSearchFilter::PhotoAndVideo)
|
||||
: message_search_filter_index_mask(MessageSearchFilter::Document);
|
||||
}
|
||||
case MessageContentType::VideoNote: {
|
||||
auto message_video_note = static_cast<const MessageVideoNote *>(content);
|
||||
auto duration = td->video_notes_manager_->get_video_note_duration(message_video_note->file_id);
|
||||
return is_secret || duration > 0 ? message_search_filter_index_mask(MessageSearchFilter::VideoNote) |
|
||||
message_search_filter_index_mask(MessageSearchFilter::VoiceAndVideoNote)
|
||||
: message_search_filter_index_mask(MessageSearchFilter::Document);
|
||||
}
|
||||
case MessageContentType::Video:
|
||||
return message_search_filter_index_mask(MessageSearchFilter::Video) |
|
||||
message_search_filter_index_mask(MessageSearchFilter::PhotoAndVideo);
|
||||
case MessageContentType::VideoNote:
|
||||
return message_search_filter_index_mask(MessageSearchFilter::VideoNote) |
|
||||
message_search_filter_index_mask(MessageSearchFilter::VoiceAndVideoNote);
|
||||
case MessageContentType::VoiceNote:
|
||||
return message_search_filter_index_mask(MessageSearchFilter::VoiceNote) |
|
||||
message_search_filter_index_mask(MessageSearchFilter::VoiceAndVideoNote);
|
||||
|
@ -2551,9 +2538,8 @@ static int32 get_message_content_media_index_mask(const MessageContent *content,
|
|||
return 0;
|
||||
}
|
||||
|
||||
int32 get_message_content_index_mask(const MessageContent *content, const Td *td, bool is_secret, bool is_outgoing) {
|
||||
return get_message_content_text_index_mask(content) |
|
||||
get_message_content_media_index_mask(content, td, is_secret, is_outgoing);
|
||||
int32 get_message_content_index_mask(const MessageContent *content, const Td *td, bool is_outgoing) {
|
||||
return get_message_content_text_index_mask(content) | get_message_content_media_index_mask(content, td, is_outgoing);
|
||||
}
|
||||
|
||||
MessageId get_message_content_pinned_message_id(const MessageContent *content) {
|
||||
|
|
|
@ -120,7 +120,7 @@ bool can_forward_message_content(const MessageContent *content);
|
|||
|
||||
bool update_opened_message_content(MessageContent *content);
|
||||
|
||||
int32 get_message_content_index_mask(const MessageContent *content, const Td *td, bool is_secret, bool is_outgoing);
|
||||
int32 get_message_content_index_mask(const MessageContent *content, const Td *td, bool is_outgoing);
|
||||
|
||||
MessageId get_message_content_pinned_message_id(const MessageContent *content);
|
||||
|
||||
|
|
|
@ -5707,7 +5707,7 @@ int32 MessagesManager::get_message_index_mask(DialogId dialog_id, const Message
|
|||
if (m->is_content_secret || (m->ttl > 0 && !is_secret)) {
|
||||
return 0;
|
||||
}
|
||||
int32 index_mask = get_message_content_index_mask(m->content.get(), td_, is_secret, m->is_outgoing);
|
||||
int32 index_mask = get_message_content_index_mask(m->content.get(), td_, m->is_outgoing);
|
||||
if (m->contains_mention) {
|
||||
index_mask |= message_search_filter_index_mask(MessageSearchFilter::Mention);
|
||||
if (m->contains_unread_mention) {
|
||||
|
|
Loading…
Reference in New Issue