diff --git a/lib/pages/home_page.dart b/lib/pages/home_page.dart index 678676e..8169aac 100644 --- a/lib/pages/home_page.dart +++ b/lib/pages/home_page.dart @@ -35,11 +35,10 @@ class SongItem { : fileName.replaceAll(RegExp(r'\.[^.]*$'), ''); String get displaySubtitle { - if (metadataState == 'success' && artist != null) { + if (metadataState == 'success' && artist != null && artist!.isNotEmpty) { return artist!; - } else { - return sourceTag; } + return sourceTag.isNotEmpty ? sourceTag : '未知艺术家'; } } @@ -272,12 +271,23 @@ class _HomePageState extends BaseState { displayName = rawName; } + // 取上级目录名,作为没有标签时的副标题(加括号区分"这是文件夹") + final segments = path.split('/').where((s) => s.isNotEmpty).toList(); + String folderName = ''; + if (segments.length >= 2) { + try { + folderName = Uri.decodeComponent(segments[segments.length - 2]); + } catch (_) { + folderName = segments[segments.length - 2]; + } + } + items.add(SongItem( path: path, fileName: displayName, title: hasTitle ? title : null, artist: artist.isNotEmpty ? artist : null, - sourceTag: '收藏', + sourceTag: folderName.isNotEmpty ? '($folderName)' : '', metadataState: hasTitle ? 'success' : 'unknown', )); }