forked from Nexus/nexus
use gomuks for downloading media
This commit is contained in:
parent
90230651e6
commit
fa451621de
20 changed files with 159 additions and 241 deletions
|
|
@ -12,6 +12,9 @@ typedef EncryptedFile = Map<String, dynamic>;
|
|||
@Freezed(unionKey: "msgtype", fallbackUnion: "default")
|
||||
abstract class MessageContent extends Content with _$MessageContent {
|
||||
MessageContent._();
|
||||
static String? mediaUrlFromJson(Map<dynamic, dynamic> json, String key) =>
|
||||
json[key] ?? json["file"]?[key];
|
||||
|
||||
factory MessageContent({String? body}) = UnknownMessageContent;
|
||||
|
||||
@FreezedUnionValue("m.text")
|
||||
|
|
@ -43,7 +46,7 @@ abstract class MessageContent extends Content with _$MessageContent {
|
|||
EncryptedFile? file,
|
||||
String? filename,
|
||||
ImageInfo? info,
|
||||
Uri? url,
|
||||
@JsonKey(readValue: MessageContent.mediaUrlFromJson) required Uri url,
|
||||
}) = ImageMessageContent;
|
||||
|
||||
@FreezedUnionValue("m.file")
|
||||
|
|
@ -54,7 +57,7 @@ abstract class MessageContent extends Content with _$MessageContent {
|
|||
EncryptedFile? file,
|
||||
String? filename,
|
||||
FileInfo? info,
|
||||
Uri? url,
|
||||
@JsonKey(readValue: MessageContent.mediaUrlFromJson) required Uri url,
|
||||
}) = FileMessageContent;
|
||||
|
||||
@FreezedUnionValue("m.audio")
|
||||
|
|
@ -65,7 +68,7 @@ abstract class MessageContent extends Content with _$MessageContent {
|
|||
EncryptedFile? file,
|
||||
String? filename,
|
||||
AudioInfo? info,
|
||||
Uri? url,
|
||||
@JsonKey(readValue: MessageContent.mediaUrlFromJson) required Uri url,
|
||||
}) = AudioMessageContent;
|
||||
|
||||
@FreezedUnionValue("m.video")
|
||||
|
|
@ -76,7 +79,7 @@ abstract class MessageContent extends Content with _$MessageContent {
|
|||
EncryptedFile? file,
|
||||
String? filename,
|
||||
VideoInfo? info,
|
||||
Uri? url,
|
||||
@JsonKey(readValue: MessageContent.mediaUrlFromJson) required Uri url,
|
||||
}) = VideoMessageContent;
|
||||
|
||||
@FreezedUnionValue("m.location")
|
||||
|
|
|
|||
16
lib/models/requests/download_media.dart
Normal file
16
lib/models/requests/download_media.dart
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
import "package:freezed_annotation/freezed_annotation.dart";
|
||||
part "download_media.freezed.dart";
|
||||
part "download_media.g.dart";
|
||||
|
||||
@freezed
|
||||
abstract class DownloadMediaRequest with _$DownloadMediaRequest {
|
||||
const factory DownloadMediaRequest({
|
||||
required Uri mxc,
|
||||
@Default(false) bool encrypted,
|
||||
@Default(false) bool isAvatar,
|
||||
@Default(false) bool thumbnailAvatar,
|
||||
}) = _DownloadMediaRequest;
|
||||
|
||||
factory DownloadMediaRequest.fromJson(Map<String, Object?> json) =>
|
||||
_$DownloadMediaRequestFromJson(json);
|
||||
}
|
||||
Loading…
Reference in a new issue