aboutsummaryrefslogtreecommitdiff
path: root/libdino/src/service
diff options
context:
space:
mode:
Diffstat (limited to 'libdino/src/service')
-rw-r--r--libdino/src/service/file_manager.vala10
-rw-r--r--libdino/src/service/notification_events.vala2
-rw-r--r--libdino/src/service/sfs_metadata.vala6
-rw-r--r--libdino/src/service/util.vala6
4 files changed, 13 insertions, 11 deletions
diff --git a/libdino/src/service/file_manager.vala b/libdino/src/service/file_manager.vala
index 434fd0e7..8c196dd7 100644
--- a/libdino/src/service/file_manager.vala
+++ b/libdino/src/service/file_manager.vala
@@ -110,7 +110,7 @@ public class FileManager : StreamInteractionModule, Object {
try {
var file_meta = new FileMeta();
file_meta.size = file_transfer.size;
- file_meta.mime_type = file_transfer.mime_type;
+ file_meta.content_type = file_transfer.content_type;
FileSender file_sender = null;
FileEncryptor file_encryptor = null;
@@ -244,7 +244,7 @@ public class FileManager : StreamInteractionModule, Object {
file_transfer.size = (int)file_meta.size;
file_transfer.file_name = file_meta.file_name;
- file_transfer.mime_type = file_meta.mime_type;
+ file_transfer.content_type = file_meta.content_type;
}
return file_meta;
}
@@ -332,9 +332,9 @@ public class FileManager : StreamInteractionModule, Object {
file_transfer.path = file.get_basename();
FileInfo file_info = file_transfer.get_file().query_info("*", FileQueryInfoFlags.NONE);
- if (file_info.get_content_type() != "application/octet-stream" || file_transfer.mime_type == null) {
+ if (file_info.get_content_type() != "application/octet-stream" || file_transfer.content_type == null) {
// Only overwrite mime_type if it's better than what we had before.
- file_transfer.mime_type = file_info.get_content_type();
+ file_transfer.content_type = new FileContentType.from_file_info(file_info);
}
file_transfer.state = FileTransfer.State.COMPLETE;
@@ -436,7 +436,7 @@ public errordomain FileReceiveError {
public class FileMeta {
public int64 size = -1;
- public string? mime_type = null;
+ public FileContentType? content_type = null;
public string? file_name = null;
public Encryption encryption = Encryption.NONE;
}
diff --git a/libdino/src/service/notification_events.vala b/libdino/src/service/notification_events.vala
index 8771b5a9..3e077dfc 100644
--- a/libdino/src/service/notification_events.vala
+++ b/libdino/src/service/notification_events.vala
@@ -83,7 +83,7 @@ public class NotificationEvents : StreamInteractionModule, Object {
break;
case FileItem.TYPE:
FileTransfer file_transfer = ((FileItem) item).file_transfer;
- bool is_image = file_transfer.mime_type != null && file_transfer.mime_type.has_prefix("image");
+ bool is_image = file_transfer.content_type != null && file_transfer.content_type.is_image();
// Don't notify on file transfers in a groupchat set to "mention only"
if (notify == Conversation.NotifySetting.HIGHLIGHT) return;
diff --git a/libdino/src/service/sfs_metadata.vala b/libdino/src/service/sfs_metadata.vala
index f0058c4e..6d05f97f 100644
--- a/libdino/src/service/sfs_metadata.vala
+++ b/libdino/src/service/sfs_metadata.vala
@@ -22,7 +22,7 @@ namespace Dino {
FileInfo info = file.query_info("*", FileQueryInfoFlags.NONE);
metadata.name = info.get_display_name();
- metadata.mime_type = info.get_content_type();
+ metadata.content_type = new FileContentType.from_file_info(info);
metadata.size = info.get_size();
metadata.date = info.get_modification_date_time();
@@ -36,8 +36,8 @@ namespace Dino {
public class ImageFileMetadataProvider: Dino.FileMetadataProvider, Object {
public bool supports_file(File file) {
- string mime_type = file.query_info("*", FileQueryInfoFlags.NONE).get_content_type();
- return Dino.Util.is_pixbuf_supported_mime_type(mime_type);
+ FileContentType content_type = new FileContentType.from_file(file);
+ return Dino.Util.is_pixbuf_supported_content_type(content_type);
}
private const int[] THUMBNAIL_DIMS = { 1, 2, 3, 4, 8 };
diff --git a/libdino/src/service/util.vala b/libdino/src/service/util.vala
index 6eacdd33..e85e2005 100644
--- a/libdino/src/service/util.vala
+++ b/libdino/src/service/util.vala
@@ -30,8 +30,10 @@ public class Util {
}
}
- public static bool is_pixbuf_supported_mime_type(string mime_type) {
- if (mime_type == null) return false;
+ public static bool is_pixbuf_supported_content_type(Xmpp.FileContentType? content_type) {
+ if (content_type == null) return false;
+
+ string mime_type = content_type.get_mime_type();
foreach (Gdk.PixbufFormat pixbuf_format in Gdk.Pixbuf.get_formats()) {
foreach (string pixbuf_mime in pixbuf_format.get_mime_types()) {