diff --git a/src/timeline/TimelineViewManager.cpp b/src/timeline/TimelineViewManager.cpp
index f949498d..1392c505 100644
--- a/src/timeline/TimelineViewManager.cpp
+++ b/src/timeline/TimelineViewManager.cpp
@@ -244,6 +244,26 @@ TimelineViewManager::TimelineViewManager(CallManager *callManager, ChatPage *par
&CallManager::newVideoCallState,
this,
&TimelineViewManager::videoCallChanged);
+
+ connect(&WebRTCSession::instance(),
+ &WebRTCSession::stateChanged,
+ this,
+ &TimelineViewManager::onCallChanged);
+}
+
+bool
+TimelineViewManager::isOnCall() const
+{
+ return callManager_->onActiveCall();
+}
+bool
+TimelineViewManager::callsSupported() const
+{
+#ifdef GSTREAMER_AVAILABLE
+ return true;
+#else
+ return false;
+#endif
}
void
@@ -506,122 +526,6 @@ TimelineViewManager::queueReactionMessage(const QString &reactedEvent, const QSt
timeline_->redactEvent(selfReactedEvent);
}
}
-
-void
-TimelineViewManager::queueImageMessage(const QString &roomid,
- const QString &filename,
- const std::optional<mtx::crypto::EncryptedFile> &file,
- const QString &url,
- const QString &mime,
- uint64_t dsize,
- const QSize &dimensions,
- const QString &blurhash)
-{
- mtx::events::msg::Image image;
- image.info.mimetype = mime.toStdString();
- image.info.size = dsize;
- image.info.blurhash = blurhash.toStdString();
- image.body = filename.toStdString();
- image.info.h = dimensions.height();
- image.info.w = dimensions.width();
-
- if (file)
- image.file = file;
- else
- image.url = url.toStdString();
-
- auto model = models.value(roomid);
- if (!model->reply().isEmpty()) {
- image.relates_to.in_reply_to.event_id = model->reply().toStdString();
- model->resetReply();
- }
-
- model->sendMessageEvent(image, mtx::events::EventType::RoomMessage);
-}
-
-void
-TimelineViewManager::queueFileMessage(
- const QString &roomid,
- const QString &filename,
- const std::optional<mtx::crypto::EncryptedFile> &encryptedFile,
- const QString &url,
- const QString &mime,
- uint64_t dsize)
-{
- mtx::events::msg::File file;
- file.info.mimetype = mime.toStdString();
- file.info.size = dsize;
- file.body = filename.toStdString();
-
- if (encryptedFile)
- file.file = encryptedFile;
- else
- file.url = url.toStdString();
-
- auto model = models.value(roomid);
- if (!model->reply().isEmpty()) {
- file.relates_to.in_reply_to.event_id = model->reply().toStdString();
- model->resetReply();
- }
-
- model->sendMessageEvent(file, mtx::events::EventType::RoomMessage);
-}
-
-void
-TimelineViewManager::queueAudioMessage(const QString &roomid,
- const QString &filename,
- const std::optional<mtx::crypto::EncryptedFile> &file,
- const QString &url,
- const QString &mime,
- uint64_t dsize)
-{
- mtx::events::msg::Audio audio;
- audio.info.mimetype = mime.toStdString();
- audio.info.size = dsize;
- audio.body = filename.toStdString();
- audio.url = url.toStdString();
-
- if (file)
- audio.file = file;
- else
- audio.url = url.toStdString();
-
- auto model = models.value(roomid);
- if (!model->reply().isEmpty()) {
- audio.relates_to.in_reply_to.event_id = model->reply().toStdString();
- model->resetReply();
- }
-
- model->sendMessageEvent(audio, mtx::events::EventType::RoomMessage);
-}
-
-void
-TimelineViewManager::queueVideoMessage(const QString &roomid,
- const QString &filename,
- const std::optional<mtx::crypto::EncryptedFile> &file,
- const QString &url,
- const QString &mime,
- uint64_t dsize)
-{
- mtx::events::msg::Video video;
- video.info.mimetype = mime.toStdString();
- video.info.size = dsize;
- video.body = filename.toStdString();
-
- if (file)
- video.file = file;
- else
- video.url = url.toStdString();
-
- auto model = models.value(roomid);
- if (!model->reply().isEmpty()) {
- video.relates_to.in_reply_to.event_id = model->reply().toStdString();
- model->resetReply();
- }
-
- model->sendMessageEvent(video, mtx::events::EventType::RoomMessage);
-}
-
void
TimelineViewManager::queueCallMessage(const QString &roomid,
const mtx::events::msg::CallInvite &callInvite)
|