diff --git a/lib/src/client.dart b/lib/src/client.dart index c9a10128..75b0e220 100644 --- a/lib/src/client.dart +++ b/lib/src/client.dart @@ -821,13 +821,16 @@ class Client extends MatrixApi { } } - /// Uploads a new user avatar for this user. - Future setAvatar(MatrixFile file) async { - final uploadResp = await uploadContent( - file.bytes, - filename: file.name, - contentType: file.mimeType, - ); + /// Uploads a new user avatar for this user. Leave file null to remove the + /// current avatar. + Future setAvatar(MatrixFile? file) async { + final uploadResp = file == null + ? null + : await uploadContent( + file.bytes, + filename: file.name, + contentType: file.mimeType, + ); await setAvatarUrl(userID!, uploadResp); return; } diff --git a/lib/src/room.dart b/lib/src/room.dart index b674bf81..20e8abc0 100644 --- a/lib/src/room.dart +++ b/lib/src/room.dart @@ -1356,15 +1356,18 @@ class Room { } /// Uploads a new user avatar for this room. Returns the event ID of the new - /// m.room.avatar event. - Future setAvatar(MatrixFile file) async { - final uploadResp = - await client.uploadContent(file.bytes, filename: file.name); + /// m.room.avatar event. Leave empty to remove the current avatar. + Future setAvatar(MatrixFile? file) async { + final uploadResp = file == null + ? null + : await client.uploadContent(file.bytes, filename: file.name); return await client.setRoomStateWithKey( id, EventTypes.RoomAvatar, '', - {'url': uploadResp.toString()}, + { + if (uploadResp != null) 'url': uploadResp.toString(), + }, ); }