From c11b7c145fc1b2db6c1ed29a7abd739d0f6cbf3b Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sun, 17 May 2026 15:31:16 +0300 Subject: Add player-android/ Flutter skeleton --- player-android/lib/models/media.dart | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 player-android/lib/models/media.dart (limited to 'player-android/lib/models/media.dart') diff --git a/player-android/lib/models/media.dart b/player-android/lib/models/media.dart new file mode 100644 index 0000000..7330bca --- /dev/null +++ b/player-android/lib/models/media.dart @@ -0,0 +1,16 @@ +import 'json_helpers.dart'; + +class Media { + final int id, setId, bitrate, fileSizeBytes, width, height, playCount; + final String relPath, fileName, absPath, type, codec, resolution, thumbnailPath; + final double duration; + final bool favorite; + final List tags; + final DateTime? deletedAt, createdAt; + + const Media({required this.id, required this.setId, required this.relPath, required this.fileName, required this.absPath, required this.type, required this.duration, required this.codec, required this.resolution, required this.bitrate, required this.fileSizeBytes, required this.width, required this.height, required this.thumbnailPath, required this.playCount, this.favorite = false, this.tags = const [], this.deletedAt, this.createdAt}); + + factory Media.fromJson(Map json) => Media(id: json['id'] as int? ?? 0, setId: json['set_id'] as int? ?? 0, relPath: json['rel_path'] as String? ?? '', fileName: json['file_name'] as String? ?? '', absPath: json['abs_path'] as String? ?? '', type: json['type'] as String? ?? '', duration: (json['duration'] as num?)?.toDouble() ?? 0, codec: json['codec'] as String? ?? '', resolution: json['resolution'] as String? ?? '', bitrate: json['bitrate'] as int? ?? 0, fileSizeBytes: json['file_size_bytes'] as int? ?? 0, width: json['width'] as int? ?? 0, height: json['height'] as int? ?? 0, thumbnailPath: json['thumbnail_path'] as String? ?? '', playCount: json['play_count'] as int? ?? 0, favorite: json['favorite'] as bool? ?? false, tags: (json['tags'] as List? ?? const []).cast(), deletedAt: dateTimeFromJson(json['deleted_at']), createdAt: dateTimeFromJson(json['created_at'])); + + Map toJson() => {'id': id, 'set_id': setId, 'rel_path': relPath, 'file_name': fileName, 'abs_path': absPath, 'type': type, 'duration': duration, 'codec': codec, 'resolution': resolution, 'bitrate': bitrate, 'file_size_bytes': fileSizeBytes, 'width': width, 'height': height, 'thumbnail_path': thumbnailPath, 'play_count': playCount, 'favorite': favorite, 'tags': tags, 'deleted_at': dateTimeToJson(deletedAt), 'created_at': dateTimeToJson(createdAt)}; +} -- cgit v1.2.3