aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfiaxh <git@lightrise.org>2025-04-08 12:15:12 +0200
committerfiaxh <git@lightrise.org>2025-04-08 12:15:12 +0200
commita21800860e00d4078fa2b339bc16087ea1f22bbc (patch)
treea09194f34e61c4329fae0fd641c499b12f3c0044
parentea54d659e5729ec9d2493ad1e4a268425b180891 (diff)
Show call button regardless of contact online status
-rw-r--r--libdino/src/plugin/interfaces.vala2
-rw-r--r--libdino/src/service/calls.vala4
-rw-r--r--plugins/rtp/src/plugin.vala15
-rw-r--r--xmpp-vala/src/module/xep/0353_jingle_message_initiation.vala6
4 files changed, 8 insertions, 19 deletions
diff --git a/libdino/src/plugin/interfaces.vala b/libdino/src/plugin/interfaces.vala
index ea23b82a..1aae4e23 100644
--- a/libdino/src/plugin/interfaces.vala
+++ b/libdino/src/plugin/interfaces.vala
@@ -102,7 +102,7 @@ public abstract interface ConversationAdditionPopulator : ConversationItemPopula
public abstract interface VideoCallPlugin : Object {
- public abstract bool supports(string? media);
+ public abstract bool supported();
// Video widget
public abstract VideoCallWidget? create_widget(WidgetType type);
diff --git a/libdino/src/service/calls.vala b/libdino/src/service/calls.vala
index a1965b83..a2d25655 100644
--- a/libdino/src/service/calls.vala
+++ b/libdino/src/service/calls.vala
@@ -70,14 +70,14 @@ namespace Dino {
Plugins.VideoCallPlugin? plugin = Application.get_default().plugin_registry.video_call_plugin;
if (plugin == null) return false;
- return plugin.supports(null);
+ return plugin.supported();
}
public async bool can_conversation_do_calls(Conversation conversation) {
if (!can_we_do_calls(conversation.account)) return false;
if (conversation.type_ == Conversation.Type.CHAT) {
- return (yield get_call_resources(conversation.account, conversation.counterpart)).size > 0 || has_jmi_resources(conversation.counterpart);
+ return !conversation.counterpart.equals_bare(conversation.account.bare_jid);
} else {
bool is_private = stream_interactor.get_module(MucManager.IDENTITY).is_private_room(conversation.account, conversation.counterpart);
return is_private && can_initiate_groupcall(conversation.account);
diff --git a/plugins/rtp/src/plugin.vala b/plugins/rtp/src/plugin.vala
index 4a8e2ddf..58ce871c 100644
--- a/plugins/rtp/src/plugin.vala
+++ b/plugins/rtp/src/plugin.vala
@@ -279,19 +279,8 @@ public class Dino.Plugins.Rtp.Plugin : RootInterface, VideoCallPlugin, Object {
Gst.deinit();
}
- public bool supports(string? media) {
- if (!codec_util.is_element_supported("rtpbin")) return false;
-
- if (media == "audio") {
- if (get_devices("audio", false).is_empty) return false;
- if (get_devices("audio", true).is_empty) return false;
- }
-
- if (media == "video") {
- if (get_devices("video", false).is_empty) return false;
- }
-
- return true;
+ public bool supported() {
+ return codec_util.is_element_supported("rtpbin");
}
public VideoCallWidget? create_widget(WidgetType type) {
diff --git a/xmpp-vala/src/module/xep/0353_jingle_message_initiation.vala b/xmpp-vala/src/module/xep/0353_jingle_message_initiation.vala
index 2596abbb..4a6fafb7 100644
--- a/xmpp-vala/src/module/xep/0353_jingle_message_initiation.vala
+++ b/xmpp-vala/src/module/xep/0353_jingle_message_initiation.vala
@@ -17,9 +17,9 @@ namespace Xmpp.Xep.JingleMessageInitiation {
propose_node.put_node(desc_node);
}
- MessageStanza accepted_message = new MessageStanza() { to=to, type_=MessageStanza.TYPE_CHAT };
- accepted_message.stanza.put_node(propose_node);
- stream.get_module(MessageModule.IDENTITY).send_message.begin(stream, accepted_message);
+ MessageStanza propose_message = new MessageStanza() { to=to, type_=MessageStanza.TYPE_CHAT };
+ propose_message.stanza.put_node(propose_node);
+ stream.get_module(MessageModule.IDENTITY).send_message.begin(stream, propose_message);
}
public void send_session_retract_to_peer(XmppStream stream, Jid to, string sid) {