Refactor ImageInfo
* Add a set_from_json() method * Start using it in the m.room.avatar handler
This commit is contained in:
parent
0bcb72d5aa
commit
5bb3620395
@ -72,61 +72,13 @@ public class Matrix.Event.RoomAvatar : Matrix.Event.State {
|
||||
}
|
||||
|
||||
if ((node = content_root.get_member("info")) != null) {
|
||||
var info_obj = node.get_object();
|
||||
_info = ImageInfo();
|
||||
|
||||
if ((node = info_obj.get_member("size")) != null) {
|
||||
_info.size = (int)node.get_int();
|
||||
} else {
|
||||
warning("content.info.size is missing from a m.room.avatar event");
|
||||
}
|
||||
|
||||
if ((node = info_obj.get_member("h")) != null) {
|
||||
_info.height = (int)node.get_int();
|
||||
} else {
|
||||
warning("content.info.h is missing from a m.room.avatar event");
|
||||
}
|
||||
|
||||
if ((node = info_obj.get_member("w")) != null) {
|
||||
_info.width = (int)node.get_int();
|
||||
} else {
|
||||
warning("content.info.w is missing from a m.room.avatar event");
|
||||
}
|
||||
|
||||
if ((node = info_obj.get_member("mimetype")) != null) {
|
||||
_info.mimetype = node.get_string();
|
||||
} else {
|
||||
warning("content.info.mimetype is missing from a m.room.avatar event");
|
||||
}
|
||||
_info.set_from_json(node);
|
||||
}
|
||||
|
||||
if ((node = content_root.get_member("thumbnail_info")) != null) {
|
||||
var thumbnail_info_obj = node.get_object();
|
||||
_thumbnail_info = ImageInfo();
|
||||
|
||||
if ((node = thumbnail_info_obj.get_member("size")) != null) {
|
||||
_thumbnail_info.size = (int)node.get_int();
|
||||
} else {
|
||||
warning("content.thumbnail_info.size is missing from a m.room.avatar event");
|
||||
}
|
||||
|
||||
if ((node = thumbnail_info_obj.get_member("h")) != null) {
|
||||
_thumbnail_info.height = (int)node.get_int();
|
||||
} else {
|
||||
warning("content.thumbnail_info.h is missing from a m.room.avatar event");
|
||||
}
|
||||
|
||||
if ((node = thumbnail_info_obj.get_member("w")) != null) {
|
||||
_thumbnail_info.width = (int)node.get_int();
|
||||
} else {
|
||||
warning("content.thumbnail_info.w is missing from a m.room.avatar event");
|
||||
}
|
||||
|
||||
if ((node = thumbnail_info_obj.get_member("mimetype")) != null) {
|
||||
_thumbnail_info.mimetype = node.get_string();
|
||||
} else {
|
||||
warning("content.thumbnail_info.mimetype is missing from a m.room.avatar event");
|
||||
}
|
||||
_thumbnail_info.set_from_json(node);
|
||||
}
|
||||
|
||||
base.from_json(json_data);
|
||||
|
@ -297,6 +297,42 @@ namespace Matrix {
|
||||
int? width;
|
||||
string? mimetype;
|
||||
|
||||
public void
|
||||
set_from_json(Json.Node json_data)
|
||||
{
|
||||
size = null;
|
||||
mimetype = null;
|
||||
height = null;
|
||||
width = null;
|
||||
|
||||
var root = json_data.get_object();
|
||||
Json.Node? node;
|
||||
|
||||
if ((node = root.get_member("w")) != null) {
|
||||
width = (int)node.get_int();
|
||||
} else if (Config.DEBUG) {
|
||||
warning("w is missing from an ImageInfo");
|
||||
}
|
||||
|
||||
if ((node = root.get_member("h")) != null) {
|
||||
height = (int)node.get_int();
|
||||
} else if (Config.DEBUG) {
|
||||
warning("h is missing from an ImageInfo");
|
||||
}
|
||||
|
||||
if ((node = root.get_member("size")) != null) {
|
||||
size = (int)node.get_int();
|
||||
} else if (Config.DEBUG) {
|
||||
warning("size is missing from an ImageInfo");
|
||||
}
|
||||
|
||||
if ((node = root.get_member("mimetype")) != null) {
|
||||
mimetype = node.get_string();
|
||||
} else if (Config.DEBUG) {
|
||||
warning("mimetype is missing from an ImageInfo");
|
||||
}
|
||||
}
|
||||
|
||||
public Json.Node
|
||||
get_json_node()
|
||||
throws Matrix.Error
|
||||
|
Loading…
Reference in New Issue
Block a user