From 7b7b9db20bcdf6c8d9e81d8d77f4af3bd50961cd Mon Sep 17 00:00:00 2001 From: John Preston Date: Wed, 12 Apr 2017 22:37:47 +0300 Subject: [PATCH] Add support for video messages send actions. Animate record and upload the same way as voice messages. --- Telegram/Resources/langs/lang.strings | 4 ++++ Telegram/SourceFiles/history.cpp | 6 ++++++ Telegram/SourceFiles/historywidget.cpp | 2 ++ Telegram/SourceFiles/structs.h | 2 ++ Telegram/SourceFiles/ui/effects/send_action_animations.cpp | 2 ++ 5 files changed, 16 insertions(+) diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index c6fe0a516..f64cea20d 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -889,6 +889,10 @@ Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org "lng_user_action_record_audio" = "{user} is recording a voice message"; "lng_send_action_upload_audio" = "sending a voice message"; "lng_user_action_upload_audio" = "{user} is sending a voice message"; +"lng_send_action_record_round" = "recording a video message"; +"lng_user_action_record_round" = "{user} is recording a video message"; +"lng_send_action_upload_round" = "sending a video message"; +"lng_user_action_upload_round" = "{user} is sending a video message"; "lng_send_action_upload_photo" = "sending a photo"; "lng_user_action_upload_photo" = "{user} is sending a photo"; "lng_send_action_upload_file" = "sending a file"; diff --git a/Telegram/SourceFiles/history.cpp b/Telegram/SourceFiles/history.cpp index 54483da01..247f88599 100644 --- a/Telegram/SourceFiles/history.cpp +++ b/Telegram/SourceFiles/history.cpp @@ -41,6 +41,8 @@ constexpr int kStatusShowClientsideRecordVideo = 6000; constexpr int kStatusShowClientsideUploadVideo = 6000; constexpr int kStatusShowClientsideRecordVoice = 6000; constexpr int kStatusShowClientsideUploadVoice = 6000; +constexpr int kStatusShowClientsideRecordRound = 6000; +constexpr int kStatusShowClientsideUploadRound = 6000; constexpr int kStatusShowClientsideUploadPhoto = 6000; constexpr int kStatusShowClientsideUploadFile = 6000; constexpr int kStatusShowClientsideChooseLocation = 6000; @@ -212,6 +214,8 @@ bool History::updateSendActionNeedsAnimating(UserData *user, const MTPSendMessag case mtpc_sendMessageUploadVideoAction: _sendActions.insert(user, { Type::UploadVideo, ms + kStatusShowClientsideUploadVideo, action.c_sendMessageUploadVideoAction().vprogress.v }); break; case mtpc_sendMessageRecordAudioAction: _sendActions.insert(user, { Type::RecordVoice, ms + kStatusShowClientsideRecordVoice }); break; case mtpc_sendMessageUploadAudioAction: _sendActions.insert(user, { Type::UploadVoice, ms + kStatusShowClientsideUploadVoice, action.c_sendMessageUploadAudioAction().vprogress.v }); break; + case mtpc_sendMessageRecordRoundAction: _sendActions.insert(user, { Type::RecordRound, ms + kStatusShowClientsideRecordRound }); break; + case mtpc_sendMessageUploadRoundAction: _sendActions.insert(user, { Type::UploadRound, ms + kStatusShowClientsideUploadRound }); break; case mtpc_sendMessageUploadPhotoAction: _sendActions.insert(user, { Type::UploadPhoto, ms + kStatusShowClientsideUploadPhoto, action.c_sendMessageUploadPhotoAction().vprogress.v }); break; case mtpc_sendMessageUploadDocumentAction: _sendActions.insert(user, { Type::UploadFile, ms + kStatusShowClientsideUploadFile, action.c_sendMessageUploadDocumentAction().vprogress.v }); break; case mtpc_sendMessageGeoLocationAction: _sendActions.insert(user, { Type::ChooseLocation, ms + kStatusShowClientsideChooseLocation }); break; @@ -299,6 +303,8 @@ bool History::updateSendActionNeedsAnimating(TimeMs ms, bool force) { case Type::UploadVideo: return name.isEmpty() ? lang(lng_send_action_upload_video) : lng_user_action_upload_video(lt_user, name); case Type::RecordVoice: return name.isEmpty() ? lang(lng_send_action_record_audio) : lng_user_action_record_audio(lt_user, name); case Type::UploadVoice: return name.isEmpty() ? lang(lng_send_action_upload_audio) : lng_user_action_upload_audio(lt_user, name); + case Type::RecordRound: return name.isEmpty() ? lang(lng_send_action_record_round) : lng_user_action_record_round(lt_user, name); + case Type::UploadRound: return name.isEmpty() ? lang(lng_send_action_upload_round) : lng_user_action_upload_round(lt_user, name); case Type::UploadPhoto: return name.isEmpty() ? lang(lng_send_action_upload_photo) : lng_user_action_upload_photo(lt_user, name); case Type::UploadFile: return name.isEmpty() ? lang(lng_send_action_upload_file) : lng_user_action_upload_file(lt_user, name); case Type::ChooseLocation: return name.isEmpty() ? lang(lng_send_action_geo_location) : lng_user_action_geo_location(lt_user, name); diff --git a/Telegram/SourceFiles/historywidget.cpp b/Telegram/SourceFiles/historywidget.cpp index cb6d81aa7..a8e26af90 100644 --- a/Telegram/SourceFiles/historywidget.cpp +++ b/Telegram/SourceFiles/historywidget.cpp @@ -932,6 +932,8 @@ void HistoryWidget::updateSendAction(History *history, SendAction::Type type, in case Type::UploadVideo: action = MTP_sendMessageUploadVideoAction(MTP_int(progress)); break; case Type::RecordVoice: action = MTP_sendMessageRecordAudioAction(); break; case Type::UploadVoice: action = MTP_sendMessageUploadAudioAction(MTP_int(progress)); break; + case Type::RecordRound: action = MTP_sendMessageRecordRoundAction(); break; + case Type::UploadRound: action = MTP_sendMessageUploadRoundAction(); break; case Type::UploadPhoto: action = MTP_sendMessageUploadPhotoAction(MTP_int(progress)); break; case Type::UploadFile: action = MTP_sendMessageUploadDocumentAction(MTP_int(progress)); break; case Type::ChooseLocation: action = MTP_sendMessageGeoLocationAction(); break; diff --git a/Telegram/SourceFiles/structs.h b/Telegram/SourceFiles/structs.h index 79623400c..4d96ac593 100644 --- a/Telegram/SourceFiles/structs.h +++ b/Telegram/SourceFiles/structs.h @@ -1514,6 +1514,8 @@ struct SendAction { UploadVideo, RecordVoice, UploadVoice, + RecordRound, + UploadRound, UploadPhoto, UploadFile, ChooseLocation, diff --git a/Telegram/SourceFiles/ui/effects/send_action_animations.cpp b/Telegram/SourceFiles/ui/effects/send_action_animations.cpp index bf03fc3af..796f4e2b8 100644 --- a/Telegram/SourceFiles/ui/effects/send_action_animations.cpp +++ b/Telegram/SourceFiles/ui/effects/send_action_animations.cpp @@ -179,6 +179,7 @@ void CreateImplementationsMap() { Type recordTypes[] = { Type::RecordVideo, Type::RecordVoice, + Type::RecordRound, }; for_const (auto type, recordTypes) { Implementations->insert(type, &RecordAnimation::kMeta); @@ -188,6 +189,7 @@ void CreateImplementationsMap() { Type::UploadPhoto, Type::UploadVideo, Type::UploadVoice, + Type::UploadRound, }; for_const (auto type, uploadTypes) { Implementations->insert(type, &UploadAnimation::kMeta);