aboutsummaryrefslogtreecommitdiff
path: root/libdino/src
diff options
context:
space:
mode:
Diffstat (limited to 'libdino/src')
-rw-r--r--libdino/src/entity/file_transfer.vala6
-rw-r--r--libdino/src/service/database.vala1
-rw-r--r--libdino/src/service/sfs_metadata.vala6
3 files changed, 7 insertions, 6 deletions
diff --git a/libdino/src/entity/file_transfer.vala b/libdino/src/entity/file_transfer.vala
index 52347028..7b146c9a 100644
--- a/libdino/src/entity/file_transfer.vala
+++ b/libdino/src/entity/file_transfer.vala
@@ -160,7 +160,7 @@ public class FileTransfer : Object {
foreach(var thumbnail_row in db.file_thumbnails.select().with(db.file_thumbnails.id, "=", id)) {
Xep.JingleContentThumbnails.Thumbnail thumbnail = new Xep.JingleContentThumbnails.Thumbnail();
- thumbnail.uri = thumbnail_row[db.file_thumbnails.uri];
+ thumbnail.data = Xmpp.get_data_for_uri(thumbnail_row[db.file_thumbnails.uri]);
thumbnail.media_type = thumbnail_row[db.file_thumbnails.mime_type];
thumbnail.width = thumbnail_row[db.file_thumbnails.width];
thumbnail.height = thumbnail_row[db.file_thumbnails.height];
@@ -214,9 +214,11 @@ public class FileTransfer : Object {
.perform();
}
foreach (Xep.JingleContentThumbnails.Thumbnail thumbnail in thumbnails) {
+ string data_uri = "data:image/png;base64," + Base64.encode(thumbnail.data.get_data());
+
db.file_thumbnails.insert()
.value(db.file_thumbnails.id, id)
- .value(db.file_thumbnails.uri, thumbnail.uri)
+ .value(db.file_thumbnails.uri, data_uri)
.value(db.file_thumbnails.mime_type, thumbnail.media_type)
.value(db.file_thumbnails.width, thumbnail.width)
.value(db.file_thumbnails.height, thumbnail.height)
diff --git a/libdino/src/service/database.vala b/libdino/src/service/database.vala
index 06676951..e47e24e9 100644
--- a/libdino/src/service/database.vala
+++ b/libdino/src/service/database.vala
@@ -223,6 +223,7 @@ public class Database : Qlite.Database {
public class FileThumbnailsTable : Table {
public Column<int> id = new Column.Integer("id");
+ // TODO store data as bytes, not as data uri
public Column<string> uri = new Column.Text("uri") { not_null = true };
public Column<string> mime_type = new Column.Text("mime_type");
public Column<int> width = new Column.Integer("width");
diff --git a/libdino/src/service/sfs_metadata.vala b/libdino/src/service/sfs_metadata.vala
index dff6f7bf..f0058c4e 100644
--- a/libdino/src/service/sfs_metadata.vala
+++ b/libdino/src/service/sfs_metadata.vala
@@ -68,10 +68,8 @@ namespace Dino {
Pixbuf thumbnail_pixbuf = pixbuf.scale_simple(thumbnail_width, thumbnail_height, InterpType.BILINEAR);
uint8[] buffer;
thumbnail_pixbuf.save_to_buffer(out buffer, IMAGE_TYPE);
- string base_64 = GLib.Base64.encode(buffer);
- string uri = @"data:$MIME_TYPE;base64,$base_64";
- Xep.JingleContentThumbnails.Thumbnail thumbnail = new Xep.JingleContentThumbnails.Thumbnail();
- thumbnail.uri = uri;
+ var thumbnail = new Xep.JingleContentThumbnails.Thumbnail();
+ thumbnail.data = new Bytes.take(buffer);
thumbnail.media_type = MIME_TYPE;
thumbnail.width = thumbnail_width;
thumbnail.height = thumbnail_height;