Line data Source code
1 : import 'package:flutter_chrome_cast/common/image.dart';
2 : import 'package:flutter_chrome_cast/entities/media_metadata/music_track_media_metadata.dart';
3 : import 'package:flutter_chrome_cast/models/android/extensions/date_time.dart';
4 :
5 : /// Android-specific implementation of music media metadata.
6 : class GoogleCastMusicMediaMetadataAndroid extends GoogleCastMusicMediaMetadata {
7 : /// Creates an Android music media metadata instance.
8 0 : GoogleCastMusicMediaMetadataAndroid({
9 : super.albumArtist,
10 : super.albumName,
11 : super.artist,
12 : super.composer,
13 : super.discNumber,
14 : super.images,
15 : super.releaseDate,
16 : super.title,
17 : super.trackNumber,
18 : });
19 :
20 : /// Creates a music media metadata instance from a map.
21 0 : factory GoogleCastMusicMediaMetadataAndroid.fromMap(
22 : Map<String, dynamic> map) {
23 0 : return GoogleCastMusicMediaMetadataAndroid(
24 0 : albumName: map['albumName'],
25 0 : title: map['title'],
26 0 : albumArtist: map['albumArtist'],
27 0 : artist: map['artist'],
28 0 : composer: map['composer'],
29 0 : trackNumber: map['trackNumber']?.toInt(),
30 0 : discNumber: map['discNumber']?.toInt(),
31 0 : images: map['images'] != null
32 0 : ? List<GoogleCastImage>.from(
33 0 : map['images']?.map((x) => GoogleCastImage.fromMap(x)))
34 : : null,
35 0 : releaseDate: map['releaseDate'] != null
36 0 : ? DateTimeString.tryParse(map['releaseDate'])
37 : : null,
38 : );
39 : }
40 : }
|