From f525d6c7e6007ca02ca946d6f44fd62cadee8333 Mon Sep 17 00:00:00 2001 From: zarzet Date: Sat, 31 Jan 2026 14:46:43 +0700 Subject: [PATCH] fix: show correct audio quality for lossy files in metadata screen --- lib/screens/track_metadata_screen.dart | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/lib/screens/track_metadata_screen.dart b/lib/screens/track_metadata_screen.dart index 53ceec2d..9f63af19 100644 --- a/lib/screens/track_metadata_screen.dart +++ b/lib/screens/track_metadata_screen.dart @@ -517,16 +517,27 @@ class _TrackMetadataScreenState extends ConsumerState { } Widget _buildMetadataGrid(BuildContext context, ColorScheme colorScheme) { - // Determine audio quality string based on file type + // Determine audio quality string - prefer stored quality from download String? audioQualityStr; final fileName = item.filePath.split('/').last; final fileExt = fileName.contains('.') ? fileName.split('.').last.toUpperCase() : ''; - if (fileExt == 'MP3') { - audioQualityStr = '320kbps'; + // Use stored quality from download history if available + if (item.quality != null && item.quality!.isNotEmpty) { + audioQualityStr = item.quality; } else if (bitDepth != null && sampleRate != null) { + // Fallback for FLAC files without stored quality final sampleRateKHz = (sampleRate! / 1000).toStringAsFixed(1); audioQualityStr = '$bitDepth-bit/${sampleRateKHz}kHz'; + } else { + // Fallback based on file extension for legacy items + if (fileExt == 'MP3') { + audioQualityStr = 'MP3'; + } else if (fileExt == 'OPUS' || fileExt == 'OGG') { + audioQualityStr = 'Opus'; + } else if (fileExt == 'M4A' || fileExt == 'AAC') { + audioQualityStr = 'AAC'; + } } final items = <_MetadataItem>[