feat: improve extension metadata UI

This commit is contained in:
zarzet
2026-04-29 18:33:44 +07:00
parent cd2c2a9854
commit 611abdc6ae
29 changed files with 843 additions and 61 deletions
+9
View File
@@ -25,6 +25,8 @@ class Track {
final int? totalTracks;
final String? composer;
final String? itemType;
final String? audioQuality;
final String? audioModes;
const Track({
required this.id,
@@ -48,6 +50,8 @@ class Track {
this.totalTracks,
this.composer,
this.itemType,
this.audioQuality,
this.audioModes,
});
bool get isSingle {
@@ -72,6 +76,11 @@ class Track {
Map<String, dynamic> toJson() => _$TrackToJson(this);
bool get isFromExtension => source != null && source!.isNotEmpty;
bool get isDolbyAtmos =>
audioModes != null && audioModes!.contains('DOLBY_ATMOS');
bool get hasAudioQuality => audioQuality != null && audioQuality!.isNotEmpty;
}
@JsonSerializable()
+4
View File
@@ -32,6 +32,8 @@ Track _$TrackFromJson(Map<String, dynamic> json) => Track(
totalTracks: (json['totalTracks'] as num?)?.toInt(),
composer: json['composer'] as String?,
itemType: json['itemType'] as String?,
audioQuality: json['audioQuality'] as String?,
audioModes: json['audioModes'] as String?,
);
Map<String, dynamic> _$TrackToJson(Track instance) => <String, dynamic>{
@@ -56,6 +58,8 @@ Map<String, dynamic> _$TrackToJson(Track instance) => <String, dynamic>{
'totalTracks': instance.totalTracks,
'composer': instance.composer,
'itemType': instance.itemType,
'audioQuality': instance.audioQuality,
'audioModes': instance.audioModes,
};
ServiceAvailability _$ServiceAvailabilityFromJson(Map<String, dynamic> json) =>