diff options
Diffstat (limited to 'libdino/src/service')
-rw-r--r-- | libdino/src/service/avatar_manager.vala | 34 | ||||
-rw-r--r-- | libdino/src/service/database.vala | 11 | ||||
-rw-r--r-- | libdino/src/service/entity_capabilities_storage.vala | 2 | ||||
-rw-r--r-- | libdino/src/service/entity_info.vala | 2 | ||||
-rw-r--r-- | libdino/src/service/jingle_file_transfers.vala | 3 | ||||
-rw-r--r-- | libdino/src/service/module_manager.vala | 4 | ||||
-rw-r--r-- | libdino/src/service/notification_events.vala | 6 |
7 files changed, 17 insertions, 45 deletions
diff --git a/libdino/src/service/avatar_manager.vala b/libdino/src/service/avatar_manager.vala index 4d86588f..b308aa2b 100644 --- a/libdino/src/service/avatar_manager.vala +++ b/libdino/src/service/avatar_manager.vala @@ -45,28 +45,6 @@ public class AvatarManager : StreamInteractionModule, Object { }); } - private async Pixbuf? get_avatar_by_hash(string hash) { - if (cached_pixbuf.has_key(hash)) { - return cached_pixbuf[hash]; - } - if (pending_pixbuf.has_key(hash)) { - pending_pixbuf[hash].add(new SourceFuncWrapper(get_avatar_by_hash.callback)); - yield; - return cached_pixbuf[hash]; - } - pending_pixbuf[hash] = new ArrayList<SourceFuncWrapper>(); - Pixbuf? image = yield get_image(hash); - if (image != null) { - cached_pixbuf[hash] = image; - } else { - db.avatar.delete().with(db.avatar.hash, "=", hash).perform(); - } - foreach (SourceFuncWrapper sfw in pending_pixbuf[hash]) { - sfw.sfun(); - } - return image; - } - private string? get_avatar_hash(Account account, Jid jid_) { Jid jid = jid_; if (!stream_interactor.get_module(MucManager.IDENTITY).is_groupchat_occupant(jid_, account)) { @@ -86,18 +64,6 @@ public class AvatarManager : StreamInteractionModule, Object { return hash != null && cached_pixbuf.has_key(hash); } - public async bool has_avatar_stored(Account account, Jid jid) { - string? hash = get_avatar_hash(account, jid); - if (hash == null) return false; - if (cached_pixbuf.has_key(hash)) return true; - try { - if ((yield File.new_for_path(Path.build_filename(folder, hash)).query_info_async(FileAttribute.STANDARD_NAME, FileQueryInfoFlags.NONE)) != null) return true; - } catch (IOError ignored) { - return false; - } - return false; - } - public bool has_avatar(Account account, Jid jid) { return get_avatar_hash(account, jid) != null; } diff --git a/libdino/src/service/database.vala b/libdino/src/service/database.vala index e6c03bf6..6384fa78 100644 --- a/libdino/src/service/database.vala +++ b/libdino/src/service/database.vala @@ -293,9 +293,14 @@ public class Database : Qlite.Database { mam_catchup = new MamCatchupTable(this); settings = new SettingsTable(this); init({ account, jid, entity, content_item, message, message_correction, real_jid, file_transfer, conversation, avatar, entity_identity, entity_feature, roster, mam_catchup, settings }); - exec("PRAGMA journal_mode = WAL"); - exec("PRAGMA synchronous = NORMAL"); - exec("PRAGMA secure_delete = ON"); + + try { + exec("PRAGMA journal_mode = WAL"); + exec("PRAGMA synchronous = NORMAL"); + exec("PRAGMA secure_delete = ON"); + } catch (Error e) { + error("Failed to set database properties: %s", e.message); + } } public override void migrate(long oldVersion) { diff --git a/libdino/src/service/entity_capabilities_storage.vala b/libdino/src/service/entity_capabilities_storage.vala index e716101a..c6d0bbbd 100644 --- a/libdino/src/service/entity_capabilities_storage.vala +++ b/libdino/src/service/entity_capabilities_storage.vala @@ -16,7 +16,7 @@ public class EntityCapabilitiesStorage : Xep.EntityCapabilities.Storage, Object } public void store_features(string entity, Gee.List<string> features) { - if (features_cache.contains(entity)) return; + if (features_cache.has_key(entity)) return; foreach (string feature in features) { db.entity_feature.insert() diff --git a/libdino/src/service/entity_info.vala b/libdino/src/service/entity_info.vala index 7eed2583..c0c55a40 100644 --- a/libdino/src/service/entity_info.vala +++ b/libdino/src/service/entity_info.vala @@ -37,7 +37,7 @@ public class EntityInfo : StreamInteractionModule, Object { stream.get_module(ServiceDiscovery.Module.IDENTITY).cache = cache; string? hash = EntityCapabilities.get_server_caps_hash(stream); - entity_caps_hashes[new Jid(account.domainpart)] = hash; + entity_caps_hashes[account.bare_jid.domain_jid] = hash; }); stream_interactor.module_manager.initialize_account_modules.connect(initialize_modules); } diff --git a/libdino/src/service/jingle_file_transfers.vala b/libdino/src/service/jingle_file_transfers.vala index 3b2ca29b..a96c716a 100644 --- a/libdino/src/service/jingle_file_transfers.vala +++ b/libdino/src/service/jingle_file_transfers.vala @@ -85,7 +85,8 @@ public class JingleFileProvider : FileProvider, Object { public Encryption get_encryption(FileTransfer file_transfer, FileReceiveData receive_data, FileMeta file_meta) { Xmpp.Xep.JingleFileTransfer.FileTransfer? jingle_file_transfer = file_transfers[file_transfer.info]; if (jingle_file_transfer == null) { - throw new FileReceiveError.DOWNLOAD_FAILED("Transfer data not available anymore"); + return Encryption.NONE; + warning("Could not determine jingle encryption - transfer data not available anymore"); } foreach (JingleFileEncryptionHelper helper in JingleFileHelperRegistry.instance.encryption_helpers.values) { var encryption = helper.get_encryption(jingle_file_transfer); diff --git a/libdino/src/service/module_manager.vala b/libdino/src/service/module_manager.vala index c0bc229e..2fcef581 100644 --- a/libdino/src/service/module_manager.vala +++ b/libdino/src/service/module_manager.vala @@ -34,9 +34,9 @@ public class ModuleManager { foreach (XmppStreamModule module in module_map[account]) { if (module.get_id() == Bind.Module.IDENTITY.id) { - (module as Bind.Module).requested_resource = resource ?? account.resourcepart; + ((Bind.Module) module).requested_resource = resource ?? account.resourcepart; } else if (module.get_id() == Sasl.Module.IDENTITY.id) { - (module as Sasl.Module).password = account.password; + ((Sasl.Module) module).password = account.password; } } return modules; diff --git a/libdino/src/service/notification_events.vala b/libdino/src/service/notification_events.vala index 5e81ff89..19d61d0f 100644 --- a/libdino/src/service/notification_events.vala +++ b/libdino/src/service/notification_events.vala @@ -49,11 +49,11 @@ public class NotificationEvents : StreamInteractionModule, Object { switch (content_item.type_) { case MessageItem.TYPE: - Message message = (content_item as MessageItem).message; + Message message = ((MessageItem) content_item).message; if (message.direction == Message.DIRECTION_SENT) return false; break; case FileItem.TYPE: - FileTransfer file_transfer = (content_item as FileItem).file_transfer; + FileTransfer file_transfer = ((FileItem) content_item).file_transfer; // Don't notify on file transfers in a groupchat set to "mention only" if (notify == Conversation.NotifySetting.HIGHLIGHT) return false; if (file_transfer.direction == FileTransfer.DIRECTION_SENT) return false; @@ -64,7 +64,7 @@ public class NotificationEvents : StreamInteractionModule, Object { Jid? nick = stream_interactor.get_module(MucManager.IDENTITY).get_own_jid(conversation.counterpart, conversation.account); if (nick == null) return false; - Entities.Message message = (content_item as MessageItem).message; + Entities.Message message = ((MessageItem) content_item).message; return Regex.match_simple("\\b" + Regex.escape_string(nick.resourcepart) + "\\b", message.body, RegexCompileFlags.CASELESS); } return true; |