aboutsummaryrefslogtreecommitdiff
path: root/plugins/omemo/src/ui/encryption_list_entry.vala
diff options
context:
space:
mode:
authorfrosty <frostinator33@airmail.cc>2026-10-26 10:21:57 -0400
committerfrosty <frostinator33@airmail.cc>2026-10-26 10:21:57 -0400
commit74aecd8b0986d07b50b7ce310d64e645b8b54e38 (patch)
tree560e6434f183eb54cd779936f3a4c9575146a066 /plugins/omemo/src/ui/encryption_list_entry.vala
parent3d7e90d401da02d430a87db0ec7e1db3a6f1a68f (diff)
parent4436001bb361ad4f9e4e05819214ecf0ea77c063 (diff)
Merge 'upstream/master'
Diffstat (limited to 'plugins/omemo/src/ui/encryption_list_entry.vala')
-rw-r--r--plugins/omemo/src/ui/encryption_list_entry.vala77
1 files changed, 0 insertions, 77 deletions
diff --git a/plugins/omemo/src/ui/encryption_list_entry.vala b/plugins/omemo/src/ui/encryption_list_entry.vala
deleted file mode 100644
index 3bb76c52..00000000
--- a/plugins/omemo/src/ui/encryption_list_entry.vala
+++ /dev/null
@@ -1,77 +0,0 @@
-using Dino.Entities;
-using Gtk;
-using Qlite;
-using Xmpp;
-
-namespace Dino.Plugins.Omemo {
-
-public class EncryptionListEntry : Plugins.EncryptionListEntry, Object {
- private Plugin plugin;
- private Database db;
-
- public EncryptionListEntry(Plugin plugin) {
- this.plugin = plugin;
- this.db = plugin.db;
- }
-
- public Entities.Encryption encryption { get {
- return Entities.Encryption.OMEMO;
- }}
-
- public string name { get {
- return "OMEMO";
- }}
-
- public Object? get_encryption_icon(Entities.Conversation conversation, ContentItem content_item) {
- return null;
- }
-
- public string? get_encryption_icon_name(Entities.Conversation conversation, ContentItem content_item) {
- if (content_item.encryption != encryption) return null;
-
- RowOption row = db.content_item_meta.select( { db.identity_meta.trust_level } ).with(db.content_item_meta.content_item_id, "=", content_item.id)
- .join_on(db.identity_meta, @"$(db.identity_meta.address_name)=$(db.content_item_meta.address_name) AND $(db.identity_meta.device_id)=$(db.content_item_meta.device_id)")
- .single().row();
-
-
- if (row.is_present() && (TrustLevel) row[db.identity_meta.trust_level] == TrustLevel.VERIFIED) {
- return "dino-security-high-symbolic";
- }
- return null;
- }
-
- public void encryption_activated(Entities.Conversation conversation, Plugins.SetInputFieldStatus input_status_callback) {
- encryption_activated_async.begin(conversation, input_status_callback);
- }
-
- public async void encryption_activated_async(Entities.Conversation conversation, Plugins.SetInputFieldStatus input_status_callback) {
- if (conversation.type_ == Conversation.Type.GROUPCHAT_PM) {
- input_status_callback(new Plugins.InputFieldStatus("Can't use encryption in a groupchat private message.", Plugins.InputFieldStatus.MessageType.ERROR, Plugins.InputFieldStatus.InputState.NO_SEND));
- return;
- }
- MucManager muc_manager = plugin.app.stream_interactor.get_module(MucManager.IDENTITY);
- Manager omemo_manager = plugin.app.stream_interactor.get_module(Manager.IDENTITY);
-
- if (muc_manager.is_private_room(conversation.account, conversation.counterpart)) {
- var offline_members = muc_manager.get_offline_members(conversation.counterpart, conversation.account);
- if (offline_members == null) {
- // We don't store offline members yet, and it'll be null if we're offline
- return;
- }
- foreach (Jid offline_member in offline_members) {
- bool ok = yield omemo_manager.ensure_get_keys_for_jid(conversation.account, offline_member);
- if (!ok) {
- input_status_callback(new Plugins.InputFieldStatus("A member does not support OMEMO: %s".printf(offline_member.to_string()), Plugins.InputFieldStatus.MessageType.ERROR, Plugins.InputFieldStatus.InputState.NO_SEND));
- return;
- }
- }
- return;
- }
-
- if (!(yield omemo_manager.ensure_get_keys_for_jid(conversation.account, conversation.counterpart.bare_jid))) {
- input_status_callback(new Plugins.InputFieldStatus("This contact does not support %s encryption".printf("OMEMO"), Plugins.InputFieldStatus.MessageType.ERROR, Plugins.InputFieldStatus.InputState.NO_SEND));
- }
- }
-
-}
-}