diff options
| author | fiaxh <git@lightrise.org> | 2025-04-08 12:15:12 +0200 |
|---|---|---|
| committer | fiaxh <git@lightrise.org> | 2025-04-08 12:15:12 +0200 |
| commit | a21800860e00d4078fa2b339bc16087ea1f22bbc (patch) | |
| tree | a09194f34e61c4329fae0fd641c499b12f3c0044 | |
| parent | ea54d659e5729ec9d2493ad1e4a268425b180891 (diff) | |
Show call button regardless of contact online status
| -rw-r--r-- | libdino/src/plugin/interfaces.vala | 2 | ||||
| -rw-r--r-- | libdino/src/service/calls.vala | 4 | ||||
| -rw-r--r-- | plugins/rtp/src/plugin.vala | 15 | ||||
| -rw-r--r-- | xmpp-vala/src/module/xep/0353_jingle_message_initiation.vala | 6 |
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) { |
